JPH0670779B2 - フェッチ方法 - Google Patents
フェッチ方法Info
- Publication number
- JPH0670779B2 JPH0670779B2 JP1242402A JP24240289A JPH0670779B2 JP H0670779 B2 JPH0670779 B2 JP H0670779B2 JP 1242402 A JP1242402 A JP 1242402A JP 24240289 A JP24240289 A JP 24240289A JP H0670779 B2 JPH0670779 B2 JP H0670779B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- state
- cache
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
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)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般にマルチプロセッサ環境におけるキャッ
シュに関し、具体的にはダーティである可能性のあるキ
ャッシュからデータ行を取り出すための方法に関するも
のである。
シュに関し、具体的にはダーティである可能性のあるキ
ャッシュからデータ行を取り出すための方法に関するも
のである。
B.従来技術 最近の高性能プログラム内蔵型ディジタル・コンピュー
タは、通常主記憶装置から命令及びデータを取り出し、
取り出した命令及びデータをキャッシュ・メモリ内に記
憶する。キャッシュとは、コンピュータの主記憶装置に
くらべ通常はるかに小型で高速のローカル記憶装置であ
る。高性能ディジタル・コンピュータはほとんどすべて
キャッシュを使用し、市販されている一部のマイクロプ
ロセッサでさえもローカル・キャッシュを備えている。
キャッシュが開発されたのは、最近のパイプライン化式
プロセッサに適合するアクセス時間で動作する超大型メ
モリを妥当なコストで構築するのが不可能なためであ
る。しかし、プロセッサと歩調を合わせることのできる
比較的安価で小型のメモリを構築することは可能であ
る。キャッシュを利用すると、キャッシュ内の命令をそ
れに必要なデータに対してプロセッサが即時アクセスす
ることができるので、通常コンピュータの性能がスピー
ド・アップする。
タは、通常主記憶装置から命令及びデータを取り出し、
取り出した命令及びデータをキャッシュ・メモリ内に記
憶する。キャッシュとは、コンピュータの主記憶装置に
くらべ通常はるかに小型で高速のローカル記憶装置であ
る。高性能ディジタル・コンピュータはほとんどすべて
キャッシュを使用し、市販されている一部のマイクロプ
ロセッサでさえもローカル・キャッシュを備えている。
キャッシュが開発されたのは、最近のパイプライン化式
プロセッサに適合するアクセス時間で動作する超大型メ
モリを妥当なコストで構築するのが不可能なためであ
る。しかし、プロセッサと歩調を合わせることのできる
比較的安価で小型のメモリを構築することは可能であ
る。キャッシュを利用すると、キャッシュ内の命令をそ
れに必要なデータに対してプロセッサが即時アクセスす
ることができるので、通常コンピュータの性能がスピー
ド・アップする。
通常、プロセッサ(CP)はそのキャッシュを介して主記
憶装置(MS)のデータにアクセスする。キャッシュは通
常2次元アレイとして編成されている。このアレイで
は、各アレイ項目に、行(ライン)と呼ばれる固定サイ
ズのMSデータ・ブロックが含まれている。キャッシュの
ディレクトリに、その行に関するアドレッシング情報が
記述される。ディレクトリの表引きによりCPからの命令
またはデータのアクセスがキャッシュ内で見つかったと
き、そのアクセスはキャッシュをヒットしたと言う。そ
れ以外の場合には、キャッシュでのアクセスにミスした
と言う。キャッシュ・ミスのときは、キャッシュ制御機
能が、要求された行(ライン)をキャッシュに移すため
の要求を生成する。ある行がキャッシュに挿入されると
き、既存の行を置換する。キャッシュは通常、周知のLR
U置換アルゴリズムなど特定の置換手法によって管理さ
れる。キャッシュの設計に応じて、キャッシュの行を置
換する際に、記憶内容の整合性を保つためにMSに対して
置換される内容の更新を行なわなくてはならない。
憶装置(MS)のデータにアクセスする。キャッシュは通
常2次元アレイとして編成されている。このアレイで
は、各アレイ項目に、行(ライン)と呼ばれる固定サイ
ズのMSデータ・ブロックが含まれている。キャッシュの
ディレクトリに、その行に関するアドレッシング情報が
記述される。ディレクトリの表引きによりCPからの命令
またはデータのアクセスがキャッシュ内で見つかったと
き、そのアクセスはキャッシュをヒットしたと言う。そ
れ以外の場合には、キャッシュでのアクセスにミスした
と言う。キャッシュ・ミスのときは、キャッシュ制御機
能が、要求された行(ライン)をキャッシュに移すため
の要求を生成する。ある行がキャッシュに挿入されると
き、既存の行を置換する。キャッシュは通常、周知のLR
U置換アルゴリズムなど特定の置換手法によって管理さ
れる。キャッシュの設計に応じて、キャッシュの行を置
換する際に、記憶内容の整合性を保つためにMSに対して
置換される内容の更新を行なわなくてはならない。
キャッシュはマルチプロセッサ・システムでもユニプロ
セッサ・システムでも使用できる。複数のCPが専用のキ
ャッシュを持ち、共通のオペレーティング・システム及
びメモリを共用する、緊密結合マルチプロセッサ・シス
テムと呼ばれるタイプのマルチプロセッサ(MP)では、
別の問題がある。それは、各プロセッサのキャッシュ
が、複数の行(複数のキャッシュ内にあるものでもよ
い)に何が起こったかを同時に知る必要があるからであ
る。同じ1つの主記憶装置を共用している複数のCPを有
するマルチプロセッサ・システムでは、アクセスが発行
されたとき、アーキテクチャの仕様に応じて各CPが最新
の更新済みデータを得る必要がある。この要件のため、
キャッシュの整合性問題として知られている、キャッシ
ュ間におけるデータの整合性の定常的監視が必要とな
る。
セッサ・システムでも使用できる。複数のCPが専用のキ
ャッシュを持ち、共通のオペレーティング・システム及
びメモリを共用する、緊密結合マルチプロセッサ・シス
テムと呼ばれるタイプのマルチプロセッサ(MP)では、
別の問題がある。それは、各プロセッサのキャッシュ
が、複数の行(複数のキャッシュ内にあるものでもよ
い)に何が起こったかを同時に知る必要があるからであ
る。同じ1つの主記憶装置を共用している複数のCPを有
するマルチプロセッサ・システムでは、アクセスが発行
されたとき、アーキテクチャの仕様に応じて各CPが最新
の更新済みデータを得る必要がある。この要件のため、
キャッシュの整合性問題として知られている、キャッシ
ュ間におけるデータの整合性の定常的監視が必要とな
る。
従来技術のマルチプロセッサ・システムにはいろいろな
種類のキャッシュがある。1つのタイプのキャッシュ
は、IBMシステム/370モデル3033MPに関する米国特許第4
142234号明細書に記述されているような、ストアスルー
型(ST)キャッシュである。STキャッシュの設計は、常
に主記憶装置に対するデータ変更の更新を行なうため
に、CPが主記憶装置(または第2段のキャッシュ)に直
接データを記憶するのを妨げないようになっている。主
記憶装置に対する記憶の更新時に、記憶されたキャッシ
ュ行の可能な遠隔コピーを無効にするための適切な相互
無効化処置が行なわれることがある。記憶制御要素(SC
E)は、MS記憶要求を待ち行列に入れるための適切な記
憶スタックを保持し、バッファ制御要素(BCE)とSCEの
間の標準の通信によって記憶スタックのあふれ状態が防
止される。SCE記憶スタックが満杯になると、関連するB
CEが、その条件が解除されるまでMS記憶を保持する。
種類のキャッシュがある。1つのタイプのキャッシュ
は、IBMシステム/370モデル3033MPに関する米国特許第4
142234号明細書に記述されているような、ストアスルー
型(ST)キャッシュである。STキャッシュの設計は、常
に主記憶装置に対するデータ変更の更新を行なうため
に、CPが主記憶装置(または第2段のキャッシュ)に直
接データを記憶するのを妨げないようになっている。主
記憶装置に対する記憶の更新時に、記憶されたキャッシ
ュ行の可能な遠隔コピーを無効にするための適切な相互
無効化処置が行なわれることがある。記憶制御要素(SC
E)は、MS記憶要求を待ち行列に入れるための適切な記
憶スタックを保持し、バッファ制御要素(BCE)とSCEの
間の標準の通信によって記憶スタックのあふれ状態が防
止される。SCE記憶スタックが満杯になると、関連するB
CEが、その条件が解除されるまでMS記憶を保持する。
もう1つのタイプのキャッシュ設計は、ストアイン型キ
ャッシュ(SIC)である。SICについてはアンダーソン
(Anderson)等の米国特許第3735360号明細書及びワー
ナー(Warner)等の第3771137号明細書に記載されてい
る。SICキャッシュ・ディレクトリについてはフラッシ
ュ(Flusche)等の米国特許第4394731号明細書に詳しい
記載がある。上記特許では、ストアイン型キャッシュ内
の各行のマイクロプロセッサ共用可能性が、排他的/読
取り専用(EX/RO)フラグ・ビットによって制御され
る。STキャッシュとSICキャッシュの主な相違は、SICで
はすべての記憶がキャッシュ自体に送られるという点に
ある(したがって、記憶された行がSICキャッシュにな
い場合は、キャッシュ・ミスが生じる可能性がある)。
米国特許第4503497号明細書では、コピーが遠隔キャッ
シュ内にある場合、取出しミス時にキャッシュ間転送バ
ス(CTC)を介してで転送を行なうことができると提唱
されている。各キャッシュ内にディレクトリのコピーを
含むSCEが使用される。それによって、相互問合せ(X
I)判断がSCEで解決できる。通常、キャッシュ行の修正
は、行がキャッシュから置換されたときだけ主記憶装置
に対して更新される。
ャッシュ(SIC)である。SICについてはアンダーソン
(Anderson)等の米国特許第3735360号明細書及びワー
ナー(Warner)等の第3771137号明細書に記載されてい
る。SICキャッシュ・ディレクトリについてはフラッシ
ュ(Flusche)等の米国特許第4394731号明細書に詳しい
記載がある。上記特許では、ストアイン型キャッシュ内
の各行のマイクロプロセッサ共用可能性が、排他的/読
取り専用(EX/RO)フラグ・ビットによって制御され
る。STキャッシュとSICキャッシュの主な相違は、SICで
はすべての記憶がキャッシュ自体に送られるという点に
ある(したがって、記憶された行がSICキャッシュにな
い場合は、キャッシュ・ミスが生じる可能性がある)。
米国特許第4503497号明細書では、コピーが遠隔キャッ
シュ内にある場合、取出しミス時にキャッシュ間転送バ
ス(CTC)を介してで転送を行なうことができると提唱
されている。各キャッシュ内にディレクトリのコピーを
含むSCEが使用される。それによって、相互問合せ(X
I)判断がSCEで解決できる。通常、キャッシュ行の修正
は、行がキャッシュから置換されたときだけ主記憶装置
に対して更新される。
ROであるキャッシュ行は、読取り専用状態の場合のみ有
効である。プロセッサは、その行から取出しだけを行な
うことができる。その行への記憶は禁止される。ROキャ
ッシュ行は異なるキャッシュ間で同時に共用可能であ
る。
効である。プロセッサは、その行から取出しだけを行な
うことができる。その行への記憶は禁止される。ROキャ
ッシュ行は異なるキャッシュ間で同時に共用可能であ
る。
またEXであるキャッシュ行は、有効であるが、特定のプ
ロセッサのキャッシュ内だけに現れ、その他の(遠隔)
キャッシュ内には存在しない。(所有)プロセッサだけ
がその行への記憶を許される。
ロセッサのキャッシュ内だけに現れ、その他の(遠隔)
キャッシュ内には存在しない。(所有)プロセッサだけ
がその行への記憶を許される。
CHであるキャッシュ行は、その行が有効でEXであること
を示すだけでなく、そこに記憶されていることも示す。
すなわち主記憶装置内のコピーが最新のものでない可能
性がある。CH行が置換されるとき、廃棄処置によってコ
ピーが主記憶装置に送られる。
を示すだけでなく、そこに記憶されていることも示す。
すなわち主記憶装置内のコピーが最新のものでない可能
性がある。CH行が置換されるとき、廃棄処置によってコ
ピーが主記憶装置に送られる。
INVキャッシュ行は無効な行である。
典型的なコンピュータ・システムでは、第1のCP、P
1は、キャッシュ内の行から命令またはデータにアクセ
スすることができる。それ自体のキャッシュが検査さ
れ、要求されている特定行が読取り専用(RO)の場合に
は、記憶要求を生成し、記憶制御要素(SCE)によって
その行をEXにする。その行が一度EXになると、記憶制御
要素(SCE)は他のキャッシュに対して、その行が無効
であることを示し、第1のキャッシュがその行に自由に
書き込めるようになる。
1は、キャッシュ内の行から命令またはデータにアクセ
スすることができる。それ自体のキャッシュが検査さ
れ、要求されている特定行が読取り専用(RO)の場合に
は、記憶要求を生成し、記憶制御要素(SCE)によって
その行をEXにする。その行が一度EXになると、記憶制御
要素(SCE)は他のキャッシュに対して、その行が無効
であることを示し、第1のキャッシュがその行に自由に
書き込めるようになる。
マルチプロセッサ・キャッシュ環境では、異なるプロセ
ッサ(CP)による1つのデータ行への比較的接近したア
クセスによって、相互問合せ(XI)問題として知られる
問題が発生する。たとえば、ある行がCP P1によって修
正された場合は、P1による修正がメモリに対して更新さ
れる前にメモリから行Lが取り出される場合、他のCPが
その行Lのダーティ・コピーを取り出す可能性がある。
ッサ(CP)による1つのデータ行への比較的接近したア
クセスによって、相互問合せ(XI)問題として知られる
問題が発生する。たとえば、ある行がCP P1によって修
正された場合は、P1による修正がメモリに対して更新さ
れる前にメモリから行Lが取り出される場合、他のCPが
その行Lのダーティ・コピーを取り出す可能性がある。
システムに追加されるCPの数が増えるに従って、XI問題
を効率的に取り扱うことがますます難しくなってくる。
次に例として、N個のCP{Pi|1≦i≦N}及び各Piごと
に専用キャッシュCiが存在するマルチプロセッサ・シス
テムについて考察する。この考察では、共用主記憶装置
が専用キャッシュの下にある、メモリ階層構造を想定す
る。
を効率的に取り扱うことがますます難しくなってくる。
次に例として、N個のCP{Pi|1≦i≦N}及び各Piごと
に専用キャッシュCiが存在するマルチプロセッサ・シス
テムについて考察する。この考察では、共用主記憶装置
が専用キャッシュの下にある、メモリ階層構造を想定す
る。
STキャッシュの設計に付随する1つの主要な問題は、シ
ステム内のすべてのCPによって生成されるトラフィック
である。ただし、将来のMPシステムにおける傾向は、す
べてのプロセッサ間で高性能の共用記憶装置が利用でき
る方向に向かっている。そのような高速共用記憶装置の
例として、第2段共用キャッシュ(L2)がある。そのよ
うな高性能共用記憶装置を設ける場合、さらに多くのCP
をサポートしながらSTキャッシュでMPシステムを実現す
ることが魅力的になってくる。STの設計に付随するもう
1つの問題は、米国特許第4142234号明細書に示されて
いるような、SCEとの使用中記憶初期接続手順である。
このような設計では、CPがSCEからその記憶についての
肯定応答を受け取るまで、CPによって記憶されるデータ
項目を、そのCPが取り出すことができない。そのような
使用中初期接続手順では、プロセッサのパイプライン式
動作の速度が低下するだけでなく、多数のCPが組み込ま
れている場合にSCEがすべての記憶を効率的に直列化す
ることも難しくなる。
ステム内のすべてのCPによって生成されるトラフィック
である。ただし、将来のMPシステムにおける傾向は、す
べてのプロセッサ間で高性能の共用記憶装置が利用でき
る方向に向かっている。そのような高速共用記憶装置の
例として、第2段共用キャッシュ(L2)がある。そのよ
うな高性能共用記憶装置を設ける場合、さらに多くのCP
をサポートしながらSTキャッシュでMPシステムを実現す
ることが魅力的になってくる。STの設計に付随するもう
1つの問題は、米国特許第4142234号明細書に示されて
いるような、SCEとの使用中記憶初期接続手順である。
このような設計では、CPがSCEからその記憶についての
肯定応答を受け取るまで、CPによって記憶されるデータ
項目を、そのCPが取り出すことができない。そのような
使用中初期接続手順では、プロセッサのパイプライン式
動作の速度が低下するだけでなく、多数のCPが組み込ま
れている場合にSCEがすべての記憶を効率的に直列化す
ることも難しくなる。
ST設計に関する使用中記憶初期接続手順の問題に対する
既知の1手法は、SIC設計からのEX/RO状態を使用するも
のである。任意の瞬間にキャッシュ行が3つの状態IN
V、ROまたはEXのどれかをとるストアスルー型キャッシ
ュMP環境について考える。ROは複数のCPからの行の異な
るコピーに対する同時アクセスが可能なことを示す。EX
は他のキャッシュがアクセスすべき行のコピーをもたな
いことを保証する。このプロセッサ・キャッシュ方式の
典型的実施態様は次の通りである。行Lの取出し時に、
その行は(各特定の例、及び特定のキャッシュ方式に応
じて)ROまたはEX状態でキャッシュにロードされる。た
だし、ある行に対する記憶が要求されているときは、シ
ステムは、その行に記憶できるようになるまで、その行
をEX状態に保たなくてはならない。EX状態のこのような
許可には、他のキャッシュからの行のコピーを無効化す
るためのXI処置が必要である。CP、たとえばP2がそのキ
ャッシュ内にEX状態のELを有し、P1がその行Lにアクセ
スしようとするとき、記憶制御要素(SCE)は、P1がL
を取り出してそのキャッシュに入れられるように保証す
る。SCEがP2に対しLのEX状態を放棄するように指示し
てから、P2がEX状態を放棄し保留中のすべての記憶がメ
モリに対して更新されていることを示す信号をSCEが受
け取るまでの間のプロセスは、消去プロシージャと呼ば
れる。消去プロシージャの目的は、XI目標CPにその行の
EX制御を放棄させ、その行に対するあらゆる可能な未捕
捉の記憶をメモリに対して更新させることにある。ただ
し、遠隔EXに対する上記XIヒット(XIEX)は、大きな性
能の低下を招き、特に多数のCPを有しXI頻度数が高くな
るにつれて、消去プロシージャによる遅延のため、性能
の低下が増大する。
既知の1手法は、SIC設計からのEX/RO状態を使用するも
のである。任意の瞬間にキャッシュ行が3つの状態IN
V、ROまたはEXのどれかをとるストアスルー型キャッシ
ュMP環境について考える。ROは複数のCPからの行の異な
るコピーに対する同時アクセスが可能なことを示す。EX
は他のキャッシュがアクセスすべき行のコピーをもたな
いことを保証する。このプロセッサ・キャッシュ方式の
典型的実施態様は次の通りである。行Lの取出し時に、
その行は(各特定の例、及び特定のキャッシュ方式に応
じて)ROまたはEX状態でキャッシュにロードされる。た
だし、ある行に対する記憶が要求されているときは、シ
ステムは、その行に記憶できるようになるまで、その行
をEX状態に保たなくてはならない。EX状態のこのような
許可には、他のキャッシュからの行のコピーを無効化す
るためのXI処置が必要である。CP、たとえばP2がそのキ
ャッシュ内にEX状態のELを有し、P1がその行Lにアクセ
スしようとするとき、記憶制御要素(SCE)は、P1がL
を取り出してそのキャッシュに入れられるように保証す
る。SCEがP2に対しLのEX状態を放棄するように指示し
てから、P2がEX状態を放棄し保留中のすべての記憶がメ
モリに対して更新されていることを示す信号をSCEが受
け取るまでの間のプロセスは、消去プロシージャと呼ば
れる。消去プロシージャの目的は、XI目標CPにその行の
EX制御を放棄させ、その行に対するあらゆる可能な未捕
捉の記憶をメモリに対して更新させることにある。ただ
し、遠隔EXに対する上記XIヒット(XIEX)は、大きな性
能の低下を招き、特に多数のCPを有しXI頻度数が高くな
るにつれて、消去プロシージャによる遅延のため、性能
の低下が増大する。
作業負荷の分析結果から、XIEXの発生時には(行Lを所
有する)遠隔CPがXIEX事象前後のわずかな時間で記憶を
生成することは極めて稀なことが認められている。共用
行に対する修正の大部分は、実際のピンポン点から離れ
て、数10回の参照にわたって行なわれる傾向にある。そ
の結果、XIEX活動時に、消去プロセスが行なわれる前で
さえ、高速共用記憶装置内にあるその行のコピーが要求
側CPが使用するのに有効となる可能性が極めて高くな
る。その結果、そのような環境では、XIEXに対する消去
プロシージャによる大きな性能の低下はほとんど不要で
あり、かつ非生産的である。
有する)遠隔CPがXIEX事象前後のわずかな時間で記憶を
生成することは極めて稀なことが認められている。共用
行に対する修正の大部分は、実際のピンポン点から離れ
て、数10回の参照にわたって行なわれる傾向にある。そ
の結果、XIEX活動時に、消去プロセスが行なわれる前で
さえ、高速共用記憶装置内にあるその行のコピーが要求
側CPが使用するのに有効となる可能性が極めて高くな
る。その結果、そのような環境では、XIEXに対する消去
プロシージャによる大きな性能の低下はほとんど不要で
あり、かつ非生産的である。
最近のプロセッサ設計で知られているもう1つの技術
は、分岐予測に基づく条件付き命令実行である。そのよ
うな設計では、分岐命令の結果の予測をもとに、復号及
び実行のため命令ストリームが取り出される。まちがっ
た予測にもとづいて誤って命令が開始された場合、後で
それを打ち切ることができる。命令の確認前に、条件付
き実行から生じた記憶要求が保留記憶スタック(PSS)
内に保持され、終了時にそれが最終的に解除される。命
令の終了及び保留記憶の解除はアーキテクチャ上の順序
に従って行なわれる。ただし、命令は完了前に到着順に
実行できる。条件付き命令ストリームが打ち切られる
と、関連する命令待ち行列とPSS内の保留記憶はすべて
適切にリセットされる。キャッシュ整合性の理由から無
効となる可能性のある記憶データにもとづいて命令が条
件付きで実行できるという従来技術は知られていない。
は、分岐予測に基づく条件付き命令実行である。そのよ
うな設計では、分岐命令の結果の予測をもとに、復号及
び実行のため命令ストリームが取り出される。まちがっ
た予測にもとづいて誤って命令が開始された場合、後で
それを打ち切ることができる。命令の確認前に、条件付
き実行から生じた記憶要求が保留記憶スタック(PSS)
内に保持され、終了時にそれが最終的に解除される。命
令の終了及び保留記憶の解除はアーキテクチャ上の順序
に従って行なわれる。ただし、命令は完了前に到着順に
実行できる。条件付き命令ストリームが打ち切られる
と、関連する命令待ち行列とPSS内の保留記憶はすべて
適切にリセットされる。キャッシュ整合性の理由から無
効となる可能性のある記憶データにもとづいて命令が条
件付きで実行できるという従来技術は知られていない。
先行データ・アクセスによって、XIEXのために生じる遅
延を最小にする従来の技術は知られていない。MPキャッ
シュ設計の既知の方法はすべて、アーキテクチャ上の整
合性を保つため、その行が既に消去されているときだ
け、CPがキャッシュ行にアクセスできるようになってい
る。XIEX状態では、その行上でEX状態を保持している遠
隔CPがEX制御を解除して、その行が要求側CPのキャッシ
ュに取り出せるようにしたときにだけ、要求側CPはその
キャッシュ行にアクセスすることができる。
延を最小にする従来の技術は知られていない。MPキャッ
シュ設計の既知の方法はすべて、アーキテクチャ上の整
合性を保つため、その行が既に消去されているときだ
け、CPがキャッシュ行にアクセスできるようになってい
る。XIEX状態では、その行上でEX状態を保持している遠
隔CPがEX制御を解除して、その行が要求側CPのキャッシ
ュに取り出せるようにしたときにだけ、要求側CPはその
キャッシュ行にアクセスすることができる。
C.発明の要旨 本発明の目的及び特徴を表す好ましい例示的な実施例に
よれば、消去プロシージャが完了する前でさえも、XIEX
条件のときCPにキャッシュ行にアクセスさせる機能が提
供される。その結果、XIEX状態のときCPによってアクセ
スされた行がダーティであることが判明し、適切な命令
を再開させる場合は比較的少ない。これは、XIEX処理の
ための消去プロシージャによる非常に大きな性能低下の
大部分がなくなるので、性能上大きな利益がある。
よれば、消去プロシージャが完了する前でさえも、XIEX
条件のときCPにキャッシュ行にアクセスさせる機能が提
供される。その結果、XIEX状態のときCPによってアクセ
スされた行がダーティであることが判明し、適切な命令
を再開させる場合は比較的少ない。これは、XIEX処理の
ための消去プロシージャによる非常に大きな性能低下の
大部分がなくなるので、性能上大きな利益がある。
本発明は、XIEX状態のときにデータの取出しを扱うため
の取出し後確認(FTC)手法を提供する。
の取出し後確認(FTC)手法を提供する。
本発明では、STキャッシュ設計と、EX/RO状態を伴うSIC
型キャッシュ整合性管理機能を有するMPシステムを利用
する。比較的高速のMSまたは共用L2を想定する。XIEX時
の要求されたデータの取出しまたは使用が、SCEが消去
プロシージャを介して要求された行の妥当性(または無
効性)確認を受け取る前に可能となる。妥当性が断定で
きない行がCPによって使用されるときは、SCEから確認
を受け取るまで、その行の妥当性に応じて命令の実行の
結果が外部(たとえばキャッシュ)にコミットされな
い。SCEからの確認が、行Lが有効なことが判明したこ
とを示すときは、Lの妥当性に応じてすべての結果を通
常通りに完了させることができる。ただし、SCEが、以
前に取り出された妥当性が断定できない行Lが実際には
無効であったことを示す場合、Lの内容に基づいて実行
されるすべての動作を打ち切り適切に再開させなくては
ならない。
型キャッシュ整合性管理機能を有するMPシステムを利用
する。比較的高速のMSまたは共用L2を想定する。XIEX時
の要求されたデータの取出しまたは使用が、SCEが消去
プロシージャを介して要求された行の妥当性(または無
効性)確認を受け取る前に可能となる。妥当性が断定で
きない行がCPによって使用されるときは、SCEから確認
を受け取るまで、その行の妥当性に応じて命令の実行の
結果が外部(たとえばキャッシュ)にコミットされな
い。SCEからの確認が、行Lが有効なことが判明したこ
とを示すときは、Lの妥当性に応じてすべての結果を通
常通りに完了させることができる。ただし、SCEが、以
前に取り出された妥当性が断定できない行Lが実際には
無効であったことを示す場合、Lの内容に基づいて実行
されるすべての動作を打ち切り適切に再開させなくては
ならない。
したがってFTC法では、XIEX状態がSCEによって検出され
たとき、要求側CPにメモリからの行のコピーの取出しが
開始させ、同時に、消去プロシージャに関する信号がXI
目標CPに送られる。このような状況では、要求側CPは、
取り出される行がその妥当性が確認されておらず、した
がって有効ではない可能性があり、SCEからの確認を待
たなければならないことを認識すべきである。SCEはま
た、そのような状況を記憶して、消去プロシージャの結
果を待ち、後で要求側CPに適切な確認を与える。
たとき、要求側CPにメモリからの行のコピーの取出しが
開始させ、同時に、消去プロシージャに関する信号がXI
目標CPに送られる。このような状況では、要求側CPは、
取り出される行がその妥当性が確認されておらず、した
がって有効ではない可能性があり、SCEからの確認を待
たなければならないことを認識すべきである。SCEはま
た、そのような状況を記憶して、消去プロシージャの結
果を待ち、後で要求側CPに適切な確認を与える。
したがって、本発明の1目的は、XI問題を解決するため
キャッシュ行を早期に取り出す方法を提供することであ
る。
キャッシュ行を早期に取り出す方法を提供することであ
る。
本発明の別の目的は、命令の実行時に不必要な遅延をな
くすことである。
くすことである。
本発明のもう1つの目的は、妥当性の判定を行なう前
に、キャッシュ行を利用できるようにすることである。
に、キャッシュ行を利用できるようにすることである。
D.実施例 第1図は、本発明が適用される多重処理(MP)システム
を示す。MPは4台の中央演算処理装置(CP)CP0ないしC
P3(10、11、12、13)を含み、各CPはそれぞれ命令実行
(IE)装置14、15、16、17及びバッファ制御装置(BC
E)20、21、22、23を含む。各IEは、ハードウェアと、
主記憶装置(MS)50内でのオペランドの取出し及び記憶
を要求する命令を発行するマイクロコードを内蔵する。
を示す。MPは4台の中央演算処理装置(CP)CP0ないしC
P3(10、11、12、13)を含み、各CPはそれぞれ命令実行
(IE)装置14、15、16、17及びバッファ制御装置(BC
E)20、21、22、23を含む。各IEは、ハードウェアと、
主記憶装置(MS)50内でのオペランドの取出し及び記憶
を要求する命令を発行するマイクロコードを内蔵する。
IE14−17は、当該の各キャッシュ制御機構(BCE)20−2
3に対して取出しコマンドまたは記憶コマンドを発行し
て、取出し動作または記憶動作を開始する。キャッシュ
制御機構は、関連するプロセッサ・キャッシュ・ディレ
クトリ(PD)を伴うプロセッサ・ストアスルー(ST)キ
ャッシュと、関連CP10−13が専用するすべてのプロセッ
サ・キャッシュ制御機構を含む。CPは一般に、オペラン
ドが必要とする各ダブルワード(DW)単位ごとに取出し
コマンドまたは記憶コマンドを発行する。DWを含むキャ
ッシュ行がPD内にある場合は、キャッシュ・ヒット状態
であり、コマンドに応じてDWがキャッシュから取り出さ
れ、またはキャッシュ内に記憶される。キャッシュ内で
オペランド取出しヒットの場合、BCEの外部に出る必要
はなく、記憶装置アクセスが完了する。場合によって
は、必要とされるDWがキャッシュ内にないことがあり、
キャッシュ・ミスとなる。
3に対して取出しコマンドまたは記憶コマンドを発行し
て、取出し動作または記憶動作を開始する。キャッシュ
制御機構は、関連するプロセッサ・キャッシュ・ディレ
クトリ(PD)を伴うプロセッサ・ストアスルー(ST)キ
ャッシュと、関連CP10−13が専用するすべてのプロセッ
サ・キャッシュ制御機構を含む。CPは一般に、オペラン
ドが必要とする各ダブルワード(DW)単位ごとに取出し
コマンドまたは記憶コマンドを発行する。DWを含むキャ
ッシュ行がPD内にある場合は、キャッシュ・ヒット状態
であり、コマンドに応じてDWがキャッシュから取り出さ
れ、またはキャッシュ内に記憶される。キャッシュ内で
オペランド取出しヒットの場合、BCEの外部に出る必要
はなく、記憶装置アクセスが完了する。場合によって
は、必要とされるDWがキャッシュ内にないことがあり、
キャッシュ・ミスとなる。
IE取出しまたは記憶コマンドを完了する前に、DWを主記
憶装置から取り出さなくてはならない。そのため、BCE
は対応する取出しまたは記憶ミス・コマンドを生成す
る。このコマンドは、記憶制御要素(SCE)30に、IEが
必要とするDWを持つデータの行単位を主記憶装置50から
得るよう要求する。行単位は主記憶装置内の行境界上に
あるが、必要とされるDWは、失敗した行転送の完了前に
IE要求を進行させておくため要求側BCE20−23に戻され
る、取出し行の最初のDWである。
憶装置から取り出さなくてはならない。そのため、BCE
は対応する取出しまたは記憶ミス・コマンドを生成す
る。このコマンドは、記憶制御要素(SCE)30に、IEが
必要とするDWを持つデータの行単位を主記憶装置50から
得るよう要求する。行単位は主記憶装置内の行境界上に
あるが、必要とされるDWは、失敗した行転送の完了前に
IE要求を進行させておくため要求側BCE20−23に戻され
る、取出し行の最初のDWである。
SCE30は、CP10−13及び主記憶装置50に接続されてい
る。主記憶装置50は、複数の基本記憶モジュール(BS
M)制御装置BSC0ないしBSC3(51、52、53、54)で構成
されている。各基本記憶制御装置(BSC)51−54は、2
つのBSM0(60、62、64、66)及び(61、63、65、67)に
接続されている。4個のBSC0−3(51−54)がそれぞれ
SCE30に接続されている。
る。主記憶装置50は、複数の基本記憶モジュール(BS
M)制御装置BSC0ないしBSC3(51、52、53、54)で構成
されている。各基本記憶制御装置(BSC)51−54は、2
つのBSM0(60、62、64、66)及び(61、63、65、67)に
接続されている。4個のBSC0−3(51−54)がそれぞれ
SCE30に接続されている。
SCE30は4個のコピー・ディレクトリ(CD)31、32、3
3、34を含む。各CDは米国特許第4394731号明細書に記載
されているのと同様に、あるBCS中に対応するプロセッ
サ・キャッシュ・ディレクトリ(PD)の内容のイメージ
を含んでいる。PDとCDは共に、論理アドレスから同じビ
ット位置によってアドレスされる。CDはすべての相互問
合せ(XI)要求を処理し、したがってそれぞれのCPに対
してよりよいサービスを提供することができる。ダブル
ワード幅の両方向データ・バスが、主記憶装置内の各BS
M60−67と各SCEポートの間に、また各SCE30から各CP及
び入出力チャネル制御プロセッサ40への間に設けられて
いる。データ・バスと共に、制御信号及びアドレス信号
用の独立した1組のコマンド・バスもある。CPがDWアク
セス要求に関してキャッシュ・ミスに出会ったとき、そ
のBCE20−23がSCE30にミス・コマンドを送ることによっ
て、主記憶装置に対する行アクセス要求を開始する。次
にSCE30が主記憶装置内の必要とされるBSM60−67に対し
てコマンドを再発行する。BSM使用中状態の場合、SCE30
は、その要求をコマンド待ち行列に保管し、必要とされ
るBSM60−67が後で利用可能となったときにそれを再発
行する。SCE30はそのXI論理によってキャッシュの衝突
が発見されたときを除き、特定のBSMに対するすべての
コマンドが先入れ先出し(FIF0)順に発行されるよう、
主記憶装置コマンドを正しい順序に並べる。通常の主記
憶装置要求処理シーケンスでは、SCE30は定常的に主記
憶装置の状況を監視し、保護キーの問合せ結果及びすべ
てのキャッシュ・ディレクトリを分析し、現在SCE30に
保持されているすべての保留コマンドの更新済み状況を
検査し、またBCE20−23内で待機中の、SCE30が受け取る
べき新しいBCEコマンドがあるかどうか探す。
3、34を含む。各CDは米国特許第4394731号明細書に記載
されているのと同様に、あるBCS中に対応するプロセッ
サ・キャッシュ・ディレクトリ(PD)の内容のイメージ
を含んでいる。PDとCDは共に、論理アドレスから同じビ
ット位置によってアドレスされる。CDはすべての相互問
合せ(XI)要求を処理し、したがってそれぞれのCPに対
してよりよいサービスを提供することができる。ダブル
ワード幅の両方向データ・バスが、主記憶装置内の各BS
M60−67と各SCEポートの間に、また各SCE30から各CP及
び入出力チャネル制御プロセッサ40への間に設けられて
いる。データ・バスと共に、制御信号及びアドレス信号
用の独立した1組のコマンド・バスもある。CPがDWアク
セス要求に関してキャッシュ・ミスに出会ったとき、そ
のBCE20−23がSCE30にミス・コマンドを送ることによっ
て、主記憶装置に対する行アクセス要求を開始する。次
にSCE30が主記憶装置内の必要とされるBSM60−67に対し
てコマンドを再発行する。BSM使用中状態の場合、SCE30
は、その要求をコマンド待ち行列に保管し、必要とされ
るBSM60−67が後で利用可能となったときにそれを再発
行する。SCE30はそのXI論理によってキャッシュの衝突
が発見されたときを除き、特定のBSMに対するすべての
コマンドが先入れ先出し(FIF0)順に発行されるよう、
主記憶装置コマンドを正しい順序に並べる。通常の主記
憶装置要求処理シーケンスでは、SCE30は定常的に主記
憶装置の状況を監視し、保護キーの問合せ結果及びすべ
てのキャッシュ・ディレクトリを分析し、現在SCE30に
保持されているすべての保留コマンドの更新済み状況を
検査し、またBCE20−23内で待機中の、SCE30が受け取る
べき新しいBCEコマンドがあるかどうか探す。
SCE30は複数の記憶スタックSS0−SS3(35−38)を保持
する。各記憶スタックはそれぞれ、対応するCPに対する
最大16個のDWの主記憶装置記憶要求を保持する。SCE30
は主記憶アドレスと妥当性を示すため記憶スタックに充
分なディレクトリ情報を保持する。記憶スタックがあふ
れを起こす危険があるとき、SCE30は関連するBCE20−23
に優先順位要求を送って、BCE20−23が後でSCE30から記
憶スタック満杯条件を消去するための信号を受け取るま
で、それ以後の記憶要求の送信を保留させる。記憶スタ
ック内のデータは、各記憶スタック内で到着順序を維持
しながら適切なスケジューリングに従って主記憶装置に
対して更新される。CPからの行取出し要求は、記憶スタ
ック内の行に対する既存のすべての記憶が関連するBSM6
0−67に送られたことをSCEが確認するまで、SCE30によ
って保留される。
する。各記憶スタックはそれぞれ、対応するCPに対する
最大16個のDWの主記憶装置記憶要求を保持する。SCE30
は主記憶アドレスと妥当性を示すため記憶スタックに充
分なディレクトリ情報を保持する。記憶スタックがあふ
れを起こす危険があるとき、SCE30は関連するBCE20−23
に優先順位要求を送って、BCE20−23が後でSCE30から記
憶スタック満杯条件を消去するための信号を受け取るま
で、それ以後の記憶要求の送信を保留させる。記憶スタ
ック内のデータは、各記憶スタック内で到着順序を維持
しながら適切なスケジューリングに従って主記憶装置に
対して更新される。CPからの行取出し要求は、記憶スタ
ック内の行に対する既存のすべての記憶が関連するBSM6
0−67に送られたことをSCEが確認するまで、SCE30によ
って保留される。
第2図は各CPに関するIE装置の命令制御機構の背景構成
図である。各CPのIEは条件付きで命令を実行する能力を
持つ。必ずしも必要ではないが、分岐予測を採用しても
よい。この説明では、話を単純にして、XIEX事象のとき
ダーティである可能性のあるデータを取り出すことが条
件付き実行の唯一の原因であると想定する。ただし、条
件付き実行の制御は、分岐予測マシンの場合と非常によ
く類似している。特に命令が打ち切られたとき、IE装置
は命令が開始される前の点までマシン状態(レジスタ)
をリセットすることができる。16個のハーフワードを含
む命令バッファ(IBUF)70がある。ただし、IBM370アー
キテクチャでは、各ハーフワード(HW)は2バイト長で
あり、各命令コードは1ないし3ハーフワードの長さと
することができることに留意されたい。
図である。各CPのIEは条件付きで命令を実行する能力を
持つ。必ずしも必要ではないが、分岐予測を採用しても
よい。この説明では、話を単純にして、XIEX事象のとき
ダーティである可能性のあるデータを取り出すことが条
件付き実行の唯一の原因であると想定する。ただし、条
件付き実行の制御は、分岐予測マシンの場合と非常によ
く類似している。特に命令が打ち切られたとき、IE装置
は命令が開始される前の点までマシン状態(レジスタ)
をリセットすることができる。16個のハーフワードを含
む命令バッファ(IBUF)70がある。ただし、IBM370アー
キテクチャでは、各ハーフワード(HW)は2バイト長で
あり、各命令コードは1ないし3ハーフワードの長さと
することができることに留意されたい。
本発明の実施例を単純化するために、順序通りの逐次実
行だけを想定するが、本発明の概念では、順次以外の実
行に関するより複雑な実施態様も除外されない。条件付
きで実行される命令を含めて、命令は、命令ストリーム
内での論理的順序に従ってのみ実行される。オペランド
の取出し及び記憶は、論理的順序に従ってのみ実行され
る。IE装置は、現在実行されている命令が条件付きであ
るか否かを示す単一のフラグ・レジスタCNFLG71を維持
する。IEはまた、レジスタCNIADDR72も維持する。CNFLG
=1の条件付き実行段階では、CNIADDRは、主記憶装置
からのデータの条件付き取出しを最初に開始した命令の
アドレスを保持する。
行だけを想定するが、本発明の概念では、順次以外の実
行に関するより複雑な実施態様も除外されない。条件付
きで実行される命令を含めて、命令は、命令ストリーム
内での論理的順序に従ってのみ実行される。オペランド
の取出し及び記憶は、論理的順序に従ってのみ実行され
る。IE装置は、現在実行されている命令が条件付きであ
るか否かを示す単一のフラグ・レジスタCNFLG71を維持
する。IEはまた、レジスタCNIADDR72も維持する。CNFLG
=1の条件付き実行段階では、CNIADDRは、主記憶装置
からのデータの条件付き取出しを最初に開始した命令の
アドレスを保持する。
第3図は、BCE、たとえば20の全体構成図である。BCEは
BCE制御機構80を介して、TLB制御機構81を使って論理的
主記憶装置アクセス・アドレスから実アドレスに変換す
るための変換ルックアサイド・バッファ(TLB)を保持
する。プロセッサ・キャッシュ・ディレクトリ(PD)82
はプロセッサ・キャッシュ・ディレクトリである。キャ
ッシュ・アレイ83は、実際のキャッシュ・データを含ん
でいる。保留記憶スタック(PSS)84は8個のエントリ
を持つ。PSS84は、まだキャッシュ及び主記憶装置に送
られていないIE実行からのDW記憶を保持するために使用
される。BCE制御機構は、そのとき活動状態の、ダーテ
ィである可能性のあるキャッシュ行があるか否かを示す
フラグ・ビットCNPHASE85を維持する。
BCE制御機構80を介して、TLB制御機構81を使って論理的
主記憶装置アクセス・アドレスから実アドレスに変換す
るための変換ルックアサイド・バッファ(TLB)を保持
する。プロセッサ・キャッシュ・ディレクトリ(PD)82
はプロセッサ・キャッシュ・ディレクトリである。キャ
ッシュ・アレイ83は、実際のキャッシュ・データを含ん
でいる。保留記憶スタック(PSS)84は8個のエントリ
を持つ。PSS84は、まだキャッシュ及び主記憶装置に送
られていないIE実行からのDW記憶を保持するために使用
される。BCE制御機構は、そのとき活動状態の、ダーテ
ィである可能性のあるキャッシュ行があるか否かを示す
フラグ・ビットCNPHASE85を維持する。
第4図は、米国特許第4484267号明細書の記載と類似し
た、BCE(たとえば20)内の典型的キャッシュ制御機構8
0を表している。IEからの取出しまたは記憶要求アドレ
ス(論理アドレスまたは実アドレス)90は、プロセッサ
・キャッシュ・ディレクトリ(PD)91から合同クラスを
選択するのに使用される。すでに説明した4方向セット
連想式キャッシュ設計では、選択された合同クラスから
読み出される4個のディレクトリ・エントリA−Dが存
在する。これらの4個のPDEエントリA−Dに記録され
た絶対行アドレスが、92で、アドレス変換機構93から得
られた絶対要求アドレスと比較される。これらのアドレ
スを比較して、どの行がキャッシュ内で紛失している
か、またはSELA、SELB、SELC及びSELDの各信号によって
示されるように、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へ到達す
る。
た、BCE(たとえば20)内の典型的キャッシュ制御機構8
0を表している。IEからの取出しまたは記憶要求アドレ
ス(論理アドレスまたは実アドレス)90は、プロセッサ
・キャッシュ・ディレクトリ(PD)91から合同クラスを
選択するのに使用される。すでに説明した4方向セット
連想式キャッシュ設計では、選択された合同クラスから
読み出される4個のディレクトリ・エントリA−Dが存
在する。これらの4個のPDEエントリA−Dに記録され
た絶対行アドレスが、92で、アドレス変換機構93から得
られた絶対要求アドレスと比較される。これらのアドレ
スを比較して、どの行がキャッシュ内で紛失している
か、またはSELA、SELB、SELC及びSELDの各信号によって
示されるように、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)
にそれを保持することを可能にしなくてはならない。そ
うでないと、SI要求は、衝突状態が後のサイクルで解除
されるまで、IEで記憶を保留させる。
記憶を発行するか、あるいは保留記憶スタック(PSS)
にそれを保持することを可能にしなくてはならない。そ
うでないと、SI要求は、衝突状態が後のサイクルで解除
されるまで、IEで記憶を保留させる。
第5A図と第5B図はそれぞれ、米国特許第4394731号明細
書に記載されているものと類似の、CD(110)及びCD(1
20)のエントリのフォーマットの図である。V(116、1
22)はディレクトリ・エントリの有効ビットである。関
連EXビット(115、121)が1の場合には、有効行は排他
的(EX)状態であり、それ以外の場合には、読取り専用
(RO)状態である。
書に記載されているものと類似の、CD(110)及びCD(1
20)のエントリのフォーマットの図である。V(116、1
22)はディレクトリ・エントリの有効ビットである。関
連EXビット(115、121)が1の場合には、有効行は排他
的(EX)状態であり、それ以外の場合には、読取り専用
(RO)状態である。
各PD行はさらに、保護キー(PROT KEY)、行変更(LC C
H)ビット、取出し保護(F PROT)ビット、及びページ
変更(PGCH)ビットを含む。
H)ビット、取出し保護(F PROT)ビット、及びページ
変更(PGCH)ビットを含む。
SCEのCDは、米国特許第4394731号明細書に記載されてい
るのと同様に対応するBCEのPDに対する鏡像として維持
される。CDエントリの内容(EX、V及びABS ADDR117と1
23)は、状況変更のための遷移段階の間を除き、対応す
るPDエントリの内容と同じでなくてはならない。ただ
し、このSTキャッシュ設計では、キャッシュに対するす
べてのCP記憶がMSに反映されるので、PDエントリに、MS
に送るべくスケジューリングされていないデータをキャ
ッシュ行が保持しているか否かを示す、LN/CH(行変更
済)フィールド113は必要でない。第5C図は、PDエント
リの修正されたフォーマット125を含んでいる。
るのと同様に対応するBCEのPDに対する鏡像として維持
される。CDエントリの内容(EX、V及びABS ADDR117と1
23)は、状況変更のための遷移段階の間を除き、対応す
るPDエントリの内容と同じでなくてはならない。ただ
し、このSTキャッシュ設計では、キャッシュに対するす
べてのCP記憶がMSに反映されるので、PDエントリに、MS
に送るべくスケジューリングされていないデータをキャ
ッシュ行が保持しているか否かを示す、LN/CH(行変更
済)フィールド113は必要でない。第5C図は、PDエント
リの修正されたフォーマット125を含んでいる。
ST設計では、BCEからSCEへの廃棄(castout)コマンド
は不要である。米国特許第4394731号明細書に記載され
ているようなSIC設計用の廃棄コマンドは、SICにおける
変更済みの行を、SCE30によって主記憶装置で更新させ
る。ST設計では廃棄コマンドの代りにDW記憶コマンドが
用いられる。このDW記憶コマンドを使って、SCEはIE記
憶時に主記憶装置を更新するため、SCE30にDW記憶要求
を送る。SCEに対する記憶要求がBCEによって行なわれる
と、その記憶のDWデータがデータ・バスを介して並列に
送信される。SCEは、BCEからの記憶要求が通常の条件で
SCEの関連記憶スタック(SS)で必ず受け取られるよ
う、BCEと調整しなくてはならない。CDを検査すること
によるSCEでの相互問合せ(XI)の処理は、米国特許第4
394731号明細書の処理と類似している。本発明では、キ
ャッシュ・ミスでも、消去プロシージャがXIEX状態で完
了する前に、主記憶装置から行を取り出すことが可能で
ある。SCEからBCEへの応答信号は、追加の消去済み(CL
R)ビットで機能強化される。CLRビットが0のとき、BC
Eは、この新しく取り出された行をダーティである可能
性があり使用した場合打ち切られる場合があるものとし
て扱う。そうでない場合は、取り出された行は通常通り
有効であるとみなされる。
は不要である。米国特許第4394731号明細書に記載され
ているようなSIC設計用の廃棄コマンドは、SICにおける
変更済みの行を、SCE30によって主記憶装置で更新させ
る。ST設計では廃棄コマンドの代りにDW記憶コマンドが
用いられる。このDW記憶コマンドを使って、SCEはIE記
憶時に主記憶装置を更新するため、SCE30にDW記憶要求
を送る。SCEに対する記憶要求がBCEによって行なわれる
と、その記憶のDWデータがデータ・バスを介して並列に
送信される。SCEは、BCEからの記憶要求が通常の条件で
SCEの関連記憶スタック(SS)で必ず受け取られるよ
う、BCEと調整しなくてはならない。CDを検査すること
によるSCEでの相互問合せ(XI)の処理は、米国特許第4
394731号明細書の処理と類似している。本発明では、キ
ャッシュ・ミスでも、消去プロシージャがXIEX状態で完
了する前に、主記憶装置から行を取り出すことが可能で
ある。SCEからBCEへの応答信号は、追加の消去済み(CL
R)ビットで機能強化される。CLRビットが0のとき、BC
Eは、この新しく取り出された行をダーティである可能
性があり使用した場合打ち切られる場合があるものとし
て扱う。そうでない場合は、取り出された行は通常通り
有効であるとみなされる。
IEは、やはり米国特許第4394731号明細書に記載されて
いるような、EXの意図を含む取出し要求またはSI要求を
発行することができる。このような要求は、要求された
DWが、EXビットがオンのキャッシュ行にヒットしたとき
だけうまく取り扱える。ROの意図を含む取出し要求は、
Vビットがオンのキャッシュ内の有効行のみを必要とす
る。キャッシュ・アクセスにおける保護上のエラー及び
その他の例外条件は、特殊な例外論理によって処理され
る。
いるような、EXの意図を含む取出し要求またはSI要求を
発行することができる。このような要求は、要求された
DWが、EXビットがオンのキャッシュ行にヒットしたとき
だけうまく取り扱える。ROの意図を含む取出し要求は、
Vビットがオンのキャッシュ内の有効行のみを必要とす
る。キャッシュ・アクセスにおける保護上のエラー及び
その他の例外条件は、特殊な例外論理によって処理され
る。
BCE(たとえば20)における保留記憶スタック(PSS)13
2を第6A図に示す。PSS132は、0ないし7で表した8個
のエントリを含む円形FIFO待ち行列として実施されてい
る。各PSSエントリは、IEから発行された記憶に関するD
Wデータを含む。第6B図は、ビット単位で表したサイズ
を含む、PSSディレクトリ・エントリ140のフォーマット
を示す。各PSSディレクトリ・エントリには、絶対DWア
ドレス・フィールドSTRADDR(28ビット)144、2個のフ
ラグ・ビットCRLSE(1ビット)141とMSONLY(1ビッ
ト)142、及び記憶されたDWのキャッシュ位置を記録す
るフィールドSTRCOORD143の少なくとも3つのフィール
ドがある。CRLSE141ビットがオンのとき、DW記憶は条件
付き段階にあり、主記憶装置に解放されない。PSSエン
トリに関するMSONLY142ビットがオンのとき、その記憶
は既にキャッシュに保存されているが、まだ主記憶装置
には送られていない。BCEは、PSS管理に関する3個のイ
ンデックス・レジスタNXTRLSE135、CNSTR136及びNXTSTR
137を維持する。これらのレジスタはそれぞれ0ないし
7のいずれかの整数値を保持する。最初、これら3つの
レジスタはすべて0にリセットされている。NXTRLSE135
は、最初の記憶を保持しているPSSエントリを指し、NXT
STR137は次の記憶を挿入すべき次のエントリを指す。CN
STR136は、CNPHASE=1の場合、最初の条件付き記憶を
保持するPSSエントリを指す。BCE20はまた、空きエント
リの数を示すカウンタ・レジスタPSSFREE134を維持す
る。これは最初8に設定されている。PSSがそのとき空
でない場合、BCEは定常的に記憶を保存しているかどう
か調べるためPSS内の最初のDWを探索する。PSS内の記憶
はすべて到着順にキャッシュ及び主記憶装置に保存され
る。
2を第6A図に示す。PSS132は、0ないし7で表した8個
のエントリを含む円形FIFO待ち行列として実施されてい
る。各PSSエントリは、IEから発行された記憶に関するD
Wデータを含む。第6B図は、ビット単位で表したサイズ
を含む、PSSディレクトリ・エントリ140のフォーマット
を示す。各PSSディレクトリ・エントリには、絶対DWア
ドレス・フィールドSTRADDR(28ビット)144、2個のフ
ラグ・ビットCRLSE(1ビット)141とMSONLY(1ビッ
ト)142、及び記憶されたDWのキャッシュ位置を記録す
るフィールドSTRCOORD143の少なくとも3つのフィール
ドがある。CRLSE141ビットがオンのとき、DW記憶は条件
付き段階にあり、主記憶装置に解放されない。PSSエン
トリに関するMSONLY142ビットがオンのとき、その記憶
は既にキャッシュに保存されているが、まだ主記憶装置
には送られていない。BCEは、PSS管理に関する3個のイ
ンデックス・レジスタNXTRLSE135、CNSTR136及びNXTSTR
137を維持する。これらのレジスタはそれぞれ0ないし
7のいずれかの整数値を保持する。最初、これら3つの
レジスタはすべて0にリセットされている。NXTRLSE135
は、最初の記憶を保持しているPSSエントリを指し、NXT
STR137は次の記憶を挿入すべき次のエントリを指す。CN
STR136は、CNPHASE=1の場合、最初の条件付き記憶を
保持するPSSエントリを指す。BCE20はまた、空きエント
リの数を示すカウンタ・レジスタPSSFREE134を維持す
る。これは最初8に設定されている。PSSがそのとき空
でない場合、BCEは定常的に記憶を保存しているかどう
か調べるためPSS内の最初のDWを探索する。PSS内の記憶
はすべて到着順にキャッシュ及び主記憶装置に保存され
る。
本発明の説明を簡単にするために、各DCEは、いつでも
複数の未処理要求がSCEに発行できないようにする必要
がある。ただし完了済みの命令または無条件で実行され
た命令に関するPSSから主記憶装置への記憶解放は例外
である。次の説明でも、例外条件の処理は無視する。
複数の未処理要求がSCEに発行できないようにする必要
がある。ただし完了済みの命令または無条件で実行され
た命令に関するPSSから主記憶装置への記憶解放は例外
である。次の説明でも、例外条件の処理は無視する。
第7A図は、IE装置からROの意図を含む取出し要求を受け
取った際(200)のBCEの処理を表すフローチャートであ
る。BCEでCNPHASE=0である場合(ステップ201)、BCE
は、SCEに対してROの意図を含むミス取出し要求を発行
する(ステップ202)。そうでなくCNPHASE=1である場
合(201)、CNPHASEが後でクリアされる(ステップ20
3)までミス取出しは保留される。IEは遊休状態に入
り、未着DWがMSから到達するのを待つ。キャッシュ・ヒ
ットになると(ステップ204)、PSS内に存在している可
能性があるDW記憶のどれかと衝突しない場合、遅延なし
にDWがキャッシュからアクセスされる(ステップ20
5)。このような衝突の検出は、オペランド記憶比較コ
マンドによって行なわれる。このコマンドは、要求され
た取出しDWアドレスを、MSONLYビットがオフになってい
るPSS内のすべての有効なDWアドレスと突き合わせる。
一致が見出された場合は、衝突が検出され、その場合そ
の取出しは、後で衝突条件が解消されるまで再発行され
る。
取った際(200)のBCEの処理を表すフローチャートであ
る。BCEでCNPHASE=0である場合(ステップ201)、BCE
は、SCEに対してROの意図を含むミス取出し要求を発行
する(ステップ202)。そうでなくCNPHASE=1である場
合(201)、CNPHASEが後でクリアされる(ステップ20
3)までミス取出しは保留される。IEは遊休状態に入
り、未着DWがMSから到達するのを待つ。キャッシュ・ヒ
ットになると(ステップ204)、PSS内に存在している可
能性があるDW記憶のどれかと衝突しない場合、遅延なし
にDWがキャッシュからアクセスされる(ステップ20
5)。このような衝突の検出は、オペランド記憶比較コ
マンドによって行なわれる。このコマンドは、要求され
た取出しDWアドレスを、MSONLYビットがオフになってい
るPSS内のすべての有効なDWアドレスと突き合わせる。
一致が見出された場合は、衝突が検出され、その場合そ
の取出しは、後で衝突条件が解消されるまで再発行され
る。
第7B図は、IE装置からEXの意図を含む取出し要求を受け
取った際(ステップ210)のBCEの処理に関するフローチ
ャートである。この取出しは、その行がEX状態で(ステ
ップ212)キャッシュ内に常駐している場合(ステップ2
11)、遅延なしに実行される(ステップ213)。DWがキ
ャッシュ内でRO行にヒットした場合(ステップ214)、B
CEは、可能なとき、SCEに対してEX状況に移ることを求
める要求を発行する(ステップ215)。その行がキャッ
シュ内に存在しない場合(ステップ211)、BCEは、可能
なときSCEに対してEXの意図を含むミス取出し要求を発
行する(ステップ218)。このようなSCE要求は、条件付
き実行が有効な場合には保留される(ステップ216及び2
19)。
取った際(ステップ210)のBCEの処理に関するフローチ
ャートである。この取出しは、その行がEX状態で(ステ
ップ212)キャッシュ内に常駐している場合(ステップ2
11)、遅延なしに実行される(ステップ213)。DWがキ
ャッシュ内でRO行にヒットした場合(ステップ214)、B
CEは、可能なとき、SCEに対してEX状況に移ることを求
める要求を発行する(ステップ215)。その行がキャッ
シュ内に存在しない場合(ステップ211)、BCEは、可能
なときSCEに対してEXの意図を含むミス取出し要求を発
行する(ステップ218)。このようなSCE要求は、条件付
き実行が有効な場合には保留される(ステップ216及び2
19)。
第7C図は、IE装置からEXの意図を含む記憶問合せ(SI)
要求を受け取った際(ステップ220)のBCEの処理に関す
るフローチャートである。BCEの動作は第7B図に記載さ
れている動作と類似している。ただしIEに対するDWの取
出しは必要でない。BCEは、IEから記憶が到来すると予
想して、DWに関して見つかったキャッシュ座標を記録す
る。この取出しは、その行がEX状態で(ステップ222)
キャッシュ内に常駐している場合(ステップ221)、遅
延なしに実行される(ステップ226)。DWがキャッシュ
内でRO行にヒットした場合(ステップ223)、BCEは、可
能なときSCEに対してEX状況に移ることを求める要求を
発行する(ステップ224)。その行がキャッシュ内に存
在しない場合(ステップ221)、BCEは、可能なときSCE
に対してEXの意図を含むミス取出し要求を発行する(ス
テップ228)。このようなSCE要求は、条件付き実行が有
効な場合には保留される(ステップ225及び229)。
要求を受け取った際(ステップ220)のBCEの処理に関す
るフローチャートである。BCEの動作は第7B図に記載さ
れている動作と類似している。ただしIEに対するDWの取
出しは必要でない。BCEは、IEから記憶が到来すると予
想して、DWに関して見つかったキャッシュ座標を記録す
る。この取出しは、その行がEX状態で(ステップ222)
キャッシュ内に常駐している場合(ステップ221)、遅
延なしに実行される(ステップ226)。DWがキャッシュ
内でRO行にヒットした場合(ステップ223)、BCEは、可
能なときSCEに対してEX状況に移ることを求める要求を
発行する(ステップ224)。その行がキャッシュ内に存
在しない場合(ステップ221)、BCEは、可能なときSCE
に対してEXの意図を含むミス取出し要求を発行する(ス
テップ228)。このようなSCE要求は、条件付き実行が有
効な場合には保留される(ステップ225及び229)。
第7D図は、IE装置から記憶要求を受け取った際(ステッ
プ230)のBCEの処理に関するフローチャートである。条
件付き実行では、CNPHASE=1(ステップ231)のとき、
可能ならDW記憶がPSSに置かれる(ステップ232及び23
3)。PSSが満杯の場合は(ステップ234)、PSSに空きが
できるまでその記憶は保留される。いずれの場合も、記
憶要求が条件付き実行のためPSSに置かれるとき、その
記憶はキャッシュ・アレイには保存されず、記憶が後で
解放されたときにキャッシュ記憶の保存が必要となるよ
うにMSONLYフラグが関連PSSエントリで0に設定される
(ステップ233)。CNPHASE=0の記憶要求では(ステッ
プ231)、BCEはキャッシュにDWを保存しようとし(ステ
ップ235)、可能なら直接MSにDWを送ろうとする(ステ
ップ236及び238)。その記憶は、そのときPSS内に他に
未処理の記憶がない場合、キャッシュに保存される(ス
テップ237、241)。何らかの理由でBCEがキャッシュへ
の保存やMSに記憶を送るのを完了できない場合、BCE
は、空きがある場合PSSに記憶要求を置く。DWがキャッ
シュに保存され、その要求がMS記憶スタック満杯条件の
ためPSSに置かれる場合には、後でキャッシュ記憶が反
復されるのを防止するため、PSSエントリでMSONLYビッ
トが1に設定される。
プ230)のBCEの処理に関するフローチャートである。条
件付き実行では、CNPHASE=1(ステップ231)のとき、
可能ならDW記憶がPSSに置かれる(ステップ232及び23
3)。PSSが満杯の場合は(ステップ234)、PSSに空きが
できるまでその記憶は保留される。いずれの場合も、記
憶要求が条件付き実行のためPSSに置かれるとき、その
記憶はキャッシュ・アレイには保存されず、記憶が後で
解放されたときにキャッシュ記憶の保存が必要となるよ
うにMSONLYフラグが関連PSSエントリで0に設定される
(ステップ233)。CNPHASE=0の記憶要求では(ステッ
プ231)、BCEはキャッシュにDWを保存しようとし(ステ
ップ235)、可能なら直接MSにDWを送ろうとする(ステ
ップ236及び238)。その記憶は、そのときPSS内に他に
未処理の記憶がない場合、キャッシュに保存される(ス
テップ237、241)。何らかの理由でBCEがキャッシュへ
の保存やMSに記憶を送るのを完了できない場合、BCE
は、空きがある場合PSSに記憶要求を置く。DWがキャッ
シュに保存され、その要求がMS記憶スタック満杯条件の
ためPSSに置かれる場合には、後でキャッシュ記憶が反
復されるのを防止するため、PSSエントリでMSONLYビッ
トが1に設定される。
SCEがCPiからDW記憶要求を受け取ると、その要求はSCE
の記憶スタックSSiの待ち行列に入れられる。SCEは可能
なとき、DW記憶を記憶スタックから主記憶装置に定常的
に更新する。
の記憶スタックSSiの待ち行列に入れられる。SCEは可能
なとき、DW記憶を記憶スタックから主記憶装置に定常的
に更新する。
SCEはBCEから3つの主要な要求を受け取る。ROの意図を
含むミス取出しは、RO状態の主記憶装置からのキャッシ
ュ行の転送を要求する。EXの意図を含むミス取出しは、
EX状態の主記憶装置からの行の転送を要求する。第3の
要求のタイプは、EX状況へのアップグレードであり、RO
状態ですでにBCEに存在しているキャッシュ行に関してE
X状況だけを要求するBCEからの要求は、相互問合せ(X
I)活動をトリガする。SCEは、米国特許第4394731号明
細書に示されている方式に類似しているが、実際には異
なる方法でXIを処理する。CDの維持及びXI条件を判定す
る際のそれらの探索は類似しているが、XI条件の解決に
は異なるアルゴリズムが使用される。以下に、BCE要求
のSCEによる処理を、CPi(0≦i≦3)のBCEからの要
求に関して説明する。第8A図ないし第8C図は、BCEから
の3種類の要求のSCEによる処理を表すフローチャート
である。
含むミス取出しは、RO状態の主記憶装置からのキャッシ
ュ行の転送を要求する。EXの意図を含むミス取出しは、
EX状態の主記憶装置からの行の転送を要求する。第3の
要求のタイプは、EX状況へのアップグレードであり、RO
状態ですでにBCEに存在しているキャッシュ行に関してE
X状況だけを要求するBCEからの要求は、相互問合せ(X
I)活動をトリガする。SCEは、米国特許第4394731号明
細書に示されている方式に類似しているが、実際には異
なる方法でXIを処理する。CDの維持及びXI条件を判定す
る際のそれらの探索は類似しているが、XI条件の解決に
は異なるアルゴリズムが使用される。以下に、BCE要求
のSCEによる処理を、CPi(0≦i≦3)のBCEからの要
求に関して説明する。第8A図ないし第8C図は、BCEから
の3種類の要求のSCEによる処理を表すフローチャート
である。
第8A図は、ROの意図を含むCPiからの行ミス要求(ステ
ップ270)のSCEによる処理に関するフローチャートであ
る。この行が遠隔位置でEXに保持されていない場合(27
1)、SCEは、主記憶装置からCPiに行取出しをスケジュ
ーリングし、CRLビットがオンの行受信信号でCPiに合図
を送る(ステップ272)。ここで、CPj(j≠i)が行EX
を保持していると仮定する。SCEはEXをROに変更する(C
ERO)信号をCPjに送る(ステップ273)。次に、SCEは、
その行が記憶スタックSSj内の未処理DWとオーバラップ
しているか否かを検査する(ステップ274)。オーバラ
ップしていない場合には、SCEは主記憶装置からPO状態
が割り当てられているCPiへの行の条件付き取出しをス
ケジューリングし、CPiのBCEにCRLビットがオフである
行受信信号で通知する。ここで、SCEは、CPjがなおその
行に対してEX状態を想定していることを認識し、CPjが
後のサイクルでEX状況の解放を肯定応答すると期待す
る。一方、SCEは、そのときにその行が既にSSj内の記憶
と衝突していることを検出した場合、CPjからEX状況解
除信号を受け取った後、SSj内の衝突するすべての記憶
が主記憶装置に送り出されたときに限り、主記憶装置か
らCPjへの無条件行取出し(CLR=1)をスケジューリン
グする。一般に、SCEは、記憶スタック内の衝突する記
憶が解消されるまで、主記憶装置の行の取出しのスケジ
ューリングを行なわない(ステップ277)。SCEが未処理
の記憶の衝突を検出したときに、条件付きの主記憶装置
の行取出しをスケジューリングしない理由は、この場合
CPjが他にも記憶を生成する可能性が大きいということ
である。
ップ270)のSCEによる処理に関するフローチャートであ
る。この行が遠隔位置でEXに保持されていない場合(27
1)、SCEは、主記憶装置からCPiに行取出しをスケジュ
ーリングし、CRLビットがオンの行受信信号でCPiに合図
を送る(ステップ272)。ここで、CPj(j≠i)が行EX
を保持していると仮定する。SCEはEXをROに変更する(C
ERO)信号をCPjに送る(ステップ273)。次に、SCEは、
その行が記憶スタックSSj内の未処理DWとオーバラップ
しているか否かを検査する(ステップ274)。オーバラ
ップしていない場合には、SCEは主記憶装置からPO状態
が割り当てられているCPiへの行の条件付き取出しをス
ケジューリングし、CPiのBCEにCRLビットがオフである
行受信信号で通知する。ここで、SCEは、CPjがなおその
行に対してEX状態を想定していることを認識し、CPjが
後のサイクルでEX状況の解放を肯定応答すると期待す
る。一方、SCEは、そのときにその行が既にSSj内の記憶
と衝突していることを検出した場合、CPjからEX状況解
除信号を受け取った後、SSj内の衝突するすべての記憶
が主記憶装置に送り出されたときに限り、主記憶装置か
らCPjへの無条件行取出し(CLR=1)をスケジューリン
グする。一般に、SCEは、記憶スタック内の衝突する記
憶が解消されるまで、主記憶装置の行の取出しのスケジ
ューリングを行なわない(ステップ277)。SCEが未処理
の記憶の衝突を検出したときに、条件付きの主記憶装置
の行取出しをスケジューリングしない理由は、この場合
CPjが他にも記憶を生成する可能性が大きいということ
である。
第8B図は、CPjからのEXの意図を含む行取出し要求に関
するSCEの動作を示す。これは、第8A図に示されている
プロシージャと類似している。ただし、SCEは、CD内に
示されているような行のコピーを保持するすべてのCPに
対し行無効化信号を送らなくてはならない。
するSCEの動作を示す。これは、第8A図に示されている
プロシージャと類似している。ただし、SCEは、CD内に
示されているような行のコピーを保持するすべてのCPに
対し行無効化信号を送らなくてはならない。
その行が遠隔位置でEX状態に保持されていない場合は
(281)、遠隔キャッシュ内にその行が存在しているか
否か(ステップ282)、及び、遠隔BCEがその行を無効化
するよう指示されているか否か(ステップ288)を判定
するため検査が行なわれる。その後、その行が遠隔キャ
ッシュに存在しない場合には(ステップ282)、SCEは主
記憶装置からCPiへの行取出しをスケジューリングし、C
LRビットがオンの受信行信号でCPiに合図する(ステッ
プ289)。CPj(j≠i)が行をEX状態で保持している場
合、SCEはCPjにその行を無効化するよう指示する(ステ
ップ283)。次に、SCEは、その行が記憶スタックSSj内
の未処理DWとオーバラップするかどうかを検査する(ス
テップ284)。オーバラップしていない場合には、SCE
は、主記憶装置からRO状態が割り当てられているCPiへ
の行の条件付き取出しをスケジューリングし、CPiのBCE
に、CLRビットがオフの受信行信号で通知する。ここ
で、SCEは、CPjがまだその行に対してEX状態であると想
定していることを認識し、CPjが後のサイクルでEX状況
の解除を肯定応答するよう期待する(ステップ285)。
一方、SCEは、そのときにその行がSSj内の記憶とすでに
衝突していることを検出した場合は、EX状態解除信号を
CPjから受け取った後、SSj内の衝突するすべての記憶が
主記憶装置に送り出されたときに限り、主記憶装置から
CPjへの無条件行取出し(CLR=1)をスケジューリング
する。
(281)、遠隔キャッシュ内にその行が存在しているか
否か(ステップ282)、及び、遠隔BCEがその行を無効化
するよう指示されているか否か(ステップ288)を判定
するため検査が行なわれる。その後、その行が遠隔キャ
ッシュに存在しない場合には(ステップ282)、SCEは主
記憶装置からCPiへの行取出しをスケジューリングし、C
LRビットがオンの受信行信号でCPiに合図する(ステッ
プ289)。CPj(j≠i)が行をEX状態で保持している場
合、SCEはCPjにその行を無効化するよう指示する(ステ
ップ283)。次に、SCEは、その行が記憶スタックSSj内
の未処理DWとオーバラップするかどうかを検査する(ス
テップ284)。オーバラップしていない場合には、SCE
は、主記憶装置からRO状態が割り当てられているCPiへ
の行の条件付き取出しをスケジューリングし、CPiのBCE
に、CLRビットがオフの受信行信号で通知する。ここ
で、SCEは、CPjがまだその行に対してEX状態であると想
定していることを認識し、CPjが後のサイクルでEX状況
の解除を肯定応答するよう期待する(ステップ285)。
一方、SCEは、そのときにその行がSSj内の記憶とすでに
衝突していることを検出した場合は、EX状態解除信号を
CPjから受け取った後、SSj内の衝突するすべての記憶が
主記憶装置に送り出されたときに限り、主記憶装置から
CPjへの無条件行取出し(CLR=1)をスケジューリング
する。
一般に、SCEは、記憶スタック内の衝突する記憶が解消
されるまで、主記憶装置行取出しをスケジューリングし
ない(ステップ287)。SCEが未処理の記憶の衝突を検出
したときに条件付き主記憶装置行取出しをスケジューリ
ングしない理由は、この場合CPjが他にも記憶を生成す
る可能性が大きいということである。
されるまで、主記憶装置行取出しをスケジューリングし
ない(ステップ287)。SCEが未処理の記憶の衝突を検出
したときに条件付き主記憶装置行取出しをスケジューリ
ングしない理由は、この場合CPjが他にも記憶を生成す
る可能性が大きいということである。
第8C図は、CPiからのEXへのグレードアップ要求に関す
るSCEの動作を示す(ステップ290)。この場合、その行
はすでに有効で、CPiのBCEでRO状態にある。SCEは、そ
の行が遠隔キャッシュ内に保持されていると判断した場
合(ステップ291)、その行のコピーを含むBCEに無効化
信号を送り出すだけでよい(ステップ292)。この設計
では、CPiがRO状態からEX状態へのグレードアップに関
する信号を受け取る前に、すべての無効化信号の受信装
置が、その信号を受け取るようになっている(ステップ
293)。タイミングの制御は、実施環境によって異な
る。
るSCEの動作を示す(ステップ290)。この場合、その行
はすでに有効で、CPiのBCEでRO状態にある。SCEは、そ
の行が遠隔キャッシュ内に保持されていると判断した場
合(ステップ291)、その行のコピーを含むBCEに無効化
信号を送り出すだけでよい(ステップ292)。この設計
では、CPiがRO状態からEX状態へのグレードアップに関
する信号を受け取る前に、すべての無効化信号の受信装
置が、その信号を受け取るようになっている(ステップ
293)。タイミングの制御は、実施環境によって異な
る。
第8A図及び8B図では、SCEがCPj(j≠i)によって保持
されている行のEX状態の解除を最終的に決定する前に、
主記憶装置からCPiへの条件付き行取出しが、スケジュ
ーリングされる。EX状況の解除に関する肯定応答の前
に、SCEがその行に関する後続の記憶をCPjから受け取る
ことが可能である。このような場合、SCEは、CPiに、定
期的行無効化信号によって条件付きで取り出されたデー
タを打ち切るよう指示しなくてはならない。一方、SCE
は、CPjからその行に対する余分な記憶を生成せずにEX
状態を解除することについての肯定応答を受け取った場
合、状態の変更を最終的に決定することができ、CPiに
状況確認信号を送る。CPiが状況確認信号を受け取った
後、BCEは後で説明するように、その行の条件付き状況
を廃棄する。
されている行のEX状態の解除を最終的に決定する前に、
主記憶装置からCPiへの条件付き行取出しが、スケジュ
ーリングされる。EX状況の解除に関する肯定応答の前
に、SCEがその行に関する後続の記憶をCPjから受け取る
ことが可能である。このような場合、SCEは、CPiに、定
期的行無効化信号によって条件付きで取り出されたデー
タを打ち切るよう指示しなくてはならない。一方、SCE
は、CPjからその行に対する余分な記憶を生成せずにEX
状態を解除することについての肯定応答を受け取った場
合、状態の変更を最終的に決定することができ、CPiに
状況確認信号を送る。CPiが状況確認信号を受け取った
後、BCEは後で説明するように、その行の条件付き状況
を廃棄する。
関連する記憶スタック内の関連記憶が主記憶装置にクリ
アされたことを確認するまで、SCEはCPによる行のEX状
態の解除を最終的に承認しない。これは一般に必ずしも
不可欠な要件ではない。この設計の説明を簡単にするた
め、ここではこの仮定を行なった。またXIの処理をSCE
が正しく直列化するものと想定した。SCEは、CP自体か
らのそれ以前の要求の処理を完了するまでは、CPに対し
て行に関するXI要求を発行しない。
アされたことを確認するまで、SCEはCPによる行のEX状
態の解除を最終的に承認しない。これは一般に必ずしも
不可欠な要件ではない。この設計の説明を簡単にするた
め、ここではこの仮定を行なった。またXIの処理をSCE
が正しく直列化するものと想定した。SCEは、CP自体か
らのそれ以前の要求の処理を完了するまでは、CPに対し
て行に関するXI要求を発行しない。
CPのBCEは、SCEから、行の受取り、状況確認、CERO及び
行無効化という4種類の主要な信号を受け取る。第9A図
ないし第9D図は、これらの信号を受け取った際のBCEの
活動に関するフローチャートである。
行無効化という4種類の主要な信号を受け取る。第9A図
ないし第9D図は、これらの信号を受け取った際のBCEの
活動に関するフローチャートである。
第9A図は、SCEからの行受信信号に対するBCEの活動を示
す(ステップ300)。BCEは、その後主記憶装置からデー
タを受け取れる状態となる(ステップ301)。信号内のC
LRビットが1で、無条件取出しを示す場合、BCEは通常
のようにデータの到着を待つ(ステップ304)。CLRビッ
トが0(ステップ302)で条件付き転送を示す場合は、B
CEは、後で第10図に関して説明するように、条件付き実
行段階を開始する(ステップ303)。
す(ステップ300)。BCEは、その後主記憶装置からデー
タを受け取れる状態となる(ステップ301)。信号内のC
LRビットが1で、無条件取出しを示す場合、BCEは通常
のようにデータの到着を待つ(ステップ304)。CLRビッ
トが0(ステップ302)で条件付き転送を示す場合は、B
CEは、後で第10図に関して説明するように、条件付き実
行段階を開始する(ステップ303)。
第9B図は、SCEから状況確認信号を受け取った際(ステ
ップ310)のBCEの活動を示す。この状況では、条件付き
で取り出された未処理の行が存在していなくてはならな
い。BCEは、そのCNPHASEフラグをオフにし、PSSディレ
クトリ内のCRLSEビットをすべて0にリセットして、条
件付き実行段階をリセットする。またBCEは、IE装置
に、そのCNFLGレジスタを0にリセットするよう指示す
る(ステップ311)。
ップ310)のBCEの活動を示す。この状況では、条件付き
で取り出された未処理の行が存在していなくてはならな
い。BCEは、そのCNPHASEフラグをオフにし、PSSディレ
クトリ内のCRLSEビットをすべて0にリセットして、条
件付き実行段階をリセットする。またBCEは、IE装置
に、そのCNFLGレジスタを0にリセットするよう指示す
る(ステップ311)。
第9C図は、SCEからCERO要求を受け取った際(ステップ3
20)のBCEの活動を示す。BCEはSCEにまだ解放されてい
ない前の無条件実行からの保留記憶が存在するかどうか
を検査する。(ステップ321)。BCEはPSSを検査し(CNS
TR=0の保留記憶と突き合わせ)、SCE及びキャッシュ
に対する現在進行中であるが未完了の記憶の解放が存在
するかどうかを判断して、これを確認する(ステップ32
2)。衝突条件がすでに存在しないときには、BCEは、そ
の行がキャッシュ・ディレクトリにある場合(ステップ
323)、その行のEX状態をROに変更し(ステップ324)、
CERO動作の完了をSCEに指示する(ステップ327)。条件
付き実行段階が完了したことがBCEでCNPHASE=1によっ
て示され(ステップ325)、その行のEX状態がキャッシ
ュに存在していた場合(ステップ323)、BCEは、すべて
の無条件命令の打切りをトリガする(ステップ326)。
20)のBCEの活動を示す。BCEはSCEにまだ解放されてい
ない前の無条件実行からの保留記憶が存在するかどうか
を検査する。(ステップ321)。BCEはPSSを検査し(CNS
TR=0の保留記憶と突き合わせ)、SCE及びキャッシュ
に対する現在進行中であるが未完了の記憶の解放が存在
するかどうかを判断して、これを確認する(ステップ32
2)。衝突条件がすでに存在しないときには、BCEは、そ
の行がキャッシュ・ディレクトリにある場合(ステップ
323)、その行のEX状態をROに変更し(ステップ324)、
CERO動作の完了をSCEに指示する(ステップ327)。条件
付き実行段階が完了したことがBCEでCNPHASE=1によっ
て示され(ステップ325)、その行のEX状態がキャッシ
ュに存在していた場合(ステップ323)、BCEは、すべて
の無条件命令の打切りをトリガする(ステップ326)。
第9D図はSCEから行無効化要求を受け取った際(ステッ
プ330)のBCEの活動を示す。この動作は、CERO要求の処
理に関する動作と類似している。
プ330)のBCEの活動を示す。この動作は、CERO要求の処
理に関する動作と類似している。
BCEは、行がキャッシュ内で見つかった場合(ステップ3
31)、まだSCEに解放されていない前の無条件実行から
の保留記憶が存在するかどうか検査する。BCEは、PSSを
検査し(CRLSE=0の保有記憶と突き合わせ)、SCE及び
キャッシュに対する進行中であるが未完了の記憶解放が
存在するかどうかを判断して、これを確認する(ステッ
プ333)。その後、ステップ334でこの行が無効化され
る。条件付き実行段階が完了したことがBCEでCNPHASE=
1によって示される場合、BCEはすべての条件付き命令
の打切りをトリガする(ステップ336)。ただし、その
行がすでにキャッシュに存在しない場合には、存在する
可能性のある条件付き実行を必ずしも打ち切る必要はな
い。BCEは、その行がキャッシュ内でEX状態にない限
り、SCEに完了を指示する必要はない(ステップ337)。
31)、まだSCEに解放されていない前の無条件実行から
の保留記憶が存在するかどうか検査する。BCEは、PSSを
検査し(CRLSE=0の保有記憶と突き合わせ)、SCE及び
キャッシュに対する進行中であるが未完了の記憶解放が
存在するかどうかを判断して、これを確認する(ステッ
プ333)。その後、ステップ334でこの行が無効化され
る。条件付き実行段階が完了したことがBCEでCNPHASE=
1によって示される場合、BCEはすべての条件付き命令
の打切りをトリガする(ステップ336)。ただし、その
行がすでにキャッシュに存在しない場合には、存在する
可能性のある条件付き実行を必ずしも打ち切る必要はな
い。BCEは、その行がキャッシュ内でEX状態にない限
り、SCEに完了を指示する必要はない(ステップ337)。
第10図は条件付き実行段階を開始するためのBCE及びIE
の活動を示す。BCEは、SCEからCLRビットがオンの行取
出し信号を受け取ると(ステップ340)、CNPHASEを1に
セットし、PSS管理のためCNSTRレジスタにNXTSTRインデ
ックス・レジスタの値を割り当てる。BCEはまた、IE装
置に、条件付き実行を開始するよう指示する(ステップ
341)。IE装置はCNFLG=1によって条件付き実行段階を
認識する。CNFLGが最初にオンになったとき、IE装置
は、レジスタCNIADDR内に命令アドレスを記憶する(ス
テップ342)。
の活動を示す。BCEは、SCEからCLRビットがオンの行取
出し信号を受け取ると(ステップ340)、CNPHASEを1に
セットし、PSS管理のためCNSTRレジスタにNXTSTRインデ
ックス・レジスタの値を割り当てる。BCEはまた、IE装
置に、条件付き実行を開始するよう指示する(ステップ
341)。IE装置はCNFLG=1によって条件付き実行段階を
認識する。CNFLGが最初にオンになったとき、IE装置
は、レジスタCNIADDR内に命令アドレスを記憶する(ス
テップ342)。
条件付き実行段階では、PSSで記憶が待機しているとCRL
SE及びMSONLYビットがオフになり、NXTSTRレジスタが1
だけ増分され(モジューロ8)、PSSFREEが1だけ減分
される。また、先行するSIコマンドによって識別される
キャッシュ行の位置が、新しいPSSエントリのSTRCOORD
フィールドに記録される。PSSFREE=0のとき、PSS挿入
に関するPSS桁あふれ条件が検出される。この場合、記
憶はIEによって保留される。無条件実行段階では、SCE
における記憶スタックが満杯のとき、記憶がPSSに置か
れる。ただしDWはキャッシュに保存される。このような
場合、PSSエントリでMSONLYビットがオンになり、SRLSE
ビットもオンになる。
SE及びMSONLYビットがオフになり、NXTSTRレジスタが1
だけ増分され(モジューロ8)、PSSFREEが1だけ減分
される。また、先行するSIコマンドによって識別される
キャッシュ行の位置が、新しいPSSエントリのSTRCOORD
フィールドに記録される。PSSFREE=0のとき、PSS挿入
に関するPSS桁あふれ条件が検出される。この場合、記
憶はIEによって保留される。無条件実行段階では、SCE
における記憶スタックが満杯のとき、記憶がPSSに置か
れる。ただしDWはキャッシュに保存される。このような
場合、PSSエントリでMSONLYビットがオンになり、SRLSE
ビットもオンになる。
第11図は、PSSから次に解放される記憶を見つけるため
のCPi内のBCEの動作を示す。BCEは定常的に、次にSCEに
解放すべき保留記憶があるかどうかPSSを検査する。PSS
内の次の記憶は、NXTRLSEレジスタによってインデクシ
ングされる(ステップ350)。NXTRLSEがNXTSTR(空のPS
Sを示す)に等しいか、またはCRLSEビットがオンの場合
(条件付き記憶を示す)(ステップ351)、PSS上の次の
記憶は解放できない。記憶がPSSから解放されるとき、B
CEは、レジスタNXTRLSEを1だけ増分し(モジューロ
8)(ステップ357)、PSSFREEを1だけ増分する。解放
されたPSS記憶エントリのMSONLYビットがオフのとき
(ステップ355)、DWも、PSSディレクトリ・エントリの
STRCOORDフィールドによって位置決めされるキャッシュ
に保存される(ステップ356)。
のCPi内のBCEの動作を示す。BCEは定常的に、次にSCEに
解放すべき保留記憶があるかどうかPSSを検査する。PSS
内の次の記憶は、NXTRLSEレジスタによってインデクシ
ングされる(ステップ350)。NXTRLSEがNXTSTR(空のPS
Sを示す)に等しいか、またはCRLSEビットがオンの場合
(条件付き記憶を示す)(ステップ351)、PSS上の次の
記憶は解放できない。記憶がPSSから解放されるとき、B
CEは、レジスタNXTRLSEを1だけ増分し(モジューロ
8)(ステップ357)、PSSFREEを1だけ増分する。解放
されたPSS記憶エントリのMSONLYビットがオフのとき
(ステップ355)、DWも、PSSディレクトリ・エントリの
STRCOORDフィールドによって位置決めされるキャッシュ
に保存される(ステップ356)。
条件付き実行の打切りは、BCEによってトリガされ、や
はりIE装置によって処理される。BCEは、CNPHASEフラグ
を0にセットし、CNSTRレジスタの値でNXTSTRレジスタ
をリセットし、PSSFREEを調整してPSSにあるすべての条
件付き記憶をクリアする。IE装置は打切りを指示される
と、CNFLGをオフにし、CNIIDXアドレス・レジスタに記
録された命令の実行を再開する。
はりIE装置によって処理される。BCEは、CNPHASEフラグ
を0にセットし、CNSTRレジスタの値でNXTSTRレジスタ
をリセットし、PSSFREEを調整してPSSにあるすべての条
件付き記憶をクリアする。IE装置は打切りを指示される
と、CNFLGをオフにし、CNIIDXアドレス・レジスタに記
録された命令の実行を再開する。
実行の再開には、実施態様に応じて、マシンの状態を適
切にリセットする必要がある。1つの簡単な技法は、条
件付き実行の前にIEがPSWやGPRなどのマシンの状態をコ
ピーするものである。実施態様に応じて、命令実行のバ
ックアップやシステム回復が好ましくないほど複雑にな
るときには、条件付き実行を保留しあるいは打ち切るの
が好都合である。たとえば、この設計では比較後スワッ
プ(CS)などの直列化命令については条件付き実行を禁
止している。極端な場合、この設計は、どんな条件付き
実行も行なわず、ただXIEX状態時にキャッシュ行の早期
取出しを行なうだけである。本発明をRO及びEX状態のMP
キャッシュ設計に関して説明してきたが、データ行の早
期取出しを可能にするため、EX/RO状態を伴わないスト
アスルー型MPキャッシュに同様のコンセプト及び技術を
適用することも可能である。
切にリセットする必要がある。1つの簡単な技法は、条
件付き実行の前にIEがPSWやGPRなどのマシンの状態をコ
ピーするものである。実施態様に応じて、命令実行のバ
ックアップやシステム回復が好ましくないほど複雑にな
るときには、条件付き実行を保留しあるいは打ち切るの
が好都合である。たとえば、この設計では比較後スワッ
プ(CS)などの直列化命令については条件付き実行を禁
止している。極端な場合、この設計は、どんな条件付き
実行も行なわず、ただXIEX状態時にキャッシュ行の早期
取出しを行なうだけである。本発明をRO及び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、80……バァファ制御装置(BC
E)、30……記憶制御要素(SCE)、31−34……コピー・
ディレクトリ(CD)、35−38……記憶スタック(SS)、
40……チャネル、50……主記憶装置(MS)、51−54……
基本記憶モジュール装置(BSC)、60−67……基本記憶
モジュール制御(BSM)、70……命令バッファ、71、72
……レジスタ、81……変換ルックアサイド・バッファ
(TLB)制御機構、82……プロセッサ・キャッシュ・デ
ィレクトリ(PD)、83……キャッシュ・アレイ、84……
保留記憶スタック(PSS)。
図である。 第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、80……バァファ制御装置(BC
E)、30……記憶制御要素(SCE)、31−34……コピー・
ディレクトリ(CD)、35−38……記憶スタック(SS)、
40……チャネル、50……主記憶装置(MS)、51−54……
基本記憶モジュール装置(BSC)、60−67……基本記憶
モジュール制御(BSM)、70……命令バッファ、71、72
……レジスタ、81……変換ルックアサイド・バッファ
(TLB)制御機構、82……プロセッサ・キャッシュ・デ
ィレクトリ(PD)、83……キャッシュ・アレイ、84……
保留記憶スタック(PSS)。
Claims (5)
- 【請求項1】複数のプロセッサと、 各前記プロセッサのためのローカル・キャッシュと、 前記プロセッサにより共有される主記憶装置と、 前記主記憶装置内の各ラインが少なくとも2つの別の状
態のうち1つを有し得るようにする共用制御とを有し、 或るラインに対する第1の前記状態は、どのプロセッサ
にも前記ラインからの読み取りは許可するが前記ライン
への書き込みは許可しない状態であり、 或るラインに対する第2の前記状態は、或る特定のプロ
セッサにより保持され、前記特定のプロセッサのみに前
記ラインからの読み取り及び前記ラインへの書き込みを
許可する状態である マルチプロセッサ・コンピュータ・システムにおいて、 前記1のプロセッサが前記第2状態であるラインを有す
る場合に、他の1の前記プロセッサの前記ローカル・キ
ャッシュに前記主記憶装置から前記ラインをフェッチす
る方法であって、 前記ラインの状態を、前記他の1のプロセッサが前記ラ
インから読み取ることができる状態に変更することを要
求するステップと、 前記要求した状態の変更がなされるのを待つことなく、
前記1のプロセッサにより前記第2の状態に保持された
ままの前記ラインを、前記他の1のプロセッサの前記ロ
ーカル・キャッシュにフェッチするステップと、 フェッチした後に前記ラインが修正されたかどうかを、
前記要求した状態の変更を行った時に前記他の1のプロ
セッサに通知するステップと、 フェッチした後に前記ラインが修正された場合、前記修
正されたラインを再フェッチするステップと を有するフェッチ方法。 - 【請求項2】前記ラインの状態を変更することを要求す
るステップが、前記ラインの状態を前記第1の状態に変
更することを要求するステップを含む請求項1記載のフ
ェッチ方法。 - 【請求項3】前記ラインの状態を変更することを要求す
るステップが、前記ラインの状態を前記1のプロセッサ
により保持された第2の状態から、前記他の1のプロセ
ッサにより保持された第2の状態に変更することを要求
するステップを含む請求項1記載のフェッチ方法。 - 【請求項4】複数のプロセッサと、 各前記プロセッサのためのローカル・キャッシュと、 前記プロセッサにより共有される主記憶装置と、 前記主記憶装置内の各ラインが少なくとも2つの別の状
態のうち1つを有し得るようにする共用制御とを有し、 或るラインに対する第1の前記状態は、どのプロセッサ
にも前記ラインからの読み取りは許可するが前記ライン
への書き込みは許可しない状態であり、 或るラインに対する第2の前記状態は、或る特定のプロ
セッサにより保持され、前記特定のプロセッサのみに前
記ラインからの読み取り及び前記ラインへの書き込みを
許可する状態である マルチプロセッサ・コンピュータ・システムにおいて、 前記1のプロセッサが前記第2状態であるラインを有す
る場合に、他の1の前記プロセッサの前記ローカル・キ
ャッシュに前記主記憶装置から前記ラインをフェッチす
る方法であって、 前記ラインの状態を、前記他の1のプロセッサが前記ラ
インから読み取ることができる状態に変更することを要
求するステップと、 前記要求した状態の変更がなされるのを待つことなく、
前記1のプロセッサにより前記第2の状態に保持された
ままの前記ラインを、前記他の1のプロセッサの前記ロ
ーカル・キャッシュにフェッチするステップと、 前記要求した状態の変更がなされるのを待つことなく、
前記他の1のプロセッサにより前記フェッチされたライ
ンを読み取り、前記他の1のプロセッサにより命令の実
行を続け、フェッチした後に前記ラインが修正されたか
どうかを、前記要求した状態の変更を行った時に前記他
の1のプロセッサに通知するステップと、 フェッチした後に前記ラインが修正された場合、前記修
正されたラインを再フェッチし、前記実行した命令を再
実行するステップと を有するフェッチ方法。 - 【請求項5】前記実行した命令を再実行するステップ
が、前記要求した状態の変更がなされ前記再実行された
命令に依存する命令を実行するまでの間に無効となった
前記他の1のプロセッサの前記ローカル・キャッシュ内
のラインからのデータまたは前記修正されたラインから
のデータを使用した命令の再実行を含む請求項4記載の
フェッチ方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US280034 | 1981-07-02 | ||
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 JPH02166539A (ja) | 1990-06-27 |
JPH0670779B2 true 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) |
Families Citing this family (26)
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 |
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 |
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 |
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 |
JP2641396B2 (ja) * | 1994-08-30 | 1997-08-13 | 甲府日本電気株式会社 | ページ履歴メモリ装置 |
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 |
US11210734B1 (en) | 2017-05-10 | 2021-12-28 | State Farm Mutual Automobile Insurance Company | Approving and updating dynamic mortgage applications |
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 |
US11966992B1 (en) | 2017-05-10 | 2024-04-23 | State Farm Mutual Automobile Insurance Company | Identifying multiple mortgage ready properties |
Family Cites Families (18)
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 |
US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
US4349871A (en) * | 1980-01-28 | 1982-09-14 | Digital Equipment Corporation | Duplicate tag store for cached multiprocessor system |
JPS601656B2 (ja) * | 1980-05-14 | 1985-01-16 | 日本電気株式会社 | 緩衝記憶回路 |
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 |
JPS58154044A (ja) * | 1982-03-05 | 1983-09-13 | Nec Corp | 情報処理装置 |
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 |
EP0256267B1 (en) * | 1986-08-12 | 1994-03-02 | Hitachi, Ltd. | Microprocessor for retrying data transfer |
US4833601A (en) * | 1987-05-28 | 1989-05-23 | Bull Hn Information Systems Inc. | Cache resiliency in processing a variety of address faults |
JPH0195344A (ja) * | 1987-10-07 | 1989-04-13 | Matsushita Electric Ind Co Ltd | キャッシュ・メモリー |
US4831622A (en) * | 1987-12-22 | 1989-05-16 | Honeywell Bull Inc. | Apparatus for forcing a reload from main memory upon cache memory error |
-
1988
- 1988-12-05 US US07/280,034 patent/US5018063A/en not_active Expired - Fee Related
-
1989
- 1989-09-20 JP JP1242402A patent/JPH0670779B2/ja not_active Expired - Lifetime
- 1989-10-16 DE DE68925470T patent/DE68925470T2/de not_active Expired - Fee Related
- 1989-10-16 EP EP89119148A patent/EP0372201B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0372201A2 (en) | 1990-06-13 |
US5018063A (en) | 1991-05-21 |
JPH02166539A (ja) | 1990-06-27 |
DE68925470T2 (de) | 1996-08-14 |
EP0372201B1 (en) | 1996-01-17 |
EP0372201A3 (en) | 1991-09-04 |
DE68925470D1 (de) | 1996-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0670779B2 (ja) | フェッチ方法 | |
JP3927556B2 (ja) | マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ | |
JP2566701B2 (ja) | 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置 | |
EP0514024B1 (en) | Method and apparatus for an improved memory architecture | |
US5023776A (en) | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage | |
US5148533A (en) | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units | |
US8321634B2 (en) | System and method for performing memory operations in a computing system | |
US7617378B2 (en) | Multiprocessor system with retry-less TLBI protocol | |
EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
US6553442B1 (en) | Bus master for SMP execution of global operations utilizing a single token with implied release | |
US20050210204A1 (en) | Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method | |
EP1402349A2 (en) | Method and apparatus for facilitating speculative stores in a multiprocessor system | |
US20090106498A1 (en) | Coherent dram prefetcher | |
US5016168A (en) | Method for storing into non-exclusive cache lines in multiprocessor systems | |
US6516368B1 (en) | Bus master and bus snooper for execution of global operations utilizing a single token for multiple operations with explicit release | |
US6507880B1 (en) | Bus protocol, bus master and bus snooper for execution of global operations utilizing multiple tokens | |
EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
US5875468A (en) | Method to pipeline write misses in shared cache multiprocessor systems | |
JP2001222468A (ja) | マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法 | |
US6480915B1 (en) | Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release | |
US6442629B1 (en) | Bus protocol and token manager for execution of global operations utilizing a single token with multiple operations with explicit release | |
US6460100B1 (en) | Bus snooper for SMP execution of global operations utilizing a single token with implied release | |
US7774552B1 (en) | Preventing store starvation in a system that supports marked coherence | |
IE901514A1 (en) | Method and apparatus for interfacing a system control unit¹for a multiprocessor system with the central processing¹units |