(57)【要約】【課題】  セグメント・レベルで予備化したメモリ・システムを提供する。【解決手段】  このメモリ・システムはセグメント・レベルで予備化した、カスケード型相互接続システムを含んでいる。このカスケード型相互接続システムは少なくとも２つのメモリ・アセンブリとメモリ・バスを備えている。このメモリ・バスは複数のセグメントを備え、このメモリ・アセンブリは当該メモリ・バスを介して相互接続されている。【選択図】  図９
2006048688.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・システムであって、
セグメント・レベルで予備したカスケード型相互接続システムであって、
少なくとも２つのメモリ・アセンブリと、
複数のセグメントから成るメモリ・バスであって、前記メモリ・アセンブリは前記メモリ・バスを介して相互接続されている、メモリ・バスと
を備えている、カスケード型相互接続システム
を備えた
メモリ・システム。
【請求項２】
前記メモリ・アセンブリはメモリ・コントローラおよび少なくとも１つのメモリ・モジュールを備えている、
請求項１に記載のメモリ・システム。
【請求項３】
任意の２つの相互接続アセンブリの間の単一のセグメントを前記任意の２つの相互接続アセンブリの間の予備のセグメントで置換することができる、
請求項１に記載のメモリ・システム。
【請求項４】
前記メモリ・バスはダウンストリーム・バスであり、前記単一のセグメントは前記ダウンストリーム・バスの上に配置されている、
請求項３に記載のメモリ・システム。
【請求項５】
前記メモリ・バスはアップストリーム・バスであり、前記単一のセグメントは前記アップストリーム・バスの上に配置されている、
請求項３に記載のメモリ・システム。
【請求項６】
少なくとも２つの相互接続されたアセンブリの間で、少なくとも２つの一意のセグメントを置換することができる、
請求項３に記載のメモリ・システム。
【請求項７】
セグメント・レベルの予備化を実現する方法であって、
現在のメモリ・アセンブリにおいて入力信号を受信するステップであって、前記現在のメモリ・アセンブリは複数のセグメントを備えたメモリ・バスを介して相互接続された複数のメモリ・アセンブリを備えたカスケード型相互接続システムに含まれている、ステップと、
前記入力信号中のビット群のうちの１つが、アップストリームまたはダウンストリームのメモリ・アセンブリにおける故障セグメントに関連付けられるのに応答して、前記入力信号中の前記ビット群を再配置するステップ
とを備えた
方法。
【請求項８】
前記入力信号が予備ビットを含み、
前記予備ビットが前記入力信号中で利用されている場合、前記ビット群のうちの１つを故障セグメントに関連付ける、
請求項７に記載の方法。
【請求項９】
さらに、
前記入力信号中の再配置した前記ビット群のうちの１つが、前記現在のメモリ・アセンブリに接続されている故障セグメントに関連付けられるのに応答して、前記入力信号中の再配置した前記ビット群の順番を入れ替えるステップと、
アップストリームまたはダウンストリームのメモリ・アセンブリに前記順番を入れ替えたビット群を転送するステップとを備えた、
請求項７に記載の方法。
【請求項１０】
前記再配置をマルチプレクサで行う、
請求項７に記載の方法。
【請求項１１】
前記現在のメモリ・アセンブリはメモリ・コントローラまたはメモリ・モジュールである、
請求項７に記載の方法。
【請求項１２】
前記バスは一方向性のアップストリーム・メモリ・バスおよび一方向性のダウンストリーム・メモリ・バスを含む、
請求項７に記載の方法。
【請求項１３】
前記アップストリーム・メモリ・バス上の情報は２３個の信号を含み、１個の信号は予備ビットであり、４個の信号はエラー訂正コード・ビットである、
請求項１２に記載の方法。
【請求項１４】
前記ダウンストリーム・メモリ・バス上の情報は２２個の信号を含み、１個の信号は予備ビットであり、４個の信号はエラー訂正コード・ビットである、
請求項１２に記載の方法。
【請求項１５】
前記カスケード型相互接続システムはバス・レベル・エラー訂正コード機能ブロックを備えている、
請求項７に記載の方法。
【請求項１６】
さらに、
前記再配置したビット群をバス・レベル・エラー訂正コード機能ブロックに転送するステップを備えた、
請求項１５に記載の方法。
【請求項１７】
前記バス・レベル・エラー訂正コード機能ブロックはエラー・フラグおよびエラー・データをメモリ・コントローラにエラー報告ブロックを介して転送する、
請求項１６に記載の方法。
【請求項１８】
さらに、
故障ビットを無効にして予備ビットを使用するコマンドを、前記現在のメモリ・アセンブリにおいて受信するステップを備えた、
請求項１６に記載の方法。
【請求項１９】
前記コマンドをメモリ・コントローラから受信する
請求項１８に記載の方法。
【請求項２０】
セグメント・レベルの予備化を実現するためのプログラムであって、
現在のメモリ・アセンブリにおいて入力信号を受信するステップであって、前記現在のメモリ・アセンブリは複数のセグメントを備えたメモリ・バスを介して相互接続された複数のメモリ・アセンブリを備えたカスケード型相互接続システムに含まれている、ステップと、
前記入力信号中のビット群のうちの１つが、アップストリームまたはダウンストリームのメモリ・アセンブリにおける故障セグメントに関連付けられるのに応答して、前記入力信号中の前記ビット群を再配置するステップと
をコンピュータに実行させる命令群を含む
プログラム。
【請求項２１】
メモリ・システムであって、
セグメント・レベルの予備化を備えたカスケード型相互接続システムであって、
少なくとも２つのメモリ・アセンブリと、
少なくとも１つのクロック信号セグメントを備えたメモリ・バスであって、前記メモリ・アセンブリは前記メモリ・バスを介して相互接続されており、任意の２つの相互接続されたアセンブリの間の単一のクロック・セグメントは前記任意の２つの相互接続されたアセンブリの間の予備セグメントで置換しうる、メモリ・バスと
を含むカスケード型相互接続システム
を備えた
メモリ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ・システムに関し、特にセグメント・レベルの予備化を実現するメモリ・システムに関する。
【背景技術】
【０００２】
コンピュータのメモリ・システムは長年かけて進化してきたが、不変の属性を数多く保持し続けている。１９８０年代初頭のコンピュータ・メモリ・システム（たとえばルヴァリー（LeVallee）らの米国特許第４４７５１９４号に開示されたものなど）はメモリ・コントローラ、アレイ状のデバイス群を備えたメモリ・アセンブリ（当時、当該発明者らは基本記憶モジュール（basic storage module: ＢＳＭ）と呼んでいた）、バッファ、終端抵抗、および、補助的なタイミング・制御機能、ならびに、各メモリ・アセンブリがそれ自身のポイント・ツー・ポイント型のアドレス・バスおよびデータ・バスを介してメモリ・コントローラと通信しうるようにするいくつかのポイント・ツー・ポイント型のバスを備えていた。図１は２つのＢＳＭ、メモリ・コントローラ、保守卓、ならびにＢＳＭとメモリ・コントローラを接続するポイント・ツー・ポイント型のアドレス・バスおよびデータ・バスを備えた１９８０年代初頭のコンピュータ・メモリ・システムの一例を示している。
【０００３】
図２はデル（Dell）らの米国特許第５５１３１３５号に由来するものであるが、初期の同期型メモリ・モジュールを示している。この同期型メモリ・モジュールは同期型の動的ランダム・アクセス・メモリ（ＤＲＡＭ：dynamic random access memory）８、バッファ１２、最適化したピンアウト（pinout）、相互接続、および、動作を容易にする容量性減結合手段を備えている。この特許には、位相ロック・ループ（ＰＬＬ：phase lock loop)などのデバイスを用いることにより、モジュール上でクロックの再駆動を使用することも記載されている。
【０００４】
図３はグルンドン（Grundon)らの米国特許第６５１０１００号に由来するものであるが、既存のマルチドロップ型スタブ・バス・チャネル上に最大４個の登録済みデュアル・インライン・メモリ・モジュール（ＤＩＭＭ：dual inline memory module)４０を備えうるメモリ・システム１０を単純化した図および説明を示す。このシステムはメモリ・コントローラ２０、外部クロック・バッファ３０、登録済みＤＩＭＭ４０、アドレス・バス５０、制御バス６０、およびデータ・バス７０を備えている。アドレス・バス５０およびデータ・バス７０には終端抵抗９５が設けられている。
【０００５】
図４は図１の構成から進化した１９９０年代のメモリ・システムを示す。このメモリ・システムはメモリ・コントローラ４０２と、少なくとも１つの高速ポイント・ツー・ポイント型チャネル４０４とを備えていた。チャネル４０４は各々、バス・ツー・バス型コンバータ・チップ４０６を備えていた。そして、コンバータ・チップ４０６は各々、少なくとも１つの登録済みＤＩＭＭ４１０への接続を可能にする同期型メモリ・インターフェース４０８を備えていた。この構成において、高速のポイント・ツー・ポイント型チャネル４０４はＤＲＡＭのデータ転送速度の２倍の速度で動作した。それにより、バス・ツー・バス型コンバータ・チップ４０６は１個または２個の登録済みＤＩＭＭメモリ・チャネルをＤＲＡＭの最大データ転送速度で動作させることができた。登録済みＤＩＭＭは各々、ＰＬＬ、レジスタ、ＤＲＡＭ、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ：electrically erasable programmable read-only memory)、終端抵抗、および、他の受動素子を備えていた。
【０００６】
図５に示すように、メモリ・システムは単一のメモリ・モジュール、または「スタブ」バス上で相互接続した少なくとも２つのメモリ・モジュールを用いて構築することが多かった。図５は図３に示したものに類似したマルチドロップ型スタブ・バス・メモリ構成の単純化した一例である。この構成はコスト、性能、信頼性、およびアップグレード機能の間における妥当なトレードオフを提示するものであるが、スタブ・バスに取り付けうるモジュールの個数について固有の限界を有する。スタブ・バスに取り付けうるモジュールの個数に関する限界はこのバスを介して転送する情報のデータ転送速度に直接に関係する。データ転送速度を増大させるほど、頑健なメモリ動作を保証するために、スタブの本数と長さを低減させる必要がある。スタブ・バスの速度が増大すると一般に、当該バス上のモジュールの個数は減少する。その結果、最適な電気的なインターフェースは単一のモジュールが単一のコントローラに直接に接続されているもの、あるいは、（もしあるとして）少数のスタブに対するポイント・ツー・ポイント型のインターフェース、ということになるが、後者の場合には反射とインピーダンスの不連続とが生じる。大多数のメモリ・モジュールのデータ幅は６４ビットまたは７２ビットであるから、この構成ではアドレス、コマンド、およびデータを転送するのに多数のピンが必要になる。代表的なピンカウントである図５においては、１２０個のピンが特定されている。
【０００７】
図６はペティ（Petty)の米国特許第４７２３１２０号に由来するものであるが、マルチポイント型の通信構成にデイジー・チェーン構成を適用することに関する。この図６のデイジー・チェーン構成は、１次ステーション１に２次ステーション２Ａ、２Ｂ、２Ｃ、２Ｄ、２Ｅが順次接続され、更にモデムの対３Ａ、３Ｂを介して他の２次ステーション２Ｆに接続されている。デイジー・チェーン構成を適用しない場合、マルチポイント型の通信構成は装置群を分離するポイント・ツー・ポイント型のインターフェースを介して各々が接続される複数のポートが必要になる。デイジー・チェーン構成を採用すると、より少ない個数のポート（すなわちチャネル）を用いて制御ステーションを構成することができる。そして、チャネル上の各装置はデイジー・チェーン構成における自身の位置とは無関係に、標準のアップストリーム・プロトコルとダウンストリーム・プロトコルを利用することができる。
【０００８】
図７は米国特許第４７２３１２０号の教示に合わせて実装したデイジー・チェーン型のメモリ・バスを示す図である。メモリ・コントローラ１１１はメモリ・バス３１５に接続されている。そして、メモリ・バス３１５はモジュール３１０ａに接続されている。バス３１５上の情報はモジュール３１０ａ上のバッファ３２０ａにより次のモジュール３１０ｂへ再駆動される。そして、モジュール３１０ｂが、３１０ｎで示すモジュールの位置までバス３１５を再駆動する。各モジュール３１０ａ、３１０ｂ・・・３１０ｎはＤＲＡＭ３１１ａ、３１１ｂ・・・３１１ｎとバッファ３２０ａ、３２０ｂ・・・３２０ｎを備えている。バス３１５はデイジー・チェーン構成を有するように記載されており、各バスは本来的にポイント・ツー・ポイント型である。
【特許文献１】米国特許第４４７５１９４号
【特許文献２】米国特許第５５１３１３５号
【特許文献３】米国特許第６５１０１００号
【特許文献４】米国特許第４７２３１２０号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
デイジー・チェーン型のバスを使用することに対する１つの欠点は、それにより、当該バスに沿って複数のメモリ・モジュールに影響を与える障害の発生確率が増大する、ということである。たとえば、第１のモジュールが機能不全に陥ると、当該バス上の第２のモジュールおよびそれ以降のモジュールも機能不全に陥ってしまう。
【課題を解決するための手段】
【００１０】
本発明の典型的な実例はセグメント・レベルの予備化を備えたカスケード型相互接続システムを備えたメモリ・システムを含んでいる。このカスケード型相互接続システムは少なくとも２つのメモリ・アセンブリとメモリ・バスを備えている。このメモリ・バスは複数のセグメントを備え、このメモリ・アセンブリは当該メモリ・バスを介して相互接続されている。
【００１１】
本発明の典型的なさらなる実例はセグメント・レベルの予備化を実現する方法を含んでいる。この方法は、現在のメモリ・アセンブリにおいて入力信号を受信するステップであって、前記現在のメモリ・アセンブリは複数のセグメントを備えたメモリ・バスを介して相互接続された複数のメモリ・アセンブリを備えたカスケード型相互接続システムに含まれている、ステップを備えている。前記入力信号中のビット群のうちの１つが、アップストリームまたはダウンストリームのメモリ・アセンブリにおける故障セグメントに関連付けられるのに応答して、前記入力信号中の前記ビット群を再配置する。
【００１２】
本発明の典型的なさらなる実例はセグメント・レベルを予備化したメモリ・システムを実現する記憶媒体を含んでいる。この記憶媒体はセグメント・レベルの予備化を実現するマシン読み取り可能なコンピュータ・プログラム・コードでエンコードされている。この記憶媒体は、コンピュータに、現在のメモリ・アセンブリにおいて入力信号を受信するステップであって、前記現在のメモリ・アセンブリは複数のセグメントを備えたメモリ・バスを介して相互接続された複数のメモリ・アセンブリを備えたカスケード型相互接続システムに含まれている、ステップを備えた方法を実行させる命令群を含んでいる。前記入力信号中のビット群のうちの１つが、アップストリームまたはダウンストリームのメモリ・アセンブリにおける故障セグメントに関連付けられるのに応答して、前記入力信号中の前記ビット群を再配置する。
【発明を実施するための最良の形態】
【００１３】
本発明の典型的な実施形態はセグメント・レベルの予備化、すなわちメモリ・チャネル上にある任意の２つのアセンブリの間（すなわちメモリ・コントローラとメモリ・モジュールとの間、または、任意の２つのメモリ・モジュールの間）において（たとえば書き込み障害、コネクタの障害、駆動器の障害、および、受信器の障害、または、これらの障害のうちのいくつかのものに起因して）故障した相互接続をすべて置換する能力を提供するものである。セグメント・レベルの予備化はセグメント当たりバス当たり少なくとも１つの置換用の配線を用いることにより、アップストリーム・バスおよびダウンストリーム・バスの双方に行うことができる。換言すると、各バス上の各セグメント（コントローラ−第１のＤＩＭＭ、第１のＤＩＭＭ−第２のＤＩＭＭ、第２のＤＩＭＭ−第３のＤＩＭＭなど、および、メモリ・コントローラへの帰路）は故障中の一意のセグメントの各々の上を伝送する予定であった情報を別の「置換物」すなわち「予備の」セグメントに再転送することにより、論理的に置換することができる。セグメント・レベルの予備化を実現しうると、システムを修理する処置が必要になる前に一意の故障が多数生じるのを許容できるという点において、信頼性と耐性が向上する。
【００１４】
本発明の典型的な実施形態では、高信頼性のメモリ・システム・アーキテクチャと、任意の２つのシステム構成要素の間に非平衡ポイント・ツー・ポイント型相互接続を備えた相互接続構造とによってセグメント・レベルの予備化を実現している。このメモリ・システムはさらにメモリ制御機能、少なくとも１つのメモリ・モジュール、ＤＲＡＭのデータ転送速度に比して４対１の速度比で動作する少なくとも１つの高速バス、および、少なくとも１つのカスケード型モジュールの各々の上にあって高速バス（群）を既存の２倍データ転送速度（ＤＤＲ：double data rate、ディー・ディー・アール) 型のメモリ・インターフェースに変換するバス・ツー・バス型のコンバータ・チップを備えている。このメモリ・モジュールはメモリ・コントローラに対するスレーブ装置として動作し、コマンドに対して決定論的または非決定論的な態様で応答するが、動作上のエラーを報告する場合以外に想定外のアクティビティを自発的に開始することはない。カスケード接続されたバスにはメモリ・モジュールを追加することができる。その場合、各モジュールにはカスケード接続された当該バス上にある各モジュールを一意に選択するのを可能にするアドレスを割り当てる。本発明の典型的な実施形態はパケット型の多転送インターフェースを備えている。このインターフェースはピンカウントが少ない場合であってもメモリ・オペレーションを行うのを可能にする革新的な通信プロトコルを利用している。これにより、カスケード接続されたバス上にある構成要素間においてアドレス、コマンド、およびデータを複数サイクルにわたって転送するとともに、それらを再構築している。そして、将来の受信者が使用する前にエラーを訂正している。
【００１５】
図８はバッファ付きメモリ・モジュール８０６（バッファ・デバイスはたとえばメモリ・モジュール８０６内に備えられている）がメモリ・コントローラ８０２と通信する場合における、本発明の典型的な実施形態が使用するカスケード型のメモリ構成を示す図である。このメモリ構成には、高速のポイント・ツー・ポイント型バス８０４を介して少なくとも１つのメモリ・モジュール８０６と通信するメモリ・コントローラ８０２が含まれている。図８に示す典型的な実施形態における各バス８０４は約５０本の高速ワイヤを備え、アドレス、コマンド、データ、およびクロックの転送の用に供している。上述した従来技術において説明したポイント・ツー・ポイント型のバスを使用すると、バスの構成を最適化して、きわめて大きなデータ転送速度を可能にするとともに、複数のサイクルにわたってデータを転送することによりバスのピンカウントを低減させることが可能になる。図４にはメモリ・コントローラをバス・コンバータに接続するバスのうちの任意の１つのもののデータ転送速度（たとえばピン当たり最大１０６６Ｍｂ／ｓ）と、バス・コンバータと少なくとも１つのメモリ・モジュールとの間にあるバスのうちの任意の１つのもののデータ転送速度（たとえばピン当たり最大５３３Ｍｂ／ｓ）との比が２対１であるメモリ・システムを示したが、図８に示す本発明の典型的な実施形態では４対１のバス速度比を実現してバスの効率を最大化するとともにピンカウントを最小化している。
【００１６】
ポイント・ツー・ポイント型の相互接続によってデータ転送速度をより大きくすることが可能になるが、メモリ・システムの全体的な高効率性を達成するにはメモリ・モジュール８０６の個数とチャネル当たりのメモリ装置の個数とを妥当な値に維持する必要がある（歴史的にはメモリ・モジュール当たり４〜３６個のチップを備えた４個のメモリ・モジュールであるが、チャネル当たり最大８個のメモリ・モジュールからチャネル当たり最小１個のメモリ・モジュールまでありうる）。ポイント・ツー・ポイント型のバスを使用すると、メモリ・モジュールをカスケード接続して各メモリ・モジュールをメモリ・コントローラ８０２のほかに他のメモリ・モジュールにも相互接続しうるようにするために、各メモリ・モジュールにはバスを再駆動する機能が必要になる。
【００１７】
図９はメモリ・モジュール８０６がすべてバッファ付きメモリ・モジュールである場合に本発明の典型的な実施形態が使用する、カスケード接続されたメモリ・モジュール群と一方向性のバス群とを備えたメモリ構成を示す図である。カスケード構成におけるメモリ・モジュール８０６が備えている機能の１つは、メモリ・バス上の信号を他のメモリ・モジュール８０６またはメモリ・コントローラ８０２に送付する再駆動機能である。図９にはメモリ・コントローラ８０２と４個のメモリ・モジュール８０６ａ、８０６ｂ、８０６ｃ、８０６ｄとが含まれている。これらのメモリ・モジュールは２つのメモリ・バス（ダウンストリーム・メモリ・バス９０４とアップストリーム・メモリ・バス９０２）の各々の上にあるとともに、直接的な態様またはカスケード型の態様でメモリ・コントローラ８０２に接続されている。メモリ・モジュール８０６ａは直接的な態様でメモリ・コントローラ８０２に接続されている。メモリ・モジュール８０６ｂ、８０６ｃ、８０６ｄはカスケード型の態様でメモリ・コントローラ８０２に接続されている。
【００１８】
本発明の典型的な実施形態はカスケード型のメモリ構成においてメモリ・コントローラ８０２とメモリ・モジュール８０６ａ（「ＤＩＭＭ＃１」）との間、ならびに、後続する各メモリ・モジュール８０６ｂ、８０６ｃ、８０６ｄ（「ＤＩＭＭ＃２」、「ＤＩＭＭ＃３」、および「ＤＩＭＭ＃４」）の間に２つの一方向性のバスを備えている。ダウンストリーム・メモリ・バス９０４は２２個の非平衡型の信号、および平衡型のクロック対から成る。このダウンストリーム・メモリ・バス９０４を用いてアドレス、制御、および誤り訂正符号（ＥＣＣ：error code correction)ビットのダウンストリームをメモリ・コントローラ８０２から、カスケード型メモリ・チャネルに実装された少なくとも１つのメモリ・モジュール８０６に数クロック・サイクルにわたって転送する。アップストリーム・メモリ・バス９０２は２３個の非平衡型の信号、および平衡型のクロック対から成る。このアップストリーム・メモリ・バス９０２を用いてバス・レベルのデータ・ビットおよびＥＣＣビットのアップストリームを転送元のメモリ・モジュール８０６からメモリ・コントローラ８０２に転送する。このメモリ構成、および、ＤＲＡＭのデータ転送速度（たとえばピン当たり４００〜８００Ｍｂ／ｓ）と一方向性のメモリ・バスのデータ転送速度（たとえばピン当たり１．６〜３．２Ｇｂ／ｓ）との間に４対１型のデータ転送速度増倍器を使用すると、メモリ・コントローラ８０２の、メモリ・チャネル当たりの信号ピンカウントを約１２０ピンから約５０ピンに減少させることができる。
【００１９】
図１０は本発明の典型的な実施形態が使用するバッファ付きメモリ・モジュール８０６の前面図１００６および背面図１００８である。本発明の典型的な実施形態において、各メモリ・モジュール８０６は長さが約１５．２４ｃｍ（約６インチ）で高さが約３．８１ｃｍ（約１．５インチ）であり、１８個のＤＲＡＭ配置場所、バッファ装置１００２、および、図示しないが当技術分野で既知の多数の小型素子（たとえばキャパシタ、抵抗器、ＥＥＰＲＯＭなど）を備えた空のカードを備えている。本発明の典型的な実施形態では、上記カードの寸法は長さが１５１．３５ｍｍで高さが３０．５ｍｍである。本発明の典型的な実施形態では、バッファ装置１００２は図１０の前面図に示すように、メモリ・モジュール８０６の表側の中央領域に設ける。同期型ＤＲＡＭ（ＳＤＲＡＭ）１００４はバッファ装置１００２の両側、および、図１０の背面図に示すように、メモリ・モジュール８０６の裏側に設ける。この構成を用いると、バッファ装置１００２への高速書き込み、および、バッファ装置からＳＤＲＡＭ１００４への信号の転送が容易になる。
【００２０】
図１１は本発明の典型的な実施形態が使用するバッファ付きモジュールの配線システムを示す図である。図１１は図１０に示したメモリ・モジュール８０６を模式的に示す図であり、陰影付き矢印は主要な信号の流れを表している。この信号の流れにはアップストリーム・メモリ・バス９０２、ダウンストリーム・メモリ・バス９０４、アドレス／コマンド・バス１１０２、１１０６、および、データ・バス１１０４、１１０８が含まれている。本発明の典型的な実施形態において、バッファ装置１００２（メモリ・インターフェース・チップとも呼ばれる）はアドレス信号およびコマンド信号の２つのコピーをＳＤＲＡＭ１００４に右側のアドレス／コマンド・バス１１０６および左側のアドレス／コマンド・バス１１０２を用いて供給する。その際、バッファ装置１００２の右側から出て、当該右側に位置するＳＤＲＡＭ１００４、およびバッファ装置１００２の背面の右側に位置するＳＤＲＡＭ１００４に至る。また、バッファ装置１００２の左側から出て、当該左側に位置するＳＤＲＡＭ１００４、およびバッファ装置１００２の背面の左側に位置するＳＤＲＡＭ１００４に接続する。同様に、バッファ装置１００２の右側のＳＤＲＡＭ１００４に宛てたデータ・ビットはバッファ装置１００２の右側から出て、右側のデータ・バス１１０８に乗る。バッファ装置１００２の左側のＳＤＲＡＭ１００４に宛てたデータ・ビットはバッファ装置１００２の左側から出て、左側のデータ・バス１１０４に乗る。高速のアップストリーム・メモリ・バス９０２およびダウンストリーム・メモリ・バス９０４はバッファ装置１００２の下部から出て、メモリ・コントローラ、または、このメモリ・モジュール８０６の上流（アップストリーム）または下流（ダウンストリーム）にある他のメモリ・モジュールに接続するが、それは用途によって決まる。バッファ装置１００２はデータ転送速度がメモリ・モジュールの４倍である信号を受信した後、それらをメモリ・モジュールのデータ転送速度の信号に変換する。
【００２１】
図１２はメモリ・コントローラ８０２からメモリ・モジュール８０６へ流下する情報を転送するのに本発明の典型的な実施形態が使用するダウンストリーム・フレームのフォーマットを示す。本発明の典型的な実施形態では、ダウンストリーム・フレームは８個の転送から構成されている。各転送は２２個の信号と１個の平衡型クロック（合計２４本のワイヤ）を備えている。このフレームはさらに８本のコマンド・ワイヤ（ｃ０〜ｃ７）１２０８、９本のデータ・ワイヤ（ｄｉ０３〜ｄｉ８）１２０６、４本のバスＥＣＣ（Error Correction Code:誤り訂正符号)ワイヤ（ｅｃｃ０〜ｅｃｃ３）１２０４、および１本の予備ワイヤ（spare)１２０２から成る。７２個のデータ・ビットは図１２ではビットｄｉ０〜ｄｉ８として示されているが、９本のワイヤから成り、各フレームごとに各ワイヤ上には８個の転送が存在する。本発明の典型的な実施形態では、図１２に示すフレーム・フォーマットを用いてメモリ・クロック・サイクル当たり１個または２個のメモリ・コマンドに加え７２ビットの書き込みデータを転送する。各データ・ビット（および他のビット）の番号付けは特定の転送に加え使用するワイヤに基づいている。Ｄ３４は（ビット０〜８のうちの）データ・ビット３と（転送０〜７のうちの）転送４とを指している。コマンド・ビット・フィールドはｃ０〜ｃ７として示されているが、８個の転送にわたってモジュールに供給される６４ビットの情報から成る。
【００２２】
ＥＣＣビット・フィールド（ｅｃｃ０〜ｅｃｃ３）は８個の転送にわたる３２個のビット配置場所から成るが、実際には１６ビットから成るグループにフォーマットされている。１６ビットのパケットの各々は４本のワイヤの各々の上の４個の転送から成り、４個のバス転送から成る各グループにわたりバス・レベルの障害の検出と訂正を行う。予備のビット配置場所はコマンド・フィールド、データ・フィールド、およびＥＣＣフィールド中のビット群を転送するのに使用する２１本のワイヤ（ビット・レーン（bitlane)とも定義される）のうちの任意のものを論理的に置換するのに使用するが、それは、これらのビット・レーンのうちの１本で障害が発生し、それがシステムによって割り当て済みの障害閾値の限界を超えるエラーを引き起こすものである場合である。予備ワイヤを使用するのは直接に接続された２つのアセンブリの間（すなわちメモリ・コントローラ８０２とメモリ・モジュール８０６ａとの間、または、メモリ・モジュール８０６ａ〜８０６ｄのうちの任意の２つのものの間）の故障したセグメントを置換するため、ならびに、ワイヤの故障、コネクタの故障、はんだ相互接続部の故障、駆動器の故障、および、受信器の故障、または、これらの故障のうちのいくつかのものといったイベントに起因してワイヤを置換するためである。１７６個のビット配置場所が利用可能である場合、１６８個はメモリ・モジュール８０６への情報の転送用に利用することができ、それら１６８個のビット配置場所のうち、３２個のビット配置場所はさらにバス転送自身に関するＥＣＣ保護を実現するのに割り当てる。これにより、合計１３６個のビット配置場所がメモリ・モジュール８０６への情報の転送用に使用しうるようになる。図１２に示すフレーム・フォーマットはメモリ・コントローラの方向からメモリ・モジュール８０６に入来する信号、および、ダウンストリーム（下流）にある任意のメモリ・モジュール８０６へ外出する信号に適用することができる。
【００２３】
図１３はメモリ・モジュール８０６からメモリ・コントローラ８０２またはアップストリーム・メモリ・モジュール８０６へ流上する情報を転送するのに本発明の典型的な実施形態が使用するアップストリーム・フレームのフォーマットを示す図である。本発明の典型的な実施形態では、アップストリーム・フレームは８個の転送から構成されている。各転送は２３個の信号と１個の平衡型クロック（合計２５本のワイヤ）を備えている。このフレームはさらに１８本のコマンド・ワイヤ（ｄｏ０〜ｄｏ１７）１３０６、４本のバスＥＣＣワイヤ（ｅｃｃ０〜ｅｃｃ３）１３０４、および１本の予備ワイヤ（spare)１３０２から成る。本発明の典型的な実施形態では、図１３に示すフレーム・フォーマットを用いてメモリ・クロック・サイクル当たり１４４個の読み取りデータ・ビットを転送する。各データ・ビット（および他のビット）の番号付けは特定の転送に加え使用するワイヤに基づいている。Ｄ３４は（ビット０〜１７のうちの）データ・ビット３と（転送０〜７のうちの）転送４とを指している。
【００２４】
ＥＣＣビット・フィールド（ｅｃｃ０〜ｅｃｃ３）は８個の転送にわたる３２個のビット配置場所から成るが、実際には１６ビットから成るグループにフォーマットされている。１６ビットのパケットの各々は４本のワイヤの各々の上の４個の転送から成り、４個の転送ごとにエラーの訂正を行う。予備のビット配置場所はコマンド・フィールド、データ・フィールド、およびＥＣＣフィールド中のビット群を転送するのに使用する２２本のワイヤのうちの任意のものを論理的に置換するのに使用する。ただし、これを行うのは、これらのワイヤのうちの１本で障害が発生し、それが実質的に無矛盾のものである場合である。障害が実質的に無矛盾であると考えられるのは、それがシステムによって決まる閾値（たとえば当該故障が検出される回数）を超えている場合だけである。単一のビット・レーンの障害はバス・レベルのＥＣＣによって動作中に訂正する。一方、システムのサービスを担当する構成要素（たとえばサービス・プロセッサ）はシステムの運転中に生じる具体性のある（たとえば周期的な、繰り返される、そして、継続的な）障害を修理するために、故障中のセグメントを予備のものに切り替える決断を行う。予備のワイヤを使用するのは直接に接続された２つのアセンブリの間（すなわちメモリ・コントローラ８０２とメモリ・モジュール８０６ａとの間、または、メモリ・モジュール８０６ａ〜８０６ｄのうちの２つのものの間）の故障したセグメントを置換するため、ならびに、何らかの目的（たとえばワイヤの故障、コネクタの故障、はんだ相互接続部の故障、駆動器の故障、もしくは、受信器の故障、または、これらのすべて）に起因してワイヤを置換するためである。１８４個のビット配置場所が利用可能である場合、１７６個はメモリ・モジュール８０６への情報の転送用に利用することができ、それら１７６個のビット配置場所のうち、３２個のビット配置場所はさらにバス転送自身に関するＥＣＣ保護を実現するのに割り当てる。これにより、合計１４４個のビット配置場所がアップストリーム・メモリ・モジュール８０６またはメモリ・コントローラ８０２への情報の転送用に使用しうるようになる。
【００２５】
真に「予備」すなわち「未使用」ではない（すなわち現在の構成において既存の機能を有する）予備のビット・レーンを備えた実施形態はほとんどないけれども、これらの実施形態では、「予備の」ビット・レーンを起動すると、メモリ・システム全体のデータの一貫性が損なわれる。一例として、エラーの検出用に使用するビット群の一部分を、当該ビット群を伝達しているワイヤの再割り当てによって、除去するシステムがあるが、その結果、障害を検出する能力が低下するとともに、検出不能のデータの破損（「無音のデータ破損（silent data corruption）」）が生じる確率がきわめて高くなる（最大２００倍またはそれを超える）。この手法は高レベルのデータの一貫性とシステムの可用性とが求められるアプリケーションの場合には賢明ではないと考えられる。
【００２６】
本発明の典型的な実施形態では、メモリ・コントローラ８０２と第１のメモリ・モジュール８０６との間、および、システム中の相互接続された任意の２つのメモリ・モジュール８０６の間の複数の相互接続部が故障する場合におけるメモリ・システムの耐性を最大化させている。図１４は本発明の典型的な実施形態が使用するセグメント・レベルの予備化を施したカスケード型のモジュール・バス構成を示す。図１４にはメモリ・コントローラ８０２、カスケード型ダウンストリーム・メモリ・バス９０４、カスケード型アップストリーム・メモリ・バス９０２、４個（これよりも多くても少なくても可）のメモリ・モジュール８０６ａ〜８０６ｄ、および、ダウンストリーム・メモリ・バス９０４上の２つのアセンブリごとに一意のワイヤを有する一連の被置換セグメント１４０２を備えたメモリ・システムの簡単化した図が含まれている。
【００２７】
本発明の典型的な実施形態は図１２および図１３に示す予備のワイヤを一意の態様で割り当てうる能力を実現し、アップストリーム・メモリ・バス９０２およびダウンストリーム・メモリ・バス９０４の双方の上にある任意の２つのアセンブリの間で（すなわちメモリ・コントローラ８０２とメモリ・モジュール８０６ａとの間で、あるいは、任意の２つのメモリ・モジュール８０６ａ〜８０６ｄの間で）故障中のセグメントを置換することを可能にするものである。アップストリーム・メモリ・バス９０２およびダウンストリーム・メモリ・バス９０４の上の予備のワイヤには故障中のセグメント群から成る異なる組を割り当てる。これにより、メモリ・システムは延長期間において、当該システムの一部が故障した後であっても、動作を継続することが可能になる。バス・レベルのＥＣＣ（これはビットまたはワイヤの障害の存在下におけるバスの継続動作を可能する）を使用することにより、ダウンストリーム・フレーム（およびアップストリーム・フレーム）中の予備のビット・レーンの利用可能性、ならびに、（同一のカスケード接続されたバス上の他の任意の２つのアセンブリの間でセグメントを置換する能力を保持しながら）任意の２つのアセンブリの間で単一のセグメントを置換する能力、高レベルの信頼性および耐性が得られる。
【００２８】
端から端まで（カスケード・チェーン中のメモリ・コントローラから最後のＤＩＭＭまで）ビット・レーンを置換すると、相互接続の故障を訂正する、より単純な方法が実現する。８個のＤＩＭＭから成るメモリ・チャネルにおいて、セグメント・レベルの予備化を使用すると独立した８つのセグメント置換により最大８個の一意の故障を迂回することが可能になるが、完全なビット・レーンを端から端まで置換してもたった１つの故障しか迂回することができない。
【００２９】
本発明の別の典型的な実施形態は高速クロックを予備化することを含むが、それは故障情報と診断とが、当該クロックが故障中である旨を示す場合である。一般に、クロックの故障は冗長なコネクタ接続を使用することにより既に最小化されている。というのは、多くの場合、コネクタ接続はチャネル中で生じる具体性のある故障を繰り返す原因の大部分を占めているからである。
【００３０】
図１５はセグメント・レベルの予備化を実現するために本発明の典型的な実施形態が使用する多モード型バッファ装置１００２の高レベルの論理フローのブロック図である。多モード型バッファ装置１００２（バッファ・モジュールとも呼ばれる）は任意のセグメント用に一意の予備化を行うのを可能にする４つのバス予備化論理ブロック（１５２６、１５３６、１５３８、１５４０）を備えている。また、バッファ・モジュール１００２はアップストリーム・バスＥＣＣ機能ブロック１５２２とダウンストリーム・バスＥＣＣ機能ブロック１５２０を備えている。これらはバッファ装置１００２を通じて受信または受け渡しをするすべての情報（すなわち信号）を処理して、バスのエラーが存在するか否かを判断するのを可能にしている。アップストリーム・バスＥＣＣ機能ブロック１５２２とダウンストリーム・バスＥＣＣ機能ブロック１５２０はバス・レベルのエラーの検出・訂正コードを使用することにより、バス・レベルの故障の検出と訂正を行う。これにより、故障している特定のセグメントを識別することが可能になる。これに続いて、セグメントの置換を行うことができる。図面下部の左および右の部分にあるブロック（１５２４、１５２８、１５３０、１５３４）は高速バス８０４の受信または駆動に関連付けられている。「アップストリーム」はメモリ・コントローラ８０２の方向に情報を受け渡すバス９０２を指しており、「ダウンストリーム」はメモリ・コントローラ８０２から遠ざけて情報を受け渡すバス９０４を指している。
【００３１】
図１５を参照すると、アップストリーム・メモリ・アセンブリ（すなわちメモリ・モジュール８０６）が出すデータ信号、コマンド信号、アドレス信号、ＥＣＣ信号、およびクロック信号をダウンストリーム・メモリ・バス９０４から受信器モジュール１５２４中に受信する。受信器機能ブロック１５２４はダウンストリーム・メモリ・バス９０４用のマクロとサポート論理を備えているが、本発明の一実施形態は２２ビットの全速力・スレーブ型受信器バス用のサポートを提供している。受信器機能ブロック１５２４はクロック論理・分配機能ブロック１５１８にクロック信号を転送する（たとえば４対１型のクロック信号を生成する）。クロック論理・分配機能ブロック１５１８はパーベイシブ・その他信号１５１０が出すデータ入力も受信する。これらの信号には通常、クロック分配ＰＬＬ、ＢＩＳＴ（built-in self-test:内蔵型自己試験）用の試験入力、プログラム可能なタイミング設定などのための制御情報およびセットアップ情報が含まれている。受信器機能ブロック１５２４はデータ信号、コマンド信号、ＥＣＣ信号、およびアドレス信号をバス予備化論理ブロック１５２６に転送するが、これは位置の変更に合わせて行い、適用可能な場合には、先行するアセンブリに由来する伝送の間に予備のワイヤが使用される際にデータのビット配置に合わせて行う。本発明の典型的な実施形態では、バス予備化論理ブロック１５２６は要すれば、信号の配置をシフトさせるマルチプレクサによって実装する。次いで、元のあるいは順番を入れ替えた信号を別のバス予備化論理ブロック１５３６に入力し、現在のメモリ・アセンブリとダウンストリーム（下流）にあるメモリ・アセンブリとの間に存在する相互接続部の故障の原因をなす信号の配置場所の変更（あるいは要すれば順番の入れ替え）を行う。次いで、元のあるいは順番を入れ替えた信号を駆動器機能ブロック１５２８に入力し、チェーン中にある次のメモリ・モジュール８０６へのダウンストリーム・メモリ・バス９０４を介した転送の用に供する。本発明の典型的な実施形態では、バス予備化論理１５３６はマルチプレクサを用いて実装する。駆動器機能ブロック１５２８はダウンストリーム・メモリ・バス９０４用のマクロとサポート論理を備えているが、本発明の典型的な実施形態は２２ビットの高速・低遅延のカスケード型バス駆動器用のサポートを提供している。
【００３２】
元のあるいは順番を入れ替えた信号をバス予備化論理１５３６に入力することに加え、バス予備化論理１５２６は当該フレーム用にエラーの検出と訂正を行うダウンストリーム・バスＥＣＣ機能ブロック１１２０中への元のあるいは順番を入れ替えた信号の入力も行う。ダウンストリーム・バスＥＣＣ機能ブロック１１２０はダウンストリーム・メモリ・バス９０４から受信する、あるいは、ダウンストリーム・メモリ・バス９０４から多モード型バッファ装置１００２に受け渡す情報をすべて処理してバスのエラーが存在するか否かを判断する。ダウンストリーム・バスＥＣＣ機能ブロック１５２０はバスの信号を分析し、それらが有効であるか否かを判断する。次いで、ダウンストリーム・バスＥＣＣ機能ブロック１５２０は訂正した信号をコマンド・ステート・マシン１５１４に転送する。コマンド・ステート・マシン１５１４はコマンドのデコードまたは競合に付随するエラー・フラグをパーベイシブ・その他機能ブロック１５１０に入力する。ダウンストリーム機能ブロックとアップストリーム機能ブロックはエラー・フラグもしくは（もしあれば）エラー・データまたは双方をパーベイシブ・その他機能ブロック１５１０に提示して、これらのエラーをメモリ・コントローラ、プロセッサ、サービス・プロセッサ、または他のエラー管理ユニットに報告するのを可能にすることも行う。
【００３３】
図１５を参照すると、パーベイシブ・その他機能ブロック１５１０はエラー・フラグもしくはエラー・データまたは双方をメモリ・コントローラ８０２に転送する。チェーン中の各メモリ・モジュール８０６からエラー・フラグもしくはエラー・データまたは双方を収集することにより、メモリ・コントローラ８０２は、この構成における一部の実施形態では付加的な診断が完了しているとしても、さらなる診断を開始することなく、故障中のセグメント（群）を特定しうるようになる。また、故障の回数または故障の種別に対する、設定で選定済みの閾値（たとえば１回、２回、１０回、または２０回）に到達したら、パーベイシブ・その他機能ブロック１５１０は通常、メモリ・コントローラ８０２からの入力に応答して、故障中のセグメントを予備のワイヤで置換する。本発明の典型的な実施形態では、４個の転送から成るグループごとにエラーの検出と訂正を行うから、デコードして開始すべきオペレーションを、（１つのフレームを構成する）８個の転送のうちの半分が終了したら受信することができる。エラーの検出と訂正はダウンストリーム・メモリ・バス９０４からメモリ・モジュール８０６中に受け渡されるすべての信号に対して、特定のメモリ・モジュール８０６が処理することになっているか否かとは無関係に行う。訂正済み信号中のデータ・ビットはダウンストリーム・バスＥＣＣ機能ブロック１５２０が書き込みデータ・バッファ１５１２に入力する。
【００３４】
コマンド・ステート・マシン１５１４は訂正済みの信号（データ信号、コマンド信号、およびアドレス信号を含む）がメモリ・モジュール８０６に宛てられており、当該モジュールが処理することになっているか否かの判断も行う。訂正済みの信号がメモリ・モジュール８０６に宛てられている場合、コマンド・ステート・マシン１５１４はとるべきアクションを決め、ＤＲＡＭアクション、ライト・バッファ・アクション、リード・バッファ・アクション、または、それらの組み合わせを開始する。ライト・データ・バッファ１５１４はメモリ・データ・インターフェース１５０６にデータ信号を転送し、コマンド・ステート・マシン１５１４は付随するアドレス信号とコマンド信号をＤＲＡＭの使用に適合させてメモリ・コマンド・インターフェース１５０８に転送する。上述したように、右側のコマンド１１０６は通常、右側アドレス・コマンド・バス１１０２を介してメモリ・モジュール８０６の右側に転送し、左側のコマンド１１０２は左側アドレス・コマンド・バス１１０６を介してメモリ・モジュール８０６の左側に転送する。ただし、その他のモジュール構成が存在しうる。
【００３５】
コントローラ８０２に転送されるデータ信号はメモリ・モジュール８０６がコマンド（たとえばリード（読み取り）コマンド）を実行した後、メモリ装置の「リード（読み取り）」タイミングに適合しるように、リード・データ・バッファ１５１６に一時的に格納する。リード・データ・バッファ１５１６は読み取ったデータをアップストリーム・バスＥＣＣモジュール１５２２に転送する。アップストリーム・バスＥＣＣ機能ブロック１５２２はリード・データ・バッファ１５１６中の信号用にチェック・ビットを生成する。このチェック・ビットとリード・データ・バッファ１５１６中の信号とをアップストリーム・データ多重化機能ブロック１５３２に入力する。アップストリーム・データ多重化機能ブロック１５３２はアップストリーム・メモリ・バス９０２上のデータをバス予備化論理１５３８と駆動器機能ブロック１５３０とを介してマージする。要すれば、バス予備化論理１５３８は現在のメモリ・モジュール８０６と上流にある受信中のモジュール（あるいはメモリ・コントローラ）と間のセグメントの故障の原因をなす信号をリダイレクトする。駆動器機能ブロック１５３０は元のあるいは順番を入れ替えた信号をアップストリーム・メモリ・バス９０２を介してチェーン中の次のアセンブリ（すなわちメモリ・モジュール８０６またはメモリ・コントローラ８０２）に転送する。本発明の典型的な実施形態では、バス予備化論理１５３８は信号をシフトさせるマルチプレクサを用いて実装する。駆動器機能ブロック１５３０はアップストリーム・メモリ・バス９０２用のマクロとサポート論理を備えているが、本発明の典型的な実施形態は２３ビットの高速低遅延カスケード型駆動器バス用のサポートを提供している。
【００３６】
アップストリーム・メモリ・バス９０２からは任意のアップストリーム・メモリ・モジュール８０６中の任意のアップストリーム多モード型バッファ装置１００２もデータ信号、クロック信号、およびＥＣＣ信号を受信する。これらの信号は次のメモリ・モジュール８０６またはメモリ・コントローラ８０２に渡し上げる必要がある。図１５を参照すると、ダウンストリーム・アセンブリ（すなわちメモリ・モジュール８０６）が出すデータ信号、ＥＣＣ信号、およびクロック信号はアップストリーム・メモリ・バス９０２上の受信器モジュール１５３４中に受信する。受信器機能ブロック１５３４はアップストリーム・メモリ・バス９０２用のマクロとサポート論理を備えているが、本発明の典型的な実施形態は２３ビットの高速・スレーブ型の受信器バス用のサポートを含んでいる。受信器モジュール１５３４はデータ信号とＥＣＣ信号をバス予備化モジュール１５４０を通じてアップストリーム・データ多重化機能ブロック１５３２に、次いでバス予備化論理ブロック１５３８に渡す。これらの信号は駆動器機能ブロック１５３０を介してアップストリーム・メモリ・バス９０２に転送する。
【００３７】
データ信号とＥＣＣ信号をアップストリーム・データ多重化機能ブロック１５３２に渡すのに加え、被訂正バス予備化機能ブロック１５４０は元のあるいは順番を入れ替えたデータ信号とＥＣＣ信号をアップストリーム・バスＥＣＣ機能ブロック１５２２に入力し、当該フレーム用にエラーを検出して訂正することも行う。アップストリーム・バスＥＣＣ機能ブロック１５２２はアップストリーム・メモリ・バス９０２から受信する、あるいはアップストリーム・メモリ・バス９０２からバッファ・モジュール１００２に受け渡すすべての情報を処理して、バスのエラーが存在するか否かを判断する。アップストリーム・バスＥＣＣ機能ブロック１５２２はデータ信号とＥＣＣ信号を分析して、それらが有効であるか否かを判断する。次いで、アップストリーム・バスＥＣＣ機能ブロック１５２２はエラー・フラグもしくはエラー・データまたは双方をすべてパーベイシブ・その他機能ブロック１５１０に転送し、メモリ・コントローラ８０２への転送の用に供する。さらに、故障の回数または種別用の事前定義の閾値を超えたら、パーベイシブ・その他機能ブロック１５１０は通常、メモリ・コントローラ８０２の指示に応答して、故障中のセグメントを予備のセグメントで置換する。
【００３８】
メモリ・コントローラ８０２−メモリ・モジュール８０６間のバス、または、メモリ・モジュール８０６−メモリ・モジュール８０６間のバスの各々は、ダウンストリーム・フレーム１２０２およびアップストリーム・フレーム１３０２中に定義された、予備の信号によって置換される一意のビット・レーンのセグメントを有する。図１５のブロック図は本発明の典型的な実施形態が使用するバッファ・モジュール１００２の一実現例である。本発明の範囲から逸脱することなく、他の実現例が可能である。
【００３９】
カスケード型のメモリ・システムにおいて低遅延を達成するために、本発明の典型的な実施形態は予備ワイヤの置換を促進しうるように設計した機構を使用している。バス中の任意の故障セグメントを置換するのに予備信号を使用するのではなく、バスの一部分を１ビット位置だけシフトさせ、多数の選択可能な入力を備えた多重化機能を必要としない方法で予備信号の使用を開始しうるようにしている。駆動器バスおよび受信器バスの各１ビットについて単一の２対１型のセレクタを使用している。予備化オペレーションを実行するとき、置換すべきセグメントの所在をレジスタにロードする。この値は各ビット用に選択したマルチプレクサ中にエンコードした優先度である。（バス予備化論理モジュール１５３６、１５３８が実行する）送信側では、被置換セグメントよりも上位のビットをそれらの元の位置にシフトしなおす。（バス予備化論理・モジュール１５２６、１５４０が実行する）受信側では、被置換セグメントよりも上位のビットをそれらの元の位置にシフトしなおす。
【００４０】
本発明の典型的な実施形態はセグメント・レベルの予備化を実現するものである。ビットまたはワイヤの障害の存在下における継続的な動作を可能にするバス・レベルのＥＣＣの使用を通じて、ダウンストリーム・フレーム（およびアップストリーム・フレーム）において予備のビット・レーンが利用可能になること、および、任意の２つのアセンブリの間で、同一のカスケード型バス上において別の任意の２つのアセンブリの間でセグメントを置換する能力を保持しながら、共通のセグメントを置換する能力とによって、メモリ・システムの信頼性と耐性が向上する。バス・レベルのＥＣＣを使用することにより、コントローラは一般に診断ツールを実行することなく、故障したセグメントを特定しうるようになる。これにより、メモリ・システム中の相互接続部の故障からの復旧時間が短くなるとともに、頻繁には生じない故障セグメントを正確に特定する確率が高くなる。
【００４１】
上述したように、本発明の実施形態はコンピュータによって実現されるプロセス、およびそれらのプロセスを実行する装置の形態で実現することができる。また、本発明の実施形態は有形の媒体（たとえばフロッピー（Ｒ）ディスケット、ＣＤ−ＲＯＭ、ハード・ディスク駆動装置、または、任意の他のコンピュータ読み取り可能な記憶媒体）中に記録した命令群を含むコンピュータ・プログラム・コードであって、当該コンピュータ・プログラム・コードをコンピュータにロードして実行すると、当該コンピュータは本発明を実施する装置になる、コンピュータ・プログラム・コードの形態でも実現することができる。さらに、本発明はコンピュータ・プログラム・コードの形態でも実現することができるが、その場合、たとえば記憶媒体中に格納するものであるか、あるいは、コンピュータにロードし、もしくは、コンピュータが実行し、または、双方を行うものであるか、あるいは、何らかの伝送媒体（たとえば電気的な配線またはケーブル、光ファイバ、電磁波など）中を伝送するものであるかとは無関係である。汎用マイクロプロセッサ上に実装すると、当該コンピュータ・プログラム・コードのセグメント群は特定の論理回路を形成するように当該マイクロプロセッサを構成する。
【００４２】
以上、典型的な実施形態を参照して本発明を記述したが、本発明の範囲を逸脱することなく、様々な変更をなしうるとともに、それらの構成要素を均等物で置換しうる、ということは当業者が理解しうる。また、本発明の本質的な範囲を逸脱することなく、特定の状況または材料を本発明の教示に適応させる多くの変更をなすことができる。したがって、本発明は本発明を実施するのに最良の形態であると考えられるものとして開示した特定の実施形態に限定されない。本発明は特許請求の範囲の内に含まれる実施形態をすべて含むことができる。さらに、用語「第１の」や「第２の」などを使用しているが、それらは順序を示すものでも重要性を示すものでもない。そうではなく、用語「第１の」や「第２の」などは１つの構成要素を他の構成要素から区別するために使用されている。
【図面の簡単な説明】
【００４３】
【図１】個別のポイント・ツー・ポイント型リンクを介して２個のバッファ付きメモリ・アセンブリに接続された従来技術に係るメモリ・コントローラを示す図である。
【図２】バッファ装置を備えた従来技術に係る同期型メモリ・モジュールを示す図である。
【図３】登録済みＤＩＭＭを使用する従来技術に係るメモリ・システムを示す図である。
【図４】ポイント・ツー・ポイント型チャネル、登録済みＤＩＭＭ、および２：１型バス速度増倍器を備えた従来技術に係るメモリ・システムを示す図である。
【図５】マルチドロップ型メモリ「スタブ」バスを使用する従来技術に係るメモリ構成を示す図である。
【図６】そうでない場合には複数のポートが必要になるマルチポイント型の通信構成における従来技術に係るデイジー・チェーン構成を示す図である。
【図７】メモリ・コントローラとメモリ・モジュールとの間における従来技術に係るデイジー・チェーン接続を示す図である。
【図８】本発明の典型的な実施形態が使用するカスケード型のメモリ構成を示す図てある。
【図９】本発明の典型的な実施形態が使用する、カスケード接続されたメモリ・モジュールと一方向性のバスとを備えたメモリ構成を示す図である。
【図１０】本発明の典型的な実施形態が使用するバッファ付きメモリ・モジュールを示す図である。
【図１１】本発明の典型的な実施形態が使用する、バッファ付きモジュールの配線システムを示す図である。
【図１２】本発明の典型的な実施形態が使用するダウンストリーム・フレームのフォーマットを示す図である。
【図１３】本発明の典型的な実施形態が使用するアップストリーム・フレームのフォーマットを示す図である。
【図１４】本発明の典型的な実施形態が使用するセグメント・レベルの予備化を施したカスケード型のモジュール・バス構成を示す図である。
【図１５】本発明の典型的な実施形態が使用する、バッファ付きチップの高レベルの論理フローのブロック図である。
【符号の説明】
【００４４】
１    １次ステーション
２Ａ  ２次ステーション
２Ｂ  ２次ステーション
２Ｃ  ２次ステーション
２Ｄ  ２次ステーション
２Ｅ  ２次ステーション
２Ｆ  ２次ステーション
３Ａ  モデム
３Ｂ  モデム
１０  メモリ・システム
１２  バッファ
２０  メモリ・コントローラ
３０  クロック・バッファ
４０２  メモリ・コントローラ
４０６  バス・コンバータ
４０８  メモリ・バス
４１０  少なくとも１つの登録済みＤＩＭＭ
８０２  メモリ・コントローラ
８０４  約５０本のワイヤ
８０６  約５０本のワイヤ
９０２  アップストリーム
９０４  ダウンストリーム
１００２  バッファ
１００６  前面図
１００８  背面図
１３０２  予備ビット
１３０４  Ｅ：ＥＣＣチェック・ビット
１３０６  Ｄ：書き込みデータ・ビット
１３０８  Ｃ：コマンド・ビット
１４０２  被置換セグメント
１５０６  メモリ−データ・インターフェース
１５０８  メモリ−コード・インターフェース
１５１０  パーベイシブ・その他
１５１２  書き込みデータ・バッファ（４個、アドレス可能）
１５１４  コマンド・ステート・マシン
１５１６  読み取りデータ・バッファ（２個、フロー制御付き）
１５１８  クロック論理・分配
１５２０  ダウンストリーム・バスＥＣＣ（受け渡し信号用に並列）
１５２２  アップストリーム・バスＥＣＣ（受け渡し信号用に並列）
１５２４  受信器
１５２６  バス予備化
１５２８  駆動器
１５３０  駆動器
１５３２  アップストリーム・データ多重化
１５３４  受信器
１５３６  バス予備化
１５４０  バス予備化
【図１】
2006048688.tif 000003
【図２】
2006048688.tif 000004
【図３】
2006048688.tif 000005
【図４】
2006048688.tif 000006
【図５】
2006048688.tif 000007
【図６】
2006048688.tif 000008
【図７】
2006048688.tif 000009
【図８】
2006048688.tif 000010
【図９】
2006048688.tif 000011
【図１０】
2006048688.tif 000012
【図１１】
2006048688.tif 000013
【図１２】
2006048688.tif 000014
【図１３】
2006048688.tif 000015
【図１４】
2006048688.tif 000016
【図１５】
2006048688.tif 000017