JPH07319768A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JPH07319768A JPH07319768A JP6110050A JP11005094A JPH07319768A JP H07319768 A JPH07319768 A JP H07319768A JP 6110050 A JP6110050 A JP 6110050A JP 11005094 A JP11005094 A JP 11005094A JP H07319768 A JPH07319768 A JP H07319768A
- Authority
- JP
- Japan
- Prior art keywords
- address
- cpu
- word line
- cache memory
- word
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 キャッシュミスの処理中にもCPUからのア
クセスを許すことにより、CPUの待ち状態の発生を減
らし、CPUの処理能力を高めることのできるキャッシ
ュメモリ装置を提供する。 【構成】 CPUからアクセスされると、インデックス
アドレスをアドレスデコーダ14でデコードし、選択さ
れたWORD線Aに対応する2ポートRAMセル21へ
のアクセスが行なわれる。キャッシュミスが発生したと
き、イネーブル信号がラッチ手段22に入力され、この
ときのWORD線Aの情報をラッチし、WORD線Bに
出力する。その後、次のCPUによるキャッシュアクセ
スが可能となる。主記憶手段から読み出されたデータ
は、BIT線Bに入力され、WORD線Bの情報に従っ
て2ポートRAMセル21に書き込まれる。キャッシュ
ミス処理中に同じアドレスがアクセスされると、ラッチ
読み出し手段23で検知し、CPUを停止する。
クセスを許すことにより、CPUの待ち状態の発生を減
らし、CPUの処理能力を高めることのできるキャッシ
ュメモリ装置を提供する。 【構成】 CPUからアクセスされると、インデックス
アドレスをアドレスデコーダ14でデコードし、選択さ
れたWORD線Aに対応する2ポートRAMセル21へ
のアクセスが行なわれる。キャッシュミスが発生したと
き、イネーブル信号がラッチ手段22に入力され、この
ときのWORD線Aの情報をラッチし、WORD線Bに
出力する。その後、次のCPUによるキャッシュアクセ
スが可能となる。主記憶手段から読み出されたデータ
は、BIT線Bに入力され、WORD線Bの情報に従っ
て2ポートRAMセル21に書き込まれる。キャッシュ
ミス処理中に同じアドレスがアクセスされると、ラッチ
読み出し手段23で検知し、CPUを停止する。
Description
【0001】
【産業上の利用分野】本発明は、計算機におけるキャッ
シュメモリ装置に関するものである。
シュメモリ装置に関するものである。
【0002】
【従来の技術】一般に、CPUのサイクルタイムに比
べ、主記憶手段のアクセスタイムははるかに大きい。そ
のため、CPUはメモリアクセスを行なうたびに主記憶
手段の動作が完了するのを待つことになる。しかし、こ
れでは計算機の性能は主記憶手段の遅さによって低下し
てしまう。そこで、高速なアクセスが可能なキャッシュ
メモリをCPUと主記憶手段の間に配置している。
べ、主記憶手段のアクセスタイムははるかに大きい。そ
のため、CPUはメモリアクセスを行なうたびに主記憶
手段の動作が完了するのを待つことになる。しかし、こ
れでは計算機の性能は主記憶手段の遅さによって低下し
てしまう。そこで、高速なアクセスが可能なキャッシュ
メモリをCPUと主記憶手段の間に配置している。
【0003】図13は、一般的なキャッシュメモリ装置
を用いた構成図である。図中、1はCPU、2は主記憶
手段、3は制御手段、4はキャッシュメモリ装置、5,
6はバッファである。キャッシュメモリ装置4は、CP
U1のサイクルタイムと同等のアクセスタイムを持つ高
速メモリである。CPU1は、キャッシュメモリ装置4
に対しては、待ちサイクルを生じることなくアクセスす
ることができる。キャッシュメモリ装置4の容量は、主
記憶手段2に比べればはるかに小さく、主記憶手段2の
一部のコピーを保持する。制御手段3は、キャッシュメ
モリ装置4が保持している内容の読み出しについては、
主記憶手段2をアクセスすることなく、アクセスを完了
させるとともに、キャッシュメモリ装置4が保持してい
ない場合には主記憶手段2に対してメモリアクセス要求
を行なうように制御する。また、書き込み時には、主記
憶手段2の内容とキャッシュメモリ装置4が保持する内
容が同一となるように制御する。このような制御のため
に、制御手段3は、バッファ5,6を制御するととも
に、主記憶手段2に対するメモリアクセス要求を行な
う。
を用いた構成図である。図中、1はCPU、2は主記憶
手段、3は制御手段、4はキャッシュメモリ装置、5,
6はバッファである。キャッシュメモリ装置4は、CP
U1のサイクルタイムと同等のアクセスタイムを持つ高
速メモリである。CPU1は、キャッシュメモリ装置4
に対しては、待ちサイクルを生じることなくアクセスす
ることができる。キャッシュメモリ装置4の容量は、主
記憶手段2に比べればはるかに小さく、主記憶手段2の
一部のコピーを保持する。制御手段3は、キャッシュメ
モリ装置4が保持している内容の読み出しについては、
主記憶手段2をアクセスすることなく、アクセスを完了
させるとともに、キャッシュメモリ装置4が保持してい
ない場合には主記憶手段2に対してメモリアクセス要求
を行なうように制御する。また、書き込み時には、主記
憶手段2の内容とキャッシュメモリ装置4が保持する内
容が同一となるように制御する。このような制御のため
に、制御手段3は、バッファ5,6を制御するととも
に、主記憶手段2に対するメモリアクセス要求を行な
う。
【0004】図14は、従来のキャッシュメモリ装置の
一例を示すブロック図である。図中、11はタグ部、1
2はデータ部、13,14はアドレスデコーダ、15は
コンパレータ手段である。主記憶手段2上の情報と、キ
ャッシュメモリ装置4上のコピーとの対応をとるため
に、キャッシュメモリ装置4には、コピーを保持するR
AMであるデータ部12と、そのコピーに対応する主記
憶手段2上のアドレス情報を保持するRAMであるタグ
部11を持つ。キャッシュメモリ装置には、一般にダイ
レクトマップ、セットアソシアティブ、フルアソシアテ
ィブ等の構成方式があるが、以下の説明ではダイレクト
マップを例にとって説明する。
一例を示すブロック図である。図中、11はタグ部、1
2はデータ部、13,14はアドレスデコーダ、15は
コンパレータ手段である。主記憶手段2上の情報と、キ
ャッシュメモリ装置4上のコピーとの対応をとるため
に、キャッシュメモリ装置4には、コピーを保持するR
AMであるデータ部12と、そのコピーに対応する主記
憶手段2上のアドレス情報を保持するRAMであるタグ
部11を持つ。キャッシュメモリ装置には、一般にダイ
レクトマップ、セットアソシアティブ、フルアソシアテ
ィブ等の構成方式があるが、以下の説明ではダイレクト
マップを例にとって説明する。
【0005】CPU1のアドレスバスを通じて得られる
アドレスビット列を、少なくともインデックスアドレス
とタグアドレスの2つの部分に分ける。インデックスア
ドレスをタグ部11とデータ部12のアドレスデコーダ
13,14に与え、それぞれのうちの1つを参照する。
つまり、タグ部11とデータ部12の対応するアドレス
の語は、ペアを構成する。タグ部11には、対応するデ
ータ部12の主記憶手段2中でのタグアドレス部分が格
納されており、タグ部11から読み出されたタグアドレ
スと、CPU1から与えられたタグアドレスをコンパレ
ータ手段15で比較する。両者が一致すれば、CPU1
がアドレスで指定した情報はキャッシュメモリ装置4に
コピーされており、インデックスアドレスで指定された
データ部12に格納されていることを意味している。こ
れをキャッシュヒットという。両者が一致しないとき
は、CPU1が要求するアドレスに対応する情報はキャ
ッシュメモリ装置4に格納されていないことを示す。こ
れを、キャッシュミスという。図14においてコンパレ
ータ手段15から制御手段3へ出力されるヒット/ミス
信号は、このキャッシュヒットまたはキャッシュミスを
示す信号である。ヒット/ミス信号が制御手段3に伝え
られると、制御手段3はしかるべき制御信号をCPU1
に伝えるとともに、主記憶手段2に対してアクセスを要
求する。
アドレスビット列を、少なくともインデックスアドレス
とタグアドレスの2つの部分に分ける。インデックスア
ドレスをタグ部11とデータ部12のアドレスデコーダ
13,14に与え、それぞれのうちの1つを参照する。
つまり、タグ部11とデータ部12の対応するアドレス
の語は、ペアを構成する。タグ部11には、対応するデ
ータ部12の主記憶手段2中でのタグアドレス部分が格
納されており、タグ部11から読み出されたタグアドレ
スと、CPU1から与えられたタグアドレスをコンパレ
ータ手段15で比較する。両者が一致すれば、CPU1
がアドレスで指定した情報はキャッシュメモリ装置4に
コピーされており、インデックスアドレスで指定された
データ部12に格納されていることを意味している。こ
れをキャッシュヒットという。両者が一致しないとき
は、CPU1が要求するアドレスに対応する情報はキャ
ッシュメモリ装置4に格納されていないことを示す。こ
れを、キャッシュミスという。図14においてコンパレ
ータ手段15から制御手段3へ出力されるヒット/ミス
信号は、このキャッシュヒットまたはキャッシュミスを
示す信号である。ヒット/ミス信号が制御手段3に伝え
られると、制御手段3はしかるべき制御信号をCPU1
に伝えるとともに、主記憶手段2に対してアクセスを要
求する。
【0006】図14では、タグ部11とデータ部12に
それぞれアドレスデコーダ13,14を設けているが、
1つのアドレスデコーダと、そのアドレスデコーダより
出力されるWORD線を、タグ部11とデータ部12が
共有するように構成される場合もある。
それぞれアドレスデコーダ13,14を設けているが、
1つのアドレスデコーダと、そのアドレスデコーダより
出力されるWORD線を、タグ部11とデータ部12が
共有するように構成される場合もある。
【0007】従来のキャッシュメモリ装置のデータ部の
実装法としては、例えば、PaulChou氏編「Th
e MIPS−X RISC Microproces
sor」(Kluwer Academic Publ
ishers社出版)に記載されているように、キャッ
シュメモリ装置のデータ部は、1系列のWORD線と、
1系列のBIT線と、1ポートRAMセルから構成され
ている。
実装法としては、例えば、PaulChou氏編「Th
e MIPS−X RISC Microproces
sor」(Kluwer Academic Publ
ishers社出版)に記載されているように、キャッ
シュメモリ装置のデータ部は、1系列のWORD線と、
1系列のBIT線と、1ポートRAMセルから構成され
ている。
【0008】図15は、従来のキャッシュメモリ装置の
データ部の一例を示すブロック図である。図中、16は
1ポートRAMセルである。1ポートRAMセル16は
マトリクス状に配置され、アドレスデコーダ14から出
力される各WORD線が、マトリクスの各行に配列され
た1ポートRAMセル16に接続されている。また、各
BIT線は、マトリクスの各列に配列された1ポートR
AMセル16に接続されている。今日のCOMSテクノ
ロジーでは、BIT線は正論理と負論理の2本で構成さ
れることが多い。ある1本のWORD線をオンとするこ
とにより、WORD線に接続されている1行分の1ポー
トRAMセル16に保持されているデータがBIT線に
読み出される。逆に、ある1本のWORD線をオンと
し、BIT線にデータを乗せ、図示しない書き込み許可
信号を印加することにより、書き込みを行なうことがで
きる。
データ部の一例を示すブロック図である。図中、16は
1ポートRAMセルである。1ポートRAMセル16は
マトリクス状に配置され、アドレスデコーダ14から出
力される各WORD線が、マトリクスの各行に配列され
た1ポートRAMセル16に接続されている。また、各
BIT線は、マトリクスの各列に配列された1ポートR
AMセル16に接続されている。今日のCOMSテクノ
ロジーでは、BIT線は正論理と負論理の2本で構成さ
れることが多い。ある1本のWORD線をオンとするこ
とにより、WORD線に接続されている1行分の1ポー
トRAMセル16に保持されているデータがBIT線に
読み出される。逆に、ある1本のWORD線をオンと
し、BIT線にデータを乗せ、図示しない書き込み許可
信号を印加することにより、書き込みを行なうことがで
きる。
【0009】このような構成のキャッシュメモリ装置4
では、キャッシュミスが発生したとき、次のように動作
する。キャッシュミスの検出にともない、CPU1の命
令実行を停止させ、キャッシュメモリ装置4の制御手段
3がキャッシュミスを発生したアドレスを主記憶手段2
に与える。主記憶手段2は、与えられたアドレスからデ
ータを読み出してキャッシュメモリ装置4に送る。その
とき、キャッシュメモリ装置4の制御手段3は、キャッ
シュミスを発生したアドレスがキャッシュメモリ装置4
のアドレスコーダ13,14に与えられるようにする。
これによって、WORD線が選択され、1語分の1ポー
トRAMセル16が選択される。そして、BIT線に主
記憶手段2から読み出したデータをドライブし、選択さ
れた1行分の1ポートRAMセル16にそれを書き込
む。
では、キャッシュミスが発生したとき、次のように動作
する。キャッシュミスの検出にともない、CPU1の命
令実行を停止させ、キャッシュメモリ装置4の制御手段
3がキャッシュミスを発生したアドレスを主記憶手段2
に与える。主記憶手段2は、与えられたアドレスからデ
ータを読み出してキャッシュメモリ装置4に送る。その
とき、キャッシュメモリ装置4の制御手段3は、キャッ
シュミスを発生したアドレスがキャッシュメモリ装置4
のアドレスコーダ13,14に与えられるようにする。
これによって、WORD線が選択され、1語分の1ポー
トRAMセル16が選択される。そして、BIT線に主
記憶手段2から読み出したデータをドライブし、選択さ
れた1行分の1ポートRAMセル16にそれを書き込
む。
【0010】この後、CPU1をキャッシュミスを起こ
す時点から再実行する。あるいは、制御手段3が主記憶
手段2から送られたデータを停止中のCPU1のメモリ
・リード・レジスタに書き込んだ後に、CPU1の停止
を解除する。後者のケースでは、キャッシュミス検出時
には、CPU1のメモリ・リード・レジスタにはCPU
1がアクセスしたいアドレスとは違うアドレスのデータ
が書き込まれているので、主記憶手段2から正しい値を
得た際に、正しい値に書き換えておく。いずれの場合に
も、主記憶手段2からの読み出しと、キャッシュメモリ
装置4への書き込みが完了するまでは、CPU1は命令
実行を停止している。
す時点から再実行する。あるいは、制御手段3が主記憶
手段2から送られたデータを停止中のCPU1のメモリ
・リード・レジスタに書き込んだ後に、CPU1の停止
を解除する。後者のケースでは、キャッシュミス検出時
には、CPU1のメモリ・リード・レジスタにはCPU
1がアクセスしたいアドレスとは違うアドレスのデータ
が書き込まれているので、主記憶手段2から正しい値を
得た際に、正しい値に書き換えておく。いずれの場合に
も、主記憶手段2からの読み出しと、キャッシュメモリ
装置4への書き込みが完了するまでは、CPU1は命令
実行を停止している。
【0011】また、従来のRISCタイプのCPUで
は、ある命令が完了するまでは後続の命令は完了できな
いという制御方式を採用していたが、今日では、先行す
る命令の完了を待たずに後続の命令実行を完了するとい
う、動的命令実行スケジュールを行なうような制御方式
が採用されつつある。これによれば、ロード命令やスト
ア命令がキャッシュミスを起こして主記憶をアクセスす
る必要が生じても、後続の命令がキャッシュミスを起こ
した命令に依存しないならば実行することができる。こ
うすれば、見かけ上、CPU1は主記憶装置2のアクセ
スを待たなくてもよくなるので、性能向上を図ることが
できる。
は、ある命令が完了するまでは後続の命令は完了できな
いという制御方式を採用していたが、今日では、先行す
る命令の完了を待たずに後続の命令実行を完了するとい
う、動的命令実行スケジュールを行なうような制御方式
が採用されつつある。これによれば、ロード命令やスト
ア命令がキャッシュミスを起こして主記憶をアクセスす
る必要が生じても、後続の命令がキャッシュミスを起こ
した命令に依存しないならば実行することができる。こ
うすれば、見かけ上、CPU1は主記憶装置2のアクセ
スを待たなくてもよくなるので、性能向上を図ることが
できる。
【0012】とかろが、ロード命令とストア命令の出現
頻度は、20〜30%程度と比較的高いため、キャッシ
ュミスの処理中に後続のメモリアクセス命令が出現する
確率は高い。この場合、後続のメモリアクセス命令のタ
ーゲットがキャッシュの中にあっても、キャッシュミス
の処理の終了を待たねばならない。こうなると、動的命
令実行スケジューリングを行なっても、主記憶手段2の
アクセスを待つケースが多くなり、CPU1の処理性能
が低下する。
頻度は、20〜30%程度と比較的高いため、キャッシ
ュミスの処理中に後続のメモリアクセス命令が出現する
確率は高い。この場合、後続のメモリアクセス命令のタ
ーゲットがキャッシュの中にあっても、キャッシュミス
の処理の終了を待たねばならない。こうなると、動的命
令実行スケジューリングを行なっても、主記憶手段2の
アクセスを待つケースが多くなり、CPU1の処理性能
が低下する。
【0013】今日では、CPU1はCMOS技術で実装
され、100MHz以上で動作させることは不可能では
なく、動作周波数は年々向上している。一方、主記憶手
段2は、おもにDRAMで構成されているが、DRAM
の動作周波数の向上率はCPUのそれよりも低い。典型
的なDRAMの例では、アクセスのために100nse
c、1語の転送にさらに40nsec程度の時間がかか
る。このようにCPU1の速度と主記憶手段2の速度の
ギャップが大きくなってくると、キャッシュミスの処理
に要する時間がCPUのランタイムに占める割合が次第
に大きくなり、計算機としての性能向上はCPUの性能
向上よりも劣ったものとなってしまう。なぜならば、キ
ャッシュミスの処理に要する時間は、ほとんどが主記憶
手段のアクセスで占められるからである。
され、100MHz以上で動作させることは不可能では
なく、動作周波数は年々向上している。一方、主記憶手
段2は、おもにDRAMで構成されているが、DRAM
の動作周波数の向上率はCPUのそれよりも低い。典型
的なDRAMの例では、アクセスのために100nse
c、1語の転送にさらに40nsec程度の時間がかか
る。このようにCPU1の速度と主記憶手段2の速度の
ギャップが大きくなってくると、キャッシュミスの処理
に要する時間がCPUのランタイムに占める割合が次第
に大きくなり、計算機としての性能向上はCPUの性能
向上よりも劣ったものとなってしまう。なぜならば、キ
ャッシュミスの処理に要する時間は、ほとんどが主記憶
手段のアクセスで占められるからである。
【0014】上述したように、従来のキャッシュメモリ
装置ではキャッシュミスの処理中にはCPUのキャッシ
ュアクセスを許さないため、動的命令実行制御を用いて
も、CPUに待ち状態が発生し、性能向上を阻害すると
いう問題点があった。
装置ではキャッシュミスの処理中にはCPUのキャッシ
ュアクセスを許さないため、動的命令実行制御を用いて
も、CPUに待ち状態が発生し、性能向上を阻害すると
いう問題点があった。
【0015】性能向上を図るため、1度のアクセスによ
り複数ワードを読み出せるように構成したキャッシュメ
モリ装置も開発されている。例えば、特開平2−176
839号公報に記載された構成では、少なくともデータ
部に2ポートメモリを用い、1回のアクセスで2つのア
ドレスを受け付け、各アドレスをそれぞれのポートに入
力して、2ワードのデータを同時に取り出している。こ
のような構成によれば、2回のアクセスを1回で済ます
ことができ、性能向上を図ることができる。
り複数ワードを読み出せるように構成したキャッシュメ
モリ装置も開発されている。例えば、特開平2−176
839号公報に記載された構成では、少なくともデータ
部に2ポートメモリを用い、1回のアクセスで2つのア
ドレスを受け付け、各アドレスをそれぞれのポートに入
力して、2ワードのデータを同時に取り出している。こ
のような構成によれば、2回のアクセスを1回で済ます
ことができ、性能向上を図ることができる。
【0016】しかし、この構成においても、キャッシュ
ミスにより主記憶手段をアクセスしている間にアクセス
を受け付ける手段を有しておらず、依然として主記憶手
段をアクセスしている間は、CPUの動作が停止してし
まう。そのため、キャッシュメモリ装置からのリードが
2回続けて発生する場合等を除き、計算機の性能向上を
図ることはできない。
ミスにより主記憶手段をアクセスしている間にアクセス
を受け付ける手段を有しておらず、依然として主記憶手
段をアクセスしている間は、CPUの動作が停止してし
まう。そのため、キャッシュメモリ装置からのリードが
2回続けて発生する場合等を除き、計算機の性能向上を
図ることはできない。
【0017】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、キャッシュミスの処理中に
も、CPUからのアクセスを許すことにより、CPUの
待ち状態の発生を減らし、CPUの処理能力を高めるこ
とのできるキャッシュメモリ装置を提供することを目的
とするものである。
情に鑑みてなされたもので、キャッシュミスの処理中に
も、CPUからのアクセスを許すことにより、CPUの
待ち状態の発生を減らし、CPUの処理能力を高めるこ
とのできるキャッシュメモリ装置を提供することを目的
とするものである。
【0018】
【課題を解決するための手段】本発明は、計算機におけ
るキャッシュメモリ装置において、主記憶手段のコピー
が記憶されるデータ部と、該データ部に記憶されている
主記憶手段のコピーとペアとなるアドレス情報が少なく
とも記憶されるタグ部と、キャッシュヒット/ミスの状
態に基づき各部を制御するとともに必要に応じてCPU
へのビジー信号の送出、主記憶手段へのアクセス要求、
バス制御を行なう制御手段を有し、前記データ部は、与
えられたアドレスに基づき各語ごとに存在する第1のW
ORD線の1本を選択するアドレスデコーダと、前記第
1のWORD線を入力とし前記制御手段より与えられる
イネーブル信号に基づき前記第1のWORD線の情報を
記憶するとともに各語ごとに存在する第2のWORD線
に記憶している情報を出力する各語ごとに設けられたラ
ッチ手段と、前記アドレスデコーダにより選択された第
1のWORD線に対応する前記ラッチ手段の内容を読み
出して出力するラッチ読み出し手段と、前記第1のWO
RD線と前記第2のWORD線とが2系統のWORD線
として入力されるとともに第1のBIT線および第2の
BIT線を持つマトリクス状に配置された複数の2ポー
トRAMセル手段を有することを特徴とするものであ
る。
るキャッシュメモリ装置において、主記憶手段のコピー
が記憶されるデータ部と、該データ部に記憶されている
主記憶手段のコピーとペアとなるアドレス情報が少なく
とも記憶されるタグ部と、キャッシュヒット/ミスの状
態に基づき各部を制御するとともに必要に応じてCPU
へのビジー信号の送出、主記憶手段へのアクセス要求、
バス制御を行なう制御手段を有し、前記データ部は、与
えられたアドレスに基づき各語ごとに存在する第1のW
ORD線の1本を選択するアドレスデコーダと、前記第
1のWORD線を入力とし前記制御手段より与えられる
イネーブル信号に基づき前記第1のWORD線の情報を
記憶するとともに各語ごとに存在する第2のWORD線
に記憶している情報を出力する各語ごとに設けられたラ
ッチ手段と、前記アドレスデコーダにより選択された第
1のWORD線に対応する前記ラッチ手段の内容を読み
出して出力するラッチ読み出し手段と、前記第1のWO
RD線と前記第2のWORD線とが2系統のWORD線
として入力されるとともに第1のBIT線および第2の
BIT線を持つマトリクス状に配置された複数の2ポー
トRAMセル手段を有することを特徴とするものであ
る。
【0019】
【作用】本発明によれば、キャッシュミス時には、イネ
ーブル信号をラッチ手段に印加して第1のWORD線上
の情報をラッチ手段に記憶させる。主記憶手段からデー
タ部に読み込むべきキャッシュミスデータを第2のBI
T線に導き、ラッチ手段に記憶されているWORD線情
報を第2のWORD線に出力して、2ポートRAMセル
に書き込む。この書き込みと並行して、CPUからのキ
ャッシュメモリ装置へのデータアクセスを許可する。次
のアクセスがキャッシュヒットしているときには、第1
のWORD線により選択された語のデータが第1のBI
T線に読み出される。このように、キャッシュミスのた
め主記憶手段2とキャッシュメモリ装置4の間でデータ
転送を行なっているときに、CPUによるキャッシュメ
モリのアクセスが可能となる。
ーブル信号をラッチ手段に印加して第1のWORD線上
の情報をラッチ手段に記憶させる。主記憶手段からデー
タ部に読み込むべきキャッシュミスデータを第2のBI
T線に導き、ラッチ手段に記憶されているWORD線情
報を第2のWORD線に出力して、2ポートRAMセル
に書き込む。この書き込みと並行して、CPUからのキ
ャッシュメモリ装置へのデータアクセスを許可する。次
のアクセスがキャッシュヒットしているときには、第1
のWORD線により選択された語のデータが第1のBI
T線に読み出される。このように、キャッシュミスのた
め主記憶手段2とキャッシュメモリ装置4の間でデータ
転送を行なっているときに、CPUによるキャッシュメ
モリのアクセスが可能となる。
【0020】キャッシュミス処理中のアドレスの2ポー
トRAMセルに対して、後続の命令がアクセスすると、
誤ったデータを読み出したり、CPUからの書き込みデ
ータが失われたりする。これを防止するため、並行して
行なわれるアクセス時には、ラッチ読み出し手段の出力
を参照し、第2のWORD線で選択されている2ポート
RAMセルを第1のWORD線でアクセスしようとして
いることを検出したらCPUに対し停止信号を送る。
トRAMセルに対して、後続の命令がアクセスすると、
誤ったデータを読み出したり、CPUからの書き込みデ
ータが失われたりする。これを防止するため、並行して
行なわれるアクセス時には、ラッチ読み出し手段の出力
を参照し、第2のWORD線で選択されている2ポート
RAMセルを第1のWORD線でアクセスしようとして
いることを検出したらCPUに対し停止信号を送る。
【0021】また、主記憶手段に対しては複数のアクセ
スを行なうことができないので、第2のWORD線で選
択されている2ポートRAMセルにキャッシュミスデー
タを読み込んでいるときに、CPUのキャッシュメモリ
装置へのデータアクセスがミスした場合はCPUに対し
停止信号を送る。
スを行なうことができないので、第2のWORD線で選
択されている2ポートRAMセルにキャッシュミスデー
タを読み込んでいるときに、CPUのキャッシュメモリ
装置へのデータアクセスがミスした場合はCPUに対し
停止信号を送る。
【0022】このような制御を行なうことにより、キャ
ッシュミスにより主記憶手段をアクセスしている間であ
っても、不具合を生じずに、CPUによる次のキャッシ
ュメモリへのアクセスが可能となり、CPUが停止して
いる時間を短縮して、計算機の性能向上を図ることがで
きる。
ッシュミスにより主記憶手段をアクセスしている間であ
っても、不具合を生じずに、CPUによる次のキャッシ
ュメモリへのアクセスが可能となり、CPUが停止して
いる時間を短縮して、計算機の性能向上を図ることがで
きる。
【0023】
【実施例】図1は、本発明のキャッシュメモリ装置の一
実施例を示すブロック図である。図中、図14と対応す
る部分には、同じ符号を付した。また、図2は、各アド
レスの説明図である。CPUからメモリのアクセスが行
なわれると、キャッシュメモリ装置4は、アドレス情報
を受け取る。
実施例を示すブロック図である。図中、図14と対応す
る部分には、同じ符号を付した。また、図2は、各アド
レスの説明図である。CPUからメモリのアクセスが行
なわれると、キャッシュメモリ装置4は、アドレス情報
を受け取る。
【0024】CPUからのアドレス情報は、複数のビッ
トで表現されている。これを互いに重なり合わない少な
くとも3つの部分に分け、LSB(Least Sig
nificant Bit)側にワード内セレクト部を
取り、残りの部分の1つをタグアドレス、もう一方をイ
ンデックスアドレスとする。通常は図2に示すように、
MSB(Most Signficant Bit)側
にタグアドレスをとり、その隣にインデックスアドレス
をとる。キャッシュメモリの1つのエントリには、連続
する複数語が格納されていることがある。それをアドレ
ス付けするのがワード内セレクト部である。
トで表現されている。これを互いに重なり合わない少な
くとも3つの部分に分け、LSB(Least Sig
nificant Bit)側にワード内セレクト部を
取り、残りの部分の1つをタグアドレス、もう一方をイ
ンデックスアドレスとする。通常は図2に示すように、
MSB(Most Signficant Bit)側
にタグアドレスをとり、その隣にインデックスアドレス
をとる。キャッシュメモリの1つのエントリには、連続
する複数語が格納されていることがある。それをアドレ
ス付けするのがワード内セレクト部である。
【0025】キャッシュメモリ装置4は、CPUから受
け取ったアドレス情報から、図2に示すインデックスア
ドレスと、タグアドレスを取り出す。取り出したインデ
ックスアドレスは、タグ部11およびデータ部12に与
えられる。また、タグアドレスは、タグ部11およびコ
ンパレータ15に与えられる。
け取ったアドレス情報から、図2に示すインデックスア
ドレスと、タグアドレスを取り出す。取り出したインデ
ックスアドレスは、タグ部11およびデータ部12に与
えられる。また、タグアドレスは、タグ部11およびコ
ンパレータ15に与えられる。
【0026】図14で説明したように、データ部12に
は、主記憶手段に記憶されている情報のコピーが保持さ
れる。また、タグ部11には、データ部12に保持され
ている情報と主記憶手段に記憶されている情報との対応
をとるために、タグアドレスが保持される。タグ部11
とデータ部12は対応付けられている。タグ部11およ
びデータ部12には、それぞれ、アドレスデコーダ1
3,14が設けられている。タグ部11にインデックス
アドレスが与えられると、アドレスデコーダ13でデコ
ードし、インデックスアドレスに対応するタグアドレス
が出力される。コンパレータ手段15は、タグ部11か
ら読み出されたタグアドレスと、CPU1から与えられ
たタグアドレスを比較し、ヒット/ミス信号を出力す
る。比較の結果、等しければ、データ部にアクセスすべ
き情報が格納されていることを示し、等しくない場合に
は、キャッシュメモリ装置内にアクセスされた情報が格
納されていないことを示している。
は、主記憶手段に記憶されている情報のコピーが保持さ
れる。また、タグ部11には、データ部12に保持され
ている情報と主記憶手段に記憶されている情報との対応
をとるために、タグアドレスが保持される。タグ部11
とデータ部12は対応付けられている。タグ部11およ
びデータ部12には、それぞれ、アドレスデコーダ1
3,14が設けられている。タグ部11にインデックス
アドレスが与えられると、アドレスデコーダ13でデコ
ードし、インデックスアドレスに対応するタグアドレス
が出力される。コンパレータ手段15は、タグ部11か
ら読み出されたタグアドレスと、CPU1から与えられ
たタグアドレスを比較し、ヒット/ミス信号を出力す
る。比較の結果、等しければ、データ部にアクセスすべ
き情報が格納されていることを示し、等しくない場合に
は、キャッシュメモリ装置内にアクセスされた情報が格
納されていないことを示している。
【0027】制御手段3は、コンパレータ手段15から
ヒット/ミス信号を受け取り、また、データ部12から
コンフリクト信号を受け取る。さらに、主記憶装置から
メモリレディ信号を受け取る。一方、データ部12に対
してイネーブル信号を送出する。また、CPUに対する
ビジー信号の送出や、主記憶手段に対するメモリアクセ
ス要求信号、アドレスバス、データバスの制御信号等を
送出する。イネーブル信号は、キャッシュミスの際に、
データ部12に対して送出し、データ部12に与えられ
たアドレス情報をラッチさせるための信号である。CP
Uに対するビジー信号は、CPUを停止させるための信
号である。これらの制御信号により、キャッシュメモリ
装置4内の制御を行なうとともに、CPU、主記憶手段
と連携した動作を行なう。
ヒット/ミス信号を受け取り、また、データ部12から
コンフリクト信号を受け取る。さらに、主記憶装置から
メモリレディ信号を受け取る。一方、データ部12に対
してイネーブル信号を送出する。また、CPUに対する
ビジー信号の送出や、主記憶手段に対するメモリアクセ
ス要求信号、アドレスバス、データバスの制御信号等を
送出する。イネーブル信号は、キャッシュミスの際に、
データ部12に対して送出し、データ部12に与えられ
たアドレス情報をラッチさせるための信号である。CP
Uに対するビジー信号は、CPUを停止させるための信
号である。これらの制御信号により、キャッシュメモリ
装置4内の制御を行なうとともに、CPU、主記憶手段
と連携した動作を行なう。
【0028】データ部12は、内部に2ポートRAMセ
ルを有しており、各ポートに接続されるデータバスAお
よびデータバスBが設けられている。アドレスデコーダ
14でデコードしたアドレス情報に従い、データバスA
を用いて読み出しおよび書き込みを行なう。また、デー
タ部12では、制御手段3からイネーブル信号を受け取
り、アドレスデコーダ14でデコードしたアドレス情報
をラッチする。ラッチしたアドレス情報に従い、主記憶
手段から読み出されたデータをデータバスBを介して書
き込む。データバスAを用いた読み出しおよび書き込み
と、データバスBを用いた書き込みは並行して行なうこ
とができるので、主記憶手段をアクセス中に、CPUか
らの次のアクセスが受け付け可能となる。データ部12
は、ラッチしたアドレス情報と、次にCPUからアクセ
スされたアドレス情報が同一であるとき、コンフリクト
信号を制御手段3に送出する。
ルを有しており、各ポートに接続されるデータバスAお
よびデータバスBが設けられている。アドレスデコーダ
14でデコードしたアドレス情報に従い、データバスA
を用いて読み出しおよび書き込みを行なう。また、デー
タ部12では、制御手段3からイネーブル信号を受け取
り、アドレスデコーダ14でデコードしたアドレス情報
をラッチする。ラッチしたアドレス情報に従い、主記憶
手段から読み出されたデータをデータバスBを介して書
き込む。データバスAを用いた読み出しおよび書き込み
と、データバスBを用いた書き込みは並行して行なうこ
とができるので、主記憶手段をアクセス中に、CPUか
らの次のアクセスが受け付け可能となる。データ部12
は、ラッチしたアドレス情報と、次にCPUからアクセ
スされたアドレス情報が同一であるとき、コンフリクト
信号を制御手段3に送出する。
【0029】図1に示す制御信号の他、例えば、タグ部
11とデータ部12に対する書き込み許可信号等が存在
するが、ここでは図示を省略している。
11とデータ部12に対する書き込み許可信号等が存在
するが、ここでは図示を省略している。
【0030】図3は、本発明のキャッシュメモリ装置の
一実施例におけるデータ部の一例を示すブロック図であ
る。図中、21は2ポートRAMセル、22はラッチ手
段、23はラッチ読み出し手段である。インデックスア
ドレスはアドレスデコーダ14に入力される。アドレス
デコーダ14は、2進数で表現されるインデックスアド
レスをデコードし、インデックスアドレスに対応する1
本のWORD線Aを‘1’にし、他のWORD線A全て
を‘0’にする。例えば、インデックスアドレスがlo
g2 Nビットの幅とすると、WORD線AはN本あり、
2ポートRAMセル21のアドレスは0からN−1とな
る。WORD線Aはそのアドレスの語を構成している全
ての2ポートRAMセル21のWORD線入力の一方に
接続されている。
一実施例におけるデータ部の一例を示すブロック図であ
る。図中、21は2ポートRAMセル、22はラッチ手
段、23はラッチ読み出し手段である。インデックスア
ドレスはアドレスデコーダ14に入力される。アドレス
デコーダ14は、2進数で表現されるインデックスアド
レスをデコードし、インデックスアドレスに対応する1
本のWORD線Aを‘1’にし、他のWORD線A全て
を‘0’にする。例えば、インデックスアドレスがlo
g2 Nビットの幅とすると、WORD線AはN本あり、
2ポートRAMセル21のアドレスは0からN−1とな
る。WORD線Aはそのアドレスの語を構成している全
ての2ポートRAMセル21のWORD線入力の一方に
接続されている。
【0031】更に、各WORD線Aはラッチ手段22に
入力する。ラッチ手段22は、各WORD線Aに対応し
て存在する。ラッチ手段もN個、すなわちNbit分存
在する。ラッチ手段22には、制御手段3からのイネー
ブル信号がストローブ信号として供給され、WORD線
A上の値がラッチされる。つまり、イネーブル信号が
‘1’のときにWORD線A上の値がラッチ手段22内
部に取り込まれる。イネーブル信号は、全ラッチ手段2
2に接続されている。
入力する。ラッチ手段22は、各WORD線Aに対応し
て存在する。ラッチ手段もN個、すなわちNbit分存
在する。ラッチ手段22には、制御手段3からのイネー
ブル信号がストローブ信号として供給され、WORD線
A上の値がラッチされる。つまり、イネーブル信号が
‘1’のときにWORD線A上の値がラッチ手段22内
部に取り込まれる。イネーブル信号は、全ラッチ手段2
2に接続されている。
【0032】ラッチ手段の出力(計N本)はWORD線
Bを構成する。WORD線Bは、それに対応するWOR
D線Aが接続されている全ての2ポートRAMセルの、
もう一方のWORD線入力に接続されている。WORD
線Aと同じように、WORD線Bもたかだか1本のみが
‘1’になり他は全て‘0’となる。
Bを構成する。WORD線Bは、それに対応するWOR
D線Aが接続されている全ての2ポートRAMセルの、
もう一方のWORD線入力に接続されている。WORD
線Aと同じように、WORD線Bもたかだか1本のみが
‘1’になり他は全て‘0’となる。
【0033】ラッチ読み出し手段23は、N個のラッチ
手段22のうち、WORD線Aが‘1’となっているラ
ッチ手段22の内容を読み出し、コンフリクト信号とし
て出力する。すでに述べたように‘1’となるWORD
線Aはたかだか1本なので、コンフリクト信号は1bi
tでよい。
手段22のうち、WORD線Aが‘1’となっているラ
ッチ手段22の内容を読み出し、コンフリクト信号とし
て出力する。すでに述べたように‘1’となるWORD
線Aはたかだか1本なので、コンフリクト信号は1bi
tでよい。
【0034】各2ポートRAMセル21は、BIT線A
およびBIT線Bの2系統のBIT線を持つ。BIT線
A、BIT線Bは、2ポートRAMセル21の読み出し
や書き込みのために使われる。具体的には、これを通し
てCPUあるいは主記憶手段との間でデータの転送が行
なわれる。今日のCMOSの技術では、一般にBIT線
は、正論理と負論理の線の2本で構成される。これはキ
ャッシュメモリのスピードと面積を改善するためであ
る。各2ポートRAMセル21は、2組(合計4本)の
BIT線を持つ。BIT線Aは、WORD線Aで制御さ
れる。つまり、WORD線Aが‘1’ならばその2ポー
トRAMセル21の内容がBIT線A上に読み出された
り、BIT線Aの値が2ポートRAMセル21に書き込
まれたりする。もう一方のBIT線Bは、WORD線B
により制御される。つまり、WORD線Bが‘1’なら
ば、その2ポートRAMセル21の内容がBIT線B上
に読み出されたり、BIT線Bの値が2ポートRAMセ
ル21に書き込まれたりする。
およびBIT線Bの2系統のBIT線を持つ。BIT線
A、BIT線Bは、2ポートRAMセル21の読み出し
や書き込みのために使われる。具体的には、これを通し
てCPUあるいは主記憶手段との間でデータの転送が行
なわれる。今日のCMOSの技術では、一般にBIT線
は、正論理と負論理の線の2本で構成される。これはキ
ャッシュメモリのスピードと面積を改善するためであ
る。各2ポートRAMセル21は、2組(合計4本)の
BIT線を持つ。BIT線Aは、WORD線Aで制御さ
れる。つまり、WORD線Aが‘1’ならばその2ポー
トRAMセル21の内容がBIT線A上に読み出された
り、BIT線Aの値が2ポートRAMセル21に書き込
まれたりする。もう一方のBIT線Bは、WORD線B
により制御される。つまり、WORD線Bが‘1’なら
ば、その2ポートRAMセル21の内容がBIT線B上
に読み出されたり、BIT線Bの値が2ポートRAMセ
ル21に書き込まれたりする。
【0035】各2ポートRAMセル21は、1本のWO
RD線AおよびWORD線Bに接続される複数の2ポー
トRAMセル21によって語が構成される。1つの語に
含まれる2ポートRAMセル21は、語内の各ビットを
構成する。また、各2ポートRAMセル21の語の各ビ
ットにおいて、BIT線Aは2ポートRAMセル21の
WORD線Aに対応するBIT線に接続されている。具
体的には、アドレス0のmビット目の2ポートRAMセ
ル21からアドレスN−1のmビット目の2ポートRA
Mセル21の一方のBIT線にBIT線Aがつながって
いる。同様に、2ポートRAMセル21の語の各ビット
において、BIT線Bは2ポートRAMセル21のWO
RD線Bに対応するBIT線に接続されている。
RD線AおよびWORD線Bに接続される複数の2ポー
トRAMセル21によって語が構成される。1つの語に
含まれる2ポートRAMセル21は、語内の各ビットを
構成する。また、各2ポートRAMセル21の語の各ビ
ットにおいて、BIT線Aは2ポートRAMセル21の
WORD線Aに対応するBIT線に接続されている。具
体的には、アドレス0のmビット目の2ポートRAMセ
ル21からアドレスN−1のmビット目の2ポートRA
Mセル21の一方のBIT線にBIT線Aがつながって
いる。同様に、2ポートRAMセル21の語の各ビット
において、BIT線Bは2ポートRAMセル21のWO
RD線Bに対応するBIT線に接続されている。
【0036】また、BIT線Aは、読み出しのための図
示しないセンスアンプと、書き込みのための図示しない
BIT線ドライバに接続されている。読み出し時にはB
IT線Aの情報はセンスアップを経て、キャッシュメモ
リ装置4からデータバスに出力され、CPUに与えられ
る。書き込み時には、CPUからデータバスとBIT線
ドライバを介して、書き込みデータが2ポートRAMセ
ル21に書き込まれる。BIT線Bは、少なくとも、図
示しないBIT線ドライバに接続する。このBIT線ド
ライバは、BIT線Aのものとは別のBIT線ドライバ
であり、データバス上の情報はBIT線B用のBIT線
ドライバとBIT線Bを経て、WORD線Bで選択され
る2ポートRAMセルに書き込まれる。
示しないセンスアンプと、書き込みのための図示しない
BIT線ドライバに接続されている。読み出し時にはB
IT線Aの情報はセンスアップを経て、キャッシュメモ
リ装置4からデータバスに出力され、CPUに与えられ
る。書き込み時には、CPUからデータバスとBIT線
ドライバを介して、書き込みデータが2ポートRAMセ
ル21に書き込まれる。BIT線Bは、少なくとも、図
示しないBIT線ドライバに接続する。このBIT線ド
ライバは、BIT線Aのものとは別のBIT線ドライバ
であり、データバス上の情報はBIT線B用のBIT線
ドライバとBIT線Bを経て、WORD線Bで選択され
る2ポートRAMセルに書き込まれる。
【0037】図4は、アドレスデコーダの一例を示す回
路図である。図中、31ないし37はトランジスタ、3
8,39はインバータである。アドレスデコーダは、l
og2 Nビット幅の入力(インデックスアドレス)をN
本の出力に変換する通常のデコーダである。ここでは、
インデックスアドレスとして5bitが供給される場合
を示している。ここで、インデックスアドレスの入力を
a0,a1,a2,a3,a4とする。5個のインバー
タ39でa0,a1,a2,a3,a4をそれぞれ反転
した信号a0n,a1n,a2n,a3n,a4nを得
る。インデックスアドレスをデコードするために、5個
の直列プルダウントランジスタ33ないし37を設け、
トランジスタ33のゲートにはa0またはa0nのいず
れかを接続する。トランジスタ34のゲートにはa1ま
たはa1nのいずれかを接続する。トランジスタ35,
36,37に関しても同様である。アドレス入力の正論
理を与えるか負論理を与えるかでアドレスのデコードが
できる。例えば、図4に示してあるように、a0n,a
1n,a2n,a3n,a4nをそれぞれトランジスタ
33ないし37に与えることで、WORD線はアドレス
0で‘1’となる。また、トランジスタ33のゲートに
a0を接続すると、a0のみが‘1’で他が‘0’とな
るアドレスの時にWORD線が‘1’となる。
路図である。図中、31ないし37はトランジスタ、3
8,39はインバータである。アドレスデコーダは、l
og2 Nビット幅の入力(インデックスアドレス)をN
本の出力に変換する通常のデコーダである。ここでは、
インデックスアドレスとして5bitが供給される場合
を示している。ここで、インデックスアドレスの入力を
a0,a1,a2,a3,a4とする。5個のインバー
タ39でa0,a1,a2,a3,a4をそれぞれ反転
した信号a0n,a1n,a2n,a3n,a4nを得
る。インデックスアドレスをデコードするために、5個
の直列プルダウントランジスタ33ないし37を設け、
トランジスタ33のゲートにはa0またはa0nのいず
れかを接続する。トランジスタ34のゲートにはa1ま
たはa1nのいずれかを接続する。トランジスタ35,
36,37に関しても同様である。アドレス入力の正論
理を与えるか負論理を与えるかでアドレスのデコードが
できる。例えば、図4に示してあるように、a0n,a
1n,a2n,a3n,a4nをそれぞれトランジスタ
33ないし37に与えることで、WORD線はアドレス
0で‘1’となる。また、トランジスタ33のゲートに
a0を接続すると、a0のみが‘1’で他が‘0’とな
るアドレスの時にWORD線が‘1’となる。
【0038】5個の直列プルダウントランジスタ33な
いし37は、その両側にそれぞれPチャネルのトランジ
スタ31およびNチャネルのトランジスタ32が接続さ
れている。トランジスタ31,32にはクロックが供給
されている。クロックが‘0’のときは必ずPチャネル
のトランジスタ31がONになり、Nチャンネルのトラ
ンジスタ32が必ずOFFになるので、全WORD線は
必ず‘0’になる。そして、クロックが‘1’のときに
1本のWORD線が‘1’になる。例えば、図4に示し
た例では、トランジスタ31がOFF、トランジスタ3
2がONとなり、5個の直列プルダウントランジスタ3
3ないし37がすべてONになったとき、トランジスタ
31とトランジスタ37の間の論理が‘0’となり、イ
ンバータ38で反転されて、WORD線に‘1’が出力
される。クロックが‘1’であっても、5個の直列プル
ダウントランジスタ33ないし37のどれか1つでもO
FFであると、WORD線は‘0’となる。
いし37は、その両側にそれぞれPチャネルのトランジ
スタ31およびNチャネルのトランジスタ32が接続さ
れている。トランジスタ31,32にはクロックが供給
されている。クロックが‘0’のときは必ずPチャネル
のトランジスタ31がONになり、Nチャンネルのトラ
ンジスタ32が必ずOFFになるので、全WORD線は
必ず‘0’になる。そして、クロックが‘1’のときに
1本のWORD線が‘1’になる。例えば、図4に示し
た例では、トランジスタ31がOFF、トランジスタ3
2がONとなり、5個の直列プルダウントランジスタ3
3ないし37がすべてONになったとき、トランジスタ
31とトランジスタ37の間の論理が‘0’となり、イ
ンバータ38で反転されて、WORD線に‘1’が出力
される。クロックが‘1’であっても、5個の直列プル
ダウントランジスタ33ないし37のどれか1つでもO
FFであると、WORD線は‘0’となる。
【0039】図5は、1個の2ポートRAMセルの一例
を示す回路図である。図中、41ないし48はトランジ
スタである。図5には、2ポートのスタティックRAM
で構成した例を示している。トランジスタ41ないし4
4で構成される部分に情報が記憶される。パストランジ
スタ45,47は、WORD線Aと、それぞれ正論理側
のBIT線A、負論理側のBIT線A’に接続されてい
る。同様に、パストランジスタ46,48は、WORD
線Bと、それぞれ正論理側のBIT線B、負論理側のB
IT線B’に接続されている。
を示す回路図である。図中、41ないし48はトランジ
スタである。図5には、2ポートのスタティックRAM
で構成した例を示している。トランジスタ41ないし4
4で構成される部分に情報が記憶される。パストランジ
スタ45,47は、WORD線Aと、それぞれ正論理側
のBIT線A、負論理側のBIT線A’に接続されてい
る。同様に、パストランジスタ46,48は、WORD
線Bと、それぞれ正論理側のBIT線B、負論理側のB
IT線B’に接続されている。
【0040】クロックが‘0’のときには、BIT線A
とBIT線Bの正負のBIT線は、どちらも‘1’にプ
リチャージされる。クロックが‘1’のときにWORD
線AまたはBが‘1’になると、スタティックRAMが
保持している内容に応じて、BIT線のいずれか一方が
‘0’になる。これにより、読み出しが行なわれる。書
き込みを行なう場合は、BIT線を‘0’と‘1’ある
いは‘1’と‘0’にドライブするとWORD線が
‘1’ならば、BIT線の値がパストランジスタ45と
47、あるいは、パストランジスタ46と48を経て書
き込まれる。
とBIT線Bの正負のBIT線は、どちらも‘1’にプ
リチャージされる。クロックが‘1’のときにWORD
線AまたはBが‘1’になると、スタティックRAMが
保持している内容に応じて、BIT線のいずれか一方が
‘0’になる。これにより、読み出しが行なわれる。書
き込みを行なう場合は、BIT線を‘0’と‘1’ある
いは‘1’と‘0’にドライブするとWORD線が
‘1’ならば、BIT線の値がパストランジスタ45と
47、あるいは、パストランジスタ46と48を経て書
き込まれる。
【0041】図6は、BIT線ドライバの一例を示す回
路図である。図中、51ないし55はトランジスタ、5
6,57はインバータである。パストランジスタ51な
いし54のゲートにはライト信号が入力されている。ラ
イト信号は、制御手段3から与えられる書き込み許可信
号とクロックのANDをとったものである。ライト信号
が‘1’のときは、Nチャネルのパストランジスタ51
と53を通して、書き込みデータの正論理と負論理の値
がBIT線に供給される。ライト信号が‘0’のときは
Pチャネルのパストランジスタ52と54がONとな
り、BIT線が双方とも‘1’にプリチャージされる。
トランジスタ55はプリチャージ時の負荷として働く。
路図である。図中、51ないし55はトランジスタ、5
6,57はインバータである。パストランジスタ51な
いし54のゲートにはライト信号が入力されている。ラ
イト信号は、制御手段3から与えられる書き込み許可信
号とクロックのANDをとったものである。ライト信号
が‘1’のときは、Nチャネルのパストランジスタ51
と53を通して、書き込みデータの正論理と負論理の値
がBIT線に供給される。ライト信号が‘0’のときは
Pチャネルのパストランジスタ52と54がONとな
り、BIT線が双方とも‘1’にプリチャージされる。
トランジスタ55はプリチャージ時の負荷として働く。
【0042】図7は、センスアンプの一例を示す回路図
である。図中、61ないし64はトランジスタである。
図7に示したセンスアンプの回路は、基本的にインバー
タ回路であり、負論理側のBIT線に接続して使う。B
IT線は‘1’にプリチャージされているので、遷移を
早く検出するためにトランジスタ63,64によりイン
バータのスイッチング点をVDD側にずらしている。す
でに述べたように、BIT線ドライバはBIT線AとB
IT線Bの2つの系列存在する。センスアンプに関して
も、BIT線AとBIT線Bの二つの系列が設けられ
る。
である。図中、61ないし64はトランジスタである。
図7に示したセンスアンプの回路は、基本的にインバー
タ回路であり、負論理側のBIT線に接続して使う。B
IT線は‘1’にプリチャージされているので、遷移を
早く検出するためにトランジスタ63,64によりイン
バータのスイッチング点をVDD側にずらしている。す
でに述べたように、BIT線ドライバはBIT線AとB
IT線Bの2つの系列存在する。センスアンプに関して
も、BIT線AとBIT線Bの二つの系列が設けられ
る。
【0043】図8は、ラッチ手段の一例を示す回路図で
ある。図中、71はトランジスタ、72ないし74はイ
ンバータである。制御手段3から供給されるイネーブル
信号が‘1’となるとパストランジスタ71がONにな
り、WORD線Aの信号がインバータ73と74のルー
プに供給される。フィードバック側のインバータ74の
ドライブ能力は、入力側のインバータ72のドライブ能
力よりも小さくなるよう設計されている。この回路は、
各WORD線Aに対応して設けられる。この回路の出力
がWORD線Bとなる。
ある。図中、71はトランジスタ、72ないし74はイ
ンバータである。制御手段3から供給されるイネーブル
信号が‘1’となるとパストランジスタ71がONにな
り、WORD線Aの信号がインバータ73と74のルー
プに供給される。フィードバック側のインバータ74の
ドライブ能力は、入力側のインバータ72のドライブ能
力よりも小さくなるよう設計されている。この回路は、
各WORD線Aに対応して設けられる。この回路の出力
がWORD線Bとなる。
【0044】図9は、ラッチ読み出し手段の一例を示す
回路図である。図中、81,82はトランジスタ、83
はインバータである。N個のラッチそれぞれに対応し
て、WORD線AとWORD線Bをゲートに入力する2
個の直列のNチャネルトランジスタ81,82を持ち、
これの一方をGNDに、もう一方をアンコンフリクト信
号に接続する。アンコンフリクト信号は、インバータ8
3の入力に接続し、かつプルアップ用抵抗にも接続され
ている。このインバータ83の出力がコンフリクト信号
となる。もし、WORD線AとWORD線BのN組のペ
アのどれかで、WORD線A=‘1’かつWORD線B
=‘1’となるならば、直列のNチャネルトランジスタ
81,82はともにONとなり、アンコンフリクト信号
は‘0’となる。そのため、インバータ83を経てコン
フリクト信号は‘1’となる。一方、WORD線A=
‘1’かつWORD線B=‘1’となるペアが存在しな
いならば、全てのプルダウントランジスタはOFFとな
り、プルアップ抵抗を介してVDDに接続しているアン
コンフリクト信号は‘1’となり、従ってコンフリクト
信号は‘0’となる。
回路図である。図中、81,82はトランジスタ、83
はインバータである。N個のラッチそれぞれに対応し
て、WORD線AとWORD線Bをゲートに入力する2
個の直列のNチャネルトランジスタ81,82を持ち、
これの一方をGNDに、もう一方をアンコンフリクト信
号に接続する。アンコンフリクト信号は、インバータ8
3の入力に接続し、かつプルアップ用抵抗にも接続され
ている。このインバータ83の出力がコンフリクト信号
となる。もし、WORD線AとWORD線BのN組のペ
アのどれかで、WORD線A=‘1’かつWORD線B
=‘1’となるならば、直列のNチャネルトランジスタ
81,82はともにONとなり、アンコンフリクト信号
は‘0’となる。そのため、インバータ83を経てコン
フリクト信号は‘1’となる。一方、WORD線A=
‘1’かつWORD線B=‘1’となるペアが存在しな
いならば、全てのプルダウントランジスタはOFFとな
り、プルアップ抵抗を介してVDDに接続しているアン
コンフリクト信号は‘1’となり、従ってコンフリクト
信号は‘0’となる。
【0045】制御手段3は、システムクロックに同期す
るステートマシンであり、状態を保持するステートレジ
スタと次の状態と制御信号を生成するための組み合わせ
論理回路から構成されている。
るステートマシンであり、状態を保持するステートレジ
スタと次の状態と制御信号を生成するための組み合わせ
論理回路から構成されている。
【0046】図10は、本発明のキャッシュメモリ装置
の一実施例を用いたシステム構成の一例を示す概略図で
ある。図中、図13と同様の部分には同じ符号を付し
た。ただし、キャッシュメモリ装置4としては、上述し
た本発明のキャッシュメモリ装置を用いる。キャッシュ
メモリ装置4は、CPU1および主記憶手段2と接続す
る。キャッシュメモリ装置4のデータバスAは、CPU
1のデータバスと接続する。データバスBは、バッファ
6の主記憶手段2側に接続する。なお、データバスA
は、BIT線Aに接続されており、また、データバスB
はBIT線Bに接続されている。
の一実施例を用いたシステム構成の一例を示す概略図で
ある。図中、図13と同様の部分には同じ符号を付し
た。ただし、キャッシュメモリ装置4としては、上述し
た本発明のキャッシュメモリ装置を用いる。キャッシュ
メモリ装置4は、CPU1および主記憶手段2と接続す
る。キャッシュメモリ装置4のデータバスAは、CPU
1のデータバスと接続する。データバスBは、バッファ
6の主記憶手段2側に接続する。なお、データバスA
は、BIT線Aに接続されており、また、データバスB
はBIT線Bに接続されている。
【0047】以下、本発明のキャッシュメモリ装置の一
実施例における動作の一例について、上述の各図を用い
て説明する。CPU1はアドレスバスを通してキャッシ
ュメモリ装置4にアドレスを与える。キャッシュメモリ
装置4は、アドレスの一部であるインデックスアドレス
をアドレスデコーダ13,14に与える。アドレスデコ
ーダ13により、タグ部11から1語を読み出す。タグ
部11から読み出された1語は、タグアドレスである。
このタグアドレスは、データ部12に対応して記憶され
ている情報が、主記憶手段2において記憶されているア
ドレスの一部である。タグ部11から読み出されたタグ
アドレスと、CPU1から与えられたタグアドレスを、
コンパレータ手段15で比較する。比較した結果、もし
両者が一致すればキャッシュメモリはヒットしたことを
示し、一致しなかったならばミスしたことを示す。ヒッ
トあるいはミスは、ヒット/ミス信号を通じて制御手段
3に通知される。
実施例における動作の一例について、上述の各図を用い
て説明する。CPU1はアドレスバスを通してキャッシ
ュメモリ装置4にアドレスを与える。キャッシュメモリ
装置4は、アドレスの一部であるインデックスアドレス
をアドレスデコーダ13,14に与える。アドレスデコ
ーダ13により、タグ部11から1語を読み出す。タグ
部11から読み出された1語は、タグアドレスである。
このタグアドレスは、データ部12に対応して記憶され
ている情報が、主記憶手段2において記憶されているア
ドレスの一部である。タグ部11から読み出されたタグ
アドレスと、CPU1から与えられたタグアドレスを、
コンパレータ手段15で比較する。比較した結果、もし
両者が一致すればキャッシュメモリはヒットしたことを
示し、一致しなかったならばミスしたことを示す。ヒッ
トあるいはミスは、ヒット/ミス信号を通じて制御手段
3に通知される。
【0048】タグ部11のアクセスの後、あるいは同時
に、インデックスアドレスを用いてデータ部12をアク
セスする。アドレスデコーダ14は、例えば、図4に示
すような回路により、N本のWORD線Aのうちからイ
ンデックスアドレスで指定された1本のWORD線Aを
選択する。データ部12には主記憶手段2のコピーが入
っている。もし、キャッシュヒットしているならば、C
PU1がアクセスしたい情報がデータ部12に記憶され
ている。データの読み出し時には、WORD線Aで指定
される2ポートRAMセル21の1語をBIT線Aを介
して読み出し、データバスに出力してCPU1に与え
る。データの書き込み時には、CPU1が出力するデー
タをBIT線Aを介して2ポートRAMセル21に供給
し、WORD線Aで指定される2ポートRAMセルに書
き込む。また、制御手段3は、CPU1の書き込み時
に、アドレスバスのバッファ5、および、データバスの
バッファ6をイネーブルにする。これにより、主記憶手
段2にも同じデータが書き込まれ、キャッシュメモリ手
段4と主記憶手段2内のデータの同一性が保持される。
このように、本発明のキャッシュメモリ装置4における
キャッシュヒット時の動作は、従来のキャッシュメモリ
の動作と同様である。
に、インデックスアドレスを用いてデータ部12をアク
セスする。アドレスデコーダ14は、例えば、図4に示
すような回路により、N本のWORD線Aのうちからイ
ンデックスアドレスで指定された1本のWORD線Aを
選択する。データ部12には主記憶手段2のコピーが入
っている。もし、キャッシュヒットしているならば、C
PU1がアクセスしたい情報がデータ部12に記憶され
ている。データの読み出し時には、WORD線Aで指定
される2ポートRAMセル21の1語をBIT線Aを介
して読み出し、データバスに出力してCPU1に与え
る。データの書き込み時には、CPU1が出力するデー
タをBIT線Aを介して2ポートRAMセル21に供給
し、WORD線Aで指定される2ポートRAMセルに書
き込む。また、制御手段3は、CPU1の書き込み時
に、アドレスバスのバッファ5、および、データバスの
バッファ6をイネーブルにする。これにより、主記憶手
段2にも同じデータが書き込まれ、キャッシュメモリ手
段4と主記憶手段2内のデータの同一性が保持される。
このように、本発明のキャッシュメモリ装置4における
キャッシュヒット時の動作は、従来のキャッシュメモリ
の動作と同様である。
【0049】キャッシュミスの場合、本発明のキャッシ
ュメモリ装置4は次のように動作する。ヒット/ミス信
号でミスを通知された制御手段3は、イネーブル信号を
‘1’にし、WORD線Aの情報をラッチ手段22に取
り込み、WORD線Bを用いてキャッシュミスした2ポ
ートRAMセル22の語を指定する。制御手段3は、ア
ドレスバスのバッファ5をイネーブルにし、主記憶手段
2にアドレスを送り、アクセス要求信号を発する。主記
憶手段2は、CPU1が出力するアドレスに対応するデ
ータを出力する。
ュメモリ装置4は次のように動作する。ヒット/ミス信
号でミスを通知された制御手段3は、イネーブル信号を
‘1’にし、WORD線Aの情報をラッチ手段22に取
り込み、WORD線Bを用いてキャッシュミスした2ポ
ートRAMセル22の語を指定する。制御手段3は、ア
ドレスバスのバッファ5をイネーブルにし、主記憶手段
2にアドレスを送り、アクセス要求信号を発する。主記
憶手段2は、CPU1が出力するアドレスに対応するデ
ータを出力する。
【0050】従来のキャッシュメモリ装置では、キャッ
シュミスがわかった時点でCPUの動作を停止させてい
た。しかし、本発明では、制御手段3はこの時点ではC
PU1を停止させない。制御手段3は、主記憶手段2の
読み出しを開始する。主記憶手段2の読み出しが完了す
るまでの間、CPU1はキャッシュミスを発生した命令
以降の命令を実行する。ただし、キャッシュミスにより
得られなかったデータを用いるような命令は実行できな
いため、主記憶手段2のアクセスが終了するまで待機状
態となる。順に命令を実行して行くうちに、ロード命令
やストア命令が実行されたなら、キャッシュメモリ装置
4へのアクセスが発生したなら、アドレスバスからWO
RD線Aを経由してキャッシュメモリ装置4のデータ部
12をアクセスし、BIT線Aを介してCPUとの間で
データを転送する。
シュミスがわかった時点でCPUの動作を停止させてい
た。しかし、本発明では、制御手段3はこの時点ではC
PU1を停止させない。制御手段3は、主記憶手段2の
読み出しを開始する。主記憶手段2の読み出しが完了す
るまでの間、CPU1はキャッシュミスを発生した命令
以降の命令を実行する。ただし、キャッシュミスにより
得られなかったデータを用いるような命令は実行できな
いため、主記憶手段2のアクセスが終了するまで待機状
態となる。順に命令を実行して行くうちに、ロード命令
やストア命令が実行されたなら、キャッシュメモリ装置
4へのアクセスが発生したなら、アドレスバスからWO
RD線Aを経由してキャッシュメモリ装置4のデータ部
12をアクセスし、BIT線Aを介してCPUとの間で
データを転送する。
【0051】既にキャッシュミスが発生し、主記憶手段
2をアクセスしている間に後続のキャッシュメモリアク
セスで更にキャッシュミスが発生した場合は、制御手段
3は、最初のキャッシュミスに対する処理が終わるま
で、CPU1に対してビジー信号をアサートしてCPU
1を停止させる。これはラッチ手段22が現在使用中の
ため、WORD線Aの情報を保持できないためである。
最初のキャッシュミスに対する処理が終わったならば、
2番目のキャッシュミスを指示するWORD線Aの情報
はラッチ手段22に取り込まれる。
2をアクセスしている間に後続のキャッシュメモリアク
セスで更にキャッシュミスが発生した場合は、制御手段
3は、最初のキャッシュミスに対する処理が終わるま
で、CPU1に対してビジー信号をアサートしてCPU
1を停止させる。これはラッチ手段22が現在使用中の
ため、WORD線Aの情報を保持できないためである。
最初のキャッシュミスに対する処理が終わったならば、
2番目のキャッシュミスを指示するWORD線Aの情報
はラッチ手段22に取り込まれる。
【0052】キャッシュミス処理のため、主記憶手段2
からデータバス上にデータが読み出される。主記憶手段
2からデータが読み出されたことは、メモリレディ信号
で制御手段3に通知される。すると、制御手段3はB系
統のBIT線ドライバをドライブし、主記憶手段2から
読み出されたデータはBIT線Bに出力される。BIT
線B上のデータは、WORD線Bで指定される2ポート
RAMセル21に書き込まれる。このようにして、キャ
ッシュミスしたデータをキャッシュメモリ装置4のデー
タ部12に書き込む。また、制御手段3はキャッシュミ
スデータをCPU1にも転送するため、データバスのバ
ッファ6をイネーブルにする。キャッシュメモリ装置4
は、一つのエントリに連続する複数の語を保持すること
ができるが、CPU1がミスした語以外のときにはバッ
ファ6をイネーブルにしない。
からデータバス上にデータが読み出される。主記憶手段
2からデータが読み出されたことは、メモリレディ信号
で制御手段3に通知される。すると、制御手段3はB系
統のBIT線ドライバをドライブし、主記憶手段2から
読み出されたデータはBIT線Bに出力される。BIT
線B上のデータは、WORD線Bで指定される2ポート
RAMセル21に書き込まれる。このようにして、キャ
ッシュミスしたデータをキャッシュメモリ装置4のデー
タ部12に書き込む。また、制御手段3はキャッシュミ
スデータをCPU1にも転送するため、データバスのバ
ッファ6をイネーブルにする。キャッシュメモリ装置4
は、一つのエントリに連続する複数の語を保持すること
ができるが、CPU1がミスした語以外のときにはバッ
ファ6をイネーブルにしない。
【0053】図11は、第1のキャッシュミス処理中に
第2のキャッシュミスが発生した場合の一例を示すタイ
ミングチャートである。t1期間中に第1のキャッシュ
ミスが発生するものとする。コンパレータ手段15は制
御手段3に対してヒット/ミス信号でキャッシュミスを
通知する。制御手段3は直ちにイネーブル信号を‘1’
にするパルスを出し、WORD線Aの情報をWORD線
Bにロードする。同時に、主記憶手段2に対してメモリ
アクセス要求を出す。メモリアクセス要求は、メモリレ
ディが返されるまで、すなわち、t4期間終了まで
‘1’に保持される。主記憶手段2は、CPU1からア
ドレスA0がアクセスされる。主記憶手段2のアクセス
には、ここでは、3サイクルかかるものとし、t4期間
終了までかかるものとする。
第2のキャッシュミスが発生した場合の一例を示すタイ
ミングチャートである。t1期間中に第1のキャッシュ
ミスが発生するものとする。コンパレータ手段15は制
御手段3に対してヒット/ミス信号でキャッシュミスを
通知する。制御手段3は直ちにイネーブル信号を‘1’
にするパルスを出し、WORD線Aの情報をWORD線
Bにロードする。同時に、主記憶手段2に対してメモリ
アクセス要求を出す。メモリアクセス要求は、メモリレ
ディが返されるまで、すなわち、t4期間終了まで
‘1’に保持される。主記憶手段2は、CPU1からア
ドレスA0がアクセスされる。主記憶手段2のアクセス
には、ここでは、3サイクルかかるものとし、t4期間
終了までかかるものとする。
【0054】t2期間では、キャッシュミスしたアドレ
ス情報はWORD線Bに記憶されているので、CPU1
はアドレスA1でキャッシュメモリ装置4をアクセスす
ることができる。アドレスA1によるアクセスがヒット
したものとする。アドレスA1に対応するWORD線A
が選択され、読み出しあるいは書き込みが行なわれる。
ス情報はWORD線Bに記憶されているので、CPU1
はアドレスA1でキャッシュメモリ装置4をアクセスす
ることができる。アドレスA1によるアクセスがヒット
したものとする。アドレスA1に対応するWORD線A
が選択され、読み出しあるいは書き込みが行なわれる。
【0055】t3期間には、CPU1は、アドレスA2
でキャッシュメモリ装置4をアクセスするが、このアク
セスはミスしたとする(第2のキャッシュミス)。制御
手段3は、CPU1に対してビジー信号を与え、CPU
1を停止させる。t4期間において、第1のキャッシュ
ミスに伴う主記憶手段2のアクセスと、データ部12へ
の書き込みが終わる。t5期間において、制御手段3は
イネーブル信号に‘1’のパルスを与え、第2のキャッ
シュミスアドレスであるアドレスA2に関する情報をW
ORD線Bに得る。t5期間が終了するまでは、アドレ
スA2の情報をWORD線Aに反映させておく必要があ
るので、制御手段3はCPU1に対してビジー信号を与
え続ける。また、t5期間では、第2のキャッシュミス
のためのメモリアクセス要求を主記憶手段2に対して送
る。
でキャッシュメモリ装置4をアクセスするが、このアク
セスはミスしたとする(第2のキャッシュミス)。制御
手段3は、CPU1に対してビジー信号を与え、CPU
1を停止させる。t4期間において、第1のキャッシュ
ミスに伴う主記憶手段2のアクセスと、データ部12へ
の書き込みが終わる。t5期間において、制御手段3は
イネーブル信号に‘1’のパルスを与え、第2のキャッ
シュミスアドレスであるアドレスA2に関する情報をW
ORD線Bに得る。t5期間が終了するまでは、アドレ
スA2の情報をWORD線Aに反映させておく必要があ
るので、制御手段3はCPU1に対してビジー信号を与
え続ける。また、t5期間では、第2のキャッシュミス
のためのメモリアクセス要求を主記憶手段2に対して送
る。
【0056】t6期間ではビジー信号を下げてCPU1
を動作させることができる。WORD線AにCPU1か
らのアドレスA3を与え、キャッシュメモリ手段をアク
セスすることが可能となる。
を動作させることができる。WORD線AにCPU1か
らのアドレスA3を与え、キャッシュメモリ手段をアク
セスすることが可能となる。
【0057】上述のように、第1のキャッシュミスの処
理中に第2のキャッシュミスが発生すると、CPU1は
停止する。しかし、例えば、キャッシュメモリ装置4の
エントリ数が256あるとすると、第1のキャッシュミ
ス処理中でも255個のエントリに対してアクセスが可
能であり、キャッシュミス率を小さく保つことが期待で
きる。つまり、第2のキャッシュミスが発生してCPU
1が停止する確率は低い。そのため、システムの効率を
向上させることができる。
理中に第2のキャッシュミスが発生すると、CPU1は
停止する。しかし、例えば、キャッシュメモリ装置4の
エントリ数が256あるとすると、第1のキャッシュミ
ス処理中でも255個のエントリに対してアクセスが可
能であり、キャッシュミス率を小さく保つことが期待で
きる。つまり、第2のキャッシュミスが発生してCPU
1が停止する確率は低い。そのため、システムの効率を
向上させることができる。
【0058】キャッシュミス処理中の2ポートRAMセ
ル21に対して、後続の命令によりアクセスが行なわれ
ると、主記憶手段2から読み出される前の誤ったデータ
を読み出してCPU1に送ってしまったり、CPUから
の書き込みデータの上に主記憶手段2から読み出された
データを書き込んでしまったりする。このような不具合
を防止するため、ラッチ読み出し手段23を使う。Nビ
ットのラッチ手段22のうち、WORD線Aで選択され
たものが‘1’になっている、すなわち、ラッチ読み出
し手段23から出力されるコンフリクト信号が‘1’に
なっていれば、それはWORD線BとWORD線Aが同
じ2ポートRAMセルの語をアクセスしようとしている
ことを意味している。この場合、制御手段3はCPU1
に対してビジー信号をアサートしてCPU1を停止さ
せ、後続のキャッシュメモリアクセスを待たせる。そし
て、主記憶手段2からデータが読み出され、データ部1
2への書き込みが終わってから、CPU1に対するビジ
ー信号をさげ、待たせておいたアクセスを再開する。
ル21に対して、後続の命令によりアクセスが行なわれ
ると、主記憶手段2から読み出される前の誤ったデータ
を読み出してCPU1に送ってしまったり、CPUから
の書き込みデータの上に主記憶手段2から読み出された
データを書き込んでしまったりする。このような不具合
を防止するため、ラッチ読み出し手段23を使う。Nビ
ットのラッチ手段22のうち、WORD線Aで選択され
たものが‘1’になっている、すなわち、ラッチ読み出
し手段23から出力されるコンフリクト信号が‘1’に
なっていれば、それはWORD線BとWORD線Aが同
じ2ポートRAMセルの語をアクセスしようとしている
ことを意味している。この場合、制御手段3はCPU1
に対してビジー信号をアサートしてCPU1を停止さ
せ、後続のキャッシュメモリアクセスを待たせる。そし
て、主記憶手段2からデータが読み出され、データ部1
2への書き込みが終わってから、CPU1に対するビジ
ー信号をさげ、待たせておいたアクセスを再開する。
【0059】図12は、第1のキャッシュミス処理中に
キャッシュミス処理中の2ポートRAMセルの語にアク
セスしようとした場合の一例を示すタイミングチャート
である。t1期間およびt2期間は、図11で説明した
場合と同じである。すなわち、t1期間においてキャッ
シュミスが発生し、主記憶手段2に対するアクセスを開
始する。また、t2期間では、CPU1の次のキャッシ
ュアクセスが行なわれ、キャッシュヒットしたものとす
る。
キャッシュミス処理中の2ポートRAMセルの語にアク
セスしようとした場合の一例を示すタイミングチャート
である。t1期間およびt2期間は、図11で説明した
場合と同じである。すなわち、t1期間においてキャッ
シュミスが発生し、主記憶手段2に対するアクセスを開
始する。また、t2期間では、CPU1の次のキャッシ
ュアクセスが行なわれ、キャッシュヒットしたものとす
る。
【0060】t3期間に、CPU1はアドレスA0をア
クセスしようとする。このアドレスは、この時処理中の
第1のキャッシュミスのアドレスと同じである。従っ
て、ラッチ読み出し手段23からコンフリクト信号に
‘1’が出力される。制御手段3は、ビジー信号を
‘1’にしてCPU1を停止させる。t4期間におい
て、主記憶手段2からデータが読み出され、WORD線
Bで指示された2ポートRAMセル21の語に書き込ま
れる。t5期間では、アドレスA0でキャッシュメモリ
装置4をアクセスしても問題ないので、制御手段3はビ
ジー信号を‘0’とし、CPUを動作させる。これによ
り、アドレスA0によるキャッシュアクセスはヒットす
る。
クセスしようとする。このアドレスは、この時処理中の
第1のキャッシュミスのアドレスと同じである。従っ
て、ラッチ読み出し手段23からコンフリクト信号に
‘1’が出力される。制御手段3は、ビジー信号を
‘1’にしてCPU1を停止させる。t4期間におい
て、主記憶手段2からデータが読み出され、WORD線
Bで指示された2ポートRAMセル21の語に書き込ま
れる。t5期間では、アドレスA0でキャッシュメモリ
装置4をアクセスしても問題ないので、制御手段3はビ
ジー信号を‘0’とし、CPUを動作させる。これによ
り、アドレスA0によるキャッシュアクセスはヒットす
る。
【0061】以上、本発明のキャッシュメモリ装置の一
実施例について詳細に説明したが、本発明は、これら具
体例のみ限定されるべきものではなく、本発明の技術的
範囲を逸脱することなしに、様々な変形が可能であるこ
とは勿論である。例えば、行アドレスデコーダの他に列
アドレスデコーダを設け、WORD線で選択された2ポ
ートRAMセルの一部に対して、読み出しあるいは書き
込みを行なえるようにすることが可能である。また、例
えば、実施例ではラッチ手段22に図8に示すようなラ
ッチを使ったが、これをロード/イネーブル機能を持つ
D型のフリップフロップに置き換えることは勿論可能で
ある。さらに、ラッチ読み出し手段23の代わりに、例
えば、インデックスアドレスを保持するメモリとコンパ
レータにより構成することも可能である。
実施例について詳細に説明したが、本発明は、これら具
体例のみ限定されるべきものではなく、本発明の技術的
範囲を逸脱することなしに、様々な変形が可能であるこ
とは勿論である。例えば、行アドレスデコーダの他に列
アドレスデコーダを設け、WORD線で選択された2ポ
ートRAMセルの一部に対して、読み出しあるいは書き
込みを行なえるようにすることが可能である。また、例
えば、実施例ではラッチ手段22に図8に示すようなラ
ッチを使ったが、これをロード/イネーブル機能を持つ
D型のフリップフロップに置き換えることは勿論可能で
ある。さらに、ラッチ読み出し手段23の代わりに、例
えば、インデックスアドレスを保持するメモリとコンパ
レータにより構成することも可能である。
【0062】上述の実施例ではダイレクトマップ式のキ
ャッシュメモリを取り上げて説明したが、セットアソシ
タティブ方式やフルアソシタティブ方式のキャッシュメ
モリに変形することは勿論可能である。
ャッシュメモリを取り上げて説明したが、セットアソシ
タティブ方式やフルアソシタティブ方式のキャッシュメ
モリに変形することは勿論可能である。
【0063】本発明のキャッシュメモリ装置は、単一の
LSI上に構成することができる。このように構成する
ことにより、本発明のキャッシュメモリ装置を小型に構
成可能となる。このとき、タグ部とデータ部へのインデ
ックスアドレスの配線をLSI上で共通に利用し、タグ
部とデータ部のアドレスデコーダを共通化できる。図1
には記載されていないが、タグ部のRAMセルを検査す
るために、データバスからタグ部への接続が必要とな
る。単一のLSI上に構成すれば、配線をLSI内部に
入れることができるので、キャッシュメモリを小型化す
ることができる。また、動作周波数を高くすることも可
能となる。
LSI上に構成することができる。このように構成する
ことにより、本発明のキャッシュメモリ装置を小型に構
成可能となる。このとき、タグ部とデータ部へのインデ
ックスアドレスの配線をLSI上で共通に利用し、タグ
部とデータ部のアドレスデコーダを共通化できる。図1
には記載されていないが、タグ部のRAMセルを検査す
るために、データバスからタグ部への接続が必要とな
る。単一のLSI上に構成すれば、配線をLSI内部に
入れることができるので、キャッシュメモリを小型化す
ることができる。また、動作周波数を高くすることも可
能となる。
【0064】更に、本発明のキャッシュメモリ装置をC
PUと同一のLSI上に集積すれば、動作周波数を高く
することが可能となる。これは、キャッシュメモリへの
アクセスはしばしばクリティカルパスとなるが、同一の
LSI上に集積すれば負荷容量の大きなプリント基板上
の配線をドライブせずにすむので、CPUからのキャッ
シュメモリへのアクセスを高速化することができる。
PUと同一のLSI上に集積すれば、動作周波数を高く
することが可能となる。これは、キャッシュメモリへの
アクセスはしばしばクリティカルパスとなるが、同一の
LSI上に集積すれば負荷容量の大きなプリント基板上
の配線をドライブせずにすむので、CPUからのキャッ
シュメモリへのアクセスを高速化することができる。
【0065】
【発明の効果】以上の説明から明らかなように、本発明
によれば、キャッシュミス処理中にもCPUがアクセス
可能なキャッシュメモリを容易に構成することができ、
CPUのメモリアクセス待ちを減らし、結果として計算
機を高性能化することができるという効果がある。
によれば、キャッシュミス処理中にもCPUがアクセス
可能なキャッシュメモリを容易に構成することができ、
CPUのメモリアクセス待ちを減らし、結果として計算
機を高性能化することができるという効果がある。
【0066】また、従来は高速化のために多層のキャッ
シュメモリを用いていたが、本発明のキャッシュメモリ
装置によれば、メモリアクセス待ちが性能に与える影響
が小さいため、高価な多層のキャッシュメモリを使わな
くても良好な性能を得られ、高価な2階層のキャッシュ
メモリを不要として計算機の製造コストを下げることが
できる。また、多層のキャッシュメモリが要らないの
で、小型化することができるという効果もある。
シュメモリを用いていたが、本発明のキャッシュメモリ
装置によれば、メモリアクセス待ちが性能に与える影響
が小さいため、高価な多層のキャッシュメモリを使わな
くても良好な性能を得られ、高価な2階層のキャッシュ
メモリを不要として計算機の製造コストを下げることが
できる。また、多層のキャッシュメモリが要らないの
で、小型化することができるという効果もある。
【図1】 本発明のキャッシュメモリ装置の一実施例を
示すブロック図である。
示すブロック図である。
【図2】 各アドレスの説明図である。
【図3】 本発明のキャッシュメモリ装置の一実施例に
おけるデータ部の一例を示すブロック図である。
おけるデータ部の一例を示すブロック図である。
【図4】 アドレスデコーダの一例を示す回路図であ
る。
る。
【図5】 1個の2ポートRAMセルの一例を示す回路
図である。
図である。
【図6】 BIT線ドライバの一例を示す回路図であ
る。
る。
【図7】 センスアンプの一例を示す回路図である。
【図8】 ラッチ手段の一例を示す回路図である。
【図9】 ラッチ読み出し手段の一例を示す回路図であ
る。
る。
【図10】 本発明のキャッシュメモリ装置の一実施例
を用いたシステム構成の一例を示す概略図である。
を用いたシステム構成の一例を示す概略図である。
【図11】 第1のキャッシュミス処理中に第2のキャ
ッシュミスが発生した場合の一例を示すタイミングチャ
ートである。
ッシュミスが発生した場合の一例を示すタイミングチャ
ートである。
【図12】 第1のキャッシュミス処理中にキャッシュ
ミス処理中の2ポートRAMセルの語にアクセスしよう
とした場合の一例を示すタイミングチャートである。
ミス処理中の2ポートRAMセルの語にアクセスしよう
とした場合の一例を示すタイミングチャートである。
【図13】 一般的なキャッシュメモリ装置を用いた構
成図である。
成図である。
【図14】 従来のキャッシュメモリ装置の一例を示す
ブロック図である。
ブロック図である。
【図15】 従来のキャッシュメモリ装置のデータ部の
一例を示すブロック図である。
一例を示すブロック図である。
1…CPU、2…主記憶手段、3…制御手段、4…キャ
ッシュメモリ装置、5,6…バッファ、11…タグ部、
12…データ部、13,14…アドレスデコーダ、15
…コンパレータ手段、21…2ポートRAMセル、22
…ラッチ手段、23…ラッチ読み出し手段。
ッシュメモリ装置、5,6…バッファ、11…タグ部、
12…データ部、13,14…アドレスデコーダ、15
…コンパレータ手段、21…2ポートRAMセル、22
…ラッチ手段、23…ラッチ読み出し手段。
Claims (1)
- 【請求項1】 計算機におけるキャッシュメモリ装置に
おいて、主記憶手段のコピーが記憶されるデータ部と、
該データ部に記憶されている主記憶手段のコピーとペア
となるアドレス情報が少なくとも記憶されるタグ部と、
キャッシュヒット/ミスの状態に基づき各部を制御する
とともに必要に応じてCPUへのビジー信号の送出、主
記憶手段へのアクセス要求、バス制御を行なう制御手段
を有し、前記データ部は、与えられたアドレスに基づき
各語ごとに存在する第1のWORD線の1本を選択する
アドレスデコーダと、前記第1のWORD線を入力とし
前記制御手段より与えられるイネーブル信号に基づき前
記第1のWORD線の情報を記憶するとともに各語ごと
に存在する第2のWORD線に記憶している情報を出力
する各語ごとに設けられたラッチ手段と、前記アドレス
デコーダにより選択された第1のWORD線に対応する
前記ラッチ手段の内容を読み出して出力するラッチ読み
出し手段と、前記第1のWORD線と前記第2のWOR
D線とが2系統のWORD線として入力されるとともに
第1のBIT線および第2のBIT線を持つマトリクス
状に配置された複数の2ポートRAMセル手段を有する
ことを特徴とするキャッシュメモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6110050A JPH07319768A (ja) | 1994-05-24 | 1994-05-24 | キャッシュメモリ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6110050A JPH07319768A (ja) | 1994-05-24 | 1994-05-24 | キャッシュメモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07319768A true JPH07319768A (ja) | 1995-12-08 |
Family
ID=14525837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6110050A Pending JPH07319768A (ja) | 1994-05-24 | 1994-05-24 | キャッシュメモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07319768A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010033420A (ja) * | 2008-07-30 | 2010-02-12 | Oki Semiconductor Co Ltd | キャッシュ回路及びキャッシュメモリ制御方法 |
-
1994
- 1994-05-24 JP JP6110050A patent/JPH07319768A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010033420A (ja) * | 2008-07-30 | 2010-02-12 | Oki Semiconductor Co Ltd | キャッシュ回路及びキャッシュメモリ制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5493666A (en) | Memory architecture using page mode writes and single level write buffering | |
US6804743B2 (en) | Two step memory device command buffer apparatus and method and memory devices and computer systems using same | |
KR920010950B1 (ko) | 컴퓨터 시스템과 정보 판독 및 데이타 전송방법 | |
US5559986A (en) | Interleaved cache for multiple accesses per clock cycle in a microprocessor | |
US5825711A (en) | Method and system for storing and processing multiple memory addresses | |
US6366992B2 (en) | Method and system for bypassing pipelines in a pipelined memory command generator | |
US20060190671A1 (en) | Memory device and method having multiple internal data buses and memory bank interleaving | |
US6519689B2 (en) | Method and system for processing pipelined memory commands | |
JPH11203860A (ja) | 半導体記憶装置 | |
JPH04230551A (ja) | 階層集積回路キャッシュメモリ | |
JP2006190402A (ja) | 半導体装置 | |
US5787489A (en) | Synchronous SRAM having pipelined enable | |
US5657291A (en) | Multiport register file memory cell configuration for read operation | |
US6370627B1 (en) | Memory device command buffer apparatus and method and memory devices and computer systems using same | |
US6484244B1 (en) | Method and system for storing and processing multiple memory commands | |
US6219764B1 (en) | Memory paging control method | |
US5854943A (en) | Speed efficient cache output selector circuitry based on tag compare and data organization | |
US6360307B1 (en) | Circuit architecture and method of writing data to a memory | |
US6253298B1 (en) | Synchronous SRAM having pipelined enable | |
KR100317542B1 (ko) | 반도체메모리장치 | |
JP2716350B2 (ja) | 電子データ記憶システム | |
JP2001256109A (ja) | 統合キャッシュポートの制御方法および装置 | |
US7843760B2 (en) | Interface circuit and method for coupling between a memory device and processing circuitry | |
JPH07319768A (ja) | キャッシュメモリ装置 | |
US6735674B2 (en) | Method of maintaining data coherency in late-select synchronous pipeline type semiconductor memory device and data coherency maintaining circuit therefor |