JPH10501914A - 共用キャッシュ・メモリ装置 - Google Patents

共用キャッシュ・メモリ装置

Info

Publication number
JPH10501914A
JPH10501914A JP9506194A JP50619497A JPH10501914A JP H10501914 A JPH10501914 A JP H10501914A JP 9506194 A JP9506194 A JP 9506194A JP 50619497 A JP50619497 A JP 50619497A JP H10501914 A JPH10501914 A JP H10501914A
Authority
JP
Japan
Prior art keywords
data
cache memory
processor
bit
shared
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.)
Withdrawn
Application number
JP9506194A
Other languages
English (en)
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
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH10501914A publication Critical patent/JPH10501914A/ja
Withdrawn 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

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)

Abstract

(57)【要約】 本発明はマルチプロセッサ・システムにおいて共用キャッシュ3として使用するためのキャッシュ・メモリ装置に関する。キャッシュ・メモリ3は複数の記憶ブロックによって編成され、記憶ブロックの有効データ又は共用データを表すステータス情報を記憶するための記憶手段13を有する。キャッシュ・メモリ3は、更に、記憶ブロックの1つにデータを選択的に記憶するための及びそれに対応してステータス情報をセットするための論理手段15を含む。

Description

【発明の詳細な説明】 共用キャッシュ・メモリ装置 技術分野 本発明は、マルチプロセッサ・システムにおける共用キャッシュとして使用す るためのキャッシュ・メモリ装置に関するものである。なお、そのメモリ・スペ ースは複数の記憶ブロックでもって編成される。更に、本発明は、そのようなマ ルチプロセッサ・システムを組み込んだコンピュータ・システム及びそのような マルチプロセッサ・システムにおける共用キャッシュ・メモリ装置を操作する方 法に関するものである。 背景技術 米国特許第5,025,365号から、マルチプロセッサ・ネットワークのた めのスヌーピング・コヒーレンシ・プロトコルが知られている。いずれのプロセ ッサも、それ自身のプライベート・キャッシュ及びバス・インターフェース装置 を有し、ネットワークが通常のシステム・バスを介して接続される。各プロセッ サは、それ自身のキャッシュ・ディレクトリ及びイメージ・ディレクトリを有し 、それらディレクトリは非アトミック的に相互に複写し合っている。そのスヌー ピング・プロトコルは、ディレクトリ更新の非アトミック性と 結合されたディレクトリの二重性を利用してプロセッサ−キャッシュの使用可能 度を最大にすると共にプロセッサ−キャッシュのアクセス・タイムを最小にし、 従って、高パフォーマンスのプロセッサをサポートする。 ヨーロッパ特許出願第0349123号には、共用メモリ及びプライベート・ キャッシュ・メモリを有するマルチプロセッサ・コンピュータ・システムが開示 されている。一般的に行われているように、このマルチプロセッサ・システムは 、CPU、メモリ、及びI/Oアダプタの間のコミュニケーション機構として共 通のシステム・バスを使用して実施される。命令実行のパフォーマンスを向上す るキャッシュ・メモリのようなフィーチャを各CPUモジュールに包含すること も一般的なことである。多くのアーキテクチャは、ハードウエアが個々のCPU キャッシュ・メモリにおけるデータとメイン・メモリにおけるデータ及び他のキ ャッシュ・メモリにおけるデータとの整合性を維持する機構を使用することを必 要とする。そのような方法の1つは、各CPUがシステム・バス上のトランザク ションを監視すること、及び当該CPUのキャッシュをインコヒーレントにする トランザクションがそのバス上に現れる時に各CPUが適当なアクションをとる ことを含む。CPUが入力トランザクション情報をサービスすることができるま でそのCPUがそれらの情報を保持するために待ち行列を使用する場合、バス・ インターフェースは、その待ち行列化された項目が正しい順序でキャッシュによ り処 理されることを保証しなければならない。これが行われない場合、或タイプの共 用データ・プロトコルは正しく動作することができない。 そのヨーロッパ特許出願第0349123号は、CPUキャッシュによるサー ビスを必要とするトランザクションの直列化をハードウエアが保証する方法を開 示している。その開示された直列化方法は、共用メモリ・プロトコルが正しく動 作すること保証する。 既知の信号プロセッサ・システムでは、プロセッサは、現在実行中のプログラ ムの変数に対する高速アクセスを行うために、命令及びデータをシステム・メモ リからキャッシュ・メモリに転送する。そのキャッシュ・メモリにない更なるデ ータが必要である場合、そのようなデータがメイン・メモリから転送されてその キャッシュ・メモリにおける選択されたデータと置換される。どのデータが置換 されるかを決定するために、種々の技法又はアルゴリズムが利用される。キャッ シュ・メモリにおけるデータはメイン・メモリにおけるデータの複製であるので 、一方のメモリにおけるデータに対する変更は他方のメモリにおいても同様に変 更或いは通知されなければならない。キャッシュ・メモリのデータとメイン・メ モリのデータとの間の整合性を維持するという問題はコヒーレンシと呼ばれる。 例えば、キャッシュ・メモリにおけるデータが修正される場合、メイン・メモリ における対応するデータも同様に修正されなければならない。キャッシュ・メモ リにおけるデータと同時にメイン・メモリにおけるデータを修正するためのスキ ームはライトスルー・キャッシュとして知られている。別の方法として、キャッ シュ・メモリのデータだけが修正される場合、そのような修正されたキャッシュ ・データはメイン・メモリのデータを、それが置換される時に上書きしなければ ならない。 多くのコンピュータ・システム、一般的には、大型システムでは、メイン・メ モリはシステム・プロセッサ以外の装置によってもアクセス可能である。例えば 、プロセッサがそれのキャッシュ・メモリにおけるデータを操作している時、他 の装置がデータをメイン・メモリに書き込むことが可能である。メイン・メモリ に書き込まれたデータが現在そのキャッシュ・メモリにあるデータを上書きする 場合、コヒーレンシ問題が惹起される。この問題を処理するために、バス・スヌ ーピングのような方法を使用することがその分野では知られている。これは、メ イン・メモリに書き込むためのバスを監視し、データがキャッシュ・メモリにあ るかどうかを知るためにそのキャッシュ・メモリと関連したタグ・ディレクトリ をチェックすることを含む。そのデータがキャッシュ・メモリに存在する場合、 古いデータがプロセッサによって使用されないようそのエントリを無効化するた めのフラッグがキャッシュ・タグ・ディレクトリにおいてセットされる。 一般に、マルチプロセッサ・システムでは、処理装置、メイン・メモリ、周辺 装置、及び他の装置が、すべて、メッセ ージ、命令、データ、アドレス、プロトコル信号等をすべての装置へ及びすべて の装置から搬送するマルチドロップ・システム・バスによって結合される。大き いメモリ容量を持ったマルチプロセッサ・システムでは、メイン・メモリは安価 な低速メモリ素子から構成される。データを得るためのメイン・メモリへの各ア クセスは、システム・バスのデータ及びアドレス部分の使用及びかなりの量のメ モリ・アクセス・タイムを必要とし、従って、コンピュータ・システムのパフォ ーマンスを厳しく阻害する。大きいメイン・メモリ容量を持ったコンピュータ・ システムでは、そのメモリのかなりの部分が非常にまれにしか使用されないとい うことがわかっている。一方、或データ・ブロック、即ち、メモリ・ロケーショ ンは処理装置(又は、プロセッサ)によって非常に頻繁に使用される。 この特徴のために、多くの大メモリ容量のコンピュータ・システムは、頻繁に 使用されるデータのコピーを処理装置にとってはローカル的に記憶するための小 容量の高速度メモリ・バッファ、即ち、キャッシュを使用する。頻繁に使用され るデータを高速のローカル・メモリ・キャッシュに配置することによって、処理 時間及びシステム・バスの使用を大いに減少させることができる。処理装置が或 アドレスからデータを読み取る必要がある時、それは高速のデータ・キャッシュ をアクセスする。そのリクエストされたデータ・アドレスがそのデータ・キャッ シュにない場合、その時だけ、システム ・バスを介して低速のメイン・メモリへのアクセスが行われる。キャッシュ・メ モリの付加を効率的にするためには、キャッシュ・メモリのアクセス・タイムは 、メイン・メモリのアクセス・タイムよりも約5乃至15倍も速くなければなら ない。 更に、最も最近にアクセスされたデータは、最近アクされていないデータより もずっと処理装置によって再びアクセスされる易いことがわかっている。 データ・キャッシュは処理装置と、処理装置、メイン・メモリ、及びそのシス テムにおける他のすべての装置の間を結合するシステム・バスとの間に挿入され る。一般に、或形式の仮想アドレシングはデータ・キャッシュにおけるスペース をアドレスするために使用される。 処理装置からの読取り命令時におけるデータ・キャッシュのオペレーションは 簡単である。リクエストされたデータがキャッシュ・メモリにある場合、それは 直接に処理装置へ送られる。しかし、そのデータがキャッシュ・メモリにない場 合、キャッシュ・メモリはそのデータをメイン・メモリから取り出し、それをそ のキャッシュ・メモリに記憶し、更にそれを処理装置へ送る。メモリへの書込み の場合、種々の可能な実施方法がある。1つの可能な方法では、データをキャッ シュ及びメイン・メモリの両方に書き込むことができる。しかし、書込みオペレ ーション時にキャッシュ・メモリにだけ書き込むこと及びキャッシュ・メモリに おけるそのロケーシ ョンのデータが更新されてしまって最早メイン・メモリにおけるデータと整合し ないということを表すフラッグをキャッシュ・メモリにおけるそのロケーション に与えることによって、かなりの量のプロセッサ・タイムが節約される。そこで 、メイン・メモリは、このメモリ・ブロックが新しいブロックのために場所をあ けるためにキャッシュ・メモリから除去されるべき時だけ更新可能である。この 方法は、所与のキャッシュ・ワードがキャッシュ・メモリにおいて置換される前 に何回も更新される時、メイン・メモリに対する不必要な書込みオペレーション を節約する。 今日では、多数のマルチプロセッサ・システム、即ち、複数の処理装置を有す るコンピュータ・システムが市場で入手可能である。メモリ・キャッシュを使用 するマルチプロセッサ・システムでは、各プロセッサがそれ自身の専用のメモリ ・キャッシュを有すること、或いは、それらすべてが単一のメモリ・キャッシュ を共用することが可能である。これらのシステムにおけるデータ・キャッシュの 使用は、複数のプロセッサをサービスする必要があるため、しかも各プロセッサ がそれ自身のデータ・キャッシュを持つ場合には複数のキャッシュの間でデータ の整合性を維持する必要もあるため、前述のものよりも更に複雑である。更に、 或製造業者は、今や、2つのレベルのキャッシュ・メモリ、即ち、小型で非常に 高速の一次キャッシュと、大型でわずかに低速であることの多い二次キャッシュ とを持ったコンピュータ・システムを製造 している。 マルチコンピュータ・システムにおけるシステム・バス及びシステム・バス・ プロトコルの設計に関する種々の従来技術の方法が、ACM Transactions on Comp uter Systems,Vol.4,No.4(November 1986)において「キャッシュ・コヒーレ ンス・プロトコル:マルチプロセッサ・シミュレーション・モデルを使用した評 価(Cache Coherence Protocols: Evaluation Using A Multiprocessor Simulat ion Model)」と題して J.Archibald及び J.Baer により検討されている。 データの整合性を維持するためのもう1つの概念が、North-Holland 社の mic roprocessing and microprogramming 32(1991)の215乃至220ページにお ける「ストア・イン・キャッシュの概念を持ったマルチプロセッサ・システムに おけるデータ整合性(Data Consistency In A Multiprocessor System With Sto re-In Cache Concept)」と題した G.Doettling による記事及び米国特許第5 ,113,514号から知られている。MESIプロトコルとしても知られてい る G.Doettling による記事で説明されている方法は、ヨーロッパ特許出願第0 575651及び国際公開番号第95/03568号から知られたマルチプロセ ッサ・システムにおいても使用されている。 MESIプロトコルは4つの状態、即ち、修正(Modified)、排他( Exclusive)、共用(Shared)、及び無効(Invalid)を 有する。修正キャッ シュ・ラインは、実際のコピーを自らのキャッシュに保持するプロセッサの1つ によって変更されるキャッシュ・ラインである。排他キャッシュ・ラインは、こ のラインに書き込み得る唯一のプロセッサによって所持されるキャッシュ・ライ ンである。共用キャッシュ・ラインは、複数のプロセッサのキャッシュにコピー されるキャッシュ・ラインである。無効キャッシュ・ラインは、キャッシュ・ラ インの無効コピーである。 これらのキャッシュ・ラインの状態は3ビット、即ち、多重コピー・ビット( MC−ビット)、変更ビット(C−ビット)、及び有効ビット(V−ビット)を 使用して各プライベート・キャッシュに記録可能である。バス・スヌーピング・ アクションが各プロセッサにおいて開始され、しかる後、コマンド及びそれのア ドレスがバス上に置かれる。コマンド及びそれのアドレスがスヌーピング・プロ セッサによって検査され、必要なアクションがとられる。プロセッサの各々は、 そのアドレスを求めてそれのキャッシュ・ディレクトリをサーチする。キャッシ ュ・ライン・ヒット、即ち、バス上のアドレスとディレクトリに記憶されたアド レスとの一致は、自らのキャッシュ・ライン・ディレクトリにおけるキャッシュ ・ライン・ヒットを検出したプロセッサによって他のプロセッサへ信号される。 ヒットが生じたこのキャッシュ・ラインが有効でありそして変更される場合、こ のキャッシュ・ラインはそのシステムでは実際のコピーを表す。この場合、実際 のキャッシュ・ラインがメイン・メモリに再伝送される。これは、「キャスト・ アウト(cast−out)」とも呼ばれる。キャッシュ・ライン・ヒットを有 するキャッシュのキャッシュ・ディレクトリにおけるキャッシュ・ライン・ステ ータスがそれに対応して更新される。 このスヌーピング・アクションはバス・アドレス及びディレクトリを問い合わ せるために、及びその結果を他のプロセッサへ信号するために数サイクルを必要 とする。それは、通常は、同期的オペレーションである。 発明の開示 本発明の目的は、マルチプロセッサ・システムにおいて共用キャッシュとして 使用するための改良キャッシュ・メモリ装置、そのようなキャッシュ・メモリ装 置を組み込んだ改良マルチプロセッサ・システム及び改良コンピュータ・システ ムを提供すること、並びに、マルチプロセッサ・システムにおいて共用キャッシ ュ・メモリ装置を動作させるための方法を提供することにある。その本発明の目 的は本願の請求の範囲における独立項に示された特徴によって解決される。 本発明のキャッシュ・メモリ装置は、記憶ラインのような複数の記憶ブロック の形で編成される。それらの記憶ブロックは、キャッシュ・メモリ装置における スペースの仮想アドレシングのために使用可能である。キャッシュ・メモリ装置 は、各記憶ブロックに対するステータス情報を記憶するため の記憶手段を有する。そのような記憶手段は、各記憶ブロックに関するそのよう なステータス情報が記憶可能である専用の記憶スペースによって、そのキャッシ ュ・メモリ装置において実現可能である。ステータス情報は、それぞれのステー タス情報が属する記憶ブロックに記憶されている或いは記憶されるべき有効デー タ又は共用データを表す。キャッシュ・メモリ装置は、更に、記憶ブロックにデ ータを選択的に記憶するための、及びそれに対応したステータス情報をセットす るための論理手段を含んでいる。共用データを表すステータス情報を設けること は、マルチプロセッサ・システムにおけるプロセッサのプライベート・キャッシ ュに比べて、これが共用キャッシュ・メモリ装置の短いアクセス・タイムを利用 することを可能にするので有益である。プロセッサの1つが共用キャッシュ・メ モリ装置の1つの記憶ブロックに存在するデータをリクエストする場合、及びこ れらのデータのステータスが「共用」である場合、共用キャッシュ・メモリ装置 はそのブロックに記憶されたデータを更なるアクセス・タイム・ペナルティなし に、即ち、リクエスティング・プロセッサにより要求されたこれらのデータがス ヌーピング・プロセッサのプライベート・キャッシュ・メモリの1つ又は複数個 にも存在すること又は存在しないことを他のプロセッサが信号するのを待つこと なく、バスを通して出力することができる。これは、スヌーピング・プロセッサ のプライベート・キャッシュからのそのリクエストされたデータのキャスト・ア ウトがプロトコルの定義によって生じ得ないためである。リクエストされたデー タのステータスが有効であり且つキャッシュ・メモリ装置において共用される場 合、これは、スヌーピング・プロセッサのプライベート・キャッシュにおけるこ れらのデータの他のどのような更なるコピーに対しても真実でなければならない 。なぜならば、そうでない場合、プライベート・キャッシュ及び共用キャッシュ ・メモリ装置に記憶されたデータの整合性が維持され得ないためである。 マルチプロセッサ・システムのオペレーション中、プロセッサの1つが有効デ ータをフェッチする場合、これらのデータは共用キャッシュ・メモリ装置にも記 憶される。これは、変更されたデータがメイン・メモリを更新するためにスヌー ピング・プロセッサの1つによってキャスト・アウトされる場合にも行われる。 この場合、共用キャッシュ・メモリ装置はその変更されたデータの更新されたコ ピーを対応する記憶ブロックに記憶する。これは、そのキャッシュ・メモリ装置 に組み込まれた論理手段、即ち、複数の論理ゲートによって制御される。 本発明の好適な実施例によれば、MESIプロトコルは、プライベート・キャ ッシュ・メモリ装置及び共用キャッシュ・メモリ装置に記憶されるデータの整合 性を維持するために使用される。この場合、共用キャッシュ・メモリ装置の各記 憶ブロックに対するステータス情報は、有効ビット(V−ビット)及び多重コピ ー・ビット(MC−ビット)より成る。 記憶ブロックの1つの多重コピー・ビットが論理的に1である場合、これは、そ の記憶ブロックのデータが共用されること、即ち、異なるプロセッサの少なくと も2つのプライベート・キャッシュ・メモリ装置がこれらのデータのコピーをそ こに記憶されていることを表す。 本発明の好適な実施例によれば、共用キャッシュ・メモリ装置における共用デ ータを表すステータス情報は、命令のような一般に変更されないままになってい るデータがプロセッサの1つによってリクエストされる場合、論理的1にセット される。これは、そのリクエストされたデータが他のプロセッサのプライベート ・キャッシュ・メモリ装置の1つによって既に共用されているかどうかに無関係 である。命令のようなデータは、一般に、変更されないままであるものと仮定す る。一般的には、プライベート・キャッシュ・メモリ装置の1つが変更される( キャスト・アウト状態を生じさせる)有効データを保持するという状態はまれに しか生じないであろうということを意味する。従って、同じデータに対する他の プロセッサによる第2のリクエストに応答するために共用キャッシュ・メモリ装 置の短いアクセス・タイムを利用することが、大抵の場合、可能である。 以下では、本発明の好適な実施例が図面を参照して更に詳細に説明される。 図面の簡単な説明 第1図は、本発明による共用キャッシュ・メモリ装置及びマルチプロセッサ・ システムの概略的なブロック図である。 第2図は、共用キャッシュ・メモリ装置の利用が行われない時のマルチプロセ ッサ・システムの信号図である。 第3図は、共用キャッシュ・メモリ装置の利用が行われる時のマルチプロセッ サ・システムの信号図である。 発明を実施するための最良の形態 第1図のマルチプロセッサ・システムは複数のプロセッサP1、P2、・・・ 、Pnより成る。第1図には、それらのプロセッサのうちの2つだけ、即ち、P 1及びP2が例として示される。そのマルチプロセッサ・システムのプロセッサ は、システム・バス1を介して相互に、及びそのシステムのメイン・メモリ2及 び共用キャッシュ・メモリ3とコミュニケートする。それらプロセッサの各々は プライベート・キャッシュ・メモリを有する。プロセッサP1及びP2は、それ ぞれ、プライベート・キャッシュ・メモリ4及び5を有する。プライベート・キ ャッシュ・メモリの各々は複数の記憶ブロックより成る記憶用の記憶アレイを有 する。この場合、記憶ブロックは記憶ライン、即ち、ライン1乃至nとして実現 される。更に、プライベート・キャッシュ・メモリの各々は、それらのラインの 各々に対する有効ビット(V−ビット)、多重コピー・ビット(MC−ビット) 、及び変更ビット(C−ビット)を記憶するための記憶スペースを有する。第1 図 に示された例では、記憶スペース7の第1行は、記憶アレイ6の記憶ライン1に 対するV−ビット、MC−ビット、及びC−ビットを保持する。同じことが更な るライン2乃至nに対しても同様に適用する。この例では、ライン1のV−ビッ ト、MC−ビット、及びC−ビットは、それぞれ、論理的1、0、0に等しい。 ライン2に対する対応するビットは1、1、0であり、ライン3に対するビット は1、0、1であり、そしてラインnに対するビットは0、X、Xである。「X 」は、このビット位置が「無指定」ビットであることを表す。これは、有効ビッ トが論理的0である場合に現実となる。 プライベート・キャッシュ・メモリ5の記憶アレイ8における記憶ライン1の 対応するビットは0、X、Xであり、更なるライン2乃至nに対するビットは1 、1、0;0、X、X;・・・・;1、1、0である。これらのビットはプライ ベート・キャッシュ・メモリ5の記憶スペース9に記憶される。そのプライベー ト・キャッシュ・メモリの各々は、それらの記憶ラインに記憶されたデータの論 理的アドレスを保持するディレクトリを有する。例えば、プライベート・キャッ シュ・メモリ4のディレクトリ10は、記憶ライン1に記憶されたデータの論理 的アドレス及び更なるライン2乃至nに記憶されたデータの更なるアドレスを保 持する。同じことがプライベート・キャッシュ・メモリ5のディレクトリ11及 び図面には示されていないそのマルチプロセッサ・システムにおける他のプロセ ッサの他のプライベート・キャッシュ・ メモリのディレクトリにも同様に適用する。 共用キャッシュ・メモリ3は、記憶ライン1乃至mを記憶するための記憶アレ イ12を有する。その共用キャッシュ・メモリ3に記憶可能な記憶ラインの数m は、一般には、プライベート・キャッシュ・メモリの記憶ラインの数nよりもず っと大きい。しかし、共用キャッシュ・メモリ3の記憶アレイ12の記憶ライン におけるビット位置の数は、プライベート・キャッシュ・メモリの1つの記憶ラ インにおけるビット位置の数に等しい。これは、この例において使用されるアド レシングの方法にとって必須である。共用キャッシュ・メモリ3は、更に、記憶 アレイ12の記憶ラインの各々に対するステータス情報を記憶するように働く記 憶スペース13を含んでいる。その記憶スペース13は、記憶アレイ12の各記 憶ラインに対する2ビットのステータス情報、即ち、V−ビット及びMC−ビッ トを有する。第1図に示された例では、記憶アレイ12の記憶ライン1は論理的 0に等しい有効ビットVを有する。その結果、多重コピー・ヒットMCは「無指 定」(X)である。ライン2乃至mの対応するステータス・ビットは1、1;0 、X;・・・・;0、Xである。更に、共用キャッシュ・メモリ3は、記憶アレ イ12における記憶ライン1乃至mに記憶されたデータの論理的アドレス、即ち 、記憶ライン1に記憶されたデータの論理的アドレス及び更なる記憶ライン2乃 至mにそれぞれ対する論理的アドレスを保持したディレクトリ14を含んでいる 。共用キャッシュ・メ モリ3のオペレーションは論理装置15によって制御される。論理装置15は、 記憶アレイ12の記憶ラインのうちの選択された1つにデータを記憶することを 可能にし、それに対応して記憶スペース13にステータス情報をセットする。 プロセッサP1、P2、・・・、Pn及び共用キャッシュ・メモリ3は信号線 16及び17によって相互接続される。信号線16がプロセッサの1つによって 付勢される場合、これは他のプロセッサの及び共用キャッシュ・メモリ3のバス ・スヌーピング・オペレーションを生じさせる。共用キャッシュ・メモリ3のバ ス・スヌーピングは論理装置15によっても得られる。 信号線17は、ヒットを検出したスヌーピング・プロセッサ、即ち、それのデ ィレクトリにおいてアドレス一致を検出したプロセッサによって付勢される。信 号線17が付勢され且つキャスト・アウトが必要とされる場合、この信号は、キ ャスト・アウト・オペレーションが終了するまでアクティブのままである。 後掲の表1には、キャッシュに記憶されたデータの整合性を維持するために本 願において使用されるMESIプロトコルに従って、リクエスティング・プロセ ッサ及びスヌーピング・プロセッサにおけるステータス情報の可能な状態に対す る8つの例が示される。第1グループの例(例1乃至例4)では、リクエスティ ング・プロセッサは、読取り参照のためにそれの記憶アレイ6のラインの1つ、 例えば、ラインjに 記憶するための論理アドレスiを有するデータ・シーケンスを必要とする。これ は、リクエスティング・プロセッサP1はその必要なデータ・シーケンスをフェ ッチするだけなので、これは「フェッチのためのライン・フェッチ」と呼ばれる 。これに対して、例5乃至例8の「記憶のためのライン・フェッチ」では、リク エスティング・プロセッサは、書込みのためのデータ・シーケンスを必要とする 。 初期状態は、論理的アドレスiを持ったデータがリクエスティング・プロセッ サのプライベート・キャッシュ・メモリに存在しないか、或いは論理的アドレス iを持ったデータがプライベート・キャッシュ・メモリに存在する場合にV−ビ ットが論理的に0であるということである。 その結果、リクエスティング・プロセッサは論理的アドレスiと共にライン・ フェッチ・コマンドをバス上に与え、他のプロセッサP2乃至Pn及び共用キャ ッシュ・メモリ3のバス・スヌーピング・オペレーションを開始させる。そのバ ス・スヌーピングはプロセッサP1により信号線16を介して開始される。 第1の例では、ここで考察されるスヌーピング・プロセッサは、リクエストさ れたデータ・ラインの論理的アドレスiに一致した論理的アドレスをそれのディ レクトリに持っていない。そのような一致が生じる場合、対応データは有効では なく、それは論理的0に等しいV−ビットによって表される。この場合、このス ヌーピング・プロセッサが必要とするアクション又はステータス情報の変更はな い。 次の例2、3、及び4に対しては、ここで考察されるスヌーピング・プロセッ サのディレクトリはリクエストされたデータの論理的アドレスiと一致する論理 的アドレスを保持するものと仮定する。第2の例では、対応するデータ・ライン は次のようなステータス情報を有する。 V−ビットは1であり、MC−ビットは0であり、そして C−ビットも0である。これは、スヌーピング・プロセッサがそのリクエストさ れたデータ・ラインの有効なコピーを有すること、メイン・メモリ2に記憶され る同じ論理的アドレスiの対応するデータに関してこのデータ・ラインが未変更 であること、及びMC−ビットによって表される更なるコピーが他のスヌーピン グ・プロセッサには存在しないことを意味する。この場合、リクエストされたデ ータ・ラインは、メイン・メモリ2によって或いは共用キャッシュ・メモリ3に よってシステム・バス1上に出力され、リクエスティング・プロセッサP1のプ ライベート・キャッシュ・メモリに入力される。その結果、リクエスティング・ プロセッサ及びスヌーピング・プロセッサは、論理的アドレスiを有するデータ ・ラインの有効なコピーを保持する。これは多重コピー・ビット(MC−ビット )によって反映される。更に、共用キャッシュ・メモリ3は、前のバス・オペレ ーションによって未だそれのMC−ビットが1にセットされていない場合にそれ を1にセットするであろう。 リクエストされたデータが記憶されるプロセッサP1の記憶アレイ6における 記憶ラインに属する記憶スペース7のラインにおける多重コピービットが論理的 1になるようにセットされる。同じことが、アドレスiを有するリクエストされ たデータを保持するスヌーピング・プロセッサの記憶アレイにおける記憶ライン に属する多重コピー・ビットに対しても同様に適用する。従って、リクエスティ ング・プロセッサ及 びヒット状態が生じたスヌーピング・プロセッサにおけるV−ビット、MC−ビ ット、及びC−ビットによって表されたステータス情報は1、1、0である。 例3は、スヌーピング・プロセッサにおける多重コピー・ビットが最初は論理 的1に等しいという点で例2とは異なる。これは、それらのプロセッサのプライ ベート・キャッシュ・メモリにおいて複数のコピーが存在することを意味する。 この例では、ここで考察したスヌーピング・プロセッサによって如何なるアクシ ョンも遂行される必要がない。 例4では、スヌーピング・プロセッサにおけるステータス情報の初期状態は1 、0、1である。即ち、スヌーピング・プロセッサはリクエストされたデータの 有効なコピーを保持するが、このコピーは前に変更されているので、C−ビット は論理的1である。これは、スヌーピング・プロセッサのプライベート・キャッ シュ・メモリに記憶されているこのコピーがメイン・メモリ2に記憶されている 論理的アドレスiを持った対応するデータ・ラインに最早等しくないことを意味 する。リクエスティング・プロセッサP1がデータの無効なコピーをメイン・メ モリから取得しないようにするために、スヌーピング・プロセッサはその変更さ れたデータ・ラインをキャスト・アウトしなければならない。従って、スヌーピ ング・プロセッサは次のようなアクションを遂行しなければならない。 アドレスiを有する変更されたデータ・ラインが、メイン ・メモリ2における対応するデータを更新するために、スヌーピング・プロセッ サによってそれのプライベート・キャッシュ・メモリからシステム・バス1を介 してメイン・メモリ2に出力される。従って、スヌーピング・プロセッサのプラ イベート・キャッシュ・メモリに記憶されているデータ・ラインがメイン・メモ リ2に記憶されている同じ論理的アドレスiを有するデータに等しくないので、 スヌーピング・プロセッサは対応する変更ビットをスイッチ・オフしなければな らない。更に、スヌーピング・プロセッサは、それの多重コピー・ビットを論理 的1になるようにスイッチ・オンする。これは、メイン・メモリ2を更新するた めにスヌーピング・プロセッサのプライベート・キャッシュ・メモリから出力さ れる変更されたデータがリクエスティング・プロセッサP1のプライベート・キ ャッシュ・メモリに入力されるためである。その結果、リクエスティング・プロ セッサP1のプライベート・キャッシュ・メモリ4の記憶スペース7における対 応する多重コピー・ビットも論理的に1になるようにスイッチ・オンされる。更 に、その変更されたデータは共用キャッシュ・メモリに与えられ、それのV−ビ ット及びMC−ビットが1にセットされる。 次に、例5乃至8において、リクエスティング・プロセッサは論理的アドレス iを有するデータ・ラインにデータを記憶することを望んでいるので、そのリク エスティング・プロセッサはアドレスiを有するデータ・ラインを要求する。こ れは「記憶のためのライン・フェッチ」と呼ばれる。例5は、プロセッサP1の プライベート・キャッシュ・メモリ4へ入力されたアドレスiを有するデータ・ ラインに属する変更ビットが論理的1になるようにセットされるという事実を別 にすれば、リクエスティング・プロセッサ及びスヌーピング・プロセッサのステ ータス情報に関しては、例1とは異なっていない。これは、プロセッサP1がア ドレスiを有するこのデータ・ラインに新しいデータを記憶しようとするためで ある。 それに関しては、システム・バス1からプロセッサP1のプライベート・キャ ッシュ・メモリ4に入力されるデータ・ラインは、このデータ・ラインが入力さ れる記憶アレイ6の記憶ラインへのプロセッサP1の記憶オペレーションによっ て変更されることが予想される。例6は、次の点で例5とは異なる。即ち、スヌ ーピング・プロセッサにおけるここで考察するデータ・ラインの初期ステータス 情報は、スヌーピング・プロセッサのプライベート・キャッシュ・メモリに記憶 されているアドレスiを持ったデータ・ラインが有効であること(V−ビット= 1)及び多重コピー・ビット及び変更ビットの両方とも論理的0に等しいことを 表す。それらのプロセッサのうちの1つだけが有効な変更されたデータ・ライン をそれのプライベート・キャッシュ・メモリに記憶させることができるので、こ のデータ・ラインはスヌーピング・プロセッサでは無効にされなければならない 。 例7では、スヌーピング・プロセッサの初期状態では、多重コピー・ビットは 論理的1に等しい。例6における場合と同じ理由で、このデータ・ラインはスヌ ーピング・プロセッサのプライベート・キャッシュ・メモリでは無効にされる。 例8では、スヌーピング・プロセッサのプライベート・キャツシュ・メモリが、 当初は、アドレスiを有する有効な変更されたデータ・ラインを保持する。この 状態は例4における初期状態と同じである。再び、スヌーピング・プロセッサは 、メイン・メモリ2を更新するためにキャスト・アウト作用を遂行する。更新さ れたデータは、例4の場合のように、システム・バス1を介してプロセッサP1 のプライベート・キャッシュ・メモリ4にも入力される。しかし、例4とは違っ て、アドレスiを有するデータ・ラインは、これらのデータをリクエスティング ・プロセッサが変更しようとしているので、スヌーピング・プロセッサのプライ ベート・キャッシュ・メモリでは無効にされる。再び、これは、リクエスティン グ・プロセッサP1のプライベート・キャッシュ・メモリ4における対応するス テータス情報によって反映される。この場合、V−ビット及びC−ビットは論理 的1となり、MC−ビットは論理的0となる。これは、キャスト・アウトを行っ たスヌーピング・プロセッサからシステム・バス1を介してリクエスティング・ プロセッサP1のプライベート・キャッシュ・メモリ4に入力される更新された データを、リクエスティング・プロセッサP1が変更しようとしていることを表 す。こ れは、プロセッサP1のプライベート・キャッシュ・メモリ4に入力されたこの データ・ラインがプロセッサP1にとって排他的であることを表すステータス情 報によって予測される。更に、共用キャッシュ・メモリはそれのV−ビットも0 にセットするであろう。 MESIプロトコルによる上記のキャッシュ・コヒーレンシ・スキームは、バ ス・プロトコルを示す第2図の信号図において反映されている。第2図は、ライ ン・フェッチのようなバス・オペレーションに対するバス・スヌーピングのタイ ミングの例を示す。マルチプロセッサ・システムのプロセッサの1つ、例えば、 プロセッサP1はそれのプライベート・キャッシュ・メモリにおいてキャッシュ ・ミスを有するものと仮定し、更に、それのプライベート・キャッシュ・メモリ に入力されるべきアドレスiを持ったデータ・ラインを必要とするものと仮定す る。従って、リクエスティング・プロセッサは、それのリクエストを他のバス参 加装置にコミュニケートするために、対応するコマンドCmdをシステム・バス 上に与える。又、リクエスティング・プロセッサは、どのデータ・ラインが必要 とされるかを指定するために、必要なデータ・ラインのアドレスiをシステム・ バス1上に出力する。フェッチ・コマンドCmd及びアドレスi Adrは、リ クエスティング・プロセッサによってサイクル1においてシステム・バス上に同 時に出力される。それと同時に、リクエスティング・プロセッサは、そのシステ ムの他のプロセッサ及 び共用キャッシュ・メモリ3を「ウェイク・アップ」するために、信号線16を 付勢する。これは、他のプロセッサ及び共用キャッシュ・メモリ3のバス・スヌ ーピングを開始させるためである。以下では、共用キャッシュ・メモリ3はリク エストされたデータの有効なコピーを持っていないものと仮定し、従って、スヌ ーピング・プロセッサのプライベート・キャッシュ・メモリに関連する信号だけ が第2図に示される。 リクエスティング・プロセッサによってシステム・バス上に出力される信号C md/Adrはシステム・バス1に沿って電磁波として伝播する。システム・バ ス1の電気的特性のために、信号Cmd/Adrは2サイクルの間システム・バ ス1上に残っている。これは、プロセッサからプロセッサへの近端受信をサポー トするために必要である。近端に位置したスヌーピング・プロセッサ、換言すれ ば、リクエスティング・プロセッサに隣接したスヌーピング・プロセッサは、反 射した電磁波がシステム・バス1の遠端から戻った時に信号Cmd/Adrを受 信することができる。これは、リクエスティング・プロセッサによって発生され た時の信号Cmd/Adrの電圧レベルが論理的0から論理的1への完全な電圧 揺動の半分だけであるためである。従って、近端のスヌーピング・プロセッサが 検出するに十分な電圧レベルの結果信号をシステム・バス1の近端において発生 させるためには、オリジナル信号Cmd/Adr及びそれの反射した電磁波の重 畳が必要である。第2図に示されたタイミングは近端におけ るスヌーピング・プロセッサ、例えば、プロセッサP2のものである。近端のス ヌーピング・プロセッサは、サイクル3の時にそれのバス・イン・レジスタにお いて信号Cmd/Adrを受信する。信号Cmd/Adrのこの受信は信号線1 6における信号CmdSelによって開始される。信号Cmd/Adrかスヌー ピング・プロセッサによって受信されると直ちに、そのスヌーピング・プロセッ サのプライベート・キャッシュ・メモリのディレクトリにおいてディレクトリ・ サーチが行われる。これは、ディレクトリに記憶された論理的アドレスとリクエ ストされたデータ・ラインの論理的アドレスiとの一致が存在するかどうかをチ エックするためである。そのようなアドレス一致がディレクトリにおいて見つか る場合、及びここで考察されたスヌーピング・プロセッサのプライベート・キャ ッシュ・メモリにおける対応する記憶ラインの有効ビット(V−ビット)が論理 的1である場合、ヒット状態が存在する。この状態は、信号線17を介して他の プロセッサ及び共用キャッシュ・メモリ3に信号される。 自分のプライベート・キャッシュ・メモリのディレクトリにおいてヒットを見 つけたスヌーピング・プロセッサはサイクル4において信号「ヒット・アウト」 を発生する。その信号「ヒット・アウト」は1サイクル後のサイクル5において リクエスティング・プロセッサによって受信される。その受信された信号は「ヒ ット・イン」と名付けられる。信号「ヒット・イン」の受信は、スヌーピング・ プロセッサのうちの 少なくとも1つのプライベート・キャッシュ・メモリにおけるリクエストされた データ・ラインのコピーの存在をリクエスティング・プロセッサに知らせる。信 号「ヒット・イン」は「ヒット・ウインドウ」時にリクエスティング・プロセッ サによって受信されるだけである。この場合、「ヒット・ウインドウ」はサイク ル5として事前定義される。その結果生じる両プロセッサの作用が表1上に示さ れる。スヌーピング・プロセッサにとってキャスト・アウト作用が必要ない場合 、ここで考察されるスヌーピング・プロセッサは対応する多重コピー・ビットを 論理的1に転換しなければならない。この場合、信号「ヒット・アウト」は1サ イクルの間、即ち、サイクル4の間、スヌーピング・プロセッサにより信号線1 7を介して発生されるだけである。これが第2図に示された状態である。 しかし、キャスト・アウト作用が必要である場合、これは、スヌーピング・プ ロセッサが1サイクルより長い間その信号「ヒット・アウト」を発生することに よって他のバス参加装置に信号される。この結果、表1を参照して既に説明した ように、リクエスティング・プロセッサ及びスヌーピング・プロセッサによって とられる適当な作用が生じる。 第1図に示されたマルチプロセッサ・システムの共用キャッシュ・メモリ3は 「ストア・スルー・モード」で動作する。これは、メイン・メモリ2におけるデ ータ・ラインの更新がメイン・メモリ2の更新と同時に共用キャッシュ・メモリ 3 に書き込まれる。共用キャッシュ・メモリ3はメイン・メモリ2よりもずっと短 いアクセス・タイムを有し、それはシステム・バスのより効率的な使用、従って 、そのマルチプロセッサ・システムのより高速のオペレーションに貢献する。共 用キャッシュ・メモリ3の記憶スペース13に記憶されている有効ビット及び多 重コピー・ビットは、MESIプロトコルに従って、プライベート・キャッシュ ・メモリにおける対応するステータス・ビットと同じ方法で制御される。記憶ア レイ12に記憶されているデータ・ラインの有効ビット(V−ビット)が論理的 1である場合、これは、このデータ・ラインがメイン・メモリ2に記憶されてい る同じアドレスを持った同じデータ・ラインの有効なコピーであることを表す。 アドレスiを持った有効なデータ・ラインの多重コピー・ビット(MC−ビッ ト)が論理的1である場合、これは、そのマルチプロセッサ・システムにおける 2つの異なるプロセッサの少なくとも2つのプライベート・キャッシュ・メモリ 内にこのデータ・ラインの有効なコピーが存在することを表す。共用キャッシュ ・メモリ3の記憶スペース13に多重コピー・ビットを設けることはシステム・ バス1の使用の更なる改善にとって必須である。 以下では、共用キャッシュ・メモリ3のオペレーションの例が示される。 初期状態では、プロセッサの1つ、例えば、プロセッサP1が、アドレスiを 有するデータ・ラインを必要とするもの と仮定する。このデータ・ラインはプロセッサP1のプライベート・キャッシュ ・メモリ4に存在しないので、プライベート・キャッシュ・メモリ4にはキャッ シュ・ミスがある。その結果、プロセッサP1はアドレスiと共にライン・フェ ッチ・コマンドCmd/Adrをシステム・バス1(第1図参照)上に与える。 リクエストされたデータ・ラインは、他のプロセッサにおける何れのプライベー ト・キャッシュ・メモリにも、或いは共用キャッシュ・メモリ3の記憶アレイ1 2にも記憶されていないものと仮定する。これは、リクエストされたデータ・ラ インがそのマルチプロセッサ・システムのメイン・メモリ2に存在するだけであ ることを意味する。その結果、リクエストされたデータ・ラインはメイン・メモ リ2からシステム・バス1上に出力され、そしてリクエスティング・プロセッサ P1のプライベート・キャッシュ・メモリ4に入力される。リクエスティング・ プロセッサP1のプライベート・キャッシュ・メモリ4へのそのリクエストされ たデータ・ラインの入力動作と同時に、そのリクエストされたデータ・ラインは 共用キャッシュ・メモリ3に入力され、そして記憶アレイ12の記憶ラインの1 つにも記憶される。 共用キャッシュ・メモリ3におけるこの記憶オペレーションは論理装置15の 制御の下に行われる。今や、マイクロプロセッサP1の記憶アレイ6に記憶され ているリクエストされたデータ・ラインの有効ビット、多重コピー・ビット及び 変更ビットは、それぞれ、1、0、0、である。共用キャッ シュ・メモリ3の記憶アレイ12に記憶されているリクエストされたデータ・ラ インの有効ビットも論理的に1であり、対応する多重コピー・ビットは論理的に 0である。共用キャッシュ・メモリ3の記憶アレイ12に記憶されているリクエ ストされたデータ・ラインの有効ビット及び多重コピー・ビットは、そのリクエ ストされたデータ・ラインが今記憶されている記憶アレイ12における記憶ライ ンに属する記憶スペース13の記憶フィールドに記憶される。 アドレスiを有する同じデータ・ラインに対する第2のリクエストが他のプロ セッサ、例えば、プロセッサP2から来るものと仮定する。その第2のリクエス トはリクエスティング・プロセッサP2のプライベート・キャッシュ・メモリ5 におけるキャッシュ・ミスによるものである。再び、リクエスティング・プロセ ッサP2はフェッチ・コマンド及び対応するアドレスi Cmd/Adrをシス テム・バス1上に出力する。これはプロセッサP1にヒット状態を信号させる( 第2図参照)。そのヒットは、プロセッサP1により信号線17を介して他のプ ロセッサ及び共用キャッシュ・メモリ3へ信号される。 又、共用キャッシュ・メモリ3は、アドレスiを有するリクエストされたデー タ・ラインが記憶アレイ12に記憶され且つ有効であるのでヒットを有する。共 用キャッシュ・メモリ3は、ウインドウ・サイクル(第2図におけるサイクル5 参照)が終了するまで待つ。複数のサイクルにわたってアク ティブのままである「ヒット・アウト」信号が存在しない場合、これはキャスト ・アウト状態がないことを意味する。これは、メイン・メモリ2からシステム・ バス1を介して入力されたアドレスiを有するデータ・ラインの有効なコピーを P1プロセッサが変更していないので、ここで考察された例では真実である。プ ロセッサP1のプライベート・キャッシュ・メモリ4におけるヒット状態は、ア ドレスiを有するデータ・ラインが記憶されている記憶アレイ6の記憶ラインに 属する記憶スペース7における多重コピー・ビットが論理的1にセットされると いうことを引き起こすだけである。ウインドウ・サイクルが終了した後、キャス ト・アウトが生じなかった場合に、共用キャッシュ・メモリ3はリクエストされ たデータ・ラインをシステム・バス1上に出力する。これは論理装置15の制御 の下に行われる。そのリクエストされたデータ・ラインはリクエスティング・プ ロセッサP2のプライベート・キャッシュ・メモリ5に入力される。 リクエストされたデータ・ラインが記憶されている記憶アレイ12のラインに 属する記憶スペース13の記憶フィールドにおける多重コピー・ビットが論理装 置15の制御の下に論理的に1にセットされる。これは、プロセッサP1及びP 2のプライベート・キャッシュ・メモリ4及び5の両方にこのデータ・ラインの 有効なコピーが存在するためである。又、リクエスティング・プロセッサP2の 記憶スペース9における対応する多重コピー・ビットもそれに対応してオンにさ れ る。 更に、第3のプロセッサ、例えば、第1図に示されていないプロセッサP3が アドレスiを有する同じデータ・ラインをリクエストするものと仮定する。再び 、これは、そのリクエストされたデータ・ラインをそれの記憶アレイ12に記憶 している共用キャッシュ・メモリ3においてヒット状態を生じさせる。このデー タ・ラインに対して記憶スペース13に記憶されたそれぞれのステータス情報は 、記憶スペース12に記憶されているこのデータ・ラインが有効であること、及 びこのデータ・ラインの2つ以上の有効なコピーがそのシステムにおける異なる プロセッサの異なるプライベート・キャッシュ・メモリに存在することを表す。 定義によって、この状態は、リクエストされたデータ・ラインがそれらプロセッ サの1つにとって排他的ではない場合にだけ生じ得る。この場合、異なるキャッ シュ・メモリに記憶されたデータの整合性は最早維持され得ないので、そのよう な状態は許されない。 その結果、アドレスiを有する排他的なデータ・ラインがプロセッサのプライ ベート・キャッシュ・メモリの1つに存在すること、及びこのデータ・ラインに 対する多重コピー・ビットがプライベート・キャッシュ・メモリのうちの少なく とも他の1つにおいて或いは同時に共用キャッシュ・メモリ3の記憶スペース1 3において論理的に1であることは、MESIプロトコル(データの整合性を維 持するために本発明のこの好適な実施例において使用される)によって排除され る。定義によって、プロセッサP3によりリクエストされたアドレスiを有する リクエストされたデータ・ラインは、共用キャッシュ・メモリ3の記憶スペース 13における対応する多重コピー・ビットが論理的に1であるために、如何なる プロセッサの排他的データ・ラインでもないので、キャスト・アウトは生じ得な い。 その結果、共用キャッシュ・メモリ3は、ウインドウ・サイクル(第2図にお けるサイクル5を参照)が終了するまで待つ必要はない。従って、共用キャッシ ュ・メモリ3は、リクエストの受信直後にそのリクエストされたデータ・ライン をシステム・バス1上に出力する。更に、それは、システム・バス1からリクエ スティング・プロセッサP3のプライベート・キャッシュ・メモリに入力される 。 その後、このデータ・ラインに対して他のプロセッサから更なるリクエストが ある場合、同じプロセスが同様に行われる。このデータ・ラインの有効なコピー を有するプロセッサの1つがこのラインに記憶しようとする場合、再び定義によ って、そのプロセッサは記憶オペレーションの前にライン無効化コマンドを発生 しなければならない。これは、共用キャッシュ・メモリ3を含むすべてにキャッ シュにおけるこのデータ・ラインのすべてのコピーの無効化を生じさせ、更に、 アドレスiを有するこのデータ・ラインのすべての対応する多重コピー・ビット を論理的に0にリセットさせる。 マイクロプロセッサ・システムには、プロセッサによって 頻繁に読み取られそして長時間の間或いは永久的に変更されないままになってい るソフトウエア・オブジェクトが存在することが多い。そのようなソフトウエア ・オブジェクトは、一般には、コードより成る。その背景は、多くの現代のマイ クロプロセッサ・アーキテクチャでは、命令セットが事前定義され、命令がそれ 自体では変更され得ないということである。 以下では、プロセッサP1はアドレスjを有するデータ・ラインをリクエスト し、しかも、そのリクエストされたデータは命令であると仮定する。プロセッサ によって発生される対応するコマンドは「命令フェッチのためのライン・フェッ チ」と呼ばれる。それによって、他のバス参加装置は、アドレスjを有する命令 のラインをリクエスティング・プロセッサP1に与えるためにそのリクエストさ れたライン・フェッチが実行されることを通知される。前に考察した例における ように、必要なデータ・ラインがそのマイクロプロセッサ・システムの如何なる キャッシュにも存在しないものと初期状態において仮定する。その結果、そのリ クエストされたデータ・ラインはメイン・メモリ2によってシステム・バス1上 に出力され、リクエスティング・プロセッサP1のプライベート・キャッシュ・ メモリ4及び共用キャッシュ・メモリ3の両方に入力される。前に考察した正規 の場合と違って、アドレスjを有するこのデータ・ラインに対する多重コピー・ ビットは、たとえこのデータ・ラインの更なるコピーが他の プロセッサの他の如何なるプライベート・キャッシュ・メモリにも存在しなくて も、記憶スペース13において直ちにオンにされる。これは、このデータ・ライ ンがリクエスティング・プロセッサP1によって変更されることが比較的ありそ うもなく、或いは不可能でさえあるためである。その結果、そのリクエストされ たデータ・ラインはプロセッサP1にとって排他的なデータ・ラインとはならな いものと仮定する。これは、既に共用キャッシュ・メモリ3の記憶スペース13 においてアドレスjを有するそのリクエストされたデータ・ラインの多重コピー ・ビットを、プロセッサの1つによって、この例ではプロセッサP1によって、 このラインの第1リクエスト時に論理的1にセットすることを可能にする。従っ て、リクエスティング・プロセッサのMC−ビットは1にセットされなければな らない。 アドレスjを有する同じデータ・ラインに対する第2リクエストが、例えば、 プロセッサP2から生じる場合、これは、ウインドウ・サイクルが終了するまで 共用キャッシュ・メモリ3が待つ必要がないという利点を有する。キャスト・ア ワト状態は起こり得ないということは既に始めから明らかであるので(それは論 理的1である多重コピー・ビットによって表されるので)、アドレスjを有する そのリクエストされたデータ・ラインは、プロセッサP2からの対応するリクエ ストの共用キャッシュ・メモリ3による受信の後に、共用キャッシュ・メモリ3 から直接に出力される。再び、これは論理 装置15の制御の下に行われる。 たとえプロセッサP1がプロセッサP2の第2リクエストの前にアドレスjを 有するデータ・ラインに記憶することを望むことはありそうもないことであって も、それが起こることはあり得る。この場合、プロセッサP1は、共用キャッシ ュ・メモリ3の記憶アレイ12に記憶されている対応するデータ・ラインがプロ セッサP1の記憶オペレーションの前に無効化されるように、コマンドをシステ ム・バス1上に発生しなければならない。共用キャッシュ・メモリ3におけるこ のデータ・ラインの無効化は論理装置15の制御の下に行われる。 第3図に示された信号図は、共用キャッシュ・メモリ3によるマルチプロセッ サ・システムのパフォーマンスの向上を表す。第3図に示された状態は、リクエ スティング・プロセッサ及びスヌーピング・プロセッサに関して第2図に示され た状態に対応する。第2図に加えて、共用キャッシュ・メモリ3の信号(共用キ ャッシュ)が第3図に示される。共用キャッシュ・メモリ3はシステム・バス1 の遠端において設けられる。バス1の遠端は高インピーダンスを有するので、そ のバス上のコマンド(Cmd/Adr)は、その対応する電磁信号が遠端に到達 する時、既に共用キャッシュ・メモリ3によって受信されている。その結果、そ の信号の受信のための時間は、既述のように、電磁信号の反射を待たなければな らない近端のプロセッサに比べて、共用キャッシュ・メモリ 3にとってより短いものである。 共用キャッシュ・メモリ3はシステム・バス1の遠端に設置されるので、リク エスティング・プロセッサからの電磁信号(Cmd/Adr)は既にサイクル2 において共用キャッシュ・メモリ3のバス・イン・レジスタで受信されている。 それによって、共用キャッシュ・メモリ3のディレクトリ14におけるディレク トリ・サーチが開始される。ここで考察される例では、ディレクトリ14におい てアドレス一致が存在する。更に、共用キャッシュ・メモリ3に記憶されている 対応するデータ・ラインは有効であるものと仮定し、このデータ・ラインの対応 する多重コピー・ビットは論理的1であるものと仮定する。 これに応答して、リクエストされたデータ・ラインが記憶されている記憶アレ イ12が論理装置15の制御の下にアクセスされる。このデータ・ラインは、サ イクル3、4、5、及び6における4つのデータの「ショット」で、データ・ア ウト・レジスタを介してシステム・バス1上に出力される。その結果、バス上へ のそのリクエストされたデータ・ラインの出力オペレーションはサイクル6にお いて達成される。これは、共用キャッシュ・メモリ3における多重コピー・ビッ トのために可能にされ、それは、ウインドウ・サイクル(サイクル5)を待つ必 要なくシステム・バス1上にデータを直接に出力することを可能にした。共用キ ャッシュ・メモリ3がウインドウ・サイクルを待たなければならない場合、リク エストされたデータ・ラインの出力はサイクル6において開始することができ、 サイクル9において終了するであろう。従って、その結果は3サイクルのパフォ ーマンス向上であり、それは本発明の教示によるものである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウイル、ウド ドイツ国ホルツゲルリンゲン、ウエンゲル トステイジ 47 (72)発明者 ドットリング、ゲハルド ドイツ国デッテンハウゼン、カールシュト ラーセ 22 (72)発明者 レップラ、ベルンド ドイツ国エーニンゲン、ケーニグスシュト ラーセ 93 (72)発明者 タスト、ハンス ヴェルマール ドイツ国ヴェイル・イン・ショーエンバッ ハ、ハルトマンシュトラーセ 66 (72)発明者 マク、パク キン アメリカ合衆国ニューヨーク州ポキプシ ー、リッジウッドテラス 13 (72)発明者 ジャクソン、カシー、エム. アメリカ合衆国ニューヨーク州ポキプシ ー、グリンブッシュドライブ 21 (72)発明者 シェーン、ウイリアム、ダブリュ. アメリカ合衆国ニューヨーク州ポキプシ ー、ケルタハウス・ドライブ 18 (72)発明者 ラングストン、キース アメリカ合衆国ウルスター・パーク、ハー デンバーグ・ロード 114

Claims (1)

  1. 【特許請求の範囲】 1.マルチプロセッサ・システムにおいて共用キャッシュとして使用するための キャッシュ・メモリ装置にして、 前記キャッシュ・メモリ装置は複数の記ブロック(ライン1、ライン2、・・ ・、ラインm)でもって編成され、前記記憶ブロックの各々に対するステータス 情報(V−ビット、MC−ビット)を記憶するための記憶手段(13)を有し、 前記ステータス情報は前記記憶ブロックの有効データ又は共用データを表し、 前記キャッシュ・メモリ装置は更に前記記憶ブロックの1つにおいてデータを 選択的に記憶するための及びそれに対応して前記ステータス情報をセットするた めの論理手段(15)を含む ことを特徴とするキャッシュメモリ装置。 2.前記論理手段は、有効データがメイン・メモリ(2)から前記マルチプロセ ッサ・システムのプロセッサ(P1、P2)の1つにフェッチされる場合、又は 変更されたデータが前記プロセッサの1つによってキャスト・アウトされる場合 、前記記憶ブロックの1つにデータを記憶するように適応することを特徴とする 請求の範囲第1項に記載のキャッシュ・メモリ装置。 3.前記ステータス情報は前記記憶ブロックの各々に対する有効ビット(V−ビ ット)及び多重コピー・ビット(MC− ビット)を含むことを特徴とする請求の範囲第1項又は第2項に記載のキャッシ ュ・メモリ装置。 4.各々がそれに関連したプライベート・キャッシュ・メモリ装置(4、5)を 有する複数のプロセッサ(PLP2)と、 メイン・メモリ(2)と、 共用キャッシュ・メモリ装置(3)と を含むマルチプロセッサ・システム。 5.前記プライベート・キャッシュ・メモリ装置の各々は有効データ、共用デー タ、排他的データ、又は修正データがそこに記憶されていることを表すステータ ス情報(V−ビット、MC−ビット、C−ビット)を記憶するための手段(7、 9)を有することを特徴とする請求の範囲第4項に記載のマルチプロセッサ・シ ステム。 6.前記記憶するための手段は、前記プライベート・キャッシュ・メモリ装置の 1つにおける記憶ブロックの各々に対して3ビットのセットを含み、前記セット は有効ビット(V−ビット)、多重コピー・ビット(MC−ビット)、及び変更 ビット(C−ビット)より成ることを特徴とする請求の範囲第5項に記載のマル チプロセッサ・システム。 7.リクエストされたデータを記憶されている前記記憶ブロックのステータス情 報は前記リクエストされたデータが他のプロセッサのプライベート・キャッシュ ・メモリ装置の1つにおいて生じるヒット状態に関係なく有効であり且つ共用さ れることを表すという条件で、前記プロセッサの1つの対応するリクエストに応 答して前記記憶ブロックの1つからデータの出力を生じさせるように適応する論 理手段を含むことを特徴とする請求の範囲第4項乃至第6項の1つに記載のマル チプロセッサ・システム。 8.前記論理手段は、他のプロセッサのプライベート・キャッシュ・メモリ装置 の1つにおいてヒット状態が生じたことを信号する前に前記リクエストされたデ ータの出力を生じさせるように適応することを特徴とする請求の範囲第7項に記 載のマルチプロセッサ・システム。 9.前記論理手段は、命令のような一般には変更されないままになっているデー タが前記プロセッサの1つによってリクエストされる場合、前記リクエストされ たデータが他のプロセッサのプライベート・キャッシュ・メモリ装置の1つによ って共有されることに関係なく、共有データを表すよう前記ステータス情報をセ ットするように適応することを特徴とする請求の範囲第4項乃至第8項に記載の マルチプロセッサ・システム。 10.請求の範囲第4項乃至第9項の1つに記載のマルチプロセッサ・システム を含むコンピュータ・システム。 11.マルチプロセッサ・システムにおける共用キャッシュ・メモリ装置(3) を動作させるための方法にして、前記キャッシュ・メモリ装置は複数の記憶ブロ ック(ライン1、ライン2、・・・、ラインm)でもって編成され、前記システ ムは各々がそれに関連したプライベート・キャッシュ(4、6)を有する複数の プロセッサ(P1、P2)を有するものにおいて、 a) 前記記憶ブロックの各々に対するステータス情報(V−ビット、MC− ビット)を記憶するステップにして、前記ステータス情報が前記記憶ブロックの 有効データ又は共用データを表しているステップと、 b) 前記プロセッサの1つの対応するリクエストに応答して、他のプロセッ サのプライベート・キャッシュ・メモリ装置の1つにおいてヒット状態が生じた かどうかに関係なく、前記共用キャッシュ・メモリ装置の前記記憶ブロック1つ に記憶されている共用データを出力するステップと、 を含む方法。 12.前記共用データを出力するステップは、他のプロセッサのプライベート・ キャッシュ・メモリ装置の1つにおいてヒット状態が生じたことを信号する前に 始まることを特徴とする請求の範囲第11項に記載の方法。 13.前記記憶ブロックに記憶されるべき対応するデータが命令のように一般に は変更されずにそのままであるという条件で、前記記憶されるべき対応するデー タが共有されなくても共有データの存在を表す情報を記憶するステップを含むこ とを特徴とする請求の範囲第11項又は第12項に記載の方法。
JP9506194A 1995-07-19 1995-07-19 共用キャッシュ・メモリ装置 Withdrawn JPH10501914A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/002847 WO1997004392A1 (en) 1995-07-19 1995-07-19 Shared cache memory device

Publications (1)

Publication Number Publication Date
JPH10501914A true JPH10501914A (ja) 1998-02-17

Family

ID=8166060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9506194A Withdrawn JPH10501914A (ja) 1995-07-19 1995-07-19 共用キャッシュ・メモリ装置

Country Status (2)

Country Link
JP (1) JPH10501914A (ja)
WO (1) WO1997004392A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008512772A (ja) * 2004-09-09 2008-04-24 インテル コーポレイション キャッシュ競合の解決

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240168B2 (en) * 2004-03-10 2007-07-03 Intel Corporation Method and system to order memory operations
US10741034B2 (en) 2006-05-19 2020-08-11 Apdn (B.V.I.) Inc. Security system and method of marking an inventory item and/or person in the vicinity
US9963740B2 (en) 2013-03-07 2018-05-08 APDN (B.V.I.), Inc. Method and device for marking articles
EP3058339B1 (en) 2013-10-07 2019-05-22 APDN (B.V.I.) Inc. Multimode image and spectral reader
US10745825B2 (en) 2014-03-18 2020-08-18 Apdn (B.V.I.) Inc. Encrypted optical markers for security applications
WO2015142990A1 (en) 2014-03-18 2015-09-24 Apdn (B.V.I.) Inc. Encryped optical markers for security applications
WO2017180302A1 (en) 2016-04-11 2017-10-19 Apdn (B.V.I.) Inc. Method of marking cellulosic products
US10995371B2 (en) 2016-10-13 2021-05-04 Apdn (B.V.I.) Inc. Composition and method of DNA marking elastomeric material
WO2018156352A1 (en) 2017-02-21 2018-08-30 Apdn (B.V.I) Inc. Nucleic acid coated submicron particles for authentication
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10970222B2 (en) * 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH06282528A (ja) * 1993-01-29 1994-10-07 Internatl Business Mach Corp <Ibm> データ転送方法及びそのシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008512772A (ja) * 2004-09-09 2008-04-24 インテル コーポレイション キャッシュ競合の解決
JP2011227921A (ja) * 2004-09-09 2011-11-10 Intel Corp キャッシュ競合の解決
US10078592B2 (en) 2004-09-09 2018-09-18 Intel Corporation Resolving multi-core shared cache access conflicts

Also Published As

Publication number Publication date
WO1997004392A1 (en) 1997-02-06

Similar Documents

Publication Publication Date Title
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6564306B2 (en) Apparatus and method for performing speculative cache directory tag updates
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5996048A (en) Inclusion vector architecture for a level two cache
US7669010B2 (en) Prefetch miss indicator for cache coherence directory misses on external caches
US7284097B2 (en) Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US6438660B1 (en) Method and apparatus for collapsing writebacks to a memory for resource efficiency
US20030005237A1 (en) Symmetric multiprocessor coherence mechanism
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH07253928A (ja) 2重化キャッシュ・スヌープ機構
JPH07281955A (ja) マルチプロセッサーシステムのスヌープ回路
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
US7325102B1 (en) Mechanism and method for cache snoop filtering
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US5787468A (en) Computer system with a cache coherent non-uniform memory access architecture using a fast tag cache to accelerate memory references
JP2007533014A (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP2000330965A (ja) マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
US5737568A (en) Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory
WO2000038077A1 (fr) Antememoire et procede de commande
US5748938A (en) System and method for maintaining coherency of information transferred between multiple devices
US6973541B1 (en) System and method for initializing memory within a data processing system
US6477622B1 (en) Simplified writeback handling

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070216

A072 Dismissal of procedure

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20070717