JPH08227380A - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JPH08227380A JPH08227380A JP7282636A JP28263695A JPH08227380A JP H08227380 A JPH08227380 A JP H08227380A JP 7282636 A JP7282636 A JP 7282636A JP 28263695 A JP28263695 A JP 28263695A JP H08227380 A JPH08227380 A JP H08227380A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- array
- address
- content addressable
- 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
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 2つのサブアレイに分割されたインタリーブ
式データ・キャッシュ・アレイを提供する。 【解決手段】 それぞれのサブアレイは複数のキャッシ
ュ線を含み、それぞれのキャッシュ線は、指定のデータ
・ブロックと、パリティ・フィールドと、指定のデータ
・ブロック用の有効アドレスの一部を含む内容アドレス
可能フィールドと、指定のデータ・ブロック用の実アド
レスの一部を含む第2の内容アドレス可能フィールド
と、データ状況フィールドとを含む。有効アドレスと実
アドレス用に2つの個別の内容アドレス可能フィールド
を使用することにより、オフセットと別名の問題を効率
よく解決することができる。個別の有効アドレス・ポー
トと実アドレス・ポートにより、個別のサブアレイ内で
の競合を発生せずにキャッシュに並列アクセスすること
ができる。
式データ・キャッシュ・アレイを提供する。 【解決手段】 それぞれのサブアレイは複数のキャッシ
ュ線を含み、それぞれのキャッシュ線は、指定のデータ
・ブロックと、パリティ・フィールドと、指定のデータ
・ブロック用の有効アドレスの一部を含む内容アドレス
可能フィールドと、指定のデータ・ブロック用の実アド
レスの一部を含む第2の内容アドレス可能フィールド
と、データ状況フィールドとを含む。有効アドレスと実
アドレス用に2つの個別の内容アドレス可能フィールド
を使用することにより、オフセットと別名の問題を効率
よく解決することができる。個別の有効アドレス・ポー
トと実アドレス・ポートにより、個別のサブアレイ内で
の競合を発生せずにキャッシュに並列アクセスすること
ができる。
Description
【0001】
【発明の属する技術分野】本発明は、改良型のデータ処
理システムに関し、特に、データ処理システムで使用す
るための改良型のデータ・キャッシュ・アレイに関す
る。より具体的には、本発明は、各キャッシュ線内に複
数の内容アドレス可能フィールドを含む、改良型のイン
タリーブ式データ・キャッシュに関する。
理システムに関し、特に、データ処理システムで使用す
るための改良型のデータ・キャッシュ・アレイに関す
る。より具体的には、本発明は、各キャッシュ線内に複
数の内容アドレス可能フィールドを含む、改良型のイン
タリーブ式データ・キャッシュに関する。
【0002】
【従来の技術】情報処理用の多くのシステムは、システ
ム・メモリとキャッシュ・メモリの両方を含んでいる。
キャッシュ・メモリは、比較的小さい高速メモリで、シ
ステム・メモリの各部の1つまたは複数からの情報のコ
ピーを格納する。多くの場合、キャッシュ・メモリはシ
ステム・メモリと物理的に異なっている。このようなキ
ャッシュ・メモリは、システムのプロセッサ・デバイス
と一体である場合もあれば、プロセッサとは非一体であ
る場合もある。
ム・メモリとキャッシュ・メモリの両方を含んでいる。
キャッシュ・メモリは、比較的小さい高速メモリで、シ
ステム・メモリの各部の1つまたは複数からの情報のコ
ピーを格納する。多くの場合、キャッシュ・メモリはシ
ステム・メモリと物理的に異なっている。このようなキ
ャッシュ・メモリは、システムのプロセッサ・デバイス
と一体である場合もあれば、プロセッサとは非一体であ
る場合もある。
【0003】システム・メモリの一部からキャッシュ・
メモリに情報をコピーすることができる。キャッシュ・
メモリ内の情報は、その後、変更することができる。ま
た、キャッシュ・メモリからの変更済み情報は、システ
ム・メモリの一部にコピーして戻すことができる。した
がって、キャッシュ・メモリ内の情報をシステム・メモ
リ内のその位置に対して相対的にマッピングすることが
重要である。
メモリに情報をコピーすることができる。キャッシュ・
メモリ内の情報は、その後、変更することができる。ま
た、キャッシュ・メモリからの変更済み情報は、システ
ム・メモリの一部にコピーして戻すことができる。した
がって、キャッシュ・メモリ内の情報をシステム・メモ
リ内のその位置に対して相対的にマッピングすることが
重要である。
【0004】情報をキャッシュするための従来の技法と
しては、直接マッピング、セットアソシアティブ・マッ
ピング、完全アソシアティブ・マッピングなどがある。
直接マッピング技法の欠点は、可能なすべてのアドレス
の範囲が複数のサブセットに論理的に配置された状態
で、いつでも一度に各サブセットのそれぞれのアドレス
の1つに関する情報だけを格納するためにキャッシュ・
メモリを割り振る場合がある点である。
しては、直接マッピング、セットアソシアティブ・マッ
ピング、完全アソシアティブ・マッピングなどがある。
直接マッピング技法の欠点は、可能なすべてのアドレス
の範囲が複数のサブセットに論理的に配置された状態
で、いつでも一度に各サブセットのそれぞれのアドレス
の1つに関する情報だけを格納するためにキャッシュ・
メモリを割り振る場合がある点である。
【0005】セットアソシアティブ技法の欠点は、キャ
ッシュ・メモリから情報を出力した後で、アドレス比較
に応じてその情報の一部を選択しなければならず、その
結果、キャッシュ・メモリから出力された情報の選択が
遅延される点である。また、完全アソシアティブ・キャ
ッシュ技法は、いわゆる「内容アドレス可能メモリ」
(CAM)アレイを使用して開発されたものであるが、
このような技法は比較的高価で、複雑かつ低速である。
ッシュ・メモリから情報を出力した後で、アドレス比較
に応じてその情報の一部を選択しなければならず、その
結果、キャッシュ・メモリから出力された情報の選択が
遅延される点である。また、完全アソシアティブ・キャ
ッシュ技法は、いわゆる「内容アドレス可能メモリ」
(CAM)アレイを使用して開発されたものであるが、
このような技法は比較的高価で、複雑かつ低速である。
【0006】したがって、キャッシュ回路の複雑さと、
データを正常に取り出せる速度とを最小限にしながら、
大量のデータをキャッシュすることができる、情報をキ
ャッシュするための方法およびシステムに対する必要性
が生じている。
データを正常に取り出せる速度とを最小限にしながら、
大量のデータをキャッシュすることができる、情報をキ
ャッシュするための方法およびシステムに対する必要性
が生じている。
【0007】
【発明が解決しようとする課題】したがって、本発明の
一目的は、改良型のデータ処理システムを提供すること
にある。
一目的は、改良型のデータ処理システムを提供すること
にある。
【0008】本発明の他の目的は、データ処理システム
で使用するための改良型のデータ・キャッシュ・アレイ
を提供することにある。
で使用するための改良型のデータ・キャッシュ・アレイ
を提供することにある。
【0009】本発明の他の目的は、データ処理システム
で使用可能な、各キャッシュ線内に複数の内容アドレス
可能フィールドを含む改良型のインタリーブ式データ・
キャッシュ・アレイを提供することにある。
で使用可能な、各キャッシュ線内に複数の内容アドレス
可能フィールドを含む改良型のインタリーブ式データ・
キャッシュ・アレイを提供することにある。
【0010】
【課題を解決するための手段】上記の目的は、以下に説
明するように達成される。データ処理システム内で使用
するために、2つのサブアレイに分割されたインタリー
ブ式データ・キャッシュ・アレイを提供する。それぞれ
のサブアレイは複数のキャッシュ線を含み、それぞれの
キャッシュ線は、指定のデータ・ブロックと、パリティ
・フィールドと、指定のデータ・ブロック用の有効アド
レスの一部を含む内容アドレス可能フィールドと、指定
のデータ・ブロック用の実アドレスの一部を含む第2の
内容アドレス可能フィールドと、データ状況フィールド
とを含む。有効アドレスと実アドレス用に2つの個別の
内容アドレス可能フィールドを使用することにより、オ
フセットと別名の問題を効率よく解決することができ
る。このデータ・キャッシュは、それぞれの合同クラス
が同一の下位アドレス・ビットを有する最高8つの項目
を含む、8ウェイ・セットアソシアティブ・キャッシュ
として配置されていることが好ましい。個別の有効アド
レス・ポートと実アドレス・ポートにより、個別のサブ
アレイ内での競合を発生せずにキャッシュに並列アクセ
スすることができ、有効アドレス・ポートと実アドレス
・ポートの両方による単一サブアレイへの同時アクセス
の試行のためにサブアレイ・アービトレーション論理回
路が設けられている。
明するように達成される。データ処理システム内で使用
するために、2つのサブアレイに分割されたインタリー
ブ式データ・キャッシュ・アレイを提供する。それぞれ
のサブアレイは複数のキャッシュ線を含み、それぞれの
キャッシュ線は、指定のデータ・ブロックと、パリティ
・フィールドと、指定のデータ・ブロック用の有効アド
レスの一部を含む内容アドレス可能フィールドと、指定
のデータ・ブロック用の実アドレスの一部を含む第2の
内容アドレス可能フィールドと、データ状況フィールド
とを含む。有効アドレスと実アドレス用に2つの個別の
内容アドレス可能フィールドを使用することにより、オ
フセットと別名の問題を効率よく解決することができ
る。このデータ・キャッシュは、それぞれの合同クラス
が同一の下位アドレス・ビットを有する最高8つの項目
を含む、8ウェイ・セットアソシアティブ・キャッシュ
として配置されていることが好ましい。個別の有効アド
レス・ポートと実アドレス・ポートにより、個別のサブ
アレイ内での競合を発生せずにキャッシュに並列アクセ
スすることができ、有効アドレス・ポートと実アドレス
・ポートの両方による単一サブアレイへの同時アクセス
の試行のためにサブアレイ・アービトレーション論理回
路が設けられている。
【0011】本発明の上記ならびに追加の目的、特徴、
利点は、以下の詳細な説明で明らかになるであろう。
利点は、以下の詳細な説明で明らかになるであろう。
【0012】本発明の特性を示すと思われる新規の特徴
は、特許請求の範囲に示されている。しかし、本発明そ
のもの、ならびに好ましい使用方法、本発明の追加の目
的および利点については、添付図面に関連して以下に示
す実施例の詳細な説明を参照することにより、最もよく
理解できるであろう。
は、特許請求の範囲に示されている。しかし、本発明そ
のもの、ならびに好ましい使用方法、本発明の追加の目
的および利点については、添付図面に関連して以下に示
す実施例の詳細な説明を参照することにより、最もよく
理解できるであろう。
【0013】
【発明の実施の形態】ここで添付図面、特に図1〜3を
参照するが、これらの図には、先行技術により情報をキ
ャッシュするためのマッピング技法の例の概念図が示さ
れている。キャッシュ・ディレクトリ10はp=2k=
8個の項目を有し、それぞれの項目はキャッシュ・メモ
リ内のそれぞれの情報ブロックに関連づけられている。
マトリックス12はq=2m+k=64個の8進アドレス
を有し、それぞれのアドレスは2次メモリ内のそれぞれ
の情報ブロックを表している。図1〜3は、マトリック
ス12の各ブロックとともにそのブロックの関連アドレ
スを示している。マトリックス12のq個の8進アドレ
スのそれぞれは、m+k=6個のアドレス・ビットを有
する。
参照するが、これらの図には、先行技術により情報をキ
ャッシュするためのマッピング技法の例の概念図が示さ
れている。キャッシュ・ディレクトリ10はp=2k=
8個の項目を有し、それぞれの項目はキャッシュ・メモ
リ内のそれぞれの情報ブロックに関連づけられている。
マトリックス12はq=2m+k=64個の8進アドレス
を有し、それぞれのアドレスは2次メモリ内のそれぞれ
の情報ブロックを表している。図1〜3は、マトリック
ス12の各ブロックとともにそのブロックの関連アドレ
スを示している。マトリックス12のq個の8進アドレ
スのそれぞれは、m+k=6個のアドレス・ビットを有
する。
【0014】図1は直接マッピング技法を示すものであ
る。図1のマトリックス12とディレクトリ10はp=
2k=8個の合同クラスに論理的に配置されている。合
同クラスは、あるアドレスの下位kビットのアドレス・
ビットによって指定される。したがって、各合同クラス
は複数のアドレスを含み、そのすべてが同じ下位kビッ
トのアドレス・ビットを共用することができる。図1で
は、k=3であり、m=3である。
る。図1のマトリックス12とディレクトリ10はp=
2k=8個の合同クラスに論理的に配置されている。合
同クラスは、あるアドレスの下位kビットのアドレス・
ビットによって指定される。したがって、各合同クラス
は複数のアドレスを含み、そのすべてが同じ下位kビッ
トのアドレス・ビットを共用することができる。図1で
は、k=3であり、m=3である。
【0015】たとえば、図1の1つの合同クラスは、下
位3ビットのアドレス・ビットが8進数の7になるすべ
てのアドレスを含む。この合同クラスは、07、17、
27、37、47、57、67、77という8進アドレ
スを含む。同様に、別の合同クラスは、02、12、2
2、32、42、52、62、72という8進アドレス
を含む。
位3ビットのアドレス・ビットが8進数の7になるすべ
てのアドレスを含む。この合同クラスは、07、17、
27、37、47、57、67、77という8進アドレ
スを含む。同様に、別の合同クラスは、02、12、2
2、32、42、52、62、72という8進アドレス
を含む。
【0016】図1の各合同クラスは、キャッシュ・ディ
レクトリ10内の事前割当ての関連項目をそれぞれ1つ
ずつ有する。したがって、キャッシュ・メモリは、いつ
でも一度に1つの合同クラスの単一アドレスに関する情
報だけを格納し、この単一アドレスは、キャッシュ・デ
ィレクトリ10のその合同クラスの関連項目に指定され
る。たとえば、その合同クラスの関連項目では、キャッ
シュ・ディレクトリ10は、単一アドレスの上位mビッ
トのアドレス・ビットを含むタグを格納することができ
る。図1では、m=3である。
レクトリ10内の事前割当ての関連項目をそれぞれ1つ
ずつ有する。したがって、キャッシュ・メモリは、いつ
でも一度に1つの合同クラスの単一アドレスに関する情
報だけを格納し、この単一アドレスは、キャッシュ・デ
ィレクトリ10のその合同クラスの関連項目に指定され
る。たとえば、その合同クラスの関連項目では、キャッ
シュ・ディレクトリ10は、単一アドレスの上位mビッ
トのアドレス・ビットを含むタグを格納することができ
る。図1では、m=3である。
【0017】一例として、図1では、下位3ビットのア
ドレス・ビットが8進数の5になる8個のアドレスによ
れば、キャッシュ・ディレクトリ10は、そのタグ値が
8進数の4になる8進アドレス45に関する情報だけを
キャッシュ・メモリが格納することを示している。同様
に、下位アドレス・ビットが8進数の1になる8個のア
ドレスによれば、キャッシュ・ディレクトリ10は、8
進アドレス31に関する情報だけをキャッシュ・メモリ
が格納することを示している。
ドレス・ビットが8進数の5になる8個のアドレスによ
れば、キャッシュ・ディレクトリ10は、そのタグ値が
8進数の4になる8進アドレス45に関する情報だけを
キャッシュ・メモリが格納することを示している。同様
に、下位アドレス・ビットが8進数の1になる8個のア
ドレスによれば、キャッシュ・ディレクトリ10は、8
進アドレス31に関する情報だけをキャッシュ・メモリ
が格納することを示している。
【0018】したがって、アドレスADDRの下位kビ
ットのアドレス・ビットは、ADDRという合同クラス
を指定する。さらに、下位kビットのアドレス・ビット
は、2進復号化によりキャッシュ・ディレクトリ10内
のその合同クラスの関連項目と、キャッシュ・メモリ内
のそれに関連する情報ブロックとにアクセスするための
インデックスとして機能する。キャッシュ・ディレクト
リ10のインデックス付き項目が読み取られ、ADDR
と比較される。ADDRがインデックス項目と一致する
場合は、キャッシュ・メモリのインデックス・ブロック
がADDRに関する情報を格納する。
ットのアドレス・ビットは、ADDRという合同クラス
を指定する。さらに、下位kビットのアドレス・ビット
は、2進復号化によりキャッシュ・ディレクトリ10内
のその合同クラスの関連項目と、キャッシュ・メモリ内
のそれに関連する情報ブロックとにアクセスするための
インデックスとして機能する。キャッシュ・ディレクト
リ10のインデックス付き項目が読み取られ、ADDR
と比較される。ADDRがインデックス項目と一致する
場合は、キャッシュ・メモリのインデックス・ブロック
がADDRに関する情報を格納する。
【0019】直接マッピング技法の欠点は、1つのアド
レスの情報をキャッシュ・メモリに格納することによっ
て、同一合同クラスの他のすべてのアドレスに関する情
報の格納が除外される点である。合同クラスの数
(2k)がキャッシュ・ディレクトリ10内の項目の数
(2k)に制限され、このため、多数のアドレスがキャ
ッシュ・ディレクトリ10内の単一項目を共用せざるを
得なくなるということにより、この欠点はさらに増大す
る。同様に、単一合同クラスのすべてのアドレスはキャ
ッシュ・メモリ内の単一項目を共用せざるを得ない。
レスの情報をキャッシュ・メモリに格納することによっ
て、同一合同クラスの他のすべてのアドレスに関する情
報の格納が除外される点である。合同クラスの数
(2k)がキャッシュ・ディレクトリ10内の項目の数
(2k)に制限され、このため、多数のアドレスがキャ
ッシュ・ディレクトリ10内の単一項目を共用せざるを
得なくなるということにより、この欠点はさらに増大す
る。同様に、単一合同クラスのすべてのアドレスはキャ
ッシュ・メモリ内の単一項目を共用せざるを得ない。
【0020】図2は、n=2の場合のnウェイ・セット
アソシアティブ・マッピング技法を示すものである。図
2のマトリックス12とディレクトリ10は、p/n=
4個の合同クラスに論理的に配置されている。合同クラ
スは、アドレスの下位yビットのアドレス・ビットによ
って指定され、p/n=2yである。したがって、各合
同クラスは複数のアドレスを含み、そのすべてが同一の
下位yビットのアドレス・ビットを共用する。図2で
は、k=3であり、y=2である。
アソシアティブ・マッピング技法を示すものである。図
2のマトリックス12とディレクトリ10は、p/n=
4個の合同クラスに論理的に配置されている。合同クラ
スは、アドレスの下位yビットのアドレス・ビットによ
って指定され、p/n=2yである。したがって、各合
同クラスは複数のアドレスを含み、そのすべてが同一の
下位yビットのアドレス・ビットを共用する。図2で
は、k=3であり、y=2である。
【0021】たとえば、図2の1つの合同クラスは、下
位2ビットのアドレス・ビットが3という値を有するす
べてのアドレスを含む。この合同クラスは、03、0
7、13、17、23、27、33、37、43、4
7、53、57、63、67、73、77という8進ア
ドレスを含む。同様に、別の合同クラスは、01、0
5、11、15、21、25、31、35、41、4
5、51、55、61、65、71、75という8進ア
ドレスを含む。
位2ビットのアドレス・ビットが3という値を有するす
べてのアドレスを含む。この合同クラスは、03、0
7、13、17、23、27、33、37、43、4
7、53、57、63、67、73、77という8進ア
ドレスを含む。同様に、別の合同クラスは、01、0
5、11、15、21、25、31、35、41、4
5、51、55、61、65、71、75という8進ア
ドレスを含む。
【0022】図2のキャッシュ・ディレクトリ10は、
それぞれ4つのブロックを有する2つの列に論理的に配
置されている。したがって、各合同クラスは、キャッシ
ュ・ディレクトリ10内の第1および第2の項目からな
る事前割当ての関連セットをそれぞれ1つずつ有する。
したがって、キャッシュ・メモリは、いつでも一度に1
つの合同クラスの第1および第2のアドレスに関する情
報を格納し、この第1および第2のアドレスは、キャッ
シュ・ディレクトリ10内の第1および第2の項目から
なるその合同クラスの関連セットに指定される。たとえ
ば、第1の関連項目では、キャッシュ・ディレクトリ1
0は、第1のアドレスの上位m=1ビットのアドレス・
ビットを含む第1のタグを格納することができ、第2の
関連項目では、キャッシュ・ディレクトリ10は、第2
のアドレスの上位m=1ビットのアドレス・ビットを含
む第2のタグを格納することができる。図2では、m=
3である。
それぞれ4つのブロックを有する2つの列に論理的に配
置されている。したがって、各合同クラスは、キャッシ
ュ・ディレクトリ10内の第1および第2の項目からな
る事前割当ての関連セットをそれぞれ1つずつ有する。
したがって、キャッシュ・メモリは、いつでも一度に1
つの合同クラスの第1および第2のアドレスに関する情
報を格納し、この第1および第2のアドレスは、キャッ
シュ・ディレクトリ10内の第1および第2の項目から
なるその合同クラスの関連セットに指定される。たとえ
ば、第1の関連項目では、キャッシュ・ディレクトリ1
0は、第1のアドレスの上位m=1ビットのアドレス・
ビットを含む第1のタグを格納することができ、第2の
関連項目では、キャッシュ・ディレクトリ10は、第2
のアドレスの上位m=1ビットのアドレス・ビットを含
む第2のタグを格納することができる。図2では、m=
3である。
【0023】一例として、図2では、下位2ビットのア
ドレス・ビットが1という値を有する16個のアドレス
によれば、キャッシュ・ディレクトリ10は、8進アド
レス05と8進アドレス11に関する情報だけをキャッ
シュ・メモリが格納することを示している。同様に、下
位2ビットのアドレス・ビットが3という値を有する1
6個のアドレスによれば、キャッシュ・ディレクトリ1
0は、8進アドレス43と8進アドレス14に関する情
報だけをキャッシュ・メモリが格納することを示してい
る。
ドレス・ビットが1という値を有する16個のアドレス
によれば、キャッシュ・ディレクトリ10は、8進アド
レス05と8進アドレス11に関する情報だけをキャッ
シュ・メモリが格納することを示している。同様に、下
位2ビットのアドレス・ビットが3という値を有する1
6個のアドレスによれば、キャッシュ・ディレクトリ1
0は、8進アドレス43と8進アドレス14に関する情
報だけをキャッシュ・メモリが格納することを示してい
る。
【0024】したがって、アドレスADDRの下位yビ
ットのアドレス・ビットは、ADDRという合同クラス
を指定する。さらに、下位yビットのアドレス・ビット
は、キャッシュ・ディレクトリ10内の2つの項目から
なるその合同クラスの関連セットと、キャッシュ・メモ
リ内のそれに関連する2つのブロックのセットへのイン
デックスとして機能する。キャッシュ・ディレクトリ1
0の2つのインデックス項目が読み取られ、ADDRと
比較される。ADDRが一方のインデックス付き項目と
一致する場合は、キャッシュ・メモリの一致項目の関連
ブロックがADDRに関する情報を格納する。セットア
ソシアティブ技法の欠点は、キャッシュ・ディレクトリ
10の2つのインデックス付き項目間の選択の結果、キ
ャッシュ・メモリから出力される情報の選択が遅延され
る点である。この欠点は、本発明の方法およびシステム
によって克服される。
ットのアドレス・ビットは、ADDRという合同クラス
を指定する。さらに、下位yビットのアドレス・ビット
は、キャッシュ・ディレクトリ10内の2つの項目から
なるその合同クラスの関連セットと、キャッシュ・メモ
リ内のそれに関連する2つのブロックのセットへのイン
デックスとして機能する。キャッシュ・ディレクトリ1
0の2つのインデックス項目が読み取られ、ADDRと
比較される。ADDRが一方のインデックス付き項目と
一致する場合は、キャッシュ・メモリの一致項目の関連
ブロックがADDRに関する情報を格納する。セットア
ソシアティブ技法の欠点は、キャッシュ・ディレクトリ
10の2つのインデックス付き項目間の選択の結果、キ
ャッシュ・メモリから出力される情報の選択が遅延され
る点である。この欠点は、本発明の方法およびシステム
によって克服される。
【0025】最後に図3は、完全アソシアティブ・マッ
ピング技法を示すものである。図3のマトリックス12
とディレクトリ10は、複数の合同クラスに論理的に配
置されていない。したがって、キャッシュ・メモリは、
いつでも一度に8個のアドレスからなる任意のグループ
に関する情報を格納することができ、この8個のアドレ
スは、キャッシュ・ディレクトリ10の8個の項目に指
定される。たとえば、キャッシュ・ディレクトリ10
は、8個のタグを格納することができ、それぞれが1つ
のアドレスの全ビットを含む。
ピング技法を示すものである。図3のマトリックス12
とディレクトリ10は、複数の合同クラスに論理的に配
置されていない。したがって、キャッシュ・メモリは、
いつでも一度に8個のアドレスからなる任意のグループ
に関する情報を格納することができ、この8個のアドレ
スは、キャッシュ・ディレクトリ10の8個の項目に指
定される。たとえば、キャッシュ・ディレクトリ10
は、8個のタグを格納することができ、それぞれが1つ
のアドレスの全ビットを含む。
【0026】図3のキャッシュ・ディレクトリ10は、
(p=8個のCAM項目)×(m+k=6個のアドレス
・ビット)からなる1つの内容アドレス可能メモリ(C
AM)アレイとして構造化されている。CAMアレイと
して、キャッシュ・ディレクトリ10はアドレスADD
Rを入力し、それを8個のCAM項目内のすべてのアド
レスと同時に比較する。ADDRがいずれかのCAM項
目のアドレスと一致する場合は、ADDRに関する情報
を格納するキャッシュ・メモリ・ブロックを直接選択す
るために一致線14a〜14hのそれぞれをアサートす
る。したがって、キャッシュ・ディレクトリ10は、キ
ャッシュ・メモリ用の復号器およびアクセス機構として
機能する。
(p=8個のCAM項目)×(m+k=6個のアドレス
・ビット)からなる1つの内容アドレス可能メモリ(C
AM)アレイとして構造化されている。CAMアレイと
して、キャッシュ・ディレクトリ10はアドレスADD
Rを入力し、それを8個のCAM項目内のすべてのアド
レスと同時に比較する。ADDRがいずれかのCAM項
目のアドレスと一致する場合は、ADDRに関する情報
を格納するキャッシュ・メモリ・ブロックを直接選択す
るために一致線14a〜14hのそれぞれをアサートす
る。したがって、キャッシュ・ディレクトリ10は、キ
ャッシュ・メモリ用の復号器およびアクセス機構として
機能する。
【0027】完全アソシアティブ技法の欠点は、(m+
k個のアドレス・ビット線)×p個の一致線を有するC
AMアレイの費用、複雑さ、速度低下である。これは、
2次メモリ・ブロックの数(q=2m+k)とともにアド
レス・ビットの数(m+k)が増すにつれて特に当ては
まることである。
k個のアドレス・ビット線)×p個の一致線を有するC
AMアレイの費用、複雑さ、速度低下である。これは、
2次メモリ・ブロックの数(q=2m+k)とともにアド
レス・ビットの数(m+k)が増すにつれて特に当ては
まることである。
【0028】次に図4を参照すると、同図には、本発明
により情報をキャッシュするためのセミアソシアティブ
・マッピング技法の概念図が示されている。図示の通
り、キャッシュ・ディレクトリ30はp=2k=8個の
項目(または「位置」)を有し、それぞれの項目は本発
明により提供されるキャッシュ・メモリ内のそれぞれの
情報ブロック(または位置)に関連づけられている。マ
トリックス32が示されているが、これはq=2m+k=
64個の8進アドレスを含み、それぞれのアドレスは図
5に示す2次メモリ内のそれぞれの情報ブロック(また
は「位置」)を表している。マトリックス32のq個の
8進アドレスのそれぞれはm+k=6個のアドレス・ビ
ットを有する。
により情報をキャッシュするためのセミアソシアティブ
・マッピング技法の概念図が示されている。図示の通
り、キャッシュ・ディレクトリ30はp=2k=8個の
項目(または「位置」)を有し、それぞれの項目は本発
明により提供されるキャッシュ・メモリ内のそれぞれの
情報ブロック(または位置)に関連づけられている。マ
トリックス32が示されているが、これはq=2m+k=
64個の8進アドレスを含み、それぞれのアドレスは図
5に示す2次メモリ内のそれぞれの情報ブロック(また
は「位置」)を表している。マトリックス32のq個の
8進アドレスのそれぞれはm+k=6個のアドレス・ビ
ットを有する。
【0029】図4に示すように、マトリックス32とデ
ィレクトリ30は2(k+j)個の合同クラスに論理的に配
置されており、2kは1次合同クラスの数であり、2jは
2次合同クラス(「合同サブクラス」)の数である。図
4では、p*2=2(k+j)=16であるので、k=3か
つj=1である。1次/2次合同クラスは1つのアドレ
スのインデックス(k+j)アドレス・ビットによって
指定される。したがって、各合同クラスは複数のアドレ
スを含み、そのすべてが同じインデックス(k+j)ア
ドレス・ビットを共用する。
ィレクトリ30は2(k+j)個の合同クラスに論理的に配
置されており、2kは1次合同クラスの数であり、2jは
2次合同クラス(「合同サブクラス」)の数である。図
4では、p*2=2(k+j)=16であるので、k=3か
つj=1である。1次/2次合同クラスは1つのアドレ
スのインデックス(k+j)アドレス・ビットによって
指定される。したがって、各合同クラスは複数のアドレ
スを含み、そのすべてが同じインデックス(k+j)ア
ドレス・ビットを共用する。
【0030】たとえば、図4の1つの合同クラスは、そ
のインデックス(k+j)アドレス・ビットが0001
になるすべてのアドレスを含む。この合同クラスは0
1、21、41、61という8進アドレスを含む。同様
に、別の合同クラス(そのインデックス(k+j)アド
レス・ビットが1001になる)は11、31、51、
71という8進アドレスを含む。
のインデックス(k+j)アドレス・ビットが0001
になるすべてのアドレスを含む。この合同クラスは0
1、21、41、61という8進アドレスを含む。同様
に、別の合同クラス(そのインデックス(k+j)アド
レス・ビットが1001になる)は11、31、51、
71という8進アドレスを含む。
【0031】好ましい実施例の重要な態様では、キャッ
シュ・ディレクトリ30内の項目に合同クラスが事前割
当てされていない。むしろ、合同クラスは、キャッシュ
・ディレクトリ30内の項目に動的に関連づけられてい
る(または「割り振られている」)。したがって、キャ
ッシュ・ディレクトリ30の各項目は、複数の合同クラ
スの複数の2次メモリ・ブロックのいずれかにキャッシ
ュ・メモリ・ブロックを関連づけることができる。
シュ・ディレクトリ30内の項目に合同クラスが事前割
当てされていない。むしろ、合同クラスは、キャッシュ
・ディレクトリ30内の項目に動的に関連づけられてい
る(または「割り振られている」)。したがって、キャ
ッシュ・ディレクトリ30の各項目は、複数の合同クラ
スの複数の2次メモリ・ブロックのいずれかにキャッシ
ュ・メモリ・ブロックを関連づけることができる。
【0032】したがって、2k+j個の合同クラスのうち
の最高2k個は、いつでも一度に任意のグループ化およ
び任意の順序でキャッシュ・ディレクトリ30内のそれ
ぞれの関連項目を有する。したがって、キャッシュ・メ
モリは、いつでも一度に任意のグループ化および任意の
順序で2(k+j)個の合同クラスのうちの最高2k個に関す
る情報を格納する。1つの合同クラスの値は、キャッシ
ュ・ディレクトリ30内でその合同クラスに動的に関連
づけられた項目のk+j個のCAMセルに格納される。
キャッシュ・ディレクトリ30内の合同クラスの関連項
目では、その合同クラスの複数のアドレスの1つが指定
される。たとえば、キャッシュ・ディレクトリ30は、
そのアドレスの上位(m−j)ビットのアドレス・ビッ
トを含むタグを合同クラスの関連項目に格納することが
できる。図4では、m=3である。
の最高2k個は、いつでも一度に任意のグループ化およ
び任意の順序でキャッシュ・ディレクトリ30内のそれ
ぞれの関連項目を有する。したがって、キャッシュ・メ
モリは、いつでも一度に任意のグループ化および任意の
順序で2(k+j)個の合同クラスのうちの最高2k個に関す
る情報を格納する。1つの合同クラスの値は、キャッシ
ュ・ディレクトリ30内でその合同クラスに動的に関連
づけられた項目のk+j個のCAMセルに格納される。
キャッシュ・ディレクトリ30内の合同クラスの関連項
目では、その合同クラスの複数のアドレスの1つが指定
される。たとえば、キャッシュ・ディレクトリ30は、
そのアドレスの上位(m−j)ビットのアドレス・ビッ
トを含むタグを合同クラスの関連項目に格納することが
できる。図4では、m=3である。
【0033】一例として、図4では、そのインデックス
(k+j)アドレス・ビットが1101になる4個のア
ドレス(8進アドレス15、35、55、75)によれ
ば、キャッシュ・ディレクトリ30は、8進アドレス5
5に関する情報をキャッシュ・メモリが格納することを
示している。このような状況では、キャッシュ・ディレ
クトリ30の合同クラスの項目のCAMビット部分にk
+j個のインデックス・ビット1101が格納され、キ
ャッシュ・ディレクトリ30の合同クラスの項目のタグ
部分にm−j個のタグ・ビットが格納される。比較する
と、キャッシュ・ディレクトリ30は、そのインデック
ス(k+j)アドレス・ビットが0011になる4個の
アドレス(8進アドレス03、23、43、63)のい
ずれに関する情報もキャッシュ・メモリが格納しないこ
とを示している。
(k+j)アドレス・ビットが1101になる4個のア
ドレス(8進アドレス15、35、55、75)によれ
ば、キャッシュ・ディレクトリ30は、8進アドレス5
5に関する情報をキャッシュ・メモリが格納することを
示している。このような状況では、キャッシュ・ディレ
クトリ30の合同クラスの項目のCAMビット部分にk
+j個のインデックス・ビット1101が格納され、キ
ャッシュ・ディレクトリ30の合同クラスの項目のタグ
部分にm−j個のタグ・ビットが格納される。比較する
と、キャッシュ・ディレクトリ30は、そのインデック
ス(k+j)アドレス・ビットが0011になる4個の
アドレス(8進アドレス03、23、43、63)のい
ずれに関する情報もキャッシュ・メモリが格納しないこ
とを示している。
【0034】実施例の特定の合同クラスには、キャッシ
ュ・ディレクトリ30内の1つの関連項目だけが割り当
てられ、キャッシュ・ディレクトリがいつでも一度にそ
の特定の合同クラスの1つのアドレスに関する情報だけ
を格納できるようになっている。比較すると、好ましい
実施例の特定の合同クラスには、任意のグループ化およ
び任意の順序でキャッシュ・ディレクトリ30内の複数
の関連項目が割り当てられ、キャッシュ・メモリが任意
のグループ化および順序でいつでも一度にその特定の合
同クラスの複数のアドレスに関する情報を格納できるよ
うになっている。
ュ・ディレクトリ30内の1つの関連項目だけが割り当
てられ、キャッシュ・ディレクトリがいつでも一度にそ
の特定の合同クラスの1つのアドレスに関する情報だけ
を格納できるようになっている。比較すると、好ましい
実施例の特定の合同クラスには、任意のグループ化およ
び任意の順序でキャッシュ・ディレクトリ30内の複数
の関連項目が割り当てられ、キャッシュ・メモリが任意
のグループ化および順序でいつでも一度にその特定の合
同クラスの複数のアドレスに関する情報を格納できるよ
うになっている。
【0035】次に図5を参照すると、同図には、システ
ム・バス308によって互いに接続されている第1およ
び第2の処理システム302および304とレベル2
(「L2」)キャッシュ・コントローラ306とを含む
システム例(全体を300として示す)のブロック図が
示されている。L2キャッシュ・コントローラ306
は、実際の4ウェイ・セットアソシアティブ・マッピン
グ技法によりL2キャッシュ・メモリ312を制御す
る。L2キャッシュ・メモリ312は、実アドレスに応
じてアクセスされる。
ム・バス308によって互いに接続されている第1およ
び第2の処理システム302および304とレベル2
(「L2」)キャッシュ・コントローラ306とを含む
システム例(全体を300として示す)のブロック図が
示されている。L2キャッシュ・コントローラ306
は、実際の4ウェイ・セットアソシアティブ・マッピン
グ技法によりL2キャッシュ・メモリ312を制御す
る。L2キャッシュ・メモリ312は、実アドレスに応
じてアクセスされる。
【0036】処理システム302は、プロセッサ314
と、L1キャッシュ・コントローラ316と、L1キャ
ッシュ・メモリ318とを含む。L1キャッシュ・コン
トローラ316は、システム・バス308と、プロセッ
サ314と、L1キャッシュ・メモリ318とに接続さ
れている。L1キャッシュ・コントローラ316は、本
明細書に開示するセミアソシアティブ・マッピング技法
によりL1キャッシュ・メモリ318を制御する。
と、L1キャッシュ・コントローラ316と、L1キャ
ッシュ・メモリ318とを含む。L1キャッシュ・コン
トローラ316は、システム・バス308と、プロセッ
サ314と、L1キャッシュ・メモリ318とに接続さ
れている。L1キャッシュ・コントローラ316は、本
明細書に開示するセミアソシアティブ・マッピング技法
によりL1キャッシュ・メモリ318を制御する。
【0037】同様に、処理システム304は、プロセッ
サ320と、L1キャッシュ・コントローラ322と、
L1キャッシュ・メモリ324とを含む。L1キャッシ
ュ・コントローラ322は、システム・バス308と、
プロセッサ320と、L1キャッシュ・メモリ324と
に接続されている。L1キャッシュ・コントローラ32
2は、本明細書に示すセミアソシアティブ・マッピング
技法によりL1キャッシュ・メモリ324を制御する。
サ320と、L1キャッシュ・コントローラ322と、
L1キャッシュ・メモリ324とを含む。L1キャッシ
ュ・コントローラ322は、システム・バス308と、
プロセッサ320と、L1キャッシュ・メモリ324と
に接続されている。L1キャッシュ・コントローラ32
2は、本明細書に示すセミアソシアティブ・マッピング
技法によりL1キャッシュ・メモリ324を制御する。
【0038】処理システム302は、処理システム30
2および304を代表するものである。特に、L1キャ
ッシュ・メモリ318内の複数ブロックのセットは、L
2キャッシュ・メモリ312内の複数ブロックのサブセ
ットである。また、L2キャッシュ・メモリ312に格
納されたどの情報ブロックもL1キャッシュ・メモリ3
18に同様に格納することができる。
2および304を代表するものである。特に、L1キャ
ッシュ・メモリ318内の複数ブロックのセットは、L
2キャッシュ・メモリ312内の複数ブロックのサブセ
ットである。また、L2キャッシュ・メモリ312に格
納されたどの情報ブロックもL1キャッシュ・メモリ3
18に同様に格納することができる。
【0039】したがって、L2キャッシュ・メモリ31
2は、少なくともL1キャッシュ・メモリ318のブロ
ック・サイズと同規模のブロック・サイズを有する実キ
ャッシュとして編成されることが好ましい。L1キャッ
シュ・メモリ318内の部録の数がpである場合、L1
キャッシュ・メモリ318には(L2キャッシュ・メモ
リ312に格納されているブロックの総数のうちの)任
意のp個のブロックを格納することができる。マルチプ
ロセッサと入出力キャッシュの整合性のため、L2キャ
ッシュ・メモリ312のディレクトリは、L1キャッシ
ュ・メモリ318に格納された各ブロックごとの実アド
レスを格納する。
2は、少なくともL1キャッシュ・メモリ318のブロ
ック・サイズと同規模のブロック・サイズを有する実キ
ャッシュとして編成されることが好ましい。L1キャッ
シュ・メモリ318内の部録の数がpである場合、L1
キャッシュ・メモリ318には(L2キャッシュ・メモ
リ312に格納されているブロックの総数のうちの)任
意のp個のブロックを格納することができる。マルチプ
ロセッサと入出力キャッシュの整合性のため、L2キャ
ッシュ・メモリ312のディレクトリは、L1キャッシ
ュ・メモリ318に格納された各ブロックごとの実アド
レスを格納する。
【0040】本明細書に示すタイプのシステムの別名化
はページ細分性でサポートされ、実情報ブロックが様々
な有効アドレスを持てるようになっている。実施例で
は、この様々な有効アドレス(同じ実ブロックの情報に
対応する)がページ・サイズである4キロバイトの整数
倍だけ異なる可能性がある。一例として、L1キャッシ
ュ・メモリ318のサイズが32キロバイトで、ブロッ
ク・サイズが64バイトの場合、L1キャッシュ・メモ
リ318は512個のブロックを有する。64バイトの
情報に加え、各ブロックは、実アドレスと様々な状況ビ
ットとを含むディレクトリ情報を有する。
はページ細分性でサポートされ、実情報ブロックが様々
な有効アドレスを持てるようになっている。実施例で
は、この様々な有効アドレス(同じ実ブロックの情報に
対応する)がページ・サイズである4キロバイトの整数
倍だけ異なる可能性がある。一例として、L1キャッシ
ュ・メモリ318のサイズが32キロバイトで、ブロッ
ク・サイズが64バイトの場合、L1キャッシュ・メモ
リ318は512個のブロックを有する。64バイトの
情報に加え、各ブロックは、実アドレスと様々な状況ビ
ットとを含むディレクトリ情報を有する。
【0041】したがって、L1キャッシュ・メモリ31
8内の512個の情報ブロックのそれぞれは1つの有効
アドレスに関連づけられる。有効アドレスの一部は、各
ブロックの関連有効アドレスのうちの212〜2c個のビ
ットによって形成される。この実施例では、c=19で
あり、有効アドレスの長さは32ビットまたは64ビッ
トのいずれかである。有効アドレス(EA)(図6を参
照)に応じてL1キャッシュ・メモリ318を探索する
ことにより、1サイクル・ロードが達成される。
8内の512個の情報ブロックのそれぞれは1つの有効
アドレスに関連づけられる。有効アドレスの一部は、各
ブロックの関連有効アドレスのうちの212〜2c個のビ
ットによって形成される。この実施例では、c=19で
あり、有効アドレスの長さは32ビットまたは64ビッ
トのいずれかである。有効アドレス(EA)(図6を参
照)に応じてL1キャッシュ・メモリ318を探索する
ことにより、1サイクル・ロードが達成される。
【0042】次に図6を参照すると、同図には、本発明
のシステム内で使用可能なアドレス指定方式のグラフ図
が示されている。図示の通り、図6には有効アドレスま
たは仮想アドレス400がグラフで示されている。有効
アドレス400は64ビットを含むことが好ましいが、
本発明のデータ・キャッシュ・アレイではビット0〜ビ
ット43は使用しない。図示の通り、ビット58〜63
(410に示す)は有効アドレスのライン・オフセット
を表している。ビット57(408に示す)は本発明の
データ・キャッシュ・アレイ内の2つのサブアレイのう
ちの一方を選択するために使用する。次に、ビット52
〜56(406に示す)は本発明のデータ・キャッシュ
・アレイの各サブアレイ内の32個のキャムレットのう
ちの1つを選択するために使用する。本発明の図示の実
施例では、それぞれの「キャムレット」はデータ・キャ
ッシュ・アレイの8本の線を含み、そのレイアウトにつ
いては以下に詳述する。最後に、有効アドレスの8個の
ビットであるビット44〜51(404に示す)は、本
発明により提供されるデータ・キャッシュ・アレイの各
線内に存在する、「ECAM」タグとも呼ばれる内容ア
ドレス可能メモリ・フィールドを形成する。
のシステム内で使用可能なアドレス指定方式のグラフ図
が示されている。図示の通り、図6には有効アドレスま
たは仮想アドレス400がグラフで示されている。有効
アドレス400は64ビットを含むことが好ましいが、
本発明のデータ・キャッシュ・アレイではビット0〜ビ
ット43は使用しない。図示の通り、ビット58〜63
(410に示す)は有効アドレスのライン・オフセット
を表している。ビット57(408に示す)は本発明の
データ・キャッシュ・アレイ内の2つのサブアレイのう
ちの一方を選択するために使用する。次に、ビット52
〜56(406に示す)は本発明のデータ・キャッシュ
・アレイの各サブアレイ内の32個のキャムレットのう
ちの1つを選択するために使用する。本発明の図示の実
施例では、それぞれの「キャムレット」はデータ・キャ
ッシュ・アレイの8本の線を含み、そのレイアウトにつ
いては以下に詳述する。最後に、有効アドレスの8個の
ビットであるビット44〜51(404に示す)は、本
発明により提供されるデータ・キャッシュ・アレイの各
線内に存在する、「ECAM」タグとも呼ばれる内容ア
ドレス可能メモリ・フィールドを形成する。
【0043】次に、ブロック412に示すように、本発
明のシステムで使用可能な実アドレス例について説明す
る。上記のように、6個のビットであるビット34〜3
9(420に示す)は、実アドレスのライン・オフセッ
トである。ブロック418に示すビット33は、本発明
のデータ・キャッシュ・アレイ内の2つのサブアレイの
うちの一方を選択するために使用し、416に示す5個
のビットであるビット28〜32は、各サブアレイ内の
32個のキャムレットのうちの特定のものを選択するた
めに使用する。最後に、414に示すように、関連情報
ブロックの実アドレスの28個のビットは、「RCA
M」と呼ばれる第2の内容アドレス可能フィールド内に
格納される。本明細書には詳しく記載しないが、所望の
アドレスとECAMフィールドおよびRCAMフィール
ド内に格納されたアドレスの一部分とを比較する際にそ
のキャムレットを識別するビットも比較する必要がある
ことが当業者には分かるだろう。
明のシステムで使用可能な実アドレス例について説明す
る。上記のように、6個のビットであるビット34〜3
9(420に示す)は、実アドレスのライン・オフセッ
トである。ブロック418に示すビット33は、本発明
のデータ・キャッシュ・アレイ内の2つのサブアレイの
うちの一方を選択するために使用し、416に示す5個
のビットであるビット28〜32は、各サブアレイ内の
32個のキャムレットのうちの特定のものを選択するた
めに使用する。最後に、414に示すように、関連情報
ブロックの実アドレスの28個のビットは、「RCA
M」と呼ばれる第2の内容アドレス可能フィールド内に
格納される。本明細書には詳しく記載しないが、所望の
アドレスとECAMフィールドおよびRCAMフィール
ド内に格納されたアドレスの一部分とを比較する際にそ
のキャムレットを識別するビットも比較する必要がある
ことが当業者には分かるだろう。
【0044】したがって、図6に示すアドレス指定方式
により、本発明のデータ・キャッシュ・アレイを取り入
れたシステム内の各情報ブロックが、キャッシュ・アレ
イ内の情報ブロックを選択するために有効アドレスの一
部または実アドレスの一部のいずれかとともに使用可能
な、2つの個別の内容アドレス可能フィールドを含むこ
とが当業者には分かるだろう。
により、本発明のデータ・キャッシュ・アレイを取り入
れたシステム内の各情報ブロックが、キャッシュ・アレ
イ内の情報ブロックを選択するために有効アドレスの一
部または実アドレスの一部のいずれかとともに使用可能
な、2つの個別の内容アドレス可能フィールドを含むこ
とが当業者には分かるだろう。
【0045】次に図7を参照すると、同図には、本発明
により提供されるCMOS CAMセル例の概略電気回
路図が示されている。500に全体が示されているよう
に、図示のCAMセルは、6トランジスタSRAMメモ
リ・セル(全体を502に示す)と、比較およびXOR
機能のための追加論理回路(全体を516に示す)とを
含んでいる。このSRAMメモリは、ワード線512の
活動化により1対のビット線504および506に接続
されることが好ましい。XOR論理回路の2つの入力
は、基準線対508に接続され、一致線14に出力され
ることが好ましい。本発明のシステムによれば、指定の
CAMセル内でビット線対504および506と基準線
対508および510の両方を使用すると、同一クロッ
ク・サイクル中に比較と読取り/書込みが可能になる。
により提供されるCMOS CAMセル例の概略電気回
路図が示されている。500に全体が示されているよう
に、図示のCAMセルは、6トランジスタSRAMメモ
リ・セル(全体を502に示す)と、比較およびXOR
機能のための追加論理回路(全体を516に示す)とを
含んでいる。このSRAMメモリは、ワード線512の
活動化により1対のビット線504および506に接続
されることが好ましい。XOR論理回路の2つの入力
は、基準線対508に接続され、一致線14に出力され
ることが好ましい。本発明のシステムによれば、指定の
CAMセル内でビット線対504および506と基準線
対508および510の両方を使用すると、同一クロッ
ク・サイクル中に比較と読取り/書込みが可能になる。
【0046】動作時は、基準線対508および510が
強制的にローになり、一致線514がハイに事前充電さ
れる。次に、基準線(508および510)の一方が活
動化され、比較が始まる。基準線上のデータがメモり・
セル内に格納されたデータと一致しない場合は、一致線
514が放電される。しかし、基準線上のデータがメモ
り・セル内に格納されたデータと一致する場合は、一致
線514が事前充電状態のままになる。一致線514の
状態はラッチされることが好ましく、その後、一致線が
事前充電状態にある間にデータの読取りまたは書込みを
続行することができる。
強制的にローになり、一致線514がハイに事前充電さ
れる。次に、基準線(508および510)の一方が活
動化され、比較が始まる。基準線上のデータがメモり・
セル内に格納されたデータと一致しない場合は、一致線
514が放電される。しかし、基準線上のデータがメモ
り・セル内に格納されたデータと一致する場合は、一致
線514が事前充電状態のままになる。一致線514の
状態はラッチされることが好ましく、その後、一致線が
事前充電状態にある間にデータの読取りまたは書込みを
続行することができる。
【0047】次に図8を参照すると、同図には、本発明
により提供される複数サブアレイ・キャッシュ600の
高レベル・ブロック図が示されている。図示の通り、複
数サブアレイ・キャッシュ600は2つのサブアレイ6
02および604を含むことが好ましいが、本明細書を
参照したときに当業者には分かるように、より多数のサ
ブアレイを設けることも可能である。図示の通り、デー
タ・キャッシュ・アレイ・ユニット600は、32Kバ
イトのキャッシュ・データを収容することが好ましく、
サブアレイ602および604に物理的に細分化されて
いる。それぞれのサブアレイは256本のキャッシュ線
を含むことが好ましく、それぞれのキャッシュ線は、サ
ブアレイ602内の618および628に示すように2
つのセグメントに分割された512ビットのデータ・フ
ィールドを含む。また、それぞれのキャッシュ線は、6
4ビットのパリティ・フィールド(図示せず)と、28
ビットのRCAMフィールド626と、9ビットのEC
AMフィールド620と、3ビットのMESIフィール
ド624とを含むことが好ましい。
により提供される複数サブアレイ・キャッシュ600の
高レベル・ブロック図が示されている。図示の通り、複
数サブアレイ・キャッシュ600は2つのサブアレイ6
02および604を含むことが好ましいが、本明細書を
参照したときに当業者には分かるように、より多数のサ
ブアレイを設けることも可能である。図示の通り、デー
タ・キャッシュ・アレイ・ユニット600は、32Kバ
イトのキャッシュ・データを収容することが好ましく、
サブアレイ602および604に物理的に細分化されて
いる。それぞれのサブアレイは256本のキャッシュ線
を含むことが好ましく、それぞれのキャッシュ線は、サ
ブアレイ602内の618および628に示すように2
つのセグメントに分割された512ビットのデータ・フ
ィールドを含む。また、それぞれのキャッシュ線は、6
4ビットのパリティ・フィールド(図示せず)と、28
ビットのRCAMフィールド626と、9ビットのEC
AMフィールド620と、3ビットのMESIフィール
ド624とを含むことが好ましい。
【0048】当業者には分かるように、いわゆる「ME
SI」状況ビットは一般にデータ・キャッシュ内で使用
される。「MESI」という用語は、「変更済み」、
「排他」、「共用」、「無効」を表す頭字語である。し
たがって、データ・キャッシュ内の特定の線内のデータ
の状況は、この3つのビットの状況を判定することによ
り、迅速かつ効率よく判定することができる。同様に、
キャッシュ内のデータの状況は、MESIフィールドに
様々なビットを書き込むことにより変更することができ
る。
SI」状況ビットは一般にデータ・キャッシュ内で使用
される。「MESI」という用語は、「変更済み」、
「排他」、「共用」、「無効」を表す頭字語である。し
たがって、データ・キャッシュ内の特定の線内のデータ
の状況は、この3つのビットの状況を判定することによ
り、迅速かつ効率よく判定することができる。同様に、
キャッシュ内のデータの状況は、MESIフィールドに
様々なビットを書き込むことにより変更することができ
る。
【0049】さらに、図8に示すように、それぞれのサ
ブアレイは、関連割振りバッファ606および608
と、アレイ内のキャッシュ線にデータを送り込むために
使用する関連書込みドライバ610および612とを含
んでいる。同様に、特定のキャッシュ線からの出力信号
を増幅するために、センス・アンプ650および652
が設けられている。
ブアレイは、関連割振りバッファ606および608
と、アレイ内のキャッシュ線にデータを送り込むために
使用する関連書込みドライバ610および612とを含
んでいる。同様に、特定のキャッシュ線からの出力信号
を増幅するために、センス・アンプ650および652
が設けられている。
【0050】図8に示すように、データ・キャッシュ・
アレイ内の各線内に2つの個別の内容アドレス可能フィ
ールドを設けることにより、複数の新規かつ効率的な手
順でその線内のデータにアクセスすることができる。
アレイ内の各線内に2つの個別の内容アドレス可能フィ
ールドを設けることにより、複数の新規かつ効率的な手
順でその線内のデータにアクセスすることができる。
【0051】次に図9を参照すると、同図には、1つの
キャムレットをより詳細に示す、本発明により提供され
るキャッシュの単一サブアレイの詳細ブロック図が示さ
れている。図示の通り、単一サブアレイ700について
説明する。前述のように、サブアレイ700内の各線
は、データ・フィールド702および704に分割され
た512ビットのデータを含んでいる。マルチビット実
アドレス(RCAM)の一部を含む28ビットの内容ア
ドレス可能フィールドを706に示し、8ビットの有効
アドレス内容アドレス可能フィールド(ECAM)をブ
ロック708に示す。追加のMRUビット710が示さ
れているが、このビットは、2つまたはそれ以上の有効
アドレスが1つの実アドレスにマッピングされるオフセ
ット状況を解決するために、8ビットのECAM内容ア
ドレス可能フィールド708とともに使用される。
キャムレットをより詳細に示す、本発明により提供され
るキャッシュの単一サブアレイの詳細ブロック図が示さ
れている。図示の通り、単一サブアレイ700について
説明する。前述のように、サブアレイ700内の各線
は、データ・フィールド702および704に分割され
た512ビットのデータを含んでいる。マルチビット実
アドレス(RCAM)の一部を含む28ビットの内容ア
ドレス可能フィールドを706に示し、8ビットの有効
アドレス内容アドレス可能フィールド(ECAM)をブ
ロック708に示す。追加のMRUビット710が示さ
れているが、このビットは、2つまたはそれ以上の有効
アドレスが1つの実アドレスにマッピングされるオフセ
ット状況を解決するために、8ビットのECAM内容ア
ドレス可能フィールド708とともに使用される。
【0052】参照番号712にはMESIビットをより
詳細に示すが、本発明の重要な特徴によれば、サブアレ
イ700には擬似LRU(PLRU)論理回路が存在
し、ブロック714に示されている。それぞれのキャム
レットは、データ・キャッシュ・アレイ700の8本の
線を含み、キャッシュ・ミスが発生したり新しいデータ
線のロードが必要になった場合にそのキャムレット内の
特定の線を除去および置換に割り振るために以下に詳述
するような方法で使用することができる個別のPLRU
論理回路を含んでいる。
詳細に示すが、本発明の重要な特徴によれば、サブアレ
イ700には擬似LRU(PLRU)論理回路が存在
し、ブロック714に示されている。それぞれのキャム
レットは、データ・キャッシュ・アレイ700の8本の
線を含み、キャッシュ・ミスが発生したり新しいデータ
線のロードが必要になった場合にそのキャムレット内の
特定の線を除去および置換に割り振るために以下に詳述
するような方法で使用することができる個別のPLRU
論理回路を含んでいる。
【0053】また、ブロック716にはPLRUマルチ
プレクサも示されているが、これは、その中のデータの
有効性の欠如に応じてまたはPLRU論理回路714を
使用して判定した使用状況データに応じてキャムレット
内の特定の線を割り振ることができるようにするため
に、以下に詳述するような方法で使用する。
プレクサも示されているが、これは、その中のデータの
有効性の欠如に応じてまたはPLRU論理回路714を
使用して判定した使用状況データに応じてキャムレット
内の特定の線を割り振ることができるようにするため
に、以下に詳述するような方法で使用する。
【0054】出力バッファとセンス・アンプ718およ
び720は、キャッシュ線からデータを読み取るために
従来どおりに使用される。本発明の新規の特徴によれ
ば、それぞれのサブアレイ内部には2つの入力ポートが
設けられている。最高2つの同時アクセスをサポートで
きるように、有効アドレス(EA)入力ポートと実アド
レス(RA)入力ポートが設けられている。したがっ
て、1つの有効アドレス(EA)ポートと1つの実アド
レス(RA)ポートを使用して、同一サイクル中にその
アレイに同時アクセスすることができる。有効アドレス
(EA)ポートと実アドレス(RA)ポートを使用して
同一サブアレイの同時アクセスを試みた場合に、優先順
位の低いサイクルをブロックして、優先順位の高いサイ
クルがサブアレイにアクセスできるようにするために、
読取り制御およびアービトレーション論理回路722が
設けられている。この技法の例外は、有効アドレス(E
A)サイクルのいずれかと同時にSNOOPアクセスを
実行できるように、MESIビットのアクセス用に第2
のワード線を実現することにより、以下に詳述するよう
な方法でいわゆる「SNOOP」サイクルが提供される
点である。
び720は、キャッシュ線からデータを読み取るために
従来どおりに使用される。本発明の新規の特徴によれ
ば、それぞれのサブアレイ内部には2つの入力ポートが
設けられている。最高2つの同時アクセスをサポートで
きるように、有効アドレス(EA)入力ポートと実アド
レス(RA)入力ポートが設けられている。したがっ
て、1つの有効アドレス(EA)ポートと1つの実アド
レス(RA)ポートを使用して、同一サイクル中にその
アレイに同時アクセスすることができる。有効アドレス
(EA)ポートと実アドレス(RA)ポートを使用して
同一サブアレイの同時アクセスを試みた場合に、優先順
位の低いサイクルをブロックして、優先順位の高いサイ
クルがサブアレイにアクセスできるようにするために、
読取り制御およびアービトレーション論理回路722が
設けられている。この技法の例外は、有効アドレス(E
A)サイクルのいずれかと同時にSNOOPアクセスを
実行できるように、MESIビットのアクセス用に第2
のワード線を実現することにより、以下に詳述するよう
な方法でいわゆる「SNOOP」サイクルが提供される
点である。
【0055】最後に、書込みドライバおよび関連の多重
装置(732および734に示す)とともに書込み制御
装置730を使用すると、データ・キャッシュ・アレイ
内のデータを書き込むことができる。さらに図9を参照
すると、初期キャッシュ探索時にECAMフィールド内
の一致を獲得しようと試みる場合に有効アドレスの一部
しか使用しないので、有効アドレスのうちの使用した部
分が「ヒット」を示しても、そのECAMフィールドに
関連するデータが適切なデータではないという状況が発
生する可能性がある。このような状況は、アドレス「オ
フセット」状態と呼ばれている。この状況は、キャッシ
ュ内の項目が所望の部分有効アドレスを含むが、所望の
データの実アドレスがそれに関連づけられていないとき
に発生する。
装置(732および734に示す)とともに書込み制御
装置730を使用すると、データ・キャッシュ・アレイ
内のデータを書き込むことができる。さらに図9を参照
すると、初期キャッシュ探索時にECAMフィールド内
の一致を獲得しようと試みる場合に有効アドレスの一部
しか使用しないので、有効アドレスのうちの使用した部
分が「ヒット」を示しても、そのECAMフィールドに
関連するデータが適切なデータではないという状況が発
生する可能性がある。このような状況は、アドレス「オ
フセット」状態と呼ばれている。この状況は、キャッシ
ュ内の項目が所望の部分有効アドレスを含むが、所望の
データの実アドレスがそれに関連づけられていないとき
に発生する。
【0056】さらに、キャッシュ内のECAMフィール
ドに収容された有効アドレスの一部が初期探索時に所望
の有効アドレスと一致しないが、所望のデータが依然と
してキャッシュ内に存在する可能性がある場合も考えら
れる。これは、2つの異なる有効アドレスが同一の実ア
ドレスにマッピングされる可能性があるためである。こ
のような状況は、仮想アドレス「エイリアシング」と呼
ばれている。
ドに収容された有効アドレスの一部が初期探索時に所望
の有効アドレスと一致しないが、所望のデータが依然と
してキャッシュ内に存在する可能性がある場合も考えら
れる。これは、2つの異なる有効アドレスが同一の実ア
ドレスにマッピングされる可能性があるためである。こ
のような状況は、仮想アドレス「エイリアシング」と呼
ばれている。
【0057】2つのRCAMフィールドが指定のキャム
レット内の同一内容を収容しないようにデータ・キャッ
シュ・アレイに制約が加えられていれば、本発明のデー
タ・キャッシュ・アレイ内で上記の2つの状況を効率よ
く処理することができる。これにより、所与のアドレス
ではキャムレット当たり1本の線だけが一致するように
なる。参照番号710に示すように、MRUビットをE
CAMフィールドの一部として格納し、2つの異なるE
CAMフィールドが同一の格納アドレスを持つがECA
Mフィールドの一方だけが一致するようにこのMRUビ
ットを使用することができる。すなわち、1つのキャム
レット内に同一ECAMアドレス・フィールドの複数コ
ピーが格納されている場合、妥当性検査済みMRUビッ
トを有する特定のECAMフィールドだけが一致してい
ると見なされる。
レット内の同一内容を収容しないようにデータ・キャッ
シュ・アレイに制約が加えられていれば、本発明のデー
タ・キャッシュ・アレイ内で上記の2つの状況を効率よ
く処理することができる。これにより、所与のアドレス
ではキャムレット当たり1本の線だけが一致するように
なる。参照番号710に示すように、MRUビットをE
CAMフィールドの一部として格納し、2つの異なるE
CAMフィールドが同一の格納アドレスを持つがECA
Mフィールドの一方だけが一致するようにこのMRUビ
ットを使用することができる。すなわち、1つのキャム
レット内に同一ECAMアドレス・フィールドの複数コ
ピーが格納されている場合、妥当性検査済みMRUビッ
トを有する特定のECAMフィールドだけが一致してい
ると見なされる。
【0058】まず、いわゆる仮想「別名化」ミスについ
て説明する。このシナリオでは、部分有効アドレスを使
用して、参照番号708にあるECAMと呼ばれる内容
アドレス可能フィールドにアクセスし、所望のサブアレ
イおよびキャムレット内に格納されているECAMフィ
ールドはいずれも所望の部分有効アドレスと一致しな
い。したがって、仮想別名化が発生したかどうかを判定
するには、第2のサイクルの実アドレス探索が必要にな
る。
て説明する。このシナリオでは、部分有効アドレスを使
用して、参照番号708にあるECAMと呼ばれる内容
アドレス可能フィールドにアクセスし、所望のサブアレ
イおよびキャムレット内に格納されているECAMフィ
ールドはいずれも所望の部分有効アドレスと一致しな
い。したがって、仮想別名化が発生したかどうかを判定
するには、第2のサイクルの実アドレス探索が必要にな
る。
【0059】部分有効アドレスを使用して、所望のキャ
ムレット内のECAMフィールドが一致しているかどう
かを判定する期間の間、メモリ管理ユニットによってシ
ステム内で所望の有効アドレスを実アドレスに変換する
ことが好ましい。有効アドレスを実アドレスに変換する
数多くの方式は先行技術で既知のものであるので、この
技法については本明細書ではこれ以上説明しない。第2
のサイクルでは、所望の実アドレスの適切な部分を使用
して、実アドレス部分を収容し、別名化アドレス条件を
示す「ヒット」が発生している可能性のある内容アドレ
ス可能フィールド(RCAM)内で一致の位置の特定を
試みる。
ムレット内のECAMフィールドが一致しているかどう
かを判定する期間の間、メモリ管理ユニットによってシ
ステム内で所望の有効アドレスを実アドレスに変換する
ことが好ましい。有効アドレスを実アドレスに変換する
数多くの方式は先行技術で既知のものであるので、この
技法については本明細書ではこれ以上説明しない。第2
のサイクルでは、所望の実アドレスの適切な部分を使用
して、実アドレス部分を収容し、別名化アドレス条件を
示す「ヒット」が発生している可能性のある内容アドレ
ス可能フィールド(RCAM)内で一致の位置の特定を
試みる。
【0060】この結果は、要求したデータが指定のキャ
ムレット内に収容されているが、第1のサイクルの探索
中に使用した有効アドレス・フィールドとは異なる有効
アドレス・フィールドを使用してそのデータがキャッシ
ュに割り振られていることを意味する。このような状況
では、第2のサイクル中にヒット・データとMESI状
況ビットがロード・ユニットに返される。さらに、線を
選択する間に、所望のデータに関連するECAMフィー
ルドが、初期探索中に使用した有効アドレスの一部によ
って更新され、その線のMRUビットが「1」に設定さ
れ、今後の探索のためにこのデータ・キャッシュ線が効
果的に単一サイクル・ヒット・ケースになる。
ムレット内に収容されているが、第1のサイクルの探索
中に使用した有効アドレス・フィールドとは異なる有効
アドレス・フィールドを使用してそのデータがキャッシ
ュに割り振られていることを意味する。このような状況
では、第2のサイクル中にヒット・データとMESI状
況ビットがロード・ユニットに返される。さらに、線を
選択する間に、所望のデータに関連するECAMフィー
ルドが、初期探索中に使用した有効アドレスの一部によ
って更新され、その線のMRUビットが「1」に設定さ
れ、今後の探索のためにこのデータ・キャッシュ線が効
果的に単一サイクル・ヒット・ケースになる。
【0061】また、オフセット・ヒット・シナリオが発
生する可能性もある。このような状況では、ECAMフ
ィールドにアクセスするために使用した有効アドレスの
一部が所望のキャムレット内でのヒットを示すが、デー
タ・キャッシュ・アレイ内のその線内に格納された実ア
ドレス部分は、変換後にメモり管理ユニットから出力さ
れる実ページ番号とは一致しない。この時点で、対象と
なるデータが一致するECAMアドレスを有する線内に
格納されていないと判定されるが、そのデータが異なる
ECAMアドレス・フィールドを有する残りのキャムレ
ット位置のいずれかに存在するかどうかはまだ不明であ
る。上記のように、キャムレット内のRCAM内容アド
レス可能フィールドは、変換後の実アドレスの一部を使
用してアクセスされ、RCAM内容アドレス可能フィー
ルドがヒットしなかった場合は、要求されたデータが指
定のキャムレット内に存在しないことを示す。
生する可能性もある。このような状況では、ECAMフ
ィールドにアクセスするために使用した有効アドレスの
一部が所望のキャムレット内でのヒットを示すが、デー
タ・キャッシュ・アレイ内のその線内に格納された実ア
ドレス部分は、変換後にメモり管理ユニットから出力さ
れる実ページ番号とは一致しない。この時点で、対象と
なるデータが一致するECAMアドレスを有する線内に
格納されていないと判定されるが、そのデータが異なる
ECAMアドレス・フィールドを有する残りのキャムレ
ット位置のいずれかに存在するかどうかはまだ不明であ
る。上記のように、キャムレット内のRCAM内容アド
レス可能フィールドは、変換後の実アドレスの一部を使
用してアクセスされ、RCAM内容アドレス可能フィー
ルドがヒットしなかった場合は、要求されたデータが指
定のキャムレット内に存在しないことを示す。
【0062】このような状況では、2つのECAMがキ
ャムレット内の同一内容を持つ状態を発生せずにECA
Mフィールドが更新されるように、第1のECAMフィ
ールド線のMRUビットをリセットしなければならな
い。第3のサイクルでは、ラッチした有効アドレスを使
用して第1の線と比較し、その線のMRUビットをゼロ
にリセットする。第4のサイクルでは、以下に詳述する
方法でPLRU論理回路を使用して置換用の線を選択す
るか、またはMESIビットを使用して判定した妥当性
状況に基づいて割振り候補を決定する、割振りサイクル
を実行する。所望のデータとそれに関連するECAMお
よびRCAMフィールドはキャッシュに書き込まれ、そ
の線用のMRUビットが「1」に設定される。その後、
キャッシュ・アレイ内のその線から所望のデータを読み
取ることができる。
ャムレット内の同一内容を持つ状態を発生せずにECA
Mフィールドが更新されるように、第1のECAMフィ
ールド線のMRUビットをリセットしなければならな
い。第3のサイクルでは、ラッチした有効アドレスを使
用して第1の線と比較し、その線のMRUビットをゼロ
にリセットする。第4のサイクルでは、以下に詳述する
方法でPLRU論理回路を使用して置換用の線を選択す
るか、またはMESIビットを使用して判定した妥当性
状況に基づいて割振り候補を決定する、割振りサイクル
を実行する。所望のデータとそれに関連するECAMお
よびRCAMフィールドはキャッシュに書き込まれ、そ
の線用のMRUビットが「1」に設定される。その後、
キャッシュ・アレイ内のその線から所望のデータを読み
取ることができる。
【0063】最後に、オフセット状況では別名化ヒット
が発生する可能性がある。このシナリオでは、キャムレ
ット内のECAM内容アドレス可能フィールドにアクセ
スするために使用した有効アドレスの一部がヒットを示
すが、そこに格納されている実アドレス部分は変換後に
メモリ管理ユニットから出力される実ページ番号と一致
しない。この場合も、この時点では、対象となるデータ
がこの特定の線内に格納されていないことが分かってい
るが、異なるECAMアドレスを有する他のキャムレッ
ト位置に所望のデータが存在するかどうかは不明であ
る。別名化状況に関して前述したように、第2のサイク
ルでは、RCAM内容アドレス可能フィールドを検査し
て所望の実アドレスとの一致があるかどうかを確認する
が、要求したデータがキャムレット内に存在するもの
の、異なる有効アドレスによってそのデータが割り振ら
れていることを示すヒットが発生する可能性もある。こ
のような状況では、第1の線のMRUビットがリセット
され、第2の線内のECAMフィールドが更新され、2
つのECAMがキャムレットによって同一内容を持つよ
うな状態を発生せずにこのプロセスが行われる。MRU
ビットは「1」に設定され、次にキャッシュから所望の
データが返される。
が発生する可能性がある。このシナリオでは、キャムレ
ット内のECAM内容アドレス可能フィールドにアクセ
スするために使用した有効アドレスの一部がヒットを示
すが、そこに格納されている実アドレス部分は変換後に
メモリ管理ユニットから出力される実ページ番号と一致
しない。この場合も、この時点では、対象となるデータ
がこの特定の線内に格納されていないことが分かってい
るが、異なるECAMアドレスを有する他のキャムレッ
ト位置に所望のデータが存在するかどうかは不明であ
る。別名化状況に関して前述したように、第2のサイク
ルでは、RCAM内容アドレス可能フィールドを検査し
て所望の実アドレスとの一致があるかどうかを確認する
が、要求したデータがキャムレット内に存在するもの
の、異なる有効アドレスによってそのデータが割り振ら
れていることを示すヒットが発生する可能性もある。こ
のような状況では、第1の線のMRUビットがリセット
され、第2の線内のECAMフィールドが更新され、2
つのECAMがキャムレットによって同一内容を持つよ
うな状態を発生せずにこのプロセスが行われる。MRU
ビットは「1」に設定され、次にキャッシュから所望の
データが返される。
【0064】上記の説明を参照すると、有効アドレスま
たは実アドレスのいずれかを使用してキャッシュ線内の
データにアクセスするために使用可能な各キャッシュ線
内の2つの個別の内容アドレス可能フィールドに書き込
むことにより、先行技術で既知のセット・アソシアティ
ブ・キャッシュ設計の高いヒット率を維持しながら、本
発明のデータ・キャッシュ・アレイを完全アソシアティ
ブ・キャッシュ設計よりかなり効率のよいものにするこ
とができることが当業者には分かるだろう。
たは実アドレスのいずれかを使用してキャッシュ線内の
データにアクセスするために使用可能な各キャッシュ線
内の2つの個別の内容アドレス可能フィールドに書き込
むことにより、先行技術で既知のセット・アソシアティ
ブ・キャッシュ設計の高いヒット率を維持しながら、本
発明のデータ・キャッシュ・アレイを完全アソシアティ
ブ・キャッシュ設計よりかなり効率のよいものにするこ
とができることが当業者には分かるだろう。
【0065】次に図10を参照すると、同図には、本発
明により提供されるキャッシュ内の割振り制御用のシス
テムを示す高レベル・ブロック図が示されている。図示
の通り、データ・キャッシュ・アレイ内の各キャムレッ
トごとに擬似LRU(PLRU)論理回路802が設け
られている。擬似LRU(PLRU)論理回路802
は、一致線812に結合されたトランジスタの伝導を制
御するために使用する割振り制御装置814に一連の信
号を提供するために使用する。図示の通り、擬似LRU
(PLRU)論理回路802は、キャムレット内の各線
にこのような制御信号を提供するために使用し、その結
果、8個の制御出力が得られる。
明により提供されるキャッシュ内の割振り制御用のシス
テムを示す高レベル・ブロック図が示されている。図示
の通り、データ・キャッシュ・アレイ内の各キャムレッ
トごとに擬似LRU(PLRU)論理回路802が設け
られている。擬似LRU(PLRU)論理回路802
は、一致線812に結合されたトランジスタの伝導を制
御するために使用する割振り制御装置814に一連の信
号を提供するために使用する。図示の通り、擬似LRU
(PLRU)論理回路802は、キャムレット内の各線
にこのような制御信号を提供するために使用し、その結
果、8個の制御出力が得られる。
【0066】前述のように、一致線812は、事前充電
され、CAMセル(806、808)内に格納されてい
るデータが所望の基準データ・セットと一致しない場合
に応じて放電されることが好ましい。
され、CAMセル(806、808)内に格納されてい
るデータが所望の基準データ・セットと一致しない場合
に応じて放電されることが好ましい。
【0067】以下に詳述するように、擬似LRU(PL
RU)論理回路802は、これらの線の使用状況データ
に基づくか、またはそのキャムレット内の特定の線の妥
当性状況に基づいて、割振り用にキャムレット内の特定
の線を選択するために使用することができる。このた
め、データ・キャッシュ・アレイ内に割振り選択論理回
路を設けることにより、置換のためのデータ・キャッシ
ュ・アレイ内の線の選択が大幅に強化され、バス・ロー
ドが低減されると同時に、ミス・シーケンスを完了する
のに必要なサイクル数も低減される。これは、以下に詳
述するように、データ・キャッシュ・アレイ内の各線の
各ECAMフィールド内に追加の変更セルである割振り
制御セルを設けることにより達成される。割振りサイク
ル中、擬似LRU(PLRU)論理回路802はこの追
加セルを制御するが、すべてのECAM基準線対は強制
的にローになり、ECAM一致線へのその影響は使用不
能になる。これにより、擬似LRU(PLRU)論理回
路802は、割振りとその他の関連ミス・シーケンス・
サイクルのために1本の線を直接選択できるようにな
る。
RU)論理回路802は、これらの線の使用状況データ
に基づくか、またはそのキャムレット内の特定の線の妥
当性状況に基づいて、割振り用にキャムレット内の特定
の線を選択するために使用することができる。このた
め、データ・キャッシュ・アレイ内に割振り選択論理回
路を設けることにより、置換のためのデータ・キャッシ
ュ・アレイ内の線の選択が大幅に強化され、バス・ロー
ドが低減されると同時に、ミス・シーケンスを完了する
のに必要なサイクル数も低減される。これは、以下に詳
述するように、データ・キャッシュ・アレイ内の各線の
各ECAMフィールド内に追加の変更セルである割振り
制御セルを設けることにより達成される。割振りサイク
ル中、擬似LRU(PLRU)論理回路802はこの追
加セルを制御するが、すべてのECAM基準線対は強制
的にローになり、ECAM一致線へのその影響は使用不
能になる。これにより、擬似LRU(PLRU)論理回
路802は、割振りとその他の関連ミス・シーケンス・
サイクルのために1本の線を直接選択できるようにな
る。
【0068】命令キャッシュの場合は、この手法を使用
して、割振りサイクルと、線選択サイクルと、再充填サ
イクルとを1つのサイクルに統合することができる。置
換線のコピー・バックを必要とする可能性のあるデータ
・キャッシュの場合は、この手法により、割振りサイク
ルと、状況/タグ読取りサイクルと、第1のコピー・バ
ック読取りサイクルとを1つのサイクルに統合すること
ができる。タグ線、状況ビット線、データ・ワード線を
選択するのと同じ論理回路を使用してECAMワード線
を選択することができるので、ECAMフィールドを更
新するために以前は必要だったECAMワード線ドライ
バ回路も解消される。したがって、単一ワード線を使用
して、キャッシュ線内のすべてのメモリ素子(RCAM
/ECAM/タグ/状況/データ)を選択することがで
きる。
して、割振りサイクルと、線選択サイクルと、再充填サ
イクルとを1つのサイクルに統合することができる。置
換線のコピー・バックを必要とする可能性のあるデータ
・キャッシュの場合は、この手法により、割振りサイク
ルと、状況/タグ読取りサイクルと、第1のコピー・バ
ック読取りサイクルとを1つのサイクルに統合すること
ができる。タグ線、状況ビット線、データ・ワード線を
選択するのと同じ論理回路を使用してECAMワード線
を選択することができるので、ECAMフィールドを更
新するために以前は必要だったECAMワード線ドライ
バ回路も解消される。したがって、単一ワード線を使用
して、キャッシュ線内のすべてのメモリ素子(RCAM
/ECAM/タグ/状況/データ)を選択することがで
きる。
【0069】データ・キャッシュ・アレイ内の1本の線
を置換する必要がある場合、擬似LRU(PLRU)論
理回路802はまず、キャムレット内に置換可能な無効
線が存在するかどうかを判定する。当業者には分かるよ
うに、これは、キャムレット内の各線のMESIビット
を検査することにより実施される。キャムレット内のす
べての線が有効である場合、擬似LRU(PLRU)論
理回路802は共通PLRU機構を使用して、どの線を
置換すべきかを判定する。擬似LRU(PLRU)論理
回路802内の7つの2進ビットは、キャムレット内の
8本の線の1本ずつについて定義されている。これらの
ビットはPLRUビットと呼ばれ、データ・キャッシュ
内でヒットするごとに更新される。
を置換する必要がある場合、擬似LRU(PLRU)論
理回路802はまず、キャムレット内に置換可能な無効
線が存在するかどうかを判定する。当業者には分かるよ
うに、これは、キャムレット内の各線のMESIビット
を検査することにより実施される。キャムレット内のす
べての線が有効である場合、擬似LRU(PLRU)論
理回路802は共通PLRU機構を使用して、どの線を
置換すべきかを判定する。擬似LRU(PLRU)論理
回路802内の7つの2進ビットは、キャムレット内の
8本の線の1本ずつについて定義されている。これらの
ビットはPLRUビットと呼ばれ、データ・キャッシュ
内でヒットするごとに更新される。
【0070】したがって、そのセットへの最新アクセス
が線L0、線L1、線L2、または線L3に対するもの
である場合は、2進ビットB0が1になるように設定さ
れる。そのセットへの最新アクセスが線L4、L5、L
6、またはL7に対するものである場合は、2進ビット
B0が「0」になるように設定される。さらに、線L0
〜L3への最新アクセスがL0またはL1に対するもの
である場合は、2進ビットB1が1になるように設定さ
れ、それ以外の場合は、2進ビットB1が0になるよう
に設定される。線L4〜L7への最新アクセスがL4ま
たはL5に対するものである場合は、2進ビットB2が
1になるように設定され、それ以外の場合は、2進ビッ
トB2が0になるように設定される。線L0〜L1への
最新アクセスがL0に対するものである場合は、2進ビ
ットB3が1になるように設定され、それ以外の場合
は、2進ビットB3が0になるように設定される。線L
2〜L3への最新アクセスがL2に対するものである場
合は、2進ビットB4が1になるように設定され、それ
以外の場合は、2進ビットB4が0になるように設定さ
れる。同様に、線L4〜L5への最新アクセスが線L4
に対するものである場合は、2進ビットB5が1になる
ように設定され、それ以外の場合は、2進ビットB5が
0になるように設定される。最後に、線L6〜L7への
最新アクセスが線L6に対するものである場合は、2進
ビットB6が1になるように設定され、それ以外の場合
は、2進ビットB6が0になるように設定される。
が線L0、線L1、線L2、または線L3に対するもの
である場合は、2進ビットB0が1になるように設定さ
れる。そのセットへの最新アクセスが線L4、L5、L
6、またはL7に対するものである場合は、2進ビット
B0が「0」になるように設定される。さらに、線L0
〜L3への最新アクセスがL0またはL1に対するもの
である場合は、2進ビットB1が1になるように設定さ
れ、それ以外の場合は、2進ビットB1が0になるよう
に設定される。線L4〜L7への最新アクセスがL4ま
たはL5に対するものである場合は、2進ビットB2が
1になるように設定され、それ以外の場合は、2進ビッ
トB2が0になるように設定される。線L0〜L1への
最新アクセスがL0に対するものである場合は、2進ビ
ットB3が1になるように設定され、それ以外の場合
は、2進ビットB3が0になるように設定される。線L
2〜L3への最新アクセスがL2に対するものである場
合は、2進ビットB4が1になるように設定され、それ
以外の場合は、2進ビットB4が0になるように設定さ
れる。同様に、線L4〜L5への最新アクセスが線L4
に対するものである場合は、2進ビットB5が1になる
ように設定され、それ以外の場合は、2進ビットB5が
0になるように設定される。最後に、線L6〜L7への
最新アクセスが線L6に対するものである場合は、2進
ビットB6が1になるように設定され、それ以外の場合
は、2進ビットB6が0になるように設定される。
【0071】このため、以下の論理式により、キャムレ
ット内の8本の線すべてが有効であるサイクルでの割振
り中に、擬似LRU(PLRU)論理回路802を使用
して特定の線を選択することができる。 L0_selected:=^B0&^B1&^B3; L1_selected:=^B0&^B1&B3; L2_selected:=^B0&B1&^B4; L3_selected:=^B0&B1&B4; L4_selected:=B0&^B2&^B5; L5_selected:=B0&^B2&B5; L6_selected:=B0&B2&^B6; L7_selected:=B0&B2&B6;
ット内の8本の線すべてが有効であるサイクルでの割振
り中に、擬似LRU(PLRU)論理回路802を使用
して特定の線を選択することができる。 L0_selected:=^B0&^B1&^B3; L1_selected:=^B0&^B1&B3; L2_selected:=^B0&B1&^B4; L3_selected:=^B0&B1&B4; L4_selected:=B0&^B2&^B5; L5_selected:=B0&^B2&B5; L6_selected:=B0&B2&^B6; L7_selected:=B0&B2&B6;
【0072】次に図11を参照すると、同図には、本発
明により提供されるデータ・キャッシュ・アレイ内で割
振り制御を実施するための論理回路が示されている。図
示の通り、キャムレット内の特定の線が無効であること
を示す信号を論理ゲート902に結合し、これを使用し
て割振りサイクル用の無効線の選択を可能にすることが
できる。あるいは、擬似LRU(PLRU)論理回路8
02によって選択された特定の線を使用して、割振り用
にキャムレット内の特定の線を選択することもできる。
これらの信号は論理的に組み合わされ、例示のために割
振り制御セル904および906に結合され、次にこれ
らの回路を使用して前述のように割振り制御トランジス
タ908および910を制御する。これらのトランジス
タを使用すると、割振り用に特定の線の選択を行うこと
ができる。
明により提供されるデータ・キャッシュ・アレイ内で割
振り制御を実施するための論理回路が示されている。図
示の通り、キャムレット内の特定の線が無効であること
を示す信号を論理ゲート902に結合し、これを使用し
て割振りサイクル用の無効線の選択を可能にすることが
できる。あるいは、擬似LRU(PLRU)論理回路8
02によって選択された特定の線を使用して、割振り用
にキャムレット内の特定の線を選択することもできる。
これらの信号は論理的に組み合わされ、例示のために割
振り制御セル904および906に結合され、次にこれ
らの回路を使用して前述のように割振り制御トランジス
タ908および910を制御する。これらのトランジス
タを使用すると、割振り用に特定の線の選択を行うこと
ができる。
【0073】最後に、図12を参照すると、同図には、
本発明により提供されるデータ・キャッシュ・アレイ内
の2重ポート同時アクセスの概略表現が示されている。
概略で示すように、ECAMセル1002とRCAMセ
ル1004は、それぞれ関連の一致線1006および1
008を駆動する。それぞれの一致線は、一致線アービ
トレーション回路1010および1012に結合されて
いる。したがって、同一サブアレイ内のEAポートとR
Aポートを使用して同時アクセスを試みると、その結
果、単一ワード線1014だけがアサートされるように
アービトレーションが行われる。これにより、同一サブ
アレイ内のEAポートとRAポートの両方による同時ア
クセスが起こらなくなる。
本発明により提供されるデータ・キャッシュ・アレイ内
の2重ポート同時アクセスの概略表現が示されている。
概略で示すように、ECAMセル1002とRCAMセ
ル1004は、それぞれ関連の一致線1006および1
008を駆動する。それぞれの一致線は、一致線アービ
トレーション回路1010および1012に結合されて
いる。したがって、同一サブアレイ内のEAポートとR
Aポートを使用して同時アクセスを試みると、その結
果、単一ワード線1014だけがアサートされるように
アービトレーションが行われる。これにより、同一サブ
アレイ内のEAポートとRAポートの両方による同時ア
クセスが起こらなくなる。
【0074】ただし、RAアクセス・ポートを使用して
「SNOOP」アクセスを可能にする場合、第2のワー
ド線が活動化される場合もある。したがって、SNOO
Pワード線1018は、アービトレーションにかかわら
ず、RA一致線1008から直接活動化され、RA入力
ポートをSNOOPアクセスに使用できるようにし、E
A入力ポートを通常のロードまたはキャッシュ制御操作
に使用することができる。次に、SNOOPワード線1
018を使用して、MESIビット(そのうちの2つを
1020および1022に示す)を検査することにより
特定の線内のデータの状況を判定することができる。こ
れらのビットを提供するCAMセルは、本来、2重ボー
トになっており、2本のワード線を使用して2組のビッ
ト線上で各ビットを同時に読み取ることができる。
「SNOOP」アクセスを可能にする場合、第2のワー
ド線が活動化される場合もある。したがって、SNOO
Pワード線1018は、アービトレーションにかかわら
ず、RA一致線1008から直接活動化され、RA入力
ポートをSNOOPアクセスに使用できるようにし、E
A入力ポートを通常のロードまたはキャッシュ制御操作
に使用することができる。次に、SNOOPワード線1
018を使用して、MESIビット(そのうちの2つを
1020および1022に示す)を検査することにより
特定の線内のデータの状況を判定することができる。こ
れらのビットを提供するCAMセルは、本来、2重ボー
トになっており、2本のワード線を使用して2組のビッ
ト線上で各ビットを同時に読み取ることができる。
【0075】1014に示す「通常」のワード線は、E
A一致線がアービトレーション化パス装置によりワード
線に到達できるようにすることによって、活動化するこ
とができる。当然のことながら、これには、通常のワー
ド線を選択するためにRA一致線1008を使用しない
ことが必要である。というのは、最終ワード線バッファ
論理回路全体で1本の一致線しか使用できないからであ
る。このため、EA入力ポート/RA入力ポート・アー
ビトレーション化一致線選択経路と非アービトレーショ
ン化RA入力ポート一致線選択経路とから構成されるワ
ード線ドライバを設けることにより、SNOOP目的の
同時アクセスを可能にすることができる。
A一致線がアービトレーション化パス装置によりワード
線に到達できるようにすることによって、活動化するこ
とができる。当然のことながら、これには、通常のワー
ド線を選択するためにRA一致線1008を使用しない
ことが必要である。というのは、最終ワード線バッファ
論理回路全体で1本の一致線しか使用できないからであ
る。このため、EA入力ポート/RA入力ポート・アー
ビトレーション化一致線選択経路と非アービトレーショ
ン化RA入力ポート一致線選択経路とから構成されるワ
ード線ドライバを設けることにより、SNOOP目的の
同時アクセスを可能にすることができる。
【0076】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0077】(1)複数のキャッシュ線を含むデータ・
キャッシュ・アレイにおいて、前記複数のキャッシュ線
のそれぞれが、指定の情報ブロックと、第1の内容アド
レス可能フィールドであって、前記第1の内容アドレス
可能フィールドが、前記指定の情報ブロックに関するマ
ルチビット有効アドレスの少なくとも一部を収容する第
1の内容アドレス可能フィールドと、第2の内容アドレ
ス可能フィールドであって、前記第2の内容アドレス可
能フィールドが、前記指定の情報ブロックに関するマル
チビット実アドレスの少なくとも一部を収容する第2の
内容アドレス可能フィールドとを含み、有効アドレスま
たは実アドレスを使用して、前記指定の情報ブロックの
位置を前記データ・キャッシュ・アレイ内で効率よく特
定することができることを特徴とする、データ・キャッ
シュ・アレイ。 (2)前記データ・キャッシュ・アレイが複数のサブア
レイを含み、それぞれのサブアレイが複数のキャッシュ
線を含むことを特徴とする、上記(1)に記載のデータ
・キャッシュ・アレイ。 (3)前記データ・キャッシュ・アレイが複数の合同ク
ラスを含み、前記複数の合同クラスのそれぞれが前記複
数のキャッシュ線の指定のサブセットを含むことを特徴
とする、上記(1)に記載のデータ・キャッシュ・アレ
イ。 (4)前記複数の合同クラスのそれぞれが、前記複数の
キャッシュ線のうちの8本を含むことを特徴とする、上
記(1)に記載のデータ・キャッシュ・アレイ。 (5)前記データ・キャッシュ・アレイに結合された有
効アドレス・ポートと実アドレス・ポートとをさらに含
むことを特徴とする、上記(2)に記載のデータ・キャ
ッシュ・アレイ。 (6)前記有効アドレス・ポートと前記実アドレス・ポ
ートの両方を使用した前記単一サブアレイへの同時アク
セスの試行に応じて、前記データ・キャッシュ・アレイ
内の単一サブアレイへのアクセスを制御するためのサブ
アレイ・アービトレーション回路をさらに含むことを特
徴とする、上記(2)に記載のデータ・キャッシュ・ア
レイ。 (7)前記複数のキャッシュ線のそれぞれがデータ状況
フィールドをさらに含むことを特徴とする、上記(1)
に記載のデータ・キャッシュ・アレイ。 (8)データ処理システム内でデータをキャッシュする
方法において、前記方法が、複数のキャッシュ線を有す
るデータ・キャッシュ・アレイを設けるステップと、各
キャッシュ線内に、指定の情報ブロックを格納するステ
ップと、第1の内容アドレス可能フィールド内に前記指
定の情報ブロックに関するマルチビット有効アドレスの
少なくとも一部を格納するステップと、第2の内容アド
レス可能フィールド内に前記指定の情報ブロックに関す
るマルチビット実アドレスの少なくとも一部を格納する
ステップとを含み、有効アドレスまたは実アドレスを使
用して、前記指定の情報ブロックの位置を前記データ・
キャッシュ・アレイ内で効率よく特定することができる
ことを特徴とする、データをキャッシュする方法。 (9)第1の内容アドレス可能フィールド内に前記指定
の情報ブロックに関するマルチビット有効アドレスの一
部を格納する前記ステップが、第1の内容アドレス可能
フィールド内に前記指定の情報ブロックに関する前記マ
ルチビット有効アドレスのうちの8ビットを格納するス
テップを含むことを特徴とする、上記(8)に記載のデ
ータをキャッシュする方法。 (10)第1の内容アドレス可能フィールド内に前記指
定の情報ブロックに関するマルチビット実アドレスの一
部を格納する前記ステップが、第1の内容アドレス可能
フィールド内に前記指定の情報ブロックに関する前記マ
ルチビット有効アドレスのうちの28ビットを格納する
ステップを含むことを特徴とする、上記(8)に記載の
データをキャッシュする方法。 (11)前記データ・キャッシュ・アレイを複数の合同
クラスに分割するステップをさらに含むことを特徴とす
る、上記(8)に記載のデータをキャッシュする方法。 (12)前記データ・キャッシュ・アレイを複数の合同
クラスに分割する前記ステップが、前記データ・キャッ
シュ・アレイをそれぞれが8本のキャッシュ線を含む複
数の合同クラスに分割するステップを含むことを特徴と
する、上記(11)に記載のデータをキャッシュする方
法。 (13)プロセッサと、メイン・メモリ記憶装置と、前
記メイン・メモリ記憶装置からの複数の情報ブロックを
一時的に格納するためのデータ・キャッシュ・アレイと
を含み、前記データ・キャッシュ・アレイが、複数のキ
ャッシュ線を含み、前記複数のキャッシュ線のそれぞれ
が、指定の情報ブロックと、第1の内容アドレス可能フ
ィールドであって、前記第1の内容アドレス可能フィー
ルドが、前記指定の情報ブロックに関するマルチビット
有効アドレスの少なくとも一部を収容する第1の内容ア
ドレス可能フィールドと、第2の内容アドレス可能フィ
ールドであって、前記第2の内容アドレス可能フィール
ドが、前記指定の情報ブロックに関するマルチビット実
アドレスの少なくとも一部を収容する第2の内容アドレ
ス可能フィールドとを含み、有効アドレスまたは実アド
レスを使用して、前記指定の情報ブロックの位置を前記
データ・キャッシュ・アレイ内で効率よく特定すること
ができることを特徴とする、データ処理システム。 (14)前記データ・キャッシュ・アレイが複数のサブ
アレイを含み、それぞれのサブアレイが複数のキャッシ
ュ線を含むことを特徴とする、上記(13)に記載のデ
ータ処理システム。 (15)前記データ・キャッシュ・アレイが複数の合同
クラスを含み、前記複数の合同クラスのそれぞれが前記
複数のキャッシュ線の指定のサブセットを含むことを特
徴とする、上記(13)に記載のデータ処理システム。 (16)前記複数の合同クラスのそれぞれが、前記複数
のキャッシュ線のうちの8本を含むことを特徴とする、
上記(13)に記載のデータ処理システム。 (17)前記データ・キャッシュ・アレイに結合された
有効アドレス・ポートと実アドレス・ポートとをさらに
含むことを特徴とする、上記(14)に記載のデータ処
理システム。 (18)前記有効アドレス・ポートと前記実アドレス・
ポートの両方を使用した前記単一サブアレイへの同時ア
クセスの試行に応じて、前記データ・キャッシュ・アレ
イ内の単一サブアレイへのアクセスを制御するためのサ
ブアレイ・アービトレーション回路をさらに含むことを
特徴とする、上記(14)に記載のデータ処理システ
ム。 (19)前記複数のキャッシュ線のそれぞれがデータ状
況フィールドをさらに含むことを特徴とする、上記(1
3)に記載のデータ処理システム。
キャッシュ・アレイにおいて、前記複数のキャッシュ線
のそれぞれが、指定の情報ブロックと、第1の内容アド
レス可能フィールドであって、前記第1の内容アドレス
可能フィールドが、前記指定の情報ブロックに関するマ
ルチビット有効アドレスの少なくとも一部を収容する第
1の内容アドレス可能フィールドと、第2の内容アドレ
ス可能フィールドであって、前記第2の内容アドレス可
能フィールドが、前記指定の情報ブロックに関するマル
チビット実アドレスの少なくとも一部を収容する第2の
内容アドレス可能フィールドとを含み、有効アドレスま
たは実アドレスを使用して、前記指定の情報ブロックの
位置を前記データ・キャッシュ・アレイ内で効率よく特
定することができることを特徴とする、データ・キャッ
シュ・アレイ。 (2)前記データ・キャッシュ・アレイが複数のサブア
レイを含み、それぞれのサブアレイが複数のキャッシュ
線を含むことを特徴とする、上記(1)に記載のデータ
・キャッシュ・アレイ。 (3)前記データ・キャッシュ・アレイが複数の合同ク
ラスを含み、前記複数の合同クラスのそれぞれが前記複
数のキャッシュ線の指定のサブセットを含むことを特徴
とする、上記(1)に記載のデータ・キャッシュ・アレ
イ。 (4)前記複数の合同クラスのそれぞれが、前記複数の
キャッシュ線のうちの8本を含むことを特徴とする、上
記(1)に記載のデータ・キャッシュ・アレイ。 (5)前記データ・キャッシュ・アレイに結合された有
効アドレス・ポートと実アドレス・ポートとをさらに含
むことを特徴とする、上記(2)に記載のデータ・キャ
ッシュ・アレイ。 (6)前記有効アドレス・ポートと前記実アドレス・ポ
ートの両方を使用した前記単一サブアレイへの同時アク
セスの試行に応じて、前記データ・キャッシュ・アレイ
内の単一サブアレイへのアクセスを制御するためのサブ
アレイ・アービトレーション回路をさらに含むことを特
徴とする、上記(2)に記載のデータ・キャッシュ・ア
レイ。 (7)前記複数のキャッシュ線のそれぞれがデータ状況
フィールドをさらに含むことを特徴とする、上記(1)
に記載のデータ・キャッシュ・アレイ。 (8)データ処理システム内でデータをキャッシュする
方法において、前記方法が、複数のキャッシュ線を有す
るデータ・キャッシュ・アレイを設けるステップと、各
キャッシュ線内に、指定の情報ブロックを格納するステ
ップと、第1の内容アドレス可能フィールド内に前記指
定の情報ブロックに関するマルチビット有効アドレスの
少なくとも一部を格納するステップと、第2の内容アド
レス可能フィールド内に前記指定の情報ブロックに関す
るマルチビット実アドレスの少なくとも一部を格納する
ステップとを含み、有効アドレスまたは実アドレスを使
用して、前記指定の情報ブロックの位置を前記データ・
キャッシュ・アレイ内で効率よく特定することができる
ことを特徴とする、データをキャッシュする方法。 (9)第1の内容アドレス可能フィールド内に前記指定
の情報ブロックに関するマルチビット有効アドレスの一
部を格納する前記ステップが、第1の内容アドレス可能
フィールド内に前記指定の情報ブロックに関する前記マ
ルチビット有効アドレスのうちの8ビットを格納するス
テップを含むことを特徴とする、上記(8)に記載のデ
ータをキャッシュする方法。 (10)第1の内容アドレス可能フィールド内に前記指
定の情報ブロックに関するマルチビット実アドレスの一
部を格納する前記ステップが、第1の内容アドレス可能
フィールド内に前記指定の情報ブロックに関する前記マ
ルチビット有効アドレスのうちの28ビットを格納する
ステップを含むことを特徴とする、上記(8)に記載の
データをキャッシュする方法。 (11)前記データ・キャッシュ・アレイを複数の合同
クラスに分割するステップをさらに含むことを特徴とす
る、上記(8)に記載のデータをキャッシュする方法。 (12)前記データ・キャッシュ・アレイを複数の合同
クラスに分割する前記ステップが、前記データ・キャッ
シュ・アレイをそれぞれが8本のキャッシュ線を含む複
数の合同クラスに分割するステップを含むことを特徴と
する、上記(11)に記載のデータをキャッシュする方
法。 (13)プロセッサと、メイン・メモリ記憶装置と、前
記メイン・メモリ記憶装置からの複数の情報ブロックを
一時的に格納するためのデータ・キャッシュ・アレイと
を含み、前記データ・キャッシュ・アレイが、複数のキ
ャッシュ線を含み、前記複数のキャッシュ線のそれぞれ
が、指定の情報ブロックと、第1の内容アドレス可能フ
ィールドであって、前記第1の内容アドレス可能フィー
ルドが、前記指定の情報ブロックに関するマルチビット
有効アドレスの少なくとも一部を収容する第1の内容ア
ドレス可能フィールドと、第2の内容アドレス可能フィ
ールドであって、前記第2の内容アドレス可能フィール
ドが、前記指定の情報ブロックに関するマルチビット実
アドレスの少なくとも一部を収容する第2の内容アドレ
ス可能フィールドとを含み、有効アドレスまたは実アド
レスを使用して、前記指定の情報ブロックの位置を前記
データ・キャッシュ・アレイ内で効率よく特定すること
ができることを特徴とする、データ処理システム。 (14)前記データ・キャッシュ・アレイが複数のサブ
アレイを含み、それぞれのサブアレイが複数のキャッシ
ュ線を含むことを特徴とする、上記(13)に記載のデ
ータ処理システム。 (15)前記データ・キャッシュ・アレイが複数の合同
クラスを含み、前記複数の合同クラスのそれぞれが前記
複数のキャッシュ線の指定のサブセットを含むことを特
徴とする、上記(13)に記載のデータ処理システム。 (16)前記複数の合同クラスのそれぞれが、前記複数
のキャッシュ線のうちの8本を含むことを特徴とする、
上記(13)に記載のデータ処理システム。 (17)前記データ・キャッシュ・アレイに結合された
有効アドレス・ポートと実アドレス・ポートとをさらに
含むことを特徴とする、上記(14)に記載のデータ処
理システム。 (18)前記有効アドレス・ポートと前記実アドレス・
ポートの両方を使用した前記単一サブアレイへの同時ア
クセスの試行に応じて、前記データ・キャッシュ・アレ
イ内の単一サブアレイへのアクセスを制御するためのサ
ブアレイ・アービトレーション回路をさらに含むことを
特徴とする、上記(14)に記載のデータ処理システ
ム。 (19)前記複数のキャッシュ線のそれぞれがデータ状
況フィールドをさらに含むことを特徴とする、上記(1
3)に記載のデータ処理システム。
【図1】先行技術により情報をキャッシュするためのマ
ッピング技法の例を示す概念図である。
ッピング技法の例を示す概念図である。
【図2】先行技術により情報をキャッシュするためのマ
ッピング技法の例を示す概念図である。
ッピング技法の例を示す概念図である。
【図3】先行技術により情報をキャッシュするためのマ
ッピング技法の例を示す概念図である。
ッピング技法の例を示す概念図である。
【図4】本発明の好ましい実施例により情報をキャッシ
ュするためのセミアソシアティブ・マッピング技法の概
念図である。
ュするためのセミアソシアティブ・マッピング技法の概
念図である。
【図5】第1および第2の処理システムとレベル2
(「L2」)キャッシュ・メモリとを含むシステム例の
ブロック図である。
(「L2」)キャッシュ・メモリとを含むシステム例の
ブロック図である。
【図6】本発明のシステム内で使用するアドレス指定方
式のグラフ図である。
式のグラフ図である。
【図7】CMOS CAMセル例の概略電気回路図であ
る。
る。
【図8】本発明により提供される複数サブアレイ・キャ
ッシュの高レベル・ブロック図である。
ッシュの高レベル・ブロック図である。
【図9】1つのキャムレットを示す、図8のキャッシュ
の単一サブアレイの詳細ブロック図である。
の単一サブアレイの詳細ブロック図である。
【図10】本発明により提供されるキャッシュ内の割振
り制御用のシステムを示す高レベル・ブロック図であ
る。
り制御用のシステムを示す高レベル・ブロック図であ
る。
【図11】本発明により提供されるキャッシュ内で割振
り制御を実施するための論理回路を示す図である。
り制御を実施するための論理回路を示す図である。
【図12】本発明により提供されるキャッシュ内で使用
するための2重ポート同時アクセス・システムの概略表
現である。
するための2重ポート同時アクセス・システムの概略表
現である。
300 システム 302 第1の処理システム 304 第2の処理システム 306 L2キャッシュ・コントローラ 308 システム・バス 312 L2キャッシュ 314 プロセッサ 316 L1キャッシュ・コントローラ 318 L1キャッシュ・メモリ 320 プロセッサ 322 L1キャッシュ・コントローラ 324 L1キャッシュ・メモリ 326 メモリ
Claims (19)
- 【請求項1】複数のキャッシュ線を含むデータ・キャッ
シュ・アレイにおいて、前記複数のキャッシュ線のそれ
ぞれが、 指定の情報ブロックと、 第1の内容アドレス可能フィールドであって、前記第1
の内容アドレス可能フィールドが、前記指定の情報ブロ
ックに関するマルチビット有効アドレスの少なくとも一
部を収容する第1の内容アドレス可能フィールドと、 第2の内容アドレス可能フィールドであって、前記第2
の内容アドレス可能フィールドが、前記指定の情報ブロ
ックに関するマルチビット実アドレスの少なくとも一部
を収容する第2の内容アドレス可能フィールドとを含
み、 有効アドレスまたは実アドレスを使用して、前記指定の
情報ブロックの位置を前記データ・キャッシュ・アレイ
内で効率よく特定することができることを特徴とする、
データ・キャッシュ・アレイ。 - 【請求項2】前記データ・キャッシュ・アレイが複数の
サブアレイを含み、それぞれのサブアレイが複数のキャ
ッシュ線を含むことを特徴とする、請求項1に記載のデ
ータ・キャッシュ・アレイ。 - 【請求項3】前記データ・キャッシュ・アレイが複数の
合同クラスを含み、前記複数の合同クラスのそれぞれが
前記複数のキャッシュ線の指定のサブセットを含むこと
を特徴とする、請求項1に記載のデータ・キャッシュ・
アレイ。 - 【請求項4】前記複数の合同クラスのそれぞれが、前記
複数のキャッシュ線のうちの8本を含むことを特徴とす
る、請求項1に記載のデータ・キャッシュ・アレイ。 - 【請求項5】前記データ・キャッシュ・アレイに結合さ
れた有効アドレス・ポートと実アドレス・ポートとをさ
らに含むことを特徴とする、請求項2に記載のデータ・
キャッシュ・アレイ。 - 【請求項6】前記有効アドレス・ポートと前記実アドレ
ス・ポートの両方を使用した前記単一サブアレイへの同
時アクセスの試行に応じて、前記データ・キャッシュ・
アレイ内の単一サブアレイへのアクセスを制御するため
のサブアレイ・アービトレーション回路をさらに含むこ
とを特徴とする、請求項2に記載のデータ・キャッシュ
・アレイ。 - 【請求項7】前記複数のキャッシュ線のそれぞれがデー
タ状況フィールドをさらに含むことを特徴とする、請求
項1に記載のデータ・キャッシュ・アレイ。 - 【請求項8】データ処理システム内でデータをキャッシ
ュする方法において、前記方法が、 複数のキャッシュ線を有するデータ・キャッシュ・アレ
イを設けるステップと、 各キャッシュ線内に、 指定の情報ブロックを格納するステップと、 第1の内容アドレス可能フィールド内に前記指定の情報
ブロックに関するマルチビット有効アドレスの少なくと
も一部を格納するステップと、 第2の内容アドレス可能フィールド内に前記指定の情報
ブロックに関するマルチビット実アドレスの少なくとも
一部を格納するステップとを含み、 有効アドレスまたは実アドレスを使用して、前記指定の
情報ブロックの位置を前記データ・キャッシュ・アレイ
内で効率よく特定することができることを特徴とする、
データをキャッシュする方法。 - 【請求項9】第1の内容アドレス可能フィールド内に前
記指定の情報ブロックに関するマルチビット有効アドレ
スの一部を格納する前記ステップが、第1の内容アドレ
ス可能フィールド内に前記指定の情報ブロックに関する
前記マルチビット有効アドレスのうちの8ビットを格納
するステップを含むことを特徴とする、請求項8に記載
のデータをキャッシュする方法。 - 【請求項10】第1の内容アドレス可能フィールド内に
前記指定の情報ブロックに関するマルチビット実アドレ
スの一部を格納する前記ステップが、第1の内容アドレ
ス可能フィールド内に前記指定の情報ブロックに関する
前記マルチビット有効アドレスのうちの28ビットを格
納するステップを含むことを特徴とする、請求項8に記
載のデータをキャッシュする方法。 - 【請求項11】前記データ・キャッシュ・アレイを複数
の合同クラスに分割するステップをさらに含むことを特
徴とする、請求項8に記載のデータをキャッシュする方
法。 - 【請求項12】前記データ・キャッシュ・アレイを複数
の合同クラスに分割する前記ステップが、前記データ・
キャッシュ・アレイをそれぞれが8本のキャッシュ線を
含む複数の合同クラスに分割するステップを含むことを
特徴とする、請求項11に記載のデータをキャッシュす
る方法。 - 【請求項13】プロセッサと、 メイン・メモリ記憶装置と、 前記メイン・メモリ記憶装置からの複数の情報ブロック
を一時的に格納するためのデータ・キャッシュ・アレイ
とを含み、前記データ・キャッシュ・アレイが、 複数のキャッシュ線を含み、前記複数のキャッシュ線の
それぞれが、 指定の情報ブロックと、 第1の内容アドレス可能フィールドであって、前記第1
の内容アドレス可能フィールドが、前記指定の情報ブロ
ックに関するマルチビット有効アドレスの少なくとも一
部を収容する第1の内容アドレス可能フィールドと、 第2の内容アドレス可能フィールドであって、前記第2
の内容アドレス可能フィールドが、前記指定の情報ブロ
ックに関するマルチビット実アドレスの少なくとも一部
を収容する第2の内容アドレス可能フィールドとを含
み、 有効アドレスまたは実アドレスを使用して、前記指定の
情報ブロックの位置を前記データ・キャッシュ・アレイ
内で効率よく特定することができることを特徴とする、
データ処理システム。 - 【請求項14】前記データ・キャッシュ・アレイが複数
のサブアレイを含み、それぞれのサブアレイが複数のキ
ャッシュ線を含むことを特徴とする、請求項13に記載
のデータ処理システム。 - 【請求項15】前記データ・キャッシュ・アレイが複数
の合同クラスを含み、前記複数の合同クラスのそれぞれ
が前記複数のキャッシュ線の指定のサブセットを含むこ
とを特徴とする、請求項13に記載のデータ処理システ
ム。 - 【請求項16】前記複数の合同クラスのそれぞれが、前
記複数のキャッシュ線のうちの8本を含むことを特徴と
する、請求項13に記載のデータ処理システム。 - 【請求項17】前記データ・キャッシュ・アレイに結合
された有効アドレス・ポートと実アドレス・ポートとを
さらに含むことを特徴とする、請求項14に記載のデー
タ処理システム。 - 【請求項18】前記有効アドレス・ポートと前記実アド
レス・ポートの両方を使用した前記単一サブアレイへの
同時アクセスの試行に応じて、前記データ・キャッシュ
・アレイ内の単一サブアレイへのアクセスを制御するた
めのサブアレイ・アービトレーション回路をさらに含む
ことを特徴とする、請求項14に記載のデータ処理シス
テム。 - 【請求項19】前記複数のキャッシュ線のそれぞれがデ
ータ状況フィールドをさらに含むことを特徴とする、請
求項13に記載のデータ処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/319,329 US5805855A (en) | 1994-10-05 | 1994-10-05 | Data cache array having multiple content addressable fields per cache line |
| US319329 | 1994-10-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08227380A true JPH08227380A (ja) | 1996-09-03 |
Family
ID=23241793
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7282636A Pending JPH08227380A (ja) | 1994-10-05 | 1995-10-04 | データ処理システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5805855A (ja) |
| EP (1) | EP0708404A2 (ja) |
| JP (1) | JPH08227380A (ja) |
| KR (1) | KR960015237A (ja) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10509819A (ja) * | 1994-10-14 | 1998-09-22 | シリコン グラフィックス インク. | インターリーブされるキャッシュメモリアレイのインデッキシングとマルチプレキシング |
| US5761714A (en) * | 1996-04-26 | 1998-06-02 | International Business Machines Corporation | Single-cycle multi-accessible interleaved cache |
| US6112278A (en) * | 1996-09-30 | 2000-08-29 | Lsi Logic Corporation | Method to store initiator information for SCSI data transfer |
| US5978888A (en) * | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| US6026470A (en) * | 1997-04-14 | 2000-02-15 | International Business Machines Corporation | Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| KR100479623B1 (ko) * | 1997-04-15 | 2005-07-07 | 엘지전자 주식회사 | 캐시태그메모리및그구동시스템 |
| US6032228A (en) * | 1997-11-26 | 2000-02-29 | International Business Machines Corporation | Flexible cache-coherency mechanism |
| JPH11212864A (ja) * | 1998-01-29 | 1999-08-06 | Sanyo Electric Co Ltd | メモリ装置 |
| US6202128B1 (en) | 1998-03-11 | 2001-03-13 | International Business Machines Corporation | Method and system for pre-fetch cache interrogation using snoop port |
| JP2000010860A (ja) * | 1998-06-16 | 2000-01-14 | Hitachi Ltd | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム |
| US6141731A (en) * | 1998-08-19 | 2000-10-31 | International Business Machines Corporation | Method and system for managing data in cache using multiple data structures |
| WO2001037099A1 (de) * | 1999-11-16 | 2001-05-25 | Infineon Technologies Ag | Speicher für die zentraleinheit einer rechenanlage |
| US6640293B1 (en) * | 2000-07-24 | 2003-10-28 | International Business Machines Corporation | Apparatus and method of utilizing Alias Hit signals to detect errors within the real address tag arrays |
| US6784892B1 (en) * | 2000-10-05 | 2004-08-31 | Micron Technology, Inc. | Fully associative texture cache having content addressable memory and method for use thereof |
| US7133409B1 (en) | 2001-07-19 | 2006-11-07 | Richard Willardson | Programmable packet filtering in a prioritized chain |
| US6732228B1 (en) * | 2001-07-19 | 2004-05-04 | Network Elements, Inc. | Multi-protocol data classification using on-chip CAM |
| CA2463278C (en) * | 2001-10-09 | 2013-04-02 | Infinera Corporation | Transmitter photonic integrated circuits (txpic) and optical transport networks employing txpics |
| US7035979B2 (en) * | 2002-05-22 | 2006-04-25 | International Business Machines Corporation | Method and apparatus for optimizing cache hit ratio in non L1 caches |
| US7073030B2 (en) | 2002-05-22 | 2006-07-04 | International Business Machines Corporation | Method and apparatus providing non level one information caching using prefetch to increase a hit ratio |
| US7610440B2 (en) * | 2002-10-23 | 2009-10-27 | Husby Donald E | Content addressable memory with automated learning |
| US7035986B2 (en) * | 2003-05-12 | 2006-04-25 | International Business Machines Corporation | System and method for simultaneous access of the same line in cache storage |
| US6990556B2 (en) * | 2003-05-12 | 2006-01-24 | International Business Machines Corporation | System and method for simultaneous access of the same doubleword in cache storage |
| TWI259406B (en) * | 2003-08-15 | 2006-08-01 | Via Tech Inc | A method and an apparatus of flash cards access |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
| WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
| US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
| US4577293A (en) * | 1984-06-01 | 1986-03-18 | International Business Machines Corporation | Distributed, on-chip cache |
| DE3586524T2 (de) * | 1984-10-31 | 1993-01-21 | Texas Instruments Inc | Durch beide, physikalische und virtuelle addressen, addressierbarer cache-speicher. |
| US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
| US5446844A (en) * | 1987-10-05 | 1995-08-29 | Unisys Corporation | Peripheral memory interface controller as a cache for a large data processing system |
| US5133061A (en) * | 1987-10-29 | 1992-07-21 | International Business Machines Corporation | Mechanism for improving the randomization of cache accesses utilizing abit-matrix multiplication permutation of cache addresses |
| US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
| US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
| US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
| US4945512A (en) * | 1988-09-07 | 1990-07-31 | Unisys Corporation | High-speed partitioned set associative cache memory |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US5127091A (en) * | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
| US5091851A (en) * | 1989-07-19 | 1992-02-25 | Hewlett-Packard Company | Fast multiple-word accesses from a multi-way set-associative cache memory |
| JPH0786848B2 (ja) * | 1989-11-01 | 1995-09-20 | 三菱電機株式会社 | キャッシュメモリ |
| GB9205551D0 (en) * | 1992-03-13 | 1992-04-29 | Inmos Ltd | Cache memory |
-
1994
- 1994-10-05 US US08/319,329 patent/US5805855A/en not_active Expired - Fee Related
-
1995
- 1995-10-04 JP JP7282636A patent/JPH08227380A/ja active Pending
- 1995-10-05 KR KR1019950034109A patent/KR960015237A/ko not_active Abandoned
- 1995-10-05 EP EP95202678A patent/EP0708404A2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US5805855A (en) | 1998-09-08 |
| EP0708404A2 (en) | 1996-04-24 |
| EP0708404A3 (ja) | 1996-05-22 |
| KR960015237A (ko) | 1996-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5640534A (en) | Method and system for concurrent access in a data cache array utilizing multiple match line selection paths | |
| US5668972A (en) | Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line | |
| US5805855A (en) | Data cache array having multiple content addressable fields per cache line | |
| JP3169155B2 (ja) | 情報をキャッシュするための回路 | |
| US5752260A (en) | High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses | |
| KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
| US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
| EP0407119B1 (en) | Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access | |
| US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
| US6874077B2 (en) | Parallel distributed function translation lookaside buffer | |
| US5809562A (en) | Cache array select logic allowing cache array size to differ from physical page size | |
| US6745291B1 (en) | High speed LRU line replacement system for cache memories | |
| US12174738B2 (en) | Circuitry and method | |
| 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 | |
| US5761714A (en) | Single-cycle multi-accessible interleaved cache | |
| US6202128B1 (en) | Method and system for pre-fetch cache interrogation using snoop port | |
| KR20020010922A (ko) | 캐시 메모리용 상태 비트 | |
| US7865691B2 (en) | Virtual address cache and method for sharing data using a unique task identifier | |
| JPH0438014B2 (ja) | ||
| US6493792B1 (en) | Mechanism for broadside reads of CAM structures | |
| JP2636485B2 (ja) | キャッシュ記憶装置 | |
| GB2395588A (en) | Apparatus supporting multiple page sizes with address aliasing |