JPH02247751A - 多重プロセッサ・キヤツシユにおける大粒度排他性ロツキング方法及び装置 - Google Patents

多重プロセッサ・キヤツシユにおける大粒度排他性ロツキング方法及び装置

Info

Publication number
JPH02247751A
JPH02247751A JP2037533A JP3753390A JPH02247751A JP H02247751 A JPH02247751 A JP H02247751A JP 2037533 A JP2037533 A JP 2037533A JP 3753390 A JP3753390 A JP 3753390A JP H02247751 A JPH02247751 A JP H02247751A
Authority
JP
Japan
Prior art keywords
processor
block
cache
sce
lock 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.)
Granted
Application number
JP2037533A
Other languages
English (en)
Other versions
JPH0561664B2 (ja
Inventor
Lishing Liu
リシイング・リユ
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 JPH02247751A publication Critical patent/JPH02247751A/ja
Publication of JPH0561664B2 publication Critical patent/JPH0561664B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 A0M業上0利用分野 本発明は、一般に多重プロセッサ(MP)データ処理シ
ステム内のキャッシュ・メモリの制御に関し、具体的に
は多重プロセッサ・キャッシュにおける排他性(EX)
の大粒度(largegranu tar 1ty) 
 ロッキングの実施に関するOB、従来の技術 別々のプロセッサで並列に実行できる動作を並列に実行
してスループットを増加させる、高性能MPコンビj−
タ・システムが開発されている。
このような高性能MPコンビエータ・システムは、多数
の中央演算処理装置(CP)が独立かつ並列に動作し、
しかもデータを交換する必要がある時は相互間でまたは
主記憶装置(MS)との間で時々通信することが、その
特徴である。各CP及びMSは、入出力ボートを備え、
それらのポートはデータを交換できるように相互に接続
される。
緊密結合多重プロセッサ・システムと呼ばれる、各CP
がそれぞれキャッシュを有するタイプのMPシステムで
は、システムの様々なレベルで、整合性の問題が生じる
。具体的には、記憶階層の隣り合ったレベル間で不整合
が生じることがある。
たとえば、CPの1つがそのデータのコピーを修正した
ために、多数のキャッシュが所有する同じデータのバー
ジ1ンが異なることがあり得る。したがって、各プロセ
ッサのキャッシュが、同時にいくつかのキャッシュに入
っている行に何が起こったかを知る必要がある。多数の
CPが同じ主記憶装置を共用するMPシステムでは、各
CPが、アクセスが発行されるときのアーキテクチャ仕
様に応じて、最も最適に更新されたバージョンのデータ
を獲得する必要がある。この要件から、キャッシュ間で
のデータの整合性を常に監視することが必要となる。
このキャッシュ整合性の問題に対して、いくつかの解決
方法が提案されている。早期の解決方法は、C,に、タ
ング(Tang)の論文「緊密結合多重プロセッサ・シ
ステムにおけるキャッシュ・システムの設計(Cach
e System Design in theTig
htly Coupled Multiprocess
or System) j、Proceedings 
of the AFIPS (1978年)、及びり、
M、サンシエ(Censier)とP、フォートリエ(
Feautr ier )の論文「多重キャッシュ・シ
ステムにおける整合性の問題の新しい解決策(ANew
 5olution to Coherence Pr
oblems inMulticache Syste
ms) J s IEEE Transactions
 onComputerss 1978年12月号、p
p、ttt2−1118に記載されている。サンシエ等
は、集中大域アクセス許可テーブルを使用する、多重キ
ャッシュ内で共用書込み可能データが存在できる体系を
記載している。しかし、前記著者等はその結論部分で、
2年前にはタング等が記載したのと類似の方法を知って
いなかったことを認めている。タングは、キャッシュの
コピー・ディレクトリを使って状況を維持することを提
唱したが、サンシエ等は同様の状況ビットで各メモリ・
ブロックをタグ付けすることを提唱した。
こうした早期の手法は、必要なとき相互間合せ(XI)
を実施するためにどのように記帳を行なうべきかに関す
るものである。その考え方は、どのプロセッサ・キャッ
シュがある行のコピーを所有するか、及びどのキャッシ
ュがその行を修正したかに関する情報を大域ディレクト
リ(コピーまたはメモリ・タグ)に記録するというもの
であった。基本動作は、プロセッサがある行に記憶する
とき、大域テーブルに(MOD I F I EDビッ
トで)状況を記録させることである。ストア・イン型キ
ャッシュが使われるので、プロセッサ・キャッシュ制御
装置は、そのキャッシュ・ディレクトリからどの行が修
正されているかそれとも専用であるかを知る。プロセッ
サの未修正の行に記憶するには、記憶制御装置との同期
、及びまずMODIFIED状況を獲得することが必要
である。したかって、プロセッサが実際にそれへの記憶
を発行したのでない限り、キャッシュがシステム内にそ
の行のコピーだけを有する時でも、記憶ブロックはその
プロセッサに対して排他的または修正可能となり得ない
米国特許第4394731号明細書に記載されているよ
うな、より一般的な意味でのEX状況を用いると、その
行がキャッシュに記憶されたことがない時でも、記憶制
御要素(SCE)にアドレスせずに、プロセッサがキャ
ッシュに記憶することが可能になる。これは些細な違い
であるが、たとえばIBM/3081システムで、後続
の記憶が到来「しそうな」時にあるプロセッサである行
のEX状況を獲得することができるので、概念上かなり
重要である。
従来技術のMPシステムでは、様々なタイプのキャッシ
ュがある。1つのタイプのキャッシュは、IBMシステ
ム/370 3033型MPについて米国特許第414
2234号明細書に記載されているような、ストア・ス
ルー(ST)型キャッシュである。STキャッシュの設
計は、主記憶装置に対するデータの変更を常に更新する
ため、CPがデータを主記憶装置に直接記憶することを
妨げない。主記憶装置へのストア・スルーの更新時に、
適切な相互間合せ(XI)処置を行なって、記憶された
行の遠隔コピーを無効にすることができる。記憶制御要
素(SCE)が適切な記憶スタックを維持して、主記憶
装置(MS)記憶要求を待ち行列に入れ、バッファ制御
要素(BCE)とSCEの間の標準の通信により、記憶
スタックのあふれ状態が回避される。SCE記憶スタッ
クが満杯になると、その状態がクリアされるまで、関連
するBCEはそのMS記憶を保持する。
もう1つのタイプのキャッシュ設計は、たとえば米国特
許第3735380号及び第4771137号明細書に
記載されているような、ストア・イン型キャッシュ(S
IC)である。SICキャッシュ・ディレクトリは、前
掲の米国特許第4394731号明細書に詳しく記載さ
れている。上記特許では、ストア・イン型キャッシュ内
の各行が、その多重プロセッサ制御可能性を排他的/読
取専用(EX/RO)フラグ・ビットによって制御され
る。STキャッシュとSICキャッシュの主な違いは、
SIC内のすべての記憶がキャッシュ自体に向けられ(
そのため、記憶された行がそのSICキャッシュにない
場合はキャッシュ・ミスになることかあ)ることである
。また、米国特許第4503497号明細書では、遠隔
キャッシュにコピーがある場合、取出しミス時にキャッ
シュ間転送(CTC)バスを介してデータ転送が行なえ
ることが提唱されている。各キャッシュ内のディレクト
リのコピーを含むSCEが使用される。そのため、相互
間合せ(XI)判断をSCEで下すことが可能となる。
通常、キャッシュ行の修正は、それらの行がそのキャッ
シュから置換される時だけ、主記憶装置に対して更新さ
れる。
通常の相互間合せ(XI)法では、ブロックBがCP 
 Piに関してEXにロックされているとき、遠隔キャ
ッシュ内のブロックBでカバーされる既存の第1段の各
行は無効にされる。ブロック・サイズが第ルベルの行の
サイズよりも大きい時は、しばしば冗長XI無効化が生
じる。すなわち、行は他のCPで修正されずに無効にさ
れる。ブロワ、り・サイズが行のサイズよりもずっと大
きい(たとえば、16倍)時は、余分のキャッシュ・ミ
スとディレクトリ操作とによるオーバヘッドが許容でき
ないほどになる。
実験によれば、取出しについても記憶についても、著し
い空間的局在性が認められている。粒度のより大きなブ
ロックでEXのロッキングを行なうと、非EX記憶の率
を著しく低下させることができる。したがって、上記の
性能上のオーバヘッドを生じることなく、大粒度のEX
ロツタを行なえることは価値がある。
C0発明が解決しようとする課題 本発明の目的は、多重プロセッサ・キャッシュにおいて
大粒度の排他性ロックを行なうための実施態様を提供す
ることにある。
00課題を解決するための手段 本発明によれば、ブロックBの若干の行がまだキャッシ
ュ中に存在していたとしても、他の中央演算処理装置(
CP)にブロックB上で一時的無効(TI)状態を与え
ることにより、プロセッサPiのアクセス権が主張(e
nforce)  される。CPがTI状態のブロック
にアクセスしようと試みるには、記憶制御要素(S C
E)にアドレスして、そのブロックに対する適切な許可
(たとえば、RO状態またはEX状態)を得る必要があ
る。CPがブロックB上で一時的無効状態TIaと読取
り専用状態ROsと独占状態EXaの3つの状態を持つ
ことができると仮定すると、−時的無効状態TI。が、
すべてのCPにあるすべてのブロックBの初期状態とな
る。本発明に基づく大粒度のロック機構の基本的動作は
、次の通りである。
(1)プロセッサPiがブロックBの行りに記憶し、P
iがEXa状態を取らない場合、バッファ制御要素(B
CE)はSCEからEXa状態を要求すべきである。P
iがEXB状態を得て以降にそれがLへの最初の記憶で
ある場合、SCEは遠隔キャッシュからの行りに対する
XI無効化信号をやり取りする。このXI無効化は、S
CEがPiにEXBを与える時にも行なわれる。記憶を
意図した取出し要求も同様に処理される。
(2)プロセッサPiがB中のTIe状態のデータを取
り出す時、BCEは、キャッシュ・ヒットの場合でもア
クセスする前にSCEからROB 状態を要求する。
(3)SCEがプロセッサPiからEXB要求を受は取
る時、SCEはPiにEXsを与える前に、すべての遠
隔CPにTIa状態を通知する。遠隔CP  Pj(j
#i)がたまたまEXa状態をとっている場合、SCE
は、プロセッサPiにEXe要求を許可する前に、プロ
セッサPjがTIe状態を得たことを確認する。
(4)SCEがプロセッサPiからRoe要求を受は取
ると、どの遠隔CPもEXa状態をとっていない場合、
SCEはその要求をただちに許可する。そうでない場合
は、SCEは、CP PjがそのEXe状態をRoe状
態に変えたことを確認した後で始めてその要求を許可す
る。
(1)から、ある行がキャッシュからXI無効化される
のは、その行が実際に遠隔で修正される時であることが
わかる。その結果、本発明による過程は、過剰の無効化
によるオーバヘッドがない。
このことは容易に理解できる。SCEで、各ブロックB
ごとにたとえばプロセッサPiに対するビット・ベクト
ルOH(局所変更)が維持されるのは、プロセッサPi
に最後にEXa状態が許可されて以降にれがPiによっ
て実際に記憶されるときである。CHビットは、Piが
EXa状態を得た時、0ビットに初期設定される。ブロ
ックBの行りの記憶をSCEが受は取ると、次の動作が
行なわれる。
Lに関連するCHビットがオフの場合、SCEは遠隔キ
ャッシュにXI無効化信号を送出する。次いで、Lに対
するCHビットがオンになる。
本発明の好ましい実施例による大粒度ロック方式の実施
態様で重要なファクタは、CPに対するブロックの状態
をSCE及びBCEに記録することである。SCEでは
、ロック・テーブル(Ti11≦1 :a k ) ;
と仮定されている。すなわち、SCEはEX状態の所有
権(ownersh ip) だけを記録する。
E、実施例 ここで図面、特に第1図を参照すると、本発明が適用で
きるタイプの多重プロセッサ(MP)システムの構成図
が示されている。MPシステムは4台の中央演算処理装
置(CPo1CP1、CP2、CP3)10.11.1
2.13を含み、各CPはそれぞれ命令実行(IE)ユ
ニット14.15.16.17とバッファ制御ユニット
(BCE)2012L 22.23を含んでいる。各I
Eユニットは、主記憶装置(MS)50からのオペラン
ドの取出し及びMSへのオペランドの記憶を要求する命
令を出す、ハードウェアとマイクロコードを含んでいる
IEユニット14ないし17は、当該のキャッシュ制御
ユニット20ないし23に取出しコマンドまたは記憶コ
マンドを出すことによって、取出し動作または記憶動作
を開始する。各BCEは、プロセッサ・ストア・スルー
型(ST)キャッシュとそれに関連するプロセッサ・キ
ャッシュ・ディレクトリ(PD) 、及び関連するCP
loないし13が独占使用するすべてのプロセッサ・キ
ャッシュ制御機構を含んでいる。CPは一般にあるオペ
ランドが必要とする各ダブルワード(DW)単位ごとに
取出しコマンドまたは記憶コマンドを発行する。そのD
Wを含むキャッシュ・ヒットのキャッシュ行がPD内に
ある場合、そのコマンドに従ってそのDWがキャッシュ
中で取り出されまたは記憶される。キャッシュ中でのオ
ペランド取出しヒツトの場合は、BCEから外に出る必
要なく、記憶装置アクセスが完了する。時には、必要な
りWがキャッシュ内になく、キャッシュ・ミスとなるこ
ともある。IE取出しコマンドまたは記憶コマンドが完
了できるには、その前に主記憶装置からDWを取り出さ
なければならない。そうするため、BCEは対応する取
出しミスまたは記憶ミス・コマンドを生成して、記憶制
御要素(SCE)30に、IEユニットが必要とするD
Wをもつ行単位のデータを主記憶装置50から得ること
を要求する。その行単位は主記憶装置50内の行境界上
にくるが、必要なりWは、失敗した行転送の完了前にI
E要求が向かうようにするために要求側BCEに戻すべ
き、取り出された行中の最初のDWとなる。
5CE30は、CPloないし13と主記憶装置50に
接続されている。主記憶装置50は、複数の基本記録モ
ジュール(BSM)制御装置B5Co1BSC+、B5
C2、B5C3(それぞれ51.52.53.54)か
ら構成され、各基本記憶制御装置は2つのBSMO(8
0,62,64,66)と1 (6L 63.65.6
7)に接続されている。、4つのB5C51ないし54
は、それぞれ5CE30に接続されている。
従来のシステムでは、5CE30は4つのコピー・ディ
レクトリ(CD)31.32.33.34を含み、各C
Dは、米国特許第4394731号明細書に記載されて
いるのと同様の方式で、1つのBCE中の対応するプロ
セッサ・キャッシュ・ディレクトリ(PD)の内容のイ
メージを含んでいる。下記の説明から明らかになるよう
に、本発明は、他のディレクトリで行存在情報を記録す
ることによってXI無効化の量をさらに減少させること
が可能なものの、CDを使用する必要はない。
主記憶装置の各BSM80〜67と対応するSCEポー
トの間、及びSCEボートから入出力チャネル・プロセ
ッサ40及び対応する各CPIO〜13への間に、ダブ
ルワード幅両方向データ・バスが設けである。データ・
バスと共に、制御信号及びアドレス信号用の別々の数組
のコマンド・バスもある。CPがDWアクセス要求に対
するキャッシュ・ミスに出会うと、そのBCEは、5C
E30にミス・コマンドを送ることにより、主記憶装置
に対する行アクセス要求を開始し、次いで5CE30は
主記憶装置内の要求さたBSMにそのコマンドを再発行
する。BSM使用中状態の場合、5CE30はその要求
をコマンド待ち行列にセーブし、後で要求された88M
60〜67が利用可能になったときにそれを再発行する
。SCE30はまた、そのXI論理回路によってキャッ
シュ衝突が検出された場合以外は、特定のBSMに対す
るすべてのコマンドが先入れ先出しくF I FO)方
式で発行されるように、主記憶装置コマンドを規則的に
順序づける。主記憶装置要求の正常な取扱いシーケンス
の間、5CE30は主記憶装置の状況を絶えず監視し、
保護キー及び全キャッシュ・ブイレフ) IJの間合せ
結果を分析し、現在5CE30に保持されている未処理
のすべてのコマンドの更新済み状況を検査し、またBC
E20〜23中で5CE30による受領を待っている新
しいBCEコマンドがあるかどうか調べる。
5CE30は、複数の記憶スタック(SSo1SS+、
SS2.5S3)35.3B、37.38を維持する。
各記憶スタックは、対応するCPに対する最大16DW
までの主記憶装置記憶要求を保持することができる。5
CE30は、それらの記憶スタックに対して、主記憶装
置アドレス及び有効性を示すのに十分なブイレフ) I
J情報を保持する。記憶スタックがオーバフローする危
険が生じると、5CE30は、BCEが後で5CE30
から記憶スタック満杯状態をクリアする信号を受は取る
まで、記憶要求の送出を保留するようにとの優先順位信
号を関連するBCE20〜23に送る。記憶スタック中
のデータは、主記憶装置に合わせて更新され、適切なス
ケジューリングによって各記憶スタック内の着信順序が
維持される。CPからの行取出し要求は、記憶スタック
中のその行に対する既存の記憶がすべて関連するB 5
M60〜67に送られたことをSCEが確認するまで、
5CE30によって保持される。
キャッシュ・ディレクトリ項目にEX状態を記録する従
来の方法は、コストが非常に高くつくことがある。たと
えば、32にの項目を含む第2段キャッシュを考えてみ
る。SCEがEX状況に対する第2段項目1個当たり3
ビットを維持するものとすると、100にビット+第1
段ディレクトリで必要なビットが必要となる。第2図に
示すような比較的小さなロック・テーブルT1〜Tnを
使って、こうした回路コストを削減することが可能であ
る。第2図のMPシステムでは、各プロセッサPi (
Pi I 1≦i :an)について、SCEはロック
・テーブルTiを維持する。ロック・テーブルは通常、
アドレスによってインデックス(またはハツシュ)され
るセ、ット連想式テーブルとして構成され、また単純な
先入れ先出しくF I FO)スタックとして実施する
こともできる。第3図に一般的に示すように、Tiの各
項目ごとに、ブロックBのアドレスを記憶するIDフィ
ールド(及び適切な妥当性タグ)がある。SCEはまた
、ロック・テーブルに対する置換操作のために必要な状
況アレイを維持する。ロック・テーブルTiの各項目は
、プロセッサPiに対するあるブロックのEXロックを
表す。ロック・テーブルの全項目は最初無効である。ブ
ロック・サイズbは必ずしも第1段キャッシュまたは第
2段キャッシュの行のサイズと同じである必要はないが
、通常は第1段キャッシュ行のサイズの整数倍である。
CPからの各記憶をSCEと同期させる必要のある、典
型的なSTキャッシュ用のSCEにある記憶同期化機構
について考えてみる。SCEでの基本動作は下記の通り
である。まず、プロセッサPiからの(ブロックB上の
)記憶同期化要求のSC,Hによる処理について考察す
る。
(a、1)ブロックBがロック・テーブルTi中でヒツ
トしたときは、プロセッサPiにただちに記憶同期化が
許可される。
(a、2)どのロック・テーブルにもブロックBがない
ときは、SCEはロック・テーブルTi中にBに対する
新しい項目を作成し、プロセッサPiに記憶同期化を許
可する。上記処理と並列して、SCEはまた遠隔キャッ
シュ内のBをXI無効化させる信号を(ブロックBのデ
ータを含む可能性のあるCPに)送り出す。
(a、3)ブロックBがロック・テーブルTj(j#i
)にヒツトしたときは、SCEでの遠隔EXヒツトと類
似している。この場合は、ブロックBの項目がロック・
テーブルTjから削除され、ロック・テーブルTiに新
しい項目が作成され(XI無効化信号がプロセッサPj
に送られ)る。
次に、SCEがプロセッサPiからのブロックB中の行
に対する取出し要求(たとえば第1段キャッシュ・ミス
)を受は取った時の動作について考察する。
(a、4)ブロックBが遠隔CPによってEXロックさ
れないときは、その取出しは遅延なしで開始できる。
(a、5)ブロックBがロック・テーブルTj(J≠i
)にヒツトしたときは、ロック・テーブルTjから最初
にブロックBの項目が無効にされる。
ストアスルー型キャッシュ設計では、記憶スタック内の
未処理の行への記憶なしに、行(ミス)取出しが実行さ
れることが重要である。SCEによるこの種の検査が必
要なのは、行取出し要求を受は取った時である。
上記の諸ステップのうちで、(a−1)は、異なるCP
からの複数の記憶について並列して行なうことができる
。他のステップの実行時にSCEで適切な直列化が必要
となる場合もあるが、そのために同一サイクルで複数の
記憶同期化要求を実行する可能性が排除されることはな
い。ロッキング粒度すが大きくなる(たとえば4K)と
き、ステップ(a、2)及び(a、3)からのXI無効
化によって重大な第1段キャッシュ・ミスが生じる。
上記の重大なXI無効化は、SBビット・ベクトルを用
いて、同じ行に対する連続した無効化を排除することに
より、大幅に減少させることができる。そのフォーマッ
トを第4図に示す。このベクトルは無効化同報通信用の
BIAS(バッファ無効化アドレス・スタック)様フィ
ルタとして使用される。このベクトルの各ビットは、ブ
ロックBの複数の(たとえば2)行を表すことができ、
その場合、各XI倍信号関連する各遠隔キャッシュ内の
複数の行を無効にすることができる。ビット・ベクトル
でフィルタリングを行なう場合、たとえばロック・テー
ブルTiにある関連するビット・ベクトルが、プロセッ
サPiからの行中での以前の記憶を指示しない時に、キ
ャッシュ「行」無効化が遠隔BCEに送られるように、
ステップ(a。
1)を修正することができる。
第5図及び第6図は、こうしたビット・ベクトルに基づ
<SCE無効化フィルタリングのための論理を図示した
流れ図である。処理は第5図から始まり、機能ブロック
70で、ブロックに対する新しい項目がロック・テーブ
ルTiに挿入される。
そうなった時、機能ブロック72で、ビット・ベクトル
のすべてのSsビットがゼロにリセットされる。次に、
第6図に関連して、機能ブロック74で、SCEはプロ
セッサPiからブロックBに対する記憶要求を受は取る
。判断ブロック76でテストを行なって、ロック・テー
ブルTi中のそのブロック項目にあるビット・ベクトル
の関連する88ビットが1かどうか判定する。1である
場合は、機能ブロック78で、その記憶要求が処理され
る。そうでない場合は、機能ブロック80で、SCEは
遠隔中央演算処理装置に行無効化信号を送り出す。次い
で、機能ブロック82で、SCEは関連するSBビット
を1にし、その記憶要求を処理する。
上記のロックアツプ機構は、前掲の米国特許第4142
234号明細書に記載されている、IBM3033MP
システムで使用されているバッファ無効化アドレス・ス
タック(BIAS)フィルタ・メモリ法とは異なってい
る。BIASそれ自体は、BCEが受は取る無効化信号
のスタックにすぎない。BIASフィルタ・メモリ方式
では、SCEは、各プロセッサPiごとに、プロセッサ
Piから最近に無効にされたブロックを再取出しなしで
記録するテーブルIiを維持する。プロセッサPiから
の各記憶要求を、同時にテーブルIj(j≠i)中のす
べての項目と突き合わせて、XI無効化の可能性がある
かどうか検査する必要がある。プロセッサの数が増すに
つれて、この同時検査は重い負担になる。ロック・テー
ブル法では、大部分の記憶はCP  Piに関連するロ
ック・テーブルTiにヒツトし、したがって、SCE処
理の並列度がずっと高(なる。さらに、任意の時点で、
最近に記憶されたブロックIDは、BIASフィルタ・
メモリ法では大部分の遠隔テーブルLi中に存在する。
ロック・テーブルTjは、当該の各CPからの最近の記
憶だけを記録し、(無効の項目以外は)互いにばらばら
である。その結果、ロック・テーブルTjは回路をより
有効に利用できる。
パイプライン化がずっと進む将来のプロセッサでは、記
憶同期化の遅延が、パイプラインの性能をかなり損なう
ことがあり得る。したがって、SCEに対する記憶同期
化の頻度が低下するように、BCEレベルで適切なEX
ロックを行なうのが好都合である。上記のSCECフロ
アップ設計では、ロック・テーブルTiにロックされた
ブロックは、実際には、それが(j#iのPjに対する
)どの遠隔キャッシュにも存在できないことを意味する
こうしたロッキング情報がBCEに渡される場合、局所
的にロックされたブロックへの記憶のためのSCEとの
初期接続手順をなくすことが可能である。第7図で、局
所ロック・テーブルLiが各プロセッサPiごとにBC
Eによって維持される。
局所ロック・テーブルLiの各項目は、プロセッサPi
によってEXにロックされるブロックのIDを記録する
。通常、局所ロック・テーブルLiの項目はロック・テ
ーブルTiの項目よりも少ない。記憶及びロックのため
の動作は次の通りである。
(b、1)局所ロック・テーブルLi中の全項目が、最
初は無効である。
(b、2)プロセッサPiからの記憶が、局所ロック・
テーブルLi中でロックされたブロックBにヒツトした
時は、その記憶は遅延なしに実行できる。
(b、3)プロセッサPfからのブロックBに対する記
憶が、局所ロック・テーブル中でミスした時は、BCE
はSCEに同期化要求を送る。SCEから許可信号を受
は取ると、ブロックBに対する有効項目が局所ロック・
テーブルLi中で作成される。
(b、4)プロセッサPiがSCEからブロックBに対
する解除要求を受は取った時は、局所ロック・テーブル
LiからのブロックBの項目が見つかった場合、プロセ
ッサPiのBCEがその項目を無効にする。次いで、肯
定応答信号がBCEに送られる。
BCEに関しては、通常の(非EX型)取出しに特別の
取扱いは必要でない。SCEに関して、主要な違いの1
つは、遠隔EXヒツトの取扱いにある。プロセッサPi
からブロックBへのアクセスがロック・テーブルTj(
j≠1)にヒツトするという状況を考察する。
(b、5)ブロックBが局所ロック・テーブルLi中で
ロックされている可能性がある場合、SCEはプロセッ
サPjに、ブロックBに対するEXロックを解除するよ
うに指示する信号を送る(ロック・テーブルTjは、局
所ロック・テーブルLjより多くのロック項目をもつこ
とを妨げられない)。この信号は、(たとえば、プロセ
ッサPiからのアクセスがEX状況に対するものである
時に)適当なXI無効化要求と結合されることがある。
SCEは、プロセッサPjから肯定応答信号を受は取っ
て始めて、このXI動作を完了する(ステップ(b、4
)参照)。
局所ロック・テーブルLi内のロック情報を、ロック・
テーブルTi内のロック情報のサブセットにすることが
望ましい。第8図に示すような余分のLビットをTiテ
ーブル項目1つにつき1個ずつ追加することによって、
SCEは、5CEEXロツク・テーブルTi内のあるブ
ロックが対応するBCE局所ロック・テーブルLi中に
あるか否かを検出することができる。しかし、局所ロッ
ク・テーブルLiとロック・テーブルTiが同じサイズ
の場合は、そうする必要はなく、ロック・テーブルTi
からある項目が削除された時に、局所ロック・テーブル
Li中にそれに対応するブロックが存在しないように保
証するだけで十分である。ロック・テーブルTiの項目
がテーブルTiから削除される理由としては、相互間合
せと局所要求による置換の2つが考えられる。XI処理
(たとえば上記のステップ(b、5))は、このサブセ
ット則を適切に維持する。局所置換の場合、ロック・テ
ープルTfから項目が置換される理由としては、プロセ
ッサPiからのEX要求しかないことは明らかである。
以上の議論は、通常のXI無効化法を前提としたもので
ある。すなわち、ブロックBがプロセッサPiからEX
にロックされるとき、遠隔キャッシュ内のブロックBで
カバーされる既存の第1段キャッシュ行は無効になる。
そのブロック・サイズが第1段ブロック・サイズより大
きい時は、その結果しばしば冗長XI無効化が生じる(
すなわち、行が別のCPで修正されないのに無効になる
)。ブロック・サイズが行のサイズよりずっと大きい(
たとえば、16倍)時は、余分のキャッシュ・ミス及び
ディレクトリ処理によるオーバヘッドは許容できないも
のになる。
実験から、取出しについても記憶についても、大きな空
間的局在性が観察されている。より大きな粒度のブロッ
クでEXロックを実行する時、非EX記憶の速度が著し
く低下する可能性がある。
したがって、上記の性能上のオーバヘッドを生じずに大
粒度のEXロックが実行できれば価値がある。以下の説
明では、話を簡単にするため、排他的ロックの粒度を、
多重プロセッサ・システムにおいて各キャッシュ行当た
り128バイトの4にブロックで例示する。こうした場
合、各ブロックに32行あることになる。ただし、これ
らの数字は例として示したものにすぎず、本発明の実施
に際して、異なるサイズのブロック、行、キャッシュも
使用できることを了解されたい。また、この説明では、
SCEがシステム中の複数のプロセッサそれぞれによる
記憶ブロックの排他的(EX)所有権を記録する、スト
ア・スルー型(ST)キャッシュ設計であると仮定する
。また、各中央演算処理装置(CP)に、ブロック情報
を記録するためのディレクトリD、があるものと仮定す
る。ディレクトリDp内のブロックBに対する各項目に
は、少なくとも概念上、排他的EXB1−時無効TIa
、読取り専用ROaの3つの状態がある。実際には、シ
ステムは、容量が限られているEXロック・テーブルに
よって各プロセッサごとにEX状態とTI状態だけを明
示的に維持している。BCEは、ブロックBがTIまた
はEXではないことを検出した時は、単にそのブロック
をROとして扱う。したがって、ディレクトリDpは、
TI状態とEx状態を記録するものと見なせる。ある実
施態様では、■N■8状態も使用されることがある。
BCEが許可情報を獲得する方法の1つは、SCEから
すべてのCPのEXロック情報を複製するものである。
プロセッサPiは、別のCPがEX8状態をとるとき、
TIB状態をとる。プロセッサPiのBCEで維持され
ている(Lj11≦j≦k)のコピーをH,j(i) 
I 1≦j:ak)で示すことにする。プロセッサPi
では、ロック・テーブルLi(i)が前記の局所ロック
・テーブルとして機能する。プロセッサPiで、ブロッ
クBがテーブルLi(i)で見つかった場合は、ブロッ
クBはEXe状態であり、ロック・テーブルLj(i)
(j≠i)で見つかった場合はTIa状態であり、その
他の場合はROs状態である。プロセッサPiがTIa
状態からRoB状態またはEXe状態に切り替わると、
BCEは、ロック・テーブルLj(f) (j f−i
)に記録されている以前の遠隔EXB状態を無効にしな
ければならない。SCEは、プロセッサPiにEXe状
態を与える時、やはり局所ロック・テーブルLi中のブ
ロックBの項目の座標を送ることによって、各プロセッ
サPj(j≠I)にTI。状態をとるようにとの信号を
送る。TIB信号を受は取ると、プロセッサPjのBC
Eは、ロック・テーブルLi(j)の指定された座標に
その状況を記録する。プロセッサPjが、プロセッサP
i(i≠j)からのROe要求によってそのEXa状態
を放棄しく ROa状態になる)時、SCEがその状態
変化を他のCPに通知するのが宵月であるが、必ずしも
必要ではない。
本発明の別の実施例では、「局所」ロック・テーブルL
j(i)はSCEでテーブルTj (i)として維持す
ることができる。ただし、TiテーブルをLiテーブル
よりもずっと大きくすると、性能及び設計上何らかの利
点がある。すなわち、EX状況の解釈が、SCEとBC
Eの間で異なることがあり得る。
テーブルLiはテーブルTiのサブセットとして維持さ
れるので、EX状況が局所ロック・テーブルLiに記録
されている限り、SCEもBCEもEX状況を理解する
はずである。しかし、実施態様によっては、BCEがロ
ック・テーブルTiの情報をすべて知っている必要はな
い。このより大きなTiテーブルをSCEが使ってBC
EにEX状況を許可する際の並列性を高め、状況、たと
えば無効化フィルタリング用のSsビット・ベクトルを
記録する。
局所ロック・テーブルLiに記録されたEX状況は、相
互間合せ(XI)活動の対象となる唯一ノ項目である。
ロック・テーブルTiは、本質上SCEの記帳用のもの
にすぎない。アーキテクチャの整合性は、プロセッサ及
び入出力チャネルからの記憶装置へのアクセスに対して
のみ維持すればよい。この場合、ブロックBが遠隔ロッ
ク・テーブルTjに記録されている時でも、ブロックB
が遠隔BCEの局所ロック・テーブルLjに割り当てら
れていない限り、そのブロックBはあるプロセッサに対
するRO状態となることができる。
本発明による処理の論理を、第9図、第10図及び第1
1図に流れ図で示す。第9図に示したケースでは、機能
ブロック82で、SCEはプロセッサPiからEXs要
求を受は取る。判断ブロック84でテストを行なって、
ブロックBがロック・テーブルTiに記録されているか
どうか判定する。記録されている場合は、機能ブロック
98に進む。
そうでない場合は、判断ブロック86でさらにテストを
行なって、ブロックBが遠隔テーブルTj(j≠i)に
記録されているかどうか判定する。
記録されていない場合は機能ブロック96に進むが、そ
うでない場合は、判断ブロック88で再度テストを行な
って、ブロックBが遠隔局所ロック・テーブルLjに記
録されているかどうか判定する。
記録されている場合、SCEはプロセッサPjに、その
ロック・テーブルLjからブロックBを削除するように
指示し、次いで、機能ブロック92で、プロセッサPj
からの肯定応答を待つ。肯定応答を受は取った時、ある
いは判断ブロック88でのテスト結果がノーの場合、機
能ブロック84で、SCEはロック・テーブルTjから
ブロックBを削除する。ブロックBが削除された時、あ
るいは判断ブロック86でのテスト結果がノーの場合、
機能ブロック98で、SCEはブロックBに対する新し
い項目をテーブルTiに挿入する。次いで機能ブロック
98で、SCEは遠隔中央演算処理装置にHOL D 
e信号を送り出す。最後に機能ブロック100で、SC
EはプロセッサPiにEXe状況を許可するよう指示す
る。
第10図に示したケースでは、機能ブロック102で、
SCEはプロセッサPiからEXs解除要求を受は取る
。それにより、機能ブロック104で、SCEはすべて
の遠隔プロセッサにCLEAR3信号を送り出す。次い
で機能ブロック106で、SCEは、ブロックBがもは
や局所ロック・テーブルLiに記録されていないことを
示すように、ロック・テーブルTiにおけるブロックB
の項目の状況を更新する。
第11図には、RO状況要求のケースが示されている。
この場合、機能ブロック108で、SCEはプロセッサ
PiからROe状況要求を受は取る。
判断ブロック110でテストを行なって、ブロックBが
遠隔ロック・テーブルTj(j≠i)に記録されている
かどうか判定する。記録されている場合、判断ブロック
112でさらにテストを行なっテ、フロックBが遠隔局
所ロック・テーブルLjに記録されているかどうか判定
する。記録されていない場合、SCEはロック・テーブ
ルTjからブロックBの項目を削除する。ブロックBの
項目が削除されている時、あるいは判断ブロック110
でのテスト結果がノーである場合、機能ブロック116
で、SCEはプo セラ+ P i ニROB状況を許
・可するよう指示する。
判断ブロック112に戻ると、ブロックBが遠隔局所ロ
ック・テーブルLjに記録されている場合、機能ブロッ
ク118で、scEはプロセッサPjにその局所ロック
・テーブルLjからEXBを解除するように指示する。
次いで、SCEはプロセッサPjの肯定応答を待つ。プ
ロセッサPjがら肯定応答を受は取ると、機能ブロック
120で、SCEはプロセッサPj以外のプロセッサに
CLE A Rs信号を送り出す。プロセッサPjは、
CLE A Re信号を受は取ると自動的にROe状況
となる。
CP  Piが(記憶のためのアクセスによって、ある
いはプロセッサPiがまもなくブロックBに記憶すると
予想される時)SCEに対してブロックBの排他的制御
権を要求する(CPがEXB状況をとることで示される
)と、SCEは下記の適切な動作を実行する。まず、遠
隔CPまたとえばPjがその局所ロック・テーブルLj
でEXe状態を所有することをSCEが検出した場合、
SCEは、プロセッサPiにEXaを許可する前に、プ
ロセッサPjがそのEXe状態を放棄するようにさせる
。そうしないと、ただちにEXaがプロセッサPiに許
可されてしまうことがある。次に、SCEは、そのキャ
ッシュにブロックBの行を所有する可能性のある遠隔C
PにHOLDe信号を送り出す。このHOL D e信
号を受は取った後、遠隔CPまたとえばPjは(ロック
・テーブルLi(j)にブロックBを記録することによ
り)ブロックBをTI。状態でマークする。ただし、T
IB状態とは、ブロックBがそのCPに対して一時的に
無効となることを意味する。
プロセッサPiは、取出し要求によってTIe状態のブ
ロックBにアクセスする際、SCEにアクセス権を求め
る必要がある。取出し要求は、インタロック命令からの
取出し後修正要求でもよいことに留意されたい。SCE
はEXa状態を保持しているCPにそれを放棄させる。
EXB状態がどの遠隔CPによっても所存されなくなっ
た後、SCEはプロセッサPfに適切なアクセス権を許
可する信号を送る。プロセッサPiは、SCEからの許
可を受は取った後、TIB状態を適当な状態、たとえば
RoeまたはEXaに変更して、ブロックBのデータへ
のアクセスを開始する。キャッシュ・ミス状況の場合、
SCEはある時点でプロセッサPiにその行の有効コピ
ーを転送して、プロセ。
すPiがアクセス権獲得後にミスを再発行しなくてもす
むようにすることができる。
プロセッサPiは、何らかの理由でEXa状態を放棄す
る時、その事象についてSCHに知らせる。
EXa状態が現在別のCPから要求されていない場合、
SCEは、TIB状態を保持している可能性のある遠隔
CPにCLEARa信号を送る。このCLEARB信号
を受は取った後、cp、たとえばPjは、後でブロック
Bにアクセスできるように、(Ti(j)からブロック
Bを削除することによって)そのTIs状態をクリアす
る。
CP  PiがEXs状態のもとてブロックB内のある
行に記憶する時、SCEは、自分のキャッシュにその行
のコピーを所存している可能性のあるCPに、XI(相
互無効化)信号を同報通信する。
SCEは、CPまたとえばPiが排他的に(E XB)
所存する各ブロックごとに、下記の情報を維持すること
ができる。(a)どのCPがEXB状態をとっているか
。これは、遠隔EXXヒツト相互台せを取り扱うために
使用される。(b)Piが最後にEXB状態を獲得して
以降、Bのどの行に以前にPlによって記憶が行なわれ
たか。これは、前述のように、ビット・ベクトルSBを
使って実施できる。
CP  Piにおいて、その局所ロック・テーブルLt
中の(たとえばブロックBに対する)各項目は、Piが
最後にEXB状態を獲得して以降、ブロックBのどの行
に以前にプロセッサPiによって記憶が行なわれたかに
関する情報を保持することができる。これは、SCEに
ついて説明したのと同様のビット・ベクトルを使って実
施できる。
こうしたベクトルが局所CPで実施されるときは、必ず
しも上記のベクトルを使用する必要はない。
この実施態様は、ストア・イン型キャッシュ設計に最も
好都合である。
CPがそのEXa制御権を放棄する時、SCEはただち
に他のCPにCLEARs信号を送り出す必要はない。
このため、他のCPが、後でBを最初に参照する際にS
CEと相談できるようになる。
SCEは、EXB状態の許可及び相互無効化の処理を適
切に直列化しなければならない。
この状態の実施には様々なビットが使用できる。
たとえば、TI8状態は独立のフラグ・ビットを使って
実施できる。場合によっては、そうするのが好都合であ
る。
遠隔キャッシュ行無効化信号の有効なフィルタリングを
行なえることが重要である。上記のビット・ベクトル以
外に他のフィルタリング手段を設けるのが育利なことが
ある。上記のSsビット・ベクトルで遠隔無効化をなく
することができない時は、たとえば、C,に、タングが
提唱したコピー・ディレクトリ(CD)技術や、L、M
、センシエ他が提唱した存在タグが2次フィルタリング
手段として使用できる。局所テーブルによって保証され
る記憶のためのEX状況を用いると、データの整合性の
問題を引き起こさずに、SCEが2次フィルタリングの
実行により多くの時間をかけることができるようになる
あらゆる記憶装置、すなわちキャッシュに対するアクセ
スで、すべてのロック・テーブルLj(i)を探索する
となると、重大な性能上の問題が生じる恐れがあるが、
そのような探索の必要はない。
その代わりに、これらのロック・テーブルLj(i)は
、BCEが必要とする時、バックアップ状況ディレクト
リとして働くことができる。たとえば、プロセッサBC
Eは、各項目ごとに適切な状況(ROまたはEX)を記
録して、最初にアクセスされたブロックに対するディレ
クトリを小さくすることができる。大粒度のブロックで
は、このようなディレクトリに対するヒツト率は非常に
高くなると予想される。ロック・テーブルLj(i)を
探索する必要があるのは、アクセスされたブロックがデ
ィレクトリ中で見つからない時だけである。こうすると
、BCEは、大部分の時間、IE装置からの実際の記憶
装置アクセスと並列して、ロック・テーブルLj(i)
に作用することができる。
F0発明の効果 本発明によれば、多重プロセッサ・キャッシュにおける
大粒度の排他性ロックを、オーバヘッドを生じさせるこ
となしに行なうことが可能となる。
【図面の簡単な説明】
第1図は、本発明を適用できる多重プロセッサ・システ
ムの構成図である。 第2図は、第1図の多重処理システムの、複数のプロセ
ッサと記憶制御要素(SCE)とを含む部分を示し、各
プロセッサ用のロック・テーブルを図示した構成図であ
る。 第3図は、本発明の一態様に基づくロック・テーブルの
ある項目のフォーマットを示す構成図である。 第4図は、本発明の別の態様に基づくロック・テーブル
のある項目のフォーマットを示す構成図である。 第5図及び第6図は、SBビット・ベクトルを用いて記
憶の同期化を行なう本発明の実施態様の論理を示す流れ
図である。 第7図は、プロセッサにある局所ロック・テーブルを示
す、第2図と類似の構成図である。 第8図は、本発明の別の態様に基づくロック・テーブル
のある項目のフォーマットを示す、第3図と類似の構成
図である。 第9図、第10図及び第11図は、本発明の実施態様の
論理を示す流れ図である。 10〜13・・・・中央演算処理装置(CP)、14〜
17・・・・命令実行(IE)ユニット、20〜23・
・・・バッファ制御ユニット(BCE)、30・・・・
記憶制御要素(SCE)、35〜38・・・・記憶スタ
ック(88)、40・・・・入出力チャネル・プロセッ
サ、50・・・・主記憶装置、51〜54・・・・基本
記憶モジュール制御装置(BSC)、E30〜67・・
・・基本記憶モジュール(BSM)。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名) 第 図 第3図 駕 笛8図 J″′ 50 CE 1M2図 CE 第7図 第 図

Claims (4)

    【特許請求の範囲】
  1. (1)多重プロセッサ・キャッシュにおいて排他性の大
    粒度ロッキングを行なう方法であって、他のプロセッサ
    にあるブロックのデータについて一時的無効状態を与え
    ることにより、まだキャッシュに残っている当該ブロッ
    ク中の行が存在するとしても、あるプロセッサに唯一の
    アクセス権を与えるステップと、 別のプロセッサが一時的無効状態のブロック中のデータ
    を取り出す時、キャッシュ・ヒットの場合でも別のプロ
    セッサがアクセスする前に読取り専用アクセス権を求め
    る要求を必要とすることにより、唯一のアクセス権を主
    張するステップを含む方法。
  2. (2)それぞれがキャッシュ・メモリとバッファ制御要
    素を有する複数の中央演算処理装置、主記憶装置及び記
    憶制御要素を有する多重プロセッサ・システムにおいて
    、 キャッシュ・メモリに記憶されたデータ・ブロックの排
    他性の大粒度ロッキングを行なうための装置であって、 すべてのキャッシュ・メモリに記憶されているデータ・
    ブロックの排他的状況の記録を維持するための、記憶制
    御要素内にある上記の各プロセッサごとのロック・テー
    ブル手段と、 各バッファ制御要素内にあって、対応するプロセッサに
    よってアクセスされるデータ・ブロックの排他的状況の
    記録のサブセットを維持するための、局所ロック・テー
    ブル手段と を含む装置。
  3. (3)複数のプロセッサ、主記憶装置及び記憶制御要素
    を含む緊密結合多重プロセッサ・システム用のストア・
    スルー型キャッシュ・アーキテクチャにおいて、 上記プロセッサによるデータの大粒度記憶同期化を行な
    うための方法であって、 上記記憶制御要素内に、上記各プロセッサごとに1つず
    つ、上記各プロセッサに許可されたデータ・ブロックに
    ついての排他的状態の記録を維持するためのロック・テ
    ーブルを設けるステップと、上記各ロック・テーブル中
    に、あるブロックの同じ行で連続する無効化を排除する
    ための、各ブロック項目ごとに1ビットから構成される
    S_Bビット・ベクトルを設けるステップと、 ブロックの新しい項目がロック・テーブルに挿入される
    ごとに、すべてのS_Bビットを0にリセットするステ
    ップと を含む方法。
  4. (4)緊密結合多重プロセッサ・システムにおいて排他
    性の大粒度ロッキングを行なう方法であって、多重プロ
    セッサ・システム用の記憶制御要素内に、複数のプロセ
    ッサのそれぞれに1つずつ、局所キャッシュ・メモリに
    記憶されたデータ・ブロックの排他的状況の記録を維持
    するためのロック・テーブルを設けるステップと、 上記各プロセッサごとに、バッファ制御要素内に、対応
    するプロセッサによってアクセスされるデータ・ブロッ
    クの排他的状況の記録のサブセットを維持するための局
    所ロック・テーブルを設けるステップと を含む方法。
