JP3210590B2 - マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 - Google Patents
マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法Info
- Publication number
- JP3210590B2 JP3210590B2 JP32056696A JP32056696A JP3210590B2 JP 3210590 B2 JP3210590 B2 JP 3210590B2 JP 32056696 A JP32056696 A JP 32056696A JP 32056696 A JP32056696 A JP 32056696A JP 3210590 B2 JP3210590 B2 JP 3210590B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- module
- processor
- data
- cache
- 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 - Fee Related
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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
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
密結合型のマルチプロセッサシステムおよびそのキャッ
シュコヒーレンシ制御技術に適用して有効な技術に関す
る。
の高速化のために、外部の主記憶装置等との間で授受さ
れるデータを過渡的に保持する高速なキャッシュメモリ
を内部に備えることが普通となっている。一方、各々が
キャッシュメモリを備えた複数のプロセッサにて主記憶
を共有する密結合型のマルチプロセッサシステムを構築
する場合、主記憶内の同一アドレスのデータが、複数の
プロセッサのキャッシュメモリ内に分散して存在するこ
ととなり、しかも更新後のライトデータもキャッシュメ
モリを経由して主記憶に転送するライトバックキャッシ
ュ方式では分散したデータは各プロセッサにて独立に更
新され、主記憶上の同一アドレスのデータとは異なって
いる(ダーティになっている)可能性がある。このた
め、任意のプロセッサにて主記憶のリード要求が発生し
た場合、各プロセッサ内のキャッシュメモリおよび主記
憶におけるデータの時系列的な一意性(コヒーレン
シ)、換言すれば、リードデータが最新のデータである
ことを保証する動作、すなわちキャッシュコヒーレンシ
制御がシステムの正しい動作を保証するためには必須と
なる。
システムにおける、キャッシュコヒーレンシ制御方式の
典型的なものは、たとえば、M.S.Papamacr
osand J.H.Patel,“A Low−ov
erhead Coherence Solution
for Multiprocessors with
Private Cache Memories”,
Proc.the11th Internationa
l Symposium on Computer A
rchitecture,1984.pp.348−3
54、などの文献に記載されている技術が知られてい
る。
バスを介して主記憶(メモリモジュール)を共有するマ
ルチプロセッサシステムにおいて、キャッシュ状態とし
て、(a)Invalid(当該データは無効)、
(b)Shared−Unmodified(当該デー
タは他のプロセッサのキャッシュメモリ内にも存在し、
主記憶内のデータと同一)、(c)Exclusive
‐Modified(当該データは、当該キャッシュメ
モリ内にのみ存在し、しかも主記憶内のデータとは同一
ではない)、(d)Exclusive−Unmodi
fied(当該データは、当該キャッシュメモリ内にの
み存在し、主記憶内のデータとは同一)、を定義する。
リード要求が発生し、当該データが自プロセッサモジュ
ール内のキャッシュメモリに無い場合(リードミス)の
場合には、バス上にRead Request Tx
(トランザクション)をブロードキャスト(同報送信)
し、メモリモジュール(MM)、プロセッサモジュール
(PM)がそれを受信する。この時、PM内キャッシュ
メモリにヒットした場合には、当該PMから要求元のP
Mにデータリターンすると同時に、MMにも書き込み、
一方、いずれのPM内のキャッシュメモリにもヒットし
なかった場合には、MMからデータリターンを行う。
シュメモリ内に空き領域を作るために既存のデータを追
い出す操作)対象となったデータラインがExclus
ive‐Modifiedの場合には、MMに反映させ
るべく、バス上にWriteBack Txを送出す
る。
には、キャッシュメモリからMMへのデータ反映のため
のWrite Back Txと、他PMからの同一デ
ータラインに対するRead Request Txが
時間的に近接して発行されるような場合に、データのコ
ヒーレンシに問題が生じる可能性がある。例えば、図1
9に例示されるように、 (l)PM0からのWrite Back Txと、P
M1からのRead Request Txが時間的に
近接して発行されると、バス上には、PM1のRead
Request Tx −> PM0のWrite
Back Txの順で出現する。
Txをバス上に発行したため、PMlのRead Re
qest Txに対しては、「キャッシュはINVAL
IDである」と返答する。
eqest Tx受信時にメモリ内容を読み出してしま
う。すなわち、PM0のWrite BackTxの内
容を反映しないメモリ内容を、PMlにリターンしてし
まう。
VALIDと応答されたので、MMからの無効なリター
ンデータを使用してしまう。
ッシュコヒーレンシに矛盾を生じる。このような問題
は、他PMからのRead Reqest Txと、自
PMからのWrite Back TxとがPM内です
れ違うことにより発生する。
Back Txを行う前に、同一アドレスヘのRea
d Request Txがバス上に出されていないこ
とを必ず確認し、もしそれがあれば、Write Ba
ck Txを行わずに通常の“EXCLUSIVE−M
ODIFIED”ヒットと同様な処理をするようにすれ
ば、このようなすれ違いが起きないことを保証できるの
は自明である。
1956号公報等には、バス上のRead Reque
st TxとWrite Back Txの順序を保存
する、改良された別の制御方式が提案されている。これ
は、PM、MMにおいてキューを持ち、バス上のトラン
ザクションの順序を記録しておき、それにもとづいて、
すれ違いを検出するというものである。特に、メモリ制
御装置では、発行された最新のキャッシュ書込と、発行
された最新のコヒーレント読み取りを照合して、競合の
可能性を検査し、必要に応じてトランザクションの順序
を再配列し、メモリのコヒーレント・イメージを保存す
る。
平7−281956号公報でも指摘されている通り、シ
ステムの性能低下を招くという技術的課題がある。ま
た、前記第2の対策においても、各モジュール、特にメ
モリモジュールの構成が複雑となるという技術的課題が
ある。
では、観測場所によりトランザクション順序が異なる、
クロスバスイッチ等のスイッチ結合によるシステムには
使用できない。スイッチ結合のシステムにおいて、たと
えば、図11に例示されるように、PMからのメモリア
クセスを他のモジュールに同報送信し、他のPMがその
アクセスを監視できるようにすることで、キャッシュコ
ヒーレンシを保つ方法を採った場合、前記第1の対策の
方法に準じて、例えば、PM1が、PM0からのRea
d Request Txを受信していないことを確認
したのちWrite Back Txを発行したとして
も、その後にRead RequestTxが到着する
ことがあり、その場合、PM1でのTx順はWrite
Back−>Readとなる。一方、その際に、メモ
リモジュール側では、Read−>Write Bac
kの順でTxが到着する可能性があり、しかも、その場
合、メモリ内容をPM0にリターンしたあとにPM1の
Write BackTxが到着する可能性があり、キ
ャッシュコヒーレンシに矛盾を生じる。また、バス上で
のトランザクション発行順序を使用した前述の第2の対
策の方法は、当然の事ながらスイッチ結合のシステムに
は使用できない。
結合のいずれにおいても、正しいキャッシュコヒーレン
シ制御を実現することが可能なマルチプロセッサシステ
ムを提供することにある。
化させることなく、正しいキャッシュコヒーレンシ制御
を実現することが可能なマルチプロセッサシステムを提
供することにある。
の構成を必要以上に複雑化することなく、正しいキャッ
シュコヒーレンシ制御を実現することが可能なマルチプ
ロセッサシステムを提供することにある。
ンザクション順序が異なる、スイッチ結合によるマルチ
プロセッサシステムにおいても、正しい結果を与える、
キャッシュコヒーレンシ制御技術を提供することにあ
る。
すれ違いの発生を認めるバス結合によるマルチプロセッ
サシステムにおいて、性能を落とすことなく、正しい結
果を与え、なおかつメモリモジュールの構成が単純で済
むような、キャッシュコヒーレンシ制御技術を提供する
ことにある。
として、メモリモジュールに対して発行されたメモリラ
イト要求の完了報告を要求元に対して返す通知手段を設
ける。この通知手段は、メモリモジュールに設けてもよ
いし、あるいはクロスバスイッチによるスイッチ結合の
場合にはクロスバスイッチ内に当該通知手段を配置して
もよい。
サモジュール間において、リード対象のデータが他のプ
ロセッサモジュール内のキャッシュメモリに存在するか
否かを問い合わせおよび応答する手段と、応答内容を集
計する手段とを備える。
サモジュール内にキャッシュメモリ上の任意のデータラ
インが、Exclusive‐Modifiedでかつ
Write Back途中であるという状態を識別する
識別手段を備える。
モジュールは、自分が発行したライト要求のメモリモジ
ュールへの反映が保証されるタイミングを正確に認識す
ることができる。
ュールは、リードデータの提供元およびその状態、メモ
リモジュールからのデータリードの正確なタイミング、
さらには、メモリモジュールへのリード要求と他のプロ
セッサモジュールへのリードデータの有無の問い合わせ
とを同時に行う投機的データリードにおいてリードデー
タが正しいか否か等を正確に認識することができる。
いて他のプロセッサモジュールに応答すべきキャッシュ
メモリの状態の種別および応答タイミングを正確に制御
することができる。
を参照しながら詳細に説明する。
明の一実施の形態であるマルチプロセッサシステムおよ
びキャッシュコヒーレンシ制御方法における制御情報の
一例を示す概念図であり、図3および図4は、その構成
の一例をさらに詳細に例示した概念図、図5は、その全
体構成の一例を示す概念図である。
マルチプロセッサシステムは、複数のプロセッサモジュ
ールPM0〜PMn(10)と少なくとも一つのメモリ
モジュールMM(20)とが、クロスバスイッチ30を
介して結合された構成となっており、メモリモジュール
MMは、複数のプロセッサモジュールPM0〜PMnに
よって共有される、いわゆる密結合型のマルチプロセッ
サシステムとなっている。
サモジュール10は、たとえば、汎用のマイクロプロセ
ッサ等で構成されるプロセッサ11と、このプロセッサ
11とプロセッサモジュール10の外部との間で授受さ
れるデータを一時的に保持するキャッシュメモリ12を
キャッシュタグ13に設定される制御情報によって制御
するキャッシュ制御装置14と、クロスバスイッチ30
を介して他のモジュールとの間における情報の授受を行
うトランザクション送信部15、トランザクション受信
部16およびCCC送受信部17とを備えている。
には、キャッシュメモリ12内の任意のデータ(キャッ
シュライン)をメモリモジュール20に反映させるため
のWrite Backを実行する際に、Write
Back実行中の当該キャッシュラインのアドレスを保
持するWB実行中アドレスレジスタ14aが設けられて
いる。このWB実行中アドレスレジスタ14aは、Wr
ite Back開始時にアドレスがセットされ、後述
のメモリライト完了通知10g(WRITE_ACK)
を受信した時点でクリアされる。従って、他のプロセッ
サモジュールPMから当該キャッシュラインの有無に関
する問い合わせがあった場合、WB実行中アドレスレジ
スタ14aを参照することにより、当該キャッシュライ
ンのWrite Backの完了のタイミングを正確に
把握することが可能である。
データの記憶媒体であるメモリバンク21と、このメモ
リバンク21を制御するメモリ制御部22と、クロスバ
スイッチ30を介して外部の任意のプロセッサモジュー
ルPM0〜PMnとの間における情報の授受を行うトラ
ンザクション送信部23およびトランザクション受信部
24、ライト完了応答部25とを備えている。
スイッチ30は、各モジュールが接続されるポート31
aの間の接続を切り替えることにより、各モジュール間
で、1:1または1:多(同報送信)の接続制御を行う
スイッチ結合論理31と、各ポート31aにおける入力
側および出力側の各々に設けられた一対のトランザクシ
ョンキュー32aおよびトランザクションキュー32b
を備えている。
サモジュール10(PM0〜PMn)において外部との
間でやり取りされる情報の種類は、自プロセッサモジュ
ール10内のキャッシュメモリ12内に目的のリードデ
ータが無いリードミスの場合に、他のPMに対して、当
該リードデータの有無を問い合わせるCCC(Cach
e Coherency Check)要求10a(C
CC_REQ_TO)、当該CCC要求10aに対する
他PMからの応答であるCCC報告10b(CCC_R
EP_FROM)、他PMから発行されて到来するCC
C要求10c(CCC_REQ_FROM)、他PMか
らのCCC要求10cに対して返されるCCC報告10
d(CCC_REP_TO)、メモリモジュール20と
の間で授受される、メモリリード要求10e(REA
D)、メモリライト要求10f(WRITE)、メモリ
ライト完了通知10g(WRITE_ACK)、および
ライトデータ10h(Data)、リードデータ10i
(Data)である。また、他のプロセッサモジュール
PM内のキャッシュメモリ12からCCC要求10aに
応答して返されるキャッシュラインとしてのリードデー
タ10jもある。10h、10iおよび10jは簡単の
ため図では一つの矢印で図示されている。
ジュール20と、プロセッサモジュール10との間でや
り取りされる情報は、メモリリード要求10e(REA
D)、メモリライト要求10f(WRITE)、メモリ
ライト完了通知10g(WRITE_ACK)、および
ライトデータ10h(Data)、リードデータ10i
(Data)である。
ち、CCC要求10a(CCC_REQ_TO)、CC
C要求10c(CCC_REQ_FROM)、メモリリ
ード要求10e(READ)、メモリライト要求10f
(WRITE)、メモリライト完了通知10g(WRI
TE_ACK)、およびライトデータ10h(Dat
a)、リードデータ10i(Data)は、後述の図6
および図7に例示される各タイプのトランザクションと
して、トランザクション送信部15、トランザクション
受信部16、トランザクション送信部23、トランザク
ション受信部24を経由して処理され、クロスバスイッ
チ30内の図示しないスイッチング論理によって、発行
順に時系列的に目的の他のモジュールとの間で授受され
る。
C_REP_FROM)およびCCC報告10d(CC
C_REP_TO)は、CCC送受信部17を介して専
用の通信線17aを介してプロセッサモジュールPM0
〜PMnの相互間にて授受される。なお、このCCC報
告10bおよびCCC報告10dも、図6および図7に
例示されるトランザクションのタイプの一つとして定義
して使用することも可能である。
形態の場合、以下のように五つに類別されるものを使用
する。
て要求されたデータ(キャッシュライン)は当該PM内
では無効(INVALID)である。
て要求されたキャッシュラインは自キャッシュメモリ1
2に“EXCLUSIVE−MODIFIED”で存在
し、当該データを要求元に転送供給(SUPPLY)
し、転送した当該キャッシュラインは“INVALI
D”とする。要求元のPMは、当該キャッシュラインを
受領後“EXCLUSIVE−MODIFIED”とし
て扱う。
て要求されたデータ(キャッシュライン)は当該PM内
では(Shared−Unmodified)である。
ADされたデータは無効データ(STALE)の可能性
があるため、当該データの再リード(ReRead)を
CCC_REQ_FROMの発行元に促す。
EADされたデータは無効データ(STALE)の可能
性があるため、要求元に代わって当該データの再リード
(ReRead Proxy)を実行したことを通知す
る。リードデータはメモリモジュールMMから直接要求
元に転送される。
クションのタイプを図6および図7を参照して説明す
る。
c)として使用されるトランザクション(CCC_RE
Q)を示している。このトランザクションは、トランザ
クション送信部15にて生成される。8ビット幅のTY
PEフィールドには、本トランザクションがCCC_R
EQであることを示すビットパターンが設定される。次
の8ビットのPORTフィールドには、宛て先情報とし
て、同時に他の全てのプロセッサモジュールPMに同報
送信すべきことをクロスバスイッチ30に指示する特定
のビットパターンが設定される。次の16ビットのMI
SCフィールドには、相手先で当該トランザクションを
処理する時に使用される情報が必要に応じて設定され
る。本実施の形態の場合、たとえば、要求元のプロセッ
サモジュールPMのポート番号等の識別情報が設定さ
れ、当該CCC_REQに応答するCCC_REP_T
Oを送信すべき相手先の決定に用いられる。残りの32
ビットのADDRESSフィールドは、CCC_REQ
による問い合わせ対象のキャッシュラインのメモリモジ
ュールMMにおけるアドレスが設定される。
ら、メモリライト要求10fの発行元のプロセッサモジ
ュールPMに返される、WRITE_ACKのトランザ
クションを示している。TYPEフィールドには、WR
ITE_ACKであることを示す特定のビットパターン
が設定され、PORTフィールドには、応答先のプロセ
ッサモジュールPMのポート番号が設定され、MISC
フィールドには、たとえば自メモリモジュールMMのポ
ート番号が設定され、残りの32ビットは未使用であ
る。なお、この未使用の32ビットにライト要求のアド
レスを格納することにより、要求元で複数のライト要求
の完了を識別するようにしてもよい。
CKトランザクションは、メモリモジュール20におけ
るライト完了応答部25にて生成される。生成の契機
は、トランザクション受信部24内の図示しないトラン
ザクションキューに、後述のWRITEトランザクショ
ンが到来したことを検知した時点である。生成されたW
RITE_ACKトランザクションは、トランザクショ
ン送信部23内の図示しないトランザクションキューに
追加され、相手先に送信される。メモリモジュールMM
に対するREADトランザクションは、必ず、トランザ
クション受信部24内のトランザクションキューに時系
列に追加されて処理されるので、ライトデータが実際に
メモリバンク21に書き込まれる前の前記契機にてWR
ITE_ACKトランザクションを応答しても矛盾は生
じない。
(READ)で使用されるトランザクションを示してい
る。TYPEフィールドには、当該READを示す特定
のビットパターンが設定され、PORTフィールドには
要求先のメモリモジュールMMのポート番号が設定さ
れ、MISCフィールドには、要求元である自プロセッ
サモジュールPMのポート番号が設定され、ADDRE
SSフィールドにはREAD対象のデータのアドレスが
設定される。
で使用されるトランザクションを示している。TYPE
フィールドには、当該WRITEを示す特定のビットパ
ターンが設定され、PORTフィールドには要求先のメ
モリモジュールMMのポート番号が設定され、MISC
フィールドには、WRITE要求元である自プロセッサ
モジュールPMのポート番号、さらには後続の書込対象
データの長さ(サイクル数)等のパラメータが設定さ
れ、ADDRESSフィールドには書込対象データのア
ドレスが設定される。このMISCフィールドに設定さ
れたWRITE発行元のプロセッサモジュールPMのポ
ート番号は、前述のWRITE_ACKのトランザクシ
ョンの生成時にライト完了応答部25によって参照され
る。
0jを要求元に返すためのRETURNのトランザクシ
ョンを示す。このトランザクションは、たとえば、リー
ドデータ10i(10j)の場合は、メモリモジュール
MMのトランザクション送信部23(各プロセッサモジ
ュールPMのトランザクション送信部15)にて生成さ
れる。
Nを示す特定のビットパターンが設定され、PORTフ
ィールドには転送先(READ要求元)のプロセッサモ
ジュールPMのポート番号が設定され、MISCフィー
ルドには、たとえばREADによるリードデータ10i
と、SUPによるリードデータ10jを区別するための
情報、および返されるデータ長(サイクル数)等のパラ
メータが設定され、残りのフィールドは未使用である。
は、図6および図7に例示される64ビット幅のデータ
単位(トランザクション)をクロスバスイッチ30の動
作サイクル単位に時系列的に、クロスバスイッチ30に
送り出し、あるいは、クロスバスイッチ30から受け取
ることによって行われる。
を参照して、本実施の形態のマルチプロセッサシステム
およびキャッシュコヒーレンシ制御方法の作用の一例を
説明する。なお、図8〜図16において、縦方向には、
動作に関係する各モジュールが配置され、横方向は各モ
ジュールの動作の時間軸を示す。
11により、CCC_REQの発行による確認動作の後
にREAD要求を発行する一般的なREAD要求発行方
式の場合を従来技術と比較して説明する。
らのデータを使用〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的デー
タ(キャッシュライン)が存在しないと判明した(Mi
ss)時点で、当該PM0は、図6(a)のタイプのト
ランザクションを生成して他のPM1〜PMnにCCC
_REQを同報送信する。
Mnでは、自キャッシュメモリ12に要求されたキャッ
シュラインが無い状態(INVALID)であったた
め、CCC報告10d(CCC_REP)としていずれ
も“INV”を要求元のPM0に応答する。
元のPM0は、MMに対して図7(a)のREADトラ
ンザクションを発行し、図7(c)のRETURNトラ
ンザクションによって目的のリードデータを得る。
キャッシュライン供給〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的のキ
ャッシュラインが存在しないと判明した(Miss)時
点で、当該PM0は、他のPM1〜PMnにCCC_R
EQを同報送信する。
M1では、自キャッシュメモリ12に、要求されたキャ
ッシュラインが“Exclusive‐Modifie
d”で存在し、なおかつ、WB実行中アドレスレジスタ
14aがクリアであることによりライトバック実行中で
ないことを確認し、CCC報告10d(CCC_RE
P)として“SUP”を要求元のPM0に応答するとと
もに、図7(c)のRETURNタイプのトランザクシ
ョンを生成して目的のキャッシュラインを要求元のPM
0に送信する。
nでは、自キャッシュメモリ12に要求されたキャッシ
ュラインが無い状態(INVALID)であったため、
CCC報告10d(CCC_REP)として“INV”
を要求元のPM0に応答する。
からのCCC報告10bを集計し、PM1から送信され
たRETURNトランザクションのデータを使用するこ
とを決定する。
ティヒット…ライトバック完了確認後、CCC報告を行
うことでコヒーレンシを保てる〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的デー
タ(キャッシュライン)が存在しないと判明した(Mi
ss)時点で、当該PM0は、他のPM1〜PMnにC
CC_REQを同報送信する。
ク実行中のPM1では、自キャッシュメモリ12に、要
求されたキャッシュラインが“Exclusive‐M
odified”で存在し、なおかつ、WB実行中アド
レスレジスタ14aの内容が要求されたキャッシュライ
ンのアドレスと一致することにより、当該キャッシュラ
インがライトバック中であることを認識する。この時、
PM1は、MMからのWRITE_ACKトランザクシ
ョン(図6(b))の到着を待ち、MMに対する当該キ
ャッシュラインの反映動作の完了確認後、CCC報告1
0d(CCC_REP)として“INV”を要求元のP
M0に応答するとともに、自キャッシュメモリ12内の
当該キャッシュラインをINVALID化する。
は、自キャッシュメモリ12に要求されたキャッシュラ
インが無い状態(INVALID)であったため、CC
C報告10d(CCC_REP)として“INV”を要
求元のPM0に応答する。
は、当該ライトバックのWRITEトランザクションが
トランザクション受信部24内にキューイングされた時
点で、WRITE_ACKトランザクションを、要求元
のPM1に返す。
は、PM1およびPMnからのCCC報告10bを集計
し、両方とも“INV”なので、MMに対してREAD
要求を発行し、RETURNトランザクションで返され
たデータを使用する。本実施の形態では、このPM0か
らMMへのREAD要求の発行時点で、PM1からのラ
イトバックデータはMMに反映されていることが保証さ
れるため、矛盾なく、PM0は正しい最新のデータをM
Mから得ることができる。
来の場合、MMへのトランザクション到着順により、P
M0が正しいデータを取得できない〕 従来のように、PMが自分の発行したライトバックの完
了のタイミングを知ることができない場合には、図10
のようなタイミングで、PM1にてライトバック途中に
CCC_REQを受信した場合、PM1は、すでにライ
トバックを開始した後のために、ライトバック処理の完
了の如何に関わらず“INV”を応答することとなり、
ライトバック中の内容が反映されない古い無効(STA
LE)なデータをPM0がMMから読み出す懸念があ
る。
て、CCC_REQと、MMに対する投機的先読み(フ
ェッチ)要求とをほぼ同時に発行する投機的READ要
求発行方式の場合について説明する。
からのデータを使用(投機的フェッチヒット)〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的のキ
ャッシュラインが存在しないと判明した(Miss)時
点で、当該PM0は、他のPM1〜PMnにCCC_R
EQを同報送信すると同時に、投機的フェッチ要求(R
EAD)をMMに発行する。
Mnでは、自キャッシュメモリ12に要求されたキャッ
シュラインが無い状態(INVALID)であったた
め、CCC報告10d(CCC_REP)としていずれ
も“INV”を要求元のPM0に応答する。
してリードデータを返す。
CC報告10d(CCC_REP)として返された“I
NV”を集計し、全PMにてキャッシュミスであったこ
とを認識し、MMから返されたリードデータを使用す
る。
て、早期に投機的READを発行しているため、MMか
らリードデータを取得するまでの所要時間を短縮でき
る。
らキャッシュライン供給、MMからのデータは捨てる
(投機的フェッチミス)〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的のキ
ャッシュラインが存在しないと判明した(Miss)時
点で、当該PM0は、他のPM1〜PMnにCCC_R
EQを同報送信すると同時に、投機的フェッチ要求(R
EAD)をMMに発行する。
M1では、自キャッシュメモリ12に、要求されたキャ
ッシュラインが“Exclusive‐Modifie
d”で存在し、なおかつ、WB実行中アドレスレジスタ
14aがクリアであることによりライトバック実行中で
ないことを確認し、CCC報告10d(CCC_RE
P)として“SUP”を要求元のPM0に応答するとと
もに、図7(c)のRETURNタイプのトランザクシ
ョンを生成して要求元のPM0に送信する。
nでは、自キャッシュメモリ12に要求されたキャッシ
ュラインが無い状態(INVALID)であったため、
CCC報告10d(CCC_REP)として“INV”
を要求元のPM0に応答する。
求に応答してリードデータを返す。
からのCCC報告10bを集計し、PM1から送信され
たRETURNトランザクションのデータを使用するこ
とを決定し、MMから返されたリードデータは捨てる。
ィヒット −> ライトバック完了確認後、CCC報告
にて要求元にフェッチミス通知および再リード実行を促
す〕 任意のプロセッサモジュールPM0におけるREAD要
求処理において、自キャッシュメモリ12内に目的のキ
ャッシュラインが存在しないと判明した(Miss)時
点で、当該PM0は、他のPM1〜PMnにCCC_R
EQを同報送信すると同時に、投機的フェッチ要求(R
EAD)をMMに発行する。
ク実行中のPM1では、自キャッシュメモリ12に、要
求されたキャッシュラインが“Exclusive‐M
odified”で存在し、なおかつ、WB実行中アド
レスレジスタ14aの内容が要求されたキャッシュライ
ンのアドレスと一致することにより、当該キャッシュラ
インがライトバック中であることを認識する。この時、
PM1は、MMからのWRITE_ACKトランザクシ
ョン(図6(b))の到着を待ち、MMに対する当該キ
ャッシュラインの反映動作の完了確認後、CCC報告1
0d(CCC_REP)として“RR”を応答すること
で要求元のPM0にMMから再リードの実行を促すとと
もに、自キャッシュメモリ12内の当該キャッシュライ
ンをINVALID化する。
は、自キャッシュメモリ12に要求されたキャッシュラ
インが無い状態(INVALID)であったため、CC
C報告10d(CCC_REP)として“INV”を要
求元のPM0に応答する。
0からの投機的READのトランザクションが到来し、
これに対して古い無効(STALE)なデータを返す。
その後、PM1からのライトバックのトランザクション
が到来し、当該ライトバックのWRITEトランザクシ
ョンがトランザクション受信部24内にキューイングさ
れた時点で、WRITE_ACKトランザクションを、
要求元のPM1に返す。
のPM0には、PMnから返された“INV”、MMか
ら返された無効なリードデータ、PM1から返された
“RR”の順序で到着し、当該PM0はこれらを集計す
ることにより、すでに到着している無効なリードデータ
を捨てるとともに、PM1から返された“RR”に基づ
いて、再度、MMに対してREAD要求を発行して正し
い最新のデータを取得する。
C_REQおよびライトバック実行処理が交錯する場合
でも、本実施の形態では、ライトバックを実行したPM
1が、MMのライトバック完了を確実に認識した後、要
求元のPM0に対してMMへの再READ発行を促すこ
とで、PM0からMMへの再度のREAD要求の発行時
点で、PM1からのライトバックデータはMMに反映さ
れていることが保証されるため、矛盾なく、PM0は正
しいデータをMMから得ることができる。
ィヒット −> ライトバック完了確認後、CCC報告
にて要求元にフェッチミス通知および要求元行きの再リ
ードを代理実行〕 この図15は、前述の図14の処理の変形例であり、ラ
イトバックの完了を確認したPM1が、要求元のPM0
からのCCC_REQに対する応答として、当該PM1
が要求元のPM0の代理として、MMに対して、RET
URNがPM0に返される特別な再READ要求を発行
したことを示す“RRP”を返すところが異なってい
る。この“RRP”を受けた要求元のPM0は、先にM
Mから到来している無効なデータを捨てて、MMからの
正しい最新のデータの到来を待って当該データを使用す
る。
ィヒット −> キャッシュラインからデータ供給〕 この図16は、PM0から発行されたCCC_REQに
対して、ライトバック中のPM1のキャッシュラインに
ダーティヒットしたとき、“SUP”を応答して当該P
M1からヒットしたキャッシュラインを供給し、要求元
のPM0がCCC_REQとともに投機的に発行したM
MへのREAD要求で得られたデータは無視するように
動作するところが、前記図14および図15の場合と異
なるものである。
PM1のキャッシュラインにダーティヒットした時点で
直ちに、当該キャッシュラインを要求元に供給できるの
で、要求元で再リードを実行させる場合や、代理で再リ
ードを行う場合に比較して、要求元のPM0が目的のリ
ードデータを取得するまでの所要時間を短縮することが
できる。
TE_ACKを返す方法としては、前述の図3に例示し
たように、メモリモジュール20内にライト完了応答部
25を設けることに限らず、たとえば、図17に例示さ
れるように、クロスバスイッチ30の内部に設けてもよ
い。
れるポート31aに設けられているトランザクションキ
ュー32bを通過してメモリモジュール20に入力され
るWRITEトランザクションの到来を監視し、当該W
RITEトランザクションの到来を契機として、WRI
TE_ACKトランザクションを生成して、メモリモジ
ュール20から到来するリードデータが通過するトラン
ザクションキュー32aにキューイングするライト完了
応答部35をクロスバスイッチ30の内部に設ける構成
とする。
キュー32bに到来したWRITEトランザクション
は、時系列にメモリモジュール20に送出されて処理さ
れるので、当該トランザクションキュー32bに到来し
た時点で、WRITE_ACKトランザクションを要求
元に応答してもデータ更新とデータ読み出しの前後関係
に矛盾が生じることはない。また、ライト完了応答部3
5をクロスバスイッチ30の内部に設ける構成とするこ
とにより、メモリモジュールMMの構成を簡略化するこ
とができる。
チプロセッサシステムおよびキャッシュコヒーレンシ制
御方法によれば、スイッチ結合方式のマルチプロセッサ
システムにおいて、正しいキャッシュコヒーレンシ制御
を実現することが可能となる。
く、正しいキャッシュコヒーレンシ制御を実現すること
が可能となる。
を契機としてWRITE_ACKトランザクションを返
すという簡素な論理で済むので、たとえば、到来するト
ランザクションの順序を並べ替える等の複雑な処理は不
要であり、従って、メモリモジュール等の構成を必要以
上に複雑化することなく、正しいキャッシュコヒーレン
シ制御を実現することが可能となる。
序が異なる、クロスバスイッチ30等のスイッチ結合に
よるマルチプロセッサシステムにおいても、正しい結果
を与える、キャッシュコヒーレンシ制御方法を提供でき
る。
実施の形態であるマルチプロセッサシステムおよびキャ
ッシュコヒーレンシ制御方法の作用の一例を示すタイミ
ングチャートである。
1の図3、図4および図5の代わりにバス40(BU
S)を介して複数のプロセッサモジュールPM0〜PM
n(10)がメモリモジュールMM(20)を共有する
構成となっているところが異なる。なお、プロセッサモ
ジュールPM0〜PMn(10)がメモリモジュールM
M(20)は、前記実施の形態1の場合とほぼ同様のも
のを用いることができるので、同一の構成要素は同一の
符号にて引用する。
スが発生し、MMに対するREAD要求と、他のPM0
に対するCCC_REQがBUSを介して実行される。
は、要求されたキャッシュラインが“Exclusiv
e‐Modified”で存在し、なおかつ、WB実行
中アドレスレジスタ14aの内容が要求されたキャッシ
ュラインのアドレスと一致することにより、当該キャッ
シュラインがダーティ置換操作のためのライトバック中
であることを認識したとする。
して、リードデータをRETURNした後、PM0から
のWRITE_BACK要求を実行し、完了した時点で
当該PM0にWRITE_ACKを返す。この時、PM
nにRETURNされたデータはPM0からのライトバ
ックが反映されていない無効(STALE)である。
たPM0では、ライトバックに対応したMMからのWR
ITE_ACKを待って、ライトバックの完了を確認し
た後、要求元のPM1に対して“RR”を応答して、M
Mからの当該データの再リードを促す。
(STALE)データを捨てて、MMに対してREAD
トランザクションを発行し、これに応答してMMからR
ETURNトランザクションで返された最新の正しいデ
ータを使用する。
るマルチプロセッサシステムにおいても、本実施の形態
2のように、ライトバック要求の実行に際して、MMの
側から要求元にライトバック完了を通知するWRITE
_ACKトランザクションを用いることで、PM内でラ
イトバックの実行とCCC_REQのすれ違う懸念があ
る場合でも、矛盾なく、キャッシュコヒーレンシ制御を
実行することが可能となる。
の形態に基づき具体的に説明したが、本発明は前記実施
の形態に限定されるものではなく、その要旨を逸脱しな
い範囲で種々変更可能であることはいうまでもない。
れば、バス結合およびスイッチ結合のいずれにおいて
も、正しいキャッシュコヒーレンシ制御を実現すること
ができる、という効果が得られる。
ば、システムの性能を劣化させることなく、正しいキャ
ッシュコヒーレンシ制御を実現することができる、とい
う効果が得られる。
ば、メモリモジュール等の構成を必要以上に複雑化する
ことなく、正しいキャッシュコヒーレンシ制御を実現す
ることができる、という効果が得られる。
によれば、観測場所によりトランザクション順序が異な
る、スイッチ結合によるマルチプロセッサシステムにお
いても、正しい結果を与えることができる、という効果
が得られる。
によれば、各モジュール内でのすれ違いの発生を認める
バス結合によるマルチプロセッサシステムにおいて、性
能を落とすことなく、正しい結果を与え、なおかつメモ
リモジュールの構成が単純で済むという効果が得られ
る。
システムおよびキャッシュコヒーレンシ制御方法におけ
る制御情報の一例を示す概念図である。
システムおよびキャッシュコヒーレンシ制御方法におけ
る制御情報の一例を示す概念図である。
システムにおけるプロセッサモジュールおよびメモリモ
ジュールの構成の一例を詳細に例示した概念図である。
システムにおけるクロスバスイッチの構成の一例を詳細
に例示した概念図である。
システムの全体構成の一例を示す概念図である。
であるマルチプロセッサシステムに用いられるトランザ
クションの構成の一例を示す概念図である。
施の形態であるマルチプロセッサシステムに用いられる
トランザクションの構成の一例を示す概念図である。
システムおよびキャッシュコヒーレンシ制御方法の作用
の一例を説明するタイミングチャートである。
システムおよびキャッシュコヒーレンシ制御方法の作用
の一例を説明するタイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法の作
用の一例を説明するタイミングチャートである。
システムにおけるキャッシュコヒーレンシ制御方法の技
術的課題の一例を示すタイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法にお
ける、投機的READ要求発行方式の作用の一例を示す
タイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法にお
ける、投機的READ要求発行方式の作用の一例を示す
タイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法にお
ける、投機的READ要求発行方式の作用の一例を示す
タイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法にお
ける、投機的READ要求発行方式の作用の一例を示す
タイミングチャートである。
サシステムおよびキャッシュコヒーレンシ制御方法にお
ける、投機的READ要求発行方式の作用の変形例を示
すタイミングチャートである。
サシステムの変形例を示す概念図である。
ッサシステムおよびキャッシュコヒーレンシ制御方法の
作用の一例を示すタイミングチャートである。
テムにおけるキャッシュコヒーレンシ制御方法の技術的
課題の一例を示すタイミングチャートである。
a…CCC要求、10b…CCC報告、10c…CCC
要求、10d…CCC報告、10e…メモリリード要
求、10f…メモリライト要求、10g…メモリライト
完了通知、10h…ライトデータ、10i…リードデー
タ、10j…リードデータ、11…プロセッサ、12…
キャッシュメモリ、13…キャッシュタグ、14…キャ
ッシュ制御装置、14a…WB実行中アドレスレジスタ
(識別手段)、15…トランザクション送信部、16…
トランザクション受信部、17…CCC送受信部、17
a…通信線、20…メモリモジュール(MM)、21…
メモリバンク、22…メモリ制御部、23…トランザク
ション送信部、24…トランザクション受信部、25…
ライト完了応答部(通知手段)、30…クロスバスイッ
チ、31…スイッチ結合論理、31a…ポート、32a
…トランザクションキュー、32b…トランザクション
キュー、35…ライト完了応答部(通知手段)、40…
バス。
Claims (4)
- 【請求項1】 複数のプロセッサモジュールがバスまた
はクロスバスイッチを介してメモリモジュールを共有
し、前記複数のプロセッサモジュールのうちの一つがリ
ードミスを生じた場合に、他の前記プロセッサモジュー
ルに対する状態確認後に前記メモリモジュールに前記リ
ードミスを生じたデータのリード要求を行うマルチプロ
セッサシステムであって、 個々の前記プロセッサモジュールから前記メモリモジュ
ールに対して発行されたメモリライト要求の完了を当該
メモリライト要求の発行元の前記プロセッサモジュール
に通知する通知手段を備え、 個々の前記プロセッサモジュールは、 前記メモリモジュールとの間で授受されるデータを一時
的に保持するキャッシュメモリと、 このキャッシュメモリ内の更新データを前記メモリモジ
ュールに反映させるための前記メモリライト要求の実行
中か否かを識別するための識別手段と、 他の前記プロセッサモジュールから自プロセッサモジュ
ール内の前記キャッシュメモリの更新データに対するア
クセス要求があった時、前記更新データが自プロセッサ
モジュールが排他的に所有する最新の更新データであ
り、かつ前記メモリライト要求の実行中であることを前
記識別手段により識別した場合には、前記通知手段から
の完了応答の受理後、前記アクセス要求元の前記プロセ
ッサモジュールに対して前記キャッシュメモリ内におけ
る当該更新データが無効であることを応答する動作を実
行する制御部と、 を備えたことを特徴とするマルチプロ
セッサシステム。 - 【請求項2】 複数のプロセッサモジュールがバスまた
はクロスバスイッチを介してメモリモジュールを共有す
る構成のマルチプロセッサシステムであって、 個々の前記プロセッサモジュールから前記メモリモジュ
ールに対して発行されたメモリライト要求の完了を当該
メモリライト要求の発行元の前記プロセッサモジュール
に通知する通知手段を備え、 個々の前記プロセッサモジュールは、 前記メモリモジュールとの間で授受されるデータを一時
的に保持するキャッシュメモリと、 このキャッシュメモリ内の更新データを前記メモリモジ
ュールに反映させるための前記メモリライト要求の実行
中か否かを識別するための識別手段と、 他の前記プロセッサモジュールから自プロセッサモジュ
ール内の前記キャッシュメモリの更新データに対するア
クセス要求があった時、 前記更新データが自プロセッサモジュールが排他的に所
有する最新の更新データであり、かつ前記メモリライト
要求の実行中である場合には、前記通知手段からの完了
応答の受理後、前記アクセス要求元の前記プロセッサモ
ジュールに対して、前記更新データを前記メモリモジュ
ールから読み出すように促す第1の動作、 前記更新データが自プロセッサモジュールが排他的に所
有する最新の更新データであり、かつ前記メモリライト
要求の実行中である場合には、前記通知手段からの完了
応答の受理後、前記アクセス要求元の前記プロセッサモ
ジュールの代わりに、前記メモリモジュールに対して前
記更新データのリード要求を発行し、当該更新データが
前記メモリモジュールから前記アクセス要求元の前記プ
ロセッサモジュールに転送されるようにする第2の動
作、 のいずれか一方の動作を実行する制御部と、 を備えたこ
とを特徴とするマルチプロセッサシステム。 - 【請求項3】 複数のプロセッサモジュールがバスまた
はクロスバスイッチを介してメモリモジュールを共有す
るとともに、個々の前記プロセッサモジュールには前記
メモリモジュールとの間で授受されるデータを一時的に
保持するキャッシュメモリを備えた構成のマルチプロセ
ッサシステムにおけるキャッシュコヒーレンシ制御方法
であって、 他の前記プロセッサモジュールから自プロセッサモジュ
ール内の前記キャッシュメモリの更新データに対するア
クセス要求があった時、前記更新データが自プロセッサモジュールが排他的に所
有する最新の更新データであり、かつメモリライト要求
の実行中である場合には、前記メモリライト要求の完了
後、前記アクセス要求元の前記プロセッサモジュールに
対して前記キャ ッシュメモリ内における当該更新データ
が無効であることを応答する動作を実行し、 前記アクセス要求元の前記プロセッサモジュールは前記
応答を受信後、前記メモリモジュールに前記更新データ
のリード要求を発行 することを特徴とするキャッシュコ
ヒーレンシ制御方法。 - 【請求項4】 複数のプロセッサモジュールがバスまた
はクロスバスイッチを介してメモリモジュールを共有す
るとともに、個々の前記プロセッサモジュールには前記
メモリモジュールとの間で授受されるデータを一時的に
保持するキャッシュメモリを備えた構成のマルチプロセ
ッサシステムにおけるキャッシュコヒーレンシ制御方法
であって、 他の前記プロセッサモジュールから自プロセッサモジュ
ール内の前記キャッシュメモリの更新データに対するア
クセス要求があった時、 前記更新データが自プロセッサモジュールが排他的に所
有する最新の更新データであり、かつメモリライト要求
の実行中である場合には、前記メモリライト要求の完了
後、前記アクセス要求元の前記プロセッサモジュールに
対して、前記更新データを前記メモリモジュールから読
み出すように促す第1の動作、 前記更新データが自プロセッサモジュールが排他的に所
有する最新の更新データであり、かつ前記メモリライト
要求の実行中である場合には、前記メモリライト要求の
完了後、前記アクセス要求元の前記プロセッサモジュー
ルの代わりに、前記メモリモジュールに対して前記更新
データのリード要求を発行し、当該更新データが前記メ
モリモジュールから前記アクセス要求元の前記プロセッ
サモジュールに転送されるようにする第2の動作、 のいずれかを実行することを特徴とするキャッシュコヒ
ーレンシ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32056696A JP3210590B2 (ja) | 1996-11-29 | 1996-11-29 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
US08/975,671 US6298418B1 (en) | 1996-11-29 | 1997-11-28 | Multiprocessor system and cache coherency control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32056696A JP3210590B2 (ja) | 1996-11-29 | 1996-11-29 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10161930A JPH10161930A (ja) | 1998-06-19 |
JP3210590B2 true JP3210590B2 (ja) | 2001-09-17 |
Family
ID=18122872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32056696A Expired - Fee Related JP3210590B2 (ja) | 1996-11-29 | 1996-11-29 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6298418B1 (ja) |
JP (1) | JP3210590B2 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480927B1 (en) * | 1997-12-31 | 2002-11-12 | Unisys Corporation | High-performance modular memory system with crossbar connections |
US6393523B1 (en) * | 1999-10-01 | 2002-05-21 | Hitachi Ltd. | Mechanism for invalidating instruction cache blocks in a pipeline processor |
US6529999B1 (en) * | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
US6631474B1 (en) * | 1999-12-31 | 2003-10-07 | Intel Corporation | System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching |
US6651124B1 (en) * | 2000-04-28 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preventing deadlock in a distributed shared memory system |
US6667960B1 (en) * | 2000-04-29 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Protocol for identifying components in a point-to-point computer system |
US6917999B2 (en) * | 2001-06-29 | 2005-07-12 | Intel Corporation | Platform and method for initializing components within hot-plugged nodes |
US6857046B1 (en) * | 2002-03-28 | 2005-02-15 | Cisco Technology, Inc. | Caching for context switching applications |
US7003630B1 (en) * | 2002-06-27 | 2006-02-21 | Mips Technologies, Inc. | Mechanism for proxy management of multiprocessor storage hierarchies |
US7017025B1 (en) * | 2002-06-27 | 2006-03-21 | Mips Technologies, Inc. | Mechanism for proxy management of multiprocessor virtual memory |
JP2005115600A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | 情報処理装置及び方法 |
US7363427B2 (en) * | 2004-01-12 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Memory controller connection to RAM using buffer interface |
US9727468B2 (en) * | 2004-09-09 | 2017-08-08 | Intel Corporation | Resolving multi-core shared cache access conflicts |
US7818507B2 (en) * | 2005-04-04 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
JP4806959B2 (ja) * | 2005-05-17 | 2011-11-02 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサシステムの高性能化技術 |
JP2007213304A (ja) * | 2006-02-09 | 2007-08-23 | Seiko Epson Corp | キャッシュメモリシステム及びマルチプロセッサシステム |
US8205045B2 (en) * | 2008-07-07 | 2012-06-19 | Intel Corporation | Satisfying memory ordering requirements between partial writes and non-snoop accesses |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
GB2484088B (en) * | 2010-09-28 | 2019-08-07 | Advanced Risc Mach Ltd | Coherency control with writeback ordering |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US20120158652A1 (en) * | 2010-12-15 | 2012-06-21 | Pavan Ps | System and method for ensuring consistency in raid storage array metadata |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US9448954B2 (en) * | 2011-02-28 | 2016-09-20 | Dsp Group Ltd. | Method and an apparatus for coherency control |
EP2761466B1 (en) | 2011-09-30 | 2020-08-05 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761467B1 (en) | 2011-09-30 | 2019-10-23 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
CN107608910B (zh) | 2011-09-30 | 2021-07-02 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
US20130111149A1 (en) * | 2011-10-26 | 2013-05-02 | Arteris SAS | Integrated circuits with cache-coherency |
US9256564B2 (en) * | 2012-01-17 | 2016-02-09 | Qualcomm Incorporated | Techniques for improving throughput and performance of a distributed interconnect peripheral bus |
US9069674B2 (en) * | 2012-11-27 | 2015-06-30 | International Business Machines Corporation | Coherent proxy for attached processor |
US9135174B2 (en) | 2012-11-27 | 2015-09-15 | International Business Machines Corporation | Coherent attached processor proxy supporting master parking |
US9021211B2 (en) | 2013-01-11 | 2015-04-28 | International Business Machines Corporation | Epoch-based recovery for coherent attached processor proxy |
US8990513B2 (en) | 2013-01-11 | 2015-03-24 | International Business Machines Corporation | Accelerated recovery for snooped addresses in a coherent attached processor proxy |
US8938587B2 (en) | 2013-01-11 | 2015-01-20 | International Business Machines Corporation | Data recovery for coherent attached processor proxy |
JP2018195183A (ja) | 2017-05-19 | 2018-12-06 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
KR20200004119A (ko) * | 2018-07-03 | 2020-01-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US11656992B2 (en) | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
US11736417B2 (en) | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0300397A2 (en) | 1987-07-23 | 1989-01-25 | Hoechst-Roussel Pharmaceuticals Incorporated | Hydroxy-, Alkoxy- and Benzyloxy substituted phospholipids, a process for their preparation and their use as medicaments |
JPH0512117A (ja) * | 1991-07-04 | 1993-01-22 | Toshiba Corp | キヤツシユ一致化方式 |
JPH05334261A (ja) | 1992-06-04 | 1993-12-17 | Japan Radio Co Ltd | ライトアクセス時の高速非同期通信方式 |
JPH0744459A (ja) | 1993-07-29 | 1995-02-14 | Matsushita Electric Ind Co Ltd | キャッシュ制御方法およびキャッシュ制御装置 |
US5530933A (en) | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
EP0681240B1 (en) * | 1994-05-03 | 2001-01-10 | Hewlett-Packard Company | Duplicate cache tag memory system |
US5581729A (en) * | 1995-03-31 | 1996-12-03 | Sun Microsystems, Inc. | Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system |
US5680576A (en) * | 1995-05-05 | 1997-10-21 | Silicon Graphics, Inc. | Directory-based coherence protocol allowing efficient dropping of clean-exclusive data |
US5701422A (en) * | 1995-12-13 | 1997-12-23 | Ncr Corporation | Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses |
JP3269967B2 (ja) * | 1996-04-24 | 2002-04-02 | 株式会社日立製作所 | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム |
-
1996
- 1996-11-29 JP JP32056696A patent/JP3210590B2/ja not_active Expired - Fee Related
-
1997
- 1997-11-28 US US08/975,671 patent/US6298418B1/en not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
村田浩樹他,"ネットワークを用いた高速スヌープ機構",情報処理学会研究報告,社団法人情報処理学会,1992年8月19日,第92巻,第64号,(92−ARC−95),p.57−64 |
甲斐康司他,"可変構造型並列計算機のローカル/リモート・メモリ・アーキテクチャ",情報処理学会研究報告,社団法人情報処理学会,1990年1月26日,第90巻,第7号,(90−ARC−80),p.81−88 |
高橋義造編,「並列処理機構」,初版,丸善株式会社,1989年8月25日,p.186−199 |
Also Published As
Publication number | Publication date |
---|---|
US6298418B1 (en) | 2001-10-02 |
JPH10161930A (ja) | 1998-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3210590B2 (ja) | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 | |
JP3875749B2 (ja) | マルチプロセッサ装置及びそのメモリアクセス方法 | |
US6012120A (en) | Method and apparatus for providing DMA transfers between devices coupled to different host bus bridges | |
US6128711A (en) | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes | |
US5796977A (en) | Highly pipelined bus architecture | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
RU2263344C2 (ru) | Неспекулятивное распределенное разрешение конфликтов для протокола когерентности кэш-памяти | |
US8423720B2 (en) | Computer system, method, cache controller and computer program for caching I/O requests | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
US6502168B1 (en) | Cache having virtual cache controller queues | |
JPH086855A (ja) | メモリ | |
JP2000227908A (ja) | 共用介入サポ―トを有する不均等メモリ・アクセス(numa)デ―タ処理システム | |
NO312610B1 (no) | Datamaskin-system | |
EP1412871B1 (en) | Method and apparatus for transmitting packets within a symmetric multiprocessor system | |
JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
JP7125845B2 (ja) | キャッシュコンテンツ管理 | |
US7797495B1 (en) | Distributed directory cache | |
WO1997004392A1 (en) | Shared cache memory device | |
JP3714235B2 (ja) | マルチプロセッサシステム | |
JP2000132531A (ja) | マルチプロセッサ | |
JP4644647B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
JP2003216597A (ja) | マルチプロセッサシステム | |
US6173370B1 (en) | Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction | |
US20020078306A1 (en) | Method and apparatus for improving system performance in multiprocessor systems | |
JPH04195576A (ja) | キャッシュメモリ方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070713 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080713 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080713 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090713 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090713 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130713 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |