JPH07200405A - 情報をキャッシュするための回路および方法 - Google Patents

情報をキャッシュするための回路および方法

Info

Publication number
JPH07200405A
JPH07200405A JP6235731A JP23573194A JPH07200405A JP H07200405 A JPH07200405 A JP H07200405A JP 6235731 A JP6235731 A JP 6235731A JP 23573194 A JP23573194 A JP 23573194A JP H07200405 A JPH07200405 A JP H07200405A
Authority
JP
Japan
Prior art keywords
information
directory
location
memory
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.)
Granted
Application number
JP6235731A
Other languages
English (en)
Other versions
JP3169155B2 (ja
Inventor
Marc Alan Auslander
マーク・アラン・アウスランダー
Albert Chang
アルバート・チャン
Robert Morris Meade
ロバート・モリス・ミード
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 JPH07200405A publication Critical patent/JPH07200405A/ja
Application granted granted Critical
Publication of JP3169155B2 publication Critical patent/JP3169155B2/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Abstract

(57)【要約】 【目的】 情報をキャッシュする方法および回路を提供
する。 【構成】 複数の第1のメモリ位置は情報を記憶する。
第1のメモリ位置は複数のクラスから成り、各クラスは
複数の第1のメモリ位置を含む。複数の第2のメモリ位
置は、第1のメモリ位置から得た情報を記憶する。複数
のディレクトリ位置は第1および第2のメモリ位置に関
する情報を記憶する。各ディレクトリ位置は、複数のク
ラス中の複数の第1のメモリ位置のどれにでも第2のメ
モリ位置を関係付けることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的にはデータ処理
に関し、詳細には情報をキャッシュする方法および回路
に関する。
【0002】
【従来の技術】多数の情報処理システムは、システム・
メモリとキャッシュ・メモリを共に含む。キャッシュ・
メモリとは、比較的小型で高速のメモリであり、システ
ム・メモリの1つまたは複数の部分から得た情報のコピ
ーを記憶する。キャッシュ・メモリは、システム・メモ
リとは物理的に異なることが多い。そのようなキャッシ
ュ・メモリはシステムのプロセッサ装置と一体でも、プ
ロセッサと一体でなくてもよい。
【0003】情報はシステム・メモリの一部からキャッ
シュ・メモリにコピーすることができる。キャッシュ・
メモリ中の情報は修正することができる。さらに、キャ
ッシュ・メモリから得た修正された情報を再び、システ
ム・メモリの一部にコピーすることができる。したがっ
て、キャッシュ・メモリ中の情報をシステム・メモリに
対して相対的にマップすることが重要である。
【0004】情報をキャッシュするための従来の技術に
は、ダイレクト・マッピング、セット・アソシアティブ
・マッピング、およびフル・アソシアティブ・マッピン
グが含まれる。ダイレクト・マッピングの欠点は、すべ
ての可能なアドレスの範囲が複数のサブセットとして論
理的に構成され、キャッシュ・メモリがどの瞬間にも、
各サブセットのそれぞれただ1つのアドレスに関する情
報を記憶しているように割り振られることである。セッ
ト・アソシアティブ技術の欠点は、キャッシュ・メモリ
から情報が出力された後、アドレス比較に応答してその
ような情報の一部が選択され、キャッシュ・メモリから
出力される情報が遅れて選択されることである。フル・
アソシアティブ技術の欠点は、そのような技術のCAM
アレイが比較的大きく、高価で、複雑で、かつ低速であ
ることである。
【0005】
【発明が解決しようとする課題】したがって、すべての
可能なアドレスの範囲が複数のサブセットとして論理的
に構成され、どの瞬間にもサブセットの複数のアドレス
に関する情報を記憶しているようにキャッシュ・メモリ
を割り振ることができる、情報をキャッシュする方法お
よび回路が必要になっている。すべての可能なアドレス
の範囲が複数のサブセットとして論理的に構成され、ど
の瞬間にもすべてよりも少ない数のサブセットのそれぞ
れのアドレスに関する情報を記憶しているようにキャッ
シュ・メモリを割り振ることができる、情報をキャッシ
ュする方法および回路も必要になっている。さらに、
(アドレス比較に応じて)選択された情報が遅れてキャ
ッシュ・メモリから出力されることのない、情報をキャ
ッシュする方法および回路が必要になっている。さら
に、CAMアレイがフル・アソシアティブ技術のCAM
アレイよりもずっと小さく、廉価で、簡単で、かつ高速
である、情報をキャッシュする方法および回路が必要に
なっている。
【0006】
【課題を解決するための手段】情報をキャッシュする方
法および回路では、複数の第1メモリ位置に情報を記憶
する。第1メモリ位置は複数のクラスから成り、各クラ
スは複数の第1メモリ位置を含む。複数の第2メモリ位
置は、第1メモリ位置から得た情報を記憶する。複数の
ディレクトリ位置は、第1および第2メモリ位置に関す
る情報を記憶する。各ディレクトリ位置は、複数のクラ
ス中の複数の第1メモリ位置のどれにでも第2メモリ位
置を関係付けることができる。
【0007】本発明の技術的利点は、すべての可能なア
ドレスの範囲が複数のサブセットとして論理的に構成さ
れ、どの瞬間にもサブセットの複数のアドレスに関する
情報を記憶しているようにキャッシュ・メモリを割り振
れることである。
【0008】本発明の他の技術的利点は、すべての可能
なアドレスの範囲が複数のサブセットとして論理的に構
成され、どの瞬間にもすべてよりも少ない数のサブセッ
トのそれぞれのアドレスに関する情報を記憶しているよ
うにキャッシュ・メモリを割り振れることである。
【0009】本発明の他の技術的利点は、(アドレス比
較に応じて)キャッシュ・メモリから出力される情報が
遅れて選択されることがないことである。
【0010】本発明の他の技術的利点は、CAMアレイ
がフル・アソシアティブ技術のCAMアレイよりもずっ
と小さく、廉価で、簡単で、かつ高速であることであ
る。
【0011】
【実施例】本発明の典型的な実施例およびその利点は、
図面の図1ないし15を参照すればよりよく理解されよ
う。添付の図面の対応する同じ部品には同じ参照符号を
使用してある。
【0012】図1ないし3は、従来技術による情報をキ
ャッシュするための典型的なマッピング技術の概念図で
ある。キャッシュ・ディレクトリ10はp=2k=8個
の項目を有し、各項目はキャッシュ・メモリ内のそれぞ
れの情報ブロックに関連している。マトリックス12は
q=2m+k=64個の8進アドレスを有し、各アドレス
は二次メモリ内のそれぞれの情報ブロックを表す。図1
ないし3はマトリックス12の各ブロックを、それぞれ
のブロックに関連するアドレスと共に示す。マトリック
ス12のq個の8進アドレスはそれぞれm+k=6アド
レス・ビットを有する。
【0013】図1は、ダイレクト・マッピング技術を示
す。図1で、マトリックス12およびディレクトリ10
はp=2k=8個の合同クラスとして論理的に構成され
ている。合同クラスはアドレスの下位kアドレス・ビッ
トによって指定される。したがって、各合同クラスは複
数のアドレスを含み、すべてのアドレスは同じ下位kア
ドレス・ビットを共用する。図1の場合、k=3および
m=3である。
【0014】たとえば、図1では、下位3アドレス・ビ
ットが8進7であるアドレスがすべて、1つの合同クラ
スに含まれる。この合同クラスには、8進アドレス0
7、17、27、37、47、57、67、77が含ま
れる。同様に、他の合同クラスには8進アドレス02、
12、22、32、42、52、62、72が含まれ
る。
【0015】図1で、各合同クラスは、事前に割り当て
られた関連項目をそれぞれ1つずつキャッシュ・ディレ
クトリ10内に有する。したがって、どの瞬間にも、キ
ャッシュ・メモリは合同クラスの1つのアドレスだけに
関する情報を記憶している。この単一のアドレスは、キ
ャッシュ・ディレクトリ10の合同クラスの関連項目中
で指定される。たとえば、キャッシュ・ディレクトリ1
0は、単一のアドレスの上位mアドレス・ビットを含む
タグを合同クラスの関連項目に記憶することができる。
図1の場合、m=3である。
【0016】一例として、図1で、キャッシュ・ディレ
クトリ10は、下位3アドレス・ビットが8進5である
8つのアドレスのうちで、タグ値が8進4である8進ア
ドレス45だけに関する情報をキャッシュ・メモリが記
憶していることを示す。同様に、キャッシュ・ディレク
トリ10は、下位3アドレス・ビットが8進1である8
つのアドレスのうちで、8進アドレス31だけに関する
情報をキャッシュ・メモリが記憶していることを示す。
【0017】したがって、アドレスADDRの下位kア
ドレス・ビットはADDRの合同クラスを指定する。さ
らに、下位kアドレス・ビットは、2進復号によって、
キャッシュ・ディレクトリ10内の合同クラスの関連項
目と、キャッシュ・メモリ内の該項目の関連ブロックと
にアクセスするためのインデックスとして働く。キャッ
シュ・ディレクトリ10のインデックス付き項目は読み
取られてADDRと比較される。ADDRがインデック
ス付き項目に一致する場合、キャッシュ・メモリのイン
デックス付きブロックはADDRに関する情報を記憶し
ている。
【0018】ダイレクト・マッピング技術の欠点は、キ
ャッシュ・メモリ中に1つのアドレスの情報が記憶され
ると、同じ合同クラスの他のすべてのアドレスに関する
情報が記憶できなくなることである。この欠点は、合同
クラスの数(2k)がキャッシュ・ディレクトリ10中
の項目の数(2k)に限られ、それによって、多数のア
ドレスがキャッシュ・ディレクトリ10中の単一の項目
を共用せざるを得なくなることによって増大する。同様
に、単一の合同クラスのアドレスはすべて、キャッシュ
・メモリ中の単一の項目を共用せざるを得ない。
【0019】図2はn重セット・アソシアティブ・マッ
ピング技術を示す。ここでn=2である。図2で、マト
リックス12およびディレクトリ10はp/n=4個の
合同クラスとして論理的に構成されている。合同クラス
はアドレスの下位yアドレス・ビットによって指定され
る。ここでp/n=2yである。したがって、各合同ク
ラスは複数のアドレスを含み、該アドレスはすべて、同
じ下位yアドレス・ビットを共用する。図2の場合、k
=3およびy=2である。
【0020】たとえば図2で、1つの合同クラスは、下
位2アドレス・ビットが値=3を有するすべてのアドレ
スを含む。この合同クラスには8進アドレス03、0
7、13、17、23、27、33、37、43、4
7、53、57、63、67、73、77が含まれる。
同様に、他の合同クラスには8進アドレス01、05、
11、15、21、25、31、35、41、45、5
1、55、61、65、71、75が含まれる。
【0021】図2で、キャッシュ・ディレクトリ10
は、それぞれ4つのブロックを有する、2つの列として
論理的に構成されている。したがって、各合同クラス
は、それぞれ事前に割り当てられた関連する1組の第1
および第2項目をキャッシュ・ディレクトリ10内に有
する。したがって、キャッシュ・メモリはどの瞬間に
も、合同クラスの第1および第2アドレスに関する情報
を記憶している。第1および第2アドレスはキャッシュ
・ディレクトリ10内の合同クラスの関連する1組の第
1および第2項目中で指定される。たとえば、キャッシ
ュ・ディレクトリ10は、第1アドレスの上位m+1ア
ドレス・ビットを含む第1タグを第1関連項目に記憶す
ることができ、第2アドレスの上位m+1アドレス・ビ
ットを含む第2タグを第2関連項目に記憶することがで
きる。図2の場合、m=3である。
【0022】一例を挙げると、図2で、キャッシュ・デ
ィレクトリ10は、キャッシュ・メモリが下位2アドレ
ス・ビットが値=1を有する16個のアドレスのうち
で、8進アドレス05および8進アドレス11だけに関
する情報を記憶していることを示す。同様に、キャッシ
ュ・ディレクトリ10は、キャッシュ・メモリが下位2
アドレス・ビットが値=3を有する16個のアドレスの
うちで、8進アドレス43および8進アドレス13だけ
に関する情報を記憶していることを示す。
【0023】したがって、アドレスADDRの下位yア
ドレス・ビットはADDRの合同クラスを指定する。さ
らに、下位yアドレス・ビットは、キャッシュ・ディレ
クトリ10内の合同クラスに関連する2項目の組と、キ
ャッシュ・メモリ内の該項目に関連する2ブロックの組
とにアクセスするためのインデックスとして働く。キャ
ッシュ・ディレクトリ10の2つのインデックス付き項
目は読み取られてADDRと比較される。ADDRが1
つのインデックス付き項目に一致する場合、キャッシュ
・メモリの一致する項目の関連ブロックはADDRに関
する情報を記憶している。セット・アソシアティブ技術
の欠点は、キャッシュ・ディレクトリ10の2つのイン
デックス付き項目の間の選択によって、キャッシュ・メ
モリから出力される情報が遅れて選択されることであ
る。
【0024】図3はフル・アソシアティブ・マッピング
技術を示す。図3で、マトリックス12およびディレク
トリ10は合同クラスとして論理的に構成されていな
い。したがって、キャッシュ・メモリはどの瞬間にも、
8つのアドレスのどのグループに関する情報でも記憶す
ることができる。これら8つのアドレスはキャッシュ・
ディレクトリ10の8つの項目中に指定される。たとえ
ば、キャッシュ・ディレクトリ10は、それぞれアドレ
スのビットをすべて含む、8つのタグを記憶することが
できる。
【0025】図3で、キャッシュ・ディレクトリ10は
p=8個のCAM項目 × m+k=6アドレス・ビッ
トの内容アドレス可能メモリ(CAM)アレイとして構
成されている。キャッシュ・ディレクトリ10はCMA
アレイとして、アドレスADDRを入力し、8つのCA
M項目中のすべてのアドレスと同時に比較する。ADD
RがCAM項目のアドレスのどれかに一致する場合、A
DDRに関する情報を記憶しているキャッシュ・メモリ
・ブロックを直接選択するようにそれぞれ1つの一致線
14a−hがアサートされる。したがって、キャッシュ
・ディレクトリ10はキャッシュ・メモリ用のデコーダ
およびアクセス機構として働く。
【0026】フル・アソシアティブ技術の欠点は、m+
k本のアドレス・ビット線 × p本の一致線を有する
CAMアレイが、経費がかかり、複雑であり、低速であ
ることである。これは、アドレス・ビットの数(m+
k)が二次メモリ・ブロックの数(q=2m+k)と共に
増加するときに特に当てはまる。
【0027】図4は、全体的に20で示される典型的な
CMOS CAMセルの概略電気回路図である。CAM
セル20は、CAMセル20に事前に記憶された2進値
との比較のためにビット線BITおよび
【数1】 上に2進値を入力する。入力した2進値が、事前に記憶
された2進値に一致しない場合、CAMセル20は一致
線22をプルダウンする。
【0028】CAM線は、それぞれ、共通一致線22に
接続された、複数のCAMセル(CAMセル20など)
から形成されている。CAMセル20だけでなく、CA
M線の他のCAMセル(図示せず)も線24を介して共
通一致線22に接続されている。したがって、一致線2
2の状態は、該線に接続されたすべてのCSMセルが、
入力されたそれぞれの2進値と事前に記憶されたそれぞ
れの2進値の間の一致を有するかどうかを示す。このよ
うに、CAM線は、それに事前に記憶されたマルチビッ
ト2進アドレスとの比較のためにマルチビット2進アド
レスを入力する。入力された2進値が、事前に記憶され
た2進アドレスに一致する場合、CAM線は、キャッシ
ュ・メモリ内のCAM線の関連情報ブロックを直接選択
するように共通一致線22をアサートする。
【0029】図5は、好ましい実施例によって情報をキ
ャッシュするセミ・アソシアティブ・マッピング技術の
概念図である。キャッシュ・ディレクトリ30はp=2
k=8個の項目(または位置)を有し、該項目はそれぞ
れ、(図6ないし8と図14および15に示した)キャ
ッシュ・メモリ内のそれぞれの情報ブロック(または
「位置」)に関連する。マトリックス32はq=2m+k
=64個の8進アドレスを有し、該アドレスはそれぞ
れ、(図8に示した)二次メモリ内のそれぞれの情報ブ
ロック(または「位置」)を表す。マトリックス32の
9個の8進アドレスはそれぞれm+k=6アドレス・ビ
ットを有する。
【0030】図5で、マトリックス32およびディレク
トリ30は2(k+j)個の合同クラスに論理的に構成され
ている。ここで、2kは一次合同クラスの数であり、2j
は二次合同クラス(「合同サブクラス」)の数である。
図5では、p*2=2(k+j)=16であり、したがって
k=3およびj=1である。一次/二次合同クラスはア
ドレスのインデックス(k+j)アドレス・ビットで指
定される。したがって、各合同クラスは複数のアドレス
を含み、該アドレスはすべてインデックス(k+j)ア
ドレス・ビットを共用する。
【0031】たとえば、図5で、1つの合同クラスは、
インデックス(k+j)アドレス・ビットが0001で
あるアドレスをすべて含む。この合同クラスには8進ア
ドレスの01、21、41、61が含まれる。同様に、
他の合同クラス(インデックス(k+j)アドレス・ビ
ットが1001であるもの)には8進アドレス11、3
1、51、71が含まれる。
【0032】好ましい実施例の重要な態様では、合同ク
ラスはキャッシュ・ディレクトリ30内の項目に事前に
割り当てられない。その代わり、合同クラスはキャッシ
ュ・ディレクトリ30内の項目に動的に関連付けられる
(すなわち、「割り振られる」)。したがって、各キャ
ッシュ・ディレクトリ30項目は、複数の合同クラス中
の複数の二次メモリ・ブロックのどれにでもキャッシュ
・メモリ・ブロックを関係付けることができる。
【0033】どの瞬間にも、2(k+j)個の合同クラスの
うちの最大2k個が、任意のグループ分けおよび任意の
順序でキャッシュ・ディレクトリ30内にそれぞれの関
連項目を有する。したがって、キャッシュ・メモリはど
の瞬間にも、2(k+j)個の合同クラスのうちの最大2k
に関する情報を任意のグループ分けおよび任意の順序で
記憶する。合同クラスの値は、キャッシュ・ディレクト
リ30内の合同クラスの動的関連項目のk+j個のCA
Mセルに記憶される。キャッシュ・ディレクトリ30内
の合同クラスの関連項目には、合同クラスの複数のアド
レスのうちの1つが指定される。たとえば、キャッシュ
・ディレクトリ30は、アドレスの上位(m−j)アド
レス・ビットを含むタグを合同クラスの関連項目に記憶
することができる。図5の場合、m=3である。
【0034】一例として、図5で、キャッシュ・ディレ
クトリ30は、インデックス(k+j)アドレス・ビッ
トが1101である4つのアドレス(8進アドレス1
5、35、55、75)のうちの、8進アドレス55に
関する情報をキャッシュ・メモリが記憶していることを
示す。そのような状況で、k+jインデックス・ビット
1101は合同クラスのキャッシュ・ディレクトリ30
項目のCAMビット部分に記憶され、m−jタグ・ビッ
トは合同クラスのキャッシュ・ディレクトリ30項目の
タグ部分に記憶される。これに対して、キャッシュ・デ
ィレクトリ30は、インデックス(k+j)アドレス・
ビットが0011である4つのアドレス(8進アドレス
03、23、43、63)のうちのどれに関する情報も
キャッシュ・メモリが記憶していないことを示す。
【0035】典型的な実施例では、キャッシュ・ディレ
クトリ30内の1つの関連項目だけが特定の合同クラス
に与えられ、それによって、キャッシュ・メモリはどの
瞬間にも特定の合同クラスの1つのアドレスだけに関す
る情報を記憶することができる。これに対して、好まし
い実施例では、キャッシュ・ディレクトリ30内の複数
の関連項目が任意のグループ分けおよび任意の順序で特
定の合同クラスに与えられ、それによって、キャッシュ
・メモリはどの瞬間にも、特定の合同クラスの複数のア
ドレスに関する情報を任意のグループ分けおよび任意の
順序で記憶することができる。
【0036】図6は、図5のセミ・アソシアティブ・マ
ッピング技術によって情報をキャッシュする、全体的に
100で示される第1典型的な回路のブロック図であ
る。図6は、それぞれ64バイトのp=2k=512個
のブロックを有する32キロバイトRAMキャッシュ・
メモリ・アレイ102に対するセミ・アソシアティブ・
マッピングを示す。キャッシュ・ディレクトリ104は
p個の項目を有し、各項目はそれぞれ、キャッシュ・メ
モリ・アレイ102内のそれぞれの情報ブロックに関連
する。2(k+j)個の合同クラスとキャッシュ・ディレク
トリ104内のp=2k個の項目との間のランダムな関
連付けを達成するために、回路100は(k+j)ビッ
ト × p本のCAM一致ワード線107を有するデコ
ーダCAMアレイ106を含む。
【0037】キャッシュ・ディレクトリ104自体は
(m−j)アドレス・ビット × p本の線のRAMア
レイである。図6では、m=37、k=9、j=5、m
−j=32、k+j=14、p=512である。したが
って、キャッシュ・ディレクトリ104は、それぞれ3
2ビットの512個の項目を、タグや検査ビットなどの
制御ビットと共に含む。52ビット・アクセス・アドレ
ス108の下位6ビットは、キャッシュ・メモリ・アレ
イ102によって出力される情報ブロック中の64バイ
トのうちの1バイトを選択する。
【0038】合同クラスはアドレスのインデックス(k
+j)アドレス・ビットによって指定される。デコーダ
CAMアレイ106は、合同クラスのインデックス(k
+j)アドレス・ビットをデコーダCAMアレイ106
のp個の項目のうちの1つに記憶することによって、キ
ャッシュ・ディレクトリ104内の項目に合同クラスを
割り当てる。第1サイクル中に、アクセス・アドレス1
08の(k+j)ビットによって表される合同クラス
が、割り当てられた項目をキャッシュ・ディレクトリ1
04内に有する場合、デコーダCAMアレイ106は、
キャッシュ・ディレクトリ104内の割り当てられた項
目を直接選択し、かつキャッシュ・メモリ・アレイ10
2内の割り当てられた項目の関連情報ブロックも選択す
るように、p本のワード線107のそれぞれ1本をアサ
ートする。
【0039】pワード線がアサートされたことに応じ
て、キャッシュ・ディレクトリ104は選択されたキャ
ッシュ・ディレクトリ項目から得た(m−j)アドレス
・ビットを比較機構112に出力する。さらに、キャッ
シュ・メモリ・アレイ102はデコーダ・ヒット線11
0をアサートし、選択されたキャッシュ・メモリ・アレ
イ・ブロックから得た64バイト情報ブロックをバス1
09に出力する。これに対して、第1サイクル中に、ア
クセス・アドレス108の(k+j)ビットによって表
される合同クラスが、割り当てられた項目をキャッシュ
・ディレクトリ104内に有していない場合、デコーダ
CAMアレイ106はp本のワード線107のどれもア
サートしない。さらに、キャッシュ・メモリ・アレイ1
02はデコーダ・ヒット線110もアサートしない。
【0040】第2サイクル中に、比較機構112は、
(m−j)アクセス・アドレス108ビットが、キャッ
シュ・ディレクトリ104によって出力された(m−
j)アドレス・ビットに一致すると判定した場合、ディ
レクトリ・ヒット線114をアサートする。したがっ
て、デコーダCAMアレイ106とキャッシュ・ディレ
クトリ104は共に、キャッシュ・メモリ・アレイ10
2用のデコーダ/アクセス回路として働く。具体的に
は、デコーダ・ヒット線110がアサートされても、デ
ィレクトリ・ヒット線114がアサートされないことが
ある。さらに、キャッシュ・メモリ・アレイ102から
得た情報は、アドレス・タグの比較とは独立に第1サイ
クル中にアクセスすることができる。アドレス・タグの
比較は、第1サイクル中にアクセスされた情報を使用し
ながら、第2サイクル中に行うことができる。
【0041】典型的な実施例では、割当てカウンタ11
6がキャッシュ・メモリ・アレイへの情報のロードとキ
ャッシュ・メモリ・アレイ102中の該情報の置換を命
令する。最初は、キャッシュ・メモリ・アレイ102中
の情報はどれも有効ではない。最終的には、キャッシュ
・メモリ・アレイ102はいくつかの適用可能な規則の
うちのどれかに従って有効な情報で満たされる。1つの
典型的な規則によれば、割当てカウンタ116は値0に
初期設定される。キャッシュ・メモリ・アレイ102は
第1ブロック0から最後のブロック(p−1)まで順
次、有効な情報で満たされる。
【0042】アドレスから得た情報をキャッシュ・メモ
リ・アレイ102に記憶するための動作の場合、デコー
ダ・ヒット線110は、アクセス・アドレス108の
(k+j)ビットによって表される合同クラスがすでに
キャッシュ・ディレクトリ104内の項目に(したがっ
て、キャッシュ・メモリ・アレイ102内の割り当てら
れた項目の関連情報ブロックにも)割り当てられている
かどうかを示す。合同クラスがすでにキャッシュ・ディ
レクトリ104内の項目に割り当てられていることをデ
コーダ・ヒット線110が示す場合、二次メモリ・ブロ
ックから得た入力情報が、キャッシュ・メモリ・アレイ
102内の割り当てられた項目の関連情報ブロックに書
き込まれる。
【0043】合同クラスがまだキャッシュ・ディレクト
リ104内の項目に割り当てられていないことをデコー
ダ・ヒット線110が示す場合、2進デコーダ118は
割当てカウンタ116の値に応じてp本のワード線12
0のうちの1本を選択する。2進デコーダ118は、p
本のワード線120のうちの1本を選択することによっ
て、デコーダCAMアレイ106の対応する項目を選択
する。デコーダCAMアレイ106の選択されたこの項
目にはアクセス・アドレス108のインデックス(k+
j)ビットが書き込まれ、それによって、合同クラスが
キャッシュ・ディレクトリ104内の項目に(したがっ
て、キャッシュ・メモリ・アレイ102内の割り当てら
れた項目の関連情報ブロックにも)割り当てられる。
【0044】(アクセス・アドレス108の(k+j)
ビットによって表される)合同クラスがキャッシュ・デ
ィレクトリ104内の項目に割り当てられた後、デコー
ダCAMアレイ106は、キャッシュ・ディレクトリ1
04内の割り当てられた項目を直接選択し、キャッシュ
・メモリ・アレイ102内の割り当てられた項目の関連
情報ブロックも選択するようにp本のワード線107の
うちの1本をアサートする。次いで、キャッシュ・ディ
レクトリ104はアクセス・アドレス108の上位(m
−j)アドレス・ビットを入力し、選択されたキャッシ
ュ・ディレクトリ項目にそれを記憶する。さらに、キャ
ッシュ・メモリ・アレイ102はアクセス・アドレス1
08に関する64バイトの情報ブロックをバス111を
介して入力し、選択されたキャッシュ・メモリ・アレイ
・ブロックにそのような情報を記憶する。最後に、割当
てカウンタ116が増分される。
【0045】最終的にキャッシュ・メモリ・アレイ10
2は、割当てカウンタ116が(p−1)に増分するよ
うに満たされる。そのような状況で、(アクセス・アド
レス108の(k+j)ビットによって表される)合同
クラスが、割り当てられた項目をキャッシュ・ディレク
トリ104内に有していないことをデコーダ・ヒット線
110が示す場合、そのような合同クラスはデコーダC
AMアレイ106およびキャッシュ・ディレクトリ10
4中の最後の項目に割り当てられる。次いで、そのよう
な新たに割り当てられた次の合同クラスが、割当てカウ
ンタ116を値(p−1)からゼロにリセットすること
によって、デコーダCAMアレイ106およびキャッシ
ュ・ディレクトリ104中の最も以前に割り当てられた
合同クラスを変位させる。
【0046】代替実施例では、新たに割り当てられた合
同クラスは、前に割り当てられた合同クラスのうちのラ
ンダムに選択された1つを変位させる。他の代替実施例
では、新たに割り当てられた合同クラスは、最も以前に
アクセスされた合同クラスを変位させる。
【0047】同様に、アクセス・アドレス108が、キ
ャッシュ・メモリ・アレイ102内の情報がすでに記憶
されているアドレスに等しくないことをデコーダ・ヒッ
ト線110またはディレクトリ・ヒット線104が示す
場合、キャッシュ・メモリ・アレイ102の選択された
ブロックに新しい情報が書き込まれる前に、前に記憶さ
れた情報がキャッシュ・メモリ・アレイ102の選択さ
れたブロックから読み取られて、再び二次メモリに書き
込まれる。
【0048】デコーダCAMアレイ106、キャッシュ
・ディレクトリ104、およびキャッシュ・メモリ・ア
レイ102はp=2k本の線を有する単一の集積メモリ
で形成することができる。そのような各線は、デコーダ
・インデックス・ビット(図6でデコーダCAMアレイ
106として表されたj+kアドレス・ビット)の論理
グループと、ディレクトリRAMタグ・ビット(図6で
キャッシュ・ディレクトリ104として表されたm−j
アドレス・ビット)の論理グループと、図6でキャッシ
ュ・メモリ・アレイ102として表された情報RAMの
論理グループとを有する。実施例によっては、デコーダ
CAMアレイ106用の個別の非集積CAMアレイと、
キャッシュ・ディレクトリ104およびキャッシュ・メ
モリ・アレイ102用の個別の非集積RAMとを有すれ
ば好都合であろう。
【0049】典型的な実施例では、キャッシュ・ディレ
クトリ104内の割り当てられた1つの項目だけが特定
の合同クラスに与えられ、それによって、キャッシュ・
メモリ・アレイ102はどの瞬間にも、特定の合同クラ
スの1つのアドレスだけに関する情報を記憶することが
できる。そのような典型的な実施例では、キャッシュ・
メモリ・アレイ102に1つのアドレスの情報が記憶さ
れると、同じ合同クラスの他のすべてのアドレスに関す
る情報が記憶できなくなる。そのような典型的な実施例
でも、セミ・アソシアティブ技術での合同クラスの数
(2k+j)はキャッシュ・ディレクトリ104中の項目
の数(2k)に限定されないので、セミ・アソシアティ
ブ技術はダイレクト・マッピング技術と比べて好都合で
ある。したがって、特にjの値が増加するにつれて、キ
ャッシュ・ディレクトリ104中の項目を共用するアド
レスが少なくなるので、セミ・アソシアティブ技術はダ
イレクト・マッピング技術と比べて好都合である。
【0050】セット・アソシアティブ技術と異なり、ア
ドレスの情報がキャッシュ・メモリ・アレイ102内の
項目の関連情報ブロックに記憶されているかどうかを判
定するために、キャッシュ・ディレクトリ104内の1
つの項目だけがアクセス・アドレス108と比較され
る。この比較によって、キャッシュ・メモリ・アレイ1
02から出力される情報の有効性が示される。したがっ
て、セミ・アソシアティブ技術は、選択された情報が遅
れてキャッシュ・メモリから出力される、セット・アソ
シアティブ技術の欠点を有していない。
【0051】フル・アソシアティブ技術と比べて、セミ
・アソシアティブ技術のデコーダCAMアレイ106は
幅がm+kビットではなくj+kビットである。一般
に、j<<mであり、したがって、セミ・アソシアティ
ブ技術のデコーダCAMアレイ106はフル・アソシア
ティブ技術のデコーダCAMアレイよりもずっと小さ
く、廉価で、簡単で、かつ高速である。さらに、デコー
ダCAMアレイ106のj+k幅は二次メモリ・ブロッ
クの数(q=2m+k)と共に増加するとは限らない。
【0052】具体的には、jが増加してmに等しくなる
と、セミ・アソシアティブ・マッピングはフル・アソシ
アティブになる。逆に、jが減少して0に等しくなる
と、セミ・アソシアティブ・マッピングはダイレクト・
マッピングになる。典型的な実施例では、キャッシュ・
ディレクトリ104内の割り当てられた1つの項目だけ
が特定の合同クラスに与えられ、それによって、キャッ
シュ・メモリ・アレイ102はどの瞬間にも、特定の合
同クラスの1つのアドレスだけに関する情報を記憶する
ことができる。そのような典型的な実施例では、合同ク
ラス区画は低いミス率を達成するようにかなり上位のも
のであることが好ましい。命令キャッシュの場合、j=
3でのミス率が2重セット・アソシアティブ・キャッシ
ュのミス率に匹敵することがプログラム・トレース分析
によって示されている。データ・キャッシュの場合、j
=5でのミス率が4重セット・アソシアティブ・キャッ
シュのミス率に匹敵することがプログラム・トレース分
析によって示されている。
【0053】図5は、図5のセミ・アソシアティブ・マ
ッピング技術によって情報をキャッシュするための、全
体的に200で示される第2典型的な回路のブロック図
である。図7に示したように、セミ・アソシアティブ・
マッピング技術は実r重セット・アソシアティブ・マッ
ピング技術と組み合わせて使用することができる。典型
的なキャッシュ・メモリ・アレイ202は、サイズが3
2キロバイトで、ブロック・サイズが64バイトであ
り、それによって、キャッシュ・メモリ・アレイ202
は512本の線を含み、各線がそれぞれのブロック情報
を記憶する。
【0054】アクセス実効アドレス(「EA」)はバッ
ファ204にラッチされ、セグメント・レジスタ(「S
R」)206および変換索引バッファ(「TLB」)2
08を介して関連実アドレスに変換され、マルチプレク
サ210に出力される。具体的には、実効アドレスEA
のビット20ないし211は関連実アドレスのビット2
0ないし2 11と同じである。
【0055】好ましい実施例では、4重セット・アソシ
アティブ・マッピング技術によって、キャッシュ・ディ
レクトリ216の512本の線は128行および4列
(または「セット」)として論理的に構成される。した
がって、キャッシュ・ディレクトリ216の各行は4本
の線を含む。
【0056】セミ・アソシアティブ・マッピング技術に
よれば、デコーダCAMアレイ214は64個の「キャ
ムレット」として論理的に構成された512本のCAM
線を有する。したがって、デコーダCAMアレイ214
の各キャムレットはそれぞれ1組8本のCAM線を含
む。デコーダCAMアレイ214のそのような各CAM
線がそれぞれのキャムレット項目を記憶し、それによっ
て各キャムレットは8つのキャムレット項目を有する。
【0057】デコーダCAMアレイ214の各キャムレ
ットはキャッシュ・メモリ・アレイ202内に関連する
2本の線を有し、それによって、キャムレットの8つの
キャムレット項目はそれぞれ、キャッシュ・メモリ・ア
レイ202内の該キャムレットに関連する2本の線のブ
ロック8つに関連付けられる。このように、デコーダC
AMアレイ214の各キャムレット項目(または
「線」)は、キャッシュ・メモリ・アレイ202中のそ
れぞれのブロック(または「線」)に関連付けられる。
同様に、デコーダCAMアレイ214の各キャムレット
項目は、キャッシュ・ディレクトリ216中の512個
の項目(または「線」)それぞれ1つずつに関連する。
キャッシュ・ディレクトリ216の512個の項目は、
キャッシュ・メモリ・アレイ202に対応するように、
128行および4列として論理的に構成される。
【0058】デコーダCAMアレイ214の各キャムレ
ット項目は、実効アドレスのビット212ないし219を含
む実効アドレス・インデックスを記憶する。「キャムレ
ット」アドレスは実効アドレスEAのビット26ないし
11で形成される。キャムレット・アドレスはデコーダ
CAMアレイ214中の64個のキャムレットのうちの
1つを選択し、それにしたがって、キャッシュ・ディレ
クトリ216およびキャッシュ・メモリ・アレイ202
中のキャムレットに関連する2行を識別する。
【0059】実効アドレス・ルックアップ動作の場合、
キャムレット・アドレスはデコーダCAMアレイ214
中の64個のキャムレットのうちの1つを選択する。ア
クセス・アドレスEAの実効アドレス・インデックス
(ビット212ないし219)は、選択されたキャムレット
220の8ビット・キャムレット項目218すべてと比
較される。1つのキャムレット項目218が、アクセス
・アドレスEAの実効アドレス・インデックスに一致
し、かつ有効である場合、一致するキャムレット項目に
関連するキャッシュ・ディレクトリ216の項目それぞ
れから比較機構212に実アドレス・タグ(実アドレス
のビット212ないし2n-1。ここでn=52)が出力さ
れる。さらに、一致するキャムレット項目に関連するキ
ャッシュ・メモリ・アレイ202中のそれぞれのブロッ
クからマルチプレクサ224に情報ブロックが出力さ
れ、回路200がデコーダ・ヒット線223を論理値
「1」にセットする。マルチプレクサ224は、アクセ
ス・アドレスEAのビット20ないし25に応じて、キャ
ッシュ・メモリ・アレイ202によって出力された情報
ブロックから(事前に選択されたサイズを有する)ワー
ド226を出力する。
【0060】そのような実効アドレス・ルックアップ動
作と同時に、アクセス・アドレスEAがSR206およ
びTLB208を介して関連実アドレスに変換され、マ
ルチプレクサ210を介して比較機構212に出力され
る。比較機構212は、マルチプレクサ210から得た
変換された実アドレスをキャッシュ・ディレクトリ21
6から得た実アドレス・タグと比較する。変換された実
アドレスが実アドレス・タグに一致する場合、比較機構
212はディレクトリ・ヒット線222をアサートし、
実効アドレス・ルックアップ動作が首尾よく完了する。
【0061】1つのキャムレット項目218が、アクセ
ス・アドレスEAの実効アドレス・インデックスに一致
するが、何らかの理由で、マルチプレクサ210から得
た変換された実アドレスがキャッシュ・ディレクトリ2
16から得た実アドレス・タグに一致しない場合、回路
200はデコーダCAMアレイ214中の一致するキャ
ムレット項目を無効化する。それにもかかわらず、情報
は、一致するキャムレット項目に関連するキャッシュ・
メモリ・アレイ202中のそれぞれのブロックにそのま
ま残る。
【0062】さらに、実効アドレス・ルックアップ動作
が何らかの理由で成功しない場合、回路200は、変換
された実アドレスRAに応じて実4重セット・アソシア
ティブ・キャッシュとしてのキャッシュ・メモリ・アレ
イ202を探索するための実アドレス・ルックアップ動
作を実行する。典型的な実施例では、マルチプレクサ2
10から得た実アドレスのビット26ないし212に応じ
てキャッシュ・ディレクトリ216の128行のうちの
1行が選択される。回路200は、キャッシュ・ディレ
クトリ216の選択された行に沿って、マルチプレクサ
210から得た実アドレスと4列中の項目を比較する。
【0063】これら4つの比較の場合、キャッシュ・デ
ィレクトリ216の各項目は実アドレスのビット213
いし2n-1(ここで、実アドレスはn=52ビットを有
する)しか記憶できない。それにもかかわらず、キャッ
シュ・ディレクトリ216およびキャッシュ・メモリ・
アレイ202がセミ・アソシアティブ技術のデコーダC
AMアレイ214との組合せでより容易に操作されるよ
うに、各ディレクトリ項目は実アドレスのビット212
記憶する。
【0064】実アドレス・ルックアップ動作時に、キャ
ッシュ・ディレクトリ216の比較された項目のうちの
1つがマルチプレクサ210から得た実アドレスに一致
する場合、デコーダCAMアレイ214中の一致するデ
ィレクトリ項目の関連キャムレット項目は、アクセス・
アドレスEAが、マルチプレクサ210から得た実アド
レスに関連するように、適当な実効アドレス・インデッ
クスを記憶するように修正される。さらに、(マルチプ
レクサ210から得た実アドレスのビット26ないし2
12に応じて選択されたキャッシュ・メモリ・アレイ20
2の行中の)一致するディレクトリ項目の関連情報ブロ
ックがキャッシュ・メモリ・アレイ202からマルチプ
レクサ224に出力される。(EAの関連実アドレスの
0ないし25と同じ)アクセス・アドレスEAのビット
0ないし25に応じて、マルチプレクサ224は、キャ
ッシュ・メモリ・アレイ202によって出力された情報
ブロックから得たワード226を出力する。
【0065】実アドレス・ルックアップ動作が何らかの
理由で成功しない場合、回路200は、実線置換技術に
従って、アドレスEAに関する情報を記憶するためキャ
ッシュ・メモリ・アレイ202の線を割り振る。回路2
00は、線を置換するために、キャッシュ・メモリ・ア
レイ202を実キャッシュとして管理する。したがっ
て、回路200は、変換された実アドレスから得た情報
を、キャッシュ・メモリ・アレイ202の割り振られた
線に書き込む。また、キャッシュ・ディレクトリ216
中の割り振られた線の関連線が、適当な実アドレス・タ
グ(マルチプレクサ210からの変換された実アドレス
のビット212ないし2n-1。ここでn=52)を記憶す
るように修正され、デコーダCAMアレイ214中の関
連キャムレット項目が、適当な実効アドレス・インデッ
クスを記憶するように修正され、それによって、アクセ
ス・アドレスEAが、マルチプレクサ210から得た実
アドレスに関連付けられる。
【0066】64個の「キャムレット」を選択したのは
一例である。代替実施例では、より少ないキャムレット
をアドレスするように、「キャムレット」アドレスが、
アクセス・アドレスEAの下位12ビットから得たより
少ないビットで形成される。そのような代替実施例で
は、1キャムレット当たり項目数がより多く、1キャム
レット当たりビット数がより多くなる。たとえば、キャ
レットが16個だけの場合、1キャムレット当たり項目
数が32になり、1実効アドレス・インデックス当たり
ビット数が10になる。これより大きなキャッシュの場
合、統計性能を高めるために、実効アドレス・インデッ
クスにビットを追加することが好ましいであろう。その
ような追加ビットはアクセス・アドレスEAの上位ビッ
トから得る。
【0067】マルチプレクサ210は変換された実アド
レスをTLB208から入力し、さらに、バス・インタ
フェース232から実アドレスRAを入力する。マルチ
プレクサ210は、選択線234に応答して、(TLB
208から得た)変換された実アドレスまたは(バス・
インタフェース232から得た)実アドレスRAを出力
する。
【0068】したがって、回路200はキャッシュ・メ
モリ・アレイ202から得た情報にアクセスするための
2つの技術をサポートする。第1技術によれば、実効ア
クセス・アドレスEAに応答して情報がアクセスされ
る。第2技術によれば、バス・インタフェース232か
ら得た実アドレスに応答して情報がアクセスされる。し
たがって、回路200は実効アクセス・アドレスEAま
たは実アドレスRAに応答して、キャッシュ・メモリ・
アレイ202から得た情報のアクセスをサポートする。
そのような技術の組合せは、実効アドレス・ルックアッ
プ動作が成功する場合に好都合である。なぜなら、実ア
ドレス・セット・アソシアティブ・ルックアップ操作を
使用する場合よりも高速にキャッシュ・メモリ・アレイ
202から情報が出力されるからである。
【0069】実アドレスRAに応じて情報にアクセスす
るために、実アドレスRAは、図7に示したように、バ
ス・インタフェース232から入力されてバッファ23
0でラッチされる。マルチプレクサ210は、ラッチさ
れた実アドレスRAをバッファ230から入力する。実
アドレスRAはマルチプレクサ210を介してキャッシ
ュ・ディレクトリ216、キャッシュ・メモリ・アレイ
202、および比較機構212に出力される。キャッシ
ュ・ディレクトリ216のマルチプレクサ233は、実
アドレスのビット26ないし211に応答してキャッシュ
・ディレクトリ216の線を選択する。同様に、キャッ
シュ・メモリ・アレイ202のマルチプレクサ235
は、実アドレスRAのビット26ないし211に応答して
キャッシュ・メモリ・アレイ202のブロックを選択す
る。実アドレスRAに関する情報が実際にキャッシュ・
メモリ・アレイ202に記憶されていることをキャッシ
ュ・ディレクトリ216の選択された線が示す場合、回
路200はキャッシュ・メモリ・アレイ202の選択さ
れたブロックから情報を出力する。
【0070】これに対して、上述のように、回路200
は実効アクセス・アドレスEAに応答した情報のアクセ
スもサポートする。実効アドレス指定では、複数の実効
アドレスを単一の関連実アドレスに変換することができ
る。そのような実効アドレス指定は共通実アドレスにア
クセスする異なるプロセスに有用な技術である。たとえ
ば、これらのプロセスは異なるデータ保護方式、アクセ
ス権、および修正基準を有することができる。これらの
特性は実効アドレスに関連付けることができる。実効ア
クセス・アドレスEAは、情報にうまくアクセスするた
めに、SR206およびTLB208を介して関連実ア
ドレスに変換される。
【0071】前述のように、回路200は実効アクセス
・アドレスEAまたは実アドレスRAに応じたキャッシ
ュ・メモリ・アレイ202から得た情報のアクセスをサ
ポートする。具体的には、典型的な実施例では、キャッ
シュ・メモリ・アレイ202中の情報の実効アドレス指
定は、単に関連実アドレスへの実効アクセス・アドレス
EAの変換によって行われるわけではない。その代わ
り、デコーダCAMアレイ214がキャッシュ・ディレ
クトリ216およびキャッシュ・メモリ・アレイ202
中の線を選択する実効アドレス・ルックアップ動作と同
時に、32ビット実効アクセス・アドレスEAがSR2
06およびTLB208を介して関連実アドレスに変換
される。このように、キャッシュ・メモリ・アレイ20
2中の情報が高速にアクセスされ、アドレスEAを変換
しても、キャッシュ・メモリ・アレイ202中の情報に
アクセスするための時間に追加サイクルが追加されるこ
とはない。
【0072】図8は、システム・バス308を介して相
互に接続された、第1および第2処理システム302お
よび304と、レベル2(「L2」)キャッシュ制御装
置306とを含む、全体的に300で示される典型的な
システムのブロック図である。L2キャッシュ制御装置
306は実4重セット・アソシアティブ・マッピング技
術によってL2キャッシュ・メモリ312を制御する。
L2キャッシュ・メモリ312は実アドレスに応じてア
クセスされる。
【0073】処理システム302はプロセッサ314
と、L1キャッシュ制御装置316と、L1キャッシュ
・メモリ318とを含む。L1キャッシュ制御装置31
6は、システム・バス308と、プロセッサ314と、
L1キャッシュ・メモリ318とに接続されている。L
1キャッシュ制御装置316は、図5ないし7に関して
上記で詳しく論じたセミ・アソシアティブ・マッピング
技術によってL1キャッシュ・メモリ318を制御す
る。
【0074】同様に、処理システム304はプロセッサ
320と、L1キャッシュ制御装置322と、L1キャ
ッシュ・メモリ324とを含む。L1キャッシュ制御装
置322は、システム・バス308と、プロセッサ32
0と、L1キャッシュ・メモリ324とに接続されてい
る。L1キャッシュ制御装置322は、図5ないし7に
関して上記で詳しく論じたセミ・アソシアティブ・マッ
ピング技術によってL1キャッシュ・メモリ324を制
御する。
【0075】処理システム302は処理システム302
および304を代表する1つである。具体的には、L1
キャッシュ・メモリ318中のブロックの組はL2キャ
ッシュ・メモリ312中のブロックのサブセットであ
る。同様に、L2キャッシュ・メモリ312に記憶され
たどの情報ブロックもL1キャッシュ・メモリ318に
記憶することができる。
【0076】したがって、L2キャッシュ・メモリ31
2は、少なくともL1キャッシュ・メモリ318のブロ
ック・サイズと同じ大きさのブロック・サイズを有する
実キャッシュとして構成されている。L1キャッシュ・
メモリ318中のブロック数がpである場合、(L2キ
ャッシュ・メモリ312に記憶されている総ブロック数
のうちの)どのp個のブロックでもL1キャッシュ・メ
モリ318に記憶することができる。マルチプロセッサ
と入出力キャッシュの一貫性に関しては、L2キャッシ
ュ・メモリ312のディレクトリが、L1キャッシュ・
メモリ318に記憶された各ブロックの実アドレスを記
憶する。
【0077】ページ細分性に関してエイリアシングがサ
ポートされ、それによって、実情報ブロックは異なる実
効アドレスをもつことができる。典型的な実施例では、
(同じ実情報ブロックに対応する)異なる実効アドレス
は、ページ・サイズである4キロバイトの整数倍だけ異
なる。一例として、L1キャッシュ・メモリ318のサ
イズが32キロバイトであり、ブロック・サイズが64
バイトである場合、L1キャッシュ・メモリ318は5
12ブロックを有する。各ブロックは、64バイトの情
報だけでなく、実アドレスおよび様々な状況ビットを含
むディレクトリ情報も有する。
【0078】L1キャッシュ・メモリ318中の512
個のブロックはそれぞれ実効アドレス・インデックスに
関連する。実効アドレス・インデックスはブロックの関
連実効アドレスのビット212ないし2Cで形成される。
典型的な実施例ではc=19であり、実効アドレスは長
さ32ビットまたは64ビットである。実効アドレスE
A(図7)に応答してL1キャッシュ・メモリ318を
探索することによって、1サイクル負荷を達成すること
ができる。
【0079】図7も参照すると、L1キャッシュ・メモ
リ318はキャッシュ・ディレクトリ216とキャッシ
ュ・メモリ・アレイ202とで形成されている。したが
って、実効アドレスとL1キャッシュ・メモリ318中
のブロックの関連付けは、512個のCAM項目を有す
るデコーダCAMアレイ214によって物理的に達成さ
れる。図7に関して上記で詳しく論じたように、デコー
ダCAMアレイ214の512個のCAM項目はそれぞ
れ、(1)キャッシュ・ディレクトリ216の512本
の線のうちのそれぞれの関連する線と、(2)キャッシ
ュ・メモリ・アレイ202の512本の線のうちのそれ
ぞれの関連する線とに接続されたそれぞれの出力線を有
する。
【0080】デコーダCAMアレイ214の各CAM項
目は、8ビット実効アドレス・インデックスおよび有効
ビットを含む9ビットを記憶する。図7に関して上記で
詳しく論じたように、1つのキャムレット項目218が
アクセス・アドレスEAの実効アドレス・インデックス
に一致し、かつ有効である場合、一致するCAM項目の
出力線それぞれが選択され、それによって、キャッシュ
・ディレクトリ216およびキャッシュ・メモリ・アレ
イ202の512本線のうちの関連する線が選択され
る。デコーダCAMアレイ214のCAM項目は、どの
瞬間にも1本の出力線だけが選択されるように管理され
る。
【0081】したがって、キャムレット項目の実効アド
レス・インデックスが、アクセス・アドレスEAの実効
アドレス・インデックスに一致し、かつ有効である場
合、一致するキャムレット項目に関連するキャッシュ・
ディレクトリ216の項目のそれぞれから比較機構21
2に実アドレス・タグが出力される。さらに、一致する
キャムレット項目に関連するキャッシュ・メモリ・アレ
イ202中のブロックのそれぞれからマルチプレクサ2
24に情報ブロックが出力され、回路200はデコーダ
・ヒット線223を論理値「1」にセットする。マルチ
プレクサ224は、アクセス・アドレスEAのビット2
0ないし25に応答して、キャッシュ・メモリ・アレイ2
02によって出力された情報ブロックからワード226
を出力し、それによって、場合によっては多重セット・
アソシアティブ・キャッシュで発生する「遅延選択」を
回避する。
【0082】再び図8を参照すると、どのCAM項目の
実効アドレス・インデックスも実効ブロック番号に一致
せず、かつ有効でない場合、処理システム302は(L
2キャッシュ制御装置306を介して)L2キャッシュ
・メモリ312の(SR206およびTLB208で変
換された)実アドレスから得た実情報ブロックを入力す
る。L1キャッシュ制御装置316は、L1キャッシュ
・メモリ318の線番号に等しい値を有する(図6の割
当てカウンタ116に関して上記で詳しく論じた)9ビ
ット・カウンタを維持する。したがって、L1キャッシ
ュ制御装置316は9ビット・カウンタ値を0から51
1に増分し、次いで0に戻すことができる。L1キャッ
シュ制御装置316は、その9ビット・カウンタによっ
て指定されたL1キャッシュ・メモリ318の線に、
(L2キャッシュ・メモリ312から得た)入力された
実情報ブロックを記憶する。
【0083】入力された情報ブロックが、L1キャッシ
ュ・メモリ318中の事前に記憶された情報ブロックを
変位することもある。したがって、前に記憶された情報
ブロックは、有効であり修正されている場合、入力され
た実情報ブロックのための空間を設けるようにL2キャ
ッシュ・メモリ312に返される。次いでL1キャッシ
ュ制御装置316は入力された実情報ブロックをL1キ
ャッシュ・メモリ318に記憶して、9ビット・カウン
タ値を増分する。
【0084】1つのキャムレット項目218がアクセス
・アドレスEAの実効アドレス・インデックスに一致す
るが、何らかの理由で、マルチプレクサ210から得た
変換された実アドレスが、キャッシュ・ディレクトリ2
16から得た実アドレス・タグに一致しない場合、一致
するキャムレット項目はデコーダCAMアレイ214で
無効化される。それにもかかわらず、キャッシュ・メモ
リ・アレイ202中のそれぞれのブロックおよび一致す
るキャムレット項目に関連するキャッシュ・ディレクト
リ216中のそれぞれのブロックに情報はそのまま残
る。次いで、処理システム302は、どのキャムレット
項目218も(アクセス・アドレスの)実効アドレス・
インデックスに一致せず、かつ有効でない場合と同様
に、上述のように、L2キャッシュ・メモリ312の
(SR206およびTLB208を介して変換された)
実アドレスから得た実情報ブロックを(L2キャッシュ
制御装置306を介して)入力する。
【0085】L1キャッシュ制御装置316は、(SR
206およびTLB208を介して変換された)実アド
レスと、(L2キャッシュ・メモリ312の実アドレス
から得た)実情報ブロックが記憶される予定のL1キャ
ッシュ・メモリ318の9ビット線番号(すなわち、9
ビット・カウンタ値)とを指定することによって、L1
キャッシュ・メモリ318のために、システム・バス3
08を介してL2キャッシュ制御装置306に実情報ブ
ロックを要求する。要求された実情報ブロックがL2キ
ャッシュ・メモリ312に存在しない場合、L2キャッ
シュ制御装置306は要求された実情報ブロックをメイ
ン・メモリ326から入力し、L2キャッシュ・メモリ
312で置換動作を実行する。L1キャッシュ・メモリ
318に記憶された1組のブロックはL2キャッシュ・
メモリ312に記憶されたブロックのサブセットなの
で、L2キャッシュ・メモリ312での置換動作によっ
てL1キャッシュ・メモリ318からブロックを除去す
ることができる。置換動作時に、L2キャッシュ制御装
置306は要求された実情報ブロックをメイン・メモリ
326から入力し、L2キャッシュ・メモリ312にそ
のような情報を記憶する。
【0086】さらに、L1キャッシュ制御装置316は
要求された実情報ブロックをL2キャッシュ制御装置3
06から入力し、L1キャッシュ・メモリ318のキャ
ッシュ・メモリ・アレイ202(図7)の指定された9
ビット線番号にそのような情報を記憶する。さらに、L
1キャッシュ制御装置316はL1キャッシュ・メモリ
318のキャッシュ・ディレクトリ216(図7)の指
定された9ビット線番号にある実アドレス・タグを更新
する。L1キャッシュ制御装置316は、デコーダCA
Mアレイ214(図7)の関連する項目にある実効アド
レス・インデックスを更新する。L2キャッシュ・メモ
リ312は、L1キャッシュ・メモリ318に記憶され
た各実情報ブロック用の10ビット逆インデックス・フ
ィールドをそれぞれ、該メモリ312のディレクトリに
記録することができる。10ビット逆インデックス・フ
ィールドは有効ビットと、L1キャッシュ・メモリ31
8の記録された9ビット線番号とを含む。L1キャッシ
ュ・メモリ318の記録された9ビット線番号に実情報
ブロックが記憶されている場合は、有効ビットは真にセ
ットされる。
【0087】エイリアシングとは、1つの実ブロックが
対応する複数の実効アドレスを有する状況である。都合
のよいことに、L2キャッシュ制御装置306は、L2
キャッシュ・メモリ312のディレクトリに記録された
10ビット逆インデックス・フィールドに応答して、要
求された実情報ブロックがすでにL1キャッシュ・メモ
リ318の有効線に記憶されているかどうかを判定す
る。そうである場合、L2キャッシュ制御装置306
は、要求された実情報ブロックがすでに記憶されている
L1キャッシュ・メモリ318の9ビット線番号に関し
てL1キャッシュ制御装置316に通知する。
【0088】L1キャッシュ・メモリ318は、そのよ
うな状況に応じて、デコーダCAMアレイ214(図
7)の関連項目にある実効アドレス・インデックスを更
新する。具体的には、実効アドレス・インデックスは置
換や位置変更なしで更新される。したがって、同じ実効
アドレスEA(図7)が再びバッファ204に指定され
た場合、L1キャッシュ制御装置316が再びL2キャ
ッシュ制御装置306に実情報ブロックを要求すること
はない。
【0089】セミ・アソシアティブL1キャッシュ・メ
モリ318は、実効アドレス・キャッシュとして、14
ビット実効アドレス・インデックスが使用される1メガ
バイト・ダイレクト・マップ(または、1重セット・ア
ソシアティブ)キャッシュと同様に有効に動作する。L
1キャッシュ・メモリ318に関するミス率は該メモリ
の32キロバイト・サイズとセミ・アソシアティブ・マ
ッピングとの関数である。ミス率の連想性成分は、1メ
ガバイト・ダイレクト・マップ(または1重セット・ア
ソシアティブ)キャッシュのミス率が上限となる。した
がって、ミス率の主要成分はL1キャッシュ・メモリ3
18のサイズである。具体的には、実効キャッシュ衝突
の損失は、すでにL1キャッシュ・メモリ318にある
ブロックが再インスタンス化されることだけである。エ
イリアシングの損失も同じである。
【0090】デコーダCAMアレイ214中に64個の
キャムレットが含まれる図7を参照すると、キャッシュ
・メモリ・アレイ202は、どの瞬間にも64個の一次
合同クラスすべてに関する情報を記憶するように割り振
られている。典型的な実施例では、キャッシュ・メモリ
・アレイ202はさらに、どの瞬間にも一次合同クラス
の256個の二次合同クラスのうちの最大8つに関する
情報を記憶するように割り振られる。というのは、各キ
ャムレットがそれぞれ1組8つのキャムレット項目21
8を含むからである。8つのキャムレット項目218は
すべて、256個の二次合同クラスのうちの異なるクラ
スを表す。キャッシュ・ディレクトリ216のキャムレ
ット項目の関連項目には、メイン・メモリ326(図
8)中の単一の実情報ブロックの上位(m−j)実アド
レス・ビットを含む実アドレス・タグが記憶される。し
たがって、典型的な実施例では、どの瞬間にも、一次/
二次合同クラスの1つの実アドレスだけに関する情報が
キャッシュ・メモリ・アレイ202に記憶されている。
【0091】これに対して、好ましい実施例では、どの
瞬間にも、一次/二次合同クラスの2つ以上の実アドレ
スに関する情報をキャッシュ・メモリ・アレイ202に
記憶することができる。複数のキャムレット項目218
が同じ二次合同クラスを表すことができる。好ましい実
施例のこの技術については以下で図9ないし13に関し
て説明する。
【0092】図9ないし13はデコーダCAMアレイ2
14(図7)の典型的なキャムレット220の概念図で
ある。キャムレット220は8つのキャムレット項目2
18を含み、各キャムレット項目はそれぞれの8ビット
実効インデックス・フィルタ502a−hおよびそれぞ
れの活動ビット504a−hを有する。したがって、各
キャムレット項目は9ビットを有する。
【0093】一例として、図9を参照すると、最初の実
効インデックス・フィールド502aがインデックス0
を、実効インデックス・フィールド502bがインデッ
クス1を、実効インデックス・フィールド502cがイ
ンデックス2を、実効インデックス・フィールド502
dがインデックス3を、実効インデックス・フィールド
502eがインデックス4を、実効インデックス・フィ
ールド502fがインデックス5を、実効インデックス
・フィールド502gがインデックス6を、実効インデ
ックス・フィールド502hがインデックス7をそれぞ
れ記憶している。各インデックス0−7は異なる合同ク
ラスを示す。
【0094】実効インデックス・フィールド502a−
hはそれぞれ活動ビット504a−hに関連する。各活
動ビット504a−hは、その関連実効インデックス・
フィールドがその合同クラス内のNot Most Recently Ac
cessed(「NMRA」)インデックスを記憶しているか
どうかを示す。図9に示したように、各活動ビット50
4a−hは2進値0に初期設定され、それによって、各
実効インデックス・フィールド502a−hが該活動ビ
ットの合同クラス内の最後にアクセスされたインデック
スを記憶していることを示す。
【0095】キャッシュ・メモリ・アレイ202は、3
サイクル・プロセスに従ってアクセスされる。第1サイ
クル中に、キャムレット220のキャムレット項目がア
クセス・アドレスEAの実効アドレス・インデックスに
一致し、かつ合同クラス内の最後にアクセスされたキャ
ムレット項目である場合、一致するキャムレット項目に
関連するキャッシュ・ディレクトリ216の項目それぞ
れから比較機構212に実アドレスが出力される。さら
に、一致するキャムレット項目に関連するキャッシュ・
メモリ・アレイ202中のそれぞれのブロックからマル
チプレクサ224に情報ブロックが出力され、回路20
0がデコーダ・ヒット線223を論理値「1」にセット
する。
【0096】第2サイクル中に、何らかの理由で実効ア
ドレス・ルックアップ動作が成功しない場合(たとえ
ば、マルチプレクサ210から得た変換された実アドレ
スがキャッシュ・ディレクトリ216から得た実アドレ
ス・タグに一致しない場合)、回路200は、図7およ
び8に関して上記で詳しく論じたように実アドレス・ル
ックアップ動作を実行する。回路200は、実アドレス
・ルックアップ動作の一部として、アクセス・アドレス
の実効アドレス・インデックスEAが、合同クラス内の
最後にアクセスされたキャムレット項目でないキャムレ
ット220のキャムレット項目に一致するかどうかを判
定する。さらに、L2キャッシュ・メモリ312が存在
するときに、何らかの理由で実効アドレス・ルックアッ
プ動作が成功しない場合、図8に関して上記で詳しく論
じたように、第2サイクル中にL2キャッシュ・メモリ
312アクセスが開始される。
【0097】第3のサイクル中に、実アドレス・ルック
アップ動作が成功する場合、首尾よく見つかった情報は
キャッシュ・メモリ・アレイ202からマルチプレクサ
224に出力される。さらに、以下で詳しく論じるよう
にデコーダCAMアレイ214が更新される。また、第
2サイクル中にL2キャッシュ・メモリ312アクセス
が開始された場合、そのようなアクセスは取り消され
る。また、第3のサイクル中に、実アドレス・ルックア
ップ動作が成功しない場合、回路200はキャムレット
220の最も以前にアクセスされたキャムレット項目を
置換する(そのような置換は、時間が許す場合は第2サ
イクル中に実行することが好ましい)。
【0098】たとえば、アクセス・アドレスの実効アド
レス・インデックスEAがインデックス2に等しいと仮
定する。図10も参照すると、第1サイクル中に、マル
チプレクサ210から得た変換された実アドレスが、キ
ャッシュ・ディレクトリ216から得た実アドレス・タ
グに一致しない場合、回路200は第2サイクル中に実
アドレス・ルックアップ動作を実行する。実アドレス・
ルックアップ動作が成功せず、(フィールド502gに
記憶された)インデックス6がインデックス0−7のう
ちの最も以前にアクセスされたものである場合、回路2
00はインデックス6ではなくインデックス2をフィー
ルド502gに記憶する。
【0099】回路200は、変換された実アドレスの実
アドレス・タグを記憶するようにキャッシュ・ディレク
トリ216(図7)中の(フィールド502gに対応す
る)関連する線も更新する。さらに、キャッシュ・メモ
リ・アレイ202の(フィールド502gに対応する)
関連する線が、フィールド502gの事前に記憶された
インデックス6に対応する修正された有効な情報を記憶
している場合、該情報はL2キャッシュ・メモリ312
に返される。このように、キャッシュ・メモリ・アレイ
202の関連する線は、変換された実アドレスに関する
入力された新しい情報を記憶するように空にされる。変
換された実アドレスに関する新しい情報ブロックをL2
キャッシュ・メモリ312から受け取ると、回路200
はキャッシュ・メモリ・アレイ202の空にされた線に
該情報ブロックを書き込む。
【0100】そのような状況で、第1サイクル中に、キ
ャムレット220のキャムレット項目がアクセス・アド
レスの実効アドレス・インデックスEA(図7)に一致
した場合、一致するキャムレット項目の活動ビットは非
活動状況の2進値1にセットされる。たとえば、(フィ
ールド502cに記憶された)インデックス2がアクセ
ス・アドレスEAの実効アドレス・インデックスに一致
した場合、活動ビット504cが2進値1にセットさ
れ、それによって、フィールド502cが該ビットの合
同クラス内のNot Most Recently Accessed(「NMR
A」)インデックスを記憶していることを示す。したが
って、フィールド502c中のインデックス2は置換さ
れず、その代わりにNMRAに指定される。これに対し
て、活動ビット504gはクリアされて2進値0にな
る。
【0101】都合のよいことに、(フィールド502c
中のインデックス2に対応する)キャッシュ・メモリ・
アレイ202中の線は、NMRAに指定された項目とし
て、L2キャッシュ・メモリ312(図8)に依存せず
にアクセス可能なままである。このように、(インデッ
クス2で表された)単一の一次/二次合同クラスの複数
の実アドレスに関する情報はどの瞬間にも、キャッシュ
・メモリ・アレイ202に記憶されている。キャムレッ
ト・フィールド502cおよび502gは同じインデッ
クス2を記憶し、したがって、同じ一次合同クラスおよ
び二次合同クラスを表す。活動ビット504cが2進値
1に設定されているかぎり、デコーダCAMアレイ21
4は、フィールド502cに記憶されたインデックスと
アクセス・アドレスの実効アドレス・インデックスEA
の間の一致に応答しない。
【0102】次いで、第1サイクル中に、(フィールド
502gに記憶された)インデックス2がアクセス・ア
ドレスEAの実効アドレス・インデックスに一致する
が、マルチプレクサ210から得た変換された実アドレ
スが、キャッシュ・ディレクトリ216から得た実アド
レス・タグに一致しない場合、回路200は第2サイク
ル中に、実r重セット・アソシアティブ・キャッシュと
してのキャッシュ・メモリ・アレイ202を探索するた
めの実アドレス・ルックアップ動作を実行する。
【0103】実アドレス・ルックアップ操作が成功し、
(フィールド502cに記憶された)インデックス2が
キャッシュ・メモリ・アレイ202中の首尾よく見つか
った情報に関連すると回路200が判定した場合、回路
200は、図11に示したように、活動ビット504c
および504gの状態を反転する。したがって、活動ビ
ット504cはクリアされて2進値0になり、活動ビッ
ト504gは2進値1にセットされる。さらに、そのよ
うな状況で、回路200はキャッシュ・メモリ・アレイ
202から(フィールド502cに対応する)関連情報
を出力する。キャッシュ・メモリ・アレイ202中の情
報にアクセスするためのこの技術は、L2キャッシュ・
メモリ312(図8)にアクセスすることよりも高速で
ある。
【0104】これに対して、実アドレス・ルックアップ
動作が成功せず、(フィールド502fに記憶された)
インデックス5が、フィールド502a−hに記憶され
た最も以前にアクセスされたインデックスである場合、
回路200は、図12に示したように、インデックス5
の代わりにインデックス2をフィールド502fに記憶
する。さらに、活動ビット504fがクリアされて2進
値0になり、活動ビット504gが2進値1にセットさ
れる。
【0105】回路200は、変換された実アドレスの実
アドレス・タグを記憶するようにキャッシュ・ディレク
トリ216(図7)中の(フィールド502fに対応す
る)関連する線も更新する。さらに、キャッシュ・メモ
リ・アレイ202の(フィールド502fに対応する)
関連する線が、フィールド502fの事前に記憶された
インデックス5に対応する修正された有効な情報を記憶
している場合、該情報はL2キャッシュ・メモリ312
に返される。このように、キャッシュ・メモリ・アレイ
202の関連する線は、変換された実アドレスに関する
入力された新しい情報を記憶するように空にされる。変
換された実アドレスに関する新しい情報ブロックをL2
キャッシュ・メモリ312から受け取ると、回路200
はキャッシュ・メモリ・アレイ202の空にされた線に
該情報ブロックを書き込む。(フィールド502cおよ
び502gに記憶された)インデックス2がアクセス・
アドレスの実効アドレス・インデックスEAに一致した
ので、活動ビット504cおよび504gが2進値1に
セットされ、それによって、フィールド502cおよび
502gが該ビットの合同クラス内のNot Most Recentl
y Accessed(「NMRA」)インデックスを記憶してい
ることを示す。したがって、フィールド502cおよび
502g中のインデックス2は置換されず、その代わり
にNMRAに指定される。
【0106】図13も参照すると、フィールド502a
−hに記憶されたどのインデックスもアクセス・アドレ
スの実効アドレス・インデックスEAに一致せず、実ア
ドレス・ルックアップ操作が成功せず、(フィールド5
02cに記憶された)インデックス2が、フィールド5
02a−hに記憶された最も以前にアクセスされたイン
デックスである場合、回路200は、図13に示したよ
うに、インデックス2の代わりに新しいインデックス
(インデックス8)をフィールド502cに記憶する。
さらに、活動ビット504cがクリアされて2進値0に
なる。
【0107】回路200は、変換された実アドレスの実
アドレス・タグを記憶するようにキャッシュ・ディレク
トリ216(図7)中の(フィールド502cに対応す
る)関連する線も更新する。さらに、キャッシュ・メモ
リ・アレイ202の(フィールド502cに対応する)
関連する線が、フィールド502cの事前に記憶された
インデックス2に対応する修正された有効な情報を記憶
している場合、該情報はL2キャッシュ・メモリ312
に返される。このように、キャッシュ・メモリ・アレイ
202の関連する線は、変換された実アドレスに関する
入力された新しい情報を記憶するように空にされる。変
換された実アドレスに関する新しい情報ブロックをL2
キャッシュ・メモリ312から受け取ると、回路200
はキャッシュ・メモリ・アレイ202の空にされた線に
該情報ブロックを書き込む。
【0108】さらに、引き続き図13を参照すると、フ
ィールド502a−hに記憶されたどのインデックスも
アクセス・アドレスの実効アドレス・インデックスEA
に一致しないが、実アドレス・ルックアップ動作が、変
換された実アドレスに対応するキャッシュ・メモリ・ア
レイ202の線を見つけるのに成功し、キャッシュ・メ
モリ・アレイ202の見つかった線がフィールド502
cに関連している場合、図13に示したように、回路2
00はインデックス2の代わりに新しいインデックス
(インデックス8)をフィールド502cに記憶し、活
動ビット504cをクリアして2進値0にする。この状
況は、インデックス2およびインデックス8が示す複数
の実効アドレスを実アドレスが有するエイリアシングの
一例である。
【0109】第1の典型的な実施例では、図8に関して
上記で詳しく論じたように、L2キャッシュ・メモリ3
12のディレクトリに記録された10ビット逆インデッ
クス・フィールドに応答して、キャッシュ・メモリ・ア
レイ202の見つかった線が識別される。
【0110】第2の典型的な実施例では、回路200
は、単一の実アドレスに関する実効アドレスがすべて同
じ一次合同クラスを有し、そのため、そのような実効ア
ドレスがデコーダCAMアレイ214の同じキャムレッ
トを選択するという物理制約を課す。したがって、特定
の実アドレスは、キャッシュ・メモリ・アレイ202の
事前に選択された線にしかマップできない。そのような
物理制約がある場合、図14および15に関して以下で
詳しく論じるように、キャッシュ・メモリ・アレイ20
2の特定の線(と選択されたキャムレット内の該線の関
連項目)は、変換された実アドレスに関する情報を記憶
するものとして容易に識別することができる。そのよう
な技術では、普通なら逆インデックスを記憶するために
使用される余分のディレクトリ空間が不要になる。
【0111】したがって、マルチプレクサ210から得
た変換された実アドレスがキャッシュ・ディレクトリ2
16(図7)から得た実アドレスに一致しない場合、回
路200は、図7および8に関して上記で詳しく論じた
ように実アドレス・ルックアップ動作を実行する。実ア
ドレス・ルックアップ動作が成功しない場合、回路20
0はキャムレット220の最も以前にアクセスされたキ
ャムレット項目にアクセス・アドレスEAのビット244
ないし251を書き込む。さらに、回路200はそのよう
な最も以前にアクセスされたキャムレット項目の活動ビ
ットをクリアし、前にアクセス・アドレスEAに一致し
たキャムレット項目の活動ビットをセットし(それによ
ってNMRAを示し)、キャッシュ・ディレクトリ21
6のキャムレット項目に関連する線を適切に更新し、
(第3のサイクルからしばらくして)アクセス・アドレ
スEAに関する情報が利用可能なとき、キャッシュ・メ
モリ・アレイ202のキャムレット項目に関連する線に
そのような情報を書き込む。実アドレス・ルックアップ
操作が、変換された実アドレスに対応するキャッシュ・
メモリ・アレイ202の線を見つけるのに成功する場
合、回路200はキャッシュ・メモリ・アレイ202の
見つかった線に関連するキャムレット項目にアクセス・
アドレスEAのビット244ないし251を書き込む。さら
に、回路200はそのようなキャムレット項目の活動ビ
ットをクリアし、前にアクセス・アドレスEAに一致し
たキャムレット項目の活動ビットをセットする。
【0112】図14および15は、図5のセミ・アソシ
アティブ・マッピングおよび図7の回路200に応じて
情報をキャッシュするための、600で全体的に示され
る第3の典型的な回路のブロック図である。図14およ
び15で、L1キャッシュ・メモリ・アレイ202(図
7)は、(それぞれAL、BL、CL、DLと呼ばれる)4
つの上部サブアレイ602a−dと、(それぞれAR
R、CR、DRと呼ばれる)4つの上部サブアレイ60
4a−dとで形成されている。各サブアレイ602a−
dおよび604a−dはサイズが4キロバイトであり、
そのため、L1キャッシュ・メモリ・アレイ202のサ
イズは32キロバイトになっている。各サブアレイは6
4本の線を有し、各線は64バイト=16個の4バイト
・ワード(「16W」)のブロックを記憶する。したが
って、L1キャッシュ・メモリ・アレイ202は2k
512本の線を有する。ここで、k=9である。
【0113】キャッシュ・ディレクトリ216(図7)
は4つの上部ディレクトリ単位(「DIR」)606a
−dと4つの下部ディレクトリ単位608a−dとで形
成される。各ディレクトリ単位は64本の線を有し、各
線は40ビット・タグを記憶する。デコーダCAMアレ
イ214(図7)は4つの上部CAM単位610a−d
と4つの下部CAM単位612a−dとで形成される。
(図9−13に関して上記で詳しく論じたように)各C
AM単位は64本の線を有し、各線は9ビット・キャム
レット項目を有する。
【0114】キャムレットは8つのキャムレット項目を
含み、さらに具体的には、各CAM単位610a−dお
よび612a−dから得た1つの項目を含む。各CAM
単位が64個の項目を有するので、CAM単位610a
−dおよび612a−dは共に64個のキャムレットを
提供する。アクセス・アドレスEAのビット26ないし
11に応じて64個のキャムレットのうちの1つが選択
される。たとえば、アクセス・アドレスEAのビット2
6ないし211が000000である場合、各CAM単位
610a−dおよび612a−dで線0が選択され、そ
れによって、選択されたキャムレット0が形成される。
【0115】CAM単位610a−dはそれぞれディレ
クトリ単位606a−dに接続され、該ディレクトリ単
位はそれぞれサブアレイ602a−dと一体化されてい
る。同様に、CAM単位612a−dはそれぞれディレ
クトリ単位608a−dに接続され、該ディレクトリ単
位はそれぞれサブアレイ604a−dと一体化されてい
る。具体的には、各CAM単位、ディレクトリ単位、お
よびサブアレイが64本の線を有する。したがって、接
続された単位610a、606a、602aは、図6の
接続された単位102、104、106に関して上記で
論じたように動作し、図14および15中の他の7つの
接続された単位群のそれぞれについても同様である。
【0116】アクセス・アドレスEAのビット26ない
し211に応答して線0が選択され、CAM単位610a
の線0がアクセス・アドレスEAのビット212ないし2
19に一致する情報を記憶している場合、CAM単位61
0aはディレクトリ単位606aの線0およびサブアレ
イ602aの線0を直接選択する。ディレクトリ単位6
06aは、CAM単位610aによって選択されたこと
に応答して、その線0に記憶された40ビット・タグを
出力する。同様に、サブアレイ602aはその線0に記
憶された16ワード(64バイト)情報ブロックを出力
する。さらに一般的に述べると、アクセス・アドレスE
Aのビット26ないし211に応答して線yが選択され、
CAM単位の線yが、アクセス・アドレスEAのビット
12ないし219に一致する情報を記憶している場合、C
AM単位はそれに接続されたディレクトリ単位およびサ
ブアレイの線yを直接選択する。ディレクトリ単位は、
それに接続されたCAM単位によって選択されたことに
応答して、その線yに記憶された40ビット・タグを出
力する。同様に、接続されたサブアレイはその線yに記
憶された16ワード情報ブロックを出力する。ディレク
トリ単位のどの線も、ディレクトリ単位に接続されたC
AM単位によって選択されなかった場合、ディレクトリ
単位の40ビット出力は高インピーダンスである。
【0117】図9−13に関して上記で論じたように、
回路600は、単一の実アドレスに関するすべての実効
アドレスが同じ一次合同クラスを有し、そのため、その
ような実効アドレスが同じキャムレットを選択するとい
う物理制約を課す。したがって、特定の実アドレスは、
サブアレイ602a−dおよび604a−dの事前に選
択された線にしかマップできない。そのような物理制約
がある場合、選択されたキャムレットの特定の線(と、
同様に、特定の線に接続されたディレクトリ線およびサ
ブアレイ線)は、変換された実アドレスに関する記憶さ
れた情報に関連するものとして容易に識別することがで
きる。そのような技術では、普通なら逆インデックスを
記憶するために使用される余分のディレクトリ空間が不
要になる。
【0118】さらに具体的には、図14および15で
は、サブアレイ602a−dの4本の線のうちの1本ま
たはサブアレイ604a−dの4本の線のうちの1本
に、変換された実アドレスに関する情報を記憶すること
ができる。そのような設計を検討すると、第2サイクル
中に、すべてCAM単位612a−dまたはCAM単位
610a−dに含まれるように、変換された実アドレス
RAのビット212に応答してキャムレットの8本の線の
うちの4本が選択される。変換された実アドレスRAに
関する情報は、それぞれ選択された4本のキャムレット
線に接続された、4本のサブアレイ線のうちの1本に記
憶することができる。
【0119】回路600がそのような物理制約を課すの
で、ORゲート620aがディレクトリ単位606aお
よび608aからの40ビット出力に対して論理OR演
算を実行し、ORゲート620aからの40ビット出力
が比較機構622aによって入力される。同様に、OR
ゲート620bがディレクトリ単位606bおよび60
8bからの40ビット出力に対して論理OR演算を実行
し、ORゲート620bからの40ビット出力が比較機
構622bによって入力される。さらに、ORゲート6
20cがディレクトリ単位606cおよび608cから
の40ビット出力に対して論理OR演算を実行し、OR
ゲート620cからの40ビット出力が比較機構622
cによって入力される。また、ORゲート620dがデ
ィレクトリ単位606dおよび608dからの40ビッ
ト出力に対して論理OR演算を実行し、ORゲート62
0dからの40ビット出力が比較機構622dによって
入力される。
【0120】ORゲート624は、ORゲート620a
−dからの40ビット出力に対して論理OR演算を実行
する。これら40ビット出力のどれかのビットが論理値
「1」にセットされた場合、ORゲート624の出力6
26は論理値「1」にセットされる。このように、OR
ゲート624の出力626は、図7に関して上記で詳し
く論じたデコーダ・ヒット線223の機能を提供する。
【0121】変換された実アドレスRAのビット212
いし251はそれぞれ、比較機構622a−dによって、
ORゲート620a−dからの40ビット出力と比較さ
れる。変換された実アドレスRAのビット212ないし2
51がORゲート620aからの40ビット出力に一致す
る場合、比較機構622aは出力628aを論理値
「1」にセットする。同様に、変換された実アドレスR
Aのビット212ないし251がORゲート620bからの
40ビット出力に一致する場合、比較機構622bは出
力628bを論理値「1」にセットする。さらに、変換
された実アドレスRAのビット212ないし251がORゲ
ート620cからの40ビット出力に一致する場合、比
較機構622cは出力628cを論理値「1」にセット
する。また、変換された実アドレスRAのビット212
いし251がORゲート620dからの40ビット出力に
一致する場合、比較機構622dは出力628dを論理
値「1」にセットする。
【0122】ORゲート630は、出力628a−dに
対して論理OR演算を実行する。出力628a−dのど
れかが論理値「1」にセットされた場合、ORゲート6
30の出力632は論理値「1」にセットされる。この
ように、ORゲート630の出力632は、図7に関し
て上記で詳しく論じたディレクトリ・ヒット線222の
機能を提供する。
【0123】アクセス・アドレスEAのビット26ない
し211に応答して、LRUアレイ640は、アクセス・
アドレスEAのビット26−211に応答してCAM単位
610a−dで選択された4本のキャムレット線にそれ
ぞれ接続された(サブアレイ602a−d中の)4本の
サブアレイ線の相対的LRU順序を、LRU状況ビット
636を介して示す。さらに、LRUアレイ640は、
アクセス・アドレスEAのビット26−211に応答して
CAM単位612a−dで選択された4本のキャムレッ
ト線にそれぞれ接続された(サブアレイ604a−d中
の)4本のサブアレイ線の相対的LRU順序を、6ビッ
トLRU状況ビット638を介して示す。たとえば、6
ビット状況ワード636は、サブアレイ602c中の選
択された線がサブアレイ602b中の選択された線より
も後にアクセスされ、サブアレイ602b中の選択され
た線がサブアレイ602a中の選択された線よりも後に
アクセスされ、サブアレイ602a中の選択された線が
サブアレイ602d中の選択された線よりも後にアクセ
スされたことを示すことができる。
【0124】書込み制御装置634は、変換された実ア
ドレスRAのビット212を、比較機構622a−dの出
力628a−dと共に入力する。さらに、書込み制御装
置634はLRU状況ワード636および638をLR
Uアレイ640から入力する。書込み制御装置634
は、これらの入力に応答して、制御線642a−dをそ
れぞれサブアレイ602a−dに出力する。さらに、書
込み制御装置634は、制御回線644a−dをそれぞ
れサブアレイ604a−dに出力する。分かりやすくす
るために、制御線642a−dおよび644a−dから
サブアレイ602a−dおよび604a−dへの接続は
図14にも図15にも図示しない。制御線642a−d
および644a−dに応答して、8つのサブアレイ60
2a−dおよび604a−dのうちの1つだけが、デー
タを入力するために選択される。
【0125】各サブアレイ602a−dは、情報を入力
するために選択されたことに応答して、図14および1
5に示したように、書込みビット・スイッチ(「WB
S」)646から16ワード情報を入力することができ
る。同様に、各サブアレイ604a−dは、情報を入力
するために選択されたことに応答して、図14および1
5に示したように、書込みビット・スイッチ(「WB
S」)648から16ワード情報を入力することができ
る。書込みビット・スイッチ646および648からの
16ワード情報は4つの4ワード情報ブロックを含む。
【0126】ビット線デコーダ(「BLD」)652
は、アクセス・アドレスEAのビット25および24に応
答して、書込みビット・スイッチ646に指示を出力す
る。さらに、書込みビット・スイッチ646はデータ・
バス650から4ワード(16バイト)情報を入力す
る。書込みビット・スイッチ646は、ビット線デコー
ダ652からの指示に応答して、サブアレイ602a−
dに出力された4つの4ワード情報ブロックのうちの1
つにデータ・バス650から得た4ワード情報を挿入す
る。
【0127】同様に、ビット線デコーダ(「BLD」)
654は、アクセス・アドレスEAのビット25および
4に応じて、書込みビット・スイッチ648に指示を
出力する。さらに、書込みビット・スイッチ648はデ
ータ・バス650から4ワード(16バイト)情報を入
力する。書込みビット・スイッチ648は、ビット線デ
コーダ654からの指示に応答して、サブアレイ604
a−dに出力された4つの4ワード情報ブロックのうち
の1つにデータ・バス650から得た4ワード情報を挿
入する。
【0128】図14および15に示したように、各サブ
アレイ602a−dはそれぞれの16ワード情報を読取
りビット・スイッチ(「RBS」)656に出力するこ
とができる。アクセス・アドレスEAのビット219ない
し212に応答してサブアレイ602a−dのうちの1つ
だけが選択されるので、読取りビット・スイッチ656
は各サブアレイ602a−dから入力された16ワード
情報を論理ORする。ビット線デコーダ(「BLD」)
660は、アクセス・アドレスEAのビット25および
4に応答して、読取りビット・スイッチ656に指示
を出力する。読取りビット・スイッチ656は、ビット
線デコーダ660からのこの指示に応答して、(論理O
Rされた16ワード情報の)4つの4ワード情報ブロッ
クのうちの1つを選択して、選択した4ワード情報ブロ
ックをデータ・バス664に出力する。
【0129】同様に、図14および15に示したよう
に、各サブアレイ604a−dはそれぞれの16ワード
情報を読取りビット・スイッチ(「RBS」)658に
出力することができる。アクセス・アドレスEAのビッ
ト219ないし212に応答してサブアレイ604a−dの
うちの1つだけが選択されるので、読取りビット・スイ
ッチ658は各サブアレイ604a−dから入力された
16ワード情報を論理ORする。ビット線デコーダ
(「BLD」)662は、アクセス・アドレスEAのビ
ット25および24に応答して、読取りビット・スイッチ
658に指示を出力する。読取りビット・スイッチ65
8は、ビット線デコーダ662からのこの指示に応答し
て、(論理ORされた16ワード情報の)4つの4ワー
ド情報ブロックのうちの1つを選択して、選択した4ワ
ード情報ブロックをデータ・バス664に出力する。
【0130】4重セット・アソシアティブ・キャッシュ
に匹敵するヒット率を達成するために、J=5である。
したがって、合同クラスの数(2k+j)はキャッシュ・
メモリ線の数(2k)よりも大きい。各キャッシュ・メ
モリ線は、14ビット(アクセス・アドレスEAの219
ないし26)の復号に応答してアクセスされる。
【0131】アクセス・アドレスEAの14(k+j)
ビット、すなわち、26ないし219は各線の実効インデ
ックスまたは実効名を形成する。実効アドレスEAの合
同クラスは実効アドレスのインデックス(k+j)アド
レス・ビットによって指定される。したがって、各合同
クラスは多数の実効アドレスを含み、該アドレスはすべ
て、同じインデックス(k+j)アドレス・ビットを共
用する。アクセス・アドレスEAのビット26ないし2
11は一次合同クラスを指定し、ビット212ないし219
二次合同クラスを指定する。
【0132】具体的には、好ましい実施例では、サブア
レイ602a−dおよび604a−dの8本の線のうち
の1本に、変換された実アドレスに関する情報を記憶す
ることができる。図14および15と異なり、好ましい
実施例では、変換された実アドレスのビット212はキャ
ムレットの8本の線のうちの4本を選択するのに使用さ
れない。したがって、変換された実アドレスに関する情
報はキャムレットの8本の線のうちのどれにでも記憶す
ることができる。
【0133】したがって、好ましい実施例にはORゲー
ト620a−dが含まれていない。その代わり、好まし
い実施例には比較機構622a−dだけでなくさらに4
つの比較機構が含まれ、合計でそのような比較機構が8
つ含まれている。8つの比較機構はそれぞれ、ディレク
トリ単位606a−dおよび608a−dからの40ビ
ット出力と変換された実アドレスRAを比較する。8つ
の比較機構すべてからの出力はORゲート630および
書込み制御装置634によって入力される。
【0134】本発明の典型的な実施例およびその利点を
上記で詳しく説明したが、これらは限定的なものではな
く例示的なものとして説明したものである。本発明の範
囲および趣旨から逸脱せずに本発明に様々な変更、置
換、および修正を加えることができる。本発明の範囲お
よび趣旨は典型的な実施例によって限定されるものでは
なく、特許請求の範囲およびその等価物によってのみ定
義される。
【0135】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0136】(1)各クラスがそれぞれ複数の第1メモ
リ位置を含む、情報を記憶するための複数のクラスの複
数の第1メモリ位置と、前記第1メモリ位置から得た情
報を記憶するための複数の第2メモリ位置と、各ディレ
クトリ位置がそれぞれ複数のクラス中の複数の第1メモ
リ位置のどれにでも第2メモリ位置を関係付けることが
できる、前記第1および第2メモリ位置に関する情報を
記憶するための複数のディレクトリ位置とを備える、情
報をキャッシュするための回路。 (2)特定のディレクトリ位置が特定のクラス中の特定
の第1メモリ位置に特定の第2メモリ位置を関係付け、
他のディレクトリ位置が前記特定のクラス中の他の第1
メモリ位置に他の第2メモリ位置を関係付けることを特
徴とする上記(1)に記載の回路。 (3)前記ディレクトリ位置が他の特定のクラス中の他
の第1メモリ位置に他の第2メモリ位置を関係付けるこ
とを妨げずに、特定のディレクトリ位置が、特定のクラ
ス中の特定の第1メモリ位置に特定の第2メモリ位置を
関係付けることを特徴とする上記(1)に記載の回路。 (4)前記ディレクトリ位置に記憶された前記情報が、
前記第2メモリ位置に記憶する情報の供給源である前記
第1メモリ位置を示す情報を含むことを特徴とする上記
(1)に記載の回路。 (5)前記ディレクトリ位置に記憶された前記情報が、
前記第2メモリ位置に記憶する情報の供給源である前記
第1メモリ位置のアドレスのすべてのビットよりも少な
いビットを含むことを特徴とする上記(4)に記載の回
路。 (6)各前記ディレクトリ位置がそれぞれの実効アドレ
ス情報およびそれぞれの実アドレス情報を記憶できるこ
とを特徴とする上記(1)に記載の回路。 (7)さらに、前記ディレクトリ位置の前記実効アドレ
ス情報と1つの前記第1メモリ位置の実効アドレスを比
較し、それに応じて少なくとも1つの第1信号を出力す
るための回路を備えることを特徴とする上記(6)に記
載の回路。 (8)さらに、前記実効アドレスが特定のディレクトリ
位置の前記実効アドレス情報に一致することを前記第1
信号が示すのに応じて、少なくとも1つの前記第2メモ
リ位置から得た情報を出力するための回路を備えること
を特徴とする上記(7)に記載の回路。 (9)さらに、前記実効アドレスを実アドレスに変換す
るための回路を備えることを特徴とする上記(7)に記
載の回路。 (10)さらに、少なくとも1つの前記ディレクトリ位
置の前記実アドレス情報と前記実アドレスを比較し、そ
れに応じて少なくとも1つの第2信号を出力するための
回路を備えることを特徴とする上記(9)に記載の回
路。 (11)さらに、前記実アドレスが前記特定のディレク
トリ位置の前記実アドレス情報に一致することを前記第
2信号が示し、前記実効アドレスが前記特定のディレク
トリ位置の前記実効アドレス情報に一致しないことを前
記第1の信号が示すのに応じて、特定のディレクトリ位
置の前記実効アドレス情報を前記実効アドレスに一致す
るように修正するための回路を備えることを特徴とする
上記(10)に記載の回路。 (12)前記比較用の回路が、前記実効アドレスが前記
特定のディレクトリ位置の前記実効アドレス情報に一致
することを前記第1信号が示すのに応じて、特定のディ
レクトリ位置の前記実アドレス情報と前記実アドレスを
比較することを特徴とする上記(10)に記載の回路。 (13)さらに、前記実アドレスが特定のディレクトリ
位置の前記実アドレス情報に一致することを前記第2信
号が示すのに応じて、少なくとも1つの前記第2メモリ
位置から情報を入力するための回路を備えることを特徴
とする上記(10)に記載の回路。 (14)特定のディレクトリ位置が特定のクラス中の特
定の第1メモリ位置に特定の第2メモリ位置を関係付
け、他のディレクトリ位置が前記特定のクラス中の他の
第1メモリ位置に他の第2メモリ位置を関係付けること
を特徴とする上記(10)に記載の回路。 (15)前記実アドレスが前記特定のディレクトリ位置
の前記実アドレス情報に一致せず、前記実アドレスが前
記他のディレクトリ位置の前記実アドレス情報に一致す
ることを前記第2信号が示すのに応じて、前記特定のデ
ィレクトリ位置が前記他のディレクトリ位置に比べてno
t-most-recently-allocated(NMRA)と指定される
ことを特徴とする上記(14)に記載の回路。 (16)各クラスがそれぞれ複数の第1メモリ位置を含
む、情報を記憶するための複数の一次/二次合同クラス
の複数の第1メモリ位置を含むシステム・メモリと、前
記システム・メモリに結合され、前記第1メモリ位置か
ら得た情報を記憶するための複数の第2メモリ位置を含
む、キャッシュ・メモリと、前記キャッシュ・メモリに
結合され、各ディレクトリ位置がそれぞれ複数のクラス
中の複数の第1メモリ位置のどれにでも第2メモリ位置
を関係付けることができる、前記第1および第2メモリ
位置に関する情報を記憶するための複数のディレクトリ
位置を含む、ディレクトリとを備える情報をキャッシュ
するための回路。 (17)前記キャッシュ・メモリがL1キャッシュ・メ
モリであり、さらに、前記L1キャッシュとシステム・
メモリの間に結合された、前記第2メモリ位置のうちの
どれが前記第1メモリ位置から得た情報を記憶している
かを示す情報を記憶するためのL2キャッシュを備える
ことを特徴とする上記(16)に記載の回路。 (18)各前記ディレクトリ位置が、それぞれの実効ア
ドレス情報およびそれぞれの実アドレス情報を記憶でき
ることを特徴とする上記(16)に記載の回路。 (19)前記ディレクトリが前記実効アドレス情報を記
憶するための内容アドレス可能メモリ・アレイと、前記
実アドレス情報を記憶するためのキャッシュ・ディレク
トリとを備えることを特徴とする上記(18)に記載の
回路。 (20)さらに、1つの前記第1メモリ位置の実効アド
レスを前記ディレクトリの前記実効アドレス情報と比較
し、それに応じて少なくとも1つの第1信号を出力する
ための回路を備えることを特徴とする上記(19)に記
載の回路。 (21)前記比較用の回路が前記内容アドレス可能メモ
リ・アレイと一体であることを特徴とする上記(20)
に記載の回路。 (22)各クラスがそれぞれ複数の第1メモリ位置を含
み、複数のクラスの複数の第1メモリ位置の情報を記憶
するステップと、前記第1メモリ位置から得た情報を複
数の第2メモリ位置に記憶するステップと、前記第1お
よび第2メモリ位置に関する情報を、各ディレクトリ位
置がそれぞれ複数のクラス中の複数の第1メモリ位置の
どれにでも第2メモリ位置を関係付けることができる、
複数のディレクトリ位置に記憶するステップとを含む、
情報をキャッシュする方法。 (23)前記第1および第2メモリ位置に関する情報を
記憶する前記ステップが、特定のクラス中の特定の第1
メモリ位置に特定の第2メモリ位置を関係付ける情報を
特定のディレクトリ位置に記憶するステップと、同時
に、前記特定のクラス中の他の第1メモリ位置に他の第
2メモリ位置を関係付ける情報を他のディレクトリ位置
に記憶するステップとを含むことを特徴とする上記(2
2)に記載の方法。 (24)前記第1および第2メモリ位置に関する情報を
記憶する前記ステップが、前記ディレクトリ位置が他の
特定のクラス中の他の第1メモリ位置に他の第2メモリ
位置を関係付けることを妨げずに、特定のクラス中の特
定の第1メモリ位置に特定の第2メモリ位置を関係付け
る情報を特定のディレクトリ位置に記憶するステップを
含むことを特徴とする上記(22)に記載の方法。 (25)前記第1および第2メモリ位置に関する情報を
記憶する前記ステップが、前記第2メモリ位置に記憶す
る情報の供給源である前記第1メモリ位置を示す情報を
前記ディレクトリ位置に記憶するステップを含むことを
特徴とする上記(22)に記載の方法。 (26)前記第1メモリ位置を示す情報を記憶する前記
ステップが、前記第2メモリ位置に記憶する情報の供給
源である前記第1メモリ位置のアドレスのすべてのビッ
トよりも少ないビットを含む情報を前記ディレクトリ位
置に記憶するステップを含むことを特徴とする上記(2
5)に記載の方法。 (27)前記第1および第2メモリ位置に関する情報を
記憶する前記ステップが、それぞれの実効アドレス情報
およびそれぞれの実アドレス情報を少なくとも1つの前
記ディレクトリ位置に記憶するステップを含むことを特
徴とする上記(22)に記載の方法。 (28)さらに、前記ディレクトリ位置の前記実効アド
レス情報と1つの前記第1メモリ位置の実効アドレスを
比較し、それに応じて少なくとも1つの第1信号を出力
するステップを含むことを特徴とする上記(27)に記
載の方法。 (29)さらに、前記実効アドレスが特定のディレクト
リ位置の前記実効アドレス情報に一致することを前記第
1信号が示すのに応じて、少なくとも1つの前記第2メ
モリ位置から得た情報を出力するステップを含むことを
特徴とする上記(28)に記載の方法。 (30)さらに、前記実効アドレスを実アドレスに変換
するステップを含むことを特徴とする上記(28)に記
載の方法。 (31)さらに、少なくとも1つの前記ディレクトリ位
置の前記実アドレス情報と前記実アドレスを比較し、そ
れに応じて少なくとも1つの第2信号を出力するステッ
プを含むことを特徴とする上記(30)に記載の方法。 (32)さらに、前記実アドレスが前記特定のディレク
トリ位置の前記実アドレス情報に一致することを前記第
2信号が示し、前記実効アドレスが前記特定のディレク
トリ位置の前記実効アドレス情報に一致しないことを前
記第1信号が示すのに応じて、特定のディレクトリ位置
の前記実効アドレス情報を前記実効アドレスに一致する
ように修正するステップを含むことを特徴とする上記
(31)に記載の方法。 (33)前記比較ステップが、前記実アドレスが前記特
定のディレクトリ位置の前記実効アドレス情報に一致す
ることを前記第1信号が示すのに応じて、特定のディレ
クトリ位置の前記実アドレス情報と前記実アドレスを比
較するステップを含むことを特徴とする上記(31)に
記載の方法。 (34)さらに、前記実アドレスが特定のディレクトリ
位置の前記実アドレス情報に一致することを前記第2信
号が示すのに応じて、少なくとも1つの前記第2メモリ
位置から情報を入力するステップを含むことを特徴とす
る上記(31)に記載の方法。 (35)前記第1および第2メモリ位置に関する情報を
記憶する前記ステップが、特定のクラス中の特定の第1
メモリ位置に特定の第2メモリ位置を関係付ける情報を
特定のディレクトリ位置に記憶するステップと、同時
に、前記特定のクラス中の他の第1メモリ位置に他の第
2メモリ位置を関係付ける情報を他のディレクトリ位置
に記憶するステップとを含むことを特徴とする上記(3
1)に記載の方法。 (36)前記実アドレスが前記特定のディレクトリ位置
の前記実アドレス情報に一致せず、前記実アドレスが前
記他のディレクトリ位置の前記実アドレス情報に一致す
ることを前記第2信号が示すのに応じて、前記特定のデ
ィレクトリ位置を前記他のディレクトリ位置とに比べて
not-most-recently-allocated(NMRA)と指定する
ステップを含むことを特徴とする上記(35)に記載の
方法。
【0137】
【発明の効果】本発明によれば、すべての可能なアドレ
スの範囲が複数のサブセットとして論理的に構成され、
どの瞬間にもサブセットの複数のアドレスに関する情報
を記憶しているようにキャッシュ・メモリを割り振るこ
とができる、情報をキャッシュする方法及び回路が提供
できる。
【図面の簡単な説明】
【図1】従来技術によって情報をキャッシュするための
典型的なマッピング技法の概念図である。
【図2】従来技術によって情報をキャッシュするための
典型的なマッピング技法の概念図である。
【図3】従来技術によって情報をキャッシュするための
典型的なマッピング技法の概念図である。
【図4】典型的なCMOS CAMセルの概略電気回路
図である。
【図5】好ましい実施例によって情報をキャッシュする
ためのセミ・アソシアティブ・マッピング技術の概念図
である。
【図6】図5のセミ・アソシアティブ・マッピング技術
によって情報をキャッシュするための第1典型的な回路
のブロック図である。
【図7】図5のセミ・アソシアティブ・マッピング技術
によって情報をキャッシュするための第2典型的な回路
のブロック図である。
【図8】第1および第2処理システムとレベル2(「L
2」)キャッシュ・メモリとを含む典型的なシステムの
ブロック図である。
【図9】図7の回路の典型的なキャムレットの概念図で
ある。
【図10】図7の回路の典型的なキャムレットの概念図
である。
【図11】図7の回路の典型的なキャムレットの概念図
である。
【図12】図7の回路の典型的なキャムレットの概念図
である。
【図13】図7の回路の典型的なキャムレットの概念図
である。
【図14】図5のセミ・アソシアティブ・マッピング技
術および図7の回路によって情報をキャッシュするため
の第3の典型的な回路のブロック図である。
【図15】図5のセミ・アソシアティブ・マッピング技
術および図7の回路によって情報をキャッシュするため
の第3の典型的な回路のブロック図である。
【符号の説明】
10 キャッシュ・ディレクトリ 12 マトリックス 20 CMOS CAMセル 22 一致線 30 キャッシュ・ディレクトリ 100 回路 102 キャッシュ・メモリ・アレイ 104 キャッシュ・ディレクトリ 106 デコーダCAMアレイ 108 アクセス・アドレス 110 デコーダ・ヒット線 112 比較機構 116 割当てカウンタ 118 2進デコーダ 120 ワード線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アルバート・チャン アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ ハノーヴァー・ロー ド 980 (72)発明者 ロバート・モリス・ミード アメリカ合衆国12592 ニューヨーク州ワ ッサイク アール・アール1 ボックス 46

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】各クラスがそれぞれ複数の第1メモリ位置
    を含む、情報を記憶するための複数のクラスの複数の第
    1メモリ位置と、 前記第1メモリ位置から得た情報を記憶するための複数
    の第2メモリ位置と、 各ディレクトリ位置がそれぞれ複数のクラス中の複数の
    第1メモリ位置のどれにでも第2メモリ位置を関係付け
    ることができる、前記第1および第2メモリ位置に関す
    る情報を記憶するための複数のディレクトリ位置とを備
    える、情報をキャッシュするための回路。
  2. 【請求項2】特定のディレクトリ位置が特定のクラス中
    の特定の第1メモリ位置に特定の第2メモリ位置を関係
    付け、他のディレクトリ位置が前記特定のクラス中の他
    の第1メモリ位置に他の第2メモリ位置を関係付けるこ
    とを特徴とする請求項1に記載の回路。
  3. 【請求項3】前記ディレクトリ位置が他の特定のクラス
    中の他の第1メモリ位置に他の第2メモリ位置を関係付
    けることを妨げずに、特定のディレクトリ位置が、特定
    のクラス中の特定の第1メモリ位置に特定の第2メモリ
    位置を関係付けることを特徴とする請求項1に記載の回
    路。
  4. 【請求項4】前記ディレクトリ位置に記憶された前記情
    報が、前記第2メモリ位置に記憶する情報の供給源であ
    る前記第1メモリ位置を示す情報を含むことを特徴とす
    る請求項1に記載の回路。
  5. 【請求項5】前記ディレクトリ位置に記憶された前記情
    報が、前記第2メモリ位置に記憶する情報の供給源であ
    る前記第1メモリ位置のアドレスのすべてのビットより
    も少ないビットを含むことを特徴とする請求項4に記載
    の回路。
  6. 【請求項6】各前記ディレクトリ位置がそれぞれの実効
    アドレス情報およびそれぞれの実アドレス情報を記憶で
    きることを特徴とする請求項1に記載の回路。
  7. 【請求項7】さらに、前記ディレクトリ位置の前記実効
    アドレス情報と1つの前記第1メモリ位置の実効アドレ
    スを比較し、それに応じて少なくとも1つの第1信号を
    出力するための回路を備えることを特徴とする請求項6
    に記載の回路。
  8. 【請求項8】さらに、前記実効アドレスが特定のディレ
    クトリ位置の前記実効アドレス情報に一致することを前
    記第1信号が示すのに応じて、少なくとも1つの前記第
    2メモリ位置から得た情報を出力するための回路を備え
    ることを特徴とする請求項7に記載の回路。
  9. 【請求項9】さらに、前記実効アドレスを実アドレスに
    変換するための回路を備えることを特徴とする請求項7
    に記載の回路。
  10. 【請求項10】さらに、少なくとも1つの前記ディレク
    トリ位置の前記実アドレス情報と前記実アドレスを比較
    し、それに応じて少なくとも1つの第2信号を出力する
    ための回路を備えることを特徴とする請求項9に記載の
    回路。
  11. 【請求項11】さらに、前記実アドレスが前記特定のデ
    ィレクトリ位置の前記実アドレス情報に一致することを
    前記第2信号が示し、前記実効アドレスが前記特定のデ
    ィレクトリ位置の前記実効アドレス情報に一致しないこ
    とを前記第1の信号が示すのに応じて、特定のディレク
    トリ位置の前記実効アドレス情報を前記実効アドレスに
    一致するように修正するための回路を備えることを特徴
    とする請求項10に記載の回路。
  12. 【請求項12】前記比較用の回路が、前記実効アドレス
    が前記特定のディレクトリ位置の前記実効アドレス情報
    に一致することを前記第1信号が示すのに応じて、特定
    のディレクトリ位置の前記実アドレス情報と前記実アド
    レスを比較することを特徴とする請求項10に記載の回
    路。
  13. 【請求項13】さらに、前記実アドレスが特定のディレ
    クトリ位置の前記実アドレス情報に一致することを前記
    第2信号が示すのに応じて、少なくとも1つの前記第2
    メモリ位置から情報を入力するための回路を備えること
    を特徴とする請求項10に記載の回路。
  14. 【請求項14】特定のディレクトリ位置が特定のクラス
    中の特定の第1メモリ位置に特定の第2メモリ位置を関
    係付け、他のディレクトリ位置が前記特定のクラス中の
    他の第1メモリ位置に他の第2メモリ位置を関係付ける
    ことを特徴とする請求項10に記載の回路。
  15. 【請求項15】前記実アドレスが前記特定のディレクト
    リ位置の前記実アドレス情報に一致せず、前記実アドレ
    スが前記他のディレクトリ位置の前記実アドレス情報に
    一致することを前記第2信号が示すのに応じて、前記特
    定のディレクトリ位置が前記他のディレクトリ位置に比
    べてnot-most-recently-allocated(NMRA)と指定
    されることを特徴とする請求項14に記載の回路。
  16. 【請求項16】各クラスがそれぞれ複数の第1メモリ位
    置を含む、情報を記憶するための複数の一次/二次合同
    クラスの複数の第1メモリ位置を含むシステム・メモリ
    と、 前記システム・メモリに結合され、前記第1メモリ位置
    から得た情報を記憶するための複数の第2メモリ位置を
    含む、キャッシュ・メモリと、 前記キャッシュ・メモリに結合され、各ディレクトリ位
    置がそれぞれ複数のクラス中の複数の第1メモリ位置の
    どれにでも第2メモリ位置を関係付けることができる、
    前記第1および第2メモリ位置に関する情報を記憶する
    ための複数のディレクトリ位置を含む、ディレクトリと
    を備える情報をキャッシュするための回路。
  17. 【請求項17】前記キャッシュ・メモリがL1キャッシ
    ュ・メモリであり、さらに、前記L1キャッシュとシス
    テム・メモリの間に結合された、前記第2メモリ位置の
    うちのどれが前記第1メモリ位置から得た情報を記憶し
    ているかを示す情報を記憶するためのL2キャッシュを
    備えることを特徴とする請求項16に記載の回路。
  18. 【請求項18】各前記ディレクトリ位置が、それぞれの
    実効アドレス情報およびそれぞれの実アドレス情報を記
    憶できることを特徴とする請求項16に記載の回路。
  19. 【請求項19】前記ディレクトリが前記実効アドレス情
    報を記憶するための内容アドレス可能メモリ・アレイ
    と、 前記実アドレス情報を記憶するためのキャッシュ・ディ
    レクトリとを備えることを特徴とする請求項18に記載
    の回路。
  20. 【請求項20】さらに、1つの前記第1メモリ位置の実
    効アドレスを前記ディレクトリの前記実効アドレス情報
    と比較し、それに応じて少なくとも1つの第1信号を出
    力するための回路を備えることを特徴とする請求項19
    に記載の回路。
  21. 【請求項21】前記比較用の回路が前記内容アドレス可
    能メモリ・アレイと一体であることを特徴とする請求項
    20に記載の回路。
  22. 【請求項22】各クラスがそれぞれ複数の第1メモリ位
    置を含み、複数のクラスの複数の第1メモリ位置の情報
    を記憶するステップと、 前記第1メモリ位置から得た情報を複数の第2メモリ位
    置に記憶するステップと、 前記第1および第2メモリ位置に関する情報を、各ディ
    レクトリ位置がそれぞれ複数のクラス中の複数の第1メ
    モリ位置のどれにでも第2メモリ位置を関係付けること
    ができる、複数のディレクトリ位置に記憶するステップ
    とを含む、情報をキャッシュする方法。
  23. 【請求項23】前記第1および第2メモリ位置に関する
    情報を記憶する前記ステップが、 特定のクラス中の特定の第1メモリ位置に特定の第2メ
    モリ位置を関係付ける情報を特定のディレクトリ位置に
    記憶するステップと、 同時に、前記特定のクラス中の他の第1メモリ位置に他
    の第2メモリ位置を関係付ける情報を他のディレクトリ
    位置に記憶するステップとを含むことを特徴とする請求
    項22に記載の方法。
  24. 【請求項24】前記第1および第2メモリ位置に関する
    情報を記憶する前記ステップが、前記ディレクトリ位置
    が他の特定のクラス中の他の第1メモリ位置に他の第2
    メモリ位置を関係付けることを妨げずに、特定のクラス
    中の特定の第1メモリ位置に特定の第2メモリ位置を関
    係付ける情報を特定のディレクトリ位置に記憶するステ
    ップを含むことを特徴とする請求項22に記載の方法。
  25. 【請求項25】前記第1および第2メモリ位置に関する
    情報を記憶する前記ステップが、前記第2メモリ位置に
    記憶する情報の供給源である前記第1メモリ位置を示す
    情報を前記ディレクトリ位置に記憶するステップを含む
    ことを特徴とする請求項22に記載の方法。
  26. 【請求項26】前記第1メモリ位置を示す情報を記憶す
    る前記ステップが、前記第2メモリ位置に記憶する情報
    の供給源である前記第1メモリ位置のアドレスのすべて
    のビットよりも少ないビットを含む情報を前記ディレク
    トリ位置に記憶するステップを含むことを特徴とする請
    求項25に記載の方法。
  27. 【請求項27】前記第1および第2メモリ位置に関する
    情報を記憶する前記ステップが、それぞれの実効アドレ
    ス情報およびそれぞれの実アドレス情報を少なくとも1
    つの前記ディレクトリ位置に記憶するステップを含むこ
    とを特徴とする請求項22に記載の方法。
  28. 【請求項28】さらに、前記ディレクトリ位置の前記実
    効アドレス情報と1つの前記第1メモリ位置の実効アド
    レスを比較し、それに応じて少なくとも1つの第1信号
    を出力するステップを含むことを特徴とする請求項27
    に記載の方法。
  29. 【請求項29】さらに、前記実効アドレスが特定のディ
    レクトリ位置の前記実効アドレス情報に一致することを
    前記第1信号が示すのに応じて、少なくとも1つの前記
    第2メモリ位置から得た情報を出力するステップを含む
    ことを特徴とする請求項28に記載の方法。
  30. 【請求項30】さらに、前記実効アドレスを実アドレス
    に変換するステップを含むことを特徴とする請求項28
    に記載の方法。
  31. 【請求項31】さらに、少なくとも1つの前記ディレク
    トリ位置の前記実アドレス情報と前記実アドレスを比較
    し、それに応じて少なくとも1つの第2信号を出力する
    ステップを含むことを特徴とする請求項30に記載の方
    法。
  32. 【請求項32】さらに、前記実アドレスが前記特定のデ
    ィレクトリ位置の前記実アドレス情報に一致することを
    前記第2信号が示し、前記実効アドレスが前記特定のデ
    ィレクトリ位置の前記実効アドレス情報に一致しないこ
    とを前記第1信号が示すのに応じて、特定のディレクト
    リ位置の前記実効アドレス情報を前記実効アドレスに一
    致するように修正するステップを含むことを特徴とする
    請求項31に記載の方法。
  33. 【請求項33】前記比較ステップが、前記実アドレスが
    前記特定のディレクトリ位置の前記実効アドレス情報に
    一致することを前記第1信号が示すのに応じて、特定の
    ディレクトリ位置の前記実アドレス情報と前記実アドレ
    スを比較するステップを含むことを特徴とする請求項3
    1に記載の方法。
  34. 【請求項34】さらに、前記実アドレスが特定のディレ
    クトリ位置の前記実アドレス情報に一致することを前記
    第2信号が示すのに応じて、少なくとも1つの前記第2
    メモリ位置から情報を入力するステップを含むことを特
    徴とする請求項31に記載の方法。
  35. 【請求項35】前記第1および第2メモリ位置に関する
    情報を記憶する前記ステップが、 特定のクラス中の特定の第1メモリ位置に特定の第2メ
    モリ位置を関係付ける情報を特定のディレクトリ位置に
    記憶するステップと、 同時に、前記特定のクラス中の他の第1メモリ位置に他
    の第2メモリ位置を関係付ける情報を他のディレクトリ
    位置に記憶するステップとを含むことを特徴とする請求
    項31に記載の方法。
  36. 【請求項36】前記実アドレスが前記特定のディレクト
    リ位置の前記実アドレス情報に一致せず、前記実アドレ
    スが前記他のディレクトリ位置の前記実アドレス情報に
    一致することを前記第2信号が示すのに応じて、前記特
    定のディレクトリ位置を前記他のディレクトリ位置とに
    比べてnot-most-recently-allocated(NMRA)と指
    定するステップを含むことを特徴とする請求項35に記
    載の方法。
JP23573194A 1993-12-22 1994-09-29 情報をキャッシュするための回路 Expired - Fee Related JP3169155B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17344893A 1993-12-22 1993-12-22
US173448 1993-12-22

Publications (2)

Publication Number Publication Date
JPH07200405A true JPH07200405A (ja) 1995-08-04
JP3169155B2 JP3169155B2 (ja) 2001-05-21

Family

ID=22632083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23573194A Expired - Fee Related JP3169155B2 (ja) 1993-12-22 1994-09-29 情報をキャッシュするための回路

Country Status (3)

Country Link
US (1) US5835928A (ja)
EP (1) EP0660238A1 (ja)
JP (1) JP3169155B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
US6085288A (en) * 1997-04-14 2000-07-04 International Business Machines Corporation Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US6192458B1 (en) * 1998-03-23 2001-02-20 International Business Machines Corporation High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6574698B1 (en) * 1998-04-17 2003-06-03 International Business Machines Corporation Method and system for accessing a cache memory within a data processing system
US6657959B1 (en) 1998-06-27 2003-12-02 Intel Corporation Systems and methods for implementing ABR with guaranteed MCR
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6735773B1 (en) 1998-06-27 2004-05-11 Intel Corporation Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US6724767B1 (en) 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6728249B2 (en) 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
US6603768B1 (en) 1998-06-27 2003-08-05 Intel Corporation Multi-protocol conversion assistance method and system for a network accelerator
US6345352B1 (en) * 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
US6289430B1 (en) * 1999-02-18 2001-09-11 International Business Machines Corporation Method and apparatus for target addressing and translation in a non-uniform memory environment with user defined target tags
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6477613B1 (en) * 1999-06-30 2002-11-05 International Business Machines Corporation Cache index based system address bus
US6259620B1 (en) 2000-03-08 2001-07-10 Telefonaktiebolaget Lm Ericsson (Publ) Multiple entry matching in a content addressable memory
US7089360B1 (en) * 2000-03-22 2006-08-08 Intel Corporation Shared cache wordline decoder for redundant and regular addresses
US6493810B1 (en) * 2000-04-28 2002-12-10 Microsoft Corporation Method and system for allocating cache memory for a network database service
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6775742B2 (en) * 2000-07-20 2004-08-10 Silicon Graphics, Inc. Memory device storing data and directory information thereon, and method for providing the directory information and the data in the memory device
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US20070067380A2 (en) * 2001-12-06 2007-03-22 The University Of Georgia Research Foundation Floating Point Intensive Reconfigurable Computing System for Iterative Applications
US6987683B2 (en) * 2003-05-19 2006-01-17 Micron Technology, Inc. Magnitude comparator based content addressable memory for search and sorting
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
US8099579B2 (en) * 2007-07-13 2012-01-17 International Business Machines Corporation System and method for cache-locking mechanism using segment table attributes for replacement class ID determination
US8244979B2 (en) * 2007-07-13 2012-08-14 International Business Machines Corporation System and method for cache-locking mechanism using translation table attributes for replacement class ID determination
US8850159B2 (en) * 2008-04-29 2014-09-30 Broadcom Corporation Method and system for latency optimized ATS usage
US9009416B1 (en) 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US9053033B1 (en) * 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US9104529B1 (en) 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US11048637B2 (en) * 2019-06-18 2021-06-29 Samsung Electronics Co., Ltd. High-frequency and low-power L1 cache and associated access technique

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173880A (ja) * 1991-12-19 1993-07-13 Nec Corp 情報処理装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE788028A (fr) * 1971-08-25 1973-02-26 Siemens Ag Memoire associative
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4441155A (en) * 1981-11-23 1984-04-03 International Business Machines Corporation Page controlled cache directory addressing
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
IT1215539B (it) * 1987-06-03 1990-02-14 Honeywell Inf Systems Memoria tampone trasparente.
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
US5210845A (en) * 1990-11-28 1993-05-11 Intel Corporation Controller for two-way set associative cache
US5446850A (en) * 1991-01-15 1995-08-29 International Business Machines Corporation Cross-cache-line compounding algorithm for scism processors
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5410663A (en) * 1992-10-15 1995-04-25 International Business Machines Corporation Method and system for cache memory congruence class management in a data processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173880A (ja) * 1991-12-19 1993-07-13 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
JP3169155B2 (ja) 2001-05-21
US5835928A (en) 1998-11-10
EP0660238A1 (en) 1995-06-28

Similar Documents

Publication Publication Date Title
JP3169155B2 (ja) 情報をキャッシュするための回路
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US6381668B1 (en) Address mapping for system memory
US5526504A (en) Variable page size translation lookaside buffer
KR920005280B1 (ko) 고속 캐쉬 시스템
US4972338A (en) Memory management for microprocessor system
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US5058003A (en) Virtual storage dynamic address translation mechanism for multiple-sized pages
CA2020275C (en) Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
US5018061A (en) Microprocessor with on-chip cache memory with lower power consumption
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5802568A (en) Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
US5805855A (en) Data cache array having multiple content addressable fields per cache line
JPH0778762B2 (ja) 再構成可能なキャッシュ・メモリ・システム、キャッシュ・メモリ・システムを再構成する方法及びデータ処理システム
JPH1091525A (ja) 変換索引バッファ及びメモリ管理システム
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
JPH0622000B2 (ja) マイクロプロセツサ装置
US5713001A (en) Circuit for converting address operands supplied by a program to hashed virtual address
US5132927A (en) System for cache space allocation using selective addressing
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
JP2930071B2 (ja) 情報処理装置およびプロセッサ
EP0942376A1 (en) Method and system for pre-fetch cache interrogation using snoop port
JPH05216766A (ja) データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置

Legal Events

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