JP3737834B2 - 2重化キャッシュ・スヌープ機構 - Google Patents
2重化キャッシュ・スヌープ機構 Download PDFInfo
- Publication number
- JP3737834B2 JP3737834B2 JP01335095A JP1335095A JP3737834B2 JP 3737834 B2 JP3737834 B2 JP 3737834B2 JP 01335095 A JP01335095 A JP 01335095A JP 1335095 A JP1335095 A JP 1335095A JP 3737834 B2 JP3737834 B2 JP 3737834B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- request
- module
- coherency
- check
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching 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)
Description
【産業上の利用分野】
本発明はキャッシュ、及びコヒーレント入出力構造を有する単一プロセッサ・アーキテクチャと多重プロセッサ・アーキテクチャを含むコンピュータ・アーキテクチャに関する。より詳しくは、本発明は単一プロセッサ、又は多重プロセッサ・コンピュータ・アーキテクチャにおけるキャッシュ・コヒーレンシの維持に関する。
【0002】
【従来の技術】
キャッシュを有するコンピュータ・アーキテクチャへの情報の入出力(「I/O」)においては、失効データの発生、即ち他のキャッシュ位置、又は主記憶装置に記憶された関連データより古い、及び/又はそのデータと一致しないデータが発生することを回避する必要がある。従って、プロセッサ動作に対する干渉を最小限にしながら、キャッシュ・コヒーレンシを維持しなければならない。コンピュータ・システム・アーキテクチャの中には、入出力が入出力装置と入出力バッファとして働く主システム・メモリの間のデータ転送を意味するものがある。別のコンピュータ・システムでは、入出力がキャッシュ、又は記憶装置の一方と入出力装置との間のデータ転送を意味するものもある。これらのシステムは、プロセッサのキャッシュが入出力トラフィックが発生した場合にコヒーレント状態を保つ必要があるので、コヒーレント入出力システムと呼ばれる。
【0003】
【発明が解決しようとする課題】
キャッシュはライト・スルー、又はライト・バックのどちらかに分類される。ライト・スルー・キャッシュは、システム・メモリとキャッシュがそれぞれ書き込まれる情報の現在のコピーを維持し、失効データを持つことがないように、常にシステム・メモリと一緒に書き込まれる。ライト・スルー・キャッシュを用いたコンピュータ・アーキテクチャにおける情報入力は、かなりのシステム・オーバヘッドを要する。
【0004】
例えば、そのシステムは、入力用に指定された入出力バッファのいかなるブロックもキャッシュ内に存在しないよう保証しなければならない。
【0005】
ライト・バック・キャッシュは、新しいデータを格納する余地を作るために、修正されたデータが追い出され、メモリにライト・バックされるまでそのデータを保持する。ライト・バック・キャッシュは、修正されたデータの唯一のコピーを持つことができるため、キャッシュ・データを迅速にアクセスすることができ、かつそれが決して失われないように、キャッシュと入出力システムの間のキャッシュ・コヒーレンシ・プロトコルに特別な配慮が必要となる。
【0006】
失効データの発生に関する問題の、ソフトウエアによる解決策の1つは、バッファのページにキャッシュ不能のマークを付け、オペレーティング・システムが、情報をこのキャッシュ不能ページのみに入力するよう構成することである。この問題に対する別のソフトウエアによる解決策は、情報の入力が発生した後、オペレーティング・システムを用いてキャッシュからバッファ・アドレスを無効化して効果的にそのキャッシュをクリアすることである。失効データの発生に関する問題に対する、ハードウエアによる解決策は、情報の入力中に入出力アドレスをチェックして、それらのアドレスがキャッシュ内にあるかどうかを判定することである。それらのアドレスがキャッシュ内にあれば、キャッシュ・エントリが無効にされ、失効データの使用を回避できる。
【0007】
多重プロセッサに関してコヒーレンシを維持するために使用されるプロトコルは、キャッシュ・コヒーレンシ・プロトコルと呼ばれる。キャッシュ・コヒーレンシ・プロトコルには2つの種類がある。
【0008】
ディレクトリ型:物理メモリの1つのブロックに関する情報が、1つの位置に保持される。この情報は、どのキャッシュがそのブロックのコピーを有しているか、及びそのコピーに、将来の修正に関するマークが排他的に付けられているかどうかという情報を通常含んでいる。ある特定ブロックにアクセスする時、最初にディレクトリを照会してメモリ・データが失効しているかどうか、及び実データが他のキャッシュに存在するかどうかを調べる。上記条件が満たされる場合、修正されたブロックを含むキャッシュのデータがメモリに返される。次に、メモリはそのデータを新しいリクエスタに送り、ディレクトリをそのブロックの新しい位置で更新する。このプロトコルはバス間(あるいはキャッシュ間)のモジュールの干渉を最小限にするものであるが、通常待ち時間が長く、大きなディレクトリ・サイズを要するので構成するためのコストが高くなる。
【0009】
スヌーピング:物理メモリのブロックからのデータのコピーを有する全てのキャッシュは、そのデータ・ブロックに関する情報のコピーも有する。それぞれのキャッシュは通常、共用メモリ・バス上にあり、全てのキャッシュ・コントローラはバス上を監視、又はスヌープして、それらが共用ブロックのコピーを有するかどうかを判定する。
【0010】
スヌーピング・プロトコルは、キャッシュ、及び共用メモリを用いる多重プロセッサ・システム・アーキテクチャに十分適している。これは、該アーキテクチャが、バスとメモリの間に通常設けられている既存の物理的接続に基づいて動作するためである。スヌーピングは、コヒーレンシ情報の量が、主記憶装置内のブロック数ではなくキャッシュ内のブロック数に比例するという点でディレクトリ型プロトコルより好適である。
【0011】
コヒーレンシの問題は、多重プロセッサ・アーキテクチャにおいてプロセッサがメモリ・ブロック、又はオブジェクトを書き込むために排他的アクセスを行わなければならない場合、及び/又はオブジェクトを読み出す時に最新のコピーを持たなければならない場合に発生する。スヌーピング・プロトコルは書き出されるべきオブジェクトを共有する全てのキャッシュになくてはいけない。共用データに書き込みを行うと、そのデータの他の全てのコピーを無効化するか、又は共用コピーの全てにその書き込みをブロードキャストするかのどちらかの結果となる。ライト−バック・キャッシュを用いるため、コヒーレンシ・プロトコルはメモリ読み出し中に、全てのキャッシュのチェックも行なって、どのプロセッサがその情報の最新のコピーを持っているかを判定しなければならない。
【0012】
プロセッサ間で共用される情報に関するデータは、スヌーピング・プロトコルを実施するためにキャッシュ・ブロック内に設けられた状態ビットに追加される。この情報はバスの活動状態を監視する際に用いられる。読み出しミスが発生した場合、全てのキャッシュは要求された情報ブロックのコピーを持っているかをチェックし、読み出しミスをしたキャッシュにその情報を供給するといった適当な動作をとる。同様に、書き込みの場合、全てのキャッシュはそのデータのコピーを持っているかどうかをチェックし、例えばそのデータのコピーを無効にしたり、そのデータのコピーを最新の値に変更するといった動作をとる。
【0013】
全てのコヒーレント・バス・トランザクションはキャッシュにアドレス・タグをチェックさせるので、スヌーピングは、スヌープの結果に関係なく、そのキャッシュに対するCPUのアクセスに干渉する。例えば、スヌーピングがミスを返してきた場合でも、そのキャッシュは利用不能である、即ち、そのキャッシュはタグをスヌープ・アドレスと比較するためにチェックを行なっているので、CPUはキャッシュ・アクセスを行なうことができない。従ってCPUは、キャッシュがコヒーレンシのチェックで使用中である時に、そのキャッシュをアクセスする必要がある場合、停止、又はロックする。
【0014】
スヌーピング・プロトコルには2つの種類がある。
(1)ライト・インバリデート:書き込みを行なうプロセッサが、そのプロセッサの局所コピーを変更する前に、他のキャッシュ内の全てのコピーを無効化する。次に、このプロセッサは別のプロセッサによってそのデータに対する要求等が発生するまで、そのデータを自由に更新することができる。書き込みを行なうプロセッサはバス上に無効化信号を発し、全てのキャッシュがそのデータのコピーを持っているかどうかをチェックする。持っていれば、全てのキャッシュはそのデータを含むブロックを無効化しなければならない。この技法によって多重読み出しが可能となるが、書き込みは単一となる。
【0015】
(2)ライト・ブロードキャスト:共用ブロックの全てを無効化する代わりに、書き込みを行なうプロセッサはバス上に新しいデータをブロードキャストする。その時、全てのコピーがこの新しい値に更新される。この技法では、共用データへの書き込みを連続的にブロードキャストする。一方、上述したライト・インバリデート技法では、他の全てのコピーを削除して、それ以降の書き込みに関して唯一の局所コピーが存在するようにしている。ライト・ブロードキャスト・プロトコルでは通常、データに共用(ブロードキャスト)タグ、又は専用(局所)タグを付けることができる。コヒーレンシの詳細な情報については、Morgan Kaufmann Publishers,Inc.(1990年)、J.Hennessy、D.PattersonのComputer Architecture:A Quantitative Approachを参照されたい。
【0016】
スヌーピングを用いたコヒーレンス多重プロセッサ・システム・アーキテクチャにおいて、システム・バス上の各コヒーレント・トランザクションが、それぞれのプロセッサのキャッシュ・サブシステムに送られてコヒーレンシのチェックを行う。コヒーレンシのチェックが行なわれている時に、プロセッサがキャッシュにアクセスできないため、このチェックは通常、プロセッサのパイプラインを干渉するものである。
【0017】
従来の、2重化されたキャッシュ・タグを持たない単一ポートのキャッシュにおいて、プロセッサのパイプラインは、キャッシュ・コントローラが他のプロセッサのキャッシュ・コヒーレンシのチェック処理のために使用中である時、キャッシュ・アクセス命令で停止する。各スヌープに対して、キャッシュ・コントローラは最初にスヌープ・アドレスに関してキャッシュ・タグをチェックし、ヒットした場合に、キャッシュ状態を変更しなければならない。不可分(分割不能)タグの(修正を可能にするための)読み出し、及び書き込みに関するキャッシュ帯域幅の割り当ては、スヌープがタグの書き込みを必要としない場合に要する時間より長くキャッシュをプロセッサに対してロックする。例えば、キャッシュ照会の80から90%がミスであり、即ち、タグ書き込みは不要である。
【0018】
2重ポートを有するキャッシュを用いることによって、プロセッサのパイプラインとバス・スヌープとの競合を排除することができる。しかし、この解決策はハードウエアの追加と相互接続が必要であり、従って実施が困難であり、コストも増大する。又、バス・スヌープ専用のキャッシュ・タグの第2の集合を用いることも知られている。これらのタグは名目上、正規のキャッシュ・タグの複製であるが、こうしたシステムは正しく維持することが困難であり、かつ複製のキャッシュ・タグを持たないシステムより実施コストも大きい。
【0019】
コヒーレンシのチェックによるプロセッサ停止時間を短縮する任意の機構が、多重プロセッサの性能を向上させることができる。このような機構を簡単で、かつ低コストな方法で実施するシステムを提供すれば、多重プロセッサ・アーキテクチャの設計をかなり改善することができる。
【0020】
【課題を解決するための手段】
本発明は2重化キャッシュ・スヌープ機構、即ちそれぞれのスヌープをキャッシュに2回送ることができるキャッシュ機構を提供する。ここに開示する2重化キャッシュ・スヌープ機構は、幾つかのプロセッサの設計に関して、キャッシュ・コヒーレンシのチェックによってキャッシュが修正されない、即ちこのチェックが書き込みを行わないことがわかっていれば、このチェックの結果発生するサイクル分だけプロセッサが停止する必要はないという認識に基づいて、コヒーレンシのチェックが実施されている間にプロセッサが停止、又はロックされるサイクルの平均数を低減させるものである。このスヌープ機構はそれぞれのコヒーレンシのチェック、即ち非キャッシュ修正軽量チェック、及びキャッシュ修正重量チェックに分けられる。システム・バス上のそれぞれのコヒーレンシ・トランザクションに関して、最初に軽量チェックがキャッシュ・サブシステムに送られる。その後、軽量チェックが実施されている間に、キャッシュを修正する必要がある可能性を示すキャッシュ・ヒットが存在する場合にのみ、重量チェックが送られる。殆どのコヒーレンシのチェックにおいてキャッシュ・ヒットは発生しないため、たとえそれぞれのキャッシュ・ヒットによって追加のコヒーレンシのチェックが生じたとしても、プロセッサのパイプラインの停止時間の平均は短縮される。
【0021】
キャッシュ・ヒットはキャッシュ・タグの修正が必要であることを必ずしも意味するものではないことに注意すべきである。例えば、あるラインへの読み出しアクセスの間に、そのラインの共用コピーが要求される場合がある。そのラインが他の2つのキャッシュにおいて既に共用可能状態にある場合、スヌープはこれらのキャッシュの両方にヒットするが、そのラインは既に共用可能状態にあるため、このラインの状態を修正する必要はない。
【0022】
【実施例】
本発明はキャッシュ、及びコヒーレント入出力を有する単一プロセッサ・コンピュータ・システム、及び多重プロセッサ・コンピュータ・システムにおいて、キャッシュ・コヒーレンシのチェックを実行する2重化キャッシュ・スヌープ機構を提供する。
【0023】
図1は多重コンピュータ・アーキテクチャの実施例における概略ブロック図である。多重コンピュータ・アーキテクチャにおいて、プロセッサ10、20、30等の複数のモジュールが、バス・リンク16、22、29によってシステム・バス23にそれぞれ接続されている。こうしたアーキテクチャにおいては、プロセッサ速度、及びオペレーティング・システムの設計に応じて任意の数のプロセッサを用いることができる。各プロセッサは内部リンク12を介してプロセッサ・キャッシュ・メモリ13に接続された中央演算処理装置(「CPU」)11を含む内部構造を有する。プロセッサ・キャッシュ・メモリはアドレス・タグ、状態要素、及びデータ要素(以下でより詳細に説明する)からなるキャッシュ・ラインを有する。バス・インタフェイス・モジュール15はプロセッサ・キャッシュを内部リンク14、及びプロセッサ・リンク16によってシステム・バス23に接続する。各プロセッサは互いに通信できるようになっており、かつバス・リンク17によってシステム・バス23に接続されたシステム・メモリ18、及びバス・リンク19によってシステム・バス23に接続されたシステム入出力(「I/O」)モジュール21と通信できる。
【0024】
ここで記述されるシステム、及びプロセッサ・アーキテクチャは例示を目的として説明するものに過ぎず、これによって本発明の範囲が限定されるものではなく、本発明の範囲は特許請求の範囲によって定められるものである。本発明は多くの異なる種類のプロセッサ、及び多重プロセッサ・アーキテクチャに良好に適用させることが可能である。
【0025】
バス23上にコヒーレント・トランザクションが発信される時は必ず、サード・パーティとして動作するプロセッサ10、20、30のそれぞれが仮想索引、及び実アドレスを用いてキャッシュ・コヒーレンシのチェックを行なう。又、本発明は物理的に索引付けされたキャッシュを用いるシステムにも適用可能である。
【0026】
各サード・パーティ・プロセッサはそのアドレス・サイクルの後に、キャッシュ・コヒーレンシ状態を表わす信号を発信することができる。サード・パーティ・プロセッサはそのキャッシュ・ライン40が、共用、専用クリーン(又は「排他」)、専用ダーティ(又は「修正済み」)、不在(又は「無効」)の4つの状態のうちの1つにあることを示す信号を発する。要求側のプロセッサはコヒーレンシ状態を解釈して、そのキャッシュ・ラインに、専用クリーン、専用ダーティ、又は共用の内どのマークを付けるかを決定する。このサード・パーティ・プロセッサは、又そのキャッシュ・ライン状態を、変更なし、共用、又は不在を示すようにも更新する。
【0027】
あるサード・パーティ・プロセッサが専用ダーティ状態にあるラインが要求されたことを示す信号を発する場合、そのサード・パーティ・プロセッサはアドレス・サイクル後のある時間に、キャッシュにキャッシュ・トランザクションを開始させる。要求側のプロセッサはこの最初の要求に対して主記憶装置から受け取ったデータを破棄し、代わりにキャッシュ間転送によってサード・パーティ・プロセッサから直接データを受け取る。同時に、サード・パーティ・プロセッサからのデータは主記憶装置に書き込まれる。多重プロセッサ・システム・アーキテクチャでは複数の未完了パイプライン・トランザクションを許しているため、プロセッサ・モジュールがパイプライン・キャッシュ・コヒーレンシのチェックを実行して、バス帯域幅を最大限に利用できることが重要である。本発明を容易に適用することのできる種類の多重プロセッサ・システム・アーキテクチャに関しては、Compcon Digest of Papers(1993年2月)のK.Chan、T.Alexander、C.Hu、D.Larson、N.Noordeen、Y.Van Atta、T.Wylegala、S.Ziaiによる「Multiprocessor Features of the HP Corporate Business Servers」を参照されたい。
【0028】
図2はスヌーピング・シーケンスの実施例を示す、多重プロセッサ・コンピュータ・アーキテクチャにおけるプロセッサの概略ブロック図である。スヌープ・シーケンスの開始時点t1において、キャッシュにバス・インタフェイス信号を送る間、CPU信号の伝送を抑止するゲート回路30の入力論理値「0」に示すように、プロセッサ10のCPU11はキャッシュ・アクセスをロックされ、次に時刻t2に示すように、バス・インタフェイス15に代わってプロセッサ・キャッシュ13が読み出される。
【0029】
時刻t2ではゲート回路30の入力論理値「1」に示すように、CPUはキャッシュ・アクセスのロックを解除される。読み出しの結果がヒットでない場合、(STOPの標識34によって示されるように)プロセッサを解放する決定がなされて、通常のプロセッサ動作が可能になり、時刻t5に示す処理ステップに進む。読み出しの結果がヒットである場合、(STOPの標識34によって示されるように)(時刻t3の処理ステップ、及びゲート回路30の入力論理値「0」によって示されるように)プロセッサが再度ロックされ、そのキャッシュの内容が、最初に読み出された時点t1の直前の時間間隔の間に変化していないことを確認するために、そのキャッシュを再度読み出し、そして時刻t4における処理ステップに示すようにキャッシュへの書き込みを行なう。
【0030】
その後、スヌープ機構は(時刻t5に示す処理ステップの間に)ゲート回路30の入力論理値「1」によって示されるように、プロセッサを解放する処理に進み、通常のプロセッサ動作の継続を可能にする。従来技術による実施のように、それぞれのコヒーレンシのチェックに対する分離不能な、即ち不可分の読み出し、及び書き込み動作を実行する代わりに、ここに示すスヌープ機構は読み出し動作のみを行なう。ヒットがある場合にのみ、この機構はキャッシュを再度読み出し、次に適宜キャッシュへの書き込みを行なう(全てのヒットに対してキャッシュの修正が必要なわけではない)。ヒットがあると、追加の読み出し動作が発生し、即ち最初の読み出しのみの動作が発生し、従ってヒットがある毎に待ち時間、及びプロセッサの停止時間に影響を与えるが、コヒーレンシのチェックにおいて、ヒットに関する時間が約10%以上を占めることは通常考えられないため、この機構はコヒーレンシのチェックが実行された時間の残り90%の中で、プロセッサの停止時間を大幅に短縮し、かつ書き込み動作を必要としない。
【0031】
図3は多重プロセッサ・コンピュータ・アーキテクチャにおけるスヌーピング・シーケンスのフロー図である。この図において、スヌープ・シーケンスの開始時点(300)に、CPUがロックされ(301)、プロセッサ・キャッシュが読み出される(302)。このスヌープ・シーケンスはプロセッサ・キャッシュの状態を示すヒット情報を返す(303)。その後CPUがロックを解除される(304)。スヌープ・シーケンスがヒットを返さない場合(305)、プロセッサはロックを解除された状態のままとなり、動作は継続される(312)。スヌープ・シーケンスがヒットを返した場合(305)、CPUが再度ロックされ(306)、キャッシュが再度読み出されて(307)初回の読み出しの後、プロセッサがロックを解除された短い時間間隔の間にキャッシュ状態が変更されたかどうかが判定される。この再読み出しからキャッシュのヒット情報が返される(308)。それがヒットでない場合(309)、CPUがロックを解除され(311)、プロセッサの動作が継続される(312)。この再読み出しによってヒットが返された場合(309)、キャッシュが書き込まれ(310)、その後CPUがロックを解除され(311)、プロセッサ動作の継続が可能になる(312)。
【0032】
図4、図5、及び図6はバス23のコヒーレンシ・プロトコルとバス・スヌープに応答するバス・インタフェイス15、及びキャッシュ13の動作を含む本発明の一実施例のタイミングを示す。
【0033】
図4は、スヌープがキャッシュをミスした場合を示す。時間0に、バス・インタフェイスによってバスからコヒーレント読み出しトランザクションを受け取る。時間2に、バス・インタフェイスがキャッシュに対して、時間3に非キャッシュ修正照会スヌープが発生することを知らせる。時間3に、そのスヌープのアドレスがこのキャッシュに送られる。時間4に、キャッシュはそのタグを時間3の間に送られてきたアドレスとチェックする。時間5に、この場合キャッシュ・ミスを示すタグの結果がバス・インタフェイスに送り返される。時間7に、このキャッシュ・ミスの情報がバス上に送り返され、スヌープが完了する。
【0034】
図5は排他であるが修正されていない(クリーン)状態にあるラインを有するキャッシュにヒットするスヌープを示す。時間0に、バス・インタフェイスによってバスからコヒーレント読み出しトランザクションを受け取る。時間2に、バス・インタフェイスがこのキャッシュに対して、時間3に非キャッシュ修正照会スヌープが発生することを知らせる。時間3に、そのスヌープのアドレスがこのキャッシュに送られる。時間4に、このキャッシュはそのタグを時間3の間に送られてきたアドレスとチェックする。時間5に、クリーンなライン上のキャッシュ・ヒットを示すタグ結果が、バス・インタフェイスに送り返される。時間7に、バス・インタフェイスがこのキャッシュに対して、キャッシュ修正スヌープが発生することを知らせる。時間8に、この場合であればキャッシュ修正を可能にするためのスヌープ・アドレスが、このキャッシュに再度送られる。時間9に、キャッシュ・タグが再度チェックされる。時間10に、(再度)クリーンなライン上のヒットを示すタグのチェック結果がバス・インタフェイスに送られる。次にキャッシュは時間11に、このラインのタグを修正し、それをクリーンなラインから共用のラインに変更する。時間12に、バス・インタフェイスは、このラインの最終的な状態が共用に変わったことを表わす信号をシステム・バス上に発する。
【0035】
図6は排他であるが修正されている(ダーティ)状態にあるラインを有するキャッシュにヒットするスヌープを示す。時間0に、バス・インタフェイスによってバスからコヒーレント読み出しトランザクションを受け取る。時間2に、バス・インタフェイスがこのキャッシュに対して、時間3に非キャッシュ修正照会スヌープが発生することを知らせる。時間3に、そのスヌープのアドレスがこのキャッシュに送られる。時間4に、このキャッシュはそのタグを時間3の間に送られてきたアドレスとチェックする。時間5に、ダーティなライン上のキャッシュ・ヒットを示すタグのチェック結果がバス・インタフェイスに送り返される。時間7に、バス・インタフェイスがこのキャッシュに対して、キャッシュ修正スヌープが発生することを知らせる。時間8に、この場合であればキャッシュ修正を可能にするためのスヌープ・アドレスがこのキャッシュに再度送られる。時間9に、キャッシュ・タグが再度チェックされる。時間10に、(再度)ダーティなライン上のヒットを示すタグのチェック結果が、バス・インタフェイスに送られる。次に、時間11から時間15の間に、このキャッシュはそのラインの内容をバス・インタフェイスに転送し、最後に、時間15において、このラインの状態を無効に変更する。時間12に、バス・インタフェイスはシステム・バス上に、そのスヌープがダーティなラインをヒットし、このダーティなラインが後でリクエスタに転送されることを示す信号を発する。この転送は時間13から時間17の間に行なわれる。
【0036】
以上、本発明を好適実施例を参照して説明してきたが、当業者には本発明の意図、及び範囲から逸脱することなく、ここに述べたものに替わる他の適用、及び同等物が容易に考えられることが明らかである。例えば、ここに説明したスヌープ機構は複数ユーザ、又は自動選択可能なスヌープ機構を有するコヒーレンシをチェックするシステムにおいて提供可能であり、スヌープ機構の選択はシステムの最適化に基づいている。更に、例えばフリップ−フロップによってセットされるような状態を提供し、本発明を用いる環境がかなり大量のデータを共用することが予想される環境である場合、又はスヌープのチェックの第1レベルが、複製のキャッシュ・タグを有するインタフェイス回路によって、ヒットするスヌープだけを本発明を実施した回路に送るように実行される場合に、この2重化スヌープ機構を停止させることも可能である。この状態ビットは、ユーザ選択、ソフトウエア選択、又はキャッシュ動作に関する統計的判断に基づいた自動選択とすることができる。従って、本発明は特許請求の範囲によってのみ限定される。
【0037】
以下に本発明の実施態様を列挙する。
【0038】
1. システム・バスによって少なくとも2つのモジュールに相互接続されたシステム・メモリを有するコンピュータ・アーキテクチャにおけるキャッシュ・コヒーレンシをチェックし、前記モジュールの少なくとも1つが、関連するキャッシュ・メモリを有する装置であって、
キャッシュ内容の状態を示す、それぞれのキャッシュに関連するタグ、
キャッシュ・コヒーレンシのチェックを行う要求を受け、前記要求を前記キャッシュに送るための、それぞれのモジュールに関連したバス・インタフェイスであって、前記要求が、第1の読み出しのみの要求と、前記第1の読み出しが前記キャッシュ・アドレスのタグが前記要求のタグと一致し、前記要求によって無効、コピー・アウト、又はクリーンな状態から共用状態への変更のいずれかの結果として前記キャッシュを修正する必要がある場合にのみ送られる第2の読み出し−書き込み要求からなり、
キャッシュ・コヒーレンシのチェックに従って、読み出し、及び読み出し−書き込み要求の間にのみ前記キャッシュへのアクセスを中断させるためのロックを含むそれぞれのモジュールから成ることを特徴とする装置。
【0039】
2. 前記キャッシュ・タグが、前記キャッシュ内容が前記システム・メモリの内容より新しい修正状態、前記キャッシュ内容がモジュール間で共用できない排他状態、前記キャッシュ内容がモジュール間で共用される共用状態、及び前記キャッシュ内容のコピーが他のいかなるモジュールにおいても保持されていない無効状態のいずれかを適切に示す手段を更に有する、項番1に記載の装置。
【0040】
3. 前記キャッシュ・コヒーレンシのチェックを前記の他のモジュールに送る要求モジュールを更に有し、
前記の他のモジュールは、前記要求モジュールに、関連するキャッシュ状態情報を送ることによって前記キャッシュ・コヒーレンシのチェックに応答するようになっているサード・パーティ・モジュールからなり、前記サード・パーティ・モジュールのキャッシュ状態情報が、前記要求モジュールのキャッシュに含まれる情報が前記キャッシュ・アドレス・タグが前記要求のタグに一致することを示し、かつ前記要求がキャッシュの修正を要求している場合に、前記要求モジュールのキャッシュに関する置き換え情報を提供し、前記サード・パーティ・モジュールのキャッシュに含まれる情報を修正すべき場合に、前記要求モジュールのキャッシュから置き換え情報を受け取るようになっている、項番2に記載の装置。
【0041】
4. かなり高いレベルのデータ共用が発生する場合にキャッシュ・コヒーレンシのチェックを停止する手段を更に有する、項番1に記載の装置。
【0042】
5. 第1レベルのコヒーレンシのチェックが行なわれ、従って前記装置がヒットするスヌープだけを受け取る場合に、キャッシュ・コヒーレンシのチェックを停止する手段を更に有する、項番1に記載の装置。
【0043】
6. システム・バスによって少なくとも2つのモジュールに相互接続されたシステム・メモリを有するコンピュータ・アーキテクチャにおけるキャッシュ・コヒーレンシをチェックし、前記モジュールのそれぞれが、関連するキャッシュ・メモリを有する方法であって、前記方法が、
コヒーレンシのチェックを行なうべきキャッシュをロックして、コヒーレンシのチェックの間にモジュールがキャッシュをアクセスすることを抑止するステップ、
読み出しのみのキャッシュ・コヒーレンシのチェックを行なって、前記キャッシュが現在のデータを有するか失効データを有するかを判定するステップ、
前記読み出しのみのコヒーレンシのチェックの後に、前記キャッシュのロックを解除するステップ、
前記キャッシュを再度ロックするステップ、
前記読み出しのみのキャッシュ・コヒーレンシのチェックが、前記キャッシュが失効データを有することを示す場合に、読み出し−書き込みキャッシュ・コヒーレンシのチェックを実行するステップであって、前記キャッシュが再度読み出されて、キャッシュ状態が、読み出しのみのキャッシュ・コヒーレンシのチェックの後にロック解除された時間間隔の間に変化したかどうかを判定し、前記キャッシュに書き込みを行なって前記キャッシュ内容を更新するステップ、及び
前記読み出し−書き込みコヒーレンシのチェックの後に前記キャッシュのロックを解除するステップからなる方法。
【0044】
7. キャッシュ・タグを用いて、前記キャッシュに関し、前記キャッシュ内容が前記システム・メモリの内容より新しい修正状態、前記キャッシュ内容がモジュール間で共用できない排他状態、前記キャッシュ内容がモジュール間で共用される共用状態、及び前記キャッシュ内容のコピーが他のいかなるモジュールにおいても保持されていない無効状態のいずれかを適宜示すステップを更に有する、項番6に記載の方法。
【0045】
8. 要求モジュールを用いて前記キャッシュ・コヒーレンシのチェックをサード・パーティ・モジュールに送るステップ、
前記サード・パーティ・モジュールから前記要求モジュールに、関連するキャッシュ状態情報を送ることによって前記キャッシュ・コヒーレンシのチェックに応答するステップであって、前記サード・パーティ・モジュールのキャッシュ状態情報が、前記要求モジュールのキャッシュに含まれる情報が失効しているものである場合に、前記要求モジュールのキャッシュに関する置き換え情報を提供し、前記サード・パーティ・モジュールのキャッシュに含まれる情報が失効している場合に、前記サード・パーティ・モジュールのキャッシュから置き換え情報を受け取るステップを更に有する、項番7に記載の方法。
【0046】
9. かなり高いレベルのデータ共用が発生する場合に、キャッシュ・コヒーレンシのチェックを停止するステップを更に有する、項番6に記載の方法。
【0047】
10. 第1レベルのコヒーレンシのチェックが行なわれ、従って前記装置が、ヒットするスヌープだけを受け取る場合に、キャッシュ・コヒーレンシのチェックを停止するステップを更に有する、項番6に記載の方法。
【0048】
【発明の効果】
ここに開示する2重化スヌープ機構は、キャッシュの複雑性、又はコストを増加させることなく、コヒーレンシのチェックによるプロセッサのパイプラインへの干渉を低減させる。又、この機構は従来の単一スヌープ機構に比べてより高い性能をも有する。
【図面の簡単な説明】
【図1】本発明による多重プロセッサ・コンピュータ・アーキテクチャの概略ブロック図である。
【図2】本発明によるスヌーピング・シーケンスを示す多重コンピュータ・アーキテクチャにおけるプロセッサの概略ブロック図である。
【図3】本発明による多重プロセッサ・コンピュータ・アーキテクチャにおけるスヌーピング・シーケンスのフロー図である。
【図4】本発明によるスヌープがミスした場合のタイミング図である。
【図5】本発明によるスヌープがクリーンをヒットする場合のタイミング図である。
【図6】本発明によるスヌープがダーティをヒットする場合のタイミング図である。
【符号の説明】
10、20、30 プロセッサ
11 中央演算処理装置(CPU)
13 プロセッサ・キャッシュ・メモリ
15 バス・インタフェイス・モジュール
16、22、29 バス・リンク
18 システム・メモリ
21 システム入出力(I/O)モジュール
23 システム・バス
40 キャッシュ・ライン
Claims (6)
- システム・バスによって少なくとも2つのモジュールに相互接続されたシステム・メモリを有するコンピュータ・アーキテクチャにおけるキャッシュ・コヒーレンシをチェックするための装置であって、前記モジュールの少なくとも1つが、関連するキャッシュ・メモリを有しており、
前記キャッシュに格納されているデータの状態を示すための、それぞれのキャッシュに関連したキャッシュ・タグであって、それぞれのキャッシュに格納されているデータに関連するアドレス情報を含むキャッシュ・タグと、
キャッシュ・コヒーレンシをチェックするための要求を受け取り、前記要求を前記キャッシュに送るための、それぞれのモジュールに関連したバス・インタフェイスであって、該バス・インタフェイスは、第1の読み出しのみの要求を前記キャッシュに送り、その後、第2の読み出し−書き込み要求を送るように構成されており、該第2の読み出し−書き込み要求は、前記キャッシュ・タグ内のアドレス情報が、キャッシュ・コヒーレンシをチェックするための前記要求のアドレスと一致しているということを前記第1の読み出しのみの要求が示しており、かつ、キャッシュ・コヒーレンシをチェックするための前記要求が、無効、コピー・アウト、又はクリーンな状態から共用状態への変更のいずれかの結果として前記キャッシュを変更するよう要求している場合にのみ、前記キャッシュに送られることからなる、バス・インタフェイスと、
キャッシュ・コヒーレンシのチェックに従って、読み出しのみの要求中及びその後の読み出し−書き込み要求中のみ、前記キャッシュへのアクセスを中断させるためのロックをそれぞれが備えるモジュール
からなる、装置。 - 前記キャッシュ・タグによって示される前記キャッシュに格納されているデータの状態が、
前記キャッシュに格納されているデータが前記システム・メモリに格納されているデータより新しい修正状態、前記キャッシュに格納されているデータがモジュール間で共用できない排他的状態、前記キャッシュに格納されているデータがモジュール間で共用される共用状態、及び前記キャッシュに格納されているデータのコピーが他のいかなるモジュールにおいても保持されていない無効状態、のいずれかである、請求項1の装置。 - 要求モジュールであって、該要求モジュールは、要求モジュールのキャッシュを有しており、前記キャッシュ・コヒーレンシのチェックを前記他のモジュールに送ることからなる、要求モジュールを更に有し、
前記他のモジュールは、前記要求モジュールに、当該他のモジュールのキャッシュに格納されているデータが前記状態のいずれにあるかを示すキャッシュ状態情報を返すことによって前記キャッシュ・コヒーレンシのチェックに応答するように構成されたサード・パーティ・モジュールであり、該サード・パーティ・モジュールのキャッシュ・タグ内のアドレス情報が前記要求のアドレスに一致しており、かつ、キャッシュ・コヒーレンシをチェックするための前記要求に対して返された前記キャッシュ状態情報が前記修正状態を示している場合には、前記要求モジュールのキャッシュに、前記サード・パーティ・モジュールのキャッシュに格納されている情報が提供されることからなる、請求項2の装置。 - システム・バスによって少なくとも2つのモジュールに相互接続されたシステム・メモリを有するコンピュータ・アーキテクチャにおけるキャッシュ・コヒーレンシをチェックするための方法であって、前記モジュールのそれぞれが、関連するキャッシュ・メモリを有しており、
コヒーレンシのチェックが行なわれるキャッシュをロックして、コヒーレンシのチェックの間にモジュールがそのキャッシュをアクセスできないようにするステップと、
読み出しのみのキャッシュ・コヒーレンシのチェックを行なって、前記キャッシュが現在のデータを有するか失効データを有するかを判定するステップと、
前記読み出しのみのキャッシュ・コヒーレンシのチェックの後に、前記キャッシュのロックを解除するステップと、
前記読み出しのみのキャッシュ・コヒーレンシのチェックが、前記キャッシュが、前記読み出しのみのキャッシュ・コヒーレンシのチェックのアドレスに一致するアドレス情報を含むキャッシュ・タグを有するということを示す場合にのみ、前記キャッシュを再度ロックし、かつ、次の読み出し−書き込みキャッシュ・コヒーレンシのチェックを実行するステップであって、前記キャッシュを再度読み出して、キャッシュの状態が、前記読み出しのみのキャッシュ・コヒーレンシのチェックの後のキャッシュのロックが解除された時間間隔の間に変化したかどうかを判定し、前記キャッシュに書き込みを行なって前記キャッシュに格納されているデータを更新するステップと、
前記読み出し−書き込みコヒーレンシのチェックの後に前記キャッシュのロックを解除するステップ
を含む、方法。 - 前記キャッシュ・タグを用いて、前記キャッシュに関し、前記キャッシュに格納されているデータが前記システム・メモリに格納されているデータより新しい修正状態、前記キャッシュに格納されているデータがモジュール間で共用できない排他的状態、前記キャッシュに格納されているデータがモジュール間で共用される共用状態、及び前記キャッシュに格納されているデータのコピーが他のいかなるモジュールにおいても保持されていない無効状態、のいずれかを適宜示すステップを更に含む、請求項4の方法。
- 要求モジュールを用いて前記キャッシュ・コヒーレンシのチェックをするための要求をサード・パーティ・モジュールに送るステップと、
前記サード・パーティ・モジュールから前記要求モジュールに、当該サード・パーティ・モジュールのキャッシュに格納されているデータが前記状態のいずれにあるかを示すキャッシュ状態情報を返すことによって前記キャッシュ・コヒーレンシのチェックに応答するステップと、
前記サード・パーティ・モジュールのキャッシュ・タグ内のアドレス情報が前記要求のアドレスに一致しており、かつ、キャッシュ・コヒーレンシをチェックするための前記要求に対して返された前記キャッシュ状態情報が前記修正状態を示している場合には、前記要求モジュールのキャッシュに、前記サード・パーティ・モジュールのキャッシュに格納されている情報を提供するステップ
を更に含む、請求項5の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US196618 | 1994-02-14 | ||
US08/196,618 US6049851A (en) | 1994-02-14 | 1994-02-14 | Method and apparatus for checking cache coherency in a computer architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07253928A JPH07253928A (ja) | 1995-10-03 |
JP3737834B2 true JP3737834B2 (ja) | 2006-01-25 |
Family
ID=22726139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01335095A Expired - Fee Related JP3737834B2 (ja) | 1994-02-14 | 1995-01-31 | 2重化キャッシュ・スヌープ機構 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6049851A (ja) |
EP (1) | EP0667578B1 (ja) |
JP (1) | JP3737834B2 (ja) |
DE (1) | DE69421058T2 (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662216B1 (en) * | 1997-04-14 | 2003-12-09 | International Business Machines Corporation | Fixed bus tags for SMP buses |
WO1999032976A1 (en) * | 1997-12-18 | 1999-07-01 | Koninklijke Philips Electronics N.V. | Risc processor with concurrent snooping and instruction execution |
US6321307B1 (en) * | 1997-12-31 | 2001-11-20 | Compaq Computer Corporation | Computer system and method employing speculative snooping for optimizing performance |
US6393529B1 (en) | 1998-12-21 | 2002-05-21 | Advanced Micro Devices, Inc. | Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write |
US6490661B1 (en) * | 1998-12-21 | 2002-12-03 | Advanced Micro Devices, Inc. | Maintaining cache coherency during a memory read operation in a multiprocessing computer system |
US6631401B1 (en) | 1998-12-21 | 2003-10-07 | Advanced Micro Devices, Inc. | Flexible probe/probe response routing for maintaining coherency |
US6370621B1 (en) | 1998-12-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation |
US6857051B2 (en) * | 1998-12-23 | 2005-02-15 | Intel Corporation | Method and apparatus for maintaining cache coherence in a computer system |
US6754779B1 (en) * | 1999-08-23 | 2004-06-22 | Advanced Micro Devices | SDRAM read prefetch from multiple master devices |
US6681320B1 (en) | 1999-12-29 | 2004-01-20 | Intel Corporation | Causality-based memory ordering in a multiprocessing environment |
WO2001063240A2 (en) * | 2000-02-25 | 2001-08-30 | Sun Microsystems, Inc. | Maintaining high snoop traffic throughput and preventing cache data eviction during an atomic operation |
US6347360B1 (en) * | 2000-02-25 | 2002-02-12 | Sun Microsystems, Inc. | Apparatus and method for preventing cache data eviction during an atomic operation |
US6463506B1 (en) | 2000-04-29 | 2002-10-08 | Hewlett-Packard Company | Arrangement of data within cache lines so that tags are first data received |
US6961825B2 (en) * | 2001-01-24 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Cache coherency mechanism using arbitration masks |
US6918021B2 (en) | 2001-05-10 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System of and method for flow control within a tag pipeline |
US8055492B2 (en) * | 2002-01-10 | 2011-11-08 | International Business Machines Corporation | Non-unique results in design verification by test programs |
US7103728B2 (en) * | 2002-07-23 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | System and method for memory migration in distributed-memory multi-processor systems |
US7395374B2 (en) * | 2004-01-20 | 2008-07-01 | Hewlett-Packard Company, L.P. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US8176259B2 (en) | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
US7769959B2 (en) | 2004-01-20 | 2010-08-03 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration to memory |
US7818391B2 (en) | 2004-01-20 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration |
US8468308B2 (en) * | 2004-01-20 | 2013-06-18 | Hewlett-Packard Development Company, L.P. | System and method for non-migratory requests in a cache coherency protocol |
US8090914B2 (en) * | 2004-01-20 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | System and method for creating ordering points |
US20050160238A1 (en) * | 2004-01-20 | 2005-07-21 | Steely Simon C.Jr. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US7620696B2 (en) * | 2004-01-20 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | System and method for conflict responses in a cache coherency protocol |
US7975018B2 (en) * | 2004-07-07 | 2011-07-05 | Emc Corporation | Systems and methods for providing distributed cache coherence |
US20060138830A1 (en) * | 2004-12-23 | 2006-06-29 | Cho-Hsin Liu | Barrel shaped chair of a racing car |
US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
US20080270704A1 (en) * | 2007-04-30 | 2008-10-30 | He Dingshan | Cache arrangement for improving raid i/o operations |
JP4878050B2 (ja) * | 2008-11-28 | 2012-02-15 | 富士通株式会社 | コンピュータ及び制御方法 |
US9547596B2 (en) * | 2009-12-24 | 2017-01-17 | Arm Limited | Handling of a wait for event operation within a data processing apparatus |
US20150012711A1 (en) * | 2013-07-04 | 2015-01-08 | Vakul Garg | System and method for atomically updating shared memory in multiprocessor system |
US10346330B2 (en) * | 2014-01-29 | 2019-07-09 | Red Hat Israel, Ltd. | Updating virtual machine memory by interrupt handler |
US9606925B2 (en) * | 2015-03-26 | 2017-03-28 | Intel Corporation | Method, apparatus and system for optimizing cache memory transaction handling in a processor |
US11153164B2 (en) | 2017-01-04 | 2021-10-19 | International Business Machines Corporation | Live, in-line hardware component upgrades in disaggregated systems |
US10534598B2 (en) | 2017-01-04 | 2020-01-14 | International Business Machines Corporation | Rolling upgrades in disaggregated systems |
US10747298B2 (en) | 2017-11-29 | 2020-08-18 | Advanced Micro Devices, Inc. | Dynamic interrupt rate control in computing system |
US10503648B2 (en) | 2017-12-12 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache to cache data transfer acceleration techniques |
US11210246B2 (en) | 2018-08-24 | 2021-12-28 | Advanced Micro Devices, Inc. | Probe interrupt delivery |
CN112559433B (zh) * | 2019-09-25 | 2024-01-02 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
US10949292B1 (en) * | 2019-10-07 | 2021-03-16 | Arm Limited | Memory interface having data signal path and tag signal path |
CN112231403B (zh) * | 2020-10-15 | 2024-01-30 | 北京人大金仓信息技术股份有限公司 | 数据同步的一致性校验方法、装置、设备和存储介质 |
CN115061972B (zh) * | 2022-07-05 | 2023-10-13 | 摩尔线程智能科技(北京)有限责任公司 | 处理器、数据读写方法、装置和存储介质 |
CN115858420B (zh) * | 2023-02-23 | 2023-05-12 | 芯砺智能科技(上海)有限公司 | 用于支持多处理器架构的系统缓存架构和芯片 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US4977498A (en) * | 1988-04-01 | 1990-12-11 | Digital Equipment Corporation | Data processing system having a data memory interlock coherency scheme |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5249284A (en) * | 1990-06-04 | 1993-09-28 | Ncr Corporation | Method and system for maintaining data coherency between main and cache memories |
US5276852A (en) * | 1990-10-01 | 1994-01-04 | Digital Equipment Corporation | Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
EP0559409B1 (en) * | 1992-03-04 | 1998-07-22 | Motorola, Inc. | A method and apparatus for performing a bus arbitration protocol in a data processing system |
US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
-
1994
- 1994-02-14 US US08/196,618 patent/US6049851A/en not_active Expired - Lifetime
- 1994-08-25 DE DE69421058T patent/DE69421058T2/de not_active Expired - Fee Related
- 1994-08-25 EP EP94113339A patent/EP0667578B1/en not_active Expired - Lifetime
-
1995
- 1995-01-31 JP JP01335095A patent/JP3737834B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69421058T2 (de) | 2000-04-27 |
EP0667578B1 (en) | 1999-10-06 |
EP0667578A3 (en) | 1995-11-08 |
DE69421058D1 (de) | 1999-11-11 |
US6049851A (en) | 2000-04-11 |
EP0667578A2 (en) | 1995-08-16 |
JPH07253928A (ja) | 1995-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
JP3269967B2 (ja) | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム | |
US6721848B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
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 | |
US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
US7305522B2 (en) | Victim cache using direct intervention | |
JP5714733B2 (ja) | キャッシュ競合の解決 | |
US7305523B2 (en) | Cache memory direct intervention | |
US5671391A (en) | Coherent copyback protocol for multi-level cache memory systems | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
US6636906B1 (en) | Apparatus and method for ensuring forward progress in coherent I/O systems | |
CN101354682B (zh) | 一种用于解决多处理器访问目录冲突的装置和方法 | |
US7284097B2 (en) | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes | |
JP3714617B2 (ja) | キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット | |
JP2007199999A (ja) | マルチプロセッサシステム及びその動作方法 | |
US6269428B1 (en) | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
US10949292B1 (en) | Memory interface having data signal path and tag signal path | |
US5713004A (en) | Cache control for use in a multiprocessor to prevent data from ping-ponging between caches | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
US6418514B1 (en) | Removal of posted operations from cache operations queue | |
US5987544A (en) | System interface protocol with optional module cache | |
US5978886A (en) | Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache | |
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 | |
US6345340B1 (en) | Cache coherency protocol with ambiguous state for posted operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040809 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041005 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041228 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050930 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050930 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051028 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101104 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111104 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121104 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |