JP4034738B2 - データマスクマッピング情報取得方法 - Google Patents

データマスクマッピング情報取得方法 Download PDF

Info

Publication number
JP4034738B2
JP4034738B2 JP2003581021A JP2003581021A JP4034738B2 JP 4034738 B2 JP4034738 B2 JP 4034738B2 JP 2003581021 A JP2003581021 A JP 2003581021A JP 2003581021 A JP2003581021 A JP 2003581021A JP 4034738 B2 JP4034738 B2 JP 4034738B2
Authority
JP
Japan
Prior art keywords
data
memory
data mask
pattern
mask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003581021A
Other languages
English (en)
Other versions
JP2005521176A (ja
Inventor
リーゼンマン,ロバート
ドッド,ジェイムズ
ウィリアムズ,マイケル
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2005521176A publication Critical patent/JP2005521176A/ja
Application granted granted Critical
Publication of JP4034738B2 publication Critical patent/JP4034738B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Optical Communication System (AREA)
  • Holo Graphy (AREA)
  • Television Signal Processing For Recording (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Description

本発明は、一般にコンピュータメモリ分野に関し、特にメモリデータマスク分野に関する。
標準的なコンピュータシステムはメモリを含む。メモリは、プログラムコードや、当該プログラムコードが必要とするデータを格納するのに用いられる。メモリは、一又はそれ以上の集積回路上に搭載することができる。一般的に、メモリはメモリコントローラと接続される。メモリコントローラとメモリは、ピン接続により、データバスを介して通信を行う。
データマスクは、選択されたデータのメモリ中での上書きを防止するのに用いられる。従って、メモリコントローラは、データマスクを用いて特定のデータをマスクし、メモリに対する部分的な書き込みを可能とすることができる。データマスクビットは、データの一又はそれ以上のビットと関連付けても良い。関連付けられたデータマスクは、特定のメモリ位置への書き込みを阻止し、他の特定のメモリ位置への書き込みを許可する。メモリへの書き込みが行われると、メモリ中の選択されたデータでマスクされているデータはメモリ中に残り、選択されたデータでマスクされていないものは新しいデータに置き換えられる。メモリコントローラがデータマスクを用いない場合、メモリへの部分的な書き込みには、より長い時間を要する。例えば、メモリコントローラは、メモリ領域全体を読み取って、新規データをそこにマージし、その後再度メモリ領域全体に書き込むことで、部分書込みを行うことができる。
現在、メモリチップは、データマスクビットとデータとに対して別個のピンを用いてメモリデータマスクを導入しているが、これはピン数を大幅に増加させ得る。ピン数の増加は、コストやパッケージサイズの増大、また、場合によってはダイ・サイズの増大をもたらす。データマスクビットとデータとに対して別個のピンを用いる場合、こうしたマッピングはレジスタにプログラムされない。
本発明の実施形態は、以下の説明と添付の図面を参照することで、最も良く理解される。以下で、本発明の実施形態を図面を参照して説明する。
実施形態においては、種々の特定かつ詳細な内容が述べられている。しかし、これらの実施形態は、そうした特定かつ詳細な内容に限定しなくても実施可能であることが理解され得る。また、本発明の実施形態を理解する妨げにならないように、公知の回路、構成、技術について詳細には示されていない。
様々な実施形態において、本発明は、データマスクマップをレジスタにプログラムする多様な方法を含み得る。様々な実施形態には、データマスクマップのメモリコントローラへのハードワイヤリング(hardwiring)、メモリ中の任意位置からのデータマスクマップの取り出し、ソフトウェアアルゴリズムによるデータマスクマップの演繹が含まれる。データマスクマップにより、データマスクビットを、当該データマスクビットがマスクするデータチャンクに関連付けても良い。この場合、データチャンクは任意の所定のデータ量であっても良い。
図1は、本発明の一実施形態によるシステム100を示す。システム100は、コントローラ102、プロセッサ104、メモリ108、データマスクが接続された一又はそれ以上のデータラインを含むメモリバス110を含む。システム100に基づいて説明するが、本発明の実施形態は、一又はそれ以上の集積回路を含む任意のシステムに導入できる。
コントローラ102は、例えば、I/Oコントローラハブ(ICH)140とファームウェアハブ(FWH)170とを更に含むチップセット174の一部であっても良い。コントローラ102、ICH140、FWH170は、任意の適当な回路をそれぞれ含んでも良いが、一実施形態によれば、別個の集積回路チップとして実現される。別の実施形態によれば、チップセット174は、任意の適当な一又はそれ以上の集積回路装置を含んでも良い。
コントローラ102は、任意の適当なコントローラ用アーキテクチャを含んでも良い。様々な実施形態で、システム100は、一又はそれ以上のコントローラを含んでも良く、本発明の一実施形態によれば、このうち任意のものがインタフェースを行っても良い。コントローラ102は、任意の適当なインタフェースコントローラを含んで、メモリバス110及び/又はコントローラ102と通信可能な任意の適当な装置やコンポーネントへの任意の適当なリンクを提供しても良い。一実施形態によれば、コントローラ102は、各インタフェースに対して適当な調停、バッファリング、干渉管理を提供しても良い。
コントローラ102は、プロセッサバス122に接続されて、プロセッサ104にプロセッサバス122を介したインタフェースを提供しても良い。プロセッサ104は、任意の適当なプロセッサ用アーキテクチャを含んでも良い。様々な実施形態で、コンピュータシステム100は、一又はそれ以上のプロセッサ104を含んでも良く、このうち任意のものが、本発明の一実施形態による一組の指示を実行しても良い。一またはそれ以上のプロセッサ104をコントローラ102と組み合わせて、単一のチップとしても良い。
一実施形態によれば、コントローラ102はICH140に接続されて、ICH140にハブインタフェースを介してアクセス可能とする。ICH140は、一又はそれ以上のI/Oデバイスやコンピュータシステム100の周辺コンポーネントに対するインタフェースとして機能できる。ICH140はまた、任意の適当なインタフェースコントローラを含んで、コントローラ102及び/又はICH140と通信可能な任意の適当な装置やコンポーネントへの任意の適当なリンクを提供しても良い。一実施形態によれば、ICH140は、各インタフェースに適当な調停とバッファリングを行う。
一実施形態によれば、ICH140は、スーパーI/Oコントローラ150を介して、キーボード151、マウス152、マイク156、スタイラス157、一又はそれ以上のパラレルポート153を介して例えばプリンタといった一又はそれ以上の適当な装置、一又はそれ以上のシリアルポート154を介して一又はそれ以上の適当な装置、フロッピー(登録商標)ディスクドライブ155にインタフェースを提供しても良い。他の実施形態では、上述したものよりも少数又は多数の装置やインタフェース、あるいは、上述したものとは異なる装置やインタフェースを用いても良い。
ICH140は、FWH170にも接続されて、FWH170へのインタフェースを提供しても良い。FWH170は、任意の適当なインタフェースコントローラを含んで、ICH140への任意の適当な通信リンクを提供しても良い。一実施形態によれば、FWH170は、ICH140とスーパーI/Oコントローラ150間のインタフェースの少なくとも一部を共有しても良い。FWH170は、基本入出力システム(BIOS)メモリ172を含んで、適当なシステム及び/又はビデオBIOSソフトウェアを格納しても良い。BIOSメモリ172は、例えばフラッシュメモリといった任意の適当な不揮発性メモリを含んでも良い。他の実施形態では、上述したものよりも多数又は少数の装置やインタフェース、あるいは、上述したものとは異なる装置やインタフェースを用いても良い。
コントローラ102は、メモリ108にも接続されて、メモリ108へのインタフェースを提供しても良い。メモリ108は、メモリシステムの一部であっても良い。メモリ108は、コンピュータシステム100で用いるデータやコードを格納しても良い。メモリ108は、例えばランダムアクセスメモリ(RAM)、その派生物、又はシーケンシャルメモリといった、任意の適当なメモリを含んで良い。コントローラ102は、メモリバス110を介してメモリに接続されても良い。メモリバス110はバスを含んでもよく、このバスは、データライン、アドレスライン、制御ライン、又は、これらのラインを多重化したものを含んでも良い。データバスにデータマスクを統合することで、専用データマスクバスの必要は無くなるが、接続デバイスのデータマスクピンの必要が無くなるとは限らない。データマスクビットとデータチャンクを一つのピン上に組み合わせることで、必要なバスライン数を軽減することができる。また、転送されたデータマスクビットを転送されたデータチャンクにマッピングするのに、データマスクマップを導入しても良い。データマスクマップは、完全にアソシエイティブであっても良いし、そうでなくても良い。
一実施形態によれば、より簡単なデータマスクマップセットを用いることを条件としても良い。例えば、システム中で、あるマスクビットは別の特定のデータビットにマッピングされないというルールが知られている。従って、当該システムのデータマスクマップやデータマスクマップセットは、特定のマッピングを排除することで軽くすることができる。別の実施形態では、データマスクマップに条件を設定し、データマスクとデータチャンクとを一対一対応させて、データ保全性を維持しても良い。データマスクマップやデータマスクマップセットに設定し得る別の条件としては、使用された任意のデータマスクマップを、コントローラとターゲット(メモリ)の双方で把握するという条件がある。既述したように、データマスクマップは、メモリベンダに規制を課すことで、又はメモリベンダが規制を課すことで簡素化することができる。しかし、本発明の一実施形態は、メモリベンダにそのような規制を課さずに実施することもできる。
一実施形態によれば、コントローラ102は共用領域112を有する。共用領域112は、複数のソースからのデータを例えばバッファに送る回路であっても良い。プロセッサ104やICH140等の送信デバイスは、データマスクマップ又はデータマスクマップセットに従って再フォーマットされたデータを要することがある。プロセッサ104から共用領域112に送信された情報は、変換ロジック114とプロセッサインタフェース116等のプログラム可能なマッピングロジックを要することがある。変換ロジック118とI/Oインタフェース120は、共用領域112からICH140に対して又はICH140を介して送信される情報の変換やインタフェースに寄与しても良い。
図1に示す実施形態では、変換ロジック114及び118がシステム100中の別個のユニットとして表されている。別個のユニットである変換ロジック114と変換ロジック118とは、同一のユニットであっても異なるユニットであっても良い。別の実施形態では、変換ロジック114と変換ロジック118は、プロセッサ104とICH140の双方に接続された単一の変換ユニットであっても良い。また別の実施形態では、変換ロジック114と変換ロジック118を、共用領域112に多重化し、再マッピングしても良い。変換ロジック118のI/Oフォーマットは、変換ロジック114のCPUフォーマットと異なっても良い。変換ロジック114と変換ロジック118からの共用領域112への出力は、DRAMフォーマット等の同じメモリフォーマットであっても良い。
変換ロジック114及び/又は変換ロジック118は、データマスクマップ又はデータマスクマップセットを含んでも良いが、これについては図2と図4で更に説明する。データマスクマップ又はデータマスクマップセットは、メモリ108のデータマスクマップ又はデータマスクマップセットとマッチするものであっても良い。図1に示す実施形態では、メモリ108はデータマップ124を含んでも良い。データマップ124は、例えばSPD106等のメモリ中のSPD領域に格納しても良い。別の実施形態では、マッピング情報をBIOSやオブジェクトコードに格納しても良い。コントローラ102は、上述した構成要素よりも少数又は多数の構成要素を含んでも良いし、上述した構成要素について異なる配置を採用しても良い。
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェアの一つ又はこれらの組み合わせとして実施しても良い。本発明の別の実施形態は、コンピュータ読み取り可能な媒体に格納された指示として実施しても良く、このコンピュータ読み取り可能な媒体は少なくとも一つのプロセッサで読み取られかつ実行されて、ここに記載した動作を実行するものであっても良い。コンピュータ読み取り可能な媒体は、機械(例えば、コンピュータ)で読み取り可能な形式で情報を格納又は送信する任意のメカニズムを含んでも良い。例えば、コンピュータ読み取り可能な媒体は、ROM、RAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響その他の形をとった伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)などを含んでも良い。システム100は、実施形態によっては、図1に示したよりも多数の構成要素を含んでもよいし、少数の構成要素を含んでもよい。
図2は、本発明の一実施形態による変換ロジック201の例を示す概略ブロック図である。変換ロジック201は、変換ロジック114と変換ロジック118のどちらか一方、又は、変換ユニット114と118の双方の実施形態であっても良い。変換ロジック201の出力は、共用領域112が本実施形態に含まれているか否かによって、共用領域112又はメモリバス110に送信される。
変換ロジック201は、データマスクに対するデータのマップとデータに対するデータマスクのマップの少なくとも一方を含む。この情報は、マッピングレジスタ203、又はプログラム可能な選択デバイス204に接続された他のデバイスに格納される。選択デバイス204は、例えば一又はそれ以上のマルチプレクサを含んでも良い。データマスクマップ又はデータマスクマップセットが選択デバイス204の一又はそれ以上の入力としてハードワイヤされている場合、マッピングレジスタ203を備えなくとも良い。マッピングレジスタ203は、可変の又はプログラム制御できるマッピングに用いても良く、メモリコントローラ102内の一又はそれ以上のレジスタとして実現しても良い。データのマップやデータマスクのマップは、メモリモジュールのSPD106やその他の記憶領域、BIOS、オブジェクトコード、あるいはその他の記憶領域から取得することができる。メモリモジュールは、メモリユニットとメモリコントローラを含んでも良い。別の実施形態では、マッピングレジスタ203を、例えばEPROM(erasable programmable read-only memory)等の中のメモリ108中に設けて、レジスタマッピングの方程式を有する構成とする。本実施形態では、メモリ108をメモリコントローラ102に適応するようにプログラムする。
選択デバイス204を、データマスクビットやデータビットの並べ替えに用いても良い。例えば、選択デバイス204は、マッピングレジスタ203のデータマスクマップやデータマスクマップセットを用いても良い。一実施形態によれば、マッピングレジスタ203の出力を選択デバイス204に接続しても良い。このようにすれば、設計時には、データマスクマッピングを把握しておく必要は無い。
図3は、本発明の一実施形態による、データラインにデータマスクが統合された場合の書き込み動作の波形を示す。これは、データチャンクとデータマスクが同じピンで送信される例を示す。図3はまた、データマスクマップと、n個のチャンクへのデータの分割も示している。図3に示す例では、データマスクワードが送信される時間がs0からsxで示され、データワードが送信される時間はS0〜Syで示されている。ワードとは、記憶装置からプロセッサレジスタへ一度の動作で移動できるデータの単位を意味する。データマスクはDM0〜DMxで表され、データはD0〜Dyで表される。従って、図3中のデータチャンクはC0〜Cnで表される。データは、例えば、1ビットといった極めて小さいサイズや、送信可能な最大データサイズのような極めて大きいサイズなど、任意のサイズのチャンクに分割できる。データチャンクのサイズ、例えばワードは、システムに依存する。例えば、64ビットバスを備えるシステムでは、データマスクワードとデータワードは64ビット単位で送信され得る。チャンクサイズは、データマスキングを実施する粒度(granularity)として定義される。例えば、1データマスクビットで1バイト(8ビット)のデータをマスクしても良いが、この場合、1チャンクは1バイトのデータとなる。本実施形態では、各チャンクが1バイトのデータであるので、64ビットのデータワードは8チャンクから成る。データマスクビットが複数チャンクのデータをマスクする実施形態としても良い。一実施形態によれば、データチャンクは異なるデバイスと並列に接続され、データマスクはデータチャンクを受信するデバイスをマスクしても良い。
図3は更に、データマスクマップの一例を示している。データマスクビットとデータ間のマッピングは、メモリコントローラとターゲット(例えば、メモリデバイス)が当該マッピングを受け入れる限り、任意の形(orientation)をとることができる。図3のデータマスクマッピングの複数の方式は、データマスクビットをデータにマッピングする複数の例を示している。
書き込み処理中に、データマスクをデータと共に任意の順序で送信しても良い。データマスクとデータチャンク間には特定のタイミング関係は要求されない。これは、データマスクは、データを送信する同一のデータラインに埋め込まれているからである。例えば、データマスクは、データよりも先、データと同時、又はデータよりも後に送信することができる。図3に示すように、データマスクをデータよりも先に送信すると、メモリデバイスは、マッピングロジックが受信データに作用する前にマッピングロジックを設定することができる。データマスクがデータよりも後に送信される場合には、データをバッファ内に格納してデータマスク情報を待つ必要があり得るため、書き込み処理の終了が遅延することがある。
データマスクの必要送信回数は、使用される技術に応じてシステムで設定される。一実施形態によれば、データマスクの最高送信回数は、データ送信回数を送信毎のデータチャンク数で割り算したものと同じであっても良い。この関係は、各データ送信に同数のチャンクが含まれることを前提としているが、こうした前提は実施形態によっては不必要であり、本発明を限定するものでもない。
一回の書き込みで転送されるデータマスクワード数は、当該書込み処理のデータワード数とチャンクサイズに依存する。例えば、チャンクサイズがデータ1バイト分であって、書き込み処理には8データワードが必要である場合、ワードが64ビット単位なら、当該書込みには合計64チャンクが含まれる。1データマスクビットで1チャンクをマスクする場合、上記書込み処理には64データマスクビットが必要となる。システムによっては、64データマスクビットで1データマスクワードを構成しても良いため、そうしたシステムでの書き込み処理には、1データマスクワードが必要となる。上記の例では、書き込み処理に8データワード(D0〜D8)と1データマスクワード(DM0)が含まれる。
書き込み処理に2以上のデータマスクワードが必要となる場合もある。例えば、チャンクサイズが2ビットで、書き込み処理に8データワードが必要となる場合、ワードが64ビット単位なら、書き込み処理には合計256チャンクが含まれる。1データマスクビットで1チャンクをマスクする場合、書き込み処理には256データマスクビットが必要となる。本実施形態において、64データマスクビットで1データマスクワードを構成する場合、書き込み処理には4データマスクワードが必要となる。上記の例では、書き込み処理に8データワードと4データマスクワードが含まれることになる。
チャンクサイズを2ビットとした、前述の例では、1ワード中のデータチャンク数は32である。従って、図3で、データチャンクはC0〜C31となる。書き込み処理に含まれる4つのデータマスクワードは、DM0〜DM3、書き込み処理に含まれる8つのデータワードはD0〜D7となる。図3で、データマスクマッピングの一例を用いると、DM0の縦格子で示すデータマスクビットは、D0のデータチャンクCnをマスクする。DM0の斜線で示すデータマスクビットは、D1のC0をマスクし、DM1の斜め格子のデータマスクビットは、D2のC2をマスクする。
マッピング方式は一対一の関係を有し、1データマスクビットは1チャンクと関連付けられる。n個のデータチャンクにマッピングできるn個のデータマスクビットがある場合、合計n通りのマッピング方式が考えられる。例えば、64データチャンクを8データワード送信するのに64データマスクビットが必要になる場合、4096通りのマッピングが存在し得る。メモリランクは、同じチップセレクトに接続された、メモリの一又はそれ以上のブロックの一つであるが、このメモリランクが独自のマッピング方式を有し、メモリモジュールが一又はそれ以上のメモリランクを有することがある。従って、各メモリモジュールで正しいデータマスクマッピングを行うためには、一又はそれ以上のマッピング方式が必要となる。
図4は、本発明の一実施形態による、データとデータマスクが同一のピンでメモリと通信する方法であって、プロセッサとメモリ間にインタフェースを提供するコントローラの動作を示すフローチャート400である。ブロック402でこの方法を開始する。次に、ブロック404で、コントローラは、プロセッサ又はI/Oからデータとデータマスクを受信する。メモリ用にフォーマットされた情報をコントローラに与えるのは、プロセッサとI/Oのどちらでも良い。コントローラは、例えばデータマスクをデータにマッピングする内部マッピングを有し、ブロック406で、データフォーマットをデータとデータマスクのマッピングに従って変換する。一実施形態によれば、コントローラは、データフォーマットをデータマスクが統合されたデータラインに変換する。次に、ブロック408で、コントローラはデータマスクが統合されたデータラインをメモリに書き込む。最後に、ブロック410で、コントローラは処理を終了する。これとは逆に、データ及び/又はデータマスクをメモリからプロセッサ又はI/Oに送信する際、二つのラインをデータとデータマスクの一つのラインに変換する代わりに、一つの統合されたラインをデータマスクビットとデータチャンクの二つのラインに変換する。
図5は、本発明の一実施形態により、変換ロジック201を用いて、一以上のデータマスクビットのデータマスクストリーム504を、一以上のデータチャンクのデータチャンクストリーム506へ統合する例を示す概略ブロック図である。図5の左端に示すように、データマスクストリーム504とデータチャンクストリーム506は、例えばプロセッサによって同じ空間時間で送信されている。変換ロジック201は、データマスクストリーム504とデータチャンクストリーム506をメモリ認識可能なフォーマットにフォーマットできる。S0〜Syはシステムクロックを表す。データチャンクストリーム506は、図3に示すように、一以上のチャンクD0〜Dyに分割されたデータを含み、データマスクストリーム504は、一以上のデータチャンクD0〜Dyに関連付けられた一以上のデータマスクビットM0〜Myを含んでも良い。データチャンクストリーム506とデータマスクストリーム504は、データマスクライン510とデータチャンクライン512等の異なるラインを介して変換ロジック201に供給される。
図5の変換ロジック201の出力は、例えばデータ・データマスクストリーム508、つまり、関連データマスクを統合したデータチャンクストリームである。データチャンクとデータマスクが出力データライン524に送信される順序は、実施形態によって異なっても良い。実施形態によっては、データマスクを最初に送信することで、記憶装置のコストを削減できる。データチャンクが到達次第、そのデータチャンクをデータマスクに基づいて処理できるからである。本実施形態では、データマスクはクロックs0〜sxの間に最初に送信され、その後、データチャンクがクロックS0〜Syの間に送信される。一実施形態によれば、データは、コントローラ102とメモリ108間を、データ・データマスクストリーム508に示されるフォーマットでやり取りしても良い。理由は、本発明の実施形態は、コントローラ102とメモリ108間の、一又はそれ以上のデータマスクラインの必要性を除去できるためである。なお、コントローラ102とプロセッサ104の間やコントローラ102とICH140の間で、データチャンクライン506とデータマスクライン504とを組み合わせてデータをやり取りしても良い。
図6は、本発明の一実施形態に係る、データマスクのデータチャンクへのマッピングを変更する変換ロジック201の例を示す概略ブロック図である。変換ロジック201への入力として示されるように、データマスクDM0Cn〜DM0C0は期間s0=S0においてデータチャンクD0Cn〜D0C0に関連付けられ、データマスクDM1Cn〜DM1C0は期間s1=S1においてデータチャンクD1Cn〜D1C0に関連付けられ、データマスクDMxCn〜DMxC0は期間sx=SyにおいてデータチャンクDyCn〜DyC0に関連付けられている。変換ロジック201は、データマスクとデータチャンク間の関係を変更可能としても良い。図示された実施形態では、変換ロジック201は、データマスクDM0Cn〜DM0C0にクロックs0の期間において関連付けられたデータチャンクの順序を反転可能としても良い。変換ロジック201からの出力として示されるように、データマスクDM0Cn〜DM0C0は期間s0=S0においてデータチャンクD0C0〜D0Cnに関連付けられ、データマスクDM1Cn〜DM1C0は期間s1=S1においてデータチャンクD1Cn〜D1C0に関連付けられ、データマスクDMxCn〜DMxC0は期間sx=SyにおいてデータチャンクDyCn〜DyC0に関連付けられている。データマスクビットをデータチャンクに関連付ける方法は多数ある。
変換ロジックは、マルチプレクサや、情報を並べ替えてマッピングに一致させる他の方法を含んでも良い。データマスクが正確に対応するデータチャンクがメモリ中で上書きされるのを防止できるように、データマスクとデータチャンクのマッピングを確定した際にメモリコントローラのハードウェアをプログラムしても良い。任意のマッピングをメモリコントローラのハードウェアにプログラムする一実施形態としては、図2でマッピングレジスタ203と選択デバイス204について述べたように、ハードウェアをプログラムするレジスタを用いても良い。
図7は、本発明の一実施形態に係る、メモリコントローラのプログラム方法のフローチャートを示す。ブロック702で、データマスクとデータチャンクの公知のマッピングをマッピングレジスタ203に書き込む。マッピングレジスタは複数あっても良い。これらの値は、BIOS等のソフトウェアやファームウェアを介してハードウェアによって書き込むことができる。一実施形態では、ブロック704で、マッピングレジスタ203は選択デバイス204に接続されて、データマスクマップやデータマスクマップセットに従って、データチャンクやデータマスクの順序を操作できる。ブロック702で、公知のデータマスクマップやデータマスクマップセットをマッピング値と共に回路等にプログラムして、データマスクをデータチャンクにマッピングして正確に対応するデータチャンクがメモリ中で上書きされるのを防止するメモリ108との接続を維持する。
図8は、本発明の実施形態による、特定のデータチャンクをマスクし、そのデータマスクマップやデータマスクマップセットがメモリコントローラにプログラムされている、特定のデータマスクビットの値を示すテーブルの概略図である。コラム802にはコンピュータシステムで用いられるデータが含まれ、コラム804には選択されたデータのメモリ中での上書きを防止するデータマスクが含まれている。この例では、各データマスクビットが、データの二つの英数字又は1バイトをマスクする。他の方法でデータマスクビットをデータに割り当てても良い。コラム804の横列808で、データマスクビットの最下位4ビットは、「A」であるが、これは2進法では「1010」であって、データマスクビットはデータチャンク「DE」と「BE」にアサートされることを意味する。コラム804の横列810で、データマスクビットは「1」つまり「0001」であるが、これはデータチャンク「CE」をマスクすることを意味する。コラム804の横列812で、データマスクビットは「3」つまり「0011」であり、データチャンク「45」と「67」をマスクする。コラム804の横列814で、データマスクビットは「2」つまり「0010」であり、データチャンク「CD」をマスクする。コラム804の横列816で、データマスクビットは「6」つまり「0110」であり、これはデータチャンク「46」と「8A」をマスクする。コラム804の横列818で、データマスクビットは「F」つまり「1111」であり、データチャンク「13」、「57」、「9B」、「DF」をマスクする。コラム804の横列820では、データマスクビットは「0」であり、これはデータチャンクをマスクしない。コラム804の横列820では、データマスクビットは「4」つまり「0100」であり、データチャンク「AA」をマスクする。
本例では、データ転送は4バイト長で行われ、データチャンクは1バイト長である。データチャンクのサイズと、データエレメントと選択されたラインの順序は変更しても良い。この場合でも、データチャンクと、同一の単数又は複数のラインに統合されたそれぞれのデータマスクとの双方を送信するという目的を果たすことができる。これらのラインは、メモリコントローラからメモリに送信される準備が整った値を転送する。ライン824では、データエレメントとデータマスクの双方が同一のラインで送信される。この例で送信されるデータエレメントは、横列806〜822、コラム802のデータチャンクの最初のバイトである。ただし、ライン824で最初に送信されるのは、データマスクビット832である。データマスクビットと選択されたデータチャンクの順序はこれ以外でも良く、その場合も本発明の実施形態の目的を果たすことができる。しかし、便宜上、本図では一つの方法を選択して表示している。ライン824で送信されるマスクビットは、16進法では「21」、2進法では「00100001」である。装置D2、D1、D0にそれぞれ対応する、その他の3つのデータライン826、828、830では、コラム802のデータの第2、3、4バイトが送信される。本実施形態では、データマスクビット834、836、838はそれぞれ「B0」、「3D」、「26」、つまり、「10110000」、「00111101」、「00100110」に等しい。送信された上記のマスクビットは、列808−822のコラム802と804に示されるように、バイト値「13」、「DE」、「AA」、「57」、「46」、「9B」、「8A」、「CD」、「45」、「BE」、「DF」、「67」、「CE」のマスキングに対応する。
データライン824、826、828、830は、図1のメモリバス110等のメモリ接続の実施形態として用いても良い。メモリバス110の形態として、例えばその出力が出力デバイス毎に1ビット接続された、一又はそれ以上のマルチプレクサを含む回路を含む。図9は、本発明の一実施形態による、任意のデバイスへ複数ビットを送信するエレメントを選択するマルチプレクサの二つの回路例を示す。回路900は、図8のデバイスD0のビット0に対応するビット0をラインD0.0を介してデバイス0に出力する回路である。本実施形態では、転送するデータマスクビットは合計32ビットであるが、これ以外のビット数でも良い。データマスクビット0から31はマルチプレクサ902に供給される。マルチプレクサ・セレクタ904は、送信するのに適当なデータマスクビットを、データマスクビットとデータチャンクのマッピングに基づいて指示する。本実施形態のマルチプレクサ・セレクタ904は、デバイスD0のビット0、つまり、16進法で00、2進法で00000000に対する、データマスクビットとデータチャンク間のマッピングに対応する。マルチプレクサ・セレクタ904に上記の値を入力しても良い。あるいは、2進法の0を接地電位、2進法の1を電源電位として、マッピングを書き込む。別の実施形態によれば、マルチプレクサ・セレクタ904を、図2のマッピングレジスタ203等のレジスタに接続しても良い。
マルチプレクサ906は、データを書き込むメモリランクを選択する。マッピングがメモリランク間で同じ場合、メモリランクを用いることで、回路で必要となる選択肢の数を削減することができる。マルチプレクサ908は、データチャンクとデータマスクビットのどちらをラインD0.0で転送するか制御する。マルチプレクサ908へのデータ入力として、データ入力910がある。その他多くの実施形態では、転送すべきデータチャンク、データマスク、ランクなどを選択しても良い。回路901は回路900に類似しており、マルチプレクサ902、906、908とライン904と910にそれぞれ対応するマルチプレクサ912、916、918とライン914と920を備えるが、対応のデータ出力がラインD0.1を介してデバイスD0のビット1に供給される点で異なる。回路900と901、及び、図示はしないが更に別のデバイスビットに対する回路を随意で含む回路によれば、一連のマルチプレクサに、少なくとも1データマスクビットと少なくとも1データチャンクの双方を同一のラインにロードさせてメモリに供給することができる。これについては図10で更に説明する。
図10は、本発明の一実施形態による、データマスクビットとデータチャンクの間のマッピングを選択する複数のマルチプレクサを含むアレイ1000を示す。一実施形態によれば、これらのマルチプレクサはコントローラ102内に配置される。データマスクビットが入力され、適切なデータマスクマップに従って入力データマスクビットから選択されたデータマスクビットが出力される。図中、dm[N]は、選択された出力データマスクビットを示し、rはランクを、Nはデータマスク中のどのビットかを示す。図10には複数のマルチプレクサ・アレイが示されているが、これは各メモリランクが異なるマッピングを有し、異なるアレイで制御され得るからである。各ランクが同一のマッピングを有する場合、一実施形態によれば、N:1マルチプレクサの数を全体のメモリランクの数よりも少なく設定する。各ビットにN:1マルチプレクサを備える代わりに、N:1の出力を備える単一のマルチプレクサと、アクセスすべきランクを選択するr:1マルチプレクサとを備えても良い。図10には示されていないが、データマスクビットのデータチャンクへのマッピングは、どのメモリ位置にマップすべきかを推論するものであっても良いし、そうでなくても良い。例えばマッピングはメモリ位置の推論なしに、別途チップを設けて、当該デバイスについてのデータチャンクとマップ位置を受信しても良い。別のチップを用いる場合、新たに規則を設けたり、任意の記憶域体系に対応する他の知識ベースの入力を導入したりすることによって、マッピング、記憶装置、及び/又は生成ロジックを最小限にすることができる。
上記の実施形態では、図9と図10の回路で、データマスクマップやデータマスクマップセットをマルチプレクサ・セレクタとの接続を介してメモリコントローラにプログラムしても良いことを示した。メモリコントローラの順序付けをプログラムする一実施形態として、マルチプレクサ・セレクタ904やマルチプレクサ・セレクタ914等のマルチプレクサ・セレクタを、グランド及び/又は電源にワイヤ接続しても良い。メモリコントローラにデータマスクマップやデータマスクマップセットをプログラムする別の実施形態としては、メモリ中の任意の位置からデータマスクマップデータを取り出し、ソフトウェアアルゴリズムを用いてデータマスクマップやデータマスクマップセットを生成しても良い。
図11は、本発明の実施形態による、メモリモジュール中のSPD106からデータマスクマッピング情報を取得する方法のフローチャートである。SPD106は、シンクロナスDRAMモジュール上のEEPROMチップに格納されている情報を含んで、BIOSがモジュールサイズ、データ幅、速度、電圧等の情報を取り出せるようにしても良い。BIOSは、この情報を用いてメモリを適切に構成し、信頼性とパフォーマンスを最大化することができるので、メモリコントローラをプログラムするのに、SPD106に格納されたデータマスクマップやデータマスクマップセットからBIOSが恩恵を受けることもある。本実施形態のSPD106は、図1のデータマップ124等のメモリ領域に、データマスクマップやデータマスクマップセットを格納する記憶領域を含んでも良い。
図11の方法1100は、処理ブロック1102で、データマスクマッピング情報を各メモリモジュールのSPD106から取得することで開始される。システムの各メモリモジュールは一又はそれ以上のメモリランクを有してもよく、各メモリランクは異なるデータマスクマッピング方式を有しても良い。
モジュールのメモリランクのデータマスクマッピング方式は、処理ブロック1104で、データマスクマッピング情報から決めても良い。一実施形態によれば、データマスクマッピング情報は、各メモリランクのデータマスクマッピング方式であっても良い。別の実施形態によれば、各メモリモジュールから得られたデータマスクマッピング情報は、各メモリモジュールのマッピング方式の指標を含んでも良い。マッピング方式の指標は、「ベンダA」といった語でも、「4865」といった数字であっても良い。この語や数字はメモリモジュールのマッピング方式と関連付けられる。そのため、各指標が受信された場合、メモリモジュールの各メモリランクのデータマスクマッピング方式を示しても良い。例えば、「ベンダA」の受信は、メモリモジュールの1メモリランクがマッピング方式Xを有し、同じメモリモジュールの別のメモリランクはマッピング方式Yを有し、同じメモリモジュールの別のメモリランクはマッピング方式Zを有していることを示しても良い。
データマスクマッピング方式を得た後、メモリコントローラに当該マッピング方式をプログラムしても良い。データマスクマッピング情報をSPD106から得るようにすることで、メモリベンダは独自のマッピングを定義することができ、テスト方法の容易化や、レイアウト上の制約の軽減が図られる。メモリ製造者は、SPD106中の明示的なメモリマッピング情報を取り除き、その代わりにベンダのSPD情報に対応する公表マップに依拠しても良い。
配線関係やメモリ位置の検索に加えて、メモリコントローラにデータマスクマップやデータマスクマップセットをプログラムする別の実施形態として、メモリベンダのメモリ特性を調べるソフトウェアアルゴリズムを用いて、データマスクマップやデータマスクマップセットを推論する。図12は、本発明の一実施形態に従って、メモリモジュールの各メモリランクのデータマスクマップを決定するフローチャートである。データマスクマップやデータマスクマップセットを決定する方法毎に異なる実施形態が存在する。従って、以下の実施形態は、単なる一例に過ぎない。メモリモジュールは一又はそれ以上のメモリランクを含んでも良く、各メモリランクは異なるデータマスクマップやデータマスクマップセットを有しても良い。よって、各メモリモジュールの各メモリランクを調べてデータマスクマップやデータマスクマップセットを決定する。
図12の方法1200は、処理ブロック1202で、メモリモジュールの第1のメモリランクを選択することで開始される。処理ブロック1204で全データマスクビットがアサートされ、処理ブロック1206で第1の書き込み処理が行われて、メモリの選択されたメモリランクに公知の第1のテストデータパターンが書き込まれる。例えば、最大データ転送サイズ幅での書き込み処理を、全てのビットが「1」であるデータパターンで行っても良く、アサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされていないことを示す場合、メモリ領域には「1」で構成されたパターンが書き込まれる。ルールによっては、デアサートされたデータマスクビットが自身に関連付けられたデータチャンクがマスクされることを示すこともある。アルゴリズムはどちらのルールを採用しても良いが、本実施形態では、アサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされないことを示し、デアサートされたデータマスクビットは自身に関連付けられたデータチャンクがマスクされることを示す。
処理ブロック1208で、アサートされた1データマスクビットを含むテストデータマスクパターンが書き込まれる。処理ブロック1210では、第2の書き込み処理が行われ、メモリの選択されたメモリランクに第2の公知のデータパターンが書き込まれる。例えば、最大データ転送幅での書き込み処理を、全てのビットが0であるデータパターンで行っても良く、1データマスクビットがアサートされているため、メモリ領域の1データチャンクに0のみで構成されたパターンが書き込まれ、残りのチャンクはマスクされて1が残る。上記の例で、0のみで構成された公知のパターンは、メモリ領域中で変更されたチャンクを識別する「タグ」として機能する。一実施形態によれば、第2のテストデータパターンを処理ブロック1210で書き込んでも良い。
「タグ」は、アサートされたデータマスクビットに関連付けられたデータチャンクを識別するのに用いられる。変更されたデータチャンクは、様々な方法で識別することができる。以下はその一実施形態である。ブロック1211で、メモリ領域中のデータ読み出し要求が出される。データパターン中の変更されたチャンクの位置は、読み出されたデータのチャンクと、処理ブロック1206で書き込まれた第1の公知のデータパターンのチャンクとを比較することで割り出される。先の例では、1のみで構成されたパターンが書き込まれる。一致しない場合、変更されたチャンクの位置が識別される。
読み出されたデータのチャンクと、処理ブロック1206で書き込まれた第1の公知のデータパターンのチャンクとを比較する方法は、使用されるデータパターンに従って選択される。読み出されたデータと、処理ブロック1206で書き込まれた第1の公知のデータパターンとに排他的論理和演算を行っても良い。排他的論理和演算の結果に対して、処理ブロック1208で用いた「タグ」に一致するまで、チャンクサイズごとに論理シフトを行う。先の例では、「タグ」は0のみで構成されている。論理シフトを行った数は、変更されたチャンクの位置を示す。
変更されたチャンクの位置が識別されると、処理ブロック1208で選択された、データマスクビットのマッピングが分かる。例えば、選択されたデータマスクビットが処理ブロック1208で用いたデータマスクビットパターンの第1のデータマスクビットであって、変更されたチャンクが読み出されたデータの第5番目のチャンクである場合、第1のデータマスクビットは第5番目のデータチャンクをマスクすることになる。処理ブロック1208で選択された、データマスクビットのマッピングは、処理ブロック1210で記録される。他のデータマスクビットのマッピングは、ブロック1214で最後のデータチャンクが用いられたと判断されるまで処理ブロック1204−1216を繰り返して、同様に割り出される。ブロック1218と1220は、残りのランクに対して上記処理を繰り返すのに用いられる。処理ブロック1218で最後のランクが処理されたと判断されると、処理はブロック1222で終了する。このようにして決定されたマッピング方式は、既述したようにコントローラ102に格納されても良い。
上記の説明は解説のためのものであって、本発明の実施形態の範囲を制限するものではない。当業者は様々な変形例を想到し得るであろう。本発明の趣旨や主要な特徴から逸脱することなく、様々な実施形態が可能である。特許請求の範囲と均等と考えられるあらゆる変更点は、本願の範囲に含まれるものとする。変形例は本発明の実施形態に含まれるものであり、本発明は添付の特許請求の範囲やその趣旨によってのみ制限される。
本発明の一実施形態による、コントローラを含むシステムの例を示す図である。 本発明の一実施形態による、変換ロジックの実施形態を示す概略ブロック図である。 本発明の一実施形態による、データマスクがデータラインに統合された書き込み処理を示す波形図である。 本発明の一実施形態による、プロセッサとメモリ間にインタフェースを設ける方法を示すフローチャートである。 本発明の一実施形態による、データマスクラインをデータチャンクラインに統合する変換ロジックを示す概略ブロック図である。 本発明の一実施形態による、データマスクとデータチャンクのマッピングを変更する変換ロジックを示す概略ブロック図である。 本発明の一実施形態による、メモリコントローラをプログラムする方法を示すフローチャートである。 本発明の一実施形態による、特定のデータチャンクをマスクする特定のデータマスクビットの値を示すテーブルと概略ブロック図である 本発明の一実施形態による、任意のデバイスへ複数ビットを送信するエレメントを選択するマルチプレクサの二つの回路例を示す図である。 本発明の一実施形態による、データマスクビットとデータチャンク間のマッピングを選択するマルチプレクサを含むアレイを示す図である。 本発明の一実施形態による、メモリモジュールのSPD(serial presence detect)からデータマスクマッピング情報を取得する方法を示すフローチャートである。 本発明の一実施形態による、メモリモジュールの各メモリランクのデータマスクマッピング方式を割り出す方法を示すフローチャートである。

Claims (52)

  1. メモリシステムから、前記メモリシステムのメモリモジュールで用いる、データマスクビットとデータチャンクとを関連付けるデータマスクマッピング方式を示す情報を取得するステップと、
    前記情報に基づいて前記データマスクマッピング方式を決定するステップと、
    を含む方法。
  2. 請求項1記載の方法であって、
    前記取得ステップは、
    前記メモリモジュールに前記情報を送信するように命令する、少なくとも1つの命令を前記メモリモジュールに送信するステップと、
    前記メモリモジュールから前記情報を受信するステップと、
    を含むことを特徴とする方法。
  3. 請求項2記載の方法であって、
    前記メモリモジュールから前記情報を受信するステップは、前記情報を前記メモリモジュールのシリアルプレゼンスディテクト(SPD)から受信するステップを含むことを特徴とする方法。
  4. 請求項3記載の方法であって、
    前記SPDから前記情報を受信するステップは、前記データマスクマッピング方式を示す指標を受信するステップを含むことを特徴とする方法。
  5. 請求項3記載の方法であって、
    前記SPDから前記情報を受信するステップは、前記データマスクマッピング方式を受信するステップを含むことを特徴とする方法。
  6. 請求項1記載の方法であって、
    前記取得ステップは、少なくとも1つのテストデータマスクパターンと少なくとも1つのテストデータパターンを前記メモリモジュールのメモリ領域に書き込み、前記少なくとも1つのテストデータマスクパターンを用いて変更された前記少なくとも1つのテストデータパターンを、少なくとも1つの結果データパターンとして前記メモリ領域から読み出すステップとを含み、
    前記決定ステップは、前記少なくとも1つの結果データパターンに基づいて、前記メモリ領域に対して用いる前記データマスクマッピング方式の一部を決定するステップを含む、
    ことを特徴とする方法。
  7. 請求項6記載の方法であって、
    前記書込みステップは、
    第1のテストデータパターンを前記メモリ領域に書き込む第1の書き込み転送を実行するステップと、
    前記メモリ領域に第2の書き込み転送を実行するステップと、
    を含み、
    前記第2の書き込み転送は、第2のテストデータパターンとテストデータマスクパターンとを含み、
    前記テストデータマスクパターンは、前記第2のテストデータパターン中の特定データチャンクを書き込み禁止にしないためのものである、
    ことを特徴とする方法。
  8. メモリモジュールにおけるデータマスクビットとデータチャンクとを関連付けるデータマスクマッピング方式により当該メモリコントローラをプログラムするハードワイヤされた選択デバイスを有するメモリコントローラを有することを特徴とする装置。
  9. 請求項8記載の装置であって、
    前記ハードワイヤされた選択デバイスは、前記少なくとも1つのデータマスクビットと前記少なくとも1つのデータチャンクの少なくとも一部とを受信することを特徴とする装置。
  10. 請求項9記載の装置であって、
    前記ハードワイヤされた選択デバイスは、前記データマスクマッピング方式に従って、前記少なくとも1つのデータチャンクの1つに関連付けるべき前記少なくとも1つのデータマスクビットから1つを選択することを特徴とする装置。
  11. 請求項8記載の装置であって、
    前記ハードワイヤされた選択デバイスは、前記データマスクマッピング方式を実現することを特徴とする装置。
  12. 当該メモリコントローラに対するデータマスクビットとデータチャンクとを関連付けるデータマスクマッピング方式を示す情報を格納する記憶装置を有するメモリコントローラを有することを特徴とする装置。
  13. 請求項12記載の装置であって、
    前記記憶装置には、前記データマスクマップをソフトウェアによりロード可能であることを特徴とする装置。
  14. 請求項12記載の装置であって、
    前記記憶装置には、前記データマスクマップをBIOSによりロード可能であることを特徴とする装置。
  15. 請求項12記載の装置であって、
    前記記憶装置は、前記情報を製造時に含むことを特徴とする装置。
  16. 請求項12記載の装置であって、
    前記情報は、前記データマスクマッピング方式を示す少なくとも1つの指標を含むことを特徴とする装置。
  17. 請求項12記載の装置であって、
    前記情報は、前記データマスクマッピング方式を含むことを特徴とする装置。
  18. 少なくとも1つのデータマスクマッピング方式を用いて、少なくとも1つのデータマスクビットを少なくとも1つのデータチャンクに関連付けるメモリモジュールと、
    前記メモリモジュールに接続されるメモリコントローラとを含み、前記メモリコントローラに、前記メモリモジュールで用いられる前記少なくとも1つのデータマスクマッピング方式がプログラムされることを特徴とするシステム。
  19. 請求項18記載のシステムであって、
    前記メモリモジュールは、前記少なくとも1つのデータマスクマッピング方式の少なくとも1つを用いる、第1及び第2のメモリランクを含むことを特徴とするシステム。
  20. 請求項19記載のシステムであって、
    前記第1のメモリランクは、前記第2のメモリランクとは異なるデータマスクマッピング方式を用いることを特徴とするシステム。
  21. 請求項19記載のシステムであって、
    前記第1のメモリランクは、前記第2のメモリランクと同じデータマスクマッピング方式を用いることを特徴とするシステム。
  22. 請求項18記載のシステムであって、
    前記メモリコントローラは、前記メモリモジュールで用いられる前記少なくとも1つのデータマスクマッピング方式の1つがプログラムされる記憶装置を含むことを特徴とするシステム。
  23. 請求項22記載のシステムであって、
    前記記憶装置は、前記データマスクマッピング方式に従って前記少なくとも1つのデータチャンクに関連付けられる前記少なくとも1つのデータマスクビットの1つを選択する選択デバイスに接続されることを特徴とするシステム。
  24. コンピュータにより実行されると、
    メモリシステムから、前記メモリシステムのメモリモジュールで用いる、データマスクビットとデータチャンクとを関連付けるデータマスクマッピング方式を示す情報を取得するステップと、
    前記情報に基づいて前記データマスクマッピング方式を決定するステップと、
    を有する処理を前記コンピュータに実行させるプログラム
  25. 請求項24記載のプログラムであって、
    前記取得ステップは、
    前記メモリモジュールに前記情報を送信するように命令する、少なくとも1つの命令を前記メモリモジュールに送信するステップと、
    前記メモリモジュールから前記情報を受信するステップと、
    を含むことを特徴とするプログラム
  26. 請求項25記載のプログラムであって、
    前記メモリモジュールから前記情報を受信するステップは、前記情報を前記メモリモジュールのSPDから受信するステップを含むことを特徴とするプログラム
  27. 請求項26記載のプログラムであって、
    前記SPDから前記情報を受信するステップは、前記データマスクマッピング方式を示す指標を受信するステップを含むことを特徴とするプログラム
  28. 請求項24記載のプログラムであって、
    前記取得ステップは、
    少なくとも一つのテストデータマスクパターンと少なくとも一つのテストデータパターンを前記メモリモジュールのメモリ領域に書き込むステップと、
    前記少なくとも一つのテストデータマスクパターンにより変更された前記少なくとも一つのテストデータパターンに対応して、前記メモリ領域に格納された少なくとも一つの結果データパターンを読み出すステップとを含み、
    前記決定ステップは、前記少なくとも一つの結果データパターンに基づいて、前記メモリ領域に対して用いる前記データマスクマッピング方式の一部を決定するステップを含む、ことを特徴とするプログラム
  29. 請求項28記載のプログラムであって、
    前記書込みステップは、
    第1のテストデータパターンを前記メモリ領域に書き込む第1の書き込み処理を実行するステップと、
    前記メモリ領域に第2の書き込み処理を実行するステップと、
    を含み、
    前記第2の書き込み処理は、第2のテストデータパターンとテストデータマスクパターンとを含み、
    前記テストデータマスクパターンは、前記第2のテストデータパターン中の特定データチャンクを書き込み禁止にしないためのものである、
    ことを特徴とするプログラム
  30. 請求項29記載のプログラムであって、
    前記データマスクマッピング方式の前記一部を決定するステップは、前記少なくとも一つの結果データパターンに基づいて、前記第2のテストデータパターン中の前記特定データチャンクを識別するステップを含むことを特徴とするプログラム
  31. データマスクマッピング方式を含み、メモリに接続可能なプログラマブル・マッピングロジックと、
    前記プログラマブル・マッピングロジックに接続され、データチャンクとデータマスクビット間のデータマスクマップを示す記憶装置と
    を含むことを特徴とする装置。
  32. 請求項31記載の装置であって、
    前記プログラマブル・マッピングロジックは、前記記憶装置に接続された変換ユニットを含むことを特徴とする装置。
  33. 請求項31記載の装置であって、
    前記プログラマブル・マッピングロジックは、前記記憶装置に接続されたプログラム可 能な選択装置を含み、前記プログラム可能な選択装置に前記データマスクマップがプログラムされることを特徴とする装置。
  34. 請求項33記載の装置であって、
    前記プログラム可能な選択装置は、一以上のマルチプレクサを含むことを特徴とする装置。
  35. 請求項31記載の装置であって、
    前記データマスクマッピング方式は、データチャンクとデータマスクビットとの一対一対応を含むことを特徴とする装置。
  36. 請求項35記載の装置であって、
    前記データチャンクが、前記データマスクビットにマップされることを特徴とする装置。
  37. 請求項35記載の装置であって、
    前記データマスクビットが、前記データチャンクにマップされることを特徴とする装置。
  38. 値を読むステップと、
    前記値に応じて、データマスクビットをデータチャンクにマップするようメモリコントローラをプログラムするステップと、
    を有することを特徴とする方法。
  39. 請求項38記載の方法であって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラ内の変換ユニットをプログラムすることを含むことを特徴とする方法。
  40. 請求項38記載の方法であって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラ内の記憶装置をロードすることを含むことを特徴とする方法。
  41. 請求項38記載の方法であって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラに、前記データマスクビットと前記データチャンクの一対一の関連付けをロードすることを含むことを特徴とする方法。
  42. コンピュータにより実行されると、
    値を読むステップと、
    前記値に応じて、データマスクビットをデータチャンクにマップするようメモリコントローラをプログラムするステップと、
    を有する処理を前記コンピュータに実行させる命令を格納するプログラム。
  43. 請求項42記載のプログラムであって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラ内の変換ユニットをプログラムすることを含むことを特徴とするプログラム。
  44. 請求項42記載のプログラムであって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラ内の記憶装置をロードすることを含むことを特徴とするプログラム。
  45. 請求項42記載のプログラムであって、
    前記メモリコントローラをプログラムするステップは、前記メモリコントローラに、前記データマスクビットと前記データチャンクの一対一の関連付けをロードすることを含むことを特徴とするプログラム。
  46. プロセッサと、
    前記プロセッサに接続されて、データマスクビットとデータチャンクとを関連付ける少なくとも1つのメモリデータマスクマッピング方式によりプログラムされるメモリコントローラであって、メモリモジュールに接続可能なメモリコントローラと、
    を含むことを特徴とするシステム。
  47. 請求項46記載のシステムであって、
    前記メモリコントローラは、メモリデータマスクマッピング方式の1つを選択するため の、1以上のマルチプレクサを有することを特徴とするシステム。
  48. 請求項47記載のシステムであって、
    前記1以上のマルチプレクサのうちの1以上が、完全に関連付けされていることを特徴とするシステム。
  49. 請求項46記載のシステムであって、
    前記メモリモジュールは、前記少なくとも1つのデータマスクマッピング方式の少なくとも1つを用いる、第1及び第2のメモリランクを含むことを特徴とするシステム。
  50. 請求項49記載のシステムであって、
    前記第1のメモリランクは、前記第2のメモリランクとは異なるデータマスクマッピング方式を用いることを特徴とするシステム。
  51. 請求項49記載のシステムであって、
    前記第1のメモリランクは、前記第2のメモリランクと同じデータマスクマッピング方式を用いることを特徴とするシステム。
  52. 請求項47記載のシステムであって、
    前記メモリモジュールは、いくつかのメモリランクを含み、前記コンピュータシステムは、前記1以上のマルチプレクサとは別に、前記メモリランクの何れにデータを書き込むか選択するランクマルチプレクサをさらに含むことを特徴とするシステム。
JP2003581021A 2002-03-22 2003-03-13 データマスクマッピング情報取得方法 Expired - Fee Related JP4034738B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/104,837 US6801459B2 (en) 2002-03-22 2002-03-22 Obtaining data mask mapping information
PCT/US2003/007915 WO2003083665A2 (en) 2002-03-22 2003-03-13 Obtaining data mask mapping information

Publications (2)

Publication Number Publication Date
JP2005521176A JP2005521176A (ja) 2005-07-14
JP4034738B2 true JP4034738B2 (ja) 2008-01-16

Family

ID=28040707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003581021A Expired - Fee Related JP4034738B2 (ja) 2002-03-22 2003-03-13 データマスクマッピング情報取得方法

Country Status (10)

Country Link
US (3) US6801459B2 (ja)
EP (1) EP1488321B1 (ja)
JP (1) JP4034738B2 (ja)
KR (1) KR100692343B1 (ja)
CN (1) CN100380351C (ja)
AT (1) ATE507528T1 (ja)
AU (1) AU2003214186A1 (ja)
DE (1) DE60336894D1 (ja)
TW (1) TWI297435B (ja)
WO (1) WO2003083665A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801459B2 (en) * 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
DE112004000140T5 (de) * 2003-01-13 2006-02-09 Rambus Inc., Los Altos Kodierte Schreibmaske
US7069533B2 (en) * 2003-03-14 2006-06-27 Chatered Semiconductor Manufacturing, Ltd System, apparatus and method for automated tapeout support
US7363236B2 (en) * 2003-03-14 2008-04-22 Chartered Semiconductor Manufacturing Ltd. System, apparatus and method for reticle grade and pricing management
US7149827B1 (en) * 2004-02-09 2006-12-12 Altera Corporation Methods and apparatus for tristate line sharing
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8429356B2 (en) 2005-11-02 2013-04-23 Ati Technologies Ulc Write data mask method and system
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8296565B2 (en) * 2006-03-27 2012-10-23 Kyocera Corporation Communication protocol for device authentication
US7971058B2 (en) * 2006-03-27 2011-06-28 Kyocera Corporation System and method for generating a plaintext / cyphertext database for use in device authentication
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US8006033B2 (en) * 2008-09-09 2011-08-23 Intel Corporation Systems, methods, and apparatuses for in-band data mask bit transmission
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR20100101449A (ko) * 2009-03-09 2010-09-17 삼성전자주식회사 메모리 장치, 그것의 마스크 데이터 전송 방법 및 입력 데이터 정렬 방법
KR101845368B1 (ko) 2013-09-27 2018-04-05 인텔 코포레이션 메모리 컨트롤러 커넥터의 메모리 커넥터에의 매핑
EP3129886B1 (en) * 2014-12-14 2019-10-02 VIA Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
GB2548908B (en) * 2016-04-01 2019-01-30 Advanced Risc Mach Ltd Complex multiply instruction
WO2019000456A1 (zh) * 2017-06-30 2019-01-03 华为技术有限公司 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
US10679718B2 (en) * 2017-10-04 2020-06-09 Western Digital Technologies, Inc. Error reducing matrix generation
CN109408534A (zh) * 2018-11-02 2019-03-01 上海新炬网络信息技术股份有限公司 基于字符串唯一性与可重复性置换输出的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473878A (en) 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
EP0526114A1 (en) 1991-07-29 1993-02-03 Motorola, Inc. A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
US5901105A (en) * 1995-04-05 1999-05-04 Ong; Adrian E Dynamic random access memory having decoding circuitry for partial memory blocks
KR100209358B1 (ko) * 1996-10-17 1999-07-15 이계철 멀티채널용 고속통신 장치 및 그 제어 방법
KR19980028402A (ko) * 1996-10-22 1998-07-15 문정환 디램(dram) 셀의 구조 및 그 제조 방법
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6185454B1 (en) * 1998-04-29 2001-02-06 Medtronic, Inc. Power consumption reduction in medical devices employing just-in-time voltage control
US6185645B1 (en) * 1998-06-08 2001-02-06 Micron Electronics, Inc. Method for removing power and signals from an inadvertently swapped bus card
US6185654B1 (en) 1998-07-17 2001-02-06 Compaq Computer Corporation Phantom resource memory address mapping system
US6801459B2 (en) * 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking

Also Published As

Publication number Publication date
WO2003083665A3 (en) 2003-12-18
EP1488321B1 (en) 2011-04-27
KR100692343B1 (ko) 2007-03-09
CN100380351C (zh) 2008-04-09
CN1653434A (zh) 2005-08-10
JP2005521176A (ja) 2005-07-14
US20040165446A1 (en) 2004-08-26
DE60336894D1 (de) 2011-06-09
AU2003214186A1 (en) 2003-10-13
ATE507528T1 (de) 2011-05-15
US20040093471A1 (en) 2004-05-13
AU2003214186A8 (en) 2003-10-13
TW200402628A (en) 2004-02-16
US20030179605A1 (en) 2003-09-25
US6952367B2 (en) 2005-10-04
TWI297435B (en) 2008-06-01
EP1488321A2 (en) 2004-12-22
US6801459B2 (en) 2004-10-05
US6925013B2 (en) 2005-08-02
WO2003083665A2 (en) 2003-10-09
KR20040093180A (ko) 2004-11-04

Similar Documents

Publication Publication Date Title
JP4034738B2 (ja) データマスクマッピング情報取得方法
US8850119B2 (en) Operating memory with specified cache address
US8046527B2 (en) Apparatus and method for using a page buffer of a memory device as a temporary cache
JP2006507555A (ja) コントローラプログラミングによるハードウェアへのデータマスクマッピング
US20010007119A1 (en) File memory device and information processing apparatus using the same
US6789179B2 (en) Method and system for fast data access using a memory array
KR20060010849A (ko) 메모리 소자에서의 워드 순서지정 방법
US5551009A (en) Expandable high performance FIFO design which includes memory cells having respective cell multiplexors
US20030002376A1 (en) Method and system for fast memory access
JP4918535B2 (ja) キャッシュメモリ、キャッシュメモリ装置及び割当て方法
JP2568443B2 (ja) データサイジング回路
EP1050818A1 (en) Computer memory access
US7099345B2 (en) Method and system for buffering a data packet for transmission to a network
JPH10222460A (ja) データ転送制御装置
JP2003057305A (ja) 半導体試験装置
JPH055134B2 (ja)

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20070206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070514

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070925

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071025

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees