JPH03102546A - 階層キャッシュメモリ装置 - Google Patents

階層キャッシュメモリ装置

Info

Publication number
JPH03102546A
JPH03102546A JP1240253A JP24025389A JPH03102546A JP H03102546 A JPH03102546 A JP H03102546A JP 1240253 A JP1240253 A JP 1240253A JP 24025389 A JP24025389 A JP 24025389A JP H03102546 A JPH03102546 A JP H03102546A
Authority
JP
Japan
Prior art keywords
bus
cache memory
memory device
command
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1240253A
Other languages
English (en)
Other versions
JPH077358B2 (ja
Inventor
Hirobumi Muratani
博文 村谷
Shigehiro Asano
滋博 浅野
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP1240253A priority Critical patent/JPH077358B2/ja
Publication of JPH03102546A publication Critical patent/JPH03102546A/ja
Publication of JPH077358B2 publication Critical patent/JPH077358B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (崖業上の利用分野) この発明は複数のプロセッサとメインメモリ装置との間
に階層構造化された複数のキャッシュメモリ装置を持つ
階層キャッシュメモリ装置に関する。
ロセッサやメインメモリ装置との間でデータの授受を行
う計算機システムにおいては、複数のプロセッサからの
同時アクセスによる所謂バス・コンテンションが問題と
なる。そこで上記プロセッサとメインメモリ装置との間
に、各プロセッサにそれぞれ対応する高速小容量のメモ
リ装置をキャッシュとして設け、これらのキャッシュメ
モリ装置に前記メインメモリ装置のデータのコピーを持
たせておくことが考えられている。
このようなキャッシュメモリ方式によれば、各プロセッ
ザはキャッシュメモリ装置のアクセスにより、等価的に
高速度にメインメモリ装置や他のブロセッザとの間でデ
ータの授受を行うことが可能となり、前述したコンテン
ション等の問題を効果的に回避することか可能となる。
ところでこの種のキャッシュメモリ方式にあっては、複
数のキャッシュメモリ装置とメインメモリ装置とのデー
タ内容の一致か問題となる。即ち、プロセッザからのキ
ャッンユメモリ装置に対する書込みによりそのデータの
更新が行われた場合、他のキャッシュメモリ装置やメイ
ンメモリ装置にらせる必要かある。この為の手法として
は、例えば下記の文献にその通知の時期やデータの有効
性の表し方が提唱されている。
rArchiboldl. and Bacr,J.−
L”Cache Coherence Protoco
ls: EvaluationUsinga Mult
iprocessor Simulation Mod
el”ACM  TranSacLio++  011
  CompuLer  SySlen1sVol.4
.  No.4.  NovemL+er  ]..9
8B.  pp273−298  j一方、複数のプロ
セッサか同一アドレスに対して書込みを行うプログラム
や、キャッシュメモリ装置からのブロックの追出しが頻
繁に起こるプログラムでは、データ転送や他のギャッシ
ュメモリ装置の内容無効化の為のコマンドによるバス・
コンテンションの問題か起こる。このような問題に対し
ては、キャッシュメモリ装置とメインメモリ装置の間に
、新たなキャッシュメモリ装置を階層的に設け、これに
よってバス・トラフィックの軽減を図る手法か下記の文
献に提唱されている。
r Hattori.A.,Kosl+ino,M. 
and S.Kamimoto−Three−leve
l hierarchical storage sy
stemキャッシュメモリ装置との間のハス・コンテン
ションが新たに問題となってくる。このような問題に対
処するべく、例えば下記の文献にて提唱されるように、
下位階層のキャッシュメモリ装置の数を増やすことか考
えられている。
r A.W.Wilson Jr ”The 14Lh Annual Internat
ional Symposiumon COMPUTE
R ARCIIITECTLIRE”COMPUTER
 ARCIIITECTURE NEWS Vol.1
