(57)【要約】エラー補正を含むメモリ・サブシステム。メモリ・サブシステムは、メモリ・コントローラと、複数のメモリ・モジュールを含むシステム・メモリとを含む。システム・メモリは、メモリ相互接続によってメモリ・コントローラに結合することが可能である。複数のメモリ・モジュールのそれぞれは、回路板と、回路板に取り付けられた複数のメモリ・チップとを含む。メモリ・コントローラは、メモリ・モジュールの少なくとも２つにわたるデータ・セグメントの部分を記憶することが可能である。メモリ・コントローラは、データ・セグメントの部分のパリティをメモリ・モジュールの他の対応する位置にさらに記憶することが可能である。
2006512630.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・コントローラと、
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを備え、
前記システム・メモリが、
回路板と、
前記回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールを含み、
前記メモリ・コントローラが、前記メモリ・モジュールの少なくとも２つにわたるデータ・セグメントの部分を記憶するように構成され、
前記メモリ・コントローラが、前記データ・セグメントの前記部分のパリティを前記メモリ・モジュールの他の対応する位置に記憶するようにさらに構成されるメモリ・サブシステム。
【請求項２】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記データ・セグメントの前記部分に存在するかどうかを検出するように構成される請求項１に記載のメモリ・サブシステム。
【請求項３】
前記メモリ・コントローラが、前記パリティを使用して前記部分の少なくとも１つを再現させるように構成される請求項２に記載のメモリ・サブシステム。
【請求項４】
前記メモリ相互接続が、前記データ・セグメントを伝達するように構成された複数のデータ・ビットを有するデータ経路を含む請求項３に記載のメモリ・サブシステム。
【請求項５】
前記複数のメモリ・モジュールのそれぞれが、前記データ・ビットのそれぞれの相互に排他的なサブセットに結合される請求項４に記載のメモリ・サブシステム。
【請求項６】
前記データ・ビットの前記それぞれの相互に排他的なサブセットのそれぞれが、前記データ・セグメントの前記部分の１つを伝達するように構成される請求項５に記載のメモリ・サブシステム。
【請求項７】
前記データ・ビットの前記それぞれの相互に排他的なサブセットのそれぞれが、前記データ・セグメントの前記部分の２つを伝達するように構成される請求項５に記載のメモリ・サブシステム。
【請求項８】
メモリ・コントローラと、
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを備え、
前記システム・メモリが、
回路板と、
前記回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールを含み、
前記メモリ・コントローラが、前記メモリ・モジュールの少なくとも２つにわたるデータ・セグメントのそれぞれの部分を記憶するように構成され、
前記メモリ・コントローラが、前記データ・セグメントの前記それぞれの部分の少なくともいくつかのパリティを前記メモリ・モジュールの他の対応する位置に記憶するようにさらに構成されるメモリ・サブシステム。
【請求項９】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記データ・セグメントの前記それぞれの部分に存在するかどうかを検出するように構成される請求項８に記載のメモリ・サブシステム。
【請求項１０】
前記メモリ・コントローラが、前記パリティを使用して前記それぞれの部分の少なくとも１つを再現させるように構成される請求項９に記載のメモリ・サブシステム。
【請求項１１】
前記メモリ相互接続が、前記データ・セグメントを伝達するように構成された複数のデータ・ビットを有するデータ経路を含む請求項１０に記載のメモリ・サブシステム。
【請求項１２】
前記複数のメモリ・モジュールのそれぞれが、前記データ・ビットのそれぞれの相互に排他的なサブセットに結合される請求項１１に記載のメモリ・サブシステム。
【請求項１３】
前記データ・ビットの各それぞれの相互に排他的なサブセットが、前記データ・セグメントの前記それぞれの部分の１つを伝達するように構成される請求項１２に記載のメモリ・サブシステム。
【請求項１４】
メモリ・コントローラと、
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを備え、
前記システム・メモリが、
回路板と、
前記回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールを含み、
前記メモリ・コントローラが、各スライスが少なくとも１つのメモリ・モジュールを含む複数のスライスにおいて前記システム・メモリにアクセスするように構成され、
前記メモリ・コントローラが、前記複数のスライスの少なくともいくつかのパリティを少なくとも１つの追加のスライスに記憶するように構成されるメモリ・サブシステム。
【請求項１５】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記複数のスライスの前記少なくともいくつかに関連するデータに存在するかどうかを検出するように構成される請求項１４に記載のメモリ・サブシステム。
【請求項１６】
前記メモリ・コントローラが、前記パリティを使用して前記複数のスライスの少なくとも１つを再現させるように構成される請求項１５に記載のメモリ・サブシステム。
【請求項１７】
前記メモリ相互接続が、複数のデータ・ビットを有するデータ経路を含む請求項１６に記載のメモリ・サブシステム。
【請求項１８】
前記複数のメモリ・モジュールのそれぞれが、前記データ・ビットのそれぞれの相互に排他的なサブセットに結合される請求項１７に記載のメモリ・サブシステム。
【請求項１９】
前記複数のメモリ・チップのそれぞれが、複数のメモリ・バンクのそれぞれのメモリ・バンクに属する請求項１８に記載のメモリ・サブシステム。
【請求項２０】
前記複数のメモリ・バンクのそれぞれが、前記複数のデータ・ビットのそれぞれに結合される請求項１９に記載のメモリ・サブシステム。
【請求項２１】
前記複数のデータ・ビットの前記それぞれの相互に排他的なサブセットのそれぞれが、前記複数のスライスのそれぞれの１つに属する請求項２０に記載のメモリ・サブシステム。
【請求項２２】
所与のそれぞれのメモリ・バンク内の各メモリ・チップが、前記複数のデータ・ビットの異なるサブセットに結合される請求項２１に記載のメモリ・サブシステム。
【請求項２３】
命令を実行するように構成されたプロセッサと
システム・バスを介して前記プロセッサに結合されたメモリ・サブシステムとを含むコンピュータシステムであって、そのメモリ・サブシステムが、
メモリ・コントローラと
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを含み、
そのシステム・メモリが、
回路板と
その回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールとを含み、
前記メモリ・コントローラが、前記メモリ・モジュールの少なくとも２つにわたるデータ・セグメントの部分を記憶するように構成され、
前記メモリ・コントローラが、前記データ・セグメントの前記部分のパリティを前記メモリ・モジュールの他の対応する位置に記憶するようにさらに構成されるコンピュータ・システム。
【請求項２４】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記データ・セグメントの前記部分に存在するかどうかを検出するように構成される請求項２３に記載のコンピュータ・システム。
【請求項２５】
前記メモリ・コントローラが、前記パリティを使用して前記部分の少なくとも１つを再現させるように構成される請求項２４に記載のコンピュータ・システム。
【請求項２６】
命令を実行するように構成されたプロセッサと
システム・バスを介して前記プロセッサに結合されたメモリ・サブシステムとを含むコンピュータ・システムであって、そのメモリ・サブシステムが、
メモリ・コントローラと
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを含み、
そのシステム・メモリが、
回路板と
その回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールとを含み、
前記メモリ・コントローラが、前記メモリ・モジュールの少なくとも２つにわたるデータ・セグメントの部分を記憶するように構成され、
前記メモリ・コントローラが、前記データ・セグメントの前記それぞれの部分の少なくともいくつかのパリティを前記メモリ・モジュールの他の対応する位置に記憶するようにさらに構成されるコンピュータ・システム。
【請求項２７】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記データ・セグメントの前記それぞれの部分に存在するかどうかを検出するように構成される請求項２６に記載のコンピュータ・システム。
【請求項２８】
前記メモリ・コントローラが、前記パリティを使用して前記それぞれの部分の少なくとも１つを再現させるように構成される請求項２７に記載のコンピュータ・システム。
【請求項２９】
命令を実行するように構成されたプロセッサと
システム・バスを介して前記プロセッサに結合されたメモリ・サブシステムとを含むコンピュータ・システムであって、そのメモリ・サブシステムが
メモリ・コントローラと
メモリ相互接続を介して前記メモリ・コントローラに結合されたシステム・メモリとを含み、
そのシステム・メモリが、
回路板と
前記回路板に取り付けられた複数のメモリ・チップとをそれぞれが含む複数のメモリ・モジュールを含み、
前記メモリ・コントローラが、前記メモリ・モジュールの少なくとも２つにわたるデータ・セグメントのそれぞれの部分を記憶するように構成され、
前記メモリ・コントローラが、前記データ・セグメントの前記それぞれの部分の少なくともいくつかのパリティを前記メモリ・モジュールの他の対応する位置に記憶するようにさらに構成されるコンピュータ・システム。
【請求項３０】
前記メモリ・コントローラが、関連するエラー・コードを使用して、エラーが前記複数のスライスの少なくともいくつかに関連するデータに存在するかどうかを検出するように構成される請求項２９に記載のコンピュータ・システム。
【請求項３１】
前記メモリ・コントローラが、前記パリティを使用して前記複数のスライスの少なくとも１つを再現させるように構成される請求項３０に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システム・メモリに関し、より詳細には、メモリ・モジュールを含むメモリ・サブシステムに関する。
【背景技術】
【０００２】
コンピュータ・システムは、通常、様々な度合いの信頼性や可用性、保守性（これらの３要素をＲＡＳという）をユーザに提供することができる構成で使用可能である。いくつかのシステムでは信頼性が最も重要であろう。したがって、信頼できるシステムは障害を防止するように設計された機能を含む。他のシステムでは可用性が重要であることもあり、その場合、システムは障害が発生した場合に有意なフェイルオーバー能力を有するように設計されるであろう。これらのタイプのシステムのいずれも、クリティカルな構成要素の組込み冗長性を含む。さらに、システムは、保守性を考慮して設計することもある。そのようなシステムは、構成要素のアクセス性によるシステムの障害発生中にシステムを迅速に回復することができるようになっている。ハイエンド・サーバおよび一部のマルチ・プロセッサ／分散処理システムなどのクリティカルなシステムでは、上記の機能を組み合わせることにより、望ましいＲＡＳレベルを生み出すようにしている。
【０００３】
多くのコンピュータ・システムでは、システム・バスを介して１つまたは複数のプロセッサがメモリ・サブシステムに接続されている。たとえば、図１は、通常のコンピュータ・システム構成を示す。コンピュータ・システム１０は、システム・バス２５を介してメモリ・サブシステム５０に接続された複数のプロセッサ２０Ａ〜２０ｎを含む。メモリ・サブシステム５０は、メモリ相互接続３５を介してシステム・メモリ４０に結合されたメモリ・コントローラ３０を含む。文字が続く特定の参照符号で本明細書において言及する要素は、参照符号のみによって集合的に言及することがあることに留意されたい。たとえば、プロセッサ２０Ａ〜ｎは、集合的にプロセッサ２０と呼ぶことがある。
【０００４】
一般に、プロセッサ２０は、システム・バス２５を介したメモリ・コントローラ３０へのメモリ読取りまたはメモリ書込みなどのメモリ要求トランザクションを開始することによって、メモリ・サブシステム５０にアクセスする。次いで、メモリ・コントローラ３０は、メモリ相互接続３５を介してメモリ要求コマンドをシステム・メモリ４０に発行することによって、システム・メモリ４０にデータを記憶させたり、システム・メモリ４０からデータを取り出したりするのを制御する。メモリ相互接続３５は、システム・メモリ４０とメモリ・コントローラ３０との間でアドレス情報と制御情報さらにはデータを伝達する。
【０００５】
メモリ・サブシステム３０は、プロセッサ２０が使用するデータや命令のコードをシステム・メモリ４０内に記憶するように構成されている。多くのコンピュータ・システムでは、システム・メモリ４０は、複数のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）など、メモリの拡張可能ブロックを使用して実装されている。たとえば、各ＤＩＭＭは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）など、複数のランダム・アクセス・メモリ・チップを使用している。各ＤＩＭＭを、エッジ・コネクタとソケット構成を介して、システム・メモリ板に結合させることができる。たとえば、ソケットをメモリ・サブシステム回路板に配置し、ソケットに挿入することができるエッジ・コネクタを各ＤＩＭＭに設けるようになっている。
【０００６】
回路板は、通常、回路板の両側面上に回路板の１つの縁に沿って構成された接触パッドまたは「フィンガ」を有する。回路板のこの縁は、フィンガに結合させるために、ばね荷重式接触子を有するソケットに挿入させられる。ソケット構成により、ユーザがメモリ・モジュールを取り外して、交換することが可能である。多くのシステムでは、メモリ・モジュール・コネクタは、メモリ・モジュールが、行ごとにまたはデイジー・チェーンでメモリ・バスまたはメモリ相互接続に接続されるように、マザーボードまたはシステム・ボードに取り付けられる。いくつかの場合では、コンピュータ・システムは、所与の数のメモリ・モジュールを備え、ユーザは、システム・メモリの能力を拡張するために、モジュールを追加することが可能である。
【０００７】
多くのシステムでは、この拡張可能性を持たせるために、メモリ・モジュールは、一般にバンクに構成されている。各バンクがアドレスの特定の範囲を含むようにバンクを構成させることができ、したがって、バンクを追加すると、メモリ空間が追加される。
【０００８】
しかし、多くの通常のバンク構成では、データ経路にあるすべてのデータ信号は、各メモリ・モジュール・ソケットに経路指定される。たとえば、図２には、メモリ・サブシステムが示されている。メモリ・サブシステム５０は、データ信号ＤＱ０−６３を有するデータ経路を介して、ＤＩＭＭ０−３を含むシステム・メモリに結合されたメモリ・コントローラ３０を含む。データ信号ＤＱ０−６３は、各ＤＩＭＭに結合されることに留意されたい。示した実施形態では、バンク０はＤＩＭＭ０に対応し、バンク１はＤＩＭＭ１に対応する、などである。各ＤＩＭＭ内では、ＤＱ０−１５は、ＤＲＡＭチップ０−３などのＤＲＡＭチップのグループに対応させることが可能あり、ＤＱ１６−３１は、ＤＲＡＭチップ４−７に対応させることが可能である、などである。したがって、メモリ・モジュールに接続された各データ信号経路または回路板トレースが伝送線である場合、その伝送線上の各ソケット接続点は、スタブを表す可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって図２では、データ経路ＤＱ０−６３にある各信号は、４つ程度のスタブを有することが可能である。少数のメモリ・モジュールまたは狭いデータ・バスを含むシステムでは、上述したデイジー・チェーン構成は問題がないであろう。しかし、広いデータ・バスおよび多くのメモリ・モジュールを有するシステムでは、デイジー・チェーン構成が問題となることがある。信号経路の各スタブにより、信号エッジのひずみなど、望ましくない影響が生じることがある。このタイプの信号劣化により、システムの性能が悪影響を受ける。
【００１０】
さらにいくつかのシステムでは、たとえば、障害が発生したメモリ・モジュールなどのメモリ・サブシステム構成要素により致命的な障害が発生する可能性がある。他のシステムでは、障害が発生したメモリ・モジュールにより、システムが停止する可能性があり、またはシステムの停止を余儀なくされる可能性がある。メモリの障害に対するこれらのタイプのシステム応答は、高いＲＡＳレベルを有することを期待されるシステムでは許容されない。
【課題を解決するための手段】
【００１１】
エラー訂正を含むメモリ・サブシステムの様々な実施態様を開示する。一実施態様のメモリ・サブシステムは、メモリ・コントローラと、複数のメモリ・モジュールを含むシステム・メモリとを含む。システム・メモリはメモリ相互接続によってメモリ・コントローラに結合される。複数のメモリ・モジュールのそれぞれは、回路板と、回路板に取り付けられた複数のメモリ・チップを含む。メモリ・コントローラは、少なくとも２つのメモリ・モジュールにわたるデータ・セグメントの部分を記憶することが可能である。メモリ・コントローラは、データ・セグメントの部分のパリティをメモリ・モジュールの他の対応する部分にさらに記憶することが可能である。
【００１２】
他の実施態様では、メモリ・サブシステムは、メモリ・コントローラと、複数のメモリ・モジュールを含むシステム・メモリを含む。システム・メモリは、メモリ相互接続によってメモリ・コントローラに結合される。複数のメモリ・モジュールのそれぞれは、回路板と、回路板に取り付けられた複数のメモリ・チップとを含む。メモリ・コントローラは、複数のスライス状態のシステム・メモリにアクセスすることが可能である。各スライスは、少なくとも１つのメモリ・モジュールを含む。メモリ・コントローラは、複数のスライスの少なくともいくつかのパリティを少なくとも１つの追加のスライスに記憶することも可能である。
【発明を実施するための最良の形態】
【００１３】
図１はコンピュータ・システムのブロック図である。
【００１４】
図２はメモリ・サブシステムのブロック図である。
【００１５】
図３はメモリ・サブシステムの一実施形態のブロック図である。
【００１６】
図４はメモリ・サブシステムの他の実施形態のブロック図である。
【００１７】
図５はメモリ・モジュールの一実施形態のブロック図である。
【００１８】
本発明は、様々な修正および代替形態が可能であるが、特有の実施形態を図面において例として示し、本明細書において詳細に記述する。しかし、図面および詳細な記述は、開示する特定の形態に本発明を限定することを意図しておらず、対照的に、添付の特許請求の範囲によって規定される本発明の精神および範囲内にあるすべての修正、均等物、および代替を網羅することを意図していることを理解されたい。
【００１９】
図３を参照すると、メモリ・サブシステム３５０の一実施形態のブロック図が示されている。メモリ・サブシステム３５０は、１６０のデータ信号を含むデータ経路３３５を介してシステム・メモリ３４０に結合されたメモリ・コントローラ３３０を含む。システム・メモリ３４０は、ＤＩＭＭ０からＤＩＭＭ９まで指定された１０のＤＩＭＭを含む。データ経路３３５のみがシステム・メモリ３４０に結合されて示されているが、他の信号（アドレスや制御信号など）をシステム・メモリ３４０とメモリ・コントローラ３３０との間に結合させてもよいことに留意されたい。代替実施形態は、他の数のＤＩＭＭを含んでもよく、かつデータ経路３３５は他の数のデータ信号を含んでもよいことにさらに留意されたい。
【００２０】
メモリ・コントローラ３３０は、たとえば、図１のプロセッサ２０Ａまたは２０Ｂなどの装置からのメモリ要求を受け取ることに応答して、メモリ要求オペレーションを生成する。メモリ・コントローラ３３０は、Ｉ／Ｏ装置（図示せず）などの他のソースから要求を受け取ることも留意されたい。メモリ・コントローラ３３０は、要求をスケジュールして、データ経路３３５で伝送するための対応するメモリ要求を生成することもある。要求は、アドレス情報と制御情報（図３には示さず）を含む。たとえば、メモリ要求がメモリの読取りである場合、メモリ・コントローラ３３０は、システム・メモリ内の要求されたアドレスと、たとえば読取り開始コマンドまたはプリチャージ・コマンドなどの対応する制御情報とを含む１つまたは複数の要求を生成する。
【００２１】
示した実施形態では、データ経路３３５に含まれる１６０のデータ信号は、１６のデータ信号の１０のグループにグループ分けされている。１６のデータ信号の各グループは、データ信号のそれぞれの相互に排他的なセットを表している。データ信号のそれぞれの相互に排他的なセットはそれぞれ異なるＤＩＭＭに結合される。したがって、各ＤＩＭＭはデータ経路３３５の一部に結合される。データ経路３３５で伝達されるデータは、データ・セグメントと呼ぶことがあり、一方、１６のデータ信号のそれらのグループのそれぞれに伝達されるデータは、部分と呼ぶことがある。
【００２２】
示した実施形態では、システム・メモリ３４０の１０のＤＩＭＭは、それらがそれぞれ結合される１６のデータ信号に従ってグループ分けされる。したがって、１０のピースまたは部分が存在する。各ピースは、本明細書では「スライス」と呼ばれる。一実施形態では、各スライスは１つのＤＩＭＭ内に記憶されたデータを含む。各ＤＩＭＭは、それに結合されるデータ経路３３５のその部分に対応するデータの部分を記憶するように構成されている。たとえば、ＤＩＭＭ０はＤＱ０−１５などの１６のデータ信号に結合される。一実施形態では、１６のデータ信号とＤＩＭＭ０がスライス０を表している。さらに、ＤＩＭＭ１とそれに関連するデータ信号はスライス１に対応している、などである。さらに、１つのスライスは、パリティ・スライスとして指定される。一実施形態では、ＤＩＭＭ９とそれに関連するデータ信号はスライス０−８のパリティを表す。他の実施形態では、他のスライスをパリティ・スライスとして使用することが可能であることに留意されたい。
【００２３】
代替実施形態では、ＤＩＭＭに結合された１６のデータ信号のそれぞれは、２つ以上の部分またはスライスに論理的に分割することもできることに留意されたい。そのような代替実施形態では、各ＤＩＭＭを使用して、２つ以上のスライスを記憶させることが可能である。たとえば、メモリ・モジュールが１０のＤＩＭＭ（０−９）を有する場合、ＤＩＭＭ０をＤＱ０−１５などの１６のデータ信号に結合させることが可能である。これらの１６のデータ信号は、それぞれが８つのデータ信号である２つの部分を含むようにしてもよい。１６のデータ信号とＤＩＭＭ０で、スライス０とスライス１を表すことが可能である。さらに、ＤＩＭＭ１とそれに関連するデータ信号をスライス２と３に対応させることが可能である、などである。さらに、１つのＤＩＭＭは、パリティＤＩＭＭとして指定することが可能である。したがって、そのような実施形態では、ＤＩＭＭ９とそれに関連するデータ信号はスライス０−１５のパリティを表すことが可能である。
【００２４】
パリティ・スライスは、ＤＩＭＭ０−８に記憶されたデータ情報にとって冗長であるデータ情報を伝達し、かつ記憶するように構成される。一実施形態では、パリティ情報は、「Ａ」ＸＯＲ「Ｂ」ＸＯＲ「Ｃ」＝「Ｄ」ならば、「Ｄ」ＸＯＲ「Ｂ」ＸＯＲ「Ｃ」＝「Ａ」であるように、排他的論理和（ＸＯＲ）関数のブール特性を使用して生成することが可能である。したがって、「Ａ」がエラーを有する場合、「Ｄ」、「Ｂ」、「Ｃ」を使用して「Ａ」を再現させることが可能である。したがって、ＸＯＲ関数を使用して、１つのスライスのすべてのビットを、他のスライスと冗長スライス情報（パリティ・データ情報など）のみを使用して再現させることが可能である。示した実施形態では、ＤＩＭＭ９に記憶されたパリティ・データ情報は、ＤＩＭＭ０−８に記憶されたデータの排他的論理和である。
【００２５】
代替実施形態では、２つ以上のスライスを使用して、冗長データ情報を伝達することが可能であることに留意されたい。たとえば、各冗長スライスは、他の残りのスライスのサブセットの冗長データ情報を含むことが可能であり、それにより、累積冗長情報は、すべてのサブセットとすべての情報を含む。したがって、そのような実施形態では、２つ以上の不良スライスを再構築することが可能である可能性がある。
【００２６】
図４を参照すると、メモリ・サブシステム４５０の一実施形態のブロック図が示されている。メモリ・サブシステム４５０は、データ信号ＤＱ０−ｎを含むデータ経路を介してシステム・メモリ４４０に結合されたメモリ・コントローラ４３０を含む。データ経路信号ＤＱ０−ｎの他に、他の信号（アドレスと制御信号など）をシステム・メモリ４４０とメモリ・コントローラ４３０との間で結合させてもよいことに留意されたい。
【００２７】
示した実施形態では、システム・メモリ４４０は、ＤＩＭＭ０からＤＩＭＭ  Ｎまで指定されたいくつかのメモリ・モジュールを含む。Ｎは、ＤＩＭＭの任意の数を表す。ＤＩＭＭ０−Ｎのそれぞれは、１６のメモリ集積回路チップを含むが、各ＤＩＭＭに他の数のメモリ・チップを含む他の実施形態も考慮されることに留意されたい。ＤＩＭＭ０は、メモリ・チップを４つのチップの４つのグループに構成されて、０−３と指定される。メモリ・チップは、たとえば、同期ＤＲＡＭ（ＳＤＲＡＭ）またはダブル・データ・レート（ＤＤＲ）ＳＤＲＡＭなど、任意のタイプのＤＲＡＭチップの例である。
【００２８】
一実施形態では、データ経路は、メモリ・コントローラ４３０とシステム・メモリ４４０内の各ＤＩＭＭとの間で１６のデータ信号を伝達する。たとえば、データ経路ＤＱ０−１５がメモリ・コントローラ４３０とＤＩＭＭ０との間に結合され、ＤＱ１６−３１がメモリ・コントローラとＤＩＭＭ１との間に結合される、などである。したがって、示した実施形態では、データ信号の各グループは、メモリ・コントローラ４３０からそれぞれのＤＩＭＭまでのポイントツーポイントのデータ経路である。各ＤＩＭＭに伝達される他の数のデータ信号を含む他の実施形態が考慮されることに留意されたい。
【００２９】
一実施形態では、システム・メモリ４４０の各ＤＩＭＭは、バンク０−３と指定された４つの外部バンクに構成されている。各バンクは各ＤＩＭＭからの４つのメモリ・チップを含む。さらに、各メモリ・チップは内部バンクを含んでもよい。各ＤＩＭＭは、データ経路にあるデータ信号ＤＱ０−ｎ全体の相互に排他なサブセットを受け取る。したがって、バンク０−３のそれぞれはＤＩＭＭ０−Ｎにまたがっている。さらに、各ＤＩＭＭで使用されるメモリ・チップの数に応じて、各バンクは、他の数のメモリ・チップを含むことが可能である。
【００３０】
上述したように、信号経路の各接続点は伝送線のスタブを表しており、スタブは、信号の完全性およびシステムの性能を低下させることがある。外部バンクがすべてのＤＩＭＭにわたっていることによって、メモリ相互接続のデータ経路内にあるデータ信号の所与のグループを単一のＤＩＭＭに経路指定することが可能である。このタイプのバンク構成により、単一ＤＩＭＭに割り付けられた外部バンクを有する通常のシステム・メモリに存在する可能性がある各データ信号経路の接続点を排除することが可能である。したがって、これらのスタブのいくつかを除去することによって、データ信号の信号完全性を改善することにより、全体的なメモリの性能を増大させることが可能である。
【００３１】
以下でさらに記述するように、各ＤＩＭＭは、バンクの選択やメモリ・チップのアドレス指定を制御するように構成された論理（図４には示さず）を含むことがある。さらに、使用するＤＲＡＭメモリ・チップのタイプに応じて、アドレスと制御信号は、アドレス（ａｄｄｒ）、行アドレス・ストローブ（ｒａｓ）、列アドレス・ストローブ（ｃａｓ）、書込み可能（ｗｅ）、およびチップ選択（ｃｓ）などを含む。
【００３２】
図５を参照すると、図３と図４のメモリ・モジュールの一実施形態のブロック図が示されている。メモリ・モジュール５００は複数のメモリ・チップを含む。このメモリ・チップはＭＣ０−１５と示されており、クロックと制御論理ユニット５１０に結合されている。メモリ・モジュール５００は、メモリ相互接続５３５を介して、アドレス情報と制御情報を受け取り、さらにデータとデータ・ストローブを送受するように結合されている。データ線は、ＤＱ［１５：０］と指定されている。図５に示したＭＣ０−１５およびクロックと制御論理５１０の示した構成は、議論のための単なる例示的な構成であることに留意されたい。他の実施形態では、構成要素の他の物理的な構成を使用することが可能であることが考慮される。
【００３３】
示した実施形態では、ＭＣ０−１５は、ＤＤＲＳＤＲＡＭ技術で実装することが可能である。他の実施形態では、ＭＣ０−１５は、他のタイプのＤＲＡＭで実装することが可能であることに留意されたい。そのような実施形態では、他のアドレスと制御信号（図示せず）を使用することが可能である。
【００３４】
一般に、ＤＤＲＳＤＲＡＭ装置にアクセスするために、まず、コマンド・エンコーディングとアドレスを、それぞれ制御入力とアドレス入力に加えなければならない。コマンドは、制御入力を使用してエンコードされる。次いで、アドレスがエンコードされ、所与のアドレスからのデータがアクセスされる。通常はバースト・モードである。
【００３５】
示した実施形態では、クロックと制御論理５１０は、メモリ相互接続５３５を介してメモリ・コントローラからメモリ要求エンコーディングを受け取る。上記したように、メモリ要求エンコーディングは、行アドレス・ストローブ（ｒａｓ）や列アドレス・ストローブ（ｃａｓ）、書込み可能（ｗｅ）、チップ選択（ｃｓ）の制御信号など、アドレス情報と制御情報を含む。クロックと制御論理５１０は、メモリ・チップの適切なバンクにアクセスするための適切な制御信号を生成する。示した実施形態では、たとえば、書込み可能（ＷＥ）、行アドレス・ストローブ（ＲＡＳ）、列アドレス・ストローブ（ＣＡＳ）、チップ選択（ＣＳ０、１、２、３）は、受け取ったアドレス情報と制御情報に応じて、クロックと制御論理５１０によって生成される。さらに、クロックと制御論理５１０は、メモリ相互接続５３５でｃｌｋ０およびｃｌｋ＿ｂ０などのクロック信号を受け取る。クロックと制御論理５１０は、たとえば、ＭＣ０−１５のそれぞれについてクロック信号を生成するために、位相ロック・ループなどのクロック論理を含む。クロックと制御論理５１０は、ＭＣ０−１５を制御することが可能であるが、簡単化のために省略されている他の信号（図示せず）を生成することが可能であることに留意されたい。ＤＤＲＳＤＲＡＭ装置の動作のより詳細な記述は、ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎから入手可能な「ＤＤＲ  ＳＤＲＡＭ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ」という名称のＪＥＤＥＣ規格に見ることが可能である。
【００３６】
示した実施形態では、ＭＣ０−１５は、バンク０−３と指定される４つの外部バンクに論理的に配置される。バンク０はＭＣ０、４、８、１２を含む。バンク１はＭＣ１、５、９、１３を含む、などである。ＣＳ０はバンク０をイネーブルにすることが可能であり、ＣＳ１は、バンク１をイネーブルにすることが可能である、などであることに留意されたい。上述したように、メモリ・モジュール５００は、１６のデータ信号の１つのグループ（たとえばＤＱ［１５：０］）にのみ結合され、所与のメモリ・モジュールの各バンクは、そのメモリ・モジュールに接続されたすべての１６のデータ信号に結合される。たとえば、データ信号ＤＱ［１５：０］は、ＭＣ０−３がＤＱ［３：０］に結合され、ＭＣ４−７がＤＱ［７：４］に結合され、ＭＣ８−１１がＤＱ［１１：８］に結合され、ＭＣ１２−１５がＤＱ［１５：１２］に結合されるように分配される。
【００３７】
システムの信頼性および可用性を改善するために、多くのシステムは、エラー・コードを１つの形態または他の形態で実装する。一実施形態では、エラー・コードは、ビットのグループ内の少なくとも１ビットのエラーを検出することができるエラー検出コードである。他の実施形態では、エラー・コードは、少なくとも１つの検出されたビットのエラーを訂正することもできる、エラー検出コードでもあるエラー訂正コードである。たとえば、図１から図５をまとめて参照すると、データの記憶中、図３のメモリ・コントローラ３３０は、データと共に伝達して記憶することが可能であるエラー・コードを生成する。一実施形態では、システム・メモリ３４０からデータを読み取る際に、メモリ・コントローラ３３０は、エラー・コードを再現させて、比較することによって、データの有効性を検証する。保護のレベル（すなわち、エラー・コードの強度）に応じて、メモリ・コントローラ３３０は、システム・メモリ３４０から読み出されているデータにおいて、少なくとも１ビットのエラーを検出して、少なくとも１ビットのエラーを訂正することが可能である。代替として、メモリ・コントローラ３３０は、システム・メモリ３４０から読み出されているデータ中の少なくとも１ビットのエラーを検出することが可能である。
【００３８】
他の実施形態では、ＤＩＭＭに伝達されたアドレス情報と制御情報のエラーを検出可能である。１つまたは複数のＤＩＭＭに記憶されているデータと共に伝達されたエラー・コードが、アドレス・エラーと制御エラーのために、データの記憶時にエラーを検出しない可能性がある。これらのエラーにより、データが誤ったアドレスに記憶される、またはデータがまったく記憶されないことがある。そのような実施形態では、メモリ・コントローラ（メモリ・コントローラ３３０など）が、アドレス情報と制御情報と共にアドレスと制御パリティ情報（図示せず）をＤＩＭＭに伝達する。それにより、アドレスと制御パリティ情報を使用して、所与のＤＩＭＭが、アドレス・エラーと制御エラーを検出し、それをメモリ・コントローラに報告する。
【００３９】
さらに、１つの特定のＤＩＭＭに関連する複数のデータ・エラーが存在する可能性がある。この重要なエラーは、不良メモリ・チップ、不良ＤＩＭＭソケット接続、または、あらゆる単一ＤＩＭＭとメモリ・コントローラ３３０との間のデータ経路部分に悪影響を与える他の問題によって生じる可能性がある。多くの場合、このタイプのエラーは、エラー・コードのみを使用して訂正するのは実現不可能である。しかし、メモリ・コントローラ３３０は、どのＤＩＭＭが障害を発生しているか、またはＤＩＭＭのどのメモリ・チップが障害を発生しているかを検出するために、関連するエラー・コードを使用することが可能である。さらに、エラー・コードを使用して、ＤＩＭＭが障害を発生する前および障害を発生した後に、あるタイプのビット・エラーをＤＩＭＭのいずれかで検出することが可能である。１つの特定の実施形態において使用することが可能である例示的なエラー・コードは、「Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ／Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ  ｗｈｉｃｈ  Ｄｅｔｅｃｔｓ  ａｎｄ  Ｃｏｒｒｅｃｔｓ  Ｃｏｍｐｏｎｅｎｔ  Ｆａｉｌｕｒｅ  ａｎｄ  ｗｈｉｃｈ  Ｐｒｏｖｉｄｅｓ  Ｓｉｎｇｌｅ  Ｂｉｔ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｓｕｂｓｅｑｕｅｎｔ  ｔｏ  Ｃｏｍｐｏｎｅｎｔ  Ｆａｉｌｕｒｅ」という名称の米国特許出願第１０／１８５，２６５号と、「Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ／Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ  ｗｈｉｃｈ  Ｄｅｔｅｃｔｓ  ａｎｄ  Ｃｏｒｒｅｃｔｓ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ／Ｔｒａｎｓｍｉｔｔｅｒ  Ｃｉｒｃｕｉｔ  Ｆａｉｌｕｒｅ」という名称の米国特許出願第１０／１８４，６７４号と、「Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ／Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ  ｗｈｉｃｈ  Ｄｅｔｅｃｔｓ  ａｎｄ  Ｃｏｒｒｅｃｔｓ  ａ  Ｆｉｒｓｔ  Ｆａｉｌｉｎｇ  Ｃｏｍｐｏｎｅｎｔ  ａｎｄ  Ｏｐｔｉｏｎａｌｌｙ  ａ  Ｓｅｃｏｎｄ  Ｆａｉｌｉｎｇ  Ｃｏｍｐｏｎｅｎｔ」という名称の米国特許出願第１０／１８５，９５９号（本明細書と同時に出願）とにおいて議論されており、これらの開示は、参照によって本明細書に完全に組み込まれている。
【００４０】
メモリ・コントローラが、所与のスライスにおいてエラーまたは障害を検出した場合、伝達され、かつパリティ・スライスに記憶されているパリティ・データ情報を障害が発生していない他のスライス内に記憶されている内容と共に使用して、障害が発生したスライスの内容を使用せずに、障害が発生したスライスの内容を再現させることが可能である。したがって、パリティ・スライスを使用して、単一のスライスから来た複数ビットのエラーを訂正することが可能である。
【００４１】
ＤＩＭＭ０−８のそれぞれに関連するエラーを検出することが可能であり、パリティ情報を伝達して、ＤＩＭＭ９に記憶することが可能であるので、障害が発生したスライスからのデータ情報を、メモリ・コントローラ３３０またはメモリ・コントローラ４３０などのメモリ・コントローラによって、オンザフライに再現させることが可能である。したがって、メモリ・サブシステムは、障害ＤＩＭＭ、障害ＤＩＭＭソケット接続、またはおそらくはさらにはメモリ・コントローラの障害データ・ポートを持ったまま動作し続けることが可能である。
【００４２】
一実施形態では、スライスが障害を発生していると識別された後、その障害スライスからのデータ情報は、問題が解決されるまで、そのデータ情報にアクセスするたびに、再構築され続けることが可能である。たとえば、一実施形態では、図３のメモリ・コントローラ３３０または図４のメモリ・コントローラ４３０は、中断の形態のエラー・メッセージまたはエラー条件を示す他のメッセージを開始することが可能である。たとえば、図１のコンピュータ・システムなどのシステムでは、そのようなエラー・メッセージの受け取りに応答して、プロセッサ２０が、メールを介して、またはモデムを経たダイアルアップ・サービスを介して、サービス要求を送信することが可能である。代替実施形態では、別のプロセッサ（図示せず）を使用して、メモリ・コントローラ３３０またはメモリ・コントローラ４３０からのエラー指示に対処することが可能であり、エラー指示に応答して、メモリ・サブシステムを再構成するように構成することが可能である。
【００４３】
また、一実施形態では、障害が発生したＤＩＭＭ０−９などのＤＩＭＭは「ホット・スワップ可能」にしている。本明細書で使用する際に、ホット・スワップ可能は、メモリ・サブシステム３５０またはメモリ・サブシステム４５０の動作を続行しながら、障害が発生したＤＩＭＭを取り外して、交換する能力を指す。
【００４４】
上述したように、システム・メモリの他のメモリ・モジュールのみを使用して所与のメモリ・モジュールに記憶されているデータを再現させる能力により、システムの信頼性、可用性、および／または保守性を向上させることが可能である。
【００４５】
上記の実施形態についてかなり詳細に記述してきたが、上記の開示を完全に理解した後には、当業者には多くの変更および修正が明らかになるであろう。以下の特許請求の範囲は、すべてのそのような変更および修正を包含すると解釈するものとする。
【図面の簡単な説明】
【００４６】
【図１】コンピュータ・システムのブロック図である。
【図２】メモリ・サブシステムのブロック図である。
【図３】メモリ・サブシステムの一実施形態のブロック図である。
【図４】メモリ・サブシステムの他の実施形態のブロック図である。
【図５】メモリ・モジュールの一実施形態のブロック図である。
【図１】
2006512630.tif 000003
【図２】
2006512630.tif 000004
【図３】
2006512630.tif 000005
【図４】
2006512630.tif 000006
【図５】
2006512630.tif 000007