JPH01255944A - キャッシュメモリ - Google Patents

キャッシュメモリ

Info

Publication number
JPH01255944A
JPH01255944A JP63084506A JP8450688A JPH01255944A JP H01255944 A JPH01255944 A JP H01255944A JP 63084506 A JP63084506 A JP 63084506A JP 8450688 A JP8450688 A JP 8450688A JP H01255944 A JPH01255944 A JP H01255944A
Authority
JP
Japan
Prior art keywords
data
way
memory
bit
address
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
Application number
JP63084506A
Other languages
English (en)
Inventor
Masayuki Hata
雅之 畑
Akira Yamada
朗 山田
Tatsuo Yamada
山田 達雄
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63084506A priority Critical patent/JPH01255944A/ja
Publication of JPH01255944A publication Critical patent/JPH01255944A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、キャッシュメモリに関し、特にリアルタイ
ムマルチタスクシステムに好適するキャッシュメモリに
関する。
[従来の技術] 電子計算機あるいはマイクロコンピュータシステムのメ
インメモリには、演算処理に必要な種々のデータが格納
されており、アドレス信号によりその所望のものをアク
スして使用する。ところで、使用したデータはその直後
に再び使用することがよくあるが、使用の都度該データ
を大容量低速のメインメモリから読出すのは時間がかか
り、非効率的である。そこで、アクセス速度の高速化を
図るために、キャッシュメモリと呼ばれる高速のバッフ
ァメモリを使用する方式が提案されている。
このキャッシュメモリ方式は、たとえば第2図に示され
るように、データ処理装置(たとえばCりU)1からの
要求に応じてメインメモリ2のうちの使用頻度の高い領
域のデータを、高速のバッファメモリであるキャッシュ
メモリ3に記憶し、データ処理装置1からのアクセスに
対し、メインメモリ2に代わってそのデータ読出/書込
を高速に行なう方式である。
キャッシュメモリ3は、固定のデータを記憶しているの
ではなくデータ処理装置1からの要求に応じて記憶する
メインメモリ2の領域は変化している。しかし、成るデ
ータ処理におけるデータ処理装置1からのメモリアクセ
ス領域には局所性がある。したがって、データ処理装置
1からの要求に応じてメインメモリ2から取出してキャ
ッシュメモリ3に記憶したデータは、その後もしばらく
はアクセスされる可能性が高い。したがって、−旦キャ
ッシュメモリ3ヘメインメモリ2のデータが記憶される
と高速メモリの効果が発揮されて、データ処理装置1の
メモリアクセスの待ち時間なしくノーウェイト)が実現
する。つまりデータ処理装置1は、その処理速度がメモ
リアクセス時間によって遅延されることがない。
データ処理装置1の処理の進行とともにメモリアクセス
する領域は移動していく。それに従って、キャッシュメ
モリ3では記憶するメインメモリ2の領域の切換も行な
われる。しかし、追出された領域が再びアクセスされる
場合は、キャッシュメモリ3は再び入替が必要となり、
それが頻繁に起こるとシステムの性能が低下する。
一般に、キャッシュメモリ3の効果を示すのにヒツト率
を使う。ヒツト率とは、データ処理装置lからのメモリ
アクセスに対し、キャッシュメモリ3内にそのアクセス
領域のデータが存在する確率である。存在すればヒツト
と言い、存在しない場合はキャッシュミスという。キャ
ッシュミスの場合はデータ処理装置1からの要求アドレ
スのワードを含むデータの塊りをメインメモリ2からキ
ャッシュメモリ3へ取込み、次回からのデータアクセス
に備える。このデータの塊りをデータブロックという。
キャッシュメモリ3は、単に容量が大きいほどビット率
が高くなるわけではなく、キャッシュメモリの構成に因
るところが大きい。ヒツト率を上げるための一例として
、Nウェイセットアソシアティブ方式がある。
第3図は、インターフェイス1987年8月号No、1
23の第250頁に示された4ウ工イセツトアソシアテ
イブ方式のキャッシュメモリを示すブロック図である。
図において、データ処理装置1の要求アドレス4は、ア
ドレスタグ4aと、セットセレクト4bと、ワードセレ
クト4Cとに分けられてキャッシュメモリに入力される
。アドレスタグ4aはアドレスタグ比較器8に与えられ
る。
セットセレクト4bは、アドレスタグメモリ5゜データ
メモリ7およびLRUビットメモリ121;与えられる
。ワードセレクト4Cはワードセレクタ9に与えられる
。アドレスタグメモリ5およびデータメモリ7は同数の
記憶領域(以下、各記憶領域をエントリと称する)を有
しており、それぞれのエントリに既にデータ処理装置1
から要求のあったアドレスのアドレスタグとそのアドレ
スによってメインメモリ2から読出されたデータブロッ
ク(この例では4ワードで構成されている)を格納して
いる。アドレスタグ5およびデータメモリ7のアクセス
は、セットセレクト4bでエントリアドレスを指定する
ことによって行なわれる。
すなわち、セットセレクト4bによって選択されたアド
レスタグメモリ5のエントリからアドレスタグが読出さ
れてアドレスタグ比較器8に与えられる。また、セット
セレクト4bによって選択されたデータメモリ7のエン
トリからデータブロックが読出されてワードセレクタ9
に与えられる。
ワードセレクタ9は与えられるワードセレクト4Cに基
づいて、1つのデータブロック中に含まれる4ワ一ド分
のデータのうち、いずれか1つのワードを選択してウェ
イセレクタ10に与える。−方、アドレスタグ比較器8
は、データ処理装置1から現在要求されているアドレス
4のアドレスタグ4aと、アドレスタグメモリ5から読
出されたアドレスタグとを比較し、一致しているか否か
を検出する。一致した場合、アドレスタグ比較器8はヒ
ツト信号を導出するとともに、ウェイセレクタ10にウ
ェイ選択信号を与える。
ところで、第3図のキャッシュメモリは、4ウ工イセツ
トアソシアテイブ方式であるので、アドレスタグメモリ
5.データメモリ7、アドレスタグ比較器8.ワードセ
レクタ9およびウェイセレクタ10は、それぞれ4個ず
つ設けられている。
したがって、アドレスタグメモリ5およびデータメモリ
7は、同一のエントリに対して最大4個までのアドレス
タグおよびデータブロックを記憶できる。また、各ウェ
イは平行して同じ動作を行なうので、ヒツトの判定時に
は、成るエントリアドレスに対して同時に4個のアドレ
スタグを参照することになる。すなわち、アドレスタグ
比較器8は、アドレスタグメモリ5から読出された各ウ
ェイのアドレスタグと、データ処理装置1から現在要求
されているアドレス4のアドレスタグ4aとの比較を4
ウ工イ同時に行ない、ヒツト/キャッシュミスの判定を
行なう。一方、データメモリ7から読出された各ウェイ
のデータブロックは、ワードセレクタ9によってワード
が選択され、最後にウェイセレクタ10がアドレスタグ
比較器8からどのウェイがヒツトしたかを示すウェイ選
択信号を受け、1個のワードが決定され、出力データバ
ス11に導出される。
上記のごとく、ヒツトした場合はキャッシュメモリ3か
ら直ちにデータが読出されてデータ処理装置1で使用さ
れるが、キャッシュミスの場合はアドレス4によってメ
インメモリ2のアクセスが実行され、メインメモリ2の
所定の領域からデータが読出されて使用される。このと
き、キャッシュメモリ3内でデータの入替が行なわれ、
アクセスに使用されたアドレス4のアドレスタグ4aと
メインメモリ2から読出されたデータブロックとがそれ
ぞれアドレスタグメモリ5およびデータメモリ7の選択
されたエントリに書込まれる。このデータの入替時にお
いて、LRUビットメモリ12は、Least  Re
cently  Usedアルゴリズムに従ってどのウ
ェイのデータを入替えるかを制御している。
なお、各ウェイごとにかつ各エントリごとに設けられた
バリッドビット6は対応のエントリのデータの有効性を
示すものであり、このバリッドビット6がリセットされ
ているエントリについてはたとえアドレスタグの一致が
検出されてもヒツトしたと判定されない。
[発明が解決しようとする課題] 上記のような従来のキャッシュメモリでは、同一エント
リに対してキャッシュミスが複数回連続して生じると、
そのエントリに保管されている全ウェイのデータがキャ
ッシュメモリから追出されてしまう。したがって、使用
頻度の極めて高いデータ、たとえばマルチタスクシステ
ム等におけるOS(オペレーティングシステム)の命令
が、ユーザのタスク実行中にキャッシュメモリ内から除
かれてしまうことがある。そのため、O8の実行状態に
戻ったときに、再度そのO8命令をキャッシング(メイ
ンメモリ2から読出してキャッシュメモリ内に格納する
こと)しなければならず、システム全体の性能の低下を
引き起こす。
今、成るエントリに対する4つのウェイA、  B。
C,Dのリプレース候補の順位を[D、 C,B。
A]とし、ウェイAにO8の命令が記憶されているとす
る。ここで、リプレース候補とは、キャッシュミスが生
じたときにメインメモリ2から読出したデータを記憶す
るウェイの候補を言い、その順位のデータはLRUビッ
トメモリ12に記憶されている。つまり、リプレース候
補の順位が[D。
C,B、 A]ならばウェイDにデータを記憶し、次の
リプレース候補の順位をCC,B、A、D]としておく
。O8の実行の後、ユーザのタスクが実行された場合、
データ処理装置1はまず当該タスクの命令データを読出
そうとするが、キャッシュミスが起これば(1度目のア
クセスになる場合が多いのでキャッシュミスになるのが
普通)メインメモリ2から当該タスクの命令データを読
出し、ウェイDに格納する。応じて、LRUビットメモ
リ12はリプレースの候補の順位を[C,B、 A。
D] とする。さらに、タスクの異なるデータの読出が
3度起これば、O8の命令が記憶されているウェイAま
でデータの置換が起こる。したがって、ユーザのタスク
からの割込や、外部からのアクセス要求などO8の実行
に戻ったときにキャッシュミスを起こし、メインメモリ
2から再度読出を行なわなければならなくなる。このよ
うなことがしばしば生じると、キャッシュメモリの高速
アクセス機能を有効に活用することができず、システム
性能の低下をきたす。
この発明は、上記のような問題点を解消するためになさ
れたもので、たとえばO8命令のように使用頻度の高い
データを常時保管し得るようなキャッシュメモリを提供
することを目的とする。
[課題を解決するための手段] この発明に係るキャッシュメモリは、メインメモリから
読出されたデータを一時的に保管するキャッシュメモリ
であって、複数の記憶領域を有し各記憶領域にメインメ
モリのアクセスに使用されたアドレス情報の少なくとも
一部を記憶するアドレス記憶手段と、アドレス記憶手段
の各記憶領域に対応する複数の記憶領域を有し各記憶領
域にアドレス情報に対応するデータを記憶するデータ記
憶手段と、アドレス情報が発生したとき当該アドレス情
報に基づいてアドレス記憶手段の記憶内容を参照するこ
とにより当該アドレス情報に対応するデータがデータ記
憶手段に記憶されているか否かを判別する判別手段と、
判別手段がデータ記憶手段に対応のデータが記憶されて
いることを判別したことに応答してその対応のデータを
データ記憶手段から読出して外部へ導出する手段と、判
別手段がデータ記憶手段に対応のデータが存在していな
いことを判別したことに応答してアドレス記憶手段およ
びデータ記憶手段の書換を行なう書換手段と、それぞれ
にセット/リセット情報が設定可能な設定手段と、設定
手段の設定内容に従って書換手段に作用し設定手段がセ
ットされているアドレス記憶手段およびデータ記憶手段
の記憶領域を書換手段による書換の対象から除外するよ
うに制御する手段とを備えている。
[作用コ この発明においては、設定手段を設け、この設定手段が
セットされた場合は、対応するアドレス記憶手段および
データ記憶手段の記憶領域を書換の対象から除外するよ
うにしているので、たとえばO8の命令のように頻繁に
使用されるデータをキャッシュメモリ内に常時保管する
ことができる。
[実施例] 第4図に示すごとく、システム全体の構成は第2図に示
す従来のものと変わりはない。但し、データ処理装置1
からキャッシュメモリ30へはフリーズビットのセット
信号15およびリセット信号16と、フリーズビットの
セット数情報17とが与えられる。
第1図は、この発明の一実施例のキャッシュメモリの構
成を示すブロック図である。なお、この実施例では一例
として4ウ工イセツトアソシアテイブ方式のキャッシュ
メモリを示している。なお、ウェイの数は4に限らず2
以上であればよい。図において、この実施例は第3図の
従来例と同様に、アドレスタグメモリ5とバリッドビッ
ト6と、データメモリ7と、アドレスタグ比較器8と、
ワードセレクタつと、ウェイセレクタ10と、LRUビ
ットメモリ12とを備えている。また、第3図の従来例
では簡略化のために示されていなかったが、この実施例
ではデコーダ21と、セレクタ2     2と、LR
U制御回路23と、ANDゲート24と、ヒツト判定部
25とを備えている。デコーダ21はセットセレクト4
bに基づいてアドレスタグメモリ5およびデータメモリ
7の対応するいずれか1つのエントリを選択するための
ものである。
セレクタ22はLRU制御回路23の出力に基づいて、
アドレスタグ4aをいずれのウェイのアドレスタグメモ
リ5に入力するかを選択するためのものである。LRU
制御回路23はLRUビットメモリ12に記憶された各
エントリのリプレース候補の順位の入替を制御するため
のものである。
このLRU制御回路23には、ヒツト判定部25からウ
ェイ選択信号が与えられる。ANDゲート24はウェイ
ごとに設けられており、アドレスタグ比較器8の出力と
そのとき選択されているエントリのバリッドビット6と
の論理積をとるもので、その出力はヒツト判定部25に
与えられる。ヒツト判定部25は各ANDゲート24か
らの出力に基づいてどのウェイがヒツトしたかを判定す
るためのものである。ヒツト判定部25はいずれかのウ
ェイがヒツトすると、ヒツト信号を活性化するとともに
、対応するウェイのウェイ選択信号を活性化する。
この実施例の特徴は、フリーズビット26を設け、この
フリーズビット26のセット/リセットに応じて各ウェ
イのリプレース候補の順位の固定化を制御するようにし
たことである。フリーズビット26は、各ウェイのアド
レスタグメモリ5の各エントリごとに設けられている。
同一エントリの中でフリーズビット26がセットされた
ウェイは、リプレース候補の対象から外される。したが
って、フリーズビット26がセットされたウェイにおい
ては、アドレスタグおよびデータブロックの書換が行な
われず、記憶データが常時キャッシュメモリ内に保管さ
れることになる。LRU制御回路23内に設けられたマ
スクレジスタ23aは、フリーズビット26のセット/
リセット状態に基づいて、LRU制御回路23の出力を
マスク制御するものである。このマスクレジスタ23a
によって、フリーズビット26のセットされたウェイの
リプレース候補の順位が固定化される。フリーズビット
26のセット/リセットの制御は、フリーズビット制御
回路27によって行なわれる。このフリーズビット制御
回路27には、ヒツト判定部25からウェイ選択信号が
与えられるとともに、LRU制御回路23の出力が与え
られる。また、データ処理装置1からフリーズビットの
セット信号15およびリセット信号16が与えられる。
また、フリーズビット制御回路27は内部にセット数レ
ジスタ27aを備えている。このセット数レジスタ27
aにはデータ処理装置1からセット数情報17が与えら
れ、記憶される。そして、このセット数レジスタ27a
の設定内容に従って、フリーズビット制御回路27の動
作が規制される。
さらに、フリーズビット制御回路27にはモード信号1
8と制御信号19とが与えられる。モード信号18は、
データ処理装置1がデータバスの占有権を他の機器(た
とえばDMAコントローラ)に委ねたモード(このモー
ドをウォッチモードと称する)になっているか否かを示
すもので、当該ウォッチモードのときにたとえばハイレ
ベルとなる。したがって、このモード信号18はデータ
処理装置1または上記能の機器において発生される。
制御信号19は上記ウォッチモードのときにフリーズビ
ット26のセット/リセットをバリッドビット6のセッ
ト/リセットに連動させて制御するか否かを切換えるた
めの信号で、たとえば図示しないマニュアルスイッチの
操作に応じて入力される。
次に、上記実施例の動作を説明する。
(1) 通常のキャッシュ動作 通常のキャッシュ動作は、第3図に示す従来例とほぼ同
様である。すなわち、データ処理装置1からアドレス4
が入力されると、各ウェイのアドレスタグメモリ5から
はデコーダ21によって選択されたエントリにおけるア
ドレスタグが読出され、各ウェイのアドレスタグ比較器
8においてアドレス4のアドレスタグ4aと比較される
。このとき、同じエントリにおけるバリッドビット6の
内容も読出される。各ウェイのANDゲート24は、対
応するウェイのアドレスタグ比較器8が一致を検出しか
つ対応するウェイのバリッドビット6がセットされてい
る場合にハイレベルの信号を出力する。いずれか1つの
ウェイのANDゲート24の出力がハイレベルになると
、ヒツト判定部25はヒツトしたと判定し、ヒツト信号
を活性化するとともに、対応するウェイのウェイ選択信
号を活性化する。一方、各ウェイのデータメモリ7にお
いては、デコーダ21で選択されたエントリからデータ
ブロックが読出され、各ウェイのワードセレクタ9に与
えられる。各ウェイのワードセレクタ9は、与えられる
ワードセレクト4Cに基づいて各ウェイのデータブロッ
クの中からそれぞれ1ワードのデータを選択し、ウェイ
セレクタ10に与える。ウェイセレクタ10は、ヒツト
判定部25からのウェイ選択信号に基づいて、各ウェイ
のワードセレクタ9から与えられる4つのワードデータ
の中からヒツトしたウェイのワードデータを選択し、入
出力データバス110に導出する。
また、このときLRU制御回路23はヒツト判定部25
から与えられるウェイ選択信号に基づいて、LRUビッ
トメモリ12に記憶された各ウェイのリプレース候補の
順位の入替制御を行なう。たとえば、アクセス前のリプ
レース候補の順位が[A。
B、C,D]でウェイBがヒツトしたとすると、LRU
制御回路23はリプレース候補の順位を[A、C,D、
Blにする。
上記とは逆にキャッシュミスが生じた場合、すなわち各
ウェイのANDゲート24のいずれの出力もハイレベル
とならなかった場合は、アドレスタグメモリ5およびデ
ータメモリ7においてデータの入替が行なわれる。すな
わち、この場合ヒツト判定部25はいずれのウェイのウ
ェイ選択信号も活性化しないので、LRU制御回路23
はLRUビットメモリ12でそのとき選択されているエ
ントリのリプレース候補の順位を参照し、最も古くアク
セスされたウェイをデータ入替の対象に選ぶ。たとえば
、アクセス前のリプレース候補の順位が[C,D、A、
Blであったとすると、LRU制御回路23は当該リプ
レース候補の順位を[D、A、B、C]に入替えるとと
もに、ウェイセレクタ10およびセレクタ22に対して
ウェイCを選択する信号を出力する。応じて、セレクタ
22はアドレスタグ4aをウェイCのアドレスタグメモ
リ5に与える。応じて、アドレスタグ4aがウェイCの
アドレスタグメモリ5のそのとき選択されているエント
リに書込まれる。一方、ウェイセレクタ10は入出力デ
ータバス110からワード順次に入力されるデータブロ
ック(メインメモリ2から読出されたデータブロック)
をLRU制御回路23の出力に従ってウェイCのワード
セレクタ9に与える。ウェイCのワードセレクタ9は与
えられたデータブロックをウェイCのデータメモリ7に
おいてそのとき選択されているエントリに書込む。
(2) フリーズビットがセットされている場合の動作 今、セットセレクト4bに基づいてアドレスタグメモリ
5における成るエントリが選択されたとすると、そのエ
ントリのフリーズビット26の内容が読出されてマスク
レジスタ23aに与えられる。このとき、マスクレジス
タ23aはフリーズビット26のセットされているウェ
イがあれば、そのウェイがデータ入替の対象から外され
るようにLRU制御回路23の出力をマスク制御する。
ここで、LRUビットメモリ12は各エントリごとに各
ウェイのアクセスされた古さの状態を記憶するものであ
るが、この実施例では1つのエントリに対して6ビツト
の状態値を保持している。今、4つのウェイA、B、C
,Dがあり、ウェイAとBの関係を記憶するビットを[
A、Blとすると、ウェイAがウェイBより最近アクセ
スされていたなら[A、  Bl −0,ウェイBの方
が最近アクセスされていれば[A、B〕−1を記憶する
。後も同様に、ウェイAとCの関係を[A、C]のビッ
トで、ウェイAとDの関係を[A、D]のビットで、ウ
ェイBとCの関係を[B、  C]のビットで、ウェイ
BとDの関係を[B、 D]のビットで、ウェイCとD
の関係を[C,D]のビットでそわぞれ記憶する。そし
て、各ビットに記憶されている内容が0なら上記表現の
左側のウェイ(つまり、[C,D]ならばウェイC)が
その2つの関係に対して最近アクセスされているとし、
各ビットに記憶されている内容が1なら上記表現の右側
のつエイ(つまり、[C,DlならばウェイD)がその
2つの関係に対して最近アクセスされたとする。
つまり、リプレース処理が生じた場合、LRUビットメ
モリ12を読みに行き、たとえば[A、BE−1,[A
、CF −1,[A、Dl −1という結果になればウ
ェイAが最も古くアクセスされたことになる。そして、
マスクレジスタ23aはウェイAのフリーズビット26
がセットされていると[A、BEを0に固定でき、ウェ
イBのフリーズビット26がセットされていると[B、
CFをOに固定でき、ウェイCのフリーズビット26が
セットされていると[C,DコをOに固定でき、ウェイ
Dのフリーズビット26がセットされていると[A、D
lを1に固定できる。ここで、ウェイAのフリーズビッ
ト26がセットされていると、マスクレジスタ23aは
[A、BEを0に固定してしまうので、LRUビットメ
モリ12は[A。
Bl −1,[A、C1−1,[A、Dl −1となり
得ない。そのため、ウェイAはデータ入替の対象から除
外される。
なお、第1図の実施例では、マスクレジスタ23aでL
RU制御回路23の出力をマスク制御することによりL
RUビットメモリ12内におけるリプレース候補の順位
を間接的に固定化するようにしたが、第5図に示すよう
に、対応するフリーズビット26の出力によって応答す
るプルアップ素子120をLRUビットメモリ12内に
設けることによりリプレース候補の順位を直接的に固定
化するようにしてもよい。すなわち、フリーズビット2
6がセットされるとプルアップ素子120がオンし、L
RUビットメモリ12を0に固定してしまう。また、こ
のようなプルアップ素子120に代えてプルダウン素子
を設けてリプレース候補の順位を固定化するようにして
もよい。
(3) フリーズビットのセット/リセット動作 ■ 通常モードにおけるセット動作 ここでいう通常モードとは、前述のウォッチモード以外
のモード、すなわちデータ処理装置1がデータバスの占
有権を握っているモードをいう。
このモードでは、モード信号18がローレベルとなって
おり、フリーズビット制御回路27は制御信号19のハ
イ、ロー状態によってその動作が左右されることはない
。まず、O8命令等のようにキャッシュメモリ30に常
時保持したい命令をデータ処理装置1が読み込もうとす
るとき、データ処理装置1はアドレス4を発生するとと
もにキャッシュメモリ30にフリーズビットのセット信
号15を送る。このセット信号15の入力に応答して、
フリーズビット制御回路27は以下の動作を行なう。も
し、読込みたいデータがキャッシュメモリ30内に存在
し、かつこのデータがを効である場合は、ヒツト判定部
25でヒツトの判定がなされ、ヒツトしたウェイのウェ
イ選択信号が活性化される。フリーズビット制御回路2
7はこの活性化されたウェイ選択信号で示されるウェイ
のフリーズビット26をセットする。但し、このときセ
ットされるフリーズビット26は、セットセレクト4b
に基づいてそのとき選択されているエントリに対するフ
リーズビットである。一方、読込みたいデータがキャッ
シュメモリ30内に存在しないとき、すなわちキャッシ
ュミスを起こした場合は、アドレスタグメモリ5および
データメモリ7にアドレスタグおよびデータブロックが
書込まれる。このとき、LRU制御回路23はいずれの
ウェイにアドレスタグおよびデータブロックを書込むか
をLRUビットメモリ12の該当エントリの内容に基づ
いて決定する。そして、LRU制御回路23は書換を行
なうウェイの信号を活性化してフリーズビット制御回路
27に出力する。フリーズビット制御回路27では書換
が行なわれるウェイのフリーズビット26をセットする
。但し、このときセットされるフリーズビット26もセ
ットセレクト4bに基づいて選択されたエントリに対す
るフリーズビットである。
ところで、フリーズビット制御回路27は上記のような
フリーズビット26のセット制御を行なうにあたり、セ
ット数レジスタ27aに設定された情報に従って以下の
動作を行なう。すなわち、フリーズビット制御回路27
は現在選択されているエントリに属する4つのフリーズ
ビット26のうち既にセットされている個数がセット数
レジスタ27aに予め設定されたセット数よりも小さい
場合は、無条件にフリーズビット26のセット動作を行
なう。一方、既にセットされたフリーズビット26の数
がセット数レジスタ27aに設定されたセット数と同数
の場合は、フリーズビット26のセット要求を無効にす
るか、あるいは既にセットされている成るウェイのフリ
ーズビット26をリセットして現在アクセスされている
ウェイのフリーズビット26をセットする。なお、セッ
ト数レジスタ27aには、予めデータ処理装置1からセ
ット数情報17が与えられて設定されている。
このセット数情報17には、選択された4ウ工イ分のエ
ントリに対してセットし得るフリーズビット26の数と
、セット数が一杯になったときにセット要求を無効にす
るか有効にするかの情報と、有効にする場合は現在アク
セスされているウェイのフリーズビット26をセットす
る代わりにどのウェイのフリーズビット26を優先的に
リセットするかの情報とが含まれている。
上記のごとくセット数レジスタ27aによってフリーズ
ビット26のセット数を規制するようにしたので、ユー
ザタスクにおいてもキャッシング可能な領域をキャッシ
ュメモリ内に残すことができる。また、フリーズビット
26のセット数が一杯になったときに新たなセット要求
を有効に取扱うように制御する場合は、新たなユーザタ
スクにおいてリプレースされないO8命令等を常時キャ
ッシュ内に保持できる。このように、セット数レジスタ
27aに設定する情報を変えることによってキャッシュ
メモリの特性を様々に変えることができる。たとえば、
O8命令等が多く必要な場合はセット数を増やし、特に
リプレースが必要な場合はセット要求を有効にし、決ま
った命令だけを保持しておくときにはセット要求を無効
にすればよい。
なお、セット数レジスタ27aに設定されたセット数が
最大個数「4」の場合は、すべてのウェイにフリーズビ
ット26がセットされる場合もある。フリーズビット2
6がすべてセットされているエントリにリプレース処理
が生じた場合、キャッシュメモリはメインメモリ2にア
クセスしに行く。そして、キャッシュメモリ内にデータ
は取込まず、データ処理装置1に転送する。そのために
、フリーズビット制御回路27は入出力データパス11
0を制御する。これによって、リプレース候補が一義的
法まらず(フリーズビット26をすべてセットすること
によりすべてのウェイがリプレース候補から外されるた
め)、キャッシュメモリの動作の停止を避けることが可
能になる。なお、入出力データパス110を制御するの
に代えて、データ処理装置1がメインメモリ2に直接ア
クセスしに行くようキャッシュメモリがデータ処理装置
1に信号を出すようにしてもよい。
■ 通常モードにおけるリセット動作 フリーズビット制御回路27は、フリーズビットのリセ
ット信号16が与えられると、ヒツト判定部25からの
ウェイ選択信号あるいはLRU制御回路23の出力によ
って指定されるウェイのフリーズビット26をリセット
する。但し、このときリセットされるフリーズビット2
6は、そのときセットセレクト4bに基づいて選択され
たエントリに対するフリーズビットである。
■ ウォッチモードにおけるセット/リセット動作 このウォッチモードは、前述したごとく、データ処理装
置1以外の機器(たとえばDMAコントローラ)がデー
タバスの占有権を握っているモードである。このモード
においては、モード信号18がハイレベルとなっている
。したがって、フリーズビット制御回路27は、制御信
号19のハイ/ロー状態に応じて、異なった動作を行な
う。
まず、制御信号19がハイレベルの場合について説明す
る。ウォッチモードにおいて、DMAコントローラ等の
他の装置がデータ処理装置1とは独立してメインメモリ
2に直接データを書込むと、メインメモリ2とデータメ
モリ7との対応するアドレス(データメモリ7ではセッ
トセレクト4bで選択されるエントリ)のデータが不一
致状態となる。そのため、キャッシュメモリでは対応す
るエントリのバリッドビット6が自動的にリセットされ
る。それとともに、フリーズビット制御回路27はヒツ
ト判定部25からのウェイ選択信号に基づいて、ヒツト
したウェイのフリーズビット26をリセットする。これ
によって、キャッシュメモリ30においてメインメモリ
2と不一致の生じているデータを再びデータ入替の対象
とすることができ、キャッシュメモリの保持しているメ
モリ空間を有効に利用することができる。
次に、制御信号19がローレベルの場合について説明す
る。この場合、バリッドビット6がリセットされて成る
ウェイのヒツト判定がなされても、フリーズビット制御
回路27はリセット信号16が与えられない限り対応す
るアドレスのフリーズビット26をリセットしない。す
なわち、この場合フリーズビット26は対応するバリッ
ドビット6のいかなる状態遷移によってもリセットされ
ない。このような処理によって、成るエントリの成るウ
ェイバリッドビット6をリセット状態に、フリーズビッ
ト26をセット状態に固定することができる。そのため
、このウェイにおいてはヒツト判定がなされず、またデ
ータ置換の対象にもならない。たとえば、ビット不良の
ブロックにこのような処理を行なえば、このブロックに
新たなデータが書込まれないので、キャッシュメモリの
誤動作を避けることができる。
なお、以上説明した実施例では、バリッドビット6およ
びフリーズビット26はアドレスタグメモリ5に付属す
るように描かれているが、データメモリ7もしくはLR
Uビットメモリ8に付属するように構成してもよく、さ
らに別のところに設けられても構わない。
また、以上説明した実施例では、フリーズビット26を
各エントリ毎にかつ各ウェイ毎に設けたが、各ウェイに
1個ずつ設けるようにしてもよい。
この場合、成るフリーズビット26がセットされると、
そのウェイ全体がデータの入替対象から外される。
さらに、この発明は、Nウェイセットアソシアティブ方
式のキャッシュメモリに限らず、フルアソシアティブ方
式やダイレクトマツピング方式のキャッシュメモリにも
適用することができる。なお、フルアソシアティブ方式
とは、エントリが1つしかなく、この1つのエントリに
対して多数のウェイを存する方式をいう。また、ダイレ
クトマツピング方式とは、ウェイが1つしかなく、この
1つのウェイに対して多数のエントリを有する方式をい
う。
[発明の効果コ 以上のように、この発明によればO8命令等のように頻
繁に使用されるデータをキャッシュメモリ内に常時保持
させておくことができ、その結果キャッシュメモリの高
速アクセス機能を有効に活用することができ、システム
性能の向上を図ることができる。たとえば、リアルタイ
ム・マルチタスク・システムにおいて外部割込の応答時
間の短縮化を図ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例の4ウ工イセツトアソシア
テイブ方式のキャッシュメモリの構成を示すブロック図
である。 第2図はキャッシュメモリを用いた従来のデータ処理シ
ステムの構成を示すシステムブロック図である。 第3図は従来の4ウ工イセツトアソシアテイブ方式のキ
ャッシュメモリの構成を示すブロック図である。 第4図はこの発明の一実施例におけるキャッシュメモリ
を用いたデータ処理システムの構成を示すシステムブロ
ック図である。 第5図はこの発明の他の実施例の部分回路図である。 図において、1はデータ処理装置、2はメインメモリ、
30はキャッシュメモリ、4はアドレス、4aはアドレ
スタグ、4bはセットセレクト、4Cはワードセレクト
、5はアドレスタグメモリ、6はバリッドビット、7は
データメモリ、8はアドレスタグ比較器、9はワードセ
レクタ、10はウェイセレクタ、110は入出力データ
パス、12はLRUビットメモリ、15はフリーズビッ
トのセット信号、16はフリーズビットのリセット信号
、17はセット数情報、18はモード信号、19は制御
信号、21はデコーダ、22はセレクタ、23はLRU
制御回路、23aはマスクレジスタ、25はヒツト判定
部、26はフリーズビット、27はフリーズビット制御
回路、27aはセット数レジスタ、120はプルアップ
素子を示す。

Claims (1)

  1. 【特許請求の範囲】 メインメモリから読出されたデータを一時的に保管する
    キャッシュメモリであって、 複数の記憶領域を有し、各記憶領域に前記メインメモリ
    のアクセスに使用されたアドレス情報の少なくとも一部
    を記憶するアドレス記憶手段、前記アドレス記憶手段の
    各記憶領域に対応する複数の記憶領域を有し、各記憶領
    域に前記アドレス情報に対応するデータを記憶するデー
    タ記憶手段、 アドレス情報が発生したとき、当該アドレス情報に基づ
    いて前記アドレス記憶手段の記憶内容を参照することに
    より、当該アドレス情報に対応するデータが前記データ
    記憶手段に記憶されているか否かを判別する判別手段、 前記判別手段が前記データ記憶手段に対応のデータが記
    憶されていることを判別したことに応答して、当該対応
    のデータを前記データ記憶手段から読出して外部へ導出
    する手段、および 前記判別手段が前記データ記憶手段に対応のデータが存
    在していないことを判別したことに応答して、前記アド
    レス記憶手段および前記データ記憶手段の書換えを行な
    う書換手段、 前記それぞれにセット/リセット情報が設定可能な設定
    手段、および 前記設定手段の設定内容に従って前記書換手段に作用し
    、当該設定手段がセットされている前記アドレス記憶手
    段および前記データ記憶手段の記憶領域を前記書換手段
    による書換の対象から除外するように制御する手段を備
    える、キャッシュメモリ。
JP63084506A 1988-04-05 1988-04-05 キャッシュメモリ Pending JPH01255944A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63084506A JPH01255944A (ja) 1988-04-05 1988-04-05 キャッシュメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63084506A JPH01255944A (ja) 1988-04-05 1988-04-05 キャッシュメモリ

Publications (1)

Publication Number Publication Date
JPH01255944A true JPH01255944A (ja) 1989-10-12

Family

ID=13832531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63084506A Pending JPH01255944A (ja) 1988-04-05 1988-04-05 キャッシュメモリ

Country Status (1)

Country Link
JP (1) JPH01255944A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535387A (ja) * 2007-08-02 2010-11-18 フリースケール セミコンダクター インコーポレイテッド キャッシュロック装置及びその方法
JP2011129101A (ja) * 2009-12-16 2011-06-30 Intel Corp キャッシュメモリにおけるキャッシュラインの置き換え
JP2014041647A (ja) * 2008-09-30 2014-03-06 Intel Corp 低電圧動作時のキャッシュ部分のディセーブル

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535387A (ja) * 2007-08-02 2010-11-18 フリースケール セミコンダクター インコーポレイテッド キャッシュロック装置及びその方法
JP2014041647A (ja) * 2008-09-30 2014-03-06 Intel Corp 低電圧動作時のキャッシュ部分のディセーブル
JP2011129101A (ja) * 2009-12-16 2011-06-30 Intel Corp キャッシュメモリにおけるキャッシュラインの置き換え
US8990506B2 (en) 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information

Similar Documents

Publication Publication Date Title
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US4445174A (en) Multiprocessing system including a shared cache
US5359723A (en) Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
US20020116584A1 (en) Runahead allocation protection (rap)
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US5802574A (en) Method and apparatus for quickly modifying cache state
JPH0415736A (ja) キャッシュメモリ装置
JPH0364893B2 (ja)
JP4803983B2 (ja) 演算処理装置
JPH06243039A (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7346741B1 (en) Memory latency of processors with configurable stride based pre-fetching technique
JPH10293720A (ja) コンピュータシステムにおけるキャッシュ・コヒーレンシー機構および主メモリに保持されている項目に関してキャッシュの内容のコヒーレンシー状態を変更する方法
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US7219197B2 (en) Cache memory, processor and cache control method
US20040243765A1 (en) Multithreaded processor with multiple caches
JPH0743671B2 (ja) キャッシュ・メモリ制御方式
JP4904802B2 (ja) キャッシュメモリ及びプロセッサ
US20020188805A1 (en) Mechanism for implementing cache line fills
JPH01255944A (ja) キャッシュメモリ
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JPH0659977A (ja) 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法