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
Application number
JP2000367765A
Other languages
English (en)
Inventor
Takatoshi Shibuya
貴利 渋谷
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2000367765A priority Critical patent/JP2002169724A/ja
Publication of JP2002169724A publication Critical patent/JP2002169724A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 キャッシュメモリに格納された情報の無効化
に必要な時間を短縮することのできるキャッシュメモリ
における部分無効化装置の提供。 【解決手段】 選択信号生成回路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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリに
おける部分無効化装置に係り、とくにキャッシュメモリ
に格納された情報の無効化に必要な時間の短縮に好適な
キャッシュメモリにおける部分無効化装置に関するもの
である。
【0002】
【従来の技術】周知のように、メモリを用いたシステム
では、その性能を高めるために、一般にキャッシュメモ
リが用いられている。
【0003】キャッシュメモリとは、低速なメインメモ
リ(外部メモリ)の内容の一部のコピーを保持する高速
なメモリであり、このメモリは、中央処理装置(CPU )
とメインメモリの速度差を埋めるために両者の中間に置
かれ、CPU がメモリアクセス要求を発生した時に、メイ
ンメモリの代わりにアクセスされ、システム全体の性能
を高める働きをする。
【0004】キャッシュメモリには様々なハードウェア
構成方式があり、これら方式はシステム上で動作させる
アプリケーションの特性や要求される性能やコストに応
じて選択される。
【0005】ところで、メインメモリにアクセスするバ
スマスタ(CPUやDMAなど)が複数存在するシステム構成
の場合には、メインメモリとキャッシュメモリ間のコヒ
ーレンシ(同一性、一貫性)が保たれなくなる場合があ
る。このような状況を解決するために様々な手法が存在
する。最も簡単な手法の1つとして、現在キャッシュメ
モリに格納される情報を無効化する方法がある。
【0006】この無効化方法にはソフトウェア方式によ
るものがあり、この方式はキャッシュメモリの各ライン
(命令やデータの格納される領域をラインという)につ
いて検査し、この検査によりコヒーレンシが保たれてい
ないラインがあればこの特定のラインについて無効化す
るものである。
【0007】
【発明が解決しようとする課題】ところで、メインメモ
リとキャッシュメモリ間のコヒーレンシが保たれなくな
っている場合には、システムの性能の低下を避けるため
に、その原因となっているラインのみを無効化するのが
理想である。
【0008】しかしながら、上述の従来のソフトウェア
方式による無効化方法では、無効化するライン数に比例
し時間がかかるという問題があった。このことはシステ
ムの性能低下の要因にもなっていた。
【0009】本発明はこのような従来技術の欠点を解消
し、キャッシュメモリに格納された情報の無効化に必要
な時間を短縮することのできるキャッシュメモリにおけ
る部分無効化装置を提供することを目的とする。
【0010】
【課題を解決するための手段】本発明のキャッシュメモ
リにおける部分無効化装置は上述の課題を解決するため
に、アクセスのためのアドレスを示す所定の複数のビッ
トからなる第1のアドレス信号群を形成し、かつこのア
クセスがプログラム領域に対する命令フェッチ要求であ
るのかまたはデータ領域に対するデータリード要求であ
るのかを示すアクセス種別信号を形成する中央処理手段
と、この中央処理手段により形成された第1のアドレス
信号群およびアクセス種別信号を受信し、この受信した
第1のアドレス信号群がキャッシュミス時によるもので
ある場合にはラインフィルを行なうためのこの第1のア
ドレス信号群に基づく所定の複数のビットからなる第2
のアドレス信号群を形成し、かつこの受信した第1のア
ドレス信号群を所定の複数のビットのうちの下位側の所
定の複数のビットをライン内オフセットフィールドアド
レス信号群とし、このアドレス信号群より上位の所定の
複数のビットをインデックスフィールドアドレス信号群
とし、このアドレス信号群より上位の残りの所定の複数
のビットをタグフィールドアドレス信号群とに分割し、
かつこの受信したアクセス種別信号がキャッシュミス時
によるものである場合であってこのアクセス種別信号が
命令フェッチ要求である場合にはそれを示す属性情報を
またデータアクセス要求である場合にはそれを示す属性
情報を形成する制御手段と、タグフィールドアドレス信
号群と同じビット構成からなる第1のタグアドレス信号
群を記憶するアドレス情報記憶手段を含み、かつこの制
御手段により分割されたインデックスフィールドアドレ
ス信号群を受信し、この受信したアドレス信号群の示す
このアドレス情報記憶手段の記憶領域から第1のタグア
ドレス信号群を読み出すタグメモリ手段と、インデック
スフィールドアドレス信号群に対応する第1のタグアド
レス信号群が有効であるか否かの情報を記憶する有効・
無効記憶手段群を含み、かつ制御手段により分割された
インデックスフィールドアドレス信号群を受信し、この
受信したアドレス信号群の示すこの有効・無効記憶手段
の記憶領域から有効であるか否かの情報を読み出す有効
ビットメモリ手段と、制御手段はさらに、上記分割した
タグフィールドアドレス信号群とタグメモリ手段からの
第1のタグアドレス信号群の比較を行ない、この比較に
おいて一致しかつこの有効ビットメモリ手段からの情報
が有効であることを示す情報ならばキャッシュヒットと
判定し、またこの比較において一致しないかあるいは
(および)この有効ビットメモリ手段からの情報が無効
であることを示す情報ならばキャッシュミスと判定する
判定手段を含み、制御手段に接続される外部メモリ手段
を有し、有効ビットメモリ手段はさらに、キャッシュミ
ス時におけるインデックスフィールドアドレス信号群お
よび属性情報を制御手段から受信し、この受信したアド
レス信号群の示す記憶領域にこの受信した属性情報を記
憶する属性情報記憶手段群を含み、制御手段は、キャッ
シュミスと判定した場合には、外部メモリ手段との間で
ラインフィルを行なうためのこのキャッシュミス時にお
ける中央処理手段からの第1のアドレス信号群に基づく
第2のアドレス信号群を形成して外部メモリ手段に出力
し、続いてこのキャッシュミス時のラインが命令フェッ
チ要求によるものである場合にはそれを示す属性情報を
またデータアクセス要求によるものである場合にはそれ
を示す属性情報をこのキャッシュミス時に分割されたイ
ンデックスフィールドアドレス信号群とともに属性情報
記憶手段に出力してこのアドレス信号群の示す記憶領域
にこの受けた属性情報を記憶させ、かつこの分割された
インデックスフィールドアドレス信号群を有効・無効記
憶手段に出力してこのアドレス信号群の示す記憶領域に
有効であることを示す情報を記憶させることを特徴とす
る。
【0011】上述の本発明のキャッシュメモリにおける
部分無効化装置は上述の課題を解決するために、中央処
理手段はさらに、無効化要求信号であるか否かを示すパ
ージ信号を形成し、かつこの無効化するラインが命令フ
ェッチ要求によるものであるのかまたはデータアクセス
要求によるものであるのかを示すライン種別信号を形成
する手段を含み、有効ビットメモリ手段はさらに、この
中央処理手段により形成されたパージ信号およびライン
種別信号を受け、かつ属性情報記憶手段群の各々からそ
れぞれ属性情報を受け、この受けたパージ信号が無効化
要求信号を示す信号であり、かつこの受けたライン種別
信号が命令フェッチ要求によるものを示す信号であり、
かつこの受けた属性情報が命令フェッチ要求によるもの
を示す信号である場合には、この属性情報の記憶される
属性情報記憶手段に対応する有効・無効記憶手段に記憶
される情報を無効であることを示す情報にし、また、こ
の受けたパージ信号が無効化要求信号を示す信号であ
り、かつこの受けたライン種別信号がデータアクセス要
求によるものを示す信号であり、かつこの受けた属性情
報がデータアクセス要求によるものであることを示す信
号である場合には、この属性情報の記憶される属性情報
記憶手段に対応する有効・無効記憶手段に記憶される情
報を無効であることを示す情報にすることを特徴とす
る。
【0012】
【発明の実施の形態】次に添付図面を参照して本発明に
よるキャッシュメモリにおける部分無効化装置の実施例
を詳細に説明する。
【0013】図3には、第1の実施例によるユニファイ
ドキャッシュメモリにおける部分無効化装置の適用され
る第1の実施例のシステムが示されている。この第1の
実施例は、命令フェッチ要求がキャッシュミスした際に
外部メモリのプログラム領域からラインフィルした全て
のライン、または、データリード要求がキャッシュミス
した際に外部メモリのデータ領域からラインフィルした
全てのラインを、それぞれクロック信号1サイクル分の
時間にて無効化するシステムである。
【0014】以下では、命令フェッチ要求がキャッシュ
ミスした際にラインフィルしたラインを命令ラインと呼
ぶ。また、データリード要求がキャッシュミスした際に
ラインフィルしたラインをデータラインと呼ぶ。
【0015】図3を参照すると、この第1の実施例のシ
ステムは、CPU 10と、キャッシュコントローラ30、有効
ビットメモリ回路70、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部90と、外部メモリ回路
96とから構成されている。
【0016】図3に示すように、CPU 10は、この例で
は、図示しないクロック信号発生回路からのクロック信
号の受信を行なうクロック信号入力端子(CLK)200、32本
の信号線からなる信号線群202の各々と接続されるアド
レスの信号の出力を行なうアドレス信号出力端子群(CA
[31:0])202、32本の信号線からなる信号線群204の各々
と接続される書き込み用のデータの出力を行なうデータ
出力端子群(WD[31:0])204および32本の信号線からなる
信号線群206の各々と接続されるコントローラ30からの
データの受信を行なうデータ入力端子群(RD[31:0])206
を有する。
【0017】また、このCPU 10はさらにアクセスの種別
を示す信号の出力を行なう出力端子(I/D)208、コントロ
ーラ30からのウエイト信号の受信を行なうウエイト信号
入力端子(WAIT)210、無効化要求信号であるか否かを示
す信号の出力を行なうパージ信号出力端子(PURGE)212お
よび無効化するラインの種別を示す信号の出力を行なう
出力端子(P I/D)214を有する。
【0018】クロック信号入力端子(CLK)200には図示し
ないクロック信号発生回路からのクロック信号が信号線
200を介して入力される。CPU 10は、このクロック信号
に同期したアドレス信号、書き込み用データ、アクセス
の種別を示す信号、無効化要求信号であるか否かを示す
信号であるパージ信号および無効化するラインの種別を
示す信号を生成し、アドレス信号出力端子群(CA[31:0])
202、データ出力端子群(WD[31:0])204、出力端子(I/D)2
08、パージ信号出力端子(PURGE)212および出力端子(P I
/D)214に出力する。
【0019】CPU 10はまた、上述したクロック信号に同
期したコントローラ30からのデータおよびウエイト信号
をデータ入力端子群(RD[31:0])206およびウエイト信号
入力端子(WAIT)210にて受信する。
【0020】CPU 10は、上述からわかるように、この例
では、たとえば、1ワード(語)4バイト単位で処理を
行なうプロセッサである。CPU 10はまた、この例では、
メモリアクセスの種類として、ワードリードとワードラ
イトとを有している。
【0021】このCPU 10は、プログラムの実行におい
て、あるアドレスにおけるキャッシュ部90のデータメモ
リ回路82または外部メモリ回路96に記憶された情報(命
令またはデータ)を読み出し、演算などを行なう。この
場合であって、命令情報を読み出す場合には、命令フェ
ッチサイクルにおいて読み出しを行なう32ビットからな
るアドレスを示す信号がアドレス信号出力端子群(CA[3
1:0])202から出力されるとともに、アクセスの種別を示
す信号の出力端子(I/D)208から命令フェッチ要求である
ことを示す論理値「1」の信号が出力される。この場
合、読み出されてきた32ビットの命令情報はデータ入力
端子群(RD[31:0])206に入力される。
【0022】またデータ情報を読み出す場合には、メモ
リリードサイクルにおいて読み出しを行なう32ビットか
らなるアドレスを示す信号がアドレス信号出力端子群(C
A[31:0])202から出力されるとともに、アクセスの種別
を示す信号の出力端子(I/D)208から命令フェッチ要求以
外のたとえばデータアクセス要求であることを示す論理
値「0」の信号が出力される。この場合、読み出されて
きた32ビットのデータ情報はデータ入力端子群(RD[31:
0])206に入力される。
【0023】CPU 10はまた、データをキャッシュ部90の
データメモリ回路82および外部メモリ回路96に格納する
場合がある。この場合、メモリライトサイクルにおいて
書き込みを行なう32ビットからなるアドレスがアドレス
信号出力端子群(CA[31:0])202から出力され、かつ格納
すべき32ビットからなるデータがデータ出力端子群(WD
[31:0])204から出力される。この場合、CPU 10によるア
クセスの種別を示す信号の出力端子(I/D)208から出力さ
れる信号は、論理値「0」の信号でよい。
【0024】ウエイト信号(WAIT)210は、CPU 10の動作
を待たせるために、キャッシュ部90のコントローラ30か
ら供給される信号であり、この信号を受けた場合には、
CPU10は空転する。コントローラ30がウエイト信号(WAI
T)210をCPU 10へ送る例としてはキャッシュミス(CPU 1
0が要求する情報がキャッシュメモリに存在しないとき
のことをいう)した場合がある(図6)。
【0025】このCPU 10は、上述したように、パージ信
号出力端子(PURGE)212および出力端子(P I/D)214を有し
ており、これら端子から出力される信号により命令ライ
ンやデータラインの無効化を行なうことができる。この
場合であって、命令ラインを無効化する場合には、パー
ジ信号出力端子(PURGE)212から論理値「1」の無効化要
求信号が出力されるとともに、出力端子(P I/D)214から
無効化を行なうラインが命令ラインであることを示す論
路値「1」の信号が出力される。
【0026】またデータラインを無効化する場合には、
パージ信号出力端子(PURGE)212から論理値「1」の無効
化要求信号が出力されるとともに、出力端子(P I/D)214
から無効化を行なうラインがデータラインであることを
示す論理値「0」の信号が出力される。
【0027】図3に示されるように、アドレス信号出力
端子群(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に接続されている。
【0028】さらに、パージ信号出力端子(PURGE)212は
信号線212を介して有効ビットメモリ回路70のパージ信
号入力端子(PURGE)212に接続され、出力端子(P I/D)214
は信号線214を介して有効ビットメモリ回路70の入力端
子(P I/D)214 に接続されている。
【0029】次に、キャッシュ部90の概要を述べる。キ
ャッシュは、プログラム(命令)領域とデータ領域の区
別を行なわないユニファイドキャッシュで、その容量は
16キロバイト(KB)で、そのライン数は1024で、1ライ
ン当たり4ワードすなわち16バイトで、ダイレクトマッ
ピング(各ラインのキャッシュ上での位置が一意に決め
られている)方式の構成である。
【0030】キャッシュメモリおよび外部メモリ回路96
へのデータ情報の書き込み方式についてはキャッシュへ
のデータ情報の書き換えと同時に外部メモリ回路96にも
書き込むライトスルー方式が採用されている。そして、
このようなデータライト要求においてキャッシュミスが
発生した場合には、ラインフィル(この例ではキャッシ
ュ部90と外部メモリ回路96との間でライン全体のデータ
のやり取りをする)を行なわないノーライトアロケート
方式が採用されている。
【0031】続いて、キャッシュ部90の詳細を述べる。
まず、キャッシュコントローラ30が有する端子などにつ
いて述べる。
【0032】図3に示すように、コントローラ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とを有してい
る。
【0033】上記アドレス信号出力端子群(EA[31:0])22
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と接続されてい
る。
【0034】コントローラ30はまた、この例では有効ビ
ットメモリ回路70との対応のためのリセット信号の出力
を行なうリセット信号出力端子(RESET)240と、10本の信
号線からなる信号線群242の各々と接続されるアドレス
信号の出力を行なうアドレス信号出力端子群(VA[9:0])2
42と、情報(命令やデータ)が有効であるか否かの信号
の受信を行なうVALID信号入力端子(VALID)244と、セッ
ト信号の出力を行なうセット信号出力端子(SET)246と、
たとえば命令フェッチ要求にてキャッシュミスした場合
に論理値「1」の信号を出力しデータリード要求にてキ
ャッシュミスした場合に論理値「0」の信号の出力を行
なうV I/D信号出力端子(V I/D )248とを有している。
【0035】上記リセット信号出力端子(RESET)240は信
号線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
と接続されている。
【0036】またコントローラ30は、この例では、タグ
メモリ回路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とを有している。
【0037】上記アドレス信号出力端子群(TA[9:0])280
は信号線群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と接続されている。
【0038】コントローラ30はまた、この例ではデータ
メモリ回路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とを有している。
【0039】上記10個の出力端子からなるアドレス信号
出力端子群(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と接続されている。
【0040】また、上記チップイネーブル信号出力端子
(DCE)298は信号線298を介してデータメモリ回路82のチ
ップイネーブル信号入力端子(DCE)298と接続され、上記
アウトプットイネーブル信号出力端子(DOE)300は信号線
300を介してデータメモリ回路82のアウトプットイネー
ブル信号入力端子(DOE)300 と接続され、上記ライトイ
ネーブル信号出力端子(DWE)302は信号線302を介してデ
ータメモリ回路82のライトイネーブル信号入力端子(DW
E)302と接続されている。
【0041】次にコントローラ30の機能について述べ
る。コントローラ30はCPU 10と同様にクロック信号入力
端子(CLK)200を有し、この入力端子(CLK)200には図示し
ないクロック信号発生回路からのクロック信号が信号線
200を介して入力される。コントローラ30は、このクロ
ック信号に同期した後述する信号を出力する。
【0042】コントローラ30はシステム起動時には論理
値「1」の信号を生成し、またそれ以外の時には論理値
「0」の信号を生成してリセット信号出力端子(RESET)2
40に出力するリセット生成回路を有する。この出力端子
240から論理値「1」の信号が出力されると、後に詳述
する有効ビットメモリ回路70のV[0]からV[1023]のメモ
リの全ビットが「0」になる。すなわち、システムの初
期化が行なわれる。
【0043】コントローラ30のアドレス信号入力端子群
(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に記憶さ
れるアドレスデータとの比較等にそれぞれ用いられる。
【0044】ここで、コントローラ30におけるキャッシ
ュヒット(CPU 10が要求する情報がキャッシュメモリに
存在しているときのことをいう)時の動作とキャッシュ
ミス時の動作について述べる。キャッシュヒットとキャ
ッシュミスは、メモリリードサイクルにおける命令やデ
ータの読み出し時に発生する場合と、メモリライトサイ
クルにおけるデータの書き込み時に発生する場合とがあ
る。メモリリードサイクル時とメモリライトサイクル時
ではコントローラ30の対応は異なる。これについて以下
に詳述する。
【0045】ところで、後述するデータメモリ回路82は
外部メモリ回路96のメモリの一部のコピーの命令やデー
タを保持し、また後述するタグメモリ回路80は上記外部
メモリ回路96のメモリの一部のコピーのアドレスを保持
する。この場合、命令やデータとアドレス(タグ)は対
にして保持される。
【0046】まず、メモリリードサイクルにおける命令
やデータの読み出し時に、キャッシュヒット、キャッシ
ュミスした場合について述べる。
【0047】コントローラ30はCPU 10からのアクセスア
ドレス(α[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に送る。
【0048】タグメモリ回路80およびデータメモリ回路
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に送られる。
【0049】なお、コントローラ30は、タグメモリ回路
80からアドレスデータを読み出す場合に、上述したアド
レス出力端子群(TA[9:0])280からアドレス信号を出力す
る他に、この例ではチップイネーブル出力端子(TCE)286
から論理値「0」の信号を出力し、かつアウトプットイ
ネーブル出力端子(TOE)288から論理値「0」の信号を出
力し、かつライトイネーブル出力端子(TWE)290から論理
値「1」の信号を出力する。
【0050】なおまた、コントローラ30は、データメモ
リ回路82から命令やデータを読み出す場合に、上述した
アドレス出力端子群(DA[9:0])292からアドレス信号を出
力する他に、この例ではチップイネーブル出力端子(DC
E)298から論理値「0」の信号を出力し、かつアウトプ
ットイネーブル出力端子(DOE)300から論理値「0」の信
号を出力し、かつライトイネーブル出力端子(DWE)302か
ら論理値「1」の信号を出力する。
【0051】さらに、上述の動作に並行して後述する有
効ビットメモリ回路70は、入力したアドレス(α[13:4])
に基づく情報が有効である場合にはその出力端子(VALI
D)244からコントローラ30の入力端子(VALID)244に論理
値「1」の信号を送り、また無効の場合には論理値
「0」の信号を送る。
【0052】なお、コントローラ30は、有効ビットメモ
リ回路70から送られる有効または無効の情報を受信する
場合に、上述したアドレス出力端子群(VA[9:0])242から
アドレス信号を出力する他に、この例ではリセット信号
出力端子(RESET)240から論理値「0」の信号を出力し、
かつセット信号出力端子(SET)246から論理値「0」の信
号を出力するのでよい。またこの場合、CPU 10は、本実
施例では、パージ信号出力端子(PURGE)212から論理値
「0」の信号を出力し、出力端子(P I/D)214から論理値
「0」または「1」の信号を出力するのでよい。
【0053】続いてコントローラ30は、アドレスデータ
入力端子群(TQ[17:0])284から入力したアドレス(α[31:
14])と上述のCPU 10からのアクセスアドレス(α[31:0])
の残りの一部であるアドレス(α[31:14])を比較する。
この比較においてこれらアドレスが一致していることお
よび有効ビットメモリ回路70からのVALID信号244が論理
値「1」の信号であれば、コントローラ30は、キャッシ
ュヒットであると判定し、また、この比較において一致
していなことおよび(または)VALID信号244が論理値
「0」の信号であれば、キャッシュミスであると判定す
る。
【0054】キャッシュヒットしたと判定された場合に
ついてのコントローラ30の動作を述べる。すなわち、デ
ータメモリ回路82から読み出されてきた命令やデータが
コントローラ30によりアクセスすべき有効な情報である
と判定された場合には、コントローラ30はこの読み出さ
れてきた情報をデータ出力端子群(RD[31:0])206を通し
てCPU 10のデータ入力端子群(RD[31:0])206に送る(図
6)。
【0055】ところで、アドレス(α[13:4])が等しく、
残りの部分のアドレス(α[31:14])の異なるアドレスを
交互にアクセスすると、毎回入れ替えが起こり、キャッ
シュが有効に働かない場合がある。このような時に、コ
ントローラ30は上述の比較において、キャッシュミスで
あると判定する場合がある。この場合について以下に詳
述する。
【0056】このような場合、コントローラ30は、ライ
ンフィル(この例では外部メモリ回路96との間でライン
全体のデータのやり取りを行なうこと)を行なう。この
場合メモリリードサイクル時のキャッシュミスであるか
ら、具体的には、コントローラ30は次に、外部メモリ回
路96から命令やデータの読み出し動作を行なう。この動
作の詳細を以下に述べる。
【0057】コントローラ30はまず、外部メモリ回路96
から上述したCPU 10からのアクセスアドレス(α[31:0])
に基づく情報を読み出す信号を形成して外部メモリ回路
96に出力する。すなわち、コントローラ30はそのアドレ
ス出力端子群(EA[31:0])220からCPU10からのアクセスア
ドレス信号(α[31:0])202に基づくアドレス信号を出力
する(図6)。
【0058】なお、コントローラ30は、外部メモリ回路
96から命令やデータを読み出す場合に、上述したアドレ
ス出力端子群(EA[31:0])220からアドレス信号を出力す
る他に、本実施例では、チップイネーブル出力端子(EC
E)226から論理値「0」の信号を出力し、かつアウトプ
ットイネーブル出力端子(EOE)228から論理値「0」の信
号を出力し、かつライトイネーブル出力端子(EWE)230か
ら論理値「1」の信号を出力する。
【0059】ここにおいて、外部メモリ回路96について
説明すると、外部メモリ回路96はこの例では命令やデー
タの蓄積されるDRAMと、このDRAMに命令やデータを書き
込んだり、またこのDRAMから命令やデータを読み出した
りする制御回路とから構成されている。
【0060】外部メモリ回路96の制御回路は、コントロ
ーラ30からの上述した各種制御信号を受信すると、この
受信した各種制御信号に基づく読み出し制御信号を形成
してDRAMに送る。これによりDRAMから読み出されてきた
32ビット×4からなる命令情報またはデータ情報は外部
メモリ回路96のデータ出力端子群(Q[31:0])224から出力
される。このデータ出力端子群(Q[31:0])224から出力さ
れた情報はコントローラ30のデータ入力端子群(EQ[31:
0])224に送られる。
【0061】コントローラ30は外部メモリ回路96から読
み出されてきた32ビット×4からなる命令情報またはデ
ータ情報を受けると、タグメモリ回路80、データメモリ
回路82および有効ビットメモリ回路70に対し以下に示す
ような処理を行なう。
【0062】まずタグメモリ回路80に対しは以下に示す
ような処理を行なう。すなわちコントローラ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に出力する。
【0063】ここにおいて、タグメモリ回路80について
説明すると、タグメモリ回路80はこの例ではアドレスデ
ータ(タグ)の蓄積されるSRAMと、このSRAMにアドレス
データを書き込んだり、またこのSRAMからアドレスデー
タを読み出したりする制御回路とから構成されている。
【0064】タグメモリ回路80の制御回路は、コントロ
ーラ30からの上述した各種制御信号を受信すると、この
受信した各種制御信号に基づく書き込み制御信号を形成
してSRAMに送る。これによりこの受信したアドレスデー
タがSRAMに記憶される。
【0065】データメモリ回路82に対しは以下に示すよ
うな処理を行なう。すなわちコントローラ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に出力する。
【0066】ここにおいて、データメモリ回路82につい
て説明すると、データメモリ回路82はこの例では命令情
報またはデータ情報の蓄積されるSRAMと、このSRAMに命
令情報またはデータ情報を書き込んだり、またこのSRAM
から命令情報またはデータ情報を読み出したりする制御
回路とから構成されている。
【0067】データメモリ回路82の制御回路は、コント
ローラ30からの上述した各種制御信号を受信すると、こ
の受信した各種制御信号に基づく書き込み制御信号を形
成してSRAMに送る。これによりこの受信した命令情報ま
たはデータ情報がSRAMに記憶される。
【0068】有効ビットメモリ回路70に対しは以下に示
すような処理を行なう。すなわち上記外部メモリ回路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に出力する。
【0069】これにより、結論からいうと、上記アドレ
ス信号(α[13:4])に対応する有効ビットメモリ回路70の
図1に示すV/A MEM[i]回路34-iのメモリV[i]に論理値
「1」の信号が蓄積され、さらに、このV/A MEM[i]回路
34-iのメモリI/D A[i]に論理値「1」の信号が蓄積され
る。
【0070】また上記外部メモリ回路96から読み出され
てきた32ビット×4からなる情報がキャッシュミスによ
り読み出されてきたデータ情報である場合には、コント
ローラ30は、上述のCPU 10からのアクセスアドレス(α
[31:0])の一部であるアドレス信号(α[13:4])をアドレ
ス出力端子群(VA[9:0])242に出力し、かつ論理値「1」
の信号を形成してセット信号出力端子(SET)246に出力
し、かつ論理値「0」の信号を形成してV I/D信号出力
端子(V I/D )248に出力する。
【0071】これにより、結論からいうと、上記アドレ
ス信号(α[13:4])に対応する有効ビットメモリ回路70の
図1に示すV/A MEM[i]回路34-iのメモリV[i]に論理値
「1」の信号が蓄積され、さらに、このV/A MEM[i]回路
34-iのメモリI/D A[i]に論理値「0」の信号が蓄積され
る。
【0072】ここにおいて、有効ビットメモリ回路70に
ついて説明する。この有効ビットメモリ回路70の回路構
成は図2に示されている。図2を参照すると、この有効
ビットメモリ回路70は、デコーダ回路32、VALID信号メ
モリ[0]回路(V/A MEM[0]回路)34-0〜VALID信号メモリ[1
023]回路(V/A MEM[1023]回路)34-1023およびセレクタ回
路36から構成されている。
【0073】上記V/A MEM[0]回路34-0〜V/A MEM[1023]
回路34-1023の詳細は、図1に示されている。図1はア
ンドゲート(AND)回路38、マルチプレクサ(MUX)回路40、
属性情報(属性ビット)を蓄積するためのフリップフロ
ップ回路(I/D A[i]回路)42-i、選択信号生成回路44、マ
ルチプレクサ(MUX)回路46および有効であるか否かの情
報を蓄積するためのフリップフロップ回路(V[i]回路)48
-iから構成されている。なお、上記iは0〜1023の中の
いずれかである。
【0074】前にも触れたように、有効ビットメモリ回
路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 を有
している。
【0075】クロック信号入力端子(CLK)200に入力した
クロック信号は、信号線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に入力され
る。
【0076】またVALID信号出力端子(VALID)244にはセ
レクタ回路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に入力される。
【0077】またパージ信号入力端子(PURGE)212に入力
したパージ信号は、信号線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に入力され
る。
【0078】有効ビットメモリ回路70の各機能部につい
て説明する。まずデコーダ回路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]の入力端子と接続
されている。
【0079】次はV/A MEM[0] 回路34-0〜V/A MEM[1023]
回路34-1023について述べる。これら回路のそれぞれは
図1に示すようになっているので、図1の回路図を用い
て説明する。
【0080】アンドゲート回路38はこの例では2入力1
出力からなるAND回路である。この2つの入力端子のう
ちの1つの入力端子にはWE[i]入力端子からの信号が入
力され、もう1つの入力端子にはセット信号入力端子(S
ET)246からの信号が入力される。このAND回路38の1つ
の出力端子はマルチプレクサ回路40の選択入力端子S
に接続されている。
【0081】マルチプレクサ回路40はこの例では1つの
選択入力端子Sに入力される信号に基づいて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入
力端子に接続されている。
【0082】属性情報を蓄積するためのフリップフロッ
プ回路(I/D A[i]回路)42-iはこの例ではD型フリップフ
ロップ回路から構成されている。この回路の出力端子は
上述したマルチプレクサ回路40の他に選択信号生成回路
44の所定の入力端子に接続されている。また、この回路
のCLK入力端子はクロック信号入力端子(CLK)200に接続
されている。
【0083】ここで、上述したアンドゲート回路38、マ
ルチプレクサ回路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」にする。
【0084】このことによりアンドゲート回路38の2つ
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路40の選択入力端
子Sに入力されるから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」の信号が蓄積される。
【0085】次にデータリード要求においてキャッシュ
ミスした場合について述べる。この場合、コントローラ
30はアドレス出力端子群(VA[9:0])242にキャッシュミス
におけるアドレス信号(α[13:4])を出力し、かつセット
信号出力端子(SET)246に論理値「1」の信号を出力し、
かつV I/D信号出力端子(V I/D )248に論理値「0」の信
号を出力する。これにより、デコーダ回路32は、アドレ
ス信号(α[13:4])に対応する単一出力WE[i]を論理値
「1」にする。
【0086】このことによりアンドゲート回路38の2つ
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路40の選択入力端
子Sに入力されるから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」の信号が蓄積される。
【0087】選択信号生成回路44は、デコーダ回路32と
フリップフロップ[i]回路(I/D A[i]回路)42-iとから送
られる信号を入力する入力端子の他に、リセット信号入
力端子(RESET)240、セット信号入力端子(SET)246、パー
ジ信号入力端子(PURGE)212および入力端子(P I/D)214
を有している。
【0088】これらリセット信号入力端子(RESET)240、
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P I/D)214は、有効ビットメモリ
回路70の対応するリセット信号入力端子(RESET)240、セ
ット信号入力端子(SET)246、パージ信号入力端子(PURG
E)212および入力端子(P I/D)214と接続されている。
【0089】選択信号生成回路44は、この例では図5の
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路44
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。
【0090】図5の真理値表に示されるselect[1:0]が
「0」とあるのは、下位ビットによる論理値が「0」で
そのすぐ上位のビットによる論理値が「0」であること
を表わし、select[1:0]が「1」とあるのは、下位ビッ
トによる論理値が「1」でそのすぐ上位のビットによる
論理値が「0」であることを表わし、select[1:0]が
「2」とあるのは、下位ビットによる論理値が「0」で
そのすぐ上位のビットによる論理値が「1」であること
を表わしている。
【0091】図5からわかるように、たとえば選択信号
生成回路44のリセット信号入力端子(RESET)240に論理値
「1」の情報が入力した場合には、他の入力信号がどの
ような信号であれ、そのselect[1:0]から「0」の信号
が出力される。これにより最終的には上述したように、
V[0]回路48-0からV[1023]回路48-1023におけるメモリの
全ビットが「0」になる。すなわち、システムの初期化
が行なわれる。
【0092】また、図5からわかるように、たとえば選
択信号生成回路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)。
【0093】また、図5からわかるように、たとえば選
択信号生成回路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)。
【0094】また、図5からわかるように、たとえば選
択信号生成回路44のリセット信号入力端子(RESET)240に
論理値「0」の情報が入力し、かつ、セット信号入力端
子(SET)246に論理値「1」の情報が入力し、かつWE[i]
入力端子のいずれかの入力端子に論理値「1」の情報が
入力し、かつパージ信号入力端子(PURGE)212に論理値
「0」の情報が入力した場合には、他の入力信号がどの
ような信号であれ、そのselect[1:0]から「1」の信号
が出力される。
【0095】これにより最終的には、上記いずれかに対
応するV[i]回路48-iにおけるメモリのビットが「1」に
なる。すなわち、α[31:0]番地に対する命令フェッチ要
求/データリード要求においてキャッシュミスした場
合、ラインフィルを行なって、データメモリ回路82のデ
ータメモリ/タグメモリ回路80のタグメモリのα[13:4]
番地にラインフィルデータ/ラインフィルアドレスを格
納するが、同時にV[i]回路48-iにおけるメモリに論理値
「1」を格納して有効化する(図6)。
【0096】この選択信号生成回路44の2つの出力端子
のうちの下位ビットの出力端子はマルチプレクサ回路46
の選択入力端子Sに接続され、またその上位のビット
の出力端子はマルチプレクサ回路46の選択入力端子S
に接続されている。
【0097】マルチプレクサ回路46はこの例では2つの
選択入力端子SおよびSに入力される信号に基づい
て0と1と2の3つの入力端子に入力される信号のうち
1入力だけを選択して出力するデータセレクタである。
0の入力端子には論理値「0」の情報が入力され、1の
入力端子には論理値「1」の情報が入力され、2の入力
端子には後述するフリップフロップ回路(V[i]回路)48-i
の出力の信号が入力される。このマルチプレクサ回路46
の出力端子は、フリップフロップ回路(V[i]回路)48-iの
D入力端子に接続されている。
【0098】命令やデータが有効であるか否かの情報を
蓄積するためのフリップフロップ回路(V[i]回路)48-iは
この例ではD型フリップフロップ回路から構成されてい
る。このV[i]回路48-iの各々出力端子はそれぞれ対応す
るマルチプレクサ回路46の他にセレクタ回路36のそれぞ
れ対応する入力端子0〜1023に接続されている。またこ
のV[i]回路48-iのCLK入力端子は上述した有効ビットメ
モリ回路70のクロック信号入力端子(CLK)200に接続され
ている。
【0099】図2に戻って、セレクタ回路36はこの例で
は10ビットの入力符号(VA[9:0])つまり10本の制御線
によって1024本の入力信号のうちの1入力だけを選択出
力する1024×1マルチプレクサである。このセレクタ回
路36は、VALID出力端子を有し、この出力端子は、上述
した有効ビットメモリ回路70のVALID信号出力端子(VALI
D)244と接続されている。
【0100】次に、メモリライトサイクルにおけるデー
タの書き込み時に、キャッシュヒット、キャッシュミス
した場合の動作について述べる。
【0101】キャッシュコントローラ30は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
に送る。また上述の動作に並行して、コントローラ30は
CPU 10からの書き込み用のデータ(WD[31:0])204を受け
る。
【0102】次に、タグメモリ回路80は、入力したアド
レス(α[13:4])に基づくそのメモリに記憶されるアドレ
ス(α[31:14])を読み出しアドレスデータ出力端子群(TQ
[17:0])284に送る。このアドレスデータ出力端子群(TQ
[17:0])284に読み出されたアドレス(α[31:14])はコン
トローラ30のアドレスデータ入力端子群(TQ[17:0])284
に送られる。
【0103】なお、コントローラ30は、タグメモリ回路
80からアドレスデータを読み出す場合に、上述したアド
レス出力端子群(TA[9:0])280からアドレス信号を出力す
る他に、この例ではチップイネーブル出力端子(TCE)286
から論理値「0」の信号を出力し、かつアウトプットイ
ネーブル出力端子(TOE)288から論理値「0」の信号を出
力し、かつライトイネーブル出力端子(TWE)290から論理
値「1」の信号を出力する。
【0104】また、上述の動作に並行して、有効ビット
メモリ回路70は、入力したアドレス(α[13:4])に基づく
情報が有効である場合にはその出力端子(VALID)244を介
してコントローラ30の入力端子(VALID)244に論理値
「1」の信号を送り、また無効の場合には論理値「0」
の信号を送る。
【0105】なお、コントローラ30は、有効ビットメモ
リ回路70から送られる有効または無効の情報を受信する
場合に、上述したアドレス出力端子群(VA[9:0])242から
アドレス信号を出力する他に、この例ではリセット信号
出力端子(RESET)240から論理値「0」の信号を出力し、
かつセット信号出力端子(SET)246から論理値「0」の信
号を出力するのでよい。またこの場合、CPU 10は、本実
施例ではそのパージ信号出力端子(PURGE)212から論理値
「0」の信号を出力するとともに、その出力端子(P I/
D)214から論理値「0」または「1」の信号を出力する
のでよい。
【0106】さらに、コントローラ30は、アドレスデー
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 10からのアクセスアドレス(α[31:
0])の一部であるアドレス(α[31:14])を比較する。この
比較において、これらアドレスが一致していることおよ
び有効ビットメモリ回路70からの信号244が論理値
「1」の信号であれば、コントローラ30はキャッシュヒ
ットであると判定し、またこの比較において一致してい
なければ、キャッシュミスであると判定する。
【0107】キャッシュヒットした場合についてのコン
トローラ30の動作を説明する。すなわちコントローラ30
は、CPU 10から送られてきた書き込み用のデータ(WD[3
1:0])204をデータメモリ回路82および外部メモリ回路96
に格納せねばならないライトスルー方式における指示で
あることを知る。
【0108】コントローラ30は、この指示によりCPU 10
から送られてきた書き込み用のデータ(WD[31:0])204を
データ出力端子群(DD[127:0])294およびデータ出力端子
群(ED[31:0])222を通してデータメモリ回路82のデータ
入力端子群(DD[127:0])294および外部メモリ回路96のデ
ータ入力端子群(D[31:0])222に送る。
【0109】また、これに並行して、コントローラ30
は、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に送る。
【0110】なお、コントローラ30は、外部メモリ回路
96にデータを書き込む場合に、上述したアドレスおよび
データを出力する他に、この例ではチップイネーブル出
力端子(ECE)226から論理値「0」の信号を出力し、かつ
アウトプットイネーブル出力端子(EOE)228から論理値
「1」の信号を出力し、かつライトイネーブル出力端子
(EWE)230から論理値「0」の信号を出力する。
【0111】なおまた、コントローラ30はデータメモリ
回路82にデータを書き込む場合に、上述したアドレスお
よびデータを出力する他に、この例ではチップイネーブ
ル出力端子(DCE)298から論理値「0」の信号を出力し、
かつアウトプットイネーブル出力端子(DOE)300から論理
値「1」の信号を出力し、かつライトイネーブル出力端
子(DWE)302から論理値「0」の信号を出力する。
【0112】これにより、アドレスに基づくデータメモ
リ回路82および外部メモリ回路96のメモリ領域にCPU 10
から送られてきた書き込み用のデータ(WD[31:0])204が
格納される。
【0113】次にキャッシュミスした場合についてのコ
ントローラ30の動作を説明する。すなわち、コントロー
ラ30は、CPU 10から送られてきた書き込み用のデータ(W
D[31:0])204を外部メモリ回路96に格納せねばならない
ことを示す指示であることを知る。つまりこれは、キャ
ッシュ部90と外部メモリ回路96との間でラインフィルを
行なわないノーライトアロケート方式の動作ということ
になる。したがって、データメモリ回路82へのデータの
書き込みは行なわない。
【0114】コントローラ30は、この指示によりCPU 10
から送られてきた書き込み用のデータ(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に送る。
【0115】なお、コントローラ30は、外部メモリ回路
96にデータを書き込む場合に、上述したアドレスおよび
データを出力する他に、この例ではチップイネーブル出
力端子(ECE)226から論理値「0」の信号を出力し、かつ
アウトプットイネーブル出力端子(EOE)228から論理値
「1」の信号を出力し、かつライトイネーブル出力端子
(EWE)230から論理値「0」の信号を出力する。
【0116】これによりアドレスに基づく外部メモリ回
路96のメモリ領域にCPU 10から送られてきた書き込み用
のデータ(WD[31:0])204が格納される。
【0117】第1の実施例の動作を説明する。具体的に
はα[31:0]番地の命令フェッチ要求またはデータリード
要求においてキャッシュミスした場合の動作と、その後
に命令ラインまたはデータラインを無効化する場合の動
作について図1〜図6を用いて説明する。
【0118】命令情報を読み出す場合には、CPU 10は、
命令フェッチサイクルにおいて読み出しを行なうアドレ
ス信号α[31:0](図6(b))をアドレス信号出力端子群(CA
[31:0])202から出力し、命令フェッチ要求であることを
示す論理値「1」の信号(図6(d))をアクセスの種別を
示す信号の出力端子(I/D)208から出力する。
【0119】またデータ情報を読み出す場合には、CPU
10はメモリリードサイクルにおいて読み出しを行なうア
ドレス信号α[31:0] (図6(b))をアドレス信号出力端子
群(CA[31:0])202から出力し、データリード要求である
ことを示す論理値「0」の信号(図6(d))をアクセスの
種別を示す信号の出力端子(I/D)208から出力する。
【0120】コントローラ30はCPU 10からのアクセスの
種別を示す信号208を受けることにより、CPU 10からの
要求が命令フェッチ要求なのか、あるいはデータリード
要求なのかを知る。
【0121】コントローラ30は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に送る。
【0122】タグメモリ回路80は入力したアドレス(α
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ30のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ30は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
【0123】上記動作に並行して有効ビットメモリ回路
70は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、その出力端子(VALID)244を介し
てコントローラ30の入力端子(VALID)244に論理値「0」
の信号を送る。
【0124】なお、コントローラ30は、有効ビットメモ
リ回路70から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
【0125】またこの場合、CPU 10は、パージ信号出力
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子(P I/D)214から論理値「0」または「1」の信号を
出力する。
【0126】続いて、コントローラ30は、アドレスデー
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 10からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路
70からのVALID信号244が論理値「0」の信号であること
から、コントローラ30はキャッシュミスであると判定す
る。
【0127】このような場合、コントローラ30は外部メ
モリ回路96との間でラインの命令やデータのやり取りを
行なうラインフィルを行なう。まずコントローラ30は外
部メモリ回路96から上述したCPU 10からのアクセスアド
レス(α[31:0])に基づく情報を読み出す信号(図6
(f))を形成して外部メモリ回路96に出力する。なおコ
ントローラ30は外部メモリ回路96から命令やデータを読
み出す場合に、上述したアドレス出力端子群(EA[31:0])
220からアドレス信号(図6(f))を出力する他に、上述
した信号を出力する。
【0128】コントローラ30は外部メモリ回路96から読
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路70に対し以下に示すような処
理を行なう。
【0129】タグメモリ回路80に対しては次のような処
理を行なう。コントローラ30は上記CPU 10からのアクセ
スアドレス(α[31:0])の一部であるアドレス信号(α[1
3:4])をアドレス出力端子群(TA[9:0])280に出力し、か
つ上記アクセスアドレス(α[31:0])の一部であるアドレ
ス信号(α[31:14])をアドレスデータ出力端子群(TD[17:
0])282に出力する。その他に上述したような信号を出力
する。これによりタグメモリ回路80のSRAMには上記アド
レス信号(α[31:14])すなわちラインフィルアドレスが
蓄積される。
【0130】これに並行してデータメモリ回路82に対し
は次のような処理を行なう。コントローラ30は上記CPU
10からのアクセスアドレス(α[31:0])の一部であるアド
レス信号(α[13:4])をアドレス出力端子群(DA[9:0])292
に出力し、かつ上記外部メモリ回路96から読み出されて
きた128ビット(32ビット×4)からなる命令情報また
はデータ情報(図6(g))をデータ出力端子群(DD[127:
0])294に出力する。その他に上述したような信号を出力
する。これによりデータメモリ回路82のSRAMには上記命
令情報またはデータ情報すなわちラインフィルデータが
蓄積される。
【0131】上記タグメモリ回路80およびデータメモリ
回路82の処理に並行して、有効ビットメモリ回路70に対
しは次のような処理を行なう。
【0132】すなわち、上記外部メモリ回路96から読み
出されてきた情報がキャッシュミスによる命令情報であ
る場合、コントローラ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に出力する。
【0133】これにより、上記アドレス信号(α[13:4])
に対応する有効ビットメモリ回路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の各
部の詳細な動作については上述による。
【0134】また上記外部メモリ回路96から読み出され
てきた情報がキャッシュミスにより読み出されてきたデ
ータ情報である場合には、コントローラ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に出力する。
【0135】これにより、上記アドレス信号(α[13:4])
に対応する有効ビットメモリ回路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」の信号が蓄積
される。
【0136】以上のような状態において命令ラインまた
はデータラインを無効化する場合の動作について説明す
る。
【0137】命令ラインを無効化する場合には、CPU 10
はパージ信号出力端子(PURGE)212から論理値「1」の無
効化要求信号(図7(b))を出力し、出力端子(P I/D)21
4から無効化を行なうラインが命令ラインであることを
示す論理値「1」の信号(図7(c))を出力する。
【0138】また、データラインを無効化する場合に
は、CPU 10はパージ信号出力端子(PURGE)212から論理値
「1」の無効化要求信号(図8(b))を出力し、出力端
子(P I/D)214から無効化を行なうラインがデータライン
であることを示す論理値「0」の信号(図8(c))を出
力する。
【0139】これにより、命令ラインの無効化の場合
は、有効ビットメモリ回路70の選択信号生成回路44のパ
ージ信号入力端子(PURGE)212には論理値「1」の情報が
入力され、入力端子(P I/D)214には無効化するラインの
種別を示す論理値「1」の情報が入力される。
【0140】この場合、コントローラ30は選択信号生成
回路44のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路44およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路70のデコーダ回路32は選択信号生成回路
44およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
【0141】これにより、有効ビットメモリ回路70のフ
リップフロップ[i]回路(I/D A[i]回路)42-iに蓄積され
る情報が論理値「1」である場合には、有効ビットメモ
リ回路70の選択信号生成回路44の対応する入力端子には
論理値「1」の情報が入力される。
【0142】つまり選択信号生成回路44のパージ信号入
力端子(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」の情報が入力される。
【0143】図5からわかるように、選択信号生成回路
44はその出力select[1:0]から「0」の信号を出力する
から、最終的には対応するV[i]回路48-iのメモリに蓄積
される情報を論理値「0」にする。すなわち、命令ライ
ンの無効化要求が発生した場合に、命令フェッチ要求で
キャッシュミスしたラインに対応するV[i]回路48-iのメ
モリに蓄積される情報を論理値「0」にして無効化する
(図7)。
【0144】またデータラインの無効化の場合は、有効
ビットメモリ回路70の選択信号生成回路44のパージ信号
入力端子(PURGE)212には論理値「1」の情報が入力さ
れ、入力端子(P I/D)214には無効化するラインの種別を
示す論理値「0」の情報が入力される。
【0145】この場合、コントローラ30は選択信号生成
回路44のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路44およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路70のデコーダ回路32は選択信号生成回路
44およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
【0146】これにより、有効ビットメモリ回路70のフ
リップフロップ[i]回路(I/D A[i]回路)42-iに蓄積され
る情報が論理値「0」である場合には、有効ビットメモ
リ回路70の選択信号生成回路44の対応する入力端子には
論理値「0」の情報が入力される。
【0147】つまり選択信号生成回路44のパージ信号入
力端子(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」の情報が入力される。
【0148】図5からわかるように、選択信号生成回路
44はその出力select[1:0]から「0」の信号を出力する
から、最終的には対応するV[i]回路48-iのメモリに蓄積
される情報を論理値「0」にする。すなわちデータライ
ンの無効化要求が発生した場合に、データリード要求で
キャッシュミスしたラインに対応するV[i]回路48-iのメ
モリに蓄積される情報を論理値「0」にして無効化する
(図8)。
【0149】このような第1の実施例によれば、命令フ
ェッチ要求またはデータリード要求においてキャッシュ
ミスした命令ラインまたはデータラインをクロック信号
1サイクル分の時間にて無効化することができる。
【0150】その結果、キャッシュメモリの全てのライ
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。
【0151】図9には、第2の実施例によるキャッシュ
メモリにおける部分無効化装置の適用される第2の実施
例のシステムが示されている。この第2の実施例はキャ
ッシュメモリの全ラインのうち、ある特定のメモリ空間
からラインフィルしたラインのみをクロック信号の1サ
イクル分の時間にて無効化するシステムである。
【0152】図9を参照すると、この第2の実施例のシ
ステムは、CPU 12と、キャッシュコントローラ31、有効
ビットメモリ回路72、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部92と、外部メモリ回路
96とから構成されている。
【0153】この図9において、第1の実施例の図3と
同じ参照符号の付されているものは図3のものと基本的
には同じであるから、それについての説明は省略する。
【0154】CPU 12については、第1の実施例のシステ
ムの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に接続されて
いる。
【0155】ここで、リージョン番号について説明す
る。リージョンとは外部メモリ回路96におけるメモリ空
間をこの例では以下に示すように16個の空間に分割して
なるそれぞれの空間のことである。j番目の空間をリー
ジョンjと定義する。
【0156】 リージョン0 00000000〜0fffffff[番地] リージョン1 10000000〜1fffffff[番地] ……… リージョン15 f0000000〜ffffffff[番地] コントローラ31についても、第1の実施例のシステムの
コントローラ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に接続されている。
【0157】有効ビットメモリ回路72について説明す
る。この有効ビットメモリ回路72の回路構成は図10に示
されている。図10を参照すると、この有効ビットメモリ
回路72は、デコーダ回路32、VALID信号メモリ[0]回路(V
/A MEM[0]回路)52-0〜VALID信号メモリ[1023]回路(V/A
MEM[1023]回路)52-1023およびセレクタ回路36から構成
されている。
【0158】この図10において、第1の実施例の図2と
同じ参照符号の付されているものは図2のものと基本的
には同じであるから、それについての説明は省略する。
【0159】上記V/A MEM[0]回路52-0〜V/A MEM[1023]
回路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の中のいずれかである。
【0160】この図11において、第1の実施例の図1と
同じ参照符号の付されているものは図1のものと基本的
には同じであるから、それについては説明を省く。
【0161】マルチプレクサ回路54はこの例では1つの
選択入力端子Sに入力される信号に基づいて0と1の
2つの入力端子に入力される信号のうち1入力だけを選
択して出力する回路が4回路あるデータセレクタであ
る。4個の端子からなる0の入力端子群の各々は後述す
るフリップフロップ[i]回路(REG A[i]回路)56-iの4個
のフリップフロップ回路のうちの対応するフリップフロ
ップ回路の出力と接続され、他の4個の端子からなる1
の入力端子群の各々は上述したV REG信号入力端子群(V
REG)250の対応するV REG信号入力端子と接続されてい
る。
【0162】この4回路の各々4つの出力端子はフリッ
プフロップ[i]回路(REG A[i]回路)56-iの4つのフリッ
プフロップ回路のうちの対応するフリップフロップ回路
のD入力端子に接続されている。
【0163】4個の属性情報を蓄積するためのフリップ
フロップ[i]回路(REG A[i]回路)56-iはこの例ではD型
フリップフロップ回路、4回路から構成されている。こ
の4回路の各々出力端子は上述したマルチプレクサ回路
54の他に選択信号生成回路58の所定の対応する入力端子
に接続されている。また、この4回路のCLK入力端子は
クロック信号入力端子(CLK)200に接続されている。
【0164】ここで、上述したアンドゲート回路38、マ
ルチプレクサ回路54およびフリップフロップ[i]回路(RE
G A[i]回路)56-i により1つの機能部が形成されてい
る。この機能部について以下に述べる。
【0165】すなわち命令フェッチ要求またはデータリ
ード要求においてキャッシュミスした場合に、コントロ
ーラ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」にする。
【0166】このことによりアンドゲート回路38の2つ
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号はマルチプレクサ回路54の選択入力端
子Sに入力されるから1の入力端子群に入力された上
記リージョン番号を表わす4ビットの信号が選択されて
フリップフロップ[i]回路(REG A[i]回路)56-iの4つの
フリップフロップ回路にそれぞれ入力される。
【0167】この4つのにフリップフロップ回路はこの
入力したビット信号を蓄積する。つまり、命令フェッチ
要求またはデータリード要求においてキャッシュミスし
た場合には、フリップフロップ[i]回路(REG A[i]回路)5
6-iにはリージョン番号を表わす4ビットの信号が蓄積
される。
【0168】選択信号生成回路58は、デコーダ回路32と
フリップフロップ[i]回路(REG A[i]回路)56-iとから送
られる信号を入力する入力端子の他に、リセット信号入
力端子(RESET)240、セット信号入力端子(SET)246、パー
ジ信号入力端子(PURGE)212および入力端子(P REG[3:0])
216 を有している。
【0169】これらリセット信号入力端子(RESET)240、
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P REG[3:0])216 は有効ビットメ
モリ回路70の対応するリセット信号入力端子(RESET)24
0、セット信号入力端子(SET)246、パージ信号入力端子
(PURGE)212および入力端子(P REG[3:0])216 と接続され
ている。
【0170】選択信号生成回路58は、この例では図12の
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路58
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。これら出力端子は上
記第1の実施例と同じようにマルチプレクサ回路46に接
続されている。
【0171】第2の実施例の動作を説明する。具体的に
はα[31:0]番地の命令フェッチ要求またはデータリード
要求においてキャッシュミスした場合の動作と、その後
に特定のメモリ空間(リージョン番号)からラインフィ
ルした命令ラインまたはデータラインを無効化する場合
の動作について図6、図9〜図12を用いて説明する。
【0172】命令情報を読み出す場合、CPU 12は、第1
の実施例の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から出力する。
【0173】これにより、コントローラ31はCPU 12から
のアクセスの種別を示す信号208を受けることにより、C
PU 12からの要求が命令フェッチ要求なのか、あるいは
データリード要求なのかを知る。
【0174】コントローラ31は、CPU 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に送る。
【0175】タグメモリ回路80は入力したアドレス(α
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ31のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ31は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
【0176】上記動作に並行して有効ビットメモリ回路
72は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、第1の実施例の有効ビットメモ
リ回路70と同様に、その出力端子(VALID)244を介してコ
ントローラ31の入力端子(VALID)244に論理値「0」の信
号を送る。
【0177】なお、コントローラ31は、有効ビットメモ
リ回路72から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
【0178】またこの場合、CPU 12は、パージ信号出力
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子群(P REG)216から論理値「0」または「1」のいず
れの信号を出力するのでよい。
【0179】続いて、コントローラ31は、アドレスデー
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 12からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路
72からのVALID信号244が論理値「0」の信号であること
から、コントローラ31はキャッシュミスであると判定す
る。
【0180】このような場合、コントローラ31は、コン
トローラ30と同様に、外部メモリ回路96との間でライン
の命令やデータのやり取りを行なうラインフィルを行な
う。まずコントローラ32は外部メモリ回路96から上述し
たCPU12からのアクセスアドレス(α[31:0])に基づく情
報を読み出す信号(図6(f))を形成して外部メモリ回
路96に出力する。なおコントローラ31は外部メモリ回路
96から命令やデータを読み出す場合に、上述したアドレ
ス出力端子群(EA[31:0])220からアドレス信号(図6
(f))を出力する他に、上述した信号を出力する。
【0181】コントローラ31は外部メモリ回路96から読
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路72に対し以下に示すような処
理を行なう。
【0182】コントローラ31のタグメモリ回路80および
データメモリ回路82に対する処理はコントローラ30と同
様なので、その説明は省略する。
【0183】上記タグメモリ回路80およびデータメモリ
回路82の処理に並行して、有効ビットメモリ回路72に対
し次のような処理を行なう。
【0184】すなわち上記外部メモリ回路96から読み出
されてきた情報がキャッシュミスによる命令情報または
データ情報である場合、コントローラ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に出力する。
【0185】これにより、上記アドレス信号(α[13:4])
に対応する有効ビットメモリ回路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の各部の詳細な動作については上述によ
る。
【0186】以上のような状態においてリージョンjに
含まれるラインを無効化する場合の動作について説明す
る。
【0187】リージョンjに含まれるラインを無効化す
る場合には、CPU 12は、パージ信号出力端子(PURGE)212
から論理値「1」の無効化要求信号を出力し、かつ出力
端子(P REG[3:0])216から無効化を行なうラインの存在
するリージョンjの信号(メモリ空間のリージョン番号
を表わすアドレス信号(α[31:28]))を出力する。
【0188】これにより、有効ビットメモリ回路72の選
択信号生成回路58のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P REG[3:0])
216には無効化するラインの存在するリージョン番号を
表わすアドレス信号(α[31:28]))が入力される。
【0189】この場合、コントローラ31は選択信号生成
回路58のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路58およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路72のデコーダ回路32は選択信号生成回路
58およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
【0190】これにより、有効ビットメモリ回路72のフ
リップフロップ[i]回路(REG A[i]回路)56-iに蓄積され
る情報がリージョン番号を表わすアドレス信号(α[31:2
8]))である場合には、有効ビットメモリ回路72の選択
信号生成回路58の対応する入力端子には、上述のリージ
ョン番号を表わすアドレス信号(α[31:28]))が入力さ
れる。
【0191】つまり選択信号生成回路58のパージ信号入
力端子(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]))が
入力される。
【0192】図12より、選択信号生成回路58 はその出
力select[1:0]から「0」の信号を出力するから、最終
的には対応するV[i]回路48-iのメモリに蓄積される情報
を論理値「0」にする。すなわち、無効化するラインの
存在するリージョンjに対する無効化要求が発生した場
合に、命令フェッチ要求またはデータリード要求でキャ
ッシュミスしたラインの存在するリージョンjに対応す
るV[i]回路48-iのメモリに蓄積される情報を論理値
「0」にして無効化する。
【0193】このような第2の実施例によれば、命令フ
ェッチ要求またはデータリード要求においてキャッシュ
ミスしたリージョンjにおける命令ラインまたはデータ
ラインをクロック信号1サイクル分の時間にて無効化す
ることができる。
【0194】その結果、キャッシュメモリの全てのライ
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。
【0195】なお、第2の実施例においては、16個のメ
モリ空間に分割したが、システムによってはたとえば8
個や32個のメモリ空間に分割してもよい。
【0196】図13には、第3の実施例によるキャッシュ
メモリにおける部分無効化装置の適用される第3の実施
例のシステムが示されている。この第3の実施例は、キ
ャッシュメモリの全ラインのうち、ある特権レベルでア
クセスされるメモリ空間に属するラインのみをクロック
信号の1サイクル分の時間にて無効化するシステムであ
る。
【0197】図13を参照すると、この第3の実施例のシ
ステムは、CPU 14と、キャッシュコントローラ33、有効
ビットメモリ回路74、タグメモリ回路80およびデータメ
モリ回路82からなるキャッシュ部94と、外部メモリ回路
96とから構成されている。
【0198】この図13において、第1の実施例の図3と
同じ参照符号の付されているものは図3のものと基本的
には同じであるから、それについての説明は省略する。
【0199】CPU 14については、第1の実施例のシステ
ムの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に接続されている。
【0200】ここで、CPU 14の現在の特権レベルについ
て説明する。CPU 14の現在の特権レベルにはスーパバイ
ザモード状態の場合とユーザモード状態の場合がある。
この例ではCPU 14の現在の特権レベルがスーパバイザモ
ード状態である場合には論理値「1」の信号をP PRIV出
力端子218から出力し、またユーザモード状態である場
合には論理値「0」の信号をP PRIV出力端子218から出
力する。
【0201】コントローラ33についても、第1の実施例
のシステムのコントローラ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に
接続されている。
【0202】有効ビットメモリ回路74について説明す
る。この有効ビットメモリ回路74の回路構成は図14に示
されている。図14を参照すると、この有効ビットメモリ
回路74は、デコーダ回路32、VALID信号メモリ[0]回路(V
/A MEM[0]回路)60-0〜VALID信号メモリ[1023]回路(V/A
MEM[1023]回路)60-1023およびセレクタ回路36から構成
されている。
【0203】この図14において、第1の実施例の図2と
同じ参照符号の付されているものは図2のものと基本的
には同じであるから、それについての説明は省略する。
【0204】上記V/A MEM[0]回路60-0〜V/A MEM[1023]
回路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の中のいずれかである。
【0205】この図15において、第1の実施例の図1と
同じ参照符号が付されているものは図1のものと基本的
には同じであるから、それについては説明を省く。
【0206】マルチプレクサ回路62はこの例では1つの
選択入力端子Sに入力される信号に基づいて0と1の
2つの入力端子に入力される信号のうち1入力だけを選
択して出力するデータセレクタである。0の入力端子は
後述するフリップフロップ回路(PRIV A[i]回路)64-iの
出力に接続され、他の1の入力端子は上述したV PRIV信
号入力端子(V PRIV)252と接続されている。この回路の
出力端子はフリップフロップ[i]回路(PRIV A[i]回路)64
-iのD入力端子に接続されている。
【0207】属性情報を蓄積するためのフリップフロッ
プ[i]回路(PRIV A[i]回路)64-iはこの例ではD型フリッ
プフロップ回路から構成されている。この回路の出力端
子は上述したマルチプレクサ回路62の他に選択信号生成
回路66の所定の入力端子に接続されている。また、この
回路のCLK入力端子は有効ビットメモリ回路74のクロッ
ク信号入力端子(CLK)200に接続されている。
【0208】ここで、上述したアンドゲート回路38、マ
ルチプレクサ回路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」に
する。
【0209】このことによりアンドゲート回路38の2つ
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号は、マルチプレクサ回路62の選択入力
端子Sに入力されるから1の入力端子に入力された論
理値「1」の信号が選択されてフリップフロップ[i]回
路(PRIV A[i]回路)64-iに入力される。フリップフロッ
プ[i]回路(PRIV A[i]回路)64-iはこの入力した論理値
「1」の信号を蓄積する。つまり命令フェッチ要求およ
びデータリード要求においてスーパバイザモード状態に
てキャッシュミスした場合には、フリップフロップ[i]
回路(PRIV A[i]回路)64-iには論理値「1」の信号が蓄
積される。
【0210】次に命令フェッチ要求およびデータリード
要求においてユーザモード状態にてキャッシュミスした
場合について述べる、この場合は、コントローラ33はア
ドレス出力端子群(VA[9:0])242にキャッシュミス時にお
けるアドレス信号(α[13:4])を出力し、かつセット信号
出力端子(SET)246に論理値「1」の信号を出力し、かつ
V PRIV信号出力端子(V PRIV)252に論理値「0」の信号
を出力する。これにより、デコーダ回路32は、アドレス
信号(α[13:4])に対応する単一出力WE[i]を論理値
「1」にする。
【0211】このことによりアンドゲート回路38の2つ
の入力端子には共に論理値「1」の信号が入力されるか
らこの回路の出力からは論理値「1」の信号が出力され
る。この出力信号は、マルチプレクサ回路62の選択入力
端子Sに入力されるから1の入力端子に入力された論
理値「0」の信号が選択されてフリップフロップ[i]回
路(PRIV A[i]回路)64-iに入力される。フリップフロッ
プ[i]回路(PRIV A[i]回路)64-iはこの入力した論理値
「0」の信号を蓄積する。つまり命令フェッチ要求およ
びデータリード要求においてユーザモード状態にてキャ
ッシュミスした場合には、フリップフロップ[i]回路(PR
IV A[i]回路)64-iには論理値「0」の信号が蓄積され
る。
【0212】選択信号生成回路66はデコーダ回路32とフ
リップフロップ[i]回路(PRIV A[i]回路)64-iとから送ら
れる信号を入力する入力端子の他に、リセット信号入力
端子(RESET)240、セット信号入力端子(SET)246、パージ
信号入力端子(PURGE)212および入力端子(P PRIV)218 を
有している。
【0213】これらリセット信号入力端子(RESET)240、
セット信号入力端子(SET)246、パージ信号入力端子(PUR
GE)212および入力端子(P PRIV)218 は有効ビットメモリ
回路74の対応するリセット信号入力端子(RESET)240、セ
ット信号入力端子(SET)246、パージ信号入力端子(PURG
E)212および入力端子(P PRIV)218と接続されている。
【0214】選択信号生成回路66は、この例では図16の
真理値表に示される入力信号が入力された場合に、これ
に対応する同図の真理値表に示される出力信号が生成さ
れて出力される回路である。この選択信号生成回路66
は、select[1:0]出力端子を有し、この端子は下位ビッ
トによる情報を出力する端子とそのすぐ上位のビットに
よる情報を出力する端子からなる。これら出力端子は上
記第1の実施例と同じようにマルチプレクサ回路46に接
続されている。
【0215】第3の実施例の動作を説明する。具体的に
は、α[31:0]番地の命令フェッチ要求/データリード要
求においてスーパバイザモード状態/ユーザモード状態
にてキャッシュミスした場合の動作と、その後に上記ス
ーパバイザモード状態/ユーザモード状態における命令
ラインまたはデータラインを無効化する場合の動作につ
いて図6、図13〜図16を用いて説明する。
【0216】命令情報を読み出す場合、CPU 14は上記CP
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から出力する。
【0217】第3の実施例の場合、CPU 14は上記信号の
他に自CPU 14の現在の特権レベルを表わす信号すなわち
スーパバイザモード状態である場合には、論理値「1」
の信号を形成し、またユーザモード状態である場合に
は、論理値「0」の信号を形成してP PRIV出力端子218
に出力する。
【0218】これによりコントローラ33はCPU 14からの
信号208を受けることにより、CPU 14からの要求が命令
フェッチ要求なのか、あるいはデータリード要求なのか
を知るとともに、CPU 14からの信号218を受けることに
より、現在のCPU 14の特権レベルの状態がスーパバイザ
モードなのか、あるいはユーザモードなのかを知る。
【0219】コントローラ33は、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に送る。
【0220】タグメモリ回路80は入力したアドレス(α
[13:4])に基づくそのメモリに記憶されるアドレス(α[3
1:14])を読み出しアドレスデータ出力端子群(TQ[17:0])
284を介してコントローラ33のアドレスデータ入力端子
群(TQ[17:0])284に送る。なおコントローラ33は、タグ
メモリ回路80からアドレスデータを読み出す場合に、上
述したアドレス出力端子群(TA[9:0])280からアドレス信
号を出力する他に、上述した信号を出力する。
【0221】上記動作に並行して有効ビットメモリ回路
74は、入力したアドレス(α[13:4])に基づく情報がこの
場合無効であったので、第1の実施例の有効ビットメモ
リ回路70と同様に、その出力端子(VALID)244を介してコ
ントローラ33の入力端子(VALID)244に論理値「0」の信
号を送る。
【0222】なお、コントローラ33は、有効ビットメモ
リ回路74から送られる無効の情報を受信する場合に、上
述したアドレス出力端子群(VA[9:0])242からアドレス信
号を出力する他に、リセット信号出力端子(RESET)240か
ら論理値「0」の信号を出力し、かつセット信号出力端
子(SET)246から論理値「0」の信号を出力する。
【0223】またこの場合、CPU 14は、パージ信号出力
端子(PURGE)212から論理値「0」の信号を出力し、出力
端子(P PRIV)218から論理値「0」または「1」のいず
れの信号を出力するのでよい。
【0224】続いて、コントローラ33は、アドレスデー
タ入力端子群(TQ[17:0])284から入力したアドレス(α[3
1:14])と上述のCPU 14からのアクセスアドレス(α[31:
0])の残りの一部であるアドレス(α[31:14])を比較す
る。この場合、この比較においてこれらアドレスが一致
していないことおよび(または)有効ビットメモリ回路74
からのVALID信号244が論理値「0」の信号であることか
ら、コントローラ33はキャッシュミスであると判定す
る。
【0225】このような場合、コントローラ33はコント
ローラ30と同様に、外部メモリ回路96との間でラインの
命令やデータのやり取りを行なうラインフィルを行なう
が、この動作は上記第1および第2の実施例と同じなの
で説明を省く。
【0226】コントローラ33は外部メモリ回路96から読
み出されてきた128ビット(32ビット×4)からなる命
令情報224(図6(g))またはデータ情報224(図6(g))
を受けると、タグメモリ回路80、データメモリ回路82お
よび有効ビットメモリ回路74に対し以下に示すような処
理を行なう。
【0227】コントローラ33のタグメモリ回路80および
データメモリ回路82に対する処理はコントローラ30と同
様なので、その説明は省略する。
【0228】上記タグメモリ回路80およびデータメモリ
回路82の処理に並行して、有効ビットメモリ回路74に対
し次のような処理を行なう。
【0229】すなわち、上記外部メモリ回路96から読み
出されてきた情報が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に出力する。
【0230】これにより、上記アドレス信号(α[13:4])
に対応する有効ビットメモリ回路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」の信号が蓄積される。
【0231】またCPU 14からの特権レベルがユーザモー
ド状態である場合、コントローラ34は、上述のCPU 14か
らのアクセスアドレス(α[31:0])の一部であるアドレス
信号(α[13:4]) (図6(h))をアドレス出力端子群(VA[9:
0])242に出力し、かつ論理値「1」の信号(図6(i))を
形成してセット信号出力端子(SET)246に出力し、かつユ
ーザモード状態であることを表わす論理値「0」である
信号を形成してV PRIV信号出力端子(V PRIV)252に出力
する。
【0232】これにより、上記アドレス信号(α[13:4])
に対応する有効ビットメモリ回路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の各部の詳細な動作に
ついては上述による。
【0233】以上のような状態においてスーパバイザモ
ード状態におけるラインを無効化する場合の動作につい
て説明する。
【0234】スーパバイザモード状態におけるラインを
無効化する場合には、CPU 14はパージ信号出力端子(PUR
GE)212から論理値「1」の無効化要求信号を出力し、か
つ出力端子(P PRIV)218から無効化を行なうラインがス
ーパバイザモード状態におけるものであることを表わす
論理値「1」の信号を出力する。
【0235】これにより、有効ビットメモリ回路74の選
択信号生成回路66のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P PRIV)218
には無効化を行なうラインがスーパバイザモード状態に
おけるものであることを表わす論理値「1」の信号が入
力される。
【0236】この場合、コントローラ33は選択信号生成
回路66のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路66およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路74のデコーダ回路32は選択信号生成回路
66およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
【0237】これにより、有効ビットメモリ回路74のフ
リップフロップ[i]回路(PRIV A[i]回路)56-iに蓄積され
る情報がスーパバイザモード状態を表わす論理値「1」
の信号である場合には、有効ビットメモリ回路74の選択
信号生成回路66の対応する入力端子には、上述のスーパ
バイザモード状態を表わす論理値「1」の信号が入力さ
れる。
【0238】つまり選択信号生成回路66のパージ信号入
力端子(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」の情報が
入力される。
【0239】図16より、選択信号生成回路66はその出力
select[1:0]から「0」の信号を出力するから、最終的
には対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にする。すなわちスーパバイザモード状態
において命令フェッチ要求またはデータリード要求され
てキャッシュミスしたラインに対する無効化要求が発生
した場合には、スーパバイザモード状態において命令フ
ェッチ要求またはデータリード要求されてキャッシュミ
スしたラインに対応するV[i]回路48-iのメモリに蓄積さ
れる情報を論理値「0」にして無効化する。
【0240】次に、ユーザモード状態におけるラインを
無効化する場合の動作について説明する。
【0241】ユーザモード状態におけるラインを無効化
する場合には、CPU 14はパージ信号出力端子(PURGE)212
から論理値「1」の無効化要求信号を出力し、かつ出力
端子(P PRIV)218から無効化を行なうラインがユーザモ
ード状態におけるものであることを表わす論理値「0」
の信号を出力する。
【0242】これにより、有効ビットメモリ回路74の選
択信号生成回路66のパージ信号入力端子(PURGE)212には
論理値「1」の情報が入力され、入力端子(P PRIV)218
には無効化を行なうラインがユーザモード状態における
ものであることを表わす論理値「0」の信号が入力され
る。
【0243】この場合、コントローラ33は選択信号生成
回路66のリセット信号入力端子(RESET)240へ論理値
「0」の情報を出力し、選択信号生成回路66およびアン
ドゲート回路38のセット信号入力端子(SET)246へ論理値
「0」かあるいは「1」の情報を出力する。また有効ビ
ットメモリ回路74のデコーダ回路32は選択信号生成回路
66およびアンドゲート回路38のWE[i]入力端子へ論理値
「0」の情報を出力する。
【0244】これにより、有効ビットメモリ回路74のフ
リップフロップ[i]回路(PRIV A[i]回路)56-iに蓄積され
る情報がユーザモード状態を表わす論理値「0」の信号
である場合には、有効ビットメモリ回路74の選択信号生
成回路66の対応する入力端子には、上述のユーザモード
状態を表わす論理値「0」の信号が入力される。
【0245】つまり選択信号生成回路66のパージ信号入
力端子(PURGE)212には論理値「1」の情報が入力され、
入力端子(P PRIV)218には無効化するラインがユーザモ
ード状態におけるものであることを表わす論理値「0」
の信号が入力され、リセット信号入力端子(RESET)240に
は論理値「0」の情報が入力され、セット信号入力端子
(SET)246には論理値「0」かあるいは論理値「1」が入
力され、WE[i]入力端子には論理値「0」の情報が入力
され、フリップフロップ[i]回路(PRIV A[i]回路)64-iの
出力と接続される入力端子にはユーザモード状態である
ことを表わす論理値「0」の情報が入力される。
【0246】図16より、選択信号生成回路66はその出力
select[1:0]から「0」の信号を出力するから、最終的
には対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にする。すなわち、ユーザモード状態にお
いて命令フェッチ要求またはデータリード要求されてキ
ャッシュミスしたラインに対する無効化要求が発生した
場合には、ユーザモード状態において命令フェッチ要求
またはデータリード要求されてキャッシュミスしたライ
ンに対応するV[i]回路48-iのメモリに蓄積される情報を
論理値「0」にして無効化する。
【0247】このような第3の実施例によれば、スーパ
バイザモード状態またはユーザモード状態において命令
フェッチ要求またはデータリード要求されてキャッシュ
ミスした命令ラインまたはデータラインをクロック信号
1サイクル分の時間にて無効化することができる。
【0248】その結果、キャッシュメモリの全てのライ
ンを無効化する場合に比べ、その後のキャッシュヒット
率が低下せず、システム全体の性能低下を避けることが
できる。このような無効化機能は、特権レベルに応じて
アクセスできるメモリ空間が異なるような場合に有効で
ある。
【0249】ここで上記実施例の利用形態について述べ
ると、第1の実施例は、キャッシュメモリのメモリ容
量、ウェイ数などに依存しないので全てのユニファイド
キャッシュに適用できる。また、第2、第3の実施例
は、全てのキャッシュ方式に適用できる。
【0250】またこれらの実施例を組み合わせること
で、無効化するラインの属性をより複雑な条件で選ぶこ
とができる。この場合のV/A MEM[i]回路の一例が図17に
示されている。また、この図17の選択信号生成回路は、
たとえば図18に示す真理値表に従う選択回路である。こ
の選択回路によれば、CPU がある特権レベルの時に、あ
るリージョンからラインフィルした命令ラインのみ、あ
るいはデータラインのみを無効化することができる。
【0251】なお、上記第1、第2、第3の実施例のCP
U においては32ビット幅のCPU を用いたが、システムに
よってはたとえば64ビット幅や16ビット幅のCPU を用い
てもよい。したがって、システムによっては図4に示す
各フィールドのビット幅は適当に選べばよい。
【0252】
【発明の効果】このように本発明によれば、有効ビット
メモリ手段は、中央処理手段により形成されたパージ信
号およびライン種別信号を受け、かつ属性情報記憶手段
群の各々からそれぞれ属性情報を受け、この受けたパー
ジ信号が無効化要求信号を示す信号であり、かつこの受
けたライン種別信号が命令ラインを示す信号であり、か
つこの受けた属性情報が命令ラインを示す信号である場
合には、この属性情報の記憶される属性情報記憶手段に
対応する有効・無効記憶手段に記憶される情報を無効で
あることを示す情報にし、またこの受けたパージ信号が
無効化要求信号を示す信号であり、かつこの受けたライ
ン種別信号がデータラインを示す信号であり、かつこの
受けた属性情報がデータラインであることを示す信号で
ある場合には、この属性情報の記憶される属性情報記憶
手段に対応する有効・無効記憶手段に記憶される情報を
無効であることを示す情報にすることができる。
【0253】すなわち、統合型キャッシュメモリにおい
て、命令フェッチ要求に対してラインフィルした全ての
ラインをクロック信号1サイクル分の時間にて無効化す
ることができる。また、データアクセス要求に対してラ
インフィルした全てのラインをクロック信号1サイクル
分の時間にて無効化することができる。その結果、キャ
ッシュメモリの全てのラインを無効化する場合に比べ、
その後のキャッシュヒット率が低下せず、システム全体
の性能低下を避けることができるという効果がある。
【0254】また、このように本発明によれば、有効ビ
ットメモリ手段は、中央処理手段により形成されたパー
ジ信号およびリージョン番号情報を受け、かつ属性情報
記憶手段群の各々からそれぞれリージョン番号情報を受
け、この受けたパージ信号が無効化要求信号を示す信号
であり、かつ中央処理手段から受けたリージョン番号情
報とこの属性情報記憶手段群から受けたリージョン番号
情報が一致した場合には、この属性情報記憶手段に対応
する有効・無効記憶手段に記憶される情報を無効である
ことを示す情報にすることができる。
【0255】すなわち、リージョンjからラインフィル
した全てのラインのみをクロック信号1サイクル分の時
間にて無効化することができる。その結果、キャッシュ
メモリの全てのラインを無効化する場合に比べ、その後
のキャッシュヒット率が低下せず、システム全体の性能
低下を避けることができるという効果がある。
【0256】さらに、このように本発明によれば、有効
ビットメモリ手段は中央処理手段により形成されたパー
ジ信号および第2のモード識別信号を受け、かつ属性情
報記憶手段群の各々からそれぞれ属性情報を受け、この
受けたパージ信号が無効化要求信号を示す信号であり、
かつこの受けた第2のモード識別信号がスーパバイザモ
ードを示す信号であり、かつこの受けた属性情報がスー
パバイザモードを示す信号である場合には、この属性情
報の記憶される属性情報記憶手段に対応する有効・無効
記憶手段に記憶される情報を無効であることを示す情報
にし、またこの受けたパージ信号が無効化要求信号を示
す信号であり、かつこの受けた第2のモード識別信号が
ユーザモードを示す信号であり、かつこの受けた属性情
報がユーザモードであることを示す信号である場合に
は、この属性情報の記憶される属性情報記憶手段に対応
する有効・無効記憶手段に記憶される情報を無効である
ことを示す情報にすることができる。
【0257】すなわち、スーパバイザモードまたはユー
ザモードにおいてラインフィルした全てのラインのみを
クロック信号1サイクル分の時間にて無効化することが
できる。その結果、キャッシュメモリの全てのラインを
無効化する場合に比べ、その後のキャッシュヒット率が
低下せず、システム全体の性能低下を避けることができ
るという効果がある。
【図面の簡単な説明】
【図1】図2に示す第1の実施例におけるV/A MEM[i]の
構成例を示す図である。
【図2】図3に示す第1の実施例における有効ビットメ
モリの構成例を示す図である。
【図3】第1の実施例によるキャッシュメモリにおける
部分無効化装置の適用される第1の実施例のシステムの
ブロック図である。
【図4】第1、第2、第3、第4の実施例の動作説明図
である。
【図5】図1に示す第1の実施例における選択信号生成
回路の動作説明図である。
【図6】第1の実施例の動作説明図である。
【図7】第1の実施例の命令ラインの無効化動作を説明
する図である。
【図8】第1の実施例のデータラインの無効化動作を説
明する図である。
【図9】第2の実施例によるキャッシュメモリにおける
部分無効化装置の適用される第2の実施例のシステムの
ブロック図である。
【図10】図9に示す第2の実施例による有効ビットメ
モリの構成例を示す図である。
【図11】図10に示す第2の実施例におけるV/A MEM
[i]の構成例を示す図である。
【図12】図11に示す第2の実施例における選択信号
生成回路の動作説明図である。
【図13】第3の実施例によるキャッシュメモリにおけ
る部分無効化装置の適用される第3の実施例のシステム
のブロック図である。
【図14】図13に示す第3の実施例による有効ビット
メモリの構成例を示す図である。
【図15】図14に示す第3の実施例におけるV/A MEM
[i]の構成例を示す図である。
【図16】図15に示す第3の実施例における選択信号
生成回路の動作説明図である。
【図17】第4の実施例におけるV/A MEM[i]の構成例を
示す図である。
【図18】図17に示す第4の実施例における選択信号
生成回路の動作説明図である。
【符号の説明】
10,12,14 CPU 30,31,33 キャッシュコントローラ 32 デコーダ回路 34-i,52-i,60-i VALID信号メモリ[i]回路(V/A MEM[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のア
    ドレス信号群がキャッシュミス時によるものである場合
    にはラインフィルを行なうための該第1のアドレス信号
    群に基づく所定の複数のビットからなる第2のアドレス
    信号群を形成し、かつ該受信した第1のアドレス信号群
    を所定の複数のビットのうちの下位側の所定の複数のビ
    ットをライン内オフセットフィールドアドレス信号群と
    し、該アドレス信号群より上位の所定の複数のビットを
    インデックスフィールドアドレス信号群とし、該アドレ
    ス信号群より上位の残りの所定の複数のビットをタグフ
    ィールドアドレス信号群とに分割し、かつ該受信したア
    クセス種別信号がキャッシュミス時によるものである場
    合であって該アクセス種別信号が命令フェッチ要求であ
    る場合にはそれを示す属性情報をまたデータアクセス要
    求である場合にはそれを示す属性情報を形成する制御手
    段と、 前記タグフィールドアドレス信号群と同じビット構成か
    らなる第1のタグアドレス信号群を記憶するアドレス情
    報記憶手段を含み、かつ該制御手段により分割されたイ
    ンデックスフィールドアドレス信号群を受信し、該受信
    したアドレス信号群の示す該アドレス情報記憶手段の記
    憶領域から第1のタグアドレス信号群を読み出すタグメ
    モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
    前記第1のタグアドレス信号群が有効であるか否かの情
    報を記憶する有効・無効記憶手段群を含み、かつ前記制
    御手段により分割されたインデックスフィールドアドレ
    ス信号群を受信し、該受信したアドレス信号群の示す該
    有効・無効記憶手段の記憶領域から有効であるか否かの
    情報を読み出す有効ビットメモリ手段と、 前記制御手段はさらに、前記分割したタグフィールドア
    ドレス信号群と前記タグメモリ手段からの第1のタグア
    ドレス信号群の比較を行ない、該比較において一致しか
    つ該有効ビットメモリ手段からの情報が有効であること
    を示す情報ならばキャッシュヒットと判定し、また該比
    較において一致しないかあるいは(および)該有効ビッ
    トメモリ手段からの情報が無効であることを示す情報な
    らばキャッシュミスと判定する判定手段を含み、 前記制御手段に接続される外部メモリ手段を有し、 前記有効ビットメモリ手段はさらに、キャッシュミス時
    におけるインデックスフィールドアドレス信号群および
    属性情報を前記制御手段から受信し、該受信したアドレ
    ス信号群の示す記憶領域に該受信した属性情報を記憶す
    る属性情報記憶手段群を含み、 前記制御手段は、キャッシュミスと判定した場合には、
    外部メモリ手段との間でラインフィルを行なうための該
    キャッシュミス時における前記中央処理手段からの第1
    のアドレス信号群に基づく第2のアドレス信号群を形成
    して外部メモリ手段に出力し、続いて該キャッシュミス
    時のラインが命令フェッチ要求によるものである場合に
    はそれを示す属性情報をまたデータアクセス要求による
    ものである場合にはそれを示す属性情報を該キャッシュ
    ミス時に分割されたインデックスフィールドアドレス信
    号群とともに前記属性情報記憶手段に出力して該アドレ
    ス信号群の示す記憶領域に該受けた属性情報を記憶さ
    せ、かつ該分割されたインデックスフィールドアドレス
    信号群を前記有効・無効記憶手段に出力して該アドレス
    信号群の示す記憶領域に有効であることを示す情報を記
    憶させることを特徴とするユニファイドキャッシュメモ
    リにおける部分無効化装置。
  2. 【請求項2】 請求項1に記載のユニファイドキャッシ
    ュメモリにおける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
    かを示すパージ信号を形成し、かつ該無効化するライン
    が命令フェッチ要求であるのかまたはデータアクセス要
    求であるのかを示すライン種別信号を形成する手段を含
    み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
    より形成されたパージ信号およびライン種別信号を受
    け、かつ前記属性情報記憶手段群の各々からそれぞれ属
    性情報を受け、該受けたパージ信号が無効化要求信号を
    示す信号であり、かつ該受けたライン種別信号が命令フ
    ェッチ要求によるものを示す信号であり、かつ該受けた
    属性情報が命令フェッチ要求によるものを示す信号であ
    る場合には、該属性情報の記憶される属性情報記憶手段
    に対応する有効・無効記憶手段に記憶される情報を無効
    であることを示す情報にし、また該受けたパージ信号が
    無効化要求信号を示す信号であり、かつ該受けたライン
    種別信号がデータアクセス要求によるものを示す信号で
    あり、かつ該受けた属性情報がデータアクセス要求によ
    るものを示す信号である場合には、該属性情報の記憶さ
    れる属性情報記憶手段に対応する有効・無効記憶手段に
    記憶される情報を無効であることを示す情報にすること
    を特徴とするユニファイドキャッシュメモリにおける部
    分無効化装置。
  3. 【請求項3】 アクセスのためのアドレスを示す所定の
    複数のビットからなる第1のアドレス信号群を形成する
    中央処理手段と、 該中央処理手段により形成された第1のアドレス信号群
    を受信し、該受信した第1のアドレス信号群がキャッシ
    ュミス時によるものである場合にはラインフィルを行な
    うための該第1のアドレス信号群に基づく所定の複数の
    ビットからなる第2のアドレス信号群を形成し、かつ該
    受信した第1のアドレス信号群を所定の複数のビットの
    うちの下位側の所定の複数のビットをライン内オフセッ
    トフィールドアドレス信号群とし、該アドレス信号群よ
    り上位の所定の複数のビットをインデックスフィールド
    アドレス信号群とし、該アドレス信号群より上位の残り
    の所定の複数のビットをタグフィールドアドレス信号群
    とに分割する制御手段と、 前記タグフィールドアドレス信号群と同じビット構成か
    らなる第1のタグアドレス信号群を記憶するアドレス情
    報記憶手段を含み、かつ該制御手段により分割されたイ
    ンデックスフィールドアドレス信号群を受信し、該受信
    したアドレス信号群の示す該アドレス情報記憶手段の記
    憶領域から第1のタグアドレス信号群を読み出すタグメ
    モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
    前記第1のタグアドレス信号群が有効であるか否かの情
    報を記憶する有効・無効記憶手段群を含み、かつ前記制
    御手段により分割されたインデックスフィールドアドレ
    ス信号群を受信し、該受信したアドレス信号群の示す該
    有効・無効記憶手段の記憶領域から有効であるか否かの
    情報を読み出す有効ビットメモリ手段と、 前記制御手段に接続される外部メモリ手段を有し、 前記制御手段はさらに、前記分割したタグフィールドア
    ドレス信号群と前記タグメモリ手段からの第1のタグア
    ドレス信号群の比較を行ない、該比較において一致しか
    つ該有効ビットメモリ手段からの情報が有効であること
    を示す情報ならばキャッシュヒットと判定し、また該比
    較において一致しないかあるいは(および)該有効ビッ
    トメモリ手段からの情報が無効であることを示す情報な
    らばキャッシュミスと判定する判定手段と、 前記受信した第1のアドレス信号群の上位側の所定の複
    数のビットを前記外部メモリ手段のメモリ空間を所定の
    複数のメモリ空間に分割してなる各々空間のリージョン
    番号情報とするリージョン番号情報生成手段とを含み、 前記有効ビットメモリ手段はさらに、キャッシュミス時
    におけるインデックスフィールドアドレス信号群を前記
    制御手段から受信し、かつリージョン番号情報を該リー
    ジョン番号情報生成手段から受信し、該受信したアドレ
    ス信号群の示す記憶領域に該受信したリージョン番号情
    報を属性情報として記憶する属性情報記憶手段群を含
    み、 前記制御手段は、キャッシュミスと判定した場合には、
    外部メモリ手段との間でラインフィルを行なうための該
    キャッシュミス時における前記中央処理手段からの第1
    のアドレス信号群に基づく第2のアドレス信号群を形成
    して外部メモリ手段に出力し、続いて該キャッシミス時
    において前記リージョン番号情報生成手段により形成さ
    れたリージョン番号情報を該キャッシュミス時に分割さ
    れたインデックスフィールドアドレス信号群とともに前
    記属性情報記憶手段に出力して該アドレス信号群の示す
    記憶領域に該受けたリージョン番号情報を記憶させ、か
    つ該分割されたインデックスフィールドアドレス信号群
    を前記有効・無効記憶手段に出力して該アドレス信号群
    の示す記憶領域に有効であることを示す情報を記憶させ
    ることを特徴とするキャッシュメモリにおける部分無効
    化装置。
  4. 【請求項4】 請求項3に記載のキャッシュメモリにお
    ける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
    かを示すパージ信号を形成し、かつ該無効化するライン
    のリージョン番号情報を形成して出力する手段を含み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
    より形成されたパージ信号およびリージョン番号情報を
    受け、かつ前記属性情報記憶手段群の各々からそれぞれ
    リージョン番号情報を受け、該受けたパージ信号が無効
    化要求信号を示す信号であり、かつ該中央処理手段から
    受けたリージョン番号情報と該属性情報記憶手段群から
    受けたリージョン番号情報が一致した場合には、該属性
    情報記憶手段に対応する有効・無効記憶手段に記憶され
    る情報を無効であることを示す情報にすることを特徴と
    するキャッシュメモリにおける部分無効化装置。
  5. 【請求項5】 アクセスのためのアドレスを示す所定の
    複数のビットからなる第1のアドレス信号群を形成し、
    該アクセスの特権レベルがスーパバイザモードであるの
    かまたはユーザモードであるのかを示す第1のモード識
    別信号を形成して出力する中央処理手段と、 該中央処理手段により形成された第1のアドレス信号群
    および第1のモード識別信号を受信し、該受信した第1
    のアドレス信号群がキャッシュミス時によるものである
    場合にはラインフィルを行なうための該第1のアドレス
    信号群に基づく所定の複数のビットからなる第2のアド
    レス信号群を形成し、かつ該受信した第1のアドレス信
    号群を所定の複数のビットのうちの下位側の所定の複数
    のビットをライン内オフセットフィールドアドレス信号
    群とし、該アドレス信号群より上位の所定の複数のビッ
    トをインデックスフィールドアドレス信号群とし、該ア
    ドレス信号群より上位の残りの所定の複数のビットをタ
    グフィールドアドレス信号群とに分割し、かつ該受信し
    た第1のモード識別信号を出力する制御手段と、 前記タグフィールドアドレス信号群と同じビット構成か
    らなる第1のタグアドレス信号群を記憶するアドレス情
    報記憶手段を含み、かつ該制御手段により分割されたイ
    ンデックスフィールドアドレス信号群を受信し、該受信
    したアドレス信号群の示す該アドレス情報記憶手段の記
    憶領域から第1のタグアドレス信号群を読み出すタグメ
    モリ手段と、 前記インデックスフィールドアドレス信号群に対応する
    前記第1のタグアドレス信号群が有効であるか否かの情
    報を記憶する有効・無効記憶手段群を含み、かつ前記制
    御手段により分割されたインデックスフィールドアドレ
    ス信号群を受信し、該受信したアドレス信号群の示す該
    有効・無効記憶手段の記憶領域から有効であるか否かの
    情報を読み出す有効ビットメモリ手段と、 前記制御手段はさらに、前記分割したタグフィールドア
    ドレス信号群と前記タグメモリ手段からの第1のタグア
    ドレス信号群の比較を行ない、該比較において一致しか
    つ該有効ビットメモリ手段からの情報が有効であるなら
    ばキャッシュヒットと判定し、また該比較において一致
    しないかあるいは(および)該有効ビットメモリ手段か
    らの情報が無効であるならばキャッシュミスと判定する
    判定手段を含み、 前記制御手段に接続される外部メモリ手段を有し、 前記有効ビットメモリ手段はさらに、キャッシュミス時
    におけるインデックスフィールドアドレス信号群および
    第1のモード識別信号を前記制御手段から受信し、該受
    信したアドレス信号群の示す記憶領域に該受信した第1
    のモード識別信号である属性情報を記憶する属性情報記
    憶手段群を含み、 前記制御手段は、キャッシュミスと判定した場合には、
    外部メモリ手段との間でラインフィルを行なうための該
    キャッシュミス時における前記中央処理手段からの第1
    のアドレス信号群に基づく第2のアドレス信号群を形成
    して外部メモリ手段に出力し、続いて該アクセスの第1
    のモード識別信号を該キャッシュミス時に分割されたイ
    ンデックスフィールドアドレス信号群とともに前記属性
    情報記憶手段に出力して該アドレス信号群の示す記憶領
    域に記憶させ、かつ該分割されたインデックスフィール
    ドアドレス信号群を前記有効・無効記憶手段に出力して
    該アドレス信号群の示す記憶領域に有効であることを示
    す情報を記憶させることを特徴とするキャッシュメモリ
    における部分無効化装置。
  6. 【請求項6】 請求項5に記載のキャッシュメモリにお
    ける部分無効化装置において、 前記中央処理手段はさらに、無効化要求信号であるか否
    かを示すパージ信号を形成し、かつ該無効化するライン
    の特権レベルがスーパバイザモードであるのかまたはユ
    ーザモードであるのかを示す第2のモード識別信号を形
    成する手段を含み、 前記有効ビットメモリ手段はさらに、該中央処理手段に
    より形成されたパージ信号および第2のモード識別信号
    を受け、かつ前記属性情報記憶手段群の各々からそれぞ
    れ属性情報を受け、該受けたパージ信号が無効化要求信
    号を示す信号であり、かつ該受けた第2のモード識別信
    号がスーパバイザモードを示す信号であり、かつ該受け
    た属性情報がスーパバイザモードを示す信号である場合
    には、該属性情報の記憶される属性情報記憶手段に対応
    する有効・無効記憶手段に記憶される情報を無効である
    ことを示す情報にし、また該受けたパージ信号が無効化
    要求信号を示す信号であり、かつ該受けた第2のモード
    識別信号がユーザモードを示す信号であり、かつ該受け
    た属性情報がユーザモードであることを示す信号である
    場合には、該属性情報の記憶される属性情報記憶手段に
    対応する有効・無効記憶手段に記憶される情報を無効で
    あることを示す情報にすることを特徴とするキャッシュ
    メモリにおける部分無効化装置。
JP2000367765A 2000-12-01 2000-12-01 キャッシュメモリにおける部分無効化装置 Pending JP2002169724A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047503A (zh) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种顶点数组类命令的属性存储与组装优化电路

Citations (4)

* Cited by examiner, † Cited by third party
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 フリースケール セミコンダクター インコーポレイテッド プロセッサをコプロセッサにインタフェースするための方法および装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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