JP3100807B2 - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JP3100807B2 JP3100807B2 JP05225402A JP22540293A JP3100807B2 JP 3100807 B2 JP3100807 B2 JP 3100807B2 JP 05225402 A JP05225402 A JP 05225402A JP 22540293 A JP22540293 A JP 22540293A JP 3100807 B2 JP3100807 B2 JP 3100807B2
- Authority
- JP
- Japan
- Prior art keywords
- write
- tag
- data
- address
- bank
- 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 - Fee Related
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
使用されるキャッシュメモリ装置、特に、書き込み要求
を一時的に保持するための書き込みバッファを備えたキ
ャッシュメモリ装置に関するものである。
ア命令の頻度は非常に高いので、これらの命令を高速に
処理することは、情報処理装置の高性能化にとって極め
て重要である。そのため、近年では、情報処理装置にお
いて中央処理装置(CPU)により高速に読み出し/書
き込みができるキャッシュメモリ装置がよく用いられて
いる。
トア命令に基づく書き込み要求を発行する場合、CPU
はその書き込み要求の処理完了を待つ必要がない。とこ
ろが、CPUがロード命令に基づく読み出し要求を発行
する場合には、CPUはその読み出し要求への応答とし
てのキャッシュメモリ装置からの読み出しデータをすぐ
に必要とする。そこで、情報処理装置の性能を上げるた
めに、キャッシュメモリ装置においてストア命令の処理
を待たせてロード命令の処理を先に行なうことが考えら
れている(Mike Johnson著「Superscalar Microprocess
or Design 」Prentice Hall 出版,1991年,150 〜152
頁参照)。
が続くような命令シーケンスにおいて、ストア命令がキ
ャッシュミスを起こしたとする。キャッシュメモリ装置
は、ストア命令のアドレスのデータを主記憶装置から読
み出し、そのデータで自己のデータエントリを置き換え
る。主記憶装置のアクセス時間はキャッシュメモリ装置
のアクセス時間と比べて通常、非常に長いので、ストア
命令が完了するまで次のロード命令の処理を待たせるの
は、性能の大きな損失である。
行なう情報処理装置において、複数サイクルを使って演
算する命令の結果をストア命令がメモリへ格納する場
合、ストアすべきデータのアドレスはすぐに得られて
も、前の命令の演算が完了しないため、ストアすべきデ
ータがすぐには得られない場合がある。このストア命令
の後にロード命令がある場合、ストア命令が完了するま
でロード命令を待たせるのも、同様に性能低下をもたら
す。
行できない場合、ストア命令の実行を待たせて、先にロ
ード命令を実行する。ただし、ストアすべきデータのア
ドレスとロードすべきデータのアドレスとが一致する場
合はロード命令の実行を先に行なうことはできないの
で、アドレスの比較器によってこれを検出する。複数の
ストア命令を待たせて、先にロード命令を実行する場合
は、ストアすべきデータとそのアドレスとを保持するた
めのラッチを複数持たせ、ロードすべきデータのアドレ
スとラッチに格納されている複数のストアすべきデータ
のアドレスとを比較する。比較器はストアすべきデータ
のアドレスを保持するためのラッチの数だけ必要であ
る。
アティブ方式のキャッシュメモリ装置のブロック図であ
る。図10において、40a,40bはそれぞれバンク
である。第1バンク40aは、データを保持するための
複数のデータエントリ2aと、データのアドレス情報を
保持するための複数のタグエントリ3aと、データが有
効であるかどうかを示す複数の有効ビット4aとを各々
備えている。第2バンク40bも同様に、データエント
リ2bと、タグエントリ3bと、有効ビット4bとを各
々複数備えている。41は、ストア命令に対する書き込
みアドレス44と書き込みデータ45とを保持するため
の書き込みバッファである。この例では、書き込みアド
レス44と書き込みデータ45とをそれぞれ2つずつ保
持できる。更に、書き込みバッファ41は、保持してい
る書き込みアドレス44と新たに与えられたアドレス1
0とを比較して、一致を検出するための一致検出手段4
2を持つ。7は選択回路であり、CPUから与えられた
アドレス10と書き込みバッファ41から出力される書
き込みアドレス46とのいずれかを、被選択アドレス1
2として出力する。8a,8bはヒット検出手段であ
り、第1及び第2バンク40a,40bの各々において
キャッシュヒットの検出を行なう。13a,13bはヒ
ット信号である。43は、両ヒット検出手段8a,8b
のいずれでもキャッシュヒットの検出が行なわれなかっ
た場合に、どのバンクのデータエントリを置き換えるか
を選択するように選択信号14を出力するための置換制
御手段である。
与えられたアドレス10を選択して出力し、タグエント
リ3a,3b及び有効ビット4a,4bが読み出され、
ヒット検出手段8a,8bによってキャッシュヒットか
ミスかが検出される。両ヒット検出手段8a,8bのい
ずれかでヒットが検出されると、書き込みデータがCP
Uから与えられるまで、アドレス10は書き込みアドレ
ス44として書き込みバッファ41に格納される。次に
ロード命令が実行されると、同様に、キャッシュヒット
かミスかが検出されるが、同時に、一致検出手段42に
よって、与えられたアドレス10と書き込みバッファ4
1に保持されている書き込みアドレス44とが比較され
る。一致すると、ロード命令で読み出すべきデータはス
トア命令で格納するデータであるので、ストア命令によ
るデータの書き込みが完了するまで、ロード命令による
読み出しは待たされる。
ようなセットアソシアティブ方式をとるキャッシュメモ
リ装置の構成では、1つのアドレスに対してデータを格
納することのできるデータエントリは全てのバンクにそ
れぞれ1つ存在するが、待たされているストア命令がど
のバンクのデータエントリに書き込もうとしているかが
分からないため、アドレスの比較の結果、アドレスが異
なることが検出されても、キャッシュミスを生じたロー
ド命令によって、ストアすべきエントリが置き換えられ
てしまう可能性がある。このため、ストア命令に対して
キャッシュミスとなり、誤動作あるいは性能の低下をも
たらすという問題点を有していた。
命令の処理を先に行なおうとしても、書き込みバッファ
に保持されている書き込みアドレスが読み出しアドレス
と一致すると、ストア命令によるデータの書き込みが完
了するまでロード命令による読み出しが待たされる結
果、命令処理効率を向上させ得ない。
を行なう場合、最初のサイクルでキャッシュヒットかど
うかを検出し、次のサイクルでデータの書き込みを行な
うので、ストア命令を連続して実行する場合、それぞれ
のストア命令に2サイクルを必要とし、情報処理装置の
性能向上の大きな妨げになるという問題点を有してい
た。
たものであって、その目的は書き込みバッファを備えた
キャッシュメモリ装置の誤動作防止及び性能向上を図る
ことにある。
め、本発明に係る第1のキャッシュメモリ装置は、セッ
トアソシアティブ方式のもとで、対応するデータエント
リに書き込みアクセス要求が発生した場合にセットさ
れ、書き込みが完了したときにリセットされる複数の書
き込み予約ビットを各バンクに備えた構成を採用したも
のである。キャッシュミスが発生した際の置換制御にあ
たって、待たせているキャッシュアクセス(書き込みア
クセス)に対応するデータエントリ以外のデータエント
リを選択するように、書き込み予約ビットがセットされ
ていないバンクのデータエントリを置き換えるべきデー
タエントリとして優先的に選択する。
ば、待たせている書き込みアクセスに対応するデータエ
ントリが分かり、そのデータエントリ以外のデータエン
トリを他のアクセス要求に対する置換制御の際に優先的
に選択することができ、待たせている書き込みアクセス
に対応するデータエントリを置き換えることなく、他の
キャッシュアクセスを実行する。
は、セットアソシアティブ方式のもとで、連続した2つ
の(第1及び第2の)書き込みアクセス要求に対し、ヒ
ットの検出のためのタグの読み出しとデータの書き込み
とを同時に行なえるように、第1の書き込みアクセス要
求に対してキャッシュヒットを検出したバンクあるいは
置き換えるべきデータエントリを有するバンクを示す識
別信号と、該第1の書き込みアクセス要求に係るアドレ
スのインデックス部とを書き込みバッファに保持してお
き、第1の書き込みアクセス要求に係るデータを書き込
む際に、保持していたインデックス部と保持していた識
別信号とによって書き込むデータエントリを選択するよ
うにしたものである。
て、対応するデータエントリに書き込みアクセス要求が
発生した場合にセットされ、書き込みが完了したときに
リセットされる複数の書き込み予約ビットを各バンクに
更に備えた構成を採用すれば、上記第1のキャッシュメ
モリ装置と同様に、他のアクセス要求に対する置換制御
の際の適切なデータエントリの選択が可能となる。これ
に代えて、他のアクセス要求に係るアドレスのインデッ
クス部と書き込みバッファに保持されているインデック
ス部とが一致した場合には、書き込みバッファに保持さ
れている識別信号で示されたバンクとは異なるバンク
を、他のアクセス要求に対して置き換えるべきバンクと
して選択するようにしても、置換制御の際の適切なデー
タエントリの選択が可能となる。
は、セットアソシアティブ方式あるいはダイレクトマッ
プ方式のもとで、書き込みバッファに保持されている書
き込みデータをそのまま読み出しデータとして供給でき
るように、対応するデータエントリに書き込みアクセス
要求が発生した場合にセットされ、書き込みが完了した
ときにリセットされる複数の書き込み予約ビットを備え
た構成を採用したものである。
ば、書き込みアクセス要求の処理中に読み出しアクセス
要求が与えられた場合には、読み出した書き込み予約ビ
ットのセット/リセットを通じて、両アクセス要求に係
るアドレスのインデックス部の一致/不一致が検知され
る。インデックス部の一致に加えて、従来と同様の方法
でタグ部の一致が検知されると、書き込みバッファに保
持されている書き込みデータがそのまま読み出しデータ
として供給される結果、ストア命令の処理を待たせてロ
ード命令の処理を先に行なうことが可能になる。
ながら説明する。
装置を用いた情報処理装置のブロック図である。簡単の
ために、2ウェイ・セットアソシアティブ方式をとる場
合について説明する。図1において、100はキャッシ
ュメモリ装置、101は中央処理装置(CPU)、10
2はバス制御装置、103は主記憶装置である。1a,
1bはそれぞれバンクである。第1バンク1aは、デー
タを保持するための複数のデータエントリ2aと、デー
タのアドレスのタグ部を保持するためのタグエントリ3
aと、データが有効であるかどうかを示す有効ビット4
aと、データの書き込みが完了していないことを示す書
き込み予約ビット5aとを各々備えている。第2バンク
1bも同様に、データエントリ2bと、タグエントリ3
bと、有効ビット4bと、書き込み予約ビット5bとを
各々複数備えている。6は、ストア命令に対する書き込
みアドレス44と書き込みデータ45とを保持するため
の書き込みバッファである。この例では、書き込みアド
レス44と書き込みデータ45とをそれぞれ2つずつ保
持できる。7は選択回路であり、CPU101から与え
られたアドレス10と書き込みバッファ6から出力され
る書き込みアドレス46とのいずれかを選択して出力す
る。8a,8bはヒット検出手段であり、両バンク1
a,1bにおいてそれぞれキャッシュヒットの検出を行
なう。104は制御回路であり、CPU101からのア
クセス要求105に応じて、キャッシュメモリ装置10
0の制御を行なう。
は読み出すべきデータのアドレス10を与え、アクセス
要求105により、読み出しの要求を行なう。アドレス
10は上位ビットのタグ部と下位ビットのインデックス
部とからなる。選択回路7はCPU101から与えられ
たアドレス10を選択し、2つのバンク1a,1bのデ
ータエントリ2a,2bが選択回路7が出力する被選択
アドレス12のインデックス部を用いて読み出される。
同時に、対応するタグエントリ3a,3bと有効ビット
4a,4bとが読み出され、ヒット検出手段8a,8b
によってヒットかどうかが検出される。ヒット検出手段
8a,8bは被選択アドレス(読み出しアドレス)12
のタグ部とタグエントリ3a,3bの内容とを比較し
て、一致し、しかも有効ビット4a又は4bが1であれ
ばキャッシュヒットとしてヒット信号13a又は13b
を出力し、両バンク1a,1bのうちヒットを検出した
方から読み出したエントリ2a又は2bのデータが読み
出しデータ70としてCPU101へ出力される。どち
らのバンクでもキャッシュヒットが検出されなければ、
キャッシュミスとして、ヒット信号13a,13bによ
ってバス制御装置102へ知らされる。バス制御装置1
02は、キャッシュミスを起こしたアドレス12によっ
て主記憶装置103から対応するデータを読み出して、
両バンク1a,1bのいずれかの、読み出しアドレス1
2のインデックス部で指定されるデータエントリ2a又
は2bに格納する。格納すべきバンクの選択は置換制御
手段9によって行なわれ、置換制御手段9が出力する選
択信号14により、書き込み制御回路107が書き込み
の制御を行なう。このとき、主記憶装置103から読み
出されたデータが指定されたエントリ2a又は2bに格
納されると同時に、アドレス10のタグ部も対応するタ
グエントリ3a又は3bに格納され、有効ビット4a又
は4bが1にセットされる。選択する方法は、ランダム
に選ぶ方法や、第1バンク1aと第2バンク1bとを交
互に選ぶ方法や、この図には示していないが、エントリ
毎にヒットの履歴情報を持たせ、この情報を使って最も
使われていないバンクのエントリを選択するLRU(Lea
st-Recently-Used) 法などがある。
は書き込むべきデータ71とそのデータのアドレス10
とを与え、アクセス要求105により、書き込みの要求
を行なう。キャッシュへの書き込みは、キャッシュヒッ
トが検出されて、どのバンクのエントリに格納すべきか
が分かった後に行なわなければならないので、ヒット検
出のためのサイクルと書き込みのためのサイクルとの2
サイクルが必要である。そのため、書き込みアドレス1
0と書き込みデータ71とが一旦、書き込みバッファ6
へ格納される。キャッシュヒットが検出されると、次の
サイクルに選択回路7は書き込みバッファ6から出力さ
れた書き込みアドレス46を選択して、両バンク1a,
1bに与え、ヒットしたバンクに対して書き込み動作が
行なわれる。ストア命令で書き込むデータが前の命令の
結果のデータであり、前の命令の結果がすぐには得られ
ない場合、結果のデータが得られるまで書き込みアドレ
ス44だけが書き込みバッファ6に保持され、書き込み
動作が待たされる。キャッシュがミスした場合、バス制
御装置102は、ヒット信号13a,13bによりキャ
ッシュミスが知らされ、選択回路7が出力するアドレス
12によって主記憶装置103から該当するデータを読
み出し、バンク1a又は1bの対応するデータエントリ
2a又は2bに格納する。その間、書き込みアドレス4
4と書き込みデータ45とは書き込みバッファ6で待た
される。データエントリ2a又は2bに書き込む場合、
主記憶装置103から読み出されたデータブロックの一
部が書き込みデータで置き換えられて書き込まれる。書
き込み予約ビット5a,5bはキャッシュヒットかミス
かが検出されたときに1にセットされる。キャッシュヒ
ットが検出された場合は、ヒットしたバンクのエントリ
の対応する書き込み予約ビット5a又は5bがセットさ
れ、キャッシュミスが検出された場合は、主記憶装置1
03から読み出したデータを格納するバンクのエントリ
の対応する書き込み予約ビット5a又は5bが1にセッ
トされる。どのバンクに格納するかは、置換制御手段9
によって選択される。書き込み予約ビット5a,5b
は、データの書き込み動作が実際に行なわれると0にリ
セットされる。
命令)に対してキャッシュがミスした場合、主記憶装置
103から該当するデータを読み出して、両バンク1
a,1bのうちのいずれか一方のバンクのデータエント
リ2a又は2bへ格納する。タグ3a,3bや有効ビッ
ト4a,4bが読み出されるとき、同時に書き込み予約
ビット5a,5bが読み出される。書き込み予約ビット
5a又は5bが1にセットされていると、対応するバン
クのエントリには待たされている書き込み動作が後に行
なわれることが分かる。これは読み出しアドレスのイン
デックス部と待たされている書き込みのアドレスのイン
デックス部とが等しいが、読み出しアドレスのタグ部と
書き込みアドレスのタグ部とが異なる場合である。置換
制御手段9は書き込み予約ビット5a又は5bが1にセ
ットされていないバンクを選択し、選択信号14を出力
する。待たされている書き込み要求が複数あり、両バン
ク1a,1bの書き込み予約ビット5a,5bが共に1
にセットされている場合は、書き込み動作が完了するま
で読み出し要求を待たせる。また、読み出し要求に対し
てキャッシュがヒットしたが対応する書き込み予約ビッ
ト5a又は5bが1にセットされている場合は、待たさ
れている書き込みアドレスとロード命令による読み出し
アドレスとが等しい場合である。この場合は、書き込む
データをロード命令の読み出しデータとしてCPU10
1へ送る必要があるので、待たされている書き込みが完
了するまで、読み出しは待たされる。読み出し要求に対
してキャッシュがヒットし、かつ対応する書き込み予約
ビット5a又は5bが0の場合には、対応するデータを
CPU101に出力し、CPU101は書き込み動作の
完了を待たずにプログラムの実行を続けることができ
る。
対するキャッシュヒットかミスかの検出が終わったが、
データの書き込み動作が完了する前に、CPU101に
よりロード命令が要求されると、このロード命令に対す
るキャッシュの読み出し動作をストア命令に対する書き
込み動作の完了より先に行なうことによって、情報処理
装置の性能向上を図ることができる。
よりアドレスAに対してストア命令の要求があり、サイ
クル2でアドレスBに対してロード命令の要求があると
する。ここで、アドレスAとアドレスBとのタグ部は異
なるが、インデックス部は等しい。サイクル1でキャッ
シュのタグが読み出され、アドレスAに対してキャッシ
ュミスが検出される。このとき、両バンク1a,1bか
ら読み出された有効ビット4a,4bは共に1であり、
書き込み予約ビット5a,5bは共に0であって、置換
制御手段9はアドレスAのデータを格納すべきバンクと
して第1バンク1aを選択する。サイクル2では、選択
された第1バンク1aの対応するタグエントリ3aにア
ドレスAのタグ部を格納して、有効ビット4aと書き込
み予約ビット5aとを共に1にセットする。このとき、
主記憶装置103は以前のアクセスのために使われてお
り、アクセス要求Aに対する主記憶装置103のアクセ
スは待たされる。サイクル3では、アクセス要求Bに対
してキャッシュのタグが読み出され、キャッシュヒット
かミスかの検出が行なわれる。アドレスAとアドレスB
とはインデックス部は等しいが、タグ部は異なるため、
キャッシュミスが検出されるが、第1バンク1aから書
き込み予約ビット5aが読み出され、第1バンク1aは
すでにアクセス要求Aによって書き込まれようとしてい
ることが分かる。置換制御手段9は、読み出された有効
ビット4a,4bと書き込み予約ビット5a,5bとを
もとに、アドレスBに対して置き換えるべきバンクとし
て第2バンク1bを選択する。サイクル4では、第2バ
ンク1bの対応するタグエントリ3bにアドレスBのタ
グ部を格納して、有効ビット4bと書き込み予約ビット
5bとを共に1にセットする。主記憶装置103に対す
る以前のアクセスはサイクル3で終了するため、サイク
ル4では、アクセス要求A又はBに対して主記憶装置1
03のアクセスを開始することができる。CPU101
にとっては、ロード命令の処理を早く行なった方が、後
続の命令を早く処理でき、性能向上を図ることができ
る。したがって、サイクル4では、アクセス要求Bに対
して、主記憶装置103がアクセスされる。サイクル6
では、アドレスBに対するデータが主記憶装置103か
ら読み出され、CPU101に転送されると同時に、第
2バンク1bの対応するデータエントリ2bに格納さ
れ、書き込み予約ビット5bが0にリセットされる。サ
イクル7では、書き込みバッファ6で待たされていたア
クセス要求Aに対して、主記憶装置103のアクセスが
開始される。
タグ部が異なる2つのアドレスに対して、異なるバンク
を割り当てることができ、キャッシュメモリ装置を有効
に使うことができる。また、後のアクセスを先に処理し
ても、処理が完了していない前のアクセスに対して格納
されているタグを書き換えることがなく、誤動作を防ぐ
ことができる。
しい場合、サイクル3でアドレスBに対して第1バンク
1aのタグ3aが読み出されたとき、タグが一致し、有
効ビット4aが1であるが、書き込み予約ビット5aが
1であるため、対応するエントリ2aのデータはアクセ
ス要求Aで更新される前のデータであることが分かり、
アクセスBはアクセス要求Aによる書き込みが完了する
まで待たされる。
部が異なる場合は、アドレスBに対して、データを格納
すべきバンクは、アドレスAに対するバンクとは無関係
に選択される。
a,4bと書き込み予約ビット5a,5bとを用いて、
キャッシュミスに対して置き換えるバンクを決める方法
の一例を示す。図3において、V(a)、Res(a)はそれぞれ
第1バンク1aから読み出された有効ビット4a、書き
込み予約ビット5aであり、V(b)、Res(b)はそれぞれ第
2バンク1bから読み出された有効ビット4b、書き込
み予約ビット5bである。Rep は置換制御手段9が選択
したキャッシュミスに対して置換すべきバンクを示す。
Rep が0の場合は第1バンク1aを、1の場合は第2バ
ンク1bを示す。−Rep は前回選択したバンクと異なる
バンクを示す。例えば前回第1バンク1aを選択した場
合は、第2バンク1bを選択する。xはDon't Careを表
し、0でも1でも関係ないことを示す。case7ではRep
はxとなっているが、これは2つのバンク1a,1bが
すでに書き込みを待っており、新たなアクセスは待たさ
れ、いずれかの書き込み予約ビット5a又は5bがリセ
ットされた際に、改めて置き換えるべきバンクが選択さ
れる。
に、置換制御手段9が選択するバンクは、有効ビット4
a,4bと書き込み予約ビット5a,5bとを用いて決
めるとしたが、他の情報、例えば、特定のエントリの置
き換えを禁止するためのロックビットや、キャッシュメ
モリ装置100のデータが更新され、主記憶装置103
のデータと異なっていることを示すダーティビットなど
も合わせて用いて、バンクを選ぶようにしてもよい。
約ビット5a,5bによって書き込み予定のエントリの
バンクが分かるので、そのエントリを置き換えないよう
にバンクを選択でき、したがって、キャッシュメモリ装
置100の性能低下を防ぐことができる。また、書き込
みアドレスと新たなキャッシュアクセス要求のアドレス
とを比較する必要がないので、アドレス比較器が不要で
ある。特に書き込みバッファ6にたくさんの書き込み要
求を保持する場合、効果的である。
装置を示すブロック図である。
は、キャッシュヒットを判定するサイクルとデータを格
納するサイクルとが必要である。したがって、従来、書
き込み動作を連続して行なう場合、それぞれの書き込み
動作に2サイクルを必要としていた。しかし、書き込む
べきバンクが分かっていたら、データを書き込むときに
タグを読み出す必要はない。また、書き込み動作に対し
てキャッシュヒットの判定をするときは、データエント
リのアクセスは必要ない。したがって、2つの書き込み
動作を連続して行なう場合、第1の書き込み要求に対し
てデータの書き込みを行ないながら、第2の書き込み要
求に対してキャッシュヒットの判定を行なうことができ
る。第2の実施例によれば、このようにタグエントリの
読み出しとデータエントリへの書き込みとをオーバーラ
ップして行なうパイプライン処理によって、見かけ上、
毎サイクル書き込み要求を処理できる。
のは同じ機能を有するものである。図4では、CPU1
01、バス制御装置102及び主記憶装置103を省略
している。
込みアドレスとして与えられたアドレス10のインデッ
クス部110と、書き込みデータ111と、書き込むべ
きバンクの番号(識別信号)112とを保持する。書き
込みバッファ20に格納されるバンク番号は、タグ3
a,3bと有効ビット4a,4bとを読み出して、いず
れかのヒット検出手段8a又は8bがキャッシュのヒッ
トを検出した場合にそのヒット信号13a又は13bに
よって設定される。また、キャッシュがミスした場合
は、置換制御手段9によって選択されたバンクの選択信
号14によって設定される。選択回路21は、与えられ
たアドレス10のインデックス部と書き込みバッファ2
0から出力された書き込みアドレスのインデックス部1
19とのいずれかを出力する。データエントリ2a,2
bとタグエントリ3a,3bとは、互いに独立にアクセ
スすることができる。データエントリ2a,2bは選択
回路21が出力するアドレス24でアクセスされ、タグ
エントリ3a,3bはCPUより与えられたアドレス1
0のインデックス部によってアクセスされる。22a,
22bは、データエントリ2a,2bをアクセスするた
めのデータアクセス回路である。
CPUより与えられたアドレス10のインデックス部を
選択して出力する。したがって、データとそのデータに
対応するタグとが同時に読み出され、キャッシュヒット
が検出されたバンクのデータエントリ2a又は2bのデ
ータが対応するデータアクセス回路22a又は22bに
よって読み出される。一方、書き込み要求に対しては、
選択回路21は書き込みバッファ20から出力された書
き込みアドレスのインデックス部119を選択する。あ
るいは、読み出し要求がない場合には、選択回路21は
書き込みバッファ20の出力アドレス119を常に選択
・出力することとしてもよい。実際に書き込まれるの
は、書き込みデータ71が得られた後であり、書き込み
バッファ20に保持されている書き込みアドレス110
と書き込みバンク番号112とを用いて、データアクセ
ス回路22a,22bによって書き込むべきエントリと
バンクとが選択され、書き込みデータ111が書き込ま
れる。
令の書き込み要求に対してタグを読み出し、キャッシュ
ヒットかミスかの検出をしながら、同時に、書き込みバ
ッファ20で待たされている以前の書き込み要求を処理
する。
備えたメモリアレー23a,23bをタグエントリ3
a,3bのためのメモリアレーとは別に設け、キャッシ
ュミスが生じた場合に、待たされている書き込み要求に
対するエントリを置き換えないように、置換制御手段9
がバンクを選択する。この場合、書き込み予約ビット
は、キャッシュヒット検出の場合にアドレス10のイン
デックス部を用いて読み出され、そのアクセス要求が書
き込み要求の場合はヒットしたバンクのエントリに対し
て、キャッシュミスに対しては置換制御手段9によって
選択されたバンクのエントリに対してそれぞれセットさ
れ、データを書き込むときに選択回路21が出力するア
ドレス24を用いてリセットされる。なお、書き込み予
約ビットは、第1の実施例の場合と同様に、タグエント
リ3a,3bと同じメモリアレー上に構成してもよい。
込むべきバンクの番号112を書き込みバッファ20に
保持することによって、データを書き込むときに書き込
みアドレスのタグ部を必要としないので、アドレスを保
持するための書き込みバッファ20の回路が少なくてす
む。更に、データを書き込む際にタグをアクセスする必
要がないので、データエントリ2a,2bとタグエント
リ3a,3bとを別々にアクセスするための手段を設け
ることによって、ストア命令に対する書き込み要求をパ
イプライン処理的に、毎サイクル処理できる。
装置のブロック図である。図5において、30a,30
bはそれぞれバンクであり、書き込み予約ビットを持た
ない点を除いて、第2の実施例のバンク1a,1bと同
じ構成である。31は書き込みバッファであり、第2の
実施例の書き込みバッファ20の構成(110〜11
2)に加えて、一致検出手段32を持つ。
ス10が与えられると、アドレス10のインデックス部
を用いて、両バンク30a,30bのタグ3a,3b及
び有効ビット4a,4bが読み出され、ヒット検出手段
8a,8bによって、キャッシュヒットかどうかが検出
される。キャッシュヒットの場合は、どのバンクでヒッ
トしたかを示すバンク番号(識別信号)112として、
ヒット信号13a及び13bが書き込みバッファ31に
格納される。このとき、バンク番号に加えて、書き込み
アドレス10のインデックス部と書き込みデータ71と
が書き込みバッファ31に格納される。キャッシュミス
の場合は、置換制御手段33が出力する選択信号14
を、データを格納すべきバンクの番号(識別信号)11
2として書き込みバッファ31に格納する。その後、書
き込みバッファ31に格納されている書き込みアドレス
のインデックス部110が選択回路21によって選択さ
れ、更に、書き込みバッファ31に格納されている書き
込むべきバンクの番号112がデータアクセス回路22
a,22bに与えられ、バンクとエントリとが指定さ
れ、データが書き込まれる。
合、2つ目のストア命令のアドレス10のインデックス
部を用いて、両バンク30a,30bのタグ3a,3b
及び有効ビット4a,4bを読み出しながら、選択回路
21で書き込みバッファ31の書き込みアドレス119
を選択することにより、第2の実施例と同様に、パイプ
ライン処理的に1サイクル毎に連続して書き込み処理を
行なうことができる。
を検出した後、データを書き込む前に、ロード命令が実
行されると、選択回路21はロード命令に対するアドレ
ス10のインデックス部を選択することによって、アド
レス10のインデックス部でデータ2a,2b、タグ3
a,3b及び有効ビット4a,4bが各々読み出され
る。このとき、一致検出手段32はロード命令のアドレ
ス10のインデックス部と書き込みバッファ31で待た
されている書き込みアドレスのインデックス部110と
を比較し、一致し、しかも、書き込みアドレスに対応す
る書き込むべきバンクの番号112とロード命令のアド
レス10に対してヒットしたバンクの番号とが一致した
場合、アドレス一致信号113を出力する。これは、ロ
ード命令のアドレスと待たされているストア命令のアド
レスとが一致したことを示すので、制御回路115はア
ドレス一致信号113を受け取ると、このストア命令の
書き込みが完了するまでロード命令を待たせる。ロード
命令に対して、キャッシュがヒットし、しかも、ロード
命令のアドレス10のインデックス部と書き込みバッフ
ァ31で待たされている書き込みアドレスのインデック
ス部110とが一致しないか、あるいは書き込むべきバ
ンクの番号112とヒットしたバンクの番号とが一致し
ない場合は、ヒットしたバンクのエントリ2a又は2b
のデータがデータアクセス回路22a又は22bによっ
て読み出されて、CPUへ出力される。また、一致検出
手段32によってロード命令のアドレス10のインデッ
クス部と書き込みバッファ31で待たされている書き込
みアドレスのインデックス部110とが比較され、一致
し、しかも、ロード命令がキャッシュミスを起こした場
合は、一致検出手段32はインデックス一致信号114
を出力する。置換制御手段33は、インデックス一致信
号114と書き込みアドレスに対応する書き込むべきバ
ンクの番号112とにより、そのバンク番号以外のバン
クを、キャッシュミスを起こしたロード命令に対して主
記憶装置から読み出したデータを格納するべきバンクと
して選択する。キャッシュミスに対してインデックス一
致信号114が出力されなかった場合は、置換制御手段
33は書き込みバッファ31に保持されている書き込み
要求とは無関係に、読み出された有効ビット4a,4b
を用いて、置き換えるべきバンクを選択し、選択信号1
4を出力する。この場合は、図3のcase1、2、3
及び4の場合と同等である。
するストア命令を実行する場合のタイミング図を、図7
に本発明の第2及び第3の実施例のキャッシュメモリ装
置で連続するストア命令を実行する場合のタイミング図
を各々示す。図6に示すように、従来のキャッシュメモ
リ装置はアドレスBによるタグの読み出しとアドレスA
によるデータの書き込みとを同時には実行できないの
で、ストア命令はそれぞれ2サイクルを必要とするが、
図7に示すように、本発明のキャッシュメモリ装置で
は、アドレスBによるタグの読み出しとアドレスAによ
るデータの書き込みとを同時に行なうことができ、その
分、アクセスのためのサイクル数を少なくすることがで
きる。
き込みアドレスのインデックス部110と書き込みバン
ク番号112とを書き込みバッファ31に保持し、書き
込みアドレスのインデックス部110と新たなアクセス
要求のアドレスのインデックス部との比較と、書き込み
バンク番号112とヒットしたバンクの番号との比較と
を行なうことによって、待たされている書き込みと新た
なアクセス要求とのアドレスの一致を検出することがで
き、従来、アドレスのタグ部及びインデックス部の双方
を用いて一致の検出をしていたのに比べ、少ないビット
数の比較でよいので、比較器と書き込みアドレスを保持
するための回路とを小さくすることができ、比較処理の
高速化が図れる。また、新たなアクセスがキャッシュミ
スを起こした場合に、置換制御手段33が既に選択した
書き込むべきバンクの番号とは異 なる番号を有するバン
クをキャッシュミスを起こしたアクセスに対して主記憶
装置から読み出したデータを格納するバンクとして、優
先的に選択することによって、待たされている書き込み
とのエントリの衝突を防ぎ、誤動作及び性能低下を防
ぐ。
装置を用いた情報処理装置のブロック図である。簡単の
ために、キャッシュメモリ装置120がダイレクトマッ
プ方式をとる場合について説明する。CPU101より
書き込み要求が行なわれると、第1の実施例と同様に、
与えられたアドレス10を用いてタグ部メモリ125よ
りタグ3と有効ビット4と書き込み予約ビット5とが読
み出され、ヒット検出手段8はタグ3とアドレス10の
タグ部との比較と、有効ビット4の値とにより、キャッ
シュヒットかミスかを検出する。キャッシュヒットの場
合、書き込み予約ビット5を1にセットし、アドレス1
0と書き込みデータ71とを書き込みバッファ6のエン
トリ44,45に格納する。CPU101がすぐに書き
込みデータを供給することができない場合は、供給でき
るまでこの書き込み処理は待たされる。その後、適当な
時に、書き込みバッファ6に格納されているアドレス4
4が読み出され、選択回路7で選択される。書き込みバ
ッファ6に格納されていた書き込みデータ45は、選択
回路7が出力するアドレス12で指定されるデータ部メ
モリ124のエントリ2に格納され、同時に、書き込み
予約ビット5が0にリセットされ、書き込み処理が完了
する。
ト5を1にセットし、アドレス10と書き込みデータ7
1とを書き込みバッファ6に格納し、バス制御装置10
2により主記憶装置103から該当するデータを読み出
す。主記憶装置103から読み出されたデータは、一部
を、書き込みバッファ6に格納されている書き込みデー
タ45で置き換えられて、書き込みバッファ6に格納さ
れているアドレス44で指定されるデータ部メモリ12
4のエントリ2に格納される。このとき、書き込みバッ
ファ6に格納されているアドレス44のタグ部をタグ部
メモリ125のエントリ3に格納し、有効ビット4を1
にセットし、書き込み予約ビット5を0にリセットし、
書き込み処理を完了する。
し要求が与えられた場合について説明する。書き込みア
ドレスと読み出しアドレスとが異なる場合は、後の読み
出し処理を先に行なうことができる。このような場合
は、読み出しアドレス10のインデックス部でタグ部メ
モリ125をアクセスし、読み出された書き込み予約ビ
ット5が0であることから容易に検出される。書き込み
アドレスと読み出しアドレスとが等しい場合、あるい
は、書き込みアドレスと読み出しアドレスとのタグ部は
異なるが、インデックス部が等しい場合は、読み出され
た書き込み予約ビット5が1であることから検出され
る。この場合、書き込み予約ビット5は制御回路121
に与えられ、制御回路121は書き込みバッファ6に保
持されている書き込み要求の処理が完了し、書き込み予
約ビット5が0にリセットされるまで、読み出し処理を
待たせる。
の書き込み処理で更新される前のデータを誤って読み出
したり、読み出し要求に対するキャッシュミスによっ
て、前の書き込み処理が格納すべきデータとタグとを誤
って書き換えてしまうことを防ぐことができる。しか
も、書き込みアドレスと読み出しアドレスとを比較器で
比較する必要がなく、回路規模を減少させることができ
る。
装置を用いた情報処理装置のブロック図である。簡単の
ため、キャッシュメモリ装置130がダイレクトマップ
方式をとる場合について説明する。書き込みバッファ6
は2つのエントリ131,132を備え、それぞれ書き
込みアドレス133と書き込みデータ134とを保持す
る。135はデータを格納するための複数のエントリ2
を備えたデータ部メモリである。136はタグ部メモリ
であり、データ部メモリ135のそれぞれのエントリ2
に対応したアドレスのタグエントリ3と、有効ビット4
と、2ビットの書き込み予約ビット137,138とを
備えている。2ビットの書き込み予約ビット137,1
38はそれぞれ、書き込みバッファ6の2つのエントリ
131,132に対応する。CPU101からの書き込
み要求に対して、書き込みアドレス133と書き込みデ
ータ134とが書き込みバッファ6の第1エントリ13
1に格納されるときは第1の書き込み予約ビット137
が、第2エントリ132に格納されるときは第2の書き
込み予約ビット138が各々1にセットされる。これ
は、書き込みバッファ6の格納を制御するための書き込
みバッファ格納制御回路139が出力するエントリ選択
信号140,141を書き込み予約ビット137,13
8に格納することによってなされる。
CPU101が読み出し要求を行なう場合について説明
する。読み出しアドレス10によってタグ部メモリ13
6をアクセスし、読み出された書き込み予約ビット13
7,138が共に0である場合は、書き込みアドレスと
読み出しアドレスとが異なる場合で、読み出し要求に対
する処理を、書き込み処理の前に行なうことができる。
書き込み予約ビット137,138のいずれかが1で、
ヒット検出手段8がキャッシュヒットを検出してヒット
信号13を出力した場合は、書き込みアドレスと読み出
しアドレスとが一致する場合である。例えば、第1の書
き込み予約ビット137が1の場合、このビットに対応
する書き込みバッファ6の第1エントリ131に格納さ
れている書き込みアドレス133と読み出しアドレスと
が等しいことを示す。すなわち、第1エントリ131に
格納されている書き込みデータ134は、CPU101
が読み出し要求を行なっているデータである。データ転
送制御回路142は、第1エントリ131のデータ13
4を読み出して、CPU101へ転送する。このように
して、書き込み処理が完了する前に読み出し要求の処理
を行なうことにより必要なデータをCPU101へ供給
することができるので、CPU101を持たせる時間を
短縮して、情報処理装置の性能向上を図ることができ
る。
れかが1で、ヒット検出手段8がキャッシュミスを検出
した場合、制御回路143は書き込みバッファ6に保持
されている書き込み要求の処理が完了し、書き込み予約
ビット137,138が共に0にリセットされるまで、
読み出し要求を待たせる。これにより、読み出し要求に
対するキャッシュミスによって、書き込み要求に対する
データとタグとを誤って書き換えることを防ぐことがで
きる。また、書き込み予約ビット137,138を用い
ることによって、書き込みアドレスと読み出しアドレス
とを比較するための比較器が不要で、回路規模を削減で
きる。
ャッシュメモリ装置120,130はダイレクトマップ
方式としたが、セットアソシアティブ方式でも本発明が
適用できることは明らかである。また、書き込みバッフ
ァ6のエントリ数は2以外に、1でも3以上でもよい。
て、キャッシュメモリ装置100は2ウェイ・セットア
ソシアティブ・キャッシュとしたが、3ウェイ以上のセ
ットアソシアティビティを持つキャッシュメモリ装置に
ついても同様である。
データエントリ2a,2bは選択回路21で選択された
アドレス24でアクセスされるとしたが、該データエン
トリ2a,2bを2ポートのメモリで構成し、与えられ
たアドレス10による読み出しと、書き込みバッファ2
0又は31に格納された書き込みアドレス110による
書き込みとを同時に行なうようにしてもよい。この場合
には、選択回路21の配設を省略できる。これにより、
より多くのロード/ストア命令を実行でき、情報処理装
置の性能を向上させることができる。
アソシアティブ方式のキャッシュメモリ装置において、
書き込み予約ビットを備えた構成を採用し、あるいはバ
ンクの識別信号を書き込みバッファに保持する構成を採
用したので、書き込み処理を待たせたまま読み出し動作
を行なう場合の適切な置換制御が可能となる。
シュメモリ装置において、ヒットの検出のためのタグの
読み出しとデータの書き込みとを同時に行なえるよう
に、書き込みアクセス要求に対してキャッシュヒットを
検出したバンクあるいは置き換えるべきデータエントリ
を有するバンクを示す識別信号と、該書き込みアクセス
要求に係るアドレスのインデックス部とを書き込みバッ
ファに保持しておく構成を採用したので、連続するスト
ア命令をパイプライン的に高速処理することができる。
しかも、対応するデータエントリに書き込みアクセス要
求が発生した場合にセットされ、書き込みが完了したと
きにリセットされる複数の書き込み予約ビットを各バン
クに更に備えた構成を採用すれば、他のアクセス要求に
対する置換制御の際の適切なデータエントリの選択が可
能となる。これに代えて、他のアクセス要求に係るアド
レスのインデックス部と書き込みバッファに保持されて
いるインデックス部とが一致した場合には、書き込みバ
ッファに保持されている識別信号で示されたバンクとは
異なるバンクを、他のアクセス要求に対して置き換える
べきバンクとして選択するようにしても、置換制御の際
の適切なデータエントリの選択が可能となる。
ダイレクトマップ方式のキャッシュメモリ装置におい
て、書き込みバッファに保持されている書き込みデータ
をそのまま読み出しデータとして供給できるように、ア
ドレス比較のための書き込み予約ビットを備えた構成を
採用したので、ストア命令の処理を待たせてロード命令
の処理を先に行なうことが可能になる。
装置を用いた情報処理装置のブロック図である。
み要求と読み出し要求とが続けて発行された場合のタイ
ミング図である。
択する方法を示す図である。
装置のブロック図である。
装置のブロック図である。
命令を実行した場合のタイミング図である。
ュメモリ装置で連続するストア命令を実行した場合のタ
イミング図である。
装置を用いた情報処理装置のブロック図である。
装置を用いた情報処理装置のブロック図である。
ある。
き込み予約ビット 6,20,31,41 書き込みバッファ 7,21 選択回路 8,8a,8b ヒット検出手段 9,33,43 置換制御手段 22a,22b データアクセス回路 32,42 一致検出手段 100,120,130 キャッシュメモリ装置 101 CPU 102 バス制御装置 103 主記憶装置 113 アドレス一致信号 114 インデックス一致信号 121,143 制御回路 131,132 書き込みバッファの第1及び第2エン
トリ(書き込み要求エントリ) 139 書き込みバッファ格納制御回路 142 データ転送制御回路
Claims (12)
- 【請求項1】 セットアソシアティブ方式をとるキャッ
シュメモリ装置であって、 各々データを格納するための複数のデータエントリと、 各々前記複数のデータエントリのうちの対応する1つの
データエントリに係るタグを格納するための複数のタグ
エントリと、 各々前記複数のデータエントリのうちの1つに対応した
複数の書き込み予約ビットとをそれぞれ有する複数のバ
ンクと、 書き込みアクセス要求に関連して与えられた書き込みア
ドレスのタグ部と、前記複数のタグエントリの中から前
記書き込みアドレスのインデックス部で選択された1つ
のタグエントリから読み出されたタグとが前記複数のバ
ンクのうちの1つのバンクにおいて一致した場合には、
該1つのバンクの中の前記複数の書き込み予約ビットの
中から前記書き込みアドレスのインデックス部で選択さ
れた1つの書き込み予約ビットをセットし、かつ前記書
き込みアクセス要求が満たされた時に前記選択された書
き込み予約ビットをリセットするための手段と、 前記書き込みアクセス要求に関連して与えられた書き込
みアドレスのタグ部と、前記複数のタグエントリの中か
ら前記書き込みアドレスのインデックス部で選択された
1つのタグエントリから読み出されたタグとが前記複数
のバンクの全てにおいて一致しない場合には、前記書き
込みアクセス要求に対して置き換えるべきバンクとして
選択された1つのバンクの中の前記複数の書き込み予約
ビットの中から前記書き込みアドレスのインデックス部
で選択された1つの書き込み予約ビットをセットし、か
つ前記書き込みアクセス要求が満たされた時に前記選択
された書き込み予約ビットをリセットするための手段
と、 他のアクセス要求に関連した付与アドレスのタグ部と、
前記複数のタグエントリの中から前記付与アドレスのイ
ンデックス部で選択された1つのタグエントリから読み
出されたタグとが前記複数のバンクの全てにおいて一致
しない場合には、前記複数の書き込み予約ビットの中か
ら前記付与アドレスのインデックス部に応じて読み出さ
れた1つの書き込み予約ビットがセットされていない1
つのバンクを、前記他のアクセス要求に対して置き換え
るべきバンクとして選択するための手段とを備えたこと
を特徴とするキャッシュメモリ装置。 - 【請求項2】 請求項1記載のキャッシュメモリ装置に
おいて、 前記複数のバンクは、各々前記複数のデータエントリの
うちの対応するデータエントリに格納されたデータが有
効かどうかを示す複数の有効ビットをそれぞれ更に有す
ることを特徴とするキャッシュメモリ装置。 - 【請求項3】 請求項2記載のキャッシュメモリ装置に
おいて、 前記複数の書き込み予約ビットは、前記複数のタグエン
トリ及び前記複数の有効ビットと共通のメモリアレーの
中に構成されたことを特徴とするキャッシュメモリ装
置。 - 【請求項4】 請求項2記載のキャッシュメモリ装置に
おいて、 前記複数の書き込み予約ビットは、前記複数のタグエン
トリ及び前記複数の有効ビットとは別のメモリアレーの
中に構成されたことを特徴とするキャッシュメモリ装
置。 - 【請求項5】 セットアソシアティブ方式をとるキャッ
シュメモリ装置であって、 各々データを格納するための複数のデータエントリと、 各々前記複数のデータエントリのうちの対応する1つの
データエントリに係るタグを格納するための複数のタグ
エントリと、 各々前記複数のデータエントリのうちの1つに対応した
複数の書き込み予約ビットとをそれぞれ有する複数のバ
ンクと、 前記複数のバンクのうち第1の書き込みアクセス要求に
応答してデータを書き込むべき1つのバンクを示す識別
信号と、前記第1の書き込みアクセス要求に関連して与
えられた第1の書き込みアドレスのインデックス部と、
前記第1の書き込みアクセス要求に関連して与えられた
書き込みデータとを保持するための書き込みバッファ
と、 第2の書き込みアクセス要求に関連して与えられた第2
の書き込みアドレスのタグ部と、前記複数のタグエント
リの中から前記第2の書き込みアドレスのイン デックス
部で選択された1つのタグエントリから読み出されたタ
グとが前記複数のバンクのいずれかにおいて一致するか
どうかが調べられている間に、前記複数のバンクの中か
ら前記書き込みバッファに保持されている識別信号を用
いて1つのバンクを選択し、該選択したバンクの複数の
データエントリの中から前記書き込みバッファに保持さ
れているインデックス部を用いて1つのデータエントリ
を選択し、かつ該選択したデータエントリに、前記書き
込みバッファに保持されている書き込みデータを書き込
むための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みアドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクのうちの1つのバンク
において一致した場合には、該1つのバンクの中の前記
複数の書き込み予約ビットの中から前記第1の書き込み
アドレスのインデックス部で選択された1つの書き込み
予約ビットをセットし、かつ前記第1の書き込みアクセ
ス要求が満たされた時に前記選択された書き込み予約ビ
ットをリセットするための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みアドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクの全てにおいて一致し
ない場合には、前記第1の書き込みアクセス要求に対し
て置き換えるべきバンクとして選択された1つのバンク
の中の前記複数の書き込み予約ビットの中から前記第1
の書き込みアドレスのインデックス部で選択された1つ
の書き込み予約ビットをセットし、かつ前記第1の書き
込みアクセス要求が満たされた時に前記選択された書き
込み予約ビットをリセットするための手段と、 他のアクセス要求に関連した付与アドレスのタグ部と、
前記複数のタグエントリの中から前記付与アドレスのイ
ンデックス部で選択された1つのタグエントリから読み
出されたタグとが前記複数のバンクの全てにおいて一致
しない場合には、前記複数の書き込み予約ビットの中か
ら前記付与アドレスのインデックス部に応じて読み出さ
れた1つの書き込み予約ビットがセットされていない1
つのバンクを、前記他のアクセス要求に対して置き換え
るべきバンクとして選択するための手段とを備えたこと
を特徴とするキャッシュメモリ装置。 - 【請求項6】 セットアソシアティブ方式をとるキャッ
シュメモリ装置であって、 各々データを格納するための複数のデータエントリと、 各々前記複数のデータエントリのうちの対応する1つの
データエントリに係るタグを格納するための複数のタグ
エントリとをそれぞれ有する複数のバンクと、 前記複数のバンクのうち第1の書き込みアクセス要求に
応答してデータを書き込むべき1つのバンクを示す識別
信号と、前記第1の書き込みアクセス要求に関連して与
えられた第1の書き込みアドレスのインデックス部と、
前記第1の書き込みアクセス要求に関連して与えられた
書き込みデータとを保持するための書き込みバッファ
と、 第2の書き込みアクセス要求に関連して与えられた第2
の書き込みアドレスのタグ部と、前記複数のタグエント
リの中から前記第2の書き込みアドレスのインデックス
部で選択された1つのタグエントリから読み出されたタ
グとが前記複数のバンクのいずれかにおいて一致するか
どうかが調べられている間に、前記複数のバンクの中か
ら前記書き込みバッファに保持されている識別信号を用
いて1つのバンクを選択し、該選択したバンクの複数の
データエントリの中から前記書き込みバッファに保持さ
れているインデックス部を用いて1つのデータエントリ
を選択し、かつ該選択したデータエントリに、前記書き
込みバッファに保持されている書き込みデータを書き込
むための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みアドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクのうちの1つのバンク
において一致した場合には、該1つのバンクを特定する
ための信号を前記識別信号として前記書き込みバッファ
の中に設定するための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みア ドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクの全てにおいて一致し
ない場合には、前記第1の書き込みアクセス要求に対し
て置き換えるべきバンクとして選択された1つのバンク
を特定するための信号を前記識別信号として前記書き込
みバッファの中に設定するための手段と、 読み出しアクセス要求に関連して与えられた読み出しア
ドレスのインデックス部と、前記書き込みバッファに保
持されているインデックス部とが一致し、かつ前記読み
出しアドレスのタグ部と、前記複数のタグエントリの中
から前記読み出しアドレスのインデックス部で選択され
た1つのタグエントリから読み出されたタグとが一致し
たバンクを特定するための信号と、前記書き込みバッフ
ァに保持されている識別信号とが一致した場合には、前
記第1の書き込みアクセス要求が満たされるまで前記読
み出しアクセス要求を待たせるための手段とを備えたこ
とを特徴とするキャッシュメモリ装置。 - 【請求項7】 セットアソシアティブ方式をとるキャッ
シュメモリ装置であって、 各々データを格納するための複数のデータエントリと、 各々前記複数のデータエントリのうちの対応する1つの
データエントリに係るタグを格納するための複数のタグ
エントリとをそれぞれ有する複数のバンクと、 前記複数のバンクのうち第1の書き込みアクセス要求に
応答してデータを書き込むべき1つのバンクを示す識別
信号と、前記第1の書き込みアクセス要求に関連して与
えられた第1の書き込みアドレスのインデックス部と、
前記第1の書き込みアクセス要求に関連して与えられた
書き込みデータとを保持するための書き込みバッファ
と、 第2の書き込みアクセス要求に関連して与えられた第2
の書き込みアドレスのタグ部と、前記複数のタグエント
リの中から前記第2の書き込みアドレスのインデックス
部で選択された1つのタグエントリから読み出されたタ
グとが前記複数のバンクのいずれかにおいて一致するか
どうかが調べられている間に、前記複数 のバンクの中か
ら前記書き込みバッファに保持されている識別信号を用
いて1つのバンクを選択し、該選択したバンクの複数の
データエントリの中から前記書き込みバッファに保持さ
れているインデックス部を用いて1つのデータエントリ
を選択し、かつ該選択したデータエントリに、前記書き
込みバッファに保持されている書き込みデータを書き込
むための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みアドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクのうちの1つのバンク
において一致した場合には、該1つのバンクを特定する
ための信号を前記識別信号として前記書き込みバッファ
の中に設定するための手段と、 前記第1の書き込みアクセス要求に関連して与えられた
前記第1の書き込みアドレスのタグ部と、前記複数のタ
グエントリの中から前記第1の書き込みアドレスのイン
デックス部で選択された1つのタグエントリから読み出
されたタグとが前記複数のバンクの全てにおいて一致し
ない場合には、前記第1の書き込みアクセス要求に対し
て置き換えるべきバンクとして選択された1つのバンク
を特定するための信号を前記識別信号として前記書き込
みバッファの中に設定するための手段と、 他のアクセス要求に関連した付与アドレスのインデック
ス部と、前記書き込みバッファに保持されているインデ
ックス部とが一致した場合には、前記書き込みバッファ
に保持されている識別信号で示されたバンクとは異なる
1つのバンクを、前記他のアクセス要求に対して置き換
えるべきバンクとして選択するための手段とを備えたこ
とを特徴とするキャッシュメモリ装置。 - 【請求項8】 各々データを格納するための複数のデー
タエントリと、 各々前記複数のデータエントリのうちの対応する1つの
データエントリに係るタグを格納するための複数のタグ
エントリと、 各々前記複数のデータエントリのうちの1つに対応した
複数の書き込み予約ビットと、 書き込みアクセス要求に関連して与えられた書き込みア
ドレスのタグ部と、前記複数のタグエントリの中から前
記書き込みアドレスのインデックス部で選択された1つ
のタグエントリから読み出されたタグとが一致しない場
合には、前記書き込みアドレスのインデックス部で選択
されたタグエントリに前記書き込みアドレスのタグ部を
書き込むための手段と、 前記複数の書き込み予約ビットの中から前記書き込みア
クセス要求に関連して与えられた書き込みアドレスのイ
ンデックス部で選択された1つの書き込み予約ビットを
セットし、かつ前記書き込み要求が満たされた時に前記
選択された書き込み予約ビットをリセットするための手
段と、 前記書き込みアクセス要求に関連して与えられた書き込
みデータを保持するための書き込みバッファと、 読み出しアクセス要求に関連して与えられた読み出しア
ドレスのタグ部と、前記複数のタグエントリの中から前
記読み出しアドレスのインデックス部で選択された1つ
のタグエントリから読み出されたタグとが一致し、かつ
前記複数の書き込み予約ビットの中から前記読み出しア
ドレスのインデックス部に応じて読み出された1つの書
き込み予約ビットがセットされている場合には、前記書
き込みバッファに保持されている書き込みデータを前記
読み出しアクセス要求に対する応答データとして供給す
るための手段とを備えたことを特徴とするキャッシュメ
モリ装置。 - 【請求項9】 請求項8記載のキャッシュメモリ装置に
おいて、 各々前記複数のデータエントリのうちの対応するデータ
エントリに格納されたデータが有効かどうかを示す複数
の有効ビットを更に備えたことを特徴とするキャッシュ
メモリ装置。 - 【請求項10】 請求項8記載のキャッシュメモリ装置
において、 前記書き込みバッファは、前記書き込みアクセス要求に
関連して与えられた書き込みアドレスのインデックス部
を更に保持する機能を有し、 前記キャッシュメモリ装置は、 前記複数のデータエントリの中から前記書き込みバッフ
ァに保持されているインデックス部で選択された1つの
データエントリに、前記書き込みバッファに保持されて
いる書き込みデータを書き込むための手段を更に備えた
ことを特徴とするキャッシュメモリ装置。 - 【請求項11】 請求項8記載のキャッシュメモリ装置
において、 前記書き込みバッファは、各々書き込みデータを保持す
るための複数の書き込み要求エントリを有することを特
徴とするキャッシュメモリ装置。 - 【請求項12】 請求項11記載のキャッシュメモリ装
置において、 前記複数の書き込み予約ビットの各々は、前記複数の書
き込み要求エントリのうちの1つを指定するようにセッ
トされることを特徴とするキャッシュメモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05225402A JP3100807B2 (ja) | 1992-09-24 | 1993-09-10 | キャッシュメモリ装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25430392 | 1992-09-24 | ||
JP4-254303 | 1992-09-24 | ||
JP05225402A JP3100807B2 (ja) | 1992-09-24 | 1993-09-10 | キャッシュメモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06161900A JPH06161900A (ja) | 1994-06-10 |
JP3100807B2 true JP3100807B2 (ja) | 2000-10-23 |
Family
ID=26526620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05225402A Expired - Fee Related JP3100807B2 (ja) | 1992-09-24 | 1993-09-10 | キャッシュメモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3100807B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660389B2 (en) | 2009-05-28 | 2014-02-25 | Konica Minolta Opto, Inc. | Optical connector and optical tomographic imaging apparatus |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1168025C (zh) * | 1999-03-10 | 2004-09-22 | 国际商业机器公司 | 用于多线程处理机的指令高速缓存器 |
WO2004046933A1 (ja) * | 2002-11-20 | 2004-06-03 | Fujitsu Limited | メモリ制御装置およびキャッシュリプレース制御方法 |
WO2004107180A1 (ja) | 2003-05-30 | 2004-12-09 | Fujitsu Limited | マルチプロセッサシステム |
WO2007088591A1 (ja) * | 2006-01-31 | 2007-08-09 | Fujitsu Limited | メモリアクセス制御装置およびメモリアクセス制御方法 |
-
1993
- 1993-09-10 JP JP05225402A patent/JP3100807B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660389B2 (en) | 2009-05-28 | 2014-02-25 | Konica Minolta Opto, Inc. | Optical connector and optical tomographic imaging apparatus |
Also Published As
Publication number | Publication date |
---|---|
JPH06161900A (ja) | 1994-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5564034A (en) | Cache memory with a write buffer indicating way selection | |
US5274790A (en) | Cache memory apparatus having a plurality of accessibility ports | |
US5450564A (en) | Method and apparatus for cache memory access with separate fetch and store queues | |
CA1124888A (en) | Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability | |
US5261071A (en) | Dual pipe cache memory with out-of-order issue capability | |
US3967247A (en) | Storage interface unit | |
KR100423276B1 (ko) | 명령어인출방법및장치 | |
JPH03108042A (ja) | 多重仮想空間アドレス制御方法および計算機システム | |
US4371924A (en) | Computer system apparatus for prefetching data requested by a peripheral device from memory | |
JPH0668736B2 (ja) | 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法 | |
EP0167089A2 (en) | Memory access control system and method for an information processing apparatus | |
US5206941A (en) | Fast store-through cache memory | |
JPH0322155A (ja) | キャッシュメモリ装置 | |
JP3407808B2 (ja) | コンピュータシステム | |
JP3100807B2 (ja) | キャッシュメモリ装置 | |
EP0531123A1 (en) | A dynamic address translation processing apparatus in a data processing system | |
US5996062A (en) | Method and apparatus for controlling an instruction pipeline in a data processing system | |
US6401171B1 (en) | Method and device for storing an IP header in a cache memory of a network node | |
EP0442690A2 (en) | Data cache store buffer for high performance computer | |
US4737908A (en) | Buffer memory control system | |
JPS60701B2 (ja) | デ−タ処理装置 | |
JP3055908B2 (ja) | キャッシュメモリ制御装置 | |
JPS6161143B2 (ja) | ||
JPH1185613A (ja) | キャッシュメモリ | |
EP0400851A2 (en) | Efficient cache utilizing a store buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070818 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100818 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |