(57)【要約】      （修正有）【課題】キャッシュ容量を小さくすることができるとともに、効率的なキャッシュ利用を行うことができる情報処理技術を提供する。【解決手段】キャッシュ記憶装置１１５は、タグビット、データ、及びデータの参照回数を管理する参照カウントを含むエントリを有する。参照アドレスに基づいて、対応するエントリからデータを読み込むことができるか否かを判定する。エントリからデータを読み込むことができる場合において、参照アドレスがプリフェッチ用である場合は、エントリの参照カウントの値を増加させ、フェッチ用である場合は、参照カウントの値を減少させる。エントリからデータを読み込むことができない場合において、参照アドレスがプリフェッチ用である場合は、参照カウントの値が０になるまで、該エントリでプリフェッチ済みデータのリプレースを禁止し、フェッチ用である場合は、エントリからデータを読む込むことができるまで判定を繰り返す。【選択図】図２
2015118638.tif 000002
【特許請求の範囲】
【請求項１】
メモリ上のデータについて、キャッシュ記憶装置に対するフェッチ／プリフェッチを制御する情報処理装置であって、
キャッシュ対象のデータを管理するためのエントリとして、前記データの前記メモリ上でのアドレスを管理するタグビット、前記データ、及び前記データの参照回数を管理する参照カウントを含むエントリを有するキャッシュ記憶装置と、
参照アドレスに基づいて、前記キャッシュ記憶装置の対応するエントリからデータを読み込むことができるか否かを判定する判定手段と、
前記判定手段の判定の結果に基づいて、プリフェッチ及びフェッチの少なくとも一方を制御する制御手段とを備え、
前記制御手段は、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができる場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値を増加させ、
前記参照アドレスがフェッチ用である場合には、前記エントリの参照カウントの値を減少させ、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができない場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値が０になるまで、該エントリでプリフェッチ済みのデータのリプレースを禁止し、
前記参照アドレスがフェッチ用である場合には、前記エントリからデータを読む込むことができるまで前記判定手段による判定を繰り返す
ことを特徴とする情報処理装置。
【請求項２】
前記エントリは、更に、該エントリに格納されているデータが有効であることを示すデータ有効ビットを含み、
前記制御手段は、前記参照カウントの値が０になったエントリについては、該エントリにおける前記タグビットに前記参照アドレスを設定し、前記データ有効ビットを０に設定し、前記参照カウントの値を１に設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記参照アドレスで前記メモリへの読出要求を発行して、前記メモリからデータを読み出し、前記データを前記参照アドレスに対応するエントリに格納するとともに、前記エントリのデータ有効ビットを１に設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記エントリは、更に、そのエントリが有効であることを示すエントリ有効ビットを含み、
前記判定手段は、前記エントリ有効ビットが前記エントリが有効であることを示し、前記参照アドレスと対応するエントリの前記タグビットが等しい場合に、前記キャッシュ記憶装置の対応するエントリからデータを読み込むことができると判定する
ことを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記キャッシュ記憶装置は、複数のエントリからなる１つのＷａｙを複数個構成しており、
前記判定手段による判定及び前記制御手段による制御は、前記複数個のＷａｙそれぞれについて行う
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
プリフェッチ用のアドレスを生成する第１の生成手段と、
フェッチ用のアドレスを生成する第２の生成手段とを更に備え、
前記参照アドレスは、前記第１の生成手段あるいは前記第２の生成手段によって生成される
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１の生成手段は、前記キャッシュ記憶装置に対してデータをプリフェッチするキャッシュプリフェッチ装置を介して、前記キャッシュ記憶装置に接続され、
前記第２の生成手段は、前記キャッシュ記憶装置に対してデータをフェッチするキャッシュフェッチ装置を介して、前記キャッシュ記憶装置に接続され、
前記第２の生成手段は、ＦＩＦＯバッファを備え、
前記第１の生成手段は、更に、前記第２の生成手段に接続され、
前記第２の生成手段は、前記ＦＩＦＯバッファがフルの場合は、前記参照アドレスとしてのアドレスの生成を停止する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
複数の前記プリフェッチと複数の前記フェッチとが、同一のエントリについて同時並行動作を行う場合に、前記制御手段は、前記エントリからデータを読み込むことができた前記プリフェッチの総数と前記エントリからデータを読み込むことができた前記フェッチの総数の差分を、前記エントリの参照カウントに加算する
ことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
メモリ上のデータについて、キャッシュ記憶装置に対するフェッチ／プリフェッチを制御する情報処理装置の制御方法であって、
前記キャッシュ記憶装置は、キャッシュ対象のデータを管理するためのエントリとして、前記データの前記メモリ上でのアドレスを管理するタグビット、前記データ、及び前記データの参照回数を管理する参照カウントを含むエントリを有し、
前記方法は、
参照アドレスに基づいて、前記キャッシュ記憶装置の対応するエントリからデータを読み込むことができるか否かを判定する判定工程と、
前記判定工程の判定の結果に基づいて、プリフェッチ及びフェッチの少なくとも一方を制御する制御工程とを備え、
前記制御工程は、
前記判定工程の判定の結果、前記エントリからデータを読み込むことができる場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値を増加させ、
前記参照アドレスがフェッチ用である場合には、前記エントリの参照カウントの値を減少させ、
前記判定工程の判定の結果、前記エントリからデータを読み込むことができない場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値が０になるまで、該エントリでプリフェッチ済みのデータのリプレースを禁止し、
前記参照アドレスがフェッチ用である場合には、前記エントリからデータを読む込むことができるまで前記判定工程による判定を繰り返す
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
メモリ上のデータについて、キャッシュ記憶装置に対するフェッチ／プリフェッチを制御する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記キャッシュ記憶装置は、キャッシュ対象のデータを管理するためのエントリとして、前記データの前記メモリ上でのアドレスを管理するタグビット、前記データ、及び前記データの参照回数を管理する参照カウントを含むエントリを有し、
前記プログラムは、前記コンピュータを
参照アドレスに基づいて、前記キャッシュ記憶装置の対応するエントリからデータを読み込むことができるか否かを判定する判定手段と、
前記判定手段の判定の結果に基づいて、プリフェッチ及びフェッチの少なくとも一方を制御する制御手段として機能させ、
前記制御手段は、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができる場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値を増加させ、
前記参照アドレスがフェッチ用である場合には、前記エントリの参照カウントの値を減少させ、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができない場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値が０になるまで、該エントリでプリフェッチ済みのデータのリプレースを禁止し、
前記参照アドレスがフェッチ用である場合には、前記エントリからデータを読む込むことができるまで前記判定手段による判定を繰り返す
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ上のデータについて、キャッシュ記憶装置に対するフェッチ／プリフェッチを制御する情報処理技術に関するものである。
【背景技術】
【０００２】
半導体集積度向上によって処理装置とメインメモリとして多く使用されるＤＲＡＭの速度が向上したが、ＤＲＡＭの速度向上は処理装置の速度向上よりも小さかった。そこで、これらの間の速度のギャップを解消するために、小容量であるが高速なキャッシュメモリを高速な処理装置と低速なメインメモリの間に設けることが行われている。
【０００３】
キャッシュメモリは、メモリアクセスを行う際になって、初めて、キャッシュメモリにメインメモリの内容をコピーすることが多いが、メモリレイテンシを隠蔽するために使用予定のアドレス範囲に対してメインメモリの内容を前もってキャッシュメモリにコピーしておくキャッシュのプリフェッチが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３２０２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実際に処理を行うフェッチに対してプリフェッチはできるだけ大きく先行して行う方がメモリレイテンシを隠すことができる。しかしながら、プリフェッチが先行しすぎると、今後、使用されるプリフェッチ済みのデータが、新規にプリフェッチするデータでリプレースされてしまうという問題がある。
【０００６】
特許文献１では、プリフェッチ済みのデータが読み出される前にリプレースされることがないように、プリフェッチ対象のデータを格納する際にロックビットを立てる。そして、ロックビットによってロックされたプリフェッチ済みのデータを読み出すときにロックビットを解除する。これにより、プリフェッチ済みで１回も使用されていないデータがリプレースされないようになっている。しかしながら、この方式では、１回使用した時点でロックが解除されてリプレース対象となってしまうので、２回以上使用されるデータに対して、今後、使用されるプリフェッチ済みのデータが、新規にプリフェッチするデータでリプレースされてしまうという問題が依然としてある。
【０００７】
本発明は上記の課題を解決するためになされたものであり、キャッシュ容量を小さくすることができるとともに、効率的なキャッシュ利用を行うことができる情報処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
メモリ上のデータについて、キャッシュ記憶装置に対するフェッチ／プリフェッチを制御する情報処理装置であって、
キャッシュ対象のデータを管理するためのエントリとして、前記データの前記メモリ上でのアドレスを管理するタグビット、前記データ、及び前記データの参照回数を管理する参照カウントを含むエントリを有するキャッシュ記憶装置と、
参照アドレスに基づいて、前記キャッシュ記憶装置の対応するエントリからデータを読み込むことができるか否かを判定する判定手段と、
前記判定手段の判定の結果に基づいて、プリフェッチ及びフェッチの少なくとも一方を制御する制御手段とを備え、
前記制御手段は、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができる場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値を増加させ、
前記参照アドレスがフェッチ用である場合には、前記エントリの参照カウントの値を減少させ、
前記判定手段の判定の結果、前記エントリからデータを読み込むことができない場合において、
前記参照アドレスがプリフェッチ用である場合には、前記エントリの参照カウントの値が０になるまで、該エントリでプリフェッチ済みのデータのリプレースを禁止し、
前記参照アドレスがフェッチ用である場合には、前記エントリからデータを読む込むことができるまで前記判定手段による判定を繰り返す。
【発明の効果】
【０００９】
本発明によれば、キャッシュ容量を小さくすることができるとともに、効率的なキャッシュ利用を行うことができる情報処理技術を提供できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１のコンピュータシステムの全体図である。
【図２】実施形態１のデータ処理装置を示す図である。
【図３】実施形態１のキャッシュ記憶装置を示す図である。
【図４】実施形態１のプリフェッチの処理を示すフローチャートである。
【図５】実施形態１のキャッシュフィルの処理を示すフローチャートである。
【図６】実施形態１のフェッチの処理を示すフローチャートである。
【図７】実施形態２のデータ処理装置を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１２】
＜実施形態１＞
実施形態１では、２Ｗａｙで、各Ｗａｙのキャッシュエントリ毎に参照カウンタを１つ有するキャッシュの例を示すが、Ｗａｙ数、キャッシュエントリと参照カウンタの対応関係を変えることもできる。
【００１３】
まず、図１に実施形態１のコンピュータシステムの全体図を示す。実施形態１のコンピュータシステムは、プリフェッチ機構を有する情報処理装置であるデータ処理装置１０１、メモリ１０４、その間を接続するシステムバス１０３で構成されている。
【００１４】
次に、図２に実施形態１のデータ処理装置１０１の構成を示す。データ処理装置１０１は、演算に必要なデータのアドレス生成を行い、メモリ１０４から読み出したデータを用いて演算処理を行う。データ処理装置１０１は、プリフェッチアドレス生成装置１１０、演算処理装置１１１、キャッシュプリフェッチ装置１１２、キャッシュフィル装置１１３、キャッシュフェッチ装置１１４、キャッシュ記憶装置１１５、制御装置１１６、及びフェッチアドレス生成装置１１７で構成されている。
【００１５】
尚、キャッシュ記憶装置１１５とメモリ１０４との関係では、一般的には、前者が小容量であるが高速であり、後者が大容量であるが低速である。
【００１６】
キャッシュ記憶装置１１５の詳細を図３に示す。キャッシュ記憶装置１１５は、１つ以上あるいは複数のエントリを有するテーブルが２Ｗａｙ（Ｗａｙ０とＷａｙ１）分で複数個構成されている。各エントリは、データを管理していて、ＷａｙとＩｎｄｅｘ（キャッシュインデックス）を指定して、そのデータの読出／書込が可能である。
【００１７】
Ｗａｙ０では、エントリ有効（Ｖａｌｉｄ：Ｖ）ビット１２１ａ、データ有効（Ｄ）ビット１２５ａ、タグ（Ｔａｇ）ビット１２２ａ、データ（Ｄａｔａ）１２３ａ、及び参照カウント（ＲｅｆＣｏｕｎｔ）１２４ａが１エントリのデータとなる。
【００１８】
エントリ有効ビット１２１ａは、そのエントリのデータ有効ビット１２５ａ、タグビット１２２ａ、及び参照カウント１２４ａが有効であることを示す。ここで、エントリ有効ビット１２１ａの値が「１」である場合は、そのエントリが有効であることを示し、エントリ有効ビット１２１ａの値が「０」である場合は、そのエントリが無効であることを示す。
【００１９】
データ有効ビット１２５ａは、エントリに格納されているデータ１２３ａが有効であることを示す。ここで、データ有効ビット１２５ａの値が「１」である場合は、データ１２３ａが有効であることを示し、データ有効ビット１２５ａの値が「０」である場合は、データ１２３ａが無効であることを示す。
【００２０】
タグビット１２２ａは、Ｉｎｄｅｘが内包するアドレスビットと合わせてキャッシュ対象のデータ１２３ａのメモリ１０４上でのアドレスを示している。データ１２３ａは、Ｉｎｄｅｘが内包するアドレスビットとタグビット１２２ａで示されるアドレスに対するメモリ１０４上でのデータをコピーしたものである。参照カウント１２４ａは、同一エントリについて、プリフェッチによるデータの参照回数（プリフェッチ回数）からフェッチによるデータの参照回数（フェッチ回数）を引いたものを表している。この参照カウント１２４ａが０より大きい場合、そのエントリにはフェッチによってこれから参照されるデータが入っていることを示している。
【００２１】
同様にして、Ｗａｙ１では、エントリ有効（Ｖａｌｉｄ：Ｖ）ビット１２１ｂ、データ有効（Ｄ）ビット１２５ｂ、タグ（Ｔａｇ）ビット１２２ｂ、データ（Ｄａｔａ）１２３ｂ、及び参照カウント（ＲｅｆＣｏｕｎｔ）１２４ｂが１エントリとなる。
【００２２】
実施形態１のデータ処理装置１０１の動作を順に示す。データ処理装置１０１では、制御装置１１６が、Ｓｔａｒｔ信号１２２をアサートする。Ｓｔａｒｔ信号１２２がアサートされると、プリフェッチアドレス生成装置１１０とフェッチアドレス生成装置１１７が動作を開始する。プリフェッチアドレス生成装置１１０とフェッチアドレス生成装置１１７は、動作を開始すると参照するアドレス（参照アドレス）を同一シーケンスで生成する。
【００２３】
プリフェッチアドレス生成装置１１０がプリフェッチアドレスを生成した時の処理フローを図４に示す。
【００２４】
ステップＳ２０２で、プリフェッチアドレス生成装置１１０は、プリフェッチ用の参照アドレスを生成する。キャッシュプリフェッチ装置１１２は、この参照アドレスを受信すると、ステップＳ２０３〜ステップＳ２０９の一連の処理を実行する。
【００２５】
ステップＳ２０３で、キャッシュプリフェッチ装置１１２は、参照アドレスに対するキャッシュ記憶装置１１５のＩｎｄｅｘを算出する。ステップＳ２０４で、キャッシュプリフェッチ装置１１２は、キャッシュ記憶装置１１５でＩｎｄｅｘに対応するエントリのエントリ有効ビットとタグビットの読み出しを行う。さらに、エントリ有効ビットが「１」で、かつタグビットが参照アドレスと等しいかどうかを調べてＨｉｔ／Ｍｉｓｓを判定する。どちらかのＷａｙで、エントリ有効ビットが「１」で参照アドレスとタグビットが等しい場合はＨｉｔ（キャッシュヒット）と判定し、そうでない場合はＭｉｓｓ（キャッシュミス）と判定する。
【００２６】
ここで、キャッシュヒットとは、処理に必要なデータがキャッシュ記憶装置１１５に存在し、キャッシュ記憶装置１１５からデータを読み込むことができることを意味する。また、キャッシュミスとは、処理に必要なデータがキャッシュ記憶装置１１５に存在せず、キャッシュ記憶装置１１５からデータを読み込むことができないことを意味する。キャッシュミスの場合、メモリ１０４から必要なデータをコピーする。
【００２７】
ステップＳ２０５で、キャッシュプリフェッチ装置１１２は、Ｈｉｔであるか否かを判定する。Ｈｉｔである場合（ステップＳ２０５でＹＥＳ）、ステップＳ２０９へ進み、キャッシュプリフェッチ装置１１２は、ＨｉｔしたＷａｙ、Ｉｎｄｅｘに対応するエントリの参照カウントの値を＋１して、プリフェッチで参照された回数を１インクリメントする。
【００２８】
一方、Ｍｉｓｓである場合（ステップＳ２０５でＮＯ）、ステップＳ２０６〜ステップＳ２０８のキャッシュのリプレース処理を行う。
【００２９】
ステップＳ２０６で、キャッシュプリフェッチ装置１１２は、いずれかのＷａｙで算出したＩｎｄｅｘに対応するエントリの参照カウントの値が「０」になるまで待機する。換言すれば、参照カウントの値が「０」になるまで、プリフェッチ済みのデータのリプレースを禁止する。これにより、プリフェッチ済みのデータがフェッチで使用される前にリプレースされてしまうことを防ぐ。
【００３０】
ステップＳ２０７で、キャッシュプリフェッチ装置１１２は、参照カウントの値が「０」であるＷａｙ、Ｉｎｄｅｘに対応するエントリの内容を更新して、エントリ有効ビットを「１」に設定し、タグを参照アドレスに設定し、データ有効ビットを「０」に設定し、参照カウントの値を「１」に設定する。ステップＳ２０８で、キャッシュプリフェッチ装置１１２は、参照アドレス、Ｗａｙ、Ｉｎｄｅｘを指定してキャッシュフィル処理を起動する。
【００３１】
キャッシュフィル装置１１３によるキャッシュフィル処理の処理フローを図５に示す。
【００３２】
ステップＳ２４２で、キャッシュフィル装置１１３は、システムバスに指定した参照アドレスで読出要求を発行する。読出要求には、読出要求（Ｒｅａｄ  Ｒｅｑｕｅｓｔ）信号線１２０（図２）を使用する。ステップＳ２４３で、キャッシュフィル装置１１３は、システムバス１０３から読出データ（Ｒｅａｄ  Ｄａｔａ）信号線１２１に読み出したデータを受信すると、そのデータをキャッシュ記憶装置１１５の指定されたＷａｙ、Ｉｎｄｅｘに対応するエントリに格納する。データの格納が終了すると、ステップＳ２４４で、キャッシュフィル装置１１３は、キャッシュ記憶装置１１５の指定されたＷａｙ、Ｉｎｄｅｘに対応するエントリのデータ有効ビットを「１」に設定する。
【００３３】
次に、フェッチアドレス生成装置１１７がフェッチアドレスを生成した時の処理フローを図６に示す。
【００３４】
ステップＳ２２２で、フェッチアドレス生成装置１１７は、フェッチ用の参照アドレスを生成する。キャッシュフェッチ装置１１４は、この参照アドレスを受信すると、ステップＳ２２３〜ステップＳ２２８の一連の処理を実行する。
【００３５】
ステップＳ２２３で、キャッシュフェッチ装置１１４は、参照アドレスに対するキャッシュ記憶装置１１５のＩｎｄｅｘを算出する。ステップＳ２２４で、キャッシュフェッチ装置１１４は、ステップＳ２０４と同様に、Ｈｉｔ／Ｍｉｓｓ判定を行う。
【００３６】
ステップＳ２２５で、キャッシュフェッチ装置１１４は、Ｈｉｔであるか否かを判定する。Ｍｉｓｓである場合（ステップＳ２２５でＮＯ）、Ｈｉｔになるまで、ステップＳ２２４及びステップＳ２２５の処理を繰り返す。
【００３７】
一方、Ｈｉｔである場合（ステップＳ２２５でＹＥＳ）、ステップＳ２２６に進み、キャッシュフェッチ装置１１４は、ＨｉｔしたＷａｙ、Ｉｎｄｅｘに対応するエントリのデータ有効ビットが「１」になるまで待機する。ステップＳ２２７で、キャッシュフェッチ装置１１４は、ＨｉｔしたＷａｙ、Ｉｎｄｅｘに対応するエントリのデータ（キャッシュデータ）をキャッシュ記憶装置１１５から読み出して演算処理装置１１１に出力する。ステップ２２８で、キャッシュフェッチ装置１１４は、ＨｉｔしたＷａｙ、Ｉｎｄｅｘに対応するエントリの参照カウントの値を−１して、フェッチで参照した回数分だけ参照カウントをデクリメントする。
【００３８】
このように、フェッチ／プリフェッチの制御として、プリフェッチとフェッチで同一の参照アドレスシーケンスを生成し、プリフェッチ回数とフェッチ回数の差を示す参照カウンタをキャッシュのエントリ毎に設ける。キャッシュミスの場合には、参照カウンタが０となるまで待ってからデータのリプレースを行う。
【００３９】
以上説明したように、実施形態１によれば、参照カウントにプリフェッチにより参照された回数とフェッチにより参照された回数の差を生成し、参照カウントの値が「０」となるまで待機してから、メモリ上のデータに対応するプリフェッチ済みのデータのリプレースを行う。つまり、プリフェッチ済みのデータは、そのデータを参照するフェッチがすべて行われるまで解放されない。
【００４０】
これにより、プリフェッチ済みのデータがフェッチで使用される前にリプレースされてしまうことを防止することができる。また、今後、使用されるデータがプリフェッチ済みのデータでリプレースされなくなるので、キャッシュミスを減らすことができる。その結果、最大限プリフェッチを先行して行うことができるため、プリフェッチによりメモリレイテンシを隠すためのキャッシュ容量を小さくでき、性能変動も小さくできる。
【００４１】
＜実施形態２＞
図７に実施形態２のデータ処理装置１０１の構成を示す。
【００４２】
実施形態２が実施形態１と異なる点は、フェッチアドレス生成装置１３７がＦＩＦＯバッファ１３８（先入れ先出しバッファ）で構成され、プリフェッチアドレス生成装置１１０の出力がフェッチアドレス生成装置１３７の入力に接続されている点である。
【００４３】
この時も、プリフェッチアドレス生成装置１１０とフェッチアドレス生成装置１３７とが動作を開始すると、参照アドレスを同一シーケンスで生成する。ＦＩＦＯバッファ１３８がフルの場合は、プリフェッチアドレス生成装置１１０は参照アドレスの生成を停止する。これ以外の動作は実施形態１と同じである。
【００４４】
これらの場合においても、実施形態１と同様の効果を得ることができる。
【００４５】
さらに、プリフェッチ動作とフェッチ動作の並列性を高めるために、キャッシュプリフェッチ装置１１２の入力にプリフェッチアドレス生成装置１１０が出力するプリフェッチアドレスを保持するＦＩＦＯバッファがあっても良い。
【００４６】
実施形態１及び実施形態２では、参照カウントの値は、一度には＋１あるいは−１する場合の例を示しているが、これに限定されない。同時に複数のプリフェッチ処理、あるいは複数のフェッチ処理を並列に行う場合には、同時にヒットした分だけ参照カウントの値を増加あるいは減少させることもできる。
【００４７】
また、複数のプリフェッチ処理と複数のフェッチ処理とを同時並行動作を行う場合には、ヒットしたＷａｙのキャッシュインデックス毎に、同じＷａｙ、同じＩｎｄｅｘについて（プリフェッチ処理でヒットした数−フェッチ処理でヒットした数）を参照カウントに加算することもできる。つまり、プリフェッチのヒット総数とフェッチのヒット総数との差分を参照カウントに加算する。
【００４８】
また、アップカウンタとして機能する参照カウントの実装としては、ダウンカウンタにすることもできる。この場合、上記の例で論理的に＋１／−１する構成を、実装上、それぞれ−１／＋１とすればよい。これらの場合においても実施形態１と同様の効果を得ることができる。
【００４９】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015118638.tif 000003
【図２】
2015118638.tif 000004
【図３】
2015118638.tif 000005
【図４】
2015118638.tif 000006
【図５】
2015118638.tif 000007
【図６】
2015118638.tif 000008
【図７】
2015118638.tif 000009