JPH06208507A - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム

Info

Publication number
JPH06208507A
JPH06208507A JP5002761A JP276193A JPH06208507A JP H06208507 A JPH06208507 A JP H06208507A JP 5002761 A JP5002761 A JP 5002761A JP 276193 A JP276193 A JP 276193A JP H06208507 A JPH06208507 A JP H06208507A
Authority
JP
Japan
Prior art keywords
cache
line
state
shared
block data
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.)
Pending
Application number
JP5002761A
Other languages
English (en)
Inventor
Takaharu Makino
宇晴 牧野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP5002761A priority Critical patent/JPH06208507A/ja
Publication of JPH06208507A publication Critical patent/JPH06208507A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 あるラインのブロックデータが主記憶内のデ
ータと一致しているとき、そのラインのブロックデータ
が他のキャッシュメモリに共有されている状態と共有さ
れていない状態とに場合分けし、共有バスのトラフィッ
クを減少させる。 【構成】 キャッシュメモリ13−1に格納されている
あるラインのブロックデータが主記憶15内のデータと
一致しているとき、そのラインのブロックデータが他の
キャッシュメモリ13−2または13−3に共有されて
いる状態をCLEAN−SHARED状態とし、共有さ
れていない状態をCLEAN−EXCLUSIVE状態
とする。そして、CLEAN−EXCLUSIVE状態
のラインにライトヒットしたときには、共有バス16に
は無効化要求を発行しない。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサが各
々のキャッシュメモリを備えた密結合マルチプロセッサ
システムにおいて、各プロセッサ毎に設けられた各キャ
ッシュメモリ間のコヒーレンスを制御するキャッシュメ
モリシステムに関する。
【0002】
【従来の技術】シングル・プロセッサ構成のワークステ
ーションの性能向上に限界が見え始めたことにより、マ
ルチプロセッサ構成のワークステーションの開発が、近
年盛んになっている。
【0003】マルチプロセッサシステムは、マルチプロ
セッサ間結合方式により、密結合マルチプロセッサシス
テムと疎結合マルチプロセッサシステムに分類される。
密結合マルチプロセッサでは、全てのプロセッサが共有
バスを介して共通にアクセスできる共有メモリをシステ
ムに用意し、この共有メモリに情報を共有することによ
って、各マルチプロセッサ間で通信を行う。このような
バス結合型の密結合マルチプロセッサシステムでは、共
有バスに対するトラフィックの増加による性能低下を抑
止するために、各プロセッサが私用のキャッシュメモリ
を備えるマルチキャッシュ構成が標準的になりつつあ
る。
【0004】キャッシュメモリは、プロセッサと主記憶
の間に配置される高速、小容量のメモリであり、このキ
ャッシュメモリ内に頻繁に繰り返しアクセスされる命令
コードやデータ(ブロックデータ)を記憶させることに
より、低速の主記憶に対するアクセスを低減し、システ
ム全体の処理能力を高めることができる。上記密結合マ
ルチプロセッサシステムでは、上記主記憶に該当するの
が共有メモリとなる。
【0005】ところで、シングルプロセッサ構成のシス
テムにおいては、データの統一性はキャッシュメモリ
(以下、キャッシュと呼ぶ)と主記憶との間でのみ考慮
すればよく、これはキャッシュに書き込まれたデータを
正確に主記憶に書き戻すことにより実現される。
【0006】このための方式には、ライトスルー方式と
ライトバック方式(コピーバック方式またはストアイン
方式とも呼ぶ)の2種類がある。前者はキャッシュに書
き込むと同時に主記憶のブロックデータも更新する。こ
れに対し、後者は他のブロックデータが主記憶からキャ
ッシュへ読み出されることにより、書き込みの起こった
ブロックデータがキャッシュから追い出される(リプレ
イスされる)とき、その内容を主記憶へブロック単位で
書き戻す。
【0007】上記2つの方式の優劣を比較した場合、キ
ャッシュの1つのブロックデータに対し、書き込みが集
中的に行われるときはライトバック方式が有利であり、
あまり書き込みが頻繁でなく、リプレイスが多いときに
はライトスルー方式が有利となる傾向がある。
【0008】ところが、上記マルチキャッシュ構成の密
結合型マルチプロセッサシステムでは同一のブロックデ
ータのコピーが複数のキャッシュも存在する可能性があ
るため、あるブロックデータの更新が行われた場合、主
記憶だけでなく他のキャッシュメモリにもそのことを知
らせて、システム内のブロックデータの統一性を保つ必
要がある。このためには、システム全体で、制御の取り
決めを行う必要があり、この取り決めをキャッシュコヒ
ーレンスプロトコルという。
【0009】このようなコヒーレンスプロトコルを実現
するためには、、それぞれのキャッシュが、共有バス上
を流れる他のプロセッサのトランザクションを絶えず監
視し、自己に影響を及ぼす要求を検出して、キャッシュ
コヒーレンスを維持する機能が必要となる。このような
機能をスヌープ機能と呼び、この機能を持つキャッシュ
をスヌーピングキャッシュと呼ぶ。
【0010】共有バス結合型の密結合マルチプロセッサ
システムでは、共有バスがクリティカル資源となるの
で、システム性能を最大とするためには、各々のプロセ
ッサの共有バスに対する要求(バス要求)を最小にする
ことが必要である。すなわち、キャッシュのヒット率よ
りも、むしろバストラフィックが小さくなるようなキャ
ッシュコヒーレンスプロトコルが望ましい。
【0011】このため、キャッシュコヒーレンス問題の
解決とともにバストラフィックの軽減を意図した各種の
プロトコルが提案され、それらのプロトコルでのシステ
ム性能への影響がいろいろ調べられている。この結果、
バス要求の頻度が高いライトスルー方式に代わって、ラ
イトバック方式を基本とした、より複雑なプロトコルへ
と変遷してきている。
【0012】コピーバック方式(ライトバック方式)で
は、あるキャッシュメモリの内容を書き換えたとき、す
ぐには共有メモリの書き換えを行わず、必要に迫られた
ときのみ更新する。すなわち、コピーバック方式におい
ては、キャッシュに対するデータの書き込み時にヒット
(ライトヒットまたはストアヒット)しても、そのデー
タを共有する他のキャッシュメモリが存在しなければ上
記共有バスへのアクセスは行わず、そのため共有バスへ
のアクセスの回数が減少してシステム全体のスループッ
トが高くなる。
【0013】ところで、このようなコピーバック方式を
採用したプロトコルは、無効化型(ブロードキャスト無
効化型)と書き込み放送型(ブロードキャスト更新型)
に分けられる。
【0014】無効化型は、あるキャッシュでデータの書
き込みが起こって、そのデータを共有している他のキャ
ッシュとの間にデータの矛盾が起きた場合、上記キャッ
シュのみに上記データを残して他のキャッシュが記憶し
ているまだ更新されていない上記データ(旧データ)を
無効にしてしまう方法である。これに対して書き込み放
送型は、あるキャッシュでデータの書き込みが起こった
場合、他のキャッシュに対してその書き込みデータを放
送(通知)して、当該キャッシュ間で上記書き込みデー
タのコピーレンスを維持する。
【0015】また、無効化型は、あるキャッシュに対す
るデータ書き込み毎に、常にその書き込みデータを主記
憶へ書き戻す主記憶書き戻し型と、あるキャッシュデー
タの書き込みが起こっても出来る限りキャッシュ間で上
記書き込みデータを転送して、キャッシュ間でのデータ
のコヒーレンスを維持するキャッシュ間転送型に分けら
れる。
【0016】ライトスルー方式ではキャッシュの状態は
無効と有効の2状態だけで管理できるが、コピーバック
方式ではプロトコルによって複雑な制御を行うため、キ
ャッシュに格納されるブロックデータを管理するために
は、きめの細かい情報が必要になる。
【0017】上記無効化型で、かつキャッシュ間転送型
のプロトコルの代表的なものの1つにバークレイ(Be
rkeley)プロトコルがある。このバークレイプロ
トコルにおいては、キャッシュ内の1ブロックのデータ
を格納する各ラインの状態(ラインステート)は、以下
に示す4状態のうちいずれかをとる。
【0018】INVALID(無効):ラインには、有
効なブロックデータが格納されていない。 CLEAN−SHARED:ラインには、有効なブロッ
クデータが格納されている。そして、他のスヌーピング
キャッシュにも当該ラインのブロックデータと同一のブ
ロックデータが格納されている可能性があり、かつその
当該ラインのブロックデータと主記憶内のブロックデー
タとは一致している。
【0019】DIRTY−SHARED:ラインには、
有効なブロックデータが格納されている。そして、他の
スヌーピングキャッシュにも当該ラインのブロックデー
タと同一のブロックデータが格納されている可能性があ
り、かつその当該ラインのブロックデータと主記憶内の
ブロックデータとは一致していない。 DIRTY−EXCLUDIVE:ラインには、有効な
ブロックデータが格納されている。そして、他のスヌー
ピングキャッシュには当該ラインのブロックデータと同
一のブロックデータは格納されておらず、かつその当該
ラインのブロックデータは主記憶のブロックデータと一
致していない。
【0020】これら4種類のライン状態(ラインステー
ト)は、各ラインのブロックデータの状態を示す状態フ
ラグとして、各ラインに設けらるタグ情報の一部として
各ライン内に格納される。
【0021】ここで、上記タグ情報を、ブロックデータ
がスヌーピングキャッシュ内に格納されたときのライン
の構成を示す図5を参照しながら説明する。各ライン
は、同図に示すように、1ブロックのデータを格納する
成るデータ部13bと、そのブロックデータに係わる情
報が書き込まれているタグ部13aとから構成される。
【0022】タグ部13aは、状態フラグとアドレスと
からなる。この状態フラグは、そのラインに格納されて
いるブロックデータが有効か無効か、上記ブロックデー
タの内容が主記憶15内の対応ブロックデータと一致し
ているか否か、上記ブロックデータと同一のブロックデ
ータが他のスヌーピングキャッシュに格納されているか
否かという条件に応じて上記4種類のライン状態の中の
いずれか1つに設定される。また、アドレスは、そのラ
インに格納されているブロックデータの先頭ワードのデ
ータの主記憶15上でのアドレスに設定される。
【0023】そして、各スヌーピングキャッシュは共有
バスを監視し、その共有バス上に出力されるライトまた
はロードされるデータのアドレスを取り込み、上記タグ
部のアドレスを参照することにより、その取り込んだア
ドレスのデータを自分が格納しているか否かを判別し、
自分が格納しているデータに対するアクセスが、他のス
ヌーピングキャッシュにより行われたか否かを検出でき
る。
【0024】データ部13bには、他のスヌーピングキ
ャッシュまたは主記憶15からコピーしたブロックデー
タが格納されている。このデータ部13bのサイズすな
わちブロックデータのデータ長は、各システムによって
最適な長さに決められる。
【0025】上述のようにして、そのタグ部13aの状
態フラグで表される各ラインのライン状態は、システム
立ち上げ時に上記状態フラグをINVALIDとするこ
とにより、無効状態に初期設定される。そして、以後各
ラインは、以下に示す状態遷移条件により、他のライン
状態へ遷移する。
【0026】以下に、7種類の状態遷移条件を示す。 プロセッサロードヒット:プロセッサのロード要求(リ
ード)に対して、自分のスヌーピングキャッシュがヒッ
トした場合。(Proc Load Hit) プロセッサストアヒット:プロセッサのストア要求(ラ
イト)に対して、自分のスヌーピングキャッシュがヒッ
トした場合。(Proc Store Hit) プロセッサロードミス:プロセッサのロード要求に対し
て、自分のスヌーピングキャッシュがミスした場合。
(Proc Load Miss) プロセッサストアミス:プロセッサのストア要求に対し
て、自分のスヌーピングキャッシュがミスした場合。
(Proc Store Miss) バス無効化:他のプロセッサのスヌーピングキャッシュ
が、共有バスを介してラインの無効化要求を発行した場
合。(Bus Invalidate) バスロードミス:他のプロセッサのスヌーピングキャッ
シュでプロセッサロードミスが発生した場合。(Bus
Load Miss) バスストアミス:他のプロセッサのスヌーピングキャッ
シュでプロセッサストアミスが発生した場合。(Bus
Store Miss) これらの状態遷移条件が発生したときの動作及びライン
の状態遷移については後述する。
【0027】次に、図6に、上記バークレイプロトコル
が使用されているシステムのブロック図を示す。ここで
は、例として、3個のプロセッサから成る密結合型マル
チプロセッサシステムを採り上げて説明する。
【0028】同図において、各プロセッサ11−1〜1
1−3は、共有バス16を介して共有メモリ(ここで
は、主記憶15)に接続されている。また、各プロセッ
サ11−1〜11−3は、共有バス16との間に、それ
ぞれ前記スヌープ機能を有するスヌーピングキャッシュ
12−1〜12−3を有している。
【0029】スヌーピングキャッシュ12−1〜12−
3は、キャッシュメモリ13−1〜13−3とキャッシ
ュコントローラ14−1〜14−3から成っている。キ
ャッシュメモリ13−1〜13−3は、例えば高速SR
AM等から成り、プロセッサ11−1〜11−3がアク
セスした主記憶15内の情報をコピーして一時的に格納
する。
【0030】キャッシュコントローラ14−1〜14−
3は、自己に接続されたのプロセッサ11−1〜11−
3から主記憶15へのアクセスを受信し、そのアクセス
すべきデータが自分のキャッシュメモリ13−1〜13
−3内に格納されているか否かを判別する。そして、格
納されている場合には自分のキャッシュメモリ13−1
〜13−3内の該当データにリードまたはライト等を行
い、格納されていない場合には主記憶15または他のキ
ャッシュにアクセスを行う。また、キャッシュコントロ
ーラ14−1〜14−3は上記スヌープ機能を実行し、
常に共有バス16上の主記憶15に対するアドレス信
号,リード信号,及びライト信号,さらには他のスヌー
ピングキャッシュから発行される無効化要求信号等を監
視している。そして、自分のキャッシュメモリ13−1
〜13−3内に格納されているデータのアドレス信号が
共有バス16上に出力された場合には、他のスヌーピン
グキャッシュに対する上記アドレス信号のデータの供給
や上記アドレス信号のデータを含むラインの無効化等の
処理を行う。
【0031】主記憶15は、各プロセッサ11−1〜1
1−3の共有メモリであり、例えばRAM等から成る。
そして、各プロセッサ11−1〜11−3で共有される
OS(オペレーティングシステム)やアプリケーション
プログラム、さらには、互いに通信するための情報等を
格納している。
【0032】共有バス(システムバス)16は、主記憶
15にアドレスを供給するアドレスバス、主記憶15に
対する読み出し/書き込みデータを転送するデータバ
ス、及び主記憶15に対するデータの読み出し/書き込
み用の制御信号や上記無効化要求信号が出力されるコン
トロールバスとから構成される。この共有バス16の使
用権の調停は、例えばバスアービタによって行われる。
【0033】上記構成の密結合型マルチプロセッサシス
テムにおいて、キャッシュへのヒット,ミスの判定は、
上記タグ部13aの情報に基づいて行われる。例えば、
プロセッサ11−1が主記憶15にアクセスすると、キ
ャッシュコントローラ14−1は、上記主記憶15への
アクセス先のアドレスとキャッシュメモリ13−1のタ
グ部13aの格納アドレスとから、キャッシュメモリ1
3−1内に上記アクセス先アドレスのデータ(アクセス
データ)を含むブロックデータを有するラインが存在す
る場合、キャッシュコントローラ14−1は、主記憶1
5へアクセスすることなく上記ブロックデータ内の上記
アクセスデータにアクセスする(ヒット)。一方、キャ
ッシュメモリ13−1内に上記アクセスデータを含むブ
ロックデータを有するラインが存在しなかった場合は
(ミス)、キャッシュコントローラ14−1は、共有バ
ス16上のアドレスバスへ上記アクセスデータのアドレ
ス信号を出力する。
【0034】次に、図7〜図9を参照しながら、バーク
レイプロトコルにおけるラインの状態遷移を説明する。
図7,図8は、バークレイプロトコルにおけるラインの
状態遷移表である。
【0035】同図において、左端の列が、あるラインの
現在の状態を表しており、その状態のラインに対して前
述の状態遷移条件が発生した場合に遷移する新しいライ
ン状態を右端の列に示してある。また、上記状態遷移条
件が発生したときの共有バス上の動作を、要求スヌーピ
ングキャッシュ(共有バス16上に後述する各種要求を
出力するスヌーピングキャッシュ)によるものと、他の
スヌーピングキャッシュ(上記要求スヌーピングキャッ
シュの出力要求をスヌープするキャッシュ)によるもの
とに分けて示してある。
【0036】また、図9は、バークレイプロトコルにお
けるライン状態遷移図である。同図において、実線は、
プロセッサロードヒット,プロセッサストアヒット,プ
ロセッサロードミス,及びプロセッサストアミスに対応
し、各プロセッサが自分のキャッシュに対するアクセス
に起因する遷移条件を表す。一方、破線は、バス無効
化,バスロードミス,及びバスストアミスに対応し、他
のキャッシュから共有バス16上に発行されたライン状
態情報に基づく遷移条件を表す。また、矢印の方向は状
態遷移の方向を表し、例えば、現在DIRTY−SHA
REDの状態になっているラインに対して自分のプロセ
ッサからのアクセスがプロセッサストアヒットすると、
上記ラインはDIRTY−EXCLUDIVE状態へ遷
移することが示されている。
【0037】次に、上記状態遷移の動作を、より詳しく
説明する。まず、プロセッサ11−1がスヌーピングキ
ャッシュ12−1内のキャッシュメモリ13−1にプロ
セッサロードヒットした場合、スヌーピングキャッシュ
12−1はそのヒットしたラインのブロックデータの中
の該当データをプロセッサ11−1に供給する。この場
合、上記ラインのブロックデータは、変化しないので,
キャッシュコントローラ14−1は、共有バス16上に
は何ら要求を発行しない。また、上記ヒットされたライ
ンの状態遷移も起こらない。
【0038】次に、プロセッサ11−1がスヌーピング
キャッシュ12−1内のキャッシュメモリ13−1にプ
ロセッサストアヒットした場合、そのヒットしたライン
のブロックデータの内容を書き換えるが、主記憶15の
内容は更新しない。
【0039】この場合、上記ヒットされたラインがDI
RTY−EXCLUDIVE状態であったときは、その
ヒットされたラインのブロックデータは主記憶15内の
データと一致しておらず、またそのヒットされたライン
のブロックデータは,他のキャッシュメモリ13−2,
13−3に共有されていないので、キャッシュコントロ
ーラ14−1は、共有バス16を介して何ら要求を発行
しない。したがって、この場合も、上記ヒットされたラ
インの状態遷移は起こらない。
【0040】一方、上記ヒットされたラインがCLEA
N−SHARED状態またはDIRTY−SHARED
状態であったときには、上記ブロックデータの書き換え
により、そのヒットされたラインのブロックデータは、
他のキャッシュメモリ13−2または13−3に共有さ
れていた同一ブロックのデータと一致しなくなる。この
ため、キャッシュコントローラ14−1は、共有バス1
6の使用権を獲得し、共有バス16を介して他のスヌー
ピングキャッシュ12−2,12−3に対して、上記ヒ
ットされたラインのブロックデータと同一ブロックのデ
ータを無効にするように指示する無効化要求(バス無効
化)と上記ヒットしたラインのブロックデータの先頭ア
ドレス信号を発行する。この無効化要求を受けて、スヌ
ーピングキャッシュ12−2または12−3は、該当ラ
インをINVLID状態にする。したがって、上記ヒッ
トされたラインのブロックデータは他のキャッシュメモ
リ13−2,13−3に共有されなくなり、かつ、主記
憶15の内容と一致しなくなり(CLEAN−SHAR
ED状態のとき)、そのヒットされたラインはDIRT
Y−EXCLUDIVE状態に遷移する。
【0041】次に、プロセッサ11−1がスヌーピング
キャッシュ12−1内のキャッシュメモリ13−1にプ
ロセッサロードミスした場合、キャッシュコントローラ
14−1は共有バス16の使用権を獲得し、共有バス1
6上にロードミス要求(バスロードミス)とアクセス要
求先のアドレス信号を発行する。
【0042】このとき、他のキャッシュメモリ13−2
または13−3内において、上記プロセッサ11−1の
アクセス要求先のアドレスのデータを含むブロックデー
タを格納しているラインがあり、そのラインがDIRT
Y−SHARED状態またはDIRTY−EXCLUD
IVE状態であった場合には、他のキャッシュメモリ1
3−2または13−3は、そのラインに格納されている
ブロックデータをキャッシュメモリ13−1へ供給す
る。
【0043】一方、上記他のキャッシュメモリ13−
2,13−3の上記ラインがその他の状態のとき、また
は他のキャッシュメモリ13−2,13−3に上記ブロ
ックデータを格納しているラインが無いときには、キャ
ッシュメモリ13−1は、主記憶15から上記ブロック
データをロードする。そして、このとき、キャッシュメ
モリ13−1に無効化されたINVALID状態のライ
ンが無く、コピーバックの必要が生じた場合には、スヌ
ーピングキャッシュ12−1は、キャッシュメモリ13
−1から追い出すラインのブロックデータを主記憶15
に書き戻す。
【0044】この結果、上記2通りのいずれの場合で
も、キャッシュメモリ13−1内でプロセッサロードミ
スしたラインは、CLEAN−SHARED状態へ遷移
する。次に、プロセッサ11−1がスヌーピングキャッ
シュ12−1内のキャッシュメモリ13−1にプロセッ
サストアミスした場合、キャッシュコントローラ14−
1は共有バス16の使用権を獲得し、その共有バス16
を介してストアミス要求(バスストアミス)並びにアク
セス先のアドレス信号をを発行する。
【0045】他のキャッシュメモリ13−2または13
−3において、プロセッサ11−1が発行したアクセス
先アドレスのデータを含むブロックデータを有するライ
ンがあり、そのラインの状態がINVALID状態、ま
たはCLEAN−SHARED状態であった場合にはブ
ロックデータは主記憶15からキャッシュメモリ13−
1へ転送される。そして、このとき、キャッシュメモリ
13−1に無効化されたINVALID状態のラインが
無く、コピーバックの必要が生じた場合には、スヌーピ
ングキャッシュ12−1は、キャッシュメモリ13−1
から追い出すラインのブロックデータを主記憶15に書
き戻す。
【0046】一方、上記ラインの状態が、DIRTY−
EXCLUDIVE状態またはDIRTY−SHARE
D状態であった場合は、ブロックデータは上記キャッシ
ュメモリ13−2または13−3からキャッシュメモリ
13−1へ転送される。この後、スヌーピングキャッシ
ュ12−1は、共有バス16を介して、他のスヌーピン
グキャッシュ12−2または12−3に無効化要求を発
行する。これにより他のキャッシュメモリ13−2また
は13−3内の上記ラインは無効化(INVALID状
態)され、キャッシュメモリ13−1内でプロセッサス
トアミスしたラインは、DIRTY−EXCLUDIV
E状態へ遷移する。
【0047】ところで、他のスヌーピングキャッシュが
上述の遷移条件により共有バスを介してバス無効化要求
を発行した場合、スヌーピングキャッシュのキャッシュ
コントローラは、共有バス16上に出力されているアド
レス信号を参照して、自分のキャッシュメモリ内にその
無効化要求に対応するブロックデータと同一ブロックの
データを有するラインが存在するか否かをチェックす
る。そして、存在する場合には、そのラインをINVA
LID状態にする。
【0048】このようにして、バークレイプロトコル
は、一時的に各キャッシュと主記憶との間でその内容が
一致しない場合を補償している。
【0049】
【発明が解決しようとする課題】ところで、密結合マル
チプロセッサシステムにおける無効化/キャッシュ間転
送型のバークレイプロトコルにおいては、上述したよう
にあるプロセッサが自分のキャッシュメモリにプロセッ
サストアヒット(ライトヒット)したとき、主記憶の内
容は更新せずに、他のキャッシュメモリ内に存在する、
上記ヒットしたラインのブロックデータと同一ブロック
のデータを有するラインを無効化させる。この無効化
は、前述したように、上記ヒットしたラインの状態がC
LEAN−SHARED状態またはDIRTY−SHA
RED状態のとき、すなわち上記ヒットしたラインのブ
ロックデータと同一ブロックのデータを有するラインが
他のキャッシュメモリに格納されている可能性がある場
合にのみ実行している。
【0050】ここで、バークレイプロトコルにおけるC
LEAN−SHARED状態とは、前述したように、他
のキャッシュにも当該ラインのデータと同一ブロックの
データが格納されている可能性があり、その当該ライン
のデータと主記憶のデータとが一致している状態であ
る。このように、当該ラインのブロックデータが他のキ
ャッシュメモリに共有されているか否かは厳密には問わ
れておらず、CLEAN−EXCLUSIVE状態も包
含している。
【0051】したがって、バークレイプロトコルでは、
CLEAN−SHARED状態のラインにプロセッサス
トアヒットすると、そのヒットされたラインのブロック
データと同一ブロックのデータが他のキャッシュメモリ
内に格納されていないCLEAN−EXCLUSIV状
態にあった場合にも、上記プロセッサのキャッシュコン
トローラが共有バスの使用権を獲得し、その共有バスを
介して他のスヌーピングキャッシュに無効化要求を発行
してしまう。このような無効化要求の発行は、キャッシ
ュメモリ間のコヒーレンスを補償するために必要では無
いことに加えて、共有バスのトラフィックを無駄に増加
させてしまうのみである。
【0052】一般に、密結合型マルチプロセッサシステ
ムにおいては、あるキャッシュメモリに格納されている
あるラインのブロックデータは、他のキャッシュメモリ
に共有されることは比較的少なく、他のキャッシュメモ
リとは排他的な状態(EXCLUSIVE)となる場合
の方が多い。換言すれば、バークレイプロトコルにおい
て、CLEAN−SHARED状態にあるラインのう
ち、大部分のラインのブロックデータは他のキャッシュ
メモリに共有されていないCLEAN−EXCLUSI
VE状態のデータである。したがって、バークレイプロ
トコルを用いたキャッシュメモリシステムにおいては、
このようなCLEAN−SHARED状態のラインにプ
ロセッサストアヒットしたとき、かなり多くの無駄な無
効化要求が共有バス上に発行され、このことにより共有
バスのトラフィックが著しく増加してしまい、システム
全体のスループットを低下させてしまう。
【0053】この原因は、あるラインのブロックデータ
が主記憶のデータと一致しているときに、そのラインの
ブロックデータが他のキャッシュメモリに共有されてい
ないCLEAN−EXCLUSIVE状態をライン状態
(ラインステート)として設けていないためであると考
えられる。
【0054】してみれば、あるラインのブロックデータ
が主記憶のデータと一致しているときに、そのラインの
ブロックデータが他のキャッシュメモリに共有されてい
るCLEAN−SHARED状態と共有されていないC
LEAN−EXCLUSIV状態との2つのライン状態
に場合分けし、その共有されていないCLEAN−EX
CLUSIV状態のラインにプロセッサストアヒットし
た場合には共有バスに対して無効化要求を発行しないよ
うにすれば、共有バスのトラフィックを減少でき、密結
合型のマルチプロセッサシステムの性能を向上させるこ
とが可能になることは明らかでる。
【0055】この発明の課題は、あるラインのブロック
データが主記憶のデータと一致しているときに、そのラ
インのブロックデータが他のキャッシュメモリに共有さ
れているCLEAN−SHARED状態と共有されてい
ないCLEAN−EXCLUSIV状態との2つのライ
ン状態に場合分けし、その共有されていないCLEAN
−EXCLUSIV状態のラインにプロセッサストアヒ
ットした場合には共有バスに対して無効化要求を発行し
ないようにすることである。
【0056】
【課題を解決するための手段】本発明は、複数のプロセ
ッサが各々スヌープ機能付のキャッシュメモリを有し、
該キャッシュメモリどうしが共有バスで接続され、さら
に該共有バスに前記複数のプロセッサが共通にアクセス
できる共有メモリが接続されている密結合マルチプロセ
ッサシステムにおけるキャッシュコヒーレンス制御を行
うキャッシュメモリシステムを前提とする。
【0057】そして、キャッシュメモリに格納されてい
るブロックデータを格納するあるラインは、そのブロッ
クデータが共有メモリ内の同一ブロックのデータと一致
しているときに、そのブロックデータが他のキャッシュ
メモリにも存在する可能性のあるCLEAN−SHAR
ED状態か、または前記あるブロックデータが他のいず
れのキャッシュメモリにも存在しないCLEAN−EX
CLUSIVE状態のいずれか一方のライン状態をと
り、前記CLEAN−EXCLUSIVE状態となって
いるラインのブロックデータにライトヒットしたときに
は、そのラインを格納しているキャッシュメモリは、前
記共有バスに無効化要求を発行しない。
【0058】
【作用】キャッシュコヒーレンスプロトコルを採用した
キャッシュメモリシステムにおいて、あるラインのブロ
ックデータが共有メモリ内の同一ブロックのデータと一
致し、かつそのラインのブロックデータと同一のブロッ
クデータが他のキャッシュメモリに格納されている状態
をCLEAN−SHARED状態と定義する。
【0059】また、あるラインのブロックデータが共有
メモリ内の同一ブロックのデータと一致し、かつそのラ
インのブロックデータと同一のブロックデータが他のい
ずれのキャッシュメモリにも格納されていない状態をC
LEAN−EXCLUSIVE状態と定義する。
【0060】そして、上記CLEAN−SHARED状
態のラインにライトヒットした場合、そのヒットされた
ラインを格納しているキャッシュメモリは、上記共有バ
スに無効化要求を発行し、他のキャッシュメモリ内に格
納されている上記ヒットされたラインのブロックデータ
と同一ブロックのデータを格納しているラインを無効化
する。
【0061】一方、上記CLEAN−EXCLUSIV
E状態のラインにライトヒットした場合、他のキャッシ
ュメモリにはそのヒットされたラインのブロックデータ
と同一ブロックのデータは存在しないので、そのヒット
されたラインを格納しているキャッシュメモリは、上記
共有バスには無効化要求を発行しない。
【0062】従って、あるラインのブロックデータが主
記憶のデータと一致しているときに、そのラインのブロ
ックデータが他のキャッシュメモリに共有されているC
LEAN−SHARED状態と共有されていないCLE
AN−EXCLUSIV状態との2つのライン状態に場
合分けし、その共有されていないCLEAN−EXCL
USIV状態のラインにプロセッサストアヒットした場
合には共有バスに対して無効化要求を発行しないように
することができる。
【0063】
【実施例】以下、一実施例を図1乃至図4を参照しなが
ら説明する。まずはじめに、本発明の実施例における、
キャッシュメモリ内に格納されるラインのブロックデー
タの状態について説明する。
【0064】本実施例におけるキャッシュメモリ内に格
納されるラインのブロックデータの状態は、上述したバ
ークレープロトコルと同様に、そのラインが有効か無効
か、そのラインのブロックデータが主記憶内の同一ブロ
ックのデータと一致しているか否か、及びそのラインの
ブロックデータと同一ブロックのデータが他のキャッシ
ュメモリに格納されているか否かという状態の組み合わ
せに応じてある1つの状態をとる。
【0065】このようなライン状態(ラインステート)
として、上記のバークレイプロトコルを用いたシステム
においては、INVALID,CLEAN−SHARE
D,DIRTY−SHARED,及びDIRTY−EX
CLUDIVEの4状態が定義されていたが、本実施例
のプロトコルにおいては、上記4つのライン状態に、さ
らにCLEAN−EXCLUSIVEという状態を加
え、5つのライン状態でキャッシュメモリと主記憶間の
コヒーレンスを制御する。
【0066】このCLEAN−EXCLUSIVE状態
は、あるキャッシュメモリ内に格納されているあるライ
ンのブロックデータが主記憶内の同一ブロックのデータ
と一致し、かつ、そのラインのブロックデータと同一ブ
ロックのデータが他のキャッシュメモリには格納されて
いない状態である。
【0067】すなわち、本実施例におけるCLEAN−
SHARED状態は、上記バークレイプロトコルにおけ
るCLEAN−SHARED状態とは異なり、上記ある
ラインのブロックデータが主記憶内の同一ブロックのデ
ータと一致し、かつ、そのラインのブロックデータと同
一ブロックのデータが他のいずれのキャッシュメモリに
も格納されていない状態(CLEAN−EXCLUSI
VE状態)は含まない。
【0068】換言すれば、あるラインのブロックデータ
が主記憶内の同一ブロックのデータと一致していると
き、そのラインのブロックデータが他のキャッシュメモ
リにも共有されているか否かに応じて、CLEAN−S
HARED状態とCLEAN−EXCLUXIVE状態
の2つに場合分けしている。
【0069】尚、その他の3つのライン状態、すなわ
ち、INVALID状態,DIRTY−SHARED状
態,及びDIRTY−EXCLUDIVE状態は、上記
バークレイプロトコルと同様に定義される。
【0070】キャッシュメモリ内の各ラインの基本的な
構成は、従来技術の一例として説明した図5に示す構成
となる。ここで、本実施例と上記バークレイプロトコル
との差異は、本実施例においては、ライン状態として5
つの状態存在するので、状態フラグは少なくとも3ビッ
ト必要になることである。
【0071】次に、本発明の一実施例の密結合型マルチ
プロセッサシステムの構成を、図1に示す。同図におい
て、従来例を説明するために用いた前記図6のブロック
と同一のブロックには、同一の符号を付与しており、一
部機能が異なるものについては同一の符号に“′”を付
加している 図1に示す密結合型マルチプロセッサシステムの構成で
は、前記図6に示す従来の構成に加えて、新たに専用信
号線(Shared信号線)17が設けられている。この専用
信号線17は、各スヌーピングキャッシュ12−1〜1
2−3の各キャッシュコントローラ14−1′〜14−
3′に接続されており、各キャッシュコントローラ14
−1′〜14−3′は、共有バス16上にあるスヌーピ
ングキャッシュ12−i(i=1,2,3)がロードミ
ス要求を発行したとき、他のスヌーピングキャッシュ1
2−j(i≠j;j=1,2,3)は、そのロードミス
が発生したブロックデータと同一ブロックのデータを格
納しているラインが存在するか否かを上記要求キャッシ
ュに通知するためのShared信号を出力するためのもので
ある。
【0072】この場合、上記他のスヌーピングキャッシ
ュは、同一ブロックのデータが存在する場合には、上記
Shared信号をアサートにし、存在しない場合にはネゲー
トにする。
【0073】次に、プロセッサ11−1〜11−3が主
記憶15(共有メモリ)にアクセスしたときの、キャッ
シュメモリ内のラインの状態遷移について、図2,図3
及び図4を参照しながら、上記バークレイプロトコルと
の相違を中心に説明する。
【0074】図2,3は、本実施例における、ラインの
状態遷移及び各スヌーピングキャッシュ12−1′〜1
2−3′の動作をを説明する図である。また、図4は、
本実施例における、ラインの状態遷移図である。
【0075】まず、プロセッサ11−1がスヌープキャ
ッシュ12−1′内のキャッシュメモリ13−1にプロ
セッサロードヒット(リードヒット)した場合は、上記
バークレイプロトコルと同様である。すなわち、プロセ
ッサ11−1がキャッシュメモリ13−1に格納されて
いたブロックデータを読み出し、キャッシュコントロー
ラ14−1′は共有バス16に対して何ら要求を発行せ
ず、上記ヒットされたラインは状態遷移しない。
【0076】次に、プロセッサ11−1がスヌープキャ
ッシュ12−1′内のキャッシュメモリ13−1にプロ
セッサストアヒット(ライトヒット)した場合、そのヒ
ットされたラインのブロックデータと同一ブロックのデ
ータが他のキャッシュメモリ13−2または13−3に
格納されているとき、すなわち上記ヒットされたライン
がCLEAN−SHARED状態またはDIRTY−S
HARED状態のときは、上記バークレイプロトコルと
同様である。すなわち、キャッシュコントローラ14−
1′が共有バス16の使用権を獲得し、その共有バス1
6′を介して他のスヌーピングキャッシュ12−2′,
12−3′に無効化要求を発行して上記他のスヌーピン
グキャッシュ12−2′または12−3′のキャッシュ
メモリ13−2または13−3内の上記ヒットしたブロ
ックデータと同一ブロックデータを格納しているライン
を無効化(INVALID状態)させる。
【0077】また、上記ヒットされたラインがDIRT
Y−EXCLUDIVE状態のときも、上記バークレイ
プロトコルと同様である。すなわち、キャッシュコント
ローラ14−1′は共有バス16に対して何ら要求を発
行しない。
【0078】一方、CLEAN−EXCLUSIVE状
態のラインにプロセッサストアヒットしたときには、キ
ャッシュコントローラ14−1′は、そのヒットされた
ラインの状態フラグを参照して、そのヒットされたライ
ンのブロックデータと同一ブロックのデータが他のキャ
ッシュメモリ13−2及び13−3には存在しないと判
断する。そして、キャッシュコントローラ14−1′
は、他のスヌーピングキャッシュ12−2′及び12−
3′に対して無効化要求を発行する必要がないと判断
し、共有バス16に対して何ら要求を発行しない。
【0079】このように、あるキャッシュメモリに格納
されているあるラインのブロックデータが主記憶15内
のデータと一致している(CLEAN)ラインにプロセ
ッサストアヒットした場合、そのヒットされたラインの
状態がそのラインのブロックデータが他のキャッシュメ
モリに共有されているCLEAN−SHARED状態と
共有されていないCLEAN−EXCLUSIVE状態
とに分けて設定するようにしたので、上記CLEAN−
SHARED状態のときは共有バス16上に無効化要求
を発行するが、上記CLEAN−EXCLUSIVE状
態のときは共有バス16上には無効化要求を発行しない
ようにすることが可能になった。この結果、不必要な無
効化要求を頻繁に発行して共有バス16のトラフィック
を増加することを防止することが可能になっている。
【0080】また、プロセッサ11−1がスヌーピング
キャッシュ12−1′内のキャッシュメモリ13−1に
プロセッサロードミスした場合、キャッシュコントロー
ラ14’−1は共有バス16の使用権を獲得し、その共
有バス16を介してロードミス要求(バスロードミス)
を発行する。
【0081】すると、他のスヌーピングキャッシュ12
−2′,12−3′のキャッシュコントローラ14−
2′,14−3′は、共有バス16上に発行されたキャ
ッシュコントローラ14−1′の上記ロードミス要求を
検出する。そして、このロードミス要求を検出すると、
キャッシュコントローラ14−2′,14−3′は、各
々のキャッシュメモリ13−2,13−3内に、プロセ
ッサ11−1がアクセスしたアドレス(このアドレス信
号も共有バス16上から取り込む)に対応するアドレス
のデータを含むブロックデータ(該当ブロックデータ)
が有効な状態で格納されているか否か調べる。
【0082】そして、上記該当ブロックデータが有効な
状態で格納されている場合には、キャッシュコントロー
ラ14−2′または14−3′は、上記専用信号線17
上に出力されるShared信号をアサートする。各キャッシ
ュコントローラ14−2′,14−3′から出力される
Shared信号は、ワイヤーORされる。したがって、少な
くとも1つのキャッシュコントローラ、すなわち、少な
くとも14−2′または14−3′のいずれか一方でも
Shared信号をアサートすれば、ロードミス要求を発行し
たキャッシュコントローラ14−1′は上記Shared信号
がアサートになったことを検出し、該当ブロックデータ
が他のキャッシュメモリ13−2または13−3に共有
されていることを認識できる。
【0083】上記ロードミス要求によって生じるプロセ
ッサ11−1への該当ブロックデータの転送は、上記Sh
ared信号をアサートしたキャッシュコントローラ14−
2′または14−3′に管理されているキャッシュメモ
リ13−2または13−3内の該当ブロックデータのラ
イン状態によって異なる。すなわち、上記ラインのブロ
ックデータが主記憶15内の同一ブロックのデータと一
致しているCLEAN−EXCLUSIVE状態,また
はCLEAN−SHARED状態のときは、該当ブロッ
クデータは主記憶15からスヌーピングキャッシュ12
−1′へ転送され、上記ラインのブロックデータが主記
憶15内の同一ブロックのデータと一致していないDI
RTY−EXCLUDIVE状態,またはDIRTY−
SHARED状態であれば、他のスヌーピングキャッシ
ュ12−2′または12−3′がそのラインの該当ブロ
ックデータをスヌーピングキャッシュ12−1′に転送
する。この後、上記転送されたブロックデータはキャッ
シュメモリ13−1内の当該ラインに、CLEAN−S
HARED状態として格納される。
【0084】尚、スヌーピングキャッシュからの転送の
方が、主記憶からの転送よりも高速であるシステムの場
合には、CLAEN−EXCLUSIVE状態またはC
LEA−SHARED状態であってもスヌーピングキャ
ッシュ間でブロックデータの転送を行う方が望ましい。
【0085】一方、他のキャッシュメモリ13−2,1
3−3内に、プロセッサ11−1がアクセスしたアドレ
スのデータを含む該当ブロックデータが格納されていな
い場合、あるいは該当するブロックデータが無効状態
(INVALID)の場合は、キャッシュコントローラ
14−2′,14−3′は、専用信号線17上に出力す
るShared信号をネゲートにして自己のキャッシュメモリ
13−2,13−3内に、該当ブロックデータが無い旨
を通知する。他のすべてのキャッシュコントローラ14
−2′及び14−3′がShared信号をネゲートすること
により、キャッシュコントローラ14−1′は、該当ブ
ロックデータが他のいずれのキャッシュメモリ13−
2,13−3にも共有されていないことを認識する。こ
のときのスヌーピングキャッシュ12−1への該当ブロ
ックデータの転送は主記憶15から行われ、その後、キ
ャッシュメモリ13−1内のその該当ブロックデータが
格納されたラインは、CLEAN−EXCLUSIVE
状態となる。
【0086】プロセッサ11−1がスヌーピングキャッ
シュ12−1′内のキャッシュメモリ13−1にプロセ
ッサストアミスした場合は、従来例と同様なブロックデ
ータ転送が行われ、キャッシュメモリ13−1に格納さ
れるブロックデータのライン状態は、DIRTY−EX
CLUDIVE状態になる。
【0087】最後に、あるラインがCLEAN−EXC
LUSIVE状態であるときに、他のキャッシュコント
ローラからロードミス要求,ストアミス要求を受けた場
合について説明する。
【0088】まず、他のスヌーピングキャッシュ12−
2′または12−3′においてプロセッサロードミスが
発生した場合、キャッシュコントローラ14−1′は共
有バス16上に出力された他のスヌーピングキャッシュ
12−2′または12−3′からのロードミス要求を検
出すると、自分のキャッシュメモリ13−1に該当ブロ
ックデータが格納されているか否かをタグ部のアドレス
を検索して判断し、格納されている場合には、タグ部の
状態フラグを検索する。そして、キャッシュコントロー
ラ14−1′は、現在のライン状態がCLEAN−EX
CLUSIVE状態であると認識すると、専用信号線1
7上に出力するShared信号をアサートにする。その後、
上記該当ブロックデータのラインの状態を、CLEAN
−EXCLUSIVE状態からCLEAN−SHARE
D状態へ遷移させる。
【0089】次に、他のスヌーピングキャッシュ12−
2′または12−3′においてプロセッサストアミスが
発生した場合、キャッシュコントローラ14−1′は共
有バス16上に出力された他のスヌーピングキャッシュ
12−2′または12−3′からのストアミス要求を検
出すると、自分のキャッシュメモリ13−1に該当ブロ
ックデータが格納されているか否かを判断し、格納され
ている場合には、そのブロックデータが格納されている
ラインを無効にするために、CLEAN−EXCLUS
IVE状態からINVALID状態へ遷移させる。
【0090】以上説明した以外の状態遷移条件での動作
は、上記バークレイプロトコルを採用した密結合型マル
チプロセッサシステムと同じである。尚、メモリの構成
は、上記実施例に限定されることなく、ブロックデータ
のみを格納するメモリと、そのメモリに格納されている
ブロックデータのアドレス及び状態を管理するディレク
トリテーブルとから成る構成にしてもよい。この様な構
成には、フルアソシアティブ方式、ダイレクトマップ方
式、セットアソシアティブ方式等がある。
【0091】
【発明の効果】この発明によれば、あるラインのブロッ
クデータが主記憶のデータと一致しているときに、その
ラインのブロックデータが他のキャッシュメモリに共有
されているCLEAN−SHARED状態と共有されて
いないCLEAN−EXCLUSIV状態との2つのラ
イン状態に場合分けし、その共有されていないCLEA
N−EXCLUSIV状態のラインにプロセッサストア
ヒットした場合には共有バスに対して無効化要求を発行
しないようにしたので、共有バスのトラフィックを減少
させることができ、密結合型マルチプロセッサシステム
の性能を向上さ背ることが可能になる。
【図面の簡単な説明】
【図1】本発明のキャッシュメモリシステムのブロック
図である。
【図2】本発明のキャッシュメモリシステムにおける、
ラインの状態遷移、及び各キャッシュメモリの動作を説
明する図(その1)である。
【図3】本発明のキャッシュメモリシステムにおける、
ラインの状態遷移、及び各キャッシュメモリの動作を説
明する図(その2)である。
【図4】本発明のキャッシュメモリシステムににおけ
る、ラインの状態遷移図である。
【図5】従来のキャッシュメモリシステムのブロック図
である。
【図6】キャッシュメモリに格納されるラインの構成例
を示す図である。
【図7】従来のバークレイプロトコルを用いたキャッシ
ュメモリシステムにおける、ラインの状態遷移、及び各
キャッシュメモリの動作をを説明する図(その1)であ
る。
【図8】従来のバークレイプロトコルを用いたキャッシ
ュメモリシステムにおける、ラインの状態遷移、及び各
キャッシュメモリの動作をを説明する図(その2)であ
る。
【図9】従来のバークレイプロトコルを用いたキャッシ
ュメモリシステムにおける、ラインの状態遷移図であ
る。
【符号の説明】
11−1〜11−3 プロセッサ 12−1′〜12−3′ スヌーピングキャッシュ 13−1〜13−3 キャッシュメモリ 14−1′〜14−3′ キャッシュコントローラ 15 主記憶 16 共有バス 17 専用信号線

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサが各々スヌープ機能付の
    キャッシュメモリを有し、該キャッシュメモリどうしが
    共有バスで接続され、さらに該共有バスに前記複数のプ
    ロセッサが共通にアクセスできる共有メモリが接続され
    ている密結合マルチプロセッサシステムにおけるキャッ
    シュコヒーレンス制御を行うキャッシュメモリシステム
    において、 キャッシュメモリに格納されているブロックデータを格
    納するあるラインは、そのブロックデータが共有メモリ
    内の同一ブロックのデータと一致しているときに、その
    ブロックデータが他のキャッシュメモリにも存在する可
    能性のあるCLEAN−SHARED状態か、または前
    記あるブロックデータが他のいずれのキャッシュメモリ
    にも存在しないCLEAN−EXCLUSIVE状態の
    いずれか一方のライン状態をとり、 前記CLEAN−EXCLUSIVE状態となっている
    ラインのブロックデータにライトヒットしたときには、
    そのラインを格納しているキャッシュメモリは、前記共
    有バスに無効化要求を発行しないことを特徴とするキャ
    ッシュメモリシステム。
JP5002761A 1993-01-11 1993-01-11 キャッシュメモリシステム Pending JPH06208507A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5002761A JPH06208507A (ja) 1993-01-11 1993-01-11 キャッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5002761A JPH06208507A (ja) 1993-01-11 1993-01-11 キャッシュメモリシステム

Publications (1)

Publication Number Publication Date
JPH06208507A true JPH06208507A (ja) 1994-07-26

Family

ID=11538325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5002761A Pending JPH06208507A (ja) 1993-01-11 1993-01-11 キャッシュメモリシステム

Country Status (1)

Country Link
JP (1) JPH06208507A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
JP2006048406A (ja) * 2004-08-05 2006-02-16 Fujitsu Ltd メモリシステム制御装置およびメモリシステム制御方法
US9183149B2 (en) 2012-04-17 2015-11-10 Samsung Electronics Co., Ltd. Multiprocessor system and method for managing cache memory thereof
CN113467946A (zh) * 2021-06-30 2021-10-01 广东赛昉科技有限公司 vector访存cache的一种实现方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
JP2006048406A (ja) * 2004-08-05 2006-02-16 Fujitsu Ltd メモリシステム制御装置およびメモリシステム制御方法
US9183149B2 (en) 2012-04-17 2015-11-10 Samsung Electronics Co., Ltd. Multiprocessor system and method for managing cache memory thereof
CN113467946A (zh) * 2021-06-30 2021-10-01 广东赛昉科技有限公司 vector访存cache的一种实现方法及系统

Similar Documents

Publication Publication Date Title
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5241641A (en) Hierarchical cache memory apparatus
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US7305524B2 (en) Snoop filter directory mechanism in coherency shared memory system
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
US6760819B2 (en) Symmetric multiprocessor coherence mechanism
US6629205B2 (en) System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem
US5119485A (en) Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US5551001A (en) Master-slave cache system for instruction and data cache memories
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US20020053004A1 (en) Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
US20020138698A1 (en) System and method for caching directory information in a shared memory multiprocessor system
JPH0659976A (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
JPH07253928A (ja) 2重化キャッシュ・スヌープ機構
US20020112129A1 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache
JP2000010860A (ja) キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US8332592B2 (en) Graphics processor with snoop filter
US20050204088A1 (en) Data acquisition methods
US20020112128A1 (en) Mechanism for collapsing store misses in an SMP computer system
US5761724A (en) Write-invalidate cache system for a split transaction bus based shared memory multiprocessor
US6477622B1 (en) Simplified writeback handling
KR20060102565A (ko) 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법
JPH0816474A (ja) マルチプロセッサシステム