JP2662603B2 - 無効要求を選別する方法及び装置 - Google Patents

無効要求を選別する方法及び装置

Info

Publication number
JP2662603B2
JP2662603B2 JP1152049A JP15204989A JP2662603B2 JP 2662603 B2 JP2662603 B2 JP 2662603B2 JP 1152049 A JP1152049 A JP 1152049A JP 15204989 A JP15204989 A JP 15204989A JP 2662603 B2 JP2662603 B2 JP 2662603B2
Authority
JP
Japan
Prior art keywords
memory
cache
bus
processor
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.)
Expired - Lifetime
Application number
JP1152049A
Other languages
English (en)
Other versions
JPH0272452A (ja
Inventor
エル スターム リベッカ
マイケル ユーラー ジー
ヒュー ダーダン ダブリュー
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.)
DEIJITARU EKUITSUPUMENTO CORP
Original Assignee
DEIJITARU EKUITSUPUMENTO CORP
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 DEIJITARU EKUITSUPUMENTO CORP filed Critical DEIJITARU EKUITSUPUMENTO CORP
Publication of JPH0272452A publication Critical patent/JPH0272452A/ja
Application granted granted Critical
Publication of JP2662603B2 publication Critical patent/JP2662603B2/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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means

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

【発明の詳細な説明】 本願と同じ譲受人に譲渡された下記の特許出願が、本
願の原出願と同時に出願され、関連の主題を含んでい
る: 発明者Michael A.Callender,Geroge Michael Uhler及
びW.Hugh Durdanによる、「共有メモリとプライベート
キャッシュメモリを有するマルチプロセッサコンピュー
タシステム」、出願通し番号集 号。
(産業上の利用分野) この発明は一般にキャッシュメモリを用いたコンピュ
ータシステムに関し、より詳しくはいずれかまたは全て
のローカルキャッシュメモリ内に存在する共有データの
複数コピーを有するマルチプロセッサコンピュータシス
テムに関する。
(従来の技術) 一般的な単一プロセッサ計算機システムのアーキテク
チャは、ノイマンモデルの計算法のある変形と考えられ
る。このモデルによれば、命令とデータが同一メモリ内
に記憶され、プロセッサがそのメモリから1つづつ命令
をフェッチして、各命令で指定された演算を実行する。
プロセッサの速度が速まるにつれ、主コンピュータメモ
リのアクセス時間をプロセッサの計算速度ともっと適切
に整合させる方法が必要とされてきた。これを達成する
一つの周知の方法はキャッシュメモリの用いる方法で、
これは一般に主メモリよりはるかに速いアクセス時間を
有するが、主メモリよりも何倍も高価につくことがあ
る。従って、実用上の考慮から、通常キャッシュメモリ
は主メモリよりはるかに小さい。
キャッシュメモリは主メモリに記憶された情報の一部
の部分集合(サブセット)を含む、プロセッサと主メモ
リ間のデータ路を与えるシステムバスと処理装置(CP
U)との間に存在する。プロセッサがキャッシュ内にコ
ピーされている主メモリのロケーションヘアアクセスし
ようとするとき(キャッシュ‘ヒット’)、必要な値を
CPUへ与えるのに主メモリへアクセスする必要がなく、
プロセッサはより速く動作を再開できる。一方、プロセ
ッサがシャキャッシュ内にコピーされていない主メモリ
のロケーションへアクセスしようとするときには(キャ
ッシュ‘ミス’)、主メモリへのアクセスが行われなけ
ればならない。この場合、読出データはプロセッサとキ
ャッシュ両方に送られ、その後同じメモリロケーション
へアクセスする試みがキャッシュヒットになるようにす
る。こうして、プロセッサの実効メモリアクセス時間
は、キャッシュメモリの速いアクセス時間と主メモリの
遅いアクセス時間との中間値に減少される。通常キャッ
シュメモリは主メモリより1等級(マグニチュード)以
上小さいので、キャッシュメモリの制御するコンピュー
タサブシステムは、どのメモリロケーションがどのキャ
ッシュロケーションに対応しているのかを判定する方法
(マッピング機能)、及びすでに満杯のキャッシュ内へ
新たなメモリロケーションを書き込む場合に、どのキャ
ッシュロケーションにオーバライト(重ね書き)すべき
かを判定する方法(キャッシュ交換アルゴリズム)を備
えていなければならない。これらの構成オプションを妥
当に選択すると、90〜99%のキャッシュ‘ヒット率’
(キャッシュヒットをもたらすメモリアクセス要求の割
合)が得られる。
キャッシュ性能の別の重要な側面は、所望なメモリロ
ケーションが該当処理装置のキャッシュメモリ内にも存
在するかどうかを処理装置が判定するために辿らねばな
らない手順である。かかるキャッシュメモリの探索をで
きるだけ速く効率的に行うための多くの手法が、当該分
野に存在する。使用すべき的確な手法は、キャッシュ自
体の個々の実効方式、特にマッピング機能に依存する。
しかし一般的には、‘タグディレクトリ’または‘タグ
ストア’と呼ばれる構成が、キャッシュの速い探索を可
能にするものとして提供されている。タグストアとは、
各々がキャッシュメモリの1ブロックと対応した複数の
エントリからなるテーブルである。従来、キャッシュブ
ロックは幾つかの主メモリワードを含んでおり、キャッ
シュへのアクセスは全てこの基本のキャッシュブロック
サイズを単位として行われている。タグストアの各エン
トリは、キャッシュ内のいずれか1つのキャッシュブロ
ックを指定するのに充分なビットを含んでいる。主メモ
リからの1データブロックがキャッシュブロック内へマ
ッピングされるとき、そのキャッシュブロックに対応し
たタグストアのエントリに、主メモリにおけるデータブ
ロックのアドレスの高位ビットがロードされる。完全連
想式のキャッシュ設計では、キャッシュのサーチして所
望の主メモリロケーションを探索したい場合、プロセッ
サは所望のアドレスをタグストア内のエントリと比較す
る。合致が認められると、対応したワードが複数のワー
ドキャッシュブロック内から選ばれる。直接マッピング
式のキャッシュ設計では、対象アドレスの最下位ビット
がタグストアへのインデックスとして使われる。そし
て、アドレスの残りの高位ビットがタグストアのエント
リと比較され、キャッシュヒットを判定する。ヒット連
想式のキャッシュ設計では、対象アドレスの最下位ビッ
トがタグストア内における少数(例えば2または4)の
ロケーションへのインデックスとして使われ、これらの
ロケーションからインデックスドエントリが抽出され、
その限定数のエントリ毎に並列に比較が行われてキャッ
シュヒットを判定する。
CPUモジュールの平均メモリアクセス時間を減らすの
に有効な別の向上策は、キャッシュメモリをマルチレベ
ルの階層構造に編成し、最も小さく最も速い一次キャッ
シュメモリがCPUに最も近く位置し、徐々に遅く且つ大
きくなる二次キャッシュメモリがプロセッサと主メモリ
間のデータバスに沿って位置するように構成することで
ある。このような構成は、非常に速いメモリ装置の高コ
ストと比較的低コストなメモリ装置の遅いアクセス時間
との折哀を表している。最も速く最も小さい一次キャッ
シュメモリでキャッシュミスが生じると、CPUは階層内
で次に下位のキャッシュメモリにアクセスし、そこでの
大きいメモリサイズはキャッシュヒットのより大きい確
立を示唆している。そこでもキャッシュミスが生じる
と、CPUは階層内でさらに下位の二次キャッシュメモリ
にアクセスし、キャッシュ構造のどこかのレベルでキャ
ッシュヒットが生じるまで、あるいは主メモリへのアク
セスが開始されるまで、上記のプロセスが繰り返され
る。
しかし、キャッシュメモリの使用の結果システム効率
が高くなるにつれ、データ一貫性(コヒーレンス)の問
題が生じる。つまり、キャッシュロケーションがそれの
対応する主メモリロケーションと同じ値を保持している
ことが保証されねばならない。データの一貫性を維持す
るための一つの方法は、該当メモリロケーションへのメ
モリ書込アクセスが要求される度に、キャッシュメモリ
内に含まれるデータの変更値をキャッシュメモリ(キャ
ッシュ内に存在する場合)とそれに対応した主メモリロ
ケーションの両方へ書き込むことである。この方法は、
‘書込配分でない’ライトスルー(write−through)方
式と呼ばれている。ライトスルー方式は代替的に、その
メモリロケーションがキャッシュ内に存在していない書
込トランザクションのメモリロケーションを割り当てる
こともでき、この場合ライトスルー方式は書込割当機能
を用いる。データの一貫性を維持する別の方法はライト
バック(write−back)方式で、この方式では対応のキ
ャッシュロケーションをオーバーライトしなければなら
なくなるまで、変更データ値は遅い主メモリに書き込ま
れない。これら両方式を比べた得失として、ライトスル
ー方式では各書込アクセス毎に主メモリに更新するのに
メモリサブシステムのレベルで大きいバンド幅を必要と
する一方、ライトバック方式ではキャッシュの一貫性の
複雑さが増大する。充分なバンド幅を持つシステムで
は、ライトスルー方式の方がその単純さのため好ましい
ことが多い。
(発明が解決しようとする課題) 最近における処理装置のコスト低下が、ノイマン型マ
シン編成からさらに急速な発展を容易とし、共通のシス
テムバスを介して共通の主メモリスペースへアクセスを
行いながら、複数のプロセッサが相互に同時に動作する
方式が出現してきた。各プロセッサは、プロセッサとシ
ステムバス間に存在する各自のプライベートキャッシュ
を備えることができる。このようなマルチプロセッサシ
ステムでは、キャッシュメモリの使用がシングルプロセ
ッサシステムの場合よりシステム性能にとってより重要
となる。なぜなら、共有メモリへアクセスするため共通
のシステムバスを使用する際、各プロセッサが別のプロ
セッサと競合状態になるからである。同じく、1つのメ
モリロケーション内に記憶されている値が、いずれかま
たは全てのプロセッサのプライベートキャッシュメモリ
内へ以前に複製されているかもしれないため、データ一
貫性の問題も一層深刻になる。ローカルキャッシュメモ
リが各々ライトバック方式を採用する場合、1つのプロ
セッサがあるメモリロケーションの値を変更して、その
変更値を自分のキャッシュメモリにだけ書き込むとき、
他のいずれかのローカルキャッシュメモリ内におけるそ
のメモリロケーションのコピーもその1つのプロセッサ
によってなされた変更を反映することを、システムがな
んとか保証しなければならない。
(課題を解決するための手段) 本発明は、時分割式のシステムバスを介して共通のメ
モリスペースを共有する複数のCPUモジュールを備えた
マルチプロセッサコンピュータシステムに係わる。共通
のメモリスペースは、各々が共有システムメモリの一部
を含む複数のメモリモジュールとして実現できる。各CP
Uモジュールは、命令の実行を行うプロセッサと、プラ
イベートなキャッシュメモリ装置と、CPUモジュールの
効率的な制御及びCPUモジュールとシステム内の他の構
成要素との調整のために付加可能なサポート用ハードウ
ェアを具備する。
マルチプロセッサの分野では一般的なように、システ
ムバスにインタフェースされたいずれのモジュールも、
次の4種類のトランザクションのうち1つをバスに対し
て開始できる:空(nul1)、読取、書込及びデータ読
出。これらのトランザクションの1つがバス上で行われ
ている間の時間を、バスサイクルと呼ぶ。空トランザク
ションはいずれのモジュールもバスに要求を出していな
いときに生じ、全てのモジュールによって無視される。
読取トランザクションは、CPUがメモリモジュールに対
してメモリデータを戻す要求を送った場合に生じる。書
込トランザクションは、CPUがメモリモジュールに対し
て新たなメモリデータを書き込む要求を送った場合に生
じる。データ読出トランザクションは、前の読取トラン
ザクションに応じてメモリモジュールがデータをCPUへ
戻すときに生じる。各モジュール間でのシステムバスの
使用をめぐる競合は、システムバスの実行方式に特有
で、仲裁プロトコルの分野で周知な何らかの方法で仲裁
される。
CPUモジュールに関連してサポートハードウェアの一
部として、当該分野で周知な方式は、読出データキュー
(Read Data Queue)と呼ばれる機構をシステムバストC
PUモジュールの間に導入し得ることを示唆している。こ
の機構は、読取トランザクションに応じてメモリから戻
されてきたデータ値を保持する。読出データのキューイ
ングは、主メモリへのアクセスが行われている間、デー
タが戻ってくるのをただ待つ代わりに、プロセッサが他
のタスクを行えるようにすることによってシステムの性
能を高める。読出データキューは、複数のエントリを含
む先入れ先出し(FIFO)キューで、各エントリはデータ
フィールドと有効ビットを含んでいる。CPUモジュール
がデータ読出トランザクションを介して主メモリからデ
ータを受け取るとき、そのデータは読出データキューの
一端に置かれ、有効ビットがそのエントリにセットされ
る。CPUが送られてきたデータをそのキャッシュメモリ
内に受け入れる準備が整うと、最初の有効エントリがキ
ューの他端から取り出され、有効ビットがクリアされ
る。
インバリデート(無効要求)キュー(Invalidate Que
ue)と呼ばれる別のFIFO機構を、システムバスとCPUモ
ジュールとの間に導入することもできる。インバリデー
トキューも、各々が少なくともアドレスフィールドと有
効ビットを具備し‘インバリデート’と称する複数のエ
ントリを含んでいる。CPUが、一貫性トランザクション
のためにシステムバスをモニターする。前記ライトスル
ー方式を採用したシステムでは、CPUがシステムバス上
における書込トランザクションをモニターする。システ
ムバス上でいずれかのデータ書込トランザクションが検
出されると、そのトランザグションのアドレスがCPUモ
ジュールのインバリデートキューの一端に置かれ、有効
ビットがセットされる。CPUがインバリデートを処理可
能になると、最初の有効エントリがインバリデートキュ
ーの他端から取り出され、有効ビットがクリアされる。
書込トランザクションのアドレスがキャッシュ構造の内
容に照らしてチェックされ、存在すれば、そのアドレス
に対応したエントリは無効としてマーク表示される。こ
うして、CPUが古くなったデータ値を使うことが妨がれ
る。
マルチプロセッサシステムでのキャッシュの一貫性に
対する要求は、複雑である。マルチプロセッサシステム
におけるキャッシュの一貫性の一側面は、各キャッシュ
メモリがシステムバス上に生じたトランザクションを同
じ順序で処理すれば維持される。システムバス上に現れ
たインバリデートの順序は、それらを保存するFIFOキュ
ーによって保つことができる。同じく、データ読出トラ
ンザクションの順序も、それらのFIFOキューによって保
持できる。しかし残念ながら、システムバスに現れた際
における。データ読出トランザクションに対するインバ
リデートの順序、同じく逆にインバリデートに対するデ
ータ読出トランザクションの順序は、別個の読出データ
及びインバリデートキューを用いても通常保存できな
い。
上記したようなキューを用いずにキャッシュの一貫性
を維持する別の方法も、当該分野において存在する。例
えば、個々のプロセッサモジュール間における直接交信
の手段を与える追加のハードウェアをシステムに含めた
り;データの一貫性を保存する専用のコマンドをCPUの
命令セットに含めたり;あるいは主メモリと個々の各プ
ライベートキャッシュメモリとの間に直接交信の手段を
確立したりすることが可能である。さらに別の代替法で
は、どのデータが各々のキャッシュメモリ内に存在する
かをシステムが追跡し続けられるように包括的なディレ
クトリを構成し、必要に応じてシステムがキャッシュメ
モリ内のデータを無効にし、データの一貫性を維持する
ようにもできる。
しかし、上記の方法のいずれかを実施する際、システ
ムコストまたはシステム性能のどちらかで、ある程度の
犠牲が余儀なくされる。プロセッサ同士間もしくはキャ
ッシュメモリと主メモリ間に交信路を形成する場合、さ
らに包括的なキャッシュディレクトリを含める場合、上
記の犠牲は主に経済的な面で現れる一方、命令セットを
変更してデータの一貫性を保存しようとすると、システ
ム性能が犠牲にされることとなろう。
データの一貫性を保存するため、検出された全ての書
込トランザクションを処理する別の方式は、CPU(プロ
セッサ)のバス飽和を引き起こすことになろう。つま
り、システムバス上のどの書込トランザクションについ
ても各CPUでインバリデートの処理を行えば、マルチプ
ロセッサシステムの全計算時間のかなりの量がそれで占
められてしまう。
従って、プロセッサバスがオーバロードしないよう
に、プライベートプロセッサバスに送られるインバリデ
ートバスの数を、“選別(フィルタリング)する”効率
的な手段を実施するのが有利である。つまり、該当プロ
セッサのキャッシュ内に存在するメモリアドレスに対応
したインバリデータだけを、プライベートプロセッサバ
スへ送るのが有利である。
本発明は、マルチプロセッサシステム内のCPUモジュ
ールが、そのCPUモジュールのキャッシュメモリ内のデ
ータに影響を及ぼさない書込トランザクションを“選別
出力”するのを可能とした方法及び装置を提供する。こ
れによって、マルチプロセッサシステム内で発生される
過度なインバリデートトラヒックのため、システムの効
率が著しく減少されることはない。
本発明に従って設計されるマルチプロセッサコンピュ
ータシステムは、共通のシステムバスにインタフェース
された複数のCPUモジュールを具備する。これらのモジ
ュールが、コンピュータの主メモリを形成すると共に時
間分割式システムバスにインタフェースされた複数のメ
モリモジュールへのアクセスを共有する。CPUモジュー
ルは各々、中央プロセッサの他、キャッシュメモリの機
能を制御するのに必要なハードウェアと共に、主メモリ
内の情報の一部の部分集合を記憶するのに使われるロー
カルキャッシュメモリを具備している。本発明の一実施
例において、ローカルキャッシュメモリは、一次キャッ
シュとそれより大きい二次つまりバックアップキャッシ
ュで構成された階層構造を有する。一次キャッシュメモ
リに含まれるデータはバックアップキャッシュメモリ内
に含まれたデータの部分集合といてもよいし、あるいは
各キャッシュメモリ内のデータ集合(セット)を相互に
排他的にしてもよい。前者の場合、各プロセッサモジュ
ールの一次及びバックアップキャッシュメモリ内におけ
るコピー間でもデータの一貫性を保持する必要があるた
め、データ一貫性の問題がさらに複雑化する。
各CPUモジュール内のプロセッサバスが、CPUからメモ
リインタフェースへ至り、主メモリまたはキャッシュメ
モリからデータを読み取ったり、そこへデータを書き込
むためのデータ路を与える。プロセッサバスは、要求さ
れたキャッシュインバリデート(無効要求)を実行する
のにも使われる。各CPUモジュール内のメモリインタフ
ェースが、ローカルプロセッサバスを共通の時分割式シ
ステムバスに接続する。またメモリインタフェースは、
システム内における複数のCPUモジュール間でのバス競
合を処理するのに使われ仲裁プロトコルにも寄与する。
本発明では、プロセッサバスの他、メモリインタフェー
スとキャッシュコントローラロジック間での直接交信の
ため専用のデータ路が設けられている。以下、この専用
データ路をインバリデートバス(I−バス)と称し、こ
のバスがプロセッサバスと共にメモリインタフェースの
一部と見なされる。
潜在的なインバリデートの選別(フィルタリング)
は、各CPUモジュールのメモリインタフェースで行われ
る。メモリインタフェースが、他のCPUモジュールから
のメモリ書込について、共通のシステムバスをモニター
する。書込トランザクションが検出されると、メモリイ
ンタフェースがIバスを介してキャッシュコントローラ
と交信し、書込トランザクションが該当CPUモジュール
のキャッシュメモリ階層にコピーされたメモリロケーシ
ョンを含んでいるかどうかを判定する。書込ロケーショ
ンがCPUモジュールのキャッシュメモリ内のどこにも存
在しないと、書込トランザクションは無視され、どのイ
ンバリデートもキャッシュコントローラつまりCPUモジ
ュールに送られず、プロセッサバスはCPUモジュールに
よって利用可能な状態に留まる。書込ロケーションがCP
Uモジュールのキャッシュメモリ内にコピーされている
と、メモリインタフェースがプロセッサバスを介して書
込トランザクションの情報を送り、キャッシュコントロ
ーラ及びCPUモジュールによって受け取られ、インバリ
デートとして処理される。
本発明の前記及びその他の特徴は、添付の図面を参照
した好ましい実施例の説明から一層明かとなろう。
図面は発明の好ましい実施例を示し、各図中同じ部材
は同じ参照番号で表してある。
(実施例) 本発明によるマルチプロセッサベースのコンピュータ
システム8の全体構成が、第1図に示してある。システ
ムの共有主メモリを構成する多数(N個)のメモリモジ
ュール10が、当該分野で周知なように、バスの実行方式
に依存した手段によって共通のシステム12にインタフェ
ースされたものとして表してある。実際上、メモリモジ
ュール10の数Nは、主メモリの所望な実行方式に応じて
1以上の任意の数とし得る。本発明は2つ以上のプロセ
ッサモジュール14を用いた計算機システムを意図してい
るが、分かりやすくするため2つだけが図示してある。
第2図は、2つのCPUモジュール14を有する同様なマ
ルチプロセッサコンピュータシスム8を示す。各CPUモ
ジュール14は、緊密に接続された一次キャッシュ及びCP
U装置20からなる2レベルの階層キャッシュメモリ構造
と、バックアップキャッシュ/キャッシュコントローラ
装置22を使用する。また各CPUモジュール14は、システ
ムバス12へのアクセスに関する仲裁プロトコルに寄与す
るメモリインタフェース装置24も具備している。プロセ
ッサバス30が、CPU20とバックアップキャッシュ/キャ
ッシュコントローラ装置22の間、及びCPU20と各CPUモジ
ュール14のメモリインタフェース装置24の間での交信用
データ路を与える。システム用の共有主メモリは、同じ
くシステムバス12にインタフェースされた複数のメモリ
モジュール10の形で実施される。このような主メモリに
係わる実行及びインタフェース方式は、当該分野で周知
である。尚CPUモジュール14は、2レベルのキャッシュ
メモリ階層を用いたCPUの典型例である。
第2図に示したマルチプロセッサコンピュータシステ
ム8におけるキャッシュメモリの無効化は、次のように
行われる。メモリインタフェース装置24がシステムバス
12をモニターし、そこに現れる各書込トランザクション
を検出する。各書込トランザクション毎に、メモリイン
タフェース装置24が適切な無効化情報(書込アクセスの
アドレスを含む)を、それぞれの各CPUモジュール14内
のプロセッサバス30を介してCPU20とバックアップキャ
ッシュ/キャッシュコントローラ装置22の両方に送る。
本発明では、CPUモジュール内の異なる構成を開示す
る。すなわち第3図が、本発明に従って設計された第1
図のCPUモジュール14の1つを示している。CPUモジュー
ル14は、第2図に示した典型的なマルチプロセッサシス
テムと同様、CPU/一次キャッシュ装置20、キャッシュコ
ントローラ/バックアップキャッシュ装置22、メモリイ
ンタフェース装置24、これら3つの装置を相互に接続す
るプロセッサバス30で構成されている。CPU/一次キャッ
シュ装置20内には、複数のエントリのテーブルを与える
一次キャッシュタグストア44が含まれており、各エント
リが一次キャッシュメモリ内の1ブロックのデータと対
応している。ここで、本発明の一特徴は、一次キャッシ
ュタグストア44のコピー40がキャッシュコントローラ装
置22に含まれている点にある。第3図に示された別の特
徴は、メモリインタフェース装置24とキャッシュコント
ローラ/バックアップキャッシュ装置22の間の追加のデ
ータ路46が設けられていることである。この追加のデー
タ路46は、インバリデートバス(I−バス)と称する専
用バスである。
本発明のシステムにおけるキャッシュメモリの無効化
は、次のように行われる。メモリインタフェース装置24
が通常の方法でシステムバス12をモニターし、書込トラ
ンザクションをモニターする。書込トランザクションが
検出されると、メモリインタフェース装置24が書込アク
セスのアドレスを、インバリデートバス46を介してキャ
ッシュコントローラ/バックアップキャッシュ装置22に
送る。キャッシュコントローラ/バックアップキャッシ
ュ装置22は、書込トランザクションに含まれているロケ
ーションが一次キャッシュタグストア44またはバックア
ップキャッシュタグストア42のどちらかに存在している
かどうかを、バックアップキャッシュタグストア42と一
次キャッシュタグストアのコピー40に問い合わせる。書
込アクセスのロケーションがいずれかのキャッシュタグ
ストア内に存在すれば、メモリインタフェース装置24が
プロセッサバス30上にインバリデート(無効要求)を出
力し、これがCPU/一次キャッス装置20またはキャッシュ
コントローラ/バックアップキャッシュ装置22のいずれ
か、あるいは両方によって通常の方法で処理される。書
込トランザクションに含まれているロケーションがいず
れのキャッシュメモリにも存在しなければ、それ以上の
措置を講じる必要は何等なく、プロセッサバス30は自由
な状態のままである。
別の実施例(図示せず)では、キャッシュコントロー
ラ装置がCPUに直接に付設され、バックアップつまり二
次キャッシュ装置は使われない。この実施例での専用I
バス46はCPUに直接接続され、前述したように機能し
て、無効要求をプロセッサバス30へ選別出力する。
本発明の原理、好ましい実施例及び形態を、以上の明
細書において説明した。ここに開示した特定の形態は制
限するものでなく例示と見なされるので、本発明はそれ
らの形態に制限されるものと解釈されるべきでない。ま
た、発明の精神を逸脱することなく、各種の変形及び変
更が当業者にとっては可能であろう。
【図面の簡単な説明】
第1図は共有の主メモリを構成する複数のメモリモジュ
ールと複数のCPUモジュールを含み、これら全てが共通
のシステムバスにインタフェースされているマルチプロ
セッサコンピュータシステムのブロック図;第2図は同
様なマルチプロセッサコンピュータシステムのブロック
図で、各々2レベルの階層キャッシュメモリを有し、共
通のシステムバスにインタフェースされた2つのCPUモ
ジュールを示す;及び第3図は本発明に従って編成され
た第1図のCPUモジュールの1つのブロック図である。 8……コンピュータシステム、10……主メモリを構成す
るメモリモジュール、12……システムバス、14……プロ
セッサ(CPUモジュール)、20……CPU(中央処理装
置)、22……キャッシュコントローラ(及び二次キャッ
シュメモリ)、24……メモリインタフェース、30……プ
ロセッサバス、40……一次キャッシュタグストアのコピ
ー、42……二次キャッシュタグストア、44……一次キャ
ッシュメモリ及びそのタグストア、46……インバリデー
トバス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジー マイケル ユーラー アメリカ合衆国 マサチューセッツ州 01752 マルボロー コンコード ロー ド 1200 (72)発明者 ダブリュー ヒュー ダーダン アメリカ合衆国 マサチューセッツ州 02168 ウォーバン フェアリー ロー ド 51 (56)参考文献 特開 昭61−62150(JP,A) 特開 昭54−92137(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】a.データを記憶し、メモリ制御信号を発生
    する複数のアドレス可能な記憶ロケーションを含む主メ
    モリ手段と、 b.各々のプロセッサが、 i.前記主メモリ手段に記憶されたデータの部分集合を記
    憶する一次キャッシュメモリと該一次キャッシュメモリ
    内に記憶されたデータのメモリアドレスを指示する一次
    キャッシュタグストアとを含み、命令に応じてデータを
    処理し、前記主メモリ手段内のアドレス可能な記憶ロケ
    ーションにアクセスするトランザクションを開始する中
    央処理装置、及び ii.前記主メモリ手段に記憶されたデータの部分集合を
    記憶する二次キャッシュメモリ、該二次キャッシュメモ
    リ内に記憶されたデータのメモリアドレスを指示する二
    次キャッシュタグストア、及び前記一次キャッシュグダ
    ストアのコピーを記憶する一次キャッシュタグストアコ
    ピー手段を含み、前記中央処理装置とは別個のキャッシ
    ュコントローラを含む、 データを処理する複数のプロセッサと、 c.前記主メモリ手段と前記プロセッサとを相互に接続
    し、且つ前記プロセッサの各々を相互に接続するシステ
    ムバスと、 を備えており、 d.前記プロセッサの各々がさらにメモリインタフェース
    を含み、該メモリインタフェースが、 i.前記システムバス上の書込トランザクションをモニタ
    ーするため、前記メモリインタフェースをシステムバス
    に接続する接続手段、 ii.前記システムバス上で検出された書込トランザクシ
    ョンを受け取る受取手段、 iii.検出された書込トランザクションに関連のメモリア
    ドレスを、前記キャッシュコントローラに伝送するイン
    バリデートバス手段、及び iv.前記受取手段を前記キャッシュコントローラと前記
    中央処理装置に接続する前記インバリデートバスとは別
    個のプロセッサバス を含んでおり、前記受取手段によって前記キャッシュコ
    ントローラに伝送されたメモリアドレスが前記一次キャ
    ッシュタグストアまたは前記キャッシュコントローラに
    おける前記二次キャッシュタグストア内に存在すれば、
    前記メモリアドレスが無効要求として前記プロセッサバ
    スにて前記一次キャッシュおよび二次キャッシュへと伝
    送され、存在しなければ前記書込トランザクションが前
    記プロセッサによって無視される、 ことを特徴とするコンピュータシステム。
JP1152049A 1988-06-27 1989-06-14 無効要求を選別する方法及び装置 Expired - Lifetime JP2662603B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/212,416 US5058006A (en) 1988-06-27 1988-06-27 Method and apparatus for filtering invalidate requests
US212416 1994-03-11

Publications (2)

Publication Number Publication Date
JPH0272452A JPH0272452A (ja) 1990-03-12
JP2662603B2 true JP2662603B2 (ja) 1997-10-15

Family

ID=22790922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1152049A Expired - Lifetime JP2662603B2 (ja) 1988-06-27 1989-06-14 無効要求を選別する方法及び装置

Country Status (5)

Country Link
US (1) US5058006A (ja)
EP (1) EP0349122B1 (ja)
JP (1) JP2662603B2 (ja)
CA (1) CA1324221C (ja)
DE (1) DE68924206T2 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
CA2011807C (en) * 1989-03-20 1999-02-23 Katsumi Hayashi Data base processing system using multiprocessor system
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5212781A (en) * 1990-03-21 1993-05-18 Chips And Technologies, Inc. Secondary cache control for a computer system
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
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
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5673394A (en) * 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
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
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
EP0541319B1 (en) * 1991-11-04 1997-05-02 Sun Microsystems, Inc. Write through virtual cache memory, alias addressing, and cache flushes
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US5528755A (en) * 1992-12-22 1996-06-18 International Business Machines Corporation Invalid data detection, recording and nullification
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5506967A (en) * 1993-06-15 1996-04-09 Unisys Corporation Storage queue with adjustable level thresholds for cache invalidation systems in cache oriented computer architectures
US5640531A (en) * 1993-06-22 1997-06-17 Unisys Corporation Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
US5604882A (en) * 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US5636365A (en) * 1993-10-05 1997-06-03 Nec Corporation Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
JP3200757B2 (ja) * 1993-10-22 2001-08-20 株式会社日立製作所 並列計算機の記憶制御方法および並列計算機
US5572704A (en) * 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
US5603004A (en) * 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
JPH07334450A (ja) * 1994-06-10 1995-12-22 Mitsubishi Denki Semiconductor Software Kk インタフェイス装置
JPH08185359A (ja) * 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5717942A (en) * 1994-12-27 1998-02-10 Unisys Corporation Reset for independent partitions within a computer system
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
US5701313A (en) * 1995-02-24 1997-12-23 Unisys Corporation Method and apparatus for removing soft errors from a memory
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
DE69628079T2 (de) * 1995-03-31 2004-02-26 Sun Microsystems, Inc., Santa Clara Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5696937A (en) * 1995-04-28 1997-12-09 Unisys Corporation Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation 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
US5612865A (en) * 1995-06-01 1997-03-18 Ncr Corporation Dynamic hashing method for optimal distribution of locks within a clustered system
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5822611A (en) * 1995-06-05 1998-10-13 Donley; Greggory D. Method for cycle request with quick termination without waiting for the cycle to reach the destination by storing information in queue
US5740400A (en) * 1995-06-05 1998-04-14 Advanced Micro Devices Inc. Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
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
US5745728A (en) * 1995-12-13 1998-04-28 International Business Machines Corporation Process or renders repeat operation instructions non-cacheable
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
US5687348A (en) * 1996-01-29 1997-11-11 Unisys Corporation Variable-depth, self-regulating cache queue flushing system
US5835946A (en) * 1996-04-18 1998-11-10 International Business Machines Corporation High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations
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
US5920892A (en) * 1996-08-26 1999-07-06 Unisys Corporation Method and system for inhibiting transfer of duplicate write addresses in multi-domain processor systems with cross-bus architecture to reduce cross-invalidation requests
US6065097A (en) * 1996-08-29 2000-05-16 Sun Microsystems, Inc. Apparatus and method for sharing a unified memory bus between external cache memory and primary memory
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6279098B1 (en) 1996-12-16 2001-08-21 Unisys Corporation Method of and apparatus for serial dynamic system partitioning
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US5970253A (en) * 1997-01-09 1999-10-19 Unisys Corporation Priority logic for selecting and stacking data
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6295598B1 (en) * 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
US7174401B2 (en) * 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US7706302B2 (en) * 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
US8683128B2 (en) * 2010-05-07 2014-03-25 International Business Machines Corporation Memory bus write prioritization
US8838901B2 (en) 2010-05-07 2014-09-16 International Business Machines Corporation Coordinated writeback of dirty cachelines
GB2521227B (en) * 2013-12-16 2020-11-25 Advanced Risc Mach Ltd Invalidation of index items for a temporary data store
US10402337B2 (en) * 2017-08-03 2019-09-03 Micron Technology, Inc. Cache filter

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
JPS5849945B2 (ja) * 1977-12-29 1983-11-08 富士通株式会社 バツフア合せ方式
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4562536A (en) * 1983-06-30 1985-12-31 Honeywell Information Systems Inc. Directory test error mode control apparatus
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
JPS6162150A (ja) * 1984-09-03 1986-03-31 Mitsubishi Electric Corp デ−タ処理装置
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
JPH0212543A (ja) * 1988-06-30 1990-01-17 Nec Corp 情報処理システム

Also Published As

Publication number Publication date
EP0349122A3 (en) 1991-04-24
JPH0272452A (ja) 1990-03-12
EP0349122B1 (en) 1995-09-13
EP0349122A2 (en) 1990-01-03
DE68924206D1 (de) 1995-10-19
US5058006A (en) 1991-10-15
DE68924206T2 (de) 1996-05-15
CA1324221C (en) 1993-11-09

Similar Documents

Publication Publication Date Title
JP2662603B2 (ja) 無効要求を選別する方法及び装置
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
US6622214B1 (en) System and method for maintaining memory coherency in a computer system having multiple system buses
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US6049847A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
US6901495B2 (en) Cache memory system allowing concurrent reads and writes to cache lines to increase snoop bandwith
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
EP0347040B1 (en) Data memory system
US8433856B2 (en) Pseudo least recently used replacement/allocation scheme in request agent affinitive set-associative snoop filter
JPH0786849B2 (ja) 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
EP1224553B1 (en) Multi-processor system and method of accessing data therein
JPH07152647A (ja) 共有メモリマルチプロセッサ
US6918021B2 (en) System of and method for flow control within a tag pipeline
KR19980086620A (ko) 대기 행렬 및 스누프 테이블을 갖는 메모리 제어기
KR100300792B1 (ko) 공유 메모리 멀티프로세서용 계층적 버스 단순 코마 구조
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
JPS63253448A (ja) マルチ計算機装置
JPH0387948A (ja) マルチプロセッサシステム
US20040030950A1 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
JPH0822418A (ja) 仮想アドレス空間管理装置
JPH06195263A (ja) キャッシュ・メモリ・システム
JPH0563828B2 (ja)