JPH08328960A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JPH08328960A JPH08328960A JP7131530A JP13153095A JPH08328960A JP H08328960 A JPH08328960 A JP H08328960A JP 7131530 A JP7131530 A JP 7131530A JP 13153095 A JP13153095 A JP 13153095A JP H08328960 A JPH08328960 A JP H08328960A
- Authority
- JP
- Japan
- Prior art keywords
- way
- copy
- address
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 キャッシュミス時の入れ替え動作によるオー
バヘッドを大幅に削減する。 【構成】 キャッシュメモリはウェイ0〜4の4つのメ
モリマット5で構成される。バイパスバッファ10は前
回のキャッシュミスでコピーインすべき内容を保持して
いる。キャッシュミスが判明すると、コピーイン動作と
コピーアウト動作が相異なるウェイのメモリマット5で
並行して実行される。コピーイン動作では、前回のキャ
ッシュミス時に吐き出してすきまの空いたウェイ0のラ
インにバイパスバッファ10の内容を書き込む。コピー
アウト動作では、今回のキャッシュミスで吐き出すべき
ウェイ候補として上記ウェイ0以外の例えばウェイ1を
選択してコピーアウトを実行する。今回のキャッシュミ
スでコピーインすべき内容は、主記憶装置14からバイ
パスバッファ10へ書き込む。
バヘッドを大幅に削減する。 【構成】 キャッシュメモリはウェイ0〜4の4つのメ
モリマット5で構成される。バイパスバッファ10は前
回のキャッシュミスでコピーインすべき内容を保持して
いる。キャッシュミスが判明すると、コピーイン動作と
コピーアウト動作が相異なるウェイのメモリマット5で
並行して実行される。コピーイン動作では、前回のキャ
ッシュミス時に吐き出してすきまの空いたウェイ0のラ
インにバイパスバッファ10の内容を書き込む。コピー
アウト動作では、今回のキャッシュミスで吐き出すべき
ウェイ候補として上記ウェイ0以外の例えばウェイ1を
選択してコピーアウトを実行する。今回のキャッシュミ
スでコピーインすべき内容は、主記憶装置14からバイ
パスバッファ10へ書き込む。
Description
【0001】
【産業上の利用分野】本発明は、複数のウェイから構成
されるストアイン方式のキャッシュメモリ装置に係り、
特にキャッシュミス時の入れ替え動作の高速化に関す
る。
されるストアイン方式のキャッシュメモリ装置に係り、
特にキャッシュミス時の入れ替え動作の高速化に関す
る。
【0002】
【従来の技術】現代の高速電子データ処理システムは、
演算処理装置と階層記憶システムから構成されることが
多い。後者を2階層で構成する際は、サイクルタイムが
演算処理装置のサイクルタイムよりも長い、低速大容量
のメモリ、すなわち主記憶装置と、サイクルタイムが演
算処理装置のサイクルタイムと同程度である高速小容量
メモリ、すなわちキャッシュメモリとを含んでいる。こ
のようなキャッシュメモリシステムは、当技術分野でよ
く知られている。
演算処理装置と階層記憶システムから構成されることが
多い。後者を2階層で構成する際は、サイクルタイムが
演算処理装置のサイクルタイムよりも長い、低速大容量
のメモリ、すなわち主記憶装置と、サイクルタイムが演
算処理装置のサイクルタイムと同程度である高速小容量
メモリ、すなわちキャッシュメモリとを含んでいる。こ
のようなキャッシュメモリシステムは、当技術分野でよ
く知られている。
【0003】このようなキャッシュメモリシステムにお
いては、キャッシュメモリ上に存在しないデータにアク
セスを行いたい場合、すなわち、キャッシュミス時に
は、階層間で情報の転送を行うことが必須である。一般
にこれは、まずキャッシュメモリ上の内容を主記憶装置
に書き出し(コピーアウト)、その後、主記憶装置から
所望データをキャッシュメモリに書き込む(コピーイ
ン)ことで実現しており、オーバヘッドの増大は免れな
かった。
いては、キャッシュメモリ上に存在しないデータにアク
セスを行いたい場合、すなわち、キャッシュミス時に
は、階層間で情報の転送を行うことが必須である。一般
にこれは、まずキャッシュメモリ上の内容を主記憶装置
に書き出し(コピーアウト)、その後、主記憶装置から
所望データをキャッシュメモリに書き込む(コピーイ
ン)ことで実現しており、オーバヘッドの増大は免れな
かった。
【0004】従来、このキャッシュミス時の入れ替え動
作のオーバヘッドを減少させる手法としては、(1)主
記憶装置とキャッシュメモリの入力側の間にバイパスバ
ッファを設け、コピーアウト動作後のコピーイン動作
時、主記憶装置からの所望データがバイパスバッファに
到着した時点で演算処理装置に供給する方法、(2)キ
ャッシュメモリの出力側と主記憶装置の間にコピーアウ
トバッファを設け、コピーアウト動作でキャッシュメモ
リの内容がコピーアウトバッファに吐き出された時点で
コピーイン動作を開始する方法、及び、この(1)と
(2)の方法を組み合わせた方法が知られている。
作のオーバヘッドを減少させる手法としては、(1)主
記憶装置とキャッシュメモリの入力側の間にバイパスバ
ッファを設け、コピーアウト動作後のコピーイン動作
時、主記憶装置からの所望データがバイパスバッファに
到着した時点で演算処理装置に供給する方法、(2)キ
ャッシュメモリの出力側と主記憶装置の間にコピーアウ
トバッファを設け、コピーアウト動作でキャッシュメモ
リの内容がコピーアウトバッファに吐き出された時点で
コピーイン動作を開始する方法、及び、この(1)と
(2)の方法を組み合わせた方法が知られている。
【0005】なお、これに関連する公知文献としては、
例えば、IBM Journal ofResearch and Developme
nt、Vol.33 No.1、pp.15〜31が挙げられる。
例えば、IBM Journal ofResearch and Developme
nt、Vol.33 No.1、pp.15〜31が挙げられる。
【0006】
【発明が解決しようとする課題】上記従来技術は、キャ
ッシュミス時の入れ替え動作において、コピーイン動作
とコピーアウト動作を並行に行うことは配慮されておら
ず、キャッシュミス時のオーバヘッド削減には限界があ
った。
ッシュミス時の入れ替え動作において、コピーイン動作
とコピーアウト動作を並行に行うことは配慮されておら
ず、キャッシュミス時のオーバヘッド削減には限界があ
った。
【0007】本発明の目的は、上記従来技術の問題点を
解決し、キャッシュミス時のオーバヘッドの大幅な削減
を可能にするキャッシュメモリ装置を提供することにあ
る。
解決し、キャッシュミス時のオーバヘッドの大幅な削減
を可能にするキャッシュメモリ装置を提供することにあ
る。
【0008】
【課題を解決するための手段】本発明は、複数ウェイの
複数メモリマットで構成されるキャッシュメモリ装置に
おいて、キャッシュミス時の入れ替え動作で、メモリマ
ットからのコピーアウト動作とメモリマットへのコピー
イン動作を相異なるウェイで並行して実行せしめる制御
手段を設けたことを特徴とする。
複数メモリマットで構成されるキャッシュメモリ装置に
おいて、キャッシュミス時の入れ替え動作で、メモリマ
ットからのコピーアウト動作とメモリマットへのコピー
イン動作を相異なるウェイで並行して実行せしめる制御
手段を設けたことを特徴とする。
【0009】また、本発明は、複数ウェイの複数メモリ
マットで構成されるキャッシュメモリ装置であって、前
回のキャッシュミスでコピーインすべき内容を保持する
バイパスバッファと、コピーアウトした内容を保持する
コピーアウトバッファと、キャッシュミス時の入れ替え
動作で、メモリマットからの前記コピーアウトバッファ
へのコピーアウト動作と前記バイパスバッファからのメ
モリマットへのコピーイン動作を相異なるウェイで並行
して実行せしめる制御手段を設けたことを特徴とする。
マットで構成されるキャッシュメモリ装置であって、前
回のキャッシュミスでコピーインすべき内容を保持する
バイパスバッファと、コピーアウトした内容を保持する
コピーアウトバッファと、キャッシュミス時の入れ替え
動作で、メモリマットからの前記コピーアウトバッファ
へのコピーアウト動作と前記バイパスバッファからのメ
モリマットへのコピーイン動作を相異なるウェイで並行
して実行せしめる制御手段を設けたことを特徴とする。
【0010】
【作用】キャッシュメモリを構成する各ウェイのメモリ
マットは、それぞれ独立にアクセス可能である。したが
って、キャッシュミス時の入れ替え動作で、コピーアウ
トするウェイとコピーインするウェイを異ならしめるこ
とにより、コピーアウト動作とコピーイン動作を並列に
行うことが可能になり、キャッシュミス時のオーバーヘ
ッドを大幅に削減できる。
マットは、それぞれ独立にアクセス可能である。したが
って、キャッシュミス時の入れ替え動作で、コピーアウ
トするウェイとコピーインするウェイを異ならしめるこ
とにより、コピーアウト動作とコピーイン動作を並列に
行うことが可能になり、キャッシュミス時のオーバーヘ
ッドを大幅に削減できる。
【0011】
【実施例】以下、本発明の実施例について図面により詳
述する。なお、実施例では、1ワードは4バイト、1ダ
ブルワードは2ワードすなわち8バイトとする。また、
キャッシュ構成は4キロバイト×4ウェイ、32バイト
/ライン、すなわち、128ライン(カラム)×4ウェ
イを仮定し、キャッシュアクセスの単位は、通常時は4
バイト単位(1ワード単位)、キャッシュラインの入れ
替え時は8バイト単位(1ダブルワード単位)とする。
システム構成は主記憶装置とキャッシュメモリの2階層
の記憶階層構成をとるとする。
述する。なお、実施例では、1ワードは4バイト、1ダ
ブルワードは2ワードすなわち8バイトとする。また、
キャッシュ構成は4キロバイト×4ウェイ、32バイト
/ライン、すなわち、128ライン(カラム)×4ウェ
イを仮定し、キャッシュアクセスの単位は、通常時は4
バイト単位(1ワード単位)、キャッシュラインの入れ
替え時は8バイト単位(1ダブルワード単位)とする。
システム構成は主記憶装置とキャッシュメモリの2階層
の記憶階層構成をとるとする。
【0012】〔実施例1〕これは、主記憶装置とキャッ
シュメモリの間にバイパスバッファが存在する場合の実
施例である。図1は、本実施例のシステム構成を示した
ものであり、演算処理装置1、アドレスレジスタ2、ア
ドレス指定回路3、アドレスデコーダ4、メモリマット
5、アドレスアレイ7、ヒット判定回路8、メモリマッ
ト出力セレクタ9、バイパスバッファ10、コピーアウ
トバッファ11、入力セレクタ12、出力セレクタ1
3、主記憶装置14、バイパスバッファアドレスラッチ
15、バイパスバッファウェイラッチ16、ウェイ参照
履歴メモリ17、コピーアウトウェイ判定回路18、セ
レクタ19からなっている。なおアドレス指定回路3、
アドレスデコーダ4及びメモリマット5は、それぞれキ
ャッシュメモリのウェイ数だけ存在する。本実施例にお
いては、ウェイ数は4(0〜3ウェイ)であり、それぞ
れ4ずつ存在する。
シュメモリの間にバイパスバッファが存在する場合の実
施例である。図1は、本実施例のシステム構成を示した
ものであり、演算処理装置1、アドレスレジスタ2、ア
ドレス指定回路3、アドレスデコーダ4、メモリマット
5、アドレスアレイ7、ヒット判定回路8、メモリマッ
ト出力セレクタ9、バイパスバッファ10、コピーアウ
トバッファ11、入力セレクタ12、出力セレクタ1
3、主記憶装置14、バイパスバッファアドレスラッチ
15、バイパスバッファウェイラッチ16、ウェイ参照
履歴メモリ17、コピーアウトウェイ判定回路18、セ
レクタ19からなっている。なおアドレス指定回路3、
アドレスデコーダ4及びメモリマット5は、それぞれキ
ャッシュメモリのウェイ数だけ存在する。本実施例にお
いては、ウェイ数は4(0〜3ウェイ)であり、それぞ
れ4ずつ存在する。
【0013】アドレスアレイ7は、4つあるメモリマッ
ト5の各ウェイの各ラインに格納されているデータの主
記憶装置14上のアドレス(主記憶アドレス)を記憶し
ている。ウェイ参照履歴メモリ17は、ライン(カラ
ム)単位に4ウェイ間の参照履歴情報を記憶している。
なお、これらは従来と同様である。
ト5の各ウェイの各ラインに格納されているデータの主
記憶装置14上のアドレス(主記憶アドレス)を記憶し
ている。ウェイ参照履歴メモリ17は、ライン(カラ
ム)単位に4ウェイ間の参照履歴情報を記憶している。
なお、これらは従来と同様である。
【0014】バイパスバッファ10は、1ラインすなわ
ち32バイト構成のレジスタで、ここには、前回のキャ
ッシュミス時に主記憶装置14からライン転送されて、
本来、4つあるメモリマット5中の所定ウェイの所定ラ
インに格納されるべき1ライン相当の内容が入ってい
る。このバイパスバッファ10の内容がどのライン(カ
ラム)に対応する内容であるかは、7ビット構成のバイ
パスバッファアドレスラッチ15が記憶しており、ま
た、どのウェイ(メモリマット)に対する内容であるか
は、4ビット構成(ビットとウェイが1対1に対応)の
バイパスバッファウェイラッチ16が記憶している。
ち32バイト構成のレジスタで、ここには、前回のキャ
ッシュミス時に主記憶装置14からライン転送されて、
本来、4つあるメモリマット5中の所定ウェイの所定ラ
インに格納されるべき1ライン相当の内容が入ってい
る。このバイパスバッファ10の内容がどのライン(カ
ラム)に対応する内容であるかは、7ビット構成のバイ
パスバッファアドレスラッチ15が記憶しており、ま
た、どのウェイ(メモリマット)に対する内容であるか
は、4ビット構成(ビットとウェイが1対1に対応)の
バイパスバッファウェイラッチ16が記憶している。
【0015】図2は、アドレスレジスタ2のビット構成
の詳細を示している。本実施例では、主記憶装置および
キャッシュメモリの1ワードは30ビットのアドレスで
指定されるとする。第0ビットから第19ビットまでの
上位20ビット(ページアドレス)21は、ヒット判定
回路8において、キャッシュメモリのヒット判定に使用
される。アドレスアレイ7が記憶している主記憶アドレ
スも、この第0ビットから第19ビットまでの20ビッ
トである。第20ビットから第26ビットまでの7ビッ
ト(ラインアドレス)22は、アドレスアレイ7をアク
セスするタグとして使用されるとともに、ウェイ参照履
歴メモリ17をアクセスするために使用され、また、バ
イパスバッファアドレスラッチ15、および、ヒット判
定回路8に供給される。第20ビットから第28ビット
までの9ビット(ページ内アドレス)23は、各アドレ
ス指定回路3において、メモリマット5のライン/セル
指定のために使用される。最下位の第29ビット24
は、メモリマット5におけるセル内のワード位置を指定
するために用いられる。なお、セルの定義は図4のメモ
リマット5の説明を行う部分で与えている。
の詳細を示している。本実施例では、主記憶装置および
キャッシュメモリの1ワードは30ビットのアドレスで
指定されるとする。第0ビットから第19ビットまでの
上位20ビット(ページアドレス)21は、ヒット判定
回路8において、キャッシュメモリのヒット判定に使用
される。アドレスアレイ7が記憶している主記憶アドレ
スも、この第0ビットから第19ビットまでの20ビッ
トである。第20ビットから第26ビットまでの7ビッ
ト(ラインアドレス)22は、アドレスアレイ7をアク
セスするタグとして使用されるとともに、ウェイ参照履
歴メモリ17をアクセスするために使用され、また、バ
イパスバッファアドレスラッチ15、および、ヒット判
定回路8に供給される。第20ビットから第28ビット
までの9ビット(ページ内アドレス)23は、各アドレ
ス指定回路3において、メモリマット5のライン/セル
指定のために使用される。最下位の第29ビット24
は、メモリマット5におけるセル内のワード位置を指定
するために用いられる。なお、セルの定義は図4のメモ
リマット5の説明を行う部分で与えている。
【0016】図3は、アドレス指定回路3の詳細構成を
示している。アドレス指定回路3はアドレスラッチ3
1、セレクタ32、加算器33、34、35、セレクタ
36よりなる。アドレスラッチ31は9ビット幅のレジ
スタで、その上位7ビットは、アドレスレジスタ2から
の出力23のうちの上位の7ビット(ラインアドレス)
を記憶することができ、下位2ビット(ライン内セルア
ドレス)は、常に一定値0をとる。セレクタ32は、ア
ドレスレジスタ2の出力23とアドレスラッチ31の出
力の一方を選択するものである。加算器33は、入力に
1を加算して出力するものである。加算器34は、入力
に2を加算して出力するものである。加算器35は、入
力に3を加算して出力するものである。セレクタ36
は、セレクタ32、加算器33、加算器34、加算器3
5の4つの出力のうちから1つを選択し、アドレスデコ
ーダ4へ送付するものである。通常はアドレスレジスタ
2の出力23がセレクタ32、36を介してアドレスデ
コーダ4へ送付され、キャッシュミス時の入れ替え動作
において、アドレスラッチ31,加算器33、34,3
5の出力が順次選択される。
示している。アドレス指定回路3はアドレスラッチ3
1、セレクタ32、加算器33、34、35、セレクタ
36よりなる。アドレスラッチ31は9ビット幅のレジ
スタで、その上位7ビットは、アドレスレジスタ2から
の出力23のうちの上位の7ビット(ラインアドレス)
を記憶することができ、下位2ビット(ライン内セルア
ドレス)は、常に一定値0をとる。セレクタ32は、ア
ドレスレジスタ2の出力23とアドレスラッチ31の出
力の一方を選択するものである。加算器33は、入力に
1を加算して出力するものである。加算器34は、入力
に2を加算して出力するものである。加算器35は、入
力に3を加算して出力するものである。セレクタ36
は、セレクタ32、加算器33、加算器34、加算器3
5の4つの出力のうちから1つを選択し、アドレスデコ
ーダ4へ送付するものである。通常はアドレスレジスタ
2の出力23がセレクタ32、36を介してアドレスデ
コーダ4へ送付され、キャッシュミス時の入れ替え動作
において、アドレスラッチ31,加算器33、34,3
5の出力が順次選択される。
【0017】図4は、メモリマット5の詳細構成を示し
ている。図4に示すように、1つのメモリマット5は、
32バイトの大きさのラインを128ライン(128カ
ラム)持つ。各ラインはさらに8バイト単位(ダブルワ
ード単位)に分割される。この単位のことをここではセ
ルと呼ぶ。このセルが、メモリマット5をアクセスする
際のアドレス指定の最小単位となる。1ラインは、4セ
ル(4ダブルワード)で構成される。メモリマット5の
アクセスは、アドレスデコーダ4の出力(セル指定)、
アドレスレジスタ2の第29ビットのセル内ワード位置
指定ビット24、および、アクセス種別指定(読みだ
し、もしくは書き込み)、アクセス幅指定(4バイトも
しくは8バイト)をもとに行われる。
ている。図4に示すように、1つのメモリマット5は、
32バイトの大きさのラインを128ライン(128カ
ラム)持つ。各ラインはさらに8バイト単位(ダブルワ
ード単位)に分割される。この単位のことをここではセ
ルと呼ぶ。このセルが、メモリマット5をアクセスする
際のアドレス指定の最小単位となる。1ラインは、4セ
ル(4ダブルワード)で構成される。メモリマット5の
アクセスは、アドレスデコーダ4の出力(セル指定)、
アドレスレジスタ2の第29ビットのセル内ワード位置
指定ビット24、および、アクセス種別指定(読みだ
し、もしくは書き込み)、アクセス幅指定(4バイトも
しくは8バイト)をもとに行われる。
【0018】図5は、ヒット判定回路8の詳細を示して
いる。比較器51では、アドレスレジスタ2から得られ
る出力21の20ビットと、アドレスアレイ7から得ら
れるウェイ0のアドレスに関する情報である20ビット
が比較され、ヒット判定のためのビットが生成される。
比較器52、比較器53、比較器54においても、同様
に、アドレスレジスタ2の上位20ビットと、アドレス
アレイ7のウェイ1、2、3に相当する20ビットが比
較され、ヒット判定のためのビットが生成される。これ
らのヒット判定のためのビットは、ヒット判定論理55
の入力a〜dとなるとともに、それぞれANDゲート5
7の入力となる。各ANDゲート57の別の入力は、そ
れぞれバイパスバッファウェイラッチ16の出力中の該
当ウェイ信号であり、あるANDゲート57が1を出力
しているという状態は、当該ヒットしたウェイの内容が
バイパスバッファ10上に存在する可能性を示してい
る。4つのウェイに対応するこれらの4つの出力は、O
Rゲート58に入力される。ORゲート58の出力は、
比較器56の出力とともに、ANDゲート59の入力と
なる。比較器56の2つの入力はバイパスバッファアド
レスラッチ15の7ビットとアドレスレジスタ2中の出
力22の7ビット(ラインアドレス)であり、比較器5
6が1を出力しているという状態は、現在アクセスを行
おうとしているメモリアドレスのデータがバイパスバッ
ファ10内に存在する可能性があることを示している。
それゆえ、ANDゲート59の出力は、現在アクセスを
行おうとしているメモリアドレスのデータが、バイパス
バッファ10上に存在するかどうかを示している。ヒッ
ト判定論理55は、図5に示すように、比較器51、比
較器52、比較器53、比較器54の出力a〜dをもと
にして、ウェイ0ヒット、ウェイ1ヒット、ウェイ2ヒ
ット、ウェイ3ヒット、キャッシュミスの5つの判定結
果を出力するとともに、ANDゲート59の出力eをも
とにして、バイパスバッファ10上に存在するか存在し
ないかの判定結果を出力する。
いる。比較器51では、アドレスレジスタ2から得られ
る出力21の20ビットと、アドレスアレイ7から得ら
れるウェイ0のアドレスに関する情報である20ビット
が比較され、ヒット判定のためのビットが生成される。
比較器52、比較器53、比較器54においても、同様
に、アドレスレジスタ2の上位20ビットと、アドレス
アレイ7のウェイ1、2、3に相当する20ビットが比
較され、ヒット判定のためのビットが生成される。これ
らのヒット判定のためのビットは、ヒット判定論理55
の入力a〜dとなるとともに、それぞれANDゲート5
7の入力となる。各ANDゲート57の別の入力は、そ
れぞれバイパスバッファウェイラッチ16の出力中の該
当ウェイ信号であり、あるANDゲート57が1を出力
しているという状態は、当該ヒットしたウェイの内容が
バイパスバッファ10上に存在する可能性を示してい
る。4つのウェイに対応するこれらの4つの出力は、O
Rゲート58に入力される。ORゲート58の出力は、
比較器56の出力とともに、ANDゲート59の入力と
なる。比較器56の2つの入力はバイパスバッファアド
レスラッチ15の7ビットとアドレスレジスタ2中の出
力22の7ビット(ラインアドレス)であり、比較器5
6が1を出力しているという状態は、現在アクセスを行
おうとしているメモリアドレスのデータがバイパスバッ
ファ10内に存在する可能性があることを示している。
それゆえ、ANDゲート59の出力は、現在アクセスを
行おうとしているメモリアドレスのデータが、バイパス
バッファ10上に存在するかどうかを示している。ヒッ
ト判定論理55は、図5に示すように、比較器51、比
較器52、比較器53、比較器54の出力a〜dをもと
にして、ウェイ0ヒット、ウェイ1ヒット、ウェイ2ヒ
ット、ウェイ3ヒット、キャッシュミスの5つの判定結
果を出力するとともに、ANDゲート59の出力eをも
とにして、バイパスバッファ10上に存在するか存在し
ないかの判定結果を出力する。
【0019】以下、本実施例1の動作を説明する。動作
としては、リードアクセスでキャッシュヒットしたとき
の動作、ライトアクセスでキャッシュヒットしたときの
動作、および、リードアクセスもしくはライトアクセス
がキャッシュミスしたときの動作がある。
としては、リードアクセスでキャッシュヒットしたとき
の動作、ライトアクセスでキャッシュヒットしたときの
動作、および、リードアクセスもしくはライトアクセス
がキャッシュミスしたときの動作がある。
【0020】最初に、リードアクセスでキャッシュヒッ
トしたときの動作について説明する。まず、演算処理装
置1は、アドレスレジスタ2に、リードアクセスを行い
たいメモリのアドレスを設定する。このアドレスレジス
タ2の第20ビットから第28ビットの出力23は、各
アドレス指定回路3に入力される。このとき、アドレス
指定回路3のセレクタ32、セレクタ36(図3)は、
入力値23をそのまま出力するように制御されている。
この出力をもとにして、アドレスデコーダ4がメモリマ
ット5をアクセスするための信号を作成し、メモリマッ
ト5は、それに対応するセルの内容を出力する(図
4)。この一連の動作は、4つのウェイすべてについて
同様に行われる。
トしたときの動作について説明する。まず、演算処理装
置1は、アドレスレジスタ2に、リードアクセスを行い
たいメモリのアドレスを設定する。このアドレスレジス
タ2の第20ビットから第28ビットの出力23は、各
アドレス指定回路3に入力される。このとき、アドレス
指定回路3のセレクタ32、セレクタ36(図3)は、
入力値23をそのまま出力するように制御されている。
この出力をもとにして、アドレスデコーダ4がメモリマ
ット5をアクセスするための信号を作成し、メモリマッ
ト5は、それに対応するセルの内容を出力する(図
4)。この一連の動作は、4つのウェイすべてについて
同様に行われる。
【0021】一方、アドレスレジスタ2の第20ビット
から第26ビットの出力22は、アドレスアレイ7、ウ
ェイ参照履歴メモリ17及びヒット判定回路8に送付さ
れ、さらにヒット判定回路8にはアドレスレジスタ2の
第0ビットから第19ビットの出力21も送付される。
アドレスアレイ7からは、入力値22に対応するライン
に登録されている20ビットのアドレスが4ウェイ分、
合計80ビットの出力が行なわれる。ヒット判定回路8
は、このアドレスアレイ7からの出力と、アドレスレジ
スタ2の出力21をもとにして、メモリマット5のヒッ
トウェイ、バイパスバッファ10のヒット判定を行う
(図5)。キャッシュヒットの場合、セレクタ19はヒ
ット判定回路8の出力側を選択するように制御され、そ
の結果、セレクタ9は、ヒット判定回路8の判定結果を
もとにして、メモリマット5の4つのウェイのなかか
ら、ヒットしたウェイのデータを選び出して出力する。
このデータは、出力セレクタ13を経由して、演算処理
装置1に供給される。また、ヒット判定回路8の判定結
果をもとに、ウェイ参照履歴メモリ17の該当ラインの
ウェイ参照履歴情報が更新される。なお、ヒット判定回
路8で、所望のデータがバイパスバッファ10上に存在
すると判定された場合は、バイパスバッファ10がその
データを出力し、出力セレクタ13をバイパスバッファ
側に制御することで、所望のデータが演算処理装置1に
供給される。
から第26ビットの出力22は、アドレスアレイ7、ウ
ェイ参照履歴メモリ17及びヒット判定回路8に送付さ
れ、さらにヒット判定回路8にはアドレスレジスタ2の
第0ビットから第19ビットの出力21も送付される。
アドレスアレイ7からは、入力値22に対応するライン
に登録されている20ビットのアドレスが4ウェイ分、
合計80ビットの出力が行なわれる。ヒット判定回路8
は、このアドレスアレイ7からの出力と、アドレスレジ
スタ2の出力21をもとにして、メモリマット5のヒッ
トウェイ、バイパスバッファ10のヒット判定を行う
(図5)。キャッシュヒットの場合、セレクタ19はヒ
ット判定回路8の出力側を選択するように制御され、そ
の結果、セレクタ9は、ヒット判定回路8の判定結果を
もとにして、メモリマット5の4つのウェイのなかか
ら、ヒットしたウェイのデータを選び出して出力する。
このデータは、出力セレクタ13を経由して、演算処理
装置1に供給される。また、ヒット判定回路8の判定結
果をもとに、ウェイ参照履歴メモリ17の該当ラインの
ウェイ参照履歴情報が更新される。なお、ヒット判定回
路8で、所望のデータがバイパスバッファ10上に存在
すると判定された場合は、バイパスバッファ10がその
データを出力し、出力セレクタ13をバイパスバッファ
側に制御することで、所望のデータが演算処理装置1に
供給される。
【0022】次に、ライトアクセスでキャッシュヒット
したときの動作について説明する。まず、演算処理装置
1は、アドレスレジスタ2に、ライトアクセスを行いた
いメモリアドレスを設定する。それとともに、演算処理
装置1は、キャッシュメモリにストアすべきデータを出
力し、入力セレクタ12を、演算処理装置1からのデー
タを選択するように設定する。アドレスレジスタ2の出
力23は各アドレス指定回路3に入力される。このと
き、リードアクセスと同様に、アドレス指定回路3のセ
レクタ32、セレクタ36は入力値23をそのまま出力
するように制御され、この出力をもとにして、アドレス
デコーダ4が、メモリマット5をアクセスするための信
号を作成する。この一連の動作は、4つのウェイすべて
について同様に行われる。
したときの動作について説明する。まず、演算処理装置
1は、アドレスレジスタ2に、ライトアクセスを行いた
いメモリアドレスを設定する。それとともに、演算処理
装置1は、キャッシュメモリにストアすべきデータを出
力し、入力セレクタ12を、演算処理装置1からのデー
タを選択するように設定する。アドレスレジスタ2の出
力23は各アドレス指定回路3に入力される。このと
き、リードアクセスと同様に、アドレス指定回路3のセ
レクタ32、セレクタ36は入力値23をそのまま出力
するように制御され、この出力をもとにして、アドレス
デコーダ4が、メモリマット5をアクセスするための信
号を作成する。この一連の動作は、4つのウェイすべて
について同様に行われる。
【0023】一方、アドレスレジスタ2の出力22は、
アドレスアレイ7、ウェイ参照履歴メモリ17及びヒッ
ト判定回路8に送付され、さらにヒット判定回路8には
アドレスレジスタ2の出力21も送付される。アドレス
アレイ7からは、入力値22に対応するラインに登録さ
れている20ビットのアドレスが4ウェイ分、合計80
ビットの出力が行なわれる。ヒット判定回路8は、この
アドレスアレイ7からの出力と、アドレスレジスタ2の
出力21をもとにして、メモリマット5のヒットウェ
イ、バイパスバッファ10のビット判定を行う。この判
定結果をもとにして、キャッシュヒットの場合、ヒット
ウェイのメモリマット5に対して入力セレクタ12の出
力データの書き込みがおこなわれる。また、ヒット判定
回路8の判定結果をもとに、ウェイ参照履歴メモリ17
が更新される。なお、ヒット判定回路8で、書き込みを
行いたいアドレスのデータがバイパスバッファ10上に
存在すると判定された場合は、演算処理装置1の出力を
バイパスバッファ10の所定のワードに対して書き込み
を行う。
アドレスアレイ7、ウェイ参照履歴メモリ17及びヒッ
ト判定回路8に送付され、さらにヒット判定回路8には
アドレスレジスタ2の出力21も送付される。アドレス
アレイ7からは、入力値22に対応するラインに登録さ
れている20ビットのアドレスが4ウェイ分、合計80
ビットの出力が行なわれる。ヒット判定回路8は、この
アドレスアレイ7からの出力と、アドレスレジスタ2の
出力21をもとにして、メモリマット5のヒットウェ
イ、バイパスバッファ10のビット判定を行う。この判
定結果をもとにして、キャッシュヒットの場合、ヒット
ウェイのメモリマット5に対して入力セレクタ12の出
力データの書き込みがおこなわれる。また、ヒット判定
回路8の判定結果をもとに、ウェイ参照履歴メモリ17
が更新される。なお、ヒット判定回路8で、書き込みを
行いたいアドレスのデータがバイパスバッファ10上に
存在すると判定された場合は、演算処理装置1の出力を
バイパスバッファ10の所定のワードに対して書き込み
を行う。
【0024】次に、リードアクセスもしくはライトアク
セスがキャッシュミスしたときの動作について説明す
る。本実施例の場合、キャッシュミス時の入れ替え動作
において、今回のキャッシュミスに伴うメモリマット5
からの1ライン分のコピーアウト動作と前回のキャッシ
ュミスで主記憶装置14からバイパスバッファ10に転
送されている1ライン分のメモリマット5へのコピーイ
ン動作が、相異なるウェイで並行して行われる。
セスがキャッシュミスしたときの動作について説明す
る。本実施例の場合、キャッシュミス時の入れ替え動作
において、今回のキャッシュミスに伴うメモリマット5
からの1ライン分のコピーアウト動作と前回のキャッシ
ュミスで主記憶装置14からバイパスバッファ10に転
送されている1ライン分のメモリマット5へのコピーイ
ン動作が、相異なるウェイで並行して行われる。
【0025】図6に、本実施例のキャッシュ入れ替え動
作の概念図を示す。この例では、前回のキャッシュミス
時に吐き出してすきまの空いていたウェイ0のラインに
バイパスバッファ10の内容が書き込まれ、これと並行
して今回のキャッシュミスにより、ウェイ1のラインの
内容が吐き出される。バイパスバッファ10の内容が書
込まれるべきライン(図6ではラインi)はバイパスバ
ッファアドレスラッチ15で示され、そのウェイ(図6
ではウェイ0)はバイパスバッファウェイラッチ16で
示される。今回のキャッシュで吐き出し(コピーアウ
ト)の対象とすべきウェイ(図6ではウェイ1)は、こ
のバイパスバッファウェイラッチ16で示されるウェイ
以外から決定すればよい。これを行うのがコピーアウト
ウェイ判定回路18である。
作の概念図を示す。この例では、前回のキャッシュミス
時に吐き出してすきまの空いていたウェイ0のラインに
バイパスバッファ10の内容が書き込まれ、これと並行
して今回のキャッシュミスにより、ウェイ1のラインの
内容が吐き出される。バイパスバッファ10の内容が書
込まれるべきライン(図6ではラインi)はバイパスバ
ッファアドレスラッチ15で示され、そのウェイ(図6
ではウェイ0)はバイパスバッファウェイラッチ16で
示される。今回のキャッシュで吐き出し(コピーアウ
ト)の対象とすべきウェイ(図6ではウェイ1)は、こ
のバイパスバッファウェイラッチ16で示されるウェイ
以外から決定すればよい。これを行うのがコピーアウト
ウェイ判定回路18である。
【0026】以下の説明では、バイパスバッファ10か
らメモリマット5へのコピーイン動作とメモリマット5
からのコピーアウト動作は、1ライン分をセル単位すな
わちダブルワード単位で4回に分けて行われるとする。
このコピーイン/コピーアウト動作後、今回のキャッシ
ュミスでキュッシュメモリに書き込むべき内容が、主記
憶装置14からバイパスバッファ10にライン転送され
て、次のキャッシュミス発生までバイパスバッファ10
上に記憶される。また、バイパスバッファアドレスラッ
チ15とバイパスバッファウェイラッチ16の値は、今
回のコピーアウト動作ですきまの空いたライン、ウェイ
(図6の例ではラインj、ウェイ1)に更新される。こ
の結果、次のキャッシュミス発生時、バイパスバッファ
10の内容が、本来書き込まれるべきウェイ1のライン
jに書き込まれることになる。
らメモリマット5へのコピーイン動作とメモリマット5
からのコピーアウト動作は、1ライン分をセル単位すな
わちダブルワード単位で4回に分けて行われるとする。
このコピーイン/コピーアウト動作後、今回のキャッシ
ュミスでキュッシュメモリに書き込むべき内容が、主記
憶装置14からバイパスバッファ10にライン転送され
て、次のキャッシュミス発生までバイパスバッファ10
上に記憶される。また、バイパスバッファアドレスラッ
チ15とバイパスバッファウェイラッチ16の値は、今
回のコピーアウト動作ですきまの空いたライン、ウェイ
(図6の例ではラインj、ウェイ1)に更新される。こ
の結果、次のキャッシュミス発生時、バイパスバッファ
10の内容が、本来書き込まれるべきウェイ1のライン
jに書き込まれることになる。
【0027】図7は、本実施例のキャッシュ入れ替え動
作をタイムチャート的に説明したものである。なお、図
7においては、Aというアドレスに対するリードアクセ
スを行おうとしたが、それがキャッシュ上に存在せず、
そのために入れ替え動作を行わなければならない場合を
仮定している。また、入れ替え動作は、図6と同様にウ
ェイ1のラインがコピーアウトされ、ウェイ0のライン
にバイパスバッファ10の内容がコピーインされる場合
を例にとっている。さらに、バイパスバッファ10の内
容がコピーインされるべきアドレス(ラインアドレス)
はBとしている。他のアドレスでキャッシュミスが発生
した場合、他のウェイがコピーイン、コピーアウトされ
る場合も全く同様な動作を行えばよい。また、ライトア
クセスでミスが発生した場合も、入れ替え動作に関して
は全く同一の処理を行えばよい。
作をタイムチャート的に説明したものである。なお、図
7においては、Aというアドレスに対するリードアクセ
スを行おうとしたが、それがキャッシュ上に存在せず、
そのために入れ替え動作を行わなければならない場合を
仮定している。また、入れ替え動作は、図6と同様にウ
ェイ1のラインがコピーアウトされ、ウェイ0のライン
にバイパスバッファ10の内容がコピーインされる場合
を例にとっている。さらに、バイパスバッファ10の内
容がコピーインされるべきアドレス(ラインアドレス)
はBとしている。他のアドレスでキャッシュミスが発生
した場合、他のウェイがコピーイン、コピーアウトされ
る場合も全く同様な動作を行えばよい。また、ライトア
クセスでミスが発生した場合も、入れ替え動作に関して
は全く同一の処理を行えばよい。
【0028】図7では、サイクルt0において、キャッ
シュアクセスが試みられて、キャッシュミスが判明し、
サイクルt1からt4で、ダブルワード単位に入れ替え
動作が4回繰り返され、その後、サイクルt5で通常の
キャッシュアクセスが行われる。以下、各サイクルでの
動作を説明する。
シュアクセスが試みられて、キャッシュミスが判明し、
サイクルt1からt4で、ダブルワード単位に入れ替え
動作が4回繰り返され、その後、サイクルt5で通常の
キャッシュアクセスが行われる。以下、各サイクルでの
動作を説明する。
【0029】〈サイクルt0〉まず、アドレスレジスタ
2に、アクセスを行いたいキャッシュメモリのアドレス
値Aが設定される。この結果、アドレス指定回路3の出
力に、メモリマット5をアクセスするためのアドレス値
A′が現れる。このアドレス値A′は、アドレス値Aの
第20ビットから第28ビットまでを、その第0ビット
から第8ビットの内容とするものであり、アドレス指定
回路3では、アドレスレジスタ2の出力23をそのまま
出力するように、セレクタ32とセレクタ36の制御が
行われる(図3)。このアドレス指定回路3からの出力
A′をもとにして、アドレスデコーダ4がメモリマット
5をアクセスするための信号を作成し、メモリマット5
は、それに対応するセルの内容を出力する(図4)。こ
の一連の動作は、4つのウェイすべてについて同じよう
に行われる。一方、アドレスレジスタ2の出力22は、
アドレスアレイ7、ウェイ参照履歴メモリ17及びヒッ
ト判定回路8にも送付され、さらにヒット判定回路8に
はアドレスレジスタ2の出力21も送付される。アドレ
スアレイ7からは、入力値22に対応するラインに登録
されている20ビットのアドレスが4ウェイ分、合計8
0ビットの出力が行なわれる。ヒット判定回路8は、こ
のアドレスアレイ7からの出力と、アドレスレジスタ2
の出力21をもとにして、ヒット判定を行い(図5)、
その結果、キャッシュミスが判定される。
2に、アクセスを行いたいキャッシュメモリのアドレス
値Aが設定される。この結果、アドレス指定回路3の出
力に、メモリマット5をアクセスするためのアドレス値
A′が現れる。このアドレス値A′は、アドレス値Aの
第20ビットから第28ビットまでを、その第0ビット
から第8ビットの内容とするものであり、アドレス指定
回路3では、アドレスレジスタ2の出力23をそのまま
出力するように、セレクタ32とセレクタ36の制御が
行われる(図3)。このアドレス指定回路3からの出力
A′をもとにして、アドレスデコーダ4がメモリマット
5をアクセスするための信号を作成し、メモリマット5
は、それに対応するセルの内容を出力する(図4)。こ
の一連の動作は、4つのウェイすべてについて同じよう
に行われる。一方、アドレスレジスタ2の出力22は、
アドレスアレイ7、ウェイ参照履歴メモリ17及びヒッ
ト判定回路8にも送付され、さらにヒット判定回路8に
はアドレスレジスタ2の出力21も送付される。アドレ
スアレイ7からは、入力値22に対応するラインに登録
されている20ビットのアドレスが4ウェイ分、合計8
0ビットの出力が行なわれる。ヒット判定回路8は、こ
のアドレスアレイ7からの出力と、アドレスレジスタ2
の出力21をもとにして、ヒット判定を行い(図5)、
その結果、キャッシュミスが判定される。
【0030】キャッシュミスであることが判明すると、
コピーアウトするウェイの決定を行う必要がある。本実
施例においては、コピーアウトウェイ判定回路18が、
ウェイ参照履歴メモリ17とバイパスバッファウェイラ
ッチ16の出力をもとにして、今回バイパスバッファ1
0からコピーインしなければならないウェイ(前回のキ
ャッシュミスでコピーアウトしたウェイ、この例ではウ
ェイ0)以外からコピーアウトウェイを選択するという
制限を満たしつつ決定し、そのようにして決定されたウ
ェイ(この例ではウェイ1)を、コピーアウトウェイ判
定回路18の出力とする。この選択方法としては、任意
の方法をとることができるが、例えば、よく知られてい
るリーストリーセントリユーズド法に対して、コピーア
ウトしたいウェイが今回コピーインするウェイと一致し
たならば2番目に最近参照されていないウェイをコピー
アウト対象とするという変更を行った方法が考えられ
る。その後、サイクルt1〜t4の一連の入れ替え動作
が開始する。
コピーアウトするウェイの決定を行う必要がある。本実
施例においては、コピーアウトウェイ判定回路18が、
ウェイ参照履歴メモリ17とバイパスバッファウェイラ
ッチ16の出力をもとにして、今回バイパスバッファ1
0からコピーインしなければならないウェイ(前回のキ
ャッシュミスでコピーアウトしたウェイ、この例ではウ
ェイ0)以外からコピーアウトウェイを選択するという
制限を満たしつつ決定し、そのようにして決定されたウ
ェイ(この例ではウェイ1)を、コピーアウトウェイ判
定回路18の出力とする。この選択方法としては、任意
の方法をとることができるが、例えば、よく知られてい
るリーストリーセントリユーズド法に対して、コピーア
ウトしたいウェイが今回コピーインするウェイと一致し
たならば2番目に最近参照されていないウェイをコピー
アウト対象とするという変更を行った方法が考えられ
る。その後、サイクルt1〜t4の一連の入れ替え動作
が開始する。
【0031】〈サイクルt1〉まず、入力セレクタ1
2、セレクタ19、メモリマット出力セレクタ9を制御
する。入力セレクタ12はバイパスバッファ10側を選
択し、セレクタ19はコピーアウトウェイ判定回路18
側を選択する。メモリマット出力セレクタ9は、本例で
は、コピーアウトウェイ判定回路18がウェイ1を出力
しているため、今回コピーアウトすべきウェイ1のメモ
リマット5を選択することになる。なお、セレクタ9お
よびセレクタ12の設定は、一連の入れ替え動作が完了
するサイクルt4まで継続する。また、バイパスバッフ
ァウェイラッチ16には、今回コピーアウトされるウェ
イ1が記憶される。
2、セレクタ19、メモリマット出力セレクタ9を制御
する。入力セレクタ12はバイパスバッファ10側を選
択し、セレクタ19はコピーアウトウェイ判定回路18
側を選択する。メモリマット出力セレクタ9は、本例で
は、コピーアウトウェイ判定回路18がウェイ1を出力
しているため、今回コピーアウトすべきウェイ1のメモ
リマット5を選択することになる。なお、セレクタ9お
よびセレクタ12の設定は、一連の入れ替え動作が完了
するサイクルt4まで継続する。また、バイパスバッフ
ァウェイラッチ16には、今回コピーアウトされるウェ
イ1が記憶される。
【0032】次に、コピーアウト対象となったウェイ1
のアドレス指定回路3におけるアドレスラッチ31(図
3)に、アドレスA″を記憶する。A″は、その第0ビ
ットから第6ビットまでの値がA′の第0ビットから第
6ビットまでの値と一致しており、その第7ビットと第
8ビットの値を0とした値である。
のアドレス指定回路3におけるアドレスラッチ31(図
3)に、アドレスA″を記憶する。A″は、その第0ビ
ットから第6ビットまでの値がA′の第0ビットから第
6ビットまでの値と一致しており、その第7ビットと第
8ビットの値を0とした値である。
【0033】次に、アドレスレジスタ2に、バイパスバ
ッファ10の内容がコピーインされるべきアドレスBが
バイパスバッファアドレスラッチ15の値をもとに設定
され、バイパスバッファアドレスラッチ15には、アド
レスレジスタ2をもとにして、新しい値が書き込まれ
る。ここで、アドレスレジスタ2に設定されるアドレス
値Bは、その第0ビットから第19ビットまでは値0で
あり、その第20ビットから第26ビットまでにバイパ
スバッファアドレスラッチ15のそれまでの内容が入
り、その第27ビットから第29ビットまでは値0をと
る。即ち、アドレスレジスタ2は、実質的に有効なビッ
ト数は第20ビットから第26ビットの7ビットである
が、このアドレスはアドレスアレイ7およびアドレス指
定回路3でのみ使用されるので構わない。一方、バイパ
スバッファアドレスラッチ15に新しく書き込まれるの
は、アドレスレジスタ2にそれまで設定されていたアド
レスAの第20ビットから第26ビットまでの7ビット
である。
ッファ10の内容がコピーインされるべきアドレスBが
バイパスバッファアドレスラッチ15の値をもとに設定
され、バイパスバッファアドレスラッチ15には、アド
レスレジスタ2をもとにして、新しい値が書き込まれ
る。ここで、アドレスレジスタ2に設定されるアドレス
値Bは、その第0ビットから第19ビットまでは値0で
あり、その第20ビットから第26ビットまでにバイパ
スバッファアドレスラッチ15のそれまでの内容が入
り、その第27ビットから第29ビットまでは値0をと
る。即ち、アドレスレジスタ2は、実質的に有効なビッ
ト数は第20ビットから第26ビットの7ビットである
が、このアドレスはアドレスアレイ7およびアドレス指
定回路3でのみ使用されるので構わない。一方、バイパ
スバッファアドレスラッチ15に新しく書き込まれるの
は、アドレスレジスタ2にそれまで設定されていたアド
レスAの第20ビットから第26ビットまでの7ビット
である。
【0034】次に、コピーイン/コピーアウト対象の各
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する
(図3)。即ち、コピーインすべきウェイ0のアドレス
指定回路3においては、セレクタ32はアドレスレジス
タ2の出力を選択し、セレクタ36はセレクタ32の出
力を選択する。一方、コピーアウトすべきウェイ1のア
ドレス指定回路3においては、セレクタ32はアドレス
ラッチ31の出力を選択し、セレクタ36はセレクタ3
2の出力を選択する。これによって、コピーイン/コピ
ーアウト対象の二つのアドレス指定回路3の出力値は、
ウェイ0側はアドレス値Bに、ウェイ1側はアドレス値
A″にそれぞれ設定される。
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する
(図3)。即ち、コピーインすべきウェイ0のアドレス
指定回路3においては、セレクタ32はアドレスレジス
タ2の出力を選択し、セレクタ36はセレクタ32の出
力を選択する。一方、コピーアウトすべきウェイ1のア
ドレス指定回路3においては、セレクタ32はアドレス
ラッチ31の出力を選択し、セレクタ36はセレクタ3
2の出力を選択する。これによって、コピーイン/コピ
ーアウト対象の二つのアドレス指定回路3の出力値は、
ウェイ0側はアドレス値Bに、ウェイ1側はアドレス値
A″にそれぞれ設定される。
【0035】この二つのアドレス指定回路3の出力値を
もとにして、ウェイ0、ウェイ1のアドレスデコーダ4
がそれぞれ動作する。このデコーダ出力をもとにして、
ウェイ0のメモリマット5には、バイパスバッファ10
の第0ダブルワードの内容(b0)が入力セレクタ12
を介して書き込まれ、ウェイ1のメモリマット5から
は、コピーアウトバッファ11に書き込まれるべき第0
ダブルワードの内容(c0)が読み出され、メモリマッ
ト出力セレクタ9の出力となる。
もとにして、ウェイ0、ウェイ1のアドレスデコーダ4
がそれぞれ動作する。このデコーダ出力をもとにして、
ウェイ0のメモリマット5には、バイパスバッファ10
の第0ダブルワードの内容(b0)が入力セレクタ12
を介して書き込まれ、ウェイ1のメモリマット5から
は、コピーアウトバッファ11に書き込まれるべき第0
ダブルワードの内容(c0)が読み出され、メモリマッ
ト出力セレクタ9の出力となる。
【0036】〈サイクルt2〉まず、コピーインすべき
ウェイ0のアドレス指定回路3のアドレスラッチ31
に、アドレス値Bが記憶される。また、コピーアウトバ
ッファ11の第0ダブルワードに、サイクルt1で出力
されたセレクタ9の出力データ(c0)を記憶する。
ウェイ0のアドレス指定回路3のアドレスラッチ31
に、アドレス値Bが記憶される。また、コピーアウトバ
ッファ11の第0ダブルワードに、サイクルt1で出力
されたセレクタ9の出力データ(c0)を記憶する。
【0037】次に、コピーイン/コピーアウト対象の各
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器33の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器33の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+1に、ウェイ1側はア
ドレス値A″+1に設定される。
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器33の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器33の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+1に、ウェイ1側はア
ドレス値A″+1に設定される。
【0038】この二つのアドレス指定回路3の出力値を
もとにして、対応するアドレスデコーダ4が動作する。
このデコーダ出力をもとに、ウェイ0のメモリマット5
にはバイパスバッファ10の第1ダブルワードの内容
(b1)が書き込まれ、ウェイ1のメモリマット5から
はコピーアウトバッファ11に書き込まれるべき第1ダ
ブルワードの内容(c1)が読みだされ、セレクタ9の
出力となる。
もとにして、対応するアドレスデコーダ4が動作する。
このデコーダ出力をもとに、ウェイ0のメモリマット5
にはバイパスバッファ10の第1ダブルワードの内容
(b1)が書き込まれ、ウェイ1のメモリマット5から
はコピーアウトバッファ11に書き込まれるべき第1ダ
ブルワードの内容(c1)が読みだされ、セレクタ9の
出力となる。
【0039】〈サイクルt3〉まず、コピーアウトバッ
ファ11の第1ダブルワードに、サイクルt2で出力さ
れたセレクタ9の出力データを記憶する。
ファ11の第1ダブルワードに、サイクルt2で出力さ
れたセレクタ9の出力データを記憶する。
【0040】次に、コピーイン/コピーアウト対象の各
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器34の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器34の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+2に、ウェイ1側はア
ドレス値A″+2に設定される。
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器34の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器34の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+2に、ウェイ1側はア
ドレス値A″+2に設定される。
【0041】この二つのアドレス指定回路3の出力値を
もとにして、アドレスデコーダ4が動作する。このデコ
ーダ出力をもとに、ウェイ0のメモリマット5にはバイ
パスバッファ10の第2ダブルワードの内容(b2)が
書き込まれ、ウェイ1のメモリマット5からはコピーア
ウトバッファ11に書き込まれるべき第2ダブルワード
の内容(c2)が読みだされ、セレクタ9の出力とな
る。
もとにして、アドレスデコーダ4が動作する。このデコ
ーダ出力をもとに、ウェイ0のメモリマット5にはバイ
パスバッファ10の第2ダブルワードの内容(b2)が
書き込まれ、ウェイ1のメモリマット5からはコピーア
ウトバッファ11に書き込まれるべき第2ダブルワード
の内容(c2)が読みだされ、セレクタ9の出力とな
る。
【0042】〈サイクルt4〉まず、コピーアウトバッ
ファ11の第2ダブルワードに、サイクルt3で出力さ
れたセレクタ9の出力データ(c2)を記憶する。
ファ11の第2ダブルワードに、サイクルt3で出力さ
れたセレクタ9の出力データ(c2)を記憶する。
【0043】次に、コピーイン/コピーアウト対象の各
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器35の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器35の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+3に、ウェイ1側はア
ドレス値A″+3に設定される。
ウェイのアドレス指定回路3の出力値を設定するため
に、それぞれセレクタ32、セレクタ36を制御する。
即ち、コピーインすべきウェイ0のアドレス指定回路3
においては、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器35の出力を選択す
る。コピーアウトすべきウェイ1のアドレス指定回路3
においても、セレクタ32はアドレスラッチ31の出力
を選択し、セレクタ36は加算器35の出力を選択す
る。これによって、二つのアドレス指定回路3の出力値
は、ウェイ0側はアドレス値B+3に、ウェイ1側はア
ドレス値A″+3に設定される。
【0044】この二つのアドレス指定回路3の出力値を
もとにして、対応するアドレスデコーダ4が動作する。
このデコーダ出力をもとに、ウェイ0のメモリマット5
にはバイパスバッファ10の第3ダブルワードの内容
(b3)が書き込まれ、ウェイ1のメモリマット5から
はコピーアウトバッファ11に書き込まれるべき第3ダ
ブルワードの内容(c3)が読みだされ、セレクタ9の
出力となる。
もとにして、対応するアドレスデコーダ4が動作する。
このデコーダ出力をもとに、ウェイ0のメモリマット5
にはバイパスバッファ10の第3ダブルワードの内容
(b3)が書き込まれ、ウェイ1のメモリマット5から
はコピーアウトバッファ11に書き込まれるべき第3ダ
ブルワードの内容(c3)が読みだされ、セレクタ9の
出力となる。
【0045】〈サイクルt5〉コピーアウトバッファ1
1の第3ダブルワードに、サイクルt4で出力されたセ
レクタ9の出力データ(c3)を記憶する。また、セレ
クタ12を演算処理装置1の出力の側に切り替える。こ
れで、別のアドレスによる通常のキャッシュアクセスを
行うことができるようになる。
1の第3ダブルワードに、サイクルt4で出力されたセ
レクタ9の出力データ(c3)を記憶する。また、セレ
クタ12を演算処理装置1の出力の側に切り替える。こ
れで、別のアドレスによる通常のキャッシュアクセスを
行うことができるようになる。
【0046】また、このt5以降で、主記憶装置14、
バイパスバッファ10、コピーアウトバッファ11の間
でデータの交換を行えばよい。即ち、主記憶装置14か
らバイパスバッファ10に、アドレスAの内容を含む1
ライン分のデータをライン転送(ムーブイン)し、その
後、コピーアウトバッファ11から主記憶装置14に同
じく1ライン分のデータをコピーアウトする。当初のキ
ャッシュアクセス時に、アドレスAで指定された所望の
データは、主記憶装置14から読みだし、それがバイパ
スバッファ10に到着した時点で、出力セレクタ13を
制御することで、演算処理装置1に供給することができ
る。なお、バイパスバッファ10にライン転送されたデ
ータに対応するアドレスAは、アドレスアレイ7のウェ
イ1のラインに登録すればよい。
バイパスバッファ10、コピーアウトバッファ11の間
でデータの交換を行えばよい。即ち、主記憶装置14か
らバイパスバッファ10に、アドレスAの内容を含む1
ライン分のデータをライン転送(ムーブイン)し、その
後、コピーアウトバッファ11から主記憶装置14に同
じく1ライン分のデータをコピーアウトする。当初のキ
ャッシュアクセス時に、アドレスAで指定された所望の
データは、主記憶装置14から読みだし、それがバイパ
スバッファ10に到着した時点で、出力セレクタ13を
制御することで、演算処理装置1に供給することができ
る。なお、バイパスバッファ10にライン転送されたデ
ータに対応するアドレスAは、アドレスアレイ7のウェ
イ1のラインに登録すればよい。
【0047】以上、実施例の説明では、第0ダブルワー
ド、第1ダブルワード、第2ダブルワード、第3ダブル
ワードの順序でキャッシュメモリの入れ替え動作をおこ
なうとしたが、勿論、これは本発明の実施に必須の事項
ではない。
ド、第1ダブルワード、第2ダブルワード、第3ダブル
ワードの順序でキャッシュメモリの入れ替え動作をおこ
なうとしたが、勿論、これは本発明の実施に必須の事項
ではない。
【0048】〔実施例2〕これは、主記憶装置とキャッ
シュメモリの間にバイパスバッファ、コピーアウトバッ
ファを有することは実施例1と同様であるが、キャッシ
ュメモリのウェイをグループ化し、各クループ(群)ご
とにアドレス指定回路を設けたものである。
シュメモリの間にバイパスバッファ、コピーアウトバッ
ファを有することは実施例1と同様であるが、キャッシ
ュメモリのウェイをグループ化し、各クループ(群)ご
とにアドレス指定回路を設けたものである。
【0049】図8は、本実施例のシステム構成を示した
もので、キャッシュメモリのウェイ0とウェイ1がウェ
イ群0を構成しており、また、ウェイ2とウェイ3がウ
ェイ群1を構成している。アドレス指定回路3は、ウェ
イ群の数だけ存在する(図8では二つ)。これ以外の構
成は図1と基本的に同じである。
もので、キャッシュメモリのウェイ0とウェイ1がウェ
イ群0を構成しており、また、ウェイ2とウェイ3がウ
ェイ群1を構成している。アドレス指定回路3は、ウェ
イ群の数だけ存在する(図8では二つ)。これ以外の構
成は図1と基本的に同じである。
【0050】リードアクセス時とライトアクセス時の動
作は実施例1とまったく同様である。キャッシュミス時
の動作も、コピーアウトウェイ決定に際しての制限以外
は、実施例1と同様である。コピーアウトウェイ決定に
際しての制限は、アドレス指定回路3がウェイ群対応で
あるため、今回コピーインするウェイ(前回のキャッシ
ュミスでコピーアウトしたウェイ)を含むウェイ群以外
からコピーアウトウェイを選択するという制限に変更を
受ける。本実施例のような構成をとることで、アドレス
指定回路3の物量を削減することができる。
作は実施例1とまったく同様である。キャッシュミス時
の動作も、コピーアウトウェイ決定に際しての制限以外
は、実施例1と同様である。コピーアウトウェイ決定に
際しての制限は、アドレス指定回路3がウェイ群対応で
あるため、今回コピーインするウェイ(前回のキャッシ
ュミスでコピーアウトしたウェイ)を含むウェイ群以外
からコピーアウトウェイを選択するという制限に変更を
受ける。本実施例のような構成をとることで、アドレス
指定回路3の物量を削減することができる。
【0051】〔実施例3〕これは、主記憶装置とキャッ
シュメモリの間にバイパスバッファ、コピーアウトバッ
ファが存在しない場合の実施例である。
シュメモリの間にバイパスバッファ、コピーアウトバッ
ファが存在しない場合の実施例である。
【0052】図9は、本実施例のシステム構成を示した
もので、図1からの主な変更点は、バイパスバッファ1
0とコピーアウトバッファ11が削除され、それに伴っ
てバイパスバッファアドレスラッチ15、バイパスバッ
ファウェイラッチ16、出力セレクタ13なども削除さ
れ、かわってキャッシュ有効位置記録メモリ20が追加
されていることである。また、アドレス指定回路3は1
個に削減されて、0〜3ウェイの4つのメモリマット5
に共通に用いられている。
もので、図1からの主な変更点は、バイパスバッファ1
0とコピーアウトバッファ11が削除され、それに伴っ
てバイパスバッファアドレスラッチ15、バイパスバッ
ファウェイラッチ16、出力セレクタ13なども削除さ
れ、かわってキャッシュ有効位置記録メモリ20が追加
されていることである。また、アドレス指定回路3は1
個に削減されて、0〜3ウェイの4つのメモリマット5
に共通に用いられている。
【0053】図10は、キャッシュメモリを構成するメ
モリマット5の状態とキャッシュ有効位置記録メモリ2
0の内容の関係を示したものである。本実施例では、キ
ャッシュミス時の入れ替え動作において、バイパスバッ
ファを使用しないでキャッシュメモリの同時読み書きを
実現するために、キャッシュメモリのライン(カラム)
ごとに空きウェイが存在するが、どのウェイが空きかは
ラインによって異なる。このキャッシュメモリのライン
ごとに、どのウェイがデータ有りで、どのウェイがデー
タ無し(空)かを記録しているのがキャッシュ有効位置
記録メモリ20である。図10(a)は、キャッシュメ
モリを構成しているウェイ0〜3の各メモリマット5の
状態の一例であり、この時、キャッシュ有効位置記録メ
モリ20の内容は図10(b)のようになる。ここで、
“1”は有効(データ有り)、“0”は無効(データ
無)を示す。
モリマット5の状態とキャッシュ有効位置記録メモリ2
0の内容の関係を示したものである。本実施例では、キ
ャッシュミス時の入れ替え動作において、バイパスバッ
ファを使用しないでキャッシュメモリの同時読み書きを
実現するために、キャッシュメモリのライン(カラム)
ごとに空きウェイが存在するが、どのウェイが空きかは
ラインによって異なる。このキャッシュメモリのライン
ごとに、どのウェイがデータ有りで、どのウェイがデー
タ無し(空)かを記録しているのがキャッシュ有効位置
記録メモリ20である。図10(a)は、キャッシュメ
モリを構成しているウェイ0〜3の各メモリマット5の
状態の一例であり、この時、キャッシュ有効位置記録メ
モリ20の内容は図10(b)のようになる。ここで、
“1”は有効(データ有り)、“0”は無効(データ
無)を示す。
【0054】図9の実施例のリードアクセス動作、ライ
トアクセス動作は、図1のバイパスバッファ10とコピ
ーアウトバッファ11が存在する場合と基本的に同じで
あるが、キャッシュ有効位置記録メモリ20の追加によ
って、ヒット判定回路8のヒット判定論理が若干変更さ
れる。
トアクセス動作は、図1のバイパスバッファ10とコピ
ーアウトバッファ11が存在する場合と基本的に同じで
あるが、キャッシュ有効位置記録メモリ20の追加によ
って、ヒット判定回路8のヒット判定論理が若干変更さ
れる。
【0055】図11は、本実施例の場合のヒット判定回
路8の詳細である。比較回路51〜54において、アド
レスレジスタ2からの出力21の20ビットとアドレス
アレイ7からのウェイ0〜3の登録アドレスの各20ビ
ットが比較され、該当ラインにおけるウェイ0〜3のヒ
ット判定のためのビットが生成されることは、図5の場
合と同様である。ただし、図11では、この比較回路5
1〜54の出力とキャッシュ有効位置記録メモリ20か
ら出力される該当ラインの各ウェイの状態信号とが、そ
れぞれウェイ対応にANDゲート1101〜1104の
入力となる。ヒット判定論理55では、このANDゲー
ト1101〜1104の出力a〜dをもとにしてウェイ
0〜3のヒット、キャッシュミスシステムを判定する。
路8の詳細である。比較回路51〜54において、アド
レスレジスタ2からの出力21の20ビットとアドレス
アレイ7からのウェイ0〜3の登録アドレスの各20ビ
ットが比較され、該当ラインにおけるウェイ0〜3のヒ
ット判定のためのビットが生成されることは、図5の場
合と同様である。ただし、図11では、この比較回路5
1〜54の出力とキャッシュ有効位置記録メモリ20か
ら出力される該当ラインの各ウェイの状態信号とが、そ
れぞれウェイ対応にANDゲート1101〜1104の
入力となる。ヒット判定論理55では、このANDゲー
ト1101〜1104の出力a〜dをもとにしてウェイ
0〜3のヒット、キャッシュミスシステムを判定する。
【0056】次に、本実施例におけるキャッシュミス時
の入れ替え動作の概要について説明する。図12は、本
実施例のキャッシュ入れ替え動作の概念図である。図6
との第1の相違点は、本実施例ではキャッシュメモリの
各ラインごとにすきま(空きウェイ)があるため、コピ
ーイン動作とコピーアウト動作のカラムアドレス(ライ
ンアドレス)は同一になることである。即ち、コピーイ
ン/コピーアウト動作は、ともに今回キャッシュミスし
たラインが対象である。第2の相違点は、この同一ライ
ンで、コピーアウトすべきウェイは、すきまのウェイ以
外から選択され、コピーイン動作は、すきまのウェイに
対して行われることである。図12の例は、ラインjで
キャッシュミスが判明し、該ラインjでそのとき空き状
態にあるウェイ2のメモリマット5に対して主記憶装置
14からのデータを書き込み(コピーイン)、これと並
行して、ウェイ1のメモリマット5の内容を読み出し
(コピーアウト)、主記憶装置14に吐き出すことを示
している。このコピーアウトにより、ウェイ1があらた
に空きウェイとなり、次に該ラインでキャッシュミスが
発生した場合には、このウェイ1がコピーインの対象と
なる。
の入れ替え動作の概要について説明する。図12は、本
実施例のキャッシュ入れ替え動作の概念図である。図6
との第1の相違点は、本実施例ではキャッシュメモリの
各ラインごとにすきま(空きウェイ)があるため、コピ
ーイン動作とコピーアウト動作のカラムアドレス(ライ
ンアドレス)は同一になることである。即ち、コピーイ
ン/コピーアウト動作は、ともに今回キャッシュミスし
たラインが対象である。第2の相違点は、この同一ライ
ンで、コピーアウトすべきウェイは、すきまのウェイ以
外から選択され、コピーイン動作は、すきまのウェイに
対して行われることである。図12の例は、ラインjで
キャッシュミスが判明し、該ラインjでそのとき空き状
態にあるウェイ2のメモリマット5に対して主記憶装置
14からのデータを書き込み(コピーイン)、これと並
行して、ウェイ1のメモリマット5の内容を読み出し
(コピーアウト)、主記憶装置14に吐き出すことを示
している。このコピーアウトにより、ウェイ1があらた
に空きウェイとなり、次に該ラインでキャッシュミスが
発生した場合には、このウェイ1がコピーインの対象と
なる。
【0057】図9の構成において、アドレスレジスタ2
の出力22(ラインアドレス)は、アドレスアレイ7、
ヒット判定回路8、ウェイ参照履歴メモリ17とともに
キャッシュ有効位置記録メモリ20にも送付される。し
たがって、キャッシュミス時の入れ替え動作でコピーイ
ンすべきウェイは、アドレスレジスタ2の出力22でア
クセスされるキャッシュ有効位置記録メモリ20の内
容、すなわちキャッシュミスしたラインの内容が“0”
であるウェイを選ぶことで、一義的に決定される。ま
た、コピーアウトするウェイは、該アドレスレジスタ2
の出力22でアクセスされるウェイ参照履歴メモリ17
の内容とキャッシュ有効位置記録メモリ20の内容とを
コピーアウトウェイ決定回路18が読み込み、ウェイ参
照履歴メモリ17の内容をもとにして、キャッシュ有効
位置記録メモリ20の内容が“1”であるウェイの中か
ら選べばよい。この選択方法は、実施例1の場合と基本
的に同様である。なお、コピーアウトウェイ決定回路1
8は、このコピーアウトするウェイの選択後、キャッシ
ュ有効位置記録メモリ20の該当ラインの内容を更新す
る必要がある。
の出力22(ラインアドレス)は、アドレスアレイ7、
ヒット判定回路8、ウェイ参照履歴メモリ17とともに
キャッシュ有効位置記録メモリ20にも送付される。し
たがって、キャッシュミス時の入れ替え動作でコピーイ
ンすべきウェイは、アドレスレジスタ2の出力22でア
クセスされるキャッシュ有効位置記録メモリ20の内
容、すなわちキャッシュミスしたラインの内容が“0”
であるウェイを選ぶことで、一義的に決定される。ま
た、コピーアウトするウェイは、該アドレスレジスタ2
の出力22でアクセスされるウェイ参照履歴メモリ17
の内容とキャッシュ有効位置記録メモリ20の内容とを
コピーアウトウェイ決定回路18が読み込み、ウェイ参
照履歴メモリ17の内容をもとにして、キャッシュ有効
位置記録メモリ20の内容が“1”であるウェイの中か
ら選べばよい。この選択方法は、実施例1の場合と基本
的に同様である。なお、コピーアウトウェイ決定回路1
8は、このコピーアウトするウェイの選択後、キャッシ
ュ有効位置記録メモリ20の該当ラインの内容を更新す
る必要がある。
【0058】コピーイン/コピーアウト動作は、図7で
説明した実施例1の場合と基本的に同様であるが、コピ
ーイン動作とコピーアウト動作のカラムアドレス(ライ
ンアドレス)は同一であるため、アドレス指定回路3は
1個でよい。また、コピーイン/コピーアウトのデータ
転送は、いずれもキャッシュメモリと主記憶装置との間
で直接に実施される。なお、キャッシュメモリと主記憶
装置との間にコピーアウトバッファを設け、コピーアウ
ト動作は、実施例1の場合と同様にコピーアウトバッフ
ァに対して行い、その後、コピーアウトバッファから主
記憶装置に書き出すようにしてもよい。
説明した実施例1の場合と基本的に同様であるが、コピ
ーイン動作とコピーアウト動作のカラムアドレス(ライ
ンアドレス)は同一であるため、アドレス指定回路3は
1個でよい。また、コピーイン/コピーアウトのデータ
転送は、いずれもキャッシュメモリと主記憶装置との間
で直接に実施される。なお、キャッシュメモリと主記憶
装置との間にコピーアウトバッファを設け、コピーアウ
ト動作は、実施例1の場合と同様にコピーアウトバッフ
ァに対して行い、その後、コピーアウトバッファから主
記憶装置に書き出すようにしてもよい。
【0059】
【発明の効果】請求項1及び2の発明によれば、キャッ
シュミス時の入れ替え動作において、コピーアウト動作
とコピーイン動作が相異なるウェイで並行して行われる
ことにより、従来に比べてキャッシュミス時のオーバヘ
ッドを大幅に削減することが可能になる。
シュミス時の入れ替え動作において、コピーアウト動作
とコピーイン動作が相異なるウェイで並行して行われる
ことにより、従来に比べてキャッシュミス時のオーバヘ
ッドを大幅に削減することが可能になる。
【0060】また、請求項3及び4の発明によれば、キ
ャッシュメモリと主記憶などの上位階層メモリとの間に
バイパスバッファ、コピーアウトバッファを設け、キャ
ッシュミス時の入れ替え動作において、コピーアウトバ
ッファへのコピーアウト動作とバイ3パスバッファから
のコピーイン動作が相異なるウェイで並行して行われる
ことにより、キャッシュミス時のオーバヘッドを大幅に
削減できる効果に加えて、上位階層メモリではキャッシ
ュメモリと直接読み書きする必要がないため、上位階層
メモリの負担が軽減でき、また、上位階層メモリとコピ
ーアウトバッファあるいはバイパスバッファとの間のデ
ータ転送は同時である必要がないため、上位階層メモリ
の構成は同時読み書きにする必要はない。
ャッシュメモリと主記憶などの上位階層メモリとの間に
バイパスバッファ、コピーアウトバッファを設け、キャ
ッシュミス時の入れ替え動作において、コピーアウトバ
ッファへのコピーアウト動作とバイ3パスバッファから
のコピーイン動作が相異なるウェイで並行して行われる
ことにより、キャッシュミス時のオーバヘッドを大幅に
削減できる効果に加えて、上位階層メモリではキャッシ
ュメモリと直接読み書きする必要がないため、上位階層
メモリの負担が軽減でき、また、上位階層メモリとコピ
ーアウトバッファあるいはバイパスバッファとの間のデ
ータ転送は同時である必要がないため、上位階層メモリ
の構成は同時読み書きにする必要はない。
【図1】本発明の実施例1のシステム構成例を示した図
である。
である。
【図2】アドレスレジスタの詳細構成例を示した図であ
る。
る。
【図3】アドレス指定回路の詳細構成例を示した図であ
る。
る。
【図4】メモリマットの詳細構成例を示した図である。
【図5】ヒット判定回路の詳細構成例を示した図であ
る。
る。
【図6】実施例1のキャッシュ入れ替え動作の概念図で
ある。
ある。
【図7】実施例1のキャッシュ入れ替え動作例のタイム
チャート図である。
チャート図である。
【図8】本発明の実施例2のシステム構成例を示した図
である。
である。
【図9】本発明の実施例3のシステム構成例を示した図
である。
である。
【図10】キャッシュメモリの状態とキャッシュ有効位
置記録メモリの内容の関係を示した図である。
置記録メモリの内容の関係を示した図である。
【図11】実施例13のヒット判定回路の詳細構成例を
示した図である。
示した図である。
【図12】実施例3のキャッシュ入れ替え動作の概念図
である。
である。
1 演算処理装置 2 アドレスレジスタ 3 アドレス指定回路 4 アドレスデコーダ 5 メモリマット 7 アドレスアレイ 8 ヒット判定回路 10 バイパスバッファ 11 コピーアウトバッファ 14 主記憶装置 15 バイパスバッファアドレスラッチ 16 バイパスバッファウェイラッチ 17 ウェイ参照履歴メモリ 18 コピーアウトウェイ判定回路 20 キャッシュ有効位置記録メモリ
Claims (4)
- 【請求項1】 複数ウェイの複数メモリマットで構成さ
れるキャッシュメモリ装置であって、 キャッシュミス時の入れ替え動作で、メモリマットから
のコピーアウト動作とメモリマットへのコピーイン動作
を相異なるウェイで並行して実行せしめる制御手段を有
することを特徴とするキャッシュメモリ装置。 - 【請求項2】 請求項1記載のキャッシャメモリ装置に
おいて、制御手段は、キャッシュミスに際してあるライ
ンをコピーアウトするときに、当該ラインのウェイアク
セスの履歴を用い、すきまのあるウェイ以外のウェイか
らコピーアウトすべきウェイを決定することを特徴とす
るキャッシュメモリ装置。 - 【請求項3】 複数ウェイの複数メモリマットで構成さ
れるキャッシュメモリ装置であって、 前回のキャッシュミスでコピーインすべき内容を保持す
るバイパスバッファと、 コピーアウトした内容を保持するコピーアウトバッファ
と、 キャッシュミス時の入れ替え動作で、メモリマットから
の前記コピーアウトバッファへのコピーアウト動作と前
記バイパスバッファからのメモリマットへのコピーイン
動作を相異なるウェイで並行して実行せしめる制御手段
と、を有することを特徴とするキャッシュメモリ装置。 - 【請求項4】 請求項3記載のキャッシュメモリ装置に
おいて、制御手段は、キャッシュミスに際してあるライ
ンをコピーアウトするときに、当該ラインのウェイアク
セスの履歴を用いてコピーアウトすべきウェイの候補を
選び、それと前回のキャッシュミスでコピーアウトした
ウェイを比較し、両者が同一であれば、改めて前記ウェ
イアクセスの履歴を用いて、前回のキャッシュミスでコ
ピーアウトしたウェイとは別のウェイをコピーアウトす
べきウェイであると決定し、同一でなければ、候補ウェ
イをそのままコピーアウトすべきウェイであると決定す
ることを特徴とするキャッシュメモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7131530A JPH08328960A (ja) | 1995-05-30 | 1995-05-30 | キャッシュメモリ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7131530A JPH08328960A (ja) | 1995-05-30 | 1995-05-30 | キャッシュメモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08328960A true JPH08328960A (ja) | 1996-12-13 |
Family
ID=15060233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7131530A Pending JPH08328960A (ja) | 1995-05-30 | 1995-05-30 | キャッシュメモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08328960A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10482018B2 (en) | 2017-09-13 | 2019-11-19 | Fujitsu Limited | Arithmetic processing unit and method for controlling arithmetic processing unit |
US10552331B2 (en) | 2016-09-30 | 2020-02-04 | Fujitsu Limited | Arithmetic processing device having a move-in buffer control unit that issues a move-in request in shorter time upon a memory access request, information apparatus including the same and method for controlling the arithmetic processing device |
-
1995
- 1995-05-30 JP JP7131530A patent/JPH08328960A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552331B2 (en) | 2016-09-30 | 2020-02-04 | Fujitsu Limited | Arithmetic processing device having a move-in buffer control unit that issues a move-in request in shorter time upon a memory access request, information apparatus including the same and method for controlling the arithmetic processing device |
US10482018B2 (en) | 2017-09-13 | 2019-11-19 | Fujitsu Limited | Arithmetic processing unit and method for controlling arithmetic processing unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5717890A (en) | Method for processing data by utilizing hierarchical cache memories and processing system with the hierarchiacal cache memories | |
JP7049338B2 (ja) | タグマッチングコマンドに応答する記憶回路 | |
US5668972A (en) | Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line | |
JPS624745B2 (ja) | ||
JPH03141443A (ja) | データ格納方法及びマルチ・ウェイ・セット・アソシアチブ・キャッシュ記憶装置 | |
KR100335672B1 (ko) | 메모리페이지크로싱예측주석을사용하는실제주소지정데이타기억구조로부터의빠른데이타검색 | |
JPH0661068B2 (ja) | 記憶再配置方法および階層化記憶システム | |
US4507729A (en) | Error processing system using two different types of replace logic | |
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 | |
US6105115A (en) | Method and apparatus for managing a memory array | |
US4608671A (en) | Buffer storage including a swapping circuit | |
US20240054073A1 (en) | Circuitry and Method | |
JPH08328960A (ja) | キャッシュメモリ装置 | |
JPH044617B2 (ja) | ||
US6134636A (en) | Method and apparatus for storing data in a memory array | |
JP2000285022A (ja) | ディスク制御装置 | |
JPS593773A (ja) | バツフア記憶装置のlru制御方式 | |
JPH06161900A (ja) | キャッシュメモリ装置 | |
JPH05158795A (ja) | キャッシュメモリシステム | |
JPS62145341A (ja) | キヤツシユメモリシステム | |
JPS6331809B2 (ja) | ||
JPS62145342A (ja) | キヤツシユメモリシステム | |
JPS5836434B2 (ja) | バツフアメモリソウチ | |
JPH05120139A (ja) | キヤツシユメモリ装置 | |
JPH05233454A (ja) | キャッシュメモリ装置 |