JP2542284B2 - 緩衝記憶装置および緩衝記憶装置システム - Google Patents

緩衝記憶装置および緩衝記憶装置システム

Info

Publication number
JP2542284B2
JP2542284B2 JP2245254A JP24525490A JP2542284B2 JP 2542284 B2 JP2542284 B2 JP 2542284B2 JP 2245254 A JP2245254 A JP 2245254A JP 24525490 A JP24525490 A JP 24525490A JP 2542284 B2 JP2542284 B2 JP 2542284B2
Authority
JP
Japan
Prior art keywords
access
data
data processing
processing device
signal
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.)
Expired - Lifetime
Application number
JP2245254A
Other languages
English (en)
Other versions
JPH04124748A (ja
Inventor
雅之 畑
朗 山田
博雅 中川
孝一 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2245254A priority Critical patent/JP2542284B2/ja
Publication of JPH04124748A publication Critical patent/JPH04124748A/ja
Application granted granted Critical
Publication of JP2542284B2 publication Critical patent/JP2542284B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は高速アクセスを実現するための緩衝記憶装
置およびこの緩衝記憶装置を用いた緩衝記憶装置システ
ムに関し、より特定的には、緩衝記憶装置の動作制御方
式およびシステムのバス接続制御方式に関する。
[従来の技術] 緩衝記憶装置(以下、キャッシュメモリと称す)は、
マイクロプロセッサの本格的な高速時代を迎えて、以下
のような背景から、主メモリへのアクセスの高速化実現
に対する有効な手段として登場してきた。すなわち、マ
イクロプロセッサは比較的大容量の主メモリをプログラ
ム記憶およびデータ記憶のために必要とする。この主メ
モリへのアクセス時間はマイクロプロセッサを用いたシ
ステム性能に大きな影響を与える。マイクロプロセッサ
の高速化は必然的にメモリアクセス時間の短縮化を求め
る。しかしながら、最近のマイクロプロセッサの高速化
は、主メモリに一般に使用されるDRAM(ダイナミック・
ランダム・アクセス・メモリ)チップの性能向上を上回
るメモリアクセス時間の短縮化を要求している。
また、単にDRAMチップの性能のみならず、複数のマイ
クロプロセッサからなるマルチプロセッサ・システムの
構成などのシステム規模の拡大および多様化は、複雑な
バス制御を必要とし、このためメモリ・アクセス時間を
短縮するのが難しくなってきている。
上述のような問題を解決するために、等価的にメモリ
・アクセス時間を短縮する手法の1つにメモリを階層化
する手法がある。このメモリ階層化手法の1つにキャッ
シュメモリ方式がある。このキャッシュメモリ方式は、
マイクロプロセッサと主メモリとの間に主メモリととも
にメモリ階層を構成する高速のキャッシュメモリを設
け、このキャッシュメモリへアクセスすることにより、
等価的に主メモリのアクセスを高速化するものである。
第7図は従来のキャッシュシステムの構成を概略的に
示す図である。第7図において、キャッシュメモリシス
テムは、たとえばマイクロプロセッサからなるデータ処
理装置1と、データ処理装置1のメモリアクセスを緩衝
するためのキャッシュメモリ2と、このキャッシュメモ
リシステムの主記憶装置となる主メモリ3と、データ処
理装置1およびキャッシュメモリ2と主メモリ3との間
のバス接続を制御するためのバスドライバ回路4を備え
る。
キャッシュメモリ2は、主メモリ3の記憶内容の一部
(写)を記憶し、データ処理装置1からのリードアクセ
スに対し、アクセス要求されたデータの写を記憶しない
場合にキャッシュミス信号5を発生してバスドライバ回
路4へ与える。バス10aおよび10bはともにデータバスお
よびアドレスバスならびに制御信号(リード/ライト指
示信号等)を伝達する制御バスを含む。次に動作につい
て説明する。
キャッシュメモリ方式は、データ処理装置1からの要
求に応じて主メモリ3内の使用頻度の高い領域のデータ
を高速の緩衝記憶装置であるキャッシュメモリ2に記憶
し、データ処理装置1からの要求に対しては、主メモリ
3に代わって要求されたデータの読出/書込を高速に行
なう方式である。
キャッシュメモリ2は、固定のデータを記憶している
のではなく、データ処理装置1からの要求に応じてその
記憶する主メモリ3の領域は変化する。しかしながら、
あるデータ処理におけるデータ処理装置1からのメモリ
アクセス領域には局所性が存在する。したがって、デー
タ処理装置1からの要求に応じて主メモリ3から取出し
てキャッシュメモリ2に記憶したデータはその後もしば
らくはアクセスされる可能性が高い。これにより、一
旦、キャッシュメモリ2へ主メモリ3のデータが記憶さ
れると、このキャッシュメモリの高速メモリの効果が発
揮されて、データ処理装置1のメモリ・アクセスのノー
ウェイト(待ち時間なし)が実現する。
データ処理装置がデータを要求する場合、最初にキャ
ッシュメモリ2へアクセスし、データの読出しを試み
る。このとき、主メモリ3がまだ一度もアクセスされて
いないときには、キャッシュメモリ2には一度も主メモ
リ3からデータが転送されていないため、このキャッシ
ュメモリ2にはアクセスされたデータは存在しない。こ
のキャッシュメモリ2内に要求されたデータが存在しな
い場合をキャッシュミスと称し、一方、キャッシュメモ
リ内に要求されたデータが存在する場合をキャッシュヒ
ットと称す。このキャッシュメモリ2はキャッシュミス
を起こしたため、キャッシュミス信号5を発生してバス
ドライバ回路4へ与える。バスドライバ回路4はこのキ
ャッシュミス信号5に応答して、バス10aをバス10bに接
続する。バスドライバ回路4は、このバス接続により、
キャッシュメモリ2へ与えられていたアドレス情報およ
び読出指示信号等をバス10bを介して主メモリ3へ与え
る。
主メモリ3は、このバスドライバ回路4を介して与え
られた信号およびアドレスにより、要求されたデータを
読出しデータ処理装置1へバスドライバ回路4の制御の
もとに与える。このとき、要求されたデータを含む予め
定められた大きさを有するブロックがキャッシュメモリ
2の対応の領域に格納される。このデータ処理装置1が
要求したデータの取込みとキャッシュメモリ2へのデー
タブロックの書込みは並列に行なわれる場合もあり、ま
たキャッシュメモリ2へ所望のデータブロックを書込ん
だ後最後に転送されたデータが要求されたデータであ
り、データ処理装置1へ与えられる場合もあり、さらに
最初に要求されたデータをデータ処理装置へ与え、続い
てこの要求されたデータが属するデータブロックをキャ
ッシュメモリ2へ書込む構成もある。このとき、データ
処理装置1は1ワードのデータを取込むだけであり、キ
ャッシュメモリ2はこの要求されたデータを含むブロッ
クを書込むため、キャッシュメモリ2へのデータ書込み
時においては、データ処理装置1はバスドライバ回路4
からの制御によりウエイト状態とされる。
また、データ処理装置1が要求データをブロック単位
で受取る場合には、このデータ処理装置1およびキャッ
シュメモリ2へのデータ転送は並列にかつ同時に行なわ
れる。すなわちバスドライバ回路4は、このキャッシュ
ミス信号5に応答して、主メモリ3から要求されたデー
タを含むデータブロックを送る必要があると判断し、こ
のデータブロック(これは通常タグアドレスにより決定
される)のデータ転送を制御する。上述の動作を繰返し
キャッシュメモリ2に、ある程度のデータがキャッシン
グ(キャッシュメモリ2内に主メモリ3のデータの写を
記憶すること)されると、次いでデータ処理装置1がキ
ャッシュメモリ2へアクセスしても、要求データがキャ
ッシュメモリ2内に記憶されている確率が高く、この場
合要求データがキャッシュメモリ2から出力されデータ
処理装置1へ伝達される。このときバスドライバ回路4
は、キャッシュミス信号5が発生されていないため、バ
ス10aとバス10bとを切離している。
このようにキャッシュヒット時において高速のキャッ
シュメモリ2へアクセスすることにより、データ処理装
置1が高速でメモリへのアクセスを行なうことができ、
データ処理装置1は、処理動作速度を損なわれることな
く高速で動作することができ、キャッシュシステム自体
が高速で動作する。
上述の動作はデータ処理装置1が処理結果を主メモリ
3に書込む場合も同様であり、キャッシュメモリ2内
に、データ処理装置1がアクセス要求したアドレスのデ
ータが保持されている場合、そのアクセス要求された内
容が新しいデータで書換えられる。このとき、主メモリ
3の内容も新しいデータで書換えられる。この主メモリ
3のデータ書換え方式としては、キャッシュミス発生時
にのみ対応の主メモリ3内のブロックすなわちこの書換
えられるべきアドレスを含む主メモリ3内のデータブロ
ックがキャッシュメモリ2に転送された後、キャッシュ
メモリ2内でのみデータの書換えが行なわれるライトバ
ック方式がある。また、キャッシュヒット時において
は、この書換え要求されたアドレスのキャッシュメモリ
2内のデータおよび主メモリ3内のデータに対するデー
タの書換えが行なわれ、キャッシュミス時においては、
主メモリ3のアクセス要求されたアドレスへのデータの
書込みのみが行なわれるライトスルー方式がある。
[発明が解決しようとする課題] 上述のように、緩衝用の高速のキャッシュメモリ2を
主メモリ3とデータ処理装置1との間に設け、キャッシ
ュメモリ2へアクセスすることにより、データ処理装置
1は高速でデータアクセスを行なうことができ、結果と
して高速処理を実行することができる。
しかし、データ処理装置1が必要とするアドレス空間
が大きくなってくると、主メモリ3の記憶容量も必然的
に大きくなる。この場合、小容量のキャッシュメモリ2
を1個用いただけでは、キャッシングされた主メモリ3
のメモリ領域は相対的に小さくなり、キャッシュヒット
率が低下し、キャッシュメモリのシステムの高速性とい
う効果が損なわれる。このとき、キャッシュメモリの容
量を大きくすればよいが、高速のキャッシュメモリは高
価であり、このような高価なキャッシュメモリの大容量
化を図れば、さらにキャッシュメモリの価格が高くな
り、システムの価格が上昇する。
このような問題を解消するために、小容量のキャッシ
ュメモリを複数個用い、個々のキャッシュメモリが主メ
モリ3の異なるアドレス領域をキャッシュすることによ
り、大容量のキャッシュシステムを構築するマルチキャ
ッシュシステムを採用することが考えられる。
第8図は上述のマルチキャッシュシステムの構成の一
例を示すブロック図である。第8図において、マルチキ
ャッシュシステムは、データ処理装置1、主メモリ3お
よびバスドライバ回路4に加えて、それぞれキャッシュ
する主メモリ3のアドレス領域が異なる第1および第2
のキャッシュメモリ2aおよび2bと、キャッシュミス信号
発生用の第1のロジック回路7と、キャッシング可能領
域外信号発生用の第2のロジック回路8とを含む。
第1のキャッシュメモリ2aは、第1のキャッシュミス
信号5aおよび第1のキャッシュ可能領域外信号9aを発生
する。第2のキャッシュメモリ2bは、第2のキャッシュ
ミス信号5bおよび第2のキャッシング可能領域外信号9b
を発生する。
第1のロジック回路7は、第1および第2のキャッシ
ュミス信号を受ける論理和回路からなり、第1および第
2のキャッシュミス信号のいずれか一方が発生されてい
るときにキャッシュメモリ2(第1のキャッシュメモリ
2aおよび第2のキャッシュメモリ2bからなるキャッシュ
メモリ)にキャッシュミスが発生していることを示す第
3のキャッシュミス信号5cを発生しバスドライバ回路4
へ与える。
第2のロジック回路8は、第1のキャッシュ可能領域
外信号9aおよび第2のキャッシュ可能領域外信号9bを受
ける論理積回路からなり、第1および第2のキャッシン
グ可能領域外信号9aおよび9bがともに発生されていると
きに、キャッシュメモリ2のキャッシュ可能領域外がア
クセスされていることを示す第3のキャッシュ可能領域
外信号9cを発生してバスドライバ回路4へ与える。
第1および第2のキャッシュメモリ2aおよび2bは第9
図に示すようなアドレス領域のキャッシングを行なう。
第9図において、主メモリ3は4つのアドレス領域
A、B、CおよびDを含む。アドレス領域Aは上位2ビ
ットアドレスが“00"のアドレス領域であり、アドレス
領域Bは上位2ビットアドレスが“01"のアドレス領域
であり、アドレス領域Cはアドレスの上位2ビットが
“10"のアドレス領域であり、アドレス領域Dは2ビッ
ト上位アドレスが“11"の領域である。このアドレス領
域は物理空間および論理空間いずれであってもよい。
第1のキャッシュメモリ2aはこのアドレス領域Bのデ
ータをキャッシュし、第2のキャッシュメモリ2bはアド
レス領域Dのデータをキャッシュする。このアドレス領
域が自身のキャッシュ可能領域であるか否かを判別する
ために、第1および第2のキャッシュメモリ2aおよび2b
はそれぞれ2ビット上位アドレスを自身に割当てられた
アドレス領域の上位2ビットの値と比較し、その一致/
不一致を検出する比較回路を含む。この比較回路は、ア
クセス要求されたアドレスが自身に割当てられた領域外
のアドレスのものである場合にはキャッシュ可能領域外
信号を発生する。次に動作について説明する。
第1のキャッシュメモリ2aは、上位2ビットアドレス
01(2進)、第2のキャッシュメモリ2bは上位2ビット
アドレスが11(2進)のときにデータのキャッシングを
行なう。すなわち、アドレス32ビットのアドレス空間に
おいて、第1のキャッシュメモリ2aは、アドレス400000
00H〜7FFFFFFFHのアドレス空間がキャッシュ空間であ
り、第2のキャッシュメモリ2bはアドレスC0000000H〜F
FFFFFFFHのアドレス領域がキャッシュ空間である。
このような環境において、データ処理装置1がアドレ
ス40000000Hをアクセスすると、このアドレスは第1お
よび第2のキャッシュメモリ2aおよび2bへ並列に与えら
れる。第1のキャッシュメモリ2aはこのアドレスが自身
のキャッシング可能領域内のアドレスであるためキャッ
シュ可能領域外信号9aは発生しない。次いで、第1のキ
ャッシュメモリ2aは、このアドレスが自身のキャッシン
グ領域内であると判定すると、自身にアクセスされたア
ドレスのデータの写があるか否かを検査する。この検査
の結果写が存在しない場合キャッシュミスと判断し、キ
ャッシュミス信号5aを発生する。
第1のロジック回路7は、この第1のキャッシュミス
信号5aに応答して第3のキャッシュミス信号5cを発生し
バスドライバ回路4へ与える。一方、第2のロジック回
路8は、第1のキャッシング可能領域外信号9aが発生さ
れていないため、第3のキャッシング可能領域外信号9c
を発生しない。
バスドライバ回路4は、この第3のキャッシュミス信
号5cおよび第3のキャッシング可能領域外信号9cの状態
に応答して、キャッシュメモリ2においてキャッシング
可能領域内のアドレスがアクセスされたもののキャッシ
ュミスが発生したと判定し、バス10aとバス10bとを接続
する。バスドライバ回路4は、第3のキャッシュミス信
号5cに応答して、主メモリ3の対応のアドレスのデータ
をアクセスし、このアクセスされたアドレスのデータを
含むブロックを第1のキャッシュメモリ2aへ転送すると
ともに、アクセス要求されたデータをデータ処理装置1
へ伝達する。このデータ処理装置1へのデータ転送は第
1のキャッシュメモリ2aへのデータブロックの転送後お
よび前いずれであってもよく、またデータ処理装置1へ
データブロックを転送する構成であってもよい。
第2のキャッシュメモリ2bがキャッシュミス信号5bを
発生している場合には、この上述の動作と同様であり、
第2のキャッシュメモリ2bと主メモリ3とが結合され、
データブロックの転送が行なわれる。
データ処理装置1がアドレス80000000Hをアクセスす
ると、第1のキャッシュメモリ2aは、このアクセスされ
たアドレスを自身に割当てられたアドレス領域と比較
し、このアクセス要求されたアドレスがキャッシュ可能
領域か否かを判断する。この場合、アドレス80000000H
は第1および第2のキャッシュメモリ2aおよび2bどちら
もキャッシング可能領域外であるため、それぞれ第1お
よび第2のキャッシング可能領域外信号9aおよび9bを発
生する。このキャッシング可能領域外信号9aおよび9bが
発生された場合、第1および第2のキャッシュメモリ2a
および2b内においてはその内部に対応のアドレスの写が
あるか否かを判断する必要はなく、キャッシュミス信号
5aおよび5bは発生されない。したがって、この場合、第
3のキャッシング可能領域外信号9cが発生され、一方、
第3のキャッシュミス信号5cは発生されない。
バスドライバ回路4は、このキャッシング可能領域信
号9cが発生されたことに応答して、バス10aとバス10bと
を接続し、単にデータ処理装置1がアクセス要求したア
ドレス80000000Hのデータをデータ処理装置1へ転送す
る。このときキャッシュミス信号5cは発生されていない
ため、バスドライバ回路4は、単にワンワードのデータ
を転送する動作を制御するのみであり、キャッシュメモ
リ2aまたは2bへのブロック転送動作は何ら生じないよう
な動作制御を実行する(ただし、データ処理装置がデー
タブロックを受けない場合)。
この上述のキャッシング判定動作は、データ書込み時
においても同様に行なわれる。
上述のように複数のキャッシュメモリを設け、個々の
キャッシュメモリにそれぞれ独立なキャッシング可能領
域を割当てることにより、小容量のキャッシュメモリを
用いて結果的にキャッシュメモリ容量を増大させた効果
が得られ、キャッシュヒット率の改善およびシステムの
性能向上をもたらすことができる。
上述のように、たとえばプログラムの命令のシーケン
スが有するアクセスの局所性とデータのアクセスが有す
る局所性とが互いに異なることを利用し、各それぞれの
アドレス領域をキャッシュメモリへ割当てることにより
小容量のキャッシュメモリを用いて大容量のアドレス空
間におけるキャッシュヒット率を向上させることができ
る。
しかしながら、個々のキャッシュメモリは与えられた
アドレスに対し、個々に自己のキャッシング領域外であ
るか否かを判定することができるだけであり、キャッシ
ュメモリシステムにおける総合的なキャッシング可能領
域であるか否かの判定はできず、また個々のキャッシュ
メモリは他のキャッシュメモリがどのアドレス領域を割
当てられているかを知ることができず、システム設計時
において、個々のキャッシュメモリのキャッシュ可能ア
ドレス領域に重複がないようにアドレス領域を各キャッ
シュメモリに割当てる必要がある。このためには、主メ
モリのアドレス空間のデータ配置構造を分析し、最も効
率のよいアドレス領域の割当てを行なう必要があり、そ
の分析に長時間を要する。
また、与えられたアドレスが自身のキャッシング可能
領域であるか否かを判定するためには、キャッシングメ
モリがその内部においてアドレスの比較を行なう必要が
あり、このキャッシュメモリの数が増大すれば、当然比
較されるべきアドレスビット数が増大し、この比較によ
り、キャッシング可能と判定するのに長時間(たとえば
27ns)要することになり、キャッシュヒットか否かの判
定はこのキャッシング可能か否かの判定結果に従ってそ
の後に行なわれるため、キャッシュメモリの高速性が損
なわれる。
また、バスドライバ回路4が、このすべてのキャッシ
ュメモリがキャッシング可能領域外信号を発生している
と判断するまでには一段のロジック回路(第2のロジッ
ク回路8)を通してすべてのキャッシング可能領域外信
号を受ける必要があり、このため、この第2のロジック
回路出力に応答してバスドライバ回路4がデータ処理装
置1と主メモリ3とを接続するまでに長時間を要し、こ
のためシステムの高速動作性が低下する。
上述のように、第8図に示すような構成のマルチキャ
ッシュシステムの場合、各キャッシュメモリにキャッシ
ング可能領域を割当て、すべてのキャッシュメモリから
のキャッシング可能判定結果に基づいてバスドライバ回
路4においてデータ処理装置1と主メモリ3とのアクセ
スを制御する場合、通常、シングルキャッシュシステム
においてデータ処理装置1が主メモリ3にアクセスする
場合に要求されるウェイト時間がさらに長くなり、この
キャッシュメモリシステムの高速性が損なわれるという
問題が生じる。
それゆえ、この発明の目的は、マルチキャッシュシス
テムを構築しても高速にキャッシュ可能領域に対しアク
セス要求が行なわれているか否かを判定することができ
るキャッシュメモリおよびキャッシュメモリシステムを
提供することである。
この発明の他の目的は、マルチキャッシュシステムを
構築しても高速にデータ処理装置と主記憶装置とを選択
的に接続するバスドライバ回路を機能させることのでき
るキャッシュメモリおよびキャッシュメモリシステムを
提供することである。
[課題を解決するための手段] この発明による緩衝記憶装置は、データ処理装置から
のリードアクセスに応答して、そこに主記憶装置の記憶
内容の写が存在する場合には、該アクセス要求されたデ
ータを出力する第1の動作モードと、データ処理装置か
らのリードアクセスに応答して、自身に主記憶装置の記
憶内容の写が存在しない場合には主記憶装置へアクセス
して該アクセス要求されたデータを記憶する第2の動作
モードと、この第1および第2の動作モードと異なる第
3の動作モードとを備える。
また、この発明が適用されるデータ処理装置はアクセ
ス時にはそのアクセスのタイプを示すアクセスタイプ識
別信号を出力する。この発明による緩衝記憶装置は、こ
のデータ処理装置から出力されるアクセスタイプ識別信
号によりキャッシング領域を設定するものである。
すなわち、この第1の発明に係る緩衝記憶装置は、こ
の緩衝記憶装置に対するデータ処理装置のアクセスの種
類を設定するための条件設定手段と、データ処理装置か
らのアクセスタイプ識別信号とこの条件設定手段に設定
されたアクセスの種類指示データとに応答して、第1お
よび第2の動作モードのいずれかが可能であるか否かを
判別し、該判別結果を示す信号を出力する判断結果出力
手段と、この判断結果出力手段の出力とアクセスタイプ
識別信号とに応答して該緩衝記憶装置が第3の動作モー
ド状態にあるか否かを判断し、該判断結果を示す第3の
動作状態信号を発生する手段とを備える。緩衝記憶装置
の動作はこの判断結果出力信号によりイネーブル/ディ
スエーブルされる。
第2の発明に係る緩衝記憶装置は、予め定められたデ
ータ処理装置のアクセスの種類を設定するための条件設
定手段と、この緩衝記憶装置を第3の動作モード状態に
置く前記データ処理装置のアクセスの種類を設定するた
めのアクセス設定手段と、アクセスタイプ識別信号と条
件設定手段に設定されたアクセスの種類指示データとに
応答して、該緩衝記憶装置が第1および第2の動作モー
ドのいずれか一方が可能か否かを判断し、該判断結果を
示す信号を出力する判断結果出力手段と、アクセスタイ
プ識別信号とアクセス設定手段に設定されたアクセスの
種類指示データとを比較し、該緩衝記憶装置が第3の動
作モード状態にあるか否かを判別し、該判別結果を示す
第3の動作状態信号を発生する手段を備える。
第3の発明に係る緩衝記憶装置は、この緩衝記憶装置
が第1または第2の動作モードを行なうための、データ
処理装置の予め定められたアクセスの種類を設定するた
めの条件設定手段と、この緩衝記憶装置を第3の動作モ
ード状態に置くデータ処理装置のアクセスの種類を設定
するためのアクセス設定手段と、条件設定手段に設定さ
れたアクセスの種類指示データとアクセス設定手段に設
定されたアクセスの種類指示データとを比較して両設定
されたアクセスの種類が予め規定された組合わせである
か否かを判断する組合わせ判断手段と、データ処理装置
からのアクセスタイプ識別信号と条件設定手段に設定さ
れたアクセスの種類指示データと組合わせ判断手段の出
力とに応答して第1または第2の動作モードのいずれか
で動作が可能か否かを判別し、該判別結果を示す信号を
出力する判別結果出力手段と、データ処理装置からのア
クセスタイプ識別信号と条件設定手段に設定されたアク
セスの種類指示データとアクセス設定手段に設定された
アクセスの種類指示データとに応答して該緩衝記憶装置
が第3の動作モード状態にあるか否かを判定する第3の
動作モード判定手段と、判断結果出力手段の出力と第3
の動作モード判定手段の出力とに応答して該緩衝記憶装
置が第3の動作モードにあることを示す第3の動作状態
信号を出力する手段とを備える。判断結果出力手段から
の出力により緩衝記憶装置は第1ないし第3の動作モー
ドのいずれかで動作する。
アクセス設定手段に設定されるアクセスの種類として
は、緩衝記憶装置が複数個設けられたときにすべての緩
衝記憶装置が第3の動作モードで動作状態となるアクセ
スの種類が設定される。
第4の発明に係る緩衝記憶装置システムは、アクセス
時にアクセスのタイプを示すアクセスタイプ識別信号を
出力する機能を備えるデータ処理装置と、主記憶装置と
データ処理装置との間に設けられる少なくとも1個の緩
衝記憶装置とを含む。この少なくとも1個の緩衝記憶装
置は、上記第1、第2および第3の動作モードを備え、
かつ予め定められたアクセスの種類を設定するための設
定手段と、データ処理装置からのアクセスタイプ識別信
号と設定手段の設定されたアクセスの種類を示すアクセ
ス種類指示データとに応答して該緩衝記憶装置を第1な
いし第3の動作モードのいずれかで動作させるための信
号を発生する第1の信号発生手段と、設定手段に設定さ
れたアクセスの種類を示すアクセス種類指示データとデ
ータ処理装置からのアクセスタイプ識別信号とに応答し
て該緩衝記憶装置が第3の動作モードにあることを示す
第3の動作状態信号を発生する第2の信号発生手段と、
第1の信号発生手段出力に応答して活性化され、第2の
動作モードのときに、該第2の動作モードを示す信号を
出力する手段とを含む。
この第4の発明に係る緩衝記憶装置システムは、さら
に、第2の動作モード指示信号と第3の動作状態指示信
号とに応答して、データ処理装置と主記憶装置との間お
よび主記憶装置と少なくとも1個の緩衝記憶装置との間
のデータ転送を行なうためのバス接続を制御するバスド
ライブ手段とを備える。
このシステムにおいて緩衝記憶装置が複数個設けられ
ている場合には1個の緩衝記憶装置のみから第3の動作
状態信号が発生されバスドライブ手段へ与えられる。ま
た緩衝記憶装置が複数個設けられている場合にはこのシ
ステムは、複数の緩衝記憶装置のうちの少なくとも1個
の緩衝記憶装置が第2の動作モード指示信号を発生して
いることを識別するとともに該識別信号をバスドライブ
手段へ与える手段を含む。
[作用] 第1の発明において、条件設定手段に設定されたアク
セスの種類とデータ処理装置から与えられるアクセスタ
イプ識別信号とが一致した場合には、判断結果出力手段
は該緩衝記憶装置を第1または第2の動作モードで動作
させるための信号を発生し、一方不一致の場合にはこの
第1および第2の動作モードでの動作を禁止する信号を
発生する。第3の動作モード信号発生手段は、この判断
結果出力手段の出力とアクセスタイプ識別信号とに応答
して、該緩衝記憶装置が第3の動作モード状態にあると
判定した場合に第3の動作モード信号を発生する。これ
により、該緩衝記憶装置のキャッシング領域が、データ
処理装置のアクセスのタイプにより振分けられる。
第2の発明においては、第3の動作モードを行なうた
めのアクセスタイプの設定手段からの種類指示データと
アクセスタイプ識別信号とに応答して第3の動作モード
判定手段から第3の動作モード信号が出力される。この
構成により1つの緩衝記憶装置からの第3の動作状態信
号のみを用いて複数の緩衝記憶装置の第3の動作状態を
監視することができる。
この第3の発明において、組合わせ判断手段は、デー
タ処理装置が行なうアクセスの種類と設定されたアクセ
スの種類とに従って緩衝記憶装置がキャッシングを行な
うすなわち第1または第2の動作モードで動作すべきか
否かを判定し、この判断結果に従って緩衝記憶装置の動
作モード制御および第3の動作状態信号発生の制御が実
行される。これにより1つの緩衝記憶装置の第3の動作
状態信号のみを用いて、全ての緩衝記憶が第3の動作モ
ード状態にあるか否かを監視することが可能となり、ま
たこの組合わせ判断手段を用いて信号発生の制御を行な
うことにより複数の緩衝記憶装置を用いたシステムにお
いて主記憶装置と緩衝記憶装置とのバス衝突を防止する
ことができる。
第4の発明において、このバスドライバ回路は、緩衝
記憶装置の少なくとも1個から発生される第2の動作モ
ード指示信号と1個の緩衝記憶装置のみから発生される
第3の動作状態信号とに応答してバスの制御を実行し、
高速でデータ処理装置と主記憶装置と緩衝記憶装置との
間のデータ転送を行なわせる。
[発明の実施例] 第1図はこの発明の一実施例であるキャッシュメモリ
を用いたシステムの構成を示すブロック図である。第1
図において、キャッシュメモリシステムは、たとえばマ
イクロプロセッサからなるデータ処理装置1と、このキ
ャッシュメモリシステムの主記憶装置となる主メモリ3
と、バス10aおよび10bを管理するバスドライバ回路4
と、データ処理装置1のメモリアクセスを緩衝するキャ
ッシュメモリ2を備える。
キャッシュメモリ2は、データ処理装置1からのアク
セスに応答して、その内部に主記憶装置の写が存在しな
い場合にキャッシュミス信号5を発生する。またこのキ
ャッシュメモリ2は、データ処理装置1からのリードア
クセスに対して第1の動作モードとしてのキャッシュヒ
ット動作と第2の動作モードとしてのキャッシュミス動
作も行なわない場合には第3の動作状態信号6を発生す
る。ここで「第3の動作状態」とは、データ処理装置1
からのリードアクセスに対してキャッシュメモリ2にお
いて主メモリ3の写が存在し、データ処理装置1からア
クセス要求されたデータを出力する動作および、データ
処理装置1からのリードアクセスに対して主メモリ3の
写がその内部に存在せず、データ処理装置1がアクセス
要求したデータを主メモリ3にアクセスしてその要求さ
れたデータを記憶する動作も行なわない動作をいう。す
なわち、第3の動作状態とは、データ処理装置からのリ
ードアクセスに対してキャッシュヒット時の動作を行な
わずかつデータ処理装置1からのリードアクセスに対す
るキャッシュミス時の動作も行なわない動作状態を示
す。
次に動作について説明する。データ処理装置1がデー
タをアクセスするタイプとしては、インストラクション
フェッチ、データフェッチ、およびこれらと異なるアク
セスの3種類存在する。ここでインストラクションフェ
ッチとは、プログラムの実行シーケンスを読取る動作を
示す。たとえばアドレス10番地のメモリをレジスタA0に
ロードするプログラムの場合、「レジスタA0にメモリの
アドレス10番地の内容をロードせよ(LOAD A0 10)」と
いう内容をもつメモリ内のデータを読出す動作をいう。
また、このとき単にアドレス10番地のメモリの内容のみ
を読出す動作をデータフェッチという。
このデータ処理装置1は、このアクセスタイプに応じ
てそのアクセスの種類を示す信号をバス10aの制御バス
上に送出し、バスサイクルの管理を効率的に行なわせ
る。このようなアクセスタイプを示す信号を導出するデ
ータ処理装置としては、たとえば三菱電機のM33210、M3
3220、M33230のようなマイクロプロセッサがある。
今キャッシュメモリ2はデータ処理装置1がインスト
ラクションフェッチを実行する場合においてのみキャッ
シング動作を実行すると設定する。すなわちキャッシュ
メモリ2には主メモリ3のインストラクションを格納し
たアドレス領域のプログラムデータが記憶される。
データ処理装置1が、初めてプログラムを実行する場
合、最初のインストラクションフェッチを行なう場合、
キャッシュメモリ2に対してインストラクションフェッ
チを実行する。このとき、キャッシュメモリ2は、まだ
一度もそのデータの取込みを行なっていないため、デー
タ処理装置1がアクセスしたデータは存在せず、キャッ
シュミスとなる。これにより、キャッシュミス信号5が
発生され、バスドライバ回路4へ与えられる。バスドラ
イバ回路4は、このキャッシュミス信号5に応答してバ
ス10aとバス10bとを接続する。これにより、キャッシュ
メモリ2へ与えられていたアドレス等の情報がバスドラ
イバ回路4の制御の下に主メモリ3へ与えられる。主メ
モリ3は、この与えられたアドレスをデコードしアクセ
スされたデータをバス10b上に出力する。このバス10b上
に出力されたデータはバスドライバ回路4の制御の下に
データ処理装置1へバス10aを介して伝達されるととも
にキャッシュメモリ2へ格納される。
このキャッシュミス時において、バスドライバ回路4
を介して行なわれるデータ処理装置1およびキャッシュ
メモリ2へのデータの転送は、所望のデータのみをデー
タ処理装置1へ与えた後このアクセス要求されたデータ
を含むデータブロックをキャッシュメモリ2に書込む構
成であってもよく、またキャッシュメモリ2へこのアク
セスされたデータを含むデータブロックを書込んだ後に
データ処理装置1へ要求されたデータのみを与える構成
であってもよ。また、データ処理装置1がブロック単位
でデータを受取る機能を備えている場合には、このデー
タ処理装置1およびキャッシュメモリ2へのデータ転送
は並列に行なわれる。
次に、データ処理装置1は、フェッチしたインストラ
クションに従ってデータフェッチを実行する。今キャッ
シュメモリ2は、インストラクションフェッチが行なわ
れたときのみキャッシング動作を実行すると設定されて
いるため、このデータ処理装置1からのデータフェッチ
に対してはキャッシング動作を行なわない。
このとき、キャッシュメモリ2は、バス10a上のアド
レスを取込んでキャッシュミス判定動作までを行なう構
成であってもよく、また、アドレスの取込みそのものが
禁止される構成であってもよい。キャッシュメモリ2に
必要最小限要求されることは、インストラクションフェ
ッチに対するキャッシングが設定されている場合に、デ
ータ処理装置1がデータフェッチを行なった場合には、
キャッシュミス信号5を発生せず、かつ第3の動作状態
信号6を発生することである。
バスドライバ回路4は、この第3の動作状態信号6に
より、主メモリ3へアクセスする必要があると判定し、
バス10aとバス10bとを接続し、データ処理装置1からバ
ス10a上に出力されたアドレス等の情報をバス10bを介し
て主メモリ3へ与える。これにより、主メモリ3とデー
タ処理装置1との間のアクセスが実現される。このと
き、第3の動作状態信号6が発生されているため、バス
ドライバ回路4は、キャッシュメモリ2へデータブロッ
ク(リードアクセスされたデータを含むブロック)を転
送する必要がないと判定し、リードアクセス時には、ア
クセスされたデータ(通常1ワード)のみを主メモリ3
からデータ処理装置1へ転送する。
データライト時には、キャッシュメモリ2は、インス
トラクションフェッチに対するキャッシング動作が設定
されているため、同様、第3の動作状態信号6を発生す
る。
すなわちこのキャッシュミス信号5が発生された場
合、バスドライバ回路4はキャッシュメモリ2へデータ
ブロックを転送する必要があり、このデータブロック転
送を制御し、一方、第3の動作状態信号6が発生された
場合には、このようなデータブロック転送が不必要であ
ると判定し、リード/ライト時のアクセスにかかわら
ず、アクセス要求されたデータの転送のみを制御する。
このとき、データ処理装置1が1ワードのデータのみを
受取る構成ではなく、このアクセスしたデータを含むデ
ータブロックを取込む構成の場合、バスドライバ回路4
は、第3の動作状態信号6が発生されてもデータブロッ
ク転送を行なわす動作制御を行なうが、このときキャッ
シュメモリ2へはそのデータブロックは書込まれない。
また、データライト時においても同様であり、バスド
ライバ回路4は、キャッシュミス信号5が発生した場合
に、いわゆるライトスルー方式でデータの書込みを行な
うかまたはライトバック方式でデータの書込みを行なう
かはそのシステムの構成によりバスドライバ回路4によ
り適切に動作制御される。データライト時において、第
3の動作状態信号6が発生された場合、バスドライバ回
路4はデータ処理装置1と主メモリ3とを接続し、単に
アドレスされたメモリ位置へデータを書込む動作を制御
するだけである。
上述のように、第8図に示す構成のように与えられた
アドレスに従ってキャッシング可能領域を設定するので
はなく、データ処理装置1からのアクセスタイプを示す
情報に従ってキャッシング可能領域を設定することによ
り、キャッシング可能領域であるか否かの判定は論理和
程度のロジック回路のみで実行することができ、高速で
条件判断を行なうことができ、バスドライバ回路4の制
御動作を高速化することができる。
ここで、通常、主メモリのアドレス空間においては、
インストラクションが格納されている領域とデータが格
納されている領域とは異なっており、このようにデータ
処理装置のアクセスタイプに応じてキャッシング領域を
設定することにより、各キャッシュメモリにキャッシン
グ可能領域をアドレスに応じて設定することなくそのキ
ャッシング可能領域を設定することができる。したがっ
て、キャッシュメモリ2に対し、キャッシング可能領域
としてプログラム構造を分析し、この分析に従ってアド
レス領域を設定する必要がなく、容易かつ正確にアドレ
ス領域の重複を伴うことなくキャッシング可能領域をキ
ャッシュメモリに対し設定することができる。
この上述の説明においてはキャッシュメモリ2におけ
るキャッシング可能領域をデータ処理装置1のアクセス
タイプを示す情報に応じて設定するように構成している
が、これは、たとえばOS(オペレーティングシステム)
とユーザプログラムとを識別するためのリング(これは
通常OSを保護するために用いられる)を用いてキャッシ
ュメモリのキャッシング可能領域を設定する構成として
もよく、また主メモリ3がバンク構成を有している場合
このバンクアドレスを用いてキャッシュメモリ2のキャ
ッシング可能領域を設定してもよい。
また、メモリ管理のためにアドレス変換を実行するた
めのバスサイクルの種類を指定するファンクションコー
ド(これは、ユーザデータ空間、ユーザプログラム空
間、システムデータ空間、システムプログラム空間など
を指定するコード)を用いてもよい。ここでシステムプ
ログラム空間は、通常、たとえばOSなどのスーパーバイ
ザー・プログラムを示し、このようなファンクションコ
ードはスーパーバイザーデータおよびスーパーバイザー
プログラムの保護を図るために利用されている。
第2図は第3の動作状態信号を発生するための回路構
成の一例を示す図である。この第3の動作状態信号発生
回路は、キャッシュメモリ2に内蔵される構成であって
もよく、また、キャッシュメモリ2に外付けされる構成
であってもよい。第1図に示すシステム構成において
は、この第3の動作状態信号発生回路はキャッシュメモ
リ2に内蔵されている場合が一例として示されている。
第2図を参照して、第3の動作状態信号発生回路は、
キャッシュメモリ2のキャッシング条件を設定するため
の条件設定回路20と、データ処理装置1が出力するアク
セスタイプ識別情報と条件設定回路20で設定された情報
とを比較し、キャッシング可能か否かを判断するNCA判
断回路23と、このNCA判断回路23の出力に応答して第3
の動作状態信号6を出力する出力回路27とを備える。
条件設定回路20はインストラクションのキャッシング
を設定するための第1のラッチ回路21と、データのキャ
ッシングを設定するための第2のラッチ回路22を含む。
第1のラッチ回路21は、上記のキャッシング条件設定
制御信号φに動作制御されるpチャネルMOSトランジス
タ(絶縁ゲート型電界効果トランジスタ)T1およびnチ
ャネルMOSトランジスタT2と、2段の縦続接続されたイ
ンバータI1およびI2を含む。インバータI2の出力はトラ
ンジスタT1を介してインバータI1の入力に接続される。
トランジスタT2はその一方導通端子に条件設定データを
受け、このデータを制御信号φに応答してインバータI1
の入力部へ伝達する。
第2のラッチ回路22は、第1のラッチ回路21と同様の
構成を有しており、2段の縦続接続されたインバータI3
およびI4と、制御信号φに応答してON状態となるpチャ
ネルMOSトランジスタT3およびnチャネルMOSトランジス
タT4を含む。トランジスタT4を介して条件設定データが
インバータI3の入力部へ伝達される。
このトランジスタT2およびT4の条件設定データ入力端
子は、外部ピン端子に接続される構成であってもよく、
またこの図示しないデータレジスタに接続される構成で
あってもよい。このデータレジスタが用いられる場合、
このデータレジスタはバス10aのデータバスに接続さ
れ、データ処理装置1からの制御の下にこのデータレジ
スタに条件設定データが書込まれる。
制御信号φは、このキャッシュメモリのキャッシング
領域を設定するために発生される信号であり、外部ピン
端子を介して直接与えられる構成であってもよく、また
データ処理装置1からの制御の下にこのキャッシュメモ
リ2内部で発生される構成であってもよい。なお、この
第3の動作状態信号発生回路はキャッシュメモリに外付
けされる構成であってもよいものであるが、以下の説明
においては、キャッシュメモリ2内に内蔵されている場
合についてのみ説明する。
NCA判断回路23は、設定されたキャッシング条件とデ
ータ処理装置が実行するアクセスの一致/不一致を検出
するための第1の論理ゲート24と、第1の論理ゲート24
の出力とデータ処理装置1から出力されるキャッシング
不要を示すノンキャッシャブル信号17に応答してキャッ
シュ禁止信号19を発生するための第2の論理ゲート25
と、データ処理装置1から出力されるアクセス情報の1
つであるバスアクセスタイプがデータフェッチであるこ
とを示すデータ信号16とデータ処理装置1から出力され
るデータ書込みを示すデータライト信号18との論理積を
とる第3の論理ゲート26とを含む。
第1の論理ゲート24は、第1のラッチ回路21のラッチ
データとデータ処理装置1から出力されるアクセス情報
の1つであるバスアクセスタイプがインストラクション
フェッチであることを識別するインストラクション信号
15とを受け、両者の論理積を取るゲート回路G1と、第2
のラッチ回路22のラッチデータとデータ処理装置1から
出力されるアクセス情報の1つであるデータフェッチ時
に出力されるデータ信号16とを受け、両者の論理積を取
って出力する第2のゲート回路G2と、この第1および第
2のゲート回路G1およびG2出力を受けて両者の論理和を
取って出力する第3のゲート回路G3を含む。
第2の論理ゲート25は、第3のゲート回路G3の出力と
データ処理装置1から出力されるアクセス情報の1つで
あるノンキャッシャブル信号17とを受け、キャッシュメ
モリのキャッシング動作を禁止するキャッシュ禁止信号
19を出力する。この第1の論理ゲート25は、第3のゲー
ト回路G3の出力またはノンキャッシャブル信号17のいず
れか一方が不活性状態の“L"のときに活性状態のキャッ
シュ禁止信号19を発生する。この第2の論理ゲート25か
ら出力されるキャッシュ禁止信号19は、キャッシュメモ
リ2におけるアドレス取込みそのものを禁止するために
用いられてもよく、またキャッシュメモリ2に含まれる
タグメモリ出力でキャッシュヒット/ミスを判定するキ
ャッシュヒット/ミス判定回路の動作を禁止するように
用いられてもよく、このキャッシュ禁止信号19は、キャ
ッシュメモリ2においてキャッシュミス信号5の発生が
禁止され、かつこのキャッシュメモリ2がバス10a上の
データバスとデータの授受を行なうのを禁止するように
用いられればよく、その具体的な送出先は特に限定され
ない。
第3の論理ゲート26は、データ信号16が活性状態にあ
り、データ処理装置1がデータフェッチを行なってお
り、かつデータライト信号18が活性状態にあり、データ
の書込みのためのアクセスが行なわれるときにのみ活性
状態の信号を出力する。
出力回路27は、第2の論理ゲート25の出力と第3の論
理ゲート26の出力とを受け、両者の論理和を取って出力
する第4の論理ゲート28を含む。この出力回路27は、キ
ャッシュ禁止信号19が発生されるか、またはデータ処理
装置1がデータの書込みを1ワードだけ行なう場合に第
3の動作状態信号6を出力する。次に第2図を参照して
第3の動作状態信号発生回路の動作について説明する。
今、第1のラッチ回路21に“1"が書込まれ、第2のラ
ッチ回路22に“0"が書込まれた場合を想定する。このと
き、キャッシュメモリ2はデータ処理装置1がインスト
ラクションフェッチのリードアクセス行なった場合にの
みキャッシングを行なうように設定される。この条件設
定回路20へのキャッシング条件設定動作は制御信号φを
立上げてトランジスタT2およびT4を導通状態とし各ラッ
チ回路21および22に所定の条件設定データを与えること
により行なわれる。
この状態で、データ処理装置1がインストラクション
フェッチを行なう場合を考える。このとき、データ処理
装置1からバス10a上の制御バスにデータアクセスのタ
イプがインストラクションフェッチであることを示すた
めにインストラクション信号15を“1"にされたアクセス
タイプ識別信号が出力される。このときデータ信号16は
“0"である。
ゲート回路G1は第1のラッチ回路21のラッチデータと
インストラクション信号15を受けており、ともに“1"で
あるため、“1"の信号を出力する。ゲート回路G3はゲー
ト回路G1およびG2のいずれか一方の出力が“1"のときに
“1"の信号を出力する。したがって、この第1の論理ゲ
ート24からは“1"の信号が出力される。
データ処理装置1が、このインストラクションフェッ
チ動作に対してキャッシングを望まない場合には、ノン
キャッシャブル信号17は“0"である。したがって、デー
タ処理装置1がキャッシング動作を要求しない場合に
は、この第2の論理ゲート25から出力されるキャッシュ
禁止信号19は“1"となり、キャッシュメモリ2のキャッ
シュ動作が禁止される。
一方、データ処理装置1がキャッシング動作を要求す
る場合には、このノンキャッシャブル信号17は“1"にさ
れる。このとき論理ゲート25の両入力はともに“1"とな
るため、キャッシュ禁止信号19は“0"であり、キャッシ
ュメモリ2におけるキャッシュ動作が行なわれる。キャ
ッシュメモリ2は、したがってこのときにキャッシュ動
作を実行しキャッシュヒット/ミスの判定動作を行な
い、この判定結果に応じてキャッシュミス信号5をバス
ドライバ回路4へ与える。
一方、第3の論理ゲート26は“0"のデータ信号16を受
けており、その出力は“0"である。したがって、出力回
路27の第4の論理ゲート28からは、このキャッシュ禁止
信号19の論理レベルに応じた第3の動作状態信号6が出
力される。すなわち、キャッシュ禁止信号19が“1"にあ
り、キャッシュメモリ2のキャッシング動作が禁止され
ている場合には第3の動作状態信号6が“1"となる。こ
の第3の動作状態信号6が“1"の場合、キャッシュメモ
リ2のキャッシング動作が禁止されていることを示して
おり、バスドライバ回路4は、主メモリ3とデータ処理
装置1との間のデータ転送のみを行なわせる。
一方、キャッシュ禁止信号19が“0"の場合には、第3
の論理ゲート26の出力も“0"であるため、第3の動作状
態信号6は発生されず“0"のままである。この状態は、
キャッシュメモリ2においてキャッシュミス/ヒットの
判定が行なわれており、キャッシュミス時においては、
キャッシュメモリ2と主メモリ3との間および主メモリ
3とデータ処理装置1との間のアクセスを行なう必要が
あるため、バスドライバ回路4はこのようなデータ転送
を動作制御する。
データ処理装置1がデータフェッチを行なう場合に
は、インストラクション信号15は“0"、データ信号16が
“1"となる。このとき第1および第2のラッチ回路21お
よび22はそれぞれ“1"および“0"をラッチしているた
め、ゲート回路G1およびG2の出力はともに“0"であり、
したがってゲート回路G3の出力も“0"となる。したがっ
てこのとき、ノンキャッシャブル信号17の状態にかかわ
らず、第2の論理ゲート25の出力すなわちキャッシュ禁
止信号19は“1"となり、キャッシュメモリ2のキャッシ
ング動作が禁止される。またこの“1"のキャッシュ禁止
信号19に応答して、第3の動作状態信号6は“1"とな
る。バスドライバ回路4は、この“1"の第3の動作状態
信号に応答してデータ処理装置1と主メモリ3との間の
アクセスを確立する。
データ処理装置1から要求されるバスアクセスタイプ
がインストラクションフェッチでなく、かつデータフェ
ッチでもない場合には、インストラクション信号15およ
びデータ信号16はともに“0"であり第1の論理ゲート24
の出力は“0"となり、キャッシュ禁止信号19は“1"とな
る。
また、データ処理装置1がそのバスアクセスのタイプ
にかかわらずキャッシングを望まない場合には、ノンキ
ャッシャブル信号17は“0"となり、第2の論理ゲート25
の出力は第1の論理ゲート24の出力レベルにかかわらず
“1"となり、キャッシュメモリのキャッシング動作が禁
止される。このとき第3の動作状態信号6がゲート回路
28を介して出力されるため“1"となり、データ処理装置
1と主メモリ3との間のアクセスが可能にされる。
さらにデータ処理装置1がデータの書込みを行ないた
い場合、データライト信号18が“1"にされ、かつデータ
信号16も“1"にされる。ここで、このキャッシュメモリ
システムに用いられるデータ処理装置1はデータ書込み
はワード単位で行なっている場合を想定している。
この場合、第3の論理ゲート26の出力が“1"となり、
第3の動作状態信号6も“1"となる。このとき、キャッ
シュ禁止信号19は、このキャッシュメモリ2がインスト
ラクションのキャッシングを行なうように設定されてい
るため、“1"となる。
次に、この第3の動作状態信号発生回路がデータフェ
ッチに対してキャッシングを行なうように条件設定され
ている場合の動作について説明する。この場合、第1の
ラッチ回路21は“0"を、第2のラッチ回路22は“1"のデ
ータをラッチしている。
インストラクション信号15が“1"、データ信号16が
“0"の場合、第1の論理ゲート24からは“0"の信号が出
力され、第2の論理ゲート25を介してキャッシュ禁止信
号19が“1"となり、キャッシュメモリのキャッシング動
作が禁止される。
次にインストラクション信号15が“0"でありデータ信
号16が“1"の場合、第1の論理ゲート24からは“1"の信
号が出力される。この場合、ノンキャッシャブル信号17
が“1"であり、キャッシングが要求されている場合には
第2の論理ゲート25からのキャッシュ禁止信号は“0"の
ままであり、キャッシュメモリ2はキャッシング動作を
実行する。
一方、ノンキャッシャブル信号17が“0"にあり、キャ
ッシング不要を示している場合にはキャッシュ禁止信号
19は第2の論理ゲート25により“1"となり、キャッシン
グ動作を禁止する。このキャッシュ禁止信号19が“1"と
なった場合には第3の動作状態信号6も“1"となり、主
メモリ3とデータ処理装置1との間のアクセスを可能に
する。
今データ処理装置1がアクセスを行ない、かつデータ
の書込みを要求している場合を考える。この場合、イン
ストラクション信号15は“0"、データ信号16およびデー
タライト信号18が“1"となる。この場合、NCA判断回路2
3の判断動作にかかわらず、出力回路27からは“1"の第
3の動作状態信号が出力される。このデータライト動作
時においてデータ処理装置1がデータ信号16を発生して
いる場合、キャッシュ禁止信号19の状態にかかわらず、
常に第3の動作状態信号6が出力され、データ処理装置
1と主メモリ3とが接続される。これは、このキャッシ
ュメモリシステムにおいては、いわゆるライトスルー方
式のデータ処理装置が想定されており、データライト時
においては、常に主メモリ3へアクセスが行なわれる構
成を想定しているからである。
なおこの第2図に示す構成において、キャッシング条
件を設定するために第1および第2のラッチ回路21およ
び22を用いているが、このラッチ回路を設けずに、直接
外部からピン端子を介して条件設定データを持続的に与
える構成としてもよい。
また、データライト信号18は、単に主メモリ3への書
込/読出を示す信号であってもよい。
次に、この発明によるキャッシュメモリを複数個用い
てマルチキャッシュシステムを構築した際の構成および
動作について説明する。
第3図はこの発明によるキャッシュメモリを複数個用
いたマルチキャッシュシステムの構成の一例を示す図で
ある。第3図において、マルチキャッシュシステムは、
第1のキャッシュメモリ2aと、第2のキャッシュメモリ
2bと、第1および第2のキャッシュメモリ2aおよび2bか
らのキャッシュミス信号を受ける第1のロジック回路7
とを含む。第1のキャッシュメモリ2aと第2のキャッシ
ュメモリ2bとはバス10aに並列に接続され、それぞれの
キャッシング対象となるアドレス領域が異ならされる。
第1のキャッシュメモリ2aから発生される第3の動作状
態信号6のみがバスドライバ回路4へ与えられる。
第1のロジック回路7は、第8図に示す第1のロジッ
ク回路7と同様の機能を有し、第1のキャッシュメモリ
2aおよび第2のキャッシュメモリ2bのいずれか一方から
キャッシュミス信号5aまたは5bが発生されたときにこの
メモリシステムにおいてキャッシュミスが発生したこと
を示すキャッシュミス信号5cを発生し、バスドライバ回
路4へ与える。
この第3図に示すマルチキャッシュシステムにおいて
は、1つのキャッシュメモリの第3の動作状態信号6の
みが用いられているため、キャッシュシステム全体のキ
ャッシング条件に従って条件を設定するための回路すな
わちアクセス設定回路が用いられる。
第4図はマルチキャッシュシステムに用いられるキャ
ッシュメモリに含まれる第3の動作状態信号発生回路の
構成を概略的に示す図である。この第3の動作状態信号
発生回路は、キャッシュメモリに内蔵されてもよく、ま
た外付けされてもよい。しかしながら、この第3の動作
状態信号発生回路をキャッシュメモリに外付けする構成
とすれば1個のキャッシュメモリに対してのみこのアク
セス設定回路を含む第3の動作状態信号発生回路を設け
ておき、残りのキャッシュメモリに対しては第2図に示
す簡易な構成の第3の動作状態信号発生回路を設けるこ
とができ、システムコストの観点からは好ましい。しか
しながら、この以下の説明においては第4図に示す第3
の動作状態信号発生回路が各キャッシュメモリに内蔵さ
れているとして説明する。このとき1つのキャッシュメ
モリにおいてのみ第3の動作状態信号が利用され、残り
のキャッシュメモリにおいてはこの第3の動作状態信号
は無視される。
第4図において、第3の動作状態信号発生回路は、第
2図に示す構成と同様、キャッシング条件を設定するた
めのキャッシング条件設定回路20、キャッシング可能か
否かを判断するNCA判断回路23を含む。この第4図に示
す条件設定回路20およびNCA判断回路23の構成および動
作は第2図に示すものと同様である。NCA判断回路23か
らキャッシング禁止信号19が発生される。
この第4図に示す第3の動作状態信号発生回路はさら
に、キャッシュメモリシステム全体のキャッシング条件
により定められるアクセス条件を設定するためのアクセ
ス設定回路30と、このアクセス設定回路30の設定データ
とデータ処理装置1が出力するアクセスタイプ識別情報
とに応答してこのキャッシュメモリ(およびキャッシュ
メモリシステム全体)が第3の動作状態にあるか否かを
判断する第3の動作状態判断回路33と、アクセス設定回
路30の設定データと第3の動作状態判断回路33の出力と
に応答して第3の動作状態信号6を発生する出力回路37
を備える。
アクセス設定回路30は、インストラクションのアクセ
スを設定するための第3のラッチ回路31と、データのア
クセスを設定するための第4のラッチ回路32を含む。こ
の第3および第4のラッチ回路31および32は第1および
第2のラッチ回路21および22と同一構成を有しており、
単にその設定データが示す内容が異なるだけである。
第3の動作状態判断回路33は、データ信号16とデータ
ライト信号18とを受ける第4の論理ゲート35と、アクセ
ス設定回路30の設定データとデータ処理装置1からのア
クセスタイプ識別情報とに応答して、データ処理装置1
が行なっているアクセスがアクセス設定回路30に設定さ
れたアクセスと一致しているか否かを判別するための第
3の論理ゲート34と、第3および第4の論理ゲートの出
力とノンキャッシャブル信号17とを受ける第5の論理ゲ
ート36を含む。
第3の論理ゲート34は、データ信号15と第3のラッチ
回路31の設定データとを受け、両者の論理積を取る第4
のゲート回路G4と、データ信号16と第4のラッチ回路32
の設定データを受け、両者の論理積を取って出力する第
5のゲート回路G5と、第4および第5のゲート回路G4,G
5の出力を受け、両者の論理和を取って出力する第6の
ゲート回路G6を含む。
第4の論理ゲート35は、データ信号16とデータライト
信号18の否定論理積を取って出力する。
第5の論理ゲート36は、第3および第4の論理ゲート
34および35の出力とノンキャッシャブル信号17の論理和
を取って出力する。この第5の論理ゲート36は、与えら
れた信号のうちの少なくとも1つが“0"のときに“1"の
信号を出力する。
出力回路37は、第3および第4のラッチ回路31および
32の設定データを受ける第6の論理ゲート38と、第6の
論理ゲート38の出力と第3の動作状態判断回路33の出力
とを受ける第7の論理ゲート39を含む。第6の論理ゲー
ト38は、この第3および第4のラッチ回路31および32に
設定されたデータがともに“0"のときに“0"の信号を出
力する。第7の論理ゲート39は、第6の論理ゲート38の
出力が“1"でありかつ第3の動作状態判断回路33の出力
が“1"であるときに“1"の第3の動作状態信号6を発生
する。
次に第3図および第4図を参照してこの発明によるマ
ルチキャッシュシステムの動作について説明する。
第1のキャッシュメモリ2aは、データ処理装置1のイ
ンストラクションフェッチに対しキャッシング動作を実
行するように設定される。すなわち、第1のキャッシュ
メモリ2aの条件設定回路20には、その第1のラッチ回路
21に“1"を、第2のラッチ回路22に“0"を設定する。
第2のキャッシュメモリ2bはデータ処理装置1のデー
タフェッチ時にキャッシングを実行するように設定され
る。すなわち第2のキャッシュメモリ2bの条件設定回路
20には、第1のラッチ回路21に“0"を、第2のラッチ回
路22に“1"を設定する。
さらに、第1のキャッシュメモリ2aの第3の動作状態
信号6のみが用いられるため、第1のキャッシュメモリ
2aにおいて、アクセス設定回路30の第3のラッチ回路31
に“1"を、第4のラッチ回路32に“1"のデータを設定す
る。このとき、アクセス設定回路30の2つの出力はとも
に“1"であるため、第6の論理ゲート38の出力は“1"と
なり、第7の論理ゲート39は、第3の動作状態判断回路
33の出力を通過させる。
今データ処理装置1がインストラクションフェッチを
実行した場合を考える。この場合インストラクション信
号15が“1"となり、第1のラッチ回路21の設定データ
“1"により、第1の論理ゲート24の出力は“1"となる。
今データ処理装置1がキャッシングを望む場合には、ノ
ンキャッシャブル信号17は“1"であり、第2の論理ゲー
ト25から出力されるキャッシング禁止信号19は“0"とな
る。第1のキャッシュメモリ2aはこの“0"のキャッシン
グ禁止信号に応答してキャッシング動作を実行し、キャ
ッシュミス/ヒットの判定を行なう。今キャッシュミス
が発生したとすると、第1のキャッシュメモリ2aからは
キャッシュミス信号5aが発生され、第1のロジック回路
7へ与えられる。
第2のキャッシュメモリ2bにおいては、データフェッ
チのみをキャッシングするように条件設定回路20におい
て設定されているため、第1の論理ゲート24の出力は
“0"となり、第2の論理ゲート25から出力されるキャッ
シング禁止信号19が“1"となり、第2のキャッシュメモ
リ2bにおけるキャッシング動作は禁止される。すなわち
この状態において、第2のキャッシュメモリ2bは第の動
作状態となる。
また、第1のキャッシュメモリ2aにおいて、アクセス
設定回路30のラッチ回路31および32の設定データはとも
に“1"であり、かつインストラクション信号15が“1"、
データ信号16が“0"であり、判断回路34からの出力信号
は“1"となりかつ第4の論理ゲート35の出力も“1"であ
る。今データ処理装置1キャッシングを要求しているた
め、ノンキャッシャブル信号17は“1"であり、したがっ
て第5の論理ゲート36の出力は“0"となる。これによ
り、第7の論理ゲート39から出力される第3の動作状態
信号6は“0"となる。
この状態においてはキャッシュミス信号5aが第1のキ
ャッシュメモリ2aから出力されているため、第1のロジ
ック回路7からキャッシュミス信号5cが発生されバスド
ライバ回路4へ与えられる。バスドライバ回路4は、こ
のキャッシュミス信号5cに応答してバス10aとバス10bと
を接続し、主メモリ3とデータ処理装置1との間のアク
セスを可能にする。またキャッシュミス信号5cに応答し
てバスドライバ回路4は、主メモリ3から第1のキャッ
シュメモリ2aへのデータ転送も制御する(リードアクセ
スの場合)。
次に、データ処理装置1がデータフェッチを行なった
場合の動作について説明する。このとき、今ノンキャッ
シャブル信号17が“1"にあり、データ処理装置1はキャ
ッシングを要求している場合を考える。第1のキャッシ
ュメモリ2aは、インストラクションフェッチにおいての
みキャッシングを行なうように設定されている。したが
って、第1のキャッシュメモリ2aにおいてはキャッシン
グ禁止信号19が“1"となり、そのキャッシング動作が禁
止される。すなわち第1のキャッシュメモリ2aは第3の
動作状態となる。
第2のキャッシュメモリ2bは、データフェッチ時にキ
ャッシングを行なうように設定されているため、キャッ
シング禁止信号19は“0"であり、キャッシング動作を行
なう。今第2のキャッシュメモリ2bにおいてキャッシュ
ミスが発生したとすると、キャッシュミス信号5bが出力
され、第1のロジック回路7へ与えられる。
また、第1のキャッシュメモリ2aの判断回路33は、今
データライト信号18が“0"であり、かつデータ信号16が
“1"であり、かつノンキャッシャブル信号17も“1"であ
り、また第3の論理ゲート34の出力も“1"であるため第
5の論理ゲート36の出力が“0"となり、“0"の信号を出
力する。したがって、この出力回路37の第7の論理ゲー
ト39から出力される第3の動作状態信号6は“0"とな
る。
バスドライバ回路4は、“0"の第3の動作状態信号6
と、第1のロジック回路7から出力される“1"のキャッ
シュミス信号5cに応答して、バス10aとバス10bとを接続
し、主メモリ3とデータ処理装置1との間のアクセスを
可能にするとともに、第2のキャッシュメモリ2bへのデ
ータ転送を管理制御して実行する。
リードアクセス時において第1のキャッシュメモリ2a
または第2のキャッシュメモリ2bにおいてキャッシュヒ
ットが発生した場合、キャッシュミス信号5cは発生され
ないため、バスドライバ回路4は、バス10aと10bとを切
離した状態に維持し、キャッシュヒットを起こしたキャ
ッシュメモリとデータ処理装置1との間でのデータ転送
を行なわせる(キャッシュメモリ2aはこのとき“0"の第
3の動作状態信号6を出力している)。
このリードアクセス時においてノンキャッシャブル信
号17が“0"となり、データ処理装置1がキャッシングを
要求しない場合、判断回路33の出力は“1"となり、出力
回路37から出力される第3の動作状態信号6は“1"とな
る。このとき第1のキャッシュメモリ2aおよび2bからは
キャッシュミス信号は発生されないため(一方は第3の
動作状態にある)、バスドライバ回路4は、この“1"の
第3の動作状態信号6に応答してバス10aとバス10bとを
接続し、所望の単位でのデータ転送をデータ処理装置1
と主メモリ3との間で行なわせる。
次にデータ処理装置1がデータライトを行なう場合の
動作について説明する。データライトを行なう場合、デ
ータ信号16およびデータライト信号18がともに“1"とな
り、インストラクション信号15は“0"である。このとき
第1のキャッシュメモリ2aにおいては、キャッシング禁
止信号19が“1"となり、キャッシング動作が禁止され、
第3の動作状態となる。
またこの第1のキャッシュメモリ2aにおいては、判断
回路33に含まれる第4の論理ゲート35の出力が“0"とな
り、第5の論理ゲート36の出力が“1"となる。この判断
回路33からの出力信号に応答して、出力回路37の第7の
論理ゲート39からは“1"の第3の動作状態信号6が出力
される。
第2のキャッシュメモリ2bにおいては、キャッシング
禁止信号19は“0"でありキャッシング動作が行なわれ
る。
今、第3の動作状態信号6は“1"であるため、バスド
ライバ回路4はバス10aとバス10bとを接続し、データ処
理装置1からのデータを主メモリ3の所定の位置に書込
む。このとき第2のキャッシュメモリ2bにおいてもデー
タを書込む(ライトヒットの場合)。通常、データ処理
装置1は、単に主メモリ3へそのキャッシュヒット/ミ
スにかかわらずデータを書込むだけであり、その時キャ
ッシュメモリへのデータの書込みを同時に実行するか否
かはその用いられるライトスルー方式またはライトバッ
ク方式により決定される。ここでは、ライトヒット発生
時においては対応のキャッシュメモリデータを書込むと
ともに主メモリ3へも書込むライトスルー方式の場合が
想定されている。
上述の構成において、バスドライバ回路4は、データ
処理装置1が、ライトヒット/ミスにかかわらず書込み
データを主メモリ3へ書込む場合を想定しており、また
このデータ処理装置1が主メモリ3へアクセスする際の
バスサイクルとキャッシュミス時に主メモリ3からキャ
ッシュメモリへデータを転送するバスサイクルとの相違
を明確にするために、この第3の動作状態信号6が用い
られている。
上述の構成のように、1つのキャッシュメモリにおけ
るアクセス設定回路に設定されたデータを用い、この1
つのキャッシュメモリのみから第3の動作状態信号を出
力し、バスドライバ回路4の動作制御を行なうように構
成することにより、第8図に示すような第2のロジック
回路が不必要となり、バスドライバ回路4は高速でバス
制御を実行することができる。
次に、システム全体の第3の動作状態を1つのキャッ
シュメモリで管理することを可能とするための、個々の
キャッシュメモリに設定されたキャッシング条件とシス
テム全体のアクセス条件についての妥当性、つまり条件
設定回路20の設定データとアクセス設定回路30の設定デ
ータとの組合わせについて説明する。
第5図は条件設定回路の設定データとアクセス設定回
路の設定データの組合わせおよびそのときに行なわれる
システム動作を一覧にして示す図である。
第5図において、表の上欄に条件設定回路20に設定さ
れるデータを示し、表の左の欄にアクセス設定回路の設
定データを示す。条件設定回路の第1列の(00)は、第
1のラッチ回路21のラッチデータが“0"でありかつ第2
のラッチ回路22のラッチデータが“0"である場合を示し
ている。この場合、キャッシュメモリ2は、常にキャッ
シング動作を行なわない状態を表わす。
表の上欄の第2列は第1のラッチ回路21のラッチデー
タが“0"であり、かつ第2のラッチ回路22のラッチデー
タが“1"であることを示しており、キャッシュメモリ2
が、データをキャッシングするデータキャッシュとして
動作をすることを表わす。
表の上欄の第3列の状態は、第1のラッチ回路21が
“1"をラッチし、かつ第2のラッチ回路22が“0"をラッ
チしており、キャッシュメモリ2がインストラクション
をキャッシングするインストラクションキャッシュとし
て動作することを表わす。
表の上欄の第4列は第1のラッチ回路21および第2の
ラッチ回路22のラッチデータがともに“1"であり、キャ
ッシュメモリ2は、インストラクションおよびデータの
区別をせずどちらをもキャッシングする状態を表わす。
第5図に示す表の左側のアクセス設定回路の状態にお
いて、第1列は第3のラッチ回路31および第4のラッチ
回路32がともに“0"をラッチしている状態を示し、この
状態は第3の動作状態信号6を使用しないシステム構成
を表わす。すなわちこの状態は第8図に示すようなシス
テム構成の状態を示す。
表の左側第2列の、第3のラッチ回路31が“0"をラッ
チしかつ第4のラッチ回路32が“1"をラッチしている状
態は、このシステムに含まれるすべてのキャッシュメモ
リ2がデータをキャッシングするデータキャッシュとし
て動作する状態を表現する。
表左欄の第3列は第3のラッチ回路31が“1"をラッチ
し、第4のラッチ回路32が“0"をラッチしている状態を
表わし、この状態はこのシステムに含まれるすべてのキ
ャッシュメモリ2がインストラクションをキャッシング
するインストラクションキャッシュとして動作する状態
を表わす。
表の左側の第4列は第3および第4のラッチ回路31お
よび32がともに“1"をラッチした状態を示し、このキャ
ッシュメモリシステムはインストラクションおよびデー
タいずれもキャッシングするシステム構成の状態を示
す。
この第5図に示す表において条件設定回路の設定デー
タとアクセス設定回路の設定データとの交点に示される
符号は、この組合わせが妥当か否かを示している。この
第5図に示す表において「−」の印は条件設定回路20の
設定データとアクセス設定回路30の設定データが組合わ
せられた場合、第3の動作状態信号6を使用しない第8
図に示すようなシステム構成の場合を示し、すなわちデ
ータ処理装置1からのアクセスタイプ識別情報のみでは
高速にキャッシング可能か否かを判別することができな
い場合にこの組合わせが用いられる。
「△」印で示される組合わせ状態は、キャッシュメモ
リがキャッシング動作を実行しない状態においても、こ
のキャッシュメモリシステムは動作する必要がある状態
を示している。この状態においては、データ処理装置1
からのどのようなアクセスに対してもバスドライバ回路
4を起動し、データ処理装置1と主メモリ3とを接続す
る必要があるため、第3の動作状態信号6を用いる必要
がある状態を示している。
「O」の印の組合わせ状態は、キャッシュメモリに要
求されるキャッシング条件とキャッシュメモリシステム
が要求するアクセス条件とが一致しており所望の組合わ
せ状態であることを示している。
「X」の印はその条件設定回路20とアクセス設定回路
30のそれぞれの設定状態の組合わせが望む状態と異なる
場合であり、望ましくない組合わせが実現される場合を
示している。この場合は常にキャッシュミスが発生する
ため、キャッシュメモリシステムの高速性を有効に利用
することができない。
具体的な例を挙げて説明してみる。条件設定回路20の
第1のラッチ回路21の内容が“1"、第2のラッチ回路22
のラッチデータが“0"であり、アクセス設定回路30の第
3のラッチ回路31のラッチデータが“0"、第4のラッチ
回路32のラッチデータが“1"である場合を考える。この
とき、第5図に示す表からこの交点に示される印は
「X」でありこの状態は望んだ組合わせ状態でない場合
を示している。このとき、キャッシュメモリ2は、デー
タ処理装置1がインストラクションフェッチを行なうと
きにはキャッシング動作しその内部にアクセスされたデ
ータの写を持つ(キャッシュヒット)状態においては、
要求データをバス10a上に出力する。
一方キャッシュシステム全体の動作としては、アクセ
ス設定回路30の設定条件により、データ処理装置1がデ
ータフェッチを行なったときにキャッシング動作を実行
するとされている。したがってこの場合、データ処理装
置1がインストラクションフェッチを行なったときには
第3の動作状態信号6が出力されるべきである。この第
3の動作状態信号6によりバスドライバ回路4は主メモ
リ3へのデータのアクセスを可能にし、データ処理装置
1の主メモリ3へのインストラクションフェッチを可能
にする。
しかしながら、このときキャッシュメモリ2はキャッ
シュヒット時において要求データをバス10a上に出力し
ており、また主メモリ3からの読出データがバスドライ
バ回路4によりバス10a上に伝達され、バスの衝突が生
じる。このようなバスの衝突が生じた場合、データの破
壊が生じるのみならず、過大な電流がバスに流れるた
め、この過大電流により装置(データ処理装置またはキ
ャッシュメモリ、およびバスドライバ回路および主メモ
リ)の破壊が生じることがある。
このような状態を避けるために、第5図に示す表にお
いて「X」の組合わせが設定された場合、キャッシュメ
モリ2自体を動作させないように制御する。すなわち、
このような組合わせが発生した場合、キャッシュメモリ
自体を動作させないようにキャッシング禁止信号を発生
させるかまたは第3の動作状態信号6を出力しないよう
に構成しバスの衝突を防止する必要がある。この第4図
に示す構成においては、第3および第4のラッチ回路31
および32に“0"が設定されている場合には、常時第3の
動作状態信号の発生が禁止され、この両ラッチ回路31お
よび32のいずれか一方に“1"が設定されている場合、第
3の動作状態判断回路33の出力に応じて第3の動作状態
信号6が発生されている。したがってこの回路構成のま
までは、第5図に示すような望ましくない組合わせによ
りバス衝突が生じることも考えられる。そこで、次に条
件設定回路の設定条件とアクセス設定回路の設定条件の
組合わせが好ましいものか否かの判断を行なう機能を備
えた構成について説明する。
第6図は条件組合わせの判断機能を備えた第3の動作
状態信号発生回路の構成を示す図であり、第4図に示す
構成と対応する部分には同一の参照番号が付されてい
る。第6図に示す第3の動作状態信号発生回路はアクセ
ス設定回路30と第3の動作状態判断回路33および出力回
路37の間に設けられた判定回路40を含む。この判定回路
40は第5図に示す規則に従ってNCA判断回路23と、第3
の動作状態判断回路30と出力回路37の動作を制御する。
判定回路40は、条件設定回路20の設定データを受ける
ゲート回路G10と、アクセス設定回路30の設定データを
受けるゲート回路G11と、条件設定回路20の第1のラッ
チ回路21のラッチデータとアクセス設定回路30の第4の
ラッチ回路32のラッチデータと、第3のラッチ回路31の
ラッチデータをインバータI10を介して受けるゲート回
路G12と、条件設定回路20の第2のラッチ回路22のラッ
チデータと設定回路30の第3のラッチ回路31のラッチデ
ータと、第4のラッチ回路32のラッチデータのインバー
タI11を介したデータとを受けるゲート回路G13と、ゲー
ト回路G12およびG13の出力を受けるゲート回路G14を含
む。ゲート回路G10の出力は第3の論理ゲート34の入力
に設けられた第4および第5のゲート回路へ与えられ
る。ゲート回路G14の出力は第1の論理ゲート24の第1
および第2ゲート回路の入力へ与えられる。このため、
第1、第2、第4および第5の論理ゲートは第4図に示
す構成と異なり3入力のゲート回路となっている。
出力回路37は2入力の論理積回路からなるゲート回路
39と論理和演算を行なう論理ゲート38を含む。ゲート回
路38は、ゲート回路G11の出力ゲート回路G14の出力とを
受ける。ゲート回路39は論理ゲート38の出力と論理ゲー
ト36の出力とを受けて第3の動作状態信号6を出力す
る。次に動作について説明する。
ゲート回路G10はその両入力がともに“0"のときに
“0"の信号を出力し、第3の論理ゲート34へ与える。し
たがって条件設定回路20の設定データがともに“0"の場
合には第3の論理ゲート34の出力は“0"となり、第3の
動作状態判断回路33の出力は“1"となる。
アクセス設定回路30の第3および第4のラッチ回路31
および32のラッチデータがともに“0"の場合、ゲート回
路G11の出力は“1"となり、また第3の論理ゲート34出
力は“0"となり、第3の動作状態判断回路33出力は“1"
となる。このときゲート回路G14の出力は“1"となる。
したがってこの場合出力回路37に含まれるゲート回路39
からの第3の動作状態信号6は、ゲート回路38の出力が
“1"であり、アクセスタイプにかかわらず常に“1"とな
る。このとき判断回路23から出力されるキャッシュ禁止
信号19は、データ処理装置1のアクセスタイプと条件設
定回路20の設定条件により決定される。この状態は未使
用状態であり、禁止される。
条件設定回路20のラッチ回路21のラッチデータが
“0"、第2のラッチ回路22のラッチデータが“1"であ
り、かつアクセス設定回路30の第3のラッチ回路31のラ
ッチデータが“1"、第4のラッチ回路32のラッチデータ
が“0"の場合を考える。この場合、ゲート回路G11およ
びG14の出力が“0"となり、出力回路37のゲート回路39
から出力される第3の動作状態信号6はゲート回路38の
出力が“0"のため“0"となる。
また、判定回路40のゲート回路G14の出力は“0"であ
り、第1の論理ゲート24のゲート回路G1およびG2の出力
はともに“0"となり、第1の論理ゲート24からは“0"の
信号が出力され、したがってキャッシュ禁止信号19は
“1"となる。
第1のラッチ回路21に“0"、第2のラッチ回路22に
“1"、第3のラッチ回路31に“1"、および第4のラッチ
回路32に“0"が設定された場合を考える。この場合、ゲ
ート回路G11の出力が“0"となりかつゲート回路G14の出
力も“0"となる。したがってゲート回路38の出力が“0"
となり、出力回路37から出力される第3の動作状態信号
6は“0"である。またこのとき、第1の論理ゲート24の
出力も“0"となり、キャッシュ禁止信号19は“1"とな
る。
また条件設定回路20の第1および第2のラッチ回路21
および22に“1"が設定され、かつアクセス設定回路30の
第3および第4のラッチ回路31および32のいずれか一方
に“1"、他方に“0"が設定された場合を考える。このと
き、上述の場合と同様にゲート回路G11およびG14の出力
が“0"となり、第3の動作状態信号6は“0"であり、ま
たキャッシュ禁止信号19はゲート回路G14の出力が“0"
となるため“1"となる。
この条件設定回路20およびアクセス設定回路30に設定
される条件(アクセスタイプ指示)データの組合わせが
望ましいものである場合、すなわち第5図に示す表にお
いて「O」で示される組合わせの場合、ゲート回路G14
および38の出力が“1"となり、第4図に示す第3の動作
状態信号発生回路と同様の動作を行なうことになり、そ
の設定された条件に従う動作を行なうことになる。
第1および第2のラッチ回路21および22に“0"が設定
された場合、ゲート回路G10の出力が“0"、ゲート回路G
14の出力が“1"、ゲート回路38の出力が“1"となり、キ
ャッシュ禁止信号19が“1"、第3の動作状態信号が6が
“1"となる。
したがって第6図に示すような回路構成を用いて第5
図に示すような規則により条件設定回路20とアクセス設
定回路30の設定データの組合わせを判別するように構成
すればバスの衝突が生じることがなく、確実なバス制御
を実行することができる。
マルチキャッシュシステムにおいては、上述の構成に
より、全てのキャッシュメモリが第3の動作状態となっ
たときにのみ第3の動作状態信号6が出力され、1つの
キャッシュメモリからの第3の状態信号により全てのキ
ャッシュメモリの動作状態を判別できる。
[発明の効果] 以上のように、この発明によれば、データ処理装置か
ら出力されるアクセスタイプ識別信号に応じてキャッシ
ュメモリのキャッシング動作を制御し、かつキャッシュ
メモリがリードアクセス時におけるキャッシュヒット動
作およびキャッシュミス動作のいずれとも異なった第3
の動作を行なうとき、この第3の動作状態を示す信号出
力手段をキャッシュメモリに設けたため、高速で、デー
タ処理装置からキャッシュ可能領域に対するアクセス要
求が行なわれたか否かを識別することができ、応じてこ
の判別結果に従ってキャッシュヒット/ミスの判定また
は主記憶装置へのアクセスを行なうことができるため、
データ処理装置から出力されるリード情報などのデコー
ドまたはマルチプレクスに要する程度の時間でこの緩衝
記憶装置を構成するキャッシュメモリの動作モードを判
断することができ、データ処理装置のこの緩衝記憶装置
に対するアクセス時間を低減することができ、高速動作
する緩衝記憶装置を実現することができる。またこの第
3の動作状態信号によりバスドライバ回路を制御するよ
うに構成することにより、高速でデータ処理装置と主記
憶装置とを接続するためのバスドライバ回路の動作を制
御することができ、高速データアクセスを実現すること
のできるキャッシュメモリを得ることができる。
また、複数のキャッシュメモリからなるキャッシュメ
モリシステムにおいては、1個のキャッシュメモリから
の第3の動作状態信号のみを用いてバスドライバ回路を
動作制御するように構成したため、マルチキャッシュシ
ステムにおいて全体のキャッシュシステムの動作状態を
判断するための論理回路が不必要となり、これによりコ
ストの低減およびバスドライバ回路のバス制御の高速化
を図ることができる。
また、このキャッシュメモリには、条件設定回路とア
クセス設定回路との条件の良/不良を判別するための判
定回路を設けたため、ユーザがたとえキャッシュメモリ
のアクセス設定回路の設定を誤った場合においても、そ
の場合第3の動作状態信号が発生されないように構成し
たため、バスの衝突を防止することができ、ディバイス
破壊の生じない安全性の高いキャッシュメモリシステム
を構成することができる。
【図面の簡単な説明】
第1図はこの発明の一実施例であるキャッシュシステム
の構成を示す図である。第2図は第1図に示すキャッシ
ュメモリに用いられる第3の動作状態信号発生回路の具
体的構成の一例を示す図である。第3図はこの発明の他
の実施例であるマルチキャッシュシステムの構成例を示
す図である。第4図は第3図に示すキャッシュメモリに
用いられる第3の動作状態信号発生回路の具体的構成の
一例を示す図である。第5図はマルチキャッシュシステ
ムにおける条件設定回路とアクセス設定回路の設定デー
タの組合わせによるバスアクセスの可能な組合わせを示
す図である。第6図はマルチキャッシュシステムにおい
てバス衝突を防止することのできる組合わせ判定機能を
備えた第3の動作状態信号発生回路の構成の一例を示す
図である。第7図は従来のキャッシュメモリシステムの
構成の一例を示す図である。第8図は第1図に示すキャ
ッシュメモリを用いて構成されるキャッシュメモリシス
テムの構成例を示す図である。第9図は第8図に示すマ
ルチキャッシュシステムの各キャッシュメモリに割当て
られるアドレス領域を例示する図である。 図において、1はデータ処理装置、2、2aおよび2bはキ
ャッシュメモリ、3は主メモリ、4はバスドライバ回
路、5、5aおよび5bおよび5cはキャッシュミス信号、6
は第3の動作状態信号、20は条件設定回路、23はNCA判
断回路、27は出力回路、33は第3の動作状態判断回路、
37は出力回路、40は組合わせ条件判定回路である。 なお、各図中、同一符号は同一または相当部分を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西田 孝一 兵庫県伊丹市瑞原4丁目1番地 三菱電 機株式会社エル・エス・アイ研究所内 (56)参考文献 特開 平1−79844(JP,A) 特開 昭61−59554(JP,A)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶装置とデータ処理装置との間に設け
    られ、前記主記憶装置から読出されたデータを一時的に
    記憶する緩衝記憶装置であって、前記緩衝記憶装置は前
    記データ処理装置のリードアクセスに応答して前記主記
    憶装置の記憶内容の写がそこに存在した場合に前記デー
    タ処理装置がアクセス要求したデータを出力する第1の
    動作モードと、前記データ処理装置のリードアクセスに
    対して前記主記憶装置の記憶内容の写がそこに存在しな
    い場合には前記データ処理装置がアクセス要求したデー
    タを前記主記憶装置へアクセスして記憶する第2の動作
    モードと、前記第1および第2の動作モードと異なる第
    3の動作モードとを備え、かつ前記データ処理装置はア
    クセスの種類を示すアクセスタイプ識別信号を出力し、 前記データ処理装置が前記緩衝記憶装置に対して実行す
    べきアクセスの種類を設定するための条件設定手段を備
    え、前記条件設定手段に設定されるアクセスの種類によ
    り、また前記緩衝記憶装置を前記第3の動作モードに置
    くアクセスの種類の識別が可能であり、 前記データ処理装置からの前記アクセスタイプ識別信号
    と前記条件設定手段に設定されたアクセスの種類とを比
    較し、該比較結果に従って前記緩衝記憶装置が前記第3
    の動作モード状態になったか否かを判別する第3の動作
    状態判別手段と、 前記第3の動作状態判別手段が前記緩衝記憶装置が前記
    第3の動作モード状態に置かれたことを示すことに応答
    して、前記緩衝記憶装置が前記第3の動作モード状態と
    なったことを示す第3の動作状態指示信号を出力する第
    3の動作状態信号発生手段とを備える、緩衝記憶装置。
  2. 【請求項2】主記憶装置とデータ処理装置との間に設け
    られ、前記主記憶装置から読出されたデータを一時的に
    記憶するための緩衝記憶装置であって、前記データ処理
    装置はアクセス時にアクセスの種類を示すアクセスタイ
    プ識別信号を出力し、かつ前記緩衝記憶装置は、前記デ
    ータ処理装置のリードアクセスに応答して前記主記憶装
    置の記憶内容の写がそこに存在する場合には該アクセス
    要求されたデータを出力する第1の動作モードと、前記
    データ処理装置からのリードアクセスに応答してそこに
    前記主記憶装置の記憶内容の写が存在しない場合には前
    記主記憶装置へアクセスして、前記主記憶装置から該ア
    クセス要求されたデータを受けて記憶する第2の動作モ
    ードと、前記第1および第2の動作モードと異なる第3
    の動作モードとを備えており、 前記緩衝記憶装置に前記第1および第2の動作モードの
    いずれかの動作モードを行なわせる、前記データ処理装
    置のアクセスの種類を示すデータを設定するための条件
    設定手段と、 前記緩衝記憶装置を前記第3の動作モード状態に置く、
    前記データ処理装置のアクセスの種類を設定するための
    アクセス設定手段と、 前記データ処理装置からのアクセスタイプ識別信号と前
    記条件設定手段に設定されたアクセスの種類を示すデー
    タとに応答して、前記第1および第2の動作モードのい
    ずれか一方が可能か否かを判断し、該判断結果を示す信
    号を出力する判断結果出力手段とを備え、前記緩衝記憶
    装置は前記判断結果出力手段からの出力信号に応答し
    て、前記第1、第2および第3の動作モードのいずれか
    の動作モードを実行し、 前記データ処理装置からの前記アクセスタイプ識別信号
    と前記アクセス設定手段に設定されたアクセスの種類を
    示すデータとを比較し、該比較結果に従って前記緩衝記
    憶装置が前記第3の動作モード状態にあるか否かを判別
    し、該判別結果を示す第3の動作状態信号を発生する手
    段とを備える、緩衝記憶装置。
  3. 【請求項3】主記憶装置とデータ処理装置との間に設け
    られ、前記主記憶装置から読出されたデータを一時的に
    記憶するための緩衝記憶装置であって、前記データ処理
    装置はアクセス時にアクセスの種類を示すアクセスタイ
    プ識別信号を出力し、かつ前記緩衝記憶装置は、前記デ
    ータ処理装置のリードアクセスに応答して、そこに前記
    主記憶装置の記憶内容の写が存在する場合には該アクセ
    ス要求されたデータを出力する第1の動作モードと、前
    記データ処理装置からのリードアクセスに応答してそこ
    に前記主記憶装置の記憶内容の写が存在しない場合に
    は、前記主記憶装置がアクセス要求されたデータを記憶
    する第2の動作モードと、前記第1および第2の動作モ
    ードと異なる第3の動作モードとを備えており、 前記緩衝記憶装置に前記第1または第2の動作モードを
    行なわせる、前記データ処理装置のアクセスの種類を示
    すデータを設定する条件設定手段と、 前記緩衝記憶装置に前記第3の動作モードを行なわせ
    る、前記データ処理装置のアクセスの種類を示すデータ
    を設定するためのアクセス設定手段と、 前記条件設定手段に設定されたアクセスの種類を示すデ
    ータと前記アクセス設定手段に設定されたアクセスの種
    類を示すデータとを受け、前記条件設定手段および前記
    アクセス設定手段に設定されたアクセスの種類を示すデ
    ータが予め規定された組合せであるか否かを判断する組
    合せ判断手段と、 前記データ処理装置からのアクセスタイプ識別信号と前
    記条件設定手段からのアクセスの種類を示すデータと前
    記組合せ判断手段の出力信号とに従って、前記第1およ
    び第2の動作モードのいずれか一方が可能であるか否か
    を判定し、該判定結果を示す信号を出力する判定手段と
    を備え、前記判定手段の出力信号に応答して、前記緩衝
    記憶装置は、前記第1および第2の動作モードのいずれ
    かの動作モードを実行し、 前記データ処理装置からのアクセスタイプ識別信号と前
    記条件設定手段からのアクセスの種類指示データと前記
    アクセス設定手段からのアクセスの種類を示すデータと
    に従って、前記緩衝記憶装置が前記第3の動作モード状
    態にあるか否かを判定する第3の動作モード判定手段
    と、 前記組合せ判別手段からの出力信号と前記第3の動作モ
    ード判定手段の出力信号とに応答して、前記緩衝記憶装
    置が前記第3の動作モード状態にあることを示す第3の
    動作状態信号を出力する手段とを備え、前記第3の動作
    状態信号出力手段は、前記組合せ判別手段の出力信号
    が、前記アクセスの種類が予め規定された組合せにある
    ことを示すとき、前記第3の動作モード状態信号の活性
    化を禁止する手段を備える、緩衝記憶装置。
  4. 【請求項4】アクセス時に少なくともアクセスのタイプ
    を示すアクセスタイプ識別信号を出力する機能を備える
    データ処理装置と、 主記憶装置と、 前記主記憶装置と前記データ処理装置との間に設けら
    れ、前記主記憶装置から読出されたデータを一時的に記
    憶するための少なくとも1個のキャッシュメモリを有す
    る緩衝記憶装置とを備え、前記緩衝記憶装置は、前記デ
    ータ処理装置からのリードアクセスに応答して、そこに
    前記主記憶装置の記憶内容の写が存在する場合には該ア
    クセス要求されたデータを出力する第1の動作モード
    と、前記データ処理装置からのリードアクセスに応答し
    て、そこに前記主記憶装置の記憶内容の写が存在しない
    ときには前記主記憶装置へアクセスして、該アクセス要
    求されたデータを記憶する第2の動作モードと、前記第
    1および第2の動作モードと異なる第3の動作モードと
    を備えており、かつ前記緩衝記憶装置を、前記第1、第
    2および第3の動作モードに置く前記データ処理装置の
    アクセスの種類を設定するための設定手段と、前記デー
    タ処理装置からのアクセスタイプ識別信号と前記設定手
    段からのアクセスの種類を示すデータとに従って、前記
    第1、第2または第3の動作モードでの動作を可能にす
    るための信号を発生する第1の手段と、前記設定手段に
    設定されたアクセスの種類を示すデータと前記アクセス
    タイプ識別信号とに応答して、前記第3の動作モードで
    の動作状態を示す信号を発生する第2の手段と、前記第
    1の手段の出力信号に応答して活性化され、前記第2の
    動作モードでの動作状態のときに該第2の動作モードを
    示す信号を発生する手段とを含み、さらに 前記第2の動作モードを示す信号と前記第3の動作モー
    ド状態を示す信号とに応答して、前記データ処理装置と
    前記主記憶装置との間および前記主記憶装置と前記緩衝
    記憶装置との間で選択的にデータ転送を行なうようにバ
    ス接続を制御するバスドライブ手段を備える、緩衝記憶
    装置システム。
JP2245254A 1990-09-14 1990-09-14 緩衝記憶装置および緩衝記憶装置システム Expired - Lifetime JP2542284B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2245254A JP2542284B2 (ja) 1990-09-14 1990-09-14 緩衝記憶装置および緩衝記憶装置システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2245254A JP2542284B2 (ja) 1990-09-14 1990-09-14 緩衝記憶装置および緩衝記憶装置システム

Publications (2)

Publication Number Publication Date
JPH04124748A JPH04124748A (ja) 1992-04-24
JP2542284B2 true JP2542284B2 (ja) 1996-10-09

Family

ID=17130947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2245254A Expired - Lifetime JP2542284B2 (ja) 1990-09-14 1990-09-14 緩衝記憶装置および緩衝記憶装置システム

Country Status (1)

Country Link
JP (1) JP2542284B2 (ja)

Also Published As

Publication number Publication date
JPH04124748A (ja) 1992-04-24

Similar Documents

Publication Publication Date Title
US5257361A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
US5067078A (en) Cache which provides status information
US5717898A (en) Cache coherency mechanism for multiprocessor computer systems
US6138208A (en) Multiple level cache memory with overlapped L1 and L2 memory access
US5524208A (en) Method and apparatus for performing cache snoop testing using DMA cycles in a computer system
US6868472B1 (en) Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory
JP3987577B2 (ja) システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置
EP0706133A2 (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5805855A (en) Data cache array having multiple content addressable fields per cache line
JPH0668735B2 (ja) キヤツシユメモリ−
JPH08185359A (ja) メモリサブシステム
US5148526A (en) Data processing system with an enhanced cache memory control
US5497458A (en) Cache testability circuit for embedded diagnostics
EP0706131A2 (en) Method and system for efficient miss sequence cache line allocation
US5638537A (en) Cache system with access mode determination for prioritizing accesses to cache memory
US5802567A (en) Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
JPH06222993A (ja) キャッシュメモリシステムおよびそれを実現するための方法
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
JPH07182238A (ja) 欠陥データ無効化回路及び方法
US7356647B1 (en) Cache with integrated capability to write out entire cache
JPH10143431A (ja) マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法
US5752262A (en) System and method for enabling and disabling writeback cache
US7865691B2 (en) Virtual address cache and method for sharing data using a unique task identifier