JP6370528B2 - メモリデバイス群間でのチェックビットメモリデバイスの共有 - Google Patents

メモリデバイス群間でのチェックビットメモリデバイスの共有 Download PDF

Info

Publication number
JP6370528B2
JP6370528B2 JP2012180750A JP2012180750A JP6370528B2 JP 6370528 B2 JP6370528 B2 JP 6370528B2 JP 2012180750 A JP2012180750 A JP 2012180750A JP 2012180750 A JP2012180750 A JP 2012180750A JP 6370528 B2 JP6370528 B2 JP 6370528B2
Authority
JP
Japan
Prior art keywords
data
address
memory
memory chip
error
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.)
Active
Application number
JP2012180750A
Other languages
English (en)
Other versions
JP2013080455A (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 JP2013080455A publication Critical patent/JP2013080455A/ja
Application granted granted Critical
Publication of JP6370528B2 publication Critical patent/JP6370528B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、メモリシステムに関し、より具体的には、エラー検出および訂正(EDC)機能性を含むメモリシステムのコンポーネントに関する。
本明細書の実施形態の教示は、添付の図面と併せて、以下の詳細な説明を考慮することによって容易に理解することができる。
一実施形態による、EDC範囲に対するメモリシステムを示す。 一実施形態による、図1の実施形態での書き込み動作中のアドレス回路の動作を示す表である。 一実施形態による、図1の実施形態での読み出し動作中のアドレス回路の動作を示す表である。 一実施形態による、図1の実施形態での書き込み動作中のメモリシステムの動作を示すタイミング図である。 一実施形態による、図1の実施形態での読み出し動作中のメモリシステムの動作を示すタイミング図である。 別の実施形態による、EDC範囲に対するメモリシステムを示す。 一実施形態による、書き込み動作中の図4の実施形態のアドレス回路の動作を示す表である。 一実施形態による、読み出し動作中の図4の実施形態のアドレス回路の動作を示す表である。 さらに別の実施形態による、EDC範囲に対するメモリシステムを示す。 さらに別の実施形態による、EDC範囲に対するメモリシステムを示す。
本開示の実施形態は、メモリアクセス中に起こり得るメモリエラーを検出および訂正するためのエラー検出および訂正(EDC)範囲をサポートするメモリシステムのコンポーネントに関する。一実施形態では、メモリモジュールは、データを格納する2つのメモリデバイス群と、両方のメモリデバイス群のためにエラーチェック情報(例えば、エラー訂正コード)を格納する別のメモリデバイスとを含む。また、メモリモジュールは、メモリモジュールとメモリコントローラとの間の通信を取り扱うメモリバッファも含む。メモリバッファは、あるメモリデバイス群のデータに、別のメモリデバイス群のデータとは無関係にアクセスすることができるように、メモリスレッディングまたはダイナミックポイントツーポイント(DPP)メモリ構成をサポートすることができる。エラーチェック情報のためのメモリデバイスを共有する一方で独立したデータアクセスをサポートするため、バッファは、データが第1のメモリデバイス群によって転送されるかまたは第2のメモリデバイス群によって転送されるかに基づいて、エラーチェック情報にアクセスするためのアドレスを決定する。いくつかの実施形態では、メモリバッファにあるものとして記載される機能性は、代わりにメモリコントローラに実装して、メモリバッファの必要性を低減または排除することができる。
本開示全体を通じて「エラーチェック情報」という用語は、メモリシステムに格納されたデータ内で起こるエラーの検出および/もしくは訂正において使用されるかまたは同エラーの検出および/もしくは訂正に関連する任意の情報として幅広く定義されることに留意されたい。その上、本明細書全体を通じて「エラー訂正コード」(ECC)という用語は、エラー検出および訂正のためにメモリシステムで使用されるエラーチェック情報を指す。
ここで、本開示のいくつかの実施形態を詳細に参照し、その例を添付の図面に示す。図面では、実行可能な同様のまたは類似した参照番号を使用することができ、それらの参照番号は同様のまたは類似した機能性を示すことができることに留意されたい。図面は、単なる例示として本開示の実施形態を描写する。当業者であれば、以下の説明から、本明細書に記載される本開示の原理または称賛される利益から逸脱することなく、本明細書で示される構造および方法の代替の実施形態を使用できることが容易に理解されよう。
図1は、一実施形態による、EDC範囲に対するメモリシステム100を示す。メモリシステム100は、一次信号リンク160を介して相互接続されたメモリコントローラ102とメモリモジュール104を含む。一実施形態では、システム100は、マザーボード上に存在し得る。メモリコントローラ102は、個別の集積回路でも、中央処理装置(CPU)またはグラフィック処理装置(GPU)などのより大きな集積回路の一部でもあり得る。
一次信号リンク160は、メモリコントローラ102からメモリモジュール104まで制御およびアドレス情報を搬送するコマンドおよびアドレス用一次リンクPCAを含む。また、信号リンク160は、メモリコントローラ102とメモリモジュール104との間でデータを転送するための2つの一次データリンクPDQ0およびPDQ1も含む。一実施形態では、一次データリンクPDQ0およびPDQ1はそれぞれ32ビット幅である。また、一次信号リンク160は、メモリコントローラ102とメモリモジュール104との間でECCを転送するための2つの一次ECCリンクPECC0およびPECC1も含む。一実施形態では、ECCリンクPECC0およびPECC1はそれぞれ4ビット幅である。
メモリコントローラ102は、モジュールスレッディングをサポートし、モジュールスレッディングは、単一の比較的幅広いメモリチャネルを、共通のアドレスバスを通じて互いに無関係にアクセスすることができる2つのサブチャネルに分割する技法を指す。例えば、メモリスレッディングを有効にすると、メモリコントローラ102は、メモリトランザクション(例えば、読み出しおよび書き込みトランザクション)を2つのスレッドT0およびT1に分割する。スレッドT0に対するデータはPDQ0リンクを介して転送され、スレッドT0に対するECCはPECC0リンクを介して転送される。スレッドT1に対するデータはPDQ1リンクを介して転送され、スレッドT1に対するECCはPECC1リンクを介して転送される。メモリコントローラ102は、PCAリンクを介してコマンドおよびアドレス情報を送信し、2つのアクティブローの選択信号S0#およびS1#を使用してトランザクション用のスレッドの1つを選択することによって、メモリトランザクションを制御する。例えば、S0#がアサートされればスレッドT0が選択され、S1#がアサートされればスレッドT1が選択される。他の実施形態では、メモリコントローラ102は、PCAリンクを介してまたは他のサイドバンド信号を通じて、帯域内信号伝達でスレッドを選択することができる。
メモリモジュール104は、合計9つのメモリデバイス120を含む。当業者が通常使用する意味と一致して、メモリデバイス120は、電子的に情報を格納したり取り出したりすることができる集積回路デバイス(すなわち、チップ)である。各メモリデバイス120は、8ビット幅のインターフェースをサポートするx8メモリデバイスである。4つのメモリデバイス120−D0は、スレッドT0に対するデータを格納するメモリデバイスのハーフランクHR0を形成する。4つのメモリデバイス120−D1は、スレッドT1に対するデータを格納するメモリデバイスのハーフランクHR1を形成する。メモリデバイス120−Eは、スレッドT0とT1の両方に対するECCを格納し、効果的に、メモリデバイスの2つのハーフランクHR0とHR1との間で「共有」される。さらに、メモリデバイス120は、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)または非揮発性メモリ(NVM)などの任意のタイプのメモリを表し得る。
また、メモリモジュール104は、モジュールスレッディングと併せてEDCの機能性を可能にするメモリバッファ106も含む。いくつかの実施形態では、メモリバッファ106は、メモリモジュール104に取り付けられた単一の集積回路デバイスである。メモリバッファ106は、メモリコントローラ102とメモリデバイス120との間の通信を取り扱う。具体的には、メモリバッファ106は、二次データリンクSDQ0およびSDQ1を通じて、メモリデバイスのハーフランクHR0およびHR1でデータを転送し、コマンド/アドレス用二次リンクSCAを通じて、ハーフランクHR0およびHR1を制御する。いくつかの実施形態では、SCAリンクは2つのリンクに分割することができ、それぞれがメモリデバイス120−Dの半分を専用して使用する。例えば、ハーフランクHR0を専用して使用するあるコマンドおよびアドレス用リンクが存在し、ハーフランクHR1を専用して使用する異なるコマンドおよびアドレス用リンクが存在し得る。
メモリバッファ106は、二次ECCリンクSECCを通じて共有のメモリデバイス120−EでECCを転送し、ECCコマンド/アドレス用リンクECAを通じて共有のメモリデバイス120−Eを制御する。他の実施形態では、共有のメモリデバイス120−Eは、SCAリンクにおいて信号の大部分(例えば、addr[13:1])と結合する一方で、ECAリンクから単一のアドレス信号(例えば、addr[0])のみを受信することができる。これにより、共有のメモリデバイス120−Eは、SCAリンクでコマンド/アドレス信号の大部分を共有するが、SCAリンクにおいて対応するアドレスビットとは異なり得るそれ自体のユニークなアドレスビットを受信することができる。別の実施形態では、共有のメモリデバイス120−Eは、SCAリンクを共有し、SCAリンクからのコマンドを読み出すための専用チップ選択信号を有することができる。
アドレス回路110もまた、アドレス回路110によって生成される二次選択信号(図示せず)を通じて、それぞれのメモリデバイス120と結合される。各メモリデバイス120は、その選択信号がアサートされれば着信コマンドを処理し、その選択信号がアサート解除されれば着信コマンドを無視する。ハーフランクHR0のデバイスにある選択信号が提供され得、ハーフランクHR1のデバイスに別の選択信号が提供され得、共有のメモリデバイス120−Eに異なる選択信号が提供され得る。一実施形態では、アドレス回路110は、一次選択信号S0#およびS1#の論理レベルから選択信号を導出することができる。
また、メモリバッファ106は、さまざまな通信リンク(例えば、PDQ0、PDQ1、PECC0、PECC1、SDQ0、SDQ1、SECC、PCA、SCA、ECAなど)を介して、情報を受信および送信するインターフェース回路(例えば、I/F 130)も含む。例えば、メモリバッファ106は、SDQ0リンクを介してハーフランクHR0と通信するためのインターフェース、SDQ1リンクを介してハーフランクHR1と通信するためのインターフェースおよびSECCリンクを介してデバイス120−Eと通信するためのインターフェースを有する。本明細書に記載されるバッファ106からの任意の着信通信またはバッファ106への任意の発信通信は、そのようなインターフェース(例えば、I/F 130)を介して実行されることが理解される。
メモリトランザクション中は、メモリコントローラ102は、列アドレスへのアクセスを要求するバッファ106にPCAリンクを介して列コマンド(例えば、読み出しまたは書き込みコマンド)を発行する。本明細書で使用されるように、列動作は、列コマンドおよびその列コマンドに関連する情報の転送を指す。また、メモリコントローラ102は、2つの選択信号S0#またはS1#の1つをアサートして列アクセスのためのアクティブスレッド(例えば、T0またはT1)を示す。スレッドのデータ部分は32ビット幅であるため、バースト長を8ビット(BL8)と仮定すると、全体で64バイトの転送を維持するには、スレッドへの単一のトランザクションは2回の連続した列動作からなる(すなわち、それぞれの列コマンドは、32ビット幅で8ビット長のデータのバーストに関連する)。同様に、スレッドのECC部分は4ビット幅であるため、2回の連続した列動作が、BL8バーストに対し全体で8バイトのデータ転送を維持する。
書き込みトランザクション中は、メモリバッファ106は、2回の連続した32ビット幅のBL8バーストとしてPDQ0またはPDQ1の1つを介してデータを受信し、2回の連続した32ビット幅のBL8バーストでメモリデバイスのハーフランクHR1またはHR2の1つにデータを書き込む。例えば、スレッドT0に対するデータは、PDQ0を介して受信され、ハーフランクHR0に書き込まれる。しかし、ECCが共有のメモリデバイス120−Eに書き込まれる前に、パッキング回路108は、2回の連続した4ビット幅のBL8バーストの1:2パッキングを実行し、それらを単一の8ビット幅のBL8バーストに変換する。例えば、ECCは、2回の連続した4ビット幅のBL8バーストとしてPECC0リンクを介して受信し、次いで、単一の8ビット幅のBL8バーストで共有のメモリデバイス120−Eに書き込むことができる。したがって、メモリバッファ106とメモリデバイス120−Dとの間のデータバーストの各対に対し、メモリバッファ106と共有のメモリデバイス120−Eとの間に1回のECCバーストが存在する。
読み出しトランザクションは、書き込みトランザクションと同様であるが、読み出しトランザクション中は、パッキング回路108は、共有のメモリデバイス120−Eから読み出されたECCの2:1アンパッキングを実行し、SECCリンクを介して受信された単一の8ビット幅のバーストを2回の連続した4ビット幅の読み出しバーストに変換する。4ビット幅のバーストは、選択信号S0#およびS1#の論理レベルによって示されるようなアクティブスレッドに応じて、PECC0またはPECC1リンクのいずれかを介してメモリコントローラ102に送信される。したがって、一般的に言えば、パッキング回路は、あるビット幅のECCを、より大きなまたはより小さなビット幅のECCに転換する責任を有する。
アドレス回路110は、バッファ106とメモリデバイス120との間の情報(すなわち、データおよびECC)の転送を制御する。具体的には、アドレス回路110は、各メモリトランザクションに対して、PCAリンクを介して2つの連続した列アドレス(「一次アドレス」)を受信し、SCAリンクを介して列アドレスを再度送信する。SCAリンクを介して送信されたデータにアクセスするためのこれらの列アドレス(「データアドレス」)は、メモリデバイスのハーフランクの1つにおけるデータの位置を示す。共有のメモリデバイス120−EとのECCアクセスには唯一単一の列アドレスが必要とされるため、アドレス回路110は、2つの一次アドレスから単一の列アドレスを導出することによって、ECCアクセスのための列アドレスを決定する。ECCアクセスのための列アドレス(「エラーアドレス」)は、メモリデバイスの選択されたハーフランクまたは選択されたスレッドから読み出されたかまたは同ハーフランクまたはスレッドに書き込まれたデータに関連する共有のメモリデバイス120−EにおけるECCの位置を示す。
アドレス回路110は、ハーフランクHR0のデバイスでデータ転送が管理されるかまたはハーフランクHR1のデバイスでデータ転送が管理されるかに応じて、異なる方法でエラーアドレスを導出する。一実施形態では、アドレス回路110は、トランザクションがスレッドT0に対するものかまたはスレッドT1に対するものかの指示(トランザクションがHR0に対するものかまたはHR1に対するものかも示す)として、2つの選択入力S0#およびS1#を使用することができ、この指示を使用して着信一次アドレスの1つまたは複数のビットを変更してエラーアドレスを生成することができる。例えば、トランザクションがスレッドT0への書き込みであれば、エラーアドレスの生成において一次アドレスは全く変更されない可能性がある(すなわち、ビット値は保持される)。トランザクションがスレッドT1への書き込みであれば、一次アドレスのビットの1つを反転させてエラーアドレスを生成することができる。データ転送のためにアクセスされているデバイスのハーフランクに基づいて、ECCアクセスのためのアドレスを決定することによって、2つのスレッド間のアドレス競合は回避され、単一のECCメモリデバイス120−Eを2つのスレッド間で共有することができる。
図2Aおよび2Bは、一実施形態による、図1の実施形態でのアドレス回路110の動作を示す表である。具体的には、図2Aは、書き込みトランザクション中のアドレス回路110の動作を示し、図2Bは、読み出しトランザクション中のアドレス回路110の動作を示す。両図とも、図1を参照して説明される。
ここで図2Aを参照すると、書き込みトランザクション中のアドレス回路110の動作を示す表200が示される。表200の最初の2つの行は、スレッドT0に対する連続した列書き込み動作を示す。S0#(アクティブロー信号)をアサートし、S1#をアサート解除することで、列動作がスレッドT0およびハーフランクHR0に関連することを示す。第1の列動作は一次列アドレス「…xyz0」へのものであり、第2の列動作は一次列アドレス「…xyz1」へのものである。両方の一次列アドレスは、PCAリンクを介して受信され、いかなる変更も行わずにSCAリンクを介してハーフランクHR0にデータアドレスとして提供される。第1の列動作中は、共有のECCデバイス120−Eへの書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108がパッキングプロセスを開始するためである。第2の列動作中は、アドレス回路110は、第2の列アドレス「…xyz1」を、いかなる変更も行わずにECAリンクを介してエラーアドレスとして提供し、8ビット幅のバーストを共有のECCデバイス120−Eへ実行する。
表200の最後の2つの行は、スレッドT1に対する連続した列書き込み動作を示す。S1#をアサートし、S0#をアサート解除することで、列動作がスレッドT1およびハーフランクH1に対するものであることを示す。第1の列動作は一次列アドレス「…xyz0」へのものであり、第2の列動作は一次列アドレス「…xyz1」へのものである。両方の列アドレスは、PCAリンクを介して受信され、いかなる変更も行わずにSCAリンクを介してハーフランクHR1にデータアドレスとして提供される。前述と同様に、第1の列動作中は、共有のECCデバイス120−Eへの書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108がパッキングプロセスを開始するためである。しかし、第2の列動作中は、アドレス回路110は、一次列アドレスの最下位ビット(LSB)を反転させ、この変更した列アドレスを、ECAリンクを介してエラーアドレスとして提供する。したがって、共有のECCデバイス120−EへECCを書き込むため、列アドレス「…xyz1」は列アドレス「…xyz0」に変換される。
ここで図2Bを参照すると、読み出しトランザクション中のアドレス回路110の動作を示す表205が示される。図2Bは図2Aと同様であるが、読み出しトランザクション中は、パッキング回路108が第1の列動作中にアンパッキングプロセスを開始できるように、エラーアドレスは、第1の列動作で共有のECCデバイス120−Eに提供される。さらに、アドレス回路110は、一次列アドレスのLSBを反転させ、スレッドT0に対するECCにアクセスする際にはエラーアドレスを生成し、スレッドT1に対するECCにアクセスする際には一次列アドレスを直接使用する。
表205の最初の2つの行は、スレッドT0に対する連続した列読み出し動作を示す。S0#をアサートすることで、列動作がスレッドT0およびハーフランクHR0に対するものであることを示す。第1の列動作は一次列アドレス「…xyz0」へのものであり、第2の列動作は列アドレス「…xyz1」へのものである。両方の一次列アドレスは、PCAリンク上で受信され、いかなる変更も行わずにSCAリンクを介してハーフランクHR0にデータアドレスとして提供される。第1の列動作中は、アドレス回路110は、一次列アドレスのLSBを反転させ、この変更した列アドレスを、ECAリンクを介してエラーアドレスとして提供する。したがって、図2Aの表においてスレッドT0に対する第2の列動作中に共有のECCデバイス120−EにおいてECCが書き込まれた場所と一致するように、共有のECCデバイス120−EからECCを読み出すため、列アドレス「…xyz0」は列アドレス「…xyz1」に変換される。第2の列動作中は、共有のECCデバイス120−Eに提供されるエラーアドレスは存在しないが、その理由は、第1の列動作中に既にECCが転送されているためである。
表205の2番目の2つの行は、スレッドT1への連続した列読み出し動作を示す。S1#をアサートすることで、列動作がスレッドT1およびハーフランクHR1に対するものであることを示す。第1の列動作は一次列アドレス「…xyz0」へのものであり、第2の列動作は一次列アドレス「…xyz1」へのものである。両方の列アドレスは、PCAリンクを介して受信され、いかなる変更も行わずにSCAリンクを介してハーフランクHR1にデータアドレスとして提供される。第1の列動作中は、図2Aの表においてスレッドT1に対する第2の列動作中に共有のECCデバイス120−EにおいてECCが書き込まれた場所と一致するように、共有のECCデバイス120−EからECCを読み出すため、アドレス回路110は、一次列アドレスを、いかなる変更も行わずにECAリンクを介してエラーアドレスとして再度送信する。第2の列動作中は、共有のECCデバイス120−Eに提供されるアドレスは存在しないが、その理由は、第1の列動作中に既にECCが転送されているためである。
他の実施形態では、アドレス回路110は、ECCアクセスのためのエラーアドレスを生成する際、一次アドレスのLSB以外の列ビットを反転することができる。例えば、アドレス回路110は、最上位ビット(MSB)および/またはLSBとMSBとの間の他の任意のビットを反転するよう構成することができる。
図3Aおよび3Bは、一実施形態による、図1の実施形態のメモリシステム100の動作を示すタイミング図である。具体的には、図3Aは、書き込み動作中のメモリシステム100に対するタイミング図であり、図3Bは、読み出し動作中のメモリシステム100に対するタイミング図である。両図とも、図1、図2Aおよび図2Bを参照して説明される。
ここで図3Aを参照すると、スレッドT0に対する書き込み動作中のメモリシステム100に対するタイミング図が示される。タイミング図は、図2Aからの表200の最初の2つの行に対応する。Clkは、PCAリンクの一部であり得るタイミング信号であるが、タイミング図では、基準ポイントとして使用するために別々に表す。
メモリコントローラ102は、2回の連続した列動作の一部としてPCAリンクを介して、2つの一次アドレスPA0およびPA1を提供する。メモリバッファ106は、2つの一次アドレスPA0およびPA1を受信し、少し遅れていかなる変更も行わずにSCAリンクを介して、2つのデータアドレスDA0およびDA1として一次アドレスを再度送信する。これはスレッドT0に対する書き込み動作であるため、メモリバッファ106は、ECAリンクを介して送信されるエラーアドレスEAとして第2の一次アドレスPA1を使用する。エラーアドレスEAは、第2のデータアドレスDA1と実質的に同時にアクセスされる。これがスレッドT1に対する書き込みトランザクションであれば、メモリバッファ106は、第2の一次アドレスPA1のビットを反転させ、エラーアドレスEAとしてECAリンクを介して変更したアドレスを提供することに留意されたい。
メモリコントローラ102は、PDQ0リンクを介して、データDATA0およびDATA1の2回のバーストを提供する。各データのバーストは、32ビット幅であり、8ビットのバースト長を有し、システムはダブルデータレート(DDR)送信を使用すると仮定する。DATA0は、PA0への第1の列動作に対するデータであり、DATA1は、PA1への第2の列動作に対するデータである。メモリバッファ106は、PDQ0リンクを介してデータを受信し、少し遅れてSDQ0リンクを介してデータを再度送信する。DATA0は、データアドレスDA0でハーフランクHR0に格納される。DATA1は、データアドレスDA1でハーフランクHR0に格納される。
さらに、メモリコントローラ102は、PECC0リンクを介して、ECC、すなわち、ECC0およびECC1の2回のバーストを提供する。各ECCのバーストは、4ビット幅であり8ビット長である。ECC0を使用してDATA0のエラーをチェックすることができ、ECC1を使用してDATA1のエラーをチェックすることができる。パッキング回路108は、単一の列動作中に格納できるように、ECC0およびECC1をともにパックする。次いで、バッファ106は、単一の8ビット幅および8ビット長のバーストでSECCリンクを介してECC0およびECC1を送信する。ECC0およびECC1は両方とも、エラーアドレスEAで共有のECCデバイス120−Eに格納される。
ここで図3Bを参照すると、スレッドT0に対する読み出しトランザクション中のメモリシステム100に対するタイミング図が示される。タイミング図は、図2Bからの表205の最初の2つの行に対応する。図3Aと同様に、メモリコントローラ102は、2回の連続した列動作の一部としてPCAリンクを介して、2つの一次アドレスPA0およびPA1を提供する。メモリバッファ106は、PCAリンクを介して2つの一次アドレスPA0およびPA1を受信し、少し遅れていかなる変更も行わずにSCAリンクを介して、2つのデータアドレスDA0およびDA1として一次アドレスを再度送信する。しかし、これはスレッドT0に対する読み出し動作であるため、メモリバッファ106は、第1の一次アドレスPA0のビットを反転させ、エラーアドレスEAとしてECAリンクを介して変更したアドレスを送信する。エラーアドレスは、第1のデータアドレスと実質的に同時にアクセスされる。これがスレッドT1に対する読み出しトランザクションであれば、エラーアドレスEAは、第1の一次アドレスPA0と同じビット値を有することに留意されたい。
バッファ106は、データアドレスDA0およびDA1に応答してSDQ0リンクを介してハーフランクHR0のデバイスから、データDATA0およびDATA1の2回のバーストを受信する。各データのバーストは、32ビット幅であり8ビット長である。DATA0は、列アドレスDA0から読み出され、DATA1は、列アドレスDA1から読み出される。次いで、メモリバッファ106は、少し遅れてPDQ0リンクを介してメモリコントローラ102にデータDATA0およびDATA1を再度送信する。
さらに、バッファ106は、SECCリンクを介して共有のメモリデバイス120−Eから、ECC0およびECC1を含むECCの単一の8ビット幅で8ビット長のバーストを受信する。ECC0とECC1は両方ともエラーアドレスEAから読み出される。パッキング回路108は、2回の別々のバーストでメモリコントローラ102に転送することができるように、ECCをアンパックする。次いで、バッファ106は、DATA0およびDATA1がPDQ0上で読み出される際と実質的に同じタイミングで、4ビット幅で8ビット長の2回のバーストでPECC0リンクを介してECC0およびECC1を送信する。
一実施形態では、スレッドT1に対するメモリトランザクションは、図3Aおよび図3Bに示されるメモリトランザクションと同様に実行される。しかし、データは、データリンクPDQ0およびSDQ0の代わりに、データリンクPDQ1およびSDQ1を介して転送される。さらに、ECCは、リンクPECC0の代わりに、一次ECCリンクPECC1を介して転送される。
図4は、別の実施形態による、EDC範囲に対するメモリシステム400を示す。図4は図1と同様であるが、図4のメモリコントローラ102は4つのスレッド(T0、T1、T2、T3)をサポートし、メモリモジュール104は2倍のメモリデバイス120、すなわち、合計16個のデータ用のメモリデバイス120−Dと、ECC用の2つのメモリデバイス120−Eとを含む。スレッドT0に対するデータはPDQ0リンクを介して転送され、スレッドT0に対するECCはPECC0リンクを介して転送される。スレッドT1に対するデータはPDQ1リンクを介して転送され、スレッドT1に対するECCはPECC1リンクを介して転送される。スレッドT2に対するデータはPDQ2リンクを介して転送され、スレッドT2に対するECCはPECC2リンクを介して転送される。スレッドT3に対するデータはPDQ3リンクを介して転送され、スレッドT3に対するECCはPECC3リンクを介して転送される。それぞれの一次データリンク(PDQ0〜PDQ3)は16ビット幅である。それぞれの一次ECCリンク(PECC0〜PECC3)は2ビット幅である。
メモリコントローラ102は、PCAリンク上でコマンドおよびアドレス情報を送信し、4つのアクティブローの選択信号S00#、S01#、S10#およびS11#を使用してデータ転送動作用のスレッドの1つを選択することによって、データ転送動作を開始する。例えば、S00#がアサートされればスレッドT0が選択され、S01#がアサートされればスレッドT1が選択され、S10#がアサートされればスレッドT2が選択され、S11#がアサートされればスレッドT3が選択される。いくつかの実施形態では、異なる数のチップ選択信号が存在し得る。例えば、2つの物理的なチップ選択信号のみ存在し得る。4つの論理チップ選択を導出するため、2つの物理的なチップ選択信号を行アドレスビットまたはバンクアドレスビットと組み合わせることができる。このようにチップ選択を導出することは、ランク乗算(rank multiplication)と呼ばれる場合がある。
各メモリデバイス120は、4ビット幅のインターフェースをサポートするx4メモリデバイスである。4つのメモリデバイス120−D0は、スレッドT0に対するデータを格納するメモリデバイスのクオータランクQR0を形成する。4つのメモリデバイス120−D1は、スレッドT1に対するデータを格納するメモリデバイスの別のクオータランクQR1を形成する。4つのメモリデバイス120−D2は、スレッドT2に対するデータを格納するメモリデバイスのクオータランクQR2を形成する。4つのメモリデバイス120−D3は、スレッドT3に対するデータを格納するメモリデバイスの別のクオータランクQR3を形成する。クオータランクQR0およびQR1は、メモリデバイスのハーフランクHR0を形成する。クオータランクQR2およびQR3は、メモリデバイスの別のハーフランクHR1を形成する。メモリデバイス120−E0は、メモリデバイスの2つのクオータランクQR0とQR1との間で共有され、スレッドT0とT1の両方に対するECCを格納する。メモリデバイス120−E1は、メモリデバイスの2つのクオータランクQR2とQR3との間で共有され、スレッドT2とT3の両方に対するECCを格納する。
この実施形態では、スレッドのデータ部分は16ビット幅である。したがって、スレッドに対する単一のトランザクションは、各列動作に対してBL8と再度仮定すると、全体で64バイトの転送を維持するには、スレッドへの単一のトランザクションは、4回の連続した列動作からなる。同様に、各列動作に対してBL8と仮定すると、スレッドのECC部分は2ビット幅であるため、4回の連続した列動作が全体で8バイトの転送を維持する。
書き込みトランザクション中は、メモリバッファ106は、4回の連続した16ビット幅のBL8バーストとしてスレッドの1つに対するデータを受信し、4回の連続した16ビット幅のBL8バーストでメモリデバイスのクオータランクの1つにデータを書き込む。例えば、スレッドT0に対するデータは、PDQ0を介して受信され、SDQ0を介してクオータランクQR0に書き込まれる。しかし、ECCが共有のメモリデバイス120−Eに書き込まれ得る前に、パッキング回路108は、連続した2ビット幅のBL8バーストの各対の1:2パッキングを実行し、その対を単一の4ビット幅のBL8バーストに変換する。例えば、パッキング回路108−1は、4回の連続した2ビット幅のBL8バーストとしてPECC0リンクを介してECCを受信し、次いで、2回の4ビット幅のBL8バーストとして共有のメモリデバイス120−E0にECCを書き込むことができる。したがって、4回のデータ列動作ごとに、2回のECC列動作が存在する。読み出しトランザクションは書き込みトランザクションと同様であるが、読み出しトランザクション中は、パッキング回路108は、共有のメモリデバイス120−EからのECCの2:1アンパッキングを実行する。
アドレス回路110は、図1と併せて説明されるアドレス回路と同様であるが、図4のアドレス回路110は、より多くの数のメモリデバイス120との通信を取り扱う。具体的には、アドレス回路110は、各メモリトランザクションに対して、PCAリンクを介して4つの連続した一次アドレスを受信し、SCAリンクを介してデータアドレスとしてアドレスを再度送信する。アドレス回路110は、一次アドレスの各対からECCアクセスのための単一のエラーアドレスを導出する。したがって、4つの一次アドレスから2つのエラーアドレスが導出される。さらに、スレッド間での競合を回避するため、アドレス回路110は、データに対しどのクオータランクがアクセスされているかに応じて、異なる方法でエラーアドレスを導出する。具体的には、アドレス回路110は、選択入力S00#、S01#、S10#およびS11#を使用して、ECCアクセスのための列アドレスビットの1つもしくは複数、または、4つ未満のチップ選択信号が存在する場合は、行/バンクアドレスビットなどのアクセスされているクオータランクの他の任意の指示を変更することができる。
図5Aおよび5Bは、一実施形態による、図4の実施形態のアドレス回路110の動作を示す表である。具体的には、図5Aは、スレッドT0およびT1に対する書き込みトランザクション中のアドレス回路110の動作を示し、図5Bは、スレッドT0およびT1に対する読み出しトランザクション中のアドレス回路110の動作を示す。スレッドT2およびT3に対してメモリトランザクションは示されていないが、スレッドT0およびT1に対するメモリトランザクションと同様である。図5Aおよび5Bの両図とも、図4を参照して説明される。
ここで図5Aを参照すると、スレッドT0およびスレッドT1に対する書き込みトランザクション中の図4の実施形態のアドレス回路110の動作を示す表500が示される。表500の最初の4つの行は、スレッドT0に対する連続した列書き込み動作を示す。S00#(アクティブロー信号)をアサートし、S01#をアサート解除することで、列動作がスレッドT0およびクオータランクQR0に対するものであることを示す。第1の列動作は一次列アドレス「…xy00」へのものであり、第2の列動作は一次列アドレス「…xy01」へのものであり、第3の列動作は一次列アドレス「…xy10」へのものであり、第4の列動作は一次列アドレス「…xy11」へのものである。すべての一次列アドレスは、PCAリンクを介して受信され、いかなる変更も行わずにSCAリンクを介してクオータランクQR0にデータアドレスとして提供される。
第1の列動作中は、共有のECCデバイス120−E0への書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108−1がパッキングプロセスを開始するためである。第2の列動作中は、アドレス回路110は、第2の一次アドレス「…xy01」を、いかなる変更も行わずに共有のECCデバイス120−E0にECAリンクを介してエラーアドレスとして提供し、8ビット幅のバーストを共有のECCデバイス120−E0へ実行する。第3の列動作中は、共有のECCデバイス120−E0への書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108−1がパッキングプロセスを再開するためである。第4の列動作中は、アドレス回路110は、第4の一次アドレス「…xy11」を、いかなる変更も行わずに共有のECCデバイス120−E0にECAリンクを介してエラーアドレスとして提供し、別の8ビット幅のバーストを共有のECCデバイス120−E0へ実行する。
表500の最後の4つの行は、スレッドT1に対する連続した列書き込み動作を示す。S01#をアサートし、S00#をアサート解除することで、列動作がスレッドT1およびクオータランクQR1に対するものであることを示す。第1の列動作は一次列アドレス「…xy00」へのものであり、第2の列動作は一次列アドレス「…xy01」へのものであり、第3の列動作は一次列アドレス「…xy10」へのものであり、第4の列動作は一次列アドレス「…xy11」へのものである。すべての4つの一次アドレスは、PCAリンクを介して受信され、いかなる変更も行わずにSCAリンクを介してクオータランクQR1にデータアドレスとして提供される。
前述と同様に、第1の列動作中は、共有のECCデバイス120−E0への書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108−1がパッキングプロセスを開始するためである。しかし、第2の列動作中は、アドレス回路110は、一次アドレスのLSBを反転させ、この変更した列アドレスを、共有のECCデバイス120−E0にECAリンクを介してエラーアドレスとして提供する。したがって、共有のECCデバイス120−E0へECCを書き込むため、列アドレス「…xy01」は列アドレス「…xy00」に変換される。第3の列動作中は、共有のECCデバイス120−E0への書き込み動作は存在しないが、その理由は、この期間中、パッキング回路108−1がパッキングプロセスを再開するためである。第4の列動作中は、アドレス回路110は、一次アドレスのLSBを反転させ、この変更した列アドレスを、共有のECCデバイス120−E0にECAリンクを介してエラーアドレスとして提供する。したがって、共有のECCデバイス120−E0へECCを書き込むため、列アドレス「…xy11」は列アドレス「…xy10」に変換される。
ここで図5Bを参照すると、読み出し中のアドレス回路110の動作を示す表505が示される。図5Bは図5Aと同様であるが、パッキング回路108−1が第1および第3の列動作中にアンパッキングプロセスを開始できるように、エラーアドレスは、第1および第3の列動作で共有のECCデバイス120−E0に提供される。さらに、アドレス回路110は、スレッドT0に対するエラーアドレスを生成する際には一次列アドレスのLSBを反転させ、スレッドT1に対するエラーアドレスを生成する際には反転させずに一次列アドレスに直接使用する。
ここで図6を参照すると、別の実施形態による、EDC範囲に対するメモリシステム600を示される。メモリシステム600は、図4と併せて説明されるメモリシステムと同様である。しかし、図6のメモリシステム600は、改良された信号インテグリティに対するダイナミックポイントツーポイント(DPP)技術をサポートする実施形態である。DPPシステムでは、メモリコントローラ102は、狭いポイントツーポイントデータリンク上で各メモリモジュール104と通信することができるが、依然としてメモリモジュール104のすべてのメモリデバイス120にアクセスすることができる。例えば、信号リンク160は、ここでは、メモリコントローラ102とメモリモジュール104との間でデータを転送するための単一の16ビット幅のデータリンクPDQを含む。また、信号リンク160は、メモリコントローラ102とメモリモジュール104との間でECCを転送するための一次ECCリンクPECCも含む。PECCリンクは2ビット幅である。DPPをサポートするシステム600は、それら自体のポイントツーポイントデータリンクを通じてメモリコントローラ102と結合されるいくつかのメモリモジュール104を有し得るが、明確にするため、図6では1つのモジュール104のみが示される。
機能上、バッファ106の動作は、図4、5Aおよび5Bと併せて説明されるものと同様である。バッファ106は、書き込み中に、PECCリンクを介して受信された2ビット幅のECCバーストの対を、共有のメモリデバイス120−Eへ送信するために4ビット幅のバーストにパックするパッキング回路108を依然として含む。読み出し中は、パッキング回路108は、共有のメモリデバイス120−Eから受信された4ビット幅のECCバーストをアンパックし、PECCリンクを介して2ビット幅のバーストの対として送信する。また、バッファ106は、PCAリンクを介して着信列アドレスを受信し、ECCアクセスのための列アドレスを決定するアドレス回路110も含む。具体的には、アドレス回路110は、データ転送に対しメモリデバイス120のどのクオータランクがアクセスされているか(選択信号S00#〜S11#または他のいくつかの指示で示されるように)、および、データ転送が読み出し動作か書き込み動作かに基づいて、ECCアクセスのための列アドレスを導出する。
DPP動作をサポートするため、ここでは、バッファ106は、PDQリンクとそれぞれの二次データリンク(SDQ0〜SDQ3)との間のデータのフローを管理するルーティング回路680を含む。ルーティング回路680を通じたデータのルーティングは、メモリデバイス120−Dのどのクオータランクがメモリトランザクションのために選択されるかを示す選択信号(S00#〜S11#)の論理レベルによって構成される。また、バッファは、パッキング回路108と二次ECCリンク(SECC0およびSECC1)との間のECCのフローを管理する別のルーティング回路682も含む。ルーティング回路682を通じたECCのルーティングは、選択信号(S00#〜S11#)の論理レベルによって構成される。一実施形態では、ルーティング回路680および682は、双方向マルチプレクサとして実装される。
図7は、さらに別の実施形態による、EDC範囲に対するメモリシステム700を示す。図7のメモリシステム700は、図1と併せて先に説明されるメモリシステム100と同様である。しかし、メモリバッファ内にあるものとして先に記載される機能性は、メモリコントローラ102自体に位置する。その結果、メモリシステム700は、個別のメモリバッファを必要とすることなく、モジュールスレッディングおよびEDCの機能性を統合する。
メモリシステム700は、信号リンク160を通じて通信するメモリコントローラ102とメモリモジュール104とを依然として含む。また、メモリコントローラは、2つのメモリスレッドT0およびT1をサポートする。しかし、信号リンク160は、ECCコマンドアドレスリンクECAおよび単一の8ビット幅のECCリンクPECCを含む。データアドレスはPCAリンクを介して通信され、エラーアドレスはECAリンクを介して通信される。また、信号リンク160は、3つの選択信号、すなわち、ハーフランクHR0に対して1つ、ハーフランクHR1に対して1つおよび共有のECCデバイス120−Eに対して1つ(図示せず)も含み得る。
メモリコントローラ102は、制御回路780、パッキング回路108およびアドレス生成回路710を含む。メモリコントローラ102は、さまざまな通信リンク(例えば、PDQ0、PDQ1、PECC、PCA、ECAなど)上で情報を受信および送信するインターフェース(例えば、I/F 730)を含む。例えば、メモリコントローラ102は、PDQ0リンクを介してハーフランクHR0と通信するためのインターフェース回路と、PECCリンクを介して共有のメモリデバイス120−Eと通信するためのインターフェース回路と、PDQ1リンクを介してハーフランクHR1と通信するためのインターフェース回路とを有する。本明細書に記載されるコントローラ102によって受信されるまたは同コントローラ102から送信される任意の情報は、そのようなインターフェース(例えば、I/F 730)を介して実行されることが理解される。
書き込み動作中は、制御回路780は、2つのスレッドT0およびT1の1つに対するデータおよびECCを生成する。所定のスレッドに対して、パッキング回路108は、ECCを8ビット幅のBL8バーストにパックし、PECCリンクを介してメモリモジュール104にECCを送信する。読み出し動作中は、パッキング回路108は、PECCリンクを介して受信されたECCの8ビット幅のBL8バーストをアンパックし、アンパックしたECCを制御回路780に提供する。次いで、制御回路780は、アンパックされたECCに対してあらゆる着信データをチェックし、いかなるメモリエラーも検出し訂正する。他の実施形態では、制御回路780自体がECCの8ビット幅のBL8バーストを直接生成するため、パッキング回路108は不要である。
また、メモリコントローラ102は、図1、2Aおよび2Bと併せて説明されるアドレス回路110への動作の際と同様なアドレス生成回路710も含む。しかし、アドレス生成回路710はメモリコントローラ102内に位置するため、列動作に対する列アドレスを直接生成することができる。一実施形態では、アドレス生成回路710は、メモリデバイスのハーフランクのいずれかでデータを転送するための2つのデータアドレスを生成し、PCAリンクを介してこれらのアドレスを送信する。また、アドレス生成回路710は、データアドレスの各対に対する単一のエラーアドレスも生成し、ECAリンクを介してこのエラーアドレスを送信する。したがって、各ECC列動作に対して2回のデータ列動作が存在する。
2つのメモリスレッドT0とT1との間でメモリデバイス120−Eの共有を可能にするため、アドレス生成回路710によって生成されるエラーアドレスは、データがハーフランクHR0で転送されているかまたはハーフランクHR1で転送されているかに基づいて異なる。例えば、2回の連続した列動作中は、データアドレスは「…xyz0」または「…xyz1」であり得る。列動作がスレッドT0に対する書き込み動作であれば、アドレス生成回路710は、第2のデータアドレス「…xyz1」を取り出し、スレッドT0に対するECCの転送のためのエラーアドレスとしてこの同じアドレスを使用することができる。しかし、列動作がスレッドT1に対する書き込み動作であれば、アドレス生成回路710は、第2のデータアドレス「…xyz1」のLSBを反転させ、スレッドT1に対するECCの転送のためのエラーアドレス「…xyz0」を生成することができる。
開示された実施形態のいくつかは、こうして、モジュールスレッディングおよびDPPなどの高度なメモリ特徴をEDC能力と統合することを可能にする。メモリデバイス群間でECCメモリデバイスを共有することによって、ECCメモリデバイスをメモリデバイスの各群に専用して使用することなく、EDCをこれらの特徴と併せて使用することができる。さらに、メモリデバイスを共有することによって引き起こされるアドレス競合は、データに対しメモリデバイスのどの群がアクセスされているかに基づいて、共有のメモリデバイスにアクセスするためのアドレスを決定することによって回避される。
本開示を読み進めると、当業者であれば、メモリデバイス群間でチェックビットメモリデバイスを共有するためのさらなる追加の代替の設計が理解されよう。したがって、本開示の特定の実施形態および適用例が解説され、説明されてきたが、本開示は本明細書で開示されるものと全く同一の構造および構成要素に限定されないことを理解されたい。本明細書の本開示の方法および装置の構成、動作および詳細において、添付の特許請求の範囲で定義されるような本開示の精神および範囲から逸脱することなく、当業者には明らかであろうさまざまな修正、変更および変形を行うことができる。

Claims (26)

  1. 第1のメモリチップと、
    第2のメモリチップと、
    第3のメモリチップと、
    前記第1のメモリチップとの間で第1のデータを転送し、前記第2のメモリチップとの間で第2のデータを転送し、前記第3のメモリチップとの間で前記第1のデータに対応する第1のエラーチェック情報を転送し、前記第3のメモリチップとの間で前記第2のデータに対応する第2のエラーチェック情報を転送する、メモリバッファと
    を備え、
    前記メモリバッファは、前記第1のエラーチェック情報または前記第2のエラーチェック情報の1つに対応する、前記第3のメモリチップ内の位置を示すエラーアドレスを決定し、前記エラーアドレスは、前記第1のデータが前記第1のメモリチップとの間で転送されているかどうか、または、前記第2のデータが前記第2のメモリチップとの間で転送されているかどうかに応じて異なって決定され、
    前記メモリバッファは、データ転送のための少なくとも1つのアドレスを受信し、前記第1のデータが前記第1のメモリチップとの間で転送されているものであれば前記受信したアドレスのビット値を反転させることによって、および、前記第2のデータが前記第2のメモリチップとの間で転送されているものであれば前記ビット値を保持することによって、前記受信したアドレスから前記エラーアドレスを決定する、メモリモジュール。
  2. 前記メモリバッファは、連続して第1のデータアドレスに、次いで、第2のデータアドレスにアクセスすることによって前記第1のデータを転送し、前記メモリバッファは、
    前記第1のデータの転送が読み出し動作に対応していれば、前記第1のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること、
    前記第1のデータの転送が書き込み動作に対応していれば、前記第2のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること
    によって前記第1のエラーチェック情報を転送する、請求項1に記載のメモリモジュール。
  3. 前記メモリバッファは、データ転送が前記第1のメモリチップによるものかまたは前記第2のメモリチップによるものかについての指示の受信に応答して、前記エラーアドレス
    を決定する、請求項1に記載のメモリモジュール。
  4. 前記指示は、1つまたは複数のチップ選択信号を含む、請求項3に記載のメモリモジュール。
  5. 前記指示は、1つまたは複数のアドレスビットを含む、請求項3に記載のメモリモジュール。
  6. 前記メモリバッファは、第1のビット幅で前記第1のエラーチェック情報を受信し、前記第1のビット幅より大きい第2のビット幅で前記第3のメモリチップに前記第1のエラーチェック情報を送信することによって、前記第1のエラーチェック情報を転送する、請求項1に記載のメモリモジュール。
  7. 前記メモリバッファは、第1のビット幅で前記第3のメモリチップから前記第1のエラーチェック情報を受信し、前記第1のビット幅より小さい第2のビット幅で前記第1のエラーチェック情報を送信することによって、前記第1のエラーチェック情報を転送する、請求項1に記載のメモリモジュール。
  8. 前記第3のメモリチップは、前記第1のメモリチップと前記第2のメモリチップとの間で共有される、請求項1に記載のメモリモジュール。
  9. 前記メモリバッファは、前記第1のデータまたは前記第2のデータの1つであるデータを受信し、データ転送が前記第1のメモリチップによるものかまたは前記第2のメモリチップによるものかに応じて、前記データを前記第1のメモリチップまたは前記第2のメモリチップのいずれかに選択的にルーティングする、ルーティング回路を備える、請求項1に記載のメモリモジュール。
  10. 前記エラーアドレスは、列アドレスを含む、請求項1に記載のメモリモジュール。
  11. メモリバッファデバイスであって、
    第1のメモリチップとの間で第1のデータを転送するための第1のインターフェースと、
    第2のメモリチップとの間で第2のデータを転送するための第2のインターフェースと、
    第3のメモリチップとの間で前記第1のデータに対応する第1のエラーチェック情報を転送し、前記第3のメモリチップとの間で前記第2のデータに対応する第2のエラーチェック情報を転送するための第3のインターフェースと、
    前記第1のエラーチェック情報または前記第2のエラーチェック情報の1つに対応する、前記第3のメモリチップ内の位置を示すエラーアドレスを決定する、回路であって、前記エラーアドレスは、前記第1のデータが前記第1のインターフェースを介して転送されているかどうか、または、前記第2のデータが前記第2のインターフェースを介して転送されているかどうかに応じて異なって決定される、回路と、
    を備え、
    前記回路は、データ転送のための少なくとも1つのアドレスを受信し、前記第1のデータが前記第1のインターフェースを介して転送されているものであれば前記受信したアドレスのビット値を反転させることによって、および、前記第2のデータが前記第2のインターフェースを介して転送されているものであれば前記ビット値を保持することによって、前記受信したアドレスから前記エラーアドレスを決定する、メモリバッファデバイス。
  12. 前記回路は、連続して第1のデータアドレスに、次いで、第2のデータアドレスにアクセスすることによって前記第1のデータを転送し、前記回路は、
    前記第1のデータの転送が読み出し動作に対応していれば、前記第1のデータアドレス
    にアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること、
    前記第1のデータの転送が書き込み動作に対応していれば、前記第2のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること
    によって前記第1のエラーチェック情報を転送する、請求項11に記載のメモリバッファデバイス。
  13. 前記回路は、データ転送が前記第1のインターフェースを介するものかまたは前記第2のインターフェースを介するものかについての指示の受信に応答して、前記エラーアドレスを決定する、請求項11に記載のメモリバッファデバイス。
  14. 前記指示は、1つまたは複数のチップ選択信号を含む、請求項13に記載のメモリバッファデバイス。
  15. 前記指示は、1つまたは複数のアドレスビットを含む、請求項13に記載のメモリバッファデバイス。
  16. 前記回路は、第1のビット幅で前記第3のインターフェースを介して前記第1のエラーチェック情報を受信し、前記第1のビット幅より大きい第2のビット幅で前記第3のインターフェースを介して前記第1のエラーチェック情報を送信することによって、前記第1のエラーチェック情報を転送する、請求項11に記載のメモリバッファデバイス。
  17. 前記回路は、第1のビット幅で前記第3のインターフェースを介して前記第1のエラーチェック情報を受信し、前記第1のビット幅より小さい第2のビット幅で前記第1のエラーチェック情報を送信することによって、前記第1のエラーチェック情報を転送する、請求項11に記載のメモリバッファデバイス。
  18. メモリコントローラであって、
    第1のメモリチップとの間で第1のデータを転送するための第1のインターフェースと、
    第2のメモリチップとの間で第2のデータを転送するための第2のインターフェースと、
    第3のメモリチップとの間で前記第1のデータに対応する第1のエラーチェック情報を転送し、前記第3のメモリチップとの間で前記第2のデータに対応する第2のエラーチェック情報を転送するための第3のインターフェースと、
    前記第1のエラーチェック情報または前記第2のエラーチェック情報の1つに対応する、前記第3のメモリチップ内の位置を示すエラーアドレスを決定する、回路であって、前記エラーアドレスは、前記第1のデータが前記第1のインターフェースを介して転送されているかどうか、または、前記第2のデータが前記第2のインターフェースを介して転送されているかどうかに応じて異なって決定される、回路と、
    を備え、
    前記回路は、前記第1のデータまたは前記第2のデータのうちの1つのデータ転送のための少なくとも1つのアドレスで前記第1のメモリチップまたは前記第2のメモリチップにアクセスし、前記エラーアドレスのビット値は、前記第1のデータが前記第1のインターフェースを介して転送されているものであれば前記アクセスしたアドレスの対応するビット値から反転され、前記エラーアドレスのビット値は、前記第2のデータが前記第2のインターフェースを介して転送されているものであれば前記アクセスしたアドレスの対応するビット値と同じである、メモリコントローラ。
  19. 前記回路は、連続して第1のデータアドレスに、次いで、第2のデータアドレスにアクセスすることによって前記第1のデータを転送し、前記回路は、
    前記第1のデータの転送が読み出し動作であれば、前記第1のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること、
    前記第1のデータの転送が書き込み動作であれば、前記第2のデータアドレスにアクセ
    スするのと実質的に同時に前記エラーアドレスにアクセスすること
    によって前記第1のエラーチェック情報を転送する、請求項18に記載のメモリコントローラ。
  20. 第1のメモリチップとの間で第1のデータを転送すること、第2のメモリチップとの間で第2のデータを転送すること、第3のメモリチップとの間で前記第1のデータのための第1のエラーチェック情報を転送すること、および、前記第3のメモリチップとの間で前記第2のデータのための第2のエラーチェック情報を転送することをサポートする、メモリバッファデバイスにおける動作方法であって、
    前記第1のメモリチップとの間で前記第1のデータを転送するかまたは第2のメモリチップとの間で前記第2のデータを転送するかについての指示を前記メモリバッファデバイスにおいて受信することと、
    前記第1のメモリチップとの間で前記第1のデータを転送するかまたは前記第2のメモリチップとの間で前記第2のデータを転送するかについての指示に応答して、前記第1のエラーチェック情報または前記第2のエラーチェック情報の1つに対応する、前記第3のメモリチップ内の位置を示すエラーアドレスを決定することであって、前記エラーアドレスは、前記第1のデータが前記第1のメモリチップとの間で転送されるべきかどうか、または、前記第2のデータが前記第2のメモリチップとの間で転送されるべきかどうかに応じて異なって決定されることと
    を含み、
    データ転送のための少なくとも1つのアドレスを受信することをさらに含み、
    前記エラーアドレスを決定することは、前記第1のデータが前記第1のメモリチップとの間で転送されるべきであれば前記受信したアドレスのビット値を反転させることと、前記第2のデータが前記第2のメモリチップとの間で転送されるべきであれば前記ビット値を保持することとを含む、方法。
  21. 連続して第1のデータアドレスに、次いで、第2のデータアドレスにアクセスすることによって前記第1のメモリチップとの間で前記第1のデータを転送すること、および、
    前記第1のデータの転送が読み出し動作に対応していれば、前記第1のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること、
    前記第1のデータの転送が書き込み動作に対応していれば、前記第2のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること
    によって前記第3のメモリチップとの間で前記第1のエラーチェック情報を転送する、請求項20に記載の方法。
  22. 第1のビット幅で前記第1のエラーチェック情報を受信することと、前記第1のビット幅より大きい第2のビット幅で前記第3のメモリチップに前記第1のエラーチェック情報を送信することとをさらに含む、請求項20に記載の方法。
  23. 第1のビット幅で前記第3のメモリチップから前記第1のエラーチェック情報を受信することと、前記第1のビット幅より小さい第2のビット幅で前記第1のエラーチェック情報を送信することとをさらに含む、請求項20に記載の方法。
  24. メモリチップと通信する方法であって、
    第1のメモリチップとの間で第1のテータを転送することと、
    第2のメモリチップとの間で第2のデータを転送することと、
    第3のメモリチップとの間で前記第1のデータに対応する第1のエラーチェック情報を転送することと、
    前記第3のメモリチップとの間で前記第2のデータに対応する第2のエラーチェック情報を転送することとを含み、
    前記第1のエラーチェック情報または前記第2のエラーチェック情報の1つに対応する、前記第3のメモリチップ内の位置を示すエラーアドレスが、前記第1のデータが前記第1のメモリチップとの間で転送されているかどうか、または、前記第2のデータが前記第2のメモリチップとの間で転送されているかどうかに応じて異なって決定され、
    データ転送のために少なくとも1つのアドレスが用いられ、前記エラーアドレスは、前記第1のデータが前記第1のメモリチップとの間で転送されているものであれば前記アクセスしたアドレスのビット値を反転させることによって、および、前記第2のデータが前記第2のメモリチップとの間で転送されているものであれば前記ビット値を保持することによって決定される、方法。
  25. 前記第1のデータは、連続して第1のデータアドレスに、次いで、第2のデータアドレスにアクセスすることによって転送され、
    前記第1のエラーチェック情報は、
    前記第1のデータの転送が読み出し動作に対応していれば、前記第1のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること、
    前記第1のデータの転送が書き込み動作に対応していれば、前記第2のデータアドレスにアクセスするのと実質的に同時に前記エラーアドレスにアクセスすること
    によって前記エラーチェック情報を転送する、請求項24に記載の方法。
  26. 前記第1のメモリチップと前記第2のメモリチップは同じメモリランクに属する、請求項1記載のメモリモジュール。
JP2012180750A 2011-09-30 2012-08-17 メモリデバイス群間でのチェックビットメモリデバイスの共有 Active JP6370528B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161541321P 2011-09-30 2011-09-30
US61/541,321 2011-09-30

Publications (2)

Publication Number Publication Date
JP2013080455A JP2013080455A (ja) 2013-05-02
JP6370528B2 true JP6370528B2 (ja) 2018-08-08

Family

ID=47993835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180750A Active JP6370528B2 (ja) 2011-09-30 2012-08-17 メモリデバイス群間でのチェックビットメモリデバイスの共有

Country Status (2)

Country Link
US (1) US9141472B2 (ja)
JP (1) JP6370528B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256502B2 (en) * 2012-06-19 2016-02-09 Oracle International Corporation Method and system for inter-processor communication
US9424181B2 (en) * 2014-06-16 2016-08-23 Empire Technology Development Llc Address mapping for solid state devices
JP6605359B2 (ja) * 2016-03-02 2019-11-13 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス制御方法
US11335430B2 (en) 2019-03-26 2022-05-17 Rambus Inc. Error remapping
US11762736B2 (en) 2021-05-18 2023-09-19 Samsung Electronics Co., Ltd. Semiconductor memory devices

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57117198A (en) * 1981-01-13 1982-07-21 Omron Tateisi Electronics Co Memory system with parity
JPS59200350A (ja) * 1983-04-27 1984-11-13 Usac Electronics Ind Co Ltd パリテイチエツク装置
JPS6421651A (en) * 1987-07-17 1989-01-25 Fanuc Ltd Memory device
US5117428A (en) * 1989-11-22 1992-05-26 Unisys Corporation System for memory data integrity
JPH10105475A (ja) * 1996-09-26 1998-04-24 Nec Niigata Ltd パリティメモリ装置およびパリティメモリ回路
US6279072B1 (en) * 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US7363422B2 (en) 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US7519894B2 (en) * 2005-06-14 2009-04-14 Infineon Technologies Ag Memory device with error correction code module
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US20070271495A1 (en) 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
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
KR100827662B1 (ko) * 2006-11-03 2008-05-07 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 데이터 오류 검출 및정정 방법
US7949931B2 (en) 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
WO2009137157A1 (en) 2008-03-31 2009-11-12 Rambus Inc. Independent threading of memory devices disposed on memory modules
US8086783B2 (en) 2009-02-23 2011-12-27 International Business Machines Corporation High availability memory system

Also Published As

Publication number Publication date
US9141472B2 (en) 2015-09-22
JP2013080455A (ja) 2013-05-02
US20130086449A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
US10635535B2 (en) Semiconductor memory devices, memory systems, and methods of operating the semiconductor memory devices
US11269724B2 (en) Memory device, memory system, and method of operating the same
JP6986369B2 (ja) メモリモジュール、これを含むシステム及びその動作方法
JP6815898B2 (ja) メモリモジュール、メモリシステム、及びその方法
US11327838B2 (en) Memory device having error correction function and operating method thereof
US7755968B2 (en) Integrated circuit memory device having dynamic memory bank count and page size
US10956260B2 (en) Semiconductor memory devices, and methods of operating semiconductor memory devices
US9859022B2 (en) Memory device having a shareable error correction code cell array
US20080155136A1 (en) Memory controller, computer, and data read method
US7864604B2 (en) Multiple address outputs for programming the memory register set differently for different DRAM devices
KR20160122483A (ko) 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법
TWI508088B (zh) 用於錯誤偵測及校正涵蓋之記憶體系統
KR20190052754A (ko) 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
JP6370528B2 (ja) メモリデバイス群間でのチェックビットメモリデバイスの共有
US9627092B2 (en) Semiconductor device performing error correction operation
US7840744B2 (en) Rank select operation between an XIO interface and a double data rate interface
US11188260B2 (en) Memory module and memory system including the same
US9442658B2 (en) Apparatuses and methods including selectively providing a single or separate chip select signals
JP2022543819A (ja) 誤り検出および誤り訂正のための方法ならびに誤り検出および誤り訂正のための対応するシステムおよび装置
US11437114B1 (en) Reduced error correction code for dual channel DDR dynamic random-access memory
US20240071550A1 (en) Apparatuses, systems, and methods for module level error correction
US20240070025A1 (en) Apparatuses, systems, and methods for module level error correction
US20220107908A1 (en) Methods, devices and systems for high speed transactions with nonvolatile memory on a double data rate memory bus
KR20120086468A (ko) 반도체 메모리 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170418

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170426

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180501

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180711

R150 Certificate of patent or registration of utility model

Ref document number: 6370528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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