(57)【要約】【課題】  セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法と装置を提供する。【解決手段】  本発明に係る方法では、書き込み可能なキャッシュ置き換え制御アレイ４３０を用いて順位付け指針を確立する。この指針はキャッシュ置き換え制御アレイ４３０にデータを書き込むことにより動的に変更することができる。本発明では、この順位付け指針に従って様々なキャッシュ・ラインの状態を順位付けておき、キャッシュ・ミスが発生したら、これら順位のうちで最上位のキャッシュ・ラインを置き換える。【選択図】          図４
2004164606.tif 000002
【特許請求の範囲】
【請求項１】
セット・アソシアティブ・キャッシュ・メモリ、キャッシュ・メモリ・コントローラ、書き込み可能なキャッシュ置き換え制御アレイを備えたコンピュータ・システムを使用する方法であって、
キャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを前記キャッシュ・メモリ・コントローラにより、かつ前記書き込み可能なキャッシュ置き換え制御アレイを制御することにより選択するステップと、
各キャッシュ・ラインを所定の状態群のうちの正確な１つに常に維持し、前記キャッシュ・メモリ中の各セット内で常に前記セットの各キャッシュ・ラインが前記セットの他のキャッシュ・ライン群の各々の状態と異なる、前記所定の状態群中の１つの状態にあるようにするステップと、
前記キャッシュ置き換え制御アレイが前記所定の状態群中の状態の各々に対応するエントリを備えるようにするステップと
を備え、
前記選択するステップが、
前記キャッシュ・メモリの各セット内で、前記セットの各キャッシュ・ラインの、前記所定の状態群中の状態に対応する、前記キャッシュ置き換え制御アレイ中の位置を求めるこにより置き換え用のキャッシュ・ラインを選択するステップと、
前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い、前記キャッシュ置き換え制御アレイ中に定められている位置の中で最も高い置き換え優先度に対応する状態を有するキャッシュ・ラインを置き換え用に選択するステップと
を備えている
方法。
【請求項２】
セット・アソシアティブ・キャッシュ・メモリと、
前記セット・アソシアティブ・キャッシュ・メモリに動作可能に接続されたキャッシュ・メモリ・コントローラと、
前記キャッシュ・メモリ・コントローラに動作可能に接続された書き込み可能なキャッシュ置き換え制御アレイと
を備え、
前記書き込み可能なキャッシュ置き換え制御アレイが前記キャッシュ置き換え制御アレイ中のエントリ数とセット・アソシアティブ度数との積のオーダーの個数の比較器のアレイを備え、
前記比較器のアレイはキャッシュ・セット中の各ラインの状態と前記キャッシュ置き換え制御アレイ中のすべてのエントリとの並行比較を可能にするように構成されており、前記並行比較の結果は比較結果が一致する個数であり、
前記書き込み可能なキャッシュ置き換え制御アレイが、前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い最も高い置き換え優先度を有する、前記キャッシュ置き換え制御アレイ中のエントリと比較して一致するキャッシュ・ラインを探し出すことにより前記キャッシュ・セット中の置き換えるべきキャッシュ・ラインを選択するよにう適合している
コンピュータ・システム。
【請求項３】
セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法であって、
書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立するステップであって、前記指針は前記書き込み可能なキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更しうる、ステップと、
前記順位付け指針に従って異なるキャッシュ・ラインの状態を順位付けるステップと、
キャッシュ・ミスが発生したら、前記順位のうち最も順位の高いキャッシュ・ラインを置き換えるステップと
を備えた
方法。
【請求項４】
前記順位はリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けている、
請求項３に記載の方法。
【請求項５】
前記順位はローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けている、
請求項３に記載の方法。
【請求項６】
前記順位は待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けている、
請求項３に記載の方法。
【請求項７】
前記順位はノード待ち時間に基づいてノード・ラインを順位付けるとともに、ＬＲＵ法に従って各ノード内のメモリ・ラインを順位付けている、
請求項３に記載の方法。
【請求項８】
前記順位は各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従って前記コンピュータ・システム内のノードを順位付けている、
請求項３に記載の方法。
【請求項９】
さらに、
前記セット・アソシアティブ・キャッシュ・メモリから
圧縮メインメモリ
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも１つを備えた不均一メインメモリ
に書き込むステップ
を備えた、
請求項３に記載の方法。
【請求項１０】
セット・アソシアティブ・キャッシュ・メモリと、
書き込み可能な置き換え制御アレイを備えたキャッシュ・メモリ・コントローラと
を備え、
置き換え用のキャッシュ・ラインを順序付けるのに使用する指針を前記書き込み可能な置き換え制御アレイに様々なデータを書き込むことにより動的に変更する
コンピュータ・システム。
【請求項１１】
前記置き換え制御アレイが前記キャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている、
請求項１０に記載のコンピュータ・システム。
【請求項１２】
前記指針がリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付ける、
請求項１０に記載のコンピュータ・システム。
【請求項１３】
前記指針がローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付ける、
請求項１０に記載のコンピュータ・システム。
【請求項１４】
前記指針が待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付ける、
請求項１０に記載のコンピュータ・システム。
【請求項１５】
前記指針がノード待ち時間に基づいてノードを順位付けるとともに、各ノード内のメモリ・ラインをＬＲＵ法に従って順位付ける、
請求項１０に記載のコンピュータ・システム。
【請求項１６】
前記指針が前記コンピュータ・システム内のノードを各ノードのヒットおよびミスの回数、ならびに各ノードのメモリ参照の回数に従って順位付けている、
請求項１０に記載のコンピュータ・システム。
【請求項１７】
さらに、
前記セット・アソシアティブ・キャッシュ・メモリに接続され、
圧縮メインメモリ、
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも１つを備えた不均一メインメモリ
を備えた、
請求項１０に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータをキャッシュする元をなすメモリ群間においてメモリ・アクセス待ち時間にばらつきがあるコンピュータ・システムにおけるキャッシュ用のキャッシュ・コントローラの構成に関する。
【背景技術】
【０００２】
コンピュータ・システム用のセット・アソシアティブ・キャッシュ構成において、所定のセットにマップすべきキャッシュ・ミスが発生したときにあるセット内で置き換えるべきラインを選択するための現在の実務は、予め定められ固定した置き換え方法を用いるものである。たとえば、ＬＲＵ（least recently used)置き換えを用いた４ウエイ・セット・アソシアティブ・キャッシュでは、所定のセットにマップすべきキャッシュ・ミスを処理するために、キャッシュ・コントローラは置き換えるべきセット中の４つのキャッシュ・ラインのうちで最近の参照頻度が最も少ないラインを選択する。この場合、ＬＲＵ情報はキャッシュ・ディレクトリに符号化して格納しておき、キャッシュ・コントローラのハードウェアがキャッシュ・アクセスごとにキャッシュ・ディレクトリのＬＲＵ情報を更新する。高速化するために、この置き換え方法はハードウェア論理回路として実装する。キャッシュの構成、キャッシュ・ディレクトリ、およびキャッシュ・コントローラは広く研究されているが、その底流にある仮定は置き換え方法は固定されており、キャッシュ・コントローラ中のハードウェア論理回路として実装されているというものであった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的はキャッシュ・コントローラの置き換え論理回路を当該キャッシュ・コントローラの速度に影響を与えることなく動的に再構成することのできる機構を提供することである。
【課題を解決するための手段】
【０００４】
本発明の一側面では、キャッシュ置き換え制御アレイ（ＣＲＣＡ）を備えた、コンピュータ・システムのセット・アソシアティブ・キャッシュ用のキャッシュ・コントローラを提供する。ＣＲＣＡはシステム・ソフトウェアによって書き込むことができる。ＣＲＣＡの内容を適切にロードすることにより、キャッシュ・コントローラがキャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを選択する際に依拠する方法を動的に再構成することができる。これにより、キャッシュ・コントローラの速度に影響を与えることなく性能を改善することができる。本発明はメモリ・アクセス待ち時間が変動するコンピュータ・システム（たとえば不均一メモリ・アクセス（ＮＵＭＡ）システム、非圧縮メモリ領域を備えた圧縮メモリ・システム、システムの電力消費を削減するためにメインメモリ・モジュールの一部を低電力モードで動作させるコンピュータ・システムなど）に適用することができる。ＣＲＣＡは置き換え選択用に定義した１組の状態をとりうるすべてのキャッシュ・ラインの状態用のエントリを備えている。たとえば、ＮＵＭＡシステムの場合、ある構成ではすべての（ノード、ＬＲＵ位置）ペア用の状態を備えている。ただし、「ノード」はキャッシュ・ライン読み取り元のＮＵＭＡシステム中のノード数であり、「ＬＲＵ位置」は各セット中のラインを最終参照によって順位付ける０〜（Ｋ−１）（Ｋウエイ・セット・アソシアティブ・キャッシュの場合）の範囲の数である（ＬＲＵ位置０は最も頻繁に参照されたラインを指しており、ＬＲＵ位置１は２番目に頻繁に参照されたラインを指しており、・・・）。ミスを処理するために、キャッシュ・コントローラはまず、当該ミスをマップすべきセット中の各キャッシュ・ラインの状態の、ＣＲＣＡ中のインデックスを求め、次いでこのようなインデックスが最も大きい状態のラインを置き換え用に選択する。また、様々な状態のラインに対する参照数の統計、および様々なメモリに対するメモリ・アクセス待ち時間の変動の統計を収集し、これらの統計を用いてＣＲＣＡ中の状態の順位を計算するようにキャッシュ・コントローラを構成することにより、予期される置き換えペナルティを最小にすることができる。
【０００５】
本発明にはセット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法が含まれている。この本発明に係る方法では、書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立する。この指針はキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更することができる。本発明では、順位付け指針に従い様々なキャッシュ・ラインの状態を順位付けておき、キャッシュ・ミスが発生したときに当該順位中の最上位のキャッシュ・ラインを置き換える。
【０００６】
本発明では、リモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けたり、ローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けたり、待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けたり、ノード待ち時間に基づいてノード・ラインを順位付けたり、ＬＲＵ法に従って各ノード内のメモリ・ラインを順位付けたり、各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従ってコンピュータ・システム内のノードを順位付けたりする。
【０００７】
また、本発明はセット・アソシアティブ・キャッシュ・メモリと、書き込み可能なキャッシュ置き換え制御アレイを備えたキャッシュ・メモリ・コントローラとを備えたコンピュータ・システムも提供する。このコンピュータ・システムでは、指針を用いて置き換え用のキャッシュ・ラインを順位付ける。この指針はキャッシュ置き換え制御アレイに様々なデータを書き込むことにより動的に変更することができる。キャッシュ置き換え制御アレイはキャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている。
【発明を実施するための最良の形態】
【０００８】
以下で例を用いて説明するように、キャッシュ・コントローラが用いる置き換え方法を再構成しうるのが望ましいという場合が存在する。ＮＵＭＡ（nonuniform memory access）型コンピュータ・システムは１つのプロセッサ（または複数のプロセッサ）、キャッシュ階層、ローカル・メインメモリ、および相互接続ネットワークを備えた多数のノードから構成されている。ここでは説明を簡易にするために、このような各ノードにおけるローカル・メインメモリ直上のキャッシュのみを考える。このようなアーキテクチャにおいてグローバルな実メモリ空間を実現するには、任意のノードが他の任意のノードの実メモリにキャッシュ間転送によってアドレスしうるアドレッシング方式を採用する必要がある。図１はこの型の高次元のシステム・アーキテクチャを示す図である。図１に示すように、典型的なＮＵＭＡシステムでは多数のノードが存在する。各ノードはプロセッサ（第１のノードの１１０、第２のノードの１２０、最終ノードの１３０）、キャッシュ（第１のノードの１４０、第２のノードの１５０、最終ノードの１６０）、当該ノードに局限されたメモリ（第１のノードの１７０、第２のノードの１８０、最終ノードの１９０）から成る。あるノードから別のノードの非ローカル（すなわちリモート）メモリへのアクセスを可能にするキャッシュ間転送は相互接続ネットワーク１９５によって行う。各ノードでは、キャッシュはローカル・メモリに由来するとともにＮＵＭＡシステム中の様々なリモート・メモリに由来する一群のラインを常に保持している。
【０００９】
キャッシュ・ミスが発生した場合、ミスを処理するのに要する待ち時間はミスがローカル・メモリによるものかリモート・メモリによるものかに依存する（「ＮＵＭＡ（不均一メモリ・アクセス）」はこのことに由来する）。たとえば、ローカル・ミスを処理するのに要する時間が平均して１単位時間であるとすると、リモート・ミスを処理するのに要する時間は平均して１０単位時間、すなわち１桁長くなる可能性がある。いま、次に示す状況を考える。すなわち、キャッシュは４ウエイ・セット・アソシアティブであり、各セット内ではＬＲＵ置き換えを適用するものと仮定する。また、キャッシュ・ミスが発生しており、当該ミスによってマップされる、ミスが発生しているセット内のＬＲＵラインはリモート・ラインであり、同セットの第２のＬＲＵラインはローカル・ラインであると仮定する。さらに、所定の任意のセットに対するメモリ参照の確率はＭＲＵ（most recently used）ラインへのヒットの場合が４０％、第２のＭＲＵラインへのヒットの場合が２５％、第２のＬＲＵラインへのヒットの場合が１５％、ＬＲＵラインへのヒットの場合が１０％、ミスの場合が１０％であると仮定する。以上の仮定の下に、（リモート・ラインである）ＬＲＵラインを置き換える場合、予期されるペナルティは０．１×１０＝１．０メモリ・アクセス単位時間と見積もることができる。しかし、（ローカル・ラインである）第２のＬＲＵラインを置き換える場合には、予期されるペナルティは０．１５×１＝０．１５単位時間と見積もることができる。したがって、この特定の場合には、ＬＲＵ置き換えに厳格に従うのではなく、第２のＬＲＵラインを置き換えたほうがよいと言える。この例は次のことを示している。すなわち、ＮＵＭＡシステムの場合、キャッシュ・ミスを処理するのに要するメモリ・アクセス待ち時間を改善するには、キャッシュ・ミスしたラインがローカル・ラインであるかリモート・メモリ群のうちの１つの中のラインであるかに応じた当該キャッシュ・ミスを処理するのに要する平均時間とともに、セット・アソシアティブ・キャッシュの各セットの各ラインのＬＲＵ位置だけでなく、ＬＲＵ位置に従って各ラインにキャッシュ・ヒットが発生する確率をも考慮に入れる必要がある。したがって、本発明の目的はキャッシュ・コントローラの置き換え論理回路を再構成しうるようにし、そのような追加の要因を考慮に入れることにより、ＮＵＭＡシステムの平均メモリ・アクセス待ち時間を改善しうる機構を提供することである。
【００１０】
キャッシュ・コントローラの置き換え論理回路を再構成する機構を備えるのが望ましい別の例として圧縮メモリ・システムが挙げられる。圧縮メモリ・システムでは、メインメモリをサイズが論理的に固定した多数のセグメント（圧縮の単位であり、ラインとも呼ばれる）に分割する。そのような論理セグメントは各々、圧縮形式で物理的に格納する（セグメントを圧縮できない場合には非圧縮形式で格納する）。このようなシステムを実装する一例を次に示す。すなわち、メインメモリと高次キャッシュとの間でキャッシュを使用し、キャッシュ・ミスの場合にラインを復元し、変更したキャッシュ・ラインをライトバックする場合にラインを圧縮する。図２はこの型の圧縮メモリ・システムの高次のシステム・アーキテクチャを示す図である。図２に示すように、プロセッサはレベル１（Ｌ１）キャッシュとレベル２（Ｌ２）キャッシュ（２１０、２２０）とともに、非圧縮形式でデータを格納する大規模なＬ３キャッシュ２３０を共有している。キャッシュ・ライトバックの場合、データをメインメモリ２６０に格納する前に圧縮器２４０によって圧縮する。逆に、キャッシュ・ミスの場合、データをメインメモリ２６０から読み出すときに復元器２５０によって復元する。このようなコンピュータ・アーキテクチャのより詳細な議論は次に示す文献を参照されたい。Ｒ・Ｂ・トレメイン、Ｐ・Ａ・フラナスゼク、Ｊ・Ｔ・ロビンソン、Ｃ・Ｏ・シュルツ、Ｔ・Ｂ・スミス、Ｍ・Ｅ・ワズロウスキ、およびＰ・Ｍ・ブランド著「ＩＢＭメモリ拡張技術（ＭＸＴ）」ＩＢＭジャーナル・オブ・リサーチ・アンド・ディベロプメント第４５巻第２号（２００１年３月）第２７１〜２８５頁（R. B. Tremaine, P. A. Franaszek, J. t. Robinson, C. O. Schulz, T. B. Smith, M. E. Wazlowski, and P. M. Bland, IBM Memory Expansion Technology(MXT), IBM Journal of Res. & Develop. 45, 2(March 2001), pages 271-285.）。Ｐ・ＡフラナスゼクおよびＪ・Ｔ・ロビンソン著「圧縮ランダム・アクセス・メモリの内部構成について」ＩＢＭジャーナル・オブ・リサーチ・アンド・ディベロプメント第４５巻第２号（２００１年３月）第２５９〜２７０頁（P. A. Franaszek and J. T. Robinson, On internal organization in compressed random access memory, IBM Journal of Res. & Develop. 45, 2(March 2001), pages 259-270. ）。Ｐ・Ａフラナスゼク、Ｐ・ハイデルバーガー、Ｄ・Ｅ・ポフ、およびＪ・Ｔ・ロビンソン著「圧縮メモリ・マシン用のアルゴリズムとデータ構造」ＩＢＭジャーナル・オブ・リサーチ・アンド・ディベロプメント第４５巻第２号（２００１年３月）第２４５〜２５８頁（P. A. Franaszek, P. Heidelberger, D. E. Poff, and J. T. Robinson, Algorithm and data structure for compressed-memory machines, IBM Journal of Res. & Develop. 45, 2(March 2001), pages 245-258. ）。
【００１１】
このようなシステムでは、性能上の理由からメモリの一部を非圧縮形式で格納しておくのが望ましい。非圧縮領域は実際には連続して格納されていないが、説明の便宜のために図２では一群の非圧縮メモリ領域が非圧縮メモリ２７０として示されている。非圧縮メモリに対するメモリ参照は復元待ち時間がないから、かなり速くなる可能性だある。一例を説明する便宜のために、非圧縮メモリに対するメモリ参照は１０倍速いものと仮定すると、ＮＵＭＡシステム用の上述した例を非圧縮メモリ領域を備えた圧縮メモリ・システムに直截に適用することができる（すなわち、メモリ・アクセス待ち時間を考慮に入れた非ＬＲＵ置き換えの潜在的な利点を説明する例の観点から、ＮＵＭＡシステムのローカル・メモリは圧縮メモリ・システムの非圧縮メモリに対応し、ＮＵＭＡシステムのリモート・メモリは圧縮メモリ・システムの圧縮メモリに対応する）。
【００１２】
キャッシュ・コントローラの置き換え論理回路を再構成する機構を備えるのが望ましいさらに別の例として、電力消費を低減させるためにメインメモリ・モジュールの一部を低電力モードで動作させているコンピュータ・システムを挙げることができる。たとえば次に示す論文にはＤＲＡＭメモリ用の様々な低電力モードが記載されている。デラルーズら著「ＤＲＡＭの電力モードを制御するためのハードウェア技法とソフトウェア技法」アイトリプルイー・トランザクション・オン・コンピュータ第５０巻第１１号（２００１年１１月）第１１５４〜１１７３頁（"Hardware and Software Techniques for Controlling DRAM Power Modes", by Delaluz et al, in IEEE Transaction on Computers, Vol. 50, N0. 11, November 2001, pages 1154-1173.)。一般に、電力消費と速度は二者択一の関係にある。すなわちＤＲＡＭの場合、低電力モードにするとメモリ・アクセス待ち時間が長くなる。メインメモリが様々な低電力モードにあるコンピュータ・システムの一例を図３に示す。図３には、プロセッサ３１０、キャッシュ３２０、通常アクティブ（フル・パワー）モードのメモリ・モジュール３３０、メモリ・アクセス待ち時間が少し長いスタンバイ電力モードのメモリ・モジュール３４０、およびメモリ・アクセス待ち時間がきわめて長いパワー・ダウン電力モードのメモリ・モジュール３５０が示されている。この例でも、各キャッシュ・ラインのキャッシュ元であるメモリ・モジュールのメモリ・アクセス待ち時間を考慮に入れる置き換え方法を用いることにより、上述した例と同様にキャッシュ性能を向上させうることが期待できる。
【００１３】
さらに別の例は所定のセットの各ラインの状況変更に関係するものである。変更されたラインを置き換えるために、（現在の高性能キャッシュでは普通である）ストアイン型のキャッシュではまず、当該ラインをメモリにライトバックする必要がある（ライトバックは通常、変更されたラインをライトバック・バッファに移動することにより行うから、ライトバックは実際には非同期に行われる）。しかし、クリーンな（すなわち非変更の）ラインはライトバックなしに置き換えうる。したがって、変更されたラインの置き換えはクリーンなラインの置き換えに比べて余分な時間を必要とする。それゆえ、この情報を考慮に入れた置き換え方法を用いれは、この情報を使用することによりキャッシュの性能を向上させうる。
【００１４】
上の議論が示しているように、セット・アソシアティブ型キャッシュのキャッシュ性能を向上させるには、予め定めた固定した方法（たとえばキャッシュ・コントローラ中のハードウェア論理回路として実装されたＬＲＵ置き換え方法）を用いるのではなく、所定のセットの各ラインを置き換える際に予期されるペナルティを考慮に入れた置き換え方法を用いればよい。しかし、設計時には予期されるペナルティがどのようなものになるかを予見することは不可能である。ただし、ある場合には、所定のコンピュータ・システム構成（たとえば、ＮＵＭＡシステムにおけるリモート・メモリの対照物としてのローカル・メモリ、使用中のＤＲＡＭメモリの詳細、相互接続ネットワークの速度、その他多数の構成上の詳細）におけるメモリ・アクセス待ち時間の変動を予見することができるが、これらの変動は負荷その他の要因によって変化する可能性がある（たとえば、ＮＵＭＡシステム用の相互接続ネットワークにはコンテンション依存性がある）。また、所定のセットの各キャッシュ・ラインに対する再参照の確率は一般に予見できない。なぜなら、これは負荷に対する依存度がきわめて高いからである。したがって、本発明の目的はキャッシュ・コントローラの置き換え論理回路を当該キャッシュ・コントローラの速度に影響を与えることなく動的に再構成することのできる機構を提供することである。
【００１５】
まず、キャッシュ置き換え制御アレイ（Cache Replacement Control Array 、以下ＣＲＣＡと呼ぶ）の内容を数例示すことにより、本発明を説明する。ＣＲＣＡはキャッシュ・コントローラ中のアレイであり、システム・ソフトウェアによって書き換え可能であり、キャッシュ・コントローラが用いる置き換え方法を制御するものである。したがって、キャッシュ・コントローラが用いる置き換え方法はＣＲＣＡに新たな値を書き込むことにより、再構成することができる。上述したように、キャッシュ・コントローラ設計の現在の実務はハードウェア論理回路で実装した予め定め固定した置き換え選択方法を用いるものであるから、置き換え選択方法を制御するＣＲＣＡは本発明が提示する相違点の１つである。高レベルでのＣＲＣＡの使用方法を図４に示す。キャッシュ・コントローラ論理回路４１０はキャッシュ・ディレクトリ４２０とＣＲＣＡ４２０を用いて、所定のセットにマップすべきキャッシュ・ミスが発生したときに当該セット中のどのキャッシュ・ラインを置き換えるべきかを決める。ＣＲＣＡの形式と内容は一般にキャッシュ・コントローラを設計する際に対象としたシステムの型（たとえばＮＵＭＡシステム、規模変更可能なＮＵＭＡシステム、非圧縮メモリ領域を備えた圧縮メモリ・システム、様々なアクティブ電力モードと低電力モードのメモリ・モジュールを備えたコンピュータ・システムなど）によって決まる。以下、４ノードのＮＵＭＡシステムの観点から数例を説明する（上述した一般的な複数ノードの場合を示す図１を用いて説明する）。キャッシュ１４０、１５０、・・・、１６０は４ウエイ・セット・アソシアティブである。これらの例では、ＣＲＣＡの内容は４ノードのＮＵＭＡシステムのノード０用のものを示す。システムの他のノードの内容もこの内容と同じものに変更することができる。これらの例では、メモリ・アクセス待ち時間はシステムの各ノードごとに変化しうる、すなわちノード０からそのローカル・メモリ、そしてノード１、２、３のリモート・メモリへのメモリ参照に対して４つの大幅に異なる予期メモリ・アクセス待ち時間が存在しうる、とも仮定する（以下では大幅に規模を変更しうるＮＵＭＡシステムをサポートする変更例を説明する）。また、所定のセット中の４つのキャッシュ・ラインの各々のＬＲＵ位置は（ＬＲＵ置き換えを用いた現行のキャッシュで普通のように）キャッシュ・コントローラによって保持されるとともにキャッシュ・ディレクトリに記録される。これらの仮定の下に、キャッシュ中の各ラインは（置き換え選択の目的で問題になる）可能な１６通りの状態のうちの１つを取ることができる。すなわち、４つのＬＲＵ位置（たとえば０、１、２、３〔ただし０はＭＲＵライン、１は第２のＭＲＵライン、２は第２のＬＲＵライン、３はＬＲＵラインである〕）と、キャッシュ・ラインの読み取り元である４つの可能なノード（ノード０、１、２、３）とがある。
【００１６】
一般に、ＣＲＣＡは置き換え選択用に定義した一群の状態のうち、キャッシュ・ラインがとることのできるすべての状態用のエントリを１つ備えている。これらの状態をＣＲＣＡ中で並べることにより、置き換えるべきキャッシュラインを選択する。具体的には、４ウエイ・セット・アソシアティブ・キャッシュを備えた４ノードのＮＵＭＡシステムでは、ＣＲＣＡは所定の順番に並べた１６個のエントリを備えることになる。ＣＲＣＡの各エントリはこの例では０〜１５のインデックスを備えている。置き換えるべきキャッシュ・ラインは次のように選択する。まず、キャッシュ・ミスをマップするセットの４つのキャッシュ・ラインの各々について、本発明ではラインの（ＬＲＵ位置、ノード）状態を見つける。次いで、これら４つの状態（各キャッシュ・ラインはＬＲＵ位置が異なるから、これらの４つの状態は必然的に異なる）の各々について、本発明ではＣＲＣＡ中の状態のインデックスを見つける。次いで、本発明ではＣＲＣＡ中でインデックスが最も大きい状態を有するキャッシュ・ラインを置き換えるべきものとてして選択する。
【００１７】
たとえば、４ウエイ・セット・アソシアティブ・キャッシュを備えた４ノードのＮＵＭＡシステムの場合、ＣＲＣＡは次のように書き込む。厳格なＬＲＵ置き換えを実装するこのＣＲＣＡを図５に示す。これは次に示すように厳格なＬＲＵ置き換えを実装している。すなわち、ＬＲＵ位置０（すなわちＭＲＵライン）の４つの状態のＣＲＣＡインデックスは最も小さい（０〜３）。ＬＲＵ位置１（すなわち第２のＭＲＵライン）の４つの状態のＣＲＣＡインデックスはその次に位置する（４〜７）。ＬＲＵ位置２（すなわち第２のＬＲＵライン）の４つの状態のＣＲＣＡインデックスはその次に位置する（８〜１１）。ＬＲＵ位置３（すなわちＬＲＵライン）の４つの状態のＣＲＣＡインデックスは最も大きい（１２〜１５）。
【００１８】
別の例は４ノードのＮＵＭＡシステムにおいてローカル・ノードとリモート・ノードとの間でメモリ・アクセスがきわめて不均一な場合である。この場合、リモート・ラインではなくローカル・ラインを選択して置き換えるのが常に有利である。その際、セット中にＬＲＵローカル・ラインが複数個あればＬＲＵローカル・ラインを用いる。この例では、リモート・ノードについてはメモリ・アクセスがほぼ均一であるから、セット中にローカル・ラインがなければ（すなわちセット中のラインがすべてリモート・ラインなら）、ＬＲＵラインを選択するものと仮定する。この置き換え方法を実装したＣＲＣＡを図６に示す（上述したように、このＣＲＣＡはノード０〔すなわちローカル・ノード〕用に示されている）。このＣＲＣＡが上述した置き換え方法を実装していることを確認するために、まず留意すべき点を挙げると、注目するラインがローカル・ラインである状態（すなわちノード０の状態）のＣＲＣＡインデックスは最も大きい（１２〜１５）。したがって、もしこのようなラインが１つでもあれば、これらの状態のうちの１つにあるキャッシュ・ラインを置き換え用に選択する。さらに留意すべき点を挙げると、これら４つの状態はＬＲＵ位置によって順序付けられているから、複数のローカル・ラインがあるならば、置き換え用にＬＲＵラインを選択する。セット中にローカル・ラインがない場合、すべてのラインはインデックスが０〜１１のＣＲＣＡ状態のうちの１つにある。留意点を挙げると、これらはＬＲＵ位置によって順序付けられている。すなわち、まずＬＲＵ位置が０の状態があり（インデックス０、１、２）、次いでＬＲＵ位置が１の状態があり（インデックス３、４、５）、・・・。したがって、セット中のラインがすべてリモート・ラインである場合には、置き換え用にＬＲＵラインを選択する。
【００１９】
次に、特定の置き換え規則の実装を説明する別の例を説明する。（４ノードのＮＵＭＡシステムにおける）このような置き換え規則は次に示すようなものである。すなわち、常にＬＲＵラインを置き換える。ただし、ＬＲＵラインがリモート・ラインであり、第２のＬＲＵラインがローカル・ラインである場合はこの限りではなく、そのような場合には第２のＬＲＵラインを置き換える。この置き換え規則を実装したＣＲＣＡを図７に示す。留意点を挙げると、ＣＲＣＡインデックスが１４、１５でＬＲＵ位置が２または３のローカル・ラインがセット中に存在する場合には、まずそれを置き換え用に選択する。そうでない場合には、置き換え選択はＬＲＵの順番（ＣＲＣＡアレイ・インデックス０〜１３）に従う。このように、図７のＣＲＣＡには上述した規則が実装されている。
【００２０】
別の例は４ノードのＮＵＭＡシステムにおいてノード０からのメモリ・アクセス時間がきわめて不均一な場合である。すなわち、ノード３のリモート・メモリに対する待ち時間がきわめて長く、ノード２のリモート・メモリに対する待ち時間が長く、ノード１のリモート・メモリに対する待ち時間が中くらいであり、ローカル・メモリに対する待ち時間が短い。このような場合、キャッシュ置き換えをノード番号によって厳格に優先順位付けするのが望ましい。すなわち、ノード０に由来するラインの置き換え優先順位が最も高く、ノード１に由来するラインの置き換え優先順位がその次に高く、ノード２に由来するラインの置き換え優先順位がその次に高く、最後にノード３に由来するラインの置き換え優先順位が最も低い。そして、同じノードに由来するライン群からＬＲＵを用いて１つのラインを選択する。この置き換え方法を実装したＣＲＣＡを図８に示す。図８では、ＣＲＣＡインデックス１２〜１５を有するノード０に由来するラインの置き換え優先順位が最も高く、ＣＲＣＡインデックス８〜１１を有するノード１に由来するラインの置き換え優先順位がその次に高く、・・・。同じノードに由来するライン群はＬＲＵ位置によって順序付けられている。
【００２１】
予期される置き換えペナルティを最小にするようにＣＲＣＡの内容を計算しうる方法の例を以下に示す。この計算は次に示すキャッシュ・アクセスの統計を集めることに基づいている。この例のために次のように仮定する。すなわち、キャッシュ・コントローラはＬＲＵ位置０、１、２、３にあるキャッシュ・ヒットのカウント値（たとえばＣ［０］、Ｃ［１］、Ｃ［２］、Ｃ［３］）、各ノードに対するミスに起因するメモリ参照に要した合計メモリ・アクセス・サイクルのカウント値（たとえばＴ［０］、Ｔ［１］、Ｔ［２］、Ｔ［３］）、および各ノードに対する（ミスに起因する）メモリ参照のカウント値（たとえばＲ［０］、Ｒ［１］、Ｒ［２］Ｒ［３］）を収集するように構成されているものと仮定する。留意点を挙げると、現在のキャッシュ・コントローラはこのように詳細な性能評価機構を備えていないが、進歩した性能評価機構を備えるのがキャッシュ・コントローラの設計における現在の傾向である。これらのカウンタを備えた場合、ＬＲＵ位置ｐにあるノードｎに由来するラインを置き換えるペナルティはＣ［ｐ］×（Ｔ［ｎ］／Ｒ［ｎ］）に比例するもと見積もることができる。留意点を挙げると、参照の局所性がノード間で変動しうるものと見込まれる場合には、カウンタＣ［ｐ，ｎ］のアレイを保持することができる。ただし、Ｃ［ｐ，ｎ］はノードｎに由来するＬＲＵ位置ｐにあるラインに対するヒットのカウント値である。置き換えペナルティはＣ［ｐ，ｎ］×（Ｔ［ｎ］／Ｒ［ｎ］）に比例するものと見込むことができる。（しかしながら、この手法はキャッシュ・コントローラ中により多くのカウンタを必要とする。）置き換えペナルティを見積もるこれらの方法は次に示す米国特許に記載されている置き換えペナルティの見積もり方法と類似のものである。たとえば、ボズマン（Bozman）、ロビンソン（Robinson）、およびテツラフ（Tetzlaff）の「オブジェクト置き換えペナルティおよび参照確率に基づくオブジェクト格納の管理（Managing an Object Store based on Object Replacement and Reference Probabilities）」なる名称の米国特許第６３８５６９９号（２００２年５月７日）（ここに記載されている手法はより一般的なものであり、キャッシュ・コントローラ・ハードウェアにとって適切な制約がないけれども、他の多くの基本的な相違点にもかかわらず、サイズが変動するオブジェクトを備えたソフトウェア制御のキャッシュに適用することができる）など。いずれにしろ、第２の手法として各（ノード、ＬＲＵ位置）ペアについてＣ［ｐ］×（Ｔ［ｎ］／Ｒ［ｎ］）またはＣ［ｐ，ｎ］×（Ｔ［ｎ］／Ｒ［ｎ］）が計算してあると、置き換えペナルティが小さくなる順に状態をソートすることにより、予期される置き換えペナルティを最小にするＣＲＣＡを計算することができる。このシナリオでは、システム・ソフトウェアが周期的に上述したカウンタを読み取り、予期される置き換えペナルティを最小にするＣＲＣＡを計算し、そのＣＲＣＡを書き込み、カウンタをリセットする。あるいは、このように詳細なキャッシュ・コントローラの性能評価機構を備えていない場合には、所定の負荷のオフライン解析によってＣＲＣＡを計算する。その際、たとえばシステムの性能モデルの追跡駆動シミュレーショ���または実行駆動シミュレーションを用いる。
【００２２】
以上、ＣＲＣＡの内容例、および予期される置き換えペナルティを最小にするＣＲＣＡを性能統計を用いて、または性能統計がない場合にはオフライン解析によって計算する例を示した。次に、キャッシュ・コントローラの置き換え論理回路におけるＣＲＣＡの動作を詳細に説明する。内容アドレス可能メモリ（content addressable memory: ＣＡＭ、連想メモリとも呼ばれる) はＣＡＭのメモリ内容を保持するレジスタ・アレイと、ＣＡＭ入力とＣＡＭに格納されているすべての値とを同時に比較することのできる比較器のアレイとから構成されている。比較器のアレイを拡張することにより、複数のＣＡＭ入力とＣＡＭに格納されているすべての値とを同時に比較しうるようにすることができる。Ｎ個のＣＡＭ入力があるＣＡＭをＮポートＣＡＭと呼ぶ。留意点を挙げると、ＮポートでサイズがＭ（すなわちＭ個の値を保持している）ＣＡＭはＭ×Ｎ個の比較器を必要とするとともにＭ×Ｎ個の出力を備えている。このような出力は各々、「真（compares equal）」または「偽（compares not equal）」である。図９は４ウエイ・セット・アソシアティブ・キャッシュおよび図５〜図８に示したＣＲＣＡ形式を備えた４ノードのＮＵＭＡシステムにおいて置き換えるべきラインを選択するキャッシュ・コントローラのハードウェア論理回路の概観を示す図である。各ＣＲＣＡエントリは（ノード、ＬＲＵ位置）ペアから成り、この例の文脈では４ビット（ノード番号用に２ビット、ＬＲＵ位置用に２ビット）を必要とする。キャッシュ・ディレクトリ６１０を用いて、キャッシュ・コントローラ６２０はミスがマップされたセット中のラインの４つの状態（ノード、ＬＲＵ位置）を見つける。これらの４つの状態は４つのＣＡＭ入力として４ポートで１６×４ビットのＣＡＭ６３０に転送される（すなわち、ＣＡＭメモリは１６個の４ビット値を格納しているとともに４個の４ビット入力と４群の１６個×１ビット出力を備えている）。書き込み可能なＣＲＣＡはＣＡＭ６３０のレジスタ・アレイの内容ＣＲＣＡ［０］〜ＣＲＣＡ［１５］として実装されている。ＣＡＭ出力の結果は４×１６＝６４個のＣＡＭ出力のうちの正確に４つの「真（compares equal）」信号として現れる（なぜなら、各ラインは必然的に厳格に異なる状態をとるからである）。符号化論理回路６４０は「真（compares equal）」である最も大きなＣＡＭ出力を選択し、それをこの出力を生成したＣＡＭ入力に対応する０〜３の値として符号化する。最後に、この値をセット中のキャッシュ・ラインへのインデックスとして使用して、置き換えるべきキャッシュ・ラインを選択する。
【００２３】
図１０は図９の符号化論理コンポーネント６４０の実装例を示す図である。１６個の「ＯＲ」ゲート７１０によって４つのＣＡＭ出力から成る連続群から１６個の状態信号 state［i ］（０≦ｉ≦１５）を求める。インデックスが最も大きい「真」状態信号を見つけ、そのインデックスを１６ライン・ツー・４ライン・バイナリー優先度符号化器７２０によって４ビットのバイナリー番号 state＿num ［0:3 ］に符号化する。１６個の４ライン・ツー・２ライン・バイナリー符号化器７３０によって４つのＣＡＭ出力から成る連続群から１６個の２ビット・キャッシュ・ライン番号line＿num ［i,j ］(0≦i ≦15;j=0,1) を生成する。最後に、２個の１６ライン・ツー・１ライン・マルチプレクサ７４０によって符号化論理回路の２ビット・ライン・インデックス出力を生成する。その結果、４ビットの状態番号 state＿num ［0:3 ］は適切な高次および低次のライン番号ビット（line＿num ［i,0 ］とline＿num ［i,1 ］）を選択している。
【００２４】
別の等価のハードウェア実装は当業者が自然に想到しうる。特に、図９と図１０に示した構成において、ＣＲＣＡインデックス０、１、２に対応する状態のラインは置き換え用に決して選択できないということに気付けば、（専用論理構成を用いることにより）ゲート数を顕著に減らすことができる。その理由は単に、対応するＣＲＣＡインデックスが最も大きなラインが選択されるからであり、４つのラインが存在するから、このインデックスは３以上に違いないからである。すなわち、ＣＡＭ６３０から始めて、ＣＲＣＡ［０］、ＣＲＣＡ［１］、およびＣＲＣＡ［２］を保持するレジスタは除去することができる。そして、これらのレジスタの値に依存する引き続くすべての論理回路も除去することができる。結果として得られる最適化した構成は図示した構成ほど概念的に明確ではないが、置き換え選択の観点からは論理的に等価なものである。この特定の場合、この最適化によって、ゲート数を約１３／１６すなわち約８０％減らすことができる。
【００２５】
以上、４ウエイ・セット・アソシアティブ・キャッシュを備えた４ノードのＮＵＭＡシステムのＣＲＣＡの使用方法を詳細に説明したが、以下に示すように上述した例は様々に一般化することができる。最初の例として、ＮＵＭＡシステムのスケーラビリティをより容易にサポートするために、ＣＲＣＡ中にすべての（ノード、ＬＲＵ位置）ペア用のエントリを保持する代わりに、これらのエントリの「ノード」コンポーネントがローカルまたはリモートに対応する２つの値だけをとるようにすることができる。すなわち、この例では、リモート・ノードをすべて一括して扱う。そして、様々なノードの各々が使用するＣＲＣＡはシステム中のノード数と無関係に、（４ウエイ・セット・アソシアティブ・キャッシュの場合には）８つのエントリをとる。
【００２６】
スケーラビリティをサポートするもう少し複雑な第２の例を挙げると、ＮＵＭＡノードは（１）ローカル、（２）短待ち時間リモート、（３）中待ち時間リモート、および（４）長待ち時間リモートに分類することができる。システム・ソフトウェアはたとえばハードウェア・タイマーＴ［ｎ］と上述した参照カウンタＲ［ｎ］を用いてすべてのリモート・ノードを（所定の任意のローカル・ノードに対して）上述したリモート・ノード・クラスのうちの１つに分類する。また、各キャッシュ・コントローラは長さがシステム中のノード数と等しい（ソフトウェアが書かれた）アレイＬを備えている。各アレイＬ［ｉ］はノードｉがローカル・ノードであるかこれら４つのクラスのうちの１つに属すリモート・ノードであるかに応じて４つの値をとる。最後に、ＣＲＣＡのエントリは（クラス、ＬＲＵ位置）という形をしている。「クラス」は上に列挙したノードの４つのクラスに対応する４つの値をとる。この例では、すべてのリモート・ノードは３つのクラスに分類される。そして、様々なノードの各々が使用するＣＲＣＡにはシステム中のノード数と無関係に（４ウエイ・セット・アソシアティブ・キャッシュの場合）１６個のエントリがある。
【００２７】
最後に、関連技術の上述した説明中で例を用いて述べたように、メモリ・アクセスが不均一な場合はＮＵＭＡシステム以外にもある。たとえば、非圧縮メモリ領域を備えた圧縮メモリ・システム、電力消費を低減するために一部のメモリ・モジュールを様々な低電力モードで動作させているシステムなどがある。別の例としては、置き換えペナルティがキャッシュ・ラインのクリーン状態または変更状態に既存するシステムが挙げられる。これらの型のシステムの予期される置き換えペナルティを最小にする、キャッシュ置き換え選択方法をサポートするＣＲＣＡの使用方法は、ＮＵＭＡシステムのＣＲＣＡの使用方法と直截に類似している。なぜなら、これらすべてのシステムと例におけるメモリ・アクセス時間の不均一性は書き換え可能なＣＲＣＡの使用を望ましいものにしているこれらシステムと例の共通の特性だからである。
【００２８】
以上、本発明を好適な実施形態の観点から説明したが、当業者が理解しうるように、本発明は特許請求の範囲の本旨と範囲のうちで変更して実施することができる。
【００２９】
まとめとして以下の事項を開示する。
（１）
セット・アソシアティブ・キャッシュ・メモリ、キャッシュ・メモリ・コントローラ、書き込み可能なキャッシュ置き換え制御アレイを備えたコンピュータ・システムを使用する方法であって、
キャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを前記キャッシュ・メモリ・コントローラにより、かつ前記書き込み可能なキャッシュ置き換え制御アレイを制御することにより選択するステップと、
各キャッシュ・ラインを所定の状態群のうちの正確な１つに常に維持し、前記キャッシュ・メモリ中の各セット内で常に前記セットの各キャッシュ・ラインが前記セットの他のキャッシュ・ライン群の各々の状態と異なる、前記所定の状態群中の１つの状態にあるようにするステップと、
前記キャッシュ置き換え制御アレイが前記所定の状態群中の状態の各々に対応するエントリを備えるようにするステップと
を備え、
前記選択するステップが、
前記キャッシュ・メモリの各セット内で、前記セットの各キャッシュ・ラインの、前記所定の状態群中の状態に対応する、前記キャッシュ置き換え制御アレイ中の位置を求めるこにより置き換え用のキャッシュ・ラインを選択するステップと、
前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い、前記キャッシュ置き換え制御アレイ中に定められている位置の中で最も高い置き換え優先度に対応する状態を有するキャッシュ・ラインを置き換え用に選択するステップと
を備えている
方法。
（２）
セット・アソシアティブ・キャッシュ・メモリと、
前記セット・アソシアティブ・キャッシュ・メモリに動作可能に接続されたキャッシュ・メモリ・コントローラと、
前記キャッシュ・メモリ・コントローラに動作可能に接続された書き込み可能なキャッシュ置き換え制御アレイと
を備え、
前記書き込み可能なキャッシュ置き換え制御アレイが前記キャッシュ置き換え制御アレイ中のエントリ数とセット・アソシアティブ度数との積のオーダーの個数の比較器のアレイを備え、
前記比較器のアレイはキャッシュ・セット中の各ラインの状態と前記キャッシュ置き換え制御アレイ中のすべてのエントリとの並行比較を可能にするように構成されており、前記並行比較の結果は比較結果が一致する個数であり、
前記書き込み可能なキャッシュ置き換え制御アレイが、前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い最も高い置き換え優先度を有する、前記キャッシュ置き換え制御アレイ中のエントリと比較して一致するキャッシュ・ラインを探し出すことにより前記キャッシュ・セット中の置き換えるべきキャッシュ・ラインを選択するよにう適合している
コンピュータ・システム。
（３）
セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法であって、
書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立するステップであって、前記指針は前記書き込み可能なキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更しうる、ステップと、
前記順位付け指針に従って異なるキャッシュ・ラインの状態を順位付けるステップと、
キャッシュ・ミスが発生したら、前記順位のうち最も順位の高いキャッシュ・ラインを置き換えるステップと
を備えた
方法。
（４）
前記順位はリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けている、
上記（３）に記載の方法。
（５）
前記順位はローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けている、
上記（３）に記載の方法。
（６）
前記順位は待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けている、
上記（３）に記載の方法。
（７）
前記順位はノード待ち時間に基づいてノード・ラインを順位付けるとともに、ＬＲＵ法に従って各ノード内のメモリ・ラインを順位付けている、
上記（３）に記載の方法。
（８）
前記順位は各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従って前記コンピュータ・システム内のノードを順位付けている、
上記（３）に記載の方法。
（９）  さらに、
前記セット・アソシアティブ・キャッシュ・メモリから
圧縮メインメモリ
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも１つを備えた不均一メインメモリ
に書き込むステップ
を備えた、
上記（３）に記載の方法。
（１０）
セット・アソシアティブ・キャッシュ・メモリと、
書き込み可能な置き換え制御アレイを備えたキャッシュ・メモリ・コントローラと
を備え、
置き換え用のキャッシュ・ラインを順序付けるのに使用する指針を前記書き込み可能な置き換え制御アレイに様々なデータを書き込むことにより動的に変更する
コンピュータ・システム。
（１１）
前記置き換え制御アレイが前記キャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている、
上記（１０）に記載のコンピュータ・システム。
（１２）
前記指針がリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付ける、
上記（１０）に記載のコンピュータ・システム。
（１３）
前記指針がローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付ける、
上記（１０）に記載のコンピュータ・システム。
（１４）
前記指針が待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付ける、
上記（１０）に記載のコンピュータ・システム。
（１５）
前記指針がノード待ち時間に基づいてノードを順位付けるとともに、各ノード内のメモリ・ラインをＬＲＵ法に従って順位付ける、
上記（１０）に記載のコンピュータ・システム。
（１６）
前記指針が前記コンピュータ・システム内のノードを各ノードのヒットおよびミスの回数、ならびに各ノードのメモリ参照の回数に従って順位付けている、
上記（１０）に記載のコンピュータ・システム。
（１７）  さらに、
前記セット・アソシアティブ・キャッシュ・メモリに接続され、
圧縮メインメモリ、
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも１つを備えた不均一メインメモリ
を備えた、
上記（１０）に記載のコンピュータ・システム。
【図面の簡単な説明】
【００３０】
【図１】多ノード型ＮＵＭＡシステムの一例を示す図である。
【図２】非圧縮メモリ領域を備えた圧縮メモリ・システムを示す図である。
【図３】様々なアクセス待ち時間を有し様々なアクティブまたは低電力モードにあるメインメモリを備えたシステムの一例を示す図である。
【図４】キャッシュ・ディレクトリおよびＣＲＣＡを備えたキャッシュ・コントローラを示す図である。
【図５】（４ノードのＮＵＭＡの例で）厳格ＬＲＵ置き換え用のＣＲＣＡを示す図である。
【図６】（４ノードのＮＵＭＡの例で）ローカル・ライン優先置き換え用のＣＲＣＡを示す図である。
【図７】（４ノードのＮＵＭＡの例で）ＬＲＵライン／第２のＬＲＵライン置き換え規則用のＣＲＣＡを示す図である。
【図８】（４ノードのＮＵＭＡの例で）ノードによる優先順位置き換え用のＣＲＣＡを示す図である。
【図９】（４ノードのＮＵＭＡの例で）ＣＲＣＡを用いて置き換えるべきラインを選択するための制御論理回路を示す図である。
【図１０】（４ノードのＮＵＭＡの例で）符号化論理回路を示す図である。
【符号の説明】
【００３１】
１１０  プロセッサ
１２０  プロセッサ
１３０  プロセッサ
１４０  キャッシュ
１５０  キャッシュ
１６０  キャッシュ
１７０  メモリ
１８０  メモリ
１９０  メモリ
１９５  相互接続ネットワーク
２１０  レベル１（Ｌ１）キャッシュとレベル２（Ｌ２）キャッシュ
２２０  レベル１（Ｌ１）キャッシュとレベル２（Ｌ２）キャッシュ
２３０  Ｌ３キャッシュ
２４０  圧縮器
２５０  復元器
２６０  メインメモリ
２７０  非圧縮メモリ
３１０  プロセッサ
３２０  キャッシュ
３３０  アクティブ・メモリ
３４０  スタンバイ・メモリ
３５０  パワーダウン・メモリ
４１０  キャッシュ・コントローラ置き換え選択論理回路
４２０  キャッシュ・メモリ
４３０  キャッシュ置き換え制御アレイ（ＣＲＣＡ）
６１０  キャッシュ・ディレクトリ
６２０  キャッシュ・コントローラ論理回路
６３０  内容アドレス可能メモリ（ＣＡＭ）
６４０  符号化論理回路
７１０  ＯＲゲート
７２０  １６ライン・ツー・４ライン・バイナリー優先度符号化器
７３０  ４ライン・ツー・２ライン・バイナリー符号化器
７４０  １６ライン・ツー・１ライン・マルチプレクサ
【図１】
2004164606.tif 000003
【図２】
2004164606.tif 000004
【図３】
2004164606.tif 000005
【図４】
2004164606.tif 000006
【図５】
2004164606.tif 000007
【図６】
2004164606.tif 000008
【図７】
2004164606.tif 000009
【図８】
2004164606.tif 000010
【図９】
2004164606.tif 000011
【図１０】
2004164606.tif 000012