(57)【特許請求の範囲】
【請求項１】
複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、
前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムであって、
前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出するカウント手段と、
前記カウント手段により算出された前記ソース情報毎のカウント値が増加するに従がって、前記キャッシュメモリの各レベルのうち、スワップ処理の対象となるレベルの優先順位を高く決定する優先順位決定手段と、
前記優先順位決定手段により決定された前記優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定するレベル決定手段と、
を備える、ことを特徴とするキャッシュメモリ制御システム。
【請求項２】
請求項１記載のキャッシュメモリ制御システムであって、
前記カウント手段により算出された前記ソース情報毎のカウント値の総合計値を算出し、前記キャッシュメモリの全容量数に対する前記算出した総合計値の割合を算出する割合算出手段を更に備え、
前記レベル決定手段は、前記割合算出手段により算出された前記割合が所定割合以上となるとき、前記優先順位決定手段により決定された前記優先順位に従って、前記スワップ処理を行うレベルを決定する、ことを特徴とするキャッシュメモリ制御システム。
【請求項３】
請求項１又は２記載のキャッシュメモリ制御システムであって、
前記キャッシュメモリに記憶されている各レベルの情報の索引を行う索引手段と、
前記索引手段により索引された索引結果である前記キャッシュメモリの各レベルの情報を格納する第１レジスタ手段と、を更に備え、
前記レベル決定手段は、前記第１レジスタ手段に格納された前記キャッシュメモリの各レベルの情報と前記所定情報のキーアドレスとの比較結果、および、前記優先順位決定手段により決定された前記優先順位に基づいて、前記スワップ処理を行うレベルを決定する、ことを特徴とするキャッシュメモリ制御システム。
【請求項４】
請求項３記載のキャッシュメモリ制御システムであって、
前記レベル決定手段は、
前記各レベルの情報のうち、前記キーアドレスと一致した前記レベルを抽出し、出力するヒットレベル決定部と、
前記各レベルの情報のうち、前記キーアドレスと一致する前記レベルがないとき、前記キャッシュメモリ内で空いているレベルを抽出し、出力するミスレベル決定部と、
前記キーアドレスと一致するレベルがなく、かつ前記キャッシュメモリ内で空いているレベルがないときに、前記優先順位決定手段により決定された前記優先順位に基づいて、前記スワップ処理を行うレベルを決定するスワップレベル決定部と、
前記ヒットレベル決定部、前記ミスレベル決定部、又は前記スワップレベル決定部から出力される前記レベルを決定するレベル決定部と、
を有する、ことを特徴とするキャッシュメモリ制御システム。
【請求項５】
請求項３又は４記載のキャッシュメモリ制御システムであって、
前記第１レジスタ手段に格納された前記キャッシュメモリの各レベルの情報のうち、前記レベル決定手段により決定された前記レベルの情報を選択するレベル選択手段と、
前記レベル選択手段により選択された前記レベルの情報を格納する第２レジスタ手段と、を更に備える、ことを特徴とするキャッシュメモリ制御システム。
【請求項６】
複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムの制御方法であって、
前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出し、
前記算出されたソース情報毎のカウント値が増加するに従がって、前記キャッシュメモリの各レベルのうち、スワップ処理の対象となるレベルの優先順位を高く決定し、
前記決定された優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定する、
ことを特徴とするキャッシュメモリ制御システムの制御方法。
【請求項７】
複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムの制御プログラムであって、
前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出する処理と、
前記算出されたソース情報毎のカウント値が増加するに従がって、前記キャッシュメモリの各レベルのうち、スワップ処理の対象となるレベルの優先順位を高く決定する処理と、
前記決定された優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定する処理と、
をコンピュータに実行させることを特徴とするキャッシュメモリ制御システムの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサから出力される所定情報をキャッシュメモリに夫々記憶させる制御を行うキャッシュメモリ制御システム、その制御方法及び制御プログラムに関するものである。
【背景技術】
【０００２】
近年、ハードウェアの進歩と共にソフトウェアも複雑化しており、複数のプロセスを同時に処理する必要が生じている。このように、複数のプロセスを同時に処理する場合、全プロセスの完了を待って別のプロセスが開始するようなケースが生じ、この同時処理の過程で、一方のプロセスが他のプロセスを処理するために、例えば、キャッシュメモリのスワップ処理などが行われている。これにより、処理時間の遅延が生じ、システム全体の性能低下が懸念されている。このような問題を解決すべく様々のマルチプロセッサシステムが開発されている。
【０００３】
上記スワップ処理において、マルチプロセッサシステムは、例えば、キャッシュやディレクトリ方式のディレクトリ、スヌープ方式のタグで新規の所定情報をキャッシュメモリのレベルに登録する場合、各エントリのレベルがフル状態のときには、何れかのレベルの情報を吐き出してその空いたレベルに新規情報を登録することとなる。
【０００４】
ここで、従来のスワップ処理におけるレベル選択の方法は、ラウンドロビンやLRU（古い情報から選択）、ランダムなどによる選択、優先度の高いプロセッサが使用するレベルを残す方式、又はそれぞれを組み合わせた方式が採用されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１４５７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、マルチプロセッサシステムに対して、従来のレベル選択方法を用いた場合、キャッシュメモリの各レベルに登録されている情報に関して、夫々どのソース（例えばプロセッサなど）からの情報なのか全体として管理されていない。このため、処理中のプロセスが登録した情報をスワップ処理してしまったり、又は、ある特定のプロセスが登録する情報のみが常にスワップ処理されてしまったりすることがある。
【０００７】
ここで、あるプロセスが別のプロセスの完了を待ち合わせている場合、待ち合わせ対象のプロセスのスワップ処理が頻発しその完了までの時間が遅延したとき、次プロセスの開始ができずに待ち時間が発生するため、システム全体の処理性能が低下してしまうという問題が生じている。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、処理性能を向上させることができるキャッシュメモリ制御システム、その制御方法及び制御プログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の一態様は、複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムであって、前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出するカウント手段と、前記カウント手段により算出された前記ソース情報毎のカウント値に基づいて、前記キャッシュメモリの各レベルのうちスワップ処理の対象となるレベルの優先順位を決定する優先順位決定手段と、  前記優先順位決定手段により決定された前記優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定するレベル決定手段と、を備える、ことを特徴とするキャッシュメモリ制御システムである。
【００１０】
また、上記目的を達成するための本発明の一態様は、複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムの制御方法であって、前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出し、前記算出されたソース情報毎のカウント値に基づいて、前記キャッシュメモリの各レベルのうちスワップ処理の対象となるレベルの優先順位を決定し、前記決定された優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定する、ことを特徴とするキャッシュメモリ制御システムの制御方法であってもよい。
【００１１】
さらに、上記目的を達成するための本発明の一態様は、複数のプロセッサから出力される所定情報を、キャッシュメモリの各レベルに夫々記憶させる制御を行うと共に、前記所定情報は、前記出力先のプロセッサを示すソース情報を含む、キャッシュメモリ制御システムの制御プログラムであって、前記ソース情報毎に、前記キャッシュメモリの各レベルに記憶されている前記ソース情報の数をカウントしカウント値として算出する処理と、
前記算出されたソース情報毎のカウント値に基づいて、前記キャッシュメモリの各レベルのうちスワップ処理の対象となるレベルの優先順位を決定する処理と、前記決定された優先順位に基づいて、前記キャッシュメモリの各レベルうち、スワップ処理を行う前記レベルを決定する処理と、をコンピュータに実行させることを特徴とするキャッシュメモリ制御システムの制御プログラムであってもよい。
【発明の効果】
【００１２】
本発明によれば、処理性能を向上させることができるキャッシュメモリ制御システム、その制御方法及び制御プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るキャッシュメモリ制御システムの機能ブロック図である。
【図２】本発明の一実施形態に係るキャッシュメモリ制御システムの概略的な構成を示すブロック図である。
【図３】本発明の一実施形態に係るキャッシュメモリ制御システムの制御処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の一実施形態に係るキャッシュメモリ制御システムの機能ブロック図である。本実施形態に係るキャッシュメモリ制御システム１は、複数のプロセッサ１１から出力される所定情報を、キャッシュメモリ１２の各レベルに夫々記憶させる制御を行うものである。ここで、所定情報は、出力先のプロセッサ１１を示すソース情報を含んでいる。
【００１５】
また、キャッシュメモリ制御システム１は、ソース情報毎に、キャッシュメモリ１２の各レベルに記憶されているソース情報の数を、カウント値として算出するカウント手段２と、カウント手段２により算出されたソース情報毎のカウント値に基づいて、キャッシュメモリ１２の各レベルのうちスワップ処理の対象となるレベルの優先順位を決定する優先順位決定手段３と、優先順位決定手段３により決定された優先順位に基づいて、キャッシュメモリ１２の各レベルうち、スワップ処理を行うレベルを決定するレベル決定手段４と、を備えている。
【００１６】
これにより、ソース情報毎にキャッシュメモリ１２の使用率を均等化することができ、極端に性能低下するソースを排除することで、当該システム１全体の処理性能を向上させることができる。
【００１７】
図２は、本発明の一実施形態に係るキャッシュメモリ制御システムの概略的な構成を示すブロック図である。本実施形態に係るキャッシュメモリ制御システム１は、複数のプロセッサ１１から出力される所定情報を、キャッシュメモリ１２に夫々記憶させる制御を行う。
【００１８】
ここで、所定情報は、例えば、各プロセッサ１１の処理内容を示し、キャッシュメモリ１２に登録されるトランザクション情報１００などの情報であり、出力先のプロセッサ１１を示すソース情報を含んでいる。また、各ソース情報は、単一のプロセッサ１１を示すものであってよく、任意に組み合わせた複数のプロセッサ１１を示すものであってもよい。
【００１９】
本実施形態に係るキャッシュメモリ制御システム１は、キャッシュメモリ１２と、索引回路１３と、第１レジスタ回路１４と、カウント回路１５と、優先順位決定回路１６と、割合算出回路１７と、レベル決定回路１８と、レベル選択回路１９と、第２レジスタ回路２０と、マージ回路２１と、を備えている。
【００２０】
キャッシュメモリ１２は、例えば、複数のプロセッサ（マルチプロセッサ）１１から夫々出力されるトランザクション情報１００と、そのトランザクション情報１００に含まれるソース情報とを、レベル毎にセットアソシアティブ方式などを用いて記憶する。
【００２１】
索引回路１３は、索引手段の一具体例であり、キャッシュメモリ１２に登録されるトランザクション情報１００を受信すると、キャッシュメモリ１２に記憶されている各レベルの情報の索引を実行する。そして、索引回路１３は、その索引結果であるキャッシュメモリ１２の各レベルの情報を、キャッシュメモリ１２を介して第１レジスタ回路１４に出力する。さらに、第１レジスタ回路１４は、索引回路１３から出力されたキャッシュメモリ１２の各レベルの情報を格納する。
【００２２】
カウント回路１５は、カウント手段２の一具体例であり、例えば、アップ／ダウンカウンタとして構成されている。また、カウント回路１５は、トランザクション情報１００のソース情報をカウントし、ソース情報毎に、キャッシュメモリ１２の各レベルに記憶されているソース情報の数をカウントし、カウント値として算出する。
【００２３】
具体的には、カウント回路１５は、ソース情報（ソース情報Ｘ１、ソース情報Ｘ２、ソース情報Ｘ３、・・・、ソース情報Ｘｎ）毎に対応する個別カウンタ（個別カウンタＹ１、個別カウンタＹ２、個別カウンタＹ３・・・、個別カウンタＹｎ）を有している。
【００２４】
また、各個別カウンタＹｎは、対応するソース情報Ｘｎのトランザクション情報がキャッシュメモリ１２に新たに記憶されるとカウントアップ（＋１）を行い、一方、対応するソース情報Ｘｎのトランザクション情報１００がスワップ処理（リプレース処理）されるとカウントダウン（−１）を行う。このように、カウント回路１５の各個別カウンタＹ１〜Ｙｎは、上記アップ/ダウンカウントしソース情報毎に集計したカウント値Ｚ１〜Ｚｎを夫々、優先順位決定回路１６及び割合算出回路１７に出力する。
【００２５】
優先順位決定回路１６は、優先順位決定手段３の一具体例であり、カウント回路１５により算出されたソース情報毎のカウント値Ｚｎに基づいて、キャッシュメモリ１２の各レベルのうち、スワップ処理の対象となるレベルの優先順位を決定する。
【００２６】
優先順位決定回路１６は、例えば、カウント回路１５により算出されたソース情報毎のカウント値Ｚｎが増加するに従って、そのソース情報Ｘｎのトランザクション情報１００に対するスワップ処理の優先順位を高く設定し、逆に、ソース情報毎のカウント値Ｚｎが減少するに従って、そのソース情報Ｘｎのトランザクション情報１００に対するスワップ処理の優先順位を低く設定する。優先順位決定回路１６は、決定したスワップ処理の優先順位をレベル決定回路１８に対して出力する。
【００２７】
割合算出回路１７は、割合算出手段の一具体例であり、カウント回路１５により算出されたソース情報毎のカウント値Ｚ１〜Ｚｎの総合計値（ΣＺｎ）を算出し、キャッシュメモリ１２の全容量数に対する総合計値の割合を算出する。
【００２８】
具体的には、割合算出回路１７は、カウンタ回路１５の各個別カウンタＹ１〜Ｙｎから出力される各カウント値Ｚ１〜Ｚｎの総合計値を算出し、算出した総合計値をキャッシュメモリ１２の全容量数（キャッシュメモリ１２に記憶可能なトランザクション情報１００の数）で除算することで、上記総合計値の割合を算出する。割合算出回路１７は、算出した総合計値の割合を、レベル決定回路１８に対して出力する。
【００２９】
レベル決定回路１８は、レベル決定手段の一具体例であり、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報とトランザクション情報１００のキーアドレス１０１との比較結果、優先順位決定回路１６により決定された優先順位、および、割合算出回路１７により算出された総合計値の割合、に基づいて、スワップ処理を行うレベルを決定する。また、レベル決定回路１８は、ヒットレベル決定部１８１と、ミスレベル決定部１８２と、スワップレベル決定部１８３と、レベル決定部１８４と、を有している。
【００３０】
ヒットレベル決定部１８１は、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報のうち、キーアドレス１０１と一致したレベル（ヒットレベル）を抽出し、レベル決定部１８４に対して出力する。また、ミスレベル決定部１８２は、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報のうち、キーアドレス１０１と一致するレベルがないとき、キャッシュメモリ１２内で空いているレベル（ミスレベル）を抽出し、レベル決定部１８４に対して出力する。
【００３１】
さらに、スワップレベル決定部１８３は、キーアドレス１０１と一致したレベルがなく、かつキャッシュメモリ１２内で空いているレベルがないときに、すなわち、上記キャッシュメモリ１２のヒット及びミスに関係なく、優先順位決定回路１６により決定された優先順位と、割合算出回路１７により算出された総合計値の割合と、に基づいて、スワップ処理を行うレベル（スワップレベル）を決定し、レベル決定部１８４に対して出力する。
【００３２】
例えば、スワップレベル決定部１８３は、優先順位決定回路１６により決定された優先順位が最も高いレベルを、スワップ処理を行うレベルとして決定してもよい。また、スワップレベル決定部１８３は、割合算出回路１７により算出された総合計値の割合が低い場合、ラウンドロビンやLRUなどの周知の方法でスワップ処理を行うレベルを決定し、総合計値の割合が所定割合以上となると、上述のように優先順位決定回路１６により決定された優先順位に従って、スワップ処理を行うレベルを決定するのが好ましい。
【００３３】
また、レベル決定部１８４は、スワップレベル決定部１８３から出力されるレベルを、スワップ処理を行うレベルとして決定する。
【００３４】
さらに、レベル決定部１８４は、キーアドレス１０１と一致した場合、ヒットレベル決定部１８１からのヒットレベルをレベル選択回路１９に出力し、キーアドレス１０１と一致せず空きレベルがある場合、ミスレベル決定部１８２からのミスレベルをレベル選択回路１９に出力し、キーアドレス１０１と一致せずかつ空きレベルもない場合、スワップレベル決定部１８３からのスワップレベルをレベル選択回路１９に出力する。
【００３５】
レベル選択回路１９は、レベル選択手段の一具体例であり、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報のうち、レベル決定部１８４から出力されたレベルの情報を選択し、選択したレベルの情報を第２レジスタ回路２０に格納する。
【００３６】
第２レジスタ回路２０に格納されたレベルの情報は、以降の処理に使用されるため、第２レジスタ回路２０から出力され、また、キャッシュメモリ１２の更新のためマージ回路２１に入力される。そして、マージ回路２１は、マージ処理したマージ情報をキャッシュメモリ１２及びカウント回路１５の各個別カウンタＹｎに出力する。
【００３７】
ここで、キャッシュメモリ１２には、上記マージ情報が新規のトランザクション情報１００として入力される。また、上述のようにキャッシュメモリ１２の全レベルが記憶済みであるためスワップ処理が実行された場合、スワップ処理されるトランザクション情報１００のソース情報Ｘｎに応じて、対応する個別カウンタＹｎは、カウント値Ｚｎをカウントダウンする。
【００３８】
これにより、ソース情報毎に、キャッシュメモリ１２に記憶されているソース情報Ｘｎの数を管理することができ、各個別カウンタＹｎのカウント値Ｚｎの総合計が、キャッシュメモリ１２に記憶されているトランザクション情報（ソース情報）の総合計と一致することになる。
【００３９】
なお、このトランザクション情報１００の総合計が小さい（総合計値の割合が低い）場合は、上述のように、キャッシュメモリ１２の容量にまだ余裕があるため、プロセス毎に管理する必要もなく従来の方法によりスワップレベルの決定を行えばよい。スワップレベルを各ソース情報Ｘｎの数が均等になるように決定する本発明の方法と、従来の方法とを切り替えるのは、総合計値の割合で判断しているが、初期設定時に切替え点を設定できるようになっているため、システム全体の性能を見極めて設定値を変更することで、最適な性能を引き出すことができる。
【００４０】
次に、本実施の形態に係るキャッシュメモリ制御システム１の制御方法について、詳細に説明する。図３は、本実施形態に係るキャッシュメモリ制御システムの制御処理フローの一例を示すフローチャートである。
【００４１】
各プロセッサ１１からキャッシュメモリ１２に登録されるトランザクション情報１００が出力され（ステップＳ１０１）、カウント回路１５及び索引回路１３に夫々入力される。
【００４２】
カウント回路１５の対応する個別カウンタＹｎは、トランザクション情報１００のソース情報Ｘｎに基づいて、カウント値Ｚｎをカウントアップし（ステップＳ１０２）、優先順位決定回路１６は、カウント回路１５の各個別カウンタＹｎによりカウントされたソース情報毎のカウント値Ｚｎに基づいて、キャッシュメモリ１２の各レベルのうち、スワップ処理の対象となるレベルの優先順位を決定する（ステップＳ１０３）。
【００４３】
また、割合算出回路１７は、カウント回路１５により算出されたソース情報毎のカウント値Ｚ１〜Ｚｎの総合計値を算出し、キャッシュメモリ１２の全容量数に対する算出した総合計値の割合を算出する（ステップＳ１０４）。
【００４４】
一方、索引回路１３は、キャッシュメモリ１２に記憶されている各レベルの情報の索引を実行する（ステップＳ１０５）。
【００４５】
次に、レベル決定回路１８のヒットレベル決定部１８１は、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報のうち、キーアドレスと一致したヒットレベルを抽出したとき（ステップＳ１０６のＹＥＳ）、抽出したヒットレベルをレベル決定部１８４に対して出力し、必要に応じてヒットレベルの更新が行われ（ステップＳ１０７）、本処理を終了する。
【００４６】
また、ミスレベル決定部１８２は、第１レジスタ回路１４に格納されたキャッシュメモリ１２の各レベルの情報のうち、キーアドレスと一致するレベルがなく（ステップＳ１０６のＮＯ）、キャッシュメモリ１２内で空いているミスレベルを抽出したとき（ステップＳ１０８のＹＥＳ）、抽出したミスレベルをレベル決定部１８４に対して出力し、ミスレベルへのトランザクション情報の登録が行われ（ステップＳ１０９）、本処理を終了する。
【００４７】
さらに、スワップレベル決定部１８４が、キーアドレスと一致したレベルがなく、かつキャッシュメモリ１２内で空いているレベルがないとき（ステップＳ１０８のＮＯ）、スワップレベル決定部１８３は、割合算出回路１７により算出された総合計値の割合が所定割合以上であるか否かを判断する（ステップＳ１１０）。
【００４８】
スワップレベル決定部１８３は、割合算出回路１７により算出された総合計値の割合が所定割合以上であると判断すると（ステップＳ１１０のＹＥＳ）、優先順位決定回路１６により決定された優先順位に従って、スワップ処理を行うレベルを決定し（ステップＳ１１１）、その決定されたレベルに対してスワップ処理が行われると共に、新規のトランザクション情報が登録される。
【００４９】
一方、スワップレベル決定部１８３は、割合算出回路１７により算出された総合計値の割合が所定割合以上でないと判断すると（ステップＳ１１０のＮＯ）、従来の方法でスワップ処理を行うレベルを決定し（ステップ１１２）、その決定されたレベルに対してスワップ処理が行われると共に、新規のトランザクション情報が登録される。
【００５０】
以上、本実施形態に係るキャッシュメモリ制御システム１によれば、ソース情報毎にキャッシュメモリ１２の使用率を均等化することができ、極端に性能低下するソース（プロセッサ１１）を排除することで、当該システム１全体の処理性能を向上させることができる。なお、簡易な構成で、しかもスワップ処理時のレベル選択制御を僅かに変更するだけで、上記処理性能を向上させることができるためコスト低減に繋がる。また、初期設定を変更するだけで、当該システム１の最適な性能を引き出すことができるため、システムの柔軟性も確保できる。
【００５１】
なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００５２】
例えば、上記一実施形態において、キャッシュメモリ１２の一貫性を保つためのキャッシュコヒーレンシを管理するスヌープ方式やディレクトリ方式を適用することも可能である。この場合、キャッシュメモリ制御システム１は、スヌープ方式ではタグを、ディレクトリ方式ではディレクトリを有し、キャッシュメモリ１２に登録している情報を予め決められたアルゴリズムで管理する。タグ及びディレクトリにおいて、キャッシュメモリ１２の基本的な構造は同一で、スワップ処理が必要であるため、上記実施形態と同様の効果が期待できる。
【００５３】
また、本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【符号の説明】
【００５４】
１    キャッシュメモリ制御システム
２    カウント手段
３    優先順位決定手段
４    レベル決定手段
１１    プロセッサ
１２    キャッシュメモリ
１３    索引回路
１４    第１レジスタ回路
１５    カウント回路
１６    優先順位決定回路
１７    割合算出回路
１８    レベル決定回路
１９    レベル選択回路
２０    第２レジスタ回路
２１    マージ回路
１８１    ヒットレベル決定部
１８２    ミスレベル決定部
１８３    スワップレベル決定部
１８４    レベル決定部
【図１】
0005557313.tif 000002
【図２】
0005557313.tif 000003
【図３】
0005557313.tif 000004