JPH03505793A - 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム - Google Patents

階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム

Info

Publication number
JPH03505793A
JPH03505793A JP1507284A JP50728489A JPH03505793A JP H03505793 A JPH03505793 A JP H03505793A JP 1507284 A JP1507284 A JP 1507284A JP 50728489 A JP50728489 A JP 50728489A JP H03505793 A JPH03505793 A JP H03505793A
Authority
JP
Japan
Prior art keywords
data
data item
state
memory
transaction
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
JP1507284A
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
Priority claimed from SE8802495A external-priority patent/SE8802495D0/xx
Application filed by スウェーディッシュ インスティテュート オブ コンピューター サイエンス filed Critical スウェーディッシュ インスティテュート オブ コンピューター サイエンス
Publication of JPH03505793A publication Critical patent/JPH03505793A/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/0817Cache consistency protocols using directory methods
    • G06F12/0824Distributed directories, e.g. linked lists of caches
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 告を ずるキャッシュ旦し乙左tkE1Uマルチプロセソサシスーム 発1属し1訪 本発明は、分配されたアドレス空間によってデータをサポートする、分配された 物理的メモリを存するスカラー・マルチプロセッサ・アーキテクチャ−を備えた コンピュータシステムに関する。本発明によれば、データ項目の物理的位置は、 そのアドレスから独立となる。データ項目のコピーのいくつかが、同時にシステ ム内の異なる物理的位置に存在し得る。データは、データ項目の各コピーが同一 の値をもつように(データコヒーレンス)取り扱われなければならない。システ ム中におけるデータ項目の最後のコピーが消去されることが、また回避される。
理法」支曹 分配されたアドレス空間は、既によく知られた概念である。分配されたアドレス 空間を存する典型的なアーキテクチャ−として、ソークエント(Sequent )およびエンコアー(Encore)等の分配された物理的メモリを備えたコン ピュータが存在する。しかしながら、分配されたアドレス空間を備えたアーキテ クチャ−は、このようなやり方で提供される必要はない。本発明は、分配された 物理的メモリを用いることはせず、むしろ、ハードウェアの構造は、メソセージ パッシング装置におけるものに類似している。
メノセージバノシング装置は、典型的には、通信網によって接続された、巨大な 分割されたメモリを備えた多くのプロセッサである。
分配された物理的メモリを有する装置は、典型的には、分配されたバスによって 巨大な物理的に分配されたメモリに接続された、小さな分割メモリまたはキャン シュを備えた、制限された数のプロセッサのみを有している。メンセージバソシ ング装置においては、通常、他のプロセッサとのメモリアクセスおよびコミュニ ケーションが、完全に分離された機能とみなされる必要がある。したがって、ソ フトウェアは、しばしば、離れた位置のオブジェク1−に対する参照値を適当な メツセージ中にマソビングすることによって、分配されたアドレス空間の形態を ソミュレーシヲンしなければならない。他方、分配された物理的メモリを備えた 装置は、通常、分配されたアドレス空間を直接支援し、それによって、ソフトウ ェアはメモリアクセスによってコミュニケーションを無条件に達成するが、これ を実行するためにいく種類かのロノキング機構が必要とされる。
メンセージバノシング装置は、一般に、すべてのプロセッサに対してスカラブル である。しかしながら、分配された物理的メモリを有する装置の分配されたバス およびメモリは、接続され得るプロセッサの数を制限するという欠点を有してい る。しかしながら、メノセージパノシング装置は、メモリに対しかなりの程度ま で実行を効果的に分配するため、ハードウェアのスカラー性は、ソフトウェアが コミュニケーションを最小限度にとどめ得る範囲内においてのみ有用である。
本発明によるコンピュータシステムは、そのメモリが分配され、そして装置がす べてのメモリに対してスカラ的である限りにおいて、メノセージバノシング装置 に類似している。本発明によるコンピュータシステムは、また、データコヒーレ ンスプロトコルが、プロセッサをハスを介して接続することによって、分配され たアドレス空間を支援する、分配された物理的メモリを備えた装置と同様である 。メツセージパッシング装置および分配された物理的メモリを備えた装置の双方 に対する本発明の新規性は、データ項目の位置がそのアドレスから完全に独立と なっているという点にある。
本発明および本発明によるシステムに関する付加的な情報が、ディピッド H, D、ワレン(David H,D、 Warren)およびシーク ハリディ( Seif Haridi)による論文、[データ分散装置−−−−スカラー的に 分配された仮想マルチプロセッサ(Data Diffusion Machi ne −八5calable 5hared Virtual Multipr ocessor)j 、第5世代コンピユークシステムに関する国際会議(th e International Conference on Fifth  Generation Computer Systems) 1988年、  IC0T、並びに平行アーキテクチャおよび言語のコーロノバ会議議事録(in  the Proceedings  of  the  Parallel   八rchitecture  and  Language  Euro垂■ @ C on f erence)、PARLE 、 1989年6月における、エリツ ク ハガーシュテン(Erik Hagersten)およびシーク ハリディ (Seif Haridi)による[データ分散装置のキャッシュコヒーレンス プロトコル(The Cache Coherence Protocol o f the Data Diffusion Machine)Jに記載されて いる。
光」Iと【絢 上述の目的を達成するために、本発明は、分配された物理的メモリおよび分配さ れたアドレス空間を有し、階層中における1個または数個のバスによって結合さ れたメモリと一対となったブロモ、すを含む、スカラ・マルチプロセッサ・アー キテクチャ−を有するコンピュータソステムを提供する。本発明の従来技術から 峻別される特徴は、プロセッサーメモリの各対がコントローラに接続され、メモ リ内の各データ項目に関する状態情報をもつ状態メモリ (ディレクトリ−)を 含んでいるという点である。コントローラは、デンタ項目の状態の関数としての プロトコルに応じて、データ項目の読み取りおよび書き込みを行う。このとき、 データ項目の位置は、そのアドレスから独立している。
本発明の従来技術から峻別される他の特徴、並びに新規な点を、請求の範囲の第 2項以下に記載した。
側里夏■亀久設所 次に、添付図面を参照して、本発明を説明する。
第1図は、装置の構成を概略的に示した図、第2図は、バスの能力を拡張するた めの構成を示した図、第3図は、ディレクトリ−に接続された異なるバッファを 概略的に示した図、 第4図は、データ項目の種々の読み取り状態を示した図である。
本光皿ユ丑 しい   の量 な!1 本発明によるコンピュータの構成は、以下の考察に基づいている。
ソフトウェアが関係している限り、データ項目が通常とどまっていなければなら ない区別されたホーム位置は存在しない、理想的には、各データの物理的位置は 、ソフトウェアに対して完全に透明でなければならず、そしてその位置はハード ウェアによって自動的に制御されなければならない。
ソフトウェアの観点からは、すべてのデータは、物理的位置とは独立なグローバ ルなアドレス空間を通じて一様にアクセスされる。
したがって、装置は、通常の、分配されたメモリを有するマルチプロセッサ(例 えば、シークエンドおよびエンコアー)と同様のソフトウェアビューを呈してい る。すなわち、それは、広範囲にわたる言語並びに応用をカバーすることができ る、完全な多目的装置である。しかし、かかる装置は、データが、典型的に一旦 書き込まれた後にのみ読み出される宣言型言語を実行するのに特に適していると 考えられる。装置は、データがいかにしてアドレス空間内に割り当てられるべき かという点に関し、いかなる制限も加えないことによって、散在する配列をサポ ートする。
ハードウェアの観点からは、装置は、バスの階層およびコントローラ(ディレク トリ−)によって接続されたプロセッサーメモリの任意の数の対からなる。階層 内の4対2のレベルで無数のプロセッサをサポートするのに十分である。メモリ は、全くフレキシブルに物理的メモリ内にマツピングされる。このマツピングは 、グイナミソクであり、データを最も必要とされる位置に移動させることを可能 とする。
個々のデータ項目に関する多数のコピーが存在するが、これらのコピーは、すべ て同一のアドレスを共有する。アドレスに対応する特別のホーム位置は存在しな い。その代わり、データは、データアクセス時間を短縮し、かつデータ量を最少 とするように、装置にわたって自動的に分配される。その結果、最大のメモリ要 求がプロセッサ自体のメモリによって満たされる。遠隔アクセスを特徴とする請 求は、わずか(4XN−2)回(ここで、Nは階層中のレベルの数である)のハ ス処理によって満たされ、一般には、装置の限定された部分にわたるデータ量を 制限するのみである。
装置の構成 第1図には、装置の構成を示した。
装置は階層的である。階層の最上部では、プロセッサは、それぞれ巨大なローカ ルメモリを有しており、通常のキャッシュを通じてアクセスされ得る。メモリは 、グローバルなアドレス空間のいくつかの部分のイメージを含んでいる。メモリ は、(非常に巨大な)キャッシュと同様に、結合的に構成されるが、これは、装 置内の主メモリ単独の構成であることが強調されなければならない。メモリは、 メモリコントローラを介してローカルバスに接続される。ローカルバスは、一群 のプロセッサ、キャッシュ、メモリおよびコントローラに接続される。ローカル バスは、それ自体コントローラを介してより上層のハス等の、階層のより上層に 接続される。より上層にあるコントローラは、それぞれ、状態情報のディレクト リ−にアクセスし、ディレクトリ−コントローラと呼ばれる。ディレクトリ−は 、結合的に構成され、より下層にあるメモリ内のデータ項目のすべてに対する状 態ビットのためのスペースを有している。
ディレクトリ−の機能は、上層のバスとその下層の下部システムとの間の制御を 行うことである。その機能および作用は、単一バスの分配されたメモリを有する プロセッサにおける、スヌーピングキャノシュの一般化である。これによって、 メモリ要求を、可能な限り局所的に取扱うことが可能となる。しかし要求が局所 的に取扱われ得ない場合には、その要求を上層または下層に転送し、それが満た されるようにする必要がある。ディレクトリ−は、アドレス空間のどの部分が、 その下層の下部システムのメモリにマツピングされたのか、そしてまた、このア ドレスのどれかの部分が、下部システムの外側のメモリにマツピングされたかど うかをディレクトリに知らせる状態メモリを含んでいる。こうして、すべてのア ドレスに対して、コントローラは、「このデータは自分の下部システム中にある かどうか9」および「このデータは他の下部システム中の別の場所にあるのかど うか?」という質問に答えることができる。
ディレクトリ−は、メモリ要求が、もしく1)それがローカルデータの読み取り であれば、あるいはもしく2)それが分配されないデー夕の書き込みであれば、 下部システムの外側に転送されることがないように作用する。特に、もしプロセ ッサが、そのローカルメモリ中において、データを読み取り、あるいは分配され ないデータを書き込もうとすれば、外部コミュニケーションは要求されない。通 常、くれはメモリ要求の大部分をカバーする。
もし下部システムが、非局所的なデータを読み取ろうとすれば、データのコピー の検索が必要とされる限り、読み取り要求が伝えられ、そしてデータが必要な位 置に割り当てられたものとしてマークされる。もし下部システムが分配されたデ ータを書き込もうとすれば、要求がデータの他のすべてのコピーを消去するよう に転送され、そして、データは分配されないものとしてマークされる。
以下の点に注意されなければならない。プロセッサそれ自体が生し別のプロセッ サによって要求されなければ、どこが他の位置にコピーされることはない。プロ セッサは、その時間の大部分をこのようなデータをアクセスするために費やす傾 向がある。プロセッサは、もしデータが最初に遠隔的であれば、遠隔メモリがら のデータアクセスを繰り返し行うことを要しない。その代わり、遠隔的なデータ は、それが有効に使用される位置に移動する傾向があり、い(っがの固定された ホーム位置に拘束されることはない。これらの点で、本発明は、例えばシークエ ンド、エンコアー、およびBBNバタフライ(BBN But、terfly) のような通常の分配された(物理的)メモリを有する装置とは異なっている。こ れらの新規な特徴によって、分配されたリソースに対するコンテンションおよび 平均データアクセス時間の双方が大きく減少する。
たいていのメモリアクセスは局所的となる傾向があるにもがかわらず、より上層 のハスが障害となる。しかしながら、第2図に示したように、より上層のバスお よびディレクトリ−をコピーして、アドレス空間の異なる部分を取り扱うように し、さらに、まず最初奇数アドレスと偶数アドレスとに分割した後、アドレスの 連続的によデータアクセスプロトコル 以下において、データアクセスプロトコルをより詳細に説明する。
ここで、次のように仮定する。
最低レベル(レベル1)において、システムは多数のプロセッサからなる。各プ ロセッサは、コントローラによってメモリおよびバスに接続される。より高いレ ベル(i>1)において、各下部システムに対するディレクトリ−が存在する。
各バス上には1つの要求を選択するためのアービターが存在する。レベルlにお けるメモリ内の各データは、次の状態のうちの1つに存在する。すなわち、排他 的状態(E):データ項目の単一のコピーが存在する状態。
分配状態(S):データ項目の他のコピーが存在する状態。
無効状Jli(1):データ項目が無効である(実際に存在しない)状態。
読み取り状a(R):データ項目が読み取りのために要求される状態。
待機状M(W):データ項目が排他的となるなるまで待機している状態。
状MRおよびWは過渡的なものであり、単一ハスマルチプロセソサ内に現れるこ とはない。
各メモリは、N方向に結合し、データ項目およびそれらの関係する状態ビットを 記憶する。ディレクトリ−は、その下の階層のメモリー内の全項目数に等しい大 きさでもってN方向に結合している。
ディレクトリ−は、状態ビットを記憶するためのスペースを有しているのみであ る。
ディレクトリ−内の各データは、次の状態のうちのいずれか1つの状態にある。
すなわち、 排他的状態(E):下部システムの外側にいかなるコピーも存在しない状態。
分配状態(S):下部システムの外側にコピーが存在する状態。
無効状J13i(1):データ項目が無効である(下部システム内には実際に存 在しない)状態。
読み取り状態(R):データ項目が読み取りのために必要とされる状態。
待機状[(W):データ項目が排他的となるまで待機している状態。
応答状fi(A):データ項目が(実際に)読み取り要求に応答する状態。
除去状[(L):データ項目は下部システム中に含まれるが、まさにそれから取 り除かれようとしている状態。
次のデータ交換ストラテジーが仮定される。これについては後に詳細に説明する 。もしデータが存在すれば、まず最初無効位置が選択される。さもなければ、直 前に使用された分配されたデータが交換のために選択される。もしこのようなデ ータが存在しなければ、直前に使用された排他的な項目が選択される。後者の2 つの場合のいずれかにおいて、交換アルゴリズムが呼び出される。
通常のように、読み取りヒツトが存在するときはいっでも、データ項目の値がフ ェッチされ、いかなる特別な作用も呼び出されることはない。排他的データ項目 の書き取りヒツトもまた、別のいかなる作用をも導くことはない。
ハスの構成 ハスは、プロセッサまたは下部システムからなるクライアントに下方に接続され ている。仲裁機能が、すべてのクライアントおよび上層のディレクトリ−の間を 仲裁し、次の送信1(sender)を選択する。送信源は、以下に掲げたバス フェイズの1つまたはいくつかからなる次のトランザクションを初期化する。
初期化フェイズ:I・ランザクジョンを初期化し、トランザクションコードおよ びデータ項目のアドレスを転送するフェイズ。
データフェイズ:データ項目のデータ部分を転送するフェイズ。
カウンタフェイズ;トランザクションのカウンタ値を転送するフエイズウ 応答フェイズ:すべての情報クライアントが1イエス」の応答をする(クライア ントのいずれもが「イエス」の応答をしなかったか、あるいはクライアントの少 なくとも1つが「イエス」の応答をしたかどうかを指示する)フェイズ。
選択フェイズ:イエスの応答をしたクライアントのうちの1つが選択されるフェ イズ。
バスの処理 ハスは、本発明により次のトランザクションを転送する。連続する待機ハスフェ イズがカウントされる。しかしながら、より小さいフェイズにおいて状態変化を 行い得るクライアントは、予めトランザクションを中断する。典型的には、応答 および選択フェイズが排除される。
「、リード: (初期化、応答、選択フェイズ)、システム内のなにかがデータ 項目の読み取りを要求するトランザクション。
e、イレース= (初期化フェイズ)、このデータ項目のすべてのコピーを放棄 するトランザクション。
i、インジェクト: (初期化、データ、カウンタ、応答、選択フェイス)、デ ータ項目の最後のコピーのみを下部システム内の新たな場所に見つけ出すトラン ザクション。
0、アウト:(初期化、データ、応答フェイズ)、データ項目が下部システムか ら出る途中にあるトランザクション。そのデータ項目が同一のデータ項目の別の コピーと出会ったとき(あるいは別のコピーから追跡されるとき)、これは終了 する。
X、イクスクルノンブ: (初期化フヱイズ)、システム中にこのデータ項目の ただ1つだけのコピーが存在する。
1、リーブ: (初期化、応答、選択フェイズ)、この要素が下部システムから 取り除かれようとしているトランザクション。
U、アンプ: (初期化、データフェイズ)、このデータ項目が、L状態におい てディレクトリ−に出会わなくなるまでアップし続けるトランザクション。
バッファおよびそれらの機能 第3図は、2つのバスおよびそれらのバッファの構成を示したものである。メモ リは、トランザクションを開始する前に、バスを割り当てられなければならない ので、その上層のハスに対する出力バッファを備えている必要がある。ディレク トリ−は、それに接続されたハスの1つに優先順位を与えなければならない。そ の上層のハスからの入カドランザクジョンは、最高の優先順位を有する。
ディレクトリ−は、上層のバスへ向かう出力バッファ、並びに下層のハスへ向か う出力および入力バッファを有している。
出力バッファは、バス上に送られるトランザクションを記憶し、入力バッファは 、既にバス上に送られたトランザクションと、応答フェイズ中のすべての値とを 記憶する。
バス上のい(つかのトランザクションが、その下側に接続された出カバソファ内 の他のトランザクションを消去し得る。それに続くトランザクションが、またこ のような消去を行い得る。
イレーストランザクションは、同一のデータ項目に対する他のすべてのトランザ クションを消去する。
アウトトランザクションは、同一のデータ項目に対する他のアウトトランザクシ ョンを消去する。
プロトコルテーブル 以下のテーブルは、メモリおよびディレクトリ−コントローラに対するプロトコ ルをまとめたものである。このテーブルは、コントローラが、トランザクション が受は取られたとき、いかにしてデータ項目の状態に依存する種々のトランザク ションに応答するかを記述したものである。縦の欄にはそれぞれの状態を、横の 欄にはそれぞれのトランザクションを掲げた。作用は次のようなフォーマントを 有している。すなわち、 ガード−新たな状態:送り出されるトランザクションのインデックスであり、こ こで、インデックスAは上層バスと呼ばれ、インデックスBは下層バスと呼ばれ る。空白部分は作用が存在しないことを表している。残りの記号は、テーブルに 従って説明される。
記号およびその説明 0 この状況は不可能である。
エ プロセッサは処理を続行可能である。
に対応するセント中に空きスペースが存在しない場合には、「交換」によって置 き換えられる。
2:「交換」は、最初に、交換されるべきデータ項目を選択する。
a : −yesクライアントはイエスと応答する。
a=Q→ いずれのクライアントもイエスと応答しない。
a≧1→ 少なくとも1つのクライアントがイエスと応答する。
5elected−クライアントはイエスと応答する。他のいかなるクライアン トもトランザクションを終えていない。クライアントが選択フェイズ内に選択さ れている。
X:y+1   トランザクションyが送り出される前に、カウウンタが増加す る。
cir >11m1t−カウンタがその限界値を超える。
上述のスキームの特徴 ■、排他的となる(書き込み操作を実行するための)データに対して、イレース メノセージが、項目が排他的となるディレクトリ−まで転送される。ディレクト リ−は、ロックとして機能し、イレース肯定応答を下方へ送る。こうして、最悪 の場合、4つのレベルからなる装置内におけるデータは、8回のパストランザク ション、4回の上層へのイレーストランザクションおよび4回の下層へのイレー ス肯定応答の後に排他的となる。
2、いかなる読み取り要求も永久に停止しないことが示され得る。
さらに、説明したシステムは、項目メソセージが下層へ転送されるとき、ブロー ドキャスト読み取り作用を有し、また読み取り要求が上層へ転送されるとき、結 合読み取り作用を有する。結合読み取り作用は、IBM  RP3  マルチプ ロセッサによって与えられるものと同様である。例えば、もし1個のプロセッサ がデータを有し、さらに残りの(64に−1)個のプロセッサが、同時に同一の データを要求すれば、すべてのプロセッサが、わずか16のバストランザクソヨ ンにおいてデータを得る。
3、  (RP3のような)多くの巨大なマルチプロセッサにおいて生しる熱点 現象が、本発明によるシステムにおいては生じない。
4、上述のプロトコルが、すべてのトラフィックが、トランザクションに関係す る下部システム内に、他の下部システムを乱すことなく局所化される。
複雑な状況の例 第4図は、発生し得る複雑な状況の典型例を示したものである。
2つのプロセッサP1、P2が読み取りRxを要求し、かつ2つの下部システム がデータ項目Xを有している。プロセッサのうちの一方、すなわちプロセッサP 1が書き込み操作Wxに対する排他的なアクセスを要求する。AおよびBの間の コントローラABは、コントローラACおよびコントローラBEによって発せら れた読み取り要求を満たすように決定され、ハスB上に読み取り要求を発する。
ここで2つの可能性が存在する。すなわち、(1)Piが肯定応答された消去要 求を得る可能性と、(2)Pi中のデータ項目が、多の下部システムが排他的な アクセスに対して選択されるために、消去され得るという可能性である。最初の 場合には、次のようなことが起こる。すなわち、コントローラABはWに状態を 変化させる。そして消去要求ExがハスA上に現れ、左側最上部の下部システム におけるXに対する消去操作が開始される。その後、消去肯定応答xxがバスA 上に現れて下層に転送され、コントローラACの状態をWからEに変化させる。
そして、コントローラACはその読み取り要求rxを繰り返し、xx)ランザク ジョンを追跡すると共に、コントローラABおよびBDの状態をAに変化させる 。さらに、コントローラBDは再びRxを発し、ただ1つのRxのみがバスD上 に現れる(結合効果)。その後、プロセッサP1はその書き込みを実行し、そし て読み取り要求がブロードキャストモードにおいて用いられる。第2の場合は、 プロトコルを調べることによって容易にわかるように、直接的である。正味の作 用は、左側最上部の下部システムがその読み取りを実行し、データがPlに対し てブロードキャストとなり、また他のプロセッサが読み取りを要求し、最後に2 1が排他的なアクセスを獲得するということである。
交換ストラテジー 書き込みミスおよび読み取りミスが生じたとき、新たなデータ項目が、実際にメ モリに対して読み取られる。新たなデータ項目が記憶されるセ・2トが満たされ た場合には、古いデータ項目がメモリがら取り除かれるように選択され、その場 所は、新たなデータ項目に対して左側に位置する。この一連の処理は、交換と呼 ばれる。古いデータ項目の状態に応して、2つのタイプの交換トランザクション 、すなわちアウトおよびインジェクトトランザクションが存在する。
選択された古いデータ項目が状態Sにあれば、交換はアウトトランザクションを 用いてなされる。アウトトランザクションは、おそらくどこかに分配された古い データ項目を直接除去することよりも複雑である。まず最初、このデータ項目の 他のコピーも同様に除去されてしまわないことが確認されなければならない。問 題のメモリは、アウトトランザクションをバス上に送り出すことによって、交換 を初期化する。S、R,W、Lあるいはへのうちいずれがの状態にある現在のデ ータ項目を有するハス上の他のメモリは、イエスの応答をする。なぜなら、それ らの下部システムは、そのデータ項目のコピーを現在有しているか、あるいはコ ピーを有することかが既に約束されているからである。少なくとも1つのメモリ がイエスの応答をした場合には、データ項目の他のコピーが見つけ出され、そし てトランザクションは終了する。すべてのメモリがイエスの応答をしない場合に は、ディレクトリ−は、次に上層にあるバス上にアウトトランザクションを送り 、データ項目の状態を■に変化させる。
なぜならば、下部システム内には、データ項目のコピーが存在しないと考えられ るからである。
状態Sにおけるデータ項目は、実際、分配され得るがあるいは排他的であり得る かのいずれかである。単に、これは、システム中に2つのコピーが存在していた が、第2のコピーが前述のように交換されたということが理由である。たとえい くっがの不必要な作業が次の書き込み操作においてなされるとしても、状況は完 全に安全である。しかしながら、ディレクトリ−は、次の最後のコピーが除去さ れるときを検出する。これは、下層のハス上のアウトトランザクションが、正確 に1つのイエスの応答を得たときに生し、そしてディレクトリ−は、状態已にお けるデータ項目を有する。そのとき、ディレクトリ−は、ハス上に(イクスクル ソシブ)トランザクションを送り出し、残りのデータ項目の状態をEに変化させ 得る。これが作業を節約させるかどうかは明らかではなく、その機構はテーブル において説明しなかった。
データ項目の2つの最後のコピーが同時に交換され、同一のバス上に送り出され るべく、分離されたバッファ内にアウトトランザクションの形態でとどまってい る場合には、以下のような状況が生じる。ハス上の最初のアウトトランザクショ ンが、出カバソファ内に残っているアウトトランザクションを消去する。そして 、それがデータ項目の最後のコピーとなる。下層からイエスの応答のアウトトラ ンザクションを受けたディレクトリ−は、何が発生したのかを判断し、そのアウ トトランザクションをインジェクトトランザクションに変換する(以下を参照) 。
交換されるべきデータ項目が状BEにある場合には、これは、インジェクトトラ ンザクションあるいは新たなホームを検索する退避を生じる。メモリが退避のた めのスペースを有している場合には、それはイエスの応答をし、もし選択される ならば、それは、状態Eにおけるデータ項目に対する新たなホームを提供する。
メモリが、退避のためのスペースををしていない場合には、インジェクトトラン ザクションが次の上層のバス上において繰り返され、ここで、ディレクトリ−は それに機会を与える。しかしながら、ディレクトリ−は、いかなるものも保証す ことはできない。なぜなら、インジェクトトランザクションは、処理を先へ進め ることを拒否することができ、また処理をもとへ戻すように強いられるからであ る。インジェクトトランザクションに随伴するカウンタは、インジェクトトラン ザクションが何回処理を実行したのかをカウントする。カウンタが限界値を超え たとき、インジェクトトランザクションは停止され、第2のメモリに送り出され る。データ項目を直接第2のメモリに送るメモリは、限界値に初期化されたその カウンタを有するインジェクトトランザクションと共に、それを行う。
状[Aにある下部システムが、読み取り要求に応答することが保証されている。
要求は、データ項目の存在するメモリに到達する前に、既に交換され、そしてイ ンジェクトまたはアウトトランザクションが上層へ転送される途中にある。これ は順調に実行される。
なぜなら、これらのトランザクションは、データ項目のデータ値を運ぶからであ る。こうして、応答することが保証されたディレクトリ−は、上層のハス上に送 り出されるデータトランザクションを生成することによってそれを実行し得る。
しかしながら、上層へ転送される途中のトランザクションがインジェクトタイプ のものである場合には、警告がなされなければならない。下層のハス上のクライ アントがインジェクトトランザクションに機会を与えること(少なくとも1つの クライアントがイエスの応答をすること)が保証されている場合には、クライア ントは、それが1つのデータ項目のコピーのみを有しているものと認める。その とき、ディレクトリ−は、その代わりに、下層へ新たな読み取りトランザクショ ンを送る。
ディレクトリ−によって初期化された交換データ項目は下層のメモリ内にスペー スを見出すから、データ項目が、簡単にディレクトリ−内にスペースを見出すこ とが確信されないかもしれない。下層から読み取りトランザクションを受ける、 状filにあるデータ項目を有するディレクトリ−は、データ項目の状態をRに 変化させ、そして上層のバスのその読み取りを繰り返さなければならない。デー タ項目の新たな状態に対して意図されたセントが満たされた場合には、古いデー タ項目は、新たなデータ項目に対するスペースをつくるために、下部システムが ら選択され、かつ除去されねばならない。これは、システム内において下層に送 られるリーブトランザクションによって達成される。各バス上において、1つの クライアントが、下層へのり−ブトランザクションを継続し、データ項目の状態 をLに変化させるために選択され、一方、データ項目を含む他のクライアントは 、イレーストランザクションを下層−・送り、データ項目の状態を1に変化させ る。最低レベルにおいて、選択されたメモリが、L状態におけるすべてのディレ クトリ−を通じて上層へ転送されるアンプトランザクションに応答する。
アップトランザクションが最終的に、交換を初期化したディレクトリ−に到達し たとき、インジェクトトランザクションあるいはアウトトランザクションのいず れかが生しる。
交換を開始したデータ項目は、交換が終了したとき、そのリードトランザクショ ンを繰り返さなければならない。これは、交換が第1のリーブトタンザクジョン によって初期化された後すぐに、このデータ項目に対するイレーストランザクシ ョンを下層へ送ることによって達成される。このトランザクションが最終的にデ ータ項目の読み取り要求するメモリに達したとき、メモリは、再び上層へのリー ドトランザクションを繰り返す。うまくいけば、このとき、ディレクトリ−内に スペースが見出される。
上述のことに関するハードウェアの最適化は、リーブトランザクションが終了す る間に、交換されるべきデータ項目を記憶し得るディレクトリ−内における小さ いメモリである。これは、遅延なしに継続するリードトランザクションに対する 場所をすくに準備する。
リードトランザクションに対するイレーストランザクションが、このメモリが満 たされた場合にのみ下層へ送り出される。このメモリは非常に小さいが、十分に その機能を発揮する。
ロッキング いくつかの操作が、プロセッサの特性に依存して自動的に実行される必要がある 。例えば、プロセッサが、テスト−セット命令を与えるような場合には、リード モディファイトランザクションがメモリコントローラによって実行される。リー ドモディファイトランザクンヨンは、データ項目が書き込まれる前に、データ項 目の元の値がプロセッサにフィードハックされることを除いては、ライトトラン ザクションと同様に動作する。このようなリードモディファイトランザクション の遂行は、装置の一般的な動作と共に、以下に示すように、いかなるトラフィッ クを生じさせることもなく、スピン−ロッキングを局所的に実行する。すなわち 、Lock(X): 5tart: Flag := Te5t li Set X; χwhere  Flag is a register。
If  Flag  =  Othen  Exit;Loop:  HX =  1  then goto Loop else goto 5tart;  χ1ocal  spinning  until  X  is  modi fiedExit: Unlock(X): X  :=  0; こうして、本発明によれば、データコヒーレンスが保持されている間に、データ 項目を自動的に移動させ、コピーしまたは交換することが可能となり、さらにシ ステムからいがなるデータも失われることがない。本発明は、本発明の説明のた めの例示としての以上の記述における特別の用語に限定されるものではない。本 発明は、本発明の請求の範囲によってのみ限定されるものである。
FIG、  2 Flcr、3 FIG、  4 補正書の翻訳文提出書く特許法第184条の8)平成2年12月27日省。

Claims (10)

    【特許請求の範囲】
  1. (1)分配された物理的メモリおよび分配されたアドレス空間を有するマルチプ ロッセサ・アーキテクチャーを有し、データ項目の状態のみならずデータ値をも 記憶するプロセッサーメモリ対を含むコンピュータシステムにおいて、 前記システムの唯一のデータメモリが、結合的な特性を有し、前記各データ項目 の物理的位置をそのアドレスから独立にするプロセッサ項目メモリからなってい るものであることを特徴とするコンピュータシステム。
  2. (2)プロセッサーメモリ対を備えたツリー状の階層的バス構造を有しているこ とを特徴とする第1請求項に記載のコンピュータシステム。
  3. (3)前記階層的なツリ一の分岐点において、それより下層のツリー部分のすべ てのデータ項目に関する状態情報を記憶するディレクトリーを有していることを 特徴とする第2請求項に記載のコンピュータシステム。
  4. (4)前記データ項目のコピーを必要な場所に移動させ、メモリの一貫性を維持 するプロトコルを有していることを特徴とする第1請求項〜第3請求項のいずれ か1項に記載のコンピュータシステム。
  5. (5)前記データ項目を、その状態に応じて、読み取り、書き込み等するための トランザクションを調整するプロトコルを有していることを特徴とする第1請求 項〜第4請求項のいずれか1項に記載のコンピュータシステム。
  6. (6)データ項目メモリおよび状態メモリの両方からなるメモリが、結合的に構 成されていることを特徴とする第1請求項〜第5請求項のいずれか1項に記載の コンピュータシステム。
  7. (7)前記各データ項目が、 排他的状態(E):前記データ項目の唯一のコピーが存在する状態、、 分配状態(S):前記各データ項目の別のコピーが存在する状態、、 無効状態(I):前記データ項目が無効な状態(前記各データ項項目が実際には 下部システム中に存在しない状態)、読み取り状態(R):前記データ項目が読 み取りのために要求される状態、 待機状態(W):前記データ項目が排他的となるまで待機している状態のうちい ずれか1つの状態に存在し得ることを特徴とする第1請求項〜第6請求項のいず れか1項に記載のコンピュータシステム。
  8. (8)前記ディレクトリー内の前記データ項目が、排他的状態(E):前記下部 システムの外部にいかなるコピーも存在しない状態、 分配状態(S):前記下部システムの外部に他のコピーが存在する状態、 無効状態(I):前記データ項目が無効な状態(データ項目が実際には前記下部 システム中に存在しない)状態、読み取り状態(R):前記データ項目が読み取 りのために要求される状態、 待機状態(W):前記データ項目が排他的となるまで待機している状態、 応答状態(A):読み取り要求が、実際にようみとり要求に応答する状態、 除去状態(L):前記データ項目が前記下部システム中に存在するが、それから 除去される途中にある状態のうちのいずれか1つの状態に存在し得ることを特徴 とする第7請求項に記載のコンピュータシステム。
  9. (9)前記データ項目の種々の状態トランザクションを実行すべく、前記バス上 に、 r,リード:前記システム内において前記データ項目の読み取りを要求するトラ ンザクション、 e,イレース:問題となる前記データ項目のすべてのコピーを消去するトランザ クション、 d,データ:分配された(分配されることが保証された}前記データ項目を送り 出すトランザクション、i,インジェクト:前記データ項目の最後のコピーを交 換するトランザクション、 o,アウト:前記データ項目が前記下部システムから除去される途中にあるトラ ンザクション、 x,イクスクルッシブ:前記データ項目が前記システム中における最後のコピー となるトランザクション、l.リーブ:前記データ項目が前記下部システムから 除去されつつあるトランザクション、 u,アップ:前記データ項目が、前記L状態にないディレクトリーに出会うまで 上層へ転送されるトランザクションを送り出し得ることを特徴とする第8請求項 に記載のコンピュータシステム。
  10. (10)各データ項目メモリが上層のバスに対する出力バッファを有しており、 各ディレクトリーが、下層のバスに対する入力および出力バッファと、上層のバ スに対する出力バッファを有すると共に、上層のバスからのトランザクションの 入力に対し優先順位を与えることを特徴とする第1請求項〜第9請求項のいずれ か1項に記載のコンピュータシステム。
JP1507284A 1988-07-04 1989-06-29 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム Pending JPH03505793A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
SE8802495-5 1988-07-04
SE8802495A SE8802495D0 (sv) 1988-07-04 1988-07-04 Computer system
SE8804700A SE461813B (sv) 1988-07-04 1988-12-30 Multiprocessorarkitektur innefattande processor/minnespar sammankopplade med en eller flera bussar i ett hierarkiskt system
SE8804700-6 1988-12-30

Publications (1)

Publication Number Publication Date
JPH03505793A true JPH03505793A (ja) 1991-12-12

Family

ID=26660251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1507284A Pending JPH03505793A (ja) 1988-07-04 1989-06-29 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム

Country Status (5)

Country Link
EP (1) EP0424432B1 (ja)
JP (1) JPH03505793A (ja)
AT (1) ATE160454T1 (ja)
DE (1) DE68928454T2 (ja)
WO (1) WO1990000283A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8728494D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5282201A (en) * 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5153595A (en) * 1990-03-26 1992-10-06 Geophysical Survey Systems, Inc. Range information from signal distortions
US5202822A (en) * 1990-09-26 1993-04-13 Honeywell Inc. Universal scheme of input/output redundancy in a process control system
US5261092A (en) * 1990-09-26 1993-11-09 Honeywell Inc. Synchronizing slave processors through eavesdrop by one on periodic sync-verify messages directed to another followed by comparison of individual status
US5255388A (en) * 1990-09-26 1993-10-19 Honeywell Inc. Synchronizing slave processors through eavesdrop by one on a write request message directed to another followed by comparison of individual status request replies
US5283126A (en) * 1991-08-29 1994-02-01 Bee Chemical Utilization of flexible coating on steel to impart superior scratch and chip resistance
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
DE19703091A1 (de) * 1997-01-29 1998-07-30 Ppg Industries Inc Überzugsmittel für Nahrungsmittelbehälter
US5850628A (en) * 1997-01-30 1998-12-15 Hasbro, Inc. Speech and sound synthesizers with connected memories and outputs
CA2241909A1 (en) * 1997-07-10 1999-01-10 Howard Thomas Olnowich Cache coherent network, network adapter and message protocol for scalable shared memory processing systems
US6298419B1 (en) * 1998-03-26 2001-10-02 Compaq Computer Corporation Protocol for software distributed shared memory with memory scaling
WO2008085989A1 (en) 2007-01-10 2008-07-17 Richard Garfinkle A software method for data storage and retrieval
US20090150355A1 (en) * 2007-11-28 2009-06-11 Norton Garfinkle Software method for data storage and retrieval

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719568A (en) * 1982-12-30 1988-01-12 International Business Machines Corporation Hierarchical memory system including separate cache memories for storing data and instructions
ATE62764T1 (de) * 1984-02-10 1991-05-15 Prime Computer Inc Cache-kohaerenz-anordnung.
EP0180369B1 (en) * 1984-10-31 1992-08-19 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method

Also Published As

Publication number Publication date
EP0424432A1 (en) 1991-05-02
ATE160454T1 (de) 1997-12-15
EP0424432B1 (en) 1997-11-19
DE68928454D1 (de) 1998-01-02
WO1990000283A1 (en) 1990-01-11
DE68928454T2 (de) 1998-04-23

Similar Documents

Publication Publication Date Title
JPH03505793A (ja) 階層構造を有するキャッシュメモリシステムを含むマルチプロセッサシステム
US11741012B2 (en) Stacked memory device system interconnect directory-based cache coherence methodology
TWI706247B (zh) 記憶體中輕量一致性
US5897664A (en) Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US5490253A (en) Multiprocessor system using odd/even data buses with a timeshared address bus
US6591321B1 (en) Multiprocessor system bus protocol with group addresses, responses, and priorities
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
TW409205B (en) Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same
KR100714766B1 (ko) 비인접 데이터 구조를 선인출하는 방법
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
CN108885583A (zh) 高速缓存存储器访问
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JPH10124394A (ja) キャッシュ・コヒーレンシを維持する方法および装置
Stenstrom Reducing contention in shared-memory multiprocessors
US6892290B2 (en) Linked-list early race resolution mechanism
Martin et al. Token coherence: A new framework for shared-memory multiprocessors
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US6598120B1 (en) Assignment of building block collector agent to receive acknowledgments from other building block agents
JP3814521B2 (ja) データ処理方法および装置
JPH11316750A (ja) キャッシュ・コヒ―レンシの維持方法及びペ―ジ割当解除方法
US6895476B2 (en) Retry-based late race resolution mechanism for a computer system
US20040030843A1 (en) Asynchronous non-blocking snoop invalidation
JPH01226056A (ja) アドレス変換回路