(57)【特許請求の範囲】
【請求項１】
ダイレクトマップドキャッシュとフルアソシアティブ空間バッファとを含んだキャッシュシステムにおいて、
前記ダイレクトマップドキャッシュが小さいデータブロックの構造を有し、
前記フルアソシアティブ空間バッファが複数の小さいデータブロックよりなる大きいデータブロックの構造を有し、
前記ダイレクトマップドキャッシュ及びフルアソシアティブ空間バッファへのアクセスが失敗すれば、アクセスされたアドレス及びその隣接アドレスのデータが前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーされ、
前記フルアソシアティブ空間バッファから取り出される前記大きいデータブロックのうちで以前アクセスされた一つの小さいデータブロックまたはそれ以上の小さいデータブロックが前記ダイレクトマップドキャッシュの中へ移動するキャッシュシステム。
【請求項２】
小さいデータブロックの構造を有したダイレクトマップドキャッシュと、複数の小さいデータブロックよりなる大きいデータブロックの構造を有したフルアソシアティブ空間バッファとを含んだキャッシュシステムの制御方法において、
（ａ）前記ダイレクトマップドキャッシュ及びフルアソシアティブ空間バッファへのアクセスが失敗すれば、アクセスされたアドレス及びその隣接アドレスのデータを前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーするコピー段階と、
（ｂ）前記段階（ａ）において、前記フルアソシアティブ空間バッファから取り出される前記大きいデータブロックのうちで以前アクセスされた一つの小さいデータブロックまたはそれ以上の小さいデータブロックを前記ダイレクトマップドキャッシュの中へ移動させる移動段階とを含んだ制御方法。
【請求項３】
前記フルアソシアティブ空間バッファのある一つの大きいデータブロックにて少なくとも２つの小さいデータブロックへのアクセスが成功すれば、前記大きいデータブロックのアドレスの次のアドレスの大きいデータブロックをあらかじめフェッチし、前記コピー段階にて前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーする段階をさらに含んだ請求項２に記載の制御方法。
【請求項４】
小さいデータブロックの構造を有したダイレクトマップドキャッシュと、複数の小さいデータブロックよりなる大きいデータブロックの構造を有したフルアソシアティブ空間バッファとを含んだキャッシュシステムの制御方法において、
（ａ）前記ダイレクトマップドキャッシュ及びフルアソシアティブ空間バッファへのアクセスが失敗すれば、前記フルアソシアティブ空間バッファ内に空いている大きいデータブロックがあるか否かを確認する段階と、
（ｂ）前記段階（ａ）にて空いている前記大きいデータブロックがあれば、下記の段階（ｃ５）を行う段階と、
（ｃ）前記段階（ａ）にて空いているブロックがなければ、下記の段階（ｃ１）ないし（ｃ５）を行う段階と、
（ｃ１）前記フルアソシアティブ空間バッファから取り出される大きいデータブロック内にて、アクセスされたアドレスの小さいデータブロックがあるか否かを確認する段階と、
（ｃ２）前記ダイレクトマップドキャッシュから取り出される小さいデータブロックが、前記フルアソシアティブ空間バッファあるいは前記ダイレクトマップドキャッシュに直接書込まれたものであるか否かを確認する段階と、
（ｃ３）前記ダイレクトマップドキャッシュから取り出される小さいデータブロックが、前記フルアソシアティブ空間バッファあるいは前記ダイレクトマップドキャッシュに直接書込まれたものであれば、前記取り出される小さいデータブロックを主メモリ中へ移動させる段階と、
（ｃ４）前記段階（ｃ１）にてアクセスされたことが確認されたアドレスの小さいデータブロックを前記ダイレクトマップドキャッシュの中へ移動させる段階と、
（ｃ５）前記段階（ａ）にてアクセスされたアドレス及びその隣接アドレスのデータを前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーする段階とを含んだ制御方法。
【請求項５】
小さいデータブロックの構造を有したダイレクトマップドキャッシュと、複数の小さいデータブロックよりなる大きいデータブロックの構造を有したフルアソシアティブ空間バッファとを含んだキャッシュシステムの制御において、
（ａ）前記ダイレクトマップドキャッシュ及びフルアソシアティブ空間バッファへのアクセスが失敗すれば、前記フルアソシアティブ空間バッファ内に空いている大きいデータブロックがあるか否かを確認する段階と、
（ｂ）前記段階（ａ）にて空いている前記大きいデータブロックがあれば、下記の段階（ｃ５）を行う段階と、
（ｃ）前記段階（ａ）にて空いているブロックがなければ、下記の段階（ｃ１）ないし（ｃ５）を行う段階と、
（ｃ１）前記フルアソシアティブ空間バッファから取り出される大きいデータブロック内にて、アクセスされたアドレスの小さいデータブロックがあるか否かを確認する段階と、
（ｃ２）前記ダイレクトマップドキャッシュから取り出される小さいデータブロックが、前記フルアソシアティブ空間バッファあるいは前記ダイレクトマップドキャッシュに直接書込まれたものであるか否かを確認する段階と、
（ｃ３）前記ダイレクトマップドキャッシュから取り出される小さいデータブロックが、前記フルアソシアティブ空間バッファあるいは前記ダイレクトマップドキャッシュに直接書込まれたものであれば、前記取り出される小さいデータブロックを主メモリ中へ移動させる段階と、
（ｃ４）前記段階（ｃ１）にてアクセスされたことが確認されたアドレスの小さいデータブロックを前記ダイレクトマップドキャッシュの中へ移動させる段階と、
（ｃ５）前記段階（ａ）にてアクセスされたアドレス及びその隣接アドレスのデータを前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーする段階と、
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中央処理装置（ＣＰＵ）のアクセス時間を縮めるために備わるキャッシュシステム及びその制御方法に係り、より詳細には時間的及び空間的局所性を適応性をもって利用するためにダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム及びその制御方法に関する。
【０００２】
【従来の技術】
一般的にＣＰＵとメモリの動作速度の差がますます大きくなるので、図１に示されたようにＣＰＵのアクセス順序によるメモリ類型の階層構造が必要になる。図１を参照すれば、ＣＰＵによりアクセスされる順序はレジスタ１０、キャッシュシステム１１、主メモリ１２、ディスク１３及びテープ１４である。ここで、アクセス速度が最も速いとされるレジスタ１０が最上位階層と呼ばれ、アクセス速度が最も遅いとされるテープ１４が最下位階層と呼ばれる。
【０００３】
上のメモリ類型のうちでキャッシュシステム１１は、主メモリ１２へのアクセス以前にアクセスされるシステムであるので、その構造及び制御方法によりＣＰＵの動作速度及び消費電力に相当な影響を及ぼす。このようなキャッシュシステム１１は局所性原理を利用するために設計される。
【０００４】
局所性は空間的局所性と時間的局所性とに分けられる。空間的局所性とは、ある一つのデータブロックのアドレスが参照された場合に、前記参照されたアドレスと隣接したアドレスが短時間内に再び参照される可能性の高い傾向を意味する。また、時間的局所性とは、参照されたデータブロックのアドレスが短時間内に再び参照される可能性の高い傾向を意味する。
【０００５】
キャッシュシステム１１にアクセス失敗が起きた場合、参照されたアドレスのデータブロックを保有することにより時間的局所性を利用し、参照されたアドレスと隣接したアドレスのデータブロックをフェッチすることにより空間的局所性を利用する。キャッシュシステムの貯蔵容量が一定に設定された場合、時間的局所性と空間的局所性とは相反する。なぜなら、すでに参照されたアドレスのデータブロックがキャッシュシステムに保存されている時間は、参照されたアドレスと隣接したアドレスのデータブロックをキャッシュシステムに多く保存するほど短くなるためである。従って、キャッシュシステムの貯蔵容量が一定に設定された場合、貯蔵ブロックを大きくするほど空間的局所性は強まるが時間的局所性が弱まる。これと反対に、貯蔵ブロックを小さくするほど空間的局所性は弱まるが時間的局所性が強まる。
【０００６】
【発明が解決しようとする課題】
上述の相反性を最適化するためにキャッシュシステムに二つのキャッシュを含めて別途に制御する方策が工夫されている。しかし、従来のキャッシュシステムの制御方法によれば、局所性予測テーブル、コンパイラ、局所性検出素子、プリフェッチなどの複雑なメカニズムが使われることにより、キャッシュシステムの複雑な設計が要求されてキャッシュシステムの製造コストが上がる問題点がある。
【０００７】
本発明の目的は、二つのキャッシュが含まれたキャッシュシステムを効率的に制御して時間的局所性及び空間的局所性を強めることにより、アクセス失敗確率及び消費電力を抑えられるキャッシュシステム及びその制御方法を提供することにある。
【０００８】
【課題を解決するための手段】
前記目的をなすための本発明のキャッシュシステム及びその制御方法は、小さいデータブロックの構造を有したダイレクトマップドキャッシュと、複数の小さいデータブロックよりなる大きいデータブロックの構造を有したフルアソシアティブ空間バッファとを含んだキャッシュシステム及びその制御方法である。ここで、前記ダイレクトマップドキャッシュ及びフルアソシアティブ空間バッファへのアクセスが失敗すれば、アクセスされたアドレス及びその隣接アドレスのデータが先入れ先出しアルゴリズムにより前記フルアソシアティブ空間バッファ内の前記大きいデータブロックにコピーされる。また、このコピーする過程において、前記フルアソシアティブ空間バッファから取り出される前記大きいデータブロックのうちで以前アクセスされた少なくとも一つのアドレスの小さいデータブロックがあれば、その小さいデータブロックが前記ダイレクトマップドキャッシュに移動する。
【０００９】
本発明の前記キャッシュシステム及びその制御方法によれば、前記フルアソシアティブ空間バッファから取り出される前記大きいデータブロックのうちで以前アクセスされた少なくとも一つの小さいデータブロックが前記ダイレクトマップドキャッシュにコピーされる。それにより、アクセスされたアドレスのデータが前記ダイレクトマップドキャッシュに存在する時間が相対的に長くなるので、空間的局所性が保持された状態で時間的局所性が強まってアクセス失敗確率及び消費電力が抑えられる。
【００１０】
【発明の実施の形態】
以下、添付された図面を参照して本発明の実施形態を詳細に説明する。
図２を参照すれば、本発明による制御方法が適用されるキャッシュシステムはダイレクトマップドキャッシュ２１とフルアソシアティブ空間バッファ２２とを含む。
ダイレクトマップドキャッシュ２１はデータ貯蔵部２１１と制御ビット貯蔵部２１２とを含む。データ貯蔵部２１１はＣＰＵ（図示されず）によりアクセスされたアドレスのデータが８バイトの小さいデータブロックＳＵＢに保存される構造を有する。制御ビット貯蔵部２１２は、ＣＰＵからアドレスバス２０１を介して入力されるインデックス信号ＤＭＩによりそれぞれの小さいデータブロックＳＵＢに対する１ビットの有効ビットＶ、１ビットのダーティビットＤ及びｎビットよりなるタグＴを保存する。比較器２０３は、ＣＰＵからアドレスバス２０１を通じて入力されるタグ信号ＤＭＴのタグが制御ビット貯蔵部２１２のタグに存在しているか否かを確認し、ダイレクトマップドキャッシュ２１へのアクセス成功いかんを知らせるアクセス結果信号ＤＭＨを発する。このアクセス結果信号ＤＭＨは制御バス（図示せず）を介してＣＰＵに入力される。一方、マルチプレクサ２０４は、データバス２０２からの８バイトのデータワードＤＷ及びフルアソシアティブ空間バッファ２２の小さいデータブロック２２０，…，２２３からの８バイトのデータワードＤＷのうちからある一つのデータワードＤＷを選択的にダイレクトマップドキャッシュ２１のデータ貯蔵部２１１に入力する。
【００１１】
フルアソシアティブ空間バッファ２２はＣＰＵによりアクセスされたアドレス及びその隣接アドレスのデータが４つの小さいデータブロック２２０，…，２２３よりなる３２バイトの大きいデータブロックに保存される構造を有する。フルアソシアティブ空間バッファ２２内の内容アドレスメモリ２２７は、ＣＰＵからアドレスバス２０１を介して入力されるタグ信号ＳＢＴにより、大きいデータブロック２２０，…，２２３に対する有効ビット２２６と、それぞれの小さいデータブロック２２０，…，２２３に対するダーティビット２２５及びヒットビット２２４を生じさせる。論理積（ＡＮＤ）ゲート２０５は内容アドレスメモリ２２７から生じたアドレスが有効であるか否かを確認し、フルアソシアティブ空間バッファ２２へのアクセス成功いかんを知らせるアクセス結果信号ＳＢＨを発する。このアクセス結果信号ＳＢＨは制御バスを通じてＣＰＵに入力される。
【００１２】
一方、アドレスバス２０１からの２ビットオフセット制御信号ＳＢＯはマルチプレクサ２０７を通じてそれぞれのバンクイネーブル信号ＢＥとして小さいデータブロック２２０，…，２２３の入出力を選択的にイネーブルする。また、データバス２０２からの８バイトのデータワード、または下位メモリ、例えば主メモリからの８バイトのデータワードはマルチプレクサ２０６を介して選択的にイネーブルされた小さいデータブロック２２０，…，２２３に入力される。
【００１３】
図２及び図３を参照し、本発明によるキャッシュシステムの制御方法を説明すれば次の通りである。
まず、書込みまたは読出し動作によりダイレクトマップドキャッシュ２１とフルアソシアティブ空間バッファ２２へのアクセスが同時に行われる（段階Ｓ３０１）。アクセス後、ダイレクトマップドキャッシュ２１へのアクセスが成功したか否かが確認される（段階Ｓ３０２）。ダイレクトマップドキャッシュ２１への読出しアクセスが成功したと確認されれば（段階Ｓ３０３）、読出されたデータがＣＰＵに伝送（段階Ｓ３１５ｂ）された後で終了する。ダイレクトマップドキャッシュ２１への書込みアクセスが成功したと確認されれば（段階Ｓ３０３）、書込み動作が行われ（段階Ｓ３０３ａ）、ダイレクトマップドキャッシュ２１にてアクセスされた小さいデータブロックＳＵＢのダーティビットＤが設定（段階Ｓ３０４）された後で終了する。
【００１４】
一方、ダイレクトマップドキャッシュ２１へのアクセスと同時に、フルアソシアティブ空間バッファ２２へのアクセスが成功したか否かが確認される（段階Ｓ３０５）。フルアソシアティブ空間バッファ２２への読出しアクセスが成功したと確認されれば（段階Ｓ３０６）、読出されたデータがＣＰＵに伝送され（段階Ｓ３１５ａ）、アクセスされた小さいデータブロック２２０または２２１または２２２または２２３のヒットビットＨ３または…またはＨ０が設定された後（段階Ｓ３１４）で終了する。フルアソシアティブ空間バッファ２２への書込みアクセスが成功したと確認されれば（段階Ｓ３０６）、書込み動作が行われ（段階Ｓ３０６ａ）、アクセスされた小さいデータブロック２２０または２２１または２２２または２２３のダーティビットＤ３または…またはＤ０及びヒットビットＨ３または…またはＨ０が設定された後（段階Ｓ３０７、Ｓ３１４）で終了する。
【００１５】
ダイレクトマップドキャッシュ２１及びフルアソシアティブ空間バッファ２２へのアクセスが失敗すれば、フルアソシアティブ空間バッファ２２内で空いている大きいデータブロック２２０及び２２１及び２２２及び２２３があるかないか確認される（段階Ｓ３０８）。ここで、フルアソシアティブ空間バッファ２２内の全ての有効ビット２２６の状態が設定されていれば、フルアソシアティブ空間バッファ２２内で空いている大きいデータブロック２２０及び２２１及び２２２及び２２３がない場合である。また、フルアソシアティブ空間バッファ２２内のある一つの有効ビット２２６の状態が設定されていなければ、フルアソシアティブ空間バッファ２２内で空いている大きいデータブロック２２０及び２２１及び２２２及び２２３がある場合である。
【００１６】
フルアソシアティブ空間バッファ２２内で空いている大きいデータブロック２２０及び２２１及び２２２及び２２３がある場合、アクセスされたアドレス及びその隣接アドレスのデータが先入れ先出しアルゴリズムによりフルアソシアティブ空間バッファ２２内の空いている大きいデータブロック２２０及び２２１及び２２２及び２２３にコピーされる（段階Ｓ３１３）。また、アクセスされた小さいデータブロック２２０または２２１または２２２または２２３のヒットビットＨ３または…またはＨ０が設定される（段階Ｓ３１４）。
【００１７】
これと反対に、フルアソシアティブ空間バッファ２２内で空いている大きいデータブロック２２０及び２２１及び２２２及び２２３がない場合、先入れ先出しアルゴリズムにより取り出される大きいデータブロック２２０及び２２１及び２２２及び２２３のデータ中からアクセスされた少なくとも一つの小さいデータブロック２２０または２２１または２２２または２２３が検出される（段階Ｓ３０９）。すなわち、この段階Ｓ３０９では、相応する小さいデータブロック２２０または２２１または２２２または２２３のヒットビットＨ３，…，Ｈ０のうちでヒットビットが設定されている少なくとも一つの小さいデータブロック２２０または２２１または２２２または２２３が検出される。
【００１８】
次に、ダイレクトマップドキャッシュ２１から取り出される小さいデータブロックＳＵＢのデータが前記段階（Ｓ３０６ａまたはＳ３０３ａ）により書込まれているか否かが確認される（段階Ｓ３１０）。この段階Ｓ３１０では、相応する小さいデータブロックＳＵＢのダーティビットＤが設定されていれば、その小さいデータブロックＳＵＢのデータが前記段階Ｓ３０６ａまたはＳ３０３ａにより書込まれたと判定される。これに該当する小さいデータブロックＳＵＢのデータは下位メモリとしての主メモリに移動する（段階Ｓ３１１）。
【００１９】
また、上の段階Ｓ３０９にてアクセスされたと確認された少なくとも一つの小さいデータブロックがダイレクトマップドキャッシュ２１に移動する（段階Ｓ３１２）。次に、上の段階Ｓ３０１にてアクセスされたアドレス及びその隣接アドレスのデータが先入れ先出しアルゴリズムによりフルアソシアティブ空間バッファ２２内の相応する大きいデータブロック２２０及び２２１及び２２２及び２２３にコピーされる（段階Ｓ３１３）。また、上の段階Ｓ３０１にてアクセスされた小さいデータブロック２２０または２２１または２２２または２２３のヒットビットＨ３または…またはＨ０が設定される（段階Ｓ３１４）。
【００２０】
図４は従来の制御方法によるビクティムキャッシュシステムへのアクセス失敗率と本発明の制御方法によるキャッシュシステムへのアクセス失敗率とを示す。図５は従来の制御方法によるビクティムキャッシュシステムへの平均アクセス時間と本発明の制御方法によるキャッシュシステムへの平均アクセス時間とを示す。図６は従来の制御方法によるビクティムキャッシュシステムの正規化消費電力と本発明の制御方法によるキャッシュシステムの正規化消費電力とを示す。ｇｏ，ｔｏｍｃａｔｖ，ｇｃｃ，ｉｊｐｅｇ，ｃｏｍｐｒｅｓｓ，ａｐｐｌｕ，ｖｏｒｔｅｘ及びｍ８８ｋｓｉｍは相異なる基準プログラムであり、シミュレーション上で相異なる時間的局所性と空間的局所性とを有する。
【００２１】
ビクティムキャッシュシステムでは、ダイレクトマップドキャッシュのブロック大きさがバッファのブロック大きさと同一である。図４、図５及び図６にて、参照符号４１１，４２１，４３１，４４１，４５１，４６１，４７１，４８１，４９１，５１１，５２１，５３１，５４１，５５１，５６１，５７１，５８１及び５９１は８バイトブロックのダイレクトマップドキャッシュとバッファを有したビクティムキャッシュシステムのグラフである。参照符号４１２，４２２，４３２，４４２，４５２，４６２，４７２，４８２，４９２，５１２，５２２，５３２，５４２，５５２，５６２，５７２，５８２及び５９２は１６バイトブロックのダイレクトマップドキャッシュとバッファとを有したビクティムキャッシュシステムのグラフである。参照符号４１３，４２３，４３３，４４３，４５３，４６３，４７３，４８３，４９３，５１３，５２３，５３３，５４３，５５３，５６３，５７３，５８３，５９３，６１１，６２１，６３１，６４１，６５１，６６１，６７１，６８１及び６９１は３２バイトブロックのダイレクトマップドキャッシュとバッファとを有したビクティムキャッシュシステムのグラフである。そして、参照符号４１４，４２４，４３４，４４４，４５４，４６４，４７４，４８４，４９４，５１４，５２４，５３４，５４４，５５４，５６４，５７４，５８４，５９４，６１２，６２２，６３２，６４２，６５２，６６２，６７２，６８２及び６９２は８バイトの小さいデータブロック（図２のＳＵＢ）のダイレクトマップドキャッシュ（図２の２１）と３２バイトの大きいデータブロック（図２の２２０及び２２１及び２２２及び２２３）フルアソシアティブ空間バッファ（図２の２２）を有した本発明のキャッシュシステムのグラフである。図４、図５及び図６を参照すれば、本発明の制御方法によるキャッシュシステムが従来のビクティムキャッシュシステムに比べてさらに低いアクセス失敗率、さらに短い平均アクセス時間及びさらに少ない消費電力を有することを確認できる。
【００２２】
図７は本発明による制御方法が適用されるキャッシュシステムの他の構造を示す。図７にて図２と同じ参照符号は同じ機能の対象を指す。参照符号２０８はプリフェッチ制御器を、ＡＧはアドレス発生器を、２２８及び２０６Ｒはマルチプレクサを、２０９は反転器を、２３２はＡＮＤゲートを、そしてＰはプリフェッチビットをそれぞれ指す。プリフェッチビットＰは次に説明されるプリフェッチモードにてプリフェッチされた大きいデータブロックを指すビットである。図７のキャッシュシステムは、次に説明されるプリフェッチモードの追加的な特徴を除いては図２のシステムと似ている。すなわち、非プリフェッチモードの動作は図２を参照して説明された通りである。ここで、プリフェッチモードまたは非プリフェッチモードはプリフェッチ制御器２０８に入力されるモード選択信号ＳＭの論理状態により決定される。
【００２３】
プリフェッチモードでは、フルアソシアティブ空間バッファ２２のある一つの大きいデータブロックＳＵＢ３，ＳＵＢ２，ＳＵＢ１及びＳＵＢ０のヒットビットＨ３，Ｈ２，Ｈ１，Ｈ０のうちで少なくとも二つのヒットビットが設定されればプリフェッチが行われる。以下の説明では、フルアソシアティブ空間バッファ２２のある一つの大きいデータブロックＳＵＢ３，ＳＵＢ２，ＳＵＢ１及びＳＵＢ０のヒットビットＨ３，Ｈ２，Ｈ１，Ｈ０のうちで３つが設定された状態で残りの一つのヒットビットが最終的に設定されれば、プリフェッチビットＰもやはり設定され、プリフェッチが行われる。ここで、すでにそのプリフェッチビットＰが設定された大きいデータブロックＳＵＢ３，ＳＵＢ２，ＳＵＢ１及びＳＵＢ０のある一つの小さいデータブロックＳＵＢ３，ＳＵＢ２，ＳＵＢ１またはＳＵＢ０が再びアクセスされる場合には、すでにプリフェッチが行われた状態であるので、プリフェッチが行われない。
【００２４】
フルアソシアティブ空間バッファ２２がアクセスされる場合、内容アドレスメモリ２２７にて検索中のアドレスはアドレス発生器ＡＧにも即刻入力される。フルアソシアティブ空間バッファ２２のある一つの大きいデータブロックＳＵＢ３，ＳＵＢ２，ＳＵＢ１及びＳＵＢ０のヒットビットＨ３，Ｈ２，Ｈ１，Ｈ０のうちで３つが設定された状態にて残りの一つのヒットビットが最終的に設定されれば、このヒットビットＨ３，Ｈ２，Ｈ１，Ｈ０の論理状態は全て「１」になる。これにより、プリフェッチ制御器２０８はＡＮＤゲート２３２に入力されるプリフェッチ信号ＰＥＳの論理状態を「１」に反転させる。また、アドレス発生器ＡＧは内容アドレスメモリ２２７から入力されたアドレス、すなわちヒットビットＨ３，Ｈ２，Ｈ１，Ｈ０の全てが「１」に設定されたアドレスの次のアドレスをマルチプレクサ２２８に入力する。内容アドレスメモリ２２７はアドレス発生器ＡＧからマルチプレクサ２２８に入力されたアドレスが内容アドレスメモリ２２７に存在しているか否かを検索する。
【００２５】
前記検索動作により１サイクルが遅延されるが、ＣＰＵにより生じるアドレス総数のおよそ１．５パーセントないし２．５パーセントほどプリフェッチされるので、この遅延によるオーバヘッドは無視してもよい程である。すなわち、Ｍ．Ｃ．Ｐ．Ｉ．（Ｍｅｍｏｒｙ Ｃｙｃｌｅｓ Ｐｅｒ Ｉｎｓｔｒｕｃｔｉｏｎ）がおよそ０．０６パーセントほどに増える。
【００２６】
検索後、前記次のアドレスが内容アドレスメモリ２２７に存在すれば、内容アドレスメモリ２２７は「１」信号をＡＮＤゲート２０５に入力するので、反転器２０９の出力信号及びＡＮＤゲート２３２の出力信号ＰＦＳＥは「０」状態となる。すなわち、アドレス発生器ＡＧに入力されるフェッチイネーブル信号ＰＦＳＥが「０」状態である。それにより、アドレス発生器ＡＧは前記次のアドレスをアドレスバス２０１に伝送せず、プリフェッチ動作が行われない。
【００２７】
一方、前記検索後、前記次のアドレスが内容アドレスメモリ２２７に存在しなければ、内容アドレスメモリ２２７は「０」信号をＡＮＤゲート２０５に入力するので、反転器２０９の出力信号及びＡＮＤゲート２３２の出力信号ＰＦＳＥは「１」状態となる。すなわち、アドレス発生器ＡＧに入力されるフェッチイネーブル信号ＰＦＳＥが「１」状態である。これにより、アドレス発生器ＡＧは前記次のアドレスをアドレスバス２０１に伝送し、プリフェッチ動作が行われる。このプリフェッチ動作はフルアソシアティブ空間バッファ２２の更新段階（図３のＳ３１３段階）の行われる過程内で行われる。すなわち、フルアソシアティブ空間バッファ２２の更新段階（図３のＳ３１３段階）が行われる間に、プリフェッチされるデータが下位メモリからプリフェッチバッファ２３１及びマルチプレクサ２０６Ｒを介してフルアソシアティブ空間バッファ２２内の相応する大きいデータブロックにコピーされる。ここで、先入れ先出しアルゴリズムにより、図３の段階Ｓ３０８ないしＳ３１３が行われる。しかし、Ｓ３１４の場合、プリフェッチされてフルアソシアティブ空間バッファ２２に移送された大きいデータブロックの全てのヒットビットは「０」に設定される。
【００２８】
前記のようなプリフェッチモードによれば、フルアソシアティブ空間バッファ２２の大きいデータブロックのうちで現在最もアクセス率の高い大きいデータブロックのアドレスの次のアドレスのデータがプリフェッチされる。それにより、このプリフェッチされたアドレスのデータもやはりアクセスされる確率が高いので、全体的なアクセス時間が一層短縮されうる。
【００２９】
【発明の効果】
以上説明されたように、本発明によるキャッシュシステム及びその制御方法によれば、フルアソシアティブ空間バッファから取り出される大きいデータブロックのうちで以前アクセスされた少なくとも一つの小さいデータブロックがダイレクトマップドキャッシュにコピーされる。それにより、アクセスされたアドレスのデータが前記ダイレクトマップドキャッシュに存在する時間が相対的に長くなるので、空間的局所性が保持された状態にて時間的局所性が強まってアクセス失敗確率及び消費電力が減少しうる。
【００３０】
本発明は、前記望ましい実施形態に限定されず、特許請求の範囲にて定義された発明の思想及び範囲内で当業者により変形及び改良されうる。
【図面の簡単な説明】
【図１】  図１は、ＣＰＵのアクセス順序によるメモリ類型の階層構造を示すブロック図である。
【図２】  図２は、本発明によるキャッシュシステムの構造を示すブロック図である。
【図３】  図３は、本発明により図２のキャッシュシステムを制御する方法を示すフローチャートである。
【図４】  図４は、従来の制御方法によるビクティムキャッシュシステムへのアクセス失敗率と、本発明の制御方法によるキャッシュシステムへのアクセス失敗率とを示すグラフである。
【図５】  図５は、従来の制御方法によるビクティムキャッシュシステムへの平均アクセス時間と本発明の制御方法によるキャッシュシステムへの平均アクセス時間とを示すグラフである。
【図６】  図６は、従来の制御方法によるビクティムキャッシュシステムの正規化消費電力と本発明の制御方法によるキャッシュシステムの正規化消費電力とを示すグラフである。
【図７】  図７は、本発明によるキャッシュシステムの他の構造を示すブロック図である。
【図１】
0004218820.tif 000002
【図２】
0004218820.tif 000003
【図３】
0004218820.tif 000004
【図４】
0004218820.tif 000005
【図５】
0004218820.tif 000006
【図６】
0004218820.tif 000007
【図７】
0004218820.tif 000008