JP3729832B2 - キャッシュメモリ装置 - Google Patents

キャッシュメモリ装置 Download PDF

Info

Publication number
JP3729832B2
JP3729832B2 JP2004061514A JP2004061514A JP3729832B2 JP 3729832 B2 JP3729832 B2 JP 3729832B2 JP 2004061514 A JP2004061514 A JP 2004061514A JP 2004061514 A JP2004061514 A JP 2004061514A JP 3729832 B2 JP3729832 B2 JP 3729832B2
Authority
JP
Japan
Prior art keywords
address
cache
register
memory
data
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
Application number
JP2004061514A
Other languages
English (en)
Other versions
JP2004220624A (ja
Inventor
和彦 槇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2004061514A priority Critical patent/JP3729832B2/ja
Publication of JP2004220624A publication Critical patent/JP2004220624A/ja
Application granted granted Critical
Publication of JP3729832B2 publication Critical patent/JP3729832B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

本発明はマイクロプロセッサ(以下MPUと称する)等の情報処理装置におけるデータの高速読出しに用いられるキャッシュメモリ装置に関するものである。
キャッシュメモリ装置は情報処理装置の処理速度向上のため、広く利用されている。このキャッシュメモリ装置に関する技術は、例えば、次のような文献に記載されるものがあった。
Harold S.Stone著「高性能コンピュータアーキテクチャ」(平1−3−30)丸善(株)、P.23−42 日経エレクトロニクス[434].(1987−11−16)日経BP社、P.159−174
非特許文献1,2には従来のキャッシュメモリ装置の基本的な構成が示されている。従来のキャッシュメモリ装置は、キャッシュメモリ装置の外部につけられた外部メモリに比べて、小容量とすることで高速な動作をするメモリ(これをキャッシュメモリという)を設け、このキャッシュメモリ内に読出し頻度が高いデータを格納し、読出し要求があったデータが、キャッシュメモリ内にあればキャッシュメモリから要求のデータを読出すことで高速な読出しを行い、キャッシュメモリ内になければ、キャッシュメモリ装置に外付けされた外部メモリから要求のデータを読出すことで通常の読出しを行うものである。以下に、そのキャッシュメモリ装置の具体的な構成とその動作を説明する。
図2は従来のキャッシュメモリ装置の基本的な回路図である。
このキャッシュメモリ装置50は情報処理装置内に設けられる中央処理装置(以下、CPUという)等のデータの読出し要求者1(以下キャッシュ要求者という)からのキャッシュアドレスCAに応じたキャッシュデータCDを出力するものであり、該キャッシュメモリ装置50の内部回路を制御するコントロール回路10、小容量高速のランダム・アクセス・メモリ(以下、RAMという)等で構成されるキャッシュタグメモリ11、小容量高速のRAM等で構成されるキャッシュデータメモリ12、及び一致検出回路13を備えている。キャッシュタグメモリ11は、キャッシュデータメモリ12に格納したデータのアドレスの一部を格納するもので、アドレス端子A、データ入/出力端子(以下、I/O端子という)D、コントロール回路10により活性化されるライトイネーブル端子WE、該コントロール回路10により活性化される端子VAi及び端子VAoを有している。キャッシュデータメモリ12は、読出し頻度の高いデータを格納するもので、アドレス端子A、I/O端子D、及びコントロール回路10により活性化されるライトイネーブル端子WEを有している。一致検出回路13は、イネーブル端子Eが活性化されると入力される2つの情報の一致/不一致を検出し、一致の時にはヒット信号HITを出力する回路である。
また、このキャッシュメモリ装置50には、ヒット信号HITによりイネーブル端子Eが活性化されてキャッシュアドレスCAを格納するレジスタ14と、ヒット信号HITによりイネーブル端子Eが活性化されるとIDバス23上のキャッシュデータCDを格納するレジスタ15と、コントロール回路10によりカウントイネーブル端子CEが活性化されたアドレスEAを格納する外部レジスタ16と、該コントロール回路10により制御されるトライステートバッファ17,18,20,21及びANDゲート19と、IAバス22とが、設けられている。
キャッシュアドレスCAを格納するレジスタ14の出力側には、トライステートバッファ17及びIAバス22を介して、キャッシュタグメモリ11及びキャッシュデータメモリ12の各アドレス端子Aがそれぞれ接続されている。レジスタ14から、キャッシュアドレスCAの全ビット数aがIAバス22へ出力され、その全ビット数aのうちの、Log(全タグ数)=bがキャッシュタグメモリ11のアドレス端子Aに供給され、下位(b+1)(但し、1=Log(ライン数))がキャッシュデータメモリ12のアドレス端子Aへ供給され、さらに上位(a−b−1)が一致検出回路13へ供給される。キャッシュアドレスCAの上位(a−b−1)は、トライステートバッファ18を介して、キャッシュタグメモリ11のI/O端子Dに供給されると共に、一致検出回路13へ供給される。キャッシュタグメモリ11の端子VAoは、コントロール回路10で制御されるANDゲート19を介して、一致検出回路13のイネーブル端子Eに接続されている。
キャッシュデータメモリ12のI/O端子Dは、IDバス23に接続され、そのIDバス23がレジスタ15の入力側に接続されている。レジスタ14の出力側には、コントロール回路10によりカウントイネーブル端子CEが活性化される外部レジスタ16が接続されている。外部レジスタ16は、端子CEが活性化されると、レジスタ14から出力されるキャッシュアドレスCAの全ビット数a(=アドレスEA)を格納する機能を有し、その出力側が、トライステートバッファ20を介してIAバス22に接続されると共に、大容量低速のRAM等で構成される外部メモリ30のアドレス端子Aに接続されている。外部メモリ30は、アドレス端子Aの他に、データ出力端子D、及びキャッシュメモリ装置50をウェイト状態(待ち状態)にするための端子D−WAIT等を有し、該データ出力端子Dがトライステートバッファ21を介してIDバス23に接続されると共に、該端子D−WAITがコントロール回路10の入力側に接続されている。
図3は、キャッシュタグメモリ11の記憶内容を示す図である。
キャッシュタグメモリ11は、アドレス(タグ)TAGと有効ビット(バリッドビット)等からなる。タグTAGは、ハードウエア量を減らすために、ある程度、アドレスをグループ化して付けられている。このグループ化された数をライン数(またはブロック数)といい、アドレスの近いものをまとめるのが一般的である。図3においては、1グループに4つのデータとしている。つまり、キャッシュアドレスCAの下位2ビットを除くビットが同じもの、例えば“0…0”のデータを1グループとしている。
次に、図2に示すキャッシュメモリ装置50の動作を説明する。
キャッシュ要求者1からキャッシュアドレスCAが供給されると、それがレジスタ14に一時格納された後、読出されてそのキャッシュアドレスCAに対応するデータがキャッシュデータメモリ12に格納されているか否か(即ち、ヒットか否か)を調べる。つまり、レジスタ14からトライステートバッファ17を介してIAバス22へ出力されたキャッシュアドレスCAと、キャッシュタグメモリ11の内容の一致/不一致が一致検出回路13で検出され、一致(以下ヒットという)ならば、該一致検出回路13からヒット信号HITが出力され、コントロール回路10に与えられると共に、レジスタ14,15のイネーブル端子Eに与えられる。ヒット信号HITがコントロール回路10に入力されると、該コントロール回路10の出力によってキャッシュタグメモリ11及びキャッシュデータメモリ12の各ライトイネーブル端子WEが活性化され、キャッシュアドレスCAのうちの下位(b+1)により指定される該キャッシュデータメモリ12内のデータがIDバス23へ読出される。このIDバス23に読出されたデータは、レジスタ15からキャッシュデータCDとしてキャッシュ要求者1へ出力される。
一方、キャッシュ要求者1から要求されたキャッシュアドレスCAに対応するデータがキャッシュデータメモリ12内になければ(以下ミスヒットという)、コントロール回路10の出力によって活性化される外部レジスタ16により、レジスタ14から出力されたキャッシュアドレスCAの全ビット数a(EA)が外部メモリ30のアドレス端子Aへ送られ、その全ビット数aに対応した記憶データが該外部メモリ30のデータ出力端子Dから読出される。この読出されたデータは、トライステートバッファ21を介してキャッシュデータメモリ12へ送られて該キャッシュデータメモリ12の内容が更新された後、IDバス23及びレジスタ15を介してキャッシュデータCDの形でキャッシュ要求者1へ出力される。
このように、ミスヒットの場合、ミスヒットしたアドレスを含む1ライン分のデータが外部メモリ30から読出され、キャッシュデータメモリ12の内容が更新される。ここで、ミスヒットしてからキャッシュデータメモリ12の内容を更新し、真のキャッシュデータCDをキャッシュ要求者1へ返す方法には、従来次のような第1、第2の方法がある。
(1)第1の方法
図4は図2のキャッシュメモリ装置50の動作を示すタイミングチャートである。図中、m,n+1 ,…はアドレスを示す。ミスヒットペナルティ時間とは、ミスヒットしてからキャッシュデータCDが有効になるまでの時間をいう。
図4において、n+1=“x…x01”(2進数表現)とする。図3に示すように1ライン4アドレス分としている。なお、外部メモリ30は、2サイクルでアクセスできるものとしている。タグTAGには、バリッドビットを含むが、1タグデータに対して1ビットしかない。4回の書込み(ライト)とも、タグデータ(=“x…x”)を書込むが、バリッドビットにバリッド情報を書くのは最後の1回のみである。図2の外部レジスタ16の下位2ビットは、カウンタになっており、ミスヒットによってキャッシュアドレスCAの値がロードされ、その下位2ビットは“00”にクリアされる。
ミスヒットしてからキャッシュデータメモリ12を更新し、キャッシュ要求者1へ真のキャッシュデータCDを返す方法として、最も単純に考えられる方法は、図4に示すように、ミスヒットが発生したら、このアドレスが含まれるラインのうち、ある決まったアドレスからデータを読出(リード)してくれるようにすることである。例えば、図4に示すように1ライン4アドレス分の構成であれば、“xx…x00”,“x…x01”,“x…x10”,“x…x11”という順にデータを読込む。この間、キャッシュデータメモリ12は更新(書込み)のために使用されるので、キャッシュデータCDが先に書込まれたとしてもバリッド(有効)にならない。
(2)第2の方法
メモリインタリーブ方式やダイナミックRAM(以下、DRAMという)の特性を生かしたアクセス方法(ページモードやスタティックカラム等)により、バースト転送をサポートすることによってミスヒットペナルティ時間を短縮することも考えられる。その構成例を図5に示す。
図5はキャッシュメモリ装置51の回路図であり、図2中の要素と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置51は、DRAMページモードを使った構成である。図2のキャッシュメモリ装置50と基本的に異なる点は、外部レジスタ16内のカウンタの出力が加算器35で+1インクリメント(増分)されてセレクタ36に入力し、そのセレクタ36の出力が該カウンタに入力するようになっている点である。なお、図5の符号40は、結線状態を示す。
キャッシュ要求者1からのキャッシュアドレスCAは、タグTAG、ラインアドレスLA、及びライン内アドレスIAより構成され、それらがレジスタ14内に最上位ビット(MSB)から最下位ビット(LSB)へ向けて格納される。そして、ライン内アドレスIAと加算器35の出力とのいずれか一方が、セレクタ36で選択されて外部レジスタ16内のカウンタに入力されるようになっている。また、外部メモリ30は、DRAMで構成され、それをページモードで動作させるために、該外部メモリ30とコントロール回路10との間で、ロー・アドレス・ストローブ信号(以下、RASという。但し、Nは逆送を表す)、コラム・アドレス・ストローブ信号(以下、CASという)、及びウェイト信号率のメモリコントロール信号S10が授受される。
DRAMページモードとは、RASを“L”レベルのままCASパルスを次々と加えることにより、高速の読出し/書込み動作を行うモードである。このモードでは、RASの“L”レベル状態でビット線レベルを“L”レベルあるいは“H”レベル状態にしたまま、CAS系の動作を連続的に繰返し、任意のビット線への書込みあるいは読出しを行うようになっている。
図6は図5の動作を示すタイミングチャートである。このタイミングチャートでは、1ライン4データで構成されている。CKはクロック、nは下位2ビットが“0”である場合である。
図5のキャッシュメモリ装置51では、要求されたキャッシュアドレスCAがレジスタ14に格納されると、そのレジスタ14内のタグTAGと、キャッシュタグメモリ11のデータ出力端子Doから読出されたデータとが、一致検出回路13で一致/不一致の検出が行われる。不一致のときにはミスヒットとなるので、レジスタ14内のタグTAGが結線40を介して外部レジスタ16に格納され、その外部レジスタ16の出力が結線40を介して外部メモリ30のアドレス端子Aに入力される。すると、メモリコントロール信号S10により、ページモードで、外部メモリ30の端子データDからデータが高速に読出されてキャッシュデータメモリ12のデータ入力端子Diに入力され、該キャッシュデータメモリ12の出力端子DoからキャッシュデータCDの形で読出される。これにより、ミスヒットペナルティ時間を短縮できる。
しかしながら、上記のキャッシュメモリ装置50及び51では各々、次のような課題があった。
図2に示すキャッシュメモリ装置50ではミスヒット時にミスヒットしたデータをキャッシュデータメモリ12に書込むための時間が長いため、データの読出しにかかるミスヒットペナルティ時間が長い。
図5に示すキャッシュメモリ装置51では、外部メモリ30等を構成するDRAMの方がバースト転送速度に追いついていないため、最初の1つを読込むまでに数クロックかかる。最初の1つを読込んだ後には図6に示すように、4データ分を読んでくる。
キャッシュメモリ装置51では、ミスヒットを起こしたアドレスの含まれるラインの次のラインが続けて必要な場合であっても、一度バースト転送アクセスモードを抜けて、また新たにミスヒットを起こしてラインのうちの最初のデータが到達するまで、無駄な時間を費やしてしまっている。つまり、ミスヒットしたラインのデータを更新するときに、その後の連続したアドレスのデータがミスヒットすることが分かっていても、必ず一定のラインのデータしか更新しないため、ヒット率が低下するという問題がある。そのため、未だ技術的に充分満足のゆくキャッシュメモリを得ることが困難であった。
本発明は、従来技術が持っていたミスヒットペナルティ時間が長い、ヒット率が低いという問題点を解決することを課題とするものである。
上記課題を解決するため、請求項1にかかる発明は、1アドレス及び該第1アドレスとは異なる第2のアドレスにより構成されるキャッシュアドレスを格納する第1レジスタと、第3アドレスを格納する第1メモリと、キャッシュアデータを格納する第2メモリと、前記第1レジスタに格納された前記第1アドレス若しくはミスヒット判定回路に格納された増加された前記第1アドレスと前記第1メモリに格納された前記第3アドレスとが一致しているか否かを検出する一致検出回路と、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致している場合には前記第2アドレスに対応するキャッシュデータを前記第2メモリから読み出し、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合には前記第2アドレスに対応するデータを外部メモリから読み出し前記第2メモリに書込むことを指示するコントロール回路と、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスが一致していない場合であって、前記第2メモリが前記外部メモリから読み出された前記データを受け取るまでの間、前記第1アドレスを1つずつ増加して格納し続ける前記ミスヒット判定回路と、前記第1レジスタに格納された前記キャッシュドレスの次のキャッシュアドレスが分岐命令であるか否かを判別する必要性判別回路と、前記ミスヒット判定回路に格納された増加された前記第1アドレスと前記第3アドレスとが一致しておらず、前記必要性判別回路において前記次のキャッシュアドレスが前記分岐命令でないと判別された場合、前記第1アドレスに対応する第2アドレスを第2レジスタに与える更新回路とを備えたものである。
請求項4にかかる発明は、第1アドレス及び該第1アドレスとは異なる第2アドレスにより構成されるキャッシュアドレスを格納する第1レジスタと、第1制御信号に応じて制御される、第3アドレスを格納する第1メモリと、前記第1制御信号とは異なる第2制御信号に応じて制御される、キャッシュデータを格納する第2メモリと、前記第1レジスタに格納された前記第1アドレス若しくはミスヒット判定回路に格納された増加された前記第1アドレスと前記第1メモリに格納された前記第3アドレスとが一致しているか否かを検出する第1の一致検出回路と、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致している場合には前記第2アドレスに対応するキャッシュデータを前記第2メモリから読出し、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合には前記第2アドレスに対応するデータを外部メモリから読出し前記第2メモリに書込むことを指示し、前記第1レジスタに格納された前記第2アドレスと前記第2レジスタに格納された前記第2アドレスとが一致している場合には第1の間隔毎に前記第1制御信号と前記第1の間隔よりも短い第2の間隔毎に前記第2制御信号とを出力するコントロール回路と、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合であって、前記第2メモリが前記外部メモリから読出された前記データの書込みを終えるまでの間、前記第1アドレスを1つずつ増加して格納し続ける前記ミスヒット判定回路と、前記第1レジスタに格納された前記キャッシュアドレスの次のキャッシュアドレスが分岐命令であるか否かを判別する必要性判別回路と、前記ミスヒット判定回路に格納された増加された前記第1アドレスと前記第3アドレスとが一致しておらず、前記必要性判別回路において前記次のキャッシュアドレスが前記分岐命令でないと判定された場合、前記第1アドレスに対応する第2アドレスを第2レジスタに与える更新回路と、前記第1レジスタに格納された前記第2アドレスを格納する前記第2レジスタと、前記第1レジスタに格納された前記第2アドレスと前記第2レジスタに格納された前記第2アドレスとが一致しているか否かを検出する第2の一致検出回路とを備えたものである。
本発明はキャッシュメモリ装置のヒット率がより向上し、ミスヒットペナルティ時間が短くなるという効果を奏する。
本発明は、ミスヒットによるキャッシュデータ更新中に、ミスヒットしたラインアドレスに続く次のラインアドレスもミスヒットするか否かを判定するミスヒット判定手段と、キャッシュデータ更新中に更新しているデータの内容が必要とされるか否かを判別する必要性判別手段と、この判別手段によって更新しているデータの内容が必要とされ、かつ、次のラインアドレスがミスヒットであったならば、続けて次のラインアドレスも更新する更新手段を設けることにより、キャッシュデータの更新までの時間、即ちキャッシュデータメモリが外部メモリから読み出されたデータを受け取るまでの間を利用して次のラインアドレスのヒット状態を判定でき、更新中のアドレスに分岐命令がなければ、次のラインアドレスを続けて更新し、更新されたアドレスとキャッシュタグメモリに格納されたアドレスとを比較し、一致した時には続けてキャッシュデータの更新をすることにより実現することができる。
また、上記の場合において、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立のライトイネーブル信号で制御することにより、キャッシュデータの更新期間中、即ちキャッシュデータメモリが外部メモリから読み出されたデータの書き込みを終えるまでの間にキャッシュタグメモリを利用して、更新中のラインアドレスに続くラインアドレスのヒット状態を判定でき、更新中のアドレスに分岐命令がなければ、次のラインアドレスを続けて更新し、更新されたアドレスとキャッシュタグメモリに格納されたアドレスとを比較し、一致した時には続けてキャッシュデータの更新をすることにより実現することができる。
図1は本発明の第1の実施例を示すキャッシュメモリ装置の回路図である。
このキャッシュメモリ装置100は図2に示したキャッシュメモリ装置50において、一致検出回路150とORゲート151とが付加されている。一致検出回路150はミスヒットによるキャッシュデータメモリの更新時に、コントロール回路110の出力信号によって、イネーブル端子Eが活性化されて動作する。一致検出回路150はレジスタ114からのキャッシュアドレスCAの全ビット数aと、外部メモリ130からキャッシュデータメモリ112へデータを書込むアドレス(全ビット数a)との一致を検出する機能を有する。ORゲート151は、一致検出回路150の出力と、一致検出回路113から出力されるタグヒット信号TAG・HITとの論理和を求め、該一致検出回路150の検出結果が一致のときにレジスタ115のイネーブル端子Eを活性化する機能を有している。
コントロール回路110は、一致検出回路113からタグヒット信号TAG・HITを入力すると、キャッシュ更新信号S10aを出力してトライステートバッファ120,121をオン状態にし、外部メモリ130のデータ出力端子Dから出力された読出しデータを、IDバス123へ出力させる。IDバス123上に出力された読出しデータは、ORゲート151によってイネーブル状態となったレジスタ115に取込まれ、キャッシュデータCDとしてキャッシュ要求者101へ返される。つまり、ORゲート151は、ミスヒットによるキャッシュ更新時に、一致検出回路150の検出結果が一致であれば、外部メモリ130から読出されたデータをバイパスして、キャッシュ要求者101に対してもキャッシュデータCDとして出力する機能を有している。
次に、図1に示すキャッシュメモリ装置100の動作を図7を参照しつつ説明する。
図7は、図1のキャッシュメモリ装置200の動作を示すタイミングチャートである。この図7において、n+1=“x…x01”、n+4=“Y…Y00”とする。そして、1ライン4アドレス分としている。なお、外部メモリ130は、バースト転送により、連続アドレスなら、最初のみ1ウェイトで読めるものとしている。バリッドビットは、最後の書込みで“1”が書かれる。また、外部レジスタ116の下位ビットは、カウントイネーブル端子CEにより活性化されるカウンタになっている。
図1において、キャッシュ要求者101から必要なデータのキャッシュアドレスCAが供給されると、そのキャッシュアドレスCAがレジスタ114に書込まれる。キャッシュ更新状態でなければ、コントロール回路110から出力されるキャッシュ更新信号SIOaによってトライステートバッファ117がオン状態となっているので、レジスタ114に書込まれたキャッシュアドレスCAがIAバス122へ送られる。キャッシュデータメモリ112は、IAバス122上のアドレスのうち、特定されるタグとラインのアドレス、例えば下位(b+1)をアドレス端子Aで受け取り、そのアドレスで指定された記憶データをI/O端子DよりIDバス123へ出力する。
同時に、キャッシュデータメモリ112に格納されているデータが、要求されたキャッシュアドレスCAのものかを検証するために、特定されるタグのアドレスLog(全タグ数)=bに対するキャッシュタグメモリ111の記憶データがI/O端子Dより読出され、一致検出回路113により、与えられたタグとの一致/不一致の検出が行われる。この結果は、キャッシュデータメモリ112がリード状態(キャッシュ更新状態ではない)で、かつキャッシュタグメモリ111の端子VAoによって示される該キャッシュタグメモリ111の内容が有効であれば、ANDゲート124を介してイネーブル状態となった一致検出回路113による一致検出の結果が有効であり、該一致検出回路113からタグヒット信号TAG・HITが出力されてコントロール回路110へ供給される。
このとき、一致検出回路113の検出結果が一致であれば、IDバス123の内容が有効であることを示すため、タグヒット信号TAG・HITがORゲート151を通して生成されたヒット信号HITをキャッシュ要求者101へ返すと共に、該ヒット信号HITによってレジスタ115への書込みを有効にする。さらに次のキャッシュ要求者101からのキャッシュアドレスCAを受け取るため、レジスタ114への書込みをも有効にする。これに対し、一致検出回路113から出力されるタグヒット信号TAG・HITが不一致状態を示すときには、ミスヒットとなり、次のサイクルから、キャッシュデータメモリ112がキャッシュ更新状態に入る。
キャッシュデータメモリ112が更新状態に入ると、コントロール回路110は、外部メモリ130からのデータの取り込みを可能にするため、キャッシュ更新信号SIOaによってトライステートバッファ120,121をオン状態にすると共に、IAバス122へのアドレス供給源である外部レジスタ116のカウントイネーブル端子CEを活性化し、IDバス123への読出しデータ供給源を外部メモリ130にする。外部レジスタ116の内容は、ミスヒット時には必ず書き換えられる。
このとき、外部読出しデータが有効なタイミングであることを示す外部メモリ130の端子D−WAITが“L”レベルとなり、コントロール回路110から出力されるキャッシュ更新信号SIOaが“H”レベルであるので、該コントロール回路110はキャッシュタグメモリ111及びキャッシュデータメモリ112の各ライトイネーブル端子WEを所定の周期で活性化する。
外部レジスタ116の下位2ビットはカウンタになっているので、キャッシュタグメモリ111及びキャッシュデータメモリ112の各ライイネーブル端子WEが活性化されるときに、該外部レジスタ116のカウントイネーブル端子CEも活性化されて該カウンタがカウントアップする。
これがn回(例えば4回)繰り返され、ミスヒットしたラインアドレスのデータが全て書き換えられる。これにより、外部メモリ130のデータ出力端子Dよりデータを読出し、その読出されたデータがトライステートバッファ121を介してキャッシュデータメモリ112のI/O端子Dへ送られ、キャッシュ更新が行われる。また、コントロール回路110は、4回目にのみ有効であることをキャッシュタグメモリ111の端子VAiに書込む。以上のキャッシュ更新動作は、従来の図2のキャッシュメモリ装置50と同様である。
本実施例の特徴は、前記のキャッシュ更新動作に加えて、キャッシュデータ更新中に、キャッシュデータメモリ112への書き込みデータを、キャッシュ要求者101から要求されれば、それをバイパスして渡すようにしている。つまり、キャッシュ更新状態時に、コントロール回路110の出力によって一致検出回路150がイネーブル状態となり、該一致検出回路150により、レジスタ114の内容と外部レジスタ116の内容との一致/不一致を検出する。この検出結果と、一致検出回路113から出力されたタグヒット信号TAG・HITとが、ORゲート151で論理和が取られ、ヒット信号HITが生成されてキャッシュ要求者101へ返されると共に、レジスタ115がイネーブルとなり、外部メモリ130からIDバス123へ読出されたデータが、キャッシュ要求者101へ出力される。
これを、図7によって説明するとクロック2においてキャッシュアドレスCAのn+1がミスヒットし、キャッシュメモリ装置100はキャッシュタグメモリ111及びキャッシュデータメモリ112の更新動作に入る。この時、信号TAG−HITは一致検出回路113の一致検出結果が不一致を示す“L”状態となる。クロック3においてコントロール回路110は、この信号TAG−HITの状態に応答して一致検出回路150及び外部レジスタ116をイネーブル状態にかつ、キャッシュタグメモリ111及びキャッシュデータメモリ112をライトイネーブル状態にする。外部レジスタ116には、キャッシュアドレスCA(“x…x01”)がそのまま取り込まれる。
一致検出回路150にはキャッシュアドレスCAと外部レジスタ116に取込まれたキャッシュアドレスに基づくアドレスデータEAが入力される。ここで、外部レジスタ116の下位2ビットはカウンタになっており、アドレスデータEAはキャッシュメモリ111,112への1ライン分の書込みに応じて1ずつカウントアップするためクロック4ではアドレスデータEAはx…x01”であるが、続くクロック5,6,7にはそれぞれ “x…x10”, “x…x11,” “x…x00”と変化する。よって、一致検出回路150の キャッシュアドレスCAとアドレスデータEAとの一致検出結果はクロック4で一致となる。このため、一致検出回路はレジスタ114,115をイネーブルとする。外部メモリ130は外部レジスタ116で生成されたアドレスデータEA“x…x01”に基づくデータを出力する。このデータは、レジスタ115を介してキャッシュデータCDとして、キャッシュ要求者101に渡すとともに キャッシュデータメモリ112にも更新書込みされる。また、キャッシュ要求者101はレジスタ114がイネーブルとなっているので、次のキャッシュアドレスCAとしてn+2(“x…x01”)を送る。
クロック5において、キャッシュメモリ装置100はn+1を含むラインのキャッシュデータの更新を行っており、外部レジスタ116によって、生成されたアドレスデータ“x…x10”に対応するデータをキャッシュデータメモリ112に更新書込みしている。ここでレジスタ114にはn+2が格納されており、キャッシュタグメモリ111にはまだタグ“x…x”が更新書込みされていないので、一致検出回路113は不一致となるが、一致検出回路150及び外部レジスタ116はイネーブル状態を保つため、キャッシュアドレスCAのn+2が一致検出回路150へ入力される。この時、一致検出回路150はもう一方の入力として、n+2と同じアドレスデータを入力しているので一致を検出し、レジスタ114,115をイネーブル状態に保つ。なお、キャッシュ要求者101が要求したキャッシュアドレスCAのn+2に対応するデータはキャッシュデータメモリ112への書込みとともに、レジスタ115を介してキャッシュ要求者101へ渡されている。また、キャッシュ要求者はレジスタ114がイネーブル状態なので次のキャッシュアドレスCAとしてn+3(“x…x11”)を送る。
n+3はnとn+2の関係と同様にn+2に連続するアドレスデータなので、クロック6においてクロック5と同様な作業がされる。ただし、クロック7においてキャッシュアドレスCAとしてn+4(“Y…Y00”)が入力される。n+4はキャッシュタグメモリ111内に格納されたタグと一致になるとともに、外部レジスタ116で生成されたタグ“x…x”に対する4回目の書込みをするためのアドレスデータ“x…x00”とも不一致となるので、レジスタ114,115のイネーブル状態は解除される。但し、この時既に外部レジスタ116から、外部メモリ130へはアドレスデータEAとして“x…x00”が送られ、キャッシュデータメモリ112及びレジスタ115へはアドレスデータ“x…x00”に対するデータが送られているので、キャッシュデータCDとして“x…x00”に対するデータが要求者101へはレジスタ115を介して送られている。また、“x…x”のキャッシュタグメモリ111への書込みもクロック7のタイミングで行っている。クロック8ではクロック2と同様な作業を行い、ここでまた、タグの不一致が生ずると、クロック9以降は前述と同様な更新作業に入る。
本発明の第1の実施例のキャッシュメモリ装置100において、キャッシュ要求者101からウェイト要求があった時に、キャッシュデータ更新動作を待ち状態にすることを可能としたのが図8に示すキャッシュデータメモリ装置200である。図8はキャッシュメモリ装置200の回路図である。第1の実施例のキャッシュメモリ装置100に対してキャッシュメモリ装置200には、3つのANDゲート201,202,203が付加されている。
ANDゲート201はキャッシュ要求者101からのウェイト要求状態を示す信号とコントロール回路110からの出力信号との論理積をとって、その結果をキャッシュタグメモリ111及びキャッシュデータメモリ112の各ライトイネーブル端子WEに入力する。つまり、ANDゲート201はキャッシュ要求者101がウェイト要求しておらず、かつ、キャッシュタグメモリ111及びキャッシュデータメモリ112へ書込み要求が出された時に、キャッシュタグメモリ111及びキャッシュデータメモリ112のライトネーブル端子WEを活性化させる。
ANDゲート202は、キャッシュ要求者101からのウェイト要求状態を示す信号とコントロール回路110からの出力信号との論理積をとって、その結果を外部レジスタ116のカウントイネーブル端子CEに入力する。つまり、ANDゲート202はキャッシュ要求者101がウェイト要求しておらず、かつ、外部レジスタ116のカウントを“1”だけ加算する要求が出された時に、外部レジスタ116のカウントイネーブル端子CEを活性化する。
ANDゲート203は、キャッシュ要求者101からのウェイト要求状態を示す信号とORゲート151の出力信号(キャッシュデータのHIT状態を示す信号)との論理積をとって、その結果をレジスタ114,115のイネーブル端子Eに入力する。つまり、ANDゲート203は、キャッシュ要求者101がウェイト要求しておらず、かつ、キャッシュアドレスCAとキャッシュタグメモリ111内のタグと一致した時か、キャッシュアドレスCAと外部レジスタ116のデータが一致した時に、レジスタ114,115のイネーブル端子Eを活性化する。
従って、キャッシュ要求者101がウェイト要求をすることにより、キャッシュタグメモリ111及びキャッシュデータメモリ112へのデータの書込み、外部レジスタ116の外部メモリ130からの読出しが要求されたデータアドレスの出力、キャッシュデータCDのレジスタ115への格納が禁止され、キャッシュメモリ装置200のキャッシュデータの更新処理全体が待ち状態となる。
次に、図8に示すキャッシュメモリ装置200の動作を図9で説明する。図9は図8のキャッシュメモリ装置200の動作を示すタイミングチャートである。
図9において、キャッシュ要求者101がウェイト要求をしているクロック2〜4の間はレジスタ114,115は不活性化となり、それぞれ、キャッシュアドレスCA=n+1、キャッシュデータCD=mを格納したままである。また、外部レジスタ116もn+1を格納したままである。さらに、キャッシュタグメモリ111及びキャッシュデータメモリ112の各ライトイネーブル端子WEは“L”レベルのままで活性化されない。
本発明の第1の実施例のキャッシュメモリ装置100において、キャッシュデータの更新時にキャッシュ要求者101からウェイト要求が生じた場合にも、キャッシュデータの更新を行うが、ウェイト状態の時に更新されたデータに対しても容易にアクセスできるようにしたのが、図10に示す第3の実施例のキャッシュメモリ装置300である。10は第3の実施例のキャッシュメモリ装置300の回路図である。第1の実施例のキャッシュメモリ装置100に対して、キャッシュメモリ装置300は複数個のレジスタ301、レジスタ301に対応して設けられた複数個の一致検出回路302、レジスタ301に対応して設けられた複数個のトライステートバッファ304、トライステートバッファ321、ANDゲート303、ORゲート305と351が設けられている。
レジスタ301各々には外部レジスタ116で更新されたアドレス、外部メモリ130から読出されたデータ及びコントロール回路110から出力される信号であるバリッドフラグが1セットで格納されている。このコントロール回路110から出力される信号がイネーブル端子Eに入力することによって、レジスタ301は活性化する。本実施例においてレジスタ301は3つ(バッファ0,1,2)用意されている。これは1ライン4アドレスで、キャッシュデータの更新は1ライン分行うことから、更新に充分適用できる数としたためで、3つに限るものではない。
一致検出回路302もレジスタ301に対応して3つ用意され、対応するレジスタ301からのバリッドフラグ信号Vに応じて活性化し、レジスタ114から出力されたキャッシュアドレスCAとレジスタ301に格納されたアドレスとの一致検出を行う。一致検出の結果、各一致検出回路302の出力は、それぞれ対応するトライステートバッファ304の動作制御を行うとともに、ORゲート305に入力される。ORゲート305は、各一致検出回路302の論理和をとり、その結果信号をORゲート351に入力するとともに、その結果信号の反転信号にてトライステートバッファ321の動作制御を行う。トライステートバッファ304は一致検出回路302に対応して3つ用意され、各対応する一致検出回路302の一致検出の結果に応じて、各対応する。
一致検出回路302が一致を検出するとトライステートバッファ304はレジスタ301に格納されたデータをIDバス123にそれぞれ出力する。トライステートバッファ321はORゲート305の出力の反転信号に応じて、外部メモリ130に格納されたデータをIDバス123に出力する。ORゲート351は入力としてORゲート305の出力の他に、一致検出回路113及び150の一致検出結果が入力される3入力ORゲートである。この3つの信号の論理和をとって、その結果の出力はANDゲート303の入力となる。ANDゲート303にはキャッシュ要求者101からのウェイト信号WAITも入力され、論理積の結果をレジスタ114,115のそれぞれのイネーブル端子Eに入力する。
次に、図10に示すキャッシュメモリ装置300の動作を図11にて説明する。図11は、図10のキャッシュメモリ装置300の動作を示すタイミングチャートである。
図11において、クロック2において、ミスヒット(タグHITが“0”)となり、キャッシュメモリ装置300はキャッシュデータの更新作業を開始する。しかしクロック2において、キャッシュ要求者101がウェイト状態となっている。
第2の実施例ではウェイト状態の間はキャッシュデータの更新作業は行われなかったが、この第3の実施例においては、ウェイト状態中のクロック4にて、外部メモリ130のデータが出力されると、キャッシュデータメモリ112へそのデータが書込まれる。これと同時に、そのデータはトライステートバッファ321を介してレジスタ115に入力される。クロック4においてはキャッシュ要求者101はまだウェイト状態のため、レジスタ115に入力されたキャッシュデータを受け取れない。ただし、クロック4において、コントロール回路110からの出力信号によってレジスタ301の1つを活性化して、外部レジスタ116から出力されたアドレスと、外部メモリ130からの出力であるそのアドレスに対応するデータをレジスタ301(例えばバッファ0)に格納する。この時、レジタ301(バッファ0)にはアドレス及び、そのアドレスに対応するデータの他に、コントロール回路110からの出力信号が入力されることによって、バリッドフラグがバリッド(有効)になる。
クロック5において、キャッシュ要求者101はウェイト要求を解除し、再びクロック4と同じアドレスを要求する。この時、クロック4の際、レジスタ301に要求するアドレスとデータが格納されているため、複数の一致検出回路302のうち1つは一致を検出するので、ORゲート305を介してトライステートバッファ321を非動作状態とし、トライステートバッファ304を介して、レジスタ301(バッファ0)からIDバス123に要求するアドレスのデータを出力する。なお、この時、キャッシュデータメモリ112には、次のアドレスに対応するデータが書込まれて、レジスタ301(例えばバッファ1)にも同様のアドレス、データが書込まれる。この様にして、以降も、キャッシュ要求者101からのアドレスとキャッシュデータメモリ112への書込みのタイミングがずれているにもかかわらず、レジスタ301(例えばバッファ1,2)からキャッシュデータCDがキャッシュ要求者101に出力される。
第3の実施例において、必要と思われる時だけレジスタ301にアドレス、データを書込むようにしたのが、図12に示す第4の実施例のキャッシュメモリ装置400である。図12はキャッシュメモリ装置400の回路図である。
第3の実施例のキャッシュメモリ装置300に対して、キャッシュメモリ装置400はバッファリング監視回路401が付加されている。バッファリング監視回路401はキャッシュ要求者101がウェイト状態の時に更新するキャッシュデータがレジスタ301に格納すべきデータか否かをチェックし、所定の格納先のレジスタ301(図12ではレジスタ301は2つしか示されていないので、バッファ0あるいはバッファ1)に格納するとともに、不要になったレジスタ301のデータを無効にするものである。バッファリング監視回路401はウェイト信号WAIT、各一致検出回路150、302の出力信号(検出結果)、外部レジスタ116の出力、及びコントロール回路110のキャッシュタグメモリ111及びキャッシュデータメモリ112のライトイネーブル端子を活性化する出力信号が入力され、レジスタ301を活性化する信号及びレジスタ301に格納されたデータの有効性を示すバリッドフラグを出力する。
次に、図12に示すキャッシュメモリ装置400の動作を図13にて説明する。図13は図12のキャッシュメモリ装置400の動作を示すタイミングチャートである。
バッファリング監視回路401は、レジスタ301(バッファ0と1)にデータを格納する条件及び格納したデータを無効にする条件を、例えば次のようにしている。
(1)バッファ0に格納する条件
“キャッシュデータメモリヘの書込みをしているデータのアドレスの下位1ビットが
0”
かつ
“バッファ0自身に格納されたデータが無効”
かつ
“バイパスHITで、キャッシュ要求者101がウェイト状態であるか、バッファ1
がHITでキャッシュ要求者101がウェイト状態である。”
(2)バッファ1に格納する条件
“キャッシュデータメモリヘの書込みをしているデータのアドレスの下位1ビットが
1”
かつ
“バッファ1自身に格納されたデ一タが無効”
かつ
“バイパスHITで、キャッシュ要求者101がウェイト状態であるか、バッファ0
がHITでキャッシュ要求者101がウェイト状態である。”
(3)バッファ0に格納したデータを無効にする条件
“キャッシュデータメモリヘの書込みをしているデータのアドレスの下位1ビットが
0”
かつ
“バイパスHITかバッファ0HITでともにキャッシュ要求者101がウェイト状
態でない”
(4)バッファ1に格納したデータを無効にする条件
“キャッシュデータメモリヘの書込みをしているデータのアドレスの下位1ビットが
1”
かつ
“バイパスHITかバッファ1HITでともにキャッシュ要求者101がウェイト状
態でない。”
クロック2において、ミスヒットが発生し、キャッシュデータメモリ112の更新が行われるが、クロック4において、外部メモリ130からデータが読出されるIDバス123にデータn+1が生ずる(バイパスHIT状態)。クロック4ではキャッシュ要求者101はウェイト状態である。また、アドレスデータn+1の下位1ビットが、例えば“0”ならば、前記(1)の条件を満たすため、バッファ0にデータn+1が書込まれる。クロック5ではバッファ0のHITが発生するが、この時はまだ、キャッシュ要求者101はウェイト状態のため、バッファ0のデータは無効にならない。しかし、(2)の条件が満たされるため(データn+1の下位1ビットを“0”としたのでそれに続くデータn+2の下位1ビットは“1”)、バッファ1にデータn+2が書込まれる。このようにして、前記(1)〜 (4)の条件を満たす場合に、新たな書込みやデータの無効を行っていく。
図14は、本発明の第5の実施例を示すキャッシュメモリ装置500の回路図であり、図1のキャッシュメモリ装置100中の要素と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置500は、図5のキャッシュメモリ装置51と同様に、MPU等の命令発生部に設けられる命令キャッシュメモリとして動作するもので、キャッシュ更新時においてキャッシュメモリがウェイト状態のときにミスヒットしたラインアドレスに続く次のラインアドレスもミスヒットするか否かを判定するミスヒット判定手段560と、キャッシュ更新中に新たに読んできたデータ(命令)が必要とされるか否か(例えば、分岐命令があるか否か)を判別する必要性判別手段570と、次のラインアドレスもミスヒットであってその内容が必要とされるならば(分岐命令がなければ)、続けて次のラインアドレスも更新する更新手段580とANDゲート574が、付加されている。
ミスヒット判定手段560は、レジスタ114の出力側に設けられたセレクタ561と、該セレクタ561の出力を+1インクリメントする加算器562と、該加算器562の出力によって内容が書き換えられてセレクタ561へ出力するレジスタ563とで、構成されている。必要性判別手段570は、外部メモリ130のデータ出力端子Dから読出されたデータをデコードするデコーダ571と、該デコーダ571の出力の論理和を取るORゲート572と、該ORゲート572の出力を一時保持する遅延型フリップフロップからなるフラグ573とを備えている。
ANDゲート574は一致検出回路113から出力されるタグヒット信号TAG・HIT、コントロール回路110から出力される信号HIT・E、及び該コントロール回路110から出力されるライトイネーブル信号S10bの論理積を求めてヒット信号HITを出力する。ライトイネ一ブル信号SIObは、キャッシュタグメモリ111及びキャッシュデータメモリ112にそれぞれ設けられた反転ライトイネーブル端子WEをそれぞれ活性化する信号である。
更新手段580は、レジスタ114の出力を選択して外部レジスタ116の内容を更新するセレクタ581と、該外部レジスタ116の出力を+1インクリメントして該セレクタ581にフィードバックする加算器582とを、備えている。なお、540は結線状態を示す。
次に、図14に示すキャッシュメモリ装置500の動作を、図15を参照しつつ説明する。
図15は、キャッシュメモリ装置500の動作を示すタイミングチャートである。この図15中のnは、下位2ビットが“00”である場合を示す。このタイミングチャートの前提条件は、要求されるキャッシュアドレスCA(つまり命令)のうち、アドレスn〜n+5までの命命とn+7の命令は分岐命令ではないが、n+6の命令が分岐命令である。このキャッシュメモリを使うキャッシュアドレス要求側の例えCPUの分岐のタイプは、遅延分岐で行われ、n+6の分岐命令がmに分岐する。そのため、実行順序は、n,n+1,…,n+6, n+7,mとなる。キャッシュメモリに対してアドレスn〜n+10までとm〜m+3まではミスヒットし、m+4〜m+10まではヒットする。また、外部メモリ130へのアクセスはDRAMのぺ一ジモードを使用し、最初のデータが到達するまで、2クロックCKかかるため、2つ先のラインアドレスまでチックできるものとする。
まず、図15の時刻t1において、キャッシュ要求者101からキャッシュアドレスCAのうちのn−1が供給されると、それがレジスタ114に格納された後、その内容とキャッシュタグメモリ111内のアドレスとが一致検出回路113で一致/不一致の検出が行われる。ここでは、一致するので、アドレスn−1に対応するキャッシュデータメモリ112内のデータがデータ出力端子Doから読出され、キャッシュデータCDとしてキャッシュ要求者101へ返される。
時刻t2において、キャッシュアドレスCAとしてnが供給されると、一致検出回路113の検出結果によってミスヒットとなる。そのため、キャッシュメモリ装置500は次から更新モードヘ移る。そして、外部メモリ130へのアドレスEAを送出するレジスタ116に、ミスヒットを起こしたアドレスnがセレクタ581を通して書込まれる。セレクタ581は、常時、レジスタ114の方を向いている。
時刻t3では、キャッシュメモリにとっては空き状態(ウェイト状態)である。外部メモリ130の仕様により、2クロックCK後にしかデータが到達しない。時刻t4も同じである。この間、ミスヒット判定手段560は、続くラインアドレスもミスヒットするか否かを調る。
即ち、時刻のt3,t4のウェイト状態のとき、コン卜ロール回路110から出力される信号HIT・Eが“L”レベルになる。セレクタ561は通常、レジスタ114の方を向いているが、信号HIT・Eが“L”レベルの間だけ、レジスタ563の方を向く。このレジスタ563では、常に、キャッシュタグメモリ111に与えるべき値を加算器562で+1インクリメントした値を取り込んでいるため、ウェイト状態のときに続くラインドレスがミスヒットか否かを調べることができる。なお、この間に一致検出回路113から出力されるタグヒット信号TAG・HITは、要求されたキャッシュアドレスCAに対して無効なので、信号HIT・EによってANDゲート574でマスクをかけてある。この結果、時刻t3及びt4ともミスヒットしたため、もともとミスヒットを起こしたラインアドレスとそれに続く2つのラインアドレスも、同時に更新する予定になる。
時刻t5において、もともとミスヒットを起こしたキャッシュアドレスCAのデータが到達したため、キャッシュデータメモリ112及びキャッシュタグメモリ111はライト状態になる。通常、キャッシュデータメモリ112に対してのアドレスはキャッシュアドレスCAであるが、書込み時は、外部レジスタ116から外部メモリ130へのアドレスEAが送出され、外部メモリ130のデータ出力端子Dからデータが読出され、キャッシュタグメモリ111及びキャッシュデータメモリ112のデータとタグTAGが更新される。このとき、外部レジスタ116のライン内アドレスIAに対応するカウンタ部分が加算器535でインクリメントされ、次のデータの更新に備える。ラインアドレスの更新期間中は、セレクタ536が加算器535の方を向いている。
時刻t6において、一致検出回路113が一致状態を検出するので、キャッシュメモリがヒット状態となり、キャッシュデータメモリ112のデータ出力端子Doから読出されたnのキャッシュデータCDがキャッシュ要求者101へ返され、レジスタ114には新た要求されたキャッシュアドレスCAのn+1が書込まれる。その後の時刻t7〜t10は、時刻t5,t6と同様の動作をする。
時刻t11において、もともとミスヒットを起こしたライン内の最後のアドレスを更新する。基本的には、時刻t5と同様の動作をするが、この他に、必要性判別手段570によって続くラインの更新を行うか否かの判定を行う。
即ち、時刻t3において続くラインアドレスはミスヒットすることがわかっている。ここで、今更新しているラインアドレスの中に分岐命令があるか否かをデコーダ571でデコードした結果が、キャッシュデータメモリ112へのライト時(時刻t5,t7,t9,t11)のとき、コン卜ロール回路110から出力される信号HIT・Eが“L”レベルのときにリセットされたフラグ573に格納されている。そのため、時刻t11では、このフラグ573の値とデコード結果とをORゲート572によって論理和を求めることにより、分岐命令がミスヒットしたランアドレス内にあったか否かを判定できる。ここでは、ミスヒットしたラインアドレス内に分岐命令がなかったので、加算器582によってインクリメントした値を外部レジスタ116にロードし、次から続くラインアドレスを更新する。
時刻t12は時刻t6と同様の動作である。さらに、時刻t13〜t19は、時刻t5〜t11と同様の動作である。時刻t19のとき、今度は時刻t4において、この次のラインアドレスもミスヒットすることがわかっているが、時刻t17において必要性判別手段570によって分岐命令が出力されたため、フラグ573の内容が“1”になっているので、次の更新を行わず、ここで外部メモリ130へのアクセスを取り止める。
時刻t20では、時刻t12と同様の動作である。ただ、この時刻t20において、レジスタ114に格納されるキャッシュアドレスCAは、n+6アドレスにあった分岐命令によって発生したアドレスmである。時刻t21以降は、キャッシュ要求者101からの要求によって発生したキャッシュ更新サイクル時刻t2以降と同様の動となる。
この第5の実施例では、次のような利点を有している。
本実施例では、ミスヒットしてから最初のデータが到達するまでのキャッシュメモリがひまな間(ウェイト状態の間)に、ミスヒット判定手段560により、ミスヒットを起こしたラインアドレスの次のラインアドレスもミスヒットするか否かを調ベ、必要性判別手段570により、実際にミスヒットしたラインの連続アドレスが必要であることが判れば(例えば、分岐命令がなければ)、更新手段580によって次のラインアドレスも続けて更新するようにしているので、ヒット率を向上できる。
第5の実施例のキャッシュメモリ装置500において、キャッシュデータメモリ112とキャッシュタグメモリ111の書込みをそれぞれ独立して行わせることにより、ミスヒットによるキャッシュデータメモリ112へのデータの書込み最中でも、キャッシュタグメモリ111を利用して次のラインアドレスのヒット/ミスヒットを調べることを可能にしたのが図16に示す第6の実施例のキャッシュメモリ装置600である。
図16はキャッシュメモリ装置600の回路図である。図14に示すキャッシュメモリ装置500に対し、一致検出回路113と一致検出回路601の一致検出結果に基づいて、コントロール回路110が、キャッシュタグメモリ111及びキャッシュデータメモリ112をそれぞれ独立して書込みを許可するライトイネーブル信号TWE、DWEを出力している。また、キャッシュメモリ装置600はORゲート602が付加されている。一致検出回路601は、キャッシュアドレスCAのタグTAG及びラインアドレスLAと外部レジスタ116に格納されたキャッシュアドレスのタグTAG及びラインアドレスLAの一致を検出し、一致が検出された場合は、コントロール回路110へ書込みマッチング信号WA−MATを出力する。つまり、外部メモリから要求のアドレスが出力されているかどうかを検出するものである。
コントロール回路110は、書込みマッチング信号WA−MATに応じて、キャッシュデ一タメモリ112ヘライトイネーブル信号DWEを出力し、キャッシュタグメモリ111へ1ラインデータごとに1回だけ、キャッシュタグメモリ111へのライトイネーブル信号TWEを出力する。ORゲート602は外部メモリ130のデータが有効であることを示すD−WAIT信号に応じて、コントロール回路110から出力されるHIT−V信号とANDゲート574との論理和をとり、その結果をキャッシュ要求者にHIT信号として出するものである。
次に、図16のキャッシュメモリ装置600の動作を図17を用いて説明する。図17はキャッシュメモリ装置600の動作を示す動作タイミングチャートである。図17において、1ライン4アドレスとし、外部メモリ130へのアクセスは最初のものは2クロック後に有効、連続アドレスならば1クロック後に有効になるものとしている。また、キャッシュメモリ装置600に対する要求のキャッシュアドレスCAはnからn+7まではミスヒットし、n+6に分岐命令があるときの実行例である。
時刻t1において、要求のアドレスであるn−1はヒットしたため、キャッシュタグメモリ111へはn−1がそのまま渡される。時刻t2において、nがミスヒットとなり、次の時刻t4から外部メモリ130ヘアクセスする為、このnは更新手段580を介して外部レジスタ116に取込まれ、nに対するキャッシュデータの更新が開始される。時刻t7〜12において、最初にキャッシュデータの更新を起こしたアドレスnと同じラインのn+1,n+2,n+3のヒット状態を調べ、全てミスヒットであるから外部メモリ130から続いてn+1,n+2,n+3のデータが送られ、ライトイネーブル信号DWEに応じてキャッシュデータメモリ112へn+1,n+2,n+3の書込みを行う。
この時、一致検出回路601は外部メモリ130から要求のアドレスのデータが読出されているか否かを調べる。例えば時刻t7においては要求のキャッシュアドレスCAがn+1であるので、外部レジスタ116に格納されたアドレスnが、加算回路535によって、下位1ビット(IA)を1だけインクリメントした時に、一致検出回路601は一致を検出し、WA−MAT信号をコントロール回路110に出する。また、外部メモリ130は読出し状態となっているので、D−WAIT信号もコントロール回路110に対して出力されている。
コントロール回路110は、WA−MAT信号とD・WAIT信号により要求のアドレスが正しく読出されることをキャッシュ要求者に通達するためHIT−V信号を出力し、HIT信号を生成する。このキャッシュデータメモリ112の更新期間として時刻t13において、更新手段580により、n+3の次のラインアドレスつまり、n+4が生成され、キャッシュタグメモリ111に対し、n+4のヒット状態をチェックする。本例においてはn+4もミスヒットとしている。このミスヒットの結果は図示せぬレジスタに格納する。また、ミスヒットの結果をコントロール回路110に送るようにしてもよい。時刻t12において、アドレスnのラインの更新が終了し、コントロール回路110はライトイネーブル信号DWEの4回目の出力とともにライトイネーブル信号TWEを出力する。また、必要性判別手段570はn〜n+3には分岐命令を検出しないので、更新作業は継続して行われる。よって、n+4のラインの更新が行われる。時刻t17において、n+6は分岐命令であることを、必要性判別手段570が検出し、この検出結果をコントロール回路110に対して出力する。コントロール回路110はn+4のラインの更新が終了した後の時刻t21にて、分岐先のmに対し、上記と同様な動作を行う。
以上のように、6つの実施例にて、本発明のキャッシュメモリ装置を説明したが、各実施例に示す回路及び動作タイミングは同様の動作が可能であれば、種々に変更可能である。
以上詳細に説明したように、本発明の第1の実施例によれ、ミスヒットによるキャッシュデータ更新中に、書込んでいるデータをキャッシュ要求者に渡せる手段を設けたので、ヒット率が向上するとともにミスヒトペナルティ時間が短縮する。
本発明の第2の実施例によれ、第1の実施例において更にキャッシュ要求者のウェイト要求に対してキャッシュデータの更新を中断する手段を設けたので、第1の実施例の効果に加えて、ウェイト要求の信号によりキャッシュデータの更新処理全体を待ち状態にし、これによりキャッシュ要求者とキャッシュメモリ装置とのタイミングを合わせることができる。従って、キャッシュメモリ装置を有するシステム全体としての動作特性が向上する。
本発明の第3の実施例によれば、第1の実施例において更にキャッシュ要求者のウェイト要求に対して、キャッシュ要求者へのキャッシュデータの出力を中断する手段と、ウェイト状態時に更新したキャッシュデータを格納しておくバッファ手段とを設けたので、ウェイト要求に対してキャッシュデータの更新を中断することなく、かつ、ウェイト状態時に更新されたキャッシュデータに対してもアクセス可能となり、第2の実施例より動作特性が向上する。
本発明の第4の実施例によれば、第3の実施例において設けたバッファ手段に格納する対象に対して、キャッシュデータの格納の必要性を判断する手段を設けて、必要なキャッシュデータのみをバッファ手段に格納するようにしたので、第3の実施例に比ベて、少ないハード量で、第3の実施例と同様な効果が得られる。
第5の実施例によれば、ミスヒットによるキャッシュデータ更新中に、ミスヒットしたキャッシュデータのラインアドレスデータに続く次のラインアドレスデータもミスヒットするか否かを判定する手段と、キャッシュデータ更新中に更新しているデータの内容が必要とされるか否かを判別する手段と、この判別手段によって更新しているデータの内容が必要とされ、かつ、次のラインアドレスデータがミスヒットであったならば、続けて次のラインアドレスデータも更新する手段を設けたので、キャッシュデータの更新までの時間を利用して次のラインアドレスデータのヒット状態を判定でき、更新中のアドレスに分岐命令等がなければ、次のラインアドレスデータを続けて更新するようにしたので、キャッシュメモリ装置の稼動率及びヒット率がより向上し、ミスヒットペナルティ時間が短くなる。
第6の実施例によれば、第5の実施例のキャッシュメモリ装置において、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立のライトイネーブル信号で制御するとともに要求のキャッシュメモリと外部メモリから読出されているメモリとの一致を検出する一致検出回路を設け、コントロール回路が、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立したライトイネーブル信号によって制御しても、キャッシュ要求者には正しく書込みが行われていることを示すHIT信号を出力するようにしたので、キャッシュデータメモリの更新期間中にキャッシュタグメモリを利用して、更新中のキャッシュアドレスのデータに続くキャッシュアドレスのヒット状態を判定でき、第5の実施例と同様な効果を得ることができる。
本発明の第1の実施例を示すキャッシュメモリ装置の回路図である。 従来のキャッシュメモリ装置の回路図である。 キャッシュタグメモリの記憶内容を説明する図である。 図2のキャッシュメモリ装置の動作を示すタイミングチャートである。 従来の他の例を示すキャッシュメモリ装置の回路図である。 図5のキャッシュメモリ装置の動作を示すタイミングチャートである。 図1のキャッシュメモリ装置の動作を示すタイミングチャートである。 本発明の第2の実施例を示すキャッシュメモリ装置の回路図である。 図8のキャッシュメモリ装置の動作を示すタイミングチャートである。 本発明の第3の実施例を示すキャッシュメモリ装置である。 図10のキャッシュメモリ装置の動作を示すタイミングチャートである。 本発明の第4の実施例を示すキャッシュメモリ装置である。 図12のキャッシュメモリ装置の動作を示すタイミングチャートである。 本発明の第5の実施例を示すキャッシュメモリ装置である。 図14のキャッシュメモリ装置の動作を示すタイミングチャートである。 本発明の第6の実施例を示すキャッシュメモリ装置である。 図16のキャッシュメモリ装置の動作を示すタイミングチャートである。
符号の説明
100,200,300,400,500,600 キャッシュメモリ装置
101 キャッシュ要求者
110 コントロール回路
112 キャッシュデータメモリ
113 一致検出回路
114,115 レジスタ
116 外部レジスタ
117,118,120,121 トライステートバッファ
122 IAバス
123 IDバス
124 ANDゲート
130 外部メモリ
150 一致検出回路
151 ORゲート
201,202,203 ANDゲート
301 レジスタ
302 一致検出回路
303 ANDゲート
304,321 トライステートバッファ
305,351 ORゲート
401 バッファリング監視回路
535,562,582 加算器
536,561,581 セレクタ
560 ミスヒット判定手段
563 レジスタ
570 必要性判別手段
571 デコーダ
572 ORゲート
573 フラグ
574 ANDゲート
580 更新手段
601 一致検出回路
602 ORゲート

Claims (3)

  1. 1アドレス及び該第1アドレスとは異なる第2のアドレスにより構成されるキャッシュアドレスを格納する第1レジスタと、
    第3アドレスを格納する第1メモリと、
    キャッシュアデータを格納する第2メモリと、
    前記第1レジスタに格納された前記第1アドレス若しくはミスヒット判定回路に格納された増加された前記第1アドレスと前記第1メモリに格納された前記第3アドレスとが一致しているか否かを検出する一致検出回路と、
    前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致している場合には前記第2アドレスに対応するキャッシュデータを前記第2メモリから読み出し、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合には前記第2アドレスに対応するデータを外部メモリから読み出し前記第2メモリに書込むことを指示するコントロール回路と、
    前記第1レジスタに格納された前記第1アドレスと前記第3アドレスが一致していない場合であって、前記第2メモリが前記外部メモリから読み出された前記データを受け取るまでの間、前記第1アドレスを1つずつ増加して格納し続ける前記ミスヒット判定回路と、
    前記第1レジスタに格納された前記キャッシュドレスの次のキャッシュアドレスが分岐命令であるか否かを判別する必要性判別回路と、
    前記ミスヒット判定回路に格納された増加された前記第1アドレスと前記第3アドレスとが一致しておらず、前記必要性判別回路において前記次のキャッシュアドレスが前記分岐命令でないと判別された場合、前記第1アドレスに対応する第2アドレスを第2レジスタに与える更新回路と、
    前記更新回路と前記外部メモリ間に設けられ、前記第2アドレスを格納する前記第2レジスタと
    を備えたことを特徴とするキャッシュメモリ装置。
  2. 前記更新回路は、前記第2レジスタに格納された前記第2アドレスを1つずつ増加して前記第2レジスタに書込むことを特徴とする請求項1記載のキャッシュメモリ装置。
  3. 第1アドレス及び該第1アドレスとは異なる第2アドレスにより構成されるキャッシュアドレスを格納する第1レジスタと、
    第1制御信号に応じて制御される、第3アドレスを格納する第1メモリと、
    前記第1制御信号とは異なる第2制御信号に応じて制御される、キャッシュデータを格納する第2メモリと、
    前記第1レジスタに格納された前記第1アドレス若しくはミスヒット判定回路に格納された増加された前記第1アドレスと前記第1メモリに格納された前記第3アドレスとが一致しているか否かを検出する第1の一致検出回路と、
    前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致している場合には前記第2アドレスに対応するキャッシュデータを前記第2メモリから読出し、前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合には前記第2アドレスに対応するデータを外部メモリから読出し前記第2メモリに書込むことを指示し、前記第1レジスタに格納された前記第2アドレスと第2レジスタに格納された第2アドレスとが一致している場合には第1の間隔毎に前記第1制御信号と前記第1の間隔よりも短い第2の間隔毎に前記第2制御信号とを出力するコントロール回路と、
    前記第1レジスタに格納された前記第1アドレスと前記第3アドレスとが一致していない場合であって、前記第2メモリが前記外部メモリから読出された前記データの書込みを終えるまでの間、前記第1アドレスを1つずつ増加して格納し続ける前記ミスヒット判定回路と、
    前記第1レジスタに格納された前記キャッシュアドレスの次のキャッシュアドレスが分岐命令であるか否かを判別する必要性判別回路と、
    前記ミスヒット判定回路に格納された増加された前記第1アドレスと前記第3アドレスとが一致しておらず、前記必要性判別回路において前記次のキャッシュアドレスが前記分岐命令でないと判定された場合、前記第1アドレスに対応する第2アドレスを前記第2レジスタに与える更新回路と、
    前記第1レジスタに格納された前記第2アドレスを格納する前記第2レジスタと、
    前記第1レジスタに格納された前記第2アドレスと前記第2レジスタに格納された前記第2アドレスとが一致しているか否かを検出する第2の一致検出回路と
    を備えたことを特徴とするキャッシュメモリ装置。
JP2004061514A 1992-02-28 2004-03-05 キャッシュメモリ装置 Expired - Lifetime JP3729832B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004061514A JP3729832B2 (ja) 1992-02-28 2004-03-05 キャッシュメモリ装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4177492 1992-02-28
JP2004061514A JP3729832B2 (ja) 1992-02-28 2004-03-05 キャッシュメモリ装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP51470293A Division JP3614428B2 (ja) 1992-02-28 1993-03-01 キャッシュメモリ装置

Publications (2)

Publication Number Publication Date
JP2004220624A JP2004220624A (ja) 2004-08-05
JP3729832B2 true JP3729832B2 (ja) 2005-12-21

Family

ID=32910561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004061514A Expired - Lifetime JP3729832B2 (ja) 1992-02-28 2004-03-05 キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JP3729832B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171225B2 (en) * 2007-06-28 2012-05-01 Intel Corporation Cache for a multi thread and multi core system and methods thereof

Also Published As

Publication number Publication date
JP2004220624A (ja) 2004-08-05

Similar Documents

Publication Publication Date Title
US8117395B1 (en) Multi-stage pipeline for cache access
US5535350A (en) Cache memory unit including a replacement address register and address update circuitry for reduced cache overhead
US6327643B1 (en) System and method for cache line replacement
US7577791B2 (en) Virtualized load buffers
JP3407808B2 (ja) コンピュータシステム
US5854943A (en) Speed efficient cache output selector circuitry based on tag compare and data organization
KR100282118B1 (ko) 하이스루풋단일포트다중갱신유니트태그제어기
US6976130B2 (en) Cache controller unit architecture and applied method
JP3215105B2 (ja) メモリアクセス装置
US20100325366A1 (en) System and method for fetching an information unit
JP3729832B2 (ja) キャッシュメモリ装置
JP3614428B2 (ja) キャッシュメモリ装置
JP3761890B2 (ja) キャッシュメモリ装置
US5960456A (en) Method and apparatus for providing a readable and writable cache tag memory
JPH07234819A (ja) キャッシュメモリ
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JP4037806B2 (ja) キャッシュメモリ装置
US20060129762A1 (en) Accessible buffer for use in parallel with a filling cacheline
JP3757768B2 (ja) ベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式
JP3492544B2 (ja) キャッシュメモリの更新キャンセルシステム及び方法
JPH1185613A (ja) キャッシュメモリ
JP3147456B2 (ja) キャッシュメモリシステム
JPH07152650A (ja) キャッシュ制御装置
JP2762797B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JP2001344152A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050801

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: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051004

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081014

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131014

Year of fee payment: 8

EXPY Cancellation because of completion of term
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370