JPH0247756A - 多重プロセツサ・システム用書込み共用キヤツシユ回路 - Google Patents

多重プロセツサ・システム用書込み共用キヤツシユ回路

Info

Publication number
JPH0247756A
JPH0247756A JP63189562A JP18956288A JPH0247756A JP H0247756 A JPH0247756 A JP H0247756A JP 63189562 A JP63189562 A JP 63189562A JP 18956288 A JP18956288 A JP 18956288A JP H0247756 A JPH0247756 A JP H0247756A
Authority
JP
Japan
Prior art keywords
cache
ram
bus
signal line
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
JP63189562A
Other languages
English (en)
Inventor
Jr Thomas H Holman
トーマス・ヘンリー・ホールマン,ジユニア
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.)
Computer X Inc
Original Assignee
Computer X Inc
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 Computer X Inc filed Critical Computer X Inc
Publication of JPH0247756A publication Critical patent/JPH0247756A/ja
Pending 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 技術分野 本発明は、−船釣にはディジタル・データ処理の領域に
関するものであり、特に、多重プロセッサ・システムの
キャッシュ・メモリの回路の改良に関する。
発明の背景 典型的にバスを基本とする多重プロセッサ・システムに
おいては、プロセッサがしばしば命令及びデータ用のメ
モリをアクセスする、必要性のため、バス帯域幅は、少
数のプロセッサによりその限度を超過する。この問題を
克服するため、キャッシュ・メモリは、各プロセッサに
組み合せられ、プロセッサとシステム・バスの間のバッ
ファとして作用する。理想的には、キャッシュ(c a
 c he)は大部分のランダム・アクセス・メモリ(
RAM)のアクセスに“ビット”し、バスは、時間の極
めて僅かの部分のみ使用されるだけである。
多重プロセッサ・システムにおけるキャッシュ・メモリ
の使用に関連する問題は、データの整合性である。ある
プロセッサが、他のプロセッサのキャッシュに通報せず
自分のキャッシュに書込む場合には、データは不一致と
なるであろう。例えば以下のようなことが考えられる。
プロセッサ“1”は、全体の(qlobal)RAMよ
りデータ・ブロック′A”を読出し、それを蓄積する(
c a c h e)。それから、そのプロセッサはそ
のブロックに書込み、自分のキャッシュだけを更新する
。それから、プロセッサ“2”は、全体のRAMより同
じブロック@A”を読出し、それを蓄積する(c a 
c h e)。プロセッサ″2″は、プロセッサ“1″
とは異なるA”キャッシュが同一のデータ・ブロックを
保持し、プロセッサの片方のみが自分のキャッシュのそ
のブロックを更新すれば、他の方法でもキャッシュは不
一致になることもある。両君すると、キャッシュ整合性
の問題が生ずる。
キャッシュ整合性の問題に対しては、従来技術による解
決策がいくつか存在する。これらの各解決策は、“書込
み”の全部または1部を全メモリにすっかり書込むこと
により問題解決を試みる。
これら全書込み(write−throughニライト
スルー)は、他のキャッシュに通知し同じブロックを無
効にするのに使用される。しかしながら、解決を試みる
方策の各々は、キャッシュ・ヒツト比及びバス利用度に
影響する1つまたはそれ以上の問題を有する。
従来技術の解決策は3種類に分類できる。即ち、(11
ライト・スルー(全書込み)、(2)グローバル・ディ
レクトリ (総括的辞書:qlobal  direc
tory)及び(3)ライト・インバリデート(書込み
無効)。
ライト・スルー構成は(scheme)は、実現は最も
簡単であるが、しかし、その有効性はまた最小である。
この機構では全“書込み”は、キャッシュを通じ全RA
Mに向けられる。すべての他のキャッシュ制御器はバス
(即ちスノープ)をモニタし、いかなる6書込み”でも
それらのキャッシュでヒツトすれば、その対応エントリ
 (項目)を無効にする。その結果の“書込み”に不一
致となるデータは全て、無効とされる。かくして、整合
性問題は解決される。しかしながら、全ての“書込み”
は全(グローバル)RAMに通される故に、バス利用度
は実質的に増加する。全アクセスの約15%は“書込み
”であり、全“書込み”はミスとしてバス上をライト・
スルーする故に、この型の機構のキャッシュの最大ヒツ
ト率は約85%である。ヒツト率が約75%〜85%で
あり、バス・アクセス・タイムをキャッシュ・アクセス
・タイムの2倍と仮定すれば、この型の機構のバス利用
度は、各プロセッサにたいし約30%より40%であろ
う。そこで、2個より3個のプロセンサのみが、バスの
帯域幅の限度が越えられる前に、このバスを利用できる
ことになる。高バス競合のため、このライト・スルー機
構は低性能を与え、4個またはそれ以上のプロセッサを
有する多重プロセッサ・システムでは受入れられない。
グローバル・デイクレクトリ (辞書)機構は、主メモ
リ及びメモリ制御器の各ブロックに対し余分のビットを
使用し、いくつのプロセッサが各ブロックをキャッシュ
・ (蓄積)しているかと云うことに関する情報を維持
する。この機構の主な問題は、大きい全RAMは高価な
ことである。全RAMの各32ビツト・ブロックに対し
2個の余分のビットが必要とされ、メモリ制御器ハード
ウェアもまた要求される。これら余分の費用のため、“
ライト・スルー機構以上に性能向上があるとしても、そ
れは僅かである。。
“ライト・インバリデート”機構は、他のキャッシュに
在るかもしれないブロックを無効にするためにのみ全書
込み(ライト・スルー)する。この機構の1つの可能な
実現は、存在する同じコピーを無効にするため第1“書
込み”でライト・スルーを演することであろうがしかし
、つぎの“書込み”はキャッシュにのみ書込まれる。新
問題はこの変更で生ずる。“書込み”がキャッシュに対
してのみである時には、そのブロックは“ダーティ”に
なる(それは、キャッシュ内において全RAM内で同じ
でない)。他のプロセッサがそのブロックを要求すれば
、保有プロセッサはRAMを抑止し、そのブロック自体
を供給するか、または、要求プロセッサを停止し、全R
AMにそのブロックを書込みし、それから、要求プロセ
ッサに再びブロックを要求させるようにしなければなら
ない。
このスノープ(s n o o p)要求は長たらしく
、また、多くのバス・アクセスを用いるが、キャッシュ
整合性維持のために必要である。
他の1ライト・インバリデート”変形は、第1書込みが
要求される回数を減少するように発展された。例えば、
カリフォルニア大学バークレーにて開発されたルーチン
は、′所有権(owners h i p)の概念を導
入した。バークレー機構は2種の読出しく“共用読出し
”及び“所有のための読出し”)及び2種の書込み(“
無効のための書込み”及び“無効のない書込み”)を含
み、バス利用度を減少する。バークレー・ルーチンの問
題は、データが読出され専用としてキャッシュされれば
、第1“書込み”だけが除去されうるであろうと云うこ
とである。ブロックが共用さ七ケイ限り、他のキャッシ
ュの中のブロックの潜在能力を無効にするため、第1書
込みはなお要求されるであろう。さらにまた、いつデー
タが共用であるか、または、いつそれが専用であるか決
定可能な、カスタム・コンパイラが要求される。
発明の要約 本発明は、複数のキャッシュ制御器の間の連絡のため特
別のバス・ライン及び対応論理を利用する多重プロセッ
サシステムのキャッシュ回路に閏。
/お その時点でプロセッサ間に共用されない全部のライト・
スルーの除去を可能にする。
データは共用されるか、また、データは共用できるにし
ても、その時点ではないことを決定する特別のコンパイ
ラは何も要せず、書込み共用ルーチンは、まだ、データ
を“プライベート(私的専用:private)(又は
1オンリ(only)”として記録することが可能であ
る。
そこで、本発明の目的は、バス・アクセスを減少し、多
方データ整合性を確保する多重プロセッサ・システムの
ための新規かつ改良されたキャッシュ回路を提供するこ
とである。
本発明の他の目的は、特別のコンパイラを必要とせずバ
ス・アクセスを減少する多重プロセッサ・システムのた
めの新規かつ改良されたキャッシュ回路を提供すること
である。
本発明のこれら及び他の目的は、添付の明細書、特許請
求の範囲及び図面を考慮すれば、当業技術者には明確と
なるであろう。
発明の概要 多重プロセッサ・システム用の“書込み共用”キャッシ
ュ回路は、システム全体のデータ整合性を維持し、シス
テムのキャッシュの間の追加バス・ラインを利用し、ま
た、キャッシュ相互間の連結を高めるための追加論理を
利用することにより、非本質的なバス・アクセスを除外
する。データが“共用”のラベルを付けられる時には、
データはシステム・バスにのみライト・スルーされる。
書込みミスは“無効にする”サイクルにてシステム・バ
ス上で一度だけ読出され、それから、それは要求するキ
ャッシュにのみ書込まれる。
好ましい実施例の説明 第1図を参照するに、lOと指定された多重プロセッサ
・システムの構成図が図示される。そのシステム10は
、システム・バス14により一連のCPU16に接続さ
れる全RAM12を持つ。
一連のCPU16の各々は、それに関連するキャッシュ
・メモリ22を有する。キャッシュ・メモリ22は、共
用(SHARED)バス・ライン24及びINV(無効
にする)バス・ライン26の両方により相互接続される
。キャッシュ・メモリ22は、INHIBIT(抑止)
バス・ライン18及びTCOMPパスライン20により
RAMI2へ接続される。
5HAREDバス・ライン24はオープン・コレクタ・
ラインであり、どのキャッシュ制御器(第2図のエレメ
ント30)もそれを低に駆動しない時には、高にされる
。他のライト・バック機能のように各プロセッサに関連
するキャッシュ制御器は、バス上のあらゆるアクセスを
モニタ(スノーブ)する。スノープがヒツトしたら(即
ち、ある他のプロセッサが、このスノープするキャッシ
ュで有効なあるデータを要求していれば)ヒツト・キャ
ッシュ制御器は5HAREDバス・ライン24を主張す
る。要求するプロセッサは、そこで、そのデータ・ブロ
ックを“共用”とマーク(mark)する。要求するプ
ロセッサがそこでそのブロックに書込むとしたら、その
ブロックの全ての他のコピーを無効にするように、それ
はライト・スルーしなければならない。しかしながら、
5HAREDバス・ライン24が読出しを主張しなけれ
ば、データは1オンリ” (o n 1 y)とマーク
され、以下の“書込み”はライト・スルーされない。
“共用”の場合には、読出し及び書込みデータは、前に
説明されたライト・バック機構と同じ多くのサイクルを
必要とする。しかし“非共用”の場合には、システム1
0はシステム・バスのアクセスを1回少なく使用する。
他のキャッシュ22がいづれも要求データ・ブロックを
含まないとすれば、要求するプロセッサは新データを1
オンリ”とマークするであろう。そこでそのプロセッサ
16がそのブロックを書込むときは、プロセッサはライ
ト・スル−はしないものである。それは自分のキャッシ
ュにのみ書込み、他のバス・サイクルは用いないであろ
う。
上述の従来技術のシステムは、データが共用と仮定して
それを読出し、常に一度はそれをライト・スルーする。
本発明においてはシステム10は、5HAREDバス・
ライン24に供給されるキャッシュ間連絡により、各デ
ータ・ブロックが共用が否かを知るので、“共用”デー
タに対しライト・スルーするだけである。′非共用”デ
ータのライト・スルーは、5HAREDバス・ライン2
4の使用により除去される。
INV(無効にする)バス・ライン26は、また、不必
要なバス・アクセスを除去する。ライン26は、また、
オープン・コレクタであり、ライト・ミスの間使用され
る。若し、データ・プロッタへの第一アクセスが、読出
しの代りに書込みであれば、データ・ブロックはキャッ
シュ22に書込まれる前に、全RAM12より読出され
なければならないだろう。書込みの大きさがブロックの
大きさより小さければ(例えば、1バイトのみ書込み)
、書込みに影響されないブロックの部分は第1に書込ま
れるべきで、そこでキャッシュ内の全ブロックは正しい
であろう。例えば、CPUl6が1バイトの書込を実行
しているとすれば、そのキャッシュ22は全ブロックに
おいて第1読出しをしなければならず、それからそのバ
イトをCPU16に書込まなければならない。そのブロ
ックがキャッシュ−誠→22への第1読出でない場合に
は、全ブロックではなく書込みバイトのみが、キャッシ
ュ22で有効となるであろう。
書込みミスは、実は、読出し一書込みシーケンスである
故に、それはシステム・バス14の2サイクルを必要と
する。第1サイクルはデータの読出しに使用されるであ
ろうし、また第2サイクルは共用ブロックを無効にする
ため必要とされるであろう。システム・バス14のこの
第2アクセスを除去するため、INVバス・ライン26
は使用される。INVバス・ライン26は、読出し一書
込みシーケンスの読出し部分の間、共用ブロックはどれ
でも全部の無効を主張する。そこで“書込み”は、要求
するキャッシュ22のみに書込まれ、そのブロックは“
ダーティ(d i r t y)”としてセットされる
TCOMP (転送完了)バス・ライン20は、全部の
受信キャッシュ22がそのデータ転送スノーブを完了し
たことを信号するため使用される。
例えば、システム10のあらゆるキャッシュ・スノーブ
は勿論全RAM12は、すべてのバス・アクセスごとに
転送完了を信号するTCOMP信号の権利を主張しなけ
ればならない。
5HAREDバス・ライン24及びINVライン26は
、複数のキャッシュ22の間の調整のため使用される。
INHIBIT(抑止)ライン18は、各個キャッシュ
22及び全RAM12の調整に使用される。そしてTC
OMPライン20は、全受信ユニットが転送を完了した
のを信号するようにシステム中で使用される。全プロセ
ッサ16に関係するキャッシュ制御器(例えば、第2図
の30)は、5HARED (共用)、INV、及びT
COMPラインを駆動及び受信する論理を含み、またそ
れらはINHIBITラインを駆動する論理を含む。R
AMカード70は、INHIBITライン18を受信し
、また、TCOMPライン20を駆動するための論理を
含む。INHIBITバス・ライン18は、RAMカー
ド70の応答を抑止するため使用される。ライン18及
び2oの機能は、第2及び3図に関連しより詳細に以下
で説明される。
特に第2図を参照するに、バス・ライン18.20.2
4及び26にインタフェースのための各CPUに関連す
る論理の構成図が図示される。この論理の3個の主ユニ
ットは第2図に見られる。
即ち、キャッシュ32、キャッシュ制御器30゜及びス
ノープ制御器34である。プロセッサ、標準バス・イン
タフェース等のようなCPUの他のセクションは、5業
技術者には通常知られているから第2図には図示されな
い。
キャッシュ32のキャッシュ論理ユニットは、キャッシ
ュ・アドレスの上半部を収容するキャッシュ・タグ(t
 a g)RAM40、ブロックの状態を示すブロック
あたり2ビツトを収容するキャッシュ状態ビット論理4
2及び、キャッシュ・データを収容するキャッシュ・デ
ータRAM44を含む。アドレス・ライン36でキャッ
シュ32にくる全部のアドレスの“インデックス”とラ
ベルを付けられた下位部分は、キャッシュ論理ユニット
40.42、及び44をアドレスする。コンパレータ(
比較器)50は、キャッシュ・タグ・RAM40より供
給される入力及びアドレス・ライン36の上位部分より
供給される他の入力を有する。若し、これらの入力が一
致すれば〔即ち、ADDRTAG (7ドlzス−タグ
)がCACHETAG (キャッシュ・タグ)に一致す
れば〕、そのアクセスはキャッシュ32において有効で
ある。
キャッシュ制御器30は、そのブロックに対する論理回
路42よりキャッシュ状態ビットを調べ、適切な処置を
行なう。例えば、アクセスが“ライト−ヒツト”であり
、ブロック状態が“オンリ”であれば、キャッシュ制?
1130はキャッシュ32に書込むだけである。ブロッ
ク状態が“共用”であるとすれば、キャッシュ制御器3
0はキャッシュ32に書込まなければならず、また、シ
ステム・バス14にライト・スルーしなければならない
スノープ制御器34は、システム・バス・ライン14の
アドレス・ストローブ・ライン(“AS”とラベルされ
る)を監視する。“AS”が権利を主張されている時に
は、それは、他のCPUがシステム・バス・ラインをア
クセスしていることを意味する。全キャッシュはキャッ
シュ整合性を維持するため、バス上で調査(snoop
)Lなければならないから、スノープ制御器34は、他
のCPUによるバス・アクセスのためのキャッシュを介
して“Bus  Addr  (バス・アドレス)”ラ
インを走行(run)させなければならない。これを実
行するため、スノープ制御器34は、“CPU/5no
op”ライン38を低に駆動することにより、“CPU
  Addr”ラインを使用禁止(ディスエーブル)に
し、また、“BusAddr”ライン37をアドレス・
ライン36上でイネーブルにする。スノープ制御器34
は、また、“スノープがバスを保有”するライン39を
主張し、次のキャッシュ・アクセスがスノープであるこ
とをキャッシュ制御器30に通知する。
”Bus  Addr  (バス・アドレス)″37ラ
インがAddr”ライン36にだいしイネーブルにされ
た時に、キャッシュ32は上述したようにチエツクされ
る。スノープがキャッシュ32において“ヒツト”であ
れば、キャッシュ制御器30はヒツト・ブロックのキャ
ッシュ状態ビット42をチエツクし、それから再び適当
な処置を行なう。例えば、ヒツトが“読出し共用(r 
e a dshared)  ”であれば、キャッシュ
制御器30は“共用(shared)  ”バス・ライ
ン24を引き出し、要求するCPUはデータ項(ite
m)を“共用”としてキャッシュ(蓄積)すべきである
とCPUに通知させるようにする。若し“ヒツト”キャ
ッシュ・ブロックが“ダーティ(d i r t y)
であれば、キャッシュ制御器3oはINHIBIT”バ
ス・ライン18(RAMI2に応答させないため)を主
張し、それから、ダーティ”データ自体を供給する。最
終的にはキャッシュ制御器30は、“共用”としてその
ブロックをリセットするのである。
全てのスノープにたいし、キャッシュ制御器30は、T
COMPバス・ライン20を主張し、スノープを完了し
たことを信号する。(全RAMI2と同様に)全ての他
のキャッシュ制御器がTCOMPを主張するまでは、要
求するCPUはそのバス・サイクルを完了しないであろ
う。それがバス・マスクである場合、バス要求者(re
questar)55は、キャッシュ制御器3oに通知
するように使用される。各CPUがバス・マスクであれ
ば、それはスノープせず、また、TCOMPを主張しな
い。
第3図を特に参照するに、RAM及び関連論理70が、
ブロック図形式で図示される。RAM論理70は、“I
NHIBIT”バス・ライン18力びアドレス・デコー
ド”論理72に含まれる点において、普通のRAM論理
とは異なる。”INHIBIT”が主張されれば、RA
M論理7oを選択のためシステム・バス14のアドレス
が正しくデコードされても、RAM論理7oは応答すべ
きではない。また、“INHIBIT”信号が主張され
るときは、それは、あるキャッシュ制御器が、前に他の
キャッシュに対し、′ダーティ”データを供給している
ことを意味する。システム・バス14上で主張されてい
るこのデータは、全RAM12に書込まれなければなら
ず、その結果、キャッシュの共用データは全RAM12
において整合性を維持するであろう。この“書込み”の
完了のため、全RAM12は“TCOMP″を防止し、
その間にシステム・バス14上で主張されるデータを適
当なアドレスに書込む。書込みが完了され、そのデータ
・ブロックが全システムを通じ整合していると、RAM
カード7oは“TCOMP′を主張し、バス・サイクル
は完了する。
全ての正常バス・サイクルごとに、また、RAM論理7
0はTCOMP (正常DTACK−データ転送確認と
ともに)を主張し、転送が完了であることを通報しなけ
ればならない。
要約すれば、本発明の“書込み一共用”回路はハードウ
ェアを使用し、専用キャッシュを用いるバスを中心とす
る多重プロセッサ・システムにおいて、必須でないバス
・アクセスを全て除去する。
キャッシュ1iIJ御器の間の連絡のための特別のバス
・ラインの使用により、“書込み一共用”回路はデータ
・ブロックの共用か、または、専用がをダイナミックに
決定する。専用としてキャッシュされたデータ・ブロッ
クは、他のキャッシュの他の同じブロックを無効にする
ため特別のライト・スルーを必要としない。バス利用度
が低いだけ、高システム性能が達成され、単一バスでよ
り多くのプロセッサが使用可能である。
付録は、本発明の“書込み一共用”回路に用いるキャッ
シュ・アクセス及びスノーブ・アクセスに対する状態及
び詳細状態移行を与える。
図面の説明を通じ、多重プロセッサ・システムのための
改善されたキャッシュ回路が開示された。
これ以上の回路の変更及び改良が、5業技術者には起こ
らないであろう。それ故に、本発明は図示された特別の
形式に制限されないことを理解することが望ましいし、
さらに、添付の特許請求の範囲において、本発明の精神
及び範囲より逸脱しない全ての変更を包含することを本
発明は意図している。
付   録 状B: 無効 (invalid) RAMはキャッシュ中にない。
共用 −RAMはキャッシュへ読出されてお(shar
ed)   リ、オンリ、共用、または、Wn ノー1
−ヤツシュにおいてダーティであった。
オンリ −RAMはキャッシュへ読出されてお(onl
y)    リ、それは唯一のキャッシュ・コピーであ
る。
ターティ −キャッシュは書込まれており、現在(di
rty)    はRAMコピーとことなる。
インターナル: (internal) 置換え    無効、オンリ、または共用−単(Rep
laceIIlen t) 純にブロックを書き直す;ダー ティ−RAMにライト・バック し1、それから書き直す。
読出し無効 (Read Invalid) RAMより全ブロック読出し、 5HARED主張であれば、共 用をセットし、5HARED主 張なければ、オンリをセット。
書込み無効   RAMより全ブロック読出し、(Wr
ite Invalid)そしてINV主張、キャッシ
ュへ書込み、ダーティをセット。
はのこす。
オンリ書込み キャッシュへ書込み、ダーティ をセット。
ダーティ読出し キャッシュより読出し、ダーティはの
こす。
ダーティ書込み キャッシュへ書込み、ダーティはのこ
す。
読出し共用   キャッシュより読出し、共用は(Re
ad 5hared)  のこす。
書込み共用   RAM及びキャッシュへ書込み、(W
rite 5hared)  オンリをセット。
オンリ続出し キャッシュより読出し、 オンリ 付  録 キャッシュ・スノープ(Cache 5noop)読出
し無効 (Read Invalid) (またはミス) なにもしない 書込み無効 (Wrete  Invalid)  なにもしない(
またはミス) 読出し共用    5HARED (共用)を主張、(
Read 5hared)   共用はのこす。
INV & Read Shared S HA RE D (共用)無効をセ
ット。
を主張、 書込み共用 (Write 5hared) 無効をセット。
オンリ続出し くRead only) INV & Read only オンリ書込み (Write only) ダーティ読出し als。
5HARED主張、共用にセ ット。
5HARED主張、無効をセ ット。
可能でない RAM抑止(INHIBIT 主張により)、データ及びD TACK供給、共用をセット; データはRAMへ書込まれる (そこでコピーはRAMでも また有効である)。
INV & Read only 上と同じ、ただし無効をセラ ト。
ダーティ書込み (Write Dirty) 不可能 FIC!− RAMボードブロック図
【図面の簡単な説明】
第1図は、本発明を実施するシステム・レベルのブロッ
ク図である。 第2図は、第1図のシステムに関連し実現される中央処
理装置(CP U)インタフェース論理を図示するブロ
ック図である。 第3図は、第1図のシステムに関連し実現されるRAM
を図示するブロック図である。 図において 12はRAM及びRAMアレー 16はCPU 22はキャッシュ 30はキャッシュ制御器 34はスノープ制御器 40はキャッシュ・ダク・RAM 42はキャッシュ状態ビット 44はキャッシュ・データ・RAM 50はコンパレータ 55はバス要求者 cpuボードブロック呪 ノ”IC。 手 続 ?i!i 正 iF(方式) %式% 1、明細書第26頁〜第31頁の付録の記載を削除する
。 1゜ 2゜ 事件の表示 昭和63年特許願第189562号 発明の名称  多重プロセッサ・システム用書込み共用
キャッシュ回路 3゜ 4、 補正をする者 事件との関係  特許出願人 住所  アメリカ合衆国イリノイ州60195.シャン
バーブ。 スィート・101ウイレイ・ロード、12011名称 
 コンビエータ・エックス・ インコーポレーテソド 代表者 レヴイ・カツィール

Claims (1)

  1. 【特許請求の範囲】 1、ランダム・アクセス・メモリ(RAM)、複数の中
    央処理装置(CPU)、複数のキャッシュ・メモリを具
    え 前記キャッシュ・メモリの1つは、前記複数のCPUの
    各々に組み合されており、前記RAM、前記複数のCP
    U及び前記複数のキャッシュ・メモリが接続されるシス
    テム・バス、前記RAM、前記複数のCPU及び前記複
    数のキャッシュ・メモリの間に交換されるべきアドレス
    及びデータ情報をイネーブルにするシステム・バス、を
    含む多重プロセッサ・システムにおいて、前記複数のキ
    ャッシュ・メモリが接続される第1信号ライン、 前記キャッシュ・メモリの第1の1つに組合わされ、か
    つ前記システム・バスに接続され、前記第1キャッシュ
    ・メモリが前記キャッシュ・メモリの第2の1つとデー
    タを共用しているかどうか検査し、もしそうであれば、
    前記第1信号ラインに第1信号レベルを発生し、そうで
    なければ、前記第1信号ラインに第2信号レベルを発生
    する論理手段、 前記第2キャッシュ・メモリに関連し、かつ前記システ
    ム・バスに接続され、前記第1信号レベルが前記第1信
    号ラインに存在すれば前記RAMを介してデータを書込
    むように前記第2キャッシュ・メモリに関連するプロセ
    ッサをイネーブルにし、前記第2信号レベルが前記第1
    信号ラインに存在ならば、前記関連プロセッサがデータ
    を前記RAMに書込むことを抑止する論理手段、 を具備する多重プロセッサ・システムのキャッシュ・メ
    モリ回路 2、前記複数のキャッシュ・メモリが接続される第2信
    号ライン(TCOMP)を具え、前記第1キャッシュ・
    メモリに関連した前記論理手段は、前記第2信号ライン
    上に第1信号レベルを発生する手段を具え、他方、前記
    論理手段は、前記第1キャッシュ・メモリが前記第2キ
    ャッシュ・メモリとデータを共用するかどうかを決定し
    、そうでなければ、前記第2信号ライン上に第2信号レ
    ベルを発生するものであり、 前記第2キャッシュ・メモリに関連した前記論理手段は
    、前記第1信号レベルが前記第2信号ライン上に存在す
    れば、前記第2キャッシュ・メモリに関連したプロセッ
    サの動作を抑止し、前記第2信号レベルが前記第2信号
    ライン上に存在すれば、そのバス・サイクルを完了する
    ように前記関連プロセッサを可能にする手段を具える、
    前記特許請求の範囲第1項記載の多重プロセッサ・シス
    テム・キャッシュ・メモリ回路。 3、前記複数のキャッシュ・メモリ及び前記RAMが接
    続される第2信号ライン、を具え、前記第1キャッシュ
    ・メモリに関連した前記論理手段は、前記第1キャッシ
    ュ・メモリに蓄積されたデータが、前記RAMに蓄積さ
    れたデータと異なるかどうかを決定し、若しそうなら、
    前記第2信号ライン上に第1信号レベルを発生し、そう
    でなければ、前記第2信号ライン上に第2信号レベルを
    発生する手段を具え、 前記RAMに関連し、かつ前記第2信号ラインに接続さ
    れ、前記第1信号レベルが前記第2信号レベル上に存在
    すれば、前記RAMの動作を抑止し、前記第2信号レベ
    ルが前記第2信号ライン上に存在すれば、前記RAMの
    動作を可能にする手段、を具備する前記特許請求の範囲
    第1項記載の多重プロセッサ・システムのキャッシュ・
    メモリ回路。
JP63189562A 1987-07-27 1988-07-27 多重プロセツサ・システム用書込み共用キヤツシユ回路 Pending JPH0247756A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US078436 1987-07-27
US07/078,436 US4959777A (en) 1987-07-27 1987-07-27 Write-shared cache circuit for multiprocessor system

Publications (1)

Publication Number Publication Date
JPH0247756A true JPH0247756A (ja) 1990-02-16

Family

ID=22144015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63189562A Pending JPH0247756A (ja) 1987-07-27 1988-07-27 多重プロセツサ・システム用書込み共用キヤツシユ回路

Country Status (4)

Country Link
US (1) US4959777A (ja)
EP (1) EP0301354A3 (ja)
JP (1) JPH0247756A (ja)
CA (1) CA1306312C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0272452A (ja) * 1988-06-27 1990-03-12 Digital Equip Corp <Dec> 無効要求を選別する方法及び装置
JPH02238534A (ja) * 1989-03-13 1990-09-20 Nippon I B M Kk マルチプロセツサ・システム
JPH086856A (ja) * 1994-06-15 1996-01-12 Nec Corp バスインタフェースアダプタ

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2714952B2 (ja) * 1988-04-20 1998-02-16 株式会社日立製作所 計算機システム
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
US5535359A (en) * 1988-12-02 1996-07-09 Mitsubishi Denki Kabushiki Kaisha Computer system with cache memory having address mask register
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5247639A (en) * 1989-06-20 1993-09-21 Nec Corporation Microprocessor having cache bypass signal terminal
EP0412353A3 (en) * 1989-08-11 1992-05-27 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
JP2789479B2 (ja) * 1989-08-14 1998-08-20 松下電器産業株式会社 処理装置およびマルチプロセッサシステム
JPH0697449B2 (ja) * 1989-09-20 1994-11-30 株式会社日立製作所 多重化共有メモリ制御方法、多重化共有メモリシステムおよび共有メモリ拡張方法
JPH03188546A (ja) * 1989-12-18 1991-08-16 Fujitsu Ltd バスインターフェイス制御方式
JPH061463B2 (ja) * 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5261067A (en) * 1990-04-17 1993-11-09 North American Philips Corp. Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
US5611070A (en) * 1990-05-10 1997-03-11 Heidelberger; Philip Methods and apparatus for performing a write/load cache protocol
US5452463A (en) * 1990-05-25 1995-09-19 Dell Usa, L.P. Processor and cache controller interface lock jumper
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5276833A (en) * 1990-07-02 1994-01-04 Chips And Technologies, Inc. Data cache management system with test mode using index registers and CAS disable and posted write disable
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
JPH04353947A (ja) * 1991-02-13 1992-12-08 Hewlett Packard Co <Hp> メモリページ特性タグ付けシステム
JPH0776942B2 (ja) * 1991-04-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システムおよびそのデータ伝送装置
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
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
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5386540A (en) * 1991-09-18 1995-01-31 Ncr Corporation Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
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
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5546560A (en) * 1993-06-22 1996-08-13 Advance Micro Devices, Inc. Device and method for reducing bus activity in a computer system having multiple bus-masters
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5748937A (en) * 1993-08-26 1998-05-05 Intel Corporation Computer system that maintains processor ordering consistency by snooping an external bus for conflicts during out of order execution of memory access instructions
US5522057A (en) * 1993-10-25 1996-05-28 Intel Corporation Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems
US5692154A (en) * 1993-12-20 1997-11-25 Compaq Computer Corporation Circuit for masking a dirty status indication provided by a cache dirty memory under certain conditions so that a cache memory controller properly controls a cache tag memory
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
US5797026A (en) * 1994-02-28 1998-08-18 Intel Corporation Method and apparatus for self-snooping a bus during a boundary transaction
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
KR960009659B1 (ko) * 1994-04-11 1996-07-23 김광호 멀티프로세서 시스템의 스누프회로
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett-Packard Company (A Delaware Corporation), Palo Alto Anordnung mit Duplikat des Cache-Etikettenspeichers
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5893147A (en) * 1994-12-22 1999-04-06 Intel Corporation Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5592616A (en) * 1995-06-07 1997-01-07 Dell Usa, Lp Method for performing efficient memory testing on large memory arrays using test code executed from cache memory
FI102788B (fi) * 1995-09-14 1999-02-15 Nokia Telecommunications Oy Yhteisen levydatan hallinta kahdennetussa tietokoneyksikössä
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US5822763A (en) * 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
JP3590203B2 (ja) * 1996-07-16 2004-11-17 株式会社東芝 記憶手段の制御方法及びその装置
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US5996049A (en) * 1997-04-14 1999-11-30 International Business Machines Corporation Cache-coherency protocol with recently read state for data and instructions
US6658536B1 (en) 1997-04-14 2003-12-02 International Business Machines Corporation Cache-coherency protocol with recently read state for extending cache horizontally
US6216218B1 (en) 1997-11-03 2001-04-10 Donald L. Sollars Processor having a datapath and control logic constituted with basis execution blocks
US6067601A (en) * 1997-11-03 2000-05-23 Brecis Communications Cache memory based instruction execution
US6421798B1 (en) 1999-07-14 2002-07-16 Computer Service Technology, Inc. Chipset-based memory testing for hot-pluggable memory
US7310706B1 (en) * 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
US7080210B2 (en) * 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for exclusive prefetch of a cache line from memory
US7089368B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for exclusively prefetching a block of cache lines from memory
US7089371B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory
US7080211B2 (en) * 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a cache line from memory
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US7188215B2 (en) * 2003-06-19 2007-03-06 Ip-First, Llc Apparatus and method for renaming a cache line
US20050144397A1 (en) * 2003-12-29 2005-06-30 Rudd Kevin W. Method and apparatus for enabling volatile shared data across caches in a coherent memory multiprocessor system to reduce coherency traffic
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
JP5520747B2 (ja) * 2010-08-25 2014-06-11 株式会社日立製作所 キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体
KR20150090491A (ko) * 2014-01-29 2015-08-06 삼성전자주식회사 전자 장치 및 전자 장치에서 데이터를 액세스하는 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
JPS55134459A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Data processing system
US4399506A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Store-in-cache processor means for clearing main storage
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4608688A (en) * 1983-12-27 1986-08-26 At&T Bell Laboratories Processing system tolerant of loss of access to secondary storage
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0272452A (ja) * 1988-06-27 1990-03-12 Digital Equip Corp <Dec> 無効要求を選別する方法及び装置
JPH02238534A (ja) * 1989-03-13 1990-09-20 Nippon I B M Kk マルチプロセツサ・システム
JPH086856A (ja) * 1994-06-15 1996-01-12 Nec Corp バスインタフェースアダプタ

Also Published As

Publication number Publication date
CA1306312C (en) 1992-08-11
EP0301354A2 (en) 1989-02-01
EP0301354A3 (en) 1990-08-22
US4959777A (en) 1990-09-25

Similar Documents

Publication Publication Date Title
JPH0247756A (ja) 多重プロセツサ・システム用書込み共用キヤツシユ回路
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6760819B2 (en) Symmetric multiprocessor coherence mechanism
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
US6434672B1 (en) Methods and apparatus for improving system performance with a shared cache memory
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6681292B2 (en) Distributed read and write caching implementation for optimized input/output applications
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US6463510B1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US5940864A (en) Shared memory-access priorization method for multiprocessors using caches and snoop responses
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US8015364B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
US5943685A (en) Method of shared intervention via a single data provider among shared caches for SMP bus
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
JP2000250884A (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US6807608B2 (en) Multiprocessor environment supporting variable-sized coherency transactions
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
EP1067459B1 (en) Symmetric multiprocessing system with unified environment and distributed system functions
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
KR20010015008A (ko) 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템