JPH0786849B2 - 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム - Google Patents
共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステムInfo
- Publication number
- JPH0786849B2 JPH0786849B2 JP1160569A JP16056989A JPH0786849B2 JP H0786849 B2 JPH0786849 B2 JP H0786849B2 JP 1160569 A JP1160569 A JP 1160569A JP 16056989 A JP16056989 A JP 16056989A JP H0786849 B2 JPH0786849 B2 JP H0786849B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- cache
- queue
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 122
- 238000012545 processing Methods 0.000 claims description 8
- 238000013479 data entry Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 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
- 238000012546 transfer Methods 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)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は、一般に、キャッシュメモリを用いたコンピュ
ータシステムに係り、より詳細には、ローカルキャッシ
ュメモリのいずれか又は全てに存在する共有データの多
数のコピーを有するマルチプロセッサコンピュータシス
テムに係る。
ータシステムに係り、より詳細には、ローカルキャッシ
ュメモリのいずれか又は全てに存在する共有データの多
数のコピーを有するマルチプロセッサコンピュータシス
テムに係る。
従来の技術 典型的な単一プロセッサコンピュータシステムのアーキ
テクチャは、ホン・ニューマンのコンピュータモデルの
ある変形であると考えることができる。このモデルによ
れば、命令及びデータが同じメモリに記憶され、プロセ
ッサは、メモリから命令を1つづつフェッチし、命令で
指定されたようにデータに対してオペランドを実行す
る。プロセッサの速度が増すにつれて、主コンピュータ
メモリのアクセス時間をプロセッサの計算時間に適当に
一致させる方法を見出すことが必要となる。これを達成
する1つの公知方法は、典型的に主メモリよりもアクセ
ス時間が相当に速いキャッシュメモリを使用することで
あるが、これは主メモリよりも何倍も高価なものとな
る。
テクチャは、ホン・ニューマンのコンピュータモデルの
ある変形であると考えることができる。このモデルによ
れば、命令及びデータが同じメモリに記憶され、プロセ
ッサは、メモリから命令を1つづつフェッチし、命令で
指定されたようにデータに対してオペランドを実行す
る。プロセッサの速度が増すにつれて、主コンピュータ
メモリのアクセス時間をプロセッサの計算時間に適当に
一致させる方法を見出すことが必要となる。これを達成
する1つの公知方法は、典型的に主メモリよりもアクセ
ス時間が相当に速いキャッシュメモリを使用することで
あるが、これは主メモリよりも何倍も高価なものとな
る。
キャッシュメモリは、主メモリに記憶された情報のある
サブセットを含んでおり、処理ユニットとシステムバス
との間に存在して、プロセッサと主メモリとの間にデー
タ路を形成する。プロセッサがそのキャッシュにコピー
された主メモリ位置をアクセスしようと試みるときには
(キャッシュ“ヒット”)、CPUに所要の値を供給する
のに主メモリへのアクセスが必要とされず、プロセッサ
は非常に迅速に動作を再開することができる。一方、プ
ロセッサがキャッシュにコピーされていない主メモリ位
置をアクセスしようと試みるときには(キャッシュ“ミ
ス”)、主メモリへのアクセスを行なわねばならない。
この場合、読み取りデータがプロセッサ及びキャッシュ
の両方に送られ、そのメモリ位置へアクセスするための
その後の幾つかの試みによってキャッシュのヒットが生
じるようにされる。このように、プロセッサに対する効
果的なメモリアクセス時間は、キャッシュメモリの高速
アクセス時間と主メモリの低速なアクセス時間との間の
ある値まで減少される。キャッシュメモリは、通常、主
メモリよりも1桁以上小さいので、キャッシュメモリを
制御するコンピュータサブシステムは、どのメモリ位置
をどのキャッシュ位置に対応させるか(マッピング機
能)そして新たなメモリ位置を既にいっぱいのキャッシ
ュに書き込むべき場合にどのキャッシュ位置を重畳書き
込みすべきであるか(キャッシュ交換アルゴリズム)を
決定する方法を使用しなければならない。これらの任意
の構成を判断しながら選択することによりキャッシュの
「ヒット率」(キャッシュヒットを生じるメモリアクセ
ス要求のパーセンテージ)が90ないし99%に達する。
サブセットを含んでおり、処理ユニットとシステムバス
との間に存在して、プロセッサと主メモリとの間にデー
タ路を形成する。プロセッサがそのキャッシュにコピー
された主メモリ位置をアクセスしようと試みるときには
(キャッシュ“ヒット”)、CPUに所要の値を供給する
のに主メモリへのアクセスが必要とされず、プロセッサ
は非常に迅速に動作を再開することができる。一方、プ
ロセッサがキャッシュにコピーされていない主メモリ位
置をアクセスしようと試みるときには(キャッシュ“ミ
ス”)、主メモリへのアクセスを行なわねばならない。
この場合、読み取りデータがプロセッサ及びキャッシュ
の両方に送られ、そのメモリ位置へアクセスするための
その後の幾つかの試みによってキャッシュのヒットが生
じるようにされる。このように、プロセッサに対する効
果的なメモリアクセス時間は、キャッシュメモリの高速
アクセス時間と主メモリの低速なアクセス時間との間の
ある値まで減少される。キャッシュメモリは、通常、主
メモリよりも1桁以上小さいので、キャッシュメモリを
制御するコンピュータサブシステムは、どのメモリ位置
をどのキャッシュ位置に対応させるか(マッピング機
能)そして新たなメモリ位置を既にいっぱいのキャッシ
ュに書き込むべき場合にどのキャッシュ位置を重畳書き
込みすべきであるか(キャッシュ交換アルゴリズム)を
決定する方法を使用しなければならない。これらの任意
の構成を判断しながら選択することによりキャッシュの
「ヒット率」(キャッシュヒットを生じるメモリアクセ
ス要求のパーセンテージ)が90ないし99%に達する。
然し乍ら、各メモリの使用によるシステム効率の増大に
伴い、データコヒレンスの問題も生じる。即ち、キャッ
シュ位置は、これに対応する主メモリ位置と同じ値を保
持するように確保しなければならない。データコヒレン
スを維持する1つの方法は、当該位置へのメモリ書き込
みアクセスが要求されるたびにキャッシュメモリに含ま
れたデータの変更値をキャッシュメモリ及びそれに対応
する主メモリ位置の両方に書き込むことである。この方
法は、「書き込みスルー」ポリシーと称する。別のキャ
ッシュコヒレンス技術は、「書き込みバック」ポリシー
に関するもので、この場合には、対応するキャッシュ位
置を重畳書き込みしなければならなくなるまで、変更さ
れたデータ値が低速の主メモリに書き込まれないもので
ある。これらのポリシー間で兼ね合いをとる場合、書き
込みスルーポリシーにおいては各書き込みアクセスのた
びに主メモリを更新する際にメモリサブシステムレベル
でより広い帯域巾が要求され、一方、書き込みバックポ
リシーにおいてはキャッシュコヒレンスの複雑さが増大
する。充分な帯域巾を有するシステムにおいては、書き
込みスルーポリシーがその簡単さからしばしば好ましい
ものとなる。
伴い、データコヒレンスの問題も生じる。即ち、キャッ
シュ位置は、これに対応する主メモリ位置と同じ値を保
持するように確保しなければならない。データコヒレン
スを維持する1つの方法は、当該位置へのメモリ書き込
みアクセスが要求されるたびにキャッシュメモリに含ま
れたデータの変更値をキャッシュメモリ及びそれに対応
する主メモリ位置の両方に書き込むことである。この方
法は、「書き込みスルー」ポリシーと称する。別のキャ
ッシュコヒレンス技術は、「書き込みバック」ポリシー
に関するもので、この場合には、対応するキャッシュ位
置を重畳書き込みしなければならなくなるまで、変更さ
れたデータ値が低速の主メモリに書き込まれないもので
ある。これらのポリシー間で兼ね合いをとる場合、書き
込みスルーポリシーにおいては各書き込みアクセスのた
びに主メモリを更新する際にメモリサブシステムレベル
でより広い帯域巾が要求され、一方、書き込みバックポ
リシーにおいてはキャッシュコヒレンスの複雑さが増大
する。充分な帯域巾を有するシステムにおいては、書き
込みスルーポリシーがその簡単さからしばしば好ましい
ものとなる。
近年、処理ユニットのコストが下がってきたことによ
り、複数のプロセッサが互いに同時に動作し、一方、共
通のシステムバスを介して共通の主メモリスペースをア
クセスするようなホン・ニューマンのマシーン構成から
根本的に異なるものが容易に現われるようになった。各
プロセッサは、プロセッサとシステムバスとの間にそれ
自身の私用キャッシュを有することができる。このよう
なマルチプロセッサシステムでは、キャッシュメモリの
使用が単一プロセッサシステムの場合よりシステム性能
に著しく影響する。というのは、各プロセッサが共通の
システムバスを使用して共有メモリにアクセスするため
に他のプロセッサとの競合が生じるからである。又、同
様に、データコヒレンスの問題も顕著なものとなる。と
いうのは、単一の主メモリ位置に記憶された値がいずれ
か或いは全てのプロセッサの私用キャッシュメモリに一
度に複写されるからである。ローカルキャッシュメモリ
の各々が書き込みバックポリシーを使用する場合には、
1つのプロセッサがあるメモリ位置の値を変更してその
変更をそのキャッシュメモリに書き込むときにいずれか
の他のローカルキャッシュのそのメモリ位置のコピーが
その1つのプロセッサによって行なわれた変更を表わす
ようにシステムがともかく確保しなければならない。
り、複数のプロセッサが互いに同時に動作し、一方、共
通のシステムバスを介して共通の主メモリスペースをア
クセスするようなホン・ニューマンのマシーン構成から
根本的に異なるものが容易に現われるようになった。各
プロセッサは、プロセッサとシステムバスとの間にそれ
自身の私用キャッシュを有することができる。このよう
なマルチプロセッサシステムでは、キャッシュメモリの
使用が単一プロセッサシステムの場合よりシステム性能
に著しく影響する。というのは、各プロセッサが共通の
システムバスを使用して共有メモリにアクセスするため
に他のプロセッサとの競合が生じるからである。又、同
様に、データコヒレンスの問題も顕著なものとなる。と
いうのは、単一の主メモリ位置に記憶された値がいずれ
か或いは全てのプロセッサの私用キャッシュメモリに一
度に複写されるからである。ローカルキャッシュメモリ
の各々が書き込みバックポリシーを使用する場合には、
1つのプロセッサがあるメモリ位置の値を変更してその
変更をそのキャッシュメモリに書き込むときにいずれか
の他のローカルキャッシュのそのメモリ位置のコピーが
その1つのプロセッサによって行なわれた変更を表わす
ようにシステムがともかく確保しなければならない。
本発明は、時分割システムバスを介して共通のメモリス
ペースを共有する複数のCPUモジュールと、1つ以上のI
/Oモジュールとを備えたマルチプロセッサコンピュータ
システムに関する。共通のメモリスペースは、共有シス
テムメモリの一部分を各々含む複数のメモリモジュール
として構成することができる。CPUモジュールは、命令
を実行するプロセッサと、使用キャッシュメモリユニッ
トと、CPUモジュールを効率的に制御すると共にCPUモジ
ュールをシステムの他の要素と同期させるための付加的
なサポートハードウェアとを備えている。I/Oモジュー
ルは、システムバスをI/Oバスにインターフェイスし
て、ディスクドライブやテープドライブやディスプレイ
装置やプリンタやモデムのような入力/出力装置と転送
を行なえるようにする。
ペースを共有する複数のCPUモジュールと、1つ以上のI
/Oモジュールとを備えたマルチプロセッサコンピュータ
システムに関する。共通のメモリスペースは、共有シス
テムメモリの一部分を各々含む複数のメモリモジュール
として構成することができる。CPUモジュールは、命令
を実行するプロセッサと、使用キャッシュメモリユニッ
トと、CPUモジュールを効率的に制御すると共にCPUモジ
ュールをシステムの他の要素と同期させるための付加的
なサポートハードウェアとを備えている。I/Oモジュー
ルは、システムバスをI/Oバスにインターフェイスし
て、ディスクドライブやテープドライブやディスプレイ
装置やプリンタやモデムのような入力/出力装置と転送
を行なえるようにする。
マルチプロセッサシステムの分野で一般に知られている
ように、システムバスにインターフェイスされたモジュ
ールは、ヌル、読み取り、書き込み及び読み取りデータ
トランザクションの4種類のトランザクションのうちの
1つをバスにおいて開始することができる。これらトラ
ンザクションの1つをバスにおいて行なう時間をバスサ
イクルと称する。ヌルトランザクションは、バスを要求
するモジュールがないときに生じ、全てのモジュールに
よって無視される。読み取りトランザクションは、CPU
又はI/Oモジュールがメモリデータを返送する要求をメ
モリモジュールに送信するものである。書き込みトラン
ザクションは、CPU又はI/Oモジュールが新たなメモリデ
ータを書き込むための要求をメモリモジュールに送信す
るものである。読み取りデータトランザクションは、メ
モリモジュールがデータをCPUに返送するか又はI/Oモジ
ュールが手前の読み取りトランザクションに応答するよ
うなものである。種々のモジュール間でシステムバスを
使用するための競合は、そのシステムバスの実施に対し
て特定であり且つ仲裁プロトコルの分野で知られている
あるやり方で仲裁される。
ように、システムバスにインターフェイスされたモジュ
ールは、ヌル、読み取り、書き込み及び読み取りデータ
トランザクションの4種類のトランザクションのうちの
1つをバスにおいて開始することができる。これらトラ
ンザクションの1つをバスにおいて行なう時間をバスサ
イクルと称する。ヌルトランザクションは、バスを要求
するモジュールがないときに生じ、全てのモジュールに
よって無視される。読み取りトランザクションは、CPU
又はI/Oモジュールがメモリデータを返送する要求をメ
モリモジュールに送信するものである。書き込みトラン
ザクションは、CPU又はI/Oモジュールが新たなメモリデ
ータを書き込むための要求をメモリモジュールに送信す
るものである。読み取りデータトランザクションは、メ
モリモジュールがデータをCPUに返送するか又はI/Oモジ
ュールが手前の読み取りトランザクションに応答するよ
うなものである。種々のモジュール間でシステムバスを
使用するための競合は、そのシステムバスの実施に対し
て特定であり且つ仲裁プロトコルの分野で知られている
あるやり方で仲裁される。
CPUモジュールに関連したサポートハードウェアの一部
分として、公知技術では、読み取りデータ待ち行列と称
する構造体がシステムバスとCPUモジュールとの間に導
入されることが示唆されている。この構造体は、読み取
りトランザクションに応答してメモリモジュールから返
送されたデータの値を保持する。読み取りデータを待ち
行列に入れることにより、主メモリのアクセスが行なわ
れる間にプロセッサが返送されるべきデータを待機して
アイドル状態になるのではなく他のタスクを実行できる
ことになって、システム性能が向上される。読み取りデ
ータ待ち行列は、データフィールド及び有効ビットを各
々含む多数の入力を備えた先入れ先出し(FIFO)待ち行
列である。有効ビットがセットされたときには、有効デ
ータがその入力にあり、即ち、その入力が「いっぱい」
であることを指示することが理解されよう。その入力の
有効ビットがセットされない場合には、その入力が
「空」であり、即ち何のデータも含まない。CPUモジュ
ールが読み取りデータトランザクションによって主メモ
リからデータを受け取るときには、そのデータが読み取
りデータ待ち行列の一端に入れられ、その入力に対して
有効ビットがセットされる。CPUが入ってくるデータを
受入れてそのキャッシュメモリに入れる準備ができたと
きには、第1の有効入力が待ち行列の他端から除去さ
れ、有効ビットがクリアされる。
分として、公知技術では、読み取りデータ待ち行列と称
する構造体がシステムバスとCPUモジュールとの間に導
入されることが示唆されている。この構造体は、読み取
りトランザクションに応答してメモリモジュールから返
送されたデータの値を保持する。読み取りデータを待ち
行列に入れることにより、主メモリのアクセスが行なわ
れる間にプロセッサが返送されるべきデータを待機して
アイドル状態になるのではなく他のタスクを実行できる
ことになって、システム性能が向上される。読み取りデ
ータ待ち行列は、データフィールド及び有効ビットを各
々含む多数の入力を備えた先入れ先出し(FIFO)待ち行
列である。有効ビットがセットされたときには、有効デ
ータがその入力にあり、即ち、その入力が「いっぱい」
であることを指示することが理解されよう。その入力の
有効ビットがセットされない場合には、その入力が
「空」であり、即ち何のデータも含まない。CPUモジュ
ールが読み取りデータトランザクションによって主メモ
リからデータを受け取るときには、そのデータが読み取
りデータ待ち行列の一端に入れられ、その入力に対して
有効ビットがセットされる。CPUが入ってくるデータを
受入れてそのキャッシュメモリに入れる準備ができたと
きには、第1の有効入力が待ち行列の他端から除去さ
れ、有効ビットがクリアされる。
無効待ち行列と称する別のFIFO構造体をシステムバスと
CPUモジュールとの間に導入することもできる。この無
効待ち行列は、少なくともアドレスフィールドと有効ビ
ットとを各々含む「無効状態」と称する多数の入力を含
む。CPUは、コヒレントなトランザクションに対してシ
ステムバスを監視する。書き込みスルーポリシーを用い
たシステムにおいては、CPUモジュールが書き込みトラ
ンザクションに対してシステムバスを監視する。システ
ムバスにおいて何等かのデータ書き込みトランザクショ
ンが検出されたときには、そのトランザクションのアド
レスがCPUモジュールの無効待ち行列の一端に入れら
れ、有効ビットがセットされて、その入力がいっぱいで
あることを指示する。CPUが無効状態を処理できるとき
には、第1の有効入力が無効待ち行列の他端から取り去
られ、その有効ビットがクリアされる。書き込みトラン
ザクションのアドレスは、キャッシュの内容に対してチ
ェックされ、もし存在すれば、そのアドレスに対応する
入力が無効(空)と印される。このようにして、CPU
は、古いデータ値を使用することが防止される。
CPUモジュールとの間に導入することもできる。この無
効待ち行列は、少なくともアドレスフィールドと有効ビ
ットとを各々含む「無効状態」と称する多数の入力を含
む。CPUは、コヒレントなトランザクションに対してシ
ステムバスを監視する。書き込みスルーポリシーを用い
たシステムにおいては、CPUモジュールが書き込みトラ
ンザクションに対してシステムバスを監視する。システ
ムバスにおいて何等かのデータ書き込みトランザクショ
ンが検出されたときには、そのトランザクションのアド
レスがCPUモジュールの無効待ち行列の一端に入れら
れ、有効ビットがセットされて、その入力がいっぱいで
あることを指示する。CPUが無効状態を処理できるとき
には、第1の有効入力が無効待ち行列の他端から取り去
られ、その有効ビットがクリアされる。書き込みトラン
ザクションのアドレスは、キャッシュの内容に対してチ
ェックされ、もし存在すれば、そのアドレスに対応する
入力が無効(空)と印される。このようにして、CPU
は、古いデータ値を使用することが防止される。
マルチプロセッサシステムにおけるキャッシュのコヒレ
ンスは、各キャッシュメモリがトランザクションをそれ
らがシステムバスにおいて生じたのと同じ順序で処理す
るときに維持される。システムバスに現われた無効状態
の順序は、それらを保持するFIFO待ち行列によって保持
することができる。同様に、読み取りデータトランザク
ションの順序も、それらのFIFO待ち行列において保持で
きる。然し乍ら、不都合なことに、読み取りデータトラ
ンザクションに対する無効状態の順序、或いはこれと同
等のことであるがシステムバスに現われる無効状態に対
する読み取りデータトランザクションの順序は、別々の
読み取りデータ及び無効待ち行列の使用によって保持さ
れない。
ンスは、各キャッシュメモリがトランザクションをそれ
らがシステムバスにおいて生じたのと同じ順序で処理す
るときに維持される。システムバスに現われた無効状態
の順序は、それらを保持するFIFO待ち行列によって保持
することができる。同様に、読み取りデータトランザク
ションの順序も、それらのFIFO待ち行列において保持で
きる。然し乍ら、不都合なことに、読み取りデータトラ
ンザクションに対する無効状態の順序、或いはこれと同
等のことであるがシステムバスに現われる無効状態に対
する読み取りデータトランザクションの順序は、別々の
読み取りデータ及び無効待ち行列の使用によって保持さ
れない。
全ての形態のこの直列化技術がコヒレンスの問題を充分
に解決することはない。例えば、1つの技術は、読み取
りデータをキャッシュメモリに送信する前に無効待ち行
列が空になるのを待機することである。然し乍ら、これ
は、マルチプロセッサシステムにおけるキャッシュコヒ
レンスの問題を充分に解決するものではない。というの
は、システムバスにおける新たな書き込みがキャッシュ
メモリによって無効状態として処理されるのと同程度の
速さで無効待ち行列の端に加えられるような最悪の場合
のトラヒックパターンを構成できるからである。このよ
うな状態においては、無効待ち行列が決して空にならな
いので、読み取りデータはキャッシュメモリに決して戻
されない。本発明の方法は、一定の所定数の無効状態が
処理されてしまうまでキャッシュへの読み取りデータの
送信が禁止されるだけであるから、このような病理学的
な特性に陥ることはない。
に解決することはない。例えば、1つの技術は、読み取
りデータをキャッシュメモリに送信する前に無効待ち行
列が空になるのを待機することである。然し乍ら、これ
は、マルチプロセッサシステムにおけるキャッシュコヒ
レンスの問題を充分に解決するものではない。というの
は、システムバスにおける新たな書き込みがキャッシュ
メモリによって無効状態として処理されるのと同程度の
速さで無効待ち行列の端に加えられるような最悪の場合
のトラヒックパターンを構成できるからである。このよ
うな状態においては、無効待ち行列が決して空にならな
いので、読み取りデータはキャッシュメモリに決して戻
されない。本発明の方法は、一定の所定数の無効状態が
処理されてしまうまでキャッシュへの読み取りデータの
送信が禁止されるだけであるから、このような病理学的
な特性に陥ることはない。
発明の構成 本発明は、CPUモジュールの各待ち行列からの入力を正
しい直列化順序で処理し、各CPUが共有データの最も最
近書き込まれた値を用いて種々のシステム要素の中でデ
ータのコヒレンス性を維持できるようにする方法及び装
置を提供する。
しい直列化順序で処理し、各CPUが共有データの最も最
近書き込まれた値を用いて種々のシステム要素の中でデ
ータのコヒレンス性を維持できるようにする方法及び装
置を提供する。
本発明によって構成されたマルチプロセッサコンピュー
タシステムは、共通のシステムバスにインターフェイス
された複数のCPUモジュール及び複数のI/Oモジュールを
備えている。これらのモジュールは、コンピュータシス
テムの主メモリを画成すると共に時分割システムバスに
もインターフェイスされる複数のメモリモジュールへの
アクセスを分担する。CPUモジュールの各々は、中央プ
ロセッサに加えて、情報のあるサブセットを主メモリに
記憶するのに用いられるローカルキャッシュメモリと、
読み取りデータ待ち行列と、無効待ち行列とを備え、こ
れらの待ち行列は、各々、主メモリからフェッチされて
キャッシュへ送られるべきデータ値と、システムバス上
で検出されてキャッシュの潜在的なストールデータを識
別するのに用いられる書き込みトランザクションの記録
とを保持する。読み取りデータ待ち行列の各入力は、有
効ビットと称するビットフィールドが組み合わされてお
り、これは、セットされると、その入力におけるデータ
が有効であることを指示する。無効待ち行列の入力は、
各々、有効ビットに加えて、フラッシュビットと称する
当該1ビットフィールドを有していなければならず、こ
のビットは、読み取りデータ待ち行列からの読み取りデ
ータを受け入れる前にどの無効状態をキャッシュメモリ
によって処理しなければならないかを判断するために使
用されねばならない。これらの待ち行列は、データが一
端から入力されそして他端から取り出されるFIFO構造体
である。
タシステムは、共通のシステムバスにインターフェイス
された複数のCPUモジュール及び複数のI/Oモジュールを
備えている。これらのモジュールは、コンピュータシス
テムの主メモリを画成すると共に時分割システムバスに
もインターフェイスされる複数のメモリモジュールへの
アクセスを分担する。CPUモジュールの各々は、中央プ
ロセッサに加えて、情報のあるサブセットを主メモリに
記憶するのに用いられるローカルキャッシュメモリと、
読み取りデータ待ち行列と、無効待ち行列とを備え、こ
れらの待ち行列は、各々、主メモリからフェッチされて
キャッシュへ送られるべきデータ値と、システムバス上
で検出されてキャッシュの潜在的なストールデータを識
別するのに用いられる書き込みトランザクションの記録
とを保持する。読み取りデータ待ち行列の各入力は、有
効ビットと称するビットフィールドが組み合わされてお
り、これは、セットされると、その入力におけるデータ
が有効であることを指示する。無効待ち行列の入力は、
各々、有効ビットに加えて、フラッシュビットと称する
当該1ビットフィールドを有していなければならず、こ
のビットは、読み取りデータ待ち行列からの読み取りデ
ータを受け入れる前にどの無効状態をキャッシュメモリ
によって処理しなければならないかを判断するために使
用されねばならない。これらの待ち行列は、データが一
端から入力されそして他端から取り出されるFIFO構造体
である。
CPUモジュールが読み取りトランザクションを発生した
ときには、無効待ち行列の全ての入力に対し有効ビット
をフラッシュビットにコピーする。読み取りトランザク
ションが発せられたときに無効待ち行列の入力に対する
有効ビットがゼロである場合には、この動作の後にフラ
ッシュビットもゼロになる。同様に、いずれかの入力に
対する有効ビットが1である場合には、フラッシュビッ
トも1になる。このように、CPUモジュールは、読み取
りトランザクションが開始されたときに有効であった無
効待ち行列入力を追跡することができる。
ときには、無効待ち行列の全ての入力に対し有効ビット
をフラッシュビットにコピーする。読み取りトランザク
ションが発せられたときに無効待ち行列の入力に対する
有効ビットがゼロである場合には、この動作の後にフラ
ッシュビットもゼロになる。同様に、いずれかの入力に
対する有効ビットが1である場合には、フラッシュビッ
トも1になる。このように、CPUモジュールは、読み取
りトランザクションが開始されたときに有効であった無
効待ち行列入力を追跡することができる。
CPUは、主メモリからキャッシュメモリへ読み取りデー
タを受け入れることができる前に、読み取りトランザク
ションが発せられたときに有効であった全ての無効待ち
行列入力を最初に処理する。次いで、CPUは、そのキャ
ッシュのデータが読み取りトランザクションが発せられ
たときの主メモリのデータに対応する正確なコピーを表
わすように確保する。
タを受け入れることができる前に、読み取りトランザク
ションが発せられたときに有効であった全ての無効待ち
行列入力を最初に処理する。次いで、CPUは、そのキャ
ッシュのデータが読み取りトランザクションが発せられ
たときの主メモリのデータに対応する正確なコピーを表
わすように確保する。
これは、CPUが読み取りデータを受け入れる前に全ての
有効な無効待ち行列入力を処理しなければならないこと
を意味するものではない。読み取りトランザクションが
行なわれる前に有効であった入力のみを、読み取りデー
タ受け入れの前に処理すればよい。読み取りトランザク
ションと読み取りデータトランザクションとの間の時間
中に無効待ち行列に入れられた無効状態は、フラッシュ
ビットではなくて有効ビットのみがセットされ、これら
の入力は、読み取りトランザクションを開始する前に行
なわれた主メモリデータへの変更を表わすものではな
い。
有効な無効待ち行列入力を処理しなければならないこと
を意味するものではない。読み取りトランザクションが
行なわれる前に有効であった入力のみを、読み取りデー
タ受け入れの前に処理すればよい。読み取りトランザク
ションと読み取りデータトランザクションとの間の時間
中に無効待ち行列に入れられた無効状態は、フラッシュ
ビットではなくて有効ビットのみがセットされ、これら
の入力は、読み取りトランザクションを開始する前に行
なわれた主メモリデータへの変更を表わすものではな
い。
実施例 本発明によるマルチプロセッサ式のコンピュータシステ
ム8の一般的な構成が第1図に示されている。システム
の共有主メモリを含む複数のN個のメモリモジュール10
が設けられており、これらは、良く知られているように
バスをいかに実施するかに基づいて決まる手段により共
通のシステムバス12へインターフェイスされる。実際
は、メモリモジュール10の個数Nは、主メモリをどのよ
うに実施したいかによって1以上のどんな数にもなりう
る。複数のプロセッサモジュール14(CPU)も設けられ
ている。本発明は2つ以上のプロセッサモジュール14を
使用したコンピュータシステムに係るが、明瞭化のため
プロセッサモジュールは2つしか示していない。同様
に、いかなる数のI/Oモジュール16をシステムバス12に
インターフェイスできるが、第1図にはこれを2つしか
示してない。
ム8の一般的な構成が第1図に示されている。システム
の共有主メモリを含む複数のN個のメモリモジュール10
が設けられており、これらは、良く知られているように
バスをいかに実施するかに基づいて決まる手段により共
通のシステムバス12へインターフェイスされる。実際
は、メモリモジュール10の個数Nは、主メモリをどのよ
うに実施したいかによって1以上のどんな数にもなりう
る。複数のプロセッサモジュール14(CPU)も設けられ
ている。本発明は2つ以上のプロセッサモジュール14を
使用したコンピュータシステムに係るが、明瞭化のため
プロセッサモジュールは2つしか示していない。同様
に、いかなる数のI/Oモジュール16をシステムバス12に
インターフェイスできるが、第1図にはこれを2つしか
示してない。
本発明によるCPUモジュール14が第2図にシステムバス1
2にインターフェイスされて示されている。システムバ
スインターフェイス18は各CPUモジュール14に対応しそ
してシステムバス12に電気的に接続されており、そして
このシステムバスインターフェイスは、それぞれの対応
するCPUモジュール14と、他のCPUモジュール14、I/Oモ
ジュール16及びメモリモジュール10との間でシステムバ
ス12を通して通信リンクを確立する役割を果たす。又、
システムバスインターフェイス18とCPUバスインターフ
ェイス22との間には別のバス接続部20が設けられてい
る。この接続部20は、キャッシュインターフェイス26に
よって発生されてCPUバス24を通ってCPUバスインターフ
ェイス22へ供給される主メモリ読み取り/書き込みアク
セス要求に対する経路を形成する。キャッシュインター
フェイス26は、各々、CPUデータバス32とキャッシュバ
ス28を通ってCPU34とキャッシュメモリ30との間を取り
次ぐ役目を果たす。
2にインターフェイスされて示されている。システムバ
スインターフェイス18は各CPUモジュール14に対応しそ
してシステムバス12に電気的に接続されており、そして
このシステムバスインターフェイスは、それぞれの対応
するCPUモジュール14と、他のCPUモジュール14、I/Oモ
ジュール16及びメモリモジュール10との間でシステムバ
ス12を通して通信リンクを確立する役割を果たす。又、
システムバスインターフェイス18とCPUバスインターフ
ェイス22との間には別のバス接続部20が設けられてい
る。この接続部20は、キャッシュインターフェイス26に
よって発生されてCPUバス24を通ってCPUバスインターフ
ェイス22へ供給される主メモリ読み取り/書き込みアク
セス要求に対する経路を形成する。キャッシュインター
フェイス26は、各々、CPUデータバス32とキャッシュバ
ス28を通ってCPU34とキャッシュメモリ30との間を取り
次ぐ役目を果たす。
本発明のこの実施例によりCPU34によって開始されるメ
モリの読み取りは、次のように行なわれる。即ち、CPU3
4は、指定のメモリ位置でメモリを読み取る要求をデー
タバス32に出し、この要求はキャッシュインターフェイ
ス26よって受け取られる。キャッシュインターフェイス
26はキャッシュバス28を使い、要求されたメモリ位置が
キャッシュ30にコピーされていてそれが有効かどうかを
決定するためにキャッシュ30をアクセスする。もしそう
だとすれば、キャッシュインターフェイス26はこの値を
CPU34に返送する。所望されたメモリ位置がキャッシュ3
0内に複写されていない時、またはその値のキャッシュ
コピーが有効でないと示された場合、キャッシュインタ
ーフェイス26は、CPUバス24からCPUバスインターフェイ
ス22を通してメモリ読み取り要求を進める。ここから、
その要求は電気接続部22を通してシステムバスインター
フェイス18まで進められる。システムバスインターフェ
イス18は、それをシステムバス12への許可されたアクセ
スとするために必要とされる適当なバス仲裁プロトコル
に参加しなければならない。いったんアクセスが許可さ
れると、システムバスインターフェイス18はシステムバ
ス12上で読み取りトランザクションを開始し、CPU34に
よって要求されているメモリ位置の値をメモリモジュー
ル10に指示する。上記したメモリ読み取りプロセスは、
メモリ10内の所望の位置が数字オペランドを保持してい
るかメモリアドレスを保持しているか又は命令のOPコー
ドを保持しているかに拘りなく、CPU34によって開始さ
れる読み取り動作の典型である。
モリの読み取りは、次のように行なわれる。即ち、CPU3
4は、指定のメモリ位置でメモリを読み取る要求をデー
タバス32に出し、この要求はキャッシュインターフェイ
ス26よって受け取られる。キャッシュインターフェイス
26はキャッシュバス28を使い、要求されたメモリ位置が
キャッシュ30にコピーされていてそれが有効かどうかを
決定するためにキャッシュ30をアクセスする。もしそう
だとすれば、キャッシュインターフェイス26はこの値を
CPU34に返送する。所望されたメモリ位置がキャッシュ3
0内に複写されていない時、またはその値のキャッシュ
コピーが有効でないと示された場合、キャッシュインタ
ーフェイス26は、CPUバス24からCPUバスインターフェイ
ス22を通してメモリ読み取り要求を進める。ここから、
その要求は電気接続部22を通してシステムバスインター
フェイス18まで進められる。システムバスインターフェ
イス18は、それをシステムバス12への許可されたアクセ
スとするために必要とされる適当なバス仲裁プロトコル
に参加しなければならない。いったんアクセスが許可さ
れると、システムバスインターフェイス18はシステムバ
ス12上で読み取りトランザクションを開始し、CPU34に
よって要求されているメモリ位置の値をメモリモジュー
ル10に指示する。上記したメモリ読み取りプロセスは、
メモリ10内の所望の位置が数字オペランドを保持してい
るかメモリアドレスを保持しているか又は命令のOPコー
ドを保持しているかに拘りなく、CPU34によって開始さ
れる読み取り動作の典型である。
CPUによって開始されるメモリ書き込みの一連の事象は
次の通りである。すなわち、メモリ書き込み要求はCPU3
4からCPUデータバス32を通ってキャッシュインターフェ
イス26へ送られる。キャッシュインターフェイス26はキ
ャッシュバス28を使用して所望のメモリ位置がキャッシ
ュ30の中にもあるかどうか決定し、もしそうならば、古
い値に代わって新しい値が書き込まれる。書き込みスル
ーのキャッシュポリシーを続ける場合、キャッシュイン
ターフェイス26は、所望の位置がキャッシュ30にコピー
されているかどうかに関係なく、CPUバス24を通してCPU
バスインターフェイス22へ書き込み要求を進める。要求
は、キャッシュインターフェイス26から電気接続部20を
通ってシステムバスインターフェイス18へ要求が送られ
る。システムバスインターフェイス18は、システムバス
アクセスが許可されると、システムバス12を通って主メ
モリ10へ書き込み要求を送る。
次の通りである。すなわち、メモリ書き込み要求はCPU3
4からCPUデータバス32を通ってキャッシュインターフェ
イス26へ送られる。キャッシュインターフェイス26はキ
ャッシュバス28を使用して所望のメモリ位置がキャッシ
ュ30の中にもあるかどうか決定し、もしそうならば、古
い値に代わって新しい値が書き込まれる。書き込みスル
ーのキャッシュポリシーを続ける場合、キャッシュイン
ターフェイス26は、所望の位置がキャッシュ30にコピー
されているかどうかに関係なく、CPUバス24を通してCPU
バスインターフェイス22へ書き込み要求を進める。要求
は、キャッシュインターフェイス26から電気接続部20を
通ってシステムバスインターフェイス18へ要求が送られ
る。システムバスインターフェイス18は、システムバス
アクセスが許可されると、システムバス12を通って主メ
モリ10へ書き込み要求を送る。
システムバスインターフェイス18の他の機能は、システ
ムバス12に生じる全てのトランザクションをモニターす
ることである。書き込みトランザクションがCPUモジュ
ール14のどれか又はI/Oモジュール16のどれかによって
生じたときには、それぞれのCPUモジュール14内のシス
テムバスインターフェイス18は、第3図について述べる
無効待ち行列38にそのトランザクションのアドレスを入
力する役割をする。
ムバス12に生じる全てのトランザクションをモニターす
ることである。書き込みトランザクションがCPUモジュ
ール14のどれか又はI/Oモジュール16のどれかによって
生じたときには、それぞれのCPUモジュール14内のシス
テムバスインターフェイス18は、第3図について述べる
無効待ち行列38にそのトランザクションのアドレスを入
力する役割をする。
第3図によれば、無効待ち行列38は、先入れ先出し(FI
FO)の待ち行列で、これは、本発明の好ましい実施例で
は、アドレスフィールド42、有効ビットフィールド44及
びフラッシュビットフィールド46を各々持つ1組の入力
40を含む。マルチビットアドレスフィールド42は書き込
みトランザクションのターゲット位置の主メモリアドレ
スを保持する。単一ビットの有効ビットフィールド44
は、待ち行列入力40のどれが有効な無効状態を保持する
かを示す。最後の1ビットのフラッシュビットフィール
ド46は、以下で述べるように、読み取りトランザクショ
ンが関連CPUモジュール14によって発せられたときにど
の待ち行列入力40が有効であったかを決定するために用
いられる。無効待ち行列38中の全ての入力40のフラッシ
ュビットフィールド46は、多入力論理“OR"ゲート48へ
の入力として使用される。“OR"ゲート48の出力50は
“フラッシュ要求”信号を運ぶ。このフラッシュ要求信
号は、無効待ち行列38内のフラッシュビットフィールド
46のどれかが論理1をもつときに高く(論理1)、無効
待ち行列38のどのフラッシュビット46もセットされてい
ない場合にのみ(即ち、論理1を含む)、フラッシュ要
求信号が低(論理0)となる。
FO)の待ち行列で、これは、本発明の好ましい実施例で
は、アドレスフィールド42、有効ビットフィールド44及
びフラッシュビットフィールド46を各々持つ1組の入力
40を含む。マルチビットアドレスフィールド42は書き込
みトランザクションのターゲット位置の主メモリアドレ
スを保持する。単一ビットの有効ビットフィールド44
は、待ち行列入力40のどれが有効な無効状態を保持する
かを示す。最後の1ビットのフラッシュビットフィール
ド46は、以下で述べるように、読み取りトランザクショ
ンが関連CPUモジュール14によって発せられたときにど
の待ち行列入力40が有効であったかを決定するために用
いられる。無効待ち行列38中の全ての入力40のフラッシ
ュビットフィールド46は、多入力論理“OR"ゲート48へ
の入力として使用される。“OR"ゲート48の出力50は
“フラッシュ要求”信号を運ぶ。このフラッシュ要求信
号は、無効待ち行列38内のフラッシュビットフィールド
46のどれかが論理1をもつときに高く(論理1)、無効
待ち行列38のどのフラッシュビット46もセットされてい
ない場合にのみ(即ち、論理1を含む)、フラッシュ要
求信号が低(論理0)となる。
3種類目のバストランザクションである読み取りデータ
トランザクションは、読み取りトランザクションによっ
てデータを要求したプロセッサへ主メモリ位置の内容を
戻すために主メモリ管理ロジックによって始められる。
もう一度第2図を見ると、主メモリモジュール10の1つ
から生じた読み取りデータトランザクションはシステム
バスインターフェイス18によって受け取られる。データ
は、CPUバスインターフェイス22に直接送られるのでは
なく、読み取りデータ待ち行列36に入力される。この待
ち行列36は、無効待ち行列38と同じように、システムバ
スインターフェイス18とCPUバスインターフェイス22と
の間に設けられている。第4図に示されているように読
み取りデータ待ち行列36は、それぞれが2つのフィール
ド、即ちデータフィールド54と有効ビットフィールド56
を持つ1組の多ビット入力52を含む。データフィールド
54は、読み取りトランザクションに応答してメモリ制御
器によって返送されたメモリ位置の内容を保持する。有
効ビットフィールド56はデータフィールド54に入ってい
るデータが有効かどうか示すための1ビットフィールド
である。無効待ち行列38と同じように、読み取りデータ
待ち行列36もまたFIFO構造を持ち、一端でシステムバス
インターフェイス18からのデータを受け取り、もう一方
の一端からCPUバスインターフェイス22にデータを送る
ようになっている。
トランザクションは、読み取りトランザクションによっ
てデータを要求したプロセッサへ主メモリ位置の内容を
戻すために主メモリ管理ロジックによって始められる。
もう一度第2図を見ると、主メモリモジュール10の1つ
から生じた読み取りデータトランザクションはシステム
バスインターフェイス18によって受け取られる。データ
は、CPUバスインターフェイス22に直接送られるのでは
なく、読み取りデータ待ち行列36に入力される。この待
ち行列36は、無効待ち行列38と同じように、システムバ
スインターフェイス18とCPUバスインターフェイス22と
の間に設けられている。第4図に示されているように読
み取りデータ待ち行列36は、それぞれが2つのフィール
ド、即ちデータフィールド54と有効ビットフィールド56
を持つ1組の多ビット入力52を含む。データフィールド
54は、読み取りトランザクションに応答してメモリ制御
器によって返送されたメモリ位置の内容を保持する。有
効ビットフィールド56はデータフィールド54に入ってい
るデータが有効かどうか示すための1ビットフィールド
である。無効待ち行列38と同じように、読み取りデータ
待ち行列36もまたFIFO構造を持ち、一端でシステムバス
インターフェイス18からのデータを受け取り、もう一方
の一端からCPUバスインターフェイス22にデータを送る
ようになっている。
システム全体にわたるデータのコヒレンス性は本発明の
機構により次のように確保される。すなわち、システム
バスインターフェイス18は、システムバス12上に、主メ
モリへの読み取りトランザクションを送る時、無効待ち
行列38中の全ての入力40に関し有効ビット44をフラッシ
ュビット46にコピーし、読み取りトランザクションが生
じたときに有効であった全ての入力40がフラッシュビッ
ト46をセットし(即ち、論理1を有し)そして読み取り
トランザクションが生じたときに有効でなかった全ての
入力40がフラッシュビット46をリセットする(即ち、論
理0を含む)ようにする。CPUモジュール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をリセットする(即ち、論
理0を含む)ようにする。CPUモジュール14は、受け取
った内容をCPUキャッシュ30へ通す前に、フラッシュビ
ットがセットされた無効待ち行列38の全ての無効状態を
処理しなければならない。このように、無効状態は、主
メモリがアクセスされて読み取りデータが返送される時
間中に処理され、メモリのアクセスと無効状態の処理が
並列に行われるようにする。CPUキャッシュ30が読み取
りデータをもつことができるまでに処理されるべき無効
状態の数は、無効待ち行列38の入力40の数以下に保証さ
れ、従って、CPUモジュール14がフラッシュビット46が
セットされた入力40の無効待ち行列38を空にするに要す
る一定の時間後に、CPUキャッシュは読み取りデータ待
ち行列36に記憶された入力データをアクセスできるよう
保証される。このように、本発明は、読み取りデータの
返送によって無効状態を正しく直列化すると共に、共有
データプロトコルを正しく操作することを保証する。
次にあげる例はマルチプロセッサシステムにおけるデー
タコヒレンスの問題と、本発明によってこの問題がどの
ように解決されるのかを示している。すなわち、CPU0と
CPU1の2つのプロセッサモジュールを持つマルチプロセ
ッサシステムでは、変数Vは2つのプロセッサ間で共有
されるデータである。他の変数Tは、共有データへの同
時アクセスを仲介する技術で知られているように、2つ
のプロセッサによるVへのアクセスを同期するのに使用
される。“フラッグ”である。特に、Tが0でない時は
変数Vの内容は有効である。Tが0の時は、変数Vの内
容は有効でない。
タコヒレンスの問題と、本発明によってこの問題がどの
ように解決されるのかを示している。すなわち、CPU0と
CPU1の2つのプロセッサモジュールを持つマルチプロセ
ッサシステムでは、変数Vは2つのプロセッサ間で共有
されるデータである。他の変数Tは、共有データへの同
時アクセスを仲介する技術で知られているように、2つ
のプロセッサによるVへのアクセスを同期するのに使用
される。“フラッグ”である。特に、Tが0でない時は
変数Vの内容は有効である。Tが0の時は、変数Vの内
容は有効でない。
変数Tが始めに0の値を持っていると仮定すると、この
ことはCPUモジュールの変数Vの値が有効でないこと
と、変数TがCPU1キャッシュメモリの中にあるのではな
く、変数VがCPU1のキャッシュメモリの中にあるという
ことの両方をいずれかのCPUモジュールへ指示する。
ことはCPUモジュールの変数Vの値が有効でないこと
と、変数TがCPU1キャッシュメモリの中にあるのではな
く、変数VがCPU1のキャッシュメモリの中にあるという
ことの両方をいずれかのCPUモジュールへ指示する。
次に、CPU0が位置Vに値を書き込み、それからゼロ以外
の値を位置Tに書き込んで、新しく書かれたVの値が有
効であることを示すと仮定する。これらの2つの書き込
みトランザクションが行われたすぐ後、CPU1はビジー待
機ループを実行し始め、それぞれのループの繰返しの始
めに変数Tの値をチェックし、Vの値が有効になったか
どうか調べる。CPU1がいったんTの値が0でないと判断
してしまうと、ビジー待機ループを出て処理を続ける。
CPU1キャッシュの中にTの値がないことを想起すれば、
ビジー待機ループの最初の実行の際に、CPU1は読み取り
トランザクションをシステムバスを通じて送り、主メモ
リから変数Tの値を要求する。
の値を位置Tに書き込んで、新しく書かれたVの値が有
効であることを示すと仮定する。これらの2つの書き込
みトランザクションが行われたすぐ後、CPU1はビジー待
機ループを実行し始め、それぞれのループの繰返しの始
めに変数Tの値をチェックし、Vの値が有効になったか
どうか調べる。CPU1がいったんTの値が0でないと判断
してしまうと、ビジー待機ループを出て処理を続ける。
CPU1キャッシュの中にTの値がないことを想起すれば、
ビジー待機ループの最初の実行の際に、CPU1は読み取り
トランザクションをシステムバスを通じて送り、主メモ
リから変数Tの値を要求する。
CPU0がたった今0でないTの値を主メモリに書き込んだ
ので、CPU1に返送される読み取りデータはこの変化を反
映し、変数Vの現在の値が有効なものであることをCPU1
に示す。この点において、キャッシュコヘレンスを考え
ることなしに、CPU1は変数Vの値をそのキャッシュから
読み取ることができ、この値を使って処理を続ける。然
し乍ら、このキャッシュ値は、CPU0が新しいVの値をメ
モリに書き込む前に存在するものであるから、CPU1は
“ストール”即ちインコヒレントなVの値をそのキャッ
シュから受け取る。
ので、CPU1に返送される読み取りデータはこの変化を反
映し、変数Vの現在の値が有効なものであることをCPU1
に示す。この点において、キャッシュコヘレンスを考え
ることなしに、CPU1は変数Vの値をそのキャッシュから
読み取ることができ、この値を使って処理を続ける。然
し乍ら、このキャッシュ値は、CPU0が新しいVの値をメ
モリに書き込む前に存在するものであるから、CPU1は
“ストール”即ちインコヒレントなVの値をそのキャッ
シュから受け取る。
キャッシュ無効化の技術はストールデータの使用を防止
できるが、それは無効状態が他のシステムバストランザ
クションに対して適当な順序で処理される場合のみであ
る。この場合、システムは、Tの読み取りデータ値が主
メモリからCPU1に戻される前に位置VへのCPU0の書き込
みに対応する無効状態がCPU1によって処理されるよう確
保しなければならない。本発明は、“必要な”無効状態
がCPU1によって処理されるまでCPU1へのTの読み取り値
の返送を禁止することによって適切な順序で処理を行え
るようにする。“必要な”無効状態は、CPU1の無効待ち
行列がTの値を要求する読み取りデータトランザクショ
ンを生じた時にこの行列に存在する状態である。従っ
て、これらの無効待ち行列入力は、CPU1がその読み取り
トランザクションを生じるときに有効ビットをフラッシ
ュビットへコピーすることにより表示される。この例に
おいて、CPU1は、主メモリからTの値を受け取ることを
許可される前に、そのキャッシュのVの値を無効化する
よう強制される。
できるが、それは無効状態が他のシステムバストランザ
クションに対して適当な順序で処理される場合のみであ
る。この場合、システムは、Tの読み取りデータ値が主
メモリからCPU1に戻される前に位置VへのCPU0の書き込
みに対応する無効状態がCPU1によって処理されるよう確
保しなければならない。本発明は、“必要な”無効状態
がCPU1によって処理されるまでCPU1へのTの読み取り値
の返送を禁止することによって適切な順序で処理を行え
るようにする。“必要な”無効状態は、CPU1の無効待ち
行列がTの値を要求する読み取りデータトランザクショ
ンを生じた時にこの行列に存在する状態である。従っ
て、これらの無効待ち行列入力は、CPU1がその読み取り
トランザクションを生じるときに有効ビットをフラッシ
ュビットへコピーすることにより表示される。この例に
おいて、CPU1は、主メモリからTの値を受け取ることを
許可される前に、そのキャッシュのVの値を無効化する
よう強制される。
第1図は、全てが共通システムバスにインターフェイス
された共有主メモリ、多数のCPUモジュールそして多数
のI/Oモジュールからなる複数のメモリモジュールを含
んだマルチプロセッサコンピュータシステムのブロック
図、 第2図は、システムバスにインターフェイスされる第1
図のそれぞれのCPUモジュールの機能ユニットを示して
いる詳細なブロック図、 第3図は、第2図の無効待ち行列を示す図、 そして 第4図は、第2図の読み取りデータ待ち行列を示す図で
ある。 8……マルチプロセッサベースのコンピュータシステム 10……メモリモジュール 12……共通システムバス 14……複数プロセッサモジュール(CPU) 16……I/Oモジュール 18……システムバスインターフェイス 20……バス接続部 22……CPUインターフェイス 24……CPUバス 26……キャッシュインターフェイス 28……キャッシュバス 30……キャッシュメモリ 32……CPUデータバス 34……CPU、38……無効待ち行列 40……入力 42……アドレスフィールド 44……有効ビットフィールド 46……フラッシュビットフィールド 48……複数入力ロジカル“OR"ゲート 50……出力、52……複数ビット入力 54……データフィールド 56……有効ビットフィールド
された共有主メモリ、多数のCPUモジュールそして多数
のI/Oモジュールからなる複数のメモリモジュールを含
んだマルチプロセッサコンピュータシステムのブロック
図、 第2図は、システムバスにインターフェイスされる第1
図のそれぞれのCPUモジュールの機能ユニットを示して
いる詳細なブロック図、 第3図は、第2図の無効待ち行列を示す図、 そして 第4図は、第2図の読み取りデータ待ち行列を示す図で
ある。 8……マルチプロセッサベースのコンピュータシステム 10……メモリモジュール 12……共通システムバス 14……複数プロセッサモジュール(CPU) 16……I/Oモジュール 18……システムバスインターフェイス 20……バス接続部 22……CPUインターフェイス 24……CPUバス 26……キャッシュインターフェイス 28……キャッシュバス 30……キャッシュメモリ 32……CPUデータバス 34……CPU、38……無効待ち行列 40……入力 42……アドレスフィールド 44……有効ビットフィールド 46……フラッシュビットフィールド 48……複数入力ロジカル“OR"ゲート 50……出力、52……複数ビット入力 54……データフィールド 56……有効ビットフィールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダブリュー ヒュー ダーダン アメリカ合衆国 マサチューセッツ州 02168 ウォーバン フェアリー ロード 51 (56)参考文献 特開 昭61−7960(JP,A)
Claims (1)
- 【請求項1】一組のデータを記憶する主メモリと、それ
ぞれが前記主メモリに記憶された前記データのサブセッ
トを記憶する連想キャッシュメモリを有する複数のプロ
セッサと、前記プロセッサと前記主メモリを相互結合し
かつ該プロセッサの各々を他の該プロセッサと相互結合
するシステムバスとを備えているコンピュータシステム
において、前記主メモリ及び前記キャッシュメモリに記
憶されたデータの完全性を維持して各前記プロセッサに
共有データの最新に書き込まれた値を使用させる装置で
あって、 各プロセッサ毎に読み取りデータ待ち行列と無効待ち行
列とを設け、 前記読み取りデータ待ち行列は、前記システムバスに接
続されかつ複数のエントリを有し、各該エントリは、前
記プロセッサのキャッシュメモリに処理されるべき読み
取りデータを記憶するデータフィールドと、完全な読み
取りデータエントリを識別する有効ビットフィールトと
を有し、 前記無効待ち行列は、複数のエントリを有し、各該エン
トリは、無効状態を記憶するアドレスフィールドと、完
全な無効エントリを識別する有効ビットフィールドと、
処理されるべき無効状態を指示するフラッシュビットフ
ィールドと、いずれかのプロセッサが当該プロセッサに
対応しているキャッシュにメモリアドレスが存在しない
データの読み取り要求を開始したときに、該プロセッサ
が、その関連無効待ち行列の各エントリの有効ビットフ
ィールドを、その関連フラッシュビットフィールドに読
み込むことを指示しかつフラッシュビットがセットされ
た全ての無効状態の処理を開始すると同時に該フラッシ
ュビットがセットされた全ての該無効状態が処理される
まで該読み取りデータ待ち行列の読み取りデータ値の処
理だけを停止する直列化手段とを有していることを特徴
とする装置。
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 JPH0272453A (ja) | 1990-03-12 |
JPH0786849B2 true 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 |
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 |
US5860159A (en) * | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Multiprocessing system including an apparatus for optimizing spin--lock operations |
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 |
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 |
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 |
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 |
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 |
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 |
US7000080B2 (en) * | 2002-10-03 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Channel-based late race resolution mechanism for 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 |
US6892290B2 (en) * | 2002-10-03 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Linked-list early race resolution mechanism |
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 |
US7051163B2 (en) * | 2002-10-03 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Directory structure permitting efficient write-backs in a shared memory computer system |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a computer system |
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 |
WO2013101151A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Improved 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 |
Family Cites Families (36)
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 |
JPS60701B2 (ja) * | 1980-05-01 | 1985-01-09 | 日本電気株式会社 | デ−タ処理装置 |
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 |
JPS5864690A (ja) * | 1981-10-14 | 1983-04-18 | Hitachi Ltd | キヤツシユメモリ制御方法 |
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 |
JPS617960A (ja) * | 1984-06-22 | 1986-01-14 | Fujitsu Ltd | バツフア無効化制御方式 |
FR2590699B1 (fr) * | 1985-11-25 | 1994-07-01 | Nec Corp | Systeme assurant la coherence pour les contenus d'une antememoire |
JPH06103476B2 (ja) * | 1986-06-09 | 1994-12-14 | 富士通株式会社 | シリアライズ命令制御装置 |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
JPS63101943A (ja) * | 1986-10-17 | 1988-05-06 | Fujitsu Ltd | キヤツシユム−ブイン制御方式 |
JPH01196642A (ja) * | 1988-02-01 | 1989-08-08 | Fujitsu Ltd | キャッシュ無効化制御方式 |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
-
1989
- 1989-05-30 EP EP89305429A patent/EP0349123B1/en not_active Expired - Lifetime
- 1989-05-30 DE DE68924306T patent/DE68924306T2/de not_active Expired - Fee Related
- 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
Also Published As
Publication number | Publication date |
---|---|
EP0349123A2 (en) | 1990-01-03 |
EP0349123A3 (en) | 1991-04-17 |
DE68924306T2 (de) | 1996-05-09 |
DE68924306D1 (de) | 1995-10-26 |
CA1322058C (en) | 1993-09-07 |
JPH0272453A (ja) | 1990-03-12 |
US5579504A (en) | 1996-11-26 |
EP0349123B1 (en) | 1995-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0786849B2 (ja) | 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム | |
JP7553478B2 (ja) | 書き込みミスエントリのドレインをサポートする犠牲キャッシュ | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US5426765A (en) | Multiprocessor cache abitration | |
US12061562B2 (en) | Computer memory expansion device and method of operation | |
EP0817073B1 (en) | A multiprocessing system configured to perform efficient write operations | |
US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
US6085263A (en) | Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor | |
US6189078B1 (en) | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency | |
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 | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
EP1029283B1 (en) | System and method for providing speculative arbitration for transferring data | |
US20040073738A1 (en) | Scalable efficient I/O port protocol | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
US8015364B2 (en) | Method and apparatus for filtering snoop requests using a scoreboard | |
JPH1031625A (ja) | マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
US5920891A (en) | Architecture and method for controlling a cache memory | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US6918021B2 (en) | System of and method for flow control within a tag pipeline | |
JPH0816885B2 (ja) | キャッシュメモリ制御方法 | |
JPH06282528A (ja) | データ転送方法及びそのシステム | |
US7035981B1 (en) | Asynchronous input/output cache having reduced latency |
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 |