JP2681410B2 - マルチプロセッサ・キャッシュにおける排他性をロックする方法 - Google Patents

マルチプロセッサ・キャッシュにおける排他性をロックする方法

Info

Publication number
JP2681410B2
JP2681410B2 JP2211437A JP21143790A JP2681410B2 JP 2681410 B2 JP2681410 B2 JP 2681410B2 JP 2211437 A JP2211437 A JP 2211437A JP 21143790 A JP21143790 A JP 21143790A JP 2681410 B2 JP2681410 B2 JP 2681410B2
Authority
JP
Japan
Prior art keywords
block
processor
cache
access permission
permission table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2211437A
Other languages
English (en)
Other versions
JPH03130849A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03130849A publication Critical patent/JPH03130849A/ja
Application granted granted Critical
Publication of JP2681410B2 publication Critical patent/JP2681410B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は一般的には、マルチプロセッサ(MP)データ
処理システムにおけるキャッシュ・メモリの一貫性の制
御に関し、特に各プロセッサに対して、アクセス、即ち
読取りあるいは書込みについての正確な許可を与える許
可機構に関する。
(従来の技術) 個別のプロセッサに対して同時にランしうる動作を並
行して実行することにより処理能力を増加するために高
性能のMPコンピュータシステムが開発されつつある。そ
のような高性能のMPコンピュータシステムは、独立し
て、並列に動作するが、データを交換したいとき相互
に、あるいは主記憶装置(MS)と適宜通信する多数の中
央プロセッサ(CP)を含むことを特徴としている。CPお
よびMSはデータを交換するために接続する必要のある入
口/出口(I/O)ポートを有している。
CPの各々が独自のキャッシュを有している緊密結合の
マルチプロセッサシステムとして知られているタイプの
MPシステムにおいては、システムの各種のレベルでの一
貫性の問題が存在している。詳しくは、メモリの階層の
隣接レベル(即ち、第1レベルのキャッシュ、第2レベ
ルのキャッシュ等)の間で不一致が発生する可能性があ
る。マルチキャッシュは例えば、CPの1個がそのコピー
を修正したため同じデータの異なるバージョンを保有す
るということがありうる。従って、各プロセッサのキャ
ッシュが、同時に数個のキャッシュにおいてありうるラ
インに対して何か発生したか、知っておく必要がある。
同じ主記憶装置を共用する多数のCPがあるMPシステムに
おいては、各CPはアクセスが発行されるときのアーキテ
クチャの仕様に応じて最も新しく更新されたバージョン
のデータを取得する必要がある。この要件によってキャ
ッシュ間のデータの一貫性を常時監視することが必要と
なる。
キャッシュの一貫性に関する問題に対して多数の解決
策が提案されてきた。初期の方法は(1976年)AFIPSの
会報のL.K.Tangによる「Cache System Design in the T
ightly Coupled Multiprocessor System」並びに1978年
12月 IEEE Transactions on ComputersのL.M.Censier
およびP.Feautrierの「A New Solution to Coherence P
roblems in Multicache Systems」の1112−1118頁に記
載されている。これらの提案では共用された書込み可能
データが、中央集約化したグローバル・ディレクトリを
用いるマルチキャッシュに介在できるようにする。グロ
ーバル・ディレクトリは、キャッシュの相互問合せ(X
I)をブロック状態に基づいて発生させることができる
ようメモリブロックの状態を記憶する。一貫性を保つた
めに、XI信号が関連のブロックアドレスと共に他のキャ
ッシュへ伝送され、基準とされたブロックを無効にする
か、あるいは更新する。いずれの数のキャッシュもブロ
ックの読出し専用(RO)コピーを有するが、そのキャッ
シュのブロックを修正するには、プロセッサは読取りお
よび書込み(RW)アクセスを有する必要がある。もしそ
のキャッシュがそのブロックのコピーを有する唯一のキ
ャッシュである場合、ブロックが排他性(EX)としてタ
ッグを付けられる。タング(Tang)は、プロセッサとメ
モリ装置とを相互に接続するクロスバースイッチを組み
込んでよい記憶制御要素(SCE)に位置しているグロー
バル・ディレクトリとしてローカル・キャッシュ・コピ
ー・ディレクトリを使用することを提案した。センシャ
(Censier)他はその代りに記憶ブロックの状態を読取
るためにメモリ・フラッグを用いることを提案してい
る。
従来技術によるMPシステムにおいては種々タイプのキ
ャッシュがある。そのようなキャッシュの1タイプはIB
Mシステム/370モデル3033MPに対して、米国特許第4,14
2,234号に記載されているストアスルー(ST)キャッシ
ュである。STキャッシュ構成は、データの変動を常に主
記憶装置に対して更新するため主記憶装置(あるいは第
2レベルのキャッシュ)への直接のCP記憶データには干
渉しない。主記憶装置へのストアスルーの更新時、記憶
されたキャッシュ・ラインの可能性のある遠隔コピーを
無効とするため適当な相互問合せ(XI)動作が行われう
る。記憶制御要素(SCE)は主記憶(MS)装置の記憶リ
クエストを待ち行列に入れるため適当な記憶スタックを
保持し、バッフア制御要素(BCE)とSCEとの間の標準の
通信は記憶スタックのオーバフロー状態を排除する。SC
E記憶スタックが一杯になると、その状態がクリアされ
るまで関連のBCEがそのMS記憶を保持する。ビーン(Bea
n)他の米国特許第4,142,234号においてはキャッシュ・
ディレクトリの不要な無効の問合せをフィルタするため
のBIASフィルタメモリ機構が提案されている。
別のタイプのキャッシュ構成は、例えば、アンダーソ
ン(Anderson)他の米国特許第3,735,360号並びにワー
ナー(Warner)他の米国特許第4,771,137号に記載のよ
うなストアイン・キャッシュ(SIC)である。SICキャッ
シュ.ディレクトリがフラッシュ(Flushe)他の米国特
許第4,394,731号に詳細に記載されており、該特許にお
いてはストアイン・キャッシュにおける各ラインが排他
的な読出し専用(EX/RO)フラッグビットにより制御さ
れるマルチプロセッサの共用性を有している。STキャッ
シュとSICキャッシュの間の主要な差異は、SICにおける
全ての記憶がキャッシュ自体に指向されていることであ
る(これによりもし記憶されたラインがSICキャッシュ
に無いときキャッシュ・ミスを生ぜしめる可能性があ
る)。米国特許第4,503,497号においてクリゴウスキ(K
rygowski)他によりミス・フェッチ(miss fetch)時の
データ転送は、もしコピーが遠隔キャッシュにある場合
キャッシュ対キャッシュ転送(CTC)を介して行われう
ることが提案されている。各キャッシュにおいてディレ
クトリのコピーを含むSCEが用いられている。このため
相互問合せ(XI)の判断がSCEにおいて解決できるよう
にする。通常、ラインがキャッシュから交換されたとき
のみキャッシュ・ラインの修正が主記憶装置に対して更
新される。
従来の相互問合せ(XI)法においては、ブロックBが
CPに対してEXでロックされると、遠隔キャッシュにおい
てBによりカバーされたいずれの既存のキャッシュ・ラ
インも無効とされる。ブロックサイズがL1ラインサイズ
より大きい場合、度々冗長XI−無効を生ぜしめ、即ちラ
インは他のCPにおいて修正されることなく無効とされ
る。余分のキャッシュ・ミスとディレクトリ・ハンドリ
ングによるオーバヘッドは、ブロックサイズがラインサ
イズよりはるかに大きい(例えば16倍)場合許容しえな
くなる。
実験から、フェッチ(fetch)と記憶の双方に対して
著しい空間的局所性が観察された。より大きい粒状ブロ
ックを用いてEXロッキングを実行することにより、非EX
記憶の速度を著しく低減することができる。その結果、
前述の実行上のオーバヘッドを発生させることなくより
大きい粒状EXロッキングを実行できることは価値があ
る。
従来のMP構成においては、キャッシュ・ラインの状態
(例えばRO、EX、等)はキャッシュのディレクトリにお
いて状態ビットを用いることにより記憶される。もし直
ちにCPにより書き込むことができないならば有効なキャ
ッシュ・ラインは通常少なくとも読み取り可能である。
例えば、IBM 3081 MPシステムにおけるキャッシュ構成
を検討してみよう。有効キャッシュ・エントリが排他的
でない場合(関連のディレクトリ・エントリにおけるEX
ビットがオフである場合)、ラインは自動的に読出し専
用(RO)と見做され、関連のCPから読み出すことができ
る。有効なキャッシュ・ラインに対する全てのアクセス
(読出しと書込みの両方)が個別の許可機構を通る必要
のないという従来技術で公知のものはない。
(発明が解決しようとする課題) 従って本発明の目的は、マルチプロセッサシステムに
おける各プロセッサに対して、アクセス、読出しあるい
は書込みの正確な許可を提供することによりキャッシュ
の一貫性の制御を簡素化する許可機構を提供することで
ある。
(課題を解決するための手段) 本発明によれば、BCEがアクセス許可テーブル(AAT)
を保つことによりブロックのアクセス許可のトラッキン
グを保持する。AATは、最近に使用されたブロックのRO
およびEX状態を記録するディレクトリである。有効ビッ
ト以外は、AATの各エントリはブロックIDフィールドを
含み、エントリがROかあるいはEXかを記録する。CPがア
クセスするブロックは、もしそのローカルAATで見出さ
れないとすれば一時的に無効(TI)と見做される。各プ
ロセッサBCEはそのローカルAATにおける情報を用いてデ
ータブロックのためのアクセス許可を決定する。ブロッ
クのサイズはキャッシュ・ライン・サイズの倍数でよ
い。AATの各エントリはアクセス状態、例えばINV,RO,E
X,TI,等を含む。各キャッシュのアクセスはROあるいはE
X許可のいずれかを要する。SCEはプロセッサからの許可
リクエストを解決するための十分な情報(例えば全ての
EX許可)を保持している。
本発明の前述並びにその他の目的、局面および利点は
添付図面を参照して本発明の好適実施例についての以下
の詳細説明からよく理解される。
(実施例) 図面特に第1図を参照すれば、本発明をその中で用い
うるタイプのマルチプロセッサ(MP)システムがブロッ
ク線図で示されている。該MPシステムは4個の中央プロ
セッサ(CP0,CP1,CP2およびCP3)10,11,12および13を含
み、各CPは命令実行(IE)装置14,15,16,17と、バッフ
ァ制御装置(BCE)20,21,22,23をそれぞれ含んでいる。
各IEは、主記憶装置(MS)50においてオペランドを取出
し、記憶することを要求する命令を出すハードウエアと
マイクロコードとを含む。
IE14−17は、各キャッシュ制御装置BCE20−23に取出
しあるいは記憶指令を出すことにより取出しあるいは記
憶動作を開始し、該BCEは、関連のCP10−13により排他
的に使用される関連のプロセッサキャッシュ・ディレク
トリ(PD)と全てのプロセッサキャッシュ制御装置とを
備えたプロセッサのストアスルー(ST)キャッシュを含
む。CPは一般的にオペランドが必要とする各ダブルワー
ド(DW)ユニットに対して取出し、あるいは記憶指令を
出す。もしDWを含むキャッシュ・ラインがキャッシュ・
ヒットであるPDにあるとすれば、DWは指令に従ってキャ
ッシュにおいて取り出されるかあるいは記憶される。キ
ャッシュにおけるオペランドの取出しヒットに対して、
BCEの外部に出る必要なく記憶装置のアクセスが完了す
る。時には必要なDWがキャッシュに無いことがあり、こ
れがキャッシュ・ミスを起因する。IE取出しあるいは記
憶指令が完了しうる前に、DWを主記憶装置から取り出す
必要がある。この作業を行うために、BCEは、記憶制御
要素(SCE)30に対して、主記憶装置50からIEが必要と
するDWを有するデータのラインユニットを取得するよう
要求する、対応した取出しあるいは記憶ミス指令を発生
する。ラインユニットはライン境界において主記憶装置
50に位置するが、必要なDWは、ミスしたライン転送を完
了してしまう前にIEリクエストを進行させるために、リ
クエストを出しているBCEに戻される、取出されたライ
ンにおける最初のDWである。
SCE30はCP10−13と主記憶装置50とに接続されてい
る。主記憶装置50は複数の基本的な記憶モジュール(BS
M)制御装置BSC0,BSC1,BSC2およびBSC3(それぞれ51,5
2,53および54)からなり、各々の基本記憶制御装置は2
個のBSM0(60,62,64および66)とBSM1(61,63,65および
67)に接続されている。4個のBSC51−54はそれぞれSCE
30に接続されている。
SCE30は4個のコピー・ディレクトリ(CD)31,32,33
および34を含み、各ディレクトリは、フラッシュ(Flus
che)他の米国特許第4,394,731号に記載のものと同様
に、BCEの1個において対応するプロセッサ・キャッシ
ュ・ディレクトリ(PD)の中味のイメージを含んでい
る。PDおよびCDの双方は論理アドレスから同じビット位
置によりアドレス指定される。CDは全ての相互の無効
(XI)リクエストを扱い、そのため各CPに対して一層よ
く供する。主記憶装置における各BSM60−67および対応
するSCEポートの間と、SCEポートからI/Oチャンネル・
プロセッサ40および対応するCP10−13の各々までに、ダ
ブルワードの幅の双方向性データバスが設けられてい
る。データバスと共に、また制御およびアドレス信号の
ための個別の組となった指令バスがある。CPがDWアクセ
ス・リクエストに対してキャッシュ・ミスに遭遇する
と、そのBCEはミス指令をSCE30へ送ることにより主記憶
装置ヘラインアクセス・リクエストを開始する。該SCE3
0は主記憶装置における必要なBSMへ指令を再発行する。
BSMがビジー状態の場合、SCE30は指令待ち行列にそのリ
クエストをセーブし、後で必要なBSM60−67が使用可能
となると該リクエストを再発行する。SCE30はまた順序
立てて主記憶装置の指令を並べることによって、そのXI
論理によりキャッシュの衝突が発見されるときを除いて
先入れ先出し(FIFO)の順で発行される。主記憶装置の
リクエストの通常のハンドリング順序の間、SCE30は常
に主記憶装置の状態をモニターし、保護キーと全てのキ
ャッシュ・ディレクトリの問合せ結果を分析し、現在SC
E30に保持されている全ての保留の指令の更新状態を検
査し、またSCE30で受け入れられるべくBCE20−23で待機
中であるいずれかの新しいBCE指令を探索する。
SCE30は複数の記憶スタック(SS0,SS1,SS2,SS3)35,3
6,37および38を保持し、各スタックは対応するCP用の16
のDWまでの主記憶装置のリクエストを保持する。SCE30
は主記憶装置のアドレスと有効性とを指示するための記
憶スタック用の十分なディレクトリ情報を保持してい
る。記憶スタックがオーバーフローのおそれがあると、
SCE30は関連のBCE20−23に優先順位リクエストを送り、
BCEが記憶スタックの全稼動状態をクリヤする信号を後
でSCE30から受け取るまでより多くの記憶リクエストを
送るのを保留する。記憶スタックにおけるデータは、各
記憶スタック内での到来順序を保つよう適当にスケジュ
ーリングして主記憶装置に対して更新される。CPからの
ライン取出しリクエストは、SCEが記憶スタック中のラ
インに対する全ての既存の記憶が関連のBSM60−67まで
送られたことを確認するまでSCE30により保持されてい
る。
キャッシュ・ディレクトリのエントリにおいてEX状態
を記憶する従来の方法は極めて高くつく可能性がある。
例えば、32Kのエントリを備えた第2レベル(L2)キャ
ッシュを検討してみよう。もしSCEがEX状態に対してL2
エントリ毎に3ビットを保持しているとすれば、100Kビ
ットと、第1レベル(L1)キャッシュ・ディレクトリに
おいて必要とされるビットとを加えたものを必要とす
る。第2図に示すように比較的小さいロック・テーブル
T1−Tnを用いることにより回路のコストを低減できる。
第2図に示すMPシステムにおいては、各プロセッサCPi
に対して、SCEは、通常アドレスを介してインデックス
(即ちハッシュ)されたセットアソシアティブ・テーブ
ルとして構成されるロック・テーブルTiを保持する。Ti
の各エントリに対して、ブロック(B)のアドレスを記
録するIDフィールド(および適当な有効タッグ)があ
る。Tiの各エントリはCPiのためにブロックのEXロッキ
ングを示す。最初は、ロック・テーブルにおける全ての
エントリは無効である。ブロック・サイズbは、通常は
キャッシュ・ライン・サイズの整数の倍数ではあるが
(第1レベルあるいは第2レベルの)キャッシュ・ライ
ン・サイズと同じである必要はない。
CPからの各記憶がSCEと同期化する必要のある、従来
のSTキャッシュに対するSCEでの記憶同期化機構を検討
する。IBM3033の設計におけるように、各プロセッサの
キャッシュ・ディレクトリ(PD)のエントリは、EX/RO
状態を記録することなくラインが有効であるか否かのみ
示す。しかしながら、SCEにおいて、本システムにおけ
る各プロセッサCPiに対するEXロック・テーブルTiを想
定する。SCEにおける基本的な動作は下記の通りであ
る。
まず、プロセッサCPiからの(ブロックB上の)記憶同
期化リクエストに対してSCEによるハンドリングを検討
する。
(a.1)BがTiにおいてヒットすると、記憶同期化がCPi
に対して直ちに許可される。
(a.2)BがTiのいずれにも無いとき、SCEはTiにおいて
Bのための新しいエントリをつくり、記憶同期化をCPi
に許可する。前述のプロセスに並行して、SCEはまた
(それらのキャッシュにおいてBのデータを含みうるCP
に対して)遠隔のキャッシュからのBの全てのラインを
XI無効とさせる信号を送出する。
(a.3)BがTj(j≠i)をヒットすると、これはSCEに
おける遠隔EXヒットと同様である。この場合Bのエント
リはTjから削除され、一方新しいエントリが(XI無効信
号をCPjへ送り)Tiにおいてつくられる。
次に、SCEがCPiからブロックBのための取出しリクエ
スト(例えばキャッシュ・ミス)を受け取る場合の動作
を検討する。
(a.4)Bがいずれかの遠隔のTjで記録されない場合、
遅滞なく取出しが開始できる。
(a.5)BがTj(但しj≠i)をヒットする場合、Bエ
ントリがSCEにおいてまずTjから無効とされる。
前述のステップの中、(a.1)は種々CPからの多数の
記憶装置に対して並行に実施できる。他のステップが実
行された場合、同じサイクルにおいて1回以上の記憶同
期化リクエストを実施する可能性を阻止するもののSCE
において適正な直列化が必要とされる可能性がある。ロ
ッキング粒状性bがより大きく(例えば4K)となれば、
ステップ(a.2)および(a.3)からXI無効が激しい
(Li)キャッシュ・ミスを起因する。
前述のEXロックアップ機構は米国特許第4,142,234号
においてビーン(Bean)他が提案するBIAS(バッファ無
効アドレススタック)フィルタメモリ方法と相違する。
BIASフィルタメモリ構成においては、各プロセッサCPi
に対して、SCEは、再取出しなくCPiから最近無効とされ
たブロックを記録するテーブルIiを保持する。CPiから
の各記憶リクエストは、XI無効の可能性に対して同時に
全てのIj(j≠i)に対してチェックする必要がある。
プロセッサの数が大きくなるにつれて、この同時チェッ
クは重い負荷となる。EXロック・テーブルによる方法に
おいては、殆んどの記憶は、CPiと関連したテーブルTi
に、従ってSCEハンドリングにおいてより高度の同時性
を以ってヒットする。さらに、いずれかの瞬間におい
て、最近記憶されたブロックIDはBIAS方法において遠隔
のIjsの殆んどにおいて滞留する。Tjテーブルは各CPか
らの最近の記憶のみを記録し、(無効のエントリを除い
て)互いに離される。その結果、Tjテーブルはディレク
トリ回路をより効果的に利用できる。
パイプラインがより強く押し込められる将来のプロセ
ッサにおいては、記憶同期化の遅れはパイプラインの性
能に対して可成り高価になりうる。従って、SCEへの記
憶同期化周波数を減少できるようにBCEレベルにおいて
適正なEXがロッキングを提供することが有利である。前
述のSCEロックアップ構成においては、Tiでロックされ
たブロックは(CPjに対してj≠iの)遠隔キャッシュ
のいずれにおいても介在しえないことを実際に意味す
る。もしそのようなロッキング情報がBCEまで通される
とすれば、局所的にロックされたブロックに対する記憶
に対してSCEとのハンドシェイクを排除することができ
る。第3図において、EXローカル・ロック・テーブルLi
は各プロセッサCPiに対してBCEにより保持されている。
Liの各エントリはCPiによりEXにロックされるブロック
のIDを記録する。通常、LiはTi以上に多いエントリを有
していない。記憶およびロッキングに対する動作は以下
の通りである。
(b.1)最初にLiにおける全てのエントリが無効とされ
る。
(b.2)CPiからの記憶がLiにおいて記憶されたブロック
Bにヒットすると、記憶は遅滞なく実行することができ
る。
(b.3)CPiからBへの記憶がLiにおいてミスすると、BC
EはSCEへ同期化リクエストを送る。SCEからの許可信号
を受け取るとBからの有効なエントリがLiでつくられ
る。
(b.4)CPiがSCEからBへの解除リクエストを受け取る
と、CPiのBCEは、もしそのようなエントリが見出される
とすれば、LiからのBのエントリを無効とする。BCEへ
確認信号が送られる。
BCEに関する限り、通常の取出し(非EXタイプ)に対
しては特殊なハンドリングは何ら必要とされない。SCE
に関する限り、1つの主要な差異は遠隔EXビットのハン
ドリングにある。CPiからBへのアクセスがTj(但しj
≠i)にヒットするような状況を検討してみる。
(b.5)SCEは、BがLjにおいてロックされている可能性
のある場合Bに対するEXロックを解除するようCPiに信
号を出す。(TjはLj以上に多いロック・エントリを担持
しないよう阻止されない。)この信号は(例えばCPi
らのアクセスがEX状態に対するものである場合)適当な
XI無効リクエストと結合できる。SCEはCPiから確認信号
を受け取るまで((b.4)を参照のこと)XI動作を完了
しない。
Liにおけるロッキング情報をTiにおけるロッキング情
報に対するサブセットに保持することが望ましい。それ
はエントリがTiから削除されると、対応するブロックが
Liに介在しないよう保証するに十分である。Tiのエント
リは2つの理由、即ちXIと、ローカル・リクエストによ
る交換とのためTiから削除できる。XIハンドリング(例
えば前述の(b.5))はサブセットのルールを適正に保
存する。局部的な交換に対しては、単にCPiからのEXリ
クエストによってエントリはTiから交換されることは明
らかである。
前述の説明は従来のXI無効化の方法を想定している。
即ち、ブロックBが、CPiからEXロックされると、遠隔
キャッシュにおいてBによりカバーされる既存のいずれ
のLiラインも無効とされる。ブロック・サイズがプロセ
ッサ・キャッシュ・ライン・サイズより大きい場合、こ
のため冗長性のXI無効を起因させる(即ち、他のCPにお
いて修正されることなくラインが無効とされる)。余分
のキャッシュ・ミス並びにディレクトリ・ハンドリング
によるオーバヘッドは、ブロックサイズがラインサイズ
よりはるかに大きい場合(例えば16倍)である場合許容
しえなくなる。この問題を解消するための一方法はロッ
ク・テーブルにおいて特殊なSベクトル(記憶ベクト
ル)を用いて繰返されたXI無効性をフィルタすることで
ある。例えばSCEにおける各Tiテーブル・エントリのこ
のようなSベクトルの増強を考えてみよう。各Sベクト
ルはブロック内のキャッシュ・ラインの数と同じく多い
ビットを有する。エントリTiにおいてつくられ、CPi
ブロックBへ記憶するよう許可すると、対応するSベク
トルビットがクリヤされる。CPiからのBのK番目のラ
インに対する記憶が関連のSベクトルのK番目のビット
のオフを見出すと、SCEはビットをオンとし、適正な遠
隔キャッシュに対して信号を送出して記憶されつつある
ラインを無効とする。基本的に、SベクトルのK番目の
ビットは、関連のラインの遠隔無効化が先に達成された
か否かを示すインジケータである。
実験から、取出しおよび記憶の双方に対して顕著な空
間的局所性が観察された。より大きい粒状性ブロックを
用いてEXロッキングを実行することにより非EX記憶の速
度を著しく低減させることができる。その結果、前述の
実行上のオーバヘッドを発生させることなく、大きな粒
状性EXロッキングを実行できることが価値がある。以下
の説明においては、説明を簡素化するために、排他的ロ
ッキングの粒状性がキャッシュ・ライン当り128バイト
を備えたマルチプロセッサシステムにおける4Kのブロッ
クにより示されている。そのような場合、各ブロックに
は32ラインがある。しかしながら、これらの数は例示で
あって、本発明の実施においては種々サイズのブロッ
ク、ラインおよびキャッシュを用いることができる。ま
た、本発明の目的に対して、ストアスルー(ST)キャッ
シュ構成を、上記システムにおける数個のプロセッサの
各々により記憶ブロックの排他的(EX)所有権のトラッ
キングをSCEが保つようにしているものと想定されてい
る。また、各中央プロセッサ(CP)において、ブロック
情報のトラックキングを保つディレクトリ(DP)がある
ものと想定される。
BCEがデータのブロックのアクセス許可のトラッキン
グを保つ1つの方法はアクセス許可テーブル(AAT)を
維持することである。本発明によるAAT構成のための基
礎は、大きいブロックを用いて、取出しと記憶の双方を
比較的少ない数の最も新しく使用されたブロックにより
高度にカバーできるということが認識されていることで
ある。例えば、下記の表は、取出しおよび記憶の双方に
対して累積ヒット比を、ブロックサイズ4KとのLRU(最
も最近使用された)交換ポリシイにより管理されるディ
レクトリに提供する。
スタック深さ ヒット比 1 .4771 2 .7740 4 .9189 8 .9635 16 .9799 32 .9873 Nをプロセッサの数とする。各プロセッサは独自のプ
ライベート(ローカル)キャッシュを有する。SCEにお
ける論理グローバルAAT(GAAT)は1個以上の記憶ブロ
ックに対する情報を含むエントリを有する。記憶された
各ブロックBに対して、以下の情報がある。(1)ブロ
ックID(即ち、Bのアドレス)、(2)許可タッグAB
および(3)許可割当てのためのビットベクトルLB,AB
はINV,ROおよびEXのような状態を示す。LBには、各プロ
セッサ毎に、いずれのプロセッサが現在許可を受けてい
るかを示す1ビットがある。全てのEX割当てはGAATにお
いて反映されるべきである(即ち、サブセット・ルール
がEX状態で強行される)。構成によって、サブセット・
ルールはRO割当てに対しては強行されない(即ち、ブロ
ックBがプロセッサにおいてAATではROであり、一方B
のエントリはGAATにはない)。しかしながら、Bに対す
る有効なROエントリがGAATに介在しているとき、全ての
RO割当ては、正確でないとしても控え目にLBにおいて指
示されるべきである。即ち、LBのi番目のビットは、CP
iがBにおいてROの許可をされているときオンとなるべ
きである。BがGAATにおいて記録されていないとき、ロ
ーカルAATのいずれかにおいてBがROであるという可能
性を考えることができる。この動作は以下の通りであ
る。
(c.1)最初にGAATおよび全てのAATは空の情報を含む。
(c.2)Bのエントリが(プロセッサからのリクエスト
を介して)GAATへ挿入されると、全てのビットを備えた
ROがLBにおいてオンであるかの如く初期化される。(全
てのLBビットは、またもしサブセット・ルールがROにお
いて強行されるとすればオフとなる。) (c.3)GAATにおける交換が判断されるとEXブロックの
エントリはキャッシュに留るためのより高い優先順位が
与えられる。しかしながら、もしEXブロックのエントリ
が交換する必要があるとすれば、SCEはEX状態を有する
プロセッサに、交換動作を終了する前にそれを断念する
よう信号を与える。(もしまたサブセット・ルールがRO
に対して強行されるとすれば、ROのエントリをGAATから
交換するには、その交換は解除確認を待機する必要のな
いものの、SCは関連のプロセッサにその状態を解除する
よう信号を出す必要がある。) (c.4)CPiがBにおいてRO許可を必要とするとき、GAAT
において、LBのi番目のビットがオンとされる。ABはRO
を指示する。
(c.5)CPiがBにおいてEX許可を必要とする場合、GAAT
において、LBのi番目のラインはオンとされ、残りはオ
フとされる。
ABはEXを指示する。
(c.6)CPiがBにおいてEX状態を解除すると、タッグAB
は新しい状態を示す。
(c.7)CPiがBにおいてROの状態を解除すると、LBのi
番目のビットが、そこに介在していないとすればGAATに
おいてオフとされる。しかしながら、ある種の構成では
このような解除の信号をSCEに提供しない。その場合、L
Bは更新されない。
通常通り、XIの動作は下記のようにあるEX状態のハン
ドリングに対して必要とされる。
(c.8)プロセッサがBにおいてEX状態を取得すると、
それらのLBビットをGAATにおいてオンとさせた全ての遠
隔のプロセッサがそれらのAATからの許可を無効にすべ
く通知されるべきである。そのような信号は、もしAB
元々ROを指示していたのであればEX許可と並列でよい。
(c.9)PiからのBに対する許可リクエストがSCEにおい
て別のプロセッサに対するブロックEXを見出すと、許可
の発行は遠隔プロセッサがそのEXを断念してしまうまで
待機すべきである。次のレベルの共用メモリ(キャッシ
ュ)においてまだ反映されていない遠隔プロセッサから
Bへのいずれかの記憶は、他の何らかの機構がデータの
取出しに対するアーキテクチャのインパクトを保証でき
ないならば次のミス・フェッチを阻止すべきである。
GAATのサイズが十分大きい場合キャッシュ・ライン無
効化のハンドリングを適正化するために各GAATのエント
リにおいて情報を増強することができる。通常、プロセ
ッサからラインへの記憶はキャッシュ無効化を遠隔キャ
ッシュに対してトリガして行うことができる。同じブロ
ックに多数の記憶を行うと多数の無効化を起因させる。
GAATの各ブロックのエントリは1組のVベクトル(有効
ベクトル)と関連している。GAATのBに対する各ブロッ
クのエントリにおいて、各プロセッサPに対するVベク
トルVPBがある。このVベクトルにおけるブロック内に
ライン毎に1ビットがある。VPBにおけるi番目のビッ
トはCPiにおけるキャッシュに対するBでのi番目のキ
ャッシュ・ラインの有効性を示す。また、前述のような
V−ベクトルを用いて各プロセッサのキャッシュ制御で
のローカルAATは増強される。AiがプロセッサCPiにおけ
るAATであるとする。Aiの各エントリは現時点ではVベ
クトルにより増強されており、Vベクトルはそこで記録
されたブロック内でライン当り1ビットから構成されて
いる。ブロックのエントリがGAATから見失われた場合、
全てのVベクトルはSCEによりオフと見做される。即
ち、SCEに関する限り、ブロック内の全てのラインは、
これらのラインがあるキャッシュに介在している場合で
あっても各キャッシュにおいて無効と考えられる。Bの
エントリがGAATにない場合、SCEは、もしサブセット・
ルールがRO許可に対して強行されないとすれば、Bをい
ずれのプロセッサに対しても潜在的なROとして扱う。前
述のように、SCEはまた、Bの全てのラインが全てのキ
ャッシュにおいて無効であるかの如く見做し、従って、
Bのブロック・エントリが許可リクエスト時にGAATに挿
入されるとき、全てのVPBは0ビットとして初期化され
る。しかしながら、追って示されるように、そのような
状況において、プロセッサのあるものは、古いVベクト
ルのコピーをもってB上でROの権利を依然として持ち、
あるラインをそれらのキャッシュにおいて有効と見做し
ている。
キャッシュ・ラインの有効制御の基本的動作は以下の
通りである。
(d.1)ブロックBに対する抜けていたエントリが、プ
ロセッサからの許可リクエスト時にGAATへ挿入される
と、VPBは全てのプロセッサCPに対して0ビットとして
初期化される。また、(c.2)におけると同様に、LB
全てのビットはGAATにおいてオンとされ、全てのCPから
BへのROアクセス許可の可能性を指示する。(もしサブ
セット・ルールがROに対しても強行されるとすれば、LB
の全てのビットはオフとされる。) (d.2)SCEがBでアクセス許可EXまたはROを出すと、V
ベクトルVPBがコピーされ、CPのローカルAATで記録され
る。もし、B用のエントリがすでにローカルATTで(例
えばRO状態で)存在するとすれば、SCEから受け取られ
たVベクトルVPBは既存のローカルVベクトルへORされ
る。
(d.3)プロセッサキャッシュへのラインのミス・フェ
ッチ時、GAAT及びローカルAATでの関連のVベクトルに
おける対応するビットがオンとされる。
(d.4)CPiがブロックのi番目のラインへ記憶される
と、i番目のビットは各V−ベクトルVPB(P≠CPi)に
おいてオフとされる。
(d.5)AATにおける関連のVベクトルでの対応するビッ
トをオフとしてプロセッサからラインへのいずれのアク
セスも、そのラインがキャッシュにおいてクリーンであ
ったとしてもキャッシュ・ミスとして扱われる。
プロセッサCPからブロックBへのROアクセス許可に対
するリクエストをハンドリングするSCEの動作は第4A図
のフローチャートに記載されている。ROアクセス許可に
おいては、判断ブロック70により決定されるが、もしB
用のエントリがGAATに存在しているとすれば、判断ブロ
ック71においてBが遠隔プロセッサCP′に対してEXであ
るかを決定するテストが行われる。もしそうであれば、
SCEは遠隔プロセッサCP′に信号を出しBをEXからROの
状態に変更し、機能ブロック72で示すように遠隔プロセ
ッサからの確認を待つ。他方、もしBが遠隔プロセッサ
に対してEXでない場合、あるいは機能ブロック72におい
て確認が受け取られた場合、SCEはGAATエントリにおい
てCPと関連してLBビットをオンにし、ABは「RO」にセッ
トされる。第4A図に示すように遠隔RO許可のこの非同期
の無効化に対して、物理的構成の適正なタイミング制御
装置が、リクエストを出しているプロセッサCPがEX状態
を受取るより遅くはなく遠隔プロセッサが無効信号を受
け取るよう保証するものと考えられる。
第4B図はEXアクセス許可リクエストに対する対応する
リクエストのフローチャートを含む。第4B図のフローチ
ャートにより指示されたEXリクエストに対して、遠隔プ
ロセッサにおけるBへの全てのアクセス許可は、リクエ
ストを出しているプロセッサCPがEX状態を得る前に無効
とすべきである。従って、判断ブロック80で決定される
ようにGAATにエントリが存在するものと想定すると、判
断ブロック81において、Bが遠隔プロセッサCP′に対す
るEXであるかを決定するテストが行われる。もしBが遠
隔プロセッサCP′に対する許可されたEXである場合、SC
Eは、機能ブロック82により指示されるように、CP′か
らBへ記憶が到来する可能性を阻止するために新しいエ
ントリを処理する前に遠隔AATからのBの無効性を確認
する。他方、もしBが遠隔プロセッサの保有するROであ
る場合、SCEは機能ブロック83が指示するように、遠隔
プロセッサへのBの無効性を示す信号の送出と平行して
CPへのEX状況の許可を同期して処理できる。
第4A図および第4B図に示すROおよびEXアクセス許可の
双方において、Bに対する新しいエントリがGAATにおい
て挿入される必要のある場合、交換されたエントリが別
のブロックB′に対して有効であるかを決定するために
判断ブロック74または84においてテストが行われる。も
しそうであれば、SCEは判断ブロック75または85におい
て交換されたエントリがEXブロックB′を記録するか否
かを決定するためにチェックする。もしそうであれば、
SCEは機能ブロック76または86において保有するプロセ
ッサからのEX状態の解除を同期して待機する。
EX状態解除に対する前述の同期した待機をさらに精巧
な構成により阻止することができる。例えば、SCEは、G
AATから交換されつつあるが、依然としてそれらの保有
するプロセッサにより確認されていないEXアクセス許可
を記録する特殊なレジスタを保持することができる。そ
のような特殊レジスタの目的は最終的な解除の前に消え
つつあるEX状態に関する作用を適正に扱うためにSCEが
利用する。
いずれの場合においても、一旦保有するプロセッサか
らのEX状態が解除されるか、あるいは判断ブロック75,8
5または76,86におけるテストが否定であるとすれば、機
能ブロック77または87において新しいエントリが初期化
される。Bアドレスが記憶され、かつ全てのVベクトル
が0にセットされる。さらに、機能ブロック77におい
て、LBは1にセットされ、ABは「RO」にセットされる。
この時点においては、双方のプロセスが介在する。第4A
図に示すROアクセス許可リクエストの場合、SCEはCPにR
O状態を許可する信号を出し、機能ブロック78において
ベクトルVPBをコピーする。第4B図に示すEXアクセス許
可リクエストの場合、SCEはCPに対してLBビットをオン
にし、その他全てをオフにする。ABは「EX」にセットさ
れ、SCEはCPに対してEX状態の信号を出し、ベクトルVPB
をコピーする。
Vベクトルの利点は、個々のラインを基準として、遠
隔キャッシュに対して記憶を通知する必要のないことで
ある。プロセッサがブロックBへ記憶しうる前に、まず
BにおいてEX状態を取得する必要があり、それは他のプ
ロセッサがBにアクセスするのを自動的に禁止する。別
のプロセッサがBにアクセスしたい場合、まず適正な許
可を取得する必要があり、それまでは無効にされたライ
ンが、GAATにおいて遠隔プロセッサに対するVベクトル
において既に反映されている。別の利点は、その他のタ
イプのキャッシュの無効(例えばMVCL処理あるいはチャ
ンネル記憶)は直ちにBCEと干渉する必要はない。その
ような無効性に対して必要なことは、ブロックがその瞬
間においてプロセッサに対してアクセス許可がなされな
いとすれば、Vベクトルにおいて適正なビットをオフと
するためのGAATを通しての単なる探索である。後者の場
合、ハンドリングはEX状態の許可と同様であって、いず
れかのプロセッサに対しては同様ではない。このタイプ
の構成を用いれば、個々のキャッシュにおいてラインの
中味をSCEが認識しているものと推定したSCEにおいてコ
ピー・ディレクトリ(CD)を用いる必要はない。本発明
によるプロセスの論理が第4A図に示すフローチャートに
示されている。
図示のように、RO状態に対してサブセット・ルールが
強行されないときは、ブロックはローカルAATにおいてR
Oとして記録でき、一方GAATはブロック・エントリを有
しない。この場合、ステップ(d.1)で記載したように
全ての0ビットをVPBベクトルにおいて初期化させて、
Bに対する新しいブロック・エントリがGAATにおいてつ
くられると、ブロックBにおけるラインはプロセッサCP
のローカルAATにおいて有効と指示されうる。ROブロッ
ク・エントリにおけるVベクトルを、余分の有効ビット
と併合するためにGAATに送られたローカルAATから交換
することは構成の任意性である。合理的な構成はGAATに
おいて通常極めて高いブロック・ビット比を保持すべき
であるため、この任意性は実際に必要とされないことが
ある。
直接的な実行においては、キャッシュ・ミス状態はロ
ーカルAATにおけるVベクトルから決定でき、ライン取
出し処理の不要な実行上の遅延を起因させうる。例え
ば、関連のブロックに対するアクセス許可がそのローカ
ルATTにおいて喪失されている間、ローカル・キャッシ
ュに介在するラインまでのプロセッサCPによる取出し状
態を検討する。ステップ(d.2)において、BCEはブロッ
クBへのROアクセスを取得し、SCEから得られたVベク
トルVPBからのラインの無効性を決定し、その後のライ
ンのミス・フェッチ・リクエストをSCEに対して出すこ
とができる。この状態において、BCEはアクセス許可リ
クエストを出すことができる。GAATからの関連のVPB
検査することにより、ラインがCPに対して無効であるこ
とをSCEが決定すると、CPに対して直ちにラインのミス
・フェッチをスケジュールしてリーディング・エッジの
遅延を低減することができる。
ブロック以上に細かい粒状でデータの共用を向上させ
るよう前述のアクセス許可構成を修正することも可能で
ある。例えば、各ブロックはサブブロックに分割でき、
状態(INV/RO/EX)をサブブロックの小粒(granule)で
記録することができる。第5図は4個のサブブロックを
備えたGAATまたはAATにおけるブロック・エントリのフ
ォーマットを示す。VBビットは全体のブロック・エント
リの有効性を示し、従って4個のサブブロックの状態が
記録される。
特定の緊密結合されたマルチプロセッサシステムに関
してアクセス許可機構を説明してきたが、その他のシス
テム環境に同様の技術を適用することができる。例えば
記憶装置を共用している多重システムを検討されたい。
本発明において提案された構成はシステム間の共用デー
タアクセスの一貫性を支援するよう適正に修正すること
ができる。
本発明を緊密結合されたマルチプロセッサシステムに
関して主として説明してきたが、当該技術分野の専門家
は、本発明は一般的に多重プロセッサシステムにおいて
重要な用途を有し、かつ特許請求の範囲の精神と範囲内
において修正を加えて実施しうることを認識する。
【図面の簡単な説明】
第1図は本発明を用いうるマルチプロセシングシステム
のブロック線図、 第2図は各プロセッサに対するロック・テーブルを示
す、複数のプロセッサと記憶制御要素(SCE)を含む第
1図に示すマルチプロセシングシステムの部分を示すブ
ロック線図、 第3図はプロセッサにおけるローカル・ロックテーブル
を示す第2図と同様のブロック線図、 第4A図と第4B図とは、本発明による、プロセッサCPから
ブロックBまでのROおよびEXアクセス許可リクエストに
対するSCEの動作をそれぞれ示すフローチャート、およ
び 第5図は本発明による、4個のサブブロックを備えたGA
ATあるいはAATにおけるブロック・エントリの形式を示
すブロック図である。 10,11,12,13:中央プロセッサ、 14,15,16,17:命令実行装置、 20,21,22,23:バッファ制御装置、 30:記憶制御要素、 31,32,33,34:コピー・ディレクトリ、 35,36,37,38:記憶スタック、 40:I/Oチャンネル・プロセッサ、 50:主記憶装置、 51,52,53,54:基本記憶モジュール制御装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−298866(JP,A) 特開 昭62−203252(JP,A) 特開 昭62−288949(JP,A)

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】それぞれキャッシュを有する複数のプロセ
    ッサと、前記プロセッサに共用される記憶装置と、前記
    プロセッサと前記共用の記憶装置との間に設けられ、グ
    ローバル・アクセス許可テーブルを含む記憶制御要素と
    を備えるマルチプロセッサシステムにおいて、マルチプ
    ロセッサ・キャッシュにおける排他性をロックする方法
    であって、 各プロセッサごとに、当該プロセッサにおいて最近使用
    されたデータブロックに対するアクセス状態を含み、デ
    ータブロックのサイズがキャッシュ・ライン・サイズの
    数倍であるローカル・アクセス許可テーブルを提供し、 前記のブロックをプロセッサによりアクセスすべきとき
    当該プロセッサの前記のローカル・アクセス許可テーブ
    ルにおけるブロックのアクセス状態を検査し、ブロック
    に対するアクセス状態が前記のローカル・アクセス許可
    テーブルにおいて発見されない場合のみ前記記憶制御要
    素に対して前記ブロックへのアクセスの許可をリクエス
    トし、当該リクエストに応じて前記グローバルアクセス
    許可テーブルにおけるブロックのアクセス状態を検査す
    ることを特徴とするマルチプロセッサ・キャッシュにお
    ける排他性をロックする方法。
  2. 【請求項2】請求項1に記載の方法において、データブ
    ロックへの読出し専用アクセス許可をプロセッサにより
    リクエストされるとき、前記記憶制御要素が、 前記データブロックが遠隔プロセッサに対して排他的で
    あるかを決定するためにチェックし、もしそうであれば
    前記データブロックを排他性から読出し専用状態に変え
    るべく前記遠隔プロセッサに信号を出し、かつ リクエストを出したプロセッサに関連したフラッグビッ
    トを読出し専用状態を示すデータブロックのアドレスに
    対してグローバル・アクセス許可テーブルのエントリに
    おいてセットする ステップを実行することを特徴とするマルチプロセッサ
    ・キャッシュにおける排他性をロックする方法。
  3. 【請求項3】請求項1に記載の方法において、データブ
    ロックへの排他的アクセス許可をプロセッサによりリク
    エストされるとき、前記記憶制御要素が、 データブロックが遠隔プロセッサに対して排他的である
    かを決定するためにチェックし、もしそうであれば、前
    記ローカル・アクセス許可テーブルからデータブロック
    を無効とするべく前記遠隔プロセッサに信号を出し、も
    しそうでなければ、排他的アクセス以外のアクセスを有
    するいずれかの遠隔プロセッサに対してそれらのローカ
    ル・アクセス許可テーブルからデータブロックを無効と
    するべく信号を出すステップを実行することを特徴とす
    るマルチプロセッサ・キャッシュにおける排他性をロッ
    クする方法。
  4. 【請求項4】請求項1に記載の方法において、そのため
    にプロセッサによりアクセス許可リクエストがなされた
    データブロックに対するグローバル・アクセス許可テー
    ブルに何らエントリが存在しない場合、前記記憶制御要
    素が、 交換されたエントリが別のデータブロックに対して有効
    であるかを決定するためにチェックし、もしそうであれ
    ば他のデータブロックをチェックしてそれが前記マルチ
    プロセッサシステムにおけるプロセッサに対して排他的
    であるかを決定し、もうそうであれば、該プロセッサの
    ローカル・アクセス許可テーブルにおいて排他性から読
    出し専用に状態を変えるべく前記プロセッサに信号を出
    すステップを実行することを特徴とするマルチプロセッ
    サ・キャッシュにおける排他性をロックする方法。
  5. 【請求項5】複数のプロセッサと、共用の主記憶装置
    と、記憶制御要素とを含み、前記プロセッサの各々がロ
    ーカル・キャッシュ・メモリと、ローカル・アクセス許
    可テーブルとを有し、前記記憶制御要素が、各ブロック
    に対してブロック識別を含む1つ以上の記憶ブロックに
    対する情報を含むエントリを有する論理グローバル・ア
    クセス許可テーブルと、状態を示す許可タッグと、許可
    を割当てするビットベクトルとを含み、いずれのプロセ
    ッサが現在許可を与えられているかを示す、前記ビット
    ベクトルにおいてプロセッサ当り1ビットを設け、全て
    の排他的割当てが前記グローバル許可アクセス・テーブ
    ルに反映されるマルチプロセッサシステムにおいて、マ
    ルチプロセッサ・キャッシュにおける排他性をロックす
    る方法であって、 最初に全てのグローバル・アクセス許可テーブルとロー
    カル・アクセス許可テーブルとのエントリを空の情報に
    セットし、 プロセッサからのリクエストに応答してブロックのエン
    トリが前記グローバル・アクセス許可テーブルへ挿入さ
    れるとき、そのブロックに対するビットベクトルに全て
    のビットをセットすることによりあたかもブロックに対
    して読出し専用許可があるよう初期化し、 前記プロセッサの1つがブロックにおいて読出し専用許
    可を取得するとき、前記グローバル・アクセス許可テー
    ブルにおけるブロックに対するビットベクトルのプロセ
    ッサに対応するビットをオンにし、前記許可タッグを読
    出し専用にセットし、 前記プロセッサの1つがブロックにおいて排他的許可を
    取得するとき、前記グローバル・アクセス許可テーブル
    におけるブロックに対するビットベクトルのプロセッサ
    に対応するビットをオンにし、前記許可タッグを排他性
    にセットし、前記グローバル・アクセス許可テーブルに
    おいてビットベクトルのビットを備えた全ての遠隔プロ
    セッサに対してそれらの各々のローカル・アクセス許可
    テーブルからの許可を無効とするために通知する、ステ
    ップを含むことを特徴とするマルチプロセッサ・キャッ
    シュにおける排他性をロックする方法。
  6. 【請求項6】請求項5に記載の方法において、 プロセッサがブロック上で排他的状態を解除するとき、
    前記許可タッグを新しい状態を示すべくセットし、 プロセッサがブロック上で読出し専用状態を解除すると
    き、前記グローバル・アクセス許可テーブルにおけるブ
    ロックに対するビットベクトルのプロセッサに対応する
    ビットが存在する場合該ビットをオフにするステップを
    さらに含むことを特徴とするマルチプロセッサ・キャッ
    シュにおける排他性をロックする方法。
  7. 【請求項7】請求項5に記載の方法において、 プロセッサからのブロックに対する許可リクエストが前
    記記憶制御要素において遠隔プロセッサに対するブロッ
    クの排他的状態を見出すとき、前記遠隔プロセッサがそ
    の排他的制御を断念するまで許可の発行を控えるステッ
    プをさらに含むことを特徴とするマルチプロセッサ・キ
    ャッシュにおける排他性をロックする方法。
  8. 【請求項8】請求項5に記載の方法において、前記グロ
    ーバル・アクセス許可テーブルにおいて交換が判断され
    るとき、排他的ブロック・エントリに前記の許可テーブ
    ルに留るためのより高い優先順位を与えるが、もし排他
    的ブロック・エントリを交換する必要があるとすれば、
    前記記憶制御要素によって、排他的状態を保有するプロ
    セッサに対して、交換動作を完了する前に排他的状態を
    読出し専用状態に変えるべく信号を出すステップをさら
    に含むことを特徴とするマルチプロセッサ・キャッシュ
    における排他性をロックする方法。
  9. 【請求項9】複数のプロセッサと、共用の主記憶装置
    と、記憶制御要素とを含み、前記プロセッサの各々がロ
    ーカル・キャッシュ・メモリとローカル・アクセス許可
    テーブルとを有し、前記記憶制御要素が各ブロックに対
    して1組の有効ベクトルを含む、1つ以上の記憶ブロッ
    クに対する情報を含むエントリを有する論理グローバル
    ・アクセス許可テーブルを含み、該グローバル・アクセ
    ス許可テーブルにおけるブロックに対する各ブロック・
    エントリにおいて、前記プロセッサの各々に対して有効
    なベクトルが存在し、有効ベクトルにおけるi番目のビ
    ットがプロセッサCPiにおいてキャッシュのブロックに
    おけるi番目のキャッシュ・ラインの有効性を示し、有
    効なベクトルがそこに記録された各ブロックに対する前
    記ローカル・アクセス許可テーブルにおいて記録され、
    前記ローカル・アクセス許可テーブルにおける有効ベク
    トルがそこに記録されたブロック内でライン毎に1ビッ
    トから構成されるマルチプロセッサシステムにおいて、
    マルチプロセッサ・キャッシュにおける排他性をロック
    する方法であって、 プロセッサから許可リクエストがなされたとき、前記グ
    ローバル・アクセス許可テーブルに対して、ブロック用
    の喪失したエントリが挿入されるとき、全てのプロセッ
    サに対して有効ベクトルを0ビットとして初期化し、 前記記憶制御要素がブロック上でアクセス許可を与えた
    とき、そのためにアクセスが許可されたプロセッサのロ
    ーカル・アクセス許可テーブルにおいて有効ベクトルを
    記録し、 プロセッサ・キャッシュに対するラインのミス・フェッ
    チ時、前記グローバル・アクセス許可テーブル並びに前
    記ローカル・アクセス許可テーブルにおける関連の有効
    ベクトルにおいて対応するビットをオンにするステップ
    を含むことを特徴とするマルチプロセッサ・キャッシュ
    における排他性をロックする方法。
  10. 【請求項10】請求項9に記載の方法において、プロセ
    ッサがブロックのi番目のラインに記憶する場合、その
    他の全てのプロセッサにおいても前記ローカル・アクセ
    ス許可テーブルにおいて各有効ベクトルでi番目のビッ
    トをオフにするステップをさらに含むことを特徴とする
    マルチプロセッサ・キャッシュにおける排他性をロック
    する方法。
  11. 【請求項11】請求項9に記載の方法において、プロセ
    ッサからラインへのいずれのアクセスをも、キャッシュ
    ・ミスとして前記ローカル・アクセス許可テーブルにお
    ける関連の有効ベクトルにおいて対応するビットをオフ
    にして処理するステップをさらに含むことを特徴とする
    マルチプロセッサ・キャッシュにおける排他性をロック
    する方法。