JP2037533A 1989-02-22 1990-02-20 多重プロセッサ・キヤツシユにおける大粒度排他性ロツキング方法及び装置 Granted JPH02247751A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31369589A 1989-02-22 1989-02-22
US313695 1989-02-22

Publications (2)

Publication Number Publication Date
JPH02247751A true JPH02247751A (ja) 1990-10-03
JPH0561664B2 JPH0561664B2 (ja) 1993-09-06

Family

ID=23216751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2037533A Granted JPH02247751A (ja) 1989-02-22 1990-02-20 多重プロセッサ・キヤツシユにおける大粒度排他性ロツキング方法及び装置

Country Status (2)

Country Link
EP (1) EP0384102A3 (ja)
JP (1) JPH02247751A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163149A (ja) * 2000-10-31 2002-06-07 Hewlett Packard Co <Hp> マルチプロセッサシステムのキャッシュコヒーレンスプロトコル

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2273586A (en) * 1992-12-21 1994-06-22 Hanover Restricting access to shared memory during updates.
US5721870A (en) * 1994-05-25 1998-02-24 Nec Corporation Lock control for a shared main storage data processing system
JP2776759B2 (ja) * 1995-04-14 1998-07-16 甲府日本電気株式会社 ロックリクエスト制御装置
CN112214427B (zh) * 2020-10-10 2022-02-11 中科声龙科技发展(北京)有限公司 缓存结构、工作量证明运算芯片电路及其数据调用方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0051745B1 (en) * 1980-11-10 1988-01-27 International Business Machines Corporation Cache storage hierarchy for a multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163149A (ja) * 2000-10-31 2002-06-07 Hewlett Packard Co <Hp> マルチプロセッサシステムのキャッシュコヒーレンスプロトコル

Also Published As

Publication number Publication date
JPH0561664B2 (ja) 1993-09-06
EP0384102A3 (en) 1992-04-29
EP0384102A2 (en) 1990-08-29

Similar Documents

Publication Publication Date Title
US5230070A (en) Access authorization table for multi-processor caches
US5537574A (en) Sysplex shared data coherency method
US5210848A (en) Multi-processor caches with large granularity exclusivity locking
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5197139A (en) Cache management for multi-processor systems utilizing bulk cross-invalidate
US6587931B1 (en) Directory-based cache coherency system supporting multiple instruction processor and input/output caches
EP0061570B1 (en) Store-in-cache multiprocessor system with checkpoint feature
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
JP4050225B2 (ja) マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置
EP0372201B1 (en) Method for fetching potentially dirty data in multiprocessor systems
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
WO2004001527A2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
US10761987B2 (en) Apparatus and method for processing an ownership upgrade request for cached data that is issued in relation to a conditional store operation
US6202126B1 (en) Victimization of clean data blocks
US5016168A (en) Method for storing into non-exclusive cache lines in multiprocessor systems
KR19990006485A (ko) 캐쉬 어드레스 발생 방법
JPH02247751A (ja) 多重プロセッサ・キヤツシユにおける大粒度排他性ロツキング方法及び装置
JPH0574101B2 (ja)
JP2681410B2 (ja) マルチプロセッサ・キャッシュにおける排他性をロックする方法
JPH1185614A (ja) 情報処理装置