JPH03163640A - マルチプロセッサシステムおよびそれに用いるキャッシュメモリ - Google Patents

マルチプロセッサシステムおよびそれに用いるキャッシュメモリ

Info

Publication number
JPH03163640A
JPH03163640A JP2210343A JP21034390A JPH03163640A JP H03163640 A JPH03163640 A JP H03163640A JP 2210343 A JP2210343 A JP 2210343A JP 21034390 A JP21034390 A JP 21034390A JP H03163640 A JPH03163640 A JP H03163640A
Authority
JP
Japan
Prior art keywords
cache
data
address
state
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.)
Pending
Application number
JP2210343A
Other languages
English (en)
Inventor
Osamu Nishii
修 西井
Kunio Uchiyama
邦男 内山
Hirokazu Aoki
郭和 青木
Tsuratoki Ooishi
貫時 大石
Jun Kitano
北野 純
Susumu Hatano
進 波多野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH03163640A publication Critical patent/JPH03163640A/ja
Pending 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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or 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

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)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複数のプロセッサおよび主記憶装置を有するマ
ルチプロセッサシステムおよびそれに用いられるキャッ
シュメモリに関する。
〔従来の技術〕
キャッシュメモリについては二一・シー・エム,コンピ
ューティング・サーベイ第14巻3号473一530ペ
ージ(ACM,  CompuingSurveys,
Von.14,Nα3.pp.473−530)で詳し
く論じている。
キャッシュメモリとは、主記憶に比べ、容量は小さいが
、高速のアクセス(読み出し/書き込み)が可能なメモ
リであり、プロセッサのアクセスを高速に行なう目的で
プロセッサのごく近くに置かれる。
主記憶装置とプロセッサの間のデータの転送時間はプロ
セッサの内部処理時間の数倍になるため,データを命令
の実行のつど読み出していたのでは、処理の高速化は望
めない.一方プロセッサは主記憶の全体をアクセスの対
象としているが、ごく短時間の間にはそのうちのごく一
部分にアクセスは集中している。そこで主記憶装置の情
報の一部をキャッシュメモリにコピーし,プロセッサの
アクセスのほとんどをキャッシュメモリとの間で実行す
れば、平均的にアクセス時間を短縮することが可能とな
る。
キャッシュメモリは記憶をブロックという適当な大きさ
を単位にして管理する。各ブロックはそれぞれ主記憶の
ある箇所と対応し,その箇所のデータの写しを保持して
いる。この記憶をデータアレイ−と呼ぶ。加えて各ブロ
ックが主記憶のどの箇所に対応しているかはもちろん動
的に変化することが可能であり,そのアドレスの情報も
キャッシュメモリに保持されている。この記憶部分をア
ドレスアレイと言う6 プロセッサのアクセスのほとんどをキャッシュメモリと
の間で行なうようにするためには、最近に頻繁にアクセ
スされたデータはキャッシュ内に置かれるべきであるし
,その反対に最近に全くアクセスされていないデータは
必ずしもキャッシュ内に置かれるべきではない。キャッ
シュメモリは上に述べた要求を満たすような制御を行な
う。その制御を読み出し時を例に取って説明すると次の
ようになる。
キャッシュ内のデータをアクセスしたときにはそのデー
タの属するブロックを保持し続け、キャッシュ内にない
データをアクセスしたときには、主記憶上でそのデータ
を含む1ブロックをキャッシュ内に転送し、その代わり
に、キャッシュ内で最近使われていない1ブロックを追
い出す。なお、アクセスされたデータがキャッシュ内に
有ることをヒット、キャッシュ内に無いことをミスと言
う。
上記の文献二一・シー・エム,コンピューティング・サ
ーベイ第14巻3号473−530ページ(ACM, 
Computing Surveys, Vofl .
 1 4 , Nci 3 ,pp.473−530)
に述べられているように、キャッシュへのストア方式と
して,ライト・スル一方式とコピー・バック方式とがあ
る。
前者のライト・スル一方式は、プロセッサが書き込みを
行なう場合にキャッシュにヒットすれば、内側のキャッ
シュと外側の主記憶の両者に書き込みを行ない、常に両
者の内容を一致させる方式である。
これに対して,後者のコピー・バック方式は,プロセッ
サが書き込みを行なう場合にキャッシュにヒットすれば
、外側の主記憶には書き込みを行なわず,内側のキャッ
シュにのみ書き込みを行なう方式である。
この二つの方式を比較すると、コピー・バック方式はラ
イト・スル一方式に比べ制御が複雑であり、その制御の
ためにたくさんのハードウェア量が必要となる。これは
とくに、共有メモリ型のマルチプロセッサシステムにお
ける各キャッシュの内容の一貫性を保つための制御で顕
著となる。
しかしながら、性能面から見るとコピー・バック方式は
キャッシュにヒットした時に、主記憶に書き込みを行な
わないため、主記憶に対する書き込みを省略することが
でき、ライト・スル一方式よりもメリットがある。また
,主記憶に対する書き込み時間の省酩により、主記憶に
対するトラフィックが軽減されるメリットもある。マル
チプロセッサシステムでは,この主記憶のトラフィック
低減が、トータルのシステム性能を向上させる上で重要
なポイントである。
このように、マルチプロセッサシステムにおいては、複
数のプロセッサが主記憶装置を共有する一方、各プロセ
ッサは各々別のキャッシュ記憶を持っている。従って、
プロセッサからの書き込み要求もしくは読み出し要求が
有ると、キャッシュ記憶がミスの場合、この書き込み要
求もしくは読み出し要求はミスのキャッシュ記憶を介し
て主記憶に伝達される。従って、ミスのキャッシュ記憶
が主記憶を共有して主記憶を書き込んだり読み出したり
すると見做すこともできる。
またキャッシュ記憶以外にも主記憶バス上に結合され、
主記憶を直接に書き込んだり読み出したりできる装置が
存在する。例を挙げると画像コントローラや仮想記憶を
サポートするDMA(Direct Memory A
ccess)コントローラなどである。
本発明ではそれら,主記憶装置を直接に読み書きする装
置を総称して入出力装置と呼ぶ。
以上で説明したマルチプロセッサシステムにおいては、
主記憶装置を読み出したり書き込んだりする装置が複数
(詳しくいえば複数のプロセッサと複数の入出力装置な
ど)、存在する。そのとき、1つの装置から他の装置へ
データが転送できることはプロセッサシステムとして当
然の要件である。
しかしながら、複数のキャッシュ記憶を含むシステムに
おいてはこのデータ転送後のキャッシュ記憶の記憶内容
は必ずしも正しいとは限らない。その理由は、キャッシ
ュ記憶を含むシステムにおいてはある番地に対応したキ
ャッシュ記憶部が複数存在するが、それらのキャッシュ
記憶部の内容の間に不一致が起こる可能性があるからで
ある。
その例を2つ挙げよう。その第1は主記憶装置に書き込
みが行われた場合,主記憶装置の内容は最新であるが、
その書き込み以前の写しを保持するキャッシュがある場
合、そのキャッシュの記憶内容は更新されておらず、デ
ータの一致は保たれない。この場合をデータ不一致の第
1の問題と呼ぶ, 第2の場合はデータをプロセッサから4ヤッシュ記憶に
コピーバック法で書き込んだときの問題である。既に説
明したように、キャッシュ内でのプロセッサの書き込み
アクセスの処理方法には大別してコピーバック法とライ
トスルー法がある。
ライトスルー法は常に主記憶に書き、キャッシュにはヒ
ットしたときのみ書き込む。コピーパック法は、キャッ
シュにヒットした場合にはキャッシュにのみ書き込み、
ミスした場合にはブロックを置換した後にキャッシュに
のみ書き込む。このように、コピーバック法においては
,データをキャッシュにのみ書き込むので、自らのキャ
ッシュの記憶内容は最新であるが主記憶装置の内容およ
び他のキャッシュの内容は更新されておらずデータの一
致は保たれない。この場合をデータ不一致の第2の問題
と呼ぶ。
前記データ不一致の第1の問題は無効化の考えに基づい
た方法によって解決可能である。これは主記憶への書き
込みの度に、書き込みアドレスを含むブロックがもし他
のキャッシュに存在するならば,他のキャッシュの該ブ
ロックを消去・無効化する制御を行い、第1の問題で述
べたデータの不一致を発生させなくする。単一の主記憶
バスを共有するシステムにおいてはこれは容易である。
すなわち、主記憶上のあるバスマスタが主記憶バスを書
き込みのために使用するときには、他のすべてのキャッ
シュは主記憶のアドレスを監視し、もし書き込み番地を
含むブロックが自キャッシュ内に存在するならば、その
ブロックを無効化すればよい。この無効化は、例えば各
ブロック毎に設けられたそのブロックが有効であること
を示す1ビットの有効性フラグ(以下、Vビットと呼ぶ
)を論理re 1 ttから論理II O 11にする
ことにより実行される。
さて、第2の問題に対しては従来から様々な解決策が考
えられている。その代表的な方広は197l年8月25
日の米国特許出願第174,824号を優先権主張の基
礎とした特公昭52−14064号に記載されている。
この例においてはコピーパック法を用いながらデータの
一致を保つ。この例の概酩図を第10図に示す。201
,202はプロセッサ、203,204はキャッシュメ
モリ、205は主記憶装置、206は主記憶バスである
。キャッシュ203,204の各ブロックは同じ写しを
他のキャッシュに存在しているか否かの情報をMCビッ
ト(マルチコピービット:写しが複数あることを示す)
として有する。
そして,コピーパック法であるので、書き込み時にはキ
ャッシュにのみ書き込むことになる。この書き込みに際
して,もし同じ写しが他のキャッシュ中にあるときには
キャッシュ間に配線された放送バス207にアドレスを
送り、無効化処理を行う.もし同じ写しがないときには
放送バス207にアドレスを送ることは省略される。さ
らにキャッシュの各ブロックにUビット(更新ビット,
キャッシュ内のみでデータを更新したことを示す)をも
ち、コピーパック法のキャッシュへのみの書き込みの際
にUビットを論理“1”にする。U=1のブロックは主
記憶とデータの一致がとれていないので、ブロック置換
に伴って追い出されるブロックのVビット及びUビット
が“1”ならば、該ブロックのデータを主記憶に書き戻
す。
また、VビットおよびUビットが゛11′″であるブロ
ック内のデータを他のバスマスタが主記憶から転送する
とき、主記憶の該当ブロックのデータは最新でないので
,主記憶の古いデータにアクセスさせないように制御す
る。具体的には該アクセスを中断させ、不一致が問題と
なった1ブロックを主記憶に書き出し、主記憶の内容を
最新とする.以上の制御を可能とするためキャッシュ間
には、他のキャッシュのMCビットを操作するための信
号線208を有することに注意されたい.一方、二一・
シー・エム,トランザクションズオン コンピューティ
ング システムズ,ボリューム14,ナンバー4,ノー
ベンバー 1986の第273頁乃至第298頁(AC
M Trtansactionson Compute
r Systenv, Vo Q . 4 , No.
 4 ,November, 1 9 8 6, Pa
ges 2 7 3−2 9 8)には、共有バス・マ
ルチプロセッサシステム中のコピー・バック法による書
き込みを実行する複数のキャッシュ間の記憶内容の一致
を取るための種々の手法(キャッシュ・コヒーレンス・
プロトコール)が開示されている. その一つの手法はシナップス(Synapse)と呼ば
れる手法であり、主記憶がブロックのミスに応答すべき
か否かを示すシングル・ビット・タグを各キャッシュ・
ブロックに関して主記憶に含むことに大きな特徴を有し
ている。キャッシュがブロックの更新されたコピーを持
っている場合は、このビットは主記憶に応答が不必要で
ある旨を通知する。また、マルチプロセッサシステム中
のキャッシュ・ブロックは無効(Invalid) ,
有効(Valid :未更新、共有されている可能性有
り),更新(Dirty :更新済み、他にコピー無し
)のいずれひとつの状態に在る。
このシナップスのマルチプロセッサシステムにおいて,
第一のプロセッサからの書き込みアクセスが−そのプロ
セッサに関係した第一のキャッシュにヒ)トする場合を
想定する。このライト・ヒットに際して,第一のキャッ
シュは有効の状態から更新の状態に遷移する。また、無
効化信号が存在しないので,第一のキャッシュの処理は
下記に説明するライト・ミスと同一となる. 一方、このシナップスのマルチプロセッサシステムにお
いて、第一のプロセッサからの書き込みアクセスがその
プロセッサに関係した第一のキャッシュにヒットしない
場合を想定する.このライト・ミスに際して,リード・
ミスと同様にブロックのデータが主記憶から第一のキャ
ッシュに転送される。この転送の際に、共有バスに結合
された他のキャッシュに有効なブロック・コピーを有す
る場合は、この他のキャッシュは無効な状態とされる.
また、このライトの動作によって、第一のキャッシュに
ブロックがロードされ,その状態は更新(Dirty)
となる。さらに、主記憶中のブロック・タグがセットさ
れ、その結果主記憶はその後の該当ブロックに対する要
求を無視するようになる。以上の手法により、シナップ
スのマルチプロセッサシステムにおけるキャッシュの記
憶内容の一致が得られることができる。
その一つの手法はバークレー(Berkeley)と呼
ばれる手法であり、ブロックがキャッシュ間で共有され
る場合はキャッシューキャッシュ間の直接転送を使用し
,更新されたブロックがキャッシュ間で共有される場合
は,更新されたブロックが主記憶に書き戻されないこと
に大きな特徴を有している.この手法は、無効(Inv
alid) ,有効(Valid :未更新,共有され
ている可能性有り),更新(Dirty :更新済み、
他にコピー無し)のキャッシュ・ブロックの三状態に加
えて,共有・更新(Shared − Dirty :
更新済み,共有されている可能性有り)の追加的な一つ
の状態を必要とする。
このバークレーのマルチプロセッサシステムにおいて、
第一のプロセッサからの書き込みアクセスがそのプロセ
ッサに関係した第一のキャッシュにヒットする場合を想
定する。このライ1−・ヒットに際して、第一のキャッ
シュは有効の状態から更新の状態に遷移する。またこの
際に、共有バスに結合された他のキャッシュは無効化信
号によって無効な状態とされる。
一方、このバークレーのマルチプロセッサシステムにお
いて、第一のプロセッサからの書き込みアクセスがその
プロセッサに関係した第一のキャッシュにヒットしない
場合を想定する。このライト・ミスに際して、主記憶も
しくは更新(Dirty)の状態の他のキャッシュから
該当ブロックが第一のキャッシュに直接に転送される。
この転送に際して、該当コピーを有する第三のキャッシ
ュは無効化される。また、このライトの動作によって、
第一のキャッシュにブロックがロードされ,その状態は
更新(Dirty)となる。以上の手法により、バーク
レーのマルチプロセッサシステムにおけるキャッシュの
記憶内容の一致が得られることができる。
〔発明が解決しようとする課題〕
以上に述べた従来技術による手法によって,マルチプロ
セッサシステムのキャッシュのデーター致の問題は解決
できるが、それでもなお、従来技術の考えに従い実際に
マルチプロセッサシステムを構成すると次に述べる如き
種々の問題を生じることが本願発明者等の検討により明
らかとなった。
その問題点の第1番目は,特公昭52−14064号に
開示されているように、キャッシュの各ブロックが同じ
写しを他のキャッシュに存在するか否かの情報を保持さ
せることは、複数なハードウェアを必要とすることであ
る。例えば、あるブロックをまず第1のキャッシュが主
記憶からリード転送し、次いで第2のキャッシュが主記
憶からリード転送した場合を考える。この場合,第2の
キャッシュがリード転送した時点で、写しが複数になっ
たので、第1のキャッシュと第2のキャッシュの両方の
MCビット(マルチコビービット)を′″1″にしなけ
ればならない。第1のキャッシュにおいては主記憶バス
上の読み出しアクセスを監視していればMCビットを″
1”にできるが、第2のキャッシュは自分自身ではMC
ビットの値を決定できず、なんらかの情報伝達手段、例
えば第2図においてはMCビット操作線208を用いて
第1のキャッシュから情報を受けて、MCビットを操作
しなければならない。このために余計なハードウェアが
必要である。またこの操作は信号がキャッシュ間の信号
線208を往復するため遅れを生じる.そのため、キャ
ッシュ内部ではバスサイクルの開始から一定時間遅れた
独自のタイミングでMCビットの書き込みを行わなけれ
ばならない。しかし、この独自のタイミングは、主記憶
から読み出したデータを格納するタイミングとも同じに
なるとは限らない。このことは高速なシステムを設計す
ることを難しくし、また仮りに設計してもそのタイミン
グを管理する複雑な論理を必要とする。
第2の問題点は、公知のシナップスのマルチプロセッサ
システムにおいて、第一のキャッシュにライト・ヒット
した場合に、ヒットしているが故に主記憶から第一のキ
ャッシュに転送が本来は不必要なブロックが主記憶から
第一のキャッシュに転送されることである。このデータ
転送のためには、主記憶がリード・アクセスされる必要
が有る。
しかし、大記憶容量の主記憶のアクセス時間は一般に長
くなるので、このデータ転送は高速化が困難である。
第3の問題点は、公知のシナップスのマルチプロセッサ
システムにおいて、主記憶がブロックのミスに応答すべ
きか否かを示すシングル・ビット・タグを各キャッシュ
・ブロックに関して主記憶中に含ませる必要があるだけ
でなく、キャッシュの状態の遷移に応答してこの主記憶
中のシングル・ビット・タグを制御しなければならず煩
雑で有ると言うものである。
第4の問題点は、公知のバークレーのマルチプロセッサ
システムにおいて、キャッシュの状態が四つと多いので
、キャッシュの状態をプロセッサからのアクセスおよび
共有主記憶バスからのアドレスに応答して制御するため
のキャッシュ状態制御部のハードウェアが大型化すると
ともにその論理も複雑化すると言う問題である。
第5の問題点は、公知のバークレーのマルチプロセッサ
システムにおいて、マルチプロセッサの数とそれに対応
するキャッシュの数が多くなると、更新(Dirty)
の状態のキャッシュ中の更新の状態のデータを他のキャ
ッシュに次々に転送しなければならず、この転送の間に
更新の状態のデータを格納した更新(Dirty)の状
態のキャッシュに対する該当のプロセッサからのアクセ
スが停止されてしまうと言う問題である。例えば、第一
のプロセッサからのリード・アクセスが第一のキャッシ
ュにヒットしない場合、更新(Dirty)の状態の第
二のキャッシュから該当ブロックが第一のキャッシュに
直接に転送される。その結果、第一のキャッシュは無効
から有効の状態に遷移し、第二のキャッシュは更新から
共有・更新(Shared − Dirty)の状態に
遷移する.次に、第三のプロセッサからのリード・アク
セスが第三のキャッシュにヒットしない場合、共有・更
新の状態の第二のキャッシュから該当ブロックが第三の
キャッシュに直接に転送される.その結果、第三のキャ
ッシュは無効から有効の状態に遷移し、第二のキャッシ
ュは共有・更新の状態を保持する。さらに、第N番目の
プロセッサからのリード・アクセスが第N番目のキャッ
シュにヒットしない場合も、上記と同様となりこれらの
連続した直接転送中は第二のプロセッサから第二のキャ
ッシュへのアクセスは連続して中断されると言う問題で
ある。
その他の問題点はデータ一致と関係のあるブロック転送
の間に、他のバスマスタ(例えば、他のキャッシュもし
くは入出力装置)がバスの使用を要求する場合,主記憶
使用待ち時間の増大をもたらすことである。このことは
主記憶上でのバス使用権の移動を柔軟に行うことの妨げ
になり,入出力装置のパス割込み使用を困難とする。例
えば、特公昭52−14064号において、ライト・ア
クセスが第一のキャッシュにミスしたときには、まず、
ライト・アクセスのアドレスに該当するデータが他のキ
ャッシュの1ブロックに所属していれば,この該当デー
タを無効化する.次いで該1ブロックを主記憶から第一
のキャッシュに転送(ブロック転送)した後、第一のキ
ャッシュはブロック転送されたデータ上にライト・アク
セスのデータを書き込む。一方、ブロック転送される1
ブロックは複数χ例えば4個)のワードからなっている
ので、この主記憶から第一のキャッシュへの1ブロック
の転送は複数のバス・アクセスを要する.従って、第一
のキャッシュはブロック転送された最初のワードのデー
タ上にライト・アクセスのデータを書き込む。一方、も
しこのブロック転送時の複数回のバス・アクセスの間に
さらに別のバスマスタであるところの第二のキャッシュ
もしくは入出力装置が主記憶へのアクセスを試みても、
この第二のキャッシュからのアクセスは受入れられない
場合がある.なぜならば、第一のキャッシュがちょうど
主記憶からブロック転送しているブロックのデータを別
のバスマスタが要求した可能性があるからである。しか
し,ライト・ミスを生じていた第一のキャッシュへのブ
ロック転送の1ブロックの第一のワードの転送の後、こ
の第一のキャッシュの状態は無効から更新の状態に既に
遷移している.従って、この更新の状態に遷移済みの第
一のキャッシュ中には主記憶からブロック転送されるべ
きブロックのデータがすべて揃っていないため、完全な
ワードのlブロックを第一のキャッシュから主記憶へ書
き戻す処理を行うことはできない。よって、ライト・ミ
スを生じた第一のキャッシュがブロック転送を行ってい
る最中に第一のキャッシュ内で更新状態にあるいずれか
のブロックのデータを他のバスマスタがアクセスした場
合には、常に主記憶から第一のキャッシュへのブロック
転送の完了時まで別のバスマスタの該当ブロックへのア
クセスは待たされることになる。このように本発明の以
前に公知の従来技術においてはブロック転送の複数回の
主記憶バスアクセスの間に別のバスマスタに主記憶バス
のバス使用権を譲渡し、なおかつ上に記載した主記憶使
用待ち時間の増大をもたらさないような機構を設けたも
のはなかった。
本発明は上記の如き本発明者による検討結果を基にして
なされたものであり、その総括的な技術目標は上述した
従来技術の有する問題点の少なくともいくつかを解消す
ることの可能なマルチプロセッサシステムを提供するこ
とにある。
本発明の目的のひとつは、複数のキュッシュ間で同じコ
ピーのデータが格納されていること示す特殊なビット情
報を各キャッシュ内に含ませることの不必要なマルチプ
ロセッサシステムを提供することにある。
本発明の目的の他のひとつは、キャッシュの有効・未更
新のブロックへのライト・ヒット時に、主記憶からこの
キャッシュへヒット・ブロックのデータ転送の不必要な
マルチプロセッサシステムを提供することにある。
本発明の目的の他のひとつは,ブロックのミスに主記憶
が応答すべきか否かを示す特殊なビット情報を主記憶内
に含ませることの不必要なマルチプロセッサシステムを
提供することにある。
本発明の目的の他のひとつは、キャッシュの状態数をマ
ルチプロセッサ中のキャッシュ・コヒーレンスに必要な
最小限の値に留めるとともに,このキャッシュの状態を
制御する制御部のハードウェアの大型化を回避すること
の可能なマルチプロセッサシステムを提供することにあ
る。
本発明の目的の他のひとつは、プロセッサおよびキャッ
シュの数が増大された場合も、更新(Dirty)の状
態のキャッシュから他の複数のキャッシュへ次々にデー
タ転送の要求に応答することが無く、該当のプロセッサ
からのアクセス要求に速やかに応答することの可能なマ
ルチプロセッサシステムを提供することにある。
本発明の好適な一実施形態によれば、キャッシュのミス
に際しての主記憶から該キャッシュへのブロック転送の
複数回の主記憶バスアクセスの間に,他のバスマスタに
共有・主記憶バスのバス使用権を譲渡し、かつ主記憶使
用待ち時間を小さく抑えることも可能となる。
〔課題を解決するための手段〕
上記の種々の目的の少なくともいくつかを達或すること
を可能とするごとく、本発明の代表的な実施例によるマ
ルチプロセッサシステムは:アドレスを発生する第1の
プロセッサ(1001)と, 上記第1のプロセッサ(1001)からの上記アドレス
に従ってアクセスされる第1のキャッシュメモリ (1
00:#1)と, アドレスを発生する第2のプロセッサ(1002)と, 上記第2のプロセッサ(1 0 0 2)からの上記ア
トレスに従ってアクセスされる第2のキャッシュメモリ
(100:#2)と, 上記第1のキャッシュメモリ(100:#1)を介して
伝達される上記第1のプロセッサ(1001)からの上
記アドレスおよび上記第2のキャッシュメモリ(100
:#2)を介して伝達される上記第2のプロセッサ(1
 0 0 2)からの上記アドレスが伝達されるアドレ
スバス(1 2 3)と、上記第1のキャッシュメモリ
(100:#1)を介して上記第1のプロセッサ(10
01)に接続され、上記第2のキャッシュメモリ(10
0:#2)(22)を介して上記第2のプロセッサ(1
 0 0 2)に接続されたデータバス(1 2 6)
と、 上記第1のキャッシュメモリ(100:#1)と上記第
2のキャッシュメモリ(too:#2)とに接続された
無効化信号線(PURGE 二1 3 1)と、 上記アドレスバス(123)および上記データバス(1
26)に接続された記憶手段(1004)とを具備して
なり、 上記第1のキャッシュメモリ(100:81)および上
記第2のキャッシュメモリ(100:#2)は少なくと
もコピー・バック法で動作し、上記第1のキャッシュメ
モリ(100:#1)のデータの状態は、該キャッシュ
メモリ内の該当データが無効であることに対応する第1
の状態と、該キャッシュメモリ内の該当データが有効で
ありかつ未更新であることに対応する第2の状態と、該
キャッシュメモリ内の該当データが有効でありかつ更新
済みであることに対応する第3の状態とのみから本質的
になる群から選ばれたひとつの状態に存在し, 上記第2のキャッシュメモリ(100:#2)のデータ
の状態は、上記群から選ばれたひとつの状態に存在し, 上記第1のプロセッサ(1001)からのライト・アク
セスが上記第1のキャッシュメモリ(100:#1)に
ヒットした際に、上記第1のキャッシュメモリ(100
:#1)のデータの状態は上記の有効・未更新の第2の
状態から上記の有効・更新済みの第3の状態に遷移する
一方、さらに上記第1のキャッシュメモリ(100:#
1)は上記ライト・ヒットのアドレスと無効化信号とを
上記アドレスバス(1 2 3)と上記無効化信号線(
PURG.E : 1 3 1)にそれぞれ出力し、上
記第2のプロセッサ(1 0 0 2)からのライト・
アクセスが上記第2のキャッシュメモリ(100:#2
)にヒットした際に、上記第2のキャッシュメモリ(1
00:#2)のデータの状態は上記の有効・未更新の第
2の状態から上記の有効・更新済みの第3の状態に遷移
する一方、さらに上記第2のキャッシュメモリ(100
:#2)は上記ライト・ヒットのアドレスと無効化信号
とを上記アドレスバス(1 2 3)と上記無効化信号
線(PURGE : 1 31)にそれぞれ出力し,上
記第1のプロセッサ(1001)からのライト・アクセ
スが上記第1のキャッシュメモリ(100:#1)にミ
スした際に、上記第1のキャッシュメモリ(100:$
1)は上記ライト・ミスのアドレスを上記アドレスバス
(123)に出力することによって上記記憶手段(10
04)からエブロックのデータをブロック・リードする
一方、無効化信号を上記無効化信号線(PURGE:l
31)に出力し、その後にこのブロック・リードされた
上記1ブロックへの上記ライト・ミスに関係したデータ
の書き込みを上記第1のキャッシュメモリ(100:#
1)が実行し、上記第2のプロセッサ(1002)から
のライト・アクセスが上記第2のキャッシュメモリ(1
00:#2)にミスした際に,上記第2のキャッシュメ
モリ(100:#2)は上記ライト・ミスのアドレスを
上記アドレスバス(1 2 3)に出力することによっ
て上記記憶手段(1004)から1ブロックのデータを
ブロック・リードする一方、無効化信号を上記無効化信
号線(PURGE:131)に出力し、その後にこのブ
ロック・リードされた上記1ブロックへの上記ライト・
ミスに関係したデータの書き込みを上記第2のキャッシ
ュメモリ(100:#2)が実行し、上記アドレスバス
(123)にリードおよびライトのいずれかに関係する
アクセス要求のアドレスが供給されている際に、上記第
1のキャッシュメモリ(100:#1)および上記第2
のキャッシュメモリ(100:#2)の一方のキャッシ
ュが該アドレスに関係した有効・更新済みの第3の状態
のデータを保持している場合、該キャッシュは該データ
を上記記憶手段(1004)に書き戻す一方、上記アド
レスに関係した上記データを上記第3の状態から有効・
未更新の第2の状態に遷移せしめる。
〔作用〕
上記の構或によるマルチプロセッサシステムは、キャッ
シュ・コヒーレンスに関係する動作を下記のように実行
する。
まずマルチプロセッサにおいて、同一のアドレスに関係
して有効・未更新の第2の状態のデータと有効・更新済
みの第3の状態のデータとが第1のキャッシュと第2の
キャッシュにそれぞれ同時に存在するとキャッシュ・コ
ヒーレンスが破られ,これに対して第1のキャッシュと
第2のキャッシュの一方のキャッシュが有効・更新済み
の第3の状態になる場合に他方のキャッシュを無効の第
1の状態とすることによりキャッシュ・コヒーレンスが
保たれることができる. 従って、第1のプロセッサ(1001)からのライト・
アクセスが第1のキャッシュメモリ(100:#1)に
ヒットした際に、第1のキャッシュメモリ(100:#
1)のデータの状態は有効・未更新の第2の状態から有
効・更新済みの第3の状態に遷移する一方、さらに第1
のキャッシュメモリ(100:#1)はライト・ヒット
のアドレスと無効化信号とを上記アl・レスバス(1 
2 3)と無効化信号線(PURGE:↓31)にそれ
ぞれ出力する。従って,第2のキャッシュメモリ(10
0:#2)中にこのアドレスに関係した有効・未更新の
第2の状態のデータを保持している場合、この第2の状
態のデータは無効の第1の状態とされるのでキャッシュ
・コヒーレンスが保たれる。また、第2のプロセッサ(
1 0 0 2)からのライト・アクセスが第2のキャ
ッシュメモリ (100:#2)にヒットした際も、上
記と同様にして,キャッシュ・コヒーレンスが保たれる
従って、キャッシュへのライト・ヒット時には,共有・
記憶バスにはライト・ヒットのアドレスと無効化信号と
が出力されるが、このライト・ヒット時は記憶手段(1
004)からのブロック転送が行われることが無い。
また、第1のプロセッサ(1001)からのライト・ア
クセスが第1のキャッシュメモリ(100:#1)にミ
スした際に、第1のキャッシュメモリ(100:#1)
はライト・ミスのアドレスをアドレスバス(1 2 3
)に出力することによって記憶手段(1004)から1
ブロックのデータをブロック・リードする一方、無効化
信号を無効化信号線(PURGE : 1 3 1)に
出力し,その後にこのブロック・リードされた上記lブ
ロックへのライト・ミスに関係したデータの書き込みを
上記第1のキャッシュメモリ(↓OO:#1)が実行す
る。従って、ライト・ミスに関係したデータの書き込み
に際して、第1のキャッシュメモリ(↓00:#1)が
無効の第1の状態から有効・更新済みの第3の状態に遷
移する一方、第2のキャッシュメモリ(100:#2)
は有効・未更新の第2の状態から無効の第1の状態に遷
移するのでキャッシュ・コヒーレンスが保たれる。また
、第2のプロセッサ(L O O 2)からのライト・
アクセスが第2のキャッシュメモリ(↓OO:#2)に
ミスした際も、上記と同様にして、キャッシュ・コヒー
レンスが保たれる。
さらに,アドレスバス(123)にリードおよびライト
のいずれかに関係するアクセス要求のアドレスが供給さ
れている際に、第1のキャッシュメモリ(100:#1
)および第2のキャッシュメモリ(100:#2)の一
方のキャッシュ(ただしキャッシュメモリ自身がアクセ
ス要求を発行している時は、そのアクセス要求を発行し
ているキャッシュメモリを除く)が該アドレスに関係し
た有効・更新済みの第3の状態のデータを保持している
場合、該キャッシュは該データを記憶手段(1004)
に書き戻すので、第1のキャッシュメモリ(100:#
1)および第2のキャッシュメモリ (100:#2)
はコピー・バック法における有効・更新済みの第3の状
態のデータの記憶手段(1004)へのコピー・バック
を実現できる。
また、キャッシュメモリのデータが無効である第1の状
態と、有効・未更新の第2の状態と、有効・更新済の第
3の状態とのキャッシュ内部での識別は無効・有効を示
す有効性ビット(Vビット)と未更新・更新済みを示す
更新ビット(Uビット)とを用いることで十分であり、
複数のキャノシュ間で同じコピーのデータが格納されて
いることを示す特殊なビット情報を各キャッシュ内に含
ませることは不必要となる。さらに,キャッシュの状態
数をマルチプロセッサシステムのキャッシュ・コヒーレ
ンスに必要な最小限の値である3に留めることが可能と
なる。
さらに、キャッシュのリード・ミスに際して、他のキャ
ッシュから有効・更新済みの第3の状態のブロックが記
憶手段(1004)へ転送された後、記憶手段(100
4)から該リード・ミスを生じたキャッシュへブロック
転送が行われる。
方、キャッシュのライト・ミスに際して、他のキャッシ
ュから有効・更新済みの第3の状態のブロックが記憶手
段(1004)へ転送された後、記憶手段(1004)
から該ライト・ミスを生じたキャッシュへブロック転送
が行われる。従って、ブロックのキャッシュのミスに記
憶手段(1004)が応答すべきか否かを示す特殊なビ
ット情報を記憶手段(1004)内に含ませることは不
必要となる。
また、プロセッサおよびキャッシュの数が増大された場
合も、有効・更新済みの第3の状態のキャッシュのブロ
ックがアクセス要求された場合,この第3の状態のキャ
ッシュのブロックは該当キャッシュから記憶手段(10
04)へ書き戻され、また該当キャッシュは第3の状態
から有効・未更新の第2の状態に遷移する。従って、当
初には有効・更新済みの第3の状態であったキャッシュ
が有効の第2の状態に遷移した後は他の複数のキャッシ
ュからの次々のデータ転送の要求に応答することが無く
、その応答を記憶手段(1004)が代行する。かくし
て、当初は有効・更新済みの第3の状態であったキャッ
シュは、該当のプロセッサからのアクセス要求に速やか
に応答することが可能となる。
本発明のその他の目的と他の特徴は、以下の実施例の説
明から明らかとなろう。
〔実施例〕
マルチプロセッサシステムの  の 第1図は本発明の一実施例によるマルチプロセッサシス
テムの全体図を示す。
1001.1002はマイクロプロセッサ(Micro
processor Unit)であり、それぞれ個別
にキャッシュメモリ100 (#1,#2)を有する。
第一のプロセッサ1001と第一のキャッシュ100 
($1)とはプロセッサアドレス線121,プロセッサ
データ線124を介して結合され、同様に第二のプロセ
ッサ1002と第二のキャッシュ100 (#2)とは
プロセッサアドレス121,プロセッサデータ線124
を介して結合されている。
1003は入出力装置、1004は主記憶装置、100
5は特殊応答制御回路、1006はパスアビターである
。マイクロプロセッサ1001.1002もしくは入出
力装置1003から主記憶装置1004へのアクセスは
すべて主記憶バスを介して行われる。
この主記憶バスは、アドレス線123,データ線126
、無効化信号線131(PURGE信号),メインメモ
リ・ウェイト信号線(MWAIT−N信号)132、ブ
ロック転送信号1 3 3 (BLOCK信号)、デー
タ転送終了信号134(DC信号),リード・ライト識
別信号135(R/W信号)、その他通常のバス制御信
号(バス・リクエスト信号線136、バス・アクノリッ
ジ信号線137)を含んでいる. 主記憶装置1004はライト・アクセス(R/W信号1
35=ライト)かつ無効化サイクル(PURGE信号1
31=1)以外の条件のときアクセスされ,主記憶素子
のアクセス速度に合わせてDC信号134を返す。ライ
ト・アクセス(R/W信号135=ライト)かつ無効化
サイクル(PURGE信号131=1)の時には、特殊
応答制御装置1005がDC信号134を返す。
この場合、DCを返すまでの時間はキャッシュメモリに
おいて無効化が行われるに十分な時間あればよく、主記
憶素子のアクセス時間より早く、アクセスを完了させる
ことが可能である。
各キャッシュ100(#1,#2)のMWA I T−
N信号132はオープンドレインタイプの出力回路によ
って構成され、さらに抵抗器1006を介して、正の電
源端子+Vccに接続されている。
オープンドレイン出力端子を複数接続した場合,オープ
ンドレイン出力端子のいずれかの出力がL(ロー)レベ
ルならばメインメモリ・ウェイト信号線132はLレベ
ルになる。以上の結果,各キャッシュ100 (#1,
#2)と入出力装置1003のMWAIT−N信号13
2は、すべてのキャッシュのMWAIT−N信号132
の負論理の論理和となる. また、第1のキャッシュメモリ(100:#1)および
第2のキャッシュメモリ(100:#2)は少なくとも
コピー・バック法で動作する。また,高信頼性を要求さ
れる特殊なデータに関しては、第1のキャッシュメモリ
(100:#1)および第2のキャッシュメモリ(10
0:#2)はライト・スルー法で動作する。この結果,
高信頼性を要求される特殊なデータはキャッシュだけで
なく一般にFCC (エラー修正コード)の付加された
主記憶1004にも常に書き込まれるので、万一キャッ
シュにソフト・エラー等の誤動作が生じても上記特殊デ
ータの破壊が主記憶1004では回避されることができ
る。
また,第1のキャッシュメモリ(100:$1)のデー
タの状態は、該キャッシュメモリ内の該当データが無効
であることに対応する第1の状態と、該キャッシュメモ
リ内の該当データが有効でありかつ未更新であるあるこ
とに対応する第2の状態と、該キャッシュメモリ内の該
当データが有効でありかつ更新済みであるあることに対
応する第3の状態とのみから本質的になる群から選ばれ
たひとつの状態に存在する。さらに、第1のキャッシュ
メモリ(100:81)と第2のキャッシュメモリ(1
00:#2)とはその内部構或および内部動作が全く同
一となっているため、第2のキャッシュメモリ (10
0:#2)のデータの状態の数は、第1のキャッシュメ
モリ(100:#1)のデータの状態の数と同一である
第1のプロセッサ(1 0 0 1)からのライト・ア
クセスが第1のキャッシュメモリ(100:#1)にヒ
ットした際に、もし第1のキャノシュメモリ(100:
#1)のデータの状態が有効・未更新の第2の状態であ
るならば、ヒット後には有効・更新済みの第3の状態に
遷移する一方、さらに第1のキャッシュメモリ(100
:#1)はライト・ヒットのアドレスと無効化信号とを
アドレスバス(123)と無効化信号線(PURGE:
131)にそれぞれ出力する。
第2のプロセッサ(工o O 2)からのライト・アク
セスが第2のキャッシュメモリ(100:#2)にヒン
トした際に、もし第2のキャッシュメモリ(100:#
2)のデータの状態が有効・未更新の第2の状態である
ならば、ヒット後には有効・更新済みの第3の状態に遷
移する一方、さらに第2のキャッシュメモリ (100
:#2)はライト・ヒットのアドレスと無効化信号とを
アドレスバス(1 2 3)と無効化信号線(PURG
E:l31)にそれぞれ出力する。
第1のプロセッサ(1001)からのライト・アクセス
が第1のキャッシュメモリ(100:#1)にミスした
際に、第1のキャッシュメモリ(100:#1)はライ
1〜・ミスのアドレスをアドレスバス(123)に出力
することによって主記憶(1004)から■ブロックの
データをブロック・リードする一方,無効化信号を無効
化信号線(PURGE : 1 3 1)に出力し、そ
の後にこのブロック・リードされた1ブロックへのライ
ト・ミスに関係したデータの書き込みを第1のキャッシ
ュメモリ(100:31)が実行する。
第2のプロセッサ(1 0 0 2)からのライト・ア
クセスが第2のキャッシュメモリ(100:#2)にミ
スした際に、第2のキャッシュメモリ(100:$2)
はライト・ミスのアドレスをアドレスバス(123)に
出力することによって主記憶(1004)からエブロッ
クのデータをブロック・リードする一方、無効化信号を
無効化信号線(PURGE : 1 3 1)に出力し
、その後にこのブロック・リードされた1ブロックへの
ライト・ミスに関係したデータの書き込みを上記第2の
キャッシュメモリ(100:$2)が実行する。
アドレスバス(123)にリードおよびライトのいずれ
かに関係するアクセス要求のアドレスが供給されている
際に,第1のキャッシュメモリ(100:#1)および
第2のキャッシュメモリ(100:#2)の一方のキャ
ッシュが該アドレスに関係した有効・更新済みの第3の
状態のデータを保持している場合、該キャッシュは該デ
ータを主記憶(1004)に書き戻す一方、アクセス要
求のアドレスに関係したデータを第3の状態から有効・
未更新の第2の状態に遷移せしめる。
キャッシュメモリの    の 第2図に、第1図のマルチプロセッサシステムに使用さ
れるキャッシュ100 (#1,#2)の内部構或を示
す。
このキャッシュの破線100の内部の回路は、半導体V
LS Iとしてひとつの半導体チップ上に集積化されて
いる。
キャッシュ100(#1,#2)はプロセッサ・アドレ
ス線121とプロセッサ・データ線124とを介してプ
ロセッサ1001または1002と、さらに、主記憶・
アドレス線123,主記憶・データ線126,無効化信
号線131 (PURGE信号),メインメモリ・ウェ
イト信号線(MlilAIT一N信号)132,ブロッ
ク転送信号133(BLOCK信号),データ転送終了
信号134(DC信号),リード・ライト識別信号13
5(R/W信号),バス・リクエスト信号線136(B
R信号),バス・アクノリッジ信号線137(BA信号
)を介して主記憶バス,他のキャッシュ,入出力装置1
003,主記憶1004,特殊応答制御装置1005に
結合されることができるゆまた、キャッシュ100はア
ドレスアレイ101 ,データアレイ102,プロック
バッファ103,ストアバッファ104,キャッシュ制
御回路105,ブロック転送アドレスレジスタ106,
主記憶監視アドレスレジスタ107,アドレス線のスイ
ッチ回路111,112,データ線のスイッチ回路11
3,114,115,116内部アドレス線122、内
部データ線125等から構威されている. また、キャッシュ100は,プロセッサからの32ビッ
トのアドレスと32ビットのデータとを処理することが
可能である.アドレス線121,122,123は上位
アドレスの30ビットを与える30ビット幅のアドレス
線と、下位アドレスの2ビットをデコード済みの形で与
える4ビット幅のバイトコントロール線によって構威さ
れ、デ−1vA124−126は32ビット幅である.
尚、データバス127を介してプロックバッファ103
からデータアレイ102へ、1度にl6バイトのデータ
を転送することができる。
アドレスアレイ101は、キャッシュに格納されたデー
タに対応するアドレス情報とこの格納データの有効性お
よび更新等に関する情報を格納するものである.一方、
データアレイ102は,このアドレスアレイ101に格
納されたアドレス情報に対応するデータを格納するもの
である.尚、本実施例においては、アドレスアレイ10
1、データアレイ102はマッピング4ウエイのセット
・アソシアティブをとる。
アドレスアレイ101の アドレスアレイ101の内部構戊を第3図に示す。アド
レスアレイ101の1列はタグ(データがどの位置の写
しであるかを示すための、上位アドレスの記憶部),お
よびデータが有効であることを示す有効性ビット(Vビ
ット)、データがキャッシュ内でのみ更新されたことを
示す更新ビット(Uビット)、データをキャッシュと主
記憶装置との間でブロック転送中であることを示すブロ
ック転送ビット(BTビット)の3つのビットからなる
。そして下位アドレスによってその列のうち4列が選択
される。
第2図に示したように、アドレスアレイ101は2ボー
トのRAMによって構或されている。従って、アドレス
アレイ101のタグ・アドレス,Vビット,Uビット,
BTビットは、プロセッサからのアクセスによる内部ア
ドレス122と主記憶バスへのアクセスによる主記憶ア
ドレス123の2つの入力に対して同時に検索されるこ
とが可能である. 既に説明したように本発明のキャッシュ100のデータ
の状態は、無効の第1の状態(V=′″O″)、有効・
未更新の第2の状態(V=”1”かつU=14 Q I
1 )、有効・更新済みの第3の状態(V=“l”かつ
U=“1”)、合計3つの状態で実現できる.そして、
ブロック転送中のブロックのBTビットは、“l”とさ
れる.つまり、ブロック転送の開始時にBT=“1 u
とし、ブロック転送の完了時にBT=”O”とする. プロセッサがキャッシュにデータを要求した時、この要
求されたデータが該キャッシュ内に存在することをヒッ
ト,一方存在しないことをミスと一般に呼ばれている.
ヒット、ミスの判定はアドレスアレイ101にアクセス
・アドレスを与え、アドレスアレイ101を検索して行
う.検索アドレスの下位ビットに従ってアドレスアレイ
101から読み出された4列の情報のうちいずれかl列
で、タグ・アドレス(上位アドレス)が検索アドレスの
上位アドレスと一致し、かつVビットが11 1 Qと
いう2つの条件を満たせばヒントである6そしてアドレ
スアレイ101はプロセッサからのアクセスによる内部
アドレス122の検索に対し、いずれか1列を選択し、
その列のVビット、Uビットの値を信号線141,14
2にそれぞれ出力する。この1列は、アクセスがヒット
した時にはヒットした列となり、アクセスがミスしたと
きにはブロック置換のために追い出される列(すなわち
、検索アドレスの下位アドレスとは一致するが、検索ア
ドレスの上位アドレスとは一致しなかった列)となる。
そして選択したブロックの状態を制御回路105内で判
定して、状態処理部151に与える。ゲート152の記
号はインバータであり、入力信号の反転値を出力する.
ゲート153の記号はANDゲートであり、入力値の論
理積を出力する。よって、信号線145は、プロセッサ
からアクセスされたブロックが無効の第1の状態(v=
”o’”)にあることを示す。信号線146は、プロセ
ッサからアクセスされたブロックが有効・未更新の第2
の状態(V=”1’″かつU= ”O” )L.:.あ
ルコとを示す。信号線147は,プロセッサからアクセ
スされたブロックが第3の状態(V=”1”かつU=”
1”)にあることを示す。信号線145,146,14
7を状態処理部↓5lに送るので,この状態処理部15
1はヒット時にはヒッ1〜したブロックの状態、ミス時
にはブロック置換用に追い出すブロックの状態を知りう
る。
内部アドレス122でなく、主記憶へのアクセス・アド
レス123による検索に対しても,以上に述べたプロセ
ッサからのアクセス・アドレスによる検索と同様な動作
が行われる。すなわち、主記憶へのアクセス・アドレス
123による検索に従って選択されたVビット,Uビノ
トが信号線143,144にそれぞれ出力される。従っ
て、制御回路105内のインバータおよびANDゲート
が信号線143,144のVビット,Uビットに応答し
て無効の第1の状態、有効・未更新の第2の状態、有効
・更新済みの第3の状態の検出信号をそれぞれ信号線1
48,149,150を介して状態処理部151に送る
プロ・・クバ・ファ103の プロックバソファ103は、主記憶からキャッシュメモ
リへのブロック転送に際して1ブロック分(4ワード)
のブロック転送データを一時的に保持する能力を持って
いる。また、ブロックバソファ↓03は2ボートのRA
Mによって構I戊されていて、主記憶からデータを受け
ると同時に、それとは異なるアドレスのデータをプロセ
ッサに供給することが可能である。
一方,プロセッサからキャッシュもしくは主記憶へのラ
イト・アクセスに際して、このプロツクバッファ103
はこのアクセスに一切関与することは無い。
ストアバッファ104の 並 ストアバッファ104は、プロセッサからキャッシュも
しくは主記憶へのライト・アクセスに際して、プロセッ
サからの書き込みアドレス(121)とバイトコン1一
ロールとを先入れ先出し(Firstin fist 
out)の順序に従ってバツファリングするとともに、
プロセッサからの書き込みデータを先入れ先出し(Fi
rst in fist out)の順序に従ってバッ
ファリングする。
しかし、プロセッサがストアバツファ1 0 4内のい
ずれかのデータのリードを要求した時には、先入れ先出
しの順序と関係なくストアバッファ104からデータを
プロセッサに速やかに供給することができる。またプロ
セッサがストアバッファ104内のいずれかのアドレス
と同じアドレスのデータのライトを要求した時には、先
入れ先出しの順序と関係なくストアバッファ104内の
同じアドレスの存在する箇所にデータを速やかに書き込
むことができる。
以上説明したようにプロセッサからの書き込みによるア
ドレス(12↓)およびデータ(124)はストアバッ
ファ104に一旦バッファリングされて,その後ストア
バノファ104から読み出されるようになっている。
ただし,特別な場合(例えばメモリマツプド(Memo
ry Mapped :主記憶のアドレス空間の番地に
割当てられた)の入出力装置の記憶機構(コントロール
レジスタ、ステータスレジスタ等の入出力装置の動作に
関係した情報を記憶する機構)をアクセスする時、また
主記憶のリード・モデファイ・ライトをサポートするプ
ロセッサープロセッサ間通信のためのデータをアクセス
する時、またプロセッサへの割込み要求信号に起因した
アクセスがキャッシュに転送された時),その時点でス
トアバッファ104にバッファリングされている全デー
タをアドレスアレイ101,データアレイ102もしく
は主記憶に吐き出すと言う処理をすべて完了させる。そ
の後に、キャッシュメモリを通過させた状態で,すなわ
ち、スイッチ回路111,112,113  (もしく
は114),115 (もしくはl16)を論理的に導
通状態とし、プロセッサから主記憶バスに(もしくは主
記憶バスからプロセッサへ)データを伝達する。
以上のようにストアバッファ104はデータをバッファ
リングする目的でごく一時的にデータを保有する点が、
アドレスアレイ101,データアレイ102と異なる.
ストアバッファ104にアドレスおよびデータをバクフ
ァリングすることによってプロセッサの書き込みアクセ
スとキャッシュ内部の処理およびキャッシュと主記憶と
の間の処理とは並列して実行されるので,キャッシュへ
の書き込みアクセスの待機・遅延は非常に小さくてすむ
。なお、ストアバッファ104にたまっているデータは
、データの一致制御の対象から除外される.なぜならス
トアバッファ104は一時的にアドレスおよびデータを
蓄えるだけであり、プロセッサープロセッサ間でデータ
の送信・受信を行うためには、プロセッサープロセッサ
間でデータの送信・受信が実行される旨の通信を必ず行
い、この通信の時点でそれ以前の書き込みのアドレスお
よびデータはすべてストアバッファ104からアドレス
アレイ101,データアレイ102もしくは主記憶に吐
き出されて(書き戻されて)いるからである. その逆にプロックバッファ103にたまっているデータ
は,主記憶バスのアクセスに際してのデータの一致制御
の対象に含める必要がある。このためにはプロソクバッ
ファ103のデータを必要に応じて無効化する必要があ
るが、プロックバツファ103のアドレスのタグ部が常
にアドレスアレイ101のアドレスのタグ部となってい
るので、アドレスアレイ103のタグに該当するVビツ
1・をIt O I+とする無効化処理によって実現で
きる。
キャッシュ制御  105の キャッシュ制御回路105は,キャッシュメモリ内の制
御手順を管理するものである。
制御回路105と主記憶バスの間には、無効化信号gi
3i (PURGE信号),メインメモリ・ウェイト信
号線132 (MWAIT−N信号),ブロック転送信
号線133 (BLOCK信号),バスサイクル完了信
号線134(DC信号),リード・ライト信号線135
(R/W信号),バス・リクエスト信号線136(BR
信号),バス・アクノリッジ信号線137(BA信号)
等が設けられている. 他のキャッシュを無効化すべき時に、制御回路105は
PURGE信号131を“1”のレベルに7サー卜する
。すなわち、プロセッサからキャッシュへのアクセスが
ライト・ヒットもしくはライト゜ミスの場合に、このキ
ャッシュはPURGE信号131を41 1 I1のレ
ベルにアサー卜する.逆に、他のキャッシュから7サー
卜されたPURGE信号131を受けた時には,主記憶
バスのアドレス123がアドレスアレイ101にヒット
した際に該当する列のVビットを′゛O゜“とする無効
化動作の準備を制御回路105が開始する. MWAIT−N信号132は主記憶と他のキャッシュと
の間のデータ転送を中断するために設けられる負論理信
号アサートの割み込信号であり、逆にMWAIT−N信
号132が他のバスマスタによってアサー卜されたなら
ばその時点でMIIAIT一N信号132を受けたキャ
ッシュの主記憶へのアクセスは中断される。ただし、負
論理信号のアサートとは電気信号のL(低)レベルに相
当する.例えば、リード・ミスもしくはライト・ミスの
際に第一のキャッシュは主記憶にブロック転送のリード
・アクセスを要求する。このリード・アクセスのアドレ
スに関係して有効・更新済みの第3の状態のブロックを
第二のキュッシュが保有しいている場合は、この第二の
キャッシュはMWA I T一N信号132をアサー卜
することによって第一のキャッシュの主記憶へのアクセ
スをウェイトさせる.このウェイトの間に、第二のキャ
ッシュは有効・更新済みの第3の状態のブロックを主記
憶にブロック転送によって書き戻す。このブロック転送
の終了の後に、第二のキャッシュはMWAIT −N信
号132をネゲートすることによって第一のキャッシュ
の主記憶へのアクセス・ウェイトを解除する.このよう
にして、第一のキャッシュは第二のキャッシュの更新デ
ータを主記憶を介して獲得することができる。
BLOCK信号133は1ブロック分のデータを連続し
てキャッシュから主記憶もしくは主記憶からキャッシュ
へ転送する時に、該転送を要求するキャッシュによって
アサー卜される。第二のキャッシュが主記憶との間でブ
ロック転送していることの事実は、このBLOCK信号
133のレベルを監視することによって第一のキャッシ
ュにより把握されることができる。
DC信号134は,他のバスマスタによるメモリバスサ
イクルの完了時にキャッシュに通知され,通知を受けた
キャッシュは主記憶へのアクセスが可能となったことを
知ることができる。
R/W信号135は、キャッシュを介してのプロセッサ
から主記憶へのアクセスがリード・アクセスであるかラ
イト・アクセスであるかを識別をする信号である。さら
に、他のバスマスタによる主記憶へアクセスがリード・
アクセスであるかライト・アクセスであるかをキャッシ
ュが知ることができる。
BR信号136は、主記憶バスのバス使用権を獲得する
ため、バスマスタからバス・アビターに送られるバス・
リクエスト信号である。
BA信号137は、バス・アビターがバス・リクエスト
信号136(BR信号)を発生したバスマスタにバス使
用権を付与する際に、バス・アビターによツてアサー卜
されるバス・アクノリッジ信号である。
キャッシュ制御回路105においては,後に詳細に説明
する無効化専用バスサイクルの発行(キャッシュへのラ
イト・ヒット時の該キャッシュから主記憶バスへのライ
ト・ヒットのアドレスと無効化信号の出力)を行うか行
わないか選択することが可能である.その設定は、制御
回路105内のエビットのレジスタ108で行う。レジ
スタ108の値が“1″のときを無効化専用バスサイク
ル選択モードとし、そのときは無効化専用バスサイクル
を行うが、レジスタ108の値がIt O IIのとき
には無効化専用バスサイクルをすべて省略する.すなわ
ち、コピー・バック法によるキャッシュ記憶を行う番地
に他のバスマスタがアクセスすることのないシステム(
例えば、コピー・バック法で書き込みを行う二つのキャ
ッシュのアクセス領域が互いに異なったシステム)なら
ば、無効化専用バスサイクルを省いてもデータの一致に
関し何ら支障はなく,無効化専用バスサイクルを行わな
い分、処理効率を高めることが可能である。
また、キャッシュ制御回路105においては、本実施例
において、後の第6図の動作フローで詳細に説明するフ
ル書き込み化処理を主記憶装置に行うか行わないかを選
択することが可能である。
その設定は制御回路105内の1ビットのレジスタ10
9で行う。レジスタ109の値が″↓”の時をフル書き
込み化処理モードとし,フル書き込みを行う。なお、両
レジスタエ08,↓09の値は、プロセッサから設定可
能なフラグである。
このキャッシュ制御回路105は、プロセッサからのア
クセスおよび主記憶バスからのアクセスに応答して以下
に説明するように種々の動作を実行する。
讐    バスサイクル まず、第1のプロセッサ(1 0 0 1)からのライ
ト・アクセスが第1のキャッシュメモリ(100:#1
)にヒソトした際に、もし第1のキャッシュメモリ(1
00:#1)のデータの状態が有効・未更新の第2の状
態であるならば、ヒット後は有効・更新済みの第3の状
態に遷移する一方、さらに第1のキャッシュメモリ(1
00:81)はライト・ヒットのアドレスと無効化信号
とを上記アドレスバス(1 2 3)と無効化信号線(
PURGE:131)にそれぞれ出力する.従って、第
2のキャッシュメモリ(100:#2)中にこのアドレ
スに関係した有効・未更新の第2の状態のデータを保持
している場合,この第2の状態のデータは無効の第1の
状態とされるのでキャッシュ・コヒーレンスが保たれる
。また,第2のプロセッサ(1002)からのライト・
アクセスが第2のキャッシュメモリ(100:#2)に
ヒットした際も,上記と同様にして、キャッシュ・コヒ
ーレンスが保たれる.従って、キャッシュへのライト・
ヒット時には、共有・記憶バスにはライト・ヒットのア
ドレスと無効化信号とが出力されるが、このライト・ヒ
ット時は主記憶(1004)からのブロック転送が行わ
れることが無い. この際のライト・ヒットのキャッシュから主記憶バスへ
のライト・ヒットのアドレスと無効化信号との出力を,
以下では無効化専用バスサイクルと呼ぶ. この無効化専用バスサイクルでは,ライト・ヒットのキ
ャッシュはPURGE信号131=“1″かつR/W信
号135=“ライトかを出力する。
プロ ク み し 俺  バスサイクルまた,第1のプ
ロセッサ(1 0 0 1)からのライト・アクセスが
第1のキャッシュメモリ(100:#1)にミスした際
に.第1のキャッシュメモリ(100:#1)はライト
・ミスのアドレスをアドレスバス(123)に出力する
ことによって主記憶(1004)から1ブロックのデー
タをブロック・リードする一方,無効化信号を無効化信
号線(PURGE : 1 3 1)に出力し、その後
にこのブロック・リードされた上記1ブロックへのライ
ト・ミスに関係したデータの書き込みを第1のキャッシ
ュメモリ(100:#1)が実行する.従って、ライト
・ミスに関係したデータの書き込みに際して、第1のプ
ロセッサ(1 0 0 1)が無効の第1の状態から有
効・更新済みの第3の状態に遷移する一方、第2のキャ
ッシュメモリ(100:#2)は有効・未更新の第2の
状態から無効の第1の状態に遷移するのでキャッシュ・
コヒーレンスが保たれる.また、第2のプロセッサ(1
002)からのライト・アクセスが第2のキャッシュメ
モリ(10012)にミスした際も、上記と同様にして
、キャッシュ・コヒーレンスが保たれる.この際のライ
ト・ミスのキャッシュから主記憶バスへのブロック・リ
ードのためのアドレスと無効化信号との出力を、以下で
はブロック読み出し兼無効化バスサイクルと呼ぶ。
この無効化専用バスサイクルにおいては,ライト・ミス
のキャッシュはPURGE信号13l=゛′1”かつR
/W信号1 3 5 = ”リード′″を出力する。
− バスの監 さらに、主記憶アドレスバス(123)にリードおよび
ライトのいずれかに関係するアクセス要求のアドレスが
供給されている際に,キャッシュ(100 : #1,
#2)が該アドレスに関係した有効・更新済みの第3の
状態のデータを保持している場合、該キャッシュは該デ
ータを主記憶にブロック転送によって書き戻すので,該
キャッシュはコピー・バック法における有効・更新済み
の第3の状態のデータの主記憶へのコピー・バックを実
現セきる。
また,有する他のバスマスタ(例えば、入出力装置)が
完全な4ワードの1ブロックのデータを主記憶に書き込
む際に、BLOCK信号133とR/W信号135=ラ
イトが他のバスマスタによって出力される.この際に、
キャッシュが他のバスマスタからのアドレスに関係して
有効・更新済みの第3の状態のデータを保持している場
合を考察する.この場合、該キャッシュは該データを主
記憶にブロック転送によって書き戻したとしても、その
後他のバスマスタから上記完全な4ワードの1ブロック
のデータが主記憶に書き込れることとなり,上記のキャ
ッシュから主記憶八のブロック転送は全く意味が無かっ
たことになる。本実施例においては、この際にはキャッ
シュから主記憶への有効・更新済みの第3の状態のデー
タのブロック転送が省鴫され、かつキャッシュの該当ブ
ロックが無効化される様に、キャッシュ制御回路105
がBLOCK信号133とR/W信号工35=ライトの
信号に応答する。
コピーバック゛とラストスルー′の双 の既に説明した
ように、キャッシュ100 (#1,#2)は通常のデ
ータのコピーパック法によるライト動作と高信頼性の要
求される特殊なデータのラストスルー法によるライト動
作の双方の動作が可能であり,その識別は書き込みアド
レスの領域によって行うものとする。よって、ストアバ
ッファ104からの吐き出し処理の1回毎に書き込みア
ドレスを判定し、コピーバンク法と、ライトスルー法の
いずれかを使用するかを決定する。このため、キャッシ
ュはストアバソファI○4からの吐き出されたアドレス
をコピーパック法のアドレス領域か、もしくはライトス
ルー法のアドレス領域かを判定するアドレス判定回路(
図示せず)を有し、このアドレス判定回路の判定結果の
出力に従ってキャッシュ制御回路105が制御される。
ブ0 ・・ク ゛ のバス   の 本実施例によれば、キャッシュと主記憶との間のブロッ
ク転送の途中に主記憶バスのバス使用権に関して高い優
先度を有するバスマスタ(例えば入出力装置)又は等し
いバス使用権を有するバスマスタ(例えば他のキャッシ
ュ)にバス使用権を譲渡することができる。
このため、キャッシュの各ブロックが現在ブロック転送
中であるか否かが識別され、主記憶アドレスバスの監視
時に、その識別結果に従ってキャッシュの不一致解消の
ための手順が下記のように決定される。
手順上. 第一のプロセッサの書き込みアクセスが第一のキャッシ
ュにミスしたこと起因して、第一のキャッシュは主記憶
からのブロック転送の最初のアクセスを上述したように
読み出し兼無効化パスアクセスで行い,同時にブロック
を前記第3の状態に前もって変化させる。このブロック
読み出し転送中において該ブロック転送のひとつのワー
ドと後続の他のひとつのワードとの間のバス非使用期間
に他のバスマスタが主記憶へのアクセスする可能性が有
る. この際に、主記憶から第一のキャッシュへブロック転送
されるブロックと他のバスマスタがアクセスしたブロッ
クとが異なっている可能性が有る。
その場合に他のバスマスタがアクセスしたアドレスに対
応するブロックが第一のキャッシュ中で有効・更新済み
の第3の状態にあり、主記憶から第一のキャッシュへの
ブロック転送中のバス非使用期間である時は、他のバス
マスタがアクセスした第3の状態のブロックが第一のキ
ャッシュから主記憶装置に書き戻される。この書き戻し
の後、他のバスマスタから主記憶へのアクセスが実行さ
れる。さらに、第一のプロセッサの書き込みアクセスが
第一のキャッシュにミスしたこと起因する主記憶と第一
のキャッシュとの間のブロック転送の残り部分を完了す
る。
一方,第一のプロセッサの書き込みアクセスが第一のキ
ャッシュにミスしたこと起因する主記憶から第一のキャ
ッシュへブロック転送中のブロックが、他のバスマスタ
からアクセスされたブロックと同じである可能性が有る
。この時,他のバスマスタがアクセスしたアドレスに対
応するブロックが、第一のキャッシュ中で当然有効・更
新済みの第3の状態となっている。まず第一のキャッシ
ュのミスに起因した主記憶から第一のキャッシュへ転送
中のブロック転送の残り部分を完了し、主記憶から第一
のキャッシュに格納されたブロックデー夕に第一のプロ
セッサの書き込みデータを書き込むと言うライト動作を
先行して実行する。その後,他のバスマスタがアクセス
した有効・更新済みの第3の状態のブロックを主記憶装
置に書き戻した後、他のバスマスタはバス使用権を確保
する、この理由は、下記の事実に基づくものである。
すなわち、もし他のバスマスタが主記憶から第一のキャ
ッシュへ転送中のブロックと同じプロツクを要求した場
合に、即座に要求されたブロックを第一のキャッシュか
ら主記憶へ書き戻し、第一のキャッシュの該当ブロック
が有効・更新済みの第3の状態から無効の第1の状態に
遷移したと仮定する.一方、第一のキャッシュのライト
・ミス時の最終的なキャッシュ・ライト動作は,主記憶
から4ワードの1ブロックのデータが転送された後に、
初めて可能となるものである.しかし、第1のキャッシ
ュのブロックはすでに無効の第1の状態とされているの
で、第一のキャッシュは有効データのライト動作を実行
することができない。
すなわち、第一のプロセッサから第一のキャッシュのラ
イト動作時のデータが第一のキャッシュから消失すると
言う問題が発生する.この問題を回避するため、本実施
例においては上記の手順を採用したものである。
手順2. 一方、第一のプロセッサからの読み出し及び書き込みの
アクセスが第一のキャッシュにミスした際、ブロック置
換を実行するが、そのとき、ブロック置換に伴って第一
のキャッシュから追い出される1つのブロックが有効・
更新済み第3の状態であった時には、該ブロックを第一
のキャッシュから主記憶へ書き戻す。
この際に、第一のキャッシュから主記憶へのブロック転
送により書き戻されるブロックと高い優先度のバス使用
権を有する他のバスマスタ又は等しいバス使用権を有す
る他のバスマスタがアクセスしたブロックとが異なって
いる可能性が有る.その場合に他のバスマスタがアクセ
スしたアドレスに対応するブロックが第一のキャッシュ
中で有効・更新済みの第3の状態にあり,第一のキャッ
シュから主記憶へのブロック転送中のバス非使用期間で
ある時は、他のバスマスタがアクセスした第3の状態の
ブロックが第一のキャッシュから主記憶装置に書き戻さ
れる.この書き戻しの後、他のバスマスタから主記憶へ
のアクセスが実行される。さらに、第一のプロセッサの
書き込みアクセスが第一のキャッシュにミスしたこと起
因する第一のキャッシュから主記憶への書き戻しのため
のブロック転送の残り部分を完了する。
一方、第一のプロセッサの書き込みもしくは読み出しの
アクセスが第一のキャッシュにミスしたこと起因する第
一のキャッシュから主記憶へのブロック転送中の置換ブ
ロックが,他のバスマスタからライト・アクセスされた
ブロックと同じである可能性が有る。この時、他のバス
マスタがアクセスしたアドレスに対応するブロックが当
然、第一のキャッシュ中で有効・更新済みの第3の状態
となっている。まず第一のキャッシュのミスに起因した
第一のキャッシュから主記憶へのブロック転送の残りの
部分の転送を完了する。その後,他のバスマスタが要求
した該当ブロックの第一のキャッシュから主記憶へのブ
ロック転送を再実行し,第一のキャッシュの該当ブロッ
クを有効・更新済みの第3の状態から無効の第1の状態
に遷移させる。さらにその後、他のバスマスタはバス使
用権を確保する。この理由は、下記の事実に基づくもの
である。
すなわち、第一のキャッシュから主記憶へ転送中のブロ
ックと同じブロックをもし他のバスマスタが要求した場
合に,即座に要求されたブロックを第一のキャッシュが
主記憶へ書き戻し、第一のキャッシュの該当ブロックが
有効・更新済みの第3の状態から無効の第1の状態に遷
移したと仮定する。その後,他のバスマスタから主記憶
へライト・アクセスが実行され、主記憶上の置換ブロッ
クに他のバスマスタのライトによるデータが書き込まれ
る。しかし、このデータ書き込みの後、第一のキャッシ
ュのミスに起因した第一のキャッシュから主記憶への置
換転送中のブロック転送の残り部分(無効データ)が主
記憶上の置換ブロック上に書き込まれてしまう。従って
,他のバスマスタによるライトのデータの一部が、主記
憶から消失すると言う問題が発生する。この問題を回避
するため、本実施例においては上記の手順を採用したも
のである。
キャッシュメモ1の  フロー 以下にキャッシュメモリの動作フローを示す。
なお,第4図乃至第9図においてフローチャートの四角
の箱の中身はデータの転送を主に表す。
MPUはプロセッサ、MMは主記憶、AAはアドレスア
レイ101、DAはデータアレイ102、BBはプロツ
クバッファ103、SBはストアバッファ104を示す
プロセッサからリードアクセスが発生した時の,キャッ
シュの動作フローを第4図に示す。
スタート:該リードアクセスによってキャッシュの動作
がスタートして、処理401へ動作が移る。
処理40l:ストアバッファ104中のアドレスとプロ
セッサからのリード要求アドレスを比較し、一致すれば
(図ではSBヒットと称する)処理402へ動作が移る
。そうでなければ(図ではSBミスと称する)、処理4
04へ動作が移る。
処理402:ストアバッファ104中のアドレスの一致
した部分のバイトコントロールとリード要求のバイトコ
ントロールを比較し,後者が前者に含まれていれば(図
ではSBBCヒットと称する)処理403へ。そうでな
ければ(図ではSBBCミスと称する)、ストアバッフ
ァ104からプロセッサにデータを供給できないので、
ストアバツファ104からのアドレスとデータの吐き出
しの処理を終了した後、処理404に動作が移る。
処理403:ストアバツファ104からプロセッサにデ
ータを供給して、動作を終了する。
処理404:プロセッサからのリード・アクセスのアド
レスに従って、アトレスアレイ101を検索する。ヒッ
トすれば、処理405へ動作が移る。ミスすれば、処理
406へ動作が移る。
処理405:データアレイ102から、プロセッサに要
求データを転送し、動作を終了する。
処理406:これ以降、ブロックの置換をする。
キャッシュ制御回路105の状態処理部151は、追い
出すブロックの状態を判定する。もしこの追い出すべき
ブロックが有効・更新済みの第3の状態(信号線147
=”1”、すなわちV=U=“1”)なら処理407へ
動作が移る。もし、これが無効の第1の状態(信号線1
 4 5 = ” 1 ”すなわちv=”o”)、又は
有効・未更新の第2の状態(信号線146= ”1” 
,V= ”1” ,U=″0′″)なら処理408へ動
作が移る。
処理407:追い出すアドレスを、アドレスレジスタ1
06にセットする。アドレスレジスタ↓06をカウンタ
動作させ、追い出すべき1ブロック分のデータをデータ
アレイ102から主記憶に転送する。ここでその第1の
転送と同時にアドレスアレイ101−のブロック転送ビ
ット(BTビット)を1に書き換える。その後、処理4
08へ動作が移る。
処理408:リード要求アドレスをアドレスレジスタ1
06にセットする。アドレスレジスタ106をカウンタ
動作させ、要求されたlブロック分のデータを主記憶か
らプロックバッファ103に転送する。ここでその第1
の転送と同時にアドレスアレイ101のタグ(上位アド
レス)をリード要求アドレスの上位アドレスに書きかえ
、アドレスアレイ101のVビットを“1″′に,Uビ
ットを# 0 17に、BTビットを11 1 1+に
書き換える。
また第1のデータ転送と同時にプロセッサ側データ線1
24と主記憶側データ線とに接続されたゲート114,
116をデータ転送可能状態として、プロセッサにも主
記憶からデータを転送する。第2転送以降ではアドレス
レジスタ106の出力を主記憶バスアドレス線123に
のみ与え、内部アドレス11122,内部データ線12
5を使用しない。この間にリード要求,ストアバッファ
吐き出し要求が発生したらそれぞれ限定リード処理、限
定ストアバソファ吐き出し処理をスタートさせる。
その後、処理409へ動作が移る。
処理409:アドレスレジスタ1. 0 6をカウンタ
動作させ、ブロックバッファ103からデータアレイ1
 0 .2に内部バス{27を介して1回に工6バイト
ずつデータを転送する。その第1転送(4バイトの第エ
ワードの転送)と同時にアドレスアレイ101のBTビ
ットをII O I+にする。その後、処理を終了する
プロセッサのライトアクセスが発生したときの処理フロ
ーを第5図および第6図に示す。
第5図は、プロセノサからストアバッフ7l04への書
き込み時の処理を示している。
スタート:該ライトアクセスによってキャッシュの動作
がスタートして、処理501へ動作が移る。
処理501:ストアバッファ104中のアドレスとプロ
セッサの書き込みアドレスを比較する。
一致していれば処理502へ動作が移る。そうでなけれ
ば処理503A.動作が移る。
処理502:ストアバッファ104の一致したレベルに
アドレスおよびデータを書き込み、プロセッサからスト
アバッファ104への書き込みの動作を終了する. 処理503:ストアバッファ104が満杯ならば1サイ
クル待った後、再び処理503の入り口へ戻る。そうで
なければ(ストアバッファ104に空きが有れば)処理
504へ動作が移る。
処理504=ストアバッファ104に新しいレベル(空
き)ができているので、そこにアドレスおよびデータを
書き込んで動作を終了する.ストアバッファ104に少
なくとも1つの要素(すなわち一組のアドレスおよびデ
ータ)が格納された時の処理を、第6図に示す。
スタート:ストアバッファ104の一番先頭レベルのア
ドレスとデータを読み出して処理601へ動作が移る。
処理601:ストアバッファ104から読み出されたア
ドレスを判定し、このアドレスがコピーパック適用領域
内ならば処理602へ動作が移る。
そうでなければ(ライトスルー適用領域内ならば)、処
理616へ動作が移る。
処理602:ストアバッファ104から読み出されたア
ドレスを用いて,アドレスアレイ101を検索する。該
アドレスがアドレスアレイ101にヒットすれば、処理
603へ動作が移る,ミスすれば,処理611へ動作が
移る。
処理603:状態処理部151はヒットしたキャッシュ
のブロックの状態を判定する。ヒットしたブロックは無
効の第1の状態とはなりえない。
従って,ヒットしたブロックがもし有効・未更新の第2
の状態(信号1@ 1 4 6 = ” 1 ”すなわ
ちV=“l″1,U=“O”)なら処理604へ動作が
移り、有効・更新済みの第3の状態(信号線147=“
1”すなわちV=U=“1”)なら処理610へ動作が
移る。
処理604:レジスタ108によって無効化専用バスサ
イクル指示モードを指定している時は,処理605へ動
作が移る。そうでなければ、処理608へ動作が移る6 処理605:バス調停機構(パスアビター)によって、
キャッシュは主記憶のバス使用権を取得する6バ,不使
用権の取得の後,処理606へ動作が移る。
処理606:再びアドレスアレイ101を検索する。こ
のアドレスアレイ101の検索は、バス使用権の取得ま
での間に他のキャッシュのデータが有効・更新済みの第
3の状態に遷移することによって処理603でヒットし
ていたブロックが無効化されていることを考慮したもの
である。このブロックの無効化によって処理606でミ
スすれば処理609の例外的なライトスルー法による書
き込みへ動作が移る。一方、処理606でヒットすれば
,無効化専用バスサイクルの処理607へ動作が移る。
処理607:無効化信号131 (PtJRGE信号)
=1、リードライト信号135(R/W信号)=ライト
とし、主記憶バス上に無効化専用バスサイクルを発行す
る。その後、処理608へ動作が移る. 処理608:ストアバッファ104のデータをデータア
レイ102に書き込み、対応するアドレスアレイ101
の更新ビット(Uビット)を1にし、ライト・ヒットし
たブロックを有効・更新済みの第3の状態にする。その
後、ストアバッファ104のポインタを1つ進めて、処
理を終了する。
処理609:この例外的なライトスルー法によるライト
・ミス時の書き込み動作に際して、ストアバッファ10
4のデータは主記憶には書き込まれるがデータアレイ1
02には書き込まれない。
その後,ストアバッファ104のポインタを1つ進めて
、処理を終了する, 処理610:ライト・ヒット時のブロックが有効・更新
済みの第3の状態である時は、このライト・ヒット時の
アドレスに該当する他のキャッシュは既に無効化されて
いる。従って、この時のキャッシュの書き込み動作とし
ては、ストアバツファ104のデータをデータアレイ1
02に書き込むだけで十分である。その後、ストアバツ
ファ104のポインタを工つ進めて、処理を終了する。
処理611:ライト・ミスに伴い、キャッシュのブロッ
クの置換をする。キャッシュ制御回路150の状態処理
部151は、ブロック置換によって追い出されるブロッ
クの状態を判定する。もし追い出されるべきブロックが
有効・更新済みの第3の状態(信号線147= ”1”
 ,V=U=LL I I! )なら処理612へ。も
し、これが無効の第1の状態(信号線145=″l I
 II . V =: II O I+ )、又は有効
・未更新の第2の状態(信号線146=“1”,V=”
1”,U=“O″)なら処理613へ 処理612:追い出されるべきブロックのアドレスを、
アドレスレジスタ106にセットする。
アドレスレジスタ106をカウンタ動作させ、追い出さ
れるへきエブロック分のデータをアレイ102から主記
憶に転送する。ここで↓ブロックの最初のワードの第1
の転送と同時に、アドレスアレイ101のブロック転送
ビット(BTビット)をII I I+に書き換える。
処理612の後,処理613へ動作が移る。
処理6l3:ストアバッファ↓04のアドレスを、アド
レスレジスタ106にセットする。アドレスレジスタ1
06をカウンタ動作させ,要求された1ブロック分のデ
ータを主記憶からプロノクバッファ103に転送する。
ただしその第1転送は、リードライト信号(R/W信号
135)=リード、無効化信号(PURGE信号131
)=゛′↓″とじて、読み出し兼無効化バスサイクルで
行う。また第1の転送と同時にアトレスアレイ↓01の
タグをストアバッファ104の上位アトレスに書き換え
、またアドレスアレイ101のVビットをN I I+
に、UビットをII I I+に、BTビノトをLL 
I I1に書き換える。第2転送以降ではアドレスレジ
スタ106の出力を主記憶バスアドレスiA123にの
み与え、内部アドレス線↓22、内部データ線125を
使用しない。第2転送から最終転送の間にリード要求が
発生したら限定リード処理をスタートさせる。処理61
3の後、処理614へ動作が移る。
処理614:アドレスレジスタ106をカウンタ動作さ
せ、プロックバッファ103からデータアレイ102に
1回に16バイトずつデータを転送する。その第1転送
と同時にアドレスアレイ101のBTビットをrr O
 nにする。その後、処理6王5へ動作が移る。
処理6l5:ストアバッファ↓04のデータをデータア
レイ102に書き込む。ストアバソファ104のポイン
タを1つ進める。処理終了。
処理616:この処理616は、ライト・スルー法によ
るデータ書き込みを処理するものである。
このライト・スルー法によるデータ書き込みに際して、
プロセッサから非フル書き込みの要求が生じた場合、下
記の問題が生じる可能性がある。
まず、フル書き込みとは、4バイトからなる1ワードの
完全なデータの書き込みを意味する。
方、非フル書き込みとは,有効データが4バイトより少
ないデータの書き込みを意味する。この非フル書き込み
に際して,1ワードのうち各バイトが有効か無効かは、
プロセッサからのバイトコントロール信号のレベルがI
I 1 18かII O I+かにより指示される。従
って、プロセッサからの4ビットのバイトコントロール
信号かオールII I I+である場合は、フル書き込
みが要求されていることとなる。
すなわち,プロセッサから非フル書き込みの要求に応答
して、キュッシュがライト・スルー法による書き込み(
すなわち、ライト・ヒット時のキャッシュと主記憶との
書き込み)を実行することを想定する。この際、データ
のエラー修正が主記憶にて一般に行われるが、このため
にはライト・スルー法の書き込み前の主記憶のデータと
該データに対応するエラー修正情報とを適切な格納手段
に退避する。その後、バイトコントロール信号によって
指定された非フル書き込みの有効データと該バイトコン
トロール信号による指定外の格納手段中の有効データと
を連結し、この連結データとこれに対応するエラー修正
情報とを主記憶に書き戻す必要がある。このように、デ
ータが主記憶と格納手段との間を往復しなければならず
,書き込み処理に必要な時間が増大すると言う欠点を生
じる。
この欠点を回避するため,本実施例ではバイトコントロ
ール信号の制御によってプロセッサからキャッシュへ非
フル書き込みをキャッシュに実行した後,該キャッシュ
に書き込まれた4バイトからなる完全な1ワードのデー
タを該キャッシュから主記憶に転送する。この処理は、
後述する処理617乃至622で実行され,非フル書き
込みデータのフル書き込み化処理と呼ぶ。
まず,処理616でプロセッサからのライト・アクセス
がキャッシュのアドレスアレス101にヒットするか否
かが判定される。すなわち、ストアバッファ104のア
ドレスを用いて、アドレスアレイ101を検索する。ラ
イト・スルー法のライト・アクセス時のミスにおいては
,書き込みデータを主記憶にのみ書き込めばよいので、
処理623へ動作が移る。ヒットすれば書き込みデータ
をキャッシュと主記憶とに書き込む必要があるので,処
理617へ動作が移る。
処理617:この処理617は、非フル書き込みデータ
のフル書き込み化処理が要求されているモードか否かを
判定するものである。
従って、キャッシュ制御回路105中のレジスタ109
によってフル書き込みモードが指定されていなければ、
通常のライト・スルー法の書き込み(プロセッサからキ
ャッシュおよび主記憶へデータを実質的に同時に転送す
ること)を実行する処理618へ動作が移る。
処理618:ストアバッファ104のデータを通常のラ
イトスルー法によりデータアレイ102および主記憶に
書き込むと言う動作を実行する.尚、主記憶への書き込
みに際しては、キャッシュはバス使用権を当然取得して
いるものである。書き込み実効後、ストアバッファ10
4のポインタをlつ進め、処理を終了する。
一方、レジスタ109によってフル書き込みモードが指
定されていれば、バス使用権の取得の処理619および
アドレス検索の処理620へ動作が移る。
この処理619および処理620への動作の移行の必要
性は、下記の通りである。
今、第一と第二のプロセッサからのライト・アクセスが
それぞれのキャッシュヘヒットするとともに,そのアク
セスが互いに異なった有効バイトに関して非フル書き込
みを要求することを想定する。さらに、第二のプロセッ
サの第二のキャッシュへの非フル書き込みのアクセスが
第一のプロセッサの第一のキャッシュへの非フル書き込
みのアクセスから若干遅れて発行され,かつ両プロセッ
サから非フル書き込みデータのフル書き込み化処理が要
求されている場合を想定する。
この場合、第一のプロセッサからのバイトコントロール
信号によって指定された第一の部分に関して第一のキャ
ッシュへのデータが部分的に書き込まれ、この第一の部
分の部分書き込み後の4バイトからなる完全な1ワード
のデータが第一のキャッシュから主記憶に転送される。
一方、第一のキャッシュから主記憶へのこのデータ転送
時のアドレスによって第二のキャッシュの該当データが
無効化されるため、第二のプロセッサから第二のキャッ
シュへのライト・アクセスはそのアクセスの初期では当
然ヒットしていたものが上記無効化によってミスとなる
。従って、この無効化された第二のキャッシュのデータ
中に第二のプロセッサからのバイトコントロール信号に
よって指定された第二の部分に関して第二のキャッシュ
へのデータが部分的に書き込まれる。その後、この第二
の部分の部分書き込み後の4バイトからなる1ワードの
データが第二のキャッシュから主記憶に転送される。し
かし、この時の第二のキャッシュから主記憶へ転送され
るデータにおいては、第二のプロセッサからのバイトコ
ントロール信号によって指定された第二の部分のデータ
以外のデータは第二のプロセッサから第二のキャッシュ
へのライト・アクセス以前の古い無効なデータである。
従って、この古い無効なデータも第二のキャッシュから
主記憶へ転送されるので、以前に第一のキャッシュから
主記憶に転送された第一のプロセッサから指定された第
一の部分の有効なデータが古い無効なデータによって主
記憶上で置換されてしまうと言う問題が生じてしまう。
本実施例による処理619および処理620は、下記に
詳細に説明する理由によってこの問題の発生を解消する
すなわち、第一のプロセッサの第一のキャッシュへの非
フル書き込みのアクセスによるバス使用権の取得と第二
のプロセッサの第二のキャッシュへの非フル書き込みの
アクセスとによるバス使用権の取得とのタイミングによ
って処理が異なる。
この処理619および処理620の内容は、下記の通り
である。
処理6工9:キャッシュはバス調停機構(バス・アビタ
ー)によって主記憶のバス使用権を取得した後、処理6
20へ動作が移る。
処理620:再びアドレスアレイ101を検索する。ヒ
ットすれば処理62王へ動作が移り、一方ミスすれば処
理623へ動作が移る。
例えば、第一のプロセッサの第一のキャッシュへの非フ
ル書き込みのアクセスによるバス使用権の取得が第二の
プロセッサの第二のキャッシュへの非フル書き込みのア
クセスとによるバス使用権の取得より早ければ第一と第
二のキャッシュの動作は下記の通りとなる。
すなわち、早い方の第一のキャッシュのバス使用権取得
時点では第一のキャッシュは主記憶バスを介しての第二
のキャッシュのライト・アクセスのアドレスによって未
だに無効化されていないので,第一のプロセッサからの
ライト・アクセスのアドレスは第一のキャッシュにヒッ
トする。従って、第一のキャッシュの動作は処理620
から処理621及び処理622のフル書き込み化処理に
移る。
この第一のキャッシュの処理621及び処理622のフ
ル書き込み化処理は,下記の通りとなる。
処理621:第一のキャッシュでは、第一のプロセッサ
からのバイトコントロール信号によって指定された第一
の部分に関するストアバッフ7104のデータが、デー
タアレイ102に部分的に書き込まれた後、処理622
へ動作が移る。
処理622二この第一の部分の部分書き込み後の4バイ
トからなる1ワードのデータが,第一のキャッシュから
主記憶に転送される。すなわち,第一のキャッシュのデ
ータアレイ102の1回のバスアクセス幅のデータを主
記憶に書き込む。その後、ストアバッファ104のポイ
ンタを1つ進めて、処理を終了する。
一方、遅い方の第二のキャッシュのバス使用権取得時点
では第二のキャッシュは主記憶バスを介しての第一のキ
ャッシュのライト・アクセスのアドレスによってすでに
無効化されているので、第二のプロセッサからのライト
・アクセスのアドレスは第二のキャッシュにミスとなる
。従って、第二のキャッシュの動作は処理620から処
理623の主記憶への非フル書き込みに動作が移る。
この第二のキャッシュの処理623の主記憶への非フル
書き込みは、下記の通りとなる。
処理623:第二のプロセッサからのバイトコントロー
ル信号によって指定された第二の部分に関して、第二の
キャッシュのストアバッファ105のデータを主記憶に
書き込む。その後ストアバッファ104のポインタを↓
つ進めて、処理を終了する。
従って、これらの処理621,622,623の後の主
記憶においては、第一のプロセノサから指定された第一
の部分に関して第一のプロセッサからの有効データが部
分的に書き込まれ,第二のプロセッサから指定された第
二の部分に関して第二のプロセッサからの有効データが
部分的に書き込まれるので、上述した問題の発生が解消
されることができる。
第7図は、第4図のリード・ミス時のブロック置換のた
めの主記憶からプロックバツファ103へのブロック転
送の処理408もしくは第6図のライト・ミス時のブロ
ック置換のための主記憶からプロックバッファ103へ
のブロック転送の処理613のメモリアクセスと並行し
て行われることのできるキャッシュの処理(プロセッサ
からストアバッファ104へ別のリード要求が有った場
合の限定リード処理)の処理フローを示すものである。
スタート:リード要求によって処理がスタートして、処
理701へ動作が移る。
処理701:ストアバッファ104中のアドレスとリー
ド要求アドレスを比較し、一致すれば(ヒットすれば)
、処理702へ動作が移る。そうでなければ,処理70
4へ動作が移る。
処理702:ストアバッファ104の一致した部分のバ
イトコントロールとリード要求のバイトコントロールを
比較し,後者が前者に含まれていれば処理703へ動作
が移る.そうでむければデータをストアバッファ104
からプロセッサに供給できないので、ストアバッファ1
04からのアドレスおよびデータの吐き出しの終了後に
、処理704のアドレスアレイ101の検索に動作が移
る。
処理703:ストアバソファ104から、プロセッサに
データを供給して処理を終了する.処理704:アドレ
スアレイ101を検索する.ヒットすれば処理705へ
。そうでなければ(ミスすれば),主記憶バスを使用す
る必要があるとともにデータアレイ102からプロセッ
サにデータを供給できないので、主記憶からプロックバ
ッファ103ヘブロック転送の終了後に動作は第4図の
スタートに移る。
処理705:アドレスアレイ101の検索結果のBTビ
ットが11 0 +tならば(ブロック置換のための主
記憶からプロックバッファ103へのブロック転送中の
ブロックと異なるブロックがリード要求を受けているな
らば),処理706へ動作が移る。
上記BTビットが“I I+ならば(ブロック置換のた
めの主記憶からプロックバッファ103へのブロック転
送中のブロックと同じブロックがリード要求を受けてい
るならば)、処理707へ動作が移る。
処理706:データアレイ102からプロセッサにデー
タを転送して,処理を終了する。
処理707:リードの要求データがプロックバッファ1
03の中にすでに転送されていれば,処理708へ動作
が移る。そうでなければ、1サイクル待った後、処理7
07へ動作が移る。
処理708:プロックバッファ103からプロセッサに
データを転送して、処理を終了する。
第8図は、第4図のリード・ミス時のブロック置換のた
めの主記憶からプロックバッファ103へのブロック転
送の処理408時の主記憶アクセスと並列して行われる
ことができるところのプロセッサからのライト・アクセ
スに伴ったストアバッファ104からのアドレスおよび
データ吐き出し処理(限定ストアバッファ吐き出し処理
)の処理フローを示している。
スタート:ストアバツファ104の一番先頭のレベルの
アドレスとデータを読み出して、処理801へ動作が移
る。
処理801:アドレスを判定し、コピーパック適用領域
内ならば処理802へ動作が移る.そうでなければ(ラ
イトスルー適用領域内ならば)、主記憶バスを使用する
必要が有るので,取敢えず動作を終了した後、第6図の
スタートに動作が移る。
処理802:ストアバッファ104のアドレスを用いて
アドレスを用いてアドレスアレイ101を検索する.ヒ
ットすれば処理803へ動作が移る。ミスすれば、主記
憶バスを使用する必要が有るので、取敢えず動作を終了
した後、第6図のスタートに動作が移る。
処理803:アドレスアレイ101の検索結果BTビッ
トがit O t+ならば(ブロック置換のための主記
憶からプロックバッファ103へのブロック転送中のブ
ロックと異なるブロックがライト要求を受けているなら
ば)、処理804へ動作が移る。一方、上記BTビット
がu 1″′ならば(ブロック置換のための主記憶から
プロックバッファ103へのブロック転送中のブロック
と同じブロックがライト要求を受けているならば)、取
敢えず動作を終了した後、第6図のスタートに動作が移
る. 処理804:キャッシュ制御回路150の状態処理部↓
51は、ヒットしたブロックの状態を判定する。ヒット
したブロックは無効の第1の状態とはなりえない。もし
、ヒットしたブロックが有効・更新済みの第3の状態(
信号線L47=”1”V=U=”1”)なら処理8o5
へ動作が移る。
一方、ヒットしたブロックが有効・未更新の第2の状態
(信号線146= ”1” ,V= ”1” ,U=“
O”)ならば、ライト・ヒットに際して主記憶バスに無
効化専用バスサイクルを発行する必要が有るので,取敢
えず動作を終了した後,第6図のスタートに動作が移る
処理805:ヒットしたブロノクが有効・更新済みの第
3の状態にあるので、無効化専用パスサイクルを発行す
る必要はない。従って、この時のキャッシュのライト動
作としては、ストアバッファ104のデータをデータア
レイ102に書き込むだけで十分である。その後、スト
アバッファ104のポインタを1つ進め,処理を終了す
る。
キャッシュの主記憶バスの監視処理の動作フローを、第
9図に示す。
スタート:主記憶上でバスサイクルが行われると、キャ
ッシュの動作がスタートして、処理901へ動作が移る
処理901:主記憶上のR/W信号135がリードを示
す時には、処理902へ動作が移る。R/W信号135
がライトを示す時には、処理905へ動作が移る。
処理902:主記憶上のPURGE信号131がIt 
O I1の時には、処理903へ動作が移る。
PURGE信号↓3↓がII I I1の時には、処理
905へ動作が移る。
処理903:主記憶バスのアドレスによってアドレスア
レイ101が倹索される。ヒットしたならば処理904
へ動作が移る。そうでない時には(ミスの時には)、キ
ャッシュは主記憶上のリードアクセスと無関係であるの
で、処理を終了する.処理904:ヒットしたならば,
キャノシュは主記憶上のリードアクセスと関係する可能
性があるので、キャッシュ制御回路150の状態処理部
151はヒットしたブロックの状態を判定する。
ヒットしたブロックは無効の第1の状態とはなりえない
。もしヒットしたブロックが有効・更新済みの第3の状
態(信号線150= ”1” ,V=U= tl I 
I+ )なら処理908へ動作が移る。ヒットしたブロ
ックが有効・未更新の第2の状態(信号線149= ”
1” ,V= ”1” ,U= ”O” )ならば、主
記憶バス上のリード要求にキャッシュが応答する必要が
無いので,処理を終了する。
処理905:主記憶バス上でライトアクセスが存在する
かもしくはリードアクセスと無効化信号とが存在する場
合は、主記憶バスのアドレスでアドレスアレイ101を
検索する。ヒットしたならば処理906へ動作が移る。
そうでない時は、処理を終了する。
処理906:状態処理部151はヒットしたブロックの
状態を判定する。ヒットしたブロックは無効の第上の状
態とはなりえない。もし,ヒットしたブロックが有効・
更新済の第3の状態(信号線150=“1”,V=U=
“1′”)なら処理907へ動作が移り、有効・未更新
の第2の状態(信号線1 4 9= ”1” ,V= 
”1” ,U= ”0” )ならば、無効化のための処
理914へ動作が直接移る。
この処理906から処理914への直接遷移は、主記憶
のライトもしくはリード兼無効化の要求のアドレスにヒ
ットしたキャッシュの有効・未更新の第2のデータを無
効の第1の状態とする熊効化動作を示している。
処理907:主記憶バス上のリード・ライト信号135
(R/W信号)=ライトであり、かつそのライ1・・ア
クセスを要求したバスマスタが■ブロック(4ワード)
のブロック転送を要求したことを示すBLOCK信号1
33が“1″ならば、無効化のための処理914八動作
が移る。
一方、それ以外の条件ならば、処理908へ動作が移る
処理907を介しての処理906から処理914への間
接遷移は,他のバスマスタ(例えば、入出力装置)が完
全な4ワードの1ブロックのデータを主記憶に書き込む
際にヒットしたキャッシュの有効・更新済みの第3のデ
ータを該キャッシュから主記憶に転送しないで(主記憶
バスの監視動作における有効・更新済みの第3のデータ
のキャッシュから主記憶へのブロック転送の省略)、該
有効・更新済みの第3のデータをキャッシュにおいて無
効化することに対応している。
一方,バスマスタは先に説明したブロック読み出し兼無
効化専用バスサイクルを発行することがある。この動作
に際して、バスマスタは、PURGE信号131とBL
OCK信号133とR/W信号=リードとを主記憶バス
に出力する.このブロック・リード兼ライトの動作のア
ドレスにキャッシュの有効・更新済みの第3のデータが
ヒットする場合、該第3のデータをキャッシュから主記
憶に書き戻す必要があるので,処理901,902,9
05,906,907を経由して処理908へ動作を移
す. また、バスマスタによる主記憶へのリード・アクセス要
求のアドレスにキャッシュの有効・更新済みの第3のデ
ータがヒットする場合、該第3のデータをキャッシュか
ら主記憶に書き戻す必要があるので、処理901,90
2,903,904を経由して処理908へ動作を移す
処理908:キャッシュの有効・更新済みの第3のデー
タを主記憶に書き戻すために、他のキャッシュによる主
記憶へのアクセスを中断する必要がある。このため、メ
インメモリ・ウェイト信号1 3 2 (MWA I 
T−N信号:電気信号値が低レベルの負論理信号)をア
サートする。一方、後の処理912の書き戻しを実行す
るため、主記憶バスのアドレスを主記憶監視用アドレス
レジスタ107にセットし、処理909へ動作が移る。
処理909:第4図の処理407(リード・ミス時のキ
ャッシュから主記憶への有効・更新済みの第3の状態の
データのブロック転送)の第1転送未完了の段階ならば
、処理407を先に完了する。第6図の処理612(ラ
イト・ミス時のキャッシュから主記憶への有効・更新済
みの第3の状態のデータのブロック転送:DA→M M
 ) (7) m 1転送未完了の段階ならば、処理6
12を先に完了する。
または、第6図の処理614(ライト・ミス時の主記憶
からキャッシュへのデータ格納処理:BB→DA)の実
行途中ならば処理614を先に完了する。または、第6
図の処理6l5(ライト・ミス時のプロセッサからキャ
ッシュへのデータ格納処理:SB−+DA)の実行途中
ならば,処理615を先に完了する。その後、処理91
0へ動作が移る。
処理910:アドレスアレイ101の検索結果、ブロッ
ク転送ビット(BTビット)の値がII O I+なら
ば(プロセッサからキャッシュへのリード・ミスもしく
はライト・ミスに伴ってキャッシュと主記憶との間で転
送されるブロックと異なるブロックが主記憶バスのバス
マスタにより要求されている場合)、先に説明した手順
1もしくは手順2に関係した中断の処理912へ動作が
移る.一方.BTビットの値が“1″ならば(プロセッ
サからキャッシュへのリード・ミスもしくはライト・ミ
スに伴ってキャッシュと主記憶との間で転送されるブロ
ックと同じブロックが主記憶バスのバスマスタにより要
求されている場合),手順lもしくは手順2に関係した
非中断の処理911へ動作が移る。
処理911:処理407,処理612(DA→MM)の
うち第1転送完了済の段階、または処理613(MM→
BB)の実行途中ならば、処理407,処理612,処
理613の残りの処理を先に完了する.処理912へ。
処理912:処理401−805のうち実行中のものが
あれば、すべて中断する。その後,主記憶監視用アドレ
スレジスタ107をカウンタ動作させ,lブロック分の
データをデータアレイ102から主記憶に転送し,記憶
内容の不一致を解消する。該ブロックの更新ビット(U
ビット)をII O uにし,処理913へ動作が移る
処理913:他のキャッシュによる主記憶へのアクセス
中断を解消するため、MWAIT−N信号132をネゲ
ート(電気信号値 H:高)とする。それと同時に処理
401−805のうち、中断された実行を再開させ、処
理を終了する。
処理914:処理906もしくは907で説明した無効
化を実行するため、キャッシュのアドレスアレイ101
のヒットした個所のVビットをII O I1にして、
処理を終了する。
本発明は上記実施例に限定されるものでは無く、その技
術思想の範囲内で種々の変形が可能であることは言うま
でも無い。
例えば、主記憶バスに接続されるプロセッサおよびキャ
ッシュの組が3組以上のマルチプロセノサシステムにも
,本発明が適用されることができる. また、マイクロプロセッサ1001.1002内部に命
令キャッシュおよびデータキャッシュを配置すれば、さ
らに命令およびデータのをアクセスを高速化することが
できる。
キャッシュ(100:#1、#2)はマイクロプロセッ
サ1001、1002内部のCPUから発生される論理
アドレスによってアクセスされることもできるし、該論
理アドレスをMMU(Memory Manageme
nt Unit)等のアドレス変換機構(アドレス・ト
ランスレーション・ルソクアサイド・バッファ等)によ
って変換した物理アトレスによってアクセスされること
もできる。
また、記憶装置1004を複数のマイクロプロセソサ1
001.1002によってアクセスされる共有キャノシ
ュとすることも可能である。このような階層キャッシュ
のシステムにおいては、下層の共有キャッシュ1004
のさらに下層に主記憶が接続される。
〔発明の効果〕
本発明によれば、複数のキュッシュ間で同じコピーのデ
ータが格納されていること示す特殊なビソト情報を各キ
ャッシュ内に含ませることが不必要となる。
本発明によれば、キャッシュの有効・未更新のブロック
へのライト・ヒット時に、主記憶からこのキャッシュへ
のヒット・ブロックのデータ転送を不必要とすることが
できる。
本発明によれば、ブロックのミスに主記憶が応答すべき
か否かを示す特殊なビット情報を主記憶内に含ませるこ
とが不必要となる。
本発明によれば、キャッシュの状態数をマルチプロセッ
サ中のキャッシュ・コヒーレンスに必要な最小限の値に
留めるとともに、このキャッシュの状態を制御する制御
部のハードウェアの大型化を回避することができる。
本発明によれば、プロセッサおよびキャッシュの数が増
大された場合も、更新(Dirty)の状態のキャッシ
ュが他の複数のキャッシュからのデータ転送の要求に連
続して応答することが無く、当初は更新(Dirty)
の状態であったキャッシュは該当のプロセッサからのア
クセス要求に速やかに応答することができる。
【図面の簡単な説明】
第1図は本発明の一実施例によるマルチプロセッサシス
テムの全体図を示し、第2図は第1図のマルチプロセッ
サシステムに使用されるキャノシュメモリの内部構成図
を示し、第3図は第2図のキャッシュメモリ中のアドレ
スアレイ101の内部構或図を示し,第4図はプロセソ
サからリートアクセスが発生した時の第2図のキャノシ
ュメモリの動作フローを示す図であり、第5図および第
6図はプロセッサからライトアクセスが発生した時の第
2図のキャッシュメモリの動作フローを示す図であり、
第7図は第2図のキャッシュメモリの限定リードの処理
の動作フローを示す図であり,第8図は第2図のキャッ
シュメモリの限定ストアバソファ吐き出しの処理の動作
フローを示す図であり、第9図は第2図のキャッシュメ
モリの主記憶バスの監視処理の動作フローを示す図であ
り、第10図は従来より公知のマルチプロセッサシステ
ムの構戊図を示す図である。 6 ! 纜 葛 4 口 ノー トーメ之2C 早 ダ 区 ラ4}スリ1 7−¥アハ゜7フ7 第乙 区 ν ρ 7 潜 7&売り−}失痒 ?■つ 第8名 7ツj乙スト了ハ゜ツファ ロニミはニし冫’<Jコ【 ↓ ぶ: !2/−9 2クー/へ 第 ヲ 国 C宜つ

Claims (1)

  1. 【特許請求の範囲】 1、マルチプロセッサシステムであって: アドレスを発生する第1のプロセッサと、 上記第1のプロセッサからの上記アドレスに従ってアク
    セスされる第1のキャッシュメモリと、 アドレスを発生する第2のプロセッサと、 上記第2のプロセッサからの上記アドレスに従ってアク
    セスされる第2のキャッシュメモリと、 上記第1のキャッシュメモリを介して伝達される上記第
    1のプロセッサからの上記アドレスおよび上記第2のキ
    ャッシュメモリを介して伝達される上記第2のプロセッ
    サからの上記アドレスが伝達されるアドレスバスと、 上記第1のキャッシュメモリを介して上記第1のプロセ
    ッサに接続され、上記第2のキャッシュメモリを介して
    上記第2のプロセッサに接続されたデータバスと、 上記第1のキャッシュメモリと上記第2のキャッシュメ
    モリとに接続された無効化信号線と、上記アドレスバス
    および上記データバスに接続された記憶手段とを具備し
    、 上記第1のキャッシュメモリおよび上記第2のキャッシ
    ュメモリは少なくともコピー・バック法で動作し、 上記第1のキャッシュメモリのデータの状態は、該キャ
    ッシュメモリ内の該当データが無効であることに対応す
    る第1の状態と、該キャッシュメモリ内の該当データが
    有効でありかつ未更新であることに対応する第2の状態
    と、該キャッシュメモリ内の該当データが有効でありか
    つ更新済みであることに対応する第3の状態とのみから
    本質的になる群から選ばれたひとつの状態に存在し、 上記第2のキャッシュメモリのデータの状態は、上記群
    から選ばれたひとつの状態に存在し、上記第1のプロセ
    ッサからのライト・アクセスが上記第1のキャッシュメ
    モリにヒットした際に、上記第1のキャッシュメモリの
    データの状態は上記の有効・未更新の第2の状態から上
    記の有効・更新済みの第3の状態に遷移する一方、さら
    に上記第1のキャッシュメモリは上記ライト・ヒットの
    アドレスと無効化信号とを上記アドレスバスと上記無効
    化信号線にそれぞれ出力し、 上記第2のプロセッサからのライト・アクセスが上記第
    2のキャッシュメモリにヒットした際に、上記第2のキ
    ャッシュメモリのデータの状態は上記の有効・未更新の
    第2の状態から上記の有効・更新済みの第3の状態に遷
    移する一方、さらに上記第2のキャッシュメモリは上記
    ライト・ヒットのアドレスと無効化信号とを上記アドレ
    スバスと上記無効化信号線にそれぞれ出力し、 上記第1のプロセッサからのライト・アクセスが上記第
    1のキャッシュメモリにミスした際に、上記第1のキャ
    ッシュメモリは上記ライト・ミスのアドレスを上記アド
    レスバスに出力することによって上記記憶手段から1ブ
    ロックのデータをブロック・リードする一方、無効化信
    号を上記無効化信号線に出力し、その後にこのブロック
    ・リードされた上記1ブロックへの上記ライト・ミスに
    関係したデータの書き込みを上記第1のキャッシュメモ
    リが実行し、 上記第2のプロセッサからのライト・アクセスが上記第
    2のキャッシュメモリにミスした際に、上記第2のキャ
    ッシュメモリは上記ライト・ミスのアドレスを上記アド
    レスバスに出力することによって上記記憶手段から1ブ
    ロックのデータをブロック・リードする一方、無効化信
    号を上記無効化信号線に出力し、その後にこのブロック
    ・リードされた上記1ブロックへの上記ライト・ミスに
    関係したデータの書き込みを上記第2のキャッシュメモ
    リが実行し、 上記アドレスバスにリードおよびライトのいずれかに関
    係するアクセス要求のアドレスが供給されている際に、
    上記第1のキャッシュメモリおよび上記第2のキャッシ
    ュメモリの一方のキャッシュが該アドレスに関係した有
    効・更新済みの第3の状態のデータを保持している場合
    、該キャッシュは該データを上記記憶手段に書き戻す一
    方、上記アドレスに関係した上記データを上記第3の状
    態から有効・未更新の第2の状態に遷移せしめることを
    特徴とするマルチプロセッサシステム。 2、上記記憶手段は主記憶であることを特徴とする請求
    項1記載のマルチプロセッサシステム。 3、上記アドレスバスおよび上記データバスに接続され
    た入出力装置をさらに具備してなり、上記第1のプロセ
    ッサの上記第1のキャッシュへのアクセスのミスに起因
    して上記第1のキャッシュと上記記憶手段との間の複数
    のワードからなる1ブロックが転送され、該転送のワー
    ド・ワード間のバス非使用期間に該1ブロックと異なる
    ブロックに関して上記第2のキャッシュおよび上記入出
    力装置の一方が上記アドレスバスをアクセスした際に、
    該一方が上記アドレスバスおよび上記データバスを介し
    て上記記憶手段をアクセスを実行した後、上記ミスに起
    因した上記転送の残りを完了する如く上記第1のキャッ
    シュが上記一方のアクセスに応答することを特徴とする
    請求項1記載のマルチプロセッサシステム。4、上記ミ
    スに起因した上記転送のワード・ワード間のバス非使用
    期間に該1ブロックと同じブロックに関して上記第2の
    キャッシュおよび上記入出力装置の一方が上記アドレス
    バスをアクセスした際に、上記ミスに起因した上記転送
    の残りを完了した後、該一方が上記アドレスバスおよび
    上記データバスを介して上記記憶手段をアクセスを実行
    する如く上記第1のキャッシュが上記一方のアクセスに
    応答することを特徴とする請求項3記載のマルチプロセ
    ッサシステム。 5、上記アドレスバスおよび上記データバスに接続され
    た入出力装置をさらに具備し、 上記入出力装置が所定数のワードからなる1ブロックの
    データを上記記憶手段に書き込む際に、該書き込みのア
    ドレスに該当して有効でありかつ更新済みの第3の状態
    のデータを上記第1と第2のキャッシュの一方が保持し
    ている場合、該キャッシュは該第3の状態のデータの上
    記記憶手段への書き込みを省略する如く該キャッシュが
    上記記憶手段への上記書き込みに応答することを特徴と
    する請求項1記載のマルチプロセッサシステム。 6、上記記憶手段は主記憶であることを特徴とする請求
    項5記載のマルチプロセッサシステム。 7、上記記憶手段へ上記書き込みに応答して上記キャッ
    シュは上記データの状態を上記第3の状態から無効の第
    1の状態へ遷移せしめることを特徴とする請求項5記載
    のマルチプロセッサシステム。 8、アドレスを発生する第1のプロセッサと、アドレス
    を発生する第2のプロセッサと、上記第1のプロセッサ
    からの上記アドレスおよび上記第2のプロセッサからの
    上記アドレスが伝達されるアドレスバスと、上記第1の
    プロセッサおよび上記第2のプロセッサとデータを転送
    するためのデータバスと、上記アドレスバスおよび上記
    データバスに接続された記憶手段とを有するマルチプロ
    セッサシステムに使用されるキャッシュメモリは: 上記第1のプロセッサからの上記アドレスに従ってアク
    セスされ、少なくともコピー・バック法で動作する第1
    のキャッシュメモリと、上記第2のプロセッサからの上
    記アドレスに従ってアクセスされ、少なくともコピー・
    バック法で動作する第2のキャッシュメモリとを具備し
    てなり、 上記第1のキャッシュメモリのデータの状態は、該キャ
    ッシュメモリ内の該当データが無効であることに対応す
    る第1の状態と、該キャッシュメモリ内の該当データが
    有効でありかつ未更新であることに対応する第2の状態
    と、該キャッシュメモリ内の該当データが有効でありか
    つ更新済みであることに対応する第3の状態とのみから
    本質的になる群から選ばれたひとつの状態に存在し、 上記第2のキャッシュメモリのデータの状態は、上記群
    から選ばれたひとつの状態に存在し、上記第1のキャッ
    シュメモリと上記第2のキャッシュメモリとは接続され
    た無効化信号線を介して接続され、 上記第1のプロセッサからのライト・アクセスが上記第
    1のキャッシュメモリにヒットした際に、上記第1のキ
    ャッシュメモリのデータの状態は上記の有効・未更新の
    第2の状態から上記の有効・更新済みの第3の状態に遷
    移する一方、さらに上記第1のキャッシュメモリは上記
    ライト・ヒットのアドレスと無効化信号とを上記アドレ
    スバスと上記無効化信号線にそれぞれ出力し、 上記第2のプロセッサからのライト・アクセスが上記第
    2のキャッシュメモリにヒットした際に、上記第2のキ
    ャッシュメモリのデータの状態は上記の有効・未更新の
    第2の状態から上記の有効・更新済みの第3の状態に遷
    移する一方、さらに上記第2のキャッシュメモリは上記
    ライト・ヒットのアドレスと無効化信号とを上記アドレ
    スバスと上記無効化信号線にそれぞれ出力し、 上記第1のプロセッサからのライト・アクセスが上記第
    1のキャッシュメモリにミスした際に、上記第1のキャ
    ッシュメモリは上記ライト・ミスのアドレスを上記アド
    レスバスに出力することによって上記記憶手段から1ブ
    ロックのデータをブロック・リードする一方、無効化信
    号を上記無効化信号線に出力し、その後にこのブロック
    ・リードされた上記1ブロックへの上記ライト・ミスに
    関係したデータの書き込みを上記第1のキャッシュメモ
    リが実行し、 上記第2のプロセッサからのライト・アクセスが上記第
    2のキャッシュメモリにミスした際に、上記第2のキャ
    ッシュメモリは上記ライト・ミスのアドレスを上記アド
    レスバスに出力することによって上記記憶手段から1ブ
    ロックのデータをブロック・リードする一方、無効化信
    号を上記無効化信号線に出力し、その後にこのブロック
    ・リードされた上記1ブロックへの上記ライト・ミスに
    関係したデータの書き込みを上記第2のキャッシュメモ
    リが実行し、 上記アドレスバスにリードおよびライトのいずれかに関
    係するアクセス要求のアドレスが供給されている際に、
    上記第1のキャッシュメモリおよび上記第2のキャッシ
    ュメモリの各キャッシュが該アドレスに関係した有効・
    更新済みの第3の状態のデータを保持している場合、該
    キャッシュは該データを上記記憶手段に書き戻す一方、
    上記アドレスに関係した上記データを上記第3の状態か
    ら有効・未更新の第2の状態に遷移せしめることを特徴
    とするキャッシュメモリ。 9、上記第1と第2のキャッシュは上記マルチプロセッ
    サシステム中の主記憶である上記記憶手段のデータの写
    しを格納することを特徴とする請求項8記載のキャッシ
    ュメモリ。10、上記マルチプロセッサシステムは上記
    アドレスバスおよび上記データバスに接続された入出力
    装置をさらに具備してなり、 上記第1のプロセッサの上記第1のキャッシュへのアク
    セスのミスに起因して上記第1のキャッシュと上記記憶
    手段との間で複数のワードからなる1ブロックが転送さ
    れ、該転送のワード・ワード間のバス非使用期間に該1
    ブロックと異なるブロックに関して上記第2のキャッシ
    ュおよび上記入出力装置の一方が上記アドレスバスをア
    クセスした際に、該一方が上記アドレスバスを介して上
    記記憶手段をアクセスを完了した後、上記ミスに起因し
    た上記転送の残りを完了する如く上記第1のキャッシュ
    が上記一方のアクセスに応答する請求項8記載のキャッ
    シュメモリ。 11、上記ミスに起因した上記転送のワード・ワード間
    のバス非使用期間に該1ブロックと同じブロックに関し
    て上記第2のキャッシュおよび上記入出力装置の一方が
    上記アドレスバスをアクセスした際に、上記ミスに起因
    した上記転送の残りを完了した後、該一方が上記アドレ
    スバスおよび上記データバスを介して上記記憶手段をア
    クセスを実行する如く上記第1のキャッシュが上記一方
    のアクセスに応答することを特徴とする請求項10記載
    のキャッシュメモリ。 12、上記マルチプロセッサシステムは上記アドレスバ
    スおよび上記データバスに接続された入出力装置をさら
    に具備してなり、 上記入出力装置が所定数のワードからなる1ブロックの
    データを上記記憶手段に書き込む際に、該書き込みのア
    ドレスに該当して有効でありかつ更新済みの第3の状態
    のデータを上記第1と第2のキャッシュの一方が保持し
    ている場合、該キャッシュは該第3の状態のデータの上
    記記憶手段への書き込みを省略する如く該キャッシュが
    上記記憶手段への上記書き込みに応答する請求項8記載
    のキャッシュメモリ。 13、上記第1と第2のキャッシュは上記マルチプロセ
    ッサシステム中の主記憶である上記記憶手段のデータの
    写しを格納することを特徴とする請求項12記載のキャ
    ッシュメモリ。 14、上記記憶手段へ上記書き込みに応答して上記キャ
    ッシュは上記データの状態を上記第3の状態から無効の
    第1の状態へ遷移せしめることを特徴とする請求項12
    記載のキャッシュメモリ。
JP2210343A 1989-08-11 1990-08-10 マルチプロセッサシステムおよびそれに用いるキャッシュメモリ Pending JPH03163640A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-206773 1989-08-11
JP20677389 1989-08-11

Publications (1)

Publication Number Publication Date
JPH03163640A true JPH03163640A (ja) 1991-07-15

Family

ID=16528851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2210343A Pending JPH03163640A (ja) 1989-08-11 1990-08-10 マルチプロセッサシステムおよびそれに用いるキャッシュメモリ

Country Status (3)

Country Link
EP (1) EP0412353A3 (ja)
JP (1) JPH03163640A (ja)
KR (1) KR910005160A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091509A (ja) * 2014-11-11 2016-05-23 ファナック株式会社 プログラマブルコントローラに適したマルチプロセッサシステム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2902976B2 (ja) * 1995-06-19 1999-06-07 株式会社東芝 キャッシュフラッシュ装置
US7283061B1 (en) 1998-08-28 2007-10-16 Marathon Oil Company Method and system for performing operations and for improving production in wells
US6275905B1 (en) 1998-12-21 2001-08-14 Advanced Micro Devices, Inc. Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system
US6631401B1 (en) 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
KR100615660B1 (ko) * 1998-12-21 2006-08-25 어드밴스드 마이크로 디바이시즈, 인코포레이티드 메모리 취소 메세지를 이용한 시스템 메모리 대역폭의유지 및 캐시 코히런시 유지
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6393529B1 (en) 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2430637A1 (fr) * 1978-07-06 1980-02-01 Cii Honeywell Bull Procede et dispositif pour garantir la coherence des informations entre des caches et d'autres memoires d'un systeme de traitement de l'information travaillant en multitraitement
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091509A (ja) * 2014-11-11 2016-05-23 ファナック株式会社 プログラマブルコントローラに適したマルチプロセッサシステム

Also Published As

Publication number Publication date
EP0412353A3 (en) 1992-05-27
EP0412353A2 (en) 1991-02-13
KR910005160A (ko) 1991-03-30

Similar Documents

Publication Publication Date Title
US9129071B2 (en) Coherence controller slot architecture allowing zero latency write commit
US5283886A (en) Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US9268708B2 (en) Level one data cache line lock and enhanced snoop protocol during cache victims and writebacks to maintain level one data cache and level two cache coherence
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
CN101097544B (zh) 虚拟化事务存储器的全局溢出方法
US6408345B1 (en) Superscalar memory transfer controller in multilevel memory organization
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
KR100228940B1 (ko) 메모리 일관성 유지 방법
US20060059317A1 (en) Multiprocessing apparatus
US11321248B2 (en) Multiple-requestor memory access pipeline and arbiter
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
JPH0619786A (ja) キャッシュコヒーレンスを維持する方法及び装置
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US20240289277A1 (en) System cache architecture for supporting multiprocessor architecture, and chip
US5987544A (en) System interface protocol with optional module cache
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
JPH03163640A (ja) マルチプロセッサシステムおよびそれに用いるキャッシュメモリ
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
JP2000347933A (ja) バスブリッジ、キャッシュコヒーレンシ制御装置、キャッシュコヒーレンシ制御方法、プロセッサユニット、マルチプロセッサシステム
US6401173B1 (en) Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置