(57)【要約】【課題】キャッシュ全体のヒット率を向上させるキャッシュメモリを提供することを課題とする。【解決手段】キャッシュメモリにおいて、キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段１０と、キャッシュメモリに設けられ、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域１２と、キャッシュメモリに設けられ、優先度に関係なく入れ替え対象のデータが選択される優先度無効領域１１と、データを優先度無効領域１１に登録するときに、優先度無効領域１１にデータを追加登録することによって入れ替えられるデータの優先度と優先度有効領域１２に登録されているデータの優先度とを比較し、当該比較結果に基づいて入れ替えられるデータを優先度有効領域１２に登録するか否かを判定する判定手段１０を備えることを特徴とする。【選択図】図１
2011141754.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵからの要求に応じてデータを登録し、登録されているデータをＣＰＵに出力するキャッシュメモリにおいて、
前記キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段と、
前記キャッシュメモリに設けられ、前記優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と、
前記キャッシュメモリに設けられ、前記優先度に関係なく入れ替え対象のデータが選択される優先度無効領域と、
データを前記優先度無効領域に登録するときに、前記優先度無効領域にデータを追加登録することによって入れ替えられるデータの優先度と前記優先度有効領域に登録されているデータの優先度とを比較し、当該比較結果に基づいて前記入れ替えられるデータを前記優先度有効領域に登録するか否かを判定する判定手段
を備えることを特徴とするキャッシュメモリ。
【請求項２】
前記優先度無効領域において最後にアクセスされたときからの経過時間が最も長いデータを、前記追加するデータと入れ替えられるデータとすること特徴とする請求項１に記載するキャッシュメモリ。
【請求項３】
前記優先度有効領域と前記優先度無効領域とに割り当てられる領域の大きさを変更可能とすることを特徴とする請求項１又は請求項２に記載するキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリに関する。
【背景技術】
【０００２】
一般に、ＣＰＵは、メインメモリとのデータやプログラムのやりとりを高速化するために、キャッシュメモリを備えている。ＣＰＵでデータやプログラムに対してアクセス要求すると、それらがキャッシュメモリ上にない場合にはメインメモリからキャッシュエントリに登録される。この際、キャッシュエントリが一杯の場合、キャッシュメモリに設定された論理（ＬＲＵ等）に基づいて追い出すキャッシュエントリが選択され、その選択されたキャッシュエントリの内容が棄却されたりあるいはメインメモリに追い出される。
【０００３】
通常、キャッシュメモリでは、プログラムやデータが平等に取り扱われる。しかし、ＯＳの割込み処理等の高速な応答性が要求されるプログラムやデータについては、極力、キャッシュメモリ上に極力保持する必要がある。そこで、特定のプログラムやデータを優先してキャッシュメモリ上に保持するために、優先度方式等が採用されている。例えば、特許文献１には、各データに優先度が設定されており、キャッシュメモリに登録されているデータをＣＰＵからアクセス要求されたデータと入れ替える際に優先度の低いデータから消去することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−４８４４７号公報
【特許文献２】特開２００３−９９３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように優先度方式では、高優先度のデータがキャッシュメモリ上に保持されるので、高優先度のデータがキャッシュメモリ領域の大部分を占める場合がある。その結果、低優先度のデータが頻繁に入れ替えられる。このような場合に、低優先度のデータのアクセス要求の頻度が高くなると、ミスヒットが増加し、キャッシュ全体のヒット率が低下する。
【０００６】
そこで、本発明は、キャッシュ全体のヒット率を向上させるキャッシュメモリを提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明に係るキャッシュメモリは、ＣＰＵからの要求に応じてデータを登録し、登録されているデータをＣＰＵに出力するキャッシュメモリにおいて、キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段と、キャッシュメモリに設けられ、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と、キャッシュメモリに設けられ、優先度に関係なく入れ替え対象のデータが選択される優先度無効領域と、データを優先度無効領域に登録するときに、優先度無効領域にデータを追加登録することによって入れ替えられるデータの優先度と優先度有効領域に登録されているデータの優先度とを比較し、当該比較結果に基づいて入れ替えられるデータを優先度有効領域に登録するか否かを判定する判定手段を備えることを特徴とする。
【０００８】
このキャッシュメモリは、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と優先度に関係なく入れ替え対象のデータが選択される優先度無効領域を有している。優先度無効領域では、優先度に関係なく所定の処理論理に基づいて入れ替えられるデータが選択されるので、高優先度のデータでも入れ替えられる場合がある。優先度有効領域では、優先度に基づいて入れ替えられるデータが選択されるので、低優先度のデータから入れ替えられ、高優先度のデータが優先的に保持される。キャッシュメモリでは、優先度付与手段によってキャッシュメモリに登録されているデータに優先度をそれぞれ付与する。そして、キャッシュメモリでは、データを優先度無効領域に登録するときに、判定手段によって優先度無効領域から入れ替えられる（追い出される）データの優先度と優先度有効領域に登録されているデータの優先度とを比較し、その比較結果に基づいて優先度無効領域から入れ替えられるデータを優先度有効領域に登録するか否かを判定する。これによって、優先度有効領域には、高優先度のデータを優先的に残すことができ、キャッシュメモリに極力保持しておきたいデータを残しておくことができる。一方、優先度無効領域には、優先度に関係なく、所定の処理論理に基づいてデータを残しておくことができる。例えば、低優先度のデータに対する要求頻度が高い場合でも、その低優先度のデータを優先度無効領域に残しておくことができるので、低優先度のデータが頻繁に入れ替わることなく、低優先度のデータのミスヒットを防止できる。このように、このキャッシュメモリでは、優先度有効領域と優先度無効領域を設けて、優先度方式でデータを入れ替える領域を限定することにより、高優先度のデータをキャッシュメモリ上に保持しつつ、キャッシュ全体のヒット率を向上させることができる。
【０００９】
なお、キャッシュメモリに登録されるデータには、ＣＰＵで取り扱われるプログラム（命令）等も含む。また、優先度無効領域と優先度有効領域とは、１つのメモリ上に構成されてもよいし、別体のメモリ上に構成されてもよい。
【００１０】
本発明の上記キャッシュメモリでは、優先度無効領域において最後にアクセスされたときからの経過時間が最も長いデータを、追加するデータと入れ替えられるデータとすると好適である。
【００１１】
このキャッシュメモリの優先度無効領域では入れ替えられるデータを選択する処理論理として最後にアクセスされたときからの経過時間が最も長いデータを選択することにより、優先度無効領域には最後にアクセスされたときからの経過時間の短いデータが残り、ＣＰＵからの要求頻度の高いデータを優先度無効領域に優先的に残すことができる。そのため、低優先度のデータに対する要求頻度が高い場合には、その低優先度のデータを優先度無効領域に残しておくことができる。その結果、低優先度のデータでも、要求頻度が高ければ、ミスヒットせず、キャッシュ全体のヒット率を向上させることができる。
【００１２】
本発明の上記キャッシュメモリでは、優先度有効領域と優先度無効領域とに割り当てられる領域の大きさを変更可能としてもよい。
【００１３】
このキャッシュメモリでは、優先度有効領域と優先度無効領域とに割り当てられる領域の大きさを変更可能とすることにより、処理状況等に応じて優先度有効領域を大きくしたりあるいは優先度無効領域を大きくしたりできる。これによって、例えば、高優先度のデータを多くキャッシュメモリ上に保持しておくようにしたり、あるいは、要求頻度の高いデータを多くキャッシュメモリ上に保持しておくようにしたりできる。
【発明の効果】
【００１４】
本発明によれば、優先度有効領域と優先度無効領域を設けて、優先度方式でデータを入れ替える領域を限定することにより、高優先度のデータをキャッシュメモリ上に保持しつつ、キャッシュ全体のヒット率を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係るＣＰＵの構成図である。
【図２】本実施の形態に係る領域リストの一例である。
【図３】本実施の形態に係るＤＡＴ管理表の一例である。
【図４】本実施の形態に係るＭＭＵによるキャッシュとキャッシュ拡張領域との間の制御の流れを示すフローチャートである。
【図５】他の形態のＣＰＵの構成図である。
【図６】他の形態のＣＰＵの構成図である。
【図７】他の形態のＣＰＵの構成図である。
【図８】他の形態のＣＰＵの構成図である。
【図９】キャッシュとキャッシュ拡張領域との境界変更の一例である。
【図１０】キャッシュ拡張領域の固定化／作業領域化の一例である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明に係るキャッシュメモリの実施の形態を説明する。なお、各図において同一又は相当する要素については同一の符号を付し、重複する説明を省略する。
【００１７】
本実施の形態では、本発明に係るキャッシュメモリを、チップ内にキャッシュメモリを備えるＣＰＵ[Central Processing Unit]に適用する。本実施の形態に係るＣＰＵは、ＯＳ[Operating System]とアプリケーションが混在する環境で動作し、メインメモリとのやりとりなどを高速化するためにキャッシュメモリを備えている。
【００１８】
図１〜図３を参照して、本実施の形態に係るＣＰＵ１について説明する。図１は、本実施の形態に係るＣＰＵの構成図である。図２は、本実施の形態に係る領域リストの一例である。図３は、本実施の形態に係るＤＡＴ管理表の一例である。なお、ＣＰＵ１の構成について、キャッシュメモリの制御に関する構成要素だけを記載しており、それ以外の構成要素については省略してある。
【００１９】
ＣＰＵ１では、メインメモリ２からプログラムやデータを参照する場合や処理中のデータを読み出し／書き込みする場合などに、ＭＭＵ[Memory Management Unit]１０による制御によってキャッシュメモリを利用する。特に、ＣＰＵ１では、キャッシュメモリ上に高優先度のデータを保持しつつキャッシュメモリ全体のヒット率の向上させるために、キャッシュメモリがＬＲＵ[Least Recently Used]方式のキャッシュ１１と優先度方式のキャッシュ拡張領域１２からなる。なお、本実施の形態では、ＭＭＵ１０が特許請求の範囲に記載する優先度付与手段及び判定手段に相当し、キャッシュ１１が特許請求の範囲に記載する優先度無効領域に相当し、キャッシュ拡張領域１２が特許請求の範囲に記載する優先度有効領域に相当する。
【００２０】
なお、ＣＰＵ１で取り扱われるプログラム（命令）やデータに対して、キャッシュメモリ上で保持（残存）したい順に（キャッシュ１１が一杯でキャッシュ１１からパージされる場合にキャッシュ１１からキャッシュ拡張領域１２にコピー保持したい順に）、キャッシュコピー保持（残存）優先度（以下、「優先度」と記載）が設定される。この優先度に基づいて、キャッシュ１１からパージされるキャッシュエントリがキャッシュ拡張領域１２のキャッシュエントリにコピー保持されるか否かが決まる。なお、優先度については、優先度の高いプログラムやデータにだけ設定されてもよいし、あるいは、全てのプログラムやデータに設定されてもよい。優先度の高いものとしては、例えば、ＯＳの割込み処理等の高速な応答性が必要とされる命令、繰り返し実行される命令がある。
【００２１】
優先度は、図２に示すような領域リストあるいは図３に示すようなＤＡＴ[Dynamic Address Translation]管理表（制御表）等に設定される。領域リストは、各システムや各ＣＰＵに設けられ、データやプログラム毎にメインメモリ２に格納されている領域のアドレスと領域長に加えて優先度が設定される。ＤＡＴ管理表は、ページ毎にＤＡＴ情報（仮想ページを実ページに変換する情報等）に加えて優先度が設定される。領域リスト方式は柔軟性に優れており、ＤＡＴ管理表方式はキャッシュとの連携性に優れている。
【００２２】
キャッシュ１１は、従来と同様のキャッシュ領域である。キャッシュ１１では、キャッシュエントリが一杯の場合にパージする（追い出す）キャッシュエントリを選択するときに、ＬＲＵ方式が利用される。ＬＲＵ方式では、パージするキャッシュエントリとして最後にアクセスされたときからの経過時間が最も長いキャッシュエントリを選択する。
【００２３】
キャッシュ拡張領域１２は、キャッシュ１１に対して設けられるキャッシュ領域である。キャッシュ拡張領域１２は、キャッシュ１１と同じ形式で同じ性能を有するキャッシュである。キャッシュ拡張領域１２では、キャッシュエントリが一杯の場合にパージするキャッシュエントリを選択するときに、キャッシュエントリに登録されている優先度（キャッシュエントリに登録されているデータやプログラム（命令）に設定されている優先度）を用いた優先度方式が利用される。優先度方式では、パージするキャッシュエントリとして優先度の低いほうのキャッシュエントリを選択する。なお、キャッシュ拡張領域１２の各キャッシュエントリは、キャッシュ１１のキャッシュエントリと同じタイミングでパージされる。パージされる場合としては、例えば、エントリ対象のプログラムやデータの領域の消失時、キャッシュエントリの無効化命令、他のＣＰＵからの参照時がある。
【００２４】
なお、キャッシュ１１とキャッシュ拡張領域１２は、１つのメモリを境界で分けて構成されてもよいし、あるいは、別体のメモリにそれぞれ構成されてもよい。キャッシュ１１やキャッシュ拡張領域１２には、データ用キャッシュや命令用キャッシュのキャッシュエントリ（例えば、３２ｂｙｔｅ単位）が設けられており、各キャッシュエントリには優先度を格納するための領域が確保されている。
【００２５】
ＭＭＵ１０は、ＣＰＵ１が要求するメモリアクセスを管理するユニットである。ここでは、ＣＰＵ１からの要求でプログラムの命令又はデータが参照された場合（命令又はデータの参照領域のアドレスで要求される）に、それらが命令用のキャッシュエントリ又はデータ用のキャッシュエントリに登録されていてないときに、ＭＭＵ１０で行うキャッシュ１１とキャッシュ拡張領域１２間の制御について詳細に説明する。
【００２６】
ＭＭＵ１０では、まず、ＣＰＵ１から要求された命令又はデータの優先度を領域リスト又はＤＡＴ管理表から取得する。そして、ＭＭＵ１０では、キャッシュ１１のキャッシュエントリが空いている場合、空いているキャッシュエントリに、その命令の内容又はデータの内容（参照領域の内容）と共に優先度を登録する。
【００２７】
キャッシュ１１のキャッシュエントリが一杯の場合、ＭＭＵ１０では、キャッシュ１１に定義されている論理のＬＲＵによって、キャッシュ１１からパージするキャッシュエントリ（ウェイ）を選択し、その選択したキャッシュエントリに登録されている優先度を読み出す。この選択されたキャッシュエントリが、キャッシュ１１から入れ替えられるキャッシュエントリである。そして、ＭＭＵ１０では、キャッシュ拡張領域１２のキャッシュエントリが空いている場合、キャッシュ拡張領域１２の空いているキャッシュエントリに、キャッシュ１１からパージされるキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を登録（コピー）する。さらに、ＭＭＵ１０では、キャッシュ１１において選択されているキャッシュエントリをパージ（無効化）するとともに、そのキャッシュ１１において空いたキャッシュエントリにＣＰＵ１から要求された命令の内容又はデータの内容及び優先度を登録する（すなわち、キャッシュ１１のキャッシュエントリの入れ替えを行う）。
【００２８】
ＭＭＵ１０では、キャッシュ拡張領域１２のキャッシュエントリが空いていない場合、キャッシュ拡張領域１２の各キャッシュエントリに登録されている優先度の中から最低の優先度を抽出し、その最低の優先度とキャッシュ１１からパージされるキャッシュエントリに登録されている優先度を比較する。
【００２９】
ＭＭＵ１０では、キャッシュ１１からパージされるキャッシュエントリに登録されている優先度のほうが高い場合、キャッシュ拡張領域１２において最低の優先度のキャッシュエントリをパージし、その空いたキャッシュエントリにキャッシュ１１からパージされるキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を登録する（すなわち、キャッシュ１１からパージされるキャッシュエントリをキャッシュ拡張領域１２のキャッシュエントリにコピーし、キャッシュ拡張領域１２のキャッシュエントリの入れ替えを行う）。さらに、ＭＭＵ１０では、キャッシュ１１において選択されているキャッシュエントリをパージ（無効化）するとともに、そのキャッシュ１１において空いたキャッシュエントリにＣＰＵ１から要求された命令の内容又はデータの内容及び優先度を登録する。
【００３０】
ＭＭＵ１０では、キャッシュ拡張領域１２の最低の優先度のほうが高い場合、キャッシュ拡張領域１２のキャッシュエントリの入れ替えを行うことなく、キャッシュ１１において選択されているキャッシュエントリをパージ（無効化）するとともに、そのキャッシュ１１において空いたキャッシュエントリにＣＰＵ１から要求された命令の内容又はデータの内容及び優先度を登録する。
【００３１】
なお、ＣＰＵ１からの要求でプログラムの命令又はデータが参照された場合、それがキャッシュ拡張領域１２のキャッシュエントリに登録されている場合、ＭＭＵ１０では、そのキャッシュ拡張領域１２のキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を、キャッシュ１１の空いているキャッシュエントリに再登録（コピー）する。キャッシュ１１に空いているキャッシュエントリがない場合、ＭＭＵ１０では、上記と同様の制御によって、キャッシュ１１からパージするキャッシュエントリを選択する。
【００３２】
図１〜図３を参照して、ＣＰＵ１からプログラムの命令又はデータの参照が参照領域アドレスによって要求された場合に、その命令が命令用キャッシュエントリに登録されていない又はそのデータがデータ用キャッシュエントリに登録されていないときの動作を、図４のフローチャートに沿って説明する。図４は、本実施の形態に係るＭＭＵによるキャッシュとキャッシュ拡張領域との間の制御の流れを示すフローチャートである。
【００３３】
命令又はデータの参照領域アドレスが入力されると、ＭＭＵ１０では、その参照領域がキャッシュエントリに登録されていない場合、その参照領域の優先度＜Ａ＞を領域リスト又はＤＡＴ管理表から求める（Ｓ１）。そして、ＭＭＵ１０では、その参照領域に対するキャッシュ１１でのキャッシュエントリを求め（Ｓ２）、キャッシュ１１のキャッシュエントリに空きがあるか否かを判定する（Ｓ３）。Ｓ３にてキャッシュ１１のキャッシュエントリに空きがあると判定した場合、ＭＭＵ１０では、キャッシュ１１の空いているキャッシュエントリに優先度＜Ａ＞の参照領域の内容と優先度を登録し、有効化する（Ｓ１２）。
【００３４】
Ｓ３にてキャッシュ１１のキャッシュエントリに空きがないと判定した場合、ＭＭＵ１０では、キャッシュ１１に定義されている論理（ＬＲＵ等）によって、キャッシュ１１から今回追い出すキャッシュエントリ（ウェイ）を選択する（Ｓ４）。そして、ＭＭＵ１０では、その選択したキャッシュエントリ（ウェイ）に登録されている優先度＜Ｂ＞を求める（Ｓ５）。
【００３５】
ＭＭＵ１０では、キャッシュ拡張領域１２のキャッシュエントリに空きがあるか否かを判定する（Ｓ６）。Ｓ６にてキャッシュ拡張領域１２のキャッシュエントリに空きがあると判定した場合、ＭＭＵ１０では、そのキャッシュ拡張領域１２の空いているキャッシュエントリに優先度＜Ｂ＞の参照領域の内容と優先度を登録し、有効化する（Ｓ１０）。これによって、キャッシュ１１から追い出されるキャッシュエントリが、キャッシュ拡張領域１２にコピー保持（残存）されたことになる。そして、ＭＭＵ１０では、キャッシュ１１から優先度＜Ｂ＞のキャッシュエントリを追い出して無効化し（Ｓ１１）、そのキャッシュ１１の空いたキャッシュエントリに優先度＜Ａ＞の参照領域の内容と優先度を登録して有効化する（Ｓ１２）。
【００３６】
Ｓ６にてキャッシュ拡張領域１２のキャッシュエントリに空きがないと判定した場合、ＭＭＵ１０では、キャッシュ拡張領域１２のキャッシュエントリの中で最低の優先度＜Ｃ＞のキャッシュエントリを求める（Ｓ７）。そして、ＭＭＵ１０では、キャッシュ１１から追い出されるキャッシュエントリの優先度＜Ｂ＞がキャッシュ拡張領域１２内で最低の優先度＜Ｃ＞より高いか否かを判定する（Ｓ８）。
【００３７】
Ｓ８にて優先度＜Ｂ＞が優先度＜Ｃ＞より高いと判定した場合、ＭＭＵ１０では、キャッシュ拡張領域１２から今回追い出すキャッシュエントリとして優先度＜Ｃ＞のキャッシュエントリを選択し、キャッシュ拡張領域１２から優先度＜Ｃ＞のキャッシュエントリを追い出して無効化する（Ｓ９）。そして、ＭＭＵ１０では、そのキャッシュ拡張領域１２の空いたキャッシュエントリに、優先度＜Ｂ＞の参照領域の内容と優先度を登録し、有効化する（Ｓ１０）。これによって、キャッシュ１１から追い出されるキャッシュエントリが、キャッシュ拡張領域１２内で最低の優先度＜Ｃ＞よりも優先度＜Ｂ＞が高かったので、キャッシュ拡張領域１２にコピー保持（残存）されたことになる。そして、ＭＭＵ１０では、キャッシュ１１から優先度＜Ｂ＞のキャッシュエントリを追い出して無効化し（Ｓ１１）、そのキャッシュ１１の空いたキャッシュエントリに優先度＜Ａ＞の参照領域の内容と優先度を登録して有効化する（Ｓ１２）。
【００３８】
Ｓ８にて優先度＜Ｂ＞が優先度＜Ｃ＞より低いと判定した場合、キャッシュ拡張領域１２から今回追い出されるキャッシュエントリはなく、キャッシュ拡張領域１２内で最低の優先度＜Ｃ＞のキャッシュエントリが有効のまま保持される。そして、ＭＭＵ１０では、キャッシュ１１から優先度＜Ｂ＞のキャッシュエントリを追い出し、無効化する（Ｓ１１）。これによって、キャッシュ１１から追い出されるキャッシュエントリが、キャッシュ拡張領域１２内で最低の優先度＜Ｃ＞よりも優先度＜Ｂ＞が低かったので、キャッシュ拡張領域１２にコピー保持（残存）されなかったことになる。さらに、ＭＭＵ１０では、そのキャッシュ１１の空いたキャッシュエントリに、優先度＜Ａ＞の参照領域の内容と優先度を登録し、有効化する（Ｓ１２）。
【００３９】
このＣＰＵ１によれば、キャッシュ１１の他に同じ性能を有するキャッシュ拡張領域１２を設け、キャッシュメモリの中で優先度方式で入れ替える領域を限定することにより、高優先度のデータや命令をキャッシュメモリ上に保持しつつキャッシュメモリ全体のヒット率を向上させることができ、処理の高速化を図ることができる。これによって、従来のＣＰＵ（システム）やプログラム実行の性能を低下させることなく、キャッシュヒット率が高くなる。
【００４０】
キャッシュ１１ではＬＲＵ方式でパージするキャッシュエントリを選択するので、優先度に関係なく、キャッシュ１１には最後にアクセスされたときからの経過時間の短いものが残り、アクセス頻度の高いものをキャッシュ１１上に保持することができる。そのため、低優先度のものでも、アクセス頻度が高ければ、キャッシュ１１上で保持されるので、ミスヒットを防止できる。
【００４１】
また、キャッシュ拡張領域１２では優先度方式でパージするキャッシュエントリを選択するので、優先度の高いものをキャッシュ拡張領域１２上に保持することができる。キャッシュ拡張領域１２上に保持されている場合でもキャッシュ１１上に保持されている場合と同様の性能を有するので、キャッシュ拡張領域１２上に保持されている場合でも高速に処理することができる。
【００４２】
また、キャッシュ１１やキャッシュ拡張領域１２のキャッシュエントリを固定化していないので、キャッシュの利用効率が低下せず、ＣＰＵやシステムの処理効率が低下しない。
【００４３】
なお、このようにキャッシュ１１に対応してキャッシュ拡張領域１２を設けることにより、高次キャッシュを持つ階層化キャッシュよりも、実装規模を小さくできるので、コストを低減できるとともに、各ＣＰＵの特性に合わせることができる。特に、１つのメモリを境界で分けてキャッシュ１１とキャッシュ拡張領域１２を構成することにより、より低コストを図ることができる。
【００４４】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【００４５】
例えば、実施の形態ではＣＰＵとキャッシュメモリの構成の一例で説明したが、ＣＰＵとキャッシュメモリの構成について様々な形態に適用可能である。例えば、図５に示すように、１つのＣＰＵを備え、Ｌ１キャッシュとＬ２キャッシュを持つ階層化キャッシュの場合、高次レベルのＬ２キャッシュの一部又は全部をＬ１キャッシュの拡張領域として構成してもよい。また、図６に示すように、複数のＣＰＵを備え、各ＣＰＵにＬ１キャッシュを持ち、全ＣＰＵで共有のＬ２キャッシュを持つ階層化キャッシュの場合、高次レベルのＬ２キャッシュの一部又は全部を各ＣＰＵのＬ１キャッシュの拡張領域として構成してもよい。また、図７に示すように、１つのＣＰＵを備え、Ｌ１キャッシュとＬ２キャッシュを持つ階層化キャッシュの場合、Ｌ１キャッシュ内で領域分割してＬ１キャッシュの拡張領域を構成するとともに、Ｌ２キャッシュ内で領域分割してＬ２キャッシュの拡張領域を構成してもよい。また、図８に示すように、複数のＣＰＵを備え、各ＣＰＵにＬ１キャッシュを持ち、全ＣＰＵ共有のＬ２キャッシュを持つ階層化キャッシュの場合、各ＣＰＵにおいてＬ１キャッシュ内で領域分割してＬ１キャッシュの拡張領域を構成するとともに、共有のＬ２キャッシュ内で領域分割してＬ２キャッシュの拡張領域を構成してもよい。
【００４６】
また、本実施の形態ではＣＰＵ内（ＣＰＵチップ内）にキャッシュメモリを備える構成としたが、ＣＰＵの外部にキャッシュメモリを設ける構成としてもよい。
【００４７】
また、本実施の形態ではキャッシュとキャッシュ拡張領域にそれぞれ割り当てられる領域の大きさを固定としたが、図９に示すように、キャッシュとキャッシュ拡張領域との境界を運用（ＯＳ、アプリケーションなど）に応じて動的に変更し、キャッシュを大きくしたりあるいはキャッシュ拡張領域を大きくしたりしてもよい。これによって、キャッシュヒット率やシステム性能を向上させることができる。この変更方法としては、運用形態の変更に基づいてコマンドなどを契機に動的に変更する方法、キャッシュとキャッシュ拡張領域の使用状況に基づいて動的に変更する方法などがある。キャッシュを大きくする場合としては、例えば、相対的に高優先度のデータが少なくなり、相対的にキャッシュの総量を大きくする場合である。キャッシュ拡張領域を大きくする場合としては、例えば、相対的に高優先度のデータが多くなった場合である。
【００４８】
また、本実施の形態ではキャッシュ拡張領域を優先度に基づいて管理したが、図１０に示すように、キャッシュ拡張領域を特定のアプリケーションやＯＳのプログラム（命令）／データ領域として固定的に保持したり、特定のアプリケーションやＯＳの（一時的かつ高速な）の作業領域（ワーク）として使用してもよい。これによって、特定のアプリケーションやＯＳ及びシステムの処理性能を向上させることができる。
【００４９】
また、本実施の形態では各データやプログラムについての優先度を固定としたが、運用（ＯＳ、アプリケーションなど）に応じて動的に優先度を変更してもよい。これによって、特定のＯＳやアプリケーション及びシステムの処理性能を向上させることができる。
【００５０】
また、本実施の形態ではキャッシュではＬＲＵによって追い出すキャッシュエントリを選択したが、ＬＩＦＯ等の他の論理によって追い出すキャッシュエントリを選択してもよい。
【００５１】
また、本実施の形態ではキャッシュエントリに登録されているデータやプログラム（命令）については優先度をそのキャッシュエントリに登録する構成としたが、キャッシュエントリに登録せずに、その都度、領域リスト又はＤＡＴ管理表から優先度を取得してもよい。
【符号の説明】
【００５２】
１…ＣＰＵ、２…メインメモリ、１０…ＭＭＵ、１１…キャッシュ、１２…キャッシュ拡張領域
【図１】
2011141754.tif 000003
【図２】
2011141754.tif 000004
【図３】
2011141754.tif 000005
【図４】
2011141754.tif 000006
【図５】
2011141754.tif 000007
【図６】
2011141754.tif 000008
【図７】
2011141754.tif 000009
【図８】
2011141754.tif 000010
【図９】
2011141754.tif 000011
【図１０】
2011141754.tif 000012