(57)【特許請求の範囲】
【請求項１】
ホスト（１００）と、
複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）と、
前記複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）を介して前記ホストにチェーン状にシリアル結合された複数のメモリモジュール（１５０Ａ、１５０Ｂ）とを含むシステム（５０）であって、
前記複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）の各々は、前記ホスト（１００）の方へトランザクションを伝達するための一方向アップリンク（２１１）と、前記一方向アップリンク（２１１）とは別の、前記ホスト（１００）で生じたトランザクションを伝達するための一方向ダウンリンク（２１２）とを含み、前記一方向アップリンクおよび前記一方向ダウンリンクの各々が、制御およびコンフィギュレーションパケットと、メモリアクセスパケットとを含むパケットを用いてトランザクションを伝達するように構成された複数の信号を含む、別々の一方向リンクであり、パケットの少なくとも一部分が、制御アドレスデータ情報を含み、前記制御アドレスデータ情報が、所与の前記一方向アップリンク又は前記一方向ダウンリンクのいずれか一つの同一のワイヤを共有し、
前記複数のメモリモジュール（１５０Ａ、１５０Ｂ）の各々は、複数のメモリチップ（２６１Ａ〜Ｎ）と、前記複数のメモリチップ（２６１Ａ〜Ｎ）へのアクセスを制御するように結合されたメモリ制御ハブ（１６０Ａ、１６０Ｂ）とを含み、
前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）の各々は、前記複数のメモリチップ（２６１Ａ〜Ｎ）に結合されたＤＲＡＭコントローラ（２５０）と、前記複数のメモリリンクの一つである第１のメモリリンク（１１０Ａ）の前記一方向アップリンク（２１１Ａ）及び前記複数のメモリリンクの一つである第２のメモリリンク（１１０Ｂ）の前記一方向アップリンク（２１１Ｂ）に結合されたアップリンク制御ユニット（２４１）と、前記第１のメモリリンク（１１０Ａ）の前記一方向ダウンリンク（２１２Ａ）及び前記第２のメモリリンク（１１０Ｂ）の前記一方向ダウンリンク（２１２Ｂ）に結合されたダウンリンク制御ユニット（２４１）とを含み、
前記一方向ダウンリンクの前記複数の信号は、前記ホスト（１００）と前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）との間に結合された前記複数のメモリモジュール（１５０Ａ、１５０Ｂ）の前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）によって投入されることになるローカルトランザクションの数を、各々の前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）に対して指示するビジー信号を更に含み、
前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）は、前記ビジー信号に応えて、前記一方向アップリンク（２１１）にパケットを投入する、システム（５０）。
【請求項２】
前記メモリ制御ハブの各々が、前記複数のメモリチップ（２６１Ａ〜Ｎ）へのアクセスを制御するように結合されており、かつ、前記一方向アップリンク（２１１）及び前記一方向ダウンリンク（２１２）の両方を介して前記ホスト（１００）に結合されており、
前記複数のメモリモジュール（１５０Ａ、１５０Ｂ）は、少なくとも、チェーンを形成する第１のメモリモジュール（１５０Ａ）と、チェーンを形成する最後のメモリモジュールとを含み、
前記複数のメモリモジュール（１５０Ａ、１５０Ｂ）は、前記第１のメモリモジュール（１５０Ａ）が前記複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）の一つである前記第１のメモリリンクを介して前記ホスト（１００）に接続されるようにシリアル接続されてチェーンを形成し、
前記複数のメモリモジュール（１５０Ａ、１５０Ｂ）は、チェーンを形成する前記最後のメモリモジュールを除いて、前記複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）のうちの二つに接続され、前記最後のメモリモジュールは、前記複数のメモリリンク（１１０Ａ、Ｂ、Ｃ）のうちの一つにのみ接続される、請求項１に記載のシステム。
【請求項３】
前記最後のメモリモジュールの前記メモリ制御ハブ（１６０Ａ、１６０Ｂ）は、受け取ったパケットが前記最後のメモリモジュールに割り当てられたアドレスレンジ内にあるアドレスを含まないパケットであれば、前記パケットを破棄する、請求項２に記載のシステム。
【請求項４】
前記メモリ制御ハブが、前記第１のメモリリンクの前記一方向ダウンリンク（２１２Ａ）上で前記トランザクションを受信し、前記トランザクションの復号とは関係なく、前記第２のメモリリンクの前記一方向ダウンリンク（２１２Ｂ）上で前記トランザクションを伝達するように構成された、請求項１に記載のシステム。
【請求項５】
前記メモリ制御ハブに含まれる前記ＤＲＡＭコントローラ（２５０）が、前記メモリ制御ハブと関連するメモリアドレスと整合するメモリアドレスを有するメモリコマンドに前記トランザクションを復号することに応答して、前記複数のメモリチップにアクセスするように構成された、請求項４に記載のシステム。
【請求項６】
前記メモリ制御ハブが、前記第１のメモリリンクの前記一方向アップリンク上で前記トランザクションを受信し、前記第２のメモリリンクの前記一方向アップリンク上で前記トランザクションを伝達するように構成され、
前記メモリ制御ハブが、前記第２のメモリリンクの前記一方向アップリンク上で伝達されている前記トランザクションのシーケンスにローカルトランザクションを選択的に投入するように構成された制御ユニットを含む、請求項１に記載のシステム。
【請求項７】
前記ホストが、前記メモリモジュールの各々に関連するメモリサイズまたは前記メモリモジュールの任意のものに関連するアドレスレンジが分からなくても、メモリリエクストトランザクションを発行するように構成されたメモリコントローラ（１０５）を含む、請求項１に記載のシステム。
【請求項８】
前記メモリコントローラが、先行メモリリードリクエストトランザクションに対する応答を受信する前に、メモリリードリクエストトランザクションを発行するようにさらに構成された、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムメモリに関し、さらに詳しくは、メモリモジュールのコンフィギュレーションおよびメモリサブシステムのトポロジに関する。
【背景技術】
【０００２】
多くのコンピュータシステムには、エンドユーザの必要性に応じて構成され得るメインシステムメモリが採用されている。このようなシステムでは、マザーボードまたはシステムボードが、多数のメモリ拡張ソケットを含んでもよい。メモリモジュールと呼ばれる１つ以上の小型回路基板が、コンピュータシステムのメモリ容量を増大させる必要に応じて、ソケットに差し込まれてもよい。メモリモジュールの各々は、典型的に、所与の量のメモリ容量を与える複数のメモリデバイスを含む。メモリデバイスは、一般に、ダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)の何らかのタイプを用いて与えられる。ＤＲＡＭタイプのいくつかの例は、同期ＤＲＡＭ(SDRAM:synchronous DRAM)とともに、さまざまなタイプのダブルデータレートＳＤＲＡＭ(DDR SDRAM:double data rate SDRAM)を含む。
【０００３】
従来のコンピュータシステムにおいて、メモリモジュールは、アドレス、制御、およびデータ信号を含むメモリバスを介してメモリ／ＤＲＡＭコントローラに接続される。アドレス、制御、およびデータ信号が、多重化されてもよく、したがって、同一のワイヤセットを共有してもよいコンピュータシステムもある。アドレス、制御、およびデータ信号が、別のワイヤを使用してもよいコンピュータシステムもある。いずれの場合においても、アドレスおよび制御信号の各々は、差し込まれたとき、メモリモジュールがメモリ／ＤＲＡＭコントローラにパラレル接続されるように、各拡張ソケットに送られる。メモリ／ＤＲＡＭコントローラが、システムプロセッサと同じ集積回路（IC:integrated circuit)チップ上に存在してもよいシステムもあれば、メモリ／ＤＲＡＭコントローラが、チップセットの１つのＩＣ（例えば、ノースブリッジ）に存在してもよいシステムもある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムプロセッサの動作速度は高速化し続けているが、メインシステムメモリの相対的な性能は同じ速度で高くなっているわけではない。これは、少なくとも部分的に、上述したメモリバスアーキテクチャの帯域幅の改良が段階的なものであることが原因となりうる。
【課題を解決するための手段】
【０００５】
複数のメモリモジュールを含むシステムのさまざまな実施形態が開示される。１つの実施形態において、メモリモジュールのシリアル接続されたチェーンにホストが結合される。
【０００６】
１つの特定の実施形態において、メモリモジュールの各々は、メモリモジュール上の複数のメモリチップへのアクセスを制御してもよいメモリ制御ハブを含んでもよい。さらに、メモリモジュールは、複数のメモリリンクを介してホストにチェーン状にシリアル結合される。各メモリリンクは、ホストの方へトランザクションを伝達するためのアップリンクと、ホストから生じるトランザクションをチェーンの次のメモリモジュールへ伝達するためのダウンリンクとを含んでもよい。アップリンクおよびダウンリンクの各々は、制御およびコンフィギュレーションパケットと、メモリアクセスパケットとを含むパケットを用いて、トランザクションを伝達してもよい複数の信号を含む一方向リンクであってもよい。
【０００７】
別の特定の実施例において、メモリ制御ハブは、第１のメモリリンクの第１のダウンリンク上で受信したトランザクションを復号してもよい。さらに、メモリ制御ハブは、トランザクションの復号とは関係なく、第２のメモリリンクの第２のダウンリンク上でトランザクションを伝達してもよい。
【０００８】
さらなる別の特定の実施例において、メモリ制御ハブは、メモリ制御ハブに関連するメモリアドレスと整合するメモリアドレスを有するメモリコマンドにトランザクションを復号することに応答して、メモリチップにアクセスしてもよいＤＲＡＭコントローラを含んでもよい。
【０００９】
本発明にはさまざまな修正および別の形態の余地があるが、本発明の特定の実施形態が図面において例示的に示されており、本願明細書において詳細に記載される。しかしながら、図面および詳細な記載は、開示された特定の形態に本発明を制限するように意図されたものではなく、添付の特許請求の範囲によって規定されたような本発明の趣旨および範囲内のすべての修正物、等価物、および代替物に範囲が及ぶことが意図されていることを理解されたい。見出しは、体系的な目的でしかなく、本願明細書または特許請求の範囲を制限または解釈するために用いることを意図したものではないことを留意されたい。さらに、「〜してもよい、〜の場合もある(may)」という用語は、義務の意味（すなわち、〜しなければならない(must)）ではなく、許容の意味（すなわち、〜する可能性がある(having the potential to)、〜することが可能である(being able to)）で本願を通して使用されることに留意されたい。「〜を含む(include)」という用語およびその派生語は、「〜を含むが、それに限定されるものではない(including,but not limited to)」を意味する。「接続される(connected)」という用語は、「直接的または間接的に接続される(directly or indirectly connected)」を意味し、「結合される(coupled)」という用語は、「直接的または間接的に結合される(directly or indirectly coupled)」を意味する。
【発明を実施するための最良の形態】
【００１０】
以下、図１を参照すると、メモリモジュールのシリアル接続されたチェーンを含むシステムの１つの実施形態のブロック図が示されている。システム５０は、メモリリンク１１０Ａを介してシステムメモリ１２５に結合されたホスト１００を含む。システム５０は、例えば、コンピュータシステムまたはサーバシステムなどのコンピューティングデバイスの一部として動作するように構成されてもよい。システムメモリ１２５は、メモリインク１１０Ｂを介してメモリモジュール１５０Ｂに結合されたメモリモジュール１５０Ａを含む。メモリモジュール１５０Ｂは、メモリリンク１１０Ｃに結合されて示されており、メモリリンク１１０Ｃは、ホスト１００に結合されたメモリモジュールのシリアル接続されたチェーンを形成する必要があれば、さらなるメモリモジュール（図示せず）に結合されてもよい。２つのメモリモジュールがチェーン状に示されているが、１つ以上のメモリモジュールがこのように接続されてもよいと考えられることに留意されたい。後ろに参照文字が続く含む参照番号を含むコンポーネントは、一般的に、参照番号のみで参照されることもあることにさらに留意されたい。例えば、一般的に、すべてのメモリモジュールを参照する場合、メモリモジュール１５０が参照されることもある。
【００１１】
例示した実施形態において、メモリモジュール１５０Ａは、メモリ制御ハブ１６０Ａを含み、メモリ制御ハブ１６０Ａは、メモリチップ１７１Ａ〜１７１Ｎと示された複数のメモリデバイスに結合され、ここでＮは、必要に応じて、任意の数であってもよい。１つの実施形態において、メモリ制御ハブ１６０Ａは、任意のタイプのメモリインターコネクトを介してメモリチップに結合されてもよい。例えば、１つの実施形態において、メモリインターコネクトは、典型的なアドレス、制御、およびデータバスのコンフィギュレーションのものであってもよい。
【００１２】
同様に、メモリモジュール１５０Ｂは、メモリ制御ハブ１６０Ｂを含み、メモリ制御ハブ１６０Ｂは、メモリチップ１８１Ａ〜１８１Ｎと示された複数のメモリデバイスに結合され、ここでＮは、必要に応じて、任意の数であってもよい。１つの実施形態において、メモリ制御ハブ１６０Ｂは、上述したように任意のタイプのメモリインターコネクトを介してメモリチップに結合されてもよい。メモリチップ１７１Ａ〜１７１Ｎおよび１８１Ａ〜１８１Ｎの各々は、例えば、メモリデバイスのＤＲＡＭ系のメモリデバイスなど、任意のタイプのメモリデバイスであってもよい。
【００１３】
例示した実施形態において、メモリリンク１１０Ａ〜１１０Ｃは、メモリインターコネクトを形成する。１つの実施形態において、メモリリンク１１０Ａ〜１１０Ｃの各々は、２セットの一方向ラインとして与えられるポイント・ツー・ポイントメモリインターコネクトを形成する。１つのセットの一方向ラインは、ダウンリンクと呼ばれ、ホスト１００からダウンストリーム方向にトランザクションを伝達するように構成される。もう１つのセットの一方向ラインは、アップリンクと呼ばれ、ホスト１００の方へアップストリーム方向にトランザクションを伝達するように構成される。さらに、１つの実施形態において、各セットの一方向ラインは、複数の異なる信号対を用いて与えられてもよい。１つの実施形態において、各メモリリンク１１０は、１８ビットダウンリンクおよび１６ビットアップリンクを含み、各ビットは異なる信号対である。図５Ａ〜図５Ｄの記載とともに以下にさらに詳細に記載するように、メモリリンク１１０によって形成されたメモリインターコネクトは、パケットを伝達するように構成されてもよい。
【００１４】
一般的に言えば、ホスト１００からのすべてのトランザクションは、ダウンリンク上のすべてのメモリモジュール１５０を介してダウンストリームに流れ、すべての応答トランザクションは、応答するメモリモジュール１５０からアップリング上の各アップストリームメモリモジュール１５０を介してアップストリームに流れる。さらに詳しく言えば、１つの実施形態において、ホスト１００は、システムメモリ１２５内にデータを引き出したり格納したりするようにリクエストしてもよい。ホスト１００のリクエストに応答して、メモリコントローラ１０５は、例えば、メモリリードトランザクションまたはメモリライトトランザクションなどの対応するトランザクションを開始する。メモリコントローラ１０５は、メモリリンク１１０Ａを介してシステムメモリ１２５にトランザクションを伝送する。例示した実施形態において、トランザクションは、メモリモジュール１５０Ａのメモリ制御ハブ１６０Ａによって受信される。
【００１５】
トランザクションの受信に応答して、メモリ制御ハブ１６０Ａは、トランザクションを復号することなく、メモリリンク１１０Ｂを介してメモリモジュール１５０Ｂに受信したトランザクションを伝送するように構成される。これを、トランザクションのダウンストリーム転送と呼ぶ。このように、所与のメモリモジュール１５０の所与メモリ制御ハブ１６０によって受信した各トランザクションは、トランザクションを復号することなく、ダウンリンクに結合されたチェーンの次のメモリモジュール１５０に転送される。１つの実施形態において、トランザクションの復号は、トランザクションの転送と平行して生じてもよい。他の実施形態において、トランザクションの復号は、トランザクションが転送された後に生じてもよい。ダウンストリーム転送機能についてのさらなる詳細な記載は、図３の記載において以下に見受けられる。
【００１６】
同様に、例えば、メモリコントローラ１０５が、リードリクエストトランザクションを開始すれば、リクエストのアドレスに対応するメモリロケーションを有するメモリモジュール１５０は、リクエストされたデータと応答することになる。この応答は、メモリモジュールのアップリンク上でホスト１００へと送信される。送信メモリモジュールとホスト１００との間に介在するメモリモジュールがあれば、介在するメモリモジュールは、ホスト１００、またはアップストリーム方向にあるチェーンの次のメモリモジュールのいずれかへ、アップリンク上で応答トランザクションを転送する。さらに、応答メモリモジュールが、応答を送信する準備が整うと、アップリング上でアップストリーム転送されているトランザクションシーケンスに応答を投入してもよい。アップストリーム転送機能のさらなる詳細な記載は、図５の記載において以下に見受けられうる。
【００１７】
１つの実施形態において、メモリコントローラ１０５は、特定のアドレスが関連するのはどちらのメモリモジュール１５０Ａおよび１５０Ｂかということが分かっていなくても、システムメモリ１２５にリクエストするように構成されてもよい。例えば、メモリモジュール１５０の各々は、システムコンフィギュレーションシーケンス中にメモリアドレスレンジに割り当てられてもよい。各メモリ制御ハブ１６０は、入力するリクエストのアドレスを復号してもよいロジック（図１に示さず）を含んでもよい。このように、所与のメモリモジュール１５０のメモリ制御ハブ１６０は、所与のメモリモジュール１５０に割り当てられたアドレスレンジにあるアドレスを有するメモリリクエストの復号に応答して、所与のメモリモジュール１５０上のメモリチップへメモリリードサイクルまたはメモリライトサイクルを開始してもよい。図２の記載とともに以下にさらに詳細に記載するように、１つの実施形態において、各メモリ制御ハブ１６０は、接続されるメモリチップに対してメモリサイクルを開始するためにＤＲＡＭコントローラ（図１に示さず）を含んでもよい。
【００１８】
さらに、１つの実施形態において、メモリコントローラ１０５は、前のメモリアクセスリクエストに対する応答を受信する前に、次のメモリアクセスリクエストを開始してもよい。このような実施形態において、メモリコントローラ１０５は、顕著なリクエストを追跡してもよく、したがって、送信されたものとは異なる順序で応答を処理してもよい。
【００１９】
別の実施形態において、メモリリンク１１０の各々が、１セットの双方向ラインとして与えられるポイント・ツゥー・ポイントメモリインターコネクトを形成してもよい。このようにして、双方向ワイヤセット上でアップストリームおよびダウンストリームの両方のトランザクションが流れてもよい。このような実施形態において、双方向ラインは、複数の異なる信号対を用いて与えられてもよい。
【００２０】
図２を参照すると、図１に示すメモリモジュールなどのメモリモジュールの１つの実施形態のブロック図が示されている。明確化および簡略化するために、図１に示すものに対応するコンポーネントに同一の参照番号が付与される。メモリモジュール１５０は、メモリバス２６５を介してメモリチップ２６１Ａ〜２６１Ｎに結合されたメモリ制御ハブ１６０を含む。メモリ制御ハブ１６０は、ＤＲＡＭコントローラ２５０に結合された制御ユニット２４０を含む。ＤＲＡＭコントローラ２５０は、メモリチップ２６１Ａ〜２６１Ｎに結合される。制御ユニット２４０は、アップリンク制御２４１およびダウンリンク制御２４２を含む。上述したように、メモリバス２６５は、任意のタイプのメモリインターコネクトであってもよい。例示した実施形態において、メモリ制御ハブ１６０は、アップストリーム方向にあるメモリリンク１１０Ａと、ダウンストリーム方向にあるメモリリンク１１０Ｂとに結合される。メモリバス２６５の動作周波数は、メモリリンク１１０の動作周波数とは無関係であることをさらに留意されたい。
【００２１】
例示した実施形態において、アップリンク制御ユニット２４１は、別のメモリモジュールダウンストリームから受信したパケットを受信し転送するように構成されてもよい。アップストリームパケットを受信し転送することで、アップストリームトランザクションシーケンスが生じる。さらに、アップリンク制御ユニット２４１は、メモリモジュール１５０内で発生するパケットをトランザクションストリームに投入するように構成されてもよい。
【００２２】
例示した実施形態において、ダウンリンク制御ユニット２４２が、ホストで発生するパケットを受信するように構成されてもよく、メモリモジュールがダウンストリームに接続されれば、ダウンストリームメモリモジュールにこれらのパケットを転送するように構成されてもよい。さらに、ダウンリンク制御ユニット２４２は、パケットをコピーし復号するように構成されてもよい。１つの実施形態において、パケットが、メモリモジュール１５０に割り当てられたアドレスレンジ内にあるアドレスを含み、パケットが、メモリアクセスリクエストであれば、ダウンリンク制御ユニット２４２は、パケットに関連するコマンドをＤＲＡＭコントローラ２５０に送ってもよい。１つの実施形態において、ＤＲＡＭコントローラ２５０は、メモリ制御ハブ１６０からのメモリコマンドに応答して、メモリチップ２６１Ａ〜２６１Ｎに対してメモリサイクルを開始するように構成される。しかしながら、パケットがメモリリクエストでなく、コンフィギュレーションパケットであれば、ダウンリンク制御ユニット２４２は、パケットに関連するコンフィギュレーションコマンドを処理用の制御ユニット２４０（図示せず）のコア論理に送ってもよい。１つの実施形態において、パケットが、メモリモジュール１５０に割り当てられたアドレスレンジ内にあるアドレスを含まなければ、メモリ制御ハブ１６０は、メモリモジュール１５０がチェーンの最後のメモリモジュールであれば、パケットを取り消したり破棄したりしてもよいことに留意されたい。
【００２３】
１つの実施形態において、メモリ制御ハブ１６０は、モジュール存在信号（図示せず）を受信するように構成され、この信号は、ダウンストリームメモリモジュールによってアクティブにされると、ダウンストリームメモリモジュールが存在することをアップストリームメモリモジュールに示す。このような実施形態において、メモリ制御ハブ１６０が、トランザクションを受信し、存在するダウンストリームメモリモジュールがないことが決定されれば、メモリ制御ハブ１６０は、トランザクションを取り消してもよい。１つの特定の実施例において、所与のメモリモジュール１５０がソケットに差し込まれると、差し込まれたメモリモジュールは、信号用接地をモジュール存在信号に適用してもよい。このようにして、アクティブなモジュール存在信号が、アクティブな低信号である。
【００２４】
上述した実施形態において信号用接地が適用されるとき、モジュール存在信号がアクティブであるが、他の実施形態において、メモリモジュールが存在することを示すように、モジュール存在信号に他の電圧レベルが適用されてもよいことが考えられることに留意されたい。
【００２５】
図３を参照すると、ダウンリンク制御ユニットの１つの実施形態のブロック図が示されている。図３に示す実施形態において、ダウンリンク制御ユニット３４２は、図２に示すダウンリンク制御ユニット２４２を表してもよい。ダウンリンク制御ユニット３４２は、ダウンリンク３１２Ａ上でダウンストリームトランザクションを受信し、ダウンリンク３１２Ｂ上でこれらのダウンストリームトランザクションを伝送するように結合される。１つの実施形態において、ダウンリンク３１２Ａおよび３１２Ｂは、図２のダウンリンク２１２Ａおよび２１２Ｂのそれぞれを表してもよい。上述したように、ダウンリンク３１２Ａおよび３１２Ｂは、複数のビットを含むことに留意されたい。例えば、１つの実施例において、ダウンリンク３１２Ａおよび３１２Ｂの各々は、１８ビットダウンリンクであってもよい。さらに、ダウンリンク制御ユニット３４２は、アップストリームメモリモジュールまたはホスト１００からビジー信号３７１を受信し、ビジー信号３７２をダウンストリームメモリモジュールに伝送するように構成される。
【００２６】
例示した実施形態において、ダウンリンク制御ユニット３４２は、入力トランザクションを受信する位相アライメントユニット３１０を含む。位相アライメントユニット３１０は、伝送ユニット３１５およびデータ回復ユニット３２０に結合される。データ回復ユニット３２０は、アドレス復号論理３３０に結合された同期先入れ先出しバッファ(FIFO:first in first out)３２５に結合される。１つの実施形態において、同期ＦＩＦＯ３２５は、ＤＲＡＭコントローラ２５０などのＤＲＡＭコントローラと、図２の制御ユニット２４０内のコア論理とに結合される。図３に示す実施形態において、位相アライメントユニット３１０、伝送ユニット３１５、およびデータ回復ユニット３２０は、ビット単位で独立してダウンリンクの各ビットで動作してもよいことに留意されたい。他の実施形態において、位相アライメントユニット３１０、伝送ユニット３１５、およびデータ回復ユニット３２０は、実質的に同時にダウンリンクのすべてのビットで動作してもよいことが考えられる。
【００２７】
必要なメモリ帯域幅を与えるために、メモリ制御ハブ１６０が、受信したトランザクションをダウンストリームメモリモジュールに効率的に転送することが重要となりうる。したがって、ダウンリンク制御ユニット３４２が受信したトランザクションは、無分別にダウンストリームに転送される。１つの実施形態において、各受信ビットは、復号することなく、ダウンリンク３１２Ｂで伝送するために、位相アライメントユニット３１０によって位相アライメントされ、伝送ユニット３１５に送信される。さらに、各受信ビットは、処理するためにデータ回復ユニット３２０に送信される。
【００２８】
１つの実施形態において、位相アライメントユニット３１０は、ダウンリンク制御ユニット３４２が、受信データアイの中央でサンプリングできるようにするために、各ビットに対して、ローカルサンプリングクロックの位相を動的に調節するように構成される。例えば、１つの実施形態において、ダウンリンク制御ユニット３４２内の位相ロックループ(PLL:phased locked loop)（図示せず）にホストから基準クロックが与えられる。ＰＬＬは、ダウンリンク制御ユニット３４２内にローカルサンプリングクロックとともに、伝送クロックを発生する。位相アライメントユニット３１０は、入力データストリームの平均位相をトラッキングするように構成される。位相アライメントユニット３１０はまた、処理変動によって生じる静的スキューを補償し、電圧および温度の変動によって生じるデータ位相の低周波変動をトラッキングし、基準クロックに存在する可能性があり、ハブのＰＬＬによってトラッキングされない任意の低周波位相ジッターを補償するように構成されてもよい。位相アライメントユニット３１０は、符号間干渉、クロストークまたは反射ノイズ、および送信機によって発生しうる高周波位相ノイズによって生じる高周波ジッターをフィルタリングする。
【００２９】
ローカルサンプリングクロックの位相アライメントを行うためには、ダウンリンク３１２Ａの各ビットに十分な数の遷移（または透過密度）を与えることが必要な場合がある。１つの実施形態において、遷移密度は、各ビットに伝送されたデータをスクランブルした後、受信すると、受信データをデスクランブルすることによって与えられる。１つの実施形態において、データは、擬似ランダムバイナリシーケンス(PRBS:pseudo random binary sequence)でデータを排他的論理和演算(XOR:Exclusive-OR)することによってスクランブルされる。線形フィードバックシフトレジスタ(LFSR:linear feedback shift register)が、所与のシード多項式を用いて、ＰＲＢＳを発生してもよい。別の実施形態において、遷移密度は、所定のデータペイロードを有する同期パケットを送信することによって与えられてもよい。このような実施形態において、所定のデータペイロードは、十分な数の遷移を有するランダムまたは擬似ランダムパターンを含んでもよい。
【００３０】
遷移密度の獲得方法に関わらず、データ回復ユニット３２０は、データビットを回復するように構成される。スクランブルを用いる実施形態において、データ回復ユニット３２０は、データをスクランブルするために使用されるものと同じＰＲＢＳを用いて、受信データをデスクランブルするように構成されてもよい。逆に、遷移密度を獲得するために同期パケットを用いる実施形態において、データ回復ユニット３２０は、位相アライメントユニット３１０が、ローカルサンプリングクロックのアライメントを終了すると、同期パケットデータを単に取り消したり破棄したりするだけでもよい。
【００３１】
例示した実施形態において、同期ＦＩＦＯ３２５は、制御ユニット２４０のコア論理によって使用するための入力データビットを格納するように構成される。例えば、トランザクションがパケット化されて送信されるため、受信ビットは、同期ＦＩＦＯ３２５に格納され、復号するために再フォーマットされてもよい。次いで、受信パケットは、アドレス復号論理３３０によって復号される。上述したように、各メモリモジュール１５０に、メモリアドレスレンジが割り当てられてもよい。さらに、各メモリ制御ハブ１６０に、コンフィギュレーショントランザクションにおいて使用するためのハブアドレスが割り当てられてもよい。トランザクションアドレスが復号され、整合が示されれば、コマンド情報は、抽出および処理されてもよい。１つの実施形態において、トランザクションが、メモリ制御ハブ１６０に関連するメモリアドレスを整合するアドレスを有するメモリアクセスリクエストであれば、復号されたコマンドは、ＤＲＡＭコントローラ２５０に送信されてもよい。トランザクションが、コンフィギュレーショントランザクションであれば、復号されたコマンドは、制御ユニット２４０のコア論理に送信されてもよい。さらに、アドレス復号ロジック部あるいはアドレス復号論理３３０が、整合を検出しなければ、パケットは、破棄または取り消されてもよい。
【００３２】
例示した実施形態において、位相アライメントユニット３３５は、入力ビジー信号３７１を受信するように結合される。位相アライメントユニット３３５はまた、データ回復ユニット３５０に結合され、このユニット３５０は、ビジーパルス投入ユニット３５５に結合される。ビジーパルス投入ユニット３５５は、伝送ユニット３６０に結合される。
【００３３】
例示した実施形態において、位相アライメントユニット３３５およびデータ回復ユニット３５０は、位相アライメントユニット３１０およびデータ回復ユニット３２０のそれぞれに類似して動作する。しかしながら、１つの実施形態において、ビジー信号３７１は、シングルビット差分信号であり、マルチビット信号ではない。ビジー信号３７１およびビジー信号３７２は、メモリモジュールのシリアルチェーンのボトム付近にあるハブが、シリアルチェーンのトップ付近にあるハブがパケットを投入するのに十分なアイドル時間を残すようにするために使用される。１つの実施形態において、ビジー信号３７１は、アップストリームにあるすべてのメモリモジュールによってアップストリームトランザクションシーケンスに投入されるパケットの数の指示を含む。したがって、ビジー信号３７２は、アップストリームにあるすべてのメモリモジュールによってアップストリームトランザクションシーケンスに投入されるパケットの総数と、メモリ制御ハブ１６０によって局所的に投入されるパケットの数の指示を含む。
【００３４】
１つの実施形態において、ビジーパルス投入ユニット３５５が、アップストリームにあるすべてのメモリモジュールによってアップストリームトランザクションシーケンスに投入されることになるパケット数に対応するデータを受信するように構成される。さらに、ビジーパルス投入ユニット３５５は、メモリ制御ハブ１６０によって局所的にアップストリームトランザクションシーケンスに投入されることになるパケットの数に対応する制御ユニット２４０のコア論理から指示を受信するように構成される。したがって、ビジーパルス投入ユニット３５５は、ビジー信号３７２を作り出すように構成される。１つの実施形態において、ビジー信号３７１および３７２は、各投入パケットに対してパルスを含んでもよい。このように、投入される５つのパケットを表すビジー信号３７２などの信号が、例えば、５つのパルスを含むことになる。しかしながら、他の実施形態において、各投入パケットに対して、任意の数のパルスが含まれてもよいことを考慮されたい。以下にさらに記載されるように、パケットは、短いパケットまたは長いパケットとして送信されてもよい。したがって、１つの実施形態において、投入された長いパケットの場合、ビジーパルス投入ユニット３５５は、各長いパケットに対して２つのパルスを含んでもよい。
【００３５】
さらに、ビジーパルス投入ユニット３５５は、図２のアップリンク制御ユニット２４１にアップストリームから受信したビジーパルスの数に対応する指示を与えるように構成される。１つの実施形態において、メモリモジュールが、シリアル接続されたチェーンの最後のモジュールであれば、アップリンク制御ユニット２４１は、ビジー信号３７１上で受信したビジーパルスの数に応じて、アップストリームトランザクションシーケンスに１つ以上のＮＯＰパケットが投入されるようにしてもよい。例えば、１つの実施例において、受信した２つのビジーパルスごとに、アップリンク制御ユニット２４１は、アップストリームトランザクションシーケンスに１つのＮＯＰパケットを投入されるようにしてもよい。しかしながら、ＮＯＰパケットと受信ビジーパルスの他の比率が使用されてもよい他の実施形態が考えられる。
【００３６】
例示した実施形態において、伝送ユニット３６０は、ビジーパルス投入ユニット３５５からビジー信号を受信するように構成される。１つの実施形態において、伝送ユニット３６０は、上述したように、ビジー信号３７２の伝送前にＬＦＳＲを用いて、データをスクランブルするようにさらに構成される。他の形態として、伝送ユニット３６０は、上述したように、同期パケットを投入してもよい。
【００３７】
図４を参照すると、アップリンク制御ユニットの１つの実施形態のブロック図が示されている。図４に示す実施形態において、アップリンク制御ユニット４４１は、図２に示すアップリンク制御ユニット２４１を表すものであってもよい。アップリンク制御ユニット４４１は、アップリンク４１１Ｂ上でアップストリームトランザクションを受信し、アップリンク４１１Ａ上にアップストリームトランザクションを伝送するように結合される。さらに、アップリンク制御ユニット２４１は、アップリンク４１１Ｂ上で受信したアップストリームトランザクションシーケンスにパケットを投入するように構成される。１つの実施形態において、アップリンク４１１Ａおよび４１１Ｂは、図２のアップリンク２１１Ａおよび２１１Ｂのそれぞれを表してもよい。上述したように、アップリンク４１１Ａおよび４１１Ｂは、複数ビットを含むことに留意されたい。例えば、１つの実施例において、アップリンク４１１Ａおよび４１１Ｂの各々は、１６ビットのアップリンクであってもよい。
【００３８】
例示した実施形態において、アップリンク制御ユニット４４１は、入力アップストリームトランザクションを受信する位相アライメントユニット４１０を含む。位相アライメントユニット４１０は、データ回復ユニット４１５に結合される。
【００３９】
必要なメモリ帯域幅を与えるために、メモリ制御ハブ１６０は、受信アップストリームトランザクションをアップストリームメモリモジュールまたはホストに効率的に転送することが重要なこともある。ダウンストリーム制御ユニット３４２と同様に、アップリンク制御ユニット４４１が受信したトランザクションは、アップストリームに転送される。しかしながら、ダウンストリーム制御ユニット３４２とは対照的に、アップリンク制御ユニット４４１は、アップストリームトランザクションシーケンスに局所的に発生したパケットを投入してもよい。
【００４０】
例示した実施形態において、位相アライメントユニット４１０は、位相アライメントユニット３１０と同様に動作する。したがって、位相アライメントユニット４１０は、上述したように、アップリンク制御ユニット４４１が受信データアイの中央でサンプリングできるようにするために、各ビットに対して、ローカルサンプリングクロックの位相を動的に調節するように構成される。同様に、データ回復ユニット４１５は、データ回復ユニット３２０の記載とともに上述したように、データビットを回復するように構成される。
【００４１】
例示した実施形態において、データ回復ユニット４１５は、伝送ユニット４３５に結合されたマルチプレクサ４３０に結合される。アップリンク制御ユニット４４１に、アップリンクトランザクションシーケンスに投入するパケットがなければ、アップリンク制御ユニット４４１は、アップリンク４１１Ａ上で受信したトランザクションを転送するように構成される。１つの実施形態において、パケット境界トラックユニット４５０が、制御信号をマルチプレクサ４３０に与えてもよく、マルチプレクサ４３０により、受信したトランザクションをスクランブルし、伝送ユニット４３５によって伝送することができるようにしてもよい。１つの実施形態において、伝送ユニット４３５は、上述したように、ＬＦＳＲを用いて伝送されるデータをスクランブルしてもよいが、他の実施形態において、伝送ユニット４３５は、上述したように、同期パケットを投入してもよい。
【００４２】
しかしながら、１つの実施形態において、投入されるパケットが、ハブコア論理から投入ＦＩＦＯ４２５内に受信および格納されるとき、データ回復ユニット４１５からの受信データは、後で伝送するために保持ＦＩＦＯ４２０内に格納される。現在転送されたパケットの送信が完了すると、投入ＦＩＦＯ４２５内に格納されたデータは、マルチプレクサ４３０の入力に与えられる。さらに、パケット境界トラックユニット４５０は、アップリンク４１１Ｂから受信したパケットのパケット境界をトラッキングする。パケット境界トラックユニット４５０により、投入されたパケットは、正確な時間にマルチプレクサ４３０に制御信号を与えることで、転送されたパケットと一致しないことによって、注入される待機中のパケットをスクランブルし、伝送ユニット４３５によって伝送することができるようになる。投入ＦＩＦＯ４２５内に格納された投入予定のパケットと、保持ＦＩＦＯ４２０内に格納された転送予定のパケットとがあると仮定すると、パケット境界トラックユニット４５０は、公平性アルゴリズム（ｆａｉｒｎｅｓｓ  ａｌｇｏｒｉｔｈｍ）に応じて、伝送ユニット４３５にパケットのいずれかのタイプを送るようにマルチプレクサ４３０を選択的に制御してもよい。公平性アルゴリズムは、任意の所与のメモリモジュールに対する投入パケットまたは転送パケットのいずれかが不足しないように構成された任意のアルゴリズムであってもよい。アップリンク４１１Ｂ上で受信したＮＯＰパケットが、保持ＦＩＦ４２０内に格納されたり、転送されたりする代わりに破棄されてもよいことに留意されたい。
【００４３】
別の実施形態において、転送したトランザクショントラフィックの待ち時間を改善するために、位相アライメントユニット４１０は、破線で示すように、保持ＦＩＦＯ４２０およびマルチプレクサ４３０に結合されてもよいことに留意されたい。このような実施形態では、投入トラフィックが存在しない場合、待ち時間が改善されることがある。
【００４４】
１つの実施形態において、ホスト１００と各メモリモジュール１５０の各メモリ制御ハブ１６０との間の通信前に、ホスト１００内および各メモリ制御ハブ１６０内に存在する可能性がある任意のスクランブル／デスクランブル論理、同期ＦＩＦＯ、および位相アライメント論理を同期させるために、開始シーケンスが実行されてもよい。例えば、１つの実施形態において、開始シーケンスは、リセット中、１つ以上の同期パターンをダウンストリームに送信するホスト１００を含んでもよい。同期パターンは、各メモリ制御ハブ１６０によってホスト１００へアップストリームに転送されて戻されてもよい。同期パターンは、スクランブル／デスクランブル論理を含む受信機が同期をロックできるように使用されてもよい。
【００４５】
（メモリインターコネクト）
図１および図２をまとめて参照すると、メモリインターコネクトは、メモリリンク１１０Ａ〜１１０Ｃなどの１つ以上の高速ポイント・ツゥー・ポイントメモリリンクを含み、メモリリンク１１０Ａ〜１１０Ｃの各々は、例えば、アップリンク２１１Ａなどのアップリンクおよびダウンリンク２１２Ａなどのダウンリンクを含む。上述したように、１つの実施形態において、ダウンリンクは１８ビットリンクであってもよく、アップリンクは１６ビットリンクであってもよい。このようにして、１８ビットダウンリンクが、１６制御アドレスデータ(CAD:control,address and data)信号、ビジー信号、および制御(CTL:Control)信号を含んでもよい。所与のアップリンクが、１６制御アドレスデータ(CAD)信号を含んでもよい。しかしながら、別の実施形態において、アップリンク２１１ＡなどのアップリンクがＣＴＬ信号を含んでもよいことが考えられる。
【００４６】
高速リンクの他にも、各メモリモジュール１５０に他の信号が与えられてもよい。例えば、１つの実施形態において、リセット信号、パワーＯＫ信号、および基準クロックが、ホスト１００から各メモリモジュール１５０に与えられてもよい。さらに、他の信号は、各メモリモジュール間に与えられてもよい。例えば、上述したように、メモリモジュール間に、次のメモリモジュール存在信号が与えられてもよい。
【００４７】
一般的に言えば、メモリリンク１１０上で伝達されるトランザクションのタイプは、コンフィギュレーションおよび制御トランザクションと、メモリトランザクションとに分類されてもよい。１つの実施形態において、コンフィギュレーションおよび制御トランザクションは、メモリ制御ハブ１６０を構成するために使用されてもよい。例えば、コンフィギュレーションおよび制御トランザクションは、コンフィギュレーションレジスタにアクセスし、メモリアドレスレンジをメモリモジュールに割り当て、またはハブアドレスをメモリモジュールハブに割り当てるように使用されてもよい。メモリトランザクションは、メモリチップ２６１Ａ〜２６１Ｎ内のメモリロケーションにアクセスするために使用されてもよい。
【００４８】
したがって、１つの実施形態において、サポートされているアドレッシングには、ハブアドレッシングおよびメモリアドレッシングの２つのタイプがある。ハブアドレッシングを使用すると、８ハブビットが、アクセスされている特定のメモリ制御ハブを識別する。１つの実施形態において、ＦＦｈのハブアドレスが、すべてのメモリ制御ハブへの同時通信を表すものであってもよい。メモリアドレッシングを用いて、各ハブは、どのハブがリクエストを受けるべきかを決定するためにアドレスビットの上側部分を復号し、アクセスされるメモリロケーションを決定するために下側部分を復号する。１つの実施形態において、４０アドレスビットがあるが、必要に応じて、他の数のアドレスビットが使用されてもよいことが考えられる。
【００４９】
１つの実施形態において、メモリリンクの各々は、１つ以上のパケットを用いてトランザクションを伝達するように構成される。パケットは、制御およびコンフィギュレーションパケットと、メモリアクセスパケットとを含み、それらの各々は、パケットが搬送するコマンドのタイプに応じて、データペイロードを含んでもよい。このように、メモリリンク１１０を構成するワイヤセットは、制御、アドレス、およびデータを伝達するために使用されてもよい。
【００５０】
パケットは、一般的に、各パケットが、シングルビットの情報を伝達する多数のビット部分を含むということに特徴付けられてもよい。各パケットは、数ビットタイムに分割され、所与のビットタイムの間、パケットのビット部分のすべてがサンプリングされる。このように、制御情報およびデータは、所与のリンクの同じワイヤ（例えば、ＣＡＤワイヤ）を共有する。以下にさらに詳細に記載するように、１つの実施形態において、パケットは、ビットペアの倍数であり、すべてのパケットの最初のビットタイムは、等しいビットタイムでサンプリングされる。パケットは、長さが１ビットペアまたは２ビットペアのいずれかであってもよい制御ヘッダで始まる。１つの実施形態において、制御ヘッダの最初の５ビットは、コマンドコードである。以下の表１は、さまざまなタイプのパケットと、それらに関連するコマンドコードを示す。しかしながら、１列目に示す実際のコードは、例示的な目的のものであり、各所与のコマンドに他のコードが使用されてもよいことに留意されたい。
表１パケットタイプおよびコマンドコード
|コード|ヘッダ|コマンド |記述      |方向  |正常応答  |アドレ|
|      |長（ビ|         |          |      |          |スタイ|
|      |ットタ|         |          |      |          |プ    |
|      |イム）|         |          |      |          |      |
|００ｈ|−    |NOP      |動作なし／|双方向|−        |−    |
|      |      |         |アイドル状|      |          |      |
|      |      |         |態        |      |          |      |
|０４ｈ|２    |AddrSet  |アドレスセ|ダウン|Addr      |ハブ  |
|      |      |         |ット      |      |Ack       |      |
|０５ｈ|２    |AddrAck  |アドレス認|アップ|−        |−    |
|      |      |         |識        |      |          |      |
|０６ｈ|２    |Ack      |認識      |アップ|−        |−    |
|０７ｈ|２    |Nak      |認識せず／|アップ|−        |−    |
|      |      |         |エラー    |      |          |      |
|０８ｈ|２    |SRdResp  |短いリード|アップ|−        |−    |
|      |      |         |応答      |      |          |      |
|０９ｈ|２    |LRdResp  |長いリード|アップ|−        |−    |
|      |      |         |応答      |      |          |      |
|０Ａｈ|２    |ConfigRd |コンフィギ|ダウン|RdResp    |ハブ  |
|      |      |         |ュレーショ|      |          |      |
|      |      |         |ンリード  |      |          |      |
|０Ｃｈ|２    |ConfigWr |コンフィギ|ダウン|Ack       |ハブ  |
|      |      |         |ュレーショ|      |          |      |
|      |      |         |ンライト  |      |          |      |
|０Ｅｈ|２    |DIMMCtl  |ＤＩＭＭ制|ダウン|Ack       |ハブ  |
|      |      |         |御        |      |          |      |
|１０ｈ|４    |SMemRd   |短いメモリ|ダウン|RdResp/Ack|メモリ|
|      |      |         |リード    |      |          |      |
|１１ｈ|４    |LMemRd   |長いメモリ|ダウン|RdResp    |メモリ|
|      |      |         |リード    |      |          |      |
|１２ｈ|４    |BlkMemWr |ブロックメ|ダウン|Ack       |メモリ|
|      |      |         |モリライト|      |          |      |
|１３ｈ|４    |SbytMemWr|短いバイト|ダウン|Ack       |メモリ|
|      |      |         |メモリライ|      |          |      |
|      |      |         |ト        |      |          |      |
|１４ｈ|４    |LbytMemWr|長いバイト|ダウン|Ack       |メモリ|
|      |      |         |メモリライ|      |          |      |
|      |      |         |ト        |      |          |      |
【００５１】
さらに、１つの実施形態において、パケット（ＮＯＰパケットを除く）が、エラー検出コード(EDC:error detecting code)とともに伝送される。１つの実施形態において、ＥＤＣは、３２ビット巡回冗長コード(CRC:cyclic redundancy code)であるが、必要に応じて、他の実施形態において他のＥＤＣのものが採用されてもよいことに留意されたい。さらに、最上位ビットタイムで最初にアドレスがメモリ制御ハブ１６０内の高速デコードに送信されるのに対して、最下位バイトで最初にデータが送信される。しかしながら、他の実施形態では、最下位ビットタイムで最初にアドレスが送信されてもよく、最上位バイトで最初にデータが送信されてもよいことに留意されたい。パケットは、バイトイネーブルおよび／またはデータのペイロードを搬送してもよい。ペイロードがないパケットを、ヘッダオンリーパケットと呼ぶ。１つの実施形態において、短いリードのデータのサイズは、最大でプログラムされたキャッシュラインサイズの半分であってもよい。さらに、長いリードおよびブロックライトのデータのサイズは、最大でプログラムされたキャッシュラインサイズであってもよい。さらに、バイトライトのデータサイズは、キャッシュラインサイズの設定にかかわらず、最大の６４バイトであってもよい。
【００５２】
パケット内に含まれる制御ヘッダおよびコマンドコード情報の他にも、ＣＴＬ信号は、各パケットに関する情報を伝達するために使用されてもよい。以下の表２に示すように、いくつかの例示的なＣＴＬ符号化が示される。
表２    ダウンストリーム使用のＣＴＬ符号化
│偶数     │奇数     │ＣＡＤの内容              │
│０       │０       │データまたはバイトイネーブ│
│         │         │ルペイロード              │
│１       │１       │制御ヘッダ                │
│０       │１       │ペイロードありのパケットの│
│         │         │ＣＲＣ                    │
│１       │０       │ヘッドオンリーパケットのＣ│
│         │         │ＲＣ                      │
【００５３】
パケットのヘッダおよびペイロード部分のＣＴＬの値が異なることで、ヘッダオンリーパケットを別のパケットのペイロード内に挿入できるようにする十分な情報が与えられてもよい。これは、ライトパケットがリンク上で送信されている間、リードコマンドを発することができるようにすることで、リードコマンドの待ち時間を減らすために有用なことがある。表３は、表形式でペイロードを含む例示的なパケットを示す。また、表３のパケットは、ビットタイム４〜７の間、ペイロードにヘッダオンリーパケットが挿入されていることを示す。
表３    ペイロードありのパケットと、ペイロード内に挿入されたヘッダオンリーパケット
│ビットタイム│ＣＴＬ │ＣＡＤ                      │
│０          │１     │ヘッダ１ビット［１５：０］  │
│１          │１     │ヘッダ１ビット［３１：１６］│
│２          │０     │データビット［１５：０］    │
│３          │０     │データビット［３１：１６］  │
│４          │１     │ヘッダ２ビット［１５：０］  │
│５          │１     │ヘッダ２ビット［３１：１６］│
│６          │１     │ＣＲＣ２ビット［１５：０］  │
│７          │０     │ＣＲＣ２ビット［３１：１６］│
│８          │０     │データビット［４７：３２］  │
│９          │０     │データビット［６４：４８］  │
│１０        │０     │ＣＲＣ１ビット［１５：０］  │
│１１        │１     │ＣＲＣ１ビット［３１：１６］│
【００５４】
図５Ａ〜図５Ｄは、図１のメモリリンク１１０Ａ〜１１０Ｃ上で伝達されてもよい例示的なパケットを示す。以下、図５Ａを参照すると、コンフィギュレーションリードパケットの１つの実施形態の図が示されている。例示した実施形態において、コンフィギュレーションリードパケット５１０は、１６ビット幅であり、４ビットタイムまたは２ビットペアを含む。
【００５５】
ビットタイム０の間、５ビットコマンドコード（例えば、０Ａｈ）は、ビット位置０〜４に伝達される。ビット位置５〜７は予備とされる。ビット位置８〜１５に、８ビットタグが伝達される。１つの実施形態において、タグ値は、例えば、顕著なダウンストリームリクエストとアップストリーム応答パケットを整合するために、ホスト１００によって使用されてもよい。使用されていなければ、タグフィールドは、００ｈの値に設定されてもよい。ビットタイム１の間、８ビットハブアドレスは、ビット位置０〜７に伝達される。さらに、ビット位置８〜１５に、８ビットコンフィギュレーションレジスタ数が伝達される。ビットタイム２および３の間、ビット位置０〜１５に、それぞれＣＲＣのビット０〜１５および１６〜３１が伝達される。
【００５６】
図５Ｂを参照すると、コンフィギュレーションライトパケットの１つの実施形態の図が示されている。例示した実施形態において、コンフィギュレーションライトパケット５１５は、１６ビット幅であり、６ビットタイムまたは３ビットペアを含む。
【００５７】
ビットタイム０の間、ビット位置０〜４に、５ビットのコマンドコード（例えば、０Ｃｈ）が伝達される。ビット位置５〜７は予備とされる。ビット位置８〜１５に、８ビットタグが伝達される。ビットタイム１の間、ビット位置０〜７に、８ビットハブアドレスが伝達される。さらに、ビット位置８〜１５に、８ビットコンフィギュレーションレジスタ数が伝達される。ビットタイム２および３の間、ビット位置０〜１５に、データペイロードのビット０〜１５および１６〜３１が伝達される。ビットタイム４および５の間、ビット位置０〜１５に、それぞれＣＲＣのビット０〜１５および１６〜３１が伝達される。
【００５８】
図５Ｃを参照すると、メモリリードパケットの１つの実施形態の図が示されている。例示した実施形態において、メモリリードパケット５２０は、１６ビット幅であり、６ビットタイムまたは３ビットペアを含む。ビットタイム０の間、ビット位置０〜４に、５ビットのコマンドコード（例えば、１０ｈまたは１１ｈ）が伝達される。ビット位置５〜７は予備とされる。ビット位置８〜１５に、８ビットのタグが伝達される。
【００５９】
ビットタイム１の間、ビット位置０〜５に、戻るべきデータの長さが伝達される。１つの実施形態において、００ｈの値は、データがないことを示し、０１ｈの値は、２ビットペアのデータを示し、０２ｈの値は、４ビットペアのデータを示し、以下同様である。リードの長さがゼロであると、認識パケット（Ack:acknowledge packet)がリクエスタに戻される。１つの実施形態において、半分以下のキャッシュラインのリードにより、短いＲｄＲｅｓｐが生じることもあり、半分より大きなキャッシュラインのリードにより、単一の長いＲｄＲｅｓｐまたは２つの短いＲｄＲｅｓｐのいずれかが生じることもある。キャッシュラインのサイズは、ホスト１００および各メモリ制御ハブ１６０のコンフィギュレーションレジスタにソフトウェアによってプログラムされてもよい。ビット６〜７は予備とされる。ビット位置８〜１５に、ＤＲＡＭのリクエストされた場所のアドレスビット３９〜３２が伝達される。
【００６０】
ビットタイム２の間、ビット位置０〜１５に、ＤＲＡＭのリクエストされた場所のアドレスビット３１〜１６が伝達され、ビットタイム３の間、ビット位置３〜１５に、ＤＲＡＭのリクエストされた場所のアドレスビット３〜１５が伝達される。また、ビットタイム３の間、ビット位置０〜１に、パケット優先度が伝達される。１つの実施形態において、優先度は、他のリクエストに対するパケットの優先度を表すものであってもよい。例えば、１つの優先度は、すでに進行中であっても、優先度がより低いすべてのリクエストを遅延させ、それらよりも前にこのリクエストを実行するためのものであってもよい。ビット位置２が予備とされる。ビットタイム４および５の間、ビット位置０〜１５に、それぞれＣＲＣのビット０〜１５および１６〜３１が伝達される。
【００６１】
図５Ｄを参照すると、ブロックメモリライトパケットの１つの実施形態の図が示されている。例示した実施形態において、ブロックメモリライト回路５２５は、１６ビット幅であり、８ビットタイムまたは４ビットペアを含む。ビットタイム０の間、ビット位置０〜４に、５ビットのコマンドコード（例えば、１２ｈ）が伝達される。ビット位置５〜７は予備とされる。ビット位置８〜１５に、８ビットタグが伝達される。
【００６２】
ビットタイム１の間、ビット位置０〜５に、データペイロードに伝達されているデータの長さが伝達される。１つの実施形態において、００ｈの値は、データがないことを示し、０１ｈの値は、２ビットペアのデータを示し、０２ｈの値は、４ビットペアのデータを示し、以下同様である。ビット６〜７は予備とされる。ビット位置８〜１５に、書き込まれているＤＲＡＭの場所のアドレスビット３９〜３２が伝達される。
【００６３】
ビットタイム２の間、ビット位置０〜１５に、書き込まれているＤＲＡＭの場所のアドレスビット３１〜１６が伝達され、ビットタイム３の間、ビット位置３〜１５に、書き込まれているＤＲＡＭの場所のアドレスビット３〜１５が伝達される。また、ビットタイム３の間、ビット位置０〜１に、パケット優先度が伝達される。ビット位置２は予備とされる。
【００６４】
ビットタイム４および５の間、ビット位置０〜１５に、データペイロードの第１のビットペアのビット０〜１５および１６〜３１が伝達される。より多くのデータが書き込まれていれば、後続するビットペアは、後続するデータペイロードのビット０〜１５および１６〜３１を伝達してもよい。ビットタイム４＋２Ｎおよび５＋２Ｎの間、ビット位置０〜１５に、それぞれＣＲＣのビット０〜１５および１６〜３１が伝達される。
【００６５】
４つのタイプのパケットしか示していないが、表３に挙げたコマンドコードに対応するものであってもよい他のタイプのパケットも考えられることに留意されたい。特定の数のビットを有する例示的なパケットのさまざまなフィールドが示されているが、他の実施形態において、各パケットにおいて、さまざまなフィールドが、必要に応じて、他の数のビットを含んでもよいことが考えられることにさらに留意されたい。
【００６６】
図６は、コンピュータシステムの１つの実施形態のブロック図である。コンピュータシステム６００は、コヒーレントパケットインタフェースリンク６１５Ａ〜Ｄによって各々が相互接続されたプロセスノード６１２Ａ〜６１２Ｄを含む。コヒーレントパケットインタフェース６１５の各リンクは、高速のポイント・ツゥー・ポイントリンクを形成してもよい。プロセスノード６１２Ａ〜Ｄの各々は、１つ以上のプロセスを含んでもよい。コンピュータシステム６００はまた、非コヒーレントパケットインタフェース６５０Ａを介してプロセスノード６１２Ａに結合されたＩ／Ｏノード６２０を含む。Ｉ／Ｏノード６２０は、例えば、非コヒーレントパケットインタフェース６５０Ｂによって、チェーントポロジーにある別のＩ／Ｏノード（図示せず）に接続されてもよい。プロセスノード６１２Ａが、ホストノードとして示されており、ＮＣパケットインタフェース６５０Ａを介してＩ／Ｏノード６２０と通信するためのホストブリッジを含んでもよい。プロセスノード６１２Ｂ〜Ｄはまた、他のＩ／Ｏノード（図示せず）と通信するためのホストブリッジを含んでもよい。ＮＣパケットインタフェース６５０Ａ〜Ｂによって形成された非コヒーレントパケットインタフェースリンクは、ポイント・ツゥー・ポイントリンクと呼ばれることもある。Ｉ／Ｏノード６２０は、周辺バス６２５Ａ〜Ｂのペアに接続される。
【００６７】
図６は、プロセスノード６１２Ａおよび６１２Ｂに結合された対応するシステムメモリ（例えば、６１７Ａおよび６１７Ｂ）を示す。例示した実施形態において、プロセスノード６１２Ａおよび６１２Ｂの各々は、図１に示すようなホストを表し、各システムメモリ６１７は、上述した図１および図２の記載とともに記述したコンフィギュレーションに与えられてもよい。さらに、プロセスノード６１２Ａおよび６１２Ｂの各々と、それらに対応するシステムメモリ６１７との間のインターコネクトは、図１および図２において上述したメモリリンク１１０Ｃを含むメモリインターコネクトを表すものであってもよい。他の実施形態において、他の数のプロセスノードが使用されてもよいことに留意されたい。さらに、プロセスノード６１２Ｃおよび６１２Ｄの各々が、例えば、システムメモリ６１７などの対応するシステムメモリに同様に接続されてもよいことが考えられる。
【００６８】
例示した実施形態において、コヒーレントパケットインタフェース６１５の各リンクが、一方向ラインのセットとして与えられる（例えば、ライン６１５Ａは、処理ノード６１２Ａから処理ノード６１２Ｂへパケットを伝送するために使用され、ライン６１５Ｂは、処理ノード６１２Ｂから処理ノード６１２Ｃへパケットを伝送するために使用される）。他のラインセット６１５Ｃ〜Ｄは、図１に示すような他の処理ノード間でパケットを伝送するために使用される。コヒーレントパケットインタフェース６１５は、処理ノード間で通信するために、キャッシュコヒーレント式に動作されてもよい（「コヒーレントリンク」）。さらに、非コヒーレントパケットインタフェース６５０は、Ｉ／Ｏノード間およびＩ／Ｏノードとプロセスノード６１２Ａのホストブリッジなどのホストブリッジとの間で通信するために、非コヒーレント式に動作されてもよい（「非コヒーレントリンク」）。コヒーレントリンクを介した２つ以上のノードの相互接続は、「コヒーレントファブリック」と呼ばれることがある。同様に、非コヒーレントリンクを介した２つ以上のノードの相互接続は、「非コヒーレントファブリック」と呼ばれることがある。１つの処理ノードから別のものへ伝送されるパケットが、１つ以上の中間ノードを通過してもよいことに留意されたい。例えば、処理ノード６１２Ａから処理ノード６１２Ｃへ伝送されたパケットが、図６に示すように、処理ノード６１２Ｂまたは処理ノード６１２Ｄのいずれかを通過してもよい。任意の適切なルーティングアルゴリズムが使用されてもよい。コンピュータシステム６００の他の実施形態が、図６に示す実施形態より処理ノードの数を増減させたものを含んでもよい。
【００６９】
非コヒーレントパケットインタフェース６５０などのパケットインタフェースの１つの例は、HyperTransportTM技術と適合するものであってもよい。周辺バス６２５Ａおよび６２５Ｂは、周辺コンポーネントインターコネクト(PCI:peripheral component interconnect)バスなどの一般的な周辺バスを例示したものである。しかしながら、他のタイプのバスが使用されてもよいことを理解されたい。
【００７０】
他のコンピュータシステムコンフィギュレーションが可能であり考えられることにさらに留意されたい。例えば、図１〜図５において上述したシステムメモリコンフィギュレーションが、ノースブリッジを含むプロセッサチップセットを採用したコンピュータシステムとともに使用されてもよいことが考えられる。このような実施形態において、ノースブリッジ内のメモリコントローラが、ホストとして機能してもよい。
【００７１】
いくつかの実施形態を詳細に上述してきたが、上記開示を完全に認識することで、当業者であれば多数の変形例および修正例が明らかになるであろう。特許請求の範囲は、このようなすべての変形例および修正例を含むように解釈されるべきであることが意図されている。
【産業上の利用可能性】
【００７２】
本発明は、一般的に、コンピュータシステムメモリに応用可能でありうる。
【図面の簡単な説明】
【００７３】
【図１】メモリモジュールのシリアル接続されたチェーンを含むシステムの１つの実施形態のブロック図である。
【図２】図１に示すメモリモジュールなどのメモリモジュールの１つの実施形態のブロック図である。
【図３】図２に示すダウンリンク制御ユニットなどのダウンリンク制御ユニットの１つの実施形態のブロック図である。
【図４】図２に示すアップリンク制御ユニットなどのアップリンク制御ユニットの１つの実施形態のブロック図である。
【図５Ａ】コンフィギュレーションリードパケットの１つの実施形態の図である。
【図５Ｂ】コンフィギュレーションライトパケットの１つの実施形態の図である。
【図５Ｃ】メモリリードパケットの１つの実施形態の図である。
【図５Ｄ】メモリライトパケットの１つの実施形態の図である。
【図６】コンピュータシステムの１つの実施形態のブロック図である。
【図１】
0004836794.tif 000002
【図２】
0004836794.tif 000003
【図３】
0004836794.tif 000004
【図４】
0004836794.tif 000005
【図５Ａ】
0004836794.tif 000006
【図５Ｂ】
0004836794.tif 000007
【図５Ｃ】
0004836794.tif 000008
【図５Ｄ】
0004836794.tif 000009
【図６】
0004836794.tif 000010