(57)【要約】【課題】状態をトレースするための装置を提供する。【解決手段】本装置は、複数のメモリ・ブロックを有するメモリ・モジュールと、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールとを含む。アドレス・デコーダ・モジュールのアドレス出力は各メモリ・ブロックに対応する。ＢＷＥモジュールは、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。ＭＵＸモジュールは、通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じて、アドレス復号モジュールからの対応するアドレス出力を各メモリ・ブロックの書き込みイネーブル入力端に送る。ＭＵＸモジュールは、状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じて、対応するＢＷＥ信号を各メモリ・ブロックの書き込みイネーブル入力端に送る。【選択図】図１
2014026645.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ・ブロックを含むメモリ・モジュールと、
前記複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールであって、前記アドレス復号モジュールのアドレス出力は、前記複数のメモリ・ブロックの各メモリ・ブロックに対応する、前記アドレス復号モジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含むＢＷＥモジュールであって、各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する、前記ＢＷＥモジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、
通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じて前記アドレス復号モジュールの対応するアドレス出力、および
状態トレース・モードにおいて前記ＢＷＥＣ信号を受信するのに応じて対応するＢＷＥ信号、
のうちの一つを送るＭＵＸモジュールと、
を含む装置。
【請求項２】
第一状態が前記ブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態が前記ブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつ前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々に前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更する、ＢＷＥシーケンス・モジュールをさらに含む、請求項１に記載の装置。
【請求項３】
前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第一データを書き込み、前記ＢＷＥシーケンス・モジュールが、あるメモリ・ブロックに対するＢＷＥ信号を前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更した後に、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第二データを書き込む、データ更新モジュールをさらに含む、請求項２に記載の装置。
【請求項４】
前記データ更新モジュールが、前記ＢＷＥシーケンス・モジュールがあるＢＷＥ信号を前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更するごとに、その後前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに追加データを書き込む、請求項３に記載の装置。
【請求項５】
前記ＢＷＥシーケンス・モジュールがＢＷＥ信号を変更するに先立って、
前記状態トレース・モードの前記ＢＷＥＣ信号をアサートし、
前記複数のメモリ・ブロックのメモリ・ブロックに対応する各ＢＷＥ信号を書き込みイネーブル状態に設定し、
前記複数のメモリ・ブロックの各メモリ・ブロックをリセットする、
トレース・モード・トリガ・モジュールをさらに含む、請求項２に記載の装置。
【請求項６】
前記ＢＷＥＣが前記通常使用モードにあって、前記ＢＷＥＣ信号が第一状態にあり、前記一つ以上のアドレス・ラインが、複数のメモリ・ブロックの、あるメモリ・ブロックを選択したとき、データは前記メモリ・ブロックに書き込まれ、前記データは前記複数のメモリ・ブロックの残りのメモリ・ブロックには書き込まれない、請求項１に記載の装置。
【請求項７】
前記ＢＷＥＣ信号が前記状態トレース・モードにあるとき、データは、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する、前記複数のメモリ・ブロックの各メモリ・ブロックに書き込まれ、データは、前記書き込みディスエーブル状態のＢＷＥ信号を有する、前記複数のメモリ・ブロックの各メモリ・ブロックには書き込まれない、請求項１に記載の装置。
【請求項８】
前記ＭＵＸモジュールは、前記複数のメモリ・ブロックの各メモリ・ブロックに対する、２つの入力端と１つの出力端とを具える一つ以上のマルチプレクサ（ＭＵＸ）を含み、一つの入力はＢＷＥ信号であり、一つの入力は前記アドレス復号モジュールのアドレス出力であり、前記出力端は、メモリ・ブロックの前記書き込みイネーブル入力端につながれている、請求項１に記載の装置。
【請求項９】
前記アドレス復号モジュールはアドレス・デコーダを含み、前記アドレス・デコーダは、入力として前記一つ以上のアドレス・ラインを受信し前記複数のメモリ・ブロックの各メモリ・ブロックに対応する信号を出力する、ディスクリート・ハードウェアを含み、前記一つ以上のアドレス・ラインの各状態は、前記複数のメモリ・ブロックの一つを選択する、請求項１に記載の装置。
【請求項１０】
前記ＢＷＥモジュールはＢＷＥレジスタを含み、前記ＢＷＥレジスタは、各ＢＷＥ信号に対応するビットを有するハードウェア・レジスタを含む、請求項１に記載の装置。
【請求項１１】
メモリ・モジュールに対するデータ読み取りおよび書き込みを制御するメモリ・コントローラであって、前記メモリ・モジュールは、複数のメモリ・ブロックを含み、前記メモリ・コントローラは、
前記複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールであって、前記アドレス復号モジュールのアドレス出力は、前記複数のメモリ・ブロックの各メモリ・ブロックに対応する、前記アドレス復号モジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含むＢＷＥモジュールであって、各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する、前記ＢＷＥモジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じて前記アドレス復号モジュールの対応するアドレス出力、および状態トレース・モードにおいて前記ＢＷＥＣ信号を受信するのに応じて対応するＢＷＥ信号、のうちの一つを送るＭＵＸモジュールと、
を含む、
前記メモリ・コントローラを含むシステム。
【請求項１２】
前記メモリ・モジュールをさらに含む、請求項１１に記載のシステム。
【請求項１３】
前記メモリ・モジュールを制御し、前記メモリ・モジュールからデータを読み取り、前記メモリ・モジュールにデータを書き込むプロセッサをさらに含む、請求項１１に記載のシステム。
【請求項１４】
コンピュータをさらに含み、前記コンピュータは前記プロセッサによって制御される、請求項１３に記載のシステム。
【請求項１５】
状態をトレースする方法であって、
アドレス復号モジュールを用い、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するステップであって、前記アドレス復号モジュールのアドレス出力は、前記複数のメモリ・ブロックの各メモリ・ブロックに対応する、前記復号するステップと、
前記複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を受信するステップであって、各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する、前記受信するステップと、
前記複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、
通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じてアドレス復号モジュールの対応するアドレス出力、および
状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じて対応するＢＷＥ信号、
のうちの一つを送るステップと、
を含む方法。
【請求項１６】
前記ＢＷＥＣ信号が前記状態トレース・モードを含むとき、第一状態が前記ブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態が前記ブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつ前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々に前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更するステップをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記メモリ・ブロックの前記書き込みイネーブル入力端に前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する、各メモリ・ブロックに対しデータを書き込むステップであって、各メモリ・ブロックは、前記複数のメモリ・ブロックのブロックを含み、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する前記メモリ・ブロックの各々に同一のデータが書き込まれる、前記書き込むステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロック中に追加データを書き込む一回以上のインスタンスをさらに含み、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する前記メモリ・ブロックへのデータ書き込みの各回のインスタンスの間で、一つのＢＷＥ信号が前記ブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行し、追加データが書き込まれるとき、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する前記メモリ・ブロックの各々に同一の追加データが書き込まれる、請求項１７に記載の方法。
【請求項１９】
前記ＢＷＥＣが前記通常使用モードを含むとき、前記一つ以上のアドレス・ラインが、前記複数のメモリ・ブロックのあるメモリ・ブロックに対応するアドレスをアサートするのに応じ、データを前記メモリ・ブロック中に書き込むステップをさらに含み、データが書き込まれる前記メモリ・ブロックとは異なるアドレスを有する、前記複数のメモリ・ブロックの前記メモリ・ブロックには前記データは書き込まれない、請求項１５に記載の方法。
【請求項２０】
複数のメモリ・ブロックを含むメモリと、
通常使用モードおよび状態トレース・モードのうちの一つにある、ブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号と、
前記複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号し、アドレス・デコーダのアドレス出力に応じて、前記アドレス出力に対応するアドレスを選択する、前記アドレス・デコーダであって、前記アドレス・デコーダの前記アドレス出力は、前記複数のメモリ・ブロックの各メモリ・ブロックに対応する、前記アドレス・デコーダと、
前記複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号であって、各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する、前記ＢＷＥ信号と、
２つ以上のマルチプレクサ（「ＭＵＸ」）であって、各ＭＵＸが前記ＢＷＥＣ信号に応じて入力を選択し、前記選択した入力を前記複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送り、各ＭＵＸへの前記入力は、前記アドレス・デコーダの対応するアドレス出力、および対応するＢＷＥ信号を含み、各ＭＵＸは、通常使用モードにある前記ＢＷＥＣ信号に応じて前記アドレス・デコーダの前記対応するアドレス出力を選択し、各ＭＵＸは、状態トレース・モードにある前記ＢＷＥＣ信号に応じて前記対応するＢＷＥ信号を選択する、前記２つ以上のＭＵＸと、
を含む装置。
【請求項２１】
各ＢＷＥ信号に対応するビットを含むＢＷＥレジスタをさらに含み、前記ＢＷＥレジスタのビットの状態が対応するＢＷＥ信号を制御する、請求項２０に記載の装置。
【請求項２２】
前記ＢＷＥＣ信号が前記状態トレース・モードにある間、
前記複数のメモリ・ブロックがリセットされるとき、各ＢＷＥ信号を前記ブロック書き込みイネーブル状態に設定し、
データが前記複数のメモリ・ブロックの各メモリ・ブロックに書き込まれた後、第一ＢＷＥ信号を前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更し、各メモリ・ブロックに書き込まれた前記データは同一のデータを含み、
前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する、前記複数のメモリ・ブロックの各メモリ・ブロックに追加データが書き込まれた後、第二ＢＷＥ信号を、順々に前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更し、各メモリ・ブロックに書き込まれた前記追加データは同一の追加データを含み、
前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する、前記複数のメモリ・ブロックの各メモリ・ブロックに追加データの各セットが書き込まれた後、前記ＢＷＥ信号が全て前記ブロック書き込みディスエーブル状態になるまで、前記ＢＷＥ信号を順々にブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更し続け、各メモリ・ブロックに書き込まれた前記追加データは同一の追加データを含む、
ＢＷＥシーケンス・モジュールをさらに含み、
メモリ・ブロックに書き込まれたデータは、前記メモリ・ブロックに対する前記ＢＷＥ信号が前記ブロック書き込みディスエーブル状態に変更された後は保存され、メモリ・ブロック群はデータ状態のシーケンスを表す、
請求項２０に記載の装置。
【請求項２３】
前記複数のメモリ・ブロックの前記一つ以上のアドレス・ラインは、前記複数のメモリ・ブロックへのアドレス・ラインのセットのサブセットを含み、前記アドレス・ラインのセットは、前記複数のメモリ・ブロック中のメモリ位置をアドレス指定し、前記アドレス・ラインのサブセットは、前記アドレス・ラインのセットの最上位ビット群に対応し、前記アドレス・ラインのサブセットは、前記複数のメモリ・ブロックのメモリ・ブロックを選定するために十分なものである、請求項２０に記載の装置。
【請求項２４】
前記ＢＷＥＣ信号を前記通常使用モードに設定する通常使用モジュールをさらに含み、前記ＭＵＸは、前記アドレス・デコーダを、前記複数のメモリ・ブロックの前記書き込みイネーブル入力端に接続し、前記通常使用モジュールは、前記複数のメモリ・ブロックを、汎用データのストレージのために使うことを可能にする、請求項２０に記載の装置。
【請求項２５】
複数のメモリ・ブロックを含むメモリ・モジュールと、
前記複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールであって、前記アドレス復号モジュールのアドレス出力は、前記複数のメモリ・ブロックの各メモリ・ブロックに対応する、前記アドレス復号モジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含むＢＷＥモジュールであって、各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する、前記ＢＷＥモジュールと、
前記複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、
通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じて前記アドレス復号モジュールの対応するアドレス出力、および
状態トレース・モードにおいて前記ＢＷＥＣ信号を受信するのに応じて対応するＢＷＥ信号、
のうちの一つを送るＭＵＸモジュールと、
第一状態が前記ブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態が前記ブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつ前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々に前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更するＢＷＥシーケンス・モジュールと、
前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第一データを書き込み、前記ＢＷＥシーケンス・モジュールが、あるメモリ・ブロックに対するＢＷＥ信号を前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更した後に、前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第二データを書き込むデータ更新モジュールであって、前記データ更新モジュールは、前記ＢＷＥシーケンス・モジュールがあるＢＷＥ信号を前記ブロック書き込みイネーブル状態から前記ブロック書き込みディスエーブル状態に変更するごとに、その後前記ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに追加データを書き込む、前記データ更新モジュールと、
を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する主題は、状態データ（ｓｔａｔｅ  ｄａｔａ）の保存に関し、さらに具体的には、メモリ・ブロックが状態データを保存するよう構成された、複数のメモリ・ブロックを有するメモリ・モジュール用いて状態データを保存することに関する。
【背景技術】
【０００２】
プロセッサ、メモリ・コントローラ、ソフトウェア、またはデータ・コンピューティングにおける他のエレメントが展開されるときには、エラーが生じるのが普通である。エラーは見付けるのが困難なことがあり、いくつかの時点でデータを保存しておくと役立つことが多い。各々の時点を「状態（ｓｔａｔｅ）」ということができる。状態データは、不具合の生じる前に、様々な時点でレジスタのコンテンツ、メモリのコンテンツなどを確定しておくのに極めて有用であり得る。状態データの検査によって、何がエラーの原因だったかを発見できることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
メモリ・ブロック中に反映された状態データを、デバッギングに、または、さまざまな時点において、メモリ中に何が包含されていたかの来歴が役立ち得る他の処理に使うことができるようにする。
【課題を解決するための手段】
【０００４】
状態をトレースするための装置を開示する。一つの実施形態において、本装置は、複数のメモリ・ブロックを有するメモリ・モジュールと、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールとを含む。アドレス復号モジュールのアドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応する。ＢＷＥモジュールは、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」：ｂｌｏｃｋ  ｗｒｉｔｅ  ｅｎａｂｌｅ）信号を含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」：ｂｌｏｃｋ  ｗｒｉｔｅ  ｅｎａｂｌｅ  ｃｏｎｔｒｏｌ）信号を受信するのに応じて、ＭＵＸモジュールは、アドレス復号モジュールの対応するアドレス出力を、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送る。状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じて、ＭＵＸモジュールは、対応するＢＷＥ信号を、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送る。
【０００５】
一つの実施形態において、本装置はＢＷＥシーケンス・モジュールを含み、該モジュールは、第一状態がブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態がブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々にブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更する。別の実施形態において、本装置は、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第一データを書き込み、ＢＷＥシーケンス・モジュールが、あるメモリ・ブロックに対するＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更した後に、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第二データを書き込む、データ更新モジュールを含む。さらなる実施形態において、データ更新モジュールは、ＢＷＥシーケンス・モジュールが一つのＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更するごとに、その後ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに追加データを書き込む。
【０００６】
一つの実施形態において、本装置は、トレース・モード・トリガ・モジュールを含み、該モジュールは、ＢＷＥシーケンス・モジュールがＢＷＥ信号を変更するに先立って、状態トレース・モードのＢＷＥＣ信号をアサートし、複数のメモリ・ブロックのあるメモリ・ブロックに対応する各ＢＷＥ信号を書き込みイネーブル状態に設定し、複数のメモリ・ブロックの各メモリ・ブロックをリセットする。別の実施形態において、ＢＷＥＣが通常使用モードにあって、ＢＷＥＣ信号が第一状態にあり、一つ以上のアドレス・ラインが、複数のメモリ・ブロックの、あるメモリ・ブロックを選択したとき、データは、そのメモリ・ブロックに書き込まれ、該データは複数のメモリ・ブロックの残りのメモリ・ブロックには書き込まれない。別の実施形態において、ＢＷＥＣ信号が状態トレース・モードにあるとき、データは、ブロック書き込みイネーブル状態のＢＷＥ信号を有する、複数のメモリ・ブロックの各メモリ・ブロックに書き込まれ、データは、書き込みディスエーブル状態のＢＷＥ信号を有する、複数のメモリ・ブロックの各メモリ・ブロックには書き込まれない。
【０００７】
一つの実施形態において、ＭＵＸモジュールは、複数のメモリ・ブロックの各メモリ・ブロックに対する、２つの入力端と１つの出力端とを具える一つ以上のマルチプレクサ（ＭＵＸ：ｍｕｌｔｉｐｌｅｘｅｒ）を含む。一つの入力はＢＷＥ信号であり、一つの入力はアドレス復号モジュールのアドレス出力であり、出力端は、メモリ・ブロックの書き込みイネーブル入力端につながっている。別の実施形態において、アドレス復号モジュールはアドレス・デコーダを含む。アドレス・デコーダは、入力として一つ以上のアドレス・ラインを受信し複数のメモリ・ブロックの各メモリ・ブロックに対応する信号を出力する、ディスクリート・ハードウェアを含む。一つ以上のアドレス・ラインの各状態は、複数のメモリ・ブロックの一つを選択する。別の実施形態において、ＢＷＥモジュールはＢＷＥレジスタを含む。ＢＷＥレジスタは、各ＢＷＥ信号に対応するビットを有するハードウェア・レジスタを含む。
【０００８】
状態データをトレースするためのシステムは、メモリ・モジュールに対するデータ読み取りおよび書き込みを制御するメモリ・コントローラを含む。メモリ・モジュールは複数のメモリ・ブロックを含む。メモリ・コントローラは、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールを含む。アドレス復号モジュールのアドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応する。メモリ・コントローラは、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を有する、ＢＷＥモジュールを含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。
【０００９】
メモリ・コントローラは、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じアドレス復号モジュールの対応するアドレス出力を、または状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じ対応するＢＷＥ信号を送る、ＭＵＸモジュールを含む。一つの実施形態において、本システムはメモリ・モジュールを含む。別の実施形態において、本システムは、メモリ・モジュールを制御し、メモリ・モジュールからデータを読み取り、メモリ・モジュールにデータを書き込む、プロセッサを含む。別の実施形態において、本システムは、該プロセッサによって制御されるコンピュータを含む。
【００１０】
状態をトレースする方法を開示する。本方法は、アドレス復号モジュールを用い、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するステップを含む。アドレス復号モジュールのアドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応する。本方法は、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を受信するステップを含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。本方法は、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に、通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じてアドレス復号モジュールの対応するアドレス出力、および状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じて対応するＢＷＥ信号、のうちの一つを送るステップを含む。
【００１１】
一つの実施形態において、本方法は、ＢＷＥＣ信号が状態トレース・モードにあるとき、第一状態がブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態がブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々にブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更するステップを含む。別の実施形態において、本方法は、メモリ・ブロックの書き込みイネーブル入力端にブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに対し、データを書き込むステップを含む。各メモリ・ブロックは、複数のメモリ・ブロックのブロックであり、ブロック書き込みイネーブル状態のＢＷＥ信号を有するメモリ・ブロックの各々に同一のデータが書き込まれる。
【００１２】
さらなる実施形態において、本方法は、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロック中に追加データを書き込む一回以上のインスタンスを含み、ブロック書き込みイネーブル状態のＢＷＥ信号を有するメモリ・ブロックへデータを書き込む各インスタンスの間で、一つのＢＷＥ信号がブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行し、追加データが書き込まれる場合、ブロック書き込みイネーブル状態のＢＷＥ信号を有するメモリ・ブロックの各々に同一の追加データが書き込まれる。別の実施形態において、本方法は、ＢＷＥＣが通常使用モードにあるとき、一つ以上のアドレス・ラインが、複数のメモリ・ブロックの、あるメモリ・ブロックに対応するアドレスをアサートするのに応じ、データをそのメモリ・ブロック中に書き込むステップを含む。データが書き込まれるメモリ・ブロックとは異なるアドレスを有する、複数のメモリ・ブロックのメモリ・ブロックにはそのデータは書き込まれない。
【００１３】
状態データをトレースするための別の装置を開示する。本装置は、複数のメモリ・ブロックを有するメモリと、通常使用モードまたは状態トレース・モードにあるブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号とを含む。本装置は、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号し、アドレス・デコーダのアドレス出力に応じて、アドレス出力に対応するアドレスを選択する、該アドレス・デコーダを含む。アドレス・デコーダのアドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応する。本装置は、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。
【００１４】
本装置は２つ以上のマルチプレクサ（ＭＵＸ）を含む。各ＭＵＸは、ＢＷＥＣ信号に応じて入力を選択し、この選択した入力を複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送る。各ＭＵＸへの入力は、アドレス・デコーダの対応するアドレス出力、および対応するＢＷＥ信号を含む。各ＭＵＸは、通常使用モードにあるＢＷＥＣ信号に応じてアドレス・デコーダの対応するアドレス出力を選択し、各ＭＵＸは、状態トレース・モードにあるＢＷＥＣ信号に応じて対応するＢＷＥ信号を選択する。
【００１５】
一つの実施形態において、本装置は、各ＢＷＥ信号に対応するビットを有するＢＷＥレジスタを含む。このＢＷＥレジスタのビットの状態が、対応するＢＷＥ信号を制御する。別の実施形態において、本装置は、ＢＷＥシーケンス・モジュールを含み、該モジュールは、ＢＷＥＣ信号が状態トレース・モードにある間、複数のメモリ・ブロックがリセットされるとき、各ＢＷＥ信号をブロック書き込みイネーブル状態に設定し、データが複数のメモリ・ブロックの各メモリ・ブロックに書き込まれた後、第一ＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更する。各メモリ・ブロックに書き込まれたデータは同一のデータを含む。ＢＷＥシーケンス・モジュールは、ブロック書き込みイネーブル状態のＢＷＥ信号を有する、複数のメモリ・ブロックの各メモリ・ブロックに追加データが書き込まれた後、第二ＢＷＥ信号を、順々にブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更する。各メモリ・ブロックに書き込まれる追加データは同一の追加データである。
【００１６】
ＢＷＥシーケンス・モジュールは、ブロック書き込みイネーブル状態のＢＷＥ信号を有する、複数のメモリ・ブロックの各メモリ・ブロックに追加データの各セットが書き込まれた後、ＢＷＥ信号が全てブロック書き込みディスエーブル状態になるまで、順々にＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更し続ける。これも同様に、各メモリ・ブロックに書き込まれる追加データは同一の追加データである。メモリ・ブロックに書き込まれたデータは、そのメモリ・ブロックに対するＢＷＥ信号がブロック書き込みディスエーブル状態に変更された後は保存され、これらのメモリ・ブロックはデータ状態のシーケンスを表す。
【００１７】
一つの実施形態において、複数のメモリ・ブロックの一つ以上のアドレス・ラインは、複数のメモリ・ブロックのアドレス・ラインのセットのサブセットである。アドレス・ラインのセットは、複数のメモリ・ブロック中のメモリ位置をアドレス指定し、アドレス・ラインのサブセットは、アドレス・ラインのセットの最上位ビット群に相当する。アドレス・ラインのサブセットは、複数のメモリ・ブロックのメモリ・ブロックを選択するために十分なものである。一つの実施形態において、本装置は、ＢＷＥＣ信号を通常使用モードに設定する通常使用モジュールを含む。通常使用モードにおいて、ＭＵＸは、アドレス・デコーダを、複数のメモリ・ブロックの書き込みイネーブル入力端に接続する。通常使用モジュールは、複数のメモリ・ブロックを、汎用データのストレージのために使うことを可能にする。
【００１８】
さらに、状態データをトレースするための別の装置も開示する。本装置は、複数のメモリ・ブロックを具えるメモリ・モジュールと、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュールとを含む。アドレス復号モジュールのアドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応する。ＢＷＥモジュールは、複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。通常使用モードにおいてブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号を受信するのに応じ、ＭＵＸモジュールは、アドレス復号モジュールの対応するアドレス出力を、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送る。状態トレース・モードにおいてＢＷＥＣ信号を受信するのに応じ、ＭＵＸモジュールは、対応するＢＷＥ信号を、複数のメモリ・ブロックの各メモリ・ブロックの書き込みイネーブル入力端に送る。
【００１９】
本装置はＢＷＥシーケンス・モジュールを含み、該モジュールは、第一状態がブロック書き込みイネーブル状態の各ＢＷＥ信号を含み、最終状態がブロック書き込みディスエーブル状態の各ＢＷＥ信号を含み、各中間状態で、ＢＷＥ信号が一つずつブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行されるように、各ＢＷＥ信号を順々にブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更する。本装置は、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第一データを書き込み、ＢＷＥシーケンス・モジュールがあるメモリ・ブロックに対するＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更した後に、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第二データを書き込む、データ更新モジュールを含む。データ更新モジュールは、ＢＷＥシーケンス・モジュールがＢＷＥ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更するごとに、その後ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに追加データを書き込む。
【００２０】
本発明の諸実施形態の利点が容易に理解できるように、上記で簡単に説明した諸実施形態のさらに詳しい説明を、添付の図面に示された具体的な諸実施形態を参照しながら提示する。これらの図面が単に一部の実施形態を示すものであり、従って範囲を限定するものでないことを理解した上で、これらの実施形態を、添付の図面を使い、さらなる具体性および詳細さをもって記述、説明する。
【図面の簡単な説明】
【００２１】
【図１】本発明による、メモリ・ブロックを使って状態データを追跡するためのシステムの一つの実施形態を示す概略ブロック図である。
【図２】本発明による、メモリ・ブロックを使って状態データを追跡するための装置の一つの実施形態を示す概略ブロック図である。
【図３】本発明による、メモリ・ブロックを使って状態データを追跡するための装置の別の実施形態を示す概略ブロック図である。
【図４】本発明による、メモリ・ブロックを使って状態データを追跡するための装置の特定の実施形態を示す概略ブロック図の第一部分である。
【図５】本発明による、メモリ・ブロックを使って状態データを追跡するための装置の特定の実施形態を示す概略ブロック図の第二部分である。
【図６】本発明による、メモリ・ブロックを使って状態データを追跡するための装置に対する真理値表である。
【図７】本発明による、メモリ・ブロックを使って状態データを追跡するための装置の例示的なタイミング図である。
【図８】本発明による、メモリ・ブロックを使って状態データを追跡する方法の一つの実施形態を示す概略フローチャート図である。
【図９】本発明による、メモリ・ブロックを使って状態データを追跡する方法の別の実施形態を示す概略フローチャート図である。
【発明を実施するための形態】
【００２２】
本明細書全体を通して、「一つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「ある実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、または類似の用語の言及は、その実施形態に関連して記述された特定の機能、構造または特性が、少なくとも一つの実施形態に含まれていることを意味する。従って、本明細書全体を通して、語句「一つの実施形態において」、「ある実施形態において」、および類似の語句は、必然ではないが、全て同じ実施形態を言及し得るが、特段の指定がある場合を除き「一つ以上だが全てではない実施形態」を意味する。用語「含む（ｉｎｃｌｕｄｉｎｇ）」、「包含する（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」およびこれらの変形は、特段の指定がある場合を除き「含むが限定はされない」ことを意味する。列挙された諸項目は、特段の指定がある場合を除き、それら項目のどれかがまたは全部が相互に排他的もしくは両立的またはその両方であることを暗示するものではない。また、用語「ある（ａ、ａｎ）」および「該（ｔｈｅ）」は、特段の指定がある場合を除き「一つ以上」のことを言う。
【００２３】
さらに、述べられた、諸実施形態の機能、利点、および特徴は任意の適切な仕方で組み合わせることが可能である。当業者は、個別の実施形態の一つ以上の特定の機能がなくても、これら諸実施形態が実施可能なことを認識できよう。他の例では、全ての実施形態中には示されていないかもしれないさらなる特徴および利点を特定の実施形態中に認識することができよう。
【００２４】
諸実施形態のこれらの特徴および利点は、以下の説明および添付の請求項からさらに十分に明確になろう、あるいは以下に述べる実施形態を実践することによって知ることができよう。当業者ならよく理解できようが、本発明の態様は、システム、方法、もしくはコンピュータ・プログラム製品またはこれらの組み合わせとして具現することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウエア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれこともある、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の一つ以上の態様は、コンピュータ可読プログラム・コードが中に具体化されている一つ以上のコンピュータ可読媒体（群）中に具現されたコンピュータ・プログラム製品の形を取ることもできる。
【００２５】
本明細書に述べる機能ユニットの多くは、それらの実装上の独立性をより具体的に際立たせるために、モジュールとして名付けられている。例えば、あるモジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、ロジック・チップ、トランジスタなど市販の半導体、あるいは他のディスクリート部品を包含する、ハードウェア回路として実装することができる。また、あるモジュールは、フィールド・プログラム可能ゲート・アレイ、プログラム可能アレイ・ロジック、プログラム可能ロジック・デバイスなどのプログラム可能ハードウエア・デバイス中に実装することができる。
【００２６】
また、諸モジュールは、さまざまな種類のプロセッサによって実行されるソフトウェア中に実装することも可能である。コンピュータ可読プログラム・コードのある特定のモジュールには、例を挙げれば、例えばオブジェクト、プロシージャ、またはファンクションとして編成が可能な、コンピュータ命令の一つ以上の物理的または論理的ブロックを含めることができる。ただし、特定のモジュールの実行可能ファイル群を物理的に一緒に配置しておく必要はなく、これらファイルには、論理的に結合されたときに当該モジュールを含みそのモジュールの所定の目的を達成する、異なる場所に格納された異種の命令群を含めることができる。
【００２７】
実際上、コンピュータ可読プログラム・コードのモジュールは、単一または多数の命令とすることができ、いくつかの異なるコード・セグメントに亘り、相異なるプログラムの間に、およびいくつかのメモリ・デバイスにまたがって、分散することが可能である。同様に、本明細書では、オペレーショナル・データも、モジュール内で識別、明確化することができ、任意の適切なフォームに具現し、任意の適切なデータ構造内に編成することができる。このオペレーショナル・データは、単一のデータ・セットとして集めること、または相異なるストレージ・デバイスへの分散を含めて異なった場所に亘って分散することができ、少なくとも部分的に、システムまたはネットワーク上の単なる電子信号として存在させることが可能である。モジュールまたはモジュールの部分がソフトウェアに実装される場合、そのコンピュータ可読プログラム・コードを、一つ以上のコンピュータ可読媒体に格納するかもしくは伝送するかまたはその両方を行うことができる。
【００２８】
コンピュータ可読媒体は、コンピュータ可読プログラム・コードを格納する有形のコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、ホログラフィック的、マイクロメカニカル的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。
【００２９】
コンピュータ可読ストレージ媒体のさらに具体的な例には、以下に限らないが、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）またはフラッシュ・メモリ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｃ）、光ストレージ・デバイス、磁気ストレージ・デバイス、ホログラフィック・ストレージ媒体、マイクロメカニカル・ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによって、もしくはこれらに関連させて、あるいはその両方で使用するためのコンピュータ可読プログラム・コードを、包含もしくは格納またはその両方が可能な任意の有形媒体とすることができる。
【００３０】
また、このコンピュータ可読媒体をコンピュータ可読信号媒体とすることもできる。コンピュータ可読信号媒体は、例えばベースバンド中にまたは搬送波の一部として具現されたコンピュータ可読のプログラム・コードを中に有する、伝播データ信号を含み得る。かかる伝播信号は、以下に限らないが、電気的、電磁気的、磁気的、光学的なものまたはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのコンピュータ可読プログラム・コードを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。コンピュータ可読信号媒体上に具現されたプログラム可読プログラム・コードは、以下に限らないが、有線、光ファイバ、無線周波数（ＲＦ：Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）など、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
【００３１】
一つの実施形態において、コンピュータ可読媒体には、一つ以上のコンピュータ可読ストレージ媒体と、一つ以上のコンピュータ可読信号媒体との組み合わせを含めることができる。例えば、コンピュータ可読プログラム・コードを、プロセッサに実行させるため、光ファイバ・ケーブルを介して電磁信号として伝播すること、これをＲＡＭストレージ・デバイスに格納することの両方が可能である。コンピュータ・プログラム製品を共用し、柔軟で自動化された仕方で複数の顧客に同時にサービスすることができる。このコンピュータ・プログラム製品を、ほとんどカスタム化不要のスケーラブルなものに標準化し、従量課金モデルのオンデマンドによる処理能力を提供することができよう。
【００３２】
該コンピュータ・プログラム製品を、一つ以上のサーバからアクセス可能な共用ファイル・システムに格納することができる。このコンピュータ・プログラム製品を、データと、アクセスされるサーバ上の中央演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）の単位の使用要求を処理するサーバと、を含むトランザクションを介して実行することができる。ＣＰＵ単位は、サーバの中央処理装置上の、分、秒、時間などの時間の単位とすることができよう。さらに、アクセスされたサーバは、ＣＰＵ単位を要する他のサーバに要求を行うこともできよう。このＣＰＵ単位は、使用量の測定法の一つを表した単なる例である。使用量の他の測定法には、以下に限らないが、ネットワーク処理情報量、メモリ使用量、ストレージ使用量、パケット伝送数、完了トランザクション数などが含まれよう。
【００３３】
さらに、前述の諸実施形態の機能、構造、または特徴は任意の適切な仕方で組み合わせることができる。諸実施形態の徹底した理解を提供するため、以下の説明において、プログラミング、ソフトウェア・モジュール、ユーザ選択、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなど数多くの具体的詳細が提示される。しかしながら、当業者は、これら具体的詳細の一つ以上が無くても、または他の方法、コンポーネント、材料などを使っても、諸実施形態が実施可能であることを認識できよう。他の例では、実施形態の態様が曖昧になるのを避けるため、周知の構造、材料、またはオペレーションは提示も説明もしない。
【００３４】
以下に、本発明の実施形態による方法、装置、システム、およびコンピュータ・プログラム製品の概略フローチャート図もしくは概略ブロック図またはこれらの両方を参照しながら、諸実施形態の態様を説明する。当然ながら、概略フローチャート図もしくは概略ブロック図またはその両方の各ブロック、および概略フローチャート図もしくは概略ブロック図またはその両方の中のブロック群の組み合わせは、ハードウェアもしくはコンピュータ可読プログラム・コードまたはその両方によって実装することができる。
【００３５】
図面中の概略フローチャート図もしくは概略ブロック図またはその両方は、本発明のさまざまな実施形態による、装置、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを示す。この点に関し、概略フローチャート図もしくは概略ブロック図またはその両方中の各ブロックは、規定の論理機能（群）を実装するためのプログラム・コードの実行可能命令を一つ以上含む、モジュール、セグメント、ハードウェアまたはコードの部分を表し得る。
【００３６】
図面中の概略フローチャート図もしくは概略ブロック図またはその両方は、可能な実装のアーキテクチャ、機能、およびオペレーションを示す。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された２つのブロックが、関与する機能によって実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さまざまな矢印形および線形が、フローチャートもしくはブロック図またはその両方の中で用いられることがあるが、これらは、対応する実施形態の範囲を制限すると理解すべきでない。実際上は、一部の矢印または他のコネクタが、示された実施形態の例示的な論理フローを示すためだけに使われていることがある。
【００３７】
例えば、矢印は、示された実施形態の列挙されたステップの間の、特定されない持続時間の待機または監視の期間を示し得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、規定された機能または動作を実施する、専用のハードウェア・ベースのシステム、または専用のハードウェアとコンピュータ可読プログラム・コードとの組み合わせによって実装可能なことにも留意する。
【００３８】
各図中のエレメントの説明に先行の図のエレメントを引用することがある。全ての図において、同じ番号は、同じエレメントの別の実施形態も含め、同じエレメントを表す。
【００３９】
図１は、本発明による、メモリ・ブロックを使って状態データを追跡するためのシステム１００の一つの実施形態を示す概略ブロック図である。一つの実施形態において、システム１００は、メモリ・コントローラ１０４中の状態トレース装置１０２と、メモリ・モジュール１０６と、プロセッサ１０８と、コンピュータ１１０とを含み、これらについては下記で説明する。
【００４０】
システム１００は、状態トレース装置１０２を含み、これについては他の図においてさらなる詳細を説明する。一つの実施形態において、状態トレース装置１０２は、メモリ・コントローラ１０４の一部である。メモリ・コントローラ１０４は、当技術分野では周知のものであり、通常、メモリ・モジュール１０６などのメモリへのデータの出し入れを制御する。一つの実施形態において、メモリ・コントローラ１０４は、プロセッサ１０８につながれており、プロセッサ１０８から命令を受信することができる。メモリ・コントローラ１０４は、例えばノースブリッジの一部として、プロセッサ１０８から分離することができ、あるいはプロセッサ１０８上のダイとすることもできる。メモリ・コントローラ１０４は、おそらくは、論理ブロック・アドレス（「ＬＢＡ」：ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）の形、または、アドレスおよびオフセット、アドレス範囲などがデータ読み取りまたは書き込みのコマンドと一緒に受信される、他の低レベルのコマンドの形で、読み取りおよび書き込み命令を受信することができる。他の実施形態において、メモリ・コントローラ１０４が、データがアドレス以外のものによって識別されるオブジェクト要求など、より高次のコマンドを受信できるようにすることが可能である。例えば、データは論理的識別子を使って識別することができ、メモリ・コントローラ１０４には、論理的識別子と実際のメモリ位置とのマッピングを含めることができる。
【００４１】
一つの実施形態において、メモリ・コントローラ１０４は、直接メモリアクセス（「ＤＭＡ」：ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）処理または遠隔ＤＭＡ（「ＲＤＭＡ」：ｒｅｍｏｔｅ  ＤＭＡ）処理に対応し、データをデータ・ストレージの場所からメモリに直接転送する能力を有する。メモリ・コントローラ１０４には、データの書き込みおよび読み取りのために特定のデータの場所にアクセスするための、メモリ・モジュール１０６などのメモリへのアドレス・ラインおよびデータ・ラインを含めることができる。一つの実施形態において、メモリ・ブロックへのブロック書き込みイネーブル入力が、そのメモリ・ブロックにデータを書き込むかどうかの制御をする。例えば、ある特定のアドレスが選択されて、メモリ・コントローラ１０４がブロック書き込みイネーブル（「ＢＷＥ」）信号をアサートすると、データ・ライン上に存在するデータを当該アドレスに対応するメモリ位置に書き込むことができる。この書き込みは、一般的な書き込みコマンドに応じて行うことができ、あるいは状態トレース・アクティビティの一部とすることも可能で、これについては後記でさらに詳細に説明する。
【００４２】
一つの実施形態において、システム１００は、複数のメモリ・ブロックを含むメモリ・モジュール１０６を含む。各メモリ・ブロックは別々にアクセスすることができる。例えば、システム１００がある特定の数のアドレス・ラインを含んでいる場合、上位アドレス・ビットに対応する一つ以上のアドレス・ラインによって、個別のメモリ・ブロック群を選択することが可能である。簡単な例として、アドレスが８ビットを包含する場合、２つの上位ビットに対応する２つのアドレス・ラインを使って、メモリ・モジュール１０６中の４つのメモリ・ブロックを選択することができる。２つのアドレス・ライン上の論理「００」の番地は第一メモリ・ブロックにアクセスすることができ、２つのアドレス・ライン上の「０１」の番地は第二メモリ・ブロックにアクセスすることができ、２つのアドレス・ライン上の「１０」の番地は第三メモリ・ブロックにアクセスすることができ、２つのアドレス・ライン上の「１１」の番地は第四メモリ・ブロックにアクセスすることができる。残り６つの低位レベルのアドレス・ラインによって、４つのメモリ・ブロックの各々の中のメモリ位置を選択することができる。
【００４３】
メモリ・モジュール１０６は、メモリ・コントローラ１０４によって制御されるメモリの全部または一部であり得る。例えば、メモリ・コントローラ１０４は、いくつかのメモリを制御することができ、その場合、メモリ・モジュール１０６のメモリ・ブロックを、状態トレース装置１０２のためにも使えるように制御することができよう。
【００４４】
プロセッサ１０８は、一般的なマイクロプロセッサとすることも、専用の状態マシンとすることも、フィールド・プログラム可能ゲート・アレイ、プログラム可能アレイ・ロジック、プログラム可能ロジック・デバイスなど、プログラム可能ハードウエア・デバイスとすることも、または類似のものとすることも可能である。プロセッサ１０８、およびシステム１００の他のコンポーネントは、特定用途向け集積回路（「ＡＳＩＣ」：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）などの一部とすることが可能である。コンピュータ１１０は、メインフレーム・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマート・フォン、タブレット・コンピュータ、ワークステーション、またはメモリを具えた任意の他のデバイスとすることができる。当業者は、状態トレース装置１０２が使用可能な、他のメモリ・コントローラ、メモリ・モジュール１０６、プロセッサ１０８、およびコンピュータ１１０（または類似デバイス）を認識できよう。
【００４５】
図２は、本発明による、メモリ・ブロックを使って状態データを追跡するための装置２００の一つの実施形態を示す概略ブロック図である。一つの実施形態において、装置２００は、メモリ・モジュール２０６を有する状態トレース装置１０２と、アドレス復号モジュール２０２と、ＢＷＥモジュール２０４と、ＭＵＸモジュール２０６とを含み、これらについては後記で説明する。示された実施形態において、メモリ・モジュール１０６が状態トレース装置１０２の内部に示されていることに留意する。他の実施形態では、状態トレース装置１０２の外部にメモリ・モジュール１０６を配置することができる。メモリ・モジュール１０６は、図１に示されたメモリ・モジュール１０６と同様のものとすることができる。
【００４６】
一つの実施形態において、状態トレース装置１０２は、メモリ・モジュール１０６中の複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号するアドレス復号モジュール２０２を含む。アドレス復号モジュール２０２のアドレス出力は、メモリ・モジュール１０６中の複数のメモリ・ブロックの各メモリ・ブロックに対応する。例えば、メモリ・モジュール１０６が４つのメモリ・ブロックを含む場合、２つのアドレス・ラインを使ってこれら４つのメモリ・ブロックの各々を選択することが可能である。アドレス復号モジュール２０２には、各メモリ・ブロックに対し一つずつ４つのアドレス出力を含めることができる。２つのメモリ・ブロックを有するメモリ・モジュール１０６には、一つのアドレス・ラインを使ってアクセスすることが可能なので、２ブロックのメモリ・モジュール１０６に対するアドレス復号モジュール２０２は１つのアドレス・ラインを受信すればよい。８つのメモリ・ブロックを有するメモリ・モジュール１０６には、３つのアドレス・ラインを使ってアクセスが可能であり、従って、８ブロックのメモリ・モジュール１０６に対するアドレス復号モジュール２０２は、３つのアドレス・ラインに接続すればよい。
【００４７】
本発明の一つの態様において、メモリ・モジュール１０６は、通常使用モードにおいて一般データのストレージに用いることができ、状態トレース・モードでは、メモリ・モジュール１０６のメモリ・ブロックを状態データの格納に使うことができる。メモリ・モジュール１０６中に格納可能な状態の数が、状態トレース・モードにおいて利用可能なメモリの量に影響することに留意する。例えば、４つの状態が格納される場合、一つの状態データを格納するために利用可能なメモリ・モジュール１０６中のメモリ量は、メモリ・モジュール１０６が一般データのストレージに使われる場合の容量の４分の１である。８つの状態が格納される場合、一つの状態データを格納するために利用可能なメモリ・モジュール１０６中のメモリ量は、メモリ・モジュール１０６が一般データのストレージに使われる場合の容量の８分の１となる。状態トレース装置１０２のこのメモリ量の低減特性は、後記の各種実施形態の説明を通してさらに容易に理解できよう。
【００４８】
一つの実施形態において、状態トレース装置１０２は、メモリ・モジュール１０６中の複数のメモリ・ブロックの各メモリ・ブロックに対応するブロック書き込みイネーブル（「ＢＷＥ」）信号を含むＢＷＥモジュール２０４、を含む。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。一つの実施形態において、ブロック書き込みイネーブル状態は論理「１」であり、ブロック書き込みディスエーブル状態は論理「０」である。ＢＷＥ信号を使って、状態トレース・モードにおいて、メモリ・ブロックに前に書き込まれたデータを保存するため、そのメモリ・ブロックへの書き込みを無効にすることができ、しかして、ＢＷＥ信号がブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行した直前の時点におけるデータの状態を保存することができる。
【００４９】
メモリ・モジュール１０６がリセットされる場合、通常、ＢＷＥモジュール２０４のＢＷＥ信号はブロック書き込みイネーブル状態にあるか、または特定の実施形態では、論理「０」状態である。このとき、メモリ・モジュール１０６へのデータの書き込みが可能になり、メモリ・モジュール１０６中の複数のメモリ・ブロックの各メモリ・ブロックに同一のデータが書き込まれる。一つの実施形態において、あるメモリ・ブロックに対するＢＷＥ信号がブロック書き込みディスエーブル状態、論理「１」に移行し、次回のデータがメモリ・モジュール１０６のメモリ・ブロックに書き込まれるとき、ブロック書き込みディスエーブル状態のＢＷＥ信号を有するそのメモリ・ブロックは、前回のデータ上へのデータ上書きをさせないようにし、しかして前のデータが保護される。
【００５０】
一つの実施形態において、ＢＷＥモジュール２０４はＢＷＥレジスタを含む。ＢＷＥレジスタは、各ＢＷＥ信号がＢＷＥレジスタ中のビットに対応する、ハードウェア・レジスタとすることができる。例えば、特定のビット・パターンをＢＷＥレジスタに格納することによって、ＢＷＥ信号を制御することが可能である。ある特定の実施形態が４つのメモリ・ブロックを有するメモリ・モジュール１０６を含む場合、ＢＷＥレジスタは４ビットを有することになる。ＢＷＥレジスタに「１０００」が格納される場合、この第一ＢＷＥ信号は、対応する第一メモリ・ブロックのデータの書き込みを禁止し、残りのＢＷＥ信号は論理「０」として、これにより残りのメモリ・ブロックのデータの書き込みを可能にする命令となり得る。
【００５１】
一つの実施形態において、状態トレース装置１０２はＭＵＸモジュール２０６を含む。ＭＵＸモジュール２０６は、メモリ・モジュール１０６の各メモリ・ブロックに対する、少なくとも一つの出力端と２つの入力端とを有する。ブロック書き込みイネーブル制御（「ＢＷＥＣ」）信号が、例えば論理「０」の、状態トレース・モードにある場合、ＭＵＸモジュール２０６は、ＢＷＥ信号をＭＵＸモジュール２０６の出力端に接続し、この出力端はメモリ・モジュール１０６のメモリ・ブロックの書き込みイネーブル入力端に接続されている。ＢＷＥモジュール２０４の各ＢＷＥ信号は、別々のＭＵＸ出力端に接続されており、従って、各ＢＷＥ信号は一つのメモリ・ブロックの書き込みイネーブル信号入力端に入力される。ＢＷＥＣ信号が状態トレース・モードにある場合、ＢＷＥ信号は、どのメモリ・ブロックがデータを書き込むために利用可能かを制御する。ＢＷＥＣ信号は、ＭＵＸモジュール２０６の各ＭＵＸの制御入力端に接続することができる。一つの実施形態において、ＭＵＸモジュール２０６はＭＵＸ群の集合体である。別の実施形態では、ＭＵＸモジュール２０６は、各出力端がＢＷＥＣ信号に基づいて少なくとも２つの入力端を選択することが可能な複数の出力端を有する、一つのＭＵＸを有することができる。
【００５２】
ＢＷＥＣ信号が通常使用モード（例えば、論理「１」）にある場合、ＭＵＸモジュール２０６は、アドレス復号モジュール２０２のアドレス出力端をＭＵＸの出力端に接続し、ＭＵＸ出力端はメモリ・ブロックの書き込みイネーブル入力端に接続されている。一つの実施形態において、各アドレス復号モジュール２０２の各アドレス出力端は、メモリ・モジュール１０６の対応するメモリ・ブロックに接続している。通常使用モードにおいて、データがある特定のアドレスに書き込まれる場合、アドレス復号モジュール２０２へのアドレス・ラインが、選択されたアドレスに対応する、メモリ・モジュール１０６のメモリ・ブロックへのデータの書き込みを可能にすることになる。一つの実施形態において、ＢＷＥＣ信号は、レジスタ中のビットに対応している。例えば、このビットは、ＢＷＥレジスタの部分とすることができ、ここで、いくつかのビットがＢＷＥ信号群に対応し、一つのビットが当該ＢＷＥＣ信号に対応する。別の実施形態において、ＢＷＥＣ信号は別々のレジスタに対応させることができ、あるいは、ＢＷＥＣ信号を、何らかの他のレジスタの部分であるビットとすることも可能である。
【００５３】
図３は、本発明による、メモリ・ブロックを使って状態データを追跡するための装置３００の別の実施形態を示す概略ブロック図である。一つの実施形態において、装置３００は、アドレス復号モジュール２０２と、ＢＷＥモジュール２０４と、ＭＵＸモジュール２０６とを有する状態トレース装置１０２を含み、これらは、図２の装置２００に関連して説明したものとほぼ同様である。示された実施形態中の状態トレース装置１０２内にはメモリ・モジュール１０６は含まれておらず、該モジュールを状態トレース装置１０２の外部に設けることが可能である。さまざまな実施形態において、装置３００は、ＢＷＥシーケンス・モジュール３０２と、データ更新モジュール３０４と、トレース・モード・トリガ・モジュール３０６とを含み、これらについては後記で説明する。
【００５４】
一つの実施形態において、状態トレース装置１０２は、各ＢＷＥ信号を、順々にブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更するＢＷＥシーケンス・モジュール３０２を含む。一つの実施形態において、第一状態がブロック書き込みイネーブル状態の各ＢＷＥ信号を含むことができ、最終状態がブロック書き込みディスエーブル状態の各ＢＷＥ信号を含むことができ、各中間状態で、ＢＷＥ信号が一つずつブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に移行される。簡単な例として、メモリ・モジュール１０６が４つのメモリ・ブロックを含む場合、ＢＷＥシーケンス・モジュール３０２は、各々が論理「０」（すなわち「００００」）を有するようにＢＷＥ信号を初期化することができる。ＢＷＥシーケンス・モジュール３０２は、ＢＷＥ信号に、「１０００」への第一移行、「１１００」への第二移行、「１１１０」への第三移行、および「１１１１」への第四移行をさせることができる。
【００５５】
別の実施形態において、状態トレース装置１０２は、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに第一データを書き込む、データ更新モジュール３０４を含む。また、データ更新モジュール３０４は、ＢＷＥシーケンス・モジュール３０２があるメモリ・ブロックに対してブロック書き込みイネーブル状態をブロック書き込みディスエーブル状態に変更した後で、ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに、第二データを書き込む。以降、データ更新モジュール３０４は、ＢＷＥシーケンス・モジュール３０２が、あるＢＷＡ信号をブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変更するごとに、その後ブロック書き込みイネーブル状態のＢＷＥ信号を有する各メモリ・ブロックに追加データを書き込むことができる。状態トレース・モードにおいて、メモリ・モジュール１０６のメモリ・ブロックにデータが書き込まれるとき、各メモリ・ブロックに同一のデータが書き込まれる。
【００５６】
ＢＷＥシーケンス・モジュール３０２とデータ更新モジュール３０４とは、各メモリ・ブロックがデータの状態を表せるように、各データ書き込みの後で協働してＢＷＥ信号を変更することができる。言い換えれば、各メモリ・ブロックには、ある特定の時間に書き込まれたデータを含めることができる。状態データは、デバッグ作業過程のさまざまな時点で、メモリのコンテンツを判定するため使用することができる。
【００５７】
一つの実施形態において、状態トレース装置１０２はトレース・モード・トリガ・モジュール３０６を含み、該モジュールは、ＢＷＥシーケンス・モジュール３０２が、状態トレース・モードでＢＷＥＣ信号をアサートして、メモリ・モジュール１０６のメモリ・ブロックに対応する各ＢＷＥ信号を書き込みイネーブル状態に設定するため信号を変更するのに先立って作動し、さらに、メモリ・モジュール１０６の各メモリ・ブロックをリセットする。一つの実施形態において、トレース・モード・トリガ・モジュール３０６は、メモリ・ブロック中の各メモリ位置にデータを書き込んで、メモリ・ブロックをリセットすることができる。例えば、トレース・モード・トリガ・モジュール３０６は、メモリ・ブロック中の各メモリ位置に全て０または全て１を書き込むことができる。別の実施形態において、トレース・モード・トリガ・モジュール３０６は、メモリ・ブロック、ＢＷＥ信号、または他のエレメントを、状態トレース・モードに対して準備するために別のステップもしくは追加のステップまたはその両方を取る。
【００５８】
図４および図５はそれぞれ、本発明による、メモリ・ブロックを使って状態データを追跡するための装置４００の特定の実施形態を示す概略ブロック図の、第一部分および第二部分である。図４は、メモリ・ブロック０（４０２）、メモリ・ブロック１（４０４）、メモリ・ブロック２（４０６）、およびメモリ・ブロック３（４０８）を有するメモリ・モジュール１０６のある特定の実施形態を示す。各メモリ・ブロック４０２〜４０８は、ブロック書き込みイネーブル入力端（「ＢＷＥＮ」）、アドレス入力端（「Ａ」）、およびデータ入力端（「Ｄ」）を含む。データ入力端およびアドレス入力端の各々に対し単一のラインが示されているが、当業者は、この単一のラインが複数のアドレス・ラインおよびデータ・ラインを表し得ることに気付いていよう。一つの実施形態において、各メモリ・ブロック４０２〜４０８は、ＢＷＥＮ入力端が低のときデータを書き込むことができる。示されたメモリ・コントローラ１０４は簡略化されており、図５にさらなる詳細が示されている状態トレース装置１０２を含む。メモリ・コントローラ１０４上のデータ・ポートおよびアドレス・ポートは、通常、メモリ・モジュール１０６へのデータ伝送の制御に使用される。メモリ・ブロック４０２〜４０８への各ＢＷＥＮ入力端は、状態トレース装置１０２への別々の接続を含み、これらはＢＷＥＮ０、ＢＷＥＮ１、ＢＷＥＮ２、およびＢＷＥＮ３と表記されている。図５では、ＢＷＥＮ信号がさらに明確にされている。
【００５９】
図５は、図４の状態トレース装置に合致する状態トレース装置１０２を含む。この状態トレース装置１０２は、状態トレース装置１０２の一つの実施形態を含み、これには、図２および図３の装置２００、３００に関連して説明したものとほぼ同様なモジュール群２０２、２０４、２０６、３０２、３０４、３０６を含めることができる。示された実施形態において、アドレス復号モジュール２０２は、アドレス・ラインＡ０およびＡ１を復号するための、さまざまな反転入力端を有するＮＡＮＤゲートを含む。入力として２つのアドレス・ラインを使って、最大４つのアドレス位置を選択することが可能で、各アドレス位置を一つのメモリ・ブロック（例、４０２）に対応させることができる。例えば、示された論理回路に基づけば、Ａ０が論理「０」でＡ１が論理「０」のとき、アドレス復号モジュール２０２の最上部のＮＡＮＤゲートは論理「０」の出力を有し、他のＮＡＮＤゲートは論理「１」の出力を有する。
【００６０】
該状態トレース装置１０２は、４つのＢＷＥ信号、ＢＷＥ０、ＢＷＥ１、ＢＷＥ２、およびＢＷＥ３に対応する４つのビットを具えたＢＷＥレジスタ４１０を有するＢＷＥモジュール２０４を含む。ＢＷＥレジスタ４１０のコンテンツが変わると、ＢＷＥ信号が変化する。一つの実施形態において、状態トレース装置１０２は、ＢＷＥＣレジスタ４１２を含み、ＢＷＥＣレジスタ４１２の変更によりＢＷＥＣ信号が変わる。一つの実施形態において、状態トレース装置１０２は、ＢＷＥシーケンス・モジュール３０２と、データ更新モジュール３０４と、トレース・モード・トリガ・モジュール３０６とを含み、これらは、ＢＷＥレジスタ４１０、ＢＷＥＣレジスタ４１２、およびタイミングに作用する。例えば、トレース・モード・トリガ・モジュール３０６は、ＢＷＥレジスタ４１０を「００００」に、ＢＷＥＣレジスタ４１２を「０」に設定して、メモリ・ブロック４０２〜４０８をリセットすることができる。ＢＷＥシーケンス・モジュール３０２は、ＢＷＥレジスタ４１０のコンテンツを順々に変更することができる。データは、ＢＷＥシーケンス・モジュール３０２が、データ更新とデータ更新との間にＢＷＥレジスタ４１０を変更するように、データ更新モジュール３０４によって書き込むことができる。
【００６１】
一つの実施形態において、状態トレース装置１０２は、４つのＭＵＸを有するＭＵＸモジュール２０６を含む。各ＭＵＸは、ＢＷＥ信号に接続された入力端と、アドレス復号モジュール２０２の出力端に接続された入力端とを有する。また、各ＭＵＸは、図示のように、図４中のメモリ・モジュール１０６のメモリ・ブロック４０２〜４０８に接続する、ＢＷＥＮ信号である出力端を有する。図６は、図４および図５の装置４００に対応する真理値表である。ＢＷＥＣが低（すなわち論理「０」）のとき、アドレス・ラインＡ０、Ａ１は無視され、ＢＷＥ信号の状態が、メモリ・ブロック４０２〜４０８のＢＷＥＮ入力端に出力される。ＢＷＥＣが高（すなわち論理「１」）のときは、ＢＷＥ信号が無視される。また、ＢＷＥＣが高のときは、Ａ０、Ａ１を復号して得られた値が適切なＢＷＥＮ信号端に出力され、適切なメモリ・ブロック４０２〜４０８がデータ書き込みイネーブルとなる。例えば、ＢＷＥＣが高でＡ０およびＡ１が低の場合、ＢＷＥＮ０は低であり、しかして、データのメモリ・ブロック０（４０２）への書き込みを有効にし、ＢＷＥＮ１、ＢＷＥＮ２、およびＢＷＥＮ３は高であり、従って他のメモリ・ブロック４０４〜４０８へのデータ書き込みは無効となる。
【００６２】
図７は，本発明による、メモリ・ブロックを使って状態データを追跡するための装置の例示的なタイミング図６００である。一つの実施形態において、例６００は、図４および図５の装置４００に対応する。この例において、時間Ｔ０の前は、ＢＷＥＣレジスタ４１２およびＢＷＥレジスタ４１０は全てリセットされており、従って各ビットは低である。時間Ｔ０の後、メモリ・ブロック４０２〜４０８のコンテンツが全て「００」になるように、メモリ・ブロック０〜３（４０２〜４０８）にデータが書き込まれる。一つの実施形態において、トレース・モード・トリガ・モジュール３０６は、メモリ・ブロックと、ＢＷＥＣレジスタ４１２およびＢＷＥレジスタ４１０のコンテンツとをリセットする。
【００６３】
時間Ｔ１の後、「ＡＡ」が、各メモリ・ブロック４０２〜４０８の位置０、１、２、および３に書き込まれる。全４つのメモリ・ブロック４０２〜４０８は、この時点において最新の状態データを含む。一つの実施形態において、データ更新モジュール３０４がメモリ・ブロック４０２〜４０８にデータを書き込む。時間Ｔ２の前に、ＢＷＥ０が高に変更される。時間Ｔ２の後、メモリ・ブロック１、２、および３（４０４、４０６、４０８）のメモリ位置２および３に、「ＢＢ」が書き込まれる。時間Ｔ３の前に、ＢＷＥ１が高に変更され、ＢＷＥ０は高のままである。これは、メモリ・ブロック１（４０４）への書き込みを無効にする。時間Ｔ３の後、メモリ・ブロック２、および３（４０６、４０８）の位置１および２に、「ＣＣ」が書き込まれる。メモリ・ブロック０および１（４０２、４０４）は変わらず、しかして時間Ｔ３前の状態データが保たれる。
【００６４】
時間Ｔ４の前に、ＢＷＥ２が高に変更され、この間ＢＷＥ０およびＢＷＥ１は高のままである。ＢＷＥ３は低に留まる。メモリ・ブロック０、１、および２（４０２、４０４、４０６）への書き込みは無効化され、従って、メモリ・ブロック３（４０８）だけが書き込みのため利用可能である。時間Ｔ４の後、メモリ・ブロック３（４０８）中のメモリ位置２および３に「ＤＤ」が書き込まれる。この時点で、メモリ・ブロック３（４０８）は時間Ｔ４後の最新のデータ状態を反映し、メモリ・ブロック２（４０６）は時間Ｔ３後のデータ状態を反映し、メモリ・ブロック１（４０４）は時間Ｔ２後のデータ状態を反映し、メモリ・ブロック０（４０２）は時間Ｔ１後のデータ状態を反映している。メモリ・ブロック４０２〜４０８中に反映された状態データは、デバッギングに、または、さまざまな時点において、メモリ中に何が包含されていたかの来歴が役立ち得る他の処理に使うことができる。
【００６５】
なお、提示された例６００は、順次に変更されるデータを示しているが、他の実施形態においては、ＢＷＥ信号の変更と変更との間に、データが一回以上変更されることがある。さらに、他の諸実施形態は、メモリ・モジュール１０６中に４つより多いまたは少ないメモリ・ブロックを含み得る。他の諸実施形態において、メモリ・モジュール１０６は、プロセッサ１０８にアクセスされる、またはメモリ・コントローラ１０４に制御されるメモリの一部とすることもまたは全部とすることも可能である。提示された例６００では、簡明化のため少数のビットだけが変更されているが、当業者は、メモリ・ブロックが、６４ビット、１２８ビットなどもっと多くのビットを有し得ること、および一つのメモリ・ブロックが多くのアドレス可能メモリ位置を有し得ることに気付いていよう。他の諸実施形態では、メモリ・ブロックを小さくすることができ、レジスタ・データを反映することが可能である。当業者は、状態トレース装置１０２と、複数のメモリ・ブロックを有するメモリ・モジュール１０６を使った他の構成を用いることができることに気付いていよう。
【００６６】
図８は、本発明による、メモリ・ブロックを使って状態データを追跡する方法７００の一つの実施形態を示す概略フローチャート図である。方法７００が開始され、複数のメモリ・ブロックの一つ以上のアドレス・ラインを復号する７０２。アドレス出力は、複数のメモリ・ブロックの各メモリ・ブロックに対応している。一つの実施形態において、アドレス復号モジュール２０２は、アドレス・ラインを復号し７０２、各メモリ・ブロックに対応するアドレス出力は、アドレス復号モジュール２０２のアドレス出力である。
【００６７】
方法７００は、複数のメモリ・ブロックの各メモリ・ブロックに対応するＢＷＥ信号を受信する７０４。各ＢＷＥ信号は、ブロック書き込みイネーブル状態とブロック書き込みディスエーブル状態とを有する。一つの実施形態において、ＢＷＥモジュール２０４はＢＷＥ信号群を含み、該モジュールにはＢＷＥレジスタ４１０を含めることができる。方法７００は、ＢＷＥＣ信号の状態を判定する７０６。方法７００が、ＢＷＥＣ信号は状態トレース・モードにあると判定した７０６場合、方法７００は、各メモリ・ブロックに対応するＢＷＥ信号を当該メモリ・ブロックのブロック書き込みイネーブル入力端に送って７０８、方法７００は終了する。方法７００が、ＢＷＥＣ信号は通常使用モードにあると判定した７０６場合、方法７００は、アドレス・デコーダの出力を対応するメモリ・ブロックのブロック書き込みイネーブル入力端に送って７１０、方法７００は終了する。一つの実施形態において、ＭＵＸモジュール２０６は、ＢＷＥＣ信号が状態トレース・モードまたは通常使用モードのいずれにあるのかを判定し７０６、メモリ・ブロックに、ＢＷＥ信号を送る７０８か、またはアドレス・デコーダの出力を送る７１０。
【００６８】
図９は、本発明による、メモリ・ブロックを使って状態データを追跡する方法８００の別の実施形態を示す概略フローチャート図である。方法８００が開始され、ＢＷＥＣ信号が状態トレース・モードにあることを判定する８０２。一つの実施形態において、ＭＵＸモジュール２０６は、ＢＷＥＣ信号が状態トレース・モードにあることを判定する８０２。方法８００は、メモリ・ブロックおよびＢＷＥレジスタをリセットする８０４。一つの実施形態において、トレース・モード・トリガ・モジュール３０６が、ＢＷＥレジスタおよびメモリ・ブロックをリセットする８０４。
【００６９】
方法８００は、メモリ・ブロックにデータを書き込み８０６、一つのＢＷＥ信号を変更する８０８。一つの実施形態において、ＢＷＥ信号が、ブロック書き込みイネーブル状態からブロック書き込みディスエーブル状態に変わる８０８。例えば、ＢＷＥ信号が、論理「０」から論理「１」に変わる８０８。データ更新モジュール３０４がメモリ・ブロックにデータを書き込む８０６ことができ、ＢＷＥシーケンス・モジュール３０２はＢＷＥ信号を変更する８０８ことができる。方法８００は、変更対象となるさらなるＢＷＥ信号があるかどうかを判定する８１０。例えば、４つのＢＷＥ信号があり、第一ＢＷＥ信号（例、ＢＷＥ０）が変更された８０８場合、方法８００は、さらなる変更対象のＢＷＥ信号があると判定する８１０ことができる。
【００７０】
方法８００が、さらなる変更対象のＢＷＥ信号があると判定した８１０場合、方法８００は戻って、ブロック書き込みイネーブル状態のＢＷＥ信号を有するメモリ・ブロックに追加データを書き込む８０６。方法８００が、変更対象のＢＷＥ信号はもうないと判定した８１０場合、方法８００は、メモリ・ブロック中に格納された状態データを評価して８１２、方法８００は終了する。一つの実施形態において、さらなる変更対象のＢＷＥ信号があるかどうかはＢＷＥシーケンス・モジュール３０２が判定する８１０。
【００７１】
これら諸実施形態は、他の具体的な形態で実践することが可能である。説明した諸実施形態は、あらゆる点で、単なる例示的かつ非限定的なものと見なすべきである。従って、本発明の範囲は、前述の説明よりもむしろ添付の請求項によって示される。これら請求項と等価の意図および範囲内に入る全ての変更は、請求項の範囲内に包含されるべきものである。
【符号の説明】
【００７２】
１００    システム
１０２    状態トレース装置
１０４    メモリ・コントローラ
１０６    メモリ・モジュール
１０８    プロセッサ
１１０    コンピュータ
【図１】
2014026645.tif 000003
【図２】
2014026645.tif 000004
【図３】
2014026645.tif 000005
【図４】
2014026645.tif 000006
【図５】
2014026645.tif 000007
【図６】
2014026645.tif 000008
【図７】
2014026645.tif 000009
【図８】
2014026645.tif 000010
【図９】
2014026645.tif 000011