JPH1091524A - キャッシュ・コヒーレンシを維持するための方法及び装置 - Google Patents

キャッシュ・コヒーレンシを維持するための方法及び装置

Info

Publication number
JPH1091524A
JPH1091524A JP9142666A JP14266697A JPH1091524A JP H1091524 A JPH1091524 A JP H1091524A JP 9142666 A JP9142666 A JP 9142666A JP 14266697 A JP14266697 A JP 14266697A JP H1091524 A JPH1091524 A JP H1091524A
Authority
JP
Japan
Prior art keywords
data
processor
given block
block
given
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
JP9142666A
Other languages
English (en)
Other versions
JP3202939B2 (ja
Inventor
Neisan Rehitoshatsufuen Rudoph
ルドルフ・ネイサン・レヒトシャッフェン
Ekanadamu Katsutamuri
カッタムリ・エカナダム
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 JPH1091524A publication Critical patent/JPH1091524A/ja
Application granted granted Critical
Publication of JP3202939B2 publication Critical patent/JP3202939B2/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/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions

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)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 多重キャッシュ・システム構成内のプロセッ
サの集合が、システム内のどのプロセッサからも発する
ことのできる記憶動作の優先順序付けに関して不一致に
ならないことを保証する、キャッシュ・コヒーレンシ・
プロトコルを提供する。 【解決手段】 本発明のプロトコルでは、他のプロセッ
サがラインの未変更の以前のコピーにアクセスしている
間に、あるプロセッサがラインを変更できる、コヒーレ
ンシが維持される。このコヒーレンシの達成は、システ
ム内のすべてのラインの状況を維持するライン状況レジ
スタと、他のプロセッサと共用されるラインを変更する
ことの許可を与えられているプロセッサのすべての識別
を維持する変更元プロセッサ・レジスタを使用すること
を介して行われる。優先サイクルの機会を生じる可能性
がある共用ラインに対する変更状況の許可が実現する状
況の排除が、本発明の中心的な態様である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、多重プロセッサ・
システムに関し、具体的には、多重プロセッサ・システ
ムのキャッシュ・コヒーレンシに関する。
【0002】
【従来の技術】プロセッサのサイクル時間とメモリ・ア
クセス時間が不釣り合いなので、プロセッサにキャッシ
ュを使用せざるをえなくなった。このキャッシュには、
高速にアクセスできるメモリのサブセットが含まれる。
各プロセッサが独自の局所キャッシュに接続される多重
プロセッサ・システムでは、異なるプロセッサに接続さ
れる局所キャッシュの内容同士の間で何らかの調整を行
わないと、コヒーレンシの問題が発生する可能性があ
る。接続されたプロセッサがメモリ更新(記憶)動作を
実行する時に、必ず更新されるキャッシュ・メモリを考
慮されたい。通常、このようなシステムでは、プロセッ
サがそれ自体のキャッシュの内容を変更しようとする時
に、メモリ・システムが、他のキャッシュ内のキャッシ
ュ・ラインの他のすべてのコピーを無効化することによ
って、変更元プロセッサのキャッシュ内で変更されるキ
ャッシュ・ラインの排他的コピーを作成することを必要
とすることによって、キャッシュ・コヒーレンシが実施
される。このようなライン無効化は、時間のかかる動作
であり、各メモリ更新動作がすべての無効化の完了と同
期化される場合、かなりの遅延がもたらされる可能性が
ある。
【0003】メモリ・システムがこのようなステップを
実行するという固有の必要は存在しない。多重プロセッ
サ・システムのコヒーレンシの本質は、すべてのプロセ
ッサが、すべてのプロセッサの処置によってメモリ・シ
ステムが更新される順序について同意するということで
ある。メモリ・システムの更新の順序は、メモリの2つ
の位置を検査することによって、プログラムによって識
別できる。プログラムが位置Aを観察し、位置Aが新し
い値を有することを発見し、次に位置Bを検査し、位置
Bが古い値を有することを発見する場合、このプログラ
ムは、位置Bが更新される前に位置Aが更新されたと推
論することができる。多重プロセッサ・システムでは、
すべてのプロセッサが、この質問の共通の解に達するこ
とが必要である。この必要は、多数の微妙な暗示を有す
る。たとえば、多重プロセッサ・システムにおいて、単
一のプロセッサが2つの取出し要求(または検査要求)
を発行する場合、これらの要求は、順番に処理されなけ
ればならない。あるプロセッサが2つの記憶要求(また
は更新要求)を発行する場合、これらの要求は、順番に
処理されなければならない。取出し要求が順番に処理さ
れない場合、記憶要求を順番に処理する必要もない。さ
らに、単一プロセッサ内では、取出し要求によって、概
念上その取出しより前にある、そのプロセッサによって
発行された最後の記憶結果が得られなければならない。
多重プロセッサでは、メモリ・サブシステム内で記憶動
作が発生する順序に関する共通の推論を侵害しない限
り、あるプロセッサでの特定の取出し要求によって、別
のプロセッサからの特定の記憶の結果が得られる必要は
ない。この必要を要約した規則は、次の形で表現でき
る。
【0004】次の例が発生しない限り、多重プロセッサ
・システム内で観測可能な順序の侵害は存在しない。K
個のプロセッサPi(ここで、i=1、2、…、K)
と、2組のK個のメモリ位置Xi及びYi(ここで、Yi
はXiの置換)を有するシステムを仮定する。K個のプ
ロセッサPiのそれぞれが、Xiの後にYiを観察し、Xi
の新しい値とYiの古い値を見る。優先サイクルと称す
るこの例では、複数のプロセッサが、記憶動作の順序に
関する矛盾した推論に達する。
【0005】
【発明が解決しようとする課題】本発明の目的は、優先
サイクル発生の可能性を回避しつつ、1プロセッサによ
って排他的に保持されるキャッシュ・ラインのみが更新
動作の対象となり得ることを必要としない、キャッシュ
・コヒーレンシ・プロトコルを提供することである。
【0006】
【課題を解決するための手段】本発明によれば、プロセ
ッサがそれ自体のキャッシュ内のデータを変更できると
同時に、そのデータが他のプロセッサのキャッシュ内で
未変更のままにとどまる、キャッシュ・コヒーレンシ・
プロトコルが開示される。これは、複数のプロセッサが
同一ラインを同時に変更できないことと、そのような変
更の結果が、禁止された優先サイクルの発生を引き起こ
せないことを保証する形で行われる。プロセッサが所与
のラインの変更を許可されるための規則は、次のとおり
である。 1)所与のラインが変更状況を有しない(すなわち、他
のすべてのプロセッサがそのラインを変更する許可を与
えられていない)ことと、 2)所与のラインを共用する他のプロセッサ(すなわ
ち、所与のラインがそのプロセッサに関連するキャッシ
ュ・ライン内に置かれる)のすべてが、現在、他のライ
ンに関して、変更状況を許可されていないこと。
【0007】このプロトコルの主な長所は、許可された
ラインの変更が、多重プロセッサ・システム内のライン
の他のすべてのコピーの無効化なしに発生可能であり、
したがって、更新動作に関連する処理時間が削減される
ことである。
【0008】本発明の他の目的及び長所は、添付図面と
共に以下の詳細な説明を検討すれば完全に理解される。
【0009】
【発明の実施の形態】図1からわかるように、多重プロ
セッサ・システムには、共用メモリ101にアクセスす
る複数のプロセッサ(P1、P2、…、PN)が含まれ
る。各プロセッサには、共用メモリ101のサブセット
を記憶する、複数のラインとして配置された対応する局
所キャッシュ(C1、C2、…、CN)が関連する。所与
の局所キャッシュ内の各ラインは、図4に示されるよう
に、そのラインに関連する2ビットを有することが好ま
しい。第1ビット401は、通常は有効ビットと称する
が、そのラインが有効状況と無効状況のいずれを有する
かを識別する。第1ビット401からそのラインが有効
状況を有することが示される場合、第2ビット403に
よって、そのラインが読取り専用状況と変更状況のいず
れを有するかが示される。
【0010】プロセッサがそれに関連する局所キャッシ
ュに対して発行する参照は、次の2つのクラスに編成で
きる。 1)クラス1参照 プロセッサによる所与のラインの変
更が目的でない参照 2)クラス2参照 プロセッサによる所与のラインの変
更が目的の参照
【0011】プロセッサがクラス1参照を発行し、参照
されるラインが(a)そのプロセッサに関連する局所キ
ャッシュ内にあり、(b)読取り専用状況または変更状
況のいずれかの有効状況を有する場合には、局所キャッ
シュからプロセッサへ要求されたラインを転送すること
によってクラス1参照に対応することができる。
【0012】プロセッサがクラス1参照を発行し、参照
されるラインが(a)そのプロセッサに関連する局所キ
ャッシュ内にないか、(b)そのプロセッサに関連する
局所キャッシュ内にあるが無効状況を有する場合、キャ
ッシュ・ミス(CM)要求が発行される。CM要求の処
理は、下で詳細に説明する。CM要求の処理が完了した
時、参照されたラインは、プロセッサに関連する局所キ
ャッシュに記憶され、有効状況と読取り専用状況を有す
る。その後、局所キャッシュからプロセッサへ要求され
た情報を転送することによって、クラス1参照に対応す
ることができる。
【0013】プロセッサがクラス2参照を発行し、キャ
ッシュ・ラインが、そのプロセッサに関連する局所キャ
ッシュ内にあり、有効状況と変更状況を有する場合、局
所キャッシュに記憶された参照されたラインをプロセッ
サが更新できるようにすることによって、クラス2参照
に対応することができる。
【0014】プロセッサがクラス2参照を発行し、キャ
ッシュ・ラインが、そのプロセッサに関連する局所キャ
ッシュ内にあり、有効状況と読取り専用状況を有する場
合、存在するラインの変更が目的のキャッシュ・ミス
(CMIMLP)要求が発行される。CMIMLP要求
の処理は、下で詳細に説明する。CMIMLP要求の処
理が完了した時、参照されたラインは、プロセッサに関
連する局所キャッシュに記憶され、有効状況と変更状況
を有する。その後、局所キャッシュに記憶された参照さ
れたラインをプロセッサが更新できるようにすることに
よって、クラス2参照に対応することができる。
【0015】プロセッサがクラス2参照を発行し、参照
されるラインが、(a)そのプロセッサに関連する局所
キャッシュ内にない、または(b)そのプロセッサに関
連する局所キャッシュ内に存在するが、無効状況を有す
る場合、不在のラインの変更が目的のキャッシュ・ミス
(CMIMLA)要求が発行される。CMIMLA要求
の処理は、下で詳細に説明する。CMIMLA要求の処
理が完了した時、参照されたラインは、そのプロセッサ
に関連する局所キャッシュに記憶され、有効状況と変更
状況を有する。その後、局所キャッシュに記憶された参
照されたラインをプロセッサが更新できるようにするこ
とによって、クラス2参照に対応することができる。
【0016】図5は、CM要求、CMIMLP要求及び
CMIMLA要求のフォーマットを示す図である。各要
求には、要求IDフィールド501、プロセッサIDフ
ィールド503及びライン・アドレス・フィールド50
5が含まれる。要求IDフィールド501によって、そ
の要求がCM要求、CMIMLP要求またはCMIML
A要求のいずれかとして識別される。プロセッサIDフ
ィールド503によって、要求元プロセッサが識別され
る。ライン・アドレス・フィールドによって、その要求
に関連するキャッシュ・ラインが識別される。
【0017】要求元プロセッサにラインを変更すること
の許可が与えられることが判定された後の、CMIML
P要求とCMIMLA要求の処理は、CMIMLA要求
の場合に変更状況を有するラインを現在の所有者から要
求を開始したプロセッサのキャッシュに転送しなければ
ならないことを除いて、同一である。さらに、CMIM
LP要求が延期される時には、CMIMLP要求をCM
IMLA要求に変更する必要が生じる場合がある。した
がって、説明を簡単にするために、CMIMLP要求と
CMIMLA要求の共通処理を、以下では変更が目的の
キャッシュ・ミス(CMIM)要求と称する。しかし、
CMIMLP要求の処理とCMIMLA要求の処理に相
違が存在する時には、具体的な相違を詳細に述べる。
【0018】本発明によれば、キャッシュ・コヒーレン
シ機構103が設けられ、これが、プロセッサ/キャッ
シュ対によって発行されたCMIM要求を受け取り、キ
ャッシュ内のラインのコピーに変更状況を与えることが
できるかどうかを判定する。本発明のキャッシュ・コヒ
ーレンシ機構は、(a)キャッシュ・コヒーレンシ機構
によって維持されるラインに関する情報と、(b)他の
プロセッサに関連する局所キャッシュ内で他のラインが
共用され、存在する可能性がある時点で変更状況が要求
された他のラインに関して変更状況を許可されているプ
ロセッサを識別する情報とに基づいて、このような変更
状況を許可する。ラインのコピーに、キャッシュ・コヒ
ーレンシ機構によって変更状況が与えられない場合、C
MIM要求の処理は、次のキャッシュ・コヒーレンシ・
リセット(CCR)まで延期される。
【0019】具体的に言うと、本発明のキャッシュ・コ
ヒーレンシ機構には、変更元プロセッサ・レジスタとラ
イン状況レジスタが含まれることが好ましい。図2から
わかるように、変更元プロセッサ・レジスタには、各ビ
ットがシステムのプロセッサP1、P2、…、PNの1つ
に関連するnビットが記憶される。各ビットは、変更状
況が要求された時点で他のプロセッサと共用されていた
ラインの変更状況が、関連するプロセッサに与えられた
かどうかを示す。変更元プロセッサ・レジスタ内のビッ
トの順序は、システムのプロセッサP1、P2、…、PN
の標準順序付けを表すことが好ましい。2進値「1」を
有する(または、セットされている)変更元プロセッサ
・レジスタのビットは、変更状況が要求された時点で他
のプロセッサと共用されていたラインの変更状況が関連
プロセッサに与えられていることを示し、2進値「0」
を有する(または、クリアされている)変更元プロセッ
サ・レジスタのビットは、変更状況が要求された時点で
他のプロセッサと共用されていたラインの変更状況が関
連プロセッサに与えられなかったことを示すことが好ま
しい。
【0020】図3からわかるように、ライン状況レジス
タには、ライン状況ベクトルと称する複数の項目303
が記憶され、項目303のそれぞれが、共用メモリ10
1の1ブロックと関連する。各項目と関連する共用メモ
リ101のブロックは、キャッシュ・ラインのサイズの
ブロックであり、各項目は、キャッシュ・ラインの実メ
モリ・アドレスを介してアドレッシングされることが好
ましい。ライン状況ベクトルのそれぞれは、n+1ビッ
トの長さを有する。このベクトルの最初のnビット
1、B2、…、BNは、関連するラインに影響するCC
Rの最後の発生以降に、キャッシュC1、C2、…、CN
内に関連するラインのコピーを有するまたは有したプロ
セッサP1、P2、…、PN(変更元プロセッサ・レジス
タに使用されるものと同一のプロセッサの標準順序付け
を使用することが好ましい)を指定するビットである。
1、B2、…、BNのビットが、2進値「1」を有する
(通常はセットされていると称する)場合、そのビット
が、関連するラインに影響するCCRの最後の発生以降
に、関連プロセッサがその局所キャッシュ内に関連ライ
ンのコピーを有するまたは有したことを示し、このビッ
トが2進値「0」を有する(通常はクリアされていると
称する)場合、そのビットが、関連するラインに影響す
るCCRの最後の発生以降に、関連プロセッサがその局
所キャッシュ内に関連ラインのコピーを有しないまたは
有しなかったことを示すことが好ましい。このベクトル
の第n+1ビットであるBN+1は、プロセッサP1
2、…、PNのうちのどれかが、関連ラインの変更状況
を与えられたかどうかを指定するビットである。変更さ
れる(すなわち、ライン状況レジスタの関連ベクトルの
第n+1ビットであるBN+1がセットされ、プロセッサ
による変更の対象であることが示される)ラインは、次
の2タイプのいずれかである。 1)SINGLETON(単集合) 多くとも1つのプ
ロセッサ(したがって、変更元プロセッサ)が、そのキ
ャッシュ内にラインの有効なコピーを有する 2)SHARED−MODIFY(共用−変更) 複数
のプロセッサがそのラインのコピーを有し、これらのプ
ロセッサのうちの1つが、そのキャッシュ内に変更状況
を有するラインを有する上で述べたSINGLETON
タイプのラインは、 1)所与のラインに関連するベクトルの第n+1ビット
であるBN+1から、そのラインがプロセッサによる変更
の対象であることが示され、 2)所与のラインに関連するベクトルの他のnビット、
1、B2、…、BNのうちの1ビットだけがセットさ
れ、したがって、1つのプロセッサだけが所与のライン
のコピーを有することが示されるものとして識別でき
る。上で述べたSHARED−MODIFYラインは、 1)所与のラインに関連するベクトルの第n+1ビット
であるBN+1から、そのラインがプロセッサによる変更
の対象であることが示され、 2)所与のラインに関連するベクトルの他のnビット、
1、B2、…、BNのうちの複数のビットがセットさ
れ、したがって、複数のプロセッサが所与のラインのコ
ピーを有することが示されるものとして識別できる。
【0021】本発明のキャッシュ・コヒーレンシ機構の
最後の構成要素は、キャッシュ・ライン無効化機構であ
り、これは、共用されている間に変更状況を与えられた
ラインのコピーを無効化するように機能する。このよう
なラインの組の全体を、1つのクラスとして扱う必要が
あり、このクラスのすべてのラインがそのコピーを無効
化された時に、CCRを呼び出すことができる。CCR
の終了時に、すべてのラインが、ライン状況レジスタ内
の関連ベクトルにSINGLETON状況をセットさ
れ、そのラインが変更され、そのラインを最後に変更し
たプロセッサのキャッシュ内で排他的であることが示さ
れる。さらに、変更元プロセッサ・レジスタは、現在変
更状況を有するプロセッサがないことを示すように設定
される。この時点で、このようなメモリ要求によっても
たらされたラインの状況またはこのようなラインを共用
するプロセッサの状況が原因で延期されていたメモリ要
求のすべてを、処理することができる。
【0022】ラインがすでに変更状況を有するので延期
されたCMIMLP要求は、そのCMIMLP要求を発
行したプロセッサのキャッシュ内でラインのコピーがキ
ャッシュ・ライン無効化機構によって無効化されるの
で、CMIMLA要求に変換される。しかし、すでに変
更状況を有するプロセッサによってラインが共用されて
いたので延期されたCMIMLP要求は、キャッシュ・
ライン無効化機構の処置の一部としてのラインのコピー
の無効化が行われないので、CMIMLP要求として処
理できる。これは、入出力事象の処置が原因でラインが
無効化される時に起こり得る。このような無効化が発生
する場合、そのラインに関する延期されたCMIMLP
要求は、CMIMLA要求に変換されなければならな
い。
【0023】本発明のキャッシュ・コヒーレンシ機構の
全要素の動作を、キャッシュ・ミス(CM)または変更
が目的のキャッシュ・ミス(CMIM)の時点の後で発
生する処置を追うことによって示す。このようなミスの
結果は、プロセッサ要求の成功裡の完了か、キャッシュ
・コヒーレンシ・リセット(CCR)までの延期のいず
れかになる。本発明のキャッシュ・コヒーレンシ機構
は、全プロセッサによって生成される要求を直列化し、
その結果、どのサイクルにもただ1つのCM要求または
CMIM要求が発行されるようにすることが好ましい。
【0024】CM要求時の処置 たとえば、多重プロセッサ・システムの局所キャッシュ
aに対するプロセッサPaによる参照がCM要求の発行
をもたらすシナリオを検討する。この場合、キャッシュ
・コヒーレンシ機構は、そのラインに関連するライン状
況ベクトルをライン状況レジスタから抽出し、下記に従
ってこのベクトルを検査する。・ライン状況ベクトルの
第n+1ビット、BN+1から、そのラインがプロセッサ
による変更の対象でないことが示される場合、有効状況
と読取り専用状況と共にラインのコピーを局所キャッシ
ュCaに転送し、プロセッサPaに対応するライン状況ベ
クトルのビットBaに「1」をセットして、プロセッサ
aがラインのコピーを有することを示し、それによっ
て、CM要求の処理を完了する。・ライン状況ベクトル
の第n+1ビット、BN+1から、そのラインがプロセッ
サによる変更の対象であるが、そのラインがプロセッサ
bに関するSINGLETONであることが示される
場合、正しい処置は、そのラインがプロセッサPbに関
連するキャッシュCb内でまだ有効であるかどうかに依
存する。キャッシュCb内でラインが有効な場合、その
ラインのコピーがキャッシュCbから共用メモリ101
とキャッシュCaに送られ、キャッシュCa及びCb内の
そのラインに関連するライン状況ビットに有効と読取り
専用がセットされる。さらに、BN+1に「0」をセット
して、そのラインが変更の対象でないことを反映するこ
とと、BaとBbの両方に「1」をセットして、そのライ
ンがプロセッサPaとPbの両方によって共用されること
を示すことによって、ライン状況ベクトルを更新する。
ラインがもはやキャッシュCb内で有効でない場合、変
更されたラインが無効化された時に、変更されたライン
のコピーがシステムの共用メモリ101に送られたと推
論することができる。この場合、そのラインのコピー
が、共用メモリ101からキャッシュCaに送られ、キ
ャッシュCaのこのラインに関連するライン状況ビット
に、有効と読取り専用がセットされる。さらに、BN+1
に「0」をセットして、このラインが変更の対象でない
ことを反映し、Baに「1」をセットして、このライン
がプロセッサPaによって保持されることを示し、Bb
「0」をセットして、このラインがプロセッサPbによ
って保持されないことを示すことによって、ライン状況
ベクトルを更新する。これによって、CM要求の処理が
完了する。・ライン状況ベクトルの第n+1ビットB
N+1から、そのラインがプロセッサによる変更の対象で
あるが、SHARED−MODIFYであることが示さ
れる場合、CM要求の処理は、CCRが発生するまで延
期される。CCRによって、このようなラインのベクト
ルがSINGLETON状況にリセットされる。
【0025】CMIM要求時の処置 次の例では、多重プロセッサ・システムの局所キャッシ
ュCaに対するプロセッサPaによる参照が、CMIM要
求の発行をもたらすシナリオを検討する。この場合、キ
ャッシュ・コヒーレンシ機構は、そのラインに関連する
ベクトルをライン状況レジスタから抽出し、下記に従っ
てこのベクトルを検査する。 ・下記の2つの条件 1)ライン状況ベクトルの第n+1ビットBN+1から、
そのラインがプロセッサによる変更の対象でないことが
示され、 2)ライン状況レジスタの最初のnビットがクリアされ
ており、これによってそのラインのコピーを有するプロ
セッサがないことが示されるか、(ベクトルの最初のn
ビットのうちの)プロセッサPaに関連する1ビットだ
けがセットされ、これによってプロセッサPaだけがそ
のラインのコピーを有するか有した、のいずれかが成立
する場合、動作は、要求がCMIMLA要求とCMIM
LP要求のいずれであるかに依存する。要求がCMIM
LA要求の場合、有効状況と変更状況と共にそのライン
を、共用メモリ101からプロセッサPaに関連する局
所キャッシュCaに転送する。要求がCMIMLP要求
の場合、キャッシュCa内のラインのライン状況ビット
に、有効状況と変更状況がセットされる。どちらの場合
でも、ライン状況レジスタ内のそのラインに関連するラ
イン状況ベクトルは、そのラインがSINGLETON
であることを表すように更新される。これは、(ベクト
ルの最初のnビットのうちの)プロセッサPaに関連す
る1ビットだけをセットし、ベクトルの第n+1ビット
をセットして、そのラインがプロセッサによる変更の対
象であることを示すことによって達成されることが好ま
しい。これによってCMIMが完了する。・下記の2つ
の条件 1)ライン状況ベクトルの第n+1ビットBN+1から、
そのラインがプロセッサによる変更の対象でないことが
示され、 2)ライン状況ベクトルの最初のnビットから、プロセ
ッサPa以外の少なくとも1つのプロセッサが、そのラ
インのコピーを有することが示されるが成立する場合、
プロセッサのそれぞれに関連するライン状況ベクトルの
最初のnビットを、変更元プロセッサ・レジスタの対応
するビットと比較する。このベクトルと変更元プロセッ
サ・レジスタの対応するビット対のうち、プロセッサP
aに対応するビット対以外のどれかがセットされている
場合、CMIM要求の処理は、CCRが発生するまで延
期される。CCRによって、変更元プロセッサ・レジス
タがクリアされる。プロセッサPaに対応するビット対
以外に対応するビット対がない場合、下記の処置を行
う。 ・要求がCMIMLA要求の場合、そのラインを、プロ
セッサPaに関連する局所キャッシュCaに転送する。要
求がCMIMLP要求の場合、ラインの移動は不要であ
る。 ・そのラインに、キャッシュCa内で変更状況を割り当
てる。 ・そのラインに関連するライン状況ベクトルの第n+1
ビットBN+1をセットし、そのラインがプロセッサによ
る変更の対象であることを示す。 ・ライン状況ベクトルの最初のnビットのうちでプロセ
ッサPaに関連するビットをセットし、これによって、
プロセッサPaがそのラインのコピーを有することを示
す。 ・このラインを共用するものの無効化に関する情報を、
キャッシュ・ライン無効化機構に供給する(この情報の
詳細な説明は、下で述べる)。 ・プロセッサPaに対応する変更元プロセッサ・レジス
タのビットをセットし(これによって、プロセッサPa
が、共用されるラインに対して変更状況を与えることを
求める将来の要求のすべてに対して検査しなければなら
ないプロセッサの1つであることを示し)、CMIM要
求の処理を完了する。 ・ラインがSHARED−MODIFYの場合、CMI
M要求の処理は、CCRが発生するまで延期される。C
CRによって、このラインがSINGLETONに変換
される。 ・ラインがプロセッサPbに関するSINGLETON
である場合、下記の処置を行う。 ・ライン状況ベクトルを更新して、そのラインがプロセ
ッサPaに関するSINGLETONであることを表
す。これは、(ベクトルの最初のnビットのうちの)プ
ロセッサPaに関連する1ビットだけをセットし、ベク
トルの第n+1ビットBN+1を保存して、そのラインが
プロセッサによる変更の対象であり続けることを示すこ
とによって達成されることが好ましい。 ・そのラインを、プロセッサPbに関連する局所キャッ
シュから、プロセッサPaに関連する局所キャッシュに
転送する。 ・そのラインを、プロセッサPbに関連する局所キャッ
シュでは無効とマークし、プロセッサPaに関連する局
所キャッシュでは変更状況を有する有効とマークし、C
MIM要求の処理を完了する。
【0026】キャッシュ・ライン無効化機構は、ライン
・アドレスと、ライン記憶レジスタに記憶されたそれに
関連するライン状況ベクトルと、そのキャッシュ・ディ
レクトリ内で有効及び変更を与えられ、したがって、所
与のラインを変更する能力を有する単独のプロセッサで
あるプロセッサPrの識別とを使用して、所与のライン
の共用ユーザのすべてのキャッシュ項目を無効化する。
このような要求のリストは、キャッシュ・ライン無効化
機構によって維持される。共用ユーザのすべてが無効化
された時に、キャッシュ・ライン無効化機構は、キャッ
シュ・コヒーレンシ・リセット(CCR)を宣言する。
【0027】CCRを処理するために、キャッシュ・ラ
イン無効化機構は、保留中の各ラインに関連するライン
状況レジスタのライン状況ベクトルを更新して、そのラ
インをSINGLETONとして識別し、これによっ
て、そのラインが変更されており、最後にそのラインを
変更したプロセッサのキャッシュ内で排他的であること
を表す。さらに、変更元プロセッサ・レジスタは、現在
変更状況を有するプロセッサがないことを示すようにセ
ットされる。
【0028】要約すると、本発明のキャッシュ・コヒー
レンシ・プロトコルでは、単一のプロセッサが変更を希
望するラインの共用コピーの無効化が、変更状況の付与
から分離される。したがって、プロセッサがその個々の
キャッシュのアクセスと変更を継続している間に、シス
テム内で非同期に無効化を行うことができる。これによ
って、ライン変更の前に無効化を必要とする従来のキャ
ッシュ・コヒーレンシ・プロトコルを使用する時に生ず
る遅延がなくなる。
【0029】本明細書に開示された本発明の仕様及び実
践の考察から、本発明の他の実施態様は、当業者に明白
になる。開示された仕様及び例は、例にすぎないとみな
される目的のものであり、本発明の真の範囲は、請求項
によって示される。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0031】(1)複数のプロセッサと関連局所キャッ
シュとを有する多重プロセッサ・システムにおいて、前
記局所キャッシュに記憶されたデータのコヒーレンシを
維持するための方法であって、複数のプロセッサによっ
て共用されるデータのブロックを変更することの許可を
与えられているプロセッサを識別する第1データを第1
メモリに記憶するステップと、前記局所キャッシュのう
ちの少なくとも1つに記憶される所与のデータのブロッ
クについて、 a)前記プロセッサに関連する前記局所キャッシュに記
憶された前記所与のデータのブロックのコピーを有する
プロセッサと、 b)前記プロセッサのうちのどれかが前記所与のデータ
のブロックを変更することを許可されているかどうかと
を識別する第2データを第2メモリに記憶するステップ
と、前記所与のデータのブロックを変更するために特定
のプロセッサによって発行された参照に応答して、前記
第1メモリに記憶された前記第1データと前記第2メモ
リに記憶された前記所与のデータのブロックに関連する
前記第2データとに従って、前記所与のデータのブロッ
クを変更することの許可を前記特定のプロセッサに与え
るかどうかを判定するステップと、を含む方法。 (2)前記第1メモリに記憶された前記第1データが、
各ビットが1プロセッサに関連する複数のビットを含
み、各ビットが、関連するプロセッサが複数のプロセッ
サによって共用されるデータのブロックを変更すること
の許可を与えられているかどうかを表すことを特徴とす
る、上記(1)に記載の方法。 (3)前記所与のデータのブロックに関連する、前記第
2メモリに記憶された前記第2データが、各ビットが1
プロセッサに関連する複数のビットを含み、各ビット
が、関連するプロセッサがそれに関連する局所キャッシ
ュに記憶された前記所与のデータのブロックのコピーを
有するかどうかを表すことを特徴とする、上記(1)に
記載の方法。 (4)前記所与のデータのブロックに関連する、前記第
2メモリに記憶された前記第2データが、前記プロセッ
サのうちのどれかが、前記所与のデータのブロックを変
更することを許可されているかどうかを表すビットを含
むことを特徴とする、上記(1)に記載の方法。 (5)前記判定するステップが、前記所与のデータのブ
ロックに関連する前記第2データが、i)いずれのプロ
セッサも、前記所与のデータのブロックを変更すること
を許可されていないことと、ii)特定のプロセッサ以
外の少なくとも1つの他のプロセッサが、そのプロセッ
サに関連する局所キャッシュ内に前記所与のデータのブ
ロックのコピーを有することとを示す場合に、前記特定
のプロセッサ以外の他のプロセッサのいずれかが、 1)そのプロセッサが、複数のプロセッサによって共用
されるデータのブロックを変更することの許可を与えら
れていることと、 2)そのプロセッサが、そのプロセッサに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することとの2つの条件を満足するかどうかを判定す
るため、前記第1データと、前記所与のデータのブロッ
クに関連する前記第2データとを比較するステップを含
むことを特徴とする、上記(1)に記載の方法。 (6)前記比較するステップが、前記特定のプロセッサ
以外のプロセッサが条件1)及び条件2)を満足すると
判定する場合に、要求の処理が、リセット動作が実行さ
れるまで延期されることを特徴とする、上記(5)に記
載の方法。 (7)前記リセット動作が、延期された要求のリストを
維持するステップと、延期された要求のそれぞれについ
て、受け取った順番で、前記延期された要求内で識別さ
れる前記所与のデータのブロックを変更することの許可
を与えられている単独のプロセッサを識別するステップ
と、前記延期された要求内で識別される前記所与のデー
タのブロックを共用するすべての局所キャッシュ内の前
記所与のデータのブロックを無効化するステップと、延
期された要求のすべてを処理した後に、いずれのプロセ
ッサも、複数のプロセッサによって共用されるデータの
ブロックを変更することの許可を与えられていないこと
を示すため、前記第1メモリに記憶された前記第1デー
タを更新するステップと、前記単独のプロセッサだけ
が、それに関連する局所キャッシュ内に前記所与のデー
タのブロックのコピーを有することと、前記単独のプロ
セッサ以外の他のいずれのプロセッサも、前記所与のデ
ータのブロックを変更することを許可されていないこと
とを示すため、前記第2メモリに記憶された前記第2デ
ータを更新するステップとを含むことを特徴とする、上
記(6)に記載の方法。 (8)前記比較するステップが、前記特定のプロセッサ
以外のいずれのプロセッサも条件1)または条件2)も
しくはこの両方を満足しないと判定する場合に、 a)前記所与のデータのブロックが、プロセッサによる
変更の対象であることと、 b)前記特定のプロセッサが、前記所与のデータのブロ
ックのコピーを有することとを示すため、前記第2メモ
リに記憶された、前記所与のデータのブロックに関連す
る前記第2データを更新するステップと、前記特定のプ
ロセッサが、複数のプロセッサによって共用されるデー
タのブロックを変更することの許可を与えられているこ
とを示すため、前記第1メモリに記憶された前記第1デ
ータを更新するステップと、前記特定のプロセッサに関
連する局所キャッシュに記憶された前記所与のデータの
ブロックを更新することを前記特定のプロセッサに許可
するステップとを実行することを特徴とする、上記
(5)に記載の方法。 (9)前記比較するステップが、前記特定のプロセッサ
以外のいずれのプロセッサも条件1)または条件2)も
しくはこの両方を満足しないと判定する場合に、前記所
与のデータのブロックを、共用メモリから前記特定のプ
ロセッサに関連する局所キャッシュに転送するステップ
を実行することを特徴とする、上記(8)に記載の方
法。 (10)前記判定するステップが、前記所与のデータの
ブロックに関連する前記第2データが、i)プロセッサ
が、前記所与のデータのブロックを変更することを許可
されていることと、ii)複数のプロセッサが、そのプ
ロセッサに関連する局所キャッシュ内に前記所与のデー
タのブロックのコピーを有することとを示すかどうかを
判定するステップを含み、条件i)及び条件ii)が満
足される場合に、リセット動作が実行されるまで、要求
の処理を延期するステップを含む上記(1)に記載の方
法。 (11)前記リセット動作が、延期された要求のリスト
を維持するステップと、延期された要求のそれぞれにつ
いて、受け取った順番で、前記延期された要求内で識別
される前記所与のデータのブロックを変更することの許
可を与えられた単独のプロセッサを識別するステップ
と、前記延期された要求内で識別される前記所与のデー
タのブロックを共用するすべての局所キャッシュ内の前
記所与のデータのブロックを無効化するステップと、延
期された要求のすべてを処理した後に、いずれのプロセ
ッサも、複数のプロセッサによって共用されるデータの
ブロックを変更することの許可を与えられていないこと
を示すため、前記第1メモリに記憶された前記第1デー
タを更新するステップと、前記単独のプロセッサだけ
が、それに関連する局所キャッシュ内に前記所与のデー
タのブロックのコピーを有することと、前記単独のプロ
セッサ以外の他のいずれのプロセッサも、前記所与のデ
ータのブロックを変更することを許可されていないこと
とを示すため、前記第2メモリに記憶された前記第2デ
ータを更新するステップとを含むことを特徴とする、上
記(10)に記載の方法。 (12)前記判定するステップが、前記所与のデータの
ブロックに関連する前記第2データが、i)プロセッサ
が、前記所与のデータのブロックを変更することを許可
されていることと、ii)特定のプロセッサ以外の1つ
の他のプロセッサだけが、そのプロセッサに関連する局
所キャッシュ内に前記所与のデータのブロックのコピー
を有することとを示すかどうかをを判定するステップを
含み、条件i)及び条件ii)が満足される場合に、 1)前記特定のプロセッサだけが、それに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することと、 2)プロセッサが、前記所与のデータのブロックを変更
することを許可されていることとを示すため、前記第2
メモリに記憶された、前記所与のデータのブロックに関
連する前記第2データを更新するステップと、前記1つ
の他のプロセッサに関連する局所キャッシュから前記特
定のプロセッサに関連する局所キャッシュへ前記所与の
データのブロックを転送するステップと、前記1つの他
のプロセッサが、それに関連する局所キャッシュに記憶
された前記所与のデータのブロックを更新することを禁
止するステップと、前記特定のプロセッサが、それに関
連する局所キャッシュに記憶された前記所与のデータの
ブロックを更新することを許可するステップとを含む、
上記(1)に記載の方法。 (13)前記判定するステップが、前記所与のデータの
ブロックに関連する前記第2データが、i)いずれのプ
ロセッサも、前記所与のデータのブロックを変更するこ
とを許可されていないことを示し、かつ、ii)いずれ
のプロセッサも、そのプロセッサに関連する局所キャッ
シュ内に前記所与のデータのブロックのコピーを有しな
いことまたはiii)前記特定のプロセッサ以外の他の
すべてのプロセッサが、そのプロセッサに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有しないことのいずれかを示すかどうかを判定するステ
ップを含むことを特徴とし、条件ii)または条件ii
i)のいずれかと条件i)とが満足される場合に、前記
方法が、さらに、 1)前記特定のプロセッサだけが、それに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することと、 2)プロセッサが、前記所与のデータのブロックを変更
することを許可されていることとを示すため、前記第2
メモリに記憶された、前記所与のデータのブロックに関
連する前記第2データを更新するステップと、前記特定
のプロセッサに関連する局所キャッシュ内に記憶された
前記所与のデータのブロックを更新することを該特定の
プロセッサに許可するステップとを含む、上記(1)に
記載の方法。 (14)前記所与のデータのブロックに関連する前記第
2データが、i)いずれのプロセッサも、前記所与のデ
ータのブロックを変更することを許可されていないこと
を示し、かつ、ii)いずれのプロセッサも、そのプロ
セッサに関連する局所キャッシュ内に前記所与のデータ
のブロックのコピーを有しないことまたはiii)前記
特定のプロセッサ以外のすべてのプロセッサが、そのプ
ロセッサに関連する局所キャッシュ内に前記所与のデー
タのブロックのコピーを有しないことのいずれかを示す
場合に、共用メモリから前記特定のプロセッサに関連す
る局所キャッシュへ前記所与のデータのブロックを転送
することを特徴とする、上記(13)に記載の方法。 (15)複数のプロセッサと関連局所キャッシュとを有
する多重プロセッサ・システムにおいて、前記局所キャ
ッシュに記憶されたデータのコヒーレンシを維持するた
めの装置であって、複数のプロセッサによって共用され
るデータのブロックを変更することの許可を与えられて
いるプロセッサを識別する第1データを記憶する第1メ
モリと、前記局所キャッシュのうちの少なくとも1つに
記憶される所与のデータのブロックについて、 a)前記プロセッサに関連する前記局所キャッシュに記
憶された前記所与のデータのブロックのコピーを有する
プロセッサと、 b)前記プロセッサのうちのどれかが前記所与のデータ
のブロックを変更することを許可されているかどうかと
を識別する第2データを記憶する第2メモリと、前記所
与のデータのブロックを変更するために特定のプロセッ
サによって発行された参照に応答して、前記第1メモリ
に記憶された前記第1データと前記第2メモリに記憶さ
れた前記所与のデータのブロックに関連する前記第2デ
ータとに従って、前記所与のデータのブロックを変更す
ることの許可を前記特定のプロセッサに与えるかどうか
を判定する、前記第1メモリ及び前記第2メモリに結合
されたコヒーレンス論理機構とを含む装置。 (16)前記第1メモリに記憶された前記第1データ
が、各ビットが1プロセッサに関連する複数のビットを
含み、各ビットが、関連するプロセッサが複数のプロセ
ッサによって共用されるデータのブロックを変更するこ
との許可を与えられているかどうかを表すことを特徴と
する、上記(15)に記載の装置。 (17)前記所与のデータのブロックに関連する、前記
第2メモリに記憶された前記第2データが、各ビットが
1プロセッサに関連する複数のビットを含み、各ビット
が、関連するプロセッサがそれに関連する局所キャッシ
ュに記憶された前記所与のデータのブロックのコピーを
有するかどうかを表すことを特徴とする、上記(15)
に記載の装置。 (18)前記所与のデータのブロックに関連する、前記
第2メモリに記憶された前記第2データが、前記プロセ
ッサのうちのどれかが、前記所与のデータのブロックを
変更することを許可されているかどうかを表すビットを
含むことを特徴とする、上記(15)に記載の装置。 (19)前記所与のデータのブロックに関連する前記第
2データが、i)いずれのプロセッサも、前記所与のデ
ータのブロックを変更することを許可されていないこと
と、ii)特定のプロセッサ以外の少なくとも1つの他
のプロセッサが、そのプロセッサに関連する局所キャッ
シュ内に前記所与のデータのブロックのコピーを有する
こととを示すかどうかを判定することと、条件i)及び
条件ii)が満足されると判定される時に、前記特定の
プロセッサ以外の他のプロセッサのいずれかが、 1)そのプロセッサが、複数のプロセッサによって共用
されるデータのブロックを変更することの許可を与えら
れていることと、 2)そのプロセッサが、そのプロセッサに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することとの2つの条件を満足するかどうかを判定す
るため、前記第1データと、前記所与のデータのブロッ
クに関連する前記第2データとを比較することとによっ
て、前記コヒーレンス論理機構が、前記所与のデータの
ブロックを変更することの許可を前記特定のプロセッサ
に与えるかどうかを決定することを特徴とする、上記
(15)に記載の装置。 (20)前記コヒーレンス論理機構が、前記特定のプロ
セッサ以外のプロセッサが条件1)及び条件2)を満足
すると判定した時に、リセット動作が実行されるまで要
求の処理を延期することを特徴とする、上記(19)に
記載の装置。 (21)延期された要求のリストを記憶するバッファ
と、延期された要求のそれぞれについて、受け取った順
番で、前記延期された要求内で識別される前記所与のデ
ータのブロックを変更することの許可を与えられている
単独のプロセッサを識別し、前記延期された要求内で識
別される前記所与のデータのブロックを共用するすべて
の局所キャッシュ内の前記所与のデータのブロックを無
効化する無効化手段と、延期された要求のすべてを処理
した後に、いずれのプロセッサも、複数のプロセッサに
よって共用されるデータのブロックを変更することの許
可を与えられていないことを示すため、前記第1メモリ
に記憶された前記第1データを更新し、前記単独のプロ
セッサだけが、それに関連する局所キャッシュ内に前記
所与のデータのブロックのコピーを有することと、前記
単独のプロセッサ以外の他のいずれのプロセッサも、前
記所与のデータのブロックを変更することを許可されて
いないこととを示すため、前記第2メモリに記憶された
前記第2データを更新する更新手段とを含む、前記リセ
ット動作を実行するための手段をさらに含む、上記(2
0)に記載の装置。 (22)前記コヒーレンス論理機構が、前記特定のプロ
セッサ以外のいずれのプロセッサも条件1)または条件
2)もしくはこの両方を満足しないと判定した時に、 a)前記所与のデータのブロックが、プロセッサによる
変更の対象であることと、 b)前記特定のプロセッサが、前記所与のデータのブロ
ックのコピーを有することとを示すため、前記第2メモ
リに記憶された、前記所与のデータのブロックに関連す
る前記第2データを更新し、前記特定のプロセッサが、
複数のプロセッサによって共用されるデータのブロック
を変更することの許可を与えられていることを示すた
め、前記第1メモリに記憶された前記第1データを更新
し、前記特定のプロセッサに関連する局所キャッシュに
記憶された前記所与のデータのブロックを更新すること
を前記特定のプロセッサに許可することを特徴とする、
上記(19)に記載の装置。 (23)前記コヒーレンス論理機構が、前記特定のプロ
セッサ以外のいずれのプロセッサも条件1)または条件
2)もしくはこの両方を満足しないと判定した時に、前
記所与のデータのブロックを、共用メモリから前記特定
のプロセッサに関連する局所キャッシュに転送すること
を特徴とする、上記(22)に記載の装置。 (24)前記コヒーレンス論理機構が、前記所与のデー
タのブロックに関連する前記第2データが、i)プロセ
ッサが、前記所与のデータのブロックを変更することを
許可されていることと、ii)複数のプロセッサが、そ
のプロセッサに関連する局所キャッシュ内に前記所与の
データのブロックのコピーを有することとを示すかどう
かを判定することによって、特定のプロセッサに所与の
データのブロックを変更することの許可を与えるかどう
かを判定し、前記コヒーレンス論理機構が、条件i)及
び条件ii)が満足されると判定した時に、リセット動
作が実行されるまで要求の処理を延期することを特徴と
する、上記(15)に記載の装置。 (25)延期された要求のリストを記憶するバッファ
と、延期された要求のそれぞれについて、受け取った順
番で、前記延期された要求内で識別される前記所与のデ
ータのブロックを変更することの許可を与えられた単独
のプロセッサを識別し、前記延期された要求内で識別さ
れる前記所与のデータのブロックを共用するすべての局
所キャッシュ内の前記所与のデータのブロックを無効化
する無効化手段と、延期された要求のすべてを処理した
後に、いずれのプロセッサも、複数のプロセッサによっ
て共用されるデータのブロックを変更することの許可を
与えられていないことを示すため、前記第1メモリに記
憶された前記第1データを更新し、前記単独のプロセッ
サだけが、それに関連する局所キャッシュ内に前記所与
のデータのブロックのコピーを有することと、前記単独
のプロセッサ以外の他のいずれのプロセッサも、前記所
与のデータのブロックを変更することを許可されていな
いこととを示すため、前記第2メモリに記憶された前記
第2データを更新する更新手段とを含む、前記リセット
動作を実行するための手段をさらに含む、上記(24)
に記載の装置。 (26)前記コヒーレンス論理機構が、前記所与のデー
タのブロックに関連する前記第2データが、i)プロセ
ッサが、前記所与のデータのブロックを変更することを
許可されていることと、ii)特定のプロセッサ以外の
1つの他のプロセッサだけが、そのプロセッサに関連す
る局所キャッシュ内に前記所与のデータのブロックのコ
ピーを有することとを示すかどうかを判定することによ
って、前記所与のデータのブロックを変更することの許
可が前記特定のプロセッサに与えられているかどうかを
判定し、前記コヒーレンス論理機構が、条件i)及び条
件ii)が満足されると判定した時に、 1)前記特定のプロセッサだけが、それに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することと、 2)プロセッサが、前記所与のデータのブロックを変更
することを許可されていることとを示すため、前記第2
メモリに記憶された、前記所与のデータのブロックに関
連する前記第2データを更新し、前記1つの他のプロセ
ッサに関連する局所キャッシュから前記特定のプロセッ
サに関連する局所キャッシュへ前記所与のデータのブロ
ックを転送し、前記1つの他のプロセッサが、それに関
連する局所キャッシュに記憶された前記所与のデータの
ブロックを更新することを禁止し、前記特定のプロセッ
サが、それに関連する局所キャッシュに記憶された前記
所与のデータのブロックを更新することを許可すること
を特徴とする上記(15)に記載の装置。 (27)前記コヒーレンス論理機構が、前記所与のデー
タのブロックに関連する前記第2データが、i)いずれ
のプロセッサも、前記所与のデータのブロックを変更す
ることを許可されていないことを示し、かつ、ii)い
ずれのプロセッサも、そのプロセッサに関連する局所キ
ャッシュ内に前記所与のデータのブロックのコピーを有
しないことまたはiii)前記特定のプロセッサ以外の
他のすべてのプロセッサが、そのプロセッサに関連する
局所キャッシュ内に前記所与のデータのブロックのコピ
ーを有しないことのいずれかを示すかどうかを判定する
ことによって、所与のデータのブロックを変更すること
の許可を特定のプロセッサに与えるかどうかを判定し、
前記コヒーレンス論理機構が、条件ii)または条件i
ii)のいずれかと条件i)とが満足されると判定した
時に、 1)前記特定のプロセッサだけが、それに関連する局所
キャッシュ内に前記所与のデータのブロックのコピーを
有することと、 2)プロセッサが、前記所与のデータのブロックを変更
することを許可されていることとを示すため、前記第2
メモリに記憶された、前記所与のデータのブロックに関
連する前記第2データを更新し、前記特定のプロセッサ
に関連する局所キャッシュ内に記憶された前記所与のデ
ータのブロックを更新することを該特定のプロセッサに
許可することを特徴とする上記(15)に記載の装置。 (28)前記コヒーレンス論理機構が、条件ii)また
は条件iii)のいずれかと条件i)とが満足されると
判定した時に、共用メモリから前記特定のプロセッサに
関連する局所キャッシュへ前記所与のデータのブロック
を転送することを特徴とする、上記(27)に記載の装
置。
【図面の簡単な説明】
【図1】本発明を使用する多重プロセッサ・システムの
機能ブロック図である。
【図2】本発明による、図1のキャッシュ・コヒーレン
シ機構の変更元プロセッサ・レジスタの絵図である。
【図3】本発明による、図1のキャッシュ・コヒーレン
シ機構のライン状況レジスタの絵図である。
【図4】図1の局所キャッシュに記憶されたキャッシュ
・ラインの絵図である。
【図5】本発明のキャッシュ・コヒーレンシ機構に対し
て発行される要求のフォーマットを示す図である。
【符号の説明】
101 共用メモリ 103 キャッシュ・コヒーレンシ機構 303 項目(ライン状況ベクトルの) 401 第1ビット 403 第2ビット 501 要求IDフィールド 503 プロセッサIDフィールド 505 ライン・アドレス・フィールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カッタムリ・エカナダム アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ カリー・ストリート 3263

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと関連局所キャッシュと
    を有する多重プロセッサ・システムにおいて、前記局所
    キャッシュに記憶されたデータのコヒーレンシを維持す
    るための方法であって、 複数のプロセッサによって共用されるデータのブロック
    を変更することの許可を与えられているプロセッサを識
    別する第1データを第1メモリに記憶するステップと、 前記局所キャッシュのうちの少なくとも1つに記憶され
    る所与のデータのブロックについて、 a)前記プロセッサに関連する前記局所キャッシュに記
    憶された前記所与のデータのブロックのコピーを有する
    プロセッサと、 b)前記プロセッサのうちのどれかが前記所与のデータ
    のブロックを変更することを許可されているかどうかと
    を識別する第2データを第2メモリに記憶するステップ
    と、 前記所与のデータのブロックを変更するために特定のプ
    ロセッサによって発行された参照に応答して、前記第1
    メモリに記憶された前記第1データと前記第2メモリに
    記憶された前記所与のデータのブロックに関連する前記
    第2データとに従って、前記所与のデータのブロックを
    変更することの許可を前記特定のプロセッサに与えるか
    どうかを判定するステップと、 を含む方法。
  2. 【請求項2】前記第1メモリに記憶された前記第1デー
    タが、各ビットが1プロセッサに関連する複数のビット
    を含み、各ビットが、関連するプロセッサが複数のプロ
    セッサによって共用されるデータのブロックを変更する
    ことの許可を与えられているかどうかを表すことを特徴
    とする、請求項1に記載の方法。
  3. 【請求項3】前記所与のデータのブロックに関連する、
    前記第2メモリに記憶された前記第2データが、各ビッ
    トが1プロセッサに関連する複数のビットを含み、各ビ
    ットが、関連するプロセッサがそれに関連する局所キャ
    ッシュに記憶された前記所与のデータのブロックのコピ
    ーを有するかどうかを表すことを特徴とする、請求項1
    に記載の方法。
  4. 【請求項4】前記所与のデータのブロックに関連する、
    前記第2メモリに記憶された前記第2データが、前記プ
    ロセッサのうちのどれかが、前記所与のデータのブロッ
    クを変更することを許可されているかどうかを表すビッ
    トを含むことを特徴とする、請求項1に記載の方法。
  5. 【請求項5】前記判定するステップが、 前記所与のデータのブロックに関連する前記第2データ
    が、i)いずれのプロセッサも、前記所与のデータのブ
    ロックを変更することを許可されていないことと、i
    i)特定のプロセッサ以外の少なくとも1つの他のプロ
    セッサが、そのプロセッサに関連する局所キャッシュ内
    に前記所与のデータのブロックのコピーを有することと
    を示す場合に、前記特定のプロセッサ以外の他のプロセ
    ッサのいずれかが、 1)そのプロセッサが、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていることと、 2)そのプロセッサが、そのプロセッサに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することとの2つの条件を満足するかどうかを判定す
    るため、前記第1データと、前記所与のデータのブロッ
    クに関連する前記第2データとを比較するステップを含
    むことを特徴とする、請求項1に記載の方法。
  6. 【請求項6】前記比較するステップが、前記特定のプロ
    セッサ以外のプロセッサが条件1)及び条件2)を満足
    すると判定する場合に、要求の処理が、リセット動作が
    実行されるまで延期されることを特徴とする、請求項5
    に記載の方法。
  7. 【請求項7】前記リセット動作が、 延期された要求のリストを維持するステップと、 延期された要求のそれぞれについて、受け取った順番
    で、 前記延期された要求内で識別される前記所与のデータの
    ブロックを変更することの許可を与えられている単独の
    プロセッサを識別するステップと、 前記延期された要求内で識別される前記所与のデータの
    ブロックを共用するすべての局所キャッシュ内の前記所
    与のデータのブロックを無効化するステップと、 延期された要求のすべてを処理した後に、 いずれのプロセッサも、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていないことを示すため、前記第1メモリに記憶され
    た前記第1データを更新するステップと、 前記単独のプロセッサだけが、それに関連する局所キャ
    ッシュ内に前記所与のデータのブロックのコピーを有す
    ることと、前記単独のプロセッサ以外の他のいずれのプ
    ロセッサも、前記所与のデータのブロックを変更するこ
    とを許可されていないこととを示すため、前記第2メモ
    リに記憶された前記第2データを更新するステップとを
    含むことを特徴とする、請求項6に記載の方法。
  8. 【請求項8】前記比較するステップが、前記特定のプロ
    セッサ以外のいずれのプロセッサも条件1)または条件
    2)もしくはこの両方を満足しないと判定する場合に、 a)前記所与のデータのブロックが、プロセッサによる
    変更の対象であることと、 b)前記特定のプロセッサが、前記所与のデータのブロ
    ックのコピーを有することとを示すため、前記第2メモ
    リに記憶された、前記所与のデータのブロックに関連す
    る前記第2データを更新するステップと、 前記特定のプロセッサが、複数のプロセッサによって共
    用されるデータのブロックを変更することの許可を与え
    られていることを示すため、前記第1メモリに記憶され
    た前記第1データを更新するステップと、 前記特定のプロセッサに関連する局所キャッシュに記憶
    された前記所与のデータのブロックを更新することを前
    記特定のプロセッサに許可するステップとを実行するこ
    とを特徴とする、請求項5に記載の方法。
  9. 【請求項9】前記比較するステップが、前記特定のプロ
    セッサ以外のいずれのプロセッサも条件1)または条件
    2)もしくはこの両方を満足しないと判定する場合に、
    前記所与のデータのブロックを、共用メモリから前記特
    定のプロセッサに関連する局所キャッシュに転送するス
    テップを実行することを特徴とする、請求項8に記載の
    方法。
  10. 【請求項10】前記判定するステップが、前記所与のデ
    ータのブロックに関連する前記第2データが、i)プロ
    セッサが、前記所与のデータのブロックを変更すること
    を許可されていることと、ii)複数のプロセッサが、
    そのプロセッサに関連する局所キャッシュ内に前記所与
    のデータのブロックのコピーを有することとを示すかど
    うかを判定するステップを含み、 条件i)及び条件ii)が満足される場合に、リセット
    動作が実行されるまで、要求の処理を延期するステップ
    を含む請求項1に記載の方法。
  11. 【請求項11】前記リセット動作が、 延期された要求のリストを維持するステップと、 延期された要求のそれぞれについて、受け取った順番
    で、 前記延期された要求内で識別される前記所与のデータの
    ブロックを変更することの許可を与えられた単独のプロ
    セッサを識別するステップと、 前記延期された要求内で識別される前記所与のデータの
    ブロックを共用するすべての局所キャッシュ内の前記所
    与のデータのブロックを無効化するステップと、 延期された要求のすべてを処理した後に、 いずれのプロセッサも、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていないことを示すため、前記第1メモリに記憶され
    た前記第1データを更新するステップと、 前記単独のプロセッサだけが、それに関連する局所キャ
    ッシュ内に前記所与のデータのブロックのコピーを有す
    ることと、前記単独のプロセッサ以外の他のいずれのプ
    ロセッサも、前記所与のデータのブロックを変更するこ
    とを許可されていないこととを示すため、前記第2メモ
    リに記憶された前記第2データを更新するステップとを
    含むことを特徴とする、請求項10に記載の方法。
  12. 【請求項12】前記判定するステップが、前記所与のデ
    ータのブロックに関連する前記第2データが、i)プロ
    セッサが、前記所与のデータのブロックを変更すること
    を許可されていることと、ii)特定のプロセッサ以外
    の1つの他のプロセッサだけが、そのプロセッサに関連
    する局所キャッシュ内に前記所与のデータのブロックの
    コピーを有することとを示すかどうかをを判定するステ
    ップを含み、 条件i)及び条件ii)が満足される場合に、 1)前記特定のプロセッサだけが、それに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することと、 2)プロセッサが、前記所与のデータのブロックを変更
    することを許可されていることとを示すため、前記第2
    メモリに記憶された、前記所与のデータのブロックに関
    連する前記第2データを更新するステップと、 前記1つの他のプロセッサに関連する局所キャッシュか
    ら前記特定のプロセッサに関連する局所キャッシュへ前
    記所与のデータのブロックを転送するステップと、 前記1つの他のプロセッサが、それに関連する局所キャ
    ッシュに記憶された前記所与のデータのブロックを更新
    することを禁止するステップと、 前記特定のプロセッサが、それに関連する局所キャッシ
    ュに記憶された前記所与のデータのブロックを更新する
    ことを許可するステップとを含む、請求項1に記載の方
    法。
  13. 【請求項13】前記判定するステップが、前記所与のデ
    ータのブロックに関連する前記第2データが、i)いず
    れのプロセッサも、前記所与のデータのブロックを変更
    することを許可されていないことを示し、かつ、ii)
    いずれのプロセッサも、そのプロセッサに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有しないことまたはiii)前記特定のプロセッサ以外
    の他のすべてのプロセッサが、そのプロセッサに関連す
    る局所キャッシュ内に前記所与のデータのブロックのコ
    ピーを有しないことのいずれかを示すかどうかを判定す
    るステップを含むことを特徴とし、 条件ii)または条件iii)のいずれかと条件i)と
    が満足される場合に、前記方法が、さらに、 1)前記特定のプロセッサだけが、それに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することと、 2)プロセッサが、前記所与のデータのブロックを変更
    することを許可されていることとを示すため、前記第2
    メモリに記憶された、前記所与のデータのブロックに関
    連する前記第2データを更新するステップと、 前記特定のプロセッサに関連する局所キャッシュ内に記
    憶された前記所与のデータのブロックを更新することを
    該特定のプロセッサに許可するステップとを含む、請求
    項1に記載の方法。
  14. 【請求項14】前記所与のデータのブロックに関連する
    前記第2データが、i)いずれのプロセッサも、前記所
    与のデータのブロックを変更することを許可されていな
    いことを示し、かつ、ii)いずれのプロセッサも、そ
    のプロセッサに関連する局所キャッシュ内に前記所与の
    データのブロックのコピーを有しないことまたはii
    i)前記特定のプロセッサ以外のすべてのプロセッサ
    が、そのプロセッサに関連する局所キャッシュ内に前記
    所与のデータのブロックのコピーを有しないことのいず
    れかを示す場合に、 共用メモリから前記特定のプロセッサに関連する局所キ
    ャッシュへ前記所与のデータのブロックを転送すること
    を特徴とする、請求項13に記載の方法。
  15. 【請求項15】複数のプロセッサと関連局所キャッシュ
    とを有する多重プロセッサ・システムにおいて、前記局
    所キャッシュに記憶されたデータのコヒーレンシを維持
    するための装置であって、 複数のプロセッサによって共用されるデータのブロック
    を変更することの許可を与えられているプロセッサを識
    別する第1データを記憶する第1メモリと、 前記局所キャッシュのうちの少なくとも1つに記憶され
    る所与のデータのブロックについて、 a)前記プロセッサに関連する前記局所キャッシュに記
    憶された前記所与のデータのブロックのコピーを有する
    プロセッサと、 b)前記プロセッサのうちのどれかが前記所与のデータ
    のブロックを変更することを許可されているかどうかと
    を識別する第2データを記憶する第2メモリと、 前記所与のデータのブロックを変更するために特定のプ
    ロセッサによって発行された参照に応答して、前記第1
    メモリに記憶された前記第1データと前記第2メモリに
    記憶された前記所与のデータのブロックに関連する前記
    第2データとに従って、前記所与のデータのブロックを
    変更することの許可を前記特定のプロセッサに与えるか
    どうかを判定する、前記第1メモリ及び前記第2メモリ
    に結合されたコヒーレンス論理機構とを含む装置。
  16. 【請求項16】前記第1メモリに記憶された前記第1デ
    ータが、各ビットが1プロセッサに関連する複数のビッ
    トを含み、各ビットが、関連するプロセッサが複数のプ
    ロセッサによって共用されるデータのブロックを変更す
    ることの許可を与えられているかどうかを表すことを特
    徴とする、請求項15に記載の装置。
  17. 【請求項17】前記所与のデータのブロックに関連す
    る、前記第2メモリに記憶された前記第2データが、各
    ビットが1プロセッサに関連する複数のビットを含み、
    各ビットが、関連するプロセッサがそれに関連する局所
    キャッシュに記憶された前記所与のデータのブロックの
    コピーを有するかどうかを表すことを特徴とする、請求
    項15に記載の装置。
  18. 【請求項18】前記所与のデータのブロックに関連す
    る、前記第2メモリに記憶された前記第2データが、前
    記プロセッサのうちのどれかが、前記所与のデータのブ
    ロックを変更することを許可されているかどうかを表す
    ビットを含むことを特徴とする、請求項15に記載の装
    置。
  19. 【請求項19】前記所与のデータのブロックに関連する
    前記第2データが、i)いずれのプロセッサも、前記所
    与のデータのブロックを変更することを許可されていな
    いことと、ii)特定のプロセッサ以外の少なくとも1
    つの他のプロセッサが、そのプロセッサに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することとを示すかどうかを判定することと、 条件i)及び条件ii)が満足されると判定される時
    に、前記特定のプロセッサ以外の他のプロセッサのいず
    れかが、 1)そのプロセッサが、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていることと、 2)そのプロセッサが、そのプロセッサに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することとの2つの条件を満足するかどうかを判定す
    るため、前記第1データと、前記所与のデータのブロッ
    クに関連する前記第2データとを比較することとによっ
    て、前記コヒーレンス論理機構が、前記所与のデータの
    ブロックを変更することの許可を前記特定のプロセッサ
    に与えるかどうかを決定することを特徴とする、請求項
    15に記載の装置。
  20. 【請求項20】前記コヒーレンス論理機構が、前記特定
    のプロセッサ以外のプロセッサが条件1)及び条件2)
    を満足すると判定した時に、リセット動作が実行される
    まで要求の処理を延期することを特徴とする、請求項1
    9に記載の装置。
  21. 【請求項21】延期された要求のリストを記憶するバッ
    ファと、 延期された要求のそれぞれについて、受け取った順番
    で、 前記延期された要求内で識別される前記所与のデータの
    ブロックを変更することの許可を与えられている単独の
    プロセッサを識別し、 前記延期された要求内で識別される前記所与のデータの
    ブロックを共用するすべての局所キャッシュ内の前記所
    与のデータのブロックを無効化する無効化手段と、 延期された要求のすべてを処理した後に、 いずれのプロセッサも、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていないことを示すため、前記第1メモリに記憶され
    た前記第1データを更新し、 前記単独のプロセッサだけが、それに関連する局所キャ
    ッシュ内に前記所与のデータのブロックのコピーを有す
    ることと、前記単独のプロセッサ以外の他のいずれのプ
    ロセッサも、前記所与のデータのブロックを変更するこ
    とを許可されていないこととを示すため、前記第2メモ
    リに記憶された前記第2データを更新する更新手段とを
    含む、前記リセット動作を実行するための手段をさらに
    含む、請求項20に記載の装置。
  22. 【請求項22】前記コヒーレンス論理機構が、前記特定
    のプロセッサ以外のいずれのプロセッサも条件1)また
    は条件2)もしくはこの両方を満足しないと判定した時
    に、 a)前記所与のデータのブロックが、プロセッサによる
    変更の対象であることと、 b)前記特定のプロセッサが、前記所与のデータのブロ
    ックのコピーを有することとを示すため、前記第2メモ
    リに記憶された、前記所与のデータのブロックに関連す
    る前記第2データを更新し、 前記特定のプロセッサが、複数のプロセッサによって共
    用されるデータのブロックを変更することの許可を与え
    られていることを示すため、前記第1メモリに記憶され
    た前記第1データを更新し、 前記特定のプロセッサに関連する局所キャッシュに記憶
    された前記所与のデータのブロックを更新することを前
    記特定のプロセッサに許可することを特徴とする、請求
    項19に記載の装置。
  23. 【請求項23】前記コヒーレンス論理機構が、前記特定
    のプロセッサ以外のいずれのプロセッサも条件1)また
    は条件2)もしくはこの両方を満足しないと判定した時
    に、前記所与のデータのブロックを、共用メモリから前
    記特定のプロセッサに関連する局所キャッシュに転送す
    ることを特徴とする、請求項22に記載の装置。
  24. 【請求項24】前記コヒーレンス論理機構が、前記所与
    のデータのブロックに関連する前記第2データが、i)
    プロセッサが、前記所与のデータのブロックを変更する
    ことを許可されていることと、ii)複数のプロセッサ
    が、そのプロセッサに関連する局所キャッシュ内に前記
    所与のデータのブロックのコピーを有することとを示す
    かどうかを判定することによって、特定のプロセッサに
    所与のデータのブロックを変更することの許可を与える
    かどうかを判定し、 前記コヒーレンス論理機構が、条件i)及び条件ii)
    が満足されると判定した時に、リセット動作が実行され
    るまで要求の処理を延期することを特徴とする、 請求項15に記載の装置。
  25. 【請求項25】延期された要求のリストを記憶するバッ
    ファと、 延期された要求のそれぞれについて、受け取った順番
    で、 前記延期された要求内で識別される前記所与のデータの
    ブロックを変更することの許可を与えられた単独のプロ
    セッサを識別し、 前記延期された要求内で識別される前記所与のデータの
    ブロックを共用するすべての局所キャッシュ内の前記所
    与のデータのブロックを無効化する無効化手段と、 延期された要求のすべてを処理した後に、 いずれのプロセッサも、複数のプロセッサによって共用
    されるデータのブロックを変更することの許可を与えら
    れていないことを示すため、前記第1メモリに記憶され
    た前記第1データを更新し、 前記単独のプロセッサだけが、それに関連する局所キャ
    ッシュ内に前記所与のデータのブロックのコピーを有す
    ることと、前記単独のプロセッサ以外の他のいずれのプ
    ロセッサも、前記所与のデータのブロックを変更するこ
    とを許可されていないこととを示すため、前記第2メモ
    リに記憶された前記第2データを更新する更新手段とを
    含む、前記リセット動作を実行するための手段をさらに
    含む、請求項24に記載の装置。
  26. 【請求項26】前記コヒーレンス論理機構が、前記所与
    のデータのブロックに関連する前記第2データが、i)
    プロセッサが、前記所与のデータのブロックを変更する
    ことを許可されていることと、ii)特定のプロセッサ
    以外の1つの他のプロセッサだけが、そのプロセッサに
    関連する局所キャッシュ内に前記所与のデータのブロッ
    クのコピーを有することとを示すかどうかを判定するこ
    とによって、前記所与のデータのブロックを変更するこ
    との許可が前記特定のプロセッサに与えられているかど
    うかを判定し、 前記コヒーレンス論理機構が、条件i)及び条件ii)
    が満足されると判定した時に、 1)前記特定のプロセッサだけが、それに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することと、 2)プロセッサが、前記所与のデータのブロックを変更
    することを許可されていることとを示すため、前記第2
    メモリに記憶された、前記所与のデータのブロックに関
    連する前記第2データを更新し、 前記1つの他のプロセッサに関連する局所キャッシュか
    ら前記特定のプロセッサに関連する局所キャッシュへ前
    記所与のデータのブロックを転送し、 前記1つの他のプロセッサが、それに関連する局所キャ
    ッシュに記憶された前記所与のデータのブロックを更新
    することを禁止し、 前記特定のプロセッサが、それに関連する局所キャッシ
    ュに記憶された前記所与のデータのブロックを更新する
    ことを許可することを特徴とする請求項15に記載の装
    置。
  27. 【請求項27】前記コヒーレンス論理機構が、前記所与
    のデータのブロックに関連する前記第2データが、i)
    いずれのプロセッサも、前記所与のデータのブロックを
    変更することを許可されていないことを示し、かつ、i
    i)いずれのプロセッサも、そのプロセッサに関連する
    局所キャッシュ内に前記所与のデータのブロックのコピ
    ーを有しないことまたはiii)前記特定のプロセッサ
    以外の他のすべてのプロセッサが、そのプロセッサに関
    連する局所キャッシュ内に前記所与のデータのブロック
    のコピーを有しないことのいずれかを示すかどうかを判
    定することによって、所与のデータのブロックを変更す
    ることの許可を特定のプロセッサに与えるかどうかを判
    定し、 前記コヒーレンス論理機構が、条件ii)または条件i
    ii)のいずれかと条件i)とが満足されると判定した
    時に、 1)前記特定のプロセッサだけが、それに関連する局所
    キャッシュ内に前記所与のデータのブロックのコピーを
    有することと、 2)プロセッサが、前記所与のデータのブロックを変更
    することを許可されていることとを示すため、前記第2
    メモリに記憶された、前記所与のデータのブロックに関
    連する前記第2データを更新し、 前記特定のプロセッサに関連する局所キャッシュ内に記
    憶された前記所与のデータのブロックを更新することを
    該特定のプロセッサに許可することを特徴とする請求項
    15に記載の装置。
  28. 【請求項28】前記コヒーレンス論理機構が、条件i
    i)または条件iii)のいずれかと条件i)とが満足
    されると判定した時に、共用メモリから前記特定のプロ
    セッサに関連する局所キャッシュへ前記所与のデータの
    ブロックを転送することを特徴とする、請求項27に記
    載の装置。
JP14266697A 1996-06-18 1997-05-30 キャッシュ・コヒーレンシを維持するための方法及び装置 Expired - Fee Related JP3202939B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/665659 1996-06-18
US08/665,659 US5787477A (en) 1996-06-18 1996-06-18 Multi-processor cache coherency protocol allowing asynchronous modification of cache data

Publications (2)

Publication Number Publication Date
JPH1091524A true JPH1091524A (ja) 1998-04-10
JP3202939B2 JP3202939B2 (ja) 2001-08-27

Family

ID=24671027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14266697A Expired - Fee Related JP3202939B2 (ja) 1996-06-18 1997-05-30 キャッシュ・コヒーレンシを維持するための方法及び装置

Country Status (2)

Country Link
US (1) US5787477A (ja)
JP (1) JP3202939B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170107061A (ko) * 2015-02-16 2017-09-22 후아웨이 테크놀러지 컴퍼니 리미티드 멀티 코어 시스템에서 데이터 방문자 디렉토리에 액세스하는 방법 및 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633958B1 (en) * 1997-11-17 2003-10-14 Silicon Graphics, Inc. Multiprocessor computer system and method for maintaining cache coherence utilizing a multi-dimensional cache coherence directory structure
US6587931B1 (en) * 1997-12-31 2003-07-01 Unisys Corporation Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6345340B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Cache coherency protocol with ambiguous state for posted operations
US6487621B1 (en) 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6865645B1 (en) 2000-10-02 2005-03-08 International Business Machines Corporation Program store compare handling between instruction and operand caches
US6801984B2 (en) * 2001-06-29 2004-10-05 International Business Machines Corporation Imprecise snooping based invalidation mechanism
US8055492B2 (en) * 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US9501410B2 (en) * 2013-03-15 2016-11-22 Veritas Technologies Llc Providing local cache coherency in a shared storage environment

Family Cites Families (10)

* 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
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
JPH0625984B2 (ja) * 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
US5361368A (en) * 1991-09-05 1994-11-01 International Business Machines Corporation Cross interrogate synchronization mechanism including logic means and delay register
EP0569605A1 (de) * 1992-05-06 1993-11-18 International Business Machines Corporation Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170107061A (ko) * 2015-02-16 2017-09-22 후아웨이 테크놀러지 컴퍼니 리미티드 멀티 코어 시스템에서 데이터 방문자 디렉토리에 액세스하는 방법 및 장치
JP2018508894A (ja) * 2015-02-16 2018-03-29 華為技術有限公司Huawei Technologies Co.,Ltd. マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス

Also Published As

Publication number Publication date
JP3202939B2 (ja) 2001-08-27
US5787477A (en) 1998-07-28

Similar Documents

Publication Publication Date Title
US4484267A (en) Cache sharing control in a multiprocessor
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5802582A (en) Explicit coherence using split-phase controls
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
US7340565B2 (en) Source request arbitration
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US8793442B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US6877030B2 (en) Method and system for cache coherence in DSM multiprocessor system without growth of the sharing vector
EP0743601A2 (en) A system and method for improving cache performance in a multiprocessing system
US6032228A (en) Flexible cache-coherency mechanism
JPH05127995A (ja) ローカルキヤツシユに共通のページ間の一貫性を確保する方法
JP2006285992A (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
JPH0762836B2 (ja) データ・アクセス管理装置および方法
JP2000305841A (ja) メモリを区画化する方法及び装置
JPH04227552A (ja) ストアスルーキャッシュ管理システム
JPH10133943A (ja) リンクリスト形成方法
US20020078305A1 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JP3202939B2 (ja) キャッシュ・コヒーレンシを維持するための方法及び装置
US7912998B2 (en) DMA access systems and methods
JP2746530B2 (ja) 共有メモリマルチプロセッサ
JP3550092B2 (ja) キャッシュ装置及び制御方法
US6496907B1 (en) 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
US6321304B1 (en) System and method for deleting read-only head entries in multi-processor computer systems supporting cache coherence with mixed protocols
US7380107B2 (en) Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees