説明

キャッシュメモリ

【課題】キャッシュ全体のヒット率を向上させるキャッシュメモリを提供することを課題とする。
【解決手段】キャッシュメモリにおいて、キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段10と、キャッシュメモリに設けられ、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域12と、キャッシュメモリに設けられ、優先度に関係なく入れ替え対象のデータが選択される優先度無効領域11と、データを優先度無効領域11に登録するときに、優先度無効領域11にデータを追加登録することによって入れ替えられるデータの優先度と優先度有効領域12に登録されているデータの優先度とを比較し、当該比較結果に基づいて入れ替えられるデータを優先度有効領域12に登録するか否かを判定する判定手段10を備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュメモリに関する。
【背景技術】
【0002】
一般に、CPUは、メインメモリとのデータやプログラムのやりとりを高速化するために、キャッシュメモリを備えている。CPUでデータやプログラムに対してアクセス要求すると、それらがキャッシュメモリ上にない場合にはメインメモリからキャッシュエントリに登録される。この際、キャッシュエントリが一杯の場合、キャッシュメモリに設定された論理(LRU等)に基づいて追い出すキャッシュエントリが選択され、その選択されたキャッシュエントリの内容が棄却されたりあるいはメインメモリに追い出される。
【0003】
通常、キャッシュメモリでは、プログラムやデータが平等に取り扱われる。しかし、OSの割込み処理等の高速な応答性が要求されるプログラムやデータについては、極力、キャッシュメモリ上に極力保持する必要がある。そこで、特定のプログラムやデータを優先してキャッシュメモリ上に保持するために、優先度方式等が採用されている。例えば、特許文献1には、各データに優先度が設定されており、キャッシュメモリに登録されているデータをCPUからアクセス要求されたデータと入れ替える際に優先度の低いデータから消去することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−48447号公報
【特許文献2】特開2003−99316号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のように優先度方式では、高優先度のデータがキャッシュメモリ上に保持されるので、高優先度のデータがキャッシュメモリ領域の大部分を占める場合がある。その結果、低優先度のデータが頻繁に入れ替えられる。このような場合に、低優先度のデータのアクセス要求の頻度が高くなると、ミスヒットが増加し、キャッシュ全体のヒット率が低下する。
【0006】
そこで、本発明は、キャッシュ全体のヒット率を向上させるキャッシュメモリを提供することを課題とする。
【課題を解決するための手段】
【0007】
本発明に係るキャッシュメモリは、CPUからの要求に応じてデータを登録し、登録されているデータをCPUに出力するキャッシュメモリにおいて、キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段と、キャッシュメモリに設けられ、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と、キャッシュメモリに設けられ、優先度に関係なく入れ替え対象のデータが選択される優先度無効領域と、データを優先度無効領域に登録するときに、優先度無効領域にデータを追加登録することによって入れ替えられるデータの優先度と優先度有効領域に登録されているデータの優先度とを比較し、当該比較結果に基づいて入れ替えられるデータを優先度有効領域に登録するか否かを判定する判定手段を備えることを特徴とする。
【0008】
このキャッシュメモリは、優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と優先度に関係なく入れ替え対象のデータが選択される優先度無効領域を有している。優先度無効領域では、優先度に関係なく所定の処理論理に基づいて入れ替えられるデータが選択されるので、高優先度のデータでも入れ替えられる場合がある。優先度有効領域では、優先度に基づいて入れ替えられるデータが選択されるので、低優先度のデータから入れ替えられ、高優先度のデータが優先的に保持される。キャッシュメモリでは、優先度付与手段によってキャッシュメモリに登録されているデータに優先度をそれぞれ付与する。そして、キャッシュメモリでは、データを優先度無効領域に登録するときに、判定手段によって優先度無効領域から入れ替えられる(追い出される)データの優先度と優先度有効領域に登録されているデータの優先度とを比較し、その比較結果に基づいて優先度無効領域から入れ替えられるデータを優先度有効領域に登録するか否かを判定する。これによって、優先度有効領域には、高優先度のデータを優先的に残すことができ、キャッシュメモリに極力保持しておきたいデータを残しておくことができる。一方、優先度無効領域には、優先度に関係なく、所定の処理論理に基づいてデータを残しておくことができる。例えば、低優先度のデータに対する要求頻度が高い場合でも、その低優先度のデータを優先度無効領域に残しておくことができるので、低優先度のデータが頻繁に入れ替わることなく、低優先度のデータのミスヒットを防止できる。このように、このキャッシュメモリでは、優先度有効領域と優先度無効領域を設けて、優先度方式でデータを入れ替える領域を限定することにより、高優先度のデータをキャッシュメモリ上に保持しつつ、キャッシュ全体のヒット率を向上させることができる。
【0009】
なお、キャッシュメモリに登録されるデータには、CPUで取り扱われるプログラム(命令)等も含む。また、優先度無効領域と優先度有効領域とは、1つのメモリ上に構成されてもよいし、別体のメモリ上に構成されてもよい。
【0010】
本発明の上記キャッシュメモリでは、優先度無効領域において最後にアクセスされたときからの経過時間が最も長いデータを、追加するデータと入れ替えられるデータとすると好適である。
【0011】
このキャッシュメモリの優先度無効領域では入れ替えられるデータを選択する処理論理として最後にアクセスされたときからの経過時間が最も長いデータを選択することにより、優先度無効領域には最後にアクセスされたときからの経過時間の短いデータが残り、CPUからの要求頻度の高いデータを優先度無効領域に優先的に残すことができる。そのため、低優先度のデータに対する要求頻度が高い場合には、その低優先度のデータを優先度無効領域に残しておくことができる。その結果、低優先度のデータでも、要求頻度が高ければ、ミスヒットせず、キャッシュ全体のヒット率を向上させることができる。
【0012】
本発明の上記キャッシュメモリでは、優先度有効領域と優先度無効領域とに割り当てられる領域の大きさを変更可能としてもよい。
【0013】
このキャッシュメモリでは、優先度有効領域と優先度無効領域とに割り当てられる領域の大きさを変更可能とすることにより、処理状況等に応じて優先度有効領域を大きくしたりあるいは優先度無効領域を大きくしたりできる。これによって、例えば、高優先度のデータを多くキャッシュメモリ上に保持しておくようにしたり、あるいは、要求頻度の高いデータを多くキャッシュメモリ上に保持しておくようにしたりできる。
【発明の効果】
【0014】
本発明によれば、優先度有効領域と優先度無効領域を設けて、優先度方式でデータを入れ替える領域を限定することにより、高優先度のデータをキャッシュメモリ上に保持しつつ、キャッシュ全体のヒット率を向上させることができる。
【図面の簡単な説明】
【0015】
【図1】本実施の形態に係るCPUの構成図である。
【図2】本実施の形態に係る領域リストの一例である。
【図3】本実施の形態に係るDAT管理表の一例である。
【図4】本実施の形態に係るMMUによるキャッシュとキャッシュ拡張領域との間の制御の流れを示すフローチャートである。
【図5】他の形態のCPUの構成図である。
【図6】他の形態のCPUの構成図である。
【図7】他の形態のCPUの構成図である。
【図8】他の形態のCPUの構成図である。
【図9】キャッシュとキャッシュ拡張領域との境界変更の一例である。
【図10】キャッシュ拡張領域の固定化/作業領域化の一例である。
【発明を実施するための形態】
【0016】
以下、図面を参照して、本発明に係るキャッシュメモリの実施の形態を説明する。なお、各図において同一又は相当する要素については同一の符号を付し、重複する説明を省略する。
【0017】
本実施の形態では、本発明に係るキャッシュメモリを、チップ内にキャッシュメモリを備えるCPU[Central Processing Unit]に適用する。本実施の形態に係るCPUは、OS[Operating System]とアプリケーションが混在する環境で動作し、メインメモリとのやりとりなどを高速化するためにキャッシュメモリを備えている。
【0018】
図1〜図3を参照して、本実施の形態に係るCPU1について説明する。図1は、本実施の形態に係るCPUの構成図である。図2は、本実施の形態に係る領域リストの一例である。図3は、本実施の形態に係るDAT管理表の一例である。なお、CPU1の構成について、キャッシュメモリの制御に関する構成要素だけを記載しており、それ以外の構成要素については省略してある。
【0019】
CPU1では、メインメモリ2からプログラムやデータを参照する場合や処理中のデータを読み出し/書き込みする場合などに、MMU[Memory Management Unit]10による制御によってキャッシュメモリを利用する。特に、CPU1では、キャッシュメモリ上に高優先度のデータを保持しつつキャッシュメモリ全体のヒット率の向上させるために、キャッシュメモリがLRU[Least Recently Used]方式のキャッシュ11と優先度方式のキャッシュ拡張領域12からなる。なお、本実施の形態では、MMU10が特許請求の範囲に記載する優先度付与手段及び判定手段に相当し、キャッシュ11が特許請求の範囲に記載する優先度無効領域に相当し、キャッシュ拡張領域12が特許請求の範囲に記載する優先度有効領域に相当する。
【0020】
なお、CPU1で取り扱われるプログラム(命令)やデータに対して、キャッシュメモリ上で保持(残存)したい順に(キャッシュ11が一杯でキャッシュ11からパージされる場合にキャッシュ11からキャッシュ拡張領域12にコピー保持したい順に)、キャッシュコピー保持(残存)優先度(以下、「優先度」と記載)が設定される。この優先度に基づいて、キャッシュ11からパージされるキャッシュエントリがキャッシュ拡張領域12のキャッシュエントリにコピー保持されるか否かが決まる。なお、優先度については、優先度の高いプログラムやデータにだけ設定されてもよいし、あるいは、全てのプログラムやデータに設定されてもよい。優先度の高いものとしては、例えば、OSの割込み処理等の高速な応答性が必要とされる命令、繰り返し実行される命令がある。
【0021】
優先度は、図2に示すような領域リストあるいは図3に示すようなDAT[Dynamic Address Translation]管理表(制御表)等に設定される。領域リストは、各システムや各CPUに設けられ、データやプログラム毎にメインメモリ2に格納されている領域のアドレスと領域長に加えて優先度が設定される。DAT管理表は、ページ毎にDAT情報(仮想ページを実ページに変換する情報等)に加えて優先度が設定される。領域リスト方式は柔軟性に優れており、DAT管理表方式はキャッシュとの連携性に優れている。
【0022】
キャッシュ11は、従来と同様のキャッシュ領域である。キャッシュ11では、キャッシュエントリが一杯の場合にパージする(追い出す)キャッシュエントリを選択するときに、LRU方式が利用される。LRU方式では、パージするキャッシュエントリとして最後にアクセスされたときからの経過時間が最も長いキャッシュエントリを選択する。
【0023】
キャッシュ拡張領域12は、キャッシュ11に対して設けられるキャッシュ領域である。キャッシュ拡張領域12は、キャッシュ11と同じ形式で同じ性能を有するキャッシュである。キャッシュ拡張領域12では、キャッシュエントリが一杯の場合にパージするキャッシュエントリを選択するときに、キャッシュエントリに登録されている優先度(キャッシュエントリに登録されているデータやプログラム(命令)に設定されている優先度)を用いた優先度方式が利用される。優先度方式では、パージするキャッシュエントリとして優先度の低いほうのキャッシュエントリを選択する。なお、キャッシュ拡張領域12の各キャッシュエントリは、キャッシュ11のキャッシュエントリと同じタイミングでパージされる。パージされる場合としては、例えば、エントリ対象のプログラムやデータの領域の消失時、キャッシュエントリの無効化命令、他のCPUからの参照時がある。
【0024】
なお、キャッシュ11とキャッシュ拡張領域12は、1つのメモリを境界で分けて構成されてもよいし、あるいは、別体のメモリにそれぞれ構成されてもよい。キャッシュ11やキャッシュ拡張領域12には、データ用キャッシュや命令用キャッシュのキャッシュエントリ(例えば、32byte単位)が設けられており、各キャッシュエントリには優先度を格納するための領域が確保されている。
【0025】
MMU10は、CPU1が要求するメモリアクセスを管理するユニットである。ここでは、CPU1からの要求でプログラムの命令又はデータが参照された場合(命令又はデータの参照領域のアドレスで要求される)に、それらが命令用のキャッシュエントリ又はデータ用のキャッシュエントリに登録されていてないときに、MMU10で行うキャッシュ11とキャッシュ拡張領域12間の制御について詳細に説明する。
【0026】
MMU10では、まず、CPU1から要求された命令又はデータの優先度を領域リスト又はDAT管理表から取得する。そして、MMU10では、キャッシュ11のキャッシュエントリが空いている場合、空いているキャッシュエントリに、その命令の内容又はデータの内容(参照領域の内容)と共に優先度を登録する。
【0027】
キャッシュ11のキャッシュエントリが一杯の場合、MMU10では、キャッシュ11に定義されている論理のLRUによって、キャッシュ11からパージするキャッシュエントリ(ウェイ)を選択し、その選択したキャッシュエントリに登録されている優先度を読み出す。この選択されたキャッシュエントリが、キャッシュ11から入れ替えられるキャッシュエントリである。そして、MMU10では、キャッシュ拡張領域12のキャッシュエントリが空いている場合、キャッシュ拡張領域12の空いているキャッシュエントリに、キャッシュ11からパージされるキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を登録(コピー)する。さらに、MMU10では、キャッシュ11において選択されているキャッシュエントリをパージ(無効化)するとともに、そのキャッシュ11において空いたキャッシュエントリにCPU1から要求された命令の内容又はデータの内容及び優先度を登録する(すなわち、キャッシュ11のキャッシュエントリの入れ替えを行う)。
【0028】
MMU10では、キャッシュ拡張領域12のキャッシュエントリが空いていない場合、キャッシュ拡張領域12の各キャッシュエントリに登録されている優先度の中から最低の優先度を抽出し、その最低の優先度とキャッシュ11からパージされるキャッシュエントリに登録されている優先度を比較する。
【0029】
MMU10では、キャッシュ11からパージされるキャッシュエントリに登録されている優先度のほうが高い場合、キャッシュ拡張領域12において最低の優先度のキャッシュエントリをパージし、その空いたキャッシュエントリにキャッシュ11からパージされるキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を登録する(すなわち、キャッシュ11からパージされるキャッシュエントリをキャッシュ拡張領域12のキャッシュエントリにコピーし、キャッシュ拡張領域12のキャッシュエントリの入れ替えを行う)。さらに、MMU10では、キャッシュ11において選択されているキャッシュエントリをパージ(無効化)するとともに、そのキャッシュ11において空いたキャッシュエントリにCPU1から要求された命令の内容又はデータの内容及び優先度を登録する。
【0030】
MMU10では、キャッシュ拡張領域12の最低の優先度のほうが高い場合、キャッシュ拡張領域12のキャッシュエントリの入れ替えを行うことなく、キャッシュ11において選択されているキャッシュエントリをパージ(無効化)するとともに、そのキャッシュ11において空いたキャッシュエントリにCPU1から要求された命令の内容又はデータの内容及び優先度を登録する。
【0031】
なお、CPU1からの要求でプログラムの命令又はデータが参照された場合、それがキャッシュ拡張領域12のキャッシュエントリに登録されている場合、MMU10では、そのキャッシュ拡張領域12のキャッシュエントリに登録されている命令の内容又はデータの内容及び優先度を、キャッシュ11の空いているキャッシュエントリに再登録(コピー)する。キャッシュ11に空いているキャッシュエントリがない場合、MMU10では、上記と同様の制御によって、キャッシュ11からパージするキャッシュエントリを選択する。
【0032】
図1〜図3を参照して、CPU1からプログラムの命令又はデータの参照が参照領域アドレスによって要求された場合に、その命令が命令用キャッシュエントリに登録されていない又はそのデータがデータ用キャッシュエントリに登録されていないときの動作を、図4のフローチャートに沿って説明する。図4は、本実施の形態に係るMMUによるキャッシュとキャッシュ拡張領域との間の制御の流れを示すフローチャートである。
【0033】
命令又はデータの参照領域アドレスが入力されると、MMU10では、その参照領域がキャッシュエントリに登録されていない場合、その参照領域の優先度<A>を領域リスト又はDAT管理表から求める(S1)。そして、MMU10では、その参照領域に対するキャッシュ11でのキャッシュエントリを求め(S2)、キャッシュ11のキャッシュエントリに空きがあるか否かを判定する(S3)。S3にてキャッシュ11のキャッシュエントリに空きがあると判定した場合、MMU10では、キャッシュ11の空いているキャッシュエントリに優先度<A>の参照領域の内容と優先度を登録し、有効化する(S12)。
【0034】
S3にてキャッシュ11のキャッシュエントリに空きがないと判定した場合、MMU10では、キャッシュ11に定義されている論理(LRU等)によって、キャッシュ11から今回追い出すキャッシュエントリ(ウェイ)を選択する(S4)。そして、MMU10では、その選択したキャッシュエントリ(ウェイ)に登録されている優先度<B>を求める(S5)。
【0035】
MMU10では、キャッシュ拡張領域12のキャッシュエントリに空きがあるか否かを判定する(S6)。S6にてキャッシュ拡張領域12のキャッシュエントリに空きがあると判定した場合、MMU10では、そのキャッシュ拡張領域12の空いているキャッシュエントリに優先度<B>の参照領域の内容と優先度を登録し、有効化する(S10)。これによって、キャッシュ11から追い出されるキャッシュエントリが、キャッシュ拡張領域12にコピー保持(残存)されたことになる。そして、MMU10では、キャッシュ11から優先度<B>のキャッシュエントリを追い出して無効化し(S11)、そのキャッシュ11の空いたキャッシュエントリに優先度<A>の参照領域の内容と優先度を登録して有効化する(S12)。
【0036】
S6にてキャッシュ拡張領域12のキャッシュエントリに空きがないと判定した場合、MMU10では、キャッシュ拡張領域12のキャッシュエントリの中で最低の優先度<C>のキャッシュエントリを求める(S7)。そして、MMU10では、キャッシュ11から追い出されるキャッシュエントリの優先度<B>がキャッシュ拡張領域12内で最低の優先度<C>より高いか否かを判定する(S8)。
【0037】
S8にて優先度<B>が優先度<C>より高いと判定した場合、MMU10では、キャッシュ拡張領域12から今回追い出すキャッシュエントリとして優先度<C>のキャッシュエントリを選択し、キャッシュ拡張領域12から優先度<C>のキャッシュエントリを追い出して無効化する(S9)。そして、MMU10では、そのキャッシュ拡張領域12の空いたキャッシュエントリに、優先度<B>の参照領域の内容と優先度を登録し、有効化する(S10)。これによって、キャッシュ11から追い出されるキャッシュエントリが、キャッシュ拡張領域12内で最低の優先度<C>よりも優先度<B>が高かったので、キャッシュ拡張領域12にコピー保持(残存)されたことになる。そして、MMU10では、キャッシュ11から優先度<B>のキャッシュエントリを追い出して無効化し(S11)、そのキャッシュ11の空いたキャッシュエントリに優先度<A>の参照領域の内容と優先度を登録して有効化する(S12)。
【0038】
S8にて優先度<B>が優先度<C>より低いと判定した場合、キャッシュ拡張領域12から今回追い出されるキャッシュエントリはなく、キャッシュ拡張領域12内で最低の優先度<C>のキャッシュエントリが有効のまま保持される。そして、MMU10では、キャッシュ11から優先度<B>のキャッシュエントリを追い出し、無効化する(S11)。これによって、キャッシュ11から追い出されるキャッシュエントリが、キャッシュ拡張領域12内で最低の優先度<C>よりも優先度<B>が低かったので、キャッシュ拡張領域12にコピー保持(残存)されなかったことになる。さらに、MMU10では、そのキャッシュ11の空いたキャッシュエントリに、優先度<A>の参照領域の内容と優先度を登録し、有効化する(S12)。
【0039】
このCPU1によれば、キャッシュ11の他に同じ性能を有するキャッシュ拡張領域12を設け、キャッシュメモリの中で優先度方式で入れ替える領域を限定することにより、高優先度のデータや命令をキャッシュメモリ上に保持しつつキャッシュメモリ全体のヒット率を向上させることができ、処理の高速化を図ることができる。これによって、従来のCPU(システム)やプログラム実行の性能を低下させることなく、キャッシュヒット率が高くなる。
【0040】
キャッシュ11ではLRU方式でパージするキャッシュエントリを選択するので、優先度に関係なく、キャッシュ11には最後にアクセスされたときからの経過時間の短いものが残り、アクセス頻度の高いものをキャッシュ11上に保持することができる。そのため、低優先度のものでも、アクセス頻度が高ければ、キャッシュ11上で保持されるので、ミスヒットを防止できる。
【0041】
また、キャッシュ拡張領域12では優先度方式でパージするキャッシュエントリを選択するので、優先度の高いものをキャッシュ拡張領域12上に保持することができる。キャッシュ拡張領域12上に保持されている場合でもキャッシュ11上に保持されている場合と同様の性能を有するので、キャッシュ拡張領域12上に保持されている場合でも高速に処理することができる。
【0042】
また、キャッシュ11やキャッシュ拡張領域12のキャッシュエントリを固定化していないので、キャッシュの利用効率が低下せず、CPUやシステムの処理効率が低下しない。
【0043】
なお、このようにキャッシュ11に対応してキャッシュ拡張領域12を設けることにより、高次キャッシュを持つ階層化キャッシュよりも、実装規模を小さくできるので、コストを低減できるとともに、各CPUの特性に合わせることができる。特に、1つのメモリを境界で分けてキャッシュ11とキャッシュ拡張領域12を構成することにより、より低コストを図ることができる。
【0044】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【0045】
例えば、実施の形態ではCPUとキャッシュメモリの構成の一例で説明したが、CPUとキャッシュメモリの構成について様々な形態に適用可能である。例えば、図5に示すように、1つのCPUを備え、L1キャッシュとL2キャッシュを持つ階層化キャッシュの場合、高次レベルのL2キャッシュの一部又は全部をL1キャッシュの拡張領域として構成してもよい。また、図6に示すように、複数のCPUを備え、各CPUにL1キャッシュを持ち、全CPUで共有のL2キャッシュを持つ階層化キャッシュの場合、高次レベルのL2キャッシュの一部又は全部を各CPUのL1キャッシュの拡張領域として構成してもよい。また、図7に示すように、1つのCPUを備え、L1キャッシュとL2キャッシュを持つ階層化キャッシュの場合、L1キャッシュ内で領域分割してL1キャッシュの拡張領域を構成するとともに、L2キャッシュ内で領域分割してL2キャッシュの拡張領域を構成してもよい。また、図8に示すように、複数のCPUを備え、各CPUにL1キャッシュを持ち、全CPU共有のL2キャッシュを持つ階層化キャッシュの場合、各CPUにおいてL1キャッシュ内で領域分割してL1キャッシュの拡張領域を構成するとともに、共有のL2キャッシュ内で領域分割してL2キャッシュの拡張領域を構成してもよい。
【0046】
また、本実施の形態ではCPU内(CPUチップ内)にキャッシュメモリを備える構成としたが、CPUの外部にキャッシュメモリを設ける構成としてもよい。
【0047】
また、本実施の形態ではキャッシュとキャッシュ拡張領域にそれぞれ割り当てられる領域の大きさを固定としたが、図9に示すように、キャッシュとキャッシュ拡張領域との境界を運用(OS、アプリケーションなど)に応じて動的に変更し、キャッシュを大きくしたりあるいはキャッシュ拡張領域を大きくしたりしてもよい。これによって、キャッシュヒット率やシステム性能を向上させることができる。この変更方法としては、運用形態の変更に基づいてコマンドなどを契機に動的に変更する方法、キャッシュとキャッシュ拡張領域の使用状況に基づいて動的に変更する方法などがある。キャッシュを大きくする場合としては、例えば、相対的に高優先度のデータが少なくなり、相対的にキャッシュの総量を大きくする場合である。キャッシュ拡張領域を大きくする場合としては、例えば、相対的に高優先度のデータが多くなった場合である。
【0048】
また、本実施の形態ではキャッシュ拡張領域を優先度に基づいて管理したが、図10に示すように、キャッシュ拡張領域を特定のアプリケーションやOSのプログラム(命令)/データ領域として固定的に保持したり、特定のアプリケーションやOSの(一時的かつ高速な)の作業領域(ワーク)として使用してもよい。これによって、特定のアプリケーションやOS及びシステムの処理性能を向上させることができる。
【0049】
また、本実施の形態では各データやプログラムについての優先度を固定としたが、運用(OS、アプリケーションなど)に応じて動的に優先度を変更してもよい。これによって、特定のOSやアプリケーション及びシステムの処理性能を向上させることができる。
【0050】
また、本実施の形態ではキャッシュではLRUによって追い出すキャッシュエントリを選択したが、LIFO等の他の論理によって追い出すキャッシュエントリを選択してもよい。
【0051】
また、本実施の形態ではキャッシュエントリに登録されているデータやプログラム(命令)については優先度をそのキャッシュエントリに登録する構成としたが、キャッシュエントリに登録せずに、その都度、領域リスト又はDAT管理表から優先度を取得してもよい。
【符号の説明】
【0052】
1…CPU、2…メインメモリ、10…MMU、11…キャッシュ、12…キャッシュ拡張領域

