JPH0950399A - 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム - Google Patents
多次元空間に配列されたデータの処理に適したキャッシュメモリシステムInfo
- Publication number
- JPH0950399A JPH0950399A JP7204278A JP20427895A JPH0950399A JP H0950399 A JPH0950399 A JP H0950399A JP 7204278 A JP7204278 A JP 7204278A JP 20427895 A JP20427895 A JP 20427895A JP H0950399 A JPH0950399 A JP H0950399A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- cache
- bank
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 多次元空間に配列されたデータの処理、特
に、3Dグラフィックデータの処理の様な2次元平面に
配列されたグラフィックデータの高速処理に適したキャ
ッシュメモリシステムに関し、多次元空間に配列される
データの特質に適合したキャッシュメモリシステムを提
供する。 【解決手段】 予測アドレス生成回路76において、現
アドレスから予め定められた規則に従って予測アドレス
を生成する。2つのキャッシュメモリバンク72,74
を設け、一方を現バンクに他方を予測バンクに割り当て
る。キャッシュコンパレータにおいて、現アドレスが予
測バンクのみにヒットしたと判断されるとき、現バンク
及び予測バンクの割り当てを反転する。予測アドレスが
現バンクにも予測バンクにもヒットしないと判断される
とき、予測アドレスに対応するデータブロックを予測バ
ンクに予めロードする。
に、3Dグラフィックデータの処理の様な2次元平面に
配列されたグラフィックデータの高速処理に適したキャ
ッシュメモリシステムに関し、多次元空間に配列される
データの特質に適合したキャッシュメモリシステムを提
供する。 【解決手段】 予測アドレス生成回路76において、現
アドレスから予め定められた規則に従って予測アドレス
を生成する。2つのキャッシュメモリバンク72,74
を設け、一方を現バンクに他方を予測バンクに割り当て
る。キャッシュコンパレータにおいて、現アドレスが予
測バンクのみにヒットしたと判断されるとき、現バンク
及び予測バンクの割り当てを反転する。予測アドレスが
現バンクにも予測バンクにもヒットしないと判断される
とき、予測アドレスに対応するデータブロックを予測バ
ンクに予めロードする。
Description
【0001】
【発明の属する技術分野】本発明は、多次元空間に配列
された(複数のアドレスの組み合わせでアドレスされ
る)データの処理、特に、3Dグラフィックデータの処
理の様な2次元平面に配列された(Xアドレス及びYア
ドレスの組み合わせでアドレスされる)グラフィックデ
ータの高速処理に適したキャッシュメモリシステムに関
する。
された(複数のアドレスの組み合わせでアドレスされ
る)データの処理、特に、3Dグラフィックデータの処
理の様な2次元平面に配列された(Xアドレス及びYア
ドレスの組み合わせでアドレスされる)グラフィックデ
ータの高速処理に適したキャッシュメモリシステムに関
する。
【0002】多次元空間に配列されたデータ、例えば3
Dグラフィックデータの処理装置において、グラフィッ
クデータはビデオRAMの様なフレームバッファメモリ
に格納され、プロセッサはフレームバッファメモリに格
納されたグラフィックデータを直接アクセスし読み書き
を行なう。この様な多次元空間に配列されたデータは極
めて大量であることから、その格納には大容量の半導体
メモリが使用される。この様な大容量の半導体メモリは
アクセス時間が長いという特性があるため、キャッシュ
メモリシステムを導入して見かけのアクセス時間を短か
くして高速処理を実現することが考えられる。
Dグラフィックデータの処理装置において、グラフィッ
クデータはビデオRAMの様なフレームバッファメモリ
に格納され、プロセッサはフレームバッファメモリに格
納されたグラフィックデータを直接アクセスし読み書き
を行なう。この様な多次元空間に配列されたデータは極
めて大量であることから、その格納には大容量の半導体
メモリが使用される。この様な大容量の半導体メモリは
アクセス時間が長いという特性があるため、キャッシュ
メモリシステムを導入して見かけのアクセス時間を短か
くして高速処理を実現することが考えられる。
【0003】一方、3Dグラフィックデータの様な多次
元空間に配列されたデータの処理には次の様な特質があ
る。 i)長期的には空間全体に処理がランダムに分布し、短
期的には局所的な領域内のデータに処理が集中する。 ii)処理が集中する領域は平面的或いは空間的に一定の
拡がりを有する。
元空間に配列されたデータの処理には次の様な特質があ
る。 i)長期的には空間全体に処理がランダムに分布し、短
期的には局所的な領域内のデータに処理が集中する。 ii)処理が集中する領域は平面的或いは空間的に一定の
拡がりを有する。
【0004】iii )1つの図形又は立体を構成する各デ
ータの処理は予め定められた一定の順序に従って行なわ
れるので次に処理すべきデータの予測が可能である。従
って、多次元空間に配列されたデータの処理装置にキャ
ッシュメモリシステムを導入する際には、上記の特質を
考慮して設計する必要がある。特開平4−102146
号公報(米国特許出願第454952号に基づく優先権
を主張する日本出願の公開公報)には、表示のためのフ
レームバッファと共に使用されるキャッシュメモリシス
テムが開示されている。しかしながら、汎用コンピュー
タシステムに広く採用されているキャッシュシステムと
同様に、各データブロックは主メモリのアドレスの下位
側の例えば3ビットを除いたアドレスビットで識別され
るので、キャッシュメモリの各記憶領域は表示用のフレ
ームバッファのアドレスが連続する例えば8ワードから
なるデータブロックを格納することになる。すなわち、
各データブロックは表示される画像の1本の走査線の一
部に対応し、2次元的な拡がりを有する領域に対応する
ものではない。
ータの処理は予め定められた一定の順序に従って行なわ
れるので次に処理すべきデータの予測が可能である。従
って、多次元空間に配列されたデータの処理装置にキャ
ッシュメモリシステムを導入する際には、上記の特質を
考慮して設計する必要がある。特開平4−102146
号公報(米国特許出願第454952号に基づく優先権
を主張する日本出願の公開公報)には、表示のためのフ
レームバッファと共に使用されるキャッシュメモリシス
テムが開示されている。しかしながら、汎用コンピュー
タシステムに広く採用されているキャッシュシステムと
同様に、各データブロックは主メモリのアドレスの下位
側の例えば3ビットを除いたアドレスビットで識別され
るので、キャッシュメモリの各記憶領域は表示用のフレ
ームバッファのアドレスが連続する例えば8ワードから
なるデータブロックを格納することになる。すなわち、
各データブロックは表示される画像の1本の走査線の一
部に対応し、2次元的な拡がりを有する領域に対応する
ものではない。
【0005】又、汎用コンピュータシステムのためのキ
ャッシュシステムと同様に、表示フレームバッファのた
めのアドレスの一部のアドレスビットを使ってキャッシ
ュメモリの各記憶領域が識別されるダイレクトマッピン
グ方式が採用されているので、フレームバッファ内に格
納されている各データがキャッシュメモリのどの記憶領
域に格納されるかは予め一義的に定められている。従っ
て、長期的には画面全体に処理がランダムに分布し、短
期的には局所的な領域に処理が集中するグラフィックデ
ータの処理の特質により、用意されたキャッシュメモリ
の記憶領域の大部分が有効に利用されないという問題が
ある。
ャッシュシステムと同様に、表示フレームバッファのた
めのアドレスの一部のアドレスビットを使ってキャッシ
ュメモリの各記憶領域が識別されるダイレクトマッピン
グ方式が採用されているので、フレームバッファ内に格
納されている各データがキャッシュメモリのどの記憶領
域に格納されるかは予め一義的に定められている。従っ
て、長期的には画面全体に処理がランダムに分布し、短
期的には局所的な領域に処理が集中するグラフィックデ
ータの処理の特質により、用意されたキャッシュメモリ
の記憶領域の大部分が有効に利用されないという問題が
ある。
【0006】そこで本願発明者は、特願平6−1810
13号において、上記i)ii)の特質を考慮して、複数
のデータアドレスのそれぞれの上位ビットの組み合わせ
で特定されるデータブロックをキャッシュメモリの各記
憶領域にキャッシングするように構成し、かつ、キャッ
シュメモリの各記憶領域をデータアドレスの一部のビッ
トで直接指定するのでなく、タグメモリに記憶されたラ
イン番号により関接的に指定するようにしたキャッシュ
メモリシステムを提案した。
13号において、上記i)ii)の特質を考慮して、複数
のデータアドレスのそれぞれの上位ビットの組み合わせ
で特定されるデータブロックをキャッシュメモリの各記
憶領域にキャッシングするように構成し、かつ、キャッ
シュメモリの各記憶領域をデータアドレスの一部のビッ
トで直接指定するのでなく、タグメモリに記憶されたラ
イン番号により関接的に指定するようにしたキャッシュ
メモリシステムを提案した。
【0007】しかしながら、このシステムにおいては、
i)ii)の特質については考慮されているものの、iii
)の特質については未だ考慮が払われていなかった。
i)ii)の特質については考慮されているものの、iii
)の特質については未だ考慮が払われていなかった。
【0008】
【発明が解決しようとする課題】本発明の目的は、多次
元空間に配列されるデータの処理の上記の様な特質に適
合したキャッシュメモリシステムを提供することにあ
る。
元空間に配列されるデータの処理の上記の様な特質に適
合したキャッシュメモリシステムを提供することにあ
る。
【0009】
【課題を解決するための手段】本発明によれば、主記憶
に記憶され、複数のデータアドレスの組み合わせで特定
されるデータの処理に適したキャッシュメモリシステム
であって、該複数のデータアドレスの組み合わせの第1
の部分からなるブロックアドレスでそれぞれが特定され
残りの第2の部分からなるブロック内アドレスでそれぞ
れを構成するデータが特定されるデータブロックのコピ
ーをそれぞれ記憶するための複数の記憶領域を有する第
1のキャッシュメモリバンクと、該複数のデータアドレ
スの組み合わせの第1の部分からなるブロックアドレス
でそれぞれが特定され残りの第2の部分からなるブロッ
ク内アドレスでそれぞれを構成するデータが特定される
データブロックのコピーをそれぞれ記憶するための複数
の記憶領域を有する第2のキャッシュメモリバンクと、
特定のデータアドレスの組み合わせに対応する現ブロッ
クアドレスから予め定められた規則に従って予測ブロッ
クアドレスを決定するブロックアドレス予測回路と、現
ブロックアドレス、及び該ブロックアドレス予測回路が
決定した予測ブロックアドレスが前記第1及び第2のキ
ャッシュメモリバンクにヒットしたかミスヒットしたか
を決定するキャッシュコンパレータと、該キャッシュコ
ンパレータの判定結果に従って、該主記憶及び該第1及
び第2のキャッシュメモリバンクを制御するための制御
ブロックとを具備するキャッシュメモリシステムが提供
される。
に記憶され、複数のデータアドレスの組み合わせで特定
されるデータの処理に適したキャッシュメモリシステム
であって、該複数のデータアドレスの組み合わせの第1
の部分からなるブロックアドレスでそれぞれが特定され
残りの第2の部分からなるブロック内アドレスでそれぞ
れを構成するデータが特定されるデータブロックのコピ
ーをそれぞれ記憶するための複数の記憶領域を有する第
1のキャッシュメモリバンクと、該複数のデータアドレ
スの組み合わせの第1の部分からなるブロックアドレス
でそれぞれが特定され残りの第2の部分からなるブロッ
ク内アドレスでそれぞれを構成するデータが特定される
データブロックのコピーをそれぞれ記憶するための複数
の記憶領域を有する第2のキャッシュメモリバンクと、
特定のデータアドレスの組み合わせに対応する現ブロッ
クアドレスから予め定められた規則に従って予測ブロッ
クアドレスを決定するブロックアドレス予測回路と、現
ブロックアドレス、及び該ブロックアドレス予測回路が
決定した予測ブロックアドレスが前記第1及び第2のキ
ャッシュメモリバンクにヒットしたかミスヒットしたか
を決定するキャッシュコンパレータと、該キャッシュコ
ンパレータの判定結果に従って、該主記憶及び該第1及
び第2のキャッシュメモリバンクを制御するための制御
ブロックとを具備するキャッシュメモリシステムが提供
される。
【0010】
【発明の実施の形態】本願発明に係るキャッシュメモリ
システムの具体例を説明する前に、その理解を容易にす
るため、前述の特願平6−181013号に開示された
キャッシュメモリの具体例を図面を参照しつつ説明す
る。図1は本願発明者が提案したキャッシュメモリシス
テムが採用されている画像処理装置の具体例を示す。
システムの具体例を説明する前に、その理解を容易にす
るため、前述の特願平6−181013号に開示された
キャッシュメモリの具体例を図面を参照しつつ説明す
る。図1は本願発明者が提案したキャッシュメモリシス
テムが採用されている画像処理装置の具体例を示す。
【0011】図中、30はプロセッサ、31は主メモ
リ、32は2次元キャッシュメモリシステムであって、
画像データから切り出される2次元の拡がりを有するデ
ータブロックをキャッシングするもの、33はメモリコ
ントローラであって、主メモリ31からのデータのブロ
ック転送を制御するもの、34はバッファであって、2
次元キャッシュメモリシステム32からの制御信号(S
W1)に応答して、主メモリ31に与えるアドレス(プ
ロセッサ30からのものと、2次元キャッシュメモリシ
ステム32からのものとがある)を切り換えるもの、3
5はバッファであって、2次元キャッシュメモリシステ
ム32からの制御信号(SW0)に応答して、プロセッ
サ30に与えるデータ(主メモリ31からのものと、2
次元キャッシュメモリシステム32からのものとがあ
る)を切り換えるものである。
リ、32は2次元キャッシュメモリシステムであって、
画像データから切り出される2次元の拡がりを有するデ
ータブロックをキャッシングするもの、33はメモリコ
ントローラであって、主メモリ31からのデータのブロ
ック転送を制御するもの、34はバッファであって、2
次元キャッシュメモリシステム32からの制御信号(S
W1)に応答して、主メモリ31に与えるアドレス(プ
ロセッサ30からのものと、2次元キャッシュメモリシ
ステム32からのものとがある)を切り換えるもの、3
5はバッファであって、2次元キャッシュメモリシステ
ム32からの制御信号(SW0)に応答して、プロセッ
サ30に与えるデータ(主メモリ31からのものと、2
次元キャッシュメモリシステム32からのものとがあ
る)を切り換えるものである。
【0012】図1に示される画像処理装置は、プロセッ
サ30と主メモリ31との間に、画像データから切り出
される2次元の拡がりを有するデータブロックをキャッ
シングする2次元キャッシュメモリシステム32を備え
ている。例えば、画像データが2048×1024画素
からなる場合、1データブロックを8×8画素で設定す
ると、図2に示すように、主メモリ31に格納される画
像データは、ブロックアドレス「(0,0)」から始ま
って「(255,127)」に終わる256×128個
のデータブロックに分けられることになる。主メモリ3
1は例えば図2に示されるようにXアドレスを下位アド
レス、Yアドレスを上位アドレスとしてアドレスされる
ので、各データブロック、例えばデータブロック(0,
0)は図2中にハッチングで示す位置に対応する。2次
元キャッシュメモリシステム32は、例えば、図3に示
すように、4つの記憶領域(#0〜#3)を備えて、こ
れらの各記憶領域(ライン)に、その内の1つのデータ
ブロックをキャッシングしていく構成を採る。
サ30と主メモリ31との間に、画像データから切り出
される2次元の拡がりを有するデータブロックをキャッ
シングする2次元キャッシュメモリシステム32を備え
ている。例えば、画像データが2048×1024画素
からなる場合、1データブロックを8×8画素で設定す
ると、図2に示すように、主メモリ31に格納される画
像データは、ブロックアドレス「(0,0)」から始ま
って「(255,127)」に終わる256×128個
のデータブロックに分けられることになる。主メモリ3
1は例えば図2に示されるようにXアドレスを下位アド
レス、Yアドレスを上位アドレスとしてアドレスされる
ので、各データブロック、例えばデータブロック(0,
0)は図2中にハッチングで示す位置に対応する。2次
元キャッシュメモリシステム32は、例えば、図3に示
すように、4つの記憶領域(#0〜#3)を備えて、こ
れらの各記憶領域(ライン)に、その内の1つのデータ
ブロックをキャッシングしていく構成を採る。
【0013】以下、説明の便宜上、画像データは、20
48×1024画素の大きさを持ち、1データブロック
は、8×8画素で構成されることを想定する。従って、
画像データのXアドレスは11ビット、Yアドレスは1
0ビットとなり、各データブロックは8ビットのX′及
び7ビットのY′の組み合わせからなるブロックアドレ
ス(X′,Y′)により識別される。
48×1024画素の大きさを持ち、1データブロック
は、8×8画素で構成されることを想定する。従って、
画像データのXアドレスは11ビット、Yアドレスは1
0ビットとなり、各データブロックは8ビットのX′及
び7ビットのY′の組み合わせからなるブロックアドレ
ス(X′,Y′)により識別される。
【0014】図4に、2次元キャッシュメモリシステム
32の詳細構成を図示する。図中、40はキャッシュメ
モリであって、例えば4つの記憶領域(ライン)を備え
て画像データブロックのコピーを一時的に格納するも
の、41はX・Yアドレスレジスタであって、プロセッ
サ30の発行する画像データのX・Yアドレスをラッチ
するもの、42はキャッシュコンパレータであって、プ
ロセッサ30の要求する画像データの属するデータブロ
ックのコピーがキャッシュメモリ40に有効に登録され
ているか否かを検出するもの、43は制御ブロックであ
って、キャッシング制御処理を実行するものである。な
お、以下、X・Yアドレスレジスタ41を構成する11
ビット構成のXアドレスレジスタを符号41a,X・Y
アドレスレジスタ41を構成する10ビット構成のYア
ドレスレジスタを符号41bで表すことがある。
32の詳細構成を図示する。図中、40はキャッシュメ
モリであって、例えば4つの記憶領域(ライン)を備え
て画像データブロックのコピーを一時的に格納するも
の、41はX・Yアドレスレジスタであって、プロセッ
サ30の発行する画像データのX・Yアドレスをラッチ
するもの、42はキャッシュコンパレータであって、プ
ロセッサ30の要求する画像データの属するデータブロ
ックのコピーがキャッシュメモリ40に有効に登録され
ているか否かを検出するもの、43は制御ブロックであ
って、キャッシング制御処理を実行するものである。な
お、以下、X・Yアドレスレジスタ41を構成する11
ビット構成のXアドレスレジスタを符号41a,X・Y
アドレスレジスタ41を構成する10ビット構成のYア
ドレスレジスタを符号41bで表すことがある。
【0015】図5に、この制御ブロック43の詳細構
成、図6に、このキャッシュコンパレータ42の詳細構
成を図示する。この図5に示すように、制御ブロック4
3は、キャッシュメモリ40の持つ4つの記憶領域(ラ
イン)対応に備えられて、その記憶領域に格納されるデ
ータブロックに対してのアクセス発生の有無の履歴を管
理するリファレンスフラグ50と、キャッシュメモリ4
0の持つ4個の記憶領域対応に備えられて、その記憶領
域に格納されるデータブロックが、直前にアクセスされ
たデータブロックであるのか否かを管理するカレントア
クセスフラグ51と、キャッシュメモリ40の持つ4個
の記憶領域対応に備えられて、その記憶領域に格納され
るデータブロックのインデックスX′(後述するTAG
メモリ60をアドレスするためのタグアドレスとなる)
を管理するインデックスレジスタ52と、4ビット構成
のリフレッシュカウンタ53と、6ビット構成のスキャ
ンカウンタ54と、主メモリ31のアクセスのために用
いられるアドレスをラッチする21ビット構成の2Dプ
レーンアドレスレジスタ55と、全体の制御処理を司る
シーケンサ56とから構成される。
成、図6に、このキャッシュコンパレータ42の詳細構
成を図示する。この図5に示すように、制御ブロック4
3は、キャッシュメモリ40の持つ4つの記憶領域(ラ
イン)対応に備えられて、その記憶領域に格納されるデ
ータブロックに対してのアクセス発生の有無の履歴を管
理するリファレンスフラグ50と、キャッシュメモリ4
0の持つ4個の記憶領域対応に備えられて、その記憶領
域に格納されるデータブロックが、直前にアクセスされ
たデータブロックであるのか否かを管理するカレントア
クセスフラグ51と、キャッシュメモリ40の持つ4個
の記憶領域対応に備えられて、その記憶領域に格納され
るデータブロックのインデックスX′(後述するTAG
メモリ60をアドレスするためのタグアドレスとなる)
を管理するインデックスレジスタ52と、4ビット構成
のリフレッシュカウンタ53と、6ビット構成のスキャ
ンカウンタ54と、主メモリ31のアクセスのために用
いられるアドレスをラッチする21ビット構成の2Dプ
レーンアドレスレジスタ55と、全体の制御処理を司る
シーケンサ56とから構成される。
【0016】一方、図6に示すように、キャッシュコン
パレータ42は、Xアドレスレジスタ41aに格納され
るXアドレスの上位8ビットからなるタグアドレスX′
でアドレスされて、キャッシングされるデータブロック
のタグY′と、キャッシングされるデータブロックの有
効無効を表示するバリッドビットと、キャッシングされ
るデータブロックの格納先記憶領域のライン番号を記憶
するTAGメモリ60を有している。キャッシュコンパ
レータ42はさらにX′値でアドレスされることにより
TAGメモリ60から読み出されるタグY′と、Yアド
レスレジスタ41bに格納されるY′値とが一致するの
か否かを判断して、両者が一致し、かつ、そのときのバ
リット情報が有効を表示するときにヒット信号を出力す
るとともに、それ以外のときにミスヒット信号を出力す
る一致検出回路61と、TAGメモリ60から読み出さ
れる格納先の記憶領域のライン番号をラッチする(ライ
ン番号は他からセットされることもある)ライン番号レ
ジスタ62とを有している。
パレータ42は、Xアドレスレジスタ41aに格納され
るXアドレスの上位8ビットからなるタグアドレスX′
でアドレスされて、キャッシングされるデータブロック
のタグY′と、キャッシングされるデータブロックの有
効無効を表示するバリッドビットと、キャッシングされ
るデータブロックの格納先記憶領域のライン番号を記憶
するTAGメモリ60を有している。キャッシュコンパ
レータ42はさらにX′値でアドレスされることにより
TAGメモリ60から読み出されるタグY′と、Yアド
レスレジスタ41bに格納されるY′値とが一致するの
か否かを判断して、両者が一致し、かつ、そのときのバ
リット情報が有効を表示するときにヒット信号を出力す
るとともに、それ以外のときにミスヒット信号を出力す
る一致検出回路61と、TAGメモリ60から読み出さ
れる格納先の記憶領域のライン番号をラッチする(ライ
ン番号は他からセットされることもある)ライン番号レ
ジスタ62とを有している。
【0017】すなわち、具体例で説明するならば、キャ
ッシュメモリ40のライン番号「#3」の格納領域に、
(X′,Y′)=(102,38)というブロックアド
レスを持つ有効なデータブロックが格納されているとき
には、TAGメモリ60は、タグアドレス「X′=10
2」でアドレスされるTAGフィールドにタグ「Y′=
38」、バリットビットフィールドに「バリットビット
=0」という値、ライン番号フィールドに「ライン番号
=3」という値が格納される。なお、キャッシュメモリ
40に格納されるデータブロック内のアクセス位置は、
Xアドレスの下位3ビットと、Yアドレスの下位3ビッ
トの組み合わせからなるブロック内アドレスで指定され
ることになる。
ッシュメモリ40のライン番号「#3」の格納領域に、
(X′,Y′)=(102,38)というブロックアド
レスを持つ有効なデータブロックが格納されているとき
には、TAGメモリ60は、タグアドレス「X′=10
2」でアドレスされるTAGフィールドにタグ「Y′=
38」、バリットビットフィールドに「バリットビット
=0」という値、ライン番号フィールドに「ライン番号
=3」という値が格納される。なお、キャッシュメモリ
40に格納されるデータブロック内のアクセス位置は、
Xアドレスの下位3ビットと、Yアドレスの下位3ビッ
トの組み合わせからなるブロック内アドレスで指定され
ることになる。
【0018】この様に図示されたキャッシュシステムは
従来のコングルエント方式のものと類似した構成のタグ
メモリを有しているが、タグメモリはキャッシュメモリ
の各記憶領域を関接的に指定するためのライン番号フィ
ールドを有しているので、格納されるタグと記憶領域と
の関係が動的に決定される。ここで、画像データは2次
元データであるので、タグアドレスが同一で、タグY′
が異なるデータブロックが存在するのであるが、この例
では、そのようなデータブロックの同時キャッシングを
許していない。後述するように、汎用コンピュータで採
用されているセットアソシアティブ方式にならって複数
ウェイ構成を採用することで、このことは許されること
になる。
従来のコングルエント方式のものと類似した構成のタグ
メモリを有しているが、タグメモリはキャッシュメモリ
の各記憶領域を関接的に指定するためのライン番号フィ
ールドを有しているので、格納されるタグと記憶領域と
の関係が動的に決定される。ここで、画像データは2次
元データであるので、タグアドレスが同一で、タグY′
が異なるデータブロックが存在するのであるが、この例
では、そのようなデータブロックの同時キャッシングを
許していない。後述するように、汎用コンピュータで採
用されているセットアソシアティブ方式にならって複数
ウェイ構成を採用することで、このことは許されること
になる。
【0019】次に、図7ないし図16に示すフローチャ
ートに従って2次元キャッシュメモリシステム32が実
行する処理を説明する。なお、当業者であれば、これら
のフローチャートに従ってVerilog−HDLの様
なハードウェア記述言語(HDL)により動作をreg
ister transfer level(RTL)
で記述しRTLの記述を論理合成ツールへ入力すること
によって自動的にゲートレベル回路の設計データが得ら
れるので、フローチャートを参照した動作の記述をもっ
て詳細な回路構成の記述に代えることとする。
ートに従って2次元キャッシュメモリシステム32が実
行する処理を説明する。なお、当業者であれば、これら
のフローチャートに従ってVerilog−HDLの様
なハードウェア記述言語(HDL)により動作をreg
ister transfer level(RTL)
で記述しRTLの記述を論理合成ツールへ入力すること
によって自動的にゲートレベル回路の設計データが得ら
れるので、フローチャートを参照した動作の記述をもっ
て詳細な回路構成の記述に代えることとする。
【0020】2次元キャッシュメモリシステム32は、
プロセッサ30からアクセス要求があると、図7のメイ
ン処理フローのステップ1001に示すように、先ず最
初に、リファレンスビットリフレッシュ処理を実行す
る。このリファレンスビットリフレッシュ処理では、図
8の処理フローに詳細を示すように、先ず最初に、4ビ
ットで構成されるリフレッシュカウンタ53の計数値が
最大値に到達したのか否かを判断して(ステップ110
1)、到達していないことを判断するときには、リフレ
ッシュカウンタ53の計数値を1つインクリメントして
(ステップ1102)処理を終了し、一方、到達したこ
とを判断するときには、リフレッシュカウンタ53の計
数値をクリアするとともに(ステップ1103)、リフ
ァレンスフラグ50の全フラグ値をクリアして(ステッ
プ1104)処理を終了する。
プロセッサ30からアクセス要求があると、図7のメイ
ン処理フローのステップ1001に示すように、先ず最
初に、リファレンスビットリフレッシュ処理を実行す
る。このリファレンスビットリフレッシュ処理では、図
8の処理フローに詳細を示すように、先ず最初に、4ビ
ットで構成されるリフレッシュカウンタ53の計数値が
最大値に到達したのか否かを判断して(ステップ110
1)、到達していないことを判断するときには、リフレ
ッシュカウンタ53の計数値を1つインクリメントして
(ステップ1102)処理を終了し、一方、到達したこ
とを判断するときには、リフレッシュカウンタ53の計
数値をクリアするとともに(ステップ1103)、リフ
ァレンスフラグ50の全フラグ値をクリアして(ステッ
プ1104)処理を終了する。
【0021】すなわち、このリファレンスビットリフレ
ッシュ処理では、規定の回数分のアクセス要求が発行さ
れる度毎に、リファレンスフラグ50のフラグ値をリセ
ットしていくという処理を実行するのである。次に、図
7のメイン処理フローのステップ1002に示すよう
に、プロセッサ30の発行したアクセス要求のアクセス
モードを判断する。プロセッサ30の発行するアクセス
要求には、キャッシュメモリ40をバイパスして主メモ
リ31に直接アクセスしていくバイパスモードと、キャ
ッシュメモリ40にアクセスしてくるノーマルモードと
いう2種類のアクセスモードが存在するので、このステ
ップ1002では、プロセッサ30の発行するアクセス
要求がバイパスモードであるのか、ノーマルモードであ
るのかを判断する。
ッシュ処理では、規定の回数分のアクセス要求が発行さ
れる度毎に、リファレンスフラグ50のフラグ値をリセ
ットしていくという処理を実行するのである。次に、図
7のメイン処理フローのステップ1002に示すよう
に、プロセッサ30の発行したアクセス要求のアクセス
モードを判断する。プロセッサ30の発行するアクセス
要求には、キャッシュメモリ40をバイパスして主メモ
リ31に直接アクセスしていくバイパスモードと、キャ
ッシュメモリ40にアクセスしてくるノーマルモードと
いう2種類のアクセスモードが存在するので、このステ
ップ1002では、プロセッサ30の発行するアクセス
要求がバイパスモードであるのか、ノーマルモードであ
るのかを判断する。
【0022】この判断でバイパスモードであることを判
断するときは、続いて、図7のメイン処理フローのステ
ップ1003で示すように、プロセッサ30の発行した
アクセス要求がリード処理なのか、ライト処理なのかを
判断する。この判断でリード要求であることを判断する
ときは、バイパスモードに従って主メモリ31のデータ
がリードされても、主メモリとキャッシュメモリとのデ
ータの整合性が保たれるから、続いて、図7のメイン処
理フローのステップ1004で示すように、主メモリ3
1に対してメモリリード要求を発行して処理を終了す
る。
断するときは、続いて、図7のメイン処理フローのステ
ップ1003で示すように、プロセッサ30の発行した
アクセス要求がリード処理なのか、ライト処理なのかを
判断する。この判断でリード要求であることを判断する
ときは、バイパスモードに従って主メモリ31のデータ
がリードされても、主メモリとキャッシュメモリとのデ
ータの整合性が保たれるから、続いて、図7のメイン処
理フローのステップ1004で示すように、主メモリ3
1に対してメモリリード要求を発行して処理を終了す
る。
【0023】一方、この判断でライト要求であることを
判断するときには、バイパスモードに従って主メモリ3
1のデータがライトされることで、データの整合性が保
たれなくなるので、ライト要求データの属するデータブ
ロックのコピーがキャッシュメモリ40に格納されてい
るか否かを調べるべく、続いて、図7のメイン処理フロ
ーのステップ1005で示すように、キャッシュヒット
判定処理を実行する。
判断するときには、バイパスモードに従って主メモリ3
1のデータがライトされることで、データの整合性が保
たれなくなるので、ライト要求データの属するデータブ
ロックのコピーがキャッシュメモリ40に格納されてい
るか否かを調べるべく、続いて、図7のメイン処理フロ
ーのステップ1005で示すように、キャッシュヒット
判定処理を実行する。
【0024】このキャッシュヒット判定処理では、図9
の処理フローに詳細を示すように、キャッシュコンパレ
ータ42を起動することで実行するものであって、Xア
ドレスレジスタ41aに格納されるXアドレスの上位8
ビットX′でTAGメモリ60をアドレスすることで、
TAGメモリ60からYアドレス上位7ビット値Y′と
バリッドビットとを読み出して、この読み出したY′値
と、Yアドレスレジスタ41bに格納されるYアドレス
の上位7ビット値Y′とが一致し、かつ、バリッドビッ
トが有効を表示する“0”を示しているか否かを検出す
ることで実行され(ステップ1201)、この検出処理
に従って、キャッシュメモリ40にヒットすることを判
断するときには、図示するのを省略したヒットフラグに
“1”をセットして(ステップ1202)処理を終了
し、一方、ミスヒットすることを判断するときには、こ
のヒットフラグに“0”をセットして(ステップ120
3)処理を終了する。
の処理フローに詳細を示すように、キャッシュコンパレ
ータ42を起動することで実行するものであって、Xア
ドレスレジスタ41aに格納されるXアドレスの上位8
ビットX′でTAGメモリ60をアドレスすることで、
TAGメモリ60からYアドレス上位7ビット値Y′と
バリッドビットとを読み出して、この読み出したY′値
と、Yアドレスレジスタ41bに格納されるYアドレス
の上位7ビット値Y′とが一致し、かつ、バリッドビッ
トが有効を表示する“0”を示しているか否かを検出す
ることで実行され(ステップ1201)、この検出処理
に従って、キャッシュメモリ40にヒットすることを判
断するときには、図示するのを省略したヒットフラグに
“1”をセットして(ステップ1202)処理を終了
し、一方、ミスヒットすることを判断するときには、こ
のヒットフラグに“0”をセットして(ステップ120
3)処理を終了する。
【0025】すなわち、このキャッシュヒット判定処理
では、キャッシュコンパレータ42を起動することで、
プロセッサ30の発行したライト要求アドレスの指すデ
ータブロックのコピーが有効なものとしてキャッシュメ
モリ40に格納されているか否かをチェックして、有効
なものとして格納されているときにはヒットフラグに
“1”をセットし、そうでないときにはヒットフラグに
“0”をセットしていくという処理を実行する。
では、キャッシュコンパレータ42を起動することで、
プロセッサ30の発行したライト要求アドレスの指すデ
ータブロックのコピーが有効なものとしてキャッシュメ
モリ40に格納されているか否かをチェックして、有効
なものとして格納されているときにはヒットフラグに
“1”をセットし、そうでないときにはヒットフラグに
“0”をセットしていくという処理を実行する。
【0026】続いて、図7のメイン処理フローのステッ
プ1006に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“0”
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていないことから、バ
イパスモードに従って主メモリ31のデータがライトさ
れても影響を受けないので、図7のメイン処理フローの
ステップ1007で示すように、直ちに主メモリ31に
対してメモリライト要求を発行して処理を終了する。
プ1006に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“0”
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていないことから、バ
イパスモードに従って主メモリ31のデータがライトさ
れても影響を受けないので、図7のメイン処理フローの
ステップ1007で示すように、直ちに主メモリ31に
対してメモリライト要求を発行して処理を終了する。
【0027】一方、この判断でヒットフラグ値が“1”
であることを判断するときには、データの整合性を保つ
べく、図7のメイン処理フローのステップ8で示すよう
に、キャッシュ無効化処理を実行してから、主メモリ3
1に対してメモリライト要求を発行して処理を終了す
る。このキャッシュ無効化処理では、図10の処理フロ
ーに詳細を示すように、先ず最初に、Xアドレスレジス
タ41aに格納されるX′の指すTAGメモリ60のラ
イン番号フィールドにアクセスして、そのフィールドに
格納されるライン番号を読み出してライン番号レジスタ
62にセットする(ステップ1301)。次に、図15
(a)の処理フローに従い、ライン番号レジスタ62に
セットされるライン番号に対応するリファレンスフラグ
50のフラグヒットをアクセス発生無表示の“0”にセ
ットする(ステップ1302)。続いて、図16(a)
の処理フローに従い、ライン番号レジスタ62にセット
されるライン番号に対応するインデックスレジスタ52
のX′値が指すTAGメモリ60のエントリーのバリッ
トビットを無効表示の“1”にセットする(ステップ1
303)。続いて、図15(c)の処理フローに従い、
カレントアクセスフラグ51のフラグ値を一度全て
“0”にセットしてから、ライン番号レジスタ62にセ
ットされるライン番号に対応するカレントアクセスフラ
グ51のフラグ値を直前アクセス表示の“1”にセット
して処理を終了する(ステップ1304)。
であることを判断するときには、データの整合性を保つ
べく、図7のメイン処理フローのステップ8で示すよう
に、キャッシュ無効化処理を実行してから、主メモリ3
1に対してメモリライト要求を発行して処理を終了す
る。このキャッシュ無効化処理では、図10の処理フロ
ーに詳細を示すように、先ず最初に、Xアドレスレジス
タ41aに格納されるX′の指すTAGメモリ60のラ
イン番号フィールドにアクセスして、そのフィールドに
格納されるライン番号を読み出してライン番号レジスタ
62にセットする(ステップ1301)。次に、図15
(a)の処理フローに従い、ライン番号レジスタ62に
セットされるライン番号に対応するリファレンスフラグ
50のフラグヒットをアクセス発生無表示の“0”にセ
ットする(ステップ1302)。続いて、図16(a)
の処理フローに従い、ライン番号レジスタ62にセット
されるライン番号に対応するインデックスレジスタ52
のX′値が指すTAGメモリ60のエントリーのバリッ
トビットを無効表示の“1”にセットする(ステップ1
303)。続いて、図15(c)の処理フローに従い、
カレントアクセスフラグ51のフラグ値を一度全て
“0”にセットしてから、ライン番号レジスタ62にセ
ットされるライン番号に対応するカレントアクセスフラ
グ51のフラグ値を直前アクセス表示の“1”にセット
して処理を終了する(ステップ1304)。
【0028】すなわち、このキャッシュ無効化処理で
は、バイパスモードに従って主メモリ31にライトされ
るデータの属するデータブロックに関しての登録情報を
無効化していくとともに、カレントアクセスフラグ51
のフラグ値を更新していくという処理を実行する。一
方、図7のメイン処理フローのステップ1002で、プ
ロセッサ30の発行したアクセス要求がノーマルモード
であることを判断するときには、図7のメイン処理フロ
ーのステップ1009で示すように、プロセッサ30の
発行したアクセス要求がリード処理なのか、ライト処理
なのかを判断する。
は、バイパスモードに従って主メモリ31にライトされ
るデータの属するデータブロックに関しての登録情報を
無効化していくとともに、カレントアクセスフラグ51
のフラグ値を更新していくという処理を実行する。一
方、図7のメイン処理フローのステップ1002で、プ
ロセッサ30の発行したアクセス要求がノーマルモード
であることを判断するときには、図7のメイン処理フロ
ーのステップ1009で示すように、プロセッサ30の
発行したアクセス要求がリード処理なのか、ライト処理
なのかを判断する。
【0029】この判断でライト要求であることを判断す
るときは、続いて、図7のメイン処理フローのステップ
1010で示すように、ライト要求データの属するデー
タブロックのコピーがキャッシュメモリ40に格納され
ているか否かを調べるべく、キャッシュヒット判定処理
を実行する。このとき実行するキャッシュヒット判定処
理は、図7のメイン処理フローのステップ1005で実
行したものと同じ処理であって、キャッシュコンパレー
タ42を起動することで、プロセッサ30の発行したラ
イト要求アドレスの指すデータブロックのコピーが有効
なものとしてキャッシュメモリ40に格納されているか
否かをチェックして、有効なものとして格納されている
ときにはヒットフラグに“1”をセットし、そうでない
ときにはヒットフラグに“0”をセットする。
るときは、続いて、図7のメイン処理フローのステップ
1010で示すように、ライト要求データの属するデー
タブロックのコピーがキャッシュメモリ40に格納され
ているか否かを調べるべく、キャッシュヒット判定処理
を実行する。このとき実行するキャッシュヒット判定処
理は、図7のメイン処理フローのステップ1005で実
行したものと同じ処理であって、キャッシュコンパレー
タ42を起動することで、プロセッサ30の発行したラ
イト要求アドレスの指すデータブロックのコピーが有効
なものとしてキャッシュメモリ40に格納されているか
否かをチェックして、有効なものとして格納されている
ときにはヒットフラグに“1”をセットし、そうでない
ときにはヒットフラグに“0”をセットする。
【0030】続いて、図7のメイン処理フローのステッ
プ1011に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“0”
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていないことから、図
7のメイン処理フローのステップ1012で示すよう
に、直ちに主メモリ31に対してメモリライト要求を発
行して処理を終了する。
プ1011に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“0”
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていないことから、図
7のメイン処理フローのステップ1012で示すよう
に、直ちに主メモリ31に対してメモリライト要求を発
行して処理を終了する。
【0031】一方、この判断でヒットフラグ値が“1”
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていることから、図7
のメイン処理フローのステップ1013で示すように、
ライト処理のキャッシュアクセス処理を実行することで
キャッシュメモリ40に格納されるライト対象データを
書き換えて、その後でデータの整合性を保つべく、主メ
モリ31に対してメモリライト要求を発行して処理を終
了する。
であることを判断するときには、ライト対象のデータが
キャッシュメモリ40に格納されていることから、図7
のメイン処理フローのステップ1013で示すように、
ライト処理のキャッシュアクセス処理を実行することで
キャッシュメモリ40に格納されるライト対象データを
書き換えて、その後でデータの整合性を保つべく、主メ
モリ31に対してメモリライト要求を発行して処理を終
了する。
【0032】このライト処理のキャッシュアクセス処理
では、図11(b)の処理フローに詳細を示すように、
先ず最初に、Xアドレスレジスタ41aに格納される
X′の指すTAGメモリ60のライン番号フィールドに
アクセスして、そのフィールドに格納されるライン番号
を読み出してライン番号レジスタ62にセットする(ス
テップ1501)。次に、Xアドレスレジスタ41aに
格納されるXアドレスの下位3ビットと、Yアドレスレ
ジスタ41bに格納されるYアドレスの下位3ビットと
で指定されるデータブロック内アドレスを特定して、そ
のデータブロック内アドレスに従って、ライン番号レジ
スタ62の格納値の指すラインに格納されるデータブロ
ックの中にあるライト先位置を特定して、図示しない読
出レジスタ(Dレジスタ)に格納されるプロセッサ30
から転送されてきたライトデータをその格納先に格納す
る(ステップ1502)。続いて、図15(c)の処理
フローに従い、カレントアクセスフラグ51のフラグ値
を一度全て“0”にセットしてから、ライン番号レジス
タ62にセットされるライン番号に対応するカレントア
クセスフラグ51のフラグ値を直前アクスセ表示の
“1”にセットする(ステップ1503)。続いて、図
15(b)の処理フローに従い、ライン番号レジスタ6
2にセットされる記憶領域番号に対応するリファレンス
フラグ50のフラグ値を“1”にセット(セットしてあ
るときにはそのまま)して(ステップ1504)処理を
終了する。
では、図11(b)の処理フローに詳細を示すように、
先ず最初に、Xアドレスレジスタ41aに格納される
X′の指すTAGメモリ60のライン番号フィールドに
アクセスして、そのフィールドに格納されるライン番号
を読み出してライン番号レジスタ62にセットする(ス
テップ1501)。次に、Xアドレスレジスタ41aに
格納されるXアドレスの下位3ビットと、Yアドレスレ
ジスタ41bに格納されるYアドレスの下位3ビットと
で指定されるデータブロック内アドレスを特定して、そ
のデータブロック内アドレスに従って、ライン番号レジ
スタ62の格納値の指すラインに格納されるデータブロ
ックの中にあるライト先位置を特定して、図示しない読
出レジスタ(Dレジスタ)に格納されるプロセッサ30
から転送されてきたライトデータをその格納先に格納す
る(ステップ1502)。続いて、図15(c)の処理
フローに従い、カレントアクセスフラグ51のフラグ値
を一度全て“0”にセットしてから、ライン番号レジス
タ62にセットされるライン番号に対応するカレントア
クセスフラグ51のフラグ値を直前アクスセ表示の
“1”にセットする(ステップ1503)。続いて、図
15(b)の処理フローに従い、ライン番号レジスタ6
2にセットされる記憶領域番号に対応するリファレンス
フラグ50のフラグ値を“1”にセット(セットしてあ
るときにはそのまま)して(ステップ1504)処理を
終了する。
【0033】すなわち、このライト処理のキャッシュア
クセス処理では、キャッシュメモリ40に格納されるデ
ータをプロセッサ30の要求するものに書き換えるとと
もに、カレントアクセスフラグ51及びリファレンスフ
ラグ50のフラグ値を更新する。一方、図7のメイン処
理フローのステップ1009で、プロセッサ30の発行
したアクセス要求がリード要求であることを判断すると
きは、続いて、図7のメイン処理フローのステップ10
14で示すように、リード要求データの属するデータブ
ロックのコピーがキャッシュメモリ40に格納されてい
るか否かを調べるべく、キャッシュヒット判定処理を実
行する。
クセス処理では、キャッシュメモリ40に格納されるデ
ータをプロセッサ30の要求するものに書き換えるとと
もに、カレントアクセスフラグ51及びリファレンスフ
ラグ50のフラグ値を更新する。一方、図7のメイン処
理フローのステップ1009で、プロセッサ30の発行
したアクセス要求がリード要求であることを判断すると
きは、続いて、図7のメイン処理フローのステップ10
14で示すように、リード要求データの属するデータブ
ロックのコピーがキャッシュメモリ40に格納されてい
るか否かを調べるべく、キャッシュヒット判定処理を実
行する。
【0034】このとき実行するキャッシュヒット判定処
理は、図7のメイン処理フローのステップ1005で実
行したものと同じ処理であって、キャッシュコンパレー
タ42を起動することで、プロセッサ30の発行したリ
ード要求アドレスの指すデータブロックのコピーが有効
なものとしてキャッシュメモリ40に格納されているか
否かをチェックして、有効なものとして格納されている
ときにはヒットフラグに“1”をセットし、そうでない
ときにはヒットフラグに“0”をセットする。
理は、図7のメイン処理フローのステップ1005で実
行したものと同じ処理であって、キャッシュコンパレー
タ42を起動することで、プロセッサ30の発行したリ
ード要求アドレスの指すデータブロックのコピーが有効
なものとしてキャッシュメモリ40に格納されているか
否かをチェックして、有効なものとして格納されている
ときにはヒットフラグに“1”をセットし、そうでない
ときにはヒットフラグに“0”をセットする。
【0035】続いて、図7のメイン処理フローのステッ
プ1015に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“1”
であることを判断するときには、リード対象のデータが
キャッシュメモリ40に格納されていることから、図7
のメモリ処理フローのステップ1016で示すように、
リード処理のキャッシュアクセス処理を実行することで
キャッシュメモリ40に格納されるリード対象データを
読み取って、プロセッサ30に転送して処理を終了す
る。
プ1015に示すように、ヒットフラグのフラグ値を参
照して、そのフラグ値が“1”であるのか、“0”であ
るのかを判断する。この判断でヒットフラグ値が“1”
であることを判断するときには、リード対象のデータが
キャッシュメモリ40に格納されていることから、図7
のメモリ処理フローのステップ1016で示すように、
リード処理のキャッシュアクセス処理を実行することで
キャッシュメモリ40に格納されるリード対象データを
読み取って、プロセッサ30に転送して処理を終了す
る。
【0036】このリード処理のキャッシュアクセス処理
では、図11(a)の処理フローに詳細を示すように、
先ず最初に、Xアドレスレジスタ41aに格納される
X′の指すTAGメモリ60のライン番号フィールドに
格納されるライン番号を読み出してライン番号レジスタ
62にセットする(ステップ1401)。次に、Xアド
レスレジスタ41aに格納されるXアドレスの下位3ビ
ットと、Yアドレスレジスタ41bに格納されるYアド
レスの下位3ビットとで指定されるデータブロック内ア
ドレスを特定して、そのデータブロック内アドレスに従
って、ライン番号レジスタ62の格納値の指すラインに
格納されるデータブロックの中からリード対象データを
読み出して、図示しない読出レジスタ(Dレジスタ)に
セットする(ステップ1402)。続いて、図15
(c)の処理フローに従い、カレントアクセスフラグ5
1のフラグ値を一度全て“0”にセットしてから、ライ
ン番号レジスタ62にセットされるライン番号に対応す
るカレントアクセスフラグ51のフラグ値を直前アクセ
ス表示の“1”にセットする(ステップ1403)。続
いて、図15(b)の処理フローに従い、ライン番号レ
ジスタ62にセットされるライン番号に対応するリファ
レンスフラグ50のフラグ値を“1”にセット(セット
してあるときにはそのまま)して処理を終了する(ステ
ップ1404)。
では、図11(a)の処理フローに詳細を示すように、
先ず最初に、Xアドレスレジスタ41aに格納される
X′の指すTAGメモリ60のライン番号フィールドに
格納されるライン番号を読み出してライン番号レジスタ
62にセットする(ステップ1401)。次に、Xアド
レスレジスタ41aに格納されるXアドレスの下位3ビ
ットと、Yアドレスレジスタ41bに格納されるYアド
レスの下位3ビットとで指定されるデータブロック内ア
ドレスを特定して、そのデータブロック内アドレスに従
って、ライン番号レジスタ62の格納値の指すラインに
格納されるデータブロックの中からリード対象データを
読み出して、図示しない読出レジスタ(Dレジスタ)に
セットする(ステップ1402)。続いて、図15
(c)の処理フローに従い、カレントアクセスフラグ5
1のフラグ値を一度全て“0”にセットしてから、ライ
ン番号レジスタ62にセットされるライン番号に対応す
るカレントアクセスフラグ51のフラグ値を直前アクセ
ス表示の“1”にセットする(ステップ1403)。続
いて、図15(b)の処理フローに従い、ライン番号レ
ジスタ62にセットされるライン番号に対応するリファ
レンスフラグ50のフラグ値を“1”にセット(セット
してあるときにはそのまま)して処理を終了する(ステ
ップ1404)。
【0037】すなわち、このリード処理のキャッシュア
クセス処理では、キャッシュメモリ40に格納されるリ
ード対象データを読み出してプロセッサ30に転送する
とともに、カレントアクセスフラグ51及びリファレン
スフラグ50のフラグ値を更新する。一方、図7のメイ
ン処理フローのステップ1015で、ヒットフラグ値が
“0”であることを判断するときには、リード対象デー
タがキャッシュメモリ40に格納されていないことか
ら、リード対象データの属するデータブロックをキャッ
シュメモリ40に格納すべく、図7のメイン処理フロー
のステップ1017で示すように、ブロックリード処理
を実行した後、ステップ1016のキャッシュアクセス
処理を実行する。
クセス処理では、キャッシュメモリ40に格納されるリ
ード対象データを読み出してプロセッサ30に転送する
とともに、カレントアクセスフラグ51及びリファレン
スフラグ50のフラグ値を更新する。一方、図7のメイ
ン処理フローのステップ1015で、ヒットフラグ値が
“0”であることを判断するときには、リード対象デー
タがキャッシュメモリ40に格納されていないことか
ら、リード対象データの属するデータブロックをキャッ
シュメモリ40に格納すべく、図7のメイン処理フロー
のステップ1017で示すように、ブロックリード処理
を実行した後、ステップ1016のキャッシュアクセス
処理を実行する。
【0038】次に、図12ないし図14に従って、この
ブロックリード処理の詳細について説明する。ここで、
図12に示す処理フローの左側部分と右側部分は、並列
的に実行される。ブロックリード処理では、図12の処
理フローに示すように、先ず最初に、ステップ1601
で、スワップアウトするデータブロックを決定する。こ
の決定処理では、図13の処理フローに従い、先ず最初
に、フラグ値が“0”を示すリファレンスフラグ50が
あるか否かを判断して(ステップ1701)、有ること
を判断するときには、そのリファレンスフラグ50に対
応するキャッシュメモリ40のライン番号をライン番号
レジスタ62にセットし(ステップ1702)、無いこ
とを判断するときには、フラグ値が“1”を示すカレン
トアクセスフラグ51に対応するキャッシュメモリ40
のライン番号をライン番号レジスタ62にセットする
(ステップ1703)。
ブロックリード処理の詳細について説明する。ここで、
図12に示す処理フローの左側部分と右側部分は、並列
的に実行される。ブロックリード処理では、図12の処
理フローに示すように、先ず最初に、ステップ1601
で、スワップアウトするデータブロックを決定する。こ
の決定処理では、図13の処理フローに従い、先ず最初
に、フラグ値が“0”を示すリファレンスフラグ50が
あるか否かを判断して(ステップ1701)、有ること
を判断するときには、そのリファレンスフラグ50に対
応するキャッシュメモリ40のライン番号をライン番号
レジスタ62にセットし(ステップ1702)、無いこ
とを判断するときには、フラグ値が“1”を示すカレン
トアクセスフラグ51に対応するキャッシュメモリ40
のライン番号をライン番号レジスタ62にセットする
(ステップ1703)。
【0039】後述するように、このライン番号レジスタ
62の格納値の指す記憶領域に格納されるデータブロッ
クがスワップアウトの対象となるので、この決定処理で
は、前回実行されたリファレンスフラグ50のクリア処
理から今回のアクセスまでの間に、アクセスされたこと
のない記憶領域が存在する場合には、その記憶領域に格
納されるデータブロックをスワップアウト対象として決
定する。存在しない場合には、直前にアクセスされたデ
ータブロックをスワップアウト対象として決定する。
62の格納値の指す記憶領域に格納されるデータブロッ
クがスワップアウトの対象となるので、この決定処理で
は、前回実行されたリファレンスフラグ50のクリア処
理から今回のアクセスまでの間に、アクセスされたこと
のない記憶領域が存在する場合には、その記憶領域に格
納されるデータブロックをスワップアウト対象として決
定する。存在しない場合には、直前にアクセスされたデ
ータブロックをスワップアウト対象として決定する。
【0040】次に、ステップ1602で、スワップアウ
ト対象として決定したデータブロックに関してのTAG
メモリ60の登録データを無効化する。この無効化処理
は、図16(a)の処理フローに従い、ライン番号レジ
スタ62にセットされるライン番号に対応するインデッ
クスレジスタ52のX′値が指すTAGメモリ60のエ
ントリーのバリットビットを無効表示の“1”にセット
することで実行する。すなわち、スワップアウト対象と
して決定したデータブロックについてのTAGメモリ6
0のバリットビットを無効化する。
ト対象として決定したデータブロックに関してのTAG
メモリ60の登録データを無効化する。この無効化処理
は、図16(a)の処理フローに従い、ライン番号レジ
スタ62にセットされるライン番号に対応するインデッ
クスレジスタ52のX′値が指すTAGメモリ60のエ
ントリーのバリットビットを無効表示の“1”にセット
することで実行する。すなわち、スワップアウト対象と
して決定したデータブロックについてのTAGメモリ6
0のバリットビットを無効化する。
【0041】続いて、ステップ1603で、リード対象
データの属するデータブロックの格納先となるライン番
号をTAGメモリ60に登録する。この登録処理では、
図16(c)の処理フローに従い、Xアドレスレジスタ
41aに格納されるX′の指すTAGメモリ60のライ
ン番号フィールドに、ライン番号レジスタ62の持つラ
イン番号をセットする。すなわち、新たに格納されるデ
ータブロックについてのTAGメモリ60のライン番号
フィールドに、格納先のライン番号を登録する。
データの属するデータブロックの格納先となるライン番
号をTAGメモリ60に登録する。この登録処理では、
図16(c)の処理フローに従い、Xアドレスレジスタ
41aに格納されるX′の指すTAGメモリ60のライ
ン番号フィールドに、ライン番号レジスタ62の持つラ
イン番号をセットする。すなわち、新たに格納されるデ
ータブロックについてのTAGメモリ60のライン番号
フィールドに、格納先のライン番号を登録する。
【0042】続いて、ステップ1604で、リード対象
データの属するデータブロックのタグY′値をTAGメ
モリ60に登録する。この登録処理では、図16(d)
の処理フローに従い、Xアドレスレジスタ41aに格納
されるタグアドレスX′の指すTAGメモリ60のTA
Gフィールドに、Yアドレスレジスタ41bに格納され
るタグY′をセットする。すなわち、新たに格納される
データブロックについてのTAGメモリ60のTAGフ
ィールドに、そのデータブロックY′値を登録する。
データの属するデータブロックのタグY′値をTAGメ
モリ60に登録する。この登録処理では、図16(d)
の処理フローに従い、Xアドレスレジスタ41aに格納
されるタグアドレスX′の指すTAGメモリ60のTA
Gフィールドに、Yアドレスレジスタ41bに格納され
るタグY′をセットする。すなわち、新たに格納される
データブロックについてのTAGメモリ60のTAGフ
ィールドに、そのデータブロックY′値を登録する。
【0043】続いて、ステップ1605で、インデック
スレジスタ52のレジスタ値を更新する。この更新処理
では、図15(d)の処理フローに従い、ライン番号レ
ジスタ62にセットされるライン番号に対応するインデ
ックスレジスタ52に、Xアドレスレジスタ41aに格
納されるX′値をセットする。すなわち、新たに有効と
なるTAGメモリ60のエントリーを指すように更新す
る。
スレジスタ52のレジスタ値を更新する。この更新処理
では、図15(d)の処理フローに従い、ライン番号レ
ジスタ62にセットされるライン番号に対応するインデ
ックスレジスタ52に、Xアドレスレジスタ41aに格
納されるX′値をセットする。すなわち、新たに有効と
なるTAGメモリ60のエントリーを指すように更新す
る。
【0044】続いて、ステップ1606で、カレントア
クセスフラグ51のフラグ値を更新する。この更新処理
では、図15(c)の処理フローに従い、カレントアク
セスフラグ51のフラグ値を一度全て“0”にセットし
てから、ライン番号レジスタ62にセットされるライン
番号に対応付けられるカレントアクセスフラグ51を特
定して、そのフラグ値を直前アクセス表示の“1”にセ
ットする。
クセスフラグ51のフラグ値を更新する。この更新処理
では、図15(c)の処理フローに従い、カレントアク
セスフラグ51のフラグ値を一度全て“0”にセットし
てから、ライン番号レジスタ62にセットされるライン
番号に対応付けられるカレントアクセスフラグ51を特
定して、そのフラグ値を直前アクセス表示の“1”にセ
ットする。
【0045】一方、このステップ1601ないしステッ
プ1606の処理と平行して、ステップ1607で、リ
ード対象データの属するデータブロックのコピーをキャ
ッシュメモリ40に格納すべく、バーストリード処理を
実行する。このバーストリード処理では、図14の処理
フローに詳細を示すように、先ず最初に、6ビット構成
のスキャンカウンタ54の計数値をクリアする(ステッ
プ1801)。次に、スキャンカウンタ54の計数値
と、Xアドレスレジスタ41aに格納されるX′値と、
Yアドレスレジスタ41bに格納されるY′値とを、図
17に示す形態に従って2Dプレーンアドレスレジスタ
55にセットする(ステップ1802)。続いて、2D
プレーンアドレスレジスタ55の格納するアドレスを指
定して、メモリコントローラ33に対して8ワードのバ
ーストリード要求を発行する(ステップ1803)。こ
のバーストリード要求に応答して転送されてくる8ワー
ドのデータを受け取って(ステップ1805)、ライン
番号レジスタ62の格納値の指すキャッシュメモリ60
上の記憶領域に書き込む(ステップ1806)。続い
て、スキャンカウンタ54の計数値を8個インクリメン
トすることで2Dプレーンアドレスレジスタ55の格納
値を更新して(ステップ1807)、スキャンカウンタ
54がキャリーオーバするときには処理を終了し、キャ
リーオーバしないときには、再び、2Dプレーンアドレ
スレジスタ55の格納するアドレスを指定して、メモリ
コントローラ33に対して8ワードのバーストリード要
求を発行していくことを繰り返す。
プ1606の処理と平行して、ステップ1607で、リ
ード対象データの属するデータブロックのコピーをキャ
ッシュメモリ40に格納すべく、バーストリード処理を
実行する。このバーストリード処理では、図14の処理
フローに詳細を示すように、先ず最初に、6ビット構成
のスキャンカウンタ54の計数値をクリアする(ステッ
プ1801)。次に、スキャンカウンタ54の計数値
と、Xアドレスレジスタ41aに格納されるX′値と、
Yアドレスレジスタ41bに格納されるY′値とを、図
17に示す形態に従って2Dプレーンアドレスレジスタ
55にセットする(ステップ1802)。続いて、2D
プレーンアドレスレジスタ55の格納するアドレスを指
定して、メモリコントローラ33に対して8ワードのバ
ーストリード要求を発行する(ステップ1803)。こ
のバーストリード要求に応答して転送されてくる8ワー
ドのデータを受け取って(ステップ1805)、ライン
番号レジスタ62の格納値の指すキャッシュメモリ60
上の記憶領域に書き込む(ステップ1806)。続い
て、スキャンカウンタ54の計数値を8個インクリメン
トすることで2Dプレーンアドレスレジスタ55の格納
値を更新して(ステップ1807)、スキャンカウンタ
54がキャリーオーバするときには処理を終了し、キャ
リーオーバしないときには、再び、2Dプレーンアドレ
スレジスタ55の格納するアドレスを指定して、メモリ
コントローラ33に対して8ワードのバーストリード要
求を発行していくことを繰り返す。
【0046】すなわち、このバーストリード処理では、
プロセッサ30の要求データの属するデータブロックの
示すブロックアドレス(X′,Y′)を起点にして、そ
のデータブロック内のデータを指すことになるX・Yア
ドレスを発行していくことで、そのデータブロックのコ
ピーをキャッシュメモリ40に格納していく。このよう
にして、図12の処理フローにあって、ステップ160
1ないしステップ1606の処理と、ステップ1607
のバーストリード処理とを終了すると、最後に、ステッ
プ1608で、新たに格納したデータブロックに関して
のTAGメモリ60の登録データを有効化する。
プロセッサ30の要求データの属するデータブロックの
示すブロックアドレス(X′,Y′)を起点にして、そ
のデータブロック内のデータを指すことになるX・Yア
ドレスを発行していくことで、そのデータブロックのコ
ピーをキャッシュメモリ40に格納していく。このよう
にして、図12の処理フローにあって、ステップ160
1ないしステップ1606の処理と、ステップ1607
のバーストリード処理とを終了すると、最後に、ステッ
プ1608で、新たに格納したデータブロックに関して
のTAGメモリ60の登録データを有効化する。
【0047】この有効化処理では、図16(b)の処理
フローに従い、ライン番号レジスタ62にセットされる
ライン番号に対応するインデックスレジスタ52のX′
値が指すTAGメモリ60のエントリーのバリットビッ
トを有効表示の“1”にセットする。以上説明したよう
に本願発明者によるキャッシュメモリシステムは、タグ
メモリの構成及びそれによるキャッシュヒット/ミスヒ
ットの判定処理については従来のコングルエント方式と
類似の方式が採用されている。しかし、格納されるタグ
とキャッシュ記憶領域との対応関係が固定的でなく動的
に決定されるので、タグの数とキャッシュ記憶領域のラ
イン数を互いに独立に設計することができ、かつ、動作
時に特定のデータブロックに処理が集中しても記憶領域
を有効に利用することができる。
フローに従い、ライン番号レジスタ62にセットされる
ライン番号に対応するインデックスレジスタ52のX′
値が指すTAGメモリ60のエントリーのバリットビッ
トを有効表示の“1”にセットする。以上説明したよう
に本願発明者によるキャッシュメモリシステムは、タグ
メモリの構成及びそれによるキャッシュヒット/ミスヒ
ットの判定処理については従来のコングルエント方式と
類似の方式が採用されている。しかし、格納されるタグ
とキャッシュ記憶領域との対応関係が固定的でなく動的
に決定されるので、タグの数とキャッシュ記憶領域のラ
イン数を互いに独立に設計することができ、かつ、動作
時に特定のデータブロックに処理が集中しても記憶領域
を有効に利用することができる。
【0048】上記に説明した例ではYアドレスの上位ビ
ットY′からなるタグをXアドレスの上位ビットX′で
アドレスされるタグメモリに格納する構成が採用されて
いるがその逆も可能であり、さらに、X′,Y′のビッ
トをタグのビットとタグアドレスのビットに任意に配分
することが可能である。また、上記には2次元アドレス
X,Yでアドレスされるデータの処理について説明した
が、3次元アドレスX,Y,Zでアドレスされるデータ
の処理については、それぞれの上位ビットX′,Y′,
Z′をタグのビットとタグアドレスのビットに適宜配分
すれば良く、同様にしてさらに高次元のアドレスを有す
るデータの処理についても容易に拡張することができ
る。
ットY′からなるタグをXアドレスの上位ビットX′で
アドレスされるタグメモリに格納する構成が採用されて
いるがその逆も可能であり、さらに、X′,Y′のビッ
トをタグのビットとタグアドレスのビットに任意に配分
することが可能である。また、上記には2次元アドレス
X,Yでアドレスされるデータの処理について説明した
が、3次元アドレスX,Y,Zでアドレスされるデータ
の処理については、それぞれの上位ビットX′,Y′,
Z′をタグのビットとタグアドレスのビットに適宜配分
すれば良く、同様にしてさらに高次元のアドレスを有す
るデータの処理についても容易に拡張することができ
る。
【0049】次に本願発明に係るキャッシュメモリシス
テムが採用された画像処理装置の具体例を説明する。本
願発明に係るキャッシュメモリシステムは、2つのキャ
ッシュメモリバンクを具備しており、一方は現在アクセ
スされているデータを含むデータブロックをキャッシン
グするための現バンク、他方は現在アクセスされている
データのアドレス(現データアドレス)に基づいて次に
キャッシングされることが予測されるデータブロックを
予めキャッシングしておくための予測バンクに割り当て
られる。そして、現データアドレスが現バンクにミスヒ
ットしたときでも予測バンクにヒットすれば現バンクと
予測バンクの割り当てを反転することにより、主記憶へ
のアクセスのために処理を中断することなく続行するこ
とができる。したがって、予測が的中している間は2つ
のキャッシュメモリバンクの割り当ては交互に入れ替わ
ることになる。この間に予測バンクにキャッシングされ
るべきデータブロックが予測バンクにキャッシングされ
ていないと判断されたら、現バンクへのアクセスに並行
して予測バンクへのブロックリード処理が行なわれる。
テムが採用された画像処理装置の具体例を説明する。本
願発明に係るキャッシュメモリシステムは、2つのキャ
ッシュメモリバンクを具備しており、一方は現在アクセ
スされているデータを含むデータブロックをキャッシン
グするための現バンク、他方は現在アクセスされている
データのアドレス(現データアドレス)に基づいて次に
キャッシングされることが予測されるデータブロックを
予めキャッシングしておくための予測バンクに割り当て
られる。そして、現データアドレスが現バンクにミスヒ
ットしたときでも予測バンクにヒットすれば現バンクと
予測バンクの割り当てを反転することにより、主記憶へ
のアクセスのために処理を中断することなく続行するこ
とができる。したがって、予測が的中している間は2つ
のキャッシュメモリバンクの割り当ては交互に入れ替わ
ることになる。この間に予測バンクにキャッシングされ
るべきデータブロックが予測バンクにキャッシングされ
ていないと判断されたら、現バンクへのアクセスに並行
して予測バンクへのブロックリード処理が行なわれる。
【0050】現データアドレスに基づく予測のモードは
複数通り予め用意しておき、プロセッサ30からの指示
に従って切り換え可能であることが好ましい。また、プ
ロセッサ30からの指示に従って2つのキャッシュメモ
リバンクを2ウェイセットアソミアティブ方式による制
御に切り換え可能であることがさらに好ましい。図18
は予測モードの4つの例を示す。図18中、ハッチング
されている領域は現データアドレスで特定されるデータ
を表わし、2重ハッチングされている領域は該データを
含むデータブロックの起点(原点)を表わす。図18に
示されるように、モード0においては、現在要求されて
いるデータを含むデータブロックの右隣りのデータブロ
ックが予測バンクに予めキャッシングされる。モード1
においては、現在要求されているデータブロックの左隣
りのデータブロックが予測バンクに予めキャッシングさ
れる。モード2では、上に隣接するデータブロックが予
めキャッシングされ、モード3では下に隣接するデータ
ブロックが予めキャッシングされる。
複数通り予め用意しておき、プロセッサ30からの指示
に従って切り換え可能であることが好ましい。また、プ
ロセッサ30からの指示に従って2つのキャッシュメモ
リバンクを2ウェイセットアソミアティブ方式による制
御に切り換え可能であることがさらに好ましい。図18
は予測モードの4つの例を示す。図18中、ハッチング
されている領域は現データアドレスで特定されるデータ
を表わし、2重ハッチングされている領域は該データを
含むデータブロックの起点(原点)を表わす。図18に
示されるように、モード0においては、現在要求されて
いるデータを含むデータブロックの右隣りのデータブロ
ックが予測バンクに予めキャッシングされる。モード1
においては、現在要求されているデータブロックの左隣
りのデータブロックが予測バンクに予めキャッシングさ
れる。モード2では、上に隣接するデータブロックが予
めキャッシングされ、モード3では下に隣接するデータ
ブロックが予めキャッシングされる。
【0051】図19は図1の2次元キャッシュメモリシ
ステム32を改良した本発明の予測型2次元キャッシュ
メモリシステム70の構成の概略を示すブロック図であ
る。図19において、本発明の予測型2次元キャッシュ
メモリシステムは、Aバンク72及びBバンク74の2
つのバンクを有するキャッシュメモリ75と、プロセッ
サ30から出力される2次元アドレス(例えばX−アド
レス11ビット、Y−アドレス10ビットの合計21ビ
ット)から予測モードに応じて予測ブロックアドレスを
生成する予測アドレス生成回路76と、キャッシュメモ
リ75のAバンク72に現ブロックアドレス及び予測ブ
ロックアドレスがヒットしたかミスヒットしたかを判定
するAバンク用キャッシュコンパレータ78と、キャッ
シュメモリ75のBバンク74に現ブロックアドレス及
び予測ブロックアドレスがヒットしたかミスヒットした
かを判定するBバンク用キャッシュコンパレータ80
と、キャッシュコンパレータ78,80の判定結果に応
じてキャッシュメモリ72,74を制御し、メモリコン
トローラ33を介して主メモリ31を制御する制御ブロ
ック82を含んでいる。
ステム32を改良した本発明の予測型2次元キャッシュ
メモリシステム70の構成の概略を示すブロック図であ
る。図19において、本発明の予測型2次元キャッシュ
メモリシステムは、Aバンク72及びBバンク74の2
つのバンクを有するキャッシュメモリ75と、プロセッ
サ30から出力される2次元アドレス(例えばX−アド
レス11ビット、Y−アドレス10ビットの合計21ビ
ット)から予測モードに応じて予測ブロックアドレスを
生成する予測アドレス生成回路76と、キャッシュメモ
リ75のAバンク72に現ブロックアドレス及び予測ブ
ロックアドレスがヒットしたかミスヒットしたかを判定
するAバンク用キャッシュコンパレータ78と、キャッ
シュメモリ75のBバンク74に現ブロックアドレス及
び予測ブロックアドレスがヒットしたかミスヒットした
かを判定するBバンク用キャッシュコンパレータ80
と、キャッシュコンパレータ78,80の判定結果に応
じてキャッシュメモリ72,74を制御し、メモリコン
トローラ33を介して主メモリ31を制御する制御ブロ
ック82を含んでいる。
【0052】図20はプロセッサ30が出力するX−ア
ドレス及びY−アドレスから各種のアドレスを生成する
方法の一例を示す。X−アドレスの上位側8ビットとY
−アドレスの上位側7ビットからキャッシングの単位で
あるデータブロックを特定するためのブロックアドレス
が生成され、残りの6ビットでブロック内の各データを
特定するためのブロック内アドレス(ローカルアドレ
ス)が生成される点は図1〜図17を参照して説明した
システムと同様である。しかしながらブロックアドレス
の一部であるタグはXアドレスの上位4ビット及びY−
アドレスの上位3ビットから生成され、タグアドレスは
残りの各4ビットから生成される。こうすることによ
り、キャッシュコンパレータ内のタグメモリにおいて同
一のタグアドレスに登録されるべきブロックの配置を分
散させることができる。
ドレス及びY−アドレスから各種のアドレスを生成する
方法の一例を示す。X−アドレスの上位側8ビットとY
−アドレスの上位側7ビットからキャッシングの単位で
あるデータブロックを特定するためのブロックアドレス
が生成され、残りの6ビットでブロック内の各データを
特定するためのブロック内アドレス(ローカルアドレ
ス)が生成される点は図1〜図17を参照して説明した
システムと同様である。しかしながらブロックアドレス
の一部であるタグはXアドレスの上位4ビット及びY−
アドレスの上位3ビットから生成され、タグアドレスは
残りの各4ビットから生成される。こうすることによ
り、キャッシュコンパレータ内のタグメモリにおいて同
一のタグアドレスに登録されるべきブロックの配置を分
散させることができる。
【0053】図21は予測アドレス生成回路76の詳細
な構成を示す回路図である。図21において、予測アド
レス生成回路76は、加算器84とセレクタ86から構
成される。加算器84の入力の一方にはプロセッサ30
が出力する現アドレスから生成された現ブロックアドレ
スが供給され、他方にはセレクタ86の出力が接続され
る。セレクタ86は予測モードがモード0のとき値“+
1”を選択し、モード1のときは値“−1”を選択し、
モード2のとき値“+16”を選択し、モード3のとき
は値“−16”を選択する。セレクタ86において選択
された値を加算器84において現ブロックアドレスへ加
算することにより、予測ブロックアドレスが生成され
る。
な構成を示す回路図である。図21において、予測アド
レス生成回路76は、加算器84とセレクタ86から構
成される。加算器84の入力の一方にはプロセッサ30
が出力する現アドレスから生成された現ブロックアドレ
スが供給され、他方にはセレクタ86の出力が接続され
る。セレクタ86は予測モードがモード0のとき値“+
1”を選択し、モード1のときは値“−1”を選択し、
モード2のとき値“+16”を選択し、モード3のとき
は値“−16”を選択する。セレクタ86において選択
された値を加算器84において現ブロックアドレスへ加
算することにより、予測ブロックアドレスが生成され
る。
【0054】図22はAバンク用キャッシュコンパレー
タ78の詳細な構成を示す。Aバンク用キャッシュコン
パレータ78はAバンク用タグメモリ88と2つの一致
検出回路90,92を含んでいる。タグメモリ88に格
納される各レコードは、図6のタグメモリ60と同様
に、タグを格納するタグフィールド94、バリットビッ
トを格納するバリットビットフィールド96、ライン番
号を格納するライン番号フィールド98から構成され
る。しかしながら、本願発明のタグメモリ88は、現ブ
ロックアドレスから派生したタグアドレスと予測ブロッ
クアドレスから派生したタグアドレスの2つのアドレス
で同時にアドレス指定されて2つのレコードを同時に出
力する。一致検出回路90は、現ブロックアドレスから
派生したタグアドレスでアドレス指定されたレコードの
バリットビットが“0”(有効)であり、かつ、タグフ
ィールド内のタグが現ブロックアドレスから派生したタ
グと一致するとき、信号A Curr H/M(Aバン
クに現アドレスがヒットしたか否かを表わす信号)を
“ヒット”を表わすHレベルにする。一致検出回路92
は、予測ブロックアドレスから派生したタグアドレスで
アドレス指定されたレコードのバリットビットが“0”
(有効)であり、かつ、タグフィールド内のタグが予測
ブロックアドレスから派生したタグと一致するとき、信
号A Pred H/M(Aバンクに予測アドレスがヒ
ットしたか否かを表わす信号)を“ヒット”を表わすH
レベルにする。信号A Curr H/M及びA Pr
ed H/Mは、現ブロックアドレスで読み出されたレ
コード(タグデータ)のライン番号フィールドの値であ
る信号A Curr LNoとともに制御ブロック82
へ与えられる。また、タグメモリ88に格納される各タ
グデータは制御ブロック82からバンク選択信号を有効
にし、タグアドレスを与えることにより読み書きするこ
とができる。なお、図19において明らかなように、一
方のバンクを有効にすると他方のバンクは無効になる。
図には明示されていないがキャッシュコンパレータ7
8,80の選択と連動して、対応するキャッシュメモリ
バンク72,74が選択される。
タ78の詳細な構成を示す。Aバンク用キャッシュコン
パレータ78はAバンク用タグメモリ88と2つの一致
検出回路90,92を含んでいる。タグメモリ88に格
納される各レコードは、図6のタグメモリ60と同様
に、タグを格納するタグフィールド94、バリットビッ
トを格納するバリットビットフィールド96、ライン番
号を格納するライン番号フィールド98から構成され
る。しかしながら、本願発明のタグメモリ88は、現ブ
ロックアドレスから派生したタグアドレスと予測ブロッ
クアドレスから派生したタグアドレスの2つのアドレス
で同時にアドレス指定されて2つのレコードを同時に出
力する。一致検出回路90は、現ブロックアドレスから
派生したタグアドレスでアドレス指定されたレコードの
バリットビットが“0”(有効)であり、かつ、タグフ
ィールド内のタグが現ブロックアドレスから派生したタ
グと一致するとき、信号A Curr H/M(Aバン
クに現アドレスがヒットしたか否かを表わす信号)を
“ヒット”を表わすHレベルにする。一致検出回路92
は、予測ブロックアドレスから派生したタグアドレスで
アドレス指定されたレコードのバリットビットが“0”
(有効)であり、かつ、タグフィールド内のタグが予測
ブロックアドレスから派生したタグと一致するとき、信
号A Pred H/M(Aバンクに予測アドレスがヒ
ットしたか否かを表わす信号)を“ヒット”を表わすH
レベルにする。信号A Curr H/M及びA Pr
ed H/Mは、現ブロックアドレスで読み出されたレ
コード(タグデータ)のライン番号フィールドの値であ
る信号A Curr LNoとともに制御ブロック82
へ与えられる。また、タグメモリ88に格納される各タ
グデータは制御ブロック82からバンク選択信号を有効
にし、タグアドレスを与えることにより読み書きするこ
とができる。なお、図19において明らかなように、一
方のバンクを有効にすると他方のバンクは無効になる。
図には明示されていないがキャッシュコンパレータ7
8,80の選択と連動して、対応するキャッシュメモリ
バンク72,74が選択される。
【0055】図23はBバンク用キャッシュコンパレー
タ80の構成を示す。Bバンク用キャッシュコンパレー
タ80はAバンク用キャッシュコンパレータ78と同様
な構成を有しており、Bバンクに現ブロックアドレスが
ヒットしたか否かを表わすB Curr H/M、Bバン
クに予測ブロックアドレスがヒットしたか否かを表わす
B Pred H/M、及びBバンクに現ブロックアド
レスがヒットしたときに、ヒットした記憶領域のライン
番号を表わすB Curr LNoを制御ブロック82
へ出力する。また、Bバンクが選択されたとき、制御ブ
ロック82からタグアドレスを与えることにより、タグ
データの読み書きが可能である。
タ80の構成を示す。Bバンク用キャッシュコンパレー
タ80はAバンク用キャッシュコンパレータ78と同様
な構成を有しており、Bバンクに現ブロックアドレスが
ヒットしたか否かを表わすB Curr H/M、Bバン
クに予測ブロックアドレスがヒットしたか否かを表わす
B Pred H/M、及びBバンクに現ブロックアド
レスがヒットしたときに、ヒットした記憶領域のライン
番号を表わすB Curr LNoを制御ブロック82
へ出力する。また、Bバンクが選択されたとき、制御ブ
ロック82からタグアドレスを与えることにより、タグ
データの読み書きが可能である。
【0056】図24は制御ブロック82の概略構成を示
す。図24において、制御ブロック82は、Aバンク用
のレジスタとして、Aバンクの各記憶領域がアクセスさ
れる毎にインクリメントされることによってアクセスの
回数を表わすリファレンスカウンタ106と、現在アク
セス中の記憶領域を示すカレントアクセスフラグ108
と、各記憶領域に格納されているデータブロックに対応
するタグアドレスを格納するインデクスレジスタ110
を有している。図示した例では、キャッシュメモリは1
6ラインの記憶領域を有しているので、各レジスタはそ
れぞれ16個ずつ備えられる。また、Bバンク用として
も同数のレジスタが備えられる。スタートアドレスレジ
スタ112はキャッシュメモリと主メモリの間でブロッ
ク転送を行なう際に主メモリの先頭アドレスを一時的に
格納するために用いられる。ライン番号レジスタ114
はキャッシュの各記憶領域を特定するライン番号を一時
的に格納するために用いられる。リフレッシュカウンタ
114はリファレンスカウンタのオーバーフローを防ぐ
ために周期的に行なわれるリフレッシュ処理の周期を管
理するために用いられる。カレントバンクレジスタ11
6は、その値が“0”であるとき現バンクがAバンクで
予測バンクがBバンクであることを示し、“1”である
とき現バンクがBバンクで予測バンクがAバンクである
ことを示す。シーケンサ118は制御ブロック82の全
体の制御を司どる。
す。図24において、制御ブロック82は、Aバンク用
のレジスタとして、Aバンクの各記憶領域がアクセスさ
れる毎にインクリメントされることによってアクセスの
回数を表わすリファレンスカウンタ106と、現在アク
セス中の記憶領域を示すカレントアクセスフラグ108
と、各記憶領域に格納されているデータブロックに対応
するタグアドレスを格納するインデクスレジスタ110
を有している。図示した例では、キャッシュメモリは1
6ラインの記憶領域を有しているので、各レジスタはそ
れぞれ16個ずつ備えられる。また、Bバンク用として
も同数のレジスタが備えられる。スタートアドレスレジ
スタ112はキャッシュメモリと主メモリの間でブロッ
ク転送を行なう際に主メモリの先頭アドレスを一時的に
格納するために用いられる。ライン番号レジスタ114
はキャッシュの各記憶領域を特定するライン番号を一時
的に格納するために用いられる。リフレッシュカウンタ
114はリファレンスカウンタのオーバーフローを防ぐ
ために周期的に行なわれるリフレッシュ処理の周期を管
理するために用いられる。カレントバンクレジスタ11
6は、その値が“0”であるとき現バンクがAバンクで
予測バンクがBバンクであることを示し、“1”である
とき現バンクがBバンクで予測バンクがAバンクである
ことを示す。シーケンサ118は制御ブロック82の全
体の制御を司どる。
【0057】図1〜図17を参照して説明したシステム
と同様に、制御ブロック82、特にシーケンサ116の
詳細な回路構成の説明に代えて、図25〜図46のフロ
ーチャートを使って動作を説明する。図25はメインフ
ローチャートである。図25において、最初にステップ
1900においてカレントバンクレジスタに初期値とし
て“0”がセットされる。これによってAバンクは現バ
ンクに、Bバンクは予測バンクに割り当てられる。次
に、ステップ1902においてリファレンスカウンタリ
フレッシュ処理を実行し、ステップ1904においてア
クセスモードがいずれに設定されているかを判断し、設
定されているアクセスモードに応じて、ステップ190
6のバイパスモード処理、ステップ1908の予測キャ
ッシュモード処理、又はステップ1910の2ウェイキ
ャッシュモード処理を実行した後、ステップ1902へ
戻る。
と同様に、制御ブロック82、特にシーケンサ116の
詳細な回路構成の説明に代えて、図25〜図46のフロ
ーチャートを使って動作を説明する。図25はメインフ
ローチャートである。図25において、最初にステップ
1900においてカレントバンクレジスタに初期値とし
て“0”がセットされる。これによってAバンクは現バ
ンクに、Bバンクは予測バンクに割り当てられる。次
に、ステップ1902においてリファレンスカウンタリ
フレッシュ処理を実行し、ステップ1904においてア
クセスモードがいずれに設定されているかを判断し、設
定されているアクセスモードに応じて、ステップ190
6のバイパスモード処理、ステップ1908の予測キャ
ッシュモード処理、又はステップ1910の2ウェイキ
ャッシュモード処理を実行した後、ステップ1902へ
戻る。
【0058】図26は図25のステップ1902のリフ
ァレンスカウンタリフレッシュ処理の詳細を示す。ステ
ップ2000において、リフレッシュカウンタが所定の
リフレッシュカウントに達したか否かを判断し、リフレ
ッシュカウントに達していないときはステップ2002
においてリフレッシュカウンタをインクリメントして処
理を終了する。リフレッシュカウンタがリフレッシュカ
ウントに達したときは、ステップ2004においてリフ
レッシュカウンタをクリアし、ステップ2006におい
てすべてのリファレンスカウンタを右へ1ビット論理シ
フトする。これによってすべてのリファレンスカウンタ
のカウント値に1/2が乗じられる。
ァレンスカウンタリフレッシュ処理の詳細を示す。ステ
ップ2000において、リフレッシュカウンタが所定の
リフレッシュカウントに達したか否かを判断し、リフレ
ッシュカウントに達していないときはステップ2002
においてリフレッシュカウンタをインクリメントして処
理を終了する。リフレッシュカウンタがリフレッシュカ
ウントに達したときは、ステップ2004においてリフ
レッシュカウンタをクリアし、ステップ2006におい
てすべてのリファレンスカウンタを右へ1ビット論理シ
フトする。これによってすべてのリファレンスカウンタ
のカウント値に1/2が乗じられる。
【0059】図27は図25のステップ1906のバイ
パスモード処理の詳細を示す。バイバスモードにおいて
は、キャッシュメモリをバイパスしてメモリコントロー
ラ33を介して主メモリ31が直接アクセスされる。こ
の場合にキャッシュメモリにキャッシングがされている
メモリ領域に書き込みが行なわれると、主メモリとキャ
ッシュメモリの内容の不一致が生じるので、キャッシュ
メモリの対応領域を無効化する必要がある。すなわち、
ステップ2100において、メモリの書き込み動作であ
るか読み出し動作であるかを判断し、読み出し動作であ
るときはステップ2102においてメモリコントローラ
33を介して主メモリ31から1ワードのデータを読み
出して処理を終了する。書き込み動作であるときは、ス
テップ2104においてキャッシュヒット判定処理を実
行する。このキャッシュヒット判定処理においては、後
に詳述するように、カレントアドレスがいずれかのキャ
ッシュメモリバンクにヒットすると判定されたらヒット
フラグを“1”にセットするとともに、ヒットしたバン
クが選択され、ヒットした記憶領域のライン番号がライ
ン番号レジスタにロードされる。次に、ステップ210
6においてヒットフラグの値が判断され、“0”である
ときはそれはミスヒットを示しているのでステップ21
08においてメモリコントローラ33を介して主メモリ
31へ1ワードのデータを書き込んで処理を終了する。
“1”であるときはそれはキャッシュがヒットしたこと
を示しており、キャッシュヒット判定処理においてヒッ
トしたバンクが既に選択されているので、ステップ21
10において、カレントアドレスのビットの一部をタグ
アドレスとして出力し、バリットビットフィールドが1
に設定されたタグデータを出力することによって、選択
されたバンクに登録されたタグが無効化される。次にス
テップ2112においてリファレンスカウントクリア処
理を実行して当該タグに対応するリファレンスカウント
をクリアし、ステップ2114においてカレントアクセ
スフラグ更新処理を実行してカレントアクセスフラグを
更新し、ステップ2108へ進む。
パスモード処理の詳細を示す。バイバスモードにおいて
は、キャッシュメモリをバイパスしてメモリコントロー
ラ33を介して主メモリ31が直接アクセスされる。こ
の場合にキャッシュメモリにキャッシングがされている
メモリ領域に書き込みが行なわれると、主メモリとキャ
ッシュメモリの内容の不一致が生じるので、キャッシュ
メモリの対応領域を無効化する必要がある。すなわち、
ステップ2100において、メモリの書き込み動作であ
るか読み出し動作であるかを判断し、読み出し動作であ
るときはステップ2102においてメモリコントローラ
33を介して主メモリ31から1ワードのデータを読み
出して処理を終了する。書き込み動作であるときは、ス
テップ2104においてキャッシュヒット判定処理を実
行する。このキャッシュヒット判定処理においては、後
に詳述するように、カレントアドレスがいずれかのキャ
ッシュメモリバンクにヒットすると判定されたらヒット
フラグを“1”にセットするとともに、ヒットしたバン
クが選択され、ヒットした記憶領域のライン番号がライ
ン番号レジスタにロードされる。次に、ステップ210
6においてヒットフラグの値が判断され、“0”である
ときはそれはミスヒットを示しているのでステップ21
08においてメモリコントローラ33を介して主メモリ
31へ1ワードのデータを書き込んで処理を終了する。
“1”であるときはそれはキャッシュがヒットしたこと
を示しており、キャッシュヒット判定処理においてヒッ
トしたバンクが既に選択されているので、ステップ21
10において、カレントアドレスのビットの一部をタグ
アドレスとして出力し、バリットビットフィールドが1
に設定されたタグデータを出力することによって、選択
されたバンクに登録されたタグが無効化される。次にス
テップ2112においてリファレンスカウントクリア処
理を実行して当該タグに対応するリファレンスカウント
をクリアし、ステップ2114においてカレントアクセ
スフラグ更新処理を実行してカレントアクセスフラグを
更新し、ステップ2108へ進む。
【0060】図28は図25のステップ1910の2ウ
ェイキャッシュモード処理の詳細を示す。ステップ22
00において、キャッシュヒット判定処理を実行し、ス
テップ2202においてキャッシュヒットと判定された
ら、キャッシュリード処理又はキャッシュライト処理
(詳細は後述する)を実行してキャッシュメモリからの
読み出し又はキャッシュメモリへの書き込みを行なう
(ステップ2204,2206,2208)。キャッシ
ュミスヒットと判定されたら、ステップ2210におい
てスワップアウトブロック決定処理を実行してスワップ
アウトすべきデータブロックが格納されているバンクと
ライン番号を改定し、ステップ2212においてキャッ
シュライトバック処理を実行してそのデータブロックを
主メモリへライトバックする指令をメモリコントローラ
33へ発行する。ステップ2214においてカレントア
ドレスをスタートアドレスレジスタにセットし、ステッ
プ2216においてバーストリード処理を実行すること
によって、アクセスすべきデータを含むデータブロック
をバーストリードする指令をメモリコントローラ33へ
発行し、その後ステップ2204へ合流する。
ェイキャッシュモード処理の詳細を示す。ステップ22
00において、キャッシュヒット判定処理を実行し、ス
テップ2202においてキャッシュヒットと判定された
ら、キャッシュリード処理又はキャッシュライト処理
(詳細は後述する)を実行してキャッシュメモリからの
読み出し又はキャッシュメモリへの書き込みを行なう
(ステップ2204,2206,2208)。キャッシ
ュミスヒットと判定されたら、ステップ2210におい
てスワップアウトブロック決定処理を実行してスワップ
アウトすべきデータブロックが格納されているバンクと
ライン番号を改定し、ステップ2212においてキャッ
シュライトバック処理を実行してそのデータブロックを
主メモリへライトバックする指令をメモリコントローラ
33へ発行する。ステップ2214においてカレントア
ドレスをスタートアドレスレジスタにセットし、ステッ
プ2216においてバーストリード処理を実行すること
によって、アクセスすべきデータを含むデータブロック
をバーストリードする指令をメモリコントローラ33へ
発行し、その後ステップ2204へ合流する。
【0061】図29は図25のステップ1908の予測
キャッシュモード処理の詳細を示す。ステップ2300
において、現アドレスヒット判定処理を実行して、現ブ
ロックアドレスが現バンク又は予測バンクのいずれかに
ヒットするか否かを判定する。後述するように、現アド
レスヒット判定処理では、現ブロックアドレスが現バン
クにヒットしたときはヒットフラグが1にセットされ、
予測バンクにヒットしたときはヒットフラグが2にセッ
トされる。いずれのバンクにもヒットしないときはヒッ
トフラグが0にセットされる。ステップ2302におい
て、ヒットフラグの値が判定され、0であるときはステ
ップ2304において現バンクブロックリード処理を実
行してアクセスすべきデータを含むデータブロックを現
バンクのキャッシュメモリにロードする。ヒットフラグ
が2であるときは、ステップ2306においてカレント
バンクレジスタの内容を反転する。これらの処理によっ
て、いずれの場合にもアクセスすべきデータを含むデー
タブロックが現バンクのキャッシュメモリに格納された
状態になる。そこでキャッシュリード処理又はキャッシ
ュライト処理を実行してキャッシュメモリからの読み出
し又はキャッシュメモリへの書き込みを行なう(ステッ
プ2308,2310,2312)。次に、ステップ2
314において予測アドレスヒット判定処理を実行して
予測ブロックアドレスが現バンク及び予測バンクのいず
れかにヒットするか否かを判定する。いずれにもヒット
しないときはヒットフラグが0に設定されるので、ステ
ップ2318において、予測バンクブロックリード処理
を実行して予測ブロックアドレスで指定されるデータブ
ロックを予測バンクのキャッシュメモリにロードする。
なお、この予測バンクブロックリード処理は、図に示さ
れるように、他の処理と並行して実行される。
キャッシュモード処理の詳細を示す。ステップ2300
において、現アドレスヒット判定処理を実行して、現ブ
ロックアドレスが現バンク又は予測バンクのいずれかに
ヒットするか否かを判定する。後述するように、現アド
レスヒット判定処理では、現ブロックアドレスが現バン
クにヒットしたときはヒットフラグが1にセットされ、
予測バンクにヒットしたときはヒットフラグが2にセッ
トされる。いずれのバンクにもヒットしないときはヒッ
トフラグが0にセットされる。ステップ2302におい
て、ヒットフラグの値が判定され、0であるときはステ
ップ2304において現バンクブロックリード処理を実
行してアクセスすべきデータを含むデータブロックを現
バンクのキャッシュメモリにロードする。ヒットフラグ
が2であるときは、ステップ2306においてカレント
バンクレジスタの内容を反転する。これらの処理によっ
て、いずれの場合にもアクセスすべきデータを含むデー
タブロックが現バンクのキャッシュメモリに格納された
状態になる。そこでキャッシュリード処理又はキャッシ
ュライト処理を実行してキャッシュメモリからの読み出
し又はキャッシュメモリへの書き込みを行なう(ステッ
プ2308,2310,2312)。次に、ステップ2
314において予測アドレスヒット判定処理を実行して
予測ブロックアドレスが現バンク及び予測バンクのいず
れかにヒットするか否かを判定する。いずれにもヒット
しないときはヒットフラグが0に設定されるので、ステ
ップ2318において、予測バンクブロックリード処理
を実行して予測ブロックアドレスで指定されるデータブ
ロックを予測バンクのキャッシュメモリにロードする。
なお、この予測バンクブロックリード処理は、図に示さ
れるように、他の処理と並行して実行される。
【0062】上記の処理において、現バンクブロックリ
ード処理が行なわれるのは現ブロックアドレスが現バン
ク及び予測バンクのいずれにもヒットしないときのみで
あり、予測バンクブロックリード処理が実行されるのは
予測ブロックアドレスが現バンク及び予測バンクのいず
れにもヒットしないときのみであるので、同一のデータ
ブロックが双方のバンクに同時にロードされる状態が生
じる可能性はない。したがって、同一のデータブロック
が複数のキャッシュメモリバンクに同時にロードされる
ことによりキャッシュメモリと主メモリの内容の不一致
が生じるという恐れはない。
ード処理が行なわれるのは現ブロックアドレスが現バン
ク及び予測バンクのいずれにもヒットしないときのみで
あり、予測バンクブロックリード処理が実行されるのは
予測ブロックアドレスが現バンク及び予測バンクのいず
れにもヒットしないときのみであるので、同一のデータ
ブロックが双方のバンクに同時にロードされる状態が生
じる可能性はない。したがって、同一のデータブロック
が複数のキャッシュメモリバンクに同時にロードされる
ことによりキャッシュメモリと主メモリの内容の不一致
が生じるという恐れはない。
【0063】図30は図27のステップ2104及び図
28のステップ2200において実行されるキャッシュ
ヒット判定処理の詳細を示す。ステップ2402におい
て、信号A Curr H/MがHレベルであるか否
か、すなわち、現ブロックアドレスがAバンクにヒット
するか否かが判定される。A Curr H/MがHレ
ベルであるときはステップ2402においてライン番号
レジスタに信号A Curr LNoの値をロードし、
ステップ2404においてAバンクを選択する選択信号
を出力する。A Curr H/MがLレベルであると
きは、さらに、ステップ2406において、信号B C
urr H/MがHレベルであるか否か、すなわち、現
ブロックアドレスがBバンクにヒットするか否かが判定
される。B Curr H/MがHレベルであるときは、
ステップ2408において、ライン番号レジスタに信号
B Curr LNoの値をロードし、ステップ241
0においてBバンクを選択する選択信号を出力する。い
ずれの場合にもステップ2412においてヒットフラグ
を“1”にセットして処理を終了する。ステップ240
6においてB Curr H/MもLレベルであるとき
はステップ2414においてヒットフラグを“0”にセ
ットして処理を終了する。
28のステップ2200において実行されるキャッシュ
ヒット判定処理の詳細を示す。ステップ2402におい
て、信号A Curr H/MがHレベルであるか否
か、すなわち、現ブロックアドレスがAバンクにヒット
するか否かが判定される。A Curr H/MがHレ
ベルであるときはステップ2402においてライン番号
レジスタに信号A Curr LNoの値をロードし、
ステップ2404においてAバンクを選択する選択信号
を出力する。A Curr H/MがLレベルであると
きは、さらに、ステップ2406において、信号B C
urr H/MがHレベルであるか否か、すなわち、現
ブロックアドレスがBバンクにヒットするか否かが判定
される。B Curr H/MがHレベルであるときは、
ステップ2408において、ライン番号レジスタに信号
B Curr LNoの値をロードし、ステップ241
0においてBバンクを選択する選択信号を出力する。い
ずれの場合にもステップ2412においてヒットフラグ
を“1”にセットして処理を終了する。ステップ240
6においてB Curr H/MもLレベルであるとき
はステップ2414においてヒットフラグを“0”にセ
ットして処理を終了する。
【0064】図31は、図28のステップ2210にお
いて実行されるスワップアウトブロック決定処理の詳細
を示すフローチャートである。現ブロックアドレスがA
バンクにもBバンクにもヒットしないとき、信号A C
urr LNo及び信号B Curr LNoはタグアド
レスが同一であるデータブロックすなわちスワップアウ
トすべきデータブロックの候補が格納されている格納領
域のライン番号を示している。そこで、それらが示すリ
ファレンスカウンタの値を比較し、Aバンク側がリファ
レンスカウンタの値が小さいときは、Aバンク側のデー
タブロックをスワップアウトすべく、ステップ2502
において、A Curr LNoの値をライン番号レジ
スタにセットし、ステップ2504においてAバンクを
選択する選択信号を出力する。Bバンク側のリファレン
スカウンタの値が小さいときは、Bバンク側のデータブ
ロックをスワップアウトすべく、ステップ2506にお
いて、B Curr LNoの値をライン番号レジスタ
にセットし、ステップ2508において、Bバンクを選
択する選択信号を出力する。両者が等しいときは、ステ
ップ2510において、A Curr LNoが示すカ
レントアクセスフラグがHレベルであるか否か、すなわ
ち、スワップアウト候補のデータブロックが直前にアク
セスされたデータブロックあるか否かを判断する。Hレ
ベルであるときは、Bバンク側のデータブロックをスワ
ップアウトすべく、ステップ2512において、B C
urr LNoの値をライン番号レジスタにセットし、
ステップ2514において、Bバンクを選択する選択信
号を出力する。Lレベルであるときは、Aバンク側のデ
ータブロックをスワップアウトすべく、ステップ251
6においてA Curr LNoの値をライン番号レジ
スタにセットし、ステップ2518においてAバンクを
選択する選択信号を出力する。
いて実行されるスワップアウトブロック決定処理の詳細
を示すフローチャートである。現ブロックアドレスがA
バンクにもBバンクにもヒットしないとき、信号A C
urr LNo及び信号B Curr LNoはタグアド
レスが同一であるデータブロックすなわちスワップアウ
トすべきデータブロックの候補が格納されている格納領
域のライン番号を示している。そこで、それらが示すリ
ファレンスカウンタの値を比較し、Aバンク側がリファ
レンスカウンタの値が小さいときは、Aバンク側のデー
タブロックをスワップアウトすべく、ステップ2502
において、A Curr LNoの値をライン番号レジ
スタにセットし、ステップ2504においてAバンクを
選択する選択信号を出力する。Bバンク側のリファレン
スカウンタの値が小さいときは、Bバンク側のデータブ
ロックをスワップアウトすべく、ステップ2506にお
いて、B Curr LNoの値をライン番号レジスタ
にセットし、ステップ2508において、Bバンクを選
択する選択信号を出力する。両者が等しいときは、ステ
ップ2510において、A Curr LNoが示すカ
レントアクセスフラグがHレベルであるか否か、すなわ
ち、スワップアウト候補のデータブロックが直前にアク
セスされたデータブロックあるか否かを判断する。Hレ
ベルであるときは、Bバンク側のデータブロックをスワ
ップアウトすべく、ステップ2512において、B C
urr LNoの値をライン番号レジスタにセットし、
ステップ2514において、Bバンクを選択する選択信
号を出力する。Lレベルであるときは、Aバンク側のデ
ータブロックをスワップアウトすべく、ステップ251
6においてA Curr LNoの値をライン番号レジ
スタにセットし、ステップ2518においてAバンクを
選択する選択信号を出力する。
【0065】図32は図29のステップ2300におい
て実行される現アドレスヒット判定処理の詳細を示す。
最初にステップ2600において、カレントバンクレジ
スタの値が0か1か、すなわち、現バンクがAバンクで
あるかBバンクであるかが判定される。現バンクがAバ
ンクであるときは、ステップ2602において、信号A
Curr H/MがHレベルであるか否かが判定され
る。Hレベルであるときは、現ブロックアドレスが現バ
ンクにヒットしたとしてステップ2606においてヒッ
トフラグを“1”にセットする。A Curr H/M
がLレベルであるときは、ステップ2604において、
B Curr H/MがHレベルであるか否かを判定す
る。Hレベルであるときは、現ブロックアドレスが予測
バンクにヒットしたとして、ステップ2608におい
て、ヒットフラグを“2”にセットする。A Curr
H/M及びB Curr H/MのいずれもがLレベ
ルであるときは、ステップ2610においてヒットフラ
グを“0”にセットする。ステップ2600においてカ
レントバンクレジスタの値が1であるときは、ステップ
2612において、B Curr H/MがHレベルで
あるか否かが判定される。Hレベルであるときは、現ブ
ロックアドレスが現バンクにヒットしたとして、ステッ
プ2614において、ヒットフラグを“1”にセットす
る。Lレベルであるときはさらに、ステップ2616に
おいて、A Curr H/MがHレベルであるかが判
定される。Hレベルであるときは、現ブロックアドレス
が予測バンクにヒットしたとして、ステップ2618に
おいて、ヒットフラグを“2”にセットする。Lレベル
であるときは、ステップ2620においてヒットフラグ
を“0”にセットする。
て実行される現アドレスヒット判定処理の詳細を示す。
最初にステップ2600において、カレントバンクレジ
スタの値が0か1か、すなわち、現バンクがAバンクで
あるかBバンクであるかが判定される。現バンクがAバ
ンクであるときは、ステップ2602において、信号A
Curr H/MがHレベルであるか否かが判定され
る。Hレベルであるときは、現ブロックアドレスが現バ
ンクにヒットしたとしてステップ2606においてヒッ
トフラグを“1”にセットする。A Curr H/M
がLレベルであるときは、ステップ2604において、
B Curr H/MがHレベルであるか否かを判定す
る。Hレベルであるときは、現ブロックアドレスが予測
バンクにヒットしたとして、ステップ2608におい
て、ヒットフラグを“2”にセットする。A Curr
H/M及びB Curr H/MのいずれもがLレベ
ルであるときは、ステップ2610においてヒットフラ
グを“0”にセットする。ステップ2600においてカ
レントバンクレジスタの値が1であるときは、ステップ
2612において、B Curr H/MがHレベルで
あるか否かが判定される。Hレベルであるときは、現ブ
ロックアドレスが現バンクにヒットしたとして、ステッ
プ2614において、ヒットフラグを“1”にセットす
る。Lレベルであるときはさらに、ステップ2616に
おいて、A Curr H/MがHレベルであるかが判
定される。Hレベルであるときは、現ブロックアドレス
が予測バンクにヒットしたとして、ステップ2618に
おいて、ヒットフラグを“2”にセットする。Lレベル
であるときは、ステップ2620においてヒットフラグ
を“0”にセットする。
【0066】図33は、図29のステップ2314にお
いて実行される予測アドレスヒット判定処理の詳細を示
す。図33において、A Pred H/M(ステップ
2702)又はB Pred H/M(ステップ270
4)のいずれかがHであるときはヒットフラグが“1”
に設定され(ステップ2706)、いずれもLであると
きは、ヒットフラグが“0”に設定される(ステップ2
708)。
いて実行される予測アドレスヒット判定処理の詳細を示
す。図33において、A Pred H/M(ステップ
2702)又はB Pred H/M(ステップ270
4)のいずれかがHであるときはヒットフラグが“1”
に設定され(ステップ2706)、いずれもLであると
きは、ヒットフラグが“0”に設定される(ステップ2
708)。
【0067】図34は図29のステップ2304におい
て実行される現バンクブロックリード処理の詳細を示
す。ステップ2800において、カレントバンクレジス
タの値が0(Aバンク)であるか1(Bバンク)である
かが判定される。現バンクに割り当てられているのがA
バンクであるときは、ステップ2802においてAバン
クブロックリード処理(1)を実行して現ブロックアド
レスで指定されるデータブロックをAバンクへロードす
る。Bバンクであるときは、ステップ2804におい
て、Bバンクブロックリード処理を実行して、現ブロッ
クアドレスで指定されるデータブロックをBバンクへロ
ードする。
て実行される現バンクブロックリード処理の詳細を示
す。ステップ2800において、カレントバンクレジス
タの値が0(Aバンク)であるか1(Bバンク)である
かが判定される。現バンクに割り当てられているのがA
バンクであるときは、ステップ2802においてAバン
クブロックリード処理(1)を実行して現ブロックアド
レスで指定されるデータブロックをAバンクへロードす
る。Bバンクであるときは、ステップ2804におい
て、Bバンクブロックリード処理を実行して、現ブロッ
クアドレスで指定されるデータブロックをBバンクへロ
ードする。
【0068】図35は図29のステップ2318で実行
される予測バンクブロックリード処理の詳細を示す。ス
テップ2900において、カレントバンクレジスタの値
を判定することにより、現バンクに割り当てられている
のがAバンクであるかBバンクであるかを判定する。A
バンクであるときは、ステップ2902において、Bバ
ンクブロックリード処理(2)を実行して、Bバンク、
すなわち予測バンクへ予測ブロックアドレスで指定され
るデータブロックをロードする。Bバンクであるとき
は、ステップ2904において、Aバンクブロックリー
ド処理(2)を実行して、Aバンク、すなわち、予測バ
ンクへ予測ブロックアドレスで指定されるデータブロッ
クをロードする。
される予測バンクブロックリード処理の詳細を示す。ス
テップ2900において、カレントバンクレジスタの値
を判定することにより、現バンクに割り当てられている
のがAバンクであるかBバンクであるかを判定する。A
バンクであるときは、ステップ2902において、Bバ
ンクブロックリード処理(2)を実行して、Bバンク、
すなわち予測バンクへ予測ブロックアドレスで指定され
るデータブロックをロードする。Bバンクであるとき
は、ステップ2904において、Aバンクブロックリー
ド処理(2)を実行して、Aバンク、すなわち、予測バ
ンクへ予測ブロックアドレスで指定されるデータブロッ
クをロードする。
【0069】図36は図34のステップ2802におい
て実行されるAバンクブロックリード処理(1)の詳細
を示す。ステップ3000において、Aバンクリファレ
ンスカウンタの中で最も小さく、かつ、カレントアクセ
スフラグがLであるライン番号をライン番号レジスタに
セットする。すなわち、Aバンクにロードされているデ
ータブロックの中で、アクセスの回数が少なく、かつ、
直前にアクセスされたデータブロックでないものをスワ
ップアウト対象のデータブロックに決定する。ステップ
3002においてAバンクを選択するための選択信号を
出力し、ステップ3004においてキャッシュライトバ
ック処理を実行することにより、スワップアウトすべき
データブロックを主メモリへ戻す。次に、ステップ30
06において、カレントアドレスの一部をTAGアドレ
スに出力し、ライン番号フィールドにライン番号レジス
タの値をセットしたTAGデータを出力することによっ
て、カレントアドレスに対応するTAGメモリをこれか
らロードされるデータブロックをロードすべき格納領域
に対応付ける。次に、ステップ3008において、カレ
ントアドレスをスタートアドレスレジスタにセットし
て、ステップ3010においてバーストリード処理を実
行することによって、カレントアドレスが指定するデー
タブロックを当該記憶領域にロードする。
て実行されるAバンクブロックリード処理(1)の詳細
を示す。ステップ3000において、Aバンクリファレ
ンスカウンタの中で最も小さく、かつ、カレントアクセ
スフラグがLであるライン番号をライン番号レジスタに
セットする。すなわち、Aバンクにロードされているデ
ータブロックの中で、アクセスの回数が少なく、かつ、
直前にアクセスされたデータブロックでないものをスワ
ップアウト対象のデータブロックに決定する。ステップ
3002においてAバンクを選択するための選択信号を
出力し、ステップ3004においてキャッシュライトバ
ック処理を実行することにより、スワップアウトすべき
データブロックを主メモリへ戻す。次に、ステップ30
06において、カレントアドレスの一部をTAGアドレ
スに出力し、ライン番号フィールドにライン番号レジス
タの値をセットしたTAGデータを出力することによっ
て、カレントアドレスに対応するTAGメモリをこれか
らロードされるデータブロックをロードすべき格納領域
に対応付ける。次に、ステップ3008において、カレ
ントアドレスをスタートアドレスレジスタにセットし
て、ステップ3010においてバーストリード処理を実
行することによって、カレントアドレスが指定するデー
タブロックを当該記憶領域にロードする。
【0070】図37は図35のステップ2904におい
て実行されるAバンクブロックリード処理(2)の詳細
を示す。図36のAバンクブロックリード処理(1)と
異なる点は、ステップ3106及び3108においてカ
レントアドレスに代えて予測アドレス生成回路が出力す
る予測アドレスが使用される点のみである。図38は図
34のステップ2804において実行されるBバンクブ
ロックリード処理(1)の詳細を示す。図36のAバン
クブロックリード処理(1)と異なる点は、ステップ3
200においてAバンクのリファレンスカウンタ及びカ
レントアクセスフラグに代えて、Bバンクのリファレン
スカウンタ及びカレントアクセスフラグが使用される点
と、ステップ3202においてBバンクが選択される点
のみである。
て実行されるAバンクブロックリード処理(2)の詳細
を示す。図36のAバンクブロックリード処理(1)と
異なる点は、ステップ3106及び3108においてカ
レントアドレスに代えて予測アドレス生成回路が出力す
る予測アドレスが使用される点のみである。図38は図
34のステップ2804において実行されるBバンクブ
ロックリード処理(1)の詳細を示す。図36のAバン
クブロックリード処理(1)と異なる点は、ステップ3
200においてAバンクのリファレンスカウンタ及びカ
レントアクセスフラグに代えて、Bバンクのリファレン
スカウンタ及びカレントアクセスフラグが使用される点
と、ステップ3202においてBバンクが選択される点
のみである。
【0071】図39は図35のステップ2902におい
て実行されるBバンクブロックリード処理(2)の詳細
を示す。図38のBバンクブロックリード処理(1)と
異なる点は、ステップ3306及びステップ3308に
おいて、カレントアドレスに代えて予測アドレスが使用
される点のみである。図40は、図28のステップ22
12、図36のステップ3004、図37のステップ3
104、図38のステップ3204、及び図39のステ
ップ3304において実行されるキャッシュライトバッ
ク処理の詳細を示す。ステップ3400においてライン
番号レジスタが示すインデックスレジスタの内容をTA
Gアドレスに出力することによりライトバックすべきデ
ータブロックに対応するTAGデータをアドレス指定
し、ステップ3402においてTAGデータを読み込
み、ステップ3404においてTAGデータのTAGフ
ィールドの値とTAGアドレスとからライトバックすべ
きデータブロックのブロックアドレスを組み立ててスタ
ートアドレスレジスタにセットする。ステップ3406
においてバリットビットフィールドを“1”に設定した
TAGデータを出力することによってTAGを無効化す
る。ステップ3408においてスタートアドレスレジス
タの内容をメモリコントローラ33へ出力しステップ3
410においてライン番号レジスタが示す記憶領域のデ
ータをキャッシュメモリからメモリコントローラ33へ
転送し、ステップ3412においてメモリコントローラ
33へバーストライト要求を発行することによって、ラ
イトバックすべきデータを主メモリへブロック転送す
る。
て実行されるBバンクブロックリード処理(2)の詳細
を示す。図38のBバンクブロックリード処理(1)と
異なる点は、ステップ3306及びステップ3308に
おいて、カレントアドレスに代えて予測アドレスが使用
される点のみである。図40は、図28のステップ22
12、図36のステップ3004、図37のステップ3
104、図38のステップ3204、及び図39のステ
ップ3304において実行されるキャッシュライトバッ
ク処理の詳細を示す。ステップ3400においてライン
番号レジスタが示すインデックスレジスタの内容をTA
Gアドレスに出力することによりライトバックすべきデ
ータブロックに対応するTAGデータをアドレス指定
し、ステップ3402においてTAGデータを読み込
み、ステップ3404においてTAGデータのTAGフ
ィールドの値とTAGアドレスとからライトバックすべ
きデータブロックのブロックアドレスを組み立ててスタ
ートアドレスレジスタにセットする。ステップ3406
においてバリットビットフィールドを“1”に設定した
TAGデータを出力することによってTAGを無効化す
る。ステップ3408においてスタートアドレスレジス
タの内容をメモリコントローラ33へ出力しステップ3
410においてライン番号レジスタが示す記憶領域のデ
ータをキャッシュメモリからメモリコントローラ33へ
転送し、ステップ3412においてメモリコントローラ
33へバーストライト要求を発行することによって、ラ
イトバックすべきデータを主メモリへブロック転送す
る。
【0072】図41は図28のステップ2216、図3
6のステップ3010、図37のステップ3110、図
38のステップ3210、及び図39のステップ331
0において実行されるバーストリード処理の詳細を示
す。ステップ3500においてスタートアドレスレジス
タに格納されているスタートアドレスをメモリコントロ
ーラ33へ出力し、ステップ3502においてバースト
リード要求をメモリコントローラ33へ発行することに
よって、スタートアドレスで指定されたデータブロック
を主メモリからメモリコントローラ33へ読み出し、ス
テップ3504においてライン番号レジスタが示す記憶
領域へデータを転送する。ステップ3506において、
スタートアドレスレジスタの内容の一部をTAGアドレ
スに出力し、スタートアドレスの一部をタグフィールド
に含みバリットビットフィールドが“0”にセットされ
たTAGデータを出力することによってタグメモリへ書
き込む。次に、ステップ3508においてTAGアドレ
スをライン番号レジスタで示されるインデックスレジス
タにセットする。図42は図28のステップ2206及
び図29のステップ2310において実行されるキャッ
シュリード処理の詳細を示す。ステップ3600におい
てライン番号レジスタとローカルアドレスからなるキャ
ッシュメモリアドレスで指定されるキャッシュメモリの
データを読み出してCPUバスのデータバスへ出力し、
ステップ3602においてカレントアクセスフラグ更新
処理を実行し、ステップ3604においてリファレンス
カウントセット処理を実行して対応するリファレンスカ
ウントをインクリメントする。
6のステップ3010、図37のステップ3110、図
38のステップ3210、及び図39のステップ331
0において実行されるバーストリード処理の詳細を示
す。ステップ3500においてスタートアドレスレジス
タに格納されているスタートアドレスをメモリコントロ
ーラ33へ出力し、ステップ3502においてバースト
リード要求をメモリコントローラ33へ発行することに
よって、スタートアドレスで指定されたデータブロック
を主メモリからメモリコントローラ33へ読み出し、ス
テップ3504においてライン番号レジスタが示す記憶
領域へデータを転送する。ステップ3506において、
スタートアドレスレジスタの内容の一部をTAGアドレ
スに出力し、スタートアドレスの一部をタグフィールド
に含みバリットビットフィールドが“0”にセットされ
たTAGデータを出力することによってタグメモリへ書
き込む。次に、ステップ3508においてTAGアドレ
スをライン番号レジスタで示されるインデックスレジス
タにセットする。図42は図28のステップ2206及
び図29のステップ2310において実行されるキャッ
シュリード処理の詳細を示す。ステップ3600におい
てライン番号レジスタとローカルアドレスからなるキャ
ッシュメモリアドレスで指定されるキャッシュメモリの
データを読み出してCPUバスのデータバスへ出力し、
ステップ3602においてカレントアクセスフラグ更新
処理を実行し、ステップ3604においてリファレンス
カウントセット処理を実行して対応するリファレンスカ
ウントをインクリメントする。
【0073】図43は図28のステップ2208及び図
29のステップ2312において実行されるキャッシュ
ライト処理の詳細を示す。ステップ3700において、
CPUバスのデータバスの値をキャッシュメモリのライ
ン番号レジスタの値とローカルアドレスとで指定される
個所に格納し、ステップ3702においてカレントアク
セスフラグ更新処理を実行し、ステップ3704におい
てリファレンスカウントセット処理を実行する。
29のステップ2312において実行されるキャッシュ
ライト処理の詳細を示す。ステップ3700において、
CPUバスのデータバスの値をキャッシュメモリのライ
ン番号レジスタの値とローカルアドレスとで指定される
個所に格納し、ステップ3702においてカレントアク
セスフラグ更新処理を実行し、ステップ3704におい
てリファレンスカウントセット処理を実行する。
【0074】図44は、図27のステップ2112にお
いて実行されるリファレンスカウントクリア処理の詳細
を示す。リファレンスカウントクリア処理においては、
現在選択されているバンクの、ライン番号レジスタで示
されるリファレンスカウンタに“0”を設定する。図4
5は、図27のステップ2114、図42のステップ3
602及び図43のステップ3702において実行され
るカレントアクセスフラグ更新処理の詳細を示す。カレ
ントアクセスフラグ更新処理においては、カレントアク
セスフラグをすべて“0”にし、現在選択されているバ
ンクの、ライン番号レジスタで示されるカレントアクセ
スフラグのみを“1”にする。
いて実行されるリファレンスカウントクリア処理の詳細
を示す。リファレンスカウントクリア処理においては、
現在選択されているバンクの、ライン番号レジスタで示
されるリファレンスカウンタに“0”を設定する。図4
5は、図27のステップ2114、図42のステップ3
602及び図43のステップ3702において実行され
るカレントアクセスフラグ更新処理の詳細を示す。カレ
ントアクセスフラグ更新処理においては、カレントアク
セスフラグをすべて“0”にし、現在選択されているバ
ンクの、ライン番号レジスタで示されるカレントアクセ
スフラグのみを“1”にする。
【0075】図46は図42のステップ3604及び図
43のステップ3704において実行されるリファレン
スカウントセット処理の詳細を示す。リファレンスカウ
ントセット処理においては、現在選択されているバンク
の、ライン番号レジスタで示されるリファレンスカウン
タをインクリメントする。図47及び図48〜図51を
参照しつつ本発明のキャッシュメモリシステムの予測モ
ードにおける動作を例を挙げて説明する。図47におい
て、三角形200に囲まれた領域内のデータをラスタ状
に、すなわち、図の左から右へ向かう走査線に沿って上
から下の順で処理する場合を例にとって説明する。予測
モードをモード0とし、初期状態としてAバンクが現バ
ンクにBバンクが予測バンクに割り当てられ、三角形2
00に囲まれた領域内のデータに関連するデータブロッ
ク(#0〜#2,#5〜#8)はいずれのキャッシュバ
ンクにもロードされていないものとする。時刻t0 にお
いては、現ブロックアドレスは#1で予測ブロックは#
2である。従って、図48の(a)欄に示すように、現
ブロックアドレス及び予測ブロックアドレスはAバンク
にもBバンクにもヒットせず、A Curr H/M,A
Pred H/M,B Curr H/M、及びB
Pred H/MはいずれもLレベルになる。そこで、
現バンクであるAバンクにブロック#1がロードされて
図48の(b)欄に示すように現ブロックアドレスが現
バンクにヒットするようになってA Curr H/M
がHレベルになりAバンクがアクセスされる。次いで、
Bバンクにブロック#2がロードされて図48(c)欄
に示すようにB Pred H/LがHレベルになる。
時刻t1 では図48の(d)欄に示すようにA Cur
r H/MがHレベルであるからAバンクがアクセスさ
れる。時刻t2 になると、図48の(e)欄に示すよう
に、現ブロックは#2に予測ブロックは#3になる。従
ってB Curr H/MのみがHレベルになるので、
現バンクの割り当てが反転されて図48(f)欄に示す
ようにBバンクへアクセスされる。次いで、図49の
(a)欄に示すように、A Pred H/MがLレベル
であるから、予測バンクであるAバンクにブロック#3
がロードされて図49(b)欄に示すようになる。時刻
t3 になると図49の(c)欄に示すように、現ブロッ
クアドレスは#1に予測ブロックアドレスは#2にな
る。従って、現ブロックの割り当てが反転され、現バン
クであるAバンクがアクセスされる(図49の(d)
欄)。時刻t4 では図49の(e)欄に示すようにA
Curr H/MがLレベルでB Curr H/Mが
Hレベルになるので現バンクの割り当てが反転されて図
49の(f)欄に示すようにBバンクへアクセスされ
る。さらに時刻がt5 →t6 →t7 →t8 →t9 と推移
するにつれて、図50及び図51に示したように推移す
る。
43のステップ3704において実行されるリファレン
スカウントセット処理の詳細を示す。リファレンスカウ
ントセット処理においては、現在選択されているバンク
の、ライン番号レジスタで示されるリファレンスカウン
タをインクリメントする。図47及び図48〜図51を
参照しつつ本発明のキャッシュメモリシステムの予測モ
ードにおける動作を例を挙げて説明する。図47におい
て、三角形200に囲まれた領域内のデータをラスタ状
に、すなわち、図の左から右へ向かう走査線に沿って上
から下の順で処理する場合を例にとって説明する。予測
モードをモード0とし、初期状態としてAバンクが現バ
ンクにBバンクが予測バンクに割り当てられ、三角形2
00に囲まれた領域内のデータに関連するデータブロッ
ク(#0〜#2,#5〜#8)はいずれのキャッシュバ
ンクにもロードされていないものとする。時刻t0 にお
いては、現ブロックアドレスは#1で予測ブロックは#
2である。従って、図48の(a)欄に示すように、現
ブロックアドレス及び予測ブロックアドレスはAバンク
にもBバンクにもヒットせず、A Curr H/M,A
Pred H/M,B Curr H/M、及びB
Pred H/MはいずれもLレベルになる。そこで、
現バンクであるAバンクにブロック#1がロードされて
図48の(b)欄に示すように現ブロックアドレスが現
バンクにヒットするようになってA Curr H/M
がHレベルになりAバンクがアクセスされる。次いで、
Bバンクにブロック#2がロードされて図48(c)欄
に示すようにB Pred H/LがHレベルになる。
時刻t1 では図48の(d)欄に示すようにA Cur
r H/MがHレベルであるからAバンクがアクセスさ
れる。時刻t2 になると、図48の(e)欄に示すよう
に、現ブロックは#2に予測ブロックは#3になる。従
ってB Curr H/MのみがHレベルになるので、
現バンクの割り当てが反転されて図48(f)欄に示す
ようにBバンクへアクセスされる。次いで、図49の
(a)欄に示すように、A Pred H/MがLレベル
であるから、予測バンクであるAバンクにブロック#3
がロードされて図49(b)欄に示すようになる。時刻
t3 になると図49の(c)欄に示すように、現ブロッ
クアドレスは#1に予測ブロックアドレスは#2にな
る。従って、現ブロックの割り当てが反転され、現バン
クであるAバンクがアクセスされる(図49の(d)
欄)。時刻t4 では図49の(e)欄に示すようにA
Curr H/MがLレベルでB Curr H/Mが
Hレベルになるので現バンクの割り当てが反転されて図
49の(f)欄に示すようにBバンクへアクセスされ
る。さらに時刻がt5 →t6 →t7 →t8 →t9 と推移
するにつれて、図50及び図51に示したように推移す
る。
【0076】上記の過程において、時刻t0 ,t2 ,t
5 ,t8 及びt9 において、新たなデータブロックに属
するデータの処理が開始されるが、新たなデータブロッ
クがロードされるまで処理が中断されるのは時刻t0 ,
t5 及びt8 だけであり、t 2 及びt9 においては、必
要なデータブロックが既に予測側のバンクにロードされ
ており、現バンク及び予測バンクの割り当てを反転する
だけで処理を続行することができる。
5 ,t8 及びt9 において、新たなデータブロックに属
するデータの処理が開始されるが、新たなデータブロッ
クがロードされるまで処理が中断されるのは時刻t0 ,
t5 及びt8 だけであり、t 2 及びt9 においては、必
要なデータブロックが既に予測側のバンクにロードされ
ており、現バンク及び予測バンクの割り当てを反転する
だけで処理を続行することができる。
【0077】
【発明の効果】以上述べてきたように本発明によれば、
将来必要とされるデータブロックを予測して予め予測側
のキャッシュメモリバンクにロードするので、予測が適
中する限りデータ処理を中断することなく続行すること
ができる。
将来必要とされるデータブロックを予測して予め予測側
のキャッシュメモリバンクにロードするので、予測が適
中する限りデータ処理を中断することなく続行すること
ができる。
【図面の簡単な説明】
【図1】2次元キャッシュメモリシステムを含む画像処
理装置のブロック図である。
理装置のブロック図である。
【図2】画像データの記憶形態の説明図である。
【図3】キャッシュメモリの格納形態の説明図である。
【図4】2次元キャッシュメモリシステムの構成図であ
る。
る。
【図5】制御ブロックの構成図である。
【図6】キャッシュコンパレータの構成図である。
【図7】メイン処理フローである。
【図8】リファレンスビットリフレッシュ処理の処理フ
ローである。
ローである。
【図9】キャッシュヒット判定処理の処理フローであ
る。
る。
【図10】キャッシュ無効化処理の処理フローである。
【図11】キャッシュアクセス処理の処理フローであ
る。
る。
【図12】ブロックリード処理の処理フローである。
【図13】スワップアウトブロック決定処理の処理フロ
ーである。
ーである。
【図14】バーストリード処理の処理フローである。
【図15】制御フラグ更新処理の処理フローである。
【図16】TAG更新処理の処理フローである。
【図17】バーストアクセス時のアドレス生成処理の説
明図である。
明図である。
【図18】本発明の2次元キャッシュメモリシステムに
おける予測モードの4つの例を示す図である。
おける予測モードの4つの例を示す図である。
【図19】本発明に係る2次元キャッシュメモリシステ
ムの一具体例のブロック図である。
ムの一具体例のブロック図である。
【図20】各種のアドレスを生成する方法の一例を示す
図である。
図である。
【図21】予測アドレス生成回路の構成を示す回路図で
ある。
ある。
【図22】Aバンク用キャッシュコンパレータの構成を
示すブロック図である。
示すブロック図である。
【図23】Bバンク用キャッシュコンパレータの構成を
示すブロック図である。
示すブロック図である。
【図24】制御ブロックの概略構成を示すブロック図で
ある。
ある。
【図25】制御ブロックの動作を説明するメインフロー
チャートである。
チャートである。
【図26】リファレンスカウンタリフレッシュ処理のフ
ローチャートである。
ローチャートである。
【図27】バイパスモード処理のフローチャートであ
る。
る。
【図28】2ウェイキャッシュモード処理のフローチャ
ートである。
ートである。
【図29】予測キャッシュモード処理のフローチャート
である。
である。
【図30】キャッシュヒット判定処理のフローチャート
である。
である。
【図31】スワップアウトブロック決定処理のフローチ
ャートである。
ャートである。
【図32】現アドレスヒット判定処理のフローチャート
である。
である。
【図33】予測アドレスヒット判定処理のフローチャー
トである。
トである。
【図34】現バンクブロックリード処理のフローチャー
トである。
トである。
【図35】予測バンクブロックリード処理のフローチャ
ートである。
ートである。
【図36】Aバンクブロックリード処理(1)のフロー
チャートである。
チャートである。
【図37】Aバンクブロックリード処理(2)のフロー
チャートである。
チャートである。
【図38】Bバンクブロックリード処理(1)のフロー
チャートである。
チャートである。
【図39】Bバンクブロックリード処理(2)のフロー
チャートである。
チャートである。
【図40】キャッシュライトバック処理のフローチャー
トである。
トである。
【図41】バーストリード処理のフローチャートであ
る。
る。
【図42】キャッシュリード処理のフローチャートであ
る。
る。
【図43】キャッシュライト処理のフローチャートであ
る。
る。
【図44】リファレンスカウントクリア処理のフローチ
ャートである。
ャートである。
【図45】カレントアクセスフラグ更新処理のフローチ
ャートである。
ャートである。
【図46】リファレンスカウントセット処理のフローチ
ャートである。
ャートである。
【図47】本発明のキャッシュメモリシステムの動作を
説明するための図である。
説明するための図である。
【図48】本発明のキャッシュメモリシステムの動作を
説明するための図である。
説明するための図である。
【図49】本発明のキャッシュメモリシステムの動作を
説明するための図である。
説明するための図である。
【図50】本発明のキャッシュメモリシステムの動作を
説明するための図である。
説明するための図である。
【図51】本発明のキャッシュメモリシステムの動作を
説明するための図である。
説明するための図である。
Claims (8)
- 【請求項1】 主記憶に記憶され、複数のデータアドレ
スの組み合わせで特定されるデータの処理に適したキャ
ッシュメモリシステムであって、 該複数のデータアドレスの組み合わせの第1の部分から
なるブロックアドレスでそれぞれが特定され残りの第2
の部分からなるブロック内アドレスでそれぞれを構成す
るデータが特定されるデータブロックのコピーをそれぞ
れ記憶するための複数の記憶領域を有する第1のキャッ
シュメモリバンクと、 該複数のデータアドレスの組み合わせの第1の部分から
なるブロックアドレスでそれぞれが特定され残りの第2
の部分からなるブロック内アドレスでそれぞれを構成す
るデータが特定されるデータブロックのコピーをそれぞ
れ記憶するための複数の記憶領域を有する第2のキャッ
シュメモリバンクと、 特定のデータアドレスの組み合わせに対応する現ブロッ
クアドレスから予め定められた規則に従って予測ブロッ
クアドレスを決定する予測アドレス生成回路と、 現ブロックアドレス、及び該予測アドレス生成回路が決
定した予測ブロックアドレスが前記第1及び第2のキャ
ッシュメモリバンクにヒットしたかミスヒットしたかを
決定するキャッシュコンパレータと、 該キャッシュコンパレータの判定結果に従って、該主記
憶及び該第1及び第2のキャッシュメモリバンクを制御
するための制御ブロックとを具備するキャッシュメモリ
システム。 - 【請求項2】 前記制御ブロックは、前記第1及び第2
のキャッシュメモリバンクのいずれか一方を現バンク、
他方を予測バンクに割り当てる手段と、 現ブロックアドレスが予測バンクにヒットしたと前記キ
ャッシュコンパレータが判断するとき、現バンク及び予
測バンクの割り当てを反転する手段と、 予測ブロックアドレスが予測バンクにミスヒットしたと
該キャッシュコンパレータが判断するとき、該予測ブロ
ックアドレスで特定されるデータブロックのコピーを予
測バンクにブロックリードする手段とを含む請求項1記
載のキャッシュメモリシステム。 - 【請求項3】 前記複数のアドレスの組み合わせの第1
の部分は、該複数のアドレスのそれぞれの上位ビットの
組み合わせからなる請求項1記載のキャッシュメモリシ
ステム。 - 【請求項4】 前記キャッシュコンパレータは、前記第
1及び第2のキャッシュメモリバンクについてそれぞれ
ヒット又はミスヒットを判断する第1及び第2のキャッ
シュコンパレータ回路を含み、 該第1及び第2のキャッシュコンパレータ回路の双方
は、 前記ブロックアドレスを構成するビットの第1の部分か
らなるタグアドレスで特定される記憶位置に、該ブロッ
クアドレスを構成するビットの残りの第2の部分からな
るタグ、該タグとそのタグアドレスとで定まるブロック
アドレスによって特定されるデータブロックのコピーが
前記キャッシュメモリの記憶領域のいずれかに有効に記
憶されていることを示すバリッドフラグ、及び有効に記
憶されているときは記憶されている記憶領域を特定する
ライン番号を記憶するタグメモリと、 前記特定のデータアドレスの組み合わせに対応する現ブ
ロックアドレスに対応するタグアドレスで特定されるタ
グメモリの記憶位置に記憶されているタグと該現ブロッ
クアドレスに対応するタグとが一致し、かつ、該記憶位
置に記憶されているバリッドフラグが真であるならば、
現ブロックアドレスがヒットしたと判定する第1の一致
検出回路と、 前記特定のデータアドレスの組み合わせに対応する予測
ブロックアドレスに対応するタグアドレスで特定される
タグメモリの記憶位置に記憶されているタグと該予測ブ
ロックアドレスに対応するタグとが一致し、かつ、該記
憶位置に記憶されているバリッドフラグが真であるなら
ば、予測ブロックアドレスがヒットしたと判定する第2
の一致検出回路とを含む請求項1記載のキャッシュメモ
リシステム。 - 【請求項5】 前記タグ及びタグアドレスはいずれも、
前記複数のアドレスのすべてからのビットを含む請求項
4記載のキャッシュメモリシステム。 - 【請求項6】 前記ブロックアドレス予測回路は外部か
ら与えられる予測モード信号が指定する規則に従って予
測ブロックアドレスを決定する請求項1記載のキャッシ
ュメモリシステム。 - 【請求項7】 前記制御ブロックは、前記予測モード信
号が2ウェイキャッシュモードを指定するとき、前記キ
ャッシュコンパレータによる前記予測ブロックアドレス
についての判定結果にかかわらず前記現ブロックアドレ
スについての判定結果に従って前記第1及び第2のキャ
ッシュメモリバンクを2ウェイキャッシュとして制御す
る手段を含む請求項6記載のキャッシュメモリシステ
ム。 - 【請求項8】 複数のデータアドレスの組み合わせで特
定されるデータを記憶する主記憶の一部をキャッシュメ
モリに記憶するキャッシュメモリシステムであって、 該複数のデータアドレスの組み合わせで特定される第1
のデータがキャッシュメモリにヒットしたかミスヒット
したかを決定する第1のキャッシュコンパレータと、 該複数のデータアドレスの組み合わせと予測モードから
特定されるデータアドレスを生成する予測アドレス生成
回路と、 該予測アドレス生成回路で生成されたデータアドレスで
特定される第2のデータがキャッシュメモリにヒットし
たかミスヒットしたかを決定する第2のキャッシュコン
パレータと、 該第1および第2のキャッシュコンパレータでミスヒッ
トと判定された第1および第2のデータを主記憶からキ
ャッシュメモリに読み込む制御ブロックとを具備するキ
ャッシュメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7204278A JPH0950399A (ja) | 1995-08-10 | 1995-08-10 | 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム |
US08/659,702 US5822760A (en) | 1994-01-31 | 1996-06-10 | Cache-memory system having multidimensional cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7204278A JPH0950399A (ja) | 1995-08-10 | 1995-08-10 | 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0950399A true JPH0950399A (ja) | 1997-02-18 |
Family
ID=16487839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7204278A Pending JPH0950399A (ja) | 1994-01-31 | 1995-08-10 | 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0950399A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005524170A (ja) * | 2002-04-30 | 2005-08-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 |
JP2008033688A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ltd | キャッシュメモリ制御方法、及び装置 |
JP2014513883A (ja) * | 2011-03-07 | 2014-06-05 | 日本テキサス・インスツルメンツ株式会社 | ビデオ符号化のためのキャッシュ方法およびシステム |
US9626234B2 (en) | 2010-09-20 | 2017-04-18 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
CN112381972A (zh) * | 2020-11-10 | 2021-02-19 | 珠海优特电力科技股份有限公司 | 作业位置的确认方法及装置、存储介质、电子装置 |
-
1995
- 1995-08-10 JP JP7204278A patent/JPH0950399A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005524170A (ja) * | 2002-04-30 | 2005-08-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 |
JP2008033688A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ltd | キャッシュメモリ制御方法、及び装置 |
US9626234B2 (en) | 2010-09-20 | 2017-04-18 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
US9645866B2 (en) | 2010-09-20 | 2017-05-09 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
JP2014513883A (ja) * | 2011-03-07 | 2014-06-05 | 日本テキサス・インスツルメンツ株式会社 | ビデオ符号化のためのキャッシュ方法およびシステム |
CN112381972A (zh) * | 2020-11-10 | 2021-02-19 | 珠海优特电力科技股份有限公司 | 作业位置的确认方法及装置、存储介质、电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8041894B2 (en) | Method and system for a multi-level virtual/real cache system with synonym resolution | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US7925836B2 (en) | Selective coherency control | |
US20100217937A1 (en) | Data processing apparatus and method | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
JPH11509356A (ja) | キャッシュシステム | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
US5822760A (en) | Cache-memory system having multidimensional cache | |
JPH10293720A (ja) | コンピュータシステムにおけるキャッシュ・コヒーレンシー機構および主メモリに保持されている項目に関してキャッシュの内容のコヒーレンシー状態を変更する方法 | |
US5749089A (en) | Cache-memory system having multidimensional spread cache | |
US20180203802A1 (en) | Cache apparatus and a method of caching data | |
JP2005509204A (ja) | 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ | |
US7949833B1 (en) | Transparent level 2 cache controller | |
JPH10501914A (ja) | 共用キャッシュ・メモリ装置 | |
JPH0950399A (ja) | 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
US11321241B2 (en) | Techniques to improve translation lookaside buffer reach by leveraging idle resources | |
JPH11102320A (ja) | キャッシュシステム | |
JP3486435B2 (ja) | メモリキャッシング方法及び装置 | |
JPH03235143A (ja) | キャッシュメモリ制御装置 | |
JPH08263374A (ja) | キャッシュ制御方法およびそれを用いたマルチプロセッサシステム | |
JP2000035918A (ja) | キャッシュメモリ装置 | |
JPH06250926A (ja) | 複数階層のキャッシュメモリを備えたデータ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040106 |