JPH02294762A - マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法 - Google Patents

マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法

Info

Publication number
JPH02294762A
JPH02294762A JP2093302A JP9330290A JPH02294762A JP H02294762 A JPH02294762 A JP H02294762A JP 2093302 A JP2093302 A JP 2093302A JP 9330290 A JP9330290 A JP 9330290A JP H02294762 A JPH02294762 A JP H02294762A
Authority
JP
Japan
Prior art keywords
memory
cache
processor
request
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.)
Pending
Application number
JP2093302A
Other languages
English (en)
Inventor
Philip Heidelberger
フイリツプ・ヘイデルヴアーガー
Kevin Patrick Mcauliffe
ケビン・パトリツク・マクアーリフ
Bharat Deep Rathi
バラツト・デイープ・ラシイ
Asser Nasreldin Tantawi
アサー・ナサールデイン・タンタウ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02294762A publication Critical patent/JPH02294762A/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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 以下の順にこの発明を説明する。
A.産業上の利用分野 B.従来の技術 Bl.背景(第2図) B2.先行技術(第9図、第IO図) C.発明が解決しようとする課題 D,課題を解決するための手段 E.実施例 El.構fA(第3図〜第8図) E2.基本システムの動作 (第1図、第2図) E3.実施例の動伶 (第3図〜第8図) E4.動作フロー例 (第11図、第12図) F.発明の効果 G.参考文献 A.産業上の利用分野 この発明は階層的なデータ処理装置の記憶システムに関
し、より具体的には複数のプロセッサおよび複数の固有
の共有メモリ・モジュールを有する大規模なマルチプロ
セッサ・コンピュータ・システム用の記憶システムの制
御装置に関する。さらに詳細にいえば、この発明はそれ
ぞれメモリ・モジュールに関係付けられた個々にアクセ
ス可能な複数のキャッシュを備え、プロセッサおよびメ
モリが選択的に単一の直接相互接続ネットワークを介し
て接続されるメモリ・システムに関する。
B.従来の技術 Bl.背景 コンピュータ・システムの実効メモリ・アクセスはシス
テムの全体的なパフォーマンスに実質的な影響を与える
。そのため多くの手法がこの実効メモリ・アクセス時間
を最小化すべく提案されてきた。たとえばインターリー
ブ、サイクル当りの多重ワード・アクセス、キャッシュ
手法等である。これら手法のうちキャッシュはながく一
般的な手法であった。
従来の単一プロセッサまたはマルチプロセッサのシステ
ム構成では,キャッシュはプロセッサとメモリとの間に
配置されていた。そして物理的にはプロセッサの近くに
設けられていた。これによりキャッシュ・アクセス時間
が可能な限り最小化され、そして実効メモリ・アクセス
時間が可能な限り最小化されてきた。
このようなキヤ・ンシュは次レベルのメモリよりかなり
短いアクセス時間を有し、普通少なくとも限定的な連想
アクセスを与えられている。しかしながらキャッシュ・
メモリは主記憶装置よりかなり高価であり、種々のキャ
ッシュ管理手法を用いて最も頻繁にアクセスされるデー
タおよび命令がキャッシュ内に維持されるようにしてい
る。
従来のマルチプロセッサ・システムでは各プロセッサが
自己のキャッシュに割当てられていた。
これらプロセッサ・キャッシュ・ユニットは何らかの相
互接続ファシリテイ(通常1個または複数のバス)を介
して共有メモリに結合され、一般に任五のメモリ・ロケ
ーションをキャッシュ操作できるようになっている。各
プロセッサは固有のキャッシュを有しているのでキャッ
シュのコヒーレンシを維持するメカニズムを設けすべて
のプロセッサが一貫した共有メモリのイメージを有する
まうにしなければならない。
通常のマルチプロセッサのキャッシュを効果的にするた
めに、キャッシュ・コヒーレンシ・メカニズムは高速で
なければならず、そのためハードウェアで実現されなけ
ればならない。い才まで用いられてきたキャッシュ・コ
ヒーレンシ・メカニズムないし提案されたキャッシュ・
コヒーレンシ・メカニズムは、集中化キャッシュ・コヒ
ーレンシ・マネジャまたは何らかの「ウオッチ・ドッグ
」ロジックを採用している。「ウオッチ・ドッグ」ロジ
ックはキャッシュから共有メモリへのトラフィックをモ
ニタするものである。「ウオ・ンチ・ドッグ」ロジック
ではまたすべての共有メモリへのトラフイツクをすべて
のプロセッサの「ウォッチ・ド,ッグ」ロジックへブロ
ードキャストが必要である。従来のマルチプロセッサ・
システムは通常、専用の共有バスをブロードキャスト用
に有していた。
そのようなキャッシュ・コヒーレンシ・メカニズムはプ
ロセッサ数の少ない(たとえば1から32個のプロセッ
サ)システムには通している。しかし膨大な数(たとえ
ば100ないし1000個のプロセッサ)のプロセッサ
を有するシステムには適用できない。その主たる理由は
、システム中のプロセッサ数が増大すると集中化キャッ
シュ・コヒーレンシ・マネジャおよびブロードキャスト
・バスが深刻なパフォーマンス上のボトルネックになる
という点である。したがって膨大なプロセッサを有する
共有メモリ用に、たとえばパラレル・プロセッサ・シス
テム用に、システム構築者達はキャッシュ・コヒーレン
シをソフトウエアで処理することを決定してきたし(こ
の点の詳細は文末に表示する文献[1]を参照されたい
》、キャッシュを使用するのを避けてきたくこの点の詳
細は文末に表示する文#[2]を参照されたい)。
これらの手法はキャッシュ・コヒーレンシの問題を解決
するけれど、ハードウエア・キャッシュ・コヒーレンシ
のキャッシュ・システムと同様に、共有メモリの実効ア
クセス時間を減少させない。したがって、膨大な数のプ
ロセッサを有するシステム用に、上述の2つの手法の間
履点がなく、システムの全体的なパフォーマンスを改善
した、より優れた共有メモリ・キャッシュ方法を提供す
ることが望まれる。
共有メモリ・パラレル・プロセッサ・システムでは、メ
モリ・アクセス時間か減少すると、相互接続ネットワー
クおよび全体のシステムのパフォーマンスが著しく改善
される。たとえばRP3システム(第2図参照)では全
体のシステム・メモリ205が機能的には各プロセッサ
に割当てられたメモリ・モジュールに分散されている。
プロセッサ201がそのメモリ・モジュールにない共有
メモリ・ロケーションにアクセスできるようにするには
、.ネットワーク206にわたって参照を送出しなけれ
ばならない。この要求を満たすのに要する時間は共有メ
モリ参照のメモリアクセス時間に依存するだけでなく、
ネットワーク206の所要時間にも依存する。ネットワ
ーク206の所要時間は多くのパラメータにより決定さ
れ、その中には、ネットワークのプロ・νキング、ネッ
トワークの待ち行列処理および出力ポートのビジ−時間
がある。さらにこれらネ・ントワーク・パラメータは実
効メモリ・アクセス時間に影響される。したがって、こ
のようなパラレル・システムでは、共有メモリ205の
実効アクセス時間を減少すると著しくシステムの全体的
なパフォーマンスが改善される。
RP3システム(第2図)中の各プロセ・νサ201は
キャッシュ203を有するけれど、このキャッシュはイ
ンストラクションや非共有(プライベート)データをキ
ャッシュ操作するために用いられている。共有データも
このキャッシュ203でキャッシュ操伴できる。ただし
メモリ205のロックや他の構成により、ソフトウエア
がデータを相互に排他的に利用できなければならない。
この点は当業者には容易に理解できるであろう。
相互的な排他操作を実現するとそれ自体は共有メモリの
参照に大幅なオーバーヘッドをもたらし、システムのパ
フォーマンスを劣化させる。
RP3においてプロセッサ・キャッシュと同様に上述の
とおり共有データをキャッシュ操作する方法があっても
、すべてのタイプの共有データをキャッシュするのは好
ましくない。たとえばシステム/アプリケーションは共
有ロック、インデックス、ポインタなどをキャッシュす
ることを望まないであろう。これらのタイプの共有デー
タの参照に要する時間止少なくするために、RP3のよ
うなシステムはフェッチおよびオベーション(F& 0
》型のインストラクション(たとえばFeteh  &
  Add)を提供し、またネットワークを結合する(
この点の詳細は文末に表示する文献[1]を参照された
い)。しかしここでもF&0方のオペレーションおよび
ネ・ントワークの結合は影響を与えるパラメータの1つ
に共有メモリの実効アクセス時間がある。したがってこ
こでも共有メモリのアクセス時間を改善する事が有意義
である。
以下の例により共有メモリアクセス時間がいがに顕著に
システムのパフォーマンスに影響するかが理解できる。
RP3システム(文&[1])では共有データはメモリ
・モジュール(これはプロセッサすなわちローカル・プ
ロセッサに接続されている)または他のメモリ・モジュ
ールに散在する(第2図参照)。後の場合にはメモリ参
照はネットワークを介して行なわれる必要がある。
キャッシュ203からデータを参照するのに1次間ユニ
・ント必要とすると、上述の2つのタイプのメモリ参照
用のアクセス時間の比は: キャッシュ:ローカル・メモリ:ネットワークにわたる
メモリ・アクセス=1:10:16である。ローカル・
メモリ・アクセス時間の要素は:ローカル・メモリ・キ
ャッシュ・ミス・メモリ・アクセス時間=オーバーヘッ
ド+アクセス時間(10=1+9)である。ネットワー
ク206にわたる共有メモリ参照のアクセス時間要素は
(ネットワークの衝突がないとして):ネットワーク・
メモリ・キャッシューミス+ネットワーク+メモリ・ア
クセス時間=オーバーヘッド+遅延+アクセス時間(1
6=1+6+9)となる。
ローカルの共有メモリアクセスの場合、メモリ・アクセ
ス時間によるオーバーへ・ンドは実効メモリ参照時間の
90%となることは明らかである。ネットワークにわた
る共有メモリ参照の場合にはこのオーバーヘッドは実効
メモリ参照時間の56%である。
さらに共有メモリのアクセス時間の改善がマルチプロセ
ッサ・システムにとって著しく重要であることも理解で
きる。共有メモリをキャッシュする従来の方法は、ハー
ドウエア・コヒーレソシ・メカニズムを一体化し、シス
テム内のプロセッサ数の増大に対処できないので、共有
データをキャッシュする新たな手法が望まれる。以下に
詳述する手法4さ以上の要請に合致し、膨大なプロセッ
サを有するシステム(たとえばパラレル・プロセッサ・
システム)にとって大変魅力的なものである。
B2.先行技術 以下に検討する種々の先行する文献が最も近い先行技術
を構成すると考えられる。
この発明のキャッシュ・スキーム(構成)は共有メモリ
の実効アクセス時間を改善すべく先に提案されたキャッ
シュ・スキームと対比される。この比較を意義澤<行う
ために、以下の特長を全て具備する既知のキャッシュ・
アーキテクチャが、キヤ・yシュ・アーキテクチャ等の
分野の膨大な文献を考慮すると、適切であろう。
1.アーキテクチャは、プロセッサおよびメモリ・キャ
ッシュの双方がメモリ階屡に共存することを許賓する。
2.プロセ・νサおよびメモリ・キャッシュの双方が物
理的にシステム内に分散されている。
3.アーキテクチャは適切なデータ・コヒーレンシの維
持のためになんらハードウエアないしキャッシュ・コヒ
ーレンシ・メカニズムを必要としない。
4.キャッシュ・スキームが容易にシステムのサイズの
変化に対応できなければならない。すなわちアーキテク
チャは、システム内のプロセッサ数が増大したときに、
顕著な手直しなしに同様のキャッシュ・スキームを維持
できなければならない。
5.キャッシュ・スキームは大規模なシステムたとえば
数百ないし数千のプロセッサを具儂するパラレル・プロ
セッサに適用できなくてはならない。
上述の特徴は大規模なマルチプロセッサ・システムにと
ってパフォーマンスおよびコストの双方の観点から必要
と確信され、現行のシステムを設計する上で最信限の基
準に設定されていた。文末の参考文献[1]および[6
]は大規模共有メモリの実験的な高速マルチプロセッサ
・コソビューティング〕システムの一般的な属性を説明
している。第一のものは、それ自体解説的なものであり
、この発明が有効なシステムを説明している。
第二番目の論文はそのようなシステムのメモリ要素を広
く解説し、大規模な共有メモリに使用するのに適した所
定のキャッシュ管理構成を全般的に説明している。これ
ら二つの論文はこの発明の有益な背景の情報を提供する
ハイ・エンドのコンピューティング・システムにおいて
は、たとえば二重キャッシュ階層を有するs / 3 
7 0が提案され採用されてきた。この町なシステムで
は、L1キャッシュの各々が各プロセッサに接続され,
L2キャッシュがいくつかのL1キャッシュに接続され
る。各プロセッサは固有のキャッシュL1に排他的にア
クセスすることに留意されたい。同ようにL2キャ・ン
シュはそれに接続されたL1キャッシュを排他的に支援
する。そのようなプロセッサーL 1−L2キャッシュ
・サブシステムがいくつか1つのシステム環境に存在で
きる。
そのようなプロセッサーL 1−L2キヤ・ンシュ・シ
ステムにおいては、L2キャッシュの大きさは一般にL
2キャッシュの累計の大きさより大きい。さらにL2キ
ャッシュはそれに接続されている任意のL1キャッシュ
のスーバ・セットをなす情報を保持している。実際、L
2情報はそれに接続されているすべてのL1キャッシュ
が保持している情報のスーパ・セットを保持している。
この発明により教示されるプロセッサおよびメモリ・キ
ャッシュとLl−L2キャッシュ・スキームとの間には
、基本的な違いがある。すなわちこの発明ではメモリ・
キャッシュに保持されている情報はプロセッサーキャッ
シュのスーバ・セ・νトではない。たとえばプライベー
ト・データはプロセッサ・キャッシュにのみストアされ
、メモリ・キャッシュにはストアされない,Ll−L2
キャッシュ・スキームにおいては、プライベート・デー
タはL1およびL2のキャッシュの双方にストアされる
さらにこの発明ではメモリ・キャッシュの大きさはプロ
セッサ・キャッシュの大きさに依存する必要がない。す
なわちL2キャッシュと異なり、メモリ・キャッシュは
プロセッサ・キャッシュより大きい必要がなく、すべて
のプロセッサ・キャッシュの累計の大きさより大きい必
要もない。
またメモリ・キャッシュの共有リード・オンリ・データ
が?!数のブロセ・ンサ・キャッシュに存在することも
できる。さらに複数のメモリ・キャッシュからの共有リ
ード・オンリ・データも1のプロセッサ・キャッシュに
存在できる。すなわちL1−L2キャッシュと異なり、
プロセッサ・キャッシュとメモリ・キャッシュとの間に
排他的な関係がない。
上述の要請をすべて満たすキャッシュ構成は、この発明
をのぞけばたったひとつしがない。このキャッシュ構成
は文末の文献[3]に提案され、第9図に示されている
この発明のキャッシュ構成は、簡単に第4図を参照する
と、以下のような観点を文献[3]の手法に対して有す
る。この発明では3つの個別のネットワーク408を、
メモリ・キャッシュ405をプロセッサ401およびメ
モリ・モジュール407に相互接続するのに、必要とし
ない。この発明の教示するところによれば、プロセッサ
401はメモリ・キャッシュ405およびメモリ・モジ
ュール407に同一のネットワーク408を介して相互
接続される。この発明と比較すると、文献[3]の構成
は3つの個別のネ・ソトワーク903、911、912
を用いる。ネットワーク903を用いてプロセッサ90
6をメモリ・モジュール905に接続する。ネットワー
ク911はプロセッサ906を共有メモリ・キャッシュ
902に接続し、ネットワーク912はメモリ・キャッ
シュ902をメモリ・モジュール905に接続する。
この発明のキャッシュ構成が文献[3]のものより著し
く低コストが可能なことは明らかである。
実装の観点からもこの発明のキャッシュ構成は効果的で
効率的である。なぜならこの発明では第9図のキャッシ
ュ構成で必要となる余分のネットワーク911および9
12がいらないからである。さらにメモリ・キャッシュ
405を、それに接続されるメモリ・モジュール407
と一緒に実装でき、そのため製造コストを抑えることが
できるのである。
この発明のキャッシュ構成はそれ自体第9図のものより
高効率である。なぜならメモリ・キャッシュ・ミスの場
合適切なメモリ・モジュール905に直接にネットワー
ク912およびバス910を介してメモリ参照を行わな
ければならないからである。この発明の構成ではメモリ
・キャッシュ405がそのメモリ・モジュール407に
非常に短かいバス406を介して結合されている。一般
にネットワークおよびぶすの遅延はバスのみの遅延に比
べ著しく長い。
文末の文献[5]で提案されているCarriek−o
n−Shannonのアーキテクチャは第10図の機能
ブロック図に示すように個別のプロセッサ1003およ
びメモリ・キャッシュ1007を採用することを示して
いる。
この発明と文献[5]の手法との主たる違いは、文献[
5]がプロセッサ・メモリのキャッシュ・スキームを提
案し、このスキームは、共有メモリ1005を用いてシ
ステムのいくつかのプロセッサおよびメモリを相互接絖
しようとする点に基礎を置くのに対し、この発明のメモ
リ・アーキテクチャは相互接続ネットワーク(たとえば
クロスバまたはMI N型のネットワーク)を用いてシ
ステムのいくつかのプロセッサおよびメモリを相互接続
する点にある。この違いは極めて重要である。なぜなら
これがパラレル・プロセッサ・システムのスケール適合
性を左右するからである。
実際には、パス・ベースのスキーマは少数(65未真の
プロセッサ)のプロセ・νサの相互接絖に限定される。
この発明のシステムは相互接続ネットワークを基礎にし
ているので、膨大な数のプロセッサね接続するようにス
ケールを適合化できる。文献[5]のアーキテクチャで
はまたメモリ・キャッシュ1007が特別のキャッシュ
管理ポリシを採用しなければならない。他方この発明で
はシステムに合った任意のキャッシュ管理ポリシを採用
できる。
バスを相互接続ネットワークに置き換えるのが間純な事
項でないことは明確に理解されたい。なぜならバス・ベ
ース・システム・アーキテクチャはブロードキャストを
用いてテスト・アンド・セット・オペレーションを支援
する必要があるからである。パスの通常モードのオペレ
ーションはブロードキャストである。しかし相互接続ネ
ットワークの通常モードのオペレーションはポイント・
トウ・ポイント通信である。相互接続ネットワークはブ
ロードキャストを支援するようにとくに設計されなけれ
ばならない。さらに相互接絖ネットワークにおいてブロ
ードキャストを用いると,性能を劣化させ、コストを増
大させる。
この発明のアーキテクチャはブロードキャストを相互接
続ネットワークで実現する必要がない。ここで用いるテ
スト・アンド・セット・オペレーションはメモリ・モジ
ュール《メモリ・キャッシュおよびメモリ・ロジック)
で自動的に実行され、その結果はオペレーショソを要求
したプロセッサに直接に通信される。そして結果ないし
否定の応答はぶシステムのすべてのプロセッサにブロー
ドキャストされない。これらの結果はポイント・トウ・
ポイントの通信を用いて送出される。
文献[5]のアーキテクチャはメモリ・キャッシュ・ス
キーム用にテスト・アンド・セット・オペレーション(
Tセ・ント)に制限を加える。文献[5]に述べられて
いるように「任意の時点でたった1つのTセット・オペ
レーションのみが進められ、メモリ・モジュールの待ち
行列に入れられるだけである。受け取った付加的なTセ
ットは否定的に応答される」。またそのスキームは修正
が可能で、「同一のセマフォが参照される限り、所望の
数のTセットを受け収るようにでき、この場合始めのT
セットのみが待ち御売れるに入れられ、同位置のセマフ
ォに関する他のTセットはすべて単に応答され、廃棄さ
れるのみである」ことが、文献[51に示唆されている
一時点に1つのTセット・オペレーションのみが待ち行
列に入れられるよう制約を加えると、多数のプロセッサ
のシステムに著しい制約が加わる。この発明のシステム
ではそのような制約がない。実際、任意の数のTセット
・オペレーションを待ち行列に入れることができる。具
体的にはTセット・オペレーションのいずれも廃棄され
たり否定的な通知を受けたりすることがない。そのよう
なオペレーションは待ち行列に入れることかできる。待
ち行列に入れられたTセット・オペレーションは自動的
にメモリ・キャッシュおよびメモリ・ロジックにJり実
行され、そのオペレーションの結果は適切なプロセッサ
に戻される。
さらに他の型の同期オペレーションたとえばフェッチ・
アンド・アッドの実現も予想される。
これらのオペレーションもメモリ・モジュールで自動的
に実行され、その結果は適切なプロセッサに戻される。
この発明のアーキテクチャではローカルのメモリ・モジ
ュールをシステムのプロセッサに接続できる。そのよう
なメモリ・モジュールの例は第5図および第6図に示さ
れる。同様にローカルのメモリ・モジュールをまた第7
図および第8図に示すように例に対して構成できる。そ
のようなローカル・メモリを用いると、この発明のアー
キテクチャではこのメモリにプライベート・データおよ
びインストラクションをストアできて有利である。プラ
イベート・データおよびインストラクションをプロセッ
サ・キャッシュのみでキャッシュするので、プライベー
ト・データおよびインストラクションを相互接続ネット
ワークを介してメモリからアクセスしないようにして、
システム効率を向上させることができる。
文献[51のアーキテクチャでは一様なアドレス空間を
用いなければならない。すなわちメモリをローカルおよ
び共有に区分しない。
もちろんこの発明のアーキテクチャは一様にアドレスさ
れたメモリだけをサポートするシステムに用いることも
できるが、そのような必要性もないことに留倉されたい
最後に文献〔5]のアーキテクチャでは1のプロセッサ
はメモリに1つのリクエストしか送出できない。すなわ
ちプロセッサはすべてのメモリ・リクエストに対して、
メモリから応答が来るのを待機する。この待機の間プロ
セッサは他のリクエストを実行できない。これは大規模
なマルチプロセッサ・システムの効率を著しく阻害する
この発明のアーキテクチャはそのJラな制約を有しない
。したがってプロセッサで送出されたリクエストの数は
、1)プロセッサの設計、および2)プロセッサで実行
されている計算の特性にのみ制約される。
この発明のアーキテクチャは文献[4]に示されるまう
なキャッシュの提案とも著しく異なる。
すなわちこの発明のアーキテクチャはなんらハードウエ
ア・キャッシュ・コヒーレンシ・サポートを必要としな
いのである。これに対し文献[4]のキャッシュ・アー
キテクチャは主にハードウエア・キャッシュ・コヒーレ
ンシ・スキームに関連する。また文献[4]は1個のプ
ロセッサ・キヤ・ンシュのみが用いられ、このキャッシ
ュがプライベートおよび共有データの双方をストアする
ことを仮定している。以下の説明および第4図の高レベ
ルの1!!A能ブロック図から明らかなように、この発
明では各プロセッサは各メモリ・モジュールに関連付け
られているメモリ・キャッシュ405とともに固有の専
用キャッシュ403  Cpを有する。
C.発明が解決しようとする課題 この発明は以上の事情を考慮してなされたものであり、
改良されたメモリ階層システムを提供し、またそのシス
テムにストアされた共有データを管理する方法を提供す
ることを目的としている。このシステムは大規模なマル
チプロセッサ・コンピューティング・システムに個別に
適合化される。
またこの発明の他の目的は、キャッシュされたデータの
データ・コヒーレンシを自動的に維持するシステムおよ
び方法を提供することにある。
またこの発明の他の目的は、2つの別個のキャッシュに
おいて「プライベートおよび共有のリード・オンリ」デ
ータおよび共有データをキヤ・シシュするシステムを提
供することにある。
またこの発明の他の目的は、2つのキャッシュがプロセ
ッサ・キャッシュおよびメモリ・キャッシュであって、
メモリ・キャッシュがマルチプロセッサ・メモリ・シス
テム中に分散されているシステムを提供することにある
またこの発明の他の目的は、プロセッサの数が大きくな
っても対応でき,なんら特別なハードウエア手段をデー
タ・コヒーレンシの維持に必要としないシステムを提供
することにある。
D.課題を解決するだめの手段 この発明では以上の目的を達成するために、複数の個別
の別個にアクセスできるメモリ・モジュールを有する大
規模分散メモリ・システムを採用する。そして個別のメ
モリ・キャッシュは!!!能的に各メモリ・モジュール
に関連付けられている。このキャッシュは機能的にはメ
モリ・モジュールとこのメモリ・モジュールにリクエス
トを行う任意のプロセッサとの間に配置される。
この発明の他の一面によれば、共有メモリが特別に大規
模マルチプロセッサ・システムでの使用に適合化される
。ここではメモリ・キャッシュ種々のプロセッサに共有
され、各プロセッサには固有のプロセッサ・キャッシュ
を設け、そのプロセッサに固有のデータないしすべての
プロセッサにリード・オンリのベースで共有されている
データを、その固有のプロセッサ・キャッシュにストア
するようにする。
この発明のさらに他の一面によれば、各プライベートの
プロセッサ・キャッシュが対応するプロセッサのそばに
物理的に配置され、各共有メモリ・キャッシュは自己の
メモリ・モジュールまたはメモリ・モジュールのグルー
プのそばに物理的に配置される。個々のプロセッサおよ
び個々のメモリ・モジュールは直接に他段の相互接続ネ
ットワークまたはクロスバ・ネットワークを介して沿い
ごに結合可能である。
E.実施例 E1.構成(第3図〜第8図) ここに説明する発明は、共有メモリ型のマルチプロセッ
サ・システムにおいてプライベート・データ(すなわち
非共有データまたは共有リード・オンリ・データ)およ
び共有データを2つの個別のキャッシュでキャッシュす
ることを提案する。プライベート・データ・キャッシュ
は従来と同様にブロセ・yサの近くに構成されなければ
ならない。これに対し共有データ・キャッシュはメモリ
の近くに構成されなくてはならない。以下の説明では、
プライベート・データ・キャッシュをプロセッサ・キャ
ッシュと呼び、共有データ・キャッシュをメモリ・キャ
ッシュと呼ぶ。さらに各プロセッサは自己のプロセッサ
・キャッシュを割当てられる。他方各共有メモリバンク
ないし各ネ・νトワークのメモリ・ポートはメモリ・キ
ャッシュを割めてられる。第3図は一般的なマルチプロ
セッサ・システム301を示し、このシステムはこれら
の型のキャッシュ303および307をサポートする。
第3図は以上の二重キャッシュ・アーキテクチャをサポ
ートする基本システムの構成例である。その他の例は第
4図ないし第8図に示す。これらの図に示す構成はシス
テムのロジック構成または物理構成で説明できる。第4
図に示す構成はRP3型の緊密結合マルチプロセッサ・
システムにおけるメモリ・キャッシュ405およびプロ
セッサ・キャッシュ403の配置を示す。第5図および
第6図の構成は、個別のプライベート・メモリ505お
よび605および共有メモリ511および610をサポ
ートするシステムにおける上述のキャッシュの配置を示
す。第7図の構成はメモリ・キャッシュが複数のメモリ
・モジュール709から710に接続可能であることを
示す。他方第8図は多重相互接続ネットワーク・ポート
806から807が単一のメモリ・キャッシュ808に
インターフェースできることを示す。
この発明を詳細に説明するのに先立ってこのキャッシュ
構成の際立った多くの特徴を説明しよう。
以下の説明においてすべての参照番号は対応する図のキ
ーになっており、第一番目のデジットまたは一対のデジ
ット(第10図、第11図、第12図)は対応する図面
に現れる。たとえばキャッシュ303は第3図に現れ、
キャッシュ808は第8図に現れる。また機能ブロック
1111は第11図に現れる。
第3図の基本的な構成において、プロセッサ・キャッシ
ュ303およびメモリ・キャッシュ307は物理的にシ
ステムにわたって分散され、プロセッサ・キャッシュの
各々は、サービスするプロセッサに隣接し、メモリ・キ
ャッシュはサービスするモジュールに隣接する。信号通
信メカニズムたとえばシステムの種々のプロセッサ・キ
ャッシュおよびメモリ・キヤ・yシュの間で「ウオッチ
・ドッグ」機能を実現するための特別な共有バスは必要
でない。これは従来の技術ではキャッシュ・コヒーレン
シを維持するのに必要であった。
メモリ・キャッシュ307は物理的かつ機能的に共有メ
モリ・モジュールないしセクション(そらがサービスす
るもの)と、システムの残りたとえば通信ネットワーク
およびブロセ・ンサとの間に配される。システムのメモ
リ・モジュール407がプライベート・データおよび共
有データをRPSシステムのようにサポートし、第4図
、第7図および第8図にMpsで表示されるなら、各メ
モリ・キャッシュ405は第4図に示すようにこれらモ
ジュール407およびシステムの残りの部分の前に配置
される。
第7図のメモリ・アーキテクチャを参照する。
メモリ・キャッシュ707を用いて複数のメモリ・モジ
ュールないしモジュールのパンク709−7 1 0に
キャッシュ参照できる。ただし各メモリ・キャッシュ7
07は関連するメモリ・モジュールの組ないしバンクの
岨709−710に排他的にアクセスするようになって
いる。
この発明の全体的なメモリ・キャッシュ・アーキテクチ
ャにおいては、システムがプロセッサ・キャッシュやメ
モリ・キャッシュ用のハードウエア・キャッシュ・コヒ
ーレンシ・スキームをサポートする必要はない。キャッ
シュ・コヒーレンシは第7図の703のようなプロセッ
サ・キャッシュには必要でない。なぜならプロセッサ・
キャッシュはプライベート・データまたは共有リード・
オンリ・データをキャッシュし、関連するプロセッサに
対してアクセス可能なだけであるからである。したがっ
て他のプロセッサは当該プロセッサ・キャッシュ内のデ
ータを変更できない。
またこのメモリ・キャッシュたとえば707でもキャッ
シュ・コヒーレンシは必要でない。なぜなら各メモリ・
キャッシュ707は当該メモリ・モジュール709−7
10への「排他的」アクセスを与えられているからであ
る。しかしながら、以上の点は、ソフトウエア・コヒー
レンシ手法たとえばロック、タイム・スタンプなどをメ
モリ・キャ・ンシュ管理制御部の各々において用いて共
有データの相互排他アクセスを実現し、このデータをプ
ロセッサ・キャッシュ703においてキャッシュするよ
うすることを排斥するものでないことは理解されたい。
また全体的なマルチプロセッサ・メモリ・システムがプ
ロセッサ・キャッシュたとえば703をサポートしメモ
リ・キャッシュをサポートできるようにする必要もない
。実際には、プロセッサ・キャッシュ703をサポート
するシステムにおいては、メモリ・キャッシュ707を
用いて、必要であれば、プライベート・データをキャッ
シュすることができる。これには県体的なプロセッサに
指定された個々のメモリ・キャッシュの領域を用いれば
よい。
第8図を簡単に参照しよう。メモリ・キャッシュ808
は1または複数のネットワーク・ポートたとえば806
−807に接続でき、さらに共有データを含むメモリ・
モジュールないしバンク810−811に接続される。
同様にメモリ・キャッシュ808はネットワーク805
の出力ポート806−807においてバッファを使用す
るのを妨げない。これによりメモリ・キャッシュ808
に送出されたリクエストおよびメモリ・キャッシュ80
8を介してポート808−807に接続されているメモ
リ・モジュールへ送出サレたリクエストを保持できる。
そのようなバッファは従来知られているようにネットワ
ークにおけるツリー飽和(ホット・スポット)を削減す
るのに役立つ。
全体の説明に戻ろう。そして以上のメモリ・キャッシュ
の効率改善の程度を示し、第4図でRP3に似たシステ
ムでそれらを使用する態様を説明する。先に触れたRP
3の例は種々の共有メモリのアクセス時間を示した。メ
モリ・キャッシュ405(ここで提案するもの)をRP
3のようなシステムで用い、アクセス時間がRP3のキ
ャッシュと等価(すなわち1時間ユニ・ント)とすると
、キャッシュ・ヒットの共有メモリ・アクセス時間は: ローカル・メモリ: 共有情報アクセス時間=プロセッサ・キヤ・ンシュ・オ
ーバーへ・νド+メモリ・キャッシュ・アクセス時間で
あり、2=1+1である。
ネットワーク・メモリ: 共有情報アクセス時間=プロセッサ・キャッシュ・オー
バーヘッド斗ネットワーク遅延+メモリ・キャッシュ・
アクセス時間であり、8=1+6+1である。
他方キャッシュ・ミス時の共有メモリ・アクセス時間は
: ローカル・メモリ共有情報アクセス時間=1+1+9=
11 ネットワーク・メモリ共有情報アクセス時間=1+6+
1+9=17 (いしようの数字はキャッシュ・ヒットの数字にメモリ
・アクセス時間のオーバーヘッドの9時間ユニットを加
えて導かれている。) キャッシュ・ミスの場合には実効共有メモリ・アクセス
時間は6〜10%劣化するが、キヤ・ンシュ・ヒットの
場合には実質的に50〜80%の改善がなされる。実際
,このような結果は非常に魅力的である。なぜならメモ
リ・キャッシュ405のヒット確率が0.12を超えて
いれば、メモリ・キャッシュ405が実効共有メモリ・
アクセス時間を改善するからである。
上述の例は、メモリ・キャッシュのヒット確率がかなり
低くてもメモリ・キャッシュは著しく有効であることを
示している。したがってマルチプロセッサようにそれら
メモリ・キャッシュが有益であると考えられる。
E2.基本システムの動作(第1図、第2図)この発明
の実施例の動伶を理解しやすくするために第1図の基本
的なマルチプロセ・yサの動伶および機能について説明
しておく。
そのようなパラレル・プロセッサ・システムは3つの別
個の要素を含むと考えることができる。
すなわちプロセッサ要素(PE)101、メモリ要素(
ME)102および相互接続ネットワーク103である
。パラレル・プロセッサ・システムはいくっかのプロセ
ッサおよびメモリ要素を有し、それらは相互接続ネット
ワークを通じてお互いに接続される。1または複数のネ
ットワークを相互接続に用いることができる。このネッ
トワークを通じて通信するためにPE  101がライ
ン104を介してメッセージを送出する。ネットワーク
はこのメッセージを所望のMEに宛先指定する。メモリ
要素102はこのメッセージをライン105を介して受
け取って、処理し、要求ネットワークにライン106を
介して戻す。つぎにネットワークはこのメ・ンセージを
所望のPEに宛先指定する。PEはこのメッセージをラ
イン107合介して受け取って、処理する。ネットワー
クはPEの間の通信にも用いることができる点も留意さ
れたい。
PE,MEおよび相互接続ネットワークはこの発明に関
係がないので、以下では詳細に検討しない。以下の一般
的な記述および先行文献を参照すれば等凝視は容易にこ
の発明を実施できるであろう。
パラレル・プロセッサ・システムはプロセッサにおいて
キャッシュをサポートできる。そのようなシステムの一
例はRP3 (文ffi[1])である。RP3のシス
テム構成を第3図に示す。RP3においてはキャッシュ
203はソフトウエアにより管理される。すなわちシス
テムはハードウエア・キャッシュ・コヒーレンシ・スキ
ームをサポートしない。RP3のシステムではプロセッ
サ201がメモリ・リクエストを生成すると、メモリ・
リクエストはライン202を介してキャッシュ203に
転送される。メモリ・リクエストがキャッシュ可能であ
り、キャッシュ・メモリが要求されている情報を有して
いるなら、キャッシュ203はそのメモリからリクエス
ト情報をアクセスする。キャッシュ203はつぎに所望
の応答をライン202を介してプロセッサ201に返送
する。レカルメモリ・リクエストがキャッシュ可能でな
ければまたはキャッシュ・メモリが所望の情報を保持し
ていなければ、リクエストはライン204を通じて、プ
ロセッサにローカルに接続されているか、またはネット
ワーク206を通じて接続されているメモリ・モジュー
ル205に送られる。リクエストを受け収ったメモリ・
モジュールは情報をアクセスし、適切な応答をリクエス
ト・プロセッサに送出する。情報がキャッシュ可能であ
れば、キャッシュ203はその内容を更新し、ライン2
02を通じてプロセッサ201に応答を送る。情報がキ
ャッシュ不可能であれば、キャッシュ203はそのメモ
リ内容を更新せず、ただライン202を介してプロセッ
サ201に応答を送出する。
E3.実脳例の動乍(第3図〜第8図)この発明によれ
ばパラレル・プロセッサ・システムのプロセッサ要素お
よびメモリ要素の双方にキャッシュが設けられ、サポー
トされる。このようなシステムの一例は第3図に示す。
このようなシステムではメモリへの参照はプライベート
だ共有かで区別される。すなわちキャッシュ303およ
び307が、参照がマッピングされるアドレス範囲を調
べて特定する。(使用される具体的なスキームは以下に
説明するこの発明にとって重要でない点に留意されたい
。)このようなシステムではプロセッサ・キャッシュ3
03およびメモリ・キャッシュ307はなんらハードウ
エア・キャッシュ・コヒーレンシのサポートを必要とし
ない。
第3図に示すシステムにおいては、プロセッサ301が
メモリ・リクエストを生成したとき、メモリ・リクエス
トはライン302を通じてプロセッサ・キャッシュ30
3に送られる。メモリ・リクエストがキャッシュ可能で
あり、かつそのリクエストはプライベート参照または共
有リード・オンリ参照であり、さらにプロセッサ・キャ
ッシュのメモリは要求のメモリ情報を含んでいるなら、
プロセッサ・キャッシュ303が所望の情報をアクセス
する。プロセッサ・キャッシュ303はつぎに所望の応
答をライン302を通じてプロセッサ301に送出する
。しかしメモリ・リクエストがキヤ・ンシュ不可能であ
れば、たとえば共有一ド・ライト・メモリ参照であれば
、またはプロセ・ソサ・キャッシュのメモリが所望の情
報を含んでいなければ、リクエストはライン304を通
じ、ネットワーク305をわたってメモリ・モジュール
308に送られる。ネットワーク305はメッセージ、
所望のメモリ・モジュールが結合されている、をネット
ワーク・ポート306に宛先指定する。リクエストはメ
モリ・キャッシュ307に傍受され、これが所望の情報
をアクセスする個々のメモリ・リクエストの「キャッシ
ュ可能性」および「共有可能性」の特徴は、当業者には
容易に理解されるように特別のフィールドに保持される
。リクエスト・データが実際に有効で源にメモリ・キャ
ッシュに存在するがどうかは、もちろん個々のメモリ・
キャッシュのディレクトリを検索して判別される。
メモリ・キャッシュ307はつぎに所望の応答をネット
ワーク305およびライン306を介してプロセッサ3
01に送出する。しかしメモリ・リクエストがキャッシ
ュ可能でなく、またはリクエスト情報が適切なキャッシ
ュにないならリクエストはライン309を通じてメモリ
・モジュール308に送出される。これを受け取ったメ
モリ・モジュールはこの情報をアクセスし、適切な応答
をライン309を介してリクエスト・プロセッサに戻す
。情報がキャッシュ可能であったなら、適切なキャッシ
ュ307または303がメモリ内容を更新し、応答をプ
ロセッサ301に送る。リクエストがネットワークを通
じてメモリ・モジュールに宛先指定された場合にも、メ
モリ・モジュールからの応答はネットワークを通じて宛
先指定されることに留意されたい。
プロセッサ・キャッシュおよびメモリ・キャッシュの双
方をサポートする、他のパラレル・プロセッサ構成の例
は先に触れたように、第4図から第8図に示される。こ
れらすべての構成におけるプロセッサ・キャッシュおよ
びメモリ・キャッシュの基本的な動作原理はみな同じで
ある。これらの唯一の違いは使用されているメモリ・モ
ジュールの型およびこれらメモリ・モジュールおよびメ
モリ・キャッシュの位置である。以下ではこれら構成状
の違いについて述べる。
第4図においてRP3のようなパラレル・システムにお
けるメモリ・キャッシュ405の位置が示されている。
第2図は、システム全体に分散されている共有主メモリ
・モジュール205に特徴がある、基本的なRP3のレ
イアウトを示す。同一な全体構成が第4図に示されるこ
とは理解できるであろう。
そしてキャッシュ・ブロック203が機能的には第4図
のプロセッサ・キャッシュ(Cp)403と等価である
ことに留意されたい。
このRP3のようなシステムがプロセッサあたり1個の
メモリ・モジュール407を有し、ローカルにプロセッ
サ401に結合されていることがわかるであろう。この
メモリ・モジュール407はソフトウエアにより区画で
きプライベート情報および共有情報の双方を含むことが
できる。任意のプロセッサ401が他の任意のプロセッ
サのメモリ・モジュール中の共有情報を相互接続ネット
ワーク408を介してアクセスできる。したがつてメモ
リ・キャッシュ405をRPG型のアーキテクチャに実
現する必要があるなら、メモリ・キャッシュをメモリ・
モジュール407とネットワークおよびプロセッサ・キ
ャッシュ403への接続Aa404との間に置くことに
なろう。メモリ・キャッシュ405は短かいバス406
を介してメモリ・モジュール407にインターフェース
される。システム構成の残りの部分に変更はない 第5図に示す構成は第3図の構成と、プライベート・メ
モリ505および共有メモリ511用に個別のメモリ・
モジュールを用いる点で異なっている。プライベート・
メモリ・モジュール505はライン504を介して直接
にプロセッサ・キャッシュ503に結合されている。他
方共有メモリ・モジュール511はライン510を通じ
てメモリ・キャッシュ509に直接に結合されている。
このJうな構成に対して、第3図に関して説明したメモ
リ・リクエスト宛先指定はつぎのようにIl正される。
プロセッサがプライベート情報をリクエストし、かつそ
のリクエストがキャッシュ不可能か、情報がプロセッサ
・キャッシュ503にない場合にのみ、リクエストがプ
ロセッサ・キャッシュ503によってプライベート・メ
モリ505に宛先指定される。
メモリ・キャッシュ509への宛先指定は修正されない
し、その動作基準も修正されない 第6図に示される構成は、第5図のものと、プロセッサ
・キャッシュ603が、ネットワークインターフェース
するのに用いるパス604を介してプライベート・メモ
リ605にインターフェースされる点で、異なっている
。第6図の構成において、バス604はなんらかのモジ
ュール・アドレス機構を提供しプロセッサ・キャッシュ
603が個別にプライベート・メモリ605またはネッ
トワークSOSを選択できるまうにする必要がある。
第7図に示す構成は、メモリ・キャッシュ707がライ
ン708を介して複数のメモリ・モジュール709−7
10に結合される点を除けば、第3図のものと同様であ
る。この場合、メモリ・キャッシュ707がメモリ・モ
ジュール709一710のいずれかにある共有情報をキ
ャッシュする。ここでは第5図または第6図のパラレル
・システム構成で複数の共有メモリ・モジュールが第7
図に示すようにインターフェースできることに留意され
たい。
第8図に示す構成は、複数のネットワーク・ポート80
6−807が単一のメモリ・キャッシュ808にインタ
ーフェースされる点を除いて第7図のものと同様である
。メモリ・キャッシュ808の基本動伴は変わらないが
、メモリ・キヤ・ンシ二808の制御ロジックに、ネッ
トワーク・ポート806−807を選択する機構および
そこからのリクエストを受け取る機構が必要である。こ
の選択を行うのに実際に用いる方法は、この発明に関し
ては重要でない。またここでは複数のネットワークーポ
ートが、第5図または第6図に示すパラレル・システム
構成において、第8図に示すようにインターフェースで
きる点に留意されたい。文献[5]のようなCarr 
iek−on−Shannonのアーキテクチャではシ
リアル・バスの性質上不可能であろう。
また第7図および第8図の双方において、メモリ・モジ
ュール709−710および810−811にMpsが
表示去れている点に留意されたい。これはこれらメモリ
・モジュールがプライベート・データおよび共有データ
の双方を含むことを示す。第3図および第4図において
メモリ・モジュール308および407も同様に表示さ
れている。この機能は、通常、単にたとえば記憶行の予
約プライベート領域をアドレス区画により、別枠にする
場よい。ただしこれは周知であり、この発明とも関係が
ないから、ここでは説明しない。
E4.動作フロー例(第11図、第12図)この発明の
広義の構成上の概念は、各メモリ・モジュールまたは各
メモリ・モジュール・グル−プにメモリ・キャッシュを
設ける多くの種々のシステム構成に関連してすでに説明
した。すべての場合において、メモリ・キャッシュは機
能的に、そして通常は物理的にも、当該データのキャッ
シュ・サービスを受けるモジュールのそばに配置される
。以下の第11図お町び第12図は以上のメモリ・アー
キテクチャをサポートする動作の広義の機能シーケンス
を示す。このシーケンスの詳細では多くの変形が、この
発明の趣旨を逸脱いない範囲で、当業者が行えることは
容易に理解できるであろう。
プロセッサ・キヤ・ンシュ(Cp)の制御ロジックの動
作の慨妥が第11図に示される。この発明に関連のある
制御情報のみが第11図に示される点に留意されたい。
キャッシュ構成および管理ポリシ、たとえば置換アルゴ
リズム、ストア・スルー、ストア・インなどはこの発明
にとって重要でない。これはこの発明がこれらについて
名にも制約を課さないからである。
プロセッサ・キャッシュはプロセッサ・サブシステムか
らメモリ・オペレーション・リクエストを受け取る(ブ
ロック1 101).制御はブロック1102に進み、
ここでリクエストがテストされ、プライベート・メモリ
を意図するかどうかが判別される。意図されていないな
ら、ライン1104がアクティブになり、システムはブ
ロック1114に進み、リクエストが共有メモリ・モジ
ュールまたは相互接続ネットワークに送られる。
これはシステム構成にJる。他方リクエストがプライベ
ート・メモリ・リクエストであれば、ライン1103が
アクティブになり、制御がブロック1105に進む。こ
のブロックでリクエストがキャッシュ可能かどうかが判
別される。キャッシュ不可能なら、ライン1107がア
クティブになり、iw御シーケンスがブロック1113
に移る。このブロックはリクエストをプライベート・メ
モリに宛先指定して、キャッシュは処理をしない。リク
エストがキャッシュ可能と判断されたなら、ライン11
06がアクティブになり、制御シーケンスはブロック1
108に移行する。RP3プロセッサのようなシステム
においては、サブシステムがリクエストがキャッシュ可
能かどうかを判別でき、この判別結果をリクエスト・メ
モリの制御フィールドに表示できることに留意されたい
。ただしシステムがこの機能をサポートしていないなら
、ブロック1105の「キャッシュ可能牲」のチェック
は省かれる.制御シーケンスはつぎに出口1103から
ブロック1108に進み、ブロック1113は同様に省
くことができる。
プロ・νク1108においてキャッシュ・ディレクトリ
をチェックして、リクエスト情報が現にプロセッサ・キ
ャッシュ・メモリに存在するかどうかを判別する。存在
すれば、ライン1110がアクティブになり、制御シー
ケンスがブロック1112に移行する。ブロック111
2において、情報がキャッシュ・メモリから供給され、
項目をアクセスするための所望のキャッシュ管理ポリシ
が実行される。このとき、キャッシュまたはプライベー
ト・メモリで要求される更新も実行される。
適切な応答が生成され、元のプロセッサに転送される。
これらの操作が終了すると、ライン1115がアクティ
ブになり、制御のシーケンスがブロック1118に移行
する。そしてここで生成された応答が実際にリクエスト
・プロセッサに送られる。
ブロック1108において、リクエスト情報がプロセッ
サ・キャッシュにないと判別されると、ライン1109
がアクティブになり、システム制御シーケンスがブロッ
ク1111に移行する。このブロックで、キャッシュ・
メモリ・ラインがリクエスト情報をストアするために選
択され、所望のキャッシュ管理ポリシが実行される。リ
クエスト・ラインもまたプロセッサ・メモリからフェッ
チされる(たとえば、もし所望のメモリ動作かフェッチ
であれば)。情報のリクエスト・ラインがメモリから受
け取られると、制御シーケンスはブロック1117に移
行する。このブロックでは、リクエスト情報(ワード)
がメモリからフェッチされたラインから選択され、元の
プロセッサへの応答が生成され、固有のキャッシュ管理
ポリシが要求するようにキャッシュが更新される。
これらの動作が終了すると、制御シーケンスはライン1
116を介してブロック1118に移り、ここで先に生
成された応答がプロセッサに戻される。
上述の説明および第11図のシーケンスはプロセッサか
らメモリ・システムへの「フエ・ンチ」リクエストに主
に向けられている。容島に理解できるようにメモリの動
作はまさに「ストア」でよい。第11図に示す動伶シー
ケンスは基本的には「ストア」と同じである。この点は
当業者は写易に理解できるであろう。
これでプロセッサ・キャッシュで実行される動作のシー
ケンスの説明を終える。
つぎに第12図を参照する。第12図はメモリ・キャッ
シュの制御ロジックの動作シーケンスの全体を示す。こ
の発明に関連する制御情報しか示されないことに留意さ
れたい。キャッシュ構成および全体的なキャッシュ管理
ポリシの詳細はこの発明にとりわけ関連があるわけでは
ない。なぜならこの発明はこれらの問題に関してなんら
制約を課すものでないからである。またこの第12図の
フローチャートも第11図のものと同様に比較的磯能的
で高レベルであることに留意されたい。
ただし当業者であれば、プロセッサ・キャッシュであろ
うとメモリ・キャッシュであろうと、そのようなキャッ
シュ・メモリ階層における動作を実現するためにハード
ウエア・ロジックを設計するのに困難はないであろう。
第12図において、まずメモリ動俸リクエストがプロセ
ッサ・サブシステムから受け取られる(ブロック120
1)。これはたとえば第11図のブロック1114また
は1113からであろう。制御シーケンスはブロック1
202に進み、ここでリクエストが共有メモリに対する
ものかどうかの判別がなされる。共有メモリのものでな
ければ、ライン1204がアクティブになり、制御シー
ケンスはブロック1207に移行する。ブロック図12
07ではリクエストをメモリ・モジュールに送る。これ
はたとえばリクエストがブライベート・メモリ空間の場
合であろう。リクエストが共有メモリのものであれば制
御シーケンスはライン1203を通じてブロック121
6に進む。ブロック1216では、リクエストがキャッ
シュ可能力?どうかの判断がなされる。ここでも、先に
触れたRP3のようなマルチプロセッサ・システムでは
リクエストがキヤ・ンシ二可能かどうかを決定し、表示
できる点に留意されたい。ただし兵休的なシステムがこ
のような特徴をサポートしないときには、ブロック12
16のチェックを完全に省略し、制御ロジックを直接に
ブロック1202からプロ・yクIlml 208に移
す。リクエストがキャッシュ不可能と判断されると制御
シーケンスはライン1206を介して再びブロック12
07に進む。これは先に説明した。ただしリクエストが
共有メモリ用でキャッシュ可能であれば、制御シーケン
スライン1205を通じてブロック図1208に進む。
このブロックでは、キャッシュ・ディレクトリが検索さ
れて、リクエスト情報が現にメモリ・キャッシュに存在
するかどうかが判別される。この情報があると判別され
ると、制御シーケンスはライン1210を通じてブロッ
ク1212に移行する。このブロックでは情報がキャッ
シュ・メモリからフェッチされ、任意の所望のキャッシ
ュ管理ポリシが実行される。キャッシュおよび共有メモ
リも所望のように更新され、最後にプロセッサほの応答
が生成される。そして制御シーケンスはライン1213
を通じてブロック1218に進み、先に生成した応答を
プロセッサに転送する。
ブロック1208においてリクエスト・データがキャッ
シュにないと判別されると、制御シーケンスがラインl
209を通じてブロック1211に移行する。このブロ
ックではキャッシュのラインが選択されて情報がストア
される。所望のキャッシュ管理手順が実行され、メモリ
からリクエスト情報ラインがフェッチされる(たとえば
メモリ・リクエストがフェッチ・リクエストである場合
)。所望のデータ・ラインがメモリから受け取られると
、制御シーケンヌはブロック1214に進み、ここで所
望の情報たとえばワードが、メモリから受け収ったデー
タ・ラインから選択される。キャッシュ・メモリおよび
制御はキャッシュ管理ポリシが望むように更新され、プ
ロセッサほの応答が生成される。
制御シーケンスはライン1215を通じてブロック12
15に進み、ここで応答がプロセッサに送出される。
これでメモリ・キャッシュ制御シーケンスの動件の説明
を終える。先に述べたように第12図の高レベルの機能
のフローチャートは、メモリからデータをアクセスし、
必要なときにキャッシュに入れ、後に.プロセ・νサに
送出するように要求するプロセッサからのフェッチ・リ
クエストに主に向けられている。ストア動作に必要な若
干の修正は当業者には明らかであり、ここでは説明しな
い。
第11図のプロセッサ・キャッシュ制御シーケンスおよ
び第12図のメモリ・キャッシュの制御シーケンスは第
3図ないし第8図のシステム・アーキテクチャのいずれ
で使用するにも適切であることに留意されたい。プロセ
ッサからのメモリ動作に対して必要となる付加的なアド
レス情報または他の制御情報は自動的に抜き出され、リ
クエストに置かれるが、これにより具体的なメモリ・キ
ャッシュ制御シーケンスまたはプロセ・νサ・キャッシ
ュ制御シーケンスになんの負担もないことに留意された
い。
F.発明の効果 大規模、高速マルチプロセッサにおいて共有メモリとと
もに使用されるこの発明の階層メモリ・システム・アー
キテクチャおよびメソドロジは共有メモリの実効アクセ
ス時間を改善するように設計されている。メモリ・キャ
ッシュおよびプロセッサ・キャッシュ構成は、すでに提
案のあった他のスキーマに比べて、コストおよびパフォ
ーマンスの双方について有効である。さらにこのシステ
ムはなんらハードウエア・キャッシュ・コヒーレンシ・
サポートを必要としない。したがって従来の共有メモリ
スキームおよび文献[5]のアーキテクチャと興なり、
この発明のメモリ・キャッシュ・アーキテクチャおよび
メソドロジはシステムのプロセッサ数の増大に対応でき
る。唯一必要な修正はアドレス・フィールドないし識別
しの大きさを大きくし、適切なリクエスト・プロセッサ
に情報が戻るようにすることである。この点は十分理解
できるだろう。
人出力装置がこの発明のシステムとどのようにインター
フェースするかという点の詳細はとくに示さない。なぜ
なら仮想的に任意の結合メカニズムがシステムの枠組み
の中で実現できるからである。
この発明の主たる特徴は個別のメモリ・キャッシュを、
それがサービスするメモリ・モジュールと、プロセッサ
にメモリ・サブシステムを相互接続する通信ネットワー
クとの間に用いることであるが、この発明の趣旨を逸脱
しない範囲で種々の変更が可能なことは明らかである。
G.参考文献 [ 1 コ + The  IBM  Researc
h  Parallel  ProcessorPro
totype  (RP3):  Introduct
ion  and  Architecture−. 
 Proc of 1985 Internation
al Conference on Parallel
 Processing,  1985/8/20−2
3.  pp.764−771. [2]  +The Butterfly Paral
lel Processor , CoLIIpute
r  Architecture  Technicn
l  Coa+mittee  Newsletter
.  1986.  9/12.  pp.18−45
.[3 ] +Computer Asehitect
ure and Paral tel Process
ing″,  McGrav−}1i11 Book 
Company,  1984.[4] ”Data 
Processing Systen Having 
a DataCoherence Solution 
,米国特許明絹書4622631号. [ 5 ] +the Carrick−on Sha
nnon Architecture:人Two−le
vel Cacbe−Coupled Multi−P
rocessor Architecture , P
roceedings of the 18th an
nualHawaii International 
Conference on Systeo+ Sci
ences.  1985. [ 6] −the RP3 Processor/M
enory Element , Proceedin
gs of the 1985 Internatio
nal Conference on Paralle
l Processing.  1985/8/20−
23.  pp.1B2−789.
【図面の簡単な説明】
第1図は従来のパラレル・プロセッサ・システムの高レ
ベルの機能ブロック図、第2図はRP3パラレル・プロ
セッサ・システムの構成を示す高レベルの機能ブロック
図、第3図はこの発明を適用したシステム構成の個別プ
ロセッサおよびメモリ・キャッシュを示す高レベルの機
能ブロック図、第4図は個別プロセッサおよびメモリ・
キャッシュをサポートできかつ第2図のRP3システム
・アーキテクチャとして構成した、第3図の変形例を示
す高レベル機能ブロック図、第5図はプロセッサ・キャ
ッシュおよびメモリ・キャッシュに加え個別のプライベ
ートおよび共有のメモリを含む,第3図の他の変形例を
示す高レベルの機能ブロック図、第6図はこの発明を適
用した他のマルチプロセッサ・システムのプロセッサ・
キャッシュおよびメモリ・キャッシュを個別のプライベ
ート・メモリおよび共有メモリとともに示す高レベルの
機能ブロック図、第7図は各メモリ・キャッシュに接続
された複数のメモリ・モジュールを含む、この発明の適
用されたマルチプロセッサ・システムを示す高レベルの
機能ブロック図、第8図はこの発明の適用された他のマ
ルチプロセッサ・システムの、多重ネットワーク出力(
メモリ)ポートを個別のメモリ・キャッシュに結合させ
たシステムおよびメモリ構成を示す高レベルの機能ブロ
ック図、第9図は文献[3]のアーキテクチャを示す高
レベルの機能ブロック図、第10図は文献〔5]のアー
キテクチャを示す高レベルの機能ブロック図、第11図
はこの発明の適用されたマルチプロセッサ・システム構
成にある、プロセッサ・キャッシュの制御ロジックの動
俸を示すフローチャート、第12図はこの発明の適用さ
れたマルチプロセッサ・システム構成にある、メモリ・
キャッシュの制御ロジックの動作を示すフローチャート
である。 るメモリ・モジュール、Cp・・・プライベート・メモ
リをサポートするメモリ・モジュール、Ms・・・共有
メモリをサポートするメモリ・モジュール。

Claims (13)

    【特許請求の範囲】
  1. (1)複数のプロセッサと、各々上記プロセッサの任意
    のものと各々個別に選択的に直接に接続可能な複数の個
    別にアドレス可能なメモリ・モジュールとを含む大規模
    共有メモリ・マルチプロセッサ・コンピュータ・システ
    ムにおいて、複数のプロセッサを複数のメモリ・モジュ
    ールに同時に接続する切替ロジックおよび冗長経路を備
    え、上記切替ロジックは宛先アドレスに応じて上記ネッ
    トワークの通信経路を選択する手段を含む多段メモリ相
    互接続ネットワークと、 サービスを提供するプロセッサにより直接にアクセス可
    能な複数のプロセッサ・キャッシュと、サービスを提供
    する少なくとも1個のメモリ・モジュールと上記相互接
    続ネットワークとの間にプロセッサ・メモリ・リクエス
    トを対応するプロセッサ・キャッシュに最初に行ない、
    アクセス可能の表示がないか、またはキャッシュ・ミス
    が起こったなら、支持されたメモリ・キャッシュをつぎ
    にアクセスし、さらにアクセス可能の表示がないか、ま
    たはキャッシュ・ミスが起こったなら、上記メモリ・キ
    ャッシュに結合されたアドレスされたメモリ・モジュー
    ルを最後にアクセスするように制御するメモリアクセス
    制御手段とを有することを特徴とするマルチプロセッサ
    ・コンピュータ・システム。
  2. (2)上記メモリ・モジュールの各々は上記プロセッサ
    の1つに物理的に関連付けられ、上記プロセッサの各々
    のメモリ・アクセス手段が対応するメモリ・モジュール
    を直接に選択的にアクセスし、他のメモリ・モジュール
    を上記相互接続ネットワークを介して選択的にアクセス
    する請求項1記載のマルチプロセッサ・コンピュータ・
    システム。
  3. (3)上記相互接続ネットワークは、複数のプロセッサ
    が上記相互接続ネットワークを介して同時にロード動作
    およびストア動作の双方を実行できるようにする宛先指
    定制御手段を含む請求項1記載のマルチプロセッサ・コ
    ンピュータ・システム。
  4. (4)上記プロセッサの各々はさらに固有のプライベー
    ト・メモリを備え、 プロセッサ・メモリ・アクセス機構の各々は、対応する
    プロセッサ・キャッシュが、上記固有のプライベート・
    メモリおよび共有メモリ・システムの双方を選択的に上
    記相互接続ネットワークを介してアクセスできるように
    する手段を含む請求項1記載のマルチプロセッサ・コン
    ピュータ・システム。
  5. (5)1のプロセッサに関連付けられたメモリ・モジュ
    ールの各々が、当該プロセッサに専有されるデータをス
    トアする予約アドレス空間を維持する手段を含む請求項
    2記載のマルチプロセッサ・コンピュータ・システム。
  6. (6)複数のメモリ・モジュールが上記メモリ・キャッ
    シュの各々と、任意のメモリ・アクセス・リクエストを
    上記メモリ・モジュールの任意のものに当該メモリ・モ
    ジュールのメモリ・キャッシュを介して渡す手段とにそ
    れぞれ接続される請求項1記載のマルチプロセッサ・コ
    ンピュータ・システム。
  7. (7)上記メモリ・キャッシュの各々は上記相互接続ネ
    ットワークの1または複数のポートに接続され、さらに
    上記ポートの各々は1のメモリ・キャッシュに接続され
    たメモリ・モジュールの部分集合のアドレス空間に対し
    てサービスする請求項6記載のマルチプロセッサ・コン
    ピュータ・システム。
  8. (8)メモリ・キャッシュはさらに共有リード・ライト
    ・データを、当該メモリ・キャッシュまたは当該メモリ
    ・キャッシュに接続されたメモリ・モジュールにのみス
    トアするようにする手段を含む請求項2記載のマルチプ
    ロセッサ・コンピュータ・システム。
  9. (9)上記プライベート・メモリ・アクセス機構に関連
    して、さらに、1のプロセッサまたはリード・オンリで
    共有されているものとして所定のアドレス空間を維持す
    る手段を含む請求項4記載のマルチプロセッサ・コンピ
    ュータ・システム。
  10. (10)複数のプロセッサと、各々上記プロセッサの任
    意のものと各々個別に選択的に直接に接続可能な複数の
    個別にアドレス可能なメモリ・モジュールとを含む大規
    模共有メモリ・マルチプロセッサ・コンピュータ・シス
    テムにおいて、複数のプロセッサを複数のメモリ・モジ
    ュールに同時に接続する切替ロジックおよび冗長経路を
    備え、上記切替ロジックは宛先アドレスに応じて上記ネ
    ットワークの適切な通信経路を選択する手段を含む多段
    メモリ相互接続ネットワークと、サービスを提供するプ
    ロセッサにより直接にアクセス可能な複数のプロセッサ
    ・キャッシュと、サービスを提供する少なくとも1個の
    メモリ・モジュールと上記相互接続ネットワークとの間
    に機能的に接続された複数のメモリ・キャッシュとを有
    し、 上記メモリ・モジュールの各々は上記プロセッサの1つ
    に物理的に関連付けられ、 上記プロセッサの各々のメモリ・アクセス手段が対応す
    るメモリ・モジュールを直接に選択的にアクセスし、他
    のメモリ・モジュールを上記相互接続ネットワークを介
    して選択的にアクセスし、1のプロセッサに関連付けら
    れたメモリ・モジュールの各々が、当該プロセッサに専
    有されるでーたをストアする予約アドレス空間を維持す
    る手段を含み、さらに プロセッサ・メモリ・リクエストを対応するプロセッサ
    ・キャッシュに最初に行ない、アクセス可能の表示がな
    いか、またはキャッシュ・ミスが起こったなら、支持さ
    れたメモリ・キャッシュをつぎにアクセスし、さらにア
    クセス可能の表示がないか、またはキャッシュ・ミスが
    起こったなら、上記メモリ・キャッシュに結合されたア
    ドレスされたメモリ・モジュールを最後にアクセスする
    ように制御するメモリアクセス制御手段とを有すること
    を特徴とするマルチプロセッサ・コンピュータ・システ
    ム。
  11. (11)複数のプロセッサと、複数のプロセッサを複数
    のメモリ・モジュールに同時に接続する切替ロジックお
    よび冗長経路を含む多段メモリ相互接続ネットワーク介
    して、各々上記プロセッサの任意のものと各々個別に選
    択的に直接に接続可能な複数の個別にアドレス可能なメ
    モリ・モジュールと、サービスを提供するプロセッサに
    より直接にアクセス可能な複数のプロセッサ・キャッシ
    ュと、サービスを提供する少なくとも1個のメモリ・モ
    ジュールと上記相互接続ネットワークとの間に機能的に
    接続された複数のメモリ・キャッシュとを含む大規模共
    有メモリ・マルチプロセッサ・コンピュータ・システム
    で使用するメモリ・アクセス方法において、 メモリ・アクセス・リクエストを開始する任意のプロセ
    ッサのプロセッサ・キャッシュのディレクトリに問い合
    わせを行うステップを含むプロセッサ・キャッシュの手
    続を開始させる第1のステップと、 第1のステップでヒットしたらリクエストを許諾し、ミ
    スが起こったら、メモリ・アクセス・リクエストのアド
    レスを含むメモリ・モジュールにサービスするメモリ・
    キャッシュのディレクトリに問い合わせるステップを含
    むメモリ・キャッシュの手続を開始させる第2のステッ
    プと、第2のステップでヒットしたらリクエストを許諾
    し、ミスが起こったら、アドレスされたメモリ・モジュ
    ールをアクセスし、メモリ・アクセスのリクエストを有
    効にする第3のステップとを有することを特徴とするメ
    モリ・アクセス方法。
  12. (12)上記プロセッサ・キャッシュの手続は、(a)
    リクエストがプライベート・メモリに対するものかどう
    かを判別し、プライベート・メモリに対するものであれ
    ば、ステップ(b)に進み、プライベート・メモリに対
    するものでなければ、ステップ(f)に進むステップと
    、 (b)リクエストがキャッシュ可能かどうかを判別し、
    リクエストがキャッシュ可能であれば、ステップ(e)
    に進み、リクエストがキャッシュ不可能であれば、ステ
    ップ(g)に進むステップと、 (e)リクエスト情報がプロセッサ・キャッシュ内にあ
    るかどうかを判別し、リクエスト情報がプロセッサ・キ
    ャッシュ内にあれば、ステップ(d)に進み、リクエス
    ト情報がプロセッサ・キャッシュ内になければ、ステッ
    プ(h)に進むステップと、 (d)キャッシュから情報をアクセスし、キャッシュ管
    理ポリシを実行し、キャッシュおよびプライベート・メ
    モリを更新し、プロセッサへの応答を生成し、さらにス
    テップ(e)に進むステップと、 (e)応答をプロセッサに送出するステップと、 (f)共有メモリへのリクエストをローカル・モジュー
    ルに送出するか、相互接続ネットワークを介して送出す
    るステップと、 (g)リクエストをプライベート・メモリに送出するス
    テップと、 (h)キャッシュのラインを選択しアクセスすべき情報
    をストアし、キャッシュ管理ポリシを実行し、プライベ
    ート・メモリからリクエスト・ラインをフェッチし、さ
    らにステップ(i)に進むステップと、 (i)プライベート・メモリからフェッチしたラインか
    らリクエスト情報を選択し、キャッシュを更新し、プロ
    セッサへの応答を生成し、さらにステップ(e)に進む
    ステップとを有することを特徴とする請求項11記載の
    メモリ・アクセス方法。
  13. (13)上記メモリ・キャッシュの手続は、(a)受け
    取ったアクセス・リクエストが共有メモリに対するもの
    かどうかを判別し、共有メモリに対するものであれば、
    ステップ(b)共有メモリに対するものでなければ、ス
    テップ(f)に進むステップと、 (b)リクエストがキャッシュ可能かどうかを判別し、
    キャッシュ可能であれば、ステップ(e)に進み、キャ
    ッシュ不可能であれば、ステップ(f)に進むステップ
    と、 (e)キャッシュ・ディレクトリをアクセスし、リクエ
    スト情報がメモリ・キャッシュにあるかどうかを判別し
    、メモリ・キャッシュにあれば進み、ステップ(d)メ
    モリ・キャッシュになければ、ステップ(g)に進むス
    テップと、 (d)キャッシュから情報をフェッチし、所望のキャッ
    シュ管理ポリシを実行し、キャッシュおよび共有メモリ
    に対して所望の更新を実行し、アクセスをリクエストし
    たプロセッサはの応答を生成し、さらにステップ(e)
    に進むステップと、(e)応答をプロセッサに送出する
    ステップと、 (f)他の処理を伴うことなく、リクエストを直接にメ
    モリに送出するステップと、 (g)キャッシュの、情報をストアすべきラインを選択
    し、所望のキャッシュ管理ポリシを実行し、メモリから
    リクエスト・ラインをフェッチし、さらにステップ(h
    )に進むステップと、(h)メモリからフェッチしたラ
    インから所望の情報を選択し、必要であればキャッシュ
    を更新し、プロセッサへの応答を生成し、さらにステッ
    プ(e)に進むステップとを有することを特徴とする請
    求項11記載のメモリ・アクセス方法。
JP2093302A 1989-04-12 1990-04-10 マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法 Pending JPH02294762A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33700089A 1989-04-12 1989-04-12
US337000 1989-04-12

Publications (1)

Publication Number Publication Date
JPH02294762A true JPH02294762A (ja) 1990-12-05

Family

ID=23318669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2093302A Pending JPH02294762A (ja) 1989-04-12 1990-04-10 マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法

Country Status (2)

Country Link
EP (1) EP0392184A3 (ja)
JP (1) JPH02294762A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328653A (ja) * 1991-04-22 1992-11-17 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムおよびそのデータ伝送装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495618A (en) * 1992-08-26 1996-02-27 Eastman Kodak Company System for augmenting two dimensional data sets in a two dimensional parallel computer system
US5623698A (en) * 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58123151A (ja) * 1981-12-31 1983-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション マルチプロセツサ・システムの動作方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58123151A (ja) * 1981-12-31 1983-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション マルチプロセツサ・システムの動作方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328653A (ja) * 1991-04-22 1992-11-17 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムおよびそのデータ伝送装置

Also Published As

Publication number Publication date
EP0392184A2 (en) 1990-10-17
EP0392184A3 (en) 1992-07-15

Similar Documents

Publication Publication Date Title
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US6038644A (en) Multiprocessor system with partial broadcast capability of a cache coherent processing request
US6629205B2 (en) System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem
JP4082612B2 (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
US5995967A (en) Forming linked lists using content addressable memory
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US6751710B2 (en) Scalable multiprocessor system and cache coherence method
US6816947B1 (en) System and method for memory arbitration
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
KR100704089B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
US7577794B2 (en) Low latency coherency protocol for a multi-chip multiprocessor system
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
JPH10124394A (ja) キャッシュ・コヒーレンシを維持する方法および装置
KR100851738B1 (ko) 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
JPH02294762A (ja) マルチプロセツサ・コンピユータ・システムおよびそのメモリ・アクセス方法
JP4882233B2 (ja) メモリ制御装置及び制御方法
JP3732397B2 (ja) キャッシュシステム
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
US20040221112A1 (en) Data storage and distribution apparatus and method
JPH09311820A (ja) マルチプロセッサシステム
US20230100746A1 (en) Multi-level partitioned snoop filter
US6636948B2 (en) Method and system for a processor to gain assured ownership of an up-to-date copy of data
JPH10232831A (ja) キャッシュ・タグ維持装置