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
Application number
JP10005361A
Other languages
English (en)
Inventor
M Jacobs Edward
エドワード・エム・ジェイコブス
W Monkton Julie
ジュリー・ダブリュー・モンクトン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10232831A publication Critical patent/JPH10232831A/ja
Withdrawn 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource 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

(57)【要約】 【課題】システム性能をそれほど犠牲にせずに、重複キ
ャッシュ・タグのタグ幅を使用可能な集積回路表面積ま
たはデバイス・ピン配列に対して適合させる。 【解決手段】重複タグ・サブシステム内の部分タグが、
要求されたラインを表すために、プロセッサ「B」から
の要求がプロセッサ「A」キャッシュにヒットした場
合、重複タグ・ヒットが発生する。重複タグ・サブシ
ステム内の部分タグが、要求されたライン以外のキャッ
シュ・ラインの簡略化形であったために、プロセッサ
「B」からの要求がプロセッサ「A」キャッシュにヒッ
トしない場合、偽重複タグ・ヒットが発生する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチプロセッサ
・コンピュータ・アーキテクチャに関する。詳細には、
本発明は、コヒーレントに維持されるプロセッサ・キャ
ッシュを含むマルチプロセッサ・コンピュータ・アーキ
テクチャに関する。
【0002】
【従来の技術】コンピュータ・アーキテクチャ内のプロ
セッサ間の情報の流れでは、古いデータ、すなわち他の
キャッシュ位置またはメイン・メモリ内に記憶されてい
る関連データよりも古く、あるいはそのような関連デー
タと矛盾するデータの使用を回避すべきである。したが
って、プロセッサ動作に対する妨害を最小限に抑えなが
らキャッシュ・コヒーレンシを維持すべきである。コン
ピュータ・システム・アーキテクチャでは、キャッシュ
・コヒーレンシをハードウェアまたはソフトウェア、あ
るいはその両方によって処理することができる。ある種
のそのようなアーキテクチャでは、プロセッサとメモリ
との間のコヒーレンシがハードウェアによって維持さ
れ、それに対してソフトウェアはキャッシュとメモリと
入出力装置との間のコヒーレンシを確保する。
【0003】キャッシュは、ライト・スルーとライト・
バックのどちらかとして分類することができる。ライト
・スルー・キャッシュは常にシステム・メモリと共に書
き込まれ、そのため、システム・メモリとキャッシュが
それぞれ、書き込まれた情報の現在のコピーを維持し、
古いデータが使用される可能性が回避される。ライト・
スルー・キャッシュを使用するコンピュータ・アーキテ
クチャで情報を入力するには、かなりのシステム・オー
バヘッドが必要である。たとえば、システムは、入力に
関して指定された入力バッファのブロックがどれもキャ
ッシュ内にないことを保証しなければならない。
【0004】ライト・バック・キャッシュは、データが
追い出され(キャスト・アウトされ)メモリに書き直さ
れ新しいデータ用の空間ができるまで、修正されたデー
タを維持する。ライト・バック・キャッシュは修正済み
データの唯一のコピーを有するので、キャッシュ・デー
タに迅速にアクセスでき、かつキャッシュ・データが失
われないようにキャッシュと入出力システムとの間のキ
ャッシュ・コヒーレンシ・プロトコルに特に注意しなけ
ればならない。
【0005】古い(stale)データの問題に対する1つの
ソフトウェア解決策では、バッファ・ページがキャッシ
ュ不能とマーク付けされ、オペレーティング・システム
は、このキャッシュ不能ページにのみ情報を入力するよ
うに構成される。この問題に対する他のソフトウェア解
決策では、情報の入力が行われた後に、オペレーティン
グ・システムを使用してキャッシュからバッファ・アド
レスがフラッシュされ、キャッシュが効果的にクリアさ
れる。古いデータの問題に対するハードウェア解決策で
は、情報入力時に入出力アドレスが検査され、そのアド
レスがキャッシュ内にあるかどうかが判定される。そう
である場合、キャッシュ入力が無効化され、古いデータ
が回避される。
【0006】複数のプロセッサに対するコヒーレンシを
維持するために使用されるプロトコルをキャッシュ・コ
ヒーレンシ・プロトコルと呼ぶ。下記の2種類のキャッ
シュ・コヒーレンシ・プロトコルがある。
【0007】1.ディレクトリ・ベースト・プロトコ
ル:物理メモリの1つのブロックに関する情報が1つの
位置のみに維持される。この情報には通常、どのキャッ
シュがこのブロックのコピーを有するかと、そのコピー
が将来の修正のために専用とマーク付けされているかど
うかが含まれる。特定のブロックへのアクセスではま
ず、ディレクトリが問い合わせを受け、メモリ・データ
が古く、実際のデータが他のキャッシュに存在するかど
うかが調べられる。そうである場合、修正済みブロック
を含むキャッシュはそのデータをメモリに返すよう強制
される。次いで、メモリはデータをこの新しい要求側へ
転送し、そのブロックの新しい位置を用いてディレクト
リを更新する。このプロトコルは、バス間モジュール
(またはキャッシュ間)妨害を最小限に抑えるが、通
常、待ち時間が長く、大きなディレクトリ・サイズが必
要であるために作成コストが高い。
【0008】2.スヌーピング・プロトコル:物理メモ
リのブロックから得たデータのコピーを有するあらゆる
キャッシュが、そのデータ・ブロックに関する情報のコ
ピーも有する。各キャッシュは通常、共用メモリ・バス
上に配置され、すべてのキャッシュ・コントローラはこ
のバス上で監視またはスヌーピングを行い、キャッシュ
が、要求されたブロックのコピーを有するかどうかを判
定する。
【0009】スヌーピング・プロトコルは、通常、バス
とメモリとの間に設けられた既存の物理接続において動
作するので、キャッシュおよび共用メモリを使用するマ
ルチプロセッサ・システム・アーキテクチャに非常に適
している。スヌーピングは、コヒーレンシ情報の量が、
メイン・メモリ内のブロックの数ではなくキャッシュ内
のブロックの数に比例するのでディレクトリ・プロトコ
ルよりも好ましい。
【0010】マルチプロセッサ・アーキテクチャでは、
プロセッサが、メモリまたはオブジェクトのブロックを
書き込むための専用アクセスが可能でなければならず、
あるいはオブジェクトを読み取る際に最新のコピーを有
さなければならないときに、コヒーレンシ問題が生じ
る。スヌーピング・プロトコルは、書き込まれるオブジ
ェクトを共用するすべてのキャッシュを見つけなければ
ならない。共用データに書込みを行うと、そのデータの
他のすべてのコピーが無効化され、あるいはこの書込み
がすべての共用コピーにブロードキャストされる。ライ
ト・バック・キャッシュが使用されるので、コヒーレン
シ・プロトコルはまた、メモリ読取り時にすべてのキャ
ッシュを検査させ、どのプロセッサが情報の最新のデー
タ・コピーを有するかを判定する。
【0011】スヌーピング・プロトコルを実施するため
にキャッシュ・ブロック内にステータス・ビットが設け
られる。この情報は、バス活動を監視する際に使用され
る。読取りミス時には、すべてのキャッシュが、要求さ
れた情報ブロックのコピーをそのキャッシュ自体が有す
るかどうかを調べ、ミスしたキャッシュにその情報を供
給することなど、適切な処置をとる。同様に、書込み時
には、すべてのキャッシュが、それ自体がそのデータの
コピーを有しているかどうかを調べ、次いで、たとえば
データのコピーを無効化し、あるいはデータのコピーを
最新の値に変更することによって対処する。
【0012】あらゆるコヒーレント・バス・トランザク
ション時にキャッシュがそのアドレス・タグを検査する
ので、スヌーピングは、スヌーピングの結果にかかわら
ずCPUのキャッシュへのアクセスを妨害する。たとえ
ば、スヌーピングによってミスが返されたときでも、キ
ャッシュが使用不能、すなわちタグがスヌープ・アドレ
スに一致するかどうかを検査するためにビジー状態であ
るために、CPUはキャッシュ・アクセスを妨げられ
る。したがって、CPUは、キャッシュがコヒーレンシ
検査のために、キャッシュがビジー状態である間にキャ
ッシュにアクセスする必要がある場合には停止またはロ
ックする。
【0013】スヌーピング・プロトコルには下記の2種
類のプロトコルがある。
【0014】書込み無効化:書込み側プロセッサが、ロ
ーカル・コピーを変更する前に他のキャッシュ内のすべ
てのコピーを無効化させる。プロセッサは次いで、他の
プロセッサがこのデータを要求するまでこのデータを自
由に更新する。書込み側プロセッサはバス上で無効化信
号を発行し、すべてのキャッシュは、それ自体がこのデ
ータのコピーを有するかどうかを調べる。そうである場
合、キャッシュは、このデータを含むブロックを無効化
し、そのブロックが修正済みであることをステータスが
示している場合にはこのデータを与える。この方式で
は、複数の読取り側が可能であるが、書込み側は1つだ
けである。
【0015】書込みブロードキャスト:書込み側プロセ
ッサは、共用されるあらゆるブロックを無効化するので
はなく、新しいデータをバスを介してブロードキャスト
する。次いで、すべてのコピーがその新しい値で更新さ
れる。この方式では、共用データへの書込みが連続的に
ブロードキャストされ、それに対して前述の書込み無効
化方式では、後に続く書込みに関するローカル・コピー
が1つだけになるように他のすべてのコピーが削除され
る。書込みブロードキャスト・プロトコルでは通常、デ
ータに共用(ブロードキャスト)とタグ付けし、あるい
はデータに専用(ローカル)とタグ付けすることができ
る。コヒーレンシの詳細については、J.Hennes
sy、D.Patterson著「Computer Architect
ure: A Quantitative Approach」(Morgan Ka
ufmann Publishers,Inc.、19
90年)を参照されたい。
【0016】スヌーピング式の(スヌーピィ)コヒーレ
ンシ・マルチプロセッサ・システム・アーキテクチャで
は、システム上の各コヒーレンシ・トランザクションが
各プロセッサのキャッシュ・サブシステムへ転送され、
コヒーレンシ検査が実行される。コヒーレンシ検査が行
われている間プロセッサからキャッシュにアクセスする
ことはできないので、この検査は通常、プロセッサのパ
イプラインを妨害する。
【0017】重複キャッシュ・タグを有さない従来型の
単一ポート・キャッシュでは、キャッシュ・コントロー
ラが他のプロセッサに関するキャッシュ・コヒーレンシ
検査のためにビジー状態であるとき、プロセッサ・パイ
プラインはキャッシュ・アクセス命令時に停止する。各
スヌーピングごとに、キャッシュ・コントローラはま
ず、キャッシュ・タグをスヌーピング・アドレスに関し
て検査し、ヒットした場合、キャッシュ状態を修正し、
そのブロックが修正済みであることをステータスが示し
ている場合にはデータを与える。アトミック(分離不
能)タグ読取りおよび書込み用(修正のため)にキャッ
シュ帯域幅を割り振ると、キャッシュはスヌーピングが
タグ書込みを必要としない場合、必要とされるよりも長
い間プロセッサからロックされる。たとえば、キャッシ
ュ問い合わせの80%ないし90%がミスであり、すな
わちタグ書込みは必要とされない。
【0018】二重ポート・キャッシュを実装することに
よってプロセッサ・パイプラインとバス・スヌーピング
との間の競合を低減することが可能である。しかし、こ
の解決策は、追加ハードウェアおよび相互接続を必要と
し、したがって実装が困難であり、コストが高い。
【0019】マルチプロセッサ・システムでは、重複タ
グ(「タグ・キャッシュ」とも呼ばれる)を使用して、
プロセッサ上で実行されるコヒーレンシ検査の数を最小
限に抑えることができる。キャッシュ上で実行されるコ
ヒーレンシ検査の数を低減させることによって、キャッ
シュをより十分に使用して命令を実行し、それによって
システム性能を向上させることができる。
【0020】従来技術の実施態様では、重複タグは実際
のキャッシュのタグの厳密なコピーである。キャッシュ
のサイズが増大するにつれて、重複タグの維持に使用さ
れるキャッシュ集積回路表面積の部分も増大し、あるい
は重複タグを維持するために必要な(たとえば、オフチ
ップ重複タグ用の)デバイス・ピンカウントのコストが
増加する。
【0021】
【発明が解決しようとする課題】重複キャッシュ・タグ
を簡単にかつ廉価に維持する機構を含み、そのような重
複キャッシュ・タグによる集積回路表面積の使用または
そのような重複キャッシュ・タグに関連付けられたデバ
イス・ピン配列の使用を最小限に抑えるシステムは、ユ
ニプロセッサおよびマルチプロセッサ・アーキテクチャ
設計を著しく進歩させるであろう。
【0022】
【課題を解決するための手段】本発明は、システム性能
をそれほど犠牲にせずに、重複キャッシュ・タグのタグ
幅を使用可能な集積回路表面積またはデバイス・ピン配
列に対して適合させる。また、本発明では、集積回路設
計段階中に、使用可能な集積回路表面積またはピン可用
性が減少した場合、この段階の任意の時に部分タグ幅を
減少させることができる。
【0023】
【発明の実施の形態】図1は、例示的なマルチプロセッ
サ・コンピュータ・アーキテクチャのブロック概略図で
ある。マルチプロセッサ・コンピュータ・アーキテクチ
ャでは、プロセッサ10、20、30など複数のモジュ
ールがそれぞれ、バス・リンク16、22、29によっ
てシステム・バス23に結合される。そのようなアーキ
テクチャでは、プロセッサ速度およびオペレーティング
・システム設計に応じて任意の数のプロセッサを使用す
ることができる。各プロセッサは、内部リンク12を介
してプロセッサ・キャッシュ・メモリ13に結合された
中央演算処理装置(「CPU」)11を含む内部構造を
有する。プロセッサ・キャッシュ・メモリは、アドレス
・タグと、ステータスと、データ・コンポーネントとか
らなるキャッシュ・ライン40を含む。バス・インタフ
ェース・モジュール15は、内部リンク14およびプロ
セッサ・リンク16によってプロセッサ・キャッシュを
システム・バス23に結合する。プロセッサは、互いに
通信するようになされ、バス・リンク17によってシス
テム・バス23に結合されたシステム・メモリ18と通
信するようになされ、バス・リンク19によってシステ
ム・バス23に結合されたシステム入出力(I/O)モ
ジュール21と通信するようになされる。
【0024】本明細書で説明する特定のシステム・アー
キテクチャおよびプロセッサ・アーキテクチャが例示の
ために論じられており、特許請求の範囲によって定義さ
れた本発明の範囲に対する制限と解釈すべきものではな
いことを理解されたい。本発明は、多数の異なる種類の
プロセッサおよびマルチプロセッサ・アーキテクチャに
うまく適応化される。
【0025】バス23上でコヒーレンシ・トランザクシ
ョンが発行されると、各プロセッサ10、20、30
は、サード・パーティ・プロセッサとして働き、仮想イ
ンデックスおよび実際のアドレスを使用してキャッシュ
・コヒーレンシ検査を実行する。本発明は、物理的にイ
ンデックス付けされたキャッシュを使用するシステムに
適用することもできる。
【0026】各サード・パーティ・プロセッサは、アド
レス・サイクルの後にキャッシュ・コヒーレンシ・ステ
ータスを知らせる責任を負う。サード・パーティ・プロ
セッサは、そのキャッシュ・ライン40が共用、専用ク
リーン(または「専用」)、専用ダーティ(または「修
正済み」)、非存在(または「無効」)の4つの状態の
うちの1つであることを知らせる。要求側プロセッサ
は、コヒーレンシ・ステータスを解釈し、キャッシュ・
ラインをどのようにマーク付けするか、すなわち専用ク
リーン、専用ダーティ、共用のうちのどれにマーク付け
するかを決定する。サード・パーティ・プロセッサもキ
ャッシュ・ライン状態を非変更、共用、非存在のうちの
どれかを示すように更新する。
【0027】あるサード・パーティ・プロセッサが、要
求されたラインが専用ダーティ状態であることを知らせ
た場合、そのサード・パーティ・プロセッサはアドレス
・サイクルの後にキャッシュ間トランザクションを開始
する。要求側プロセッサは、最初の要求に関してメイン
・メモリから受信されたデータを破棄し、その代わりに
キャッシュ間転送時にこのサード・パーティ・プロセッ
サから直接データを受け付ける。同時に、サード・パー
ティ・プロセッサからのデータがメイン・メモリに書き
込まれる。マルチプロセッサ・システム・アーキテクチ
ャでは複数の未処理パイプライン・トランザクションが
許容されるので、プロセッサ・モジュールがパイプライ
ン・キャッシュ・コヒーレンシ検査を実行しバス帯域幅
を最大限に利用することが重要である。本発明を容易に
適用することができるタイプのマルチプロセッサ・シス
テム・アーキテクチャの詳細については、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月)を参照されたい。
【0028】従来技術では、重複タグ・サブシステムで
キャッシュ・タグが重複される、重複タグ・サブシステ
ムでキャッシュ・タグを重複するオール−オア−ナシン
グ手法が提供される。したがって、従来技術では、重複
タグを使用してキャッシュ・タグ内容の完全なコピーが
実施され、それによって性能が向上し、あるいは重複タ
グが実施されず、したがって集積回路の表面上の空間ま
たはデバイス・ピン数、あるいはその両方が節約され
る。
【0029】すべての重複キャッシュ・タグ・サブシス
テムにおいて、プロセッサでキャッシュ入力が行われる
たびに重複タグに対応する入力を与えなければならな
い。本発明の好ましい実施形態によれば、プロセッサ・
キャッシュ・タグの幅がNビットである場合、重複タグ
の幅は1ないしN−1の任意の値でよい。したがって、
本発明は、完全な重複タグを使用する場合、ほぼすべて
の可能な性能利得を与えるが、従来技術の手法を使用す
るときに必要な集積回路表面積またはデバイス・ピン、
あるいはその両方の一部しか必要としない。
【0030】本発明の好ましい実施形態では、キャッシ
ュ・タグが簡略化され、各キャッシュ・タグの所定数の
ビットが重複キャッシュ・タグ・サブシステムに保存さ
れる。すなわち、各キャッシュ・タグの大部分の特定の
ビットは、ある入力を再使用して新しいメモリ・アドレ
スをマップするときに変更される可能性が高いので保存
される。本発明の他の実施形態では、たとえばソフトウ
ェアの物理メモリ使用度に基づいてキャッシュ・タグ・
ビットのサブセットを選択することができる。したがっ
て、本発明はキャッシュ・タグ・ビットの特定のサブセ
ットには制限されない。
【0031】本発明は、部分キャッシュ・ヒットを与え
るアルゴリズムも備え、そのため部分重複タグに対する
ヒットによって、重複キャッシュ・タグ・サブシステム
に関連付けられたキャッシュが、要求されたデータを有
することを示す応答が生成される。本発明の好ましい実
施形態では、キャッシュ・ラインがダーティではない場
合、メモリは常にデータを供給する。部分キャッシュ・
ヒットの場合、本明細書のアルゴリズムでは、キャッシ
ュが読み取られ、そのキャッシュが、要求されたデータ
を含むかどうかが確認されるまで、メモリのデータが保
持される。キャッシュが要求されたデータを含む場合、
メモリは解放される。そのキャッシュが、要求されたデ
ータを含まず、すなわち偽重複キャッシュ・タグ・ヒッ
トである場合、データが直接メモリから削除される。
【0032】図2は、本発明の好ましい実施形態の動作
を示す流れ図である。図2に示したように、リモート・
プロセッサによりメモリからデータを要求する(10
0)。ローカル・プロセッサのバス・インタフェース
が、その部分重複キャッシュ・タグ・リストを読み取り
(110)、ローカル・プロセッサで部分ヒットがある
かどうかを判定する(120)。部分ヒットがなく、す
なわち要求されたアドレスと部分重複キャッシュ・タグ
・リストが一致しない場合、このデータはメモリから取
り出される(130)。
【0033】部分ヒットがあり、すなわち要求されたア
ドレスと部分重複キャッシュ・タグ・リストが一致した
場合、そのデータはメモリに保持され(140)、ロー
カル・プロセッサが割り込まれ(150)、部分重複キ
ャッシュ・タグが実際に、要求されたデータの簡略化形
であり、すなわちキャッシュ・ヒットがあることが確認
される(160)。部分重複キャッシュ・タグが実際の
キャッシュ・タグに一致し、ステータスが、ブロックの
修正済みを示している場合、このデータはキャッシュか
ら取り出される(180)。そうでない場合、データは
メモリから取り出される(170)。
【0034】上記が2プロセッサ・システムについて説
明したものであることを理解されたい。マルチプロセッ
サ・システムが他のプロセッサを有することは明らかで
ある。そのような場合、各プロセッサごとに前述のアル
ゴリズムが繰り返される。したがって、そのようなシス
テムの各プロセッサは部分重複キャッシュ・タグ・サブ
システムを含む。
【0035】本発明は、偽重複タグ・ヒットのために所
与のキャッシュ・ブロックに対してある程度の追加待ち
時間を導入することもできる。本発明はまた、重複キャ
ッシュ・タグ参照をプロセッサ・キャッシュ参照と直列
的に使用するためにある程度の追加待ち時間を導入する
こともできる。後者の待ち時間は、重複タグを使用する
あらゆるキャッシュ・システムに存在する。前者の待ち
時間は、本発明によって与えられるかなりの節約および
性能向上に鑑みて重要ではないとみなされる。
【0036】図3は、本発明による部分重複タグを有す
る重複キャッシュ・タグ・サブシステムのブロック概略
図である。この図で、(キャッシュ37と重複タグ・サ
ブシステム36とを有する)プロセッサ「B」35は、
(符号で識別した矢印によって図示したように)シス
テム・バス23上でデータを要求する。この要求は、
(符号で識別した矢印によって図示したように)プロ
セッサ「A」31のために維持されている部分重複タグ
(サブシステム「A」33)でヒットする。重複タグが
部分タグにすぎないので、プロセッサ「B」からの要求
は、実際にプロセッサ「A」キャッシュ32でヒットす
る場合も、あるいはヒットしない場合もある。そのよう
な部分タグはキャッシュ・ラインを完全に識別するとは
限らず、したがって所望のキャッシュ・ラインに類似し
ているが、同じではない。
【0037】重複タグ・サブシステム内の部分タグが、
要求されたラインを表すために、プロセッサ「B」から
の要求がプロセッサ「A」キャッシュにヒットした場
合、(符号で識別した矢印によって図示したように)
重複タグ・ヒットが発生する。
【0038】重複タグ・サブシステム内の部分タグが、
要求されたライン以外のキャッシュ・ラインの簡略化形
であったために、プロセッサ「B」からの要求がプロセ
ッサ「A」キャッシュにヒットしない場合、(符号で
識別した矢印によって図示したように)偽重複タグ・ヒ
ットが発生する。
【0039】しかし、プロセッサ「B」からの要求が重
複タグを完全にミスした場合、(符号で識別した矢印
によって図示したように)要求されたデータがプロセッ
サ「A」キャッシュにないのは明らかである。このよう
に、プロセッサ「A」キャッシュは、重複タグ・ヒット
があるときに問い合わせるだけでよい。本発明は、シス
テム・アーキテクチャ全体にわたってキャッシュ・タグ
が分散しているため、そのような重複タグ・ヒットが、
偽部分重複タグ・ヒットと比べて統計的に真ヒットでは
ある可能性が高いことを利用する。
【0040】重複タグの幅が1ビット増加するごとに、
偽ヒットの確率が2分の1に削減されると考えられる。
たとえば、重複タグ幅が6ビットである場合、偽ヒット
の確率は1/64になり、重複タグ幅が8ビットである
場合、偽ヒットの確率は1/256になる。32ビット
・アドレス(最近は64ビット・アドレス)を使用する
と、タグ幅は20ビットを超えることが多い。重複タグ
のタグ幅を2分の1(すなわち、10ビット)に維持す
ることによって、偽ヒットの確率は1/1024、ある
いはほぼ零になる。したがって、本発明は実際上、ほぼ
すべての重複タグ・ヒットがプロセッサ・キャッシュ・
ヒットでもある方式を提供する。
【0041】本発明の好ましい実施形態を実施する際、
この方式によって、予期される低偽ヒット率を与える必
要がある場合には、プロセッサ・データのアドレス位置
を部分タグ・ビットの少数の組合せに集中すべきではな
い。言い換えれば、1または0である各部分タグ・ビッ
トの確率は好ましくは、約50%に近い値にすべきであ
る。
【0042】本明細書では本発明を好ましい実施形態に
関して説明したが、当業者には、本発明の趣旨および範
囲から逸脱せずに、本明細書に記載した応用例を他の応
用例で置き換えられることが容易に理解されよう。した
がって、本発明は、特許請求の範囲によってのみ制限さ
れるべきである。
【0043】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
【0044】(実施態様1)重複キャッシュ・タグを維
持する装置であって、キャッシュ内で行われたキャッシ
ュ入力の少なくとも一部に関する対応する入力を重複タ
グの形で維持する重複キャッシュ・タグ・サブシステム
を備え、前記各キャッシュ入力のタグ部の幅がNビット
であり、前記重複タグが、前記タグ部を構成するビット
のサブセットを備え、前記重複タグの幅として、1ない
しN−1の任意の値が選択されることを特徴とする装
置。
【0045】(実施態様2)前記キャッシュ・タグが簡
略化されることを特徴とする実施態様1に記載の装置。
【0046】(実施態様3)各キャッシュ・タグの所定
数のビットが前記重複キャッシュ・タグ・サブシステム
に保存されることを特徴とする実施態様1に記載の装
置。
【0047】(実施態様4)重複タグに対するヒットに
よって、前記重複キャッシュ・タグ・サブシステムに関
連付けられたキャッシュが、要求されたデータを有する
可能性があることを示す応答が生成されるように、部分
キャッシュ・ヒットを与える手段を備えることを特徴と
する実施態様1に記載の装置。
【0048】(実施態様5)部分キャッシュ・ヒットの
場合に、前記キャッシュが読み取られ、前記キャッシュ
が、前記要求されたデータを含むかどうかが確認される
まで、データをメモリまたは要求側モジュールに保持す
る手段を備えることを特徴とする実施態様4に記載の装
置。
【0049】(実施態様6)前記キャッシュが、要求さ
れたデータを含む場合に、前記メモリまたは前記要求側
モジュールを解放する手段を備えることを特徴とする実
施態様5に記載の装置。
【0050】(実施態様7)前記キャッシュが、前記要
求されたデータを含んでいない場合に、前記要求された
データをメモリから削除する手段を備えることを特徴と
する実施態様5に記載の装置。
【0051】(実施態様8)重複キャッシュ・タグを維
持する方法であって、メモリのデータを要求するステッ
プと、部分重複キャッシュ・タグ・リストを読み取り、
部分ヒットがあるかどうかを判定するステップと、要求
されたアドレスと前記部分重複キャッシュ・タグ・リス
トとの間に一致がない場合に前記データを前記メモリか
ら取り出すステップと、前記要求されたアドレスと前記
部分重複キャッシュ・タグ・リストとの間に一致がある
場合に前記データをメモリまたは要求側モジュールに保
持するステップと、プロセッサ動作に割り込み、前記要
求されたアドレスが実際のキャッシュ・タグに対応する
ことを確認するステップとを含み、前記要求されたアド
レスが前記実際のキャッシュ・タグに一致し、キャッシ
ュ・ステータスが、前記データが修正済みであることを
示している場合に、前記データが前記キャッシュから取
り出され、前記部分重複キャッシュ・タグが前記実際の
キャッシュ・タグに一致せず、あるいはキャッシュ・ス
テータスが、前記データが修正されていないことを示し
ている場合に、前記データがメモリから取り出されるこ
とを特徴とする方法。
【0052】(実施態様9)重複キャッシュ・タグ・サ
ブシステムにおいて、キャッシュ・ラインを完全に識別
するわけではない部分重複キャッシュ・タグを備え、前
記重複タグにヒットしたときにプロセッサ・キャッシュ
に問い合わせるだけでよいことを特徴とする重複キャッ
シュ・タグ・サブシステム。
【0053】(実施態様10)前記部分重複タグの幅を
1ビット増加させるごとに偽キャッシュ・ヒットの確率
が2分の1になることを特徴とする実施態様9に記載の
重複キャッシュ・タグ・サブシステム。
【0054】(実施態様11)プロセッサ・データのア
ドレス位置が前記部分重複タグの少数の組合せに集中せ
ず、そのため、1または0である各部分重複タグ・ビッ
トの確率が50%に近いことを特徴とする実施態様9に
記載の重複キャッシュ・タグ・サブシステム。
【0055】(実施態様12)前記部分重複キャッシュ
・タグ用に予約されるビットの実際の数として、集積回
路表面領域またはデバイス・ピン、あるいはその両方の
可用性が限られているためにより少ない数のビットを有
する重複キャッシュ・タグを与えるような数が選択され
ることを特徴とする実施態様9に記載の重複キャッシュ
・タグ・サブシステム。
【0056】(実施態様13)前記部分重複キャッシュ
・タグ用に予約されるビットの実際の数として、より多
くのビットを有する重複キャッシュ・タグを与えること
によってより高い性能を達成し、それによって偽部分重
複キャッシュ・タグ・ヒットの確率を最小限に抑えるよ
うな数が選択されることを特徴とする実施態様9に記載
の重複キャッシュ・タグ・サブシステム。
【0057】(実施態様14)重複キャッシュ・タグを
維持する方法であって、キャッシュ内で行われたキャッ
シュ入力の少なくとも一部に関する対応する入力を重複
タグの形で重複キャッシュ・タグ・サブシステム内に維
持するステップを含み、前記各キャッシュ入力のタグ部
の幅がNビットであり、前記重複タグが、前記タグ部を
構成するビットのサブセットを備え、前記重複タグの幅
として、1ないしN−1の任意の値が選択されることを
特徴とする方法。
【0058】(実施態様15)前記キャッシュ・タグが
簡略化されることを特徴とする実施態様14に記載の方
法。
【0059】(実施態様16)各キャッシュ・タグの所
定数の下位ビットを前記重複キャッシュ・タグ・システ
ムに保存するステップを含むことを特徴とする実施態様
14に記載の方法。
【0060】(実施態様17)重複タグに対するヒット
によって、前記重複キャッシュ・タグ・サブシステムに
関連付けられたキャッシュが、要求されたデータを有す
る可能性があることを示す応答が生成されるように、部
分キャッシュ・ヒットを与えるステップを含むことを特
徴とする実施態様14に記載の方法。
【0061】(実施態様18)部分キャッシュ・ヒット
の場合に、前記キャッシュが読み取られ、前記キャッシ
ュが、前記要求されたデータを含むかどうかが確認され
るまで、データをメモリまたは要求側モジュールに保持
するステップを含むことを特徴とする実施態様17に記
載の方法。
【0062】(実施態様19)前記キャッシュが、要求
されたデータを含む場合に、前記メモリ・データを解放
する手段を備えることを特徴とする実施態様18に記載
の方法。
【0063】(実施態様20)前記キャッシュが、前記
要求されたデータを含んでいない場合に、前記要求され
たデータにメモリからアクセスするステップを含むこと
を特徴とする実施態様18に記載の方法。
【0064】(実施態様21)重複キャッシュ・タグを
維持する装置であって、メモリのデータを要求する手段
と、部分重複キャッシュ・タグ・リストを読み取り、部
分ヒットがあるかどうかを判定する手段と、要求された
アドレスと前記部分重複キャッシュ・タグ・リストとの
間に一致がない場合に前記データを前記メモリから取り
出す手段と、前記要求されたアドレスと前記部分重複キ
ャッシュ・タグ・リストとの間に一致がある場合に前記
データをメモリまたは要求側モジュールに保持する手段
と、プロセッサ動作に割り込み、前記部分重複キャッシ
ュ・タグが実際のキャッシュ・タグに対応することを確
認する手段とを備え、前記部分重複キャッシュ・タグが
前記実際のキャッシュ・タグに一致し、キャッシュ・ス
テータスが、前記データが修正済みであることを示して
いる場合に、前記データが前記キャッシュから取り出さ
れ、前記部分重複キャッシュ・タグが前記実際のキャッ
シュ・タグに一致せず、あるいはキャッシュ・ステータ
スが、前記データが修正されていないことを示している
場合に、前記データがメモリから取り出されることを特
徴とする装置。
【0065】
【発明の効果】以上のように、本発明の重要な特徴は、
たとえば、部分重複キャッシュ・タグ用に予約する実際
のビット数を必要に応じて選択できることである。した
がって、設計が進行するにつれて、集積回路表面積また
はデバイス・ピン、あるいはその両方の可用性が限られ
ているためにより少ない数のビットを有する重複キャッ
シュタグを与えた方が好ましく、あるいは、より多くの
ビットを有する重複キャッシュ・タグを与えることによ
ってより高い性能を達成し、それによって偽部分重複キ
ャッシュ・タグ・ヒットの確率を最小限に抑えた方が好
ましいと判定することができる。
【図面の簡単な説明】
【図1】図1は、例示的なマルチプロセッサ・コンピュ
ータ・アーキテクチャのブロック概略図である。
【図2】本発明の好ましい実施形態の動作を示す流れ図
である。
【図3】本発明による部分重複タグを有する重複キャッ
シュ・タグ・サブシステムのブロック概略図である。
【符号の説明】
10、20、30:プロセッサ 11:中央演算処理装置(CPU) 12:内部リンク 13:プロセッサ・キャッシュ・メモリ 15:バス・インタフェース・モジュール 16、22、29:バス・リンク 18:システム・メモリ 21:システム入出力(I/O)モジュール 23:システム・バス 31:プロセッサ「A」 32:プロセッサ「A」キャッシュ 33:サブシステム「A」 35:プロセッサ「B」 36:重複タグ・サブシステム 37:キャッシュ 40:キャッシュ・ライン 100、110、120、130、140、150、1
60、170、180:ブロック

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】重複キャッシュ・タグを維持する装置であ
    って、 キャッシュ内で行われたキャッシュ入力の少なくとも一
    部に関する対応する入力を重複タグの形で維持する重複
    キャッシュ・タグ・サブシステムを備え、 前記各キャッシュ入力のタグ部の幅がNビットであり、 前記重複タグが、前記タグ部を構成するビットのサブセ
    ットを備え、 前記重複タグの幅として、1ないしN−1の任意の値が
    選択されることを特徴とする装置。
JP10005361A 1997-01-17 1998-01-14 キャッシュ・タグ維持装置 Withdrawn JPH10232831A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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