【特許請求の範囲】
【請求項1】
CPUからの要求に応じてデータを登録し、登録されているデータをCPUに出力するキャッシュメモリにおいて、
前記キャッシュメモリに登録されているデータに優先度を付与する優先度付与手段と、
前記キャッシュメモリに設けられ、前記優先度に基づいて入れ替え対象のデータが選択される優先度有効領域と、
前記キャッシュメモリに設けられ、前記優先度に関係なく入れ替え対象のデータが選択される優先度無効領域と、
データを前記優先度無効領域に登録するときに、前記優先度無効領域にデータを追加登録することによって入れ替えられるデータの優先度と前記優先度有効領域に登録されているデータの優先度とを比較し、当該比較結果に基づいて前記入れ替えられるデータを前記優先度有効領域に登録するか否かを判定する判定手段
を備えることを特徴とするキャッシュメモリ。
【請求項2】
前記優先度無効領域において最後にアクセスされたときからの経過時間が最も長いデータを、前記追加するデータと入れ替えられるデータとすること特徴とする請求項1に記載するキャッシュメモリ。
【請求項3】
前記優先度有効領域と前記優先度無効領域とに割り当てられる領域の大きさを変更可能とすることを特徴とする請求項1又は請求項2に記載するキャッシュメモリ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−141754(P2011−141754A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−2160(P2010−2160)
【出願日】平成22年1月7日(2010.1.7)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000237592)富士通テン株式会社 (3,383)
【Fターム(参考)】