(57)【特許請求の範囲】
【請求項１】
第１のメモリ・モジュールであって、
データを記憶するための複数のアドレス指定可能な記憶位置と、
前記アドレス指定可能な記憶位置に記憶されているデータにアクセスするデータ・アクセス・コマンドを受信する第１のインターフェースと、
第１のモード及び第２のモードを含む複数の動作モードをサポートする制御ロジックと、
を備え、
前記第１の動作モードにおいて、前記第１のインターフェースにおいて受信された少なくともいくつかの前記データ・アクセス・コマンドの複数のコピーを再送信し、前記各複数のコピーは、複数の第２のインターフェースのそれぞれを使用して前記第１のメモリ・モジュール以外の１つ又は複数の各メモリ・モジュールに送信され、
前記第２の動作モードにおいて、前記制御ロジックは、前記第１のインターフェースによって受信された前記各データ・アクセス・コマンドが前記第１のメモリ・モジュール内のデータ記憶位置をアドレス指定しているかどうかを判定し、（ａ）前記データ・アクセス・コマンドが前記第１のメモリ・モジュール内のデータ記憶位置をアドレス指定している場合には、前記第１のメモリ・モジュール内の対応するデータ記憶位置にアクセスし、（ｂ）前記データ・アクセス・コマンドが前記第１のメモリ・モジュール内のデータ記憶位置をアドレス指定していない場合には、前記データ・アクセス・コマンドの単一のコピーを別のメモリ・モジュールに再送信し、
当該メモリ・モジュールの第１のコンポーネント・セットは、前記第１の動作モードでは、第１のクロック周波数で動作し、前記第２の動作モードでは、前記第１のクロック周波数よりも高い第２のクロック周波数で動作する、
第１のメモリ・モジュール。
【請求項２】
前記第１の動作モードにおいて、前記第１のメモリ・モジュールは、前記第１のインターフェースにおいて受信された前記各データ・アクセス・コマンドの複数のコピーを再送信し、前記各複数のコピーは、複数の前記第２のインターフェースのそれぞれを使用して前記第１のメモリ・モジュール以外の１つ又は複数の各メモリ・モジュールに送信される、請求項１に記載の第１のメモリ・モジュール。
【請求項３】
前記第２の動作モードにおいて、前記第１のメモリ・モジュールは、メモリ・モジュール・デイジー・チェーン構成で使用され、前記メモリ・モジュール・デイジー・チェーン構成において、第１のＩ／Ｏポート・セットは、メモリ・モジュール・デイジー・チェーンへのアクセスを制御するアクセス制御モジュールのうちの１つからアウトバウンド・データを受信し、前記デイジー・チェーンは、前記第１のメモリ・モジュールと、前記メモリ・モジュール・デイジー・チェーン内の前のメモリ・モジュールと、を含み、第２のＩ／Ｏポート・セットは、前記第１のＩ／Ｏポート・セットにおいて受信されたアウトバウンド・データを前記メモリ・モジュール・デイジー・チェーン内の次のメモリ・モジュールに再送信し、第３のＩ／Ｏポート・セットは、前記メモリ・モジュール・デイジー・チェーン内の前記次のメモリ・モジュールからインバウンド・データを受信し、第４のＩ／Ｏポート・セットは、前記第１のＩ／Ｏポート・セットにおいて受信されたインバウンド・データを再送信し、前記第１のメモリ・モジュール内から発信されるインバウンド・データを、前記アクセス制御モジュールと、前記メモリ・モジュール・デイジー・チェーン内の前記前のメモリ・モジュールのうちの一方に送信し、前記第１のセットは、前記第２のセットと同数のポートを有し、前記第３のセットは、前記第４のセットと同数のポートを有する、請求項１に記載の第１のメモリ・モジュール。
【請求項４】
前記第１の動作モードにおいて、前記第１のインターフェースにおいて受信された前記各データ・アクセス・コマンドは、メモリ・モジュール・セット内のデータ位置にアクセスし、前記セットは、複数のメモリ・モジュールを収容し、前記セットは、前記第１のメモリ・モジュールと、前記第２のインターフェースから前記データ・アクセス・コマンドのコピーが再送信される各メモリ・モジュールと、を含む、請求項１に記載の第１のメモリ・モジュール。
【請求項５】
前記第２のクロック周波数は、前記第１のクロック周波数のＭ倍であり、Ｍは整数である、請求項１に記載の第１のメモリ・モジュール。
【請求項６】
前記第１及び第２のクロック周波数は、外部クロック信号から導出され、前記外部クロック信号は、整数Ｎで割ると前記第１のクロック周波数が得られ、整数Ｍで割ると前記第２のクロック周波数が得られ、Ｍは１以上であり、ＮはＭよりも大きい、請求項１に記載の第１のメモリ・モジュール。
【請求項７】
前記第１のコンポーネント・セットは、少なくとも１つのＩ／Ｏポートを含む、請求項１に記載の第１のメモリ・モジュール。
【請求項８】
前記第１のコンポーネント・セットの前記少なくとも１つのＩ／Ｏポートは、前記第１のメモリ・モジュール内の記憶位置から読み出されたデータを前記データ・アクセス・コマンドに応答してアクセス制御モジュールに送信するのに使用される、請求項７に記載の第１のメモリ・モジュール。
【請求項９】
前記第１の動作モードでは、前記第１のメモリ・モジュール内の記憶位置から読み出されたデータを前記データ・アクセス・コマンドに応答してアクセス制御モジュールに送信するのに第１のＩ／Ｏポート・セットが使用され、
前記第２の動作モードでは、前記第１のメモリ・モジュール内の記憶位置から読み出されたデータを前記データ・アクセス・コマンドに応答してアクセス制御モジュールに送信するのに第２のＩ／Ｏポート・セットが使用され、
前記第１のＩ／Ｏポート・セットは、少なくとも１つのＩ／Ｏポートを収容し、前記第２のＩ／Ｏポート・セットは、前記第１のＩ／Ｏポート・セットよりも大きい数のＩ／Ｏポートを収容する、
請求項１に記載の第１のメモリ・モジュール。
【請求項１０】
前記第１の動作モードでは、前記第１のメモリ・モジュール内の記憶位置から読み出されたデータを前記データ・アクセス・コマンドに応答してアクセス制御モジュールに送信するのに第１のＩ／Ｏポート・セットが使用され、前記第１のＩ／Ｏポート・セットは、アクセス可能なデータ単位を前記データ・アクセス・コマンドに応答して送信するのにＮ個のバス・サイクルを必要とし、
前記第２の動作モードでは、前記第１のメモリ・モジュール内の記憶位置から読み出されたデータを前記データ・アクセス・コマンドに応答してアクセス制御モジュールに送信するのに第２のＩ／Ｏポート・セットが使用され、前記第２のＩ／Ｏポート・セットは、アクセス可能なデータ単位を前記データ・アクセス・コマンドに応答して送信するのにＭ個のバス・サイクルを必要とし、
Ｎは１以上であり、ＭはＮよりも大きい、
請求項１に記載の第１のメモリ・モジュール。
【請求項１１】
前記第１の動作モードにおいて、前記第１のインターフェースは、前記第１のメモリ・モジュールと前記データ・アクセス・コマンドがそこから受信されるデバイスとを接続する２地点間通信リンクと結合され、
前記第１の動作モードにおいて、前記各第２のインターフェースは、前記第１のメモリ・モジュールと他の各メモリ・モジュールとを接続する各２地点間通信リンクと結合される、
請求項１に記載の第１のメモリ・モジュール。
【請求項１２】
前記第１の動作モードにおいて、前記第１のインターフェースは、データ・アクセス・コマンドの各部分をＮ個の各後続バス・サイクル内に受信し、Ｎは１よりも大きく、
前記第１の動作モードにおいて、前記各第２のインターフェースは、前記データ・アクセス・コマンドの前記各部分を、Ｍ個のバス・サイクルの遅延後に、Ｎ個の各後続バス・サイクル内に再送信し、１≦Ｍ＜Ｎである、
請求項１に記載の第１のメモリ・モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル・データ処理ハードウェアに関するものであり、特にメモリ・システムの設計及び動作、ならびにデジタル・データ処理システム内のメモリ相互接続に関するものである。
【背景技術】
【０００２】
２０世紀後半に情報革命として知られる現象が始まった。情報革命は他のどの事象又は機械よりも広範な歴史的発展であるが、情報革命を象徴するデバイスを１つ挙げるなら、デジタル電子コンピュータが最たるものであろう。コンピュータ・システムの発達は正に革命的なものである。コンピュータ・システムの成長は年を追う毎に加速し、記憶データ量が増大し、それらのユーザに提供される用途も益々拡大している。
【０００３】
現代のコンピュータ・システムは、典型的には１つ又は複数の中央演算処理装置（ＣＰＵ）と、情報の記憶、検索、及び転送に必要となる通信バスやメモリのような支援ハードウェアと、を備える。また、外部との通信に必要となる入出力コントローラやストレージ・コントローラのようなハードウェア、及びそれらのハードウェアに取り付けられるキーボード、モニタ、テープ・ドライブ、ディスク・ドライブ、ネットワークと結合される通信回線等のデバイスも含む。ＣＰＵはシステムの心臓部となる。ＣＰＵは、コンピュータ・プログラムを含む命令を実行し、他のシステム・コンポーネントの動作を指示する。
【０００４】
コンピュータのハードウェアから見ると、殆どのシステムは基本的には同じ動作をする。プロセッサは、演算、論理比較、ある位置から別の位置へのデータ移動といったごく単純な１組の限られた処理しか実行することができない。しかし、各処理は非常に迅速に実行される。これらの膨大な数の単純処理をコンピュータに実行させるプログラムは、コンピュータが何らかの高度な処理を実行しているように錯覚させる。コンピュータ・システムの新しい能力又は改善された能力としてユーザに知覚されるようにするには、実質的に同一のごく単純な１組の処理を遥かに速い処理速度で実行することによって実現可能となる。したがって、コンピュータ・システムの継続的な改良には処理速度の向上が絶えず必要とされる。
【０００５】
コンピュータのＣＰＵは、そのコンピュータがアドレス指定可能なメイン・メモリに記憶されているデータに働きかける。メモリは、プロセッサ内で実行される命令と、それらの命令によって操作されるデータとを記憶する。動作中、プロセッサはメモリ内の命令及び他のデータに絶えずアクセスする。それらの命令及びデータがなければ、プロセッサは有用な作業を実行することができない。メモリ・サブシステムの設計及びその動作速度は、コンピュータ・システム全体の性能を決める上で極めて重要な問題である。
【０００６】
メモリは、典型的には１組の集積回路モジュールの形で実現される。メモリ・アクセスに必要となる時間は、メモリ・モジュール自体の動作速度だけでなく、プロセッサとメモリとの間の経路速度にも依存する。コンピュータが複雑化するに従って、このような経路はアクセス時間の大部分を消費するようになっている。初期のコンピュータは単一のプロセッサと比較的小さいメモリしか有しておらず、プロセッサとメモリとの間の経路は相対的に直接的なものであった。現代の大規模システムは、システムのデータ要件をサポートするために、典型的には複数のプロセッサと、複数レベルのキャッシュと、複雑なアドレス指定メカニズムと、大型のメイン・メモリと、を収容する。これらのシステムでは、すべてのプロセッサからすべてのメモリ・モジュールに至る直接的な経路を敷設することはとても不可能である。様々なシステム・コンポーネント間のデータ移動を支援するために複雑なバス構造が用いられる。多くの場合、データはプロセッサと実際のメモリ・モジュールとの間のいくつかの構造を通過しなければならない。プロセッサ数及びメモリ・サイズが増加するに従って、これらの問題は更に深刻化する。
【０００７】
製造上のスケール・メリットを実現し、コンピューティング・コストを低減するために、集積回路メモリ・モジュールは、外部インターフェース、メモリ容量、及び他のパラメータが標準化されたコモディティ・アイテムとなっている。メモリにアクセスするメモリ・コントローラ、バス、リピータ等の他のコンピュータ・システム・コンポーネントは、これらの標準化されたメモリ・チップと連動するように設計される。標準化では、外部インターフェース設計のいくつかの側面をある期間の間固定する必要が生じるが、内部設計の改善が見込まれる可能性がある。設計が固定される一方で、技術的能力ならびにコンピュータ業界の製品需要は引き続き拡大していくだろう。現行の技術水準及び当業界の要求により適した標準向けに設計された新世代のメモリ・チップの登場により、このような能力の拡大及び期待は、いつしか現実のものとなるだろう。
【０００８】
標準化メモリ・モジュールの設計は、様々なコンピュータ・アーキテクチャ及び用途のうちの任意のアーキテクチャ及び用途向けに最適化することができる。シングル・ユーザ・デスクトップやラップトップのような高容量の小型汎用コンピュータ・システム、及び一般にローエンド・システムと呼ばれるゲーム・システムやビデオ・システム等の専用デバイスにより、将来の需要は大幅に高まることが期待される。いわゆる「メインフレーム」・コンピュータ・システム及び他の大規模システムの製造はこれからも続いていくが、全体のメモリ・チップ需要の比較的小さい割合を占めることになるだろう。したがって、将来のメモリ・モジュール標準は、ローエンドの高容量市場のニーズによって決定され、その市場特有のデバイス向けに最適化されることになる。
【０００９】
将来の標準化メモリ・モジュールの設計がローエンド・システム向けに最適化されるとすれば、それらのモジュールを設計パラメータが異なる大規模システムで使用する際は非効率となる可能性がある。大規模システムでの使用向けに別個のメモリ・モジュール・セットを設計することも可能であるが、その場合は、高容量の標準化メモリ・モジュールを使用することによって得られるスケール・メリットが失われ、システム・サイズの増加によりコストが大幅に増加することになる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
標準化メモリ・モジュールを広範なシステムで使用すると同時に、効率性を不当に損なうことなく様々なタイプのシステムの動作要件を満足することが可能となる、改良型メモリ・サブシステム設計技法が必要とされている。
【課題を解決するための手段】
【００１１】
メモリ・モジュールは、データ・アクセス・コマンドを受信する第１のインターフェースと、データ・アクセス・コマンドを他のメモリ・モジュールに再送信し、受信されたデータ・アクセス・コマンドの複数のコピーを他の複数のメモリ・モジュールに伝搬させる第２のインターフェースと、を含む。
【００１２】
好ましい実施形態において、前記メモリ・モジュールは、高容量メモリ・サブシステムでの使用が意図されており、フル周波数及びバス幅で動作する少なくとも１つのメモリ・チップ・バスを有するメモリ・コントローラを備え、前記メモリ・コントローラは、デイジー・チェーン構成の複数のハブ再駆動チップと結合され、各ハブ再駆動チップは、チェーン内の次のハブ再駆動チップとフル周波数及びバス幅で通信する。各ハブ再駆動チップはそれぞれ、インターリーブ・データを記憶する少なくとも１つのバッファ・メモリ・チップ・クラスタをサポートし、前記クラスタは、少なくとも１つのツリー内に配置される。コマンド・データ及び書き込みデータは、前記ツリーの上から順番に伝搬され、チップ数は、前記ツリー内の後続レベルに進むほど増加する。前記メモリ・チップは、フル・バス幅／フル・バス周波数モードのデイジー・チェーン構成（ローエンド・システムでは典型的であり得る）での動作に加えて、好ましい実施形態のインターリーブ・ツリー構成（ｉｎｔｅｒｌｅａｖｅｄ  ｔｒｅｅ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）で使用される、バス幅又はバス周波数あるいはその両方が低減された少なくとも１つの別個のモードでの動作向けに設計されることが好ましい。
【００１３】
好ましいことに、前記メモリ・モジュールは、アーキテクチャ上の様々な特徴を有し、本明細書及び様々な関連出願に記載される高容量インターリーブ・ツリー構成で使用される。しかしながら、本発明は、関連出願の各請求項に記載される特徴を利用した実装環境に必ずしも限定されるものではなく、その代わりに、関連出願の特徴の一部又は全部を使用しないメモリ・モジュール本発明と矛盾しない形で構築することも可能であることを理解していただきたい。
【００１４】
好ましい実施形態に係るインターリーブ・ツリー構成でのデイジー・チェーン接続（ｄａｉｓｙ  ｃｈａｉｎｉｎｇ）に使用可能なメモリ・チップを構成することにより、カスタム・メモリ・チップを使用することなく、メモリ・コントローラによってサポートされる限られた数のバスでより大容量のメモリを構成することが可能となる。また、このインターリーブ構成では、（必ずしもすべてではないが）多くのバスのバス動作周波数を減少させるとともに、実際に使用されるＩ／Ｏポート数を減少させることにより、電力の大幅な節約が実現される可能性がある。
【００１５】
本発明の構造及び動作の詳細は、添付図面を参照すれば最も良く理解されるだろう。各図面において同様の参照番号は同様の部分を指す。
【図面の簡単な説明】
【００１６】
【図１】本発明の好ましい実施形態に係るバッファ・メモリ・チップを有するメモリ・サブシステムを利用したコンピュータ・システムの主要ハードウェア・コンポーネントを示す高水準ブロック図である。
【図２】メモリ・サブシステムがバッファ・メモリ・チップのデイジー・チェーン構成を使用して構成されるコンピュータ・システムの典型的なメモリ・サブシステムの主要ハードウェア・コンポーネントを示すブロック図である。
【図３】好ましい実施形態に係るバッファ・メモリ・チップのいくつかの主要内部コンポーネントを示す図である。
【図４】ハブ及びクラスタを使用して構成される本発明の好ましい実施形態に係るメモリ・サブシステムを示す高水準ブロック図である。
【図５】好ましい実施形態のいくつかの変形例に係る、ハブと関連するメモリ・チップ・クラスタとの間のリンクをより詳細に示すブロック図である。
【図６】好ましい実施形態の第１の変形例に係る、サブ・クラスタ内のメモリ・チップと関連するハブとの間のデータ経路の構成をより詳細に示す図である。
【図７】好ましい実施形態の第２の変形例に係る、サブ・クラスタ内のメモリ・チップと関連するハブとの間のデータ経路の構成をより詳細に示す図である。
【図８】好ましい実施形態の第３の変形例に係る、サブ・クラスタ内のメモリ・チップと関連するハブとの間のデータ経路の構成をより詳細に示す図である。
【図９】好ましい実施形態に係る１つ又は複数のメモリ・チップ・クラスタをサポートするハブのいくつかの主要内部コンポーネントを示すブロック図である。
【発明を実施するための形態】
【００１７】
（将来のメモリ・チップ概要）
ローエンド・システムは、典型的には広いメモリ帯域幅、即ち所与の時間内に大量のメモリ読み出し及び書き込みを行う能力を必要とするが、必ずしも大きいメモリ容量を必要とするわけではない。これらの要件を満たすために、本願の発明者らは、バッファ・メモリ・チップと、メモリ・チップ・チェーンをサポートするメモリ・チップ・アーキテクチャとを考案した。かかるアーキテクチャは、同一出願人による以下の同時係属出願に記載されている。２００６年７月２６日に出願された米国特許出願第１１／４５９，９５６号（「Daisy Chained MemorySystem」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９５７号（「Memory System HavingSelf Timed Daisy Chained Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９６９号（「Carrier Having DaisyChained Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９８３号（「Carrier Having DaisyChain of Self Timed Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９９４号（「Daisy Chainable Memory Chip」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９９７号（「Daisy Chainable SelfTimed Memory Chip」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９７４号（「Computer System HavingDaisy Chained Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９６８号（「Computer System Having DaisyChained Self Timed Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９６６号（「Memory Controller for DaisyChained Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９６１号（「Memory Controller forDaisy Chained Self Timed Memory Chips」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９４３号（「Memory Chip Having anApportionable Data Bus」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９４７号（「Self Timed Memory ChipHaving an Apportionable Data Bus」）、２００６年７月２６日に出願された米国特許出願第１１／４５９，９５５号（「Computer System Having anApportionable Data Bus」）、及び２００６年７月２６日に出願された米国特許出願第１１／４５９，９５９号（「Memory System Havingan Apportionable Data Bus and Daisy Chained Memory Chips」）。
【００１８】
上記の米国出願に記載されるように、バッファ・メモリ・チップはデイジー・チェーン構成での使用向けに設計されている。本メモリ・チップは、２組の高周波通信インターフェースを有する。各インターフェースは、それぞれ２地点間通信リンク（バス）を介して他のメモリ・チップ又はメモリ・コントローラに接続することが意図されている。一方の２地点間リンクは、チップと、デイジー・チェーン上の次のアップストリーム・デバイス（別のチップであることもメモリ・コントローラであることもある）とを接続する。他方の２地点間リンクは、チップと、次のダウンストリーム・メモリ・チップ（存在する場合）とを接続する。２地点間リンクのデイジー・チェーン接続は、従来のメモリ・コントローラとメモリ・チップとの間のバッファ・チップの必要性を解消し、すべてのリンクが２地点間接続となることを保証し、したがってより高い周波数のバス動作を容易にする。
【００１９】
各リンクは複数のデータ回線を有するが、単一のコマンド又はデータ・ワードの送信に複数のバス・サイクルが必要とされる点で直列的に動作する。各チップ内のバッファは、データ・ワード及びコマンドの一部分がバスを介して送信されるときにそれらを一時的に記憶する。
【００２０】
デイジー・チェーン設計は、メモリ・チップ内にデータを記憶するのに使用される内部的なメモリ技術に何ら制約を課すものではない。今後は、スタティックＲＡＭもその可能性があるが、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）が最も一般に使用されることが期待される。更に、将来のメモリ・ストレージ技術の改良あるいはメモリ・ストレージに関する新しい技術はすべて、全体として本明細書に記載されるバッファ・メモリ・チップ構成の基本フレームワークに包含される可能性がある。
【００２１】
（詳細な説明）
ここで、いくつかの図面にわたって同様の参照番号が同様の部分を指す添付図面を参照する。図１は、好ましい実施形態に係るバッファ・メモリ・チップを利用したメモリ・サブシステムを有するコンピュータ・システム１００の主要ハードウェア・コンポーネントの高水準図である。コンピュータ・システム１００の主要コンポーネントは、１つ又は複数の中央演算処理装置（ＣＰＵ）１０１Ａ〜１０１Ｄと、メイン・メモリ１０２と、キャッシュ・メモリ１０６と、端末インターフェース１１１と、ストレージ・インターフェース１１２と、Ｉ／Ｏデバイス・インターフェース１１３と、通信／ネットワーク・インターフェース１１４と、を含み、これらはすべて内部コンポーネント通信用にバス１０３、１０４、及びＩ／Ｏバス・インターフェース１０５を介して互いに結合されている。
【００２２】
システム１００は、１つ又は複数の汎用プログラマブル中央演算処理装置（ＣＰＵ）１０１Ａ〜１０１Ｄを収容し、本明細書ではこれらをまとめて「フィーチャ（ｆｅａｔｕｒｅ）１０１」と呼ぶ。システム１００は、好ましい実施形態では比較的大規模なシステムに典型的な複数のプロセッサを収容するが、別の方法では単一のＣＰＵシステムとすることもできる。各プロセッサ１０１は、メイン・メモリ１０２に記憶されている命令を実行する。命令及び他のデータは、メイン・メモリ１０２から処理のためにキャッシュ・メモリ１０６にロードされる。メイン・メモリ１０２は、プログラムを含めたデータを記憶するランダム・アクセス半導体メモリである。メイン・メモリ１０２及びキャッシュ・メモリ１０６は、それぞれ図１では単一のエンティティとして概念的に表現されているが、当業界では周知のとおり実際にはもっと複雑であり、キャッシュは複数の異なるレベルに存在する可能性もあることを理解していただきたい。特に、メイン・メモリ１０２は、本明細書で詳述するように複数のモジュール及び通信コンポーネントを備える。
【００２３】
バス１０３〜１０５は、様々なシステム・コンポーネント間の通信経路を提供する。プロセッサ／メモリ・バス１０３（本明細書では「フロント・サイド・バス」と呼ぶ）は、ＣＰＵ  １０１とキャッシュ・メモリ１０６との間、メイン・メモリ１０２とＩ／Ｏバス・インターフェース１０５との間でデータを転送するためのデータ通信経路を提供する。Ｉ／Ｏバス・インターフェース１０５は更に、様々なＩ／Ｏユニットとの間でデータを転送するためのシステムＩ／Ｏバス１０４と結合されている。Ｉ／Ｏバス・インターフェース１０５は、Ｉ／Ｏプロセッサ（ＩＯＰ）又はＩ／Ｏアダプタ（ＩＯＡ）としても知られる複数のＩ／Ｏインターフェース・ユニット１１１〜１１４とシステムＩ／Ｏバス１０４を介して通信する。システムＩ／Ｏバスは、例えば業界標準のＰＣＩバス、あるいは他の任意の適切なバス技術とすることができる。
【００２４】
Ｉ／Ｏインターフェース・ユニット１１１〜１１４は、様々なストレージ及びＩ／Ｏデバイスとの通信をサポートする。例えば、端末インターフェース１１１は、１つ又は複数のユーザ端末１２１〜１２４の接続をサポートする。ストレージ・インターフェース１１２は、１つ又は複数の直接アクセス記憶装置（ｄｉｒｅｃｔ  ａｃｃｅｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ：ＤＡＳＤ）（典型的には回転式磁気ディスク・ドライブ記憶装置であるが、別の方法では、ホストにとって単一の大規模記憶装置に見えるように構成されたディスク・ドライブ・アレイを含めた他のデバイスであることもある）の接続をサポートする。Ｉ／Ｏデバイス・インターフェース１１３は、他の様々な任意の入出力デバイスとの間のインターフェース、又は他のタイプのデバイスとの間のインターフェースを提供する。図１の例示的な実施形態にはそのようなデバイスが２つ、即ちプリンタ１２８及びファックス機１２９が示されているが、これら以外にも他の様々なタイプのデバイスが存在し得ることを理解していただきたい。通信／ネットワーク・インターフェース１１４は、システム１００から他のデジタル・デバイス及びコンピュータ・システムへの１つ又は複数の通信経路を提供する。このような経路は、例えばインターネット、ローカル・エリア・ネットワーク、他のネットワークのような１つ又は複数のネットワーク１３０を含むことも、遠隔デバイス通信回線や無線接続等を含むこともできる。
【００２５】
図１は、システム１００の代表的な主要コンポーネントを示すことが意図される高水準図であり、個々のコンポーネントは、図１に示されるよりもずっと複雑である可能性があり、図１に示されるコンポーネント以外のコンポーネントあるいは追加的なコンポーネントが存在する可能性もあり、そのようなコンポーネントの数、タイプ、及び構成は異なる可能性があることを理解していただきたい。更に、図１に示されるすべてのコンポーネントが特定のコンピュータ・システム内に存在するとは限らないことも理解されるだろう。本明細書にはそのような追加的な複雑性又は変形例のいくつかの具体例が開示されているが、これらは例示的なものにすぎず、必ずしもそのような変形例に限定されるわけではないことを理解していただきたい。
【００２６】
フロント・サイド・バス１０３は、図１ではキャッシュ・メモリ１０６と、メイン・メモリ１０２と、Ｉ／Ｏバス・インターフェース１０５との間の直接的な通信経路を提供する比較的単純な単一のバス構造として示されているが、実際には、階層的な２地点間リンク、スター構成又はウェブ構成、複数の階層構造バス、並列／冗長経路のような様々な形で配置され得る複数の異なるバス又は通信経路を含む可能性がある。更に、図１ではＩ／Ｏバス・インターフェース１０５及びＩ／Ｏバス１０４がそれぞれ単一のユニットとして示されているが、システム１００は実際には、複数のＩ／Ｏバス・インターフェース１０５又は複数のＩ／Ｏバス１０４あるいはその両方を収容することができる。図１では、システムＩ／Ｏバス１０４と、様々なＩ／Ｏデバイスに通じる様々な通信経路とが複数のＩ／Ｏインターフェース・ユニットによって分離されているが、別の方法では、Ｉ／Ｏデバイスの一部又は全部を１つ又は複数のシステムＩ・Ｏバスに直接接続することも可能である。
【００２７】
図１では、メイン・メモリ１０２は単一のモノリシック・エンティティとして示されているが、より複雑な構造を有することもできることが理解されるだろう。例えば、いわゆる不均等メモリ・アクセス（ｎｏｎ‐ｕｎｉｆｏｒｍ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ：ＮＵＭＡ）・コンピュータ・アーキテクチャで知られているように、メイン・メモリは、分散させることによって異なるＣＰＵ又は１組のＣＰＵと関連付けることができ、全体としてフロント・サイド・バス１０３を含む別個のバスからアクセスされる離散的なサブセットに分割することもでき、あるいは他の何らかのアーキテクチャを形成することもできる。同様に、図１ではキャッシュが単一のエンティティとして示されているが、複数の階層レベルのキャッシュが存在する可能性もある。キャッシュは、ＣＰＵ  １０１Ａ〜１０１Ｄの全部又は一部によって共用されるものもあれば、個々の単一のＣＰＵ専用に使用されるものもある。更に、あるキャッシュは命令を保持し、別のキャッシュは１つ又は複数のプロセッサによって使用される非命令データを保持するように、各キャッシュを機能毎に分割することもできる。本明細書で使用する「メモリ・サブシステム」という用語は、メモリ、キャッシュ、あるいはその任意の部分を指す。メモリ・サブシステムは、メイン・メモリ１０２の全部又は一部を含むことも、キャッシュ・メモリ１０６の全部又は一部を含むこともある。キャッシュは一般により高速なアクセスを必要とするため、メモリ・サブシステムは、メイン・メモリ１０２の全部又は一部であることが特に好ましい。ただし、本発明はメイン・メモリ内での使用に限定されるものではなく、いくつかのキャッシュ・メモリにも適合可能である。
【００２８】
図１に示されるコンピュータ・システム１００には、マルチ・ユーザ・「メインフレーム」・コンピュータ・システムで典型的に見受けられ得るような複数の端末１２１〜１２４が接続される。このような場合、実際の接続デバイス数は、典型的には図１に示される数よりも多くなる。本明細書に記載のメモリ・サブシステム構成は、比較的大規模なマルチ・ユーザ・システムでの使用に最も適合することが予想されるが、本発明は、何らかの特定のサイズのシステムに限定されるものではない。別の方法において、コンピュータ・システム１００は、典型的に単一のユーザ・ディスプレイ及びキーボード入力だけを収容するシングル・ユーザ・システムであることも、直接的なユーザ・インターフェースは殆ど又は全く存在しないが、他のコンピュータ・システム（クライアント）からの要求を受信するサーバ又は同様のデバイスであることもある。
【００２９】
様々なシステム・コンポーネントが本明細書に記載され、高水準図に示されているが、典型的なコンピュータ・システムは、本発明の理解に不可欠でない故に図示が省略された他の多くのコンポーネントを収容することを理解していただきたい。
【００３０】
図２は、デイジー・チェーン構成におけるバッファ・メモリ・チップを使用してメイン・メモリ１０２が構成されるコンピュータ・システム内の典型的なメイン・メモリ１０２の主要ハードウェア・コンポーネントを示すブロック図である。先述のとおり、好ましい実施形態では、デイジー・チェーン構成用に設計されたバッファ・メモリ・チップが使用される。図２は、メモリ・チップ向けの典型的なデイジー・チェーン構成を説明する背景を提示するが、本構成は好ましい実施形態で実際に使用されるわけではない。
【００３１】
図２を参照すると、メモリ・コントローラ２０１は、１つ又は複数のプロセッサと通信するためのシステム・フロント・サイド・バス１０３と結合されている。また、メモリ・コントローラ２０１は、デイジー・チェーン接続された各組のバッファ・メモリ・チップ２０２Ａ〜２０２Ｌ（本明細書ではまとめて「フィーチャ２０２」と呼ぶ）としてそれぞれ構成される１つ又は（典型的には）複数のメモリ・チップ・バスをサポートする。図２には単一のメモリ・コントローラと付属メモリ・チップとが示されているが、メイン・メモリは、１組の付属メモリ・チップをそれぞれサポートする複数のメモリ・コントローラを収容することができる。
【００３２】
デイジー・チェーン接続された各組み２０３のメモリ・チップ２０２は、メモリ・コントローラからチェーン内の１番目のバッファ・メモリ・チップに通じる２地点間リンク２０４Ａや、それぞれチェーン内の各バッファ・メモリ・チップからチェーン内の次のバッファ・メモリ・チップに通じる後続の２地点間リンク２０４Ｂ〜２０４Ｄのような２地点間リンクを、チェーンの終点に到達するまで備える（本明細書ではこれらの２地点間リンクを「フィーチャ２０４」と呼ぶ）。メモリ・コントローラ２０１は、典型的にはそれぞれデイジー・チェーン接続された１組のバッファ・メモリ・チップをサポートすることが可能な複数の２地点間リンク２０４をサポートする。図２には３組のデイジー・チェーンが示されているが、この組数は異なる可能性があり、１組のデイジー・チェーンしか存在しない可能性もあるが、典型的にはより大きい組数のデイジー・チェーンが存在する。
【００３３】
各２地点間リンク２０４は、アウトバウンド・データ部分２０５と、インバウンド・データ部分２０６と、を含む。アウトバウンド・データ部分２０５は、アウトバウンド方向、即ちメモリ・コントローラ２０１から離れる方向へのデータ送信に使用される。好ましい実施形態において、アウトバウンド部分は、１組のコマンド／アドレス回線と、別個の１組の書き込みデータ回線と、を含む。コマンド／アドレス回線は、アドレス及びコマンド・データをチップのアウトバウンド方向に送信する。書き込みデータ回線は、書き込みデータ、即ち、（フロント・サイド・バス１０３を介してメモリ・コントローラ２０１によって取得され、）コマンド／アドレス回線上で指定されるメモリ・アドレスに書き込むべきメモリ・コントローラ２０１からの入力データをアウトバウンド方向に送信する。好ましい実施形態では、コマンド／アドレス・データ及び書き込みデータ毎に別の１組の専用回線が使用されるが、別の方法では、コマンド／アドレス・データと書き込みデータの両方を時間多重形式で伝送する１組の共用回線を使用することも可能である。インバウンド・データ部分２０６は、読み出しデータ、即ち、アウトバウンド・データ部分２０５のコマンド／アドレス回線上で事前に送信された読み出しコマンドに応答してメモリ・アドレスから読み出されるデータをインバウンド方向に送信する。
【００３４】
動作において、メモリ・コントローラ２０１は、フロント・サイド・バス１０３を介してコマンドを受信し、そのコマンドが適用されるデイジー・チェーン接続セット（ｄａｉｓｙ  ｃｈａｉｎｅｄ  ｓｅｔ）２０３、即ち該当するアドレス位置に所在するデイジー・チェーン接続セット２０３を判定する。本明細書の論述では説明を簡潔にするために、いくつかのアーキテクチャは他のタイプのコマンドをサポートすることもできるが、各コマンドは特定のアドレスに対する読み出しコマンド又は書き込みコマンドであるものと仮定する。次に、コントローラ２０１は、各コマンド及びアドレスを該当するデイジー・チェーン接続セット内の１番目のリンク２０４のアウトバウンド・データ部分２０５のコマンド／アドレス回線上に送信する（書き込みコマンドについては該当する書き込みデータをアウトバウンド・データ部分２０５の書き込みデータ回線上に送信する）。このデータは、１番目のメモリ・モジュール２０２によって受信され、必要に応じて後続のバス・サイクルでデイジー・チェーン接続セット内の次のモジュールに再送信される。再送信は、コマンド／アドレス・データ（及び任意選択で書き込みデータ）が該当するモジュール２０２に到達するまで継続される。この時点で、モジュールは指定のアドレスにデータを書き込み、又は指定のアドレスのデータを読み出す。読み出しの場合、モジュールは読み出しデータをインバウンド・データ部分２０６上のメモリ・コントローラに向けて送信する。この読み出しデータは、メモリ・コントローラ２０１に到達するまで後続のバス・サイクルでデイジー・チェーン接続セット内の中間モジュール毎に再送信され、メモリ・コントローラ２０１からフロント・サイド・バス１０３を介して要求元エンティティに送信される。
【００３５】
好ましい実施形態において、各２地点間リンク２０４は高速ワイド・シリアル・リンクであり、即ち複数の並列信号回線を備えるが、この回線数は単一のバス・サイクル内に完全なコマンド／アドレス又はアクセス可能なデータ単位（即ち、単一のデータ・アクセス中に転送されるデータ量）を送信するには十分でない。単一のコマンド／アドレス（及び任意選択でアクセス可能な書き込みデータ単位）をアウトバウンド・データ部分２０５上で送信し、又はアクセス可能な読み出しデータ単位をインバウンド・データ部分２０６上で送信するには、複数のバス・サイクルが必要とされる。好ましい実施形態において、アクセス可能なデータ単位は８バイトである。アウトバウンド・データ部分２０５は、５本のコマンド／アドレス・データ信号回線と、１３本の書き込みデータ信号回線と、を備える。インバウンド・データ部分２０６は、１３本の読み出しデータ用信号回線を備える。バスが１ギガ・コマンド／秒のコマンド送信を行うことができるように、単一のコマンド／アドレス（最大３０ビット）と、書き込みデータ（最大７８ビット（８バイトのアドレス指定可能データ及び最大１４の補助ビットを含む））と、読み出しデータ（最大７８ビット（８倍とのアドレス指定可能データ及び最大１４の補助ビットを含む））と、を送信する場合は、６ギガ・サイクル／秒（６ＧＴ／ｓ）の６つのバス・サイクルが必要とされる。補助ビット部分は、誤り訂正符号（ＥＣＣ）又は他のデータに使用することができる。以下でより詳細に説明するように、データがインターリーブされる好ましい実施形態では、１組又は複数組の補助ビット部分を使用して、誤動作が起きたメモリ・チップの置き換えに使用可能な対応するスペア・メモリ・チップをサポートすることができる。説明上、これらのパラメータは本明細書の全体を通して使用される。しかしながら、これらのパラメータは１つの可能な設計パラメータ・セットの代表例にすぎず、例えば各コマンド又はデータ、バス周波数毎に必要とされる回線数やシリアル・バス・サイクル数は様々である可能性があることが理解されるだろう。更に、メモリ・チップ２０２は、上記の関連特許出願に記載されるように、異なるバス部分の幅を可変的に構成することが可能となる割り当て可能なバス幅能力（ａｐｐｏｒｔｉｏｎａｂｌｅ  ｂｕｓ  ｗｉｄｔｈ  ｃａｐａｂｉｌｉｔｙ）を有することができることを理解していただきたい。
【００３６】
デイジー・チェーン接続セット２０３上の外側又は内側にデータが移動する際、データは後続の各モジュール２０２内で受信され、各モジュール２０２内にバッファされ、各モジュール２０２から後続のバス・サイクル内に再送信される。そのため、メモリ・アクセス動作のレイテンシ時間は、デイジー・チェーン接続セット内の対応するメモリ・モジュール２０２の物理位置に依存し、デイジー・チェーンの終点のモジュールはより多くのバス・サイクルを要する。このことがデイジー・チェーン接続セットの長さの事実上の制約となる。
【００３７】
図３は、好ましい実施形態に係るバッファ・メモリ・チップ２０２のいくつかの主要内部コンポーネントを示す図である。バッファ・メモリ・チップは、データを複数のメモリ・アドレスに記憶するランダム・アクセス・データ・ストレージ・アレイ３０１と、受信されたコマンド情報を復号化し、チップ２０２の動作を制御する制御ロジックと、バス・タイミング信号を生成する位相同期ループ（ｐｈａｓｅ  ｌｏｃｋｅｄ  ｌｏｏｐ：ＰＬＬ）クロック回路３０３と、チップ２０２の動作モードを記憶するモード制御レジスタ３０４と、を備える。チップ２０２は更に、それぞれ外部ソースと結合されたＩ／Ｏ回線３１１及び３１２を介してデータを受信する様々な受信バッファ３０６及び３０８と、それぞれ外部ソースと結合されたＩ／Ｏ回線３１０及び３１３を介してデータを駆動（送信）するドライバ３０５及び３０９と、を備える。
【００３８】
本発明の好ましい実施形態によれば、チップ２０２は、複数の異なるモードのうちの任意のモードで動作することができ、動作モードに応じて同一の入力に対し異なる形で応答して異なる挙動をとる。モード制御レジスタ３０４は、チップ２０２の動作モードを識別する１つ又は複数のビットを記憶する。典型的には、複数のメモリ・チップを保持するプリント回路カードのようなコンピュータ・システム・コンポーネント内でチップ２０２が構成された後は、動作モードは変化しないことが予想される。モード制御レジスタ３０４は、製造後に再書き込み可能であるか否かに関わらず、モード値を記憶するように構成することが可能な任意のエンティティを表す。実際、多くの技法では、動作モード値は、回路カードへの組み立て時点でチップに永続的に書き込まれる可能性がある。モード制御レジスタの目的は、複数の別個のチップ設計を必要とせずに共通のチップ設計を複数の異なるモードで（したがって複数の異なるメモリ構成で）使用できるようにすることである。
【００３９】
好ましい実施形態によれば、いくつかの受信回線又はドライバ回線の機能は、モード制御レジスタ３０４によって決定されるメモリ・チップ２０２の動作モードに応じて異なる可能性がある。図２の典型的なデイジー・チェーン構成での使用が意図される基本動作モードにおいて、インバウンド・データ・ドライバ３０５は、データをインバウンド・データ部分２０６上でメモリ・コントローラ２０１に向けてインバウンドに駆動するのに使用され、アウトバウンド・データ・ドライバ３０９は、コマンド／アドレス・データ（及び任意選択で書き込みデータ）をアウトバウンド・データ部分２０５上でデイジー・チェーン２０３内の次のチップ２０２に向けてアウトバウンドに駆動するのに使用される。同様に、基本動作モードにおいて、インバウンド・データ受信バッファ３０８は、デイジー・チェーン内の次のチップからのインバウンド・データをインバウンド・データ部分２０６上で受信し、アウトバウンド・データ受信バッファ３０６は、前のチップ又はメモリ・コントローラからのアウトバウンド・コマンド／アドレス・データ（及び任意選択で書き込みデータ）をアウトバウンド・データ部分２０５上で受信する。それ故、基本モードでは、Ｉ／Ｏ回線３１０及び３１２が各デイジー・チェーン・リンク２０４のアウトバウンド・データ部分２０５に対応し、Ｉ／Ｏ回線３１１及び３１３が各２地点間リンク２０４のインバウンド・データ部分２０６に対応する。以下でより詳細に説明するように、いくつかの代替動作モードでは、いくつかの受信器によって受信されるデータ又はいくつかのドライバによって駆動されるデータあるいはその両方は基本動作モードの場合と異なる可能性があり、Ｉ／Ｏ回線３１０〜３１３は異なる機能を有することになる。
【００４０】
ＰＬＬ回路３０３は、外部ソースからバス・クロック信号を受信し、その信号を別の外部ソースに再駆動する。例えば、ＰＬＬ回路３０３は、デイジー・チェーン内の前のチップ（又はメモリ・コントローラ）からバス・クロックを受信し、そのバス・クロックをデイジー・チェーン内の次のチップに再駆動する。この信号は、データ及びコマンド／アドレス・バス部分上への送信タイミングを提供するのに使用される。チップ２０２は、好ましい諸実施形態では動作モードに応じて異なるバス周波数をサポートし、好ましい諸実施形態のいくつかの変形例では複数のバス周波数を同時にサポートし、即ち、バスの様々な部分が様々な周波数で動作する。ＰＬＬは、必要とされる最も高い周波数のバス・クロック信号を制御ロジック３０２に提供するために入力周波数を必要に応じて逓倍し、制御ロジック３０２は、より高い周波数のサイクルをカウントすることにより、必要とされるより低い周波数のバス・クロック信号を生成する。
【００４１】
一般に、制御ロジック３０２は、受信されたコマンド／アドレス・データを解釈し、そのデータの宛先がチップ２０２であるのか、別のチップであるのか、それともその両方であるのかを判定し、チップ２０２宛てのコマンドに応答してデータ・ストレージ・アレイ３０１にアクセスし、読み出しデータをメモリ・コントローラに返し、データを必要に応じて他の１つ又は複数のチップに再駆動する。制御ロジック３０２は、モード制御レジスタ３０４の設定に応じて複数のモードで動作する。入力データの解釈は動作モードに依存する。上述のとおり、基本モードでは、コマンド／アドレス・データはアウトバウンド・データ受信バッファ３０６の５つの専用Ｉ／Ｏポートにおいて受信されるが、いくつかの代替動作モードでは、少なくともいくつかのコマンド／アドレス・データは他のポート又はバッファにおいて受信される。
【００４２】
メモリ・チップ２０２は、典型的なローエンド・システム、即ちシングル・ユーザ・コンピュータ、ポータブル・デジタル・デバイス、ゲーム・コントローラ、いわゆる「セット・トップ・ボックス」・ビデオ・コントローラ等を対象とする図２の構成での使用向けに設計されている。これと同一のチップが大規模コンピュータ・システムでの使用向けに適合される場合、図２の構成はいくつかの欠点を有する。大規模コンピュータ・システムは、典型的にはローエンド・システムよりもずっと大きいメイン・メモリ容量を必要とする。メモリ容量は、複数のメモリ・コントローラ２０１を利用することによってある程度増加させ得るが、メモリ・コントローラが追加されることでフロント・サイド・バス１０３の設計に大きな負担が掛かることになる。更に、デイジー・チェーンの長さを増加させることによってメモリ容量をほぼ無制限に増加させることが可能である。しかしながら、このような長さの増加はアクセス・レイテンシを増加させる。大容量のメモリ・サブシステムほどレイテンシは非実用的な長さとなる。また、デイジー・チェーンが長くなると電力使用効率が大幅に低下する。各モジュールは、チェーンの更に下流のモジュールへの送信データをバッファし、それらのモジュールへの再送信を行わなければならず、その結果、データをチップに通信するだけでもかなりの電力を消費することになる。
【００４３】
本発明の好ましい実施形態によれば、これらの欠点は、バッファ・メモリ・チップ２０２をデイジー・チェーン接続ハブ（ｄａｉｓｙ‐ｃｈａｉｎｅｄ  ｈｕｂ）によってサポートされるチップ・クラスタの形に配置することによって緩和される。図４は、本発明の好ましい実施形態に係るハブ及びクラスタを使用して構成されるメモリ・サブシステムの高水準ブロック図である。
【００４４】
図４を参照すると、メモリ・コントローラ４０１は、１つ又は複数のプロセッサと通信するためにフロント・サイド・バス１０３と結合されている。また、メモリ・コントローラ４０１は、それぞれ少なくとも１つの（好ましくは複数の）メモリ・チップ・クラスタ４０３Ａ〜４０３Ｏ（本明細書ではこれらをまとめて「フィーチャ４０３」と呼ぶ）をサポートするデイジー・チェーン接続ハブ４０２Ａ〜４０２Ｄ（本明細書ではこれらをまとめて「フィーチャ４０２」と呼ぶ）として構成される、１つ又は（典型的には）複数のメモリ・チップ・バスをサポートする。メイン・メモリ１０２は、それぞれ１組の付属ハブと１組のチップ・クラスタとをサポートする複数のメモリ・コントローラ４０１を収容することができる。
【００４５】
図２のデイジー・チェーン接続チップの場合と同様に、好ましい実施形態の各ハブ４０２は、メモリ・コントローラ４０１から１番目のハブに通じ、その後チェーンの終点に到達するまで各ハブからチェーン内の後続のハブに通じる２地点間リンク４０５Ａ〜４０５Ｄ（本明細書ではこれらをまとめて「フィーチャ４０５」と呼ぶ）によってチェーン４０４の形で接続されている。メモリ・コントローラ４０１は、典型的にはハブ及びクラスタから成る各デイジー・チェーン接続セット４０４をそれぞれサポートすることが可能な複数の２地点間リンク４０５をサポートする。図４には２組のデイジー・チェーン接続ハブが示されているが、この組数は異なる可能性があり、典型的にはより大きい組数のデイジー・チェーン接続ハブが存在する。
【００４６】
各２地点間リンク４０５は、アウトバウンド・データ部分４０７と、インバウンド・データ部分４０８と、を備える。２地点間リンク４０５は、図２の構成のデイジー・チェーン接続されたバッファ・メモリ・チップ２０２間を通る２地点間リンク２０４と実質的に同一の動作をすることが好ましい。具体的には、好ましい実施形態において、２地点間リンク４０５のバス周波数は、２地点間リンク２０４のバス周波数と同一であり、各データ・アクセス・トランザクション（読み出し又は書き込み）は、送信に複数の（例えば６つの）サイクルを必要とする。インバウンド・データ部分４０８は、インバウンド・データ部分２０６と同一のバス幅（同一の回線数）である（例えばそれぞれ１３回線を備える）ことが好ましい。アウトバウンド・データ部分４０７も、アウトバウンド書き込みデータ伝送用に１３回線を使用し、これに加えてコマンド／アドレス・データ伝送用に数回線を使用する。アウトバウンド・データ部分４０７は、メモリ・チップ・デイジー・チェーン２０３内のリンク２０４のアウトバウンド・データ部分２０５と同様のアドレス／コマンド・プロトコルをサポートすることが好ましいが、メモリ・コントローラによってサポートされる各メモリ・チップ・バス・ポート上でより多くのチップ（より広いメモリ・アドレス範囲）をサポートすることが好ましい実施形態に係る構成の一目的であるため、より大きいアドレス空間に対応することができるようにするために、１つ又は複数の追加的なアドレス回線を必要とする可能性がある。
【００４７】
動作において、メモリ・コントローラ４０１は、フロント・サイド・バス１０３を介してコマンドを受信し、当該コマンドが適用されるデイジー・チェーン接続ハブ／クラスタ・セット４０４、即ち該当するアドレス位置に所在するデイジー・チェーン接続ハブ／クラスタ・セット４０４を判定する。次に、コントローラ４０１は、アウトバウンド・データ部分４０７上で各コマンド及びアドレスを（そのコマンドが書き込みコマンドである場合は書き込みデータと共に）該当するデイジー・チェーン接続ハブ／クラスタ・セット内の１番目のハブに送信する。各コマンド及びアドレスを受信すると、当該１番目のハブは、該当するデータ・アドレスが記憶されているクラスタ４０３をサービスするハブに到達するまで、各コマンド及びアドレスを必要に応じて後続のバス・サイクル内に次のハブに再送信する。その後、当該次のハブは、以下でより詳細に説明するように、コマンド／アドレスを（該当する場合は書き込みデータと共に）該当するクラスタ４０３のメモリ・モジュールに再送信する。コマンド／アドレスをクラスタに再送信する際は、必要となるアドレス幅を減少させるために、ハブ及びクラスタを識別するのに必要とされる追加的なアドレス・ビットを除去することが好ましい。以下で詳述するように、データはクラスタ内の複数のモジュール間でインターリーブされることが好ましい。クラスタ内のモジュールは、任意の書き込みデータを指定されたアドレスに書き込み、又は読み出しコマンドで指定されるデータを読み出して当該読み出しデータをハブに返す。次に、当該ハブは、データをメモリ・コントローラに向けてインバウンド・データ部分４０８上でチェーンの上流に送信する。チェーン内の各中間ハブは、当該データがメモリ・コントローラ４０１に到達するまで後続の各バス・サイクル内に再送信し、当該データは、メモリ・コントローラ４０１からフロント・サイド・バス１０３を介して要求元エンティティに送信される。
【００４８】
本発明の好ましい実施形態によれば、メモリ・チップ・「クラスタ」４０３は、データを記憶する複数のメモリ・チップ・セットであり、クラスタに対する各トランザクション中に当該クラスタ内のすべてのチップがアクセスされるように構成される。換言すると、クラスタ内のデータは、クラスタ内のすべてのチップ間でインターリーブされる。インターリーブは、ビット単位、複数ビット単位、バイト単位、又はワード単位、あるいは他の何らかの単位で実行することができる。データのインターリーブに加えて、好ましい実施形態では、チップに通じる通信リンクの少なくとも一部分は、ハブ・チェーン４０４のリンク４０５よりも低いバス周波数で動作する。このような低いバス周波数にも関わらず、各チップは、インターリーブを使用することによってハブ・チェーン４０４のデータ・レートと均等なレートでデータを送受信することが可能となる。それ故、ハブ及びクラスタの使用により、（図２に示されるデイジー・チェーン・チップと比較して）メモリ・コントローラに接続された各バス・チェーン４０４上でサポートされるチップ数が増加すると同時に、バス周波数を低下させることで各チップの平均消費電力も低減される。メモリ・チップ・クラスタ４０３は、様々な構成のうちの任意の構成で実現することができる。以下ではそのような構成のいくつかの代表例について説明するが、本明細書で説明する例示的な構成は網羅的なものではないことを理解していただきたい。
【００４９】
図５は、図４の表現よりも更に詳細な、好ましい実施形態のいくつかの変形例に係る、ハブと関連するメモリ・チップ・クラスタとの間のリンクを示すブロック図である。図５に示されるように、クラスタ４０３は、３つのサブ・クラスタ５０１Ａ〜５０１Ｃ（本明細書ではこれらをまとめて「フィーチャ５０１」と呼ぶ）内に配置された３９個のチップ２０２を備える。ハブ４０２は、サブ・クラスタ５０１毎の別個のサブ・クラスタ通信リンク５０２Ａ〜５０２Ｃ（本明細書ではこれらをまとめて「フィーチャ５０２」と呼ぶ）と結合されている。各サブ・クラスタ通信リンクはそれぞれ、コマンド／アドレス・データ（及びサブ・クラスタ内のチップに対する書き込みコマンドの場合は、任意選択で書き込みデータ）を送信する別個のコマンド／アドレス／書き込みデータ部分５０４と、メモリ・コントローラに再送信するためにクラスタ内のチップから読み出されたデータを受信する読み出しデータ部分５０５と、を備える。コマンド／アドレス／書き込みデータ部分は、コマンド／アドレス・データ及び書き込みデータ毎に別の１組の回線を含むことが好ましく、必要とされる回線数は、いくつかの実例を後述する各構成に依存するが、別の方法では、コマンド／アドレス・データを書き込みデータと時間多重化して１組の回線を共用することもできる。図５では図面を分かりやすくするために１つのクラスタだけがハブに接続される様子が示されているが、ハブは典型的には複数のクラスタをサービスすることができることが理解されるだろう。
【００５０】
ハブ４０２は本質的に、異なる周波数で動作するバス間のデータの蓄積／順序付けを行う能力を有する複雑なスイッチである。図９は、好ましい実施形態に係るハブのいくつかの主要内部コンポーネントを示すブロック図である。ハブ４０２は、受信されたアドレスを復号化し、ハブの動作を制御するデコーダ／コントローラ９０１と、バス・タイミング信号を生成する位相同期ループ（ＰＬＬ）クロック回路９０２と、インバウンド・データをバッファするインバウンド・データ・バッファ９０３と、ハブ４０２が属するハブ・チェーンのリンク４０５上でデータを受信及び駆動（送信）する受信バッファ９０５、９０６、及びドライバ９０４、９０７と、メモリ・チップ・クラスタ４０３とのインターフェースをとる少なくとも１つのクラスタ・インターフェース９１０と、を備える。
【００５１】
ハブ４０２は任意選択で、デコーダ／コントローラ９０１と結合されたモード・レジスタ９０８を収容し、モード・レジスタ９０８は動作モードを識別する。ハブ４０２は任意選択で、いくつかの実例が以下に開示され図６乃至図８に示される複数の異なるクラスタ構成をサポートするように設計することができ、又は他の動作変形例をサポートするように設計することができ、あるいはその両方の設計を実現することができる。様々な構成に応じて以下のいずれかの変更が必要となる可能性がある。例えば、コマンド／アドレス回線数及び少なくともいくつかの回線のバス周波数、クラスタ内のサブ・クラスタ数、データ・インターリーブの粒度等である。
【００５２】
クラスタ・インターフェース９１０は、書き込みアキュムレータ９１１と、読み出しシーケンサ９１２と、コマンド／アドレス回線出力ドライバ９１３と、書き込みデータ出力ドライバ９１４と、インバウンド読み出しデータ受信バッファ９１５と、を備える。図９には図面を分かりやすくするために１つのインターフェース９１０だけが示されているが、ハブ４０２によってサポートされるクラスタ４０３毎に別個のインターフェースが存在することが理解されるだろう。
【００５３】
書き込みアキュムレータ９１１は、メモリ・コントローラから２地点間リンク４０５を介して受信されたデータよりも低い周波数でクラスタに送信されるデータを蓄積する。即ち、複数のバス・サイクル内に２地点間リンク４０５を介して受信されるデータは、より低速で幅の広いアウトバウンド・リンク（単数又は複数）５０４からクラスタへの送信に十分なデータ幅となるまで、より広いレジスタに蓄積される。少なくとも一部のデータは、より低いバス速度で送出されることが好ましい。具体的には、本明細書に開示される例示的なすべての構成において、チップに書き込まれる書き込みデータは、リンク（単数又は複数）５０４上で低いバス速度で伝送される。例示的な一構成では、アドレス／コマンド・データもより低いバス速度で伝送される。クラスタ・インターフェース９１０によってサポートされるクラスタ宛ての受信データが書き込みアキュムレータを通過し、それ自体の幅が必要に応じて調整された後は、コマンド／アドレス回線出力ドライバ９１３上（コマンド／アドレス・データの場合）、又は書き込みデータ出力ドライバ９１４上（書き込みデータの場合）でクラスタに送信される。
【００５４】
読み出しシーケンサ９１２は、リンク４０５のより幅の狭いインバウンド部分４０８上で複数のサイクル内にリンク（単数又は複数）５０５を介して読み出しバッファ９１５内で受信される、メモリ・コントローラに送信するためのより幅の広いインバウンド読み出しデータの順序付けを行う。順序付けされたデータは、インバウンド・ドライバ９０４上でメモリ・コントローラに向けて再送信するためにインバウンド・バッファ９０３内に配置される。
【００５５】
動作において、デコーダ／コントローラ９０１は、受信されたコマンド／アドレスのアドレスを復号化して、そのコマンドがハブ４０２によってサポートされるクラスタ宛てのものかどうかを判定する。そうである場合には、入力データは対応するクラスタ・インターフェース９１０に経路指定される。そうでない場合には、入力データはアウトバウンド・ドライバ９０７に経路指定され、ハブ４０２を経由してデイジー・チェーン４０４内の次のハブに渡される。（いくつかのアーキテクチャは、クラスタ・インターフェースに経路指定されるとともにデイジー・チェーンの下流に渡されるブロードキャスト・コマンドをサポートすることができる。）
【００５６】
ＰＬＬ回路９０２は、外部ソースからバス・クロック信号を受信し、その信号を別の外部ソースに再駆動する。例えば、ＰＬＬ回路９０２は、デイジー・チェーン内の前のチップ（又はメモリ・コントローラ）からバス・クロックを受信し、そのバス・クロックをデイジー・チェーン内の次のチップに再駆動する。任意選択で、各クラスタ・インターフェースは更に、バス・クロック信号をクラスタ内の１つ又は複数のチップに再駆動するクロック・リドライバ（ｃｌｏｃｋ  ｒｅ−ｄｒｉｖｅｒ）９１６も含むが、それらのチップに関するクロックは別個の手段によって生成することもできる。ＰＬＬ回路９０２から導かれるクロック信号は、ハブ４０２の内部動作を制御するためにデコーダ／コントローラ９０１にも提供される。
【００５７】
先に説明したように、例示的な諸実施形態において、メモリ・アクセス動作は７８ビットのデータ（補助ビットを含む）の記憶又は読み出しを行う。クラスタ内のチップをアドレス指定するメモリ・アクセス動作が３９個のすべてのチップに分散されるように、即ち、クラスタにアクセスするあらゆるメモリ・アクセス動作において各チップが正確に２ビットを記憶するように又は読み出すように、クラスタ４０３内のデータは、当該クラスタ内の３９個のチップ間でインターリーブされる。クラスタ内の各チップは、各メモリ・アクセス動作において２ビットの書き込みデータだけを受信する、又は２ビットの読み出しデータだけを送信する必要があるので、そのようなデータを搬送する回線は、ハブ・チェーン４０４を構成する２地点間リンク４０５の回線よりも低い周波数で動作させることができる。例えば、例示的な実施形態において、リンク４０５は、メモリ・アクセス動作の完了に６つのバス・サイクルを要する６ＧＴ／ｓのバス周波数で動作する。クラスタ内の各チップは、単一の回線上で２つのバス・サイクル内に２ビットのデータを受信又は送信することができるので、それぞれ２つのバス・サイクル内にメモリ・アクセス・データの各部分を受信又は送信することができ、したがって、２ＧＴ／ｓのバス周波数（リンク５０２上）でも十分なデータ転送速度が達成され得る。
【００５８】
各チップ２０２は、３１本のＩ／Ｏ回線上でデータを受信する合計３１個の受信器と、３１本のＩ／Ｏ回線上でデータを送信する３１個のドライバと、を収容することが分かるだろう。基本動作モードにおいて、これらは、各受信器Ｉ／Ｏ及び各ドライバＩ／Ｏ毎に１３個のアウトバウンド・データ、１３個のインバウンド・データ、及び５つのコマンド／アドレスとして働く。サポートされる物理的な受信器Ｉ／Ｏ回線数及びドライバＩ／Ｏ回線数は、大きな制約となる。各Ｉ／Ｏ回線はコスト負担が大きいため、汎用チップが必要最小限のＩ／Ｏ数を上回る数のＩ／Ｏを含むように設計される可能性は低い。したがって、メモリ・サブシステムの代替構成では、図２の基本構成（即ちデイジー・チェーン構成）で必要とされるＩ／Ｏ回線数を上回る本数のＩ／Ｏ回線は使用しないことが望ましい。しかしながら、動作モードに応じて様々なＩ／Ｏ回線を様々な形で使用する追加的な機能を制御ロジック３０２で実現することは比較的低コストであり、したがって、メモリ・サブシステムは、いくつかのＩ／Ｏ回線に異なる役割が割り当てられる代替構成で構成することも許容される。
【００５９】
図６乃至図８は、好ましい実施形態のいくつかの変形例に係る、サブ・クラスタ内のメモリ・チップと関連するハブとの間のデータ経路の様々な代替構成をより詳細に示す。図６乃至図８の諸変形例において、各クラスタ４０には、図５を参照して上記で説明したように１３個のメモリ・チップをそれぞれ収容する３つのサブ・クラスタ５０１が収容される。単一のクラスタ４０３内の３つのサブ・クラスタ５０１はすべて同一のハブ４０２によってサービスされる。図６乃至図８では、図面を分かりやすくするために他のサブ・クラスタ５０１は省略されている。
【００６０】
サブ・クラスタ構成５０１の第１の変形例を示す図６を参照すると、ハブ４０２からメモリ・チップ２０２Ａにアウトバウンド・リンク６０１が通されている。アウトバウンド・リンク６０１は、それぞれ書き込みデータ及びコマンド／アドレス・データをメモリ・チップ２０２Ａに送信するための１３本のデータ回線と５本のコマンド回線とを備える。１３本のデータ回線は、２ＧＴ／ｓのバス周波数、即ち、ハブ・チェーンの２地点間リンク４０５の１／３のバス周波数で動作する。５本のコマンド／アドレス回線は、６ＧＴ／ｓのバス周波数で動作する。
【００６１】
一方、メモリ・チップ２０２Ａは、それぞれメモリ・チップ２０２Ｂ、２０２Ｃ、及び２０２Ｄに通じる３本の別個のアウトバウンド・リンク６０２、６０３、及び６０４を駆動する。メモリ・チップ２０２Ａからの各アウトバウンド・リンク６０２、６０３、６０４は、２ＧＴ／ｓのバス周波数で動作する４本のデータ回線と、６ＧＴ／ｓのバス周波数で動作する５本のコマンド／アドレス回線と、を備える。
【００６２】
一方、メモリ・チップ２０２Ｂ、２０２Ｃ、２０２Ｄはそれぞれ、３つの追加的なメモリ・チップ群に通じる３本の別個のアウトバウンド・リンクを駆動する。例えば、メモリ・チップ２０２Ｂは、それぞれメモリ・チップ２０２Ｅ、２０２Ｆ、及び２０２Ｇに通じる３本の別個のアウトバウンド・リンク６０５、６０６、及び６０７を駆動する。各アウトバウンド・リンク６０５、６０６、６０７は、２ＧＴ／ｓのバス周波数で動作する１本のデータ回線と、６ＧＴ／ｓのバス周波数で動作する５本のコマンド／アドレス回線と、を備える。
【００６３】
各メモリ・チップ２０２Ａ〜２０２Ｍは、２ＧＴ／ｓで動作する、ハブ４０２に通じる単一のインバウンド・データ回線を駆動する。例えば、メモリ・チップ２０２Ｅは、インバウンド・データ回線６０８を駆動する。
【００６４】
そのため、サブ・クラスタは、チップ２０２Ａをルートとするメモリ・チップ・ツリーとして構成され、当該ツリーでは、コマンド／アドレス・データ及び書き込みデータがツリーの下方に伝搬されていくことが分かるだろう。一方、読み出しデータを各チップからハブに送信するための直接接続も存在し、即ち、読み出しデータは必ずしもツリーの下から順番に伝搬される必要はない。
【００６５】
データは６ＧＴ／ｓの２地点間リンク４０５上で伝送されるが、図６のように構成されるクラスタは、データが３つのサブ・クラスタ間でインターリーブされるので、転送速度に遅れをとることはない。即ち、合計７８ビットのアドレス指定可能データ及び補助ビットを伝送する各バス動作では、３つのサブ・クラスタにそれぞれ２６ビットが記憶され、各メモリ・チップは正確に２ビットを記憶する。各チップは、２ビットを（単一のインバウンド・ビット回線６０８上で）転送するのに２つのバス・ビートしか必要としないが、ハブは、７８ビットのデータをハブ・チェーン４０４を辿ってメモリ・コントローラ４０１に転送するのに６つのバス・ビートを必要とする。したがって、クラスタ内の個々のチップは、データを２ＧＴ／ｓでハブに転送することによってハブのデータ転送速度に遅れをとらないようにすることができる。これと同じことが、ハブからチップへのアウトバウンド書き込みデータの転送にも当てはまる。
【００６６】
しかしながら、アウトバウンド・コマンド／アドレス・データの場合は、コマンド／アドレス・データをクラスタ内のすべてのチップにレプリケートする必要があり、したがって、インターリーブを用いても各チップに対するコマンド／アドレス・データ量は減少しない。図６の例示的な構成において、この問題は、アウトバウンド・リンクのコマンド／データ部分を２地点間リンク４０５と同一のバス周波数である６ＧＴ／ｓで動作させることによって解決される。即ち、本実施形態において、バスのいくつかの回線は他の回線よりも高い周波数で動作する。図２に示されるデイジー・チェーン構成よりも優れたチップ単位の電力低減は、（デイジー・チェーン構成ではすべての回線が６ＧＴ／ｓで動作するのと対照的に）回線のいくつかがより低い周波数で動作すること、及びいくつかのチップがすべての回線よりも少ない回線を使用することによって達成される。
【００６７】
動作において、ハブ４０２は、チェーン４０４からコマンド／アドレス・データ（及び任意選択で書き込みデータ）の後続部分を後続のバス・サイクル内に受信する。クラスタを識別するアドレス・データは、レイテンシを低減するために１つ又は複数の最初のバス・サイクルに含まれることが好ましい。宛先クラスタを判定するのに十分な情報が受信された場合、ハブ４０２は、それ自体に接続されている各クラスタに関して、当該コマンドが該当するクラスタにアドレス指定されたものかどうかを判定する。該当するクラスタにアドレス指定されたものでない場合には、当該コマンドはハブによって無視されるが、チェーン４０４の下流に転送される。該当するクラスタにアドレス指定されたものである場合には、当該コマンドは、各クラスタ毎のリンク６０１内の５本のコマンド／アドレス回線上、即ち６ＧＴ／ｓで、当該コマンドがアドレス指定されるクラスタに含まれる各サブ・クラスタ内のツリーのルートに所在する３つのメモリ・チップ２０２Ａに再送信される。コマンドが書き込みコマンドである場合には、ハブは、それ自体の１３本のアウトバウンド・データ入力回線上でメモリ・コントローラからの書き込みデータも受信する。この書き込みデータは、インターリーブ形式で３つのサブ・クラスタに再送信され、各サブ・クラスタのルート・メモリ・チップ２０２Ａは、当該書き込みデータをリンク６０１の１３回線データ部分上で２ＧＴ／ｓで受信する。
【００６８】
次に、メモリ・チップ２０２Ａは、コマンド／アドレス・データの３つの別個のコピーを、それぞれリンク６０２、６０３、及び６０４の３つの別個の５回線６ＧＴ／ｓ部分上でチップ２０２Ｂ、２０２Ｃ、及び２０２Ｄに再送信する。しかしながら、コマンドが書き込みコマンドである場合、チップ２０２Ａは必ずしもすべての書き込みデータを再送信する必要はない。リンク６０１の１３ビット部分は、各メモリ・チップ２０２Ａ〜２０２Ｍに関する１ビットを搬送する。したがって、４データ・ビットをリンク６０２上（２ＧＴ／ｓ）でメモリ・チップ２０２Ｂに再送信し、４データ・ビットをリンク６０３上（２ＧＴ／ｓ）でメモリ・チップ２０２Ｃに再送信し、４データ・ビットをリンク６０４上（２ＧＴ／ｓ）でメモリ・チップ２０２Ｄに再送信するだけでよい。１３番目のビットはメモリ・チップ２０２Ａ自体に関するものであり、再送信は行われない。
【００６９】
次に、各メモリ・チップ２０２Ａ、２０２Ｂ、及び２０２Ｃは、５ビットのコマンド／アドレス・データの更に３つのコピーをそれぞれの３つのチップ群に６ＧＴ／ｓで再送信する。即ち、図６に示されるように、チップ２０２Ｂはチップ２０２Ｅ〜２０２Ｇにデータを再送信し、他のチップも同様にデータを再送信する。この再送信の際は、（５ビットのコマンド／アドレス・データに加えて）単一ビットの書き込みデータを各チップに２ＧＴ／ｓで送信するだけでよい。
【００７０】
コマンドが読み出しコマンドである場合には、各チップは、当該チップからの対応する読み出しデータをそれぞれの１ビット回線６０８上でハブ４０２に直接２ＧＴ／ｓで送信する。各チップは、バス動作毎に７８ビットの読み出しデータのうち２ビットだけを記憶し、したがって、２ＧＴ／ｓで動作することにより、必要とされるデータをバス動作が完了するまでの時間に送信することができる。コマンド／アドレス・データはツリー構成の各チップに伝搬されるので、すべてチップが同時にデータを受信するわけではない。ハブ４０２は、この遅延を考慮に入れて様々なチップからの入力データをバッファすることが好ましい。別の方法では、読み出しデータをハブ４０２に送信する前にコマンドを受信したチップにおいて１つ又は２つの遅延が導入され、その結果、ハブ４０２はすべてのデータを同時に受信する可能性がある。
【００７１】
メモリ・チップ２０２は、ローエンド・システムの要件に合わせて設計され、基本動作モードでは図２のデイジー・チェーン構成で構成されるように設計されることが企図される（ただし、このことは必ずしも本発明の要件ではない）。ローエンドのデイジー・チェーン構成での使用が意図される同一の汎用チップ２０２を使用することができるようにするために、本明細書に開示される代替構成で必要とされる追加的なチップ回路は、できるだけ少なくすることが特に望ましく、とりわけ、代替構成のチップが必要とするＩ／Ｏピン数は、標準的なデイジー・チェーン構成で使用されるＩ／Ｏピン数を上回らないようにすることが特に望ましい。各追加的なＩ／Ｏピンはチップの設計及び製造コストを大幅に増加させるので、チップ設計者が設置環境のほんの一部でしか使用されない代替構成をサポートするために、追加的なピンを追加する可能性は低い。上述のとおり、例示的な実施形態のチップ２０２は、コントローラから入力されるアウトバウンド・データ（１３個のデータ及び５つのコマンド／アドレス）を受信するための１８個のピンと、そのアウトバウンド・データ（１３個のデータ及び５つのコマンド／アドレス）をデイジー・チェーン内の次のチップに再駆動するための１８個のピンと、デイジー・チェーン内の次のチップから入力されるインバウンド・データを受信するための１３個のピンと、そのインバウンド・データをコントローラに向けて再駆動するための１３個のピンと、を含む６２個のＩ／Ｏピンを有する。６２個のＩ／Ｏピンのうちの３１個は、外部回線上の送信用のドライバであり、残りの３１個は、外部回線からの受信用の受信器である。これらは例示的な設計パラメータとして提供されるものであり、本発明に従って使用されるメモリ・チップは、異なる数のＩ／Ｏピンを有する可能性もあることが理解されるだろう。
【００７２】
本明細書に開示されるすべての構成において、ピンの機能（即ち、ピン上で駆動又は受信されるデータのタイプ）は必ずしもデイジー・チェーン構成の場合と同一ではないが、本構成の各チップで使用される送信ピン数及び受信ピン数はそれぞれ３１個に制限される。入力回線を復号化し又は出力回線への送信を行う上で、動作モードを記録するモード制御レジスタ３０４と、モード制御レジスタ３０４に保持される動作モードに応じて少数の追加的な内部チップ・ロジック３０２とが必要とされる。この内部チップ・ロジックは追加的なＩ／Ｏピンよりも遥かに低コストであり、したがって、それ自体が実際に使用される設置チップ内の割合が比較的小さい場合にも、汎用的なチップ設計でのサポートが実現される。
【００７３】
機能を様々なピンに適切な形で割り当てることにより、代替構成をサポートするのに必要となる内部ロジックを最小限に抑えることが可能となる。以下の表１は、（図２のデイジー・チェーン構成での使用が意図される）基本動作モード及び図６の代替構成モードにおける、データ受信用の３１個の受信器ピン（Ｒ１〜Ｒ３１）と、データ送信用の３１個のドライバ・ピン（Ｔ１〜Ｔ３１）とに対するピン機能の例示的な割り当てを示している。代替モードにおいて、読み出しデータ１及び書き込みデータ１は、チップに記憶されているビットを参照しているが、書き込みデータ２：１３は、同一のサブ・クラスタ内の他のチップ上にインターリーブ形式で記憶されているデータ（したがって他のチップに伝搬されることになるデータ）である。表から分かるように、代替モードでは、大部分のピンが同一の機能を有し、又は使用されないことになる（それ故特別なロジックは必要ない）。代替モードにおいて、内部ロジックは、チップに対してデータ・ビット１（読み出し又は書き込み）だけを使用し、データ・ビット２：１３は、別のチップ宛ての通過データとして扱われる。ピンＴ２０：Ｔ２９だけは、代替モードでコマンド・データの追加的なコピーを駆動するのに使用される異なる機能を有する。また、代替モードにおいて、動作モードに対応する制御ロジック３０２は、各データ・ピンを異なるクロック・レートで動作させる。即ち、ピンＲ６：Ｒ１８及びピンＴ７：Ｔ１９は、１／３のバス・クロック・レート（例えば、６ＧＴ／ｓではなく２ＧＴ／ｓ）で作動される。代替モードでは、クロック・レートを低減するとともにいくつかのピンを使用しないことにより、電力が節約される。
【００７４】
【表１】
0004824126.tif 000002
【００７５】
上記の表に示される代替モードにおける１組のピン割り当ては、図６の代替構成のすべてのチップで使用することができるが、上記の表に列挙されるすべてのピン割り当てを実際に使用するのはチップ２０２Ａだけである。他のチップは、これより少ないピンを使用することになる。例えば、チップ２０２Ｂは、４ビットの書き込みデータだけを受信し、したがってアウトバウンド書き込みデータの受信に必要なピンはＲ６：Ｒ９だけであり、ピンＲ１０：Ｒ１８は使用されない。同様に、チップ２０２Ｂは、３ビットの書き込みデータだけを他のチップに送信し、したがってアウトバウンド書き込みデータの送信に必要なピンはＴ７：Ｔ９だけであり、Ｔ１０：Ｔ１８は使用されない。
【００７６】
上記の表のピン割り当ては単なる１つの可能な割り当てセットにすぎず、他の割り当てを使用することもできることが理解されるだろう。受信ピン及び送信ピンの合計数が使用可能なピン数を超えない限り、本明細書に記載される他の様々な構成でも同様の割り当てを行うことができる。
【００７７】
図７は、サブ・クラスタ構成５０１の第２の変形例を示す。図７の構成は、図６の構成と同様であり、また、メモリ・チップ２０２Ａ〜２０２Ｈ及び２０２Ｊ〜２０２Ｍからの読み出しデータが直接ハブ４０２に送信されるのではなくチップ２０２Ｉに送信される点を除けば、図６の動作と同様である。チップ２０２Ｉは、そのような読み出しデータをチップ２０２Ｉ自体の読み出しデータと共にハブ４０２に送信する。
【００７８】
図７を参照すると、ハブ４０２からメモリ・チップ２０２Ａにアウトバウンド・リンク７０１が通されている。アウトバウンド・リンク７０１は、それぞれ書き込みデータ及びコマンド／アドレス・データをメモリ・チップ２０２Ａに送信するための１３本のデータ回線と５本のコマンド回線とを備える。１３本のデータ回線は２ＧＴ／ｓのバス周波数で動作し、５本のコマンド／アドレス回線は６ＧＴ／ｓのバス周波数で動作する。
【００７９】
一方、メモリ・チップ２０２Ａは、それぞれメモリ・チップ２０２Ｂ、２０２Ｃ、及び２０２Ｄに通じる３本の別個のアウトバウンド・リンク７０２、７０３、及び７０４を駆動する。メモリ・チップ２０２Ａからの各アウトバウンド・リンク７０２、７０３、７０４は、２ＧＴ／ｓのバス周波数で動作する４本のデータ回線と、６ＧＴ／ｓのバス周波数で動作する５本のコマンド／アドレス回線と、を備える。一方、メモリ・チップ２０２Ｂ、２０２Ｃ、及び２０２Ｄは、それぞれ３つの追加的なメモリ・チップ群に通じる３本の別個のアウトバウンド・リンクを駆動する。このような各アウトバウンド・リンクは、図６の構成の場合と同様に、２ＧＴ／ｓの１本のデータ回線と、６ＧＴ／ｓの５本のコマンド／アドレス回線と、を備える。
【００８０】
各メモリ・チップ２０２Ａ〜２０２Ｈ及び２０２Ｊ〜２０２Ｍはそれぞれ、メモリ・チップ２０２Ｉに通じる２ＧＴ／ｓで動作する単一のインバウンド・データ回線を駆動する。例えば、メモリ・チップ２０２Ｅは、インバウンド・データ回線７０８を駆動する。メモリ・チップ２０２Ｉは、このデータを受信すると、当該データをメモリ・チップ２０２Ｉ自体のデータと共にインバウンド・リンク７０７上でハブ４０２に転送する。インバウンド・リンク７０７は、２ＧＴ／ｓで動作する１３回線リンクであり、各チップ２０２Ａ〜２０２Ｍからのデータを収容する。
【００８１】
図７の構成は、図６の構成と比較した場合、データ読み出しの際に必然的に追加的なレイテンシ・サイクルを伴うことになるが、いくつかの潜在的な利点を有する。ハブ４０２に通じるすべての読み出し回線は単一のチップ、即ちチップ２０２Ｉから延びるものであり、したがってタイミング又は物理的レイアウトの問題を単純化することができる。図７の構成の別の利点は、各メモリ・チップ２０２Ａ〜２０２Ｈ及び２０２Ｊ〜２０２Ｍからの冗長インバウンド回線を設けるのに十分な数のポートが存在することである。これらの冗長インバウンド回線は、図７では破線７０９及び７１１で示されている。一次インバウンド・ポート又は回線のいずれかに障害が発生した場合は、このような冗長回線が元の回線の機能を引き継ぐことができる。したがって、メモリ・チップ２０２Ｉは、一次インバウンド回線７０８に割り当てられる１２個の受信器ピンと、冗長インバウンド回線７０９及び７１１に割り当てられる１２個の受信器ピンと、を有する。チップ２０２Ｉは、チップ２０２Ｃからの１ビットの書き込みデータ及び５ビットのコマンド／アドレス・データをリンク７０６上で受信するために６つの追加的な受信器ピンを必要とするので、合計のピン要件は３０ピン（１つは使用せず）となる。冗長性が望まれる場合、リンク７０７は、チップ２０２Ｉからハブ４０２に通じる１３本のインバウンド読み出し回線のいずれかのバックアップとして割り当てることが可能な追加的な冗長回線を１本収容することが好ましい。冗長性は図６の構成でも提供することができるが、その場合はハブ内に１３個の追加的な受信ポートが必要となり、その結果コストが大幅に増加することになる。
【００８２】
必要に応じて、冗長性はアウトバウンド・リンクでも提供することができる。即ち、１つの例外を除き、アウトバウンド・リンク７０１〜７０４及び７０６のそれぞれに追加的な冗長回線を設けるのに十分な数の不使用ポートが存在する。この１つの例外とは、それぞれ９回線のアウトバウンド・リンク７０２、７０３、７０４を有するチップ２０２Ａのことである。各リンク７０２、７０３、及び７０４に１０本目の冗長回線が追加された場合は、チップ２０２Ｉに通じる冗長性のないデータ回線７１０を除いて不使用の回線は存在しなくなる。この問題の解決策は、リンク７０３の冗長回線を共用することである。即ち、リンク７１０が故障した場合、読み出しデータはリンク７０３の冗長回線上でチップ２０２Ｃに送信され、そこからチップ２０２Ｉのデータ用の冗長回線７１１上に送信されることになる。冗長性は内部ロジックの複雑さを高めることになるが、追加的なＩ／Ｏポートを必要とすることはない。
【００８３】
上述の冗長性を利用した図７の構成における例示的なピン割り当てを以下の表２に示す。基本動作モードのピン割り当ては、上記の表１と同一であると仮定する。回線Ｒ６：１８、Ｒ２０：３１、及びＴ７：１９は１／３のクロック速度で動作するが、構成又は用途によっては他のいくつかの回線も１／３のクロック速度で動作する可能性がある。即ち、冗長回線が使用される場合、冗長回線は、それ自体が置き換わった回線のクロック速度で動作することになる。
【００８４】
【表２】
0004824126.tif 000003
【００８５】
図８は、サブ・クラスタ構成５０１の第３の変形例を示す。図８の構成において、すべての回線（即ち、コマンド／アドレスならびに記憶済みデータ）は、同一のクロック周波数、具体的には１／３のクロック周波数に相当する２ＧＴ／ｓで動作する。すべてのコマンド／アドレス・データをより低い周波数の回線を使用して送信するために、図８の構成では、各リンク毎により多くのコマンド／アドレス回線が使用される。このようなより多くの回線は、すべてのバス・リンクが２地点間リンクとされるデフォルト制約を緩和すること、即ちマルチ・ドロップ回線を使用することによってサポートすることができる。そのような場合、出力コマンド／アドレス・データは、マルチ・ドロップ・リンク上で２つのメモリ・チップに同時に送信される。個々のメモリ・チップは、別のメモリ・チップ及びハブ４０２と物理的に近接して配置されることが好ましい。一般には、このような配置と共により低いバス・クロック周波数を使用することにより、メモリ・チップ２０２が２地点間通信リンクと共に使用することが意図されているにも関わらず、チップのＩ／Ｏドライバ／受信器ハードウェアを修正することなく信頼性のあるマルチ・ドロップ構成をサポートすることが可能となる。
【００８６】
図８を参照すると、ハブ４０２からメモリ・チップ２０２Ａ及び２０２Ｂにアウトバウンド・リンク８０１が通されている。アウトバウンド・リンク８０１は、書き込みデータを送信するための１３本の２地点間データ回線を備え、そのうちの６本はメモリ・チップ２０２Ａに通じ、残りの７本はメモリ・チップ２０２Ｂに通じている。アウトバウンド・リンク８０１は更に、コマンド／アドレス・データを送信するための１５本のコマンド／アドレス回線を備える。これらのコマンド／アドレス回線はマルチ・ドロップであり、チップ２０２Ａと２０２Ｂの両方に通じている。代替例において、アウトバウンド・リンク８０１が長すぎるために、あるいは他の何らかの理由でマルチ・ドロップをサポートすることができない場合は、１５本のコマンド／アドレス回線を、一方はメモリ・チップ２０２Ａに通じ、他方はメモリ・チップ２０２Ｂに通じるような形で二重化し、それによってハブ４０２からチップ２０２Ａ及び２０２Ｂに２つの別個の２地点間リンクが通されるようにすることができる。リンク８０１のすべての回線は、２ＧＴ／ｓのバス周波数、即ち１／３のバス周波数で動作する。コマンド／アドレス・データは１５本の回線上で伝送されるため、同じ量のデータをより低い周波数で伝送することが可能となる。
【００８７】
一方、メモリ・チップ２０２Ａ及び２０２Ｂはそれぞれ、メモリ・チップ２０２Ｃ及び２０２Ｄ（リンク８０２の場合）ならびにメモリ・チップ２０２Ｅ及び２０２Ｆ（リンク８０３の場合）に通じるアウトバウンド・マルチ・ドロップ・リンク８０２及び８０３を駆動する。メモリ・チップ２０２Ａからのアウトバウンド・リンク８０２は、５本のデータ回線と１５本のコマンド／アドレス回線とを備える。メモリ・チップ２０２Ｂからのアウトバウンド・リンク８０３は、６本のデータ回線と１５本のコマンド／アドレス回線とを備える。リンク８０２及び８０３上のすべての回線は、２ＧＴ／ｓのバス周波数で動作する。
【００８８】
一方、メモリ・チップ２０２Ｃ、２０２Ｄ、２０２Ｅ、及び２０２Ｆはそれぞれ、１対のメモリ・チップ（チップ２０２Ｄの場合は単一のメモリ・チップ２０２Ｉ）に通じるアウトバウンド・リンクを駆動する。例えば、メモリ・チップ２０２Ｃは、チップ２０２Ｇ及び２０２Ｈに通じるアウトバウンド・リンク８０４を駆動する。アウトバウンド・リンク８０４は、（チップ２０２Ｇと２０２Ｈの両方に通じる）１５本のマルチ・ドロップ・コマンド／アドレス回線と、それぞれチップ２０２Ｇ及び２０２Ｈの一方に通じる２本の書き込みデータ回線と、を備える。これらのすべての回線は、２ＧＴ／ｓのバス周波数で動作する。
【００８９】
各メモリ・チップ２０２Ａ〜２０２Ｍは、ハブ４０２直通の単一のインバウンド読み出しデータ回線を、やはり２ＧＴ／ｓのバス周波数で駆動する。
【００９０】
動作において、ハブ４０２は、好ましくはそのコマンドが対象クラスタにアドレス指定されているかどうかを判定するのに十分な情報が収容される、最初の３つのバス・サイクルのコマンド／アドレス（合計１５ビットのコマンド／アドレス・データ）を蓄積する。そのコマンドが対象クラスタにアドレス指定されている場合には、当該コマンドは、各サブ・クラスタのリンク８０１内の１５本のコマンド／アドレス回線上で、当該コマンドがアドレス指定されているクラスタ内の３つの各サブ・クラスタに、２ＧＴ／ｓで同時に再送信される。これらの１５本のコマンド／アドレス回線はマルチ・ドロップであるので、コマンド／アドレス・データはチップ２０２Ａとチップ２０２Ｂの両方で受信される。コマンドが書き込みコマンドである場合には、ハブは、それ自体の１３本のアウトバウンド・データ入力回線上でメモリ・コントローラからの書き込みデータも受信する。この書き込みデータは、インターリーブ形式で３つのサブ・クラスタに再送信され、各サブ・クラスタは、当該書き込みデータをリンク８０１の１３回線データ部分上で２ＧＴ／ｓで受信する。
【００９１】
次に、メモリ・チップ２０２Ａ及び２０２Ｂはそれぞれ、当該コマンド／アドレス・データをリンク８０２及び８０３の１５回線コマンド／アドレス部分上でチップ２０２Ｃ、２０２Ｄ、２０２Ｅ、及び２０２Ｆに再送信する。コマンドが書き込みコマンドである場合には、チップ２０２Ａは、メモリ・チップ２０２Ｃ、２０２Ｄ、２０２Ｇ、２０２Ｈ、及び２０２Ｉに関する５ビットの書き込みデータもリンク８０２上で再送信する一方、チップ２０２Ｂも同様に、チップ２０２Ｅ、２０２Ｆ、及び２０２Ｊ〜２０２Ｍに関する６ビットの書き込みデータをリンク８０３上で再送信する。次に、各メモリ・チップ２０２Ｃ、２０２Ｄ、２０２Ｅ、及び２０２Ｆは、コマンド／アドレス及び該当する書き込みデータを対応する１対のチップ（又は単一のチップ）に再送信する。即ち、図８に示されるように、チップ２０２Ｃはチップ２０２Ｇ及び２０２Ｈにデータを再送信し、他のチップも同様にデータを再送信する。
【００９２】
コマンドが読み出しコマンドである場合には、各チップは、当該チップからの対応する読み出しデータをそれぞれの１ビット回線上でハブ４０２に直接２ＧＴ／ｓで送信する。このデータは、図６及び図７の構成と同様にインターリーブ形式で記憶される。この読み出しデータは、必要に応じてハブ４０２によってバッファされ、その後チェーン４０４上でメモリ・コントローラに再送信される。
【００９３】
以下の表３は、基本（デイジー・チェーン接続）モードのピン割り当てと比較した、図８の構成に関する代表的な１組のピン割り当てを示す。すべてのチップ２０２Ａ〜２０２Ｍは、同一モードのピン割り当て構成を使用することができるが、図８に列挙されるすべてのピンを必ずしも使用しないチップもある。例えば、チップ２０２Ｇは、コマンド／アドレス・データの再送信又は別のチップに関する書き込みデータの受信を行わないので、ピンＲ７：１８、Ｔ１：５、Ｔ７：１８、及びＴ２０：２９は不使用となる。図８の構成におけるピン割り当ては、デイジー・チェーン接続モードの基本ピン割り当てと事実上同一であり、ｃｍｄ６：１５は、不使用のインバウンド読み出し回線２：１１上で受信され転送されることが分かるだろう。言うまでもなく、内部チップ・ロジックは、コマンド及びアドレスを復号化するために、回線Ｒ２０：２９上のスイッチ信号を（インバウンド読み出しデータではなく）コマンド／アドレス・データとして認識する必要がある。
【００９４】
【表３】
0004824126.tif 000004
【００９５】
先述のとおり、好ましい実施形態の各代替構成では、各チップが各メモリ・アクセスに関する２ビットを収容するように、各メモリ・アクセスで最大７８ビットのアドレス指定可能データ及び補助ビットがそれぞれ１３個のチップを収容する３つのサブ・クラスタ間でインターリーブされる。標準的なデイジー・チェーン構成において、メモリ・アクセスに係るすべてのデータ（８バイト＋補助ビット）は単一のチップ上に所在する。チップ・サイズが同一である場合は、（好ましい実施形態の場合のように）２ビットを識別する際に、（基本動作モードの場合のように）８バイトを識別する場合よりも更に５ビットのアドレスが必要となる。このため、追加的なアドレス回線が必要になると考えられるかもしれない。しかしながら、基本動作モードでは、デイジー・チェーン内のどのチップがアドレス指定されているかを識別するいくつかのアドレス・ビットも使用される。好ましい実施形態によれば、ハブはメモリ・コントローラから受信されるフル・アドレスを復号化し、コマンドが特定のクラスタ宛てのものである場合にだけコマンドの転送を行うので、クラスタ内のチップにアクセスする上で上記のチップ選択アドレス・ビットは必要とされない。本明細書において、このようなチップ選択アドレス・ビットは、クラスタ構成内のチップを特定する上では必要とされず、（チップ内の８バイトとは対照的に）チップ内の２ビットのインターリーブ・データを識別するのに必要となる追加的なアドレス・データを提供すれば十分であると仮定する。
【００９６】
好ましい実施形態の構成は最大１４の補助ビットをサポートするが、必ずしもすべての補助ビット位置が使用されるわけではなく、実際には使用されないものもある。追加的なチップのコストを節約することが望まれる場合は、別法として、補助ビット位置の一部又は全部が対応するチップでいっぱいにならないようにすることも可能である。
【００９７】
好ましい一実施形態として本明細書に開示される最大１４の補助ビットは様々な形で使用され得るが、１つの具体的な応用例は、チップ・キル（ｃｈｉｐ  ｋｉｌｌ）としても知られる冗長メモリ・チップのサポートである。冗長性は、各クラスタ内の３９個のチップを冗長スペア・チップとして設計することによってサポートされる。クラスタ内のいずれかのチップ内でチップ誤動作が検出された場合は、その後、誤動作が起きたチップに割り当てられているデータをスペア・チップに割り当てることができる。必要に応じて、誤動作が起きたチップに事前に書き込まれたデータはＥＣＣを使用して再構築することができ、スペア・チップに再書き込みすることができる。このようなチップ・ストレージ能力のリマッピングは、メモリ・コントローラ４０１又はハブ４０２内で実行することができる。
【００９８】
本明細書に記載される階層的なインターリーブ設計によってサポートされ得る１つの可能なメモリ・アーキテクチャの変形例では、メモリ・コントローラの２地点間リンク４０５上及びサブ・クラスタ通信リンク５０２上で各コマンドによって転送されるデータ容量が大幅に増加する。上述の様々な実施形態において、各読み出しコマンド及び書き込みコマンドは、８バイトの読み出しデータ又は書き込みデータ＋補助ビット（最大で合計７８ビット）を転送し、メモリ・コントローラの２地点間リンク４０５上で６つのバス・サイクルを必要とする。このようなデータ・アクセス毎のサイクル数はバースト・レート（ｂｕｒｓｔ  ｒａｔｅ）と呼ばれることもあり、従来のデイジー・チェーン構成では、４又は８のバースト・レートが典型的である。デイジー・チェーン構成のバースト・レートは、典型的には誤り訂正符号（ＥＣＣ）、チップ・キル・サポートの望ましさ、及び他の要因によって制限される。一方、本明細書に記載される階層的なインターリーブ設計は、より高いバースト・レートを可能にする固有の冗長性を有する。実際には、単一のデータ・アクセス中に転送されるデータ量をキャッシュ・ライン・サイズと同程度まで高めることができ、例えば６４バイトや１２８バイトとすることができる。
【００９９】
各データ・アクセス中により大量のデータを転送することにより、コマンドを繰り返す必要がなくなり、したがって送信されるコマンド／アドレス・データ量が減少する。このようなデータ量の減少により、コマンド／アドレス・データ用の回線数又はそれらの回線の周波数あるいはその両方を低減することが可能となる。そのような場合は、コマンド／アドレス・データ及び書き込みデータについて上述したような専用回線を使用するのではなく、共用回線を使用することが好ましい可能性がある。
【０１００】
例えば、各データ・アクセスで６４バイトの読み出しデータ又は書き込みデータが転送される場合、上述のような２地点間リンク４０５上の１３本のデータ回線は、データの転送に４８サイクルを必要とする。しかし、たった３０ビットのコマンド／アドレスを送信するだけで済むのであれば、単一のコマンド／アドレス回線があれば十分である。というのも、単一のコマンド／アドレス回線は３０ビットの転送に４８サイクルを有するからである。（キャッシュ・ラインが６４バイト境界上に整列すると仮定すると、ある６４バイト・キャッシュ・ラインを識別するのに必要とされるアドレス回線数は、実際には更に少ない３本となるので、ビット数は減少させることができる。）しかしながら、そのような場合は、受信側デバイスがアクセス対象データのアドレスを知るまでに多数のサイクルにわたって待機しなければならなくなるので、コマンド／アドレスについて単一の専用回線を使用することは、恐らく望ましくないだろう。まずコマンド／アドレス・データがすべての回線を使用して転送され、その後書き込みデータ（該当する場合）が転送されるような形で、すべての回線が共用されることが好ましい。その場合も、同一量のアクセス対象データに対して転送すべき合計バス・データ量が少なくなるので、必要となる合計回線数を減少させることができる。
【０１０１】
本例は更に、サブ・クラスタ通信リンク５０２にも適用することができる。例えば、図６の構成がアクセス毎に６４バイトのデータが転送されるメモリ・アーキテクチャで使用される場合、リンク６０１は、それぞれコマンド／アドレス及びデータについて共用され、２ＧＴ／ｓ、即ち、メモリ・バスの２地点間リンク４０５の１／３のクロック周波数で動作することが可能な複数の回線を収容することが好ましい。まずコマンド／アドレスが転送され、その後データが転送される。メモリ・バスの２地点間リンク４０５上では各データ・アクセス動作毎に４８サイクルが必要とされるので、１／３の周波数で動作するリンク６０１は、１６サイクルを完了させ、３０ビットのコマンド／アドレスと、合計２０８ビットのデータ及び補助ビットとを転送しなければならない。リンク６０１上では１５回線しか必要とされない。
【０１０２】
同様に、各リンク６０２、６０３、及び６０４は、リンク６０１と同じ約３０ビットのコマンド／アドレスと、合計６４ビットのデータ及び補助ビットとを転送しなければならない。１６サイクルが使用可能であるので、各リンク６０２、６０３、６０４毎に少なくとも６回線が必要となる。しかしながら、６回線を使用する場合はすべてのコマンド／アドレスを転送するのに５サイクルを要することになるので、より多数の回線（例えば９回線や１０回線）を使用することが望まれる可能性もあり、その場合はレイテンシが増加することになる。各チップ上で使用可能な合計出力ポート数を３１以内に抑えるために、回線数は１０に制限すべきである。同様の分析がリンク６０５、６０６、６０７にも当てはまる。
【０１０３】
言うまでもなく、このような構成では、様々な回線用途をサポートし、コマンド／アドレス情報をバッファする必要があること等により、チップの内部ロジックが更に複雑化する可能性がある。本明細書で前述した様々な構成と比較すると、コマンド／アドレス・データを送信する上でより多くのサイクル（又はより低速なサイクル）が必要とされる場合に、メモリ・アクセス・コマンド毎のデータ量を上述のように増加させることによってイテンシが増加する恐れがあるが、必要とされる回線数を減少させることができ、その結果、メモリ・コントローラ又はハブあるいはその両方がより大規模なメモリ構成をより容易な形でサポートすることが可能となり、また、いくつかの回線のバス周波数を低下させることにより、消費電力を低減することも可能となる。
【０１０４】
図６乃至図８に関して上述した様々な代替実施形態では、アウトバウンド・コマンド／アドレス・データ及び書き込みデータがメモリ・チップ・ツリーの複数のレベルで伝搬される。例えば、図６の構成において、アウトバウンド・コマンド／アドレス・データ及び書き込みデータは、まずハブからチップ２０２Ａ（第１のレベル）に送信され、次にチップ２０２Ｂ、２０２Ｃ、及び２０２Ｄ（第２のレベル）に送信され、その後第３のレベルの残りのチップに送信される。後続の各レベルでは、メモリ・アクセス・コマンドの伝搬に追加的なレイテンシが導入される。クラスタ内のチップは、異なる数のレベルで構成することも可能である。例えば、クラスタを３つのサブ・クラスタに分割し、別個のコマンド／アドレス・データを３つのすべてのサブ・クラスタに同時に駆動する代わりに、すべてのデータを単一のチップに提供し、そのデータを後続レベルの単一のクラスタに再伝搬することも可能である。このアプローチはハブ内の回線数を減少させることができるが、その代償として、レイテンシ及び消費電力が増加する。
【０１０５】
図６乃至図８を参照して上述した様々な構成において、書き込みデータは、コマンド／アドレス・データの場合と同様にツリーの上から順番に伝搬されることが想定されている。しかしながら、各ビットの書き込みデータの宛先は１つだけであるため、別の方法では、メモリ・モジュールとハブとの間に書き込みデータに関する直接リンクを提供し、コマンド／アドレスだけをツリーの上から順番に伝搬させることが可能となる可能性もある。この変形例は、内部ロジックの複雑さ、及びハブ又はメモリ・チップあるいはその両方におけるバッファ動作の複雑さを高める可能性がある。この変形例では、ハブ内の出力回線数は必ずしも減少しないが、書き込みデータをツリーの上から順番に再伝搬させるためにチップ内で必要となるＩ／Ｏ回線数が減少し、その結果消費電力が低減され、場合によっては構成上の追加的な柔軟性ももたらされる。しかしながら、このような変形例は、書き込みデータ及びコマンド／アドレス・データが同一の共用回線上で伝送される場合は現実的でない可能性があることが分かるだろう。
【０１０６】
図６乃至図８には本発明の一般原理を実施する具体的な構成が示されているが、本発明に係るメモリ・チップの様々な代替構成を使用することができることが理解されるだろう。限定ではなく例示として、本明細書の他の部分に開示される変形例に加えて、以下のいずれかのパラメータ変更を本発明の範囲内で行うことが可能である：クラスタはサブ・クラスタを含むことも含まないこともでき、また、サブ・クラスタ数は変更することができる；クラスタ又はサブ・クラスタ内のチップ数を変更することができる；コマンド／アドレス数又はデータ回線数を変更することができる；メモリ・アクセス毎のバス周波数又はバス・サイクル数あるいはその両方を変更することができる；メモリ・アクセス毎のデータ・ビット数又はコマンド／アドレス・ビット数あるいはその両方を変更することができる；信号をクラスタに伝搬させるチップ・ツリー内のレベル数を変更することができる；データ・インターリーブの粒度を変更することができる；メモリ・チップ内のポート数及び機能を変更することができる。
【０１０７】
本明細書に記載の好ましい実施形態では、デイジー・チェーン接続された複数のハブ再駆動チップ（ｈｕｂ  ｒｅ−ｄｒｉｖｅ  ｃｈｉｐ）を使用して、複数のメモリ・チップ・クラスタへのアクセスが行われる。この構成は、各メモリ・コントローラ・バス・ポート上で多数のメモリ・チップをサポートするのに利用される。しかしながら、別の方法では、ハブ再駆動チップを使用することなく、メモリ・チップ・クラスタ又はサブ・クラスタをメモリ・コントローラに直接接続することも可能である。かかる一代替実施形態では一般に、好ましい実施形態の構成よりも小さい数のメモリ・チップがサポートされる。
【０１０８】
本明細書に記載の好ましい実施形態では、少なくとも１つの動作モードにおいて従来のデイジー・チェーン構成で機能することができ、少なくとも１つの他の動作モードにおいて本明細書に記載されるような階層的なメモリ構成で機能することができる、マルチ・モード・メモリ・チップが使用される。しかしながら、別の方法では、特にそのような階層構成向けに設計されたシングル・モード・メモリ・チップを使用することも、前述のようなデイジー・チェーン構成をサポートしないメモリ・チップを使用することもできる。
【０１０９】
以上、本発明の特定の実施形態をいくつかの代替実施形態と共に説明してきたが、添付の特許請求範囲の各請求項の範囲内で本発明の形態及び細部に追加的な変更を施すことができることが、当業者には理解されるだろう。
【図１】
0004824126.tif 000005
【図２】
0004824126.tif 000006
【図３】
0004824126.tif 000007
【図４】
0004824126.tif 000008
【図５】
0004824126.tif 000009
【図６】
0004824126.tif 000010
【図７】
0004824126.tif 000011
【図８】
0004824126.tif 000012
【図９】
0004824126.tif 000013