JPH0561664B2 - - Google Patents

Info

Publication number
JPH0561664B2
JPH0561664B2 JP2037533A JP3753390A JPH0561664B2 JP H0561664 B2 JPH0561664 B2 JP H0561664B2 JP 2037533 A JP2037533 A JP 2037533A JP 3753390 A JP3753390 A JP 3753390A JP H0561664 B2 JPH0561664 B2 JP H0561664B2
Authority
JP
Japan
Prior art keywords
block
processor
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.)
Expired - Lifetime
Application number
JP2037533A
Other languages
English (en)
Other versions
JPH02247751A (ja
Inventor
Ryu Rishiingu
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)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、一般に多重プロセツサ(MP)デー
タ処理システム内のキヤツシユ・メモリの制御に
関し、具体的には多重プロセツサ・キヤツシユに
おける排他性(EX)の大粒度(large
granularity)ロツキングの実施に関する。
B 従来の技術 別々のプロセツサで並列に実行できる動作を並
列に実行してスループツトを増加させる、高性能
MPコンピユータ・システムが開発されている。
このような高性能MPコンピユータ・システム
は、多数の中央演算処理装置(CP)が独立かつ
並列に動作し、しかもデータを交換する必要があ
る時は相互間でまたは主記憶装置(MS)との間
で時々通信することが、その特徴である。各CP
及びMSは、入出力ポートを備え、それらのポー
トはデータを交換できるように相互に接続され
る。
緊密結合多重プロセツサ・システムと呼ばれ
る、各CPがそれぞれキヤツシユを有するタイプ
のMPシステムでは、システムの様々なレベル
で、整合性の問題が生じる。具体的には、記憶階
層の隣り合つたレベル間で不整合が生じることが
ある。たとえば、CPの1つがそのデータのコピ
ーを修正したために、多数のキヤツシユが所有す
る同じデータのバージヨンが異なることがあり得
る。したがつて、各プロセツサのキヤツシユが、
同時にいくつかのキヤツシユに入つている行に起
こつたかを知る必要がある。多数のCPが同じ主
記憶装置を共用するMPシステムでは、各CPが、
アクセスが発行されるときのアーキテクチヤ仕様
に応じて、最も最適に更新されたバージヨンのデ
ータを獲得する必要がある。この要件から、キヤ
ツシユ間でのデータの整合性を常に監視すること
が必要となる。
このキヤツシユ整合性の問題に対して、いくつ
かの解決方法が提案されている。早期の解決方法
は、C.K.タング(Tang)の論文「緊密結合多重
プロセツサ・システムにおけるキヤツシユ・シス
テムの設計(Cache System Design in the
Tightly Coupled Multiprocessor System)」、
Proceedings of the AFIPS(1976年)、及びL.M.
サンシエ(Censier)とP.フオートリエ
(Feautrier)の論文「多重キヤツシユ・システム
における整合性の問題の新しい解決策(A
New Solution to Coherence Problems in
Multicache Systems)」、IEEE Transactions
on Computers、1978年12日号、pp.1112−1118に
記載されている。サンシエ等は、集中大域アクセ
ス許可テーブルを使用する、多重キヤツシユ内で
共用書込み可能データが存在できる体系を記載し
ている。しかし、前記著者等はその結論部分で、
2年前にはタング等が記載したのと類似の方法を
知つていなかつたことを認めている。タングは、
キヤツシユのコピー・デイレクトリを使つて状況
を維持することを提唱したが、サンシエ等は同様
の状況ビツトで各メモリ・ブロツクをタグ付けす
ることを提唱した。
こうした早期の手法は、必要なとき相互問合せ
(XI)を実施するためにどのように記帳を行なう
べきかに関するものである。その考え方は、どの
プロセツサ・キヤツシユがある行のコピーを所有
するか、及びどのキヤツシユがその行を修正した
かに関する情報を大域デイレクトリ(コピーまた
はメモリ・タグ)に記録するというものであつ
た。基本動作は、プロセツサがある行に記憶する
とき、大域テーブルに(MODIFIEDビツトで)
状況を記録させることである。ストア・イン型キ
ヤツシユが使われるので、プロセツサ・キヤツシ
ユ制御装置は、そのキヤツシユ・デイレクトリか
らどの行が修正されているかそれとも専用である
かを知る。プロセツサの未修正の行に記憶するに
は、記憶制御装置との同期、及びまず
MODIFIED状況を獲得することが必要である。
したがつて、プロセツサが実際にそれへの記憶を
発行したのでない限り、キヤツシユがシステム内
にその行のコピーだけを有する時でも、記憶ブロ
ツクはそのプロセツサに対して排他的または修正
可能となり得ない。
米国特許第4394731号明細書に記載されている
ような、より一般的な意味でのEX状況を用いる
と、その行がキヤツシユに記憶されたことがない
時でも、記憶制御要素(SCE)にアドレスせず
に、プロセツサがキヤツシユに記憶することが可
能になる。これは些細な違いがあるが、たとえば
IBM/3081システムで、後続の記憶が到来「し
そうな」時にあるプロセツサである行のEX状況
を獲得することができるので、概念上かなり重要
である。
従来技術のMPシステムでは、様々なタイプの
キヤツシユがある。1つのタイプのキヤツシユ
は、IBMシステム/370 3033型MPについて米国
特許第4142234号明細書に記載されているような、
ストア・スルー(ST)型キヤツシユである。ST
キヤツシユの設計は、主記憶装置に対するデータ
の変更を常に更新するため、CPがデータを主記
憶装置に直接記憶することを妨げない。主記憶装
置へのストア・スルーの更新時に、適切な相互問
合せ(XI)処置を行なつて、記憶された行の遠
隔コピーを無効にすることができる。記憶制御要
素(SCE)が適切な記憶スタツクを維持して、主
記憶装置(MS)記憶要求を待ち行列に入れ、バ
ツフア制御要素(BCE)とSCEの間の標準の通
信により、記憶スタツクのふれ状態が回避され
る。SCE記憶スタツクが満杯になると、その状態
がクリアされるまで、関連するBCEはそのMS記
憶を保持する。
もう1つのタイプのキヤツシユ設計は、たとえ
ば米国特許第3735360号及び第4771137号明細書に
記載されているような、ストア・イン型キヤツシ
ユ(SIC)である。SICキヤツシユ・デイレクト
リは、前掲の米国特許第4394731号明細書に詳し
く記載されている。上記特許では、ストア・イン
型キヤツシユ内の各行が、その多重プロセツサ制
御可能性を排他的/読取専用(EX/RO)フラ
グ・ビツトによつて制御される。STキヤツシユ
とSICキヤツシユの主な違いは、SIC内のすべて
の記憶がキヤツシユ自体に向けられ(そのため、
記憶された行がそのSICキヤツシユにない場合は
キヤツシユ・ミスになることがあ)ることであ
る。また、米国特許第4503497号明細書では、遠
隔キヤツシユにコピーがある場合、取出しミス時
にキヤツシユ間転送(CTC)バスを介してデー
タ転送が行なえることが提唱されている。各キヤ
ツシユ内のデイレクトリのコピーを含むSCEが使
用される。そのため、相互問合せ(XI)判断を
SCEで下すことが可能となる。通常、キヤツシユ
行の修正は、それらの行がそのキヤツシユから置
換される時だけ、主記憶装置に対して更新され
る。
通常の相互間合せ(XI)法では、ブロツクB
がCP Piに関してEXにロツクされているとき、
遠隔キヤツシユ内のブロツクBでカバーされる既
存の第1段の各行に無効にされる。ブロツク・サ
イズが第1レベルの行のサイズよりも大きい時
は、しばしば冗長XI無効化が生じる。すなわち、
行は他のCPで修行されずに無効にされる。ブロ
ツク・サイズが行のサイズよりもずつと大きい
(たとえば、16倍)時は、余分のキヤツシユ・ミ
スとデイレクトリ操作とによるオーバヘツドが許
容できないほどになる。
実験によれば、取出しについても記憶について
も、著しい空間的局在性が認められている。粒度
のより大きなブロツクでEXのロツキングを行な
うと、非EX記憶の率を著しく低下させることが
できる。したがつて、上記の性能上のオーバヘツ
ドを生じることなく、大粒度のEXロツクを行な
えることは価値がある。
C 発明が解決しようとする課題 本発明の目的は、多重プロセツサ・キヤツシユ
において大粒度の排他性ロツクを行なうための実
施態様を提供することにある。
D 課題を解決するための手段 本発明によれば、ブロツクBの若干の行がまだ
キヤツシユ中に存在していたとしても、他の中央
演算処理装置(CP)にブロツクB上で一時的無
効(TI)状態を与えることにより、プロセツサ
Piのアクセス権が主張(enforce)される。CPが
TI状態のブロツクにアクセスしようと試みるに
は、記憶制御要素(SCE)にアドレスして、その
ブロツクに対する適切な許可(たとえば、RO状
態またはEX状態)を得る必要がある。CPがブロ
ツクB上で一時的無効状態TIBと読取り専用状態
ROBと独占状態EXBの3つの状態を持つことがで
きると仮定すると、一時的無効状態TIBが、すべ
てのCPにあるすべてのブロツクBの初期状態と
なる。本発明に基づく大粒度のロツク機構の基本
的動作は、次の通りである。
(1) プロセツサPiがブロツクBの行Lに記憶し、
PiがEXB状態を取らない場合、バツフア制御要
素(BCE)はSCEからEXB状態を要求すべきで
ある。PiがEXB状態を得て以降にそれがLへの
最初の記憶がある場合、SCEは遠隔キヤツシユ
からの行Lに対するXI無効化信号をやり取り
する。このXI無効化は、SCEがPiにEXBを与
える時にも行なわれる。記憶を意図した取出し
要求も同様に処理される。
(2) プロセツサPiがB中のTIB状態のデータを取
り出す時、BCEは、キヤツシユ・ヒツトの場
合でもアクセスする前にSCEからROB状態を要
求する。
(3) SCEがプロセツサPiからEXB要求を受け取る
時、SCEはPiにEXBを与える前に、すべての遠
隔CPにTIB状態を通知する。遠隔CP Pj(j≠
i)がたまたまEXB状態をとつている場合、
SCEは、プロセツサPiにEXB要求を許可する前
に、プロセツサPjがTIB状態を得たことを確認
する。
(4) SCEがプロセツサPiからROB要求を受け取る
と、どの遠隔CPもEXB状態をとつていない場
合、SCEはその要求をただちに許可する。そう
でない場合は、SCEは、CP PjがそのEXB状態
をROB状態に変えたことを確認した後で始めて
その要求を許可する。
(1)から、ある行がキヤツシユからXI無効化さ
れるのは、その行が実際に遠隔で修正される時で
あることがわかる。その結果、本発明による過程
は、過剰の無効化によるオーバヘツドがない。こ
のことは容易に理解できる。SCEで、EX状態に
(たとえばプロセツサPiに対してロツクされてい
るブロツクBのそれぞれについて、ビツト・ベク
トルCH(局所変更)が維持されるのは、プロセ
ツサPiに最後にEXB状態が許可されて以降にこれ
がPiによつて実際に記憶されるときである。CH
ビツトは、PiがEXB状態を得た時、0ビツトに初
期設定される。ブロツクBの行Lの記憶をSCEが
受け取ると、次の動作が行なわれる。Lに関連す
るCHビツトがオフの場合、SCEは遠隔キヤツシ
ユにXI無効化信号を送出する。次いで、Lに対
するCHビツトがオンになる。
本発明の好ましい実施例による大粒度ロツク方
式の実施態様で重要なフアクタは、CPに対する
ブロツクの状態をSCE及びBCEに記録すること
である。SCEでは、ロツク・テーブル{Ti|1
≦i≦k};と仮定されている。すなわち、SCE
はEX状態の所有権(ownership)だけを記録す
る。
E 実施例 ここで図面、特に第1図を参照すると、本発明
が適用できるタイプの多重プロセツサ(MP)シ
ステムの構成図が示されている。MPシステムは
4台の中央演算処理装置(CP0,CP1,CP2
CP3)10,11,12,13を含み、各CPは
それぞれ命令実行(IE)ユニツト14,15,
16,17とバツフア制御ユニツト(BCE)2
0,21,22,23を含んでいる。各IEユニ
ツトは、主記憶装置(MS)50からのオペラン
ドの取出し及びMSへのオペランドの記憶を要求
する命令を出す、ハードウエアとマイクロコード
を含んでいる。
IEユニツト14ないし17は、当該のキヤツ
シユ制御ユニツト20ないし23に取出しコマン
ドまたは記憶コマンドを出すことによつて、取出
し動作または記憶動作を開始する。各BCEは、
プロセツサ・ストア・スルー型(ST)キヤツシ
ユとそれに関連するプロセツサ・キヤツシユ・デ
イレクトリ(PD)、及び関連するCP10ないし
13が独占使用するすべてのプロセツサ・キヤツ
シユ制御機構を含んでいる。CPは一般にあるオ
ペランドが必要とする各ダブルワード(DW)単
位ごとに取出しコマンドまたは記憶コマンドを発
行する。そのDWを含むキヤツシユ・ヒツトのキ
ヤツシユ行がPD内にある場合、そのコマンドに
従つてそのDWがキヤツシユ中で取り出されまた
は記憶される。キヤツシユ中でのオペランド取出
しヒツトの場合は、BCEから外に出る必要なく、
記憶装置アクセスが完了する。時には、必要な
DWがキヤツシユ内になく、キヤツシユ・ミスと
なることもある。IE取出しコマンドまたは記憶
コマンドが完了できるには、その前に主記憶装置
からDWを取り出さなければならない。そうする
ため、BCEは対応する取出しミスまたは記憶ミ
ス・コマンドを生成して、記憶制御要素(SCE)
30に、IEユニツトが必要とするDWをもつ行単
位のデータを主記憶装置50から得ることを要求
する。その行単位は主記憶装置50内の行境界上
にくるが、必要なDWは、失販した行転送の完了
前にIE要求が向かうようにするために要求側
BCEに戻すべき、取り出された行中の最初のDW
となる。
SCE30は、CP10ないし13と主記憶装置
50に接続されている。主記憶装置50は、複数
の基本記録モジユール(BSM)制御装置BSC0
BSC1,BSC2,BSC3それぞれ51,52,53,
54から構成され、各基本記憶制御装置は2つの
BSM0,60,62,64,66と1,61,
63,65,67に接続されている。4つの
BSC51ないし54は、それぞれSCE30に接
続されている。
従来のシステムでは、SCE30は4つのコピ
ー・デイレクトリ(CD)31,32,33,3
4を含み、各CDは、米国特許第4394731号明細書
に記載されているのと同様の方式で、1つの
BCE中の対応するプロセツサ・キヤツシユ・デ
イレクトリ(PD)の内容のイメージを含んでい
る。下記の説明から明らかになるように、本発明
は、他のデイレクトリで行存在情報を記憶するこ
とによつてXI無効化の量をさらに減少させるこ
とが可能なものの、CDを使用する必要はない。
主記憶装置の各BSM60〜67と対応する
SCEポートの間、及びSCEポートから入出力チヤ
ネル・プロセツサ40及び対応する各CP10〜
13への間に、ダブルワード幅両方向データ・バ
スが設けてある。データ・バスと共に、制御信号
及びアドレス信号用の別々の数組のコマンド・バ
スもある。CPがDWアクセス要求に対するキヤ
ツシユ・ミスに出会うと、そのBCEは、SCE3
0にミス・コマンドを送ることにより、主記憶装
置に対する行アクセス要求を開始し、次いでSCE
30は主記憶装置内の要求さたBSMにそのコマ
ンドを再発行する。BSM使用中状態の場合、
SCE30はその要求をコマンド待ち行列にセーブ
し、後で要求されたBSM60〜67が利用可能
になつたときにそれを再発行する。SCE30はま
た、そのXI論理回路によつてキヤツシユ衝突が
検出された場合以外は、特定のBSMに対するす
べてのコマンドが先入れ先出し(FIFO)方式で
発行されるように、主記憶装置コマンドを規則的
に順序づける。主記憶装置要求の正常な取扱いシ
ーケンスの間、SCE30は主記憶装置の状況を絶
えず監視し、保護キー及び全キヤツシユ・デイレ
クトリの問合せ結果を分析し、現在SCE30に保
持されている未処理のすべてのコマンドの更新済
み状況を検査し、またBCE20〜23中でSCE
30による受領を持つている新しいBCEコマン
ドがあるかどうか調べる。
SCE30は、複数の記憶スタツク(SS0,SS1
SS2,SS3)35,36,37,38を維持する。
各記憶スタツクは、対応するCPに対する最大
16DWまでの主記憶装置記憶要求を保持すること
ができる。SCE30は、それらの記憶スタツクに
対して、主記憶装置アドレス及び有効性を示すの
に十分なデイレクトリ情報を保持する。記憶スタ
ツクがオーバフローする危険が生じると、SCE3
0は、BCEが後でSCE30から記憶スタツク満
杯状態をクリアする信号を受け取るまで、記憶要
求の送出を保留するようにとの優先順位信号を関
連するBCE20〜23に送る。記憶スタツク中
のデータは、主記憶装置に合わせて更新され、適
切なスケジユーリングによつて各記憶スタツク内
の着信順序が維持される。CPからの行取出し要
求は、記憶スタツク中のその行に対する既存の記
憶がすべて関連するBSM60〜67に送られた
ことをSCEが確認するまで、SCE30によつて保
持される。
キヤツシユ・デイレクトリ項目にEX状態を記
録する従来の方法は、コストが非常に高くつくこ
とがある。たとえば、32Kの項目を含む第2段キ
ヤツシユを考えてみる。SCEがEX状況に対する
第2段項目1個当たり3ビツトを維持するものと
すると、100Kビツト+第1段デイレクトリで必
要なビツトが必要となる。第2図に示すような比
較的小さなロツク・テーブルT1〜Toを使つて、
こうした回路コストを削減することが可能であ
る。第2図のMPシステムでは、各プロセツサPi
{Pi|1≦i≦n}について、SCEはロツク・テ
ーブルTiを維持する。ロツク・テーブルは通常、
アドレスによつてインデツクス(またはハツシ
ユ)されるセツト連想式テーブルとして構成さ
れ、また単純な先入れ先出し(FIFO)スタツク
として実施することもできる。第3図に一般的に
示すように、Tiの各項目ごとに、ブロツクBの
アドレスを記憶するIDフイールド(及び適切な
妥当性タグ)がある。SCEはまた、ロツク・テー
ブルに対する置換操作のために必要な状況アレイ
を維持する。ロツク・テーブルTiの各項目は、
プロセツサPiに対するあるブロツクのEXロツク
を表す。ロツク・テーブルの全項目は最初無効で
ある。ブロツク・サイズbは必ずしも第1段キヤ
ツシユまたは第2段キヤツシユの行のサイズと同
じである必要はないが、通常は第1段キヤツシユ
行のサイズの整数倍である。
CPからの各記憶をSCEと同期させる必要のあ
る、典型的なSTキヤツシユ用のSCEにある記憶
同期化機構について考えてみる。SCEでの基本動
作は下記の通りである。まず、プロセツサPiから
の(ブロツクB上の)記憶同期化要求のSCEによ
る処理について考察する。
(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で適切
な直列化が必要となる場合もあるが、そのために
同一サイクルで複数の記憶同期化要求を実行する
可能性が排除されることはない。ロツキング粒度
bが大きくなる(たとえば4K)とき、ステツプ
(a.2)及び(a.3)からのXI無効化によつて重大
な第1段キヤツシユ・ミスが生じる。
上記の重大なXI無効化は、SBビツト・ベクト
ルを用いて、同じ行に対する連続した無効化を排
除することにより、大幅に減少させることができ
る。そのフオーマツトを第4図に示す。このベク
トルは無効化同報通信用のBIAS(バツフア無効
化アドレス・スタツク)様フイルタとして使用さ
れる。このベクトルの各ビツトは、ブロツクBの
複数の(たとえば2)行を表すことができ、その
場合、各XI信号は関連する各遠隔キヤツシユ内
の複数の行を無効にすることができる。ビツト・
ベクトルでフイルタリングを行なう場合、たとえ
ばロツク・テーブルTiにある関連するビツト・
ベクトルが、プロセツサPiの要求に応じて関連す
る行に対して以前に記憶が行われたことを示さな
い時に、キヤツシユ「行」無効化が遠隔BCEに
送られるように、ステツプ(a.1)を修正するこ
とができる。
第5図及び第6図は、こうしたビツト・ベクト
ルに基づくSCE無効化フイルタリングのための論
理を図示した流れ図である。処理は第5図から始
まり、機能ブロツク70で、ブロツクBに対する
新しい項目がロツク・テーブルTiに挿入される。
そうなつた時、機能ブロツク72で、挿入された
項目のビツト・ベクトルのすべてのSBビツトがゼ
ロにリセツトされる。次に、第6図に関連して、
機能ブロツク74で、SCEはプロセツサPiからブ
ロツクBに対する記憶要求を受け取る。判断ブロ
ツク76でテストを行なつて、ロツク・テーブル
Ti中のブロツクBの項目にあるビツト・ベクト
ルの関連する記憶対象とされた行に対応するSB
ツトが1かどうか判定する。1である場合は、機
能ブロツク78で、その記憶要求が処理される。
そうでない場合は、機能ブロツク80で、SCEは
遠隔中央演算処理装置に行無効化信号を送り出
す。次いで、機能ブロツク82で、SCEは関連す
るSBビツトを1にし、その記憶要求を処理する。
上記のロツクアツプ機構は、前掲の米国特許第
4142234号明細書に記載されている、 IBM3033MPシステムで使用されているバツフア
無効化アドレス・スタツク(BIAS)フイルタ・
メモリ法とは異なつている。BIASそれ自体は、
BCEが受け取る無効化信号のスタツクにすぎな
い。BIASフイルタ・メモリ方式では、SCEは、
各プロセツサPiごとに、プロセツサPiから最近に
無効にされたブロツクを再取出しなしで記録する
テーブルIiを維持する。プロセツサPiからの各記
憶要求を、同時にテーブルIj(j≠i)中のすべ
ての項目と突き合わせて、XI無効化の可能性が
あるかどうか検査する必要がある。プロセツサの
数が増すにつれて、この同時検査は重い負担にな
る。ロツク・テーブル法では、大部分の記憶は
CP Piに関連するロツク・テーブルTiにヒツト
し、したがつて、SCE処理の並列度がずつと高く
なる。さらに、任意の時点で、最近に記憶された
ブロツクIDは、BIASフイルタ・メモリ法では大
部分の遠隔テーブルIj中に存在する。ロツク・テ
ーブルTjは、当該の各CPからの最近の記憶だけ
を記録し、(無効の項目以外は)互いにばらばら
である。その結果、ロツク・テーブルTjは回路
をより有効に利用できる。
パイプライン化がずつと進む将来のプロセツサ
では、記憶同期化の遅延が、パイプラインの性能
をかなり損なうことがあり得る。したがつて、
SCEに対する記憶同期化の頻度が低下するよう
に、BCEレベルで適切なEXロツクを行なうのが
好都合である。上記のSCEロツクアツプ設計で
は、ロツク・テーブルTiにロツクされたブロツ
クは、実際には、それが(j≠iのPjに対する)
どの遠隔キヤツシユにも存在できないことを意味
する。こうしたロツキング情報がBCEに渡され
る場合、局所的にロツクされたブロツクへの記憶
のためのSCEとの初期接続手順をなくすことが可
能である。第7図で、局所ロツク・テーブルLiが
各プロセツサPiごとにBCEによつて維持される。
局所ロツク・テーブルLiの各項目は、プロセツサ
PiによつてEXにロツクされるブロツクのIDを記
録する。通常、局所ロツク・テーブルLiの項目は
ロツク・テーブルTiの項目よりも少ない。記憶
及びロツクのための動作は次の通りである。
(b.1) 局所ロツク・テーブルLi中の全項目が、
最初は無効である。
(b.2) プロセツサPiからの記憶要求に対して、
局所ロツク・テーブルLi中でロツクされたブロ
ツクBにヒツトした時は、その記憶は遅延なし
に実行できる。
(b.3) プロセツサPiからのブロツクBに対す
る記憶が、局所ロツク・テーブル中でミスした
時は、BCEはSCEに同期化要求を送る。SCE
から許可信号を受け取ると、ブロツクBに対す
る有効項目が局所ロツク・テーブルLi中で作成
される。
(b.4) プロセツサPiがSCEからブロツクBに
対する解除要求を受け取つた時は、局所ロツ
ク・テーブルLiからブロツクBの項目が見つか
つた場合、プロセツサPiのBCEがその項目を
無効にする。次いで、肯定応答信号がSCEに送
られる。
BCEに関しては、通常の(非EX型)取出し
に特別の取扱いは必要でない。SCEに関して、
主要な違いの1つは、遠隔EXヒツトの取扱い
にある。プロセツサPiからブロツクBへのアク
セスがロツク・テーブルTj(j≠1)にヒツト
するという状況を考察する。
(b.5) ブロツクBが局所ロツク・テーブルLj
中でロツクされている可能性がある場合、SCE
はプロセツサPjに、ブロツクBに対するEXロ
ツクを解除するように指示する信号を送る(ロ
ツク・テーブルTjは、局所ロツク・テーブル
Ljより多くのロツク項目をもつことを妨げられ
ない)。この信号は、(たとえば、プロセツサPi
からのアクセスがEX状況に対するものである
時に)適当なXI無効化要求と結合されること
がある。SCEは、プロセツサPjから肯定応答信
号を受け取つて始めて、このXI動作を完了す
る(ステツプ(b.4)参照)。
局所ロツク・テーブルLi内のロツク情報を、ロ
ツク・テーブルTi内のロツク情報のサブセツト
にすることが望ましい。第8図に示すような余分
のLビツトをTiテーブル項目1つにつき1個ず
つ追加することによつて、SCEは、SCE EXロツ
ク・テーブルTi内のあるブロツクが対応する
BCE局所ロツク・テーブルLi中にあるか否かを
検出することができる。しかし、局所ロツク・テ
ーブルLiとロツク・テーブルTiが同じサイズの
場合は、そうする必要はなく、ロツク・テーブル
Tiからある項目が削除された時に、局所ロツ
ク・テーブルLi中にそれに対応するブロツクが存
在しないように保証するだけで十分である。ロツ
ク・テーブルTiの項目がテーブルTiから削除さ
れる理由としては、相互問合せと局所要求による
置換の2つが考えられる。XI処理(たとえば上
記のステツプ(b.5))は、このサブセツト則を適
切に維持する。局所置換の場合、ロツク・テーブ
ルTiから項目が置換される理由としては、プロ
セツサPiからEX要求しかないことは明らかであ
る。以上の議論は、通常のXI無効化法を前提と
したものである。すなわち、ブロツクBがプロセ
ツサPiからEXにロツクされるとき、遠隔キヤツ
シユ内のブロツクBでカバーされる既存の第1段
キヤツシユ行は無効になる。そのブロツク・サイ
ズが第1段ブロツク・サイズより大きい時は、そ
の結果しばしば冗長XI無効化が生じる(すなわ
ち、行が別のCPで修正されないのに無効にな
る。)ブロツク・サイズが行のサイズよりずつと
大きい(たとえば、16倍)時は、余分のキヤツシ
ユ・ミス及びデイレクトリ処理によるオーバヘツ
ドは許容できないものになる。
実験から、取出しについても記憶についても、
大きな空間的局在性が観察されている。より大き
な粒度のブロツクでEXロツツクを実行する時、
非EX記憶の速度が著しく低下する可能性がある。
したがつて、上記の性能上のオーバヘツドを生じ
ずに大粒度のEXロツクが実行できれば価値があ
る。以下の説明では、話を簡単にするため、排他
的ロツクの粒度を、多重プロセツサ・システムに
おいて各キヤツシユ行当たり128バイトの4Kブロ
ツクで例示する。こうした場合、各ブロツクに32
行あることになる。ただし、これらの数字は例と
して示したものにすぎず、本発明の実施に際し
て、異なるサイズのブロツク、行、キヤツシユも
使用できることを了解されたい。また、この説明
では、SCEがシステム中の複数のプロセツサそれ
ぞれにより記憶ブロツクの排他的(EX)所有権
を記録する、ストア・スルー型(ST)キヤツシ
ユ設計であると仮定する。また、各中央演算処理
装置(CP)に、ブロツク情報を記録するための
デイレクトリDPがあるものと仮定する。デイレ
クトリDP内のブロツクBに対する各項目には、
少なくとも概念上、排他的EXB、一時無効TIB
読取り専用ROBの3つの状態がある。実際には、
システムは、容量が限られているEXロツク・テ
ーブルによつて各プロセツサごとにEX状態とTI
状態だけを明示的に維持している。BCEは、ブ
ロツクBがTIまたはEXではないことを検出した
時は、単にそのブロツクをROとして扱う。した
がつて、デイレクトリDPは、TI状態とEX状態を
記録するものと見なせる。ある実施態様では、
INVB状態も使用されることがある。
BCEが許可情報を獲得する方法の1つは、
SCEからすべてのCPのEXロツク情報を複製する
ものである。プロセツサPiは、別のCPがEXB
態をとるとき、TIB状態をとる。プロセツサPiの
BCEで維持されている{Lj|1≦j≦K}のコ
ピーを{Lj(i)|1≦j≦K}で示すことにする。
プロセツサPiでは、ロツク・テーブルLi(i)が前記
の局所ロツク・テーブルとして機能する。プロセ
ツサPiで、ブロツクBがテーブルLi(i)で見つかつ
た場合は、ブロツクBはEXB状態であり、ロツ
ク・テーブルLj(i)(j≠i)で見つかつた場合は
TIB状態であり、その他の場合はROB状態である。
プロセツサPiがTIB状態からROB状態またはEXB
状態に切り替わると、BCEは、ロツク・テーブ
ルLj(i)(j≠i)に記録されている以前の遠隔
EXB状態を無効にしなければならない。SCEは、
プロセツサPiにEXB状態を与える時、やはり局所
ロツク・テーブルLi中のブロツクBの項目の座標
を送ることによつて、各プロセツサPj(j≠i)
にTiB状態をとるようにとの信号を送る。TIB
号を受け取ると、プロセツサPjのBCEは、ロツ
ク・テーブルLi(j)の指定された座標にその状況を
記録する。プロセツサPjが、プロセツサPi(i≠
j)からのROB要求によつてそのEXB状態を放棄
し(ROB状態になる)時、SCEがその状態変化を
他のCPに通知するのが有用であるが、必ずしも
必要ではない。
本発明の別の実施例では、「局所」ロツク・テ
ーブルLj(i)はSCEでテーブルTj(i)として維持す
ることができる。ただし、TiテーブルをLiテー
ブルよりもずつと大きくすると、性能及び設計上
何らかの利点がある。すなわち、EX状況の解釈
が、SCEとBCEの間で異なることがあり得る。
テーブルLiはテーブルTiのサブセツトとして維
持されるので、EX状況が局所ロツク・テーブル
Liに記録されている限り、SCEもBCEもEX状況
を理解するはずである。しかし、実施態様によつ
ては、BCEがロツク・テーブルTiの情報をすべ
て知つている必要はない。このより大きなTiテ
ーブルをSCEが使つてBCにEX状況を許可する際
の並列性を高め、状況、たとえば無効化フイルタ
リング用のSBビツト・ベクトルを記録する。
局所ロツク・テーブルLiに記録されたEX状況
は、相互問合せ(XI)活動の対象となる唯一の
項目である。ロツク・テーブルTiは、本質上
SCEの記帳用のものにすぎない。アーキテクチヤ
の整合性は、プロセツサ及び入出力チヤンネルか
らの記憶装置へのアクセスに対してのみ維持すれ
ばよい。この場合、ブロツクBが遠隔ロツク・テ
ーブルTjに記録されている時でも、ブロツクB
が遠隔BCEの局所ロツク・テーブルLjに割り当
てられていない限り、そのブロツクBはあるプロ
セツサに対するRO状態となることができる。
本発明による処理の論理を、第9図、第10図
及び第11図に流れ図で示す。第9図に示したケ
ースでは、機能ブロツク82で、SCEはプロセツ
サPiからEXB要求を受け取る。判断ブロツク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でのテスト結果がノーの場
合、機能ブロツク96で、SCEはブロツクBに対
する新しい項目をテーブルTiに挿入する。次い
で機能ブロツク98で、SCEは遠隔中央演算処理
装置にHOLDB信号を送り出す。最後に機能ブロ
ツク100で、SCEはプロセツサPiにEXB状況を
許可するよう指示する。
第10図に示したケースでは、機能ブロツク1
02で、SCEはプロセツサPiからEXB解除要求を
受け取る。それにより、機能ブロツク104で、
SCEはすべての遠隔プロセツサにCLEARB信号を
送り出す。次いで機能ブロツク106で、SCE
は、ブロツクBがもはや局所ロツク・テーブルLi
に記録されていないことを示すように、ロツク・
テーブルTiにおけるブロツクBの項目の状況を
更新する。
第11図には、RO状況要求のケースが示され
ている。この場合、機能ブロツク108で、SCE
はプロセツサPiからROB状況要求を受け取る。判
断ブロツク110でテストを行なつて、ブロツク
Bが遠隔ロツク・テーブルTj(j≠i)に記録さ
れているかどうか判定する。記録されている場
合、判断ブロツク112でさらにテストを行なつ
て、ブロツクBが遠隔局所ロツク・テーブルLjに
記録されているかどうか判定する。記録されてい
ない場合、SCEはロツク・テーブルTjからブロ
ツクBの項目を削除する。ブロツクBの項目が削
除されている時、あるいは判断ブロツク110で
のテスト結果がノーである場合、機能ブロツク1
16で、SCEはプロセツサPiにROB状況を許可す
るよう指示する。
判断ブロツク112に戻ると、ブロツクBが遠
隔局所ロツク・テーブルLjに記録されている場
合、機能ブロツク118で、SCEはプロセツサPj
にその局所ロツク・テーブルLjからEXBを解除す
るように指示する。次いで、SCEはプロセツサPj
の肯定応答を待つ。プロセツサPjから肯定応答を
受け取ると、機能ブロツク120で、SCEはプロ
セツサPj以外のプロセツサにCLEARB信号を送り
出す。プロセツサPjは、CLEARB信号を受け取る
と自動的にROB状況となる。
CP Piが(記憶のためのアクセスによつて、あ
るいはプロセツサPiがまもなくブロツクBに記憶
すると予想される時)SCEに対してブロツクBの
排他的制御権を要求する(CPがEXB状況をとる
ことで示される)と、SCEは下記の適切な動作を
実行する。まず、遠隔CP、たとえばPjがその局
所ロツク・テーブルLjでEXB状態を所有すること
をSCEが検出した場合、SCEは、プロセツサPiに
EXBを許可する前に、プロセツサPjがそのEXB
態を放棄するようにさせる。そうしないと、ただ
ちにEXBがプロセツサPiに許可されてしまうこと
がある。次に、SCEは、そのキヤツシユにブロツ
クBの行を所有する可能性のある遠隔CPに
HOLDB信号を送り出す。このHOLDB信号を受け
取つた後、遠隔CP、たとえばPjは(ロツク・テ
ーブルLi(j)にブロツクBを記録することにより)
ブロツクBをTIB状態でマークする。ただし、
TIB状態とは、ブロツクBがそのCPに対して一時
的に無効となることを意味する。
プロセツサPiは、取出し要求によつてTIB状態
のブロツクBにアクセスする際、SCEはアクセス
権を求める必要がある。取出し要求は、インタク
ロツク命令からの取出し後修正要求でもよいこと
に留意されたい。SCEはEXB状態を保持している
CPにそれを放棄させる。EXB状態がどの遠隔CP
によつても所有されなくなつた後、SCEはプロセ
ツサPiに適切なアクセス権を許可する信号を送
る。プロセツサPiは、SCEからの許可を受け取つ
た後、TIB状態を適当な状態、たとえばPOBまた
はEXBに変更して、ブロツクBのデータへのアク
セスを開始する。キヤツシユ・ミス状況の場合、
SCEはある時点でプロセツサPiにその行の有効コ
ピーを転送して、プロセツサPiがアクセス権獲得
後にミスを再発行しなくてもすむようにすること
ができる。
プロセツサPiは、何らかの理由でEXB状態を放
棄する時、その事象についてSCEに知らせる。
EXB状態がCPから要求されていない場合、SCE
は、TIB状態を保持している可能性のある遠隔CP
にCLEARB信号を送る。このCLEARB信号を受け
取つた後、CP、たとえばPjは、後でブロツクB
にアクセスできるように、Ti(j)からブロツクB
を削除することによつて)そのTIB状態をクリア
する。
CP PiがEXB状態のもとでブロツクB内のある
行に記憶する時、SCEは、自分のキヤツシユにそ
の行のコピーを所有している可能性のあるCPに、
XI(相互無効化)信号を同報通信する。
SCEは、CP、たとえばPiが排他的に(EXB
所有する各ブロツクごとに、下記の情報を維持す
ることができる。(a)どのCPがEXB状態をとつて
いるか。これは、遠隔EXヒツト相互問合せを取
り扱うために使用される。(b)Piが最後にEXB状態
を獲得して以降、Bのどの行に以前にPiによつて
記憶が行なわれたか。これは、前述のように、ビ
ツト・ベクトルSBを使つて実施できる。
CP Piにおいて、その局所ロツク・テーブルLi
中の(たとえばブロツクBに対する)各項目は、
Piが最後にEXB状態を獲得して以降、ブロツクB
のどの行に以前にプロセツサPiによつて記憶が行
なわれたかに関する情報を保持することができ
る。これは、SCEについて説明したのと同様のビ
ツト・ベクトルを使つて実施できる。こうしたベ
クトルが局所CPで実施されるときは、必ずしも
上記のベクトルを使用する必要はない。この実施
態様は、ストア・イン型キヤツシユ設計に最も好
都合である。
CPがそのEXB制御権を放棄する時、SCEはた
だちに他のCPにCLEARB信号を送り出す必要は
ない。このため、他のCPが、後でBを最初に参
照する際にSCEを相談できるようになる。
SCEは、EXB状態の許可及び相互無効化の処理
を適切に直列化しなければならない。
この状態の実施には様々なビツトが使用でき
る。たとえば、TIB状態は独立のフラグ・ビツト
を使つて実施できる。場合によつては、そうする
のが好都合である。
遠隔キヤツシユ行無効化信号の有効なフイルタ
リングを行なえることが重要である。上記のビツ
ト・ベクトル以外に他のフイルタリング手段を設
けるのが有利なことがある。上記のSBビツト・ベ
クトルで遠隔無効化をなくすることができない時
は、たとえば、C.K.タングが提唱したコピー・
デイレクトリ(CD)技術や、L.M.センシエ他が
提唱した存在タグが2次フイルタリング手段とし
て使用できる。局所テーブルによつて保証される
記憶のためのEX状況を用いると、データの整合
性の問題を引き起こさずに、SCEが2次フイルタ
リングの実行により多くの時間をかけることがで
きるようになる。
あらゆる記憶装置、すなわちキヤツシユに対す
るアクセスで、すべてのロツク・テーブルLj(i)を
探索するとなると、重大な性能上の問題が生じる
恐れがあるが、そのような探索の必要はない。そ
の代わりに、これらのロツク・テーブルLj(i)は、
BCEが必要とする時、バツクアツプ状況デイレ
クトリとして働くことができる。たとえば、プロ
セツサBCEは、各項目ごとに適切な状況(ROま
たはEX)を記録して、最初にアクセスされたブ
ロツクに対するデイレクトリを小さくすることが
できる。大粒度のブロツクでは、このようなデイ
レクトリに対するヒツト率は非常に高くなると予
想される。ロツク・テーブルLj(i)を探索する必要
があるのは、アクセスされたブロツクがデイレク
トリ中で見つからない時だけである。こうする
と、BCEは、大部分の時間、IE装置からの実際
の記憶装置アクセスと並列して、ロツク・テーブ
ルLj(i)に作用することができる。
F 発明の効果 本発明によれば、多重プロセツサ・キヤツシユ
における大粒度の排他性ロツクを、オーバヘツド
を生じさせることなしに行なうことが可能とな
る。
【図面の簡単な説明】
第1図は、本発明を適用できるプロセツサ・シ
ステムの構成図である。第2図は、第1図の多重
処理システムの、複数のプロセツサと記憶制御要
素(SCE)とを含む部分を示し、各プロセツサ用
のロツク・テーブルを図示した構成図である。第
3図は、本発明の一態様に基づくロツク・テーブ
ルのある項目のフオーマツトを示す構成図であ
る。第4図は、本発明の別の態様に基づくロツ
ク・テーブルのある項目のフオーマツトを示す構
成図である。第5図及び第6図は、SBビツト・ベ
クトルを用いて記憶の同期化を行なう本発明の実
施態様の論理を示す流れ図である。第7図は、プ
ロセツサにある局所ロツク・テーブルを示す、第
2図と類似の構成図である。第8図は、本発明の
別の態様に基づくロツク・テーブルのある項目の
フオーマツトを示す、第3図と類似の構成図であ
る。第9図、第10図及び第11図は、本発明の
実施態様の論理を示す流れ図である。 10〜13……中央演算処理装置(CP)、14
〜17……命令実行(IE)ユニツト、20〜2
3……バツフア制御ユニツト(BCE)、30……
記憶制御要素(SCE)、35〜38……記憶スタ
ツク(SS)、40……入出力チヤンネル・プロセ
ツサ、50……主記憶装置、51〜54……基本
記憶モジユール制御装置(BSC)、60〜67…
…基本記憶モジユール(BSM)。

Claims (1)

  1. 【特許請求の範囲】 1 それぞれがキヤツシユを有する多重プロセツ
    サを含むデータ処理システムにおいて排他性の大
    粒度ロツキングを行なう方法であつて、 所与のプロセツサにキヤツシユ中の所与のブロ
    ツクのデータに対する唯一のアクセス権を与える
    ために、当該ブロツクをキヤツシユに含む他のプ
    ロセツサにおいて当該ブロツクのデータを一時的
    無効状態とすることを指示するステツプと、 上記他のプロセツサが上記所与のプロセツサに
    によつて唯一のアクセス権が主張されている一時
    的無効状態のブロツク中のデータを取り出す時、
    キヤツシユ・ヒツトの場合でも上記他のプロセツ
    サが自身のキヤツシユにアクセスする前に該一時
    的無効状態のブロツクに対する読取り専用アクセ
    ス権を求めるステツプ を含む方法。 2 それぞれがキヤツシユ・メモリとバツフア制
    御要素を有する複数の中央演算処理装置、主記憶
    装置及び記憶制御要素を有する多重プロセツサシ
    ステムにおいて、 キヤツシユ・メモリに記憶されたデータ・ブロ
    ツクの排他性の大粒度ロツキングを行なうための
    装置であつて、 すべてのキヤツシユ・メモリに記憶されている
    データ・ブロツクの排他的状況の記録を維持する
    ための、記憶制御要素内にある上記の各プロセツ
    サごとのロツク・テーーブル手段と、 各バツフア制御要素内にあつて、対応するプロ
    セツサによつてアクセスされるデータ・ブロツク
    の排他的状況の記録のサブセツトを維持するため
    の、局所ロツク・デーブル手段と を含む装置。 3 複数のプロセツサ、主記憶装置及び記憶制御
    要素を含む緊密結合多重プロセツサ・システム用
    のストア・スルー型キヤツシユ・アーキテクチヤ
    において、 上記プロセツサによるデータの大粒度記憶同期
    化を行なうための方法であつて、下記のステツプ
    を含む方法。 (a) 上記記憶制御要素内に、上記各プロセツサご
    とに1つずつ、上記各プロセツサに許可された
    データ・ブロツクについての排他的状態の記録
    を維持するためのロツク・テーブルを設けるス
    テツプ。 上記各ロツク・テーブルにはビツト・ベクト
    ルが含まれ、それに含まれるビツトと当該ロツ
    ク・テーブルに関連するブロツクに含まれる行
    とは一対一に対応する。 (b) 上記プロセツサに対して新しく排他的状態が
    許可されたデータ・ブロツクに対応する項目を
    関連するロツク・テーブルに新設し、かつ当該
    ブロツクに対応するビツト・ベクトルのすべて
    のビツトは0にリセツトする。 (c) 上記記憶制御要素が所与のプロセツサから所
    与のブロツクに対する記憶を要求されたことに
    応答して、下記のサブ・ステツプを実行する。 (c1) 上記所与のプロセツサに対応するロツ
    ク・テーブルにおいて、記憶対象とされた行
    に対応するビツトが1であるか否かをテスト
    する。 (c2) 上記テストの結果が1であることに応
    答して、上記要求された記憶を実行する。 (c3) 上記テストの結果が0であることに応
    答して、上記記憶制御要素から他のプロセツ
    サに対して行無効化信号を送り、その後、上
    記テスト結果が0であつたビツトを1にセツ
    トし、上記要求された記憶を実行する。 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 JPH02247751A (ja) 1990-10-03
JPH0561664B2 true 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)

Families Citing this family (5)

* 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 甲府日本電気株式会社 ロックリクエスト制御装置
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
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

Also Published As

Publication number Publication date
EP0384102A3 (en) 1992-04-29
JPH02247751A (ja) 1990-10-03
EP0384102A2 (en) 1990-08-29

Similar Documents

Publication Publication Date Title
US5210848A (en) Multi-processor caches with large granularity exclusivity locking
US5230070A (en) Access authorization table for multi-processor caches
US6587931B1 (en) Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US5537574A (en) Sysplex shared data coherency method
US5197139A (en) Cache management for multi-processor systems utilizing bulk cross-invalidate
JP4050225B2 (ja) マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置
US4400770A (en) Cache synonym detection and handling means
US5546579A (en) Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store
US5493668A (en) Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
EP0372201B1 (en) Method for fetching potentially dirty data in multiprocessor systems
JPH04268649A (ja) メモリへのデータブロックのエントリを制御する方法
US6477620B1 (en) Cache-level return data by-pass system for a hierarchical memory
US5953510A (en) Bidirectional data bus reservation priority controls having token logic
JPH0567976B2 (ja)
EP0212678A2 (en) Cache storage synonym detection and handling means
JPH0561664B2 (ja)
JP2681410B2 (ja) マルチプロセッサ・キャッシュにおける排他性をロックする方法
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
EP0531004A2 (en) Multiprocessor data processing with cross interrogate synchronization mechanism
JPH07101412B2 (ja) データ事前取出し方法およびマルチプロセッサ・システム
JPH0683702A (ja) データ転送及びデータ除去のための制御方法並びにコンピュータ・システム