JP3202943B2 - 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法 - Google Patents

処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法

Info

Publication number
JP3202943B2
JP3202943B2 JP22411397A JP22411397A JP3202943B2 JP 3202943 B2 JP3202943 B2 JP 3202943B2 JP 22411397 A JP22411397 A JP 22411397A JP 22411397 A JP22411397 A JP 22411397A JP 3202943 B2 JP3202943 B2 JP 3202943B2
Authority
JP
Japan
Prior art keywords
data
cache
memory
modified copy
cache 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.)
Expired - Fee Related
Application number
JP22411397A
Other languages
English (en)
Other versions
JPH10105461A (ja
Inventor
フィリップ・アーナ・ミリング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10105461A publication Critical patent/JPH10105461A/ja
Application granted granted Critical
Publication of JP3202943B2 publication Critical patent/JP3202943B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してコンピュー
タ・システムに関し、より詳細には、L2(レベル2)
キャッシュ・メモリ装置をもち、組み込みのL2キャッ
シュ制御装置論理回路がないメモリ制御装置をもつコン
ピュータ・システムに関する。
【0002】
【従来の技術】現代のコンピュータ・システムの多く
は、処理装置及び主記憶装置を含む。一般に処理装置
は、主記憶装置よりも実質的に高速度で作動する。した
がって、処理装置が命令をデコードして実行する速度
は、命令を主記憶装置から処理装置に転送できる速度に
依存する。処理装置が記憶装置から命令を取得するのに
要する時間を減少させるために、多くのコンピュータ・
システムは、処理装置と主記憶装置との間にキャッシュ
・メモリを含む。
【0003】キャッシュ・メモリは、主記憶装置に比べ
て小容量ではあるが、より高速の記憶装置から成り、処
理装置に物理的にかなり接近させて配置される。キャッ
シュ・メモリは、主記憶装置にある内容のうち、処理装
置が近い将来使用する可能性のある部分を一時的に保持
するために使用される。これらの部分は、所定の時間内
に使用されなければ、廃棄される。しかしシステムは、
データを廃棄する前に、このデータが主記憶装置にある
データの唯一の最新コピーではないことを確かめる。こ
のデータは、唯一の最新コピーであれば、まず主記憶装
置にコピーされてから廃棄される。
【0004】通常ではキャッシュ・メモリは、1語また
は複数語のデータのブロックを多数格納する。データの
検索を容易にするために、データ・ブロックの個々には
アドレス・タグが付随しており、このアドレス・タグ
が、主記憶装置にあるコピー元のブロックを唯一のもの
として識別する。キャッシュ・メモリが高速であること
に加え、処理装置にきわめて近接しているために、キャ
ッシュ・メモリ内の情報は、主記憶装置内の情報よりも
高速にアクセスされる。このため処理装置が費やす時間
は、キャッシュ・メモリに格納された命令を待つ方が、
主記憶装置に格納された命令を待つよりもはるかに短
い。
【0005】処理装置は、キャッシュ・メモリを使用し
て主記憶装置からデータを取り出すほかに、データを主
記憶装置に直接に書き込む代わりにキャッシュ・メモリ
に書き込むこともできる。処理装置が記憶装置にデータ
を書き込みたいときには、キャッシュ・メモリはアドレ
ス・タグを照合して、データが書き込まれようとしてい
るデータ・ブロックが、キャッシュ・メモリにあるかど
うかを確かめる。このデータ・ブロックがキャッシュ・
メモリにあれば、このデータは、このキャッシュ・メモ
リ内のデータ・ブロックに書き込まれる。このデータ・
ブロックがキャッシュ・メモリになければ、このデータ
をキャッシュ・メモリに取り込んで更新する、あるいは
主記憶装置に直接に書き込むことができる。キャッシュ
・メモリに書き込まれたデータは、このデータの最新コ
ピーとなり、通常は変更キャッシュ・ラインと呼ばれ
る。
【0006】アプリケーションによっては、第2のルッ
クアサイド・キャッシュ・メモリ(すなわちL2(レベ
ル2)キャッシュ)がシステムに追加できる。通常では
第1のキャッシュ(すなわちL1(レベル1)キャッシ
ュ)は、処理装置に組み込まれており、一方L2キャッ
シュは、処理装置と主記憶装置との間でシステム・バス
に接続される。前に述べたようにL2キャッシュ・メモ
リは、主記憶装置にあるデータのサブセットをもつ。同
様にL1キャッシュ・メモリも、主記憶装置にあるデー
タのサブセットをもつ。さらに前述のように、データ
は、このデータを取り入れるデータ・ブロックがL1キ
ャッシュにあれば、L1キャッシュに書き込め、このデ
ータ・ブロックがL2キャッシュにあれば、L2キャッ
シュに書き込める。したがってL1キャッシュ・メモリ
とL2キャッシュ・メモリの双方が、同一データのそれ
ぞれ異なる変更コピーをもつことができる。
【0007】したがって、システムによってデータの最
新コピーが使用され、メモリのコヒーレンスを確保する
必要がある。必要なメモリ・コヒーレンスを保つ周知の
方法の1つは、スヌーピング・バス・プロトコルを実施
することである。この実施によりバス・インタフェー
ス、あるいはシステム内の他の装置が、キャッシュ・メ
モリ装置に現在格納されているデータ項目のアドレスを
含めて、システム・バスのバス活動を監視する。例えば
組み込みのキャッシュ制御装置論理回路をもつメモリ制
御装置は、タグ照合信号及び変更ライン信号を見て、デ
ータの最新コピーの存在場所を確かめることができる。
【0008】独立型統合L2キャッシュ・メモリ装置を
サポートするコンピュータ・システムは、組み込みのキ
ャッシュ制御装置論理回路があるメモリ制御装置をもた
ないことが多い。これらのシステムのメモリ制御装置
は、特定のデータを参照するメモリ・アドレスを照会、
あるいはスヌープして、そのデータの最新コピーの存在
場所を確かめる必要がある。既存技術では、L1キャッ
シュ・メモリ装置とL2キャッシュ・メモリ装置の双方
が、スヌープされている変更キャッシュ・ラインをもっ
ており、更に処理装置が、他の用途に使用されていてL
1キャッシュ・メモリ装置をチェックできず、スヌープ
されているラインが変更キャッシュ・ラインであるかど
うかを確かめられないときは、メモリ制御装置にデータ
の双方のコピーが転送された。最初のスヌープに応じて
L2キャッシュ内のコピーが転送され、2度目のスヌー
プに応じてL1キャッシュ内のコピーが転送された。L
1キャッシュにあるデータの変更コピーが、そのデータ
の最新コピーであるとみなされたので、L1キャッシュ
から転送されたコピーが常に使用され、L2キャッシュ
から転送されたデータは廃棄された。L2キャッシュの
みがデータの変更コピーをもっている場合でも、やはり
2度目のスヌープが開始されて、L1キャッシュが変更
キャッシュ・ラインをもっていないことが確かめられ
た。L1キャッシュとL2キャッシュの双方が変更ライ
ンをもっているときに、双方の装置にあるデータの変更
コピーを転送すること、また、L2キャッシュのみが変
更キャッシュ・ラインをもっているときに、アドレスを
2度スヌープすることも、コンピュータ・システムの性
能を低下させることになる。
【0009】
【発明が解決しようとする課題】したがって、L2キャ
ッシュのみにデータの変更コピーがあるときには、デー
タ・アドレスを1度だけスヌープし、L1キャッシュと
L2キャッシュの双方がデータの変更コピーをもってい
るときには、L1キャッシュにあるデータの変更コピー
のみを転送する、組み込みのL2制御装置論理回路がな
いメモリ制御装置の必要性が当分野にある。
【0010】
【課題を解決するための手段】本発明は、当分野におけ
るこの必要性に対処する。本発明は、L1キャッシュ・
メモリ装置、L2キャッシュ・メモリ装置、及び主記憶
装置間で、メモリのコヒーレンスを保つための方法及び
装置を提供する。本発明の1つの実施例では、メモリ制
御装置が、主記憶装置にあるデータの変更コピーの存在
場所を確かめるために、アドレス・スヌープを実行す
る。このスヌープの結果、メモリ制御装置は、それぞれ
のキャッシュ・メモリ装置にこのデータの変更コピーが
あるかどうかについて通知される。双方のキャッシュ・
メモリ装置がデータの変更コピーをもっているときに
は、L1キャッシュ・メモリにあるデータの変更コピー
が、常に最新コピーであるとみなされるので、L2キャ
ッシュにある変更コピーを転送させない。したがってこ
の場合に、処理装置が、他の用途に使用されていてL1
キャッシュ・メモリをチェックできず、L1キャッシュ
・メモリがデータの変更コピーをもっているかどうかを
確認できないときには、メモリ制御装置は、L1キャッ
シュ・メモリにあるデータの変更コピーが転送されるま
で、アドレスをスヌープし続ける。L2キャッシュ・メ
モリ装置のみがデータの変更コピーをもっているときに
は、このコピーがメモリ制御装置に転送される。メモリ
制御装置は、L1キャッシュ・メモリ装置がデータの変
更コピーをもっていないことがすでにわかっているの
で、アドレスを再度スヌープしない。このため、双方の
キャッシュ・メモリ装置がデータの変更コピーをもって
いるときには、メモリ制御装置に転送される変更データ
のコピーは、1つだけである。また、データの変更コピ
ーが1つのみ存在し、これがL2キャッシュ・メモリ装
置にあるときには、メモリ制御装置によって行われるス
ヌープは、1度だけである。
【0011】
【発明の実施の形態】図1は、本発明の好ましい実施例
で使用されるコンピュータ・システム100のブロック
図である。このコンピュータは、IBM社により市販さ
れているシステムRS/6000のようなワークステー
ションの形をとることができる。しかし、本発明をその
ように制限する意図はなく、本質的にいずれのコンピュ
ータにも等しく適用できる。
【0012】図1をさらに参照すると、このコンピュー
タは、L1キャッシュ120を組み込んだ中央処理装置
(CPU)110を含む。処理装置110は、バス18
0を介してメモリ制御装置150、及びL2キャッシュ
130に結合される。メモリ制御装置自身は主記憶装置
140、及び入出力(I/O)装置160、170に結
合される。入力装置にはキーボード、マウス、タブレッ
ト、あるいはその他の種類の入力装置を含むことがで
き、一方出力装置にはプリンタ、テキスト・モニタ、プ
ロッタ、あるいはその他周知の出力装置を含むことがで
きる。
【0013】データは、通常は主記憶装置140に格納
される。処理装置110がデータを処理する必要がある
とき、このデータは、主記憶装置140から取り出され
て処理装置110に提供される。同時にデータのコピー
も、処理装置110が後に使用するために、L1キャッ
シュ120及びL2キャッシュ130に転送される。前
に述べたように、双方のキャッシュにあるデータは、一
定時間が経過しても処理装置によって使用されないと、
廃棄される。この一定時間は、L1キャッシュに対して
は、L2キャッシュに対してよりも短い。データの処理
によってバージョンが更新されれば、この更新されたバ
ージョンが、データの旧コピーに代わってL1キャッシ
ュに格納される。データの更新されたバージョンは、処
理装置が使用しないためにL1キャッシュ120から廃
棄される前に、L2キャッシュ130に書き込まれる。
処理装置が、現在ではL2キャッシュ130のみにある
変更データを使用すると、データのコピーがL1キャッ
シュに転送される。このコピーは、処理装置110によ
って再度変更できる。したがってデータが処理装置によ
って再度変更されれば、L1キャッシュが、データの最
新コピーをもつことになる。このため、L1キャッシュ
とL2キャッシュの双方が、主記憶装置にある元のデー
タのそれぞれ異なる変更コピーをもつことになる。そこ
で、I/O装置の1つがこの特定データを必要とする場
合、メモリ制御装置は、このI/O装置にデータを提供
する前にデータ・アドレスをスヌープして、I/O装置
に提供されようとしているコピーが最新のコピーである
ことを確かめる。処理装置が、スヌープ時に他の用途に
使用されていてL1キャッシュ・メモリをチェックでき
ず、L1キャッシュ・メモリがデータの変更コピーをも
っているかどうかを判定できない場合には、L2キャッ
シュのみが、アドレスをチェックしてメモリ制御装置に
データを提供する。メモリ制御装置は、L1キャッシュ
がデータの変更コピーをもっていないことを確定できな
いので、アドレスを再度スヌープする必要がある。
【0014】メモリ制御装置150は、ローカル・バス
180上にアドレスを送ると同時に転送開始(TS)を
有効にする(assert)ことによって、アドレスを
スヌープする。スヌープ・プロトコルは、ローカル・バ
ス180上の個々の装置、この場合は処理装置110及
びL2キャッシュが、提示されたアドレスをチェックし
て、このアドレスが参照しているデータがキャッシュさ
れているかどうかを確かめることを要求する。データが
キャッシュされかつ変更されていれば、処理装置及び
(あるいは)L2キャッシュは、メモリ制御装置150
からアドレス確認(AACK)信号を検出した後の1ク
ロック期間まで、アドレス再試行(ARTRY)を有効
にする必要がある。さらにAACKが有効にされた後の
第2のクロック期間に、処理装置及び(あるいは)L2
キャッシュは、それぞれのバス要求(CPU_BR及び
(あるいは)L2_BR)を有効にする必要がある。L
2キャッシュ・メモリ装置にキャッシュされたデータが
変更されていなければ、L2キャッシュはL2_BRを
有効にしない。同様に、L1キャッシュ・メモリ装置に
キャッシュされたデータが変更されていなければ、処理
装置はCPU_BRを有効にしない。
【0015】図2は、既存技術で行われるメモリ制御装
置によるアドレス・スヌープ中における種々の信号、及
びそれらの状態を表す詳細図である。キャッシュした変
更データをL2キャッシュがもっており、一方L1キャ
ッシュがもっていない場合には、以下のことが起こる。
メモリ制御装置は、クロック期間1にTS信号を有効に
し、さらにアドレス(A)をバスにロードすることによ
って、アドレス100をスヌープする。次にメモリ制御
装置は、クロック期間2にAACK信号を有効にして、
アドレス・フェーズの終了を示す。L2キャッシュは、
クロック期間3にARTRYを有効にすることによっ
て、そのアドレスに変更ラインをもっていることを示
す。処理装置は、そのアドレスに変更ラインをもってい
ないので、ARTRY信号を駆動しないことに留意され
たい。L2キャッシュは、クロック期間4にL2_BR
信号を有効にすることによって、バスを要求する。バス
は、クロック期間5にL2キャッシュに付与され、さら
にL2キャッシュは、クロック期間6にTSを有効にす
る。メモリ制御装置は、クロック期間7から10までの
間TA信号を駆動して、データを受信する。さらにメモ
リ制御装置は、処理装置がARTRY信号を有効にした
かどうか、また、処理装置のスヌープ・ポートが使用中
であったかが確定できないので、クロック期間11にア
ドレスを再度スヌープする。クロック期間13にART
RYが有効にされないので、メモリ制御装置は、それ以
上のスヌープは必要ないことを知る。
【0016】L1キャッシュとL2キャッシュの双方
が、変更キャッシュ・データをもっており、処理装置
が、他の用途に使用されていてキャッシュ・チェックを
現在実行できない場合には、以下のことが起こる。メモ
リ制御装置は、クロック期間1にアドレス100をスヌ
ープする。次にメモリ制御装置は、クロック期間2にA
ACK信号を有効にすることによって、アドレス・フェ
ーズの終了を示す。処理装置とL2キャッシュの双方
が、クロック期間3にアドレス再試行(ARTRY)を
有効にする。L2キャッシュは、クロック期間4にL2
_BR信号を有効にすることによって、バスを要求す
る。バスは、クロック期間5にL2キャッシュに付与さ
れる。L2キャッシュは、クロック期間6にTSを有効
にし、さらにアドレス100をバスに送ることによっ
て、自身にキャッシュされた変更データを書き戻せるこ
とを示す。メモリ制御装置は、クロック期間7から10
まで転送確認(TA)信号を駆動して、データを受信す
る。さらにメモリ制御装置は、L2キャッシュ・メモリ
装置だけによってARTRY信号が有効にされたかどう
かがわからないので、クロック期間11にアドレスを再
度スヌープする。クロック期間12からトランザクショ
ンの終了までの各信号の行動は、図示されていない。し
かし、以下のことが起こる。メモリ制御装置は、クロッ
ク期間12にAACK信号を駆動して、アドレス・フェ
ーズの終了を示す。処理装置は、クロック期間13にA
RTRY信号を送信し、さらにクロック期間14にCP
U_BR信号を有効にすることによって、バスを要求す
る。メモリ制御装置は、クロック期間15にCPU_B
G信号を駆動することによって、処理装置にバスを付与
する。さらにメモリ制御装置がクロック期間17から2
0までTA信号を有効にすると、データが転送される。
【0017】したがって処理装置が、メモリ制御装置に
よるアドレス・スヌープ時に他の用途に使用されていて
L1キャッシュをチェックできず、L1キャッシュとL
2キャッシュの双方が、そのアドレスに変更キャッシュ
・ラインをもっているときには、少なくとも2度のスヌ
ープ、及び2度のキャッシュ書き戻しが実施される。L
2キャッシュのみに変更データがあるときには、少なく
とも2度のスヌープが実施される。しかし本発明を使用
すれば、L1キャッシュとL2キャッシュの双方がスヌ
ープされたアドレスに変更ラインをもっており、処理装
置がスヌープ時に他の用途に使用されていてL1キャッ
シュをチェックできないときには、キャッシュ書き戻し
は1度だけ実施される。また、L2キャッシュのみが変
更ラインをもっているときには、スヌープは1度だけ実
施される。
【0018】本発明の実施には、L2_hit信号を使
用して、スヌープされたアドレスにL2キャッシュが変
更ラインをもっていることを示し、ARTRY信号を使
用して、L1キャッシュ内の変更データの存在を表示す
る。したがって、L2_hit信号とARTRY信号の
双方が有効にされるときは、L1キャッシュとL2キャ
ッシュの双方が、スヌープされるアドレスに変更データ
をもっていることを示す。次のクロック期間にCPU_
BR信号が有効にされなければ、メモリ制御装置は、処
理装置が他の用途に使用されていてL1キャッシュをチ
ェックできず、したがってデータの変更コピーを提供で
きないことがわかる。しかしL1キャッシュ内のデータ
の変更コピーが最新のコピーであるとみなされるので、
L2キャッシュは自身の変更データを提供する必要がな
い。このためにメモリ制御装置は、L1キャッシュ内の
変更データを提供するためにアドレスを再度スヌープす
る必要があるが、キャッシュ書き戻しは1度だけ実施さ
れる。
【0019】L2_hit信号が有効にされ、一方AR
TRY信号が有効にされないときは、L2キャッシュの
みがスヌープされたアドレスに変更データをもっている
ことを示す。このためにメモリ制御装置は、L2キャッ
シュから変更データを受け取った後に、アドレスを再度
スヌープする必要はない。
【0020】図3は、本発明で行われるメモリ制御装置
によるアドレス・スヌープ中における種々の信号、及び
それらの状態を表す詳細図である。スヌープされるアド
レスにL2キャッシュが変更データをもっており、一方
L1キャッシュがこれをもっていないときには、以下の
ことが起こる。メモリ制御装置は、クロック期間1にア
ドレス100をスヌープする。L2キャッシュは、クロ
ック期間2にアドレス100にデータの変更コピーがあ
るかどうかをチェックして判定する。さらにL2キャッ
シュは、クロック期間3にL2_hitを有効にして、
データの変更コピーがあることを示す。L1キャッシュ
は、そのアドレスにデータの変更コピーをもっていない
ので、この時点でARTRYは有効にされない。L2キ
ャッシュは、変更コピーを提供するために、クロック期
間4にL2_BRを有効にして、バスを要求する。メモ
リ制御装置は、クロック期間5にバスをL2キャッシュ
に付与し、さらにL2キャッシュは、クロック期間6に
TSを有効にする。メモリ制御装置は、クロック期間7
から10までTAを駆動して、L2キャッシュからデー
タを受け取る。メモリ制御装置は、スヌープされたアド
レスにL1キャッシュが変更データをもっていないこと
がわかっているので、アドレスを再度スヌープしない。
【0021】したがって本発明では、L2キャッシュの
みがデータの変更コピーをもっているときに、L1キャ
ッシュにもデータの変更コピーがあるかどうかを確かめ
るためにさらにスヌープする必要を取り除くことによっ
て、スヌーピング・プロセスの速度が、少なくとも3ク
ロック期間分向上する。さらに本発明では、L1キャッ
シュとL2キャッシュの双方がデータの変更コピーをも
っており、スヌープ時に処理装置が他の用途に使用され
ていてL1キャッシュをチェックできないときに、デー
タのコピーは1つだけ転送が許されるので、時間がさら
に節約できる。さらにまた、メモリ制御装置が、アドレ
スを有効レベルに駆動してからTSを有効にするために
さらに1クロックを必要とするシステムでは、本発明に
より時間がさらにいっそう節約できる。
【0022】特定の実施例を使って本発明を前記で詳し
く説明してきたが、他の代替の実施例があることは、当
分野に通常の知識をもつ当業者には明白であろう。例え
ば本発明は、本明細書の説明から離れることなく、マル
チプロセッサ・システムにも使用できる。したがって前
述の説明は、文頭で述べた特許請求の範囲によって明確
にされている本発明の範囲を制限するものではない。
【0023】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0024】(1)主記憶装置に存在するデータの変更
コピーの存在場所を確かめることによって、第1のルッ
クアサイド・キャッシュ・メモリ、第2のルックアサイ
ド・キャッシュ・メモリ、及び前記主記憶装置間で、メ
モリのコヒーレンスを保つためのメモリ制御装置であっ
て、前記データの前記変更コピーの存在場所を確かめる
ために、第1のアドレス・スヌープを発生させるための
手段と、前記第1のルックアサイド・キャッシュ・メモ
リに前記データの変更コピーが存在するか否かを表示す
る第1の信号を、前記第1のアドレス・スヌープの結果
として受信するための手段と、前記第2のルックアサイ
ド・キャッシュ・メモリに前記データの変更コピーが存
在するか否かを表示する、前記第1の信号とは異なる第
2の信号を、前記第1のアドレス・スヌープの結果とし
て受信するための手段と、を含むメモリ制御装置。 (2)前記第1のルックアサイド・キャッシュ・メモリ
内の前記データの前記変更コピーが現在転送可能である
か否かを表示する第3の信号を、前記第1のアドレス・
スヌープの結果として受信するための手段をさらに含
む、(1)に記載のメモリ制御装置。 (3)前記第1のルックアサイド・キャッシュ・メモリ
内の前記データの前記変更コピーが現在転送不可能であ
ることが表示される場合に、前記第2のルックアサイド
・キャッシュ・メモリ内の前記データの前記変更コピー
の転送が許されない、(2)に記載のメモリ制御装置。 (4)前記第1のルックアサイド・キャッシュ・メモリ
が、前記主記憶装置に存在する前記データの変更コピー
を保持していないことが表示され、さらに前記第2のル
ックアサイド・キャッシュ・メモリが、前記データの変
更コピーを保持していることが表示される場合に、前記
第2のルックアサイド・キャッシュ・メモリ内の前記デ
ータの前記変更コピーの転送が許される、(3)に記載
のメモリ制御装置。 (5)前記第1のルックアサイド・キャッシュ・メモリ
内の前記データの前記変更コピーが現在転送不可能であ
ることが表示される場合に、第2のアドレス・スヌープ
を発生させるための手段をさらに含む、(4)に記載の
メモリ制御装置。 (6)主記憶装置に存在するデータの変更コピーの存在
場所を確かめることによって、第1のルックアサイド・
キャッシュ・メモリ、第2のルックアサイド・キャッシ
ュ・メモリ、及び前記主記憶装置間で、メモリのコヒー
レンスを保つ方法であって、前記データの前記変更コピ
ーの存在場所を確かめるために、第1のアドレス・スヌ
ープを発生させるステップと、前記第1のルックアサイ
ド・キャッシュ・メモリに前記データの変更コピーが存
在するか否かを表示する第1の信号を、前記第1のアド
レス・スヌープの結果として受信するステップと、前記
第2のルックアサイド・キャッシュ・メモリに前記デー
タの変更コピーが存在するか否かを表示する、前記第1
の信号とは異なる第2の信号を、前記第1のアドレス・
スヌープの結果として受信するステップと、を含む方
法。 (7)前記第1のルックアサイド・キャッシュ・メモリ
内の前記データの前記変更コピーが現在転送可能である
か否かを表示する第3の信号を、前記第1のアドレス・
スヌープの結果として受信するステップをさらに含む、
(6)に記載の方法。 (8)前記第1のルックアサイド・キャッシュ・メモリ
内の前記データの前記変更コピーが現在転送不可能であ
ることが表示される場合に、前記第2のルックアサイド
・キャッシュ・メモリ内の前記データの前記変更コピー
の転送が許されない、(7)に記載の方法。 (9)前記データの変更コピーが前記第1のルックアサ
イド・キャッシュ・メモリに存在しないことが表示され
る場合に、前記第2のルックアサイド・キャッシュ・メ
モリ内の前記データの前記変更コピーの転送が許され
る、(8)に記載の方法。 (10)前記第1のルックアサイド・キャッシュ・メモ
リ内の前記データの前記変更コピーが現在転送不可能で
あることが表示される場合に、第2のアドレス・スヌー
プを発生させるステップをさらに含む、(9)に記載の
方法。 (11)コンピュータ・システムであって、データを処
理するための処理装置と、データを格納し、さらに前記
処理装置にデータを提供するための第1のルックアサイ
ド・キャッシュ・メモリ装置、第2のルックアサイド・
キャッシュ・メモリ装置、及び主記憶装置と、前記主記
憶装置に存在するデータの変更コピーの存在場所を確か
めることによって、メモリのコヒーレンスを保つための
メモリ制御装置と、を含み、前記メモリ制御装置が、前
記データの前記変更コピーの存在場所を確かめるため
に、第1のアドレス・スヌープを発生させるための手段
と、前記第1のルックアサイド・キャッシュ・メモリに
前記データの変更コピーが存在するか否かを表示する第
1の信号を、前記第1のアドレス・スヌープの結果とし
て受信するための手段と、前記第2のルックアサイド・
キャッシュ・メモリに前記データの変更コピーが存在す
るか否かを表示する、前記第1の信号とは異なる第2の
信号を、前記第1のアドレス・スヌープの結果として受
信するための手段と、を有する、コンピュータ・システ
ム。 (12)前記メモリ制御装置が、前記第1のルックアサ
イド・キャッシュ・メモリ内の前記変更コピーが現在転
送可能であるか否かを表示する第3の信号を、前記第1
のアドレス・スヌープの結果として受信するための手段
をさらに含む、(11)に記載のコンピュータ・システ
ム。 (13)前記第1のルックアサイド・キャッシュ・メモ
リ内の前記データの前記変更コピーが現在転送不可能で
あることが表示される場合に、前記第2のルックアサイ
ド・キャッシュ・メモリ内の前記データの前記変更コピ
ーの転送が許されない、(12)に記載のコンピュータ
・システム。 (14)前記第1のルックアサイド・キャッシュ・メモ
リが前記データの変更コピーを保持していないことが表
示される場合に、前記第2のルックアサイド・キャッシ
ュ・メモリ内の前記データの前記変更コピーの転送が許
される、(13)に記載のコンピュータ・システム。 (15)前記第1のルックアサイド・キャッシュ・メモ
リ内の前記データの前記変更コピーが現在転送不可能で
あることが表示される場合に、前記メモリ制御装置が、
第2のアドレス・スヌープを発生させるための手段をさ
らに含む、(14)に記載のコンピュータ・システム。
【図面の簡単な説明】
【図1】本発明の好ましい実施例で使用されるコンピュ
ータ・システムのブロック図である。
【図2】既存技術で行われるメモリ制御装置によるアド
レス・スヌープ中における種々の信号、及びそれらの状
態を表す詳細図である。
【図3】本発明で行われるメモリ制御装置によるアドレ
ス・スヌープ中における種々の信号、及びそれらの状態
を表す詳細図である。
【符号の説明】
120 L1キャッシュ・メモリ装置 130 L2キャッシュ・メモリ装置 180 システム・バス
フロントページの続き (56)参考文献 特開 平8−110874(JP,A) 特開 平4−233048(JP,A) 特開 平4−138539(JP,A) 特開 平5−127992(JP,A) 特開 平4−49445(JP,A) 米国特許5581727(US,A) 米国特許5596731(US,A) 国際公開96/42056(WO,A2) Micheal T.Peters" Cache strategies f or microprocessor− based systems”COMP UTER DESIGN Vol.35, No.13(1996.12)p38,40,42 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶装置に存在するデータの変更コピー
    の存在場所を確かめることによって、第1のルックアサ
    イド・キャッシュ・メモリ、第2のルックアサイド・キ
    ャッシュ・メモリ、及び前記主記憶装置間で、メモリの
    コヒーレンスを保つためのメモリ制御装置であって、 前記データの前記変更コピーの存在場所を確かめるため
    に、第1のアドレス・スヌープを発生させるための手段
    と、 前記第1のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する第1の
    信号を、前記第1のアドレス・スヌープの結果として受
    信するための手段と、 前記第2のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する、前記
    第1の信号とは異なる第2の信号を、前記第1のアドレ
    ス・スヌープの結果として受信するための手段と、を含
    むメモリ制御装置。
  2. 【請求項2】前記第1のルックアサイド・キャッシュ・
    メモリ内の前記データの前記変更コピーが現在転送可能
    であるか否かを表示する第3の信号を、前記第1のアド
    レス・スヌープの結果として受信するための手段をさら
    に含む、請求項1に記載のメモリ制御装置。
  3. 【請求項3】前記第1のルックアサイド・キャッシュ・
    メモリ内の前記データの前記変更コピーが現在転送不可
    能であることが表示される場合に、前記第2のルックア
    サイド・キャッシュ・メモリ内の前記データの前記変更
    コピーの転送が許されない、請求項2に記載のメモリ制
    御装置。
  4. 【請求項4】前記第1のルックアサイド・キャッシュ・
    メモリが、前記主記憶装置に存在する前記データの変更
    コピーを保持していないことが表示され、さらに前記第
    2のルックアサイド・キャッシュ・メモリが、前記デー
    タの変更コピーを保持していることが表示される場合
    に、前記第2のルックアサイド・キャッシュ・メモリ内
    の前記データの前記変更コピーの転送が許される、請求
    項3に記載のメモリ制御装置。
  5. 【請求項5】前記第1のルックアサイド・キャッシュ・
    メモリ内の前記データの前記変更コピーが現在転送不可
    能であることが表示される場合に、第2のアドレス・ス
    ヌープを発生させるための手段をさらに含む、請求項4
    に記載のメモリ制御装置。
  6. 【請求項6】主記憶装置に存在するデータの変更コピー
    の存在場所を確かめることによって、第1のルックアサ
    イド・キャッシュ・メモリ、第2のルックアサイド・キ
    ャッシュ・メモリ、及び前記主記憶装置間で、メモリの
    コヒーレンスを保つ方法であって、 前記データの前記変更コピーの存在場所を確かめるため
    に、第1のアドレス・スヌープを発生させるステップ
    と、 前記第1のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する第1の
    信号を、前記第1のアドレス・スヌープの結果として受
    信するステップと、 前記第2のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する、前記
    第1の信号とは異なる第2の信号を、前記第1のアドレ
    ス・スヌープの結果として受信するステップと、を含む
    方法。
  7. 【請求項7】前記第1のルックアサイド・キャッシュ・
    メモリ内の前記データの前記変更コピーが現在転送可能
    であるか否かを表示する第3の信号を、前記第1のアド
    レス・スヌープの結果として受信するステップをさらに
    含む、請求項6に記載の方法。
  8. 【請求項8】前記第1のルックアサイド・キャッシュ・
    メモリ内の前記データの前記変更コピーが現在転送不可
    能であることが表示される場合に、前記第2のルックア
    サイド・キャッシュ・メモリ内の前記データの前記変更
    コピーの転送が許されない、請求項7に記載の方法。
  9. 【請求項9】前記データの変更コピーが前記第1のルッ
    クアサイド・キャッシュ・メモリに存在しないことが表
    示される場合に、前記第2のルックアサイド・キャッシ
    ュ・メモリ内の前記データの前記変更コピーの転送が許
    される、請求項8に記載の方法。
  10. 【請求項10】前記第1のルックアサイド・キャッシュ
    ・メモリ内の前記データの前記変更コピーが現在転送不
    可能であることが表示される場合に、第2のアドレス・
    スヌープを発生させるステップをさらに含む、請求項9
    に記載の方法。
  11. 【請求項11】コンピュータ・システムであって、 データを処理するための処理装置と、 データを格納し、さらに前記処理装置にデータを提供す
    るための第1のルックアサイド・キャッシュ・メモリ装
    置、第2のルックアサイド・キャッシュ・メモリ装置、
    及び主記憶装置と、 前記主記憶装置に存在するデータの変更コピーの存在場
    所を確かめることによって、メモリのコヒーレンスを保
    つためのメモリ制御装置と、を含み、 前記メモリ制御装置が、 前記データの前記変更コピーの存在場所を確かめるため
    に、第1のアドレス・スヌープを発生させるための手段
    と、 前記第1のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する第1の
    信号を、前記第1のアドレス・スヌープの結果として受
    信するための手段と、 前記第2のルックアサイド・キャッシュ・メモリに前記
    データの変更コピーが存在するか否かを表示する、前記
    第1の信号とは異なる第2の信号を、前記第1のアドレ
    ス・スヌープの結果として受信するための手段と、を有
    する、コンピュータ・システム。
  12. 【請求項12】前記メモリ制御装置が、前記第1のルッ
    クアサイド・キャッシュ・メモリ内の前記変更コピーが
    現在転送可能であるか否かを表示する第3の信号を、前
    記第1のアドレス・スヌープの結果として受信するため
    の手段をさらに含む、請求項11に記載のコンピュータ
    ・システム。
  13. 【請求項13】前記第1のルックアサイド・キャッシュ
    ・メモリ内の前記データの前記変更コピーが現在転送不
    可能であることが表示される場合に、前記第2のルック
    アサイド・キャッシュ・メモリ内の前記データの前記変
    更コピーの転送が許されない、請求項12に記載のコン
    ピュータ・システム。
  14. 【請求項14】前記第1のルックアサイド・キャッシュ
    ・メモリが前記データの変更コピーを保持していないこ
    とが表示される場合に、前記第2のルックアサイド・キ
    ャッシュ・メモリ内の前記データの前記変更コピーの転
    送が許される、請求項13に記載のコンピュータ・シス
    テム。
  15. 【請求項15】前記第1のルックアサイド・キャッシュ
    ・メモリ内の前記データの前記変更コピーが現在転送不
    可能であることが表示される場合に、前記メモリ制御装
    置が、第2のアドレス・スヌープを発生させるための手
    段をさらに含む、請求項14に記載のコンピュータ・シ
    ステム。
JP22411397A 1996-08-26 1997-08-20 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法 Expired - Fee Related JP3202943B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/703323 1996-08-26
US08/703,323 US5875469A (en) 1996-08-26 1996-08-26 Apparatus and method of snooping processors and look-aside caches

Publications (2)

Publication Number Publication Date
JPH10105461A JPH10105461A (ja) 1998-04-24
JP3202943B2 true JP3202943B2 (ja) 2001-08-27

Family

ID=24824945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22411397A Expired - Fee Related JP3202943B2 (ja) 1996-08-26 1997-08-20 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法

Country Status (2)

Country Link
US (2) US5875469A (ja)
JP (1) JP3202943B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US6108753A (en) * 1998-03-31 2000-08-22 International Business Machines Corporation Cache error retry technique
CN1302419C (zh) * 2001-09-21 2007-02-28 泛伺服公司 用于具有共享存储器的多节点环境的系统和方法
GB0419693D0 (en) * 2004-09-06 2004-10-06 Givaudan Sa Anti-bacterial compounds
WO2006063347A2 (en) * 2004-12-10 2006-06-15 Saebo, Inc. Dynamic hand splints
EP1914632B1 (en) * 2005-08-09 2012-06-27 Fujitsu Ltd. Schedule control program and schedule control method
US7752474B2 (en) * 2006-09-22 2010-07-06 Apple Inc. L1 cache flush when processor is entering low power mode
US8069459B2 (en) * 2007-12-28 2011-11-29 Bce Inc. Method, apparatus and computer-readable medium for promoting television programs

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation 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
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5249782A (en) * 1991-12-06 1993-10-05 Tokai Rubber Industries, Ltd. Elastic mount and method of manufacturing the elastic mount
US5359723A (en) * 1991-12-16 1994-10-25 Intel Corporation Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5345576A (en) * 1991-12-31 1994-09-06 Intel Corporation Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss
DE69319763T2 (de) * 1992-03-04 1999-03-11 Motorola Inc Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
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
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5761725A (en) * 1994-01-31 1998-06-02 Dell Usa, L.P. Cache-based computer system employing a peripheral bus interface unit with cache write-back suppression and processor-peripheral communication suppression for data coherency
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor
US5561779A (en) * 1994-05-04 1996-10-01 Compaq Computer Corporation Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5553265A (en) * 1994-10-21 1996-09-03 International Business Machines Corporation Methods and system for merging data during cache checking and write-back cycles for memory reads and writes
MX9706592A (es) * 1995-03-17 1997-11-29 Intel Corp Protocolo de coherencia para multiprocesamiento cache en un conducto local.
US5813035A (en) * 1996-02-23 1998-09-22 Advanced Micro Devices, Inc. Microprocessor employing a technique for restoration of an aborted cycle following a snoop writeback operation
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Micheal T.Peters"Cache strategies for microprocessor−based systems"COMPUTER DESIGN Vol.35,No.13(1996.12)p38,40,42

Also Published As

Publication number Publication date
JPH10105461A (ja) 1998-04-24
US5875469A (en) 1999-02-23
US6021474A (en) 2000-02-01

Similar Documents

Publication Publication Date Title
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US7100001B2 (en) Methods and apparatus for cache intervention
US7062613B2 (en) Methods and apparatus for cache intervention
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5909699A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
US20030140200A1 (en) Methods and apparatus for transferring cache block ownership
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US20030115423A1 (en) Cache states for multiprocessor cache coherency protocols
JP2982868B2 (ja) メモリ待ち時間を短縮する方法およびコンピュータ・システム
US7287126B2 (en) Methods and apparatus for maintaining cache coherency
JP3714617B2 (ja) キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
JPH0247756A (ja) 多重プロセツサ・システム用書込み共用キヤツシユ回路
KR19980079662A (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
KR19980079663A (ko) Smp 버스의 최근 판독 상태에서의 캐시 라인들의 공유 개입 방법
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US5920891A (en) Architecture and method for controlling a cache memory
US6807608B2 (en) Multiprocessor environment supporting variable-sized coherency transactions
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
JP2571670B2 (ja) メモリ・コヒーレンシィ保持システム及びその方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees