JPH02166539A - フェッチ方法 - Google Patents

フェッチ方法

Info

Publication number
JPH02166539A
JPH02166539A JP1242402A JP24240289A JPH02166539A JP H02166539 A JPH02166539 A JP H02166539A JP 1242402 A JP1242402 A JP 1242402A JP 24240289 A JP24240289 A JP 24240289A JP H02166539 A JPH02166539 A JP H02166539A
Authority
JP
Japan
Prior art keywords
cache
sce
row
storage
bce
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
JP1242402A
Other languages
English (en)
Other versions
JPH0670779B2 (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 JPH02166539A publication Critical patent/JPH02166539A/ja
Publication of JPH0670779B2 publication Critical patent/JPH0670779B2/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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般にマルチプロセッサ環境におけるキャッ
シュに関し、具体的にはダーティである可能性のあるキ
ャッシュからデータ行を取り出すための方法に関するも
のである。
B、従来技術 最近の高性能プログラム内蔵型ディジタル・コンピュー
タは、通常主記憶装置から命令及びデータを取り出し、
取り出した命令及びデータをキャッシュ・メモリ内に記
憶する。キャッシュとは、コンピュータの主記憶装置に
くらべ通常はるかに小型で高速のローカル記憶装置であ
る。高性能ディジタル・コンピュータはほとんどすべて
キャッシュを使用し、市販されている一部のマイクロプ
ロセッサでさえもローカル・キャッシュを備えている。
キャッシュが開発されたのは、最近のパイプライン化成
プロセッサに適合するアクセス時間で動作する超大型メ
モリを妥当なコストで構築するのが不可能なためである
。しかし、プロセッサと歩調を合わせることのできる比
較的安価で小型のメモリを構築することは可能である。
キャッシュを利用すると、キャッシュ内の命令とそれに
必要なデータに対してプロセッサが即時アクセスするこ
とができるので、通常コンビエータの性能がスピード・
アップする。
通常、プロセッサ(CP)はそのキャッシュを介して主
記憶装置(MS)のデータにアクセスする。キャッシュ
は通常2次元アレイとして編成されている。このアレイ
では、各アレイ項目に、行(ライン)と呼ばれる固定サ
イズのMSデータ・ブロックが含まれている。キャッシ
ュのディレクトリに、その行に関するアドレッシング情
報が記述される。ディレクトリの表引きによりCPから
の命令またはデータのアクセスがキャッシュ内で見つか
ったとき、そのアクセスはキャッシュをヒツトしたと言
う。それ以外の場合には、キャッシュでのアクセスにミ
スしたと言う。キャッシュ・ミスのときは、キャッシュ
制御機能が、要求された行(ライン)をキャッシュに移
すための要求を生成する。ある行がキャッシュに挿入さ
れるとき、既存の行を置換する。キャッシュは通常、周
知のLRU置換アルゴリズムなど特定の置換手法によっ
て管理される。キャッシュの設計に応じて、キャッシュ
の行を置換する際に、記憶内容の整合性を保つためにM
Sに対して置換される内容の更新を行なわなくてはなら
ない。
キャッシュはマルチプロセッサーシステムでもユニプロ
セッサ・システムでも使用できる。複数のCPが専用の
キャッシュを持ち、共通のオペレーティング・システム
及びメモリを共用する、緊密結合マルチプロセッサ・シ
ステムと呼ばれるタイプのマルチプロセッサ(MP)で
は、別の問題がある。それは、各プロセッサのキャッシ
ュが、複数の行(複数のキャッシュ内にあるものでもよ
い)に何が起こったかを同時に知る必要があるからであ
る。同じ1つの主記憶装置を共用している複数のCPを
有するマルチプロセッサ・システムでは、アクセスが発
行されたとき、アーキテクチャの仕様に応じて各CPが
最新の更新済みデータを得る必要がある。この要件のた
め、キャッシュの整合性問題として知られている、キャ
ッシュ間におけるデータの整合性の定常的監視が必要と
なる。
従来技tRのマルチプロセッサ惨システムにはいろいろ
な種類のキャッシュがある。1つのタイプのキャッシュ
は、IBMシステム/370モデル3033MPに関す
る米国特許第4142234号明細書に記述されている
ような、ストアスルー型(8T)キャッシュである。S
Tキャッシュの設計は、常に主記憶装置に対するデータ
変更の更新を行なうために、CPが主記憶装置(または
第2段のキャッシュ)に直接データを記憶するのを妨げ
ないようになっている。主記憶装置に対する記憶の更新
時に、記憶されたキャッシュ行の可能な遠隔コピーを無
効にするための適切な相互無効化処置が行なわれること
がある。記憶制御要素(SCE)は、MS記憶要求を待
ち行列に入れるための適切な記憶スタックを保持し、バ
ッファ制御要素(BCE)とSCEの間の標準の通信に
よって記憶スタックのあふれ状態が防止される。SCE
記憶スタックが漕杯になると、関連するBCEが、その
条件が解除されるまでMS記憶を保持する。
もう1つのタイプのキャッシュ設計は、ストアイン型キ
ャッシュ(SIC)である。SICについてはアンダー
ソン(Anderson)等の米国特許第373538
0号°明細書及びワーナー(Warner)等の第37
71137号明細書に記載されている。
SICキャッシュ・ディレクトリについてはフラッジs
 (Flusche)等の米国特許第4394731号
明細書に詳しい記載がある。上記特許では、ストアイソ
型キャッシュ内の各行のマイクロプロセッサ共用可能性
が、排他的/読取り専用(EX/RO)フラグ・ビット
によって制御される。STキャッシュとSICキャッシ
ュの主な相違は、SICではすべての記憶がキャッシュ
自体に送られるという点にある(したがって、記憶され
た行がSICキャッシュにない場合は、キャッシュ・ミ
スが生じる可能性がある)。米国特許第4503497
号明細書では、コピーが遠隔キャッシュ内にある場合、
取出しミス時にキャッシュ間転送バス(CTC)を介し
てデータ転送を行なうことができると提唱されている。
各キャッシュ内にディレクトリのコピーを含むSCEが
使用される。それによって、相互間合せ(XI)判断が
SCEで解決できる。通常、キャッシュ行の修正は、行
がキャッシュから置換されたときだけ主記憶装置に対し
て更新される。
ROであるキャッシュ行は、読取り専用状態の場合のみ
有効である。プロセッサは、その行から取出しだけを行
なうことができる。その行への記憶は禁止される。RO
キャッシュ行は異なるキャッシュ間で同時に共用可能で
ある。
またEXであるキャッシュ行は、有効であるが、特定の
プロセッサのキャッシュ内だけに現れ、その他の(遠隔
)キャッシュ内には存在しない。
(所存)プロセッサだけがその行への記憶を許される。
CHであるキャッシュ行は、その行が有効でEXである
ことを示すだけでなく、そこに記憶されていることも示
す。すなわち主記憶装置内のコピーが最新のものでない
可能性がある。CH行が置換されるとき、廃棄処置によ
ってコピーが主記憶装置に送られる。
INVキャッシュ行は無効な行である。
典型的なコンピュータ・システムでは、第1のCPlP
lは、キャッシュ内の行から命令またはデータにアクセ
スすることができる。それ自体のキャッシュが検査され
、要求されている特定行が読取り専用(RO)の場合に
は、記憶要求を生成し、記憶制御要素(SCE)によっ
てその行をEXにする。その行が一度EXになると、記
憶制御要素(SCE)は他のキャッシュに対して、その
行が無効であることを示し、第1のキャッシュがその行
に自由に書き込めるようになる。
マルチプロセッサ・キャッシュ環境では、異なるプロセ
ッサ(CP)による1つのデータ行への比較的接近した
アクセスによって、相互間合せ(XI)問題として知ら
れる問題が発生する。たとえば、ある行がCP  pt
によって修正された場合は、PIによる修正がメモリに
対して更新される前にメモリから行りが取り出される場
合、他のCPがその行りのダーティ・コピーを取り出す
可能性がある。
システムに追加されるCPの数が増えるに従って、XI
問題を効率的に取り扱うことがますます難しくなってく
る。次に例として、N個のCP(Pill≦i≦N)及
び各Piごとに専用キャッシュCiが存在するマルチプ
ロセッサ・システムについて考察する。この考察では、
共用主記憶装置が専用キャッシュの下にある、メモリ階
層構造を想定する。
STキャッシュの設計に付随する1つの主要な問題は、
システム内のすべてのCPによって生成されるトラフィ
ックである。ただし、将来のMPシステムにおける傾向
は、すべてのプロセッサ間で高性能の共用記憶装置が利
用できる方向に向かっている。そのような高速共用記憶
装置の例として、第2段共用キャッシュ(L2)がある
。そのような高性能共用記憶装置を設ける場合、さらに
多くのCPをサポートしなからSTキャッシュでMPシ
ステムを実現することが魅力的になってくる。
STの設計に付随するもう1つの問題は、米国特許第4
142234号明細書に示されているような、SCEと
の使用中記憶初期接続手順である。
このような設計では、CPがSCEからその記憶につい
ての肯定応答を受は取るまで、CPによって記憶される
データ項目を、そのCPが取り出すことができない。そ
のような使用中初期接続手順では、プロセッサのパイプ
ライン式動作の速度が低下するだけでなく、多数のCP
が組み込まれている場合にSCEがすべての記憶を効率
的に直列化することも難しくなる。
ST設計に関する使用中記憶初期接続手順の問題に対す
る既知の1手法は、S工C設計からのEX/RO状態を
使用するものである。任意の瞬間にキャッシュ行が3つ
の状態INV、ROまたはEXのどれかをとるストアス
ルー型キャッシュMP環境について考える。ROは複数
のCPからの行の異なるコピーに対する同時アクセスが
可能なことを示す。EXは他のキャッシュがアクセスす
べき行のコピーをもたないことを保証する。このプロセ
ッサ・キャッシュ方式の典型的実施態様は次の通りであ
る。行りの取出し時に、その行は(各特定の例、及び特
定のキャッシュ方式に応じて)ROまたはEX杖態でキ
ャッシュにロードされる。ただし、ある行に対する記憶
が要求されているときは、システムは、その行に記憶で
きるようになるまで、その行をEX状態に保たなくては
ならない。EX状態のこのような許可には、他のキャッ
シュからの行のコピーを無効化するためのXI処装が必
要である。CPまたとえばP2がそのキャッシュ内にE
X状態のELを有し、PIがその行りにアクセスしよう
とするとき、記憶制御要素(SCE)は、PlがLを取
り出してそのキャッシュに入れられるように保証する。
SCEがP2に対しLのEX状態を放棄するように指示
してから、P2がEX状態を放棄し保留中のすべての記
憶がメモリに対して更新されていること、を示す信号を
SCEが受は取るまでの間のプロセスは、消去プロ、シ
ージャと呼ばれる。消去プロシージャの目的は、XI目
標CPにその行のEX制御を放棄させ、その行に対する
あらゆる可能な未捕捉の記憶をメモリに対して更新させ
ることにある。
ただし、遠隔EXに対する上記XIヒツト(XIEX)
は、大きな性能の低化を招き、特に多数のCPを有しX
I頚度数が高くなるにつれて、消去プロシージャによる
遅延のため、性能の低下が増大する。
作業負荷の分析結果から、XIEXの発生時には(行り
を所有する)遠隔CPがXIEX事象前後のわずかな時
間で記憶を生成することは極めて稀なことが認められて
いる。共用行に対する修正の大部分は、実際のピ′ンポ
ン点から離れて、数10回の参照にわたって行なわれる
傾向にある。その結果、XIEX活動時に、消去プロセ
スが行なわれる前でさえ、高速共用記憶装置内にあるそ
の行のコピーが要求側CPが使用するのに有効となる可
能性が極めて高(なる。その結果、そのような環境では
、XIEXに対する消去プロシージャによる大きな性能
の低下はほとんど不要であり、かつ非生産的である。
最近のプロセッサ設計で知られているもう1つの技術は
、分岐予測に基づく条件付き命令実行である。そのよう
な設計では、分岐命令の結果の予測をもとに、復号及び
実行のため命令ストリームが取り出される。まちがった
予測にもとづいて誤って命令が開始された場合、−後で
それを打ち切ることができる。命令の確認前に、条件付
き実行から生じた記憶要求が保留記憶スタック(PSS
)内に保持され、終了時にそれが最終的に解除される。
命令の終了及び保留記憶の解除はアーキテクチャ上の順
序に従って行なわれる。ただし、命令は完了前に到着順
に実行できる。条件付き命令ストリームが打ち切られる
と、関連する命令待ち行列とPSS内の保留記憶はすべ
て適切にリセットされる。
キャッシュ整合性の理由から無効となる可能性のある記
憶データにもとづいて命令が条件付きで実行できるとい
う従来技術は知られていない。
先行データ・アクセスによって、XIEXのために生じ
る遅延を最小にする従来の技術は知られていない。MP
キャッシュ設計の既知の方法はすべて、アーキテクチャ
上の整合性を保つため、その行が既に消去されていると
きだけ、CPがキャッシュ行にアクセスできるようにな
っている。XIEX状態では、その行止でEX状態を保
持している遠隔CPがEX制御を解除して、その行が要
求側CPのキャッシュに取り出せるようにしたときにだ
け、要求側CPはそのキャッシュ行にアクセスすること
ができる。
C0発明の要旨 本発明の目的及び特徴を表す好ましい例示的な実施例に
よれば、消去プロシージャが完了する前でさえも、XI
EX条件のときCPにキャッシュ行にアクセスさせる機
能が提供される。その結果、XIEX杖態のときCPに
よってアクセスされた行がダーティであることが判明し
、適切な命令を再開させる場合は比較的少ない。これは
、XIEX処理のための消去プロシージャによる非常に
大きな性能低下の大部分がなくなるので、性能上天きな
利益がある。
本発明は、X工EX状態のときにデータの取出しを扱う
ための取出し後確認(FTC)手法を提供する。
本発明では、STキャッシュ設計と、XO/RO状態を
伴うSIC型キャッシュ整合性管理機能を有するMPシ
ステムを利用する。比較的高速のMSまたは共用し2を
想定する。XIEX時の要求されたデータの取出しまた
は使用が、SCEが消去プロシージャを介して要求され
た行の妥当性(または無効性)確認を受は取る前に可能
となる。
妥当性が断定できない行がCPによって使用されるとき
は、SCEから確認を受は取るまで、その行の妥当性に
応じて命令の実行の結果が外部(たとえばキャッシュ)
にコミットされない。SCEからの確認が、行りが有効
なことが判明したことを示すときは、Lの妥当性に応じ
てすべての結果を通常通りに完了させることができる。
ただし、SCEが、以前に取り出された妥当性が断定で
きない行りが実際には無効であったことを示す場合、L
の内容に基づいて実行されるすべての動作を打ち切り適
切に再開させなくてはならない。
したがってFTC法では、X工EX状態がSCEによっ
て検出されたとき、要求側CPにメモリからの行のコピ
ーの取出しが開始させ、同時に、消去プロシージャに関
する信号がXI目標CPに送られる。このような状況で
は、要求側CPは、取り出される行がその妥当性が確認
されておらず、したがって有効ではない可能性があり、
SCEからの確認を待たなければならないことを認識す
べきである。SCEはまた、そのような状況を記憶して
、消去プロシージャの結果を待ち、後で要求側CPに適
切な確認を与える。
したがって、本発明の1目的は、XI問題を解決するた
めキャッシュ行を早期に取り出す方法を提供することで
ある。
本発明の別の目的は、命令の実行時に不必要な遅延をな
くすことである。
本発明のもう1つの目的は、妥当性の判定を行なう前に
、キャッシュ行を利用できるようにすることである。
D、実施例 第1図は、本発明が適用される多重処理(MP)システ
ムを示す。MPは4台の中央演算処理装置(CP)CP
OないしCP3 (10,11,12,13)を含み、
各CPはそれぞれ命令実行(IE)装置14.15.1
6.17及びバッファ制御装置(BCE)20.21.
22.23を含む。各IEは、ハードウェアと、主記憶
装置(MS)50内でのオペランドの取出し及び記憶を
要求する命令を発行するマイクロコードを内蔵する。
IE14−17は、当該の各キャッシュ制御機構(BC
E)20−23に対して取出しコマンドまたは記憶コマ
ンドを発行して、取出し動作または記憶動作を開始する
。キャッシュ制御機構は、関連するプロセッサ・キャッ
シュ・ディレクトリ(PD)を伴うプロセッサ・ストア
スルー(ST)キャッシュと、関連CP10−13が専
用するすべてのプロセッサ・キャッシュ制御機構を含む
CPは一般に、オペランドが必要とする各ダブルワード
(DW)単位ごとに取出しコマンドまたは記憶コマンド
を発行する。DWを含むキャッシュ行がPD内にある場
合は、キャッシュ・ヒツト状態であり、コマンドに応じ
てDWがキャッシュから取り出され、またはキャッシュ
内に記憶される。
キャッシュ内でオペランド取出しヒツトの場合、BCE
の外部に出る必要はなく、記憶装置アクセスが完了する
。場合によっては、必要とされるDWがキャッシュ内に
ないことがあり、キャッシュ・ミスとなる。
IE取出しまたは記憶コマンドを完了する前に、DWを
主記憶装置から取り出さなくてはならない。
そのため、BCEは対応する取出しまたは記憶ミス・コ
マンドを生成する。このコマンドは、記憶制御要素(S
CE)30に、IEが必要とするDWを持つデータの行
単位を主記憶装置50から得るよう要求する。行単位は
主記憶装置内の行境界上にあるが、必要とされるDWは
、失敗した行転送の完了前にIE要求を進行させておく
ため要求側BCE20−23に戻される、取出し行の最
初のDWである。
5CE30は、CPlo−13及び主記憶装置50に接
続されている。主記憶装置50は、複数の基本記憶モジ
ュール(BSM)制御装置BSGOないしB5C5(5
1,52,53,54)で構成されている。各基本記憶
制御装置(B S C)51−54は、2つのBSMO
(801B2.84.86)及び(8L 83.85.
87)に接続されている。4個のBSGO−3(51−
54)がそれぞれ5CE30に接続されている。
5CE30は4個のコピー・ディレクトリ(CD)31
.32.33.34を含む。各CDは米国特許箱439
4731号明細書に記載されているのと同様に、あるB
C8中に対応するプロセッサ・キャッシュ・ディレクト
リ(PD)の内容のイメージを含んでいる。PGとCD
は共に、論理アドレスから同じビット位置によってアド
レスされる。CDはすべての相互間合せ(XI)要求を
処理し、したがってそれぞれのCPに対してよりよいサ
ービスを提供することができる。ダブルワード幅の両方
向データ・バスが、主記憶装置内の各BSM80−87
と各SCEポートの間に、また各5CE30から各CP
及び入出力チャネル制御プロセッサ40への間に設けら
れている。データ・バスと共に、制御信号及びアドレス
信号用の独立した1組のコマンド・バスもある。CPが
DWアクセス要求に関してキャッシュ・ミスに出会った
たとき、そのBCE20−23が5CE30にミス・コ
マンドを送ることによって、主記憶装置に対する行アク
セス要求を開始する。次に5CE30が主記憶装置内の
必要とされる88M80−87に対してコマンドを再発
行する。BSM使用中状態の場合、5CE30は、その
要求をコマンド待ち行列に保管し、必要とされる88M
80−87が後で利用可能となったときにそれを再発行
する。5CE30はそのXI論理によってキャッシュの
衝突が発見されたときを除き、特定のBSMに対するす
べてのコマンドが先入れ先出しくF I FO)順に発
行されるよう、主記憶装置コマンドを正しい順序に並べ
る。通常の主記憶装置要求処理シーケンスでは、5CE
30は定常的に主記憶装置の状況を監視し、保護キーの
間合せ結果及びすべてのキャッシュ・ディレクトリを分
析し、現在5CE30に保持されているすべての保留コ
マンドの更新済み状況を検査し、またBCE20−23
内で待機中の、5CE30が受は取るべき新しいBCE
コマンドがあるかどうか探す。
5CE30は複数の記憶スタック5so−ss3 (3
5−38)を保持する。各記憶スタックはそれぞれ、対
応するCPに対する最大16個のDWの主記憶装置記憶
要求を保持する。5CE30は主記憶アドレスと妥当性
を示すため記憶スタックに充分なディレクトリ情報を保
持する。記憶スタックがあぶれを起こす危険があるとき
、5CE30は関連するBCE20−23に優先順位要
求を送って、BCE20−23が後で5CE30から記
憶スタック溝杯条件を消去するための信号を受は取るま
で、それ以後の記憶要求の送信を保留させる。記憶スタ
ック内のデータは、各記憶スタック内で到着順序を維持
しながら適切なスケジューリングに従っ、て主記憶装置
に対して更新される。
CPからの行取出し要求は、記憶スタック内の行に対す
る既存のすべての記憶が関連するB 5M6O−67に
送られたことをSCEが確認するまで、5CE30によ
って保留される。
第2図は各CPに関するIE装置の命令制御機構の背景
構成図である。各CPのIEは条件付きで命令を実行す
る能力を持つ。必ずしも必要ではないが、分岐予測を採
用してもよい。この説明では、話を単純にして、XIE
X事象のときダーティである可能性のあるデータを取り
出すことが条件付き実行の唯一の原因であると想定する
。ただし、条件付き実行の制御は、分岐予測マシンの場
合と非常によく類似してい′る。特に命令が打ち切られ
たとき、IE装置は命令が開始される前の点までマシン
状r1!(レジスタ)をリセットすることができる。1
6個のハーフワードを含む命令バッファ(IBUF)7
0がある。ただし、IBM370アーキテクチャでは、
各ハーフワード(HW)は2バイト長であり、各命令コ
ードは工ないし3ハーフワードの長さとすることができ
ることに留意されたい。
本発明の実施例を単純化するために、順序通りの逐次実
行だけを想定するが、本発明の概念では、順序以外の実
行に関するより複雑な実施態様も除外されない。条件付
きで実行される命令を含めて、命令は、命令ス) IJ
−ム内での論理的順序に従っ・てのみ実行される。オペ
ランドの取出し及び記憶は、論理的順序に従ってのみ実
行される。IE表装置、現在実行されている命令が条件
付きであるか否かを示す単一のフラグ・レジスタCNF
LG71を維持する。IEはまた、レジスタCNIAD
DR72も維持する。CNFLG= 1の条件付き実行
段階では、CNIADDRは、主記憶装置からのデータ
の条件付き取出しを最初に開始した命令のアドレスを保
持する。
第3図は、BCEまたとえば20の全体構成図である。
BCEはBCE制御機構80を介して、TLB制御機構
81を使って論理的主記憶装置アクセス・アドレスから
実アドレスに変換するための変換ルックアサイド・バッ
ファ(TLB)を保持する。プロセッサ拳キャッシュ・
ディレクトリ(PD)82はプロセッサ・キャッシュ・
ディレクトリである。キャッシュ・アレイ83は、実際
のキャッシュ・データを含んでいる。保留記憶スタック
(PSS)84は8個のエントリを持つ。
PSS84は、まだキャッシュ及び主記憶装置に送られ
ていないIE実行からのDW記憶を保持するために使用
される。BCE制御機構は、そのとき活動状態の、ダー
ティである可能性のあるキャッシュ行があるか否かを示
すフラグ・ピッ)CNPHA S E 8 ”5を維持
する。
第4図は、米国特許第4484267号明細書の記載と
類似した、BCE(たとえば20)内の典型的キャッシ
ュ制御機構80を表している。IEからの取出しまたは
記憶要求アドレス(論理アドレスまたは実アドレス)9
0は、プロセッサ・キャッシュ・ディレクトリ(PD)
91から合同クラスを選択するのに使用される。すでに
説明した4方向セット連想式キャッシュ設計では、選択
された合同クラスから読み出される4個のディレクトリ
・エントリA−Dが存在する。これらの4個のPDEエ
ントリA−Dに記録された絶対行アドレスが、92で、
アドレス変換機構93から得られた絶対要求アドレスと
比較される。これらのアドレスを比較して、どの行がキ
ャッシュ内で紛失しているか、または5ELA1SEL
B1SELC及び5ELDの各信号によって示されるよ
うに、4行のうちのどれにこのアクセスがヒツトするか
が判定される。アドレス比較の結果はIE表装置アレイ
制御機構の両方に渡される。置換制御機構94は、置換
状況アレイを保持し、必要に応じてこれらの状況アレイ
を更新し、新しい行がMSから取り出されたときに置換
すべき行エントリを選択する。PDエントリ書込み制御
機構95は、PDエントリの更新を制御する。DW取出
し要求の場合、PD読取り及び変換プロセスと並行して
、選択された合同クラス中の4個のDWすなわちA−D
が、後で92でディレクトリ・アドレス比較が行なわれ
たときに97で選択を行なうため、アレイから読み取ら
れる。制御機構98による決定に応じて、DWデータが
104から必要に応じてIE表装置たはMSのいずれか
に読み出される。米国特許第4394731号明細書に
示されているように、IEからのDW記憶の前に、もっ
と早いサイクルで、記憶間合せ(SI)要求が先行する
SI要求は、キーの違反、キャッシュ・ミスまたはEX
状況の欠落などの衝突なしに記憶が行なわれることを保
証する。SIサイクルの後に、実際のDW記憶がIEに
よって発行され、適切なアレイ位置に直接保存される。
アレイ96は、99及び95の制御下で行またはダブル
ワード単位で更新される。アレイ記憶のためのデータは
IEまたは主記憶装置のいずれかから103へ到達する
ストアスルー型キャッシュ設計では、SI要求は、MS
にDW記憶を発行するか、あるいは保留記憶スタック(
PSS)にそれを保持することを可能にしなくてはなら
ない。そうでないと、S■要求は、衝突状態が後のサイ
クルで解除されるまで、IEで記憶を保留させる。
第5A図と第5B図はそれぞれ、米国特許第43947
31号明細書に記載されているものと類似の、CD (
110)及びCD(120)のエントリのフォーマット
の図である。V(116,122)はディレクトリ・エ
ントリの有効ビットである。関連EXビット(115,
121)が1の場合には、有効行は排他的(EX)状態
であり、それ以外の場合には、読取り専用(RO)状態
である。
各PD行はさらに、保護キー(PROT  KEY)、
行変更(LCCH)ビット、取出し保護(F  PRO
T)ビット、及びページ変更(PGCH)ビットを含む
SCEのCDは、米国特許第4394731号明細書に
記載されているのと同様に対応するBCEのPDに対す
る鏡像として維持される。CDエフ)!J(7)内容(
EXlV及びABS  ADDR117と123)は、
状況変更のための遷移段階の間を除き、対応するPDエ
ントリの内容と同じでなくてはならない。ただし、この
STキャッシュ設計では、キャッシュに対するすべての
CP記憶がMSに反映されるので、PDエントリに、M
Sに送るべくスケジューリングされていないデータをキ
ャッシュ行が保持しているか否かを示す、LN/CH(
行変更済)フィールド113は必要でない。第5C図は
、PDエントリの修正されたフォーマット125を含ん
でいる。
ST設計では、BCEからSCEへの廃棄(casto
ut)コマンドは不要である。米国特許第439473
1号明細書に記載されているようなSIC設計用の廃棄
コマンドは、SICにおける変更済みの行を、5CE3
0によって主記憶装置で更新させる。ST設計では廃棄
コマンドの代りにDW記憶コマンドが用いられる。この
DW記憶コマンドを使って、SCEはIE記憶時に主記
憶装置を更新するため、5CE30にDW記憶要求を送
る。SCEに対する記憶要求がBCEによって行なわれ
ると、その記憶のDWデータがデータ・バスを介して並
列に送信される。SCEは、BCEからの記憶要求が通
常の条件でSCEの関連記憶スタック(SS)で必ず受
は取られるよう、BCEと調整しなくてはならない。C
Dを検査することによるSCEでの相互間合せ(XI)
の処理は、米国特許第4394731号明細書の処理と
類似している。本発明では、キャッシュ・ミスでも、消
去プロシージャがXIEX状態で完了する前に、主記憶
装置から行を取り出すことが可能である。SCEからB
CEへの応答信号は、追加の消去済み(CLR)ビット
で機能強化される。CLRビットが0のとき、BCEは
、この新しく取り出された行をダーティである可能性が
あり使用した場合打ち切られる場合があるものとして扱
う。
そうでない場合は、取り出された行は通常通り有効であ
るとみなされる。
IEは、やはり米国特許第4394731号明細書に記
載されているような、EXの意図を含む取出し要求また
はSI要求を発行することができる。このような要求は
、要求されたDWが、EXビットがオンのキャッシュ行
にヒツトしたときだけうまく取り扱える。ROの意図を
含む取出し要求は、Vビットがオンのキャッシュ内の有
効行のみを必要とする。キャッシュ・アクセスにおける
保護上のエラー及びその他の例外条件は、特殊な例外論
理によって処理される。
BCE (たとえば20)における保留記憶スタック(
PSS)132を第6A図に示す。PSSI32は、0
ないし7で表した8個のエントリを含む円形FIFO待
ち行列として実施されている。
各PSSエントリは、IEから発行された記憶に関する
DWデータを含む。第6B図は、ビット単位で表したサ
イズを含む、PSSディレクトリ・エントリ140のフ
ォーマットを示す。各PSSディレクトリ・エントリに
は、絶対DWアドレス・フィールド5TRADDR(2
8ビツト)144.2個のフラグ・ビットCRLSE 
(1ビツト)141とMSONLY (1ビツト)14
2、及び記憶されたDWのキャッシュ位置を記録するフ
ィールド5TRCOORD 143の少なくとも3つの
フィールドがある。CRLSE141ビットがオンのと
き、DW記憶は条件付き段階にあり、主記憶装置に解放
されない。PSSエントリに関するMSONLY142
ビットがオンのとき、その記憶は既にキャッシュに保存
されているが、まだ主記憶装置には送られていない。B
CEは、PSS管理に関する3個のインデックス・レジ
スタNXTRLSE135、CN5TR13B及びNX
TSTR137を維持する。これらのレジスタはそれぞ
れ0ないし7のいずれかの整数値を保持する。
最初、これら3つのレジスタはすべてOにリセットされ
ている。NXTRLSE135は、最初の記憶を保持し
ているPSSエントリを指し、NXTSTR137は次
の記憶を挿入すべき次のエントリを指す。CN5TR1
38は、CNPHASE=1の場合、最初の条件付き記
憶を保持するPSSエントリを指す。BCE20はまた
、空きエントリの数を示すカウンタ・レジスタPSSF
REE134を維持する。これは最初8に設定されてい
る。PSSがそのとき空でない場合、BCEは定常的に
記憶を保存しているかどうか調べるためPSS内の最初
のDWを探索する。PSS内の記憶はすべて到着順にキ
ャッシュ及び主記憶装置に保存される。
本発明の説明を簡単にするために、各DCEは、いつで
も複数の未処理要求がSCEに発行できないようにする
必要がある。ただし完了済みの命令または無条件で実行
された命令に関するPSSから主記憶装置への記憶解放
は例外である。次の説明でも、例外条件の処理は無視す
る。
第7A図は、工E装置からROの意図を含む取出し要求
を受は取った際(200)のBCEの処理を表すフロー
チャートである。BCEでCNPHASE=Oである場
合(ステップ201)、BCEは、SCEに対してRO
の意図を含むミス取出し要求を発行する(ステップ20
2)。そうでなくCNPHASE=1である場合(20
1)、CNPHASEが後でクリアされる(ステップ2
03)までミス取出しは保留される。IEは遊休状態に
入り、未着DWがMSから到達するのを待つ。キャッシ
ュ・ヒツトになると(ステップ204)、PSS内に存
在している可能性があるDW記憶のどれかと衝突しない
場合、遅延なしにDWがキャッシュからアクセスされる
(ステップ205)。このような衝突の検出は、オペラ
ンド記憶比較コマンドによって行なわれる。このコマン
ドは、要求された取出しDWアドレスを、MSONLY
ビットがオフになっているPSS内のすべての有効なり
Wアドレスと突き合わせる。一致が見出された場合は、
衝突が検出され、その場合その取出しは、後で衝突条件
が解消されるまで再発行される。
第7B図は、工E装置からEXの意図を含む取出し要求
を受は取った際(ステップ210)のBCEの処理に関
するフローチャートである。この取出しは、その行がE
X状態で(ステップ212)キャッシュ内に常駐してい
る場合(ステップ211)、遅延なしに実行される(ス
テップ213)。
DWがキャッシュ内でRO行にヒツトした場合(ステッ
プ214)、BCEは、可能なとき、SCHに対してE
X状況に移ることを求める要求を発行する(ステップ2
15)。その行がキャッシュ内に存在しない場合(ステ
ップ211)、BCEは、可能なときSCEに対してE
Xの意図を含むミス取出し要求を発行する(ステップ2
18)。
このようなSCE要求は、条件付き実行が有効な場合に
は保留される(ステップ216及び219)。
第7C図は、IE装置からEXの意図を含む記憶間合せ
(SI)要求を受は取った際(ステップ22o)のBC
Eの処理に関するフローチャートである。BCEの動作
は第7B図に記載されている動作と類似している。ただ
しIEに対するDWの取出しば必要でない。BCEは、
工Eから記憶が到来すると予想して、DWに関して見つ
かったキャッシュ座標を記録する。この取出しは、その
行がEX状態で(ステップ222)キャッシュ内に常駐
している場合(ステップ221)、遅延なしに実行され
る(ステップ226)。DWがキャッシュ内でRO行に
ヒツトした場合(ステップ223)、BCEは、可能な
ときSCEに対してEX状況に移ることを求める要求を
発行する(ステップ224)。その行がキャッシュ内に
存在しない場合(ステップ221)、BCEは、可能な
ときSCEに対してEXの意図を含むミス取出し要求を
発行する(ステップ228)。このようなSCE要求は
、条件付き実行が有効な場合には保留される(ステップ
225及び229)。
第7D図は、IE装置から記憶要求を受は取った際(ス
テップ230)のBCHの処理に関するフローチャート
である。条件付き実行では、CNPHASE=1 (ス
テップ231)のとき、可能ならDW記憶がPSSに置
かれる(ステップ232及び233)。PSSが溝杯の
場合は(ステップ234)、PSSに空きができるまで
その記憶は保留される。いずれの場合も、記憶要求が条
件付き実行のためPSSに置かれるとき、その記憶はキ
ャッシュ・アレイには保存されず、記憶が後で解放され
たときにキャッシュ記憶の保存が必要となるようにMS
ONLYフラグが関連PSSエントリでOに設定される
(ステップ233)。CNPHASE=Oの記憶要求で
は(ステップ231)、BCEはキャッシュにDWを保
存しようとしくステップ235)、可能なら直接MSに
DWを送ろうとする(ステップ236及び238)。
その記憶は、そのときPSS内に他に未処理の記憶がな
い場合、キャッシュに保存される(ステップ237.2
41)。何らかの理由でBCEがキャッシュへの保存や
MSに記憶を送るのを完了できない場合、BCEは、空
きがある場合PSSに記憶要求を置く。DWがキャッシ
ュに保存され、その要求がMS記憶スタック清杯条件の
ためPSSに置かれる場合には、後でキャッシュ記憶が
反復されるのを防止するため、PSSエントリでMSO
NLYビットが1に設定される。
SCEがCPiからDW記憶要求を受は取ると、その要
求はSCEの記憶スタックSSiの待ち行列に入れられ
る。SCEは可能なとき、DW記憶を記憶スタックから
主記憶装置に定常的に更新する。
SCEはBCEから3つの主要な要求を受は取る。RO
の意図を含むミス取出しは、RO状態の主記憶装置から
のキャッシュ行の転送を要求する。
EXの意図を含むミス取出しは、EX状態の主記憶装置
からの行の転送を要求する。第3の要求のタイプは、E
X状況へのアップグレードであり、RO状態ですでにB
CEに存在しているキャッシュ行に関してEX状況だけ
を要求するBCEからの要求は、相互間合せ(XI)活
動をトリガする。
SCEは、米国特許第4394731号明細書に示され
ている方式に類似しているが、実際には異なる方法でX
Iを処理する。CDの維持及びXI条件を判定する際の
それらの探索は類似しているが、XI条件の解決には異
なるアルゴリズムが使用される。以下に、BCE要求の
SCHによる処理を、CPi (0≦i≦3)のBCE
からの要求に関して説明する。第8A図ないし第8C図
は、BCEからの3種類の要求のSCEによる処理を表
すフローチャートである。
第8A図は、ROの意図を含むCPiからの行ミス要求
(ステップ270)のSCEによる処理に関するフロー
チャートである。この行が遠隔位置でEXに保持されて
いない場合(271)、SCEは、主記憶装置からCP
iに行取出しをスケジューリングし、CRLビットがオ
ンの行受信信号でCPiに合図を送る(ステップ272
)。ここで、CPj (j〆i)が行EXを保持してい
ると仮定する。SCEはEXをROに変更する(CER
O)信号をCPjに送る(ステップ273)。
次に、SCEは、その行が記憶スタックSSj内の未処
理DWとオーバラップしているか否かを検査する(ステ
ップ274)。オーバラップしていない場合には、SC
Eは主記憶装置からPO状態が割り当てられているCP
iへの行の条件付き取出しをスケジ一−リングし、CP
lのBCEにCRLピットがオフである行受信信号で通
知する。
ここで、SCEは、CPjがなおその行に対してEX状
態を想定していることを認識し、CPjが後のサイクル
でEX状況の解放を肯定応答すると期待する。一方、S
CEは、そのときにその行が既にSSj内の記憶と衝突
していることを検出した場合、CPjからEX伏況解除
信号を受は取りた後、SSj内の衝突するすべての記憶
が主記憶装置に送り出されたときに限り、主記憶装置か
らCPjへの無条件行取出しくCLR=1)をスケジュ
ーリングする。一般に、SCEは、記憶スタック内の衝
突する記憶が解消されるまで、主記憶装置の行の取出し
のスケジューリングを行なわない(ステップ277)。
SCEが未処理の記憶の衝突を検出したときに、条件付
きの主記憶装置の行取出しをスケジューリングしない理
由は、この場合CPjが他にも記憶を生成する可能性が
大きいということである。
第8B図は、CPiからのEXの意図を含む行取出し要
求に関するSCEの動作を示す。これは、第8A図に示
されているプロシージャと類似している。ただし、SC
Eは、CD内に示されているような行のコピーを保持す
るすべてのCPに対し行無効化信号を送らなくてはなら
ない。
その行が遠隔位置でEX状態に保持されていない場合は
(281) 、遠隔キャッシュ内にその行が存在してい
るか否か(ステップ282)、及び、遠隔BCEがその
行を無効化するよう指示されているか否か(ステップ2
88)を判定するため検査が行なわれる。その後、その
行が遠隔キャッシュに存在しない場合には(ステップ2
82)、SCEは主記憶装置からCPiへの行取出しを
スケジューリングし、CLRビットがオンの受信行信号
でCPiに合図する(ステップ289)。CPj (j
P’i)が行をEX状態で保持している場合、SCEは
CPJにその行を無効化するよう指示する(ステップ2
83)。次に、SCEは、その行が記憶スタックSSj
内の未処理DWとオーバラップするかどうかを検査する
(ステップ284)。
オーバラップしていない場合には、SCEは、主記憶装
置からRO状態が割り当てられているCPiへの行の条
件付き取出しをスケジューリングし、CPiのBCEに
、CLRビットがオフの受信行信号で通知する。ここで
、SCEは、CPjがまだその行に対してEX状態であ
ると想定していることを認識し、CPjが後のサイクル
でEX状況の解除を肯定応答するよう期待する(ステッ
プ285)。一方、SCEは、そのときにその行がSS
j内の記憶とすでに衝突していることを検出した場合は
、EX状態解除信号をCPjから受は取った後、SSj
内の衝突するすべての記憶が主記憶装置に送り出された
ときに限り、主記憶装置からCPjへの無条件行取出し
くCLR=1)をスケジューリングする。
一般に、SCEは、記憶スタック内の衝突する記憶が解
消されるまで、主記憶装置行取出しをスケジューリング
しない(ステップ287)。SCEが未処理の記憶の衝
突を検出したときに条件付き主記憶装置行取出しをスケ
ジューリングしない理由は、この場合CPJが他にも記
憶を生成する可能性が大きいということである。
第8C図は、CPiからのEXへのグレードアップ要求
に関するSCEの動作を示す(ステップ290)。この
場合、その行はすでに有効で、CPlのBCEでRO状
態にある。SCEは、その行が遠隔キャッシュ内に保持
されていると判断した場合(ステップ291)、その行
のコピーを含むBCEに無効イヒ信号を送り出すだけで
よい(ステップ292)。この設計では、CPIがRO
状態からEX状態へのグレードアップに関する信号を受
は取る前に、すべての無効化信号の受信装置が、その信
号を受は取るようになっている(ステップ293)。タ
イミングの制御は、実施環境によって異なる。
第8A図及び8B図では、SCEがCPj (JP′i
)によって保持されている行のEX状態の解除を最終的
に決定する前に、主記憶装置からCPiへの条件付き行
取出しが、スケジューリングされる。EX状況の解除に
関する肯定応答の前に、SCEがその行に関する後続の
記憶をCPjから受は取ることが可能で′ある。このよ
うな場合、SCEは、CPiに、定期釣行無効化信号に
よって条件付きで取り出されたデータを打ち切るようt
指示しなくてはならない。一方、SCEは、CPjから
その行に対する余分な記憶を生成せずにEX状態を解除
することについての肯定応答を受は取った場合、状態の
変更を最終的に決定することができ、CPiに状況確認
信号を送る。CPiが状況確認信号を受は取った後、B
CEは後で説明するように、その行の条件付き状況を廃
棄する。
関連する記憶スタック内の関連記憶が主記憶装置にクリ
アされたことを確認するまで、SCEはCPによる行の
EX状態の解除を最終的に承認しない。これは一般に必
ずしも不可欠な要件ではない。この設計の説明を簡単に
するため、ここではこの仮定を行なった。またXIの処
理をSCEが正しく直列化するものと想定した。SCE
は、CP自体からのそれ以前の要求の処理を完了するま
では、CPに対して行に関するXI要求を発行しない。
cpのB C’Eは、SCEから、行の受取り、状況確
認、CERO及び行無効化という4種類の主要な信号を
受は取る。第9A図ないし第9D図は、これらの信号を
受は取った際のBCEの活動に関するフローチャートで
ある。
第9A図は、SCEからの行受信信号に対するBCEの
活動を示す(ステップ300)。BCEは、その後主記
憶装置からデータを受は取れる状態となる(ステップ3
01)。信号内のCLRビットが1で、無条件取出しを
示す場合、BCEは通常のようにデータの到着を待つ(
ステップ304)。CLRビットが0(ステップ3o2
)で条件付き転送を示す場合は、BCEは、後で第10
図に関して説明するように、条件付き実行段階を開始す
る(ステップ303)。
第9B図は、SCEから状況確認信号を受は取った際(
ステップ310)のBCEの活動を示す。
この状況では、条件付きで取り出された未処理の行が存
在していなくてはならない。BCEは、そのCNPHA
SEフラグをオフにし、PSSディレクトリ内のCRL
SEビットをすべて0にリセットして、条件付き実行段
階をリセットする。またBCEは、IE装置に、そのC
NFLGレジスタをOにリセットするよう指示する(ス
テップ311)。
第9C図は、SCEからCERO要求を受は取った際(
ステップ320)のBCEの活動を示す。
BCEはSCHにまだ解放されていない前の無条件実行
からの保留記憶が存在するかどうかを検査する。(ステ
ップ321)。BCEはPSSを検査しくCN5TR=
Oの保留記憶と突き合わせ)、SCE及びキャッシュに
対する現在進行中であるが未完了の記憶の解放が存在す
るかどうかを判断して、これを確認する(ステップ32
2)。衝突条件がすでに存在しないときには、BCEは
、その行がキャッシユ・ディレクトリにある場合(ステ
ップ323)、その行のEX状態をROに変更しくステ
ップ324) 、CERO動作の完了をSCEに指示す
る(ステップ327)。条件付き実行段階が完了したこ
とがBCEでCNPHASE=1によって示され(ステ
ップ325)、その行のEX状態がキャッシュに存在し
ていた場合(ステップ323)、BCEは、すべての無
条件命令の打切りをトリガする(ステップ326)。
第9D図はSCEから行無効化要求を受は取った際(ス
テップ330)のBCEの活動を示す。
この動作は、CERO要求の処理に関する動作と類似し
ている。
BCEは、行がキャッシュ内で見つかった場合(ステッ
プ331)、まだSCEに解放されていない前の無条件
実行からの保留記憶が存在するがどうか検査する。BC
Eは、PSSを検査しくCRLSE=Oの保有記憶と突
き合わせ)、SCE及びキャッシュに対する進行中であ
るが未完了の記憶解放が存在するかどうかを判断して、
これを確認する(ステップ333)。その後、ステップ
334でこの行が無効化される。条件付き実行段階が完
了したコトカB CE テCN P HA S E =
 1によって示される場合、BCEはすべての条件付き
命令の打切りをトリガする(ステップ336)。
ただし、その行がすでにキャッシュに存在しない場合に
は、存在する可能性のある条件付き実行を必ずしも打ち
切る必要はない。BCEは、その行がキャッシュ内でE
X状態にない限り、scEに完了を指示する必要はない
(ステップ337)。
第10図は条件付き実行段階を開始するためのBCE及
び■Eの活動を示す。B CE It、SCEからCL
Rビットがオンの行取出し信号を受は取ると(ステップ
340) 、CNPHASEを1にセットし、PSS管
理のためCN5TRレジスタにNXTSTRインデック
ス・レジスタの値を割り当てる。BCEはまた、IE表
装置、条件付き実行を開始するよう指示する(ステップ
341)。
IE表装置CNFLG=1によって条件付き実行段階を
認識する。CNFLGが最初にオンになったとき、■E
表装置、レジスタCNIADDR内に命令アドレスを記
憶する(ステップ342)。
条件付き実行段階では、PSSで記憶が待機していると
CRLSE及びMSONLYビットがオフになり、NX
TSTRレジスタが1だけ増分され(モジューロ8)、
PSSFREEが1だけ減分される。また、先行するS
Iコマンドによって識別されるキャッシュ行の位置が、
新しいPSSエントリの5TRCOORDフイールドに
記録される。PSSFREE=Oのとき、PSS挿入に
関する288桁あふれ条件が検出される。この場合、記
憶はIEによって保留される。無条件実行段階では、S
CEにおける記憶スタックが満杯のとき、記憶がPSS
に置かれる。ただしDWはキャッシュに保存される。こ
のような場合、PSSエントリでMSONLYビットが
オン1こなり、5RLSEビツトもオンになる。
第11図は、PSSから次に解放される記憶を見つける
ためのCPi内のBCEの動作を示す。
BCEは定常的に、次にSCEに解放すべき保留記憶が
あるかどうかPSSを検査する。PSS内の次の記憶は
、NXTRLSEレジスタによってインデクシングされ
る(ステップ350)。NXTRLSEがNXTSTR
(空のPSSを示す)に等しいか、またはCRLSEビ
ットがオンの場合(条件付き記憶を示す)(ステップ3
51)、PSS上の次の記憶は解放できない。記憶がP
SSから解放されるとき、BCEは、レジスタNXTR
LSEを1だけ増分しくモジューロ8)(ステップ35
7)、PSSFREEを1だけ増分する。解放されたP
SS記憶エントリのMSONLYビットがオフのとき(
ステップ355)、DWも、PSSディレクトリ・エン
トリの5TRCOORDフイールドによって位置決めさ
れるキャッシュに保存される(ステップ356)。
条件付き実行の打切りは、BCEによってトリガされ、
やはりIE表装置よって処理される。BCEは、CNP
HASEフラグを0にセットし、CN5TRレジスタの
値でNXTSTRレジスタをリセットし、PSSFRE
Eを調整してPSSにあるすべての条件付き記憶をクリ
アする。IE表装置打切りを指示されると、CNFLG
をオフにし、CNIIDXアドレス・レジスタに記録さ
れた命令の実行を再開する。
実行の再開には、実施態様に応じて、マシンの状態を適
切にリセットする必要がある。1つの簡単な技法は、条
件付き実行の前にIEがPSWやGPRなどのマシンの
状態をコピーするものである。実施態様に応じて、命令
実行のバックアップやシステム回復が好ましくないほど
複雑になるときには、条件付き実行を保留しあるいは打
ち切るのが好都合である。たとえば、この設計では比較
後スワップ(C8)などの直列化命令については条件付
き実行を禁止している。極端な場合、この設計は、どん
な条件付き実行も行なわず、ただXIEX状態時にキャ
ッシュ行の早期取出しを行なうだけである。本発明をR
O及びEX状態のMPキャッシュ設計に関して説明して
きたが、データ行の早期取出しを可能にするため、EX
/RO状態を伴わないストアスルー型MPキャッシュに
同様のコンセット及び技術を適用することも可能である
【図面の簡単な説明】
第1図は、本発明が使用される多重処理システムを示す
図である。 第2図は、各プロセッサの命令実行装置における命令制
御機構の構成図である。 第3図は、バッファ制御要素の全体構成図である。 第4図は、代表的キャッシュ制御機構の構成図である。 第5A図、第5B図及び第5C図は、ブロセッサ・キャ
ッシュ・ディレクトリ・エントリ及びコピー・ディレク
トリ・エントリの各フォーマットを示す図である。 第6A図は、保留記憶スタックの構造を示す図である。 第6B図は、保留記憶スタック・ディレクトリ・エント
リのフォーマットを示す図である。 第7A図、第7B図、第7C図及び第7D図は、本発明
の詳細な説明に有用なフローチャートである。 第8A図、第8B図及び第8C図は、本発明の詳細な説
明に有用なフローチャートである。 第9A図、第9B図、第9C図及び第9D図は、本発明
の詳細な説明に有用なフローチャートである。 第10図は、本発明の詳細な説明に有用なフローチャー
トである。 第11図は、本発明の詳細な説明に有用なフローチャー
トである。 10−13・・・・中央演算処理装置(CP)、14−
17・・・・・命令実行装置(IE)、20−23.8
0・・・・バッフ1制御装置(BCE)、30・・・・
記憶制御要素(SCE)、・31−34・・・・コピー
・ディレクトリ(CD)、35−38・・・・記憶スタ
ック(88)、40・・・・チャネル、50・・・・主
記憶装置(MS) 、51−54・・・・基本記憶モジ
ュール制御装置(BSC)、60−87・・・・基本記
憶モジュール(BSM) 、70・・・・命令バッフ1
.71.72・・・・レジスタ、81・・・・変換ルッ
クアサイド・バッファ(TLB)制御機構、82・・・
・プロセッサ・キャッシュ・ディレクトリ(PD)、8
8・・・・キャッシュ・アレイ、84・・・・保留記憶
スタック(PSS)。 出願人  インターナシ日ナル・ビジネス・マシーンズ
・コーボレーシeン 復代理人 弁理士  澤  1) 俊  大筒5rlJ 1ε装置へ BCEへ 保留記憶 スタック (PSS) 第6A図 第10図

Claims (1)

  1. 【特許請求の範囲】 少なくとも2台のプロセッサ、プロセッサごとのキャッ
    シュ構造及び主記憶装置を有するコンピュータ・システ
    ムにおいてキャッシュ・ラインを取り出すキャッシュ・
    ライン取出し方法において、 前記キャッシュ・ラインの妥当性を確認するステップと
    、 キャッシュ間の問い合わせが終了するのを待つことなく
    前記プロセッサが要求するキャッシュ・ラインを取り出
    すステップを有し、 取り出したキャッシュ・ラインへのアクセスを当該キャ
    ッシュ・ラインが確認されるまで許可しないようにした
    ことを特徴とするキャッシュ・ライン取出し方法。
JP1242402A 1988-12-05 1989-09-20 フェッチ方法 Expired - Lifetime JPH0670779B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US280034 1988-12-05
US07/280,034 US5018063A (en) 1988-12-05 1988-12-05 Method for reducing cross-interrogate delays in a multiprocessor system

Publications (2)

Publication Number Publication Date
JPH02166539A true JPH02166539A (ja) 1990-06-27
JPH0670779B2 JPH0670779B2 (ja) 1994-09-07

Family

ID=23071356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1242402A Expired - Lifetime JPH0670779B2 (ja) 1988-12-05 1989-09-20 フェッチ方法

Country Status (4)

Country Link
US (1) US5018063A (ja)
EP (1) EP0372201B1 (ja)
JP (1) JPH0670779B2 (ja)
DE (1) DE68925470T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869413A (ja) * 1994-08-30 1996-03-12 Kofu Nippon Denki Kk ページ履歴メモリ装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185875A (en) * 1989-01-27 1993-02-09 Digital Equipment Corporation Method and apparatus for reducing memory read latency in a shared memory system with multiple processors
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5214766A (en) * 1989-04-28 1993-05-25 International Business Machines Corporation Data prefetching based on store information in multi-processor caches
JPH04246745A (ja) * 1991-02-01 1992-09-02 Canon Inc 情報処理装置及びその方法
DE69323790T2 (de) * 1992-04-29 1999-10-07 Sun Microsystems Inc Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
JP2788836B2 (ja) * 1992-05-15 1998-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータシステム
JPH06282528A (ja) * 1993-01-29 1994-10-07 Internatl Business Mach Corp <Ibm> データ転送方法及びそのシステム
JPH0793216A (ja) * 1993-09-27 1995-04-07 Hitachi Ltd キャッシュ記憶制御装置
US5590309A (en) * 1994-04-01 1996-12-31 International Business Machines Corporation 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
JPH0950400A (ja) * 1995-08-10 1997-02-18 Nec Corp マルチプロセッサシステム
US5881303A (en) * 1996-07-01 1999-03-09 Sun Microsystems, Inc. Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US5900015A (en) * 1996-08-09 1999-05-04 International Business Machines Corporation System and method for maintaining cache coherency using path directories
US5991825A (en) * 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US6112283A (en) * 1998-08-06 2000-08-29 Intel Corporation Out-of-order snooping for multiprocessor computer systems
US20070260754A1 (en) * 2006-04-13 2007-11-08 Irish John D Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss
US8544687B2 (en) * 2007-08-31 2013-10-01 Momentive Performance Materials, Inc. Display card with viscous material dispenser
WO2015065426A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Memory access for busy memory
US10949919B1 (en) 2017-05-10 2021-03-16 State Farm Mutual Automobile Insurance Company Approving and updating dynamic mortgage applications
US11094007B1 (en) 2017-05-10 2021-08-17 State Farm Mutual Automobile Insurance Company Continuously updating mortgage ready data
US10943294B1 (en) 2017-05-10 2021-03-09 State Farm Mutual Automobile Insurance Company Continuously monitoring and updating mortgage ready data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56159887A (en) * 1980-05-14 1981-12-09 Nec Corp Buffer memory circuit
JPS58154044A (ja) * 1982-03-05 1983-09-13 Nec Corp 情報処理装置
JPH0195344A (ja) * 1987-10-07 1989-04-13 Matsushita Electric Ind Co Ltd キャッシュ・メモリー

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4439829A (en) * 1981-01-07 1984-03-27 Wang Laboratories, Inc. Data processing machine with improved cache memory management
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4727486A (en) * 1986-05-02 1988-02-23 Honeywell Information Systems Inc. Hardware demand fetch cycle system interface
DE3750662T2 (de) * 1986-08-12 1995-02-16 Hitachi Ltd Mikroprozessor zur Datentransferwiederholung.
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
US4831622A (en) * 1987-12-22 1989-05-16 Honeywell Bull Inc. Apparatus for forcing a reload from main memory upon cache memory error

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56159887A (en) * 1980-05-14 1981-12-09 Nec Corp Buffer memory circuit
JPS58154044A (ja) * 1982-03-05 1983-09-13 Nec Corp 情報処理装置
JPH0195344A (ja) * 1987-10-07 1989-04-13 Matsushita Electric Ind Co Ltd キャッシュ・メモリー

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869413A (ja) * 1994-08-30 1996-03-12 Kofu Nippon Denki Kk ページ履歴メモリ装置

Also Published As

Publication number Publication date
DE68925470T2 (de) 1996-08-14
EP0372201A2 (en) 1990-06-13
JPH0670779B2 (ja) 1994-09-07
DE68925470D1 (de) 1996-02-29
EP0372201A3 (en) 1991-09-04
EP0372201B1 (en) 1996-01-17
US5018063A (en) 1991-05-21

Similar Documents

Publication Publication Date Title
JPH02166539A (ja) フェッチ方法
US6704841B2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
US5148533A (en) Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
EP0329942B1 (en) Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
EP0514024B1 (en) Method and apparatus for an improved memory architecture
JP3927556B2 (ja) マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ
US6249846B1 (en) Distributed data dependency stall mechanism
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
CA1300280C (en) Central processor unit for digital data processing system including write buffer management mechanism
US20130080709A1 (en) System and Method for Performing Memory Operations In A Computing System
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
US20020199066A1 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
EP0303648B1 (en) Central processor unit for digital data processing system including cache management mechanism
JPH0677233B2 (ja) データ処理システム
US20050210204A1 (en) Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
US5016168A (en) Method for storing into non-exclusive cache lines in multiprocessor systems
US6202126B1 (en) Victimization of clean data blocks
US5848283A (en) Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization
JPH02239331A (ja) データ処理システム及びその命令実行を促進する方法
WO1997004392A1 (en) Shared cache memory device
JPH0245845A (ja) データ処理システム
US5361368A (en) Cross interrogate synchronization mechanism including logic means and delay register
JPH0740248B2 (ja) キャッシュ制御装置