明 細 書 キャッシュメモリ装置 技 術 分 野 本発明はマイクロプロセッサ (以下 MPUと称する) 等の情報処理装 置におけるデ一夕の高速読出しに用いられるキヤッシュメモリ装置に関 する。 背 景 技 術 キャッシュメモリ装置は情報処理装置の処理速度向上のため、 広く利 用されている。 このキャッシュメモリ装置に関する技術は、 例えば、 次 のような文献に記載されるものがあった。
文献 1 ; H a r o 1 d S. S t o n e著 「高性能コンピュータ了一キ テクチヤ」 (平 1 — 3 - 3 0) 丸善㈱、 P. 2 3 - 4 2 文献 2 ; 日経エレクトロニクス [ 4 3 4 ] . ( 1 9 8 7 - 1 1 — 1 6 ) 日経 B P社、 P. 1 5 9.- 1 7 4
文献し 2には従来のキャッシュメモリ装置の基本的な構成が示され ている。 従来のキャッシュメモリ装置は、 キャッシュメモリ装置の外部 につけられた外部メモリに比べて、 小容量とすることで高速な動作をす るメモリ (これをキャッシュメモリという) を設け、 このキャッシュメ モリ内に読出し頻度が高いデー夕を格納し、 読出し要求のあつたデ一夕 力、 キャッシュメモリ内にあればキャッシュメモリから要求のデ一夕を 読出すことで高速な読出しを行レ、、 キャッシュメモリ内になければ、 キ
ャッシュメモリ装置に外付けされた外部メモリから要求のデ一夕を読出 すことで通常の読出しを行うものである。 以下に、 そのキャッシュメモ リ装置の具体的な構成とその動作を説明する。
第 2図は従来のキヤッシュメモリ装置の基本的な回路図である。
このキャッシュメモリ装置 5 0は情報処理装置内に設けられる中央処 理装置 (以下、 C P Uという) 等のデータの読出し要求者 1 (以下キヤ ッシュ要求者という) からのキヤッシュアドレス C Aに応じたキヤッシ ュデ一夕 C Dを出力するものであり、 該キャッシュメモリ装置 5 0の内 部回路を制御するコントロール回路 1 0、 小容量高速のランダム ·ァク セス · メモリ (以下、 R AMという) 等で構成されるキャッシュ夕グメ モリ 1 1、 小容量高速の RAM等で構成されるキャッシュデータメモリ
1 2、 及び一致検出回路 1 3を備えている。 キャッシュタグメモリ 1 1 は、 キャッシュデータメモリ 1 2に格納したデ一夕のアドレスの一部を 格納するもので、 アドレス端子 A、 データ入/出力端子 (以下、 I ZO 端子という) D、 コントロール回路 1 0により活性化されるライトイネ —ブル端子 WE、 該コントロール回路 1 0により活性化される端子 VA i及び端子 V A eを有している。 キャッシュデータメモリ 1 2は、 読出 し頻度の高いデータを格納するもので、 アドレス端子 A、 I ZO端子 D、 及びコントロール回路 1 0により活性化されるライトイネーブル端子 W
Eを有している。 一致検出回路 1 3は、 ィネーブル端子 Eが活性化され ると入力される 2つの情報のナ致 Z不一致を検出し、 一致の時にはヒッ P 卜信号 H I Tを出力する回路である。
また、 このキャッシュメモリ装置 5 ひには、 ヒッ ト信号 H I Tにより イネ一ブル端子 Eが活性化されてキヤッシュアドレス C Aを格納するレ ジス夕 1 4と、 ヒッ ト信号 H I Tによりィネーブル端子 Eが活性化され ると I Dバス 2 3上のキヤッシュデータ C Dを格納するレジスタ 1 5と、
コントロール回路 1 0によりカウントイネーブル端子 C Eが活性化され たア ドレス E Aを格納する外部レジス夕 1 6 と、 該コン トロール回路 1 0により制御される 卜ライステートバッファ 1 7, 1 8, 2 0, 2 1 及び ANDゲー卜 1 9と、 I Aバス 2 2と力 \ 設けられている。
キャッシュアドレス CAを格納するレジスタ 1 4の出力側には、 トラ イステートノくッファ 1 7及び I Aバス 2 2を介して、 キャッシュタグメ モリ 1 1及びキヤッシュデータメモリ 1 2の各ァドレス端子 Aがそれぞ れ接続されている。 レジスタ 1 4から、 キャッシュア ドレス C Aの全 ビッ ト数 aが I Aバス 2 2へ出力され、 その全ビッ ト数 aのうちの、 L 0 g2 (全夕グ数) = bがキャッシュタグメモリ 1 1のァ ドレス端子 Aに供給され、 下位 (b + 1 ) (但し、 l =L o g2 (ライン数) ) が キャッシュデータメモリ 1 2のアドレス端子 Aへ供給され、 さらに上位 (a - b - 1 ) がー致検出回路 1 3へ供給される。 キッシュアドレス C Aの上位 ( a— b— 1 ) は、 トライステートバッファ 1 8を介して、 キ ャ ッシュ夕グメモリ 1 1の I 0端子 Dに供給されると共に、 一致検出 回路 1 3へ供給される。 キャッシュタグメモリ 1 1の端子 VA oは、 コ ントロール回路 1 0で制御される ANDゲート 1 9を介して、 一致検出 回路 1 3のィネーブル端子 Eに接続されている。
キャッシュデ一夕メモリ 1 2 I ZO端子 Dは、 I Dバス 2 3に接続 され、 その I Dバス 2 3がレジス夕 1 5の入力側に接続されている。 レ ジス夕 1 4の出力側には、 コントロール回路 1 0によりカウントイネー ブル端子 CEが活性化される外部レジス夕 1 6が接続されている。 外部 レジス夕 1 6は、 端子 CEが活性化されると、 レジスタ 1 4から出力さ れるキヤッシュアドレス C Aの全ビッ ト数 a (-ァドレス E A) を格納 する機能を有し、 その出力側が、 卜ライステートバッファ 2 1を介して I Aバス 2 2に接続されると共に、 大容量低速の RAM等で構成される
外部メモリ 3 0のアドレス端子 Aに接続されている。 外部メモリ 3 0は、 アドレス端子 Aの他に、 データ出力端子 D、 及びキャッシュメモリ装置 5 0をウェイ卜状態 (待ち状態) にするための端子 D— WA I T等を有 し、 該データ出力端子 Dがトライステ一トバッファ 2 1を介して I Dバ ス 2 3に接続されると共に、 該端子 D— W E I Tがコントロール回路 1 0の入力側に接続されている。
第 3図は、 キャッシュタグメモリ 1 1の記憶内容を説明する図である。 キャッシュタグメモリ 1 1は、 アドレス (タグ) T A Gと有効ビッ ト (バリッ ドビッ ト) 等からなる。 タグ T A Gは、 ハードウェア量を減ら すために、 ある程度、 了ドレスをグループ化して付けられている。 この グループ化された数をライン数 (またはブロック数) といい、 了ドレス の近いものをまとめるのが一股的である。 第 3図においては、 1グルー プに 4つのデ一夕としている。 つまり、 キッシュアドレス C Aの下位 2 ビッ トを除く ビッ トが同じもの、 例えば " 0 ··· () " のデ一夕を 1 グルー プとしている。
次に、 第 2図に示すキャッシュメモリ装置 5 0の動作を説明する。 キヤッシュ要求者 1からキヤッシュアドレス C Aが供給されると、 そ れがレジスタ 1 4に一時格納された後、 読出されてそのキヤッシュアド レス C Aに対応するデータがキヤ.ッシュデータメモリ 1 2に格納されて いるか否か (即ち、 ヒッ トか否か) を調べる。 つまり、 レジスタ 1 4か らトライステートバッファ 1 7を介して I Aバス 2 2へ出力され.たキッ シュアドレス C Aと、 キャッシュタグメ乇リ 1 1の内容との一致 Z不一 致が一致検出回路 1 3で検出され、 一致 (以下ヒッ トという) ならば、 該一致検出回路 1 3からヒッ ト信号 H I Tが出力され、 コントロール回 路 1 0に与えられると共に、 レジス夕 1 4, 1 5のイネ一ブル端子 Eに 与えられる。 ヒッ ト信号 H I Tがコントロール回路 1 0に入力されると、
¾.
該コント口一ル回路 1 0の出力によってキャッシュタグメモリ 1 1及び キャ ッシュデータメモリ 1 2の各ライ トイネーブル端子 W Eが活性化さ れ、 キッシュァドレス C Aのうちの下位 (b + 1 ) により指定される該 キャッシュデータメモリ 1 2内のデータが I Dバス 2 3へ読出される。
5 この I Dバス 2 3に読出されたデータは、 レジスタ 1 5からキャッシュ デ一夕 C Dとしてキヤッシュ要求者 1へ出力される。
一方、 キャ ッシュ要求者 1から要求されたキヤッシュアドレス C Aに 対応するデータがキャッシュデータメモリ 1 2内になければ (以下ミス ヒッ 卜という) 、 コントロール回路 1 0の出力によって活性化される外
10 部レジス夕 1 6により、 レジスタ 1 4から出力されたキヤシュアドレス
C Aの全ビッ ト数 a ( E A ) が外部メモリ 3 0のアドレス端子 Aへ送ら れ、 その全ビッ ト数 aに対応した記憶データが該外部メモリ 3 0のデー 夕出力端子 Dから読出される。 この読出されたデータは、 トライステー 卜バッファ 2 1を介してキヤッシュデータメモリ 1 2へ送られて該キヤ
15 ッシュデータメモリ 1 2の内容が更新された後、 I Dバス 2 3及びレジ ス夕 1 5を介してキヤッシュデ一夕 C Dの形でキャッシュ要求者 1へ出 力される。
このように、 ミスヒッ トの場合、 ミスヒッ トしたア ドレスを含む 1 ラ イン分のデータが外部メモリ 3 Qから読出され、 キャッシュ于'一夕メモ 20 リ 1 2の内容が更新される。 ここで、 ミスヒッ トしてからキャッシュデ 一夕メモリ 1 2の内容を更新し、 真のキャッシュデータ C Dをキヤッシ ュ要求者 1へ返す方法には、 従来次のような第 1 , 第 2の方法がある。 ( 1 ) 第 1 の方法
第 4図は第 2図のキヤッシュメモリ装置 5 0の動作を示すタイ ミ ング 25 チャートである。 図中、 m, n + 1 , …はア ドレスを示す。 ミスヒッ 卜ペナルティ時間とは、 ミスヒッ 卜してからキヤッシュデ一夕 C Dが有
効になるまでの時間をいう。
第 4図において、 η+ 1 = "χ— χ 0 (2進数表現) とする。 第 3図に示すように 1ライン 4アドレス分としている。 なお、 外部メモリ 30は、 2サイクルでアクセスできるものとしている。 夕グ TAGには、 バリッ ドビッ 卜を含むが、 1タグデータに対して 1ビッ トしかない。 4 回の書込み (ライト) とも、 タグデータ (= "X…: X" ) を書込むが、 バリッ トビッ トにバリッ 卜情報を書くのは最後の 1回のみである。 第 2 図の外部レジス夕 1 6の下位 2ビッ トは、 カウンタになっており、 ミス ヒッ トによってキャッシュアドレス C Aの値がロードされ、 その下位 2 ビッ トは "ひ 0" にクリアされる。
ミスヒットしてからキャッシュデ一夕メモリ 1 2を更新し、 キヤッシ ュ要求者 1へ真のキヤッシュデータ C Dを返す方法として、 最も単純に 考えられる方法は、 第 4図に示すように、 ミスヒットが発生したら、 こ のァドレスが含まれるラインのうち、 ある決まったァドレスからデータ を読出 (リード) してくるようにすることである。 例えば、 第 4図に示 すように 1ライン 4アドレス分の構成であれば、 "xx—'x O O" , "χ— χθ Γ' , "χ〜χ 1 0" , "χ:… χ 1 1 " という順にデータを 読込む。 この間、 キャッシュデ一夕メモリ 1 2は更新 (書込み) のため に使用されるので、 キヤッシュ 一夕 CDが先に書込まれたとしてもバ リッ ド (有効) にならない。
(2) 第 2の方法
メモリインタリーブ方式やダイナミック RAM (以下、 DRAMとい う) の特性を生かしたアクセス方法 (ページモードゃスタティックカラ 厶等) により、 バースト転送をサポートすることによってミスヒッ ドぺ ナルティ時間を短くすることも考えられる。 その構成例第 5図に示す。 第 6図はキャッシュメモリ装置 5 Iの回路図であり、 第 2図中の要素
と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置 5 1は、 DRAMページモードを使った構 成である。 第 2図のキャッシュメモリ装置 5 1 と基本的に異なる点は、 外部レジス夕 1 6内のカウン夕の出力が加算器 3 5で + 1インクリ メン 卜 (増分) されてセレクタ 3 6に入力し、 そのセレクタ 3 6の出力が該 カウン夕に入力するようになっている点である。 なお、 第 5図の符号 4 0は、 結線状態を示す。
キヤッシュ要求者 1からのキャッシュアドレス C Aは、 タグ TAG、 ラインアドレス LA、 及びライン内アドレス I Aより構成され、 それら がレジスタ 1 4内に最上位ビッ ト (MS B) から最下位ビッ ト (L S B) へ向けて格納される。 そして、 ライン内アドレス I Aと加算器 3 5の出 力とのいずれか一方が、 セレクタ 3 6で選択されて外部レジスタ 1 6内 のカウン夕に入力されるようになっている。 また、 外部メモリ 3 0は、 DRAMで構成され、 それをページモードで動作させるために、 該外部 メモリ 3 0とコントロール回路 1 0との間で、 口一 'アドレス ' スト口 ーブ信号 (以下、 RASN という。 但し、 Nは逆相を表わす) 、 コラム •了ドレス · ストローブ信号 (以下、 CASN とレ、う) 、 及びウェイ ト 信号率のメモリコントロール信号 S 1 0が授受される。
DRAMページモードとは、 R.ASN を " L" レベルのまま CASN パルスを次々 と加えることにより、 高速の読出し 書込み動作を行う乇 ードである。 このモードでは、 RASN の "L" レベル状態でビッ ト線 レベルを "L" レベルあるいは "H" レベル状態にしたまま、 CAS系 の動作を連続的に橾返し、 任意のビッ ト線への書込みあるいは読出しを 行うようになっている。
第 6図は第 5図の動作を示すタイ ミ ングチャートである。 この夕イ ミ ングチャートでは、 1 ライン 4データで構成されている。 CKはクロッ
ク、 nは下位 2ビッ 卜が " 0 " である場合である。
第 5図のキャッシュメモリ装置 5 1では、 要求されたキャッシュァド レス C Aがレジスタ 1 4に格納されると、 そのレジス夕 1 4内のタグ T A Gと、 キャッシュタグメモリ 1 1のデータ出力端子 D 0から読出され たデータとが、 一致検出回路 1 3で一致 Z不一致の検出が行われる。 不 —致のときにはミスヒッ トとなるので、 レジスタ 1 4内のタグ T A Gが 結線 4 0を介して外部レジスタ 1 6に格納され、 その外部レジスタ 1 6 の出力が結線 4 0を介して外部メモリ 3 0のアドレス端子 Aに入力され る。 すると、 メモリコントロール信号 S 1 0により、 ページモードで、 外部メモリ 3 0のデータ端子 Dからデータが高速に読出されてキヤッシ ュデータメモリ 1 2のデータ入力端子 D iに入力され、 該キヤッシュデ —タメモリ 1 2の出力端子 D 0からキャッシュデータ C Dの形で読出さ れる。 これにより、 ミスヒッ トペナルティ時間を短縮できる。
しかしな力 ら、 上記のキャッシュメモリ装置 5 0及び 5 1では各々、 次のような課題があった。
第 2図に示すキャッシュメモリ装置 5 0ではミスヒッ ト時にミスヒッ トしたデ一夕をキャッシュデータメモリ 1 2に書込むための時間が長い ため、 データの読出しにかかるミスヒッ トペナルティ時間が長い。 第 5図に示すキャッシュメモリ.装置 5 1では、 外部メモリ 3 0等を構 成する D R AMの方がバースト転送速度に追いついていないため、 最初 の 1つを読込むまでに数クロックかかる。 最初の 1つを読込んだ後には 第 6図に示すように、 4データ分を読んでくる。
キャッシュメモリ装置 5 1では、 ミスヒッ トを起こしたァドレスの含 まれるラインの次のラインが綜けて必要な場合であっても、 一度バース 卜転送アクセスモードを抜けて、 また新たにミスヒッ トを起こしてライ ンのうちの最初のデータが到達するまで、 無駄な時間を費やしてしまつ
ている。 つまり、 ミスヒッ トしたラインのデ一夕を更新するときに、 そ の後の連続したァドレスのデ一夕がミスヒッ 卜することが分っていても、 必ず一定のラインのデータしか更新しないため、 ヒッ ト率が低下すると いう間題がある。 そのため、 未だ技術的に充分満足のゆくキャッシュメ モリを得ることが困難であった。
本発明は、 前記従来技術が持っていた課題として、 ハードウ ア量を 膨大させることなく ミスヒッ トペナルティ時間が長い、 及びヒッ ト率が 低いといつた点について解決したキヤッシュメモリを提供するものであ る o 発 明 の 開 示 本発明は前記課題を解決するため、 所望のデータに対応するァドレス 情報の上位ァドレス情報を格納する第 1のキャッシュメモリと、 前記上 位ァドレス情報に属する複数の下位ァドレス情報と、 前記複数の下位了 ドレス情報に対応する複数のデータを格納する第 2のキャッシュメモリ と、 入力されるァドレス情報の上位ァドレス情報と前記第 1のキヤッシ ュメモリに格納された上位ァドレス情報とを比較し、 一致を検出する第 1の検出回路と、 前記第 1の一致検出回路の一致検出結果に応答し、 該 第 1の検出回路が不一致を検出した時のみ、 前記入力されたァドレス情 報を取込むとともに、 前記入力されたァドレス情報の上位ァドレス情報 1 2に属する複数のアドレス情報を生成するレジスタと、 前記第 1の一 致検出回路の一致検出結果に応答し、 該第 1の一致検出回路が一致を検 出した時は、 前記第 2のキヤッシュメモリから前記入力されたァドレス 情報に対応するデータを読み出すよう制御し、 該第 1の一致検出回路が 不一致を検出した時は、 前記レジス夕で生成された前記ァドレス情報の
上位ァドレス情報に属する複数のァドレス情報に応じて該ァドレス情報 の上位ァドレス情報を前記第 1のキャッシュメモリに書込むよう制御す るとともに、 該ァドレス情報の下位ァドレス情報及び外部メモリの該ァ ドレス情報に対応する複数のデータを前記第 2のキヤッシュメモリに書 込むよう制御する制御回路と、 前記レジスタが生成したアドレス情報と 前記入力されたァドレス情報の一致を検出する第 2の一致検出回路と、 前記第 1及び第 2の一致検出回路の一致検出結果に応答し、 該第 1の一 致検出回路が一致を検出した時には、 前記第 2のキャッシュメモリから 出力された前記入力されたァドレス情報に対応するデータを出力し、 該 第 2の一致検出回路が一致を検出した時には前記外部メモリから出力さ れた該入力されたァドレス情報に対応するデータを出力し、 該第 1及び 第 2の一致検出回路がともに不一致を検出した時には該入力されたァド レス情報に対応するデータを出力しない出力回路とを設けたことを特徴 とする。 図面の簡単な説明 第 1図は本発明の第 1の実施例を示すキヤッシュメモリ装置の回路図、 第 2図は従来の第 1の実施例を示すキヤッシュメモリ装置の回路図、 第 3図はキャッシュタグメモリの記憶内容を説明する図、 第 4図は第 2図 のキヤツユシメモリ装置の動作を示すタイミングチャート、 第 5図は従 来の第 2の実施例を示すキヤッシュメモリ装置の回路図、 第 6図は第 5 図のキヤッシュメモリ装置の動作を示すタイミングチヤ一ト、 第 7図は 第 1図のキヤッシュメモリ装置の動作を示すタイミングチヤ一ト、 第 8 図は本発明の第 2の実施例を示すキャッシュメモリ装置の回路図、 第 9 図は第 8図のキャッシュメモリ装置の動作を示すタイミングチャート、
第 1 0図は本発明の第 3の実施例を示すキャッシュメモリ装置の回路図、 第 1 1図は第 1 0図のキヤッシュメモリ装置の動作を示すタイミングチ ャ一ト、 第 1 2図は本発明の第 4の実施例を示すキヤッシュメモリ装置 の回路図、 第 1 3図は第 1 2図のキャッシュメモリ装置の動作を示す夕 ィミングチヤ一卜、 第 1 4図は本発明の第 5の実施例を示すキヤッシュ メモリ装置の回路図、 第 1 5図は第 1 4図のキャッシュメモリ装置の動 作を示すタイミングチャート、 第 1 6図は本発明の第 6の実施例を示す キャッシュメモリ装置の回路図、 第 1 7図は第 1 6図のキャッシュメモ リ装置の動作を示すタイミングチャートである。 発明を実施するための最良の形態 第 1図は本発明の第 1の実施例を示すキヤッシュメモリ装置の回路図 である。
このキャッシュメモリ装置 1 0 0は第 2図に示したキャッシュメモリ 装置 5 0において、 一致検出回路 1 5 0と O Rゲート 1 5 1 とが付加さ れている。 一致検出回路 1 5 0はミスヒッ 卜によるキヤッシュデ一タメ モリの更新時に、 コントロール回路 1 1 0の出力信号によって、 イネ一 ブル端子 Eが活性化されて動作する。 一致検出回路 1 5 0はレジス夕 1 1 4からのキャッシュアドレス C Aの全ビッ ト数 aと、 外部メモリ 1 3 0からキヤシュデ一夕メモリ 1 1 2へデータを書込むァドレス (全 ビッ ト数 a ) との一致を検出する機能を有する。 O Rゲート 1 5 1は、 一致検出回路 1 5 0の出力と、 一致検出回路 1 1 3から出力されるタグ ヒッ ト信号 T A G · H I Tとの論理和を求め、 該一致検出回路 1 5 0の 検出結果が一致のときにレジスタ 1 1 5のィネーブル端子 Eを活性化す る機能を有している。
コントロール回路 1 1 0は、 一致検出回路 1 1 3からタグヒッ ト信号 TAG■ H I Tを入力すると、 キヤッシュ更新信号 S 1 0 aを出力して トライステートバッファ 1 20, 1 2 1をオン状態にし、 外部メモリ 1 3 0のデータ出力端子 Dから出力された読出しデータを、 I Dバス 1 23へ出力させる。 I Dバス 1 23上に出力された読出しデータは、 ORゲート 1 5 1によってイネ一ブル状態となったレジスタ 1 1 5に取 込まれ、 キヤッシュデータ CDとしてキヤッシュ要求者 1へ返される。 つまり、 ORゲート 1 5 1は、 ミスヒッ トによるキャッシュ更新時に、 一致検出回路 1 50の検出結果が一致であれば、 外部メモリ 1 30から 読出されたデータをバイパスして、 キャッシュ要求者 1に対してもキヤ ッシュデ一夕 CDとして出力する機能を有している。
次に、 第 1図に示すキャッシュメモリ装置 1 00の動作を第 6図を参 照しつつ説明する。
第 6図は、 第 1図のキャッシュメモリ装置 200の動作を示すタイミ ングチャートである。 この第 6図において、 n+l= "x〜x0 1"、 n + 4= "Y— Y 00 " とする。 そして、 1ライン 4アドレス分として いる。 なお、 外部メモリ 1 30は、 バースト転送により、 連続アドレス なら、 最初のみ 1ゥヱイ卜で読めるものとしている。 ノくリツ ドビッ トは、 最後の書込みで 1が書かれる。 ま.た、 外部レジスタ 1 1 6の下位 2ビッ トは、 カウントイネ一ブル端子 CEにより活性化されるカウンタになつ ている。
第 1図において、 キヤッシュ要求者 1から必要なデータのキヤッシュ 了ドレス C Αが供給されると、 そのキヤッシュアドレス C Aがレジスタ 1 1 4に書込まれる。 キャッシュ更新状態でなければ、 コントロール回 路 1 1 0から出力されるキャッシュ更新信号 S 1 0 aによってトライス テートバッファ 1 1 7がオン状態となっているので、 レジスタ 1 1 4に
齊込まれたキヤッシュアドレス C Aが I Aバス 1 2 2へ送られる。 キヤ ッシュデータメモリ 1 1 2は、 I Aバス 1 2 2上のァドレスのうち、 特 定されるタグとラインのァドレス、 例えば下位 (b + 1 ) をァドレス端 子 Aで受け取り、 そのァドレスで指定された記憶データを I / 0端子 D より I Dバス 1 2 3へ出力する。
同時に、 キャッシュデータメモリ 1 1 2に格納されているデータが、 要求されたキヤッシュアドレス C Aのものかを検証するために、 特定さ れる夕グのァドレス L 0 g 2 (全夕グ数) = bに対するキャッシユタグ メモリ 1 1 1の記憶データが I Z〇端子 Dより読出され、 一致検出回路 1 1 3により、 与えられたタグとの一致 不一致の検出が行われる。 こ の結果は、 キャッシュデ一夕メモリ 1 1 2力 リード状態 (キャッシュ更 新状態ではない) で、 かつキャッシュタグメモリ 1 1 1の端子 V A oに よって示される該キャッシュタグメモリ 1 1 1の内容が有効であれば、 A N Dゲ一卜 1 2 4を介してィネーブル状態となった一致検出回路 1 1 3による一致検出の結果が有効であり、 該ー ¾検出回路 1 1 3からタグ ヒッ ト信号 T A G · H I Tが出力されてコントロール回路 1 1 0へ供給 される。
このとき、 一致検出回路 1 1 3の検出結果が一致であれば、 I Dバス 1 2 3の内容が有効であることを示すため、 夕グヒッ ト信号 T A G · H I Tが O Rゲート 1 5 1を通して生成されたヒッ ド信号 H I Tをキヤッ シュ要求者 1へ返すと共に、 該ヒッ ト信号 H I Tによってレジスタ 1 1 5への書込みを有効にする。 さらに次のキヤッシュ要求者 1からのキヤ ッシュアドレス C Aを受け取るため、 レジス夕 1 1 4への書込みをも有 効にする。 これに対し、 一致検出回路 1 1 3から出力されるタグヒッ ト 信号 T A G · H I Tが不一致状態を示すときには、 ミスヒッ トとなり、 次のサィクルから、 キャッシュデ一夕メモリ 1 1 2がキャッシュ更新状
態に入る。
キャッシュデータメモリ 1 1 2が更新状態に入ると、 コントロール回 路 1 1 0は、 外部メモリ 1 3 0からのデータの取り込みを可能にする ため、 キャッシュ更斩信号 S I 0 aによって卜ライステートバッファ 1 2 0 , 1 2 Iをオン状態にすると共に、 I Aバス 1 2 2へのアドレス 供給源である外部レジスタ i 1 6のカウントイネーブル端子 C Eを活性 化し、 I Dバス 1 2 3への読出しデータ供給源を外部メモリ 1 3 0にす る。 外部レジス夕 1 1 6の内容は、 ミスヒッ ト時には必ず書き換えられ このとき、 外部読出しデータが有効なタイミングであることを示す外 部メモリ 1 3 0の端子 D— WA I T力 " L " レベルとなり、 コントロー ル回路 1 1 0から出力されるキャッシュ更斩信号 S I 0 aが " H " レ ベルであるので、 該コントロール回路 1 1 0はキャッシュ夕グメモリ 1 1 1及びキヤッシュデ一夕メモリ 1 1 2の各ライ トイネーブル端子 WEを所定の周期で活性化する。 外部レジスタ 1 1 6の下位 2ビッ トは カウンタになっているので、 キャッシュタグメモリ 1 1 1及'びキヤッシ ュデータメモリ 1 1 2の各ライトイネーブル端子 WEが活性化されると きに、 該外部レジスタ 1 1 6のカウントイネ一ブル端子 C Eも活性化さ れて該カウン夕がカウントアップ.する。
これが n回 (例えば 4回) 繰り返され、 ミスヒッ トしたラインァドレ スのデ一夕が全て書き換えられる。 これにより、 外部メモリ 1 3 0のデ ータ出力端子 Dよりデータを読出し、 その読出されたデータがトライス テートバッファ 1 2 1を介してキヤッシュデータメモリ 1 1 2の I ZO 端子 Dへ送られ、 キャッシュ更新が行われる。 また、 コント口一ル回路 1 1 0は、 4回目にのみ有効であることをキャッシュタグメモリ 1 1 1 の端子 V A〖に書込む。 以上のキャッシュ更新動作は、 従来の第 2図の
キャッシュメモリ装置 5 0 と同様である。
本実施例の特徴は、 前記のキャッシュ更新動作に加えて、 キャッシュ データ更新中に、 キャッシュデータメモリ 1 1 2への書込みデータを、 キヤッシュ要求者 1から要求されれば、 それをバイパスして渡すように している。 つまり、 キャッシュ更新状態時に、 コントロール回路 1 1 0 の出力によって一致検出回路 1 5 0がィネーブル状態となり、 該一致検 出回路 1 5 0により、 レジス夕 1 1 4の内容と外部レジスタ 1 1 6の内 容との一致/不一致を検出する。 この検出結果と、 一致検出回路 1 1 3 から出力された夕グヒッ ト信号 T A G · H I Tとが、 O Rゲ一ト 1 5 1 で論理和が取られ、 ヒッ ト信号 H I Tが生成されてキャッシュ要求者 1 へ返されると共に、 レジスタ 1 1 5がイネ一ブルとなり、 外部メモリ 1 3 0から I Dバス 1 2 3へ読出されたデ一タカ キヤッシュ要求者 1 へ出力される。
これを、 笫 7図によって説明するとクロック 2においてキヤッシュア ドレス C Aの n + 1がミスヒッ トし、 キャッシュメモリ装置 1 0 0はキ ャッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2の更新動 作に入る。 この時、 信号 T A G— H I Tは一致検出回路 1 1 3の一致検 出結果が不一致を示す " L " 状態となる。 クロック 3においてコント口 ール回路 1 1 0は、 この信号 T A .G— H I Tの状態に応答して一致検出 回路 1 5 0及び外部レジス夕 1 1 6をイネ一ブル状態にかつ、 キヤッシ ュ夕グメモリ 1 1 1及びキヤッシュデ一夕メモリ 1 1 2をライ トイネー ブル状態にする。 外部レジス夕 1 1 6には、 キャッシュア ドレス C A ( " x x 0 1 " ) がそのまま取り込まれる。 一致検出回路 1 5 0には キャッシュア ドレス C Aと外部レジス夕 1 1 6に取込まれたキヤッシュ アドレスに基づく、 アドレスデータ 9 E Aが入力される。 ここで、 外部 レジス夕 1 1 6の下位 2 ビッ トはカウン夕になっており、 ァドレスデ一
夕 E Aはキヤッシュメモリ i 1 1 , 1 1 2への 1ライン分の書込みに応 じて 1づっカウントアツプするためクロック 4ではァドレスデータ E A は " x x 0 である力、 続くクロック 5, 6, 7にはそれぞれ " X -X 1 0 " , "x〜x 1 1 " , "X:… X 0 0 " と変化する。 よって、 一 致検出回路 1 5 0のキヤッシュアドレス C Aとァドレスデータ E Aとの —致検出結果はクロック 4で一致となる。 'このため、 一致検出回路はレ ジス夕 1 1 4, 1 1 5をイネ一ブルとする。 外部メモリ 1 3 0は外部レ ジスタ 1 1 6で生成されたアドレスデータ E A "x〜x O 1 " に基づく データを出力する。 このデータは、 レジスタ 1 1 5を介してキャッシュ データ CDとして、 キャッシュ要求者 1 0 1に渡すとともにキャッシュ データメモリ 1 1 2にも更新書込みされる。 また、 キャッシュ要求者 1 0 1はレジスタ 1 1 4がイネ一ブルとなっているので、 次のキヤッシ ユアドレス C Aとして n+2 ( "x〜x 1 0" ) を送る。 クロック 5に おいて、 キヤッシュメモリ装置 1 0 0は n+ 1を含むラインのキヤッシ ュデ一夕の更新を行っており、 外部レジス夕 1 1 6によって、 生成され たアドレスデータ "x-x 1 0" に対応するデータをキャッシュデータ メモリ 1 1 2に更新書込みしている。 ここで、 レジス夕 1 1 4には n + 2が格納されており、 キャッシュタグメモリ 1 1 1にはまだタグ " x〜 X" が更新書込みされていない で、 一致検出回路 1 1 3は不一致とな るが、 一致検出回路 1 5 0及び外部レジスタ 1 1 &はィネーブル状態を 保っため、 キャッシュァドレス CAの n + 2が一致検出回路 1 5 0へ入 力される。 この時、 一致検出回路 1 5 0はもう一方の入力として、 n + 2と同じァドレスデータを入力しているので一致を検出し、 レジスタ 1 1 4, 1 1 5をィネーブル状態に保つ。 なお、 キャッシュ要求者 1 0 1が要求したキヤッシュアドレス C Aが n十 2に対応するデ一夕はキヤ ッシュデータメモリ 1 1 2への書込みとともに、 レジスタ 1 1 5を介し
てキャッシュ要求者 1 0 1へ渡たされている。 また、 キャッシュ要求者 はレジスタ 1 1 4がイネ一ブル状態なので次のキャッシュデータ C Aと して n + 3 ( "x-x 1 1 " ) を送る。 n + 3は nと n + 2の関係と同 様に n + 2に連続するァドレスデ一夕なので、 クロック 6においてクロ ック 5と同様な作業がされる。 ただし、 クロック 7においてキャッシュ データ CAとして n + 4 ( "Y〜Y 0 0 " )' が入力される。 n + 4はキ ャッシュ夕グメモリ 1 1 1内に格納されたタグと一致になるとともに、 外部レジス夕 1 1 6で生成されたタグ "ズ… " に対する 4回目の書込 みをするためのアドレスデータ "x〜x 0 0 " とも不一致となるので、 レジスタ 1 1 4, 1 1 5のィネーブル状態は解除される。 但し、 この時 既に外部レジス夕 1 1 6から、 外部メモリ 1 3 0へはァドレスデータ E Aとして "χ···χ 0 0 " が送られ、 キャッシュデータメモリ 1 1 2及び レジスタ 1 1 5へはァドレスデ一夕 "χ···χ 0 0 " に対するデ一夕が送 られているので、 キヤッシュデータ CDとして "x〜x 0 0" に対する データが要求者 1 0 1へはレジスタ 1 1 5を介して送られている。 また、 " X… X " のキャッシュタグメモリ 1 1 1への書込みもクロック 7の夕 ィ ミ ングで行っている。 クロック 8ではクロック 2と同様な作業を行い、 ここでまた、 タグの不一致が生ずると、 クロック 9以降は前述と同様な 更新作業に入る。 .
第 2の実施例
本発叨の第 1の実施例のキャッシュメモリ装置 1 0 0において、 キヤ ッシュ要求者 1から、 ゥヱイ ト要求があった時に、 キャッシュデータ更 新動作を待ち状態とすることを可能としたのが第 8図に示すキャッシュ データメモリ装置 2 0 0である。 第 8図はキャッシュメモリ装置 2 0 0 の回路図である。 第 1の実施例のキヤッシュメモリ装置 1 0 0に对して キャッシュメモリ装置 2 0 0には、 3つの ANDゲ一卜 2 0 1 , 2 0 2,
2 0 3が付加されている。 A N Dゲート 2 0 1はキャッシュ要求者 1力、 らのウェイト要求伏態を示す信号をコントロール回路 1 1 0からの出力 信号との論理積をとつて、 その結果をキャッシュタグメモリ 1 1 1及び キャッシュデータメモリ 1 1 2の各ライ トイネ一ブル端子 WEに入力す る。 つまり、 AN Dゲート 2 0 1はキャッシュ要求者 1がゥヱイト要求 しておらず、 かつ、 キャッシュタグメモリ 1 1 1及びキャッシュデータ メモリ 1 1 2へ書込み要求が出された時に、 キャッシュタグメモリ 1 1 1及びキャッシュデ一夕メモリ 1 1 2のライトイネーブル端子 WEを活 性化する。 A N Dゲート 2 0 2は、 キャッシュ要求者 1からのゥヱイト 要求状態を示す信号とコントロール回路 1 1 0からの出力信号との論理 積をとつてその結果を、 外部レジスタ 1 1 6のカウントイネ一ブル端子 C Eに入力する。 つまり、 A N Dゲート 2 0 1はキヤッシュ要求者 1が ウェイト要求しておらず、 かつ、 外部レジスタ 1 1 6のカウントを " Γ' だけ加算する要求が出された時に、 外部レジスタ 1 1 6のカウントイネ —ブル端子 C Eを活性化する。 AN Dゲート 2 0 3はキャッシュ要求者 1からのウェイ ト要求状態を示す信号と O Rゲート 1 5 1の出力信号 (キャッシュデータの H I T状態を示す信号) との論理積をとつて、 そ の結果をレジス夕 1 1 4 , 1 1 5のイネ一ブル端子 Eに入力する。 つま り、 A N Dゲート 2 0 3は、 キヤ.ッシュ要求者 1がウェイ ト要求してお らず、 かつ、 キャッシュ了ドレス C Aとキャッシュタグメモリ 1 1 1内 のタグと一致した時か、 キャッシュアドレス C Aと外部レジスタ 1 1 6 のデータが一致した時に、 レジスタ 1 1 4 , 1 1 5のイネ一ブル端子 E を活 1生化する。 従って、 キャッシュ要求者 1がウェイ ト要求をすること により、 キャッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2へのデータの書込み、 外部レジスタ 1 1 6の外部メモリ 1 3 0からの 読出しが要求されたデータァドレスの出力、 キヤッシュデータ C Dのレ
ジス夕 1 1 5への格納が禁止され、 キャッシュメモリ装置 2 0 0のキヤ ッシュデータの更新処理全体が待ち状態となる。
次に、 第 8図に示すキャッシュメモリ装置 2 0 0の動作を第 9図で説 明する。 第 9図は第 8図のキヤッシュメモリ装置 2 0 0の動作を示すタ イミ ングチャートである。
第 9図において、 キヤッシュ要求者 1がゥヱイ ト要求をしているク口 ック 2〜4の間はレジスタ 1 1 4, 1 1 5は不活性化となり、 それぞれ、 キャッシュアドレス C A = n + 1、 キャッシュデータ C D = mを格納し たままである。 また、 外部レジスタ 1 1 6も n + 1を格納したままであ る。 さらに、 キヤシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2の各ライ トイネーブル端子 W Eは " L " レベルのままで活性化さ れない。
第 3の実施例
本発明の第 1の実施例のキャッシュメモリ装置 1 0 0において、 キヤ ッシュデータの更新時にキヤッシュ要求者 1からウェイ 卜の要求が生じ た場合にも、 キャッシュデータの更新を行う力、 ウェイ ト状態の時に更 新されたデータに対しても容易にアクセスできるようにしたのが、 第 1 0図に示す第 3の実施例のキヤッシュメモリ装置 3 0 0である。 第 1 0図は第 3の実施例のキヤッシ メモリ装置 3 0 0の回路図である。 第 1の実施例のキヤッシュメモリ装置 1 0 0に対して、 キャッシュメモ リ装置 3 0 0は複数個のバッファ 3 0 1 , バッファ 3 0 1に対応して設 けられた複数個の一致検出回路 3 0 2、 バッファ 3 0 1に対応して設け られた複数個のトライステートバッファ 3 0 4、 トライステ一トノくッフ ァ 3 2 し A N Dゲート 3 0 3、 O Rゲート 3 0 5と 3 5 1が設けられ ている。 レジスタ 3 0 1各々は外部メモリ 1 3 0から読出されたァドレ ス、 データ及びコントロール回路 1 1 0から出力される信号であるバリ
ッ トフラグが 1セッ 卜で格納されている。 このコントロール回路 1 1 0 から出力される信号がイネ一ブル端子 Eに入力することによって、 バッ ファ 3 0 1は活性化する。 本実施例においてバッファ 3 0 1は 3つ (バ ッファ 0 , I, 2 ) 用意されている。 これは 1ライン 4アドレスで、 キ ャッシュデ一夕の更新は 1ライン分行うことから、 更新に充分適用でき る数としたためで、 3つに限るものではない。 一致検出回路 3 0 2もバ ッファ 3 0 1に対応して 3つ用意され、 対応するバッファ 3 0 1からの バリッ 卜フラグ信号 Vに応じて活性化し、 レジスタ 1 1 4から出力され たキヤッシュアドレス C Aとノくッファ 3 0 1に格納されたァドレスとの 一致検出を行う。 一致検出の結果、 各一致検出回路 3 0 2に出力は、 そ れぞれ対応するトライステートバッファ 3 0 4の動作制御を行うととも に、 O Rゲート 3 0 5に入力される。 O Rゲ一ト 3 0 5は、 各一致検出 回路 3 0 2の論理和をとり、 その結果信号を O Rゲート 3 5 1に入力す るとともに、 その結果信号の反転信号にてトライステートバッファ 3 2 1の動作制御を行う。 トライステ一トバッファ 3 0 4は一致検出回路 3 0 2に対応して 3つ用意され、 各対応する一致検出回路 3 0 2の一致検 出の結果に応じて、 各対応する。
バッファ 3 0 1に格納されたデータを I Dバス 1 2 3にそれぞれ出力 する。 トライステ一卜バッファ 3.2 1は O Rゲ一ト 3 0 5の出力の反転 信号に応じて、 外部メモリ 1 3 0に格納されたデータを I Dバス 1 2 3 に出力する。 O Rゲート 3 5 1は入力として〇Rゲート 3 0 5の出力の 他に、 一致検出回路 1 1 3及び 1 5 0の一致検出結果が入力される 3入 力 O Rゲートである。 この 3つの信号の論理和をとつて、 その結果の出 力は A N Dゲ一ト 3 0 3の入力となる。 A NDゲ一ト 3 0 3にはキヤッ シュ要求者〖からのゥヱイト信号 W E I Tも入力され、 論和積の結果を レジスタ 1 1 4 , 1 1 5をそれぞれのィネーブル端子 Eに入力する。
次に、 第 1 0図に示すキヤッシュメモリ装置 3 0 0の動作を第 1 1図 にて説明する。 第 1 1図は、 第 1 0図のキヤッシュメモリ装置 3 0 0の 動作を示すタイ ミ ングチヤ一卜である。
第 1 1図において、 クロック 2において、 ミスヒッ ト (タグ H I丁が " 0 " ) となり、 キャッシュメモリ装置 3 0 0はキャッシュデータの更 新作業を開始する。 しかし、 クロック 2において、 キャッシュ要求者 1 がゥヱイ 卜状態となっている。 第 2の実施例ではゥヱイ ト状態の間はキ ャッシュデータ更新作業は行われなかったが、 この第 3の実施例におい ては、 ウェイ ト状態中のクロック 4にて、 外部メモリ 1 3 0データが出 力されると、 キャッシュデータメモリ 1 1 2へそのデータが書込まれる 。 これと同時に、 そのデータはトライステートバッファ 3 2 1を介して レジス夕 1 1 5に入力される。 クロック 4においてはキヤッシュ要求者 1はまだウェイ ト状態のため、 レジスタ 1 1 5に入力されたキャッシュ データを受け取れない。 ただし、 クロック 4において、 コントロール回 路 1 1 0からの出力信号によってレジス夕 3 0 1の 1つを活性化して外 部メモリ 1 3 0からの出力であるァドレスと、 そのァドレスに対応する データをバッファ 3 0 1 (例えばバッファ 0 ) に格納する。 この時、 レ ジス夕 3 0 1 (バッファ 0 ) にはァドレス及び、 そのァドレスに対応す るデータの他に、 コントロール回.路 1 1 0からの出力信号によって、 ノく リ ッ トフラグがバリ ッ ト (有効) になる。 クロック 5において、 キヤッ シュ要求者は再びクロック 4 と同じアドレスを要求する。 この時、 クロ ック 4の際、 レジス夕 3 0 1 に要求するァドレスとデータが格納されて いるため、 複数の一致検出回路 3 0 2のうち 1つは一致を検出するので、 O Rゲ一卜 3 0 5を介して卜ライステ一トバッファ 3 2 1を非動作状態 とし、 卜ライステートバッファ 3 0 4を介して、 レジスタ 3 0 1 (バッ ファ 0 ) から I Dバス 1 2 3に要求するァドレスのデ一夕を出力する。
なお、 この時、 キャッシュデータメモリ 1 1 2には、 次のアドレスに対 応するデータが書込まれて、 バッファ 3 0 1 (例えばバッファ 1 ) にも 同様のアドレス、 データが書込まれる。 この様にして、 以降も、 キヤッ シュ要求者 1からのアドレスとキャッシュデ一夕メモリ 1 1 2への書込 みのタイミングがずれているにもかかわらず、 ノくッファ 3 0 1 (例えば ノくッファ し 2 ) からキャッシュデータ C Dがキャッシュ要求者 1に出 力される。
第 4の実施例
第 3の実施例において、 必要と思われる時だけバッファ 3 0 1にァド レス、 データを書込むようにしたのが、 第 1 2図に示す第 4の実施例の キャッシュメモリ装置 4 0 0である。 第 1 2図はキャッシュメモリ装置 4 0 0の回路図である。
第 3の実施例のキヤッシュメモリ装 3 0 0に対して、 キャッシュメモ リ装置 4 0 0はバッファリング監視回路 4 0 1が付加されている。 バッ フアリング監視回路 4 0 1はキヤッシュ要求者 1がウェイト状態の時に 更新するキヤシュデータがバッファ 3 0 1に格納すべきデータか否かを チヱックし、 所定の格納先のバッファ 3 0 1 (第 1 2図ではバッファ 3 0 1は 2つしか示されていないので、 ノ ッファ 0あるいはバッファ 1 ) に格納するとともに、 不要になつ.たバッファ 3 0 Iのデータを無効にす るものである。 ノくッファリング監視回路 4 ひ 1はウェイト信号 WA I T、 各一致検出回路 1 5 0、 3 0 2の出力信号 (検出.結果) 、 外部レジス夕 1 1 6の出力、 及びコントロール回路 1 1 0のキヤッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2のライトイネーブル端子を活 性化する出力信号が入力され、 バッファ 3 0 1を活性化^"る信号及びバ ッファ 3 0 1に格納されたデータの有効性を示すハリッ ドフラグを出力 する。
次に、 第 1 2図に示すキヤッシュメモリ装置 4 0 0の動作を第 1 3図 にて説明する。 第 1 3図は第 1 2図のキヤッシュメモリ装置 4 0 0の動 作を示すタイミングチヤ一トである。
くッフアリング監視回路 4 0 1は、 ッファ 3 0 1 (バッファ 0と 1 ) にデータを格納する条件及び格納したデータを無効にする条件を例えば、 次のようにしている。
① バッファ 0に格納する条件
"キヤッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ トが 0 "
かつ
"バッファ 0自身に格納されたデータが無効"
かつ
"バイパス H I丁で、 キャッシュ要求者 1がウェイ ト状態であるか、 ファ 1が H I Tでキヤ シュ要求者 1がウェイ 卜状態である。 " ② バッファ 1 に格納する条件
"キヤッシュデ一夕メモリへの書込みをしているデータのァドレスの 下位 1 ビッ トが
かつ
"バッファ 1 自身に格納された.データが無効"
かつ
"バイパス H I Tで、 キャッシュ要求者 1がゥヱイ 卜状態である力、、 ッファ 0が H ΓΤでキャッシュ要求者 1がウェイ ト状態である。 " ③ バッファ 0に格納したデータを無効にする条件
"キャッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ 卜が 0 "
かつ
"バイパス H I Tかバッファ 0 H I Tでともにキヤッシュ要求者 1が ウェイト状態でない"
④ バッファ 1に格納したデータを無効にする条件
"キヤッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ 卜が 1 "
- かつ
"バイパス H I Tかバッファ 1 H I Tでともにキヤッシュ要求者 1が ウェイ 卜伏態でない。 "
クロック 2において、 ミスヒットが発生し、 キャッシュデータメモリ 1 1 2の更新が行われるが、 クロック 4において、 外部メモリ 1 3 0か らデ一夕が読出される I Dバス 1 2 3にデータ n + 1が生ずる (バイパ ス H I T状態) 。 クロック 4ではキヤッシュ要求者 1.はゥヱイト状態で ある。 また、 ァドレスデ一夕 n + 1の下位 1 ビッ トが、 例えば " 0 " な らば、 前記①の条件を満たすため、 バッファ 0にデータ n + 1が書込ま れる。 クロック 5ではバッファ 0の H I Tが発生するが、 この時はまだ、 キャッシュ要求者 1はウェイ卜状態のため、 バッファ 0のデ一夕は無効 にならない。 しかし、 ②の条件が満たされるため (データ n + 1の下位 1 ビッ トを " 0 " としたのでそれに続くデータ n + 2の下位 1 ビッ トは " 1 " ) 、 バッファ 1にデータ r h 2が書込まれる。 このようにして、 前記①〜④の条件を満たす場合に、 新たな書込みやデータの無効を行つ ていく。
第 5の実施例
第 1 4図は、 本発明の第 5の実施例を示すキヤッシュメモリ装置 5 0 0の回路図であり、 第 1図のキヤッシュメモリ装置 1 0 0中の要素 と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置 5 0 0は、 第 5図のキャッシュメモリ装置
5 1 と同様に、 M P U等の命合発生部に設けられる命令キヤッシュメモ リとして動作するもので、 キヤッシュ更新時においてキヤッシュメモリ がウェイ 卜状態のときにミスヒッ トしたラインァドレスに続く次のライ ンア ドレスもミスヒッ 卜するか否かを判定するミスヒッ ト判定手段 5 6 0と、 キャッシュ更新中に新たに読んできたデータ (命令) が必要 とされるか否か (例えば、 分岐命令があるか否か) を判別する必要性判 別手段 5 7 0と、 次のラインアドレスもミスヒッ トであってその内容が 必要とされるならば (分岐命令がなければ) 、 続けて次のラインァドレ スも更新する更新手段 5 8 0と A N Dゲート 5 7 4力 付加されてい る。
ミスヒッ ト判定手段 5 6 0は、 レジス夕 1 1 4の出力側に設けられた セレクタ 5 6 1 と、 該セレクタ 5 6 1の出力を + 1インクリメントする 加算器 5 6 2と、 該加算器 5 6 2の出力によって内容が書き換えられて セレクタ 5 6 1へ出力するレジスタ 5 6 3とで、 構成されている。 必要 性判別手段 5 7 0は、 外部メモリ 1 3 0のデータ出力端子 Dから読出さ れたデ一夕をデコ一ドするデコーダ 5 7 1 と、 該デコーダ 5 7 1の出力 の論理和を取る O Rゲート 5 7 2と、 該 O Rゲート 5 7 2の出力を一時 保持する遅延型フリップフ口ップからなるフラグ 5 7 3とを備えている。 A N Dゲー卜 5 7 4は一致検出 1¾路 1 1 3から出力されるタグヒッ 卜信 号 T A G - H I T , コントロール回路 1 1 0から出力される信号 H I T • E、 及び該コントロール回路 1 1 0から出力されるライ トイネーブル 信号 S 1 0 b の論理積を求めてヒッ ト信号 H I Tを出力する。 ライ トイ ネーブル信号 S I O b は、 キャッシュタグメモリ 1 1 1及びキャッシュ データメモリ 1 1 2にそれぞれ設けられた反転ライ トイネーブル端子 W E N をそれぞれ活性化する信号である。 更新手段 5 8 0は、 レジス夕
1 1 4の出力を選択して外部レジス夕 1 1 6の内容を更新するセレクタ
58 iと、 該外部ァドレス 1 1 6の出力を+ 1インクリメントして該セ レクタ 58 1にフィードバックする加算器 582とを、 備えている。 な お、 540は結線状態を示す。
次に、 第 1 4図キャッシュメモリ装置 500の動作を第 1 5図を参照 しつつ説明する。
第 i 5図は、 キャッシュメモリ装置 500の動作を示すタイミングチ ヤー卜である。 この第 1 5図中の nは、 下位 2ビッ 卜が "00" である 場合を示す。 このタイミングチャートの前提条件は、 要求されるキヤッ シュアドレス C A (つまり命合) のうち、 アドレス!!〜 n + 5までの命 合と n + 7の命令は分岐命合ではないが、 n + 6の命合が分岐命令であ る。 このキャッシュメモリを使うキャッシュアドレス要求側の例えば C PUの分岐のタイプは、 遅延分岐で行われ、 n+ 6の分岐命令が mに分 岐する。 そのため、 実行順序は、 n, n+ 1, …, n+ 6, n+ 7, m となる。 キャッシュメモリに対してアドレス!!〜 n+ 1 0までと m〜m +3まではミスヒッ 卜し、 m+4〜m+ 1 0まではヒッ 卜する。 また、 外部メモリ 1 30へのアクセスは DRAMのページモードを使用し、 最 初のデ一夕が到達するまで、 2クロック CKかかるため、 2つ先のライ ンァドレスまでチエツクできるものとする。
まず、 第 1 5図の時刻 t 1に いて、 キャッシュ要求者 1からキヤ ッシュアドレス C Aのうちの n— 1が供給されると、 それがレジスタ 1 1 4に格納された後、 その内容とキャッシュタグメモリ 1 1 1内のァ ドレスとがー致検出回路 1 1 3で一致 Z不一致の検出が行われる。 ここ では、 一致するので、 アドレス n— 1に対応するキャッシュデータメモ リ 1 1 2内のデ一夕がデータ出力端子 Doから読出され、 キャッシュデ 一夕 CDとしてキヤッシュ要求者 1へ返される。
時刻 t 2において、 キャッシュァドレス C Aとして nが供給されると、
一致検出回路 1 1 3の検出結果によってミスヒッ トとなる。 そのため、 キャ ッシュメモリ装置 5 0 0は次から更新モードへ移る。 そして、 外部 メモリ 1 3 0へのァ ドレス E Aを送出するレジス夕 1 1 6に、 ミスヒッ トを起こしたァドレス nがセレクタ 5 8 1を通して書込まれる。 セレク 夕 5 8 1 は、 常時、 レジス夕 1 1 4の方を向いている。
時刻 t 3では、 キャ ッシュメモリにとっては空き状態 (ウェイ ト状態) である。 外部メモリ 3 0の仕様により、 2クロック C K後にしかデータ が到達しない。 時刻 t 4 も同じである。 この間、 ミスヒッ ト判定手段 5 6 0は、 続くラインァドレスもミスヒッ トするか否かを調べる。
即ち、 時刻 t 3, t 4のゥヱイ 卜状態のとき、 コントロール回路 1 1 0 から出力される信号 H I T · E力 " L " レベルになる。 セレクタ 5 6 1 は通常、 レジス夕 1 1 4の方を向いているが、 信号 H I T · E力 " L " レベルの間だけ、 レジスタ 5 6 3の方を向く。 このレジスタ 5 6 3では、 常に、 キャッシュタグメモリ 1 1 1 に与えるべき値を加算器 5 6 2で + 1インクリ メントした値を取り込んでいるため、 ウェイ ト状態のときに 続くラインァドレスがミスヒッ トか否かを調べられることができる。 な お、 この間に一致検出回路 1 1 3から出力されるタグヒッ ト信号 T A G • H I Tは、 要求されたキヤッシュアドレス C Aに対して無効なので、 i 号 H Ι Τ · Εによって A N Dゲート 5 7 4でマスクをかけてある。 こ の結果、 時刻 t 3及び t 4 ともミスヒッ トしたため、 もともとミスヒッ トを起こしたラインァドレスとそれに続く 2つのラインアドレスも、 同 時に更新する予定になる。
時刻 t 5において、 もともとミスヒッ トを起こしたキヤッシュア ドレ ス C Aのデータが到達したため、 キャッシュデータメモリ 1 1 2及びキ ャッシュ夕グメモリ 1 1 1はライ ト状態になる。 通常、 キャッシュデ一 夕メモリ 1 1 2に対してのァドレスはキヤッシュアドレス C Aであるが、
一 2
書込み時は、 外部レジス夕 1 1 6から外部メモリ 1 3 0へのアドレス E Aが送出され、 外部メモリ 1 3 0のデータ出力端子 Dからデータが読出 され、 キャッシュタグメモリ 1 1 1及びキャッシュデ一夕メモリ 1 1 2 のデ一夕とタグ TA Gが更新される。 このとき、 外部レジスタ 1 1 6の ライン内ァドレス I Aに対応するカウンタ部分が加算器 5 3 5でインク リメントされ、 次のデ一夕の更新に備える。 ラインアドレスの更新期間 中は、 セレクタ 5 3 6が加算器 5 3 5の方を向いている。
時刻 t 6において、 一致検出回路 1 1 3が一致状態を検出するので、 キャッシュメモリがヒッ ト状態となり、 キャッシュデータメモリ 1 1 2 のデータ出力端子 D 0から読出された nのキヤッシュデ一夕 C Dがキヤ ッシュ要求者 1へ返され、 レジスタ 1 1 4には新たに要求されたキヤッ シュアドレス C Aの n + 1が書込まれる。 その後の時刻 t 7〜t 1 0は、 時刻 t 5, t 6と同様の動作をする。
時刻 t l 1において、 もともとミスヒッ トを起こしたライン内の最後 のァドレスを更新する。 基本的には、 時刻 t 5と同様の動作をするが、 この他に、 必要性判別手段 5 7 0によって続くラインの更新を行うか否 かの判定を行う。
即ち、 時刻 t 3において続くラインアドレスはミスヒッ卜することが わかっている。 ここで、 今更斩し.ているラインアドレスの中に分岐命令 があるか否かをデコーダ 5 7 1でデコードした結果が、 キャッシュデー 夕メモリ 1 1 2へのライト時 (時刻 t 5 , t 7 , t 9 , t i l ) のとき、 コントロール回路 1 1 0から出力される信号 H I T · Eが " L " レベル のときにリセッ トされたフラグ 5 7 3に格納されている。 そのため、 時 刻 t i lでは、 このフラグ 5 7 3の値とデコード結果とを O Rゲート 5 7 2によって論理和を求めることにより、 分岐命合がミスヒッ トしたラ インアドレス内にあつたか否かを判定できる。 ここでは、 ミスヒッ トし
たラインア ドレス内に分岐命令がなかったので、 加算器 5 8 2によって インク リ メ ン トした値を外部レジスタ 1 1 6にロードし、 次から続くラ ィンァ ドレスを更新する。
II 刻 t 1 2は時刻 t 6と同様の動作である。 さらに、 時刻 t 1 3〜 t i 9は、 時刻 t 5〜 t 1 1 と同様の動作である。 時刻 t 1 9のとき、 今 度は時刻 t 4において、 この次のラインァドレスもミスヒッ トすること がわかっているが、 時刻 t 1 7において必要性判別手段 5 7 0によって 分岐命令が検出されたため、 フラグ 5 7 0の内容が " 1 " になっている ので、 次の更新を行わず、 ここで外部メモリ 1 3 0へのアクセスを取り 止める。
時刻 t 2 0では、 時刻 t 1 2と同様の動作である。 ただ、 この時刻 t 2 0において、 レジスタ 1 1 4に格納されるキャッシュアドレス C Aは、 n + 6ァドレスにあった分岐命令によって発生したァドレス mである。 時刻 t 2 1以降は、 キヤッシュ要求者 1からの要求によって発生したキ ャッシュ更新サイクル時刻 t 2以降と同様の動作となる。
この第 5の実施例では、 次のような利点を有している。
本実施例では、 ミスヒッ トしてから最初のデータが到達するまでのキ ャッシュメモリがひまな間 (ウェイ ト状態の間) に、 ミスヒッ ト判定手 段 5 6 0により、 ミスヒッ トを起こしたラインアドレスの次のラインァ ドレスもミスヒッ トするか否かを調べ、 必要性判別手段 5 7 0により、 実際にミスヒッ トしたラインの迚続ァドレスが必要であることが判れば (例えば、 分岐命令がなければ) 、 更新手段 5 8 0によって次のライン ァドレスも続けて更新するようにしているので、 ヒッ ト率を向上できる。 第 6の実施例
第 5の実施例のキャッシュメモリ装置 6 0 0において、 キャッシュデ 一夕メモリ 1 1 2とキャ ッ シュ メモリ 1 1 1 の書込みをそれぞれ独立
して行わせることにより、 ミスヒッ 卜によるキャッシュデ一夕メモリ 1 1 2へのデータの書込み最中でも、 キャッシュタグメモリ 1 1 1を利 用して次のライン了ドレスのヒッ ト/ ミスヒッ トを調べることを可能に したのが第 1 6図に示す第 6の実施例のキヤッシュメモリ装置 6 0 0で あ 。
第 1 6図はキャッシュメモリ装置 6 0 0の回路図である。 第 1 4図に 示すキャッシュメモリ装置 5 0 0に対し、 一致検出回路 5 0 1 と一致検 出回路 6 0 1の一致検出結果に基づいて、 コントロール回路 1 1 0が、 キヤシュタグメモリ 1 1 1及びキヤッシュデータメモリ 1 1 2をそれぞ れ独立して書込みを許可するライトイネーブル信号 TWE、 DWEを出 力している。 また、 キャッシュメモリ装置 6 0 0は O Rゲート 6 0 2が 付加されている。 一致検出回路 6 0 1は、 キャッシュアドレス C Aの夕 グ TA G及びラインアドレス L Aと外部レジスタ 1 1 6に格納されたキ ャッシュアドレスのタグ T A G及びラインァドレス L Aの一致を検出し、 一致が検出された場合は、 コントロール回路 1 1 0へ書込みマッチング 信号 WA— MA Tを出力する。 つまり、 外部メモリから要求のアドレス が出力されているかどうかを検出するものである。 コントロール回路 1 1 0は、 書込みマッチング信号 WA— MA Tに応じて、 キャッシュデ 一夕メモリ 1 1 2へライトイネ ブル信号 DWEを出力し、 キャッシュ タグメモリ 1 1 1へ 1ラインデ一夕ごとに 1回だけ、 キャッシュタグメ モリ 1 1 1へのライトイネーブル信号 TWEを出力する。 O Rゲ一ト 6 0 2は外部メモリ 1 3 0のデータが有効であることを示す D— WA I T 信号に応じて、 コントロール回路 1 1 0から出力される H I T— V信号 と AN Dゲート 5 7 4との論理和をとり、 その結果をキャッシュ要求者 に H I T信号として出力するものである。 .
次に、 第 1 6図のキャッシュメモリ装置 6 0 0の動作を第 1 7図を用
いて説明する。 第 1 7図はキャッシュメモリ装置 6 0 0の動作を示す動 作夕イ ミ ングチヤ一トである。 第 1 7図において、 1 ライン 4了ドレス とし、 外部メモリ 1 3 0へのアクセスは最初のものは 2クロック後に有 効、 連続ア ドレスならば 1 クロック後に有効になるものとしている。 ま た、 キヤッシュメモリ装置 6 0 0に対する要求のキヤッシュアドレス C Aは nから n + 7まではミスヒッ トし、 n + 6に分岐命令が るときの 実行例である。
時刻 t 1において、 要求のアドレスである n— 1はヒッ トしたため、 キヤッシュ夕グメモリ 1 1 1へは n— 1がそのまま渡される。 時刻 t 2 において、 nがミスヒッ トとなり、 次の時刻 t 4から外部メモリ 1 3 0 へアクセスする為、 この nは更新手段 5 8 0を介して外部レジスタ 1 1 6に取込まれ、 nに対するキヤッシュデ一夕の更新が開始される。 時刻 7〜 1 2において、 最初にキャッシュデータの更新を起こしたアドレス nと同じラインの n + 1 , n + 2 , n + 3のヒッ ト状態を調べ、 全てミ スヒッ トであるから外部メモリから続いて n +し n + 2, n + 3のデ 一夕が送られ、 ライ トイネーブル信号 DW Eに応じてキヤッシュデータ メモリ 1 1 2へ n + 1 , n + 2 , n + 3の書込みを行う。 この時、 一致 検出回路 6 0 1は外部メモリ 1 3 0から要求のァドレスのデータが読出 されているか否かを調べる。 例; ^ば時刻 t 7においては要求のキヤッシ ユアドレス C Aが n + 1であるので、 外部レジスタ 1 1 6に格納された 了ドレス n力、 加算回路 4 3 5によって、 下位 1 ビッ ト ( I A ) を 1だ けインクリメン卜した時に、 一致検出回路 6 0 1は一致を検出し、 WA 一 M A T信号をコントロール回路 1 1 0に出力する。 また、 外部メモリ 1 3 0は読出し状態となっているので、 D— WA I T信号もコントロー ル回路 1 1 0に対して出力されている。 コントロール回路 1 1 0は、 W A— M A T信号と D - WA I T信号により要求のァドレスが正しく読出
されることをキヤッシュ要求者に通達するため H I T— V信号を出力し、 H I T信号を生成する。 このキャッシュデータメモリ 1 1 2の更新期間 として時刻 t 6において、 更新手段 5 8 0により、 nの次のラインァド レス、 つまり n + 4が生成され、 キャッシュタグメモリ 1 1 1に対し、 n + 4の.ヒッ ト伏態をチエツクする。 本例においては n + 4もミスヒッ 卜としている。 このミスヒッ トの結果は図示せぬレジスタに格納する。 また、 ミスヒッ トの結果をコントロール回路 1 1 0に送るようにしても よい時刻 t 1 2において、 アドレス nのラインの更新が終了し、 コント ロール回路はライトイネーブル信号 D WEの 4回目の出力とともにライ トイネーブル信号 TWEを出力する。 また、 必要性判別手段 5 7 0は n 〜! 1 + 3には分岐命令を検出しないので、 更新作業は継続して行われる。 よって、 n + 4のラインの更新が行われる。 時刻 t 1 7において、 n + 6は分岐命合であることを、 必要性判別手段 4 7 0が検出し、 この検出 結果をコントロール回路 1 1 0へ対して出力する。 コントロール回路 1 I 0は n + 4のラインの更新が終了した後の時刻 t 2 1にて、 分岐先の mに対し、 上記と同様な動作を行う。
以上のように、 6つの実施例にて、 本発明のキャッシュメモリ装置を 説明したが、 各実施例に示す回路及び動作タイミングは同様の動作が可 能であれば、 種々へ変更可能であ.る。 産業上の利用可能性 . 以上詳細に説明したように、 本発明の第 1の実施例によれば、 ミスヒ ッ トによるキャッシュデータ更新中に、 書込んでいるデータをキヤッシ ュ要求者に渡せる手段を設けたので、 ヒッ ト率が向上するとともにミス ヒッ トペナルティ時間が短縮する。
本発明の第 2の実施例によれば、 第 1の実施例においてキヤッシュ要 求者のウェイ 卜要求に対してキヤッシュデ一夕の更新を中断する手段を 設けたので、 キヤッシュメモリ装置を有するシステム全体としての動作 性が向上する。
本発明の第 3の実施例によれば、 第 1の実施例において、 キャッシュ
"要求者のゥヱイ ト要求に対して、 キャッシュデータのキヤッシュ要求者 へのキャッシュデータの出力を中断する手段と、 ゥヱイ ト状態時に更新 したキヤッシュデ一夕を格納しておくバッファ手段とを設けたので、 ゥ エイ ト要求に対してキャッシュデータの更新を中断することなく、 かつ、 ゥヱイ ト状態時に更新されたキヤッシュデータに対してもアクセス可能 となり、 第 2の実施例より動作性が向上する。
本発明の第 4の実施例によれば、 第 3の実施例において、 設けたバッ ファ手段に格納する対象に対して、 キャッシュデータの格納の必要性を 判断する手段を設けて、 必要なキヤッシュデ一夕のみをバッファ手段に 格納するようにしたので、 第 3の実施例に比べて、 少ないハード量で、 第 3の実施例と同様な効果が得られる。
'第 5の実施例によれば、 ミスヒッ トによるキヤッシュデ一夕更新中に、 ミスヒッ トしたキヤッシュデ一夕のラインァドレスデータに続く次のラ ィンァドレスデータもミスヒッ ト.するか否かを判定する手段と、 キヤッ シュデータ更新中に更新しているデータの内容が必要とされるか否かを 判別する手段と、 この判別手段によって更新しているデ一夕の内容が必 要とされ、 かつ、 次のラインアドレスデータがミスヒッ 卜であつたなら ば、 続けて次のラインアドレスデータも更新する手段を設けたので、 キ ャッシュデ一夕の更新までの時間を利用して次ラインァドレスデ一夕の ヒッ ト状態を判定でき、 更新中のァドレスに分岐命合等がなければ、 次 ラインァドレスデータを続けて更新するようにしたので、 キヤッシュメ
モリ装置の稼動率及びヒッ ト率がより向上し、 ミスヒッ トペナルティ時 間が短かくなる。
第 6の実施例によれば、 第 5の実施例のキヤッシュメモリ装置におい て、 キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立の ライトイネーブル信号で制御するとともに要求のキヤッシュメモリと外 部メモリから読出されているメモリとの一致を検出する一致検出回路を 設け、 コントロール回路が、 キャッシュデータメモリとキャッシュタグ メモリをそれぞれ独立したライトイネーブル信号によつて制御しても、 キヤッシュ要求者には正しく書込みが行われていることを示す H I T信 号を出力するようにしたので、 キヤッシュデ一夕メモリの更新期間中に キャッシュタグメモリを利用して、 更新中のキヤッシュアドレスのデー 夕に続くキャッシュアドレスのヒッ ト状態を判定でき、 第 5の実施例と 同様な効果を得ることができる。