JPH03189845A - 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム - Google Patents

階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム

Info

Publication number
JPH03189845A
JPH03189845A JP2307336A JP30733690A JPH03189845A JP H03189845 A JPH03189845 A JP H03189845A JP 2307336 A JP2307336 A JP 2307336A JP 30733690 A JP30733690 A JP 30733690A JP H03189845 A JPH03189845 A JP H03189845A
Authority
JP
Japan
Prior art keywords
cache
memory
data
buffer
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2307336A
Other languages
English (en)
Other versions
JPH0574103B2 (ja
Inventor
Chiao-Mei Chuang
チヤオ・メイ・チユアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03189845A publication Critical patent/JPH03189845A/ja
Publication of JPH0574103B2 publication Critical patent/JPH0574103B2/ja
Granted 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、階層の1つのレベルがその上のレベルから「
ページングされる」メモリ階層ををする、コンピュータ
・システムに関する。この「ページングされる」という
用語は一般的な意味で使用され、セグメントすなわち「
ベージ」は階層のより高いレベルからアクセスされる。
本発明は、このような階層メモリの性能のすべてを、メ
モリの動作を決定するメモリ・チップ上の適切な機能を
選定することによって大幅に改善する方法を提供するも
のである。詳しくは、本発明は最新のキャッシュ・チッ
プ・アーキテクチャに関し、さらに詳しくは、単一ボー
ト・アーキテクチャによる効果的な二重ボート「スヌー
ズ」キャッシュ動作を達成する方法と装置に関する。
B、従来の技術 スヌーズ・キャッシュ[3] (参考文献3)はこれま
で、マイクロプロセッサ・システムにおいテキャッシュ
・コヒーレンジ問題を解決するためのコンピュータ・ア
ートで使用される、最も普遍的なハードウェア方法の1
つであった。これは、キャラシュラ単一プロセッサのシ
ステム・バスまたは多重プロセッサの共有バスをキャッ
シュが常にスヌーズ(モニタ)、または傾聴するように
作動し、バス上のアドレスをそれ自体の登録簿と比較し
て、可能な突合せをする。突合せが検知されると、ハー
ドウェアはデータのコヒーレンジを保証するための適切
な動作をとることになる。これらの動作は一般に、第4
図の示す状態変換ダイヤグラムなどの状態マシンを実行
することによって実施される。このマシンは、ある状態
から他の状態に変化させ、これを行なう時に、状態変換
ダイヤグラムに図示されている対応する動作をとって、
主メモリまたは他のキャッシュの内容を更新するか、ま
たはキャッシュ線を無効にする。
キャッシュの効率を各種のバッファ技法を用いて改善で
きることも、知られている(参照文献1)。これらのバ
ッファは、キャッシュ内におけるキャッシュとして見る
ことができるので、これらは、それ自体のキャッシュ・
コヒーレンジ問題を作り出す。米国特許出願第1589
64号は、広範なバッファ技法を用いたが、これはスヌ
ーズ・キャッシュではない。これは、その構成がソフト
ウェアはハードウェアの代りにキャッシュ・コヒーレン
ジを維持すると想定したために、キャッシュ・コヒーレ
ンジ問題を同じ方法では取り扱わなかった。
本発明は、完全にハードウェアによってキャッシュ・コ
ヒーレンジの支援を維持しながら、適切なバッファ技法
によってスヌーズ・キャッシュの性能を強化するための
、費用効果の高い方法を提供する。本発明はまた、より
従来的な二重登録簿アプローチの代りに、単一ポート・
キャッシュ登録簿のみを使用することによって、スヌー
ズ・キャッシュのために大きな費用節減を達成する。
次に挙げる参考文献は、従来の技術の調査に伴って見つ
けたものである。これらについて個々に検討する。
米国特許第4493033号。この特許の主な特徴は、
CPUまたはIloによって1サイクルについて2回、
ただし主メモリによっては1回だけ、キャッシュにアク
セスすることによって、二重ポート・キャッシュの能力
を達成することである。疑似2ポート・キャッシュの能
力を達成するこの方法は、次の理由によって本発明とは
異なっている。本発明は、再ロード・バッファ及び逆記
憶バッファをキャッシュに加えることによって、二重ポ
ート・キャッシュの能力を達成する。はとんどのプロセ
ッサの実行のためには、キャッシュ時間は、最良の場合
にプロセッサと同じになるだけである。したがって、プ
ロセッサ・サイクル時間がキャッシュ・サイクル時間の
2倍の長さである、特許第4493033号に記載され
ている方法は、非常に僅かな実用的適用性しか持たない
ことになる。
本発明は、キャッシュ・サイクル時間の半分だけを必要
とするキャッシュ・タグを使用するので、タグは、キャ
ッ゛シュ・アクセス当たり2回アクセスされることがで
きる。この特徴の主要な利点は、単一ポート・タグのみ
を有するスヌーズ・キャッシュ・システムが、(タグ及
びキャッシュの両方にアクセスする必要のある)CPU
からのキャッシュ・アクセスによって妨害されることな
く、(タグのみにアクセスする必要のある)バス・スヌ
ーズを実施できることである。したがって、特許第44
93033号に開示されているアーキテクチャは、本発
明とはまったく異なるものである。
IBM  TDB第31巻第5号、1989年10月、
I)、411、オオバ及びシミズ(オオバ他)による「
高性能最新型スヌーズ・キャッシュ・プロトコル(Hi
gh Perforvance IJpdated−T
ype 5noopCache Protocol) 
J oこの報文は、疑似2ポート・アーキテクチャを記
載していない。
上述の開示は、状態機械が異なるので、本発明とは異な
ったキャッシュ・プロトコルを有する。
主な相違は、オオバ他ではINVALID状態を有する
のに対して、5HARED  DIRTY状態を開示し
ていることである。各キャッシュ線は、キャッシュ再ロ
ードが必要であるが否がを告げるために、無効タグを持
たなければならないので、無効状態を識別するための第
3ビツトを必要とする。これによって費用が増加する。
これで使用するプロトコルは、主メモリを通して書込み
を行なうことによる書込み中に、VALID(オオバ他
のプロトフルでは5HARED cLEANとも呼ばれ
る)状態をWRITE  0NCE(有効排他とも呼ば
れる)状態に変える。これらのプロトコルは、この場合
に主メモリと他のキャッシュの両方への書込みを行ない
、状態は5HAREDCLEANになったままである。
これによって、他のキャッシュへの妨害がより高くなる
が、これは、プロセッサ間の共存の確率が高いときは、
キャッシュ・ヒツト率を助けることにもなる。
5HARED  DIRTYとそれに関連する変換にお
ける他の相違は、他のいずれがのキャッシュがDIRT
Y  5TATEにある線がらの再ロードを要求する場
合には、現在開示されているプロトコルは、ダーティ・
ラインを有するキャッシュに、要求中のキャッシュAN
D主メモリへの再ロード・データの供給を行なわせて、
次に、状態をVALID(それらのプロトコルでは共有
クリーンとも呼ばれる)に変えることである。この状況
では、それらのプロトコル0NLYは再ロード・データ
を要求中のキャッシュに送り、主メモリには送らず、そ
して状態を5HARED  DIRTYに変える。再ロ
ードは共有バスで行なわなければならないので、そのア
プローチは任意のバス・トラフィックを保管するのみで
はなく、結果的にバス通信量に影響することになるダー
ティ状態の数を増加させる。
米国特許第4349871号。
この特許は、共通バスを用いて「共通キャッシュ」、タ
グ、メモリ等を共有する多重プロセッサ・システムにお
ける問題を解決することを意図する。本発明は、各個別
プロセッサのための「専用キャッシュ」における問題を
、共通バスの上に各キャッシュ「スヌーズ」を存するこ
とによって解決する。この2つの問題は2つの非常に異
なった多重プロセッサ・システムに由来するものである
から、この特許は本発明とは異なる。さらに、この特許
は、この特別のバイブライン・タイミングに非常に独特
である問題を取り扱うものである。
これは、書込みのために保留中の線を取り替えることの
ある、後のキャッシュ再ロード(この特許では割り振る
とも呼ばれる)の「後」に、先の書込みが実施される可
能性がある、という奇妙な状況を存する。したがって、
書込みの最終実施は、本来の線はキャッシュ再ロード動
作によって取り換えられているので、キャッシュにおけ
る間違った線への書込みを終了させる。この問題は本発
明と関係はない。
米国特許第4822831号。
この特許は、データ・コヒーレンジの解決のために本発
明とは異なったプロトフルを有する。それらのプロトコ
ルは、プロセッサがデータを専用キャッシュに書き込む
、ことができる前に所有権を得るために、「読込み要求
専用」要求を完成することである。続いて記述するよう
に、ここに開示した方法によって、プロセッサは、調停
ののちにバスを確保するとすぐに、専用キャッシュにデ
ータを書き込むことができるようになる。したがって、
本発明によって、プロセッサは、バスがまだ「読取り専
用」プロセスを完成している間に、キャッシュ書込みを
終了して次の動作に進むことができる。
その上に、本発明は、疑似2ボート・キャッシュを作り
出すための特殊機構の「バッファ」を使用することによ
って、キャッシュ・システムの性能を向上させることを
意図した。多重プロセッサ・システムのサポートは、こ
こでは、疑似2ボート・スヌーズ・キャッシュに独特の
データ・コヒーレンジ問題を解決する、強化された書込
み専用スヌーズ・キャッシュ案を持ち込むことによって
達成された。この特許は、疑似2ボート・スヌーズ・キ
ャッシュのような追加のバッファを持っていないので、
本発明によって解決される基本的問題とは関係がない。
C0発明が解決しようとする課題 本発明の主要な目的は、キャッシュ・データ・コヒーレ
ンジを保証する一方、全体のキャッシュ費用効果を実質
的に向上させる機能的なキャッシュ・アーキテクチャを
提供することである。
本発明の他の目的は、はるかに高価な2ポート・アーキ
テクチャと実質的に同等の性能特性を有する、前記のよ
うなキャッシュ・アーキテクチャを提供することである
本発明のさらに他の目的は、常時システム内で全データ
・コヒーレンジを確証するための「スヌーズ」システム
・メモリ参照の能力を持つ、前記のようなキャッシュ・
アーキテクチャを提供することである。
本発明のさらに他の目的は、キヤ・ソシュ・メモリを出
入りするデータの広範な緩衝技法、ノ寸イブライニング
、及びCPU1キヤツシユ、キャッシュ登録簿の間の動
作のオーバラップを使用することによって、疑似2ポ一
ト動作とスヌーズの能力を達成する、前記のようなキャ
ッシュ・アーキテクチャを提供することである。
本発明のさらに他の目的は、キャッシュ・メモリの速度
の2倍の動作可能なキャッシュ登録簿を使用すること、
及び登録簿、キャッシュ、及びCPU命令をオーバラッ
プすることに多く原因する性能の損失なしに、効果的な
「スヌーズ」を達成する、前記のようなキャッシュ・ア
ーキテクチャを提供することである。
また、本発明のさらに他の目的は、高速疑似2ポート・
アーキテクチャをスヌーズ能力と独特に組み合わせる、
前記のようなキャッシュ・アーキテクチャを提供するこ
とである。
00課題を解決するための手段 本発明の目的は一般に、連想キャッシュ・メモリ、その
ための登録簿、及び登録簿と同時にアクセス可能なライ
ン状態アレイ・メモリを含む、疑似2ポート・ 「スヌ
ーズ」・キャッシュ・アーキテクチャによって達成され
る。キャッシュ・メモリは、読取り/変更/書込み能力
と共に準備され、読取り及び書込みの両動作は、単一メ
モリ・サイクル内で実施されることができ、キャッシュ
登録簿は、キャッシュ・メモリの速度の2倍で動作する
。キャッシュ制御機構は、キャッシュ登録簿中の各エン
トリのための複数の状態ビットを含むライン状態アレイ
・メモリにアクセスし、それを変更するための手段を含
む。ライン状態アレイは、アドレス指定手段と共に供給
され、この場合、登録簿がアドレス指定されるときはい
つでも、適切な状態パターンがライン状態アレイにアク
セスされることになる。キャッシュ・メモリは、データ
をキャッシュに書き込むための再ロード・ノ(ソファ、
及びデータをキャッシュから主メモリに書き込むための
ストア・バック・バ・ソファと共に準備される。前記の
両バッファは、全キャッシュが単一メモリ・サイクル内
に書き込まれることのできるキャッシュ・メモリにピッ
チ・マツチングされる。
キャッシュ登録簿用の制御機構は、単一キャッシュ・メ
モリ「読取り/変更/書込み」動作を実施するためにと
る時間内の、完全な登録簿サイクルを規定する。前記の
キャッシュ登録簿制御機構は、代替サイクル上のシステ
ム・バスで「スヌーズ」動作を実施し、前記スヌーズ動
作と共に、代替サイクル中にCPUアクセス動作を実施
する。
ライン状態アレイ・メモリは、キャッシュ内に記憶され
た特定のライン状態が4つの状態、すなわち「無効」、
「有効」、「ダーティ」、及び「書込み専用」の内の1
つであることを指定する。
キャッシュ・メモリ制御機構は、「状態ピット」の現在
状態を条件、とじて、前記キャッシュ、主メモリ、及び
CPUの間の読取り/書込み動作を果たすため、及びそ
れを適切にリセットするための手段を含む。
メモリ制御機構はさらに、ストア・バック・バッファ中
のデータを、前記メモリ・バス・の制御機構を得た後に
ただちに単一キャッシュ・メモリ・サイクル中に前記ス
トア・バック・バッファをロードすることにより、ダー
ティにならないようにし、他の任意の「バス・マスタ」
が前記バスの制御機構を得る前に、前記データ・バック
を主メモリに記憶するための手段を含む。前記の制御機
構はさらに、再ロード・バッファに記憶されたワードが
前記「スヌーズ」を介して変更されるべきであるとわか
った時に、前記の再ロード・バッファの中で「黛効」ビ
ットをセットするための、手段を含む。キャッシュ中の
ラインを交換しようとし、ただし、rRPダーティ」が
セットされると、ストア・バック要求が出される。スト
ア・バック要求が許されると、更新しようとするダーテ
ィ・ラインはストア・バック・バッファに転送される、
再ロード・バッファの内容はキャッシュに転送される。
これらの2つの動作は、1つの読取り・変更・書込みキ
ャッシュ・サイクル中に実施される。
E、実施例 本発明の説明を行なう前に、この明細書の中で使用され
るいくつかの用語を、その意図する意味としてよく理解
しておくべきであり、これによって、本発明全体をはっ
きり理解する上で役立つことになる。このため下記の定
義を列挙する。
「ダーティ・ライン」 ダーティ・ラインとは、主メモリにおいてではなく、専
用キャッシュにおいて更新されたラインである。
「インバリッド・ライン」 ラインが無効の状態にある場合に、対応するデータは有
効ではない(すなわち、不要情報である)。
キャッシュは、ラインの内容を使用することができる前
に、メモリからの有効データによってラインを再ロード
しなければならない。
「ピッチ・マツチ」 「ピッチ・マツチ」は、vLSIチップのレイ゛アウト
においてしばしば必要となる用語である。
これは、高度に規則的な、構成された反復型の設計に必
要である。各チップは数千回繰り返すメモリ・セルを有
し、32ビツト・プロセッサにおけるデータ流れセルは
32回繰り返される。本発明では、繰返しの1単位内で
の要素が「ピッチ・マツチ」である、ということを示す
必要がある。ピッチは繰返し単位の幅である。単位内で
の要素がピッチ・マツチであると、それらの要素はすべ
て同じ幅を有する。
「ストア・イン・キャッシュ」 「ストア・イン・キャッシュ」は、主メモリを更新する
ことなく、キャッシュのみに書き込むことによってデー
タを記憶する、一種のキャッシュである。主メモリは、
キャッシュ・ラインが再ロード・プロセス中に交換され
ようとするときにのみ、更新されることになる。主メモ
リを更新するこのプロセスは、ストア・バックとも呼ば
れる。
「ストア・バック・キャッシュ」 「ストア・バック・キャッシュ」は、ストア・イン・キ
ャッシュの別の名称である。この名称は「ダーティ」・
データを主メモリに戻して記憶する要件から来ている。
「再ロード・バッファ」 「再ロード・バッファ」は、主メモリから再ロードされ
ているデータを保留するためのバッファである。バッフ
ァの再ロードを完遂した後、再ロード・バッファの内容
は後でキャッシュにアンロードされることになる。
「ストア・バック・バッファ」 「ストア・バック・バッファ」は、再ロード・プロセス
中の交換されるべきラインが「ダ、−ティ・データ」保
留するとき、ストア・バックしようとするデータを主メ
モリに保留するためのバ、ソファである。
「ライト・スルー・キャッシュ」 「ライト・スルー・キャッシュ」は、記憶動作中にキャ
ッシュと主メモリの両方に常に書き込む、一種のキャッ
シュである。
「スヌーズ」 ここで使用される場合は、スヌーズは、システム・メモ
リ・バス上に出現するすべてのアドレスと比較されるべ
きシステム・メモリ・バス上に出現する任意のアドレス
を、登録簿(及びRLPアドレス・レジスタ)中に記憶
されたすべてのアドレスと比較されるようにする、キャ
ッシュ登録簿中の制御順序を含む。
1U暖 キャッシュすることは、メモリの待ち時間を短縮しバス
通信量を減少させることによって、プロセッサ性能を2
倍向上させる。統計によれば、ライト・バック(ストア
・インとも呼ばれる)は−般に、ライト・スルー・キャ
ッシュ(ストア・スルーとも呼ばれる)と比べてはるか
に少ないバス通信量を存する、ということが証明されて
いる。
ダーティ・ラインをストア・バックするために必要な時
間を常にCPU性能から隠すことのできる、効率的なキ
ャッシュを持つために、本発明は、ラインのサイズと同
じ幅のストア・バック・バッファを利用する。ストア・
バック・バッファは、メモリ・アレイとピッチ・マツチ
されるように注文設計される。キャッシュ・メモリ(Q
主メモリ?)は、少なくともライン・サイズと同じ数の
感知増幅器を有するように構成されている(感知増幅器
の数は、セット・セレクト・マルチプレクサが感知増幅
器の後にある場合には、2倍にしなければならない)の
で、キャッシュ・メモリ・アレイからストア・バック・
バッファに交換すべきダーティ・ラインを再ロードする
ために必要な転送時間は、1サイクルを要するだけであ
る。感知増幅器は、メモリ・セルから読み取られたデー
タを感知し、感知されたデータを供給してストア・バッ
ク・バッファを満たすために必要である。各感知増幅器
は1ビツトのデータを供給するので、1サイクル中にバ
ッファを満たすためには、ストア・バック・バッファに
あるビットの数だけの感知増幅器がなければならない。
選定されたセットが、データが感知された後に選択され
た場合には、感知増幅器の数は、セット連想キャッシュ
内のセット数によって乗算されるべきであるから、セッ
ト選定の結果は、十分なデータ・ビットを生成して、1
サイクルでストア・バック・バッファを溝たすことにな
る。
この1サイクルを、主メモリから(ライン・サイズが2
ワ一ド以上の場合には)最初のワードを再ロードするた
めに必要な時間と、平行させることができるので、これ
はCPU性能の観点からは見えない。したがって、スト
ア・バック・バッファを、バスが空いたときに、主メモ
リにアンロードすることができる。必要なストア・バッ
ク・バッファの数は、アーキテクチャ、アプリケーショ
ン、及びコスト・パフォーマンスのための設計点に依存
する。ストア・バック・バッファの内容を主メモリに記
憶するために取る時間は、ストア・バック・バッファが
アンロードされる前に、他のダーティ・ラインを交換す
るための次のキャッシュ・ミスが発生するときに、出現
可能である。複数のストア・バック・バッファが露出の
傾向を減少することになる。衝突の確率は、アプリケー
ションとアーキテクチャの間で変わる。色々なシステム
の形式も、コストと性能について色々な見返りを宵する
キャッシュの性能に関する他の重要パラメータは、キャ
ッシュ・ミス・ペナルティである。これは、CPUの実
行がキャッシュ・ミスが原因で保留されなければならな
い時間から、CPUの性能低下として定義される。ミス
したワードから再ロードを開始し、それがキャッシュに
到達するやいなや、それをCPUにバイパスすることに
よって、フル・ラインの再ロードのためのCPHの待ち
を軽減することができ、それによって、再ロード・ペナ
ルティを、ミスの率と、最初のワードを一次効果として
再ロードするためのメモリ待ちとの積にまで減少させる
ことができる。本発明のスヌーズ・キャッシユはまた、
二次効果の大部分を減らす再ロード・バッファ(RLB
)を備えている。
プロセッサ性能におけるキャッシュ・ミスの一次効果は
、ミスしたデータが主メモリから再ロードされる前にプ
ロセッサが停止すべき時間である。
プロセッサ性能におけるキャッシュ・ミスの二次効果は
、ミスしたデータを受は取る後であるが、ミスしたライ
ンの再ロードが完遂される前に、キャッシュ再ロードの
せいで、プロセッサが再度停止すべき時間である。
二次効果は、再ロードが完遂される前にミスに密接に続
く次のデータ要求から来る可能性がある。
これはまた、キャッシュ再ロード時間中の命令事前取出
しバッファの消耗から来る可能性がある。
事前取出しバッファは、主メモリから取り出されたがま
だ復号も実行もされていない命令を、順番待ちするバッ
ファである。
この再ロード・バッファも、ライン・サイズと同じ幅で
ある。メモリが少なくともライン・サイズの2倍の数の
ビット・ラインを有するように構成されているので、再
ロード・バッファを1サイクル中にバッファからキャッ
シュ・アレイに転送されることができる。キャッシュ再
ロード中に、ラインは先ず再ロード・バッファに再ロー
ドされる。そして、キャッシュ・メモリの性能への最少
の影響が、1サイクル中にバッファからキャッシュ・ア
レイに転送されることによって引き起こされることを、
優先順位論理が判定する時間まで、ラインは再ロード・
バッファに留まる。この方法で、キャッシュは、再ロー
ド・バッファを1ポー)RAMに単に加えることによっ
て、疑似2ポー)RAMのように挙動する。これは、キ
ャッシュがなお再ロードされている間に、同じまたは異
なったラインへのロード・アクセスによって極めて近く
に追随されるミス(命令の取出し、またはロード、また
は記憶によって引き起こされる)などの、二次効果の大
部分を除去する。1ボート・キャッシュでは、この状況
はただちにプロセッサを遅らせることになる。この理由
は、キャッシュが再ロード・プロセスの完遂を試みてい
る間に、プロセッサは第20−ド命令からのデータを待
たなければならないことである。再ロード・バッファに
よって、キャッシュは、ラインを再ロードするプロセス
の間に、さらにCPU要求を受は入れることができる。
追加の二次要求効果は、命令取出しまたは記憶のために
は不十分な緩衝技法である。これは、空命令事前取出し
待ち行列、または単一のバッファされた「記憶」が続き
、そして「記憶」または「ロード」が続く命令「ミス」
を有する、命令「取出し」による、バッファされた記憶
「ミス」である。
機能的に「疑似2ポート」を保守するストア・バック・
バッファ及び再ロード・バッファを加えて、スヌーズ・
キャッシュは、これらの2つのバッファを通じて「疑似
2ポート」の能力を達成する。
本発明のスヌーズ・キャッシュは、CPUからの読取り
/書込み要求を保守する他のボートを有しながら、外部
バス用の読取り(再ロード用)または書込み(ストア・
バック用)を行なう1ボートを有することによって、キ
ャッシュ・ミス・ペナルティの多くを減少させることが
できる。
スヌーズ・キャッシュは、従来の技術(参考文献2.3
)において、また疑似2ボート・キャッシュ(参考文献
1)においても周知である。しかし従来の技術には、本
発明者が知っている疑似2ポート・スヌーズ・キャッシ
ュはない。緩衝技法を通じての疑似2ボート能力を有す
るスヌーズ・キャッシュは、独特のデータのバッファに
関連するコヒーレンジの問題を取り扱わなければならな
い。バッファに関連するこのコヒーレンジの問題を解決
するための方法は、本発明の最も重要な部分である。
疑似2ボート能力を有する利点は、キャッシュがスヌー
ズであってもなくても同じである。これは、疑似2ボー
ト能力をスヌーズ・キャッシュに加える理論的根拠を提
供する。疑似2ボート能力は、スヌーズ・キャッシュの
ためのより高い性能を発揮するために重要である。しか
し、「疑似2ボート」能力がスヌーズ・キャッシュに加
えられると、追加のコヒーレンジの問題が発生する。コ
ヒーレンジの問題の解決は、本発明の疑似2ボート・ス
ヌーズ・キャッシュの適切な機能発揮に必要である。
キャッシュ・アレイにアクセスするために続いて記載さ
れる優先論理も、本技術分野では独特のものであると思
われる。スヌーズ・キャッシュ・システムでは、これら
の性能拡張室は、専用の緩衝技法を通じて、なおもそれ
らが起こす問題に対する他の革新的解決法を要求してい
る。これらのバッファはスヌーズ・ヒツトを引き起こす
可能性ノするデータを保留するので、キャッシュ・コヒ
ーレンジの問題もバッファに加わる。しかし、ハードウ
ェアの観点からは「アドレス比較」に費用をかけるのみ
ならず、賛用のかかる特別なデータ経路モ、ストア・バ
ック・バッファへのスヌーズ・ヒツトの間に、ストア・
バック・バッファへ書き込むために必要である。これが
必要である理由は、バスが、それがバス・サイクルの中
間にあるときに、ストア・バック要求を受は入れること
ができないので、キャッシュが、スヌーズ・ヒツトのた
めに、ダーティ・ライン上でデータがキャッシュ内のダ
ーティ・ラインに書き込まれることになるように、構成
されていることである。特別なデータ・バスが必要であ
る理由は、外部バスからストア・バック・バッファへの
経路は利用できないので、ストア・バック・バッファの
みがキャッシュ・アレイからの入力を受は取ることであ
る。ストア・バック・バッファはアレイとピッチ・マツ
チされているので、特別入力経路をストア・バッファに
加えることは、チップ領域に本質的に影響することにな
る。再ロード・バッファへのスヌーズ「ヒツト」は、そ
れがバスへの出力経路を持たないので、同じ問題を起こ
す。
本発明は、これらの問題を解決するためのコスト効果の
高い方法を教示し、また同時に、再ロード・バッファ及
びストア・バック・バッフ1の利用を通じて、システム
の性能を拡張するという利点を提供する。本発明のスヌ
ーズ・キャッシュには、交換されるべき(たとえば、キ
ャッシュに記憶された)ラインがダーティであることを
フラグするための、RPDIRTY(交換されるべきラ
インがダーティである)と呼ばれるビットが供給される
。再ロード・バッファが再ロードが終わってフルになる
と、ストア・バックRPD IRTYビットがセットさ
れている場合には、要求がバス・ユニットに送られる。
再ロード・バッファは絶対にダーティにはならないこと
は、明らかに理解されるはずである。交換されるべきラ
インのみがダーティになることがある。したがって、交
換されるべきラインは、RLBの内容がキャッシュに転
送される前に、主メモリへの次のストア・バックのため
に、最初にストア・バック・バッファに転送される。本
発明の疑似2ポート・キャッシュのアクセスを調停する
優先論理は、再ロード・バッファが再ロードによってフ
ルになった後に、再ロード・バッファからキャッシュへ
の転送が、RPDIRTYビットがゼロである場合にの
み、発生することになるように設計されている。その他
、この転送は、ストア・バック要求がバスから許可され
るまでは発生しない。キャッシュ・ミスに遭遇するとき
に、交換されるべきラインがダーティでない場合には、
それは正しく無効化され、このためRPD I RTY
ビットは、ラインが実際に更新される前に変えられる必
要はない。
キャッシュ・アレイ(メモリ・セル)は1ボートのみを
持つ。バッファと優先論理は、これを永久に2ポート・
キャッシュ「のように(LOOKLIKE)Jするため
に使用される。したがって、「疑似」2ポートという用
語が使われた。バッファは、キャッシュ・アレイへのア
クセスの混雑を軽減するために使用される。データのい
くつかはバッファされるので、色々なソースによる1ポ
ート・セルへのアクセスは、順次に行なわれ、この間、
イベント(すなわちCPUアクセス要求、再ロード、ス
トア・バック)は外見的には並列動作として見られる。
交換すべきラインがダーティである場合には、それは、
実際に交換されるか主メモリにストア・バックされるま
で、ダーティ状態のままであり、このために、この交換
すべきダーティ・ラインを、キャッシュ登録簿からの規
則的なスヌーズと同じ方法で取り扱うことができる。こ
の状態変換の実行を、下記の好ましい実施例の部門で説
明する。ストア・バックが「許可」されると、優先論理
は再ロード・バッファからキャッシュ・アレイへの変換
を発生させる。RPD IRTYを結合されたストア・
バック要求「許可済」信号は、再ロード・バッファから
キャッシュ・アレイへの変換が行なわれる前に、ストア
・バックのロードを始動させるが、両方は同じサイクル
で発生する。
キャッシュ・アレイは、読取り・変更・書込みの性能を
備えるように構成されている。メモリが「読取り・変更
・書込み性能」を備えるように設計されている場合には
、これは1サイクルで先ずアドレスから読み取り、次に
同じアドレスに新しいデータを書き込むことができる。
ストア・バック・バッファのロードは、読取り・変更・
書込みサイクル中に行なわれる。その後ただちに、スト
ア・バック・バッファは、ストア・バック・バス・サイ
クルが保証されているので、主メモリにアンロードされ
る。これは、ストア・バック・バッファ上のスヌーズ・
ヒツトを避けるためには、ストア・バック・バッファは
ストア・バンク・バス・サイクルが終わるとすぐにアン
ロードされなければならないので、必要なことである。
この方法で、これはアクセス比較ハードウェア、上述の
特別データ経路、及びスヌーズ・ヒツトを行なうための
関連制御機構を保管する。これは、システム設計が、ス
トア・バック・バッファのデータにスヌーズ・ヒツトが
起り得ないことを保証しているからである。追加のデー
タ経路が作られ、ピッチ・マツチされたメモリ・セル、
感知増幅器、及びバッファのピッチ・サイズの増加も引
き起こす。再ロードの内容をダーティにさせることは、
第5図で説明するキャッシュ・アレイにおけるデータに
ついてのコヒーレンジを保守するために必要な状態機械
に似た、データ・コヒーレンジ制御を要求する結果とな
る。
ある珍しいシステムについては、確実なストア・バック
・バス・サイクルを保証することができない場合、上述
のキャッシュ・コヒーレンジ保守法をある追加された論
理によって変更し、コヒーレンジの問題を解決すること
ができる。キャッシュLL、RPDIRTYビットを保
守し、ストア・バック要求を出し、そしてキャッシュ内
にダーティ・コピーを保守することになり、この間、上
述の場合におけるのと同じ方法で、ストア・バック要求
は保留となっている。ストア・バック要求が許可される
と、1サイクル中に読取り・変更・書込み動作を実施し
てストア・バック・バッファをロードし、再ロード・バ
ッファからキャッシュに転送する代りに、再ロード・バ
ッファを転送することなくストア・バック・バッファを
ロードするだけである。したがって、交換されるべきダ
ーティ・コピーは、キャッシュとストア・バック・バッ
ファの両方にある。データはただちにバスからストア・
バック・バッファに出力されることになる。ストア・バ
ック・バス・サイクルが早々と終了する場合には、キャ
ッシュ内のコピーはスヌーズを続けて、ストア・バック
・バッファ上のスヌーズ・ヒツトを回避する。
追加のアドレス比較機構と付属する論理が、キャッシュ
内の交換すべきダーティ・ラインがCPUまたはバス上
のある装置のいずれかによって重ね書きされた場合を、
検出するために必要である。これは、ストア・バック・
プロセス中かまたはストア・バックが割り込まれた後の
いずれかに発生する可能性がある。この場合、もう1つ
のキヤツシユ・サイクルが、ストア・バック・バッファ
を再ロードするために必要である。ストア・バックは、
ストア・バック・バス・サイクルが再び許可されると、
全ラインのストア・バックが完了するまで同じ様式で続
けられることになる。するとこの時点で、優先論理は再
ロード・バッファからキャッシュへの転送を出す。
はとんどのマイクロプロセッサはCPU内の記憶をバッ
ファ・アップするので、記憶は、CPU性能に影響する
ことなく停止可能である。本技術分野では、これは一般
に、記憶レジスタにおいて記憶データを待機するための
「バッファされた記憶」と呼ばれる。したがって、キャ
ッシュのアクセスを調停するための優先論理は、再ロー
ド・バッファからキャッシュ・アレイへの転送を行ない
、CPUより高い優先順位のキャッシュへの書込みを行
なうように設計されている。この方法で、再ロード・バ
ッファは決してダーティになることはナイ。これが供給
すべきキャッシュ・コヒーレンジ論理のみは、バス書込
みでのスヌーズ・ヒント中に再ロード・バッファを無効
化することである。
これは、主メモリ中の同じアドレス位置への他のバス・
マスク書込みがある場合には、再ロード・バッファ中の
データはすでに古くなっているので、再ロード・バッフ
ァ中のデータはキャッシュ内に記憶される必要はなくな
ることを意味する。明らかに、このことはアドレス比較
機構を必要とするが、第2段階中にCPUがらのアクセ
ス要求のために、再ロード・バッファ上のヒツトの決定
に使用される既存のアドレス比較機構は、第1段階中に
スヌーズのために利用することができる。
厘亙互盈ユ これから、本発明の1つの好ましい実施例を詳しく説明
するが、これは、2ポート登録簿を育するが大きなハー
ドウェア費用の不利はないキャッシュ・アーキテクチャ
と性能上実質的に同等に、全キャッシュ性能を拡張した
ことになる。
典型的なスヌーズ・キャッシュにおいて最も高価ナハー
ドウェアは、スヌーズによるCPU動作の妨害を避ける
ための、キャッシュ登録簿の複写または2ボート・キャ
ッシュ登録簿[参考文献4コの使用である。本発明は、
どのようなハードウェアの複製も2ポート登録簿の使用
もなくて、この目的を達成する方法を提供する。これは
効果的なバイプライニングによって達成される。登録簿
はキャッシュ・アレイよりもはるかに小さいので、登録
簿のアクセスはキャッシュ・アレイ・アクセスよりもは
るかに速くなる。第3図に示すように、キャッシュ・ア
クセス・パイプラインは次のように区分することができ
る。すなわち、第1段階で、登録簿はCPUが線形アド
レス生成を行なう間にスヌーズを実施し、キャッシュ・
アクセス要求を出し、そしてキャッシュ優先論理は、c
PU読取り、書込み、再ロード・バッファ転送、及びス
ヌーズ・ヒツトが発生した場合にはスヌーズ・ヒツトの
処理、の間の調停を行なう。第2段階で、キャッシュ・
アクセスは、キャッシュ登録簿及びキャッシュ状態アレ
イにアクセスすることによって始まり、それがヒツトで
あるかミスであるか、そしてまた、CPUがアドレス変
換を行なって実アドレスを生成する間の、キャッシュか
らの並行読取りであるか、を判定する。第2段階が終わ
ると、データは、それがヒツトである場合にはCPUに
利用可能であり、したがって、1サイクル・キャッシュ
のパフォーマンスを達成する。次の第1段階では、′そ
れが読取りであった場合には、キャッシュがプレチャー
ジを実施して次のアクセスを準備する間に、登録簿は再
びスヌーズを実施する。CPU要求が書込みであった場
合には、登録簿と状態アレイは第2段階中にアクセスさ
れ、どのセットに書き込むべきかを決定することになる
。次の段階、すなわち第1段階では、登録簿と状態アレ
イがスヌーズを実施する間に、キャッシュ・アレイは書
込みを行ない、その後、ビット・ラインを復元する。読
取り・変更・書込みサイクル中は、読取りは第2段階で
実施され、書込みは同じセット選択を使用して次の第1
段階で発生する。したがって、登録簿と状態アレイはス
ヌーズのために第1段階中に使用され、CPUアクセス
のために第2段階中に使用され、この間に、キャッシュ
・アクセスは第2段階から次の刻時サイクルの第1段階
にスパンし、こうしてスヌーズの目標を、またどのよう
な追加のハードウェアもなくて1サイクル・キャッシュ
として達成する。古いアプローチでは、スヌーズのため
の1つの登録簿とキャッシュのCPUアクセスのための
別の登録簿が単に同時に使用された。
本発明の好ましい実施例で説明されるスヌーズ・キャッ
シュは、8KB、18B/ライン、両方向セット連想混
合I及びD(命令及びデータ)キャッシュである。第2
図は、この設計の登録簿と状態アレイ部分を示す。登録
簿と状態アレイは両方ともメモリ・アレイである。状態
機械は、第4図に示すように状態ダイヤグラムを実現す
るための状態アレイに関連し、当業者はよく理解できる
ように、ランダム論理内またはPLA内のいずれかで実
現可能である。第3図は、本設計のキャッシュ・アレイ
、再ロード・バッファ及びストア・バック・バッフγの
部分の組織を図示する。
第2図で、登録簿10は、256のエントリの2つのセ
ット12.14をそれぞれ有する。各セットは20ビツ
ト出力をパリティを有する。各エントリは、状態アレイ
16の中にセット当たり対応する2つの状態ビットと、
LRU交換計画のための1つの最も最近使用されたビッ
トを有する。これらのビットのすべては、登録簿アドレ
スにょって直接アクセスされる。登録rJ10は、読取
りと書込み両方のための単一ボートを存する。状態アレ
イは、Rと印された1つの読取りボート、及びWと印さ
れた1つの書込みボートを有する。この両段階中に、状
態アレイの出力は状態機械18を通過し、次のキャッシ
ュ・サイクル段階中に状態アレイ16に書き込まれるこ
とになる、新しい状態を生成する。前述のように、状態
機械は、PLAかまたはランダム論理のいずれかを含ん
でもよく、このランダム論理は、第4図のブロック/デ
ータ流れ図に詳しく説明するように、キャッシュすべて
において現在実施されている動作にしたがって、特定の
キャッシュ・アクセスのための状態ビットを設定する。
しかしこれは、コンピュータ・アートの専門家にはよく
理解できるように、「スヌーズ」で支援されたデータ・
コヒーレンジと疑似2ボ一ト操作速度の両方のために動
作する、必要キャッシュを供給するために、システム制
御を行なう1つの方法である。
8KB、16Bライン・サイズ、両方向セット連想キャ
ッシュについては、アドレスの8ビツト(たとえばビッ
ト20〜27)が、登録簿1oと状態アレイ16にアク
セスするために必要である。
これに追加して、10ビツト(たとえばビット20〜2
9)がキャッシュにアクセスするために必要である。ア
ドレスの最高位20ビツトは、比較回路20において2
0ビツト登録簿出力と比較するために使用される。アド
レスが比較されて対応する状態が無効でない場合には、
意図されたアクセスはキャッシュへのヒツトとなる。ヒ
ツトを有するセットは、論理回路22から出ている2本
のライン24の1つで、SET  5ELECTとして
表現される。
第5図に示すように第1段階では、登録簿と状態アレイ
がスヌーズのためにアクセスされ、MAX2Bを介して
スヌーズ・ヒツトを決定する。第2段階中のキャッシュ
への正規のCPUアクセスについては、ベージング装置
が変換索引緩衝機構(TLB)を通じて線形アドレスを
実アドレスに変換する間に、3つのアレイを同時に読み
取るために、8ビツトが使用される。これらの3つのア
レイは本質的には、登録簿、ライン状態アレイ、及びキ
ャッシュである。第2段階の真中では、登録簿と状態ア
レイからの結果が、それがキャッシュ・ヒツトであるか
否か、及び2)どのセットが選択されるか、を判定する
ことになる。次にセット選択信号は、第3図の示すよう
に(ライン24を介して)キャッシュ・アレイに送られ
、(第3図における)キャッシュ40から同時に読み取
られる2つの出力の1つを選択する。バッファにおける
可能性のあるヒツトのために、アドレスはまた、20で
再ロード・バッファ・アドレスと比較される。次に、キ
ャッシュ40または再ロード・バッファ42からのデー
タは、マルチプレクサ44によって選択され、マルチプ
レクサ44の出力はCPUに送られる。
次の第1段階中に、キャッシュはプレチャージを行なう
ので、次の段階、つまり第2段階における新しいアクセ
スの開始に準備は完了している。
CPUは第1段階で読取りサイクルを開始し、線形アド
レスを生成し、アドレス変換とキャッシュ・アクセスを
終了した後、第2段階の終りで読取りサイクルを完了す
る。キャッシュ・サイクルは第2段階で始まり、最初に
データを読み出す。それから第1段階中に、キャッシュ
は、書込み要求がある場合には書込みを行ない、そして
プレチャージでサイクルを終了する。CPUからのキャ
ッシュ・アクセス要求が書込みである場合には、出力デ
ータはCPUによって無視される。この場合、キャッシ
ュはアドレスをラッチ・アップして選択を設定し、第1
図にすべて示すように、キャッシュ・サイクルの第2半
分の第1段階の始めに、書込み動作を開始し、次に復元
動作が続き、プレチャージを行なって、次の段階、つま
り第2段階における次のキャッシュ・アクセス開始に準
備完了となる。
登録簿が最高位20ビツト・アドレス比較のためにアク
セスされる間に、同じ8ビツト・アドレスは「ライン状
態アレイ」を読み取るために使用される。ライン状態ア
レイ16の出力は、MRU(I&も最近使用された)1
つのビットと両セットの「状態」の4ビツトから構成さ
れる。(4つの状態を表すには2ビツトが必要である。
)SET  5ELECTライン25は、選定されたセ
ットの状態を選択するために使用されるが、この状態は
、状態機械18への入力として使用され、選択されたラ
インの新しい状態を判定する。
第4図に示すように、状態変換ダイヤグラムを実行する
状態機械は、ライト・スルー・モードかライト・バック
・モードのいずれかで、ユニ・プロセッサ・システム及
ヒ多重プロセッサ・システムの両方のためのキャッシュ
・コヒーレンジを維持する。ライト・バック・キャッシ
ュを宵する多重プロセッサのためのキャッシュ・コヒー
レンジ案は、グツドマン(Good+++an)の書換
え不能法に似ている。
ユニ・プロセッサ・モード(MP=O)では、4つの可
能な状態のうちの3つが使用される。MPビット二〇で
あればプロセッサがユニ・プロセッサ・システム内にあ
ることを意味し、MPビット=1の場合には、プロセッ
サは多重プロセッサ・システム内にある。状態は、ライ
ンが主メモリからちょうど再ロードされた場合には、I
NVALよりからvALIDに変わり、VALID状態
テは、CPUがラインに書き込む場合には、これはD 
IRTY状態に変わる。ローカル・バス上での(そのワ
ード)に対する書込み動作によるスヌーズ・ヒツトがあ
る場合、またはラインが交換されつつあるプロセス中に
ある場合には、状態はVALIDからINVALIDに
戻る。バス書込み動作がスヌーズされ、アドレスがダー
ティ・ラインへのヒツトを引き起こす場合には、ライン
はダーティ状態に設定されたままであり、バス書込み動
作は、主メモリの代りにキャッシュに書き込むことにな
る。この実施は多重プロセッサの状況とは違っている。
それは、他のキャッシュからではない書込み動作はライ
ン部分のみ重ね書きしてもより、シたがって、ダーティ
・ラインは、多重プロセッサ・システムの場合のように
、その全体が無効化されることはできないからである。
ラインもまた、それが交換されるラインとして識別され
る場合には、再ロード・バッファからキャッシュへの転
送中に実際に新しいラインによって交換されてしまうま
で、ダーティのままになる。この時点で、状態はD I
RTYからVALIDに変わる。
多重プロセッサ・モード、MP=1では、4つの可能な
状態がある。現在INVALID状態にあると、状態は
、ラインがある他のキャッシュから再ロードされる場合
には、VALIDに変わり、またはラインが主メモリか
ら再ロードされる場合には、WRITE−ONCE状態
に変わる。他のキャッシュから再ロードされる場合には
、データは他のキャッシュによって共有されていること
を意味し、したがって、状態は有効状態であるはずで、
その可能な共存を信号で示す。ラインが主メモリから再
ロードされる場合には、データのこの部分を有するキャ
ッシュはないことを意味し、したがって特定のCPU/
キャッシュが唯一のオーナーであり、データへの変更は
自由である。これは「書替え不能」状態が代表するもの
である。状態は、CPU書込み動作中にVAL I D
状態からWRITE−ONCE吠態に変わり、システム
中の他のキャッシュを、書込み動作のスヌーズとキャッ
シュ自体のコピーの無効化ができるようにするために、
バス・インタフェース論理に、主メモリへのライト・ス
ルーを行なわせることになる。
したがって、WRITE−ONCE状態はコピーの唯一
の所有権を表し、コピーは、他のキャッシュに通知する
ことなく自由に変更される。他のキャッシュからのライ
ト・スルー動作または非キャッシニ装置からのライト・
スルー動作であってもよいバス書込み動作からの、スヌ
ーズ・ヒツトが存在する場合には、有効なラインは無効
化されることになる。有効なラインはまた、それが、C
PU書込みが再ロード・バッファ内のRPD IRTY
ビットを変えないようにするために、交換されるべきラ
インとして識別される場合には、無効化されることにな
る。WRITE−ONCE状態にあるときに、キャッシ
ュがラインを再ロードする他のプロセッサをスヌーズす
る場合には、状態はVALIDに転じ、これはコピーが
キャッシュの間で共存できることを意味する。キャッシ
ュがバス上の非キャッシュ書込み動作をスヌーズし、W
RITE−ONCE状態にあるライン上にヒツトが発生
する場合、またはWRITE−ONCE状態にあるライ
ンが交換されるべきラインとして識別される場合には、
ラインは無効化されることになる。
スヌーズ動作が、他のプロセッサがラインの再ロードを
望んでいると判断した場合には、ダーティ・ラインが有
効なラインとなり、このラインはストア・バックされる
ことになる。
WRI TE−ONCE状態にあるラインへのCPU書
込みは、そのラインをダーティ・ラインに変えることに
なるが、ライト・スルーは必要がない。これは、このプ
ロトコルの主な機能の1つである。最初の書込みだけが
主メモリにライト・スルーされる場合には、バス通信量
は大幅に減少することになる。バス書込み動作によるダ
ーティ・ライン上のスヌーズ・ヒツトがある場合には、
キャッシュは、主メモリの代りに、キャッシュ内のダー
ティ・ラインに直接スヌーズ・データを書き込むことに
なり、ダーティ・ラインはダーティに設定されたままで
ある。これは、ダーティ状態では非キャッシュ装置から
の書込みだけがスヌーズ・ヒツト発生時に可能であるか
らである。(たとえば、ディスクといった、典型的には
システム・バスに取り付けられた)他の入出力装置など
の非キャッシュ装置からの書込みは、部分ラインに対す
るもので、したがって、このラインを無効化することは
できない。ダーティ状態中に非キャッシュ装置からの読
取りをスヌーズする場合には、読取り要求が部分ライン
にありうるので、キャッシュは、ラインのすべてをスト
ア・バックすることなく、要求されたワードを供給する
ことになる。ライト・スルー・キャッシュを有する多重
プロセッサ・システムについては、状態交換で1つの相
違がある。
WRI TE−ONCE状態にあるラインへのCPU書
込みは、状態をD IRTYにかえることにはならない
。これは、ライト・スルー活動によって、WRITE−
ONCE状態のままである。したがって、ラインは、ラ
イト・スルー・キャッシュ内では決してダーティにはな
らず、ただ3つの可能な状態、INVAL ID、VA
L I Dl及びWRITE−ONCE状態を有するこ
とになる。
次にキャンシュ・アクセスのための調停方法を説明する
。第1図に示すように、第1段階中にバスからのスヌー
ズされたアドレスは、登録簿と状態アレイにアクセスし
て可能なスヌーズ・ヒツトを検査するために使用される
。登録簿によって選択されたラインは、キャッシュ・ヒ
ツトとするために、非無効状態でなければならない。一
方、キャッシュ・アレイは(プレチャージして次のアク
セスに作動可能であるように)前のアクセスから復元さ
れており、CPUはセグメンテーション・ユニットから
線形アドレスを生成し、そしてキャッンユ制御機構は、
次の段階で始まることになるキャッシュ・アクセスを調
停する。優先論理はCPUからのアクセス要求、キャッ
シュへの再ロード・バッファ転送、及びスヌーズ・ヒツ
ト・サービスの間を調停する。優先順位は下記のように
設定される。すなわち、スヌーズ・ヒツト、再ロード・
バッファ動作、再ロードまたはストア・バック要求が許
可された場合には、CPUデータ読込み、再ロード・バ
ッファ転送、CPUデータ書込み、CPU命令フェッチ
スヌーズ・ヒツトのサービス業務は最優先順位を何する
。スヌーズ・ヒツトによる3つの可能な動作がある。す
なわち、(1)キャッシュへのワードまたはバイトでの
バス書込み、(2)キャッシュからのワードでのバス読
取り、(3)キャッシュからのライン全部のバス読取り
、及びラインのストア・バックである。再ロード・バッ
ファ(RLB)はCPUデータ読取りより低い優先順位
を存し、CPUアクセス要求が誤りを生じたとき以外に
は、CPU性能に影響を与えることを避ける。
それから、RLB転送は、再ロード要求が出されたとき
に、ちょうど実施されることになる。既に説明したよう
に、RPDIRTYビットが設定された場合には、スト
ア・バック要求「許可」信号がバス・ユニットから受は
取られるまで、RLB転送コマンドは出されない。スト
ア・バック要求が許可されると、RLB転送は、CPU
からのキャッシュ・アクセス要求がデータ読取りであっ
ても、即時アテンシぎンを受は取ることになる。
スヌーズとキャッシュ・アクセスのためのタイミングを
第1図に示すが、これは以前に説明した。
これからキャッシュ再ロード動作を説明する。CPUか
らのキャッシュ・アクセス要求によってキャッシュ・ミ
スが検出されると、他に処理中の再ロードまたはストア
・バックがない場合には、キャッシュ再ロード要求がバ
ス・ユニットに送られることになり、前記の再ロードま
たはストア・バックがある場合には、バスが空くまで待
つこと↓こなる。再ロード・アドレスは、ミスを起こし
たワードから始まり、循環する。ミスのあるラインと一
致したクラスにあるLRUセットは、交換されるライン
である。交換されるべきラインがクリーン・フビーであ
る場合には、それは無効化され、RPD I RTYビ
ットは0にリセットされる。これは、一部は論理を簡略
化するために、一部はストア・バック・バッファのロー
ド時間のために行なわれる。交換されるラインがダーテ
ィである場合には、それは必要なダーティのままになり
、ラインをスヌーズすることができ、スヌーズ・ヒツト
にも普通通りに応答することができる。再ロード・デー
タが主メモリから戻ると、バス・ユニットは「再ロード
作動可能」信号を出し、この信号はキャッシュ制御機構
を始動させ、データを再ロード・バッファにワードごと
にロードする。CPUからのキャッシュ・アクセス要求
がデータ読取りでない場合には、CPUは他のキャッシ
ュ・アクセス動作及び命令実行を続けることができる。
CPU実行はただちにキャッシュの応答を必要としない
ので、キャッシュは再ロード中に自由にアクセスされる
ことが可能である。これは、再ロードの目的はキャッシ
ュではなく、再ロード・バッファにあり、一方では再ロ
ードは、他のミスに出会うまで進行中であるからである
。また再ロード・バッフ1は、CPUによってアクセス
されることもでき、一方では再ロードは、ワードが再ロ
ード・バッファにロードされた場合には、進行中である
。再ロードされたラインのソースはRLBSRCとして
ラッチされることになり、主メモリからの再ロードを他
のキャッシュからの再ロードとを区別する。
RLBSRC(再ロード・バッファ・ソース)ビット=
1のときは、 再ロード・バッファ中のデータは他のキャッシュからで
あった。
データが再ロード・バッファからキャッシュに転送され
ると、ラインは「有効」状態に変えられることになる。
RLBSRCビット=Oのときは。
再ry−ド・バッファ中のデータは主メモリからであっ
た。
新しい状態は「書換え不能」となる 再ロードされたラインは、キャッシュ・アクセスを優先
可する調停論理が再ロード・バッファからキャッシュ・
アレイへの転送を出すまで、前に説明したように、再ロ
ード・バッファの中に留とまることになる。再ロード・
バッファ転送が終わると、前述のように、ラインの状態
は状態機械によって、VALID状態またはWRITE
−ONCE状態のいずれかに変えられることになる。
再ロード・バッファが再ロードされたラインによってフ
ルになると、RPDIRTYビットがセットされた場合
に、「ストア・バック要求」がバス・ユニットに送られ
る。バス・ユニットは、ストア・バック・バス・サイク
ルがバス調停によって保証されると、「許可されたスト
ア・バック要求」によって戻ることになる。ストア・バ
ック・バスが保証される前に、スクープ要求及びCPU
アクセス要求は、通常のように実施される。「許可され
たストア・バック要求」を受取りによって、オリジナル
・キャッシュ制御機構は、第2段階での交換すべきダー
ティ・ラインからのストア・バック・バッファのロード
を指定し、第1段階での再ロード・バッファからキャッ
シュ書込みオペレータへの転送を指定する、コマンドを
出すことになる。
したがって、1つの読取り・変更・書込みサイクル内で
それは、ストア・バック・バッファのロードと再ロード
・バッファからの新しいラインの書込みの両方を完遂す
る。次のサイクルで、ストア・バック・バッファは保証
されているので、ストア・バック・バッファ中のデータ
は、RLBSRCの状態に依存してバスに出力される。
前述のように、第5図、第6図、及び第7図は、本発明
の疑似2ポート「スヌーズ」・キャッシュ・アーキテク
チャに現われるより有意な動作の流れ図を示す。また、
単一ボート非スヌーブ・キャッシュ、及び本アーキテク
チャにおけるように再ロード・バッファとストア・バッ
ク・バッファの両方を宵する疑似2ボート非スヌープ・
キャッシュ、両方のための同様な流れ図も示す。これら
の図を参照して、本発明と単一ボート・キャッシュとの
相違は非常に大きく、また容易にわかる、ということに
留意されたい。疑似2ポート非スヌーブ・キャッシュに
よって、実際のキャッシュ・アクセス動作は、より本発
明のように見えるが、第5図に示すように、明らかにス
ヌーズ・サイクル、たとえば第1段階、がないことに留
意されたい。また、疑似2ポート・スヌーズ・キャッシ
ュのための動作は、非スヌープ疑似2ボート・キャッシ
ュによる場合よりも、データ・コヒーレンジを保守する
ために、はるかに多くの動作を必要とする。
次に、本発明の疑似2ポート・キャッシュ・アーキテク
チャに適用される動作を詳しく検討し、本発明のアーキ
テクチャに適用されない流れ図の部分は詳しく示さない
。しかし、キャッシュ制御機構の中で必然的に実施され
る動作は、特に、スヌーズ疑似2ポート・キャッシュの
動作についての次の説明に照らして流れ図が考察される
ときに、当業者には容易に明らかになる。
次に、第5図、第6図、及び第7図の流れ図に示す疑似
2ポート・スヌーズ・キャッシュの動作全体を説明する
。第5A図で、キャッシュ動作可能状態、ボックス1か
ら始まって、スヌーズ・キャッシュはバス上をスヌーズ
して、ボックス2に示すように、第1段階中にシステム
・バス内のアドレスと登録簿中のアドレスとを比較する
。ボックス3で判定してスヌーズ・ヒツトがあり、ボッ
クス4で判定してバス活動が書込み動作であり、そして
ボックス5で判定してラインがダーティ状態にある、と
いう場合には、第4図に示す状態変換図における変換T
1に従って、キャッシュ制御機構は、ボックス6に示す
ように、次の段階中にキャッシュに書き込むためにバス
・マスクを使用可能にする「キャッシュへのバス」信号
をセットする。ボックス5で判定してラインがダーティ
でない場合には、第4図の状態図における変換T2とT
3に従って、ボックス7に示すように、ラインは無効化
されることになる。ボックス4で判定してバス活動が読
取りであり、ボックス8で判定してラインがダーティで
なくて、さらにボックス9で判定してバス・マスクが他
のキャッシュでない、という場合には、キャッシュ制御
機構は、「キャッシュへのバス」信号をセットして、次
の段階におけるキャッシュ読取り動作を使用可能にして
、バスにデータを出力する。ボックス9で判定してバス
・マスクが他のキャッシュである場合には、ボックス1
1に示すように、「バス及びメモリへのキャッシュ」信
号が始動され、このため次の段階で、第4図の状態図に
おける遷移T4とT5に従って、キャッシュはバス要求
のためのデータを供給し、主メモリへストア・バックし
、状態を有効に変える。
ボックス3で判定してスヌーズ・ヒツトがなかった場合
には、疑似2ポート・キャッシュのキャッシュ制御機構
は、前述のように優先順位チェーンに進み、ボックス1
2に示すように、RLBがフルであるか、他の再ロード
が進行しているか、を検査する。ボックス12の結果が
イエスである場合には、これは、キャッシュが次の第2
段階中にRLBの内容をキャッシュに転送できるように
するrRLB  TRNJ信号をセットする。ボックス
14の結果がノーであり、ボックス13で判定してスト
ア・バックが許可されていた場合には、RMW  SB
倍信号セットされるが、この信号は、キャッシュが読取
り・変更・書込み動作を実施できるようにし、この動作
は「交換すべき」ダーティ・ラインをストア・バック・
バッファに転送し、その後すぐにバスを通じて主メモリ
へのストア・バックを行ない、モしてRLBの内容をキ
ャッシュに転送する。これはボックス18に示されてい
る。ボックス13で判定してストア・バック要求が許可
されず、ボックス12に示すように、CPUが読取り要
求を出した場合には、rCPURD  WRENJ信号
がセットされ、この信号によって、ボックス20に示す
ように、次の段階でキャッシュはCPU読取り/書込み
要求を実施する。ボックス14のテストが読取りではな
くて、ボックス15で判定してRLBがフルである場合
には、ボックス19に示すように、rRLB  TRN
J信号がセットされ、この信号によって、次の段階でR
LBからキャッシュへの転送が行なわれる。ボックス1
5のテストの結果としてRLBがフルではなくて、ボッ
クス16で判定してCPUが書込みキャッシュ要求を有
する場合には、ボックス20に示すように、rCPU 
 RD  WRENJ信号がセットされる。ボックス1
6でテストしてCPUがデータ書込み要求を出さなかっ
た場合には、ボックス17に示すように、CPU命令読
取り要求のためのテストに進む。ボックス17のテスト
がイエスである場合には、ボックス20に示すように、
rCPU  RD  WRENJ信号がセットされる。
第2段階の始めに、第6図に示すように、キャッシュは
優先論理によって決定された6つの可能な動作の1つを
実施するが、これは前述され、第6図に示されている。
これらの6つの制御信号、すなわちキャッシュからBU
SMEM、キャッシュからBUS、BUSからキャッシ
ュ、RMW  5B1RLB  TRN1CPU  R
D  WRENは、これらは第5図の流れ図に示した優
先論理によってセットされるため、互いに排他的である
ボックス21に示すように、キャッシュからBUSME
Mの信号がセットされる場合は、キャッシュはバス・マ
スク読取り要求のためのデータを供給し、主メモリにス
トア・バックし、そして第4図の状態図におけるT4変
換及びT5変換に従って、ラインは有効状態に変えられ
る。
ボックス22に示すように、キャッシュからBUSの信
号がセットされる場合は、キャッシュはバス・マスク読
取り要求のためのデータを供給する。ボックス23に示
すように、BUSからキャッシュの信号がセットされる
場合は、バス・マスクはキャッシュに直接書き込む。ボ
ックス24に示すように、RMWSHの信号がセットさ
れる場合は、キャッシュは先ず読取り・変更・書込み動
作を実施して、交換されるべきダーティ・ラインをキャ
ッシュからSBHに転送し、(1キヤツシユ・サイクル
中に)RLBの内容をキャッシュに書き込む。キャッシ
ュ状態は、第4図の状態図における変換T9及びTIO
に従って更新される。
ボックス25に示すように、次のサイクルでストア・バ
ック・プロセスが始まって、SBHの内容を主メモリに
転送する。ボックス26に示すように、RLB  TR
Nの信号がセットされる場合は、RLBの内容はキャッ
シュに書き込まれ、そしてキャッシュ状態は、第4図の
状態図における変換T9及びTIOに従って更新される
。CPU  RD  WRENがセットされる場合は、
第6図と第7図の両方のボックス27に示すように、キ
ャッシュはCPU読取り/書込み要求を実施することに
なる。
CPU読取り/書込み要求を実施するためには、第5C
図のボックス28に示すように、キャッシュ・アレイ、
キャッシュ登録簿、及び状態アレイは、第2段階の初め
に、CPUによって出されたアドレスによって同時に読
み取られる。ボックス29で判定してキャッシュ・ヒツ
トがある場合には、ボックス3013L 32で示すよ
うに、キャッシュはCPU読取り/書込み要求を実施す
る。そしてライン状態は、第4図の状態図における変換
T1、T6、T7、及びT8に従って更新される。
ボックス29で判定してキャッシュ・アクセスがミスで
ある場合には、ボックス33に示すように、キャッシュ
再ロード・プロセスが始まる。疑似2ボート・スヌーズ
・キャッシュについては、再ロード要求がバスにすぐに
出される。交換されるべきラインがダーティである場合
には、RPDI RTY= 1ラツチがセットされる。
ボックス35に示すように、バスが空いている場合には
、ボックス36に示すようにミスしたデータは主メモリ
から読み取られる。ボックス37で判定してデータがキ
ャッシュに到達すると、ボックス38で示すように、デ
ータはRLBにロードされ、ミスしたワードはただちに
CPUにバイパスされる。次のワードが到達すると、ボ
ックス39.40141に示すように、ライン全体がR
LBに再ロードされるまで、これらはRLBを満たし続
け、そしてRLBフル信号がセットされる。ボックス4
2で判定して交換されるべきラインがダーティでない場
合には、第5図のボックス19で示すように、再ロード
されたデータは、キャッシュ制御機構がそれはRLBの
内容をキャッシュに転送する時間であることを判定する
まで、RLBの中に留まっている。交換されるべきライ
ンがダーティである場合には、ボックス43に示すよう
に、ストア・バック要求はバスに送られる。第5図のボ
ックス13とボックス18で既に説明したように、RL
B転送は、ストア・バック要求が許可されるまで待たな
ければならない。
これは、第5図、第6図、及び第7図に図示する本キャ
ッシュ・アーキテクチャの動作について、詳細な説明を
行なったものである。
亙員 ここに開示した本発明の好ましい実施例について説明し
た後、っぎの観察を行ないたい。本発明がここに開示し
た好ましい実施例に関して説明したが、ハードウェアと
いくっがの手順処理の両方における多くの変更がシステ
ムの動作全体に影響することなく、容易に改訂できるこ
とを、当業者は容易に理解できよう。
本発明が、スヌーズ・キャッシュの機能を疑似2ポート
・キャッシュと組み合わせることによって、従来の技術
のアーキテクチャのいずれとも著しく異なっていること
は、前記の説明がら明白になることである。
疑似2ボ一ト動作は、主としてストア・バッファ及び再
ロード・バッファを準備することによって達成され、デ
ータ・コヒーレンジは、前記のバッファならびにキャッ
シュに記憶されたデータを入念に制御し操作することに
よって保証されるので、矛盾することは決してない。
本質的にキャッジ、の動作頻度の2倍である登録簿の動
作頻度を独特に使用することによって、キャッシュ登録
簿の複製または2ボート登録簿を使用することなしに、
スヌーズ動作が成功裡に達成され、この場合、スヌーズ
及び正常CPUアクセスの開動作は、単一キャッシュ・
サイクル中に事実上行なわれ、キャッシュの性能はスヌ
ーズの犠牲にはならない。
すでに述べたように、本発明を、ここに開示したハード
ウェアと制御の実施例に関連して説明したが、添付の特
許請求の範囲に述べた本発明の意図と範囲から外れるこ
とな(、形状と詳細の点で多くの変更を行なってもよい
ことが、当業者には容易に理解できよう。
溢jL(臥 [1,]C,M、チャン(Chuang )他「機能的
メモリ/キャッシュ”アーキテクチ−? (Funct
iona1Memory/Cache Archite
cture) J N米国特許出願第07/1589E
34号。
[2,]J、R,グツドマン(Goodman )  
rプロセッサ・メモリ通信量を減少するためのキャッシ
ュ・メモリの使用(Using Cache Men+
ory to ReduceProcessor−Me
ory Traffic) J 、第10回コンピュー
タ・アーキテクチャ・シンポジウム、p。
124゜ [3,] J 、アーチバルト(Archibald 
)とJ、ベール(Baer)  rキャッシュ・コヒー
レンジ・プロトコル:多重プロセッサ・シミュレーショ
ン・モデルを使用した評価(Cache Cohere
nce Protocols:Evaluation 
Using a Multiprocessor Si
mulationModel) J 、コンピュータ・
システムのACM)ランザクジョン、第4巻、第4号、
1986年11月、pp、273−298゜ [4,]T、ワタナベ(Watanabe)  rFa
m 19.9:  8にバイト・インテリジェント・キ
ャッシュ・メモリ(Fan 19.9: An 8Kb
yte Intelligent CacheMen+
ory) J、1987年、IEEEl際ソリッド・ス
テート・サーキット・センタ、p、266゜
【図面の簡単な説明】
第1図は、本発明の原理を含む、疑似2ポート単一登録
簿スヌープ・キャッシュのための、パイプライン・タイ
ミング図を含む。 第2図は、キャッシュ登録簿と状態アレイを図示して、
本発明の高性能コスト効果疑似2ポート・スヌーズ・キ
ャッシュ・アーキテクチャの高レベル機能的ブロック/
データ流れ図を含む。 第3図は、キャッシュ・アレイとその関係バッファ、及
び共に使用されるマルチプレクサを図示して、本発明の
高性能コスト効果疑似2ボート・スヌーズ・キャッシュ
・アーキテクチャの高レベル機能的ブロック/データ流
れ図を示し、また第3図は、ここに開示したキャッシュ
・アーキテクチャのすべてのブロック図を含む。 第4図は、すべて本発明によって教示された、ユニ・プ
ロセッサ・システムまたは多重フロセッサ・システムの
ためのキャッシュ・コヒーレンジの保守を含む。 第5図は第5A図および第5B図の組合せ図、第5A図
および第5B図は、ここに開示した疑似2ポート・スヌ
ーズ・キャッシュ・アーキテクチャの優先順位チェーン
を通じて第1段階中に制御信号をセットするための、高
レベル流れ図を示し、単一疑似デュアル・ポート登録簿
、ならびに再ロード及びストア・バック・バッフ1を含
む。この図はまた、比較の目的のために、従来の技術に
よる非スヌーブ1ポート・キャッシュ・アーキテクチャ
及び疑似2ポート・キャッシュ・アーキテクチャの動作
も図示する。 第6図は、キャッシュ動作の第2段階中に発生可能−な
6つの可能な動作を詳しく示す、高レベル流れ図を含む
。 第7図は第7A図および第7B図の組合せ図、第7A図
および第7B図は、本発明の原理を持つ、ここに開示し
た疑似2ポート・スヌーズ・キャッシュ・アーキテクチ
ャのrCPU読取り/書込みキャッシュ」の高レベル機
能流れ図を含み、このアーキテクチャは、単一2ポート
登録簿ならびに適切な再ロード・ストア・ノくツク・/
(ソファを有し、従来の技術によるデュアル・ポート・
キャッシュ・アーキテクチャとほぼ同じ性能を達成する
。 第5図におけるように、比較の目的のために、従来の技
術による非スヌープ1ボート・キャッシュ・アーキテク
チャ及び疑似2ポート・キャッシュ・アーキテクチャの
動作も図示する。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション

Claims (13)

    【特許請求の範囲】
  1. (1)大型の主メモリ及びより小型の高速度キャッシュ
    ・メモリを含み、前記キャッシュ・メモリは、メモリ・
    バスによって前記主メモリに接続され、さらに、システ
    ム・バスまたはキャッシュ・バスによって選択的にCP
    Uに接続された、少なくとも1つのCPUを含む電子デ
    ータ処理システム用の階層メモリ・システムであって、 前記キャッシュ・メモリ・システムが、各々が共有のア
    ドレス手段によってアクセス可能な3つの連想メモリ要
    素、すなわちキャッシュ・メモリ、キャッシュ登録簿、
    及びライン状態アレイを有し、キャッシュ・メモリ・サ
    イクルごとに少なくとも1回メモリ・バスを周期的にス
    ヌープするための手段を有する、前記キャッシュ・メモ
    リ・システムを走査するためのメモリ制御手段を含み、
    キャッシュ・メモリに記憶されるべきデータを一時的に
    記憶するため、及びキャッシュ・メモリから主メモリに
    転送されるべきデータを一時的に記憶するための、キャ
    ッシュ・メモリに付属したバッファ手段を含み、 前記キャッシュ・メモリが、単一メモリ・サイクル中に
    読取り・変更・書込みを実施するための手段を有し、 前記メモリ制御手段が、単一の読取り・変更・書込み・
    メモリ・サイクル中にデータが前記キャッシュ・メモリ
    から前記バッファ手段に読み取られ、そして前記バッフ
    ァ手段から前記キャッシュ・メモリに書き込まれるよう
    に動作することができ、この際に疑似2ポート動作が実
    施される という、前記の階層メモリ・システム。
  2. (2)前記バッファ手段が、データを前記キャッシュ・
    メモリから主メモリに転送するための分離したストア・
    バック・バッファと、データを前記キャッシュ・メモリ
    に書き込むための再ロード・バッファを含む、請求項1
    に記載の階層メモリ・システム。
  3. (3)前記メモリ制御手段が、キャッシュから主メモリ
    へのデータのストア・バックが要求されるときに、メモ
    リ・バスの制御がキャッシュによって得られるまで、キ
    ャッシュ・メモリ内にデータ・ラインを保留するように
    動作でき、そしてメモリ・バスに接続された他の何らか
    の方便が同じ制御を得ることができる前に、データをキ
    ャッシュ・メモリからストア・バック・バッファに、そ
    してメモリ・バスに転送するように動作できる、請求項
    2に記載の階層メモリ・システム。
  4. (4)前記メモリ制御手段が、登録簿をキャッシュ・メ
    モリの速度の2倍で操作するための手段、及び登録簿が
    メモリ・バスを交互にスヌープし、連続サイクルでCP
    Uアクセス要求を行なうようにするための手段を含む、
    請求項3に記載の階層メモリ・システム。
  5. (5)メモリ制御手段が、スヌープ・ヒットに応答して
    、スヌープ・ヒットのアドレスに対応するアドレスにお
    けるライン状態アレイ中の複数の状態ビットの内容を変
    えさせて、ヒットを引き起こす状況を反映させるように
    動作できる手段を含む、請求項4に記載の階層メモリ・
    システム。
  6. (6)前記制御手段が、再ロード内のデータのアドレス
    を、可能なヒットのために前記登録簿に記憶されたアド
    レスと同時にスヌープし、そして再ロード・バッファに
    記載されたデータが永久にダーティにならないように防
    ぐことを含む、請求項5に記載の階層メモリ・システム
  7. (7)付属の主メモリ及びCPUからアクセスされたデ
    ータを記憶するためのキャッシュ・メモリと、前記キャ
    ッシュ・メモリと関連した場所に記憶されたデータの完
    全なアドレスを記憶するためのキャッシュ登録簿、前記
    登録簿を前記キャッシュ・メモリのサイクル速度の2倍
    で操作するための制御手段、 登録簿の内容に対するすべてのメモリ・システム機構中
    のすべてのメモリ要求をスヌープし、交替登録簿サイク
    ル上のCPU要求を処理するための制御手段、及び キャッシュ・メモリを制御して、疑似2ポート動作を達
    成するために単一メモリ・サイクル中に読取り・変更・
    書込み能力を供給する、キャッシュ・メモリ手段と関連
    する入出力バッファ手段を含む、大型の階層メモリ機構
    の中で使用するためのキャッシュ・メモリ・サブシステ
    ム。
  8. (8)前記キャッシュ・メモリが、読取り・変更・書込
    みキャッシュ・サイクルを使用し、この場合に最初のデ
    ータが前記キャッシュ・メモリから読み取られ、色々な
    バッファ・レジスタから及び色々なバッファ・レジスタ
    への第2のデータが単一メモリ・サイクル中に書き込ま
    れることのできる、請求項7に記載のキャッシュ・メモ
    リ・サブシステム。
  9. (9)前記キャッシュ・メモリへデータの読取り及び書
    込みを行なうための前記手段が、主メモリから前記キャ
    ッシュにロードされるべきデータを一時的に記憶するた
    めの分離した再ロード・バッファと、主メモリにストア
    ・バックされるべき前記キャッシュから読み取られたデ
    ータを一時的に記憶するための分離したストア・バック
    ・バッファを含み、 前記制御手段が、前記ストア・バック・バッファに記憶
    されたデータが、それが前記ストア・バック・バッファ
    から前記主メモリに転送される前に、前記メモリ・バス
    に接続された何らかの他の方便によってメモリ内で変更
    されることを防ぐように、動作することのできる手段を
    含む、 請求項8に記載のキャッシュ・メモリ・サブシステム。
  10. (10)再ロード・バッファ内に記憶されたデータの主
    メモリ中におけるアドレスを、一時的に記憶するための
    手段と、 このアドレスを、スヌープ動作中に前記キャッシュ登録
    簿中のすべてのアドレスと共に、スヌープするための手
    段と、 再ロード・バッファ内のいかなるデータも、それがキャ
    ッシュ・メモリに転送される前にダーティにならないよ
    うに防ぐための手段 を含む、請求項9に記載のキャッシュ・メモリ・サブシ
    ステム。
  11. (11)前記メモリ・サブシステムがさらに、登録簿ま
    たはアレイの中のラインがアクセスされるときにはいつ
    でも、前記キャッシュ登録簿及びキャッシュ・メモリの
    中の各データ・ライン及びアドレスに対応する前記シス
    テム制御機構によって設定可能であり、それによって同
    時にアクセス可能な、複数のビット位置を有する状態機
    械アレイ、及びシステムによる前記データの利用にした
    がって、前記キャッシュ・メモリ中の対応するデータの
    一時的な条件を反映させるために、前記状態アレイ・ビ
    ットを設定するための手段を含む、請求項10に記載の
    キャッシュ・メモリ・サブシステム。
  12. (12)連想キャッシュ・メモリ及び関連する登録簿を
    含み、 前記のキャッシュ・メモリは、読取り・変更・書込み能
    力を有し、この場合、読取りと書込みの動作は単一メモ
    リ・サイクル内で実施可能であり、キャッシュ・メモリ
    と登録簿の各エントリのために、複数の状態ビットを有
    するライン状態アレイ・メモリを含む、前記キャッシュ
    ・メモリのための制御手段を含み、そして、 前記キャッシュ・メモリ、登録簿、及び登録簿がアクセ
    スされるときはいつでも、ライン状態アレイから対応す
    る状態パターンをアクセスするように動作できるライン
    状態アレイ、のための共通アドレス手段を含み、 前記制御メモリは、単一キャッシュ・メモリ・サイクル
    ごとに、2つの完全なキャッシュ登録簿サイクルを実行
    するように動作することができ、代替登録簿サイクル中
    に、システム・バスに対して「スヌープ」動作を実施す
    るための手段を含み、そしてCPUアクセス動作は介入
    サイクルであり、 前記制御手段は、ライン状態アレイ・メモリのアクセス
    されたラインにおける対応する「状態ビット」の設定を
    条件として、前記キャッシュ中で読取り/書込み動作を
    実施するため、及び必要とされるときに状態ビットを選
    択的に変更するための手段を持ち、そして、 単一読取り・変更・書込みサイクル中に、データをキャ
    ッシュ・メモリからストア・バック・バッファに転送し
    、再ロード・バッファからキャッシュの同じ位置に転送
    するための手段を含む、 疑似2ポート・キャッシュ・メモリ・システム。
  13. (13)単一キャッシュ・メモリ・サイクル中にストア
    ・バック・バッファをリードすることによって、前記ス
    トア・バック・バッファ内のデータが永久にダーティに
    ならないように防ぎ、その後ただちに前記メモリ・バス
    の制御を得て、他のいずれかの「バス・マスタ」が前記
    バスの制御を得る前に前記データを主メモリに戻して記
    憶するための、メモリ制御機構、及びキャッシュへのデ
    ータ書込みが可能となったときに、キャッシュ内の交換
    されるべきラインのアドレスで、状態アレイ中の「ダー
    ティ」ビットにアクセスするために動作可能な手段、及
    びそれに応答して、ラインがダーティであるとわかった
    場合に、ストア・バック動作を要求するために動作可能
    な手段を含む、請求項12に記載の疑似2ポート・キャ
    ッシュ・メモリ・システム。
JP2307336A 1989-12-13 1990-11-15 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム Granted JPH03189845A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45090089A 1989-12-13 1989-12-13
US450900 1989-12-13

Publications (2)

Publication Number Publication Date
JPH03189845A true JPH03189845A (ja) 1991-08-19
JPH0574103B2 JPH0574103B2 (ja) 1993-10-15

Family

ID=23789981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2307336A Granted JPH03189845A (ja) 1989-12-13 1990-11-15 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム

Country Status (2)

Country Link
EP (1) EP0432524A3 (ja)
JP (1) JPH03189845A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69319763T2 (de) * 1992-03-04 1999-03-11 Motorola Inc Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
EP0567355B1 (en) * 1992-04-24 2001-09-19 Compaq Computer Corporation A method and apparatus for operating a multiprocessor computer system having cache memories
EP0607669A1 (en) * 1993-01-21 1994-07-27 Advanced Micro Devices, Inc. Data caching system and method
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5687350A (en) * 1995-02-10 1997-11-11 International Business Machines Corporation Protocol and system for performing line-fill address during copy-back operation
US5715427A (en) * 1996-01-26 1998-02-03 International Business Machines Corporation Semi-associative cache with MRU/LRU replacement
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
WO2013101151A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Improved cache circuit having a tag array with smaller latency than a data array
US9336156B2 (en) * 2013-03-14 2016-05-10 Intel Corporation Method and apparatus for cache line state update in sectored cache with line state tracker
CN116701246B (zh) * 2023-05-23 2024-05-07 合芯科技有限公司 一种提升缓存带宽的方法、装置、设备及存储介质
CN116543804B (zh) * 2023-07-07 2023-11-24 长鑫存储技术有限公司 驱动控制电路和存储器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57189398A (en) * 1981-05-14 1982-11-20 Fujitsu Ltd Control system for memory system
JPS6145343A (ja) * 1984-08-09 1986-03-05 Fujitsu Ltd スワツプ制御方式
JPS63103343A (ja) * 1986-09-19 1988-05-09 アムダール コーポレーション ムーブアウト待ち行列バッファ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE445270B (sv) * 1981-01-07 1986-06-09 Wang Laboratories Dator med ett fickminne, vars arbetscykel er uppdelad i tva delcykler
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57189398A (en) * 1981-05-14 1982-11-20 Fujitsu Ltd Control system for memory system
JPS6145343A (ja) * 1984-08-09 1986-03-05 Fujitsu Ltd スワツプ制御方式
JPS63103343A (ja) * 1986-09-19 1988-05-09 アムダール コーポレーション ムーブアウト待ち行列バッファ

Also Published As

Publication number Publication date
JPH0574103B2 (ja) 1993-10-15
EP0432524A2 (en) 1991-06-19
EP0432524A3 (en) 1992-10-28

Similar Documents

Publication Publication Date Title
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US5157774A (en) System for fast selection of non-cacheable address ranges using programmed array logic
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US7305523B2 (en) Cache memory direct intervention
US5091850A (en) System for fast selection of non-cacheable address ranges using programmed array logic
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6202125B1 (en) Processor-cache protocol using simple commands to implement a range of cache configurations
JPH0850570A (ja) コンピュータシステム、インテグレーテッドプロセッサ、キャッシュベースのコンピュータシステムのためのスヌープ制御方法
JPH036757A (ja) ライトバツクデータキヤツシユメモリ装置
JPH07168763A (ja) ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
US11789868B2 (en) Hardware coherence signaling protocol
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US7657667B2 (en) Method to provide cache management commands for a DMA controller
JPH03189845A (ja) 階層メモリ・システムおよびキヤツシユ・メモリ・サブシステム
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
WO1997004392A1 (en) Shared cache memory device
US6976130B2 (en) Cache controller unit architecture and applied method
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
US5953740A (en) Computer memory system having programmable operational characteristics based on characteristics of a central processor
US6766427B1 (en) Method and apparatus for loading data from memory to a cache