(57)【特許請求の範囲】
【請求項１】
キャッシュ・メモリを有するデータ処理装置であって、前記キャッシュ・メモリは、
（i） 連想記憶装置の各行が複数の連想ビット記憶セルを含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行と、
（ii）複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
（iii） 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がるヒット線をもつ、複数のヒット線と、
（iv）それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
（v） インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行と追出しキャッシュデータ行とを選択する信号を発生するインデックス復号器において、
（vi）前記選択信号は、前記ヒット線の対応する１つを介して前記キャッシュデータ行に送られる、インデックス復号器と、
を含むデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、連想記憶装置の各行がアクセス信号を立ち上げることができるアクセス・イネーブル線を有し、前記連想記憶装置の行内に格納された連想データ語にアクセスできるようにする複数のアクセス・イネーブル線を含むデータ処理装置。
【請求項３】
請求項１に記載の装置において、有効性ビットは、前記連想記憶装置の行が有効性データを格納しているか否かを示す連想記憶装置の各行に関連する装置。
【請求項４】
請求項３に記載の装置であって、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送るための選択可能な接続を含む装置。
【請求項５】
請求項１に記載の装置において、ダーティ・ビットは、前記連想記憶装置の行に対応する前記キャッシュ・データが、前記キャッシュ・メモリに書き込まれてから変更されているか否かを示す連想記憶装置の各行に関連する装置。
【請求項６】
請求項５に記載の装置であって、前記ダーティ・ビットへのアクセスを可能にする前記ヒット信号を送る選択可能な接続を含む装置。
【請求項７】
キャッシュ・メモリを使用してデータを処理する方法であって、
（i） 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行中に連想データ語を格納するステップと、
（ii）前記複数のビット線上の入力データ語が連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行の対応する連想ビット記憶セルを複数のビット線に接続するステップと
（iii） 前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がるヒット線をもつ、複数のヒット線を設けるステップと
（iv）それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行に対するメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行を設けるステップと
（v） インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行と追出しキャッシュデータ行とを選択する選択信号を発生するインデックス復号器において、
（vi）前記選択信号は、前記ヒット線の対応する１つを介して前記キャッシュデータ行に送られる、インデックス復号器を設けるステップと、
を含む方法。
【請求項８】
請求項１に記載のデータ処理装置であって、更に、
前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を含み、
アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、データ処理装置。
【請求項９】
請求項８に記載の装置であって、インデックス値を復号して、前記アクセス・イネーブル線の１つにアクセス・イネーブル信号を発生するインデックス復号器を含む装置。
【請求項１０】
請求項８に記載の装置において、前記インデックス復号器は、前記連想記憶装置の中で置き換えるための追出しデータを選択するために使用される装置。
【請求項１１】
請求項８に記載の装置において、有効性ビットは、連想記憶装置の行が有効性データを格納しているか否かを示す連想記憶装置の各行に関連する装置。
【請求項１２】
請求項８に記載の装置において、前記接続は、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送る装置。
【請求項１３】
請求項８に記載の装置において、ダーティ・ビットは、前記連想記憶装置の行に対応する前記キャッシュ・データが、前記キャッシュ・メモリに書き込まれてから変更されているか否かを示す連想記憶装置の各行に関連する装置。
【請求項１４】
請求項１３に記載の装置において、前記接続は、前記有効性ビットへのアクセスを可能にする前記ヒット信号を送る装置。
【請求項１５】
請求項１３に記載の装置において、前記データ処理装置は、データ処理命令に応答して、
（i） 対応する連想記憶装置の行に格納された第１のアドレス・データに関連するキャッシュ・データを格納するキャッシュ行を識別し、
（ii）前記連想記憶装置の行の前記第１のアドレス・データの代わりに第２のアドレス・データを格納し、
（iii） 前記キャッシュ・データが前記主記憶装置から除去され、このため前記第１のアドレス・データが示す主記憶装置の位置から前記第２のアドレス・データが示す主記憶装置の位置まで前記キャッシュ・データの転送が実行されると、前記第２のアドレス・データを使用して前記キャッシュ・メモリから前記キャッシュ・データにアクセスすることができ、前記キャッシュ・データは前記第２のアドレス・データが示す主記憶装置の位置へ書き戻されるように、
（iv）前記キャッシュ・データをダーティとマークする、
前記アクセス・モードを使用する装置。
【請求項１６】
請求項７に記載のデータを処理する方法であって、
前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を設けるステップを含み、
を含み、
アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、方法。
【請求項１７】
請求項３と請求項４のいずれかに記載の装置において
前記有効ビットにアクセスできるように前記選択信号を送るための選択可能な接続を含む、装置。
【請求項１８】
請求項５と請求項６のいずれかに記載の装置において
前記ダーティ・ビットにアクセスできるように前記選択信号を送るための選択可能な接続を含む、装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理の分野に関し、より詳細には、キャッシュ・メモリを組み入れたデータ処理システムに関する。
【０００２】
【発明が解決しようとする課題】
連想記憶装置（ＣＡＭ：content addressable memory）と、関連するＲＡＭ記憶装置を組み入れたキャッシュ・メモリは、データ処理システムでは公知である。ＣＡＭは、キャッシュ・メモリ・システム内にタグの記憶装置を設けるために使用できる。ＣＡＭによって、ＣＡＭ内の連想記憶装置の各行に格納された複数の値を並列比較することができる。連想記憶装置の行が、入力データ値と一致する連想データ語（content addressable data word）を格納していると、一致の信号を送る行に対してヒット信号が発生する。このヒット信号は、タグ値が示すメモリ・アドレスをもつデータ値を格納しているキャッシュ・メモリのＲＡＭの、対応するキャッシュ行を選択するために使用される。
【０００３】
キャッシュ・メモリの他の一部は追出しデータ（victim）選択回路であってこの回路は、新しいキャッシュ・データをキャッシュ・メモリに格納する必要があるがキャッシュ・メモリがすでに満杯の場合、どのキャッシュ・データをキャッシュ・メモリから除去すべきかを制御する。ランダム、最近少しも使用されていないデータ、ラウンドロビンなど、各種の追出しデータ選択方法が知られている。
【０００４】
データ処理システムに関する不変の目的は、回路の大きさを小さくすることである。大きさが小さくなると、他の利点が生じるとともに、処理速度が上がり、費用が低減し、電力消費が減少する。
【０００５】
【課題を解決する手段】
１つの態様から見ると、本発明は、以下に示すキャッシュ・メモリ、すなわち、
（i） 連想記憶装置の各行が複数の連想ビット記憶セル（content addressable bit storage cells）を含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行（content addressable storage rows）と、
（ii）複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
（iii） 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がるヒット線をもつ、複数のヒット線と、
（iv）それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
（v） インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行とキャッシュデータ行とを選択する信号を発生するインデックス復号器において、
（vi）前記選択信号は、前記ヒット線の対応する１つを介して前記キャッシュデータ行に送られる、インデックス復号器と、
を含む、キャッシュ・メモリをもつデータ処理装置を提供する。
【０００６】
キャッシュ・メモリ・システムでは、連想記憶装置の各行を横切って走る信号線を設けることは公知である。これらの信号線は、タグ値との一致を示すヒット線、連想記憶装置の行、および対応するキャッシュデータ行への書き込みを可能にする書き込みイネーブル線、および連想記憶装置の行からの読み出しを可能にする読み出しイネーブル線であればよい。ヒット信号または読み出しイネーブル信号のいずれかがキャッシュデータ行を通る必要があるので、通常、ＣＡＭとキャッシュＲＡＭとの間にマルチプレクサを設けて、ＲＡＭに送られるこれらの信号のどちらか１つを選択する。かかるマルチプレクサは、キャッシュ・メモリの最高動作速度を制限するクリティカルパス上にあってもよいが、マルチプレクサが存在すると欠点が生じる。この既存装置の別の欠点は、連想記憶装置の行を横切って通る３本の別々の信号線のため、連想記憶装置の行に対して実現できる最大の大きさが制限されることである。
【０００７】
本発明は、上記２つの課題を認識し、連想記憶装置の行を横切るヒット線を使用して、追い出すキャッシュデータ行に追出しデータ（victim）選択信号を送ることにより、これらの課題の克服を実現する。これによって、連想記憶装置の各行を通る信号線の数を３本から２本に減らすとともに、クリティカルパスからマルチプレクサを除去することができる。
【０００８】
本発明の好適実施例では、連想記憶装置の内容にアクセスすることが、ヒット線のどの信号とも独立している必要があることが望ましい場合、連想記憶装置の内容にアクセスするため連想記憶装置の各行を横切るアクセス・イネーブル線が設けられている。
【０００９】
連想記憶装置は、各行に関連する有効性ビットおよびダーティ・ビットを有しており、この状態では、一致する行に関連する有効性ビットおよびダーティ・ビットのどれかにアクセスすることを可能にするヒット信号を結合するために、選択可能な接続（コネクション）を設けることが望ましい。
【００１０】
別の態様から見ると、本発明は、キャッシュ・メモリを使用してデータを処理する方法、すなわち、
（i） 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行中に連想データ語を格納するステップと、
（ii）前記複数のビット線上の入力データ語が連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行の対応する連想ビット記憶セルを複数のビット線に接続するステップと
（iii） 前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がるヒット線をもつ、複数のヒット線を設けるステップと
（iv）それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行に対するメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行を設けるステップと
（v） インデックス値を復号し、前記キャッシュ・メモリ内で置き換えるために連想記憶装置の行とキャッシュデータ行とを選択する選択信号を発生するインデックス復号器において、
（vi）前記選択信号は、前記ヒット線の対応する１つを介して前記キャッシュデータ行に送られる、インデックス復号器を設けるステップと、
を含む方法を提供する。
【００１１】
本発明は、次に新しい位置から使用されるデータに対し、記憶場所の１つから別の記憶場所へブロック転送が必要な場合に処理速度を上げる、という課題に対処するために使用できる。既存システムでは、データが主記憶装置からプロセッサに読み出され、プロセッサから主記憶装置の新しいアドレスに書き戻され、最終的には、次の使用に用意されている新しい記憶場所に関連するタグをもつキャッシュ・メモリに主記憶装置またはプロセッサから読み戻されることが必要であった。これは比較的低速度の処理である。
【００１２】
別の態様から見ると、本発明は、キャッシュ・メモリ、すなわち、
（i） 連想記憶装置の各行が複数の連想ビット記憶セルを含むとともに連想データ語を格納する役割を果たす、連想記憶装置の複数行と、
（ii）複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを接続する複数のビット線と、
（iii） 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、対応するヒット信号が立ち上がる関連するヒット線をもつ、複数のヒット線と、
（iv）前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線と、
（v） それぞれがキャッシュデータ行を格納する複数のキャッシュデータ行であって、前記連想記憶装置は、前記連想記憶装置のヒット線上に発生したヒット信号が、前記キャッシュ・メモリ内の対応するキャッシュデータ行へのアクセスを可能にするように、対応するキャッシュデータ行のメモリ・アドレスを識別するアドレス・データを格納する役割を果たす、複数のキャッシュデータ行と、
を含み、
（vi）アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間が接続される、
キャッシュ・メモリをもつデータ処理装置を提供する。
【００１３】
ヒット信号線とアクセス・イネーブル信号線との間を接続すると、連想記憶装置に格納されたデータの位置が連想記憶装置の中で判らなくても、そのデータを処理（manipulated）することができる。すなわち、問題のデータ項目を探すために先ず連想記憶装置が検索されてヒット信号を発生することができると、処理のためにアクセスできるように、このヒット信号は連想記憶装置内の関連する行へ転送される。この機能によって、以前には不可能であった方法で、連想記憶装置に格納されたデータを元の場所で処理することができる。かかる処理の一例は、キャッシュ・データがまだキャッシュ・メモリのＲＡＭ内に格納されている間に、キャッシュデータ行に関連するタグ値を修正することである。より詳細には、第１の記憶場所から読み出された語をキャッシュ・メモリに読み込むことができ、連想記憶装置内に格納されているタグ値が見つけられると、このとき何よりも先にタグ値を主記憶装置に書き戻す必要はなく、このタグ値は、関連する第２のメモリ・アドレスを使用して第２の記憶場所とキャッシュ語をキャッシュ・メモリから直接指定するように修正される。そのように修正されたキャッシュ・メモリの行に関連するダーティ・ビットは、キャッシュ・データがキャッシュ・メモリから除去される時にシステムの完全性が維持されるように、そのキャッシュ・データが主記憶装置に書き戻されることを保証するために設定される。
【００１４】
さらに別の態様から見ると、本発明は、キャッシュ・メモリを使用してデータを処理する方法、すなわち、
（i） 連想記憶装置の各行が複数の連想ビット記憶セルを含む、連想記憶装置の複数行の中に連想データ語を格納するステップと、
（ii）複数のビット線上の入力データ語が、接続された連想記憶装置の各行の内容と並列比較されるように、異なる連想記憶装置の行内の対応する連想ビット記憶セルを複数のビット線に接続するステップと
（iii） 複数のビット線であって、前記入力データ語が前記連想記憶装置の行に格納された連想データ語と一致すると、連想記憶装置の各行が、ヒット信号が立ち上がる関連するヒット線をもつ、複数のヒット線を設けるステップと
（iv）前記連想記憶装置の各行が、前記連想記憶装置の行に格納された連想データ語にアクセスすることを可能にするアクセス信号を立ち上げることができる関連するアクセス・イネーブル線をもつ、複数のアクセス・イネーブル線を設けるステップと、
を含み、
（v） アクセス・モードでは、前記ビット線上の入力データ語と前記連想記憶装置の複数行内の前記連想データ語を比較することができて、連想記憶装置の行に対して一致が発生すると、アクセス・イネーブル線でアクセス・イネーブル信号の役割を果たすヒット信号を送ることにより、その行へのアクセスを可能にする前記ヒット信号を発生するように、連想記憶装置の行のヒット線と、その連想記憶装置の行のアクセス・イネーブル線との間を接続する、
方法を提供する。
【００１５】
添付の図面とともに判りやすい実施例に関する以下の詳細な説明を読めば、本発明の上記特徴と利点ならびにその他の目的は明らかであろう。
【００１６】
【発明の実施の形態】
図１は、連想記憶装置のセル２を示す。ビット値は２つのインバータ４、６によって格納される。ゲート用トランジスタ８、１０はインバータ４、６へのアクセスを制御する。アクセス・イネーブル線１２上のアクセス・イネーブル信号、ＲＤ／ＷＲによってゲート用トランジスタ８、１０がオンになると、ビット線１４、１６上のビット値（相補値）は、転送ゲート５、７を介してインバータ４、６へ送られるかインバータ４、６から読み出される。
【００１７】
比較動作中、入力データ語はビット線のペア１４、１６に加えられ、連想記憶装置の各行内で、その行を構成する全インバータ４、６によって格納されたデータ値と並列比較される。各行のヒット線１８は、ハイ（high）にプリチャージされている。ビット線１４、１６の入力と一致するビットがメモリセル２に含まれていないと、トランジスタ２０がオンになり、関連するヒット線１８を放電する。したがって、連想記憶装置の行のどれかが入力データ語に一致するビットのすべての値を格納していると、そのメモリセルのヒット線は、プリチャージされたハイの値を維持するので、このことが一致を示すヒット信号の役割を果たす。行の中に一致しないビットが１つあると、その行に対するヒット線の放電が起こる。連想記憶装置のセル２が、読み出しまたは書き込みのためにアクセスされていない場合は、ビット線１４、１６はともにゼロに駆動される。転送ゲート５、７の１つが動作可能になるが、トランジスタ２０は動作可能にならないのでヒット線１８はプリチャージされた状態を続ける。
【００１８】
図２は、キャッシュ・メモリ・システム２２の第１の実施例を示す。連想記憶装置２４は、キャッシュＲＡＭブロック２８の対応するキャッシュ・メモリ行２６に格納されたデータ値のメモリ・アドレスを示すタグ値を格納する。連想記憶装置の各行は、複数の連想記憶装置のセル２から形成される。図２では、縦方向に非常に大きく拡大して１つの行が模式的に示されている。
【００１９】
行駆動回路（row driver）３０の列は、連想記憶装置２４とキャッシュＲＡＭブロック２８との間に設けられる。残りの１つのヒット信号のどれかがキャッシュＲＡＭブロック２８の行に送られる前に、一致しない行に対応する全ヒット線が後で放電してしまうように、これらの行駆動回路３０は１度に作動する。連想記憶装置２４およびキャッシュＲＡＭブロック２８の各行に関連する有効性ビットおよびダーティ・ビットを格納するビット記憶セル３２のブロックも設けられている。いかなる値がシステムに現れても有効ではない起動時と比べ、有効性ビットは、その行が有効性データを格納していることを示す。キャッシュに入れられた（cached）値が変更され、キャッシュに入れられた値がキャッシュ・システムから除去される時に、その値を主記憶装置に書き戻す必要があることを示すダーティ・ビットは、書き戻しシステムで使用される。
【００２０】
各行は関連するヒット線１８およびアクセス・イネーブル線１２を有する。さらに、有効性／ダーティ・ビット・ブロック３２にアクセスするための有効性／ダーティ・アクセス・イネーブル線３４がある。マルチプレクサ制御装置４４によって制御される複数のスイッチング用（switchable）バッファ３６、３８、４０、４２（たとえば、ＡＮＤゲート）は、ヒット線１８、アクセス・イネーブル線１２、有効性／ダーティ・アクセス・イネーブル線３４およびインデックス復号器４６の出力を相互接続する役割を果たす。マルチプレクサ制御装置４４は入力モード信号 Modeに応答して、所定の入力モードのいずれかで、ゲート３６、３８、４０、４２のどれを開き、どれを閉じるかを選択する。
【００２１】
インデックス復号器４６は、入力インデックス値に応答してこの入力インデックス値を復号し、たとえば追出しデータ選択をするために新しい１組のデータ値を書き込むべき行の１つを選択する。
【００２２】
通常動作の場合、キャッシュ・メモリ・システム２２から読み出しが行われることになっている場合、連想記憶装置２４に仮想アドレス値の一部が加えられ、連想記憶装置の各行に格納されているタグ値と並列比較される。一致すると、その行に対するヒット信号がヒット線１８に発生し、行駆動ブロック３０を介してキャッシュＲＡＭブロック２８に送られる。次にキャッシュＲＡＭブロック２８内のキャッシュ行が読み出される。この動作中、ゲート３６、３８、４０、４２すべてを閉じてもよい。
【００２３】
キャッシュ・記憶場所への書き込みが行われると、連想記憶装置２４内で仮想アドレスに関する同様な比較が行われ、キャッシュＲＡＭブロック２８のキャッシュ行の中で書き込みアクセスを可能にするヒット信号が発生する。このケースでは、マルチプレクサ制御装置４４は書き込みモードに応答してゲート３８を起動し、行に格納されている値が変更されているその行に対してダーティ・ビットを設定するようにヒット信号を送り、しかるべき時に（図示せず）主記憶装置への書き戻しを要求する。
【００２４】
連想記憶装置の行とキャッシュ行に新しい値が書き込まれると、インデックス復号器４６は、（図示せず）追出しデータ発生器（victim selector）回路からの、たとえば、６ビットのランダムな数のインデックス値を使用して、追出しデータの行を選択する。ゲート３６は、追出しデータ選択回路からヒット線１８に追出し信号（victim signal）を送って、対応するキャッシュデータ行へアクセスできるように働く。ゲート４２は、追出しデータ選択信号をアクセス・イネーブル線１２に渡して、ビット線のペア１４、１６の入力データ値が連想記憶装置の行へ書き込まれることを可能にする。ゲート４０は、追出しデータ選択信号を送って有効性ビットを設定し、ダーティ・ビットを所定の状態に戻す。
【００２５】
キャッシュ・クリーンおよびキャッシュ無効化など、キャッシュの維持動作には、とりうる２つの方法がある。
【００２６】
１．仮想アドレスの一部は、連想記憶装置２４に加えられ、連想記憶装置の各行に格納されているタグ値と並列比較される。一致すると、その行のヒット線１８上にヒット信号が発生し、ゲート３８を介して有効性／ダーティ信号線３４に送られる。有効性ビットおよびダーティ・ビットが読み出され、有効およびダーティであれば、ヒット線１８上のその信号は、行駆動ブロック３０を介してキャッシュＲＡＭブロック２８に送られる。次にその行のキャッシュ・データ値が読み出される。有効性ビットおよびダーティ・ビットが適切に書き込まれると、クリーン動作および／または無効化動作が実行されているか否かに依存して、ダーティ・ビットおよび／または有効性ビットをリセットする。
【００２７】
２．行はインデックス復号器４６によって選択される。前と同様、ゲート４０を介して、有効性／ダーティ信号線３４にインデックス選択信号が送られると、有効性ビットおよびダーティ・ビットが読み出される。有効およびダーティであれば、インデックス選択信号は、ゲート３６を介してヒット線に送られ、行駆動ブロック３０を介してキャッシュＲＡＭブロック２８に送られる。次にその行のキャッシュ・データ値が読み出される。有効性ビットおよびダーティ・ビットは、クリーン動作および／または無効化動作のために適切に書き込まれる。
【００２８】
ＣＡＭ読み出し／書き込みやＲＡＭ読み出し／書き込みのような診断モードでは、本システムは以下に説明するモードのいずれかで動作できる。
【００２９】
１．行はインデックス復号器４６によって選択されうる。復号されたインデックス値は、ゲート４０を介して有効性／ダーティ信号線３４に送られ、ゲート４２を介してアクセス・イネーブル信号線１２に送られる。このとき有効性ビットおよびダーティ・ビットと、その行のＣＡＭに保持されているタグとは、読み出しまたは書き込みされうる。
【００３０】
２．行はインデックス復号器４６によって選択される。復号されたインデックス値は、ゲート３６を介してヒット線１８に送られ、行駆動ブロック３０を介してキャッシュＲＡＭブロック２８に送られる。このときキャッシュＲＡＭブロック２８に格納されているキャッシュ・データ語が読み出しまたは書き込みされうる。
【００３１】
図３は、キャッシュ・メモリ・システム２２の第２の実施例を示す。このシステムは、、書き戻しのために用られるＣＡＭ２４から読み出されたタグ値で書き戻しが支援されている統合キャッシュである。
【００３２】
データのブロック転送を実行することが望ましい場合は、以下の方法を使用できる。
【００３３】
１．第１のアドレスＡからラインフィル（linefill）する（アドレスＡからロードすれば、ラインフィルを開始するのに十分である）。
【００３４】
２．書き込まれたばかりの行に対するタグ値を修正するようにコプロセッサ命令を実行し、書き戻しが続いて起こることを保証するため、主記憶装置の第２のアドレスＢを指定して有効性／ダーティ・ブロック３２のキャッシュ行にダーティとマークする。
【００３５】
３．これで新しいデータが第２のアドレスＢに関連するキャッシュ内にあることになるので、この新しいデータを直接使用することができる。自己修正符号のケースでは、符号はキャッシュ内の新しいアドレスで修正されうる。ダーティ・データがキャッシュから除去される時の主記憶装置の完全性は、しかるべき時に外部の主記憶装置に書き戻される「ダーティ」データによって保証される。
【００３６】
本システムの動作は、コプロセッサ命令に応答して、先ず、第１のアドレスＡに一致するタグ値を格納するＣＡＭ２４内で一致する行を見つけることである。一致する行のヒット信号はヒット線１８で立ち上がり、ラッチ４３によってラッチされる。ラッチ４３は、次のクロックサイクルで、その出力でアクセス・イネーブル信号線１２を駆動して、ビット線のペア１４、１６で立ち上がる第２のアドレス値Ｂが、関係のある行のＣＡＭセル２に書き込まれることを可能にする。コプロセッサ命令に応答して実行される動作は、ほぼ５クロックサイクルかかって終了するのが普通である。
【００３７】
この、
１．アドレスＡから８語のラインフィル、
２．タグをアドレスＡからアドレスＢへ変更するコプロセッサ命令、
のシーケンスは、
１．アドレスＡからプロセッサへの８語のロード（８語のラインフィルと等価）、
２．アドレスＢから８語の格納、
３．アドレスＢから８語のラインフィル、
よりも十分に短くかつ速い。
【００３８】
ここに、添付の図面を参照して、本発明の判りやすい実施例を詳細に説明してきたが、本発明はこれらの正確な実施例に限定されず、各種の変更や修正は、添付の特許請求の範囲で定義されているように、本発明の範囲と趣旨を逸脱することなく、当業者によって実行されうることを理解すべきである。
【図面の簡単な説明】
【図１】連想記憶装置のセルを示す図。
【図２】第１の実施例による連想記憶装置を組み込んだキャッシュ・メモリを示す図。
【図３】第２の実施例による連想記憶装置を組み込んだキャッシュ・メモリを示す図。
【符号の説明】
２  メモリ・セル２
４、６  インバータ
５、７  転送ゲート
８、１０  ゲート用トランジスタ
１２  アクセス・イネーブル信号線
１４、１６  ビット線のペア
１８  ヒット信号線
２０  トランジスタ
２２  キャッシュ・メモリ・システム
２４  連想記憶装置
２６  キャッシュ・メモリ行
２８  キャッシュＲＡＭブロック
３０  行駆動ブロック
３２  有効性／ダーティ・ビット・ブロック
３４  有効性／ダーティ信号線
３６、３８、４０、４２  スイッチング・ゲート
４３  ラッチ
４４  マルチプレクサ制御装置
４６  インデックス復号器
【図１】
0004445081.tif 000002
【図２】
0004445081.tif 000003
【図３】
0004445081.tif 000004