(57)【要約】データマスクマップは、記憶装置に多様な方法でプログラムすることができる。一実施形態によれば、データマスクは、データマスクビットかデータチャンクを並べ替える選択デバイスにハードワイヤされる。別の実施形態によれば、データマスクマップはメモリの任意の位置から取り出される。更に別の実施形態によれば、データマスクマップはアルゴリズムによって決定される。
2005521176.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムから、前記メモリシステムのメモリモジュールで用いるデータマスクマッピング方式を示す情報を取得するステップと、
前記情報に基づいて前記データマスクマッピング方式を決定するステップと
を含む方法。
【請求項２】
請求項１記載の方法であって、前記取得ステップは、
前記メモリモジュールに前記情報を送信するように命令する、少なくとも１つの命令を前記メモリモジュールに送信するステップと、
前記メモリモジュールから前記情報を受信するステップと
を含むことを特徴とする方法。
【請求項３】
請求項２記載の方法であって、前記メモリモジュールから前記情報を受信するステップは、前記情報を前記メモリモジュールのシリアルプレゼンスディテクト（ＳＰＤ）から受信するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法であって、前記ＳＰＤから前記情報を受信するステップは、前記データマスクマッピング方式を示す指標を受信するステップを含むことを特徴とする方法。
【請求項５】
請求項３記載の方法であって、前記ＳＰＤから前記情報を受信するステップは、前記データマスクマッピング方式を受信するステップを含むことを特徴とする方法。
【請求項６】
請求項１記載の方法であって、
前記取得ステップは、少なくとも一つのテストデータマスクパターンと少なくとも一つのテストデータパターンを前記メモリモジュールのメモリ領域に書き込み、前記少なくとも一つのテストデータマスクパターンを用いて変更された前記少なくとも一つのテストデータパターンを、少なくとも一つの結果データパターンとして前記メモリ領域から読み出すステップとを含み、
前記決定ステップは、前記少なくとも一つの結果データパターンに基づいて、前記メモリ領域に対して用いる前記データマスクマッピング方式の一部を決定するステップを含むことを特徴とする方法。
【請求項７】
請求項６記載の方法であって、前記書込みステップは、
第１のテストデータパターンを前記メモリ領域に書き込む第１の書き込み処理を実行するステップと、
前記メモリ領域に第２の書き込み処理を実行するステップとを含み、前記第２の書き込み処理は第２のテストデータパターンとテストデータマスクパターンとを含み、前記テストデータマスクパターンは、前記第２のテストデータパターン中の特定データチャンクを書き込み禁止にしないためのものであることを特徴とする方法。
【請求項８】
メモリコントローラと出力とを含む装置であって、
前記メモリコントローラは、前記メモリコントローラにデータマスクマッピング方式をプログラムする、ハードワイヤされた選択デバイスを有し、前記データマスクマッピング方式は、少なくとも一つのデータマスクビットをメモリモジュールの少なくとも一つのデータチャンクに関連付け、
前記出力は前記メモリモジュールに接続されることを特徴とする装置。
【請求項９】
請求項８記載の装置であって、前記ハードワイヤされた選択デバイスは、前記少なくとも一つのデータマスクビットと前記少なくとも一つのデータチャンクの少なくとも一部とを受信することを特徴とする装置。
【請求項１０】
請求項９記載の装置であって、前記ハードワイヤされた選択デバイスは、前記データマスクマッピング方式に従って、前記少なくとも一つのデータチャンクの一つに関連付けるべき前記少なくとも一つのデータマスクビットから一つを選択することを特徴とする装置。
【請求項１１】
請求項８記載の装置であって、前記ハードワイヤされた選択デバイスは、前記データマスクマッピング方式を導入することを特徴とする装置。
【請求項１２】
メモリコントローラと出力とを含む装置であって、
前記メモリコントローラは、前記メモリコントローラのデータマスクマッピング方式を示す情報を有する記憶装置を含み、
前記出力は前記メモリモジュールに接続されることを特徴とする装置。
【請求項１３】
請求項１２記載の装置であって、前記記憶装置は、前記データマスクマップをソフトウェアでロード可能なことを特徴とする装置。
【請求項１４】
請求項１２記載の装置であって、前記記憶装置は、前記データマスクマップをＢＩＯＳでロード可能なことを特徴とする装置。
【請求項１５】
請求項１２記載の装置であって、前記記憶装置は、前記情報を製造時に含むことを特徴とする装置。
【請求項１６】
請求項１２記載の装置であって、前記情報は、前記データマスクマッピング方式を示す少なくとも一つの指標を含むことを特徴とする装置。
【請求項１７】
請求項１２記載の装置であって、前記情報は、前記データマスクマッピング方式を含むことを特徴とする装置。
【請求項１８】
少なくとも一つのデータマスクマッピング方式を用いて、少なくとも一つのデータマスクビットを少なくとも一つのデータチャンクに関連付けるメモリモジュールと、
前記メモリモジュールに接続されるメモリコントローラとを含み、前記メモリコントローラに、前記メモリモジュールで用いられる前記少なくとも一つのデータマスクマッピング方式がプログラムされることを特徴とするシステム。
【請求項１９】
請求項１８記載のシステムであって、前記メモリモジュールは、前記少なくとも一つのデータマスクマッピング方式の少なくとも一つを用いる、第１及び第２のメモリランクを含むことを特徴とするシステム。
【請求項２０】
請求項１９記載のシステムであって、前記第１のメモリランクは、前記第２のメモリランクとは異なるデータマスクマッピング方式を用いることを特徴とするシステム。
【請求項２１】
請求項１９記載のシステムであって、前記第１のメモリランクは、前記第２のメモリランクと同じデータマスクマッピング方式を用いることを特徴とするシステム。
【請求項２２】
請求項１８記載のシステムであって、前記メモリコントローラは、前記メモリモジュールで用いられる前記少なくとも一つのデータマスクマッピング方式の一つがプログラムされる記憶装置を含むことを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムであって、前記記憶装置は、前記データマスクマッピング方式に従って前記少なくとも一つのデータチャンクに関連付けられる前記少なくとも一つのデータマスクビットの一つを選択する選択デバイスに接続されることを特徴とするシステム。
【請求項２４】
命令を供給するコンピュータ読み取り可能な媒体であり、
メモリシステムから、前記メモリシステムのメモリモジュールで用いるデータマスクマッピング方式を示す情報を取得するステップと、
前記情報に基づいて前記データマスクマッピング方式を決定するステップと
を含む動作を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な媒体。
【請求項２５】
請求項２４記載のコンピュータ読み取り可能な媒体であって、前記取得ステップは、
前記メモリモジュールに前記情報を送信するように命令する、少なくとも１つの命令を前記メモリモジュールに送信するステップと、
前記メモリモジュールから前記情報を受信するステップと
を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２６】
請求項２５記載のコンピュータ読み取り可能な媒体であって、前記メモリモジュールから前記情報を受信するステップは、前記情報を前記メモリモジュールのＳＰＤから受信するステップを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２７】
請求項２６記載のコンピュータ読み取り可能な媒体であって、前記ＳＰＤから前記情報を受信するステップは、前記データマスクマッピング方式を示す指標を受信するステップを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２８】
請求項２４記載のコンピュータ読み取り可能な媒体であって、
前記取得ステップは、少なくとも一つのテストデータマスクパターンと少なくとも一つのテストデータパターンを前記メモリモジュールのメモリ領域に書き込むステップと、前記少なくとも一つのテストデータマスクパターンにより変更された前記少なくとも一つのテストデータパターンに対応して、前記メモリ領域に格納された少なくとも一つの結果データパターンを読み出すステップとを含み、
前記決定ステップは、前記少なくとも一つの結果データパターンに基づいて、前記メモリ領域に対して用いる前記データマスクマッピング方式の一部を決定するステップを含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２９】
請求項２８記載のコンピュータ読み取り可能な媒体であって、前記書込みステップは、
第１のテストデータパターンを前記メモリ領域に書き込む第１の書き込み処理を実行するステップと、
前記メモリ領域に第２の書き込み処理を実行するステップとを含み、前記第２の書き込み処理は第２のテストデータパターンとテストデータマスクパターンとを含み、前記テストデータマスクパターンは、前記第２のテストデータパターン中の特定データチャンクを書き込み禁止にしないためのものであることを特徴とするコンピュータ読み取り可能な媒体。
【請求項３０】
請求項２８記載のコンピュータ読み取り可能な媒体であって、前記データマスクマッピング方式の前記一部を決定するステップは、前記少なくとも一つの結果データパターンに基づいて、前記第２のテストデータパターン中の前記特定データチャンクを識別するステップを含むことを特徴とするコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータメモリ分野に関し、特にメモリデータマスク分野に関する。
【背景技術】
【０００２】
標準的なコンピュータシステムはメモリを含む。メモリは、プログラムコードや、当該プログラムコードが必要とするデータを格納するのに用いられる。メモリは、一又はそれ以上の集積回路上に搭載することができる。一般的に、メモリはメモリコントローラと接続される。メモリコントローラとメモリは、ピン接続により、データバスを介して通信を行う。
【０００３】
データマスクは、選択されたデータのメモリ中での上書きを防止するのに用いられる。従って、メモリコントローラは、データマスクを用いて特定のデータをマスクし、メモリに対する部分的な書き込みを可能とすることができる。データマスクビットは、データの一又はそれ以上のビットと関連付けても良い。関連付けられたデータマスクは、特定のメモリ位置への書き込みを阻止し、他の特定のメモリ位置への書き込みを許可する。メモリへの書き込みが行われると、メモリ中の選択されたデータでマスクされているデータはメモリ中に残り、選択されたデータでマスクされていないものは新しいデータに置き換えられる。メモリコントローラがデータマスクを用いない場合、メモリへの部分的な書き込みには、より長い時間を要する。例えば、メモリコントローラは、メモリ領域全体を読み取って、新規データをそこにマージし、その後再度メモリ領域全体に書き込むことで、部分書込みを行うことができる。
【０００４】
現在、メモリチップは、データマスクビットとデータとに対して別個のピンを用いてメモリデータマスクを導入しているが、これはピン数を大幅に増加させ得る。ピン数の増加は、コストやパッケージサイズの増大、また、場合によってはダイ・サイズの増大をもたらす。データマスクビットとデータとに対して別個のピンを用いる場合、こうしたマッピングはレジスタにプログラムされない。
【発明を実施するための最良の形態】
【０００５】
本発明の実施形態は、以下の説明と添付の図面を参照することで、最も良く理解される。以下で、本発明の実施形態を図面を参照して説明する。
【０００６】
実施形態においては、種々の特定かつ詳細な内容が述べられている。しかし、これらの実施形態は、そうした特定かつ詳細な内容に限定しなくても実施可能であることが理解され得る。また、本発明の実施形態を理解する妨げにならないように、公知の回路、構成、技術について詳細には示されていない。
【０００７】
様々な実施形態において、本発明は、データマスクマップをレジスタにプログラムする多様な方法を含み得る。様々な実施形態には、データマスクマップのメモリコントローラへのハードワイヤリング（hardwiring）、メモリ中の任意位置からのデータマスクマップの取り出し、ソフトウェアアルゴリズムによるデータマスクマップの演繹が含まれる。データマスクマップにより、データマスクビットを、当該データマスクビットがマスクするデータチャンクに関連付けても良い。この場合、データチャンクは任意の所定のデータ量であっても良い。
【０００８】
図１は、本発明の一実施形態によるシステム１００を示す。システム１００は、コントローラ１０２、プロセッサ１０４、メモリ１０８、データマスクが接続された一又はそれ以上のデータラインを含むメモリバス１１０を含む。システム１００に基づいて説明するが、本発明の実施形態は、一又はそれ以上の集積回路を含む任意のシステムに導入できる。
【０００９】
コントローラ１０２は、例えば、Ｉ／Oコントローラハブ（ＩＣＨ）１４０とファームウェアハブ（ＦＷＨ）１７０とを更に含むチップセット１７４の一部であっても良い。コントローラ１０２、ＩＣＨ１４０、ＦＷＨ１７０は、任意の適当な回路をそれぞれ含んでも良いが、一実施形態によれば、別個の集積回路チップとして実現される。別の実施形態によれば、チップセット１７４は、任意の適当な一又はそれ以上の集積回路装置を含んでも良い。
【００１０】
コントローラ１０２は、任意の適当なコントローラ用アーキテクチャを含んでも良い。様々な実施形態で、システム１００は、一又はそれ以上のコントローラを含んでも良く、本発明の一実施形態によれば、このうち任意のものがインタフェースを行っても良い。コントローラ１０２は、任意の適当なインタフェースコントローラを含んで、メモリバス１１０及び／又はコントローラ１０２と通信可能な任意の適当な装置やコンポーネントへの任意の適当なリンクを提供しても良い。一実施形態によれば、コントローラ１０２は、各インタフェースに対して適当な調停、バッファリング、干渉管理を提供しても良い。
【００１１】
コントローラ１０２は、プロセッサバス１２２に接続されて、プロセッサ１０４にプロセッサバス１２２を介したインタフェースを提供しても良い。プロセッサ１０４は、任意の適当なプロセッサ用アーキテクチャを含んでも良い。様々な実施形態で、コンピュータシステム１００は、一又はそれ以上のプロセッサ１０４を含んでも良く、このうち任意のものが、本発明の一実施形態による一組の指示を実行しても良い。一またはそれ以上のプロセッサ１０４をコントローラ１０２と組み合わせて、単一のチップとしても良い。
【００１２】
一実施形態によれば、コントローラ１０２はＩＣＨ１４０に接続されて、ＩＣＨ１４０にハブインタフェースを介してアクセス可能とする。ＩＣＨ１４０は、一又はそれ以上のＩ／Ｏデバイスやコンピュータシステム１００の周辺コンポーネントに対するインタフェースとして機能できる。ＩＣＨ１４０はまた、任意の適当なインタフェースコントローラを含んで、コントローラ１０２及び／又はＩＣＨ１４０と通信可能な任意の適当な装置やコンポーネントへの任意の適当なリンクを提供しても良い。一実施形態によれば、ＩＣＨ１４０は、各インタフェースに適当な調停とバッファリングを行う。
【００１３】
一実施形態によれば、ＩＣＨ１４０は、スーパーＩ／Ｏコントローラ１５０を介して、キーボード１５１、マウス１５２、マイク１５６、スタイラス１５７、一又はそれ以上のパラレルポート１５３を介して例えばプリンタといった一又はそれ以上の適当な装置、一又はそれ以上のシリアルポート１５４を介して一又はそれ以上の適当な装置、フロッピー（登録商標）ディスクドライブ１５５にインタフェースを提供しても良い。他の実施形態では、上述したものよりも少数又は多数の装置やインタフェース、あるいは、上述したものとは異なる装置やインタフェースを用いても良い。
【００１４】
ＩＣＨ１４０は、ＦＷＨ１７０にも接続されて、ＦＷＨ１７０へのインタフェースを提供しても良い。ＦＷＨ１７０は、任意の適当なインタフェースコントローラを含んで、ＩＣＨ１４０への任意の適当な通信リンクを提供しても良い。一実施形態によれば、ＦＷＨ１７０は、ＩＣＨ１４０とスーパーＩ／Ｏコントローラ１５０間のインタフェースの少なくとも一部を共有しても良い。ＦＷＨ１７０は、基本入出力システム（ＢＩＯＳ）メモリ１７２を含んで、適当なシステム及び／又はビデオＢＩＯＳソフトウェアを格納しても良い。ＢＩＯＳメモリ１７２は、例えばフラッシュメモリといった任意の適当な不揮発性メモリを含んでも良い。他の実施形態では、上述したものよりも多数又は少数の装置やインタフェース、あるいは、上述したものとは異なる装置やインタフェースを用いても良い。
【００１５】
コントローラ１０２は、メモリ１０８にも接続されて、メモリ１０８へのインタフェースを提供しても良い。メモリ１０８は、メモリシステムの一部であっても良い。メモリ１０８は、コンピュータシステム１００で用いるデータやコードを格納しても良い。メモリ１０８は、例えばランダムアクセスメモリ（ＲＡＭ）、その派生物、又はシーケンシャルメモリといった、任意の適当なメモリを含んで良い。コントローラ１０２は、メモリバス１１０を介してメモリに接続されても良い。メモリバス１１０はバスを含んでもよく、このバスは、データライン、アドレスライン、制御ライン、又は、これらのラインを多重化したものを含んでも良い。データバスにデータマスクを統合することで、専用データマスクバスの必要は無くなるが、接続デバイスのデータマスクピンの必要が無くなるとは限らない。データマスクビットとデータチャンクを一つのピン上に組み合わせることで、必要なバスライン数を軽減することができる。また、転送されたデータマスクビットを転送されたデータチャンクにマッピングするのに、データマスクマップを導入しても良い。データマスクマップは、完全にアソシエイティブであっても良いし、そうでなくても良い。
【００１６】
一実施形態によれば、より簡単なデータマスクマップセットを用いることを条件としても良い。例えば、システム中で、あるマスクビットは別の特定のデータビットにマッピングされないというルールが知られている。従って、当該システムのデータマスクマップやデータマスクマップセットは、特定のマッピングを排除することで軽くすることができる。別の実施形態では、データマスクマップに条件を設定し、データマスクとデータチャンクとを一対一対応させて、データ保全性を維持しても良い。データマスクマップやデータマスクマップセットに設定し得る別の条件としては、使用された任意のデータマスクマップを、コントローラとターゲット（メモリ）の双方で把握するという条件がある。既述したように、データマスクマップは、メモリベンダに規制を課すことで、又はメモリベンダが規制を課すことで簡素化することができる。しかし、本発明の一実施形態は、メモリベンダにそのような規制を課さずに実施することもできる。
【００１７】
一実施形態によれば、コントローラ１０２は共用領域１１２を有する。共用領域１１２は、複数のソースからのデータを例えばバッファに送る回路であっても良い。プロセッサ１０４やＩＣＨ１４０等の送信デバイスは、データマスクマップ又はデータマスクマップセットに従って再フォーマットされたデータを要することがある。プロセッサ１０４から共用領域１１２に送信された情報は、変換ロジック１１４とプロセッサインタフェース１１６等のプログラム可能なマッピングロジックを要することがある。変換ロジック１１８とＩ／Ｏインタフェース１２０は、共用領域１１２からＩＣＨ１４０に対して又はＩＣＨ１４０を介して送信される情報の変換やインタフェースに寄与しても良い。
【００１８】
図１に示す実施形態では、変換ロジック１１４及び１１８がシステム１００中の別個のユニットとして表されている。別個のユニットである変換ロジック１１４と変換ロジック１１８とは、同一のユニットであっても異なるユニットであっても良い。別の実施形態では、変換ロジック１１４と変換ロジック１１８は、プロセッサ１０４とＩＣＨ１４０の双方に接続された単一の変換ユニットであっても良い。また別の実施形態では、変換ロジック１１４と変換ロジック１１８を、共用領域１１２に多重化し、再マッピングしても良い。変換ロジック１１８のＩ／Ｏフォーマットは、変換ロジック１１４のＣＰＵフォーマットと異なっても良い。変換ロジック１１４と変換ロジック１１８からの共用領域１１２への出力は、ＤＲＡＭフォーマット等の同じメモリフォーマットであっても良い。
【００１９】
変換ロジック１１４及び／又は変換ロジック１１８は、データマスクマップ又はデータマスクマップセットを含んでも良いが、これについては図２と図４で更に説明する。データマスクマップ又はデータマスクマップセットは、メモリ１０８のデータマスクマップ又はデータマスクマップセットとマッチするものであっても良い。図１に示す実施形態では、メモリ１０８はデータマップ１２４を含んでも良い。データマップ１２４は、例えばＳＰＤ１０６等のメモリ中のＳＰＤ領域に格納しても良い。別の実施形態では、マッピング情報をＢＩＯＳやオブジェクトコードに格納しても良い。コントローラ１０２は、上述した構成要素よりも少数又は多数の構成要素を含んでも良いし、上述した構成要素について異なる配置を採用しても良い。
【００２０】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェアの一つ又はこれらの組み合わせとして実施しても良い。本発明の別の実施形態は、コンピュータ読み取り可能な媒体に格納された指示として実施しても良く、このコンピュータ読み取り可能な媒体は少なくとも一つのプロセッサで読み取られかつ実行されて、ここに記載した動作を実行するものであっても良い。コンピュータ読み取り可能な媒体は、機械（例えば、コンピュータ）で読み取り可能な形式で情報を格納又は送信する任意のメカニズムを含んでも良い。例えば、コンピュータ読み取り可能な媒体は、ＲＯＭ、ＲＡＭ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響その他の形をとった伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）などを含んでも良い。システム１００は、実施形態によっては、図１に示したよりも多数の構成要素を含んでもよいし、少数の構成要素を含んでもよい。
【００２１】
図２は、本発明の一実施形態による変換ロジック２０１の例を示す概略ブロック図である。変換ロジック２０１は、変換ロジック１１４と変換ロジック１１８のどちらか一方、又は、変換ユニット１１４と１１８の双方の実施形態であっても良い。変換ロジック２０１の出力は、共用領域１１２が本実施形態に含まれているか否かによって、共用領域１１２又はメモリバス１１０に送信される。
【００２２】
変換ロジック２０１は、データマスクに対するデータのマップとデータに対するデータマスクのマップの少なくとも一方を含む。この情報は、マッピングレジスタ２０３、又はプログラム可能な選択デバイス２０４に接続された他のデバイスに格納される。選択デバイス２０４は、例えば一又はそれ以上のマルチプレクサを含んでも良い。データマスクマップ又はデータマスクマップセットが選択デバイス２０４の一又はそれ以上の入力としてハードワイヤされている場合、マッピングレジスタ２０３を備えなくとも良い。マッピングレジスタ２０３は、可変の又はプログラム制御できるマッピングに用いても良く、メモリコントローラ１０２内の一又はそれ以上のレジスタとして実現しても良い。データのマップやデータマスクのマップは、メモリモジュールのＳＰＤ１０６やその他の記憶領域、ＢＩＯＳ、オブジェクトコード、あるいはその他の記憶領域から取得することができる。メモリモジュールは、メモリユニットとメモリコントローラを含んでも良い。別の実施形態では、マッピングレジスタ２０３を、例えばＥＰＲＯＭ（erasable  programmable  read-only  memory）等の中のメモリ１０８中に設けて、レジスタマッピングの方程式を有する構成とする。本実施形態では、メモリ１０８をメモリコントローラ１０２に適応するようにプログラムする。
【００２３】
選択デバイス２０４を、データマスクビットやデータビットの並べ替えに用いても良い。例えば、選択デバイス２０４は、マッピングレジスタ２０３のデータマスクマップやデータマスクマップセットを用いても良い。一実施形態によれば、マッピングレジスタ２０３の出力を選択デバイス２０４に接続しても良い。このようにすれば、設計時には、データマスクマッピングを把握しておく必要は無い。
【００２４】
図３は、本発明の一実施形態による、データラインにデータマスクが統合された場合の書き込み動作の波形を示す。これは、データチャンクとデータマスクが同じピンで送信される例を示す。図３はまた、データマスクマップと、ｎ個のチャンクへのデータの分割も示している。図３に示す例では、データマスクワードが送信される時間がｓ０からｓｘで示され、データワードが送信される時間はＳ０〜Ｓｙで示されている。ワードとは、記憶装置からプロセッサレジスタへ一度の動作で移動できるデータの単位を意味する。データマスクはＤＭ０〜ＤＭｘで表され、データはＤ０〜Ｄｙで表される。従って、図３中のデータチャンクはＣ０〜Ｃｎで表される。データは、例えば、１ビットといった極めて小さいサイズや、送信可能な最大データサイズのような極めて大きいサイズなど、任意のサイズのチャンクに分割できる。データチャンクのサイズ、例えばワードは、システムに依存する。例えば、６４ビットバスを備えるシステムでは、データマスクワードとデータワードは６４ビット単位で送信され得る。チャンクサイズは、データマスキングを実施する粒度（granularity）として定義される。例えば、１データマスクビットで１バイト（８ビット）のデータをマスクしても良いが、この場合、１チャンクは１バイトのデータとなる。本実施形態では、各チャンクが１バイトのデータであるので、６４ビットのデータワードは８チャンクから成る。データマスクビットが複数チャンクのデータをマスクする実施形態としても良い。一実施形態によれば、データチャンクは異なるデバイスと並列に接続され、データマスクはデータチャンクを受信するデバイスをマスクしても良い。
【００２５】
図３は更に、データマスクマップの一例を示している。データマスクビットとデータ間のマッピングは、メモリコントローラとターゲット（例えば、メモリデバイス）が当該マッピングを受け入れる限り、任意の形（orientation）をとることができる。図３のデータマスクマッピングの複数の方式は、データマスクビットをデータにマッピングする複数の例を示している。
【００２６】
書き込み処理中に、データマスクをデータと共に任意の順序で送信しても良い。データマスクとデータチャンク間には特定のタイミング関係は要求されない。これは、データマスクは、データを送信する同一のデータラインに埋め込まれているからである。例えば、データマスクは、データよりも先、データと同時、又はデータよりも後に送信することができる。図３に示すように、データマスクをデータよりも先に送信すると、メモリデバイスは、マッピングロジックが受信データに作用する前にマッピングロジックを設定することができる。データマスクがデータよりも後に送信される場合には、データをバッファ内に格納してデータマスク情報を待つ必要があり得るため、書き込み処理の終了が遅延することがある。
【００２７】
データマスクの必要送信回数は、使用される技術に応じてシステムで設定される。一実施形態によれば、データマスクの最高送信回数は、データ送信回数を送信毎のデータチャンク数で割り算したものと同じであっても良い。この関係は、各データ送信に同数のチャンクが含まれることを前提としているが、こうした前提は実施形態によっては不必要であり、本発明を限定するものでもない。
【００２８】
一回の書き込みで転送されるデータマスクワード数は、当該書込み処理のデータワード数とチャンクサイズに依存する。例えば、チャンクサイズがデータ１バイト分であって、書き込み処理には８データワードが必要である場合、ワードが６４ビット単位なら、当該書込みには合計６４チャンクが含まれる。１データマスクビットで１チャンクをマスクする場合、上記書込み処理には６４データマスクビットが必要となる。システムによっては、６４データマスクビットで１データマスクワードを構成しても良いため、そうしたシステムでの書き込み処理には、１データマスクワードが必要となる。上記の例では、書き込み処理に８データワード（Ｄ０〜Ｄ８）と１データマスクワード（ＤＭ０）が含まれる。
【００２９】
書き込み処理に２以上のデータマスクワードが必要となる場合もある。例えば、チャンクサイズが２ビットで、書き込み処理に８データワードが必要となる場合、ワードが６４ビット単位なら、書き込み処理には合計２５６チャンクが含まれる。１データマスクビットで１チャンクをマスクする場合、書き込み処理には２５６データマスクビットが必要となる。本実施形態において、６４データマスクビットで１データマスクワードを構成する場合、書き込み処理には４データマスクワードが必要となる。上記の例では、書き込み処理に８データワードと４データマスクワードが含まれることになる。
【００３０】
チャンクサイズを２ビットとした、前述の例では、１ワード中のデータチャンク数は３２である。従って、図３で、データチャンクはＣ０〜Ｃ３１となる。書き込み処理に含まれる４つのデータマスクワードは、ＤＭ０〜ＤＭ３、書き込み処理に含まれる８つのデータワードはＤ０〜Ｄ７となる。図３で、データマスクマッピングの一例を用いると、ＤＭ０の縦格子で示すデータマスクビットは、Ｄ０のデータチャンクＣｎをマスクする。ＤＭ０の斜線で示すデータマスクビットは、Ｄ１のＣ０をマスクし、ＤＭ１の斜め格子のデータマスクビットは、Ｄ２のＣ２をマスクする。
【００３１】
マッピング方式は一対一の関係を有し、１データマスクビットは１チャンクと関連付けられる。ｎ個のデータチャンクにマッピングできるｎ個のデータマスクビットがある場合、合計ｎ２通りのマッピング方式が考えられる。例えば、６４データチャンクを８データワード送信するのに６４データマスクビットが必要になる場合、４０９６通りのマッピングが存在し得る。メモリランクは、同じチップセレクトに接続された、メモリの一又はそれ以上のブロックの一つであるが、このメモリランクが独自のマッピング方式を有し、メモリモジュールが一又はそれ以上のメモリランクを有することがある。従って、各メモリモジュールで正しいデータマスクマッピングを行うためには、一又はそれ以上のマッピング方式が必要となる。
【００３２】
図４は、本発明の一実施形態による、データとデータマスクが同一のピンでメモリと通信する方法であって、プロセッサとメモリ間にインタフェースを提供するコントローラの動作を示すフローチャート４００である。ブロック４０２でこの方法を開始する。次に、ブロック４０４で、コントローラは、プロセッサ又はＩ／Ｏからデータとデータマスクを受信する。メモリ用にフォーマットされた情報をコントローラに与えるのは、プロセッサとI／Oのどちらでも良い。コントローラは、例えばデータマスクをデータにマッピングする内部マッピングを有し、ブロック４０６で、データフォーマットをデータとデータマスクのマッピングに従って変換する。一実施形態によれば、コントローラは、データフォーマットをデータマスクが統合されたデータラインに変換する。次に、ブロック４０８で、コントローラはデータマスクが統合されたデータラインをメモリに書き込む。最後に、ブロック４１０で、コントローラは処理を終了する。これとは逆に、データ及び／又はデータマスクをメモリからプロセッサ又はI／Oに送信する際、二つのラインをデータとデータマスクの一つのラインに変換する代わりに、一つの統合されたラインをデータマスクビットとデータチャンクの二つのラインに変換する。
【００３３】
図５は、本発明の一実施形態により、変換ロジック２０１を用いて、一以上のデータマスクビットのデータマスクストリーム５０４を、一以上のデータチャンクのデータチャンクストリーム５０６へ統合する例を示す概略ブロック図である。図５の左端に示すように、データマスクストリーム５０４とデータチャンクストリーム５０６は、例えばプロセッサによって同じ空間時間で送信されている。変換ロジック２０１は、データマスクストリーム５０４とデータチャンクストリーム５０６をメモリ認識可能なフォーマットにフォーマットできる。Ｓ０〜Ｓｙはシステムクロックを表す。データチャンクストリーム５０６は、図３に示すように、一以上のチャンクＤ０〜Ｄｙに分割されたデータを含み、データマスクストリーム５０４は、一以上のデータチャンクＤ０〜Ｄｙに関連付けられた一以上のデータマスクビットＭ０〜Ｍｙを含んでも良い。データチャンクストリーム５０６とデータマスクストリーム５０４は、データマスクライン５１０とデータチャンクライン５１２等の異なるラインを介して変換ロジック２０１に供給される。
【００３４】
図５の変換ロジック２０１の出力は、例えばデータ・データマスクストリーム５０８、つまり、関連データマスクを統合したデータチャンクストリームである。データチャンクとデータマスクが出力データライン５２４に送信される順序は、実施形態によって異なっても良い。実施形態によっては、データマスクを最初に送信することで、記憶装置のコストを削減できる。データチャンクが到達次第、そのデータチャンクをデータマスクに基づいて処理できるからである。本実施形態では、データマスクはクロックｓ０〜ｓｘの間に最初に送信され、その後、データチャンクがクロックＳ０〜Ｓｙの間に送信される。一実施形態によれば、データは、コントローラ１０２とメモリ１０８間を、データ・データマスクストリーム５０８に示されるフォーマットでやり取りしても良い。理由は、本発明の実施形態は、コントローラ１０２とメモリ１０８間の、一又はそれ以上のデータマスクラインの必要性を除去できるためである。なお、コントローラ１０２とプロセッサ１０４の間やコントローラ１０２とＩＣＨ１４０の間で、データチャンクライン５０６とデータマスクライン５０４とを組み合わせてデータをやり取りしても良い。
【００３５】
図６は、本発明の一実施形態に係る、データマスクのデータチャンクへのマッピングを変更する変換ロジック２０１の例を示す概略ブロック図である。変換ロジック２０１への入力として示されるように、データマスクＤＭ０Ｃｎ〜ＤＭ０Ｃ０は期間ｓ０＝Ｓ０においてデータチャンクＤ０Ｃｎ〜Ｄ０Ｃ０に関連付けられ、データマスクＤＭ１Ｃｎ〜ＤＭ１Ｃ０は期間ｓ１＝Ｓ１においてデータチャンクＤ１Ｃｎ〜Ｄ１Ｃ０に関連付けられ、データマスクＤＭｘＣｎ〜ＤＭｘＣ０は期間ｓｘ＝ＳｙにおいてデータチャンクＤｙＣｎ〜ＤｙＣ０に関連付けられている。変換ロジック２０１は、データマスクとデータチャンク間の関係を変更可能としても良い。図示された実施形態では、変換ロジック２０１は、データマスクＤＭ０Ｃｎ〜ＤＭ０Ｃ０にクロックｓ０の期間において関連付けられたデータチャンクの順序を反転可能としても良い。変換ロジック２０１からの出力として示されるように、データマスクＤＭ０Ｃｎ〜ＤＭ０Ｃ０は期間ｓ０＝Ｓ０においてデータチャンクＤ０Ｃ０〜Ｄ０Ｃｎに関連付けられ、データマスクＤＭ１Ｃｎ〜ＤＭ１Ｃ０は期間ｓ１＝Ｓ１においてデータチャンクＤ１Ｃｎ〜Ｄ１Ｃ０に関連付けられ、データマスクＤＭｘＣｎ〜ＤＭｘＣ０は期間ｓｘ＝ＳｙにおいてデータチャンクＤｙＣｎ〜ＤｙＣ０に関連付けられている。データマスクビットをデータチャンクに関連付ける方法は多数ある。
【００３６】
変換ロジックは、マルチプレクサや、情報を並べ替えてマッピングに一致させる他の方法を含んでも良い。データマスクが正確に対応するデータチャンクがメモリ中で上書きされるのを防止できるように、データマスクとデータチャンクのマッピングを確定した際にメモリコントローラのハードウェアをプログラムしても良い。任意のマッピングをメモリコントローラのハードウェアにプログラムする一実施形態としては、図２でマッピングレジスタ２０３と選択デバイス２０４について述べたように、ハードウェアをプログラムするレジスタを用いても良い。
図７は、本発明の一実施形態に係る、メモリコントローラのプログラム方法のフローチャートを示す。ブロック７０２で、データマスクとデータチャンクの公知のマッピングをマッピングレジスタ２０３に書き込む。マッピングレジスタは複数あっても良い。これらの値は、ＢＩＯＳ等のソフトウェアやファームウェアを介してハードウェアによって書き込むことができる。一実施形態では、ブロック７０４で、マッピングレジスタ２０３は選択デバイス２０４に接続されて、データマスクマップやデータマスクマップセットに従って、データチャンクやデータマスクの順序を操作できる。ブロック７０２で、公知のデータマスクマップやデータマスクマップセットをマッピング値と共に回路等にプログラムして、データマスクをデータチャンクにマッピングして正確に対応するデータチャンクがメモリ中で上書きされるのを防止するメモリ１０８との接続を維持する。
【００３７】
図８は、本発明の実施形態による、特定のデータチャンクをマスクし、そのデータマスクマップやデータマスクマップセットがメモリコントローラにプログラムされている、特定のデータマスクビットの値を示すテーブルの概略図である。コラム８０２にはコンピュータシステムで用いられるデータが含まれ、コラム８０４には選択されたデータのメモリ中での上書きを防止するデータマスクが含まれている。この例では、各データマスクビットが、データの二つの英数字又は１バイトをマスクする。他の方法でデータマスクビットをデータに割り当てても良い。コラム８０４の横列８０８で、データマスクビットの最下位４ビットは、「Ａ」であるが、これは２進法では「１０１０」であって、データマスクビットはデータチャンク「ＤＥ」と「ＢＥ」にアサートされることを意味する。コラム８０４の横列８１０で、データマスクビットは「１」つまり「０００１」であるが、これはデータチャンク「ＣＥ」をマスクすることを意味する。コラム８０４の横列８１２で、データマスクビットは「３」つまり「００１１」であり、データチャンク「４５」と「６７」をマスクする。コラム８０４の横列８１４で、データマスクビットは「２」つまり「００１０」であり、データチャンク「ＣＤ」をマスクする。コラム８０４の横列８１６で、データマスクビットは「６」つまり「０１１０」であり、これはデータチャンク「４６」と「８Ａ」をマスクする。コラム８０４の横列８１８で、データマスクビットは「Ｆ」つまり「１１１１」であり、データチャンク「１３」、「５７」、「９Ｂ」、「ＤＦ」をマスクする。コラム８０４の横列８２０では、データマスクビットは「０」であり、これはデータチャンクをマスクしない。コラム８０４の横列８２０では、データマスクビットは「４」つまり「０１００」であり、データチャンク「ＡＡ」をマスクする。
【００３８】
本例では、データ転送は４バイト長で行われ、データチャンクは１バイト長である。データチャンクのサイズと、データエレメントと選択されたラインの順序は変更しても良い。この場合でも、データチャンクと、同一の単数又は複数のラインに統合されたそれぞれのデータマスクとの双方を送信するという目的を果たすことができる。これらのラインは、メモリコントローラからメモリに送信される準備が整った値を転送する。ライン８２４では、データエレメントとデータマスクの双方が同一のラインで送信される。この例で送信されるデータエレメントは、横列８０６〜８２２、コラム８０２のデータチャンクの最初のバイトである。ただし、ライン８２４で最初に送信されるのは、データマスクビット８３２である。データマスクビットと選択されたデータチャンクの順序はこれ以外でも良く、その場合も本発明の実施形態の目的を果たすことができる。しかし、便宜上、本図では一つの方法を選択して表示している。ライン８２４で送信されるマスクビットは、１６進法では「２１」、２進法では「００１００００１」である。装置Ｄ２、Ｄ１、Ｄ０にそれぞれ対応する、その他の３つのデータライン８２６、８２８、８３０では、コラム８０２のデータの第２、３、４バイトが送信される。本実施形態では、データマスクビット８３４、８３６、８３８はそれぞれ「Ｂ０」、「３Ｄ」、「２６」、つまり、「１０１１００００」、「００１１１１０１」、「００１００１１０」に等しい。送信された上記のマスクビットは、列８０８−８２２のコラム８０２と８０４に示されるように、バイト値「１３」、「ＤＥ」、「ＡＡ」、「５７」、「４６」、「９Ｂ」、「８Ａ」、「ＣＤ」、「４５」、「ＢＥ」、「ＤＦ」、「６７」、「ＣＥ」のマスキングに対応する。
【００３９】
データライン８２４、８２６、８２８、８３０は、図１のメモリバス１１０等のメモリ接続の実施形態として用いても良い。メモリバス１１０の形態として、例えばその出力が出力デバイス毎に１ビット接続された、一又はそれ以上のマルチプレクサを含む回路を含む。図９は、本発明の一実施形態による、任意のデバイスへ複数ビットを送信するエレメントを選択するマルチプレクサの二つの回路例を示す。回路９００は、図８のデバイスＤ０のビット０に対応するビット０をラインＤ０．０を介してデバイス０に出力する回路である。本実施形態では、転送するデータマスクビットは合計３２ビットであるが、これ以外のビット数でも良い。データマスクビット０から３１はマルチプレクサ９０２に供給される。マルチプレクサ・セレクタ９０４は、送信するのに適当なデータマスクビットを、データマスクビットとデータチャンクのマッピングに基づいて指示する。本実施形態のマルチプレクサ・セレクタ９０４は、デバイスＤ０のビット０、つまり、１６進法で００、２進法で００００００００に対する、データマスクビットとデータチャンク間のマッピングに対応する。マルチプレクサ・セレクタ９０４に上記の値を入力しても良い。あるいは、２進法の０を接地電位、２進法の１を電源電位として、マッピングを書き込む。別の実施形態によれば、マルチプレクサ・セレクタ９０４を、図２のマッピングレジスタ２０３等のレジスタに接続しても良い。
【００４０】
マルチプレクサ９０６は、データを書き込むメモリランクを選択する。マッピングがメモリランク間で同じ場合、メモリランクを用いることで、回路で必要となる選択肢の数を削減することができる。マルチプレクサ９０８は、データチャンクとデータマスクビットのどちらをラインD０．０で転送するか制御する。マルチプレクサ９０８へのデータ入力として、データ入力９１０がある。その他多くの実施形態では、転送すべきデータチャンク、データマスク、ランクなどを選択しても良い。回路９０１は回路９００に類似しており、マルチプレクサ９０２、９０６、９０８とライン９０４と９１０にそれぞれ対応するマルチプレクサ９１２、９１６、９１８とライン９１４と９２０を備えるが、対応のデータ出力がラインD０．１を介してデバイスD０のビット１に供給される点で異なる。回路９００と９０１、及び、図示はしないが更に別のデバイスビットに対する回路を随意で含む回路によれば、一連のマルチプレクサに、少なくとも１データマスクビットと少なくとも１データチャンクの双方を同一のラインにロードさせてメモリに供給することができる。これについては図１０で更に説明する。
【００４１】
図１０は、本発明の一実施形態による、データマスクビットとデータチャンクの間のマッピングを選択する複数のマルチプレクサを含むアレイ１０００を示す。一実施形態によれば、これらのマルチプレクサはコントローラ１０２内に配置される。データマスクビットが入力され、適切なデータマスクマップに従って入力データマスクビットから選択されたデータマスクビットが出力される。図中、ｄｍｒ[Ｎ]は、選択された出力データマスクビットを示し、ｒはランクを、Ｎはデータマスク中のどのビットかを示す。図１０には複数のマルチプレクサ・アレイが示されているが、これは各メモリランクが異なるマッピングを有し、異なるアレイで制御され得るからである。各ランクが同一のマッピングを有する場合、一実施形態によれば、Ｎ：１マルチプレクサの数を全体のメモリランクの数よりも少なく設定する。各ビットにＮ：１マルチプレクサを備える代わりに、Ｎ：１の出力を備える単一のマルチプレクサと、アクセスすべきランクを選択するｒ：１マルチプレクサとを備えても良い。図１０には示されていないが、データマスクビットのデータチャンクへのマッピングは、どのメモリ位置にマップすべきかを推論するものであっても良いし、そうでなくても良い。例えばマッピングはメモリ位置の推論なしに、別途チップを設けて、当該デバイスについてのデータチャンクとマップ位置を受信しても良い。別のチップを用いる場合、新たに規則を設けたり、任意の記憶域体系に対応する他の知識ベースの入力を導入したりすることによって、マッピング、記憶装置、及び／又は生成ロジックを最小限にすることができる。
【００４２】
上記の実施形態では、図９と図１０の回路で、データマスクマップやデータマスクマップセットをマルチプレクサ・セレクタとの接続を介してメモリコントローラにプログラムしても良いことを示した。メモリコントローラの順序付けをプログラムする一実施形態として、マルチプレクサ・セレクタ９０４やマルチプレクサ・セレクタ９１４等のマルチプレクサ・セレクタを、グランド及び／又は電源にワイヤ接続しても良い。メモリコントローラにデータマスクマップやデータマスクマップセットをプログラムする別の実施形態としては、メモリ中の任意の位置からデータマスクマップデータを取り出し、ソフトウェアアルゴリズムを用いてデータマスクマップやデータマスクマップセットを生成しても良い。
【００４３】
図１１は、本発明の実施形態による、メモリモジュール中のＳＰＤ１０６からデータマスクマッピング情報を取得する方法のフローチャートである。ＳＰＤ１０６は、シンクロナスＤＲＡＭモジュール上のＥＥＰＲＯＭチップに格納されている情報を含んで、ＢＩＯＳがモジュールサイズ、データ幅、速度、電圧等の情報を取り出せるようにしても良い。ＢＩＯＳは、この情報を用いてメモリを適切に構成し、信頼性とパフォーマンスを最大化することができるので、メモリコントローラをプログラムするのに、ＳＰＤ１０６に格納されたデータマスクマップやデータマスクマップセットからＢＩＯＳが恩恵を受けることもある。本実施形態のＳＰＤ１０６は、図１のデータマップ１２４等のメモリ領域に、データマスクマップやデータマスクマップセットを格納する記憶領域を含んでも良い。
【００４４】
図１１の方法１１００は、処理ブロック１１０２で、データマスクマッピング情報を各メモリモジュールのＳＰＤ１０６から取得することで開始される。システムの各メモリモジュールは一又はそれ以上のメモリランクを有してもよく、各メモリランクは異なるデータマスクマッピング方式を有しても良い。
【００４５】
モジュールのメモリランクのデータマスクマッピング方式は、処理ブロック１１０４で、データマスクマッピング情報から決めても良い。一実施形態によれば、データマスクマッピング情報は、各メモリランクのデータマスクマッピング方式であっても良い。別の実施形態によれば、各メモリモジュールから得られたデータマスクマッピング情報は、各メモリモジュールのマッピング方式の指標を含んでも良い。マッピング方式の指標は、「ベンダＡ」といった語でも、「４８６５」といった数字であっても良い。この語や数字はメモリモジュールのマッピング方式と関連付けられる。そのため、各指標が受信された場合、メモリモジュールの各メモリランクのデータマスクマッピング方式を示しても良い。例えば、「ベンダＡ」の受信は、メモリモジュールの１メモリランクがマッピング方式Ｘを有し、同じメモリモジュールの別のメモリランクはマッピング方式Ｙを有し、同じメモリモジュールの別のメモリランクはマッピング方式Ｚを有していることを示しても良い。
【００４６】
データマスクマッピング方式を得た後、メモリコントローラに当該マッピング方式をプログラムしても良い。データマスクマッピング情報をＳＰＤ１０６から得るようにすることで、メモリベンダは独自のマッピングを定義することができ、テスト方法の容易化や、レイアウト上の制約の軽減が図られる。メモリ製造者は、ＳＰＤ１０６中の明示的なメモリマッピング情報を取り除き、その代わりにベンダのＳＰＤ情報に対応する公表マップに依拠しても良い。
【００４７】
配線関係やメモリ位置の検索に加えて、メモリコントローラにデータマスクマップやデータマスクマップセットをプログラムする別の実施形態として、メモリベンダのメモリ特性を調べるソフトウェアアルゴリズムを用いて、データマスクマップやデータマスクマップセットを推論する。図１２は、本発明の一実施形態に従って、メモリモジュールの各メモリランクのデータマスクマップを決定するフローチャートである。データマスクマップやデータマスクマップセットを決定する方法毎に異なる実施形態が存在する。従って、以下の実施形態は、単なる一例に過ぎない。メモリモジュールは一又はそれ以上のメモリランクを含んでも良く、各メモリランクは異なるデータマスクマップやデータマスクマップセットを有しても良い。よって、各メモリモジュールの各メモリランクを調べてデータマスクマップやデータマスクマップセットを決定する。
【００４８】
図１２の方法１２００は、処理ブロック１２０２で、メモリモジュールの第１のメモリランクを選択することで開始される。処理ブロック１２０４で全データマスクビットがアサートされ、処理ブロック１２０６で第１の書き込み処理が行われて、メモリの選択されたメモリランクに公知の第１のテストデータパターンが書き込まれる。例えば、最大データ転送サイズ幅での書き込み処理を、全てのビットが「１」であるデータパターンで行っても良く、アサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされていないことを示す場合、メモリ領域には「１」で構成されたパターンが書き込まれる。ルールによっては、デアサートされたデータマスクビットが自身に関連付けられたデータチャンクがマスクされることを示すこともある。アルゴリズムはどちらのルールを採用しても良いが、本実施形態では、アサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされないことを示し、デアサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされることを示す。
【００４９】
処理ブロック１２０８で、アサートされた１データマスクビットを含むテストデータマスクパターンが書き込まれる。処理ブロック１２１０では、第２の書き込み処理が行われ、メモリの選択されたメモリランクに第２の公知のデータパターンが書き込まれる。例えば、最大データ転送幅での書き込み処理を、全てのビットが０であるデータパターンで行っても良く、１データマスクビットがアサートされているため、メモリ領域の１データチャンクに０のみで構成されたパターンが書き込まれ、残りのチャンクはマスクされて１が残る。上記の例で、０のみで構成された公知のパターンは、メモリ領域中で変更されたチャンクを識別する「タグ」として機能する。一実施形態によれば、第２のテストデータパターンを処理ブロック１２１０で書き込んでも良い。
【００５０】
「タグ」は、アサートされたデータマスクビットに関連付けられたデータチャンクを識別するのに用いられる。変更されたデータチャンクは、様々な方法で識別することができる。以下はその一実施形態である。ブロック１２１１で、メモリ領域中のデータ読み出し要求が出される。データパターン中の変更されたチャンクの位置は、読み出されたデータのチャンクと、処理ブロック１２０６で書き込まれた第１の公知のデータパターンのチャンクとを比較することで割り出される。先の例では、１のみで構成されたパターンが書き込まれる。一致しない場合、変更されたチャンクの位置が識別される。
【００５１】
読み出されたデータのチャンクと、処理ブロック１２０６で書き込まれた第１の公知のデータパターンのチャンクとを比較する方法は、使用されるデータパターンに従って選択される。読み出されたデータと、処理ブロック１２０６で書き込まれた第１の公知のデータパターンとに排他的論理和演算を行っても良い。排他的論理和演算の結果に対して、処理ブロック１２０８で用いた「タグ」に一致するまで、チャンクサイズごとに論理シフトを行う。先の例では、「タグ」は０のみで構成されている。論理シフトを行った数は、変更されたチャンクの位置を示す。
【００５２】
変更されたチャンクの位置が識別されると、処理ブロック１２０８で選択された、データマスクビットのマッピングが分かる。例えば、選択されたデータマスクビットが処理ブロック１２０８で用いたデータマスクビットパターンの第１のデータマスクビットであって、変更されたチャンクが読み出されたデータの第５番目のチャンクである場合、第１のデータマスクビットは第５番目のデータチャンクをマスクすることになる。処理ブロック１２０８で選択された、データマスクビットのマッピングは、処理ブロック１２１０で記録される。他のデータマスクビットのマッピングは、ブロック１２１４で最後のデータチャンクが用いられたと判断されるまで処理ブロック１２０４−１２１６を繰り返して、同様に割り出される。ブロック１２１８と１２２０は、残りのランクに対して上記処理を繰り返すのに用いられる。処理ブロック１２１８で最後のランクが処理されたと判断されると、処理はブロック１２２２で終了する。このようにして決定されたマッピング方式は、既述したようにコントローラ１０２に格納されても良い。
【００５３】
上記の説明は解説のためのものであって、本発明の実施形態の範囲を制限するものではない。当業者は様々な変形例を想到し得るであろう。本発明の趣旨や主要な特徴から逸脱することなく、様々な実施形態が可能である。特許請求の範囲と均等と考えられるあらゆる変更点は、本願の範囲に含まれるものとする。変形例は本発明の実施形態に含まれるものであり、本発明は添付の特許請求の範囲やその趣旨によってのみ制限される。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施形態による、コントローラを含むシステムの例を示す図である。
【図２】本発明の一実施形態による、変換ロジックの実施形態を示す概略ブロック図である。
【図３】本発明の一実施形態による、データマスクがデータラインに統合された書き込み処理を示す波形図である。
【図４】本発明の一実施形態による、プロセッサとメモリ間にインタフェースを設ける方法を示すフローチャートである。
【図５】本発明の一実施形態による、データマスクラインをデータチャンクラインに統合する変換ロジックを示す概略ブロック図である。
【図６】本発明の一実施形態による、データマスクとデータチャンクのマッピングを変更する変換ロジックを示す概略ブロック図である。
【図７】本発明の一実施形態による、メモリコントローラをプログラムする方法を示すフローチャートである。
【図８】本発明の一実施形態による、特定のデータチャンクをマスクする特定のデータマスクビットの値を示すテーブルと概略ブロック図である
【図９】本発明の一実施形態による、任意のデバイスへ複数ビットを送信するエレメントを選択するマルチプレクサの二つの回路例を示す図である。
【図１０】本発明の一実施形態による、データマスクビットとデータチャンク間のマッピングを選択するマルチプレクサを含むアレイを示す図である。
【図１１】本発明の一実施形態による、メモリモジュールのＳＰＤ（serial  presence  detect）からデータマスクマッピング情報を取得する方法を示すフローチャートである。
【図１２】本発明の一実施形態による、メモリモジュールの各メモリランクのデータマスクマッピング方式を割り出す方法を示すフローチャートである。
【図１】
2005521176.tif 000003
【図２】
2005521176.tif 000004
【図３】
2005521176.tif 000005
【図４】
2005521176.tif 000006
【図５】
2005521176.tif 000007
【図６】
2005521176.tif 000008
【図７】
2005521176.tif 000009
【図８】
2005521176.tif 000010
【図９】
2005521176.tif 000011
【図１０】
2005521176.tif 000012
【図１１】
2005521176.tif 000013
【図１２】
2005521176.tif 000014
【国際調査報告】
2005521176.tif 000015
2005521176.tif 000016