JPH0567976B2 - - Google Patents

Info

Publication number
JPH0567976B2
JPH0567976B2 JP1328623A JP32862389A JPH0567976B2 JP H0567976 B2 JPH0567976 B2 JP H0567976B2 JP 1328623 A JP1328623 A JP 1328623A JP 32862389 A JP32862389 A JP 32862389A JP H0567976 B2 JPH0567976 B2 JP H0567976B2
Authority
JP
Japan
Prior art keywords
cache
line
store
bce
sce
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
JP1328623A
Other languages
English (en)
Other versions
JPH0340047A (ja
Inventor
Ryuu Riishiingu
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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/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)

Description

【発明の詳細な説明】 A 産業上の利用分野 この発明は、一般的には、マルチプロセツサ環
境におけるキヤツシユに関し、より詳しくは、ダ
ーテイである可能性のあるキヤツシユからデータ
のラインをフエツチするための方法に関する。
B 従来の技術 最近の高性能ストアド・プログラム・デイジタ
ル・コンピユータは、慣用的に、命令及びデータ
を主記憶からフエツチし、そのフエツチした命令
及びデータをキヤツシユに格納するようにしてい
る。キヤツシユは、典型的には、コンピユータの
主記憶よりもはるかに小さくはるかに高速の局所
メモリである。実質的にすべての高性能デイジタ
ル・コンピユータがキヤツシユを使用しており、
市販されているマイクロコンピユータでさえも、
局所キヤツシユをもつものがある。
キヤツシユは、適当なコストで、最近のパイプ
ライン・プロセツサに適合するアクセス時間によ
り動作する超大型メモリを構築するのが不可能で
あるがゆえに、開発された。しかし、プロセツサ
に追従することができる。安価で小型のメモリを
構築することは可能である。キヤツシユ中の命令
とそれに必要なデータは、プロセツサによつて直
ちにアクセスすることができるので、キヤツシユ
は通常、コンピユータの性能を高速化する。
通常、プロセツサ(CP)は、そのキヤツシユ
を通じて主記憶(MS)にアクセスする。キヤツ
シユは通常、2次元アレイとして構成され、その
めいめいのアレイ・エントリが、ラインと呼ばれ
る、MSデータの固定サイズのブロツクを含む。
キヤツシユのデイレクトリが、そのラインのアド
レツシング情報を記述する。CPによつてアクセ
スされる命令またはデータが、デイレクトリ・ル
ツクアツプによつて見出された時、そのアクセス
は、キヤツシユをヒツトしたと言われる。そうで
なければ、アクセスは、キヤツシユ中で当り損な
つている。キヤツシユの当り損ないが生じると、
キヤツシユ制御機能が、要求されたラインをキヤ
ツシユ中に移動させる要求を発生する。そのライ
ンがキヤツシユ中に挿入されたとき、それは既存
のラインに置き代わることになる。キヤツシユは
通常、最も以前に使用されたものを置き換える
(LRU置換)アルゴリズムなどのよく知られたあ
る種の置換方策により管理される。キヤツシユの
設計に応じて、キヤツシユからのラインの置換
は、記憶の一貫性を維持するために、MSに対す
る置換内容の更新を要求することがある。
キヤツシユは、マルチプロセツサと単一プロセ
ツサのどちらでも使用することができる。複数の
CPが、共通のオペレーテイング・システム及び
メモリを共有する自分用のキヤツシユをもつよう
な緊結合マルチ・プロセツサ・システムとして知
られるタイプのマルチプロセツサ(MP)システ
ムにおいては、各プロセツサのキヤツシユが複数
のキヤツシユで同時にラインに起こつていること
を知る必要があるために、余分な問題が惹起され
る。同一の主記憶を共有する複数のCPが存在す
るようなマルチプロセツサ・システムにおいて
は、各CPは、アクセスが発行された時点でのア
ーキテクチヤ仕様に従うデータの最新バージヨン
を入手する必要がある。この必要条件により、し
ばしばキヤツシユ・コヒーレンス問題として知ら
れる、キヤツシユ間のデータ一貫性を常に監視す
ることが必要にある。
従来技術のマルチプロセツサ・システムではさ
まざまなタイプのキヤツシユが存在する。1つの
タイプのキヤツシユとしては、米国特許第
4142234号に記載されているようなストアスルー
(ST)キヤツシユがある。そのようなキヤツシユ
は、IBMシステム/370モデル3033MPに採用さ
れている。STキヤツシユ・デザインは、常時、
主記憶に対するデータの変更を更新するため、主
記憶(または第2レベルのキヤツシユ)に直接デ
ータを記憶するCPと干渉しないようにするもの
である。主記憶に対するストアスルーの更新時
に、記憶されたキヤツシユ・ラインの可能的な遠
隔コピーを無効化するために、適当な相互的無効
化処置がとられる。記憶制御要素(SCE)が、バ
ツフア制御要素の間のMS制御要求及び標準的通
信をキユーするめに適切なスタツクを維持し、
SCEが記憶スタツク・オーバーフロー状態を回避
する。そして、SCE記憶スタツクが一杯になつた
時、それに関連するBCEが、スタツク・オーバ
ーフロー状態がクリアされるまで、そのMS記憶
を保持することになる。
別のタイプのキヤツシユ・デザインとしてスト
ア・イン・キヤツシユ(SIC)がある。SICは、
米国特許第3735360号に記載されている。SICキ
ヤツシユ・デイレクトリがまた、米国特許第
4394731号に記載されており、これにおいては、
ストア・イン・キヤツシユの各ラインが排他的/
読み取り専用(EX/RO)ビツトによつて制御
されるマルチプロセツサ共有可能性を有する。
STとSICの間の主要な相違点は、SIC中のすべて
の記憶が、キヤツシユそれ自体に指向されている
ことである(このことは、もし記憶されているラ
インがSICキヤツシユ中にあるなら、キヤツシユ
当り損ないを生じることになる)。もしコピーが
遠隔キヤツシユ中にあるなら、フエツチし損ない
に際してのデータ転送が、キヤツシユを通じてキ
ヤツシユ転送バス(CTC)に行うことができる
ことが、米国特許第4503497号でも提案されてい
る。このとき、各キヤツシユ中のデイレクトリの
コピーを含むSCEが使用される。このことは、交
差的問い合わせ(XI)の決定をSCEで解決する
することを可能ならしめる。通常、ラインがキヤ
ツシユから置き換えられるとき、キヤツシユ・ラ
インの変更は、主記憶に対してのみ更新される。
RO(読み取り専用)であるキヤツシユ・ライ
ンは、読み取り専用状態でのみ有効である。それ
らのラインへの格納は禁止される。ROキヤツシ
ユ・ラインは、異なるキヤツシユの間で同時に共
有することができる。
EX(排他的)であるキヤツシユ・ラインは、有
効であるが、1つのプロセツサのキヤツシユにの
みあらわれる。それは、ほかのどの(遠隔)キヤ
ツシユにも駐在しない。そして、(所有権をもつ)
プロセツサのみがそのラインに格納することを許
可される。
CH(変更された)であるキヤツシユ・ライン
は、そのラインが、有効且つEXであるのみなら
ず、それに格納がなされた(すなわち、変更され
た)ことを示唆する。すなわち、主記憶中のコピ
ーは、最新のものであつてはならない。CHライ
ンが置き換えられた時、コピーがキヤストアウト
動作を介して主記憶に送られる。
INVキヤツシユ・ラインは、無効であるキヤ
ツシユ・ラインである。
典型的なコンピユータ・システムにおいては、
第1のCPであるP1が、キヤツシユ中の1つの
ラインからの命令またはデータにアクセスするこ
とがある。そして、そのキヤツシユがチエツクさ
れ、もしその特定の要求されたラインが読み取り
専用(RO)であるなら、そのプロセツサは、格
納要求を出し、記憶制御要素(SCE)を通じて、
そのラインを排他的(EX)にする。そのライン
が一旦排他的になされると、SCEは他のキヤツシ
ユに、そのラインが無効であつてその第1のキヤ
ツシユがそのラインに自由に書き込みできること
を示唆する。
マルチプロセツサ・キヤツシユ環境において
は、異なるプロセツサによる同一データ・ライン
の、比較的密なアクセスの結果として、相互的問
い合わせ(XI)の問題が生じる。例えば、もし
あるラインがCP P1によつて変更されている
時、もしP1による変更がメモリに対して更新さ
れる前にラインLがメモリからフエツチされるな
ら、別のCPは、ラインLのダーテイなコピーを
フエツチすることがある。
尚、説明の便宜上、以下では、N個のCP{Pi|
1≦i≦N}があり、各Pi毎に個別のCiがあるよ
うなマルチプロセツサ・システムが考慮される。
さらに説明の便宜上、共有主記憶が個別のキヤツ
シユよりも上位にあるようなメモリ階層が想定さ
れる。
STキヤツシユ・デザインに係わる主要な問題
として、システム中の全てのCPによつて発生さ
れるトラフイツクがある。しかし、将来のMPシ
ステムの傾向は、全てのプロセツサ間の高性能共
有記憶の可用性である。そのような高速共有記憶
の例として、共有された第2レベルのキヤツシユ
(L2)がある。そのような高性能共有記憶を設け
ることにより、より多くのCPをサポートしつつ
STキヤツシユでMPシステムを実現することが
魅力的になつている。しかし、STデザインに関
連する別の問題は、米国特許第4142234号に示さ
れているようなSCE問題に係わる記憶のビジー・
ハンドシエーキングである。そのようなデザイン
においては、CPによつて格納されつつあるデー
タ項目を、そのCPがSCEから格納の承認を受け
取るまで、そのCPがフエツチすることができな
い、ということがある。そのようなビジー・ハン
ドシエークは、プロセツサのパイプライン動作を
低下させるばかりか、複数のCPが存在するとき、
SCEが全ての記憶動作を直列化するのが困難にも
する。
STデザインのための、ビジー記憶ハンドシエ
ーク問題に対する、知られている1つの技法とし
て、SIデザインからのEX/RO状態を採用する
ことがある。ここで、任意の時点で、キヤツシ
ユ・ラインが、INV,ROまたはEXという3つ
の状態のどちらかをもつようなストアスルー・キ
ヤツシユMP環境を考慮してみよう。このとき、
INVは無効を表し、ROは、2つ以上のCPからラ
インの異なるコピーを同時にアクセスする可能性
を示す。EXは、別のキヤツシユがアクセスのた
めのそのラインのコピーをもたない、ということ
を保証する。このマルチプロセツサ・キヤツシ
ユ・スキームの典型的な動作は、次の通りであ
る。すなわち、ラインLのフエツチの際、そのラ
インが(特定の瞬間または特定のキヤツシユ・ス
キームに応じて)ROまたはEX状態で搬入され
る。しかし、格納がそのライン上で要求された
時、システムは、そのラインに格納ができるよう
になる前にそのラインに対するEX状態を保証す
るべきである。このEX状態の保証には、別のキ
ヤツシユからのそのラインのコピーを無効化する
ためにXI動作が関与することがある。例えば、
P1がその局所キヤツシユでROに保持されてい
るラインLに書き込みを行う時、そのバツフア制
御要素(BCE)は、その書き込みをキヤツシユ
中に行つてしまうことができるようになる前に、
LのためにEX状態を要求する。例えば、米国特
許第4394731号及び第4503497号に記載されている
ようなMPシステムにおいては、キヤツシユは、
データのコヒーレンスを保証するためにEX状態
が獲得されるまで、後のアクセスからブロツクさ
れる。あるMPデザインにおいては、EX状況要
求に際してのキヤツシユ・アクセスのそのような
保持は、重大な性能上の不利を招くものである。
より慣用的なMPデザインにおいて、BCEがライ
ンのEX状況を待つている時に、CPで後のキヤツ
シユ・アクセスを禁止する主要な理由は、遠隔
CPからの格納無効化によつて、その後のフエツ
チが陳腐化するかもしれない、という配慮によ
る。例えば、CPでの<……Ii……Ij>という命令
ストリームを考慮してみよう。IiがラインLの
EX状況要求をトリガし、Ijが、EXがLのために
獲得される前にダブルワードAをフエツチすると
仮定する。もし、Iiからの格納のためにEX状況
が獲得される時までに、Aを含むラインが遠隔プ
ロセツサからの格納によつて無効化されるなら
ば、Ijの実行が、Aのアクセスによつてアーキテ
クチヤ規則違反を生じることがある。作業負荷分
析から、EX状況が十分迅速に獲得できるような
典型的なデザインの場合、EX状況獲得のウイン
ドウの間にCPが遠隔的に無効化されたデータを
使用する機会はかなり小さいことが観察された。
その結果、CPがラインのEX状況を獲得しつつあ
る間にキヤツシユがアクセスするのを禁止するこ
とが、不必要且つ非生産的にCPの実行を保持す
ることは極めてありそうなことである。
最近のプロセツサ・デザインにおける別の知ら
れている技法として、分岐予測に基づく条件付き
命令実行がある。そのようなデザインによれば、
分岐命令発生の予測に基づき、デコード及び実行
のために命令ストリームがフエツチされる。誤つ
た予測に基づき命令が不正に開始される場合、そ
れらは後で取り消される。命令の確認の前に、完
了時の最終リリースのために、条件付分岐から生
じるストア要求が、保留ストア・スタツク
(PSS)に格納される。命令の終了と、保留スト
アのリリースとは、ともに、アーキテクチヤ・シ
ーケンスの順序に従い実行されるが、命令は、完
了の前に、入来シーケンスから外れて実行される
ことがある。条件付命令ストリームが取り消され
た時、関連する全ての命令キユーとPSS中の保留
ストアは、適切にリセツトされる。
しかし、予想的される後のデータ・アクセスを
通じて、EX状況獲得によつてもたらされる遅延
を最小限にとどめることに指向された技術は存在
しない。MPキヤツシユ・デザインの既知の方法
はすべて、保留のEX状況要求がないときのみ、
CPにキヤツシユ・ラインにアクセスすることを
許容する。すなわち、先行いるEX状況要求が完
了するまで、CPキヤツシユは、それに対するア
クセスを禁止されるのである。
C 発明が解決しようとする課題 本発明の目的は、EX状況獲得による性能の問
題を克服するために、キヤツシユ・ラインを早期
にフエツチするための方法を提供することにあ
る。
本発明の別の目的は、命令の実行の不必要な遅
延を回避することにある。
本発明のさらに別の目的は、有効性の決定の前
にキヤツシユ・ラインを使用することを可能なら
しめることにある。
D 課題を解決するための手段 本発明に従えば、EX状況要求を完了する前に、
CPがそのキヤツシユにアクセスする能力が与え
られる。その結果、比較的希なケースで、EX状
況獲得の際にCPによつてアクセスされるライン
がダーテイであることが分かり、適切な命令のバ
ツクアツプをもたらすことがある。このことは、
EX状況要求に関連するCP実行の殆どの混乱を回
避するがゆえに、性能に著しい利点をもたらす。
この発明は、STキヤツシユ・デザインと、
EX/RO状態によるSICタイプのキヤツシユ・コ
ヒーレンス管理をもつMPシステムを利用する。
また、比較的高速の主記憶及び共有されたL2が
想定されている。EX要求状況が生じると、CPが
ROラインのための要求されたEX状況を受信す
る前に、オペランド・データのフエツチまたは使
用が許容される。そのようなEX状況が獲得され
る前は、以下のどのようなオペランド・アクセス
も無効と判断される。CPによつて不確かな有効
性をもつラインが使用される時はいつでも、その
ラインの有効性に依存する命令の実行結果は、そ
の有効性が認証されるまでは外部に委ねられるべ
きではない。
EX状況獲得に際して条件付でフエツチされた
オペランドの有効性をBCEが決定する方法は、
遠隔無効信号関しすることを通じてである。条件
付でフエツチされたオペランドは、局所CPから
のEX状況が解決される前にそれが遠隔的に無効
化されたキヤツシユ・ラインによつてカバーされ
ているなら、ダーテイであると考慮される。CP
のBCEは、条件付実行の状況と、条件付フエー
ズの間に発行されたオペランド・フエツチを記憶
しているべきである。
D 実施例 第1図は、本発明が適用される多重処理
(MP)システムを示す。MPは4台の中央演算処
理装置(CP)CP0乃至CP3,10,11,1
2,13を含み、各CPはそれぞれ命令実行(IE)
装置14,15,16,17及びバツフア制御装
置(BCE)20,21,22,23を含む。各
IEは、ハードウエアと、主記憶装置(MS)50
内でのオペランドの取り出し及び記憶を要求する
命令を発行するマイクロコードを内蔵する。IE
14−17は、当該の各キヤツシユ制御機構
(BCE)20−23に対して取り出しコマンド又
は記憶コマンドを発行して、取り出し動作又は記
憶動作を開始する。キヤツシユ制御機構は、関連
するプロセツサ・キヤツシユ・デイレクトリ
(PD)を伴うプロセツサ・ストアスルー(ST)
キヤツシユと、関連するCP10−13が専用す
るすべてのプロセツサ・キヤツシユ制御機構を含
む。CPは一般的には、オペランドによつて要求
されるダブルワード(DW)毎にフエツチまたは
ストア・コマンドを発行する。IEユニツトから
のストア要求のうちのいくつかのために、ダブル
ワード内のデータの連続的な部分を記述すること
ができる。例えば、バイトへのストアをBCEに
要求することができる。そのようなダブルワード
の部分集合に対するストアは、部分的(DW)ス
トアと呼ばれる。もしDWを含むキヤツシユ・ラ
インがPD中にあるなら、それはキヤツシユ・ヒ
ツト状況と呼ばれ、DWは、そのコマンドに従い
キヤツシユ中にストアまたはフエツチされる。た
またま要求されたDWがキヤツシユ中にないと、
それは、キヤツシユの当り損ない(キヤツシユ・
ミス)をもたらす。
IEフエツチ・コマンドを完了することができ
るようになる前に、DWを含むラインは先ず主記
憶からキヤツシユへフエツチされていなくてはな
らない。これを行うために、BCEが対応するフ
エツチ・ミス・コマンドを発生し、これは、記憶
制御ユニツト(SCE)30に、IEによつて主記
憶50から要求されたDWをもつデータのライン
単位を入手するように要求する。このライン単位
は、主記憶50中のライン境界にあるが、要求さ
れたDWは、見失われたラインの転送の完了にIE
要求が先行するようにしておくために、要求元の
BCE20乃至23に戻されるべき、フエツチさ
れたライン中の最初のDWとなる。
この特定の実施例では、IEは、常にそのライ
ンをキヤツシユに駐在させるように要求されてい
る訳ではなく、IBM/370モデル3033システムの
ストア・スルー・キヤツシユ・デザインにおいて
は、もし命令を発行するCPのためのキヤツシユ
中にそのラインが見出されなかつたならば、IE
ユニツトからのストアは直接主記憶に送ることが
できる。そのようにすることの1つの欠点は、主
記憶のBSM60乃至67で部分マージ機能が必
要となることである。例えば、ストアが、DWベ
ースで発生されたエラー訂正コード(ECC)と
ともに主記憶50に格納されると仮定する。する
と、主記憶50での部分的ダブルワード・ストア
には、それを主記憶アレイに格納することができ
るようになる前にデータのマージを通じてECC
を再生することが必要である。この実施例におい
ては、すべての部分的マージがキヤツシユ制御で
行なわれると仮定されている。それゆえ、部分的
DWストアは常に、ラインを、発行元のCPに在
駐ことを要求することになる。しかし、IEから
のDW全体のストアは、もしラインがCPキヤツ
シユ中にないなら、ライン・ミスフエツチを引き
起こすことなく主記憶への格納のためSCE30に
送つてもよい。いかなる場合でも、ストアが
BCEに送られる時そのストアがキヤツシユに入
れられるかどうかについてのMSONLYビツトを
IEがセツトする、と仮定されている。
SCE30は、CP10乃至13と主記憶50へ
接続されている。主記憶50は、複数の基本的記
憶モジユール(BSM)コントローラBSC0乃至
BSC3(参照番号51乃至54が割当てられている)
からなり、各記憶制御コントローラ(BSC)5
1乃至54には、BSM0(参照番号60、62、64
及び66が割当てられている)とBSC1(参照番
号61、63、65及び67が割当てられている)が接続
されている。4つのBSC51乃至54は、それ
ぞれSCE30に接続されている。
SCE30は、4つのコピー・デイレクトリ
(CD)31,32,33及び34を含む。各CD
は、米国特許第4934731号に記載されているのと
同様の様式でBCEのうちの1つの対応するプロ
セツサ・キヤツシユ・デイレクトリ(PD)の内
容の写しを含む。PDとCDはともに、論理アドレ
スからの同一のビツト位置によつてアドレスされ
る。CDはすべての相互的問い合わせ(XI)要求
を処理し、以てよりよくその個々のCPにサービ
スすることができる。主記憶中の各BSM60乃
至67と各SCEポートの間には、各SCE30から
各CP及びI/Oチヤネル・コントローラ・プロ
セツサ40までダブルワード幅のデータ・バスが
設けられている。そのデータ・バスとともに、制
御及びアドレス信号のための個別のコマンド・バ
スの組もある。CPがDWアクセス要求に際して
キヤツシユ・ミスに遭遇する時、そのBCE20
乃至23は、ミス・コマンドをSCE30に送るこ
とによつて主記憶に対するライン・アクセス要素
を開始し、SCE30は、次に、主記憶中の要求さ
れたBSM60乃至67に対してそのコマンドを
再発行する。BSMのビジー条件の場合、SCE3
0はその要求をコマンド・キユーに格納し、要求
されたBSM60乃至67が後で可用となつたと
きに、それを再発行する。SCE30はまた、XI
論理によつてキヤツシユ衝突が見出されたときを
除けば、特定のBSMに対するすべてのコマンド
が先入れ先だし(FIFO)の順序で発行されるよ
うに主記憶コマンドを順序的な様式で順序付けす
る。主記憶要求を処理する通常のシーケンスの間
は、SCE30が主記憶の状況を常に監視し、保護
キーとすべてのキヤツシユ・デイレクトリの問い
合せ結果を解析し、現在SCE30に保持されてい
るすべての保留コマンドの更新された状況を検査
し、BCE20乃至23中で、SCE30によつて
受信されるのを待つ新しいBCEコマンドを探す。
SCE30は、めいめいが対応するCPの16DW
までの主記憶ストア要求を保持するためのもので
ある、複数のストア・スタツクSS0乃至SS3を
維持する。SCE30は、主記憶アドレス及び有効
性の表示のためのストア・スタツクの十分なデイ
レクトリ情報を維持する。そして、ストア・スタ
ツク30がオーバーフローの危険を生じる時、
BCE20乃至23がSCE30から、ストア・ス
タツクの満杯を解消させる信号を後で受け取るま
でそれ以上のストア要求の送信を保留するため
に、SCE30が優先権要求を関連するBCE20
乃至23に送る。ストア・スタツク中のデータ
は、各ストア・スタツク内の入来順序を維持する
ように適当なスケジユーリングにより主記憶に対
して更新される。CPからのライン・フエツチ要
求は、SCEが、そのストア・スタツク中のライン
に対する既存のすべてのストアが関連するBSM
60乃至67に送られてしまつたことを確認する
まで、SCE30によつて保留される。
第2図は、各CP毎のIEユニツトにおける命令
制御の背景構成を示す図である。各CPにおける
IEは、条件付で命令を実行する能力をもつ。ま
た、必要ではないけれども、分岐予測を採用して
もよい。ここでは説明の便宜上、条件付実行の唯
一の原因が、BCEがSCEからのライン上のEX状
況を待つている時にダーテイの可能性があるデー
タをフエツチすることによる、と単純化して仮定
する。しかし、条件付実行の制御は、分岐予測マ
シンのための制御と相当の類似点を有する。特
に、実行がバツクアツプされる時、IEユニツト
は、マシン状況(レジスタ)を、その実行が関始
された時点までリセツトする。16個の半ワードを
含む70個の命令バツフア(IBUF)が存在する。
IBM370アーキテクチヤにおいては、各半ワ
ード(HW)が2バイト長であつて、おのおのの
命令コードが1乃至3半ワードの長さであること
は留意されたい。
本発明の実施例を単純化するために、シーケン
ス内の(in−sequence)直列的実行のみが想定さ
れているけれども、本発明の概念は、シーケンス
から外れたより複雑な実際構成を除外するのもで
はない。命令は、条件付実行命令を含む命令スト
リームにおいて、論理シーケンスに従つてのみ実
行される。オペランド・フエツチ及びストアは、
その論理シーケンスに従つてのみ実行される。
IEユニツトは、現在実行された命令が条件付か
どうかを示す単一のフラグ・レジスタCNFLG7
1を維持する。IEはまた、レジスタCNIADDR
72を維持する。CNFLG=1である条件付実行
フエーズのもとでは、CNIADDRが、主記憶か
らのデータの条件付フエツチを最初に開始した命
令のアドレスを保持する。
第3図は、BCE(例えば参照番号20)の全体構
成を示す図である。BCEは、変換ルツクアサイ
ド・バツフア(TLB)制御81を介して、論理
主記憶アクセス・アドレスを実アドレスに変換す
るために、変換ルツクアサイド・バツフアを維持
する。PD82は、プロセツサ・キヤツシユ・デ
イレクトリである。キヤツシユ・アレイ83は、
実際のキヤツシユ・データを含む。保留ストア・
スタツク(PSS)84は、8つのエントリを含
む。BCE制御は、その瞬間にダーテイである可
能性があるキヤツシユ・ライン・フエツチが存在
するかどうかを示すフラグCNPHASE(2ビツ
ト)85を維持する。CNPHASEが‘00'b(両方
のビツトが0)である時、関連するROラインに
関して継続中であるストア活動が存在しない。
CNPHASEが‘01'bである時、キヤツシユ中の
ROラインにおける(ダブルワード)ストア配置
(putaway)が存在する。CNPHASEが‘11'bに
等しい時、キヤツシユ中のROラインに対するス
トア配置が存在するのみならず、早期の配置スト
アがオペランドとしてフエツチされ、これは後で
無効化されるなら、取り消しされる。BCEはま
た、CNPHASE≠‘00'bである時にキヤツシユ
中のROラインに配置された可能性があるデー
タ・ストアのためのダブルワード・アドレスを記
録するアドレス・レジスタROSTRDW88を維
持する。
BCEはまた、IEが条件付でオペランドをフエ
ツチしたラインの実アドレスを記録する8つのエ
ントリをもつスタツク・デイレクトリ
CNFETLN90を維持する。CN=‘11'bである
とき、BCEは、SCEからライン無効化信号を受
け取る際に、条件付フエーズでダーテイ・データ
ず使用されたどうかを決定するために、
CNFETLN90スタツクを使用する。BCEまた
は、CNFETLN90のオーバーフロー条件を示
すフラグを維持する。ライン・アドレスの
CNFETLNスタツクに記録すべきとき、もしそ
れが既に存在しているのでないならば、アドレス
がスタツクにプツシユされる。その挿入時点で
CNFETLN90が満杯なら、オーバーフロー・
フラグがセツトされ、挿入は行なわれない。さら
に、BCEは、後述するある目的のために、フラ
グ・ビツトMSONLYFLG(1ビツト)87を維
持する。MSONLYFLG87は初期化されてお
り、正常の環境では0にとどまる。第4図は、米
国特許第4484267号に記載されるものに類似する、
BCE内の典型的なキヤツシユ制御80を示す。
IEからのフエツチまたはストア要求アドレス
(実または論理的)は、プロセツサ・キヤツシ
ユ・デイレクトリ(PD)91からの合同クラス
を選択するために使用される。ここに示されてい
る4路セツト連想的キヤツシユ・デザインにおい
ては、選択された合同クラスから読み出された4
つのデイレクトリ・エントリが存在する。これら
4つのPDエントリA乃至Dで記録された。絶対
ライン・アドレスは、アドレス比較手段92で、
アドレス変換機構93から得られた絶対要求アド
レスと比較される。これらのアドレスは、そのラ
インがキヤツシユ中でヒツトし損なつているかど
うか、または、SELA、SELB、SELC、及び
SELD信号によつて表示される。4つのラインの
うちのどれにヒツトしているかを決定するために
比較される。このアドレス比較の結果は、IFユ
ニツト及びアレイ制御手段の両方に渡される。置
換制御手段94は、置換状況アレイを維持し、必
要な時にこれらの状況を更新し、新しいラインが
MSからフエツチされる時に置換されるべきライ
ン・エントリを選択する。PDエントリ書き込み
制御手段は、PDエントリの更新を制御する。
DWフエツチ要求に対して、PD読み出し及び変
換処理と並列的に、デイレクトリ・アドレス比較
92が完了した時、選択された合同クラス中の4
つのDW、A乃至Dが、最近選択アレイ読取制御
97のためにそのアレイから読み出される。制御
98による決定に従い、参照番号104の箇所で
DWデータが必要に応じてIEユニツトまたはMS
に読み出される。
米国特許第4394731号に説明されているように、
IEからDWストアが以前のサイクルの間にストア
問い合わせ(SI)要求に先行されている。このSI
要求は、そのストアが、キー違反、キヤツシユ・
ミス、EX状況の欠如などの衝突なしで実行され
得ることを確認するものである。SIサイクルの
後、実際のDWストアは、もし遅延すべき理由が
他にないなら、正しいアレイ位置への直後の配置
(putaway)なくIEによつて発行することができ
る。この実施例では、IEからBCEへのSI要求も、
関連するDWストアが部分的であるか否かを示唆
するフラグ・ビツトを含むと仮定している。さら
にまた、米国特許第4394731号に説明されている
ような、SI要求によつてテストされてはいるがそ
れの実際のストアがまだBCEに送られていない
ようなストアを記録するために複数のレジスタが
使用され、以てIEオペランド・フエツチ要求が、
以前のオーバーラツプするストアを見失うことな
く適切に保持されるようにして慣用的な技術も使
用されると想定している。
この実施例では、ラインがキヤツシユ中で見失
われるか、またはRO状況を伴つて在駐するな
ら、CP動作は必ずしも保持されない。EX状況
が、関連するストア配置のために実際に必要であ
る時は、可能なときBCEが条件付実行フエーズ
に対処する。アレイ96は、ライン書込み制御9
9とアレイ・ストア制御95の制御のもとで、部
分的DW配置の能力によつて、ラインまたはDW
単位で更新される。アレイ・ストアのためのデー
タは、参照番号103の箇所で、IEまたは主記憶か
ら入来する。キヤツシユにおけるデータ保護のた
めには、バイト毎に1つのパリテイ・ビツトが必
要である。
第5A及び第5B図は、それぞれ、PD(110)
及びCD(120)エントリのフオーマツトを与える。
これは、米国特許第4394731号記載のものと類似
している。これにおいて、V(116,122)は、そ
のデイレクトリ・エントリのための有効ビツトで
ある。有効ラインは、もし関連するEXビツト
(115,121)が1であるなら排他(EX)状態にあ
り、そうでないなら読み取り専用(RO)状態に
ある。
各PDライン・エントリは、さらに、保護キー
(PROT KEY)111と、ライン変更(LC
CH)ビツト113と、フエツチ保護(FPROT)
ビツト112と、ページ変更(PGCH)ビツト1
14を含む。
SCEにおけるCDは、米国特許第4394731号に説
明されていると同一の様式によつて、対応する
BCEにおいてPDに対する鏡像として維持され
る。CDエントリの内容(EX,V,及びABS
ADDR117及び123)は、状況変更の遷移フエー
ズの期間を除いては、対応するPDエントリの内
容と同一でなくてはならない。ここで、本発明の
STキヤツシユ・デザインを使用すると、キヤツ
シユに対する全てのCPストアがもとに反映され
るので、キヤツシユ・ラインがデータを保持して
いるかどうかを示唆する、PDエントリにおける
LN/CH(ライン変更)フイールド113を主記
憶に送るようにスケジユールする必要がなくな
る、ということに留意されたい。
STデザインを使用すると、BCEからSCEへの
キヤストアウト・コマンドが、米国特許第
4394731号に記述されるように、SIC中の変更さ
れたラインを、SCE30を通じて主記憶で更新さ
せる。また、STデザインを使用すると、キヤス
トアウト・コマンドがDWストア・コマンドで置
き換えられ、これによつて、IEストアの際に主
記憶の更新のために、BCEがDWストア要求を
SCE30に送ることになる。BCEによつてSCE
に対するストア要求がなされる時、そのストアの
ためのDW要求はデータ・バスを介して並列的に
送り出されることになる。SCEは、正常の状態
で、BCEからのストア要求が常にSCEでの関連
ストア・スタツク(SS)に受領されるように、
個々のBCEと調整しなくてはならない。CDを検
査することによるSCEにおける相互的問い合わせ
(XI)処理は、米国特許第4394831号に記載の処
理と同様である。
IEは、やはり米国特許第4394731号に記載され
ているように、EX意図をもつフエツチまたはSI
要求を発行することができる。そのような要求
は、要求されたDWヒツトが、EXビツトがオン
であるキヤツシユ・ラインにヒツトする時のみ成
功裡に完了することができる。RO意図をもつフ
エツチ要求は、Vビツトがオンである、キヤツシ
ユ中の有効なラインのみを要求するものである。
キヤツシユ・アクセスにおける保護エラー及びそ
の他の例外は、特別の例外論理によつて処理され
ることになる。
第6A図には、BCE(例えば参照番号20)にお
ける保留ストア・スタツク(PSS)132が示さ
れている。PSS132は、0乃至7とラベルされ
た8個のエントリをもつ環状FIFOキユーとして
実現されている。各PSSエントリは、IEから発行
されるストアのためのDWデータを含む。第6B
図は、PSSデイレクトリ・エントリ140のフオ
ーマツトが示されており、そこに、サイズがビツ
トで付記されている。各PSSデイレクトリ・エン
トリには少なくとも4つのフイールドがある。す
なわち、絶対(バイト)アドレス・フイールド
STRADDR(31ビツト)144、データ長フイー
ルドLNGTH(3ビツト)145、5つのフラ
グ・ビツトCRLSE(1ビツト)141、
MSONLY(1ビツト)142、ROSTR(1ビツ
ト)、STRMS(1ビツト)147及びUNCOND
(1ビツト)148と、ストアされるDWのため
のキヤツシユ位置を記録するフイールド
STRCOORD143である。LNGTHは、(ダブ
ルワード内の)ストア・データの1乃至8バイト
の間を表す。LNGTH中の3ビツト全てが0で
あるとき、ストアはダブルワードの全幅に亙り、
そうでないならば、部分的なDWストアを指定す
る。CRLSEビツトがオンであるとき、DWスト
アは条件付フエーズにあり、主記憶にリリースす
ることはできない。MSONLY142ビツトがPSS
エントリに対してオンであるとき、ストアが既に
キヤツシユに配置されているか、または、ストア
はキヤツシユに配置される必要がない(キヤツシ
ユで見失われたラインへのDW全体のストアの場
合)かのどちらかである。ROSTR146は、現
在ROであるラインに関連付けられたストアを示
す。STRMS147は、ミス・ライン・フエツチ
に遭遇するストアを示す。UNDOND148は、
そのストアが、EX状況が獲得された時のみライ
ンへの配置されるべきであることを指定する。
IEユニツトからのストアは、必要時に保留ス
トア・スタツク(PSS)132に配置することが
できる。PSS132が挿入時満杯である場合、IE
ユニツトは、後のサイクルでPSS上に空きが生じ
まで、単にその動作を保留する。BCEは常に、
その時点でPSSが空でないなら、ストア配置のた
めに、PSS中の最初のDWを探す。PSS中の全て
のストアは、入来順に処理される。
IEユニツトからのキヤツシユ・ストア要求は、
MSONLY CRLSE、UNCOND、ROSTR及び
STRMSという追加的な5ビツト信号を含む。こ
れらの5ビツトの解釈は、PSSのために説明した
通りである。IEからのストア要求がPSS上にキユ
ーされた時、これら5つのビツト及び他の情報
は、対応するPSSデイレクトリ中に記録される。
以下の説明では、実行は、特定の構成によつて
許容された適切な点でのみバツクアツプし再開す
ることができる、と想定する。IEユニツトは、
条件付フエーズの間にある命令またはデータ・ア
クセスを保留し、且つあるデータ・ストアの条件
付処理を禁止するべくUNCOND=1フラグを使
用するための制御を有する。
任意の時点で、ライン上でRO状況をもつBCE
におけるキヤツシユへのストア配置は、高々1つ
しか存在することができない。有得べき実行バツ
クアツプのためPSS上には以前の配置ストアが残
つていることがあり、そのことは、それ以降の、
EX状況が許可される前のストアをブロツクする
目的を果たす。本発明の説明の便宜上、終了また
は無条件実行命令のためにPSSから主記憶へスト
アがリリースされることを除けば、各BCEは任
意の時点で2つの以上の未解決の要求がSCEに発
行されるのを許容しないように要求されるとす
る。また、以下の記載は、例外条件の処理を無視
するものとする。
第7A及び第7B図は、IEからRO意図をもつ
フエツチ要求(200)を受領した時のBCE処理を
示すフローチヤートである。キヤツシユ・ミス
(204,201)の場合、BCEは可能な時に、SCEに
対してRO意図をもつミス・フエツチ要求を発行
する(ステツプ202)。もしCNAHASE85が‘
01'bまたは‘11'bに等しいなら(201)、
CNPAHSE85が後でクリアされるまで、ミ
ス・フエツチが保持されることになる(ステツプ
203)。IEはアイドルして見出されなかつたDWが
主記憶50から到来するのを待つ。キヤツシユ・
ヒツトの場合、もしPSS中の現存する可能なDW
ストアのどれとも衝突しないなら、そのDWが遅
延なくキヤツシユからアクセスされる(ステツプ
205)。そのような衝突の検出は、オペランド・ス
トア比較を通じてなされ、これは要求されたフエ
ツチDWを、PSS中のMSONLY=0である全て
の有効アドレスに対して照合するものである。も
し一致が見出されたら衝突が検出され、その場
合、衝突条件が解消された後でフエツチが再発行
されることになる。DWフエツチは、もし衝突が
ないならキヤツシユ・アレイから読み出される
(ステツプ211)。フエツチされたDWが、
ROSTRDW88レジスタに記録されたアドレス
にあるとき特殊な状況が生じる(ステツプ208)。
この場合、CNPHASE85を‘11'bにセツトし、
BCEのCNFETLN90のスタツクをクリアし、
CNFETLNスタツク上のライン・アドレスを記
録し、IEユニツトにおいてCNFLAG71及び7
2を適切にセツトすることによつて実行を条件付
フエーズに切替ることができる(ステツプ209)。
CNPHASE≠‘00'bであるときフエツチされる
オペランドをもつ命令は、条件付であると見なさ
れ、後の可能的バツクアツプを施される(ステツ
プ206、207)。CNPHASE=‘11'bで条件付オペ
ランド・フエツチが実行された時、ライン・アド
レスは、CNFETLN90のスタツクに記録され
る(ステツプ210)。
第7C図は、IEユニツトからEX意図をもつフ
エツチ要求を受け取つた時のBCE処理のための
フローチヤートを含む(ステツプ220)。もしDW
がキヤツシユ中のROラインにヒツトするなら
(ステツプ221)、BCEが可能な時にSCEに対して
EX状況のための要求を発生する(ステツプ227)。
もしそのラインがキヤツシユで見当らないなら
(ステツプ221)、BCEは可能な時SCEに対して
EX意図をもつミス・フエツチ要求を発行する。
そのようなSCE要求は、もし条件付実行が行なわ
れるなら保留される(ステツプ223及び224)。も
しオペランドとストアの比較の間に保留ストアに
ついての衝突が見出されたなら、フエツチは保留
される。もしそのラインがEX状況をもつて(ス
テツプ224)キヤツシユ中に在駐するなら(ステ
ツプ221)、フエツチが実行され(ステツプ224)、
アドレスされたラインは、CNFELNスタツクに
記録される。しかし、そのラインがROであると
き、BCEは、CNPHASE=‘00'bであるときの
みSCEからEX状況を要求する(ステツプ232)。
この実施例では、IEユニツトがBCEに送る各
ストア問い合わせ(SI)要求は余分な信号線
STRHITで拡張されていると想定する。
STRHIT=1であるとき、そのストアDWをカ
バーするラインがキヤツシユにあることを要求さ
れる。例えば、部分的ストアのためのSI要求は、
STRHITラインを立ち上がらせることになる。
第7D図は、IEユニツトからストア問い合わせ
(SI)要求を受け取つたときのBCE処理のフロー
チヤートを含む。SI要求に対して、BCEは保護
違反がないかどうかをチエツクする。例えば、
BCEがSI要求のためのキー違反を検出したとき、
ある例外処理が行なわれることになる。以下で
は、キヤツシユ・デイレクトリ問い合わせのため
の手続きのみが説明される。キヤツシユ・ミスが
生じると(ステツプ241)、もしその要求で
STRHITフラグがオフであるなら(ステツプ
242)、SIが完了することになる(ステツプ243)。
もしSTRHITフラグが立つているなら、BCEは
可能ならSCEに対してEX意図をもつライン・ミ
ス・フエツチのための要求をスケジユールする。
ミス・フエツチ要求がSCEに対して発行された
時、BCEはまた、その見当らないラインが到来
していないことを示唆するためにそのフラグ・ビ
ツトSTRMFLGを立ち上げる。そのラインがキ
ヤツシユ中でEXであるなら(ステツプ250)、SI
要求が完了する(ステツプ251)。そのラインがキ
ヤツシユ中でEXであると分かつた時(ステツプ
252)、BCEは、SCEに対してEX状態へのアツプ
グレードの要求を発行することが可能になるまで
その要求を保留する(ステツプ254)。EXへのア
ツプグレード要求がSCEに送られた時、BCEに
おけるフラグROSTREX89も0にセツトされ、
これは発行されたEX状況が許可されていないこ
とを示唆する。いかなる場合にも、発行元IEユ
ニツトに対するBCE応答は、キヤツシユ・ミス
またはROライン・ヒツトが関与しているかどう
かを表示するタグを含んでいるべきである。キヤ
ツシユ中にSIラインが見出される時、IEはまた、
BCEからキヤツシユ座標を受け取る。IEユニツ
トは次に、BCE応答に基づき、実際のDWストア
についての決定を行う。尚、ステツプ245では、
STRMSFLG86がターンオフされる時、もし
STRMSFLG=1ならそれが0になるまでBCE
が保留となることに留意されたい。同様に、
ROSTREX89がターンオフされる時(ステツ
プ254)、BCEはROSTREX89が0になるまで
保留となる。
第7E図は、IEユニツトからのストア要求が
優先権を得る時のBCE処理のためのフローチヤ
ートを含む。IEからのストアは、関連する以前
のSI要求によつて決定されるフラグ・ビツト
MSONLY、STRMS及びROSTRに加えて、IE
自体によつて決定されるフラグ・ビツトCRLSE
及びUNCONDをもつ。ここでは、IEユニツトが
無条件ストア(UNCOND=1)を発行する時、
IEユニツトは、そのストアが保留される唯一の
状況はそのストアが何時ROラインになるか
(ROSTR=1)であり、そのEX状況がSCEによ
つて許可されていないことを保証する。条件付実
行の場合、CNPAHSE=‘11'bの場合(ステツ
プ261)、もし可能ならDWストアが(CRLSE=
‘11'bとして)PSS上に配置される。PSSが満杯
のとき(ステツプ263)、そのストアは、PSSが可
用な空きをもつようになるまで保留される。
CNPHASE≠‘11'bときのストア要求に対して
(ステツプ264)、BCEはもし、さらに別の保留ス
トアがあるならPSS上にDWストアをキユーしよ
うと試み、もしPSSが満杯ならそのストアは保留
されることになる。CNPHASE≠‘11'bである
時PSSが空の場合、BCEは、第7E図に記述さ
れていようなストア配置動作を実行しようと試み
る。
第7E図において、BCEは先ず、そのストア
はキヤツシユ・アレイに配置する必要があるかど
うかを調べるために判断する(ステツプ270)。も
しMSONLY=0且つMSONLYFLG=0でキヤ
ツシユ配置の必要性が示唆されるなら、BCEは、
そのストアにキヤツシユ・ラインのヒツトし損な
いが関与しているかどうかをチエツクする(ステ
ツプ271)。もしそうなら、そのストア要求に対し
てSTRMS=1の時に、且つそのラインがキヤツ
シユにまだ到来していないならば(ステツプ
277)、そのラインが入つた時に配置のためそのス
トアがPSS上に保持される(ステツプ278)。もし
そのストア要求にはヒツトし損ないがならなら
(ステツプ217)、ROSTRビツトがROラインへの
ストアの条件についてテストされる(ステツプ
272)。そしROSTR=1でROSTREX=0なら
(ステツプ273)、EX状況はそのライン上で許可さ
れておらず、そのストアがキヤツシユ・アレイ中
に配置されると同時に、ストア要求が無条件的で
ある時(UNCOND=1、ステツプ275)を除き
そのストアがPSS上にキユーされる(ステツプ
276)。
もしそのストアがROライン中に配置されるな
ら(ステツプ281)、CNPHASE85が‘01'bに
セツトされ、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の要求タイプ
は、RO状態で以てBCEに既に在駐するキヤツシ
ユ・ラインのためにEX状況のみを要求するEX状
況へのアツプグレードである。慣用的なSCEデザ
イン・スキームの多くは、この実施例に適用可能
であろう。その例として、米国特許第4394731号
に記載されているSCEデザインがある。また、
BCEからのミス・フエツチ要求の場合、SCEが
必要な動作を実行し最終的に要求された状態
(ROまたはEX)をもつラインを戻す、と想定す
る。BCEからEX状況要求へのアツプグレードの
場合、SCEは最終的に、BCEに要求されたEX状
況の許可を通知することになる。しかし、SCEデ
ザインは本出願の主要な関心事項ではないので、
SCE動作のための詳細な手続きはここでは示さな
い。
CPのBCEは、SCEから(ROまたはEX状況を
もつ)受信ライン、CERO(ラインのEXからRO
状況への変更)、及びライン無効化、という3つ
の主要な信号を受け取り得る。
SCEからの受信ライン信号の場合、BCE処理
は全く標準的である。すなわち、BCEは入来デ
ータ・ラインに対して準備完了となる。そのライ
ンのデイレクトリ・エントリは、要求された状況
(ROまたEX)により有効化される。典型的なデ
ザインにおいては、データは、サイクル毎にダブ
ルワードでキヤツシユに到来する。受信される最
初のDWは、通常、キヤツシユ・ミスの際にIEに
よつて要求されるものであり、もしそれがフエツ
チ・ミスなら実行の再開のためにIEユニツトに
バイパスされる。そのデータが来る直前に、
BCEはSTRMSFLG87フラグをターンオフす
ることがあり、そのときは、キヤツシユに自由に
アクセスできるときに、ストア・ミスの処理を可
能ならしめる。
ここで、STRMSFLG87は、キヤツシユ・ミ
スがSCEに発行される時にSI処理の間にBCEに
よつてターンオンされ(ステツプ245、第7C
図)、BCEがSTRMS=1をもつストア要求を処
理する時テストされる(ステツプ217、第7E図)
ことを思い出されたい。
第8A図は、SCEからCERO要求を受信すると
きのBCE動作を記述するものである(ステツプ
290)。もしそのラインがキヤツシユにないか、キ
ヤツシユ中でROであるなら(ステツプ291)、
BCEはSCEに完了を報告する(ステツプ296)。
もしそのラインがまだキヤツシユ中でEXである
なら、BCEは、CERO処理を完了する前にすべて
の可能な保留効果を一掃する必要がある。CERO
が処理される前に、BCEは、SI要求の後すべて
のストアがIEによつて発行されたことを確認す
る。SI要求をもち完了されたストアは最初にPSS
に対して発行されるべきである。BCEは次に、
PSS上の無条件ストア(CRLSE=0)との衝突
があるかどうかをチエツクする(ステツプ292)。
衝突とはCEROラインによつてカバーされるDW
アドレスとストアの一致のことである。そのよう
な衝突する保留ストアはすべて、主記憶が適切に
更新されるようにするために、最初にSCEに対し
て発行されるべきである(ステツプ293)。次に
BCEは、PSS上で保留状態にある条件付ストア
(CRLSE=1)と衝突がないかどうかチエツクし
(ステツプ294)、もしそのような衝突が見付かる
と(ステツプ295)、全ての条件付実行を打消しさ
せる。もし条件付保留ストアとの衝突が見出され
なかつたなら、BCEはCNFETLN90スタツク
を通じて、条件付実行中のオペランド・フエツチ
との可能的な衝突をチエツクする。その衝突は、
CNFETLN90がオーバーフローした時、また
はCNFETLN90スタツク中の有効エントリと
のCEROライン・アドレスとの一致が存在する時
に決定され、その場合、すべての条件付実行は、
SCEがCERO処理を完了を通知される前に、全て
の条件付実行が取り消されるべきである(ステツ
プ295)。尚、CNFETLN90スタツクは、
CNPHASE≠‘11'bである無条件実行フエーズ
の間は、常に空に維持されることに留意された
い。
BCEが条件付実行を取り止める時、BCEは、
(CRLSE=1)であるPSS84上での全ての条件
付ストアをクリアする。BCEはまた、
CNFETLN90スタツクをもクリアする。BCE
は、IEユニツトに、バツクアツプ点
(CNIADDR72レジスタに記録されている命令
アドレスの点)で再実行開始のために実行状況を
リセツトし、CNFLG71を0にリセツトするよ
うに通知する。
第8B図及び第8C図は、SCE300からライ
ン無効化要求を受け取つた時のBCE動作を示す。
このBCE処理は、もしそのラインがキヤツシユ
中にないなら(ステツプ301)直ちに完了する
(ステツプ302)。そうでないなら、BCEは、第8
A図に示すように、最初に、PSS上の無条件スト
アとの全ての衝突をクリアする(ステツプ303及
び304)。次にそのデイレクトリ中のライン・エン
トリが無効化される(ステツプ305)。
CNPHASE=‘00'bの場合、すなわちROライン
中にストアがなされていない場合、BCEは、そ
のラインがキヤツシユ中でEXかどうかを判断す
る(ステツプ312)。もしそのラインがEXである
なら無効化処理が完了し、BCEはSCEにそのEX
ラインの無効化の完了を通知する(ステツプ
313)。そのラインがROである場合(ステツプ
312)、BCEは、無効化されつつあるラインのた
めにSCEに送出されたEX状況に対するアツプグ
レード要求が既にあるかどうかを決定する(ステ
ツプ314)。もしそうなら、BCEは、SCEに対し
てEX意図をもつ要求ライン・フエツチを求める
要求を発行することによつて無効化処理を完了す
る(このような状況では、このBCEから以前に
発行されたRO状況からEXへのアツプグレード
を求めるもとの要求が自動的に棄却されるものと
想定されている)。もしCNPHASE=‘11'bであ
るなら(ステツプ307)、これは条件付実行の存在
を示唆するので、BCEはPSS上の条件付ストア
(CRLSE=1)及びCNFETLN90の内容との
衝突をチエツクする(ステツプ308)。衝突が見付
かると、全ての条件付実行が取り消されることに
なる(ステツプ309)。いかなる場合にも、もし
CNPHASE≠‘00'bなら、BCEは、ROSTRDW
88レジスタ中のアドレスとの比較を行うことに
よつて、ストアされたROラインの無効化の可能
性をチエツクする(ステツプ310)。そしてもし一
致が見出されたなら、BCEはSCEに対してEX意
図をもつライン・フエツチ要求を発行する必要が
ある(ステツプ311)。その場合、フエツチされた
ラインは、もとの無効化されたキヤツシユ・エン
トリ中に配置されることになる。また、BCEは、
MSONLYFLG87を0にセツトし、
STRMSFLGを1にセツトする(ステツプ311)。
MSONLYFLG=0にセツトすることは、もとも
とROライン中に配置されたDWストアを、後で、
新しくフエツチされたEXライン中に配置するこ
とを可能ならしめる。ここで、第7E図におい
て、ストアがキヤツシユに配置される時(ステツ
プ279)MSONLYFLG87が0にリセツトされ、
ストアがROライン中に配置される時(ステツプ
276)MSONLYFLGが1にセツトされ、ストア
のキヤツシユ配置の必要性のチエツクは、
MSONLY142とMSONLYFLG87がともに
0であるかどうかをチエツクすることによつて行
なわれる(ステツプ270、第7E図)ことを思い
出されたい。STRMSFLG=1にセツトすること
は、EXラインがSCEから入来するときの通常の
ストア・キヤツシユ・ミス処理と同様にしてDW
ストアをキヤツシユ中に配置することを可能なら
しめる。
実行の再開には、特定の構成に従い、マシン状
態を適切に再開させることが関与する。その1つ
の簡単な技術は、IEが、条件付実行の前にPSW
及びGPRのようなマシン状態をコピーするよう
にすることである。特定の構成に従い、命令の実
行のバツクアツプまたはシステム回復の完了が望
ましくなくなる時に条件付実行の保留または取り
消すことが恩恵をもたらすことがある。例えば、
デザインにより、比較及びスワツプ(CS)のよ
うな直列化命令に対する条件付実行が禁止される
ことがある。その極端な場合、デザインはいかな
る条件付実行も行わず、ストアをROラインに前
以て配置することだけ許容し(CNPHASE=‘
00'bのとき)、あるいはROSTRDW88レジスタ
中に記録されたアドレスにおけるDWに対して最
初のフエツチのみを許容する(CNPAHSE=‘
01'b)。
BCEが条件付実行の間にダーテイである可能
性のあるオペランド・フエツチを監視するために
記述された機構は、CNFETLN90スタツク上
にライン・アドレスを記録することを通じてのも
のである。しかし、CNFETLN90スタツク上
にはライン・アドレス全体を記録することは必要
ではない。例えば、ある部分アドレス・ビツトを
使用してもよい。また、特殊なCNFETBITビツ
トを各キヤツシユ・ライン・エントリ毎に関連付
けることによつて、BCEがオペランド・フエツ
チの履歴を記録することも可能である。条件付実
行フエーズの間に、あるラインに対するオペラン
ド・フエツチは、対応するCNFETBITのターン
オンをもたらすことになる。そして、条件付実行
フエーズが終わつた時、全てのCNFETITはター
ンオフされる。このデザインの場合、ステツプ
294(第8A図)及びステツプ308(第8B図)は、
第9図のステツプ320の処理と置換される。
尚、この実施例の説明は、条件付実行はバツク
アツプすることができ、その命令レベルでのみ再
開することができると想定した。しかし、より込
み入つたデザインでは、もし多重フエツチ及びオ
ペランドに関与する命令の実行の途中の間にマシ
ン実行状態をバツクアツプするための適当な機構
が設けられるなら、この想定は緩和することがで
きる。
また、この発明は、RO及びEX状態をもつMP
キヤツシユ・デザインの脈絡で説明されてきた
が。同様の概念と技術は、前以てのデータ・スト
アの配置、及び前以てのオペランド・フエツチを
許容するためのEX/RO状態をもたないストア
スルーMPキヤツシユにも適用することができ
る。さらに、この発明の技術は、EX状況獲得に
よるプロセツサ遅延を低減するためのストアイ
ン・キヤツシユ・デザインにも適用することがで
きる。
F 発明の効果 以上説明したように、本発明に従えば、EX状
況要求が完了する前に、プロセツサがそのキヤツ
シユにアクセスする能力が与えられる。
【図面の簡単な説明】
第1図は、本発明が適用されるマルチプロセツ
サ・システムの概要図、第2図は、IEユニツト
における命令制御の背景的な構成を示す図、第3
図は、BCEの全体的な構成を示す図、第4図は、
BCE内の典型的なキヤツシユ制御の構成を示す
図、第5A及び第5B図は、それぞれ、プロセツ
サ・デイレクトリ・エントリと、キヤツシユ・デ
イレクトリ・エントリのフオーマツトを示す図、
第5C図は、プロセツサ・デイレクトリ・エント
リの変更されたフオーマツトを示す図、第6A図
は、BCEにおける保留ストア・スタツクを示す
図、第6B図は、保留ストア・スタツク・デイレ
クトリ・エントリのフオーマツトを示す図、第7
A及び第7B図は、IEユニツトからROの意図を
もつフエツチ要求を受け取つたときに、BCE処
理を行うためのフローチヤート、第7C図は、
IEユニツトからEXの意図をもつフエツチ要求を
受け取つたときに、BCE処理を行うためのフロ
ーチヤート、第7D図は、IEユニツトからスト
ア問い合せ(SI)要求を受け取つたときに、
BCE処理を行うためのフローチヤート、第7E
及び第7F図は、IEユニツトからのストア要求
が優先権を受け取つたときに、BCE処理を行う
ためのフローチヤート、第8A図は、SCEから
CERO要求を受け取つたときのBCE動作を記述す
るフローチヤート、第8B及び第8C図は、SCE
からライン無効化要求を受け取つたときの、
BCE動作を示す図、第9図は、条件付実行の間
に、BCEがダーテイの可能性があるオペラン
ド・フエツチを監視するための別の方法を示す図
である。

Claims (1)

  1. 【特許請求の範囲】 1 複数のプロセツサと、それぞれのプロセツサ
    に対するキヤツシユと、メインメモリとを有する
    マルチプロセツサ環境で非排他的キヤツシユライ
    ンをストアするための方法であつて、 プロセツサによる命令の実行が、そのプロセツ
    サのキヤツシユに非排他的として現在保持されて
    いるキヤツシユラインのストアを要求した場合、
    そのキヤツシユラインの状態が非排他的から排他
    的へ変わるのを待つ間に当該非排他的キヤツシユ
    ラインの記憶を行うステツプと、 前記状態の変化を待つ間に前記プロセツサによ
    る後続の命令を暫定的に実行するステツプと、 前記非排他的キヤツシユラインをストアするス
    テツプと同時に、排他的に変えられた非排他的キ
    ヤツシユラインの状態を調べるステツプと、 前記状態の変化の前に無効となつたキヤツシユ
    ラインから取り出したデータを用いた命令の暫定
    的実行の全てを再実行し、更には、この再実行さ
    れた命令に依存する命令の暫定的実行の全てを再
    実行するステツプと、 を有することを特徴とするキヤツシユ・ライン・
    ストア方法。
JP1328623A 1988-12-23 1989-12-20 キヤツシユ・ライン・ストア方法 Granted JPH0340047A (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH0340047A JPH0340047A (ja) 1991-02-20
JPH0567976B2 true 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
EP0374370B1 (en) 1996-07-24
US5016168A (en) 1991-05-14
DE68926878D1 (de) 1996-08-29
DE68926878T2 (de) 1997-02-06
EP0374370A2 (en) 1990-06-27
JPH0340047A (ja) 1991-02-20
EP0374370A3 (en) 1991-07-17

Similar Documents

Publication Publication Date Title
US6704841B2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
EP0372201B1 (en) Method for fetching potentially dirty data in multiprocessor systems
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
US4481573A (en) Shared virtual address translation unit for a multiprocessor system
US4484267A (en) Cache sharing control in a multiprocessor
US5148533A (en) Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5590309A (en) Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
JPH0743670B2 (ja) ストアスルーキャッシュ管理システム
JPH0567976B2 (ja)
WO2025138722A1 (zh) 访存失效队列处理方法、装置及电子设备
US6202126B1 (en) Victimization of clean data blocks
US20050210204A1 (en) Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
US5875468A (en) Method to pipeline write misses in shared cache multiprocessor systems
US6973541B1 (en) System and method for initializing memory within a data processing system
US20050273563A1 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
JPH0245845A (ja) データ処理システム
JPH08287022A (ja) マルチプロセッサ・システム及びその排他的制御方法
JPH0740248B2 (ja) キャッシュ制御装置
JPH07101412B2 (ja) データ事前取出し方法およびマルチプロセッサ・システム
JPH06309225A (ja) 情報処理装置