(57)【要約】  メモリモジュールは、いくつかのメモリ装置に結合されているメモリハブを含む。メモリハブは、例えばページヒット率、プリフェッチヒット、および／またはキャッシュヒット率など、１つまたは複数のシステム測定基準を追跡する少なくとも１つのパフォーマンスカウンタを含む。パフォーマンスカウンタは、パフォーマンスカウンタによって追跡されたシステム測定基準に基づいてその動作を調整するメモリシーケンサと通信する。
2007537541.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ装置と、
前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を受信するリンクインターフェイスと、
前記メモリ装置に結合されているメモリ装置インターフェイスであって、前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を前記メモリ装置に連結し、前記メモリ要求のうちの少なくとも一部に応じて読み出しデータを受信するように動作可能であるメモリ装置インターフェイスと、
前記メモリ装置インターフェイスに結合されているパフォーマンスカウンタであって、少なくとも１つの性能測定基準を追跡するように動作可能であるパフォーマンスカウンタと、
前記リンクインターフェイスおよび前記メモリ装置インターフェイスに結合されているメモリシーケンサであって、前記リンクインターフェイスから受信されたメモリ要求に応じてメモリ要求を前記メモリ装置インターフェイスに連結するように動作可能であり、前記パフォーマンスカウンタによって追跡された前記性能測定基準に応じて操作性を動的に調整するようさらに動作可能であるメモリシーケンサと
を含むメモリハブと
を含むことを特徴とするメモリモジュール。
【請求項２】
前記リンクインターフェイスは、光入力／出力ポートを含むことを特徴とする請求項１に記載のメモリモジュール。
【請求項３】
前記パフォーマンスカウンタによって追跡される前記性能測定基準は、ページヒット率、プリフェッチヒット、およびキャッシュヒット率から成るグループから選択される少なくとも１つの性能測定基準を含むことを特徴とする請求項１に記載のメモリモジュール。
【請求項４】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、前記メモリ装置における開いたページの数を変更するよう動作可能であることを特徴とする請求項３に記載のメモリモジュール。
【請求項５】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、自動プリチャージモードに切り替えるよう動作可能であることを特徴とする請求項３に記載のメモリモジュール。
【請求項６】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチを実行可能または実行不可にするよう動作可能であることを特徴とする請求項３に記載のメモリモジュール。
【請求項７】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチ要求の数を決定するよう動作可能であることを特徴とする請求項３に記載のメモリモジュール。
【請求項８】
前記パフォーマンスカウンタは、キャッシュヒット率を追跡し、前記メモリシーケンサは、前記キャッシュを使用不可にするよう動作可能であることを特徴とする請求項３に記載のメモリモジュール。
【請求項９】
前記メモリ装置は、ダイナミックランダムアクセスメモリ装置を含むことを特徴とする請求項１に記載のメモリモジュール。
【請求項１０】
前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を受信するリンクインターフェイスと、
前記メモリ装置に結合されているメモリ装置インターフェイスであって、前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を前記メモリ装置に連結し、前記メモリ要求のうちの少なくとも一部に応じて読み出しデータを受信するように動作可能であるメモリ装置インターフェイスと、
前記メモリ装置インターフェイスに結合されているパフォーマンスカウンタであって、少なくとも１つの性能測定基準を追跡するように動作可能であるパフォーマンスカウンタと、
前記リンクインターフェイスおよび前記メモリ装置インターフェイスに結合されているメモリシーケンサであって、前記リンクインターフェイスから受信されたメモリ要求に応じてメモリ要求を前記メモリ装置インターフェイスに連結するように動作可能であり、前記パフォーマンスカウンタによって追跡された前記性能測定基準に応じて操作性を動的に調整するようさらに動作可能であるメモリシーケンサと
を含むことを特徴とするメモリハブ。
【請求項１１】
前記リンクインターフェイスは、光入力／出力ポートを含むことを特徴とする請求項１０に記載のメモリハブ。
【請求項１２】
前記パフォーマンスカウンタによって追跡される前記性能測定基準は、ページヒット率、プリフェッチヒット、およびキャッシュヒット率から成るグループから選択される少なくとも１つの性能測定基準を含むことを特徴とする請求項１０に記載のメモリハブ。
【請求項１３】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、前記メモリ装置における開いたページの数を変更するよう動作可能であることを特徴とする請求項１２に記載のメモリハブ。
【請求項１４】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、自動プリチャージモードに切り替えるよう動作可能であることを特徴とする請求項１２に記載のメモリハブ。
【請求項１５】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチを実行可能または実行不可にするよう動作可能であることを特徴とする請求項１２に記載のメモリハブ。
【請求項１６】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチ要求の数を決定するよう動作可能であることを特徴とする請求項１２に記載のメモリハブ。
【請求項１７】
前記パフォーマンスカウンタは、キャッシュヒット率を追跡し、前記メモリシーケンサは、前記キャッシュを使用不可にするよう動作可能であることを特徴とする請求項１２に記載のメモリハブ。
【請求項１８】
ＣＰＵと、
前記ＣＰＵに結合されており、入力ポートおよび出力ポートを有するシステムコントローラと、
前記システムコントローラを介して前記ＣＰＵに結合されている入力装置と、
前記システムコントローラを介して前記ＣＰＵに結合されている出力装置と、
前記システムコントローラを介して前記ＣＰＵに結合されている記憶装置と、
複数のメモリ装置と、
前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を受信するリンクインターフェイスと、
前記メモリ装置に結合されているメモリ装置インターフェイスであって、前記メモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を前記メモリ装置に連結し、前記メモリ要求のうちの少なくとも一部に応じて読み出しデータを受信するように動作可能であるメモリ装置インターフェイスと、
前記メモリ装置インターフェイスに結合されているパフォーマンスカウンタであって、少なくとも１つの性能測定基準を追跡するように動作可能であるパフォーマンスカウンタと、
前記リンクインターフェイスおよび前記メモリ装置インターフェイスに結合されているメモリシーケンサであって、前記リンクインターフェイスから受信されたメモリ要求に応じてメモリ要求を前記メモリ装置インターフェイスに連結するように動作可能であり、前記パフォーマンスカウンタによって追跡された前記性能測定基準に応じて操作性を動的に調整するようさらに動作可能であるメモリシーケンサと
を含むメモリハブと
をそれぞれ含む複数のメモリモジュールと
を含むことを特徴とするコンピュータシステム。
【請求項１９】
前記リンクインターフェイスは、光入力／出力ポートを含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記パフォーマンスカウンタによって追跡される前記性能測定基準は、ページヒット率、プリフェッチヒット、およびキャッシュヒット率から成るグループから選択される少なくとも１つの性能測定基準を含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２１】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、前記メモリ装置における開いたページの数を変更するよう動作可能であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
前記パフォーマンスカウンタは、ページヒット率を追跡し、前記メモリシーケンサは、自動プリチャージモードに切り替えるよう動作可能であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２３】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチを実行可能または実行不可にするよう動作可能であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２４】
前記パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡し、前記メモリシーケンサは、プリフェッチ要求の数を決定するよう動作可能であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２５】
前記パフォーマンスカウンタは、キャッシュヒット率を追跡し、前記メモリシーケンサは、前記キャッシュを使用不可にするよう動作可能であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２６】
前記メモリ装置は、ダイナミックランダムアクセスメモリ装置を含むことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２７】
メモリモジュールからデータを読み取る方法であって、
前記メモリモジュールに設けられているメモリ装置にアクセスする旨のメモリ要求を受信するステップと、
前記受信されたメモリ要求に応じて、前記メモリ要求を前記メモリ装置に連結するステップであって、前記メモリ要求のうちの少なくとも一部がデータを読み出す旨のメモリ要求である、ステップと、
前記メモリ読み出し要求に応じて読み出しデータを受信するステップと、
少なくとも１つの性能測定基準を追跡するステップと、
前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整するステップと
を含むことを特徴とする方法。
【請求項２８】
少なくとも１つの性能測定基準を追跡する前記動作は、ページヒット率、プリフェッチヒット、およびキャッシュヒット率から成るグループから選択された少なくとも１つの性能測定基準を追跡するステップを含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記追跡された測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、前記追跡された測定基準が閾値レベルを超えている場合、メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記閾値レベルを、前記追跡ステップを実行するパフォーマンスカウンタにプログラミングするステップをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記追跡された測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、前記追跡された測定基準が閾値レベル未満である場合、メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３２】
前記閾値レベルを、前記追跡ステップを実行するパフォーマンスカウンタにプログラミングするステップをさらに含むことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記メモリモジュールに設けられているメモリ装置にアクセスする旨のメモリ要求を受信する前記動作は、前記メモリ要求に対応する光信号を受信するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３４】
前記追跡された性能測定基準は、ページヒット率を含み、前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、前記メモリ装置における開いたページの数を変更するために前記メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３５】
前記追跡された性能測定基準は、ページヒット率を含み、前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、自動プリチャージモードに切り替えるために前記メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３６】
前記追跡された性能測定基準は、プリフェッチヒットのパーセンテージを含み、前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、プリフェッチを実行可能または実行不可にするために前記メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３７】
前記追跡された性能測定基準は、プリフェッチヒットのパーセンテージを含み、前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、プリフェッチ要求の数を決定するために前記メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【請求項３８】
前記追跡された性能測定基準は、キャッシュヒット率を含み、前記追跡された性能測定基準に基づいてメモリシーケンサの操作性を調整する前記動作は、前記キャッシュを使用不可にするために前記メモリシーケンサの操作性を調整するステップを含むことを特徴とする請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、より詳細には、いくつかのメモリ装置をプロセッサまたは他のメモリアクセス装置に結合するメモリハブを有するコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、プロセッサによってアクセスされるデータを格納するために、ダイナミックランダムアクセスメモリ「ＤＲＡＭ」装置などのメモリ装置を使用する。これらのメモリ装置は、通常、コンピュータシステムのシステムメモリとして使用される。一般のコンピュータシステムでは、プロセッサは、プロセッサバスおよびメモリコントローラを介してシステムメモリと通信する。プロセッサは、読み出しコマンドなどのメモリコマンド、およびデータまたは命令が読み取られる場所を指定するアドレスを含むメモリ要求を発行する。メモリコントローラは、コマンドおよびアドレスを使用して、適切なコマンド信号、および行アドレスおよび列アドレスを生成し、これらはシステムメモリに適用される。これらのコマンドおよびアドレスに応じて、データは、システムメモリとプロセッサとの間に転送される。メモリコントローラは、システムコントローラの一部であることが多く、システムコントローラも、ＰＣＩバスなどの拡張バスにプロセッサバスを結合するバスブリッジ回路を含む。
【０００３】
メモリ装置の動作速度は、絶えず高速化されているが、この動作速度の高速化は、プロセッサの動作速度の高速化に後れをとっている。さらに遅いのは、プロセッサをメモリ装置に結合するメモリコントローラの動作速度の高速化である。メモリコントローラおよびメモリ装置の相対的に遅い速度は、プロセッサとメモリ装置との間のデータ帯域幅を制限する。
【０００４】
プロセッサとメモリ装置との間の帯域幅の制限に加えて、コンピュータシステムの性能も、システムメモリ装置からデータを読み取るのに必要な時間を引き延ばす待ち時間の問題によって制限される。より詳細には、メモリ装置読み出しコマンドがシンクロナスＤＲＡＭ「ＳＤＲＡＭ」装置などのシステムメモリ装置に連結されているとき、読み出しデータがＳＤＲＡＭ装置から出力されるのは、いくつかのクロック周期の遅延の後でのみになってしまう。したがって、ＳＤＲＡＭ装置は、バーストデータを高データレートで同時に出力することはできるが、データの最初の提供の遅延は、こうしたＳＤＲＡＭ装置を使用するコンピュータシステムの動作速度をかなり遅くする可能性がある。
【０００５】
メモリの待ち時間の問題を軽減する１つの手法は、メモリハブを介してプロセッサに結合されている複数のメモリ装置を使用することである。メモリハブアーキテクチャでは、システムコントローラまたはメモリコントローラは、いくつかのメモリモジュールに結合されており、そのそれぞれは、いくつかのメモリ装置に結合されているメモリハブを含んでいる。メモリハブは、メモリ要求および応答を、コントローラとメモリ装置との間に効率的に経路指定する。プロセッサは、別のメモリ装置が前のメモリアクセスに応答している間に、あるメモリ装置にアクセスすることができるため、このアーキテクチャを使用するコンピュータシステムは、より高い帯域幅を有することができる。例えば、プロセッサは、システム内の別のメモリ装置が読み出しデータをプロセッサに提供する準備をしている間に、システム内のメモリ装置のうちの１つに書き込みデータを出力することができる。
【０００６】
メモリハブを使用するコンピュータシステムは、優れた性能を提供し得るが、それにもかかわらず、いくつかの理由で最適な速度で動作しないことが多い。例えば、メモリハブは、たとえより大きいメモリ帯域幅をコンピュータシステムに提供できるとしても、依然として上述されたタイプの待ち時間の問題を被る。より詳細には、プロセッサは、別のメモリ装置がデータの準備をしている間に、あるメモリ装置と通信することはできるが、別のメモリ装置からのデータが使用され得る前に、あるメモリ装置からデータを受信することが時として必要となる。別のメモリ装置から受信されたデータが使用され得る前に、あるメモリ装置からデータが受信されなければならない場合、待ち時間の問題は、こうしたコンピュータシステムの動作速度を引き続き遅くする。
【０００７】
メモリ装置における待ち時間を短縮するために使用されている１つの技術は、実行されているプログラムによってデータが要求される前に、データ、すなわち読み出しデータをシステムメモリからプリフェッチすることである。一般に、プリフェッチされるべきデータは、以前フェッチされたデータのパターンに基づいて選択される。このパターンは、データがフェッチされるアドレスのシーケンスのように単純なもので、したがって、実行中のプログラムによってデータが必要とされる前に、シーケンス中の後のアドレスからデータがフェッチされてもよい。当然、「ストライド（ｓｔｒｉｄｅ）」として知られるパターンは、より複雑であり得る。
【０００８】
さらに、メモリハブは、たとえコンピュータシステムにより大きいメモリ帯域幅を提供することができるとしても、依然としてスループットの問題を被る。例えば、データがメモリセルの特定の行から読み取られ得る前に、アレイ内のそのディジット線は、一般に、アレイ内のディジット線を平衡させることによってプリチャージされる。次いで、特定の行のメモリセルをそれぞれの列のディジット線に結合することによって、その行が開かれる。次いで、各列のディジット線間に結合されているそれぞれのセンス増幅器（ｓｅｎｓｅ  ａｍｐｌｉｆｉｅｒ）は、それぞれのメモリセルに格納されているデータに対応する電圧の変化に応答する。その行がいったん開かれると、ディジット線をデータ読み出しパスに結合することによって、データは、開いた行の各列から連結され得る。したがって、ページとも呼ばれる行を開くことは、有限の時間を消費し、メモリスループットに制限を設ける。
【０００９】
最後に、データをプリフェッチするか、またどのデータをプリフェッチするか、行をプリチャージするかまたは開くか、アクセスされたデータをキャッシュに入れるかの最適な決定は、時間が経つと変わる可能性があり、また、メモリハブに結合されているプロセッサによって実行されているアプリケーションに応じて変わり得る。
【００１０】
【特許文献１】米国特許出願第１０／６２５，１３２号明細書
【特許文献２】米国特許出願第１０／６０１，２５２号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、メモリハブアーキテクチャの利点を提供するとともに、こうしたシステムによくある待ち時間および／またはスループットの問題を最低限に抑え、それによって高帯域幅、高スループット、および低待ち時間をメモリ装置に提供するコンピュータアーキテクチャが必要である。また、こうしたシステムは、好ましくは、時間が経つにつれてメモリハブの動作が変化することを可能にする。
【課題を解決するための手段】
【００１２】
本発明の一態様によれば、複数のメモリ装置およびメモリハブを含むメモリモジュールおよび方法が提供される。メモリハブは、複数のメモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求を受信する、光入力／出力ポートなどのリンクインターフェイスを含む。メモリハブは、メモリ装置に結合されているメモリ装置インターフェイスをさらに含み、メモリ装置インターフェイスは、複数のメモリ装置のうちの少なくとも１つのメモリセルにアクセスする旨のメモリ要求をメモリ装置に連結し、メモリ要求のうちの少なくとも一部に応じて読み出しデータを受信するように動作可能である。メモリハブは、メモリ装置インターフェイスに結合されているパフォーマンスカウンタをさらに含んでおり、パフォーマンスカウンタは、ページヒット率、プリフェッチヒット、およびキャッシュヒット率から成るグループから選択される少なくとも１つの測定基準（ｍｅｔｒｉｃ）を追跡するように動作可能である。メモリハブは、リンクインターフェイスおよびメモリ装置インターフェイスに結合されているメモリシーケンサをさらに含む。メモリシーケンサは、リンクインターフェイスから受信されたメモリ要求に応じてメモリ要求をメモリ装置インターフェイスに連結するように動作可能である。メモリシーケンサは、パフォーマンスカウンタに応じて操作性を動的に調整するようさらに動作可能である。例えば、パフォーマンスカウンタは、ページヒット率を追跡することができ、メモリシーケンサは、追跡されたページヒット率に応じて、メモリ装置における開いたページの数を変更したり、自動プリチャージモードに切り替えたりすることができる。あるいは、パフォーマンスカウンタは、プリフェッチヒットのパーセンテージを追跡することができ、メモリシーケンサは、追跡されたプリフェッチヒットのパーセンテージに応じて、プリフェッチを使用可能または使用不可にしたり、プリフェッチ要求の数を調整したりすることができる。さらに一例として、パフォーマンスカウンタは、キャッシュヒット率を追跡することができ、メモリシーケンサは、追跡されたキャッシュヒット率に応じて、キャッシュを使用不可にすることができる。
【発明を実施するための最良の形態】
【００１３】
図１に、本発明の一例によるコンピュータシステム１００が示されている。コンピュータシステム１００は、特定のソフトウェアを実行して特定の計算またはタスクを実行するなど、様々なコンピューティング機能を実行するプロセッサ１０４を含む。プロセッサ１０４は、通常、アドレスバス、制御バス、およびデータバスを含むプロセッサバス１０６を含む。一般に、プロセッサバス１０６は、上述されているように、一般にスタティックランダムアクセスメモリ「ＳＲＡＭ」であるキャッシュメモリ１０８に結合されている。最後に、プロセッサバス１０６は、時として「Ｎｏｒｔｈ  Ｂｒｉｄｇｅ」または「メモリコントローラ」とも呼ばれるシステムコントローラ１１０に結合されている。
【００１４】
システムコントローラ１１０は、他の様々な構成要素のためのプロセッサ１０４への通信パスとして働く。より詳細には、システムコントローラ１１０は、一般に、グラフィックスコントローラ１１２に結合されているグラフィックスポートを含んでおり、グラフィックスコントローラ１１２もまたビデオ端末１１４に結合されている。システムコントローラ１１０は、オペレータがコンピュータシステム１００とのインターフェイスをとることができるようにするためのキーボードやマウスなど１つまたは複数の入力装置１１８にも結合されている。一般に、コンピュータシステム１００は、システムコントローラ１１０を介してプロセッサ１０４に結合されているプリンタなど１つまたは複数の出力装置１２０も含む。一般に、図示されていない内部または外部の記憶媒体にプロセッサ１０４がデータを格納したりそこからデータを取り出したりできるようにするために、１つまたは複数のデータ記憶装置１２４も、システムコントローラ１１０を介してプロセッサ１０４に結合されている。一般の記憶装置１２４の例には、ハードディスク、フロッピー（登録商標）ディスク、テープカセット、およびコンパクトディスク読取専用メモリ、すなわちＣＤ−ＲＯＭなどがある。
【００１５】
システムコントローラ１１０は、コンピュータシステム１００のシステムメモリとして働くいくつかのメモリモジュール１３０ａ，ｂ・・・ｎに結合されている。メモリモジュール１３０は、好ましくは、高速リンク１３４を介してシステムコントローラ１１０に結合されており、高速リンクは、光または電気通信パスまたは他の何らかのタイプの通信パスであってもよい。高速リンク１３４が光通信パスとして実装されている場合、光通信パスは、例えば１つまたは複数の光ファイバの形でもよい。こうした場合、システムコントローラ１１０およびメモリモジュールは、光通信パスに結合される光入力／出力ポートまたは個別の入力ポートおよび出力ポートを含む。メモリモジュール１３０は、単一の高速リンク１３４がすべてのメモリモジュール１３０に結合されているマルチドロップ構成で、システムコントローラ１１０に結合されている状態で示されている。しかし、メモリモジュール１３０のそれぞれをシステムコントローラ１１０に結合するために、図示されていない個別の高速リンクが使用されるポイントツーポイント結合構成など、他のトポロジが使用されてもよいことを理解されよう。また、システムコントローラ１１０が図示されていないスイッチを介してメモリモジュール１３０のそれぞれに選択的に結合される切替接続形態（ｓｗｉｔｃｈｉｎｇ  ｔｏｐｏｌｏｇｙ）が使用されてもよい。使用され得る他の接続形態は、当業者には明らかであろう。
【００１６】
メモリモジュール１３０のそれぞれは、３２個のメモリ装置１４８へのアクセスを制御するメモリハブ１４０を含んでおり、これらのメモリ装置１４８は、図１に示されている例では、シンクロナスダイナミックランダムアクセスメモリ「ＳＤＲＡＭ」装置である。しかし、より少ない数またはより多い数のメモリ装置１４８が使用されてもよく、当然、ＳＤＲＡＭ装置以外のメモリ装置が使用されてもよい。図１に示されている例では、メモリハブ１４０は、４つ以上の独立したメモリチャネル１４９を、高速リンク１３４を介して通信する。この例では、図１には示されていないが、それぞれ１つのメモリチャネル１４９からデータを受信する４つのメモリハブコントローラ１２８が設けられている。しかし、別の例で、より少ない数またはより多い数のメモリチャネル１４９が使用されてもよい。メモリハブ１４０は、通常、制御バス、アドレスバス、およびデータバスを含むバスシステム１５０を介して、システムメモリ装置１４８のそれぞれに結合されている。
【００１７】
図２に、本発明の一実施形態によるメモリハブ２００が示されている。図１のメモリハブ１４０の代わりにメモリハブ２００が使用され得る。図２には、メモリハブ２００が、４つのメモリ装置２４０ａ〜ｄに結合されているものとして示されており、この例では、これらのメモリ装置は、従来型のＳＤＲＡＭ装置である。代替実施形態では、メモリハブ２００は、単に異なる４つのメモリ装置２４０ａ〜ｄではなく、メモリ装置の異なる４つのバンクに結合されており、各バンクは、一般に、複数のメモリ装置を有する。しかし、例を提供する目的で、この説明は、４つのメモリ装置２４０ａ〜ｄに結合されているメモリハブ２００を参照する。メモリの複数のバンクに対応するためのメモリハブ２００への必要な変更は、当業者であれば知っていることを理解されよう。
【００１８】
メモリハブ２００には、さらに、メモリハブ２００が配置されるメモリモジュールを第１の高速データリンク２２０および第２の高速データリンク２２２にそれぞれ結合するために、リンクインターフェイス２１０ａ〜ｄおよび２１２ａ〜ｄが含まれている。図１を参照して上述されているように、高速データリンク２２０、２２２は、光または電気通信パスまたは他の何らかのタイプの通信パスを使用して実装され得る。リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、在来型のものであり、データ、コマンド、およびアドレス情報を高速データリンク２２０、２２２との間で転送するために使用される回路を含む。よく知られているように、こうした回路は、当業者には知られている送受信ロジックを含む。当業者は、特定のタイプの通信パスとともに使用されるようにリンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄを変更するのに十分な知識を有しており、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄへのこうした変更は、本発明の範囲から逸脱することなく行われてもよいことを理解されよう。例えば、高速データリンク２２０、２２２が光通信パスを使用して実装されている場合、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、光通信パスを介して連結されている光信号を電気信号に変換することができる光入力／出力ポートを含む。
【００１９】
リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、バス２１４によって表されている複数のバスおよび信号線を介してスイッチ２６０に結合されている。バス２１４は、従来型のものであり、書き込みデータバスおよび読み出しデータバスを含んでいるが、代わりに、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄを介して両方向にデータを連結するために、単一の双方向データバスが設けられてもよい。バス２１４が一例として提供されていること、およびこれらのバス２１４は、例えば、キャッシュコヒーレンシを維持するために使用され得る、要求線やスヌープ線（ｓｎｏｏｐ  ｌｉｎｅ）をさらに含むなど、より少ない数またはより多い数の信号線を含んでいてもよいことを当業者は理解されよう。
【００２０】
リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、メモリハブ２００が、システムメモリにおいて様々な構成で接続されることを可能にする回路を含む。例えば、図１に示したようなマルチドロップ構成は、リンクインターフェイス２１０ａ〜ｄまたは２１２ａ〜ｄのいずれかを介して各メモリモジュールをメモリハブコントローラ１２８に結合することによって実装され得る。あるいは、メモリモジュールを直列式に結合することによって、ポイントツーポイントまたはデイジーチェーン構成が実装されてもよい。例えば、リンクインターフェイス２１０ａ〜ｄは、第１のメモリモジュールを結合するために使用され、リンクインターフェイス２１２ａ〜ｄは、第２のメモリモジュールを結合されるために使用され得る。プロセッサまたはシステムコントローラに結合されているメモリモジュールは、１組のリンクインターフェイスを介してそれに結合され、さらに、他の組のリンクインターフェイスを介して別のメモリモジュールに結合される。本発明の一実施形態では、メモリモジュールのメモリハブ２００は、プロセッサ１０４とメモリハブ２００との間の通信に結合されている装置が他にないポイントツーポイント構成でプロセッサに結合されている。このタイプの相互接続は、キャパシタンスが相対的に低い、信号を反映するための線における不連続が相対的に少ない、信号パスが相対的に短いなどを含めて、いくつかの理由で、プロセッサ１０４とメモリハブ２００との間によりよい信号の連結を提供する。
【００２１】
スイッチ２６０は、４つのメモリインターフェイス２７０ａ〜ｄにさらに結合され、これらのメモリインターフェイスもまた、システムメモリ装置２４０ａ〜ｄにそれぞれ結合される。システムメモリ装置２４０ａ〜ｄごとに、個別の独立したメモリインターフェイス２７０ａ〜ｄをそれぞれ設けることによって、メモリハブ２００は、一般に単一チャネルメモリアーキテクチャで起こるバスまたはメモリバンクの衝突を回避する。スイッチ２６０は、バス２７４によって表される複数のバス線および信号線を介して各メモリインターフェイスに結合される。バス２７４は、書き込みデータバス、読み出しデータバス、および要求線を含む。しかし、個別の書き込みデータバスおよび読み出しデータバスの代わりに、単一の双方向データバスが使用されてもよいことを理解されよう。さらに、バス２７４は、上述されているもの以外に、より多い数または少ない数の信号線を含み得る。
【００２２】
本発明の一実施形態では、各メモリインターフェイス２７０ａ〜ｄは、特に、それが結合されるシステムメモリ装置２４０ａ〜ｄに適合される。より詳細には、各メモリインターフェイス２７０ａ〜ｄは、特に、それが結合されるシステムメモリ装置２４０ａ〜ｄによってそれぞれ受信され、生成される特定の信号を提供し、受信するように構成される。また、メモリインターフェイス２７０ａ〜ｄは、システムメモリ装置２４０ａ〜ｄが異なるクロック周波数で動作している状態で動作することができる。その結果、メモリインターフェイス２７０ａ〜ｄは、メモリハブ２００と、メモリハブ２００に結合されているメモリ装置２４０ａ〜ｄとの間のインターフェイスで起こり得る変化からプロセッサ１０４を切り離し、メモリ装置２４０ａ〜ｄがインターフェイスをとり得る、より制御された環境を提供する。
【００２３】
リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄ、およびメモリインターフェイス２７０ａ〜ｄを結合するスイッチ２６０は、従来型の、または今後開発される様々なスイッチのうちのどんなものでもよい。例えば、スイッチ２６０は、様々な構成において、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄ、およびメモリインターフェイス２７０ａ〜ｄを互いに同時に結合することができるクロスバースイッチとすることができる。スイッチ２６０は、クロスバースイッチと同じ接続レベルを提供しないが、それにも関わらず、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄのうちの一部またはすべてをメモリインターフェイス２７０ａ〜ｄのそれぞれに結合することができる１組のマルチプレクサとすることもできる。また、スイッチ２６０は、どのメモリアクセスが他のメモリアクセスより高い優先順位を得るべきであるかを決定するために、図示されていない調整ロジックを含んでいてもよい。この機能を実行するバス調停は、当業者にはよく知られている。
【００２４】
さらに図２を参照すると、メモリインターフェイス２７０ａ〜ｄのそれぞれは、それぞれのメモリコントローラ２８０、それぞれの書き込みバッファ２８２、およびそれぞれのキャッシュメモリユニット２８４を含む。メモリコントローラ２８０は、それが結合されているシステムメモリ装置２４０ａ〜ｄに制御信号、アドレス信号、およびデータ信号を提供し、それが結合されているシステムメモリ装置２４０ａ〜ｄからデータ信号を受信することによって、従来のメモリコントローラと同じ機能を行う。書き込みバッファ２８２およびキャッシュメモリユニット２８４は、当業者にはよく知られているように、タグメモリ、データメモリ、比較器など、バッファおよびキャッシュメモリの普通の構成要素を含んでいる。書き込みバッファ２８２で使用されるメモリ装置、およびキャッシュメモリユニット２８４は、ＤＲＡＭ装置、スタティックランダムアクセスメモリ「ＳＲＡＭ」装置、他のタイプのメモリ装置、または３つすべての組合せのいずれかとすることができる。さらに、これらのメモリ装置のいずれかまたはすべて、およびキャッシュメモリユニット２８４に使用される他の構成要素は、組み込み型またはスタンドアロン型の装置のいずれかとすることができる。
【００２５】
各メモリインターフェイス２７０ａ〜ｄの書き込みバッファ２８２は、読み出し要求が処理されている間に書き込み要求を格納するために使用される。こうしたシステムにおいて、書き込み要求が宛てられるメモリ装置が前の書き込み要求または読み出し要求を処理するのにふさがっている場合でさえ、プロセッサ１０４は、書き込み要求をシステムメモリ装置２４０ａ〜ｄに発行することができる。この手法を使用して、後の読み出し要求が処理されている間に、前の書き込み要求が書き込みバッファ２８２に保存されてもよいため、メモリ要求は、順序ばらばらで処理されてもよい。読み出し要求を処理できるように書き込み要求をバッファに入れることができる機能は、古い順に関わらず、読み出し要求に第１の優先順位が与えられ得るため、メモリ読み出し待ち時間を大幅に低減することができる。例えば、読み出し要求が点在している一連の書き込み要求は、読み出し要求がパイプライン式で処理され、次いで格納されている書き込み要求がパイプライン式で処理され得るように、書き込みバッファ２８２に格納されていてもよい。その結果、書き込み要求と読み出し要求との間を切り替える際の、書き込み要求のメモリ装置２７０ａ〜ｄへの連結と、読み出し要求のメモリ装置２７０ａ〜ｄへのその後の連結との間の長いセトリングタイムが避けられ得る。
【００２６】
各メモリインターフェイス２７０ａ〜ｄでのキャッシュメモリユニット２８４の使用は、データが最近そのメモリ装置２４０ａ〜ｄから読み取られた、またはそれに書き込まれた場合、メモリ装置２４０ａ〜ｄがこうしたデータの提供を待つことなく、それぞれのシステムメモリ装置２４０ａ〜ｄに宛てられる読み出しコマンドに応じて、プロセッサ１０４がデータを受信できるようにする。したがって、キャッシュメモリユニット２８４は、システムメモリ装置２４０ａ〜ｄの読み出し待ち時間を短縮して、コンピュータシステムのメモリ帯域幅を最大にする。同様に、プロセッサ１０４は、書き込みデータをキャッシュメモリユニット２８４に格納し、次いで、同じメモリインターフェイス２７０ａ〜ｄのメモリコントローラ２８０が、書き込みデータを、キャッシュメモリユニット２８４から、それが結合されているシステムメモリ装置２４０ａ〜ｄに転送する間に、他の機能を実行することができる。
【００２７】
メモリハブ２００には、さらに、診断バス２９２を介してスイッチ２６０に結合されている組み込み自己テスト、すなわちＢＩＳＴおよび診断エンジン２９０が含まれている。診断エンジン２９０は、Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ、すなわちＪＴＡＧおよびＩＥＥＥ１１４９．１標準によるシステム管理バス、すなわちＳＭＢｕｓやメンテナンスバスなど、メンテナンスバス２９６にさらに結合される。ＳＭＢｕｓおよびＪＴＡＧ標準はいずれも、当業者にはよく知られている。一般に、メンテナンスバス２９６は、メモリチャネルおよびリンク診断を実行するために、ユーザアクセスを診断エンジン２９０に提供する。例えば、ユーザは、診断テストを行い、またはメモリシステム操作を監視するために、個別のＰＣホストをメンテナンスバス２９６を介して結合することができる。メンテナンスバス２９６を使用して診断テスト結果にアクセスすることによって、上述されているように、テストプローブの使用に関連する発行が回避され得る。本発明の範囲から逸脱することなく、メンテナンスバス２９６が従来のバス標準から変更されてもよいことを理解されたい。こうした標準メンテナンスバスが使用されている場合、診断エンジン２９０はメンテナンスバス２９６の標準に対応すべきであることをさらに理解されたい。例えば、こうしたメンテナンスバスが使用されている場合、診断エンジンは、ＪＴＡＧバス標準に準拠したメンテナンスバスインターフェイスを有するべきである。
【００２８】
メモリハブ２００には、さらに、バス２８８を介してスイッチ２６０に結合されているＤＭＡエンジン２８６が含まれる。ＤＭＡエンジン２８６は、プロセッサ１０４からの介入なしに、メモリハブ２００がシステムメモリ内のある位置からシステムメモリ内の別の位置にデータのブロックを移動させることができるようにする。バス２８８は、システムメモリにおけるデータ転送を処理するために、アドレスバス、制御バス、データバスなど、複数の従来のバス線および信号線を含む。当業者によく知られている従来のＤＭＡ操作は、ＤＭＡエンジン２８６によって実施され得る。適したＤＭＡエンジンのより詳細な説明は、例えば、２００３年７月２２日に出願されたAPPARATUS AND METHOD FOR DIRECT MEMORY ACCESS IN A HUB-BASED MEMORY SYSTEMという名称の、本発明の譲受人に譲渡された同時係属の米国特許出願第１０／６２５，１３２号明細書（特許文献１）に記載されている。前述の特許出願により詳しく記載されているように、ＤＭＡエンジン２８６は、システムメモリのリンクリストを読み取ってプロセッサの介入なしにＤＭＡメモリ操作を実行し、したがってメモリ動作の実行からプロセッサ１０４および帯域幅の限られたシステムバスを解放することができる。ＤＭＡエンジン２８６は、例えば、各システムメモリ装置２４０ａ〜ｄの複数のチャネルでのＤＭＡ操作に対応するために、回路を含むこともできる。こうした多チャネルＤＭＡエンジンは、当技術分野ではよく知られており、従来の技術を使用して実施され得る。
【００２９】
診断エンジン２９０およびＤＭＡエンジン２８６は、好ましくは、メモリハブ２００の組み込み回路である。しかし、メモリハブ２００に結合されている個別の診断エンジンおよび個別のＤＭＡ装置を含めることも、本発明の範囲内である。
【００３０】
本発明のいくつかの実施形態は、メモリコントローラ２８０のうちの１つまたは複数と通信する性能監視構成要素を提供する。性能監視構成要素は、メモリコントローラ２８０がメモリユニット２４０からのデータの送受信に使用される方法を動的に調整できるようにする。図２に示されている例では、以下でさらに説明されるように、メモリコントローラ２８０と通信する少なくとも１つのパフォーマンスカウンタ３００が設けられている。
【００３１】
パフォーマンスカウンタ３００は、本発明の一例では、例えばページヒット率、プリフェッチヒットの数またはパーセンテージ、キャッシュヒット率またはパーセンテージを含めて、メモリハブ２００のメモリアクセスおよび／または性能に関連付けられている１つまたは複数の測定基準を追跡する。
【００３２】
上述されているように、メモリ装置における待ち時間を短縮する１つの手法は、データをプリフェッチすることである。プリフェッチバッファを有する図１のメモリハブ１４０の一例は、図３に示されており、例えば、２００３年６月２０日に出願されたMEMORY HUB AND ACCESS METHOD HAVING INTERNAL PREFETCH BUFFERSという名称の、本発明の譲受人に譲渡された同時係属の米国特許出願第１０／６０１，２５２号明細書（特許文献２）にさらに記載されている。前述の特許出願に記載されているように、メモリハブ１４０は、高速リンク１３４に結合されているリンクインターフェイス１５２を含む。リンクインターフェイス１５２は、例えば、メモリ要求が高速リンク１３４を介して受信されるにつれて、それらを受信し、格納する、図示されていない先入先出バッファなど、従来の様々なインターフェイス回路を含み得る。次いで、メモリ要求は、メモリハブ１４０によって処理され得るまで、リンクインターフェイスに格納されてもよい。
【００３３】
リンクインターフェイス１５２によって受信されたメモリ要求は、まず、図２のメモリコントローラ２７０ａ〜ｄのうちの１つまたは複数に含まれており、１つまたは複数のパフォーマンスカウンタ３００と通信するメモリシーケンサ１６０に要求を転送することによって処理される。メモリシーケンサ１６０は、メモリ要求を、図１のシステムコントローラ１１０から出力されたフォーマットから、メモリ装置１４８によって使用され得るフォーマットを有するメモリ要求に変換する。これらの再フォーマット済み要求信号は、通常、メモリハブ１４０によって受信されたメモリ要求に含まれるメモリコマンドから導出されるメモリコマンド信号、およびメモリハブ１４０によって受信されたメモリ要求に含まれるアドレスから導出される行および列のアドレス信号を含む。メモリ要求がメモリ書き込み要求である場合、再フォーマット済み要求信号は、通常、メモリハブ１４０によって受信されたメモリ要求に含まれる書き込みデータから導出される書き込みデータ信号を含む。例えば、メモリ装置１４８が従来のＤＲＡＭ装置である場合、メモリシーケンサ１６０は、行アドレス信号、行アドレスストローブ「ＲＡＳ」信号、アクティブロー書き込み／アクティブハイ読み出し信号（ａｃｔｉｖｅ  ｌｏｗ  ｗｒｉｔｅ／ａｃｔｉｖｅ  ｈｉｇｈ  ｒｅａｄ  ｓｉｇｎａｌ）「Ｗ＊／Ｒ」、列アドレス信号、および列アドレスストローブ「ＣＡＳ」信号を出力する。再フォーマット済みメモリ要求は、好ましくは、メモリ装置１４８によって使用される順序でシーケンサ１６０から出力される。
【００３４】
メモリシーケンサ１６０は、再フォーマット済みメモリ要求をメモリ装置インターフェイス１６６に適用する。メモリ装置インターフェイス１６６は、リンクインターフェイス１５２のように、１つまたは複数のメモリ要求がリンクインターフェイス１５２から受信されるにつれて、それらを受信し、格納する、図示されていないＦＩＦＯバッファを含んでいてもよい。
【００３５】
いくつかのメモリ要求がメモリ装置１４８によって処理され得るまで、メモリ装置インターフェイス１６６がそれらを格納する場合、メモリ装置インターフェイス１６６は、メモリ要求が他の何らかの順序でメモリ装置１４８に適用されるように、それらを配列し直すことができる。例えば、メモリ要求は、あるタイプの要求、例えば読み出し要求などが、他のタイプの要求、例えば書き込み要求の前に処理される方法で、インターフェイス１６６に格納されてもよい。
【００３６】
上述されているように、メモリハブを使用する欠点の１つは、メモリハブが時々生成し得る待ち時間の増大である。これもまた上述されているように、メモリ読み出し待ち時間を短縮するために従来から使用されているプリフェッチ手法は、メモリハブを使用するメモリシステムにあまり適していない。それに対して、図３に示されているメモリハブ１４０は、プログラムの実行中にどのデータが必要かを正しく予想し、次いでそれらのデータをプリフェッチし、プリフェッチシステム１７０の一部である１つまたは複数のバッファに格納するプリフェッチシステム１７０をメモリハブ１４０に含めることによって、比較的短いメモリ読み出し待ち時間を提供する。以下で詳述されるように、また上述の特許出願で説明されているように、プリフェッチシステム１７０は、いくつかのプリフェッチバッファ１７６を含んでおり、その数は、稼働状態に応じて可変にされてもよい。簡単に言えば、プリフェッチバッファ１７６は、プリフェッチされたデータをメモリ装置インターフェイス１６６から受信する。このデータは、その後のメモリアクセスに使用可能なように、プリフェッチバッファ１７６に格納される。次いでデータは、マルチプレクサ１７８を介してリンクインターフェイス１５２に連結される。
【００３７】
プリフェッチシステム１７０は、リンクインターフェイス１５２からメモリ要求を受信する履歴ロジック１８０も含む。履歴ロジック１８０は、将来のメモリ要求が予想され得るパターンまたはストライドを検出するために、従来のアルゴリズムを使用してメモリ要求を分析する。データは、メモリ装置１４８の任意のアドレスからプリフェッチされ得るが、プリフェッチがメモリ装置１４８のメモリセルの行のプリチャージを必要としないように、データは、好ましくは、現在アクティブな、または「開いた」メモリ装置１４８の行からのみプリフェッチされる。一例では、１つまたは複数のパフォーマンスカウンタ３００は、ページヒットの数またはパーセンテージを追跡する。メモリシーケンサ１６０は、図２に示されている１つまたは複数のパフォーマンスカウンタ３００によって提供される情報に基づいて、アクティブな、または「開いた」ページの数を調整する。本発明の一例では、少なくとも１つのパフォーマンスカウンタ３００によって追跡されるページヒットカウントおよび／またはページヒットのパーセンテージが閾値未満になると、開いたページの数は、メモリシーケンサ１６０によって低減される。類似の方法で、一例では、ページヒットカウントまたはページヒットのパーセンテージが閾値を超えると、開いたページの数は、増加される。当然、本発明の他の例では、開いたページの数を調整する他の方法が使用される。
【００３８】
メモリシーケンサ１６０は、ページヒット率、プリフェッチヒットのパーセンテージなど、パフォーマンスカウンタ３００のうちの１つまたは複数によって提供される情報に応じて、プリフェッチを選択的に使用可能または使用不可にすることもできる。しかし、プリフェッチが常に使用可能にされていてもよい。一例では、メモリシーケンサ３００は、プリフェッチヒットの数および／またはページヒット率が閾値未満に低減したとき、プリフェッチを使用不可にする。あるいは、シーケンサ１６０は、結果として、メモリ装置１４８からではなく、プリフェッチバッファ１７６から要求されたデータを読み出すメモリ要求のパーセンテージに基づいてプリフェッチを使用可能または使用不可にすることができる。
【００３９】
メモリハブ１４０を含むメモリモジュール１３０は、メモリ読み出し要求を受信すると、まず、要求によって求められたデータまたは命令がプリフェッチバッファ１７６に格納されているかどうかを決定する。この決定は、メモリ要求をタグロジック１８６に連結することによって行われる。タグロジック１８６は、各プリフェッチ示唆（ｐｒｅｆｅｔｃｈ  ｓｕｇｇｅｓｔｉｏｎ）に対応するプリフェッチアドレスを履歴ロジック１８０から受信する。あるいは、タグロジック１８６は、メモリ装置インターフェイス１６６に連結されている各プリフェッチ要求に対応するプリフェッチアドレスをメモリシーケンサ１６０から受信することができる。メモリ読み出し要求によって求められたデータがプリフェッチバッファ１７６に格納されているかどうかをタグロジック１８６が決定できるようにするために他の手段が使用されてもよい。いかなる場合でも、タグロジック１８６は、プリフェッチバッファ１７６に格納されているデータのレコードを提供するためにプリフェッチアドレスを格納する。従来の技術を使用して、タグロジック１８６は、リンクインターフェイス１５２から受信された各メモリ要求内のアドレスを、タグロジック１８６に格納されているプリフェッチアドレスと比較して、メモリ要求によって求められたデータがプリフェッチバッファ１７６に格納されているかどうかを決定する。
【００４０】
タグロジック１８６は、メモリ要求によって求められたデータがプリフェッチバッファ１７６に格納されていないことを決定した場合、ローＨＩＴ／ＭＩＳＳ＊信号をメモリシーケンサ１６０に連結する。タグロジック１８６は、メモリ要求によって求められたデータがプリフェッチバッファ１７６に格納されていることを決定した場合、ハイＨＩＴ／ＭＩＳＳ＊信号をメモリシーケンサ１６０に連結する。一例では、ハイおよび／またはローＨＩＴ／ＭＩＳＳ＊信号の発生は、全メモリ要求数にわたるヒット数を追跡するために、１つまたは複数のパフォーマンスカウンタ３００によってカウントされる。
【００４１】
一例では、図３によって示されているパフォーマンスカウンタ３００は、ある期間にわたってページヒット率を追跡する。次いで、ページヒット率は、開いたページの数を調整する、および／または、要求された線が自動的にプリチャージされる自動プリチャージモードに切り替えるように、メモリシーケンサ１６０に伝えられる。別の例では、プリフェッチが実行可能にされるかどうか、および／または発行すべきプリフェッチ要求の数を調整するために、プリフェッチヒットのパーセンテージがパフォーマンスカウンタ３００によって追跡される。一例では、少なくとも１つのパフォーマンスカウンタ３００は、キャッシュヒットの数、すなわち、要求されたデータがキャッシュにある場合、キャッシュ２８４ａ〜ｄへの要求の数を追跡する。キャッシュヒットレートが低すぎる場合、例えばキャッシュが使用不可にされてもよい。
【００４２】
一例では、自動プリチャージモードを使用するかどうか、ページモードの場合、開いたページの数、プリフェッチ要求の数およびキャッシュ可能性を設定するためにプログラム可能閾値が使用される。一例では、１つまたは複数のパフォーマンスカウンタ３００による監視の期間は、プログラム可能である。メモリバスは、様々な例において、結果を取得するため、またはカウンタをリセットするために、何秒、何時間、または何日かの間監視されてもよい。上記から、本明細書では、例示の目的で、本発明の特定の実施形態について記載されてきたが、本発明の意図および範囲から逸脱することなく、様々な変更が加えられてもよいことを理解されたい。したがって、本発明は、添付の特許請求の範囲を除いて限定されない。
【図面の簡単な説明】
【００４３】
【図１】メモリハブが複数のメモリモジュールのそれぞれに含まれている本発明の一例によるコンピュータシステムを示すブロック図である。
【図２】本発明の一例によるパフォーマンスカウンタを含む図１のコンピュータシステムで使用されるメモリハブを示すブロック図である。
【図３】本発明の一例によるプリフェッチバッファを含む図１のコンピュータシステムで使用されるメモリハブを示すブロック図である。
【図１】
2007537541.tif 000003
【図２】
2007537541.tif 000004
【図３】
2007537541.tif 000005