JP4445081B2 - キャッシュ・メモリ - Google Patents
キャッシュ・メモリ Download PDFInfo
- Publication number
- JP4445081B2 JP4445081B2 JP34708799A JP34708799A JP4445081B2 JP 4445081 B2 JP4445081 B2 JP 4445081B2 JP 34708799 A JP34708799 A JP 34708799A JP 34708799 A JP34708799 A JP 34708799A JP 4445081 B2 JP4445081 B2 JP 4445081B2
- Authority
- JP
- Japan
- Prior art keywords
- row
- data
- cache
- associative
- associative memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、データ処理の分野に関し、より詳細には、キャッシュ・メモリを組み入れたデータ処理システムに関する。
【0002】
【発明が解決しようとする課題】
連想記憶装置(CAM:content addressable memory)と、関連するRAM記憶装置を組み入れたキャッシュ・メモリは、データ処理システムでは公知である。CAMは、キャッシュ・メモリ・システム内にタグの記憶装置を設けるために使用できる。CAMによって、CAM内の連想記憶装置の各行に格納された複数の値を並列比較することができる。連想記憶装置の行が、入力データ値と一致する連想データ語(content addressable data word)を格納していると、一致の信号を送る行に対してヒット信号が発生する。このヒット信号は、タグ値が示すメモリ・アドレスをもつデータ値を格納しているキャッシュ・メモリのRAMの、対応するキャッシュ行を選択するために使用される。
【0003】
キャッシュ・メモリの他の一部は追出しデータ(victim)選択回路であってこの回路は、新しいキャッシュ・データをキャッシュ・メモリに格納する必要があるがキャッシュ・メモリがすでに満杯の場合、どのキャッシュ・データをキャッシュ・メモリから除去すべきかを制御する。ランダム、最近少しも使用されていないデータ、ラウンドロビンなど、各種の追出しデータ選択方法が知られている。
【0004】
データ処理システムに関する不変の目的は、回路の大きさを小さくすることである。大きさが小さくなると、他の利点が生じるとともに、処理速度が上がり、費用が低減し、電力消費が減少する。
【0005】
【課題を解決する手段】
1つの態様から見ると、本発明は、以下に示すキャッシュ・メモリ、すなわち、
(i) 連想記憶装置の各行が複数の連想ビット記憶セル(content addressable bit storage cells)を含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行(content addressable storage rows)と、
(ii)複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
(iii) 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がるヒット線をもつ、複数のヒット線と、
(iv)それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
(v) インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行とキャッシュデータ行とを選択する信号を発生するインデックス復号器において、
(vi)前記選択信号は、前記ヒット線の対応する1つを介して前記キャッシュデータ行に送られる、インデックス復号器と、
を含む、キャッシュ・メモリをもつデータ処理装置を提供する。
【0006】
キャッシュ・メモリ・システムでは、連想記憶装置の各行を横切って走る信号線を設けることは公知である。これらの信号線は、タグ値との一致を示すヒット線、連想記憶装置の行、および対応するキャッシュデータ行への書き込みを可能にする書き込みイネーブル線、および連想記憶装置の行からの読み出しを可能にする読み出しイネーブル線であればよい。ヒット信号または読み出しイネーブル信号のいずれかがキャッシュデータ行を通る必要があるので、通常、CAMとキャッシュRAMとの間にマルチプレクサを設けて、RAMに送られるこれらの信号のどちらか1つを選択する。かかるマルチプレクサは、キャッシュ・メモリの最高動作速度を制限するクリティカルパス上にあってもよいが、マルチプレクサが存在すると欠点が生じる。この既存装置の別の欠点は、連想記憶装置の行を横切って通る3本の別々の信号線のため、連想記憶装置の行に対して実現できる最大の大きさが制限されることである。
【0007】
本発明は、上記2つの課題を認識し、連想記憶装置の行を横切るヒット線を使用して、追い出すキャッシュデータ行に追出しデータ(victim)選択信号を送ることにより、これらの課題の克服を実現する。これによって、連想記憶装置の各行を通る信号線の数を3本から2本に減らすとともに、クリティカルパスからマルチプレクサを除去することができる。
【0008】
本発明の好適実施例では、連想記憶装置の内容にアクセスすることが、ヒット線のどの信号とも独立している必要があることが望ましい場合、連想記憶装置の内容にアクセスするため連想記憶装置の各行を横切るアクセス・イネーブル線が設けられている。
【0009】
連想記憶装置は、各行に関連する有効性ビットおよびダーティ・ビットを有しており、この状態では、一致する行に関連する有効性ビットおよびダーティ・ビットのどれかにアクセスすることを可能にするヒット信号を結合するために、選択可能な接続(コネクション)を設けることが望ましい。
【0010】
別の態様から見ると、本発明は、キャッシュ・メモリを使用してデータを処理する方法、すなわち、
(i) 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行中に連想データ語を格納するステップと、
(ii)前記複数のビット線上の入力データ語が連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行の対応する連想ビット記憶セルを複数のビット線に接続するステップと
(iii) 前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がるヒット線をもつ、複数のヒット線を設けるステップと
(iv)それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行に対するメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行を設けるステップと
(v) インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行とキャッシュデータ行とを選択する選択信号を発生するインデックス復号器において、
(vi)前記選択信号は、前記ヒット線の対応する1つを介して前記キャッシュデータ行に送られる、インデックス復号器を設けるステップと、
を含む方法を提供する。
【0011】
本発明は、次に新しい位置から使用されるデータに対し、記憶場所の1つから別の記憶場所へブロック転送が必要な場合に処理速度を上げる、という課題に対処するために使用できる。既存システムでは、データが主記憶装置からプロセッサに読み出され、プロセッサから主記憶装置の新しいアドレスに書き戻され、最終的には、次の使用に用意されている新しい記憶場所に関連するタグをもつキャッシュ・メモリに主記憶装置またはプロセッサから読み戻されることが必要であった。これは比較的低速度の処理である。
【0012】
別の態様から見ると、本発明は、キャッシュ・メモリ、すなわち、
(i) 連想記憶装置の各行が複数の連想ビット記憶セルを含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行と、
(ii)複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
(iii) 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がる関連するヒット線をもつ、複数のヒット線と、
(iv)前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線と、
(v) それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
を含み、
(vi)アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間が接続される、
キャッシュ・メモリをもつデータ処理装置を提供する。
【0013】
ヒット信号線とアクセス・イネーブル信号線との間を接続すると、連想記憶装置に格納されたデータの位置が連想記憶装置の中で判らなくても、そのデータを処理(manipulated)することができる。すなわち、問題のデータ項目を探すために先ず連想記憶装置が検索されてヒット信号を発生することができると、処理のためにアクセスできるように、このヒット信号は連想記憶装置内の関連する行へ転送される。この機能によって、以前には不可能であった方法で、連想記憶装置に格納されたデータを元の場所で処理することができる。かかる処理の一例は、キャッシュ・データがまだキャッシュ・メモリのRAM内に格納されている間に、キャッシュデータ行に関連するタグ値を修正することである。より詳細には、第1の記憶場所から読み出された語をキャッシュ・メモリに読み込むことができ、連想記憶装置内に格納されているタグ値が見つけられると、このとき何よりも先にタグ値を主記憶装置に書き戻す必要はなく、このタグ値は、関連する第2のメモリ・アドレスを使用して第2の記憶場所とキャッシュ語をキャッシュ・メモリから直接指定するように修正される。そのように修正されたキャッシュ・メモリの行に関連するダーティ・ビットは、キャッシュ・データがキャッシュ・メモリから除去される時にシステムの完全性が維持されるように、そのキャッシュ・データが主記憶装置に書き戻されることを保証するために設定される。
【0014】
さらに別の態様から見ると、本発明は、キャッシュ・メモリを使用してデータを処理する方法、すなわち、
(i) 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行の中に連想データ語を格納するステップと、
(ii)複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを複数のビット線に接続するステップと
(iii) 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がる関連するヒット線をもつ、複数のヒット線を設けるステップと
(iv)前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を設けるステップと、
を含み、
(v) アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、
方法を提供する。
【0015】
添付の図面とともに判りやすい実施例に関する以下の詳細な説明を読めば、本発明の上記特徴と利点ならびにその他の目的は明らかであろう。
【0016】
【発明の実施の形態】
図1は、連想記憶装置のセル2を示す。ビット値は2つのインバータ4、6によって格納される。ゲート用トランジスタ8、10はインバータ4、6へのアクセスを制御する。アクセス・イネーブル線12上のアクセス・イネーブル信号、RD/WRによってゲート用トランジスタ8、10がオンになると、ビット線14、16上のビット値(相補値)は、転送ゲート5、7を介してインバータ4、6へ送られるかインバータ4、6から読み出される。
【0017】
比較動作中、入力データ語はビット線のペア14、16に加えられ、連想記憶装置の各行内で、その行を構成する全インバータ4、6によって格納されたデータ値と並列比較される。各行のヒット線18は、ハイ(high)にプリチャージされている。ビット線14、16の入力と一致するビットがメモリセル2に含まれていないと、トランジスタ20がオンになり、関連するヒット線18を放電する。したがって、連想記憶装置の行のどれかが入力データ語に一致するビットのすべての値を格納していると、そのメモリセルのヒット線は、プリチャージされたハイの値を維持するので、このことが一致を示すヒット信号の役割を果たす。行の中に一致しないビットが1つあると、その行に対するヒット線の放電が起こる。連想記憶装置のセル2が、読み出しまたは書き込みのためにアクセスされていない場合は、ビット線14、16はともにゼロに駆動される。転送ゲート5、7の1つが動作可能になるが、トランジスタ20は動作可能にならないのでヒット線18はプリチャージされた状態を続ける。
【0018】
図2は、キャッシュ・メモリ・システム22の第1の実施例を示す。連想記憶装置24は、キャッシュRAMブロック28の対応するキャッシュ・メモリ行26に格納されたデータ値のメモリ・アドレスを示すタグ値を格納する。連想記憶装置の各行は、複数の連想記憶装置のセル2から形成される。図2では、縦方向に非常に大きく拡大して1つの行が模式的に示されている。
【0019】
行駆動回路(row driver)30の列は、連想記憶装置24とキャッシュRAMブロック28との間に設けられる。残りの1つのヒット信号のどれかがキャッシュRAMブロック28の行に送られる前に、一致しない行に対応する全ヒット線が後で放電してしまうように、これらの行駆動回路30は1度に作動する。連想記憶装置24およびキャッシュRAMブロック28の各行に関連する有効性ビットおよびダーティ・ビットを格納するビット記憶セル32のブロックも設けられている。いかなる値がシステムに現れても有効ではない起動時と比べ、有効性ビットは、その行が有効性データを格納していることを示す。キャッシュに入れられた(cached)値が変更され、キャッシュに入れられた値がキャッシュ・システムから除去される時に、その値を主記憶装置に書き戻す必要があることを示すダーティ・ビットは、書き戻しシステムで使用される。
【0020】
各行は関連するヒット線18およびアクセス・イネーブル線12を有する。さらに、有効性/ダーティ・ビット・ブロック32にアクセスするための有効性/ダーティ・アクセス・イネーブル線34がある。マルチプレクサ制御装置44によって制御される複数のスイッチング用(switchable)バッファ36、38、40、42(たとえば、ANDゲート)は、ヒット線18、アクセス・イネーブル線12、有効性/ダーティ・アクセス・イネーブル線34およびインデックス復号器46の出力を相互接続する役割を果たす。マルチプレクサ制御装置44は入力モード信号 Modeに応答して、所定の入力モードのいずれかで、ゲート36、38、40、42のどれを開き、どれを閉じるかを選択する。
【0021】
インデックス復号器46は、入力インデックス値に応答してこの入力インデックス値を復号し、たとえば追出しデータ選択をするために新しい1組のデータ値を書き込むべき行の1つを選択する。
【0022】
通常動作の場合、キャッシュ・メモリ・システム22から読み出しが行われることになっている場合、連想記憶装置24に仮想アドレス値の一部が加えられ、連想記憶装置の各行に格納されているタグ値と並列比較される。一致すると、その行に対するヒット信号がヒット線18に発生し、行駆動ブロック30を介してキャッシュRAMブロック28に送られる。次にキャッシュRAMブロック28内のキャッシュ行が読み出される。この動作中、ゲート36、38、40、42すべてを閉じてもよい。
【0023】
キャッシュ・記憶場所への書き込みが行われると、連想記憶装置24内で仮想アドレスに関する同様な比較が行われ、キャッシュRAMブロック28のキャッシュ行の中で書き込みアクセスを可能にするヒット信号が発生する。このケースでは、マルチプレクサ制御装置44は書き込みモードに応答してゲート38を起動し、行に格納されている値が変更されているその行に対してダーティ・ビットを設定するようにヒット信号を送り、しかるべき時に(図示せず)主記憶装置への書き戻しを要求する。
【0024】
連想記憶装置の行とキャッシュ行に新しい値が書き込まれると、インデックス復号器46は、(図示せず)追出しデータ発生器(victim selector)回路からの、たとえば、6ビットのランダムな数のインデックス値を使用して、追出しデータの行を選択する。ゲート36は、追出しデータ選択回路からヒット線18に追出し信号(victim signal)を送って、対応するキャッシュデータ行へアクセスできるように働く。ゲート42は、追出しデータ選択信号をアクセス・イネーブル線12に渡して、ビット線のペア14、16の入力データ値が連想記憶装置の行へ書き込まれることを可能にする。ゲート40は、追出しデータ選択信号を送って有効性ビットを設定し、ダーティ・ビットを所定の状態に戻す。
【0025】
キャッシュ・クリーンおよびキャッシュ無効化など、キャッシュの維持動作には、とりうる2つの方法がある。
【0026】
1.仮想アドレスの一部は、連想記憶装置24に加えられ、連想記憶装置の各行に格納されているタグ値と並列比較される。一致すると、その行のヒット線18上にヒット信号が発生し、ゲート38を介して有効性/ダーティ信号線34に送られる。有効性ビットおよびダーティ・ビットが読み出され、有効およびダーティであれば、ヒット線18上のその信号は、行駆動ブロック30を介してキャッシュRAMブロック28に送られる。次にその行のキャッシュ・データ値が読み出される。有効性ビットおよびダーティ・ビットが適切に書き込まれると、クリーン動作および/または無効化動作が実行されているか否かに依存して、ダーティ・ビットおよび/または有効性ビットをリセットする。
【0027】
2.行はインデックス復号器46によって選択される。前と同様、ゲート40を介して、有効性/ダーティ信号線34にインデックス選択信号が送られると、有効性ビットおよびダーティ・ビットが読み出される。有効およびダーティであれば、インデックス選択信号は、ゲート36を介してヒット線に送られ、行駆動ブロック30を介してキャッシュRAMブロック28に送られる。次にその行のキャッシュ・データ値が読み出される。有効性ビットおよびダーティ・ビットは、クリーン動作および/または無効化動作のために適切に書き込まれる。
【0028】
CAM読み出し/書き込みやRAM読み出し/書き込みのような診断モードでは、本システムは以下に説明するモードのいずれかで動作できる。
【0029】
1.行はインデックス復号器46によって選択されうる。復号されたインデックス値は、ゲート40を介して有効性/ダーティ信号線34に送られ、ゲート42を介してアクセス・イネーブル信号線12に送られる。このとき有効性ビットおよびダーティ・ビットと、その行のCAMに保持されているタグとは、読み出しまたは書き込みされうる。
【0030】
2.行はインデックス復号器46によって選択される。復号されたインデックス値は、ゲート36を介してヒット線18に送られ、行駆動ブロック30を介してキャッシュRAMブロック28に送られる。このときキャッシュRAMブロック28に格納されているキャッシュ・データ語が読み出しまたは書き込みされうる。
【0031】
図3は、キャッシュ・メモリ・システム22の第2の実施例を示す。このシステムは、、書き戻しのために用られるCAM24から読み出されたタグ値で書き戻しが支援されている統合キャッシュである。
【0032】
データのブロック転送を実行することが望ましい場合は、以下の方法を使用できる。
【0033】
1.第1のアドレスAからラインフィル(linefill)する(アドレスAからロードすれば、ラインフィルを開始するのに十分である)。
【0034】
2.書き込まれたばかりの行に対するタグ値を修正するようにコプロセッサ命令を実行し、書き戻しが続いて起こることを保証するため、主記憶装置の第2のアドレスBを指定して有効性/ダーティ・ブロック32のキャッシュ行にダーティとマークする。
【0035】
3.これで新しいデータが第2のアドレスBに関連するキャッシュ内にあることになるので、この新しいデータを直接使用することができる。自己修正符号のケースでは、符号はキャッシュ内の新しいアドレスで修正されうる。ダーティ・データがキャッシュから除去される時の主記憶装置の完全性は、しかるべき時に外部の主記憶装置に書き戻される「ダーティ」データによって保証される。
【0036】
本システムの動作は、コプロセッサ命令に応答して、先ず、第1のアドレスAに一致するタグ値を格納するCAM24内で一致する行を見つけることである。一致する行のヒット信号はヒット線18で立ち上がり、ラッチ43によってラッチされる。ラッチ43は、次のクロックサイクルで、その出力でアクセス・イネーブル信号線12を駆動して、ビット線のペア14、16で立ち上がる第2のアドレス値Bが、関係のある行のCAMセル2に書き込まれることを可能にする。コプロセッサ命令に応答して実行される動作は、ほぼ5クロックサイクルかかって終了するのが普通である。
【0037】
この、
1.アドレスAから8語のラインフィル、
2.タグをアドレスAからアドレスBへ変更するコプロセッサ命令、
のシーケンスは、
1.アドレスAからプロセッサへの8語のロード(8語のラインフィルと等価)、
2.アドレスBから8語の格納、
3.アドレスBから8語のラインフィル、
よりも十分に短くかつ速い。
【0038】
ここに、添付の図面を参照して、本発明の判りやすい実施例を詳細に説明してきたが、本発明はこれらの正確な実施例に限定されず、各種の変更や修正は、添付の特許請求の範囲で定義されているように、本発明の範囲と趣旨を逸脱することなく、当業者によって実行されうることを理解すべきである。
【図面の簡単な説明】
【図1】連想記憶装置のセルを示す図。
【図2】第1の実施例による連想記憶装置を組み込んだキャッシュ・メモリを示す図。
【図3】第2の実施例による連想記憶装置を組み込んだキャッシュ・メモリを示す図。
【符号の説明】
2 メモリ・セル2
4、6 インバータ
5、7 転送ゲート
8、10 ゲート用トランジスタ
12 アクセス・イネーブル信号線
14、16 ビット線のペア
18 ヒット信号線
20 トランジスタ
22 キャッシュ・メモリ・システム
24 連想記憶装置
26 キャッシュ・メモリ行
28 キャッシュRAMブロック
30 行駆動ブロック
32 有効性/ダーティ・ビット・ブロック
34 有効性/ダーティ信号線
36、38、40、42 スイッチング・ゲート
43 ラッチ
44 マルチプレクサ制御装置
46 インデックス復号器
Claims (18)
- キャッシュ・メモリを有するデータ処理装置であって、前記キャッシュ・メモリは、
(i) 連想記憶装置の各行が複数の連想ビット記憶セルを含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行と、
(ii)複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
(iii) 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がるヒット線をもつ、複数のヒット線と、
(iv)それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
(v) インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行と追出しキャッシュデータ行とを選択する信号を発生するインデックス復号器において、
(vi)前記選択信号は、前記ヒット線の対応する1つを介して前記キャッシュデータ行に送られる、インデックス復号器と、
を含むデータ処理装置。 - 請求項1に記載のデータ処理装置であって、連想記憶装置の各行がアクセス信号を立ち上げることができるアクセス・イネーブル線を有し、前記連想記憶装置の行内に格納された連想データ語にアクセスできるようにする複数のアクセス・イネーブル線を含むデータ処理装置。
- 請求項1に記載の装置において、有効性ビットは、前記連想記憶装置の行が有効性データを格納しているか否かを示す連想記憶装置の各行に関連する装置。
- 請求項3に記載の装置であって、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送るための選択可能な接続を含む装置。
- 請求項1に記載の装置において、ダーティ・ビットは、前記連想記憶装置の行に対応する前記キャッシュ・データが、前記キャッシュ・メモリに書き込まれてから変更されているか否かを示す連想記憶装置の各行に関連する装置。
- 請求項5に記載の装置であって、前記ダーティ・ビットへのアクセスを可能にする前記ヒット信号を送る選択可能な接続を含む装置。
- キャッシュ・メモリを使用してデータを処理する方法であって、
(i) 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行中に連想データ語を格納するステップと、
(ii)前記複数のビット線上の入力データ語が連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行の対応する連想ビット記憶セルを複数のビット線に接続するステップと
(iii) 前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がるヒット線をもつ、複数のヒット線を設けるステップと
(iv)それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行に対するメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行を設けるステップと
(v) インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行と追出しキャッシュデータ行とを選択する選択信号を発生するインデックス復号器において、
(vi)前記選択信号は、前記ヒット線の対応する1つを介して前記キャッシュデータ行に送られる、インデックス復号器を設けるステップと、
を含む方法。 - 請求項1に記載のデータ処理装置であって、更に、
前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を含み、
アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、データ処理装置。 - 請求項8に記載の装置であって、インデックス値を復号して、前記アクセス・イネーブル線の1つにアクセス・イネーブル信号を発生するインデックス復号器を含む装置。
- 請求項8に記載の装置において、前記インデックス復号器は、前記連想記憶装置の中で置き換えるための追出しデータを選択するために使用される装置。
- 請求項8に記載の装置において、有効性ビットは、連想記憶装置の行が有効性データを格納しているか否かを示す連想記憶装置の各行に関連する装置。
- 請求項8に記載の装置において、前記接続は、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送る装置。
- 請求項8に記載の装置において、ダーティ・ビットは、前記連想記憶装置の行に対応する前記キャッシュ・データが、前記キャッシュ・メモリに書き込まれてから変更されているか否かを示す連想記憶装置の各行に関連する装置。
- 請求項13に記載の装置において、前記接続は、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送る装置。
- 請求項13に記載の装置において、前記データ処理装置は、データ処理命令に応答して、
(i) 対応する連想記憶装置の行に格納された第1のアドレス・データに関連するキャッシュ・データを格納するキャッシュ行を識別し、
(ii)前記連想記憶装置の行の前記第1のアドレス・データの代わりに第2のアドレス・データを格納し、
(iii) 前記キャッシュ・データが前記主記憶装置から除去され、このため前記第1のアドレス・データが示す主記憶装置の位置から前記第2のアドレス・データが示す主記憶装置の位置まで前記キャッシュ・データの転送が実行されると、前記第2のアドレス・データを使用して前記キャッシュ・メモリから前記キャッシュ・データにアクセスすることができ、前記キャッシュ・データは前記第2のアドレス・データが示す主記憶装置の位置へ書き戻されるように、
(iv)前記キャッシュ・データをダーティとマークする、
前記アクセス・モードを使用する装置。 - 請求項7に記載のデータを処理する方法であって、
前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を設けるステップを含み、
を含み、
アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、方法。 - 請求項3と請求項4のいずれかに記載の装置において
前記有効ビットにアクセスできるように前記選択信号を送るための選択可能な接続を含む、装置。 - 請求項5と請求項6のいずれかに記載の装置において
前記ダーティ・ビットにアクセスできるように前記選択信号を送るための選択可能な接続を含む、装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9826970.7A GB9826970D0 (en) | 1998-12-08 | 1998-12-08 | Content addressable memory |
GB9826970.7 | 1999-05-28 | ||
GB9912630.2 | 1999-05-28 | ||
GB9912630A GB2344665B (en) | 1998-12-08 | 1999-05-28 | Cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000200493A JP2000200493A (ja) | 2000-07-18 |
JP4445081B2 true JP4445081B2 (ja) | 2010-04-07 |
Family
ID=26314801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34708799A Expired - Lifetime JP4445081B2 (ja) | 1998-12-08 | 1999-12-07 | キャッシュ・メモリ |
Country Status (3)
Country | Link |
---|---|
US (1) | US6366978B1 (ja) |
JP (1) | JP4445081B2 (ja) |
GB (1) | GB2344665B (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519684B1 (en) * | 1999-11-23 | 2003-02-11 | Motorola, Inc. | Low overhead method for selecting and updating an entry in a cache memory |
US6622267B1 (en) * | 1999-12-08 | 2003-09-16 | Intel Corporation | Method and apparatus for detecting multi-hit errors in cache |
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 |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7301961B1 (en) | 2001-12-27 | 2007-11-27 | Cypress Semiconductor Corportion | Method and apparatus for configuring signal lines according to idle codes |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US6820170B1 (en) * | 2002-06-24 | 2004-11-16 | Applied Micro Circuits Corporation | Context based cache indexing |
US7337275B2 (en) * | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US20040199723A1 (en) * | 2003-04-03 | 2004-10-07 | Shelor Charles F. | Low-power cache and method for operating same |
US7254748B1 (en) | 2003-10-14 | 2007-08-07 | Netlogic Microsystems, Inc. | Error correcting content addressable memory |
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 |
TWI285841B (en) * | 2004-07-16 | 2007-08-21 | Samsung Electronics Co Ltd | Branch target buffer, branch target buffer memory array, branch prediction unit and processor with a function of branch instruction predictions |
US7490080B2 (en) * | 2005-01-28 | 2009-02-10 | International Business Machines Corporation | Method for delivering information with caching based on interest and significance |
US8627007B1 (en) * | 2009-10-28 | 2014-01-07 | Juniper Networks, Inc. | Use of cache to reduce memory bandwidth pressure with processing pipeline |
US8990631B1 (en) | 2011-03-03 | 2015-03-24 | Netlogic Microsystems, Inc. | Packet format for error reporting in a content addressable memory |
US9613699B1 (en) * | 2016-04-22 | 2017-04-04 | Microsoft Technology Licensing, Llc | Memory system with a content addressable superconducting memory |
JP7049338B2 (ja) * | 2016-11-29 | 2022-04-06 | アーム・リミテッド | タグマッチングコマンドに応答する記憶回路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994003856A1 (en) * | 1992-08-07 | 1994-02-17 | Massachusetts Institute Of Technology | Column-associative cache |
US6101573A (en) * | 1998-06-12 | 2000-08-08 | Arm Limited | Bit line and/or match line partitioned content addressable memory |
-
1999
- 1999-05-28 GB GB9912630A patent/GB2344665B/en not_active Expired - Lifetime
- 1999-11-05 US US09/434,491 patent/US6366978B1/en not_active Expired - Lifetime
- 1999-12-07 JP JP34708799A patent/JP4445081B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2344665A (en) | 2000-06-14 |
GB2344665B (en) | 2003-07-30 |
US6366978B1 (en) | 2002-04-02 |
JP2000200493A (ja) | 2000-07-18 |
GB9912630D0 (en) | 1999-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4445081B2 (ja) | キャッシュ・メモリ | |
US5717885A (en) | TLB organization with variable page size mapping and victim-caching | |
US5617348A (en) | Low power data translation circuit and method of operation | |
US5696929A (en) | Flash EEPROM main memory in a computer system | |
US5014195A (en) | Configurable set associative cache with decoded data element enable lines | |
JP3277145B2 (ja) | メモリ・アレイ | |
US5155825A (en) | Page address translation cache replacement algorithm with improved testability | |
JPH05314779A (ja) | 連想メモリセルおよび連想メモリ回路 | |
US6560679B2 (en) | Method and apparatus for reducing power consumption by skipping second accesses to previously accessed cache lines | |
JPH03286495A (ja) | 半導体記憶装置 | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
JP2006190402A (ja) | 半導体装置 | |
JPH11273365A (ja) | 内容呼出し可能メモリ(cam) | |
US5835934A (en) | Method and apparatus of low power cache operation with a tag hit enablement | |
US5367655A (en) | Memory and associated method including an operating mode for simultaneously selecting multiple rows of cells | |
US6219764B1 (en) | Memory paging control method | |
US5761714A (en) | Single-cycle multi-accessible interleaved cache | |
US5550995A (en) | Memory cache with automatic alliased entry invalidation and method of operation | |
US5513143A (en) | Data cache memory internal circuitry for reducing wait states | |
JP3789998B2 (ja) | メモリ内蔵プロセサ | |
JP2716350B2 (ja) | 電子データ記憶システム | |
EP0535701A1 (en) | Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM) | |
US6055606A (en) | Writeback cache cell with a dual ported dirty bit cell and method for operating such a cache cell | |
US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
JP3688736B2 (ja) | データメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090709 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100108 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4445081 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130122 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130122 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |