(57)【要約】コンピュータシステムが、複数の同期ダイナミックランダムアクセスメモリ（“ＳＤＲＡＭ”）素子（１４０ａ〜ｃ）とプロセッサ（１０４）とを接続するメモリハブ（１３０）を備える。メモリハブ（１３０）は、プロセッサ（１０４）と接続されたプロセッサインタフェース（１５０）、並びに、それぞれのＳＤＲＡＭ素子（１４０ａ〜ｃ）と接続された複数のメモリインタフェース（１７０ａ〜ｃ）を備える。プロセッサインタフェース（１５０）はスイッチ（１６０）によりメモリインタフェース（１７０ａ〜ｃ）と接続される。
2005529407.tif 000002
【特許請求の範囲】
【請求項１】
メモリハブであって、
メモリアクセス装置とインターフェースするように構成されたメモリアクセス装置用インターフェースと、
それぞれのメモリ素子とインターフェースするように構成された複数のメモリインタフェースであって、それぞれがメモリコントローラとメモリキャッシュとを備えたメモリインタフェースと、
前記メモリアクセス装置用インターフェースを前記メモリインタフェースの各々と接続するスイッチと、を備えたメモリハブ。
【請求項２】
前記メモリアクセス装置用インターフェースがプロセッサとインターフェースするように構成されたプロセッサインタフェースを備えた請求項１に記載のメモリハブ。
【請求項３】
前記メモリインタフェースの各々が、前回のメモリアクセスから得られたアドレスに基づいて、データを読み出せる可能性が大きい起点アドレスを予測し、次いで、前記メモリインタフェースのそれぞれの中の前記メモリコントローラに、メモリ読出し動作を示す信号を前記予測したアドレスから出力させるように構成される予測ユニットをさらに備えた請求項１に記載のメモリハブ。
【請求項４】
前記予測ユニットが、メモリ読出し動作を示す前記信号に応答して、受信した読出しデータを、前記メモリインタフェースをして前記キャッシュメモリ内に記憶させるようにさらに構成された請求項３に記載のメモリハブ。
【請求項５】
前記メモリインタフェースの各々が同じクロック速度で動作する請求項１に記載のメモリハブ。
【請求項６】
前記スイッチがクロスバスイッチを備えた請求項１に記載のメモリハブ。
【請求項７】
前記スイッチがマルチプレクサスイッチを備えた請求項１に記載のメモリハブ。
【請求項８】
前記キャッシュメモリがダイナミックランダムアクセスメモリを備えた請求項１に記載のメモリハブ。
【請求項９】
メモリハブであって、
メモリアクセス装置とインターフェースするように構成されたメモリアクセス装置用インターフェースと、
それぞれのメモリ素子とインターフェースするように構成された複数のメモリインタフェースであり、それぞれがメモリコントローラと予測ユニットとを備えたメモリインタフェースであって、前回のメモリアクセスから得られたアドレスに基づいて、データを読み出せる可能性が大きい起点アドレスを予測し、次いで、前記メモリインタフェースのそれぞれの中の前記メモリコントローラをして、メモリ読出し動作を示す信号を前記予測したアドレスから出力させるように構成されたメモリインタフェースと、
前記メモリアクセス装置用インターフェースを前記メモリインタフェースと接続させるスイッチと、を備えたメモリハブ。
【請求項１０】
前記メモリアクセス装置用インターフェースがプロセッサインタフェースを備えた請求項９に記載のメモリハブ。
【請求項１１】
前記メモリインタフェースの各々が同じクロック速度で動作する請求項９に記載のメモリハブ。
【請求項１２】
前記スイッチがクロスバスイッチを備えた請求項９に記載のメモリハブ。
【請求項１３】
前記スイッチがマルチプレクサスイッチを備えた請求項９に記載のメモリハブ。
【請求項１４】
コンピュータシステムであって、
計算機能を実行する動作可能な処理ユニットと、
前記処理ユニットと接続されたシステムコントローラと、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つの入力装置と、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つの出力装置と、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つのデータ記憶装置と、
複数のメモリ素子と、
メモリハブであって、
前記プロセッサと接続されたプロセッサインタフェースと、
前記メモリ素子のそれぞれと接続された複数のメモリインタフェースであって、それぞれがメモリコントローラとメモリキャッシュとを備えたメモリインタフェースと、
前記プロセッサインタフェースを前記メモリインタフェースの各々と接続するスイッチとを設けたメモリハブと、を備えたコンピュータシステム。
【請求項１５】
前記メモリハブが前記システムコントローラの中に物理的に設けられた請求項１４に記載のコンピュータシステム。
【請求項１６】
前記複数のメモリ素子がメモリモジュールの中に物理的にパッケージされ、前記メモリハブが前記メモリモジュールの中に物理的に設けられた請求項１４に記載のコンピュータシステム。
【請求項１７】
前記メモリインタフェースの各々が、前回のメモリアクセスから得られたアドレスに基づいてデータを読み出せる可能性が大きい起点アドレスを予測し、次いで、前記メモリインタフェースのそれぞれの中の前記メモリコントローラをして、前記予測したアドレスからのメモリ読出し動作を示す出力信号を前記メモリインタフェースが接続された接続先の前記メモリ素子に印加させるように構成される予測ユニットをさらに備えた請求項１４に記載のコンピュータシステム。
【請求項１８】
前記予測ユニットが、前記メモリインタフェースをして、メモリ読出し動作を示す前記信号に応答して、前記メモリ素子のそれぞれから受信した読出しデータを前記キャッシュメモリに記憶させるようにさらに構成された請求項１５に記載のコンピュータシステム。
【請求項１９】
前記メモリインタフェースの各々が同じクロック速度で動作する請求項１４に記載のコンピュータシステム。
【請求項２０】
前記スイッチがクロスバスイッチを備えた請求項１４に記載のコンピュータシステム。
【請求項２１】
前記スイッチがマルチプレクサスイッチを備えた請求項１４に記載のコンピュータシステム。
【請求項２２】
前記キャッシュメモリがダイナミックランダムアクセスメモリを備えた請求項１４に記載のコンピュータシステム。
【請求項２３】
前記メモリ素子の各々がダイナミックランダムアクセスメモリ素子を備えた請求項１４に記載のコンピュータシステム。
【請求項２４】
前記ダイナミックランダムアクセスメモリ素子の各々が同期ダイナミックランダムアクセスメモリ素子を備えた請求項２１に記載のコンピュータシステム。
【請求項２５】
コンピュータシステムであって、
計算機能を実行する動作可能な処理ユニットと、
前記処理ユニットと接続されたシステムコントローラと、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つの入力装置と、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つの出力装置と、
前記システムコントローラを介して前記処理ユニットと接続された少なくとも１つのデータ記憶装置と、
複数のメモリ素子と、
メモリハブであって、
前記プロセッサと接続されたプロセッサインタフェースと、
前記メモリ素子のそれぞれと接続された複数のメモリインタフェースであり、それぞれがメモリコントローラと予測ユニットとを備えたメモリインタフェースであって、前記予測ユニットが、前回のメモリアクセスから得られたアドレスに基づいて、データを読み出せる可能性が大きい起点アドレスを予測し、前記メモリインタフェースのそれぞれの中の前記メモリコントローラをして、前記予測したアドレスからのメモリ読出し動作を示す信号を、前記メモリインタフェースが接続されている接続先の前記メモリ素子へ出力させるように構成されるメモリインタフェースと、
前記プロセッサインタフェースを前記メモリインタフェースの各々と接続するスイッチとを備えたメモリハブと、を備えたコンピュータシステム。
【請求項２６】
前記メモリハブが前記システムコントローラの中に物理的に設けられた請求項２５に記載のコンピュータシステム。
【請求項２７】
前記複数のメモリ素子がメモリモジュールの中に物理的にパッケージされ、前記メモリハブが前記メモリモジュールの中に物理的に設けられた請求項２５に記載のコンピュータシステム。
【請求項２８】
前記メモリインタフェースの各々が同じクロック速度で動作する請求項２５に記載のコンピュータシステム。
【請求項２９】
前記スイッチがクロスバスイッチを備えた請求項２５に記載のコンピュータシステム。
【請求項３０】
前記スイッチがマルチプレクサスイッチを備えた請求項２５に記載のコンピュータシステム。
【請求項３１】
前記メモリ素子の各々がダイナミックランダムアクセスメモリ素子を備えた請求項２５に記載のコンピュータシステム。
【請求項３２】
複数のメモリ素子にアクセスする方法であって、
メモリハブと接続された複数のメモリ素子のうちの第１のメモリ素子へメモリアクセス要求を送るステップと、
前記第１のメモリ素子から読み出したり、前記第１のメモリ素子へ書き込んだりしたデータを前記メモリハブに配置されたキャッシュメモリに記憶するステップと、
その後、前記第１のメモリ素子へメモリ読出し要求を送るステップと、
前記メモリ読出し要求に応答して、前記メモリ読出し要求に対応する前記データが、前記メモリハブに配置された前記キャッシュメモリに記憶されているかどうかを検出するステップと、
前記メモリ読出し要求に対応する前記データが、前記メモリハブ内に配置された前記キャッシュメモリに記憶されていると判定された場合、前記キャッシュメモリから前記読出しデータを出力するステップと、
前記メモリ読出し要求に対応する前記データが、前記メモリハブ内に配置された前記キャッシュメモリに記憶されていないと判定された場合、前記第１のメモリ素子から前記読出しデータを出力するステップと、を備えた方法。
【請求項３３】
請求項３２に記載の方法であって、
前記第１のメモリ素子に対する前回のメモリアクセスからのアドレスに基づいて、前記第１のメモリ素子からデータを読み出す可能性が大きい起点アドレスを予測するステップと、
前記第１のメモリ素子の前記予測したアドレスから読み出したデータを出力するステップと、
前記予測したアドレスから得られた前記読出しデータを前記メモリハブ内の前記キャッシュメモリに記憶するステップと、をさらに備えた方法。
【請求項３４】
前記メモリハブ内のキャッシュメモリの中に、前記第１のメモリ素子から読み出されたデータ、または、前記第１のメモリ素子へ書き込まれたデータを記憶する前記アクションが、前記第１のメモリ素子から読み出された前記データ、または、前記第１のメモリ素子へ書き込まれた前記データを前記第１のメモリ素子専用のキャッシュメモリの中に記憶するステップを備えた請求項３２に記載の方法。
【請求項３５】
前記予測の根拠とした前記メモリアクセス要求が読出しメモリアクセスを含む請求項３２に記載の方法。
【請求項３６】
前記予測の根拠とした前記メモリアクセス要求が書込みメモリアクセスを含む請求項３２に記載の方法。
【請求項３７】
複数のメモリ素子にアクセスする方法であって、
メモリハブと接続された複数のメモリ素子内のそれぞれのアドレスへメモリアクセス要求を送るステップと、
前記メモリハブにおいて、前記メモリアクセス要求の送り先である前記アドレスに基づいて、前記第１のメモリ素子からデータを読み出す可能性が大きい少なくとも１つの起点アドレスを予測するステップと、
前記予測したアドレスへ送られたメモリ読出し要求の受信に先行して、前記メモリ素子内の前記予測したアドレスからそれぞれの読出しデータを出力するステップと、を備えた方法。
【請求項３８】
前記予測の根拠とした前記メモリアクセス要求が読出しメモリ要求を含む請求項３７に記載の方法。
【請求項３９】
前記予測の根拠とした前記メモリアクセス要求が書込みメモリ要求を含む請求項３７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関し、特に、いくつかのメモリ素子をプロセッサまたは別のメモリアクセス装置と接続するメモリハブを備えたコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、ダイナミックランダムアクセスメモリ（“ＳＤＲＡＭ”）素子などのメモリ素子を用いて、プロセッサがアクセスする命令とデータとを記憶する。一般的なコンピュータシステムでは、プロセッサはプロセッサバスとメモリコントローラとを通じてシステムメモリと通信を行う。プロセッサは、読出しコマンドなどのコマンドと、データや命令を読み出す記憶位置を指定するアドレスとを送出する。メモリコントローラは上記コマンドとアドレスとを利用して、適切なコマンド信号並びに行アドレスと列アドレスとを生成し、これらをシステムメモリに印加する。上記コマンドとアドレスとに応じて、データはシステムメモリとプロセッサ間で転送される。メモリコントローラは、システムコントローラの一部である場合が多く、また、プロセッサバスをＰＣＩバスなどの拡張バスと接続するバスブリッジ回路も備える。
【０００３】
メモリ素子の動作速度が連続して上昇してきているとはいえ、メモリ素子の動作速度の上昇は、プロセッサの動作速度の上昇と歩調をそろえているわけではない。プロセッサをメモリ素子と接続しているメモリコントローラの動作速度の上昇の方がずっと緩慢である。メモリコントローラとメモリ素子との相対的に低い動作速度によって、プロセッサとメモリ素子間での通信帯域幅は制限を受けることになる。
【０００４】
プロセッサとメモリ素子間のこの制限された帯域幅に加えて、コンピュータシステムのパフォーマンスは、システムメモリ素子からのデータの読出しに必要な時間を増やす待ち時間問題によっても制限される。さらに詳しく言えば、メモリ素子読出しコマンドが、非同期ＤＲＡＭ（“ＳＤＲＡＭ”）素子などのシステムメモリ素子と接続されるとき、読出しデータは数クロック分の周期遅延を生じた後にしかＳＤＲＡＭ素子から出力されない。したがって、ＳＤＲＡＭ素子は高速のデータレートでバーストデータの同期出力を行うことが可能であるにもかかわらず、上記のようなＳＤＲＡＭ素子を用いることにより、初期のデータ出力時の遅延がコンピュータシステムの動作速度を大幅に遅らせることになる場合がある。
【０００５】
メモリ待ち時間問題を多少とも解決する１つのアプローチとして、メモリハブを介してプロセッサと接続された複数のメモリ素子を利用するアプローチがある。このアーキテクチャを採用するコンピュータシステムはより広い帯域幅を有するものであってもよい。というのは、１つのメモリ素子が前のメモリアクセスに応答している間、プロセッサは別のメモリ素子にアクセスすることができるからである。例えば、プロセッサは、システム内の１つのメモリ素子が読出しデータをプロセッサへ出力する準備をしている間、システム内のメモリ素子のうちの別のメモリ素子へ書込みデータを出力することができる。しかし、メモリハブを使用しているコンピュータシステムは、すぐれたパフォーマンスを提供することができるにもかかわらず、それでも最適の速度で動作できないことが多い。このようなコンピュータシステムが最適の速度で動作できない理由の１つとして、従来型のメモリハブが実質的に単一チャネルシステムであるということが挙げられる。というのは、すべての制御信号、アドレス信号およびデータ信号が共通のメモリハブ回路の中を通過しなければならないからである。この結果、メモリハブ回路は、１つのメモリ素子とビジーな通信を行っているとき、別のメモリ素子と自由に通信することができなくなる。さらに、メモリハブを利用しているコンピュータシステムは、より大きなメモリ帯域幅の出力が可能であるにもかかわらず、上述のタイプの待ち時間問題という欠点を依然として抱えている。さらに詳しく言えば、プロセッサは１つのメモリ素子がデータの転送準備をしている間、別のメモリ素子と通信ができるにもかかわらず、１つのメモリ素子からのデータを使用できないうちに、別のメモリ素子からデータを受信することが時として必要となる場合もある。１つのメモリ素子から受信したデータを使用できないうちに別のデータをメモリ素子から受信しなければならない場合、待ち時間問題はこのようなコンピュータシステムの動作速度を遅らせ続けることになる。
【０００６】
したがって、メモリハブアーキテクチャの利点を提供し、上記のようなシステムに共通の問題である上記待ち時間問題も最小限にとどめ、それによって、広い帯域幅と短い待ち時間とをメモリ素子に提供するコンピュータアーキテクチャを求める要望が存在する。
【発明の開示】
【課題を解決するための手段】
【０００７】
発明の概要
コンピュータシステムで使用できるメモリハブが、プロセッサまたは別のメモリアクセス装置と接続されたメモリアクセス装置用インターフェースと、それぞれのメモリ素子とそれぞれ接続された複数のメモリインタフェースとを備える。上記メモリインタフェースの各々は、本発明の１つの態様に基づいて、メモリコントローラと、メモリキャッシュとを備える。上記メモリインタフェースの各々は、スイッチによってメモリアクセス装置用インターフェースと接続される。動作中、メモリインタフェースのうちの１つと接続されたメモリ素子から読み出されたデータまたは該メモリ素子へ書き込まれたデータは、メモリインタフェース用のキャッシュメモリに記憶される。後続するメモリ読出し要求に応答して、メモリ読出し要求に対応するデータがキャッシュメモリに記憶されているかどうかの判定チェックがキャッシュメモリに対して行われる。キャッシュがヒットした場合、要求されたデータはキャッシュメモリから出力される。キャッシュがヒットしなかった場合、要求されたデータはメモリ素子により出力される。本発明の別の態様によれば、個々のメモリインタフェースはメモリコントローラと予測ユニットとを備える。予測ユニットは、前回のメモリアクセスから得られたアドレスに基づいてデータを読み出せる可能性が大きい起点アドレスの予測を行う。次いで、予測ユニットは、それぞれのメモリインタフェース内のメモリコントローラに上記予測したアドレスからデータを読み出させる。メモリハブは、メモリ素子を利用するコンピュータシステムまたは別の電子システムのシステムコントローラ内か、メモリモジュール内か、あるいは別の何らかの部品内に物理的に設けられるものであってもよい。
【０００８】
発明の詳細な説明
本発明の１つの実施形態に従うコンピュータシステム１００が図１に示されている。コンピュータシステム１００はプロセッサ１０４を備え、このプロセッサは、特定の計算や、タスクを実行する専用ソフトウェアの実行などの種々の計算機能を行うものである。プロセッサ１０４はプロセッサバス１０８を備え、プロセッサバス１０８は通常アドレスバスと、制御バスと、データバスとを備える。さらに、コンピュータシステム１００は、キーボードまたはマウスなどの、システムコントローラ１１０を介してプロセッサ１０４と接続された１または２以上の入力装置１０８を備え、この入力装置によってオペレータはコンピュータシステム１００とインタフェースを行うことが可能となる。一般に、コンピュータシステム１００は、システムコントローラ１１０を介してプロセッサ１０４と接続される１または２以上の出力装置１１４を備えているが、このような出力装置は通常プリンタまたはビデオ端末装置である。１または２以上のデータ記憶装置１２０は通常システムコントローラ１１０を介してプロセッサ１０４と接続され、プロセッサ１０４は、データの記憶や、内部記憶媒体または外部記憶媒体（図示せず）からのデータ検索を行うことが可能となる。一般的な記憶素子１２０の例として、ハードディスク、フロッピー（登録商標）ディスク、テープカセット、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）が挙げられる。メモリハブ１３０はバスシステム１４２を介してシステムメモリ素子１４０ａ〜ｄの各々と接続される。バスシステム１４２は一般に制御バス、アドレスバスおよびデータバスを備える。プロセッサ１０４は、通常スタティックランダムアクセスメモリ（“ＳＲＡＭ”）であるキャッシュメモリ１２４とも接続される。
【０００９】
システムコントローラ１１０は、いくつかのシステムメモリ素子１４０ａ〜ｄへのアクセスを制御するメモリハブ１３０も備える。これらのシステムメモリ素子の各々は同期ダイナミックランダムアクセスメモリ（“ＳＤＲＡＭ”）であってもよい。メモリハブ１３０によって、プロセッサ１０４は、システムメモリ素子１４０ａ〜ｄの各々へのデータの書込み、システムメモリ素子１４０ａ〜ｄの各々からのデータの読出しが可能となる。メモリハブ１３０は、通常制御バス、アドレスバスおよびデータバスを備えたバスシステム１４２を介してシステムメモリ素子１４０ａ〜ｄの各々と接続される。
【００１０】
メモリハブ１３０はプロセッサ１０４と接続された形で図１に示されているが、メモリハブ１３０はコンピュータシステムチップ（図示せず）内の別の部品と接続されたものであってもよく、また、当業で周知のように、別の装置がメモリを直接操作してシステムメモリ素子１４０ａ〜ｄへデータを書き込み、システムメモリ素子１４０ａ〜ｄからのデータの読出しを可能にするものであってもよいことを理解されたい。また、システムコントローラ１１０以外の電子システムの部品の一部としてメモリハブ１３０を物理的に設けてもよい。例えば、図２に図示のコンピュータシステム１４４は図１のコンピュータシステム１００で使用されているものと同じ部品のほとんどを使用している。簡潔さを旨として、このような共通の部品に同じ参照番号をつけてきたので、これらの部品の動作についての説明は繰り返さない。コンピュータシステム１４４は、メモリハブ１３０がシステムコントローラ１１０の中に含まれないという点で、図１に図示のコンピュータシステム１００とは異なるものである。代わりに、システムコントローラ１１０は、ダブルインラインメモリモジュール（“ＤＩＭＭ”）のような複数のメモリモジュール１４６と接続される。メモリモジュール１４６の各々は、メモリハブ１３０と複数のメモリ素子１４８とを備え、これらのメモリ素子はＳＤＲＡＭまたは別の何らかのタイプのメモリ素子であってもよい。メモリハブ１３０は、図１と関連して以上説明したものとほぼ同じ態様で動作して、メモリモジュール１４６に記憶されたデータのキャッシュを行う。
【００１１】
図１と図２は、それぞれ、システムコントローラ１１０内に設けられたメモリハブ１３０と、メモリモジュール１４６とを示すものではあるが、メモリハブ１３０は、スタンドアローン型ユニットであってもよいし、あるいは、コンピュータシステムの別の部品内に、または、メモリ素子を用いる別のシステムの別の部品内に設けられたものであってもよいことを理解されたい。
【００１２】
メモリハブ１３０の１つの実施形態が図３に示されているが、この実施形態では、メモリハブ１３０はプロセッサ１０４および３つのメモリ素子１４０ａ〜ｃと接続されている。図３に示す例では、メモリ素子１４０ａ〜ｃはＳＤＲＡＭ素子である。メモリハブ１３０は、ポイント間構成でプロセッサ１０４と接続された形で示されているが、このポイント間構成には、プロセッサ１０４とメモリハブ１３０間の接続部と接続された別の装置は存在しない。このタイプの相互接続は、いくつかの理由で、プロセッサ１０４とメモリハブ１３０間でのより良好な信号接続を提供し、この信号接続には比較的低いキャパシタンスと、信号を反射する比較的少数の回線不連続部と、比較的短い信号経路とが含まれる。しかし、上記とは別に、マルチドロップ相互接続によって、プロセッサ１０４とメモリハブ１３０と間の相互接続部と接続された別の装置（図示せず）を使用してもよい。
【００１３】
メモリハブ１３０は、当業で周知のように、複数のバスと信号ラインとを介してプロセッサ１０４と接続されたプロセッサインタフェース１５０を備える。次いで、プロセッサインタフェース１５０は、書込みデータバス１５４と読出しデータバス１５６とを含む複数のバスと信号ラインとを介してスイッチ１６０と接続される。但し、上記とは別に、スイッチ１６０内にプロセッサインタフェース１５０間で双方向にデータを接続する単一の双方向データバスを設けるようにしてもよい。プロセッサインタフェース１５０は、要求ライン１６４とスヌープライン１６８とを介してスイッチ１６０と接続される。以下さらに詳述するように、スヌープライン１６８を介してスイッチ１６０からプロセッサインタフェース１５０へ接続されたスヌープ信号を利用してキャッシュの整合性が保たれる。要求ライン１６４を介してプロセッサインタフェース１５０からスイッチ１６０へ接続された要求信号によって、スイッチ１６０を介するデータ転送要求に対応する情報がスイッチ１６０に与えられる。しかし、さらに多数のバスと信号ライン、または、図３に例示のものとは異なるバスと信号ラインとを用いてスイッチ１６０とプロセッサインタフェース１５０とを接続してもよいことを理解されたい。
【００１４】
スイッチ１６０は３つのメモリインタフェース１７０ａ〜ｃとも接続され、これらのメモリインタフェース１７０ａ〜ｃは順にシステムメモリ素子１４０ａ〜ｃとそれぞれ接続される。個々のシステムメモリ素子１４０ａ〜ｃ用の別個の独立したメモリインタフェース１７０ａ〜ｃをそれぞれ設けることにより、メモリハブ１３０は、単一チャネルメモリアーキテクチャに関して通常生じるバスまたはメモリバンクコンフリクトを防止する。スイッチ１６０は、複数のバスと信号ラインを介して個々のメモリインタフェースと接続され、書込みデータバス１７４、読出しデータバス１７６および要求ライン１７８を備える。しかし、上記とは別に、別々の書込みデータバス１７４と読出しデータバス１７６の代わりに、単一の双方向データバスの使用が可能であることを理解されたい。個々のメモリインタフェース１７０ａ〜ｃが、接続されているシステムメモリ素子１４０ａ〜ｃに特に適合するようになっていることは重要である。さらに詳しく言えば、個々のメモリインタフェース１７０ａ〜ｃは、特に、これらのメモリインタフェースと接続されたシステムメモリ素子１４０ａ〜ｃによりそれぞれ受信され、生成される固有の受信信号を出力し、受信するようになっている。また、メモリインタフェース１７０ａ〜ｃは異なるクロック周波数で動作するシステムメモリ素子１４０ａ〜ｃと共に動作する能力を有している。この結果、メモリインタフェース１７０ａ〜ｃは、メモリハブ１３０と、ハブ１３０と接続されたメモリ素子１４０ａ〜ｃとの間のインタフェースで生じるかもしれない変化からプロセッサ１０４を分離する。メモリインタフェース１７０ａ〜ｃは、メモリ素子１４０ａ〜ｃがインタフェースの対象とすることができるさらに制御された環境を提供するものである。
【００１５】
プロセッサインタフェース１５０をメモリインタフェース１７０ａ〜ｃと接続するスイッチ１６０は、種々の従来型のスイッチまたは将来開発されるスイッチのいずれのスイッチであってもよい。例えば、スイッチ１６０は、プロセッサインタフェース１５０とメモリインタフェース１７０ａ〜ｃとにおいて互いを同時に接続できるクロスバスイッチであってもよい。スイッチ１６０は、クロスバスイッチと同レベルの接続性を示さない１組のマルチプレクサであってもよいが、それでも、プロセッサインタフェース１５０をメモリインタフェース１７０ａ〜ｃの各々と接続することは可能である。スイッチ１６０は、他のメモリアクセスに対してどのメモリアクセスが優先順位を受けるべきかを判定するアービトレーション論理回路（図示せず）を備えるものであってもよい。この機能を実行するバスアービトレーションは当業者に周知のものである。
【００１６】
さらに図３を参照すると、メモリインタフェース１７０ａ〜ｃの各々は、それぞれのメモリコントローラ１８０とそれぞれのキャッシュメモリユニット１８４とを備える。メモリコントローラ１８０は、このメモリコントローラが接続されているシステムメモリ素子１４０ａ〜ｃに対して、制御信号、アドレス信号およびデータ信号を出力することにより、並びに、このメモリコントローラが接続されているシステムメモリ素子１４０ａ〜ｃからデータ信号を受け取ることにより、従来型のメモリコントローラと同じ機能を実行する。当業で周知のように、キャッシュメモリユニット１８４は、タグメモリ、データメモリおよびコンパレータを備えたキャッシュメモリから成る通常の部品を備えている。キャッシュメモリユニット１８４で使用されるメモリ素子は、ＤＲＡＭ素子、スタティックランダムアクセスメモリ（“ＳＲＡＭ”）素子、別のタイプのメモリ素子、またはこれら３つの素子すべての組み合わせのいずれかであってもよい。さらに、これらメモリ素子の任意の素子またはすべての素子、並びにキャッシュメモリユニット１８４で使用される別の部品は、内蔵型装置またはスタンドアローン型装置のいずれかであってもよい。
【００１７】
個々のメモリインタフェース１７０ａ〜ｃでキャッシュメモリユニット１８４を利用することにより、プロセッサ１０４は、当該メモリ素子１４０ａ〜ｃから最近読み出されたり、当該メモリ素子１４０ａ〜ｃへ最近書き込まれたりしたようなデータがメモリ素子１４０ａ〜ｃから入出力されるのを待たずに、それぞれのシステムメモリ素子１４０ａ〜ｃへ送られる読出しコマンドに応答して、データを受信することが可能となる。したがって、キャッシュメモリユニット１８４は、システムメモリ素子１４０ａ〜ｃの読出し待ち時間を短縮して、コンピュータシステムのメモリ帯域幅を最大化することになる。同様に、プロセッサ１０４はキャッシュメモリユニット１８４に書込みデータを記憶するが、この時、同じメモリインタフェース１７０ａ〜ｃ内のメモリコントローラ１８０がキャッシュメモリユニット１８４から、メモリコントローラ１８０の接続先であるシステムメモリ素子１４０ａ〜ｃへ書込みデータを転送している間、プロセッサ１０４は別の機能を実行することが可能となる。
【００１８】
メモリハブ１３０が与えるメモリアクセス待ち時間をさらに短縮するために、個々のメモリインタフェース１７０ａ〜ｃにプリフェッチユニット１９０を設けてもよい。プリフェッチユニット１９０は、後続するメモリ読出し要求の予想されるアドレスを従来のアルゴリズムを用いて予測できるユニットである。プロセッサ１０４が異なるシステムメモリ素子１４０にアクセスしたり、別の機能を実行したりしている間、同じメモリインタフェース１７０ａ〜ｃ内のメモリコントローラ１８０は、バックグラウンドでメモリアクセスを行うことが可能である。その後、プロセッサ１０４がメモリハブ１３０へコマンドを出力して、予測したアドレスからデータを読み出すとき、その読出しデータはキャッシュメモリユニット１８０の中にすでに存在しているため、プロセッサ１０４への迅速なデータ出力が可能となる。
【００１９】
例示を目的として、本発明の具体的実施形態について本明細書で説明したが、上記の説明から、本発明の精神と範囲から逸脱することなく様々な変更を行うことも可能であることを理解されたい。したがって、本発明は添付の請求項以外の限定を受けるものではない。
【図面の簡単な説明】
【００２０】
【図１】図１は、システムコントローラがメモリハブを備えた本発明の１つの実施形態に従うコンピュータシステムのブロック図である。
【図２】図２は、メモリモジュール内にメモリハブを備えた、本発明の別の実施形態に従うコンピュータシステムのブロック図である。
【図３】図３は、図１と図２のコンピュータシステムで使用するメモリハブのブロック図である。
【図１】
2005529407.tif 000003
【図２】
2005529407.tif 000004
【図３】
2005529407.tif 000005
【国際調査報告】
2005529407.tif 000006