JP3729832B2 - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置 Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
Harold S.Stone著「高性能コンピュータアーキテクチャ」(平1−3−30)丸善(株)、P.23−42 日経エレクトロニクス[434].(1987−11−16)日経BP社、P.159−174
このキャッシュメモリ装置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を出力する回路である。
キャッシュタグメモリ11は、アドレス(タグ)TAGと有効ビット(バリッドビット)等からなる。タグTAGは、ハードウエア量を減らすために、ある程度、アドレスをグループ化して付けられている。このグループ化された数をライン数(またはブロック数)といい、アドレスの近いものをまとめるのが一般的である。図3においては、1グループに4つのデータとしている。つまり、キャッシュアドレスCAの下位2ビットを除くビットが同じもの、例えば“0…0”のデータを1グループとしている。
キャッシュ要求者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へ出力される。
図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”にクリアされる。
メモリインタリーブ方式やダイナミックRAM(以下、DRAMという)の特性を生かしたアクセス方法(ページモードやスタティックカラム等)により、バースト転送をサポートすることによってミスヒットペナルティ時間を短縮することも考えられる。その構成例を図5に示す。
図5はキャッシュメモリ装置51の回路図であり、図2中の要素と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置51は、DRAMページモードを使った構成である。図2のキャッシュメモリ装置50と基本的に異なる点は、外部レジスタ16内のカウンタの出力が加算器35で+1インクリメント(増分)されてセレクタ36に入力し、そのセレクタ36の出力が該カウンタに入力するようになっている点である。なお、図5の符号40は、結線状態を示す。
DRAMページモードとは、RASNを“L”レベルのままCASNパルスを次々と加えることにより、高速の読出し/書込み動作を行うモードである。このモードでは、RASNの“L”レベル状態でビット線レベルを“L”レベルあるいは“H”レベル状態にしたまま、CAS系の動作を連続的に繰返し、任意のビット線への書込みあるいは読出しを行うようになっている。
図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の形で読出される。これにより、ミスヒットペナルティ時間を短縮できる。
図2に示すキャッシュメモリ装置50ではミスヒット時にミスヒットしたデータをキャッシュデータメモリ12に書込むための時間が長いため、データの読出しにかかるミスヒットペナルティ時間が長い。
図5に示すキャッシュメモリ装置51では、外部メモリ30等を構成するDRAMの方がバースト転送速度に追いついていないため、最初の1つを読込むまでに数クロックかかる。最初の1つを読込んだ後には図6に示すように、4データ分を読んでくる。
キャッシュメモリ装置51では、ミスヒットを起こしたアドレスの含まれるラインの次のラインが続けて必要な場合であっても、一度バースト転送アクセスモードを抜けて、また新たにミスヒットを起こしてラインのうちの最初のデータが到達するまで、無駄な時間を費やしてしまっている。つまり、ミスヒットしたラインのデータを更新するときに、その後の連続したアドレスのデータがミスヒットすることが分かっていても、必ず一定のラインのデータしか更新しないため、ヒット率が低下するという問題がある。そのため、未だ技術的に充分満足のゆくキャッシュメモリを得ることが困難であった。
請求項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の一致検出回路とを備えたものである。
また、上記の場合において、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立のライトイネーブル信号で制御することにより、キャッシュデータの更新期間中、即ちキャッシュデータメモリが外部メモリから読み出されたデータの書き込みを終えるまでの間にキャッシュタグメモリを利用して、更新中のラインアドレスに続くラインアドレスのヒット状態を判定でき、更新中のアドレスに分岐命令がなければ、次のラインアドレスを続けて更新し、更新されたアドレスとキャッシュタグメモリに格納されたアドレスとを比較し、一致した時には続けてキャッシュデータの更新をすることにより実現することができる。
このキャッシュメモリ装置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を活性化する機能を有している。
図7は、図1のキャッシュメモリ装置200の動作を示すタイミングチャートである。この図7において、n+1=“x…x01”、n+4=“Y…Y00”とする。そして、1ライン4アドレス分としている。なお、外部メモリ130は、バースト転送により、連続アドレスなら、最初のみ1ウェイトで読めるものとしている。バリッドビットは、最後の書込みで“1”が書かれる。また、外部レジスタ116の下位ビットは、カウントイネーブル端子CEにより活性化されるカウンタになっている。
キャッシュデータメモリ112が更新状態に入ると、コントロール回路110は、外部メモリ130からのデータの取り込みを可能にするため、キャッシュ更新信号SIOaによってトライステートバッファ120,121をオン状態にすると共に、IAバス122へのアドレス供給源である外部レジスタ116のカウントイネーブル端子CEを活性化し、IDバス123への読出しデータ供給源を外部メモリ130にする。外部レジスタ116の内容は、ミスヒット時には必ず書き換えられる。
外部レジスタ116の下位2ビットはカウンタになっているので、キャッシュタグメモリ111及びキャッシュデータメモリ112の各ライトイネーブル端子WEが活性化されるときに、該外部レジスタ116のカウントイネーブル端子CEも活性化されて該カウンタがカウントアップする。
従って、キャッシュ要求者101がウェイト要求をすることにより、キャッシュタグメモリ111及びキャッシュデータメモリ112へのデータの書込み、外部レジスタ116の外部メモリ130からの読出しが要求されたデータアドレスの出力、キャッシュデータCDのレジスタ115への格納が禁止され、キャッシュメモリ装置200のキャッシュデータの更新処理全体が待ち状態となる。
図9において、キャッシュ要求者101がウェイト要求をしているクロック2〜4の間はレジスタ114,115は不活性化となり、それぞれ、キャッシュアドレスCA=n+1、キャッシュデータCD=mを格納したままである。また、外部レジスタ116もn+1を格納したままである。さらに、キャッシュタグメモリ111及びキャッシュデータメモリ112の各ライトイネーブル端子WEは“L”レベルのままで活性化されない。
レジスタ301各々には外部レジスタ116で更新されたアドレス、外部メモリ130から読出されたデータ及びコントロール回路110から出力される信号であるバリッドフラグが1セットで格納されている。このコントロール回路110から出力される信号がイネーブル端子Eに入力することによって、レジスタ301は活性化する。本実施例においてレジスタ301は3つ(バッファ0,1,2)用意されている。これは1ライン4アドレスで、キャッシュデータの更新は1ライン分行うことから、更新に充分適用できる数としたためで、3つに限るものではない。
図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からの出力信号が入力されることによって、バリッドフラグがバリッド(有効)になる。
第3の実施例のキャッシュメモリ装置300に対して、キャッシュメモリ装置400はバッファリング監視回路401が付加されている。バッファリング監視回路401はキャッシュ要求者101がウェイト状態の時に更新するキャッシュデータがレジスタ301に格納すべきデータか否かをチェックし、所定の格納先のレジスタ301(図12ではレジスタ301は2つしか示されていないので、バッファ0あるいはバッファ1)に格納するとともに、不要になったレジスタ301のデータを無効にするものである。バッファリング監視回路401はウェイト信号WAIT、各一致検出回路150、302の出力信号(検出結果)、外部レジスタ116の出力、及びコントロール回路110のキャッシュタグメモリ111及びキャッシュデータメモリ112のライトイネーブル端子を活性化する出力信号が入力され、レジスタ301を活性化する信号及びレジスタ301に格納されたデータの有効性を示すバリッドフラグを出力する。
バッファリング監視回路401は、レジスタ301(バッファ0と1)にデータを格納する条件及び格納したデータを無効にする条件を、例えば次のようにしている。
“キャッシュデータメモリヘの書込みをしているデータのアドレスの下位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がウェイト状
態でない。”
このキャッシュメモリ装置500は、図5のキャッシュメモリ装置51と同様に、MPU等の命令発生部に設けられる命令キャッシュメモリとして動作するもので、キャッシュ更新時においてキャッシュメモリがウェイト状態のときにミスヒットしたラインアドレスに続く次のラインアドレスもミスヒットするか否かを判定するミスヒット判定手段560と、キャッシュ更新中に新たに読んできたデータ(命令)が必要とされるか否か(例えば、分岐命令があるか否か)を判別する必要性判別手段570と、次のラインアドレスもミスヒットであってその内容が必要とされるならば(分岐命令がなければ)、続けて次のラインアドレスも更新する更新手段580とANDゲート574が、付加されている。
ANDゲート574は一致検出回路113から出力されるタグヒット信号TAG・HIT、コントロール回路110から出力される信号HIT・E、及び該コントロール回路110から出力されるライトイネーブル信号S10bの論理積を求めてヒット信号HITを出力する。ライトイネ一ブル信号SIObは、キャッシュタグメモリ111及びキャッシュデータメモリ112にそれぞれ設けられた反転ライトイネーブル端子WENをそれぞれ活性化する信号である。
更新手段580は、レジスタ114の出力を選択して外部レジスタ116の内容を更新するセレクタ581と、該外部レジスタ116の出力を+1インクリメントして該セレクタ581にフィードバックする加算器582とを、備えている。なお、540は結線状態を示す。
図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つ先のラインアドレスまでチェックできるものとする。
時刻t2において、キャッシュアドレスCAとしてnが供給されると、一致検出回路113の検出結果によってミスヒットとなる。そのため、キャッシュメモリ装置500は次から更新モードヘ移る。そして、外部メモリ130へのアドレスEAを送出するレジスタ116に、ミスヒットを起こしたアドレスnがセレクタ581を通して書込まれる。セレクタ581は、常時、レジスタ114の方を向いている。
即ち、時刻の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つのラインアドレスも、同時に更新する予定になる。
時刻t11において、もともとミスヒットを起こしたライン内の最後のアドレスを更新する。基本的には、時刻t5と同様の動作をするが、この他に、必要性判別手段570によって続くラインの更新を行うか否かの判定を行う。
即ち、時刻t3において続くラインアドレスはミスヒットすることがわかっている。ここで、今更新しているラインアドレスの中に分岐命令があるか否かをデコーダ571でデコードした結果が、キャッシュデータメモリ112へのライト時(時刻t5,t7,t9,t11)のとき、コン卜ロール回路110から出力される信号HIT・Eが“L”レベルのときにリセットされたフラグ573に格納されている。そのため、時刻t11では、このフラグ573の値とデコード結果とをORゲート572によって論理和を求めることにより、分岐命令がミスヒットしたラインアドレス内にあったか否かを判定できる。ここでは、ミスヒットしたラインアドレス内に分岐命令がなかったので、加算器582によってインクリメントした値を外部レジスタ116にロードし、次から続くラインアドレスを更新する。
時刻t20では、時刻t12と同様の動作である。ただ、この時刻t20において、レジスタ114に格納されるキャッシュアドレスCAは、n+6アドレスにあった分岐命令によって発生したアドレスmである。時刻t21以降は、キャッシュ要求者101からの要求によって発生したキャッシュ更新サイクル時刻t2以降と同様の動作となる。
本実施例では、ミスヒットしてから最初のデータが到達するまでのキャッシュメモリがひまな間(ウェイト状態の間)に、ミスヒット判定手段560により、ミスヒットを起こしたラインアドレスの次のラインアドレスもミスヒットするか否かを調ベ、必要性判別手段570により、実際にミスヒットしたラインの連続アドレスが必要であることが判れば(例えば、分岐命令がなければ)、更新手段580によって次のラインアドレスも続けて更新するようにしているので、ヒット率を向上できる。
図16はキャッシュメモリ装置600の回路図である。図14に示すキャッシュメモリ装置500に対し、一致検出回路113と一致検出回路601の一致検出結果に基づいて、コントロール回路110が、キャッシュタグメモリ111及びキャッシュデータメモリ112をそれぞれ独立して書込みを許可するライトイネーブル信号TWE、DWEを出力している。また、キャッシュメモリ装置600はORゲート602が付加されている。一致検出回路601は、キャッシュアドレスCAのタグTAG及びラインアドレスLAと外部レジスタ116に格納されたキャッシュアドレスのタグTAG及びラインアドレスLAの一致を検出し、一致が検出された場合は、コントロール回路110へ書込みマッチング信号WA−MATを出力する。つまり、外部メモリから要求のアドレスが出力されているかどうかを検出するものである。
この時、一致検出回路601は外部メモリ130から要求のアドレスのデータが読出されているか否かを調べる。例えば時刻t7においては要求のキャッシュアドレスCAがn+1であるので、外部レジスタ116に格納されたアドレスnが、加算回路535によって、下位1ビット(IA)を1だけインクリメントした時に、一致検出回路601は一致を検出し、WA−MAT信号をコントロール回路110に出力する。また、外部メモリ130は読出し状態となっているので、D−WAIT信号もコントロール回路110に対して出力されている。
本発明の第2の実施例によれば、第1の実施例において更にキャッシュ要求者のウェイト要求に対してキャッシュデータの更新を中断する手段を設けたので、第1の実施例の効果に加えて、ウェイト要求の信号によりキャッシュデータの更新処理全体を待ち状態にし、これによりキャッシュ要求者とキャッシュメモリ装置とのタイミングを合わせることができる。従って、キャッシュメモリ装置を有するシステム全体としての動作特性が向上する。
本発明の第3の実施例によれば、第1の実施例において更にキャッシュ要求者のウェイト要求に対して、キャッシュ要求者へのキャッシュデータの出力を中断する手段と、ウェイト状態時に更新したキャッシュデータを格納しておくバッファ手段とを設けたので、ウェイト要求に対してキャッシュデータの更新を中断することなく、かつ、ウェイト状態時に更新されたキャッシュデータに対してもアクセス可能となり、第2の実施例より動作特性が向上する。
本発明の第4の実施例によれば、第3の実施例において設けたバッファ手段に格納する対象に対して、キャッシュデータの格納の必要性を判断する手段を設けて、必要なキャッシュデータのみをバッファ手段に格納するようにしたので、第3の実施例に比ベて、少ないハード量で、第3の実施例と同様な効果が得られる。
第6の実施例によれば、第5の実施例のキャッシュメモリ装置において、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立のライトイネーブル信号で制御するとともに要求のキャッシュメモリと外部メモリから読出されているメモリとの一致を検出する一致検出回路を設け、コントロール回路が、キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立したライトイネーブル信号によって制御しても、キャッシュ要求者には正しく書込みが行われていることを示すHIT信号を出力するようにしたので、キャッシュデータメモリの更新期間中にキャッシュタグメモリを利用して、更新中のキャッシュアドレスのデータに続くキャッシュアドレスのヒット状態を判定でき、第5の実施例と同様な効果を得ることができる。
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アドレスとは異なる第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アドレスを1つずつ増加して前記第2レジスタに書込むことを特徴とする請求項1記載のキャッシュメモリ装置。
- 第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の一致検出回路と
を備えたことを特徴とするキャッシュメモリ装置。
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)
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 |
-
2004
- 2004-03-05 JP JP2004061514A patent/JP3729832B2/ja not_active Expired - Lifetime
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 |