5 No.2June2−5, 1987  Pitt
sburg.Pennsylvania  J第2図は
このような観点に立脚して構築される階層キャッシュメ
モリ装置の概略構或を示す図であり、Pは複数のプロセ
ッサである。これらの各プロセッサPに対応して複数の
第1−のキャッシュメモリ装置C1がそれぞれ設けられ
、これらの第1のキャッシュメモリ装置C1は複数の第
1のバスB{にて所定数づつ共通接続される。また複数
の第2のキャッシュメモリ装置C2は上記各第1のバス
B1にそれぞれ対応して設けられており、これらの第2
のキャッシュメモリ装置C2は第2のバスB2にて共通
接続される。この第2のハスB2にメインメモリ装置M
が接続され、このメイ5 ンメモリ装置Mと前連した複数のブロセッザPとの間に
複数のキャッシュメモリ装置cI.c2がバスBi,B
2を介して階層的に設けられたメモリ構のバスB2の両
方から当該キャッシュメモリ裂置C2におけるデータ内
容のコヒーレンシに関するコマンドを受けることがある
しかしてこの場合、そのコマンドの種類とキヤッシュメ
モリ装置C2におけるデータ内容によっでは、キャッシ
ュメモリ装置C2は上位側(第]のバスBl)から受け
たコマンドに反応して下位のバス(第2のバスB2)に
コマンドを出す必要があり、また下位側(第2のバスB
2)から受けたコマンドに反応して上位のバス(第1の
バスBl)にコマンドを出す必要が生じる可能性かある
。ところが上位側のバス(第1のバスBl)はその上位
(箇1のキャッシュメモリ裂置Ct)か6 らきたコマントによって山h゛されており、一方、下位
のバス(第2のバスB2)は下位側(他の第2のキャッ
シュメモリ装置C2)から来たコマンドにより占有され
ているので、所3+7デッドロックの状態が生じてしま
うと云う問題がある。このような理由から、下位階層の
キャッシュメモリ装置を複数にするには幾つかの解決す
べき課題があり、て具体的に説明する。
第3図(a)はブロセッザP1が自己に対応する第1の
キャッシュメモリ装置CI+にリード要求のコマンドを
出したところを表している。ところがキャッシュメモリ
装置C1.1がその要求されたブロック(データ)を持
ってない為にキャッシュ・ミスしたとする。この場合、
キャッシュメモリ装置CHIは要求されたブロックのコ
ピーを他のギャッンユメモリ装置から持ってくる必要が
生しる。この拮果、」二記キャッンユメモリ装置Cll
は第3図(b)に示すように第1のバスB]を介して同
じ階層の他のキャッシュメモリ装置Cl2  CL3や
、その下位階層の第2のキャソンユメモリ装置C21に
対して前記プロセッサptから央求されたブロックのコ
ピーを要求するコマンドをブロードキャストにより伝達
する。
しかしてキャッシュメモリ装置Cllと同じ階層の他の
キャッシュメモリ装置C I2,  C ISおよび第
2のキャッシュメモリ装置c2]も前述したコマンドに
よりリード要求されているブロックは持って求されてい
るブロックのコピーを持ってくるべく、第3図(C)に
示すように第2のバスB2を介して上述したコマンドを
出力する。
ところかこのような前記プロセッザP1からのコマンド
の伝達と同11’4Jに、このコマンドかバスB2を介
して与えられた第2のキャッシュメモリ装置C22に対
して、その上位のブロセッザP2が第3図(b)に示す
ように発生したブロックのコピーを要求するコマンドか
第3図(e)に示すように入ってきたとする。そしてキ
ャッシュメモリ装置C22か−L位のバス(プロセッサ
P2)からのコマンドが聾求するブロックを持っていな
い場合、当該キャッシュメモリ装置C22は下位のバス
にブロックのコピーを要求するコマンドを出そうとする
しか1,第2のバスB2は既に萌述したプロセッP−1
>から要求されたコマンドを第2のバスB2にク, 出力することができなくなり、また第2のバスいること
から、これに応答することができなくなる。
9 かが差戻しされ、これによってそのハスか解放されない
眠り解消されない。
一方、プログラミングによって上連したデッドロックを
回避することも試みられている。具体的にはプログラミ
ングにより、第2のキャッシュメモリ装置C2が下位側
の第2のバスB2からのコマンドに対して応答を返した
後に、上記第2のキャッシュメモリ装置C2に対して上
位側の第1のバスB1からコマンドを与えられるように
1,てデッドロックの発生を回避することか試みられて
いる。
然し乍ら、第2のキャッシュメモリ装置C2が1ζ位側
の簗2のバスB2からのコマンドに対して応答を返した
後であってち、依然として下泣側の第2のバスB2が他
の資源によって占有されたままの状態であると、第2の
キャッシュメモリ装置C2にとっては、下位側の第2の
バスB2が解族10 されるまで上位側からのコマンドに対して応答すること
ができず、第2のバスB2の解放を待つこ−装置ほどそ
のアクセス時間か長くなる。この為、下位側のバスを占
有しているコマンドが、より下位側のメモリ装置をアク
セスしている場合である。
今1の例は、この階層キャッシュメモリ装置におけるキ
ャッンユメモリ装置間の距離を、例えばコマンドがバス
を通る回数で定義するものとすれば、下位のバスを占有
しているコマンドが距離的に離れたキャッシュメモリ装
置に達している場合である。
これらのいずれの場合であっても、」二位のバスから来
たコマンドに対して、下位のバスを占有しているコマン
ドが当該バスを解放するのを待ち続けると、これによっ
て上位のバスも占有され続けることになる。そしてこの
ような事態が生じると、11 複数のブロセッザからの個々の要求に対する処理効率が
著しく妨げられ、その全体的な処理効率か大幅に低減す
ると云う大きな問題が生じた。
(発明が解決しようとする課題) このように従来のキャッシュメモリ技術では、キャッシ
ュメモリ装置を階層構造化する場合、上:際して、プロ
グラミングによって下位階層のキャッシュメモリ装置に
おけるデソドロックを回避するようにしても、例えば上
位側のバスからのコマンドを受けて下位側のバスにコマ
ンドを出す際、そのキャッシュメモリ装置の下位側のハ
スが既に他の資源によって占有されていると、当該キャ
ッシュメモリ装置では下位側のバスが角イ放されるまで
」二位側のコマンドに対する応答を待つことが必要とな
る。このような事態が生じると、その間に亘って上位側
のハスも占有状態になると云う不具合が生じ、この結果
、複数のプロセッザの要求に12 対する処理効率か大幅に低下するという問題があった。
本発明はこのような事情を考慮してなされたもので、そ
の目的とするところは、デッドロックの発生を効果的に
回避すると共に、バスの不本意な占有を防止して複数の
プロセッサからの要求に効東的に対処し、その全体的な
処理効率の向上を図ることを可能とする実用性の高い階
層キャッシュメモリ装置を提供することにある。
れた複数の第1のキャッンユメモリ装置C1と、これら
の第1のキャッシュメモリ装置C1を複数個づつ相互接
続した複数の第1のバスB1を介して上記第1のキャッ
シュメモリ装置C1のそれそれに接続された複数の第2
のキャッシュメモリ装置C2と、これらの第2のキャッ
ンユメモリ装置C2を相互に接続した第2のバスB2を
介して上13 記第2のキャッンユメモリ装置C2に接続されたメイン
メモリ装置Mとからなる階層キャソンユメモリ装置に係
り、 前記各第2のキャッンユメモリ装置に、第1のバスから
のコマントを受けて第2のバスにコマンドを出力しよう
とする際、既に」二記第2のバスか他の装置により占有
されているとき、前記第コ−のバスからのコマンドを差
戻して当該第1のバスをH放させる手段を設けたことを
特徴とするものである。
つまり第1図にその制御処理概念を示すように、上位側
のバスからのコマンドが入力されて、下位バスにコマン
ドを出力しようとするとき(ステツか否かを判定し(ス
テップb)、下位側のバスか既に他の装置により占有さ
れている場合には、前記上位側のバスからのコマンドを
その要求元に差1 4 戻して、その上位側のバスを解放するようにし(ステッ
プc)、下位側のバスが空き状態にある場合にだけ前記
上位側のバスからのコマンドを下位側のバスに伝達する
(ステップd)ようにしたことを特徴とするものである
(作用) このようなコマンド差戻し手段を備えた本発明によれば
、第2のキャッシュメモリ装置がその上位側のバスから
コマンドを受け、このコマンドに対して下位側のバスに
コマンドを出そうとするとき、既に下位側のバスか他の
装置により占有されている場合にはこれを検知して前記
上位側のバスからのコマンドをその要求元へ差戻し、こ
れによって上位側のバスを解放するので、例えば下位側
のバスからのコマンドを上位側のバスに効果的に伝える
ことができ、デッドロックの発生を効果1 5 先に処理することが可能となる。この結果、複数のプロ
セッサからの要求に対する処理効率の向上を図ることが
可能となる。
(実施例) 以下、図面を参照して本発明に係る階層キャッシュメモ
リ装置の実施例について説明する。
第4図は第1の実施例に係る階層キャッシュメモリ装置
における第2のキャッシュメモリ装置の概略構成を示す
図で、{はキャッシュメモリ装置本体である。このキャ
ッシュメモリ装置本体lは複数のプロセッサPにれぞれ
対応して設けられた第1のキャッシュメモリ装置CIを
相互に接続する第1のバスB1を上位バス2として接続
し、また同じ階層の他の第2のキャッシュメモリ装置C
2およびメインメモリ装置Mを相互に接続する第2のバ
スB2を下位バス3として接続してキャッシュ機能を果
たすものである。
16 しかしてこのキャッシュメモリ装置本体1は、基本的に
はタグRAMとデータRAMとからなりキャッシュ用の
メモリとして機能するRAM部4ス3に対するバス・コ
ントローラ6と、下位バス3からのコマンドに応じて前
記RAM部4に対するアクセスをコントロールするスヌ
ープ・コントローラ7とを備えて構成される。
この実施例に係る第2のキャッシュメモリ装置が特徴と
するところは、上述した構或のキャッシュメモリ装置本
体1に加えて、当該キャッシュメモリ装置本体lから下
位バス3に対してコマンドを出力しようとするとき、下
位、バス3が既に他のコマンドにより占有されている状
態にあるか否かを検知し、占有状態であるならば上記コ
マンドを差戻させる為の応答を上記キャッシュメモリ装
置本体iに返すと共に、下位バス3が占有されていなけ
ればそのコマンドをそのまま下位バス3に伝17 えると云う機能を備えた下位バス占有判定装置8を設け
たことを特徴としている。
即ち、この下位バス占有判定装置8は、キャッシュメモ
リ装置本体Iか上位バス2からのコマンドを受け付け、
その応答として下位バス3にコマンドを出力しようとす
るとき、この下位バス3にコマンドを下位バス3に出力
する。また下位バス3が既に他のコマンドにより占有さ
れている場合には、下位バス占有判定装置8は上記コマ
ンドをその要求元に差戻すべく、キャッシュメモリ装置
本体lに応答を返す。キャッシュメモリ装置本体1は、
このような応答を下位バス占有判定装置8から受けたと
き、下位バス3に出力しようとしているコマンドを上位
バス2を介してその要求元(プロセッサ)に差戻す。
第5図は上述した如き機能を備えて構成された18 第2のキャッシュメモリ装置を用いて構築される階層キ
ャソシュメモリ装置における処理動作の流れ、特にデッ
ドロックが同避されて所望とするキャッシュ動作がなさ
れる過程を模式的に示す図である。
この第5図(a)は上位階層の第1のキャッンユメモリ
装置C].1から出力されたブロックのコピーの要求が
第2のキャッシュメモリ装置C2においてもキャッシュ
・ミスし、同じ階層の他のキャッのコマンドの差戻しの
応答を受けたバス・コンi・ローラ6は、前記上位ハス
側キャッシュ・コン1・ローラ5に列してコマン1・の
差戻しの応答を返し、これを受けた上位バス側キャッン
ユ・コントロラ5は第5図(d)に示すように」二位ハ
ス2に!J Lてコマンド差戻しの応答を返す。このよ
うなコマンド差戻しの応答が、そのコマンド要求元であ
るプロセッサまで順にイ人達され、そのコマンドの要求
元であるプロセッリか媚5図(C)に示すように上位バ
ス2を解放する。
この拮來、下位ハス3からのコマンドを受{NJケてい
るスヌーブ・コン1・ローラ6は、前述したコに対して
出力した状態を示している。
しかしてこのとき、下位バス3が既に他のコマンドによ
り占有されている場合には、第5図(l))に示すよう
に下位バス占有判定装置8はコマンドの差戻しの応答を
前記キャッシュメモリ装置本体1のバス・コン1・ロー
ラ6に返す。すると第5図(C)に示すように、下位バ
ス占有判定装置8から19 第6図は上述した下位バス占も一判定部8か持つ処理機
能により、下位ハス3の占右時にコマンドを上位バス2
に対して差戻すことにより、複数のプロセッザからの要
求に対する処理効率の向上が20 期待される状況を示す図である。
第6図(a)はプロセッサP1の出したリード・コマン
ドがキャッシュメモリ装置Cllにてキャッシュ・ミス
してしまい、キャッシュメモリ装置C1工が同じ階層の
キャッシュメモリ装置Cl2と下位階層のキャッシュメ
モリ装置C21に対してブロックのコピーを要求するコ
マンドを第1のバスB1に送出したが、キャッシュメモ
リ装置C21においてもキャッシュ・ミスか生した状態
を示している。
そしてキャッシュメモリ装置C21から更に下位の第2
のバスB2にコマンドを出ず必投かあるのだが、既に第
2のバスB2が別のコマンドによって占h゜されており
、しかもそのコマンドが距離的に遠いキャッシュメモリ
装置に達している状況を示している。
この場合、第2のハスB2を介して距離的に遠ュメモリ
装置C21.においてはデッドロツクは生じ21− マンドの出力を待ち続けても良いはずである。
ところが今、キャソンユメモリ装置C21の」二位階層
に、」二連した第1のギャッンユメモリ装置Cllの他
にも、リード・ライトにミスし、第1のバスB1に対し
てコマンドを出したいのだが、キャッンユメモリ装置C
].lの出したコマンドによって第1のバスB1か山(
iされているので、そのハスB1か解赦されるのを待っ
ているキャッシュメモリ装置C12かあるとする。しか
もこのキャッシュメモリ装E C ] 2が出力するコ
マンドは第2のキャッシュメモリ装置C21の内容によ
っては、更にその下位の禎2のバスB2にコマンドを出
す必要がない場合がある。
このような場合には、朶1のキャッシュメモリ装置C]
.lからのコマンドを一旦差し戻して」二位バスBlを
解放させ、キャッシコメモリ装置Cl2からのコマンド
を第2のキャッシュメモリ装置C21に受け入れ、これ
を処理した方が全体的な処理効22 率が良くなる。つまり第2のバスB2が解放されるまで
の待ち時間を利用し、第2のバスB2にコしかしてこの
実胞例装置によれば、キャッシュメモリ装置Cllから
第2のキャッシュメモリ装置C21に与えられたコマン
ドは、第2のバスB2の占有によって上記第2のキャッ
シュメモリ装置C21に組込まれた下位バス占有判定装
置8の作用により上記キャッシュメモリ装置Cllに差
戻され、第1のバスB1が解放される。この第1のバス
B1の解放により、第2のキャッシュメモリ装置C21
は第2のバスB2が占有されてキャッシュメモリ装置C
llからのコマンドが待ち状態となっている期間を利用
して、別のキャッシュメモリ装置C12からの要求を処
理することになる。
また第6図(b)は第2のキャッシュメモリ装置C21
にその上位バスB1からブロックのコピーを23 要求するコマンドが来たかキャッシュ・ミスし、更に下
位の第2のバスB2にコマンドを出す必要があるのだが
、既に第2のバスB2が別のコマンドによって占有され
ており、しかもそのコマンドがメインメモリ装置Mに達
している状況を示している。しかして一般的に、メイン
メモリ装置Mへックは起こらないので、第2、のキャッ
シュメモリ装置C21としては第2のバスB2が解放さ
れるのを待ち続けても良い。
゛一トころがキャッシュメモjノ装置C21の上位階層
に、リードまたはライトにミスしてバスにコマンドを出
したいのだが、上記キャッシュメモリ装置C2Hこ到達
しているコマンドによって第1のバスB1が占有されて
いるので、当該第1のバスBlが解放されるのを待って
いる別のキャッシュメモリ装置CI2があるとする。し
かしてこのキャツシ24 ュメモリ装置CI2からの要求は第2のキヤ・ソシュメ
モリ装置C21にてヒットする可能性がある。
そこでこのような状況下では、第2のキャッシュメモリ
装置C21は上位バスB1から現在与えられているコマ
ンドを一旦差戻すことによって上記つまり第2のキャッ
シュメモリ装置C 21としては、その下位の第2のバ
スB2が解hkされるまでの待ち時間の間に、上位階層
から与えられるコマンドの内、第2のバスB2にコマン
ドを出す必要の無いものに対して応答を返すことが可能
となる。
このことはプロセッサからの要求に対するスループット
の向上を図る上で顕著な効果を槽する。実際、前述した
実施例装置によれば、下位側の第2のバスB2が占有さ
れているとき、下位バス占有判定装置8は上位側から下
位側に伝達しようとするコマンドに対して差戻しの応答
を返す。この結果、上位の第1のバスBlが解放される
ので、第2のキャッシュメモリ装置C21は第2のバス
B2他のコマンドによって占有されたままであるならば
、上記キャッシュメモリ装置C12からのコマンドをそ
のまま第1のバスB1に差戻す。また第2のバスB2が
解放されていれば、キヤ・ソシュメモリ装置Cl2から
のコマンドを第2のノくスB2に出力す・る。
25 尚、この実施例では下位バス占有判定装置8をキャッシ
ュメモリ装置本体1の外に設けているが、キャッシュメ
モリ装置本体1の内部にその機能を26 ところで先の実施例では、デッドロック状況が発生しそ
うになったとき、F位ハス(第2のバスB2)か占有さ
れていることを判定してコマンドの差戻しを行ったか、
実際にデッドロック状況が発生する十分条件としては、
第2のバスB2が占有されているということよりも、む
しろ第2のキ↓ツシュメモリ装置C2に対して第2のバ
スB2からコマンドが与えられたときの方が厳しい条件
! となる。従って或るキャッシュメモリ装置が下位のバス
にコマンドを出そうとしたときに、下位のバスからコマ
ンドが与えられているときに、上記上位からのコマンド
を差戻すようにしてデッドロックを回避するようにして
も良い。
槃機能を持たせた実施例について示すものである2 7 即ち、バス・コントローラ6に、上位バス側キャッシュ
・コンI・ローラ5からコマンドか与えられたとき、下
位バス(第2のバスB2)からコマンドが与えられてい
るか否かを検出する機能を持たせ、・第2のバスB2か
らコマンドが与えられている場合には、上記」二位バス
側キャッシュ・コントローラ5から与えられたコマンド
に対して、そのコマンドの差戻しを指示する応答を返す
機能を特今、筆8図(a)に示すようにプロセッザP1
か要求したリードのコマンドかゴ5]のギャッンユメモ
リ装置Cilでキャッシュ・ミスし、キャッシュメモリ
装置Cllか同じ階層の他のキャッシュメモリ装置CI
2と下位階層の第2のキャッシュメモリ装置C2に対し
てブロックのコピーを要求するコマンドを出したとする
。ところが同し階層のキャッシュメモリ装置Cl2はそ
のブロックのコピーを28 持っておらず、また下位の第2のキャッシュメモ装置、
またはメインメモリ装置Mに対してブロックのコピーを
要求する為のコマンドをバス・コントローラ6に与える
ところがこの時、上記」二位バス側キャッシュ・コント
ローラ5からちえられるコマンドとは別に、下位ハス(
第2のバスB2)からブロックのコピーを要求するコマ
ンドがハス・コントローラ6に入ってきているものとす
る。
しかしてこのような状況下では、前述したようにバス・
コントローラ6は上位からコマンドが来たときに、下位
のバスからコマンドを受けており、未だにそれに対する
応答を返していない場合には、1、記上位からのコマン
ドに対して差戻しの応答を返すという機能を持っている
。上述したぁ8図(a)に示す状態はまさにその状況な
ので、バス・コン29 トローラ6は前記上位バス側キャッシュ・コントローラ
5に対して、禎8図(b)に示すようにそのコマンドの
差戻しを指示する応答を返すことになる。
またこのようなコマンドの差戻しか行われる間?・ユユ
ーC7,7−ッ.,ッ1、。一,■(よ■.8,第.。
バスB2から与えられるコマンドが要求するブロックを
持っているか、その1ノツ容は更に上位のキャ゛一ウシ
ュメモリ装置CI2において既に更新されているものと
する。するとこの場合には、スヌーブ・コントローラ7
はその上位のキャッシュメモリ装置CI.2からブロッ
クのコピーを持ってくるべく、そのコマンドを上位バス
(第1のバスBl.)に出そうとする。ところか昂1の
バスB1は前記キャッシュメモリ装置Cilからのコマ
ンドによって占有されたままの状態であるので、スヌー
プ・コントローラ7は第1−のバスB1が解放されるの
を待30 ち続けることになる。
しかしてこのような状況にある時、第8図(C)に示す
ように、前記バス・コントローラ6からのコマンドの差
戻しの応答を受けた上位バス側コントローラ5は、第1
のバスBlに対してコマンドの差し戻しの応答を送出し
ている。この結果、コマンドの差戻しの応答を受けたキ
ャッシュメモリ装ii&cIlは第1のバスB1を解放
するので、第87’lE].(d)に示すように第2の
キャッシュメモリ装置1.1: C:2のスヌープ・コントローラ7が第1のバスのバス
B1に送出される。
ところで上述したような階層構造を持つキャッシュメモ
リ装置において、或るキャッシュメモリ装置に上位バス
からブロックのコピーを要求するコマンドが来ても、必
ずしも下位のバスにコマンドを出さなければならないと
いうわけではない。
下位バスにコマンドを出す必要があるのは、或る限られ
た条件下においてだけである。具体的には上位バスから
のコマンドが要求するブロックをキャッシュメモリ装置
が持っておらず、他のキャッシュメモリ装置にそのブロ
ックのコピーを要求すこうして第2のキャッシュメモリ
装置C2におけるデッドロックの発生が回避され、第2
のキャッシュメモリ装置C2から出力されるコマンドは
目的とする第1のキャッシュメモリ装置C12に到達す
る。尚、キャッシュメモリ装置Cllに差戻されたコマ
ンドは、前把キャッシュメモリ装置CL2にうえられた
コマンドに対する応答か返され、第1のバスB1が角牟
族されるのを待って、再び第131 1 同様に下位のバスからコマンドが来ても、必ずしも上位
のバスにコマンドを出さなければならな} いわけではない。具体的にはそのキャッシュメモリ装置
の或るブロックの内容が、その上位のキャッシュメモリ
装置において更新されており、しか32 もそのデータが書戻されていない時にそのデータを読み
に行く場合や、その上位のキャッシュメモリ装置の内容
を無効化する場合である。
第9図はこのようなデッドロックが本当に起こり得る状
況においてのみ、コマンドの差戻しを行うように最適化
した実施例について示すものである。
この実施例におけるキャッシュメモリ装置は、前述した
構戊のキャッシュメモリ装置本体1に、デッドロック回
避装置9を設けて実現される。
このデッドロック同避装置9は、当該キャッシュメモリ
装置が上位バス(第1のバスBl)と下位バス(第2の
バスB2)にそれぞれ出そうとしているコマンドを検出
して、両方のコマンドが出:&与えられたコマンドを第
1のコマンドBlに伝達しようとしているときには、上
記第2のバス\B2に出そうとするコマンドの出力を中
止し、そのコマンドを前記第1のバスBlに差戻す機能
を持つものである。
このように構成された実施例装置によれば、第10図に
示すようにしてデッドロックの発生が回避される。
即ち、第10図(a)はデッドロック回避装置9にハス
・コントローラ6からの第2(下位)のバスB2に出力
すべきコマンドと、スヌープ・コントローラ7からの第
1(上位)のバスBlに出力すべきコマンドとが同時与
えられた状況を示してを受けてその下位の第2のバスB
2に対してコマンドを出そうとする際、同時に第2のバ
スB2か3 3 来ているかどうかを判定し、実際にスヌープ・コントロ
ーラ7からコマンドが来ていることを確認して第10図
(b)に示すように前記バス・コン1・ローラ6に対し
てコマンドを差戻しをさせる為の34 応答を返す。
するとこのデッドロック回避装置9からのコマンドの差
戻しの応答を受けたバス・コントローラ((e ’は、
第1−0図(C)に示すように上位バス側キャーツシュ
・コントローラ5に対してコマンドを差戻0しをさせる
為の応答を返す。この粘果、第1−o図\ (d)に示すように、コマンドの差戻しの応答を受けた
上位バス側キャッシュ・コントローラ5は、その上位バ
ス(第1のバスBl.)に対してそのコマンドの差戻し
の応答を返すことになる。
この結果、コマンドの要求元であるプロセッザP1のキ
ャッシュメモリ装置CI.Iは上記差戻しの応答を受け
て第1のバスB1を解放する。そして第1のバスB1が
解放されると、第10図(e)に示すようにデッドロッ
ク回避装置9は前記スヌプ・コントローラ7からのコマ
ンドを第1のバスB1に送出し、目的とする第1のキャ
ッシュメモリ装置Cl2に、そのブロックのコピーを要
求することができる。
このような実施例装置によれば、実際にデッド35 ロックが発生ずる状況となった場合のめ、上位側からの
コマンドか差戻されることになる。この点、先の2つの
実施例ではデソドロックか允生しない場合であってもコ
マンドの差戻しか行われる点て、そのキャッシュ制御に
若十の異なりはあるか、木質的にはこれらの各制御形態
によりデッ1・ロックことか可能となる。
尚、本発明は」二連した各大施例に限定されるものでは
ない。例えばキャッシュメモリ装置本体の構成や、コマ
ンドの差戻しを行うための条件判定等は、そのンステム
仕様に応して定めれば良いものである。また3階層以」
二にキャッシュメモリ装置を構築して個々のキャッンユ
メモリにおけるデッドロックの発生を回避するようにし
ても良い。
その他、本発明はその要旨を逸脱しない範囲で種々変形
して実施することが可能である。
36 [発明の効果] 以上詳述したように本発明によれば、階層構造をもつメ
モリ装置においてキャッシュメモリ装置におけるデッド
ロックの発生を効果的に回避することができ、しかも複
数のプロセッサからの要求に対する処理効率の大幅な向
」二を図ることかて1=第4図は本発明の第1の実施例
に係る或る階層のキャッシュメモリ装置の要部概略構戊
を示す図、.・第5図は第1の実施例におけるキャッシ
ュメモリ装置内部におけるコマンドと応答の流れを示す
図、第6図は本発明によるプロセッサからの要と応答の
流れを示す図、第9図は第3の実施例装置の要部概略構
或図、第10図は第3の実施例装置におけるコマンドと
応答の流れを示す図である。
P・・・プロセッサ、Cl・・・第1のキャッシュメモ
リ装置、Bl・・・第1のバス、C2・・・第2のキャ
ッシュメモリ装置、B2・・・第2のバス、M・・・メ
インメモリ装置、1・・・キャッシュメモリ装置本体、
2・・・上位バス(第1のバスBl),3・・・・・・
下位バス(第2のバスB2)、4・・・RAM,5・・
・上位バス側キャッシュ・コントローラ、6・・・バス
・コントローラ、7・.,スヌーブ・コンl・ローラ、
8・・・下位バス占有判定装置、9・・・デッドロック
回避装置。

Claims (1)

    【特許請求の範囲】
  1. 複数のプロセッサのそれぞれに対応して設けられた複数
    の第1のキャッシュメモリ装置と、これらの第1のキャ
    ッシュメモリ装置を複数個づつ相互接続した複数の第1
    のバスを介して上記第1のキャッシュメモリ装置にそれ
    ぞれ接続された複数の第2のキャッシュメモリ装置と、
    これらの第2のキャッシュメモリ装置を相互に接続した
    第2のバスを介して前記第2のキャッシュメモリ装置に
    接続されたメインメモリ装置とを備えた階層キャッシュ
    メモリ装置において、第2のキャッシュメモリ装置は、
    第1のバスからのコマンドを受けて第2のバスにコマン
    ドを出力しようとする際、上記第2のバスが既に他の装
    置により占有されているとき、前記第1のバスからのコ
    マンドを差戻して当該第1のバスを解放する手段を備え
    たことを特徴とする階層キャッシュメモリ装置。
JP1240253A 1989-09-18 1989-09-18 階層キャッシュメモリ装置 Expired - Lifetime JPH077358B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1240253A JPH077358B2 (ja) 1989-09-18 1989-09-18 階層キャッシュメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1240253A JPH077358B2 (ja) 1989-09-18 1989-09-18 階層キャッシュメモリ装置

Publications (2)

Publication Number Publication Date
JPH03102546A true JPH03102546A (ja) 1991-04-26
JPH077358B2 JPH077358B2 (ja) 1995-01-30

Family

ID=17056741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1240253A Expired - Lifetime JPH077358B2 (ja) 1989-09-18 1989-09-18 階層キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JPH077358B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995016959A1 (fr) * 1993-12-15 1995-06-22 Silicon Graphics Inc. Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS619747A (ja) * 1984-06-26 1986-01-17 Matsushita Electric Ind Co Ltd バス制御装置
JPS6284350A (ja) * 1985-06-27 1987-04-17 エンコア−・コンピユ−タ・コ−ポレ−シヨン 階層キヤツシユメモリ装置および方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS619747A (ja) * 1984-06-26 1986-01-17 Matsushita Electric Ind Co Ltd バス制御装置
JPS6284350A (ja) * 1985-06-27 1987-04-17 エンコア−・コンピユ−タ・コ−ポレ−シヨン 階層キヤツシユメモリ装置および方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995016959A1 (fr) * 1993-12-15 1995-06-22 Silicon Graphics Inc. Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux
CN1054223C (zh) * 1993-12-15 2000-07-05 硅图像有限公司 用于分级数据超高速缓冲存储器系统中同步化的系统和方法

Also Published As

Publication number Publication date
JPH077358B2 (ja) 1995-01-30

Similar Documents

Publication Publication Date Title
JP3871305B2 (ja) マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
JP3737834B2 (ja) 2重化キャッシュ・スヌープ機構
JP5714733B2 (ja) キャッシュ競合の解決
CN103246614B (zh) 多处理器数据处理系统、高速缓存存储器及其方法
JP3624951B2 (ja) マルチプロセッサ・システム
US6738871B2 (en) Method for deadlock avoidance in a cluster environment
US6738872B2 (en) Clustered computer system with deadlock avoidance
US5265235A (en) Consistency protocols for shared memory multiprocessors
JP3635634B2 (ja) データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法
CN100377114C (zh) 一种有效率的两跳缓存一致性协议
CA2305510C (en) I/o forwarding in a cache coherent shared disk computer system
US5655103A (en) System and method for handling stale data in a multiprocessor system
US5822765A (en) System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US8706972B2 (en) Dynamic mode transitions for cache instructions
JPH0628049B2 (ja) 非同期バス間のデータ転送方法
JP2023509334A (ja) 特定のリクエストに対するコヒーレンス保護を拡張するキャッシュ・スヌーピング・モード
JPH03102546A (ja) 階層キャッシュメモリ装置
JPH06282528A (ja) データ転送方法及びそのシステム
JPH0816885B2 (ja) キャッシュメモリ制御方法
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
KR20230070033A (ko) 캐시 라인 축출을 위한 다중 레벨 캐시 코히런시 프로토콜
US20110320694A1 (en) Cached latency reduction utilizing early access to a shared pipeline
CN111651375A (zh) 基于分布式有限目录的多路处理器缓存数据一致性实现方法及系统
JPH03235145A (ja) キャッシュメモリ装置
JP2005509199A (ja) トランザクションを第1アドレスリピータと第2アドレスリピータとの間で効果的に同報通信するための方法および装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term