JP2004164606A - キャッシュ・コントローラ - Google Patents

キャッシュ・コントローラ Download PDF

Info

Publication number
JP2004164606A
JP2004164606A JP2003325290A JP2003325290A JP2004164606A JP 2004164606 A JP2004164606 A JP 2004164606A JP 2003325290 A JP2003325290 A JP 2003325290A JP 2003325290 A JP2003325290 A JP 2003325290A JP 2004164606 A JP2004164606 A JP 2004164606A
Authority
JP
Japan
Prior art keywords
cache
memory
node
line
replacement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003325290A
Other languages
English (en)
Other versions
JP3871331B2 (ja
Inventor
T Robinson John
ジョン・ティー・ロビンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004164606A publication Critical patent/JP2004164606A/ja
Application granted granted Critical
Publication of JP3871331B2 publication Critical patent/JP3871331B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms

Abstract

【課題】 セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法と装置を提供する。
【解決手段】 本発明に係る方法では、書き込み可能なキャッシュ置き換え制御アレイ430を用いて順位付け指針を確立する。この指針はキャッシュ置き換え制御アレイ430にデータを書き込むことにより動的に変更することができる。本発明では、この順位付け指針に従って様々なキャッシュ・ラインの状態を順位付けておき、キャッシュ・ミスが発生したら、これら順位のうちで最上位のキャッシュ・ラインを置き換える。
【選択図】 図4

Description

本発明は一般にデータをキャッシュする元をなすメモリ群間においてメモリ・アクセス待ち時間にばらつきがあるコンピュータ・システムにおけるキャッシュ用のキャッシュ・コントローラの構成に関する。
コンピュータ・システム用のセット・アソシアティブ・キャッシュ構成において、所定のセットにマップすべきキャッシュ・ミスが発生したときにあるセット内で置き換えるべきラインを選択するための現在の実務は、予め定められ固定した置き換え方法を用いるものである。たとえば、LRU(least recently used)置き換えを用いた4ウエイ・セット・アソシアティブ・キャッシュでは、所定のセットにマップすべきキャッシュ・ミスを処理するために、キャッシュ・コントローラは置き換えるべきセット中の4つのキャッシュ・ラインのうちで最近の参照頻度が最も少ないラインを選択する。この場合、LRU情報はキャッシュ・ディレクトリに符号化して格納しておき、キャッシュ・コントローラのハードウェアがキャッシュ・アクセスごとにキャッシュ・ディレクトリのLRU情報を更新する。高速化するために、この置き換え方法はハードウェア論理回路として実装する。キャッシュの構成、キャッシュ・ディレクトリ、およびキャッシュ・コントローラは広く研究されているが、その底流にある仮定は置き換え方法は固定されており、キャッシュ・コントローラ中のハードウェア論理回路として実装されているというものであった。
本発明の目的はキャッシュ・コントローラの置き換え論理回路を当該キャッシュ・コントローラの速度に影響を与えることなく動的に再構成することのできる機構を提供することである。
本発明の一側面では、キャッシュ置き換え制御アレイ(CRCA)を備えた、コンピュータ・システムのセット・アソシアティブ・キャッシュ用のキャッシュ・コントローラを提供する。CRCAはシステム・ソフトウェアによって書き込むことができる。CRCAの内容を適切にロードすることにより、キャッシュ・コントローラがキャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを選択する際に依拠する方法を動的に再構成することができる。これにより、キャッシュ・コントローラの速度に影響を与えることなく性能を改善することができる。本発明はメモリ・アクセス待ち時間が変動するコンピュータ・システム(たとえば不均一メモリ・アクセス(NUMA)システム、非圧縮メモリ領域を備えた圧縮メモリ・システム、システムの電力消費を削減するためにメインメモリ・モジュールの一部を低電力モードで動作させるコンピュータ・システムなど)に適用することができる。CRCAは置き換え選択用に定義した1組の状態をとりうるすべてのキャッシュ・ラインの状態用のエントリを備えている。たとえば、NUMAシステムの場合、ある構成ではすべての(ノード、LRU位置)ペア用の状態を備えている。ただし、「ノード」はキャッシュ・ライン読み取り元のNUMAシステム中のノード数であり、「LRU位置」は各セット中のラインを最終参照によって順位付ける0〜(K−1)(Kウエイ・セット・アソシアティブ・キャッシュの場合)の範囲の数である(LRU位置0は最も頻繁に参照されたラインを指しており、LRU位置1は2番目に頻繁に参照されたラインを指しており、・・・)。ミスを処理するために、キャッシュ・コントローラはまず、当該ミスをマップすべきセット中の各キャッシュ・ラインの状態の、CRCA中のインデックスを求め、次いでこのようなインデックスが最も大きい状態のラインを置き換え用に選択する。また、様々な状態のラインに対する参照数の統計、および様々なメモリに対するメモリ・アクセス待ち時間の変動の統計を収集し、これらの統計を用いてCRCA中の状態の順位を計算するようにキャッシュ・コントローラを構成することにより、予期される置き換えペナルティを最小にすることができる。
本発明にはセット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法が含まれている。この本発明に係る方法では、書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立する。この指針はキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更することができる。本発明では、順位付け指針に従い様々なキャッシュ・ラインの状態を順位付けておき、キャッシュ・ミスが発生したときに当該順位中の最上位のキャッシュ・ラインを置き換える。
本発明では、リモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けたり、ローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けたり、待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けたり、ノード待ち時間に基づいてノード・ラインを順位付けたり、LRU法に従って各ノード内のメモリ・ラインを順位付けたり、各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従ってコンピュータ・システム内のノードを順位付けたりする。
また、本発明はセット・アソシアティブ・キャッシュ・メモリと、書き込み可能なキャッシュ置き換え制御アレイを備えたキャッシュ・メモリ・コントローラとを備えたコンピュータ・システムも提供する。このコンピュータ・システムでは、指針を用いて置き換え用のキャッシュ・ラインを順位付ける。この指針はキャッシュ置き換え制御アレイに様々なデータを書き込むことにより動的に変更することができる。キャッシュ置き換え制御アレイはキャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている。
以下で例を用いて説明するように、キャッシュ・コントローラが用いる置き換え方法を再構成しうるのが望ましいという場合が存在する。NUMA(nonuniform memory access)型コンピュータ・システムは1つのプロセッサ(または複数のプロセッサ)、キャッシュ階層、ローカル・メインメモリ、および相互接続ネットワークを備えた多数のノードから構成されている。ここでは説明を簡易にするために、このような各ノードにおけるローカル・メインメモリ直上のキャッシュのみを考える。このようなアーキテクチャにおいてグローバルな実メモリ空間を実現するには、任意のノードが他の任意のノードの実メモリにキャッシュ間転送によってアドレスしうるアドレッシング方式を採用する必要がある。図1はこの型の高次元のシステム・アーキテクチャを示す図である。図1に示すように、典型的なNUMAシステムでは多数のノードが存在する。各ノードはプロセッサ(第1のノードの110、第2のノードの120、最終ノードの130)、キャッシュ(第1のノードの140、第2のノードの150、最終ノードの160)、当該ノードに局限されたメモリ(第1のノードの170、第2のノードの180、最終ノードの190)から成る。あるノードから別のノードの非ローカル(すなわちリモート)メモリへのアクセスを可能にするキャッシュ間転送は相互接続ネットワーク195によって行う。各ノードでは、キャッシュはローカル・メモリに由来するとともにNUMAシステム中の様々なリモート・メモリに由来する一群のラインを常に保持している。
キャッシュ・ミスが発生した場合、ミスを処理するのに要する待ち時間はミスがローカル・メモリによるものかリモート・メモリによるものかに依存する(「NUMA(不均一メモリ・アクセス)」はこのことに由来する)。たとえば、ローカル・ミスを処理するのに要する時間が平均して1単位時間であるとすると、リモート・ミスを処理するのに要する時間は平均して10単位時間、すなわち1桁長くなる可能性がある。いま、次に示す状況を考える。すなわち、キャッシュは4ウエイ・セット・アソシアティブであり、各セット内ではLRU置き換えを適用するものと仮定する。また、キャッシュ・ミスが発生しており、当該ミスによってマップされる、ミスが発生しているセット内のLRUラインはリモート・ラインであり、同セットの第2のLRUラインはローカル・ラインであると仮定する。さらに、所定の任意のセットに対するメモリ参照の確率はMRU(most recently used)ラインへのヒットの場合が40%、第2のMRUラインへのヒットの場合が25%、第2のLRUラインへのヒットの場合が15%、LRUラインへのヒットの場合が10%、ミスの場合が10%であると仮定する。以上の仮定の下に、(リモート・ラインである)LRUラインを置き換える場合、予期されるペナルティは0.1×10=1.0メモリ・アクセス単位時間と見積もることができる。しかし、(ローカル・ラインである)第2のLRUラインを置き換える場合には、予期されるペナルティは0.15×1=0.15単位時間と見積もることができる。したがって、この特定の場合には、LRU置き換えに厳格に従うのではなく、第2のLRUラインを置き換えたほうがよいと言える。この例は次のことを示している。すなわち、NUMAシステムの場合、キャッシュ・ミスを処理するのに要するメモリ・アクセス待ち時間を改善するには、キャッシュ・ミスしたラインがローカル・ラインであるかリモート・メモリ群のうちの1つの中のラインであるかに応じた当該キャッシュ・ミスを処理するのに要する平均時間とともに、セット・アソシアティブ・キャッシュの各セットの各ラインのLRU位置だけでなく、LRU位置に従って各ラインにキャッシュ・ヒットが発生する確率をも考慮に入れる必要がある。したがって、本発明の目的はキャッシュ・コントローラの置き換え論理回路を再構成しうるようにし、そのような追加の要因を考慮に入れることにより、NUMAシステムの平均メモリ・アクセス待ち時間を改善しうる機構を提供することである。
キャッシュ・コントローラの置き換え論理回路を再構成する機構を備えるのが望ましい別の例として圧縮メモリ・システムが挙げられる。圧縮メモリ・システムでは、メインメモリをサイズが論理的に固定した多数のセグメント(圧縮の単位であり、ラインとも呼ばれる)に分割する。そのような論理セグメントは各々、圧縮形式で物理的に格納する(セグメントを圧縮できない場合には非圧縮形式で格納する)。このようなシステムを実装する一例を次に示す。すなわち、メインメモリと高次キャッシュとの間でキャッシュを使用し、キャッシュ・ミスの場合にラインを復元し、変更したキャッシュ・ラインをライトバックする場合にラインを圧縮する。図2はこの型の圧縮メモリ・システムの高次のシステム・アーキテクチャを示す図である。図2に示すように、プロセッサはレベル1(L1)キャッシュとレベル2(L2)キャッシュ(210、220)とともに、非圧縮形式でデータを格納する大規模なL3キャッシュ230を共有している。キャッシュ・ライトバックの場合、データをメインメモリ260に格納する前に圧縮器240によって圧縮する。逆に、キャッシュ・ミスの場合、データをメインメモリ260から読み出すときに復元器250によって復元する。このようなコンピュータ・アーキテクチャのより詳細な議論は次に示す文献を参照されたい。R・B・トレメイン、P・A・フラナスゼク、J・T・ロビンソン、C・O・シュルツ、T・B・スミス、M・E・ワズロウスキ、およびP・M・ブランド著「IBMメモリ拡張技術(MXT)」IBMジャーナル・オブ・リサーチ・アンド・ディベロプメント第45巻第2号(2001年3月)第271〜285頁(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フラナスゼクおよびJ・T・ロビンソン著「圧縮ランダム・アクセス・メモリの内部構成について」IBMジャーナル・オブ・リサーチ・アンド・ディベロプメント第45巻第2号(2001年3月)第259〜270頁(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フラナスゼク、P・ハイデルバーガー、D・E・ポフ、およびJ・T・ロビンソン著「圧縮メモリ・マシン用のアルゴリズムとデータ構造」IBMジャーナル・オブ・リサーチ・アンド・ディベロプメント第45巻第2号(2001年3月)第245〜258頁(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. )。
このようなシステムでは、性能上の理由からメモリの一部を非圧縮形式で格納しておくのが望ましい。非圧縮領域は実際には連続して格納されていないが、説明の便宜のために図2では一群の非圧縮メモリ領域が非圧縮メモリ270として示されている。非圧縮メモリに対するメモリ参照は復元待ち時間がないから、かなり速くなる可能性だある。一例を説明する便宜のために、非圧縮メモリに対するメモリ参照は10倍速いものと仮定すると、NUMAシステム用の上述した例を非圧縮メモリ領域を備えた圧縮メモリ・システムに直截に適用することができる(すなわち、メモリ・アクセス待ち時間を考慮に入れた非LRU置き換えの潜在的な利点を説明する例の観点から、NUMAシステムのローカル・メモリは圧縮メモリ・システムの非圧縮メモリに対応し、NUMAシステムのリモート・メモリは圧縮メモリ・システムの圧縮メモリに対応する)。
キャッシュ・コントローラの置き換え論理回路を再構成する機構を備えるのが望ましいさらに別の例として、電力消費を低減させるためにメインメモリ・モジュールの一部を低電力モードで動作させているコンピュータ・システムを挙げることができる。たとえば次に示す論文にはDRAMメモリ用の様々な低電力モードが記載されている。デラルーズら著「DRAMの電力モードを制御するためのハードウェア技法とソフトウェア技法」アイトリプルイー・トランザクション・オン・コンピュータ第50巻第11号(2001年11月)第1154〜1173頁("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.)。一般に、電力消費と速度は二者択一の関係にある。すなわちDRAMの場合、低電力モードにするとメモリ・アクセス待ち時間が長くなる。メインメモリが様々な低電力モードにあるコンピュータ・システムの一例を図3に示す。図3には、プロセッサ310、キャッシュ320、通常アクティブ(フル・パワー)モードのメモリ・モジュール330、メモリ・アクセス待ち時間が少し長いスタンバイ電力モードのメモリ・モジュール340、およびメモリ・アクセス待ち時間がきわめて長いパワー・ダウン電力モードのメモリ・モジュール350が示されている。この例でも、各キャッシュ・ラインのキャッシュ元であるメモリ・モジュールのメモリ・アクセス待ち時間を考慮に入れる置き換え方法を用いることにより、上述した例と同様にキャッシュ性能を向上させうることが期待できる。
さらに別の例は所定のセットの各ラインの状況変更に関係するものである。変更されたラインを置き換えるために、(現在の高性能キャッシュでは普通である)ストアイン型のキャッシュではまず、当該ラインをメモリにライトバックする必要がある(ライトバックは通常、変更されたラインをライトバック・バッファに移動することにより行うから、ライトバックは実際には非同期に行われる)。しかし、クリーンな(すなわち非変更の)ラインはライトバックなしに置き換えうる。したがって、変更されたラインの置き換えはクリーンなラインの置き換えに比べて余分な時間を必要とする。それゆえ、この情報を考慮に入れた置き換え方法を用いれは、この情報を使用することによりキャッシュの性能を向上させうる。
上の議論が示しているように、セット・アソシアティブ型キャッシュのキャッシュ性能を向上させるには、予め定めた固定した方法(たとえばキャッシュ・コントローラ中のハードウェア論理回路として実装されたLRU置き換え方法)を用いるのではなく、所定のセットの各ラインを置き換える際に予期されるペナルティを考慮に入れた置き換え方法を用いればよい。しかし、設計時には予期されるペナルティがどのようなものになるかを予見することは不可能である。ただし、ある場合には、所定のコンピュータ・システム構成(たとえば、NUMAシステムにおけるリモート・メモリの対照物としてのローカル・メモリ、使用中のDRAMメモリの詳細、相互接続ネットワークの速度、その他多数の構成上の詳細)におけるメモリ・アクセス待ち時間の変動を予見することができるが、これらの変動は負荷その他の要因によって変化する可能性がある(たとえば、NUMAシステム用の相互接続ネットワークにはコンテンション依存性がある)。また、所定のセットの各キャッシュ・ラインに対する再参照の確率は一般に予見できない。なぜなら、これは負荷に対する依存度がきわめて高いからである。したがって、本発明の目的はキャッシュ・コントローラの置き換え論理回路を当該キャッシュ・コントローラの速度に影響を与えることなく動的に再構成することのできる機構を提供することである。
まず、キャッシュ置き換え制御アレイ(Cache Replacement Control Array 、以下CRCAと呼ぶ)の内容を数例示すことにより、本発明を説明する。CRCAはキャッシュ・コントローラ中のアレイであり、システム・ソフトウェアによって書き換え可能であり、キャッシュ・コントローラが用いる置き換え方法を制御するものである。したがって、キャッシュ・コントローラが用いる置き換え方法はCRCAに新たな値を書き込むことにより、再構成することができる。上述したように、キャッシュ・コントローラ設計の現在の実務はハードウェア論理回路で実装した予め定め固定した置き換え選択方法を用いるものであるから、置き換え選択方法を制御するCRCAは本発明が提示する相違点の1つである。高レベルでのCRCAの使用方法を図4に示す。キャッシュ・コントローラ論理回路410はキャッシュ・ディレクトリ420とCRCA420を用いて、所定のセットにマップすべきキャッシュ・ミスが発生したときに当該セット中のどのキャッシュ・ラインを置き換えるべきかを決める。CRCAの形式と内容は一般にキャッシュ・コントローラを設計する際に対象としたシステムの型(たとえばNUMAシステム、規模変更可能なNUMAシステム、非圧縮メモリ領域を備えた圧縮メモリ・システム、様々なアクティブ電力モードと低電力モードのメモリ・モジュールを備えたコンピュータ・システムなど)によって決まる。以下、4ノードのNUMAシステムの観点から数例を説明する(上述した一般的な複数ノードの場合を示す図1を用いて説明する)。キャッシュ140、150、・・・、160は4ウエイ・セット・アソシアティブである。これらの例では、CRCAの内容は4ノードのNUMAシステムのノード0用のものを示す。システムの他のノードの内容もこの内容と同じものに変更することができる。これらの例では、メモリ・アクセス待ち時間はシステムの各ノードごとに変化しうる、すなわちノード0からそのローカル・メモリ、そしてノード1、2、3のリモート・メモリへのメモリ参照に対して4つの大幅に異なる予期メモリ・アクセス待ち時間が存在しうる、とも仮定する(以下では大幅に規模を変更しうるNUMAシステムをサポートする変更例を説明する)。また、所定のセット中の4つのキャッシュ・ラインの各々のLRU位置は(LRU置き換えを用いた現行のキャッシュで普通のように)キャッシュ・コントローラによって保持されるとともにキャッシュ・ディレクトリに記録される。これらの仮定の下に、キャッシュ中の各ラインは(置き換え選択の目的で問題になる)可能な16通りの状態のうちの1つを取ることができる。すなわち、4つのLRU位置(たとえば0、1、2、3〔ただし0はMRUライン、1は第2のMRUライン、2は第2のLRUライン、3はLRUラインである〕)と、キャッシュ・ラインの読み取り元である4つの可能なノード(ノード0、1、2、3)とがある。
一般に、CRCAは置き換え選択用に定義した一群の状態のうち、キャッシュ・ラインがとることのできるすべての状態用のエントリを1つ備えている。これらの状態をCRCA中で並べることにより、置き換えるべきキャッシュラインを選択する。具体的には、4ウエイ・セット・アソシアティブ・キャッシュを備えた4ノードのNUMAシステムでは、CRCAは所定の順番に並べた16個のエントリを備えることになる。CRCAの各エントリはこの例では0〜15のインデックスを備えている。置き換えるべきキャッシュ・ラインは次のように選択する。まず、キャッシュ・ミスをマップするセットの4つのキャッシュ・ラインの各々について、本発明ではラインの(LRU位置、ノード)状態を見つける。次いで、これら4つの状態(各キャッシュ・ラインはLRU位置が異なるから、これらの4つの状態は必然的に異なる)の各々について、本発明ではCRCA中の状態のインデックスを見つける。次いで、本発明ではCRCA中でインデックスが最も大きい状態を有するキャッシュ・ラインを置き換えるべきものとてして選択する。
たとえば、4ウエイ・セット・アソシアティブ・キャッシュを備えた4ノードのNUMAシステムの場合、CRCAは次のように書き込む。厳格なLRU置き換えを実装するこのCRCAを図5に示す。これは次に示すように厳格なLRU置き換えを実装している。すなわち、LRU位置0(すなわちMRUライン)の4つの状態のCRCAインデックスは最も小さい(0〜3)。LRU位置1(すなわち第2のMRUライン)の4つの状態のCRCAインデックスはその次に位置する(4〜7)。LRU位置2(すなわち第2のLRUライン)の4つの状態のCRCAインデックスはその次に位置する(8〜11)。LRU位置3(すなわちLRUライン)の4つの状態のCRCAインデックスは最も大きい(12〜15)。
別の例は4ノードのNUMAシステムにおいてローカル・ノードとリモート・ノードとの間でメモリ・アクセスがきわめて不均一な場合である。この場合、リモート・ラインではなくローカル・ラインを選択して置き換えるのが常に有利である。その際、セット中にLRUローカル・ラインが複数個あればLRUローカル・ラインを用いる。この例では、リモート・ノードについてはメモリ・アクセスがほぼ均一であるから、セット中にローカル・ラインがなければ(すなわちセット中のラインがすべてリモート・ラインなら)、LRUラインを選択するものと仮定する。この置き換え方法を実装したCRCAを図6に示す(上述したように、このCRCAはノード0〔すなわちローカル・ノード〕用に示されている)。このCRCAが上述した置き換え方法を実装していることを確認するために、まず留意すべき点を挙げると、注目するラインがローカル・ラインである状態(すなわちノード0の状態)のCRCAインデックスは最も大きい(12〜15)。したがって、もしこのようなラインが1つでもあれば、これらの状態のうちの1つにあるキャッシュ・ラインを置き換え用に選択する。さらに留意すべき点を挙げると、これら4つの状態はLRU位置によって順序付けられているから、複数のローカル・ラインがあるならば、置き換え用にLRUラインを選択する。セット中にローカル・ラインがない場合、すべてのラインはインデックスが0〜11のCRCA状態のうちの1つにある。留意点を挙げると、これらはLRU位置によって順序付けられている。すなわち、まずLRU位置が0の状態があり(インデックス0、1、2)、次いでLRU位置が1の状態があり(インデックス3、4、5)、・・・。したがって、セット中のラインがすべてリモート・ラインである場合には、置き換え用にLRUラインを選択する。
次に、特定の置き換え規則の実装を説明する別の例を説明する。(4ノードのNUMAシステムにおける)このような置き換え規則は次に示すようなものである。すなわち、常にLRUラインを置き換える。ただし、LRUラインがリモート・ラインであり、第2のLRUラインがローカル・ラインである場合はこの限りではなく、そのような場合には第2のLRUラインを置き換える。この置き換え規則を実装したCRCAを図7に示す。留意点を挙げると、CRCAインデックスが14、15でLRU位置が2または3のローカル・ラインがセット中に存在する場合には、まずそれを置き換え用に選択する。そうでない場合には、置き換え選択はLRUの順番(CRCAアレイ・インデックス0〜13)に従う。このように、図7のCRCAには上述した規則が実装されている。
別の例は4ノードのNUMAシステムにおいてノード0からのメモリ・アクセス時間がきわめて不均一な場合である。すなわち、ノード3のリモート・メモリに対する待ち時間がきわめて長く、ノード2のリモート・メモリに対する待ち時間が長く、ノード1のリモート・メモリに対する待ち時間が中くらいであり、ローカル・メモリに対する待ち時間が短い。このような場合、キャッシュ置き換えをノード番号によって厳格に優先順位付けするのが望ましい。すなわち、ノード0に由来するラインの置き換え優先順位が最も高く、ノード1に由来するラインの置き換え優先順位がその次に高く、ノード2に由来するラインの置き換え優先順位がその次に高く、最後にノード3に由来するラインの置き換え優先順位が最も低い。そして、同じノードに由来するライン群からLRUを用いて1つのラインを選択する。この置き換え方法を実装したCRCAを図8に示す。図8では、CRCAインデックス12〜15を有するノード0に由来するラインの置き換え優先順位が最も高く、CRCAインデックス8〜11を有するノード1に由来するラインの置き換え優先順位がその次に高く、・・・。同じノードに由来するライン群はLRU位置によって順序付けられている。
予期される置き換えペナルティを最小にするようにCRCAの内容を計算しうる方法の例を以下に示す。この計算は次に示すキャッシュ・アクセスの統計を集めることに基づいている。この例のために次のように仮定する。すなわち、キャッシュ・コントローラはLRU位置0、1、2、3にあるキャッシュ・ヒットのカウント値(たとえばC[0]、C[1]、C[2]、C[3])、各ノードに対するミスに起因するメモリ参照に要した合計メモリ・アクセス・サイクルのカウント値(たとえばT[0]、T[1]、T[2]、T[3])、および各ノードに対する(ミスに起因する)メモリ参照のカウント値(たとえばR[0]、R[1]、R[2]R[3])を収集するように構成されているものと仮定する。留意点を挙げると、現在のキャッシュ・コントローラはこのように詳細な性能評価機構を備えていないが、進歩した性能評価機構を備えるのがキャッシュ・コントローラの設計における現在の傾向である。これらのカウンタを備えた場合、LRU位置pにあるノードnに由来するラインを置き換えるペナルティはC[p]×(T[n]/R[n])に比例するもと見積もることができる。留意点を挙げると、参照の局所性がノード間で変動しうるものと見込まれる場合には、カウンタC[p,n]のアレイを保持することができる。ただし、C[p,n]はノードnに由来するLRU位置pにあるラインに対するヒットのカウント値である。置き換えペナルティはC[p,n]×(T[n]/R[n])に比例するものと見込むことができる。(しかしながら、この手法はキャッシュ・コントローラ中により多くのカウンタを必要とする。)置き換えペナルティを見積もるこれらの方法は次に示す米国特許に記載されている置き換えペナルティの見積もり方法と類似のものである。たとえば、ボズマン(Bozman)、ロビンソン(Robinson)、およびテツラフ(Tetzlaff)の「オブジェクト置き換えペナルティおよび参照確率に基づくオブジェクト格納の管理(Managing an Object Store based on Object Replacement and Reference Probabilities)」なる名称の米国特許第6385699号(2002年5月7日)(ここに記載されている手法はより一般的なものであり、キャッシュ・コントローラ・ハードウェアにとって適切な制約がないけれども、他の多くの基本的な相違点にもかかわらず、サイズが変動するオブジェクトを備えたソフトウェア制御のキャッシュに適用することができる)など。いずれにしろ、第2の手法として各(ノード、LRU位置)ペアについてC[p]×(T[n]/R[n])またはC[p,n]×(T[n]/R[n])が計算してあると、置き換えペナルティが小さくなる順に状態をソートすることにより、予期される置き換えペナルティを最小にするCRCAを計算することができる。このシナリオでは、システム・ソフトウェアが周期的に上述したカウンタを読み取り、予期される置き換えペナルティを最小にするCRCAを計算し、そのCRCAを書き込み、カウンタをリセットする。あるいは、このように詳細なキャッシュ・コントローラの性能評価機構を備えていない場合には、所定の負荷のオフライン解析によってCRCAを計算する。その際、たとえばシステムの性能モデルの追跡駆動シミュレーションまたは実行駆動シミュレーションを用いる。
以上、CRCAの内容例、および予期される置き換えペナルティを最小にするCRCAを性能統計を用いて、または性能統計がない場合にはオフライン解析によって計算する例を示した。次に、キャッシュ・コントローラの置き換え論理回路におけるCRCAの動作を詳細に説明する。内容アドレス可能メモリ(content addressable memory: CAM、連想メモリとも呼ばれる) はCAMのメモリ内容を保持するレジスタ・アレイと、CAM入力とCAMに格納されているすべての値とを同時に比較することのできる比較器のアレイとから構成されている。比較器のアレイを拡張することにより、複数のCAM入力とCAMに格納されているすべての値とを同時に比較しうるようにすることができる。N個のCAM入力があるCAMをNポートCAMと呼ぶ。留意点を挙げると、NポートでサイズがM(すなわちM個の値を保持している)CAMはM×N個の比較器を必要とするとともにM×N個の出力を備えている。このような出力は各々、「真(compares equal)」または「偽(compares not equal)」である。図9は4ウエイ・セット・アソシアティブ・キャッシュおよび図5〜図8に示したCRCA形式を備えた4ノードのNUMAシステムにおいて置き換えるべきラインを選択するキャッシュ・コントローラのハードウェア論理回路の概観を示す図である。各CRCAエントリは(ノード、LRU位置)ペアから成り、この例の文脈では4ビット(ノード番号用に2ビット、LRU位置用に2ビット)を必要とする。キャッシュ・ディレクトリ610を用いて、キャッシュ・コントローラ620はミスがマップされたセット中のラインの4つの状態(ノード、LRU位置)を見つける。これらの4つの状態は4つのCAM入力として4ポートで16×4ビットのCAM630に転送される(すなわち、CAMメモリは16個の4ビット値を格納しているとともに4個の4ビット入力と4群の16個×1ビット出力を備えている)。書き込み可能なCRCAはCAM630のレジスタ・アレイの内容CRCA[0]〜CRCA[15]として実装されている。CAM出力の結果は4×16=64個のCAM出力のうちの正確に4つの「真(compares equal)」信号として現れる(なぜなら、各ラインは必然的に厳格に異なる状態をとるからである)。符号化論理回路640は「真(compares equal)」である最も大きなCAM出力を選択し、それをこの出力を生成したCAM入力に対応する0〜3の値として符号化する。最後に、この値をセット中のキャッシュ・ラインへのインデックスとして使用して、置き換えるべきキャッシュ・ラインを選択する。
図10は図9の符号化論理コンポーネント640の実装例を示す図である。16個の「OR」ゲート710によって4つのCAM出力から成る連続群から16個の状態信号 state[i ](0≦i≦15)を求める。インデックスが最も大きい「真」状態信号を見つけ、そのインデックスを16ライン・ツー・4ライン・バイナリー優先度符号化器720によって4ビットのバイナリー番号 state_num [0:3 ]に符号化する。16個の4ライン・ツー・2ライン・バイナリー符号化器730によって4つのCAM出力から成る連続群から16個の2ビット・キャッシュ・ライン番号line_num [i,j ](0≦i ≦15;j=0,1) を生成する。最後に、2個の16ライン・ツー・1ライン・マルチプレクサ740によって符号化論理回路の2ビット・ライン・インデックス出力を生成する。その結果、4ビットの状態番号 state_num [0:3 ]は適切な高次および低次のライン番号ビット(line_num [i,0 ]とline_num [i,1 ])を選択している。
別の等価のハードウェア実装は当業者が自然に想到しうる。特に、図9と図10に示した構成において、CRCAインデックス0、1、2に対応する状態のラインは置き換え用に決して選択できないということに気付けば、(専用論理構成を用いることにより)ゲート数を顕著に減らすことができる。その理由は単に、対応するCRCAインデックスが最も大きなラインが選択されるからであり、4つのラインが存在するから、このインデックスは3以上に違いないからである。すなわち、CAM630から始めて、CRCA[0]、CRCA[1]、およびCRCA[2]を保持するレジスタは除去することができる。そして、これらのレジスタの値に依存する引き続くすべての論理回路も除去することができる。結果として得られる最適化した構成は図示した構成ほど概念的に明確ではないが、置き換え選択の観点からは論理的に等価なものである。この特定の場合、この最適化によって、ゲート数を約13/16すなわち約80%減らすことができる。
以上、4ウエイ・セット・アソシアティブ・キャッシュを備えた4ノードのNUMAシステムのCRCAの使用方法を詳細に説明したが、以下に示すように上述した例は様々に一般化することができる。最初の例として、NUMAシステムのスケーラビリティをより容易にサポートするために、CRCA中にすべての(ノード、LRU位置)ペア用のエントリを保持する代わりに、これらのエントリの「ノード」コンポーネントがローカルまたはリモートに対応する2つの値だけをとるようにすることができる。すなわち、この例では、リモート・ノードをすべて一括して扱う。そして、様々なノードの各々が使用するCRCAはシステム中のノード数と無関係に、(4ウエイ・セット・アソシアティブ・キャッシュの場合には)8つのエントリをとる。
スケーラビリティをサポートするもう少し複雑な第2の例を挙げると、NUMAノードは(1)ローカル、(2)短待ち時間リモート、(3)中待ち時間リモート、および(4)長待ち時間リモートに分類することができる。システム・ソフトウェアはたとえばハードウェア・タイマーT[n]と上述した参照カウンタR[n]を用いてすべてのリモート・ノードを(所定の任意のローカル・ノードに対して)上述したリモート・ノード・クラスのうちの1つに分類する。また、各キャッシュ・コントローラは長さがシステム中のノード数と等しい(ソフトウェアが書かれた)アレイLを備えている。各アレイL[i]はノードiがローカル・ノードであるかこれら4つのクラスのうちの1つに属すリモート・ノードであるかに応じて4つの値をとる。最後に、CRCAのエントリは(クラス、LRU位置)という形をしている。「クラス」は上に列挙したノードの4つのクラスに対応する4つの値をとる。この例では、すべてのリモート・ノードは3つのクラスに分類される。そして、様々なノードの各々が使用するCRCAにはシステム中のノード数と無関係に(4ウエイ・セット・アソシアティブ・キャッシュの場合)16個のエントリがある。
最後に、関連技術の上述した説明中で例を用いて述べたように、メモリ・アクセスが不均一な場合はNUMAシステム以外にもある。たとえば、非圧縮メモリ領域を備えた圧縮メモリ・システム、電力消費を低減するために一部のメモリ・モジュールを様々な低電力モードで動作させているシステムなどがある。別の例としては、置き換えペナルティがキャッシュ・ラインのクリーン状態または変更状態に既存するシステムが挙げられる。これらの型のシステムの予期される置き換えペナルティを最小にする、キャッシュ置き換え選択方法をサポートするCRCAの使用方法は、NUMAシステムのCRCAの使用方法と直截に類似している。なぜなら、これらすべてのシステムと例におけるメモリ・アクセス時間の不均一性は書き換え可能なCRCAの使用を望ましいものにしているこれらシステムと例の共通の特性だからである。
以上、本発明を好適な実施形態の観点から説明したが、当業者が理解しうるように、本発明は特許請求の範囲の本旨と範囲のうちで変更して実施することができる。
まとめとして以下の事項を開示する。
(1)
セット・アソシアティブ・キャッシュ・メモリ、キャッシュ・メモリ・コントローラ、書き込み可能なキャッシュ置き換え制御アレイを備えたコンピュータ・システムを使用する方法であって、
キャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを前記キャッシュ・メモリ・コントローラにより、かつ前記書き込み可能なキャッシュ置き換え制御アレイを制御することにより選択するステップと、
各キャッシュ・ラインを所定の状態群のうちの正確な1つに常に維持し、前記キャッシュ・メモリ中の各セット内で常に前記セットの各キャッシュ・ラインが前記セットの他のキャッシュ・ライン群の各々の状態と異なる、前記所定の状態群中の1つの状態にあるようにするステップと、
前記キャッシュ置き換え制御アレイが前記所定の状態群中の状態の各々に対応するエントリを備えるようにするステップと
を備え、
前記選択するステップが、
前記キャッシュ・メモリの各セット内で、前記セットの各キャッシュ・ラインの、前記所定の状態群中の状態に対応する、前記キャッシュ置き換え制御アレイ中の位置を求めるこにより置き換え用のキャッシュ・ラインを選択するステップと、
前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い、前記キャッシュ置き換え制御アレイ中に定められている位置の中で最も高い置き換え優先度に対応する状態を有するキャッシュ・ラインを置き換え用に選択するステップと
を備えている
方法。
(2)
セット・アソシアティブ・キャッシュ・メモリと、
前記セット・アソシアティブ・キャッシュ・メモリに動作可能に接続されたキャッシュ・メモリ・コントローラと、
前記キャッシュ・メモリ・コントローラに動作可能に接続された書き込み可能なキャッシュ置き換え制御アレイと
を備え、
前記書き込み可能なキャッシュ置き換え制御アレイが前記キャッシュ置き換え制御アレイ中のエントリ数とセット・アソシアティブ度数との積のオーダーの個数の比較器のアレイを備え、
前記比較器のアレイはキャッシュ・セット中の各ラインの状態と前記キャッシュ置き換え制御アレイ中のすべてのエントリとの並行比較を可能にするように構成されており、前記並行比較の結果は比較結果が一致する個数であり、
前記書き込み可能なキャッシュ置き換え制御アレイが、前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い最も高い置き換え優先度を有する、前記キャッシュ置き換え制御アレイ中のエントリと比較して一致するキャッシュ・ラインを探し出すことにより前記キャッシュ・セット中の置き換えるべきキャッシュ・ラインを選択するよにう適合している
コンピュータ・システム。
(3)
セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法であって、
書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立するステップであって、前記指針は前記書き込み可能なキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更しうる、ステップと、
前記順位付け指針に従って異なるキャッシュ・ラインの状態を順位付けるステップと、
キャッシュ・ミスが発生したら、前記順位のうち最も順位の高いキャッシュ・ラインを置き換えるステップと
を備えた
方法。
(4)
前記順位はリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けている、
上記(3)に記載の方法。
(5)
前記順位はローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けている、
上記(3)に記載の方法。
(6)
前記順位は待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けている、
上記(3)に記載の方法。
(7)
前記順位はノード待ち時間に基づいてノード・ラインを順位付けるとともに、LRU法に従って各ノード内のメモリ・ラインを順位付けている、
上記(3)に記載の方法。
(8)
前記順位は各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従って前記コンピュータ・システム内のノードを順位付けている、
上記(3)に記載の方法。
(9) さらに、
前記セット・アソシアティブ・キャッシュ・メモリから
圧縮メインメモリ
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも1つを備えた不均一メインメモリ
に書き込むステップ
を備えた、
上記(3)に記載の方法。
(10)
セット・アソシアティブ・キャッシュ・メモリと、
書き込み可能な置き換え制御アレイを備えたキャッシュ・メモリ・コントローラと
を備え、
置き換え用のキャッシュ・ラインを順序付けるのに使用する指針を前記書き込み可能な置き換え制御アレイに様々なデータを書き込むことにより動的に変更する
コンピュータ・システム。
(11)
前記置き換え制御アレイが前記キャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている、
上記(10)に記載のコンピュータ・システム。
(12)
前記指針がリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付ける、
上記(10)に記載のコンピュータ・システム。
(13)
前記指針がローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付ける、
上記(10)に記載のコンピュータ・システム。
(14)
前記指針が待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付ける、
上記(10)に記載のコンピュータ・システム。
(15)
前記指針がノード待ち時間に基づいてノードを順位付けるとともに、各ノード内のメモリ・ラインをLRU法に従って順位付ける、
上記(10)に記載のコンピュータ・システム。
(16)
前記指針が前記コンピュータ・システム内のノードを各ノードのヒットおよびミスの回数、ならびに各ノードのメモリ参照の回数に従って順位付けている、
上記(10)に記載のコンピュータ・システム。
(17) さらに、
前記セット・アソシアティブ・キャッシュ・メモリに接続され、
圧縮メインメモリ、
非圧縮メインメモリ、および
他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
のうちの少なくとも1つを備えた不均一メインメモリ
を備えた、
上記(10)に記載のコンピュータ・システム。
多ノード型NUMAシステムの一例を示す図である。 非圧縮メモリ領域を備えた圧縮メモリ・システムを示す図である。 様々なアクセス待ち時間を有し様々なアクティブまたは低電力モードにあるメインメモリを備えたシステムの一例を示す図である。 キャッシュ・ディレクトリおよびCRCAを備えたキャッシュ・コントローラを示す図である。 (4ノードのNUMAの例で)厳格LRU置き換え用のCRCAを示す図である。 (4ノードのNUMAの例で)ローカル・ライン優先置き換え用のCRCAを示す図である。 (4ノードのNUMAの例で)LRUライン/第2のLRUライン置き換え規則用のCRCAを示す図である。 (4ノードのNUMAの例で)ノードによる優先順位置き換え用のCRCAを示す図である。 (4ノードのNUMAの例で)CRCAを用いて置き換えるべきラインを選択するための制御論理回路を示す図である。 (4ノードのNUMAの例で)符号化論理回路を示す図である。
符号の説明
110 プロセッサ
120 プロセッサ
130 プロセッサ
140 キャッシュ
150 キャッシュ
160 キャッシュ
170 メモリ
180 メモリ
190 メモリ
195 相互接続ネットワーク
210 レベル1(L1)キャッシュとレベル2(L2)キャッシュ
220 レベル1(L1)キャッシュとレベル2(L2)キャッシュ
230 L3キャッシュ
240 圧縮器
250 復元器
260 メインメモリ
270 非圧縮メモリ
310 プロセッサ
320 キャッシュ
330 アクティブ・メモリ
340 スタンバイ・メモリ
350 パワーダウン・メモリ
410 キャッシュ・コントローラ置き換え選択論理回路
420 キャッシュ・メモリ
430 キャッシュ置き換え制御アレイ(CRCA)
610 キャッシュ・ディレクトリ
620 キャッシュ・コントローラ論理回路
630 内容アドレス可能メモリ(CAM)
640 符号化論理回路
710 ORゲート
720 16ライン・ツー・4ライン・バイナリー優先度符号化器
730 4ライン・ツー・2ライン・バイナリー符号化器
740 16ライン・ツー・1ライン・マルチプレクサ

Claims (17)

  1. セット・アソシアティブ・キャッシュ・メモリ、キャッシュ・メモリ・コントローラ、書き込み可能なキャッシュ置き換え制御アレイを備えたコンピュータ・システムを使用する方法であって、
    キャッシュ・ミスを処理するために置き換えるべきキャッシュ・ラインを前記キャッシュ・メモリ・コントローラにより、かつ前記書き込み可能なキャッシュ置き換え制御アレイを制御することにより選択するステップと、
    各キャッシュ・ラインを所定の状態群のうちの正確な1つに常に維持し、前記キャッシュ・メモリ中の各セット内で常に前記セットの各キャッシュ・ラインが前記セットの他のキャッシュ・ライン群の各々の状態と異なる、前記所定の状態群中の1つの状態にあるようにするステップと、
    前記キャッシュ置き換え制御アレイが前記所定の状態群中の状態の各々に対応するエントリを備えるようにするステップと
    を備え、
    前記選択するステップが、
    前記キャッシュ・メモリの各セット内で、前記セットの各キャッシュ・ラインの、前記所定の状態群中の状態に対応する、前記キャッシュ置き換え制御アレイ中の位置を求めるこにより置き換え用のキャッシュ・ラインを選択するステップと、
    前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い、前記キャッシュ置き換え制御アレイ中に定められている位置の中で最も高い置き換え優先度に対応する状態を有するキャッシュ・ラインを置き換え用に選択するステップと
    を備えている
    方法。
  2. セット・アソシアティブ・キャッシュ・メモリと、
    前記セット・アソシアティブ・キャッシュ・メモリに動作可能に接続されたキャッシュ・メモリ・コントローラと、
    前記キャッシュ・メモリ・コントローラに動作可能に接続された書き込み可能なキャッシュ置き換え制御アレイと
    を備え、
    前記書き込み可能なキャッシュ置き換え制御アレイが前記キャッシュ置き換え制御アレイ中のエントリ数とセット・アソシアティブ度数との積のオーダーの個数の比較器のアレイを備え、
    前記比較器のアレイはキャッシュ・セット中の各ラインの状態と前記キャッシュ置き換え制御アレイ中のすべてのエントリとの並行比較を可能にするように構成されており、前記並行比較の結果は比較結果が一致する個数であり、
    前記書き込み可能なキャッシュ置き換え制御アレイが、前記キャッシュ置き換え制御アレイ中の置き換え優先度位置の所定の順序に従い最も高い置き換え優先度を有する、前記キャッシュ置き換え制御アレイ中のエントリと比較して一致するキャッシュ・ラインを探し出すことにより前記キャッシュ・セット中の置き換えるべきキャッシュ・ラインを選択するよにう適合している
    コンピュータ・システム。
  3. セット・アソシアティブ・キャッシュ・メモリを備えたコンピュータ・システムにおいてキャッシュ・ラインを置き換える方法であって、
    書き込み可能なキャッシュ置き換え制御アレイを用いて順位付け指針を確立するステップであって、前記指針は前記書き込み可能なキャッシュ置き換え制御アレイにデータを書き込むことにより動的に変更しうる、ステップと、
    前記順位付け指針に従って異なるキャッシュ・ラインの状態を順位付けるステップと、
    キャッシュ・ミスが発生したら、前記順位のうち最も順位の高いキャッシュ・ラインを置き換えるステップと
    を備えた
    方法。
  4. 前記順位はリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付けている、
    請求項3に記載の方法。
  5. 前記順位はローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付けている、
    請求項3に記載の方法。
  6. 前記順位は待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付けている、
    請求項3に記載の方法。
  7. 前記順位はノード待ち時間に基づいてノード・ラインを順位付けるとともに、LRU法に従って各ノード内のメモリ・ラインを順位付けている、
    請求項3に記載の方法。
  8. 前記順位は各ノードのヒットおよびミスの回数ならびに各ノードのメモリ参照の回数に従って前記コンピュータ・システム内のノードを順位付けている、
    請求項3に記載の方法。
  9. さらに、
    前記セット・アソシアティブ・キャッシュ・メモリから
    圧縮メインメモリ
    非圧縮メインメモリ、および
    他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
    のうちの少なくとも1つを備えた不均一メインメモリ
    に書き込むステップ
    を備えた、
    請求項3に記載の方法。
  10. セット・アソシアティブ・キャッシュ・メモリと、
    書き込み可能な置き換え制御アレイを備えたキャッシュ・メモリ・コントローラと
    を備え、
    置き換え用のキャッシュ・ラインを順序付けるのに使用する指針を前記書き込み可能な置き換え制御アレイに様々なデータを書き込むことにより動的に変更する
    コンピュータ・システム。
  11. 前記置き換え制御アレイが前記キャッシュ・ラインの各々を一意に順位付けるのに十分なほど大量の比較器を複数個備えている、
    請求項10に記載のコンピュータ・システム。
  12. 前記指針がリモート・ノード・ラインよりもローカル・ノード・ラインを上位に順位付ける、
    請求項10に記載のコンピュータ・システム。
  13. 前記指針がローカル・ノード・ラインよりもリモート・ノード・ラインを上位に順位付ける、
    請求項10に記載のコンピュータ・システム。
  14. 前記指針が待ち時間の長いノード・ラインよりも待ち時間の短いノード・ラインを上位に順位付ける、
    請求項10に記載のコンピュータ・システム。
  15. 前記指針がノード待ち時間に基づいてノードを順位付けるとともに、各ノード内のメモリ・ラインをLRU法に従って順位付ける、
    請求項10に記載のコンピュータ・システム。
  16. 前記指針が前記コンピュータ・システム内のノードを各ノードのヒットおよびミスの回数、ならびに各ノードのメモリ参照の回数に従って順位付けている、
    請求項10に記載のコンピュータ・システム。
  17. さらに、
    前記セット・アソシアティブ・キャッシュ・メモリに接続され、
    圧縮メインメモリ、
    非圧縮メインメモリ、および
    他のメインメモリ部よりも低電力レベルで動作している低電力モードのメインメモリ
    のうちの少なくとも1つを備えた不均一メインメモリ
    を備えた、
    請求項10に記載のコンピュータ・システム。
JP2003325290A 2002-10-16 2003-09-17 キャッシュ・コントローラ Expired - Fee Related JP3871331B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/272,032 US6961821B2 (en) 2002-10-16 2002-10-16 Reconfigurable cache controller for nonuniform memory access computer systems

Publications (2)

Publication Number Publication Date
JP2004164606A true JP2004164606A (ja) 2004-06-10
JP3871331B2 JP3871331B2 (ja) 2007-01-24

Family

ID=32092559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003325290A Expired - Fee Related JP3871331B2 (ja) 2002-10-16 2003-09-17 キャッシュ・コントローラ

Country Status (5)

Country Link
US (1) US6961821B2 (ja)
JP (1) JP3871331B2 (ja)
KR (1) KR100514677B1 (ja)
CN (1) CN1287297C (ja)
TW (1) TWI238935B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008503922A (ja) * 2004-06-16 2008-02-07 エヌイーシー ラボラトリーズ アメリカ インク 組込みシステムのためのメモリ圧縮アーキテクチャ
JP2008181399A (ja) * 2007-01-25 2008-08-07 Megachips Lsi Solutions Inc メモリコントローラ
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
JP2012506093A (ja) * 2008-10-15 2012-03-08 マイクロン テクノロジー, インク. ソリッドステート記憶装置内のホットメモリブロックテーブル
JP2013174997A (ja) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp キャッシュ制御装置、及びキャッシュ制御方法
JP2017134817A (ja) * 2015-11-13 2017-08-03 エイチジーエスティーネザーランドビーブイ 分散キャッシュメモリにおける適応分割用のシステム及び方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246102B2 (en) * 2001-12-21 2007-07-17 Agere Systems Inc. Method of improving the lookup performance of three-type knowledge base searches
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US7464246B2 (en) * 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
US7287122B2 (en) * 2004-10-07 2007-10-23 International Business Machines Corporation Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US20060179231A1 (en) * 2005-02-07 2006-08-10 Advanced Micron Devices, Inc. System having cache memory and method of accessing
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
JP4368320B2 (ja) * 2005-03-16 2009-11-18 富士通株式会社 情報処理システム,パイプライン処理装置,ビジー判定プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US7218566B1 (en) * 2005-04-28 2007-05-15 Network Applicance, Inc. Power management of memory via wake/sleep cycles
US7991959B2 (en) * 2005-05-16 2011-08-02 Texas Instruments Incorporated Visualizing contents and states of hierarchical storage systems
US8606998B2 (en) * 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
JP2008090395A (ja) * 2006-09-29 2008-04-17 Hitachi Ltd 計算機システム、演算用ノード及びプログラム
WO2008043670A1 (en) * 2006-10-10 2008-04-17 International Business Machines Corporation Managing cache data
US7711678B2 (en) * 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
CN100464290C (zh) * 2007-09-10 2009-02-25 杭州华三通信技术有限公司 缓存管理系统
US7984240B2 (en) * 2008-03-04 2011-07-19 International Business Machines Corporation Memory compression implementation in a system with directly attached processor memory
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US8037251B2 (en) 2008-03-04 2011-10-11 International Business Machines Corporation Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory
US7930483B2 (en) * 2008-03-04 2011-04-19 International Business Machines Corporation Associativity implementation in a system with directly attached processor memory
CN101620588B (zh) * 2008-07-03 2011-01-19 中国人民解放军信息工程大学 高效能计算机中可重构部件的一种连接与管理方法
US8527726B2 (en) 2008-11-13 2013-09-03 International Business Machines Corporation Tiled storage array with systolic move-to-front reorganization
US8543768B2 (en) 2008-11-13 2013-09-24 International Business Machines Corporation Memory system including a spiral cache
US8868838B1 (en) 2008-11-21 2014-10-21 Nvidia Corporation Multi-class data cache policies
US8103894B2 (en) * 2009-04-24 2012-01-24 International Business Machines Corporation Power conservation in vertically-striped NUCA caches
US8068373B1 (en) 2010-10-25 2011-11-29 Network Appliance, Inc. Power management of memory via wake/sleep cycles
US8738962B2 (en) 2010-11-17 2014-05-27 International Business Machines Corporation Memory mirroring with memory compression
US8495267B2 (en) 2010-11-24 2013-07-23 International Business Machines Corporation Managing shared computer memory using multiple interrupts
US10019381B2 (en) * 2012-05-01 2018-07-10 Nvidia Corporation Cache control to reduce transaction roll back
EP2680152B1 (en) * 2012-06-27 2017-05-03 Alcatel Lucent Process for managing the storage of a list of N items in a memory cache of C items of a cache system
US10031802B2 (en) * 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
US9875185B2 (en) 2014-07-09 2018-01-23 Intel Corporation Memory sequencing with coherent and non-coherent sub-systems
US9767042B2 (en) * 2015-02-25 2017-09-19 Intel Corporation Enhancing cache performance by utilizing scrubbed state indicators associated with cache entries
CN104932990B (zh) * 2015-06-03 2018-05-11 华为技术有限公司 一种高速缓冲存储器中数据块的替换方法和装置
US10521432B2 (en) * 2016-11-10 2019-12-31 Sap Se Efficient execution of data stream processing systems on multi-core processors
CN110879797B (zh) * 2019-10-31 2021-09-07 西安交通大学 高速可重构处理器配置信息缓存替换方法及存储体系结构
EP3876104B1 (en) * 2020-03-03 2023-08-02 Technische Universität München Method for evicting data from memory
CN114564882A (zh) * 2022-01-29 2022-05-31 内蒙古工业大学 基于离散事件的边缘深度学习模拟器的构建与应用

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6317778B1 (en) * 1998-11-23 2001-11-13 International Business Machines Corporation System and method for replacement and duplication of objects in a cache
US6633891B1 (en) * 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6360298B1 (en) * 2000-02-10 2002-03-19 Kabushiki Kaisha Toshiba Load/store instruction control circuit of microprocessor and load/store instruction control method
US6738865B1 (en) * 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008503922A (ja) * 2004-06-16 2008-02-07 エヌイーシー ラボラトリーズ アメリカ インク 組込みシステムのためのメモリ圧縮アーキテクチャ
JP2008181399A (ja) * 2007-01-25 2008-08-07 Megachips Lsi Solutions Inc メモリコントローラ
US8375169B2 (en) 2007-01-25 2013-02-12 Megachips Corporation Memory controller
US8725952B2 (en) 2007-01-25 2014-05-13 Megachips Corporation Memory controller for suppressing read disturb when data is repeatedly read out
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
JP2012506093A (ja) * 2008-10-15 2012-03-08 マイクロン テクノロジー, インク. ソリッドステート記憶装置内のホットメモリブロックテーブル
JP2013174997A (ja) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp キャッシュ制御装置、及びキャッシュ制御方法
JP2017134817A (ja) * 2015-11-13 2017-08-03 エイチジーエスティーネザーランドビーブイ 分散キャッシュメモリにおける適応分割用のシステム及び方法

Also Published As

Publication number Publication date
CN1287297C (zh) 2006-11-29
TW200412499A (en) 2004-07-16
US6961821B2 (en) 2005-11-01
KR100514677B1 (ko) 2005-09-14
KR20040034388A (ko) 2004-04-28
JP3871331B2 (ja) 2007-01-24
CN1490730A (zh) 2004-04-21
US20040078524A1 (en) 2004-04-22
TWI238935B (en) 2005-09-01

Similar Documents

Publication Publication Date Title
JP3871331B2 (ja) キャッシュ・コントローラ
US7711902B2 (en) Area effective cache with pseudo associative memory
US5584013A (en) Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US8990506B2 (en) Replacing cache lines in a cache memory based at least in part on cache coherency state information
CN109983536B (zh) 响应标签匹配命令的存储电路
US20090276572A1 (en) Memory Management Among Levels of Cache in a Memory Hierarchy
US20130205089A1 (en) Cache Device and Methods Thereof
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
JP2007004835A (ja) キャッシュメモリの運用方法
US11520589B2 (en) Data structure-aware prefetching method and device on graphics processing unit
CN114077553A (zh) 自适应性高速缓存分区
US7287122B2 (en) Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
JP2003131946A (ja) キャッシュメモリ制御装置及び方法
JP6040840B2 (ja) 演算処理装置、情報処理装置及び情報処理装置の制御方法
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
WO2006027643A1 (en) A virtual address cache and method for sharing data stored in a virtual address cache
US6321299B1 (en) Computer circuits, systems, and methods using partial cache cleaning
US7467260B2 (en) Method and apparatus to purge remote node cache lines to support hot node replace in a computing system
Gharachorloo et al. Efficient ECC-Based Directory Implementations for Scalable Multiprocessors
JP5045334B2 (ja) キャッシュシステム
JPH11143774A (ja) キャッシュ制御機構
JP2700148B2 (ja) コンピュータ内のキャッシュへ情報を装填する方法と装置
JPH08137749A (ja) キャッシュメモリ装置
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060808

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060926

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061016

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees