JP2516300B2 - 多重プロセツサ・システムの性能の最適化装置及び方法 - Google Patents

多重プロセツサ・システムの性能の最適化装置及び方法

Info

Publication number
JP2516300B2
JP2516300B2 JP4106604A JP10660492A JP2516300B2 JP 2516300 B2 JP2516300 B2 JP 2516300B2 JP 4106604 A JP4106604 A JP 4106604A JP 10660492 A JP10660492 A JP 10660492A JP 2516300 B2 JP2516300 B2 JP 2516300B2
Authority
JP
Japan
Prior art keywords
line
cache
modified
memory
cache line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4106604A
Other languages
English (en)
Other versions
JPH05128071A (ja
Inventor
サンドラ・ジョンソン・バイラー
ケビン・パトリック・マックアウリフェ
バハラート・ディープ・ラシ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH05128071A publication Critical patent/JPH05128071A/ja
Application granted granted Critical
Publication of JP2516300B2 publication Critical patent/JP2516300B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/082Associative directories

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のキヤツシユ・メ
モリ及び共有メモリを有する多重プロセツサ(MP)シ
ステム、より詳細に言えば、MPシステム中の複数のプ
ロセツサの間で共有されているデータの整合性を維持す
る装置及び方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】多重プ
ロセツサ・システム(MP)による並列処理の出現は、
通常の単一プロセツサ・システムの性能を越えた大幅な
性能の改善をする可能性がある。MPシステムにおける
多重のプロセツサは、過去何十年の間用いられている技
術の多段相互接続ネツトワーク(multistage interconn
ection network-MIN)を通して、同時に並列にメモ
リと通信することができる。
【0003】これをより詳細に説明すると、通常のMI
N構成において、プロセツサはMINの特別のポートに
接続されている。通常のMINは制御可能なスイツチの
段を持つている。MINは、制御可能なスイツチによつ
て、1つ以上のメモリ・ラインを、任意の時間で任意の
プロセツサに接続することができる。事実、MINによ
つて、幾つかのプロセツサはメモリと同時通信ができる
ので、真の意味の並列処理が容易に達成される。
【0004】然しながら、多くのプロセツサがMPシス
テムに付加されるようになり、しかも、プロセツサの速
度は常に高速化の一途を辿つたので、メイン・メモリの
帯域幅は、それらの多くの高性能プロセツサにより求め
られる要求のペースに合わせることができなくなつてき
た。より具体的に言えば、プロセツサとメイン・メモリ
との間の距離は次第に離れざるを得なくなり、しかも、
プロセツサがメイン・メモリにアクセスする回数は益々
増加するので、プロセツサのメモリ・アクセス時間は全
体として増加してくる。従つて、MPシステムにおける
高性能のデータ処理に対して、メイン・メモリの帯域幅
が主要な隘路となつてきた。
【0005】この隘路を取り除くために、プロセツサの
メモリ・アクセスの時間を減少するためのキヤツシユ・
メモリをプロセツサと関連付けることができる。キヤツ
シユ・メモリはこの分野で広く知られている。キヤツシ
ユ・メモリは、コンピユータのプログラミングに対して
実質的に透明であり、ハードウエアで管理される高速度
バツフアである。キヤツシユ・メモリはメイン・メモリ
とキヤツシユ・メモリとの間のデータ転送の基本ユニツ
トであるキヤツシユ・メモリのデータ・ラインを持つデ
ータ・アレイと、データ・アレイ中のデータの位置に関
するデータ・アドレスをマツプするデイレクトリとを含
んでいる。事実、キヤツシユ・メモリのデータ・ライン
はインストラクシヨンか、または実際のデータの何れか
であり得る。更に、キヤツシユ・メモリはメイン・メモ
リの速度よりも10倍以上の高い速度を持つており、通
常は、キヤツシユ・メモリに関連するプロセツサが有す
る高い速度と同じ速度である。
【0006】プロセツサに関連するキヤツシユ・メモリ
の長所と、関連するプロセツサにおいて実行されるプロ
グラム構造の長所とを取り入れることによつて、システ
ムの性能は向上される。プログラム中のインストラクシ
ヨン・セツトの中の多くのインストラクシヨンは繰り返
しが多い。キヤツシユ・メモリはキヤツシユ・ラインに
よつて充填することができる。キヤツシユ・ラインは、
キヤツシユ・ラインの再充填が必要とされる前の或る時
間の間、データ・ワード及びインストラクシヨンを必要
とするプロセツサの要求に答えることができる。換言す
れば、プロセツサは、キヤツシユ・ラインよりも遥かに
短いデータ・ワード(即ち、ワード、dワード、または
バイト)を要求すると言うことである。また、プロセツ
サにより、データ・ワードがキヤツシユ・メモリに求め
られて、データ・ワードがキヤツシユ・メモリのデータ
・ライン中に見出された場合、キヤツシユ「ヒツト」が
生じたと言われる。プロセツサにより、データ・ワード
がキヤツシユ・メモリに求められて、データ・ワードが
キヤツシユ・メモリのデータ・ライン中に見出されない
場合、キヤツシユ「ミス」が生じたと言われ、その結
果、キヤツシユ・メモリの再充填が求められる。キヤツ
シユ・メモリは、本質的には、プロセツサとメイン・メ
モリとの間にある容量の大きいバツフアとして用いられ
る記憶装置である。
【0007】メモリ・スペースを共有するか、または大
域メモリを持つ多くのプロセツサを有するMPシステム
において、MPシステムは、共有されたメモリ・スペー
ス中のすべてのデータの間の「整合性」、即ちデータの
一貫性を維持していなければならない。データは、メイ
ン・メモリや、キヤツシユ・メモリのような他の遠隔位
置に置かれたメモリを含んで幾つかの異なつたメモリ位
置の中に存在することがあり得る。
【0008】データの「整合性」は、各プロセツサが、
共有メモリの特定のアドレスに対応する最新のデータに
アクセスしなければならない概念を対象としている。つ
まり、或るアドレスにあるデータ・ワードが1つ、また
はそれ以上のキヤツシユ・メモリ及び/又はメイン・メ
モリによつて、同時に共有されている場合に、上述のメ
モリ位置の1つの位置において、データ・ワードが更
新、または変更された時、データの一貫性を維持するた
めに、そのデータ・ワードの最新のバージヨンは、すべ
てのプロセツサにより識別され、かつ利用可能にされな
ければならない。本明細書において、用語「データ」と
は、インストラクシヨン、または実際に処理されるデー
タとか、未処理のデータなどを含んで、メモリ中にスト
アされたあらゆる情報を意味する。
【0009】データの整合性を維持するために、ソフト
ウエアのアプローチ及びハードウエアのアプローチの両
方が通常の方法で用いられている。更に、ハードウエア
のアプローチは、通常、2つのタイプ、即ちバス・ベー
ス(「スヌーピー」)のプロトコルと、デイレクトリ・
ベースのプロトコルとの2つに分けられる。バス・ベー
スのプロトコルは、プロセツサの数が比較的少ないMP
システムに用いられているのに反して、デイレクトリ・
ベースのプロトコルは、改良されたスケーラビリテイ
(scalability)を有するMPシステムに使用される。
この理由は、最近の傾向がMINの共通使用を指向した
多数の並列処理用プロセツサを使用する方向にあるから
である。
【0010】デイレクトリ・ベースのプロトコルに関し
て、データ間の整合性、即ち、データの一貫性を保証す
るために、MPシステムが動作している間において、
「交互質問(cross interrogation)」がキヤツシユ・
メモリの間で遂行される。「交互質問」は異なつたプロ
トコルのうちの任意の1つを用いて実行される。通常、
交互質問は、キヤツシユ・ラインの転送及び/又はキヤ
ツシユのデイレクトリ中の制御ビツトの処理を含んでい
る。
【0011】交互質問のために実行されるプロトコル
は、MPシステムの中で使用されるキヤツシユ・メモリ
のタイプに大きく依存している。通常、キヤツシユ・メ
モリは、「書き込み(write-thru−WT)」タイプか、
または、「書き戻し(write-back−WB)」タイプの何
れかに分類されている。更に、従来の技術に従つた或る
種のキヤツシユ・メモリは、適正に制御されるならば、
何れのタイプによつてもデータを取り扱う能力を持つて
いる。
【0012】WTキヤツシユ・メモリにおいて、データ
・ワードは、キヤツシユ・ラインのデータ・ワードをプ
ロセツサによつて更新し、或は変更する度毎に、メイン
・メモリに「書き込み」が行なわれる。従つて、最も新
しいデータは、常に、メイン・メモリ中に存在する。
【0013】WBキヤツシユ・メモリにおいては、WB
キヤツシユ・メモリ中のデータ・ワードが遠隔地の装置
によつて要求された時とか、またはデータ・ワードがキ
ヤツシユ・メモリ中で置換された時にのみ、そのデータ
・ワードは、WBキヤツシユ・メモリからメイン・メモ
リに書き込まれる。その結果、地域的なプロセツサがそ
れ自身に関連した地域的なWBキヤツシユ・メモリ中の
データ・ワードを変更した場合、MPシステム中の他の
メモリ・ロケーシヨンがその変更を知ることなく、ある
いはその変更により割り込まれることなく、地域的なプ
ロセツサは、そのWBキヤツシユ・メモリ中のデータ・
ワードを何度でも変更することができる。
【0014】WBキヤツシユ・メモリがMINを有する
MPシステム中で使用された時、当業者間で広く知られ
ている大域デイレクトリを使用することができる。大域
デイレクトリは、データの整合性を維持する目的のため
に、メイン・メモリと関連される。大域デイレクトリ
は、キヤツシユ・メモリのデータ・ラインの大域デイレ
クトリの状態を表わす情報と、キヤツシユ・メモリのデ
ータ・ラインのコピーを持つキヤツシユ・メモリの数及
び/又は位置とを決定するために用いられる情報とを含
んでいる。これに関連して、1982年11月のコンピ
ユータに関するIEEE会報C−31巻、11号の「Ef
fects of Cache Coherency in Multiprocessors」と題
するドゥボア(M.Dbois)等の文献と、コンピユータ・
アーキテクチヤに関する1988年国際シンポジユーム
の会報の280頁乃至289頁の「AnEvaluation of Di
rectory Schemes forCache Coherence」と題するアガル
ワル(A.Agarwal)等の文献を参照されたい。
【0015】デイレクトリ・ベースのプロトコルに関し
て若干の研究がされているけれども、実用的な設計は殆
どない。更に、入手可能な通常のプロトコルも問題を含
んでいる。交互質問が開始される度毎に、キヤツシユ・
メモリを使用したすべてのプロセツサは、問い合わせが
キヤツシユ・メモリ中のデータ・ワードに行なわれてい
る間で、臨時に待機しなければならない。その結果、キ
ヤツシユ・メモリの質問のために、プロセツサの性能は
これと妥協した性能に低下する。
【0016】更に、より多くのプロセツサがMPシステ
ム中に付加されると、交互質問の実行回数は更に増加す
る。その結果、キヤツシユ・メモリとの対話はより多く
発生し、処理時間が長くなり、そして、MPシステムの
相互接続ネツトワークの通信は混雑することになる。従
つて、要求される多数の交互質問はMPシステム中の有
用な仕事を行なうプロセツサの数を減少することにな
る。
【0017】
【課題を解決するための手段】本発明は、キヤツシユ・
メモリ、共有されたメモリ及びMINを有するMPシス
テムの大域デイレクトリにおいて、修正ワード用バツフ
ア及びライン用バツフアを設けている。大域デイレクト
リは、キヤツシユ・ラインの状態及び制御に関する情報
をストアし、かつ、修正ワード用バツフア及びライン用
バツフアを制御するように構成される。
【0018】本発明に従つて、要求側のキヤツシユ・メ
モリは、最初に、キヤツシユ・ラインの大域デイレクト
リに要求を送る。大域デイレクトリは、データ・ライン
が修正されており、供給側のキヤツシユ・メモリ中に存
在することを決定する。
【0019】次に、キヤツシユ・ライン中の修正された
ワードだけを書き戻すための要求が大域デイレクトリか
ら供給側のキヤツシユ・メモリに送られ、これと同時
に、メモリから古いキヤツシユ・ラインを転送するため
の要求が、大域デイレクトリからメモリに送られる。
【0020】更に、修正されたワードの書き戻しの間
で、修正されたワードは大域デイレクトリの修正ワード
用バツフアによつて獲得され、そして、これと同時に、
メモリからの古いキヤツシユ・ラインが大域デイレクト
リのライン用バツフア中にストアされる。古いキヤツシ
ユ・ラインは、修正されたキヤツシユ・ラインが持つア
ドレスの識別子(identity)と対応するけれども、古い
キヤツシユ・ラインはキヤツシユ・ラインの最新のバー
ジヨンではないから、古いキヤツシユ・ラインの部分は
使用しない。
【0021】最後に、修正されたキヤツシユ・ライン全
体は、大域デイレクトリから要求側のキヤツシユ・メモ
リに転送され、修正されたワードは修正ワード用バツフ
アによつて供給され、そして、キヤツシユ・ラインの残
りはライン用バツフアによつて供給される。
【0022】本発明は上述のように従来の技術の欠点を
克服し、更に、以下のような利点を持つている。
【0023】本発明は、MPシステムにおいて、デイレ
クトリ・ベースの整合性プロトコルのために、非常に好
ましく、かつ高性能の書き戻し方式を与える。
【0024】これを具体的に言えば、本発明は、2つの
動作、即ち(1)大域デイレクトリとメモリとの間のデ
ータ・ライン転送動作と、(2)プロセツサからメモリ
への書き戻し動作の2つの動作を同時に行なわせること
によつて、MPシステムの性能を改善する。
【0025】上述の同時に起きる動作の結果として、プ
ロセツサからの読み取り要求を処理するために必要とさ
れる時間は非常に減少される(約44%の減少)。その
理由は、データ・ライン要求を処理するために、メモリ
の待ち時間の大部分が取り除かれるためである。従来の
プロトコルにおいては、修正されたすべてのワードがメ
モリに書き戻された後にだけ、データ・ラインが要求側
のキヤツシユ・メモリに転送されるので、遅延が生じ
る。
【0026】総括的に言えば、本発明はデータの整合性
を維持するために必要とする時間を減少し、従つて、M
Pシステムに対するより多くのプロセツサを付加する場
合に生じる性能低下が小さい。換言すれば、本発明によ
つて、MPシステムに付加することのできるプロセツサ
の数を効果的に高めることができる。
【0027】
【実施例】図1は本発明を適用することのできる多重プ
ロセツサ(MP)のアーキテクチヤ100のブロツク図
が示されている。多重プロセツサのアーキテクチヤ10
0は、関連するp個のキヤツシユ・メモリ112乃至1
16を有するP個のプロセツサ102乃至106を含ん
でいる。p個のキヤツシユ・メモリ112乃至116
は、キヤツシユ・メモリの複数の概念的なレベルを含ん
でいるが、この概念的なレベルは公知である。
【0028】キヤツシユ・メモリ112乃至116は多
段相互接続ネツトワーク(MIN)118を通してメモ
リ120に接続されている。MIN118は、プロセツ
サ102乃至106からメモリ120へのアクセスと、
メモリからプロセツサへのアクセスを制御する。メモリ
120は、関連するm個の大域デイレクトリ133乃至
137を有するm個メモリ・モジユール(MM)123
乃至127を持つている。既に述べたように、大域デイ
レクトリは、データの整合性を維持するのに使用する技
術分野で公知である。
【0029】MIN118は任意の数の入力及び出力を
持つことができ、そして、入力及び出力の数は同じであ
る必要はないことには注意を払う必要がある。
【0030】図2は8プロセツサ・システムのためのM
IN200の低レベルのブロツク図を示している。図示
されたように、MIN200は、参照数字202乃至2
06によつて示された3つの段、即ち段1乃至段3の各
々のための4個の同じ2*2スイツチを持つている。段
1は2*2スイツチ212乃至218で構成されてい
る。段2は2*2スイツチ222乃至228で構成され
ている。段3は2*2スイツチ232乃至238で構成
されている。MPシステム中のプロセツサの数が増加す
れば、段の数及び段毎の2*2スイツチの数も同様に増
加する。
【0031】図2の2*2スイツチの代表的な例が図3
に示してある。図3に示されているように、2*2スイ
ツチ302は入力I、J及び出力P、Qを持つている。
入力Iは出力P、または出力Qのいずれにも接続するこ
とができる。同様に、入力Jは出力P、または出力Qの
いずれにも接続することができる。接続は制御信号によ
つて行なわれる。本発明は2*2スイツチ構造を有する
スイツチ202乃至238のみに制限されるものでない
ことには注意を喚起する必要がある。換言すれば、m及
びnを任意の整数として、スイツチ202乃至238は
m*n構造を取ることができる。
【0032】図2に示した3段のMIN200を持つ8
プロセツサ・システムにおいてデータの整合性を維持す
るための通常のプロトコルは、図4乃至図8を参照して
以下に説明される。図4乃至図8は、プロセツサP2
よつて排他的に所有されている修正されたデータ・ライ
ンLをプロセツサP6と関連するキヤツシユ・メモリの
中にコピーするために必要な通常のステツプを説明する
ものである。
【0033】最初に、データ・ラインLはメモリ・モジ
ユールM4のメモリにストアされているものと仮定す
る。また、2つのプロセツサP2及びP6はこれらのプロ
セツサと関連するキヤツシユ・メモリ中にデータ・ライ
ンLのコピーを現在共有しているものと仮定する。更
に、プロセツサP2がデータ・ラインL中のデータを修
正したものと仮定する。従つて、プロセツサP2はライ
ンLの排他的に修正された(EXM)コピーを持つてお
り、ラインLはプロセツサP6のキヤツシユ・メモリ中
の常駐の情報ではない。ここで、ラインL中に位置付け
られた或るデータを、P6が読み取りたいと望んだとす
る。従つて、プロセツサP2によつて排他的に所有され
ている修正されたデータ・ラインLはプロセツサP6
関連するキヤツシユ・メモリに書き込まれなければなら
ない。
【0034】従来の技術において、プロセツサP6はデ
ータ・ラインLの読み取りを先ず要求する。図4を参照
すると、「読み取り要求」はMIN200を通してプロ
セツサP6から転送され、最終的には、参照数字420
で示されたメモリ・モジユール4と関連された参照数字
410で示された大域デイレクトリ4に到着する。MI
N200において、読み取り要求は、大域デイレクトリ
GD4に到達するために、図示されたように、スイツチ
216、222及び234を次々に通つて移動する。
【0035】第2のステツプは、図5を参照して説明す
る。大域デイレクトリ4はプロセツサP2に「書き戻し
要求」を送る。この書き戻し要求は、プロセツサP2
届けられるように、スイツチ234、222及び212
を次々に通つて移動する。
【0036】第3のステツプは図6を参照して説明す
る。プロセツサP2はラインLの修正されたデータをス
イツチ212、222及び234を通してメモリ・モジ
ユールM4に転送する。
【0037】第4のステツプは図7を参照して説明す
る。大域デイレクトリGD4は、メモリ・モジユールM4
からプロセツサP6へ、データ・ラインLを転送するこ
とを要求する。
【0038】M4からP6なデータ・ラインLを転送する
経路を示す図8に示された最後のステツプにおいて、デ
ータ・ラインLは、スイツチ234、222及び216
を次々に通つてメモリ・モジユールM4からプロセツサ
6に転送される。
【0039】性能の観点から見ると、上述のプロトコル
を実施するために費された時間は、可成り長い時間を必
要とする。2*2スイツチ212乃至238のスイツチ
時間は、通常、約1クロツク・サイクルを必要とする。
例えば、大域デイレクトリ410のアクセス時間は約1
クロツク・サイクルである。更にメモリ・モジユール4
20のアクセス時間は、約6クロツク・サイクルを必要
とする。
【0040】上述のスイツチ時間及びアクセス時間が通
常の整合性プロトコルに適用可能であるとして、図4乃
至図8で説明された整合性プロトコルを遂行するのに必
要な時間は、下記の表1に示された分析に基くと、約2
5クロツク・サイクルである。
【0041】 表1 整合性プロト 2*2スイツ 大域デイレク メモリ・モジ 合計時間 コルのステツ チのスイツチ トリGD4の ユールM4の プの順番 時間(クロツ アクセス時間 アクセス時間 ク・サイクル (クロツク・ (クロツク・ ) サイクル) サイクル) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 3 1 0 4 2 3 0 0 3 3 3 0 6 9 4 0 0 6 6 5 3 0 0 3 25
【0042】図9は、本発明に従つた大域デイレクトリ
500の高レベルのブロツク図である。この大域デイレ
クトリ500のために、所望の性能の向上を達成するの
に最適な書き戻しプロトコルを実行することができる。
【0043】図示されているように、本発明の新規な大
域デイレクトリ500は状態及び制御ブロツク502
と、コントローラ506と関連したライン用バツフア5
04と、コントローラ510と関連した修正ワード用バ
ツフア508とを持つている。本発明の顕著な特徴は、
これらのバツフアは、修正されたデータがメモリ中にス
トアされる前に、メモリに差し向けられる、即ちメモリ
に書き戻されるキヤツシユ・ラインの修正されたワード
を捕獲し、ストアするライン用バツフア504及び修正
ワード用バツフア508を含ませたことにある。
【0044】図9の新規な大域デイレクトリ500の低
レベルのブロツク図を示した図10を参照して、上述の
本発明の特徴の細部を以下に説明する。
【0045】図10に示されているように、大域デイレ
クトリ500の状態及び制御ブロツク502はN個の状
態ラインを含んでいる。N個の状態ラインはMPシステ
ム中のキヤツシユ・ラインを監視する。N個の状態ライ
ンは、MPシステム、またはそのサブセツト中のすべて
のキヤツシユ・ラインと対応させることができる。MP
システムのサブセツトの場合には、残りの状態ラインは
他のメモリ位置にストアして、必要な時に検索すること
ができる。
【0046】N個の状態ラインの各々は、参照数字60
2で示されたように、大域デイレクトリの状態及び制御
ブロツク502によつて処理することのできる複数個の
標識を含んでいる。例えば、N個の状態ラインの各々は
デイレクトリ・タグ(dtag)604を持つている。
dtag604はキヤツシユ・ラインを特に識別するた
めの単なるバイナリ・コードである。
【0047】N個の状態ラインの各々は大域デイレクト
リの状態(gstats)標識606を持つている。良
好な実施例において、大域デイレクトリの状態標識60
6は、合計4つの異なつた大域デイレクトリの状態、即
ち「排他的」状態と、「排他的修正(EXM)」状態
と、「読み取り専用」状態と、MPシステムのp個のキ
ヤツシユ・メモリのすべてにおいて「存在せず」状態と
を表示するために、2つのビツトを含んでいる。
【0048】参照数字608乃至610で示したよう
に、プロセツサ識別子(PID)は、どのプロセツサが
状態ライン602に対応するかを表示する。例えば、
「PIDx(log2P)」は、p個のプロセツサのうち
のプロセツサ「x」が状態ライン602に対応すること
を表わしている。
【0049】N個の状態ラインの各々は、状態ラインが
書き戻しを待つている状態(WTEVENT)なのか、
或は、プロセツサから発生した他の状態を待つているの
かを特定する状態標識612を持つている。良好な実施
例において、WTEVENT標識612は単一のビツト
である。若し、状態ラインが書き戻しを待つている間
に、状態ラインによつて識別されたデータ・ラインの要
求が発生したならば、その要求は、書き戻しが発生され
るまで、大域デイレクトリによつて処理されない。
【0050】最後に、N個の状態ラインの各々は、書き
戻しを発生させた状態を特定する要求状態(RQEVE
NT)標識614を持つている。良好な実施例におい
て、RQEVENT標識614は、3つの状態、即ち
「読み取り要求」状態と、「ストア要求」状態と、「修
正要求」状態のために、2つのビツトを含んでいる。
【0051】ライン用バツフア504は、特別のタグが
先頭に置かれたデータを含む「S」データ・ラインを持
つている。更に、修正ワード用バツフア508は、特別
のタグが先頭に置かれたデータを含む「T」データ・ワ
ードを持つている。
【0052】図4乃至図8を参照して説明した従来のプ
ロトコルとは対照的に異なつているMPシステムにおけ
るデータの整合性を維持するための新規なプロトコル
を、図11乃至図14を参照して以下に説明する。図1
1乃至図14は、図4乃至図8と同じように、8プロセ
ツサ・システムを対象としている。プロセツサの数(即
ち、8)は説明を単純にするために選ばれた任意に決め
られる数である。図11乃至図14は、プロセツサP6
と関連したキヤツシユ・メモリにおいて、プロセツサP
2によつて排他的に所有されている修正されたデータ・
ラインLをコピーするためのステツプを順番に並べて示
してある。
【0053】最初に、図11に示されているように、大
域デイレクトリ500の状態及び制御ブロツク502に
おいて、修正データ・ラインLに対応する状態ライン7
02(N個のうちの1つのデータ・ライン)は、排他的
に修正されたデータ・ラインLのコピーを、プロセツサ
2が持つていることを表示する。これをより具体的に
言えば、状態ライン702のプロセツサ標識子(PI
D)は、「PID2(log2P)」であり、プロセツサ
2がデータ・ラインを持つていることを表示する。更
に、参照数字704で示されているように、ラインLが
排他的に修正(EXM)されたことを表示するように、
大域デイレクトリの状態(gstats)標識がセツト
される。
【0054】図11を参照すると、スイツチ216、2
22及び234を通して、読み取り要求(ステツプ1)
がプロセツサP6から大域デイレクトリGD4に送られ
る。大域デイレクトリ500の制御ブロツク502は、
特別のタグ706を通して、読み取り要求を特定の状態
ライン702に一致させる。大域デイレクトリGD4
制御ブロツクはPIDの状態及びgstatsを認識す
るので、その制御ブロツクは、プロセツサP2が排他的
に修正されたデータ・ラインLを持つていることを認識
する。
【0055】図12に示されているように、書き込み要
求(ステツプ2)は、夫々スイツチ234、222及び
212を介して大域デイレクトリGD4からプロセツサ
2に送られる。上述の動作と同時に、矢印708で示
されているように、大域デイレクトリGD4からメモリ
・モジユールM4に、転送要求が送られる。本質的に
は、転送要求は、メモリ・モジユールM4からデータ・
ラインLの転送を大域デイレクトリGD4に要請する。
【0056】前述のステツプ2の間で、大域デイレクト
リ500の大域デイレクトリの状態及び制御ブロツク5
02はWTEVENT標識612及びRQEVENT標
識614を処理する。データを書き戻すためのプロセツ
サを待つている状態であることを、大域デイレクトリの
状態及び制御ブロツク502が表示するために、大域デ
イレクトリの状態及び制御ブロツク502はWTEVE
NT標識612をセツトする。このことを別の面から言
うと、大域デイレクトリの状態及び制御ブロツク502
がデータ・ラインを修正するためにプロセツサP2を待
つている間で、状態ライン702によつて表示されたデ
ータ・ラインのすべての要求は、プロセツサP2からの
書き戻しが発生するまで、大域デイレクトリの状態及び
制御ブロツク502によつて処理されないことを意味す
る。更に、大域デイレクトリの制御ブロツク502は、
6が読み取り要求を送つたので、「読み取り要求」の
ためのRQEVENT標識614をセツトする。
【0057】図13に示されているように、次のステツ
プの間で、修正されたデータ・ラインLはプロセツサP
2から、メモリ・モジユール4(参照数字420)及び
大域デイレクトリGD4(参照数字500)との両方に
同時に転送される。この動作と同時に、データ・ライン
Lの転送要求はメモリ・モジユールM4において処理さ
れ、そして、データ・ラインLはメモリ・モジユールM
4から大域デイレクトリGD4中のライン用バツフア50
4に転送される。多くの場合、大域デイレクトリ500
は、大域デイレクトリがプロセツサP2から修正された
データ・ラインLを受け取る前にメモリ・モジユールM
4からデータ・ラインLを受け取る。
【0058】大域デイレクトリ500が修正されたデー
タ・ラインLを受け取つた時、大域デイレクトリは、何
故大域デイレクトリが修正されたラインLを受け取つた
かを決めるために、RQEVENT標識614をチエツ
クする。この問い合わせを受けると、この例の場合、大
域デイレクトリは、プロセツサP6が読み取り要求を発
生したことを決定する。更に修正されたデータ・ライン
Lのヘツダ中のビツト・ベクトルから、大域デイレクト
リ500は、データ・ラインLのどちらのデータ・ワー
ドが変更されたのかを決定することができる。変更され
たデータ・ワードは修正ワード用バツフア508中にス
トアされ、そしてビツト・ベクトルはライン用バツフア
のコントローラ506に送られる。以下に説明されるよ
うに、ライン用バツフアのコントローラ506は、修正
されないワードを要求側のプロセツサP6に転送するた
めに、プロトコルの次のステツプにおいて、ビツト・ベ
クトルによつて供給される情報を使用する。
【0059】最後に図14に示されているように、本発
明に従つて、修正されたデータ・ラインLは大域デイレ
クトリGD4からプロセツサP6に転送される。修正され
たデータ・ラインLの修正されたワードは、修正ワード
用バツフア508からプロセツサP6に転送され、他
方、データ・ラインLの残りの(変更されなかつた)ワ
ードはライン用バツフア504からプロセツサP6に転
送される。
【0060】上述の動作の後、大域デイレクトリの状態
及び制御ブロツク502はgstats標識606及び
PID標識608を修正する。プロセツサP2及びP6
両方がデータ・ラインのコピーを持つているので、大域
デイレクトリの制御ブロツク502は、図14に「R
O」として示されているように、「読み取り専用」に、
状態ライン702のgstats606をセツトする。
更に、大域デイレクトリ制御ブロツク502は、プロセ
ツサP2及びP6がデータ・ラインLのコピーを現在持つ
ていることを表示するためにPID標識608をセツト
する。
【0061】従来の整合性プロトコルに必要とした図4
乃至図8に関連して特定されたスイツチング時間及びア
クセス時間の25クロツク・サイクルの時間を再度取り
上げて比較すると、本発明に従つた整合性プロトコルを
遂行するために必要な時間は約14クロツク・サイクル
であり、従来のプロトコルの場合よりも遥かに短い時間
である。この14クロツク・サイクルは下記の表2に示
した分析に基いている。
【0062】 表2 整合性プロト 2*2スイツ 大域デイレク メモリ・モジ 合計時間 コルのステツ チのスイツチ トリGD4の ユールM4の プの順番 時間(クロツ アクセス時間 アクセス時間 ク・サイクル (クロツク・ (クロツク・ ) サイクル) サイクル) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 3 1 0 4 2 3 0 0 3 3 3 1 0 4 4 3 0 0 3 14
【0063】表2に示したように、大域デイレクトリ5
00に対して、ライン用バツフア504と、修正ワード
用バツフア508とを付加したことは、プロセツサP6
からの読み取り要求を処理するために必要とされる時間
の長さを44%減少する。この理由は、本発明によつ
て、メモリ・モジユールを待つことに含まれた多くの時
間を除去していることによる。従来のプロトコルにおい
て、データ・ラインは、すべての修正されたデータ・ラ
インがメモリ・モジユールM4に書き込まれた後にの
み、要求側のキヤツシユ・メモリに転送される。従つ
て、本発明は、2つの動作、即ち(1)大域デイレクト
リGD4とメモリ・モジユールM4との間のデータ・ライ
ンの転送動作と、(2)書き戻し動作との2つの動作を
同時に発生させることによつてMPシステムを高性能に
する。
【0064】以上、本発明の1実施例を説明してきた
が、例えば、プロセツサ、キヤツシユ・メモリ及びメモ
リ・モジユールの数を上述の実施例とは異なつた数にす
るなどの多くの変更が、この道の専門家によつて容易に
行なうことができるので、本発明の技術的範囲は、上述
の実施例にのみ限定されるものではない。
【0065】
【発明の効果】本発明により、書き戻しキヤツシユ・メ
モリと、共有されたメイン・メモリに接続された多段相
互接続ネツトワークを含む多重プロセツサ・システムに
おいて、従来の技術に比較してプロセツサの数を増加す
ることができ、処理時間が遥かに速いシステムが与えら
れる。
【図面の簡単な説明】
【図1】多段相互接続ネツトワーク(MIN)を通し
て、m個の大域デイレクトリに関連されたメモリ・モジ
ユール(MM)を有するメモリに接続されたp個のプロ
セツサを含む多重プロセツサ・システムのブロツク図で
ある。
【図2】MINは、夫々の段に対して4つの2*2スイ
ツチを持つている8プロセツサ・システムのためのMI
Nの低レベルのブロツク図である。
【図3】入力I、J及び出力P、Qを有する図2に示し
た2*2スイツチと動作を説明するための図である。
【図4】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第1のステツプを説明するための図であ
る。
【図5】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第2のステツプを説明するための図であ
る。
【図6】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第3のステツプを説明するための図であ
る。
【図7】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第4のステツプを説明するための図であ
る。
【図8】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第5のステツプを説明するための図であ
る。
【図9】本発明に従つた大域デイレクトリの高レベルの
ブロツク図である。
【図10】図2の大域デイレクトリの低レベルのブロツ
ク図である。
【図11】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第1のステツプを説明するため
の図である。
【図12】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第2のステツプを説明するため
の図である。
【図13】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第3のステツプを説明するため
の図である。
【図14】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第4のステツプを説明するため
の図である。
【符号の説明】
100 多重プロセツサ(MP)のアーキテクチヤ 102乃至106 プロセツサ 112乃至116 キヤツシユ・メモリ 118、200 多段相互接続ネツトワーク(MIN) 120 メモリ 123乃至127 メモリ・モジユール 133乃至137、500 大域デイレクトリ 502 大域デイレクトリの状態及び制御ブロツク 504 ライン用バツフア 508 修正ワード用バツフア 506、510 コントローラ 604 デイレクトリ・タグ 606 大域デイレクトリの状態標識 608乃至610 プロセツサ識別子 612 WTEVENT標識(待ち状態標識) 614 RQEVENT標識(要求状態標識)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケビン・パトリック・マックアウリフェ アメリカ合衆国ニューヨーク州、ピーク スキル、ローマ・コート 7番地 (72)発明者 バハラート・ディープ・ラシ アメリカ合衆国ニュウヨーク州、マホパ ック、レイクビュー・ドライブ、ルート 8 167シイ(番地なし)

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 書き戻しキヤツシユ・メモリと、共有さ
    れたメモリに接続された多段相互接続ネツトワークとを
    有する多重プロセツサ・システムの性能を最適化するた
    めの装置であつて、 修正されたキャッシュ・ライン内の修正されたワードが
    キヤツシユ・メモリから書き戻された時に、すべての上
    記修正されたワードをストアするように構成された修正
    ワード用バツフアを含むことと、 上記メモリから転送された古いキヤツシユ・ラインをス
    トアするように構成されたライン用バツフアを含み、上
    記古いキヤツシユ・ラインは上記修正されたキヤツシユ
    ・ラインとアドレスの識別子が一致することと、 上記修正ワード用バツフアと上記ライン用バツフアとを
    含む大域デイレクトリを含み、該大域デイレクトリは、
    キヤツシユ・ラインに関する状態情報及び制御情報をス
    トアするように構成されており、上記キヤツシユ・メモ
    リから上記修正されたワードの書き戻しを要求すると同
    時に、上記メモリから上記古いキヤツシユ・ラインを要
    求するように構成されており、そして、上記修正された
    キヤツシユ・ラインを、上記修正ワード用バツフア及び
    上記ライン用バツフアから要求側のキヤツシユ・メモリ
    に書き込むように構成されていることとを特徴とする多
    重プロセツサ・システムの性能の最適化装置。
  2. 【請求項2】 上記システムの各キヤツシユ・ラインに
    対応する上記大域デイレクトリが利用可能な状態ライン
    を含んでおり、該状態ラインの各々はキヤツシユ・ライ
    ンと、大域デイレクトリの状態と、キヤツシユ・ライン
    を所有する1つ、または、それ以上のプロセツサと、状
    態ラインが書き戻しを待つている状態にあるか否かを表
    示する待ち状態標識と、書き戻し要求が発生したことを
    識別する要求状態標識とを特定することを特徴とする請
    求項1に記載の多重プロセツサ・システムの性能の最適
    化装置。
  3. 【請求項3】 上記多段相互接続ネツトワークは段の各
    々の中に4個のスイツチを持つ3つの段を有すること
    と、上記スイツチは2つの入力と2つの出力を有し、か
    つ任意の入力を任意の出力に切り換えるように構成され
    ていることとを特徴とする請求項1に記載の多重プロセ
    ツサ・システムの性能の最適化装置。
  4. 【請求項4】 書き戻しキヤツシユ・メモリと、共有さ
    れたメモリに接続された多段相互接続ネツトワークとを
    有する多重プロセツサ・システムの性能を最適化する装
    置において、 要求側キヤツシユ・メモリからの修正されたキヤツシユ
    ・ラインの要求を受信し、供給側キャッシュ・メモリか
    らの上記修正されたキャッシュ・ラインにおける修正さ
    れたワードの書き戻しを要求し、同時にメモリからの古
    いキヤツシユ・ラインの転送を要求し、上記古いキヤツ
    シユ・ラインのアドレス識別子は上記修正されたキヤツ
    シユ・ラインとアドレス識別子が一致し、さらに上記修
    正されたキヤツシユ・ラインを上記要求側キャッシュに
    転送する制御手段を含むことと、 上記制御手段に接続され、上記供給側キヤツシユ・メモ
    リから書き戻された修正されたワードを獲得し、同時に
    上記メモリから上記古いキヤツシユ・ラインをストアす
    るバツフア手段を含むこととを特徴とする多重プロセツ
    サ・システムの性能の最適化装置。
  5. 【請求項5】 上記修正されたワードをストアするため
    に構成された修正ワード用バツフアと、上記古いキヤツ
    シユ・ラインをストアするために構成されたライン用バ
    ツフアとを含むことを特徴とする請求項4に記載の多重
    プロセツサ・システムの性能の最適化装置。
  6. 【請求項6】 上記システムの各キヤツシユ・ラインに
    対応する上記制御手段が利用可能な状態ラインを含み、
    該状態ラインの各々はキヤツシユ・ラインと、大域デイ
    レクトリの状態と、キヤツシユ・ラインを所有する1つ
    またはそれ以上のプロセツサと、状態ラインが書き戻し
    を待つているか否かを表示する待ち状態標識と、書き戻
    し要求が生じたことを識別する要求状態標識とを特定す
    ることを特徴とする請求項4に記載の多重プロセツサ・
    システムの性能の最適化装置。
  7. 【請求項7】 上記多段相互接続ネツトワークは、段の
    各々の中に4つのスイツチを持つ3つの段を有すること
    と、上記スイツチは2つの入力と2つの出力を有し、か
    つ任意の入力を任意の出力に切り換えるように構成され
    ていることとを特徴とする請求項4に記載の多重プロセ
    ツサ・システムの性能の最適化装置。
  8. 【請求項8】 書き戻しキヤツシユ・メモリと、大域デ
    イレクトリによつて監視され、共有されたメモリに接続
    された多段相互接続ネツトワークとを有する多重プロセ
    ツサ・システムの性能を最適化するための方法におい
    て、 (a) 修正されたキヤツシユ・ラインの大域デイレクト
    リを要求するステツプと、 (b) 供給側キヤツシユ・メモリから上記修正されたキ
    ヤツシユ・ライン中の修正されたワードの書き戻しを要
    求し、同時に上記メモリから古いキャッシュ・ラインの
    転送を要求するステップであって、上記古いキヤツシユ
    ・ラインのアドレスの識別子は上記修正されたキヤツシ
    ユ・ラインのアドレスの識別子と一致しており、 (c) 上記大域デイレクトリにおいて、上記供給側キヤ
    ツシユ・メモリから書き戻された上記修正されたワード
    を獲得し、同時に上記メモリから上記古いキヤツシユ・
    ラインを上記大域デイレクトリにストアするステツプ
    と、 (d) 上記大域デイレクトリから上記修正されたキヤツ
    シユ・ラインを転送するステツプとを含む多重プロセツ
    サ・システムの性能を最適化する方法。
  9. 【請求項9】 ヘツダの中のビツト・ベクトルを使用す
    ることによつて修正されたワードを識別するステツプを
    含むことを特徴とする請求項8に記載の多重プロセツサ
    ・システムの性能を最適化する方法。
JP4106604A 1991-05-23 1992-04-24 多重プロセツサ・システムの性能の最適化装置及び方法 Expired - Lifetime JP2516300B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US704553 1991-05-23
US07/704,553 US5313609A (en) 1991-05-23 1991-05-23 Optimum write-back strategy for directory-based cache coherence protocols

Publications (2)

Publication Number Publication Date
JPH05128071A JPH05128071A (ja) 1993-05-25
JP2516300B2 true JP2516300B2 (ja) 1996-07-24

Family

ID=24829981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4106604A Expired - Lifetime JP2516300B2 (ja) 1991-05-23 1992-04-24 多重プロセツサ・システムの性能の最適化装置及び方法

Country Status (3)

Country Link
US (1) US5313609A (ja)
JP (1) JP2516300B2 (ja)
CA (1) CA2062910C (ja)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5584017A (en) * 1991-12-19 1996-12-10 Intel Corporation Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US5479636A (en) * 1992-11-16 1995-12-26 Intel Corporation Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
JP2809961B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 マルチプロセッサ
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JPH06348595A (ja) * 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
FR2707776B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé.
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US5630095A (en) * 1993-08-03 1997-05-13 Motorola Inc. Method for use with a data coherency protocol allowing multiple snoop queries to a single snoop transaction and system therefor
US5604882A (en) * 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers
JPH0816470A (ja) * 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
JPH0844626A (ja) * 1994-07-28 1996-02-16 Nec Niigata Ltd キャッシュシステムのフラッシュサイクル制御方法
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US6021472A (en) * 1995-08-21 2000-02-01 Canon Kabushiki Kaisha Information processing device and control method thereof
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US5737636A (en) * 1996-01-18 1998-04-07 International Business Machines Corporation Method and system for detecting bypass errors in a load/store unit of a superscalar processor
US5822763A (en) * 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5893149A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Flushing of cache memory in a computer system
US5900015A (en) * 1996-08-09 1999-05-04 International Business Machines Corporation System and method for maintaining cache coherency using path directories
US5848434A (en) * 1996-12-09 1998-12-08 Intel Corporation Method and apparatus for caching state information within a directory-based coherency memory system
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US6044438A (en) 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6092155A (en) 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6108752A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency
US6122714A (en) * 1997-10-24 2000-09-19 Compaq Computer Corp. Order supporting mechanisms for use in a switch-based multi-processor system
US6154816A (en) * 1997-10-24 2000-11-28 Compaq Computer Corp. Low occupancy protocol for managing concurrent transactions with dependencies
US6418537B1 (en) 1997-12-07 2002-07-09 Conexant Systems, Inc. Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL
US6516442B1 (en) 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6633945B1 (en) 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US6065077A (en) 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6292705B1 (en) 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6546464B2 (en) * 1999-01-08 2003-04-08 Nortel Networks Limited Method and apparatus for increasing data rates in a data network while maintaining system coherency
US6266743B1 (en) 1999-02-26 2001-07-24 International Business Machines Corporation Method and system for providing an eviction protocol within a non-uniform memory access system
US6469988B1 (en) 1999-07-08 2002-10-22 Conexant Systems, Inc. Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7673223B2 (en) * 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US7017012B2 (en) * 2002-06-20 2006-03-21 Sun Microsystems, Inc. Distributed storage cache coherency system and method
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
US7051163B2 (en) * 2002-10-03 2006-05-23 Hewlett-Packard Development Company, L.P. Directory structure permitting efficient write-backs in a shared memory computer system
US6990559B2 (en) * 2002-10-03 2006-01-24 Hewlett-Packard Development Company, L.P. Mechanism for resolving ambiguous invalidates in a computer system
US6898676B2 (en) * 2002-10-03 2005-05-24 Hewlett-Packard Development Company, L.P. Computer system supporting both dirty-shared and non-dirty-shared data processing entities
US6892290B2 (en) * 2002-10-03 2005-05-10 Hewlett-Packard Development Company, L.P. Linked-list early race resolution mechanism
US6895476B2 (en) * 2002-10-03 2005-05-17 Hewlett-Packard Development Company, L.P. Retry-based late race resolution mechanism for a computer system
US7000080B2 (en) * 2002-10-03 2006-02-14 Hewlett-Packard Development Company, L.P. Channel-based late race resolution mechanism for a computer system
US7003635B2 (en) * 2002-10-03 2006-02-21 Hewlett-Packard Development Company, L.P. Generalized active inheritance consistency mechanism having linked writes
US7024520B2 (en) * 2002-10-03 2006-04-04 Hewlett-Packard Development Company, L.P. System and method enabling efficient cache line reuse in a computer system
US20040157626A1 (en) * 2003-02-10 2004-08-12 Vincent Park Paging methods and apparatus
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US20070234178A1 (en) * 2003-02-26 2007-10-04 Qualcomm Incorporated Soft information scaling for interactive decoding
US7231577B2 (en) * 2003-02-26 2007-06-12 Qualcomm Incorporated Soft information scaling for iterative decoding
US7231557B2 (en) * 2003-04-02 2007-06-12 Qualcomm Incorporated Methods and apparatus for interleaving in a block-coherent communication system
US7434145B2 (en) * 2003-04-02 2008-10-07 Qualcomm Incorporated Extracting soft information in a block-coherent communication system
US8196000B2 (en) * 2003-04-02 2012-06-05 Qualcomm Incorporated Methods and apparatus for interleaving in a block-coherent communication system
US7051166B2 (en) * 2003-04-21 2006-05-23 Hewlett-Packard Development Company, L.P. Directory-based cache coherency scheme for reducing memory bandwidth loss
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7346832B2 (en) * 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
US8544020B1 (en) 2004-09-14 2013-09-24 Azul Systems, Inc. Cooperative preemption
US7500050B2 (en) 2006-03-20 2009-03-03 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
KR100772547B1 (ko) * 2006-08-31 2007-11-02 주식회사 하이닉스반도체 반도체 장치 및 그의 테스트 방법
US8572043B2 (en) * 2007-12-20 2013-10-29 International Business Machines Corporation Method and system for storage of unstructured data for electronic discovery in external data stores
US9928071B1 (en) 2008-05-02 2018-03-27 Azul Systems, Inc. Enhanced managed runtime environments that support deterministic record and replay
US20090286219A1 (en) * 2008-05-15 2009-11-19 Kisin Roman Conducting a virtual interview in the context of a legal matter
US9830563B2 (en) 2008-06-27 2017-11-28 International Business Machines Corporation System and method for managing legal obligations for data
US20100017239A1 (en) * 2008-06-30 2010-01-21 Eric Saltzman Forecasting Discovery Costs Using Historic Data
US8489439B2 (en) * 2008-06-30 2013-07-16 International Business Machines Corporation Forecasting discovery costs based on complex and incomplete facts
US8484069B2 (en) * 2008-06-30 2013-07-09 International Business Machines Corporation Forecasting discovery costs based on complex and incomplete facts
US8515924B2 (en) * 2008-06-30 2013-08-20 International Business Machines Corporation Method and apparatus for handling edge-cases of event-driven disposition
US8996812B2 (en) * 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8655856B2 (en) * 2009-12-22 2014-02-18 International Business Machines Corporation Method and apparatus for policy distribution
US8566903B2 (en) 2010-06-29 2013-10-22 International Business Machines Corporation Enterprise evidence repository providing access control to collected artifacts
US8832148B2 (en) 2010-06-29 2014-09-09 International Business Machines Corporation Enterprise evidence repository

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
FR2474201B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation

Also Published As

Publication number Publication date
US5313609A (en) 1994-05-17
JPH05128071A (ja) 1993-05-25
CA2062910C (en) 1998-09-22
CA2062910A1 (en) 1992-11-24

Similar Documents

Publication Publication Date Title
JP2516300B2 (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
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
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US20050021913A1 (en) Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges
JP4119380B2 (ja) マルチプロセッサシステム
US20060143406A1 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
JPH0776942B2 (ja) マルチプロセッサ・システムおよびそのデータ伝送装置
JPH10116253A (ja) 同期動作を実行するマルチプロセス・システム
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US6675262B1 (en) Multi-processor computer system with cache-flushing system using memory recall
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US6651157B1 (en) Multi-processor system and method of accessing data therein
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
JPH08115289A (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
JP2746530B2 (ja) 共有メモリマルチプロセッサ
US5895496A (en) System for an method of efficiently controlling memory accesses in a multiprocessor computer system
GB2271653A (en) Multi-level cache system
US5623635A (en) Memory consistent pre-ownership method and system for transferring data between and I/O device and a main memory
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system