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

キャッシュメモリ装置

Info

Publication number
JPH06161900A
JPH06161900A JP5225402A JP22540293A JPH06161900A JP H06161900 A JPH06161900 A JP H06161900A JP 5225402 A JP5225402 A JP 5225402A JP 22540293 A JP22540293 A JP 22540293A JP H06161900 A JPH06161900 A JP H06161900A
Authority
JP
Japan
Prior art keywords
write
data
address
entry
stored
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.)
Granted
Application number
JP5225402A
Other languages
English (en)
Other versions
JP3100807B2 (ja
Inventor
Jiro Miyake
二郎 三宅
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP05225402A priority Critical patent/JP3100807B2/ja
Publication of JPH06161900A publication Critical patent/JPH06161900A/ja
Application granted granted Critical
Publication of JP3100807B2 publication Critical patent/JP3100807B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 キャッシュミスが生じた場合、待たせている
キャッシュアクセスに対応するエントリ以外のエントリ
を選択することによって、待たせているキャッシュアク
セスのエントリを置き換えないようにして、キャッシュ
メモリ装置の性能低下を防ぐ。 【構成】 書き込みバッファ6を備えた2ウェイ・セッ
トアソシアティブ方式のキャッシュメモリ装置におい
て、各バンク1a,1b内のデータエントリ2a,2b
に対応したタグエントリ3a,3bに、有効ビット4
a,4bと書き込み予約ビット5a,5bとを付加す
る。書き込み予約ビット5a,5bは、書き込み要求が
発生した場合にセットされ、書き込みが完了したときに
リセットされる。置換制御手段9は、キャッシュミスが
発生した場合に、2つの候補データエントリ2a,2b
のうち、対応する書き込み予約ビット5a又は5bがセ
ットされていない方のエントリを置換の対象とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置において
使用されるキャッシュメモリ装置、特に、書き込み要求
を一時的に保持するための書き込みバッファを備えたキ
ャッシュメモリ装置に関するものである。
【0002】
【従来の技術】通常のプログラムにおいてロード/スト
ア命令の頻度は非常に高いので、これらの命令を高速に
処理することは、情報処理装置の高性能化にとって極め
て重要である。そのため、近年では、情報処理装置にお
いて中央処理装置(CPU)により高速に読み出し/書
き込みができるキャッシュメモリ装置がよく用いられて
いる。
【0003】CPUがキャッシュメモリ装置に対してス
トア命令に基づく書き込み要求を発行する場合、CPU
はその書き込み要求の処理完了を待つ必要がない。とこ
ろが、CPUがロード命令に基づく読み出し要求を発行
する場合には、CPUはその読み出し要求への応答とし
てのキャッシュメモリ装置からの読み出しデータをすぐ
に必要とする。そこで、情報処理装置の性能を上げるた
めに、キャッシュメモリ装置においてストア命令の処理
を待たせてロード命令の処理を先に行なうことが考えら
れている(Mike Johnson著「Superscalar Microprocess
or Design 」Prentice Hall 出版,1991年,150 〜152
頁参照)。
【0004】例えば、ストア命令の後にすぐロード命令
が続くような命令シーケンスにおいて、ストア命令がキ
ャッシュミスを起こしたとする。キャッシュメモリ装置
は、ストア命令のアドレスのデータを主記憶装置から読
み出し、そのデータで自己のデータエントリを置き換え
る。主記憶装置のアクセス時間はキャッシュメモリ装置
のアクセス時間と比べて通常、非常に長いので、ストア
命令が完了するまで次のロード命令の処理を待たせるの
は、性能の大きな損失である。
【0005】また、別の例として、パイプライン動作を
行なう情報処理装置において、複数サイクルを使って演
算する命令の結果をストア命令がメモリへ格納する場
合、ストアすべきデータのアドレスはすぐに得られて
も、前の命令の演算が完了しないため、ストアすべきデ
ータがすぐには得られない場合がある。このストア命令
の後にロード命令がある場合、ストア命令が完了するま
でロード命令を待たせるのも、同様に性能低下をもたら
す。
【0006】そこで、このようにすぐにストア命令が実
行できない場合、ストア命令の実行を待たせて、先にロ
ード命令を実行する。ただし、ストアすべきデータのア
ドレスとロードすべきデータのアドレスとが一致する場
合はロード命令の実行を先に行なうことはできないの
で、アドレスの比較器によってこれを検出する。複数の
ストア命令を待たせて、先にロード命令を実行する場合
は、ストアすべきデータとそのアドレスとを保持するた
めのラッチを複数持たせ、ロードすべきデータのアドレ
スとラッチに格納されている複数のストアすべきデータ
のアドレスとを比較する。比較器はストアすべきデータ
のアドレスを保持するためのラッチの数だけ必要であ
る。
【0007】図10は、従来の2ウェイ・セットアソシ
アティブ方式のキャッシュメモリ装置のブロック図であ
る。図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はキャッシュがミスした場合に、
どのバンクのデータエントリを置き換えるかを選択する
ように選択信号14を出力するための置換制御手段であ
る。
【0008】ストア命令が実行されると、選択回路7は
与えられたアドレス10を選択して出力し、タグエント
リ3a,3b及び有効ビット4a,4bが読み出され、
ヒット検出手段8a,8bによってキャッシュヒットか
ミスかが検出される。ヒットが検出されると、書き込み
データが得られるまで、アドレス10は書き込みアドレ
ス44として書き込みバッファ41に格納される。次に
ロード命令が実行されると、同様に、キャッシュヒット
かミスかが検出されるが、同時に、一致検出手段42に
よって、与えられたアドレス10と書き込みバッファ4
1に保持されている書き込みアドレス44とが比較され
る。一致すると、ロード命令で読み出すべきデータはス
トア命令で格納するデータであるので、ストア命令によ
るデータの書き込みが完了するまで、ロード命令による
読み出しは待たされる。
【0009】
【発明が解決しようとする課題】しかしながら、上記の
ようなセットアソシアティブ方式をとるキャッシュメモ
リ装置の構成では、1つのアドレスに対してデータを保
持することのできるエントリは複数存在するが、待たさ
れているストア命令がどのデータエントリに書き込もう
としているかが分からないため、アドレスの比較の結
果、アドレスが異なることが検出されても、キャッシュ
ミスを生じたロード命令によって、ストアすべきエント
リが置き換えられてしまう可能性がある。このため、ス
トア命令に対してキャッシュミスとなり、誤動作あるい
は性能の低下をもたらすという問題点を有していた。ダ
イレクトメモリマップ方式をとるキャッシュメモリ装置
でも、ストア命令の処理を待たせてロード命令の処理を
先に行なう場合には、キャッシュミスを生じたロード命
令によって、ストアすべきエントリが誤って置き換えら
れてしまう可能性がある。
【0010】また、ストア命令の処理を待たせてロード
命令の処理を先に行なおうとしても、書き込みバッファ
に保持されている書き込みアドレスが読み出しアドレス
と一致すると、ストア命令によるデータの書き込みが完
了するまでロード命令による読み出しが待たされる結
果、命令処理効率を向上させ得ない。
【0011】更に、キャッシュメモリ装置への書き込み
を行なう場合、最初のサイクルでキャッシュヒットを検
出し、次のサイクルでデータの書き込みを行なうので、
ストア命令を連続して実行する場合、それぞれのストア
命令に2サイクルを必要とし、情報処理装置の性能向上
の大きな妨げになるという問題点を有していた。
【0012】本発明は、これらの問題点に鑑みてなされ
たものであって、その目的は書き込みバッファを備えた
キャッシュメモリ装置の誤動作防止及び性能向上を図る
ことにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明に係る第1のキャッシュメモリ装置は、デー
タエントリに書き込み要求が発生した場合にセットさ
れ、書き込みが完了したときにリセットされる書き込み
予約ビットを備えた構成を採用したものである。セット
アソシアティブ方式をとる場合には、キャッシュミスが
発生した際の置換制御にあたって、待たせているキャッ
シュアクセスに対応するデータエントリ以外のデータエ
ントリを選択するように、書き込み予約ビットがセット
されていないデータエントリを置き換えるべきデータエ
ントリとして優先的に選択する。
【0014】本発明に係る第2のキャッシュメモリ装置
は、書き込み要求に対するヒット情報を書き込みバッフ
ァに保持し、新たなアクセスに対するアドレスのインデ
ックス部と書き込みバッファに保持されている書き込み
アドレスのインデックス部とを比較し、保持されている
ヒット情報と新たなアクセスに対するヒット情報とを比
較し、これら比較の結果をキャッシュミスが発生した際
の置換制御に反映させることにより、待たせているキャ
ッシュアクセスに対応するデータエントリ以外のデータ
エントリを選択できるようにしたものである。
【0015】本発明に係る第3のキャッシュメモリ装置
は、連続した2つの書き込み要求に対し、ヒットの検出
のためのタグの読み出しとデータの書き込みとを同時に
行なえるように、キャッシュヒットを検出したときのヒ
ット情報を書き込みバッファに保持し、データを書き込
む際にアドレスのインデックス部と保持していたヒット
情報とによって書き込むデータエントリを選択するよう
にしたものである。
【0016】
【作用】上記書き込み予約ビットを備えた第1のキャッ
シュメモリ装置によれば、待たせているキャッシュアク
セスに対応するデータエントリが分かり、そのエントリ
以外のエントリを優先的に選択することができ、待たせ
ているキャッシュアクセスに対応するデータエントリを
置き換えることなく、別のキャッシュアクセスを実行す
る。誤動作防止のためには、書き込み予約ビットがセッ
トされている場合に読み出し要求を待たせることもでき
る。また、書き込み予約ビットを利用すれば、書き込み
バッファに保持されている書き込みデータをそのまま読
み出しデータとしてCPUへ転送することも可能であ
る。
【0017】上記ヒット情報を書き込みバッファに保持
する構成を備えた第2のキャッシュメモリ装置によれ
ば、第1のキャッシュメモリ装置と同様に、適切なデー
タエントリの選択が可能となる。
【0018】上記第3のキャッシュメモリ装置によれ
ば、連続するストア命令をパイプライン的に高速処理す
ることができる。
【0019】
【実施例】以下、本発明の実施例について図面を参照し
ながら説明する。
【0020】(実施例1)図1は、本発明の第1の実施
例に係るキャッシュメモリ装置を用いた情報処理装置の
ブロック図である。簡単のために、2ウェイ・セットア
ソシアティブ方式をとる場合について説明する。図1に
おいて、100はキャッシュメモリ装置、101は中央
処理装置(CPU)、102はバス制御装置、103は
主記憶装置である。1a,1bはそれぞれバンクであ
る。第1バンク1aは、データを保持するための複数の
データエントリ2aと、データのアドレスのタグ部を保
持するためのタグエントリ3aと、データが有効である
かどうかを示す有効ビット4aと、データの書き込みが
完了していないことを示す書き込み予約ビット5aとを
各々備えている。第2バンク1bも同様に、データエン
トリ2bと、タグエントリ3bと、有効ビット4bと、
書き込み予約ビット5bとを各々複数備えている。6
は、ストア命令に対する書き込みアドレス44と書き込
みデータ45とを保持するための書き込みバッファであ
る。この例では、書き込みアドレス44と書き込みデー
タ45とをそれぞれ2つずつ保持できる。7は選択回路
であり、CPU101から与えられたアドレス10と書
き込みバッファ6から出力される書き込みアドレス46
とのいずれかを選択して出力する。8a,8bはヒット
検出手段であり、両バンク1a,1bにおいてそれぞれ
キャッシュヒットの検出を行なう。104は制御回路で
あり、CPU101からのアクセス要求105に応じ
て、キャッシュメモリ装置100の制御を行なう。
【0021】ロード命令を実行する場合、CPU101
は読み出すべきデータのアドレス10を与え、アクセス
要求105により、読み出しの要求を行なう。アドレス
10は上位ビットのタグ部と下位ビットのインデックス
部とからなる。選択回路7はCPU101から与えられ
たアドレス10を選択し、2つのバンク1a,1bのデ
ータエントリ2a,2bが選択回路7が出力する被選択
アドレス12のインデックス部を用いて読み出される。
同時に、対応するタグエントリ3a,3bと有効ビット
4a,4bとが読み出され、ヒット検出手段8a,8b
によってヒットかどうかが検出される。ヒット検出手段
8a,8bは被選択アドレス(読み出しアドレス)12
のタグ部とタグエントリ4a,4bの内容とを比較し
て、一致し、しかも有効ビット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) 法などがある。
【0022】ストア命令を実行する場合、CPU101
は書き込むべきデータ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がセットされ、キャ
ッシュミスが検出された場合は、主記憶装置103から
読み出したデータを格納するバンクのエントリの対応す
る書き込み予約ビット5a又は5bが1にセットされ
る。どのバンクに格納するかは、置換制御手段9によっ
て選択される。書き込み予約ビット5a,5bは、デー
タの書き込み動作が実際に行なわれると0にリセットさ
れる。
【0023】CPU101からの読み出し要求(ロード
命令)に対してキャッシュがミスした場合、主記憶装置
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は書き込み動作の
完了を待たずにプログラムの実行を続けることができ
る。
【0024】図2で例を用いて説明する。ストア命令に
対するキャッシュヒットかミスかの検出が終わったが、
データの書き込み動作が完了する前に、CPU101に
よりロード命令が要求されると、このロード命令に対す
るキャッシュの読み出し動作をストア命令に対する書き
込み動作の完了より先に行なうことによって、情報処理
装置の性能向上を図ることができる。
【0025】図2において、サイクル1で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バンク1
bを選択する。サイクル4では、第2バンク1bの対応
するタグエントリ3bにアドレスBのタグ部を格納し
て、有効ビット4bと書き込み予約ビット5bとを共に
1にセットする。主記憶装置103に対する以前のアク
セスはサイクル3で終了するため、サイクル4では、ア
クセス要求A又はBに対して主記憶装置103のアクセ
スを開始することができる。CPU101にとっては、
ロード命令の処理を早く行なった方が、後続の命令を早
く処理でき、性能向上を図ることができる。したがっ
て、サイクル4では、アクセス要求Bに対して、主記憶
装置103がアクセスされる。サイクル6では、アドレ
スBに対するデータが主記憶装置103から読み出さ
れ、CPU101に転送されると同時に、第2バンク1
bの対応するデータエントリ2bに格納され、書き込み
予約ビット5bが0にリセットされる。サイクル7で
は、書き込みバッファ6で待たされていたアクセスAに
対して、主記憶装置103のアクセスが開始される。
【0026】このように、インデックス部が等しいが、
タグ部が異なる2つのアドレスに対して、異なるバンク
を割り当てることができ、キャッシュメモリ装置を有効
に使うことができる。また、後のアクセスを先に処理し
ても、処理が完了していない前のアクセスに対して格納
されているタグを書き換えることがなく、誤動作を防ぐ
ことができる。
【0027】上の例で、アドレスAとアドレスBとが等
しい場合、サイクル3でアドレスBに対して第1バンク
1aのタグ3aが読み出されたとき、タグが一致し、有
効ビット4aが1であるが、書き込みビット5aが1で
あるため、対応するエントリ2aのデータはアクセスA
で更新される前のデータであることが分かり、アクセス
BはアクセスAによる書き込みが完了するまで待たされ
る。
【0028】アドレスAとアドレスBとのインデックス
部が異なる場合は、アドレスBに対して、データを格納
すべきバンクは、アドレスAに対するバンクとは無関係
に選択される。
【0029】図3に、置換制御手段9が有効ビット4
a,4bと書き込み予約ビット5a,5bとを用いて、
キャッシュミスに対して書き込むバンクを決める方法の
一例を示す。図3において、V(a)、Res(a)はそれぞれ第
1バンク1aから読み出された有効ビット4a、書き込
み予約ビット5aであり、V(b)、Res(b)はそれぞれ第2
バンク1bから読み出された有効ビット4b、書き込み
予約ビット5bである。Rep は置換制御手段9が選択し
たキャッシュミスに対して置換すべきバンクを示す。Re
p が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がリセ
ットされた際に、改めて書き込むべきバンクが選択され
る。
【0030】この実施例では、キャッシュミスの場合
に、置換制御手段9が選択するバンクは、有効ビット4
a,4bと書き込み予約ビット5a,5bとを用いて決
めるとしたが、他の情報、例えば、特定のエントリの置
き換えを禁止するためのロックビットや、キャッシュメ
モリ装置100のデータが更新され、主記憶装置103
のデータと異なっていることを示すダーティビットなど
も合わせて用いて、バンクを選ぶようにしてもよい。
【0031】このように、置換制御手段9は書き込み予
約ビット5a,5bによって書き込み予定のエントリの
バンクが分かるので、そのエントリを置き換えないよう
にバンクを選択でき、したがって、キャッシュメモリ装
置100の性能低下を防ぐことができる。また、書き込
みアドレスと新たなキャッシュアクセス要求のアドレス
とを比較する必要がないので、アドレス比較器が不要で
ある。特に書き込みバッファ6にたくさんの書き込み要
求を保持する場合、効果的である。
【0032】(実施例2)図4は、本発明の第2の実施
例に係るキャッシュメモリ装置を示すブロック図であ
る。
【0033】従来例で示したように、書き込み動作に
は、キャッシュヒットを判定するサイクルとデータを格
納するサイクルとが必要である。したがって、従来、書
き込み動作を連続して行なう場合、それぞれの書き込み
動作に2サイクルを必要としていた。しかし、書き込む
べきバンクが分かっていたら、データを書き込むときに
タグを読み出す必要はない。また、書き込み動作に対し
てキャッシュヒットの判定をするときは、データエント
リのアクセスは必要ない。したがって、2つの書き込み
動作を連続して行なう場合、第1の書き込み要求に対し
てデータの書き込みを行ないながら、第2の書き込み要
求に対してキャッシュヒットの判定を行なうことができ
る。第2の実施例によれば、このようにタグエントリの
読み出しとデータエントリへの書き込みとをオーバーラ
ップして行なうパイプライン処理によって、見かけ上、
毎サイクル書き込み要求を処理できる。
【0034】図4において、図1と同じ番号を付したも
のは同じ機能を有するものである。図4では、CPU1
01、バス制御装置102及び主記憶装置103を省略
している。
【0035】書き込みバッファ20は、CPUより書き
込みアドレスとして与えられたアドレス10のインデッ
クス部110と、書き込みデータ111と、書き込むべ
きバンク番号112とを保持する。書き込みバッファ2
0に格納されるバンク番号は、タグ3a,3bと有効ビ
ット4a,4bとを読み出して、いずれかのヒット検出
手段8a又は8bがキャッシュのヒットを検出した場合
にそのヒット信号13a又は13bによって設定され
る。また、キャッシュがミスした場合は、置換制御手段
9によって選択されたバンクの選択信号14によって設
定される。選択回路21は、与えられたアドレス10の
インデックス部と書き込みバッファ20から出力された
書き込みアドレスのインデックス部119とのいずれか
を出力する。データエントリ2a,2bとタグエントリ
3a,3bとは、互いに独立にアクセスすることができ
る。データエントリ2a,2bは選択回路21が出力す
るアドレス24でアクセスされ、タグエントリ3a,3
bはCPUより与えられたアドレス10のインデックス
部によってアクセスされる。22a,22bは、データ
エントリ2a,2bをアクセスするためのデータアクセ
ス回路である。
【0036】読み出し要求に対しては、選択回路21は
CPUより与えられたアドレス10のインデックス部を
選択して出力する。したがって、データとそのデータに
対応するタグとが同時に読み出され、キャッシュヒット
が検出されたバンクのデータエントリ2a又は2bのデ
ータが対応するデータアクセス回路22a又は22bに
よって読み出される。一方、書き込み要求に対しては、
選択回路21は書き込みバッファ20から出力された書
き込みアドレスのインデックス部119を選択する。あ
るいは、読み出し要求がない場合には、選択回路21は
書き込みバッファ20の出力アドレス119を常に選択
・出力することとしてもよい。実際に書き込まれるの
は、書き込みデータ71が得られた後であり、書き込み
バッファ20に保持されている書き込みアドレス110
と書き込みバンク番号112とを用いて、データアクセ
ス回路22a,22bによって書き込むべきエントリと
バンクとが選択され、書き込みデータ111が書き込ま
れる。
【0037】ストア命令が実行されると、このストア命
令の書き込み要求に対してタグを読み出し、キャッシュ
ヒットかミスかの検出をしながら、同時に、書き込みバ
ッファ20で待たされている以前の書き込み要求を処理
する。
【0038】更に、エントリ毎の書き込み予約ビットを
備えたメモリアレー23a,23bをタグエントリ3
a,3bのためのメモリアレーとは別に設け、キャッシ
ュミスが生じた場合に、待たされている書き込み要求に
対するエントリを置き換えないように、置換制御手段9
がバンクを選択する。この場合、書き込み予約ビット
は、キャッシュヒット検出の場合にアドレス10のイン
デックス部を用いて読み出され、そのアクセス要求が書
き込み要求の場合はヒットしたバンクのエントリに対し
て、キャッシュミスに対しては置換制御手段9によって
選択されたバンクのエントリに対してセットされ、デー
タを書き込むときに選択回路21が出力するアドレス2
4を用いてリセットされる。なお、書き込み予約ビット
は、第1の実施例の場合と同様に、タグエントリ3a,
3bと同じメモリアレー上に構成してもよい。
【0039】以上のように第2の実施例によれば、書き
込むべきバンク番号112を書き込みバッファ20に保
持することによって、データを書き込むときに書き込み
アドレスのタグ部を必要としないので、アドレスを保持
するための書き込みバッファ20の回路が少なくてす
む。更に、データを書き込む際にタグをアクセスする必
要がないので、データエントリ2a,2bとタグエント
リ3a,3bとを別々にアクセスするための手段を設け
ることによって、ストア命令に対する書き込み要求をパ
イプライン処理的に、毎サイクル処理できる。
【0040】(実施例3)図5は、本発明の第3の実施
例に係るキャッシュメモリ装置のブロック図である。図
5において、30a,30bはそれぞれバンクであり、
書き込み予約ビットを持たない点を除いて、第2の実施
例のバンク1a,1bと同じ構成である。31は書き込
みバッファであり、第2の実施例の書き込みバッファ2
0の構成(110〜112)に加えて、一致検出手段3
2を持つ。
【0041】ストア命令が実行され、CPUからアドレ
ス10が与えられると、アドレス10のインデックス部
を用いて、両バンク30a,30bのタグ3a,3b及
び有効ビット4a,4bが読み出され、ヒット検出手段
8a,8bによって、キャッシュヒットかどうかが検出
される。キャッシュヒットの場合は、どのバンクでヒッ
トしたかを示すバンク番号112として、ヒット信号1
3a及び13bが書き込みバッファ31に格納される。
このとき、バンク番号に加えて、書き込みアドレス10
のインデックス部と書き込みデータ71とが書き込みバ
ッファ31に格納される。キャッシュミスの場合は、置
換制御手段33が出力する選択信号14を、データを格
納すべきバンク番号112として書き込みバッファ31
に格納する。その後、書き込みバッファ31に格納され
ている書き込みアドレスのインデックス部110が選択
回路21によって選択され、更に、書き込みバッファ3
1に格納されている書き込むべきバンク番号112がデ
ータアクセス回路22a,22bに与えられ、バンクと
エントリとが指定され、データが書き込まれる。
【0042】2つのストア命令を連続して実行する場
合、2つ目のストア命令のアドレス10のインデックス
部を用いて、両バンク30a,30bのタグ3a,3b
及び有効ビット4a,4bを読み出しながら、選択回路
21で書き込みバッファ31の書き込みアドレス119
を選択することにより、第2の実施例と同様に、パイプ
ライン処理的に1サイクル毎に連続して書き込み処理を
行なうことができる。
【0043】ストア命令に対して、キャッシュのヒット
を検出した後、データを書き込む前に、ロード命令が実
行されると、選択回路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へ出力される。また、一致検出手段3
2によってロード命令のアドレス10のインデックス部
と書き込みバッファ31で待たされている書き込みアド
レスのインデックス部110とが比較され、一致し、し
かも、ロード命令がキャッシュミスを起こした場合は、
一致検出手段32はインデックス一致信号114を出力
する。置換制御手段33は、インデックス一致信号11
4と書き込みアドレスに対応する書き込むべきバンク番
号112とにより、そのバンク番号以外のバンクを、キ
ャッシュミスを起こしたロード命令に対して主記憶装置
から読み出したデータを格納するべきバンクとして選択
する。キャッシュミスに対してインデックス一致信号1
14が出力されなかった場合は、置換制御手段33は書
き込みバッファ31に保持されている書き込み要求とは
無関係に、読み出された有効ビット4a,4bを用い
て、格納すべきバンクを選択し、選択信号14を出力す
る。この場合は、図3のcase1、2、3及び4の場
合と同等である。
【0044】図6に従来のキャッシュメモリ装置で連続
するストア命令を実行する場合のタイミング図を、図7
に本発明の第2及び第3の実施例のキャッシュメモリ装
置で連続するストア命令を実行する場合のタイミング図
を各々示す。図6に示すように、従来のキャッシュメモ
リ装置はアドレスBによるタグの読み出しとアドレスA
によるデータの書き込みとを同時には実行できないの
で、ストア命令はそれぞれ2サイクルを必要とするが、
図7に示すように、本発明のキャッシュメモリ装置で
は、アドレスBによるタグの読み出しとアドレスAによ
るデータの書き込みとを同時に行なうことができ、その
分、アクセスのためのサイクル数を少なくすることがで
きる。
【0045】以上のように、第3の実施例によれば、書
き込みアドレスのインデックス部110と書き込みバン
ク番号112とを書き込みバッファ31に保持し、書き
込みアドレスのインデックス部110と新たなアクセス
要求のアドレスのインデックス部との比較と、書き込み
バンク番号112とヒットしたバンクの番号との比較と
を行なうことによって、待たされている書き込みと新た
なアクセス要求とのアドレスの一致を検出することがで
き、従来、アドレスのタグ部及びインデックス部の双方
を用いて一致の検出をしていたのに比べ、少ないビット
数の比較でよいので、比較器と書き込みアドレスを保持
するための回路とを小さくすることができ、比較処理の
高速化が図れる。また、新たなアクセスがキャッシュミ
スを起こした場合に、置換制御手段33が書き込むべき
バンク番号以外のバンクをキャッシュミスを起こしたア
クセスに対して主記憶装置から読み出したデータを格納
するバンクとして、優先的に選択することによって、待
たされている書き込みとのエントリの衝突を防ぎ、誤動
作及び性能低下を防ぐ。
【0046】(実施例4)図8は、本発明の第4の実施
例に係るキャッシュメモリ装置を用いた情報処理装置の
ブロック図である。簡単のために、キャッシュメモリ装
置120がダイレクトマップ方式をとる場合について説
明する。CPU101より書き込み要求が行なわれる
と、第1の実施例と同様に、与えられたアドレス10を
用いてタグ部メモリ125よりタグ3と有効ビット4と
書き込み予約ビット5とが読み出され、ヒット検出手段
8はタグ3とアドレス10のタグ部との比較と、有効ビ
ット4の値とにより、キャッシュヒットかミスかを検出
する。キャッシュヒットの場合、書き込み予約ビット5
を1にセットし、アドレス10と書き込みデータ71と
を書き込みバッファ6のエントリ44,45に格納す
る。CPU101がすぐに書き込みデータを供給するこ
とができない場合は、供給できるまでこの書き込み処理
は待たされる。その後、適当な時に、書き込みバッファ
6に格納されているアドレス44が読み出され、選択回
路7で選択される。書き込みバッファ6に格納されてい
た書き込みデータ45は、選択回路7が出力するアドレ
ス12で指定されるデータ部メモリ124のエントリ2
に格納され、同時に、書き込み予約ビット5が0にリセ
ットされ、書き込み処理が完了する。
【0047】キャッシュミスの場合、書き込み予約ビッ
ト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にリセットし、
書き込み処理を完了する。
【0048】次に、書き込み処理が完了する前に読み出
し要求が与えられた場合について説明する。書き込みア
ドレスと読み出しアドレスとが異なる場合は、後の読み
出し処理を先に行なうことができる。このような場合
は、読み出しアドレス10のインデックス部でタグ部メ
モリ125をアクセスし、読み出された書き込み予約ビ
ット5が0であることから容易に検出される。書き込み
アドレスと読み出しアドレスとが等しい場合、あるい
は、書き込みアドレスと読み出しアドレスとのタグ部は
異なるが、インデックス部が等しい場合は、読み出され
た書き込み予約ビット5が1であることから検出され
る。この場合、書き込み予約ビット5は制御回路121
に与えられ、制御回路121は書き込みバッファ6に保
持されている書き込み要求の処理が完了し、書き込み予
約ビット5が0にリセットされるまで、読み出し処理を
待たせる。
【0049】このようにして、後続の読み出し要求が前
の書き込み処理で更新される前のデータを誤って読み出
したり、読み出し要求に対するキャッシュミスによっ
て、前の書き込み処理が格納すべきデータとタグとを誤
って書き換えてしまうことを防ぐことができる。しか
も、書き込みアドレスと読み出しアドレスとを比較器で
比較する必要がなく、回路規模を減少させることができ
る。
【0050】(実施例5)図9は、本発明の第5の実施
例に係るキャッシュメモリ装置を用いた情報処理装置の
ブロック図である。簡単のため、キャッシュメモリ装置
130がダイレクトマップ方式をとる場合について説明
する。書き込みバッファ6は2つのエントリ131,1
32を備え、それぞれ書き込みアドレス133と書き込
みデータ134とを保持する。135はデータを格納す
るための複数のエントリ2を備えたデータ部メモリであ
る。136はタグ部メモリであり、データ部メモリ13
5のそれぞれのエントリ2に対応したアドレスのタグエ
ントリ3と、有効ビット4と、2ビットの書き込み予約
ビット137,138とを備えている。2ビットの書き
込み予約ビット137,138はそれぞれ、書き込みバ
ッファ6の2つのエントリ131,132に対応する。
CPU101からの書き込み要求に対して、書き込みア
ドレス133と書き込みデータ134とが書き込みバッ
ファ6の第1エントリ131に格納されるときは第1の
書き込み予約ビット137が、第2エントリ132に格
納されるときは第2の書き込み予約ビット138が各々
1にセットされる。これは、書き込みバッファ6の格納
を制御するための書き込みバッファ格納制御回路139
が出力するエントリ選択信号140,141を書き込み
予約ビット137,138に格納することによってなさ
れる。
【0051】書き込み要求に対する処理が完了する前に
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を持たせる時間を
短縮して、情報処理装置の性能向上を図ることができ
る。
【0052】書き込み予約ビット137,138のいず
れかが1で、ヒット検出手段8がキャッシュミスを検出
した場合、制御回路143は書き込みバッファ6に保持
されている書き込み要求の処理が完了し、書き込み予約
ビット137,138が共に0にリセットされるまで、
読み出し要求を待たせる。これにより、読み出し要求に
対するキャッシュミスによって、書き込み要求に対する
データとタグとを誤って書き換えることを防ぐことがで
きる。また、書き込み予約ビット137,138を用い
ることによって、書き込みアドレスと読み出しアドレス
とを比較するための比較器が不要で、回路規模を削減で
きる。
【0053】なお、第4及び第5の実施例において、キ
ャッシュメモリ装置120,130はダイレクトマップ
方式としたが、セットアソシアティブ方式でも本発明が
適用できることは明らかである。また、書き込みバッフ
ァ6のエントリ数は2以外に、1でも3以上でもよい。
【0054】また、第1、第2及び第3の実施例におい
て、キャッシュメモリ装置100は2ウェイ・セットア
ソシアティブ・キャッシュとしたが、3ウェイ以上のセ
ットアソシアティビティを持つキャッシュメモリ装置に
ついても同様である。
【0055】また、第2及び第3の実施例において、各
データエントリ2a,2bは選択回路21で選択された
アドレス24でアクセスされるとしたが、該データエン
トリ2a,2bを2ポートのメモリで構成し、与えられ
たアドレス10による読み出しと、書き込みバッファ2
0又は31に格納された書き込みアドレス110による
書き込みとを同時に行なうようにしてもよい。この場合
には、選択回路21の配設を省略できる。これにより、
より多くのロード/ストア命令を実行でき、情報処理装
置の性能を向上させることができる。
【0056】
【発明の効果】以上のように、本発明によれば、書き込
み予約ビットを備えた構成を採用し、あるいはヒット情
報を書き込みバッファに保持する構成を採用したので、
書き込み処理を待たせたまま読み出し動作を行なう場合
のキャッシュメモリ装置の誤動作防止及び性能向上を達
成することができる。
【0057】また、ヒットの検出のためのタグの読み出
しとデータの書き込みとを同時に行なう構成の採用によ
り、連続するストア命令をパイプライン的に高速処理す
ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係るキャッシュメモリ
装置を用いた情報処理装置のブロック図である。
【図2】図1中のキャッシュメモリ装置に対して書き込
み要求と読み出し要求とが続けて発行された場合のタイ
ミング図である。
【図3】図1中の置換制御手段が置換すべきバンクを選
択する方法を示す図である。
【図4】本発明の第2の実施例に係るキャッシュメモリ
装置のブロック図である。
【図5】本発明の第3の実施例に係るキャッシュメモリ
装置のブロック図である。
【図6】従来のキャッシュメモリ装置で連続するストア
命令を実行した場合のタイミング図である。
【図7】本発明の第2及び第3の実施例に係るキャッシ
ュメモリ装置で連続するストア命令を実行した場合のタ
イミング図である。
【図8】本発明の第4の実施例に係るキャッシュメモリ
装置を用いた情報処理装置のブロック図である。
【図9】本発明の第5の実施例に係るキャッシュメモリ
装置を用いた情報処理装置のブロック図である。
【図10】従来のキャッシュメモリ装置のブロック図で
ある。
【符号の説明】
1a,1b,30a,30b,40a,40b バンク 2,2a,2b データエントリ 3,3a,3b タグエントリ 4,4a,4b 有効ビット 5,5a,5b,23a,23b,137,138 書
き込み予約ビット 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 (8)

    【特許請求の範囲】
  1. 【請求項1】 セットアソシアティブ方式をとるキャッ
    シュメモリ装置において、 データを格納するための複数のデータエントリと、 前記データエントリに格納されたデータのアドレスのタ
    グ部を格納するためのタグエントリと、 前記データエントリに格納されたデータが有効かどうか
    を示す有効ビットと、 前記データエントリに書き込み要求が発生した場合にセ
    ットされ、書き込みが完了したときにリセットされる書
    き込み予約ビットと、 キャッシュミスが発生した場合に、書き込み予約ビット
    がセットされていないデータエントリを置き換えるべき
    データエントリとして優先的に選択するための置換制御
    手段とを備えたことを特徴とするキャッシュメモリ装
    置。
  2. 【請求項2】 セットアソシアティブ方式をとるキャッ
    シュメモリ装置において、 データを格納するための複数のデータエントリと、 前記データエントリに格納されたデータのアドレスのタ
    グ部を格納するためのタグエントリと、 前記データエントリに格納されたデータが有効かどうか
    を示す有効ビットと、 与えられたアドレスのインデックス部を用いて、前記タ
    グエントリと前記有効ビットとを読み出し、前記与えら
    れたアドレスのタグ部と比較してヒットかどうかを検出
    するためのヒット検出手段と、 書き込み要求に対して、前記ヒット検出手段によって検
    出されたヒット情報と、書き込みアドレスのインデック
    ス部と、書き込むべきデータとを保持するための書き込
    みバッファと、 読み出しの場合は、前記与えられたアドレスのインデッ
    クス部を用いて読み出した複数のデータエントリのう
    ち、前記ヒット検出手段によって検出されたヒットに対
    応するデータエントリのデータを読み出し、書き込みの
    場合は、前記書き込みバッファに格納されている前記書
    き込みアドレスのインデックス部と前記書き込みバッフ
    ァに格納されている前記ヒット情報とを用いてデータエ
    ントリを選択して、前記書き込みバッファに格納されて
    いる前記書き込みデータを書き込むためのデータアクセ
    ス手段とを備えたことを特徴とするキャッシュメモリ装
    置。
  3. 【請求項3】 請求項2記載のキャッシュメモリ装置に
    おいて、 前記データエントリに書き込み要求が発生した場合にセ
    ットされ、書き込みが完了したときにリセットされる書
    き込み予約ビットと、 キャッシュミスが発生した場合に、書き込み予約ビット
    がセットされていないデータエントリを書き換えるべき
    データエントリとして優先的に選択するための置換制御
    手段とを更に備えたことを特徴とするキャッシュメモリ
    装置。
  4. 【請求項4】 セットアソシアティブ方式をとるキャッ
    シュメモリ装置において、 データを格納するための複数のデータエントリと、 前記データエントリに格納されたデータのアドレスのタ
    グ部を格納するためのタグエントリと、 前記データエントリに格納されたデータが有効かどうか
    を示す有効ビットと、 与えられたアドレスのインデックス部を用いて、前記タ
    グエントリと前記有効ビットとを読み出し、前記与えら
    れたアドレスのタグ部と比較してヒットかどうかを検出
    するためのヒット検出手段と、 書き込み要求に対して、前記ヒット検出手段によって検
    出されたヒット情報と、書き込みアドレスのインデック
    ス部と、書き込むべきデータとを保持するための書き込
    みバッファと、 読み出しの場合は、与えられたアドレスのインデックス
    部を用いて読み出した複数のデータエントリのうち、前
    記ヒット検出手段によって検出されたヒットに対応する
    データエントリのデータを読み出し、書き込みの場合
    は、前記書き込みバッファに格納されている前記書き込
    みアドレスのインデックス部と前記書き込みバッファに
    格納されている前記ヒット情報を用いてデータエントリ
    を選択して、前記書き込みバッファに格納されている前
    記書き込みデータを書き込むためのデータアクセス手段
    とを備えたことを特徴とするキャッシュメモリ装置。
  5. 【請求項5】 請求項4記載のキャッシュメモリ装置に
    おいて、 前記書き込みバッファは、書き込み要求がキャッシュミ
    スを生じた場合に書き換えるべきデータエントリの選択
    信号を格納する機能を備え、 前記データアクセス手段は、書き込みの場合、前記書き
    込みバッファに格納されている前記書き込みアドレスの
    インデックス部に加えて、前記書き込み要求がヒットの
    ときは前記書き込みバッファに格納されている前記ヒッ
    ト情報を、前記書き込み要求がキャッシュミスのときは
    前記書き込みバッファに格納されている前記書き換える
    べきデータエントリの選択信号を各々用いてデータエン
    トリを選択して、前記書き込みバッファに格納されてい
    る前記書き込みデータを書き込む機能を備えたことを特
    徴とするキャッシュメモリ装置。
  6. 【請求項6】 請求項4記載のキャッシュメモリ装置に
    おいて、 与えられたアドレスのインデックス部と前記書き込みバ
    ッファに格納された書き込みアドレスのインデックス部
    とを比較し、前記ヒット検出手段により検出されたヒッ
    ト情報と前記書き込みバッファに格納されているヒット
    情報とを比較することによって、前記書き込みバッファ
    で待たされている書き込みのアドレスと前記与えられた
    アドレスとの一致を検出してアドレス一致信号を出力
    し、前記与えられたアドレスのインデックス部と前記書
    き込みバッファに格納された書き込みアドレスのインデ
    ックス部とを比較してインデックス一致信号を出力する
    ための一致検出手段と、 前記インデックス一致信号を受け取った場合に、前記書
    き込みバッファに格納されている書き込み要求がヒット
    のときは前記書き込みバッファに格納されているヒット
    情報を、前記書き込みバッファに格納されている書き込
    み要求がキャッシュミスのときは前記書き換えるべきデ
    ータエントリの選択信号を各々用いて、前記書き込みバ
    ッファで待たされている書き込み要求によって書き込ま
    れるデータエントリ以外のデータエントリを書き換える
    べきデータエントリとして優先的に選択し、前記データ
    エントリの選択信号を出力するための置換制御手段とを
    更に備えたことを特徴とするキャッシュメモリ装置。
  7. 【請求項7】 データを格納するための複数のデータエ
    ントリと、 前記データエントリに格納されたデータのアドレスのタ
    グ部を格納するためのタグエントリと、 前記データエントリに格納されたデータが有効かどうか
    を示す有効ビットと、 前記データエントリに書き込み要求が発生した場合にセ
    ットされ、書き込みが完了したときにリセットされる書
    き込み予約ビットと、 前記書き込み要求に係るアドレスとデータとを保持する
    ための書き込みバッファと、 与えられたアクセス要求に対して読み出された前記書き
    込み予約ビットがセットされていると、前記書き込みバ
    ッファに保持されているデータを前記書き込み要求のア
    ドレスで指定されるデータエントリに格納して前記書き
    込み予約ビットがリセットされるまで、前記与えられた
    アクセスを待たせるための制御手段とを備えたことを特
    徴とするキャッシュメモリ装置。
  8. 【請求項8】 各々書き込み要求に係るアドレスとデー
    タとを保持するための複数の書き込み要求エントリを有
    する書き込みバッファと、 データを格納するための複数のデータエントリと、 前記データエントリに格納されたデータのアドレスのタ
    グ部を格納するためのタグエントリと、 前記データエントリに格納されたデータが有効かどうか
    を示す有効ビットと、 前記データエントリに書き込み要求が発生した場合に、
    前記書き込み要求のアドレスとデータとを保持する書き
    込み要求エントリの番号を格納し、書き込みが完了した
    ときにリセットされる書き込み予約ビットと、 キャッシュヒットを検出するためのヒット検出手段と、 読み出し要求に対して前記ヒット検出手段がキャッシュ
    ヒットを検出し、かつ読み出された前記書き込み予約ビ
    ットがリセットされていない場合、読み出された前記書
    き込み予約ビットで指定される前記書き込み要求エント
    リに保持されているデータを前記読み出し要求に対する
    データとして読み出すためのデータ転送制御手段とを備
    えたことを特徴とするキャッシュメモリ装置。
