JPH11506852A - 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 - Google Patents
多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減Info
- Publication number
- JPH11506852A JPH11506852A JP9501132A JP50113297A JPH11506852A JP H11506852 A JPH11506852 A JP H11506852A JP 9501132 A JP9501132 A JP 9501132A JP 50113297 A JP50113297 A JP 50113297A JP H11506852 A JPH11506852 A JP H11506852A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- level
- address
- tag
- 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.)
- Pending
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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0817—Cache consistency protocols using directory methods
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)【要約】
多数のバスマスタを備えた2レベルキャッシュシステムのためのキャッシュスヌーピングオーバーヘッドを減じるためのメモリシステムであって、レベル2キャッシュはメインメモリに接続され、レベル1キャッシュはバスマスタに接続される。各バスマスタに対して1つのレベル1キャッシュが割当てられ、各レベル1キャッシュが接続される共用レベル2キャッシュがある。レベル1キャッシュは、レベル1キャッシュに割当てられたバスマスタからのメモリアクセス要求に応答し、もしレベル1キャッシュがメモリアクセスにサービスできなければ、レベル2キャッシュがその要求にサービスしようとする。レベル2キャッシュは、レベル2キャッシュ内の各記憶場所に対する内包フィールドを有する。内包フィールドは、内包フィールドに関連する記憶場所内に保持される情報が共用レベル2キャッシュに接続されたレベル1キャッシュのいずれかにも含まれているかどうかを示す。もしレベル2キャッシュでキャッシュヒットすれば、レベル2キャッシュはそのバスマスタのメモリアクセスに対応するタグ−アドレスがメモリアクセスを行なったバスマスタとは異なった別のバスマスタに割当てられたレベル1キャッシュ内にもあるかどうかを、キャッシュヒットに対応する記憶場所に対する内包フィールドから決定する。もし他のバスマスタにもこのタグ−アドレスがあれば、共用レベル2キャッシュは他のバスマスタに割当てられたレベル1キャッシュからこのデータを得、このデータはレベル2キャッシュに読込まれる。次にデータは共用レベル2キャッシュからメモリアクセスを始めたバスマスタに割当てられたレベル1キャッシュに読込まれる。この情報はまた要求を行なったバスマスタにも送られる。一旦この処理が完了すると、レベル2キャッシュは共用レベル2キャッシュに動作可能に接続された各レベル1キャッシュ内のタグ−アドレスを反映するよう、その内包フィールドを更新する。
Description
【発明の詳細な説明】
多数のバスマスタと共用レベル2キャッシュとを備える
多レベルキャッシュシステムでの
キャッシュスヌーピングオーバーヘッドの低減
発明の背景
1.発明の分野
この発明は、密結合キャッシュおよび共用キャッシュを有する多重処理装置を
備える処理システムにおいて必要とされる、キャッシュメモリアクセスまたはス
ヌーピングオーバーヘッドの低減のための方法および装置に関する。特定的には
、この発明によるメモリシステムは、いずれかのバスマスタからのメモリアクセ
ス要求の結果として、キャッシュシステム内の第1レベルキャッシュのいずれか
にキャッシュヒットまたはキャッシュミスが生じたか否かを効率的に決定する。
2.背景技術の説明
この発明の目的においては、バスマスタとは、メモリに対して読出または書込
トランザクションを始めることができる装置である。このような装置の一例は、
マイクロプロセッサなどのプロセッサである。コンピュータシステムの性能を高
める1つの方策は、バスマスタが必要とする情報をバスマスタに供給するために
必要な時間を減ずることである。このような情報には、データおよび命令の両者
が含まれ得るが、これらは典型的には、バスマスタと接続されたメモリ内に記憶
される。この必要とされる情報にアクセスするため、必要とされる情報が記憶さ
れているメモリに、バスマスタはアドレスを伝送する。メモリは、バスマスタが
供給したアドレスによって示される記憶場所に記憶された情報をバスマスタに伝
送し返す。
メモリがバスマスタからアドレスを受取ってから、必要とされた情報をバスマ
スタに伝送するまでにかかる時間の経過を減じることによって、必要とされた情
報をバスマスタに供給するために必要な時間を減じることができよう。残念なが
ら、メモリの速度が上がると、メモリのコストは劇的に高くなる。したがって、
とりわけ、大容量のメモリを必要とするシステムにおいては、利用可能な中で最
速のメモリを使用するということはまず実用的でない。
典型的には「キャッシュ」メモリと呼ばれる、比較的高速のメモリの比較的小
さなバンクを使用することにより、情報要求から情報供給までの平均速度を改良
するためのより費用対効果のよい方策が提供される。特定的には、キャッシュメ
モリを有するシステムでは、バスマスタはまず必要とする情報をキャッシュメモ
リに要求する。もしその情報がキャッシュメモリ内に記憶されていれば、その要
求はキャッシュ「ヒット」と呼ばれ、情報はキャッシュメモリからバスマスタへ
とキャッシュメモリのより速い速度で提供される。もし必要とされた情報がキャ
ッシュメモリ内に記憶されていなければ、その情報要求はキャッシュ「ミス」と
呼ばれ、その情報はシステムメモリからより遅い転送速度で検索される。情報が
システムメモリからバスマスタへ供給されるときには、その同じ情報が続いて要
求されることを予想して、その情報のコピーが典型的にはキャッシュメモリ内に
記憶される。
多レベルキャッシュシステムは、バスマスタからメインメモリへのアクセス経
路内に2つ以上のキャッシュレベルを含む。バスマスタはレベル1キャッシュに
接続され、レベル1キャッシュはレベル2キャッシュに接続され、レベル2キャ
ッシュはレベル3キャッシュに接続されてもよく、さらに他のキャッシュが接続
されていてもよい。通常、各バスマスタについて、より高レベルのキャッシュは
より低レベルのキャッシュ内に記憶されるすべての情報を含んでおり、この原則
は内包として知られている。多数のキャッシュレベルを用いる多数のバスマスタ
は、共用メモリバスを通じて共通メインメモリにアクセスできる。このバスは通
常、各バスマスタに割当てられた最高レベルのキャッシュに接続する。この機構
においては、バスマスタ用のキャッシュを含む各バスマスタシステムは、いずれ
かのバスマスタがそのバスマスタ用のキャッシュのいずれにも含まれていないデ
ータを要求するまでは、同一のメインメモリを共用している他のバスマスタシス
テムとは独立してランできる。
バスマスタが要求した情報が一旦バスマスタに供給されると、そのバスマスタ
はその情報を変更できる。次に、この情報の変更された型はキャッシュメモリに
再び記憶される。こうして、1つの情報の2つの型が同時に存在し得る。つまり
、「古い」型がシステムメモリおよび高レベルキャッシュ内に、そして、「新し
い」型が、典型的には第1レベルキャッシュメモリ内に存在し得る。単一バスマ
スタシステムにおいては、情報を使用する唯一の装置であるバスマスタは、バス
マスタが情報を必要とするときにはその情報のキャッシュにある型を検索するの
で、2つのデータの型が存在することは問題にはならない。
多数のバスマスタを有するシステムにおいては、ある情報の最新の型があるバ
スマスタに割当てられたキャッシュ内に記憶されているときに、他のバスマスタ
がその情報を要求するかもしれない。確実に、最新の型のデータのみが使用され
るようにするためには、システム内のいずれのバスマスタによる要求をもキャッ
シュメモリに知らせる機構を提供せねばならない。多数のバスマスタがあるシス
テムにおいては、バスマスタはシステムメモリおよびバスマスタ同士と共用メモ
リバスによって接続されている。各バスマスタ用のキャッシュは、ただそれらと
関連するバスマスタに情報を供給するだけでなく他のバスマスタからのメモリア
クセス要求をモニタするような構成でなければならない。
メモリアクセス要求は、共用メモリバスで同報通信される。共用メモリバスに
よって情報要求が同報通信されるたびに、システム上のキャッシュメモリは要求
されている情報がそれらの記憶場所のいずれかに含まれているかどうか決定せね
ばならない。メモリバスを通じて要求される情報がキャッシュメモリ内に記憶さ
れているか否かを決定するこの処理は、「スヌーピング」と呼ばれる。もし、共
用メモリバス上で要求された情報がキャッシュメモリ内に含まれていれば、その
キャッシュメモリは要求された情報の最新の型を、メモリバスを通じてその情報
を要求したバスマスタに送る。その情報を要求したバスマスタはその情報を変更
するかもしれず、したがって、その情報の現在の型は無効になるかもしれないの
で、このキャッシュメモリはまた、要求された情報のその型を無効にしてもよい
。
キャッシュ上でスヌーピング動作が実行されているときはバスマスタはキャッ
シュにアクセスできないので、スヌーピング動作のために、キャッシュを備えた
バスマスタの全体として性能が大きく減じられ得る。さらには、2つのバスマス
タを有するシステムにおいては、スヌーピング動作が動作時間の50%も占めか
ねず、共通メインメモリを共用する3つ以上のバスマスタを有するシステムにお
いてはさらに多くの動作時間を占めかねない。
発明の概要
この発明の目的は、レベル2キャッシュなど共用高レベルキャッシュを備える
複数のバスマスタにサービスする多レベルキャッシュシステムを提供することで
ある。
この発明のさらなる目的は、共用高レベルキャッシュに経路づけられたバスに
アクセスするバスマスタが、アクセス中のキャッシュラインのデータを他のキャ
ッシュが含むかどうかを迅速に知る、システムを提供することである。
この発明のまたさらなる目的は、個々のバスマスタの速度を落とすことなく、
キャッシュのスヌープのために必要なクロックの数を減じるシステムを提供する
ことである。
この発明のまたさらなる目的は、キャッシュコヒーレンスを維持するために必
要な時間を減じることである。
この発明の上述のおよび他の目的は、2つまたは3つ以上のバスマスタが各々
少なくともそれら自身の第1レベルキャッシュを有するシステムによって達成さ
れる。これらのバスマスタは第2レベルキャッシュなどの高レベルキャッシュを
共用する。共用高レベルキャッシュは、低レベルキャッシュ内のすべてのエント
リに対しての内包をサポートする。この発明により、高レベルキャッシュは、シ
ステム内の各バスマスタに対し別個の内包ビットを有する。第1のバスマスタに
よるメモリアクセス時には、各バスマスタに対して内包ビットがテストされ、他
のバスマスタに関連するローカルキャッシュが同じアドレスおよび潜在的に異な
ったデータを含んでいないかどうか決定する。もし含んでいれば、第1のバスマ
スタはアクセスを止め、キャッシュ内のデータを無効にしおよび/または変更し
たデータをメインメモリに書込み直す無効化サイクルを実行する。
この発明によるシステムは、多数のバスマスタが共用するレベル2キャッシュ
などのより高レベルのキャッシュを有するよう構成してもよい。レベル2キャッ
シュなどのより高レベルのキャッシュを共用するバスマスタは各々、メモリアク
セス動作用にそれ自身のレベル1キャッシュを有する。バスマスタがそれ自身の
キャッシュ内に含まれていない情報を要求するたびに、システム上のすべてのキ
ャッシュがスヌーピング動作を実行する必要がない、システムを提供することが
望ましい。特定的には、高レベルキャッシュ内の内包フィールドが高レベルキャ
ッシュ内に記憶されたどのタグ−アドレスが各低レベルキャッシュにも記憶され
ているかを示すので、一旦高レベルキャッシュたとえばレベル2キャッシュでヒ
ットが生じれば、高レベルキャッシュを共用している低レベルキャッシュたとえ
ばレベル1キャッシュをスヌープする必要がない、システムを提供することが望
ましい。
この発明の一局面により、メモリシステムは、第1のバスマスタと第1のバス
マスタに動作可能に接続された第1のレベル1キャッシュとを含む。第1のレベ
ル1キャッシュは第1の複数の記憶場所を含む。典型的には、第1の複数の記憶
場所は各々、データフィールド、タグ−アドレスフィールド、ステータスフィー
ルド、およびデータ変更フィールドを有する。この発明によるメモリシステムは
また、第2のバスマスタと第2のバスマスタに動作可能に接続された第2のレベ
ル1キャッシュとを含む。第2のレベル1キャッシュは第2の複数の記憶場所を
含み、第2の複数の記憶場所は各々データフィールド、タグ−アドレスフィール
ド、ステータスフィールド、およびデータ変更フィールドを有する。このメモリ
システムはさらに、第1のレベル1キャッシュおよび第2のレベル1キャッシュ
に動作可能に接続されたレベル2キャッシュを含む。レベル2キャッシュは第3
の複数の記憶場所を含み、第3の複数の記憶場所は各々、データフィールド、タ
グ−アドレスフィールド、ステータスフィールド、データ変更フィールド、およ
び内包フィールドを有する。内包フィールドは内包情報を記憶し、データに関連
するタグ−アドレスがまた、第1のレベル1キャッシュ内の第1の複数の記憶場
所のいずれか1つまたは第2のレベル1キャッシュ内の第2の複数の記憶場所の
いずれか1つにも存在しているかどうかを示す。
この発明の別の局面により、i個のバスマスタを有する処理システムがある。
ただし、iは1より大きい整数である。i個のバスマスタの1つは1つのバスマ
スタが要求するデータを表わすアドレスを発生する。この処理システムは、メイ
ンメモリに接続されi個のバスマスタがアクセスできる共用メモリバスを含み、
かつ、少なくとも2つのレベルを有する多レベルキャッシュシステムを含む。一
例においては、この発明による2レベルキャッシュシステムは、i番目のバスマ
スタに動作可能に接続されたi番目のレベル1キャッシュを含む。このi番目の
レベル1キャッシュは、データ、データのタグ−アドレス、データのステータス
、およびデータのデータ変更表示を記憶するための、i番目の複数の記憶場所を
含む。i番目のレベル1キャッシュは、i番目のバスマスタからのアドレス要求
に応答して、情報を供給する。この2レベルキャッシュシステムはさらに、i個
のバスマスタおよびi個のレベル1キャッシュの各々に動作可能に接続されたレ
ベル2キャッシュを含む。レベル2キャッシュは、データ、データのタグ−アド
レス、データのステータス、データのデータ変更表示、およびデータの内包フィ
ールドを記憶するための(i+1)番目の複数の記憶場所を含む。内包フィール
ドは、その内包フィールドに関連するタグ−アドレスがレベル2キャッシュに接
続されたi個のレベル1キャッシュのいずれかにもまた含まれているかどうかを
示す。この2レベルキャッシュシステムはさらに、i番目のレベル1キャッシュ
に割当てられるi番目のバスマスタからのメモリアクセスを検出するための、i
個のレベル1キャッシュ内のモニタ手段と、i番目のレベル1キャッシュによっ
てはメモリアクセスはサービスできないことをレベル2キャッシュに通知するた
めの、i個のレベル1キャッシュ内のキャッシュミス通知手段と、レベル2キャ
ッシュ内の(i+1)番目の複数の記憶場所の1つの中の内包フィールドを更新
するための、レベル2キャッシュ内の内包フィールド更新手段とを含む。
図面の簡単な説明
この発明ならびにこの発明のさらなる目的および利点は、添付した図面に照ら
して以下の説明を参照すると最もよく理解されるであろう。図面中の図において
は、同様の参照番号は同様の要素を示す。
図1は、この発明による多バスマスタ環境において、複数のレベル1キャッシ
ュが共用レベル2キャッシュに接続されている2レベルキャッシュシステムをブ
ロック図の形で示す。
図2は、この発明によるレベル1およびレベル2キャッシュの要素をブロック
図の形で示す。
図3は、この発明による、レベル1キャッシュがそれに対応するバスマスタか
らのメモリ読出アクセスを検出したときに関係するシーケンスのフロー図である
。
図4は、この発明による、共用レベル2キャッシュが共用メモリバス上の他の
バスマスタからのメモリ読出アクセスを検出したときに関係するシーケンスのフ
ロー図である。
図5は、この発明による、レベル1キャッシュがその対応するバスマスタから
のメモリ書込アクセスを検出したときに関係するシーケンスのフロー図である。
図6は、この発明による、共用レベル2キャッシュが共用メモリバス上の他の
バスマスタからのメモリ書込アクセスを検出したときに関係するシーケンスのフ
ロー図である。
図7aおよび図7bは、それぞれ、共用レベル2キャッシュ内に内包フィール
ドがないときおよびあるときにキャッシュスヌーピングを実行するために必要な
クロックサイクルを示す、タイミング図である。
好ましい実施例の詳細な説明
図1は、この発明による共用レベル2キャッシュを備える2レベルキャッシュ
処理システムを示す。この発明の説明を簡単にするため、2つのキャッシュレベ
ルを持ち2つのバスマスタを備えるシステムが示されているが、いくつのキャッ
シュレベルおよびバスマスタでも用いることができ、図1に示すシステムは例で
あって限定ではないことは理解されよう。
図1は、第1のバスマスタ10、第2のバスマスタ15、第1のバスマスタ1
0に割当てられるレベル1キャッシュ20、第2のバスマスタ15に割当てられ
るレベル1キャッシュ25、共用レベル2キャッシュ30、共用メモリバス40
、およびメインメモリ50を示す。図1はまた、共用メモリバス40に接続され
ているが、データ検索のためには共用レベル2キャッシュ30を使用しない、第
3のバスマスタ55を示す。
第1のバスマスタ10がメインメモリ50からアドレスを要求するとき、第1
のバスマスタ10に割当てられたレベル1キャッシュ20は、そのアドレスをレ
ベル1キャッシュ20内に記憶されたタグアドレスと比較することで、そのアド
レスがその記憶場所のいずれかにあるかどうかを、まずチェックする。もし、レ
ベル1キャッシュ20の記憶場所のいずれにもそのアドレスがなければ、共用レ
ベル2キャッシュ30が次に、そのアドレスを共用レベル2キャッシュ30内に
記憶されたタグアドレスと比較することで、バスマスタのアドレス要求にサービ
スしようとする。もし、共用レベル2キャッシュ30の記憶場所のいずれにもそ
のアドレスがなければ、メインメモリ50が第1のバスマスタ10にサービスす
る。この処理は、第2のバスマスタ15によるメモリ要求についても同じである
。その場合には、第2のバスマスタに割当てられたレベル1キャッシュ25がま
ず要求にサービスしようとし、不成功であれば、次に共用レベル2キャッシュ3
0が要求にサービスしようとする。
次に図2を参照して、第1のバスマスタに割当てられたレベル1キャッシュ2
0は、データ20−1、データのタグまたはメモリアドレス20−2、ならびに
データが有効であるか、およびデータが変更されているかの表示を含むデータス
テータス20−3を含む。レベル1キャッシュ20はまた、第1のバスマスタ1
0によるメモリへの読出および書込アクセスを検出し、第1のバスマスタ10に
よるメモリアクセス要求にレベル1キャッシュ20がサービスできるかどうかを
より高レベルのキャッシュ(すなわち共用レベル2キャッシュ30)に知らせる
ためのレベル1キャッシュコントローラ20−4を有する。第2のバスマスタに
割当てられたレベル1キャッシュ25は第1のバスマスタ10に割当てられたレ
ベル1キャッシュ20と同一構造である。
共用レベル2キャッシュ30は、データ30−1、データのタグまたはメモリ
アドレス30−2、およびデータのステータス30−3を含む。さらに、共用レ
ベル2キャッシュ30は内包フィールドアレイ30−4を含む。内包フィールド
アレイ30−4は、内包フィールドに対応するデータのタグ−アドレスがまた、
共用レベル2キャッシュ30に接続されたレベル1キャッシュ20、25のいず
れかにもあるかどうかを識別する別個の表示を含む。共用レベル2キャッシュ3
0はまた、共用メモリバス40でのいかなるメモリアクセス読出または書込をも
モニタする、レベル2キャッシュコントローラ30−5を有する。レベル2キャ
ッシュコントローラ30−5はまた、必要なときに、レベル1キャッシュ20、
25のスヌーピングを実行する。
レベル2キャッシュコントローラ30−5は、共用レベル2キャッシュ30に
接続されるレベル1キャッシュ20、25の各々の中にその時点で記憶されてい
るタグ−アドレスおよびデータに基づいて、内包フィールドアレイ30−4の更
新を行なう。
レベル2キャッシュは、レベル2キャッシュ30に接続されたレベル1キャッ
シュ20、25の各々が行なう、変更されたデータのコピーバック動作(キャッ
シュライン置換え)を識別できる。コピーバック動作は、変更されたデータのメ
インメモリ50へのキャッシュの書込に対応する。これらのコピーバック動作は
周期的に生じてもよく、または、バスマスタから送られる外部コピーバックコマ
ンドの発生によって生じてもよい。いくつかのシステムにおいては、レベル1キ
ャッシュからメインメモリ50へのデータのコピーバックによって、コピーバッ
クを行なったレベル1キャッシュがそのキャッシュ内のコピーバックされたデー
タを無効にし、それによって、キャッシュ内のコピーバックされたデータに新し
いデータを重ね書きできる。こうしたシステムにおいては、これに伴って、レベ
ル2キャッシュ30がその内包フィールドアレイ30−4を更新し、コピーバッ
クされたデータに対応するアドレスはもはやレベル1キャッシュにはないことを
示す(なぜならば、それらの各々のステータスビットは「無効」と設定されてい
るからである)。
レベル2キャッシュ30はまた、レベル1キャッシュ20、25によるメイン
メモリへの他のタイプのライトバックに基づいて、その内包フィールドアレイ3
0−5を更新することもできる。たとえば、第1のバスマスタ10から送られる
バーストライト・コマンドの間は、第1のバスマスタ10に割当てられたレベル
1キャッシュ20は、バーストライト・コマンドのメモリアドレス範囲内にある
タグ−アドレスを有するメインメモリ50にデータをライトバックする。あるシ
ステムでは、次に、レベル1キャッシュ20内の、メインメモリ50にバースト
ライトされたデータを無効化し、それに従って、レベル2キャッシュ30がその
内包フィールドアレイ30−4を更新する。
次に図3を参照すると、ステップ201で、第1のバスマスタ10がメモリア
クセス読出を要求し、これに対応する第1のレベル1キャッシュ20がそれを受
取る。次に、ステップ202で、第1のレベル1キャッシュ20は、第1のバス
マスタ10からのメモリアクセス読出要求に対応するタグ−アドレスが第1のレ
ベル1キャッシュ20内の記憶場所のいずれかにあるかどうかを決定する。
もし、キャッシュヒットであれば、すなわち、もし、第1のバスマスタ10か
らのメモリアクセス読出要求のアドレスと一致するタグ−アドレスが第1のレベ
ル1キャッシュ20内の記憶場所のいずれかにあれば、次に、ステップ203で
第1のレベル1キャッシュ20は要求にサービスし、第1のバスマスタ10に要
求された情報を送る。もしキャッシュミスであれば、ステップ204で、共用レ
ベル2キャッシュ30がメモリ読出要求にサービスしようとし、共用レベル2キ
ャッシュ30内の記憶場所のいずれかが第1のバスマスタ10のメモリ読出アク
セスに一致するタグ−アドレスを含むかどうか決定する。
もし、共用レベル2キャッシュ30でキャッシュミスであれば、次に、ステッ
プ205で、第1のバスマスタ10が要求した情報をメインメモリ50から検索
せねばならない。一旦メインメモリ50から検索されると、続いて起こる第1の
バスマスタ10からの要求をさばくために、ステップ206においてこのデータ
は共用レベル2キャッシュ30にコピーされ、ステップ207において第1のレ
ベル1キャッシュ20にコピーされる。次に、ステップ208で、第1のレベル
1キャッシュ20内の新しいタグ−アドレスを反映するように、共用レベル2キ
ャッシュ30の内包フィールドが更新され、ステップ203でデータは第1のバ
スマスタ10に送られる。
もし、共用レベル2キャッシュ30でキャッシュヒットすれば、ステップ20
9で、メモリ読出アクセスに一致するタグ−アドレスを含む記憶場所に対応する
内包フィールドがチェックされ、図1の第2のレベル1キャッシュ25などの他
のレベル1キャッシュのいずれかが第1のバスマスタ10からのメモリアクセス
に対応する要求されたタグ−アドレスを含むかどうかが調べられる。もし、いず
れの他のレベル1キャッシュもこの要求されたタグ−アドレスを含んでいなけれ
ば、次に、ステップ207で、共用レベル2キャッシュ30はメモリアクセスに
一致するタグ−アドレスに対応する記憶場所内の情報を第1のレベル1キャッシ
ュ20に送る。ステップ203で、この情報は要求を出したバスマスタ10にも
送られる。ステップ208で、第1のレベル1キャッシュ20もこの時点ではタ
グ−アドレスを含んでいることを反映するよう、共用レベル2キャッシュ30は
、また、メモリ読出アクセスに一致するタグ−アドレスを含む記憶場所に対応す
る内包フィールドを更新する。
もし、共用レベル2キャッシュ30内の内包フィールドが他のレベル1キャッ
シュの1つがメモリ読出アクセスに対応するタグ−アドレスを含むことを示せば
、ステップ211で、共用レベル2キャッシュ30はそのタグ−アドレスに対応
する情報をレベル1キャッシュ(すなわち我々の例では第2のレベル1キャッシ
ュ25)から検索し、ステップ206で、第1のバスマスタ10のメモリ読出ア
クセスと一致するタグ−アドレスに対応する記憶場所内の情報を共用レベル2キ
ャッシュ30に書込む。次に、ステップ207で、要求された情報は共用レベル
2キャッシュ30から第1のレベル1キャッシュ20へ送られ、ステップ208
で、(第1のレベル1キャッシュ25がこの時点では要求された情報に対応する
タグ−アドレスを含んでいることを反映するよう)共用レベル2キャッシュ30
の内包フィールドが更新され、ステップ203で、要求された情報は第1のバス
マスタ10に送られる。共用レベル2キャッシュ30から第1のレベル1キャッ
シュ25への情報の伝送は、共用レベル2キャッシュ30からメモリ読出アクセ
スを行なった第1のバスマスタ10への情報の伝送と同時に行なうことができる
。
もし、図1に示す第3のバスマスタ55のような、共用レベル2キャッシュ3
0を利用しないバスマスタがメモリ読出アクセスを行なうと、その手順は上に説
明したものとは若干異なる。第3のバスマスタ55は、(それ自身のキャッシュ
メモリを持つまたは持たない)イーサネットカード、I/Oカード、ビデオカー
ド、または典型的には頻繁なメモリアクセスを行なう他のタイプのバスマスタで
あってよい。
ここに説明するこの発明は、共用レベル2キャッシュ30にアクセスする第1
および第2のバスマスタ10、15にこれらの外部バスマスタが課すアクティビ
ティ(すなわちスヌーピング)の量を減ずる。内包フィールドアレイに基づいて
、共用レベル2キャッシュ30は、それが共用メモリバス40上でピックアップ
したいずれかのメモリアクセスが、第1および第2のレベル1キャッシュ20、
25のいずれかまたは両方をのぞいて(すなわちスヌープして)これらのキャッ
シュが共用メモリバス40上のこれらのメモリアクセスのいずれかと一致するタ
グ−アドレスを含むかどうかを調べることを必要としているかどうか決定できる
。
もしレベル1キャッシュ20、25のいずれかが第3のバスマスタ55から発
したメモリアクセスと一致するタグ−アドレスを含んでおり、そして、そのタグ
−アドレスに対応するデータが、対応する第1または第2のバスマスタ10、1
5によって(ステータスフィールドから決定されるように)変更されるかまたは
更新されていれば、その変更されたデータが共用レベル2キャッシュ30および
メインメモリ50にライトバックされる。この手順によって、第3のバスマスタ
55は確実にメモリ読出アクセスに対応する最新のデータ値を検索する。
第3のバスマスタ55などの外部メモリ読出アクセスに関する処理を図4を参
照して、説明する。ステップ500で、共用レベル2キャッシュ30は、共用レ
ベル2キャッシュ30を使用する第1および第2のバスマスタ10、15以外の
バスマスタによるあらゆるメモリアクセスに対し、共用メモリバス40をモニタ
する。ステップ502で、第3のバスマスタ55からなどの外部バスマスタから
のメモリ読出アクセスが共用メモリバス40上で検出されると、ステップ504
で、共用レベル2キャッシュ30は、そのメモリ読出アクセスに対応するタグ−
アドレスがその記憶場所のいずれかにあるかどうかを決定する。もしそのタグ−
アドレスが共用レベル2キャッシュ30内になければ、内包からして、そのタグ
−アドレスは、共用レベル2キャッシュ30と直接接続されているレベル1キャ
ッシュ20、25のいずれにもないことになる。したがって、処理はステップ5
00に戻り、他の外部メモリアクセスを見張る。
しかし、もし共用レベル2キャッシュ30で「ヒット」すれば、ステップ51
0で、共用レベル2キャッシュ30は外部メモリ読出アクセスと一致するタグ−
アドレスを有する記憶場所に対応する内包フィールドをチェックする。もし内包
フィールドがレベル1キャッシュ20、25のいずれも外部メモリ読出アクセス
に一致するタグ−アドレスを含んでいないと示せば、ステップ512で、共用レ
ベル2キャッシュは対応するデータ変更ビットをチェックし、共用レベル2キャ
ッシュ30ではヒットになった記憶場所が、第1および第2のバスマスタ10、
15のいずれかによって更新されているかどうかを調べる。
ステップ513で、ステータスフィールドがデータが変更されていることを示
せば、ステップ514で、データ・ライトバック・サイクルにより、共用レベル
2キャッシュ30はメインメモリ50にデータをライトバックする。もしステー
タスフィールドがデータが変更されていないことを示せば、プロセスはステップ
500に戻る。
他方、もし、レベル1キャッシュ20、25のいずれか(または両方)が「ヒ
ット」タグ−アドレスおよび対応するデータを含んでいることを、共用レベル2
キャッシュ30内の対応する記憶場所の内包フィールドが示せば、ステップ51
6で共用レベル2キャッシュ30は無効化サイクルを強制する。この無効化サイ
クルによって、ステップ518で、「ヒット」記憶場所を含むレベル1キャッシ
ュはこの「ヒット」記憶場所内のデータをメインメモリ50にライトバックする
。
MESIプロトコルにおいては、レベル1キャッシュ20、25のいずれか一
方しか対応するメモリアドレス場所に対して変更されたデータを含むことができ
ず、したがって、2つ以上のレベル1キャッシュがデータが変更されたことを示
すステータスフィールドを有する「ヒット」記憶場所を含むという状況はあり得
ない。しかし、他のタイプのキャッシュプロトコルにおいては、こうした状況が
生じ得る。MESIプロトコルにおいては、「共用」データがレベル1キャッシ
ュ20、25の両方に存在することができるが、この共用データを第1または第
2のバスマスタ10、15のいずれかによって変更することはできない。したが
って、レベル1キャッシュ20、25での同時ヒットについての以下の説明は、
こうした状況が生じ得る(MESIプロトコルではない)システムにのみ当ては
まる。
MESIプロトコルにおいては、キャッシュ内のデータは以下の4つの可能な
状態のいずれかをとり得る。1)変更済(すなわち、同じメモリアドレスに対す
るキャッシュ内のデータはメインメモリ内のデータと異なっている)2)排他的
(すなわち、同じメモリアドレスに対するメモリ内のデータはキャッシュ内のデ
ータと同一である)3)共用(すなわち、同じメモリアドレスに対するキャッシ
ュ内のデータはキャッシュ内のデータと同一であるが、この同じメモリアドレス
はまた他のキャッシュにも存在しており、そこでは対応するデータは変更されて
いてもよい)および4)無効(すなわち、同一のメモリアドレスに対するキャッ
シュ内のデータはメインメモリ内のデータと異なっている)。
無効化サイクルは必ずしも、レベル1キャッシュ20、25内の対応する「ヒ
ット」記憶場所内のデータを無効にするわけではなく、ただ、「ヒット」記憶場
所内の対応するデータをメインメモリ50にライトバックさせる。この手順によ
って、第3のバスマスタ55のメモリ読出アクセスによって、第3のバスマスタ
55によるメモリ読出アクセスが行なわれたときにはメインメモリ50内にはな
かったかもしれない、利用可能な最新のデータを確実に得る。ステップ518で
、一旦データがメインメモリ50(および共用レベル2キャッシュ30)に書込
まれると、ステップ520で、第3のバスマスタ55からのメモリ読出アクセス
にメインメモリ50がサービスする。
図5は、レベル1キャッシュ内のデータが「共用」状態にあるかまたはレベル
1キャッシュがライトスルーモードであるときの、共用レベル2キャッシュに接
続されたレベル1キャッシュの1つに割当てられたバスマスタからの書込要求の
シーケンスを説明する。ステップ600で、レベル1キャッシュ20、25の各
々はメモリアクセス要求を検出するため、これらをそれぞれの第1および第2の
バスマスタ10、15に接続する内部バスをモニタする。もしステップ602で
、第1のバスマスタ10からのメモリ読出アクセス要求のように、共用レベル2
キャッシュ30を使用するバスマスタからメモリ書込アクセスが行なわれると、
ステップ604で、レベル1キャッシュ20などの対応するレベル1キャッシュ
がその要求にサービスしようとする。
もし、メモリ書込アクセスに対応するメモリアドレスが、対応するレベル1キ
ャッシュ20内にあるタグ−アドレスと一致すれば、ステップ606で、メモリ
書込アクセスに対応するデータは、レベル1キャッシュ20内の「ヒット」タグ
−アドレスに対応する記憶場所に書込まれる。ステップ608で、この記憶場所
に対して変更ビットが「変更された」状態に設定され、この時点でこれが変更さ
れたデータを含むことを示す。メモリ書込アクセス要求を行なったバスマスタ1
0のレベル1キャッシュ20がこのメモリ書込アクセスにサービスしたので、さ
らなるステップは必要なく、処理はモニタステップ600に戻る。
ステップ608の後には他の動作は図示していないが、もしレベル1キャッシ
ュがライトバックキャッシュであればメインメモリ50にデータをライトバック
するであろうし、MESIプロトコルにおいては、対応するライトバックされた
記憶場所のステータスビットは「無効」状態に設定されるであろうことに注意さ
れたい。この例においては、(レベル1キャッシュにおける「無効」データを有
するメモリアドレスは本質的には、レベル1キャッシュにはないメモリアドレス
と同じであるから)ライトバックされたレベル1キャッシュ内の記憶場所に対応
するレベル2キャッシュ30内の記憶場所はもはやレベル1キャッシュ内にはな
いことを示すため、共用レベル2キャッシュ30がその内包フィールドアレイを
更新する。
しかし、もし対応するレベル1キャッシュ20内で「ヒット」にならなければ
、ステップ610で、共用レベル2キャッシュ30がメモリ書込アクセスにサー
ビスしようとする。もし共用レベル2キャッシュ30が「ヒット」しなければ、
次に、ステップ614で、メモリ書込アクセス要求は共用メモリバス40を通っ
て送られ、メインメモリ50がメモリ書込アクセス要求にサービスする。ステッ
プ616で、メインメモリ50は、メモリ書込アクセスのアドレスに対応するデ
ータを共用メモリバス40上に送ることにより、メモリ書込アクセスに応答する
。
次に、ステップ617で、レベル2キャッシュ30に対して「書込割当」が可
能化されたかどうかが決定される。もし、書込割当が可能化されていなければ、
レベル2キャッシュはメインメモリ50から送られてきたデータをその利用可能
な記憶場所の1つに書込まず、シーケンスはステップ600に戻る。もし書込割
当が可能化されていれば、ステップ618で、レベル2キャッシュはメインメモ
リ50から送られてきたデータをその利用可能な記憶場所の1つに書込む。
もし書込割当が可能化されていれば、共用レベル2キャッシュ30はまた、ス
テップ622で、メモリ書込アクセスをしたバスマスタのレベル1キャッシュ2
0にデータを送る。共用レベル2キャッシュ30と同様、レベル1キャッシュも
「書込割当」が可能化されていれば、データをその利用可能な記憶場所の1つに
書込み、共用レベル2キャッシュ30はステップ624で、このデータに対応す
るタグ−アドレスが共用レベル2キャッシュ30に接続されたレベル1キャッシ
ュの1つ(すなわちレベル1キャッシュ20)にもあることを示すため、共用レ
ベル2キャッシュ30に書込まれた記憶場所の内包フィールドを更新する。もち
ろんレベル1キャッシュにおいて書込割当が可能化されていなければ、レベル1
キャッシュはこのデータをその記憶場所のいずれにも書込まないのであるから、
共用レベル2キャッシュ30はその内包フィールドアレイを更新しない。
もし共用レベル2キャッシュ30で「ヒット」すれば、ステップ626で、共
用レベル2キャッシュ30はメモリ書込アクセス要求にサービスする。さらに、
共用レベル2キャッシュ30はそのデータをレベル1キャッシュ20に供給して
もよく、したがって、レベル1キャッシュ20は、第1のバスマスタ10がこの
同じアドレスに対して次に行なうメモリアクセスにサービスできる。しかし、M
ESIプロトコルにおいては、メモリは更新されないので、MESIプロトコル
においては共用レベル2キャッシュ30はレベル1キャッシュ20にこのデータ
を供給しない。しかし、他のタイプのプロトコルにおいては、このようなことが
生じ得、したかって、共用レベル2キャッシュ30はレベル1キャッシュ20に
書込むようにデータを供給し、そして、共用レベル2キャッシュ30はレベル1
キャッシュ20内にあるデータの更新を反映するようその内包フィールドアレイ
を更新する。
次に図6を参照して、もし、共用レベル2キャッシュ30を使用しないバスマ
スタによってメモリ書込アクセスがなされたら、たとえば、第3のバスマスタ5
5によるメモリ書込アクセスが行なわれたならば、ステップ700で、共用レベ
ル2キャッシュ30は共用メモリバス40上でこの「外部」メモリ書込アクセス
を検出する。共用メモリバス40をモニタすることにより、ステップ702で、
共用レベル2キャッシュ30は共用メモリバス40上のメモリ書込アクセスの存
在を検出できる。ステップ704で、共用レベル2キャッシュ30は、外部メモ
リ書込アクセスに対応するアドレスが共用レベル2キャッシュ30内の記憶場所
のいずれかにかあるタグ−アドレスに「ヒット」するかどうかを決定する。もし
「ヒット」しなければ、この処理はモニタステップ700に戻り、共用メモリバ
ス40上の他のメモリアクセスを待つ。
もし、共用レベル2キャッシュ30で「ヒット」すれば、ステップ710で、
「ヒット」した記憶場所に対応する内包フィールドがチェックされ、共用レベル
2キャッシュ30に接続されたレベル1キャッシュ20、25のいずれかでも「
ヒット」するかどうかが決定される。対応する内包フィールドに基づいてレベル
1キャッシュ20、25のいずれでも「ヒット」がなければ、ステップ716で
、共用レベル2キャッシュ30はその対応する記憶場所に対する共用レベル2キ
ャッシュ内のステータスフィールドをチェックする。もし、ステップ718で、
ステータスフィールドがそのデータが変更されていることを示せば、ステップ7
20で、この変更されたデータに対応する記憶場所のステータスは「無効」状態
に設定され、ステップ722で、変更されたデータはメインメモリ50にライト
バックされる。もしステップ718で、共用レベル2キャッシュ30内の対応す
る記憶場所内のデータがステータスフィールドのチェックに基づいて変更されて
いなければ、ステップ726で、そのデータのステータスは「無効」状態に設定
される。この場合には変更されなかったデータはメインメモリ50にライトバッ
クされない。
ステップ711で、対応する内包フィールドが共用レベル2キャッシュ30に
接続されたレベル1キャッシュ20、25の1つまたは2つが外部メモリ書込ア
クセスのアドレスに対応するタグ−アドレスを含むことを示せば、ステップ73
2で、共用レベル2キャッシュ30はこの「ヒット」したレベル1キャッシュに
無効化サイクルを送る。この無効化サイクルによって、ステップ736で、外部
メモリ書込アクセスのアドレスに対応するタグ−アドレスを含むレベル1キャッ
シュは「ヒット」した記憶場所に関連するデータをメインメモリ50にライトバ
ックする。ステップ740で、「ヒット」記憶場所を含むレベル1キャッシュは
また、「ヒット」記憶場所のステータスビットを「無効」状態に設定する。こう
して、バスマスタが「ヒット」記憶場所からデータを読出そうとするとき、バス
マスタはこのデータを(もしそれがレベル2キャッシュ30にあり「有効」であ
れば)レベル2キャッシュ30からまたはメインメモリ50から得なければなら
ない。
多バスマスタシステムのすべてのバスマスタによって確実にすべてのメモリ書
込がわかるようにするため、レベル1キャッシュからのメインメモリ50へのデ
ータのライトバックの処理は必要である。「ヒット」を経験したレベル1キャッ
シュ(または複数のキャッシュ)からメインメモリ50へ書込まれたデータはス
テップ745で外部メモリ書込アクセスによってメインメモリ50に重ね書きさ
れる。
図7aおよび図7bを参照して、この発明の利点を示すタイミング図を説明す
る。図7aでは、メモリアクセス要求をしなかったバスマスタに割当てられたレ
ベル1キャッシュにおいてキャッシュ探索を行なうため2つの探索サイクルがあ
る。この場合、一旦共用レベル2キャッシュ30内に要求されたタグ−アドレス
が見つかると、共用レベル2キャッシュ30はそのタグ−アドレスがこれらのキ
ャッシュのいずれかにもあるかどうかを決定するためレベル1キャッシュの各々
をスヌープせねばならない。
しかし、上述のように共用レベル2キャッシュ30内の内包フィールドを使用
すれば、図7bに示すように、レベル1キャッシュの各々の内容の探索を行なう
ために1つのクロックサイクルしか必要ない。共用レベル2キャッシュ30がレ
ベル1キャッシュへのスヌープをせねばならないかどうかを決定するために必要
とするすべての情報は共用レベル2キャッシュ30内にある内包フィールドアレ
イ内に含まれているので、この発明によるシステムによってクロックサイクルが
減じられる。
ここに示した詳細な図面および特定の例はこの発明の好ましい実施例を説明し
ており、例を示すためのものであって、この発明の装置および方法は開示された
厳密な詳細および状況に限定されるものではなく、以下の請求の範囲によって規
定されるこの発明の精神から逸脱することなく、さまざまな変更を行ない得るこ
とが理解されよう。
【手続補正書】特許法第184条の8第1項
【提出日】1997年1月3日
【補正内容】
ば、次に、ステップ207で、共用レベル2キャッシュ30はメモリアクセスに
一致するタグ−アドレスに対応する記憶場所内の情報を第1のレベル1キャッシ
ュ20に送る。ステップ203で、この情報は要求を出したバスマスタ10にも
送られる。ステップ208で、第1のレベル1キャッシュ20もこの時点ではタ
グ−アドレスを含んでいることを反映するよう、共用レベル2キャッシュ30は
、また、メモリ読出アクセスに一致するタグ−アドレスを含む記憶場所に対応す
る内包フィールドを更新する。
もし、共用レベル2キャッシュ30内の内包フィールドが他のレベル1キャッ
シュの1つがメモリ読出アクセスに対応するタグ−アドレスを含むことを示せば
、ステップ210で、共用レベル2キャッシュ30はそのタグ−アドレスに対応
する情報をレベル1キャッシュ(すなわち我々の例では第2のレベル1キャッシ
ュ25)から検索し、ステップ206で、第1のバスマスタ10のメモリ読出ア
クセスと一致するタグ−アドレスに対応する記憶場所内の情報を共用レベル2キ
ャッシュ30に書込む。次に、ステップ207で、要求された情報は共用レベル
2キャッシュ30から第1のレベル1キャッシュ20へ送られ、ステップ208
で、(第1のレベル1キャッシュ25がこの時点では要求された情報に対応する
タグ−アドレスを含んでいることを反映するよう)共用レベル2キャッシュ30
の内包フィールドが更新され、ステップ203で、要求された情報は第1のバス
マスタ10に送られる。共用レベル2キャッシュ30から第1のレベル1キャッ
シュ20への情報の伝送は、共用レベル2キャッシュ30からメモリ読出アクセ
スを行なった第1のバスマスタ10への情報の伝送と同時に行なうことができる
。
もし、図1に示す第3のバスマスタ55のような、共用レベル2キャッシュ3
0を利用しないバスマスタがメモリ読出アクセスを行なうと、その手順は上に説
明したものとは若干異なる。第3のバスマスタ55は、(それ自身のキャッシュ
メモリを持つまたは持たない)イーサネットカード、I/Oカード、ビデオカー
ド、または典型的には頻繁なメモリアクセスを行なう他のタイプのバスマスタで
あってよい。
ここに説明するこの発明は、共用レベル2キャッシュ30にアクセスする第1
および第2のバスマスタ10、15にこれらの外部バスマスタが課すアクティビ
ティ(すなわちスヌーピング)の量を減ずる。内包フィールドアレイに基づいて
、共用レベル2キャッシュ30は、それが共用メモリバス40上でピックアップ
したいずれかのメモリアクセスが、第1および第2のレベル1キャッシュ20、
25のいずれかまたは両方をのぞいて(すなわちスヌープして)これらのキャッ
シュが共用メモリバス40上のこれらのメモリアクセスのいずれかと一致するタ
グ−アドレスを含むかどうかを調べることを必要としているかどうか決定できる
。
もしレベル1キャッシュ20、25のいずれかが第3のバスマスタ55から発
したメモリアクセスと一致するタグ−アドレスを含んており、そして、そのタグ
−アドレスに対応するデータが、対応する第1または第2のバスマスタ10、1
5によって(ステータスフィールドから決定されるように)変更されるかまたは
更新されていれば、その変更されたデータが共用レベル2キャッシュ30および
メインメモリ50にライトバックされる。この手順によって、第3のバスマスタ
55は確実にメモリ読出アクセスに対応する最新のデータ値を検索する。
第3のバスマスタ55などの外部メモリ読出アクセスに関する処理を図4を参
照して、説明する。ステップ500で、共用レベル2キャッシュ30は、共用レ
ベル2キャッシュ30を使用する第1および第2のバスマスタ10、15以外の
バスマスタによるあらゆるメモリアクセスに対し、共用メモリバス40をモニタ
する。ステップ502で、第3のバスマスタ55からなどの外部バスマスタから
のメモリ読出アクセスが共用メモリバス40上で検出されると、ステップ504
で、共用レベル2キャッシュ30は、そのメモリ読出アクセスに対応するタグ−
アドレスがその記憶場所のいずれかにあるかどうかを決定する。もしそのタグ−
アドレスが共用レベル2キャッシュ30内になければ、内包からして、そのタグ
−アドレスは、共用レベル2キャッシュ30と直接接続されているレベル1キャ
ッシュ20、25のいずれにもないことになる。したがって、処理はステップ5
00に戻り、他の外部メモリアクセスを見張る。
しかし、もし共用レベル2キャッシュ30で「ヒット」すれば、ステップ51
0で、共用レベル2キャッシュ30は外部メモリ読出アクセスと一致するタグ−
アドレスを有する記憶場所に対応する内包フィールドをチェックする。もし内包
フィールドがレベル1キャッシュ20、25のいずれも外部メモリ読出アクセス
に一致するタグ−アドレスを含んでいないと示せば、ステップ512で、共用レ
ベル2キャッシュは対応するデータ変更ビットをチェックし、共用レベル2キャ
ッシュ30ではヒットになった記憶場所が、第1および第2のバスマスタ10、
15のいずれかによって更新されているかどうかを調べる。
ステップ513で、ステータスフィールドがデータが変更されていることを示
せば、ステップ514で、データ・ライトバック・サイクルにより、共用レベル
2キャッシュ30はメインメモリ50にデータをライトバックする。もしステー
タスフィールドがデータが変更されていないことを示せば、プロセスはステップ
500に戻る。
他方、もし、レベル1キャッシュ20、25のいずれか(または両方)が「ヒ
ット」タグ−アドレスおよび対応するデータを含んでいることを、共用レベル2
キャッシュ30内の対応する記憶場所の内包フィールドが示せば、ステップ51
6で共用レベル2キャッシュ30は無効化サイクルを強制する。この無効化サイ
クルによって、ステップ518で、「ヒット」記憶場所を含むレベル1キャッシ
ュはこの「ヒット」記憶場所内のデータをメインメモリ50にライトバックする
。
MESIプロトコルにおいては、レベル1キャッシュ20、25のいずれか一
方しか対応するメモリアドレス場所に対して変更されたデータを含むことができ
ず、したがって、2つ以上のレベル1キャッシュがデータが変更されたことを示
すステータスフィールドを有する「ヒット」記憶場所を含むという状況はあり得
ない。しかし、他のタイプのキャッシュプロトコルにおいては、こうした状況が
生じ得る。MESIプロトコルにおいては、「共用」データがレベル1キャッシ
ュ20、25の両方に存在することができるが、この共用データを第1または第
2のバスマスタ10、15のいずれかによって変更することはできない。したが
って、レベル1キャッシュ20、25での同時ヒットについての以下の説明は、
こうした状況が生じ得る(MESIプロトコルではない)システムにのみ当ては
まる。
MESIプロトコルにおいては、キャッシュ内のデータは以下の4つの可能な
状態のいずれかをとり得る。1)変更済(すなわち、同じメモリアドレスに対す
るキャッシュ内のデータはメインメモリ内のデータと異なっている)2)排他的
(すなわち、同じメモリアドレスに対するメモリ内のデータはキャッシュ内のデ
ータと同一である)3)共用(すなわち、同じメモリアドレスに対するキャッシ
ュ内のデータはメモリ内のデータと同一であるが、この同じメモリアドレスはま
た他のキャッシュにも存在しており、そこでは対応するデータは変更されていて
もよい)および4)無効(すなわち、同一のメモリアドレスに対するキャッシュ
内のデータはメインメモリ内のデータと異なっている)。
無効化サイクルは必ずしも、レベル1キャッシュ20、25内の対応する「ヒ
ット」記憶場所内のデータを無効にするわけではなく、ただ、「ヒット」記憶場
所内の対応するデータをメインメモリ50にライトバックさせる。この手順によ
って、第3のバスマスタ55のメモリ読出アクセスによって、第3のバスマスタ
55によるメモリ読出アクセスが行なわれたときにはメインメモリ50内にはな
かったかもしれない、利用可能な最新のデータを確実に得る。ステップ518で
、一旦データがメインメモリ50(および共用レベル2キャッシュ30)に書込
まれると、ステップ520で、第3のバスマスタ55からのメモリ読出アクセス
にメインメモリ50がサービスする。
図5は、レベル1キャッシュ内のデータが「共用」状態にあるかまたはレベル
1キャッシュがライトスルーモードであるときの、共用レベル2キャッシュに接
続されたレベル1キャッシュの1つに割当てられたバスマスタからの書込要求の
シーケンスを説明する。ステップ600で、レベル1キャッシュ20、25の各
々はメモリアクセス要求を検出するため、これらをそれぞれの第1および第2の
バスマスタ10、15に接続する内部バスをモニタする。もしステップ602で
、第1のバスマスタ10からのメモリ書込アクセス要求のように、共用レベル2
キャッシュ30を使用するバスマスタからメモリ書込アクセスが行なわれると、
ステップ604で、レベル1キャッシュ20などの対応するレベル1キャッシュ
がその要求にサービスしようとする。
もし、メモリ書込アクセスに対応するメモリアドレスが、対応するレベル1キ
ャッシュ20内にあるタグ−アドレスと一致すれば、ステップ606で、メモリ
書込アクセスに対応するデータは、レベル1キャッシュ20内の「ヒット」タグ
−アドレスに対応する記憶場所に書込まれる。ステップ608で、この記憶場所
【手続補正書】特許法第184条の8第1項
【提出日】1997年7月2日
【補正内容】
ねず、共通メインメモリを共用する3つ以上のバスマスタを有するシステムにお
いてはさらに多くの動作時間を占めかねない。
発明の概要
この発明の目的は、レベル2キャッシュなど共用高レベルキャッシュを備える
複数のバスマスタにサービスする多レベルキャッシュシステムを提供することで
ある。
この発明のさらなる目的は、共用高レベルキャッシュに経路づけられたバスに
アクセスするバスマスタが、アクセス中のキャッシュラインのデータを他のキャ
ッシュが含むかどうかを迅速に知る、システムを提供することである。
この発明のまたさらなる目的は、個々のバスマスタの速度を落とすことなく、
キャッシュのスヌープのために必要なクロックの数を減じるシステムを提供する
ことである。
この発明のまたさらなる目的は、キャッシュコヒーレンスを維持するために必
要な時間を減じることである。
参照文献『第16回年次国際コンピュータアーキテクチャシンポジウム、エル
サレム、イスラエル、1989年5月28日−6月1日(the 16th Annual Inte
rnational Symposium on Computer Architecture,Jerusalem,Israel,28 May-
1 June 1989)』(IEEE、ワシントン)の16頁から24頁の、シェリトン
他(CHERITON et al.)による「VMP−MCにおけるスケーラビリティのため
の多レベル共用キャッシング技術(Multi-Level Shared Caching Techniques Fo
r Scalability In VMP-MC )」で、記憶モジュールディレクトリ(MMD)が、
それが記憶する各ブロックの状態を示す16ビットのエントリを含む、共用キャ
ッシング技術を開示している。このMMDは、MMD内に記憶される各ブロック
の共用コピーまたは専用コピーをいずれかのプロセッサが有しているかどうかに
ついての情報を含む。
参照文献『全国コンピュータ会議紀要、ニューヨーク、1976年6月7日−
10日、第45巻(Proceedings of the National Computer Conference,New Y
ork,June 7-10,1976,)』(米国情報処理学会連盟(American Federation of
Information Processing Soclety,)(米国モントベール)の749頁から75
3頁の、タン(TANG)による「密結合マルチプロセッサシステムにおけるキャッ
シュシステム設計(Cache system design in the tightly coupled multi-proce
ssor system )」の中で、ストアコントローラが、(共用または専用の)どのラ
インがどのキャッシュに存在しているかを知る、キャッシュシステム設計を開示
している(751頁のコラム2を参照)。ストアコントローラは中央ディレクト
リを有するが、この中央ディレクトリはデータを記憶することができない。
EP−A−0 507 063は、2つのバスマスタが存在し、バスマスタの
各々がそれ自身のダイレクトリを有するL−1キャッシュを有するコヒーレンス
ダイレクトリを開示している。
この発明は、第1のバスマスタ、第2のバスマスタ、前記第1のバスマスタに
接続された第1のレベル1キャッシュ、前記第2のバスマスタに接続された第2
のレベル1キャッシュ、前記第1のレベル1キャッシュおよび前記第2のレベル
1キャッシュおよびメインメモリに接続された共用レベル2キャッシュを備えた
2レベルキャッシュシステムにおけるキャッシュスヌーピングオーバーヘッドを
減じる方法であって、
前記共用レベル2キャッシュによって共用メモリバスをモニタするステップを
含み、前記共用メモリバスは前記共用レベル2キャッシュに接続されており、前
記方法はさらに、
前記共用レベル2キャッシュによって前記共用メモリバス上のメモリ読出アク
セスを検出するステップと、
前記メモリ読出アクセスに関連するタグ−アドレスを、前記共用レベル2キャ
ッシュの複数の記憶場所の各々に対するタグ−アドレスと比較するステップとを
含み、
もし比較の結果、前記共用レベル2キャッシュの複数の記憶場所の1つでタグ
−アドレスがヒットすれば、
前記共用レベル2キャッシュ内の前記1つの記憶場所についての内包フィール
ドをチェックし、前記第1および第2のレベル1キャッシュの少なくとも1つに
おいてタグ−アドレスヒットするかどうかを決定し、
前記第1および第2のレベル1キャッシュの前記少なくとも1つにおいてタグ
−アドレスヒットがあれば、無効化サイクルを実行し、前記タグ−アドレスヒッ
トに対応するデータは前記メインメモリに書込まれ、タグ−アドレスヒットを有
する前記第1および第2のレベル1キャッシュの前記少なくとも1つがこの時点
では前記メモリ読出アクセスに対応するタグ−アドレスを含んでいないことを示
すため、前記共用レベル2キャッシュによって前記1つの記憶場所に対する内包
フィールドを更新し、
もし比較の結果前記共用レベル2キャッシュ内の前記複数の記憶場所のいずれ
においてもタグ−アドレスヒットがなければ、さらなるメモリアクセスに対して
前記共用メモリバスをモニタする、2レベルキャッシュシステムにおけるキャッ
シュスヌーピングオーバーヘッドを減じる方法を提供する。
この発明はまた、メモリシステムであって、
第1のバスマスタと、
第2のバスマスタと、
前記第1のバスマスタに接続された第1のレベル1キャッシュと、
前記第2のバスマスタに接続された第2のレベル1キャッシュと、
前記第1のレベル1キャッシュおよび前記第2のレベル1キャッシュおよびメ
インメモリに接続された共用レベル2キャッシュと、
前記共用レベル2キャッシュによって共用メモリバスをモニタするためのモニ
タ手段とを含み、前記共用メモリバスは前記共用レベル2キャッシュに接続され
、前記システムはさらに、
前記共用レベル2キャッシュによって前記共用メモリバス上のメモリ読出アク
セスを検出するための手段と、
前記メモリ読出アクセスに関連するタグ−アドレスを、前記共用レベル2キャ
ッシュの複数の記憶場所の各々のタグ−アドレスと比較するための手段と、
前記比較の結果前記共用レベル2キャッシュ内の複数の記憶場所の1つでタグ
−アドレスヒットがあれば、前記第1および第2のレベル1キャッシュの少なく
とも1つにおいてタグ−アドレスヒットがあるかどうかを決定するため、前記共
用レベル2キャッシュ内の前記1つの記憶場所に対する内包フィールドをチェッ
クするための手段と、
前記第1および第2のレベル1キャッシュの前記少なくとも1つでタグ−アド
レスヒットがあったときは、無効化サイクルを実行し、タグ−アドレスヒットを
有する前記第1および第2のレベル1キャッシュの前記少なくとも1つはこの時
点では前記メモリ読出アクセスに対応するタグ−アドレスを含んでいないことを
示すため、前記共用レベル2キャッシュによって前記1つの記憶場所に対する内
包フィールドを更新するための手段とを含み、前記タグ−アドレスヒットに対応
するデータは前記メインメモリに書込まれ、
前記モニタリング手段は、比較の結果前記共用レベル2キャッシュ内の前記複
数の記憶場所のいずれにおいてもタグ−アドレスヒットがなかった場合にはさら
なるメモリアクセスに対して前記共用メモリバスをモニタする、メモリシステム
を提供する。
図面の簡単な説明
この発明ならびにこの発明のさらなる目的および利点は、添付した図面に照ら
して以下の説明を参照すると最もよく理解されるであろう。図面中の図において
は、同様の参照番号は同様の要素を示す。
図1は、この発明による多バスマスタ環境において、複数のレベル1キャッシ
ュが共用レベル2キャッシュに接続されている2レベルキャッシュシステムをブ
ロック図の形で示す。請求の範囲
1.第1のバスマスタ(10)、第2のバスマスタ(15)、前記第1のバスマ
スタに接続された第1のレベル1キャッシュ(20)、前記第2のバスマスタに
接続された第2のレベル1キャッシュ(25)、前記第1のレベル1キャッシュ
および前記第2のレベル1キャッシュおよびメインメモリ(50)に接続された
共用レベル2キャッシュ(30)を備えた2レベルキャッシュシステムにおける
キャッシュスヌーピングオーバーヘッドを減じる方法であって、
前記共用レベル2キャッシュによって共用メモリバス(40)をモニタするス
テップを含み、前記共用メモリバスは前記共用レベル2キャッシュに接続されて
おり、前記方法はさらに、
前記共用レベル2キャッシュによって前記共用メモリバス上のメモリ読出アク
セスを検出するステップと、
前記メモリ読出アクセスに関連するタグ−アドレスを、前記共用レベル2キャ
ッシュの複数の記憶場所の各々に対するタグ−アドレスと比較するステップとを
含み、
もし比較の結果、前記共用レベル2キャッシュの複数の記憶場所の1つでタグ
−アドレスがヒットすれば、
前記共用レベル2キャッシュ内の前記1つの記憶場所についての内包フィール
ドをチェックし、前記第1および第2のレベル1キャッシュの少なくとも1つに
おいてタグ−アドレスヒットするかどうかを決定し、
前記第1および第2のレベル1キャッシュの前記少なくとも1つにおいてタグ
−アドレスヒットがあれば、無効化サイクルを実行し、前記タグ−アドレスヒッ
トに対応するデータは前記メインメモリに書込まれ、タグ−アドレスヒットを有
する前記第1および第2のレベル1キャッシュの前記少なくとも1つがこの時点
では前記メモリ読出アクセスに対応するタグ−アドレスを含んでいないことを示
すため、前記共用レベル2キャッシュによって前記1つの記憶場所に対する内包
フィールドを更新し、
もし比較の結果前記共用レベル2キャッシュ内の前記複数の記憶場所のいずれ
においてもタグ−アドレスヒットがなければ、さらなるメモリアクセスに対して
前記共用メモリバスをモニタする、2レベルキャッシュシステムにおけるキャッ
シュスヌーピングオーバーヘッドを減じる方法。
2.メモリシステムであって、
第1のバスマスタ(10)と、
第2のバスマスタ(15)と、
前記第1のバスマスタに接続された第1のレベル1キャッシュ(20)と、
前記第2のバスマスタに接続された第2のレベル1キャッシュ(25)と、
前記第1のレベル1キャッシュおよび前記第2のレベル1キャッシュおよびメ
インメモリ(50)に接続された共用レベル2キャッシュ(30)と、
前記共用レベル2キャッシュによって共用メモリバスをモニタするためのモニ
タ手段とを含み、前記共用メモリバスは前記共用レベル2キャッシュに接続され
、前記システムはさらに、
前記共用レベル2キャッシュによって前記共用メモリバス上のメモリ読出アク
セスを検出するための手段と、
前記メモリ読出アクセスに関連するタグ−アドレスを、前記共用レベル2キャ
ッシュの複数の記憶場所の各々のタグ−アドレスと比較するための手段と、
前記比較の結果前記共用レベル2キャッシュ内の複数の記憶場所の1つでタグ
−アドレスヒットがあれば、前記第1および第2のレベル1キャッシュの少なく
とも1つにおいてタグ−アドレスヒットがあるかどうかを決定するため、前記共
用レベル2キャッシュ内の前記1つの記憶場所に対する内包フィールドをチェッ
クするための手段と、
前記第1および第2のレベル1キャッシュの前記少なくとも1つでタグ−アド
レスヒットがあったときは、無効化サイクルを実行し、タグ−アドレスヒットを
有する前記第1および第2のレベル1キャッシュの前記少なくとも1つはこの時
点では前記メモリ読出アクセスに対応するタグ−アドレスを含んでいないことを
示すため、前記共用レベル2キャッシュによって前記1つの記憶場所に対する内
包フィールドを更新するための手段とを含み、前記タグ−アドレスヒットに対応
するデータは前記メインメモリに書込まれ、
前記モニタリング手段は、比較の結果前記共用レベル2キャッシュ内の前記複
数の記憶場所のいずれにおいてもタグ−アドレスヒットがなかった場合にはさら
なるメモリアクセスに対して前記共用メモリバスをモニタする、メモリシステム
。
─────────────────────────────────────────────────────
【要約の続き】
ったバスマスタとは異なった別のバスマスタに割当てら
れたレベル1キャッシュ内にもあるかどうかを、キャッ
シュヒットに対応する記憶場所に対する内包フィールド
から決定する。もし他のバスマスタにもこのタグ−アド
レスがあれば、共用レベル2キャッシュは他のバスマス
タに割当てられたレベル1キャッシュからこのデータを
得、このデータはレベル2キャッシュに読込まれる。次
にデータは共用レベル2キャッシュからメモリアクセス
を始めたバスマスタに割当てられたレベル1キャッシュ
に読込まれる。この情報はまた要求を行なったバスマス
タにも送られる。一旦この処理が完了すると、レベル2
キャッシュは共用レベル2キャッシュに動作可能に接続
された各レベル1キャッシュ内のタグ−アドレスを反映
するよう、その内包フィールドを更新する。
Claims (1)
- 【特許請求の範囲】 1.メモリシステムであって、 第1のバスマスタと、 前記第1のバスマスタに動作可能に接続され、複数の記憶場所を含む第1のレ ベル1キャッシュと、 第2のバスマスタと、 前記第2のバスマスタに動作可能に接続され、複数の記憶場所を含む、第2の レベル1キャッシュと、 前記第1のレベル1キャッシュ、前記第2のレベル1キャッシュ、およびメイ ンメモリに動作可能に接続され、複数の記憶場所を含む、レベル2キャッシュと を含み、前記複数の記憶場所の各々は、内包情報を記憶するための内包フィール ドを含み、前記内包情報は前記レベル2キャッシュ内に記憶されたタグ−アドレ スが前記第1のレベル1キャッシュおよび前記第2のレベル1キャッシュの1つ にも記憶されているか否かを示す、メモリシステム。 2.前記第1および前記第2のレベル1キャッシュ内の前記複数の記憶場所の各 々はさらに、データを記憶するためのデータフィールドと、前記データのタグ− アドレスを記憶するためのタグ−アドレスフィールドと、前記データのステータ スを記憶するためのステータスフィールドと、前記データが対応する第1および 第2のバスマスタによって更新されたかどうかの表示を記憶するためのデータ変 更フィールドとを含み、 前記レベル2キャッシュ内の前記複数の記憶場所の各々はさらに、データを記 憶するためのデータフィールドと、前記データのタグ−アドレスを記憶するため のタグ−アドレスフィールドと、前記データのステータスを記憶するためのステ ータスフィールドと、前記データが前記第1および第2のバスマスタの1つによ って更新されたか否かの表示を記憶するためのデータ変更フィールドとを含む、 請求項1に記載のメモリシステム。 3.前記共用メモリに接続された第3のバスマスタをさらに含み、前記第3のバ スマスタはデータを書込むためまたはデータを読出すために前記共用レベル2キ ャッシュを使用せず、前記共用レベル2キャッシュは前記共用メモリバス上のメ モリアクセスを検出するための手段を含み、前記共用レベル2キャッシュが前記 第3のバスマスタからのメモリアクセスを検出するときは、前記共用レベル2キ ャッシュは前記第3のバスマスタからの前記メモリアクセスに関連するメモリア ドレスが前記共用レベル2キャッシュの前記タグ−アドレスフィールド内の前記 タグ−アドレスのいずれかと一致するかどうかを決定し、もし前記共用レベル2 キャッシュ内の前記記憶場所の1つまたは2以上と一致すれば、前記共用レベル 2キャッシュは前記記憶場所の前記1つまたは2つ以上に対応する前記ステータ スフィールドを無効状態に設定する、請求項2に記載のメモリシステム。 4.i個のバスマスタを含む処理システムであって、ただしiは1よりも大きい 整数であり、前記i個のバスマスタの1つは前記1つのバスマスタの必要とする データを表わすアドレスを発生し、メインメモリに接続された共用メモリバスを 有し、前記メインメモリには前記i個のバスマスタがアクセスでき、2レベルキ ャッシュシステムを含み、前記2レベルキャッシュシステムは、 i番目のバスマスタと前記i番目のレベル1キャッシュに動作可能に接続され 、前記i番目のバスマスタからのメモリアクセスに応答して情報を供給するi番 目のレベル1キャッシュを含み、前記i番目のレベル1キャッシュは、データ、 前記データのタグ−アドレスバッファ、および前記データのステータスを記憶す るためのi番目の複数の記憶場所を含み、前記2レベルキャッシュシステムはさ らに、 前記i個のバスマスタと前記i個のレベル1キャッシュとに動作可能に接続さ れたレベル2キャッシュを含み、前記レベル2キャッシュは、データ、前記デー タのタグ−アドレス、前記データのステータス、および前記データの内包フィー ルドを記憶するための(i+1)番目の複数の記憶場所を含み、前記レベル2キ ャッシュは前記共用メモリバスによって前記メインメモリと動作可能に接続され 、前記内包フィールドは、前記内包フィールドに関連する前記タグ−アドレスが 前記レベル2キャッシュに接続された前記i個のレベル2キャッシュのいずれか にも記憶されているかどうかを示し、前記2レベルキャッシュシステムはさらに 、 前記i番目のバスマスタからのメモリアクセスを検出するための前記i番目の レベル1キャッシュのためのモニタ手段と、 前記i番目のレベル1キャッシュは、前記メモリアクセスにサービスできない ことを前記レベル2キャッシュに通知するための前記i番目のレベル1キャッシ ュ内のキャッシュミス通知手段と、 前記レベル2キャッシュ内の前記(i+1)番目の複数の記憶場所の1つの内 包フィールドを更新するための前記レベル2キャッシュ内の内包フィールド更新 手段とを含み、前記内包フィールドは前記レベル2キャッシュ内の前記(i+1 )番目の複数の記憶場所の1つに記憶されたタグ−アドレスが前記i番目のレベ ル1キャッシュの1つまたは2つ以上の中にも記憶されているかどうかを示す、 2レベルキャッシュシステム。 5.前記レベル2キャッシュは、前記低レベルキャッシュ手段および前記内包フ ィールド更新手段を実行するためのレベル2キャッシュコントローラをさらに含 み、前記レベルキャッシュコントローラは前記モニタ手段も実行する、請求項4 に記載の2レベルキャッシュシステム。 6.前記内包フィールド更新手段は、前記メインメモリから前記i個のレベル1 キャッシュのいずれかに書込まれたデータに基づいて、前記レベル2キャッシュ 内の前記記憶場所に対応する前記内包フィールドを更新する、請求項4に記載の 2レベルキャッシュシステム。 7.前記内包フィールド更新手段は、前記メインメモリから前記i個のレベル1 キャッシュのいずれかに書込まれたデータに基づいて前記レベル2キャッシュ内 の前記記憶場所に対応する前記内包フィールドを更新する、請求項5に記載の2 レベルキャッシュシステム。 8.前記レベル2キャッシュ内の前記記憶場所の1つに対応する前記内包フィー ルドは、前記レベル2キャッシュ内の前記記憶場所の前記1つ内に記憶された情 報が前記第1および前記第2のレベル1キャッシュ内にあるかどうかを示す2ビ ットのデータを含む、請求項1に記載のメモリシステム。 9.前記レベル2キャッシュ内の前記記憶場所の1つに対応する前記内包フィー ルドは、前記レベル2キャッシュ内の前記記憶場所の前記1つ内に記憶された情 報が前記i個のレベル1キャッシュ内にあるかどうかを示すiビットのデータを 含む、請求項4に記載の2レベルキャッシュシステム。 10.第1のバスマスタ、第2のバスマスタ、前記第1のバスマスタに接続され た第1のレベル1キャッシュ、前記第2のバスマスタに接続された第2のレベル 1キャッシュ、前記第1のレベル1キャッシュおよび前記第2のレベル1キャッ シュに接続された共用レベル2キャッシュおよびメインメモリを備える2レベル キャッシュシステムにおけるキャッシュスヌーピングオーバーヘッドを減じるた めの方法であって、前記方法は、 前記共用レベル2キャッシュによって共用メモリバスをモニタするステップと 、 前記共用レベル2キャッシュによって前記共用メモリバス上のメモリアクセス を検出するステップと、 前記共用レベル2キャッシュの複数の記憶場所の各々に対してのタグ−アドレ スと前記メモリアクセスを比較するステップと、 前記メモリアクセスが前記第1のレベル1キャッシュ内に記憶された前記タグ −アドレスの1つと一致したとき前記第1のレベル1キャッシュに通知するステ ップと、 前記メモリアクセスが前記第2のレベル1キャッシュ内に記憶された前記タグ −アドレスの1つと一致したとき前記第2のレベル1キャッシュに通知するステ ップと、 前記共用レベル2キャッシュ内の前記複数の記憶場所の各々について内包フィ ールドを更新するステップとを含み、前記内包フィールドは、前記共用レベル2 キャッシュ内の前記記憶場所のいずれかに現在記憶される情報が前記第1のレベ ル1キャッシュおよび前記第2のレベル1キャッシュのいずれかまたは両方にこ の時点で記憶されているかどうかを示す、キャッシュスヌーピングオーバーヘッ ドを減じるための方法。 11.前記第1のレベル1キャッシュが前記メモリアクセスの一致を通知された とき、前記第1のレベル1キャッシュ内に記憶された前記タグ−アドレスの前記 1つに対応するデータを前記メインメモリに書込むステップと、 前記第2のレベル1キャッシュが前記メモリアクセスの一致を通知されたとき 、前記第2のレベル1キャッシュ内に記憶された前記タグ−アドレスの前記1つ に対応するデータを前記メインメモリに書込むステップとをさらに含む、請求項 1 0に記載の方法。 12.複数のバスマスタ、複数のレベル1キャッシュ、ならびに内部データおよ びアドレスバスを通じて前記複数のレベル1キャッシュに、共用外部メモリバス を通じてメインメモリに動作可能に接続された1つのレベル2キャッシュを含む 2レベルキャッシュシステムにおけるキャッシュスヌーピングオーバーヘッドを 減じるための方法であって、前記方法は、 (A) 前記1つのバスマスタに割当てられ前記1つのバスマスタに動作可能に 接続された前記複数のレベル1キャッシュの1つによって、前記複数のバスマス タの1つからのメモリアクセス出力を検出するステップと、 (B) 前記メモリアクセスアドレスが前記レベル1キャッシュの前記1つ内に 記憶された前記タグ−アドレスのいずれかと一致するかどうかを決定するために 、前記メモリアクセスに対応するアドレスを前記レベル1キャッシュの前記1つ 内の複数の記憶場所の各々のタグ−アドレスと比較するステップと、 (C) 前記複数の記憶場所の前記1つに対応する前記タグ−アドレスが前記メ モリアクセスアドレスと一致したならば、前記レベル1キャッシュの前記1つ内 の前記複数の記憶場所の前記1つ内にある前記情報を送るステップと、 (D) 前記メモリアクセスアドレスが前記レベル1キャッシュの前記1つ内に 記憶された前記タグ−アドレスのいずれかと一致しなかったときには、前記レベ ル2キャッシュが前記メモリアクセスアドレスと一致するタグ−アドレスを含む かどうかを決定するために前記メモリアクセスアドレスを前記レベル2キャッシ ュ内の複数の記憶場所の各々のタグ−アドレスと比較するステップと、 (1) もし前記レベル2キャッシュが前記メモリアクセスアドレスと一致す るいかなるタグ−アドレスも含まなかった場合には、前記メモリアクセスアドレ スに対応する前記情報を前記共用メモリバスを通じて前記メインメモリから獲得 するステップと、 (2) もし前記レベル2キャッシュが前記メモリアクセスアドレスと一致す るタグ−アドレスを含んだ場合には、前記一致したタグ−アドレスが前記レベル 2キャッシュに接続された前記複数のレベル1キャッシュのいずれかにもあるか どうかを決定するために、中に前記一致したタグ−アドレスが記憶されている前 記レベル2キャッシュ内の前記複数の記憶場所の1つに対応する内包フィールド をチェックするステップと、 (a) 前記レベル2キャッシュ内の前記1つの記憶場所に対する前記内包 フィールドが、前記タグ−アドレスが前記レベル2キャッシュに接続された前記 複数のレベル1キャッシュのいずれにもないことを示したならば、 (1) 前記レベル1キャッシュの前記1つは前記一致したタグ−アドレ スに対応する前記情報を前記レベル2キャッシュから前記レベル1キャッシュの 前記1つ内の前記複数の記憶場所の利用可能な1つへコピーするステップと、 (2) 前記レベル1キャッシュの前記1つは前記レベル1キャッシュの 前記1つ内の前記複数の記憶場所の前記利用可能な1つ内にある前記情報を前記 バスマスタの前記1つに送るステップと、 (3) 前記レベル2キャッシュは前記レベル1キャッシュの前記1つは 前記一致したタグ−アドレスを含むことを示すため、前記一致したタグ−アドレ スが記憶されている前記レベル2キャッシュ内の前記複数の記憶場所の前記1つ に対応する前記内包フィールドを更新するステップと、 (b) もし前記レベル2キャッシュ内の前記1つの記憶場所に対する前記 内包フィールドが前記タグ−アドレスが前記レベル2キャッシュに接続された前 記複数のレベル1キャッシュの他方にあることを示したならば、 (1) 前記レベル1キャッシュの前記他方が前記一致したタグ−アドレ スに対応する前記情報を前記レベル2キャッシュに送るステップと、 (2) 前記レベル2キャッシュは前記一致したタグ−アドレスに対応す る前記情報を前記レベル1キャッシュの前記他方から検索し、前記情報を前記1 つのレベル2キャッシュ内の前記複数の記憶場所の利用可能な1つにコピーする ステップと、 (3) 前記レベル1キャッシュの前記1つは前記一致したタグ−アドレ スに対応する前記情報を前記レベル2キャッシュから前記レベル1キャッシュの 前記一つ内の前記複数の記憶場所の利用可能な1つにコピーするステップと、 (4) 前記レベル1キャッシュの前記1つは前記一致したタグ−アドレ スに対応する前記情報を前記バスマスタの前記1つに送るステップと、 (5) 前記レベル2キャッシュは前記レベル1キャッシュの前記1つは なかに前記一致したタグ−アドレスを記憶していることを示すため、前記レベル 2キャッシュ内の前記複数の記憶場所の前記1つに対応する前記内包フィールド を更新するステップとを含む、キャッシュスヌーピングオーバーヘッドを減じる ための方法。 13.(b)(6) 前記他のレベル1キャッシュは前記一致したタグ−アドレ スに対応する記憶場所に記憶された前記情報は無効であることを示すため、前記 一致したタグ−アドレスにステータスフラグを設定するステップをさらに含む、 請求項12に記載の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/462,985 | 1995-06-05 | ||
| US08/462,985 US5740400A (en) | 1995-06-05 | 1995-06-05 | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field |
| PCT/US1996/008592 WO1996039666A1 (en) | 1995-06-05 | 1996-06-04 | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11506852A true JPH11506852A (ja) | 1999-06-15 |
| JPH11506852A5 JPH11506852A5 (ja) | 2004-07-08 |
Family
ID=23838479
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9501132A Pending JPH11506852A (ja) | 1995-06-05 | 1996-06-04 | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5740400A (ja) |
| EP (1) | EP0834130A1 (ja) |
| JP (1) | JPH11506852A (ja) |
| WO (1) | WO1996039666A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7870340B2 (en) | 2002-05-06 | 2011-01-11 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
Families Citing this family (38)
| 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 |
| US5867675A (en) * | 1996-08-06 | 1999-02-02 | Compaq Computer Corp | Apparatus and method for combining data streams with programmable wait states |
| US5897656A (en) * | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
| US6115794A (en) * | 1997-04-14 | 2000-09-05 | International Business Machines Corporation | Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system |
| US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
| US6233665B1 (en) * | 1997-05-27 | 2001-05-15 | Unisys Corporation | Mapping shared DRAM address bits by accessing data memory in page mode cache status memory in word mode |
| US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
| US6496904B1 (en) * | 1999-05-05 | 2002-12-17 | Compaq Information Technologies Group, L.P. | Method and apparatus for efficient tracking of bus coherency by using a single coherency tag bank |
| US6591341B1 (en) * | 2000-03-31 | 2003-07-08 | Intel Corporation | Multilevel cache system and method having a merged tag array to store tags for multiple data arrays |
| EP1304620A1 (en) * | 2001-10-17 | 2003-04-23 | Texas Instruments Incorporated | Cache with selective write allocation |
| US20030115402A1 (en) * | 2001-11-16 | 2003-06-19 | Fredrik Dahlgren | Multiprocessor system |
| US7027064B2 (en) * | 2002-02-28 | 2006-04-11 | Sun Microsystems, Inc. | Active block write-back from SRAM cache to DRAM |
| US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
| US7366873B1 (en) | 2003-08-18 | 2008-04-29 | Cray, Inc. | Indirectly addressed vector load-operate-store method and apparatus |
| US7743223B2 (en) * | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
| US7503048B1 (en) | 2003-08-18 | 2009-03-10 | Cray Incorporated | Scheduling synchronization of programs running as streams on multiple processors |
| US7421565B1 (en) | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
| US7437521B1 (en) | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
| US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
| US7519771B1 (en) | 2003-08-18 | 2009-04-14 | Cray Inc. | System and method for processing memory instructions using a forced order queue |
| US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
| US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
| US7735088B1 (en) | 2003-08-18 | 2010-06-08 | Cray Inc. | Scheduling synchronization of programs running as streams on multiple processors |
| GB2422926B (en) * | 2005-02-04 | 2008-10-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for controlling access to memory |
| US7386682B2 (en) * | 2005-02-11 | 2008-06-10 | International Business Machines Corporation | Reducing number of rejected snoop requests by extending time to respond to snoop request |
| JP4189402B2 (ja) * | 2005-02-21 | 2008-12-03 | パナソニック株式会社 | キャッシュ回路 |
| TWI277877B (en) * | 2005-03-08 | 2007-04-01 | Via Tech Inc | Method and related apparatus for monitoring system bus |
| US7478769B1 (en) | 2005-03-09 | 2009-01-20 | Cray Inc. | Method and apparatus for cooling electronic components |
| JP4990505B2 (ja) * | 2005-04-04 | 2012-08-01 | 株式会社日立製作所 | 記憶制御装置及びストレージシステム |
| JP4297968B2 (ja) * | 2006-02-14 | 2009-07-15 | 富士通株式会社 | コヒーレンシ維持装置およびコヒーレンシ維持方法 |
| US20080104333A1 (en) * | 2006-10-31 | 2008-05-01 | Veazey Judson E | Tracking of higher-level cache contents in a lower-level cache |
| US8463470B2 (en) * | 2009-09-03 | 2013-06-11 | Johnson Outdoors Marine Electronics, Inc. | Shallow water highlight method and display systems |
| JP5440067B2 (ja) * | 2009-09-18 | 2014-03-12 | 富士通株式会社 | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 |
| US9418009B2 (en) * | 2013-12-27 | 2016-08-16 | Intel Corporation | Inclusive and non-inclusive tracking of local cache lines to avoid near memory reads on cache line memory writes into a two level system memory |
| US10102129B2 (en) | 2015-12-21 | 2018-10-16 | Intel Corporation | Minimizing snoop traffic locally and across cores on a chip multi-core fabric |
| US9983995B2 (en) * | 2016-04-18 | 2018-05-29 | Futurewei Technologies, Inc. | Delayed write through cache (DWTC) and method for operating the DWTC |
| US11301403B2 (en) | 2019-03-01 | 2022-04-12 | Micron Technology, Inc. | Command bus in memory |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
| US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
| US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
| US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
| 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 |
| CA2044689A1 (en) * | 1990-06-15 | 1991-12-16 | Roger E. Tipley | Multilevel inclusion in multilevel cache hierarchies |
| US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
| US5530832A (en) * | 1993-10-14 | 1996-06-25 | International Business Machines Corporation | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
| US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
| US5584013A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache |
-
1995
- 1995-06-05 US US08/462,985 patent/US5740400A/en not_active Expired - Lifetime
-
1996
- 1996-02-22 US US08/605,741 patent/US5796980A/en not_active Expired - Lifetime
- 1996-06-04 JP JP9501132A patent/JPH11506852A/ja active Pending
- 1996-06-04 EP EP96917076A patent/EP0834130A1/en not_active Ceased
- 1996-06-04 WO PCT/US1996/008592 patent/WO1996039666A1/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7870340B2 (en) | 2002-05-06 | 2011-01-11 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
Also Published As
| Publication number | Publication date |
|---|---|
| US5740400A (en) | 1998-04-14 |
| EP0834130A1 (en) | 1998-04-08 |
| US5796980A (en) | 1998-08-18 |
| WO1996039666A1 (en) | 1996-12-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5740400A (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field | |
| US5652859A (en) | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues | |
| US6366984B1 (en) | Write combining buffer that supports snoop request | |
| US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
| US6289420B1 (en) | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem | |
| US5996048A (en) | Inclusion vector architecture for a level two cache | |
| EP0434250B1 (en) | Apparatus and method for reducing interference in two-level cache memories | |
| US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
| JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
| EP0743601A2 (en) | A system and method for improving cache performance in a multiprocessing system | |
| EP0301354A2 (en) | Cache consistency protocol for multiprocessor system | |
| US5850534A (en) | Method and apparatus for reducing cache snooping overhead in a multilevel cache system | |
| JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
| KR20030097871A (ko) | 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템 | |
| KR19980079662A (ko) | Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법 | |
| KR19980079663A (ko) | Smp 버스의 최근 판독 상태에서의 캐시 라인들의 공유 개입 방법 | |
| US6560681B1 (en) | Split sparse directory for a distributed shared memory multiprocessor system | |
| US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
| US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
| US5987544A (en) | System interface protocol with optional module cache | |
| US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
| US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
| US7380068B2 (en) | System and method for contention-based cache performance optimization | |
| KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
| US6687795B2 (en) | Data processing system and method of communication that reduce latency of write transactions subject to retry |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060421 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060612 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060919 |