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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way 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
マルチプロセッサ・コンピュータ・システムの両方に適
し、方向情報を利用して、キャッシュされた情報の高速
で効率的な検索を実行し、プロセッサの寸法を大幅に増
加せずに小型の装置として実施することができる効率的
なキャッシュ・タグ付け方式を提供する。 【解決手段】 キャッシュ線が最初にキャッシュされた
ときに得られる有用な方向情報は、破棄されずに、後の
キャッシュ・アクセスのためにATTに記憶される。ウ
ェイレットが、キャッシュ線がキャッシュされたときに
方向情報を記憶する効率的な機構を提供する。
Description
ュの分野に関する。詳細には、本発明は効率的なタグ付
け方式に関する。
相互接続機構120と、メイン・メモリ130と、大容
量記憶装置140と、モニタ160と、キーボード/マ
ウス170とを含む単一プロセッサ・コンピュータ・シ
ステム100のブロック図である。コンピュータ・シス
テム100など従来型のコンピュータ・システムでは、
プログラム実行の前に、プログラムの命令およびデータ
構造が大容量記憶装置140、通常はハード・ディスク
・ドライブから、メイン・メモリ130、通常は廉価で
あるが低速の動的ランダム・アクセス・メモリ(DRA
M)にロードされる。その後、プログラム実行時に、プ
ロセッサ110は必要に応じシステム相互接続機構12
0を介して、メイン・メモリ130に記憶されている命
令およびデータにアクセスする。
が増大するにつれて、コンピュータ・システム100の
命令/データ処理機能は、プロセッサ・バウンドではな
くメモリ・バウンドになっている。これは1つには、メ
イン・メモリ130のアクセス速度を増加させた技術的
な進歩が、プロセッサ110の内部命令/データ処理機
能を増大させた進歩に追いついていないからである。そ
の結果、プロセッサ110の効率は、システム相互接続
機構120を介してメイン・メモリ130とプロセッサ
110との間でデータおよび命令を転送することができ
る速度によって抑制される。
リ・ボトルネックが存在する。図2は、共通のシステム
相互接続機構120を介して互いに結合されメイン・メ
モリ130および大容量記憶装置140に結合された複
数のプロセッサ211,212,...219を有す
る、そのようなあるマルチプロセッサ・コンピュータ・
システム200のブロック図である。
ネックに対する部分的な解決策は、それぞれのプロセッ
サに直接接続された、より小型で高速であるがより高価
なキャッシュ、通常は静的ランダム・アクセス・メモリ
(SRAM)を導入することである。図1および2に示
したように、各プロセッサはキャッシュに関連付けられ
る。たとえば、プロセッサ211はキャッシュ251に
結合される。実施態様に応じて、キャッシュ150,2
51,252,...259を直接、システム相互接続
機構120に結合することもできる。
来型のアソシエーティブ・キャッシュ310aの例示的
な実施態様を示す。各キャッシュ線は、アドレス・タグ
(”AT”)フィールドと、ATフィールドにアソシエ
ーティブに結合されたデータ・フィールドの2つのフィ
ールドを含む。この方式において各キャッシュ線の物理
アドレスは対応するAT部分およびインデックス部分を
有する。キャッシュ300aは、キャッシュ150また
はキャッシュ251,242,...259のうちの1
つを例示したものである。
は、物理アドレス(PA)のインデックス部分をキャッ
シュ310aの1番上に対するオフセットとして使用し
て目標キャッシュ線を見つけることによって、目標キャ
ッシュ線、たとえばn番目のキャッシュ線にアクセスす
る。次に、キャッシュ線物理アドレスのAT部分が目標
キャッシュ線のATフィールドの内容と比較される。そ
れぞれのAT値が合致する場合、「キャッシュ・ヒッ
ト」があり、目標キャッシュ線のデータ・フィールドが
プロセッサ110に提供される。
めに、キャッシュを拡張すると共に、アソシエーティビ
ティを増大させることができる。次に、図3Bのブロッ
ク図を参照すると分かるように、2方向アソシエーティ
ブ・キャッシュ310bはC本のキャッシュ線を有す
る。各キャッシュ線は、ATフィールドとデータ・フィ
ールドの対を含み、各データ・フィールドは、それぞれ
のATフィールドにアソシエーティブに結合され、それ
によって、キャッシュ・ヒット確率が増加される。キャ
ッシュ300bは、比較器311、312とマルチプレ
クサ(MUX)313も含む。キャッシュ310bは、
キャッシュ150,251,242,...259のう
ちの1つでよい。2方向アソシエーティブ・キャッシュ
310bの動作を下記に示す。
物理アドレスを使用してキャッシュ310bにアクセス
する際、アドレスのキャッシュ・インデックス部分をオ
フセットとして使用して目標キャッシュ線対が見つけら
れる。この実施態様では、目標キャッシュ線の両方のイ
ンデックス付きATフィールドが検索され、比較器31
1、312によって物理アドレスのAT部分と比較され
る。どちらかの目標キャッシュ線とのキャッシュ・ヒッ
トがある場合、比較器311、312の制御の下でMU
X313によって適当なデータ・フィールドが選択さ
れ、選択されたデータ・フィールドが要求側プロセッサ
211に提供される。特定の実施態様に応じて、物理バ
イト・アドレスの下位ビットを使用して、目標キャッシ
ュ線内の当該のバイトを抽出し、それによってMUX3
13のビット幅を減少させることができる。
252,...259は、プロセッサの平均アクセス・
パターンの時間空間的ローカリティを利用することによ
って、メイン・メモリ130とそれぞれプロセッサ11
0,211,212,...219との間の高速デポジ
トリとして機能する。空間的ローカリティは、キャッシ
ュがキャッシュ線へのあるアクセス時に、要求されたデ
ータに隣接するデータを取り込むときに必ず利用され
る。したがって、使用される可能性が高い命令/データ
を事前に取り込み、再使用される可能性が高い命令/デ
ータを保持する命令取り出し予想などの技法と組み合わ
せてキャッシュ150,251,252,...259
を使用すると、コンピュータ・システム100、200
の前述のメモリ・ボトルネックは部分的に軽減される。
シュ410にアクセスするための例示的な従来技術のT
LB420、仮想アドレス430、対応する物理アドレ
ス440を示す。TLB420は、TLB110a,2
11a,212a,...219aのうちのどれかでよ
い。通常、メイン・メモリ130およびTLB420は
ページ指向であり、これに対して、キャッシュ410は
キャッシュ線を使用して構成される。TLB420のフ
リー・アソシエーティブ実施態様では、「TLB参照」
が下記のように実行される。
11は、TLB420中のあらゆる項目のそれぞれの仮
想アドレス(VA)フィールドをVA430のページ・
インデックス部分と比較する。図4に示したこの例で
は、たとえばTLB項目420aとのヒットがある場
合、TLB項目420aのPA値の8ビット部分がVA
430の7ビット・ページ・オフセット部分と組み合わ
され、キャッシュ410のあらゆるセグメントにアクセ
スするための15ビット・インデックスが形成される。
も、プロセッサ211は依然として、キャッシュ410
の7つのセグメント411,412,413,...4
17のうちのどれが目標キャッシュ線を含むかの知識を
有さない。これは、目標キャッシュ線が最初にキャッシ
ュされたときに目標キャッシュ線に対応する方向情報、
すなわちセグメント識別がプロセッサ211によって破
棄され、さらに、従来型のTLB420には、方向情報
を記憶または使用する機構がないからである。
ために、それぞれの比較器451,452,...45
7によって、検索されたキャッシュ線411a,412
a,413a,...417aのそれぞれのATフィー
ルドとTLB項目420aから得たPA値の残りの部分
との間で第2の1組の7つの比較を行う必要がある。合
致、すなわちキャッシュ・ヒットがある場合、合致する
キャッシュ線のデータ・フィールドが検索され、プロセ
ッサ211に提供される。
の大きな欠点は、プロセッサ211が2つの異なるレベ
ルの比較を実行する必要があることである。さらに、第
2のレベルの複数の比較は、第1のレベルの比較が完了
するまで実行することができない。
57の速度を増加させる1つの方法は、比較器451,
452,453,...457およびキャッシュ410
のあらゆるATフィールドをプロセッサと同じIC上に
物理的に配置することである。しかし、そのような配置
では、プロセッサICの寸法が大幅に増大し、プロセッ
サの歩留まりが低下する。
セッサ・コンピュータ・システムとマルチプロセッサ・
コンピュータ・システムの両方に適し、方向情報を利用
して、キャッシュされた情報の高速で効率的な検索を実
行し、プロセッサの寸法を大幅に増加せずに小型の装置
として実施することができる効率的なキャッシュ・タグ
付け方式が必要である。
リと1つまたは複数のプロセッサとを有するコンピュー
タ・システムの多方向キャッシュに効率的にアクセスす
るために、キャッシュ線が最初にキャッシュされたとき
に得られる方向情報を利用するアドレス変換テーブル
(ATT)と共に使用すべきキャッシュ・マネージャ
(CM)を提供する。メイン・メモリおよびATTはペ
ージ指向であり、これに対して、キャッシュはキャッシ
ュ線を使用して構成される。CMは、ATTを介して多
方向キャッシュの内容を追跡する。キャッシュは、「方
向」の数に対応するいくつかのセグメントに分割された
複数のキャッシュ線を含む。各キャッシュ線は、アドレ
ス・タグ(AT)フィールドとデータ・フィールドとを
含む。
ャッシュされたときに得られる有用な方向情報は、破棄
されずに、後のキャッシュ・アクセスのためにATTに
記憶される。この実施態様では、「ウェイレット(wayl
et)」が、キャッシュ線がキャッシュされたときに方向
情報を記憶する効率的な機構を提供する。したがって、
ATTの各テーブル項目は、仮想アドレス(VA)フィ
ールドと、物理アドレス(PA)フィールドと、VAフ
ィールドとPAフィールドの各対に関連する複数のウェ
イレットとを含む。方向情報を記憶する他の手段も可能
である。その後、ウェイレットを使用して、キャッシュ
のあらゆるセグメントにアクセスする必要なしにキャッ
シュの単一のセグメントに直接、かつ迅速にインデック
ス付けすることができる。
の数に依存する。無効な値用にあるウェイレット値が予
約される。この実施態様では、ウェイレット・ビットの
数は方向の数の対数基底2に1を加えた値(log
2(way+1 ))に等しい。たとえば、1方向キャッ
シュには1ビット・ウェイレットが必要であり、2方向
キャッシュまたは3方向キャッシュには2ビット・ウェ
イレットが必要である。
クセスは下記のとおりである。CMは、目標キャッシュ
線の仮想アドレスを受け取ったときに、1つのATT項
目の仮想アドレス・フィールドを仮想アドレスのページ
・インデックス部分と突き合わせようとする。合致があ
る場合、仮想アドレスのページ・オフセット部分を使用
してATT項目のウェイレットが検索される。ウェイレ
ット値が有効である場合、CMは、このウェイレット
値、ATT項目の物理アドレス・フィールド、仮想アド
レスのページ・オフセット部分を使用して単一のキャッ
シュ線に直接インデックス付けする。
ィールドとATT項目の物理アドレス・フィールドの一
部が突き合わされ、すなわち「正常性」検査が試みられ
る。ATフィールドが合致した場合、プロセッサは、V
Aのページ・オフセット部分を使用してキャッシュ線の
データ・フィールドを検索する。ATフィールドが合致
しない場合、メイン・メモリから目標キャッシュ線が検
索され、ATTとメイン・メモリの両方のウェイレット
値が更新される。利用可能なキャッシュ線がなく、すな
わち対応する7つの「方向が」占有されている場合、置
き換え用に古いキャッシュ線が選択される。この実施態
様では、「ダーティ」、すなわち修正されたキャッシュ
線は、キャッシュからパージされる際にメイン・メモリ
に書き直される。
フィールドと仮想アドレスのページ・インデックス部分
が合致しない場合、メイン・メモリからのATT項目の
検索が試みられる。メイン・メモリからATT項目が取
り出されると、前述のようにキャッシュがアクセスされ
る。しかし、メイン・メモリにATT項目が存在せず、
すなわちページ・フォルトである場合、新しいATT項
目を作成する必要がある。
単一のキャッシュ線に直接インデックス付けし、それに
よって、キャッシュ中のセグメントの数にはかかわらず
に複数のAT値の第2レベルの比較を単一の「正常性」
検査として大幅に低減させる効率的で小型の機構を提供
する。この場合、インデックス付けされたキャッシュ線
からのデータの事前取り出しが可能であり、検索プロセ
スがさらに合理化され、キャッシュ・アクセス速度が大
幅に増加する。また、小型ATTは、プロセッサの歩留
まりをそれほど低減させずにプロセッサICの一部とし
て製造することができる。
理解してもらうために多数の詳細を示す。これらの詳細
には、機能ブロックと、効率的なキャッシュ・タグ付け
方式を実施するうえで設計者を助ける例示的なアドレス
変換テーブル(ATT)が含まれる。また、本発明のキ
ャッシュ・タグ付け方式を特定のキャッシュおよびコン
ピュータ・アーキテクチャに関して説明するが、本発明
は広範囲のメモリおよびシステム・アーキテクチャに適
用することができる。他の例では、本発明を不必要にあ
いまいにしないように周知の回路および構造に関しては
詳しく説明しない。
ム500と図6のマルチプロセッサ・システム600の
両方に関して有用であるが、この議論の目的上、ATT
を単一プロセッサ・システム500に関して例示する。
コンピュータ・システム500、600はそれぞれ、メ
イン・メモリ510、610と、システム相互接続機構
120と、メイン・メモリ130と、大容量記憶装置1
40と、モニタ160と、キーボード/マウス170と
を含む。
はそれぞれ、それぞれのATT510bおよび611
b,612b,...619bと共に使用すべきキャッ
シュ・マネージャ(CM)510aおよび611a,6
12a,...619aも含む。この例では、メイン・
メモリ530は論理的に8Kバイト・ページとして分割
される。仮想アドレスは、選択されたページの境界にイ
ンデックス付けするための51ビット・インデックス部
分と、選択されたページ内の目標バイトにアクセスする
ための13ビット・オフセット部分とを含む。同様に、
物理アドレスは、31ビット・ページ・インデックス部
分と13ビット・ページ・オフセット部分とを含む。
720と、7方向キャッシュ710に効率的にアクセス
するための仮想アドレス(VA)730および物理アド
レス(PA)740を示す。ATT720およびキャッ
シュ710はそれぞれ、ATT510bおよびキャッシ
ュ550を表す。
ャッシュ710に記憶されたときに得られる有用な方向
情報が、破棄されずに、後で使用できるようにATT7
20に記憶される。この実施形態では、ATT720の
「ウェイレット」は、方向情報を記憶する効率的な機構
を提供する。したがって、ATT720の512個の項
目のそれぞれ、たとえば項目720aは、識別子フィー
ルド、たとえばVAフィールドおよびPAフィールド
と、2つ以上のウェイレットとを含む。メイン・メモリ
530およびATT720がページ指向であり、これに
対して、キャッシュ710がキャッシュ線を使用して構
成されるので、各ATT項目中のウェイレットの数は、
キャッシュ線とメモリ・ページの比に対応する。この例
では、ATT720の各項目は128個のウェイレット
を含む。ウェイレットをVAフィールドおよびPAフィ
ールドとして同じRAM構造に記憶することも、あるい
は別のRAM構造に記憶することもできることに留意さ
れたい。
数に依存する。無効な値用にあるウェイレット値が予約
される。したがって、方向ビットの最小数は方向の数の
log2に1を加えた値(log2(way+1) )に
等しい。この例では、3ビット・ウェイレットを使用し
て7方向キャッシュ710がサポートされる。
方向指向セグメント711,712,...717とし
て分割された7方向アソシエーティブ・キャッシュであ
る。各セグメントは32Kキャッシュ線を含み、各キャ
ッシュ線の長さは64バイトである。CM510aは、
キャッシュ710に迅速にアクセスするために、図5に
示したようにプロセッサ510の一部として製造するこ
とができる。さらに、ATT720は小型であり、AT
T510bとしてプロセッサICに組み込むこともでき
る。
データへのアクセス 次に、図8のフローチャートを参照すると分かるよう
に、プロセッサ510がメイン・メモリ530中の位置
にアクセスする必要があるとき、キャッシュ710の最
初の探索が試みられる。まず、CM510aは仮想アド
レス(VA)730のページ・インデックス部分をAT
T720中の各項目のVAフィールドと比較する(ステ
ップ820)。
TT項目720aが合致する場合(ステップ825)、
CM510aは、VA730のページ・オフセット部分
を使用して項目720aからウェイレットを検索する
(ステップ840)。次いで、ウェイレット値の妥当性
が試験される(ステップ850)。この例では、ウェイ
レットに関する有効な2進ビット値は、それぞれ、キャ
ッシュ710の第1のセグメント711、第2のセグメ
ント712、第7のセグメント717に対応する”00
0b”,”001b”,...”110b”である。ウ
ェイレット値”111b”は無効であり、キャッシュ
(線)ミスを示す。キャッシュ・ミスは、下記のステッ
プ880で説明するように処理される。
10aは、このウェイレット値、ATT項目720aの
PAフィールド、VA730のページ・オフセット部分
を使用して目標キャッシュ線、たとえば線712aにイ
ンデックス付けする(ステップ860)。次に、目標キ
ャッシュ線のアドレス・タグ(AT)フィールドとAT
T項目720aのPAフィールドを比較することによっ
て「正常性」検査が実行される(ステップ870)。そ
の間に、CM510aは任意選択で、キャッシュ・ヒッ
トを予期してキャッシュ710から目標キャッシュ線7
12aのデータ・フィールドをスペキュラティブに取り
出すことができる。正常性検査が、キャッシュ710中
のセグメントの数にはかかわらずに単一のキャッシュ線
712aのATフィールドのみ用いて行われることに留
意されたい(ステップ875)。
(線)ヒットのとき、目標キャッシュ線712aのスペ
キュラティブに取り出されたデータ・フィールドが要求
側プロセッサ510に提供される(ステップ890)。
正常性検査で不合格であり、すなわち、キャッシュ・ミ
スである場合、下記で説明するようにメイン・メモリ5
30から新しい目標キャッシュ線を検索する必要がある
(下記で詳しく説明するステップ880を参照)。
に存在しない場合(ステップ825)、合致するATT
項目をメイン・メモリ530から取り出すことが試みら
れる(ステップ830)。合致するATT項目がメイン
・メモリ530で見つかった場合(ステップ835)、
ATT720が更新される(下記で詳しく説明するステ
ップ838を参照)。次に、CM510aは、上記で説
明したようにステップ840ないしステップ880を実
行する。
メイン・メモリ530内で見つけることができず、すな
わちページ・フォルトである場合、下記で説明するよう
にテーブル720用の新しいATT項目を作成すること
ができる(下記で詳しく説明するステップ837を参照
されたい)。
更新(ステップ838) 図9は、ATT720中の項目を更新するプロセスを示
す詳細なフローチャートである。まず、CM510a
は、空きATT項目を探してATT720を走査する
(ステップ638a)。ATT720が満杯である場
合、古い(既存の)ATT項目が、置換すべき項目とし
て選択される(ステップ838b)。いくつかの周知の
アルゴリズム、たとえばLRUを使用して古いATT項
目を選択することができる。選択された古いATT項目
は次いで、メイン・メモリ530に書き直される(ステ
ップ838c)。
致するATT項目または新しいATT項目がATT72
0に書き込まれる(ステップ838d)。
ッシュ線を書き直す必要がある場合にのみ、CM510
aによって古いATT項目を一時的に保持することがで
きることに留意されたい。キャッシュ線は、その内容が
メイン・メモリ530中の親コピーとは異なるときに
「ダーティ」である。しかし、この実施形態では、効率
のために、古いATT項目に関連するキャッシュ線は、
それが「ダーティ」であり、後でキャッシュ710から
パージされるのでないかぎり、メイン・メモリ530に
書き直されることはない。
の置換(ステップ880) 図10は、キャッシュ710中のキャッシュ線の置換を
示す詳細なフローチャートである。キャッシュ710内
で目標キャッシュ線が見つからず、すなわちキャッシュ
・ミスである場合、メイン・メモリ530から目標キャ
ッシュ線を検索する必要がある(ステップ881)。検
索された(新しい)目標キャッシュ線のデータ・フィー
ルドはプロセッサ510に迅速に提供することができる
ので(ステップ882)、新しい目標キャッシュ線のキ
ャッシュ710へのキャッシングは、プロセッサ110
に関するクリティカル・パスを用いずに完了することが
できる。
ュ線をキャッシュするために7つのセグメント711,
712,...717に対応する7つの可能なキャッシ
ュ線からキャッシュ710中の適当な位置を探索する
(ステップ883)。この実施形態では、いくつかの周
知のアルゴリズムのうちの1つ、たとえばLRUを使用
することによって、置換すべき適当なキャッシュ位置が
選択される。選択されたキャッシュ線、すなわち古いキ
ャッシュ線の内容がダーティである場合、たとえば「状
態」ビットがセットされているとき、ATT720のP
Aフィールドを使用してその古いキャッシュ線をメイン
・メモリ530にコピーする必要がある(ステップ88
4)。
(新しい)キャッシュ線を記憶することができる(ステ
ップ885)。
項目のウェイレット値が更新される(ステップ88
6)。同じウェイレット値がメイン・メモリ530にも
記憶され、目標キャッシュ線が「キャッシュ済み」とマ
ーク付けされる(ステップ887)。
記憶して、前にキャッシュされたキャッシュ線をマーク
付けすることによって、「エイリアシング」問題が防止
される。エイリアシング問題は、CM510aが、異な
るVAを有するが、同じPAを有する第2のキャッシュ
線をキャッシュしようとするときに発生する。そのよう
な状況では、両方のATT項目が、共通のキャッシュ線
に対応する同じウェイレット値を含むべきである。した
がって、キャッシュ線がキャッシュされるたびにメイン
・メモリ530にウェイレット値を記憶することによっ
て、CM510aは、後で同じキャッシュ線(すなわ
ち、同じPAであるが、異なるVA)に到達しようとす
る際に、第2のATT項目に同じウェイレット値を割り
当てることができ、そのため、2つのATT項目は共
に、キャッシュ710中のキャッシュ線の単一のコピー
にインデックス付けすることができる。
メモリ530に記憶されるのではなく、ATT項目がA
TT720にロードされるたびに、対応するすべてのウ
ェイレットが無効化される。その後、キャッシュ線ミス
が発生し、ウェイレットが更新される。これによって、
ATT項目を置き換える際に、メイン・メモリ530に
ウェイレット情報を記憶することは不要になる。
態だけでなく、「共用」などの状態も各ウェイレットと
共にATT720に記憶される。共用キャッシュ線は、
CM510aからしか読み取られず、したがって「ダー
ティ」であることはない。したがって、重複共用キャッ
シュ線によってエイリアシング問題が生じることはな
い。その後、共用キャッシュ線に書込みを行う必要が生
じたときには、残りの共用キャッシュ線(のみ)に上書
きし、その状態を共用からダーティに変更する前にま
ず、CM501aを走査して目標キャッシュ線の重複コ
ピーをなくして(無効化して)おかなければならない。
リ530で記憶されない。その代わり、キャッシュ・ミ
スに関して、すべての7つの方向のATフィールドを、
要求されたアドレスと比較して、要求されたキャッシュ
線がすでにキャッシュ710に存在しているかどうかを
知ることによってエイリアシング問題が回避される。こ
のような比較は、メモリ・アクセスと並行して行うこと
ができる。多方向比較が、ATT720からウェイレッ
ト情報が得られないときにしか必要とされないので、こ
の方式は従来技術よりも効果的である。
目をメイン・メモリ530内で見つけることができず、
ATT720内で新しいATT項目、たとえば項目72
0aを作成することができるときである。その後、AT
T720は前述のステップ833の場合と同様に更新さ
れる。次いで、メイン・メモリ530から目標キャッシ
ュ線が検索され、プロセッサ510にデータが提供さ
れ、ATT項目720aの対応するウェイレットが、前
述のステップ880の場合と同様に更新される。メイン
・メモリ530内で目標ページが見つからない場合、目
標ページはまず、大容量記憶装置140から検索され、
メイン・メモリ530に記憶される。
点を提供する。
10の方向情報の効率的で小型のデポジトリを形成し、
プロセッサICの寸法をそれほど増大せずにATT72
0をプロセッサ510の一部として製造できるように
し、同時に、キャッシュ710のアクセス速度を増加さ
せる。
される。ウェイレットによって、キャッシュ710の単
一のセグメント、たとえばセグメント712の単一の目
標キャッシュ線が直接インデックス付けされるので、例
示的なキャッシュ710のセグメント数にはかかわらず
に、キャッシュ線のAT値の単一の比較、すなわち単一
の正常性検査を行うだけでよい。さらにこの場合、目標
キャッシュ線のデータ部分の事前取り出しが可能であ
り、検索プロセスがさらに合理化され、キャッシュ・ア
クセス速度が大幅に増加する。
旨から逸脱せずに多数の追加および修正が可能である。
たとえば、方向の数はこれより多くても、あるいは少な
くともよい。キャッシュ線サイズおよびページ・サイズ
も、これより小さくても、あるいは大きくてもよい。し
たがって、本発明の範囲は特許請求の範囲によって決定
されるべきである。
ブロック図である。
のブロック図である。
2方向キャッシュからのデータの検索を示す図(B)で
ある。
らのデータの検索を示す図である。
ステムのブロック図である。
システムのブロック図である。
および6のプロセッサに組み込むのに適した小型アドレ
ス変換テーブル(ATT)の一実施例を示すブロック図
である。
アクセスする方法を示すフローチャートである。
アクセスする方法を示すフローチャートである。
にアクセスする方法を示すフローチャートである。
Claims (6)
- 【請求項1】 プロセッサとメイン・メモリとを有する
コンピュータ・システムに関連付けられた多方向キャッ
シュにアクセスする方法であって、 ページ・インデックス部分とページ・オフセット部分と
を有する目標キャッシュ線の仮想アドレスを受け取るス
テップと、 アドレス変換テーブル(ATT)項目の仮想アドレス・
フィールドを前記ページ・インデックス部分と突き合わ
せるステップと、 ページ・オフセット部分を使用して前記ATT項目のウ
ェイレットを検索するステップと、 前記ウェイレット、前記ATT項目のアドレス・フィー
ルド、前記ページ・オフセット部分を使用して前記多方
向キャッシュの単一のキャッシュ線にインデックス付け
するステップと、 前記単一のキャッシュ線のアドレス・タグ(AT)フィ
ールドを前記物理アドレス・フィールドに突き合わせる
ステップと、 前記ページ・オフセット部分を使用して、前記単一のキ
ャッシュ線のデータ・フィールドを検索するステップと
を含むことを特徴とする方法。 - 【請求項2】 プロセッサとメイン・メモリとを有する
コンピュータ・システムに関して有用な多方向キャッシ
ュにタグ付けする方法であって、 前記多方向キャッシュの少なくとも1つのキャッシュ線
に関連付けられた識別子を記憶するステップと、 前記1つのキャッシュ線の方向情報をアソシエーティブ
に記憶するステップとを含むことを特徴とする方法。 - 【請求項3】 プロセッサとメイン・メモリとを有する
コンピュータ・システムに関して有用な多方向キャッシ
ュからキャッシュ線を検索する方法であって、 ページ・インデックス部分とページ・オフセット部分と
を有する目標キャッシュ線のアドレスを受け取るステッ
プと、 タグ付けテーブル項目の第1のアドレス・フィールドを
前記ページ・インデックス部分と突き合わせるステップ
と、 ページ・オフセット部分を使用して、前記タグ付けテー
ブル項目から方向情報を検索するステップとを含むこと
を特徴とする方法。 - 【請求項4】 プロセッサとメイン・メモリとを有する
コンピュータ・システムに関連付けられた多方向キャッ
シュにアクセスするタグ付けテーブルであって、 前記キャッシュが、前記多方向キャッシュの方向の数に
対応する2つ以上のセグメントに分割された複数のキャ
ッシュ線を有し、前記タグ付けテーブルが、 それぞれ、 識別子フィールドと、 前記1つのセグメントにインデックス付けするために前
記識別子フィールドにアソシエーティブに結合された方
向情報とを含む複数のテーブル項目を備えることを特徴
とするタグ付けテーブル。 - 【請求項5】 多方向キャッシュにアクセスするステッ
プのシーケンスを有する手順の実行を制御するようプロ
セッサに命令するために使用できるコンピュータ読取り
可能なメモリであって、 それぞれ、識別子フィールドと方向情報フィールドとを
含む、複数の項目を有するタグ付けテーブルと、 ページ・インデックス部分とページ・オフセット部分と
を有する目標キャッシュ線のアドレスを受け取り、 タグ付けテーブルの前記1つの項目の識別子フィールド
を前記ページ・インデックス部分と突き合わせ、 ページ・オフセット部分を使用して前記1つの項目の方
向情報フィールドを検索するように構成されたキャッシ
ュ・マネージャ(CM)とを備えるコンピュータ読取り
可能なメモリ。 - 【請求項6】 それぞれ、識別子フィールドと方向情報
フィールドとを含む、複数の項目を有するタグ付けテー
ブルと、 ページ・インデックス部分とページ・オフセット部分と
を有する目標キャッシュ線のアドレスを受け取り、 タグ付けテーブルの前記1つの項目のアドレス・フィー
ルドを前記ページ・インデックス部分と突き合わせ、 ページ・オフセット部分を使用して、前記1つの項目の
方向情報フィールドを検索するように構成されたキャッ
シュ・マネージャ(CM)とを含む、前記多方向キャッ
シュに結合されたプロセッサと、 前記プロセッサに結合された多方向キャッシュと、 前記プロセッサに結合されたシステム相互接続機構と、 前記システム相互接続機構に結合されたメイン・メモリ
とを備えるコンピュータ・システム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005215911A (ja) * | 2004-01-29 | 2005-08-11 | Hitachi Ltd | 情報処理装置 |
Families Citing this family (17)
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)
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 |
-
1995
- 1995-07-07 US US08/499,590 patent/US5778427A/en not_active Expired - Lifetime
-
1996
- 1996-07-05 EP EP96304967A patent/EP0752662B1/en not_active Expired - Lifetime
- 1996-07-05 DE DE69626070T patent/DE69626070T2/de not_active Expired - Fee Related
- 1996-07-08 JP JP8195285A patent/JPH09223067A/ja not_active Ceased
Cited By (1)
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 |