JP05225402A 1992-09-24 1993-09-10 キャッシュメモリ装置 Expired - Fee Related JP3100807B2 (ja)

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 true JPH06161900A (ja) 1994-06-10
JP3100807B2 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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259498A (ja) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサの命令キャッシュ
WO2004046933A1 (ja) * 2002-11-20 2004-06-03 Fujitsu Limited メモリ制御装置およびキャッシュリプレース制御方法
JPWO2004107180A1 (ja) * 2003-05-30 2006-07-20 富士通株式会社 マルチプロセッサシステム
WO2007088591A1 (ja) * 2006-01-31 2007-08-09 Fujitsu Limited メモリアクセス制御装置およびメモリアクセス制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439501B (zh) 2009-05-28 2014-03-19 柯尼卡美能达精密光学株式会社 光耦合装置及光断层摄影装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259498A (ja) * 1999-03-10 2000-09-22 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサの命令キャッシュ
WO2004046933A1 (ja) * 2002-11-20 2004-06-03 Fujitsu Limited メモリ制御装置およびキャッシュリプレース制御方法
JPWO2004107180A1 (ja) * 2003-05-30 2006-07-20 富士通株式会社 マルチプロセッサシステム
US7320056B2 (en) 2003-05-30 2008-01-15 Fujitsu Limited Multi-processor system
WO2007088591A1 (ja) * 2006-01-31 2007-08-09 Fujitsu Limited メモリアクセス制御装置およびメモリアクセス制御方法
KR100987996B1 (ko) * 2006-01-31 2010-10-18 후지쯔 가부시끼가이샤 메모리 액세스 제어 장치 및 메모리 액세스 제어 방법

