JPH10232831A - キャッシュ・タグ維持装置 - Google Patents
キャッシュ・タグ維持装置Info
- Publication number
- JPH10232831A JPH10232831A JP10005361A JP536198A JPH10232831A JP H10232831 A JPH10232831 A JP H10232831A JP 10005361 A JP10005361 A JP 10005361A JP 536198 A JP536198 A JP 536198A JP H10232831 A JPH10232831 A JP H10232831A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tag
- duplicate
- processor
- data
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000726103 Atta Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
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
ャッシュ・タグのタグ幅を使用可能な集積回路表面積ま
たはデバイス・ピン配列に対して適合させる。 【解決手段】重複タグ・サブシステム内の部分タグが、
要求されたラインを表すために、プロセッサ「B」から
の要求がプロセッサ「A」キャッシュにヒットした場
合、重複タグ・ヒットが発生する。重複タグ・サブシ
ステム内の部分タグが、要求されたライン以外のキャッ
シュ・ラインの簡略化形であったために、プロセッサ
「B」からの要求がプロセッサ「A」キャッシュにヒッ
トしない場合、偽重複タグ・ヒットが発生する。
Description
・コンピュータ・アーキテクチャに関する。詳細には、
本発明は、コヒーレントに維持されるプロセッサ・キャ
ッシュを含むマルチプロセッサ・コンピュータ・アーキ
テクチャに関する。
セッサ間の情報の流れでは、古いデータ、すなわち他の
キャッシュ位置またはメイン・メモリ内に記憶されてい
る関連データよりも古く、あるいはそのような関連デー
タと矛盾するデータの使用を回避すべきである。したが
って、プロセッサ動作に対する妨害を最小限に抑えなが
らキャッシュ・コヒーレンシを維持すべきである。コン
ピュータ・システム・アーキテクチャでは、キャッシュ
・コヒーレンシをハードウェアまたはソフトウェア、あ
るいはその両方によって処理することができる。ある種
のそのようなアーキテクチャでは、プロセッサとメモリ
との間のコヒーレンシがハードウェアによって維持さ
れ、それに対してソフトウェアはキャッシュとメモリと
入出力装置との間のコヒーレンシを確保する。
バックのどちらかとして分類することができる。ライト
・スルー・キャッシュは常にシステム・メモリと共に書
き込まれ、そのため、システム・メモリとキャッシュが
それぞれ、書き込まれた情報の現在のコピーを維持し、
古いデータが使用される可能性が回避される。ライト・
スルー・キャッシュを使用するコンピュータ・アーキテ
クチャで情報を入力するには、かなりのシステム・オー
バヘッドが必要である。たとえば、システムは、入力に
関して指定された入力バッファのブロックがどれもキャ
ッシュ内にないことを保証しなければならない。
追い出され(キャスト・アウトされ)メモリに書き直さ
れ新しいデータ用の空間ができるまで、修正されたデー
タを維持する。ライト・バック・キャッシュは修正済み
データの唯一のコピーを有するので、キャッシュ・デー
タに迅速にアクセスでき、かつキャッシュ・データが失
われないようにキャッシュと入出力システムとの間のキ
ャッシュ・コヒーレンシ・プロトコルに特に注意しなけ
ればならない。
ソフトウェア解決策では、バッファ・ページがキャッシ
ュ不能とマーク付けされ、オペレーティング・システム
は、このキャッシュ不能ページにのみ情報を入力するよ
うに構成される。この問題に対する他のソフトウェア解
決策では、情報の入力が行われた後に、オペレーティン
グ・システムを使用してキャッシュからバッファ・アド
レスがフラッシュされ、キャッシュが効果的にクリアさ
れる。古いデータの問題に対するハードウェア解決策で
は、情報入力時に入出力アドレスが検査され、そのアド
レスがキャッシュ内にあるかどうかが判定される。そう
である場合、キャッシュ入力が無効化され、古いデータ
が回避される。
維持するために使用されるプロトコルをキャッシュ・コ
ヒーレンシ・プロトコルと呼ぶ。下記の2種類のキャッ
シュ・コヒーレンシ・プロトコルがある。
ル:物理メモリの1つのブロックに関する情報が1つの
位置のみに維持される。この情報には通常、どのキャッ
シュがこのブロックのコピーを有するかと、そのコピー
が将来の修正のために専用とマーク付けされているかど
うかが含まれる。特定のブロックへのアクセスではま
ず、ディレクトリが問い合わせを受け、メモリ・データ
が古く、実際のデータが他のキャッシュに存在するかど
うかが調べられる。そうである場合、修正済みブロック
を含むキャッシュはそのデータをメモリに返すよう強制
される。次いで、メモリはデータをこの新しい要求側へ
転送し、そのブロックの新しい位置を用いてディレクト
リを更新する。このプロトコルは、バス間モジュール
(またはキャッシュ間)妨害を最小限に抑えるが、通
常、待ち時間が長く、大きなディレクトリ・サイズが必
要であるために作成コストが高い。
リのブロックから得たデータのコピーを有するあらゆる
キャッシュが、そのデータ・ブロックに関する情報のコ
ピーも有する。各キャッシュは通常、共用メモリ・バス
上に配置され、すべてのキャッシュ・コントローラはこ
のバス上で監視またはスヌーピングを行い、キャッシュ
が、要求されたブロックのコピーを有するかどうかを判
定する。
とメモリとの間に設けられた既存の物理接続において動
作するので、キャッシュおよび共用メモリを使用するマ
ルチプロセッサ・システム・アーキテクチャに非常に適
している。スヌーピングは、コヒーレンシ情報の量が、
メイン・メモリ内のブロックの数ではなくキャッシュ内
のブロックの数に比例するのでディレクトリ・プロトコ
ルよりも好ましい。
プロセッサが、メモリまたはオブジェクトのブロックを
書き込むための専用アクセスが可能でなければならず、
あるいはオブジェクトを読み取る際に最新のコピーを有
さなければならないときに、コヒーレンシ問題が生じ
る。スヌーピング・プロトコルは、書き込まれるオブジ
ェクトを共用するすべてのキャッシュを見つけなければ
ならない。共用データに書込みを行うと、そのデータの
他のすべてのコピーが無効化され、あるいはこの書込み
がすべての共用コピーにブロードキャストされる。ライ
ト・バック・キャッシュが使用されるので、コヒーレン
シ・プロトコルはまた、メモリ読取り時にすべてのキャ
ッシュを検査させ、どのプロセッサが情報の最新のデー
タ・コピーを有するかを判定する。
にキャッシュ・ブロック内にステータス・ビットが設け
られる。この情報は、バス活動を監視する際に使用され
る。読取りミス時には、すべてのキャッシュが、要求さ
れた情報ブロックのコピーをそのキャッシュ自体が有す
るかどうかを調べ、ミスしたキャッシュにその情報を供
給することなど、適切な処置をとる。同様に、書込み時
には、すべてのキャッシュが、それ自体がそのデータの
コピーを有しているかどうかを調べ、次いで、たとえば
データのコピーを無効化し、あるいはデータのコピーを
最新の値に変更することによって対処する。
ション時にキャッシュがそのアドレス・タグを検査する
ので、スヌーピングは、スヌーピングの結果にかかわら
ずCPUのキャッシュへのアクセスを妨害する。たとえ
ば、スヌーピングによってミスが返されたときでも、キ
ャッシュが使用不能、すなわちタグがスヌープ・アドレ
スに一致するかどうかを検査するためにビジー状態であ
るために、CPUはキャッシュ・アクセスを妨げられ
る。したがって、CPUは、キャッシュがコヒーレンシ
検査のために、キャッシュがビジー状態である間にキャ
ッシュにアクセスする必要がある場合には停止またはロ
ックする。
類のプロトコルがある。
ーカル・コピーを変更する前に他のキャッシュ内のすべ
てのコピーを無効化させる。プロセッサは次いで、他の
プロセッサがこのデータを要求するまでこのデータを自
由に更新する。書込み側プロセッサはバス上で無効化信
号を発行し、すべてのキャッシュは、それ自体がこのデ
ータのコピーを有するかどうかを調べる。そうである場
合、キャッシュは、このデータを含むブロックを無効化
し、そのブロックが修正済みであることをステータスが
示している場合にはこのデータを与える。この方式で
は、複数の読取り側が可能であるが、書込み側は1つだ
けである。
ッサは、共用されるあらゆるブロックを無効化するので
はなく、新しいデータをバスを介してブロードキャスト
する。次いで、すべてのコピーがその新しい値で更新さ
れる。この方式では、共用データへの書込みが連続的に
ブロードキャストされ、それに対して前述の書込み無効
化方式では、後に続く書込みに関するローカル・コピー
が1つだけになるように他のすべてのコピーが削除され
る。書込みブロードキャスト・プロトコルでは通常、デ
ータに共用(ブロードキャスト)とタグ付けし、あるい
はデータに専用(ローカル)とタグ付けすることができ
る。コヒーレンシの詳細については、J.Hennes
sy、D.Patterson著「Computer Architect
ure: A Quantitative Approach」(Morgan Ka
ufmann Publishers,Inc.、19
90年)を参照されたい。
ンシ・マルチプロセッサ・システム・アーキテクチャで
は、システム上の各コヒーレンシ・トランザクションが
各プロセッサのキャッシュ・サブシステムへ転送され、
コヒーレンシ検査が実行される。コヒーレンシ検査が行
われている間プロセッサからキャッシュにアクセスする
ことはできないので、この検査は通常、プロセッサのパ
イプラインを妨害する。
単一ポート・キャッシュでは、キャッシュ・コントロー
ラが他のプロセッサに関するキャッシュ・コヒーレンシ
検査のためにビジー状態であるとき、プロセッサ・パイ
プラインはキャッシュ・アクセス命令時に停止する。各
スヌーピングごとに、キャッシュ・コントローラはま
ず、キャッシュ・タグをスヌーピング・アドレスに関し
て検査し、ヒットした場合、キャッシュ状態を修正し、
そのブロックが修正済みであることをステータスが示し
ている場合にはデータを与える。アトミック(分離不
能)タグ読取りおよび書込み用(修正のため)にキャッ
シュ帯域幅を割り振ると、キャッシュはスヌーピングが
タグ書込みを必要としない場合、必要とされるよりも長
い間プロセッサからロックされる。たとえば、キャッシ
ュ問い合わせの80%ないし90%がミスであり、すな
わちタグ書込みは必要とされない。
よってプロセッサ・パイプラインとバス・スヌーピング
との間の競合を低減することが可能である。しかし、こ
の解決策は、追加ハードウェアおよび相互接続を必要と
し、したがって実装が困難であり、コストが高い。
グ(「タグ・キャッシュ」とも呼ばれる)を使用して、
プロセッサ上で実行されるコヒーレンシ検査の数を最小
限に抑えることができる。キャッシュ上で実行されるコ
ヒーレンシ検査の数を低減させることによって、キャッ
シュをより十分に使用して命令を実行し、それによって
システム性能を向上させることができる。
のキャッシュのタグの厳密なコピーである。キャッシュ
のサイズが増大するにつれて、重複タグの維持に使用さ
れるキャッシュ集積回路表面積の部分も増大し、あるい
は重複タグを維持するために必要な(たとえば、オフチ
ップ重複タグ用の)デバイス・ピンカウントのコストが
増加する。
を簡単にかつ廉価に維持する機構を含み、そのような重
複キャッシュ・タグによる集積回路表面積の使用または
そのような重複キャッシュ・タグに関連付けられたデバ
イス・ピン配列の使用を最小限に抑えるシステムは、ユ
ニプロセッサおよびマルチプロセッサ・アーキテクチャ
設計を著しく進歩させるであろう。
をそれほど犠牲にせずに、重複キャッシュ・タグのタグ
幅を使用可能な集積回路表面積またはデバイス・ピン配
列に対して適合させる。また、本発明では、集積回路設
計段階中に、使用可能な集積回路表面積またはピン可用
性が減少した場合、この段階の任意の時に部分タグ幅を
減少させることができる。
サ・コンピュータ・アーキテクチャのブロック概略図で
ある。マルチプロセッサ・コンピュータ・アーキテクチ
ャでは、プロセッサ10、20、30など複数のモジュ
ールがそれぞれ、バス・リンク16、22、29によっ
てシステム・バス23に結合される。そのようなアーキ
テクチャでは、プロセッサ速度およびオペレーティング
・システム設計に応じて任意の数のプロセッサを使用す
ることができる。各プロセッサは、内部リンク12を介
してプロセッサ・キャッシュ・メモリ13に結合された
中央演算処理装置(「CPU」)11を含む内部構造を
有する。プロセッサ・キャッシュ・メモリは、アドレス
・タグと、ステータスと、データ・コンポーネントとか
らなるキャッシュ・ライン40を含む。バス・インタフ
ェース・モジュール15は、内部リンク14およびプロ
セッサ・リンク16によってプロセッサ・キャッシュを
システム・バス23に結合する。プロセッサは、互いに
通信するようになされ、バス・リンク17によってシス
テム・バス23に結合されたシステム・メモリ18と通
信するようになされ、バス・リンク19によってシステ
ム・バス23に結合されたシステム入出力(I/O)モ
ジュール21と通信するようになされる。
キテクチャおよびプロセッサ・アーキテクチャが例示の
ために論じられており、特許請求の範囲によって定義さ
れた本発明の範囲に対する制限と解釈すべきものではな
いことを理解されたい。本発明は、多数の異なる種類の
プロセッサおよびマルチプロセッサ・アーキテクチャに
うまく適応化される。
ョンが発行されると、各プロセッサ10、20、30
は、サード・パーティ・プロセッサとして働き、仮想イ
ンデックスおよび実際のアドレスを使用してキャッシュ
・コヒーレンシ検査を実行する。本発明は、物理的にイ
ンデックス付けされたキャッシュを使用するシステムに
適用することもできる。
レス・サイクルの後にキャッシュ・コヒーレンシ・ステ
ータスを知らせる責任を負う。サード・パーティ・プロ
セッサは、そのキャッシュ・ライン40が共用、専用ク
リーン(または「専用」)、専用ダーティ(または「修
正済み」)、非存在(または「無効」)の4つの状態の
うちの1つであることを知らせる。要求側プロセッサ
は、コヒーレンシ・ステータスを解釈し、キャッシュ・
ラインをどのようにマーク付けするか、すなわち専用ク
リーン、専用ダーティ、共用のうちのどれにマーク付け
するかを決定する。サード・パーティ・プロセッサもキ
ャッシュ・ライン状態を非変更、共用、非存在のうちの
どれかを示すように更新する。
求されたラインが専用ダーティ状態であることを知らせ
た場合、そのサード・パーティ・プロセッサはアドレス
・サイクルの後にキャッシュ間トランザクションを開始
する。要求側プロセッサは、最初の要求に関してメイン
・メモリから受信されたデータを破棄し、その代わりに
キャッシュ間転送時にこのサード・パーティ・プロセッ
サから直接データを受け付ける。同時に、サード・パー
ティ・プロセッサからのデータがメイン・メモリに書き
込まれる。マルチプロセッサ・システム・アーキテクチ
ャでは複数の未処理パイプライン・トランザクションが
許容されるので、プロセッサ・モジュールがパイプライ
ン・キャッシュ・コヒーレンシ検査を実行しバス帯域幅
を最大限に利用することが重要である。本発明を容易に
適用することができるタイプのマルチプロセッサ・シス
テム・アーキテクチャの詳細については、K.Cha
n、T.Alexander、C.Hu、D.Lars
on、N.Noordeen、Y.Van Atta、
T.Wylegala、S.Ziai著「Multiprocess
or Features of the HP Corporate Business Servers」
(Compcon Digest of Paper
s、1993年2月)を参照されたい。
キャッシュ・タグが重複される、重複タグ・サブシステ
ムでキャッシュ・タグを重複するオール−オア−ナシン
グ手法が提供される。したがって、従来技術では、重複
タグを使用してキャッシュ・タグ内容の完全なコピーが
実施され、それによって性能が向上し、あるいは重複タ
グが実施されず、したがって集積回路の表面上の空間ま
たはデバイス・ピン数、あるいはその両方が節約され
る。
テムにおいて、プロセッサでキャッシュ入力が行われる
たびに重複タグに対応する入力を与えなければならな
い。本発明の好ましい実施形態によれば、プロセッサ・
キャッシュ・タグの幅がNビットである場合、重複タグ
の幅は1ないしN−1の任意の値でよい。したがって、
本発明は、完全な重複タグを使用する場合、ほぼすべて
の可能な性能利得を与えるが、従来技術の手法を使用す
るときに必要な集積回路表面積またはデバイス・ピン、
あるいはその両方の一部しか必要としない。
ュ・タグが簡略化され、各キャッシュ・タグの所定数の
ビットが重複キャッシュ・タグ・サブシステムに保存さ
れる。すなわち、各キャッシュ・タグの大部分の特定の
ビットは、ある入力を再使用して新しいメモリ・アドレ
スをマップするときに変更される可能性が高いので保存
される。本発明の他の実施形態では、たとえばソフトウ
ェアの物理メモリ使用度に基づいてキャッシュ・タグ・
ビットのサブセットを選択することができる。したがっ
て、本発明はキャッシュ・タグ・ビットの特定のサブセ
ットには制限されない。
るアルゴリズムも備え、そのため部分重複タグに対する
ヒットによって、重複キャッシュ・タグ・サブシステム
に関連付けられたキャッシュが、要求されたデータを有
することを示す応答が生成される。本発明の好ましい実
施形態では、キャッシュ・ラインがダーティではない場
合、メモリは常にデータを供給する。部分キャッシュ・
ヒットの場合、本明細書のアルゴリズムでは、キャッシ
ュが読み取られ、そのキャッシュが、要求されたデータ
を含むかどうかが確認されるまで、メモリのデータが保
持される。キャッシュが要求されたデータを含む場合、
メモリは解放される。そのキャッシュが、要求されたデ
ータを含まず、すなわち偽重複キャッシュ・タグ・ヒッ
トである場合、データが直接メモリから削除される。
を示す流れ図である。図2に示したように、リモート・
プロセッサによりメモリからデータを要求する(10
0)。ローカル・プロセッサのバス・インタフェース
が、その部分重複キャッシュ・タグ・リストを読み取り
(110)、ローカル・プロセッサで部分ヒットがある
かどうかを判定する(120)。部分ヒットがなく、す
なわち要求されたアドレスと部分重複キャッシュ・タグ
・リストが一致しない場合、このデータはメモリから取
り出される(130)。
ドレスと部分重複キャッシュ・タグ・リストが一致した
場合、そのデータはメモリに保持され(140)、ロー
カル・プロセッサが割り込まれ(150)、部分重複キ
ャッシュ・タグが実際に、要求されたデータの簡略化形
であり、すなわちキャッシュ・ヒットがあることが確認
される(160)。部分重複キャッシュ・タグが実際の
キャッシュ・タグに一致し、ステータスが、ブロックの
修正済みを示している場合、このデータはキャッシュか
ら取り出される(180)。そうでない場合、データは
メモリから取り出される(170)。
明したものであることを理解されたい。マルチプロセッ
サ・システムが他のプロセッサを有することは明らかで
ある。そのような場合、各プロセッサごとに前述のアル
ゴリズムが繰り返される。したがって、そのようなシス
テムの各プロセッサは部分重複キャッシュ・タグ・サブ
システムを含む。
与のキャッシュ・ブロックに対してある程度の追加待ち
時間を導入することもできる。本発明はまた、重複キャ
ッシュ・タグ参照をプロセッサ・キャッシュ参照と直列
的に使用するためにある程度の追加待ち時間を導入する
こともできる。後者の待ち時間は、重複タグを使用する
あらゆるキャッシュ・システムに存在する。前者の待ち
時間は、本発明によって与えられるかなりの節約および
性能向上に鑑みて重要ではないとみなされる。
る重複キャッシュ・タグ・サブシステムのブロック概略
図である。この図で、(キャッシュ37と重複タグ・サ
ブシステム36とを有する)プロセッサ「B」35は、
(符号で識別した矢印によって図示したように)シス
テム・バス23上でデータを要求する。この要求は、
(符号で識別した矢印によって図示したように)プロ
セッサ「A」31のために維持されている部分重複タグ
(サブシステム「A」33)でヒットする。重複タグが
部分タグにすぎないので、プロセッサ「B」からの要求
は、実際にプロセッサ「A」キャッシュ32でヒットす
る場合も、あるいはヒットしない場合もある。そのよう
な部分タグはキャッシュ・ラインを完全に識別するとは
限らず、したがって所望のキャッシュ・ラインに類似し
ているが、同じではない。
要求されたラインを表すために、プロセッサ「B」から
の要求がプロセッサ「A」キャッシュにヒットした場
合、(符号で識別した矢印によって図示したように)
重複タグ・ヒットが発生する。
要求されたライン以外のキャッシュ・ラインの簡略化形
であったために、プロセッサ「B」からの要求がプロセ
ッサ「A」キャッシュにヒットしない場合、(符号で
識別した矢印によって図示したように)偽重複タグ・ヒ
ットが発生する。
複タグを完全にミスした場合、(符号で識別した矢印
によって図示したように)要求されたデータがプロセッ
サ「A」キャッシュにないのは明らかである。このよう
に、プロセッサ「A」キャッシュは、重複タグ・ヒット
があるときに問い合わせるだけでよい。本発明は、シス
テム・アーキテクチャ全体にわたってキャッシュ・タグ
が分散しているため、そのような重複タグ・ヒットが、
偽部分重複タグ・ヒットと比べて統計的に真ヒットでは
ある可能性が高いことを利用する。
偽ヒットの確率が2分の1に削減されると考えられる。
たとえば、重複タグ幅が6ビットである場合、偽ヒット
の確率は1/64になり、重複タグ幅が8ビットである
場合、偽ヒットの確率は1/256になる。32ビット
・アドレス(最近は64ビット・アドレス)を使用する
と、タグ幅は20ビットを超えることが多い。重複タグ
のタグ幅を2分の1(すなわち、10ビット)に維持す
ることによって、偽ヒットの確率は1/1024、ある
いはほぼ零になる。したがって、本発明は実際上、ほぼ
すべての重複タグ・ヒットがプロセッサ・キャッシュ・
ヒットでもある方式を提供する。
この方式によって、予期される低偽ヒット率を与える必
要がある場合には、プロセッサ・データのアドレス位置
を部分タグ・ビットの少数の組合せに集中すべきではな
い。言い換えれば、1または0である各部分タグ・ビッ
トの確率は好ましくは、約50%に近い値にすべきであ
る。
関して説明したが、当業者には、本発明の趣旨および範
囲から逸脱せずに、本明細書に記載した応用例を他の応
用例で置き換えられることが容易に理解されよう。した
がって、本発明は、特許請求の範囲によってのみ制限さ
れるべきである。
が、以下、本発明の各実施態様の例を示す。
持する装置であって、キャッシュ内で行われたキャッシ
ュ入力の少なくとも一部に関する対応する入力を重複タ
グの形で維持する重複キャッシュ・タグ・サブシステム
を備え、前記各キャッシュ入力のタグ部の幅がNビット
であり、前記重複タグが、前記タグ部を構成するビット
のサブセットを備え、前記重複タグの幅として、1ない
しN−1の任意の値が選択されることを特徴とする装
置。
略化されることを特徴とする実施態様1に記載の装置。
数のビットが前記重複キャッシュ・タグ・サブシステム
に保存されることを特徴とする実施態様1に記載の装
置。
よって、前記重複キャッシュ・タグ・サブシステムに関
連付けられたキャッシュが、要求されたデータを有する
可能性があることを示す応答が生成されるように、部分
キャッシュ・ヒットを与える手段を備えることを特徴と
する実施態様1に記載の装置。
場合に、前記キャッシュが読み取られ、前記キャッシュ
が、前記要求されたデータを含むかどうかが確認される
まで、データをメモリまたは要求側モジュールに保持す
る手段を備えることを特徴とする実施態様4に記載の装
置。
れたデータを含む場合に、前記メモリまたは前記要求側
モジュールを解放する手段を備えることを特徴とする実
施態様5に記載の装置。
求されたデータを含んでいない場合に、前記要求された
データをメモリから削除する手段を備えることを特徴と
する実施態様5に記載の装置。
持する方法であって、メモリのデータを要求するステッ
プと、部分重複キャッシュ・タグ・リストを読み取り、
部分ヒットがあるかどうかを判定するステップと、要求
されたアドレスと前記部分重複キャッシュ・タグ・リス
トとの間に一致がない場合に前記データを前記メモリか
ら取り出すステップと、前記要求されたアドレスと前記
部分重複キャッシュ・タグ・リストとの間に一致がある
場合に前記データをメモリまたは要求側モジュールに保
持するステップと、プロセッサ動作に割り込み、前記要
求されたアドレスが実際のキャッシュ・タグに対応する
ことを確認するステップとを含み、前記要求されたアド
レスが前記実際のキャッシュ・タグに一致し、キャッシ
ュ・ステータスが、前記データが修正済みであることを
示している場合に、前記データが前記キャッシュから取
り出され、前記部分重複キャッシュ・タグが前記実際の
キャッシュ・タグに一致せず、あるいはキャッシュ・ス
テータスが、前記データが修正されていないことを示し
ている場合に、前記データがメモリから取り出されるこ
とを特徴とする方法。
ブシステムにおいて、キャッシュ・ラインを完全に識別
するわけではない部分重複キャッシュ・タグを備え、前
記重複タグにヒットしたときにプロセッサ・キャッシュ
に問い合わせるだけでよいことを特徴とする重複キャッ
シュ・タグ・サブシステム。
1ビット増加させるごとに偽キャッシュ・ヒットの確率
が2分の1になることを特徴とする実施態様9に記載の
重複キャッシュ・タグ・サブシステム。
ドレス位置が前記部分重複タグの少数の組合せに集中せ
ず、そのため、1または0である各部分重複タグ・ビッ
トの確率が50%に近いことを特徴とする実施態様9に
記載の重複キャッシュ・タグ・サブシステム。
・タグ用に予約されるビットの実際の数として、集積回
路表面領域またはデバイス・ピン、あるいはその両方の
可用性が限られているためにより少ない数のビットを有
する重複キャッシュ・タグを与えるような数が選択され
ることを特徴とする実施態様9に記載の重複キャッシュ
・タグ・サブシステム。
・タグ用に予約されるビットの実際の数として、より多
くのビットを有する重複キャッシュ・タグを与えること
によってより高い性能を達成し、それによって偽部分重
複キャッシュ・タグ・ヒットの確率を最小限に抑えるよ
うな数が選択されることを特徴とする実施態様9に記載
の重複キャッシュ・タグ・サブシステム。
維持する方法であって、キャッシュ内で行われたキャッ
シュ入力の少なくとも一部に関する対応する入力を重複
タグの形で重複キャッシュ・タグ・サブシステム内に維
持するステップを含み、前記各キャッシュ入力のタグ部
の幅がNビットであり、前記重複タグが、前記タグ部を
構成するビットのサブセットを備え、前記重複タグの幅
として、1ないしN−1の任意の値が選択されることを
特徴とする方法。
簡略化されることを特徴とする実施態様14に記載の方
法。
定数の下位ビットを前記重複キャッシュ・タグ・システ
ムに保存するステップを含むことを特徴とする実施態様
14に記載の方法。
によって、前記重複キャッシュ・タグ・サブシステムに
関連付けられたキャッシュが、要求されたデータを有す
る可能性があることを示す応答が生成されるように、部
分キャッシュ・ヒットを与えるステップを含むことを特
徴とする実施態様14に記載の方法。
の場合に、前記キャッシュが読み取られ、前記キャッシ
ュが、前記要求されたデータを含むかどうかが確認され
るまで、データをメモリまたは要求側モジュールに保持
するステップを含むことを特徴とする実施態様17に記
載の方法。
されたデータを含む場合に、前記メモリ・データを解放
する手段を備えることを特徴とする実施態様18に記載
の方法。
要求されたデータを含んでいない場合に、前記要求され
たデータにメモリからアクセスするステップを含むこと
を特徴とする実施態様18に記載の方法。
維持する装置であって、メモリのデータを要求する手段
と、部分重複キャッシュ・タグ・リストを読み取り、部
分ヒットがあるかどうかを判定する手段と、要求された
アドレスと前記部分重複キャッシュ・タグ・リストとの
間に一致がない場合に前記データを前記メモリから取り
出す手段と、前記要求されたアドレスと前記部分重複キ
ャッシュ・タグ・リストとの間に一致がある場合に前記
データをメモリまたは要求側モジュールに保持する手段
と、プロセッサ動作に割り込み、前記部分重複キャッシ
ュ・タグが実際のキャッシュ・タグに対応することを確
認する手段とを備え、前記部分重複キャッシュ・タグが
前記実際のキャッシュ・タグに一致し、キャッシュ・ス
テータスが、前記データが修正済みであることを示して
いる場合に、前記データが前記キャッシュから取り出さ
れ、前記部分重複キャッシュ・タグが前記実際のキャッ
シュ・タグに一致せず、あるいはキャッシュ・ステータ
スが、前記データが修正されていないことを示している
場合に、前記データがメモリから取り出されることを特
徴とする装置。
たとえば、部分重複キャッシュ・タグ用に予約する実際
のビット数を必要に応じて選択できることである。した
がって、設計が進行するにつれて、集積回路表面積また
はデバイス・ピン、あるいはその両方の可用性が限られ
ているためにより少ない数のビットを有する重複キャッ
シュタグを与えた方が好ましく、あるいは、より多くの
ビットを有する重複キャッシュ・タグを与えることによ
ってより高い性能を達成し、それによって偽部分重複キ
ャッシュ・タグ・ヒットの確率を最小限に抑えた方が好
ましいと判定することができる。
ータ・アーキテクチャのブロック概略図である。
である。
シュ・タグ・サブシステムのブロック概略図である。
60、170、180:ブロック
Claims (1)
- 【請求項1】重複キャッシュ・タグを維持する装置であ
って、 キャッシュ内で行われたキャッシュ入力の少なくとも一
部に関する対応する入力を重複タグの形で維持する重複
キャッシュ・タグ・サブシステムを備え、 前記各キャッシュ入力のタグ部の幅がNビットであり、 前記重複タグが、前記タグ部を構成するビットのサブセ
ットを備え、 前記重複タグの幅として、1ないしN−1の任意の値が
選択されることを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/783,918 US5907853A (en) | 1997-01-17 | 1997-01-17 | Method and apparatus for maintaining duplicate cache tags with selectable width |
US783,918 | 1997-01-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10232831A true JPH10232831A (ja) | 1998-09-02 |
Family
ID=25130814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10005361A Withdrawn JPH10232831A (ja) | 1997-01-17 | 1998-01-14 | キャッシュ・タグ維持装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5907853A (ja) |
JP (1) | JPH10232831A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9704542D0 (en) * | 1997-03-05 | 1997-04-23 | Sgs Thomson Microelectronics | A cache coherency mechanism |
US6546464B2 (en) * | 1999-01-08 | 2003-04-08 | Nortel Networks Limited | Method and apparatus for increasing data rates in a data network while maintaining system coherency |
US8332592B2 (en) * | 2004-10-08 | 2012-12-11 | International Business Machines Corporation | Graphics processor with snoop filter |
US9128857B2 (en) | 2013-01-04 | 2015-09-08 | Apple Inc. | Flush engine |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4349871A (en) * | 1980-01-28 | 1982-09-14 | Digital Equipment Corporation | Duplicate tag store for cached multiprocessor system |
US5226146A (en) * | 1988-10-28 | 1993-07-06 | Hewlett-Packard Company | Duplicate tag store purge queue |
US5319766A (en) * | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
US5537570A (en) * | 1993-10-12 | 1996-07-16 | Texas Instruments Incorporated | Cache with a tag duplicate fault avoidance system and method |
US5559987A (en) * | 1994-06-30 | 1996-09-24 | Digital Equipment Corporation | Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system |
-
1997
- 1997-01-17 US US08/783,918 patent/US5907853A/en not_active Expired - Lifetime
-
1998
- 1998-01-14 JP JP10005361A patent/JPH10232831A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US5907853A (en) | 1999-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
US7305522B2 (en) | Victim cache using direct intervention | |
US6721848B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US7305523B2 (en) | Cache memory direct intervention | |
US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
US6021468A (en) | Cache coherency protocol with efficient write-through aliasing | |
US7581068B2 (en) | Exclusive ownership snoop filter | |
JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
US7076613B2 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US20070136535A1 (en) | System and Method for Reducing Unnecessary Cache Operations | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
JPH10333985A (ja) | データ供給方法及びコンピュータ・システム | |
JPH10254773A (ja) | アクセス方法、処理装置およびコンピュータ・システム | |
GB2460337A (en) | Reducing back invalidation transactions from a snoop filter | |
US6915396B2 (en) | Fast priority determination circuit with rotating priority | |
US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
KR20030024895A (ko) | 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치 | |
US8332592B2 (en) | Graphics processor with snoop filter | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
US6950906B2 (en) | System for and method of operating a cache | |
US6336169B1 (en) | Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus | |
US5978886A (en) | Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache | |
JP3732397B2 (ja) | キャッシュシステム | |
US5907853A (en) | Method and apparatus for maintaining duplicate cache tags with selectable width |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20041019 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041029 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041115 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041115 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20060316 |