JP2002073415A - 遅延無効化コンピュータキャッシュシステム - Google Patents

遅延無効化コンピュータキャッシュシステム

Info

Publication number
JP2002073415A
JP2002073415A JP2001211630A JP2001211630A JP2002073415A JP 2002073415 A JP2002073415 A JP 2002073415A JP 2001211630 A JP2001211630 A JP 2001211630A JP 2001211630 A JP2001211630 A JP 2001211630A JP 2002073415 A JP2002073415 A JP 2002073415A
Authority
JP
Japan
Prior art keywords
cache
level
line
transaction
address
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.)
Withdrawn
Application number
JP2001211630A
Other languages
English (en)
Other versions
JP2002073415A5 (ja
Inventor
D Gaiser Brain
ブレイン・ディー・ガイザー
W Hereru Rass
ラス・ダブリュー・ヘレル
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002073415A publication Critical patent/JP2002073415A/ja
Publication of JP2002073415A5 publication Critical patent/JP2002073415A5/ja
Withdrawn 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】複数レベルのキャッシュのコヒーレンシーを維
持するに当たってのオーバーヘッドを低減する。 【構成・作用】下位側のキャッシュL3が上位側のキャ
ッシュL1,L2ラインを無効化することが必要になっ
たとき、そのラインアドレスを一時的にリストやスタッ
クにセーブし、上位側のキャッシュがアイドル状態にな
ったとき、無効化の動作を始める。これにより、キャッ
シュ無効化を行うに当たってのキャッシュへのアクセス
の遅延を防ぐ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にコンピュータ
システムに関し、特にキャッシュメモリシステムにおけ
るコヒーレンシープロトコル及び包含(inclusion)に関
する。
【0002】
【従来技術及びその問題点】大部分のコンピュータシス
テムは、多重レベル階層のメモリシステムを採用してい
る。階層の最上位レベル(プロセッサに最も近いレベ
ル)では、比較的高速かつ高価であり容量が限られたメ
モリを備え、階層の最下位レベル(典型的には相対的に
プロセッサから遠いレベル)では、比較的低速かつ廉価
な大容量のメモリを備えている。この階層は典型的に
は、高速化するために、プロセッサ集積回路内に物理的
に一体化されるか、あるいは物理的にプロセッサの近く
に搭載されるキャッシュと呼ばれる小容量の高速メモリ
を有している。別個の命令キャッシュとデータキャッシ
ュを設けることもある。また、キャッシュを多重レベル
としたものも存在する。
【0003】キャッシュとその次の下位レベルのメモリ
階層との間で転送することが可能な最小記憶量は、ライ
ン、ブロック、またはページと呼ばれる。本明細書では
「ライン」という用語を用いるが、本発明はブロックま
たはページを用いたシステムにも等しく適用可能であ
る。
【0004】大部分の多重レベルキャッシュでは、各キ
ャッシュレベルが、階層中で上位側にあるレベル(プロ
セッサに近い側のレベル)のあらゆるキャッシュ内にあ
る記憶のあらゆるラインのコピーを有する。この特性は
包含と呼ばれる。例えば、包含2レベルキャッシュシス
テムでは、一次キャッシュ内のあらゆるエントリは、二
次キャッシュ内にも存在する。典型的には、上位レベル
のキャッシュからあるラインが追い出された場合、その
ラインは下位レベルのキャッシュ内に残留することが可
能である。逆に、下位レベルのキャッシュからあるライ
ンが追い出された場合には、コヒーレンシーを保つため
に、下位レベルのキャッシュは後退無効化(back-inval
idate)トランザクションと呼ばれるバストランザクシ
ョンを発行して、上位側のレベルのキャッシュ階層か
ら、追い出されたラインのあらゆるコピーをフラッシュ
(flush)、つまり消去しなければならない。各後退無効
化命令により、階層内の上位側のレベルのあらゆるキャ
ッシュがアドレスに対応する項目のコピーを無効化する
と共に、そのような項目が修正されている場合には、項
目の修正されたコピーを下位側のレベルのキャッシュに
提供する。上述の後退無効化トランザクションは頻繁に
発生し、全体的な性能に多大な影響を与える。これは、
キャッシュ間でのバスの使用が増大し、またバス監視
(スヌープ)トラフィックが増大するからである。
【0005】多くのコンピュータシステムは、多重レベ
ルのキャッシュを各々有する複数のプロセッサを採用し
ている。すべてのプロセッサ及びキャッシュは共通のメ
インメモリを共有することがある。ある特定のライン
は、共有メモリと複数のプロセッサのキャッシュ階層と
に同時に存在し得る。キャッシュ中のラインのコピーは
全て同一でなければならない。この特性をコヒーレンシ
ーという。共有メモリ中のラインのコピーは「古い(sta
le)」(更新されていない)可能性がある。何れかのプ
ロセッサがラインの内容を変更した場合には、変更され
たコピーのみが有効となり、それ以外のコピーはすべて
更新されるかまたは無効化されなければならない。複数
のプロセッサ間でのコヒーレンシーを維持するプロトコ
ルはキャッシュコヒーレンスプロトコルと呼ばれる。い
くつかのプロトコルでは、物理メモリのラインの状態を
ディレクトリと呼ばれる1つのロケーションに維持す
る。別のあるプロトコルでは、物理メモリのラインのコ
ピーを有するあらゆるキャッシュがそのラインの共有状
態のコピーを有する。状態が中央管理されていない場合
には、すべてのキャッシュモニタは、共有バスを監視つ
まり「スヌープ」して、バス上で要求されたラインのコ
ピーを自分が持っているな否かを判定する。本明細書は
あらゆる多重レベルキャッシュシステムに関するもので
あるが、特に、各プロセッサが階層構造のキャッシュを
有するマルチプロセッサシステムであって、スヌープベ
ースのシステム(スヌープ動作を行うシステム)であ
り、そのキャッシュのすべてがメインメモリを共有す
る、マルチプロセッサシステムに関するものである。
【0006】スヌープベースのシステムでは、キャッシ
ュシステムはバス上のトランザクションを監視する。ト
ランザクションのうちのあるものは、項目がキャッシュ
システムの上位側のレベルから追い出されたことを示
す。しかし、別のトランザクションでは、項目がキャッ
シュシステムの上位側のレベルから追い出されたことを
「暗示」するだけで、下位側のキャッシュはその項目が
上位側のレベルでまだ保持されていないかどうかが完全
に確実には分からないものがある。例えば、システムに
よっては、キャッシュ階層の上位レベルでは包含を実施
しないものがある。システムが上位キャッシュレベルで
包含を行っていない場合、第3レベルのキャッシュは、
項目が第2レベルのキャッシュから追い出されたが、そ
の項目のコピーが第1レベルのキャッシュに存在してい
るか否かは分からない、という事態に直面するかもしれ
ない。1つの考えられる解決策は、下位レベルのキャッ
シュが(不必要かもしれない)後退無効化トランザクシ
ョンを即座に発行するというものである。後退無効化ト
ランザクションは他のバスのアクティビティを中断する
ことがあるので、このトランザクションはパフォーマン
スを劣化させることがある。別の考えられる解決策は、
下位レベルのキャッシュが暗示を無視するというもので
ある。別のキャッシュが後にそのラインを要求すると、
下位レベルキャッシュが、この後の要求の際に直ちに後
退無効化トランザクションを発行するというものである
が、これは後の要求に対して遅延時間を増加させる。即
座に無効化トランザクションを要求することなしで、無
効化の必要性を検出することができるコンピュータキャ
ッシュシステムが必要とされている。
【0007】
【概要】下位レベルのキャッシュが無効化する必要があ
るかもしれないアドレスを記憶し、バスがアイドル状態
になるのを待って、後退無効化トランザクションを発行
する。項目が上位キャッシュレベルで無効化されたこと
を下位レベルで確実に分かる場合、パフォーマンスを向
上する機会が存在する。下位キャッシュはその項目をあ
る状態(変更済みだが未キャッシュされていない、また
はMuと呼ぶ)にする。Mu状態にある項目は、その項
目が下位レベルキャッシュから追い出されたときに後退
無効化トランザクションは必要ない。これは、いくつか
の後退無効化トランザクションの必要性をなくすこと
で、パフォーマンスを向上させる。したがって、項目が
上位レベルから追い出されたか否かを知ることは、パフ
ォーマンスの向上に当たって有用であるが、必要なこと
ではない。本発明によれば、下位レベルキャッシュは、
キャッシュ階層の1つの上位レベルから最近追い出され
たが、他のいずれの上位レベルキャッシュももはや保持
していないとは完全に確実には分からない項目のアドレ
スを含むリストまたはスタックを備える。アイドルバス
サイクル中、下位レベルキャッシュは、リスト内のアド
レスに対して後退無効化トランザクションを発行し、他
のバスアクティビティを中断せずに対応する項目をMu
状態にできるようにする。後退無効化コマンドを完了す
ると、アドレスがリストから除去される。リストまたは
スタックが溢れるつまり満杯になることも許容される。
すなわち、リストが満杯になったら、それ以降のエント
リを拒絶しても、または新たなエントリを古いエントリ
と置換してもよい。その唯一の影響は、下位レベルキャ
ッシュにおけるいくつかの項目がMu状態にならず、後
に後退無効化コマンドを不適当なときに発行しなければ
ならないことである。このようにして得られるキャッシ
ュシステムは、あるレベルで追い出された項目がキャッ
シュ階層内の上位レベルになお保持されているか否かに
ついて完全な確実性を必要とせずに、Mu状態を利用す
ることができる。
【0008】
【発明の実施の形態】図1は、本発明を適用するのに適
したキャッシュ階層を有するコンピュータシステムの一
例を示す。図1のシステムは、2つのプロセッサ(10
0、102)を備える。第1のプロセッサ(100)は
2レベルの内部キャッシュ(104、106)及び外部
キャッシュ114を有する。第2のプロセッサ102は
2レベルの内部キャッシュ(108、110)及び外部
キャッシュ116を有する。2つのプロセッサは外部シ
ステムメモリ118を共有する。内部及び外部キャッシ
ュの変形、及びバス構成の変形を伴う、本発明を適用す
るのに適したコンピュータシステムの変形が多く存在す
る。本発明は多重レベルのキャッシュメモリを有するあ
らゆるシステムに適用可能である。コンピュータシステ
ムによっては、下位レベルキャッシュの代わりにディレ
クトリを使用するものもある。ディレクトリは、共有シ
ステムメモリすべてについてのタグの集合である。本発
明の目的において、ディレクトリはキャッシュ(極めて
大規模になり得る)であり、本発明はディレクトリにも
等しく適用可能である。図1を具体的に参照すると、下
位レベルキャッシュ114はリスト(またはスタック)
120を含み、下位レベルキャッシュ116はリスト
(またはスタック)122を含む。これらについてはよ
り詳細に後述する。
【0009】図2は、本発明を適用するのに適したキャ
ッシュコヒーレンシープロトコルの一例を示す。図2に
おいて、いくつかの状態遷移線を図1のキャッシュ11
4及び116と一致するL3キャッシュに関するアクシ
ョンであるとラベル付けされている。しかし、このプロ
トコルは、プロセッサに隣接する最高レベルを除き、任
意のレベルのキャッシュに適用可能である。図2は、キ
ャッシュ内の各ライン毎に5つの考えられ得る状態を示
す。ラインがキャッシュ内に置かれる前は、すべてのエ
ントリが「無効(Invalid)」(206)と呼ばれるデフ
ォルト状態にある。キャッシュされていない物理ライン
がキャッシュ中に置かれると、キャッシュ中のエントリ
の状態が無効から「排他(Exclusive)」(202)に変
わる。「排他」という用語は、ちょうど1つのキャッシ
ュ階層が当該ラインのコピーを有することを意味する。
第1のプロセッサのキャッシュ階層でラインが排他状態
にあり、第2のプロセッサがそれと同じラインを要求し
た場合、そのラインは2つのキャッシュ階層中にコピー
を持ち、各キャッシュのエントリの状態は「共有(Share
d)」(204)に設定される。キャッシュ内でラインが
変更された場合には、共有メモリ中の同じラインを直ち
に変更することができる(これはライトスルーと呼ばれ
る)。このようにする代わりに、キャッシュ中の変更さ
れたラインが無効化または置換された場合にのみ、キャ
ッシュが、変更されたラインを共有メモリに書き込んで
もよい(これはライトバックと呼ばれる)。図2は、キ
ャッシュがライトバックキャッシュであることを想定し
たものであり、したがって、キャッシュ中のラインが変
更された場合には、キャッシュ中のエントリの状態は
「変更(Modified)」(200)に変更される。これらの
4つの状態を使用するプロトコルは、これらの状態の各
々の頭文字を表すMESIプロトコルと呼ばれることも
ある。
【0010】図2におけるプロトコルは、本発明に特に
関連する5番目の状態(変更されているがキャッシュさ
れていない、つまりMu)(208)を有する。「キャ
ッシュされていない」という用語は、項目が階層中の上
位レベルにキャッシュされていないことを意味する。あ
るラインがMu状態にあり、そのラインが追い出された
場合、後退無効化トランザクションは生成されない。例
えば、図1のシステムにおいて、キャッシュ114内の
あるラインがMu状態であり、そのラインがキャッシュ
106から追い出された場合、キャッシュ114はキャ
ッシュ104からラインを追い出すためのトランザクシ
ョンを発行する必要がない。これは、キャッシュ10
4、106、1008、及び110がそのラインのコピ
ーを有していないことが分かっているからである。
【0011】図2に示すプロトコルにおいて、下位レベ
ルキャッシュが同一階層内の上位レベルキャッシュから
のライトバックトランザクションを検出すると、上位レ
ベルキャッシュから追い出されたラインの状態が、下位
レベルキャッシュにおいてM(200)からMu(20
8)に変わる。例えば、図1において、プロセッサ0
(100)のキャッシュL2(106)があるラインを
追い出したと想定する。するとL2は、下位レベルのキ
ャッシュ(L3)(114)または共有メモリ(11
8)に対するライトバックを行う。キャッシュL3(1
14)はライトバックトランザクション及びそれに対応
するタグまたはアドレスを検出し、L3(114)中の
対応するエントリの状態をMu(図2、208)に切り
替える。Mu(208)状態を有するラインが読み出さ
れると、その状態はM(200)に切り替えられる。例
えば、図1において、キャッシュ114内のラインが状
態Mu(208)にあり、プロセッサ0(100)がそ
のラインを読み出すと、キャッシュ114内のそのライ
ンの状態はM(200)に切り替えられる。
【0012】図2のシステムにおいて、下位側のレベル
のキャッシュは、ライトバックトランザクションを使用
して、変更されたラインが上位レベルのキャッシュから
追い出された時点を知る。システムが、上位レベルのキ
ャッシュからクリーン(変更されていない)ラインが追
い出されたことを示すトランザクションやその他のヒン
ト(例えば追い出しが行われたという明示的なヒントや
クリーン追い出しトランザクション)を提供する場合に
は、共有されているがキャッシュされていない状態(Sh
ared-uncached、Su)、及び排他的だがキャッシュさ
れていない状態(Exclusive-uncached、Eu)を表す更
に別の状態を追加することができる。適切なヒントが与
えられる場合、本発明はSu及びEu状態にも同じよう
に適用できる。
【0013】図2に示すキャッシュコヒーレンシープロ
トコルで追加されているMu状態(208)は、周知の
MESIプロトコルを凌ぐパフォーマンスの向上を提供
する。これは、ラインがキャッシュの上位レベルからす
でに追い出されていることが確実に分かる場合に、後退
無効化トランザクションの数を減らすからである。しか
し、上述したように、トランザクションによっては、ラ
インがキャッシュの上位レベルから追い出されたが、そ
のラインが実際にはどこかのレベルに保持されていると
いう例外があることを「暗示」するものがある。こうい
ったトランザクションは、次のようなジレンマを生じさ
せる。このようなラインをMu状態にすることができる
ならば下位レベルのキャッシュから追い出されたときに
は後退無効化トランザクションは必要ないが、そのライ
ンをMu状態にすることができることを確認するには後
退無効化トランザクションが必要である、ということで
ある。本発明による解決策は、バスがアイドルになるま
で後退無効化トランザクションを遅らせることである。
図1において、下位レベルキャッシュ114はリスト、
スタック、または他の記憶装置120を備え、下位レベ
ルキャッシュ116はリスト、スタック、または他の記
憶装置122を備える。ラインが上位レベルキャッシュ
(104、106、108、110)から追い出された
かもしれないことを暗示するバス(112、113)上
のトランザクションを下位レベルキャッシュ(114、
116)が検出すると、下位レベルキャッシュはそのラ
インのアドレスをリスト(120、122)に入れる。
下位レベルキャッシュは、バス(112、113)上の
アクティビティを監視し、バスがアイドルになると、リ
スト(120、122)からアドレスを選択し、そのア
ドレスに対して後退無効化トランザクションを開始す
る。次いでそのアドレスをリスト(120、122)か
ら除去し、下位レベルキャッシュにおけるアドレスの状
態をMuに変更する。無効化すべきアドレスのための記
憶装置を追加することで、システムは、キャッシュの上
位レベルでの包含が確実に行われることを必要とせず
に、Mu状態の利益を享受できる。
【0014】上述のリストは、先入れ先出しバッファ、
プッシュダウン式後入れ先出しスタック、またはランダ
ムアクセスメモリ中の単純なリストとして実現すること
ができる。リスト中のアドレスがその中での配置と同じ
順序で検索されるか否かは問題ではない。リストが満杯
つまりオーバーフローしているどうかは問題ではない。
すなわち、リストが満杯になると、新しいエントリによ
り先のエントリを追い出すか、または新しいエントリを
拒絶することができる。満杯つまりオーバーフローの唯
一の影響としては、下位レベルキャッシュ内のいくつか
の項目が変更済みまたは共有状態に留まり、Mu状態に
ならず、その結果、後で後退無効化コマンドを不適切な
ときに発行する必要があるかもしれないということであ
る。
【0015】図3A及び図3Bは、本発明による方法を
示すフローチャートである。以下にこれらのフローチャ
ート中の各ブロックの動作を示す。 300:追い出しヒントが検出されたか? 302:アドレスをリストに保存する 304:バスはアイドル状態か? 306:リストは空か? 308:リストの項目について後退無効化トランザクシ
ョンを開始する 310:無効化の完了時にアドレスをリストから除去す
る 312:無効化の完了時に状態をMuに変更する 図3Aにおいて、ステップ300で、ラインが明らかに
上位レベルキャッシュから追い出されたか否かを下位レ
ベルキャッシュが検出する。追い出しが検出されると、
ステップ302において、追い出されたラインのアドレ
スがリストまたはスタックに配置される。ステップ30
0及びステップ302は、アイドル状態が検出されるま
で、何度でも繰り返すことができる。
【0016】図3Bにおいて、ステップ304で、下位
レベルキャッシュは、バスがアイドル状態か否かを検出
する。バスがアイドルであり、かつリストが空ではない
場合(ステップ306)、ステップ308において、下
位レベルキャッシュがリスト中のアドレスに対して後退
無効化トランザクションを開始する。ステップ310に
おいて、後退無効化トランザクションを完了した上で、
下位レベルキャッシュはリストから前述のラインを除去
する。ステップ312において、後退無効化トランザク
ションが完了した上で、下位レベルキャッシュがアドレ
スの状態を変更済み未キャッシュ(Mu)状態(上位レ
ベルキャッシュにはキャッシュされていない)に変更す
る。
【0017】以下に本発明の実施態様の例を列挙する。
【0018】〔実施態様1〕以下の(a)から(c)を設けた
キャッシュシステム: (a) 第1のキャッシュ(104、106、108、11
0); (b) 前記第1のキャッシュ(104、106、108、
110)に対してキャッシュ階層内でより下位のレベル
にある第2のキャッシュ(114、116); (c) 前記第2のキャッシュ(114、116)に関連
し、前記第1のキャッシュ(104、106、108、
110)から追い出された項目のアドレスを含むメモリ
(120、122)。
【0019】〔実施態様2〕以下のステップ(a)から(d)
を設け、データ記憶システムのコヒーレンシーを保つた
めの方法: (a) エントリが上位レベルのキャッシュから追い出され
たことを、第2のキャッシュ(114、116)により
検出する(300); (b) 前記上位レベルのキャッシュから追い出されたエン
トリのアドレスを、前記第2のキャッシュ(114、1
16)により記憶する(302); (c) バス(112、113)がアイドルであることを、
前記第2のキャッシュ(114、116)により検出す
る(304); (d) 前記上位レベルのキャッシュに前記アドレスを無効
化するように命令するトランザクションを、前記第2の
キャッシュ(114、116)により開始する(30
8)。
【0020】〔実施態様3〕前記トランザクションを開
始した後、前記第2のキャッシュ(114、116)に
より、前記アドレスを記憶装置から除去するステップ
(310)を設けたことを特徴とする実施態様2記載の
方法。
【0021】〔実施態様4〕前記トランザクションを開
始した後に、前記第2のキャッシュ(114、116)
により、前記アドレスに対応する前記第2のキャッシュ
(114、116)内のエントリの第1の状態(20
0、202)を、上位レベルのキャッシュにキャッシュ
されていないエントリを示す第2の状態(208)に切
り替えるステップ(312)を設けたことを特徴とする
実施態様2記載の方法。
【0022】本発明の以上の説明は、本発明の例示及び
例示を目的として提示したものである。これをもって本
発明を網羅したものとすること、または本開示の厳密な
形態に本発明を限定することは意図しておらず、上記教
示に照らして他の変形例及び修正例を実施することがで
きる。上記実施形態は、本発明の原理及びその実際の用
途を最も良好に説明するために選択し説明したものであ
り、これにより、当業者が、意図する特定の用途に適し
た様々な実施形態及び変形形態で本発明を最良に利用す
ることが可能となるようにしたものである。特許請求の
範囲は、従来技術により制限されない限り本発明の他の
代替実施形態も含むものであると解釈されるべきことが
意図される。
【図面の簡単な説明】
【図1】本発明によるリストを含むコンピュータシステ
ム例のブロック図である。
【図2】本発明を適用するのに適したキャッシュコヒー
レンシープロトコルの状態図である。
【図3A】本発明による方法のフローチャートである。
【図3B】本発明による方法のフローチャートである。
【符号の説明】
104、106、108、110:第1のキャッシュ 114、116:第2のキャッシュ 120、122:メモリ 200、202:第1の状態 208:第2の状態 300:エントリを検出するステップ 302:アドレスを記憶するステップ 304:バスがアイドルであることを検出するステップ 308:トランザクションを開始するステップ 310:アドレスを記憶装置から除去するステップ 312:状態を切り替えるステップ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/16 645 G06F 15/16 645 15/177 682 15/177 682J (72)発明者 ラス・ダブリュー・ヘレル アメリカ合衆国コロラド州フォートコリン ズ リッジウッド・コート 417 Fターム(参考) 5B005 JJ01 KK14 MM05 MM25 NN45 PP05 PP21 PP26 UU32 5B045 DD12

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】以下の(a)から(c)を設けたキャッシュシス
    テム: (a) 第1のキャッシュ(104、106、108、11
    0); (b) 前記第1のキャッシュ(104、106、108、
    110)に対してキャッシュ階層内でより下位のレベル
    にある第2のキャッシュ(114、116); (c) 前記第2のキャッシュ(114、116)に関連
    し、前記第1のキャッシュ(104、106、108、
    110)から追い出された項目のアドレスを含むメモリ
    (120、122)。
  2. 【請求項2】以下のステップ(a)から(d)を設け、データ
    記憶システムのコヒーレンシーを保つための方法: (a) エントリが上位レベルのキャッシュから追い出され
    たことを、第2のキャッシュ(114、116)により
    検出する(300); (b) 前記上位レベルのキャッシュから追い出されたエン
    トリのアドレスを、前記第2のキャッシュ(114、1
    16)により記憶する(302); (c) バス(112、113)がアイドルであることを、
    前記第2のキャッシュ(114、116)により検出す
    る(304); (d) 前記上位レベルのキャッシュに前記アドレスを無効
    化するように命令するトランザクションを、前記第2の
    キャッシュ(114、116)により開始する(30
    8)。
  3. 【請求項3】前記トランザクションを開始した後、前記
    第2のキャッシュ(114、116)により、前記アド
    レスを記憶装置から除去するステップ(310)を設け
    たことを特徴とする請求項2記載の方法。
  4. 【請求項4】前記トランザクションを開始した後に、前
    記第2のキャッシュ(114、116)により、前記ア
    ドレスに対応する前記第2のキャッシュ(114、11
    6)内のエントリの第1の状態(200、202)を、
    上位レベルのキャッシュにキャッシュされていないエン
    トリを示す第2の状態(208)に切り替えるステップ
    (312)を設けたことを特徴とする請求項2記載の方
    法。
JP2001211630A 2000-07-31 2001-07-12 遅延無効化コンピュータキャッシュシステム Withdrawn JP2002073415A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US629128 1996-04-08
US09/629,128 US6574710B1 (en) 2000-07-31 2000-07-31 Computer cache system with deferred invalidation

Publications (2)

Publication Number Publication Date
JP2002073415A true JP2002073415A (ja) 2002-03-12
JP2002073415A5 JP2002073415A5 (ja) 2005-06-30

Family

ID=24521694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001211630A Withdrawn JP2002073415A (ja) 2000-07-31 2001-07-12 遅延無効化コンピュータキャッシュシステム

Country Status (2)

Country Link
US (1) US6574710B1 (ja)
JP (1) JP2002073415A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP2007200292A (ja) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> エントリの時間経過によるキャッシュ・エントリの所有権喪失
KR100858527B1 (ko) 2007-04-18 2008-09-12 삼성전자주식회사 시간적 인접성 정보를 이용한 캐쉬 메모리 시스템 및데이터 저장 방법
JP2009295156A (ja) * 2008-05-30 2009-12-17 Intel Corp インバリデーショントランザクションのスヌープフィルタからの削除
JP6249120B1 (ja) * 2017-03-27 2017-12-20 日本電気株式会社 プロセッサ
JP2019530112A (ja) * 2016-09-06 2019-10-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 遅延キャッシュの利用のためのシステム及び方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US6704844B2 (en) * 2001-10-16 2004-03-09 International Business Machines Corporation Dynamic hardware and software performance optimizations for super-coherent SMP systems
US7100001B2 (en) * 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7711901B2 (en) * 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
US7373466B1 (en) * 2004-04-07 2008-05-13 Advanced Micro Devices, Inc. Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US20070186045A1 (en) * 2004-07-23 2007-08-09 Shannon Christopher J Cache eviction technique for inclusive cache systems
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US20070124543A1 (en) * 2005-11-28 2007-05-31 Sudhir Dhawan Apparatus, system, and method for externally invalidating an uncertain cache line
US20080120469A1 (en) * 2006-11-22 2008-05-22 International Business Machines Corporation Systems and Arrangements for Cache Management
US8176255B2 (en) * 2007-10-19 2012-05-08 Hewlett-Packard Development Company, L.P. Allocating space in dedicated cache ways
US8200903B2 (en) * 2008-02-14 2012-06-12 Hewlett-Packard Development Company, L.P. Computer cache system with stratified replacement
US20110320720A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache Line Replacement In A Symmetric Multiprocessing Computer
WO2018042144A1 (en) * 2016-09-01 2018-03-08 Arm Limited Cache retention data management
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US11687459B2 (en) * 2021-04-14 2023-06-27 Hewlett Packard Enterprise Development Lp Application of a default shared state cache coherency protocol

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
US6049847A (en) * 1996-09-16 2000-04-11 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6134634A (en) * 1996-12-20 2000-10-17 Texas Instruments Incorporated Method and apparatus for preemptive cache write-back
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US6078992A (en) * 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US6360301B1 (en) * 1999-04-13 2002-03-19 Hewlett-Packard Company Coherency protocol for computer cache
US6477635B1 (en) * 1999-11-08 2002-11-05 International Business Machines Corporation Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007505407A (ja) * 2003-09-12 2007-03-08 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP4660479B2 (ja) * 2003-09-12 2011-03-30 インテル コーポレイション マルチインタフェースキャッシュにおけるジョイントコヒーレンシ状態のための方法及び装置
JP2007200292A (ja) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> エントリの時間経過によるキャッシュ・エントリの所有権喪失
KR100858527B1 (ko) 2007-04-18 2008-09-12 삼성전자주식회사 시간적 인접성 정보를 이용한 캐쉬 메모리 시스템 및데이터 저장 방법
US8793437B2 (en) 2007-04-18 2014-07-29 Samsung Electronics Co., Ltd. Cache memory system using temporal locality information and a data storage method
JP2009295156A (ja) * 2008-05-30 2009-12-17 Intel Corp インバリデーショントランザクションのスヌープフィルタからの削除
JP2019530112A (ja) * 2016-09-06 2019-10-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 遅延キャッシュの利用のためのシステム及び方法
JP6249120B1 (ja) * 2017-03-27 2017-12-20 日本電気株式会社 プロセッサ
US10565111B2 (en) 2017-03-27 2020-02-18 Nec Corporation Processor

Also Published As

Publication number Publication date
US6574710B1 (en) 2003-06-03

Similar Documents

Publication Publication Date Title
JP2002073415A (ja) 遅延無効化コンピュータキャッシュシステム
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US6957304B2 (en) Runahead allocation protection (RAP)
TW548545B (en) Cache line pre-load and pre-own based on cache coherence speculation
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
US8171223B2 (en) Method and system to increase concurrency and control replication in a multi-core cache hierarchy
US7613885B2 (en) Cache coherency control method, chipset, and multi-processor system
US7698508B2 (en) System and method for reducing unnecessary cache operations
US8176255B2 (en) Allocating space in dedicated cache ways
US20060179174A1 (en) Method and system for preventing cache lines from being flushed until data stored therein is used
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JP2001256110A (ja) 共有キャッシュメモリを用いてシステム性能を向上させる方法および装置
US6748496B1 (en) Method and apparatus for providing cacheable data to a peripheral device
US20040059877A1 (en) Method and apparatus for implementing cache state as history of read/write shared data
US20060179175A1 (en) Method and system for cache utilization by limiting prefetch requests
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
JP2000322318A (ja) コンピュータキャッシュ用コヒーレンシープロトコル
JP4068185B2 (ja) コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択
US8473686B2 (en) Computer cache system with stratified replacement
JP2007533014A (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US7328310B2 (en) Method and system for cache utilization by limiting number of pending cache line requests
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
JP4742432B2 (ja) メモリシステム
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040922

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040922

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041015

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070129