JPH0340047A - キヤツシユ・ライン・ストア方法 - Google Patents

キヤツシユ・ライン・ストア方法

Info

Publication number
JPH0340047A
JPH0340047A JP1328623A JP32862389A JPH0340047A JP H0340047 A JPH0340047 A JP H0340047A JP 1328623 A JP1328623 A JP 1328623A JP 32862389 A JP32862389 A JP 32862389A JP H0340047 A JPH0340047 A JP H0340047A
Authority
JP
Japan
Prior art keywords
cache
line
store
bce
request
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
JP1328623A
Other languages
English (en)
Other versions
JPH0567976B2 (ja
Inventor
Lishing Liu
リイシイング・リユー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0340047A publication Critical patent/JPH0340047A/ja
Publication of JPH0567976B2 publication Critical patent/JPH0567976B2/ja
Granted 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

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、一般的には、マルチプロセッサ環境におけ
るキャッシュに関し、より詳しくは、ダーティである可
能性のあるキャッシュからデータのラインをフェッチす
るための方法に関する。
B、従来の技術 最近の高性能ストアト・プログラム・ディジタル・コン
ピュータは、慣用的に、命令及びデータを主記憶からフ
ェッチし、そのフェッチした命令及びデータをキャッシ
ュに格納するようにしている。キャッシュは、典型的に
は、コンピュータの主記憶よりもはるかに小さくはるか
に高速の局所メモリである。実質的にすべての高性能デ
ィジタル・コンピュータがキャッシュを使用しており、
市販されているマイクロコンピュータでさえ゛も、局所
キャッシュをもつものがある。
キャッシュは、適当なコストで、最近のパイプライン・
プロセッサに適合するアクセス時間により動作する超大
型メモリを構築するのが不可能であるがゆえに、開発さ
れた。しかし、プロセッサに追従することができる、安
価で小型のメモリを構築することは可能である。キャッ
シュ中の命令とそれに必要なデータは、プロセッサによ
って直ちにアクセスすることができるので、キャッシュ
は通常、コンピュータの性能を高速化する。
通常、プロセッサ(cP)は、そのキャッシュを通じて
主記憶(MS)にアクセスする。キャッシュは通常、2
次元アレイとして構成され、そのめいめいのアレイ・エ
ントリが、ラインと呼ばれる、MSデータの固定サイズ
のブロックを含む。
キャッシュのディレクトリが、そのラインのアドレッシ
ング情報を記述する。CPによってアクセスされる命令
またはデータが、ディレクトリ・ルックアップによって
見出された時、そのアクセスは、キャッシュをヒツトし
たと言われる。そうで一 なければ、アクセスは、キャッシュ中で当り損なってい
る。キャッシュの当り損ないが生じると、キャッシュ制
御機能が、要求されたラインをキャッシュ中に移動させ
る要求を発生する。そのラインがキャッシュ中に押入さ
れたとき、それは既存のラインに置き代わることになる
。キャッシュは通常、最も以前に使用されたものを置き
換える(LRU置換)アルゴリズムなどのよく知られた
ある種の置換方策により管理される。キャッシュの設計
に応じて、キャッシュからのラインの置換は、記憶の一
貫性を維持するために、MSに対する置換内容の更新を
要求することがある。
キャッシュは、マルチプロセッサと単一プロセッサのど
ちらでも使用することができる。複数のCPが、共通の
オペレーティング・システム及びメモリを共有する自分
用のキャッシュをもつような緊結合マルチ・プロセッサ
・システムとして知られるタイプのマルチプロセッサ(
MP)システムにおいては、各プロセッサのキャッシュ
が複数のキャッシュで同時にラインに起こっていること
4 を知る必要があるために、余分な問題が惹起される。同
一の主記憶を共有する複数のCPが存在するようなマル
チプロセッサ・システムにおいては、各CPは、アクセ
スが発行された時点でのアーキテクチャ仕様に従うデー
タの最新バージョンを入手する必要がある。この必要条
件により、しばしばキャッシュ・コヒーレンス問題とし
て知られる、キャッシュ間のデータ一貫性を常に監視す
ることが必要になる。
従来技術のマルチプロセッサ・システムではさまざまな
タイプのキャッシュが存在する。1つのタイプのキャッ
シュとしては、米国特許第4142234号に記載され
ているようなストアスルー(ST)キャッシュがある。
そのようなキャッシュは、IBMシステム/370モデ
ル3033MPに採用されている。STキャッシュ・デ
ザインは、常時、主記憶に対するデータの変更を更新す
るため、主記憶(または第2レベルのキャッシュ〉に直
接データを記憶するCPと干渉しないようにするもので
ある。主記憶に対するストアスルーの更新時に、記憶さ
れたキャッシュ・ラインの可能的な遠隔コピーを無効化
するために、適当な相互的無効化処置がとられる。記憶
制御要素(SCE)が、バッファ制御要素の間のMS制
御要求及び標準的通信をキューするために適切なスタッ
クを維持し、SCEが記憶スタック・オーバーフロー状
態を回避する。そして、SCE記憶スタックが一杯にな
った時、それに関連するBCEが、スタック・オーバー
フロー状態がクリアされるまで、そのMS記憶を保持す
ることになる。
別のタイプのキャッシュ・デザインとしてストア・イン
・キャッシュ(S I C)がある。SICは、米国特
許第3735360号に記載されている。SICキャッ
シュ・ディレクトリがまた、米国特許第4394731
号に記載されており、これにおいては、ストア・イン・
キャッシュの各ラインが排他的/読み取り専用(EX/
RO)ビットによって制御されるマルチプロセッサ共有
可能性を有する。STとSICの間の主要な相違点は、
SIC中のすべての記憶が、キャッシュそれ自体に指向
されていることである(このことは、もし記憶されてい
るラインがSICキャッシュ中にあるなら、キャッシュ
当り損ないを生じることになる)。もしコピーが遠隔キ
ャッシュ中にあるなら、フェッチし損ないに際してのデ
ータ転送が、キャッシュを通じてキャッシュ転送バス(
cTC)に行うことができることが、米国特許第450
3497号でも提案されている。このとき、各キャッシ
ュ中のディレクトリのコピーを含むSCEが使用される
。このことは、交差的問い合わせ(X I )の決定を
SCEで解決するすることを可能ならしめる。通常、ラ
インがキャッシュから置き換えられるとき、キャッシュ
・ラインの変更は、主記憶に対してのみ更新される。
RO(読み取り専用)であるキャッシュ・ラインは、読
み取り専用状態でのみ有効である。それらのラインへの
格納は禁止される。ROキャッシュ・ラインは、異なる
キャッシュの間で同時に共有することができる。
EX(排他的)であるキャッシュ・ラインは、有効であ
るが、1つのプロセッサのキャッシュにのみあられれる
。それは、ほかのどの(遠隔)キャッシュにも駐在しな
い。そして、(所有権をもつ〉プロセッサのみがそのラ
インに格納することを許可される。
CH(変更された)であるキャッシュ・ラインは、その
ラインが、有効且つEXであるのみならず、それに格納
がなされた(すなわち、変更された)ことを示唆する。
すなわち、主記憶中のコピーは、最新のものであっては
ならない。CHラインが置き換えられた時、コピーがキ
ャストアウト動作を介して主記憶に送られる。
INVキャッシュ・ラインは、無効であるキャッシュ・
ラインである。
典型的なコンピュータ・システムにおいては、第1のC
PであるPlが、キャッシュ中の1つのラインからの命
令またはデータにアクセスすることがある。そして、そ
のキャッシュがチエツクされ、もしその特定の要求され
たラインが読み取り専用(RO)であるなら、そのプロ
セッサは、格8 納要求を出し、記憶制御要素(SCE>を通じて、その
ラインを排他的(EX)にする。そのラインが一旦排他
的になされると、SCEは他のキャッシュに、そのライ
ンが無効であってその第1のキャッシュがそのラインに
自由に書き込みできることを示唆する。
マルチプロセッサ・キャッシュ環境においては、異なる
プロセッサによる同一データ・ラインの、比較的密なア
クセスの結果として、相互的問い合わせ(XI>の問題
が生じる。例えば、もしあるラインがCP  Piによ
って変更されている時、もしPlによる変更がメモリに
対して更新される前にラインLがメモリからフェッチさ
れるなら、別のCPは、ラインLのダーティなコピーを
フェッチすることがある。
尚、説明の便宜上、以下では、N個のCP (Pill
≦i≦N)があり、各Pl毎に個別のCiがあるような
マルチプロセッサ・システムが考慮される。さらに説明
の便宜上、共有主記憶が個別のキャッシュよりも上位に
あるようなメモリ階層が想定される。
STキャッシュ・デザインに係わる主要な問題として、
システム中の全てのCPによって発生されるトラフィッ
クがある。しかし、将来のMPシステムの傾向は、全て
のプロセッサ間の高性能共有記憶の可用性である。その
ような高速共有記憶の例として、共有された第2レベル
のキャッシュ(L2)がある。そのような高性能共有記
憶を設けることにより、より多くのCPをサポートしつ
つSTキャッシュでMPシステムを実現することが魅力
的になっている。しかし、STデザインに関連する別の
問題は、米国特許第4142234号に示されているよ
うなSCE問題に係わる記憶のビジー・ハンドシェーキ
ングである。そのようなデザインにおいては、CPによ
って格納されつつあるデータ項目を、そのCPがSCE
から格納の承認を受は取るまで、そのCPがフェッチす
ることができない、ということがある。そのようなビジ
ー・ハンドシェークは、プロセッサのパイプライン動作
を低下させるばかりか、複数のCPが存在するとき、S
CEが全ての記憶動作を直列化するのを困難にもする。
STデザインのための、ビジー記憶ハンドシェーク問題
に対する、知られている1つの技法として、SICデザ
インからのEX/RO状態を採用することがある。ここ
で、任意の時点で、キャッシュ・ラインが、INV、R
OまたはEXという3つの状態のどれかをもつようなス
トアスルー・キャッシュMP環境を考慮してみよう。こ
のとき、INVは無効を表し、ROは、2つ以」−のC
Pからラインの異なるコピーを同時にアクセスする可能
性を示す。EXは、別のキャッシュがアクセスのための
そのラインのコピーをもたない、ということを保証する
。このマルチプロセッサ・キャッシュ・スキームの典型
的な動作は、次の通りである。すなわち、ライン上のフ
ェッチの際、そのラインが(特定の瞬間または特定のキ
ャッシュ・スキームに応じて)ROまたはEX″aBで
搬入される。しかし、格納がそのライン上で要求された
時、システムは、そのラインに格納ができるようにな1
− る前にそのラインに対するEX状態を保i1[するべき
である。このEX状態の保証には、別のキャッシュから
のそのラインのコピーを無効化するためにXI動作が関
与することがある。例えば、Plがその局所キャッシュ
でROに保持されているライン上に書き込みを行う時、
そのバッファ制御要素(BCE)は、その書き込みをキ
ャッシュ中に行ってしまうことができるようになる荊に
、LのためにEX状態を要求する。例えば、米国特許第
4394731号及び第4503497号に記載されて
いるようなMPシステムにおいては、キャッシュは、デ
ータのコヒーレンスを保証するためにEX状態が獲得さ
れるまで、後のアクセスからブロックされる。あるMP
デザインにおいては、EX状況要求に際してのキャッシ
ュ・アクセスのそのような保持は、重大な性能上の不利
を招くものである。より慣用的なMPデザインにおいて
、BCEがラインのEX状況を待っている時に、CPで
後のキャッシュ・アクセスを禁止する主要な理由は、遠
隔CPからの格納無効化によって、そ12 の後のフェッチが陳腐化するかもしれない、という配慮
による。例えば、CPでの〈−・Ii ・・・Ij>と
いう命令ストリームを考慮してみよう。
Iiがライン上のEX状況要求をトリガし、Ijが、E
XがLのために獲得される前にダブルワードAをフェッ
チすると仮定する。もし、Iiからの格納のためにEX
状況が獲得される時までに、Aを含むラインが遠隔プロ
セッサからの格納によって無効化されるならば、Ijの
実行が、Aのアクセスによってアーキテクチャ規則違反
を生じることがある。作業負荷分析から、EX状況が十
分迅速に獲得できるような典型的なデザインの場合、E
X状況獲得のウィンドウの間にCPが遠隔的に無効化さ
れたデータを使用する機会はかなり小さいことが観察さ
れた。その結果、CPがラインのEX状況を獲得しつつ
ある間にキャッシュがアクセスするのを禁止することが
、不必要且つ非生産的にCPの実行を保持することは極
めてありそうなことである。
最近のプロセッサ・デザインにおける別の知られている
技法として、分岐予測に基づく条件付き命令実行がある
。そのようなデザインによれば、分岐命令発生の予測に
基づき、デコード及び実行のために命令ストリームがフ
ェッチされる。誤った予測に基づき命令が不正に開始さ
れる場合、それらは後で取り消される。命令の確認の前
に、完了時の最終リリースのために、条件付分岐から生
じるストア要求が、保留ストア・スタック(PSS)に
格納される。命令の終了と、保留ストアのリリースとは
、ともに、アーキテクチャ・シーケンスの順序に従い実
行されるが、命令は、完了の前に、入来シーケンスから
外れて実行されることがある。条件付命令ストリームが
取り消された時、関連する全ての命令キューとPSS中
の保留ストアは、適切にリセットされる。
しかし、予想的される後のデータ・アクセスを通じて、
EX状況獲得によってもたらされる遅延を最小限にとど
めることに指向された技術は存在しない。MPキャッシ
ュ・デザインの既知の方法はすべて、保留のEX状況要
求がないときのみ、CPにキャッシュ・ラインにアクセ
スすることを許容する。すると、先行いるEX状況要求
が完了するまで、CPキャッシュは、それに対するアク
セスを禁止されるのである。
C0発明が解決しようとする課題 本発明の目的は、EX状況獲得による性能の問題を克服
するためしこ、キャッシュ・ラインを早期にフェッチす
るための方法を提供することにある。
本発明の別の目的は、命令の実行の不必要な遅延を回避
することにある。
本発明のさらに別の目的は、有効性の決定の前にキャッ
シュ・ラインを使用することを可能ならしめることにあ
る。
01課題を解決するための手段 本発明に従えば、EX状況要求が完了する前に、CPが
そのキャッシュにアクセスする能力が与えられる。その
結果、比較的希なケースで、EX状況獲得の際にCPに
よってアクセスされるラインがダーティであることが分
かり、適切な命令のバックアップをもたらすことがある
。このことは、15 EX状況要求に関連するCP実行の殆どの混乱を回避す
るがゆえに、性能に著しい利点をもたらす。
この発明は、STキャッシュ・デザインと、EX/RO
状態によるSICタイプのキャッシュ・コヒーレンス管
理をもつMPシステムを利用する。
また、比較的高速の主記憶及び共有されたL2が想定さ
れている。EX要求状況が生じると、CPがROライン
のための要求されたEX状況を受信する前に、オペラン
ド・データのフェッチまたは使用が許容される。そのよ
うなEX状況が獲得される前は、以下のどのようなオペ
ランド・アクセスも無効と判断される。CPによって不
確かな有効性をもつラインが使用される時はいつでも、
そのラインの有効性に依存する命令の実行結果は、その
有効性が認証されるまでは外部に委ねられるべきではな
い。
EX状況獲得に際して条件付でフェッチされたオペラン
ドの有効性をBCEが決定する方法は、遠隔無効信号を
関しすることを通じてである。条件付でフェッチされた
オペランドは、局所CPか6− らのEX状況が解決される前にそれが遠隔的に11((
効化されたキャッシュ・ラインによってカバーされてい
るなら、ダーティであると考慮される。CPのBCEは
、条件付実行の状況と、条件付フェーズの間に発行され
たオペランド・フェッチを記憶しているべきである。
するCPIO乃至13によって独占的に使用される全て
のプロセッサ・キャッシュ制御をもつプロセッサ・スト
アスルー(ST)キャッシュを有する。CPは一般的に
は、オペランドによって要求されるダブルワード(DW
)毎にフェッチまたはストア・コマンドを発行する。I
Eユニットからのストア要求のうちのいくつかのために
、ダブルワード内のデータの連続的な部分を記述するこ
とができる。例えば、バイトへのストアをBCEに要求
することができる。そのようなダブルワードの部分集合
に対するストアは、部分的(DW)ストアと呼ばれる。
もしDWを含むキャッシュ・ラインがPD中にあるなら
、それはキャッシュ・ヒツト状況と呼ばれ、DWは、そ
のコマンドに従いキャッシュ中にストアまたはフェッチ
される。たまたま要求されたDWがキャッシュ中にない
と、それは、キャッシュの当するCPIO乃至13によ
って独占的に使用される全てのプロセッサ・キャッシュ
制御をもつプロセッサ・ストアスルー(ST)キャッシ
ュを有する。CPは一般的には、オペランドによって要
求されるダブルワード(DW〉毎にフェッチまたはスト
ア・コマンドを発行する。IEユニットからのストア要
求のうちのいくつかのために、ダブルワード内のデータ
の連続的な部分を記述することができる。例えば、バイ
トへのストアをBCEに要求することができる。
そのようなダブルワードの部分集合に対するストアは、
部分的(DW)ストアと呼ばれる。もしDWを含むキャ
ッシュ・ラインがPD中にあるなら、それはキャッシュ
・ヒツト状況と呼ばれ、DWは、そのコマンドに従いキ
ャッシュ中にストアまたはフェッチされる。たまたま要
求されたDWがキャッシュ中にないと、それは、キャッ
シュの当り損ない(キャッシュ・ミス)をもたらす。
IEフェッチ−コマンドを完了することができるように
なる前に、DWを含むラインは先ず主記憶からキャッシ
ュヘフェッチされていなくてはならない。これを行うた
めに、BCEが対応するフェッチ・ミス・コマンドを発
生し、これは、記憶制御ユニット(SCE)30に、I
Eによって主記憶50から要求されたDWをもつデータ
のライン単位を入手するように要求する。このライン単
位は、主記憶50中のライン境界にあるが、要求された
DWは、見失われたラインの転送の完了にIE要求が先
行するようにしておくために、要求元のBCE20乃至
23に戻されるべき、フェッチされたライン中の最初の
DWとなる。
この特定の実施例では、IEは、常にそのラインをキャ
ッシュに駐在させるように要求されている訳ではない。
IBM/370モデル3033システムのストア・スル
ー・キャッシュ・デザインにおいては、もし命令を発行
するCPのためのキャッシュ中にそのラインが見出され
なかったならば、IEユニットからのストアは直接主記
憶に送9 ることかできる。そのようにすることの1つの欠点は、
主記憶の83M60乃至67で部分マージ機能が必要と
なることである。例えば、ストアが、DWベースで発生
されたエラー訂正コード(FCC)とともに主記憶50
に格納されると仮定する。
すると、主記憶50での部分的ダブルワード・ストアに
は、それを主記憶アレイに格納することができるように
なる前にデータのマージを通じてECCを再生すること
が必要である。この実施例においては、すべての部分的
マージがキャッシュ制御で行なわれると仮定されている
。それゆえ、部分的DWストアは常に、ラインを、発行
元のCPに在駐ことを要求することになる。しかし、I
EからのDW全全体ストアは、もしラインがCPキャッ
シュ中にないなら、ライン・ミスフェッチを引き起こす
ことなく主記憶への格納のため5CE30に送ってもよ
い。いかなる場合でも、ストアがBCEに送られる時そ
のストアがキャッシュに入れられるかどうかについての
MSONLYビットをIEがセットする、と仮定されて
いる。
2O− SCE30は、CPIO乃至13と主記憶50へ接続さ
れている。主記憶50は、複数の基本的記憶モジュール
(BSM)コントローラB5C0乃至B5C5(参照番
号51乃至54が割当てられている〉からなり、各記憶
制御コントローラ(BSC)51乃至54には、BSM
O(参照番号60.62.64及び6Gが割当てられて
いる)とB5Cl (参照番号61.63.65及び6
7が割当てられている)が接続されている。4つのB5
C51乃至54は、それぞれ5CE30に接続されてい
る。
5CE30は、4つのコピー・ディレクトリ(cD)3
1.32.33及び34を含む。各CDは、米国特許第
4394731号に記載されているのと同様の様式でB
CEのうちの1つの対応するプロセッサ・キャッシュ・
ディレクトリ(PD)の内容の写しを含む。PDとCD
はともに、論理アドレスからの同一のビット位置によっ
てアドレスされる。CDはすべての相互的問い合わせ(
X I )要求を処理し、以てよりよくその個々のCP
にサービスすることができる。主記憶中の各BSM80
乃至67と各SCEボートの間には、各5CE30から
各CP及びI10チャネル・コントローラ・プロセッサ
40までダブルワード幅のデータ・バスが設けられてい
る。そのデータ・バスとともに、制御及びアドレス信号
のための個別のコマンド・バスの組もある。CPがDW
アクセス要求に際してキャッシュ・ミスに遭遇する時、
そのBCE20乃至23は、ミス−コマンドを5CE3
0に送ることによって主記憶に対するライン・アクセス
要求を開始し、5CE30は、次に、主記憶中の要求さ
れた83M60乃至67に対してそのコマンドを再発行
する。BSMのビジー条件の場合、5CE30はその要
求をコマンド・キューに格納し、要求された83M60
乃至67が後で可屈となったときに、それを再発行する
。5CE30はまた、XI論理によってキャッシュ衝突
が見出されたときを除けば、特定のBSMに対するすべ
てのコマンドが先入れ先だしくFIFO)の順序で発行
されるように主記憶コマンドを順序的な様式で順序付け
する。主記憶要求を処理する通常のシーケンスの間は、
5CE30が主記憶の状況を常に監視し、保護キーとす
べてのキャッシュ・ディレクトリの問い合わせ結果を解
析し、現在5CE30に保持されているすべての保留コ
マンドの更新された状況を検査し、BCE20乃至23
中で、5CE30によって受信されるのを待つ新しいB
CEコマンドを探す。
5CE30は、めいめいが対応するCPの16DWまで
の主記憶ストア要求を保持するためのものである、複数
のストア・スタックSSO乃至SS3を維持する。5C
E30は、主記憶アドレス及び有効性の表示のためのス
トア・スタックの十分なディレクトリ情報を維持する。
そして、ストア・スタック30がオーバーフローの危険
を生じる時、BCE20乃至23が5CE30から、ス
トア・スタックの満杯を解消させる信号を後で受は取る
までそれ以上のストア要求の送信を保留するために、5
CE30が優先権要求を関連するBCE20乃至23に
送る。ストア・スタック中の23 データは、各ストア・スタック内の入来順序を維持する
ように適当なスケジューリングにより主記憶に対して更
新される。CPからのライン・フェッチ要求は、SCE
が、そのストア・スタック中のラインに対する既存のす
べてのストアが関連するBSM60乃至67に送られて
しまったことを確認するまで、5CE30によって保留
される。
第2図は、各CP毎のIEユニットにおける命令制御の
背景構成を示す図である。各CPにおけるIEは、条件
付で命令を実行する能力をもつ。
また、必要ではないけれども、分岐予測を採用してもよ
い。ここでは説明の便宜上、条件付実行の唯一の原因が
、BCEがSCEからのライン上のEX状況を待ってい
る時にダーティの可能性があるデータをフェッチするこ
とによる、と単純化して仮定する。しかし、条件付実行
の制御は、分岐予測マシン0ための制御と相当の類似点
を有する。
特に、実行がバックアップされる時、IEユニットは、
マシン状況(レジスタ)を、その実行が開始された時点
までリセットする。16個の半ワー24− ドを含む70個の命令バッファ(IBUF)が存在する
。IBM370アーキテクチャにおいては、各半ワード
(HW)が2バイト長であって、おのおのの命令コード
が1乃至3半ワードの長さであることに留意されたい。
本発明の実施例を単純化するために、シーケンス内の(
in−sequence)直列的実行のみが想定されて
いるけれども、本発明の概念は、シーケンスから外れた
より複雑な実際構成を除外するものではない。命令は、
条件付実行命令を含む命令ストリームにおいて、論理シ
ーケンスに従ってのみ実行される。オペランド・フェッ
チ及びストアは、その論理シーケンスに従ってのみ実行
される。IEユニットは、現在実行された命令が条件付
かどうかを示す単一のフラグ−レジスタCNFLG71
を維持する。IEはまた、レジスタCNIADDR72
を維持する。CNFLG=1である条件付実行フェーズ
のもとでは、CNIADDRが、主記憶からのデータの
条件付フェッチを最初に開始した命令のアドレスを保持
する。
第3図は、BCE (例えば参照番号20)の全体構成
を示す図である。BCEは、変換ルックアサイド・バッ
ファ(TLB)制御81を介して、論理主記憶アクセス
・アドレスを実アドレスに変換するために、変換ルック
アサイド・バッファを維持する。PD82は、プロセッ
サ・キャッシュ・ディレクトリである。キャッシュ・ア
レイ83は、実際のキャッシュ・データを含む。保留ス
トア・スタック(PSS)84は、8つのエントリを含
む。BCE制御は、その瞬間にダーティである可能性が
あるキャッシュ・ライン・フェッチが存在するかどうか
を示すフラグCNPHASE (2ビツト)85を維持
する。CNPHASEが°0Ob(両方のビットがO)
である時、関連するROラインに関して継続中であるス
トア活動が存在しない。CNPHASEが°01°bで
ある時、キャッシュ中のROラインにおける(ダブルワ
ード)ストア配置(putaway)が存在する。CN
PHASEが°11°bに等しい時、キャッシュ中のR
Oラインに対するストア配置が存在するのみならず、早
期の配置ストアがオペランドとしてフェッチされ、これ
は後で無効化されるなら、取り消しされる。BCEはま
た、CN P HA S E≠’oo’bである時にキ
ャッシュ中のROラインに配置された可能性があるデー
タ・ストアのためのダブルワード・アドレスを記録する
アドレス・レジスタR○5TRDW88を維持する。
BCEはまた、IEが条件付でオペランドをフェッチし
たラインの実アドレスを記録する8つのエントリをもつ
スタック・ディレクトリCNFETLN90を維持する
。CN=’l 1°bであるとき、BCEは、SCEか
らライン無効化信号を受は取る際に、条件付フェーズで
ダーティ・データず使用されたかどうかを決定するため
に、CNFETLN90スタックを使用する。BCEは
また、CNFETLN90のオーバーフロー条件を示す
フラグを維持する。ライン・アドレスをCNFETLN
NFET化記録すべきとき、もしそれが既に存在してい
るのでないならば、アドレスがスタックにブツシュされ
る。その押入時点でCNFE27 TLN90が満杯なら、オーバーフロー・フラグがセッ
トされ、押入は行なわれない。さらに、BCEは、後述
するある目的のために、フラグ−ビットMSONLYF
LG (1ビツト)87を維持する。MSONLYFL
G87は初期化されており、正常の環境ではOにとどま
る。第4図は、米国特許第4484267号に記載され
ているものに類似する、BCE内の典型的なキャッシュ
制御80を示す。IEからのフェッチまたはストア要求
アドレス(実または論理的)は、プロセッサ・キャッシ
ュ・ディレクトリ(PD)91からの合同クラスを選択
するために使用される。ここに示されている4路セツト
連想的キヤツシユ・デザインにおいては、選択された合
同クラスから読み出された4つのディレクトリ・エント
リが存在する。
これら4つのPDエントリA乃至りで記録された絶対ラ
イン・アドレスは、アドレス比較手段92で、アドレス
変換機構93から得られた絶対要求アドレスと比較され
る。これらのアドレスは、そのラインがキャッシュ中で
ヒツトし損なっている8− かどうか、または、5ELA、5ELB、5ELC1及
び5ELD信号によって表示される、4つのラインのう
ちのどれにヒツトしているかを決定するために比較され
る。このアドレス比較の結果は、IFユニット及びアレ
イ制御手段の両方に渡される。置換制御手段94は、置
換状況アレイを維持し、必要な時にこれらの状況を更新
し、新しいラインがMSからフェッチされる時に置換さ
れるべきライン・エントリを選択する。PDエントリ書
き込み制御手段は、PDエントリの更新を制御する。D
Wフェッチ要求に対して、PD読み出し及び変換処理と
並列的に、ディレクトリ・アドレス比較92が完了した
時、選択された合同クラス中の4つのDW、A乃至りが
、最近選択アレイ読取制御97のためにそのアレイから
読み出される。制御98による決定に従い、参照番号1
04の箇所でDWデータが必要に応じてIEユニットま
たはMSに読み出される。
米国特許第4394731号に説明されているように、
IEからのDWストアが以前のサイクルの間にストア問
い合わせ(SI)要求に先行されている。このSI要求
は、そのストアが、キー違反、キャッシュ・ミス、EX
状況の欠如などの衝突なしで実行され得ることを確認す
るものである。
SIサイクルの後、実際のDWストアは、もし遅延すべ
き理由が他にないなら、正しいアレイ位置への直接の配
置(putaway)なくIEによって発行することが
できる。この実施例では、IEからBCEへのSI要求
も、関連するDWストアが部分的であるか否かを示唆す
るフラグ・ビットを含むと仮定している。さらにまた、
米国特許第4394731号に説明されているような、
SI要求によってテストされてはいるがそれの実際のス
トアがまだBCEに送られていないようなストアを記録
するために複数のレジスタが使用され、以てIEオペラ
ンド・フェッチ要求が、以前のオーバーラツプするスト
アを見失うことなく適切に保持されるようにした慣用的
な技術も使用されると想定している。
この実施例では、ラインがキャッシュ中で見失おれるか
、またはR○状況を伴って在駐するなら、CP動作は必
ずしも保持されない。EX状況が、関連するストア配置
のために実際に必要である時は、可能なときBCEが条
件付実行フェーズに対処する。アレイ96は、ライン書
込み制御99とアレイ・ストア制御95の制御のもとで
、部分的DW配装の能力によって、ラインまたはDW単
位で更新される。アレイ−ストアのためのデータは、参
照番号103の箇所で、IEまたは主記憶から入来する
。キャッシュにおけるデータ保護のためには、バイト毎
に1つのパリティ−ビットが必要である。
第5A及び第5B図は、それぞれ、PD(110)及び
CD(120)エントリのフォーマットを与える。これ
は、米国特許第4394731号記載のものと類似して
いる。これにおいて、■(116,122>は、そのデ
ィレクトリ・エントリのための有効ビットである。有効
ラインは、もし関連するEXビット(115,121>
が1であるなら排他(EX)状態にあり、そうでない1
− なら読み取り専用(R○)状態にある。
各PDライン・エントリは、さらに、保護キー(PRO
T  KEY)111と、ライン変更(LCCH)ビッ
ト113と、フェッチ保護(FPROT)ビット112
と、ページ変更(PGCH)ビット114を含む。
SCEにおけるCDは、米国特許第4394731号に
説明されているのと同一の様式によって、対応するBC
EにおいてPDに対する鏡像として維持される。CDエ
ントリの内容(EX、V、及びABS  ADDR11
7及び123〉は、状況変更の遷移フェーズの期間を除
いては、対応するPDエントリの内容と同一でなくては
ならない。
ここで、本発明のSTキャッシュ・デザインを使用する
と、キャッシュに対する全てのCPストアがもとに反映
されるので、キャッシュ・ラインがデータを保持してい
るかどうかを示唆する、PDエントリにおけるLN/C
H(ライン変更)フィールド113を主記憶に送るよう
にスケジュールする必要がなくなる、ということに留意
されたい。
2− STデザインを使用すると、BCEからS CIEへの
キャストアウト・コマンドが、米国特IF第43947
31号に記述されるように、SIC中の変更されたライ
ンを、5CE30を通じて主記憶で更新させる。また、
STデザインを使用すると、キャストアウト−コマンド
がDWストア・コマンドで置き換えられ、これによって
、IEストアの際に主記憶の更新のために、BCEがD
Wストア要求を5CE30に送ることになる。BCEに
よってSCEに対するストア要求がなされる時、そのス
トアのためのDW要求はデータ・バスを介して並列的に
送り出されることになる。SCEは、正常の状態で、B
CEがらのストア要求が常にSCEでの関連ストア・ス
タック(SS)に受領されるように、個々のBCEと調
整しなくてはならない。CDを検査することによるSC
Eにおける相互的問い合わせ(XI)処理は、米国特許
第4394731号に記載の処理と同様である。
IEは、やはり米国特許第4394731号に記載され
ているように、EX意図をもつフェッチまたはSl要求
を発行することができる。そのような要求は、要求され
たDWヒツトが、EXビットがオンであるキャッシュ・
ラインにヒツトする時のみ成功裡に完了することができ
る。RO意図をもつフェッチ要求は、Vビットがオンで
ある、キャッシュ中の有効なラインのみを要求するもの
である。キャッシュ・アクセスにおける保護エラー及び
その他の例外は、特別の例外論理によって処理されるこ
とになる。
第6A図には、BCE (例えば参照番号20)におけ
る保留ストア・スタック(PSS)、132が示されて
いる。PSS132は、0乃至7とラベルされた8個の
エントリをもつ環状FIFOキューとして実現されてい
る。各PSSエントリは、IEから発行されるストアの
ためのDWデータを含む。第6B図は、PSSディレク
トリ・エントリ140のフォーマットが示されており、
そこには、サイズがビットで付記されている。各PSS
ディレクトリ・エントリには少なくとも4つのフィール
ドがある。すなわち、絶対(バイト)アドレス・フィー
ルド5TRADDR(31ビツト)144、データ長フ
ィールドLNGT+−1(3ビツト)145.5つのフ
ラグ・ビットCRL S E(1ビツト)141、MS
ONLY (1ビツト)142、RO5TR(1ビツト
)、STRMS(1ビツト)147及びUNCOND 
(1ビツト)148と、ストアされるDWのためのキャ
ッシュ位置を記録するフィールド5TRCOORD14
3である。LNGTHは、(ダブルワード内の)ストア
・データの1乃至8バイトの間を表す。LNGTH中の
3ビツト全てがOであるとき、ストアはダブルワードの
全幅に亙り、そうでないならば、部分的なりWストアを
指定する。CRLSEビットがオンであるとき、DWス
トアは条件付フェーズにあり、主記憶にリリースするこ
とはできない。MSONLY142ビットがPSSエン
トリに対してオンであるとき、ストアが既にキャッシュ
に配置されているか、または、ストアはキャッシュに配
置される必要がない(キャッシュで見失われたラインへ
のDW全全体ストアの場合)か35− のどちらかである。RO3TR146は、現在ROであ
るラインに関連付けられたストアを示す。
STRMS147は、ミス・ライン・フェッチに遭遇す
るストアを示す。UNDOND14Bは、そのストアが
、EX状況が獲得された時のみラインへと配置されるべ
きであることを指定する。
IEユニットからのストアは、必要時に保留ストア・ス
タック(PSS)132に配置することができる。PS
S132が挿入時満杯である場合、IEユニットは、後
のサイクルでPSS上に空きが生じるまで、単にその動
作を保留する。BCEは常に、その時点でPSSが空で
ないなら、ストア配置のために、PSS中の最初のDW
を探す。
PSS中の全てのストアは、入来順に処理される。
IEユニットからのキャッシュ・ストア要求は、MSO
NLY、CRLSE、UNCOND、RO5TR及びS
TRMSという追加的な5ビット信号を含む。これらの
5ビツトの解釈は、PSSのために説明した通りである
。IEからのストア要求がPSS上にキューされた時、
これら5つのビ6− ット及び他の情報は、対応するPSSディレクトリ中に
記録される。
以下の説明では、実行は、特定の構成によって許容され
た適切な点でのみバックアップし再開することができる
、と想定する。IEユニットは、条件付フェーズの間に
ある命令またはデータ・アクセスを保留し、且つあるデ
ータ・ストアの条件付処理を禁止するべくUNCOND
=1フラグを使用するための制御を有する。
任意の時点で、ライン上でRO状況をもつBCEにおけ
るキャッシュへのストア配置は、高々1つしか存在する
ことができない。有得べき実行バックアップのためPS
S上には以前の配置ストアが残っていることがあり、そ
のことは、それ以降の、EX状況が許可される前のスト
アをブロックする目的を果たす。本発明の説明の便宜上
、終了または無条件実行命令のためにPSSから主記憶
へストアがリリースされることを除けば、各BCEは任
意の時点で2つの以上の未解決の要求がSCEに発行さ
れるのを許容しないように要求されるとする。また、以
下の記載は、例外条件の処理を無視するものとする。
第7A及び第7B図は、IEからRO意図をもつフェッ
チ要求(200)を受領した時のBCE処理を示すフロ
ーチャートである。キャッシュ・ミス(204,201
)の場合、BCEは可能な時に、SCEに対してRO意
図をもつミス・フェッチ要求を発行する(ステップ20
2)。もしCNPAHASE85が°01°bまたは°
11°bに等しいなら(201>、CNPAH3E85
が後でクリアされるまで、ミス・フェッチが保持される
ことになる(ステップ203)。IEはアイドルして見
出されなかったDWが主記憶50から到来するのを待つ
。キャッシュ・ヒツトの場合、もしPSS中の現存する
可能なりWストアのどれとも衝突しないなら、そのDW
が遅延なくキャッシュからアクセスされる(ステップ2
05)。そのような衝突の検出は、オペランド・ストア
比較を通じてなされ、これは要求されたフェッチDWを
、PSS中のMSONLY=Oである全ての有効アドレ
スに対して照合するものである。もし一致が見出された
ら衝突が検出され、その場合、衝突条件が解消された後
でフェッチが再発行されることになる。DWフェッチは
、もし衝突がないならキャッシュ・アレイから読み出さ
れる(ステップ211〉。フェッチされたDWが、RO
8TRDW88レジスタに記録されたアドレスにあると
き特殊な状況が生じる(ステップ208)。この場合、
CNPHASE85を°11°bにセットし、BCEの
CNFETLN90スタックをクリアし、CNFETL
Nスタック上のライン・アドレスを記録し、IEユニッ
トにおいてCNFLAG71及び72を適切にセットす
ることによって実行を条件付フェーズに切替ることかで
きる(ステップ209)。CNPHASE≠’oo’b
であるときフェッチされるオペランドをもつ命令は、条
件性であると見なされ、後の可能的バックアップを施さ
れる(ステップ206.207)。CNPHASE=’
ll°bで条件付オペランド・フェッチが実行された時
、ライン・アドレスは、CNFETL9− N90スタツクに記録される(ステップ210)。
第7C図は、IEユニットからEX意図をもつフェッチ
要求を受は取った時のBCE処理のためのフローチャー
トを含む(ステップ220)。もしDWがキャッシュ中
のROラインにヒツトするなら(ステップ221)、B
CEが可能な時にSCHに対してEX状況のための要求
を発生する(ステップ227)。もしそのラインがキャ
ッシュで見当らないなら(ステップ221)、BCEは
可能な時SCEに対してEX意図をもつミス・フェッチ
要求を発行する。そのような5CE9求は、もし条件付
実行が行なわれるなら保留される(ステップ223及び
224〉。もしオペランドとストアの比較の間に保留ス
トアについての衝突が見出されたなら、フェッチは保留
される。もしそのラインがEX状況をもって(ステップ
224)キャッシュ中に在駐するならくステップ221
〉、フェッチが実行され(ステップ224)、アドレス
されたラインは、CNFELNスタックに記録される。
しかし、そのラインがROであるとき、4〇− BCEは、CNPHASE=’OO’bであるときのみ
SCEからEX状況を要求する(ステップ232〉。
この実施例では、IEユニットがBCEに送る各ストア
問い合わせ(SI)要求は余分な信号線5TRHITで
拡張されていると想定する。5TRHIT=1であると
き、そのストアDWをカバーするラインがキャッシュに
あることを要求される。例えば、部分的ストアのための
SI要求は、5TRHITラインを立ち上がらせること
になる。
第7D図は、IEユニットからストア問い合わせ(SI
)要求を受は取ったときのBCE処理のフローチャート
を含む。SI要求に対して、BCEは保護違反がないか
どうかをチエツクする。例えば、BCEがSI要求のた
めのキー違反を検出したとき、ある例外処理が行なわれ
ることになる。
以下では、キャッシュ・ディレクトリ問い合わせのため
の手続きのみが説明される。キャッシュ・ミスが生じる
と(ステップ241)、もしその要求で5TRHITフ
ラグがオフであるなら(ステップ242)、SIが完了
することになる(ステップ243)。もし5TRHIT
フラグが立っているなら、BCEは可能ならSCEに対
してEX意図をもつライン・ミス・フェッチのための要
求をスケジュールする。ミス・フェッチ要求がSCEに
対して発行された時、BCEはまた、その見当らないラ
インが到来していないことを示唆するためにそのフラグ
・ビットSTRMFLGを立ち上げる。そのラインがキ
ャッシュ中でEXであるなら(ステップ250) 、S
I要求が完了する(ステップ251)。そのラインがキ
ャッシュ中でEXであると分かった時(ステップ252
)、BCEは、SCEに対してEX状態へのアップグレ
ードの要求を発行することが可能になるまでその要求を
保留する(ステップ254)。EXへのアップグレード
要求がSCEに送られた時、BCEにおけるフラグRO
3TREX89もOにセットされ、これは発行されたE
X状況が許可されていないことを示唆する。いかなる場
合にも、発行元IEユニットに対するBCE応答は、キ
ャッシュ・ミスまたはR○ライン・ヒツトが関与してい
るかどうかを表示するタグを含んでいるべきである。キ
ャッシュ中にSIラインが見出される時、IEはまた、
BCEからキャッシュ座標を受は取る。IEユニットは
次に、BCE応答に基づき、実際のDWストアについて
の決定を行う。尚、ステップ245では、STRMSF
LG86がターンオフされる時、もしSTRMSFLG
=1ならそれがOになるまでBCEが保留となることに
留意されたい。同様に、ROSTREX89がターンオ
フされる時(ステップ254) 、BCEはRO3TR
EX89がOになるまで保留となる。
第7E図は、■Eユニットからのストア要求が優先権を
得る時のBCE処理のためのフローチャートを含む。I
Eからのストアは、関連する以前のSI!求によって決
定されるフラグ・ビットMSONLY、’STRMS及
びRO3TRに加えて、IE自体によって決定されるフ
ラグ・ビットCRLSE及びUNCONDをもつ。ここ
では、IEユニットが無条件ストア(UNCOND=1
)を3 発行する時、IEユニットは、そのストアが保留される
唯一の状況はそのストアが何時ROラインになるか(R
O3TR=1)であり、そのEX状況がSCEによって
許可されていないことを保証する。条件付実行の場合、
CNPAH3E=’11°bの場合(ステップ261)
、もし可能ならDWストアが(cRLSE=’l 1°
bとして)PSS上に配置される。PSSが満杯のとき
(ステップ263) 、そのストアは、PSSが可屈な
空きをもつようになるまで保留される。CNPHASE
≠゛11°bときのストア要求に対して(ステップ26
4) 、BCEはもし、さらに別の保留ストアがあるな
らPSS上にDWストアをキューしようと試み、もしP
SSが満杯ならそのストアは保留されることになる。C
NPHASE≠°11゜bである時PSSが空の場合、
BCEは、第7E図に記述されているようなストア配置
動作を実行しようと試みる。
第7E図において、BCEは先ず、そのストアはキャッ
シュ・アレイに配置する必要があるかど4− うかを調べるために判断する(ステップ270)。
もしMSONLY=0且っMSONLYFLG=Oでキ
ャッシュ配置の必要性が示唆されるなら、BCEは、そ
のストアにキャッシュ・ラインのヒツトし損ないが関与
しているがどうかをチエツクする(ステップ271)。
もしそうなら、そのストア要求に対してSTRMS=1
の時に、且つそのラインがキャッシュにまだ到来してい
ないならば(ステップ277) 、そのラインが入った
時に配置のためそのストアがPSS上に保持される(ス
テップ278〉。もしそのストア要求にはヒツトし損な
いがないなら(ステップ217)、RO6TRビットが
ROラインへのストアの条件についてテストされる(ス
テップ272)。もしRO3TR=1でRO3TREX
=Oなら(ステップ273) 、EX状況はそのライン
上で許可されておらず、そのストアがキャッシュ−アレ
イ中に配置されると同時に、ストア要求が無条件的であ
る時(UNCOND=1、ステップ275)を除きその
ストアがPSS上にキューされる(ステップ276)。
もしそのストアがROクライン中配置されるなら(ステ
ップ281)、CNPHASE85が′01bにセット
され、MSONLYビットが1にセットされる。無条件
ストア要求(UNCOND=1)は、ROクライン中は
ストアされず、その代わりにPSS84上で保留される
(ステップ281〉。もし要求されたストアがEXライ
ンへの配置の準備完了なら、DWがキャッシュに入れら
れ(ステップ279) 、BCEが、主記憶更新のため
にそのDWをSCEストア・スタックに送ることができ
るかどうかをチエツクする(ステップ280)。もしそ
のDWをSCEストア・スタックに送ることができない
なら、そのDWは、それを主記憶に送ることができるよ
うになるまで、MSONLYビットをオンにしてPSs
上で保留される。そのストア要求が当初MSONLY=
1をもつ場合(ステップ281)、BCEは可能ならそ
のストア要求を主記憶に送りさえすればよい(ステップ
282〉。
SCEがCPiからDWストア要求を受は取る時、その
要求は単にSCEのストア・スタックSSi上にキュー
される。SCEは可能な時、そのストア・スタックから
主記憶にDWストアを常に更新する。
DWストア要求以外に、SCEは、BCEから3つの主
要な要求を受は取ることがある。RO意図をもつミス・
フェッチは、RO状態で以て主記憶からキャッシュ・ラ
イン転送を要求する。EX意図をもつミス・フェッチは
、EX状況で以て主記憶からライン転送を要求する。第
3の要求タイプは、R○状態で以てBCEに既に在駐す
るキャッシュ・ラインのためにEX状況のみを要求する
EX状況へのアップグレードである。慣用的なSCEデ
ザイン・スキームの多くは、この実施例に適用可能であ
ろう。その例として、米国特許第4394731号に記
載されているSCEデザインがある。また、BCEから
のミス・フェッチ要求の場合、SCEが必要な動作を実
行し最終的に要求された状態(ROまたはEX)をもつ
ラインを7− 戻す、と想定する。BCEからEX状況要求へのアップ
グレードの場合、SCEは最終的に、BCEに要求され
たEX状況の許可を通知することになる。しかし、SC
Eデザインは本出願の主要な関心事項ではないので、S
CE動作のための詳細な手続きはここでは示さない。
CPのBCEは、SCEから、(ROまたはEX状況を
もつ)受信ライン、CERO(ラインのEXからRO状
況への変更)、及びライン無効化、という3つの主要な
信号を受は取り得る。
SCEからの受信ライン信号の場合、BCE処理は全く
標準的である。すなわち、BCEは入来データ・ライン
に対して準備完了となる。そのラインのディレクトリ・
エントリは、要求された状況(ROまたはEX)により
有効化される。典型的なデザインにおいては、データは
、サイクル毎にダブルワードでキャッシュに到来する。
受信される最初のDWは、通常、キャッシュ・ミスの際
にIEによって要求されるものであり、もしそれがフェ
ッチ・ミスなら実行の再開のためにIEユ48− ニットにバイパスされる。そのデータが来る直前に、B
CEはSTRMSFLG87フラグをターンオフするこ
とがあり、そのことは、キャッシュに自由にアクセスで
きるときに、ストアーミスの処理を可能ならしめる。
ここで、STRMSFLG87は、キャッシュ・ミスが
SCEに発行される時にSI処理の間にBCEによって
ターンオンされ(ステップ245、第7C図)、BCE
がSTRMS=1をもつストア要求を処理する時テスト
される(ステップ217、第7E図)ことを思い出され
たい。
第8A図は、SCEからCERO要求を受信するときの
BCE動作を記述するものである(ステップ290)。
もしそのラインがキャッシュにないか、キャッシュ中で
ROであるなら(ステップ291)、BCEはSCEに
完了を報告する(ステップ296)。もしそのラインが
まだキャッシュ中でEXであるなら、BCEは、CER
O処理を完了する前にすべての可能な保留効果を一掃す
る必要がある。CEROが処理される前に、BCEは、
SI要求の後すべてのストアがIEによって発行された
ことを確認する。SI要求をもち完了されたストアは最
初にPSSに対して発行されるべきである。BCEは次
に、PSS上の無条件ストア(cRLSE=O)との衝
突があるかどうかをチエツクする(ステップ292)。
衝突とは、CEROラインによってカバーされるDWア
ドレスとストアの一致のことである。そのような衝突す
る保留ストアはすべて、主記憶が適切に更新されるよう
にするために、最初にSCEに対して発行されるべきで
ある(ステップ293)。次にBCEは、PSS上で保
留状態にある条件付ストア(cRLSE=1)と衝突が
ないかどうかチエツクしくステップ294) 、もしそ
のような衝突が見付かると(ステップ295) 、全て
の条件付実行を打消しさせる。もし条件付保留ストアと
の衝突が見出されなかったなら、BCEはCNFETL
N90スタックを通じて、条件付実行中のオペランド・
フェッチとの可能的な衝突をチエツクする。その衝突は
、CNFETLN90がオーバーフローした時、または
CNFETLN90NFET中の有効エントリとのCE
ROライン・アドレスとの一致が存在する時に決定され
、その場合、すべての条件付実行は、5CEIJ<CE
RO処理を完了を通知される前に、全ての条件付実行が
取り消されるべきである(ステップ295)。尚、CN
FETLN90スタックは、CN P HA S E≠
゛11°bである無条件実行フェーズの間は、常に空に
維持されることに留意されたい。
BCEが条件付実行を取り止める時、BCEは、(cR
LSE=1)であるPSS84上の全ての条件付ストア
をクリアする。BCEはまた、CNFETLN90スタ
ックをもクリアする。BCEは、IEユニットに、バッ
クアップ点(cNIADDR72レジスタに記録されて
いる命令アドレスの点)での再実行開始のために実行状
況をリセットし、CNFL′G71をOにリセットする
ように通知する。
第8B図及び第8C図は、5CE300からライン無効
化要求を受は取った時のBCE動作を示51− す。このBCE処理は、もしそのラインがキャッシュ中
にないなら(ステップ301)直ちに完了する(ステッ
プ302)。そうでないなら、BCEは、第8A図に示
すように、最初に、PSS上の無条件ストアとの全ての
衝突をクリアする(ステップ303及び304)。次に
そのディレクトリ中のライン・エントリが無効化される
(ステップ305〉。CNPHASE−“oo’bの場
合、すなわちROライン中にストアがなされていない場
合、BCEは、そのラインがキャッシュ中でEXかどう
かを判断する(ステップ312)。もしそのラインがE
Xであるなら無効化処理が完了し、BCEはSCEにそ
のEXラインの無効化の完了を通知する(ステップ31
3)。そのラインがROである場合(ステップ312)
、BCEは、無効化されつつあるラインのためにSCE
に送出されたEX状況に対するアップグレード要求が既
にあるかどうかを決定する(ステップ314)。もしそ
うなら、BCEは、SCEに対してEχ意図をもつ要求
ライン・フェッチを求める要求を発行52 することによって無効化処理を完了する(このような状
況では、このBCEがら以前に発行されたRO状況から
EXへのアップグレードを求めるもとの要求が自動的に
棄却されるものと想定されている)。もしCNPHAS
E=’l 1°bであるなら(ステップ307) 、こ
れは条件付実行の存在を示唆するので、BCEはPSS
上の条件付ストア(cRLSE=1)及びCNFETL
N90の内容との衝突をチエツクする(ステップ308
〉。
衝突が見付かると、全ての条件付実行が取り消されるこ
とになる(ステップ309)。いかなる場合にも、もし
CNPHASE≠’oo’bなら、BCEは、ROST
RDW88レジスタ中のアドレスとの比較を行うことに
よって、ストアされたROラインの無効化の可能性をチ
エツクする(ステップ310)。そしてもし一致が見出
されたなら、BCEはSCEに対してEX意図をもつラ
イン・フェッチ要求を発行する必要がある(ステップ3
11)。その場合、フェッチされたラインは、もとの無
効化されたキャッシュ・エントリ中に配置されることに
なる。また、BCEは、MSONLYFLG87をOに
セットし、STRMSFLGを1にセットする(ステッ
プ311〉。MSONLYFLG=Oにセットすること
は、もともとROライン中に配置されたDWストアを、
後で、新しくフェッチされたEXライン中に配置するこ
とを可能ならしめる。ここで、第7E図において、スト
アがキャッシュに配置される時(ステップ279)MS
ONLYFLG87がOにリセットされ、ストアがRO
ライン中に配置される時(ステップ276)MSONL
YFLGが1にセットされ、ストアのキャッシュ配置の
必要性のチエツクは、MSONLYL42とMSONL
YFLG87がともにOであるかどうがをチエツクする
ことによって行なわれる(ステップ270.第7E図)
ことを思い出されたい。STRMSFLG=1にセット
することは、EXラインがSCEから入来するときの通
常のストア・キャッシュ・ミス処理と同様にしてDWス
トアをキャッシュ中に配置することを可能ならしめる。
実行の再開には、特定の構成に従い、マシン状態を適切
に再開させることが関与する。その1つの簡単な技術は
、IEが、条件付実行の前に1)SW及びGPRのよう
なマシン状態をコピーするようにすることである。特定
の構成に従い、命令の実行のバックアップまたはシステ
ム回復の完了が望ましくなくなる時に条件付実行を保留
または取り消すことが恩恵をもたらすことがある。例え
ば、デザインにより、比較及びスワップ(cS)のよう
な直列化命令に対する条件付実行が禁止されることがあ
る。その極端な場合、デザインはいかなる条件付実行も
行わず、ストアをROラインに前以て配置することだけ
を許容しくCNI)HASE=’oo’bのとき)、あ
るいはROSTRDW88レジスタ中に記録されたアド
レスにおけるDWに対して最初のフェッチのみを許容す
る(cNPAH5E=’01°b)。
BCEが条件付実行の間にダーティである可能性のある
オペランド・フェッチを監視するために記述された機構
は、CNFETLN90NFET−55= 上にライン・アドレスを記録することを通じてのもので
ある。しかし、CNFETLN90NFET上にはライ
ン・アドレス全体を記録することは必要ではない。例え
ば、ある部分アドレス・ビットを使用してもよい。また
、特殊なCNFETBITビットを各キャッシュ・ライ
ン・エントリ毎に関連付けることによって、BCEがオ
ペランド・フェッチの履歴を記録することも可能である
。条件付実行フェーズの間に、あるラインに対するオペ
ランド・フェッチは、対応するCNFETBITのター
ンオンをもたらすことになる。そして、条件付実行フェ
ーズが終わった時、全てのCNFETBITはターンオ
フされる。このデザインの場合、ステップ294(第8
A図)及びステップ308(第8B図〉は、第9図のス
テップ320の処理と置換される。
尚、この実施例の説明は、条件付実行はバックアップす
ることができ、その命令レベルでのみ再開することがで
きると想定した。しかし、より込み入ったデザインでは
、もし多重フェッチ及びオー56− ベランドに関与するある命令の実行の途中の間にマシン
実行状態をバックアップするための適当な機構が設けら
れるなら、この想定は緩和することができる。
また、この発明は、RO及びEX状態をもつMPキャッ
シュ・デザインの脈絡で説明されてきたが、同様の概念
と技術は、前以でのデータ・ストアの配置、及び前以て
のオペランド・フェッチを許容するためのEX/RO状
態をもたないストアスルーMPキャッシュにも適用する
ことができる。
さらに、この発明の技術は、EX状況獲得によるプロセ
ッサ遅延を低減するためのストアイン・キャッシュ・デ
ザインにも適用することができる。
10発明の詳細 な説明したように、本発明に従えば、EX状況要求が完
了する前に、プロセッサがそのキャッシュにアクセスす
る能力が与えられる。
【図面の簡単な説明】
第1図は、本発明が適用されるマルチプロセッサ・シス
テムの概要図、 第2図は、IEユニットにおける命令制御の背景的な構
成を示す図、 第3図は、BCEの全体的な構成を示す図、第4図は、
BCE内の典型的なキャッシュ制御の構成を示す図、 第5A及び第5B図は、それぞれ、プロセッサディレク
トリ・エントリと、キャッシュ・ディレクトリ・エント
リのフォーマットを示す図、第5C図は、プロセッサ・
ディレクトリ・エントリの変更されたフォーマットを示
す図、第6A図は、BCEにおける保留ストア・スタッ
クを示す図、 第6B図は、保留ストア・スタック・ディレクトリ・エ
ントリのフォーマットを示す図、第7A及び第7B図は
、IEユニットからROの意図をもつフェッチ要求を受
は取ったときに、BCE処理を行うためのフローチャー
ト、第7C図は、IEユニットがらEXの意図をもつフ
ェッチ要求を受は取ったときに、BCE処理を行うため
のフローチャート、 第7D図は、IEユニットからストア問い合わせ(SI
)要求を受は取ったときに、BCE処理を行うためのフ
ローチャート、 第7E及び第7F図は、IEユニットからのストア要求
が優先権を受は取ったときに、BCE処理を行うための
フローチャート、 第8A図は、S”CEからCERO要求を受は取ったと
きのBCE動作を記述するフローチャート、第8A及び
第8B図は、SCEからライン無効化要求を受は取った
ときの、BCE動作を示す図、第9図は、条件付実行の
間に、BCEがダーティの可能性があるオペランド・フ
ェッチを監視するための別の方法を示す図である。

Claims (1)

  1. 【特許請求の範囲】 めいめいが局所キャッシュをもつ複数のプロセッサと、
    主記憶と、キャッシュ・ラインの読み書き制御を行うた
    めの記憶制御要素をもつマルチプロセッサ・システムに
    おいて、非排他的キャッシュ・ラインにストアするため
    の方法であって、 (a)上記非排他的ラインにストアする段階と、 (b)以後の命令の処理を継続する段階と、 (c)現在の命令と、そのデコードと実行が現在の命令
    の結果に依存するような以後の命令または、現在の命令
    の処理が解決されるまでオペランド・フェッチを必要と
    するような以後の命令の結果を保持する段階と、 (d)上記段階(a)と同時に、上記ラインのために排
    他的状態を要求する段階と、 (e)上記プロセッサにおける先行するストアの解決以
    前にフエッチされた相互問い合わせ無効化されたデータ
    を使用する命令を無効にして、該無効化された命令を再
    実行する段階を有する、 キャッシュ・ライン・ストア方法。
JP1328623A 1988-12-23 1989-12-20 キヤツシユ・ライン・ストア方法 Granted JPH0340047A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US289659 1988-12-23
US07/289,659 US5016168A (en) 1988-12-23 1988-12-23 Method for storing into non-exclusive cache lines in multiprocessor systems

Publications (2)

Publication Number Publication Date
JPH0340047A true JPH0340047A (ja) 1991-02-20
JPH0567976B2 JPH0567976B2 (ja) 1993-09-28

Family

ID=23112511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1328623A Granted JPH0340047A (ja) 1988-12-23 1989-12-20 キヤツシユ・ライン・ストア方法

Country Status (4)

Country Link
US (1) US5016168A (ja)
EP (1) EP0374370B1 (ja)
JP (1) JPH0340047A (ja)
DE (1) DE68926878T2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214766A (en) * 1989-04-28 1993-05-25 International Business Machines Corporation Data prefetching based on store information in multi-processor caches
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5291442A (en) * 1990-10-31 1994-03-01 International Business Machines Corporation Method and apparatus for dynamic cache line sectoring in multiprocessor systems
JP2788836B2 (ja) * 1992-05-15 1998-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータシステム
US5699538A (en) * 1994-12-09 1997-12-16 International Business Machines Corporation Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US5924121A (en) * 1996-12-23 1999-07-13 International Business Machines Corporation Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles
US6260117B1 (en) * 1997-09-18 2001-07-10 International Business Machines Corporation Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JP2002287997A (ja) * 2001-03-23 2002-10-04 Kinji Mori 多重系処理方法
US8244983B2 (en) * 2006-10-30 2012-08-14 Hewlett-Packard Development Company, L.P. Memory control systems with directory caches and methods for operation thereof
US9075727B2 (en) * 2012-06-14 2015-07-07 International Business Machines Corporation Reducing penalties for cache accessing operations
US11188379B2 (en) * 2018-09-21 2021-11-30 International Business Machines Corporation Thermal capacity optimization for maximized single core performance

Family Cites Families (5)

* 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
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US4925225A (en) * 1989-06-19 1990-05-15 Dost Incorporated Vacuum lifting device for handling sheet material

Also Published As

Publication number Publication date
DE68926878T2 (de) 1997-02-06
EP0374370A3 (en) 1991-07-17
EP0374370B1 (en) 1996-07-24
DE68926878D1 (de) 1996-08-29
EP0374370A2 (en) 1990-06-27
US5016168A (en) 1991-05-14
JPH0567976B2 (ja) 1993-09-28

Similar Documents

Publication Publication Date Title
US11803486B2 (en) Write merging on stores with different privilege levels
US6704841B2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
US20180011748A1 (en) Post-retire scheme for tracking tentative accesses during transactional execution
JP3644959B2 (ja) マイクロプロセッサシステム
EP0372201B1 (en) Method for fetching potentially dirty data in multiprocessor systems
US20080005504A1 (en) Global overflow method for virtualized transactional memory
US5893921A (en) Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
EP0514024B1 (en) Method and apparatus for an improved memory architecture
US20020199066A1 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
EP1782184B1 (en) Selectively performing fetches for store operations during speculative execution
JPH0340047A (ja) キヤツシユ・ライン・ストア方法
WO2005121970A1 (en) Title: system and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US5829029A (en) Private cache miss and access management in a multiprocessor system with shared memory
US6976128B1 (en) Cache flush system and method
US6973541B1 (en) System and method for initializing memory within a data processing system
IE901514A1 (en) Method and apparatus for interfacing a system control unit¹for a multiprocessor system with the central processing¹units