JP3009430B2 - プロセッサおよびそのキャッシュメモリ制御方法 - Google Patents

プロセッサおよびそのキャッシュメモリ制御方法

Info

Publication number
JP3009430B2
JP3009430B2 JP2179541A JP17954190A JP3009430B2 JP 3009430 B2 JP3009430 B2 JP 3009430B2 JP 2179541 A JP2179541 A JP 2179541A JP 17954190 A JP17954190 A JP 17954190A JP 3009430 B2 JP3009430 B2 JP 3009430B2
Authority
JP
Japan
Prior art keywords
data
entry
state
processor
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.)
Expired - Fee Related
Application number
JP2179541A
Other languages
English (en)
Other versions
JPH0467242A (ja
Inventor
一正 濱口
茂樹 柴山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2179541A priority Critical patent/JP3009430B2/ja
Publication of JPH0467242A publication Critical patent/JPH0467242A/ja
Priority to US08/393,927 priority patent/US5737568A/en
Application granted granted Critical
Publication of JP3009430B2 publication Critical patent/JP3009430B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

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

【発明の詳細な説明】 [産業上の技術分野] 本発明は、複数のプロセッサがメモリを共有するシス
テムにおけるプロセッサおよびそのキャッシュメモリ制
御方法に関するものである。
[従来の技術] 計算機システムにおける性能の向上を得るために、プ
ロセツサを複数個備えて並列処理を行うマルチプロセツ
サシステムが使われるようになつてきている。マルチプ
ロセツサシステムの中でも、複数のプロセツサがメモリ
を共有し、この共有メモリによつてジヨブのスケジユー
リングやデータの共有を行なう共有メモリ型マルチプロ
セツサシステム(以下、単にマルチプロセツサと言う)
が、従来のマルチプログラミングにおけるプログラミン
グ・モデルとの親和性の高さから広く受け入れられてい
る。
この型のマルチプロセツサでは、共有のメモリに対す
るアクセスがシステムのボトルネツクになり易い。この
ボトルネツクを解消するために、共有メモリのコピーを
プロセツサ毎にキヤツシユメモリに置き、共有メモリへ
のアクセスをキヤツシユメモリへのアクセスで代替し
て、実際の共有メモリへのアクセスを低減する方法がと
られることが普通である。この時、複数のプロセツサが
同一のデータブロツクのコピーを各々のキヤツシユメモ
リに置くため、全部のプロセツサが共有メモリを基準と
して矛盾のないメモリイメージを持つようにしなければ
ならない。これはマルチプロセツサにおけるキヤツシユ
のコンシステンシ問題といわれるものであり、各種の解
決案が提案されている。例えば、ライト・ワンス(writ
e−once)方式,バークレイ(Berkeley)方式,イリノ
イ(Illinois)方式,ドラゴン(Dragon)方式,フアイ
ヤフライ(Firefly)方式などがアーチボルド,バエル
(Archibald,Bear)他の論文「キヤツシユ・コンシテン
シ・プロトコル:マルチプロセツサ・シミユレーシヨン
を使つた評価」(“Cache Consistency Protocols:Eval
uation Using a Multiprocessor Simulation",ACM Tran
sactions on Computer Systems,Vol.4,No.4,Nov.1986,P
ages273−298)に記載されている。
これらの方式を大別とすると、インバリデート(Inva
lidate)方式(以下、INV方式と記す)と、ブロードキ
ヤスト(Broadcast)方式(以下、BC方式と記す)とに
分けられる。INV方式は次のような方式である。同一デ
ータブロツクのコピーが複数プロセツサのキヤツシユメ
モリにある場合、それに書き込みを起こすプロセツサか
ら他のプロセツサへ、そのブロツクのインバリデート
(無効化)を指令する信号とそのデータブロツクのアド
レスとをバス上へ送出する。他のプロセツサのバス監視
装置は、送出された上記データブロツクのアドレスから
自キヤツシユのタグメモリを参照して、自キヤツシユに
同一データブロツクがある場合、そのブロツクを無効化
して誤つたデータを使わないようにする方式である。一
方、BC方式は、書き込みを起こすプロセツサが、書き込
まれるデータブロツクのアドレスとデータとをバス上に
送出して他のプロセツサに取り込ませ、他プロセツサに
ある該データブロツクを常に最新の状態にしてデータの
一貫性を保つ方式である。
[発明が解決しようとしている課題] しかしながら、上述したINV方式では、無効化された
ブロツクを持つどのプロセツサにおいても、その無効化
されたブロツクを再度アクセスしようとした際にキヤツ
シユのミスを引きおこし、そのデータを共有メモリ又は
有効なコピーを持つたキヤツシユから読み出す必要があ
り、性能が低下する場合があつた。一方、BC方式では、
更新されたデータブロツクを逐一全体にブロードキヤス
トするので、そのオーバヘツドが大となる欠点があつ
た。
つまり、更新されたデータが頻繁に多くのプロセツサ
によつて使われるソフトウエア・アーキテクチヤの場合
は、BC方式の方が優れ、同じデータがあまり多くのプロ
セツサには使われないソフトウエア・アーキテクチヤの
場合はINV方式の方が優れているという一長一短があつ
た。
本発明は、かかる問題点に鑑みてなされたものであっ
て、その目的とするところは、複数のプロセッサで同一
ブロックに対するキャッシュミスを繰り返すことがな
く、高いヒット率が得られ、かつ更新毎に更新データを
他の全てのプロセッサに送信する必要もないので、その
ためのオーバヘッドも少なくて済む最適なプロセッサ及
びそのキャッシュメモリの制御方法を提供する。
[課題を解決するための手段] この課題を解決するために、本発明のキャッシュメモ
リの制御方法は、複数のプロセッサがメモリを共有する
システムにおいて、各プロセッサに付属するキャッシュ
メモリの制御方法であって、各プロセッサが、前記付属
するキャッシュメモリの各エントリ毎にデータの状態を
記憶し、システムバス上に他のプロセッサが発生させる
トランザクションを監視し、該監視中に発生したトラン
ザクションにおけるアドレスと同一アドレスでデータの
状態が無効であると記憶されたエントリがあるかを調
べ、該当するエントリがあれば、該エントリのデータと
して前記トランザクションにおけるデータ部分をバスか
ら取り込み、当該エントリのデータの状態を有効にする
ことを特徴とする。
ここで、各プロセッサが、自己のキャッシュメモリの
エントリを書き込みにより更新する際に、当該エントリ
の更新を他のプロセッサに通知し、更新を通知された各
プロセッサが、自己のキャッシュメモリの該当エントリ
のデータの状態を無効とする。また、前記トランザクシ
ョンは、自己のキャッシュメモリにおけるデータの状態
が無効なエントリに対してリードミスを起こしたプロセ
ッサによって発生される。また、各プロセッサが、初期
状態において、共有する前記メモリの所定のアドレスを
自己のキャッシュメモリのタグメモリにロードし、各エ
ントリのデータの状態を無効に設定する。また、前記所
定のアドレスが、予め設定されたアドレスである。ま
た、前記所定のアドレスが、前記キャッシュメモリの過
去の履歴に基づいて決定されるアドレスである。また、
前記所定のアドレスが、無作為に決定されるアドレスで
ある。
又、本発明のプロセッサは、他のプロセッサとメモリ
を共有するプロセッサであって、各エントリ毎にデータ
と該データの状態とを記憶するキャッシュメモリと、シ
ステムバス上に他のプロセッサが発生させるトランザク
ションを監視する監視手段と、該監視手段の監視中に発
生レたトランザクションにおけるアドレスと同一アドレ
スで、データの状態が無効であると記憶されたエントリ
が、前記キャッシュメモリにあるか否かを判断する判断
手段と、該判断手段によって該当するエントリがあると
判断された場合に、該エントリのデータとして前記トラ
ンザクションにおけるデータ部分をバスから取り込むと
ともに、当該エントリのデータの状態を有効にするデー
タ更新手段とを有することを特徴とする。
[作用] 以上の構成によれば、他のプロセッサにおける同一ア
ドレスに対する書き込みなどにより、データの状態が無
効であるエントリについて、このエントリと同一のアド
レスに対してバス上にトランザクションが発生した場合
に、そのエントリのデータとして、発生したトランザク
ションにおけるデータ部分をバスから取り込むととも
に、当該エントリのデータの状態を有効にするようにし
たので、あるキャッシュメモリで実際に書き換えが必要
となった時点で、他のキャッシュメモリでも同じ書き換
えを行なうようになり、複数のプロセッサで同一ブロッ
クに対するキャッシュミスを繰り返すことがなく、高い
ヒット率が得られ、かつ更新毎に更新データを他の全て
のプロセッサに送信する必要もないので、そのためのオ
ーバヘッドも少なくて済む。
[実施例] 以下、図面を参照して本発明の実施例を説明する。
第1図は本発明のキヤツシユ制御方式の状態遷移図の
一例を示す。
本状態遷移図は、イリノイ大学で提案されたキヤツシ
ユ・コンシステンシ・プロトコル(前述の参考文献;Arc
hibald,J.and Bear,J.−L.,“Cache Consistency Proto
cols:Evaluation Using a Multiprocessor Simulatio
n",ACM Transactions onComputer Systems,Vol.4,No.4,
Nov.1986,Pages273−298)に、本発明の状態(旧共有状
態;SharedStale)を付加したものである。尚、遷移条件
において、リードミス(r−miss)とライトミス(w−
miss)とはキヤツシユ内に所望のデータが無い場合、リ
ードヒツト(r−hit)とライトヒツト(w−hit)はキ
ヤツシユ内に所望のデータが有る場合を示す。又、リー
ドステイル(r−stale)とライトステイル(w−stal
e)とは旧共有状態でのリード/ライトである。又、遷
移条件の内、実線矢印で表わしたのは自分の動作による
遷移、破線で表わしたのは他の動作による遷移である。
以下、本実施例では、本発明の旧共有状態(Shared S
tale)の利点を明瞭にする為、リードミスとリードステ
イル、ライトミスとライトステイルを分別して示してい
るが、本来これらは同じ条件であり、特に分別される必
要はない。各状態はキヤツシユメモリのエントリ毎に保
持されるもので、通常タグメモリと呼ばれる制御用のメ
モリにコード化されて格納される。
1はエントリが無効(Invalid)であることを示すInv
alid状態(以下、INV状態)である。システムの初期状
態では全エントリがINV状態である。
2はこの状態を持つエントリを持つキヤツシユが、そ
のエントリを占有(Exclusive)することを示すExclusi
ve状態(以下、EX状態)である。EX状態では、他のキヤ
ツシユにはそのエントリのブロツクは存在していない。
3はこの状態を持つエントリを持つたキヤツシユがそ
のエントリのブロツクを他のキヤツシユの共有(Shar
e)していることを示すShared状態(以下、SH状態)で
ある。この時、複数のキヤツシユにこのエントリのブロ
ツクが同一のデータを保持している。
4はこの状態を持つエントリを持つキヤツシユがその
エントリを占有し、かつ書き込みを行なつて主記憶との
一致がとれなくなつた(Exclusive Dirty)ことを示すE
xclusive Dirty状態(以下、EXD状態)である。
5は本発明で導入された旧共有状態で、この状態のエ
ントリを持つキヤツシユが以前そのブロツクを他のプロ
セツサのキヤツシユと共有していた(Shared)が、他の
プロセツサによるそのブロツクへの書き込みによつてそ
のブロツクが古い(Stale)ものになつたことを示すSha
red Stale状態(以下、SHS状態)である。この時、書き
込みを行なつたプロセツサのキヤツシユでは、このエン
トリはEXD状態になつている。
第2図は本発明を用いるマルチプロセツサのブロツク
図の一例を示す。21,22,23,24は本発明のキヤツシユ制
御方式を用いるキヤツシユ31〜34を持つプロセツサであ
り、システムバス25を介して主記憶26と接続されてい
る。この構成をもとに、更に具体的に本キヤツシユ制御
方式の動作を説明する。尚、本実施例では、他のプロセ
ツサの動作に基づく、SH状態とSHS状態との間の遷移を
中心に述べるが、SHS状態からの、リードステイルによ
るSH状態への遷移やライトステイルによるEXD状態への
遷移等は、従来のINV状態からの遷移に対応して付加さ
れるものであり、本発明のSHS状態の付加を最も特徴付
ける遷移は上記SH状態とSHS状態間の破線の遷移であ
る。
第3図はある時点での第2図のマルチプロセツサのキ
ヤツシユの状態を示す図である。
第3図の(a)は、キヤツシユ31,32,33,34に主記憶2
6の同じアドレスのデータ“A"が共有されている状態を
示す。今、このデータを保持しているアドレスを例えば
1000番地として説明を行なう。キヤツシユのタグメモリ
には、図示しないアドレス情報が格納されており、この
場合アドレス情報は1000番地を示す。1000番地のデータ
“A"は共有されているので、各キヤツシユのこのデータ
はSH状態である。
この第3図の(a)の状態から、プロセツサ21がこの
エントリのデータ“A"を更新して“A′”に書き替える
場合、第3図の(b)に示すようにプロセツサ21は、自
分のキヤツシユにデータ“A′”を書き込んでキヤツシ
ユをEXD状態とする(第1図の遷移条件に対応する)
と同時に、プロセツサ21のキヤツシユ制御装置は、キヤ
ツシユ31の“A"のデータがSH状態なので他に共有するキ
ヤツシユがあると判断し、バス25を通じて他のキヤツシ
ユをSHS状態にする信号とそのアドレスとを送出する。
各プロセツサのキヤツシユ制御装置はバス監視を行な
つており、キヤツシユをSHS状態にする信号を受信する
と、その時点のバス上のアドレスを用いて自分のタグメ
モリ内にそのアドレスのエントリがある場合に、そのエ
ントリの状態をSHS状態に書き換える(第1図の遷移条
件に対応する)。SHS状態は、過去にそのデータが複
数のキヤツシユによつて共有されていたが、現在は誰か
により書き換えられたため古いデータとなつてしまつた
ことを示す。従来の技術ではSHS状態という状態がなか
つたため、このエントリはINV状態にしていた。SHS状態
はINV状態に似ているが、そのアドレスのエントリは少
なくとも過去にそのプロセツサによつて使用されたとい
う情報を持つていることになる。
この第3図の(b)の状態から、次にプロツサ22が再
び1000番地のデータを処理するために読み出しを行なお
うとすると、タグメモリには1000番地のエントリが入つ
ているが、このエントリはSHS状態なのでそのデータは
古いことがわかり、キヤツシユミスとしてバス25上にト
ランザクシヨンを発生させる(本例ではリードステイル
と表現している)。この場合、プロセツサ21のキヤツシ
ユ制御装置がそのトランザクシヨンを監視しているの
で、キヤツシユメモリ31に存在する有効な1000番地のデ
ータ“A′”を主記憶26に書き込んでSH状態とする(第
1図の遷移条件に対応する)。主記憶26に書き込む時
には、このアドレスとデータとがバス25上に出るので、
このバストランザクションを起こす契機を与えたプロセ
ツサ22はそのデータをバス上から取り込み、キヤツシユ
のデータを“A′”に書き換えてSH状態とする(第1図
の遷移条件)。
この時、プロセツサ23,24のキヤツシユ制御装置もこ
のトランザクシヨンを監視しているので、バス上に出る
アドレス,データを検知することができる。プロセツサ
23,24のキヤツシユ制御装置はバス上に出たアドレスを
タグメモリの内容と比較し、この場合各々のキヤツシユ
にある同じアドレスでSHS状態のエントリの最新データ
がバス上に出ていることを検知できるので、このエント
リのデータをバス上の最新データ“A′”で更新してSH
状態とする(第1図の遷移条件)。この動作は、もと
もとプロセツサ21がプロセツサ22のキヤツシユミスに応
えて起こしたバストランザクシヨンと並行して行なわれ
るので、余分に時間を消費するものではない。この結
果、キヤツシユの状態は第3図の(c)のように変化
し、その後にプロセツサ23,24が1000番地のデータを処
理するために読み出しを行なおうとした場合には、リー
ドヒツトとなり、余分なバストランザクシヨンを省くこ
とができる。
一方、従来のINV方式では第6図のようにSHS状態が存
在しないため、第3図の(a)と同じ第7図の(a)の
状態でキヤツシユ31で書き換えがあつた場合には、キヤ
ツシユ32,33,34の1000番地のエントリは第7図の(b)
のようにINV状態とされていた(第6図の遷移条件
)。従つて、プロセツサ22のキヤツシユミスによるト
ランザクシヨンが起つても、プロセツサ23,24の1000番
地のアドレスの内容はINV状態のままになつており、こ
のバストランザクシヨンでキヤツシユのデータを取り込
むことはしない。この結果、従来の方式では第7図の
(c)のように“A′”のコピーはキヤツシユメモリ32
にしか送られない。第7図の(c)から、例えばプロセ
ツサ23が1000番地をアクセスしたとすると、このアクセ
スはキヤツシユミスになるので、このキヤツシユミスを
解決するためには、バスを使つてプロセツサ21か22の優
先度の高い方がデータを転送しなければならない。これ
は余分なバスサイクルを必要とするのでシステムの処理
速度が低下する。
本実施例によれば、過去に使つたキヤツシユのエント
リが他のプロセツサによる書き込みにより古くなつて
も、古くなつたデータを持つあるプロセツサが本当に必
要になつた時に起きるキヤツシユミスによるデータの転
送時に、他のキヤツシユにもデータが取り込まれるの
で、ヒツト率に関して有利になる。もし、そのエントリ
が将来に亙つてどのプロセツサによつても使われないと
きは、そのデータは決してアクセスされないのでバスに
トランザクシヨンを起こすことなく、然るべき時間のう
ちにキヤツシユ置換アルゴリズムによりキヤツシユから
消されるだけであり、このためにシステムの性能を低下
させることはない。また、いわゆるBD方式のキヤツシユ
・コンシステンシ・プロトコルを採用すると、すべての
書き込みに対してアドレスのみでなく変更データもバス
上に出すので、無駄なバストランザクシヨンが多発する
危険があつたが、本発明のキャッシュメモリ制御方法に
よれば、そのブロードキヤストを実際に他のプロセツサ
でデータが必要になつた時点で行なうので、そのような
無駄を行なわずにすむ。
次に、本発明の第2の実施例を示す。第1の実施例は
コピーバツク(copy−back)、つまりキヤツシユに書き
込みがヒツトした時は、データの更新はキヤツシユ上だ
けで行ない、主記憶へのデータの書き込みは、そのエン
トリがキヤツシユから追い出された時や、第1の実施例
のように他のプロセツサによつてキヤツシユミスが起こ
つた時に行なう方式についての例であつた。第2の実施
例はライトスルー(write−through)、つまりどのプロ
セツサによる書き込みであつてもすべて主記憶にも同時
に反映させる方式についての例である。
第4図に第2の実施例の本キヤツシユ制御方式を適用
した状態遷移図を示す。第1の実施例と同様に、Invali
d(INV)状態41は初期状態であり、すべてのキヤツシユ
のエントリは無効である。Exclusive(EX)状態42はあ
るキヤツシユに唯一主記憶のコピーがある場合である。
Shared(SH)状態43は複数のキヤツシユに同一の番地の
コピーが存在する場合である。Shared Stale(SHS)状
態45は共有されていたエントリが他のプロセツサからの
書き込みによつて古くなつた状態である。第2の実施例
では、第1図にあつた、書き込みによりキヤツシユと主
記憶が不一致になつた状態であるExclusive Dirty(EX
D)状態4は存在しない。
本実施例では、SHS状態への遷移は、(1)唯一の主
記憶のコピーを持つていたキヤツシユにおいて、他のプ
ロセツサの同じエントリのブロツクへのライトミス(ラ
イトステイル)により、そのエントリのデータの内容が
古くなつた場合と、(2)複数のプロセツサがキヤツシ
ユに主記憶のコピーを共有している時、その内の1つの
プロセツサによるライトヒツト、またはそのエントリの
データをキヤツシユに持たない別のプロセツサによるラ
イトミスが起こり、他のプロセツサのキヤツシユでその
エントリのデータの内容が古くなつた場合とに、発生す
る。
SHS状態になつたキヤツシユを持つプロセツサがその
エントリのデータをアクセスする必要が生じ、リードス
テイルとしてバス上にトランザクシヨンを出した時、あ
るいはそのエントリのデータを持たないプロセツサがリ
ードミスとしてトランザクシヨンを出した場合に、第1
の実施例と同じように、アクセスされようとしているブ
ロツクのエントリがSHS状態である他のキヤツシユは、
リードミスあるいはリードステイルを起こしたキヤツシ
ユのデータ読み出しを監視し、自分のキヤツシユのブロ
ツクデータも最近のものに更新する。この場合も全ての
キヤツシユの同じブロツクで更新が同時に起こるので、
後から繰り返し同じブロツクを読み出す必要がなくな
り、第1の実施例と同様にシステムの高速化に貢献する
ところ大である。
次に、第3の実施例を説明する。第3の実施例では、
第5図に示すように第2の実施例からInvalid(INV)状
態を取り去つたものである。第2の実施例では、INV状
態はシステムの初期状態でのみ必要であるので、これを
SHS状態に書き換えることが可能である。これまでは、S
HS状態は、そのブロツクのデータは現在無効であるが、
かつてそのブロツクのデータがキヤツシユに入れられた
ことがあるという履歴を示していた。システムに電源を
入れた初期状態では、厳密にいえばどのキヤツシユのエ
ントリも使われた履歴はないのであるが、磁気デイスク
などの不揮発性の記憶手段に以前に使用した時のキヤツ
シユの履歴を記録しておき、システムの初期化の時点で
ダグメモリに過去の履歴で最も‘もつともらしい’履歴
を書き込んでおけば、他のプロセツサによるバストラン
ザクシヨンで、使用する可能性の高いデータを、他のプ
ロセツサの動作を遅延させずに最初からキヤツシユに読
み込むことができる。
また、第5図ではEX状態がなくなつているが、EX状態
は唯一のキヤツシユに主記憶のコピーがある状態を示し
ていたので、SH状態の意味を拡張して、1つ以上のキヤ
ツシユに主記憶のコピーがあるとしておけば良い。この
SHとSHSの2状態の状態遷移では、初期化の時点ではシ
ステムがキヤツシユのタグメモリを適当な履歴でロード
し、そのプロセツサが実際にリードミス(リードステイ
ル)を起こしてそのブロツクをバスから取り入れればSH
状態に移行させる。他のプロセツサによつて、SHS状態
にあるブロツクがバス上から取り込まれようとする時
は、そのデータを同じくバス上から取り入れてキヤツシ
ユにロードしておくことにより、高いヒツト率を得るこ
とができる。
なお、本発明はここに挙げた実施例の他にも種々変形
して用いることが可能である。例えば、キヤツシユのエ
ントリを持つタグメモリがプロセツサからのキヤツシユ
のアクセスとバス側からの監視のためのアクセスとで共
有されるような場合や、SHS状態にあるエントリを持つ
タグメモリがたまたまその最近データがバス上にあるに
も拘らず、プロセツサ側からのアクセスで占有されてい
るような場合は、そのキヤツシユのエントリはバスのデ
ータを取り込まずにSHS状態のままにしておいてもキヤ
ツシユのコンシンテンシは保たれる。こうすることで、
バス上にトランザクシヨンを起こしたプログラムを待た
せずに処理を進めることが可能である。また、メモリ空
間のある範囲だけ本キヤツシユメモリ制御方法を実施
し、他の部分は従来の技術のキヤツシユメモリ制御方式
を適用することも可能である。要するに、本発明はその
技術思想を逸脱しない範囲で種々で変形して実施するこ
とが可能である。
[発明の効果] 以上説明したように、本発明によれば、他のプロセッ
サにおける同一アドレスに対する書き込みなどにより、
データの状態が無効であるエントリについて、このエン
トリと同一のアドレスに対してバス上にトランザクショ
ンが発生した場合に、そのエントリのデータとして、発
生したトランザクションにおけるデータ部分をバスから
取り込むとともに、当該エントリのデータの状態を有効
にするようにしたので、あるキャッシュメモリで実際に
書き換えが必要となった時点で、他のキャッシュメモリ
でも同じ書き換えを行なうようになり、複数のプロセッ
サで同一ブロックに対するキャッシュミスを繰り返すこ
とがなく、高いヒット率が得られ、かつ更新毎に更新デ
ータを他の全てのプロセッサに送信する必要もないの
で、そのためのオーバヘッドも少なくて済むという効果
がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例の状態遷移図を表す図、 第2図は本発明が適用される対象となるマルチプロセツ
サの構成例を示す図、 第3図は本発明の説明のためのキヤツシユの内容を示す
図、 第4図は本発明の第2の実施例の状態遷移図を表す図、 第5図は本発明の第3の実施例の状態遷移図を表す図、 第6図は従来の状態遷移図を表す図、 第7図は第3図に対応して従来のキヤツシユの内容を示
す図である。 図中、1……Invalid状態、2……Exclusive状態、3…
…Shared状態、4……Exclusive Dirty状態、5……Sha
red Stale状態、21〜24……プロセツサ、25……バス、2
6……主記憶、31……プロセツサ21のキヤツシユ、32…
…プロセツサ22のキヤツシユ、33……プロセツサ23のキ
ヤツシユ、34……プロセツサ24のキヤツシユ、41……In
valid状態、42……Exclusive状態、43……Shared状態、
45……Shared Stale状態、53……Shared状態、55……Sh
ared Stale状態である。
フロントページの続き (56)参考文献 特開 平2−234247(JP,A) 特開 平2−238534(JP,A) 特開 平3−94347(JP,A) 特開 平3−214337(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセッサがメモリを共有するシス
    テムにおいて、各プロセッサに付属するキャッシュメモ
    リの制御方法であって、 各プロセッサが、 前記付属するキャッシュメモリの各エントリ毎にデータ
    の状態を記憶し、 システムバス上に他のプロセッサが発生させるトランザ
    クションを監視し、 該監視中に発生したトランザクションにおけるアドレス
    と同一アドレスでデータの状態が無効であると記憶され
    たエントリがあるかを調べ、 該当するエントリがあれば、該エントリのデータとして
    前記トランザクションにおけるデータ部分をバスから取
    り込み、 当該エントリのデータの状態を有効にすることを特徴と
    するキャッシュメモリの制御方法。
  2. 【請求項2】各プロセッサが、自己のキャッシュメモリ
    のエントリを書き込みにより更新する際に、当該エント
    リの更新を他のプロセッサに通知し、 更新を通知された各プロセッサが、自己のキャッシュメ
    モリの該当エントリのデータの状態を無効とすることを
    特徴とする請求項1に記載のキャッシュメモリ制御方
    法。
  3. 【請求項3】前記トランザクションは、自己のキャッシ
    ュメモリにおけるデータの状態が無効なエントリに対し
    てリードミスを起こしたプロセッサによって発生される
    ことを特徴とする請求項1に記載のキャッシュメモリ制
    御方法。
  4. 【請求項4】各プロセッサが、初期状態において、共有
    する前記メモリの所定のアドレスを自己のキャッシュメ
    モリのタグメモリにロードし、各エントリのデータの状
    態を無効に設定することを特徴とする請求項1に記載の
    キャッシュメモリ制御方法。
  5. 【請求項5】前記所定のアドレスが、予め設定されたア
    ドレスであることを特徴とする請求項4に記載のキャッ
    シュメモリ制御方法。
  6. 【請求項6】前記所定のアドレスが、前記キャッシュメ
    モリの過去の履歴に基づいて決定されるアドレスである
    ことを特徴とする請求項4に記載のキャッシュメモリ制
    御方法。
  7. 【請求項7】前記所定のアドレスが、無作為に決定され
    るアドレスであることを特徴とする請求項4に記載のキ
    ャッシュメモリ制御方法。
  8. 【請求項8】他のプロセッサとメモリを共有するプロセ
    ッサであって、 各エントリ毎にデータと該データの状態とを記憶するキ
    ャッシュメモリと、 システムバス上に他のプロセッサが発生させるトランザ
    クションを監視する監視手段と、 該監視手段の監視中に発生レたトランザクションにおけ
    るアドレスと同一アドレスで、データの状態が無効であ
    ると記憶されたエントリが、前記キャッシュメモリにあ
    るか否かを判断する判断手段と、 該判断手段によって該当するエントリがあると判断され
    た場合に、該エントリのデータとして前記トランザクシ
    ョンにおけるデータ部分をバスから取り込むとともに、
    当該エントリのデータの状態を有効にするデータ更新手
    段とを有することを特徴とするプロセッサ。
JP2179541A 1990-07-09 1990-07-09 プロセッサおよびそのキャッシュメモリ制御方法 Expired - Fee Related JP3009430B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2179541A JP3009430B2 (ja) 1990-07-09 1990-07-09 プロセッサおよびそのキャッシュメモリ制御方法
US08/393,927 US5737568A (en) 1990-07-09 1995-02-21 Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2179541A JP3009430B2 (ja) 1990-07-09 1990-07-09 プロセッサおよびそのキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JPH0467242A JPH0467242A (ja) 1992-03-03
JP3009430B2 true JP3009430B2 (ja) 2000-02-14

Family

ID=16067557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2179541A Expired - Fee Related JP3009430B2 (ja) 1990-07-09 1990-07-09 プロセッサおよびそのキャッシュメモリ制御方法

Country Status (2)

Country Link
US (1) US5737568A (ja)
JP (1) JP3009430B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154100A (ja) * 1996-11-25 1998-06-09 Canon Inc 情報処理システム及び装置及びその制御方法
US5860120A (en) * 1996-12-09 1999-01-12 Intel Corporation Directory-based coherency system using two bits to maintain coherency on a dual ported memory system
US5943684A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6317811B1 (en) * 1999-08-26 2001-11-13 International Business Machines Corporation Method and system for reissuing load requests in a multi-stream prefetch design
US6496907B1 (en) * 1999-10-22 2002-12-17 Apple Computer, Inc. System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions
US6356983B1 (en) 2000-07-25 2002-03-12 Src Computers, Inc. System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US6859864B2 (en) * 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US20060138830A1 (en) * 2004-12-23 2006-06-29 Cho-Hsin Liu Barrel shaped chair of a racing car
US8279886B2 (en) * 2004-12-30 2012-10-02 Intel Corporation Dataport and methods thereof
US7941610B2 (en) 2006-04-27 2011-05-10 Hewlett-Packard Development Company, L.P. Coherency directory updating in a multiprocessor computing system
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
CH672816A5 (ja) * 1986-10-03 1989-12-29 Pantex Stahl Ag
US5193189A (en) * 1987-10-07 1993-03-09 Allen-Bradley Company, Inc. Programmable controller with multiple priority level task processing
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5276828A (en) * 1989-03-01 1994-01-04 Digital Equipment Corporation Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5289588A (en) * 1990-04-24 1994-02-22 Advanced Micro Devices, Inc. Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system

Also Published As

Publication number Publication date
JPH0467242A (ja) 1992-03-03
US5737568A (en) 1998-04-07

Similar Documents

Publication Publication Date Title
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US6343347B1 (en) Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US5043886A (en) Load/store with write-intent for write-back caches
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US5146603A (en) Copy-back cache system having a plurality of context tags and setting all the context tags to a predetermined value for flushing operation thereof
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6871267B2 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US20110173393A1 (en) Cache memory, memory system, and control method therefor
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
US20050204088A1 (en) Data acquisition methods
JP3009430B2 (ja) プロセッサおよびそのキャッシュメモリ制御方法
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
JP3236287B2 (ja) マルチプロセッサシステム
US6345320B1 (en) DMA address buffer and cache-memory control system
KR101858597B1 (ko) 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6807608B2 (en) Multiprocessor environment supporting variable-sized coherency transactions
US6349367B1 (en) Method and system for communication in which a castout operation is cancelled in response to snoop responses
JPH04230549A (ja) 多重レベル・キャッシュ
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US6338124B1 (en) Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6477622B1 (en) Simplified writeback handling

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081203

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091203

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees