JP3510240B2 - キャッシュメモリー付マルチ処理システム - Google Patents

キャッシュメモリー付マルチ処理システム

Info

Publication number
JP3510240B2
JP3510240B2 JP50764589A JP50764589A JP3510240B2 JP 3510240 B2 JP3510240 B2 JP 3510240B2 JP 50764589 A JP50764589 A JP 50764589A JP 50764589 A JP50764589 A JP 50764589A JP 3510240 B2 JP3510240 B2 JP 3510240B2
Authority
JP
Japan
Prior art keywords
data
cache
entity
bus
monitoring
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
Application number
JP50764589A
Other languages
English (en)
Other versions
JPH04501027A (ja
Inventor
シュワルツ,マーティン・ジェイ
ベッカー,ロバート・ディー
Original Assignee
エルジー・エレクトロニクス・インコーポレーテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22795556&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3510240(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by エルジー・エレクトロニクス・インコーポレーテッド filed Critical エルジー・エレクトロニクス・インコーポレーテッド
Publication of JPH04501027A publication Critical patent/JPH04501027A/ja
Application granted granted Critical
Publication of JP3510240B2 publication Critical patent/JP3510240B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache 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)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 【技術分野】
本発明はキャッシュメモリーを使用したマルチ処理シ
ステムに関し、特にデータの完全性を保つ手段と方法に
関する。
【背景技術】
高速、小容量のキャッシュメモリーシステムは周知で
ある。各種のキャッシュメモリーシステムがあるが、周
知のシステムは書通し(ライトスルー)“write throu
gh"キャッシュと書戻し(ライトバック)“write bac
k"キャッシュである。ライトスルーキャッシュでは、デ
ータはキャッシュに書込むと同時に主メモリーに書込ま
れる。かくして、キャッシュは常に主メモリーに記憶さ
れるデータと同じデータを含み、データの完全性(同一
性)をシステム全体について保たれる。ライトスルー構
造の問題点は過大量のバス移送量を生じ、ライトスルー
キャッシュへの書込と同時に主メモリーへの書込が生ず
る。この構造の利点は常に最も更新されたデータがどこ
にも存在する点である。 ライトバックキャッシュを使用する構造はバスの移送
量が著しく減少する。最初にデータを主メモリーからラ
イトバックキャッシュに書込み、中央処理ユニット(CP
U)が次に動作に使用する。CPUがデータをキャッシュに
書戻して修正したとすればダーティービットがセットさ
れ、このデータがキャッシュに独自であり、主メモリー
に存在するデータとは異なることを示す。このキャッシ
ュでは通常は回修されたデータを主メモリーに書込んで
データの完全性を保つプロセスは使用しない。明らかに
ダーティービットはデータの同一性を保つことはできな
い。ライトバックキャッシュを1個のプロセッサと共に
使用する場合にはデータ処理は簡単である。しかし、2
個以上のCPUが同じ主メモリーを使用する時はデータ処
理は複雑になる。 このシステムでは2個以上のキャッシュメモリーが存
在することが多い。キャッシュのエントリ位置には有効
/無効ビットが存在する。CPUが他のキャッシュがメモ
リーに書き込み、このキャッシュが同じデータアドレス
を有する場合にはキャッシュを更新せずに自分のキャッ
シュエントリを無効とするる。かくしてCPUが特定のデ
ータアドレスでキャッシュにアクセスした時に無効のエ
ントリを見て主メモリーに再び向い、時間のかかるプロ
セスとなる。 本発明の目的は、マルチ処理キャッシュ環境のデータ
の完全性(インテグリティ)を保ち、主メモリーに対す
る余分なアクセスを必要としないようにすることであ
る。 本発明の他の目的は複数のCPUが関連するキャッシュ
メモリーを経てデータをアクセスし、各CPUは常に最も
最近更新されたデータをアクセスすることができるよう
にすることである。 本発明の別の目的はマルチ処理システムを提供し、ラ
イトバックキャッシュを使用し、主メモリーアクセスを
最小とし、同時にシステム全体のデータの完全性を保つ
ことである。 本発明の他の目的は、キャッシュメモリーシステムを
提供し、有効/無効データ表示の使用を廃止することで
ある。
【発明の開示】
本発明によるマルチ処理システムは少なくとも2個の
CPUと、主メモリー手段とバス手段とを含む。キャッシ
ュメモリー手段が用いられて各CPUをバス手段に結合
し、さらにキャッシュメモリー手段内に記憶されたデー
タユニットのステータスを示す手段を含む。あるステー
タス表示は記憶位置の内容が主メモリーから受信されて
から修正されたか否かを示し、他の表示は記憶位置の内
容が他のキャッシュメモリー手段内に存在するか否かを
示す。制御手段を含み、CPUからデータユニットを受けC
PUに関連するキャッシュメモリー手段に記憶させたとき
に、どのデータユニットが他のCPUに関連するキャッシ
ュメモリー手段内にも記憶されているものとして示され
ているかを確認し、このCPUデータユニットは主メモリ
ー手段にも書込まれている。このプロセス間に、他のキ
ャッシュメモリー手段がバス手段を監視して対応するデ
ータユニットを更新する。各キャッシュメモリー手段に
対してバス監視手段が与えられ、すべての主メモリーへ
の書き込み及び主メモリからの読み出しを監視してシス
テム全体のデータの完全性を保つ。 [図面の簡単な説明] 図1は本発明によるデータ処理システムのアドレスと
データのフォーマットを示す図である。 図2a、2bは組合せられて本発明による高レベルブロッ
ク図を示す。 図3はメモリーに対するCPUの読み出し要求間に生ず
るイベントのシーケンスを示すデシジョンツリーであ
る。 図4は非要求CPU/キャッシュがシステムバスを監視し
読出要求者にデータ戻しを行う時に生ずるイベントのシ
ーケンスを示すデシジョンツリーである。 図5はCPUのメモリーへの書込に際して生ずるイベン
トのシーケンスを示すデシジョーンツリーである。 図6は非要求CPU/キャッシュが書込要求者によるメモ
リーへの書込を監視する際に生ずるイベントのシーケン
スを示すデシジョンツリーである。 図7は非要求CPU/キャッシュがメモリーから要求側CP
U/キャッシュへの多数ワード読み出しを監視する際に生
ずるイベントのシーケンスを示すデシジョンツリーであ
る。 図8はメモリーからの多数ワードデータ読出しを示す
フローチャートである。 図9はデータ戻しの間にキャッシュ間に生ずる調停を
示すフローチャートである。 図10a、10b、10cは本発明によるタイミング線図であ
る。
【発明を実施するための最良の形態】
本発明によるデータ処理システムは図1に示すアドレ
スおよびデータフォーマットを使用する。バイトは8ビ
ットとし、ワードは4バイトとする。メモリーの各位置
は2ワード(ダブルワード)を記憶し、バイトレベルで
アドレス指定可能とする。何れのバイトも個々にアドレ
ス指定、読み、書き可能であり、バイト、ワード、ダブ
ルワード(ダブルワード)の組合せが可能である。通常
はこのシステム内で転送するデータはダブルワードとす
る。 アドレスフォーマットについて、28ビットをアクティ
ブに使用し、主メモリーのフィジカル(物理)アドレス
を構成し、そこにデータのサブセット(例えばバイト)
を見出し得る。フィジカルアドレスの一部を使用して、
ライトバックキャッシュメモリー内の位置をアクセス及
び識別する。各キャッシュは12ビット(4−16ビット)
のフィジカルアドレスを使用してデータワードを識別
し、これら12ビットをタグと称する。フィジカルアドレ
スの他の部分、即ちビット17−28を使用してキャッシュ
メモリー内の記憶位置のアドレス(キャッシュアドレ
ス)とする。キャッシュアドレスはキャッシュメモリー
内の記憶位置の基準となるがタグはその記憶位置に実際
に記憶されたデータを識別する。 キャッシュメモリーへのアクセスはCPUからのフィジ
カルアドレスの到着によって開始する。キャッシュはキ
ャッシュアドレスを使用してメモリー位置の1個にアク
セスする。次に、受信したフィジカルアドレスのタグ部
分をキャッシュアドレスに記憶されたデータのタグ部分
と比較して一致しているか否かを定め、それによってヒ
ットが生じたことを示し、アクセスし、書き、又は変更
又は利用すべき正当なデータがフィジカルアドレスによ
って実際に指定される。一致していない場合(ミス)の
システムの代表的応答は、要求されたデータの主メモリ
ーに対する読み出し要求の発生である。 上述の通り、データフォーマットは長さ2ワードであ
り、各ワードは32ビットであり、8ビットのバイト4個
を含む。また、パリティビットが組合されるが本発明の
説明には無関係である。 次の説明において留意すべきことは、本発明はキャッ
シュデータが常にシステム内で最新であることを確実に
してデータの完全性を保つことである。かくしてキャッ
シュデータに関する有効、無効の表示はなく、キャッシ
ュのデータは常にその不変性が有効(即ち最新)である
ことが保証される。 これに対して、有効、無効表示を使用するキャッシュ
システムは無効データユニットをアドレスした時に不可
避的にキャッシュミスの数を累積する。このシステムで
は有効データユニットを受けた時にキャッシュ内に置
き、次に要求者に提示される。本発明はこの不必要なメ
モリーサイクルを避け、有効無効データのリストやディ
レクトリの必要なく、メモリーコントローラがキャッシ
ュ動作の記録を保管する必要がない。 本発明のキャッシュメモリーでは、表示は、主メモリ
ーからアクセスされてからの各キャッシュデータワード
の修正の状態(例えば、ダーティー、又は非ダーティ
ー)に関係し、また他のキャッシュストア内にあるか否
か(例えばシェア又は非シェア)に関係する。この表示
はシステムが常にキャッシュデータワードを最新にし、
要求された時に更新することを確実にする。キャッシュ
ストアが要求されたデータを持たない場合でも、このデ
ータが他のキャッシュストア内に存在する場合には、要
求されたキャッシュストアに直に移送する手段を有す
る。 本発明は更に、2個以上のCPUが同時に1個のワード
内のバイトを修正しようとする場合の特別な手順の手段
を必要としない。本発明はこの修正を通常動作の間に行
う。 定義によって、本発明のシステムのキャッシュのデー
タは最新であるため、システム動作が開始されれば、各
キャッシュはデータで充満する必要がある。このため
に、主メモリーからデータを無作為に選択して各キャッ
シュストアに書き込み、記憶し、システムが始動すれば
主メモリーのデータは最新と見なされる。システムは後
述する通りに次の動作を開始する。 図2は、少なくとも2個のCPU10、12を含むマルチプ
ロセッサシステムのハイレベルブロック図を示す。各CP
Uはバーチャルアドレスシステムによって動作する。し
かし、内部CPU及びメモリー動作が実行されれば、バー
チャルアドレスはフィジカルアドレスに変換され、アド
レスの示すデータを記憶する主メモリー14内の実際のア
ドレス位置を示す。アドレス変換はアドレス変換器16、
16'によって行い、結果的なフィジカルアドレスはマル
チプレクサ18、18'を経てフィジカルアドレスレジスタ2
0、20'に供給される。各CPUとそれに関連するキャッシ
ュメモリーシステムとは同一であるので、CPU10のみを
説明し、CPU12は同様であり、同じ符号にプライムを付
して示す。 キャッシュアドレス(即ちビット17−28)に対応する
フィジカルアドレスレジスタ20内に存在するフィジカル
アドレスの部分はケーブル22を経てキャッシュバス24に
供給される。キャッシュバス24にはキャッシュデータス
トア26、キャッシュタグストア28、ダーティービットス
トア30、シェア(shared)ビットストア32とバス監視キ
ャッシュタグストア54を接続する。ケーブル27はCPU10
からキャッシュデータストアへの直接入力用である。キ
ャッシュデータストア26は32Kバイトメモリーであり、4
Kライン深さ、64ビット(8バイト)幅とする。このキ
ャッシュストアの各ラインはダブルワードを記憶する。
キャッシュタグストア28は4Kライン深さ、13ビット幅と
し、フィジカルアドレスのタグ部分を記憶し、キャッシ
ュデータストア26の何処に対応するデータが記憶される
かをタグが規定する。各データのダブルワードはフィジ
カルアドレスと関連し、ダブルワードを記憶した主メモ
リー14の位置を示す。キャッシュタグストア28の各ライ
ンはキャッシュデータストア26内のデータストアアドレ
スの位置に対応し、このキャッシュデータストアアドレ
スに記憶されたデータと関連するフィジカルアドレスの
タグ部分を含む。 ダーティービットレジスタ30とシェアビットレジスタ
32は夫々4Kライン深さとする。ダーティービットレジス
タ30の任意のラインの“l"ビットはキャッシュデータス
トア26の対応するライン内のデータが、主メモリー14の
対応する記憶位置内のデータよりも新しいことを示す。
ダーティービットレジスタ30のラインの“0"設定は、キ
ャッシュデータストア26内の対応するエントリーが、主
メモリー内のその位置に出現するデータと同じである
(例外は後述する)ことを表示する。シェアビットレジ
スタ32のラインの1にセットしたビットは、システム内
の他のキャッシュが同じエントリーを含み得ることを示
す。シェアビットレジスタ32のラインの0にセットした
ビットは、他のキャッシュが同じエントリーを持たない
ことを示す。 フィジカルアドレスレジスタ28では、ケーブル34がフ
ィジカルアドレスのタグ部分(ビット4−16)をアクセ
スして、比較器36に供給する。また、キャッシュタグス
トア28からのケーブル38は、比較器36に、記憶した選択
タグを供給する。比較が生じたときに、両タグが等しい
ことを示す(ヒット)時には、ライン39を経て信号がキ
ャッシュコントローラ40に送られる。 キャッシュコントローラ40及び他の動作用および制御
用のエンティティ(装置)は個別のエンティティとして
示すが、その機能は後述する通りCPUに組合せられ、完
全に独立したエンティティではない。 ケーブル42、44はキャッシュコントローラ40にキャッ
シュバス24からキャッシュアドレスビットを、及びレジ
スタ20から完全なフィジカルアドレスを夫々供給する。
ライン43、45はキャッシュコントローラ40に対してのダ
ーティービットとシェアビットのセッティングと読み出
しの手段を提供する。キャッシュコントローラ40は、ケ
ーブル42を経てキャッシュバス24に信号を供給し、キャ
ッシュデータストアトア26、キャッシュタグストア28、
ダーティービットレジスタ30、シェアビットレジスタ3
2、バス監視キャッシュタグストア54の書込み、読出し
を制御する。 図2に示すシステムの主エレメント間の通信は、シス
テムバス242で生ずる。実際はシステムバス242は3本の
別のバスシステム、即ち、データバス102、アドレスバ
ス104、制御バス106を含む。制御バス106は、主制御ラ
イン53、シェアライン55(すべてのキャッシュコントロ
ーラに接続)、バスロックライン59(システムバス242
に接続されたすべてのユニットによって監視される)、
ホールドライン(保持ライン)ライン57、57'から成
る。保持ライン57はキャッシュコントローラ40から出
て、保持ライン57'はキャッシュコントローラ40'から出
る。両保持ライン57、57'はシステムバス242に接続され
たすべてのユニットによって監視される。 各保持ライン57、57'及びロックライン59はほぼ同様
な機能(システムバスからの他の機能を除く)を行う。
キャッシュコントローラが保持ラインをアサートした時
は、システムバスの他の潜在的使用者は、保持ラインが
解放されるまではバスに接続されない。たとえば、後述
する通り、キャッシュコントローラは、システムが他の
要求者へ戻されるのを監視しているときに、それ自体の
キャッシュストア内に存在する場合がある。この場合に
は監視するキャッシュコントローラは保持ラインをセッ
トし、データ要求者に対して、多くのデータが入力する
のでシステムバスに対しての接続を解放できないことを
表示する。かくして保持ラインは、データ要求者が利用
可能な最新のデータを確実に受取るまでは、次の個々の
トランザクションが生ずるのを防ぐ。 バスロックライン59に関しては、バスに接続されたエ
ンティティ(装置)はアクセスを要求する必要があり、
他の高次の優先順位のエンティティが同様の要求で待っ
ていないことをシステムが確認した後にアクセスが許可
される。エンティティがバスロックライン59に対するア
クセスが許可されてそれをアサートすれば、このエンテ
ィティとメモリー制御ユニット254のみがシステムバス
にアクセス可能である。このアサートするエンティティ
が読み要求を出せば、メモリー制御ユニット254は応答
可能であり、他のエンティティが主メモリーにアクセス
して要求したデータを変更するおそれはない。特定の動
作を完了すれば、バスロックライン59は解放され、他の
要求エンティティが利用可能となる。 データバス102はすべての主サブシステム間(キャッ
シュメモリーシステムと主メモリー14との間など)にデ
ータを搬送する。各キャッシュメモリーはデータバスイ
ンターフェース50を有し、データバス102との間のアク
セスを行う。同様にして、アドレスバス104はアドレス
バスインターフェース52を経て各キャッシュメモリーに
よってアクセスされる。制御バス106はケーブル49によ
ってキャッシュコントローラ40に接続され、各種システ
ム制御信号に対する所要の交通路となる。各バス102、1
04、106は更にメモリー制御ユニット254に接続され、す
べての主メモリー動作を制御する。各バス102、104、10
6は更に、I/Oインターフェース61に接続され、接続され
た入力出力装置と各種システムバスとの間の移送を制御
し、かつ、システム制御インターフェースユニット63に
接続されてシステム初期設定制御と診断を行う。 データの完全性を確実にするための各キャッシュメモ
リーの重要な部分はバス監視キャッシュタグストア54で
ある。バス監視キャッシュタグストア54はキャッシュタ
グストア28と同様な構成であり、キャッシュタグストア
28の含むものと同一なタグのセットを含む。 アドレスバスインターフェース52がアドレスバス104
上のフィジカルアドレスを監視する時は、そのアドレス
をケーブル56を経て外部アドレスレジスタ58に伝達す
る。外部アドレスレジスタ58からの出力ケーブル60は監
視されるフィジカルアドレスのキャッシュアドレス部分
を送り、バス監視キャッシュタグストア54の対応メモリ
ー線を読み出し、ケーブル62を経て比較器64に送る。比
較器64の他の入力はケーブル66に生じ、それは外部アド
レスレジスタ58に記憶されたフィジカルアドレスのタグ
部分である。比較器64からの同一の表示はライン67を経
てキャッシュコントローラ40に供給される。キャッシュ
コントローラ40に対する他の入力は、ケーブル56、68を
経て、アドレスバスインターフェース52によって監視さ
れた完全フィジカルアドレスを送る。キャッシュコント
ローラ40はライン70、72上の信号を経て、アドレスバス
インターフェース52とデータバスインターフェース50と
の動作を制御する。データバスインターフェース50はア
ドレスバスインターフェース52とほぼ同様に作動する
が、データバス102に生ずるデータをとらえて、指令に
よってケーブル51を通じてキャッシュデータストア26に
送る。 図3(図2と関連する)はデシジョンツリーを示し、
CPU10が読出し要求を主メモリー14に送ったときに生ず
る動作を示す。この場合に、CPU10は読み出し要求をケ
ーブル80を経てキャッシュコントローラ40に送る。予
め、メモリーから読み出される要求されるデータのフィ
ジカルアドレスがCPU10によってフィジカルアドレスレ
ジスタ20に挿入されている。キャッシュコントローラ40
は次に、フィジカルアドレスレジスタ20のタグ部分をキ
ャッシュタグレジスタ28に記憶されたタグと比較するよ
うにする。比較器36で一致が検出されれば、ライン38を
経てキャッシュコントローラ40にヒットを示す信号を供
給する。キャッシュコントローラ40が所定時間以内にヒ
ット信号を受けない時は、ミス信号が発生したと見な
し、対応するデータがキャッシュデータストア26内にな
いことを示す。同様に、フィジカルアドレスレジスタ20
内のキャッシュアドレスは、ライン43、45を経てダーテ
ィービット及びシェア状態ビットを読み出してキャッシ
ュコントローラ40に送る。かくしてキャッシュコントロ
ーラ40は捜索するデータがキャッシュデータストア26に
あるか否か(ヒット又はミス)、ダーティーか否か、シ
ェアか否かを知る。 図3に示す通り、デシジョンツリーの上部4本の枝は
捜索中のデータがキャッシュデータストア26内にあるこ
とを示す。この場合には、データがダーティか否か、シ
ェアか否かは無関係であり、キャッシュコントローラ40
はキャッシュデータストア26に指令して要求されたデー
タをケーブル27を経てCPU10に読み出す。 これに対して、キャッシュコントローラ40が、要求さ
れたデータがキャッシュデータストア26内になく(ミ
ス)、キャッシュデータストア26内のアドレスされた位
置に記憶されたデータがダーティーでシェアであると検
出した時は、次の一連の作動を行う。最初に、キャッシ
ュコントローラ40はメモリー制御ユニット254に主メモ
リー読出し要求を発し、フィジカルアドレスレジスタ20
内に記憶されているフィジカルアドレス位置からのデー
タを要求することを示す。次にメモリー制御ユニット25
4は主メモリー14内のフィジカルアドレスから要求され
たデータをアクセスして、データバス102を経てデータ
バスインターフェース50に供給する。このデータがキャ
ッシュデータストア26に書込まれる前に、キャッシュデ
ータストア26内のこのアドレスに現在記憶されている希
望されないデータをセーブする必要がある。希望されな
いデータはダーティーであるため、ケーブル51とデータ
バスインターフェース50を経て主メモリー14に書戻す。
かくして、主メモリー14内のデータは更新され、キャッ
シュデータストア26のアドレス位置に現存する希望され
ないダーティーデータに対応するようにされる。このア
ドレスに対応するダーティービットはリセットされて0
とされ、データバスインターフェース50は、指令され
て、要求されたデータ(今はデータバスインターフェー
ス50内に保持されている)を、フィジカルアドレス20の
指示したキャッシュアドレスでキャッシュデータストア
26内に書く。同時に、要求されたデータのタグ部分をキ
ャッシュタグストア28及びバス監視キャッシュタグスト
ア54に供給する。これに対応するシェアビットストア32
内のシェアビットは、制御バス106に出現するバスシェ
ア信号に応じて更新される(この動作は後述する)。次
に、キャッシュデータストア26に新規に入ったデータは
ケーブル27を経てCPUに読み戻される。 各キャッシュコントローラは2種の動作に対して連続
的にシステムバス242の監視を行う。即ち、(a)主メ
モリー14へのデータ書込み及び(b)読み出し要求を満
足するための主メモリー14からのデータ戻しである。こ
の監視は、読出し又は書込み要求がどこから発生するか
否かに無関係である(たとえば、キャッシュ/CPU、シス
テムバスインターフェース、システム制御インターフェ
ース、I/Oインターフェース)。この連続監視はデータ
の完全性を保つのに著しく有効である。 図2に戻って、キャッシュコントローラ40が制御バス
106にデータ読み出し要求を発したならば、この信号は
キャッシュコントローラ40'によって感知されて、アド
レスバスインターフェース52'に指令して、アドレスバ
ス104に次に送られるアドレスをラッチさせる。アドレ
スバスインターフェース52'は、要求されたフィジカル
アドレスをアドレスバスからラッチして、外部アドレス
レジスタ58'に置く。そこで、そのタグ部分を使用し
て、バス監視キャッシュタグストア54'が、外部アドレ
スレジスタ58'に今挿入されたアドレスタグ部分に相当
するタグを有するか否かを判定する。比較が成立すれ
ば、キャッシュコントローラ40'はホールド信号(保持
信号)を制御バス106の保持ラインにセットし、キャッ
シュコントローラ40に、更なるデータが潜在的に現存し
ており、システムバス接続を解放しないように伝える。
キャッシュコントローラ40'は更に、キャッシュデータ
ストア26'内のデータがダーティーか否かを定める。ダ
ーティーである場合には、キャッシュデータストア26'
内のアドレスされたダーティーデータをデータバス102
に置く。データバスインターフェース50はこのデータを
捕捉し、キャッシュデータストア26に供給して記憶させ
る。更に、キャッシュコントローラ40'は制御バス106の
バスシェアラインをセットし、キャッシュデータストア
26内に新に記憶されたデータが2位置以上に存在するこ
とを示す。(明らかに、もしキャッシュコントローラ4
0'がデータがダーティーでないことを知ったならば、キ
ャッシュデータストア26への送信は不必要であり、キャ
ッシュデータストア26'内のデータは主メモリー14から
読み出すデータと同一である。) キャッシュコントローラ40'がバスシェアラインをあ
る状態にセットした時に、キャッシュコントローラ40は
シェアレジスタ32にシェアビット(キャッシュデータス
トア26に今書込んだデータに対応する)をその状態に対
してセットする。 データをキャッシュデータストアから主メモリー14に
書込むと仮定すれば、このデータ転送は、上述の通り、
関連していないキャッシュコントローラ(すなわち、デ
ータを読み込まれるキャッシュデータストア以外のキャ
ッシュデータストアを制御するキャッシュコントロー
ラ)によって監視される。かくして、もしキャッシュコ
ントローラ40'がキャッシュコントローラ40からの制御
バス48に生ずる書込指令を感知したならば、アドレスバ
スインターフェース52'及びデータバスインターフェー
ス50'に指令して主メモリー14に書込むアドレスとデー
タをラッチする。次に、タグ比較を行い、バス監視キャ
ッシュタグストア54'内のタグがアドレスバスインター
フェース52'に記憶されたタグと等しいか否かを判定す
る。等しい場合には、キャッシュコントローラ40'はデ
ータバスインターフェース50'に指令してキャッシュデ
ータストア26'を新しいデータで更新する。 図3において、デシジョンツリーのCPU読み込み要求
上に、もし「キャッシュミス」、「ダーティー」、「シ
ェアでない」との一連の発見のシーケンスが生じた時
は、「シェア」データの場合と同様の動作を行う。即
ち、データがシェアかシェアでないかは動作のシーケン
スに無関係である。 しかし、キャッシュミスが生じデータがダーティでな
い場合(シェアかシェアでない場合共に)、動作のシー
ケンスは異なる。この場合は、主メモリー読出し要求が
キャッシュコントローラ40からメモリー制御ユニット
(MCU)254に送られ、主メモリーデータをキャッシュデ
ータストア26に書込む。キャッシュデータストア26のア
ドレスされた位置のデータはダーティーでないため、主
メモリー14内に存在する同じデータを更新する必要はな
い。次に、バスシェアラインはサンプルされ、シェアビ
ットは、他のキャッシュコントローラが制御バスに生じ
た読み出し要求に応答してシェアラインをセットし、同
じデータを有することを示すか否かに応じてセットす
る。最後にキャッシュデータストア26の内容をCPUIOに
読み込む。 図4に示すデシジョンツリーはデータ戻し表示を非要
求キャッシュコントローラによってシステムバス上で監
視する時のシステムの動作を示す。上述の通り、各キャ
ッシュコントローラは、主メモリーに対するデータの書
き込み及び読み出しに関して制御バスを監視する。図4
に示す例では、主メモリー14からの読み出しをキャッシ
ュコントローラ40が要求し、これに対するデータ戻し要
求をキャッシュコントローラ40'によって監視すると仮
定する。上述の通り、キャッシュコントローラ40'は、
アクセスされたデータのフィジカルアドレスがアドレス
バスインターフェース52'にラッチされるようにする。
次に、キャッシュヒットが生ずるか否かを定め、データ
がダーティーか否かを定め、シェアか否かを定める。こ
の条件がヒットでダーティーでシェアであった時は、キ
ャッシュコントローラ40'は制御バス106の保持ラインを
セットし、キャッシュデータストア26'に指令して、記
憶したデータをデータバス106に書込み、このデータを
データバスインターフェース50によってキャッシュデー
タストア26に入力して記憶する。キャッシュコントロー
ラ40'は更に、制御バス106のシェアラインを1にセット
し、データの要求者はCPUであると見なす。 上述の場合に、キャッシュコントローラ40'がシェア
ビットレジスタ32'内のデータ表示がシェアでないこと
を知った時は、シェア条件とほぼ同様のプロセスである
が、シェアビットレジスタ32'は1にセットし、キャッ
シュデータストア26'内のデータのシェア状態を適切に
表示する。 もしキャッシュヒットであり、キャッシュデータスト
ア26'内のデータがダーティーでないときは次の動作が
生ずる。データがシェアのときは、キャッシュコントロ
ーラ40'はバスシェアラインを1にセットし、要求者はC
PUと見なす。データがシェアでない場合は、バスシェア
信号は1にセットし、キャッシュデータストア26'内の
夫々のデータラインと関連するシェアビットは1にセッ
トし、記憶されたデータは事実上シェアであることを示
す。この場合も、要求者はCPUであると見なす。このプ
ロセス内にキャッシュミスが存在すれば、動作の必要は
ない。 図10a、10b、10cのタイミング図は各種形式のバスト
ランザクションを示す。図10aはバイト、ワード、ダブ
ルワードの書込、次にダブル読み出しの指令(コマン
ド)IDとアドレス部分(64ビット)、次に要求されたダ
ブルワードのMCUデータ戻しを示す。 図10bはキャッシュ取出し/書戻しに対するロックラ
イン及び保持ラインの使用を示す。この場合は、キャッ
シュ取出が生じ、ミスが生じ、ダーティーデータがアド
レス位置に存在するときに対応する。従って、主メモリ
ーからの要求されたデータがキャッシュストアに書込ま
れる前に、ダーティーデータは主メモリーに書戻す必要
がある。関連のキャッシュコントローラは、保持ライン
とロックラインとをアサートし、コマンドIDをMCU254に
送り、8ワード読み出しを行う。アサートされた保持ラ
インは解放されるまではMCU254がキャッシュストアへの
書込を行うのを防ぎ、アサートされたロックラインはこ
のシーケンスの間に他のバス接続がバスを使用するのを
防ぐ。書戻し及び保持ラインとロックラインの解放の後
に、MCU254は、要求された4個のダブルワードをキャッ
シュストアに自由に書込み得る。 図10cは保持ラインの他の使用を示す。図示のバス接
続はダブルワードの読み込みを要求し、MCU254は要求さ
れたダブルワードを戻す。キャッシュはダブルワードの
アドレスをラッチし、次のサイクルにおいてディレクト
リのルックアップを行う。キャッシュがダーティーマッ
チを発見した時は、サイクル終了の僅かに前にキャッシ
ュはホールドをアサートする。保持ラインは、書戻しキ
ャッシュがダブルワードとそのアドレスを再送信しその
後に解放するまで、他の接続がバスを使用するのを防
ぐ。再送信はシステムバス上のバス有効信号のアサート
によって示す。 図5はメモリーへの書き込みの指令をCPUから受けた
時に続くプロセスを示す。この場合には、最初の動作
は、読込み要求を受けた時と同様であり、書込み指令に
付随するフィジカルアドレスを解析して、書込むべく探
索するデータがキャッシュデータストア26内に存在する
か否か(ヒットかミスか)を定める。ヒットであり、デ
ータがダーティーでシェアである時は、キャッシュコン
トローラ40はキャッシュデータストア26とキャッシュタ
グストア28に夫々のデータとタグビットを記憶させる。
しかしCPUはシェア位置に書込中であるため、書込(ラ
ストスルー)動作は主メモリー14に対して生ずる。かく
してデータは、キャッシュデータストア26に書込まれる
に加えて、制御バス106上の書込指令を経て主メモリー1
4に書込まれる。 シェアデータがキャッシュデータストア26'にまだ存
在すると仮定すれば、書込(ライトスルー)はキャッシ
ュコントローラ40'によって感知され、キャッシュデー
タストア26'は同じタグを有するデータを含むことを判
定する。キャッシュコントローラ40'は次にデータバス
インターフェース50'に指令して、そのデータ位置をキ
ャッシュデータストア26から主メモリー14に書込まれる
データのデータで更新する。(データはアドレスバス及
びデータバスインターフェース52'、50'によって捕捉さ
れる。)これによって、各キャッシュデータストアは最
も新しい更新された情報を記憶する。主メモリーデータ
とキャッシュデータストアとは同じ情報を含むため、ダ
ーティービットはリセットされて0になる。 主メモリーに書込まれているデータがシェアでない時
は、必要なことはキャッシュデータストア26を更新する
ことである。データは主メモリー14内に記憶されるデー
タと等しくないためダーティービットは1のままであ
り、主メモリーに対する書込み(ライトスルー)は生じ
ない。 キャッシュヒットであり、ダーティーでなく、シェア
の表示がある場合には、キャッシュヒット、ダーティ
ー、シェアの場合と同じ動作である。データがシェアで
ない場合には、キャッシュは更新され、キャッシュデー
タストア26内のデータは主メモリー14内の同じメモリー
位置に記憶されたデータとは異なるためダーティービッ
トは1にセットされる。 CPUメモリー書込指令を受け、キャッシュミスがあ
り、キャッシュデータストア26内のそのアドレスされた
位置内にすでに記憶されているデータにダーティー表示
がある場合には、複雑なステップが行われる。これはデ
ータがシェアか否かは無関係である。第1に主メモリー
読み出し要求がキャッシュコントローラ40によってメモ
リー制御ユニット254に伝達される。次に、キャッシュ
データストア26内のダーティーエントリを主メモリー14
に書込む。修正すべき実際のデータを主メモリー14から
キャッシュデータストア26に書き戻し、キャッシュタグ
ストアとバス監視キャッシュタグストアを更新する。キ
ャッシュデータストア26の新データを次に、CPU10が新
データを同じデータ位置に重ね書きを行うことによって
更新する。(システムは選択的に、全ダブルワード、1
個のワード、バイトの任意の組合せを重ね書きする能力
を有する。)メモリー書込信号は制御バス106上で感知
されているので、他のキャッシュコントローラもまたそ
れに関連するキャッシュデータストア内にアクセスされ
たデータを持つ場合には、制御バス106のバスシェアラ
インをセットしてシェアデータを示す。バスシェア信号
はキャッシュコントローラ40によって感知され、シェア
ビットレジスク32内のシェアビットを1にセットする。
更にCPU10によってキャッシュデータストア26に最近書
込まれたデータを主メモリー14に書込み(ライトスル
ー)、キャッシュコントローラ40'によって感知され
て、そのキャッシュデータストアを修正する。次にダー
ティービットレジスタ30内のダーティービットを0にリ
セットする。バスシェア信号が0である時は、CPUエン
トリを主メモリー14に書込む(ライトスルーする)必要
はない。図5のデシジョンツリーの下部の枝に示す通
り、この動作は、データが最初にシェアとして示された
か否かは作動に無関係である。 CPU書込信号に応答して、キャッシュミス、ダーティ
ーでない、シェア(又はシェアでない)の表示がある場
合は、動作はダーティーの場合とほぼ同様である。しか
し、ダーティーでない場合は同じデータを含むため主メ
モリーの更新は不要である。 図6に示すデシジョンツリーはメモリーへの書込をシ
ステムバス上に感知したときの各種システム動作を示
す。要求しない(非要求)CPU/キャッシュシステムが、
他のCPU/キャッシュシステム又はI/Oインターフェース
からメモリーに書込まれるデータが、関連のキャッシュ
データストア内にあることを見つけ、シェアであること
を示している時は、単にキャッシュを更新してメモリー
に書込まれた新データに一致させる。シェアでない場合
にキャッシュヒットを表示される時は、もし他のキャッ
シュデータストアからメモリーに書き込まれるデータと
同じデータがキャッシュデータストアにある時は、エラ
ー状態を感知する。すべての場合に、キャッシュデータ
ストアをメモリーに書込むデータによって更新する。 ここまでの説明は主として、メモリーからのダブルワ
ードアクセスとメモリーへのダブルワード書込である。
図1に示す通り、図2のシステムの使用するデータフォ
ーマットは2個の4バイトワードをキャッシュデータス
トアのライン毎に含む。多くの例では、2つのデータワ
ードの読出し及び書込みのみでなく、1回の作動で多数
のダブルワードの読出し及び書込みを行い、各ダブルワ
ードについて個々の記憶又は書込の必要がないことが有
利である。指令のセットのアクセスや書き込み、又は長
い特性のストリング上の動作の場合に特に有利である。 多数のダブルワード動作を取扱うには、ステータスレ
ジスタを準備する。図2に示す通り、各キャッシュコン
トローラ40、40'にはマルチワードステータスレジスタ9
0、90'が与えられる。これらのステータスレジスタはマ
ルチワード転送のときに使用される。 図7に示すフロー図は、マルチワードデータ転送がシ
ステムバス242に生じ、マルチワード読出要求を発した
キャッシュコントローラ以外のキャッシュコントローラ
によって監視された場合である。各キャッシュコントロ
ーラは連続的にマルチワード転送に対してシステムバス
を監視する。データ戻しの間、キャッシュコントローラ
は、転送されるデータワードが、関連するバス監視キャ
ッシュタグストア内に記憶されたタグと同じタグを有す
ることを検出する場合がある。キャッシュコントローラ
は関連のマルチワード移送(転送)レジスタの、ヒット
表示を示したキャッシュタグのアドレスに対応する位置
に1つの1ビットをセットする。同様に、キャッシュコ
ントローラはマルチワード転送において第1のヒットを
検出すれば、バス保持制御ラインをセットし、データを
受けるキャッシュコントローラが追加のデータを期待す
べきであることを知らせる。 キャッシュコントローラはシステム監視を継続し、そ
れを、マルチワード転送が終了するまで継続する。この
時に(キャッシュコントローラ40'はバスを監視してい
ると仮定する)、マルチワードレジスタ90'は一連の0
と1とを記憶し、1はヒット表示が生じたキャッシュタ
グのアドレスに対応する。 キャッシュコントローラは第1のヒットによって指示
されたアドレスでのそのタグストアをアドレスする。こ
のアドレスに記憶されたデータがダーティーと示されて
いる時は、これをデータ要求者に送信する。データがダ
ーティーでないことを知れば、次のアドレスをアクセス
し、マルチワード転送レジスタの1ビットをもつ位置に
対応するすべてのアドレスを検査するまで、プロセスを
繰り返す。 次に、キャッシュコントローラ40'は、ダーティーで
ありマルチワード転送レジスタ90'にあるものに対応す
るデータを、キャッシュコントローラ40に関連するイン
ターフェースユニットに送信してキャッシュデータスト
ア26に記憶させる。 図8はメモリーからのNマルチワードデータ読出しを
示すフロー図である。最初に、CPUは関連のキャッシュ
からのマルチワードデータ読出しを要求する。例えば、
CPU10はライン80を経てキャッシュコントローラ40にマ
ルチワードデータ要求を発生する。しかし、要求された
最初のキャッシュタグがキャッシュデータストア26内に
ない(ミス)ことを知る。コントローラ40はメモリー制
御ユニット254にマルチワード命令要求を送る。実際の
データ転送が生ずる前に、キャッシュタグストア26内の
第1のダブルワードを受けるメモリー位置がアドレスさ
れる。このアドレスに現存するデータに対応するダーテ
ィービットを検査して、1をセットすべきかを定める。
否の場合には、主メモリーに書戻す必要はなく、マルチ
ワード転送レジスタ内の対応するステータスビットは0
を保ち、この位置は重ね書きされ得ることを示す。1に
セットすれば、重ね書きの前に更新のために主メモリー
に書戻す(ライトバック)必要がある。 書戻し、又は書戻し不必要とわかった後に、キャッシ
ュタグストアをアドレスする。ヒットがあれば、マルチ
ワード転送レジスタ90内の対応するステータスビットは
1にセットする。次に、Nタグストアのアドレスが生ず
るまで、プロセスを繰返しすべてのNダブルワードを検
査する。次に、コントローラ40は、データバス102上に
Nデータワードを読み出したメモリー制御ユニット254
からデータ戻しを行い、バス上でそれらはデータバスイ
ンターフェース50によって捕捉される。マルチワード転
送レジスタ90が参加し、キャッシュデータストア26内の
どの位置を更新するかを制御する。(即ち、マルチワー
ドレジスタ90の0にセットされた位置に対応する位置の
み。)かくして、ダーティーデータが主メモリーに書戻
され主メモリーが完全に更新されるだけでなく、主メモ
リー14から受けた最新でないデータはキャッシュデータ
ストアに記憶されるのを防がれる。 場合によって、キャッシュメモリー間にコンフリクト
が生ずる。この例としては、2個以上のキャッシュによ
って監視される主メモリーから要求者へのデータ戻しの
間に起こり得る。これらのキャッシュが主メモリーから
戻されるデータユニットに対してヒットとすれば、各々
は、監視したアドレスでデータのダーティー状態を検査
する機会を持つ前に、夫々の保持ラインをセットする。
コンフリクトを防ぐために図9に示すプロセスを使用す
る。各キャッシュコントローラは、他のものの保持ライ
ンが前のクロックサイクル間にセットされたか否かを検
査する。イエスならば以前にセットされた保持ラインが
優先する。両方の保持ラインが同じクロックサイクル間
にセットされた時は、小さい識別番号を有するCPUと関
連するキャッシュコントローラが優先する。 本発明の上述の実施例は例示であり、当業者は各種の
変型が可能である。従って本発明は上述の実施例のみに
限定されず、請求の範囲によって限定されるものであ
る。
フロントページの続き (72)発明者 ベッカー,ロバート・ディー アメリカ合衆国マサチューセッツ州 01464,シャーリー,イースト・グロー トン・ロード 522 (56)参考文献 J Archbald et a l.”Cache Coherence Protocols:Evaluat ion Using a Muttip rocessor Simulatio n Model”,ACM Trans action on Computer Systems,Vol.4,No. 4,November1986,p273−298 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 15/16

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】バス手段、該バス手段に結合された主メモ
    リ手段、および該バス手段に結合された複数のエンティ
    ティを含み、マルチ・データ・ユニット転送可能なデー
    タ処理システムであって、 データ・ユニットを要求する要求側エンティティから前
    記バス手段へ出力されるアドレス・データを監視する監
    視側エンティティのそれぞれが、 前記バス手段に結合され、前記主メモリ手段から受信し
    たデータ・ユニットを記憶するためのキャッシュ・メモ
    リ手段と、 前記キャッシュ・メモリ手段および前記バス手段に結合
    され、前記キャッシュ・メモリ手段の動作を制御する制
    御手段と、 を備え、 前記バス手段が、 (a)それぞれの前記監視側エンティティに関して、前
    記要求側エンティティが前記バス手段を介して読み出そ
    うとしているデータ・ユニットが、前記監視側エンティ
    ティの前記キャッシュ・メモリ手段に記憶されている場
    合に、前記データ・ユニットが前記監視側エンティティ
    に記憶されていることを前記要求側エンティティに示す
    ため且つ前記要求側エンティティによる前記バス手段へ
    の接続を解放しないように指示するためのホールド信号
    を、前記監視側エンティティから前記要求側エンティテ
    ィへ送信するためのホールド・ラインと、 (b)前記複数のエンティティのそれぞれの前記エンテ
    ィティから、該エンティティが前記主メモリ手段へアク
    セスできるようにし且つ他のエンティティが前記主メモ
    リ手段へアクセスするのを妨げるためのロック信号を送
    信するためのロック・ラインと を備え、 それぞれの前記監視側エンティティの前記制御手段が、 前記ロック・ラインへ前記ロック信号をアサートした前
    記要求側エンティティから、複数のデータ・ユニットを
    前記主メモリ手段から読み出すために前記バス手段へ出
    力された複数のデータ・ユニットに対応するアドレスを
    連続的に前記バス手段上で検出する手段、 連続的に検出した前記アドレスのそれぞれに関して、該
    アドレスに対応する前記データ・ユニットが、当該監視
    側エンティティの前記キャッシュ・メモリ手段に存在す
    るか否かを判定する手段、 前記判定する手段により1以上の前記データ・ユニット
    が当該監視側エンティティの前記キャッシュ・メモリ手
    段に存在すると判定された場合に、前記要求側エンティ
    ティへ前記ホールド信号を前記ホールド・ラインを介し
    て送信する手段、 当該監視側エンティティの前記キャッシュ・メモリ手段
    に存在すると判定された1以上の前記データ・ユニット
    のそれぞれが、変更された状態にあるか否かを判定する
    手段、および 変更された状態にあると判定されたそれぞれの前記デー
    タ・ユニットを、当該監視側エンティティの前記キャッ
    シュ・メモリ手段から読み出して、前記バス手段を介し
    て前記要求側エンティティへ送信する手段 を備える、 データ処理システム。
  2. 【請求項2】前記制御手段が、 前記要求側エンティティが読み出そうとしている1つ以
    上の前記データ・ユニットを記憶している別の監視側エ
    ンティティが出力した前記ホールド信号を受信する手段
    と、 当該監視側エンティティが出力した前記ホールド信号
    と、前記別の監視側エンティティから受信した前記ホー
    ルド信号とが、同じクロック・サイクルに出力されたも
    のである場合に、前記別の監視側エンティティの優先度
    を識別し、その優先度と当該監視側エンティティの優先
    度とを比較する手段と を更に備え、 前記制御手段の、変更された状態にあると判定されたそ
    れぞれの前記データ・ユニットを、当該監視側エンティ
    ティの前記キャッシュ・メモリ手段から読み出して、前
    記バス手段を介して前記要求側エンティティへ送信する
    前記手段が、 当該監視側エンティティの優先度が前記別の監視側エン
    ティティの優先度よりも高い場合には、読み出した前記
    データ・ユニットを、前記別の監視側エンティティより
    も優先的に前記バス手段を介して前記要求側エンティテ
    ィへ送信し、 当該監視側エンティティの優先度が前記別の監視側エン
    ティティの優先度よりも低い場合には、読み出した前記
    データ・ユニットを、前記別の監視側エンティティが前
    記ホールド信号を解除した後に前記バス手段を介して前
    記要求側エンティティへ送信する ように構成される、 請求項1に記載のデータ処理システム。
JP50764589A 1988-06-30 1989-06-22 キャッシュメモリー付マルチ処理システム Expired - Lifetime JP3510240B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/213,556 US4939641A (en) 1988-06-30 1988-06-30 Multi-processor system with cache memories
US213,556 1988-06-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001307304A Division JP2002163148A (ja) 1988-06-30 2001-10-03 キャッシュメモリー付マルチ処理システム

Publications (2)

Publication Number Publication Date
JPH04501027A JPH04501027A (ja) 1992-02-20
JP3510240B2 true JP3510240B2 (ja) 2004-03-22

Family

ID=22795556

Family Applications (2)

Application Number Title Priority Date Filing Date
JP50764589A Expired - Lifetime JP3510240B2 (ja) 1988-06-30 1989-06-22 キャッシュメモリー付マルチ処理システム
JP2001307304A Pending JP2002163148A (ja) 1988-06-30 2001-10-03 キャッシュメモリー付マルチ処理システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2001307304A Pending JP2002163148A (ja) 1988-06-30 2001-10-03 キャッシュメモリー付マルチ処理システム

Country Status (7)

Country Link
US (1) US4939641A (ja)
EP (1) EP0422113B1 (ja)
JP (2) JP3510240B2 (ja)
AU (1) AU622471B2 (ja)
CA (1) CA1320284C (ja)
DE (1) DE68927172T2 (ja)
WO (1) WO1990000285A1 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01302444A (ja) * 1988-05-31 1989-12-06 Toshiba Corp 論理アドレスキャッシュ制御方式
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
US5179679A (en) * 1989-04-07 1993-01-12 Shoemaker Kenneth D Apparatus and method for permitting reading of data from an external memory when data is stored in a write buffer in the event of a cache read miss
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JP2511146B2 (ja) * 1989-07-07 1996-06-26 富士通株式会社 デ―タ処理装置
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
CA2028085A1 (en) * 1989-11-03 1991-05-04 Dale J. Mayer Paged memory controller
DE69025302T2 (de) * 1989-12-22 1996-10-02 Digital Equipment Corp Hochleistungsrasterpuffer- und -cachespeicheranordnung
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
US5452463A (en) * 1990-05-25 1995-09-19 Dell Usa, L.P. Processor and cache controller interface lock jumper
US5249286A (en) * 1990-05-29 1993-09-28 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache
US5249284A (en) * 1990-06-04 1993-09-28 Ncr Corporation Method and system for maintaining data coherency between main and cache memories
US5226150A (en) * 1990-10-01 1993-07-06 Digital Equipment Corporation Apparatus for suppressing an error report from an address for which an error has already been reported
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5353423A (en) * 1991-06-21 1994-10-04 Compaq Computer Corporation Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5301298A (en) * 1991-10-11 1994-04-05 Intel Corporation Processor for multiple cache coherent protocols
US5584017A (en) * 1991-12-19 1996-12-10 Intel Corporation Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location
EP0553743A1 (en) * 1992-01-31 1993-08-04 Motorola, Inc. A cache controller
EP0553742A1 (en) * 1992-01-31 1993-08-04 Motorola, Inc. A method of operating a first and second cache tag memory array
JPH06318174A (ja) * 1992-04-29 1994-11-15 Sun Microsyst Inc キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
GB2271201B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Low-overhead,non-coherent cache refreshment mechanism
EP0602805B1 (en) * 1992-12-18 2000-01-19 Advanced Micro Devices, Inc. Cache memory systems
US5682515A (en) * 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
JPH07248974A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 情報処理装置
US5557769A (en) * 1994-06-17 1996-09-17 Advanced Micro Devices Mechanism and protocol for maintaining cache coherency within an integrated processor
US5548752A (en) * 1994-08-10 1996-08-20 Motorola, Inc. Method and system for storing data in a memory device
US6000017A (en) * 1995-01-20 1999-12-07 Intel Corporation Hybrid tag architecture for a cache memory
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US5778431A (en) * 1995-12-19 1998-07-07 Advanced Micro Devices, Inc. System and apparatus for partially flushing cache memory
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6021466A (en) * 1996-03-14 2000-02-01 Compaq Computer Corporation Transferring data between caches in a multiple processor environment
US5960456A (en) * 1996-05-17 1999-09-28 National Semiconductor Corporation Method and apparatus for providing a readable and writable cache tag memory
US5860113A (en) * 1996-06-03 1999-01-12 Opti Inc. System for using a dirty bit with a cache memory
US5937431A (en) * 1996-07-12 1999-08-10 Samsung Electronics Co., Ltd. Multi- node, multi-level cache- only memory architecture with relaxed inclusion
JP3590203B2 (ja) * 1996-07-16 2004-11-17 株式会社東芝 記憶手段の制御方法及びその装置
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5900016A (en) * 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
JPH1173370A (ja) * 1997-08-29 1999-03-16 Fujitsu Ltd 情報処理装置
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
JP4179677B2 (ja) 1998-09-04 2008-11-12 株式会社ルネサステクノロジ マルチプロセッサ装置
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
GB2411019B (en) * 2004-02-16 2007-03-07 Advanced Risc Mach Ltd Data accesses in data processing
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US20070150658A1 (en) * 2005-12-28 2007-06-28 Jaideep Moses Pinning locks in shared cache
US8250503B2 (en) * 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8180968B2 (en) * 2007-03-28 2012-05-15 Oracle America, Inc. Reduction of cache flush time using a dirty line limiter
US20100281235A1 (en) * 2007-11-17 2010-11-04 Martin Vorbach Reconfigurable floating-point and bit-level data processing unit
EP2217999A2 (de) * 2007-11-28 2010-08-18 Krass, Maren Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat
EP2235627A1 (en) * 2007-12-07 2010-10-06 Krass, Maren Using function calls as compiler directives

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US3761883A (en) * 1972-01-20 1973-09-25 Ibm Storage protect key array for a multiprocessing system
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity
US4167782A (en) * 1977-12-22 1979-09-11 Honeywell Information Systems Inc. Continuous updating of cache store
US4394732A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4527238A (en) * 1983-02-28 1985-07-02 Honeywell Information Systems Inc. Cache with independent addressable data and directory arrays
US4551799A (en) * 1983-02-28 1985-11-05 Honeywell Information Systems Inc. Verification of real page numbers of stack stored prefetched instructions from instruction cache
US4602368A (en) * 1983-04-15 1986-07-22 Honeywell Information Systems Inc. Dual validity bit arrays
JPS60138653A (ja) * 1983-12-27 1985-07-23 Hitachi Ltd 階層記憶制御方式
US4685082A (en) * 1985-02-22 1987-08-04 Wang Laboratories, Inc. Simplified cache with automatic update
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J Archbald et al."Cache Coherence Protocols:Evaluation Using a Muttiprocessor Simulation Model",ACM Transaction on Computer Systems,Vol.4,No.4,November1986,p273−298

Also Published As

Publication number Publication date
EP0422113B1 (en) 1996-09-11
DE68927172T2 (de) 1997-04-24
AU3963689A (en) 1990-01-23
JPH04501027A (ja) 1992-02-20
DE68927172D1 (de) 1996-10-17
CA1320284C (en) 1993-07-13
US4939641A (en) 1990-07-03
JP2002163148A (ja) 2002-06-07
EP0422113A4 (en) 1992-03-25
EP0422113A1 (en) 1991-04-17
AU622471B2 (en) 1992-04-09
WO1990000285A1 (en) 1990-01-11

Similar Documents

Publication Publication Date Title
JP3510240B2 (ja) キャッシュメモリー付マルチ処理システム
US5097409A (en) Multi-processor system with cache memories
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5627993A (en) Methods and systems for merging data during cache checking and write-back cycles for memory reads and writes
JP2822588B2 (ja) キャッシュメモリ装置
US6366984B1 (en) Write combining buffer that supports snoop request
US5113514A (en) System bus for multiprocessor computer system
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
CN101361049B (zh) 用于高级高速缓存驱逐候选对象标识的巡查窥探
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6343344B1 (en) System bus directory snooping mechanism for read/castout (RCO) address transaction
JP2982868B2 (ja) メモリ待ち時間を短縮する方法およびコンピュータ・システム
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
JPS58500226A (ja) 共用メモリの環境におけるキャッシュメモリの完全を維持するための装置および方法
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
EP0474450A2 (en) Processor system with improved memory transfer means
JPH03225542A (ja) データ記憶方法及びビットエンコードデータの処理回路
US5737756A (en) Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5367659A (en) Tag initialization in a controller for two-way set associative cache
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
WO1997004392A1 (en) Shared cache memory device

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031225

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100109

Year of fee payment: 6

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100109

Year of fee payment: 6