JP2211437A 1989-09-08 1990-08-08 マルチプロセッサ・キャッシュにおける排他性をロックする方法 Expired - Lifetime JP2681410B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40471289A 1989-09-08 1989-09-08
US404712 1989-09-08

Publications (2)

Publication Number Publication Date
JPH03130849A JPH03130849A (ja) 1991-06-04
JP2681410B2 true JP2681410B2 (ja) 1997-11-26

Family

ID=23600727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2211437A Expired - Lifetime JP2681410B2 (ja) 1989-09-08 1990-08-08 マルチプロセッサ・キャッシュにおける排他性をロックする方法

Country Status (2)

Country Link
EP (1) EP0416211A3 (ja)
JP (1) JP2681410B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490261A (en) * 1991-04-03 1996-02-06 International Business Machines Corporation Interlock for controlling processor ownership of pipelined data for a store in cache
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
WO1995024698A1 (en) * 1992-10-14 1995-09-14 Cp8 Transac A secure memory card
FR2728363A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Dispositif de protection de l'acces a des mots memoires
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
CN113190180A (zh) * 2021-05-26 2021-07-30 北京自由猫科技有限公司 一种基于混合介质的存储装置及分布式存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system

Also Published As

Publication number Publication date
EP0416211A2 (en) 1991-03-13
JPH03130849A (ja) 1991-06-04
EP0416211A3 (en) 1992-07-22

Similar Documents

Publication Publication Date Title
US5230070A (en) Access authorization table for multi-processor caches
US5197139A (en) Cache management for multi-processor systems utilizing bulk cross-invalidate
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
US6330643B1 (en) Cache coherency protocols with global and local posted operations
EP0667578B1 (en) Apparatus and method for checking cache coherency with double snoop mechanism
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US6145059A (en) Cache coherency protocols with posted operations and tagged coherency states
US7698508B2 (en) System and method for reducing unnecessary cache operations
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US7669018B2 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US5210848A (en) Multi-processor caches with large granularity exclusivity locking
US20060053257A1 (en) Resolving multi-core shared cache access conflicts
JPH05127995A (ja) ローカルキヤツシユに共通のページ間の一貫性を確保する方法
US6915396B2 (en) Fast priority determination circuit with rotating priority
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US5269009A (en) Processor system with improved memory transfer means
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US6418514B1 (en) Removal of posted operations from cache operations queue
US7325102B1 (en) Mechanism and method for cache snoop filtering
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法