Also Published As

Publication number Publication date
JP3100807B2 (ja) 2000-10-23

Similar Documents

Publication Publication Date Title
KR960006484B1 (ko) 캐쉬메모리장치
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
US6282617B1 (en) Multiple variable cache replacement policy
KR100423276B1 (ko) 명령어인출방법및장치
US8117395B1 (en) Multi-stage pipeline for cache access
US20020116586A1 (en) Shared write buffer for use by multiple processor units
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
US8527708B2 (en) Detecting address conflicts in a cache memory system
JPH0322155A (ja) キャッシュメモリ装置
EP0531123B1 (en) A dynamic address translation processing apparatus in a data processing system
US20090292857A1 (en) Cache memory unit
JP2002229852A (ja) キャッシュシステムの制御回路
JPH06161900A (ja) キャッシュメモリ装置
EP0442690A2 (en) Data cache store buffer for high performance computer
US7085896B2 (en) Method and apparatus which implements a multi-ported LRU in a multiple-clock system
US8423719B2 (en) Apparatus, processor and method of controlling cache memory
JP6451475B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JPS6161143B2 (ja)
JPH0659977A (ja) 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法
JPH1185613A (ja) キャッシュメモリ
JP2864548B2 (ja) 命令キャッシュ装置
JP2006343803A (ja) キャッシュメモリ
WO2005008501A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
JPH0337745A (ja) キャッシュメモリ制御装置
JPH0512124A (ja) バツフア記憶制御方式

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