JPH09218822A - 逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステム - Google Patents
逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステムInfo
- Publication number
- JPH09218822A JPH09218822A JP8295047A JP29504796A JPH09218822A JP H09218822 A JPH09218822 A JP H09218822A JP 8295047 A JP8295047 A JP 8295047A JP 29504796 A JP29504796 A JP 29504796A JP H09218822 A JPH09218822 A JP H09218822A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- bus
- snoop
- data
- memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
Abstract
(57)【要約】 (修正有)
【課題】 複数バス・マスタ・システムにおけるキャッ
シュ一貫性を処理する際のスヌープ応答時間の過剰な遅
延を回避する。 【解決手段】 バス・マスタのそれぞれは、バス・イン
タフェース・ユニット(BIU)内に存在するスヌープ
・モニタを含み、システム・バス上の一貫性のあるメモ
リ・トランザクションの存在を監視し、他のバス・マス
タによって開始されたときに自分のバス・マスタのキャ
ッシュに関する単方向スヌープ応答信号を同報通信す
る。同報通信されるそれぞれのスヌープ応答信号は、N
種類の所定のスヌープ応答のうちの1つのスヌープ応答
を含み、各スヌープ応答はM個の2進ビットからなり、
各スヌープ応答の単一ビットは、Mビットが好ましくは
連続するMクロック・サイクルで転送されるように、処
理システムの単一クロック・サイクル中に同報通信さ
れ、M≧1かつN=2Mである。
シュ一貫性を処理する際のスヌープ応答時間の過剰な遅
延を回避する。 【解決手段】 バス・マスタのそれぞれは、バス・イン
タフェース・ユニット(BIU)内に存在するスヌープ
・モニタを含み、システム・バス上の一貫性のあるメモ
リ・トランザクションの存在を監視し、他のバス・マス
タによって開始されたときに自分のバス・マスタのキャ
ッシュに関する単方向スヌープ応答信号を同報通信す
る。同報通信されるそれぞれのスヌープ応答信号は、N
種類の所定のスヌープ応答のうちの1つのスヌープ応答
を含み、各スヌープ応答はM個の2進ビットからなり、
各スヌープ応答の単一ビットは、Mビットが好ましくは
連続するMクロック・サイクルで転送されるように、処
理システムの単一クロック・サイクル中に同報通信さ
れ、M≧1かつN=2Mである。
Description
【0001】
【発明の属する技術分野】本発明は、一般的には、コン
ピュータ・システムに関し、より具体的には、キャッシ
ュ・メモリが複数のバス・マスタのそれぞれに関連付け
られている、処理システム内の複数のキャッシュ・メモ
リを一貫した状態に維持するための方法およびシステム
に関する。
ピュータ・システムに関し、より具体的には、キャッシ
ュ・メモリが複数のバス・マスタのそれぞれに関連付け
られている、処理システム内の複数のキャッシュ・メモ
リを一貫した状態に維持するための方法およびシステム
に関する。
【0002】
【従来の技術】最新のパーソナル・コンピュータ・シス
テムは、一般に1つまたは複数のプロセッサと、各プロ
セッサ用のマイクロプロセッサ・キャッシュ・メモリ・
システムとを含む。キャッシュ・メモリとは、頻繁に使
用するコードとデータを格納するために使用する、小容
量の超高速かつ高価なゼロ待ち状態メモリである。キャ
ッシュ・システムは、それぞれのプロセッサとシステム
・バスとの間のインタフェースであり、高速のプロセッ
サ・サイクル時間と比較的低速のメモリ・アクセス時間
とのギャップを埋めるために使用する。
テムは、一般に1つまたは複数のプロセッサと、各プロ
セッサ用のマイクロプロセッサ・キャッシュ・メモリ・
システムとを含む。キャッシュ・メモリとは、頻繁に使
用するコードとデータを格納するために使用する、小容
量の超高速かつ高価なゼロ待ち状態メモリである。キャ
ッシュ・システムは、それぞれのプロセッサとシステム
・バスとの間のインタフェースであり、高速のプロセッ
サ・サイクル時間と比較的低速のメモリ・アクセス時間
とのギャップを埋めるために使用する。
【0003】プロセッサが読取り要求を生成し、要求さ
れたデータがそのキャッシュ・メモリ内に存在する場
合、キャッシュ読取りヒットが起こり、プロセッサは、
メイン・メモリにアクセスする必要もなくキャッシュ・
メモリからデータを獲得することができる。データがキ
ャッシュ・メモリ内に存在しない場合、キャッシュ読取
りミスが発生し、メモリ要求がシステムに転送され、キ
ャッシュ・システムが存在しない場合に通常行われるよ
うにデータがメイン・メモリから取り出される。キャッ
シュ・ミスの場合、メイン・メモリから取り出されたデ
ータは、プロセッサに提供され、プロセッサがもう一度
このデータを要求する統計的見込みによりキャッシュ・
メモリにも書き込まれる。同様に、プロセッサが書込み
要求を生成した場合、システム・バスを介してメイン・
メモリにアクセスする必要もなく(ライトバック・キャ
ッシュの場合)、書込みデータをキャッシュ・メモリに
書き込むことができる。これにより、プロセッサの効率
が高まり、ホスト・バスの使用率が低減し、他のプロセ
ッサやバス・マスタに使用できる帯域幅が増加する。
れたデータがそのキャッシュ・メモリ内に存在する場
合、キャッシュ読取りヒットが起こり、プロセッサは、
メイン・メモリにアクセスする必要もなくキャッシュ・
メモリからデータを獲得することができる。データがキ
ャッシュ・メモリ内に存在しない場合、キャッシュ読取
りミスが発生し、メモリ要求がシステムに転送され、キ
ャッシュ・システムが存在しない場合に通常行われるよ
うにデータがメイン・メモリから取り出される。キャッ
シュ・ミスの場合、メイン・メモリから取り出されたデ
ータは、プロセッサに提供され、プロセッサがもう一度
このデータを要求する統計的見込みによりキャッシュ・
メモリにも書き込まれる。同様に、プロセッサが書込み
要求を生成した場合、システム・バスを介してメイン・
メモリにアクセスする必要もなく(ライトバック・キャ
ッシュの場合)、書込みデータをキャッシュ・メモリに
書き込むことができる。これにより、プロセッサの効率
が高まり、ホスト・バスの使用率が低減し、他のプロセ
ッサやバス・マスタに使用できる帯域幅が増加する。
【0004】キャッシュ・システムの効率がよいと高い
「ヒット率」が得られるが、このヒット率は、すべての
メモリ・アクセス中に発生するキャッシュ・ヒットの割
合である。キャッシュ・システムのヒット率が高い場
合、メモリ・アクセスの大部分はゼロ待ち状態で対応さ
れる。したがって、効率のよいローカル・キャッシュ・
メモリを備えたプロセッサでは「バス使用率」がかなり
低くなる。このため、プロセッサが使用するシステム・
バス帯域幅が低減され、他のバス・マスタに使用可能な
帯域幅が増加する。さらに、プロセッサは、システム・
バスの制御権を備えていないときにそのローカル・キャ
ッシュ・メモリで動作することができ、それにより、コ
ンピュータ・システムの効率が高まる。
「ヒット率」が得られるが、このヒット率は、すべての
メモリ・アクセス中に発生するキャッシュ・ヒットの割
合である。キャッシュ・システムのヒット率が高い場
合、メモリ・アクセスの大部分はゼロ待ち状態で対応さ
れる。したがって、効率のよいローカル・キャッシュ・
メモリを備えたプロセッサでは「バス使用率」がかなり
低くなる。このため、プロセッサが使用するシステム・
バス帯域幅が低減され、他のバス・マスタに使用可能な
帯域幅が増加する。さらに、プロセッサは、システム・
バスの制御権を備えていないときにそのローカル・キャ
ッシュ・メモリで動作することができ、それにより、コ
ンピュータ・システムの効率が高まる。
【0005】2通りの主なタイプのキャッシュ・システ
ムは、ライトスルー・キャッシュ・システムと、ライト
バック・キャッシュ・システムと呼ばれている。ライト
スルー・システムでは、プロセッサからの書込みデータ
がキャッシュに書き込まれ、ただちにメイン・メモリに
も書き込まれる。これにより、キャッシュ・メモリ内の
データのコピーがメイン・メモリ内のデータと一致する
ことが保証される。しかし、ライトスルー・キャッシュ
・システムの欠点は、プロセッサ書込みごとにホスト・
バスの使用が必要になる点である。
ムは、ライトスルー・キャッシュ・システムと、ライト
バック・キャッシュ・システムと呼ばれている。ライト
スルー・システムでは、プロセッサからの書込みデータ
がキャッシュに書き込まれ、ただちにメイン・メモリに
も書き込まれる。これにより、キャッシュ・メモリ内の
データのコピーがメイン・メモリ内のデータと一致する
ことが保証される。しかし、ライトスルー・キャッシュ
・システムの欠点は、プロセッサ書込みごとにホスト・
バスの使用が必要になる点である。
【0006】ライトバック・キャッシュ・システムで
は、プロセッサ書込みデータがキャッシュ・メモリにの
み書き込まれ、他のデバイスがそのデータを要求する
か、または新しいデータを求める要求によってそれが廃
棄され置き換えられるときに、その書込みデータがメイ
ン・メモリに書き戻される。プロセッサ書込みデータが
キャッシュ・システムにのみ書き込まれる場合、メイン
・メモリ内の対応する位置に保持されるデータは無効デ
ータと呼ばれる。キャッシュには、変更データが保持さ
れる。ライトバック・キャッシュ・システムでは、以下
に記載するように他のバス・マスタ、たとえば、プロセ
ッサによるサイクル中にシステム・バスを監視または
「スヌープ」するためにキャッシュ・コントローラが必
要である。
は、プロセッサ書込みデータがキャッシュ・メモリにの
み書き込まれ、他のデバイスがそのデータを要求する
か、または新しいデータを求める要求によってそれが廃
棄され置き換えられるときに、その書込みデータがメイ
ン・メモリに書き戻される。プロセッサ書込みデータが
キャッシュ・システムにのみ書き込まれる場合、メイン
・メモリ内の対応する位置に保持されるデータは無効デ
ータと呼ばれる。キャッシュには、変更データが保持さ
れる。ライトバック・キャッシュ・システムでは、以下
に記載するように他のバス・マスタ、たとえば、プロセ
ッサによるサイクル中にシステム・バスを監視または
「スヌープ」するためにキャッシュ・コントローラが必
要である。
【0007】一般に、キャッシュ管理は、キャッシュ・
コントローラと呼ばれるデバイスによって行われる。主
なキャッシュ管理方針は、キャッシュ一貫性の保持であ
る。キャッシュ一貫性とは、データを要求したバス・デ
バイスがそのデータの最新バージョンを受け取るという
要件を意味する。一般に、あるデータに関して、その最
新バージョンを記憶している記憶位置はそのデータの所
有者として定義される。データの所有者は、メイン・メ
モリ内の未変更位置の場合もあれば、ライトバック・キ
ャッシュ内の変更済み位置の場合もある。
コントローラと呼ばれるデバイスによって行われる。主
なキャッシュ管理方針は、キャッシュ一貫性の保持であ
る。キャッシュ一貫性とは、データを要求したバス・デ
バイスがそのデータの最新バージョンを受け取るという
要件を意味する。一般に、あるデータに関して、その最
新バージョンを記憶している記憶位置はそのデータの所
有者として定義される。データの所有者は、メイン・メ
モリ内の未変更位置の場合もあれば、ライトバック・キ
ャッシュ内の変更済み位置の場合もある。
【0008】独立したバス・マスタがメイン・メモリに
アクセス可能なコンピュータ・システムでは、他のプロ
セッサなどのバス・マスタ、あるいは直接メモリ・アク
セス・コントローラ、ネットワーク・インタフェース・
カード、ディスク・インタフェース・カード、またはビ
デオ・グラフィック・カードが、キャッシュ・メモリ内
に複写されているメイン・メモリ位置の内容を変更する
可能性がある。このような事態が発生した場合、キャッ
シュ・メモリは無効データを保持することになる。プロ
セッサが間違ってこの無効データを獲得すると、問題が
発生する恐れがある。したがって、キャッシュ一貫性を
維持するためには、プロセッサがバスを制御していない
ときにキャッシュ・コントローラがシステム・バスを監
視し、他のバス・マスタがメイン・メモリにアクセスし
ているかどうかを確認することが必要である。このよう
なバス監視方法は、当技術分野では「スヌーピング」と
呼ばれる。
アクセス可能なコンピュータ・システムでは、他のプロ
セッサなどのバス・マスタ、あるいは直接メモリ・アク
セス・コントローラ、ネットワーク・インタフェース・
カード、ディスク・インタフェース・カード、またはビ
デオ・グラフィック・カードが、キャッシュ・メモリ内
に複写されているメイン・メモリ位置の内容を変更する
可能性がある。このような事態が発生した場合、キャッ
シュ・メモリは無効データを保持することになる。プロ
セッサが間違ってこの無効データを獲得すると、問題が
発生する恐れがある。したがって、キャッシュ一貫性を
維持するためには、プロセッサがバスを制御していない
ときにキャッシュ・コントローラがシステム・バスを監
視し、他のバス・マスタがメイン・メモリにアクセスし
ているかどうかを確認することが必要である。このよう
なバス監視方法は、当技術分野では「スヌーピング」と
呼ばれる。
【0009】ライトバック・キャッシュ方式のキャッシ
ュ・コントローラは、バス・マスタによるメイン・メモ
リ読取り中にもシステム・バスを監視しなければならな
い。というのは、メイン・メモリ内で更新されていない
データのコピーがキャッシュ・メモリにあって、それが
前のプロセッサ書込みによって変更されている可能性が
あるためである。これは、読取りスヌーピングと呼ばれ
る。メイン・メモリ内でまだ更新されていないデータを
キャッシュ・メモリが含むような読取りスヌープ・ヒッ
トの場合、一般にキャッシュ・コントローラは、それぞ
れのデータをメイン・メモリと要求側のバス・マスタと
に提供する。
ュ・コントローラは、バス・マスタによるメイン・メモ
リ読取り中にもシステム・バスを監視しなければならな
い。というのは、メイン・メモリ内で更新されていない
データのコピーがキャッシュ・メモリにあって、それが
前のプロセッサ書込みによって変更されている可能性が
あるためである。これは、読取りスヌーピングと呼ばれ
る。メイン・メモリ内でまだ更新されていないデータを
キャッシュ・メモリが含むような読取りスヌープ・ヒッ
トの場合、一般にキャッシュ・コントローラは、それぞ
れのデータをメイン・メモリと要求側のバス・マスタと
に提供する。
【0010】同様に、バス・マスタは、メイン・メモリ
への書込みによって、キャッシュ・メモリ内にコピーが
あるデータを変更する可能性があるので、キャッシュ・
コントローラは、メモリ書込み中にもシステム・バスを
監視しなければならない。これは、書込みスヌーピング
と呼ばれる。書込みスヌープ・ヒットの場合、対応する
キャッシュ項目がキャッシュ・コントローラ内で無効の
マークが付けられて、この項目がもはや正しくないこと
を示すか、あるいはキャッシュ・メモリがメイン・メモ
リとともに更新される。
への書込みによって、キャッシュ・メモリ内にコピーが
あるデータを変更する可能性があるので、キャッシュ・
コントローラは、メモリ書込み中にもシステム・バスを
監視しなければならない。これは、書込みスヌーピング
と呼ばれる。書込みスヌープ・ヒットの場合、対応する
キャッシュ項目がキャッシュ・コントローラ内で無効の
マークが付けられて、この項目がもはや正しくないこと
を示すか、あるいはキャッシュ・メモリがメイン・メモ
リとともに更新される。
【0011】したがって、バス・マスタがライトバック
・キャッシュ方式でメイン・メモリの読取りまたは書込
みを行うか、ライトスルー・キャッシュ方式でメイン・
メモリに書き込む場合、キャッシュ・コントローラは、
システム・アドレスをラッチし、アクセス中のメイン・
メモリ位置がキャッシュ・メモリ内に存在するかどうか
を確認しなければならない。このメイン・メモリ位置か
らのデータのコピーがキャッシュ・メモリ内に存在する
場合、キャッシュ・コントローラは、読取りまたは書込
みいずれのスヌープ・ヒットが発生したかに応じて、適
切なアクションを講じる。このため、無効データがメイ
ン・メモリとキャッシュ・メモリに格納されるのが防止
され、それにより、キャッシュ一貫性が保持される。
・キャッシュ方式でメイン・メモリの読取りまたは書込
みを行うか、ライトスルー・キャッシュ方式でメイン・
メモリに書き込む場合、キャッシュ・コントローラは、
システム・アドレスをラッチし、アクセス中のメイン・
メモリ位置がキャッシュ・メモリ内に存在するかどうか
を確認しなければならない。このメイン・メモリ位置か
らのデータのコピーがキャッシュ・メモリ内に存在する
場合、キャッシュ・コントローラは、読取りまたは書込
みいずれのスヌープ・ヒットが発生したかに応じて、適
切なアクションを講じる。このため、無効データがメイ
ン・メモリとキャッシュ・メモリに格納されるのが防止
され、それにより、キャッシュ一貫性が保持される。
【0012】不一致またはキャッシュ矛盾の問題は、い
くつかの理由、たとえば、書込み可能データの共用の結
果、プロセス移行、入出力活動などにより発生し得る。
メモリまたはデータの一貫性を扱うためにいくつかの方
法が提案/実現されている。たとえば、米国特許第50
25365号、同第5249283号および同第535
3415号を参照されたい。
くつかの理由、たとえば、書込み可能データの共用の結
果、プロセス移行、入出力活動などにより発生し得る。
メモリまたはデータの一貫性を扱うためにいくつかの方
法が提案/実現されている。たとえば、米国特許第50
25365号、同第5249283号および同第535
3415号を参照されたい。
【0013】キャッシュ一貫性の問題に対する単純な解
決策の1つは、メイン・メモリ・アドレスに関連するデ
ータの各キャッシュ・コピーの位置をメイン・メモリに
記録することである。キャッシュ・コピーが変更される
と、その結果は処理を実行するプロセッサのキャッシュ
に自動的に格納され、メイン・メモリ内の対応するアド
レスに書き戻され、次にメイン・メモリ・アドレスに関
連するデータを有する他のキャッシュにコピーされる。
この書き戻しプロセスは、2プロセッサ・システムの場
合に非常によく機能するが、プロセッサの数が増すにつ
れて、メイン・メモリへの頻繁な書き戻し、およびすべ
てのキャッシュ・コピーの頻繁な更新により、相互接続
サブシステムが過負荷になりがちである。このようなシ
ステムでは、プロセッサ・キャッシュへの更新メッセー
ジによってシステムの相互接続が過負荷になるため、複
数のプロセッサによる処理能力が損なわれることがあ
る。
決策の1つは、メイン・メモリ・アドレスに関連するデ
ータの各キャッシュ・コピーの位置をメイン・メモリに
記録することである。キャッシュ・コピーが変更される
と、その結果は処理を実行するプロセッサのキャッシュ
に自動的に格納され、メイン・メモリ内の対応するアド
レスに書き戻され、次にメイン・メモリ・アドレスに関
連するデータを有する他のキャッシュにコピーされる。
この書き戻しプロセスは、2プロセッサ・システムの場
合に非常によく機能するが、プロセッサの数が増すにつ
れて、メイン・メモリへの頻繁な書き戻し、およびすべ
てのキャッシュ・コピーの頻繁な更新により、相互接続
サブシステムが過負荷になりがちである。このようなシ
ステムでは、プロセッサ・キャッシュへの更新メッセー
ジによってシステムの相互接続が過負荷になるため、複
数のプロセッサによる処理能力が損なわれることがあ
る。
【0014】もう1つの方法は、アドレス/スヌープ応
答にオープンコレクタ信号を使用することである。これ
により、3つの信号線、すなわち、共用信号線、変更済
み信号線、再試行信号線の使用が必要になるだけで、複
数のバス・マスタが複数の信号を同時に励起することが
できる。欠点は、同一クロック・エッジ(立上りまたは
立下り)で信号が変化する場合にアドレス・バス用の最
小ターンアラウンド時間が4クロック・サイクルになる
ことである。立上りと立下りの両方のクロック・エッジ
で信号が変化できる場合には、アドレス・バス用の最小
ターンアラウンド時間を3クロック・サイクルに短縮す
ることができる。しかし、これにより、通常はクリティ
カル・パス信号の1つであるアドレス/スヌープ応答信
号用の制御論理が複雑になる。
答にオープンコレクタ信号を使用することである。これ
により、3つの信号線、すなわち、共用信号線、変更済
み信号線、再試行信号線の使用が必要になるだけで、複
数のバス・マスタが複数の信号を同時に励起することが
できる。欠点は、同一クロック・エッジ(立上りまたは
立下り)で信号が変化する場合にアドレス・バス用の最
小ターンアラウンド時間が4クロック・サイクルになる
ことである。立上りと立下りの両方のクロック・エッジ
で信号が変化できる場合には、アドレス・バス用の最小
ターンアラウンド時間を3クロック・サイクルに短縮す
ることができる。しかし、これにより、通常はクリティ
カル・パス信号の1つであるアドレス/スヌープ応答信
号用の制御論理が複雑になる。
【0015】
【発明が解決しようとする課題】したがって、マルチプ
ロセッサ・システムなどの複数バス・マスタ・システム
におけるキャッシュ一貫性を維持するための改良された
方法およびシステム、より具体的には、アドレス・バス
・ターンアラウンド時間またはスヌープ応答時間の過剰
な遅延を回避する手法に対する必要性が依然として存在
する。本発明はこの必要性を扱うものである。
ロセッサ・システムなどの複数バス・マスタ・システム
におけるキャッシュ一貫性を維持するための改良された
方法およびシステム、より具体的には、アドレス・バス
・ターンアラウンド時間またはスヌープ応答時間の過剰
な遅延を回避する手法に対する必要性が依然として存在
する。本発明はこの必要性を扱うものである。
【0016】
【課題を解決するための手段】簡単に要約すると、本発
明は、バス・マスタのためにデータの一貫性を保持する
キャッシュ一貫性保持システムに関する。少なくとも一
部のバス・マスタは、メイン・メモリとの間でデータを
やりとりするシステム・バスに接続されたキャッシュを
有する。このシステムは複数のスヌープ・モニタを含
み、各スヌープ・モニタはキャッシュを有する少なくと
も一部のバス・マスタのうちの特定の1つのバス・マス
タに関連付けられている。このスヌープ・モニタは、シ
ステム・バス上の一貫性のあるメモリ・トランザクショ
ンを監視し、そのメモリ・トランザクションが別のバス
・マスタによって開始されたときに、関連バス・マスタ
のキャッシュに関する単方向スヌープ応答信号を同報通
信する。スヌープ・モニタは、それぞれのスヌープ・モ
ニタがシステム・バス上の一貫性のあるメモリ・トラン
ザクションに応答して生成された単方向スヌープ応答信
号を個別の単一信号入力で受け取るように、電気的に相
互接続されている。同報通信されるそれぞれのスヌープ
応答信号は、N種類の所定のスヌープ応答のうちの1つ
のスヌープ応答を含む。各スヌープ応答はMビットの逐
次符号化信号を含み、処理システムの1クロック・サイ
クル当り1ビットずつ転送される。従ってMビットはM
クロック・サイクルで転送される。ここで、M≧1かつ
N=2Mである。1つの実施態様として、バス・マスタ
の少なくとも一部がマルチプロセッサ・システムのプロ
セッサであってもよい。さらに、同報通信される各スヌ
ープ応答信号が、キャッシュ・ミス応答と、データ未変
更キャッシュ・ヒット応答と、データ変更済みキャッシ
ュ・ヒット応答と、アドレス再試行要求応答とを含む、
4つの所定のスヌープ応答のうちの1つのスヌープ応答
を含むように、Mを2にすることができる。
明は、バス・マスタのためにデータの一貫性を保持する
キャッシュ一貫性保持システムに関する。少なくとも一
部のバス・マスタは、メイン・メモリとの間でデータを
やりとりするシステム・バスに接続されたキャッシュを
有する。このシステムは複数のスヌープ・モニタを含
み、各スヌープ・モニタはキャッシュを有する少なくと
も一部のバス・マスタのうちの特定の1つのバス・マス
タに関連付けられている。このスヌープ・モニタは、シ
ステム・バス上の一貫性のあるメモリ・トランザクショ
ンを監視し、そのメモリ・トランザクションが別のバス
・マスタによって開始されたときに、関連バス・マスタ
のキャッシュに関する単方向スヌープ応答信号を同報通
信する。スヌープ・モニタは、それぞれのスヌープ・モ
ニタがシステム・バス上の一貫性のあるメモリ・トラン
ザクションに応答して生成された単方向スヌープ応答信
号を個別の単一信号入力で受け取るように、電気的に相
互接続されている。同報通信されるそれぞれのスヌープ
応答信号は、N種類の所定のスヌープ応答のうちの1つ
のスヌープ応答を含む。各スヌープ応答はMビットの逐
次符号化信号を含み、処理システムの1クロック・サイ
クル当り1ビットずつ転送される。従ってMビットはM
クロック・サイクルで転送される。ここで、M≧1かつ
N=2Mである。1つの実施態様として、バス・マスタ
の少なくとも一部がマルチプロセッサ・システムのプロ
セッサであってもよい。さらに、同報通信される各スヌ
ープ応答信号が、キャッシュ・ミス応答と、データ未変
更キャッシュ・ヒット応答と、データ変更済みキャッシ
ュ・ヒット応答と、アドレス再試行要求応答とを含む、
4つの所定のスヌープ応答のうちの1つのスヌープ応答
を含むように、Mを2にすることができる。
【0017】他の態様では、マルチプロセッサ・システ
ム内の各プロセッサに対して、アクセスされたデータの
一貫性を保持するための方法が提供される。各プロセッ
サは、メイン・メモリとの間でデータをやりとりするシ
ステム・バスに接続されたキャッシュを有する。各プロ
セッサは、自身のキャッシュに結合されたスヌープ・モ
ニタをさらに含む。この方法は、一貫性のあるメモリ・
トランザクションがあるかどうかシステム・バスを監視
するステップと、そのプロセッサのキャッシュ手段に関
連してスヌープ・モニタが生成した単方向スヌープ応答
信号を同報通信することにより、マルチプロセッサ・シ
ステム内のプロセッサの少なくとも一部が一貫性のある
メモリ・トランザクションに応答するステップであっ
て、生成された各スヌープ応答信号がN種類の所定のス
ヌープ応答のうちの1つのスヌープ応答を含み、各スヌ
ープ応答がMビットの逐次符号化信号であり、各スヌー
プ応答の単一ビットがマルチプロセッサ・システムの単
一クロック・サイクル中に転送され(Mクロック・サイ
クルでMビットを転送)、M≧1かつN=2Mであるス
テップと、生成された各単方向スヌープ応答信号をスヌ
ープ・モニタ側の個別の信号入力を介してマルチプロセ
ッサ・システム内の他の各スヌープ・モニタに同時に提
供するステップとを含む。受け取った単方向スヌープ応
答信号は、システム・バスのマスタを含むプロセッサに
よって、アクセスされたデータの一貫性を確保するため
に使用される。
ム内の各プロセッサに対して、アクセスされたデータの
一貫性を保持するための方法が提供される。各プロセッ
サは、メイン・メモリとの間でデータをやりとりするシ
ステム・バスに接続されたキャッシュを有する。各プロ
セッサは、自身のキャッシュに結合されたスヌープ・モ
ニタをさらに含む。この方法は、一貫性のあるメモリ・
トランザクションがあるかどうかシステム・バスを監視
するステップと、そのプロセッサのキャッシュ手段に関
連してスヌープ・モニタが生成した単方向スヌープ応答
信号を同報通信することにより、マルチプロセッサ・シ
ステム内のプロセッサの少なくとも一部が一貫性のある
メモリ・トランザクションに応答するステップであっ
て、生成された各スヌープ応答信号がN種類の所定のス
ヌープ応答のうちの1つのスヌープ応答を含み、各スヌ
ープ応答がMビットの逐次符号化信号であり、各スヌー
プ応答の単一ビットがマルチプロセッサ・システムの単
一クロック・サイクル中に転送され(Mクロック・サイ
クルでMビットを転送)、M≧1かつN=2Mであるス
テップと、生成された各単方向スヌープ応答信号をスヌ
ープ・モニタ側の個別の信号入力を介してマルチプロセ
ッサ・システム内の他の各スヌープ・モニタに同時に提
供するステップとを含む。受け取った単方向スヌープ応
答信号は、システム・バスのマスタを含むプロセッサに
よって、アクセスされたデータの一貫性を確保するため
に使用される。
【0018】言い換えると、ここでは、処理システム内
でキャッシュ一貫性を処理するための新規の方法および
システムを提供する。本発明に従う同報通信手法は、要
求元デバイスへのデータの返却を遅らせずにスヌープ応
答を分配し、デバイスのピン・カウントを最小限に維持
するものである。スヌープ応答を逐次化することによ
り、単一信号線を介して他の各バス・マスタにそれぞれ
の応答を同報通信することができる。また、単一信号線
上で連続クロック・サイクル中に複数の2進ビットを転
送することにより、様々な応答状態を符号化することが
できる。変更済みデータのキャッシュ間転送を使用する
システムの場合は、トランザクションを続行するかまた
は打ち切るようにターゲット・デバイス、すなわち、シ
ステム・バス上のメモリ・コントローラに対して早期表
示(スヌープ応答の最初のクロック・サイクル内である
ことが好ましい)を行うためにスヌープ応答が符号化さ
れる。変更済み、排他、または共用データのキャッシュ
間転送を使用するシステムの場合は、他のデバイスが要
求元デバイスにそのデータを転送できることを示す早期
表示(最初のクロック・サイクル内であることが好まし
い)をそのデバイスに対して行うためにスヌープ応答を
符号化することができる。この手法では、両方向信号手
法で必要なターンアラウンド時間を解消する単方向信号
を使用している。本発明を使用する一貫性のあるメモリ
・トランザクションの場合、2クロック・サイクルごと
に1回のアドレス転送を行うことができる。すなわち、
1つのスヌープ応答は2クロック・サイクルを要するも
のとして定義されている。各バス・マスタは、システム
・バスに接続された他の各バス・マスタ用の個別の応答
信号線入力を受け入れる。
でキャッシュ一貫性を処理するための新規の方法および
システムを提供する。本発明に従う同報通信手法は、要
求元デバイスへのデータの返却を遅らせずにスヌープ応
答を分配し、デバイスのピン・カウントを最小限に維持
するものである。スヌープ応答を逐次化することによ
り、単一信号線を介して他の各バス・マスタにそれぞれ
の応答を同報通信することができる。また、単一信号線
上で連続クロック・サイクル中に複数の2進ビットを転
送することにより、様々な応答状態を符号化することが
できる。変更済みデータのキャッシュ間転送を使用する
システムの場合は、トランザクションを続行するかまた
は打ち切るようにターゲット・デバイス、すなわち、シ
ステム・バス上のメモリ・コントローラに対して早期表
示(スヌープ応答の最初のクロック・サイクル内である
ことが好ましい)を行うためにスヌープ応答が符号化さ
れる。変更済み、排他、または共用データのキャッシュ
間転送を使用するシステムの場合は、他のデバイスが要
求元デバイスにそのデータを転送できることを示す早期
表示(最初のクロック・サイクル内であることが好まし
い)をそのデバイスに対して行うためにスヌープ応答を
符号化することができる。この手法では、両方向信号手
法で必要なターンアラウンド時間を解消する単方向信号
を使用している。本発明を使用する一貫性のあるメモリ
・トランザクションの場合、2クロック・サイクルごと
に1回のアドレス転送を行うことができる。すなわち、
1つのスヌープ応答は2クロック・サイクルを要するも
のとして定義されている。各バス・マスタは、システム
・バスに接続された他の各バス・マスタ用の個別の応答
信号線入力を受け入れる。
【0019】
【発明の実施の形態】図1は、データ信号、アドレス信
号、制御信号用の汎用相互接続部すなわちシステム・バ
ス14を含む、マルチプロセッサ・システム10のブロ
ック図である。システム10内では各プロセッサ12
(プロセッサA、プロセッサB、プロセッサC、プロセ
ッサD)がバス14に接続され、このバスは図示の相互
接続配線14'を部分的に含んでいる。ただし、マルチ
プロセッサ・システム10は一例としてのみここに図示
されていることに留意されたい。本発明のキャッシュ一
貫性の概念は、システム・バスに接続されたキャッシュ
・メモリを有する、たとえば、直接メモリ・アクセス・
コントローラ、ネットワーク・インタフェース・カー
ド、ディスク・インタフェース・カード、ビデオグラフ
ィック・カードなどの複数のバス・マスタを有するシス
テムであれば、どのようなシステムにも適用可能であ
る。これは、ユニプロセッサ・システムも含む。
号、制御信号用の汎用相互接続部すなわちシステム・バ
ス14を含む、マルチプロセッサ・システム10のブロ
ック図である。システム10内では各プロセッサ12
(プロセッサA、プロセッサB、プロセッサC、プロセ
ッサD)がバス14に接続され、このバスは図示の相互
接続配線14'を部分的に含んでいる。ただし、マルチ
プロセッサ・システム10は一例としてのみここに図示
されていることに留意されたい。本発明のキャッシュ一
貫性の概念は、システム・バスに接続されたキャッシュ
・メモリを有する、たとえば、直接メモリ・アクセス・
コントローラ、ネットワーク・インタフェース・カー
ド、ディスク・インタフェース・カード、ビデオグラフ
ィック・カードなどの複数のバス・マスタを有するシス
テムであれば、どのようなシステムにも適用可能であ
る。これは、ユニプロセッサ・システムも含む。
【0020】システム10内の各プロセッサ12は、通
常のキャッシュ20と、キャッシュ20およびシステム
・バス14に密結合されたスヌープ・モニタ30とを含
む。スヌープ・モニタ30は、たとえば、それぞれのプ
ロセッサをシステム・バス14に結合するバス・インタ
フェース・ユニット内に存在することができる。あるい
は、各モニタは、プロセッサ内の独立した論理ユニット
であってもよい。いずれにしても、スヌープ・モニタ3
0は、キャッシュ20とそれぞれのプロセッサのバス・
インタフェース・ユニット、従ってシステム・バス14
とに緊密に結合されている。
常のキャッシュ20と、キャッシュ20およびシステム
・バス14に密結合されたスヌープ・モニタ30とを含
む。スヌープ・モニタ30は、たとえば、それぞれのプ
ロセッサをシステム・バス14に結合するバス・インタ
フェース・ユニット内に存在することができる。あるい
は、各モニタは、プロセッサ内の独立した論理ユニット
であってもよい。いずれにしても、スヌープ・モニタ3
0は、キャッシュ20とそれぞれのプロセッサのバス・
インタフェース・ユニット、従ってシステム・バス14
とに緊密に結合されている。
【0021】各プロセッサ12は、システム・バス14
およびメモリ・コントローラ16を介してメイン・メモ
リ18に結合される。メモリ・コントローラ16は、シ
ステム10のプロセッサ12によって同報通信される単
方向スヌープ応答信号を入力「I」として受け取るよう
に、バス14に接続されたバス・インタフェース・ユニ
ット31を含む。本発明のスヌープ監視手法を実現する
相互接続部14'は、生成された単方向信号の同時同報
通信のために、システム10内の各バス・マスタ12、
16から他のバス・マスタへ同報通信出力「O」を送る
ための信号線を含む。各バス・マスタは、自身の同報通
信出力線に逐次符号化スヌープ応答信号を出力する。例
外は、メモリ・コントローラ16のバス・インタフェー
ス・ユニット(BIU)31である。コントローラ16
にはキャッシュがないので、BIU31からの信号出力
は、たとえば、単純なアドレス受信/再試行応答を示
す。たとえば、バス・マスタの一貫性のあるメモリ・ト
ランザクションがコントローラ16で受信不能な場合、
BIU31はアドレス再試行要求応答をすべてのスヌー
プ・モニタ30に出力する。このように、各バス・マス
タは自身の応答を他のバス・マスタに伝えるための専用
の単一信号線を有する。各スヌープ応答をMビットで符
号化し、それを処理システムのMクロック・サイクルで
順次に転送することにより、単一信号線での同報通信が
可能になる。たとえば、符号化された各スヌープ応答の
長さが2ビットであれば、4通りの所定のスヌープ応答
が可能であり、符号化されたスヌープ応答が3ビットの
場合は最高8通りの所定の応答が可能になる。ここで
は、2ビット符号化スヌープ応答の例を以下に示す。
およびメモリ・コントローラ16を介してメイン・メモ
リ18に結合される。メモリ・コントローラ16は、シ
ステム10のプロセッサ12によって同報通信される単
方向スヌープ応答信号を入力「I」として受け取るよう
に、バス14に接続されたバス・インタフェース・ユニ
ット31を含む。本発明のスヌープ監視手法を実現する
相互接続部14'は、生成された単方向信号の同時同報
通信のために、システム10内の各バス・マスタ12、
16から他のバス・マスタへ同報通信出力「O」を送る
ための信号線を含む。各バス・マスタは、自身の同報通
信出力線に逐次符号化スヌープ応答信号を出力する。例
外は、メモリ・コントローラ16のバス・インタフェー
ス・ユニット(BIU)31である。コントローラ16
にはキャッシュがないので、BIU31からの信号出力
は、たとえば、単純なアドレス受信/再試行応答を示
す。たとえば、バス・マスタの一貫性のあるメモリ・ト
ランザクションがコントローラ16で受信不能な場合、
BIU31はアドレス再試行要求応答をすべてのスヌー
プ・モニタ30に出力する。このように、各バス・マス
タは自身の応答を他のバス・マスタに伝えるための専用
の単一信号線を有する。各スヌープ応答をMビットで符
号化し、それを処理システムのMクロック・サイクルで
順次に転送することにより、単一信号線での同報通信が
可能になる。たとえば、符号化された各スヌープ応答の
長さが2ビットであれば、4通りの所定のスヌープ応答
が可能であり、符号化されたスヌープ応答が3ビットの
場合は最高8通りの所定の応答が可能になる。ここで
は、2ビット符号化スヌープ応答の例を以下に示す。
【0022】最初に簡単に注記したように、キャッシュ
を備えたマルチプロセッシング・システムでは、バス・
デバイス間のメモリ一貫性を確保するための方法を提供
することが重要である。たとえば、あるプロセッサがメ
モリからデータを要求した場合、別のプロセッサがその
キャッシュ内に最近変更したデータをまだ持っている可
能性がある。したがって、各プロセッサは、そのキャッ
シュ内にデータのコピーを持っているかどうかを示し、
ある場合にはこのデータがメイン・メモリに格納されて
いるバージョンから変更されたものであるかどうかを示
さなければならない。データが変更されている場合、変
更済みデータを有するバス・デバイスは、メイン・メモ
リを更新するのに十分な時間を提供するためにアドレス
転送を再試行する必要があることを示すか、システム構
成が許すならば、変更済みデータを要求元のバス・デバ
イスに直接送信していることを示す。後者の場合、一貫
性のあるメモリ・トランザクションを再試行する必要は
ない。要求されたデータに関する情報を提供することに
加え、各バス・デバイスは、それがアドレスを正しく受
け取ったか、または新しいアドレスを受け入れることが
できなかったことを示さなければならない。メモリ・コ
ントローラ16にも同報通信出力「O」が備えられてい
るのはこのためである。アドレス・オーバフローが発生
した場合、メモリ・コントローラ16は、アドレス転送
を再試行しなければならないことを示す。
を備えたマルチプロセッシング・システムでは、バス・
デバイス間のメモリ一貫性を確保するための方法を提供
することが重要である。たとえば、あるプロセッサがメ
モリからデータを要求した場合、別のプロセッサがその
キャッシュ内に最近変更したデータをまだ持っている可
能性がある。したがって、各プロセッサは、そのキャッ
シュ内にデータのコピーを持っているかどうかを示し、
ある場合にはこのデータがメイン・メモリに格納されて
いるバージョンから変更されたものであるかどうかを示
さなければならない。データが変更されている場合、変
更済みデータを有するバス・デバイスは、メイン・メモ
リを更新するのに十分な時間を提供するためにアドレス
転送を再試行する必要があることを示すか、システム構
成が許すならば、変更済みデータを要求元のバス・デバ
イスに直接送信していることを示す。後者の場合、一貫
性のあるメモリ・トランザクションを再試行する必要は
ない。要求されたデータに関する情報を提供することに
加え、各バス・デバイスは、それがアドレスを正しく受
け取ったか、または新しいアドレスを受け入れることが
できなかったことを示さなければならない。メモリ・コ
ントローラ16にも同報通信出力「O」が備えられてい
るのはこのためである。アドレス・オーバフローが発生
した場合、メモリ・コントローラ16は、アドレス転送
を再試行しなければならないことを示す。
【0023】他の例として、プロセッサAがメモリ18
にあるデータを要求した場合、プロセッサB、C、また
はDがそのキャッシュ内にデータのコピーを持っている
可能性がある。プロセッサB、C、Dのそれぞれがその
データの未変更コピーを持っていると想定すると、メモ
リ・コントローラ16はアドレス転送が正しく受け取ら
れたことを示し(応答1)、プロセッサB、C、Dのそ
れぞれはそのデータの共用コピーを持っていることを同
報通信する(応答2)。別の例として、プロセッサAが
メモリ18にあるデータを要求した場合、プロセッサ
B、C、またはDがそのキャッシュ内にそのデータの最
も最近変更したバージョンを持っている可能性がある。
たとえば、プロセッサBが変更済みデータを持ってい
て、要求元デバイスにそのデータを直接送信できる場
合、メモリ・コントローラ16はアドレス転送が正しく
受け取られたことを示し(応答1)、プロセッサBはそ
れが要求元デバイスに送ることになるデータの変更済み
バージョンを持っていることを示し(応答3)、プロセ
ッサCおよびDはデータの無効コピーを持っていること
を示す(応答2)。他の例では、プロセッサAがメモリ
18にあるデータを要求し、プロセッサBではデータが
そのキャッシュ内に存在するかどうかを判定するために
追加の時間を必要とすると想定する。プロセッサCは、
それがデータの変更済みバージョンを持っていると判定
したが、要求元デバイス、すなわち、プロセッサAに変
更済みデータを送信することができない。また、メモリ
・コントローラ16ではアドレス・バッファ・オーバフ
ローが発生している。この例では、メモリ・コントロー
ラ16、プロセッサB、およびプロセッサCは、アドレ
ス再試行が必要であることを示す(応答4)。これは、
アドレス要求をもう一度送信することによって要求元デ
バイスが一貫性のあるメモリ転送を再開しなければなら
ないことを意味する。プロセッサDは、アドレス転送が
正しく受け取られたことを示すことができる(応答
1)。
にあるデータを要求した場合、プロセッサB、C、また
はDがそのキャッシュ内にデータのコピーを持っている
可能性がある。プロセッサB、C、Dのそれぞれがその
データの未変更コピーを持っていると想定すると、メモ
リ・コントローラ16はアドレス転送が正しく受け取ら
れたことを示し(応答1)、プロセッサB、C、Dのそ
れぞれはそのデータの共用コピーを持っていることを同
報通信する(応答2)。別の例として、プロセッサAが
メモリ18にあるデータを要求した場合、プロセッサ
B、C、またはDがそのキャッシュ内にそのデータの最
も最近変更したバージョンを持っている可能性がある。
たとえば、プロセッサBが変更済みデータを持ってい
て、要求元デバイスにそのデータを直接送信できる場
合、メモリ・コントローラ16はアドレス転送が正しく
受け取られたことを示し(応答1)、プロセッサBはそ
れが要求元デバイスに送ることになるデータの変更済み
バージョンを持っていることを示し(応答3)、プロセ
ッサCおよびDはデータの無効コピーを持っていること
を示す(応答2)。他の例では、プロセッサAがメモリ
18にあるデータを要求し、プロセッサBではデータが
そのキャッシュ内に存在するかどうかを判定するために
追加の時間を必要とすると想定する。プロセッサCは、
それがデータの変更済みバージョンを持っていると判定
したが、要求元デバイス、すなわち、プロセッサAに変
更済みデータを送信することができない。また、メモリ
・コントローラ16ではアドレス・バッファ・オーバフ
ローが発生している。この例では、メモリ・コントロー
ラ16、プロセッサB、およびプロセッサCは、アドレ
ス再試行が必要であることを示す(応答4)。これは、
アドレス要求をもう一度送信することによって要求元デ
バイスが一貫性のあるメモリ転送を再開しなければなら
ないことを意味する。プロセッサDは、アドレス転送が
正しく受け取られたことを示すことができる(応答
1)。
【0024】上記の例が示すように、キャッシュ手段を
備えた複数のバス・マスタを有する処理システムでは、
少なくとも4通りのスヌープ応答が必要である。これら
の応答を実現するための2つの手法を表1と2に要約し
て示す。これらの表では、4通りの応答オプションに対
応するために2つのシリアル・ビットの符号化に単一信
号線を使用する方法を示している。
備えた複数のバス・マスタを有する処理システムでは、
少なくとも4通りのスヌープ応答が必要である。これら
の応答を実現するための2つの手法を表1と2に要約し
て示す。これらの表では、4通りの応答オプションに対
応するために2つのシリアル・ビットの符号化に単一信
号線を使用する方法を示している。
【0025】
【表1】 変更済みラインのみのキャッシュ間転送用に最適化した場合 スヌープ応答信号(SRESP) 示される応答 第1の応答サイクル 第2の応答サイクル 1 1 アドレス肯定応答/無効キャッシュ ・ライン 1 0 キャッシュ・ヒット−共用または排 他キャッシュ・ライン 0 1 キャッシュ・ヒット−変更済みキャ ッシュ・ライン 0 0 アドレス再試行必要
【0026】
【表2】 変更済み、排他、または共用ラインのキャッシュ間転送用に最適化した場合 スヌープ応答信号(SRESP) 示される応答 第1の応答サイクル 第2の応答サイクル 1 1 アドレス肯定応答/無効キャッシュ ・ライン 0 1 キャッシュ・ヒット−共用または排 他キャッシュ・ライン 1 0 キャッシュ・ヒット−変更済みキャ ッシュ・ライン 0 0 アドレス再試行必要
【0027】図2は、本発明により発生する可能性のあ
るスヌープ応答RESP1およびRESP2のタイミン
グ図を一例として示すものである。各スヌープ応答は、
要求元デバイスが入力スヌープ応答信号「I」を検査す
る時期を確実に把握できるように、アドレス要求がシス
テム・バス上に置かれてから一定の数のクロック・サイ
クル後に発生する。サイクルの数は、システム内のバス
・デバイスに応じて変更することができる。しかし、一
旦キャッシングが可能になると、スヌープ応答タイミン
グは一定であることが好ましい。図2に示す例では、ス
ヌープ応答は、アドレス転送が一貫性のあるメモリ・ト
ランザクションを開始した後、第2および第3のクロッ
ク・サイクル中に発生する。これらのサイクルは、タイ
ミング図では、「第1応答サイクル」および「第2応答
サイクル」とそれぞれ示されている。
るスヌープ応答RESP1およびRESP2のタイミン
グ図を一例として示すものである。各スヌープ応答は、
要求元デバイスが入力スヌープ応答信号「I」を検査す
る時期を確実に把握できるように、アドレス要求がシス
テム・バス上に置かれてから一定の数のクロック・サイ
クル後に発生する。サイクルの数は、システム内のバス
・デバイスに応じて変更することができる。しかし、一
旦キャッシングが可能になると、スヌープ応答タイミン
グは一定であることが好ましい。図2に示す例では、ス
ヌープ応答は、アドレス転送が一貫性のあるメモリ・ト
ランザクションを開始した後、第2および第3のクロッ
ク・サイクル中に発生する。これらのサイクルは、タイ
ミング図では、「第1応答サイクル」および「第2応答
サイクル」とそれぞれ示されている。
【0028】図2の例でも、5つのバス・デバイスがあ
り、デバイス1〜4がそれぞれプロセッサA〜Dであ
り、デバイス0がメモリ・コントローラ/ブリッジ・チ
ップを含むと想定している。さらに、デバイス4は、ア
ドレス・バスのマスタを含むと想定されている。この開
始デバイスは、2つのバス・コマンドをバックツーバッ
クで送出する。これは、好ましい例では各スヌープ応答
が完了するまでに2クロック・サイクルしか必要としな
い、すなわち、長さが2ビットなので、本発明により、
一貫性のあるメモリ・トランザクションをシステム・バ
ス上で2サイクルごとに行うことができることを強調す
るものである。メモリ読取りバス・コマンド(M−RE
AD)は、クロック・サイクル0中にアドレス1(AD
DR 1)とともにハイまたはローで有効になる。各デ
バイスは、バス・プロトコルによりバス・トランザクシ
ョン用のアドレスを受け取る。この例では、有効なコマ
ンドが新しいバス・トランザクションを示す。アドレス
転送用の応答は、アドレス転送から一定数のクロック・
サイクル、たとえば、2サイクル後に駆動され、第1応
答サイクルおよび第2応答サイクルが連続して発生す
る。アドレス1に対する第1応答サイクルはクロック・
サイクル2中に発生し、第2応答サイクルはクロック・
サイクル3中に発生する。各デバイスは、バス・コマン
ドに応答してそのスヌープ応答信号を絶えず駆動してお
り、そのコマンドはバスがアイドル状態のときにハイに
駆動される。
り、デバイス1〜4がそれぞれプロセッサA〜Dであ
り、デバイス0がメモリ・コントローラ/ブリッジ・チ
ップを含むと想定している。さらに、デバイス4は、ア
ドレス・バスのマスタを含むと想定されている。この開
始デバイスは、2つのバス・コマンドをバックツーバッ
クで送出する。これは、好ましい例では各スヌープ応答
が完了するまでに2クロック・サイクルしか必要としな
い、すなわち、長さが2ビットなので、本発明により、
一貫性のあるメモリ・トランザクションをシステム・バ
ス上で2サイクルごとに行うことができることを強調す
るものである。メモリ読取りバス・コマンド(M−RE
AD)は、クロック・サイクル0中にアドレス1(AD
DR 1)とともにハイまたはローで有効になる。各デ
バイスは、バス・プロトコルによりバス・トランザクシ
ョン用のアドレスを受け取る。この例では、有効なコマ
ンドが新しいバス・トランザクションを示す。アドレス
転送用の応答は、アドレス転送から一定数のクロック・
サイクル、たとえば、2サイクル後に駆動され、第1応
答サイクルおよび第2応答サイクルが連続して発生す
る。アドレス1に対する第1応答サイクルはクロック・
サイクル2中に発生し、第2応答サイクルはクロック・
サイクル3中に発生する。各デバイスは、バス・コマン
ドに応答してそのスヌープ応答信号を絶えず駆動してお
り、そのコマンドはバスがアイドル状態のときにハイに
駆動される。
【0029】表1の符号化を使用することにより、図2
のタイミング図の第1のアドレス転送に対するスヌープ
応答はたとえば次のようになる。 デバイス0−アドレス肯定応答とヒットなし デバイス1−アドレス肯定応答と共用キャッシュ・ライ
ンへのヒット デバイス2−アドレス再試行 デバイス3−アドレス肯定応答と共用ラインへのヒット 図2の第2のバス・トランザクションへの応答、すなわ
ち、アドレス2(ADDR 2)へのメモリ書込みコマ
ンド(M−WRITE)への応答はたとえば次のように
なる。 デバイス0−アドレス再試行 デバイス1−アドレス肯定応答と変更済みキャッシュ・
ラインへのヒット デバイス2−アドレス肯定応答とヒットなし デバイス3−アドレス肯定応答とヒットなし
のタイミング図の第1のアドレス転送に対するスヌープ
応答はたとえば次のようになる。 デバイス0−アドレス肯定応答とヒットなし デバイス1−アドレス肯定応答と共用キャッシュ・ライ
ンへのヒット デバイス2−アドレス再試行 デバイス3−アドレス肯定応答と共用ラインへのヒット 図2の第2のバス・トランザクションへの応答、すなわ
ち、アドレス2(ADDR 2)へのメモリ書込みコマ
ンド(M−WRITE)への応答はたとえば次のように
なる。 デバイス0−アドレス再試行 デバイス1−アドレス肯定応答と変更済みキャッシュ・
ラインへのヒット デバイス2−アドレス肯定応答とヒットなし デバイス3−アドレス肯定応答とヒットなし
【0030】要約すると、本発明は、処理システム内で
キャッシュ一貫性を処理するための新規の方法およびシ
ステムを提供する。本発明に従う同報通信手法は、要求
元デバイスへのデータの返却を遅らせずにスヌープ応答
を分配し、デバイスのピン・カウントを最小限に維持す
るものである。スヌープ応答を逐次化することにより、
単一信号線を介して他の各バス・マスタにそれぞれの応
答が同報通信される。また、単一信号線上で連続クロッ
ク・サイクル中に複数の2進ビットを同報通信すること
により、様々な応答状態を符号化することができる。変
更済みデータのキャッシュ間転送を使用するシステムの
場合は、トランザクションを続行するかまたは打ち切る
ようにメモリ・コントローラに対して早期表示(たとえ
ば、スヌープ応答の最初のクロック・サイクル内)を行
うためにスヌープ応答が符号化されることが好ましい。
変更済み、排他、または共用データのキャッシュ間転送
を使用するシステムの場合は、要求元デバイスにそのデ
ータを転送できることを示す表示を(たとえば、最初の
応答サイクル内に)他のデバイスに与えるように、スヌ
ープ応答を符号化することができる。本発明の手法で
は、両方向信号手法に固有のターンアラウンド・タイム
を解消する単方向信号を使用している。本発明を使用す
る一貫性のあるメモリ・トランザクションの場合、2ク
ロック・サイクルごとに1回のアドレス転送を行うこと
ができる。すなわち、1つのスヌープ応答は2クロック
・サイクルを要するものとして定義されていると想定す
る。開始デバイス以外の各バス・マスタは、システム・
バスに接続された他の各バス・マスタに対して単一信号
応答を同報通信する。
キャッシュ一貫性を処理するための新規の方法およびシ
ステムを提供する。本発明に従う同報通信手法は、要求
元デバイスへのデータの返却を遅らせずにスヌープ応答
を分配し、デバイスのピン・カウントを最小限に維持す
るものである。スヌープ応答を逐次化することにより、
単一信号線を介して他の各バス・マスタにそれぞれの応
答が同報通信される。また、単一信号線上で連続クロッ
ク・サイクル中に複数の2進ビットを同報通信すること
により、様々な応答状態を符号化することができる。変
更済みデータのキャッシュ間転送を使用するシステムの
場合は、トランザクションを続行するかまたは打ち切る
ようにメモリ・コントローラに対して早期表示(たとえ
ば、スヌープ応答の最初のクロック・サイクル内)を行
うためにスヌープ応答が符号化されることが好ましい。
変更済み、排他、または共用データのキャッシュ間転送
を使用するシステムの場合は、要求元デバイスにそのデ
ータを転送できることを示す表示を(たとえば、最初の
応答サイクル内に)他のデバイスに与えるように、スヌ
ープ応答を符号化することができる。本発明の手法で
は、両方向信号手法に固有のターンアラウンド・タイム
を解消する単方向信号を使用している。本発明を使用す
る一貫性のあるメモリ・トランザクションの場合、2ク
ロック・サイクルごとに1回のアドレス転送を行うこと
ができる。すなわち、1つのスヌープ応答は2クロック
・サイクルを要するものとして定義されていると想定す
る。開始デバイス以外の各バス・マスタは、システム・
バスに接続された他の各バス・マスタに対して単一信号
応答を同報通信する。
【0031】所与の好ましい実施例により本発明につい
てここに詳しく説明してきたが、当業者にはそれに対し
て多くの修正および変更を行うことができる。したがっ
て、特許請求の範囲は、本発明の真の精神および範囲に
該当するようなすべての修正および変更を包含するもの
とする。
てここに詳しく説明してきたが、当業者にはそれに対し
て多くの修正および変更を行うことができる。したがっ
て、特許請求の範囲は、本発明の真の精神および範囲に
該当するようなすべての修正および変更を包含するもの
とする。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0033】(1)それぞれがシステム・バスに接続さ
れたキャッシュを有する複数のバス・マスタを含む処理
システムにおいて、アクセスされたデータの一貫性を保
持するためのキャッシュ一貫性保持システムであって、
前記複数のバス・マスタのそれぞれに設けられ、前記シ
ステム・バス上の一貫性のあるメモリ・トランザクショ
ンを監視し、該トランザクションが関連するバス・マス
タ以外のものによって開始されたときに該関連するバス
・マスタのキャッシュに関する単方向スヌープ応答信号
を同報通信するスヌープ・モニタと、各スヌープ・モニ
タによって同報通信された単方向スヌープ応答信号を他
のスヌープ・モニタの個別の信号入力に供給するための
相互接続手段とを含み、前記単方向スヌープ応答信号は
複数ビットのスヌープ応答を含み、該応答が1クロック
・サイクルにつき1ビットずつ順次に前記相互接続手段
を介して同報通信される、キャッシュ一貫性保持システ
ム。 (2)各スヌープ応答出力信号が、前記処理システムの
連続するMクロック・サイクル中に転送される長さがM
ビットの逐次符号化信号を含むことを特徴とする、上記
(1)に記載のシステム。 (3)M=2であり、各スヌープ応答が、キャッシュ・
ミス応答、データ未変更キャッシュ・ヒット応答、デー
タ変更済みキャッシュ・ヒット応答、またはアドレス再
試行要求応答であることを特徴とする、上記(2)に記
載のシステム。 (4)システム・バスとメイン・メモリとの間に配置さ
れたメモリ・コントローラをさらに含み、前記Mビット
のうちの第1の2進ビットが一貫性のあるメモリ・トラ
ンザクションによるメイン・メモリからのデータ取出し
を続行すべきかどうかをメモリ・コントローラに通知す
ることを特徴とする、上記(2)に記載のシステム。 (5)各スヌープ応答信号の同報通信が、システム・バ
ス上の一貫性のあるメモリ・トランザクションの開始か
ら所定数のクロック・サイクル後に開始されることを特
徴とする、上記(1)に記載のキャッシュ一貫性システ
ム。 (6)システム・バスとメイン・メモリとの間に配置さ
れたメモリ・コントローラをさらに含み、前記メモリ・
コントローラがバス・インタフェース・ユニット(BI
U)を含み、前記BIUが前記相互接続手段を介して個
別の信号入力で各スヌープ応答信号を受け取り、一貫性
のあるメモリ・トランザクションが未受信の場合に前記
BIUが各スヌープ・モニタにアドレス再試行要求信号
を出力することを特徴とする、上記(1)に記載のキャ
ッシュ一貫性システム。 (7)各スヌープ応答信号が変更済みデータ・ラインの
キャッシュ間転送用に最適化され、同報通信される各ス
ヌープ応答信号の第1の2進ビットが、一貫性のあるメ
モリ・トランザクションによるメイン・メモリからのデ
ータ取出しを続行すべきかどうかをメモリ・コントロー
ラに通知し、一貫性のあるメモリ・トランザクションに
よって要求された変更済みデータ・ラインの直接キャッ
シュ間データ転送を開始すべきかどうかをキャッシュに
通知することを特徴とする、上記(6)に記載のキャッ
シュ一貫性システム。 (8)各スヌープ応答信号が変更済み、排他、または共
用データのキャッシュ間転送用に最適化され、各スヌー
プ応答信号の第1の2進ビットが、一貫性のあるメモリ
・トランザクションによる直接キャッシュ間転送を続行
するかまたは打ち切るかを要求されたデータの変更済
み、排他、または共用コピーを有するキャッシュに通知
し、各スヌープ応答信号の第2の2進ビットが、一貫性
のあるメモリ・トランザクションによるメイン・メモリ
からのデータ取出しを続行すべきかどうかをメモリ・コ
ントローラに通知することを特徴とする、上記(6)に
記載のキャッシュ一貫性システム。 (9)前記バス・マスタがプロセッサであり、前記処理
システムがマルチプロセッサ・システムである、上記
(1)〜(8)のいずれかに記載のシステム。 (10)それぞれがシステム・バスに接続されたキャッ
シュを有する複数のバス・マスタを含む処理システムに
おいて、アクセスされたデータの一貫性を保持するため
の方法であって、前記各プロセッサは、そこに格納され
たデータのアクセスのためにメイン・メモリとのやりと
りを行うシステム・バスに接続されたキャッシュ手段を
有し、各プロセッサは、キャッシュ手段とシステム・バ
スに結合されたスヌープ・モニタをさらに含み、前記方
法が、(a)前記システム・バスを監視して、一貫性の
あるメモリ・トランザクションが他のバス・マスタによ
って開始されたかどうかを検出するステップと、(b)
前記トランザクションに応答して、関連するバス・マス
タのキャッシュに関する複数ビットの単方向スヌープ応
答信号を1クロック・サイクルにつき1ビットずつ順次
に他のバス・マスタへ同報通信するステップとを含むデ
ータの一貫性を保持する方法。 (11)前記処理システムが、システム・バスとメイン
・メモリとの間に結合されたメモリ・コントローラを含
み、前記方法が、一貫性のあるメモリ・トランザクショ
ンによるメイン・メモリからのデータ取出しを続行すべ
きかどうかを前記単方向スヌープ応答信号に基づいてメ
モリ・コントローラで確認するステップをさらに含むこ
とを特徴とする、上記(10)に記載の方法。 (12)前記単方向スヌープ応答信号がMビットからな
り、連続するMクロック・サイクルで同報通信されるこ
とを特徴とする、上記(10)に記載の方法。 (13)前記ステップ(b)が、キャッシュ・ミス応
答、データ未変更キャッシュ・ヒット応答、データ変更
済みキャッシュ・ヒット応答、およびアドレス再試行要
求応答のうちの少なくとも1つを含むスヌープ応答を同
報通信することを特徴とする、上記(10)に記載の方
法。 (14)前記ステップ(b)が、同報通信された各スヌ
ープ応答信号の第1のビットが一貫性のあるメモリ・ト
ランザクションによりメイン・メモリから取り出された
データを受け入れるべきかどうかを他のバス・マスタに
通知するように応答するステップを含むことを特徴とす
る、上記(10)に記載の方法。 (15)前記処理システムが、システム・バスとメイン
・メモリとの間に結合されたメモリ・コントローラを含
み、各単方向スヌープ応答信号が該メモリ・コントロー
ラの個別の信号入力に供給されることを特徴とする、上
記(10)に記載の方法。 (16)処理システムの2クロック・サイクルごとにシ
ステム・バス上に新しい一貫性のあるメモリ・トランザ
クションが存在できるように、前記単方向スヌープ応答
信号を2ビットで構成したことを特徴とする、上記(1
0)に記載の方法。 (17)前記バス・マスタがプロセッサであり、前記処
理システムがマルチプロセッサ・システムである、上記
(10)〜(16)のいずれかに記載の方法。
れたキャッシュを有する複数のバス・マスタを含む処理
システムにおいて、アクセスされたデータの一貫性を保
持するためのキャッシュ一貫性保持システムであって、
前記複数のバス・マスタのそれぞれに設けられ、前記シ
ステム・バス上の一貫性のあるメモリ・トランザクショ
ンを監視し、該トランザクションが関連するバス・マス
タ以外のものによって開始されたときに該関連するバス
・マスタのキャッシュに関する単方向スヌープ応答信号
を同報通信するスヌープ・モニタと、各スヌープ・モニ
タによって同報通信された単方向スヌープ応答信号を他
のスヌープ・モニタの個別の信号入力に供給するための
相互接続手段とを含み、前記単方向スヌープ応答信号は
複数ビットのスヌープ応答を含み、該応答が1クロック
・サイクルにつき1ビットずつ順次に前記相互接続手段
を介して同報通信される、キャッシュ一貫性保持システ
ム。 (2)各スヌープ応答出力信号が、前記処理システムの
連続するMクロック・サイクル中に転送される長さがM
ビットの逐次符号化信号を含むことを特徴とする、上記
(1)に記載のシステム。 (3)M=2であり、各スヌープ応答が、キャッシュ・
ミス応答、データ未変更キャッシュ・ヒット応答、デー
タ変更済みキャッシュ・ヒット応答、またはアドレス再
試行要求応答であることを特徴とする、上記(2)に記
載のシステム。 (4)システム・バスとメイン・メモリとの間に配置さ
れたメモリ・コントローラをさらに含み、前記Mビット
のうちの第1の2進ビットが一貫性のあるメモリ・トラ
ンザクションによるメイン・メモリからのデータ取出し
を続行すべきかどうかをメモリ・コントローラに通知す
ることを特徴とする、上記(2)に記載のシステム。 (5)各スヌープ応答信号の同報通信が、システム・バ
ス上の一貫性のあるメモリ・トランザクションの開始か
ら所定数のクロック・サイクル後に開始されることを特
徴とする、上記(1)に記載のキャッシュ一貫性システ
ム。 (6)システム・バスとメイン・メモリとの間に配置さ
れたメモリ・コントローラをさらに含み、前記メモリ・
コントローラがバス・インタフェース・ユニット(BI
U)を含み、前記BIUが前記相互接続手段を介して個
別の信号入力で各スヌープ応答信号を受け取り、一貫性
のあるメモリ・トランザクションが未受信の場合に前記
BIUが各スヌープ・モニタにアドレス再試行要求信号
を出力することを特徴とする、上記(1)に記載のキャ
ッシュ一貫性システム。 (7)各スヌープ応答信号が変更済みデータ・ラインの
キャッシュ間転送用に最適化され、同報通信される各ス
ヌープ応答信号の第1の2進ビットが、一貫性のあるメ
モリ・トランザクションによるメイン・メモリからのデ
ータ取出しを続行すべきかどうかをメモリ・コントロー
ラに通知し、一貫性のあるメモリ・トランザクションに
よって要求された変更済みデータ・ラインの直接キャッ
シュ間データ転送を開始すべきかどうかをキャッシュに
通知することを特徴とする、上記(6)に記載のキャッ
シュ一貫性システム。 (8)各スヌープ応答信号が変更済み、排他、または共
用データのキャッシュ間転送用に最適化され、各スヌー
プ応答信号の第1の2進ビットが、一貫性のあるメモリ
・トランザクションによる直接キャッシュ間転送を続行
するかまたは打ち切るかを要求されたデータの変更済
み、排他、または共用コピーを有するキャッシュに通知
し、各スヌープ応答信号の第2の2進ビットが、一貫性
のあるメモリ・トランザクションによるメイン・メモリ
からのデータ取出しを続行すべきかどうかをメモリ・コ
ントローラに通知することを特徴とする、上記(6)に
記載のキャッシュ一貫性システム。 (9)前記バス・マスタがプロセッサであり、前記処理
システムがマルチプロセッサ・システムである、上記
(1)〜(8)のいずれかに記載のシステム。 (10)それぞれがシステム・バスに接続されたキャッ
シュを有する複数のバス・マスタを含む処理システムに
おいて、アクセスされたデータの一貫性を保持するため
の方法であって、前記各プロセッサは、そこに格納され
たデータのアクセスのためにメイン・メモリとのやりと
りを行うシステム・バスに接続されたキャッシュ手段を
有し、各プロセッサは、キャッシュ手段とシステム・バ
スに結合されたスヌープ・モニタをさらに含み、前記方
法が、(a)前記システム・バスを監視して、一貫性の
あるメモリ・トランザクションが他のバス・マスタによ
って開始されたかどうかを検出するステップと、(b)
前記トランザクションに応答して、関連するバス・マス
タのキャッシュに関する複数ビットの単方向スヌープ応
答信号を1クロック・サイクルにつき1ビットずつ順次
に他のバス・マスタへ同報通信するステップとを含むデ
ータの一貫性を保持する方法。 (11)前記処理システムが、システム・バスとメイン
・メモリとの間に結合されたメモリ・コントローラを含
み、前記方法が、一貫性のあるメモリ・トランザクショ
ンによるメイン・メモリからのデータ取出しを続行すべ
きかどうかを前記単方向スヌープ応答信号に基づいてメ
モリ・コントローラで確認するステップをさらに含むこ
とを特徴とする、上記(10)に記載の方法。 (12)前記単方向スヌープ応答信号がMビットからな
り、連続するMクロック・サイクルで同報通信されるこ
とを特徴とする、上記(10)に記載の方法。 (13)前記ステップ(b)が、キャッシュ・ミス応
答、データ未変更キャッシュ・ヒット応答、データ変更
済みキャッシュ・ヒット応答、およびアドレス再試行要
求応答のうちの少なくとも1つを含むスヌープ応答を同
報通信することを特徴とする、上記(10)に記載の方
法。 (14)前記ステップ(b)が、同報通信された各スヌ
ープ応答信号の第1のビットが一貫性のあるメモリ・ト
ランザクションによりメイン・メモリから取り出された
データを受け入れるべきかどうかを他のバス・マスタに
通知するように応答するステップを含むことを特徴とす
る、上記(10)に記載の方法。 (15)前記処理システムが、システム・バスとメイン
・メモリとの間に結合されたメモリ・コントローラを含
み、各単方向スヌープ応答信号が該メモリ・コントロー
ラの個別の信号入力に供給されることを特徴とする、上
記(10)に記載の方法。 (16)処理システムの2クロック・サイクルごとにシ
ステム・バス上に新しい一貫性のあるメモリ・トランザ
クションが存在できるように、前記単方向スヌープ応答
信号を2ビットで構成したことを特徴とする、上記(1
0)に記載の方法。 (17)前記バス・マスタがプロセッサであり、前記処
理システムがマルチプロセッサ・システムである、上記
(10)〜(16)のいずれかに記載の方法。
【図1】本発明によるスヌープ一貫性システムを使用し
たマルチプロセッサ・システムのブロック図表現であ
る。
たマルチプロセッサ・システムのブロック図表現であ
る。
【図2】本発明によるキャッシュ一貫性を使用した、2
つの一貫性のあるメモリ・トランザクション、すなわ
ち、読取り制御コマンドと書込み制御コマンドに対する
代表的な応答を示すタイミング図である。
つの一貫性のあるメモリ・トランザクション、すなわ
ち、読取り制御コマンドと書込み制御コマンドに対する
代表的な応答を示すタイミング図である。
10 複数プロセッサ・システム 12 プロセッサ 14 システム・バス 14' 相互接続部 16 メモリ・コントローラ 18 メモリ 20 キャッシュ 30 スヌープ・モニタ 31 バス・インタフェース・ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・イー・デリック アメリカ合衆国05468 バーモント州ミル トン ハンティング・リッジ・レーン 14
Claims (17)
- 【請求項1】それぞれがシステム・バスに接続されたキ
ャッシュを有する複数のバス・マスタを含む処理システ
ムにおいて、アクセスされたデータの一貫性を保持する
ためのキャッシュ一貫性保持システムであって、 前記複数のバス・マスタのそれぞれに設けられ、前記シ
ステム・バス上の一貫性のあるメモリ・トランザクショ
ンを監視し、該トランザクションが関連するバス・マス
タ以外のものによって開始されたときに該関連するバス
・マスタのキャッシュに関する単方向スヌープ応答信号
を同報通信するスヌープ・モニタと、 各スヌープ・モニタによって同報通信された単方向スヌ
ープ応答信号を他のスヌープ・モニタの個別の信号入力
に供給するための相互接続手段とを含み、 前記単方向スヌープ応答信号は複数ビットのスヌープ応
答を含み、該応答が1クロック・サイクルにつき1ビッ
トずつ順次に前記相互接続手段を介して同報通信され
る、キャッシュ一貫性保持システム。 - 【請求項2】各スヌープ応答出力信号が、前記処理シス
テムの連続するMクロック・サイクル中に転送される長
さがMビットの逐次符号化信号を含むことを特徴とす
る、請求項1に記載のシステム。 - 【請求項3】M=2であり、各スヌープ応答が、キャッ
シュ・ミス応答、データ未変更キャッシュ・ヒット応
答、データ変更済みキャッシュ・ヒット応答、またはア
ドレス再試行要求応答であることを特徴とする、請求項
2に記載のシステム。 - 【請求項4】システム・バスとメイン・メモリとの間に
配置されたメモリ・コントローラをさらに含み、前記M
ビットのうちの第1の2進ビットが一貫性のあるメモリ
・トランザクションによるメイン・メモリからのデータ
取出しを続行すべきかどうかをメモリ・コントローラに
通知することを特徴とする、請求項2に記載のシステ
ム。 - 【請求項5】各スヌープ応答信号の同報通信が、システ
ム・バス上の一貫性のあるメモリ・トランザクションの
開始から所定数のクロック・サイクル後に開始されるこ
とを特徴とする、請求項1に記載のキャッシュ一貫性シ
ステム。 - 【請求項6】システム・バスとメイン・メモリとの間に
配置されたメモリ・コントローラをさらに含み、前記メ
モリ・コントローラがバス・インタフェース・ユニット
(BIU)を含み、前記BIUが前記相互接続手段を介
して個別の信号入力で各スヌープ応答信号を受け取り、
一貫性のあるメモリ・トランザクションが未受信の場合
に前記BIUが各スヌープ・モニタにアドレス再試行要
求信号を出力することを特徴とする、請求項1に記載の
キャッシュ一貫性システム。 - 【請求項7】各スヌープ応答信号が変更済みデータ・ラ
インのキャッシュ間転送用に最適化され、同報通信され
る各スヌープ応答信号の第1の2進ビットが、一貫性の
あるメモリ・トランザクションによるメイン・メモリか
らのデータ取出しを続行すべきかどうかをメモリ・コン
トローラに通知し、一貫性のあるメモリ・トランザクシ
ョンによって要求された変更済みデータ・ラインの直接
キャッシュ間データ転送を開始すべきかどうかをキャッ
シュに通知することを特徴とする、請求項6に記載のキ
ャッシュ一貫性システム。 - 【請求項8】各スヌープ応答信号が変更済み、排他、ま
たは共用データのキャッシュ間転送用に最適化され、各
スヌープ応答信号の第1の2進ビットが、一貫性のある
メモリ・トランザクションによる直接キャッシュ間転送
を続行するかまたは打ち切るかを要求されたデータの変
更済み、排他、または共用コピーを有するキャッシュに
通知し、各スヌープ応答信号の第2の2進ビットが、一
貫性のあるメモリ・トランザクションによるメイン・メ
モリからのデータ取出しを続行すべきかどうかをメモリ
・コントローラに通知することを特徴とする、請求項6
に記載のキャッシュ一貫性システム。 - 【請求項9】前記バス・マスタがプロセッサであり、前
記処理システムがマルチプロセッサ・システムである、
請求項1〜8のいずれかに記載のシステム。 - 【請求項10】それぞれがシステム・バスに接続された
キャッシュを有する複数のバス・マスタを含む処理シス
テムにおいて、アクセスされたデータの一貫性を保持す
るための方法であって、前記各プロセッサは、そこに格
納されたデータのアクセスのためにメイン・メモリとの
やりとりを行うシステム・バスに接続されたキャッシュ
手段を有し、各プロセッサは、キャッシュ手段とシステ
ム・バスに結合されたスヌープ・モニタをさらに含み、
前記方法が、 (a)前記システム・バスを監視して、一貫性のあるメ
モリ・トランザクションが他のバス・マスタによって開
始されたかどうかを検出するステップと、 (b)前記トランザクションに応答して、関連するバス
・マスタのキャッシュに関する複数ビットの単方向スヌ
ープ応答信号を1クロック・サイクルにつき1ビットず
つ順次に他のバス・マスタへ同報通信するステップとを
含むデータの一貫性を保持する方法。 - 【請求項11】前記処理システムが、システム・バスと
メイン・メモリとの間に結合されたメモリ・コントロー
ラを含み、前記方法が、一貫性のあるメモリ・トランザ
クションによるメイン・メモリからのデータ取出しを続
行すべきかどうかを前記単方向スヌープ応答信号に基づ
いてメモリ・コントローラで確認するステップをさらに
含むことを特徴とする、請求項10に記載の方法。 - 【請求項12】前記単方向スヌープ応答信号がMビット
からなり、連続するMクロック・サイクルで同報通信さ
れることを特徴とする、請求項10に記載の方法。 - 【請求項13】前記ステップ(b)が、キャッシュ・ミ
ス応答、データ未変更キャッシュ・ヒット応答、データ
変更済みキャッシュ・ヒット応答、およびアドレス再試
行要求応答のうちの少なくとも1つを含むスヌープ応答
を同報通信することを特徴とする、請求項10に記載の
方法。 - 【請求項14】前記ステップ(b)が、同報通信された
各スヌープ応答信号の第1のビットが一貫性のあるメモ
リ・トランザクションによりメイン・メモリから取り出
されたデータを受け入れるべきかどうかを他のバス・マ
スタに通知するように応答するステップを含むことを特
徴とする、請求項10に記載の方法。 - 【請求項15】前記処理システムが、システム・バスと
メイン・メモリとの間に結合されたメモリ・コントロー
ラを含み、各単方向スヌープ応答信号が該メモリ・コン
トローラの個別の信号入力に供給されることを特徴とす
る、請求項10に記載の方法。 - 【請求項16】処理システムの2クロック・サイクルご
とにシステム・バス上に新しい一貫性のあるメモリ・ト
ランザクションが存在できるように、前記単方向スヌー
プ応答信号を2ビットで構成したことを特徴とする、請
求項10に記載の方法。 - 【請求項17】前記バス・マスタがプロセッサであり、
前記処理システムがマルチプロセッサ・システムであ
る、請求項10〜16のいずれかに記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/564888 | 1995-11-29 | ||
| US08/564,888 US5659710A (en) | 1995-11-29 | 1995-11-29 | Cache coherency method and system employing serially encoded snoop responses |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09218822A true JPH09218822A (ja) | 1997-08-19 |
| JP3317329B2 JP3317329B2 (ja) | 2002-08-26 |
Family
ID=24256309
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP29504796A Expired - Fee Related JP3317329B2 (ja) | 1995-11-29 | 1996-11-07 | 逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5659710A (ja) |
| EP (1) | EP0777184B1 (ja) |
| JP (1) | JP3317329B2 (ja) |
| DE (1) | DE69621311T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
| JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
Families Citing this family (65)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6728258B1 (en) * | 1995-11-15 | 2004-04-27 | Hitachi, Ltd. | Multi-processor system and its network |
| US5752265A (en) * | 1996-06-13 | 1998-05-12 | Compaq Computer Corporation | Memory accessing in a multi-processor system using snooping |
| US5900017A (en) * | 1997-05-14 | 1999-05-04 | International Business Machines Corporation | Snooping a variable number of cache addresses in a multiple processor system by a single snoop request |
| US6658537B2 (en) * | 1997-06-09 | 2003-12-02 | 3Com Corporation | DMA driven processor cache |
| US6260117B1 (en) | 1997-09-18 | 2001-07-10 | International Business Machines Corporation | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency |
| DE69717124T2 (de) * | 1997-12-11 | 2003-07-17 | Bull S.A., Louveciennes | Verfahren zum Lesen von Daten auf einem gemeinsamen Speicher in einem Multiprozessor-Rechnersystem |
| 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 |
| 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 |
| EP1141838A1 (en) * | 1998-12-21 | 2001-10-10 | Advanced Micro Devices, Inc. | Conservation of system memory bandwidth and cache coherency maintenance using memory cancel messages |
| 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 |
| US6275905B1 (en) | 1998-12-21 | 2001-08-14 | Advanced Micro Devices, Inc. | Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system |
| US6615323B1 (en) | 1999-09-02 | 2003-09-02 | Thomas Albert Petersen | Optimizing pipelined snoop processing |
| US6513091B1 (en) | 1999-11-12 | 2003-01-28 | International Business Machines Corporation | Data routing using status-response signals |
| US6557069B1 (en) | 1999-11-12 | 2003-04-29 | International Business Machines Corporation | Processor-memory bus architecture for supporting multiple processors |
| US6526469B1 (en) | 1999-11-12 | 2003-02-25 | International Business Machines Corporation | Bus architecture employing varying width uni-directional command bus |
| US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
| US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
| US7356639B2 (en) | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
| US7017002B2 (en) * | 2000-01-05 | 2006-03-21 | Rambus, Inc. | System featuring a master device, a buffer device and a plurality of integrated circuit memory devices |
| US7266634B2 (en) | 2000-01-05 | 2007-09-04 | Rambus Inc. | Configurable width buffered module having flyby elements |
| US7404032B2 (en) * | 2000-01-05 | 2008-07-22 | Rambus Inc. | Configurable width buffered module having switch elements |
| US7363422B2 (en) * | 2000-01-05 | 2008-04-22 | Rambus Inc. | Configurable width buffered module |
| US6983348B2 (en) * | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
| US7395379B2 (en) * | 2002-05-13 | 2008-07-01 | Newisys, Inc. | Methods and apparatus for responding to a request cluster |
| US7653790B2 (en) * | 2002-05-13 | 2010-01-26 | Glasco David B | Methods and apparatus for responding to a request cluster |
| US6944698B2 (en) * | 2002-07-08 | 2005-09-13 | International Business Machines Corporation | Method and apparatus for providing bus arbitrations in a data processing system |
| US20040153611A1 (en) * | 2003-02-04 | 2004-08-05 | Sujat Jamil | Methods and apparatus for detecting an address conflict |
| US7395380B2 (en) | 2003-03-20 | 2008-07-01 | International Business Machines Corporation | Selective snooping by snoop masters to locate updated data |
| US7089376B2 (en) * | 2003-03-20 | 2006-08-08 | International Business Machines Corporation | Reducing snoop response time for snoopers without copies of requested data via snoop filtering |
| US20040267919A1 (en) * | 2003-06-30 | 2004-12-30 | International Business Machines Corporation | Method and system for providing server management peripheral caching using a shared bus |
| US7287126B2 (en) * | 2003-07-30 | 2007-10-23 | Intel Corporation | Methods and apparatus for maintaining cache coherency |
| US7386685B2 (en) * | 2005-03-29 | 2008-06-10 | International Busniess Machines Corporation | Method and apparatus for filtering snoop requests using multiple snoop caches |
| US7373462B2 (en) * | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
| US7392351B2 (en) * | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
| US7380071B2 (en) * | 2005-03-29 | 2008-05-27 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
| US7383397B2 (en) * | 2005-03-29 | 2008-06-03 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using a scoreboard |
| US7386683B2 (en) * | 2005-03-29 | 2008-06-10 | International Business Machines Corporation | Method and apparatus for filtering snoop requests in a point-to-point interconnect architecture |
| US11328764B2 (en) | 2005-09-26 | 2022-05-10 | Rambus Inc. | Memory system topologies including a memory die stack |
| US7562271B2 (en) * | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
| US7464225B2 (en) * | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
| JP2007207004A (ja) * | 2006-02-02 | 2007-08-16 | Hitachi Ltd | プロセッサ及び計算機 |
| US7877551B2 (en) * | 2007-06-26 | 2011-01-25 | International Business Machines Corporation | Programmable partitioning for high-performance coherence domains in a multiprocessor system |
| US8103832B2 (en) * | 2007-06-26 | 2012-01-24 | International Business Machines Corporation | Method and apparatus of prefetching streams of varying prefetch depth |
| US8108738B2 (en) | 2007-06-26 | 2012-01-31 | International Business Machines Corporation | Data eye monitor method and apparatus |
| US7984448B2 (en) * | 2007-06-26 | 2011-07-19 | International Business Machines Corporation | Mechanism to support generic collective communication across a variety of programming models |
| US7886084B2 (en) | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
| US8756350B2 (en) | 2007-06-26 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for efficiently tracking queue entries relative to a timestamp |
| US8140925B2 (en) | 2007-06-26 | 2012-03-20 | International Business Machines Corporation | Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan |
| US8230433B2 (en) | 2007-06-26 | 2012-07-24 | International Business Machines Corporation | Shared performance monitor in a multiprocessor system |
| US7827391B2 (en) * | 2007-06-26 | 2010-11-02 | International Business Machines Corporation | Method and apparatus for single-stepping coherence events in a multiprocessor system under software control |
| US8458282B2 (en) | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
| US8468416B2 (en) | 2007-06-26 | 2013-06-18 | International Business Machines Corporation | Combined group ECC protection and subgroup parity protection |
| US7793038B2 (en) | 2007-06-26 | 2010-09-07 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
| US7802025B2 (en) | 2007-06-26 | 2010-09-21 | International Business Machines Corporation | DMA engine for repeating communication patterns |
| US8010875B2 (en) | 2007-06-26 | 2011-08-30 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
| US8032892B2 (en) * | 2007-06-26 | 2011-10-04 | International Business Machines Corporation | Message passing with a limited number of DMA byte counters |
| US8509255B2 (en) | 2007-06-26 | 2013-08-13 | International Business Machines Corporation | Hardware packet pacing using a DMA in a parallel computer |
| JP6127907B2 (ja) * | 2012-11-12 | 2017-05-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| US10255183B2 (en) | 2015-07-23 | 2019-04-09 | Arteris, Inc. | Victim buffer for cache coherent systems |
| US12026095B2 (en) | 2014-12-30 | 2024-07-02 | Arteris, Inc. | Cache coherent system implementing victim buffers |
| US9632933B2 (en) | 2015-02-03 | 2017-04-25 | Nxp Usa, Inc. | Efficient coherency response mechanism |
| US9542316B1 (en) * | 2015-07-23 | 2017-01-10 | Arteris, Inc. | System and method for adaptation of coherence models between agents |
| US20170371783A1 (en) * | 2016-06-24 | 2017-12-28 | Qualcomm Incorporated | Self-aware, peer-to-peer cache transfers between local, shared cache memories in a multi-processor system |
| US20250077430A1 (en) * | 2023-08-28 | 2025-03-06 | International Business Machines Corporation | Real-time snoop status |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
| US5345578A (en) * | 1989-06-30 | 1994-09-06 | Digital Equipment Corporation | Competitive snoopy caching for large-scale multiprocessors |
| JPH03219345A (ja) * | 1990-01-25 | 1991-09-26 | Toshiba Corp | 多ポートキャッシュメモリ制御装置 |
| US5249283A (en) * | 1990-12-24 | 1993-09-28 | Ncr Corporation | Cache coherency method and apparatus for a multiple path interconnection network |
| US5440707A (en) * | 1992-04-29 | 1995-08-08 | Sun Microsystems, Inc. | Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle |
| US5313591A (en) * | 1992-06-25 | 1994-05-17 | Hewlett-Packard Company | Computer bus arbitration for N processors requiring only N unidirectional signal leads |
| US5353415A (en) * | 1992-10-02 | 1994-10-04 | Compaq Computer Corporation | Method and apparatus for concurrency of bus operations |
| 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 |
-
1995
- 1995-11-29 US US08/564,888 patent/US5659710A/en not_active Expired - Fee Related
-
1996
- 1996-10-01 DE DE69621311T patent/DE69621311T2/de not_active Expired - Lifetime
- 1996-10-01 EP EP96307169A patent/EP0777184B1/en not_active Expired - Lifetime
- 1996-11-07 JP JP29504796A patent/JP3317329B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006244388A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
| JP2011154735A (ja) * | 2011-05-19 | 2011-08-11 | Fujitsu Ltd | アドレススヌープ方法及びマルチプロセッサシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US5659710A (en) | 1997-08-19 |
| JP3317329B2 (ja) | 2002-08-26 |
| DE69621311D1 (de) | 2002-06-27 |
| EP0777184B1 (en) | 2002-05-22 |
| DE69621311T2 (de) | 2003-01-02 |
| EP0777184A1 (en) | 1997-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3317329B2 (ja) | 逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステム | |
| US12619560B2 (en) | Computer memory expansion device and method of operation | |
| JP3280207B2 (ja) | I/oチャネル・コントローラ、多重プロセッサ・システム、キャッシュ・コヒーレンシを維持する方法、i/o同期を提供する方法 | |
| US5335335A (en) | Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed | |
| US6345342B1 (en) | Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line | |
| US5463753A (en) | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller | |
| US5276852A (en) | Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions | |
| JP2003030169A (ja) | マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理 | |
| US6871267B2 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
| JP2003044454A (ja) | 不均等メモリ・アクセス(numa)データ処理システム内のリモート・メモリ・データをアクセスする2ステージ要求プロトコル | |
| JPH08328957A (ja) | マルチプロセッシング・システムにおけるキャッシュ・パフォーマンス向上のためのシステムおよび方法 | |
| JP2003044456A (ja) | マルチノード・コンピュータ・システムにおけるメモリ・ディレクトリ管理 | |
| TW201009578A (en) | Reducing back invalidation transactions from a snoop filter | |
| US20020112129A1 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache | |
| JP2003030171A (ja) | ヒストリ情報にもとづき、データの排他所有権を付与する不均等メモリ・アクセス(numa)コンピュータ・システム | |
| US8015364B2 (en) | Method and apparatus for filtering snoop requests using a scoreboard | |
| US20020112124A1 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache | |
| JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
| US6807608B2 (en) | Multiprocessor environment supporting variable-sized coherency transactions | |
| US6601145B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
| US6976132B2 (en) | Reducing latency of a snoop tenure | |
| US6944721B2 (en) | Asynchronous non-blocking snoop invalidation | |
| JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
| US6484241B2 (en) | Multiprocessor computer system with sectored cache line system bus protocol mechanism | |
| US6553462B2 (en) | Multiprocessor computer system with sectored cache line mechanism for load and store operations |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080614 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080614 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090614 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100614 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |