(57)【特許請求の範囲】
【請求項１】
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリへのデータの書き込みを制御するキャッシュ制御装置であって、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を記憶するアクセス回数記憶部と、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部と、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定部と、
前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス回数及びアクセス時間を、それぞれ前記アクセス回数記憶部及び前記アクセス時間記憶部から取得し、取得したアクセス回数及びアクセス時間に基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得部と、
前記ヒット・ミス判定部によりヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、取得したアクセス時間に基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得部と、
前記内部優先度取得部により取得された内部優先度と、前記外部優先度取得部により取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新部と、
を備えることを特徴とするキャッシュ制御装置。
【請求項２】
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリへのデータの書き込みを制御するキャッシュ制御装置であって、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を記憶するアクセス回数記憶部と、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部と、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定部と、
前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス回数及びアクセス時間を、それぞれ前記アクセス回数記憶部及び前記アクセス時間記憶部から取得し、取得したアクセス回数及びアクセス時間に基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得部と、
前記ヒット・ミス判定部によりヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス回数及びアクセス時間を、それぞれ前記アクセス回数記憶部及び前記アクセス時間記憶部から取得し、取得したアクセス回数及びアクセス時間に基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得部と、
前記内部優先度取得部により取得された内部優先度と、前記外部優先度取得部により取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新部と、
を備えることを特徴とするキャッシュ制御装置。
【請求項３】
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリに記憶させるデータを制御するキャッシュ制御装置であって、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部と、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定部と、
前記ヒット・ミス判定部によりヒットしないと判定されたとき、前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、前記キャッシュメモリ上にそのデータのアドレスを含むアドレス領域と対応付けて記憶されている、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を前記キャッシュメモリから取得し、取得したアクセス時間と取得したアクセス回数とに基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得部と、
前記ヒット・ミス判定部によりヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、前記メインメモリ上に前記アクセス要求の対象であるアドレスを含むアドレス領域と対応付けて記憶されている、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を前記メインメモリから取得し、取得したアクセス時間と取得したアクセス回数とに基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得部と、
前記内部優先度取得部により取得された内部優先度と、前記外部優先度取得部により取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新部と、
を備えることを特徴とするキャッシュ制御装置。
【請求項４】
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリへのデータの書き込みを制御するキャッシュ制御方法であって、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定ステップと、
前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス回数及びアクセス時間を、前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を記憶するアクセス回数記憶部と、前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部と、からそれぞれ取得し、取得したアクセス回数及びアクセス時間に基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得ステップと、
前記ヒット・ミス判定ステップにおいてヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、取得したアクセス時間基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得ステップと、
前記内部優先度取得ステップにおいて取得された内部優先度と、前記外部優先度取得ステップにおいて取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新ステップと、
を有することを特徴とするキャッシュ制御方法。
【請求項５】
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリに記憶させるデータを制御するキャッシュ制御方法であって、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定ステップと、
前記ヒット・ミス判定ステップにおいてヒットしないと判定されたとき、前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス時間を、前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部から取得し、前記キャッシュメモリ上にそのデータのアドレスを含むアドレス領域と対応付けて記憶されている、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を前記キャッシュメモリから取得し、取得したアクセス時間及びアクセス回数に基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得ステップと、
前記ヒット・ミス判定ステップにおいてヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、前記メインメモリ上に前記アクセス要求の対象であるアドレスを含むアドレス領域と対応付けて記憶されている、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を前記メインメモリから取得し、取得したアクセス時間及びアクセス回数に基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得ステップと、
前記内部優先度取得ステップにおいて取得された内部優先度と、前記外部優先度取得ステップにおいて取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新ステップと、
を有することを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリへのデータの書き込みを制御するキャッシュ制御装置、及びキャッシュ制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）等のホストからのアクセス要求に応じて、キャッシュメモリに記憶されたデータの置換を制御する技術として、例えば特許文献１には、キャッシュブロック毎にアクセス要求の回数を記憶し、アクセス要求の回数が少ないキャッシュブロックを置換対象とすることにより、アクセス要求の頻度が大きいキャッシュデータを優先的にキャッシュメモリ内に残す技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−０１２３３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、メインメモリへのアクセス時間が異なる複数のアドレスが同じキャッシュラインに割り当てられている場合、特許文献１に記載の技術のようにアクセス回数のみを考慮してキャッシュメモリに残すデータを決定すると、アクセス回数が少なく、かつメインメモリへのアクセス時間の長いデータがキャッシュメモリに残らず、メインメモリへのアクセス性能が向上しないという問題がある。
【０００５】
本発明は、上述の事情の下になされたもので、メインメモリへのアクセス性能を向上させることができるキャッシュ制御装置、及びキャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るキャッシュ制御装置は、
ホストからメインメモリへのアクセス要求に応じて、キャッシュメモリへのデータの書き込みを制御するキャッシュ制御装置であって、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス回数を記憶するアクセス回数記憶部と、
前記メインメモリの、１または複数のアドレスを含むアドレス領域毎に、前記ホストによるそのアドレス領域に含まれるアドレスへのアクセス時間を記憶するアクセス時間記憶部と、
前記ホストからアクセス要求を受信したとき、そのアクセス要求の対象であるアドレスのデータが、前記キャッシュメモリにヒットするか否かを判定するヒット・ミス判定部と、
前記キャッシュメモリに記憶されているデータのアドレスを含むアドレス領域に対応するアクセス回数及びアクセス時間を、それぞれ前記アクセス回数記憶部及び前記アクセス時間記憶部から取得し、取得したアクセス回数及びアクセス時間に基づいて、前記キャッシュメモリにそのデータを記憶させるべき優先度を示す内部優先度を取得する内部優先度取得部と、
前記ヒット・ミス判定部によりヒットしないと判定されたとき、前記アクセス要求の対象であるアドレスを含むアドレス領域に対応するアクセス時間を前記アクセス時間記憶部から取得し、取得したアクセス時間基づいて、前記キャッシュメモリに前記アクセス要求の対象であるアドレスのデータを優先的に記憶させるべき優先度を示す外部優先度を取得する外部優先度取得部と、
前記内部優先度取得部により取得された内部優先度と、前記外部優先度取得部により取得された外部優先度と、に基づいて、前記キャッシュメモリに記憶されているデータを、前記アクセス要求の対象であるアドレスのデータに置き換えるか否かを判定するキャッシュ更新部と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、メインメモリへのアクセス性能を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係るキャッシュ制御装置の構成を示すブロック図である。
【図２】アクセス回数管理テーブルの一例を示す図である。
【図３】アクセス時間管理テーブルの一例を示す図である。
【図４】実施形態１のリード要求処理の流れの一例を示すフローチャートである。
【図５】実施形態１のライト要求処理の流れの一例を示すフローチャートである。
【図６】実施形態１におけるアクセス要求に対するキャッシュ制御装置の処理を説明するための図である。
【図７】実施形態２に係るキャッシュ制御装置の構成を示すブロック図である。
【図８】実施形態３に係るキャッシュ制御装置の構成を示すブロック図である。
【図９】実施形態３のリード要求処理の流れの一例を示すフローチャートである。
【図１０】実施形態３のライト要求処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。
【００１０】
（実施形態１）
図１に、実施形態１に係るキャッシュ制御装置１の概略構成を表すブロック図を示す。実施形態１に係るキャッシュ制御装置１は、ホスト２からメインメモリ３へのアクセス要求に応じて、キャッシュメモリ４へのデータの書き込みを制御するものである。
【００１１】
ホスト２は、各種処理を演算する演算装置であり、例えば、ＣＰＵから構成される。ホスト２は、メインメモリ３に対するデータのリード／ライト要求といったアクセス要求をキャッシュ制御装置１に対し送信する。ホスト２が送信するアクセス要求には、アクセス要求の対象であるメインメモリ３のアドレスが含まれる。そして、アクセス要求がリード要求である場合、キャッシュ制御装置１は、リード要求の対象であるアドレスに基づいて、メインメモリ３又はキャッシュメモリ４からそのアドレスのデータを読み込み、ホスト２に送信する。また、アクセス要求がライト要求である場合、キャッシュ制御装置１は、ライト要求の対象であるアドレスに基づいて、メインメモリ３又はキャッシュメモリ４に、ホスト２から受信したライト要求の対象であるライトデータを書き込む。
【００１２】
メインメモリ３は、ホスト２が各種処理を実行するために必要なプログラムやデータが展開されるメモリであり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）等から構成される。メインメモリ３は、バススイッチ５を介して、キャッシュ制御装置１と接続される。
【００１３】
キャッシュメモリ４は、高速アクセスが可能なＳＲＡＭ（Static Random Access Memory）等のメモリから構成される。キャッシュメモリ４は、メインメモリ３のデータの一部のコピーを保持しており、これにより、ホスト２によるメインメモリ３へのデータアクセスの速度が向上する。
【００１４】
なお、実施形態１において、キャッシュメモリ４のマッピング方式として、ダイレクトマップ方式が適用される場合について説明する。具体的には、メインメモリ３のアドレスは、そのアドレスのデータの格納先キャッシュラインを特定するインデックスと、格納先キャッシュラインにそのアドレスのデータが格納されているか否かを判定するためのタグとを含む。また、キャッシュメモリ４は、所定のライン数のキャッシュラインを有し、各キャッシュラインと対応してタグを記憶する。そして、キャッシュ制御装置１は、アクセス要求を受信すると、アクセス要求の対象であるアドレスに含まれるインデックスから、格納先キャッシュラインが特定する。そして、アクセス要求の対象であるアドレスに含まれるタグと、格納先キャッシュラインに対応して記憶されるタグと、を比較し、一致すれば格納先キャッシュラインにアクセス要求の対象であるアドレスのデータが格納されている（ヒット）と判定し、一致しなければ格納先キャッシュラインにアクセス要求の対象であるアドレスのデータが格納されていない（ミス）と判定する。
【００１５】
キャッシュ制御装置１は、要求制御部１１０と、応答制御部１２０と、アクセス回数記憶部１３０と、アクセス時間記憶部１４０と、キャッシュチェック部１５０と、ヒット・ミス判定部１６０と、内部優先度取得部１７０と、外部優先度取得部１８０と、優先度比較部１９０と、キャッシュ更新部２００と、外部インターフェース（Ｉ／Ｆ）部２１０と、から構成される。
【００１６】
要求制御部１１０は、ホスト２からアクセス要求を受信する。要求制御部１１０は、ホスト２からアクセス要求を受信すると、アクセス回数記憶部１３０に記憶された、そのアクセス要求の対象であるアドレスのアクセス回数を更新するよう要求する。
【００１７】
応答制御部１２０は、ホスト２からのアクセス要求に対する応答データをホスト２に送信する。例えば、ホスト２からのアクセス要求がリード要求である場合、応答制御部１２０は、リード要求の対象であるアドレスのデータを応答データとして送信する。
【００１８】
アクセス回数記憶部１３０は、メインメモリ３のアドレス毎に、ホスト２によるそのアドレスへのアクセス回数が格納されているアクセス回数管理テーブル１３１を記憶する。図２にアクセス回数管理テーブル１３１の一例を示す。図２に示すように、アクセス回数管理テーブル１３１は、メインメモリ３のアドレスと、ホスト２によるそのアドレスへのアクセス回数とを対応付けて格納する。アクセス回数記憶部１３０は、例えばカウンタから構成され、要求制御部１１０からのアクセス回数の更新要求を受信するたびに、アクセス要求の対象であるアドレスに対応するアクセス回数をインクリメントすることにより、アクセス回数を更新する。
【００１９】
アクセス時間記憶部１４０は、メインメモリ３のアドレス毎に、ホスト２によるそのアドレスへのアクセス時間が格納されているアクセス時間管理テーブル１４１を記憶する。図３にアクセス時間管理テーブル１４１の一例を示す。図３に示すように、アクセス時間管理テーブル１４１は、メインメモリ３のアドレスと、ホスト２によるそのアドレスへのアクセス回数とを対応付けて格納する。アクセス時間管理テーブル１４１に格納されているアクセス時間は、例えば、予めユーザによりアクセス時間記憶部１４０に記録される。
【００２０】
キャッシュチェック部１５０は、要求制御部１１０が受信したアクセス要求に応じて、キャッシュリード要求をキャッシュメモリ４に送信する。具体的には、キャッシュチェック部１５０は、要求制御部１１０が受信したアクセス要求の対象であるアドレスにおいて、そのインデックスからキャッシュラインを特定し、特定されたキャッシュラインに対応するタグと、そのキャッシュラインに格納されたデータとを含むキャッシュリードデータを送信するように、キャッシュメモリ４に要求する。
【００２１】
ヒット・ミス判定部１６０は、要求制御部１１０が受信したアクセス要求の対象であるアドレスのデータが、キャッシュメモリ４にヒットするか否かを判定する。具体的には、ヒット・ミス判定部１６０は、要求制御部１１０が受信したアクセス要求の対象であるアドレスに含まれるタグと、キャッシュリード要求に応じてキャッシュメモリ４から読み出されたキャッシュリードデータに含まれるタグとを比較し、一致するか否かを判定する。ヒット・ミス判定部１６０は、アクセス要求の対象であるアドレスに含まれるタグと、キャッシュリードデータに含まれるタグとが一致した場合（ヒット）、応答制御部１２０を介して、キャッシュリードデータに含まれるデータ（キャッシュメモリデータ）をホスト２に送信する。ヒット・ミス判定部１６０は、アクセス要求の対象であるアドレスに含まれるタグと、キャッシュリードデータに含まれるタグとが一致しなかった場合（ミス）、外部Ｉ／Ｆ部２１０を介してメインメモリ３からアクセス要求の対象であるアドレスのデータ（メインメモリデータ）を読み込み、応答制御部１２０を介して、読み込んだメインメモリデータをホスト２に送信する。
【００２２】
なお、ヒット・ミス判定部１６０は、ヒットするか否かを判定する際、実際には、タグとともにキャッシュメモリ４に記憶されたvalidビットが有効か否かを判定し、validビットが有効なキャッシュラインに対してヒットするか否かの判定を行うが、以下の説明においては、validビットの判定処理についての記載を省略する。
【００２３】
内部優先度取得部１７０は、キャッシュリード要求に応じて読み出されたキャッシュリードデータに含まれるデータ（キャッシュメモリデータ）をキャッシュメモリ４に記憶させるべき優先度を示す内部優先度を取得する。具体的には、内部優先度取得部１７０は、キャッシュリード要求に応じて読み出されたキャッシュリードデータに含まれるタグと、そのキャッシュリードデータの格納先であるキャッシュラインのインデックスとから特定されるアドレスに対応するアクセス回数をアクセス回数記憶部１３０から取得する。また、内部優先度取得部１７０は、その特定されるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得する。そして、内部優先度取得部１７０は、取得したアクセス回数と取得したアクセス時間とに基づいて、内部優先度を取得する。内部優先度の取得方法の一例として、内部優先度取得部１７０は、取得したアクセス回数と取得したアクセス時間とを乗算することにより、内部優先度を取得する。
【００２４】
外部優先度取得部１８０は、キャッシュメモリ４にアクセス要求の対象であるアドレスのデータ（メインメモリデータ）を優先的に記憶させるべき優先度を示す外部優先度を取得する。具体的には、ヒット・ミス判定部１６０によりミスしたと判定されたとき、外部優先度取得部１８０は、アクセス要求の対象であるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得する。そして、外部優先度取得部１８０は、取得したアクセス時間基づいて、外部優先度を取得する。外部優先度の取得方法の一例として、外部優先度取得部１７０は、取得したアクセス時間を外部優先度とする。
【００２５】
優先度比較部１９０は、内部優先度算出部１６０により取得された内部優先度と、外部優先度算出部１７０により取得された外部優先度とを比較し、どちらが大きいか判定する。そして、優先度比較部１９０は、その判定結果をキャッシュ更新部２００に送信する。
【００２６】
キャッシュ更新部２００は、優先度比較部１９０による判定結果に基づいて、キャッシュメモリデータを、メインメモリデータに書き換えるか否かを判定する。そして、キャッシュ更新部２００は、書き換えると判定した場合、キャッシュメモリデータを、アクセス要求のメインメモリデータに書き換える。
【００２７】
具体的には、優先度比較部１９０が、内部優先度の方が外部優先度よりも大きいと判定した場合、キャッシュメモリデータの方が、メインメモリデータよりも優先度が高いため、キャッシュメモリデータは、そのまま保持される。また、優先度比較部１９０が、内部優先度の方が外部優先度よりも大きくないと判定した場合、キャッシュ更新部２００は、キャッシュメモリデータを、メインメモリデータに書き換える。
【００２８】
外部Ｉ／Ｆ部２１０は、バススイッチ５を介してメインメモリ３と接続されるインターフェースである。
【００２９】
次に、実施形態１に係るキャッシュ制御装置１が実行する処理の流れについて説明する。以下では、ホスト２からアクセス要求としてリード要求を受信した場合に実行するリード要求処理と、アクセス要求としてライト要求処理とについて説明する。
【００３０】
図４は、キャッシュ制御装置１が実行するリード要求処理の流れの一例を示すフローチャートである。図４に示すリード要求処理は、例えば、要求制御部１１０がホスト２からリード要求を受信したことを契機として開始される。
【００３１】
アクセス回数記憶部１３０は、リード要求の対象であるアドレスに対応するアクセス回数をインクリメントすることにより更新する（ステップＳ１０１）。なお、アクセス回数記憶部１３０に記憶されているアクセス回数が、既に計数可能な最大値に達している場合、更新しなくてもよい。
【００３２】
キャッシュチェック部１５０は、キャッシュメモリ４に対し、キャッシュリード要求を送信し、キャッシュリードデータを送信するようキャッシュメモリ４に要求する（ステップＳ１０２）。
【００３３】
ヒット・ミス判定部１６０は、ステップＳ１０２において読み出されたキャッシュリードデータに基づいて、アクセス要求の対象であるアドレスのデータが、キャッシュメモリ４にヒットするか否かを判定する（ステップＳ１０３）。
【００３４】
ヒット・ミス判定部１６０がヒットしたと判定した場合（ステップＳ１０３；Ｙｅｓ）、ヒット・ミス判定部１６０は、ステップＳ１０２において読み出されたキャッシュリードデータに含まれるデータ（キャッシュメモリデータ）を応答制御部１２０を介してホスト２に送信する（ステップＳ１０４）。
【００３５】
ヒット・ミス判定部１６０が、ヒットしない、すなわちミスしたと判定した場合（ステップＳ１０３；Ｎｏ）、内部優先度取得部１７０は、キャッシュメモリデータへのアクセス回数及びアクセス時間を取得する（ステップＳ１０５）。具体的には、内部優先度取得部１７０は、ステップＳ１０２において読み出されたキャッシュリードデータに含まれるタグと、そのキャッシュリードデータの格納先であるキャッシュラインのインデックスとから特定されるアドレスに対応するアクセス回数及びアクセス時間を、それぞれアクセス回数記憶部１３０及びアクセス時間記憶部１４０から取得する。
【００３６】
内部優先度取得部１７０は、ステップＳ１０５において取得したアクセス時間とアクセス回数とを乗算し、その乗算結果を内部優先度として取得する（ステップＳ１０６）。
【００３７】
外部Ｉ／Ｆ部２１０は、バススイッチ５を介して、メインメモリ３から、リード要求の対象であるアドレスに格納されたメインメモリデータを取得し、応答制御部１２０を介してホスト２に送信する（ステップＳ１０７）。
【００３８】
外部優先度取得部１８０は、外部優先度として、リード要求の対象であるアドレスに対応するアクセス時間を、アクセス時間記憶部１４０から取得する（ステップＳ１０８）。
【００３９】
優先度比較部１９０は、ステップＳ１０６において取得された内部優先度と、ステップＳ１０８において取得された外部優先度とを比較し、どちらが大きいか判定する（ステップＳ１０９）。
【００４０】
優先度比較部１９０が内部優先度が外部優先度よりも大きいと判定した場合（ステップＳ１０９；Ｙｅｓ）、本処理を終了する。
【００４１】
優先度比較部１９０が内部優先度が外部優先度よりも大きくないと判定した場合（ステップＳ１０９；Ｎｏ）、キャッシュ更新部２００は、キャッシュメモリデータをメインメモリ３に書き戻す（ステップＳ１１０）。
【００４２】
そして、キャッシュ更新部２００は、ステップＳ１０７において取得したメインメモリデータにより、キャッシュメモリデータを書き換える（ステップＳ１１１）。そして、本処理を終了する。
【００４３】
次に、キャッシュ制御装置１が実行するライト要求処理の流れについて説明する。図５は、キャッシュ制御装置が実行するライト要求処理の流れの一例を示すフローチャートである。図５に示すライト要求処理は、要求制御部１１０がホスト２からライト要求を受信したことを契機として開始される。
【００４４】
ステップＳ２０１〜Ｓ２０３において、キャッシュ制御装置１は、リード要求処理のステップＳ１０１〜Ｓ１０３における処理と同様の処理をライト要求について実行する。
【００４５】
ヒット・ミス判定部１６０がヒットしたと判定した場合（ステップＳ２０３；Ｙｅｓ）、ヒット・ミス判定部１６０は、ステップＳ２０２において読み出されたキャッシュリードデータに含まれるキャッシュメモリデータを、ライト要求の対象であるライトデータに差し替え、キャッシュメモリ４に書き戻す（ステップＳ２０４）。なお、キャッシュメモリ４に書き戻されたデータをこのステップでメインメモリ３に反映するかしないかは、ライトバック方式かライトバック方式かによって異なるが、いずれにしろメインメモリ３に反映されるので、どちらでもよい。
【００４６】
ヒット・ミス判定部１６０が、ヒットしない、すなわちミスしたと判定した場合（ステップＳ２０３；Ｎｏ）、ステップＳ２０５〜Ｓ２０９において、キャッシュ制御装置１は、リード要求処理のステップＳ１０５〜Ｓ１０９と同様の処理をライト要求について実行する。ただし、ステップＳ２０７において、外部Ｉ／Ｆ部２１０は、バススイッチ５を介して、メインメモリ３から、ライト要求の対象であるアドレスに格納されたメインメモリデータを取得するのみであり、ホスト２への送信は実行しない。
【００４７】
優先度比較部１９０が内部優先度が外部優先度よりも大きいと判定した場合（ステップＳ２０９；Ｙｅｓ）、外部Ｉ／Ｆ部２１０を介して、ライト要求の対象であるライトデータを、メインメモリ３上のライト要求の対象であるアドレスに書き込む（ステップＳ２１０）。
【００４８】
優先度比較部１９０が内部優先度が外部優先度よりも大きくないと判定した場合（ステップＳ２０９；Ｎｏ）、キャッシュ更新部２００は、キャッシュメモリデータをメインメモリ３に書き込む（ステップＳ２１０）。
【００４９】
そして、キャッシュ更新部２００は、ライト要求の対象であるライトデータを、キャッシュメモリ４に書き込む（ステップＳ２１０）。そして、本処理を終了する。
【００５０】
次に、ホスト２からのアクセス要求に対するキャッシュ制御装置１の処理を図６を用いて具体的に説明する。図６において、キャッシュ制御装置１は、ホスト２から、アクセス要求の対象であるアドレス「address_nx」を受信したとする。なお、アドレス「address_nx」は、タグ「tag_n」と、インデックス「index_x」とを含むものとする。
【００５１】
そして、キャッシュ制御装置１は、アクセス回数管理テーブル１３１において、受信したアドレス「address_nx」に対応するアクセス回数をインクリメントすることにより、アクセス回数「N」を「N+1」に更新する。
【００５２】
また、キャッシュ制御装置１のヒットミス判定部１６０は、アドレス「address_nx」に含まれるインデックス「index_x」に対応するキャッシュラインのタグ「tag_m」をキャッシュメモリ４から読み出し、アドレス「address_nx」に含まれるタグ「tag_n」と比較することにより、ヒット・ミス判定を実行する。
【００５３】
「tag_n」と「tag_m」が一致する場合、キャッシュ制御装置１は、ヒットと判定する。そして、アクセス要求がリード要求である場合、キャッシュ制御装置１は、キャッシュメモリ４上のタグ「tag_m」に対応するキャッシュメモリデータ「data_mx」をホスト２に送信する。また、アクセス要求がライト要求である場合、キャッシュ制御装置１は、キャッシュメモリ４上のタグ「tag_m」に対応するキャッシュメモリデータ「data_mx」を、ライト要求の対象であるライトデータに差し替える。
【００５４】
「tag_n」と「tag_m」が一致しない場合、キャッシュ制御装置１は、ミスと判定する。この場合、キャッシュ制御装置１は、アドレス「address_nx」に含まれるインデックス「index_x」と、インデックス「index_x」に対応するキャッシュラインのタグ「tag_m」とから特定されるアドレス「address_mx」に対応するアクセス回数「M」をアクセス回数管理テーブル１３１から取得する。また、アドレス「address_mx」に対応するアクセス時間「Tm」をアクセス時間管理テーブル１４１から取得する。そして、キャッシュ制御装置１は、内部優先度として、アクセス回数「M」と、アクセス時間「Tm」の乗算結果である「M・Tm」を取得する。
【００５５】
さらに、キャッシュ制御装置１は、アドレス「address_nx」アクセス時間「Tn」を、外部優先度として、アクセス時間記憶部１４０から取得する。
【００５６】
そして、キャッシュ制御装置１の優先度比較部１９０は、内部優先度「M・Tm」と外部優先度「Tn」とを比較する。
【００５７】
内部優先度「M・Tm」の方が外部優先度「Tn」よりも大きいと判定したとき、メインメモリ３上の「address_nx」に格納されたメインメモリデータ「data_nx」よりもキャッシュメモリデータ「data_mx」の方が優先度が高い。そのため、キャッシュ制御装置１は、キャッシュメモリデータ「data_mx」をメインメモリデータ「data_nx」で置き換えずに保持する。例えば、アクセス要求がライト要求である場合、キャッシュ制御装置１は、ライト要求の対象であるライトデータを、メインメモリ３上の「address_nx」に格納されたメインメモリデータ「data_nx」に上書きする。
【００５８】
また、内部優先度「M・Tm」の方が外部優先度「Tn」よりも大きくないと判定したとき、メインメモリ３上の「address_nx」に格納されたメインメモリデータ「data_nx」よりもキャッシュメモリデータ「data_mx」の方が優先度が低い、または同じである。そのため、キャッシュ制御装置１は、キャッシュメモリデータ「data_mx」を書き換え対象とする。例えば、アクセス要求がリード要求である場合、キャッシュ制御装置１は、キャッシュメモリ４上のキャッシュメモリデータ「data_mx」とタグ「tag_m」とを、メインメモリデータ「data_nx」とタグ「tag_n」とに書き換える。また、アクセス要求がライト要求の場合、キャッシュ制御装置１は、キャッシュメモリ４上のキャッシュメモリデータ「data_mx」とタグ「tag_m」とを、ライト要求の対象であるライトデータとタグ「tag_n」とに置き換える。
【００５９】
以上説明したように、実施形態１に係るキャッシュ制御装置１において、ミス判定時にキャッシュメモリ４に記憶されているキャッシュメモリデータをメインメモリ３に記憶されているメインメモリデータに書き換えるか否かは、キャッシュメモリデータのアドレスへのアクセス回数及びアクセス時間に基づいて取得された内部優先度と、アクセス要求の対象であるアドレスへのアクセス時間に基づいて取得された外部優先度との比較により判定される。このように、アクセス時間に基づいて優先度が取得されるため、メインメモリ３へのアクセス時間の長いデータに対しては高い優先度が設定され、キャッシュメモリ４に優先的に保持される。そのため、ホスト２の応答待ち時間を処理全体として短縮することができ、メインメモリ３へのアクセス性能を向上させることができる。
【００６０】
（実施形態２）
上記の実施形態１において、外部優先度取得部１８０は、アクセス要求の対象であるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得し、この取得したアクセス時間を外部優先度としているが、外部優先度の取得方法はこれに限られない。以下の実施形態２では、外部優先度が、アクセス要求の対象であるアドレスに対応するアクセス回数及びアクセス時間に基づいて取得される例について説明する。なお、実施形態２の構成において、上記の実施形態１と同様の構成については、同様の符号を用い、その詳細な説明を省略する。
【００６１】
図７に、実施形態２に係るキャッシュ制御装置１ａの概略構成を表すブロック図を示す。実施形態２に係るキャッシュ制御装置１ａは、実施形態１の外部優先度取得部１８０に代えて、外部優先度取得部１８０ａを備える点で、実施形態１と異なる。
【００６２】
外部優先度取得部１８０ａは、ヒット・ミス判定部１６０によりミスしたと判定されたとき、アクセス要求の対象であるアドレスに対応するアクセス回数をアクセス回数記憶部１３０から取得し、アクセス要求の対象であるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得し、取得したアクセス回数と取得したアクセス時間とに基づいて、外部優先度を取得する。具体的には、外部優先度取得部１８０ａは、取得したアクセス時間と取得したアクセス回数とを乗算し、その乗算結果を外部優先度として取得する。
【００６３】
以上のように構成されるキャッシュ制御装置１ａにおいて、ミス判定時にキャッシュメモリ４に記憶されているキャッシュメモリデータをメインメモリ３に記憶されているメインメモリデータに書き換えるか否かは、キャッシュメモリデータのアドレスへのアクセス回数及びアクセス時間に基づいて取得された内部優先度と、アクセス要求の対象であるアドレスへのアクセス回数及びアクセス時間に基づいて取得された外部優先度との比較により判定される。このように、アクセス回数及びアクセス時間に基づいて優先度が取得されるため、ホスト２の応答待ち時間を処理全体として最小にすることができ、メインメモリ３へのアクセス性能をさらに向上させることができる。
【００６４】
（実施形態３）
上記の実施形態１及び２において、キャッシュ制御装置１、１ａは、アクセス回数記憶部１３０を備えていたが、メインメモリ３及びキャッシュメモリ４が、アクセス回数を記憶する構成を備えていてもよい。以下の実施形態３では、メインメモリ３及びキャッシュメモリ４が、アクセス回数を記憶する構成を備える例について説明する。なお、実施形態３の構成において、上記の実施形態１及び２と同様の構成については、同様の符号を用い、その詳細な説明を省略する。
【００６５】
図８に、実施形態３に係るキャッシュ制御装置１ｂの概略構成を表すブロック図を示す。実施形態３において、実施形態１及び２におけるアクセス回数記憶部１３０に代えて、メインメモリ３ｂ及びキャッシュメモリ４ｂが、アクセス回数を記憶する。また、キャッシュ制御装置１ｂは、実施形態１及び２におけるキャッシュチェック部１５０、内部優先度取得部１７０、外部優先度取得部１８０、１８０ａ、キャッシュ更新部２００に代えて、キャッシュチェック部１５０ｂ、内部優先度取得部１７０ｂ、外部優先度取得部１８０ｂ、キャッシュ更新部２００ｂを備える。
【００６６】
メインメモリ３ｂは、アドレス毎に、そのアドレスに格納されたデータと、ホスト２によるそのアドレスへのアクセス回数とを対応付けて記憶する。メインメモリ３ｂは、ヒット・ミス判定部１６０がミスと判定したとき、キャッシュ制御装置１ｂからの要求に応じて、アクセス要求の対象であるアドレスのデータと、そのデータに対応するアクセス回数とを含む応答データを、キャッシュ制御装置１ｂに送信する。
【００６７】
キャッシュメモリ４ｂは、キャッシュライン毎に、タグと、そのキャッシュラインとタグとにより特定されるアドレスに格納されたデータと、ホスト２によるそのアドレスへのアクセス回数とを対応付けて記憶する。
【００６８】
キャッシュチェック部１５０ｂは、要求制御部１１０が受信したアクセス要求の対象であるアドレスにおいて、そのインデックスからキャッシュラインを特定し、特定されたキャッシュラインに対応するタグ及びアクセス回数と、そのキャッシュラインに格納されたデータとを含むキャッシュリードデータを送信するように、キャッシュメモリ４に要求する。
【００６９】
内部優先度記憶部１７０ｂは、ヒット・ミス判定部１６０によりミスしたと判定されたとき、キャッシュリード要求に応じて読み出されたキャッシュリードデータに含まれるタグと、そのキャッシュリードデータの格納先であるキャッシュラインのインデックスとから特定されるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得する。また、内部優先度取得部１７０ｂは、キャッシュリード要求に応じて読み出されたキャッシュリードデータからアクセス回数を取得する。そして、内部優先度取得部１７０ｂは、取得したアクセス時間と取得したアクセス回数とに基づいて、内部優先度を取得する。
【００７０】
外部優先度取得部１８０ｂは、ヒット・ミス判定部１６０によりヒットしないと判定されたとき、アクセス要求の対象であるアドレスに対応するアクセス時間をアクセス時間記憶部１４０から取得する。また、外部優先度取得部１８０ｂは、メインメモリ３上にアクセス要求の対象であるアドレスのデータと対応付けて記憶されている、ホスト２によるそのデータへのアクセス回数をメインメモリ３から取得する。そして、外部優先度取得部１８０ｂは、取得したアクセス時間と取得したアクセス回数とに基づいて、外部優先度を取得する。具体的には、外部優先度取得部１８０ｂは、ヒット・ミス判定部１６０によりミスしたと判定されたとき、メインメモリ３ｂから読み込まれた応答データからアクセス回数を取得する。
【００７１】
キャッシュ更新部２００ｂは、実施形態１のキャッシュ更新部２００と同様に、優先度比較部１９０による判定結果に基づいて、キャッシュメモリ４に記憶されているデータ（キャッシュメモリデータ）を、アクセス要求の対象であるアドレスのデータ（メインメモリデータ）に書き換えるか否かを判定する。そして、キャッシュ更新部２００ｂは、書き換えると判定した場合、キャッシュメモリデータを、メインメモリデータに書き換える。
【００７２】
また、キャッシュ更新部２００ｂは、ヒット・ミス判定部１６０による判定結果、及び優先度比較部１９０による判定結果に基づいて、メインメモリ３ｂに記憶されているアクセス回数、またはキャッシュメモリ４ｂに記憶されているアクセス回数を更新する。
【００７３】
具体的には、ヒット・ミス判定部１６０がヒットと判定した場合、キャッシュ更新部２００ｂは、キャッシュリードデータに含まれるアクセス回数をインクリメントすることにより更新し、キャッシュメモリ４ｂに書き込む。
【００７４】
また、ヒット・ミス判定部１６０がミスと判定し、かつ優先度比較部１６０が内部優先度の方が大きいと判定した場合、キャッシュ更新部２００ｂは、応答データに含まれるアクセス回数をインクリメントすることにより更新し、メインメモリ３ｂに書き戻す。また、ヒット・ミス判定部１６０がミスと判定し、かつ優先度比較部１６０が内部優先度の方が大きくないと判定した場合、キャッシュ更新部２００ｂは、応答データに含まれるアクセス回数をインクリメントすることにより更新し、キャッシュメモリ４ｂに書き込む。
【００７５】
次に、実施形態３に係るキャッシュ制御装置１ｂが実行する処理の流れについて説明する。以下では、ホスト２からアクセス要求としてリード要求を受信した場合に実行するリード要求処理と、アクセス要求としてライト要求処理とについて説明する。
【００７６】
図９は、キャッシュ制御装置１ｂが実行するリード要求処理の流れの一例を示すフローチャートである。図９に示すリード要求処理は、例えば、要求制御部１１０がホスト２からリード要求を受信したことを契機として開始される。
【００７７】
キャッシュチェック部１５０ｂは、キャッシュメモリ４ｂに対し、キャッシュリード要求を送信し、キャッシュリードデータを送信するようキャッシュメモリ４ｂに要求する（ステップＳ３０１）。
【００７８】
ヒット・ミス判定部１６０は、ステップＳ３０１において読み出されたキャッシュリードデータに基づいて、アクセス要求の対象であるアドレスのデータが、キャッシュメモリ４ｂにヒットするか否かを判定する（ステップＳ３０２）。
【００７９】
ヒット・ミス判定部１６０がヒットしたと判定した場合（ステップＳ３０２；Ｙｅｓ）、ヒット・ミス判定部１６０は、ステップＳ３０１において読み出されたキャッシュリードデータに含まれるキャッシュメモリデータを応答制御部１２０を介してホスト２に送信する（ステップＳ３０３）。
【００８０】
また、キャッシュ更新部２００ｂは、ステップＳ３０１において読み出されたキャッシュリードデータに含まれるアクセス回数をインクリメントし、キャッシュメモリ４ｂに書き込むことによりアクセス回数を更新する（ステップＳ３０４）。そして、本処理を終了する。
【００８１】
ヒット・ミス判定部１６０が、ヒットしない、すなわちミスしたと判定した場合（ステップＳ３０２；Ｎｏ）、内部優先度取得部１７０ｂは、キャッシュメモリ４ｂに記憶されているキャッシュメモリデータへのアクセス回数及びアクセス時間を取得する（ステップＳ３０５）。具体的には、内部優先度取得部１７０ｂは、ステップＳ３０１において読み出されたキャッシュリードデータからアクセス回数を取得する。また、内部優先度取得部１７０ｂは、ステップＳ３０１において読み出されたキャッシュリードデータに含まれるタグと、そのキャッシュリードデータの格納先であるキャッシュラインのインデックスとから特定されるアドレスに対応するアクセス時間を、アクセス時間記憶部１４０から取得する。
【００８２】
内部優先度取得部１７０ｂは、ステップＳ３０５において取得したアクセス回数とアクセス時間とを乗算し、その乗算結果を内部優先度として取得する（ステップＳ３０６）。
【００８３】
外部Ｉ／Ｆ部２１０は、バススイッチ５を介して、メインメモリ３ｂから、リード要求の対象であるアドレスに格納されたメインメモリデータと、そのメインメモリデータと対応付けられたアクセス回数とを含む応答データを取得し、取得したメインメモリデータを応答制御部１２０を介してホスト２に送信する（ステップＳ３０７）。
【００８４】
外部優先度取得部１８０ｂは、リード要求の対象であるアドレスのデータへのアクセス回数及びアクセス時間を取得する（ステップＳ３０８）。具体的には、外部優先度取得部１８０ｂは、ステップＳ３０７において取得された応答データからアクセス回数を取得する。また、外部優先度取得部１８０ｂは、リード要求の対象であるアドレスに対応するアクセス時間を、アクセス時間記憶部１４０から取得する。
【００８５】
外部優先度取得部１８０ｂは、ステップＳ３０８において取得したアクセス回数とアクセス時間とを乗算し、その乗算結果を外部優先度として取得する（ステップＳ３０９）。
【００８６】
優先度比較部１９０は、ステップＳ３０６において取得された内部優先度と、ステップＳ３０９において取得された外部優先度とを比較し、どちらが大きいか判定する（ステップＳ３１０）。
【００８７】
優先度比較部１９０が内部優先度が外部優先度よりも大きいと判定した場合（ステップＳ３１０；Ｙｅｓ）、キャッシュ更新部２００ｂは、応答データに含まれるアクセス回数をインクリメントすることにより更新し、メインメモリ３ｂに書き戻す（ステップＳ３１１）。そして、本処理を終了する。
【００８８】
優先度比較部１９０が内部優先度が外部優先度よりも大きくないと判定した場合（ステップＳ３１０；Ｎｏ）、キャッシュ更新部２００ｂは、ステップＳ３０１において読み出されたキャッシュリードデータに含まれるキャッシュメモリデータとアクセス回数とをメインメモリ３ｂに書き戻す（ステップＳ３１２）。
【００８９】
そして、キャッシュ更新部２００ｂは、応答データに含まれるアクセス回数をインクリメントすることにより更新する（ステップＳ３１３）。
【００９０】
そして、キャッシュ更新部２００ｂは、応答データに含まれるメインメモリデータと、ステップＳ３１３において更新されたアクセス回数とを、キャッシュメモリ４ｂに書き込む（ステップＳ３１４）。そして、本処理を終了する。
【００９１】
次に、キャッシュ制御装置１が実行するライト要求処理の流れについて説明する。図１０は、キャッシュ制御装置が実行するライト要求処理の流れの一例を示すフローチャートである。図１０に示すライト要求処理は、要求制御部１１０がホスト２からライト要求を受信したことを契機として開始される。
【００９２】
ステップＳ４０１〜Ｓ４０２において、キャッシュ制御装置１ｂは、リード要求処理のステップＳ３０１〜Ｓ３０２における処理と同様の処理をライト要求について実行する。
【００９３】
ヒット・ミス判定部１６０がヒットしたと判定した場合（ステップＳ４０３；Ｙｅｓ）、キャッシュ更新部２００ｂは、ステップＳ４０１において読み出されたキャッシュリードデータに含まれるアクセス回数をインクリメントすることにより更新する（ステップＳ４０４）。そして、本処理を終了する。
【００９４】
キャッシュ更新部２００ｂは、ステップＳ４０１において読み出されたキャッシュリードデータに含まれるキャッシュメモリデータを、ライト要求の対象であるライトデータに差し替え、ライトデータと、ステップＳ４０４において更新されたアクセス回数とをキャッシュメモリ４ｂに書き込む（ステップＳ４０５）。
【００９５】
ヒット・ミス判定部１６０が、ヒットしない、すなわちミスしたと判定した場合（ステップＳ４０３；Ｎｏ）、ステップＳ４０５〜Ｓ４１０において、キャッシュ制御装置１ｂは、リード要求処理のステップＳ３０５〜Ｓ３１０と同様の処理をライト要求について実行する。ただし、ステップＳ４０７において、外部Ｉ／Ｆ部２１０は、バススイッチ５を介して、メインメモリ３ｂから、ライト要求の対象であるアドレスに格納されたメインメモリデータを取得するのみであり、ホスト２への送信は実行しない。
【００９６】
優先度比較部１９０が内部優先度が外部優先度よりも大きいと判定した場合（ステップＳ４１０；Ｙｅｓ）、キャッシュ更新部２００ｂは、応答データに含まれるアクセス回数をインクリメントすることにより更新する（ステップＳ４１１）。
【００９７】
そして、キャッシュ更新部２００ｂは、ライト要求の対象であるライトデータと、ステップＳ４１１において更新されたアクセス回数とを、メインメモリ３ｂ上のライト要求の対象であるアドレスに書き込む（ステップＳ４１２）。そして、本処理を終了する。
【００９８】
優先度比較部１９０が内部優先度が外部優先度よりも大きくないと判定した場合（ステップＳ４１０；Ｎｏ）、ステップＳ４１３〜Ｓ４１４において、キャッシュ更新部２００ｂは、リード要求処理のステップＳ３１２〜Ｓ３１３と同様の処理をライト要求について実行する。
【００９９】
そして、キャッシュ更新部２００ｂは、ライト要求の対象であるライトデータと、ステップＳ４１４において更新されたアクセス回数とを、キャッシュメモリ４ｂに書き込む（ステップＳ４１５）。そして、本処理を終了する。
【０１００】
以上のように構成されるキャッシュ制御装置１ｂにおいて、アクセス時間及びアクセス回数に基づいて優先度が取得され、取得された優先度に基づいてミス判定時にキャッシュメモリ４ｂに記憶されているキャッシュメモリデータをメインメモリ３ｂに記憶されているメインメモリデータ置き換えるか否かの判定が行われる。このように、アクセス回数及びアクセス時間に基づいて優先度が取得されるため、ホスト２の応答待ち時間を処理全体として最小にすることができ、メインメモリ３ｂへのアクセス性能をさらに向上させることができる。
【０１０１】
また、実施形態３において、メインメモリ３ｂ及びキャッシュメモリ４ｂがアクセス回数を記憶している。従って、メインメモリ３ｂに記憶されているデータについて、そのアクセス回数をユーザが設定することにより、任意の優先度を付けることができる。例えば、優先的にキャッシュメモリ４上に保持しておきたいデータがある場合、そのデータに対応する、メインメモリ３ｂに記憶されているアクセス回数を、優先的に保持しなくてもよいデータのアクセス回数よりも大きい値を予め設定しておくことで、キャッシュメモリ４上に優先的に保持することができる。
【０１０２】
以上、本発明の実施形態１乃至３について説明したが、本発明は実施形態１乃至３によって限定されるものではない。
【０１０３】
例えば、実施形態１乃至３において、キャッシュメモリ４，４ｂにおけるキャッシュのマッピング方式としてダイレクトマップ方式を適用する場合について説明したが、本発明に適用可能なキャッシュのマッピング方式はこれに限られない。例えば、セット・アソシアティブ方式を適用してもよい。
【０１０４】
また、実施形態１乃至３において、アドレス毎に、ホスト２によるそのアドレスへのアクセス回数、及びホスト２によるそのアドレスへのアクセス時間が記憶されている例について説明したが、アクセス回数及びアクセス時間は、アドレス毎に対応づけられていなくてもよい。例えば、１または複数のアドレスを含むアドレス領域毎に、アクセス回数及びアクセス時間が対応付けて記憶されていてもよい。例えば、ＳＲＡＭ、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等の複数の異なる外部記憶装置をメインメモリとする場合、各外部記憶装置によってアクセス時間は異なるが、同じ外部記憶装置であれば、異なるアドレスであってもアクセス時間は同じと考えることができる。従って、外部記憶装置において規定される１または複数のアドレスの集合をアドレス領域とし、外部記憶装置毎、すなわちアドレス領域毎にアクセス回数及びアクセス時間が対応付けて記憶される構成であってもよい。このような構成により、実施形態１乃至３と同様に、ホスト２の応答待ち時間を処理全体として短縮することができ、メインメモリ３へのアクセス性能を向上させることができる。
【符号の説明】
【０１０５】
１，１ａ，１ｂ  キャッシュ制御装置
１１０  要求制御部
１２０  応答制御部
１３０  アクセス回数記憶部
１３１  アクセス回数管理テーブル
１４０  アクセス時間記憶部
１４１  アクセス時間管理テーブル
１５０，１５０ｂ  キャッシュチェック部
１６０  ヒット・ミス判定部
１７０，１７０ｂ  内部優先度取得部
１８０，１８０ｂ外部優先度取得部
１９０  優先度比較部
２００，２００ｂ  キャッシュ更新部
２１０  外部Ｉ／Ｆ部
２      ホスト
３，３ｂ  メインメモリ
４，４ｂ  キャッシュメモリ
５      バススイッチ
【図１】
0005868213.tif 000002
【図２】
0005868213.tif 000003
【図３】
0005868213.tif 000004
【図４】
0005868213.tif 000005
【図５】
0005868213.tif 000006
【図６】
0005868213.tif 000007
【図７】
0005868213.tif 000008
【図８】
0005868213.tif 000009
【図９】
0005868213.tif 000010
【図１０】
0005868213.tif 000011