JPH0628263A - データ・キャッシュのための制御器において最近に用いられたデータを更新する方法および装置 - Google Patents
データ・キャッシュのための制御器において最近に用いられたデータを更新する方法および装置Info
- Publication number
- JPH0628263A JPH0628263A JP4131375A JP13137592A JPH0628263A JP H0628263 A JPH0628263 A JP H0628263A JP 4131375 A JP4131375 A JP 4131375A JP 13137592 A JP13137592 A JP 13137592A JP H0628263 A JPH0628263 A JP H0628263A
- Authority
- JP
- Japan
- Prior art keywords
- way
- line
- tag
- pointer
- data
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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つのセクタがあるようなデー
タ・キャッシュのための制御器内のLRUポインタを更
新する方法と装置を得ることである。 【構成】 キャッシュ制御器tagramが2ウエイに
構成される。各ウエイはタグと、キャッシュ・アレイ・
アドレスのためのディレクトリを連想的にサーチするた
めの有効ビット記憶装置とを含む。右ウエイと左ウエイ
の2つの各ウエイがタグ・アドレスを記憶する。ウエイ
の1つに対するライン充填中に選択される2つのライン
がある。最初に用いられた(LRU)ポインタが、ライ
ン充填サイクルでどのウエイを充填するかを選択する。
LRUポインタが右ウエイを指すならば、右ヒット信号
に応じてライン充填に対して右ウエイが選択される。右
ウエイの右ラインが充填された時に、LRUポインタは
左ウエイを指すためにフリップされる。LRUポインタ
が左ウエイを指すならば、左ヒット信号に応じてライン
充填のために左ウエイが選択される。左ウエイの左ライ
ンが充填された時に、LRUポインタは右ウエイを指す
ためにフリップされる。
タ・キャッシュのための制御器内のLRUポインタを更
新する方法と装置を得ることである。 【構成】 キャッシュ制御器tagramが2ウエイに
構成される。各ウエイはタグと、キャッシュ・アレイ・
アドレスのためのディレクトリを連想的にサーチするた
めの有効ビット記憶装置とを含む。右ウエイと左ウエイ
の2つの各ウエイがタグ・アドレスを記憶する。ウエイ
の1つに対するライン充填中に選択される2つのライン
がある。最初に用いられた(LRU)ポインタが、ライ
ン充填サイクルでどのウエイを充填するかを選択する。
LRUポインタが右ウエイを指すならば、右ヒット信号
に応じてライン充填に対して右ウエイが選択される。右
ウエイの右ラインが充填された時に、LRUポインタは
左ウエイを指すためにフリップされる。LRUポインタ
が左ウエイを指すならば、左ヒット信号に応じてライン
充填のために左ウエイが選択される。左ウエイの左ライ
ンが充填された時に、LRUポインタは右ウエイを指す
ためにフリップされる。
Description
【0001】
【産業上の利用分野】本発明はデータ処理装置に関する
ものであり、更に詳しくいえば、データ・キャッシュの
ための制御器において最近に用いられた(LRU)(l
east recently used)データ・ポイ
ンタを更新する方法および装置に関するものである。
ものであり、更に詳しくいえば、データ・キャッシュの
ための制御器において最近に用いられた(LRU)(l
east recently used)データ・ポイ
ンタを更新する方法および装置に関するものである。
【0002】
【従来の技術】キャッシュは、大容量の、比較的低速の
主記憶装置(バッキング記憶装置)の頻繁にアクセスさ
れる記憶場所のためのローカル記憶装置(バッファ記憶
装置)を構成するために用いられる、比較的高速の小容
量ローカル記憶装置である。情報または情報の写をロー
カルに記憶することにより、キャッシュは、システム・
バスを介して主記憶装置へ要求を行うことなしに、メモ
リの参照を傍受して、それを直接取り扱うことができ
る。結果としてメモリ・バスのトラフィック量が減少
し、要求を行うプロセッサまでのCPUバスにおける待
ち時間が短くなる。1990年11月28日付の米国特
許出願SN07/618,708には、2つのウエイで
構成されるタグRAMを有するキャッシュ制御器が開示
されている。各ウエイはタグと、キャッシュ・データ・
アレイ・アドレスのためのディレクトリを連想的にサー
チするための有効ビット記憶装置とを含む。システム内
のいくつかの利用可能なメモリ・モジュールに対して両
方のウエイを同時に利用できるように外部キャッシュ・
メモリを編成することにより、ウエイのアクセス時間を
タグのルックアップと並列に生ずることができるように
する。1991年4月12日付の米国特許出願SN07
/684,180には、前記米国特許出願SN07/6
18,708の制御器において複雑なタイミング・サイ
クルを管理する方法と手段が開示されている。
主記憶装置(バッキング記憶装置)の頻繁にアクセスさ
れる記憶場所のためのローカル記憶装置(バッファ記憶
装置)を構成するために用いられる、比較的高速の小容
量ローカル記憶装置である。情報または情報の写をロー
カルに記憶することにより、キャッシュは、システム・
バスを介して主記憶装置へ要求を行うことなしに、メモ
リの参照を傍受して、それを直接取り扱うことができ
る。結果としてメモリ・バスのトラフィック量が減少
し、要求を行うプロセッサまでのCPUバスにおける待
ち時間が短くなる。1990年11月28日付の米国特
許出願SN07/618,708には、2つのウエイで
構成されるタグRAMを有するキャッシュ制御器が開示
されている。各ウエイはタグと、キャッシュ・データ・
アレイ・アドレスのためのディレクトリを連想的にサー
チするための有効ビット記憶装置とを含む。システム内
のいくつかの利用可能なメモリ・モジュールに対して両
方のウエイを同時に利用できるように外部キャッシュ・
メモリを編成することにより、ウエイのアクセス時間を
タグのルックアップと並列に生ずることができるように
する。1991年4月12日付の米国特許出願SN07
/684,180には、前記米国特許出願SN07/6
18,708の制御器において複雑なタイミング・サイ
クルを管理する方法と手段が開示されている。
【0003】バッファ/バッキング記憶装置の階層にお
いては、要求されているデータはより高速のバッファ記
憶装置には現在は存在しないことがあるから、データを
検索するためにはバッキング記憶装置に対してアクセス
せねばならない。新しいデータのためのスペースをバッ
ファ内に設ける必要があるから、バッファ内のある場所
におけるデータを新しいデータにより移動させねばなら
ない。そうすると新しいデータはバッファ内の選択され
た場所におけるデータに代わり、その場所を占めていた
データは移動させられる。これは今フェッチされたデー
タはおそらく再び必要とされるであろうという仮定によ
っている。どの場所を移動させるかの選択は、最近に、
すなわち最後に用いられた(MRU)(most re
cently used)データ、いいかえるとバッフ
ァに最後に加えられたデータ、はおそらく再び必要とさ
れるであろうから、保持せねばならないという仮定によ
ってなされる。これに反して、最初に用いられた(LR
U)データはおそらくもはや必要とされないので、バッ
ファから除去でき、もし再び必要になった時はバッキン
グ記憶装置からバックアップ・コピーをフェッチするこ
とができる。LRUポインタと呼ばれるポインタが、交
換されるために論理によって選択される次の場所を常に
指している。そのLRUポインタがどのようにして選択
されるかはシステムの効率に大きく影響し、与えられた
時間内にバッキング記憶装置に対して行わねばならない
アクセスの回数を増加または減少する。
いては、要求されているデータはより高速のバッファ記
憶装置には現在は存在しないことがあるから、データを
検索するためにはバッキング記憶装置に対してアクセス
せねばならない。新しいデータのためのスペースをバッ
ファ内に設ける必要があるから、バッファ内のある場所
におけるデータを新しいデータにより移動させねばなら
ない。そうすると新しいデータはバッファ内の選択され
た場所におけるデータに代わり、その場所を占めていた
データは移動させられる。これは今フェッチされたデー
タはおそらく再び必要とされるであろうという仮定によ
っている。どの場所を移動させるかの選択は、最近に、
すなわち最後に用いられた(MRU)(most re
cently used)データ、いいかえるとバッフ
ァに最後に加えられたデータ、はおそらく再び必要とさ
れるであろうから、保持せねばならないという仮定によ
ってなされる。これに反して、最初に用いられた(LR
U)データはおそらくもはや必要とされないので、バッ
ファから除去でき、もし再び必要になった時はバッキン
グ記憶装置からバックアップ・コピーをフェッチするこ
とができる。LRUポインタと呼ばれるポインタが、交
換されるために論理によって選択される次の場所を常に
指している。そのLRUポインタがどのようにして選択
されるかはシステムの効率に大きく影響し、与えられた
時間内にバッキング記憶装置に対して行わねばならない
アクセスの回数を増加または減少する。
【0004】従来のバッファ/バッキング記憶装置にお
いては、最初に用いられた(LRU)ポインタは、最初
に用いられたバッファ内のデータを指す。そのデータは
バッキング記憶装置からの新しいデータで置き換えられ
るデータである。前記米国特許出願SN07/618,
708に開示されている制御器においては、各ウエイご
とに2つのセクタがある。このことは、与えられたセッ
ト・アドレスに、行選択(LS)によりドライブされる
2つのラインのデータがあることを意味する。しかし、
1度に1つのラインだけ充たされる。したがって、1つ
のラインに有効なデータを置くことができるが、他のラ
インには有効なデータが置かれないことがある。有効な
データは1度に1つのラインだけに置くことができるか
ら、そのラインはMRUデータを含み、LRUポインタ
はそのラインを指すべきではないことを従来のLRUア
ルゴリズムは常に指定する。しかし、これは上記2セク
タ構造中のスペースを効率的に使用するものではない。
いては、最初に用いられた(LRU)ポインタは、最初
に用いられたバッファ内のデータを指す。そのデータは
バッキング記憶装置からの新しいデータで置き換えられ
るデータである。前記米国特許出願SN07/618,
708に開示されている制御器においては、各ウエイご
とに2つのセクタがある。このことは、与えられたセッ
ト・アドレスに、行選択(LS)によりドライブされる
2つのラインのデータがあることを意味する。しかし、
1度に1つのラインだけ充たされる。したがって、1つ
のラインに有効なデータを置くことができるが、他のラ
インには有効なデータが置かれないことがある。有効な
データは1度に1つのラインだけに置くことができるか
ら、そのラインはMRUデータを含み、LRUポインタ
はそのラインを指すべきではないことを従来のLRUア
ルゴリズムは常に指定する。しかし、これは上記2セク
タ構造中のスペースを効率的に使用するものではない。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、ウエイ毎に2つのセクタがあるデータ・キャッ
シュのための制御器におけるLRUポインタを更新する
方法および装置を得ることである。
目的は、ウエイ毎に2つのセクタがあるデータ・キャッ
シュのための制御器におけるLRUポインタを更新する
方法および装置を得ることである。
【0006】
【課題を解決するための手段】この目的は、キャッシュ
・データ・アレイ・アドレスのためのディレクトリを連
想的にサーチするためのタグおよび有効ビット記憶装置
をおのおの含む2つのウエイへ構成されるキャッシュ制
御器タグラム(24)を提供することにより達成され
る。右ウエイと左ウエイの2つのウエイはそれぞれタグ
・アドレスをおのおの記憶する。ウエイの一方に対する
行充填中に選択される2行がある。LRUポインタが右
ウエイを指すならば、右ヒット信号に応じて行充填のた
めに右ウエイが選択される。LRUポインタが左ウエイ
を指すならば、左ヒット信号に応じて行充填のために左
ウエイが選択される。LRUポインタは、左ウエイの左
行が充填された時に右ウエイを指すように向きを変えら
れる。本発明の1つの面によれば、LRUポインタは読
出しミス・サイクルおよび書込みヒット・サイクルのと
きにだけ更新され、読出しヒット・サイクルではそのま
まにされる。読出しヒットの時にLRUポインタを更新
しないことにより、アルゴリズムは、バスのトラフィッ
クが主として書込みサイクルであるようなバッファ/バ
ッキング記憶装置を支持する、ということが本発明の利
点である。
・データ・アレイ・アドレスのためのディレクトリを連
想的にサーチするためのタグおよび有効ビット記憶装置
をおのおの含む2つのウエイへ構成されるキャッシュ制
御器タグラム(24)を提供することにより達成され
る。右ウエイと左ウエイの2つのウエイはそれぞれタグ
・アドレスをおのおの記憶する。ウエイの一方に対する
行充填中に選択される2行がある。LRUポインタが右
ウエイを指すならば、右ヒット信号に応じて行充填のた
めに右ウエイが選択される。LRUポインタが左ウエイ
を指すならば、左ヒット信号に応じて行充填のために左
ウエイが選択される。LRUポインタは、左ウエイの左
行が充填された時に右ウエイを指すように向きを変えら
れる。本発明の1つの面によれば、LRUポインタは読
出しミス・サイクルおよび書込みヒット・サイクルのと
きにだけ更新され、読出しヒット・サイクルではそのま
まにされる。読出しヒットの時にLRUポインタを更新
しないことにより、アルゴリズムは、バスのトラフィッ
クが主として書込みサイクルであるようなバッファ/バ
ッキング記憶装置を支持する、ということが本発明の利
点である。
【0007】
【実施例】まず、米国特許出願SN07/618,70
8に記載されている2ウエイ、セット連想キャッシュの
ブロック図が示されている図1を参照する。RLS論理
10がtagacc論理14をドライブする。taga
cc論理14は連想メモリ左タグRAM16と左データ
・キャッシュ18、および右タグRAM20と右データ
・キャッシュ22をドライブする。左タグRAM16と
左データ・キャッシュ18はウエイ0を構成し、右タグ
RAM20と右データ・キャッシュ22はウエイ1を構
成する。
8に記載されている2ウエイ、セット連想キャッシュの
ブロック図が示されている図1を参照する。RLS論理
10がtagacc論理14をドライブする。taga
cc論理14は連想メモリ左タグRAM16と左データ
・キャッシュ18、および右タグRAM20と右データ
・キャッシュ22をドライブする。左タグRAM16と
左データ・キャッシュ18はウエイ0を構成し、右タグ
RAM20と右データ・キャッシュ22はウエイ1を構
成する。
【0008】図2に示すように、各タグRAMすなわち
ウエイは34個のタグ・ビット2書込み保護ビットと4
個の有効ビットを有する。また、左タグRAMはLRU
ポインタを構成する2LRUビットを有する。左ヒット
論理26と右ヒット論理28は、タグ・サーチ引数12
と連想メモリ内のタグ・アドレスが一致した時に、ta
gifcインターフェイス制御論理30へ出力を供給す
る比較回路である。tagifc30は、メモリ・アド
レス/データ・バス34に置くべき情報を保持するAD
Sラッチ32をドライブする。制御論理24は、書込み
可能化(WE0)、出力可能化(OE)、スタート等の
ような必要な制御機能を上記論理ブロックへ供給するた
めに、各論理ブロックへ接続される。
ウエイは34個のタグ・ビット2書込み保護ビットと4
個の有効ビットを有する。また、左タグRAMはLRU
ポインタを構成する2LRUビットを有する。左ヒット
論理26と右ヒット論理28は、タグ・サーチ引数12
と連想メモリ内のタグ・アドレスが一致した時に、ta
gifcインターフェイス制御論理30へ出力を供給す
る比較回路である。tagifc30は、メモリ・アド
レス/データ・バス34に置くべき情報を保持するAD
Sラッチ32をドライブする。制御論理24は、書込み
可能化(WE0)、出力可能化(OE)、スタート等の
ような必要な制御機能を上記論理ブロックへ供給するた
めに、各論理ブロックへ接続される。
【0009】従来は、LRUポインタは最も先に用いら
れて、置き換えるべきデータを指す。米国特許SN07
/618,708に記載されている制御器においては、
各ウエイに2つのセクタがある。このことは、2つのデ
ータ行があることを意味する。1つの行は有効なデータ
を有することができ、別の行は有効なデータを有するこ
とができないことがある。有効なデータは1度に1つの
行だけに置くことができる。データが行に置かれると、
それは最後に用いられたデータであるから、LRUポイ
ンタはそれを指すべきではない。したがって、zPTR
DAT行は逆の向きを指すようにLRUの向きを変え
る。タグRAMに対する任意のアクセスに対して、信号
zWAYSELは左側または右側に対して行うべきかを
判定する。正常なサイクル中は、信号zWAYSEL
は、充填のために行を選択すべき行充填においてのみ意
味を有する。図3に示されている情報に従って信号zW
AYSELの値を決定するために、タグ・ヒット信号が
LRUビットとともに用いられる。
れて、置き換えるべきデータを指す。米国特許SN07
/618,708に記載されている制御器においては、
各ウエイに2つのセクタがある。このことは、2つのデ
ータ行があることを意味する。1つの行は有効なデータ
を有することができ、別の行は有効なデータを有するこ
とができないことがある。有効なデータは1度に1つの
行だけに置くことができる。データが行に置かれると、
それは最後に用いられたデータであるから、LRUポイ
ンタはそれを指すべきではない。したがって、zPTR
DAT行は逆の向きを指すようにLRUの向きを変え
る。タグRAMに対する任意のアクセスに対して、信号
zWAYSELは左側または右側に対して行うべきかを
判定する。正常なサイクル中は、信号zWAYSEL
は、充填のために行を選択すべき行充填においてのみ意
味を有する。図3に示されている情報に従って信号zW
AYSELの値を決定するために、タグ・ヒット信号が
LRUビットとともに用いられる。
【0010】読出しミス、書込みヒットおよびスヌープ
(snoop)・ヒットの時にLRUは更新される。ス
ヌープ・サイクルにおいて、左ウエイでヒットが生じた
とすると、LRUは左ウエイを指させられる。行充填で
はこれとは全く逆の事が行われる。行充填が左側に対し
てであるとすると、LRUは右側へ指すことを強制され
る。この理由は、定義により、ヒットが新しいデータを
入れるものとすると、最初に用いられたデータが反対側
にあるからである。現在の行を確認すべき時に、LRU
ビットを他のウエイへ変えるべきである。これはTAG
IFC30において自動的に行われる。しかし、たとえ
ばSKEN#のピンポン操作のために行を無効にすべき
であるとすると、LRUビットを古いウエイへ指すよう
に元に戻される。信号rLRUFLPはLRUビットを
フリップするためのデータを供給する。そのデータが零
であれば、タグ更新中はzPTRDATと同じウエイを
LRUは指すようにされる。そのデータが1であれば、
タグ更新中はLRUは元の値へセットされる。
(snoop)・ヒットの時にLRUは更新される。ス
ヌープ・サイクルにおいて、左ウエイでヒットが生じた
とすると、LRUは左ウエイを指させられる。行充填で
はこれとは全く逆の事が行われる。行充填が左側に対し
てであるとすると、LRUは右側へ指すことを強制され
る。この理由は、定義により、ヒットが新しいデータを
入れるものとすると、最初に用いられたデータが反対側
にあるからである。現在の行を確認すべき時に、LRU
ビットを他のウエイへ変えるべきである。これはTAG
IFC30において自動的に行われる。しかし、たとえ
ばSKEN#のピンポン操作のために行を無効にすべき
であるとすると、LRUビットを古いウエイへ指すよう
に元に戻される。信号rLRUFLPはLRUビットを
フリップするためのデータを供給する。そのデータが零
であれば、タグ更新中はzPTRDATと同じウエイを
LRUは指すようにされる。そのデータが1であれば、
タグ更新中はLRUは元の値へセットされる。
【0011】RLS10からTAGACC14への信号
WRLRUと、rWRSTSと、rWRTAGとは、タ
グRAMを更新する時を決定するタグ書込み指令であ
る。状態書込み指令は下記の時刻に活動化する。 1.論理が委ねられた行充填サイクル中のTO21にあ
る。 2.委ねられた行充填サイクル中のTO24に論理があ
り、行の状態を変えねばならない時。 3.外部サイクルが終わったが、論理は早期の書込み要
求に対する確認応答を見なかった時。 4.外部サイクルはまだ終わらず、早期の書込み要求に
対する確認応答を論理がいぜんとして待っている時。 5.読出しサイクルが終わる前にBOFF#が起こり、
行が有効である時。 6.サイクルが自己テスト書込みの時。 7.論理が読出しヒット・サイクルにあり、BOFF#
が起きた時。
WRLRUと、rWRSTSと、rWRTAGとは、タ
グRAMを更新する時を決定するタグ書込み指令であ
る。状態書込み指令は下記の時刻に活動化する。 1.論理が委ねられた行充填サイクル中のTO21にあ
る。 2.委ねられた行充填サイクル中のTO24に論理があ
り、行の状態を変えねばならない時。 3.外部サイクルが終わったが、論理は早期の書込み要
求に対する確認応答を見なかった時。 4.外部サイクルはまだ終わらず、早期の書込み要求に
対する確認応答を論理がいぜんとして待っている時。 5.読出しサイクルが終わる前にBOFF#が起こり、
行が有効である時。 6.サイクルが自己テスト書込みの時。 7.論理が読出しヒット・サイクルにあり、BOFF#
が起きた時。
【0012】LRUビットは下記の状況において書込ま
ねばならない。 1.委ねられている行充填サイクルのTO24に論理が
あり、行の状態を変えねばならない時。 2.外部サイクルが終わったが、早期の書込み要求に対
する確認応答を論理が見なかった時。 3.外部サイクルはまだ終わらず、早期の書込み要求に
対する確認応答をいぜんとして待っている時。 4.行が有効であるが、BOFF#が起きた時。 論理は読出しヒットの時にLRUビットを更新すること
もできる。
ねばならない。 1.委ねられている行充填サイクルのTO24に論理が
あり、行の状態を変えねばならない時。 2.外部サイクルが終わったが、早期の書込み要求に対
する確認応答を論理が見なかった時。 3.外部サイクルはまだ終わらず、早期の書込み要求に
対する確認応答をいぜんとして待っている時。 4.行が有効であるが、BOFF#が起きた時。 論理は読出しヒットの時にLRUビットを更新すること
もできる。
【0013】状態ビットが書かれる時はタグ・ビットが
常に書かれる。書込み指令のための確認応答はTAGA
CC14から来る。そのTAGACC14は、タグRA
MがRLS10から書込み指令を受ける状況にある時
に、信号zSTSACTを発生する。書込み指令は、確
認応答が見られない限り、存続する。RLS(rWR
(STS,TAG,LRU))からの書込み要求をSA
CLKにおけるタグ・アクセスへ変換できるならば、信
号zSTSACKはそのSACLKにおいて発生され
る。タグRAMそのクロックにおいてスヌープ・アクセ
スで使用中であるならば、信号zSTSACKは発生さ
れない。
常に書かれる。書込み指令のための確認応答はTAGA
CC14から来る。そのTAGACC14は、タグRA
MがRLS10から書込み指令を受ける状況にある時
に、信号zSTSACTを発生する。書込み指令は、確
認応答が見られない限り、存続する。RLS(rWR
(STS,TAG,LRU))からの書込み要求をSA
CLKにおけるタグ・アクセスへ変換できるならば、信
号zSTSACKはそのSACLKにおいて発生され
る。タグRAMそのクロックにおいてスヌープ・アクセ
スで使用中であるならば、信号zSTSACKは発生さ
れない。
【0014】キャッシュ・ディレクトリ ディレクトリ24の機能は、キャッシュ・メモリの左デ
ータ・キャッシュ18と右データ・キャッシュ23に格
納されているデータに対応するアドレスを格納すること
である。ディレクトリは2つのウエイ(WAY0,WA
Y1)へ構成される。行は、キャッシュと主メモリの間
で転送されるデータの基本単位である。行は16バイト
のデータで構成される。行は転送ブロックとしても知ら
れている。特定のアドレスに対応するデータをキャッシ
ュに格納するものとすれば、キャッシュはデータを供給
でき、したがって主記憶装置のアクセスを避けることが
できる。これは、左ウエイ(LH)または右ウエイ(R
H)からのキャッシュ・ヒットと呼ばれる。ヒットかミ
スかの判定は行ごとに決定される。アドレス・ブロック
はキャッシャ・アドレッシングの基本単位である。各ア
ドレス・ブロックは、データの2つの隣接するラインの
うちの1つのラインの物理的アドレスである。
ータ・キャッシュ18と右データ・キャッシュ23に格
納されているデータに対応するアドレスを格納すること
である。ディレクトリは2つのウエイ(WAY0,WA
Y1)へ構成される。行は、キャッシュと主メモリの間
で転送されるデータの基本単位である。行は16バイト
のデータで構成される。行は転送ブロックとしても知ら
れている。特定のアドレスに対応するデータをキャッシ
ュに格納するものとすれば、キャッシュはデータを供給
でき、したがって主記憶装置のアクセスを避けることが
できる。これは、左ウエイ(LH)または右ウエイ(R
H)からのキャッシュ・ヒットと呼ばれる。ヒットかミ
スかの判定は行ごとに決定される。アドレス・ブロック
はキャッシャ・アドレッシングの基本単位である。各ア
ドレス・ブロックは、データの2つの隣接するラインの
うちの1つのラインの物理的アドレスである。
【0015】アドレス・ブロック内の各ラインに組み合
わされる有効なビットがある。キャッシュにラインが存
在するものとすると、有効なビットがターン・オンされ
る。キャッシュ・ディレクトリの左タグRAM16と右
タグRAM20に保持されているアドレス情報はタグと
呼ばれる。多くのアドレスは1つのアドレス・ブロック
へマップするから、アドレス・ブロックに現在組み合わ
されている正確なメモリ場所を識別するためにタグ情報
が用いられる。連想記憶装置内のアドレス・ブロックの
タグが、サーチ引数12として連想記憶装置へ供給され
たバス・アドレスに一致し、希望のライン有効ビットが
オンの時にヒットが起こる。
わされる有効なビットがある。キャッシュにラインが存
在するものとすると、有効なビットがターン・オンされ
る。キャッシュ・ディレクトリの左タグRAM16と右
タグRAM20に保持されているアドレス情報はタグと
呼ばれる。多くのアドレスは1つのアドレス・ブロック
へマップするから、アドレス・ブロックに現在組み合わ
されている正確なメモリ場所を識別するためにタグ情報
が用いられる。連想記憶装置内のアドレス・ブロックの
タグが、サーチ引数12として連想記憶装置へ供給され
たバス・アドレスに一致し、希望のライン有効ビットが
オンの時にヒットが起こる。
【0016】各ウエイ16,20はタグおよび有効なビ
ットのための記憶装置を提供する。比較回路においてバ
ス・アドレス12とタグ・フィールドの間で、データが
キャッシュ・データ・アレイにあるかどうかを判定する
やり方で、多くの比較が同時に行われる。セットは各ウ
エイからの1つのアドレス・ブロックより成るアドレス
・ブロックのまとまりである。あるセット内の全てのア
ドレス・ブロックは、CPUバス・アドレスのセット部
分が、RLS論理10内のデコーダによりセット・アド
レス12へ復号された時に、同時に選択される。
ットのための記憶装置を提供する。比較回路においてバ
ス・アドレス12とタグ・フィールドの間で、データが
キャッシュ・データ・アレイにあるかどうかを判定する
やり方で、多くの比較が同時に行われる。セットは各ウ
エイからの1つのアドレス・ブロックより成るアドレス
・ブロックのまとまりである。あるセット内の全てのア
ドレス・ブロックは、CPUバス・アドレスのセット部
分が、RLS論理10内のデコーダによりセット・アド
レス12へ復号された時に、同時に選択される。
【0017】CPUバスにおける書込みトランザクショ
ンが、キャッシュにない(キャッシュ・ミス)アドレス
を含むと、対応するデータをキャッシュに格納する試み
は行われない。しかし、CPUバスにおける書込みトラ
ンザクションが、キャッシュ内にある(キャッシュ・ヒ
ット)アドレスを含むと、ディレクトリは書通しポリシ
ーを用いる。このことは、キャッシュ・ヒットになる結
果をもたらすCPUバス書込みが、主記憶装置はもちろ
ん、キャッシュへも書込まれる。これにより、主記憶装
置はキャッシュの全てのデータ場所の有効なコピーを常
に確実に保持するようにされる。
ンが、キャッシュにない(キャッシュ・ミス)アドレス
を含むと、対応するデータをキャッシュに格納する試み
は行われない。しかし、CPUバスにおける書込みトラ
ンザクションが、キャッシュ内にある(キャッシュ・ヒ
ット)アドレスを含むと、ディレクトリは書通しポリシ
ーを用いる。このことは、キャッシュ・ヒットになる結
果をもたらすCPUバス書込みが、主記憶装置はもちろ
ん、キャッシュへも書込まれる。これにより、主記憶装
置はキャッシュの全てのデータ場所の有効なコピーを常
に確実に保持するようにされる。
【0018】機能についての説明 起こるサイクルには、4つの正常なサイクルとスヌープ
・サイクルの5種類のサイクルがある。 1.読出しミス(ライン充填) 2.読出しヒット 3.書込みミス 4.書込みヒット 5.スヌープ
・サイクルの5種類のサイクルがある。 1.読出しミス(ライン充填) 2.読出しヒット 3.書込みミス 4.書込みヒット 5.スヌープ
【0019】読出しミス(ライン充填) 読出しミス・サイクルはzADSCYCとzRDSCY
Cでスタートする。タグ・ルックアップは最初のSHC
LKでミスを生ずる。START#は活動状態になって
ミスを示す。それから、SKEN#が活動状態になるま
で論理は待つ。最初の転送の前にSKEN#が活動状態
であると、ラインはコミットされているといわれる。図
3に示すように、タグRAM中のラインは信号zADS
LRU,zADSHL,zADSHRを用いて選択され
る。ラインを無効にするためにタグ書込み指令が発せら
れる。また、対応する最初の書込み可能化が発せられ
る。
Cでスタートする。タグ・ルックアップは最初のSHC
LKでミスを生ずる。START#は活動状態になって
ミスを示す。それから、SKEN#が活動状態になるま
で論理は待つ。最初の転送の前にSKEN#が活動状態
であると、ラインはコミットされているといわれる。図
3に示すように、タグRAM中のラインは信号zADS
LRU,zADSHL,zADSHRを用いて選択され
る。ラインを無効にするためにタグ書込み指令が発せら
れる。また、対応する最初の書込み可能化が発せられ
る。
【0020】活動状態にあるSKEN#は、ラインが既
に有効でなければ、ラインを有効にするためにタグRA
Mに対する要求が行われる結果となる。SKEN#が非
活動状態にあると、ラインが既に無効でなければ、ライ
ンを無効にするための要求が行われる結果となる。その
ような各書込みにおいて書込み防止ピン(WP)が書込
まれる。ラインが有効な状態に放置されるならば、LR
Uビットは他のウエイを指すようにされる。ラインが有
効であり、かつサイクルがBOFF#でサイクルが放棄
されると、ラインを無効にするためにタグRAMに対し
て要求が行われる。
に有効でなければ、ラインを有効にするためにタグRA
Mに対する要求が行われる結果となる。SKEN#が非
活動状態にあると、ラインが既に無効でなければ、ライ
ンを無効にするための要求が行われる結果となる。その
ような各書込みにおいて書込み防止ピン(WP)が書込
まれる。ラインが有効な状態に放置されるならば、LR
Uビットは他のウエイを指すようにされる。ラインが有
効であり、かつサイクルがBOFF#でサイクルが放棄
されると、ラインを無効にするためにタグRAMに対し
て要求が行われる。
【0021】読出しヒット 読出しヒット・サイクルはzADSCYCおよびzRD
SCYCでスタートする。タグ・ルックアップは最初の
SHCLKにおいてヒットを生ずる。BRDYO#は活
動状態になってヒットを示す。また、最初の出力可能化
(OE1)が活動状態になる。最初の可能化は、米国特
許出願SN07/684,180に記載されているバー
スト・アドレス・シーケンスを用いて、4つの可能性か
ら拾われる。キャッシュ制御器はあらゆるクロックにお
ける転送をBRDYO#で合図するから、論理はあらゆ
るクロックにおいてTO22,TO23,TO24を通
って進む。各転送ごとに適切な可能化が生じさせられ
る。BOFF#が転送に割り込むとすると、ラインを無
効にするためにタグRAMに対して要求が行われる。読
み出しヒットではLRUビットは更新されない。
SCYCでスタートする。タグ・ルックアップは最初の
SHCLKにおいてヒットを生ずる。BRDYO#は活
動状態になってヒットを示す。また、最初の出力可能化
(OE1)が活動状態になる。最初の可能化は、米国特
許出願SN07/684,180に記載されているバー
スト・アドレス・シーケンスを用いて、4つの可能性か
ら拾われる。キャッシュ制御器はあらゆるクロックにお
ける転送をBRDYO#で合図するから、論理はあらゆ
るクロックにおいてTO22,TO23,TO24を通
って進む。各転送ごとに適切な可能化が生じさせられ
る。BOFF#が転送に割り込むとすると、ラインを無
効にするためにタグRAMに対して要求が行われる。読
み出しヒットではLRUビットは更新されない。
【0022】書込みミス 直接プロセッサ書込みサイクルはzADSCYCおよび
zWRSCYCでスタートする。START#は最初の
SHCLKにおいて終わる。最初のSHLCKにおいて
それがヒットであれば、適切な可能化が送出される。ミ
スでは、LRUビットに対して何も行われず、STAR
T#だけを活動状態であると見ることができる。
zWRSCYCでスタートする。START#は最初の
SHCLKにおいて終わる。最初のSHLCKにおいて
それがヒットであれば、適切な可能化が送出される。ミ
スでは、LRUビットに対して何も行われず、STAR
T#だけを活動状態であると見ることができる。
【0023】書込みヒット 直接プロセッサ書込みサイクルはzADSCYCおよび
zWRSCYCでスタートする。START#は最初の
SHCLKにおいて終わる。最初のSHLCKにおいて
それがヒットであるとすると、適切な可能化が送出され
る。LRUビットは書込みヒットにおいて他のウエイを
指すようにされる。
zWRSCYCでスタートする。START#は最初の
SHCLKにおいて終わる。最初のSHLCKにおいて
それがヒットであるとすると、適切な可能化が送出され
る。LRUビットは書込みヒットにおいて他のウエイを
指すようにされる。
【0024】スヌープ マルチプロセッサ環境においては、同じメモリ空間を共
用する2つ以上のプロセッサが存在することがある。1
つのプロセッサのキャッシュにデータが記憶され、同じ
データに対して他のプロセッサが外部メモリへ進むと仮
定する。第2のプロセッサがデータを変えるとすると、
第1のプロセッサのキャッシュ内のデータはだめにされ
る。スヌープ信号があらゆるプロセッサへ送られ、各プ
ロセッサによりモニタされる。スヌープ信号により示さ
れているラインのアドレスにおけるデータの私用コピー
をどのプロセッサも有するとすると、それはそれのキャ
ッシュに入ってそのラインを無効にせねばならない。ス
ヌープ信号に関連するバスにはアドレスがある。したが
って、バスにアドレスがあり、スヌープ信号が高レベル
にされたとすると、プロセッサは入り、そのデータのロ
ーカル私用コピーを無効にせねばならない。スヌープ・
サイクルは独立に取り扱われ、正常サイクルと呼ばれる
他の4つのサイクルでスヌープ・サイクルをオーバーレ
イできる。スヌープ・ヒットはLRUビットを選択され
たウエイを指すことを自動的に強制する。ウエイはzW
AYSELで選択される。
用する2つ以上のプロセッサが存在することがある。1
つのプロセッサのキャッシュにデータが記憶され、同じ
データに対して他のプロセッサが外部メモリへ進むと仮
定する。第2のプロセッサがデータを変えるとすると、
第1のプロセッサのキャッシュ内のデータはだめにされ
る。スヌープ信号があらゆるプロセッサへ送られ、各プ
ロセッサによりモニタされる。スヌープ信号により示さ
れているラインのアドレスにおけるデータの私用コピー
をどのプロセッサも有するとすると、それはそれのキャ
ッシュに入ってそのラインを無効にせねばならない。ス
ヌープ信号に関連するバスにはアドレスがある。したが
って、バスにアドレスがあり、スヌープ信号が高レベル
にされたとすると、プロセッサは入り、そのデータのロ
ーカル私用コピーを無効にせねばならない。スヌープ・
サイクルは独立に取り扱われ、正常サイクルと呼ばれる
他の4つのサイクルでスヌープ・サイクルをオーバーレ
イできる。スヌープ・ヒットはLRUビットを選択され
たウエイを指すことを自動的に強制する。ウエイはzW
AYSELで選択される。
【0025】信号についての説明 内部信号の詳細な説明が米国特許出願SN07/68
4,180において行われている。その米国特許出願に
おいては、各内部信号の名称がそれの属する信号源を識
別する特性文字で始まる、と記述されている。最初の文
字は{r,t,x,y,z}のうちの1つにできる。信
号名の残りの部分は大文字である。「nn」で終わる信
号は、それが低い真の信号であることを意味する。外部
信号のための対応する記法は代わりに「#」を有する。
また、中かっこ{}はかっこ内にサブストリングを含ん
でいる信号名を記述するために用いられる。たとえば、
rWR{STS,TAG,LRU}はそれぞれrWRS
TS,rWRTAG,rWRLRUを表わす。サブスト
リングの長さが1文字であると、複数の文字をコンマで
分離することなしに一対のかっこが用いられる。たとえ
ば、[yz]ADSnnはyADSnnとzADSnn
を意味する。かっこは範囲を示すためにも用いられる。
たとえば、zSAI{0・・10}はzSAI0、zS
AI1、・・・zSAI10を表わす。そのような多ビ
ット信号を参照する場合には、範囲指定子が削除され
る。たとえば、11個のzSAI[0〜10]信号をz
SAIと記す。
4,180において行われている。その米国特許出願に
おいては、各内部信号の名称がそれの属する信号源を識
別する特性文字で始まる、と記述されている。最初の文
字は{r,t,x,y,z}のうちの1つにできる。信
号名の残りの部分は大文字である。「nn」で終わる信
号は、それが低い真の信号であることを意味する。外部
信号のための対応する記法は代わりに「#」を有する。
また、中かっこ{}はかっこ内にサブストリングを含ん
でいる信号名を記述するために用いられる。たとえば、
rWR{STS,TAG,LRU}はそれぞれrWRS
TS,rWRTAG,rWRLRUを表わす。サブスト
リングの長さが1文字であると、複数の文字をコンマで
分離することなしに一対のかっこが用いられる。たとえ
ば、[yz]ADSnnはyADSnnとzADSnn
を意味する。かっこは範囲を示すためにも用いられる。
たとえば、zSAI{0・・10}はzSAI0、zS
AI1、・・・zSAI10を表わす。そのような多ビ
ット信号を参照する場合には、範囲指定子が削除され
る。たとえば、11個のzSAI[0〜10]信号をz
SAIと記す。
【0026】TAGIFC30論理は、サイクルを始め
る最初のADS#の後の最初のSHCLKにおけるタグ
RAMの出力を捕らえる。捕らえられた出力はサイクル
が終わるまでADSラッチ32に保持される。セット内
の他のラインのための有効な情報はADSラッチ32か
ら得られる。それから両方のラインのための情報がタグ
RAMへ書込まれる。そのラインがサイクル中に明らか
なスヌープを介して、またはフラッシュを用いて無効に
された時に、RLS10からのrCLRV[LR]信号
(rCLRVLとrCLRVR)がこの「別の」ライン
情報をクリヤするために用いられる。
る最初のADS#の後の最初のSHCLKにおけるタグ
RAMの出力を捕らえる。捕らえられた出力はサイクル
が終わるまでADSラッチ32に保持される。セット内
の他のラインのための有効な情報はADSラッチ32か
ら得られる。それから両方のラインのための情報がタグ
RAMへ書込まれる。そのラインがサイクル中に明らか
なスヌープを介して、またはフラッシュを用いて無効に
された時に、RLS10からのrCLRV[LR]信号
(rCLRVLとrCLRVR)がこの「別の」ライン
情報をクリヤするために用いられる。
【0027】信号tHL,tHR,tRLU,tVL
0,tVL1,tVR0,tVR1,tLWP,tRW
Pは、現在のアクセスがヒットであるか、ミスであるか
を示すために、論理BRDYO,MUXCON,OE,
START,TAGIFCおよびWEを進ませるタグR
AMからの出力である。ヒットの場合は、タグ・ビット
(tHLまたはtHR)と対応する有効なビット(tV
L[01]またはtVR[01])を同時にヒットせね
ばならない。tLWPとtRWPはそれぞれ左側と右側
からの書込み防止ビットである。OE回路と、WE回路
と、BRDYO回路と、START回路とは、ヒット・
サイクルかミス・サイクルであるかを判定するためにそ
れらの信号を直接用いる。スヌープ・サイクル中に、ス
ヌープがヒットであるかどうかを判定するために、MU
XCONはそれらを用いる。正常なサイクルの場合に
は、信号zADS(HL,HR,VL0,VL1,VR
0,VR1)とzRLS[LR]WPを生ずるために、
TAGIFC30はそれらの信号をADSラッチ32に
捕らえる。スヌープ中は、それらの信号はスヌープ・ラ
ッチに捕らえられる。スヌープ・ラッチからの出力はT
AGIFC30にローカルなままである。
0,tVL1,tVR0,tVR1,tLWP,tRW
Pは、現在のアクセスがヒットであるか、ミスであるか
を示すために、論理BRDYO,MUXCON,OE,
START,TAGIFCおよびWEを進ませるタグR
AMからの出力である。ヒットの場合は、タグ・ビット
(tHLまたはtHR)と対応する有効なビット(tV
L[01]またはtVR[01])を同時にヒットせね
ばならない。tLWPとtRWPはそれぞれ左側と右側
からの書込み防止ビットである。OE回路と、WE回路
と、BRDYO回路と、START回路とは、ヒット・
サイクルかミス・サイクルであるかを判定するためにそ
れらの信号を直接用いる。スヌープ・サイクル中に、ス
ヌープがヒットであるかどうかを判定するために、MU
XCONはそれらを用いる。正常なサイクルの場合に
は、信号zADS(HL,HR,VL0,VL1,VR
0,VR1)とzRLS[LR]WPを生ずるために、
TAGIFC30はそれらの信号をADSラッチ32に
捕らえる。スヌープ中は、それらの信号はスヌープ・ラ
ッチに捕らえられる。スヌープ・ラッチからの出力はT
AGIFC30にローカルなままである。
【0028】TAGIFC30から論理RLSとWAY
CONへの信号zADSLRUはzADSCYCの後の
最初のSHCLKに捕らえられた信号tLRUである。
サイクルが終わるまで値は保持される。ラッチは、zA
DSCYCとzADSCSにより可能状態にされたSH
CLKの終わりによりクロックされる。RLSにおいて
は、zADSLRUによりクロックされ、それからrL
RUFLPを生ずるために用いられる。WAYCONに
おいては、それはzWESEL,zWAYSEL,zI
WAYSELを発生するために用いられる。
CONへの信号zADSLRUはzADSCYCの後の
最初のSHCLKに捕らえられた信号tLRUである。
サイクルが終わるまで値は保持される。ラッチは、zA
DSCYCとzADSCSにより可能状態にされたSH
CLKの終わりによりクロックされる。RLSにおいて
は、zADSLRUによりクロックされ、それからrL
RUFLPを生ずるために用いられる。WAYCONに
おいては、それはzWESEL,zWAYSEL,zI
WAYSELを発生するために用いられる。
【0029】TAGIFC30からRLS,WAYCO
N,TAGACC14論理への信号zADSV[LR]
[01]とzADSH[LR]は、zADSCYCの後
の最初のSHCLKに捕らえられた信号tV[LR]
[01]とtH[1r]である。ラッチはzADSCS
とzADSCYCにより可能状態にされる。ローカル・
ヒット/ミス情報を生ずるためにRLS10論理はそれ
らを用いる。zWESEL,zWAYSEL,zIWA
YSELを生ずるためにWAYCONはzADSHRを
用いる。TAGACC14においては、それらの信号は
直接プロセッサ書込みヒット・サイクル中にzWRLR
Uを発生する。
N,TAGACC14論理への信号zADSV[LR]
[01]とzADSH[LR]は、zADSCYCの後
の最初のSHCLKに捕らえられた信号tV[LR]
[01]とtH[1r]である。ラッチはzADSCS
とzADSCYCにより可能状態にされる。ローカル・
ヒット/ミス情報を生ずるためにRLS10論理はそれ
らを用いる。zWESEL,zWAYSEL,zIWA
YSELを生ずるためにWAYCONはzADSHRを
用いる。TAGACC14においては、それらの信号は
直接プロセッサ書込みヒット・サイクル中にzWRLR
Uを発生する。
【0030】TAGIFC30からTAGRAMへの信
号zPTRDATはタグRAMへ書込まれるLRUビッ
トである。正常なサイクル中の全てのタグRAMの更新
においては、zPTRDATはzADSLRUの逆であ
る。しかし、rLRUFLPが活動状態にあると、zP
TRDATはzADSLRUと同じ値をとる。スヌープ
・ヒット中は、スヌープの無効化が行われる場合とは逆
のウエイへzPTRDATはセットされる。WAYCO
N論理からTAGIFC30論理へのzPTRDVRに
よりスヌープ中にLRUポインタのオーバライドが許さ
れる。活動状態にあると、それは、スヌープの無効化が
行われるウエイとは逆のウエイをLRUに指させる。そ
れはSACLKラッチにより捕らえられるzSNPWA
ITである。TAGIFC30論理からWAYCON論
理へのzSNPHR信号は、zSNPCYCの後の最初
のSHCLKに捕らえられたタグRAMの右側からのタ
グ・ヒット信号である。zWNPWAITとともに、そ
れはスヌープ無効化のためのウエイを選択する。
号zPTRDATはタグRAMへ書込まれるLRUビッ
トである。正常なサイクル中の全てのタグRAMの更新
においては、zPTRDATはzADSLRUの逆であ
る。しかし、rLRUFLPが活動状態にあると、zP
TRDATはzADSLRUと同じ値をとる。スヌープ
・ヒット中は、スヌープの無効化が行われる場合とは逆
のウエイへzPTRDATはセットされる。WAYCO
N論理からTAGIFC30論理へのzPTRDVRに
よりスヌープ中にLRUポインタのオーバライドが許さ
れる。活動状態にあると、それは、スヌープの無効化が
行われるウエイとは逆のウエイをLRUに指させる。そ
れはSACLKラッチにより捕らえられるzSNPWA
ITである。TAGIFC30論理からWAYCON論
理へのzSNPHR信号は、zSNPCYCの後の最初
のSHCLKに捕らえられたタグRAMの右側からのタ
グ・ヒット信号である。zWNPWAITとともに、そ
れはスヌープ無効化のためのウエイを選択する。
【0031】TAGIFC30論理からTAGRAMへ
の信号zVL0,zVL1,zVR0,zVR1は、あ
らゆる書込み要求においてタグRAMへ書込まれる状態
ビットである。書込み防止ビット値とLRUビット値は
それぞれzWP0とzPTRDATにおいてけた上げさ
れる。4つの値は各時刻に全て計算される。任意の時刻
に、ただ1つのラインを任意の1つのウエイで更新でき
る。入来する4つの有効な信号のうちのどの2つを更新
のために用いるかを決定するために、タグRAMはzW
AYSELを用いる。しかし、制御論理は、WAYSE
Lにより選択された2つの信号のための状態情報を正し
く発生する責任がある。現在のラインに対しては、有効
なビットを計算できる(rV)。他のラインのための有
効な情報はADSラッチ(zADSV[LR][0
1])から得られる。他のラインがスヌープ・アウトさ
れるものとすると、適切なADSラッチ32が信号rC
LRV[LR]信号によりリセットされているであろ
う。
の信号zVL0,zVL1,zVR0,zVR1は、あ
らゆる書込み要求においてタグRAMへ書込まれる状態
ビットである。書込み防止ビット値とLRUビット値は
それぞれzWP0とzPTRDATにおいてけた上げさ
れる。4つの値は各時刻に全て計算される。任意の時刻
に、ただ1つのラインを任意の1つのウエイで更新でき
る。入来する4つの有効な信号のうちのどの2つを更新
のために用いるかを決定するために、タグRAMはzW
AYSELを用いる。しかし、制御論理は、WAYSE
Lにより選択された2つの信号のための状態情報を正し
く発生する責任がある。現在のラインに対しては、有効
なビットを計算できる(rV)。他のラインのための有
効な情報はADSラッチ(zADSV[LR][0
1])から得られる。他のラインがスヌープ・アウトさ
れるものとすると、適切なADSラッチ32が信号rC
LRV[LR]信号によりリセットされているであろ
う。
【0032】WAYCON論理からTAGIFC30と
TAGRAMへのzWAYSEL信号がウエイを選択す
る。タグRAMに対する任意のアクセスに対して、zW
AYSELはそれが左側と右側のいずれであるかを判定
する。正常なサイクル中は、ラインを充填のために選択
せねばならないライン充填においてのみzWAYSEL
は意味を有する。TAGIFCにおいては、zWAUS
ELは、特定のウエイのための状態ビットを再計算すべ
きか、再循環すべきかを判定する。TAGRAMにおい
ては、それは更新のためのウエイを選択するために用い
られる。
TAGRAMへのzWAYSEL信号がウエイを選択す
る。タグRAMに対する任意のアクセスに対して、zW
AYSELはそれが左側と右側のいずれであるかを判定
する。正常なサイクル中は、ラインを充填のために選択
せねばならないライン充填においてのみzWAYSEL
は意味を有する。TAGIFCにおいては、zWAUS
ELは、特定のウエイのための状態ビットを再計算すべ
きか、再循環すべきかを判定する。TAGRAMにおい
ては、それは更新のためのウエイを選択するために用い
られる。
【0033】WAYCOM論理からRLS10および書
込み可能化(WE)論理へのzWESEL信号は、サイ
クルの初めにヒット/ミス情報によりウエイ選択がひと
たび決定されると、スヌープがウエイの選択を決定しな
いことを除き、zWAYSELと同じである。タグRA
Mだけはどのウエイがスヌープ・アウトされるかを知る
必要がある。WEとRLSに対しては、ウエイ情報はサ
イクル全体にわたって一定のままでなくてはならない。
込み可能化(WE)論理へのzWESEL信号は、サイ
クルの初めにヒット/ミス情報によりウエイ選択がひと
たび決定されると、スヌープがウエイの選択を決定しな
いことを除き、zWAYSELと同じである。タグRA
Mだけはどのウエイがスヌープ・アウトされるかを知る
必要がある。WEとRLSに対しては、ウエイ情報はサ
イクル全体にわたって一定のままでなくてはならない。
【0034】TAGACC14とTAGRAM論理から
の信号zWRSTS,zWRLRU,zWRTAGは書
込み指令である。状態ビット(有効および書込み防止)
LRUおよびタグ・ビットは、対応する書込み指令が活
動状態である時に、選択されたセット・アドレスに書込
まれる。指令はzFLUSHnnによりオーバライドさ
れる。
の信号zWRSTS,zWRLRU,zWRTAGは書
込み指令である。状態ビット(有効および書込み防止)
LRUおよびタグ・ビットは、対応する書込み指令が活
動状態である時に、選択されたセット・アドレスに書込
まれる。指令はzFLUSHnnによりオーバライドさ
れる。
【図1】本発明が具体化される2ウエイ、セット連想キ
ャッシュのブロック図である。
ャッシュのブロック図である。
【図2】図1の各タグRAM内のビット・フィールドの
図である。
図である。
【図3】ライン充填のためのタグ選択を示す表である。
【図4】LRUポインタ更新手順の流れ図である。
10 RLS論理 14 tagacc論理 16,20 タグRAM 18,22 データ・キャッシュ
フロントページの続き (72)発明者 ジェイムズ・ナディア アメリカ合衆国 95118 カリフォルニア 州・サン ホゼ・ホールクレスト ドライ ブ・1548
Claims (3)
- 【請求項1】 キャッシュ・データ・アレイ・アドレス
のためのディレクトリを連想的にサーチするためにタグ
および有効なビット記憶装置をおのおの含む右ウエイと
左ウエイの2つのウエイへ構成されたキャッシュ制御器
tagramにおいて、 前記ウエイの1つに対するライン充填サイクル中に2つ
のラインを選択する第1の手段と、 最近に用いられたポインタが右ウエイを指すのであれ
ば、右ヒット信号に応じて前記右ウエイがライン充填の
ために選択されるように、前記ライン充填サイクル中に
どのウエイを充填するかを選択するための最近に用いら
れたポインタと、 前記最近に用いられたポインタが前記左ウエイを指すな
らば、左ヒット信号に応じてライン充填のために前記左
ウエイを選択する第2の手段と、 前記左ウエイの左ラインが充填された時に前記最近に用
いられたポインタに前記右ウエイを指させ、前記右ウエ
イの右ラインが充填された時に前記最近に用いられたポ
インタに前記左ウエイを指させる第3の手段と、を備え
る組み合わせ。 - 【請求項2】 タグ・アドレスをおのおの格納し、1つ
のウエイに対するライン充填中に選択される2つのライ
ンが存在するような右ウエイと左ウエイの2つのウエイ
へ分割されるキャッシュ・ディレクトリにおいて、 前記ディレクトリの右ウエイと左ウエイに格納されてい
る前記タグ・アドレスとあるタグを比較するために、前
記ディレクトリの前記右ウエイと前記ディレクトリの前
記左ウエイへ接続される第1の手段と、 前記右ウエイに格納されている前記タグ・アドレスの1
つと前記タグの間に一致が存在するという条件で、右ヒ
ット信号を発生するために前記第1の手段へ接続される
第2の手段と、 前記左ウエイに格納されている前記タグ・アドレスの1
つと前記タグの間に一致が存在するという条件で、左ヒ
ット信号を発生するために前記第1の手段へ接続される
第3の手段と、 前記最近に用いられたポインタが前記右ウエイを指すと
いう条件で、前記右ヒット信号に応じてライン充填のた
めの前記右ウエイを選択するために前記第2の手段へ接
続される第4の手段と、 前記右ウエイの前記右ラインが充填された時に、前記最
初に用いられたポインタに前記左ウエイを指させる第5
の手段と、 前記最近に用いられたポインタが前記左ウエイを指すと
いう条件で、前記左ヒット信号に応じてラインを充填す
るための前記左ウエイを選択する第6の手段と、 前記左ウエイの前記左ラインが充填された時に、前記最
近に用いられたポインタに前記右ウエイを指させる第7
の手段と、を備える、ライン充填サイクルにおいてどの
ウエイが充填するかを、最初に用いられたポインタによ
り選択する装置。 - 【請求項3】 タグ・アドレスをおのおの格納し、1つ
のウエイに対するライン充填中に選択される2つのライ
ンが存在するような右ウエイと左ウエイの2つのウエイ
へ分割されるキャッシュ・ディレクトリにおいて、 A.前記ディレクトリの前記右ウエイと前記左ウエイに
格納されている前記タグ・アドレスとタグを比較する過
程と、 B.前記右ウエイに格納されている前記タグ・アドレス
の1つと前記タグの間に一致が存在するという条件で、
右ヒット信号を発生する過程と、 C.前記左ウエイに格納されている前記タグ・アドレス
の1つと前記タグの間に一致が存在するという条件で、
左ヒット信号を発生する過程と、 D.前記最近に用いられたポインタが前記右ウエイを指
すという条件で、前記右ヒット信号に応じてライン充填
のための前記右ウエイを選択する過程と、 E.前記右ウエイの前記右ラインが充填された時に、前
記左ウエイを指すように前記最近に用いられたポインタ
をフリップする過程と、 F.前記最近に用いられたポインタが前記左ウエイを指
すという条件で、前記左ヒット信号に応じてライン充填
のために前記左ウエイを選択する過程と、 G.前記左ウエイの前記左ラインが充填された時に、前
記右ウエイを指すように前記最近に用いられたポインタ
をフリップする過程と、を備える、ライン充填サイクル
でどのウエイが充填するかを、最近に用いられたポイン
タにより選択する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US69124091A | 1991-04-25 | 1991-04-25 | |
| US691240 | 1991-04-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0628263A true JPH0628263A (ja) | 1994-02-04 |
Family
ID=24775711
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4131375A Pending JPH0628263A (ja) | 1991-04-25 | 1992-04-27 | データ・キャッシュのための制御器において最近に用いられたデータを更新する方法および装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5530833A (ja) |
| JP (1) | JPH0628263A (ja) |
| DE (1) | DE4213073A1 (ja) |
| GB (1) | GB2255211B (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
| US5813030A (en) * | 1991-12-31 | 1998-09-22 | Compaq Computer Corp. | Cache memory system with simultaneous access of cache and main memories |
| GB2293668B (en) * | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
| US5689255A (en) * | 1995-08-22 | 1997-11-18 | Hewlett-Packard Company | Method and apparatus for compressing and decompressing image data |
| US6098150A (en) * | 1995-11-17 | 2000-08-01 | Sun Microsystems, Inc. | Method and apparatus for fetching information from a cache memory |
| US5809228A (en) * | 1995-12-27 | 1998-09-15 | Intel Corporaiton | Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer |
| US5845106A (en) * | 1996-01-26 | 1998-12-01 | Advanced Micro Devices, Inc. | Method for simulating cache operation |
| US5983313A (en) * | 1996-04-10 | 1999-11-09 | Ramtron International Corporation | EDRAM having a dynamically-sized cache memory and associated method |
| US5765192A (en) * | 1996-05-01 | 1998-06-09 | Sun Microsystems, Inc. | Method and computer program product to reuse directory search handles |
| US6202125B1 (en) * | 1996-11-25 | 2001-03-13 | Intel Corporation | Processor-cache protocol using simple commands to implement a range of cache configurations |
| US6078995A (en) * | 1996-12-26 | 2000-06-20 | Micro Magic, Inc. | Methods and apparatus for true least recently used (LRU) bit encoding for multi-way associative caches |
| US6138213A (en) | 1997-06-27 | 2000-10-24 | Advanced Micro Devices, Inc. | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line |
| US6434671B2 (en) * | 1997-09-30 | 2002-08-13 | Intel Corporation | Software-controlled cache memory compartmentalization |
| US6023747A (en) * | 1997-12-17 | 2000-02-08 | International Business Machines Corporation | Method and system for handling conflicts between cache operation requests in a data processing system |
| US6202129B1 (en) * | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
| JP2001209579A (ja) * | 2000-01-28 | 2001-08-03 | Fujitsu Ltd | キャッシュメモリ装置 |
| US6446171B1 (en) * | 2000-03-02 | 2002-09-03 | Mips Technologies, Inc. | Method and apparatus for tracking and update of LRU algorithm using vectors |
| US6408364B1 (en) * | 2000-03-17 | 2002-06-18 | Advanced Micro Devices, Inc. | Apparatus and method for implementing a least recently used cache replacement algorithm |
| US6823427B1 (en) * | 2001-05-16 | 2004-11-23 | Advanced Micro Devices, Inc. | Sectored least-recently-used cache replacement |
| GB2458295B (en) * | 2008-03-12 | 2012-01-11 | Advanced Risc Mach Ltd | Cache accessing using a micro tag |
| US20130103903A1 (en) * | 2011-10-20 | 2013-04-25 | Vidyalakshmi Rajagopalan | Methods And Apparatus For Reusing Prior Tag Search Results In A Cache Controller |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
| JP2822588B2 (ja) * | 1990-04-30 | 1998-11-11 | 日本電気株式会社 | キャッシュメモリ装置 |
| US5210845A (en) * | 1990-11-28 | 1993-05-11 | Intel Corporation | Controller for two-way set associative cache |
| US5339399A (en) * | 1991-04-12 | 1994-08-16 | Intel Corporation | Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus |
| GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
-
1992
- 1992-04-08 GB GB9207704A patent/GB2255211B/en not_active Expired - Fee Related
- 1992-04-21 DE DE4213073A patent/DE4213073A1/de not_active Withdrawn
- 1992-04-27 JP JP4131375A patent/JPH0628263A/ja active Pending
-
1995
- 1995-06-06 US US08/486,132 patent/US5530833A/en not_active Expired - Lifetime
-
1996
- 1996-06-27 US US08/671,446 patent/US5724547A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE4213073A1 (de) | 1992-10-29 |
| US5530833A (en) | 1996-06-25 |
| GB2255211A (en) | 1992-10-28 |
| GB2255211B (en) | 1995-05-17 |
| GB9207704D0 (en) | 1992-05-27 |
| US5724547A (en) | 1998-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0628263A (ja) | データ・キャッシュのための制御器において最近に用いられたデータを更新する方法および装置 | |
| US5577227A (en) | Method for decreasing penalty resulting from a cache miss in multi-level cache system | |
| JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
| US5361391A (en) | Intelligent cache memory and prefetch method based on CPU data fetching characteristics | |
| US6078992A (en) | Dirty line cache | |
| US5903911A (en) | Cache-based computer system employing memory control circuit and method for write allocation and data prefetch | |
| JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
| US5802572A (en) | Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache | |
| US6418515B1 (en) | Cache flush unit | |
| JP3771603B2 (ja) | コンピュータシステム、インテグレーテッドプロセッサ、キャッシュベースのコンピュータシステムのためのスヌープ制御方法 | |
| JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
| JPS61156346A (ja) | 記憶階層の先取り装置 | |
| JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
| JP2002536715A (ja) | 仮想メモリシステムにおけるメモリアクセスの改善技術 | |
| EP1314088A2 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
| US5479636A (en) | Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory | |
| US8209490B2 (en) | Protocol for maintaining cache coherency in a CMP | |
| US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
| WO2007082917A2 (en) | Patrol snooping for higher level cache eviction candidate identification | |
| CN1093961C (zh) | 增强存储器性能的方法及数据处理系统 | |
| US7657667B2 (en) | Method to provide cache management commands for a DMA controller | |
| US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
| US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
| JP2000067024A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
| US6715040B2 (en) | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit |