(57)【要約】  メモリ・モジュールは、複数のメモリ・デバイスに結合されるメモリ・ハブを含む。メモリ・ハブはまたメモリ・デバイスの後続動作を示すメモリ・ヒントを包含するメモリ・パケットをシステム制御装置から受け取るために結合される。メモリ・モジュールはヒントを使用して、オープンしたままのページの数またはフェッチされるキャッシュ・ラインの数などのメモリ・モジュールの動作を調整する。
2007535737.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ・デバイスと
前記メモリ・デバイスに結合されるメモリ・ハブと
を備えたメモリ・モジュールであって、
前記メモリ・ハブは、
前記メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについてのメモリ要求を受け取るリンク・インターフェースと、
前記メモリ・デバイスおよび前記リンク・インターフェースに結合されるメモリ・デバイス・インターフェースと、
前記リンク・インターフェースおよび前記メモリ・デバイス・インターフェースに結合されるメモリ・シーケンサと
を備え、
前記メモリ要求の少なくともいくつかは、前記メモリ・デバイスの後続の動作についての情報を提供するそれぞれのメモリ・ヒントを含み、
前記メモリ・デバイス・インターフェースは、前記メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについての前記メモリ・デバイスに前記メモリ要求を結合し、かつ前記メモリ要求の少なくともいくつかに応答して読み出しデータを受け取ることができ、
前記メモリ・シーケンサは、前記リンク・インターフェースから受け取られたメモリ要求に応答して前記メモリ・デバイス・インターフェースへメモリ要求を結合することができ、前記メモリ・ヒントに応答して前記メモリ・デバイスの動作を動的に調整することがさらにできることを特徴とするメモリ・モジュール。
【請求項２】
前記リンク・インターフェースは、光学的入力／出力ポートを備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項３】
前記ヒントの少なくとも１つは、前記メモリ・デバイスをページ・モードに設定する信号を備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項４】
前記ヒントの少なくとも１つは、開放しておくページの数を備えたことを特徴とする請求項３に記載のメモリ・モジュール。
【請求項５】
前記ヒントの少なくとも１つは、プリフェッチのヒントを備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項６】
前記ヒントの少なくとも１つは、送られるキャッシュ・ラインの数を備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項７】
前記ヒントの少なくとも１つは、データがフェッチされるアドレスの順番を示すストライドを備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項８】
前記ヒントの少なくとも１つは、スキップするキャッシュ・ラインの数を備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項９】
前記メモリ・デバイスは、ＤＲＡＭデバイスを備えたことを特徴とする請求項１に記載のメモリ・モジュール。
【請求項１０】
前記リンク・インターフェースおよび前記メモリ・シーケンサに結合される要求デコーダをさらに備え、
前記要求デコーダは、前記メモリ要求の前記ヒントをデコードできることを特徴とする請求項１に記載のメモリ・モジュール。
【請求項１１】
メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについてのメモリ要求を受け取るリンク・インターフェースと、
前記メモリ・デバイスに結合されるメモリ・デバイス・インターフェースと、
前記リンク・インターフェースおよび前記メモリ・デバイス・インターフェースに結合されるメモリ・シーケンサと
を備えたメモリ・ハブであって、
前記メモリ要求の少なくともいくつかは、前記メモリ・デバイスの後続の動作についての情報を提供するそれぞれのメモリ・ヒントを含み、
前記メモリ・デバイス・インターフェースは、前記メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについての前記メモリ要求を前記メモリ・デバイスに結合し、かつ前記メモリ要求の少なくともいくつかに応答して読み出しデータを受け取ることができ、
前記メモリ・シーケンサは、前記リンク・インターフェースから受け取られた前記メモリ要求に応答して前記メモリ・デバイス・インターフェースへ前記メモリ要求を結合することができ、前記メモリ・ヒントに応答して前記メモリ・デバイスの動作を動的に調整することがさらにできることを特徴とするメモリ・ハブ。
【請求項１２】
前記リンク・インターフェースは、光学的入力／出力ポートを備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１３】
前記ヒントの少なくとも１つは、前記メモリ・デバイスをページ・モードに設定する信号を備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１４】
前記ヒントの少なくとも１つは、開放しておくページの数を備えたことを特徴とする請求項１３に記載のメモリ・ハブ。
【請求項１５】
前記ヒントの少なくとも１つは、プリフェッチのヒントを備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１６】
前記ヒントの少なくとも１つは、送られるキャッシュ・ラインの数を備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１７】
前記ヒントの少なくとも１つは、データがフェッチされるアドレスの順番を示すストライドを備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１８】
前記ヒントの少なくとも１つは、スキップするキャッシュ・ラインの数を備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項１９】
前記メモリ・デバイスは、ＤＲＡＭデバイスを備えたことを特徴とする請求項１１に記載のメモリ・ハブ。
【請求項２０】
前記リンク・インターフェースおよび前記メモリ・シーケンサに結合される要求デコーダをさらに備え、
前記要求デコーダは、前記ヒントをデコードできることを特徴とする請求項１２に記載のメモリ・ハブ。
【請求項２１】
中央処理装置（ＣＰＵ）と、
前記ＣＰＵに結合される、入力ポートおよび出力ポートを有するシステム制御装置と、
前記システム制御装置を介して前記ＣＰＵに結合される入力装置と、
前記システム制御装置を介して前記ＣＰＵに結合される出力装置と、
前記システム制御装置を介して前記ＣＰＵに結合される記憶装置と、
複数のメモリ・モジュールと
を備えたコンピュータシステムであって、
前記メモリ・モジュールのそれぞれは、
複数のメモリ・デバイスと、
前記システム制御装置および前記メモリ・デバイスに結合されるメモリ・ハブと
を備え、
前記メモリ・ハブは、
前記メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについての前記システム制御装置からメモリ要求を受け取るリンク・インターフェースと、
前記メモリ・デバイスおよび前記リンク・インターフェースに結合されるメモリ・デバイス・インターフェースと、
前記リンク・インターフェースおよび前記メモリ・デバイス・インターフェースに結合されるメモリ・シーケンサと
を備え、
前記メモリ要求の少なくともいくつかは、前記メモリ・デバイスの後続の動作についての情報を提供するそれぞれのメモリ・ヒントを含み、
前記メモリ・デバイス・インターフェースは、前記メモリ・デバイスの少なくとも１つのメモリ・セルへのアクセスについての前記メモリ要求を前記メモリ・デバイスに結合し、かつ前記メモリ要求の少なくともいくつかに応答して読み出しデータを受け取ることができ、
前記メモリ・シーケンサは、前記リンク・インターフェースから受け取られた前記メモリ要求に応答して前記メモリ・デバイス・インターフェースへ前記メモリ要求を結合することができ、前記メモリ・ヒントに応答して前記メモリ・デバイスの動作を動的に調整することがさらにできることを特徴とするコンピュータシステム。
【請求項２２】
前記リンク・インターフェースは、光学的入力／出力ポートを備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２３】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、前記メモリ・デバイスをページ・モードに設定する信号を備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２４】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、開放しておくページの数を備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２５】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、プリフェッチのヒントを備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２６】
前記ヒントの少なくとも１つは、前記システム制御装置から送られるキャッシュ・ラインの数を備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２７】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、データがフェッチされるアドレスの順番を示すストライドを備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２８】
前記ヒントの少なくとも１つは、スキップするキャッシュ・ラインの数を備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項２９】
前記メモリ・デバイスは、ＤＲＡＭデバイスを備えたことを特徴とする請求項２１に記載のメモリ・システム。
【請求項３０】
前記リンク・インターフェースおよび前記メモリ・シーケンサに結合される要求デコーをさらに備え、
前記要求デコーダは、前記ヒントをデコードできることを特徴とする請求項２１に記載のメモリ・システム。
【請求項３１】
複数のメモリ・デバイスを包含するメモリ・モジュールにおけるメモリ順序付けを調整する方法であって、
メモリ・モジュールに実装される、メモリ・デバイスへのアクセスについてのメモリ要求を生成することと、
前記メモリ・モジュールにて前記メモリ要求を受け取ることと、
前記メモリ・ヒントに基づいてメモリ・モジュールの動作を調整することと、
前記受け取られたメモリ要求に応答して前記メモリ・デバイスに前記メモリ要求を結合することと、
を備え、
前記メモリ要求の少なくともいくつかは、メモリ・ヒントを含み、前記メモリ・デバイスの後続の動作についての情報を提供することを特徴とする方法。
【請求項３２】
前記メモリ・ヒントに基づいて前記メモリ・モジュールの動作を調整する前記動作は、前記メモリ・ヒントに基づいて前記メモリ・シーケンサの動作を調整することを備えることを特徴とする請求項３１に記載の方法。
【請求項３３】
前記メモリ・ヒントに基づいて前記メモリ・モジュールの動作を調整する前記動作は、前記メモリ・ヒントに基づいて前記メモリ・デバイスの動作を調整することを備えることを特徴とする請求項３１に記載の方法。
【請求項３４】
前記メモリ要求を前記メモリ・デバイスに結合する前記動作は、光学的入力／出力ポートを備えるリンク・インターフェースを介して前記メモリ要求を結合することを備えることを特徴とする請求項３１に記載の方法。
【請求項３５】
前記メモリ・モジュールの動作を調整する前記動作は、前記メモリ・デバイスをページ・モードに設定することを備えることを特徴とする請求項３１に記載の方法。
【請求項３６】
前記メモリ・モジュールの動作を調整する前記動作は、ページの数を開放しておくことを備えることを特徴とする請求項３１に記載の方法。
【請求項３７】
前記システム制御装置によって生成される前記ヒントは、プリフェッチのヒントを備えることを特徴とする請求項３１に記載の方法。
【請求項３８】
前記システム制御装置によって生成される前記ヒントは、送られるキャッシュ・ラインの数を備えることを特徴とする請求項３１に記載の方法。
【請求項３９】
前記システム制御装置によって生成される前記ヒントは、データがフェッチされるアドレスの順番を示すストライドを備えることを特徴とする請求項３１に記載の方法。
【請求項４０】
前記ヒントは、スキップするキャッシュ・ラインの数を備えることを特徴とする請求項３１に記載の方法。
【請求項４１】
前記メモリ・デバイスは、ＤＲＡＭデバイスを備えることを特徴とする請求項３１に記載の方法。
【請求項４２】
前記ヒントを要求デコーダによりデコードすることをさらに備えることを特徴とする請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関する。より詳細には、複数のメモリ・デバイスをプロセッサまたは他のメモリ・アクセス・デバイスに結合するメモリ・ハブを有するコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、プロセッサによってアクセスされるデータを格納するために、ＤＲＡＭ（Dynamic Random Access Memory）デバイスなどのメモリ・デバイスを使用する。これらのメモリ・デバイスは通常、コンピュータシステムにおけるシステム・メモリとして使用される。典型的なコンピュータシステムにおいては、プロセッサは、プロセッサ・バスおよびメモリ制御装置を介してシステム・メモリと通信する。プロセッサは、読み出しコマンドなどのメモリ・コマンド、および、データまたは命令が読み出される場所を指定するアドレスを含むメモリ要求を発行する。メモリ制御装置は、このコマンドおよびアドレスを使用し、適切なコマンド信号並びに行および列アドレスを生成し、それらがシステム・メモリに適用される。このコマンドおよびアドレスに応答して、システム・メモリおよびプロセッサの間でデータが転送される。メモリ制御装置は、システム制御装置の一部であることが多く、システム制御装置はまた、プロセッサ・バスをＰＣＩバスなどの拡張バスに結合するためのバス・ブリッジ回路を含む。
【０００３】
メモリ・デバイスの動作速度は絶え間なく増大しているが、動作速度におけるこの増大はプロセッサの動作速度における増大と足並みをそろえてきてはいない。プロセッサをメモリ・デバイスに結合するメモリ制御装置の動作速度における増大は、さらに遅かった。メモリ制御装置およびメモリ・デバイスの速度が相対的に遅いことは、プロセッサおよびメモリ・デバイスの間のデータ転送能力を制限する。
【０００４】
また、プロセッサおよびメモリ・デバイスの間の制限された転送能力に加えて、コンピュータシステムの性能はまた、システム・メモリ・デバイスからデータを読み出すために必要な時間を増大させる待ち時間の問題（latency problem）によっても制限される。すなわち、メモリ・デバイス読み出しコマンドが、ＳＤＲＡＭ（Synchronous ＤＲＡＭ）デバイスなどのシステム・メモリ・デバイスに結合される場合に、読み出しデータは数クロック時間の遅れの後にはじめてＳＤＲＡＭデバイスから出力される。したがって、ＳＤＲＡＭデバイスは高いデータ転送速度にて同期的にバースト・データを出力することが可能であるが、最初にデータを提供する際の遅れは、そのようなＳＤＲＡＭデバイスを使用するコンピュータシステムの動作速度を著しく低下させる可能性がある。
【０００５】
メモリ待ち時間の問題を軽減する１つのやり方は、プロセッサに結合された複数のメモリ・デバイスを、メモリ・ハブを介して使用することである。メモリ・ハブ構造においては、システム制御装置またはメモリ制御装置が、それぞれが複数のメモリ・デバイスに結合されたメモリ・ハブを含む、複数のメモリ・モジュールに結合される。メモリ・ハブは、制御装置およびメモリ・デバイスの間のメモリ要求および応答を、効率的に経路指定する（route）。この構造を使用するコンピュータシステムは、一つのメモリ・デバイスが先のメモリ・アクセスに応答している間に、プロセッサが別のメモリ・デバイスにアクセス可能であるため、より高い転送能力を有することが可能である。例えば、システムのメモリ・デバイスの一つがプロセッサへの読み出しデータを提供するべく準備している間に、プロセッサがシステムの別のメモリ・デバイスに書き込みデータを出力できる。
【０００６】
メモリ・ハブを使用するコンピュータシステムは優れた性能を提供できるが、それにもかかわらずいくつかの理由のため、最適な速度で動作しないことがしばしばある。例えば、メモリ・ハブがより大きいメモリ転送能力をコンピュータシステムに提供可能であっても、依然として上述された型の待ち時間の問題に悩まされる。すなわち、１つのメモリ・デバイスがデータを転送するべく準備している間に、プロセッサは別のメモリ・デバイスと通信することができるけれども、１つのメモリ・デバイスからのデータが使用可能となる前に、別のメモリ・デバイスからデータを受け取ることが必要な場合が時々ある。１つのメモリ・デバイスから受信したデータが使用可能となる前に、別のメモリ・デバイスからデータを受信しなければならない場合には、待ち時間の問題はそのようなコンピュータシステムの動作速度を低下させ続ける。
【０００７】
メモリ・デバイスにおいて待ち時間を減少させるために使用されてきた一つの技法は、データを「プリフェッチ（prefetch）」すること、すなわち、実行されているプログラムがデータを要求する前に、システム・メモリからデータを読み出すことである。一般に、「プリフェッチ」されるべきデータは、それ以前にフェッチされたデータのパターンに基づいて選択される。そのパターンは、単純にデータがフェッチされるアドレスの順番である可能性があって、実行されているプログラムによりデータが必要となる前に、その順番における後続のアドレスからそのデータをフェッチすることが可能である。もちろん、「ストライド（stride）」として知られているパターンは、より複雑である場合がある。
【０００８】
さらに、メモリ・ハブがより大きいメモリ転送能力をコンピュータシステムに提供可能だとしても、依然としてスループット問題に悩まされる。例えば、メモリ・セルの特定の行からデータを読み出すことが可能となる前に、配列におけるディジット線は通常、その配列におけるディジット線を均衡化することによって、プリチャージ（precharge）される。次にその特定の行は、その行におけるメモリ・セルをおのおのの列におけるディジット線に結合することによって開放される。それぞれの列におけるディジット線の間に結合されたおのおののセンス増幅器（sense amplifier）は、おのおののメモリ・セルに格納されたデータに対応する電圧における変化に反応する。行がいったん開放されると、ディジット線をデータ読み出し経路に結合することにより、開放されている行のそれぞれの列からデータを結合することが可能である。したがって、ページとも呼ばれる１つの行を開放することは、限られた時間を消費することとなり、メモリ・スループットに限界を設けることとなる。
【０００９】
最終的に、行をプリチャージしまたは開放するか否か、およびアクセスされたデータをキャッシュするか否かと同様に、データを「プリフェッチ」するか否か（およびどのデータを「プリフェッチ」するか）に関する最適な決定は、時間とともに変化し、メモリ・ハブに結合されるプロセッサによって実行されるアプリケーションの機能として異なる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、コンピュータ・アーキテクチャに対して、メモリ・ハブ構造の利点を提供し、かつまたそのようなシステムにおいて一般的な待ち時間および／またはスループットの問題を最小化し、それにより高帯域、高スループット、および少ない待ち時間をメモリ・デバイスに提供する必要性が存在する。そのようなシステムではまた、メモリ・ハブの動作が時間とともに変化することを可能とすることが好ましいであろう。
【課題を解決するための手段】
【００１１】
本発明の１つの態様によると、１つのメモリ・モジュールおよび方法は、複数のメモリ・デバイスおよび１つのメモリ・ハブを含んで提供される。メモリ・ハブは、メモリ・デバイスの少なくとも１つにおけるメモリ・セルへのアクセスについてのメモリ要求を受け取る、光学的入力／出力ポートなどのリンク・インターフェースを包含する。メモリ・ハブは、メモリ・デバイスに結合されるメモリ・デバイス・インターフェースをさらに包含する。このメモリ・デバイス・インターフェースは、メモリ・デバイスの少なくとも１つにおけるメモリ・セルへのアクセスについてのメモリ要求をメモリ・デバイスに結合し、かつメモリ要求の少なくともいくつかに応答して読み出しデータを受け取ることができる。メモリ・ハブは、システム制御装置にさらに結合される。このシステム制御装置は、メモリ・ヒントを生成することができる。メモリ・ハブは、リンク・インターフェースおよびメモリ・デバイス・インターフェースに結合されるメモリ・シーケンサをさらに含む。メモリ・シーケンサは、リンク・インターフェースから受け取られたメモリ要求に応答してメモリ・デバイス・インターフェースにメモリ要求を結合できる。メモリ・シーケンサはさらに、メモリ・ヒントに応答して動的に動作を調整することができる。
【発明を実施するための最良の形態】
【００１２】
本発明の一例に係るコンピュータシステム１００は、図１に示される。コンピュータシステム１００は、特定のソフトウェアを実行して特定の計算またはタスクを実行するなどの、様々なコンピューティング機能を実行するためのプロセッサ１０４を含む。プロセッサ１０４は、通常はアドレス・バス、制御バス、およびデータ・バスを含むプロセッサ・バス１０６を含む。プロセッサ・バス１０６は、以前に言及されたように、一般にはＳＲＡＭ（Static Random Access Memory）であるキャッシュ・メモリ１０８に通常結合される。最後に、プロセッサ・バス１０６は、「ノース・ブリッジ」または「メモリ制御装置」とも呼ばれることのあるシステム制御装置１１０に結合される。
【００１３】
システム制御装置１１０は、プロセッサ１０４への通信経路として他のさまざまなコンポーネントに役立つ。すなわち、システム制御装置１１０は、グラフィック制御装置１１２に通常結合されるグラフィックポートを含み、グラフィック制御装置１１２は次にビデオ端末１１４に結合される。システム制御装置１１０はまた、キーボードやマウスなどの１つまたは複数の入力デバイス１１８に結合され、オペレータがコンピュータシステム１００とインターフェースで接続することを可能とする。通常、コンピュータシステム１００はまたシステム制御装置１１０を介してプロセッサ１０４に結合された、プリンタなどの１つまたは複数の出力デバイス１２０を含む。１つまたは複数のデータ記憶装置１２４はまたシステム制御装置１１０を介してプロセッサ１０４に通常接続され、プロセッサ１０４が内部または外部の記憶媒体（図示されない）との間でデータを格納し、またはデータを取り出すことを可能とする。典型的な記憶装置１２４の例は、ハード・ディスク、フロッピー（登録商標）・ディスク、カセット・テープ、およびＣＤ−ＲＯＭを含む。
【００１４】
システム制御装置１１０は、システム・メモリとしてコンピュータシステム１００に役立つ複数のメモリ・モジュール１３０ａ、ｂ...ｎに結合される。メモリ・モジュール１３０は、光学的または電気的通信路、またはいくつかの他の型の通信路である場合がある、高速リンク１３４を介してシステム制御装置１１０に結合されることが望ましい。高速リンク１３４は、双方向リンクである場合があり、または２つの別々の双方向リンクを含む場合がある。その一方はシステム制御装置１１０からメモリ・モジュール１３０へ信号を結合し、他方はメモリ・モジュール１３０からシステム制御装置１１０へ信号を結合する。高速リンク１３４が光学的通信路として実装される場合には、その光学的通信路は、例えば、１本または複数本の光ファイバの形態である場合がある。そのような場合にはシステム制御装置１１０およびメモリ・モジュールは、光学的通信経路に結合される光学的入力／出力ポートまたは別々の入力ポートおよび出力ポートを含む。メモリ・モジュール１３０が、高速リンク１３４の別々のセグメントがメモリ・モジュール１３０のそれぞれを、互いに、またはシステム制御装置１１０に結合するために使用される、ポイント・ツー・ポイントの結合配置にてシステム制御装置１１０に結合されて示される。しかしながら、単一の高速リンク（図示されない）がメモリ・モジュール１３０のすべてに結合されるマルチ・ドロップ配置などの他のトポロジをもまた使用できることが理解されるであろう。システム制御装置１１０がスイッチ（図示されない）を介してメモリ・モジュール１３０のそれぞれに選択的に結合されるスイッチングトポロジをもまた使用できる。使用できる他のトポロジは当業者にとって明らかであろう。
【００１５】
高速リンク１３４は、システム制御装置１１０とメモリ・モジュールとの間でコマンド、アドレス、およびデータ信号を通信する経路としての役割を果たす。コマンド、アドレス、およびデータ信号は、さまざまなフォーマットを前提とすることが可能である。しかしながら、図１にて示された実施形態においては、コマンド、アドレス、および書き込みデータ信号はすべてメモリ・パケットに埋め込まれ、システム制御装置１１０からメモリ・モジュール１３０に伝送される。読み出しデータ信号を含含するメモリ・パケットは、メモリ・モジュール１３０からシステム制御装置１１０に結合されたパケットに埋め込まれる。
【００１６】
メモリ・モジュール１３０のそれぞれは、図１で説明された例においてはＳＤＲＡＭデバイスである３２のメモリ・デバイス１４８へのアクセスを制御するためのメモリ・ハブ１４０を含む。しかしながら、メモリ・デバイス１４８の数についてはより小さい数、またはより大きい数を使用することができ、そしてＳＤＲＡＭデバイス以外のメモリ・デバイスをもまた使用できることはもちろんである。図１にて説明された例においては、メモリ・ハブ１４０は高速リンク１３４を介して４つの独立のメモリ・チャネル１４９を介して通信する。図１、４においては示されないが、この例においてはメモリ・ハブ制御装置１２８がそれぞれ１つのメモリ・チャネル１４９からデータを受け取るために提供される。しかしながら、メモリ・チャネル１４９の数については、より小さい数、またはより大きい数を使用できる。メモリ・ハブ１４０は、バス・システム１５０を介して、通常、制御バス、アドレス・バス、およびデータ・バスを含むシステム・メモリ・デバイス１４８のそれぞれに結合される。
【００１７】
本発明の一実施形態に係るメモリ・ハブ２００は、図２に示される。メモリ・ハブ２００は、図１のメモリ・ハブ１４０と置き換えることが可能である。メモリ・ハブ２００は、ここでの例においては従来のＳＤＲＡＭデバイスである４つのメモリ・デバイス２４０ａ〜ｄに結合されるとして図２において示される。他の実施形態においては、メモリ・ハブ２００は、単に４つの異なったメモリ・デバイス２４０ａ〜ｄではなく、メモリ・デバイスの４つの異なるバンクに結合され、それぞれのバンクが通常複数のメモリ・デバイスを有する。しかしながら、一例を提供する目的のため、本明細書での記述は４つのメモリ・デバイス２４０ａ〜ｄに結合されるメモリ・ハブ２００を参照する。当然のことながら、メモリの複数のバンクを収容するために必要なメモリ・ハブ２００への修正は、当技術分野の当業者の知識の範囲内である。
【００１８】
メモリ・ハブ２００にさらに含まれるのは、そのメモリ・ハブ２００が位置するメモリ・モジュールを、第１の高速データ・リンク２２０および第２の高速データ・リンク２２２にそれぞれ結合するための、リンク・インターフェース２１０ａ〜ｄおよび２１２ａ〜ｄである。図１に関して上述したように、高速データ・リンク２２０、２２２は、光学的または電気的通信路、またはいくつかの他の型の通信路を使用して実装することができる。リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄは従来のものであり、高速データ・リンク２２０、２２２との間でデータ、コマンド、およびアドレス情報を伝送するために使用される回路を含む。よく知られるように、そのような回路は当技術分野で知られている送信機構および受信機構のロジックを含む。当然のことながら、当技術分野における当業者は、特定の型の通信路と共に使用されるリンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄを修正するために十分な理解を有しており、リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄへのそのような修正は、本発明の範囲から逸脱しないで為すことができる。例えば、高速データ・リンク２２０、２２２が光学的通信路を使用して実装される場合には、リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄは、光学的通信路を介して結合される光学的信号を電気的信号に変換することができる光学的入力／出力ポートを含む。
【００１９】
リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄは、バス２１４によって表される複数のバスおよび信号線を介してスイッチ２６０に結合される。バス２１４は従来のものであり、書き込みデータ・バスおよび読み出しデータ・バスを含むが、リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄを介して両方向にデータを結合するために、単一の双方向データ・バスが代替として提供される場合もある。当業者にとっては当然のことながら、バス２１４が例として提供され、かつバス２１４が、キャッシュ一貫性（coherency）を維持するために使用可能な、要求線やスヌープ（snoop）線をさらに含む場合などのより少ない、またはより多い信号線を含む場合がある。
【００２０】
リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄは、メモリ・ハブ２００がシステム・メモリにおいてさまざまな構成にて接続されることを可能とする回路を含む。例えば、リンク・インターフェース２１０ａ〜ｄまたは２１２ａ〜ｄを介して、それぞれのメモリ・モジュール１３０を、別のメモリ・モジュール１３０にまたはメモリ・ハブ制御装置１２８に結合することによって、図１に示すポイント・ツー・ポイント配置は実装可能である。この型の相互接続は、静電容量が比較的低いこと、信号を反射する線の不連続性が比較的少ないこと、および信号経路が比較的短いことを含むいくつかの理由のため、プロセッサ１０４およびメモリ・ハブ２００の間により良い信号結合を提供する。また、メモリ・モジュールを直列に結合することによって、マルチ・ドロップまたはデイジー・チェーン（daisy chain）構成が実装可能である。例えば、リンク・インターフェース２１０ａ〜ｄは第１のメモリ・モジュールを結合するために使用可能であり、そしてリンク・インターフェース２１２ａ〜ｄは第２のメモリ・モジュールを結合するために使用可能である。プロセッサまたはシステム制御装置に結合されるメモリ・モジュールは、１式のリンク・インターフェースを介してそこに結合され、別の１式のリンク・インターフェースを介して別のメモリ・モジュールにさらに結合される。本発明の一実施形態においては、メモリ・モジュールのメモリ・ハブ２００はマルチ・ドロップ配置にてプロセッサに結合される。
【００２１】
スイッチ２６０は、４つのメモリ・インターフェース２７０ａ〜ｄにさらに結合され、４つのメモリ・インターフェース２７０ａ〜ｄは、次にシステム・メモリ・デバイス２４０ａ〜ｄにそれぞれ結合される。システム・メモリ・デバイス２４０ａ〜ｄに対して、別々でかつ独立のメモリ・インターフェース２７０ａ〜ｄをそれぞれ提供することによって、メモリ・ハブ２００は単一チャネル・メモリ構造で通常発生するバスやメモリ・バンクの競合（conflict）を回避する。スイッチ２６０は、バス２７４によって表される複数のバスおよび信号線を介して、それぞれのメモリ・インターフェースに結合される。バス２７４は、書き込みデータ・バス、読み出しデータ・バス、および要求線を含む。しかしながら、別々の書き込みデータ・バスおよび読み出しデータ・バスの代わりに、代替として単一の双方向データ・バスを使用できることが理解されるだろう。さらにバス２７４は、上述の信号線に対して、より多い、またはより少ない数の信号線を含むことが可能である。
【００２２】
本発明の一実施形態においては、それぞれのメモリ・インターフェース２７０ａ〜ｄは、それが結合されるシステム・メモリ・デバイス２４０ａ〜ｄに特に適合させられる。すなわち、それぞれのメモリ・インターフェース２７０ａ〜ｄは、それが結合されるシステム・メモリ・デバイス２４０ａ〜ｄによってそれぞれ受け取られ、生成される特定の信号を提供し、受け取るように、特に適合させられる。また、メモリ・インターフェース２７０ａ〜ｄは、異なるクロック周波数にて動作しているシステム・メモリ・デバイス２４０ａ〜ｄと動作することができる。結果としてメモリ・インターフェース２７０ａ〜ｄは、メモリ・ハブ２３０と、メモリ・ハブ２００に結合されたメモリ・デバイス２４０ａ〜ｄとの間のインターフェースにて生じることがある変化から、プロセッサ１０４を隔離させ、そしてメモリ・デバイス２４０ａ〜ｄがインターフェースで接続することができる、より制御された環境を提供する。
【００２３】
リンク・インターフェース２１０ａ〜ｄ、２１２ａ〜ｄおよびメモリ・インターフェース２７０ａ〜ｄを結合するスイッチ２６０は、従来の、または後述の開発されたさまざまなスイッチのいずれであることも可能である。例えば、スイッチ２６０は、リンク・インターフェース２ｌ０ａ〜ｄ、２１２ａ〜ｄおよびメモリ・インターフェース２７０ａ〜ｄを、さまざまな配置にて互いに同時に結合可能なクロス・バー・スイッチである場合がある。スイッチ２６０はまた、クロス・バー・スイッチと同一水準の接続性を提供しないが、それでもやはりリンク・インターフェース２ｌ０ａ〜ｄ、２１２ａ〜ｄのいくつかまたはすべてをメモリ・インターフェース２７０ａ〜ｄのそれぞれに結合可能な、１式の多重化機構であることも可能である。スイッチ２６０はまたアービトレーション・ロジック（arbitration logic）（図示されない）を含み、どのメモリ・アクセスが他のメモリ・アクセスより優先権を受けるべきであるかを決定することができる。この機能を実行するバス・アービトレーションは、当業者によく知られている。
【００２４】
さらに図２を参照すると、メモリ・インターフェース２７０ａ〜ｄのそれぞれは、それぞれのメモリ制御装置２８０、それぞれの書き込みバッファ２８２、およびそれぞれのキャッシュ・メモリ・ユニット２８４を含む。メモリ制御装置２８０は、それが結合されるシステム・メモリ・デバイス２４０ａ〜ｄに制御、アドレス、およびデータ信号を提供することによって、およびそれが結合されるシステム・メモリ・デバイス２４０ａ〜ｄからデータ信号を受信することによって、従来のメモリ制御装置と同一の機能を実行する。書き込みバッファ２８２およびキャッシュ・メモリ・ユニット２８４は、当技術分野においては周知のとおり、タグ・メモリ、データ・メモリ、比較器、および同様のものを含む、バッファおよびキャッシュ・メモリの通常のコンポーネントを含む。書き込みバッファ２８２およびキャッシュ・メモリ・ユニット２８４にて使用されるメモリ・デバイスは、ＤＲＡＭデバイス、ＳＲＡＭデバイス、他の型のメモリ・デバイス、または３つすべての組み合わせのいずれであってもよい。さらに、これらのメモリ・デバイスのいずれかまたはすべては、キャッシュ・メモリ・ユニット２８４において使用される他のコンポーネントと同様に、組み込みデバイス（embedded device）、または独立のデバイス（stand-alone device）である場合がある。
【００２５】
それぞれのメモリ・インターフェース２７０ａ〜ｄにおける書き込みバッファ２８２は、読み出し要求が処理されている間、書き込み要求を格納するために使用される。そのようなシステムにおいては、書き込み要求が向けられているメモリ・デバイスが、前の書き込みまたは読み出し要求を処理していて使用中（busy）であっても、プロセッサ１０４は、システム・メモリ・デバイス２４０ａ〜ｄにその書き込み要求を発行可能である。前の書き込み要求は、引き続く読み出し要求が処理されている間、書き込みバッファ２８２中に格納することが可能であるため、この対応方法を使用して、メモリ要求を順不同にて処理することが可能である。読み出し要求が処理されることを可能とするように書き込み要求をバッファできる能力によって、それらの時間順にかかわらず読み出し要求に第１の優先権を与えることが可能であるため、メモリ読み出しの待ち時間を大いに削減することが可能である。例えば、読み出し要求が組み入れられる一連の書き込み要求を、書き込みバッファ２８２中に格納し、読み出し要求をパイプライン方式で処理し、引き続き、格納された書き込み要求をパイプライン方式で処理することができるようにすることが可能である。その結果、交互に来る読み出しおよび書き込み要求に対しての、書き込み要求のメモリ・デバイス２７０ａ〜ｄへの結合と、引き続いて、読み出し要求のメモリ・デバイス２７０ａ〜ｄへの結合との間の非常に長い設定の時間が回避される。
【００２６】
それぞれのメモリ・インターフェース２７０ａ〜ｄにおいてキャッシュ・メモリ・ユニット２８４を使用することによって、データが最近、システム・メモリ・デバイス２４０ａ〜ｄとの間で、読み出されたか、または書き込まれた場合に、システム・メモリ・デバイス２４０ａ〜ｄがそのようなデータを提供するのを待つことなく、プロセッサ１０４がおのおののシステム・メモリ・デバイス２４０ａ〜ｄに向けられた読み出しコマンドに応答してデータを受け取ることが可能となる。キャッシュ・メモリ・ユニット２８４は、システム・メモリ・デバイス２４０ａ〜ｄの読み出し待ち時間を減少させ、コンピュータシステムのメモリ転送能力を最大化する。同様に、プロセッサ１０４は、キャッシュ・メモリ・ユニット２８４に書き込みデータを格納することが可能であり、同一のメモリ・インターフェース２７０ａ〜ｄにおけるメモリ制御装置２８０が、キャッシュ・メモリ・ユニット２８４からそれが結合されるシステム・メモリ・デバイス２４０ａ〜ｄに書き込みデータを伝送する間に、他の機能を実行することが可能である。
【００２７】
メモリ・ハブ２００にさらに含まれるのは、診断バス（diagnostic bus）２９２を介してスイッチ２６０に結合されるＢＩＳＴ（Built In Self-Test：内蔵自己診断）および診断エンジン２９０である。診断エンジン２９０は、システム管理バス（ＳＭＢｕｓ）またはＪＴＡＧ（Joint・Test・Action・Group）およびＩＥＥＥ１１４９．１標準による保守バスなどの、保守バス２９６にさらに結合される。ＳＭＢｕｓおよびＪＴＡＧ標準は両方とも、当業者によりよく知られている。一般に、保守バス２９６は、メモリ・チャネルおよびリンクの診断を実行するために、診断エンジン２９０へのユーザ・アクセスを提供する。例えば、ユーザは、保守バス２９６を介して別のＰＣホストを結合し、診断試験を行い、またはメモリ・システム動作を監視する。保守バス２９６を使用して診断試験結果にアクセスすることによって、上述のような、試験プローブ（probe）の使用に関連する問題を回避することが可能である。当然のことながら、保守バス２９６は、本発明の範囲から逸脱することなく、従来のバス標準から修正可能である。さらに当然のことながら、診断エンジン２９０はそのような標準の保守バスが使用される保守バス２９６の標準を収容するべきである。例えば、診断エンジンは、そのような保守バスが使用されるＪＴＡＧバス標準に準拠する保守バス・インターフェースを含むべきである。
【００２８】
メモリ・ハブ２００にさらに含まれるのは、バス２８８を介してスイッチ２６０に結合されるＤＭＡエンジン２８６である。ＤＭＡエンジン２８６は、メモリ・ハブ２００が、プロセッサ１０４から介入なしで、データのブロックをシステム・メモリ中の１つの位置から、システム・メモリ中の別の位置まで移動させることを可能とする。バス２８８はシステム・メモリにおけるデータ伝送を取り扱うために、アドレス、制御、データ・バス、および同様のものなどの複数の従来のバス線および信号線を含む。ＤＭＡエンジン２８６は、当業者によりよく知られている従来のＤＭＡ動作を実装することが可能である。ＤＭＡエンジン２８６は、システム・メモリにおけるリンク・リストを読み出し、プロセッサの介入なしでＤＭＡメモリ動作を実行することができ、その結果プロセッサ１０４および転送能力の限定されたシステム・バスを、メモリ動作を実行することから解放する。ＤＭＡエンジン２８６はまた、例えば、システム・メモリ・デバイス２４０ａ〜ｄのそれぞれに対して、複数のチャネルに関するＤＭＡ動作を収容するための回路を含むことができる。そのような複数チャネルのＤＭＡエンジンは、当技術分野においてよく知られており、従来技術を使用して実装することが可能である。
【００２９】
診断エンジン２９０およびＤＭＡエンジン２８６は、メモリ・ハブ２００に埋め込まれた回路であることが望ましい。しかしながら、メモリ・ハブ２００に結合された個別の診断エンジンおよび個別のＤＭＡデバイスを含むこともまた、本発明の範囲内である。
【００３０】
上述のように、コマンド、アドレス、およびデータ信号は、メモリ・パケットの形態にてメモリ・ハブ制御装置１２８とメモリ・モジュール１３０との間で結合されることが望ましい。本発明の一実施形態によると、メモリ・モジュール１３０の期待された将来の性能を示すビットである「ヒント」が、メモリ・パケット中に埋め込まれていて、メモリ・モジュール１３０における１つまたは複数のメモリ・ハブ１４０に結合される。ヒントまたは複数のヒントは、以下でより詳細に説明されるように、１つまたは複数のメモリ・ハブ１４０の動作を修正する。特にヒントは、制御装置１２８が知るに至った、または推定した情報に基づいてメモリ順序付けを修正する。例えば、制御装置１２８は、メモリ要求側（requestor）またはアドレス・ストライド（stride）などのアドレス指定情報（addressing information）へのアクセス権を持つことができる。
【００３１】
アドレス指定ヒントの一例では、制御装置１２８は、ハブ１４０をページ・モードに設定し、開放しておくページ数を識別するコマンドを伝達する。別の例においては、制御装置１２８は、次に続く１、２、または４キャッシュ・ラインなどの「プリフェッチ」に関連するヒントを提供する。別の例においては、制御装置１２８はハブ１４０に、例えば次の１、２、または４キャッシュ・ラインをスキップするなどのストライドを伝達する。ヒントの別の例においては、制御装置１２８は、ハブ・キャッシュ中に特定のキャッシュ・ラインを設定すべきか否かを示すことができる。もちろん、他のヒントを使用でき、または記述されたヒントと共に他の特定の情報が提供される場合がある。
【００３２】
図３は、ヒント３０１を含む書き込みコマンド・パケット３００を表現する。書き込みコマンド・パケット３００は制御装置１２８によって生成され、ハブ１４０に伝達される。パケット３００は、ヒント３０１およびコマンド符号３０２を含む。書き込みコマンド・パケット３００は、書き込みデータ３１０、書き込みアドレス情報３０５をさらに含み、かつタグ３１１、ストライド３１２、予約３１３、長さ３１４、および誤り検査情報３１５などの他の情報を含む場合がある。
【００３３】
図４は、ヒント３５１を含む読み出しコマンド・パケット３５０を表現する。読み出しコマンド・パケット３５０は、制御装置１２８によって生成され、ハブ１４０に伝達される。パケット３５０は、ヒント３５１およびコマンド符号３５２を含む。読み出しコマンド・パケット３５０は読み出しアドレス情報３５５をさらに含み、かつタグ３６１、ストライド３６２、予約３６３、長さ３６４、および誤り検査情報３６５などの他の情報を含む場合がある。
【００３４】
パケット３００および３５０などの読み出しおよび書き込みコマンド・パケットは、ハブ１４０に送られる。パケット３００、および／または３５０を受け取るためのハブ１４０の一実装は図５に示される。読み出しまたは書き込みパケットは、入力リンク４００から受け取られる。要求デコーダ４０５はそのパケットを受け取り、要求およびいずれかのヒントまたはヒント群をデコードし、要求待ち行列４１０に提供する。要求デコーダ４０５は、読み出しアドレスをさらにデコードし、その読み出しアドレスを比較器４１５に供給する。書き込みバッファ待ち行列４２０はさらに、入力リンク４００からのパケットを受け取り、書き込みアドレスを比較器４１５に提供する。比較器４１５は、読み出しアドレスおよび書き込みアドレスを比較し、書き込み競合を要求待ち行列４１０に通知する。要求待ち行列４１０が読み出しバッファのヒットを識別する場合には、要求を実現させるためにプリフェッチバッファ４２５にアクセスする。要求およびヒントは、メモリ・インターフェース４３５に接続されるメモリ・シーケンサ４３０に提供される。メモリ・シーケンサ４３０は、いずれかのヒント情報に基づき動作し、メモリ・インターフェース４３５を介して要求を送る。メモリの読み出しデータは、適切な場合には、格納用のプリフェッチバッファ４２５に結合される。
【００３５】
上記の内容より当然のことながら、本発明の特定の実施形態が説明の目的のために本明細書で説明されてきたが、本発明の要旨および範囲から逸脱することなく、様々な修正を為すことができる。従って、特許請求の範囲を除いては、本発明は限定されるものではない。
【図面の簡単な説明】
【００３６】
【図１】メモリ・ハブが複数のメモリ・モジュールのそれぞれの中に含まれる、本発明の一例に係るコンピュータシステムのブロック図である。
【図２】本発明の一例に係る図１のコンピュータシステムにおいて使用されるメモリ・ハブのブロック図である。
【図３】本発明の一例に係る書き込みコマンド・パケットの概略図である。
【図４】本発明の一例に係る読み出しコマンド・パケットの概略図である。
【図５】本発明の一例に係る図１のコンピュータシステムにおいて使用されるメモリ・ハブのブロック図である。
【図１】
2007535737.tif 000003
【図２】
2007535737.tif 000004
【図３】
2007535737.tif 000005
【図４】
2007535737.tif 000006
【図５】
2007535737.tif 000007
【手続補正書】
【提出日】平成19年1月17日(2007.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２２
【補正方法】変更
【補正の内容】
【請求項２２】
前記リンク・インターフェースは、光学的入力／出力ポートを備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２３
【補正方法】変更
【補正の内容】
【請求項２３】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、前記メモリ・デバイスをページ・モードに設定する信号を備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２４
【補正方法】変更
【補正の内容】
【請求項２４】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、開放しておくページの数を備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２５
【補正方法】変更
【補正の内容】
【請求項２５】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、プリフェッチのヒントを備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２６
【補正方法】変更
【補正の内容】
【請求項２６】
前記ヒントの少なくとも１つは、前記システム制御装置から送られるキャッシュ・ラインの数を備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２７
【補正方法】変更
【補正の内容】
【請求項２７】
前記システム制御装置によって生成される前記ヒントの少なくとも１つは、データがフェッチされるアドレスの順番を示すストライドを備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２８
【補正方法】変更
【補正の内容】
【請求項２８】
前記ヒントの少なくとも１つは、スキップするキャッシュ・ラインの数を備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２９
【補正方法】変更
【補正の内容】
【請求項２９】
前記メモリ・デバイスは、ＤＲＡＭデバイスを備えたことを特徴とする請求項２１に記載のコンピュータ・システム。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３０
【補正方法】変更
【補正の内容】
【請求項３０】
前記リンク・インターフェースおよび前記メモリ・シーケンサに結合される要求デコーダをさらに備え、
前記要求デコーダは、前記ヒントをデコードできることを特徴とする請求項２１に記載のコンピュータ・システム。