JPH05128071A - 多重プロセツサ・システムの性能の最適化装置及び方法 - Google Patents
多重プロセツサ・システムの性能の最適化装置及び方法Info
- Publication number
- JPH05128071A JPH05128071A JP4106604A JP10660492A JPH05128071A JP H05128071 A JPH05128071 A JP H05128071A JP 4106604 A JP4106604 A JP 4106604A JP 10660492 A JP10660492 A JP 10660492A JP H05128071 A JPH05128071 A JP H05128071A
- Authority
- JP
- Japan
- Prior art keywords
- line
- modified
- memory
- cache
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 9
- 230000015654 memory Effects 0.000 claims abstract description 158
- 239000000872 buffer Substances 0.000 claims abstract description 42
- 238000012546 transfer Methods 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 4
- 238000012937 correction Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative 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)
Abstract
(57)【要約】
【目的】 多重プロセツサ・システムにおいて、データ
の整合性を維持するデイレクトリ・ベースのプロトコル
を与える。 【構成】 供給側キヤツシユ・メモリによつて排他的に
修正されたキヤツシユ・ラインを、要求側キヤシユ・メ
モリが要求した時、メモリへの書き戻しの間で、修正さ
れたキヤツシユ・ラインの修正されたデータ・ワードを
集合的にインターセプトするために、大域デイレクトリ
の中に2つのバツフアが設けられる。一方の修正ワード
用バツフアは修正されたキヤツシユ・ラインの修正ワー
ドを獲得するのに使われる。他方のライン用バツフアは
書き戻し動作の間でメモリから転送された古いキヤツシ
ユ・ラインをストアする。最後に、両バツフアは要求側
キヤツシユに修正された全てのデータ・ラインを同時に
与える。
の整合性を維持するデイレクトリ・ベースのプロトコル
を与える。 【構成】 供給側キヤツシユ・メモリによつて排他的に
修正されたキヤツシユ・ラインを、要求側キヤシユ・メ
モリが要求した時、メモリへの書き戻しの間で、修正さ
れたキヤツシユ・ラインの修正されたデータ・ワードを
集合的にインターセプトするために、大域デイレクトリ
の中に2つのバツフアが設けられる。一方の修正ワード
用バツフアは修正されたキヤツシユ・ラインの修正ワー
ドを獲得するのに使われる。他方のライン用バツフアは
書き戻し動作の間でメモリから転送された古いキヤツシ
ユ・ラインをストアする。最後に、両バツフアは要求側
キヤツシユに修正された全てのデータ・ラインを同時に
与える。
Description
【0001】
【産業上の利用分野】本発明は、複数のキヤツシユ・メ
モリ及び共有メモリを有する多重プロセツサ(MP)シ
ステム、より詳細に言えば、MPシステム中の複数のプ
ロセツサの間で共有されているデータの整合性を維持す
る装置及び方法に関する。
モリ及び共有メモリを有する多重プロセツサ(MP)シ
ステム、より詳細に言えば、MPシステム中の複数のプ
ロセツサの間で共有されているデータの整合性を維持す
る装置及び方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】多重プ
ロセツサ・システム(MP)による並列処理の出現は、
通常の単一プロセツサ・システムの性能を越えた大幅な
性能の改善をする可能性がある。MPシステムにおける
多重のプロセツサは、過去何十年の間用いられている技
術の多段相互接続ネツトワーク(multistage interconn
ection network-MIN)を通して、同時に並列にメモ
リと通信することができる。
ロセツサ・システム(MP)による並列処理の出現は、
通常の単一プロセツサ・システムの性能を越えた大幅な
性能の改善をする可能性がある。MPシステムにおける
多重のプロセツサは、過去何十年の間用いられている技
術の多段相互接続ネツトワーク(multistage interconn
ection network-MIN)を通して、同時に並列にメモ
リと通信することができる。
【0003】これをより詳細に説明すると、通常のMI
N構成において、プロセツサはMINの特別のポートに
接続されている。通常のMINは制御可能なスイツチの
段を持つている。MINは、制御可能なスイツチによつ
て、1つ以上のメモリ・ラインを、任意の時間で任意の
プロセツサに接続することができる。事実、MINによ
つて、幾つかのプロセツサはメモリと同時通信ができる
ので、真の意味の並列処理が容易に達成される。
N構成において、プロセツサはMINの特別のポートに
接続されている。通常のMINは制御可能なスイツチの
段を持つている。MINは、制御可能なスイツチによつ
て、1つ以上のメモリ・ラインを、任意の時間で任意の
プロセツサに接続することができる。事実、MINによ
つて、幾つかのプロセツサはメモリと同時通信ができる
ので、真の意味の並列処理が容易に達成される。
【0004】然しながら、多くのプロセツサがMPシス
テムに付加されるようになり、しかも、プロセツサの速
度は常に高速化の一途を辿つたので、メイン・メモリの
帯域幅は、それらの多くの高性能プロセツサにより求め
られる要求のペースに合わせることができなくなつてき
た。より具体的に言えば、プロセツサとメイン・メモリ
との間の距離は次第に離れざるを得なくなり、しかも、
プロセツサがメイン・メモリにアクセスする回数は益々
増加するので、プロセツサのメモリ・アクセス時間は全
体として増加してくる。従つて、MPシステムにおける
高性能のデータ処理に対して、メイン・メモリの帯域幅
が主要な隘路となつてきた。
テムに付加されるようになり、しかも、プロセツサの速
度は常に高速化の一途を辿つたので、メイン・メモリの
帯域幅は、それらの多くの高性能プロセツサにより求め
られる要求のペースに合わせることができなくなつてき
た。より具体的に言えば、プロセツサとメイン・メモリ
との間の距離は次第に離れざるを得なくなり、しかも、
プロセツサがメイン・メモリにアクセスする回数は益々
増加するので、プロセツサのメモリ・アクセス時間は全
体として増加してくる。従つて、MPシステムにおける
高性能のデータ処理に対して、メイン・メモリの帯域幅
が主要な隘路となつてきた。
【0005】この隘路を取り除くために、プロセツサの
メモリ・アクセスの時間を減少するためのキヤツシユ・
メモリをプロセツサと関連付けることができる。キヤツ
シユ・メモリはこの分野で広く知られている。キヤツシ
ユ・メモリは、コンピユータのプログラミングに対して
実質的に透明であり、ハードウエアで管理される高速度
バツフアである。キヤツシユ・メモリはメイン・メモリ
とキヤツシユ・メモリとの間のデータ転送の基本ユニツ
トであるキヤツシユ・メモリのデータ・ラインを持つデ
ータ・アレイと、データ・アレイ中のデータの位置に関
するデータ・アドレスをマツプするデイレクトリとを含
んでいる。事実、キヤツシユ・メモリのデータ・ライン
はインストラクシヨンか、または実際のデータの何れか
であり得る。更に、キヤツシユ・メモリはメイン・メモ
リの速度よりも10倍以上の高い速度を持つており、通
常は、キヤツシユ・メモリに関連するプロセツサが有す
る高い速度と同じ速度である。
メモリ・アクセスの時間を減少するためのキヤツシユ・
メモリをプロセツサと関連付けることができる。キヤツ
シユ・メモリはこの分野で広く知られている。キヤツシ
ユ・メモリは、コンピユータのプログラミングに対して
実質的に透明であり、ハードウエアで管理される高速度
バツフアである。キヤツシユ・メモリはメイン・メモリ
とキヤツシユ・メモリとの間のデータ転送の基本ユニツ
トであるキヤツシユ・メモリのデータ・ラインを持つデ
ータ・アレイと、データ・アレイ中のデータの位置に関
するデータ・アドレスをマツプするデイレクトリとを含
んでいる。事実、キヤツシユ・メモリのデータ・ライン
はインストラクシヨンか、または実際のデータの何れか
であり得る。更に、キヤツシユ・メモリはメイン・メモ
リの速度よりも10倍以上の高い速度を持つており、通
常は、キヤツシユ・メモリに関連するプロセツサが有す
る高い速度と同じ速度である。
【0006】プロセツサに関連するキヤツシユ・メモリ
の長所と、関連するプロセツサにおいて実行されるプロ
グラム構造の長所とを取り入れることによつて、システ
ムの性能は向上される。プログラム中のインストラクシ
ヨン・セツトの中の多くのインストラクシヨンは繰り返
しが多い。キヤツシユ・メモリはキヤツシユ・ラインに
よつて充填することができる。キヤツシユ・ラインは、
キヤツシユ・ラインの再充填が必要とされる前の或る時
間の間、データ・ワード及びインストラクシヨンを必要
とするプロセツサの要求に答えることができる。換言す
れば、プロセツサは、キヤツシユ・ラインよりも遥かに
短いデータ・ワード(即ち、ワード、dワード、または
バイト)を要求すると言うことである。また、プロセツ
サにより、データ・ワードがキヤツシユ・メモリに求め
られて、データ・ワードがキヤツシユ・メモリのデータ
・ライン中に見出された場合、キヤツシユ「ヒツト」が
生じたと言われる。プロセツサにより、データ・ワード
がキヤツシユ・メモリに求められて、データ・ワードが
キヤツシユ・メモリのデータ・ライン中に見出されない
場合、キヤツシユ「ミス」が生じたと言われ、その結
果、キヤツシユ・メモリの再充填が求められる。キヤツ
シユ・メモリは、本質的には、プロセツサとメイン・メ
モリとの間にある容量の大きいバツフアとして用いられ
る記憶装置である。
の長所と、関連するプロセツサにおいて実行されるプロ
グラム構造の長所とを取り入れることによつて、システ
ムの性能は向上される。プログラム中のインストラクシ
ヨン・セツトの中の多くのインストラクシヨンは繰り返
しが多い。キヤツシユ・メモリはキヤツシユ・ラインに
よつて充填することができる。キヤツシユ・ラインは、
キヤツシユ・ラインの再充填が必要とされる前の或る時
間の間、データ・ワード及びインストラクシヨンを必要
とするプロセツサの要求に答えることができる。換言す
れば、プロセツサは、キヤツシユ・ラインよりも遥かに
短いデータ・ワード(即ち、ワード、dワード、または
バイト)を要求すると言うことである。また、プロセツ
サにより、データ・ワードがキヤツシユ・メモリに求め
られて、データ・ワードがキヤツシユ・メモリのデータ
・ライン中に見出された場合、キヤツシユ「ヒツト」が
生じたと言われる。プロセツサにより、データ・ワード
がキヤツシユ・メモリに求められて、データ・ワードが
キヤツシユ・メモリのデータ・ライン中に見出されない
場合、キヤツシユ「ミス」が生じたと言われ、その結
果、キヤツシユ・メモリの再充填が求められる。キヤツ
シユ・メモリは、本質的には、プロセツサとメイン・メ
モリとの間にある容量の大きいバツフアとして用いられ
る記憶装置である。
【0007】メモリ・スペースを共有するか、または大
域メモリを持つ多くのプロセツサを有するMPシステム
において、MPシステムは、共有されたメモリ・スペー
ス中のすべてのデータの間の「整合性」、即ちデータの
一貫性を維持していなければならない。データは、メイ
ン・メモリや、キヤツシユ・メモリのような他の遠隔位
置に置かれたメモリを含んで幾つかの異なつたメモリ位
置の中に存在することがあり得る。
域メモリを持つ多くのプロセツサを有するMPシステム
において、MPシステムは、共有されたメモリ・スペー
ス中のすべてのデータの間の「整合性」、即ちデータの
一貫性を維持していなければならない。データは、メイ
ン・メモリや、キヤツシユ・メモリのような他の遠隔位
置に置かれたメモリを含んで幾つかの異なつたメモリ位
置の中に存在することがあり得る。
【0008】データの「整合性」は、各プロセツサが、
共有メモリの特定のアドレスに対応する最新のデータに
アクセスしなければならない概念を対象としている。つ
まり、或るアドレスにあるデータ・ワードが1つ、また
はそれ以上のキヤツシユ・メモリ及び/又はメイン・メ
モリによつて、同時に共有されている場合に、上述のメ
モリ位置の1つの位置において、データ・ワードが更
新、または変更された時、データの一貫性を維持するた
めに、そのデータ・ワードの最新のバージヨンは、すべ
てのプロセツサにより識別され、かつ利用可能にされな
ければならない。本明細書において、用語「データ」と
は、インストラクシヨン、または実際に処理されるデー
タとか、未処理のデータなどを含んで、メモリ中にスト
アされたあらゆる情報を意味する。
共有メモリの特定のアドレスに対応する最新のデータに
アクセスしなければならない概念を対象としている。つ
まり、或るアドレスにあるデータ・ワードが1つ、また
はそれ以上のキヤツシユ・メモリ及び/又はメイン・メ
モリによつて、同時に共有されている場合に、上述のメ
モリ位置の1つの位置において、データ・ワードが更
新、または変更された時、データの一貫性を維持するた
めに、そのデータ・ワードの最新のバージヨンは、すべ
てのプロセツサにより識別され、かつ利用可能にされな
ければならない。本明細書において、用語「データ」と
は、インストラクシヨン、または実際に処理されるデー
タとか、未処理のデータなどを含んで、メモリ中にスト
アされたあらゆる情報を意味する。
【0009】データの整合性を維持するために、ソフト
ウエアのアプローチ及びハードウエアのアプローチの両
方が通常の方法で用いられている。更に、ハードウエア
のアプローチは、通常、2つのタイプ、即ちバス・ベー
ス(「スヌーピー」)のプロトコルと、デイレクトリ・
ベースのプロトコルとの2つに分けられる。バス・ベー
スのプロトコルは、プロセツサの数が比較的少ないMP
システムに用いられているのに反して、デイレクトリ・
ベースのプロトコルは、改良されたスケーラビリテイ
(scalability)を有するMPシステムに使用される。
この理由は、最近の傾向がMINの共通使用を指向した
多数の並列処理用プロセツサを使用する方向にあるから
である。
ウエアのアプローチ及びハードウエアのアプローチの両
方が通常の方法で用いられている。更に、ハードウエア
のアプローチは、通常、2つのタイプ、即ちバス・ベー
ス(「スヌーピー」)のプロトコルと、デイレクトリ・
ベースのプロトコルとの2つに分けられる。バス・ベー
スのプロトコルは、プロセツサの数が比較的少ないMP
システムに用いられているのに反して、デイレクトリ・
ベースのプロトコルは、改良されたスケーラビリテイ
(scalability)を有するMPシステムに使用される。
この理由は、最近の傾向がMINの共通使用を指向した
多数の並列処理用プロセツサを使用する方向にあるから
である。
【0010】デイレクトリ・ベースのプロトコルに関し
て、データ間の整合性、即ち、データの一貫性を保証す
るために、MPシステムが動作している間において、
「交互質問(cross interrogation)」がキヤツシユ・
メモリの間で遂行される。「交互質問」は異なつたプロ
トコルのうちの任意の1つを用いて実行される。通常、
交互質問は、キヤツシユ・ラインの転送及び/又はキヤ
ツシユのデイレクトリ中の制御ビツトの処理を含んでい
る。
て、データ間の整合性、即ち、データの一貫性を保証す
るために、MPシステムが動作している間において、
「交互質問(cross interrogation)」がキヤツシユ・
メモリの間で遂行される。「交互質問」は異なつたプロ
トコルのうちの任意の1つを用いて実行される。通常、
交互質問は、キヤツシユ・ラインの転送及び/又はキヤ
ツシユのデイレクトリ中の制御ビツトの処理を含んでい
る。
【0011】交互質問のために実行されるプロトコル
は、MPシステムの中で使用されるキヤツシユ・メモリ
のタイプに大きく依存している。通常、キヤツシユ・メ
モリは、「書き込み(write-thru−WT)」タイプか、
または、「書き戻し(write-back−WB)」タイプの何
れかに分類されている。更に、従来の技術に従つた或る
種のキヤツシユ・メモリは、適正に制御されるならば、
何れのタイプによつてもデータを取り扱う能力を持つて
いる。
は、MPシステムの中で使用されるキヤツシユ・メモリ
のタイプに大きく依存している。通常、キヤツシユ・メ
モリは、「書き込み(write-thru−WT)」タイプか、
または、「書き戻し(write-back−WB)」タイプの何
れかに分類されている。更に、従来の技術に従つた或る
種のキヤツシユ・メモリは、適正に制御されるならば、
何れのタイプによつてもデータを取り扱う能力を持つて
いる。
【0012】WTキヤツシユ・メモリにおいて、データ
・ワードは、キヤツシユ・ラインのデータ・ワードをプ
ロセツサによつて更新し、或は変更する度毎に、メイン
・メモリに「書き込み」が行なわれる。従つて、最も新
しいデータは、常に、メイン・メモリ中に存在する。
・ワードは、キヤツシユ・ラインのデータ・ワードをプ
ロセツサによつて更新し、或は変更する度毎に、メイン
・メモリに「書き込み」が行なわれる。従つて、最も新
しいデータは、常に、メイン・メモリ中に存在する。
【0013】WBキヤツシユ・メモリにおいては、WB
キヤツシユ・メモリ中のデータ・ワードが遠隔地の装置
によつて要求された時とか、またはデータ・ワードがキ
ヤツシユ・メモリ中で置換された時にのみ、そのデータ
・ワードは、WBキヤツシユ・メモリからメイン・メモ
リに書き込まれる。その結果、地域的なプロセツサがそ
れ自身に関連した地域的なWBキヤツシユ・メモリ中の
データ・ワードを変更した場合、MPシステム中の他の
メモリ・ロケーシヨンがその変更を知ることなく、ある
いはその変更により割り込まれることなく、地域的なプ
ロセツサは、その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)等の文献を参照されたい。
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システム中の有
用な仕事を行なうプロセツサの数を減少することにな
る。
ム中に付加されると、交互質問の実行回数は更に増加す
る。その結果、キヤツシユ・メモリとの対話はより多く
発生し、処理時間が長くなり、そして、MPシステムの
相互接続ネツトワークの通信は混雑することになる。従
つて、要求される多数の交互質問はMPシステム中の有
用な仕事を行なうプロセツサの数を減少することにな
る。
【0017】
【課題を解決するための手段】本発明は、キヤツシユ・
メモリ、共有されたメモリ及びMINを有するMPシス
テムの大域デイレクトリにおいて、修正ワード用バツフ
ア及びライン用バツフアを設けている。大域デイレクト
リは、キヤツシユ・ラインの状態及び制御に関する情報
をストアし、かつ、修正ワード用バツフア及びライン用
バツフアを制御するように構成される。
メモリ、共有されたメモリ及びMINを有するMPシス
テムの大域デイレクトリにおいて、修正ワード用バツフ
ア及びライン用バツフアを設けている。大域デイレクト
リは、キヤツシユ・ラインの状態及び制御に関する情報
をストアし、かつ、修正ワード用バツフア及びライン用
バツフアを制御するように構成される。
【0018】本発明に従つて、要求側のキヤツシユ・メ
モリは、最初に、キヤツシユ・ラインの大域デイレクト
リに要求を送る。大域デイレクトリは、データ・ライン
が修正されており、供給側のキヤツシユ・メモリ中に存
在することを決定する。
モリは、最初に、キヤツシユ・ラインの大域デイレクト
リに要求を送る。大域デイレクトリは、データ・ライン
が修正されており、供給側のキヤツシユ・メモリ中に存
在することを決定する。
【0019】次に、キヤツシユ・ライン中の修正された
ワードだけを書き戻すための要求が大域デイレクトリか
ら供給側のキヤツシユ・メモリに送られ、これと同時
に、メモリから古いキヤツシユ・ラインを転送するため
の要求が、大域デイレクトリからメモリに送られる。
ワードだけを書き戻すための要求が大域デイレクトリか
ら供給側のキヤツシユ・メモリに送られ、これと同時
に、メモリから古いキヤツシユ・ラインを転送するため
の要求が、大域デイレクトリからメモリに送られる。
【0020】更に、修正されたワードの書き戻しの間
で、修正されたワードは大域デイレクトリの修正ワード
用バツフアによつて獲得され、そして、これと同時に、
メモリからの古いキヤツシユ・ラインが大域デイレクト
リのライン用バツフア中にストアされる。古いキヤツシ
ユ・ラインは、修正されたキヤツシユ・ラインが持つア
ドレスの識別子(identity)と対応するけれども、古い
キヤツシユ・ラインはキヤツシユ・ラインの最新のバー
ジヨンではないから、古いキヤツシユ・ラインの部分は
使用しない。
で、修正されたワードは大域デイレクトリの修正ワード
用バツフアによつて獲得され、そして、これと同時に、
メモリからの古いキヤツシユ・ラインが大域デイレクト
リのライン用バツフア中にストアされる。古いキヤツシ
ユ・ラインは、修正されたキヤツシユ・ラインが持つア
ドレスの識別子(identity)と対応するけれども、古い
キヤツシユ・ラインはキヤツシユ・ラインの最新のバー
ジヨンではないから、古いキヤツシユ・ラインの部分は
使用しない。
【0021】最後に、修正されたキヤツシユ・ライン全
体は、大域デイレクトリから要求側のキヤツシユ・メモ
リに転送され、修正されたワードは修正ワード用バツフ
アによつて供給され、そして、キヤツシユ・ラインの残
りはライン用バツフアによつて供給される。
体は、大域デイレクトリから要求側のキヤツシユ・メモ
リに転送され、修正されたワードは修正ワード用バツフ
アによつて供給され、そして、キヤツシユ・ラインの残
りはライン用バツフアによつて供給される。
【0022】本発明は上述のように従来の技術の欠点を
克服し、更に、以下のような利点を持つている。
克服し、更に、以下のような利点を持つている。
【0023】本発明は、MPシステムにおいて、デイレ
クトリ・ベースの整合性プロトコルのために、非常に好
ましく、かつ高性能の書き戻し方式を与える。
クトリ・ベースの整合性プロトコルのために、非常に好
ましく、かつ高性能の書き戻し方式を与える。
【0024】これを具体的に言えば、本発明は、2つの
動作、即ち(1)大域デイレクトリとメモリとの間のデ
ータ・ライン転送動作と、(2)プロセツサからメモリ
への書き戻し動作の2つの動作を同時に行なわせること
によつて、MPシステムの性能を改善する。
動作、即ち(1)大域デイレクトリとメモリとの間のデ
ータ・ライン転送動作と、(2)プロセツサからメモリ
への書き戻し動作の2つの動作を同時に行なわせること
によつて、MPシステムの性能を改善する。
【0025】上述の同時に起きる動作の結果として、プ
ロセツサからの読み取り要求を処理するために必要とさ
れる時間は非常に減少される(約44%の減少)。その
理由は、データ・ライン要求を処理するために、メモリ
の待ち時間の大部分が取り除かれるためである。従来の
プロトコルにおいては、修正されたすべてのワードがメ
モリに書き戻された後にだけ、データ・ラインが要求側
のキヤツシユ・メモリに転送されるので、遅延が生じ
る。
ロセツサからの読み取り要求を処理するために必要とさ
れる時間は非常に減少される(約44%の減少)。その
理由は、データ・ライン要求を処理するために、メモリ
の待ち時間の大部分が取り除かれるためである。従来の
プロトコルにおいては、修正されたすべてのワードがメ
モリに書き戻された後にだけ、データ・ラインが要求側
のキヤツシユ・メモリに転送されるので、遅延が生じ
る。
【0026】総括的に言えば、本発明はデータの整合性
を維持するために必要とする時間を減少し、従つて、M
Pシステムに対するより多くのプロセツサを付加する場
合に生じる性能低下が小さい。換言すれば、本発明によ
つて、MPシステムに付加することのできるプロセツサ
の数を効果的に高めることができる。
を維持するために必要とする時間を減少し、従つて、M
Pシステムに対するより多くのプロセツサを付加する場
合に生じる性能低下が小さい。換言すれば、本発明によ
つて、MPシステムに付加することのできるプロセツサ
の数を効果的に高めることができる。
【0027】
【実施例】図1は本発明を適用することのできる多重プ
ロセツサ(MP)のアーキテクチヤ100のブロツク図
が示されている。多重プロセツサのアーキテクチヤ10
0は、関連するp個のキヤツシユ・メモリ112乃至1
16を有するP個のプロセツサ102乃至106を含ん
でいる。p個のキヤツシユ・メモリ112乃至116
は、キヤツシユ・メモリの複数の概念的なレベルを含ん
でいるが、この概念的なレベルは公知である。
ロセツサ(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を持つている。既に述べたように、大域デイ
レクトリは、データの整合性を維持するのに使用する技
術分野で公知である。
段相互接続ネツトワーク(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スイツチの数も同様に増
加する。
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構造を取ることができる。
に示してある。図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と関連するキヤツシユ・メモリの
中にコピーするために必要な通常のステツプを説明する
ものである。
プロセツサ・システムにおいてデータの整合性を維持す
るための通常のプロトコルは、図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と
関連するキヤツシユ・メモリに書き込まれなければなら
ない。
ユール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を次々に通つて移動する。
ータ・ラインLの読み取りを先ず要求する。図4を参照
すると、「読み取り要求」はMIN200を通してプロ
セツサP6から転送され、最終的には、参照数字420
で示されたメモリ・モジユール4と関連された参照数字
410で示された大域デイレクトリ4に到着する。MI
N200において、読み取り要求は、大域デイレクトリ
GD4に到達するために、図示されたように、スイツチ
216、222及び234を次々に通つて移動する。
【0035】第2のステツプは、図5を参照して説明す
る。大域デイレクトリ4はプロセツサP2に「書き戻し
要求」を送る。この書き戻し要求は、プロセツサP2に
届けられるように、スイツチ234、222及び212
を次々に通つて移動する。
る。大域デイレクトリ4はプロセツサP2に「書き戻し
要求」を送る。この書き戻し要求は、プロセツサP2に
届けられるように、スイツチ234、222及び212
を次々に通つて移動する。
【0036】第3のステツプは図6を参照して説明す
る。プロセツサP2はラインLの修正されたデータをス
イツチ212、222及び234を通してメモリ・モジ
ユールM4に転送する。
る。プロセツサP2はラインLの修正されたデータをス
イツチ212、222及び234を通してメモリ・モジ
ユールM4に転送する。
【0037】第4のステツプは図7を参照して説明す
る。大域デイレクトリGD4は、メモリ・モジユールM4
からプロセツサP6へ、データ・ラインLを転送するこ
とを要求する。
る。大域デイレクトリGD4は、メモリ・モジユールM4
からプロセツサP6へ、データ・ラインLを転送するこ
とを要求する。
【0038】M4からP6なデータ・ラインLを転送する
経路を示す図8に示された最後のステツプにおいて、デ
ータ・ラインLは、スイツチ234、222及び216
を次々に通つてメモリ・モジユールM4からプロセツサ
P6に転送される。
経路を示す図8に示された最後のステツプにおいて、デ
ータ・ラインLは、スイツチ234、222及び216
を次々に通つてメモリ・モジユールM4からプロセツサ
P6に転送される。
【0039】性能の観点から見ると、上述のプロトコル
を実施するために費された時間は、可成り長い時間を必
要とする。2*2スイツチ212乃至238のスイツチ
時間は、通常、約1クロツク・サイクルを必要とする。
例えば、大域デイレクトリ410のアクセス時間は約1
クロツク・サイクルである。更にメモリ・モジユール4
20のアクセス時間は、約6クロツク・サイクルを必要
とする。
を実施するために費された時間は、可成り長い時間を必
要とする。2*2スイツチ212乃至238のスイツチ
時間は、通常、約1クロツク・サイクルを必要とする。
例えば、大域デイレクトリ410のアクセス時間は約1
クロツク・サイクルである。更にメモリ・モジユール4
20のアクセス時間は、約6クロツク・サイクルを必要
とする。
【0040】上述のスイツチ時間及びアクセス時間が通
常の整合性プロトコルに適用可能であるとして、図4乃
至図8で説明された整合性プロトコルを遂行するのに必
要な時間は、下記の表1に示された分析に基くと、約2
5クロツク・サイクルである。
常の整合性プロトコルに適用可能であるとして、図4乃
至図8で説明された整合性プロトコルを遂行するのに必
要な時間は、下記の表1に示された分析に基くと、約2
5クロツク・サイクルである。
【0041】 表1 整合性プロト 2*2スイツ 大域デイレク メモリ・モジ 合計時間 コルのステツ チのスイツチ トリGD4の ユールM4の プの順番 時間(クロツ アクセス時間 アクセス時間 ク・サイクル (クロツク・ (クロツク・ ) サイクル) サイクル) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 3 1 0 4 2 3 0 0 3 3 3 3 6 9 4 0 0 6 6 5 3 0 0 3 25
【0042】図9は、本発明に従つた大域デイレクトリ
500の高レベルのブロツク図である。この大域デイレ
クトリ500のために、所望の性能の向上を達成するの
に最適な書き戻しプロトコルを実行することができる。
500の高レベルのブロツク図である。この大域デイレ
クトリ500のために、所望の性能の向上を達成するの
に最適な書き戻しプロトコルを実行することができる。
【0043】図示されているように、本発明の新規な大
域デイレクトリ500は状態及び制御ブロツク502
と、コントローラ506と関連したライン用バツフア5
04と、コントローラ510と関連した修正ワード用バ
ツフア508とを持つている。本発明の顕著な特徴は、
これらのバツフアは、修正されたデータがメモリ中にス
トアされる前に、メモリに差し向けられる、即ちメモリ
に書き戻されるキヤツシユ・ラインの修正されたワード
を捕獲し、ストアするライン用バツフア504及び修正
ワード用バツフア508を含ませたことにある。
域デイレクトリ500は状態及び制御ブロツク502
と、コントローラ506と関連したライン用バツフア5
04と、コントローラ510と関連した修正ワード用バ
ツフア508とを持つている。本発明の顕著な特徴は、
これらのバツフアは、修正されたデータがメモリ中にス
トアされる前に、メモリに差し向けられる、即ちメモリ
に書き戻されるキヤツシユ・ラインの修正されたワード
を捕獲し、ストアするライン用バツフア504及び修正
ワード用バツフア508を含ませたことにある。
【0044】図9の新規な大域デイレクトリ500の低
レベルのブロツク図を示した図10を参照して、上述の
本発明の特徴の細部を以下に説明する。
レベルのブロツク図を示した図10を参照して、上述の
本発明の特徴の細部を以下に説明する。
【0045】図10に示されているように、大域デイレ
クトリ500の状態及び制御ブロツク502はN個の状
態ラインを含んでいる。N個の状態ラインはMPシステ
ム中のキヤツシユ・ラインを監視する。N個の状態ライ
ンは、MPシステム、またはそのサブセツト中のすべて
のキヤツシユ・ラインと対応させることができる。MP
システムのサブセツトの場合には、残りの状態ラインは
他のメモリ位置にストアして、必要な時に検索すること
ができる。
クトリ500の状態及び制御ブロツク502はN個の状
態ラインを含んでいる。N個の状態ラインはMPシステ
ム中のキヤツシユ・ラインを監視する。N個の状態ライ
ンは、MPシステム、またはそのサブセツト中のすべて
のキヤツシユ・ラインと対応させることができる。MP
システムのサブセツトの場合には、残りの状態ラインは
他のメモリ位置にストアして、必要な時に検索すること
ができる。
【0046】N個の状態ラインの各々は、参照数字60
2で示されたように、大域デイレクトリの状態及び制御
ブロツク502によつて処理することのできる複数個の
標識を含んでいる。例えば、N個の状態ラインの各々は
デイレクトリ・タグ(dtag)604を持つている。
dtag604はキヤツシユ・ラインを特に識別するた
めの単なるバイナリ・コードである。
2で示されたように、大域デイレクトリの状態及び制御
ブロツク502によつて処理することのできる複数個の
標識を含んでいる。例えば、N個の状態ラインの各々は
デイレクトリ・タグ(dtag)604を持つている。
dtag604はキヤツシユ・ラインを特に識別するた
めの単なるバイナリ・コードである。
【0047】N個の状態ラインの各々は大域デイレクト
リの状態(gstats)標識606を持つている。良
好な実施例において、大域デイレクトリの状態標識60
6は、合計4つの異なつた大域デイレクトリの状態、即
ち「排他的」状態と、「排他的修正(EXM)」状態
と、「読み取り専用」状態と、MPシステムのp個のキ
ヤツシユ・メモリのすべてにおいて「存在せず」状態と
を表示するために、2つのビツトを含んでいる。
リの状態(gstats)標識606を持つている。良
好な実施例において、大域デイレクトリの状態標識60
6は、合計4つの異なつた大域デイレクトリの状態、即
ち「排他的」状態と、「排他的修正(EXM)」状態
と、「読み取り専用」状態と、MPシステムのp個のキ
ヤツシユ・メモリのすべてにおいて「存在せず」状態と
を表示するために、2つのビツトを含んでいる。
【0048】参照数字608乃至610で示したよう
に、プロセツサ識別子(PID)は、どのプロセツサが
状態ライン602に対応するかを表示する。例えば、
「PIDx(log2P)」は、p個のプロセツサのうち
のプロセツサ「x」が状態ライン602に対応すること
を表わしている。
に、プロセツサ識別子(PID)は、どのプロセツサが
状態ライン602に対応するかを表示する。例えば、
「PIDx(log2P)」は、p個のプロセツサのうち
のプロセツサ「x」が状態ライン602に対応すること
を表わしている。
【0049】N個の状態ラインの各々は、状態ラインが
書き戻しを待つている状態(WTEVENT)なのか、
或は、プロセツサから発生した他の状態を待つているの
かを特定する状態標識612を持つている。良好な実施
例において、WTEVENT標識612は単一のビツト
である。若し、状態ラインが書き戻しを待つている間
に、状態ラインによつて識別されたデータ・ラインの要
求が発生したならば、その要求は、書き戻しが発生され
るまで、大域デイレクトリによつて処理されない。
書き戻しを待つている状態(WTEVENT)なのか、
或は、プロセツサから発生した他の状態を待つているの
かを特定する状態標識612を持つている。良好な実施
例において、WTEVENT標識612は単一のビツト
である。若し、状態ラインが書き戻しを待つている間
に、状態ラインによつて識別されたデータ・ラインの要
求が発生したならば、その要求は、書き戻しが発生され
るまで、大域デイレクトリによつて処理されない。
【0050】最後に、N個の状態ラインの各々は、書き
戻しを発生させた状態を特定する要求状態(RQEVE
NT)標識614を持つている。良好な実施例におい
て、RQEVENT標識614は、3つの状態、即ち
「読み取り要求」状態と、「ストア要求」状態と、「修
正要求」状態のために、2つのビツトを含んでいる。
戻しを発生させた状態を特定する要求状態(RQEVE
NT)標識614を持つている。良好な実施例におい
て、RQEVENT標識614は、3つの状態、即ち
「読み取り要求」状態と、「ストア要求」状態と、「修
正要求」状態のために、2つのビツトを含んでいる。
【0051】ライン用バツフア504は、特別のタグが
先頭に置かれたデータを含む「S」データ・ラインを持
つている。更に、修正ワード用バツフア508は、特別
のタグが先頭に置かれたデータを含む「T」データ・ワ
ードを持つている。
先頭に置かれたデータを含む「S」データ・ラインを持
つている。更に、修正ワード用バツフア508は、特別
のタグが先頭に置かれたデータを含む「T」データ・ワ
ードを持つている。
【0052】図4乃至図8を参照して説明した従来のプ
ロトコルとは対照的に異なつているMPシステムにおけ
るデータの整合性を維持するための新規なプロトコル
を、図11乃至図14を参照して以下に説明する。図1
1乃至図14は、図4乃至図8と同じように、8プロセ
ツサ・システムを対象としている。プロセツサの数(即
ち、8)は説明を単純にするために選ばれた任意に決め
られる数である。図11乃至図14は、プロセツサP6
と関連したキヤツシユ・メモリにおいて、プロセツサP
2によつて排他的に所有されている修正されたデータ・
ラインLをコピーするためのステツプを順番に並べて示
してある。
ロトコルとは対照的に異なつている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のコピーを、プロセツサ
P2が持つていることを表示する。これをより具体的に
言えば、状態ライン702のプロセツサ標識子(PI
D)は、「PID2(log2P)」であり、プロセツサ
P2がデータ・ラインを持つていることを表示する。更
に、参照数字704で示されているように、ラインLが
排他的に修正(EXM)されたことを表示するように、
大域デイレクトリの状態(gstats)標識がセツト
される。
域デイレクトリ500の状態及び制御ブロツク502に
おいて、修正データ・ラインLに対応する状態ライン7
02(N個のうちの1つのデータ・ライン)は、排他的
に修正されたデータ・ラインLのコピーを、プロセツサ
P2が持つていることを表示する。これをより具体的に
言えば、状態ライン702のプロセツサ標識子(PI
D)は、「PID2(log2P)」であり、プロセツサ
P2がデータ・ラインを持つていることを表示する。更
に、参照数字704で示されているように、ラインLが
排他的に修正(EXM)されたことを表示するように、
大域デイレクトリの状態(gstats)標識がセツト
される。
【0054】図11を参照すると、スイツチ216、2
22及び234を通して、読み取り要求(ステツプ1)
がプロセツサP6から大域デイレクトリGD4に送られ
る。大域デイレクトリ500の制御ブロツク502は、
特別のタグ706を通して、読み取り要求を特定の状態
ライン702に一致させる。大域デイレクトリGD4の
制御ブロツクはPIDの状態及びgstatsを認識す
るので、その制御ブロツクは、プロセツサP2が排他的
に修正されたデータ・ラインLを持つていることを認識
する。
22及び234を通して、読み取り要求(ステツプ1)
がプロセツサP6から大域デイレクトリGD4に送られ
る。大域デイレクトリ500の制御ブロツク502は、
特別のタグ706を通して、読み取り要求を特定の状態
ライン702に一致させる。大域デイレクトリGD4の
制御ブロツクはPIDの状態及びgstatsを認識す
るので、その制御ブロツクは、プロセツサP2が排他的
に修正されたデータ・ラインLを持つていることを認識
する。
【0055】図12に示されているように、書き込み要
求(ステツプ2)は、夫々スイツチ234、222及び
212を介して大域デイレクトリGD4からプロセツサ
P2に送られる。上述の動作と同時に、矢印708で示
されているように、大域デイレクトリGD4からメモリ
・モジユールM4に、転送要求が送られる。本質的に
は、転送要求は、メモリ・モジユールM4からデータ・
ラインLの転送を大域デイレクトリGD4に要請する。
求(ステツプ2)は、夫々スイツチ234、222及び
212を介して大域デイレクトリGD4からプロセツサ
P2に送られる。上述の動作と同時に、矢印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は、
P6が読み取り要求を送つたので、「読み取り要求」の
ためのRQEVENT標識614をセツトする。
リ500の大域デイレクトリの状態及び制御ブロツク5
02はWTEVENT標識612及びRQEVENT標
識614を処理する。データを書き戻すためのプロセツ
サを待つている状態であることを、大域デイレクトリの
状態及び制御ブロツク502が表示するために、大域デ
イレクトリの状態及び制御ブロツク502はWTEVE
NT標識612をセツトする。このことを別の面から言
うと、大域デイレクトリの状態及び制御ブロツク502
がデータ・ラインを修正するためにプロセツサP2を待
つている間で、状態ライン702によつて表示されたデ
ータ・ラインのすべての要求は、プロセツサP2からの
書き戻しが発生するまで、大域デイレクトリの状態及び
制御ブロツク502によつて処理されないことを意味す
る。更に、大域デイレクトリの制御ブロツク502は、
P6が読み取り要求を送つたので、「読み取り要求」の
ための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を受け取る。
プの間で、修正されたデータ・ライン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に転送するた
めに、プロトコルの次のステツプにおいて、ビツト・ベ
クトルによつて供給される情報を使用する。
タ・ラインLを受け取つた時、大域デイレクトリは、何
故大域デイレクトリが修正されたラインLを受け取つた
かを決めるために、RQEVENT標識614をチエツ
クする。この問い合わせを受けると、この例の場合、大
域デイレクトリは、プロセツサP6が読み取り要求を発
生したことを決定する。更に修正されたデータ・ライン
Lのヘツダ中のビツト・ベクトルから、大域デイレクト
リ500は、データ・ラインLのどちらのデータ・ワー
ドが変更されたのかを決定することができる。変更され
たデータ・ワードは修正ワード用バツフア508中にス
トアされ、そしてビツト・ベクトルはライン用バツフア
のコントローラ506に送られる。以下に説明されるよ
うに、ライン用バツフアのコントローラ506は、修正
されないワードを要求側のプロセツサP6に転送するた
めに、プロトコルの次のステツプにおいて、ビツト・ベ
クトルによつて供給される情報を使用する。
【0059】最後に図14に示されているように、本発
明に従つて、修正されたデータ・ラインLは大域デイレ
クトリGD4からプロセツサP6に転送される。修正され
たデータ・ラインLの修正されたワードは、修正ワード
用バツフア508からプロセツサP6に転送され、他
方、データ・ラインLの残りの(変更されなかつた)ワ
ードはライン用バツフア504からプロセツサP6に転
送される。
明に従つて、修正されたデータ・ライン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をセツト
する。
及び制御ブロツク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に示
した分析に基いている。
乃至図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システムを高性能にする。
00に対して、ライン用バツフア504と、修正ワード
用バツフア508とを付加したことは、プロセツサP6
からの読み取り要求を処理するために必要とされる時間
の長さを44%減少する。この理由は、本発明によつ
て、メモリ・モジユールを待つことに含まれた多くの時
間を除去していることによる。従来のプロトコルにおい
て、データ・ラインは、すべての修正されたデータ・ラ
インがメモリ・モジユールM4に書き込まれた後にの
み、要求側のキヤツシユ・メモリに転送される。従つ
て、本発明は、2つの動作、即ち(1)大域デイレクト
リGD4とメモリ・モジユールM4との間のデータ・ライ
ンの転送動作と、(2)プロセツサからメモリへの書き
戻し動作との2つの動作を同時に発生させることによつ
てMPシステムを高性能にする。
【0064】以上、本発明の1実施例を説明してきた
が、例えば、プロセツサ、キヤツシユ・メモリ及びメモ
リ・モジユールの数を上述の実施例とは異なつた数にす
るなどの多くの変更が、この道の専門家によつて容易に
行なうことができるので、本発明の技術的範囲は、上述
の実施例にのみ限定されるものではない。
が、例えば、プロセツサ、キヤツシユ・メモリ及びメモ
リ・モジユールの数を上述の実施例とは異なつた数にす
るなどの多くの変更が、この道の専門家によつて容易に
行なうことができるので、本発明の技術的範囲は、上述
の実施例にのみ限定されるものではない。
【0065】
【発明の効果】本発明により、書き戻しキヤツシユ・メ
モリと、共有されたメイン・メモリに接続された多段相
互接続ネツトワークを含む多重プロセツサ・システムに
おいて、従来の技術に比較してプロセツサの数を増加す
ることができ、処理時間が遥かに速いシステムが与えら
れる。
モリと、共有されたメイン・メモリに接続された多段相
互接続ネツトワークを含む多重プロセツサ・システムに
おいて、従来の技術に比較してプロセツサの数を増加す
ることができ、処理時間が遥かに速いシステムが与えら
れる。
【図1】多段相互接続ネツトワーク(MIN)を通し
て、m個の大域デイレクトリに関連されたメモリ・モジ
ユール(MM)を有するメモリに接続されたp個のプロ
セツサを含む多重プロセツサ・システムのブロツク図で
ある。
て、m個の大域デイレクトリに関連されたメモリ・モジ
ユール(MM)を有するメモリに接続されたp個のプロ
セツサを含む多重プロセツサ・システムのブロツク図で
ある。
【図2】MINは、夫々の段に対して4つの2*2スイ
ツチを持つている8プロセツサ・システムのためのMI
Nの低レベルのブロツク図である。
ツチを持つている8プロセツサ・システムのためのMI
Nの低レベルのブロツク図である。
【図3】入力I、J及び出力P、Qを有する図2に示し
た2*2スイツチと動作を説明するための図である。
た2*2スイツチと動作を説明するための図である。
【図4】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第1のステツプを説明するための図であ
る。
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第1のステツプを説明するための図であ
る。
【図5】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第2のステツプを説明するための図であ
る。
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第2のステツプを説明するための図であ
る。
【図6】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第3のステツプを説明するための図であ
る。
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第3のステツプを説明するための図であ
る。
【図7】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第4のステツプを説明するための図であ
る。
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第4のステツプを説明するための図であ
る。
【図8】3段のMINを有する8プロセツサ・システム
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第5のステツプを説明するための図であ
る。
におけるデータの整合性を維持するための従来のプロト
コルにおいて、プロセツサP6と関連するキヤツシユ・
メモリ中に存在しており、プロセツサP2によつて排他
的に所有されている修正されたデータ・ラインLをコピ
ーするための第5のステツプを説明するための図であ
る。
【図9】本発明に従つた大域デイレクトリの高レベルの
ブロツク図である。
ブロツク図である。
【図10】図2の大域デイレクトリの低レベルのブロツ
ク図である。
ク図である。
【図11】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第1のステツプを説明するため
の図である。
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第1のステツプを説明するため
の図である。
【図12】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第2のステツプを説明するため
の図である。
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第2のステツプを説明するため
の図である。
【図13】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第3のステツプを説明するため
の図である。
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第3のステツプを説明するため
の図である。
【図14】3段のMINを有する8プロセツサ・システ
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサP6と関連するキ
ヤツシユ・メモリ中に存在しており、プロセツサP2に
よつて排他的に所有されている修正されたデータ・ライ
ンLをコピーするための第4のステツプを説明するため
の図である。
ムにおけるデータの整合性を維持するための本発明に従
つたプロトコルにおいて、プロセツサ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 (10)
- 【請求項1】 データ・ラインの転送動作と書き戻し動
作を同時に行なわせることによつて、書き戻しキヤツシ
ユ・メモリと、共有されたメモリに接続された多段相互
接続ネツトワークとを有する多重プロセツサ・システム
の性能を最適化するための装置であつて、 修正されたワードがキヤツシユ・メモリから書き戻され
た時に、すべての修正されたワードをストアするように
構成された修正ワード用バツフアを含むことと、 上記メモリから転送された古いキヤツシユ・ラインをス
トアするように構成されたライン用バツフアを含み、上
記古いキヤツシユ・ラインのアドレス見出しは上記修正
されたキヤツシユ・ラインのアドレスの識別子と対応す
ることと、 上記修正ワード用バツフアと上記ライン用バツフアとに
関連された大域デイレクトリを含み、該大域デイレクト
リは、キヤツシユ・ラインに関する状態情報及び制御情
報をストアするように構成されており、上記キヤツシユ
・メモリから上記修正されたワードの書き戻しを要求す
ると同時に、上記メモリから上記古いキヤツシユ・ライ
ンを要求するように構成されており、そして、上記修正
されたキヤツシユ・ラインを、上記修正ワード用バツフ
ア及び上記ライン用バツフアを組み合せて、要求側のキ
ヤツシユ・メモリに書き込ませるように構成されている
こととを特徴とする多重プロセツサ・システムの性能の
最適化装置。 - 【請求項2】 上記システムの各キヤツシユ・ラインに
対応する上記大域デイレクトリが利用可能な状態ライン
を含んでおり、該状態ラインは特定のキヤツシユ・ライ
ンと、大域デイレクトリの状態と、キヤツシユ・ライン
を所有する1つ、または、それ以上のプロセツサと、状
態ラインが書き戻しを待つている状態にあるか否かを表
示する待ち状態標識と、書き戻し要求が発生したことを
識別する要求状態標識とを特定することを特徴とする請
求項1に記載の多重プロセツサ・システムの性能の最適
化装置。 - 【請求項3】 上記多段相互接続ネツトワークは上記段
の各々の中に4個のスイツチを持つ3つの段を有するこ
とと、上記スイツチは2つの入力と2つの出力を有し、
かつ任意の入力を任意の出力に切り換えるように構成さ
れていることとを特徴とする請求項1に記載の多重プロ
セツサ・システムの性能の最適化装置。 - 【請求項4】 書き戻しキヤツシユと、共有されたメモ
リに接続された多段相互接続ネツトワークとを有する多
重プロセツサ・システムの性能を、データ・ライン転送
動作及び書き戻し動作を同時に行なわせることによつて
最適化する装置において、 キヤツシユ・メモリからの修正されたキヤツシユ・ライ
ンの転送要求と、メモリからの古いキヤツシユ・ライン
の転送要求とを受け取る制御手段を含み、上記古いキヤ
ツシユ・ラインのアドレス識別子は、上記修正されたキ
ヤツシユ・ラインと、上記大域デイレクトリから上記修
正されたキヤツシユ・ラインを転送する上記手段のアド
レス識別子と対応することと、 上記キヤツシユ・メモリから書き戻された修正されたワ
ードを、上記大域デイレクトリにおいて獲得すると同時
に、上記メモリから上記古いキヤツシユ・ラインをスト
アするバツフア手段を含むこととを特徴とする多重プロ
セツサ・システムの性能の最適化装置。 - 【請求項5】 上記修正されたワードをストアするため
に構成された修正ワード用バツフアと、上記古いキヤツ
シユ・ラインをストアするために構成されたライン用バ
ツフアとを含むことを特徴とする請求項4に記載の多重
プロセツサ・システムの性能の最適化装置。 - 【請求項6】 上記システムの各キヤツシユ・ラインに
対応する上記制御手段が利用可能な状態ラインを含み、
該状態ラインの各々は特定のキヤツシユ・ラインと、大
域デイレクトリの状態と、キヤツシユ・ラインを所有す
る1つ、またはそれ以上のプロセツサと、状態ラインが
書き戻しを待つているか否かを表示する待ち状態標識
と、書き戻し要求が生じたことを識別する要求状態標識
とを含むことを特徴とする請求項4に記載の多重プロセ
ツサ・システムの性能の最適化装置。 - 【請求項7】 上記多段相互接続ネツトワークは、上記
段の各々の中に4つのスイツチを持つ3つの段を有する
ことと、上記スイツチは2つの入力と2つの出力を有
し、かつ任意の入力を任意の出力に切り換えるように構
成されていることとを特徴とする請求項4に記載の多重
プロセツサ・システムの性能の最適化装置。 - 【請求項8】 書き戻しキヤツシユ・メモリと、大域デ
イレクトリによつて監視され、共有されたメモリに接続
された多段相互接続ネツトワークとを有する多重プロセ
ツサ・システムの性能を、データ・ライン転送動作と書
き戻し動作とを同時に行なわせて、最適化するための方
法において、 (a) 修正されたキヤツシユ・ラインの大域デイレクト
リを要求するステツプと、 (b) 供給側キヤツシユ・メモリから上記修正されたキ
ヤツシユ・ライン中の修正されたワードの書き戻しを要
求するステツプであつて、上記古いキヤツシユ・ライン
のアドレスの識別子は上記修正されたキヤツシユ・ライ
ンのアドレスの識別子と対応しており、 (c) 上記大域デイレクトリにおいて、上記供給側キヤ
ツシユ・メモリから書き戻された上記修正されたワード
を獲得すると同時に、上記メモリから上記古いキヤツシ
ユ・ラインをストアするステツプと、 (d) 上記大域デイレクトリから上記修正されたキヤツ
シユ・ラインを転送するステツプと を含む多重プロセツサ・システムの性能を最適化する方
法。 - 【請求項9】 ヘツダの中のビツト・ベクトルを使用す
ることによつて修正されたワードを識別するステツプを
含むことを特徴とする請求項8に記載の多重プロセツサ
・システムの性能を最適化する方法。 - 【請求項10】 データが上記修正されたデータ・ライ
ン中で修正されたことを上記大域デイレクトリにおいて
決定するステツプと、上記供給側キヤツシユ・メモリの
アドレスの識別子を決定するステツプとを含むことを特
徴とする請求項8に記載の多重プロセツサ・システムの
性能を最適化する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/704,553 US5313609A (en) | 1991-05-23 | 1991-05-23 | Optimum write-back strategy for directory-based cache coherence protocols |
US704553 | 1991-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05128071A true JPH05128071A (ja) | 1993-05-25 |
JP2516300B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692150A (en) * | 1994-07-28 | 1997-11-25 | Nec Corporation | Cache flash controlling method for cache memory system |
Families Citing this family (85)
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 Company (A Delaware Corporation), Palo Alto | Anordnung mit Duplikat des Cache-Etikettenspeichers |
JPH0816470A (ja) * | 1994-07-04 | 1996-01-19 | Hitachi 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 |
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 |
US5848434A (en) * | 1996-12-09 | 1998-12-08 | Intel Corporation | Method and apparatus for caching state information within a directory-based coherency memory system |
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 |
US6065077A (en) | 1997-12-07 | 2000-05-16 | Hotrail, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
US6516442B1 (en) | 1997-12-07 | 2003-02-04 | Conexant Systems, Inc. | Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system |
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 |
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 |
US6633945B1 (en) | 1997-12-07 | 2003-10-14 | Conexant Systems, Inc. | Fully connected cache coherent multiprocessing systems |
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 |
US7673223B2 (en) * | 2001-06-15 | 2010-03-02 | Qualcomm Incorporated | Node processors for use in parity check decoders |
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 |
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 |
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 |
US6892290B2 (en) * | 2002-10-03 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Linked-list early race resolution mechanism |
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 |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in 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 |
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 |
US6895476B2 (en) * | 2002-10-03 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Retry-based late race resolution mechanism for 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 |
WO2004079563A1 (en) * | 2003-02-26 | 2004-09-16 | Flarion Technologies, Inc. | Soft information scaling for iterative decoding |
US20070234178A1 (en) * | 2003-02-26 | 2007-10-04 | Qualcomm Incorporated | Soft information scaling for interactive decoding |
US7231557B2 (en) * | 2003-04-02 | 2007-06-12 | Qualcomm Incorporated | Methods and apparatus for interleaving 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 |
US7434145B2 (en) * | 2003-04-02 | 2008-10-07 | Qualcomm Incorporated | Extracting soft information 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 |
US7401202B1 (en) | 2004-09-14 | 2008-07-15 | Azul Systems, Inc. | Memory addressing |
US7574556B2 (en) * | 2006-03-20 | 2009-08-11 | International Business Machines Corporation | Wise ordering for writes—combining spatial and temporal locality in write caches |
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 |
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 |
US8484069B2 (en) * | 2008-06-30 | 2013-07-09 | International Business Machines Corporation | Forecasting discovery costs based on complex and incomplete facts |
US8489439B2 (en) * | 2008-06-30 | 2013-07-16 | 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 |
US20100017239A1 (en) * | 2008-06-30 | 2010-01-21 | Eric Saltzman | Forecasting Discovery Costs Using Historic Data |
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)
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 |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
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 |
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 |
-
1991
- 1991-05-23 US US07/704,553 patent/US5313609A/en not_active Expired - Fee Related
-
1992
- 1992-03-12 CA CA002062910A patent/CA2062910C/en not_active Expired - Fee Related
- 1992-04-24 JP JP4106604A patent/JP2516300B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692150A (en) * | 1994-07-28 | 1997-11-25 | Nec Corporation | Cache flash controlling method for cache memory system |
Also Published As
Publication number | Publication date |
---|---|
CA2062910A1 (en) | 1992-11-24 |
US5313609A (en) | 1994-05-17 |
JP2516300B2 (ja) | 1996-07-24 |
CA2062910C (en) | 1998-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2516300B2 (ja) | 多重プロセツサ・システムの性能の最適化装置及び方法 | |
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 | |
EP0817073B1 (en) | A multiprocessing system configured to perform efficient write operations | |
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback 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 | |
US7085897B2 (en) | Memory management for a symmetric multiprocessor computer system | |
US7624236B2 (en) | Predictive early write-back of owned cache blocks in a shared memory computer system | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US20050021913A1 (en) | Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges | |
EP0438211A2 (en) | Cache memory system | |
US20030018739A1 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
JPH06243035A (ja) | コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶 | |
JP2002304328A (ja) | マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム | |
US5584017A (en) | Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location | |
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 | |
US6651157B1 (en) | Multi-processor system and method of accessing data therein | |
JP2746530B2 (ja) | 共有メモリマルチプロセッサ | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US5895496A (en) | System for an method of efficiently controlling memory accesses in a multiprocessor computer system | |
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 | |
US6249843B1 (en) | Store instruction having horizontal memory hierarchy control bits | |
KR100268812B1 (ko) | 분산 공유 메모리 구조를 갖는 다중 프로세서 시스템의 캐시 일관성 유지방법 및 장치 | |
JPH03172943A (ja) | キャッシュメモリ制御方式 |