JPH07101412B2 - データ事前取出し方法およびマルチプロセッサ・システム - Google Patents
データ事前取出し方法およびマルチプロセッサ・システムInfo
- Publication number
- JPH07101412B2 JPH07101412B2 JP2110655A JP11065590A JPH07101412B2 JP H07101412 B2 JPH07101412 B2 JP H07101412B2 JP 2110655 A JP2110655 A JP 2110655A JP 11065590 A JP11065590 A JP 11065590A JP H07101412 B2 JPH07101412 B2 JP H07101412B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- row
- data row
- local
- cache memory
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History based prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般にマルチプロセッサ(MP)データ処理シ
ステムにおける大型キャッシュ・メモリ内のデータ・ミ
スを減らすための技術に関し、さらに具体的には記憶情
報に基づくマルチプロセッサ・キャッシュ内のデータ事
前取出し機構に関する。
ステムにおける大型キャッシュ・メモリ内のデータ・ミ
スを減らすための技術に関し、さらに具体的には記憶情
報に基づくマルチプロセッサ・キャッシュ内のデータ事
前取出し機構に関する。
B.従来の技術 別々のプロセッサで同時に走行することができる動作を
並列に実行することにより、スループットを高める、高
性能MPコンピュータ・システムが開発されている。この
ような高性能MPコンピュータ・システムは、複数の中央
プロセッサ(CP)が、独立して並列に動作するが、デー
タ交換が必要なとき、相互にあるいは主記憶装置との間
で時々通信することを特徴とする。CPとMSは、入出力
(I/O)ポートを有し、データを交換する際にはそれら
を接続しなければならない。
並列に実行することにより、スループットを高める、高
性能MPコンピュータ・システムが開発されている。この
ような高性能MPコンピュータ・システムは、複数の中央
プロセッサ(CP)が、独立して並列に動作するが、デー
タ交換が必要なとき、相互にあるいは主記憶装置との間
で時々通信することを特徴とする。CPとMSは、入出力
(I/O)ポートを有し、データを交換する際にはそれら
を接続しなければならない。
各CPがそれ自体のキャッシュを有する緊密結合マルチプ
ロセッサ・システムと呼ばれるタイプのMPシステムで
は、システムの様々なレベルと、整合性の問題が存在す
る。特にメモリ階層の隣接したレベル間で不整合が発生
する。多重キャッシュは、たとえばCPの1つがそのコピ
ーを修正したために、同じデータの異なるバージョンを
もつことがあり得る。それゆえ、各プロセッサのキャッ
シュが、同時にいくつかのキャッシュ内にある行(ライ
ン、以下では単に行という)に何が起こったのかを知る
必要がある。多数のCPが同じ主記憶装置を共用するMPシ
ステムでは、各CPは、アクセスが発行された時、アーキ
テクチャ仕様に従って、データの最も最近に更新された
バージョンを得ることが必要である。この要件により、
キャッシュ間のデータの整合性を常に監視することが必
要となる。
ロセッサ・システムと呼ばれるタイプのMPシステムで
は、システムの様々なレベルと、整合性の問題が存在す
る。特にメモリ階層の隣接したレベル間で不整合が発生
する。多重キャッシュは、たとえばCPの1つがそのコピ
ーを修正したために、同じデータの異なるバージョンを
もつことがあり得る。それゆえ、各プロセッサのキャッ
シュが、同時にいくつかのキャッシュ内にある行(ライ
ン、以下では単に行という)に何が起こったのかを知る
必要がある。多数のCPが同じ主記憶装置を共用するMPシ
ステムでは、各CPは、アクセスが発行された時、アーキ
テクチャ仕様に従って、データの最も最近に更新された
バージョンを得ることが必要である。この要件により、
キャッシュ間のデータの整合性を常に監視することが必
要となる。
キャッシュの整合性の問題に対する多数の解決策が提案
されてきた。初期の解決策は、C.K.タング(Tang)の論
文「緊密結合マルチプロセッサ・システムにおけるキャ
ッシュ・システムの設計(Cache System Design in the
Tightly Coupled Multiprocessor System)」、Procee
dings of the AFIPS(1976)と、L.M.センシエ(Censie
r)とP.フォトリエ(Feautrier)の論文「多重キャッシ
ュ・システムでの整合性の問題に対する新しい解決策
(A New Solution to Coherence Problems in Multicac
he System)」、IEEE Transactionson Computers、1978
年12月、pp.1112−1118に記載されている。センシエ等
は、集中大域アクセス許可テーブルを用いた、共用書き
込み可能データが複数のキャッシュ内に存在できる方式
を記載している。しかし、センシエ等は結論の節で認め
ているように、2年早くタングが同様の手法を記述して
いることを知らなかった。タングは、状況を維持するた
めにキャッシュのコピー登録簿(ディレクトリ)を用い
ることを提案したが、センシエ等は、類似の状況ビット
で各メモリ・ブロックをタグ付けすることを提案した。
されてきた。初期の解決策は、C.K.タング(Tang)の論
文「緊密結合マルチプロセッサ・システムにおけるキャ
ッシュ・システムの設計(Cache System Design in the
Tightly Coupled Multiprocessor System)」、Procee
dings of the AFIPS(1976)と、L.M.センシエ(Censie
r)とP.フォトリエ(Feautrier)の論文「多重キャッシ
ュ・システムでの整合性の問題に対する新しい解決策
(A New Solution to Coherence Problems in Multicac
he System)」、IEEE Transactionson Computers、1978
年12月、pp.1112−1118に記載されている。センシエ等
は、集中大域アクセス許可テーブルを用いた、共用書き
込み可能データが複数のキャッシュ内に存在できる方式
を記載している。しかし、センシエ等は結論の節で認め
ているように、2年早くタングが同様の手法を記述して
いることを知らなかった。タングは、状況を維持するた
めにキャッシュのコピー登録簿(ディレクトリ)を用い
ることを提案したが、センシエ等は、類似の状況ビット
で各メモリ・ブロックをタグ付けすることを提案した。
マルチ・プロセッサ(MP)キャッシュの整合性に対する
代表的な手法は次の通りである。プロセッサは、キャッ
シュ行を修正する(その中に記憶する)ことを必要とす
る時、まず遠隔キャッシュ内のその行のコピーを無効に
する。これは、記憶信号を(たとえば、全プロセッサを
接続する共通バスを介して)遠隔プロセッサに同報通信
することにより、あるいは集中記憶機能(たとえば、IB
M3081システム内の記憶制御エレメント(SCE))からの
許可を要求することにより実現される。遠隔プロセッサ
・キャッシュ内にあろうとなかろうと、キャッシュ行を
無効にするプロセスは、相互問合せ無効化(XI無効化)
と呼ばれる。そのようなXI無効化信号を減らすための様
々な設計技術が提案されている。たとえば、IBM3081シ
ステムでは、プロセッサ・キャッシュでの排他的(EX)
状況を使って、関連する行が遠隔キャッシュ内に存在し
ないという情報を記録するが、排他的状況のため、キャ
ッシュ中に記憶される時に、XI無効化活動を必要としな
い。
代表的な手法は次の通りである。プロセッサは、キャッ
シュ行を修正する(その中に記憶する)ことを必要とす
る時、まず遠隔キャッシュ内のその行のコピーを無効に
する。これは、記憶信号を(たとえば、全プロセッサを
接続する共通バスを介して)遠隔プロセッサに同報通信
することにより、あるいは集中記憶機能(たとえば、IB
M3081システム内の記憶制御エレメント(SCE))からの
許可を要求することにより実現される。遠隔プロセッサ
・キャッシュ内にあろうとなかろうと、キャッシュ行を
無効にするプロセスは、相互問合せ無効化(XI無効化)
と呼ばれる。そのようなXI無効化信号を減らすための様
々な設計技術が提案されている。たとえば、IBM3081シ
ステムでは、プロセッサ・キャッシュでの排他的(EX)
状況を使って、関連する行が遠隔キャッシュ内に存在し
ないという情報を記録するが、排他的状況のため、キャ
ッシュ中に記憶される時に、XI無効化活動を必要としな
い。
従来のMPXI無効化設計に固有の1つのオーバーヘッド
は、XI無効化による余分のミスがあることである。すな
わち、そのキャッシュへのプロセッサ・アクセスで、行
が見つからないことがあるが、アクセス前に遠隔プロセ
ッサによってXI無効化されない場合には、そのことは起
こらないはずである。この問題は、より多くの中央プロ
セッサ(CP)で大型キャッシュが使われるようになっ
て、より深刻になってきている。シミュレーションの結
果、そのような余分のミスは、ほとんどが命令行(I
行)ではなく、データ行(D行)で起こることを示して
いる。大型キャッシュを用いる場合、ミス率は、ユニプ
ロセッサ(UP)環境中ではかなり満足できるものであ
る。遠隔記憶による余分のミスを減らすための1つの手
法は、遠隔CPによって無効にされる可能性のあるデータ
行を事前に取り出すことである。
は、XI無効化による余分のミスがあることである。すな
わち、そのキャッシュへのプロセッサ・アクセスで、行
が見つからないことがあるが、アクセス前に遠隔プロセ
ッサによってXI無効化されない場合には、そのことは起
こらないはずである。この問題は、より多くの中央プロ
セッサ(CP)で大型キャッシュが使われるようになっ
て、より深刻になってきている。シミュレーションの結
果、そのような余分のミスは、ほとんどが命令行(I
行)ではなく、データ行(D行)で起こることを示して
いる。大型キャッシュを用いる場合、ミス率は、ユニプ
ロセッサ(UP)環境中ではかなり満足できるものであ
る。遠隔記憶による余分のミスを減らすための1つの手
法は、遠隔CPによって無効にされる可能性のあるデータ
行を事前に取り出すことである。
C.発明が解決しようとする課題 本発明の1つの目的は、記憶情報に基づくMPキャッシュ
内のデータ事前取出し機構を提供し、それによって大型
キャッシュを有するMP内のデータ・ミスを大幅に減らす
ことができる。
内のデータ事前取出し機構を提供し、それによって大型
キャッシュを有するMP内のデータ・ミスを大幅に減らす
ことができる。
D.課題を解決するための手段 本発明によれば、活動記録情報を用いる機構を使って、
データ事前取出し(D事前取出し)の判断を行なう。こ
の情報は、活動記録テーブルH内に記憶され、そのよう
なテーブルが各CPごとに1つ、たとえばバッファ制御エ
レメント(BCE)にある。それぞれの行Lについて、H
[L]は、H内のLに関する情報を示す。異なる2つの
タイプの活動記録がHに保持できる。
データ事前取出し(D事前取出し)の判断を行なう。こ
の情報は、活動記録テーブルH内に記憶され、そのよう
なテーブルが各CPごとに1つ、たとえばバッファ制御エ
レメント(BCE)にある。それぞれの行Lについて、H
[L]は、H内のLに関する情報を示す。異なる2つの
タイプの活動記録がHに保持できる。
(1)XI無効化−各H[L]に、Lが再取出しなしにXI
無効化されたかどうかが記録される。
無効化されたかどうかが記録される。
(2)CHLOC−各H[L]に、また局所変更活動記録、
すなわち最後の取出し以降にLが記憶されたかどうかが
記録される。
すなわち最後の取出し以降にLが記憶されたかどうかが
記録される。
また、記憶制御エレメント(SCE)に大域Hを保持する
ことも可能である。この場合、SCEは、各行ごとにテー
ブルI記録、すなわちCPによる最後のアクセス中に、L
がXI無効化を必要としたかどうかを記録する情報I
[L]を保持する。プロセッサCPからのLに対するキャ
ッシュ・ミスが起こった時、SCEは、キャッシュCi内に
ない場合、XI無効化を必要とした(Iで示される)行の
いくつかをキャッシュCi中に事前に取り出す。テーブル
の管理は簡単である。記憶またはEX取出し時にたとえば
L上でXI無効化が起こった時、対応するエントリがセッ
トされる。たとえばD取出しミスの時にLにアクセスし
た時は、XI無効化なしにI内のエントリがリセットされ
る。エントリをオフにするための他の基準は、その行が
いつ取り出されるか、たとえば要求時かそれとも事前取
出し時かである。
ことも可能である。この場合、SCEは、各行ごとにテー
ブルI記録、すなわちCPによる最後のアクセス中に、L
がXI無効化を必要としたかどうかを記録する情報I
[L]を保持する。プロセッサCPからのLに対するキャ
ッシュ・ミスが起こった時、SCEは、キャッシュCi内に
ない場合、XI無効化を必要とした(Iで示される)行の
いくつかをキャッシュCi中に事前に取り出す。テーブル
の管理は簡単である。記憶またはEX取出し時にたとえば
L上でXI無効化が起こった時、対応するエントリがセッ
トされる。たとえばD取出しミスの時にLにアクセスし
た時は、XI無効化なしにI内のエントリがリセットされ
る。エントリをオフにするための他の基準は、その行が
いつ取り出されるか、たとえば要求時かそれとも事前取
出し時かである。
E.実施例 ここで図面、特に第1図を参照すると、本発明が適用で
きるタイプのマルチプロセッサ(MP)システムがブロッ
ク・ダイヤグラムの形で示されている。MPシステムは4
つの中央処理装置(CP0、CP1、CP2、CP3)を含み、各CP
が、それぞれ命令実行(IE)ユニット14、15、16、17、
およびバッファ制御エレメント(BCE)20、21、22、23
を含む。各IEユニットは、主記憶装置(MS)50内のオペ
ランドの取出しと記憶を要求する命令を発行する、ハー
ドウェアとマイクロコードを含んでいる。
きるタイプのマルチプロセッサ(MP)システムがブロッ
ク・ダイヤグラムの形で示されている。MPシステムは4
つの中央処理装置(CP0、CP1、CP2、CP3)を含み、各CP
が、それぞれ命令実行(IE)ユニット14、15、16、17、
およびバッファ制御エレメント(BCE)20、21、22、23
を含む。各IEユニットは、主記憶装置(MS)50内のオペ
ランドの取出しと記憶を要求する命令を発行する、ハー
ドウェアとマイクロコードを含んでいる。
IEユニット14〜17は、当該のキャッシュ制御機構BCE20
〜23に取出し命令または記憶命令を発行することによ
り、取出し動作または記憶動作を開始し、プロセッサ・
ストアスルー(ST)キャッシュとそれに関連するプロセ
ッサ・キャッシュ登録簿(PD)、および関連するCP10〜
L13が独占的に使用するすべてのプロセッサ・キャッシ
ュ制御機構を含んでいる。CPは、一般に、オペランドが
必要とする各ダブルワード(DW)単位ごとに取出し命令
または記憶命令を発行する。そのDWを含むキャッシュ行
がPD内にあって、キャッシュ・ヒットである場合は、命
令の種類に応じて、そのDWがキャッシュから取り出さ
れ、またはキャッシュに記憶される。キャッシュ内オペ
ランド取出しヒットの場合は、記憶装置アクセスは、BC
Eの外に行く必要なく完了する。時々、要求されたDWが
キャッシュ内になく、キャッシュ・ミスになることがあ
る。IE取出し命令または記憶命令が完了する前に、DWを
主記憶装置から取り出さなければならない。そうするた
めに、BCEは、IEユニットが要求するDWを有するデータ
行単位を主記憶装置50から得ることを記憶制御エレメン
ト(SCE)に要求する、対応する取出しミス命令または
記憶ミス命令を生成する。その行単位は、主記憶装置50
内の行の境界上にあるが、要求されたDWは、ミスとなっ
た行転送が完了するまでIE要求を生かし続けるために、
要求するBCEに戻される、取り出された行内の最初のDW
となる。
〜23に取出し命令または記憶命令を発行することによ
り、取出し動作または記憶動作を開始し、プロセッサ・
ストアスルー(ST)キャッシュとそれに関連するプロセ
ッサ・キャッシュ登録簿(PD)、および関連するCP10〜
L13が独占的に使用するすべてのプロセッサ・キャッシ
ュ制御機構を含んでいる。CPは、一般に、オペランドが
必要とする各ダブルワード(DW)単位ごとに取出し命令
または記憶命令を発行する。そのDWを含むキャッシュ行
がPD内にあって、キャッシュ・ヒットである場合は、命
令の種類に応じて、そのDWがキャッシュから取り出さ
れ、またはキャッシュに記憶される。キャッシュ内オペ
ランド取出しヒットの場合は、記憶装置アクセスは、BC
Eの外に行く必要なく完了する。時々、要求されたDWが
キャッシュ内になく、キャッシュ・ミスになることがあ
る。IE取出し命令または記憶命令が完了する前に、DWを
主記憶装置から取り出さなければならない。そうするた
めに、BCEは、IEユニットが要求するDWを有するデータ
行単位を主記憶装置50から得ることを記憶制御エレメン
ト(SCE)に要求する、対応する取出しミス命令または
記憶ミス命令を生成する。その行単位は、主記憶装置50
内の行の境界上にあるが、要求されたDWは、ミスとなっ
た行転送が完了するまでIE要求を生かし続けるために、
要求するBCEに戻される、取り出された行内の最初のDW
となる。
SCE30は、CP10〜13と主記憶装置50に接続されている。
主記憶装置50は、複数の基本記憶モジュール(BSM)制
御装置BSC0、BSC1、BSC2、BSC3(それぞれ51、52、53、
54)から構成され、各基本記憶制御装置が2つのBSM0
(60、62、64、66)と1(61、63、65、67)に接続され
ている。4つのBSC151〜54は、それぞれSCE30に接続さ
れている。従来のシステムでは、SCE30は、4つのコピ
ー登録簿(CD)31、32、33、34を含み、そのそれぞれ
が、米国特許第4394731号明細書に述べられたのと同様
の方式で、BCFの1つに、対応するプロセッサ・キャッ
シュ登録簿の内容のイメージを含んでいる。
主記憶装置50は、複数の基本記憶モジュール(BSM)制
御装置BSC0、BSC1、BSC2、BSC3(それぞれ51、52、53、
54)から構成され、各基本記憶制御装置が2つのBSM0
(60、62、64、66)と1(61、63、65、67)に接続され
ている。4つのBSC151〜54は、それぞれSCE30に接続さ
れている。従来のシステムでは、SCE30は、4つのコピ
ー登録簿(CD)31、32、33、34を含み、そのそれぞれ
が、米国特許第4394731号明細書に述べられたのと同様
の方式で、BCFの1つに、対応するプロセッサ・キャッ
シュ登録簿の内容のイメージを含んでいる。
ダブルワード広域両方向データ・バスが、主記憶装置内
の各BSM60〜67と、対応するSCEポートとの間、およびSC
Eポートから入出力チャネル・プロセッサ40および対応
するCP10〜13への間に設けられている。データ・バスと
共に、制御信号およびアドレス信号用の別になった数組
のコマンド・バスもある。CPがDWアクセス要求に対する
キャッシュ・ミスに出会った時、そのBCEは、ミス・コ
マンドをSCE30に送ることにより、主記憶装置に対する
行アクセス要求を開始する。次いでSCE30は、主記憶装
置内の要求されたBSMに命令する再発行する。BSM使用中
状態の場合には、SCE30は、その要求をコマンド待ち行
列にセーブし、後で要求されるBSM60〜67が有効になっ
た時に再発行する。SCE30はまた、キャッシュの衝突が
そのXI論理回路によって発見された時の除いて、特定の
BSMに対するすべてのコマンドが先入れ先出し(FIFO)
の順序で発行されるように、規則正しく主記憶装置コマ
ンドを順序づける。主記憶装置要求を取り扱う通常のシ
ーケンス中、SCE30は、たえず主記憶装置の状況を監視
し、保護キーとすべてのキャッシュ登録簿の問合せ結果
を分析し、現在SCE30中に保持されているすべての未処
理コマンドの更新済み状況を検査し、またSCE30が受け
取るのをBCE20ないし23内で待っている新しいBCEコマン
ドを探す。
の各BSM60〜67と、対応するSCEポートとの間、およびSC
Eポートから入出力チャネル・プロセッサ40および対応
するCP10〜13への間に設けられている。データ・バスと
共に、制御信号およびアドレス信号用の別になった数組
のコマンド・バスもある。CPがDWアクセス要求に対する
キャッシュ・ミスに出会った時、そのBCEは、ミス・コ
マンドをSCE30に送ることにより、主記憶装置に対する
行アクセス要求を開始する。次いでSCE30は、主記憶装
置内の要求されたBSMに命令する再発行する。BSM使用中
状態の場合には、SCE30は、その要求をコマンド待ち行
列にセーブし、後で要求されるBSM60〜67が有効になっ
た時に再発行する。SCE30はまた、キャッシュの衝突が
そのXI論理回路によって発見された時の除いて、特定の
BSMに対するすべてのコマンドが先入れ先出し(FIFO)
の順序で発行されるように、規則正しく主記憶装置コマ
ンドを順序づける。主記憶装置要求を取り扱う通常のシ
ーケンス中、SCE30は、たえず主記憶装置の状況を監視
し、保護キーとすべてのキャッシュ登録簿の問合せ結果
を分析し、現在SCE30中に保持されているすべての未処
理コマンドの更新済み状況を検査し、またSCE30が受け
取るのをBCE20ないし23内で待っている新しいBCEコマン
ドを探す。
SCE30は、複数の記憶スタック(SS0、SS1、SS2、SS3)3
5、36、37、38を保持し、各スタックは対応するCPに対
する最高16DWまでの主記憶装置記憶要求を保持する。SC
E30は、記憶スタックに対する、主記憶装置アドレスと
有効性を示す十分な登録簿情報を保持する。記憶スタッ
クがオーバフローの危険がある時、SCE30は、BCEがSCE3
0から記憶スタック満杯状態をクリアする信号を後で受
け取るまで、それ以上の記憶要求の送信を保留にするた
め、関連するBCE20〜23に優先順位要求を送る。記憶ス
タック内のデータは、それぞの記憶スタック内で着順を
維持する適当なスケジューリングで、主記憶装置に対し
て更新される。CPからの行取出し要求は、記憶スタック
内のその行に対する既存のすべての記憶が関連するBSM6
0〜67に送られたことをSCEが確かめるまで、SCE30によ
って保持される。
5、36、37、38を保持し、各スタックは対応するCPに対
する最高16DWまでの主記憶装置記憶要求を保持する。SC
E30は、記憶スタックに対する、主記憶装置アドレスと
有効性を示す十分な登録簿情報を保持する。記憶スタッ
クがオーバフローの危険がある時、SCE30は、BCEがSCE3
0から記憶スタック満杯状態をクリアする信号を後で受
け取るまで、それ以上の記憶要求の送信を保留にするた
め、関連するBCE20〜23に優先順位要求を送る。記憶ス
タック内のデータは、それぞの記憶スタック内で着順を
維持する適当なスケジューリングで、主記憶装置に対し
て更新される。CPからの行取出し要求は、記憶スタック
内のその行に対する既存のすべての記憶が関連するBSM6
0〜67に送られたことをSCEが確かめるまで、SCE30によ
って保持される。
従来のMPキャッシュ設計に固有の1つのオーバヘッド
は、XI無効化による余分のミスが起こることである。あ
る行が1つのプロセッサによって記憶される時、その行
のコピーを、適切な時点で、遠隔キャッシュから無効に
する必要がある。キャッシュ設計および作業負荷が与え
られている場合、参照によってk重MP構成中の局所キャ
ッシュ中にその行が見つからないことの発生1件当りの
命令の数をmkとする。すなわち、mは、MP効果のないユ
ニプロセッサ(UP)ミス挙動と考えることができる。
は、XI無効化による余分のミスが起こることである。あ
る行が1つのプロセッサによって記憶される時、その行
のコピーを、適切な時点で、遠隔キャッシュから無効に
する必要がある。キャッシュ設計および作業負荷が与え
られている場合、参照によってk重MP構成中の局所キャ
ッシュ中にその行が見つからないことの発生1件当りの
命令の数をmkとする。すなわち、mは、MP効果のないユ
ニプロセッサ(UP)ミス挙動と考えることができる。
をXI無効化によるk重MPシステム内での(UPと比較し
た)余分のミス1件当りの命令の数とする。以後の議論
では、特定の参照のタイプに対する挙動を表すために肩
文字を使用する。たとえば、mk DFは、K重MPシステム中
のD取出しキャッシュ・ミス1件当りの命令の数を表
す。実験から、そのような余分のミスは主にD行で起こ
ることがわかった。キャッシュ・サイズが大きくなった
時、あるいはさらにプロセッサを追加した時、そのよう
な余分のミスはMIPSでより高い割合になる。たとえば、
ある環境では、余分のミスの率だけで、システム性能の
4%を超えることがある。また、実験データから、プロ
セッサは命令行にはめったき記憶しないので、そのよう
な余分のキャッシュ・ミスのほとんどがデータ行による
ものであることがわかっている。
た)余分のミス1件当りの命令の数とする。以後の議論
では、特定の参照のタイプに対する挙動を表すために肩
文字を使用する。たとえば、mk DFは、K重MPシステム中
のD取出しキャッシュ・ミス1件当りの命令の数を表
す。実験から、そのような余分のミスは主にD行で起こ
ることがわかった。キャッシュ・サイズが大きくなった
時、あるいはさらにプロセッサを追加した時、そのよう
な余分のミスはMIPSでより高い割合になる。たとえば、
ある環境では、余分のミスの率だけで、システム性能の
4%を超えることがある。また、実験データから、プロ
セッサは命令行にはめったき記憶しないので、そのよう
な余分のキャッシュ・ミスのほとんどがデータ行による
ものであることがわかっている。
余分のミスによるそのようなオーバヘッドを減らすため
の1つの方法は、データの事前取出しである。この余分
のミスは、XI無効化のみによって生じるものであること
が明らかである。したがって、事前取出しを、XI無効化
活動記録に対して実行できる。この手法は、より一般的
なデータ事前取出し方式と比較すると、次のような利点
を有する。
の1つの方法は、データの事前取出しである。この余分
のミスは、XI無効化のみによって生じるものであること
が明らかである。したがって、事前取出しを、XI無効化
活動記録に対して実行できる。この手法は、より一般的
なデータ事前取出し方式と比較すると、次のような利点
を有する。
(1)一般にデータ事前取出し命令事前取出し(I事前
取出し)ほどの効果がない。より一般的なD事前取出し
は、制御機能と記憶トラフィックに過度の負担を生ずる
恐れがある。XI無効化に関連する活動に対してのみD事
前取出しを実行すると、事前取出しの頻度が減って、事
前取出し挙動が改善される。
取出し)ほどの効果がない。より一般的なD事前取出し
は、制御機能と記憶トラフィックに過度の負担を生ずる
恐れがある。XI無効化に関連する活動に対してのみD事
前取出しを実行すると、事前取出しの頻度が減って、事
前取出し挙動が改善される。
(2)有効なD事前取出しには、活動記録が必要であ
る。XIに関連する活動記録はMPシステム設計に有用であ
り、したがって、XI活動記録はD事前取出しに限らず利
益を与える。
る。XIに関連する活動記録はMPシステム設計に有用であ
り、したがって、XI活動記録はD事前取出しに限らず利
益を与える。
まず、D事前取出し判断用に設けた活動記録テーブルH
について考える。各CPに対してそのようなテーブルが
(たとえば、BCEに)1つずつある。以下で説明するよ
うに、大域活動記録テーブルHはSCEに保持することが
できる。各行LごとにH[L]を設いてテーブルH内の
行に関する情報を示す。各CPに対するテーブルがある時
は、Hiを用いてプロセッサCPiに対する活動記録テーブ
ルを表す。2つのタイプの活動記録がHに保持できる。
について考える。各CPに対してそのようなテーブルが
(たとえば、BCEに)1つずつある。以下で説明するよ
うに、大域活動記録テーブルHはSCEに保持することが
できる。各行LごとにH[L]を設いてテーブルH内の
行に関する情報を示す。各CPに対するテーブルがある時
は、Hiを用いてプロセッサCPiに対する活動記録テーブ
ルを表す。2つのタイプの活動記録がHに保持できる。
(i)XI無効化−各H[L]で、Lが事前取出しなしで
XI無効化されたかどうかに関する記録を保持する。
XI無効化されたかどうかに関する記録を保持する。
(ii)CHLOC−局所変更活動記録、すなわちLが最後の
取出し以降に記憶されたかどうかの記録を保持する。
取出し以降に記憶されたかどうかの記録を保持する。
次に、様々なアルゴリズムに関する評価結果を示す。2
重MP(2WMP)メモリ基準トレースを用いてシミュレーシ
ョンを行なった。4重セット連想式および64バイトをも
つ512Kプロセッサ・キャッシュ・メモリ行のみについて
考えた。シミュレートされた基本MPアルゴリズムは、読
取り専用(RO)アグレッシブであったが、条件付きの排
他的(EX)D取出し(すなわち、行がどのキャッシュに
もない時の、D取出しEX)を含むものであった。UPおよ
び2WMP構成の場合、キャッシュ・ミスに関して、第2図
に示した結果が得られた(XI活動をカウントしない)。
ここで、肩文字IFは命令取出しを表し、肩文字DFはデー
タ(オペランド)取出しを示し、肩文字DSはデータ(オ
ペランド)記憶を表す。2(m)(=131.7)の3/4近くはD
取出しによるものであり、1/4はD記憶によるものであ
った。
重MP(2WMP)メモリ基準トレースを用いてシミュレーシ
ョンを行なった。4重セット連想式および64バイトをも
つ512Kプロセッサ・キャッシュ・メモリ行のみについて
考えた。シミュレートされた基本MPアルゴリズムは、読
取り専用(RO)アグレッシブであったが、条件付きの排
他的(EX)D取出し(すなわち、行がどのキャッシュに
もない時の、D取出しEX)を含むものであった。UPおよ
び2WMP構成の場合、キャッシュ・ミスに関して、第2図
に示した結果が得られた(XI活動をカウントしない)。
ここで、肩文字IFは命令取出しを表し、肩文字DFはデー
タ(オペランド)取出しを示し、肩文字DSはデータ(オ
ペランド)記憶を表す。2(m)(=131.7)の3/4近くはD
取出しによるものであり、1/4はD記憶によるものであ
った。
第3図は、各CP、10iのBCE20iが、データ事前取出しの
ために局所活動記録テーブルHiを維持している構成を示
している。主記憶装置(MS)内のすべての行は、それぞ
れ連続するT行を含む固定サイズのブロックにまとめら
れる。各行LについてBLは行Lを含むブロックを表す。
本発明を例示するため、まず各Hiを活動記録無効化テー
ブルと見なす。各Hiは固定サイズのビット・ベクトルで
ある。各記憶装置行Lについて、ビット・エントリH
i[L]が、行アドレスを介してセットされる。最初にH
iの全ビットがゼロにリセットされる。
ために局所活動記録テーブルHiを維持している構成を示
している。主記憶装置(MS)内のすべての行は、それぞ
れ連続するT行を含む固定サイズのブロックにまとめら
れる。各行LについてBLは行Lを含むブロックを表す。
本発明を例示するため、まず各Hiを活動記録無効化テー
ブルと見なす。各Hiは固定サイズのビット・ベクトルで
ある。各記憶装置行Lについて、ビット・エントリH
i[L]が、行アドレスを介してセットされる。最初にH
iの全ビットがゼロにリセットされる。
(a)ビットHi[L]は、BCEが遠隔要求によってその
キャッシュからLを無効にする時、セットされる(オン
になる)。
キャッシュからLを無効にする時、セットされる(オン
になる)。
Hiの各ビットは、次の状況でオフになる。
(b)ビットHi[L]は、行LがD行としてCPiのキャ
ッシュ中に取り出される時、リセットされる。
ッシュ中に取り出される時、リセットされる。
CPiのキャッシュ内でD行ミスが起こった時、BCEは、次
のように事前取出しの判断を行なう。
のように事前取出しの判断を行なう。
(c)ブロックB1内の(L自体を含む)各行L′は、行
L′がキャッシュ内にない時、ビットHi[L′]がセッ
トされている場合、行Lから順に、キャッシュ中に取り
出される。好ましい実施例では、ブロックBLは、行Lの
直前の1行と、行Lの直後の2行から成る。
L′がキャッシュ内にない時、ビットHi[L′]がセッ
トされている場合、行Lから順に、キャッシュ中に取り
出される。好ましい実施例では、ブロックBLは、行Lの
直前の1行と、行Lの直後の2行から成る。
主に、活動記録無効化テーブルHiは、局所キャッシュか
ら無効にされたD行を監視し、Dミスが起こった時、事
前取出し動作をトリガする。
ら無効にされたD行を監視し、Dミスが起こった時、事
前取出し動作をトリガする。
実験では、32Kのエントリを有する各Hi用のハッシュ・
テーブルを使用した。ハッシュ・テーブル内の各エント
リは、1ビットであった。連続する行の数がT=4の場
合、第4図に示した結果が得られる。これらの結果は、
データの事前取出しなしの標準のMPに比べて、Δ
2(m)が47.3%減少することを示している。さらに、
Dミス(58.7個の命令毎に1回)のうち21.4%(274.2
個の命令毎に1回)だけで、有効なデータ取出し(すな
わち、少なくとも1つの非要求行が事前に取り出された
もの)が行なわれた。有効なデータ事前取出しのうち7
2.6%(または93.2%)で、1行だけ(または最高2
行)事前に取り出され、平均して毎回1.14行が事前に取
り出された。
テーブルを使用した。ハッシュ・テーブル内の各エント
リは、1ビットであった。連続する行の数がT=4の場
合、第4図に示した結果が得られる。これらの結果は、
データの事前取出しなしの標準のMPに比べて、Δ
2(m)が47.3%減少することを示している。さらに、
Dミス(58.7個の命令毎に1回)のうち21.4%(274.2
個の命令毎に1回)だけで、有効なデータ取出し(すな
わち、少なくとも1つの非要求行が事前に取り出された
もの)が行なわれた。有効なデータ事前取出しのうち7
2.6%(または93.2%)で、1行だけ(または最高2
行)事前に取り出され、平均して毎回1.14行が事前に取
り出された。
上記の実験で、各CP用のハッシュ・テーブルの代りにた
とえばSCEにある1つのハッシュ・テーブルHを使用す
る場合、局所XI無効化テーブルで認められる結果に非常
に近い結果が得られる。第5図は、そのような設計の構
成を示している。大域活動記録無効化テーブルH、71を
用いたD事前取出しの操作は、局所テーブルを用いた操
作に非常に似ている。
とえばSCEにある1つのハッシュ・テーブルHを使用す
る場合、局所XI無効化テーブルで認められる結果に非常
に近い結果が得られる。第5図は、そのような設計の構
成を示している。大域活動記録無効化テーブルH、71を
用いたD事前取出しの操作は、局所テーブルを用いた操
作に非常に似ている。
(d)SCEが(それ自体が取出しミスを起こすことがあ
る)CPからの要求によりいずれかのCPにLのXI無効化を
発行する時、ビットH[L]がセットされる。
る)CPからの要求によりいずれかのCPにLのXI無効化を
発行する時、ビットH[L]がセットされる。
(e)行LがD行としてCPキャッシュ中に取り出される
時、ビットH[L]がリセットされる。これには、上記
ステップ(d)に述べた取出しミスの状態は含まれな
い。
時、ビットH[L]がリセットされる。これには、上記
ステップ(d)に述べた取出しミスの状態は含まれな
い。
(f)CPからのD行取出しミスの時、ビットH[L′]
がセットされ、L′がそこにない場合、ブロックBL内の
それぞれの行L′(L自体を含む)は、Lから順に要求
キャッシュ中に取り出される。
がセットされ、L′がそこにない場合、ブロックBL内の
それぞれの行L′(L自体を含む)は、Lから順に要求
キャッシュ中に取り出される。
上記ステップ(f)で、SCEは対応するコピー登録簿を
調べることにより(ターゲットCPキャッシュ内に既にあ
る行の)不必要な事前取出しを除去することができる。
SCEが局所キャッシュのために常駐の情報を維持しない
ある種の設計では、BCEは、関連するブロックBL内のこ
れらの行がキャッシュ内に常駐することを示すタグを単
にDミス要求と共にSCEに送る。
調べることにより(ターゲットCPキャッシュ内に既にあ
る行の)不必要な事前取出しを除去することができる。
SCEが局所キャッシュのために常駐の情報を維持しない
ある種の設計では、BCEは、関連するブロックBL内のこ
れらの行がキャッシュ内に常駐することを示すタグを単
にDミス要求と共にSCEに送る。
MPキャッシュ設計では、XI無効化動作は、先取りして活
動化される。たとえば、IBM3081および3090システムで
は、CPからのD取出しミスは、現D取出し動作後にその
行への記憶が行なわれることを予測して、遠隔キャッシ
ュ内の行のXI無効化をトリガすることができる。活動記
録テーブルHが、(XI無効化活動ではなく)D記憶活動
のみを監視することが可能である。たとえば、上記大域
活動記録テーブルHでは、ステップ(d)の代りに、次
のステップ(d′)を用いることができる。
動化される。たとえば、IBM3081および3090システムで
は、CPからのD取出しミスは、現D取出し動作後にその
行への記憶が行なわれることを予測して、遠隔キャッシ
ュ内の行のXI無効化をトリガすることができる。活動記
録テーブルHが、(XI無効化活動ではなく)D記憶活動
のみを監視することが可能である。たとえば、上記大域
活動記録テーブルHでは、ステップ(d)の代りに、次
のステップ(d′)を用いることができる。
(d′)SCEが(それ自体取出しミスを起こすことがあ
る)いずれかのCPからLのD記憶を受け取る時、ビット
H[L]がセットされる。
る)いずれかのCPからLのD記憶を受け取る時、ビット
H[L]がセットされる。
この場合、Hは単に現在修正されている行を監視する大
域的局所変更活動記録である。
域的局所変更活動記録である。
局所変更活動記録テーブルHでのD事前取り出しのシミ
ュレーション結果を、第6図に要約して示す。CPの数が
大きくなるにつれて、SCEがCPからの各D記憶について
大域局所変更活動記録テーブルHを検査することが、厄
介になることがある。この負担は、様々な設計技術によ
り軽減することができる。たとえば、米国特許第439173
1号明細書に記載されているように、排他的(EX)ロッ
キングを、最新のMPキャッシュ整合性制御のために用い
ることができる。それぞれのD記憶は、まずその行に関
するEX状況を得るために必要であり、それによってその
行が遠隔キャッシュからXI無効化されることが保証され
る。したがって、ステップ(d′)を、要求するCPが行
Lに対するEX状況を得た後の行Lに対する最初のD記憶
時にのみH[L]がセットされるように実施することが
できる。エントリH[L]は通常の条件で以前のD記憶
により既にセットされているので、SCEが次のD記憶時
にエントリH[L]をセットする必要はない。またHは
事前取出しの判断を援助するための装置としてのみ使用
されるので、設計を複雑にする恐れのある状況で厳密な
ルールに従ってHを正確に維持する必要がないことにも
留意されたい。連続する行の数T=3(またはT=4)
の場合、Δ2(m)は51.9%(または61.4%)減少し
て、有効な事前取出し1件当り207.58(または201.46)
命令、また有効な事前取出し1件当り事前に取り出され
る行数の平均が1.4(または1.7)行になった。これらの
結果を局所活動記録テーブルに関する結果を比較する
と、大域活動記録テーブル法は、一般により優れた結果
が得られることがわかる。これは、一部には、大域登録
簿は一般に、行が動的に再利用される傾向をより良く把
握できるためである。
ュレーション結果を、第6図に要約して示す。CPの数が
大きくなるにつれて、SCEがCPからの各D記憶について
大域局所変更活動記録テーブルHを検査することが、厄
介になることがある。この負担は、様々な設計技術によ
り軽減することができる。たとえば、米国特許第439173
1号明細書に記載されているように、排他的(EX)ロッ
キングを、最新のMPキャッシュ整合性制御のために用い
ることができる。それぞれのD記憶は、まずその行に関
するEX状況を得るために必要であり、それによってその
行が遠隔キャッシュからXI無効化されることが保証され
る。したがって、ステップ(d′)を、要求するCPが行
Lに対するEX状況を得た後の行Lに対する最初のD記憶
時にのみH[L]がセットされるように実施することが
できる。エントリH[L]は通常の条件で以前のD記憶
により既にセットされているので、SCEが次のD記憶時
にエントリH[L]をセットする必要はない。またHは
事前取出しの判断を援助するための装置としてのみ使用
されるので、設計を複雑にする恐れのある状況で厳密な
ルールに従ってHを正確に維持する必要がないことにも
留意されたい。連続する行の数T=3(またはT=4)
の場合、Δ2(m)は51.9%(または61.4%)減少し
て、有効な事前取出し1件当り207.58(または201.46)
命令、また有効な事前取出し1件当り事前に取り出され
る行数の平均が1.4(または1.7)行になった。これらの
結果を局所活動記録テーブルに関する結果を比較する
と、大域活動記録テーブル法は、一般により優れた結果
が得られることがわかる。これは、一部には、大域登録
簿は一般に、行が動的に再利用される傾向をより良く把
握できるためである。
2WMPシステムに関する結果から、XI無効化による余分の
キャッシュ・ミスは、大幅に減少した。MPシステム内の
プロセッサが多いほど、より大きな性能の利点を得るこ
とができる。これらの結果の1つの重要なファクタは、
有効取出しの頻度が比較的低い(発生1件当り200以上
の命令)ことである。その結果、毎回複数の行を取り出
すことが可能となる。そのような複数データ事前取出し
は、行取出し帯域幅が非常に広い(たとえば1サイクル
当り1行)環境により適している。事前に取り出された
行は、ステージ・バッファに移して、キャッシュへの入
力(および、恐らくはキャッシュ登録簿のルックアッ
プ)を待つ。事前取出しはキャッシュ・ミスに対しての
み行なわれるので、より多くのCPが含まれる時でも、非
常に高いデータ取出し率は予想されない。
キャッシュ・ミスは、大幅に減少した。MPシステム内の
プロセッサが多いほど、より大きな性能の利点を得るこ
とができる。これらの結果の1つの重要なファクタは、
有効取出しの頻度が比較的低い(発生1件当り200以上
の命令)ことである。その結果、毎回複数の行を取り出
すことが可能となる。そのような複数データ事前取出し
は、行取出し帯域幅が非常に広い(たとえば1サイクル
当り1行)環境により適している。事前に取り出された
行は、ステージ・バッファに移して、キャッシュへの入
力(および、恐らくはキャッシュ登録簿のルックアッ
プ)を待つ。事前取出しはキャッシュ・ミスに対しての
み行なわれるので、より多くのCPが含まれる時でも、非
常に高いデータ取出し率は予想されない。
D事前取出しのための活動記録を維持する2つの機構に
ついて説明した。1つは局所XI無効化を用いるものであ
り、もう1つは、大域局所変更活動記録を用いるもので
ある。実施態様に応じて、これらの活動記録または他の
同様の活動記録を、様々に組み合わせて使用することが
できる。そのような活動記録は、それ自体他の種類のキ
ャッシュ最適化の目的に役立つことに留意されたい。た
とえば、(局所または大域の)局所変更活動記録は、MP
キャッシュ設計において、キャッシュ状況の割当てを最
適化するための情報を提供することができる。
ついて説明した。1つは局所XI無効化を用いるものであ
り、もう1つは、大域局所変更活動記録を用いるもので
ある。実施態様に応じて、これらの活動記録または他の
同様の活動記録を、様々に組み合わせて使用することが
できる。そのような活動記録は、それ自体他の種類のキ
ャッシュ最適化の目的に役立つことに留意されたい。た
とえば、(局所または大域の)局所変更活動記録は、MP
キャッシュ設計において、キャッシュ状況の割当てを最
適化するための情報を提供することができる。
MP内でのデータ取出しは、通常、XI活動の増加に関連し
ている。しかし、本発明は、適切な整合性機構によりXI
の問題を大幅に改善する。
ている。しかし、本発明は、適切な整合性機構によりXI
の問題を大幅に改善する。
第1図は、本発明が適用できるマルチプロセッサ・シス
テムのブロック・ダイヤグラムである。 第2図は、UPと2WMPからなる構成でのレベル1のミスの
結果を示すテーブルである。 第3図は、局所活動記録テーブルがその中で維持される
MPシステムの構成を示すブロック・ダイヤグラムであ
る。 第4図は、各活動記録テーブルHIに対して局所ハッシュ
テーブルを用いた結果を示すテーブルである。 第5図は、大域活動記録テーブルがその中で維持される
MPシステムの構成を示すブロック・ダイヤグラムであ
る。 第6図は、大域テーブルHを用いた結果を示すテーブル
である。 10、11、12、13……中央処理装置(CP)、14、15、16、
17……命令実行(IE)ユニット、20、21、22、23……バ
ッファ制御エレメント(BCE)、30……記憶制御エレメ
ント(SCE)、31、32、33、34……コピー登録簿(C
D)、35、36、37、38……記憶スタック(SS)、40……
入出力チャネル・プロセッサ、50……主記憶装置、51、
52、53、54……基本記憶モジュール制御装置(BSC)、6
0、61、62、63、64、65、66、67……基本記憶モジュー
ル(BSM)。
テムのブロック・ダイヤグラムである。 第2図は、UPと2WMPからなる構成でのレベル1のミスの
結果を示すテーブルである。 第3図は、局所活動記録テーブルがその中で維持される
MPシステムの構成を示すブロック・ダイヤグラムであ
る。 第4図は、各活動記録テーブルHIに対して局所ハッシュ
テーブルを用いた結果を示すテーブルである。 第5図は、大域活動記録テーブルがその中で維持される
MPシステムの構成を示すブロック・ダイヤグラムであ
る。 第6図は、大域テーブルHを用いた結果を示すテーブル
である。 10、11、12、13……中央処理装置(CP)、14、15、16、
17……命令実行(IE)ユニット、20、21、22、23……バ
ッファ制御エレメント(BCE)、30……記憶制御エレメ
ント(SCE)、31、32、33、34……コピー登録簿(C
D)、35、36、37、38……記憶スタック(SS)、40……
入出力チャネル・プロセッサ、50……主記憶装置、51、
52、53、54……基本記憶モジュール制御装置(BSC)、6
0、61、62、63、64、65、66、67……基本記憶モジュー
ル(BSM)。
Claims (3)
- 【請求項1】局部キャッシュ・メモリおよびバッファ制
御エレメントをそれぞれ有する複数のプロセッサ、1つ
の共用主記憶装置ならびに記憶制御エレメントを含むマ
ルチプロセッサ・システムにおいて、 前記局部キャッシュ・メモリ内の各データ行毎に該デー
タ行が前記共用主記憶装置からの再取出しなしに相互問
い合せ無効化されたか否かの記録および該データ行が該
データ行の前回の取出し以来対応するプロセッサにより
記憶されたか否かの記録のいずれかを持つ局所活動記録
テーブルを前記プロセッサの各々に設けるステップと、 前記データ行がいずれかのプロセッサにより相互問い合
せ無効化されたか、又は前記バッファ制御エレメントが
前記局部活動記録テーブル内の前記記録に対応するデー
タ行に対するデータ記憶を受けたとき、前記局部活動記
録テーブル内にエントリをセットし、前記プロセッサが
前記データ行を前記共用主記憶装置から関連する局部キ
ャッシュメモリに取出したとき、前記局部活動記録テー
ブル内の前記記録に対応する前記エントリをリセットす
るステップと、 前記局部活動記録テーブルに対応するプロセッサにより
アクセスされるべき特定のデータ行に対して所定の関係
を持つアドレスを有する選択されたデータ行があるか前
記局部活動記録テーブル内のエントリを調べるステップ
と、 前記特定のデータ行が関連する局部キャッシュ・メモリ
内に存在せず、且つ前記局部活動記録テーブルが前記特
定のデータ行に対して前記所定の関係を有する少なくと
も1つの選択されたデータ行のそれぞれに対応する少な
くとも1つのセットされたエントリを含むとき、前記特
定のデータ行を取出し、且つ前記選択されたデータ行の
内、前記特定のデータ行に対して前記所定の関係を有し
しかも前記局部活動記録テーブル内のセットされた前記
エントリに対応するもののみを事前取出しするステップ
と、 よりなるデータ事前取出し方法。 - 【請求項2】局部キャッシュ・メモリおよびバッファ制
御エレメントをそれぞれ有する複数のプロセッサ、1つ
の共用主記憶装置ならびに記憶制御エレメントを含むマ
ルチプロセッサ・システムにおいて、 前記局部キャッシュ・メモリ内の各データ行毎に該デー
タ行が前記共用主記憶装置からの再取出しなしに相互問
い合せ無効化されたか否かの記録および該データ行が該
データ行の前回の取出し以来ある特定のプロセッサによ
り記憶されたか否かの記録のいずれかを持つ局所活動記
録テーブルを前記記憶制御エレメントに設けるステップ
と、 前記データ行がいずれかのプロセッサにより相互問い合
せ無効化されたか、又は前記特定のプロセッサの前記バ
ッファ制御エレメントが前記局部活動記録テーブル内の
前記記録に対応するデータ行に対するデータ記憶を受け
たとき、前記局部活動記録テーブル内にエントリをセッ
トし、前記特定のプロセッサが前記データ行を前記共用
主記憶装置から関連する局部キャッシュメモリに取出し
たとき、前記エントリをリセットするステップと、 前記局部活動記録テーブルに対応するプロセッサにより
アクセスされるべき特定のデータ行に対して所定の関係
を持つアドレスを有する選択されたデータ行があるか前
記局部活動記録テーブル内のエントリを調べるステップ
と、 前記特定のデータ行が前記特定のプロセッサの局部キャ
ッシュ・メモリ内に存在せず、且つ前記局部活動記録テ
ーブルが前記特定のデータ行に対して前記所定の関係を
有する少なくとも1つの選択されたデータ行のそれぞれ
に対応する少なくとも1つのセットされたエントリを含
むとき、前記特定のデータ行を取出し、且つ前記選択さ
れたデータ行の内、前記特定のデータ行に対して前記所
定の関係を有ししかも前記局部活動記録テーブル内のセ
ットされた前記エントリに対応するもののみを事前取出
しするステップと、 よりなるデータ事前取出し方法。 - 【請求項3】局部キャッシュ・メモリおよびバッファ制
御エレメントをそれぞれ有する複数のプロセッサ、1つ
の共用主記憶装置ならびに記憶制御エレメントを含むマ
ルチプロセッサ・システムにおいて、 少なくとも1つの前記局部キャッシュ・メモリの各デー
タ行毎に1つのエントリを含む活動記録テーブルと、 前記少なくとも1つの局部キャッシュ・メモリ内の前記
エントリに対応するデータ行の相互問い合せ無効化およ
び前記少なくとも1つの局部キャッシュ・メモリ内の前
記エントリに対応するデータ行に対するデータ記憶の少
なくとも1つの生起に応答して前記活動記録テーブル内
にエントリをセットする手段と、 前記少なくとも1つの局部キャッシュ・メモリに関連す
るプロセッサが前記データ行を前記共用主記憶装置から
関連する局所キャッシュ・メモリに取出したとき前記エ
ントリをリセットする手段と、 特定のデータ行があるプロセッサにより関連する局所キ
ャッシュ・メモリから利用不可であることを検出する手
段と、 前記特定のデータ行を取出し、前記活動記録テーブル内
のセットされたエントリに対応し且つ前記特定のデータ
行に対して所定の関係を有する選択されたデータ行のみ
を事前取出しする手段と、 よりなるマルチプロセッサ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US34463989A | 1989-04-28 | 1989-04-28 | |
| US344639 | 1999-06-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02300960A JPH02300960A (ja) | 1990-12-13 |
| JPH07101412B2 true JPH07101412B2 (ja) | 1995-11-01 |
Family
ID=23351344
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2110655A Expired - Lifetime JPH07101412B2 (ja) | 1989-04-28 | 1990-04-27 | データ事前取出し方法およびマルチプロセッサ・システム |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0394642A3 (ja) |
| JP (1) | JPH07101412B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6889293B1 (en) * | 2000-06-09 | 2005-05-03 | Agere Systems Inc. | Directory-based prediction methods and apparatus for shared-memory multiprocessor systems |
| EP1604285A2 (en) * | 2003-03-06 | 2005-12-14 | Koninklijke Philips Electronics N.V. | Data processing system with prefetching means |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| JPS5864690A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | キヤツシユメモリ制御方法 |
-
1990
- 1990-03-03 EP EP19900104153 patent/EP0394642A3/en not_active Withdrawn
- 1990-04-27 JP JP2110655A patent/JPH07101412B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0394642A3 (en) | 1992-07-15 |
| JPH02300960A (ja) | 1990-12-13 |
| EP0394642A2 (en) | 1990-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7762783B2 (ja) | 書き込みミスエントリのドレインをサポートする犠牲キャッシュ | |
| US5197139A (en) | Cache management for multi-processor systems utilizing bulk cross-invalidate | |
| US5214766A (en) | Data prefetching based on store information in multi-processor caches | |
| US5490261A (en) | Interlock for controlling processor ownership of pipelined data for a store in cache | |
| EP0185867B1 (en) | A memory hierarchy and its method of operation | |
| EP0349122B1 (en) | Method and apparatus for filtering invalidate requests | |
| KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
| EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
| US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
| US7194586B2 (en) | Method and apparatus for implementing cache state as history of read/write shared data | |
| US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
| US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
| US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
| US20090106498A1 (en) | Coherent dram prefetcher | |
| US5909697A (en) | Reducing cache misses by snarfing writebacks in non-inclusive memory systems | |
| JP2005533295A5 (ja) | ||
| US20020188821A1 (en) | Fast priority determination circuit with rotating priority | |
| US6449698B1 (en) | Method and system for bypass prefetch data path | |
| JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
| JPH04230549A (ja) | 多重レベル・キャッシュ | |
| JP3732397B2 (ja) | キャッシュシステム | |
| JPH0816474A (ja) | マルチプロセッサシステム | |
| US5361368A (en) | Cross interrogate synchronization mechanism including logic means and delay register | |
| JP2681410B2 (ja) | マルチプロセッサ・キャッシュにおける排他性をロックする方法 | |
| JPH07101412B2 (ja) | データ事前取出し方法およびマルチプロセッサ・システム |