JP2002169724A - キャッシュメモリにおける部分無効化装置 - Google Patents
キャッシュメモリにおける部分無効化装置Info
- Publication number
- JP2002169724A JP2002169724A JP2000367765A JP2000367765A JP2002169724A JP 2002169724 A JP2002169724 A JP 2002169724A JP 2000367765 A JP2000367765 A JP 2000367765A JP 2000367765 A JP2000367765 A JP 2000367765A JP 2002169724 A JP2002169724 A JP 2002169724A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- address signal
- address
- circuit
- information
- 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
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
に必要な時間を短縮することのできるキャッシュメモリ
における部分無効化装置の提供。 【解決手段】 選択信号生成回路44はCPU 10からPURGE
信号212およびライン種別信号(P I/D)214を受け、かつI
/D A[i]回路42-iから属性情報を受け、受けたPURGE信号
212が無効化要求を示す信号(論理値「1」)で、受け
たライン種別信号(P I/D)214の論理値と受けた属性情報
の論理値が等しい場合は、このI/D A[i]回路42-iに対応
するV[i]回路48-iに記憶される情報を論理値「0」にし
て無効化する。
Description
おける部分無効化装置に係り、とくにキャッシュメモリ
に格納された情報の無効化に必要な時間の短縮に好適な
キャッシュメモリにおける部分無効化装置に関するもの
である。
では、その性能を高めるために、一般にキャッシュメモ
リが用いられている。
リ(外部メモリ)の内容の一部のコピーを保持する高速
なメモリであり、このメモリは、中央処理装置(CPU )
とメインメモリの速度差を埋めるために両者の中間に置
かれ、CPU がメモリアクセス要求を発生した時に、メイ
ンメモリの代わりにアクセスされ、システム全体の性能
を高める働きをする。
構成方式があり、これら方式はシステム上で動作させる
アプリケーションの特性や要求される性能やコストに応
じて選択される。
スマスタ(CPUやDMAなど)が複数存在するシステム構成
の場合には、メインメモリとキャッシュメモリ間のコヒ
ーレンシ(同一性、一貫性)が保たれなくなる場合があ
る。このような状況を解決するために様々な手法が存在
する。最も簡単な手法の1つとして、現在キャッシュメ
モリに格納される情報を無効化する方法がある。
るものがあり、この方式はキャッシュメモリの各ライン
(命令やデータの格納される領域をラインという)につ
いて検査し、この検査によりコヒーレンシが保たれてい
ないラインがあればこの特定のラインについて無効化す
るものである。
リとキャッシュメモリ間のコヒーレンシが保たれなくな
っている場合には、システムの性能の低下を避けるため
に、その原因となっているラインのみを無効化するのが
理想である。
方式による無効化方法では、無効化するライン数に比例
し時間がかかるという問題があった。このことはシステ
ムの性能低下の要因にもなっていた。
し、キャッシュメモリに格納された情報の無効化に必要
な時間を短縮することのできるキャッシュメモリにおけ
る部分無効化装置を提供することを目的とする。
リにおける部分無効化装置は上述の課題を解決するため
に、アクセスのためのアドレスを示す所定の複数のビッ
トからなる第1のアドレス信号群を形成し、かつこのア
クセスがプログラム領域に対する命令フェッチ要求であ
るのかまたはデータ領域に対するデータリード要求であ
るのかを示すアクセス種別信号を形成する中央処理手段
と、この中央処理手段により形成された第1のアドレス
信号群およびアクセス種別信号を受信し、この受信した
第1のアドレス信号群がキャッシュミス時によるもので
ある場合にはラインフィルを行なうためのこの第1のア
ドレス信号群に基づく所定の複数のビットからなる第2
のアドレス信号群を形成し、かつこの受信した第1のア
ドレス信号群を所定の複数のビットのうちの下位側の所
定の複数のビットをライン内オフセットフィールドアド
レス信号群とし、このアドレス信号群より上位の所定の
複数のビットをインデックスフィールドアドレス信号群
とし、このアドレス信号群より上位の残りの所定の複数
のビットをタグフィールドアドレス信号群とに分割し、
かつこの受信したアクセス種別信号がキャッシュミス時
によるものである場合であってこのアクセス種別信号が
命令フェッチ要求である場合にはそれを示す属性情報を
またデータアクセス要求である場合にはそれを示す属性
情報を形成する制御手段と、タグフィールドアドレス信
号群と同じビット構成からなる第1のタグアドレス信号
群を記憶するアドレス情報記憶手段を含み、かつこの制
御手段により分割されたインデックスフィールドアドレ
ス信号群を受信し、この受信したアドレス信号群の示す
このアドレス情報記憶手段の記憶領域から第1のタグア
ドレス信号群を読み出すタグメモリ手段と、インデック
スフィールドアドレス信号群に対応する第1のタグアド
レス信号群が有効であるか否かの情報を記憶する有効・
無効記憶手段群を含み、かつ制御手段により分割された
インデックスフィールドアドレス信号群を受信し、この
受信したアドレス信号群の示すこの有効・無効記憶手段
の記憶領域から有効であるか否かの情報を読み出す有効
ビットメモリ手段と、制御手段はさらに、上記分割した
タグフィールドアドレス信号群とタグメモリ手段からの
第1のタグアドレス信号群の比較を行ない、この比較に
おいて一致しかつこの有効ビットメモリ手段からの情報
が有効であることを示す情報ならばキャッシュヒットと
判定し、またこの比較において一致しないかあるいは
(および)この有効ビットメモリ手段からの情報が無効
であることを示す情報ならばキャッシュミスと判定する
判定手段を含み、制御手段に接続される外部メモリ手段
を有し、有効ビットメモリ手段はさらに、キャッシュミ
ス時におけるインデックスフィールドアドレス信号群お
よび属性情報を制御手段から受信し、この受信したアド
レス信号群の示す記憶領域にこの受信した属性情報を記
憶する属性情報記憶手段群を含み、制御手段は、キャッ
シュミスと判定した場合には、外部メモリ手段との間で
ラインフィルを行なうためのこのキャッシュミス時にお
ける中央処理手段からの第1のアドレス信号群に基づく
第2のアドレス信号群を形成して外部メモリ手段に出力
し、続いてこのキャッシュミス時のラインが命令フェッ
チ要求によるものである場合にはそれを示す属性情報を
またデータアクセス要求によるものである場合にはそれ
を示す属性情報をこのキャッシュミス時に分割されたイ
ンデックスフィールドアドレス信号群とともに属性情報
記憶手段に出力してこのアドレス信号群の示す記憶領域
にこの受けた属性情報を記憶させ、かつこの分割された
インデックスフィールドアドレス信号群を有効・無効記
憶手段に出力してこのアドレス信号群の示す記憶領域に
有効であることを示す情報を記憶させることを特徴とす
る。
部分無効化装置は上述の課題を解決するために、中央処
理手段はさらに、無効化要求信号であるか否かを示すパ
ージ信号を形成し、かつこの無効化するラインが命令フ
ェッチ要求によるものであるのかまたはデータアクセス
要求によるものであるのかを示すライン種別信号を形成
する手段を含み、有効ビットメモリ手段はさらに、この
中央処理手段により形成されたパージ信号およびライン
種別信号を受け、かつ属性情報記憶手段群の各々からそ
れぞれ属性情報を受け、この受けたパージ信号が無効化
要求信号を示す信号であり、かつこの受けたライン種別
信号が命令フェッチ要求によるものを示す信号であり、
かつこの受けた属性情報が命令フェッチ要求によるもの
を示す信号である場合には、この属性情報の記憶される
属性情報記憶手段に対応する有効・無効記憶手段に記憶
される情報を無効であることを示す情報にし、また、こ
の受けたパージ信号が無効化要求信号を示す信号であ
り、かつこの受けたライン種別信号がデータアクセス要
求によるものを示す信号であり、かつこの受けた属性情
報がデータアクセス要求によるものであることを示す信
号である場合には、この属性情報の記憶される属性情報
記憶手段に対応する有効・無効記憶手段に記憶される情
報を無効であることを示す情報にすることを特徴とす
る。
よるキャッシュメモリにおける部分無効化装置の実施例
を詳細に説明する。
ドキャッシュメモリにおける部分無効化装置の適用され
る第1の実施例のシステムが示されている。この第1の
実施例は、命令フェッチ要求がキャッシュミスした際に
外部メモリのプログラム領域からラインフィルした全て
のライン、または、データリード要求がキャッシュミス
した際に外部メモリのデータ領域からラインフィルした
全てのラインを、それぞれクロック信号1サイクル分の
時間にて無効化するシステムである。
ミスした際にラインフィルしたラインを命令ラインと呼
ぶ。また、データリード要求がキャッシュミスした際に
ラインフィルしたラインをデータラインと呼ぶ。
ステムは、CPU 10と、キャッシュコントローラ30、有効
ビットメモリ回路70、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部90と、外部メモリ回路
96とから構成されている。
は、図示しないクロック信号発生回路からのクロック信
号の受信を行なうクロック信号入力端子(CLK)200、32本
の信号線からなる信号線群202の各々と接続されるアド
レスの信号の出力を行なうアドレス信号出力端子群(CA
[31:0])202、32本の信号線からなる信号線群204の各々
と接続される書き込み用のデータの出力を行なうデータ
出力端子群(WD[31:0])204および32本の信号線からなる
信号線群206の各々と接続されるコントローラ30からの
データの受信を行なうデータ入力端子群(RD[31:0])206
を有する。
を示す信号の出力を行なう出力端子(I/D)208、コントロ
ーラ30からのウエイト信号の受信を行なうウエイト信号
入力端子(WAIT)210、無効化要求信号であるか否かを示
す信号の出力を行なうパージ信号出力端子(PURGE)212お
よび無効化するラインの種別を示す信号の出力を行なう
出力端子(P I/D)214を有する。
ないクロック信号発生回路からのクロック信号が信号線
200を介して入力される。CPU 10は、このクロック信号
に同期したアドレス信号、書き込み用データ、アクセス
の種別を示す信号、無効化要求信号であるか否かを示す
信号であるパージ信号および無効化するラインの種別を
示す信号を生成し、アドレス信号出力端子群(CA[31:0])
202、データ出力端子群(WD[31:0])204、出力端子(I/D)2
08、パージ信号出力端子(PURGE)212および出力端子(P I
/D)214に出力する。
期したコントローラ30からのデータおよびウエイト信号
をデータ入力端子群(RD[31:0])206およびウエイト信号
入力端子(WAIT)210にて受信する。
では、たとえば、1ワード(語)4バイト単位で処理を
行なうプロセッサである。CPU 10はまた、この例では、
メモリアクセスの種類として、ワードリードとワードラ
イトとを有している。
て、あるアドレスにおけるキャッシュ部90のデータメモ
リ回路82または外部メモリ回路96に記憶された情報(命
令またはデータ)を読み出し、演算などを行なう。この
場合であって、命令情報を読み出す場合には、命令フェ
ッチサイクルにおいて読み出しを行なう32ビットからな
るアドレスを示す信号がアドレス信号出力端子群(CA[3
1:0])202から出力されるとともに、アクセスの種別を示
す信号の出力端子(I/D)208から命令フェッチ要求である
ことを示す論理値「1」の信号が出力される。この場
合、読み出されてきた32ビットの命令情報はデータ入力
端子群(RD[31:0])206に入力される。
リリードサイクルにおいて読み出しを行なう32ビットか
らなるアドレスを示す信号がアドレス信号出力端子群(C
A[31:0])202から出力されるとともに、アクセスの種別
を示す信号の出力端子(I/D)208から命令フェッチ要求以
外のたとえばデータアクセス要求であることを示す論理
値「0」の信号が出力される。この場合、読み出されて
きた32ビットのデータ情報はデータ入力端子群(RD[31:
0])206に入力される。
データメモリ回路82および外部メモリ回路96に格納する
場合がある。この場合、メモリライトサイクルにおいて
書き込みを行なう32ビットからなるアドレスがアドレス
信号出力端子群(CA[31:0])202から出力され、かつ格納
すべき32ビットからなるデータがデータ出力端子群(WD
[31:0])204から出力される。この場合、CPU 10によるア
クセスの種別を示す信号の出力端子(I/D)208から出力さ
れる信号は、論理値「0」の信号でよい。
を待たせるために、キャッシュ部90のコントローラ30か
ら供給される信号であり、この信号を受けた場合には、
CPU10は空転する。コントローラ30がウエイト信号(WAI
T)210をCPU 10へ送る例としてはキャッシュミス(CPU 1
0が要求する情報がキャッシュメモリに存在しないとき
のことをいう)した場合がある(図6)。
号出力端子(PURGE)212および出力端子(P I/D)214を有し
ており、これら端子から出力される信号により命令ライ
ンやデータラインの無効化を行なうことができる。この
場合であって、命令ラインを無効化する場合には、パー
ジ信号出力端子(PURGE)212から論理値「1」の無効化要
求信号が出力されるとともに、出力端子(P I/D)214から
無効化を行なうラインが命令ラインであることを示す論
路値「1」の信号が出力される。
パージ信号出力端子(PURGE)212から論理値「1」の無効
化要求信号が出力されるとともに、出力端子(P I/D)214
から無効化を行なうラインがデータラインであることを
示す論理値「0」の信号が出力される。
端子群(CA[31:0])202は32本の信号線からなる信号線群2
02を介してコントローラ30のアドレス信号入力端子群(C
A[31:0])202に接続され、データ出力端子群(WD[31:0])2
04は32本の信号線からなる信号線群204を介してコント
ローラ30のデータ入力端子群(WD[31:0])204に接続さ
れ、データ入力端子群(RD[31:0])206は32本の信号線か
らなる信号線群206を介してコントローラ30のデータ出
力端子群(RD[31:0])206に接続され、出力端子(I/D)208
は信号線208を介してコントローラ30の入力端子(I/D)20
8に接続され、ウエイト信号入力端子(WAIT)210は信号線
210を介してコントローラ30のウエイト信号出力端子(WA
IT)210に接続されている。
信号線212を介して有効ビットメモリ回路70のパージ信
号入力端子(PURGE)212に接続され、出力端子(P I/D)214
は信号線214を介して有効ビットメモリ回路70の入力端
子(P I/D)214 に接続されている。
ャッシュは、プログラム(命令)領域とデータ領域の区
別を行なわないユニファイドキャッシュで、その容量は
16キロバイト(KB)で、そのライン数は1024で、1ライ
ン当たり4ワードすなわち16バイトで、ダイレクトマッ
ピング(各ラインのキャッシュ上での位置が一意に決め
られている)方式の構成である。
へのデータ情報の書き込み方式についてはキャッシュへ
のデータ情報の書き換えと同時に外部メモリ回路96にも
書き込むライトスルー方式が採用されている。そして、
このようなデータライト要求においてキャッシュミスが
発生した場合には、ラインフィル(この例ではキャッシ
ュ部90と外部メモリ回路96との間でライン全体のデータ
のやり取りをする)を行なわないノーライトアロケート
方式が採用されている。
まず、キャッシュコントローラ30が有する端子などにつ
いて述べる。
の例では上述したCPU 10と接続される端子の他に、図示
しないクロック信号発生回路からのクロック信号の受信
を行なうクロック信号入力端子(CLK)200と、外部メモリ
回路96との対応のための32本の信号線からなる信号線群
220の各々と接続されるアドレスの信号の出力を行なう
アドレス信号出力端子群(EA[31:0])220と、32本の信号
線からなる信号線群222の各々と接続される書き込み用
のデータの出力を行なうデータ出力端子群(ED[31:0])22
2と、32本の信号線からなる信号線群224の各々と接続さ
れるデータの受信を行なうデータ入力端子群(EQ[31:0])
224と、チップイネーブル信号の出力を行なうチップイ
ネーブル信号出力端子(ECE)226と、アウトプットイネー
ブル信号の出力を行なうアウトプットイネーブル信号出
力端子(EOE)228と、ライトイネーブル信号の出力を行な
うライトイネーブル信号出力端子(EWE)230とを有してい
る。
0は信号線群220を介して外部メモリ回路96のアドレス信
号入力端子(A[31:0])220と接続され、上記データ出力端
子群(ED[31:0])222は信号線群222を介して外部メモリ回
路96のデータ入力端子群(D[31:0])222と接続され、上記
データ入力端子群(EQ[31:0])224は信号線群224を介して
外部メモリ回路96のデータ出力端子群(Q[31:0])224と接
続され、上記チップイネーブル信号出力端子(ECE)226は
信号線226を介して外部メモリ回路96のチップイネーブ
ル信号入力端子(CE)226と接続され、上記アウトプット
イネーブル信号出力端子(EOE)228は信号線228を介して
外部メモリ回路96のアウトプットイネーブル信号入力端
子(OE)228と接続され、上記ライトイネーブル信号出力
端子(EWE)230は信号線230を介して外部メモリ回路96の
ライトイネーブル信号入力端子(WE)230と接続されてい
る。
ットメモリ回路70との対応のためのリセット信号の出力
を行なうリセット信号出力端子(RESET)240と、10本の信
号線からなる信号線群242の各々と接続されるアドレス
信号の出力を行なうアドレス信号出力端子群(VA[9:0])2
42と、情報(命令やデータ)が有効であるか否かの信号
の受信を行なうVALID信号入力端子(VALID)244と、セッ
ト信号の出力を行なうセット信号出力端子(SET)246と、
たとえば命令フェッチ要求にてキャッシュミスした場合
に論理値「1」の信号を出力しデータリード要求にてキ
ャッシュミスした場合に論理値「0」の信号の出力を行
なうV I/D信号出力端子(V I/D )248とを有している。
号線240を介して有効ビットメモリ回路70のリセット信
号入力端子(RESET)240 と接続され、上記アドレス信号
出力端子群(VA[9:0])242は信号線群242を介して有効ビ
ットメモリ回路70のアドレス信号入力端子群(VA[9:0])2
42と接続され、上記VALID信号入力端子(VALID)244は信
号線244を介して有効ビットメモリ回路70のVALID信号出
力端子(RESET)244と接続され、上記セット信号出力端子
(SET)246は信号線246を介して有効ビットメモリ回路70
のセット信号入力端子(SET)246と接続され、また、上記
V I/D信号出力端子(V I/D )248は信号線248を介して有
効ビットメモリ回路70のV I/D信号入力端子(V I/D )248
と接続されている。
メモリ回路80との対応のための10本の信号線からなる信
号線群280の各々と接続されるアドレス信号の出力を行
なうアドレス信号出力端子群(TA[9:0])280と、18本の信
号線からなる信号線群282の各々と接続される書き込み
用のタグデータ(アドレス情報)の出力を行なうタグデ
ータ出力端子群(TD[17:0])282と、18本の信号線からな
る信号線群284の各々と接続されるタグデータの受信を
行なうタグデータ入力端子群(TQ[17:0])284と、チップ
イネーブル信号の出力を行なうチップイネーブル信号出
力端子(TCE)286と、アウトプットイネーブル信号の出力
を行なうアウトプットイネーブル信号出力端子(TOE)288
と、ライトイネーブル信号の出力を行なうライトイネー
ブル信号出力端子(TWE)290とを有している。
は信号線群280を介してタグメモリ回路80のアドレス信
号入力端子群(TA[9:0])280と接続され、上記タグデータ
出力端子群(TD[17:0])282は信号線群282を介してタグメ
モリ回路80のタグデータ入力端子群(TD[17:0])282と接
続され、上記タグデータ入力端子群(TQ[17:0])284は信
号線群284を介してタグメモリ回路80のタグデータ出力
端子群(TQ[17:0])284と接続され、上記チップイネーブ
ル信号出力端子(TCE)286は信号線286を介してタグメモ
リ回路80のチップイネーブル信号入力端子(TCE)286と接
続され、上記アウトプットイネーブル信号出力端子(TO
E)288は信号線288を介してタグメモリ回路80のアウトプ
ットイネーブル信号入力端子(TOE)288と接続され、ま
た、上記ライトイネーブル信号出力端子(TWE)290は信号
線290を介してタグメモリ回路80のライトイネーブル信
号入力端子(TWE)290と接続されている。
メモリ回路82との対応のための10本の信号線からなる信
号線群292の各々と接続されるアドレス信号の出力を行
なうアドレス信号出力端子群(DA[9:0])292と、128本(32
本×4)の信号線からなる信号線群294の各々と接続され
る書き込み用の128個のデータ(命令情報やデータ情
報)の出力を行なうデータ出力端子群(DD[127:0])294
と、128本(32本×4)の信号線からなる信号線群296の各
々と接続される128個(32個×4)のデータの受信を行な
うデータ入力端子群(DQ[127:0])296と、チップイネーブ
ル信号の出力を行なうチップイネーブル信号出力端子(D
CE)298と、アウトプットイネーブル信号の出力を行なう
アウトプットイネーブル信号出力端子(DOE)300と、ライ
トイネーブル信号の出力を行なうライトイネーブル信号
出力端子(DWE)302とを有している。
出力端子群(DA[9:0])292はそれらの各々接続される信号
線群292を介してデータメモリ回路82の32個の入力端子
からなるアドレス信号入力端子群(DA[31:0])292の中の
所定の10個の入力端子からなるアドレス信号入力端子(D
A[31:0])292と接続され、上記データ出力端子群(DD[12
7:0])294は信号線群294を介してデータメモリ回路82の
データ入力端子群(DD[127:0])294と接続され、上記128
個の入力端子からなるデータ入力端子群(DQ[127:0])296
のうちの所定の32個の入力端子からなるデータ入力端子
群(DQ[127:0])296はそれらの各々と接続される32本の信
号線からなる信号線群296を介してデータメモリ回路82
のデータ出力端子群(DQ[31:0])296と接続されている。
(DCE)298は信号線298を介してデータメモリ回路82のチ
ップイネーブル信号入力端子(DCE)298と接続され、上記
アウトプットイネーブル信号出力端子(DOE)300は信号線
300を介してデータメモリ回路82のアウトプットイネー
ブル信号入力端子(DOE)300 と接続され、上記ライトイ
ネーブル信号出力端子(DWE)302は信号線302を介してデ
ータメモリ回路82のライトイネーブル信号入力端子(DW
E)302と接続されている。
る。コントローラ30はCPU 10と同様にクロック信号入力
端子(CLK)200を有し、この入力端子(CLK)200には図示し
ないクロック信号発生回路からのクロック信号が信号線
200を介して入力される。コントローラ30は、このクロ
ック信号に同期した後述する信号を出力する。
値「1」の信号を生成し、またそれ以外の時には論理値
「0」の信号を生成してリセット信号出力端子(RESET)2
40に出力するリセット生成回路を有する。この出力端子
240から論理値「1」の信号が出力されると、後に詳述
する有効ビットメモリ回路70のV[0]からV[1023]のメモ
リの全ビットが「0」になる。すなわち、システムの初
期化が行なわれる。
(CA[31:0])202にはこの例では図4に示すようなアドレ
ス信号がCPU10から送られる。図4はダイレクトマッピ
ング方式のキャッシュにアクセスするためのアドレス信
号202(α[31:0])であり、3つのフィールドからなる。
すなわち、下位の4ビット(α[3:0])からなるライン内
オフセットフィールド100はライン中の求める情報の選
択に、フィールド100の4ビットよりさらに上位の10ビ
ット(α[13:4])からなるインデックスフィールド102は
ラインの選択に、フィールド102の10ビットよりさらに
上位の18ビット(α[31:14])からなるタグフィールド104
はキャッシュのタグ部つまりタグメモリ回路80に記憶さ
れるアドレスデータとの比較等にそれぞれ用いられる。
ュヒット(CPU 10が要求する情報がキャッシュメモリに
存在しているときのことをいう)時の動作とキャッシュ
ミス時の動作について述べる。キャッシュヒットとキャ
ッシュミスは、メモリリードサイクルにおける命令やデ
ータの読み出し時に発生する場合と、メモリライトサイ
クルにおけるデータの書き込み時に発生する場合とがあ
る。メモリリードサイクル時とメモリライトサイクル時
ではコントローラ30の対応は異なる。これについて以下
に詳述する。
外部メモリ回路96のメモリの一部のコピーの命令やデー
タを保持し、また後述するタグメモリ回路80は上記外部
メモリ回路96のメモリの一部のコピーのアドレスを保持
する。この場合、命令やデータとアドレス(タグ)は対
にして保持される。
やデータの読み出し時に、キャッシュヒット、キャッシ
ュミスした場合について述べる。
ドレス(α[31:0])202を受けると、その一部であるアド
レス(α[13:4])をアドレス出力端子群(TA[9:0])280、ア
ドレス出力端子群(DA[9:0])292、アドレス出力端子群(V
A[9:0])242を通してタグメモリ回路80のアドレス入力端
子群(TA[9:0])280、データメモリ回路82のアドレス入力
端子群(DA[31:0])292、有効ビットメモリ回路70のアド
レス入力端子群(VA[9:0])242に送る。
82は入力したアドレス(α[13:4])に基づくそれらメモリ
に記憶されるアドレス(α[31:14])および命令やデータ
を読み出しアドレスデータ出力端子群(TQ[17:0])284お
よびデータ出力端子群(DQ[31:0])296に送る。このアド
レスデータ出力端子群(TQ[17:0])284およびデータ出力
端子群(DQ[31:0])296に読み出されたアドレス(α[31:1
4])および命令やデータはコントローラ30のアドレスデ
ータ入力端子群(TQ[17:0])284およびデータ入力端子(DQ
[127:0])296に送られる。
80からアドレスデータを読み出す場合に、上述したアド
レス出力端子群(TA[9:0])280からアドレス信号を出力す
る他に、この例ではチップイネーブル出力端子(TCE)286
から論理値「0」の信号を出力し、かつアウトプットイ
ネーブル出力端子(TOE)288から論理値「0」の信号を出
力し、かつライトイネーブル出力端子(TWE)290から論理
値「1」の信号を出力する。
リ回路82から命令やデータを読み出す場合に、上述した
アドレス出力端子群(DA[9:0])292からアドレス信号を出
力する他に、この例ではチップイネーブル出力端子(DC
E)298から論理値「0」の信号を出力し、かつアウトプ
ットイネーブル出力端子(DOE)300から論理値「0」の信
号を出力し、かつライトイネーブル出力端子(DWE)302か
ら論理値「1」の信号を出力する。
効ビットメモリ回路70は、入力したアドレス(α[13:4])
に基づく情報が有効である場合にはその出力端子(VALI
D)244からコントローラ30の入力端子(VALID)244に論理
値「1」の信号を送り、また無効の場合には論理値
「0」の信号を送る。
リ回路70から送られる有効または無効の情報を受信する
場合に、上述したアドレス出力端子群(VA[9:0])242から
アドレス信号を出力する他に、この例ではリセット信号
出力端子(RESET)240から論理値「0」の信号を出力し、
かつセット信号出力端子(SET)246から論理値「0」の信
号を出力するのでよい。またこの場合、CPU 10は、本実
施例では、パージ信号出力端子(PURGE)212から論理値
「0」の信号を出力し、出力端子(P I/D)214から論理値
「0」または「1」の信号を出力するのでよい。
入力端子群(TQ[17:0])284から入力したアドレス(α[31:
14])と上述のCPU 10からのアクセスアドレス(α[31:0])
の残りの一部であるアドレス(α[31:14])を比較する。
この比較においてこれらアドレスが一致していることお
よび有効ビットメモリ回路70からのVALID信号244が論理
値「1」の信号であれば、コントローラ30は、キャッシ
ュヒットであると判定し、また、この比較において一致
していなことおよび(または)VALID信号244が論理値
「0」の信号であれば、キャッシュミスであると判定す
る。
ついてのコントローラ30の動作を述べる。すなわち、デ
ータメモリ回路82から読み出されてきた命令やデータが
コントローラ30によりアクセスすべき有効な情報である
と判定された場合には、コントローラ30はこの読み出さ
れてきた情報をデータ出力端子群(RD[31:0])206を通し
てCPU 10のデータ入力端子群(RD[31:0])206に送る(図
6)。
残りの部分のアドレス(α[31:14])の異なるアドレスを
交互にアクセスすると、毎回入れ替えが起こり、キャッ
シュが有効に働かない場合がある。このような時に、コ
ントローラ30は上述の比較において、キャッシュミスで
あると判定する場合がある。この場合について以下に詳
述する。
ンフィル(この例では外部メモリ回路96との間でライン
全体のデータのやり取りを行なうこと)を行なう。この
場合メモリリードサイクル時のキャッシュミスであるか
ら、具体的には、コントローラ30は次に、外部メモリ回
路96から命令やデータの読み出し動作を行なう。この動
作の詳細を以下に述べる。
から上述したCPU 10からのアクセスアドレス(α[31:0])
に基づく情報を読み出す信号を形成して外部メモリ回路
96に出力する。すなわち、コントローラ30はそのアドレ
ス出力端子群(EA[31:0])220からCPU10からのアクセスア
ドレス信号(α[31:0])202に基づくアドレス信号を出力
する(図6)。
96から命令やデータを読み出す場合に、上述したアドレ
ス出力端子群(EA[31:0])220からアドレス信号を出力す
る他に、本実施例では、チップイネーブル出力端子(EC
E)226から論理値「0」の信号を出力し、かつアウトプ
ットイネーブル出力端子(EOE)228から論理値「0」の信
号を出力し、かつライトイネーブル出力端子(EWE)230か
ら論理値「1」の信号を出力する。
説明すると、外部メモリ回路96はこの例では命令やデー
タの蓄積されるDRAMと、このDRAMに命令やデータを書き
込んだり、またこのDRAMから命令やデータを読み出した
りする制御回路とから構成されている。
ーラ30からの上述した各種制御信号を受信すると、この
受信した各種制御信号に基づく読み出し制御信号を形成
してDRAMに送る。これによりDRAMから読み出されてきた
32ビット×4からなる命令情報またはデータ情報は外部
メモリ回路96のデータ出力端子群(Q[31:0])224から出力
される。このデータ出力端子群(Q[31:0])224から出力さ
れた情報はコントローラ30のデータ入力端子群(EQ[31:
0])224に送られる。
み出されてきた32ビット×4からなる命令情報またはデ
ータ情報を受けると、タグメモリ回路80、データメモリ
回路82および有効ビットメモリ回路70に対し以下に示す
ような処理を行なう。
ような処理を行なう。すなわちコントローラ30は上記CP
U 10からのアクセスアドレス(α[31:0])の一部であるア
ドレス信号(α[13:4])をアドレス出力端子群(TA[9:0])2
80に出力し、かつ上記アクセスアドレス(α[31:0])の一
部であるアドレス信号(α[31:14])をアドレスデータ出
力端子群(TD[17:0])282に出力し、かつ論理値「0」の
信号を形成してチップイネーブル出力端子(TCE)286に出
力し、かつ論理値「1」の信号を形成してアウトプット
イネーブル出力端子(TOE)288に出力し、かつ論理値
「0」の信号を形成してライトイネーブル出力端子(TW
E)290に出力する。
説明すると、タグメモリ回路80はこの例ではアドレスデ
ータ(タグ)の蓄積されるSRAMと、このSRAMにアドレス
データを書き込んだり、またこのSRAMからアドレスデー
タを読み出したりする制御回路とから構成されている。
ーラ30からの上述した各種制御信号を受信すると、この
受信した各種制御信号に基づく書き込み制御信号を形成
してSRAMに送る。これによりこの受信したアドレスデー
タがSRAMに記憶される。
うな処理を行なう。すなわちコントローラ30は、上記CP
U 10からのアクセスアドレス(α[31:0])の一部であるア
ドレス信号(α[13:4])を取り出してアドレス出力端子群
(DA[9:0])292に出力し、かつ上記外部メモリ回路96から
読み出されてきた32ビット×4からなる命令情報または
データ情報をデータ出力端子群(DD[127:0])294に出力
し、かつ論理値「0」の信号を形成してチップイネーブ
ル出力端子(DCE)298に出力し、かつ論理値「1」の信号
を形成してアウトプットイネーブル出力端子(DOE)300に
出力し、かつ論理値「0」の信号を形成してライトイネ
ーブル出力端子(DWE)302に出力する。
て説明すると、データメモリ回路82はこの例では命令情
報またはデータ情報の蓄積されるSRAMと、このSRAMに命
令情報またはデータ情報を書き込んだり、またこのSRAM
から命令情報またはデータ情報を読み出したりする制御
回路とから構成されている。
ローラ30からの上述した各種制御信号を受信すると、こ
の受信した各種制御信号に基づく書き込み制御信号を形
成してSRAMに送る。これによりこの受信した命令情報ま
たはデータ情報がSRAMに記憶される。
すような処理を行なう。すなわち上記外部メモリ回路96
から読み出されてきた32ビット×4からなる情報がキャ
ッシュミスによる命令情報である場合には、コントロー
ラ30は上記CPU 10からのアクセスアドレス(α[31:0])の
一部であるアドレス信号(α[13:4])をアドレス出力端子
群(VA[9:0])242に出力し、かつ、論理値「1」の信号を
形成してセット信号出力端子(SET)246に出力し、かつ、
論理値「1」の信号を形成してV I/D信号出力端子(V I/
D )248に出力する。
ス信号(α[13:4])に対応する有効ビットメモリ回路70の
図1に示すV/A MEM[i]回路34-iのメモリV[i]に論理値
「1」の信号が蓄積され、さらに、このV/A MEM[i]回路
34-iのメモリI/D A[i]に論理値「1」の信号が蓄積され
る。
てきた32ビット×4からなる情報がキャッシュミスによ
り読み出されてきたデータ情報である場合には、コント
ローラ30は、上述のCPU 10からのアクセスアドレス(α
[31:0])の一部であるアドレス信号(α[13:4])をアドレ
ス出力端子群(VA[9:0])242に出力し、かつ論理値「1」
の信号を形成してセット信号出力端子(SET)246に出力
し、かつ論理値「0」の信号を形成してV I/D信号出力
端子(V I/D )248に出力する。
ス信号(α[13:4])に対応する有効ビットメモリ回路70の
図1に示すV/A MEM[i]回路34-iのメモリV[i]に論理値
「1」の信号が蓄積され、さらに、このV/A MEM[i]回路
34-iのメモリI/D A[i]に論理値「0」の信号が蓄積され
る。
ついて説明する。この有効ビットメモリ回路70の回路構
成は図2に示されている。図2を参照すると、この有効
ビットメモリ回路70は、デコーダ回路32、VALID信号メ
モリ[0]回路(V/A MEM[0]回路)34-0〜VALID信号メモリ[1
023]回路(V/A MEM[1023]回路)34-1023およびセレクタ回
路36から構成されている。
回路34-1023の詳細は、図1に示されている。図1はア
ンドゲート(AND)回路38、マルチプレクサ(MUX)回路40、
属性情報(属性ビット)を蓄積するためのフリップフロ
ップ回路(I/D A[i]回路)42-i、選択信号生成回路44、マ
ルチプレクサ(MUX)回路46および有効であるか否かの情
報を蓄積するためのフリップフロップ回路(V[i]回路)48
-iから構成されている。なお、上記iは0〜1023の中の
いずれかである。
路70はクロック信号入力端子(CLK)200、リセット信号入
力端子(RESET)240、アドレス信号入力端子群(VA[9:0])2
42、VALID信号出力端子(RESET)244、セット信号入力端
子(SET)246、V I/D信号入力端子(V I/D )248、パージ信
号入力端子(PURGE)212および入力端子(P I/D)214 を有
している。
クロック信号は、信号線200を通してV/A MEM[0] 回路34
-0〜V/A MEM[1023]回路34-1023のクロック信号入力端子
(CLK)200に入力され、リセット信号入力端子(RESET)240
に入力したリセット信号は信号線240を通してV/A MEM
[0]回路34-0〜V/A MEM[1023]回路34-1023のリセット信
号入力端子(RESET)240に入力され、アドレス信号入力端
子群(VA[9:0])242に入力したアドレス信号は信号線群24
2を通してデコーダ回路32およびセレクタ回路36の10個
の端子からなる選択入力端子群(VA[9:0])242に入力され
る。
レクタ回路36のVALID信号出力端子(VALID)244から信号
線244を通して出力されたVALID信号が入力され、セット
信号入力端子(SET)246に入力したセット信号は信号線24
6を通してV/A MEM[0]回路34-0〜V/A MEM[1023]回路34-1
023のセット信号入力端子(SET)246に入力され、V I/D信
号入力端子(V I/D )248に入力したV I/D信号は信号線24
8を通してV/A MEM[0]回路34-0〜V/A MEM[1023]回路34-1
023のV I/D信号入力端子(V I/D )248に入力される。
したパージ信号は、信号線212を通してV/A MEM[0]回路3
4-0〜V/A MEM[1023]回路34-1023のパージ信号入力端子
(PURGE)212に入力され、入力端子(P I/D)214に入力した
信号は、信号線214を通してV/A MEM[0]回路34-0〜V/A M
EM[1023]回路34-1023の入力端子(P I/D)214に入力され
る。
て説明する。まずデコーダ回路32について述べる。デコ
ーダ回路32は、この例では10ビットの入力符号(VA[9:
0])にしたがって対応する単一出力WE[i]を生成する10
×1024デコーダである。つまりこの例では入力符号に対
応するただ一つの出力信号を論理値「1」にする回路で
ある。このデコーダ回路32はWE[0]〜WE[1023]からなる1
024個の出力端子を有し、これら出力端子は図2に示す
ようにそれぞれ対応するV/A MEM[0]回路34-0〜V/A MEM
[1023]回路34-1023のWE[0]〜WE[1023]の入力端子と接続
されている。
回路34-1023について述べる。これら回路のそれぞれは
図1に示すようになっているので、図1の回路図を用い
て説明する。
出力からなるAND回路である。この2つの入力端子のう
ちの1つの入力端子にはWE[i]入力端子からの信号が入
力され、もう1つの入力端子にはセット信号入力端子(S
ET)246からの信号が入力される。このAND回路38の1つ
の出力端子はマルチプレクサ回路40の選択入力端子S 0
に接続されている。
選択入力端子S0に入力される信号に基づいて0と1の
2つの入力端子に入力される信号のうち1入力だけを選
択して出力するデータセレクタである。0の入力端子は
後述するフリップフロップ回路(I/D A[i]回路)42-iの出
力に接続され、他の1の入力端子は上述したV I/D信号
入力端子(V I/D)248と接続されている。この回路の出力
端子はフリップフロップ回路(I/D A[i]回路)42-iのD入
力端子に接続されている。
プ回路(I/D A[i]回路)42-iはこの例ではD型フリップフ
ロップ回路から構成されている。この回路の出力端子は
上述したマルチプレクサ回路40の他に選択信号生成回路
44の所定の入力端子に接続されている。また、この回路
のCLK入力端子はクロック信号入力端子(CLK)200に接続
されている。
ルチプレクサ回路40、フリップフロップ[i]回路42-iに
より1つの機能部が形成されている。この機能部につい
て以下に述べる。すなわち、前にも触れたように、命令
フェッチ要求においてキャッシュミスした場合に、コン
トローラ30は、アドレス出力端子群(VA[9:0])242にキャ
ッシュミスにおけるアドレス信号(α[13:4])を出力し、
かつセット信号出力端子(SET)246に論理値「1」の信号
を出力し、かつV I/D信号出力端子(V I/D )248に論理値
「1」の信号を出力する。これにより、デコーダ回路32
は、アドレス信号(α[13:4])に対応する単一出力WE[i]
を論理値「1」にする。
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路40の選択入力端
子S0に入力されるから1の入力端子に入力された論理
値「1」の信号が選択されてフリップフロップ[i]回路
(I/D A[i]回路)42-iに入力される。フリップフロップ
[i]回路(I/D A[i]回路)42-iはこの入力した論理値
「1」の信号を蓄積する。つまり、命令フェッチ要求に
おいてキャッシュミスした場合、アドレス信号(α[13:
4])に対応するフリップフロップ[i]回路(I/D A[i]回路)
42-iには論理値「1」の信号が蓄積される。
ミスした場合について述べる。この場合、コントローラ
30はアドレス出力端子群(VA[9:0])242にキャッシュミス
におけるアドレス信号(α[13:4])を出力し、かつセット
信号出力端子(SET)246に論理値「1」の信号を出力し、
かつV I/D信号出力端子(V I/D )248に論理値「0」の信
号を出力する。これにより、デコーダ回路32は、アドレ
ス信号(α[13:4])に対応する単一出力WE[i]を論理値
「1」にする。
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路40の選択入力端
子S0に入力されるから1の入力端子に入力された論理
値「0」の信号が選択されてフリップフロップ[i]回路
(I/D A[i]回路)42-iに入力される。フリップフロップ
[i]回路(I/D A[i]回路)42-iはこの入力した論理値
「0」の信号を蓄積する。つまり、データリード要求に
おいてキャッシュミスした場合、アドレス信号(α[13:
4])に対応するフリップフロップ[i]回路(I/D A[i]回路)
42-iには論理値「0」の信号が蓄積される。
フリップフロップ[i]回路(I/D A[i]回路)42-iとから送
られる信号を入力する入力端子の他に、リセット信号入
力端子(RESET)240、セット信号入力端子(SET)246、パー
ジ信号入力端子(PURGE)212および入力端子(P I/D)214
を有している。
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P I/D)214は、有効ビットメモリ
回路70の対応するリセット信号入力端子(RESET)240、セ
ット信号入力端子(SET)246、パージ信号入力端子(PURG
E)212および入力端子(P I/D)214と接続されている。
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路44
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。
「0」とあるのは、下位ビットによる論理値が「0」で
そのすぐ上位のビットによる論理値が「0」であること
を表わし、select[1:0]が「1」とあるのは、下位ビッ
トによる論理値が「1」でそのすぐ上位のビットによる
論理値が「0」であることを表わし、select[1:0]が
「2」とあるのは、下位ビットによる論理値が「0」で
そのすぐ上位のビットによる論理値が「1」であること
を表わしている。
生成回路44のリセット信号入力端子(RESET)240に論理値
「1」の情報が入力した場合には、他の入力信号がどの
ような信号であれ、そのselect[1:0]から「0」の信号
が出力される。これにより最終的には上述したように、
V[0]回路48-0からV[1023]回路48-1023におけるメモリの
全ビットが「0」になる。すなわち、システムの初期化
が行なわれる。
択信号生成回路44のリセット信号入力端子(RESET)240に
論理値「0」の情報が入力し、かつパージ信号入力端子
(PURGE)212に論理値「1」の情報が入力し、かつ入力端
子(P I/D)214に無効化するラインの種別を示す論理値
「1」の情報が入力した場合であり、かつ、フリップフ
ロップ[i]回路(I/D A[i]回路)42-iのいずれかに蓄積さ
れる情報が論理値「1」である場合には、他の入力信号
がどのような信号であれ、そのselect[1:0]から「0」
の信号が出力される。これにより最終的には上記いずれ
かに対応するV[i]回路48-iにおけるメモリのビットが
「0」になる。すなわち、命令ラインの無効化要求が発
生した場合に、命令フェッチ要求でキャッシュミスした
ラインに対応するV[i]回路48-iのビットを論理値「0」
にして無効化する(図7)。
択信号生成回路44のリセット信号入力端子(RESET)240に
論理値「0」の情報が入力し、かつパージ信号入力端子
(PURGE)212に論理値「1」の情報が入力し、かつ入力端
子(P I/D)214に無効化するラインの種別を示す論理値
「0」の情報が入力した場合であり、かつ、フリップフ
ロップ[i]回路(I/D A[i]回路)42-iのいずれかに蓄積さ
れる情報が論理値「0」である場合には、他の入力信号
がどのような信号であれ、そのselect[1:0]から「0」
の信号が出力される。これにより最終的には上記いずれ
かに対応するV[i]回路48-iにおけるメモリのビットが
「0」になる。すなわち、データラインの無効化要求が
発生した場合に、データリード要求でキャッシュミスし
たラインに対応するV[i]回路48-iのビットを論理値
「0」にして無効化する(図8)。
択信号生成回路44のリセット信号入力端子(RESET)240に
論理値「0」の情報が入力し、かつ、セット信号入力端
子(SET)246に論理値「1」の情報が入力し、かつWE[i]
入力端子のいずれかの入力端子に論理値「1」の情報が
入力し、かつパージ信号入力端子(PURGE)212に論理値
「0」の情報が入力した場合には、他の入力信号がどの
ような信号であれ、そのselect[1:0]から「1」の信号
が出力される。
応するV[i]回路48-iにおけるメモリのビットが「1」に
なる。すなわち、α[31:0]番地に対する命令フェッチ要
求/データリード要求においてキャッシュミスした場
合、ラインフィルを行なって、データメモリ回路82のデ
ータメモリ/タグメモリ回路80のタグメモリのα[13:4]
番地にラインフィルデータ/ラインフィルアドレスを格
納するが、同時にV[i]回路48-iにおけるメモリに論理値
「1」を格納して有効化する(図6)。
のうちの下位ビットの出力端子はマルチプレクサ回路46
の選択入力端子S0に接続され、またその上位のビット
の出力端子はマルチプレクサ回路46の選択入力端子S1
に接続されている。
選択入力端子S0およびS1に入力される信号に基づい
て0と1と2の3つの入力端子に入力される信号のうち
1入力だけを選択して出力するデータセレクタである。
0の入力端子には論理値「0」の情報が入力され、1の
入力端子には論理値「1」の情報が入力され、2の入力
端子には後述するフリップフロップ回路(V[i]回路)48-i
の出力の信号が入力される。このマルチプレクサ回路46
の出力端子は、フリップフロップ回路(V[i]回路)48-iの
D入力端子に接続されている。
蓄積するためのフリップフロップ回路(V[i]回路)48-iは
この例ではD型フリップフロップ回路から構成されてい
る。このV[i]回路48-iの各々出力端子はそれぞれ対応す
るマルチプレクサ回路46の他にセレクタ回路36のそれぞ
れ対応する入力端子0〜1023に接続されている。またこ
のV[i]回路48-iのCLK入力端子は上述した有効ビットメ
モリ回路70のクロック信号入力端子(CLK)200に接続され
ている。
は10ビットの入力符号(VA[9:0])つまり10本の制御線
によって1024本の入力信号のうちの1入力だけを選択出
力する1024×1マルチプレクサである。このセレクタ回
路36は、VALID出力端子を有し、この出力端子は、上述
した有効ビットメモリ回路70のVALID信号出力端子(VALI
D)244と接続されている。
タの書き込み時に、キャッシュヒット、キャッシュミス
した場合の動作について述べる。
アクセスアドレス(α[31:0])202を受けると、その一部
であるアドレス(α[13:4])をアドレス出力端子群(TA[9:
0])280、アドレス出力端子群(VA[9:0])242を通してタグ
メモリ回路80のアドレス入力端子群(TA[9:0])280、有効
ビットメモリ回路70のアドレス入力端子群(VA[9:0])242
に送る。また上述の動作に並行して、コントローラ30は
CPU 10からの書き込み用のデータ(WD[31:0])204を受け
る。
レス(α[13:4])に基づくそのメモリに記憶されるアドレ
ス(α[31:14])を読み出しアドレスデータ出力端子群(TQ
[17:0])284に送る。このアドレスデータ出力端子群(TQ
[17:0])284に読み出されたアドレス(α[31:14])はコン
トローラ30のアドレスデータ入力端子群(TQ[17:0])284
に送られる。
80からアドレスデータを読み出す場合に、上述したアド
レス出力端子群(TA[9:0])280からアドレス信号を出力す
る他に、この例ではチップイネーブル出力端子(TCE)286
から論理値「0」の信号を出力し、かつアウトプットイ
ネーブル出力端子(TOE)288から論理値「0」の信号を出
力し、かつライトイネーブル出力端子(TWE)290から論理
値「1」の信号を出力する。
メモリ回路70は、入力したアドレス(α[13:4])に基づく
情報が有効である場合にはその出力端子(VALID)244を介
してコントローラ30の入力端子(VALID)244に論理値
「1」の信号を送り、また無効の場合には論理値「0」
の信号を送る。
リ回路70から送られる有効または無効の情報を受信する
場合に、上述したアドレス出力端子群(VA[9:0])242から
アドレス信号を出力する他に、この例ではリセット信号
出力端子(RESET)240から論理値「0」の信号を出力し、
かつセット信号出力端子(SET)246から論理値「0」の信
号を出力するのでよい。またこの場合、CPU 10は、本実
施例ではそのパージ信号出力端子(PURGE)212から論理値
「0」の信号を出力するとともに、その出力端子(P I/
D)214から論理値「0」または「1」の信号を出力する
のでよい。
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 10からのアクセスアドレス(α[31:
0])の一部であるアドレス(α[31:14])を比較する。この
比較において、これらアドレスが一致していることおよ
び有効ビットメモリ回路70からの信号244が論理値
「1」の信号であれば、コントローラ30はキャッシュヒ
ットであると判定し、またこの比較において一致してい
なければ、キャッシュミスであると判定する。
トローラ30の動作を説明する。すなわちコントローラ30
は、CPU 10から送られてきた書き込み用のデータ(WD[3
1:0])204をデータメモリ回路82および外部メモリ回路96
に格納せねばならないライトスルー方式における指示で
あることを知る。
から送られてきた書き込み用のデータ(WD[31:0])204を
データ出力端子群(DD[127:0])294およびデータ出力端子
群(ED[31:0])222を通してデータメモリ回路82のデータ
入力端子群(DD[127:0])294および外部メモリ回路96のデ
ータ入力端子群(D[31:0])222に送る。
は、CPU 10から送られたアクセスアドレス(α[31:0])20
2の一部であるアドレス(α[13:4])をアドレス出力端子
群(DA[9:0])292を通してデータメモリ回路82のアドレス
入力端子群(DA[31:0])292に送るとともに、CPU 10から
送られたアクセスアドレス(α[31:0])202に基づくアド
レス(α[31:0])をアドレス出力端子群(EA[31:0])220を
通して外部メモリ回路96のアドレス入力端子群(A[31:
0])220に送る。
96にデータを書き込む場合に、上述したアドレスおよび
データを出力する他に、この例ではチップイネーブル出
力端子(ECE)226から論理値「0」の信号を出力し、かつ
アウトプットイネーブル出力端子(EOE)228から論理値
「1」の信号を出力し、かつライトイネーブル出力端子
(EWE)230から論理値「0」の信号を出力する。
回路82にデータを書き込む場合に、上述したアドレスお
よびデータを出力する他に、この例ではチップイネーブ
ル出力端子(DCE)298から論理値「0」の信号を出力し、
かつアウトプットイネーブル出力端子(DOE)300から論理
値「1」の信号を出力し、かつライトイネーブル出力端
子(DWE)302から論理値「0」の信号を出力する。
リ回路82および外部メモリ回路96のメモリ領域にCPU 10
から送られてきた書き込み用のデータ(WD[31:0])204が
格納される。
ントローラ30の動作を説明する。すなわち、コントロー
ラ30は、CPU 10から送られてきた書き込み用のデータ(W
D[31:0])204を外部メモリ回路96に格納せねばならない
ことを示す指示であることを知る。つまりこれは、キャ
ッシュ部90と外部メモリ回路96との間でラインフィルを
行なわないノーライトアロケート方式の動作ということ
になる。したがって、データメモリ回路82へのデータの
書き込みは行なわない。
から送られてきた書き込み用のデータ(WD[31:0])204を
データ出力端子群(ED[31:0])222を通して外部メモリ回
路96のデータ入力端子群(D[31:0])222に送る。また、こ
れに並行して、コントローラ30はCPU 10から送られたア
クセスアドレス(α[31:0])202に基づくアドレス(α[31:
0])をアドレス出力端子群(EA[31:0])220を通して外部メ
モリ回路96のアドレス入力端子群(A[31:0])220に送る。
96にデータを書き込む場合に、上述したアドレスおよび
データを出力する他に、この例ではチップイネーブル出
力端子(ECE)226から論理値「0」の信号を出力し、かつ
アウトプットイネーブル出力端子(EOE)228から論理値
「1」の信号を出力し、かつライトイネーブル出力端子
(EWE)230から論理値「0」の信号を出力する。
路96のメモリ領域にCPU 10から送られてきた書き込み用
のデータ(WD[31:0])204が格納される。
はα[31:0]番地の命令フェッチ要求またはデータリード
要求においてキャッシュミスした場合の動作と、その後
に命令ラインまたはデータラインを無効化する場合の動
作について図1〜図6を用いて説明する。
命令フェッチサイクルにおいて読み出しを行なうアドレ
ス信号α[31:0](図6(b))をアドレス信号出力端子群(CA
[31:0])202から出力し、命令フェッチ要求であることを
示す論理値「1」の信号(図6(d))をアクセスの種別を
示す信号の出力端子(I/D)208から出力する。
10はメモリリードサイクルにおいて読み出しを行なうア
ドレス信号α[31:0] (図6(b))をアドレス信号出力端子
群(CA[31:0])202から出力し、データリード要求である
ことを示す論理値「0」の信号(図6(d))をアクセスの
種別を示す信号の出力端子(I/D)208から出力する。
種別を示す信号208を受けることにより、CPU 10からの
要求が命令フェッチ要求なのか、あるいはデータリード
要求なのかを知る。
ドレス(α[31:0])202を受けると、その一部であるアド
レス(α[13:4])をアドレス出力端子群(TA[9:0])280、ア
ドレス出力端子群(VA[9:0])242を通してタグメモリ回路
80のアドレス入力端子群(TA[9:0])280、有効ビットメモ
リ回路70のアドレス入力端子群(VA[9:0])242に送る。
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ30のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ30は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
70は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、その出力端子(VALID)244を介し
てコントローラ30の入力端子(VALID)244に論理値「0」
の信号を送る。
リ回路70から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子(P I/D)214から論理値「0」または「1」の信号を
出力する。
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 10からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路
70からのVALID信号244が論理値「0」の信号であること
から、コントローラ30はキャッシュミスであると判定す
る。
モリ回路96との間でラインの命令やデータのやり取りを
行なうラインフィルを行なう。まずコントローラ30は外
部メモリ回路96から上述したCPU 10からのアクセスアド
レス(α[31:0])に基づく情報を読み出す信号(図6
(f))を形成して外部メモリ回路96に出力する。なおコ
ントローラ30は外部メモリ回路96から命令やデータを読
み出す場合に、上述したアドレス出力端子群(EA[31:0])
220からアドレス信号(図6(f))を出力する他に、上述
した信号を出力する。
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路70に対し以下に示すような処
理を行なう。
理を行なう。コントローラ30は上記CPU 10からのアクセ
スアドレス(α[31:0])の一部であるアドレス信号(α[1
3:4])をアドレス出力端子群(TA[9:0])280に出力し、か
つ上記アクセスアドレス(α[31:0])の一部であるアドレ
ス信号(α[31:14])をアドレスデータ出力端子群(TD[17:
0])282に出力する。その他に上述したような信号を出力
する。これによりタグメモリ回路80のSRAMには上記アド
レス信号(α[31:14])すなわちラインフィルアドレスが
蓄積される。
は次のような処理を行なう。コントローラ30は上記CPU
10からのアクセスアドレス(α[31:0])の一部であるアド
レス信号(α[13:4])をアドレス出力端子群(DA[9:0])292
に出力し、かつ上記外部メモリ回路96から読み出されて
きた128ビット(32ビット×4)からなる命令情報また
はデータ情報(図6(g))をデータ出力端子群(DD[127:
0])294に出力する。その他に上述したような信号を出力
する。これによりデータメモリ回路82のSRAMには上記命
令情報またはデータ情報すなわちラインフィルデータが
蓄積される。
回路82の処理に並行して、有効ビットメモリ回路70に対
しは次のような処理を行なう。
出されてきた情報がキャッシュミスによる命令情報であ
る場合、コントローラ30は上記CPU 10からのアクセスア
ドレス(α[31:0])の一部であるアドレス信号(α[13:4])
(図6(h))をアドレス出力端子群(VA[9:0])242に出力
し、かつ論理値「1」の信号(図6(i))を形成してセッ
ト信号出力端子(SET)246に出力し、かつ論理値「1」の
信号(図6(j))を形成してV I/D信号出力端子(V I/D )24
8に出力する。
に対応する有効ビットメモリ回路70の図1に示すV/A ME
M[i]回路34-iのV[i]回路48-iのメモリには論理値「1」
の信号が蓄積され、さらにこのV/A MEM[i]回路34-iのI/
D A[i]回路42-iのメモリには論理値「1」の信号が蓄積
される。なお、この場合の有効ビットメモリ回路70の各
部の詳細な動作については上述による。
てきた情報がキャッシュミスにより読み出されてきたデ
ータ情報である場合には、コントローラ30は、上述のCP
U 10からのアクセスアドレス(α[31:0])の一部であるア
ドレス信号(α[13:4]) (図6(h))をアドレス出力端子群
(VA[9:0])242に出力し、かつ論理値「1」の信号(図6
(i))を形成してセット信号出力端子(SET)246に出力し、
かつ論理値「0」の信号(図6(j))を形成してV I/D信号
出力端子(V I/D )248に出力する。
に対応する有効ビットメモリ回路70の図1に示すV/A ME
M[i]回路34-iのV[i]回路48-iのメモリには論理値「1」
の信号が蓄積され、さらにこのV/A MEM[i]回路34-iのI/
D A[i]回路42-iのメモリには論理値「0」の信号が蓄積
される。
はデータラインを無効化する場合の動作について説明す
る。
はパージ信号出力端子(PURGE)212から論理値「1」の無
効化要求信号(図7(b))を出力し、出力端子(P I/D)21
4から無効化を行なうラインが命令ラインであることを
示す論理値「1」の信号(図7(c))を出力する。
は、CPU 10はパージ信号出力端子(PURGE)212から論理値
「1」の無効化要求信号(図8(b))を出力し、出力端
子(P I/D)214から無効化を行なうラインがデータライン
であることを示す論理値「0」の信号(図8(c))を出
力する。
は、有効ビットメモリ回路70の選択信号生成回路44のパ
ージ信号入力端子(PURGE)212には論理値「1」の情報が
入力され、入力端子(P I/D)214には無効化するラインの
種別を示す論理値「1」の情報が入力される。
回路44のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路44およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路70のデコーダ回路32は選択信号生成回路
44およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
リップフロップ[i]回路(I/D A[i]回路)42-iに蓄積され
る情報が論理値「1」である場合には、有効ビットメモ
リ回路70の選択信号生成回路44の対応する入力端子には
論理値「1」の情報が入力される。
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P I/D)214には無効化するラインの種別を示す
論理値「1」の情報が入力され、リセット信号入力端子
(RESET)240には論理値「0」の情報が入力され、セット
信号入力端子(SET)246には論理値「0」かあるいは論理
値「1」が入力され、WE[i]入力端子には論理値「0」
の情報が入力され、フリップフロップ[i]回路(I/D A[i]
回路)42-iの出力と接続される入力端子には論理値
「1」の情報が入力される。
44はその出力select[1:0]から「0」の信号を出力する
から、最終的には対応するV[i]回路48-iのメモリに蓄積
される情報を論理値「0」にする。すなわち、命令ライ
ンの無効化要求が発生した場合に、命令フェッチ要求で
キャッシュミスしたラインに対応するV[i]回路48-iのメ
モリに蓄積される情報を論理値「0」にして無効化する
(図7)。
ビットメモリ回路70の選択信号生成回路44のパージ信号
入力端子(PURGE)212には論理値「1」の情報が入力さ
れ、入力端子(P I/D)214には無効化するラインの種別を
示す論理値「0」の情報が入力される。
回路44のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路44およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路70のデコーダ回路32は選択信号生成回路
44およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
リップフロップ[i]回路(I/D A[i]回路)42-iに蓄積され
る情報が論理値「0」である場合には、有効ビットメモ
リ回路70の選択信号生成回路44の対応する入力端子には
論理値「0」の情報が入力される。
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P I/D)214には無効化するラインの種別を示す
論理値「0」の情報が入力され、リセット信号入力端子
(RESET)240には論理値「0」の情報が入力され、セット
信号入力端子(SET)246には論理値「0」かあるいは論理
値「1」が入力され、WE[i]入力端子には論理値「0」
の情報が入力され、フリップフロップ[i]回路(I/D A[i]
回路)42-iの出力と接続される入力端子には論理値
「0」の情報が入力される。
44はその出力select[1:0]から「0」の信号を出力する
から、最終的には対応するV[i]回路48-iのメモリに蓄積
される情報を論理値「0」にする。すなわちデータライ
ンの無効化要求が発生した場合に、データリード要求で
キャッシュミスしたラインに対応するV[i]回路48-iのメ
モリに蓄積される情報を論理値「0」にして無効化する
(図8)。
ェッチ要求またはデータリード要求においてキャッシュ
ミスした命令ラインまたはデータラインをクロック信号
1サイクル分の時間にて無効化することができる。
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。
メモリにおける部分無効化装置の適用される第2の実施
例のシステムが示されている。この第2の実施例はキャ
ッシュメモリの全ラインのうち、ある特定のメモリ空間
からラインフィルしたラインのみをクロック信号の1サ
イクル分の時間にて無効化するシステムである。
ステムは、CPU 12と、キャッシュコントローラ31、有効
ビットメモリ回路72、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部92と、外部メモリ回路
96とから構成されている。
同じ参照符号の付されているものは図3のものと基本的
には同じであるから、それについての説明は省略する。
ムのCPU 10と異なるところを説明する。CPU 12はCPU 10
のP I/D出力端子214に代わって4個の出力端子からなる
P REG[3:0] 出力端子群216を有している。CPU 12は無効
化するメモリ空間のリージョン番号を表わす信号を形成
して上記P REG[3:0] 出力端子群216から出力する。P REG
[3:0] 出力端子群216は信号線群216を介して有効ビット
メモリ回路72のP REG[3:0] 入力端子群216に接続されて
いる。
る。リージョンとは外部メモリ回路96におけるメモリ空
間をこの例では以下に示すように16個の空間に分割して
なるそれぞれの空間のことである。j番目の空間をリー
ジョンjと定義する。
コントローラ30と異なるところを説明する。コントロー
ラ31はコントローラ30のV I/D出力端子248に代わってV
REG[3:0] 出力端子群250を有している。コントローラ31
はラインフィルアドレスのリージョン番号を表わす信号
を形成してV REG[3:0] 出力端子群250に出力する。リー
ジョン番号を表わす信号は、この例では、受けたアドレ
ス信号群(CA[31:0])202のうちの上位側の4ビット(16
分割)でよい。V REG[3:0] 出力端子群250は信号線群25
0を介して有効ビットメモリ回路72のV REG[3:0]入力端
子群250に接続されている。
る。この有効ビットメモリ回路72の回路構成は図10に示
されている。図10を参照すると、この有効ビットメモリ
回路72は、デコーダ回路32、VALID信号メモリ[0]回路(V
/A MEM[0]回路)52-0〜VALID信号メモリ[1023]回路(V/A
MEM[1023]回路)52-1023およびセレクタ回路36から構成
されている。
同じ参照符号の付されているものは図2のものと基本的
には同じであるから、それについての説明は省略する。
回路52-1023の詳細は、図11に示されている。図11はア
ンドゲート(AND)回路38、マルチプレクサ(MUX)回路54、
属性情報(属性ビット)を蓄積するためのフリップフロ
ップ[i]回路(REG A[i]回路)56-i、選択信号生成回路5
8、マルチプレクサ(MUX)回路46および有効であるか否か
の情報を蓄積するためのフリップフロップ[i]回路(V[i]
回路)48-iから構成されている。なお、上記iは0〜102
3の中のいずれかである。
同じ参照符号の付されているものは図1のものと基本的
には同じであるから、それについては説明を省く。
選択入力端子S0に入力される信号に基づいて0と1の
2つの入力端子に入力される信号のうち1入力だけを選
択して出力する回路が4回路あるデータセレクタであ
る。4個の端子からなる0の入力端子群の各々は後述す
るフリップフロップ[i]回路(REG A[i]回路)56-iの4個
のフリップフロップ回路のうちの対応するフリップフロ
ップ回路の出力と接続され、他の4個の端子からなる1
の入力端子群の各々は上述したV REG信号入力端子群(V
REG)250の対応するV REG信号入力端子と接続されてい
る。
プフロップ[i]回路(REG A[i]回路)56-iの4つのフリッ
プフロップ回路のうちの対応するフリップフロップ回路
のD入力端子に接続されている。
フロップ[i]回路(REG A[i]回路)56-iはこの例ではD型
フリップフロップ回路、4回路から構成されている。こ
の4回路の各々出力端子は上述したマルチプレクサ回路
54の他に選択信号生成回路58の所定の対応する入力端子
に接続されている。また、この4回路のCLK入力端子は
クロック信号入力端子(CLK)200に接続されている。
ルチプレクサ回路54およびフリップフロップ[i]回路(RE
G A[i]回路)56-i により1つの機能部が形成されてい
る。この機能部について以下に述べる。
ード要求においてキャッシュミスした場合に、コントロ
ーラ31は、ラインフィルを行なうとともに、アドレス出
力端子群(VA[9:0])242にキャッシュミスにおけるアドレ
ス信号(α[13:4])を出力し、かつセット信号出力端子(S
ET)246に論理値「1」の信号を出力し、かつV REG信号
出力端子群(V REG[3:0])250にリージョン番号を表わす
4ビットの信号を出力する。これにより、デコーダ回路
32は、アドレス信号(α[13:4])に対応する単一出力WE
[i]を論理値「1」にする。
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路54の選択入力端
子S0に入力されるから1の入力端子群に入力された上
記リージョン番号を表わす4ビットの信号が選択されて
フリップフロップ[i]回路(REG A[i]回路)56-iの4つの
フリップフロップ回路にそれぞれ入力される。
入力したビット信号を蓄積する。つまり、命令フェッチ
要求またはデータリード要求においてキャッシュミスし
た場合には、フリップフロップ[i]回路(REG A[i]回路)5
6-iにはリージョン番号を表わす4ビットの信号が蓄積
される。
フリップフロップ[i]回路(REG A[i]回路)56-iとから送
られる信号を入力する入力端子の他に、リセット信号入
力端子(RESET)240、セット信号入力端子(SET)246、パー
ジ信号入力端子(PURGE)212および入力端子(P REG[3:0])
216 を有している。
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P REG[3:0])216 は有効ビットメ
モリ回路70の対応するリセット信号入力端子(RESET)24
0、セット信号入力端子(SET)246、パージ信号入力端子
(PURGE)212および入力端子(P REG[3:0])216 と接続され
ている。
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路58
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。これら出力端子は上
記第1の実施例と同じようにマルチプレクサ回路46に接
続されている。
はα[31:0]番地の命令フェッチ要求またはデータリード
要求においてキャッシュミスした場合の動作と、その後
に特定のメモリ空間(リージョン番号)からラインフィ
ルした命令ラインまたはデータラインを無効化する場合
の動作について図6、図9〜図12を用いて説明する。
の実施例のCPU 10と同様に、命令フェッチサイクルにお
いて読み出しを行なうアドレス信号α[31:0](図6(b))
をアドレス信号出力端子群(CA[31:0])202から出力し、
命令フェッチ要求であることを示す論理値「1」の信号
(図6(d))をアクセスの種別を示す信号の出力端子(I/D)
208から出力し、またデータ情報を読み出す場合、CPU 1
2は、メモリリードサイクルにおいて読み出しを行なう
アドレス信号α[31:0] (図6(b))をアドレス信号出力端
子群(CA[31:0])202から出力し、データリード要求であ
ることを示す論理値「0」の信号(図6(d))をアクセス
の種別を示す信号の出力端子(I/D)208から出力する。
のアクセスの種別を示す信号208を受けることにより、C
PU 12からの要求が命令フェッチ要求なのか、あるいは
データリード要求なのかを知る。
ドレス(α[31:0])202を受けると、第1の実施例のコン
トローラ30と同様に、その一部であるアドレス(α[13:
4])をアドレス出力端子群(TA[9:0])280、アドレス出力
端子群(VA[9:0])242を通してタグメモリ回路80のアドレ
ス入力端子群(TA[9:0])280、有効ビットメモリ回路72の
アドレス入力端子群(VA[9:0])242に送る。
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ31のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ31は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
72は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、第1の実施例の有効ビットメモ
リ回路70と同様に、その出力端子(VALID)244を介してコ
ントローラ31の入力端子(VALID)244に論理値「0」の信
号を送る。
リ回路72から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子群(P REG)216から論理値「0」または「1」のいず
れの信号を出力するのでよい。
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 12からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路
72からのVALID信号244が論理値「0」の信号であること
から、コントローラ31はキャッシュミスであると判定す
る。
トローラ30と同様に、外部メモリ回路96との間でライン
の命令やデータのやり取りを行なうラインフィルを行な
う。まずコントローラ32は外部メモリ回路96から上述し
たCPU12からのアクセスアドレス(α[31:0])に基づく情
報を読み出す信号(図6(f))を形成して外部メモリ回
路96に出力する。なおコントローラ31は外部メモリ回路
96から命令やデータを読み出す場合に、上述したアドレ
ス出力端子群(EA[31:0])220からアドレス信号(図6
(f))を出力する他に、上述した信号を出力する。
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路72に対し以下に示すような処
理を行なう。
データメモリ回路82に対する処理はコントローラ30と同
様なので、その説明は省略する。
回路82の処理に並行して、有効ビットメモリ回路72に対
し次のような処理を行なう。
されてきた情報がキャッシュミスによる命令情報または
データ情報である場合、コントローラ31は上記CPU 12か
らのアクセスアドレス(α[31:0])の一部であるアドレス
信号(α[13:4]) (図6(h))をアドレス出力端子群(VA[9:
0])242に出力し、かつ論理値「1」の信号(図6(i))を
形成してセット信号出力端子(SET)246に出力し、かつア
クセスアドレス(α[31:0])の一部であるリージョン番号
を表わす信号(α[31:28])を形成してV REG信号出力端子
群(V REG[3:0])250に出力する。
に対応する有効ビットメモリ回路72の図11に示すV/A ME
M[i]回路52-iのV[i]回路48-iのメモリに論理値「1」の
信号が蓄積され、さらにこのV/A MEM[i]回路52-iのREG
A[i]回路56-iのメモリにリージョン番号を表わす信号
(α[31:28])が蓄積される。なお、この場合の有効ビッ
トメモリ回路72の各部の詳細な動作については上述によ
る。
含まれるラインを無効化する場合の動作について説明す
る。
る場合には、CPU 12は、パージ信号出力端子(PURGE)212
から論理値「1」の無効化要求信号を出力し、かつ出力
端子(P REG[3:0])216から無効化を行なうラインの存在
するリージョンjの信号(メモリ空間のリージョン番号
を表わすアドレス信号(α[31:28]))を出力する。
択信号生成回路58のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P REG[3:0])
216には無効化するラインの存在するリージョン番号を
表わすアドレス信号(α[31:28]))が入力される。
回路58のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路58およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路72のデコーダ回路32は選択信号生成回路
58およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
リップフロップ[i]回路(REG A[i]回路)56-iに蓄積され
る情報がリージョン番号を表わすアドレス信号(α[31:2
8]))である場合には、有効ビットメモリ回路72の選択
信号生成回路58の対応する入力端子には、上述のリージ
ョン番号を表わすアドレス信号(α[31:28]))が入力さ
れる。
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P REG[3:0])216には無効化するラインの存在
するリージョンjを表わすアドレス信号(α[31:28]))
が入力され、リセット信号入力端子(RESET)240には論理
値「0」の情報が入力され、またセット信号入力端子(S
ET)246には論理値「0」かあるいは論理値「1」が入力
され、WE[i]入力端子には論理値「0」の情報が入力さ
れ、フリップフロップ[i]回路(REG A[i]回路)56-iの出
力と接続される入力端子には無効化するラインの存在す
るリージョンjを表わすアドレス信号(α[31:28]))が
入力される。
力select[1:0]から「0」の信号を出力するから、最終
的には対応するV[i]回路48-iのメモリに蓄積される情報
を論理値「0」にする。すなわち、無効化するラインの
存在するリージョンjに対する無効化要求が発生した場
合に、命令フェッチ要求またはデータリード要求でキャ
ッシュミスしたラインの存在するリージョンjに対応す
るV[i]回路48-iのメモリに蓄積される情報を論理値
「0」にして無効化する。
ェッチ要求またはデータリード要求においてキャッシュ
ミスしたリージョンjにおける命令ラインまたはデータ
ラインをクロック信号1サイクル分の時間にて無効化す
ることができる。
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。
モリ空間に分割したが、システムによってはたとえば8
個や32個のメモリ空間に分割してもよい。
メモリにおける部分無効化装置の適用される第3の実施
例のシステムが示されている。この第3の実施例は、キ
ャッシュメモリの全ラインのうち、ある特権レベルでア
クセスされるメモリ空間に属するラインのみをクロック
信号の1サイクル分の時間にて無効化するシステムであ
る。
ステムは、CPU 14と、キャッシュコントローラ33、有効
ビットメモリ回路74、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部94と、外部メモリ回路
96とから構成されている。
同じ参照符号の付されているものは図3のものと基本的
には同じであるから、それについての説明は省略する。
ムのCPU 10と異なるところを説明する。CPU 14はCPU 10
のP I/D出力端子214に代わってP PRIV出力端子218を有
している。CPU 14は自CPU 14の現在の特権レベルを表わ
す信号を形成して上記P PRIV出力端子218から出力す
る。P PRIV出力端子218は信号線218を介してコントロー
ラ33および有効ビットメモリ回路74のP PRIV 入力端子2
18に接続されている。
て説明する。CPU 14の現在の特権レベルにはスーパバイ
ザモード状態の場合とユーザモード状態の場合がある。
この例ではCPU 14の現在の特権レベルがスーパバイザモ
ード状態である場合には論理値「1」の信号をP PRIV出
力端子218から出力し、またユーザモード状態である場
合には論理値「0」の信号をP PRIV出力端子218から出
力する。
のシステムのコントローラ30と異なるところを説明す
る。コントローラ33はコントローラ30のV I/D出力端子2
48に代わってV PRIV出力端子252を有している。コント
ローラ33はラインフィルアドレスにおける特権レベルの
状態がスーパバイザモードである場合には論理値「1」
の信号をV PRIV出力端子252から出力し、また、ユーザ
モードである場合には論理値「0」の信号をV PRIV出力
端子252に出力する。V PRIV出力端子252は信号線252を
介して有効ビットメモリ回路74のV PRIV入力端子252に
接続されている。
る。この有効ビットメモリ回路74の回路構成は図14に示
されている。図14を参照すると、この有効ビットメモリ
回路74は、デコーダ回路32、VALID信号メモリ[0]回路(V
/A MEM[0]回路)60-0〜VALID信号メモリ[1023]回路(V/A
MEM[1023]回路)60-1023およびセレクタ回路36から構成
されている。
同じ参照符号の付されているものは図2のものと基本的
には同じであるから、それについての説明は省略する。
回路60-1023の詳細は、図15に示されている。図15は、
アンドゲート(AND)回路38、マルチプレクサ(MUX)回路6
2、フリップフロップ[i]回路(PRIV A[i]回路)64-i、選
択信号生成回路66、マルチプレクサ(MUX)回路46および
有効であるか否かの情報を蓄積するためのフリップフロ
ップ[i]回路(V[i]回路)48-iから構成されている。な
お、上記iは0〜1023の中のいずれかである。
同じ参照符号が付されているものは図1のものと基本的
には同じであるから、それについては説明を省く。
選択入力端子S0に入力される信号に基づいて0と1の
2つの入力端子に入力される信号のうち1入力だけを選
択して出力するデータセレクタである。0の入力端子は
後述するフリップフロップ回路(PRIV A[i]回路)64-iの
出力に接続され、他の1の入力端子は上述したV PRIV信
号入力端子(V PRIV)252と接続されている。この回路の
出力端子はフリップフロップ[i]回路(PRIV A[i]回路)64
-iのD入力端子に接続されている。
プ[i]回路(PRIV A[i]回路)64-iはこの例ではD型フリッ
プフロップ回路から構成されている。この回路の出力端
子は上述したマルチプレクサ回路62の他に選択信号生成
回路66の所定の入力端子に接続されている。また、この
回路のCLK入力端子は有効ビットメモリ回路74のクロッ
ク信号入力端子(CLK)200に接続されている。
ルチプレクサ回路62、フリップフロップ[i]回路64-iに
より1つの機能部が形成されている。この機能部につい
て以下に述べる。すなわち、命令フェッチ要求およびデ
ータリード要求においてスーパバイザモード状態にてキ
ャッシュミスした場合には、コントローラ34はアドレス
出力端子群(VA[9:0])242にキャッシュミス時におけるア
ドレス信号(α[13:4])を出力し、かつセット信号出力端
子(SET)246に論理値「1」の信号を出力し、かつV PRIV
信号出力端子(V PRIV)252に論理値「1」の信号を出力
する。これにより、デコーダ回路32は、アドレス信号
(α[13:4])に対応する単一出力WE[i]を論理値「1」に
する。
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号は、マルチプレクサ回路62の選択入力
端子S0に入力されるから1の入力端子に入力された論
理値「1」の信号が選択されてフリップフロップ[i]回
路(PRIV A[i]回路)64-iに入力される。フリップフロッ
プ[i]回路(PRIV A[i]回路)64-iはこの入力した論理値
「1」の信号を蓄積する。つまり命令フェッチ要求およ
びデータリード要求においてスーパバイザモード状態に
てキャッシュミスした場合には、フリップフロップ[i]
回路(PRIV A[i]回路)64-iには論理値「1」の信号が蓄
積される。
要求においてユーザモード状態にてキャッシュミスした
場合について述べる、この場合は、コントローラ33はア
ドレス出力端子群(VA[9:0])242にキャッシュミス時にお
けるアドレス信号(α[13:4])を出力し、かつセット信号
出力端子(SET)246に論理値「1」の信号を出力し、かつ
V PRIV信号出力端子(V PRIV)252に論理値「0」の信号
を出力する。これにより、デコーダ回路32は、アドレス
信号(α[13:4])に対応する単一出力WE[i]を論理値
「1」にする。
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号は、マルチプレクサ回路62の選択入力
端子S0に入力されるから1の入力端子に入力された論
理値「0」の信号が選択されてフリップフロップ[i]回
路(PRIV A[i]回路)64-iに入力される。フリップフロッ
プ[i]回路(PRIV A[i]回路)64-iはこの入力した論理値
「0」の信号を蓄積する。つまり命令フェッチ要求およ
びデータリード要求においてユーザモード状態にてキャ
ッシュミスした場合には、フリップフロップ[i]回路(PR
IV A[i]回路)64-iには論理値「0」の信号が蓄積され
る。
リップフロップ[i]回路(PRIV A[i]回路)64-iとから送ら
れる信号を入力する入力端子の他に、リセット信号入力
端子(RESET)240、セット信号入力端子(SET)246、パージ
信号入力端子(PURGE)212および入力端子(P PRIV)218 を
有している。
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P PRIV)218 は有効ビットメモリ
回路74の対応するリセット信号入力端子(RESET)240、セ
ット信号入力端子(SET)246、パージ信号入力端子(PURG
E)212および入力端子(P PRIV)218と接続されている。
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路66
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。これら出力端子は上
記第1の実施例と同じようにマルチプレクサ回路46に接
続されている。
は、α[31:0]番地の命令フェッチ要求/データリード要
求においてスーパバイザモード状態/ユーザモード状態
にてキャッシュミスした場合の動作と、その後に上記ス
ーパバイザモード状態/ユーザモード状態における命令
ラインまたはデータラインを無効化する場合の動作につ
いて図6、図13〜図16を用いて説明する。
U 10,CPU 12と同様に、命令フェッチサイクルにおいて
読み出しを行なうアドレス信号α[31:0](図6(b))をア
ドレス信号出力端子群(CA[31:0])202から出力し、命令
フェッチ要求であることを示す論理値「1」の信号(図
6(d))を出力端子(I/D)208から出力し、また、データ情
報を読み出す場合、メモリリードサイクルにおいて読み
出しを行なうアドレス信号α[31:0] (図6(b))をアドレ
ス信号出力端子群(CA[31:0])202から出力し、データリ
ード要求であることを示す論理値「0」の信号(図6
(d))を出力端子(I/D)208から出力する。
他に自CPU 14の現在の特権レベルを表わす信号すなわち
スーパバイザモード状態である場合には、論理値「1」
の信号を形成し、またユーザモード状態である場合に
は、論理値「0」の信号を形成してP PRIV出力端子218
に出力する。
信号208を受けることにより、CPU 14からの要求が命令
フェッチ要求なのか、あるいはデータリード要求なのか
を知るとともに、CPU 14からの信号218を受けることに
より、現在のCPU 14の特権レベルの状態がスーパバイザ
モードなのか、あるいはユーザモードなのかを知る。
ドレス(α[31:0])202を受けると、上記コントローラ30
と同様に、その一部であるアドレス(α[13:4])をアドレ
ス出力端子群(TA[9:0])280、アドレス出力端子群(VA[9:
0])242を通してタグメモリ回路80のアドレス入力端子群
(TA[9:0])280、有効ビットメモリ回路74のアドレス入力
端子群(VA[9:0])242に送る。
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ33のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ33は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
74は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、第1の実施例の有効ビットメモ
リ回路70と同様に、その出力端子(VALID)244を介してコ
ントローラ33の入力端子(VALID)244に論理値「0」の信
号を送る。
リ回路74から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子(P PRIV)218から論理値「0」または「1」のいず
れの信号を出力するのでよい。
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 14からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路74
からのVALID信号244が論理値「0」の信号であることか
ら、コントローラ33はキャッシュミスであると判定す
る。
ローラ30と同様に、外部メモリ回路96との間でラインの
命令やデータのやり取りを行なうラインフィルを行なう
が、この動作は上記第1および第2の実施例と同じなの
で説明を省く。
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路74に対し以下に示すような処
理を行なう。
データメモリ回路82に対する処理はコントローラ30と同
様なので、その説明は省略する。
回路82の処理に並行して、有効ビットメモリ回路74に対
し次のような処理を行なう。
出されてきた情報がCPU 14からの特権レベルにおけるス
ーパバイザモード状態によるものである場合、コントロ
ーラ33は、上記CPU 14からのアクセスアドレス(α[31:
0])の一部であるアドレス信号(α[13:4]) (図6(h))を
アドレス出力端子群(VA[9:0])242に出力し、かつ論理値
「1」の信号(図6(i))を形成してセット信号出力端子
(SET)246に出力し、かつスーパバイザモード状態である
ことを表わす論理値「1」である信号を形成してV PRIV
信号出力端子(V PRIV)252に出力する。
に対応する有効ビットメモリ回路74の図15に示すV/A ME
M[i]回路60-iのV[i]回路48-iのメモリに論理値「1」の
信号が蓄積され、さらに、このV/A MEM[i]回路60-iのPR
IV A[i]回路64-iのメモリにスーパバイザモード状態で
あることを表わす論理値「1」の信号が蓄積される。
ド状態である場合、コントローラ34は、上述のCPU 14か
らのアクセスアドレス(α[31:0])の一部であるアドレス
信号(α[13:4]) (図6(h))をアドレス出力端子群(VA[9:
0])242に出力し、かつ論理値「1」の信号(図6(i))を
形成してセット信号出力端子(SET)246に出力し、かつユ
ーザモード状態であることを表わす論理値「0」である
信号を形成してV PRIV信号出力端子(V PRIV)252に出力
する。
に対応する有効ビットメモリ回路74の図15に示すV/A ME
M[i]回路60-iのV[i]回路48-iのメモリに論理値「1」の
信号が蓄積され、さらに、このV/A MEM[i]回路60-iのPR
IV A[i]回路64-iのメモリにユーザモード状態であるこ
とを表わす論理値「0」の信号が蓄積される。なお、こ
の場合の有効ビットメモリ回路74の各部の詳細な動作に
ついては上述による。
ード状態におけるラインを無効化する場合の動作につい
て説明する。
無効化する場合には、CPU 14はパージ信号出力端子(PUR
GE)212から論理値「1」の無効化要求信号を出力し、か
つ出力端子(P PRIV)218から無効化を行なうラインがス
ーパバイザモード状態におけるものであることを表わす
論理値「1」の信号を出力する。
択信号生成回路66のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P PRIV)218
には無効化を行なうラインがスーパバイザモード状態に
おけるものであることを表わす論理値「1」の信号が入
力される。
回路66のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路66およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路74のデコーダ回路32は選択信号生成回路
66およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
リップフロップ[i]回路(PRIV A[i]回路)56-iに蓄積され
る情報がスーパバイザモード状態を表わす論理値「1」
の信号である場合には、有効ビットメモリ回路74の選択
信号生成回路66の対応する入力端子には、上述のスーパ
バイザモード状態を表わす論理値「1」の信号が入力さ
れる。
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P PRIV)218には無効化するラインがスーパバ
イザモード状態におけるものであることを表わす論理値
「1」の信号が入力され、リセット信号入力端子(RESE
T)240には論理値「0」の情報が入力され、セット信号
入力端子(SET)246には論理値「0」かあるいは論理値
「1」が入力され、WE[i]入力端子には論理値「0」の
情報が入力され、フリップフロップ[i]回路(PRIV A[i]
回路)64-iの出力と接続される入力端子にはスーパバイ
ザモード状態であることを表わす論理値「1」の情報が
入力される。
select[1:0]から「0」の信号を出力するから、最終的
には対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にする。すなわちスーパバイザモード状態
において命令フェッチ要求またはデータリード要求され
てキャッシュミスしたラインに対する無効化要求が発生
した場合には、スーパバイザモード状態において命令フ
ェッチ要求またはデータリード要求されてキャッシュミ
スしたラインに対応するV[i]回路48-iのメモリに蓄積さ
れる情報を論理値「0」にして無効化する。
無効化する場合の動作について説明する。
する場合には、CPU 14はパージ信号出力端子(PURGE)212
から論理値「1」の無効化要求信号を出力し、かつ出力
端子(P PRIV)218から無効化を行なうラインがユーザモ
ード状態におけるものであることを表わす論理値「0」
の信号を出力する。
択信号生成回路66のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P PRIV)218
には無効化を行なうラインがユーザモード状態における
ものであることを表わす論理値「0」の信号が入力され
る。
回路66のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路66およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路74のデコーダ回路32は選択信号生成回路
66およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
リップフロップ[i]回路(PRIV A[i]回路)56-iに蓄積され
る情報がユーザモード状態を表わす論理値「0」の信号
である場合には、有効ビットメモリ回路74の選択信号生
成回路66の対応する入力端子には、上述のユーザモード
状態を表わす論理値「0」の信号が入力される。
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P PRIV)218には無効化するラインがユーザモ
ード状態におけるものであることを表わす論理値「0」
の信号が入力され、リセット信号入力端子(RESET)240に
は論理値「0」の情報が入力され、セット信号入力端子
(SET)246には論理値「0」かあるいは論理値「1」が入
力され、WE[i]入力端子には論理値「0」の情報が入力
され、フリップフロップ[i]回路(PRIV A[i]回路)64-iの
出力と接続される入力端子にはユーザモード状態である
ことを表わす論理値「0」の情報が入力される。
select[1:0]から「0」の信号を出力するから、最終的
には対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にする。すなわち、ユーザモード状態にお
いて命令フェッチ要求またはデータリード要求されてキ
ャッシュミスしたラインに対する無効化要求が発生した
場合には、ユーザモード状態において命令フェッチ要求
またはデータリード要求されてキャッシュミスしたライ
ンに対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にして無効化する。
バイザモード状態またはユーザモード状態において命令
フェッチ要求またはデータリード要求されてキャッシュ
ミスした命令ラインまたはデータラインをクロック信号
1サイクル分の時間にて無効化することができる。
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。このような無効化機能は、特権レベルに応じて
アクセスできるメモリ空間が異なるような場合に有効で
ある。
ると、第1の実施例は、キャッシュメモリのメモリ容
量、ウェイ数などに依存しないので全てのユニファイド
キャッシュに適用できる。また、第2、第3の実施例
は、全てのキャッシュ方式に適用できる。
で、無効化するラインの属性をより複雑な条件で選ぶこ
とができる。この場合のV/A MEM[i]回路の一例が図17に
示されている。また、この図17の選択信号生成回路は、
たとえば図18に示す真理値表に従う選択回路である。こ
の選択回路によれば、CPU がある特権レベルの時に、あ
るリージョンからラインフィルした命令ラインのみ、あ
るいはデータラインのみを無効化することができる。
U においては32ビット幅のCPU を用いたが、システムに
よってはたとえば64ビット幅や16ビット幅のCPU を用い
てもよい。したがって、システムによっては図4に示す
各フィールドのビット幅は適当に選べばよい。
メモリ手段は、中央処理手段により形成されたパージ信
号およびライン種別信号を受け、かつ属性情報記憶手段
群の各々からそれぞれ属性情報を受け、この受けたパー
ジ信号が無効化要求信号を示す信号であり、かつこの受
けたライン種別信号が命令ラインを示す信号であり、か
つこの受けた属性情報が命令ラインを示す信号である場
合には、この属性情報の記憶される属性情報記憶手段に
対応する有効・無効記憶手段に記憶される情報を無効で
あることを示す情報にし、またこの受けたパージ信号が
無効化要求信号を示す信号であり、かつこの受けたライ
ン種別信号がデータラインを示す信号であり、かつこの
受けた属性情報がデータラインであることを示す信号で
ある場合には、この属性情報の記憶される属性情報記憶
手段に対応する有効・無効記憶手段に記憶される情報を
無効であることを示す情報にすることができる。
て、命令フェッチ要求に対してラインフィルした全ての
ラインをクロック信号1サイクル分の時間にて無効化す
ることができる。また、データアクセス要求に対してラ
インフィルした全てのラインをクロック信号1サイクル
分の時間にて無効化することができる。その結果、キャ
ッシュメモリの全てのラインを無効化する場合に比べ、
その後のキャッシュヒット率が低下せず、システム全体
の性能低下を避けることができるという効果がある。
ットメモリ手段は、中央処理手段により形成されたパー
ジ信号およびリージョン番号情報を受け、かつ属性情報
記憶手段群の各々からそれぞれリージョン番号情報を受
け、この受けたパージ信号が無効化要求信号を示す信号
であり、かつ中央処理手段から受けたリージョン番号情
報とこの属性情報記憶手段群から受けたリージョン番号
情報が一致した場合には、この属性情報記憶手段に対応
する有効・無効記憶手段に記憶される情報を無効である
ことを示す情報にすることができる。
した全てのラインのみをクロック信号1サイクル分の時
間にて無効化することができる。その結果、キャッシュ
メモリの全てのラインを無効化する場合に比べ、その後
のキャッシュヒット率が低下せず、システム全体の性能
低下を避けることができるという効果がある。
ビットメモリ手段は中央処理手段により形成されたパー
ジ信号および第2のモード識別信号を受け、かつ属性情
報記憶手段群の各々からそれぞれ属性情報を受け、この
受けたパージ信号が無効化要求信号を示す信号であり、
かつこの受けた第2のモード識別信号がスーパバイザモ
ードを示す信号であり、かつこの受けた属性情報がスー
パバイザモードを示す信号である場合には、この属性情
報の記憶される属性情報記憶手段に対応する有効・無効
記憶手段に記憶される情報を無効であることを示す情報
にし、またこの受けたパージ信号が無効化要求信号を示
す信号であり、かつこの受けた第2のモード識別信号が
ユーザモードを示す信号であり、かつこの受けた属性情
報がユーザモードであることを示す信号である場合に
は、この属性情報の記憶される属性情報記憶手段に対応
する有効・無効記憶手段に記憶される情報を無効である
ことを示す情報にすることができる。
ザモードにおいてラインフィルした全てのラインのみを
クロック信号1サイクル分の時間にて無効化することが
できる。その結果、キャッシュメモリの全てのラインを
無効化する場合に比べ、その後のキャッシュヒット率が
低下せず、システム全体の性能低下を避けることができ
るという効果がある。
構成例を示す図である。
モリの構成例を示す図である。
部分無効化装置の適用される第1の実施例のシステムの
ブロック図である。
である。
回路の動作説明図である。
する図である。
明する図である。
部分無効化装置の適用される第2の実施例のシステムの
ブロック図である。
モリの構成例を示す図である。
[i]の構成例を示す図である。
生成回路の動作説明図である。
る部分無効化装置の適用される第3の実施例のシステム
のブロック図である。
メモリの構成例を示す図である。
[i]の構成例を示す図である。
生成回路の動作説明図である。
示す図である。
生成回路の動作説明図である。
回路) 36 セレクタ回路 38 アンドゲート(AND)回路 40,46,54,62 マルチプレクサ(MUX)回路 42-i フリップフロップ[i]回路(I/D A[i]回路) 44,58,66 選択信号生成回路 48-i フリップフロップ[i]回路(V[i]回路) 56-i フリップフロップ[i]回路(REG A[i]回路) 64-i フリップフロップ[i]回路(PRIV A[i]回路)
Claims (6)
- 【請求項1】 アクセスのためのアドレスを示す所定の
複数のビットからなる第1のアドレス信号群を形成し、
かつ該アクセスがプログラム領域に対する命令フェッチ
要求であるのかまたはデータ領域に対するデータアクセ
ス要求であるのかを示すアクセス種別信号を形成する中
央処理手段と、 該中央処理手段により形成された第1のアドレス信号群
およびアクセス種別信号を受信し、該受信した第1のア
ドレス信号群がキャッシュミス時によるものである場合
にはラインフィルを行なうための該第1のアドレス信号
群に基づく所定の複数のビットからなる第2のアドレス
信号群を形成し、かつ該受信した第1のアドレス信号群
を所定の複数のビットのうちの下位側の所定の複数のビ
ットをライン内オフセットフィールドアドレス信号群と
し、該アドレス信号群より上位の所定の複数のビットを
インデックスフィールドアドレス信号群とし、該アドレ
ス信号群より上位の残りの所定の複数のビットをタグフ
ィールドアドレス信号群とに分割し、かつ該受信したア
クセス種別信号がキャッシュミス時によるものである場
合であって該アクセス種別信号が命令フェッチ要求であ
る場合にはそれを示す属性情報をまたデータアクセス要
求である場合にはそれを示す属性情報を形成する制御手
段と、 前記タグフィールドアドレス信号群と同じビット構成か
らなる第1のタグアドレス信号群を記憶するアドレス情
報記憶手段を含み、かつ該制御手段により分割されたイ
ンデックスフィールドアドレス信号群を受信し、該受信
したアドレス信号群の示す該アドレス情報記憶手段の記
憶領域から第1のタグアドレス信号群を読み出すタグメ
モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
前記第1のタグアドレス信号群が有効であるか否かの情
報を記憶する有効・無効記憶手段群を含み、かつ前記制
御手段により分割されたインデックスフィールドアドレ
ス信号群を受信し、該受信したアドレス信号群の示す該
有効・無効記憶手段の記憶領域から有効であるか否かの
情報を読み出す有効ビットメモリ手段と、 前記制御手段はさらに、前記分割したタグフィールドア
ドレス信号群と前記タグメモリ手段からの第1のタグア
ドレス信号群の比較を行ない、該比較において一致しか
つ該有効ビットメモリ手段からの情報が有効であること
を示す情報ならばキャッシュヒットと判定し、また該比
較において一致しないかあるいは(および)該有効ビッ
トメモリ手段からの情報が無効であることを示す情報な
らばキャッシュミスと判定する判定手段を含み、 前記制御手段に接続される外部メモリ手段を有し、 前記有効ビットメモリ手段はさらに、キャッシュミス時
におけるインデックスフィールドアドレス信号群および
属性情報を前記制御手段から受信し、該受信したアドレ
ス信号群の示す記憶領域に該受信した属性情報を記憶す
る属性情報記憶手段群を含み、 前記制御手段は、キャッシュミスと判定した場合には、
外部メモリ手段との間でラインフィルを行なうための該
キャッシュミス時における前記中央処理手段からの第1
のアドレス信号群に基づく第2のアドレス信号群を形成
して外部メモリ手段に出力し、続いて該キャッシュミス
時のラインが命令フェッチ要求によるものである場合に
はそれを示す属性情報をまたデータアクセス要求による
ものである場合にはそれを示す属性情報を該キャッシュ
ミス時に分割されたインデックスフィールドアドレス信
号群とともに前記属性情報記憶手段に出力して該アドレ
ス信号群の示す記憶領域に該受けた属性情報を記憶さ
せ、かつ該分割されたインデックスフィールドアドレス
信号群を前記有効・無効記憶手段に出力して該アドレス
信号群の示す記憶領域に有効であることを示す情報を記
憶させることを特徴とするユニファイドキャッシュメモ
リにおける部分無効化装置。 - 【請求項2】 請求項1に記載のユニファイドキャッシ
ュメモリにおける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
かを示すパージ信号を形成し、かつ該無効化するライン
が命令フェッチ要求であるのかまたはデータアクセス要
求であるのかを示すライン種別信号を形成する手段を含
み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
より形成されたパージ信号およびライン種別信号を受
け、かつ前記属性情報記憶手段群の各々からそれぞれ属
性情報を受け、該受けたパージ信号が無効化要求信号を
示す信号であり、かつ該受けたライン種別信号が命令フ
ェッチ要求によるものを示す信号であり、かつ該受けた
属性情報が命令フェッチ要求によるものを示す信号であ
る場合には、該属性情報の記憶される属性情報記憶手段
に対応する有効・無効記憶手段に記憶される情報を無効
であることを示す情報にし、また該受けたパージ信号が
無効化要求信号を示す信号であり、かつ該受けたライン
種別信号がデータアクセス要求によるものを示す信号で
あり、かつ該受けた属性情報がデータアクセス要求によ
るものを示す信号である場合には、該属性情報の記憶さ
れる属性情報記憶手段に対応する有効・無効記憶手段に
記憶される情報を無効であることを示す情報にすること
を特徴とするユニファイドキャッシュメモリにおける部
分無効化装置。 - 【請求項3】 アクセスのためのアドレスを示す所定の
複数のビットからなる第1のアドレス信号群を形成する
中央処理手段と、 該中央処理手段により形成された第1のアドレス信号群
を受信し、該受信した第1のアドレス信号群がキャッシ
ュミス時によるものである場合にはラインフィルを行な
うための該第1のアドレス信号群に基づく所定の複数の
ビットからなる第2のアドレス信号群を形成し、かつ該
受信した第1のアドレス信号群を所定の複数のビットの
うちの下位側の所定の複数のビットをライン内オフセッ
トフィールドアドレス信号群とし、該アドレス信号群よ
り上位の所定の複数のビットをインデックスフィールド
アドレス信号群とし、該アドレス信号群より上位の残り
の所定の複数のビットをタグフィールドアドレス信号群
とに分割する制御手段と、 前記タグフィールドアドレス信号群と同じビット構成か
らなる第1のタグアドレス信号群を記憶するアドレス情
報記憶手段を含み、かつ該制御手段により分割されたイ
ンデックスフィールドアドレス信号群を受信し、該受信
したアドレス信号群の示す該アドレス情報記憶手段の記
憶領域から第1のタグアドレス信号群を読み出すタグメ
モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
前記第1のタグアドレス信号群が有効であるか否かの情
報を記憶する有効・無効記憶手段群を含み、かつ前記制
御手段により分割されたインデックスフィールドアドレ
ス信号群を受信し、該受信したアドレス信号群の示す該
有効・無効記憶手段の記憶領域から有効であるか否かの
情報を読み出す有効ビットメモリ手段と、 前記制御手段に接続される外部メモリ手段を有し、 前記制御手段はさらに、前記分割したタグフィールドア
ドレス信号群と前記タグメモリ手段からの第1のタグア
ドレス信号群の比較を行ない、該比較において一致しか
つ該有効ビットメモリ手段からの情報が有効であること
を示す情報ならばキャッシュヒットと判定し、また該比
較において一致しないかあるいは(および)該有効ビッ
トメモリ手段からの情報が無効であることを示す情報な
らばキャッシュミスと判定する判定手段と、 前記受信した第1のアドレス信号群の上位側の所定の複
数のビットを前記外部メモリ手段のメモリ空間を所定の
複数のメモリ空間に分割してなる各々空間のリージョン
番号情報とするリージョン番号情報生成手段とを含み、 前記有効ビットメモリ手段はさらに、キャッシュミス時
におけるインデックスフィールドアドレス信号群を前記
制御手段から受信し、かつリージョン番号情報を該リー
ジョン番号情報生成手段から受信し、該受信したアドレ
ス信号群の示す記憶領域に該受信したリージョン番号情
報を属性情報として記憶する属性情報記憶手段群を含
み、 前記制御手段は、キャッシュミスと判定した場合には、
外部メモリ手段との間でラインフィルを行なうための該
キャッシュミス時における前記中央処理手段からの第1
のアドレス信号群に基づく第2のアドレス信号群を形成
して外部メモリ手段に出力し、続いて該キャッシミス時
において前記リージョン番号情報生成手段により形成さ
れたリージョン番号情報を該キャッシュミス時に分割さ
れたインデックスフィールドアドレス信号群とともに前
記属性情報記憶手段に出力して該アドレス信号群の示す
記憶領域に該受けたリージョン番号情報を記憶させ、か
つ該分割されたインデックスフィールドアドレス信号群
を前記有効・無効記憶手段に出力して該アドレス信号群
の示す記憶領域に有効であることを示す情報を記憶させ
ることを特徴とするキャッシュメモリにおける部分無効
化装置。 - 【請求項4】 請求項3に記載のキャッシュメモリにお
ける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
かを示すパージ信号を形成し、かつ該無効化するライン
のリージョン番号情報を形成して出力する手段を含み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
より形成されたパージ信号およびリージョン番号情報を
受け、かつ前記属性情報記憶手段群の各々からそれぞれ
リージョン番号情報を受け、該受けたパージ信号が無効
化要求信号を示す信号であり、かつ該中央処理手段から
受けたリージョン番号情報と該属性情報記憶手段群から
受けたリージョン番号情報が一致した場合には、該属性
情報記憶手段に対応する有効・無効記憶手段に記憶され
る情報を無効であることを示す情報にすることを特徴と
するキャッシュメモリにおける部分無効化装置。 - 【請求項5】 アクセスのためのアドレスを示す所定の
複数のビットからなる第1のアドレス信号群を形成し、
該アクセスの特権レベルがスーパバイザモードであるの
かまたはユーザモードであるのかを示す第1のモード識
別信号を形成して出力する中央処理手段と、 該中央処理手段により形成された第1のアドレス信号群
および第1のモード識別信号を受信し、該受信した第1
のアドレス信号群がキャッシュミス時によるものである
場合にはラインフィルを行なうための該第1のアドレス
信号群に基づく所定の複数のビットからなる第2のアド
レス信号群を形成し、かつ該受信した第1のアドレス信
号群を所定の複数のビットのうちの下位側の所定の複数
のビットをライン内オフセットフィールドアドレス信号
群とし、該アドレス信号群より上位の所定の複数のビッ
トをインデックスフィールドアドレス信号群とし、該ア
ドレス信号群より上位の残りの所定の複数のビットをタ
グフィールドアドレス信号群とに分割し、かつ該受信し
た第1のモード識別信号を出力する制御手段と、 前記タグフィールドアドレス信号群と同じビット構成か
らなる第1のタグアドレス信号群を記憶するアドレス情
報記憶手段を含み、かつ該制御手段により分割されたイ
ンデックスフィールドアドレス信号群を受信し、該受信
したアドレス信号群の示す該アドレス情報記憶手段の記
憶領域から第1のタグアドレス信号群を読み出すタグメ
モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
前記第1のタグアドレス信号群が有効であるか否かの情
報を記憶する有効・無効記憶手段群を含み、かつ前記制
御手段により分割されたインデックスフィールドアドレ
ス信号群を受信し、該受信したアドレス信号群の示す該
有効・無効記憶手段の記憶領域から有効であるか否かの
情報を読み出す有効ビットメモリ手段と、 前記制御手段はさらに、前記分割したタグフィールドア
ドレス信号群と前記タグメモリ手段からの第1のタグア
ドレス信号群の比較を行ない、該比較において一致しか
つ該有効ビットメモリ手段からの情報が有効であるなら
ばキャッシュヒットと判定し、また該比較において一致
しないかあるいは(および)該有効ビットメモリ手段か
らの情報が無効であるならばキャッシュミスと判定する
判定手段を含み、 前記制御手段に接続される外部メモリ手段を有し、 前記有効ビットメモリ手段はさらに、キャッシュミス時
におけるインデックスフィールドアドレス信号群および
第1のモード識別信号を前記制御手段から受信し、該受
信したアドレス信号群の示す記憶領域に該受信した第1
のモード識別信号である属性情報を記憶する属性情報記
憶手段群を含み、 前記制御手段は、キャッシュミスと判定した場合には、
外部メモリ手段との間でラインフィルを行なうための該
キャッシュミス時における前記中央処理手段からの第1
のアドレス信号群に基づく第2のアドレス信号群を形成
して外部メモリ手段に出力し、続いて該アクセスの第1
のモード識別信号を該キャッシュミス時に分割されたイ
ンデックスフィールドアドレス信号群とともに前記属性
情報記憶手段に出力して該アドレス信号群の示す記憶領
域に記憶させ、かつ該分割されたインデックスフィール
ドアドレス信号群を前記有効・無効記憶手段に出力して
該アドレス信号群の示す記憶領域に有効であることを示
す情報を記憶させることを特徴とするキャッシュメモリ
における部分無効化装置。 - 【請求項6】 請求項5に記載のキャッシュメモリにお
ける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
かを示すパージ信号を形成し、かつ該無効化するライン
の特権レベルがスーパバイザモードであるのかまたはユ
ーザモードであるのかを示す第2のモード識別信号を形
成する手段を含み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
より形成されたパージ信号および第2のモード識別信号
を受け、かつ前記属性情報記憶手段群の各々からそれぞ
れ属性情報を受け、該受けたパージ信号が無効化要求信
号を示す信号であり、かつ該受けた第2のモード識別信
号がスーパバイザモードを示す信号であり、かつ該受け
た属性情報がスーパバイザモードを示す信号である場合
には、該属性情報の記憶される属性情報記憶手段に対応
する有効・無効記憶手段に記憶される情報を無効である
ことを示す情報にし、また該受けたパージ信号が無効化
要求信号を示す信号であり、かつ該受けた第2のモード
識別信号がユーザモードを示す信号であり、かつ該受け
た属性情報がユーザモードであることを示す信号である
場合には、該属性情報の記憶される属性情報記憶手段に
対応する有効・無効記憶手段に記憶される情報を無効で
あることを示す情報にすることを特徴とするキャッシュ
メモリにおける部分無効化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000367765A JP2002169724A (ja) | 2000-12-01 | 2000-12-01 | キャッシュメモリにおける部分無効化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000367765A JP2002169724A (ja) | 2000-12-01 | 2000-12-01 | キャッシュメモリにおける部分無効化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002169724A true JP2002169724A (ja) | 2002-06-14 |
Family
ID=18838130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000367765A Pending JP2002169724A (ja) | 2000-12-01 | 2000-12-01 | キャッシュメモリにおける部分無効化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002169724A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111047503A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种顶点数组类命令的属性存储与组装优化电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2656765B2 (ja) * | 1996-01-16 | 1997-09-24 | 株式会社日立製作所 | データ処理装置 |
JP2685727B2 (ja) * | 1995-01-17 | 1997-12-03 | 株式会社日立製作所 | データ処理装置 |
JP2717752B2 (ja) * | 1991-10-11 | 1998-02-25 | インテル・コーポレーション | プロセッサ |
JP3920994B2 (ja) * | 1997-09-05 | 2007-05-30 | フリースケール セミコンダクター インコーポレイテッド | プロセッサをコプロセッサにインタフェースするための方法および装置 |
-
2000
- 2000-12-01 JP JP2000367765A patent/JP2002169724A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2717752B2 (ja) * | 1991-10-11 | 1998-02-25 | インテル・コーポレーション | プロセッサ |
JP2685727B2 (ja) * | 1995-01-17 | 1997-12-03 | 株式会社日立製作所 | データ処理装置 |
JP2656765B2 (ja) * | 1996-01-16 | 1997-09-24 | 株式会社日立製作所 | データ処理装置 |
JP3920994B2 (ja) * | 1997-09-05 | 2007-05-30 | フリースケール セミコンダクター インコーポレイテッド | プロセッサをコプロセッサにインタフェースするための方法および装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111047503A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种顶点数组类命令的属性存储与组装优化电路 |
CN111047503B (zh) * | 2019-11-21 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种顶点数组类命令的属性存储与组装优化电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5371870A (en) | Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching | |
US4736293A (en) | Interleaved set-associative memory | |
US5659713A (en) | Memory stream buffer with variable-size prefetch depending on memory interleaving configuration | |
US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
US5461718A (en) | System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory | |
US6170070B1 (en) | Test method of cache memory of multiprocessor system | |
US5329629A (en) | Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
US5619677A (en) | Data processing system with an enhanced cache memory control | |
US5452418A (en) | Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation | |
JPH03225542A (ja) | データ記憶方法及びビットエンコードデータの処理回路 | |
US5553270A (en) | Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay | |
US5557622A (en) | Method and apparatus for parity generation | |
JPH1091521A (ja) | 二重ディレクトリー仮想キャッシュ及びその制御方法 | |
JP2010128698A (ja) | マルチプロセッサシステム | |
JP2002169724A (ja) | キャッシュメモリにおける部分無効化装置 | |
US6826654B2 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy | |
JPH0210446A (ja) | バッファ記憶装置 | |
JP2002366433A (ja) | キャッシュメモリ制御装置およびプロセッサ | |
JP2008176731A (ja) | マルチプロセッサシステム | |
JPS59167891A (ja) | 緩衝記憶装置 | |
JPH034939B2 (ja) | ||
JPH01226056A (ja) | アドレス変換回路 | |
JPH07152650A (ja) | キャッシュ制御装置 | |
JP2791319B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070130 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20081119 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081125 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100601 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101005 |