JPH0574103B2 - - Google Patents

Info

Publication number
JPH0574103B2
JPH0574103B2 JP2307336A JP30733690A JPH0574103B2 JP H0574103 B2 JPH0574103 B2 JP H0574103B2 JP 2307336 A JP2307336 A JP 2307336A JP 30733690 A JP30733690 A JP 30733690A JP H0574103 B2 JPH0574103 B2 JP H0574103B2
Authority
JP
Japan
Prior art keywords
cache
memory
write
bus
cpu
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.)
Expired - Lifetime
Application number
JP2307336A
Other languages
English (en)
Other versions
JPH03189845A (ja
Inventor
Mei Chuan Chao
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)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、階層の1つのレベルがその上のレベ
ルから「ページングされる」メモリ階層を有す
る、コンピユータ・システムに関する。この「ペ
ージングされる」という用語は一般的な意味で使
用され、セグメントすなわち「ページ」は階層の
より高いレベルからアクセスされる。本発明は、
このような階層メモリの性能のすべてを、メモリ
の動作を決定するメモリ・チツプ上の適切な機能
を選定することによつて大幅に改善する方法を提
供するものである。詳しくは、本発明は最新のキ
ヤツシユ・チツプ・アーキテクチヤに関し、さら
に詳しくは、単一ポート・アーキテクチヤによる
効果的な二重ポート「スヌープ」キヤツシユ動作
を達成する方法と装置に関する。
B 従来の技術 スヌープ・キヤツシユ[3](参考文献3)は
これまで、マイクロプロセツサ・システムにおい
てキヤツシユ・コヒーレンシ問題を解決するため
のコンピユータ・アートで使用される、最も普遍
的なハードウエア方法の1つであつた。これは、
キヤツシユを単一プロセツサのシステム・バスま
たは多重プロセツサの共有バスをキヤツシユが常
にスヌープ(モニタ)、または傾聴するように作
動し、バス上のアドレスをそれ自体の登録簿と比
較して、可能な突合せをする。突合せが検知され
ると、ハードウエアはデータのコヒーレンシを保
証するための適切な動作をとることになる。これ
らの動作は一般に、第4図の示す状態変換ダイヤ
グラムなどの状態マシンを実行することによつて
実施される。このマシンは、ある状態から他の状
態に変化させ、これを行なう時に、状態変換ダイ
ヤグラムに図示されている対応する動作をとつ
て、主メモリまたは他のキヤツシユの内容を更新
するか、またはキヤツシユ線を無効にする。
キヤツシユの効率を各種のバツフア技法を用い
て改善できることも、知られている(参照文献
1)。これらのバツフアは、キヤツシユ内におけ
るキヤツシユとして見ることができるので、これ
らは、それ自体のキヤツシユ・コヒーレンシ問題
を作り出す。米国特許出願第158964号は、広範な
バツフア技法を用いたが、これはスヌープ・キヤ
ツシユではない。これは、その構成がソフトウエ
アはハードウエアの代りにキヤツシユ・コヒーレ
ンシを維持すると想定したために、キヤツシユ・
コヒーレンシ問題を同じ方法では取り扱わなかつ
た。
本発明は、完全にハードウエアによつてキヤツ
シユ・コヒーレンシの支援を維持しながら、適切
なバツフア技法によつてスヌープ・キヤツシユの
性能を強化するための、費用効果の高い方法を提
供する。本発明はまた、より従来的な二重登録簿
アプローチの代りに、単一ポート・キヤツシユ登
録簿のみを使用することによつて、スヌープ・キ
ヤツシユのために大きな費用節減を達成する。
次に挙げる参考文献は、従来の技術の調査に伴
つて見つけたものである。これらについて個々に
検討する。
米国特許第4493033号。この特許の主な特徴は、
CPUまたはI/Oによつて1サイクルについて
2回、ただし主メモリによつては1回だけ、キヤ
ツシユにアクセスすることによつて、二重ポー
ト・キヤツシユの能力を達成することである。疑
似2ポート・キヤツシユの能力を達成するこの方
法は、次の理由によつて本発明とは異なつてい
る。本発明は、再ロード・バツフア及び逆記憶バ
ツフアをキヤツシユに加えることによつて、二重
ポート・キヤツシユの能力を達成する。ほとんど
のプロセツサの実行のためには、キヤツシユ時間
は、最良の場合にプロセツサと同じになるだけで
ある。したがつて、プロセツサ・サイクル時間が
キヤツシユ・サイクル時間の2倍の長さである、
特許第4493033号に記載されている方法は、非常
に僅かな実用的適用性しか持たないことになる。
本発明は、キヤツシユ・サイクル時間の半分だ
けを必要とするキヤツシユ・タグを使用するの
で、タグは、キヤツシユ・アクセス当たり2回ア
クセスされることができる。この特徴の主要な利
点は、単一ポート・タグのみを有するスヌープ・
キヤツシユ・システムが、(タグ及びキヤツシユ
の両方にアクセスする必要のある)CPUからの
キヤツシユ・アクセスによつて妨害されることな
く、(タグのみにアクセスする必要のある)バ
ス・スヌープを実施できることである。したがつ
て、特許第4493033号に開示されているアーキテ
クチヤは、本発明とはまつたく異なるものであ
る。
IBM TDB第31巻第5号、1989年10月、p.411、
オオバ及びシミズ(オオバ他)による「高性能最
新型スヌープ・キヤツシユ・プロトコル(High
Performance Updated−Type Snoop Cache
Protocol)」。この報文は、疑似2ポート・アーキ
テクチヤを記載していない。
上述の開示は、状態機械が異なるので、本発明
とは異なつたキヤツシユ・プロトコルを有する。
主な相違は、オオバ他ではINVALID状態を有す
るのに対して、SHARED DIRTY状態を開示し
ていることである。各キヤツシユ線は、キヤツシ
ユ再ロードが必要であるか否かを告げるために、
無効タグを持たなければならないので、無効状態
を識別するための第3ビツトを必要とする。これ
によつて費用が増加する。これで使用するプロト
コルは、主メモリを通して書込みを行なうことに
よる書込み中に、VALID(オオバ他のプロトコル
ではSHARED CLEANとも呼ばれる)状態を
WRITE ONCE(有効排他とも呼ばれる)状態に
変える。これらのプロトコルは、この場合に主メ
モリと他のキヤツシユの両方への書込みを行な
い、状態はSHARED CLEANになつたままであ
る。これによつて、他のキヤツシユへの妨害がよ
り高くなるが、これは、プロセツサ間の共有の確
率が高いときは、キヤツシユ・ヒツト率を助ける
ことにもなる。
SHARED DIRTYとそれに関連する変換にお
ける他の相違は、他のいずれかのキヤツシユが
DIRTY STATEにある線からの再ロードを要求
する場合には、現在開示されているプロトコル
は、ダーテイ・ラインを有するキヤツシユに、要
求中のキヤツシユAND主メモリへの再ロード・
データの供給を行なわせて、次に、状態を
VALID(それらのプロトコルでは共有クリーンと
も呼ばれる)に変えることである。この状況で
は、それらのプロトコルONLYは再ロード・デ
ータを要求中のキヤツシユに送り、主メモリには
送らず、そして状態をSHARED DIRTYに変え
る。再ロードは共有バスで行なわなければならな
いので、そのアプローチは任意のバス・トラフイ
ツクを保管するのみではなく、結果的にバス通信
量に影響することになるダーテイ状態の数を増加
させる。
米国特許第4349871号。
この特許は、共通バスを用いて「共通キヤツシ
ユ」、タグ、メモリ等を共有する多重プロセツ
サ・システムにおける問題を解決することを意図
する。本発明は、各個別プロセツサのための「専
用キヤツシユ」における問題を、共通バスの上に
各キヤツシユ「スヌープ」を有することによつて
解決する。この2つの問題は2つの非常に異なつ
た多重プロセツサ・システムに由来するものであ
るから、この特許は本発明とは異なる。さらに、
この特許は、この特別のパイプライン・タイミン
グに非常に独特である問題を取り扱うものであ
る。これは、書込みのために保留中の線を取り替
えることのある、後のキヤツシユ再ロード(この
特許では割り振るとも呼ばれる)の「後」に、先
の書込みが実施される可能性がある、という奇妙
な状況を有する。したがつて、書込みの最終実施
は、本来の線はキヤツシユ再ロード動作によつて
取り換えられているので、キヤツシユにおける間
違つた線への書込みを終了させる。この問題は本
発明と関係はない。
米国特許第4622631号。
この特許は、データ・コヒーレンシの解決のた
めに本発明とは異なつたプロトコルを有する。そ
れらのプロトコルは、プロセツサがデータを専用
キヤツシユに書き込むことができる前に所有権を
得るために、「読込み要求専用」要求を完成する
ことである。続いて記述するように、ここに開示
した方法によつて、プロセツサは、調停ののちに
バスを確保するとすぐに、専用キヤツシユにデー
タを書き込むことができるようになる。したがつ
て、本発明によつて、プロセツサは、バスがまだ
「読取り専用」プロセスを完成している間に、キ
ヤツシユ書込みを終了して次の動作に進むことが
できる。
その上に、本発明は、疑似2ポート・キヤツシ
ユを作り出すための特殊機構の「バツフア」を使
用することによつて、キヤツシユ・システムの性
能を向上させることを意図した。多重プロセツ
サ・システムのサポートは、ここでは、疑似2ポ
ート・スヌープ・キヤツシユに独特のデータ・コ
ヒーレンシ問題を解決する、強化された書込み専
用スヌープ・キヤツシユ案を持ち込むことによつ
て達成された。この特許は、疑似2ポート・スヌ
ープ・キヤツシユのような追加のバツフアを持つ
ていないので、本発明によつて解決される基本的
問題とは関係がない。
C 発明が解決しようとする課題 本発明の主要な目的は、キヤツシユ・データ・
コヒーレンシを保証する一方、全体のキヤツシユ
費用効果を実質的に向上させる機能的なキヤツシ
ユ・アーキテクチヤを提供することである。
本発明の他の目的は、はるかに高価な2ポー
ト・アーキテクチヤと実質的に同等の性能特性を
有する、前記のようなキヤツシユ・アーキテクチ
ヤを提供することである。
本発明のさらに他の目的は、常時システム内で
全データ・コヒーレンシを確証するための「スヌ
ープ」システム・メモリ参照の能力を持つ、前記
のようなキヤツシユ・アーキテクチヤを提供する
ことである。
本発明のさらに他の目的は、キヤツシユ・メモ
リを出入りするデータの広範な緩衝技法、パイプ
ライニング、及びCPU、キヤツシユ、キヤツシ
ユ登録簿の間の動作のオーバラツプを使用するこ
とによつて、疑似2ポート動作とスヌープの能力
を達成する、前記のようなキヤツシユ・アーキテ
クチヤを提供することである。
本発明のさらに他の目的は、キヤツシユ・メモ
リの速度の2倍の動作可能なキヤツシユ登録簿を
使用すること、及び登録簿、キアツシユ、及び
CPU命令をオーバラツプすることに多く原因す
る性能の損失なしに、効果的な「スヌープ」を達
成する、前記のようなキヤツシユ・アーキテクチ
ヤを提供することである。
また、本発明のさらに他の目的は、高速疑似2
ポート・アーキテクチヤをスヌープ能力と独特に
組み合わせる、前記のようなキヤツシユ・アーキ
テクチヤを提供することである。
D 課題を解決するための手段 本発明の目的は一般に、連想キヤツシユ・メモ
リ、そのための登録簿、及び登録簿と同時にアク
セス可能なライン状態アレイ・メモリを含む、疑
似2ポート・「スヌープ」・キヤツシユ・アーキテ
クチヤによつて達成される。キヤツシユ・メモリ
は、読取り/変更/書込み能力と共に準備され、
読取り及び書込みの両動作は、単一メモリ・サイ
クル内で実施されることができ、キヤツシユ登録
簿は、キヤツシユ・メモリの速度の2倍で動作す
る。キヤツシユ制御機構は、キヤツシユ登録簿中
の各エントリのための複数の状態ビツトを含むラ
イン状態アレイ・メモリにアクセスし、それを変
更するための手段を含む。ライン状態アレイは、
アドレス指定手段と共に供給され、この場合、登
録簿がアドレス指定されるときはいつでも、適切
な状態パターンがライン状態アレイにアクセスさ
れることになる。キヤツシユ・メモリは、データ
をキヤツシユに書き込むための再ロード・バツフ
ア、及びデータをキヤツシユから主メモリに書き
込むためのストア・バツク・バツフアと共に準備
される。前記の両バツフアは、全キヤツシユが単
一メモリ・サイクル内に書き込まれることのでき
るキヤツシユ・メモリにピツチ・マツチングされ
る。
キヤツシユ登録簿用の制御機構は、単一キヤツ
シユ・メモリ「読取り/変更/書込み」動作を実
施するためにとる時間内の、完全な登録簿サイク
ルを規定する。前記のキヤツシユ登録簿制御機構
は、代替サイクル上のシステム・バスで「スヌー
プ」動作を実施し、前記スヌープ動作と共に、代
替サイクル中にCPUアクセス動作を実施する。
ライン状態アレイ・メモリは、キヤツシユ内に
記憶された特定のライン状態が4つの状態、すな
わち「無効」、「有効」、「ダーテイ」、及び「書込
み専用」の内の1つであることを指定する。キヤ
ツシユ・メモリ制御機構は、「状態ビツト」の現
在状態を条件として、前記キヤツシユ、主メモ
リ、及びCPUの間の読取り/書込み動作を果た
すため、及びそれを適切にリセツトするための手
段を含む。
メモリ制御機構はさらに、ストア・バツク・バ
ツフア中のデータを、前記メモリ・バスの制御機
構を得た後にただちに単一キヤツシユ・メモリ・
サイクル中に前記ストア・バツク・バツフアをロ
ードすることにより、ダーテイにならないように
し、他の任意の「バス・マスタ」が前記バスの制
御機構を得る前に、前記データ・バツクを主メモ
リに記憶するための手段を含む。前記の制御機構
はさらに、再ロード・バツフアに記憶されたワー
ドが前記「スヌープ」を介して変更されるべきで
あるとわかつた時に、前記の再ロード・バツフア
の中で「無効」ビツトをセツトするための、手段
を含む。キヤツシユ中のラインを交換しようと
し、ただし、「RPダーテイ」がセツトされると、
ストア・バツク要求が出される。ストア・バツク
要求が許されると、更新しようとするダーテイ・
ラインはストア・バツク・バツフアに転送され
る、再ロード・バツフアの内容はキヤツシユに転
送される。これらの2つの動作は、1つの読取
り・変更・書込みキヤツシユ・サイクル中に実施
される。
E 実施例 本発明の説明を行なう前に、この明細書の中で
使用されるいくつかの用語を、その意図する意味
としてよく理解しておくべきであり、これによつ
て、本発明全体をはつきり理解する上で役立つこ
とになる。このため下記の定義を列挙する。
「ダーテイ・ライン」 ダーテイ・ラインとは、主メモリにおいてでは
なく、専用キヤツシユにおいて更新されたライン
である。
「インバリツド・ライン」 ラインが無効の状態にある場合に、対応するデ
ータは有効ではない(すなわち、不要情報であ
る)。キヤツシユは、ラインの内容を使用するこ
とができる前に、メモリからの有効データによつ
てラインを再ロードしなければならない。
「ピツチ・マツチ」 「ピツチ・マツチ」は、VLSIチツプのレイア
ウトにおいてしばしば必要となる用語である。こ
れは、高度に規則的な、構成された反復型の設計
に必要である。各チツプは数千回繰り返すメモ
リ・セルを有し、32ビツト・プロセツサにおける
データ流れセルは32回繰り返される。本発明で
は、繰返しの1単位内での要素が「ピツチ・マツ
チ」である、ということを示す必要がある。ピツ
チは繰返し単位の幅である。単位内での要素がピ
ツチ・マツチであると、それらの要素はすべて同
じ幅を有する。
「ストア・イン・キヤツシユ」 「ストア・イン・キヤツシユ」は、主メモリを
更新することなく、キヤツシユのみに書き込むこ
とによつてデータを記憶する、一種のキヤツシユ
である。主メモリは、キヤツシユ・ラインが再ロ
ード・プロセス中に交換されようとするときにの
み、更新されることになる。主メモリを更新する
このプロセスは、ストア・バツクとも呼ばれる。
「ストア・バツク・キヤツシユ」 「ストア・バツク・キヤツシユ」は、ストア・
イン・キヤツシユの別の名称である。この名称は
「ダーテイ」・データを主メモリに戻して記憶する
要件から来ている。
「再ロード・バツフア」 「再ロード・バツフア」は、主メモリから再ロ
ードされているデータを保留するためのバツフア
である。バツフアの再ロードを完遂した後、再ロ
ード・バツフアの内容は後でキヤツシユにアンロ
ードされることになる。
「ストア・バツク・バツフア」 「ストア・バツク・バツフア」は、再ロード・
プロセス中の交換されるべきラインが「ダーテ
イ・データ」保留するとき、ストア・バツクしよ
うとするデータを主メモリに保留するためのバツ
フアである。
「ライト・スルー・キヤツシユ」 「ライト・スルー・キヤツシユ」は、記憶動作
中にキヤツシユと主メモリの両方に常に書き込
む、一種のキヤツシユである。
「スヌープ」 ここで使用される場合は、スヌープは、システ
ム・メモリ・バス上に出現するすべてのアドレス
と比較されるべきシステム・メモリ・バス上に出
現する任意のアドレスを、登録簿(及びRLPア
ドレス・レジスタ)中に記憶されたすべてのアド
レスと比較されるようにする、キヤツシユ登録簿
中の制御順序を含む。
概 要 キャツシユすることは、メモリの待ち時間を短
縮しバス通信量を減少させることによつて、プロ
セツサ性能を2倍向上させる。統計によれば、ラ
イト・バツク(ストア・インとも呼ばれる)は一
般に、ライト・スルー・キヤツシユ(ストア・ス
ルーとも呼ばれる)と比べてはるかに少ないバス
通信量を有する、ということが証明されている。
ダーテイ・ラインをストア・バツクするために必
要な時間を常にCPU性能から隠すことのできる、
効率的なキヤツシユを持つために、本発明は、ラ
インのサイズと同じ幅のストア・バツク・バツフ
アを利用する。ストア・バツク・バツフアは、メ
モリ・アレイとピツチ・マツチされるように注文
設計される。キヤツシユ・メモリ(Q主メモ
リ?)は、少なくともライン・サイズと同じ数の
感知増幅器を有するように構成されている(感知
増幅器の数は、セツト・セレクト・マルチプレク
サが感知増幅器の後にある場合には、2倍にしな
ければならない)ので、キヤツシユ・メモリ・ア
レイからストア・バツク・バツフアに交換すべき
ダーテイ・ラインを再ロードするために必要な転
送時間は、1サイクルを要するだけである。感知
増幅器は、メモリ・セルから読み取られたデータ
を感知し、感知されたデータを供給してストア・
バツク・バツフアを満たすために必要である。各
感知増幅器は1ビツトのデータを供給するので、
1サイクル中にバツフアを満たすためには、スト
ア・バツク・バツフアにあるビツトの数だけの感
知増幅器がなければならない。選定されたセツト
が、データが感知された後に選択された場合に
は、感知増幅器の数は、セツト連想キヤツシユ内
のセツト数によつて乗算されるべきであるから、
セツト選定の結果は、十分なデータ・ビツトを生
成して、1サイクルでストア・バツク・バツフア
を満たすことになる。
この1サイクルを、主メモリから(ライン・サ
イズが2ワード以上の場合には)最初のワードを
再ロードするために必要な時間と、平行させるこ
とができるので、これはCPU性能の観点からは
見えない。したがつて、ストア・バツク・バツフ
アを、バスが空いたときに、主メモリにアンロー
ドすることができる。必要なストア・バツク・バ
ツフアの数は、アーキテクチヤ、アプリケーシヨ
ン、及びコスト・パフオーマンスのための設計点
に依存する。ストア・バツク・バツフアの内容を
主メモリに記憶するために取る時間は、ストア・
バツク・バツフアがアンロードされる前に、他の
ダーテイ・ラインを交換するための次のキヤツシ
ユ・ミスが発生するときに、出現可能である。複
数のストア・バツク・バツフアが露出の傾向を減
少することになる。衝突の確率は、アプリケーシ
ヨンとアーキテクチヤの間で変わる。色々なシス
テムの形式も、コストと性能について色々な見返
りを有する。
キヤツシユの性能に関する他の重要パラメータ
は、キヤツシユ・ミス・ペナルテイである。これ
は、CPUの実行がキヤツシユ・ミスが原因で保
留されなければならない時間から、CPUの性能
低下として定義される。ミスしたワードから再ロ
ードを開始し、それがキヤツシユに到達するやい
なや、それをCPUにバイパスすることによつて、
フル・ラインの再ロードのためのCPUの待ちを
軽減することができ、それによつて、再ロード・
ペナルテイを、ミスの率と、最初のワードを一次
効果として再ロードするためのメモリ待ちとの積
にまで減少させることことができる。本発明のス
ヌープ・キヤツシユはまた、二次効果の大部分を
減らす再ロード・バツフア(RLB)を備えてい
る。
プロセツサ性能におけるキヤツシユ・ミスの一
次効果は、ミスしたデータが主メモリから再ロー
ドされる前にプロセツサが停止すべき時間であ
る。
プロセツサ性能におけるキヤツシユ・ミスの二
次効果は、ミスしたデータを受け取る後である
が、ミスしたラインの再ロードが完遂される前
に、キヤツシユ再ロードのせいで、プロセツサが
再度停止すべき時間である。
二次効果は、再ロードが完遂される前にミスに
密接に続く次のデータ要求から来る可能性があ
る。これはまた、キヤツシユ再ロード時間中の命
令事前取出しバツフアの消耗から来る可能性があ
る。事前取出しバツフアは、主メモリから取り出
されたがまだ復号も実行もされていない命令を、
順番待ちするバツフアである。
この再ロード・バツフアも、ライン・サイズと
同じ幅である。メモリが少なくともライン・サイ
ズの2倍の数のビツト・ラインを有するように構
成されているので、再ロード・バツフアを1サイ
クル中にバツフアからキヤツシユ・アレイに転送
されることができる。キヤツシユ再ロード中に、
ラインは先ず再ロード・バツフアに再ロードされ
る。そして、キヤツシユ・メモリの性能への最少
の影響が、1サイクル中にバツフアからキヤツシ
ユ・アレイに転送されることによつて引き起こさ
れることを、優先順位論理が判定する時間まで、
ラインは再ロード・バツフアに留まる。この方法
で、キヤツシユは、再ロード・バツフアを1ポー
トRAMに単に加えることによつて、疑似2ポー
トRAMのように挙動する。これは、キヤツシユ
がなお再ロードされている間に、同じまたは異な
つたラインへのロード・アクセスによつて極めて
近くに追随されるミス(命令の取出し、またはロ
ード、または記憶によつて引き起こされる)など
の、二次効果の大部分を除去する。1ポート・キ
ヤツシユでは、この状況はただちにプロセツサを
遅らせることになる。この理由は、キヤツシユが
再ロード・プロセスの完遂を試みている間に、プ
ロセツサは第2ロード命令からのデータを待たな
ければならないことである。再ロード・バツフア
によつて、キヤツシユは、ラインを再ロードする
プロセスの間に、さらにCPU要求を受け入れる
ことができる。追加の二次要求効果は、命令取出
しまたは記憶のためには不十分な緩衝技法であ
る。これは、空命令事前取出し待ち行列、または
単一のバツフアされた「記憶」が続き、そして
「記憶」または「ロード」が続く命令「ミス」を
有する、命令「取出し」による、バツフアされた
記憶「ミス」である。
機能的に「疑似2ポート」を保守するストア・
バツク・バツフア及び再ロード・バツフアを加え
て、スヌープ・キヤツシユは、これらの2つのバ
ツフアを通じて「疑似2ポート」の能力を達成す
る。本発明のスヌープ・キヤツシユは、CPUか
らの読取り/書込み要求を保守する他のポートを
有しながら、外部バス用の読取り(再ロード用)
または書込み(ストア・バツク用)を行なう1ポ
ートを有することによつて、キヤツシユ・ミス・
ペナルテイの多くを減少させることができる。
スヌープ・キヤツシユは、従来の技術(参考文
献2,3)において、また疑似2ポート・キヤツ
シユ(参考文献1)においても周知である。しか
し従来の技術には、本発明者が知つている疑似2
ポート・スヌープ・キヤツシユはない。緩衝技法
を通じての疑似2ポート能力を有するスヌープ・
キヤツシユは、独特のデータのバツフアに関連す
るコヒーレンシの問題を取り扱わなければならな
い。バツフアに関連するこのコヒーレンシの問題
を解決するための方法は、本発明の最も重要な部
分である。
疑似2ポート能力を有する利点は、キヤツシユ
がスヌープであつてもなくても同じである。これ
は、疑似2ポート能力をスヌープ・キヤツシユに
加える理論的根拠を提供する。疑似2ポート能力
は、スヌープ・キヤツシユのためのより高い性能
を発揮するために重要である。しかし、「疑似2
ポート」能力がスヌープ・キヤツシユに加えられ
ると、追加のコヒーレンシの問題が発生する。コ
ヒーレンシの問題の解決は、本発明の疑似2ポー
ト・スヌープ・キヤツシユの適切な機能発揮に必
要である。
キヤツシユ・アレイにアクセスするために続い
て記載される優先論理も、本技術分野では独特の
ものであると思われる。スヌープ・キヤツシユ・
システムでは、これらの性能拡張案は、専用の緩
衝技法を通じて、なおもそれらが起こす問題に対
する他の革新的解決法を要求している。これらの
バツフアはスヌープ・ヒツトを引き起こす可能性
のあるデータを保留するので、キヤツシユ・コヒ
ーレンシの問題もバツフアに加わる。しかし、ハ
ードウエアの観点からは「アドレス比較」に費用
をかけるのみならず、費用のかかる特別なデータ
経路も、ストア・バツク・バツフアへのスヌー
プ・ヒツトの間に、ストア・バツク・バツフアへ
書き込むために必要である。これが必要である理
由は、バスが、それがバス・サイクルの中間にあ
るときに、ストア・バツク要求を受け入れること
ができないので、キヤツシユが、スヌープ・ヒツ
トのために、ダーテイ・ライン上でデータがキヤ
ツシユ内のダーテイ・ラインに書き込まれること
になるように、構成されていることである。特別
なデータ・パスが必要である理由は、外部バスか
らストア・バツク・バツフアへの経路は利用でき
ないので、ストア・バツク・バツフアのみがキヤ
ツシユ・アレイからの入力を受け取ることであ
る。ストア・バツク・バツフアはアレイとピツ
チ・マツチされているので、特別入力経路をスト
ア・バツフアに加えることは、チツプ領域に本質
的に影響することになる。再ロード・バツフアへ
のスヌープ「ヒツト」は、それがバスへの出力経
路を持たないので、同じ問題を起こす。
本発明は、これらの問題を解決するためのコス
ト効果の高い方法を教示し、また同時に、再ロー
ド・バツフア及びストア・バツク・バツフアの利
用を通じて、システムの性能を拡張するという利
点を提供する。本発明のスヌープ・キヤツシユに
は、交換されるべき(たとえば、キヤツシユに記
憶された)ラインがダーテイであることをフラグ
するための、RPDIRTY(交換されるべきライン
がダーテイである)と呼ばれるビツトが供給され
る。再ロード・バツフアが再ロードが終わつてフ
ルになると、ストア・バツクRPDIRTYビツトが
セツトされている場合には、要求がバス・ユニツ
トに送られる。再ロード・バツフアは絶対にダー
テイにはならないことは、明らかに理解されるは
ずである。交換されるべきラインのみがダーテイ
になることがある。したがつて、交換されるべき
ラインは、RLBの内容がキヤツシユに転送され
る前に、主メモリへの次のストア・バツクのため
に、最初にストア・バツク・バツフアに転送され
る。本発明の疑似2ポート・キヤツシユのアクセ
スを調停する優先論理は、再ロード・バツフアが
再ロードによつてフルになつた後に、再ロード・
バツフアからキヤツシユへの転送が、RPDIRTY
ビツトがゼロである場合にのみ、発生することに
なるように設計されている。その他、この転送
は、ストア・バツク要求がバスから許可されるま
では発生しない。キヤツシユ・ミスに遭遇すると
きに、交換されるべきラインがダーテイでない場
合には、それは正しく無効化され、このため
RPDIRTYビツトは、ラインが実際に更新される
前に変えられる必要はない。
キヤツシユ・アレイ(メモリ・セル)は1ポー
トのみを持つ。バツフアと優先論理は、これを永
久に2ポート・キヤツシユ「のように
(LOOKLIKE)」するために使用される。したが
つて、「疑似」2ポートという用語が使われた。
バツフアは、キヤツシユ・アレイへのアクセスの
混雑を軽減するために使用される。データのいく
つかはバツフアされるので、色々なソースによる
1ポート・セルへのアクセスは、順次に行なわ
れ、この間、イベント(すなわちCPUアクセス
要求、再ロード、ストア・バツク)が外見的には
並列動作として見られる。交換すべきラインがダ
ーテイである場合には、それは、実際に交換され
るか主メモリにストア・バツクされるまで、ダー
テイ状態のままであり、このために、この交換す
べきダーテイ・ラインを、キヤツシユ登録簿から
の規則的なスヌープと同じ方法で取り扱うことが
できる。この状態変換の実行を、下記の好ましい
実施例の部門で説明する。ストア・バツクが「許
可」されると、優先論理は再ロード・バツフアか
らキヤツシユ・アレイへの変換を発生させる。
RPDIRTYを結合されたストア・バツク要求「許
可済」信号は、再ロード・バツフアからキヤツシ
ユ・アレイへの変換が行なわれる前に、ストア・
バツクのロードを始動させるが、両方は同じサイ
クルで発生する。
キヤツシユ・アレイは、読取り・変更・書込み
の性能を備えるように構成されている。メモリが
「読取り・変更・書込み性能」を備えるように設
計されている場合には、これは1サイクルで先ず
アドレスから読み取り、次に同じアドレスに新し
いデータを書き込むことができる。
ストア・バツク・バツフアのロードは、読取
り・変更・書込みサイクル中に行なわれる。その
後ただちに、ストア・バツク・バツフアは、スト
ア・バツク・バス・サイクルが保証されているの
で、主メモリにアンロードされる。これは、スト
ア・バツク・バツフア上のスヌープ・ヒツトを避
けるためには、ストア・バツク・バツフアはスト
ア・バツク・バス・サイクルが終わるとすぐにア
ンロードされなければならないので、必要なこと
である。この方法で、これはアクセス比較ハード
ウエア、上述の特別データ経路、及びスヌープ・
ヒツトを行なうための関連制御機構を保管する。
これは、システム設計が、ストア・バツク・バツ
フアのデータにスヌープ・ヒツトが起り得ないこ
とを保証ししているからである。追加のデータ経
路が作られ、ピツチ・マツチされたメモリ・セ
ル、感知増幅器、及びバツフアのピツチ・サイズ
の増加も引き起こす。再ロードの内容をダーテイ
にさせることは、第5図で説明するキヤツシユ・
アレイにおけるデータについてのコヒーレンシを
保守するために必要な状態機械に似た、データ・
コヒーレンシ制御を要求する結果となる。
ある珍しいシステムについては、確実なスト
ア・バツク・バス・サイクルを保証することがで
きない場合、上述のキヤツシユ・コヒーレンシ保
守法をある追加された論理によつて変更し、コヒ
ーレンシの問題を解決することができる。キヤツ
シユは、RPDIRTYビツトを保守し、ストア・バ
ツク要求を出し、そしてキヤツシユ内にダーテ
イ・コピーを保守することになり、この間、上述
の場合におけるのと同じ方法で、ストア・バツク
要求は保留となつている。ストア・バツク要求が
許可されると、1サイクル中に読取り・変更・書
込み動作を実施してストア・バツク・バツフアを
ロードし、再ロード・バツフアからキヤツシユに
転送する代りに、再ロード・バツフアを転送する
ことなくストア・バツク・バツフアをロードする
だけである。したがつて、交換されるべきダーテ
イ・コピーは、キヤツシユとストア・バツク・バ
ツフアの両方にある。データはただちにバスから
ストア・バツク・バツフアに出力されることにな
る。ストア・バツク・バス・サイクルが早々と終
了する場合には、キヤツシユ内のコピーはスヌー
プを続けて、ストア・バツク・バツフア上のスヌ
ープ・ヒツトを回避する。
追加のアドレス比較機構と付属する論理が、キ
ヤツシユ内の交換すべきダーテイ・ラインが
CPUまたはバス上のある装置のいずれかによつ
て重ね書きされた場合を、検出するために必要で
ある。これは、ストア・バツク・プロセス中かま
たはストア・バツクが割り込まれた後のいずれか
に発生する可能性がある。この場合、もう1つの
キヤツシユ・サイクルが、ストア・バツク・バツ
フアを再ロードするために必要である。ストア・
バツクは、ストア・バツク・バス・サイクルが再
び許可されると、全ラインのストア・バツクが完
了するまで同じ様式で続けられることになる。す
るとこの時点で、優先論理は再ロード・バツフア
からキヤツシユへの転送を出す。
ほとんどのマイクロプロセツサはCPU内の記
憶をバツフア・アツプするので、記憶は、CPU
性能に影響することなく停止可能である。本技術
分野では、これは一般に、記憶レジスタにおいて
記憶データを待機するための「バツフアされた記
憶」と呼ばれる。したがつて、キヤツシユのアク
セスを調停するための優先論理は、再ロード・バ
ツフアからキヤツシユ・アレイへの転送を行な
い、CPUより高い優先順位のキヤツシユへの書
込みを行なうように設計されている。この方法
で、再ロード・バツフアは決してダーテイになる
ことはない。これが供給すべきキヤツシユ・コヒ
ーレンシ論理のみは、バス書込みでのスヌープ・
ヒツト中に再ロード・バツフアを無効化すること
である。これは、主メモリ中の同じアドレス位置
への他のバス・マスタ書込みがある場合には、再
ロード・バツフア中のデータはすでに古くなつて
いるので、再ロード・バツフア中のデータはキヤ
ツシユ内に記憶される必要はなくなることを意味
する。明らかに、このことはアドレス比較機構を
必要とするが、第2段階中にCPUからのアクセ
ス要求のために、再ロード・バツフア上のヒツト
の決定に使用される既存のアドレス比較機構は、
第1段階中にスヌープのために利用することがで
きる。
詳細な説明 これから、本発明の1つの好ましい実施例を詳
しく説明するが、これは、2ポート登録簿を有す
るが大きなハードウエア費用の不利はないキヤツ
シユ・アーキテクチヤと性能上実質的に同等に、
全キヤツシユ性能を拡張したことになる。
典型的なスヌープ・キヤツシユにおいて最も高
価なハードウエアは、スヌープによるCPU動作
の妨害を避けるための、キヤツシユ登録簿の複写
または2ポート・キヤツシユ登録簿[参考文献
4]の使用である。本発明は、どのようなハード
ウエアの複製も2ポート登録簿の使用もなくて、
この目的を達成する方法を提供する。これは効果
的なパイプライニングによつて達成される。登録
簿はキヤツシユ・アレイよりもはるかに小さいの
で、登録簿のアクセスはキヤツシユ・アレイ・ア
クセスよりもはるかに速くなる。第3図に示すよ
うに、キヤツシユ・アクセス・パイプラインは次
のように区分することができる。すなわち、第1
段階で、登録簿はCPUが線形アドレス生成を行
なう間にスヌープを実施し、キヤツシユ・アクセ
ス要求を出し、そしてキヤツシユ優先論理は、
CPU読取り、書込み、再ロード・バツフア転送、
及びスヌープ・ヒツトが発生した場合にはスヌー
プ・ヒツトの処理、の間の調停を行なう。第2段
階で、キヤツシユ・アクセスは、キヤツシユ登録
簿及びキヤツシユ状態アレイにアクセスすること
によつて始まり、それがヒツトであるかミスであ
るか、そしてまた、CPUがアドレス変換を行な
つて実アドレスを生成する間の、キヤツシユから
の並行読取りであるか、を判定する。第2段階が
終わると、データは、それがヒツトである場合に
はCPUに利用可能であり、したがつて、1サイ
クル・キヤツシユのパフオーマンスを達成する。
次の第1段階では、それが読取りであつた場合に
は、キヤツシユがプレチヤージを実施して次のア
クセスを準備する間に、登録簿は再びスヌープを
実施する。CPU要求が書込みであつた場合には、
登録簿と状態アレイは第2段階中にアクセスさ
れ、どのセツトに書き込むべきかを決定すること
になる。次の段階、すなわち第1段階では、登録
簿と状態アレイがスヌープを実施する間に、キヤ
ツシユ・アレイは書込みを行ない、その後、ビツ
ト・ラインを復元する。読取り・変更・書込みサ
イクル中は、読取りは第2段階で実施され、書込
みは同じセツト選択を使用して次の第1段階で発
生する。したがつて、登録簿と状態アレイはスヌ
ープのために第1段階中に使用され、CPUアク
セスのために第2段階中に使用され、この間に、
キヤツシユ・アクセスは第2段階から次の刻時サ
イクルの第1段階にスパンし、こうしてスヌープ
の目標を、またどのような追加のハードウエアも
なくて1サイクル・キヤツシユとして達成する。
古いアプローチでは、スヌープのための1つの登
録簿とキヤツシユのCPUアクセスのための別の
登録簿が単に同時に使用された。
本発明の好ましい実施例で説明されるスヌー
プ・キヤツシユは、8KB、16B/ライン、両方向
セツト連想混合I及びD(命令及びデータ)キヤ
ツシユである。第2図は、この設計の登録簿と状
態アレイ部分を示す。登録簿と状態アレイは両方
ともメモリ・アレイである。状態機械は、第4図
に示すように状態ダイヤグラムを実現するための
状態アレイに関連し、当業者はよく理解できるよ
うに、ランダム論理内またはPLA内のいずれか
で実現可能である。第3図は、本設計のキヤツシ
ユ・アレイ、再ロード・バツフア及びストア・バ
ツク・バツフアの部分の組織を図示する。
第2図で、登録簿10は、256のエントリの2
つのセツト12,14をそれぞれ有する。各セツ
トは20ビツト出力とパリテイを有する。各エント
リは、状態アレイ16の中にセツト当たり対応す
る2つの状態ビツトと、LRU交換計画のための
1つの最も最近使用されたビツトを有する。これ
らのビツトのすべては、登録簿アドレスによつて
直接アクセスされる。登録簿10は、読取りと書
込み両方のための単一ポートを有する。状態アレ
イは、Rと印された1つの読取りポート、及びW
と印された1つの書込みポートを有する。この両
段階中に、状態アレイの出力は状態機械18を通
過し、次のキヤツシユ・サイクル段階中に状態ア
レイ16に書き込まれることになる、新しい状態
を生成する。前述のように、状態機械は、PLA
かまたはランダム論理のいずれかを含んでもよ
く、このランダム論理は、第4図のブロツク/デ
ータ流れ図に詳しく説明するように、キヤツシユ
すべてにおいて現在実施されている動作にしたが
つて、特定のキヤツシユ・アクセスのための状態
ビツトを設定する。
しかしこれは、コンピユータ・アートの専門家
にはよく理解できるように、「スヌープ」で支援
されたデータ・コヒーレンシと疑似2ポート操作
速度の両方のために動作する、必要キヤツシユを
供給するために、システム制御を行なう1つの方
法である。
8KB、16Bライン・サイズ、両方向セツト連想
キヤツシユについては、アドレスの8ビツト(た
とえばビツト20〜27)が、登録簿10と状態アレ
イ16にアクセスするために必要である。これに
追加して、10ビツト(たとえばビツト20〜29)が
キヤツシユにアクセスするために必要である。ア
ドレスの最高位20ビツトは、比較回路20におい
て20ビツト登録簿出力と比較するために使用され
る。アドレスが比較されて対応する状態が無効で
ない場合には、意図されたアクセスはキヤツシユ
へのヒツトとなる。ヒツトを有するセツトは、論
理回路22から出ている2本のライン24の1つ
で、SET SELECTとして表現される。
第5図に示すように第1段階では、登録簿と状
態アレイがスヌープのためにアクセスされ、
MAX26を介してスヌープ・ヒツトを決定す
る。第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
(最も最近使用された)1つのビツトと両セツト
の「状態」の4ビツトから構成される。(4つの
状態を表すには2ビツトが必要である。) SET SELECTライン25は、選定されたセ
ツトの状態を選択するために使用されるが、この
状態は、状態機械18への入力として使用され、
選択されたラインの新しい状態を判定する。第4
図に示すように、状態変換ダイヤグラムを実行す
る状態機械は、ライト・スルー・モードかライ
ト・バツク・モードのいずれかで、ユニ・プロセ
ツサ・システム及び多重プロセツサ・システムの
両方のためのキヤツシユ・コヒーレンシを維持す
る。ライト・バツク・キヤツシユを有する多重プ
ロセツサのためのキアツシユ・コヒーレンシ案
は、グツドマン(Goodman)の書換え不能法に
似ている。
ユニ・プロセツサ・モード(MP=0)では、
4つの可能な状態のうちの3つが使用される。
MPビツト=0であればプロセツサがユニ・プロ
セツサ・システム内にあることを意味し、MPビ
ツト=1の場合には、プロセツサは多重プロセツ
サ・システム内にある。状態は、ラインが主メモ
リからちようど再ロードされた場合には、
INVALIDからVALIDに変わり、VALID状態で
は、CPUがラインに書き込む場合には、これは
DIRTY状態に変わる。ローカル・バス上での
(そのワード)に対する書込み動作によるスヌー
プ・ヒツトがある場合、またはラインが交換され
つつあるプロセス中にある場合には、状態は
VALIDからINVALIDに戻る。バス書込み動作
がスヌープされ、アドレスがダーテイ・ラインへ
のヒツトを引き起こす場合には、ラインはダーテ
イ状態に設定されたままであり、バス書込み動作
は、主メモリの代りにキヤツシユに書き込むこと
になる。この実施は多重プロセツサの状況とは違
つている。それは、他のキヤツシユからではない
書込み動作はライン部分のみ重ね書きしてもよ
く、したがつて、ダーテイ・ラインは、多重プロ
セツサ・システムの場合のように、その全体が無
効化されることはできないからである。ラインも
また、それが交換されるラインとして識別される
場合には、再ロード・バツフアからキヤツシユへ
の転送中に実際に新しいラインによつて交換され
てしまうまで、ダーテイのままになる。この時点
で、状態はDIRTYからVALIDに変わる。
多重プロセツサ・モード、MP=1では、4つ
の可能な状態がある。現在INVALID状態にある
と、状態は、ラインがある他のキヤツシユから再
ロードされる場合には、VALIDに変わり、また
はラインが主メモリから再ロードされる場合に
は、WRITE−ONCE状態に変わる。他のキヤツ
シユから再ロードされる場合には、データは他の
キヤツシユによつて共有されていることを意味
し、したがつて、状態は有効状態であるはずで、
その可能な共有を信号で示す。ラインが主メモリ
から再ロードされる場合には、データのこの部分
を有するキヤツシユはないことを意味し、したが
つて特定のCPU/キヤツシユが唯一のオーナー
であり、データへの変更は自由である。これは
「書替え不能」状態が代表するものである。状態
は、CPU書込み動作中にVALID状態から
WRITE−ONCE状態に変わり、システム中の他
のキヤツシユを、書込み動作のスヌープとキヤツ
シユ自体のコピーの無効化ができるようにするた
めに、バス・インタフエース論理に、主メモリへ
のライト・スルーを行なわせることになる。
したがつて、WRITE−ONCE状態はコピーの
唯一の所有権を表し、コピーは、他のキヤツシユ
に通知することなく自由に変更される。他のキヤ
ツシユからのライト・スルー動作または非キヤツ
シユ装置からのライト・スルー動作であつてもよ
いバス書込み動作からの、スヌープ・ヒツトが存
在する場合には、有効なラインは無効化されるこ
とになる。有効なラインはまた、それが、CPU
書込みが再ロード・バツフア内のRPDIRTYビツ
トを変えないようにするために、交換されるべき
ラインとして識別される場合には、無効化される
ことになる。WRITE−ONCE状態にあるとき
に、キヤツシユがラインを再ロードする他のプロ
セツサをスヌープする場合には、状態はVALID
に転じ、これはコピーがキヤツシユの間で共有で
きることを意味する。キヤツシユがバス上の非キ
ヤツシユ書込み動作をスヌープし、WRITE−
ONCE状態にあるライン上にヒツトが発生する場
合、またはWRITE−ONCE状態にあるラインが
交換されるべきラインとして識別される場合に
は、ラインは無効化されることになる。スヌープ
動作が、他のプロセツサがラインの再ロードを望
んでいると判断した場合には、ダーテイ・ライン
が有効なラインとなり、このラインはストア・バ
ツクされることになる。
WRITE−ONCE状態にあるラインへのCPU書
込みは、そのラインをダーテイ・ラインに変える
ことになるが、ライト・スルーは必要がない。こ
れは、このプロトコルの主な機能の1つである。
最初の書込みだけが主メモリにライト・スルーさ
れる場合には、バス通信量は大幅に減少すること
になる。バス書込み動作によるダーテイ・ライン
上のスヌープ・ヒツトがある場合には、キヤツシ
ユは、主メモリの代りに、キヤツシユ内のダーテ
イ・ラインに直接スヌープ・データを書き込むこ
とになり、ダーテイ・ラインはダーテイに設定さ
れたままである。これは、ダーテイ状態では非キ
ヤツシユ装置からの書込みだけがスヌープ・ヒツ
ト発生時に可能であるからである。(たとえば、
デイスクといつた、典型的にはシステム・バスに
取り付けられた)他の入出力装置などの非キヤツ
シユ装置からの書込みは、部分ラインに対するも
ので、したがつて、このラインを無効化すること
はできない。ダーテイ状態中に非キヤツシユ装置
からの読取りをスヌープする場合には、読取り要
求が部分ラインにありうるので、キヤツシユは、
ラインのすべてをストア・バツクすることなく、
要求されたワードを供給することになる。ライ
ト・スルー・キヤツシユを有する多重プロセツ
サ・システムについては、状態交換で1つの相違
がある。
WRITE−ONCE状態にあるラインへのCPU書
込みは、状態をDIRTYにかえることにはならな
い。これは、ライト・スルー活動によつて、
WRITE−ONCE状態のままである。したがつ
て、ラインは、ライト・スルー・キヤツシユ内で
は決してダーテイにはならず、ただ3つの可能な
状態、INVALID,VALID、及び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セツトは、交
換されるラインである。交換されるべきラインが
クリーン・コピーである場合には、それは無効化
され、RPDIRTYビツトは0にリセツトされる。
これは、一部は論理を簡略化するために、一部は
ストア・バツク・バツフアのロード時間のために
行なわれる。交換されるラインがダーテイである
場合には、それは必要なダーテイのままになり、
ラインをスヌープすることができ、スヌープ・ヒ
ツトにも普通通りに応答することができる。再ロ
ード・データが主メモリから戻ると、バス・ユニ
ツトは「再ロード作動可能」信号を出し、この信
号はキヤツシユ制御機構を始動させ、データを再
ロード・バツフアにワードごとにロードする。
CPUからのキヤツシユ・アクセス要求がデータ
読取りでない場合には、CPUは他のキヤツシ
ユ・アクセス動作及び命令実行を続けることがで
きる。CPU実行はただちにキヤツシユの応答を
必要としないので、キヤツシユは再ロード中に自
由にアクセスされることが可能である。これは、
再ロードの目的はキヤツシユではなく、再ロー
ド・バツフアにあり、一方では再ロードは、他の
ミスに出会うまで進行中であるからである。また
再ロード・バツフアは、CPUによつてアクセス
されることもでき、一方では再ロードは、ワード
が再ロード・バツフアにロードされた場合には、
進行中である。再ロードされたラインのソースは
RLBSRCとしてラツチされることになり、主メ
モリからの再ロードを他のキヤツシユからの再ロ
ードとを区別する。
RLBSRC(再ロード・バツフア・ソース)ビツト
=1のときは、 再ロード・バツフア中のデータは他のキヤ
ツシユからであつた。
データが再ロード・バツフアからキヤツシ
ユに転送されると、ラインは「有効」状態
に変えられることになる。
RLBSRCビツト=0のときは、 再ロード・バツフア中のデータは主メモリ
からであつた。
新しい状態は「書換え不能」となる 再ロードされたラインは、キヤツシユ・アクセ
スを優先可する調停論理が再ロード・バツフアか
らキヤツシユ・アレイへの転送を出すまで、前に
説明したように、再ロード・バツフアの中に留ど
まることになる。再ロード・バツフア転送が終わ
ると、前述のように、ラインの状態は状態機械に
よつて、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図に示す状態変
換図における変換T1に従つて、キヤツシユ制御
機構は、ボツクス6に示すように、次の段階中に
キヤツシユに書き込むためにバス・マスタを使用
可能にする「キヤツシユへのバス」信号をセツト
する。ボツクス5で判定してラインがダーテイで
ない場合には、第4図の状態図における変換T2
とT3に従つて、ボツクス7に示すように、ライ
ンは無効化されることになる。ボツクス4で判定
してバス活動が読取りであり、ボツクス8で判定
してラインがダーテイでなくて、さらにボツクス
9で判定してバス・マスタが他のキヤツシユでな
い、という場合には、キヤツシユ制御機構は、
「キヤツシユへのバス」信号をセツトして、次の
段階におけるキヤツシユ読取り動作を使用可能に
して、バスにデータを出力する。ボツクス9で判
定してバス・マスタが他のキヤツシユである場合
には、ボツクス11に示すように、「バス及びメ
モリへのキヤツシユ」信号が始動され、このため
次の段階で、第4図の状態図における遷移T4と
T5に従つて、キヤツシユはバス要求のためのデ
ータを供給し、主メモリへストア・バツクし、状
態を有効に変える。
ボツクス3で判定してスヌープ・ヒツトがなか
つた場合には、疑似2ポート・キヤツシユのキヤ
ツシユ制御機構は、前述のように優先順位チエー
ンに進み、ボツクス12に示すように、RLBが
フルであるか、他の再ロードが進行しているか、
を検査する。ボツクス12の結果がイエスである
場合には、これは、キヤツシユが次の第2段階中
にRLBの内容をキヤツシユに転送できるように
する「RLB TRN」信号をセツトする。ボツク
ス14の結果がノーであり、ボツクス13で判定
してストア・バツクが許可されていた場合には、
RMW SB信号がセツトされるが、この信号は、
キヤツシユが読取り・変更・書込み動作を実施で
きるようにし、この動作は「交換すべき」ダーテ
イ・ラインをストア・バツク・バツフアに転送
し、その後すぐにバスを通じて主メモリへのスト
ア・バツクを行ない、そしてRLBの内容をキヤ
ツシユに転送する。これはボツクス18に示され
ている。ボツクス13で判定してストア・バツク
要求が許可されず、ボツクス12に示すように、
CPUが読取り要求を出した場合には、「CPU
RD WR EN」信号がセツトされ、この信号に
よつて、ボツクス20に示すように、次の段階で
キヤツシユはCPU読取り/書込み要求を実施す
る。ボツクス14のテストが読取りではなくて、
ボツクス15で判定してRLBがフルである場合
には、ボツクス19に示すように、「RLB
TRN」信号がセツトされ、この信号によつて、
次の段階でRLBからキヤツシユへの転送が行な
われる。ボツクス15のテストの結果として
RLBがフルではなくて、ボツクス16で判定し
てCPUが書込みキヤツシユ要求を有する場合に
は、ボツクス20に示すように、「CPU RD
WR EN」信号がセツトされる。ボツクス16
でテストしてCPUがデータ書込み要求を出さな
かつた場合には、ボツクス17に示すように、
CPU命令読取り要求のためのテストに進む。ボ
ツクス17のテストがイエスである場合には、ボ
ツクス20に示すように、「CPU RD WR
EN」信号がセツトされる。
第2段階の始めに、第6図に示すように、キヤ
ツシユは優先論理によつて決定された6つの可能
な動作の1つを実施するが、これは前述され、第
6図に示されている。これらの6つの制御信号、
すなわちキヤツシユからBUSMEM、キヤツシユ
からBUS,BUSからキヤツシユ、RMW SB,
RLB TRN,CPU RD WR ENは、これら
は第5図の流れ図に示した優先論理によつてセツ
トされるため、互いに排他的である。ボツクス2
1に示すように、キヤツシユからBUSMEMの信
号がセツトされる場合は、キヤツシユはバス・マ
スタ読取り要求のためのデータを供給し、主メモ
リにストア・バツクし、そして第4図の状態図に
おけるT4変換及びT5変換に従つて、ラインは有
効状態に変えられる。
ボツクス22に示すように、キヤツシユから
BUSの信号がセツトされる場合は、キヤツシユ
はバス・マスタ読取り要求のためのデータを供給
する。ボツクス23に示すように、BUSからキ
ヤツシユの信号がセツトされる場合は、バス・マ
スタはキヤツシユに直接書き込む。ボツクス24
に示すように、RMW SBの信号がセツトされ
る場合は、キヤツシユは先ず読取り・変更・書込
み動作を実施して、交換されるべきダーテイ・ラ
インをキヤツシユからSBBに転送し、(1キヤツ
シユ・サイクル中に)RLBの内容をキヤツシユ
に書き込む。キヤツシユ状態は、第4図の状態図
における変換T9及びT10に従つて更新される。
ボツクス25に示すように、次のサイクルでスト
ア・バツク・プロセスが始まつて、SBBの内容
を主メモリに転送する。ボツクス26に示すよう
に、RLB TRNの信号がセツトされる場合は、
RLBの内容はキヤツシユに書き込まれ、そして
キヤツシユ状態は、第4図の状態図における変換
T9及びT10に従つて更新される。CPU RD
WR ENがセツトされる場合は、第6図と第7
図の両方のボツクス27に示すように、キヤツシ
ユはCPU読取り/書込み要求を実施することに
なる。
CPU読取り/書込み要求を実施するためには、
第5C図のボツクス28に示すように、キヤツシ
ユ・アレイ、キヤツシユ登録簿、及び状態アレイ
は、第2段階の初めに、CPUによつて出された
アドレスによつて同時に読み取られる。ボツクス
29で判定してキヤツシユ・ヒツトがある場合に
は、ボツクス30,31,32で示すように、キ
ヤツシユはCPU読取り/書込み要求を実施する。
そしてライン状態は、第4図の状態図における変
換T1,T6,T7、及びT8に従つて更新される。
ボツクス29で判定してキヤツシユ・アクセス
がミスである場合には、ボツクス33に示すよう
に、キヤツシユ再ロード・プロセスが始まる。疑
似2ポート・スヌープ・キヤツシユについては、
再ロード要求がバスにすぐに出される。交換され
るべきラインがダーテイである場合には、
RPDIRTY=1ラツチがセツトされる。ボツクス
35に示すように、バスが空いている場合には、
ボツクス36に示すようにミスしたデータは主メ
モリから読み取られる。ボツクス37で判定して
データがキヤツシユに到達すると、ボツクス38
で示すように、データはRLBにロードされ、ミ
スしたワードはただちにCPUにバイパスされる。
次のワードが到達すると、ボツクス39,40,
41に示すように、ライン全体がRLBに再ロー
ドされるまで、これらはRLBを満たし続け、そ
してRLBフル信号がセツトされる。ボツクス4
2で判定して交換されるべきラインがダーテイで
ない場合には、第5図のボツクス19で示すよう
に、再ロードされたデータは、キヤツシユ制御機
構がそれはRLBの内容をキヤツシユに転送する
時間であることを判定するまで、RLBの中に留
まつている。交換されるべきラインがダーテイで
ある場合には、ボツクス43に示すように、スト
ア・バツク要求はバスに送られる。第5図のボツ
クス13とボツクス18で既に説明したように、
RLB転送は、ストア・バツク要求が許可される
まで待たなければならない。
これは、第5図、第6図、及び第7図に図示す
る本キヤツシユ・アーキテクチヤの動作につい
て、詳細な説明を行なつたものである。
結 論 ここに開示した本発明の好ましい実施例につい
て説明した後、つぎの観察を行ないたい。本発明
がここに開示した好ましい実施例に関して説明し
たが、ハードウエアといくつかの手順処理の両方
における多くの変更がシステムの動作全体に影響
することなく、容易に改訂できることを、当業者
は容易に理解できよう。
本発明が、スヌープ・キヤツシユの機能を疑似
2ポート・キヤツシユと組み合わせることによつ
て、従来の技術のアーキテクチヤのいずれとも著
しく異なつていることは、前記の説明から明白に
なることである。
疑似2ポート動作は、主としてストア・バツフ
ア及び再ロード・バツフアを準備することによつ
て達成され、データ・コヒーレンシは、前記のバ
ツフアならびにキヤツシユに記憶されたデータを
入念に制御し操作することによつて保証されるの
で、矛盾することは決してない。
本質的にキヤツシユの動作頻度の2倍である登
録簿の動作頻度を独特に使用することによつて、
キヤツシユ登録簿の複製または2ポート登録簿を
使用することなしに、スヌープ動作が成功裡に達
成され、この場合、スヌープ及び正常CPUアク
セスの両動作は、単一キヤツシユ・サイクル中に
事実上行なわれ、キヤツシユの性能はスヌープの
犠牲にはならない。
すでに述べたように、本発明を、ここに開示し
たハードウエアと制御の実施例に関連して説明し
たが、添付の特許請求の範囲に述べた本発明の意
図と範囲から外れることなく、形状と詳細の点で
多くの変更を行なつてもよいことが、当業者には
容易に理解できよう。
参考文献 [1] C.M.チヤン(Chuang)他「機能的メモ
リ/キヤツシユ・アーキテクチヤ(Functional
Memory/Cache Architecture)」、米国特許
出願第07/158964号。
[2] J.R.グツドマン(Goodman)「プロセツ
サ・メモリ通信量を減少するためのキヤツシ
ユ・メモリの使用(Using Cache Memory to
Reduce Processor−Meory Traffic)」、第10
回コンピユータ・アーキテクチヤ・シンポジウ
ム、p.124。
[3] J.アーチバルト(Archibald)とJ.ベー
ル(Baer)「キヤツシユ・コヒーレンシ・プロ
トコル:多重プロセツサ・シミユレーシヨン・
モデルを使用した評価(Cache Coherence
Protocols:Evaluation Using a
Multiprocessor Simulation Model)」、コン
ピユータ・システムのACMトランザクシヨン、
第4巻、第4号、1986年11月、pp.273−298。
[4] T.ワタナベ(Watanabe)「Fam 19.9:
8Kバイト・インテリジエント・キヤツシユ・
メモリ(Fam 19.9:An 8Kbyte Intelligent
Cache Memory)」、1987年、IEEE国際ソリツ
ド・ステート・サーキツト・センタ、p.266。
【図面の簡単な説明】
第1図は、本発明の原理を含む、疑似2ポート
単一登録簿スヌープ・キヤツシユのための、パイ
プライン・タイミング図を含む。第2図は、キヤ
ツシユ登録簿と状態アレイを図示して、本発明の
高性能コスト効果疑似2ポート・スヌープ・キヤ
ツシユ・アーキテクチヤの高レベル機能的ブロツ
ク/データ流れ図を含む。第3図は、キヤツシ
ユ・アレイとその関係バツフア、及び共に使用さ
れるマルチプレクサを図示して、本発明の高性能
コスト効果疑似2ポート・スヌープ・キヤツシ
ユ・アーキテクチヤの高レベル機能的ブロツク/
データ流れ図を示し、また第3図は、ここに開示
したキヤツシユ・アーキテクチヤのすべてのブロ
ツク図を含む。第4図は、すべて本発明によつて
教示された、ユニ・プロセツサ・システムまたは
多重プロセツサ・システムのためのキヤツシユ・
コヒーレンシの保守を含む。第5図は第5A図お
よび第5B図の組合せ図、第5A図および第5B
図は、ここに開示した疑似2ポート・スヌープ・
キヤツシユ・アーキテクチヤの優先順位チエーン
を通じて第1段階中に制御信号をセツトするため
の、高レベル流れ図を示し、単一疑似デユアル・
ポート登録簿、ならびに再ロード及びストア・バ
ツク・バツフアを含む。この図はまた、比較の目
的のために、従来の技術による非スヌープ1ポー
ト・キヤツシユ・アーキテクチヤ及び疑似2ポー
ト・キヤツシユ・アーキテクチヤの動作も図示す
る。第6図は、キヤツシユ動作の第2段階中に発
生可能な6つの可能な動作を詳しく示す、高レベ
ル流れ図を含む。第7図は第7A図および第7B
図の組合せ図、第7A図および第7B図は、本発
明の原理を持つ、ここに開示した疑似2ポート・
スヌープ・キヤツシユ・アーキテクチヤの
「CPU読取り/書込みキヤツシユ」の高レベル機
能流れ図を含み、このアーキテクチヤは、単一2
ポート登録簿ならびに適切な再ロード・ストア・
バツク・バツフアを有し、従来の技術によるデユ
アル・ポート・キヤツシユ・アーキテクチヤとほ
ぼ同じ性能を達成する。第5図におけるように、
比較の目的のために、従来の技術による非スヌー
プ1ポート・キヤツシユ・アーキテクチヤ及び疑
似2ポート・キヤツシユ・アーキテクチヤの動作
も図示する。

Claims (1)

  1. 【特許請求の範囲】 1 大型の主メモリ及びより小型の高速度キヤツ
    シユ・メモリ・システムを含み、前記キヤツシ
    ユ・メモリ・システムは、システム・バスによつ
    て前記主メモリに接続され、キヤツシユ/CPU
    バスによつて選択的にCPUが前記キヤツシユ・
    メモリ・システムに接続される、少なくとも1つ
    のCPUを含む電子データ処理システム用の階層
    メモリ・システムであつて、 前記キヤツシユ・メモリ・システムが、各々が
    共有のアドレス手段によつてアクセス可能な3つ
    の連想メモリ要素、すなわちキヤツシユ・メモ
    リ、キヤツシユ登録簿、及びライン状態アレイを
    有し、前記キヤツシユ・メモリは読取り・変更・
    書込み処理を単一メモリ・サイクル中に実施する
    手段を有し、 主メモリからキヤツシユ・メモリに転送される
    べきデータを一時的に記憶するための再ロード・
    バツフア手段、及びキヤツシユ・メモリから主メ
    モリに転送されるべきデータを一時的に記憶する
    ための、キヤツシユ・メモリに付属したストア・
    バツク・バツフア手段を含み、 キヤツシユ・メモリ・サイクルごとに少なくと
    も1回システム・バスを周期的にスヌープするた
    めの手段を有し、前記キヤツシユ・メモリ・シス
    テムを制御するメモリ制御手段であつて、前記キ
    ヤツシユ登録簿中のメモリ位置に関連するライン
    状態アレイ情報に従つて、単一の読取り・変更・
    書込み・メモリ・サイクル中にデータの前記キヤ
    ツシユ・メモリから前記ストア・バツク・バツフ
    ア手段への読取り処理、及び前記再ロード・バツ
    フア手段から前記キヤツシユ・メモリへのデータ
    の書き込み処理を該メモリ制御手段がシステム・
    バスの制御を獲得して即座に、かつ放棄する以前
    に実行するメモリ制御手段を有する、 階層メモリ・システム。 2 大型の階層メモリ機構の中で使用するための
    キヤツシユ・メモリ・サブシステムであつて、 付属の主メモリ及びCPUからアクセスされた
    データを記憶するためのキヤツシユ・メモリと、
    前記キヤツシユ・メモリと関連した場所に記憶さ
    れたデータの複数アドレスを記憶するためのキヤ
    ツシユ登録簿、前記キヤツシユ登録簿を制御して
    単一の読取り・変更・書込みメモリ・サイクル中
    に2度のシステム・バスの「スヌープ」を実行す
    る制御手段、キヤツシユ・メモリ・サブシステム
    を主メモリに接続するシステム・バスを有し、さ
    らに、 登録簿の内容に対する階層メモリ機構中のメモ
    リ要求をスヌープし、該メモリ要求と前記キヤツ
    シユ登録簿のアドレスと照合し、交替登録簿サイ
    クル上のCPU要求を処理するための制御手段、
    及び、 キヤツシユ・メモリを制御して、疑似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 JPH03189845A (ja) 1991-08-19
JPH0574103B2 true 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
EP0559409B1 (en) * 1992-03-04 1998-07-22 Motorola, Inc. A method and apparatus for performing a bus arbitration protocol in a data processing system
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
US9367464B2 (en) * 2011-12-30 2016-06-14 Intel Corporation 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
EP0432524A2 (en) 1991-06-19
EP0432524A3 (en) 1992-10-28
JPH03189845A (ja) 1991-08-19

Similar Documents

Publication Publication Date Title
US11803486B2 (en) Write merging on stores with different privilege levels
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
WO1996012229A1 (en) Indexing and multiplexing of interleaved cache memory arrays
JPH0659976A (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
JPH0850570A (ja) コンピュータシステム、インテグレーテッドプロセッサ、キャッシュベースのコンピュータシステムのためのスヌープ制御方法
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US11789868B2 (en) Hardware coherence signaling protocol
US11720495B2 (en) Multi-level cache security
JPH0574103B2 (ja)
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
KR100380674B1 (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
KR980013130A (ko) 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법