JP2541771B2 - 原子的メモリ参照方法及びシステム - Google Patents

原子的メモリ参照方法及びシステム

Info

Publication number
JP2541771B2
JP2541771B2 JP5319572A JP31957293A JP2541771B2 JP 2541771 B2 JP2541771 B2 JP 2541771B2 JP 5319572 A JP5319572 A JP 5319572A JP 31957293 A JP31957293 A JP 31957293A JP 2541771 B2 JP2541771 B2 JP 2541771B2
Authority
JP
Japan
Prior art keywords
cache
level
level cache
block
data entry
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
JP5319572A
Other languages
English (en)
Other versions
JPH06243107A (ja
Inventor
チャールズ・ロバーツ・ムーア
ジョン・ステファン・マヒッチ
ロバート・ジェームズ・リース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06243107A publication Critical patent/JPH06243107A/ja
Application granted granted Critical
Publication of JP2541771B2 publication Critical patent/JP2541771B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般に改良されたデータ
処理システムに関し、特に多重レベル・キャッシュ・デ
ータ処理システムにおける原子的メモリ参照を達成する
方法及びシステムに関する。更に詳細には本発明は、キ
ャッシュ・システム全体に渡り、予約アドレスの分配を
要求することなく、多重レベル・キャッシュ・マルチプ
ロセッサ・データ処理システムにおいて原子的メモリ参
照を達成する方法及びシステムに関する。
【0002】
【従来の技術】最新のデータ処理システムの設計者は、
こうしたシステムの性能を向上させるように常に努力を
重ねている。データ処理システムの効率を向上させる1
つの技術に、短サイクル時間及び低サイクル毎命令(C
PI:Cycles Per Instruction)比率の達成がある。改
良されたデータ処理システムにおけるこれらの技術の優
れた応用例に、IBMのRISC System/6000(RS/6000)
コンピュータがある。RS/6000 システムはマルチユー
ザ、汎用環境と同様に数値処理において集中的なエンジ
ニアリング・アプリケーション及び科学技術アプリケー
ションにおいて好都合に実行されるように設計されてい
る。RS/6000 プロセッサはマルチスケーラを使用し、こ
れは複数の命令が同時に発行されて実行されることを意
味する。
【0003】複数の命令の同時発行及び実行は、高い命
令帯域幅により並列に実行可能な独立の機能ユニットを
必要とする。RS/6000 システムはパイプライン式の別々
の分岐ユニット、固定小数点処理ユニット及び浮動小数
点処理ユニットを使用することにより、これを達成す
る。こうしたシステムにおいて、条件分岐命令の実行に
より、考慮すべきパイプライン遅延のペナルティが発生
する。条件分岐命令は、1個または複数の他の命令の処
理の選択結果に応答して、アプリケーション内で特定の
条件分岐の発生を指令する命令である。従ってランタイ
ム遅延を回避するためには、条件分岐命令がパイプライ
ン・キューを通じてキュー内の実行位置に伝播する時間
内において、条件分岐を解析する以前に条件分岐命令よ
り後の命令をキューにロードすることが必要となる。
【0004】マルチスケーラ・プロセッサ・システムに
おける別の遅延要因は、こうしたシステムが典型的に複
数のタスクを同時に実行する事実に起因する。各これら
の複数のタスクは、典型的にはタスクの実行に使用され
る有効アドレス空間または仮想アドレス空間を有する。
こうした有効または仮想アドレス空間内のロケーション
は、システム・メモリ内の実アドレスに"マップ"される
アドレスを含む。実メモリ内の単一の空間を、マルチス
ケーラ・プロセッサ・システム内の複数の有効または仮
想メモリ・アドレスにマップすることは一般的である。
各複数タスクによる有効または仮想アドレスの使用は、
マルチスケーラ・プロセッサ・システムにおける追加遅
延を生成する。これはこれらのアドレスをシステム・メ
モリ内の実アドレスに変換する必要性による。それによ
り適切な命令またはデータがメモリから検索され、マル
チスケーラ・プロセッサ・システムを構成する複数の独
立な機能ユニットの1つにディスパッチするために、命
令キュー内に配置される。
【0005】マルチスケーラ・プロセッサ・システム内
の有効または仮想メモリ・アドレスをシステム・メモリ
内の実メモリ・アドレスに迅速に変換する1つの技術
に、いわゆる"変換ルックアサイド・バッファ"(TL
B)の使用がある。変換ルックアサイド・バッファ(T
LB)は、有効または仮想メモリ・アドレスと実メモリ
・アドレスとの間の変換関係を含むバッファであり、こ
れはある変換アルゴリズムを使用して生成される。変換
ルックアサイド・バッファ(TLB)を使用する装置
は、アドレス変換のための合理的で効率的な方法を提供
するが、密結合対象的マルチプロセッサ・システムにお
けるこうしたバッファの使用は、コヒーレンシの問題を
生じる。複数のプロセッサが共通のシステム実メモリか
ら読出し及びそれに書込むデータ処理システムでは、メ
モリ・システムがコヒーレントに動作することを保証し
なければならない。すなわち、メモリ・システムが複数
プロセッサのオペレーションの結果、非コヒーレントに
なることが許可されない。こうしたマルチプロセッサ・
データ処理システム内の各プロセッサは、典型的には、
アドレス変換用の変換ルックアサイド・バッファ(TL
B)を含み、こうしたシステム内のメモリの共用は、マ
ルチプロセッサ・システム内のあるプロセッサ内の単一
の変換ルックアサイド・バッファ(TLB)に対する変
更が、マルチプロセッサ・コンピュータ・システム内の
各プロセッサ内の各変換ルックアサイド・バッファ(T
LB)に慎重に且つ矛盾無くマップされて、コヒーレン
シを維持することを要求する。
【0006】従来のマルチプロセッサ・システムにおけ
る変換ルックアサイド・バッファ(TLB)の保守は、
典型的にはプロセッサ間割込み、及び全ての変換ルック
アサイド・バッファ(TLB)の変更に対するソフトウ
ェア同期を使用して達成される。これらのアプローチは
マルチプロセッサ・システム全体に渡りコヒーレンシを
保証するために使用されるが、割込み及びソフトウェア
同期の使用の必要性は、マルチプロセッサ・コンピュー
タ・システムにおける実質的な性能劣化を生じる。
【0007】更にマルチプロセッサ・データ処理システ
ム内の各プロセッサは、典型的には小容量の特殊なメモ
リまたは"キャッシュ"を含み、これは当業者には既知の
ように、システム・メモリ内のデータまたは命令をアク
セスするために使用される。キャッシュ・メモリ・シス
テムのサイジング及び使用は、データ処理分野では既知
の技術であり本願では説明を省略する。しかしながら、
当業者においては、最近の連想キャッシュ技術の使用に
より、キャッシュまたはメモリ・インタフェース内に一
時的に記憶されるデータを使用することにより、システ
ムにおけるメモリ・アクセス効率が大幅に向上されるこ
とが理解されよう。
【0008】メモリが小容量キャッシュに分配されるマ
ルチプロセッサ・システムにおいて発生する1つの問題
に、特定のキャッシュのオペレーションにより、あるプ
ロセッサがその関連するキャッシュ内のデータ・ブロッ
クをフラッシュ(flush )または無効にしたりする。単
一のプロセッサ環境では、データ・ブロックは2つの場
所、すなわちキャッシュまたは主メモリのいずれか一方
にだけ存在する可能性があるので、これは比較的直接的
なオペレーションである。しかしながら、マルチプロセ
ッサ環境では、これらの機能は他のプロセッサが関連す
るキャッシュ内に同一のデータ・ブロックを有する可能
性、及びそのデータ・ブロックが変更されたり変更され
なかったりする事実により複雑となる。従って、データ
の保全性及びコヒーレンシが維持されて、マルチプロセ
ッサ環境におけるキャッシュ・オペレーションが実行さ
れることを保証するために、マルチプロセッサ・システ
ムは、こうしたシステム内の全てのプロセッサ・キャッ
シュ及び主メモリに渡って、同期を達成する技術を提供
しなければならない。
【0009】原子的メモリ参照を実行しなければならな
い時に、多重レベル・キャッシュを含むマルチプロセッ
サ・システムにおいて、更に別の問題が存在する。 "原
子的(atomic)" メモリ参照はデータがメモリからロー
ドされ、そのデータ・アドレスに対する予約が確立され
る参照をさす。データは操作されるか更新された後、予
約されたアドレスに記憶される。これは一般に、データ
をロードしそのアドレスの予約を設定する"ロード・ア
ンド・リザーブ(Load and Reserve)"(LARX)命
令などの特定のコマンドを使用して達成される。"条件
付き記憶(StoreConditional)"(STCX)命令が次
に使用され、予約が設定されている場合には更新データ
を予約アドレスに記憶し、その状態の下で記憶を実行す
る。予約アドレスへ試行される書込みに対する介入は予
約をリセットするので、そのアドレスに影響を及ぼす他
のプロセッサのオペレーションが監視されなければなら
ない。これは一般に多重レベル・キャッシュ・システム
においては、関連するキャッシュ・メモリ間で"包含(i
nclusion)" を実施し、その後、予約アドレスへの書込
み活動をプロセッサに伝達するために、バス・トラフィ
ックをフィルタすることにより達成される。
【0010】従って多重レベル・キャッシュ・システム
において、予約の保留の間におけるキャッシュ・システ
ムからの関連データ・ブロックの廃棄にも関わらず、予
約状態を維持可能な原子的メモリ参照を達成する方法及
びシステムが求められることが理解されよう。
【0011】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ処理システムを提供することである。
【0012】本発明の別の目的は、多重レベル・キャッ
シュ・データ処理システムにおいて、原子的メモリ参照
を達成する改良された方法及びシステムを提供すること
である。
【0013】更に本発明の別の目的は、多重レベル・キ
ャッシュ・マルチプロセッサ・データ処理システムにお
いて、キャッシュ・システム全体に渡り予約アドレスの
分配を要求することなく、原子的メモリ参照を達成する
方法及びシステムを提供することである。
【0014】
【課題を解決するための手段】上述の目的が次のように
して達成される。本発明の方法及びシステムは、多重レ
ベル・キャッシュ・データ処理システムにおいて、原子
的メモリ参照を達成するために使用される。原子的メモ
リ参照は、システムがコヒーレントなメモリ・システム
を提供することを要求する。これは大部分のマルチプロ
セッサ・システムにおいて、通常のメモリ・コヒーレン
シ・システムにより達成される。予約状態に対するヒッ
トを正確に解析するために、メモリへの書込みまたは書
込み試行がプロセッサにより監視されなければならな
い。多重レベル・キャッシュ・システムはコヒーレンシ
の特殊な問題を提供し、これは予約機構の不適なオペレ
ーションを生じる。例えば2レベル・キャッシュ・シス
テムにおいて、第2レベル・キャッシュがバス・オペレ
ーションをフィルタし、第1レベル・キャッシュ内の記
憶データを含むバス・トラフィックをプロセッサに転送
する。これは"包含"特性を実施することにより達成さ
れ、この場合、第1レベル・キャッシュ内の全てのデー
タ・エントリが、高レベル・キャッシュ内に保持される
ことが要求される。予約が保留である第1レベル・キャ
ッシュ内のブロックが廃棄され、予約の保留にも関わら
ず、第2レベル・キャッシュが関連するプロセッサへバ
ス・トラフィックをもはや転送しない場合に問題が生じ
る。本発明で開示される方法によれば、有効な予約が保
留の度に予約フラグがセットされる。その後、高レベル
・キャッシュにおけるデータ・エントリの置換により、
包含レベル・キャッシュにおける対応するデータ・エン
トリが消去される。次に予約アドレスに作用するバス・
オペレーションまたは予約アドレスに対応するキャッシ
ュ・データ・エントリの消去のいずれかの発生に応答し
て、予約フラグがリセットされ、予約アドレスを分配す
る必要なく、原子的メモリ参照が達成される。
【0015】
【実施例】図1を参照すると、本発明の方法及びシステ
ムを実施するために使用されるマルチプロセッサ・デー
タ処理システム6のハイレベル・ブロック図が示され
る。図示のように、マルチプロセッサ・データ処理シス
テム6は、各々がバス8によりシステム・メモリ18に
結合されるマルチスケーラ・プロセッサ10により構成
される。マルチプロセッサ・データ処理システム6など
の密結合対象的マルチプロセッサ・システムでは、マル
チプロセッサ・データ処理システム6内の各プロセッサ
10はメモリ18からデータを読出し、またそこにデー
タを書込むために使用される。従ってメモリ18内のデ
ータ及び命令がコヒーレントであることを保証するため
に、システム及びインターロックが使用されなければな
らない。
【0016】図1を参照すると、マルチプロセッサ・デ
ータ処理システム6内の各プロセッサ10は、第1レベ
ル・キャッシュすなわちレベル1(L1)キャッシュ・
メモリ40を含み、これはシステム・メモリ18から第
2レベル・キャッシュすなわちレベル2(L2)キャッ
シュ・メモリ20を介して、選択された命令またはデー
タを効率的且つ一時的にアクセス及び記憶するために使
用される。各キャッシュ・メモリがメモリ空間を構成す
る事実により、マルチプロセッサ・データ処理システム
6内の各L1キャッシュ・メモリ40及びL2キャッシ
ュ・メモリ20間のコヒーレンシを維持し、こうしたシ
ステムの正確なオペレーションを保証することが重要で
ある。
【0017】図2を参照すると、本発明の方法及びシス
テムを実施するために使用される、図1のマルチプロセ
ッサ・データ処理システム6内の多重レベル・キャッシ
ュ・システムのハイレベル・ブロック図が示される。図
示のように、プロセッサ10はレベル2(L2)キャッ
シュ20を介してバス8に結合される。プロセッサ10
内のレベル1(L1)キャッシュ40は、プロセッサ1
0により最も頻繁に使用される少数の命令またはデータ
を一時的に記憶するために使用される。キャッシュ・メ
モリのサイジング及びオペレーションは、データ処理技
術においては既知であり、ここでは説明を省略する。
【0018】本発明の重要な特徴によれば、原子的メモ
リ参照がプロセッサ10内で試行される度に、予約フラ
グ42がプロセッサ10内でセットされる。当業者には
理解されるように、これは0または1にセットされる1
桁の2進数を構成する。この予約信号はレベル2(L
2)キャッシュ20に伝達され、L2予約フラグ46内
に記憶される。レベル2(L2)キャッシュにおけるこ
の予約フラグのセットは、有効な予約がプロセッサ10
内で保留であることを示す。原子的メモリ参照を達成す
るために、プロセッサ10に対し予約アドレスにおいて
発生するデータ書込みの試行を通知することが必要であ
る。
【0019】このフィルタリングを実施する直接的な技
術は、プロセッサ10からレベル2(L2)キャッシュ
20へ予約アドレスを送信することである。しかしなが
ら、当業者には理解されるように、これはプロセッサ性
能を非常に低下させる。従って、キャッシュ可能データ
に対して予約が保留であるアドレスは、プロセッサ10
内の予約アドレス44においてのみ維持される。後に詳
述されるように、レベル2(L2)キャッシュ20は、
参照番号60で示されるいわゆる "スヌープ(snoop)"
プロトコルにより、マルチプロセッサ・データ処理シス
テム6内の他のプロセッサの活動を監視するために使用
される。バス8を"スヌープ"することにより、レベル2
(L2)キャッシュ20は、予約アドレスのデータを変
更するために試行されるバス活動をプロセッサ10に送
信する。
【0020】もちろん、マルチプロセッサ・データ処理
システム6内の特定のデータがキャッシュ禁止、すなわ
ちキャッシュ・メモリ内に記憶されない場合もある。こ
うした状況ではそのデータに対する予約フラグのセット
は、必然的にレベル1(L1)キャッシュ40内におけ
る"ミス(miss)"となり、レベル2(L2)キャッシュ
20からそのデータの読出しを試行する。データがキャ
ッシュ禁止の事実を鑑み、そのアドレスが読出しオペレ
ーションのためにレベル2(L2)キャッシュ20に受
渡され、これによりキャッシュ禁止のデータの場合にお
ける、予約アドレスに対するデータ変更活動の監視が容
易となる。こうした状況では、予約アドレスはプロセッ
サ10から、レベル2(L2)キャッシュ20内の予約
アドレス48に転送される。その後、予約アドレスのデ
ータを変更しようとする、マルチプロセッサ・データ処
理システム6内の他のプロセッサの活動を監視するため
に、スヌープ・プロトコル60が使用される。
【0021】図2に示されるように、レベル2(L2)
キャッシュ20は好適には読出しオペレーション・キュ
ー50を含み、これはレベル1(L1)キャッシュ40
からレベル2(L2)キャッシュ20に受渡される読出
しオペレーションを一時的に記憶するために使用され
る。更にレベル1(L1)キャッシュ40とレベル2
(L2)キャッシュ20間、及びレベル2(L2)キャ
ッシュ20とバス8間のデータ通信を制御するために、
レベル1(L1)バス制御52及びレベル2(L2)バ
ス制御54がそれぞれに対応して使用される。
【0022】図3を参照すると、本発明の方法及びシス
テムによる "ロード・アンド・リザーブ" (LARX)
命令の処理を表すハイレベル論理流れ図が示される。上
述のように、"ロード・アンド・リザーブ"(LARX)
命令は、特定のロケーションからデータをロードする一
方、変更または更新に続いてそのデータを記憶するため
にそのアドレスを予約する。図示のように、処理はブロ
ック80で開始され、その後、ブロック82に移行す
る。ブロック82はロード・アンド・リザーブ(LAR
X)命令の受信を示す。次に処理はブロック84に移行
し、予約(RSRV)フラグをセットする。上述のよう
に、このフラグはシステムにおける有効な保留予約の存
在を示すために使用される。L2予約フラグについても
レベル2(L2)キャッシュ内でセットされる。
【0023】次に処理はブロック86に移行する。ブロ
ック86は受信されたロード・アンド・リザーブ(LA
RX)命令に対するデータ・エントリがキャッシュ禁止
か否かを判断する。肯定の場合、処理はブロック88に
移行し、原子的バス・オペレーションにより、そのデー
タを読出す。すなわち、データが介入周期の間に別のプ
ロセッサにより変更されない場合、そのデータを読出し
変更する一方で、続く条件付き記憶オペレーションに対
応してアドレスを予約する。その後、処理はブロック9
0に移行し、バス・オペレーションを完了する。
【0024】ブロック86を参照し、ロード・アンド・
リザーブ(LARX)命令の対象となるデータ・エント
リがキャッシュ禁止でない場合、処理はブロック92に
移行する。ブロック92はレベル1(L1)キャッシュ
内にそのエントリが見い出されたか否かを判断する。肯
定の場合、処理はブロック94に移行し、そのデータを
汎用レジスタ(GPR)に読出し、次に処理はブロック
96に示されるように、次の命令に移行する。
【0025】再度ブロック92を参照し、データ・エン
トリがレベル1(L1)キャッシュ内に存在しない場
合、処理はブロック98に移行する。ブロック98はバ
ス読出しオペレーションを表し、レベル1(L1)キャ
ッシュ内のラインを解放する。当業者には理解されるよ
うに、新たなデータのロード要求において、キャッシュ
から消去するデータを決定するための数多くのプロトコ
ルが存在する。典型的には、データ・ラインが最小使用
頻度(LRU)プロトコルにもとづき解放される。次に
処理はブロック100に移行する。ブロック100はバ
ス読出しオペレーションが完了したか否かを判断し、否
定の場合、処理はブロック98に戻り、読出しオペレー
ションの処理を継続する。再度ブロック100を参照
し、バス読出しオペレーションが完了すると、処理はブ
ロック102に移行する。ブロック102はそのデータ
をレベル1(L1)キャッシュに記憶し、そのデータに
対応するキャッシュ・ステータスをセットする。処理は
次に繰返しブロック92に戻り、要求データ・エントリ
がレベル1(L1)キャッシュ内に存在するか否かを判
断する。
【0026】図4を参照すると、本発明の方法及びシス
テムによる予約フラグをリセットするための、マルチプ
ロセッサ・データ処理システム6内のレベル2(L2)
キャッシュにおけるフィルタ処理を表すハイレベル論理
流れ図が示される。図示のように、処理はブロック11
0で開始され、その後、ブロック112に移行する。ブ
ロック112はレベル1(L1)キャッシュ内に有効な
保留予約が存在することを示す予約フラグがセットされ
ているか否か、また予約アドレスへの記憶オペレーショ
ンがバス8上において検出されたか否かを判断する。多
重レベル・キャッシュにおいていわゆる"包含"機能を実
施することにより、レベル2(L2)キャッシュ内に存
在するエントリへの記憶オペレーションが、レベル2
(L2)キャッシュに関連するレベル1(L1)キャッ
シュ内のエントリへ指向される。このようにして、レベ
ル2(L2)キャッシュ内のアドレスへの記憶オペレー
ションの検出により、処理はブロック118に移行し、
ブロック118はその記憶オペレーションが予約アドレ
スに対して実施されるか否かを判断するために、そのオ
ペレーションをレベル1(L1)キャッシュへ送信す
る。
【0027】同様にして、記憶オペレーションが検出さ
れない場合は、処理はブロック114に移行する。ブロ
ック114は再度、有効な保留予約の存在を示す予約フ
ラグがセットされているか否か、及び予約アドレスに対
する変更目的読出し(RWITM:Read With Intent T
o Modify)オペレーションが発生しているか否かを判断
する。同様にブロック116は予約フラグがセットされ
ているか否か、及び予約アドレスに対するキル(Kill)
オペレーションが検出されているか否かを判断する。予
約フラグがセットされており、変更目的読出し(RWI
TM)オペレーションまたはキル・オペレーションのい
ずれかが検出されると、処理は再度ブロック118に移
行し、レベル1(L1)キャッシュにそのオペレーショ
ンを送信する。ブロック116に続き、処理は単にブロ
ック112に戻り、予約アドレスを変更するこれらのオ
ペレーションに対応するバス8上のバス・オペレーショ
ンを監視する。
【0028】図5を参照すると、本発明の方法及びシス
テムによる、予約フラグをリセットするための、レベル
1(L1)キャッシュにおけるフィルタ処理を表すハイ
レベル論理流れ図が示される。図4と同様に処理はブロ
ック130で開始され、その後、ブロック132に移行
する。ブロック132、134及び136は、それぞれ
記憶、変更目的読出し(RWITM)またはキル・オペ
レーションが予約アドレスに関して発生したか否かを判
断する。予約アドレス内のデータの変更を示すこれらの
オペレーションのいずれかが発生した場合、処理はブロ
ック138に移行する。ブロック138は予約フラグを
リセットする。当業者には理解されるように予約フラグ
がリセットされると、原子的メモリ参照を実行する続く
条件付き記憶(STCX)命令が発生しない。こうした
状況においては、以降で詳細に述べられるように、原子
的メモリ参照を実行しようとして、ロード・アンド・リ
ザーブ(LARX)命令が再実行される。再び図5を参
照して、処理はレベル2(L2)キャッシュからレベル
1(L1)キャッシュに転送されるこれらの活動を継続
して監視し、これらのバス・オペレーションが予約フラ
グのリセットを必要とするか否かを判断する。
【0029】図6を参照すると、本発明の方法及びシス
テムによる、"条件付き記憶"(STCX)命令の処理を
表すハイレベル論理流れ図が示される。上述のように、
条件付き記憶(STCX)命令は予約フラグがまだセッ
トされているか否かを判断するために使用され、肯定の
場合、予約アドレスへの記憶の実行を許可する。予約フ
ラグがセットされていない場合、すなわち、これは予約
アドレスに対する書込みオペレーションのヒットを含む
バス・トラフィックのスヌープの結果、予約フラグがリ
セットされたことを示し、この場合には記憶の実行が許
可されず、条件レジスタ内にビットがセットされる。典
型的には、分岐命令がLARX/STCX対の後に続
き、記憶が成功したか否かを確認するために、条件レジ
スタ・ビットをチェックする。否定の場合、分岐は再試
行のためにロード・アンド・リザーブ(LARX)命令
に戻り、コード内のループを生成する。
【0030】図6に示されるように、処理はブロック1
50で開始され、その後、ブロック152に移行する。
ブロック152は、条件付き記憶(STCX)命令が受
信されたか否かを判断する。肯定の場合、処理はブロッ
ク154に移行する。ブロック154は予約フラグがセ
ットされているか否かを判断する。否定の場合、これは
予約アドレスに対し、ある書込みオペレーションが介入
したことを示し、処理はブロック156に移行する。ブ
ロック156は条件付き記憶(STCX)命令失敗フラ
グをセットし、次に処理はブロック158に移行する。
ブロック158は次の命令の発生を示し、典型的には試
行される原子的メモリ参照の状態を調査する分岐が発生
する。
【0031】再度ブロック154を参照すると、予約フ
ラグがセットされていると処理はブロック160に移行
する。ブロック160は予約アドレスにおけるデータが
キャッシュ禁止か否かを判断する。禁止の場合、ブロッ
ク162で示されるように、原子的バス・オペレーショ
ンによる記憶が発生する。次に、処理はブロック164
に移行する。ブロック164は予約フラグがまだセット
されているか否かを判断する。セットされていない場
合、処理はブロック156に移行して上述の処理を実行
する。それとは別に、予約フラグがまだセットされてい
る場合、処理はブロック166に移行する。ブロック1
66はバス・オペレーションが完了したか否かを判断
し、完了していない場合、処理はブロック164に戻
り、再度予約フラグがセットされたままの状態であるか
を判断する。このように原子的バス・オペレーションに
よる予約アドレスへのキャッシュ禁止データの記憶は、
バス・オペレーションが完了するまで、予約フラグがセ
ットされたままの状態であるかを判断し続ける。
【0032】再度ブロック166を参照すると、バス・
オペレーションが完了すると、処理はブロック168に
移行する。ブロック168は予約フラグ、及び条件付き
記憶(STCX)命令失敗フラグをリセットする。次に
処理はブロック158で示されるように、次の命令に移
行する。
【0033】ブロック160を再度参照すると、条件付
き記憶(STCX)命令に関連する予約アドレスがキャ
ッシュ禁止でない場合、処理はブロック170に移行す
る。ブロック170は、予約アドレスに対応するデータ
・エントリがレベル1(L1)キャッシュ内において"
ヒット"し、開始プロセッサにより排他的に所有される
か否かを判断する。肯定の場合、処理はブロック172
に移行する。ブロック172は汎用レジスタ(GRP)
からキャッシュにデータを書込み、そのデータに対応す
るキャッシュ状態を"変更"にセットする。その後、処理
はブロック168に移行し、予約フラグ及び条件付き記
憶(STCX)命令失敗フラグをリセットする。
【0034】再度ブロック170を参照し、予約アドレ
スに対応するデータがレベル1(L1)キャッシュ内に
存在せず、開始プロセッサにより排他的に所有されない
場合、処理はブロック174に移行する。ブロック17
4はデータに対応するキャッシュ状態が"共用"であるか
否か、またはデータがレベル1(L1)キャッシュ内に
不在か否かを判断する。データがレベル1(L1)キャ
ッシュ内に存在しない場合、処理はブロック176に移
行する。
【0035】ブロック176は、バス上に変更目的読出
し(RWITM)オペレーション要求を発行する。マル
チプロセッサ・データ処理システムに関わる当業者には
理解されるように、データ・コヒーレンシは、あるプロ
セッサによるデータ変更の試行に際し、そのプロセッサ
がそのデータの変更の意志を示すバス・オペレーション
要求を発行し、意図される変更がデータ・コヒーレンシ
を侵害する場合に、システム内の他のプロセッサが選択
信号を生成することを要求する。典型的には、データ・
コヒーレンシ問題が存在することを示すアドレス再試行
(ARETRY)信号が、システム内の他のプロセッサ
により使用される。ブロック178は変更目的読出し
(RWITM)要求のARETRY信号が発生している
か否かを判断する。肯定の場合、処理はブロック154
に戻り、再度、予約フラグがセットされた状態であるか
否かを判断する。
【0036】再度ブロック178を参照し、システム内
の他のプロセッサが変更目的読出し(RWITM)要求
に対するARETRYを発行しない場合、処理はブロッ
ク180に移行する。ブロック180はレベル1(L
1)キャッシュに所望のデータを再ロードし、次に処理
はブロック182に移行する。ブロック182はそのデ
ータに対応するキャッシュ状態を"排他"にセットし、処
理は次にブロック170に再度戻る。キャッシュ・メモ
リ管理に関わる当業者には理解されるように、キャッシ
ュ内のデータ状態を定義するための数多くのプロトコル
が存在する。典型的には、"MESI"と呼ばれる4つの
状態プロトコルが使用され、"変更"、 "排他"、"共用"
または"無効"のいずれかのデータ状態を示す。
【0037】ブロック170に戻り、処理は再び所望の
データがレベル1(L1)キャッシュ内に存在し、開始
プロセッサに対し"排他"であるか否かを判断する。レベ
ル1(L1)キャッシュの再ロードに続いて、そのデー
タの状態を"排他"にセットし、処理は次に上述されたブ
ロック172以降の経路を実行する。
【0038】ブロック174を再度参照すると、レベル
1(L1)キャッシュ内にデータが存在し共用される場
合、処理はブロック184に移行する。ブロック184
はキル・バス・オペレーション要求を発行する。キル・
バス・オペレーション要求は、データの全ての代替コピ
ーを無効化し、それにより開始プロセッサによるそのデ
ータの排他的所有権を保証するための開始プロセッサに
よる要求である。上述のように、多重処理データ処理シ
ステム6は、キル・バス・オペレーションがデータ・コ
ヒーレンシに違反する場合、このオペレーションに応答
してシステム内の他のプロセッサがアドレス再試行(A
RETRY)をアサートすることを要求する。ARET
RYがアサートされると、処理はブロック154に戻
り、予約フラグがまだセットされているか否かを判断
し、上述の処理を繰返す。それとは別に、システム内の
他のプロセッサがキル・オペレーション要求に応答して
ARETRYをアサートしない場合、処理はブロック1
82に移行する。ブロック182は開始プロセッサ内に
おいてそのデータのキャッシュ状態を"排他"にセット
し、処理はブロック170に戻る。
【0039】最後に図7を参照すると、本発明の方法及
びシステムによる多重レベル・キャッシュ・システムの
バス・トラフィックのフィルタ制御処理を表すハイレベ
ル論理流れ図が示される。図示のように、処理はブロッ
ク190で開始され、その後、ブロック192に移行す
る。ブロック192はレベル2(L2)キャッシュ・ミ
スを発生し、読出しまたは変更目的読出し(RWIT
M)をレベル1(L1)キャッシュ・バス上に発行す
る。当業者には理解されるように、これはレベル1(L
1)キャッシュにおける"ミス"の結果発生する。所望の
データがレベル2(L2)キャッシュ内に存在する状況
では、多重レベル・キャッシュ・フィルタリングに関す
る問題は生じない。なぜなら、レベル2(L2)キャッ
シュが、レベル2(L2)キャッシュ内のデータ・エン
トリに対応するアドレスに作用するバス・オペレーショ
ンを連続的にフィルタするからである。しかしながら、
レベル2(L2)キャッシュ内に所望のデータが存在し
ない場合、原子的メモリ参照が適切に発生しない。次に
処理はブロック194に移行する。ブロック194は、
レベル1(L1)バスが使用可能か否か、及びレベル2
(L2)キャッシュに関連する読出しキューについても
使用可能か否かを判断する。否定の場合、処理はブロッ
ク196に移行し、レベル2(L2)キャッシュはアド
レス再試行(ARETRY)を発行し、処理は再びブロ
ック192に戻る。
【0040】ブロック194を参照すると、レベル1
(L1)バス及び読出しキューが使用可能な場合、処理
はブロック198に移行する。ブロック198はレベル
2(L2)キャッシュ内における読出しオペレーション
のキューイングを示す。次に処理はブロック200に移
行する。ブロック200は最低使用頻度(LRU)オペ
レーションなどの適切なプロトコルにより、レベル2
(L2)キャッシュ内に使用可能なラインを生成する。
その後、処理はブロック202に移行する。ブロック2
02は廃棄されるレベル2(L2)キャッシュ内のライ
ンが、"共用"または"無効"であるかを判断する。もちろ
ん、レベル2(L2)キャッシュ内のデータのライン
が"共用"または"無効"の場合、開始プロセッサはそのラ
インの排他的所有権を維持せず、そのラインのデータの
廃棄は原子的メモリ参照におけるコヒーレンシ問題を発
生する。なぜなら、そのラインの排他的所有権が所望の
メモリ参照を実行するために必要であるからである。レ
ベル2(L2)キャッシュから廃棄されるラインが"共
用"または"無効"の場合、処理はブロック204に移行
する。
【0041】ブロック204はレベル1(L1)バスの
要求を表す。次に処理はブロック206に移行する。ブ
ロック206はレベル1(L1)バスが許可されたか否
かを判断し、否定の場合、処理はブロック208に移行
する。ブロック208は記憶オペレーション以外の全て
のオペレーションに対応して、アドレス再試行(ARE
TRY)を生成する。処理は次にブロック210に移行
し、キューに待機される読出しオペレーションに先立
ち、順序外記憶オペレーションを実行する。処理は次に
ブロック204に移行し、再度レベル1(L1)バスを
要求する。
【0042】再度ブロック206を参照すると、レベル
1(L1)バスが許可されると、処理はブロック212
に移行する。ブロック212で開始プロセッサは、レベ
ル1(L1)バスに廃棄アドレスに対応する変更目的読
出し(RWITM)要求を生成することにより、レベル
2(L2)バスから廃棄されるラインの排他的所有権を
獲得しようと試みる。その後、処理はブロック214に
移行する。ブロック214は、アドレス再試行(ARE
TRY)が変更目的読出し(RWITM)の要求に関連
して発行されたか否かを判断し、肯定の場合、処理はブ
ロック204に移行し、廃棄アドレスの排他的所有権が
獲得されるまで、こうした処理が繰返される。
【0043】ブロック214を再度参照すると、変更目
的読出し(RWITM)に関するアドレス再試行(AR
ETRY)が発行されない場合、処理はブロック216
に移行する。ブロック216は廃棄ラインが"変更"され
たか否かを判断する。肯定の場合、処理はブロック21
8に移行する。ブロック218は廃棄ライン・データを
レベル2(L2)バスに書込む。廃棄ラインが"変更"さ
れていない場合、もしくは廃棄ライン・データをレベル
2(L2)バスに書込んだ後、またはブロック202で
廃棄ラインが"共用"または"無効"と判断された時、処理
はブロック220に移行する。ブロック220はレベル
2(L2)バスを介して新たなライン・データを読出
し、その後、処理はブロック222に移行する。ブロッ
ク222は新たなライン・データをレベル1(L1)キ
ャッシュにロードし、処理は次にブロック224に移行
して復帰する。
【0044】上述の説明から、当業者には本出願人が、
多重レベル・キャッシュ・データ処理システムにおい
て、システム全体に渡る予約アドレスの分布を要求しな
い原子的メモリ参照を達成する新たな方法及びシステム
を提案したことが理解されよう。単一ビットの予約フラ
グをセットし、予約アドレスへの書込みを実施する活動
に対応するバス・トラフィックを監視し、更に多重レベ
ル・システム内の各レベル・キャッシュ間の特殊な関係
を実施する技術により、本発明の方法及びシステムは、
予約状態が維持されることを可能とする。
【0045】本願発明に関して、以下の事項を開示す
る。 (1)各々が多重包含レベル・キャッシュを含み、共通
バスを介して互いにリンクされる複数プロセッサを含む
マルチプロセッサ・データ処理システムにおける原子的
メモリ参照を実行する方法であって、選択プロセッサに
よる選択アドレスへの保留の原子的メモリ参照に応答し
て、上記選択プロセッサに関連する各レベル・キャッシ
ュ内に予約フラグをセットするステップと、高レベル・
キャッシュにおけるキャッシュ・データ・エントリの置
換に応答して、包含レベル・キャッシュの対応するキャ
ッシュ・データ・エントリを消去するステップと、第1
レベル・キャッシュにおいて、上記第1レベル・キャッ
シュのキャッシュ・データ・エントリに作用する上記共
通バス上の各バス・オペレーションを検出するステップ
と、上記第1レベル・キャッシュより上位の全ての包含
レベル・キャッシュに、上記検出されたバス・オペレー
ションを通知するステップと、上記選択アドレスに作用
するバス・オペレーションまたは上記選択アドレスに対
応するキャッシュ・データ・エントリの消去の発生に応
答して、上記予約フラグをリセットするステップとを含
み、上記多重包含レベル・キャッシュ全体に渡って上記
選択アドレスの分布を要求することなく、原子的メモリ
参照を実行する方法。 (2)選択プロセッサによる選択アドレスへの保留の原
子的メモリ参照に応答して、上記選択プロセッサに関連
する各レベル・キャッシュ内に予約フラグをセットする
上記ステップが、選択プロセッサによる選択アドレスへ
の保留の原子的メモリ参照に応答して、上記選択プロセ
ッサに関連する各レベル・キャッシュ内に予約ビットを
セットするステップを含む、(1)記載の方法。 (3)高レベル・キャッシュにおけるキャッシュ・デー
タ・エントリの置換に応答して、包含レベル・キャッシ
ュの対応するキャッシュ・データ・エントリを消去する
上記ステップが、高レベル・キャッシュにおけるキャッ
シュ・データ・エントリの置換に応答して、包含レベル
・キャッシュ内のキャッシュ・データ・エントリに対す
る変更目的読出し(RWITM)命令を発行するステッ
プを含む、(1)記載の方法。 (4)各々が多重包含レベル・キャッシュを含み、共通
バスを介して互いにリンクされる複数プロセッサを含む
マルチプロセッサ・データ処理システムにおける原子的
メモリ参照を実行するシステムであって、選択プロセッ
サによる選択アドレスへの保留の原子的メモリ参照に応
答して、上記選択プロセッサに関連する各レベル・キャ
ッシュ内に予約フラグをセットする手段と、高レベル・
キャッシュにおけるキャッシュ・データ・エントリの置
換に応答して、包含レベル・キャッシュの対応するキャ
ッシュ・データ・エントリを消去する手段と、第1レベ
ル・キャッシュにおいて、上記第1レベル・キャッシュ
のキャッシュ・データ・エントリに作用する上記共通バ
ス上の各バス・オペレーションを検出する手段と、上記
第1レベル・キャッシュより上位の全ての包含レベル・
キャッシュに、上記検出されたバス・オペレーションを
通知する手段と、上記選択アドレスに作用するバス・オ
ペレーションまたは上記選択アドレスに対応するキャッ
シュ・データ・エントリの消去の発生に応答して、上記
予約フラグをリセットする手段とを含み、上記多重包含
レベル・キャッシュ全体に渡って上記選択アドレスの分
布を要求することなく、原子的メモリ参照を実行するシ
ステム。 (5)選択プロセッサによる選択アドレスへの保留の原
子的メモリ参照に応答して、上記選択プロセッサに関連
する各レベル・キャッシュ内に予約フラグをセットする
上記手段が、選択プロセッサによる選択アドレスへの保
留の原子的メモリ参照に応答して、上記選択プロセッサ
に関連する各レベル・キャッシュ内に予約ビットをセッ
トする手段を含む、(4)記載のシステム。 (6)高レベル・キャッシュにおけるキャッシュ・デー
タ・エントリの置換に応答して、包含レベル・キャッシ
ュの対応するキャッシュ・データ・エントリを消去する
上記手段が、高レベル・キャッシュにおけるキャッシュ
・データ・エントリの置換に応答して、包含レベル・キ
ャッシュ内のキャッシュ・データ・エントリに対する変
更目的読出し(RWITM)命令を発行する手段を含
む、(4)記載のシステム。
【0046】
【発明の効果】以上説明したように、本発明によれば、
多重レベル・キャッシュ・システムにおいて、予約の保
留の間におけるキャッシュ・システムからの関連データ
・ブロックの廃棄にも関わらず、予約状態を維持可能な
原子的メモリ参照を達成する方法及びシステムが提供さ
れる。
【図面の簡単な説明】
【図1】本発明の方法及びシステムを実施するために使
用されるマルチプロセッサ・データ処理システムを示す
ハイレベル・ブロック図である。
【図2】本発明の方法及びシステムを実施するために使
用される図1のマルチプロセッサ・データ処理システム
内の多重レベル・キャッシュ・システムのハイレベル・
ブロック図である。
【図3】本発明の方法及びシステムによる、"ロード・
アンド・リザーブ"(LARX)命令の処理を表すハイ
レベル論理流れ図である。
【図4】本発明の方法及びシステムによる、予約フラグ
をリセットするために使用される、レベル2(L2)キ
ャッシュにおけるフィルタ処理を表すハイレベル論理流
れ図である。
【図5】本発明の方法及びシステムによる、予約フラグ
をリセットするために使用される、レベル1(L1)キ
ャッシュにおけるフィルタ処理を表すハイレベル論理流
れ図である。
【図6】本発明の方法及びシステムによる、"条件付き
記憶"(STCX)命令の処理を表すハイレベル論理流
れ図である。
【図7】本発明の方法及びシステムによる、多重レベル
・キャッシュ・システムのバス・トラフィックのフィル
タ制御処理を表すハイレベル論理流れ図である。
【符号の説明】
6 マルチプロセッサ・データ処理システム 8 バス 10 マルチスケーラ・プロセッサ 18 システム・メモリ 20 レベル2(L2)キャッシュ・メモリ 40 レベル1(L1)キャッシュ・メモリ 42 予約フラグ 44 予約アドレス 50 読出しオペレーション・キュー 52 レベル1(L1)バス制御 54 レベル2(L2)バス制御 60 スヌープ・プロトコル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ステファン・マヒッチ アメリカ合衆国78759、テキサス州オー スティン、アルバーストーン・ウェイ 8606 (72)発明者 ロバート・ジェームズ・リース アメリカ合衆国78717、テキサス州オー スティン、エフライム・ロード 8100

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】第1レベル・キャッシュが最低位であり、
    各レベル・キャッシュが自身より低位のレベル・キャッ
    シュの全てのデータ・エントリを含む、多重包含レベル
    ・キャッシュを含み、共通バスを介して互いにリンクさ
    れる複数プロセッサを含むマルチプロセッサ・データ処
    理システムにおける原子的メモリ参照を実行する方法で
    あって、 選択プロセッサによる選択アドレスへの保留中の原子的
    メモリ参照に応答して、上記選択プロセッサに関連する
    各レベル・キャッシュ内に予約フラグをセットするステ
    ップと、 高位のレベル・キャッシュにおけるキャッシュ・データ
    ・エントリの置換に応答して、包含レベル・キャッシュ
    の対応するキャッシュ・データ・エントリを消去するス
    テップと、 第1レベル・キャッシュにおいて、上記第1レベル・キ
    ャッシュのキャッシュ・データ・エントリに作用する上
    記共通バス上の各バス・オペレーションを検出するステ
    ップと、 上記第1レベル・キャッシュより高位の全ての包含レベ
    ル・キャッシュに、上記検出されたバス・オペレーショ
    ンを通知するステップと、 上記選択アドレスに作用するバス・オペレーションまた
    は上記選択アドレスに対応するキャッシュ・データ・エ
    ントリの消去の発生に応答して、上記予約フラグをリセ
    ットするステップとを含み、 上記多重包含レベル・キャッシュ全体に渡って上記選択
    アドレスの分布を要求することなく、原子的メモリ参照
    を実行する方法。
  2. 【請求項2】選択プロセッサによる選択アドレスへの保
    留中の原子的メモリ参照に応答して、上記選択プロセッ
    サに関連する各レベル・キャッシュ内に予約フラグをセ
    ットする上記ステップが、選択プロセッサによる選択ア
    ドレスへの保留中の原子的メモリ参照に応答して、上記
    選択プロセッサに関連する各レベル・キャッシュ内に予
    約ビットをセットするステップを含む、請求項1記載の
    方法。
  3. 【請求項3】高位のレベル・キャッシュにおけるキャッ
    シュ・データ・エントリの置換に応答して、包含レベル
    ・キャッシュの対応するキャッシュ・データ・エントリ
    を消去する上記ステップが、高位のレベル・キャッシュ
    におけるキャッシュ・データ・エントリの置換に応答し
    て、包含レベル・キャッシュ内のキャッシュ・データ・
    エントリに対する変更目的読出し(RWITM)命令を
    発行するステップを含む、請求項1記載の方法。
  4. 【請求項4】各々が多重包含レベル・キャッシュを含
    み、共通バスを介して互いにリンクされる複数プロセッ
    サを含むマルチプロセッサ・データ処理システムにおけ
    る原子的メモリ参照を実行するシステムであって、 選択プロセッサによる選択アドレスへの保留中の原子的
    メモリ参照に応答して、上記選択プロセッサに関連する
    各レベル・キャッシュ内に予約フラグをセットする手段
    と、 高位のレベル・キャッシュにおけるキャッシュ・データ
    ・エントリの置換に応答して、包含レベル・キャッシュ
    の対応するキャッシュ・データ・エントリを消去する手
    段と、 第1レベル・キャッシュにおいて、上記第1レベル・キ
    ャッシュのキャッシュ・データ・エントリに作用する上
    記共通バス上の各バス・オペレーションを検出する手段
    と、 上記第1レベル・キャッシュより高位の全ての包含レベ
    ル・キャッシュに、上記検出されたバス・オペレーショ
    ンを通知する手段と、 上記選択アドレスに作用するバス・オペレーションまた
    は上記選択アドレスに対応するキャッシュ・データ・エ
    ントリの消去の発生に応答して、上記予約フラグをリセ
    ットする手段とを含み、 上記多重包含レベル・キャッシュ全体に渡って上記選択
    アドレスの分布を要求することなく、原子的メモリ参照
    を実行するシステム。
  5. 【請求項5】選択プロセッサによる選択アドレスへの保
    留中の原子的メモリ参照に応答して、上記選択プロセッ
    サに関連する各レベル・キャッシュ内に予約フラグをセ
    ットする上記手段が、選択プロセッサによる選択アドレ
    スへの保留中の原子的メモリ参照に応答して、上記選択
    プロセッサに関連する各レベル・キャッシュ内に予約ビ
    ットをセットする手段を含む、請求項4記載のシステ
    ム。
  6. 【請求項6】高位のレベル・キャッシュにおけるキャッ
    シュ・データ・エントリの置換に応答して、包含レベル
    ・キャッシュの対応するキャッシュ・データ・エントリ
    を消去する上記手段が、高位のレベル・キャッシュにお
    けるキャッシュ・データ・エントリの置換に応答して、
    包含レベル・キャッシュ内のキャッシュ・データ・エン
    トリに対する変更目的読出し(RWITM)命令を発行
    する手段を含む、請求項4記載のシステム。
JP5319572A 1993-01-29 1993-12-20 原子的メモリ参照方法及びシステム Expired - Lifetime JP2541771B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1096893A 1993-01-29 1993-01-29
US010968 1993-01-29

Publications (2)

Publication Number Publication Date
JPH06243107A JPH06243107A (ja) 1994-09-02
JP2541771B2 true JP2541771B2 (ja) 1996-10-09

Family

ID=21748279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5319572A Expired - Lifetime JP2541771B2 (ja) 1993-01-29 1993-12-20 原子的メモリ参照方法及びシステム

Country Status (3)

Country Link
US (1) US5706464A (ja)
EP (1) EP0608622A1 (ja)
JP (1) JP2541771B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073211A (en) * 1994-12-13 2000-06-06 International Business Machines Corporation Method and system for memory updates within a multiprocessor data processing system
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
JPH1091588A (ja) * 1996-09-13 1998-04-10 Nec Ic Microcomput Syst Ltd データ転送装置
US5895495A (en) * 1997-03-13 1999-04-20 International Business Machines Corporation Demand-based larx-reserve protocol for SMP system buses
US6115794A (en) * 1997-04-14 2000-09-05 International Business Machines Corporation Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6175899B1 (en) * 1997-05-19 2001-01-16 International Business Machines Corporation Method for providing virtual atomicity in multi processor environment having access to multilevel caches
US6098156A (en) * 1997-07-22 2000-08-01 International Business Machines Corporation Method and system for rapid line ownership transfer for multiprocessor updates
US6347363B1 (en) * 1998-02-17 2002-02-12 International Business Machines Corporation Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches
US6378048B1 (en) * 1998-11-12 2002-04-23 Intel Corporation “SLIME” cache coherency system for agents with multi-layer caches
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
US6549989B1 (en) * 1999-11-09 2003-04-15 International Business Machines Corporation Extended cache coherency protocol with a “lock released” state
US6629212B1 (en) * 1999-11-09 2003-09-30 International Business Machines Corporation High speed lock acquisition mechanism with time parameterized cache coherency states
US6629209B1 (en) * 1999-11-09 2003-09-30 International Business Machines Corporation Cache coherency protocol permitting sharing of a locked data granule
US6625701B1 (en) 1999-11-09 2003-09-23 International Business Machines Corporation Extended cache coherency protocol with a modified store instruction lock release indicator
US6629214B1 (en) 1999-11-09 2003-09-30 International Business Machines Corporation Extended cache coherency protocol with a persistent “lock acquired” state
US6681320B1 (en) 1999-12-29 2004-01-20 Intel Corporation Causality-based memory ordering in a multiprocessing environment
US6389517B1 (en) * 2000-02-25 2002-05-14 Sun Microsystems, Inc. Maintaining snoop traffic throughput in presence of an atomic operation a first port for a first queue tracks cache requests and a second port for a second queue snoops that have yet to be filtered
US6347360B1 (en) * 2000-02-25 2002-02-12 Sun Microsystems, Inc. Apparatus and method for preventing cache data eviction during an atomic operation
US6725358B1 (en) * 2000-06-22 2004-04-20 International Business Machines Corporation Processor and method having a load reorder queue that supports reservations
US6868491B1 (en) 2000-06-22 2005-03-15 International Business Machines Corporation Processor and method of executing load instructions out-of-order having reduced hazard penalty
US6584546B2 (en) 2001-01-16 2003-06-24 Gautam Nag Kavipurapu Highly efficient design of storage array for use in first and second cache spaces and memory subsystems
US7089373B2 (en) * 2003-06-12 2006-08-08 International Business Machines Corporation Shadow register to enhance lock acquisition
US7426625B2 (en) * 2004-03-31 2008-09-16 International Business Machines Corporation Data processing system and computer program product for support of system memory addresses with holes
US7197604B2 (en) * 2004-10-14 2007-03-27 International Business Machines Corporation Processor, data processing system and method for synchronzing access to data in shared memory
US7254678B2 (en) * 2005-03-17 2007-08-07 International Business Machines Corporation Enhanced STCX design to improve subsequent load efficiency
US7421529B2 (en) * 2005-10-20 2008-09-02 Qualcomm Incorporated Method and apparatus to clear semaphore reservation for exclusive access to shared memory
US8959292B1 (en) * 2005-12-22 2015-02-17 The Board Of Trustees Of The Leland Stanford Junior University Atomic memory access hardware implementations
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US8108610B1 (en) * 2008-10-21 2012-01-31 Nvidia Corporation Cache-based control of atomic operations in conjunction with an external ALU block
US8616007B2 (en) * 2009-01-22 2013-12-31 Siemens Energy, Inc. Structural attachment system for transition duct outlet
US8904118B2 (en) 2011-01-07 2014-12-02 International Business Machines Corporation Mechanisms for efficient intra-die/intra-chip collective messaging
US20120179896A1 (en) 2011-01-10 2012-07-12 International Business Machines Corporation Method and apparatus for a hierarchical synchronization barrier in a multi-node system
US9195550B2 (en) 2011-02-03 2015-11-24 International Business Machines Corporation Method for guaranteeing program correctness using fine-grained hardware speculative execution
CN103984647B (zh) * 2013-02-08 2017-07-21 上海芯豪微电子有限公司 存储表替换方法
US11068407B2 (en) 2018-10-26 2021-07-20 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction
US10884740B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads
US11119781B2 (en) 2018-12-11 2021-09-14 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
US11106608B1 (en) 2020-06-22 2021-08-31 International Business Machines Corporation Synchronizing access to shared memory by extending protection for a target address of a store-conditional request
US11693776B2 (en) 2021-06-18 2023-07-04 International Business Machines Corporation Variable protection window extension for a target address of a store-conditional request

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
ATE170642T1 (de) * 1990-06-15 1998-09-15 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
US5237694A (en) * 1991-05-30 1993-08-17 Advanced Micro Devices, Inc. Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates

Also Published As

Publication number Publication date
EP0608622A1 (en) 1994-08-03
US5706464A (en) 1998-01-06
JPH06243107A (ja) 1994-09-02

Similar Documents

Publication Publication Date Title
JP2541771B2 (ja) 原子的メモリ参照方法及びシステム
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
JP3431824B2 (ja) アクセス方法及び処理装置
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5829038A (en) Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure
US6839816B2 (en) Shared cache line update mechanism
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
US5671391A (en) Coherent copyback protocol for multi-level cache memory systems
US8924653B2 (en) Transactional cache memory system
US6546462B1 (en) CLFLUSH micro-architectural implementation method and system
US5043886A (en) Load/store with write-intent for write-back caches
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US6629212B1 (en) High speed lock acquisition mechanism with time parameterized cache coherency states
US5835950A (en) Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus
US6629209B1 (en) Cache coherency protocol permitting sharing of a locked data granule
JP3193684B2 (ja) キャッシュ・コヒーレンシを保証する方法及び装置
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
CN113853590A (zh) 伪随机路选择
WO1996039665A1 (en) Method and apparatus for reducing cache snooping overhead in a multilevel cache system
JP2547949B2 (ja) データ・コヒーレンシを維持する方法及びシステム
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US8332592B2 (en) Graphics processor with snoop filter
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템