JPH09223067A - 多方向アソシエーティブ・キャッシュにタグ付けする方法および装置 - Google Patents

多方向アソシエーティブ・キャッシュにタグ付けする方法および装置

Info

Publication number
JPH09223067A
JPH09223067A JP8195285A JP19528596A JPH09223067A JP H09223067 A JPH09223067 A JP H09223067A JP 8195285 A JP8195285 A JP 8195285A JP 19528596 A JP19528596 A JP 19528596A JP H09223067 A JPH09223067 A JP H09223067A
Authority
JP
Japan
Prior art keywords
cache
cache line
field
processor
att
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.)
Ceased
Application number
JP8195285A
Other languages
English (en)
Inventor
Erik Hagersten
エリック・ヘガーステン
Ashok Singhal
アショク・シンガル
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09223067A publication Critical patent/JPH09223067A/ja
Ceased 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

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)【要約】 【課題】 単一プロセッサ・コンピュータ・システムと
マルチプロセッサ・コンピュータ・システムの両方に適
し、方向情報を利用して、キャッシュされた情報の高速
で効率的な検索を実行し、プロセッサの寸法を大幅に増
加せずに小型の装置として実施することができる効率的
なキャッシュ・タグ付け方式を提供する。 【解決手段】 キャッシュ線が最初にキャッシュされた
ときに得られる有用な方向情報は、破棄されずに、後の
キャッシュ・アクセスのためにATTに記憶される。ウ
ェイレットが、キャッシュ線がキャッシュされたときに
方向情報を記憶する効率的な機構を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリ・キャッシ
ュの分野に関する。詳細には、本発明は効率的なタグ付
け方式に関する。
【0002】
【従来の技術】図1は、プロセッサ110と、システム
相互接続機構120と、メイン・メモリ130と、大容
量記憶装置140と、モニタ160と、キーボード/マ
ウス170とを含む単一プロセッサ・コンピュータ・シ
ステム100のブロック図である。コンピュータ・シス
テム100など従来型のコンピュータ・システムでは、
プログラム実行の前に、プログラムの命令およびデータ
構造が大容量記憶装置140、通常はハード・ディスク
・ドライブから、メイン・メモリ130、通常は廉価で
あるが低速の動的ランダム・アクセス・メモリ(DRA
M)にロードされる。その後、プログラム実行時に、プ
ロセッサ110は必要に応じシステム相互接続機構12
0を介して、メイン・メモリ130に記憶されている命
令およびデータにアクセスする。
【0003】プロセッサ110の命令/データ処理機能
が増大するにつれて、コンピュータ・システム100の
命令/データ処理機能は、プロセッサ・バウンドではな
くメモリ・バウンドになっている。これは1つには、メ
イン・メモリ130のアクセス速度を増加させた技術的
な進歩が、プロセッサ110の内部命令/データ処理機
能を増大させた進歩に追いついていないからである。そ
の結果、プロセッサ110の効率は、システム相互接続
機構120を介してメイン・メモリ130とプロセッサ
110との間でデータおよび命令を転送することができ
る速度によって抑制される。
【0004】マルチプロセッサ・システムにも同じメモ
リ・ボトルネックが存在する。図2は、共通のシステム
相互接続機構120を介して互いに結合されメイン・メ
モリ130および大容量記憶装置140に結合された複
数のプロセッサ211,212,...219を有す
る、そのようなあるマルチプロセッサ・コンピュータ・
システム200のブロック図である。
【0005】システム100、200のメモリ・ボトル
ネックに対する部分的な解決策は、それぞれのプロセッ
サに直接接続された、より小型で高速であるがより高価
なキャッシュ、通常は静的ランダム・アクセス・メモリ
(SRAM)を導入することである。図1および2に示
したように、各プロセッサはキャッシュに関連付けられ
る。たとえば、プロセッサ211はキャッシュ251に
結合される。実施態様に応じて、キャッシュ150,2
51,252,...259を直接、システム相互接続
機構120に結合することもできる。
【0006】図3Aは、C本のキャッシュ線を有する従
来型のアソシエーティブ・キャッシュ310aの例示的
な実施態様を示す。各キャッシュ線は、アドレス・タグ
(”AT”)フィールドと、ATフィールドにアソシエ
ーティブに結合されたデータ・フィールドの2つのフィ
ールドを含む。この方式において各キャッシュ線の物理
アドレスは対応するAT部分およびインデックス部分を
有する。キャッシュ300aは、キャッシュ150また
はキャッシュ251,242,...259のうちの1
つを例示したものである。
【0007】プロセッサ、たとえばプロセッサ110
は、物理アドレス(PA)のインデックス部分をキャッ
シュ310aの1番上に対するオフセットとして使用し
て目標キャッシュ線を見つけることによって、目標キャ
ッシュ線、たとえばn番目のキャッシュ線にアクセスす
る。次に、キャッシュ線物理アドレスのAT部分が目標
キャッシュ線のATフィールドの内容と比較される。そ
れぞれのAT値が合致する場合、「キャッシュ・ヒッ
ト」があり、目標キャッシュ線のデータ・フィールドが
プロセッサ110に提供される。
【0008】キャッシュ・ヒットの確率を増加させるた
めに、キャッシュを拡張すると共に、アソシエーティビ
ティを増大させることができる。次に、図3Bのブロッ
ク図を参照すると分かるように、2方向アソシエーティ
ブ・キャッシュ310bはC本のキャッシュ線を有す
る。各キャッシュ線は、ATフィールドとデータ・フィ
ールドの対を含み、各データ・フィールドは、それぞれ
のATフィールドにアソシエーティブに結合され、それ
によって、キャッシュ・ヒット確率が増加される。キャ
ッシュ300bは、比較器311、312とマルチプレ
クサ(MUX)313も含む。キャッシュ310bは、
キャッシュ150,251,242,...259のう
ちの1つでよい。2方向アソシエーティブ・キャッシュ
310bの動作を下記に示す。
【0009】プロセッサ、たとえばプロセッサ211が
物理アドレスを使用してキャッシュ310bにアクセス
する際、アドレスのキャッシュ・インデックス部分をオ
フセットとして使用して目標キャッシュ線対が見つけら
れる。この実施態様では、目標キャッシュ線の両方のイ
ンデックス付きATフィールドが検索され、比較器31
1、312によって物理アドレスのAT部分と比較され
る。どちらかの目標キャッシュ線とのキャッシュ・ヒッ
トがある場合、比較器311、312の制御の下でMU
X313によって適当なデータ・フィールドが選択さ
れ、選択されたデータ・フィールドが要求側プロセッサ
211に提供される。特定の実施態様に応じて、物理バ
イト・アドレスの下位ビットを使用して、目標キャッシ
ュ線内の当該のバイトを抽出し、それによってMUX3
13のビット幅を減少させることができる。
【0010】したがって、キャッシュ150,251,
252,...259は、プロセッサの平均アクセス・
パターンの時間空間的ローカリティを利用することによ
って、メイン・メモリ130とそれぞれプロセッサ11
0,211,212,...219との間の高速デポジ
トリとして機能する。空間的ローカリティは、キャッシ
ュがキャッシュ線へのあるアクセス時に、要求されたデ
ータに隣接するデータを取り込むときに必ず利用され
る。したがって、使用される可能性が高い命令/データ
を事前に取り込み、再使用される可能性が高い命令/デ
ータを保持する命令取り出し予想などの技法と組み合わ
せてキャッシュ150,251,252,...259
を使用すると、コンピュータ・システム100、200
の前述のメモリ・ボトルネックは部分的に軽減される。
【0011】図4は、7方向アソシエーティブ・キャッ
シュ410にアクセスするための例示的な従来技術のT
LB420、仮想アドレス430、対応する物理アドレ
ス440を示す。TLB420は、TLB110a,2
11a,212a,...219aのうちのどれかでよ
い。通常、メイン・メモリ130およびTLB420は
ページ指向であり、これに対して、キャッシュ410は
キャッシュ線を使用して構成される。TLB420のフ
リー・アソシエーティブ実施態様では、「TLB参照」
が下記のように実行される。
【0012】第1のプロセッサ、たとえばプロセッサ2
11は、TLB420中のあらゆる項目のそれぞれの仮
想アドレス(VA)フィールドをVA430のページ・
インデックス部分と比較する。図4に示したこの例で
は、たとえばTLB項目420aとのヒットがある場
合、TLB項目420aのPA値の8ビット部分がVA
430の7ビット・ページ・オフセット部分と組み合わ
され、キャッシュ410のあらゆるセグメントにアクセ
スするための15ビット・インデックスが形成される。
【0013】残念なことに、TLB項目ヒットの後で
も、プロセッサ211は依然として、キャッシュ410
の7つのセグメント411,412,413,...4
17のうちのどれが目標キャッシュ線を含むかの知識を
有さない。これは、目標キャッシュ線が最初にキャッシ
ュされたときに目標キャッシュ線に対応する方向情報、
すなわちセグメント識別がプロセッサ211によって破
棄され、さらに、従来型のTLB420には、方向情報
を記憶または使用する機構がないからである。
【0014】したがって、目標キャッシュ線を見つける
ために、それぞれの比較器451,452,...45
7によって、検索されたキャッシュ線411a,412
a,413a,...417aのそれぞれのATフィー
ルドとTLB項目420aから得たPA値の残りの部分
との間で第2の1組の7つの比較を行う必要がある。合
致、すなわちキャッシュ・ヒットがある場合、合致する
キャッシュ線のデータ・フィールドが検索され、プロセ
ッサ211に提供される。
【0015】したがって、従来型の「TLB参照」方式
の大きな欠点は、プロセッサ211が2つの異なるレベ
ルの比較を実行する必要があることである。さらに、第
2のレベルの複数の比較は、第1のレベルの比較が完了
するまで実行することができない。
【0016】比較器451,452,453,...4
57の速度を増加させる1つの方法は、比較器451,
452,453,...457およびキャッシュ410
のあらゆるATフィールドをプロセッサと同じIC上に
物理的に配置することである。しかし、そのような配置
では、プロセッサICの寸法が大幅に増大し、プロセッ
サの歩留まりが低下する。
【0017】
【発明が解決しようとする課題】したがって、単一プロ
セッサ・コンピュータ・システムとマルチプロセッサ・
コンピュータ・システムの両方に適し、方向情報を利用
して、キャッシュされた情報の高速で効率的な検索を実
行し、プロセッサの寸法を大幅に増加せずに小型の装置
として実施することができる効率的なキャッシュ・タグ
付け方式が必要である。
【0018】
【課題を解決するための手段】本発明は、メイン・メモ
リと1つまたは複数のプロセッサとを有するコンピュー
タ・システムの多方向キャッシュに効率的にアクセスす
るために、キャッシュ線が最初にキャッシュされたとき
に得られる方向情報を利用するアドレス変換テーブル
(ATT)と共に使用すべきキャッシュ・マネージャ
(CM)を提供する。メイン・メモリおよびATTはペ
ージ指向であり、これに対して、キャッシュはキャッシ
ュ線を使用して構成される。CMは、ATTを介して多
方向キャッシュの内容を追跡する。キャッシュは、「方
向」の数に対応するいくつかのセグメントに分割された
複数のキャッシュ線を含む。各キャッシュ線は、アドレ
ス・タグ(AT)フィールドとデータ・フィールドとを
含む。
【0019】本発明によれば、キャッシュ線が最初にキ
ャッシュされたときに得られる有用な方向情報は、破棄
されずに、後のキャッシュ・アクセスのためにATTに
記憶される。この実施態様では、「ウェイレット(wayl
et)」が、キャッシュ線がキャッシュされたときに方向
情報を記憶する効率的な機構を提供する。したがって、
ATTの各テーブル項目は、仮想アドレス(VA)フィ
ールドと、物理アドレス(PA)フィールドと、VAフ
ィールドとPAフィールドの各対に関連する複数のウェ
イレットとを含む。方向情報を記憶する他の手段も可能
である。その後、ウェイレットを使用して、キャッシュ
のあらゆるセグメントにアクセスする必要なしにキャッ
シュの単一のセグメントに直接、かつ迅速にインデック
ス付けすることができる。
【0020】各ウェイレット中のビット数は、「方向」
の数に依存する。無効な値用にあるウェイレット値が予
約される。この実施態様では、ウェイレット・ビットの
数は方向の数の対数基底2に1を加えた値(log
2(way+1 ))に等しい。たとえば、1方向キャッ
シュには1ビット・ウェイレットが必要であり、2方向
キャッシュまたは3方向キャッシュには2ビット・ウェ
イレットが必要である。
【0021】ATTを介したCMによるキャッシュのア
クセスは下記のとおりである。CMは、目標キャッシュ
線の仮想アドレスを受け取ったときに、1つのATT項
目の仮想アドレス・フィールドを仮想アドレスのページ
・インデックス部分と突き合わせようとする。合致があ
る場合、仮想アドレスのページ・オフセット部分を使用
してATT項目のウェイレットが検索される。ウェイレ
ット値が有効である場合、CMは、このウェイレット
値、ATT項目の物理アドレス・フィールド、仮想アド
レスのページ・オフセット部分を使用して単一のキャッ
シュ線に直接インデックス付けする。
【0022】次いで、検索されたキャッシュ線のATフ
ィールドとATT項目の物理アドレス・フィールドの一
部が突き合わされ、すなわち「正常性」検査が試みられ
る。ATフィールドが合致した場合、プロセッサは、V
Aのページ・オフセット部分を使用してキャッシュ線の
データ・フィールドを検索する。ATフィールドが合致
しない場合、メイン・メモリから目標キャッシュ線が検
索され、ATTとメイン・メモリの両方のウェイレット
値が更新される。利用可能なキャッシュ線がなく、すな
わち対応する7つの「方向が」占有されている場合、置
き換え用に古いキャッシュ線が選択される。この実施態
様では、「ダーティ」、すなわち修正されたキャッシュ
線は、キャッシュからパージされる際にメイン・メモリ
に書き直される。
【0023】逆に、1つのATT項目の仮想アドレス・
フィールドと仮想アドレスのページ・インデックス部分
が合致しない場合、メイン・メモリからのATT項目の
検索が試みられる。メイン・メモリからATT項目が取
り出されると、前述のようにキャッシュがアクセスされ
る。しかし、メイン・メモリにATT項目が存在せず、
すなわちページ・フォルトである場合、新しいATT項
目を作成する必要がある。
【0024】簡単に言えば、ウェイレットは有利には、
単一のキャッシュ線に直接インデックス付けし、それに
よって、キャッシュ中のセグメントの数にはかかわらず
に複数のAT値の第2レベルの比較を単一の「正常性」
検査として大幅に低減させる効率的で小型の機構を提供
する。この場合、インデックス付けされたキャッシュ線
からのデータの事前取り出しが可能であり、検索プロセ
スがさらに合理化され、キャッシュ・アクセス速度が大
幅に増加する。また、小型ATTは、プロセッサの歩留
まりをそれほど低減させずにプロセッサICの一部とし
て製造することができる。
【0025】
【発明の実施の形態】以下の説明では、本発明を完全に
理解してもらうために多数の詳細を示す。これらの詳細
には、機能ブロックと、効率的なキャッシュ・タグ付け
方式を実施するうえで設計者を助ける例示的なアドレス
変換テーブル(ATT)が含まれる。また、本発明のキ
ャッシュ・タグ付け方式を特定のキャッシュおよびコン
ピュータ・アーキテクチャに関して説明するが、本発明
は広範囲のメモリおよびシステム・アーキテクチャに適
用することができる。他の例では、本発明を不必要にあ
いまいにしないように周知の回路および構造に関しては
詳しく説明しない。
【0026】本発明は、図5の単一プロセッサ・システ
ム500と図6のマルチプロセッサ・システム600の
両方に関して有用であるが、この議論の目的上、ATT
を単一プロセッサ・システム500に関して例示する。
コンピュータ・システム500、600はそれぞれ、メ
イン・メモリ510、610と、システム相互接続機構
120と、メイン・メモリ130と、大容量記憶装置1
40と、モニタ160と、キーボード/マウス170と
を含む。
【0027】本発明によれば、システム500、600
はそれぞれ、それぞれのATT510bおよび611
b,612b,...619bと共に使用すべきキャッ
シュ・マネージャ(CM)510aおよび611a,6
12a,...619aも含む。この例では、メイン・
メモリ530は論理的に8Kバイト・ページとして分割
される。仮想アドレスは、選択されたページの境界にイ
ンデックス付けするための51ビット・インデックス部
分と、選択されたページ内の目標バイトにアクセスする
ための13ビット・オフセット部分とを含む。同様に、
物理アドレスは、31ビット・ページ・インデックス部
分と13ビット・ページ・オフセット部分とを含む。
【0028】タグ付けテーブルおよびキャッシュの構造 図7は、例示的な小型アドレス変換テーブル(ATT)
720と、7方向キャッシュ710に効率的にアクセス
するための仮想アドレス(VA)730および物理アド
レス(PA)740を示す。ATT720およびキャッ
シュ710はそれぞれ、ATT510bおよびキャッシ
ュ550を表す。
【0029】本発明によれば、キャッシュ線が最初にキ
ャッシュ710に記憶されたときに得られる有用な方向
情報が、破棄されずに、後で使用できるようにATT7
20に記憶される。この実施形態では、ATT720の
「ウェイレット」は、方向情報を記憶する効率的な機構
を提供する。したがって、ATT720の512個の項
目のそれぞれ、たとえば項目720aは、識別子フィー
ルド、たとえばVAフィールドおよびPAフィールド
と、2つ以上のウェイレットとを含む。メイン・メモリ
530およびATT720がページ指向であり、これに
対して、キャッシュ710がキャッシュ線を使用して構
成されるので、各ATT項目中のウェイレットの数は、
キャッシュ線とメモリ・ページの比に対応する。この例
では、ATT720の各項目は128個のウェイレット
を含む。ウェイレットをVAフィールドおよびPAフィ
ールドとして同じRAM構造に記憶することも、あるい
は別のRAM構造に記憶することもできることに留意さ
れたい。
【0030】各ウェイレット中のビット数は「方向」の
数に依存する。無効な値用にあるウェイレット値が予約
される。したがって、方向ビットの最小数は方向の数の
log2に1を加えた値(log2(way+1) )に
等しい。この例では、3ビット・ウェイレットを使用し
て7方向キャッシュ710がサポートされる。
【0031】キャッシュ710は、7つの2メガバイト
方向指向セグメント711,712,...717とし
て分割された7方向アソシエーティブ・キャッシュであ
る。各セグメントは32Kキャッシュ線を含み、各キャ
ッシュ線の長さは64バイトである。CM510aは、
キャッシュ710に迅速にアクセスするために、図5に
示したようにプロセッサ510の一部として製造するこ
とができる。さらに、ATT720は小型であり、AT
T510bとしてプロセッサICに組み込むこともでき
る。
【0032】タグ付けテーブルを使用するキャッシュの
データへのアクセス 次に、図8のフローチャートを参照すると分かるよう
に、プロセッサ510がメイン・メモリ530中の位置
にアクセスする必要があるとき、キャッシュ710の最
初の探索が試みられる。まず、CM510aは仮想アド
レス(VA)730のページ・インデックス部分をAT
T720中の各項目のVAフィールドと比較する(ステ
ップ820)。
【0033】ATT720中に合致があり、たとえばA
TT項目720aが合致する場合(ステップ825)、
CM510aは、VA730のページ・オフセット部分
を使用して項目720aからウェイレットを検索する
(ステップ840)。次いで、ウェイレット値の妥当性
が試験される(ステップ850)。この例では、ウェイ
レットに関する有効な2進ビット値は、それぞれ、キャ
ッシュ710の第1のセグメント711、第2のセグメ
ント712、第7のセグメント717に対応する”00
0b”,”001b”,...”110b”である。ウ
ェイレット値”111b”は無効であり、キャッシュ
(線)ミスを示す。キャッシュ・ミスは、下記のステッ
プ880で説明するように処理される。
【0034】ウェイレット値が有効である場合、CM5
10aは、このウェイレット値、ATT項目720aの
PAフィールド、VA730のページ・オフセット部分
を使用して目標キャッシュ線、たとえば線712aにイ
ンデックス付けする(ステップ860)。次に、目標キ
ャッシュ線のアドレス・タグ(AT)フィールドとAT
T項目720aのPAフィールドを比較することによっ
て「正常性」検査が実行される(ステップ870)。そ
の間に、CM510aは任意選択で、キャッシュ・ヒッ
トを予期してキャッシュ710から目標キャッシュ線7
12aのデータ・フィールドをスペキュラティブに取り
出すことができる。正常性検査が、キャッシュ710中
のセグメントの数にはかかわらずに単一のキャッシュ線
712aのATフィールドのみ用いて行われることに留
意されたい(ステップ875)。
【0035】正常性検査に合格し、すなわちキャッシュ
(線)ヒットのとき、目標キャッシュ線712aのスペ
キュラティブに取り出されたデータ・フィールドが要求
側プロセッサ510に提供される(ステップ890)。
正常性検査で不合格であり、すなわち、キャッシュ・ミ
スである場合、下記で説明するようにメイン・メモリ5
30から新しい目標キャッシュ線を検索する必要がある
(下記で詳しく説明するステップ880を参照)。
【0036】逆に、合致するATT項目がATT720
に存在しない場合(ステップ825)、合致するATT
項目をメイン・メモリ530から取り出すことが試みら
れる(ステップ830)。合致するATT項目がメイン
・メモリ530で見つかった場合(ステップ835)、
ATT720が更新される(下記で詳しく説明するステ
ップ838を参照)。次に、CM510aは、上記で説
明したようにステップ840ないしステップ880を実
行する。
【0037】試験835に戻り、合致するATT項目を
メイン・メモリ530内で見つけることができず、すな
わちページ・フォルトである場合、下記で説明するよう
にテーブル720用の新しいATT項目を作成すること
ができる(下記で詳しく説明するステップ837を参照
されたい)。
【0038】アドレス変換テーブル(ATT)の項目の
更新(ステップ838) 図9は、ATT720中の項目を更新するプロセスを示
す詳細なフローチャートである。まず、CM510a
は、空きATT項目を探してATT720を走査する
(ステップ638a)。ATT720が満杯である場
合、古い(既存の)ATT項目が、置換すべき項目とし
て選択される(ステップ838b)。いくつかの周知の
アルゴリズム、たとえばLRUを使用して古いATT項
目を選択することができる。選択された古いATT項目
は次いで、メイン・メモリ530に書き直される(ステ
ップ838c)。
【0039】いずれの場合も(ステップ838a)、合
致するATT項目または新しいATT項目がATT72
0に書き込まれる(ステップ838d)。
【0040】メイン・メモリ530に「ダーティ」キャ
ッシュ線を書き直す必要がある場合にのみ、CM510
aによって古いATT項目を一時的に保持することがで
きることに留意されたい。キャッシュ線は、その内容が
メイン・メモリ530中の親コピーとは異なるときに
「ダーティ」である。しかし、この実施形態では、効率
のために、古いATT項目に関連するキャッシュ線は、
それが「ダーティ」であり、後でキャッシュ710から
パージされるのでないかぎり、メイン・メモリ530に
書き直されることはない。
【0041】キャッシュ(線)ミスの後のキャッシュ線
の置換(ステップ880) 図10は、キャッシュ710中のキャッシュ線の置換を
示す詳細なフローチャートである。キャッシュ710内
で目標キャッシュ線が見つからず、すなわちキャッシュ
・ミスである場合、メイン・メモリ530から目標キャ
ッシュ線を検索する必要がある(ステップ881)。検
索された(新しい)目標キャッシュ線のデータ・フィー
ルドはプロセッサ510に迅速に提供することができる
ので(ステップ882)、新しい目標キャッシュ線のキ
ャッシュ710へのキャッシングは、プロセッサ110
に関するクリティカル・パスを用いずに完了することが
できる。
【0042】CM510aは、目標(新しい)キャッシ
ュ線をキャッシュするために7つのセグメント711,
712,...717に対応する7つの可能なキャッシ
ュ線からキャッシュ710中の適当な位置を探索する
(ステップ883)。この実施形態では、いくつかの周
知のアルゴリズムのうちの1つ、たとえばLRUを使用
することによって、置換すべき適当なキャッシュ位置が
選択される。選択されたキャッシュ線、すなわち古いキ
ャッシュ線の内容がダーティである場合、たとえば「状
態」ビットがセットされているとき、ATT720のP
Aフィールドを使用してその古いキャッシュ線をメイン
・メモリ530にコピーする必要がある(ステップ88
4)。
【0043】次に、選択されたキャッシュ線位置に目標
(新しい)キャッシュ線を記憶することができる(ステ
ップ885)。
【0044】次に、合致し、あるいは更新されたATT
項目のウェイレット値が更新される(ステップ88
6)。同じウェイレット値がメイン・メモリ530にも
記憶され、目標キャッシュ線が「キャッシュ済み」とマ
ーク付けされる(ステップ887)。
【0045】ウェイレット値をメイン・メモリ530に
記憶して、前にキャッシュされたキャッシュ線をマーク
付けすることによって、「エイリアシング」問題が防止
される。エイリアシング問題は、CM510aが、異な
るVAを有するが、同じPAを有する第2のキャッシュ
線をキャッシュしようとするときに発生する。そのよう
な状況では、両方のATT項目が、共通のキャッシュ線
に対応する同じウェイレット値を含むべきである。した
がって、キャッシュ線がキャッシュされるたびにメイン
・メモリ530にウェイレット値を記憶することによっ
て、CM510aは、後で同じキャッシュ線(すなわ
ち、同じPAであるが、異なるVA)に到達しようとす
る際に、第2のATT項目に同じウェイレット値を割り
当てることができ、そのため、2つのATT項目は共
に、キャッシュ710中のキャッシュ線の単一のコピー
にインデックス付けすることができる。
【0046】他の実施例では、ウェイレットがメイン・
メモリ530に記憶されるのではなく、ATT項目がA
TT720にロードされるたびに、対応するすべてのウ
ェイレットが無効化される。その後、キャッシュ線ミス
が発生し、ウェイレットが更新される。これによって、
ATT項目を置き換える際に、メイン・メモリ530に
ウェイレット情報を記憶することは不要になる。
【0047】他の実施例では、「ウェイレット無効」状
態だけでなく、「共用」などの状態も各ウェイレットと
共にATT720に記憶される。共用キャッシュ線は、
CM510aからしか読み取られず、したがって「ダー
ティ」であることはない。したがって、重複共用キャッ
シュ線によってエイリアシング問題が生じることはな
い。その後、共用キャッシュ線に書込みを行う必要が生
じたときには、残りの共用キャッシュ線(のみ)に上書
きし、その状態を共用からダーティに変更する前にま
ず、CM501aを走査して目標キャッシュ線の重複コ
ピーをなくして(無効化して)おかなければならない。
【0048】他の実施例では、方向情報はメイン・メモ
リ530で記憶されない。その代わり、キャッシュ・ミ
スに関して、すべての7つの方向のATフィールドを、
要求されたアドレスと比較して、要求されたキャッシュ
線がすでにキャッシュ710に存在しているかどうかを
知ることによってエイリアシング問題が回避される。こ
のような比較は、メモリ・アクセスと並行して行うこと
ができる。多方向比較が、ATT720からウェイレッ
ト情報が得られないときにしか必要とされないので、こ
の方式は従来技術よりも効果的である。
【0049】ページ・フォルト(ステップ837) ページ・フォルトが発生するのは、合致するテーブル項
目をメイン・メモリ530内で見つけることができず、
ATT720内で新しいATT項目、たとえば項目72
0aを作成することができるときである。その後、AT
T720は前述のステップ833の場合と同様に更新さ
れる。次いで、メイン・メモリ530から目標キャッシ
ュ線が検索され、プロセッサ510にデータが提供さ
れ、ATT項目720aの対応するウェイレットが、前
述のステップ880の場合と同様に更新される。メイン
・メモリ530内で目標ページが見つからない場合、目
標ページはまず、大容量記憶装置140から検索され、
メイン・メモリ530に記憶される。
【0050】ウェイレットを使用する利点 本発明のウェイレットは、従来技術に勝るいくつかの利
点を提供する。
【0051】このようなウェイレットは、キャッシュ7
10の方向情報の効率的で小型のデポジトリを形成し、
プロセッサICの寸法をそれほど増大せずにATT72
0をプロセッサ510の一部として製造できるように
し、同時に、キャッシュ710のアクセス速度を増加さ
せる。
【0052】AT値の第2レベルの比較も大幅に簡略化
される。ウェイレットによって、キャッシュ710の単
一のセグメント、たとえばセグメント712の単一の目
標キャッシュ線が直接インデックス付けされるので、例
示的なキャッシュ710のセグメント数にはかかわらず
に、キャッシュ線のAT値の単一の比較、すなわち単一
の正常性検査を行うだけでよい。さらにこの場合、目標
キャッシュ線のデータ部分の事前取り出しが可能であ
り、検索プロセスがさらに合理化され、キャッシュ・ア
クセス速度が大幅に増加する。
【0053】本発明の範囲 本発明を特定の実施例に関して説明したが、本発明の趣
旨から逸脱せずに多数の追加および修正が可能である。
たとえば、方向の数はこれより多くても、あるいは少な
くともよい。キャッシュ線サイズおよびページ・サイズ
も、これより小さくても、あるいは大きくてもよい。し
たがって、本発明の範囲は特許請求の範囲によって決定
されるべきである。
【図面の簡単な説明】
【図1】 単一プロセッサ・コンピュータ・システムの
ブロック図である。
【図2】 マルチプロセッサ・コンピュータ・システム
のブロック図である。
【図3】 1方向キャッシュを示すブロック図(A)と
2方向キャッシュからのデータの検索を示す図(B)で
ある。
【図4】 仮想アドレスを使用する7方向キャッシュか
らのデータの検索を示す図である。
【図5】 本発明の単一プロセッサ・コンピュータ・シ
ステムのブロック図である。
【図6】 本発明のマルチプロセッサ・コンピュータ・
システムのブロック図である。
【図7】 多方向キャッシュにアクセスするために図5
および6のプロセッサに組み込むのに適した小型アドレ
ス変換テーブル(ATT)の一実施例を示すブロック図
である。
【図8】 図7のATTを使用して多方向キャッシュに
アクセスする方法を示すフローチャートである。
【図9】 図7のATTを使用して多方向キャッシュに
アクセスする方法を示すフローチャートである。
【図10】 図7のATTを使用して多方向キャッシュ
にアクセスする方法を示すフローチャートである。
【符号の説明】
100 単一プロセッサ・コンピュータ・システム 110 プロセッサ 120 システム相互接続機構 130 メイン・メモリ 140 大容量記憶装置 150 キャッシュ 160 モニタ 170 キーボード/マウス 200 マルチプロセッサ・コンピュータ・システム 311 比較器 313 マルチプレクサ(MUX) 411 セグメント 411a キャッシュ線 420 TLB 420a TLB項目 430 仮想アドレス 440 物理アドレス 410 7方向アソシエーティブ・キャッシュ 500 マルチプロセッサ・システム 510a キャッシュ・マネージャ(CM) 510b アドレス変換テーブル(ATT)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アショク・シンガル アメリカ合衆国 94062 カリフォルニア 州・レドウッド シティ・レイクミード ウエイ・711

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサとメイン・メモリとを有する
    コンピュータ・システムに関連付けられた多方向キャッ
    シュにアクセスする方法であって、 ページ・インデックス部分とページ・オフセット部分と
    を有する目標キャッシュ線の仮想アドレスを受け取るス
    テップと、 アドレス変換テーブル(ATT)項目の仮想アドレス・
    フィールドを前記ページ・インデックス部分と突き合わ
    せるステップと、 ページ・オフセット部分を使用して前記ATT項目のウ
    ェイレットを検索するステップと、 前記ウェイレット、前記ATT項目のアドレス・フィー
    ルド、前記ページ・オフセット部分を使用して前記多方
    向キャッシュの単一のキャッシュ線にインデックス付け
    するステップと、 前記単一のキャッシュ線のアドレス・タグ(AT)フィ
    ールドを前記物理アドレス・フィールドに突き合わせる
    ステップと、 前記ページ・オフセット部分を使用して、前記単一のキ
    ャッシュ線のデータ・フィールドを検索するステップと
    を含むことを特徴とする方法。
  2. 【請求項2】 プロセッサとメイン・メモリとを有する
    コンピュータ・システムに関して有用な多方向キャッシ
    ュにタグ付けする方法であって、 前記多方向キャッシュの少なくとも1つのキャッシュ線
    に関連付けられた識別子を記憶するステップと、 前記1つのキャッシュ線の方向情報をアソシエーティブ
    に記憶するステップとを含むことを特徴とする方法。
  3. 【請求項3】 プロセッサとメイン・メモリとを有する
    コンピュータ・システムに関して有用な多方向キャッシ
    ュからキャッシュ線を検索する方法であって、 ページ・インデックス部分とページ・オフセット部分と
    を有する目標キャッシュ線のアドレスを受け取るステッ
    プと、 タグ付けテーブル項目の第1のアドレス・フィールドを
    前記ページ・インデックス部分と突き合わせるステップ
    と、 ページ・オフセット部分を使用して、前記タグ付けテー
    ブル項目から方向情報を検索するステップとを含むこと
    を特徴とする方法。
  4. 【請求項4】 プロセッサとメイン・メモリとを有する
    コンピュータ・システムに関連付けられた多方向キャッ
    シュにアクセスするタグ付けテーブルであって、 前記キャッシュが、前記多方向キャッシュの方向の数に
    対応する2つ以上のセグメントに分割された複数のキャ
    ッシュ線を有し、前記タグ付けテーブルが、 それぞれ、 識別子フィールドと、 前記1つのセグメントにインデックス付けするために前
    記識別子フィールドにアソシエーティブに結合された方
    向情報とを含む複数のテーブル項目を備えることを特徴
    とするタグ付けテーブル。
  5. 【請求項5】 多方向キャッシュにアクセスするステッ
    プのシーケンスを有する手順の実行を制御するようプロ
    セッサに命令するために使用できるコンピュータ読取り
    可能なメモリであって、 それぞれ、識別子フィールドと方向情報フィールドとを
    含む、複数の項目を有するタグ付けテーブルと、 ページ・インデックス部分とページ・オフセット部分と
    を有する目標キャッシュ線のアドレスを受け取り、 タグ付けテーブルの前記1つの項目の識別子フィールド
    を前記ページ・インデックス部分と突き合わせ、 ページ・オフセット部分を使用して前記1つの項目の方
    向情報フィールドを検索するように構成されたキャッシ
    ュ・マネージャ(CM)とを備えるコンピュータ読取り
    可能なメモリ。
  6. 【請求項6】 それぞれ、識別子フィールドと方向情報
    フィールドとを含む、複数の項目を有するタグ付けテー
    ブルと、 ページ・インデックス部分とページ・オフセット部分と
    を有する目標キャッシュ線のアドレスを受け取り、 タグ付けテーブルの前記1つの項目のアドレス・フィー
    ルドを前記ページ・インデックス部分と突き合わせ、 ページ・オフセット部分を使用して、前記1つの項目の
    方向情報フィールドを検索するように構成されたキャッ
    シュ・マネージャ(CM)とを含む、前記多方向キャッ
    シュに結合されたプロセッサと、 前記プロセッサに結合された多方向キャッシュと、 前記プロセッサに結合されたシステム相互接続機構と、 前記システム相互接続機構に結合されたメイン・メモリ
    とを備えるコンピュータ・システム。
JP8195285A 1995-07-07 1996-07-08 多方向アソシエーティブ・キャッシュにタグ付けする方法および装置 Ceased JPH09223067A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/499590 1995-07-07
US08/499,590 US5778427A (en) 1995-07-07 1995-07-07 Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure

Publications (1)

Publication Number Publication Date
JPH09223067A true JPH09223067A (ja) 1997-08-26

Family

ID=23985861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8195285A Ceased JPH09223067A (ja) 1995-07-07 1996-07-08 多方向アソシエーティブ・キャッシュにタグ付けする方法および装置

Country Status (4)

Country Link
US (1) US5778427A (ja)
EP (1) EP0752662B1 (ja)
JP (1) JPH09223067A (ja)
DE (1) DE69626070T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215911A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd 情報処理装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6678792B2 (en) 2001-06-22 2004-01-13 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
DE10158393A1 (de) 2001-11-28 2003-06-12 Infineon Technologies Ag Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US7725620B2 (en) * 2005-10-07 2010-05-25 International Business Machines Corporation Handling DMA requests in a virtual memory environment
US7533198B2 (en) * 2005-10-07 2009-05-12 International Business Machines Corporation Memory controller and method for handling DMA operations during a page copy
TWI377473B (en) * 2008-11-21 2012-11-21 Sunplus Innovation Technology Inc Serial interface cache controller, control method and micro-controller system using the same
US8806137B2 (en) * 2011-06-17 2014-08-12 Lsi Corporation Cache replacement using active cache line counters
US9684601B2 (en) * 2012-05-10 2017-06-20 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US10671543B2 (en) * 2013-11-21 2020-06-02 Samsung Electronics Co., Ltd. Systems and methods for reducing first level cache energy by eliminating cache address tags
US10019368B2 (en) 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
CN105208596A (zh) * 2014-06-17 2015-12-30 中兴通讯股份有限公司 一种表头压缩方法、解压方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699533A (en) * 1970-10-29 1972-10-17 Rca Corp Memory system including buffer memories
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
EP0461926B1 (en) * 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
US5418922A (en) * 1992-04-30 1995-05-23 International Business Machines Corporation History table for set prediction for accessing a set associative cache
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215911A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd 情報処理装置

Also Published As

Publication number Publication date
EP0752662B1 (en) 2003-02-05
DE69626070T2 (de) 2003-09-25
DE69626070D1 (de) 2003-03-13
US5778427A (en) 1998-07-07
EP0752662A1 (en) 1997-01-08

Similar Documents

Publication Publication Date Title
US7870340B2 (en) Methods and apparatus for controlling hierarchical cache memory
US5577227A (en) Method for decreasing penalty resulting from a cache miss in multi-level cache system
KR100389549B1 (ko) 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조
US6912623B2 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US6990557B2 (en) Method and apparatus for multithreaded cache with cache eviction based on thread identifier
JPH09223067A (ja) 多方向アソシエーティブ・キャッシュにタグ付けする方法および装置
US5070502A (en) Defect tolerant set associative cache
JP3718302B2 (ja) 命令取り出し方法および装置
US7577793B2 (en) Patrol snooping for higher level cache eviction candidate identification
JPS60214059A (ja) キヤツシユ機構
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
EP0911737A1 (en) Cache memory with reduced access time
JPH07200399A (ja) マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法
JP2002536716A (ja) 仮想メモリシステムにおけるメモリアクセスの改善技術
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
US6772299B2 (en) Method and apparatus for caching with variable size locking regions
US5897651A (en) Information handling system including a direct access set associative cache and method for accessing same
US6715040B2 (en) Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
JPH05216766A (ja) データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置
US6397298B1 (en) Cache memory having a programmable cache replacement scheme
JPS623354A (ja) キヤツシユメモリ・アクセス方式
US6581139B1 (en) Set-associative cache memory having asymmetric latency among sets

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070403

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20070821