JPH1091528A - Lru機構を実現するための方法 - Google Patents

Lru機構を実現するための方法

Info

Publication number
JPH1091528A
JPH1091528A JP9106307A JP10630797A JPH1091528A JP H1091528 A JPH1091528 A JP H1091528A JP 9106307 A JP9106307 A JP 9106307A JP 10630797 A JP10630797 A JP 10630797A JP H1091528 A JPH1091528 A JP H1091528A
Authority
JP
Japan
Prior art keywords
lru
cache
bits
sets
way
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
JP9106307A
Other languages
English (en)
Other versions
JP3239333B2 (ja
Inventor
J Lauper Albert
アルバート・ジェイ・ローパー
Marric Soumumiya
ソウムミヤ・マリック
B Pateru Rajieshiyu
ラジェシュ・ビー・パテル
Putoriino Michael
マイケル・プトリーノ
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 JPH1091528A publication Critical patent/JPH1091528A/ja
Application granted granted Critical
Publication of JP3239333B2 publication Critical patent/JP3239333B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 4ウェイ・キャッシュ・メモリで4ウェイ最
長時間未使用キャッシュ行置換方式を実現するための方
法を開示する。 【解決手段】 このキャッシュ・メモリは複数のキャッ
シュ行を含み、各キャッシュ行は4つの合同セットを含
む。本開示により、キャッシュ・メモリ内の各キャッシ
ュ行には、5ビットの最長時間未使用(LRU)フィー
ルドが関連付けられている。特定のキャッシュ行につい
ては、4つの合同セットのうちの最長時間未使用セット
のセット番号が、そのキャッシュ行に関連するLRUフ
ィールドのうちの任意の2ビットに格納される。次に、
4つの合同セットのうちの2番目に長時間未使用セット
のセット番号が、同一キャッシュ行に関連する同一LR
Uフィールドの別の2ビットに格納される。最後に、残
りの2セットのうちのどちらが2番目に短時間未使用セ
ットであるかという判定に応じて、5ビットのLRUフ
ィールドのうちの最後のビットが特定の状態に設定され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本開示は、一般にデータ処理
を改善するための方法に関し、具体的にはデータ処理シ
ステム内のキャッシュ・メモリで最長時間未使用(LR
U)機構を実現する方法に関する。より具体的には、本
開示は、高性能データ処理システム内の4ウェイ・キャ
ッシュ・メモリで4ウェイLRU機構を実現するための
方法に関する。
【0002】
【従来の技術】高性能データ処理システムは、通常、シ
ステム・メモリとキャッシュ・メモリの両方を含んでい
る。キャッシュ・メモリは、プロセッサとシステム・メ
モリとの間に置かれた小型かつ比較的高速のメモリであ
る。データまたは命令などの情報は、比較的短時間の間
にプロセッサにとって使用可能になるように、システム
・メモリの一部分からキャッシュ・メモリにコピーする
ことができる。
【0003】しかし、プロセッサが要求した情報がキャ
ッシュ・メモリで見つからない場合、すなわち、キャッ
シュ・ミスの場合、必要な情報をシステム・メモリから
入手しなければならない。プロセッサによる即時使用に
加え、今後の使用のために、このような情報のコピーが
キャッシュ・メモリにも置かれることになる。したがっ
て、キャッシュ・メモリが完全に充填されると、すでに
キャッシュ・メモリに格納されている情報の一部は置換
えが必要になる可能性がある。したがって、新しい情報
のための場所を用意するため、すでにキャッシュ・メモ
リに入っているどの情報を廃棄する必要があるかを判断
するための戦略を定めることが重要である。最長時間未
使用(LRU)は、キャッシュ・ミスが発生したときに
情報を置き換える必要があるキャッシュ行を選択するた
めに一般に使用する戦略である。これは、低アソシアテ
ィブ・キャッシュ(4ウェイまたは4ウェイ未満として
構成されたキャッシュ)の場合、真のLRU方式によっ
て、ランダム置換などの他の戦略と比べ、キャッシュ・
ミス率が最小限になることを統計データが示しているか
らである。
【0004】2ウェイ・キャッシュ・メモリ内に2ウェ
イLRU機構を実現することは、キャッシュ行当たり1
ビットの情報しか必要としないので、極めて平凡な方法
である。しかし、4ウェイ・キャッシュ・メモリ内に4
ウェイLRU機構を実現するには、多数のビットを必要
とする。実施態様によっては、最短時間未使用(MR
U)ウェイおよびLRUウェイなどの不可欠な情報を格
納するために8ビット(Nlog2N、式中、N=キャ
ッシュ・メモリのウェイ数)を使用する。4ウェイ・キ
ャッシュ・メモリの他の実施態様では、同様の不可欠な
情報を格納するために6ビット((N−1)log
2N))を使用する。本開示では、先行技術の実施態様
より少ないビット数で、高性能データ処理システム内で
4ウェイLRU機構を実現するための方法を提供する。
【0005】
【発明が解決しようとする課題】したがって、本開示の
一目的は、データ処理システム内のキャッシュ・メモリ
で最長時間未使用(LRU)機構を実現するための改良
された方法を提供することにある。
【0006】本開示の他の目的は、データ処理システム
内のキャッシュ・メモリで4ウェイLRU機構を実現す
るための改良された方法を提供することにある。
【0007】本開示の他の目的は、サイクル時間または
パフォーマンスを犠牲にせずに、ビット数を削減して高
性能データ処理システム内で4ウェイLRU機構を実現
するための改良された方法を提供することにある。
【0008】
【課題を解決するための手段】本開示により、(N−
1)log2N未満のビット数を使用することにより、
複数の情報ユニットを有するキャッシュ・メモリで最長
時間未使用キャッシュ行置換方式を実現する方法を開示
する(式中、Nはキャッシュ・メモリ内のユニット(ま
たは合同セット(congruence set))の数)。
【0009】さらに、4ウェイ・キャッシュ・メモリで
4ウェイ最長時間未使用キャッシュ行置換方式を実現す
る実施態様を例示する。この4ウェイ・キャッシュ・メ
モリは複数のキャッシュ行を含み、各キャッシュ行は4
つの合同セットを含む。本開示により、キャッシュ・メ
モリ内の各キャッシュ行には、5ビットの最長時間未使
用(LRU)フィールドが関連付けられている。特定の
キャッシュ行については、4つの合同セットのうちの最
長時間未使用セットのセット番号が、そのキャッシュ行
に関連するLRUフィールドのうちの任意の2ビットに
格納される。次に、4つの合同セットのうちの2番目に
長時間未使用セットのセット番号が、同一キャッシュ行
に関連する同一LRUフィールドの別の2ビットに格納
される。最後に、残りの2セットのうちのどちらが2番
目に短時間未使用セットであるかという判定に応じて、
5ビットのLRUフィールドのうちの最後のビットが特
定の状態に設定される。
【0010】
【発明の実施の形態】本開示に基づく実施例は、様々な
プロセッサおよびキャッシュベースのデータ処理システ
ム上で実現することができる。例示のため、以下に記載
する実施例は、IBMが製造し、縮小命令セット・コン
ピューティング(RISC)技法により動作する、Po
werPCTM系列のマイクロプロセッサの1つで実施す
る。
【0011】次に添付図面、特に図1を参照すると、同
図には、データ処理用のプロセッサ10のブロック図が
示されている。本開示の実施例のプロセッサ10は、様
々なレジスタ、バッファ、実行ユニット、機能ユニット
を含む、単一集積回路スーパスカラ・マイクロプロセッ
サである。図1に示すように、プロセッサ10は、プロ
セッサ10内のバス・インタフェース・ユニット(BI
U)12を介してシステム・バス11に結合されてい
る。BIU12は、システム・バス11に結合されたメ
イン・メモリ(図示せず)などのその他の装置とプロセ
ッサ10との間の情報転送を制御する。プロセッサ1
0、システム・バス11、システム・バス11に結合さ
れたその他の装置が相俟って、1つのホスト・データ処
理システムを形成する。
【0012】プロセッサ10内のBIU12は、命令キ
ャッシュ14およびデータ・キャッシュ16に接続され
ているが、そのいずれでも本開示の実施例を組み込むこ
とができる。命令キャッシュ14とデータ・キャッシュ
16はどちらも、プロセッサ10がメイン・メモリから
キャッシュ14および16に事前に転送された命令また
はデータのサブセットに対して比較的高速のアクセス時
間を達成できるようにし、その結果、ホスト・データ処
理システムの動作速度を改善する、高速キャッシュであ
る。命令キャッシュ14は、各実行サイクル中に命令キ
ャッシュ14から命令を取り出す順次取出し器(sequen
tial fetcher)17にさらに結合されている。順次取出
し器17は、命令キャッシュ14から取り出した分岐命
令を実行のために分岐処理ユニット(BPU)18に伝
送するが、プロセッサ10内の他の実行回路によって後
で実行するために、命令待ち行列19内に順次命令を一
時的に格納する。
【0013】プロセッサ10の実行回路は、BPU18
に加え、3つの実行ユニット、すなわち、固定小数点ユ
ニット(FXU)22と、ロード/ストア・ユニット
(LSU)28と、浮動小数点ユニット(FPU)32
とを含んでいる。この3つの実行ユニットのそれぞれ
は、1つまたは複数のクラスの命令を実行することがで
き、各プロセッサ・サイクル中にすべての実行ユニット
が同時に動作する。FXU22は、指定の汎用レジスタ
(GPR)24またはGPR名前変更バッファ25から
受け取ったソース・オペランドを使用して、加算、減
算、AND、OR、XORなどの固定小数点数値演算を
実行する。これに対して、FPU32は、浮動小数点レ
ジスタ(FPR)34またはFPR名前変更バッファ3
5から受け取ったソース・オペランドについて、浮動小
数点乗算および除算などの浮動小数点演算を実行する。
その名前が意味するように、LSU28は、データ・キ
ャッシュ16またはメイン・メモリからのデータを指定
のGPR24またはFPR34にロードするか、あるい
はGPR24、GPR名前変更バッファ25、FPR3
4、またはFPR名前変更バッファ35の指定の1つか
らメモリにデータを格納する、浮動小数点命令と固定小
数点命令を実行する。
【0014】プロセッサ10は、そのスーパスカラ・ア
ーキテクチャのパフォーマンスをさらに改善するため
に、命令のパイプライン化と順不同実行の両方を使用す
る。したがって、データの依存関係が検出される限り、
FXU22、LSU28、FPU32によって任意の順
序で命令を実行することができる。
【0015】次に図2を参照すると、同図には、本開示
の実施例によるデータ・キャッシュ16の構成のブロッ
ク図が示されている。データ・キャッシュ16は、ウェ
イ0、ウェイ1、ウェイ2、ウェイ3という4ウェイ・
キャッシュとして構成されており、各ウェイは64本の
キャッシュ行を備えている。すなわち、64本のキャッ
シュ行はそれぞれ、4つの合同ウェイを備えるものと見
なすことができる。データ・キャッシュ16の各ウェイ
は、2つの部分、すなわち、タグ部分とデータ部分にさ
らに分割されている。図2に示すように、タグ部分は、
ウェイ0、ウェイ1、ウェイ2、ウェイ3用として、タ
グ・セット60a、タグ・セット60b、タグ・セット
60c、タグ・セット60dをそれぞれ含む。同様に、
データ部分は、ウェイ0、ウェイ1、ウェイ2、ウェイ
3用として、データ・セット70a、データ・セット7
0b、データ・セット70c、データ・セット70dを
それぞれ含む。各タグ・セット60a〜60dは各デー
タ・セット70a〜70dに対応する。すべてのタグ・
セット60a〜60dが同一構成になっており、すべて
のデータ・セット70a〜70dが同一構成になってい
るので、タグ・セット60aとデータ・セット70aに
ついてのみ、以下に詳述する。
【0016】タグ・セット60aとデータ・セット70
aのそれぞれは、線0〜線63の64本のキャッシュ行
を備え、各キャッシュ行にはアドレス30のビット20
〜25によってインデックスが付けられている。データ
・セット70aの各キャッシュ行は幅が64バイト(ま
たは16ワード)であるが、タグ・セット60aの各キ
ャッシュ行は幅がわずか20ビットである。データ・セ
ット70a内の各キャッシュ行は、処理ユニットの1
つ、すなわち、FXU22、FPU32、またはLSU
28が要求する可能性のある実際のデータを含み、その
キャッシュ行内の各バイトにはアドレス30のビット2
6〜31によってインデックスが付けられている。これ
に対して、タグ・セット60a内の各キャッシュ行は、
キャッシュ「ヒット」または「ミス」が発生したかどう
かを判定するために、アドレス30のビット0〜19と
の比較に使用するアドレス・タグを含む。ちなみに、タ
グ・セット60a〜60dの1つのアドレス・タグとア
ドレス30のビット0〜19との一致は、キャッシュ
「ヒット」を意味する。
【0017】各キャッシュは、タグ部分およびデータ部
分に加え、様々な目的のための他の数ビットも含むこと
ができる。たとえば、4状態MESI(変更済み、排
他、共用、無効)プロトコルを実施するためにキャッシ
ュ行当たり2つの状態ビットが存在する場合もある。し
かし、このようなビットの実施態様はキャッシュ・メモ
リ設計の分野の当業者にとって周知であるとともに、簡
略化のため、図2にこのようなビットをこれ以上示す必
要はない。
【0018】図2の4ウェイ・データ・キャッシュ16
内で4ウェイLRU機構を実現する場合、一実施例で
は、特定のキャッシュ行用のタグ・セット60a〜60
d(または対応するデータ・セット70a〜70d)の
うちのどれが最後にアクセスされたかを追跡するため
に、各キャッシュ行にLRUフィールド90が関連付け
られる。したがって、各キャッシュ行のすべてのタグ・
セット60a〜60dに関する使用状態を記録し、LR
Uフィールド90に格納しなければならない。4つのタ
グ・セット60a〜60d(4つの合同セットまたはユ
ニット)が存在するので、それぞれLRU、LRU+
1、MRU−1、MRUで示される、最長時間未使用、
2番目に長時間未使用、2番目に短時間未使用、最短時
間未使用という4つの状態が存在しなければならない。
この場合、4つのすべての合同セット内の各キャッシュ
行の使用状態は、そのキャッシュ行のLRUフィールド
90に問い合わせるだけで確認される。
【0019】次に図3を参照すると、同図には、真のL
RU方式の一例が示されている。サイクルaでは、デー
タ・キャッシュ16内のキャッシュ行のウェイ1がLR
Uであり、データ・キャッシュ16内の同一キャッシュ
行のウェイ0がLRU+1であり、データ・キャッシュ
16内の同一キャッシュ行のウェイ2がMRU−1であ
り、データ・キャッシュ16内の同一キャッシュ行のウ
ェイ3がMRUである。サイクルbでは、キャッシュ行
のウェイ0でアクセス(読取りまたは書込み)が事前に
行われた後、ウェイ0はMRUになり、ウェイ3はシフ
トダウンしてMRU−1になり、ウェイ2はシフトダウ
ンしてLRU+1になり、ウェイ1はLRUのままにな
る。サイクルcでは、キャッシュ行のウェイ0でもう一
度アクセスが事前に行われた後、ウェイ0が依然として
MRUなので、キャッシュ行の各ウェイの状態はその順
序が一切変化しない。サイクルdでは、キャッシュ行の
ウェイ3でアクセスが事前に行われた後、ウェイ3はM
RUになり、ウェイ0はシフトダウンしてMRU−1に
なり、ウェイ2とウェイ1はそれぞれLRU+1とLR
Uのままになる。サイクルeでは、キャッシュ行のウェ
イ1でアクセスが事前に行われた後、ウェイ1はMRU
になり、ウェイ3はシフトダウンしてMRU−1にな
り、ウェイ0はシフトダウンしてLRU+1になり、ウ
ェイ2はLRUになる。このLRU方式では、通常、キ
ャッシュ「ミス」によって誘導される線充填操作が行わ
れると、LRUになっているキャッシュ行内の情報は、
システム・メモリから入手した新しい情報で置き換えら
れる。
【0020】次に図4を参照すると、同図には、4ウェ
イLRUフィールドの先行技術の実施態様が示されてい
る。図示の通り、LRUフィールド80は8ビットを含
む。ビット80−0とビット80−1はどちらもタグ・
セット60a〜60dのうちの最長時間未使用セットを
追跡するためのものであり、ビット80−0、80−1
は相俟ってLRUセット番号を含む。同様に、ビット8
0−2とビット80−3はどちらもタグ・セット60a
〜60dのうちの2番目に長時間未使用セットを追跡す
るためのものであり、ビット80−2、80−3は相俟
ってLRU+1セット番号を含む。ビット80−4とビ
ット80−5はどちらもタグ・セット60a〜60dの
うちの2番目に短時間未使用セットを追跡するためのも
のであり、ビット80−4、80−5は相俟ってMRU
−1セット番号を含む。最後に、ビット80−6とビッ
ト80−7はどちらもタグ・セット60a〜60dのう
ちの最短時間未使用セットを追跡するためのものであ
り、ビット80−6、80−7は相俟ってMRUセット
番号を含む。
【0021】次に図5を参照すると、同図には、4ウェ
イLRUフィールドの先行技術の他の実施態様が示され
ている。図示の通り、LRUテーブル50は6ビットを
含む。上記の8ビットLRUフィールドと同様、ビット
50−0とビット50−1はどちらもタグ・セット60
a〜60dのうちの最長時間未使用セットを追跡するた
めのものであり、ビット50−0、50−1は相俟って
LRUセット番号を含む。同様に、ビット50−2とビ
ット50−3はどちらもタグ・セット60a〜60dの
うちの2番目に長時間未使用セットを追跡するためのも
のであり、ビット50−2、50−3は相俟ってLRU
+1セット番号を含む。最後に、ビット50−4とビッ
ト50−5はどちらもタグ・セット60a〜60dのう
ちの2番目に短時間未使用セットを追跡するためのもの
であり、ビット50−4、50−5は相俟ってMRU−
1セット番号を含む。この実施態様では、ビット50−
0〜50−5分析することによって判定できるように、
MRUセット番号が暗黙のものになっている。
【0022】次に図6を参照すると、同図には、本開示
の実施例による4ウェイLRUフィールドの実施態様が
示されている。図示の通り、LRUテーブル90は5ビ
ットを含む。ビット90−0とビット90−1はどちら
もタグ・セット60a〜60dのうちの最長時間未使用
セットを追跡するためのものであり、ビット90−0、
90−1は相俟ってLRUセット番号を含む。同様に、
ビット90−2とビット90−3はどちらもタグ・セッ
ト60a〜60dのうちの2番目に長時間未使用セット
を追跡するためのものであり、ビット90−2、90−
3は相俟ってLRU+1セット番号のセット番号を含
む。ビット90−4は2番目に短時間未使用セット、す
なわち、MRU−1を追跡するためのビットを含む。一
実施例として、「1」の場合は残りの2つのセットのう
ちの大きい方のセット番号をMRU−1セットとして示
し、「0」の場合は残りの2つのセットのうちの小さい
方のセット番号をMRU−1セットとして示すが、逆の
割当ても可能であることに留意されたい。したがって、
残りの2つのセットのうちの大きい方のセット番号がM
RU−1である場合、ビット90−4は「1」になる。
逆に、残りの2つのセットのうちの小さい方のセット番
号がMRU−1である場合、ビット90−4は「0」に
なる。最後に、唯一の残りのセットであると判定できる
ので、この場合もMRUセット番号は暗黙のものにな
る。
【0023】次に図7を参照すると、同図には、本開示
の実施例による4ウェイLRU機構の応用例を例示する
ためのいくつかの例が示されている。
【0024】参照番号92で示すケース1では、LRU
が「00」であるのでLRUセットがセット0であるこ
とを意味し、LRU+1が「01」であるのでLRU+
1セットがセット1であることを意味する。MRU−1
ビットは「1」なので、残りの2つのセットのうちの大
きい方のセット番号がMRU−1であることを意味す
る。この場合、残りの2つのセットはセット2とセット
3である。この2つのうちの大きい方のセット番号はセ
ット3であるので、MRU−1はセット3であり、残り
のセット2はMRUセットになる。
【0025】参照番号94で示すケース2では、LRU
が「00」であるのでLRUセットがセット0であるこ
とを意味し、LRU+1が「01」であるのでLRU+
1セットがセット1であることを意味する。MRU−1
ビットは「0」なので、残りの2つのセットのうちの小
さい方のセット番号がMRU−1であることを意味す
る。この場合、残りの2つのセットはやはりセット2と
セット3である。この2つのうちの小さい方のセット番
号はセット2であるので、MRU−1はセット2であ
り、残りのセット3はMRUセットになる。
【0026】参照番号96で示すケース3では、LRU
が「11」であるのでLRUセットがセット3であるこ
とを意味し、LRU+1が「01」であるのでLRU+
1セットがセット1であることを意味する。MRU−1
ビットは「1」なので、残りの2つのセットのうちの大
きい方のセット番号がMRU−1であることを意味す
る。この場合、残りの2つのセットはセット0とセット
2である。この2つのうちの大きい方のセット番号はセ
ット2であるので、MRU−1はセット2であり、残り
のセット0はMRUセットになる。
【0027】参照番号98で示すケース4では、LRU
が「11」であるのでLRUセットがセット3であるこ
とを意味し、LRU+1が「10」であるのでLRU+
1セットがセット2であることを意味する。MRU−1
ビットは「0」なので、残りの2つのセットのうちの小
さい方のセット番号がMRU−1であることを意味す
る。この場合、残りの2つのセットはセット0とセット
1である。この2つのうちの小さい方のセット番号はセ
ット0であるので、MRU−1はセット0であり、残り
のセット1はMRUセットになる。
【0028】上記のように、本開示は、わずか5ビット
を使用して、高性能データ処理システム内で4ウェイL
RU機構を実現するための方法を提供する。本開示では
一例として4ウェイ・キャッシュ・メモリだけを使用し
ているが、当業者であれば、例示した原理は様々な数の
ウェイを有する各種キャッシュ・メモリにも適用可能で
あり、このようなキャッシュ・メモリでLRU機構を実
現するには(N−1)log2N未満のビット(N=キ
ャッシュ・メモリのウェイ数)が必要であることに留意
されたい。8ウェイ・キャッシュ・メモリを一例とする
と、最初の4セットの情報、すなわち、LRU、LRU
+1、LRU+2、LRU+3は、各セットごとに3ビ
ットずつ、合計12ビットで追跡することができる。そ
の場合、残りの4セットの情報、すなわち、MRU−
3、MRU−2、MRU−1、MRUは、上記のように
5ビットで追跡することができる。したがって、本開示
により8ウェイ・キャッシュ・メモリ用のLRU機構を
実現するのに必要な合計ビット数は17ビットになる。
これは、先行技術で必要とする(8−1)log28=
21ビットより5ビット少ないビット数である。
【0029】さらに、本開示の実施例は、便宜的に以下
のように実験式で表すことができる。
【数2】 式中、xはlog2[キャッシュ・メモリのウェイ数]
をすぐ下の整数に丸めた数に等しいことが好ましい。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0031】(1)複数の情報ユニットを有するキャッ
シュ・メモリでLRUキャッシュ行置換方式を実現する
方法において、(N−1)log2N未満のビット数を
使用することにより、前記情報ユニットの個数Nの大き
さを示す情報を符号化するステップを含むことを特徴と
する方法。 (2)情報ユニットの個数Nの大きさを示すための前記
符号化ステップが、
【数3】 を使用し、x=(log2N)の整数であることを特徴
とする、上記(1)に記載の複数の情報ユニットを有す
るキャッシュ・メモリでLRUキャッシュ行置換方式を
実現する方法。 (3)キャッシュ・メモリでLRUキャッシュ行置換方
式を実現する方法において、前記キャッシュ・メモリが
複数のキャッシュ行を有し、各キャッシュ行が4つの合
同セットを含み、前記方法が、前記キャッシュ・メモリ
内の前記複数のキャッシュ行のそれぞれにLRUフィー
ルドを関連付けるステップであって、前記LRUフィー
ルドのそれぞれが5ビットを含むステップと、前記複数
のキャッシュ行のうちの対応する1つに関連する前記L
RUフィールドの2ビットに、前記4つの合同セットの
うちの最長時間未使用セットのセット番号を格納するス
テップと、前記複数のキャッシュ行のうちの前記対応す
る1つに関連する前記LRUフィールドの別の2ビット
に、前記4つの合同セットのうちの2番目に長時間未使
用セットのセット番号を格納するステップと、前記4つ
の合同セットのうちの2番目に短時間未使用セットのセ
ット番号の判定に応じて前記LRUフィールドの最後の
ビットをある状態に設定するステップであって、前記最
長時間未使用セットを追跡するために不可欠な情報が最
小限のメモリに格納されるステップとをさらに含むこと
を特徴とする方法。 (4)前記設定ステップが、前記2番目に短時間未使用
セットの前記セット番号が前記4つの合同セットのうち
の最短時間未使用セットのセット番号より大きいという
判定に応じて、前記LRUフィールドの前記最後のビッ
トを論理「1」に設定するステップをさらに含むことを
特徴とする、上記(3)に記載のキャッシュ・メモリで
LRUキャッシュ行置換方式を実現する方法。 (5)前記設定ステップが、前記2番目に短時間未使用
セットの前記セット番号が前記4つの合同セットのうち
の最短時間未使用セットのセット番号より小さいという
判定に応じて、前記LRUフィールドの前記最後のビッ
トを論理「0」に設定するステップをさらに含むことを
特徴とする、上記(3)に記載のキャッシュ・メモリで
LRUキャッシュ行置換方式を実現する方法。 (6)4ウェイLRUキャッシュ行置換方式を有するキ
ャッシュ・メモリにおいて、前記キャッシュ・メモリが
複数のキャッシュ行を有し、各キャッシュ行が4つの合
同セットを含み、前記キャッシュ・メモリが、前記キャ
ッシュ・メモリ内の前記複数のキャッシュ行のそれぞれ
にLRUフィールドを関連付ける手段であって、前記L
RUフィールドのそれぞれが5ビットを含む手段と、前
記複数のキャッシュ行のうちの対応する1つに関連する
前記LRUフィールドの2ビットに、前記4つの合同セ
ットのうちの最長時間未使用セットのセット番号を格納
する手段と、前記複数のキャッシュ行のうちの前記対応
する1つに関連する前記LRUフィールドの別の2ビッ
トに、前記4つの合同セットのうちの2番目に長時間未
使用セットのセット番号を格納する手段と、前記4つの
合同セットのうちの2番目に短時間未使用セットのセッ
ト番号の判定に応じて前記LRUフィールドの最後のビ
ットをある状態に設定する手段であって、前記最長時間
未使用セットを追跡するために不可欠な情報を格納する
ために最小限のメモリが必要である手段とを含むことを
特徴とするキャッシュ・メモリ。 (7)前記設定手段が、前記2番目に短時間未使用セッ
トの前記セット番号が前記4つの合同セットのうちの最
短時間未使用セットのセット番号より大きいという判定
に応じて、前記LRUフィールドの前記最後のビットを
論理「1」に設定する手段をさらに含むことを特徴とす
る、上記(6)に記載の4ウェイLRUキャッシュ行置
換方式を有するキャッシュ・メモリ。 (8)前記設定手段が、前記2番目に短時間未使用セッ
トの前記セット番号が前記4つの合同セットのうちの最
短時間未使用セットのセット番号より小さいという判定
に応じて、前記LRUフィールドの前記最後のビットを
論理「0」に設定する手段をさらに含むことを特徴とす
る、上記(6)に記載の4ウェイLRUキャッシュ行置
換方式を有するキャッシュ・メモリ。 (9)前記キャッシュ・メモリがプロセッサ内にあるこ
とを特徴とする、上記(6)に記載の4ウェイLRUキ
ャッシュ行置換方式を有するキャッシュ・メモリ。
【図面の簡単な説明】
【図1】本開示の方法を使用するプロセッサの実施例の
ブロック図である。
【図2】本開示の実施例による図1のプロセッサ内のキ
ャッシュ・メモリのブロック図である。
【図3】真のLRU方式の一例を示す図である。
【図4】8ビットを使用することによる4ウェイLRU
フィールドの先行技術の実施態様を示す図である。
【図5】6ビットを使用することによる4ウェイLRU
フィールドの先行技術の実施態様を示す図である。
【図6】本開示の実施例による4ウェイLRUフィール
ドの実施態様を示す図である。
【図7】本開示の実施例による4ウェイLRU機構の応
用例を例示するためのいくつかの例の図である。
【符号の説明】
10 プロセッサ 11 システム・バス 12 バス・インタフェース・ユニット(BIU) 14 命令キャッシュ 16 データ・キャッシュ 17 順次取出し器 18 分岐処理ユニット(BPU) 19 命令待ち行列 20 ディスパッチ・ユニット 22 固定小数点ユニット(FXU) 24 汎用レジスタ(GPR) 25 GPR名前変更バッファ 28 ロード/ストア・ユニット(LSU) 32 浮動小数点ユニット(FPU) 34 浮動小数点レジスタ(FPR) 35 FPR名前変更バッファ 40 完了ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ソウムミヤ・マリック アメリカ合衆国78729 テキサス州オース チン パートリッジ・ベンド・ドライブ 13032 (72)発明者 ラジェシュ・ビー・パテル アメリカ合衆国78748 テキサス州オース チン シルク・オーク・コーブ 9313 (72)発明者 マイケル・プトリーノ アメリカ合衆国78717 テキサス州オース チン エフライム・ロード 8411

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】複数の情報ユニットを有するキャッシュ・
    メモリでLRUキャッシュ行置換方式を実現する方法に
    おいて、 (N−1)log2N未満のビット数を使用することに
    より、前記情報ユニットの個数Nの大きさを示す情報を
    符号化するステップを含むことを特徴とする方法。
  2. 【請求項2】情報ユニットの個数Nの大きさを示すため
    の前記符号化ステップが、 【数1】 を使用し、x=(log2N)の整数であることを特徴
    とする、請求項1に記載の複数の情報ユニットを有する
    キャッシュ・メモリでLRUキャッシュ行置換方式を実
    現する方法。
  3. 【請求項3】キャッシュ・メモリでLRUキャッシュ行
    置換方式を実現する方法において、前記キャッシュ・メ
    モリが複数のキャッシュ行を有し、各キャッシュ行が4
    つの合同セットを含み、前記方法が、 前記キャッシュ・メモリ内の前記複数のキャッシュ行の
    それぞれにLRUフィールドを関連付けるステップであ
    って、前記LRUフィールドのそれぞれが5ビットを含
    むステップと、 前記複数のキャッシュ行のうちの対応する1つに関連す
    る前記LRUフィールドの2ビットに、前記4つの合同
    セットのうちの最長時間未使用セットのセット番号を格
    納するステップと、 前記複数のキャッシュ行のうちの前記対応する1つに関
    連する前記LRUフィールドの別の2ビットに、前記4
    つの合同セットのうちの2番目に長時間未使用セットの
    セット番号を格納するステップと、 前記4つの合同セットのうちの2番目に短時間未使用セ
    ットのセット番号の判定に応じて前記LRUフィールド
    の最後のビットをある状態に設定するステップであっ
    て、前記最長時間未使用セットを追跡するために不可欠
    な情報が最小限のメモリに格納されるステップとをさら
    に含むことを特徴とする方法。
  4. 【請求項4】前記設定ステップが、前記2番目に短時間
    未使用セットの前記セット番号が前記4つの合同セット
    のうちの最短時間未使用セットのセット番号より大きい
    という判定に応じて、前記LRUフィールドの前記最後
    のビットを論理「1」に設定するステップをさらに含む
    ことを特徴とする、請求項3に記載のキャッシュ・メモ
    リでLRUキャッシュ行置換方式を実現する方法。
  5. 【請求項5】前記設定ステップが、前記2番目に短時間
    未使用セットの前記セット番号が前記4つの合同セット
    のうちの最短時間未使用セットのセット番号より小さい
    という判定に応じて、前記LRUフィールドの前記最後
    のビットを論理「0」に設定するステップをさらに含む
    ことを特徴とする、請求項3に記載のキャッシュ・メモ
    リでLRUキャッシュ行置換方式を実現する方法。
  6. 【請求項6】4ウェイLRUキャッシュ行置換方式を有
    するキャッシュ・メモリにおいて、前記キャッシュ・メ
    モリが複数のキャッシュ行を有し、各キャッシュ行が4
    つの合同セットを含み、前記キャッシュ・メモリが、 前記キャッシュ・メモリ内の前記複数のキャッシュ行の
    それぞれにLRUフィールドを関連付ける手段であっ
    て、前記LRUフィールドのそれぞれが5ビットを含む
    手段と、 前記複数のキャッシュ行のうちの対応する1つに関連す
    る前記LRUフィールドの2ビットに、前記4つの合同
    セットのうちの最長時間未使用セットのセット番号を格
    納する手段と、 前記複数のキャッシュ行のうちの前記対応する1つに関
    連する前記LRUフィールドの別の2ビットに、前記4
    つの合同セットのうちの2番目に長時間未使用セットの
    セット番号を格納する手段と、 前記4つの合同セットのうちの2番目に短時間未使用セ
    ットのセット番号の判定に応じて前記LRUフィールド
    の最後のビットをある状態に設定する手段であって、前
    記最長時間未使用セットを追跡するために不可欠な情報
    を格納するために最小限のメモリが必要である手段とを
    含むことを特徴とするキャッシュ・メモリ。
  7. 【請求項7】前記設定手段が、前記2番目に短時間未使
    用セットの前記セット番号が前記4つの合同セットのう
    ちの最短時間未使用セットのセット番号より大きいとい
    う判定に応じて、前記LRUフィールドの前記最後のビ
    ットを論理「1」に設定する手段をさらに含むことを特
    徴とする、請求項6に記載の4ウェイLRUキャッシュ
    行置換方式を有するキャッシュ・メモリ。
  8. 【請求項8】前記設定手段が、前記2番目に短時間未使
    用セットの前記セット番号が前記4つの合同セットのう
    ちの最短時間未使用セットのセット番号より小さいとい
    う判定に応じて、前記LRUフィールドの前記最後のビ
    ットを論理「0」に設定する手段をさらに含むことを特
    徴とする、請求項6に記載の4ウェイLRUキャッシュ
    行置換方式を有するキャッシュ・メモリ。
  9. 【請求項9】前記キャッシュ・メモリがプロセッサ内に
    あることを特徴とする、請求項6に記載の4ウェイLR
    Uキャッシュ行置換方式を有するキャッシュ・メモリ。
JP10630797A 1996-04-29 1997-04-23 Lru機構を実現するための方法 Expired - Fee Related JP3239333B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/641060 1996-04-29
US08/641,060 US5765191A (en) 1996-04-29 1996-04-29 Method for implementing a four-way least recently used (LRU) mechanism in high-performance

Publications (2)

Publication Number Publication Date
JPH1091528A true JPH1091528A (ja) 1998-04-10
JP3239333B2 JP3239333B2 (ja) 2001-12-17

Family

ID=24570789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10630797A Expired - Fee Related JP3239333B2 (ja) 1996-04-29 1997-04-23 Lru機構を実現するための方法

Country Status (3)

Country Link
US (1) US5765191A (ja)
JP (1) JP3239333B2 (ja)
KR (1) KR970071286A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240489B1 (en) * 1999-02-24 2001-05-29 International Business Machines Corporation Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US6338120B1 (en) 1999-02-26 2002-01-08 International Business Machines Corporation Apparatus for cache use history encoding and decoding including next lru and next mru and method therefor
US6397298B1 (en) * 1999-07-30 2002-05-28 International Business Machines Corporation Cache memory having a programmable cache replacement scheme
US6446171B1 (en) 2000-03-02 2002-09-03 Mips Technologies, Inc. Method and apparatus for tracking and update of LRU algorithm using vectors
US8533398B2 (en) 2010-11-09 2013-09-10 Microsoft Corporation Combination based LRU caching
US9298631B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Managing transactional and non-transactional store observability
US9262320B2 (en) 2012-06-15 2016-02-16 International Business Machines Corporation Tracking transactional execution footprint
US9015419B2 (en) * 2012-06-15 2015-04-21 International Business Machines Corporation Avoiding aborts due to associativity conflicts in a transactional environment
US9311101B2 (en) 2012-06-15 2016-04-12 International Business Machines Corporation Intra-instructional transaction abort handling
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9223687B2 (en) 2012-06-15 2015-12-29 International Business Machines Corporation Determining the logical address of a transaction abort
US9244724B2 (en) * 2013-08-15 2016-01-26 Globalfoundries Inc. Management of transactional memory access requests by a cache memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4607331A (en) * 1983-05-13 1986-08-19 Motorola, Inc. Method and apparatus for implementing an algorithm associated with stored information
US5638531A (en) * 1995-06-07 1997-06-10 International Business Machines Corporation Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization

Also Published As

Publication number Publication date
US5765191A (en) 1998-06-09
KR970071286A (ko) 1997-11-07
JP3239333B2 (ja) 2001-12-17

Similar Documents

Publication Publication Date Title
US5860107A (en) Processor and method for store gathering through merged store operations
US6425075B1 (en) Branch prediction device with two levels of branch prediction cache
US5519841A (en) Multi instruction register mapper
US5564118A (en) Past-history filtered branch prediction
EP1116103B1 (en) Mechanism for store-to-load forwarding
US5944815A (en) Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access
US6397296B1 (en) Two-level instruction cache for embedded processors
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
US5778434A (en) System and method for processing multiple requests and out of order returns
US6021489A (en) Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture
US5619662A (en) Memory reference tagging
US5835745A (en) Hardware instruction scheduler for short execution unit latencies
EP0709770A2 (en) Apparatus to control load/store instructions
JP3919802B2 (ja) プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法
EP0394624B1 (en) Multiple sequence processor system
JP2012502367A (ja) 疎及び密予測を伴うハイブリッド分岐予測デバイス
JP2000259412A (ja) ストア命令転送方法およびプロセッサ
US5822788A (en) Mechanism for prefetching targets of memory de-reference operations in a high-performance processor
JP3239333B2 (ja) Lru機構を実現するための方法
JPH07311711A (ja) データ処理装置とその動作方法及びメモリ・キャッシュ動作方法
US5737749A (en) Method and system for dynamically sharing cache capacity in a microprocessor
US6240489B1 (en) Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US5581719A (en) Multiple block line prediction
US7143267B2 (en) Partitioning prefetch registers to prevent at least in part inconsistent prefetch information from being stored in a prefetch register of a multithreading processor
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees