JPH0272453A - 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム - Google Patents
共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステムInfo
- Publication number
- JPH0272453A JPH0272453A JP1160569A JP16056989A JPH0272453A JP H0272453 A JPH0272453 A JP H0272453A JP 1160569 A JP1160569 A JP 1160569A JP 16056989 A JP16056989 A JP 16056989A JP H0272453 A JPH0272453 A JP H0272453A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- processor
- read
- cache
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims 2
- 238000013479 data entry Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000013256 coordination polymer Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 230000000717 retained 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、一般に、キャッシュメモリを用いたコンピュ
ータシステムに係り、より詳細には、ローカルキャッシ
ュメモリのいずれか又は全てに存在する共有データの多
数のコピーを有するマルチプロセッサコンピュータシス
テムに係る。
ータシステムに係り、より詳細には、ローカルキャッシ
ュメモリのいずれか又は全てに存在する共有データの多
数のコピーを有するマルチプロセッサコンピュータシス
テムに係る。
従来の技術
典型的な単一プロセッサコンピュータシステムのアーキ
テクチャは、ホン・ニューマンのコンピュータモデルの
ある変形であると考えることができる。このモデルによ
れば、命令及びデータが同じメモリに記憶され、プロセ
ッサは、メモリから命令を1つづつフェッチし、命令で
して異されたようにデータに対してオペランドを実行す
る。
テクチャは、ホン・ニューマンのコンピュータモデルの
ある変形であると考えることができる。このモデルによ
れば、命令及びデータが同じメモリに記憶され、プロセ
ッサは、メモリから命令を1つづつフェッチし、命令で
して異されたようにデータに対してオペランドを実行す
る。
プロセッサの速度が増すにつれて、主コンピユータメモ
リのアクセス時間をプロセッサの計算時間に適当に一致
させる方法を見出すことが必要となる。これを達成する
1つの公知方法は、典型的に主メモリよりもアクセス時
間が相当に速いキャッシュメモリを使用することである
が、これは主メモリよりも何倍も高価なものとなる。
リのアクセス時間をプロセッサの計算時間に適当に一致
させる方法を見出すことが必要となる。これを達成する
1つの公知方法は、典型的に主メモリよりもアクセス時
間が相当に速いキャッシュメモリを使用することである
が、これは主メモリよりも何倍も高価なものとなる。
キャッシュメモリは、主メモリに記憶された情報のある
サブセットを含んでおり、処理ユニットとシステムバス
との間に存在して、プロセッサと主メモリとの間にデー
タ路を形成する。プロセッサがそのキャッシュにコピー
された主メモリ位置をアクセスしようと試みるときには
くキャツシュヒツト”)、CPUに所要の値を供給する
のに主メモリへのアクセスが必要とされず、プロセッサ
は非常に迅速に動作を再開することができる。
サブセットを含んでおり、処理ユニットとシステムバス
との間に存在して、プロセッサと主メモリとの間にデー
タ路を形成する。プロセッサがそのキャッシュにコピー
された主メモリ位置をアクセスしようと試みるときには
くキャツシュヒツト”)、CPUに所要の値を供給する
のに主メモリへのアクセスが必要とされず、プロセッサ
は非常に迅速に動作を再開することができる。
一方、プロセッサがキャッシュにコピーされていない主
メモリ位置をアクセスしようと試みるときには(キャッ
ジユバミス″)、主メモリへのアクセスを行なわねばな
らない。この場合、読み取りデータがプロセッサ及びキ
ャッシュの両方に送られ、そのメモリ位置へアクセスす
るためのその後の幾つかの試みによってキャッシュのヒ
ツトが生じるようにされる。このように、プロセッサに
対する効果的なメモリアクセス時間は、キャッシュメモ
リの高速アクセス時間と主メモリの低速なアクセス時間
との間のある値まで減少される。キャッシュメモリは、
通常、主メモリよりも1積重」−小さいので、キャッシ
ュメモリを制御するコンピュータサブシステムは、どの
メモリ位置をどのキャッシュ位置に対応させるか(マツ
ピング機能)そして新たなメモリ位置を既にいっばいの
キャッシュに書き込みべき場合にどのキャッシュ位置を
重畳書き込みすべきであるか(キャッシュ交換アルゴリ
ズム)を決定する方法を使用しなければならない。これ
らの任意の構成を判断しながら選択することによりキャ
ッシュの「ヒツト率」 (キャツシュヒツトを生じるメ
モリアクセス要求のパーセンテージ)が90ないし99
%に達する。
メモリ位置をアクセスしようと試みるときには(キャッ
ジユバミス″)、主メモリへのアクセスを行なわねばな
らない。この場合、読み取りデータがプロセッサ及びキ
ャッシュの両方に送られ、そのメモリ位置へアクセスす
るためのその後の幾つかの試みによってキャッシュのヒ
ツトが生じるようにされる。このように、プロセッサに
対する効果的なメモリアクセス時間は、キャッシュメモ
リの高速アクセス時間と主メモリの低速なアクセス時間
との間のある値まで減少される。キャッシュメモリは、
通常、主メモリよりも1積重」−小さいので、キャッシ
ュメモリを制御するコンピュータサブシステムは、どの
メモリ位置をどのキャッシュ位置に対応させるか(マツ
ピング機能)そして新たなメモリ位置を既にいっばいの
キャッシュに書き込みべき場合にどのキャッシュ位置を
重畳書き込みすべきであるか(キャッシュ交換アルゴリ
ズム)を決定する方法を使用しなければならない。これ
らの任意の構成を判断しながら選択することによりキャ
ッシュの「ヒツト率」 (キャツシュヒツトを生じるメ
モリアクセス要求のパーセンテージ)が90ないし99
%に達する。
然し乍ら、各メモリの使用によるシステム効率の増大に
伴い、データコヒレンスの問題も生じる。即ち、キャッ
シュ位置は、これに対応する主メモリ位置と同じ値を保
持するように確保しなければならない。データコヒレン
スを維持する1つの方法は、当該位置へのメモリ書き込
みアクセスが要求されるたびにキャッシュメモリに含ま
れたデータの変更値をキャッシュメモリ及びそれに対応
する主メモリ位置の両方に書き込むことである。
伴い、データコヒレンスの問題も生じる。即ち、キャッ
シュ位置は、これに対応する主メモリ位置と同じ値を保
持するように確保しなければならない。データコヒレン
スを維持する1つの方法は、当該位置へのメモリ書き込
みアクセスが要求されるたびにキャッシュメモリに含ま
れたデータの変更値をキャッシュメモリ及びそれに対応
する主メモリ位置の両方に書き込むことである。
この方法は、「書き込みスルー」ポリシーと称する。別
のキャッシュコヒレンス技術は、「書き込みバック」ポ
リシーに関するもので、この場合には、対応するキャッ
シュ位置を重畳書き込みしなければならなくなるまで、
変更されたデータ値が低速の主メモリに書き込まれない
ものである。これらのポリシー間で兼ね合いをとる場合
、書き込みスルーポリシーにおいては各書き込みアクセ
スのたびに主メモリを更新する際にメモリサブシステム
レベルでより広い帯域「1」が要求され、一方、117
き込みバックポリシーにおいてはキャッシュコヒレンス
の複雑さが増大する。充分な帯域中を有するシステムに
おいては、書き込みスルーポリシーがその簡単さからし
ばしば好ましいものとなる。
のキャッシュコヒレンス技術は、「書き込みバック」ポ
リシーに関するもので、この場合には、対応するキャッ
シュ位置を重畳書き込みしなければならなくなるまで、
変更されたデータ値が低速の主メモリに書き込まれない
ものである。これらのポリシー間で兼ね合いをとる場合
、書き込みスルーポリシーにおいては各書き込みアクセ
スのたびに主メモリを更新する際にメモリサブシステム
レベルでより広い帯域「1」が要求され、一方、117
き込みバックポリシーにおいてはキャッシュコヒレンス
の複雑さが増大する。充分な帯域中を有するシステムに
おいては、書き込みスルーポリシーがその簡単さからし
ばしば好ましいものとなる。
近年、処理ユニットのコストが下がってきたことにより
、複数のプロセッサが互いに同時に動作し、一方、共通
のシステムバスを介して共通の主メモリスペースをアク
セスするようなホン・ニューマンのマシーン構成から根
本的に異なるものが容易に現われるようになった。各プ
ロセッサは、プロセッサとシステムバスとの間にそれ自
身の私用キャッシュを有することができる。このような
マルチプロセッサシステムでは、キャッシュメモリの使
用が単一プロセッサシステムの場合よりシステム性能に
著しく影響する。というのは、各プロセッサが共通のシ
ステムバスを使用して共有メモリにアクセスするために
他のプロセッサとの競合が生じるからである。又、同様
に、データコヒレンスの問題も顕著なものとなる。とい
うのは、単一の主メモリ位置に記憶された値がいずれか
或いは全てのプロセッサの私用キャッシュメモリに一度
に複写されるからである。ローカルキャッシュメモリの
各々が書き込みバックポリシーを使用する場合には、1
つのプロセッサがあるメモリ位置の値を変更してその変
更をそのキャッシュメモリに書き込むときにいずれかの
他のローカルキャッシュのそのメモリ位置のコピーがそ
の1つのプロセッサによって行なわれた変更を表わすよ
うにシステムがともかく確保しなければならない。
、複数のプロセッサが互いに同時に動作し、一方、共通
のシステムバスを介して共通の主メモリスペースをアク
セスするようなホン・ニューマンのマシーン構成から根
本的に異なるものが容易に現われるようになった。各プ
ロセッサは、プロセッサとシステムバスとの間にそれ自
身の私用キャッシュを有することができる。このような
マルチプロセッサシステムでは、キャッシュメモリの使
用が単一プロセッサシステムの場合よりシステム性能に
著しく影響する。というのは、各プロセッサが共通のシ
ステムバスを使用して共有メモリにアクセスするために
他のプロセッサとの競合が生じるからである。又、同様
に、データコヒレンスの問題も顕著なものとなる。とい
うのは、単一の主メモリ位置に記憶された値がいずれか
或いは全てのプロセッサの私用キャッシュメモリに一度
に複写されるからである。ローカルキャッシュメモリの
各々が書き込みバックポリシーを使用する場合には、1
つのプロセッサがあるメモリ位置の値を変更してその変
更をそのキャッシュメモリに書き込むときにいずれかの
他のローカルキャッシュのそのメモリ位置のコピーがそ
の1つのプロセッサによって行なわれた変更を表わすよ
うにシステムがともかく確保しなければならない。
本発明は、時分割システムバスな介して共通のメモリス
ペースを共有する複数のCPUモジュールと、1つ以上
の■/○モジュールとを備えたマルチプロセッサコンピ
ュータシステムに関する。
ペースを共有する複数のCPUモジュールと、1つ以上
の■/○モジュールとを備えたマルチプロセッサコンピ
ュータシステムに関する。
共通のメモリスペースは、共有システムメモリの一部分
を各々含む複数のメモリモジュールとして構成すること
ができる。CPUモジュールは、命令を実行するプロセ
ッサと、使用キャッシュメモリユニットと、CP[Jモ
ジュールを効率的に制御すると共にCPUモジュールを
システムの他の要素と同期させるための付加的なサポー
トハードウェアとを0111えている。I10モジュー
ルは、システムバスなI10バスにインターフェイスし
て、ディスクドライブやテープドライブやデイスプレィ
装置やプリンタやモデムのような入力/出力装置と転送
を行なえるようにする。
を各々含む複数のメモリモジュールとして構成すること
ができる。CPUモジュールは、命令を実行するプロセ
ッサと、使用キャッシュメモリユニットと、CP[Jモ
ジュールを効率的に制御すると共にCPUモジュールを
システムの他の要素と同期させるための付加的なサポー
トハードウェアとを0111えている。I10モジュー
ルは、システムバスなI10バスにインターフェイスし
て、ディスクドライブやテープドライブやデイスプレィ
装置やプリンタやモデムのような入力/出力装置と転送
を行なえるようにする。
マルチプロセッサシステムの分野で一般に知られている
ように、システムバスにインターフェイスされたモジュ
ールは、ヌル、読み取り、書き込み及び読み取りデータ
トランザクションの4s類のトランザクションのうちの
1つをバスにおいて開始することができる。これらトラ
ンザクションの1つをバスにおいて行なう時間をバスサ
イクルと称する。ヌルトランザクションは、バスを要求
するモジュールがないときに生じ、全てのモジュールに
よって無視される。読み取りトランザクションは、CP
U又はI10モジュールがメモリデータを返送する要求
をメモリモジ・ニールに送信。
ように、システムバスにインターフェイスされたモジュ
ールは、ヌル、読み取り、書き込み及び読み取りデータ
トランザクションの4s類のトランザクションのうちの
1つをバスにおいて開始することができる。これらトラ
ンザクションの1つをバスにおいて行なう時間をバスサ
イクルと称する。ヌルトランザクションは、バスを要求
するモジュールがないときに生じ、全てのモジュールに
よって無視される。読み取りトランザクションは、CP
U又はI10モジュールがメモリデータを返送する要求
をメモリモジ・ニールに送信。
するものである。書き込みトランザクションは。
CPU又はI10モジュールが新たなメモリデータを書
き込むための要求をメモリモジュールに送信するもので
ある。読み取りデータトランザクションは、メモリモジ
ュールがデータをCPUに返送するか又はI10モジュ
ールが手前の読み取りトランザクションに応答するよう
なものである。
き込むための要求をメモリモジュールに送信するもので
ある。読み取りデータトランザクションは、メモリモジ
ュールがデータをCPUに返送するか又はI10モジュ
ールが手前の読み取りトランザクションに応答するよう
なものである。
種々のモジュール間でシステムバスを使用するための競
合は、そのシステムバスの実施に対して特定であり且つ
仲裁プロトコルの分野で知られているあるやり方で仲裁
される。
合は、そのシステムバスの実施に対して特定であり且つ
仲裁プロトコルの分野で知られているあるやり方で仲裁
される。
CPUモジュールに関連したサポートハードウェアの一
部分として、公知技術では、読み取りデータ待ち行列と
称する構造体がシステムバスとCPUモジュールとの間
に導入されることが示唆されている。この構造体は、読
み取りトランザクションに応答してメモリモジュールか
ら返送されたデータの値を保持する。読み取りデータを
待ち行列に入れることにより、主メモリのアクセスが行
なわれる間にプロセッサが返送されるべきデータを待機
してアイドル状態になるのではなく他のタスクを実行で
きることになって、システム性能が向上される。読み取
りデータ待ち行列は、データフィールド及び有効ビット
を各々含む多数の入力を備えた先入れ先出しくF I
F○)待ち行列である。有効ビットがセットされたとき
には、有効データがその入力にあり、即ち、その入力が
「いっばい」であることを指示することが理解されよう
。その入力の有効ビットがセットされない場合には、そ
の入力が「空」であり、即ち何のデータも含まない。C
PUモジュールが読み取りデータトランザクションによ
って主メモリからデータを受け取るときには、そのデー
タが読み取りデータ待ち行列の一端に入れられ、その入
力に対して有効ビットがセットされる。CPUが入って
くるデータを受け入れてそのキャッシュメモリに入れる
準備ができたときには、第1の有効入力が待ち11列の
他端から除去され、有効ビットがクリアされる。
部分として、公知技術では、読み取りデータ待ち行列と
称する構造体がシステムバスとCPUモジュールとの間
に導入されることが示唆されている。この構造体は、読
み取りトランザクションに応答してメモリモジュールか
ら返送されたデータの値を保持する。読み取りデータを
待ち行列に入れることにより、主メモリのアクセスが行
なわれる間にプロセッサが返送されるべきデータを待機
してアイドル状態になるのではなく他のタスクを実行で
きることになって、システム性能が向上される。読み取
りデータ待ち行列は、データフィールド及び有効ビット
を各々含む多数の入力を備えた先入れ先出しくF I
F○)待ち行列である。有効ビットがセットされたとき
には、有効データがその入力にあり、即ち、その入力が
「いっばい」であることを指示することが理解されよう
。その入力の有効ビットがセットされない場合には、そ
の入力が「空」であり、即ち何のデータも含まない。C
PUモジュールが読み取りデータトランザクションによ
って主メモリからデータを受け取るときには、そのデー
タが読み取りデータ待ち行列の一端に入れられ、その入
力に対して有効ビットがセットされる。CPUが入って
くるデータを受け入れてそのキャッシュメモリに入れる
準備ができたときには、第1の有効入力が待ち11列の
他端から除去され、有効ビットがクリアされる。
無効待ち行列と称する別のFIFO構造体をシステムバ
スとCPUモジュールとの間に導入することもできる。
スとCPUモジュールとの間に導入することもできる。
この無効待ち行列は、少なくともアドレスフィールドと
有効ビットとを各々含む「416効状態」と称する多数
の入力を含む。CI) Uは、コヒレントなトランザク
ションに対してシステムバスを監視する。書き込みスル
ーポリシーを用いたシステムにおいては、CPUモジュ
ールが書き込みトランザクションに対してシステムバス
を1藷視する。システムバスにおいて何等かのデータ書
き込みトランザクションが検出されたときには、そのト
ランザクションのアドレスがCPUモジュールの無効待
ち行列の一端に入れられ、有効ビットがセットがセット
されて、その入力がいっばいであることを指示する。C
PUが無効状態を処理できるときには、第1の有効入力
が無効待ち行列の他端から取り去られ、その有効ビット
がクリアされる。書き込みトランザクションのアドレス
は、キャッシュの内容に対してチェックされ、もし存在
すれば、そのアドレスに対応する入力が無効(空)と印
される。このようにして、CPUは、古いデータ値を使
用することが防止される。
有効ビットとを各々含む「416効状態」と称する多数
の入力を含む。CI) Uは、コヒレントなトランザク
ションに対してシステムバスを監視する。書き込みスル
ーポリシーを用いたシステムにおいては、CPUモジュ
ールが書き込みトランザクションに対してシステムバス
を1藷視する。システムバスにおいて何等かのデータ書
き込みトランザクションが検出されたときには、そのト
ランザクションのアドレスがCPUモジュールの無効待
ち行列の一端に入れられ、有効ビットがセットがセット
されて、その入力がいっばいであることを指示する。C
PUが無効状態を処理できるときには、第1の有効入力
が無効待ち行列の他端から取り去られ、その有効ビット
がクリアされる。書き込みトランザクションのアドレス
は、キャッシュの内容に対してチェックされ、もし存在
すれば、そのアドレスに対応する入力が無効(空)と印
される。このようにして、CPUは、古いデータ値を使
用することが防止される。
マルチプロセッサシステムにおけるキャッシュのコヒレ
ンスは、各キャッシュメモリがトランザクションをそれ
らがシステムバスにおいて生じたのと同じ順序で処理す
るときに維持される。システムバスに現われた無効状態
の順序は、それらを保持するFIFO待ち行列によって
保持することができる。同様に、読み取りデータトラン
ザクションの順序も、それらのFIFO待ち行列におい
て保持できる。然し乍ら、不都合なことに、読み取りデ
ータトランザクションに対する無効状態の順序、或いは
これと同等のことであるがシステムバスに現われる無効
状態に対する読み取りデータトランザクションの順序は
、別々の読み取りデータ及び無効待ち行列の使用によっ
て保持されない。
ンスは、各キャッシュメモリがトランザクションをそれ
らがシステムバスにおいて生じたのと同じ順序で処理す
るときに維持される。システムバスに現われた無効状態
の順序は、それらを保持するFIFO待ち行列によって
保持することができる。同様に、読み取りデータトラン
ザクションの順序も、それらのFIFO待ち行列におい
て保持できる。然し乍ら、不都合なことに、読み取りデ
ータトランザクションに対する無効状態の順序、或いは
これと同等のことであるがシステムバスに現われる無効
状態に対する読み取りデータトランザクションの順序は
、別々の読み取りデータ及び無効待ち行列の使用によっ
て保持されない。
全ての形態のこの直列化技術がコヒレンスの間圧を充分
に解決することはない。例えば、1つの技術は、読み取
りデータをキャッシュメモリに送信する前に無効待ち行
列が空になるのを待機することである。然し乍ら、これ
は、マルチプロセッサシステムにおけるキャッシュコヒ
レンスの問題を充分に解決するものではない。というの
は、システムバスにおける新たな書き込みがキャッシュ
メモリによって無効状態として処理されるのと同程度の
速さで無効待ち行列の端に加えられるような最悪の場合
のトラヒックパターンを構成できるからである。このよ
うな状態においては、無効待ち行列が決して空にならな
いので、読み取りデータはキャッシュメモリに決して戻
されない。本発明の方法は、一定の所定数の無効状態が
処理されてしまうまでキャッシュへの読み取りデータの
送信が禁止されるだけであるから、このような病理学的
な特性に陥ることはない。
に解決することはない。例えば、1つの技術は、読み取
りデータをキャッシュメモリに送信する前に無効待ち行
列が空になるのを待機することである。然し乍ら、これ
は、マルチプロセッサシステムにおけるキャッシュコヒ
レンスの問題を充分に解決するものではない。というの
は、システムバスにおける新たな書き込みがキャッシュ
メモリによって無効状態として処理されるのと同程度の
速さで無効待ち行列の端に加えられるような最悪の場合
のトラヒックパターンを構成できるからである。このよ
うな状態においては、無効待ち行列が決して空にならな
いので、読み取りデータはキャッシュメモリに決して戻
されない。本発明の方法は、一定の所定数の無効状態が
処理されてしまうまでキャッシュへの読み取りデータの
送信が禁止されるだけであるから、このような病理学的
な特性に陥ることはない。
発明の構成
本発明は、CPUモジュールの各待ち行列からの入力を
正しい直列化順序で処理し、各CPUが共有データの最
も最近書き込まれた値を用いて種々のシステム要素の中
でデータのコヒレンス性を維持できるようにする方法及
び装置を提供する。
正しい直列化順序で処理し、各CPUが共有データの最
も最近書き込まれた値を用いて種々のシステム要素の中
でデータのコヒレンス性を維持できるようにする方法及
び装置を提供する。
本発明によって構成されたマルチプロセッサコンピュー
タシステムは、共通のシステムバスにインターフェイス
された複数のCPUモジュール及び複数のI10モジュ
ールを備えている。これらのモジュールは、コンピュー
タシステムの主メモリを画成すると共に時分割システム
バスにもインターフェイスされる複数のメモリモジュー
ルへのアクセスを分担する。CPUモジュールの各々は
、中央プロセッサに加えて、情報のあるサブセットを主
メモリに記憶するのに用いられるローカルキャッシュメ
モリと、読み取りデータ待ち行列と、無効待ち行列とを
備え、これらの待ち行列は、各々、主メモリからフェッ
チされてキャッシュへ送られるべきデータ値と、システ
ムバス上で検出されてキャッシュの潜在的なストールデ
ータを識別するのに用いられる書き込みトランザクショ
ンの記録とを保持する。読み取りデータ待ち行列の各入
力は、有効ビットと称するビットフィールドが組み合わ
されており、これは、セットされると、その入力におけ
るデータが有効であることを指示する。無効待ち行列の
入力は、各々、有効ビットに加えて、フラッシュビット
と称する当該1ビツトフイールドを有していなければな
らず、このビットは、読み取りデータ待ち行列からの読
み取りデータを受け入れる前にどの無効状態をキャッシ
ュメモリによって処理しなければならないかを判断する
ために使用されねばならない。これらの待ち行列は、デ
ータが一端から入力されそして地端から取り出されるF
IFO構造体である。
タシステムは、共通のシステムバスにインターフェイス
された複数のCPUモジュール及び複数のI10モジュ
ールを備えている。これらのモジュールは、コンピュー
タシステムの主メモリを画成すると共に時分割システム
バスにもインターフェイスされる複数のメモリモジュー
ルへのアクセスを分担する。CPUモジュールの各々は
、中央プロセッサに加えて、情報のあるサブセットを主
メモリに記憶するのに用いられるローカルキャッシュメ
モリと、読み取りデータ待ち行列と、無効待ち行列とを
備え、これらの待ち行列は、各々、主メモリからフェッ
チされてキャッシュへ送られるべきデータ値と、システ
ムバス上で検出されてキャッシュの潜在的なストールデ
ータを識別するのに用いられる書き込みトランザクショ
ンの記録とを保持する。読み取りデータ待ち行列の各入
力は、有効ビットと称するビットフィールドが組み合わ
されており、これは、セットされると、その入力におけ
るデータが有効であることを指示する。無効待ち行列の
入力は、各々、有効ビットに加えて、フラッシュビット
と称する当該1ビツトフイールドを有していなければな
らず、このビットは、読み取りデータ待ち行列からの読
み取りデータを受け入れる前にどの無効状態をキャッシ
ュメモリによって処理しなければならないかを判断する
ために使用されねばならない。これらの待ち行列は、デ
ータが一端から入力されそして地端から取り出されるF
IFO構造体である。
CPUモジュールが読み取りトランザクションを発生し
たときには、無効待ち行列の全ての入力に対し有効ビッ
トをフラッシュビットにコピーする。読み取りトランザ
クションが発せられたときに無効待ち行列の入力に対す
る有効ビットがゼロである場合には、この動作の後にフ
ラッシュビットもゼロになる。同様に、いずれかの入力
に対する有効ビットがlである場合には、フラッシュビ
ットもlになる。このように、CPUモジュールは、読
み取りトランザクションが開始されたときに有効であっ
た無効待ち行列入力を追跡することができる。
たときには、無効待ち行列の全ての入力に対し有効ビッ
トをフラッシュビットにコピーする。読み取りトランザ
クションが発せられたときに無効待ち行列の入力に対す
る有効ビットがゼロである場合には、この動作の後にフ
ラッシュビットもゼロになる。同様に、いずれかの入力
に対する有効ビットがlである場合には、フラッシュビ
ットもlになる。このように、CPUモジュールは、読
み取りトランザクションが開始されたときに有効であっ
た無効待ち行列入力を追跡することができる。
CPUは、主メモリからキャッシュメモリへ読み取りデ
ータを受け入れることができる前に、読み取りトランザ
クションが発せられたときに有効であった全ての無効待
ち行列入力を最初に処理する。次いで、CPUは、その
キャッシュのデータが読み取りトランザクションが発せ
られたときの主メモリのデータに対応する正確なコピー
を表わすように確保する。
ータを受け入れることができる前に、読み取りトランザ
クションが発せられたときに有効であった全ての無効待
ち行列入力を最初に処理する。次いで、CPUは、その
キャッシュのデータが読み取りトランザクションが発せ
られたときの主メモリのデータに対応する正確なコピー
を表わすように確保する。
これは、CPIJが読み取りデータを受け入れる前に全
ての有効な無効待ち行列入力を処理しなければならない
ことを意味するものではない。読み取りトランザクショ
ンが行なわれる前に有効であった入力のみを、読み取り
データ受け入れの前に処理すればよい。読み取りトラン
ザクションと読み取りデータトランザクションとの間の
時間中に無効待ち行列に入れられた無効状態は、フラッ
シュビットではなくて有効ビットのみがセットされ、こ
れらの入力は、読み取りトランザクションを開始する前
に行なわれた主メモリデータへの変更を表わすものでは
ない。
ての有効な無効待ち行列入力を処理しなければならない
ことを意味するものではない。読み取りトランザクショ
ンが行なわれる前に有効であった入力のみを、読み取り
データ受け入れの前に処理すればよい。読み取りトラン
ザクションと読み取りデータトランザクションとの間の
時間中に無効待ち行列に入れられた無効状態は、フラッ
シュビットではなくて有効ビットのみがセットされ、こ
れらの入力は、読み取りトランザクションを開始する前
に行なわれた主メモリデータへの変更を表わすものでは
ない。
実施例
本発明によるマルチプロセッサ式のコンピュータシステ
ム8の一般的な構成が第1図に示されている。システム
の共有主メモリを含む複数のN個のメモリモジュール1
0が設けられており、これらは、良く知られているよう
にバスをいかに実施するかに基づいて決まる手段により
共通のシステムバス12ヘインターフエイスされる。実
際は、メモリモジュールlOの個数Nは、主メモリをど
のように実施したいかによって1以上のどんな数にもな
りつる。複数のプロセッサモジュール14(CPU)も
設けられている。本発明は2つ以上のプロセッサモジュ
ール14を使用したコンピュータシステムに係るが、明
瞭化のためプロセッサモジュールは2つしか示していな
い。同様に、いかなる数のI10モジュール16をシス
テムバス12にインターフェイスできるが、第1図には
これを2つしか示してない。
ム8の一般的な構成が第1図に示されている。システム
の共有主メモリを含む複数のN個のメモリモジュール1
0が設けられており、これらは、良く知られているよう
にバスをいかに実施するかに基づいて決まる手段により
共通のシステムバス12ヘインターフエイスされる。実
際は、メモリモジュールlOの個数Nは、主メモリをど
のように実施したいかによって1以上のどんな数にもな
りつる。複数のプロセッサモジュール14(CPU)も
設けられている。本発明は2つ以上のプロセッサモジュ
ール14を使用したコンピュータシステムに係るが、明
瞭化のためプロセッサモジュールは2つしか示していな
い。同様に、いかなる数のI10モジュール16をシス
テムバス12にインターフェイスできるが、第1図には
これを2つしか示してない。
本発明によるCPUモジュール14が第2図にシステム
バス12にインターフェイスされて示されている。シス
テムバスインターフェイス18は各CI) IJモジュ
ール14に対応しそしてシステムバス12に電気的に接
続されており、そしてこのシステムバスインターフェイ
スは、それぞれの対応するCPUモジュール14と、他
のCP t、Jモジュール14、I10モジュール16
及びメモリモジュール10との間でシステムバス12を
通して通信リンクを確立する役割を果たす。又、システ
ムバスインターフェイス18とCPUバスインターフェ
イス22との間には別のバス接続部20が設けられてい
る。この接続部20は、キャッシュインターフェイス2
6によって発生されてCPUバス24を通ってCPUバ
スインターフェイス22へ供給される主メモリ読み取り
/書き込みアクセス要求に対する経路を形成する。キャ
ッシュインターフェイス26は、各々、CPUデータバ
ス32とキャッシュバス28を通ってCPU3/1とキ
ャッシュメモリ30との間を取り次ぐ役[]を果たす。
バス12にインターフェイスされて示されている。シス
テムバスインターフェイス18は各CI) IJモジュ
ール14に対応しそしてシステムバス12に電気的に接
続されており、そしてこのシステムバスインターフェイ
スは、それぞれの対応するCPUモジュール14と、他
のCP t、Jモジュール14、I10モジュール16
及びメモリモジュール10との間でシステムバス12を
通して通信リンクを確立する役割を果たす。又、システ
ムバスインターフェイス18とCPUバスインターフェ
イス22との間には別のバス接続部20が設けられてい
る。この接続部20は、キャッシュインターフェイス2
6によって発生されてCPUバス24を通ってCPUバ
スインターフェイス22へ供給される主メモリ読み取り
/書き込みアクセス要求に対する経路を形成する。キャ
ッシュインターフェイス26は、各々、CPUデータバ
ス32とキャッシュバス28を通ってCPU3/1とキ
ャッシュメモリ30との間を取り次ぐ役[]を果たす。
本発明のこの実施例によりCPU34によって開始され
るメモリの読み取りは、次のように待なわれる。即ち、
CPU3/Iは、指定のメモリ位置でメモリを読み取る
要求をデータバス32に出し、この要求はキャッシュイ
ンターフェイス26よって受け取られる。キャッシュイ
ンターフェイス26はキャッシュバス28を使い、要求
されたメモリ位置がキャッシュ30にコピーされていて
それが有効かどうかを決定するためにキャッシュ30を
アクセスする。もしそうだとすれば、キャッシュインタ
ーフェイス26はこの値をCP tJ 34に返送する
。所望されたメモリ位置がキャッシュ30内に複写され
ていない時、またはその値のキャッシュコピーが有効で
ないと示された場合、キャッシュインターフェイス26
は、CPUバス24からCPUバスインターフェイス2
2を通してメモリ読み取り要求を進める。ここから、そ
の要求は電気接続部22を通してシステムバスインター
フェイス18まで進められる。システムバスインターフ
ェイス18は、それをシステムバス12への許可された
アクセスとするために必要とされる適当なバス仲裁プロ
トコルに参加しなければならない。いったんアクセスが
許可されると、システムバスインターフェイス18はシ
ステムバス12上で読み取りトランザクションを開始し
、CPU34によって要求されているメモリ位置の値を
メモリモジュール10に指示する。上記したメモリ読み
取りプロセスは、メモリ10内の所望の位iγtが数字
オペランドを保持しているかメモリアドレスを保持して
いるか又は命令のOPコードを保持しているかに拘りな
く、CP (、; 34によって開始される読み取り動
作の典型である。
るメモリの読み取りは、次のように待なわれる。即ち、
CPU3/Iは、指定のメモリ位置でメモリを読み取る
要求をデータバス32に出し、この要求はキャッシュイ
ンターフェイス26よって受け取られる。キャッシュイ
ンターフェイス26はキャッシュバス28を使い、要求
されたメモリ位置がキャッシュ30にコピーされていて
それが有効かどうかを決定するためにキャッシュ30を
アクセスする。もしそうだとすれば、キャッシュインタ
ーフェイス26はこの値をCP tJ 34に返送する
。所望されたメモリ位置がキャッシュ30内に複写され
ていない時、またはその値のキャッシュコピーが有効で
ないと示された場合、キャッシュインターフェイス26
は、CPUバス24からCPUバスインターフェイス2
2を通してメモリ読み取り要求を進める。ここから、そ
の要求は電気接続部22を通してシステムバスインター
フェイス18まで進められる。システムバスインターフ
ェイス18は、それをシステムバス12への許可された
アクセスとするために必要とされる適当なバス仲裁プロ
トコルに参加しなければならない。いったんアクセスが
許可されると、システムバスインターフェイス18はシ
ステムバス12上で読み取りトランザクションを開始し
、CPU34によって要求されているメモリ位置の値を
メモリモジュール10に指示する。上記したメモリ読み
取りプロセスは、メモリ10内の所望の位iγtが数字
オペランドを保持しているかメモリアドレスを保持して
いるか又は命令のOPコードを保持しているかに拘りな
く、CP (、; 34によって開始される読み取り動
作の典型である。
CPtJによって開始されるメモリ書き込みの一連の事
象は次の通りである。すなわち、メモリ書き込み要求は
CP U 34からCPUデータバス32を通ってキャ
ッシュインターフェイス26へ送られる。キャッシュイ
ンターフェイス26はキャッシュバス28を使用して所
望のメモリ位置がキャッシュ30の中にもあるかどうか
決定し、もしそうならば、古い値に代わって新しい値が
書き込まれる。書き込みスルーのキャッシュポリシーを
続ける場合、キャッシュインターフェイス26は、所望
の位置がキャッシュ30にコピーされているかどうかに
関係なく、CPUバス24を通してCPUバスインター
フェイス22へ書き込み要求を進める。要求は、キャッ
シュインターフェイス26から電気接続部20を通って
システムバスインターフェイス18へ要求が送られる。
象は次の通りである。すなわち、メモリ書き込み要求は
CP U 34からCPUデータバス32を通ってキャ
ッシュインターフェイス26へ送られる。キャッシュイ
ンターフェイス26はキャッシュバス28を使用して所
望のメモリ位置がキャッシュ30の中にもあるかどうか
決定し、もしそうならば、古い値に代わって新しい値が
書き込まれる。書き込みスルーのキャッシュポリシーを
続ける場合、キャッシュインターフェイス26は、所望
の位置がキャッシュ30にコピーされているかどうかに
関係なく、CPUバス24を通してCPUバスインター
フェイス22へ書き込み要求を進める。要求は、キャッ
シュインターフェイス26から電気接続部20を通って
システムバスインターフェイス18へ要求が送られる。
システムバスインターフェイス18は、システムバスア
クセスが許可されると、システムバス12を通って主メ
モリ10へ書き込み要求を送る。
クセスが許可されると、システムバス12を通って主メ
モリ10へ書き込み要求を送る。
システムバスインターフェイス18の他の機能は、シス
テムバス12に生じる全てのトランザクションをモニタ
ーすることである。書き込みトランザクションがCPU
モジュール14のどれか又はI10モジュール16のど
れかによって生じたときには、それぞれのCPUモジュ
ール14内のシステムバスインターフェイス18は、第
3図について述べる無効待ち行列38にそのトランザク
ションのアドレスを入力する役割をする。
テムバス12に生じる全てのトランザクションをモニタ
ーすることである。書き込みトランザクションがCPU
モジュール14のどれか又はI10モジュール16のど
れかによって生じたときには、それぞれのCPUモジュ
ール14内のシステムバスインターフェイス18は、第
3図について述べる無効待ち行列38にそのトランザク
ションのアドレスを入力する役割をする。
第3図によれば、無効待ち行列38は、先入れ先出しく
F I FO)の待ち行列で、これは、本発明の好まし
い実施例では、アドレスフィールド42、有効ビットフ
ィールド44及びフラッシュビットフィールド46を各
々持つ1組の人力40を含む。マルチビットアドレスフ
ィールド42は書き込みトランザクションのターゲット
位置の主メモリアドレスを保持する。単一ビットの有効
ビットフィールド44は、待ち行列入力40のどれが有
効な無効状態を保持するかを示す。最後の1ビツトのフ
ラッシュビットフィールド46は、以下で述べるように
、読み取りトランザクションが関連CPUモジュール1
4によって発せられたときにどの待ち行列入力40が有
効であったかを決定するために用いられる。無効待ち行
列38中の全ての入力40のフラッシュビットフィール
ド46は、多入力論理110 RI+ゲート48への入
力として使用される。“’OR”ゲート48の出力50
は゛フラッシュ要求′°信号を運ぶ。このフラッシュ要
求信号は、無効待ち行列38内のフラッシュビットフィ
ールド46のどれかが論理lをもつときに高く (論理
l)、無効待ち行列38のどのフラッシュビット46も
セットされていない場合にのみ(即ち、論理1を含む)
、フラッシュ要求信号が低(論理O)となる。
F I FO)の待ち行列で、これは、本発明の好まし
い実施例では、アドレスフィールド42、有効ビットフ
ィールド44及びフラッシュビットフィールド46を各
々持つ1組の人力40を含む。マルチビットアドレスフ
ィールド42は書き込みトランザクションのターゲット
位置の主メモリアドレスを保持する。単一ビットの有効
ビットフィールド44は、待ち行列入力40のどれが有
効な無効状態を保持するかを示す。最後の1ビツトのフ
ラッシュビットフィールド46は、以下で述べるように
、読み取りトランザクションが関連CPUモジュール1
4によって発せられたときにどの待ち行列入力40が有
効であったかを決定するために用いられる。無効待ち行
列38中の全ての入力40のフラッシュビットフィール
ド46は、多入力論理110 RI+ゲート48への入
力として使用される。“’OR”ゲート48の出力50
は゛フラッシュ要求′°信号を運ぶ。このフラッシュ要
求信号は、無効待ち行列38内のフラッシュビットフィ
ールド46のどれかが論理lをもつときに高く (論理
l)、無効待ち行列38のどのフラッシュビット46も
セットされていない場合にのみ(即ち、論理1を含む)
、フラッシュ要求信号が低(論理O)となる。
3種類目のバストランザクションである読み取りデータ
トランザクションは、読み取りトランザクションによっ
てデータを要求したプロセッサへ主メモリ位置の内容を
戻すために主メモリ管理ロジックによって始められる。
トランザクションは、読み取りトランザクションによっ
てデータを要求したプロセッサへ主メモリ位置の内容を
戻すために主メモリ管理ロジックによって始められる。
もう−魔笛2図を見ると、主メモリモジュール10の1
つから生じた読み取りデータトランザクションはシステ
ムバスインターフェイス18によって受け取られる。
つから生じた読み取りデータトランザクションはシステ
ムバスインターフェイス18によって受け取られる。
データは、CPUバスインターフェイス22に直接送ら
れるのではなく、読み取りデータ待ち行列36に入力さ
れる。この待ち行列36は、無効待ち行列38と同じよ
うに、システムバスインターフェイス18とCPUバス
インターフェイス22との間に設けられている。第4図
に示されているように読み取りデータ待ち行列36は、
それぞれが2つのフィールド、即ちデータフィールド5
4と有効ビットフィールド56を持つ1組の多ビツト入
力52を含む。データフィールド54は、読み取りトラ
ンザクションに応答してメモリ制御器によって返送され
たメモリ位置の内容を保持する。
れるのではなく、読み取りデータ待ち行列36に入力さ
れる。この待ち行列36は、無効待ち行列38と同じよ
うに、システムバスインターフェイス18とCPUバス
インターフェイス22との間に設けられている。第4図
に示されているように読み取りデータ待ち行列36は、
それぞれが2つのフィールド、即ちデータフィールド5
4と有効ビットフィールド56を持つ1組の多ビツト入
力52を含む。データフィールド54は、読み取りトラ
ンザクションに応答してメモリ制御器によって返送され
たメモリ位置の内容を保持する。
有効ビットフィールド56はデータフィールド54に入
っているデータが有効かどうか示すための1ビツトフイ
ールドである。無効待ち行列38と同じように、読み取
りデータ待ち行列36もまたF I FO構造を持ち、
一端でシステムバスインターフェイス18からのデータ
を受け取り、もう−方の一端からCPUバスインターフ
ェイス22にデータを送るようになっている。
っているデータが有効かどうか示すための1ビツトフイ
ールドである。無効待ち行列38と同じように、読み取
りデータ待ち行列36もまたF I FO構造を持ち、
一端でシステムバスインターフェイス18からのデータ
を受け取り、もう−方の一端からCPUバスインターフ
ェイス22にデータを送るようになっている。
システム全体にわたるデータのコヒレンス性は本発明の
機構により次のように確保される。すなわち、システム
バスインターフェイス18は、システムバス12上に、
主メモリへの読み取りトランザクションを送る時、無効
待ち行列38中の全ての入力40に関し有効ビット44
をフラッシュビット46にコピーし、読み取りトランザ
クションが生じたときに有−効であった全ての入力40
がフラッシュビット46をセットしく即ち、論理1を有
し)そして読み取りトランザクションが生じたときに有
効でなかった全ての入力40がフラッシュビット46を
リセットする(即ち、論理Oを含む)ようにする。CP
Uモジュール14は、受け取った内容をCPUキャッシ
ュ30へ通す前に、フラッシュビットがセットされた無
効待ち行列38の全ての無効状態を処理しなければなら
ない。このように、無効状態は、主メモリがアクセスさ
れて読み取りデータが返送される時間中に処理され、メ
モリのアクセスと無効状態の処理が並列に行われるよう
にする。CPUキャッシュ30が読み取りデータをもつ
ことができるまでに処理されるべき無効状態の数は、無
効待ち行列38の入力40の数以下に保証され、従って
、CPUモジュール14がフラッシュビット46がセッ
トされた入力40の無効待ち行列38を空にするに要す
る一定の時間後に、CPUキャッシュは読み取りデータ
待ち行列36に記憶された入力データをアクセスできる
よう保証される。このように、本発明は、読み取りデー
タの返送によって無効状態を正しく直列化すると共に、
共有データプロトコルを正しく操作することを保証する
。
機構により次のように確保される。すなわち、システム
バスインターフェイス18は、システムバス12上に、
主メモリへの読み取りトランザクションを送る時、無効
待ち行列38中の全ての入力40に関し有効ビット44
をフラッシュビット46にコピーし、読み取りトランザ
クションが生じたときに有−効であった全ての入力40
がフラッシュビット46をセットしく即ち、論理1を有
し)そして読み取りトランザクションが生じたときに有
効でなかった全ての入力40がフラッシュビット46を
リセットする(即ち、論理Oを含む)ようにする。CP
Uモジュール14は、受け取った内容をCPUキャッシ
ュ30へ通す前に、フラッシュビットがセットされた無
効待ち行列38の全ての無効状態を処理しなければなら
ない。このように、無効状態は、主メモリがアクセスさ
れて読み取りデータが返送される時間中に処理され、メ
モリのアクセスと無効状態の処理が並列に行われるよう
にする。CPUキャッシュ30が読み取りデータをもつ
ことができるまでに処理されるべき無効状態の数は、無
効待ち行列38の入力40の数以下に保証され、従って
、CPUモジュール14がフラッシュビット46がセッ
トされた入力40の無効待ち行列38を空にするに要す
る一定の時間後に、CPUキャッシュは読み取りデータ
待ち行列36に記憶された入力データをアクセスできる
よう保証される。このように、本発明は、読み取りデー
タの返送によって無効状態を正しく直列化すると共に、
共有データプロトコルを正しく操作することを保証する
。
次にあげる例はマルチプロセッサシステムにおけるデー
タコヒレンスの問題と、本発明によってこの問題がどの
ように解決されるのかを示している。すなわち、CPU
0とCPUIの2つのプロセッサモジュールを持つマル
チプロセッサシステムでは、変数Vは2つのプロセッサ
間で共有されるデータである。他の変数Tは、共有デー
タへの同時アクセスを仲介する技術で知られているよう
に、2つのプロセッサによるVへのアクセスを同期する
のに使用される゛′フラッグ″である。特に、′「がO
でない時は変数Vの内容は有効である。
タコヒレンスの問題と、本発明によってこの問題がどの
ように解決されるのかを示している。すなわち、CPU
0とCPUIの2つのプロセッサモジュールを持つマル
チプロセッサシステムでは、変数Vは2つのプロセッサ
間で共有されるデータである。他の変数Tは、共有デー
タへの同時アクセスを仲介する技術で知られているよう
に、2つのプロセッサによるVへのアクセスを同期する
のに使用される゛′フラッグ″である。特に、′「がO
でない時は変数Vの内容は有効である。
Tが0の時は、変数■の内容は有効でない。
変数Tが始めにOの値を持っていると仮定すると、この
ことはCPUモジュールの変数■の値が有効でないこと
と、変数TがCPUIキャッシュメモリの中にあるので
はなく、変数VがCPU1のキャッシュメモリの中にあ
るということの両方をいずれかのCPLIモジュールへ
指示する。
ことはCPUモジュールの変数■の値が有効でないこと
と、変数TがCPUIキャッシュメモリの中にあるので
はなく、変数VがCPU1のキャッシュメモリの中にあ
るということの両方をいずれかのCPLIモジュールへ
指示する。
次に、cpuoが位置■に値を書き込み、それからゼロ
以外の値を位置Tに書き込んで、新しく書かれたVの値
が有効であることを示すと仮定する。これらの2つの書
き込みトランザクションが行われたすぐ後、CPU 1
はビジー待機ループを実行し始め、それぞれのループの
繰返しの始めに変数Tの値をチェックし、■の値が有効
になったかどうか調べる。CPUIがいったんTの値が
Oでないと判断してしまうと、ビジー待機ループを出て
処理を続ける。CPUIキャッシュの中にTの値がない
ことを想起すれば、ビジー待機ループの最初の実行の際
に、CPUIは読み取りトランザクションをシステムバ
スを通じて送り、主メモリから変数下の値を要求する。
以外の値を位置Tに書き込んで、新しく書かれたVの値
が有効であることを示すと仮定する。これらの2つの書
き込みトランザクションが行われたすぐ後、CPU 1
はビジー待機ループを実行し始め、それぞれのループの
繰返しの始めに変数Tの値をチェックし、■の値が有効
になったかどうか調べる。CPUIがいったんTの値が
Oでないと判断してしまうと、ビジー待機ループを出て
処理を続ける。CPUIキャッシュの中にTの値がない
ことを想起すれば、ビジー待機ループの最初の実行の際
に、CPUIは読み取りトランザクションをシステムバ
スを通じて送り、主メモリから変数下の値を要求する。
CPU0がたった今OでないTの値を主メモリに書き込
んだので、CPU1に返送される読み取りデータはこの
変化を反映し、変数Vの現在の値が有効なものであるこ
とをCPU 1に示す。この点において、キャッシュコ
ヘレンスを考えることなしに、CPUIは変数Vの値を
そのキャッシュから読み取ることができ、この値を使っ
て処理を続ける。然し乍ら、このキャッシュ値は、cP
UOが新しい■の値をメモリに書き込む前に存在するも
のであるから、CPUIは″ストール即ちインコヒレン
トなVの値をそのキャッシュから受け取る。
んだので、CPU1に返送される読み取りデータはこの
変化を反映し、変数Vの現在の値が有効なものであるこ
とをCPU 1に示す。この点において、キャッシュコ
ヘレンスを考えることなしに、CPUIは変数Vの値を
そのキャッシュから読み取ることができ、この値を使っ
て処理を続ける。然し乍ら、このキャッシュ値は、cP
UOが新しい■の値をメモリに書き込む前に存在するも
のであるから、CPUIは″ストール即ちインコヒレン
トなVの値をそのキャッシュから受け取る。
キャッシュ無効化の技術はストールデータの使用を防止
できるが、それは無効状態が他のシステムパストランザ
クションに対して適当な順序で処理される場合のみであ
る。この場合、システムは、Tの読み取りデータ値が主
メモリからCPLJlに戻される前に位置Vへのcpu
oの書き込みに対応する無効状態がCPU1によって処
理されるよう確保しなければならない。本発明は、″必
要な″″無効状態がCPUIによって処理されるまでC
PtJlへのTの読み取り値の返送を禁止する二とによ
って適切な順序で処理を行えるようにする。パ必要な”
無効状態は、CPtJlの無効待ち行列がTの値を要求
する読み取りデータトランザクションを生じた時にこの
行列に存在する状態である。従って、これらの無効待ち
行列人力は、CPU1がその読み取りトランザクション
を生じるときに有効ビットをフラッシュビットヘコピー
することにより表示される。この例において、CPU1
は、主メモリからTの値を受け取ることを許可される前
に、そのキャッシュのVの値を無効化するよう強制され
る。
できるが、それは無効状態が他のシステムパストランザ
クションに対して適当な順序で処理される場合のみであ
る。この場合、システムは、Tの読み取りデータ値が主
メモリからCPLJlに戻される前に位置Vへのcpu
oの書き込みに対応する無効状態がCPU1によって処
理されるよう確保しなければならない。本発明は、″必
要な″″無効状態がCPUIによって処理されるまでC
PtJlへのTの読み取り値の返送を禁止する二とによ
って適切な順序で処理を行えるようにする。パ必要な”
無効状態は、CPtJlの無効待ち行列がTの値を要求
する読み取りデータトランザクションを生じた時にこの
行列に存在する状態である。従って、これらの無効待ち
行列人力は、CPU1がその読み取りトランザクション
を生じるときに有効ビットをフラッシュビットヘコピー
することにより表示される。この例において、CPU1
は、主メモリからTの値を受け取ることを許可される前
に、そのキャッシュのVの値を無効化するよう強制され
る。
第1図は、全てが共通システムバスにインターフェイス
された共有主メモリ、多数のCPUモジュールそして多
数のI10モジュールからなる複数のメモリモジュール
を含んだマルチプロセッサコンピュータシステムのブロ
ック図、第2図は、システムバスにインターフェイスさ
れる第1図のそれぞれのCPUモジュールの機能ユニッ
トを示している詳細なブロック図、第3図は、第2図の
無効待ち行列を示す図、そして 第4図は、第2図の読み取りデータ待ち行列を示す図で
ある。 8・・・マルチプロセッサベースのコンピュータシステ
ム 10・・・メモリモジュール 12・・・共通システムバス 14・・・複数プロセッサモジュール(cpu)16・
・・I10モジュール 18・・・システムバスインターフェイス20 ・ 22 ・ 24 ・ 26 ・ 28 ・ 30 ・ 32 ・ 34 ・ 40 ・ 42 ・ 44 ・ 46 ・ 48 ・ 5 o ・ 54 ・ 56 ・ ・バス接続部 ・CPUインターフェイス ・CPUバス ・キャッシュインターフェイス ・キャッシュバス ・キャッシュメモリ ・CPUデータバス ・CPU 38・・・無効待ち行列・入力 ・アドレスフィールド ・有効ビットフィールド ・フラッシュビットフィールド ・複数入力ロジカル“’OR”ゲート ・出力 52・・・複数ビット入力 ・データフィールド ・有効ビットフィールド
された共有主メモリ、多数のCPUモジュールそして多
数のI10モジュールからなる複数のメモリモジュール
を含んだマルチプロセッサコンピュータシステムのブロ
ック図、第2図は、システムバスにインターフェイスさ
れる第1図のそれぞれのCPUモジュールの機能ユニッ
トを示している詳細なブロック図、第3図は、第2図の
無効待ち行列を示す図、そして 第4図は、第2図の読み取りデータ待ち行列を示す図で
ある。 8・・・マルチプロセッサベースのコンピュータシステ
ム 10・・・メモリモジュール 12・・・共通システムバス 14・・・複数プロセッサモジュール(cpu)16・
・・I10モジュール 18・・・システムバスインターフェイス20 ・ 22 ・ 24 ・ 26 ・ 28 ・ 30 ・ 32 ・ 34 ・ 40 ・ 42 ・ 44 ・ 46 ・ 48 ・ 5 o ・ 54 ・ 56 ・ ・バス接続部 ・CPUインターフェイス ・CPUバス ・キャッシュインターフェイス ・キャッシュバス ・キャッシュメモリ ・CPUデータバス ・CPU 38・・・無効待ち行列・入力 ・アドレスフィールド ・有効ビットフィールド ・フラッシュビットフィールド ・複数入力ロジカル“’OR”ゲート ・出力 52・・・複数ビット入力 ・データフィールド ・有効ビットフィールド
Claims (1)
- 【特許請求の範囲】 (1)1組のデータを記憶するための主メモリと、該主
メモリに記憶されたデータのサブセットを記憶するため
の関連キャッシュメモリを各々有する複数のプロセッサ
と、該プロセッサ及び主メモリを相互接続すると共に上
記プロセッサの各々を互いに他のプロセッサと相互接続
するためのシステムバスとを具備するコンピュータシス
テムにおいて、上記主メモリ及びキャッシュメモリに記
憶されたデータの完全性を維持するための装置が、 a)各プロセッサごとに読み取りデータ待ち行列を備え
、この読み取りデータ待ち行列は上記システムバスに接
続され、該無効の待ち行列は複数の入力を有し、各入力
は、上記プロセッサのキャッシュメモリへ処理されるべ
き読み取りデータを記憶するためのデータフィールドと
、1つの完全な読み取りデータ入力を識別するための有
効ビットフィールドとを有しており、そして b)更に、各プロセッサごとに無効待ち行列を備え、該
無効待ち行列は複数の入力を有し、各入力は、無効状態
を記憶するためのアドレスフィールドと、1つの完全な
無効入力を識別するための有効ビットフィールドと、処
理されるべき無効状態を指示するためのフラッシュビッ
トフィールドとを有し、上記プロセッサに対応するキャ
ッシュにメモリアドレスが存在しないところのデータに
対し上記プロセッサのいずれかが読み取り要求を開始し
た際に、それに関連した無効待ち行列の各入力に対する
有効ビットフィールドをそれに関連したフラッシュビッ
トフィールドに読み込むように上記プロセッサが指示す
ると共に、フラッシュビットがセットされたところの全
ての無効状態の処理を開始する一方、全てのこれら無効
状態が処理されてしまうまで上記読み取りデータ待ち行
列の読み取りデータ値の処理を停止することを特徴とす
る装置。 (2)主メモリを有し、更に、複数のプロセッサを有し
、各プロセッサは、それに関連したキャッシュメモリを
有していると共に読み取りデータ待ち行列も有しており
、この読み取りデータ待ち行列は複数の入力を有し、各
入力は、プロセッサの関連キャッシュメモリへ処理され
るべき読み取りデータ値を保持するためのデータフィー
ルドと、1つの完全な読み取りデータ値を指示するため
の有効ビットフィールドとを有しており、更に、各プロ
セッサは無効待ち行列を有し、この無効待ち行列は複数
の入力を有し、各入力は、プロセッサの関連キャッシュ
メモリへ処理されるべき無効値を保持するためのアドレ
スフィールドと、1つの完全な無効値を指示するための
有効ビットフィールドと、次の読み取りデータ値を処理
する前に処理されるべき無効値を指示するためのフラッ
シュビットフィールドとを有しており、上記主メモリ及
びキャッシュメモリのデータのコヒレンス性を維持する
方法が、 a)上記プロセッサのキャッシュに要求データのメモリ
アドレスが存在しないところの上記プロセッサの1つか
ら読み取りトランザクションを発生し、 b)上記無効待ち行列の各有効ビットをそれに関連した
フラッシュビットへコピーして、選択されたフラッシュ
ビットをセットし、 c)その関連フラッシュビットがセットされたところの
無効待ち行列における全ての無効状態の処理を開始し、 d)上記システムの主メモリから、上記読み取りトラン
ザクションを発生するプロセッサの読み取りデータ待ち
行列へ読み取りデータトランザクションを発生し、 e)フラッシュビットのセットされた全ての無効状態が
処理されてしまうまで、対応するキャッシュメモリに対
する読み取りデータ待ち行列の内容の処理を休止し、そ
して f)対応するキャッシュメモリに対する読み取りデータ
待ち行列の内容の処理を続けることを特徴とする方法。 (3)コンピュータシステムにおいて、 a)1組のデータを記憶するためのアクセス可能な主メ
モリと、 b)データを処理するための複数のプロセッサであって
、その各々には、上記主メモリに記憶されたデータのサ
ブセットを記憶するための二次メモリが組み合わされて
おり、更に、上記メモリからデータを読み取るための読
み取り要求を発生する手段も備えているプロセッサと、 c)上記主メモリ及び各々のプロセッサを接続すると共
に、各々のプロセッサを互いに他のプロセッサに接続す
るためのシステムバスと、 d)各々の上記プロセッサに組み合わされて、上記二次
メモリへ処理されるべき上記主メモリから読み取ったデ
ータを記憶するためのバッファ記憶手段と、 e)上記プロセッサの各々に組み合わされ、上記プロセ
ッサにより上記二次メモリに対して処理することを必要
とする無効手段であって、無効である上記二次メモリ内
のデータの有効アドレスを記憶するような無効手段と、 f)読み取り要求が発生した際に、この読み取り要求の
発生時に上記無効手段にある全ての有効アドレスを、上
記バッファ記憶手段に記憶されたデータが上記二次メモ
リへと処理される前に、処理するための直列化手段とを
具備することを特徴とするシステム。 (4)コンピュータシステムにおいて、 1組のデータを記憶するための主メモリと、データを処
理するための複数のプロセッサであって、その各々には
、上記主メモリに記憶されたデータのサブセットを記憶
するための二次メモリが組み合わされており、更に、上
記メモリからデータを読み取るための読み取り要求を発
生する手段も備えているプロセッサと、 上記主メモリ及び各々のプロセッサを接続するためのシ
ステムバスとを具備し、 各々の上記プロセッサは、無効である上記二次メモリ内
のデータのアドレスを記憶するための無効手段と、上記
読み取り要求の1つが発生された後に作動され、上記読
み取り要求の発生時に上記無効手段にある全てのアドレ
スを、上記読み取り要求に応じてデータが上記二次メモ
リにロードされる前に、処理するための直列化手段とを
備えていることを特徴とするシステム。 (5)上記プロセッサの各々は、上記システムバスと上
記二次メモリとの間の経路にバッファ記憶手段を有し、
該バッファ記憶手段は、上記読み取り要求に応答して上
記メモリから読み取ったデータを、それが上記二次メモ
リにロードされる前に記憶する請求項4に記載のシステ
ム。 (6)各プロセッサの上記無効手段は、複数のメモリ位
置を含むFIFOメモリを備え、上記メモリ位置の各々
は、無効である上記データアドレスの1つに対するフィ
ールドと、フラッシュビットに対するフィールドとを有
し、上記直列化手段は上記フラッシュビットに応答して
動作する請求項4に記載のシステム。 (7)各プロセッサの上記無効手段は、全ての上記フラ
ッシュビットに応答して上記直列化手段を制御する論理
手段を備えている請求項6に記載のシステム。 (8)主メモリを共有する複数のプロセッサを有する形
式のコンピュータシステムを操作する方法であって、上
記プロセッサの各々はキャッシュを有し、そして各々の
プロセッサは、上記主メモリに対する読み取り要求及び
書き込み要求を開始し、上記方法は、 上記プロセッサの他のものによってなされた書き込み要
求のアドレスを上記プロセッサの各々に一時的に記憶し
、上記プロセッサによる読み取り要求に応答して主メモ
リから受け取ったデータを上記プロセッサの各々に一時
的に記憶し、そして 上記読み取り要求の前に生じる書き込み要求の上記アド
レスをチェックした後にのみ上記主メモリから受け取っ
た上記データを上記キャッシュへロードするという段階
を備えたことを特徴とする方法。 (9)読み取り要求が開始されたときに存在する上記一
時的に記憶されたアドレスの各々に対してインジケータ
を動作する段階を備えた請求項8に記載の方法。 (10)データをキャッシュへ移動する前記段階の前に
上記インジケータのいずれかが作動されたがどうかを検
出する段階を備えた請求項9に記載の方法。 (11)アドレスがある位置に記憶されたことを指示す
るために上記一時的に記憶されたアドレスの各々に対し
て有効ビットをセットする段階を備えた請求項10に記
載の方法。(12)上記チェック段階は、上記有効ビッ
トに基づいて上記インジケータを作動することを含む請
求項11に記載の方法。 (13)共通のシステムバスを介して主メモリを共有す
る複数のプロセッサを具備し、各々のプロセッサはキャ
ッシュを有し、そして各々のプロセッサは、上記システ
ムバスを介して上記主メモリへの読み取り要求及び書き
込み要求を行なうようなコンピュータシステムにおいて
、上記プロセッサの各々は、 主メモリに対してなされる書き込み要求のアドレスを一
時的に記憶する手段と、 プロセッサによって要求された読み取りに応答して主メ
モリから受け取ったデータを記憶するバッファと、上記
バッファから上記キャッシュへデータをロードする前に
プロセッサによってなされた所与の読み取り要求の前に
生じた上記書き込み要求のアドレスをチェックする手段
とを備えたことを特徴とするシステム。 (14)アドレスを一時的に記憶する上記手段は、読み
取り要求がなされたときに存在する各々の記憶されたア
ドレスに対しインジケータビットをセットする手段を含
む請求項13に記載のシステム。 (15)上記チェック手段は、上記インジケータビット
のいずれかがセットされたかどうか検出するための手段
を含む請求項14に記載のシステム。 (16)アドレスを一時的に記憶する上記手段は、書き
込みアドレスが記憶される各位置に対し有効ビットをセ
ットする手段を備えている請求項15に記載のシステム
。 (17)上記チェック手段は、全ての上記有効ビットを
上記インジケータビットにロードする手段を備えている
請求項16に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21234788A | 1988-06-27 | 1988-06-27 | |
US212347 | 1988-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0272453A true JPH0272453A (ja) | 1990-03-12 |
JPH0786849B2 JPH0786849B2 (ja) | 1995-09-20 |
Family
ID=22790624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1160569A Expired - Fee Related JPH0786849B2 (ja) | 1988-06-27 | 1989-06-22 | 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5579504A (ja) |
EP (1) | EP0349123B1 (ja) |
JP (1) | JPH0786849B2 (ja) |
CA (1) | CA1322058C (ja) |
DE (1) | DE68924306T2 (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU631631B2 (en) * | 1990-04-27 | 1992-12-03 | Digital Equipment Corporation | Improved scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor computer system |
US5530933A (en) * | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
US5717900A (en) * | 1996-01-26 | 1998-02-10 | Unisys Corporation | Adjusting priority cache access operations with multiple level priority states between a central processor and an invalidation queue |
US5900020A (en) * | 1996-06-27 | 1999-05-04 | Sequent Computer Systems, Inc. | Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency |
US5860159A (en) * | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Multiprocessing system including an apparatus for optimizing spin--lock operations |
US5829034A (en) * | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains |
US5940860A (en) * | 1996-07-01 | 1999-08-17 | Sun Microsystems, Inc. | Methods and apparatus for substantially memory-less coherence transformer for connecting computer node coherence domains |
US6523095B1 (en) * | 1996-07-22 | 2003-02-18 | Motorola, Inc. | Method and data processing system for using quick decode instructions |
US6021473A (en) * | 1996-08-27 | 2000-02-01 | Vlsi Technology, Inc. | Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism |
US5860100A (en) * | 1996-10-07 | 1999-01-12 | International Business Machines Corporation | Pipelined flushing of a high level cache and invalidation of lower level caches |
KR100240572B1 (ko) * | 1996-12-05 | 2000-01-15 | 윤종용 | 프로그램 메모리를 공유하는 멀티 프로세서 시스템 |
US5764932A (en) * | 1996-12-23 | 1998-06-09 | Intel Corporation | Method and apparatus for implementing a dual processing protocol between processors |
US6341301B1 (en) | 1997-01-10 | 2002-01-22 | Lsi Logic Corporation | Exclusive multiple queue handling using a common processing algorithm |
US5922057A (en) * | 1997-01-10 | 1999-07-13 | Lsi Logic Corporation | Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore |
US5894569A (en) * | 1997-04-14 | 1999-04-13 | International Business Machines Corporation | Method and system for back-end gathering of store instructions within a data-processing system |
US5940611A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Method and system for front-end gathering of store instructions within a data-processing system |
US5956503A (en) * | 1997-04-14 | 1999-09-21 | International Business Machines Corporation | Method and system for front-end and back-end gathering of store instructions within a data-processing system |
US5924118A (en) * | 1997-04-14 | 1999-07-13 | International Business Machines Corporation | Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system |
TW386192B (en) * | 1997-04-14 | 2000-04-01 | Ibm | Method and system for speculatively sourcing cache memory data within a data-processing system |
US6105112A (en) * | 1997-04-14 | 2000-08-15 | International Business Machines Corporation | Dynamic folding of cache operations for multiple coherency-size 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 |
US6154816A (en) * | 1997-10-24 | 2000-11-28 | Compaq Computer Corp. | Low occupancy protocol for managing concurrent transactions with dependencies |
US6122714A (en) * | 1997-10-24 | 2000-09-19 | Compaq Computer Corp. | Order supporting mechanisms for use in a switch-based multi-processor system |
US6647468B1 (en) | 1999-02-26 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment |
NO312926B1 (no) * | 1999-07-20 | 2002-07-15 | Ericsson Telefon Ab L M | Kommunikasjon over multimaster buss |
US6473819B1 (en) | 1999-12-17 | 2002-10-29 | International Business Machines Corporation | Scalable interruptible queue locks for shared-memory multiprocessor |
US6493809B1 (en) | 2000-01-28 | 2002-12-10 | International Business Machines Corporation | Maintaining order of write operations in a multiprocessor for memory consistency |
US6591332B1 (en) * | 2000-04-28 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Apparatus and method for tracking flushes of cache entries in a data processing system |
US8435225B2 (en) * | 2000-06-02 | 2013-05-07 | Fox Hollow Technologies, Inc. | Embolization protection system for vascular procedures |
US7640315B1 (en) | 2000-08-04 | 2009-12-29 | Advanced Micro Devices, Inc. | Implementing locks in a distributed processing system |
US6651143B2 (en) * | 2000-12-21 | 2003-11-18 | International Business Machines Corporation | Cache management using a buffer for invalidation requests |
US20040019729A1 (en) * | 2002-07-29 | 2004-01-29 | Kelley Richard A. | Buffer management and transaction control for transition bridges |
US6892290B2 (en) * | 2002-10-03 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Linked-list early race resolution mechanism |
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 |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a 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 |
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 |
US7003635B2 (en) * | 2002-10-03 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Generalized active inheritance consistency mechanism having linked writes |
US7000080B2 (en) * | 2002-10-03 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Channel-based late race resolution mechanism for a computer system |
US20040123004A1 (en) * | 2002-12-19 | 2004-06-24 | International Business Machines Corporation | An improved fifo based controller circuit for slave devices attached to a cpu bus |
US8117392B2 (en) * | 2003-10-22 | 2012-02-14 | Intel Corporation | Method and apparatus for efficient ordered stores over an interconnection network |
US7325098B1 (en) * | 2004-09-03 | 2008-01-29 | Unisys Corporation | System and method for non-destructive handling of outsized words by a cache |
US9021502B2 (en) * | 2008-12-29 | 2015-04-28 | Oracle America Inc. | Method and system for inter-thread communication using processor messaging |
US9367464B2 (en) * | 2011-12-30 | 2016-06-14 | Intel Corporation | Cache circuit having a tag array with smaller latency than a data array |
US10802830B2 (en) * | 2019-03-05 | 2020-10-13 | International Business Machines Corporation | Imprecise register dependency tracking |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56156980A (en) * | 1980-05-01 | 1981-12-03 | Nec Corp | Data processor |
JPS5864690A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | キヤツシユメモリ制御方法 |
JPS617960A (ja) * | 1984-06-22 | 1986-01-14 | Fujitsu Ltd | バツフア無効化制御方式 |
JPS62202247A (ja) * | 1985-11-25 | 1987-09-05 | Nec Corp | キヤツシユメモリ内容一致処理方式 |
JPS62288949A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | シリアライズ命令制御装置 |
JPS63101943A (ja) * | 1986-10-17 | 1988-05-06 | Fujitsu Ltd | キヤツシユム−ブイン制御方式 |
JPH01196642A (ja) * | 1988-02-01 | 1989-08-08 | Fujitsu Ltd | キャッシュ無効化制御方式 |
JPH01251247A (ja) * | 1988-02-22 | 1989-10-06 | Internatl Business Mach Corp <Ibm> | キヤツシユメモリサブシステム |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3889237A (en) * | 1973-11-16 | 1975-06-10 | Sperry Rand Corp | Common storage controller for dual processor system |
US3938097A (en) * | 1974-04-01 | 1976-02-10 | Xerox Corporation | Memory and buffer arrangement for digital computers |
US4141067A (en) * | 1977-06-13 | 1979-02-20 | General Automation | Multiprocessor system with cache memory |
US4142234A (en) * | 1977-11-28 | 1979-02-27 | International Business Machines Corporation | Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system |
US4161024A (en) * | 1977-12-22 | 1979-07-10 | Honeywell Information Systems Inc. | Private cache-to-CPU interface in a bus oriented data processing system |
US4195340A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | First in first out activity queue for a cache store |
US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
US4277826A (en) * | 1978-10-23 | 1981-07-07 | Collins Robert W | Synchronizing mechanism for page replacement control |
US4282572A (en) * | 1979-01-15 | 1981-08-04 | Ncr Corporation | Multiprocessor memory access system |
JPS5953631B2 (ja) * | 1979-08-24 | 1984-12-26 | 株式会社日立製作所 | 記憶制御装置 |
US4349871A (en) * | 1980-01-28 | 1982-09-14 | Digital Equipment Corporation | Duplicate tag store for cached multiprocessor system |
US4371928A (en) * | 1980-04-15 | 1983-02-01 | Honeywell Information Systems Inc. | Interface for controlling information transfers between main data processing systems units and a central subsystem |
JPS56169281A (en) * | 1980-06-02 | 1981-12-25 | Hitachi Ltd | Data processor |
US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
US4426682A (en) * | 1981-05-22 | 1984-01-17 | Harris Corporation | Fast cache flush mechanism |
US4525777A (en) * | 1981-08-03 | 1985-06-25 | Honeywell Information Systems Inc. | Split-cycle cache system with SCU controlled cache clearing during cache store access period |
US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
US4494190A (en) * | 1982-05-12 | 1985-01-15 | Honeywell Information Systems Inc. | FIFO buffer to cache memory |
JPS5981661A (ja) * | 1982-10-30 | 1984-05-11 | Fuji Photo Film Co Ltd | 電子写真帯電装置 |
US4616310A (en) * | 1983-05-20 | 1986-10-07 | International Business Machines Corporation | Communicating random access memory |
US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
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 |
JPS60205760A (ja) * | 1984-03-30 | 1985-10-17 | Fuji Xerox Co Ltd | メモリ制御装置 |
CA1241768A (en) * | 1984-06-22 | 1988-09-06 | Miyuki Ishida | Tag control circuit for buffer storage |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
-
1989
- 1989-05-30 DE DE68924306T patent/DE68924306T2/de not_active Expired - Fee Related
- 1989-05-30 EP EP89305429A patent/EP0349123B1/en not_active Expired - Lifetime
- 1989-06-22 JP JP1160569A patent/JPH0786849B2/ja not_active Expired - Fee Related
- 1989-06-26 CA CA000603889A patent/CA1322058C/en not_active Expired - Fee Related
-
1995
- 1995-03-17 US US08/407,784 patent/US5579504A/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56156980A (en) * | 1980-05-01 | 1981-12-03 | Nec Corp | Data processor |
JPS5864690A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | キヤツシユメモリ制御方法 |
JPS617960A (ja) * | 1984-06-22 | 1986-01-14 | Fujitsu Ltd | バツフア無効化制御方式 |
JPS62202247A (ja) * | 1985-11-25 | 1987-09-05 | Nec Corp | キヤツシユメモリ内容一致処理方式 |
JPS62288949A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | シリアライズ命令制御装置 |
JPS63101943A (ja) * | 1986-10-17 | 1988-05-06 | Fujitsu Ltd | キヤツシユム−ブイン制御方式 |
JPH01196642A (ja) * | 1988-02-01 | 1989-08-08 | Fujitsu Ltd | キャッシュ無効化制御方式 |
JPH01251247A (ja) * | 1988-02-22 | 1989-10-06 | Internatl Business Mach Corp <Ibm> | キヤツシユメモリサブシステム |
Also Published As
Publication number | Publication date |
---|---|
DE68924306D1 (de) | 1995-10-26 |
EP0349123B1 (en) | 1995-09-20 |
EP0349123A3 (en) | 1991-04-17 |
US5579504A (en) | 1996-11-26 |
EP0349123A2 (en) | 1990-01-03 |
DE68924306T2 (de) | 1996-05-09 |
JPH0786849B2 (ja) | 1995-09-20 |
CA1322058C (en) | 1993-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0272453A (ja) | 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム | |
US12061562B2 (en) | Computer memory expansion device and method of operation | |
EP0547246B1 (en) | Microprocessor architecture capable of supporting multiple heterogeneous processors | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US5426765A (en) | Multiprocessor cache abitration | |
JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
US5561779A (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
US6249846B1 (en) | Distributed data dependency stall mechanism | |
US6366984B1 (en) | Write combining buffer that supports snoop request | |
US5261106A (en) | Semaphore bypass | |
US6321296B1 (en) | SDRAM L3 cache using speculative loads with command aborts to lower latency | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JPH1031625A (ja) | マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
EP0681241A1 (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
US6513104B1 (en) | Byte-wise write allocate with retry tracking | |
JPH06282528A (ja) | データ転送方法及びそのシステム | |
JPH06309231A (ja) | キャッシュメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |