(57)【要約】      （修正有）【課題】効率的にメモリアクセスを行うことが可能なメモリシステムを提供する。【解決手段】第１データ領域４ａ内のデータに対応するアドレス情報を格納する第１タグ領域４ｂと、アドレス情報と優先度情報とを対応づけて格納する第２タグ領域４ｃと、不揮発メモリに対するアクセス情報を送信するアクセス情報送信部１１と、アクセス情報に基づいて、第２タグ領域内の優先度情報を更新する優先度更新部１２と、第１タグ領域に対応する第１ヒット判定部１３と、第２タグ領域に対応する第２ヒット判定部１４と、第２ヒット判定部の判定結果に基づいて、読出対象のデータを第１データ領域に格納するか否かに関する格納制御情報を決定する決定部１６と、第１データ領域よりアクセス優先度の低い第２データ領域から読み出した読出対象のデータを第１データ領域に格納する制御を行うアクセス制御部１７と、を備える。【選択図】図２
2017058951.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する第１データ領域と、
前記第１データ領域に格納されたデータに対応するアドレス情報を格納する第１タグ領域と、
アドレス情報と優先度情報とを対応づけて格納する第２タグ領域と、
前記不揮発メモリに対するアクセス情報を送信するアクセス情報送信部と、
前記アクセス情報に基づいて、前記第２タグ領域内の前記優先度情報を更新する優先度更新部と、
読出対象のデータのアドレス情報が前記第１タグ領域に格納されているか否かを判定する第１ヒット判定部と、
前記読出対象のデータのアドレス情報が前記第２タグ領域に格納されているか否かを判定する第２ヒット判定部と、
前記第２ヒット判定部による判定結果に基づいて、前記読出対象のデータを前記第１データ領域に格納するか否かに関する格納制御情報を決定する決定部と、
前記格納制御情報に基づいて前記決定部が前記読出し対象のデータを前記第１データ領域に格納することを決定すると、前記第１データ領域よりアクセス優先度の低い第２データ領域から読み出した前記読出対象のデータを前記第１データ領域に格納する制御を行うアクセス制御部と、を備えるメモリシステム。
【請求項２】
前記第２タグ領域は、第１優先度と、当該第１優先度よりも低い第２優先度との少なくとも２種類の優先度の優先度情報を含んでおり、
前記第２ヒット判定部により、前記第２タグ領域に格納されていると判定された場合には、前記読出し対象データのアドレス情報に対応する優先度情報を前記第２タグ領域から取得する優先度取得部を備え、
前記決定部は、前記優先度情報に基づいて、前記読出対象のデータを前記第１データ領域に格納するか否かに関する格納制御情報を決定する請求項１に記載のメモリシステム。
【請求項３】
前記第１タグ領域は、前記第１データ領域に格納されたデータに対応するアドレス情報と、優先度情報とを対応づけて格納し、
前記第１タグ領域の前記優先度情報は、第３優先度と、当該第３優先度よりも低い第４優先度との少なくとも２種類の優先度の優先度情報を含んでおり、
前記決定部は、前記読出対象のデータを前記第２データ領域から読み出して前記第１データ領域に格納する際には、対応する前記第２タグ領域内の優先度情報に基づいて、前記第１タグ領域に格納されるアドレス情報の優先度情報を決定する請求項１または２に記載のメモリシステム。
【請求項４】
前記決定部は、前記第２ヒット判定部により、前記第２タグ領域に格納されていないと判定された場合には、前記読出し対象のデータを前記第１データ領域に格納することを禁止する格納制御情報を選択する請求項１乃至３のいずれか１項に記載のメモリシステム。
【請求項５】
前記決定部は、前記優先度取得部により取得された優先度情報が前記第２タグ領域内の前記第１優先度の優先度情報の場合には、前記読み出し対象のデータを前記第１データ領域に格納し、前記優先度取得部により取得された優先度情報が前記第２タグ領域内の前記第２優先度の優先度情報の場合には、前記読出し対象のデータを前記第１データ領域に格納することを禁止する格納制御情報を選択する請求項２または３に記載のメモリシステム。
【請求項６】
前記決定部は、前記第２ヒット判定部により、前記第２タグ領域に格納されていないと判定された場合には、前記読出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第２優先度の優先度情報を格納する格納制御情報を選択する請求項２または３に記載のメモリシステム。
【請求項７】
前記決定部は、前記優先度取得部により取得された優先度情報が前記第２タグ領域内の前記第１優先度の優先度情報の場合には、前記読み出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第１優先度の優先度情報を格納する格納制御情報を選択し、前記優先度取得部により取得された優先度情報が前記第２タグ領域内の前記第２優先度の優先度情報の場合には、前記読出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第２優先度の優先度情報を格納する格納制御情報を選択する、請求項２または３に記載のメモリシステム。
【請求項８】
前記アクセス制御部は、前記第１タグ領域に前記第３優先度の優先度情報を格納するべきデータを、第１書き込み手段により前記第１データ領域に格納し、前記第１タグ領域に前記第４優先度の優先度情報を格納するべきデータを、第２書き込み手段により前記第１データ領域に格納する、請求項２または３に記載のメモリシステム。
【請求項９】
前記第１データ領域、前記第１タグ領域および前記第２タグ領域を有する第１メモリと、
前記第２データ領域を有し、前記第１メモリよりアクセス優先度の低い第２メモリと、を備える請求項１乃至８のいずれか１項に記載のメモリシステム。
【請求項１０】
前記第１データ領域および前記第１タグ領域を有する第１メモリと、
前記第２データ領域および前記第２タグ領域を有し、前記第１メモリよりアクセス優先度の低い第２メモリと、を備える請求項１乃至８のいずれか１項に記載のメモリシステム。
【請求項１１】
前記第１メモリおよび前記第２メモリは、それぞれ階層が異なるキャッシュメモリである請求項９または１０に記載のメモリシステム。
【請求項１２】
前記優先度更新部は、前記第１メモリへのアクセス毎に、前記第２タグ領域内の少なくとも一部の優先度情報を更新する請求項９に記載のメモリシステム。
【請求項１３】
前記優先度更新部は、前記第２メモリに対して当該第２メモリと階層が異なるメモリのデータを追い出す場合に、前記第２タグ領域内の少なくとも一部の優先度情報を更新する請求項１０または１１に記載のメモリシステム。
【請求項１４】
前記第１タグ領域を格納する第１メモリと、
前記第２タグ領域を格納する第２メモリと、を備える、
請求項１に記載のメモリシステム。
【請求項１５】
前記第１タグ領域と前記第２タグ領域は、共通のメモリに格納される、
請求項１に記載のメモリシステム。
【請求項１６】
前記第１タグ領域の１エントリ分のアドレス情報のサイズは、前記第２タグ領域の１エントリ分のアドレス情報のサイズと異なる請求項１に記載のメモリシステム。
【請求項１７】
前記第１データ領域の１エントリ分のデータ量と、前記第２データ領域の１エントリ分のデータ量とが異なっており、
前記第２タグ領域は、前記第２データ領域内のアクセス位置を示すフラグ情報を格納し、
前記決定部は、前記フラグ情報に基づいて、格納制御情報を決定する、請求項１に記載のメモリシステム。
【請求項１８】
前記第１データ領域は、不揮発メモリを含む請求項１乃至１７のいずれか１項に記載のメモリシステム。
【請求項１９】
前記不揮発メモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）である請求項１８に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
メモリウォール問題と称されるように、メモリアクセスに要する時間と消費電力が演算コアの性能向上を阻害する大きな要因となっている。
【０００３】
このため、メインメモリよりも高速なキャッシュメモリを大容量化したり、階層化する方策などが取られている。また、キャッシュメモリとして汎用的に用いられるＳＲＡＭ（Static Random Access Memory）は、高速ではあるが、価格も高いため、ＭＲＡＭ（Magnetoresistive RAM）等の不揮発メモリをキャッシュメモリとして利用する検討が進められている。
【０００４】
しかしながら、不揮発メモリは一般に、書換可能な回数に制限があり、書き込み時の消費電力も多いという問題がある。
【０００５】
また、演算コアが利用するデータの種類が多くなるほど、各階層のキャッシュメモリ間でのデータの入替の頻度が多くなり、書換回数も増えてしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２４９９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、効率的にメモリアクセスを行うことが可能なメモリシステムを提供するものである。
【課題を解決するための手段】
【０００８】
本実施形態によれば、データを格納する第１データ領域と、
前記第１データ領域に格納されたデータに対応するアドレス情報を格納する第１タグ領域と、
アドレス情報と優先度情報とを対応づけて格納する第２タグ領域と、
前記不揮発メモリに対するアクセス情報を送信するアクセス情報送信部と、
前記アクセス情報に基づいて、前記第２タグ領域内の前記優先度情報を更新する優先度更新部と、
読出対象のデータのアドレス情報が前記第１タグ領域に格納されているか否かを判定する第１ヒット判定部と、
前記読出対象のデータのアドレス情報が前記第２タグ領域に格納されているか否かを判定する第２ヒット判定部と、
前記第２ヒット判定部による判定結果に基づいて、前記読出対象のデータを前記第１データ領域に格納するか否かに関する格納制御情報を決定する決定部と、
前記格納制御情報に基づいて前記決定部が前記読出し対象のデータを前記第１データ領域に格納することを決定すると、前記第１データ領域よりアクセス優先度の低い第２データ領域から読み出した前記読出対象のデータを前記第１データ領域に格納する制御を行うアクセス制御部と、を備えるメモリシステムが提供される。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態によるメモリシステムの概略構成を示すブロック図。
【図２】第１の実施形態によるＬ２キャッシュの内部構成を示すブロック図。
【図３】第１の実施形態によるメモリシステムの処理動作を示すフローチャート。
【図４】第１の実施形態におけるＬ２キャッシュのヒット／ミス判定結果を示す図。
【図５】第２タグ領域がない場合のＬ１キャッシュとＬ２キャッシュのヒット／ミス判定結果を示す図。
【図６】第２の実施形態によるプロセッサシステムの概略構成を示すブロック図。
【図７】第２の実施形態によるメモリシステム内のＬ２キャッシュとＬ３キャッシュの内部構成を示すブロック図。
【図８】第２の実施形態によるメモリシステムの処理動作を示すフローチャート。
【図９】第２の実施形態におけるＬ２キャッシュのヒット／ミス判定結果を示す図。
【図１０】Ｌ３キャッシュ内の第２タグ領域が優先度情報を持たない場合の一比較例のヒット／ミス判定結果を示す図。
【図１１】第３の実施形態によるメモリシステムの処理動作を示すフローチャート。
【図１２】物理的に統合された第１タグ領域と第２タグ領域の例を示す図。
【図１３】第２タグ領域内に１ビットのアクセスフラグを設ける例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明の実施形態を説明する。以下の実施形態では、メモリシステムおよびプロセッサシステム内の特徴的な構成および動作を中心に説明するが、メモリシステムおよびプロセッサシステムには以下の説明で省略した構成および動作が存在しうる。
【００１１】
（第１の実施形態）
図１は第１の実施形態によるメモリシステム１の概略構成を示すブロック図である。図１のメモリシステム１は、プロセッサコア（ＣＰＵ：Central Processing Unit）２に接続された１次キャッシュメモリ（Ｌ１キャッシュ）３と、Ｌ１キャッシュ３に接続された２次キャッシュメモリ（Ｌ２キャッシュ）４と、Ｌ２キャッシュ４に接続されたメインメモリ５と、を備えている。
【００１２】
Ｌ１およびＬ２キャッシュ３，４には、メインメモリ５に格納されたデータ、またはメインメモリ５に格納されるべきデータの少なくとも一部が格納される。これらキャッシュ３，４は、その内部に保持するデータを一意に識別可能なアドレス情報を保持するタグ部を有する。タグ部の実装形態には、専用のメモリ領域を保持するものや、データを保持するメモリ領域の一部に保持するものなど様々な実装形態があり、本実施形態ではそれら全てと組み合わせ可能である。
【００１３】
図１では、Ｌ２キャッシュ４までの２階層のキャッシュメモリを設ける例を示しているが、Ｌ２キャッシュ４よりも高次のキャッシュメモリを設けてもよい。以下では、簡略化のため、Ｌ２キャッシュ４までの２階層のキャッシュ構造を有する例を説明する。
【００１４】
メインメモリ５以外のプロセッサコア２、Ｌ１キャッシュ３およびＬ２キャッシュ４は、例えば一つのチップに集積される。あるいは、プロセッサコア２とＬ１キャッシュ３が１つのチップに集積され、Ｌ２キャッシュ４は別のチップに集積され、これらがチップ同士の積層構造に基づき、金属配線によって直接接合されているシステムであってもよい。本実施形態では、Ｌ１およびＬ２キャッシュ３，４をメモリシステム１と呼ぶ。なお、メインメモリ５もメモリシステム１に含めても良いし、含めなくてもよい。
【００１５】
Ｌ１およびＬ２キャッシュ３，４は、メインメモリ５よりも高速アクセスが可能な半導体メモリで構成されている。それぞれのキャッシュへのデータ配置ポリシには様々なバリエーションが考えられる。例えば、Inclusion方式がある。この場合、Ｌ２キャッシュ４には、Ｌ１キャッシュ３に格納されたデータのすべてが格納される。
【００１６】
その他、例えば、Exclusion方式がある。この方式では、例えばＬ１キャッシュ３とＬ２キャッシュ４に同じデータは配置されない。また、例えば、Inclusion方式とExclusion方式のハイブリッド方式がある。この方式では、例えばＬ１キャッシュ３とＬ２キャッシュ４で重複して保持されるデータもあるし、排他的に保持されるデータもある。
【００１７】
これらの方式は、２つのキャッシュ３，４間のデータ配置ポリシであり、複数階層のキャッシュ構成では様々な組み合わせが考えられる。例えば、全ての階層でInclusion方式であってもよい。例えば、Ｌ１キャッシュ３とＬ２キャッシュ４はExclusive方式で、Ｌ２キャッシュ４とメインメモリ５はInclusion方式であってもよい。本実施形態に示される方式は、これら上記に記した様々なデータ配置ポリシと組み合わせることが可能である。
【００１８】
キャッシュの更新方式にも様々な方式が存在するが、本実施形態はそれら全てと組み合わせ可能である。例えば、キャッシュ書き込みヒット時の書き込み方式がライトスルーであってもよいし、ライトバックであってもよい。また、キャッシュ書き込みミス時の書き込み方式がライトアロケートであってもよいし、ノーライトアロケートであってもよい。
【００１９】
Ｌ２キャッシュ４のメモリ容量はＬ１キャッシュ３のメモリ容量以上である。このように、高次のキャッシュメモリほどメモリ容量が大きくなる。従って、高次のキャッシュメモリには集積度が高く、容量に比例する傾向にあるリーク電力が少ないメモリを用いることが望ましい。このようなメモリとして、例えば、ＭＲＡＭ（Magnetoresistive Random Access Memory）等の不揮発メモリが考えられる。また、例えば、低リーク電力プロセスを用いたＳＲＡＭやＤＲＡＭであってもよい。
【００２０】
メインメモリ５は、Ｌ１およびＬ２キャッシュ３，４よりもメモリ容量が大きいことから、プロセッサコア２等が実装されるチップとは別個の１以上のチップで構成されることが多い。メインメモリ５を構成するメモリセルは、例えばＤＲＡＭ（Dynamic RAM）セルである。なお、ＴＳＶ（Through Silicon Via）等の技術を用いて、プロセッサコア２等と一つのチップに混載してもよい。
【００２１】
プロセッサコア２が発行した仮想アドレスに対応する物理アドレスは、まず最優先にＬ１キャッシュ３に送られる。この物理アドレスに対応するデータ（以下、対象データ）がＬ１キャッシュ３にある場合は、プロセッサコア２はそのデータにアクセスすることになる。Ｌ１キャッシュ３のメモリ容量は、例えば数１０ｋバイト程度である。
【００２２】
対象データがＬ１キャッシュ３にない場合は、対応する物理アドレスはＬ２キャッシュ４に送られる。Ｌ２キャッシュ４に対象データがある場合は、プロセッサコア２はそのデータにアクセスすることになる。Ｌ２キャッシュ４のメモリ容量は、例えば数１００ｋバイト〜数Ｍバイト程度である。
【００２３】
対象データがＬ２キャッシュ４にない場合は、対応する物理アドレスはメインメモリ５に送られる。本実施形態では、メインメモリ５には、Ｌ２キャッシュ４に格納されている全データが格納されているものとする。本実施形態は、上述したキャッシュ間データ配置ポリシに限定されるものではない。メインメモリ５には、ページ単位のデータが格納される。一般的に、ページ単位のデータはメインメモリ５と補助記憶装置に配置されるが、本実施形態では簡易化のため全てのデータがメインメモリ５に配置されているものとする。本実施形態では、メインメモリ５に対象データがある場合は、プロセッサコア２はそのデータにアクセスすることになる。メインメモリ５のメモリ容量は、例えば数Ｇバイト程度である。
【００２４】
このように、Ｌ１およびＬ２キャッシュ３，４は階層化されており、次数の大きい（下位階層の）キャッシュメモリほどメモリ容量は大きい。
【００２５】
以下では、簡略化のため、Ｌ１およびＬ２キャッシュ３，４のタグアレイがＬＲＵ（Least Recently Used）アルゴリズムで管理されるものとして説明する。ただし、本実施形態は、ＬＲＵ以外の様々なデータ優先度管理アルゴリズムと組み合わせることが可能である。例えば、ＮＲＵ（Not Recently Used）やランダムリプレイスアルゴリズムと組み合わせてもよい。また、以下の説明では、簡略化のため、タグアレイをフルアソシアティブキャッシュとして示している。ただし、本実施形態は、種々のキャッシュ方式に適用可能であり、例えば、セットアソシアティブでもよいし、ダイレクトマップでもよい。
【００２６】
本実施形態は、アクセス頻度が高いデータが高再参照データであるとする。また、キャッシュ内の優先度とは、例えば、キャッシュから消去するデータを決定する指標である。例えば、キャッシュにデータをフィルする際、優先度の低いデータをキャッシュから消去する。ＬＲＵアルゴリズムでは、ＭＲＵ（Most Recently Used）のデータの優先度を最も高くし、ＬＲＵのデータの優先度を最も低くする。また、当該キャッシュに存在しないデータ(MRUからLRUの間に存在しないデータ)の優先度は、当該キャッシュに存在するデータより優先度が低いものとしてもよい。
【００２７】
第１の実施形態では、キャッシュにデータを格納する際、そのデータの優先度情報に基づき、キャッシュに格納する際の優先度を決定する。場合によっては、キャッシュに格納すべきデータの優先度が低い場合には、そのデータをキャッシュに格納しなくてもよい。このような制御を行うことで、低再参照データが、優先度の高いデータとしてキャッシュに格納されることを抑制する。また、高再参照データをキャッシュ内に保持することができ、キャッシュミスの削減や、キャッシュ書き込み回数の削減が期待できる。
【００２８】
図２は第１の実施形態によるメモリシステム１内のＬ２キャッシュ（第１メモリ）４の内部構成を示すブロック図である。図２に示すように、Ｌ２キャッシュ４は、第１データ領域４ａと、第１タグ領域４ｂと、第２タグ領域４ｃと、Ｌ２キャッシュコントローラ６とを備えている。Ｌ２キャッシュ４の下位階層にはメインメモリ（第２メモリ）５が設けられている。
【００２９】
第１データ領域４ａは、優先度が所定のレベルより高いデータを格納する領域であり、不揮発メモリで構成されている。不揮発メモリの種類は特に問わないが、例えば、ＭＲＡＭ（Magnetoresistive Random Access Memory）である。ＭＲＡＭは、SRAMよりも高速かつ高集積化が可能であり、低リーク電力であるため省電力化が可能である。第１データ領域４ａは、複数のキャッシュラインを有し、キャッシュライン単位でデータの格納および読出が行われる。
【００３０】
第１タグ領域４ｂは、第１データ領域４ａに格納されたデータに対応するアドレス情報を格納する。より具体的には、第１タグ領域４ｂは、第１データ領域４ａ内の各キャッシュラインごとに、対応するアドレス情報を格納する。
【００３１】
図２の第１タグ領域４ｂは、各アドレス情報４ｂ１に対応づけて、優先度情報４ｂ２を格納している。例えば、優先度情報の値が小さい程、対応するアドレス情報およびデータの優先度が高いことを示している。図２では、第１タグ領域４ｂおよび第１データ領域４ａの先頭アドレス側ほど、優先度の高いアドレス情報およびデータを格納する例を示している。
【００３２】
なお、第１タグ領域４ｂ内に優先度情報を設けることは必須ではない。第１タグ領域４ｂ内に優先度情報がなくても、アドレス情報の格納順に優先度を割り振ってもよいし、あるいは、第１タグ領域４ｂ内に格納された各アドレス情報をすべて同じ優先度としてもよい。以下では、第１タグ領域４ｂ内に優先度情報が格納されている例を説明する。
【００３３】
第２タグ領域４ｃは、アドレス情報４ｃ１と優先度情報４ｃ２とを対応づけて格納する。第２タグ領域４ｃ内の各アドレス情報に対応するデータは、第１データ領域４ａまたはメインメモリ５に格納されている。
【００３４】
例えば、第２タグ領域４ｃは、第１タグ領域４ｂより多くのメモリ量であり、プロセッサコア２がＬ２キャッシュ４にアクセスした過去のアドレス情報を第１タグよりも長い期間にわたって格納している。後述するように、第１タグ領域４ｂに格納されるアドレス情報は、第２タグ領域４ｃにも重複して格納されてもよいし、第１タグ領域４ｂに格納されていないアドレス情報のみを第２タグ領域４ｃに格納してもよい。
【００３５】
第２タグ領域４ｃ内の優先度情報４ｃ２と、第１タグ領域４ｂ内の優先度情報４ｂ２とは、予め対応づけられている。例えば、第２タグ領域４ｃ内の優先度情報０〜５は、第１タグ領域４ｂ内の優先度情報０に対応づけられている。この場合、第２タグ領域４ｃ内の優先度情報０〜５のいずれかのアドレス情報に対応するデータを第１データ領域４ａに格納する際には、第１タグ領域４ｂの優先度情報０に対応するキャッシュラインに該当データが格納される。なお、このような優先度情報の対応づけは、事後的や動的に変更できるようにしてもよい。
【００３６】
Ｌ２キャッシュコントローラ６は、アクセス情報送信部１１と、優先度更新部１２と、第１ヒット判定部１３と、第２ヒット判定部１４と、優先度取得部１５と、優先度決定部１６とを有する。
【００３７】
アクセス情報送信部１１は、Ｌ２キャッシュ４に対するアクセス情報を送信する。アクセス情報の送信先は、優先度更新部１２である。アクセス情報とは、Ｌ２キャッシュ４に対してアクセスのあったデータのアドレス情報を含んでいる。アクセス情報送信部１１は、少なくとも一部のＬ２キャッシュ４へのアクセスのたびに、アクセス情報を優先度更新部１２に送信する。
【００３８】
優先度更新部１２は、アクセス情報に基づいて、第２タグ領域４ｃ内の優先度情報を更新する。例えば、アクセス頻度が高いアドレス情報ほど優先度を高くするよう、優先度情報を更新する。また、優先度更新部１２は、再参照される可能性が低いデータほど、優先度を低くする。優先度更新部１２は、再参照される可能性が低いデータ、すなわち優先度の低いデータのアドレス情報を第２タグ領域４ｃに格納しない場合もありうる。
【００３９】
また、優先度更新部１２は、例えば、第２タグ領域４ｃ内のアドレス情報を更新する際に、第２タグ領域４ｃ内の少なくとも一つの優先度情報を更新する。第２タグ領域４ｃ内のアドレス情報の更新は、例えば、第１データ領域４ａからデータが追い出されたときか、メインメモリ５からデータを読み出したときか、優先度更新部により更新する対象のアドレス情報が第二タグ領域に存在しないときに行われる。
【００４０】
第１ヒット判定部１３は、読出対象のデータのアドレス情報が第１タグ領域４ｂに格納されているか否かを判定する。ここで、読出対象のデータとは、プロセッサコア２から読出要求のあったデータである。
【００４１】
第２ヒット判定部１４は、第１ヒット判定部１３により、第１タグ領域４ｂに格納されていないと判定されると、または、第1ヒット判定部による第1タグ領域に格納されているかどうかの判定と同時に、読出対象のデータのアドレス情報が第２タグ領域４ｃに格納されているか否かを判定する。
【００４２】
優先度取得部１５は、第２ヒット判定部１４により、第２タグ領域４ｃに格納されていると判定されるか、または、第二ヒット判定部により第二タグ領域に格納されているかどうかの判定と同時に、第２タグ領域４ｃから、読出対象データのアドレス情報に対応する優先度情報を取得する。
【００４３】
優先度決定部１６は、取得された優先度情報に基づいて、読出対象のデータを第１データ領域４ａに格納するか否かを決定する。例えば、優先度決定部１６は、読出対象データのアドレス情報に対応する優先度情報が０〜８であれば、読出対象のデータを第１データ領域４ａに格納することを決定し、優先度情報が８より大きい値であれば、読出対象のデータを第１データ領域４ａに格納しないことを決定する。
【００４４】
これにより、第２タグ領域４ｃに格納されているアドレス情報のうち、優先度の高いアドレス情報に対応するデータのみを、第１データ領域４ａに格納することができる。これはすなわち、第１データ領域４ａは、優先度が所定のレベルより高いデータ（高再参照データ）を優先して格納することを意味する。
【００４５】
Ｌ２キャッシュコントローラ６は、アクセス制御部１７を有していてもよい。アクセス制御部１７は、優先度決定部１６が読出対象のデータを第１データ領域４ａに格納することを決定すると、読出対象のデータをメインメモリ５（第２データ領域）から読み出して第１データ領域４ａに格納する制御を行う。
【００４６】
図３は第１の実施形態によるメモリシステム１の処理動作を示すフローチャートである。このフローチャートは、プロセッサコア２が読み出し要求を行い、Ｌ１キャッシュ３にミスして、Ｌ２キャッシュ４に読出要求が届いた場合の処理動作を示している。
【００４７】
まず、第１タグ領域４ｂにヒットするか否かを判定する（ステップＳ１）。ここでは、第１ヒット判定部１３が、読出対象のデータのアドレス情報が第１タグ領域４ｂに格納されているか否かを判定する。
【００４８】
例えば、第１タグ領域４ｂにミスしたと判定されると、第２タグ領域４ｃにヒットしたか否かを判定する（ステップＳ２）。ここでは、第２ヒット判定部１４が、読出対象のデータのアドレス情報が第２タグ領域４ｃに格納されているか否かを判定する。
【００４９】
例えば、第２タグ領域４ｃにヒットしたと判定されると、優先度取得部１５は、第２タグ領域４ｃから優先度情報を取得する（ステップＳ３）。一方、第２タグ領域４ｃにヒットしなかったと判定されると、例えば、後述するステップＳ７に移行する。
【００５０】
ステップＳ２，Ｓ３の処理に並行して、Ｌ２キャッシュコントローラ６は、読出対象のデータをメインメモリ５に要求する（ステップＳ４）。Ｌ２キャッシュコントローラ６は、この要求に応じて、メインメモリ５から読み出されたデータを取得し（ステップＳ５）、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ６）。
【００５１】
ステップＳ３またはステップＳ６の処理が終了すると、優先度決定部１６は、第２タグ領域４ｃまたはメインメモリ５から読み出したデータを、Ｌ２キャッシュ４に格納するか否かを決定する。また、優先度更新部１２は、第２タグ領域４ｃの優先度情報を更新する（ステップＳ７）。
【００５２】
次に、Ｌ２キャッシュコントローラ６は、ステップＳ７の決定に従って、第２タグ領域４ｃまたはメインメモリ５から読み出したデータを第１データ領域４ａに格納または非格納の制御を行う（ステップＳ８）。
【００５３】
ここで、優先度決定部１６がステップＳ７でＬ２キャッシュ４にデータを格納するか否かを決定するポリシ（すなわち、データを格納するか否かに関する格納制御情報）には、様々なものが考えられる。例えば、第２タグ領域４ｃ内の優先度が０〜５のアドレス情報を、第１タグ領域４ｂ内の優先度０のアドレス情報として第１タグ領域４ｂに格納し、第２タグ領域４ｃ内の優先度が５より大きいアドレス情報を、第２タグ領域４ｃに格納されていない低優先度のアドレス情報も含めて、第１タグ領域４ｂ内の優先度３のアドレス情報として第１タグ領域４ｂに格納するポリシを採用してもよい。なお、ここでは、優先度の数値が小さいほど、優先度が高いものとする。あるいは、第２タグ領域４ｃ内に格納されていない低優先度のアドレス情報は、第１タグ領域４ｂには格納しないようなポリシを採用してもよい。第２タグ領域４ｃ内の優先度が５より大きいアドレス情報を第１タグ領域４ｂには格納しないようなポリシ（格納制御情報）を採用してもよい。
【００５４】
一方、ステップＳ１で第１タグ領域４ｂにヒットしたと判定されると、Ｌ２キャッシュコントローラ６は、読出対象のデータを第１データ領域４ａから読み出して、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ９）。また、ステップＳ９の処理に並行して、アクセス情報送信部１１は、Ｌ２キャッシュ４の第２タグ領域４ｃにアクセス情報を送信する（ステップＳ１０）。送信されるアクセス情報には、読出要求があって、第１タグ領域４ｂにヒットしたアドレス情報が含まれている。優先度更新部１２は、受信したアクセス情報に基づいて、第２タグ領域４ｃの優先度情報を更新する（ステップＳ１１）。より具体的には、優先度更新部１２は、第１タグ領域４ｂにヒットしたアドレス情報に対応する優先度を高くするよう、優先度情報を更新する。
【００５５】
図４は第１の実施形態におけるＬ２キャッシュ４のヒット／ミス判定結果を示す図である。図４の例では、８サイクルにわたって、プロセッサコア２がデータａ、ｂ、ｃ、ａ、ｄ、ｂ、ａ、ｃの順に読出要求を行う例を示している。すなわち、プロセッサコア２は、データａを３サイクルごとに、データｂを４サイクルごとに読出要求を行う例を示している。図４のL2_Hit?は、Ｌ２キャッシュ４にヒットした場合に○、ミスした場合に×となる。access Dataは、Ｌ２キャッシュ４にアクセスしたデータを表している。L1は、Ｌ１キャッシュ３に格納されているデータに対応するアドレス情報を表している。L2_0とL2_1は、Ｌ２キャッシュ４内の第１データ領域４ａに格納されているデータの優先度情報４ｂ２を表しており、この中には当該データのアドレス情報４ｂ１が格納されている。L2_0がL2_1よりも優先度が高いことを示している。2tag_0〜2tag_3は、Ｌ２キャッシュ４内の第２タグ領域４ｃ内の優先度情報４ｃ２を表しており、この中には過去にアクセスされたデータのアドレス情報４ｃ１が格納されている。2tag_0の優先度が最も高く、2tag_3の優先度が最も低いことを示している。
【００５６】
まず、サイクルＣ１で、データａの読出要求があったとする。この時点では、Ｌ１キャッシュ３とＬ２キャッシュ４には、何もデータが格納されていないとする。また、Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量を有し、Ｌ２キャッシュ４内の第１データ領域４ａと第１タグ領域４ｂは２キャッシュライン分のメモリ容量を有し、第２タグ領域４ｃは４キャッシュライン分のメモリ容量を有するものとする。
【００５７】
次のサイクルＣ２では、サイクルＣ１で読出要求のあったデータａとそのアドレス情報はＬ１キャッシュ３に格納されるとともに、Ｌ２キャッシュ４内の第１データ領域４ａと第１タグ領域４ｂにも格納される。第２タグ領域４ｃには、データａのアドレス情報が格納される。また、このサイクルＣ２では、データｂの読出要求があったとする。
【００５８】
次のサイクルＣ３では、Ｌ１キャッシュ３はサイクルＣ２でキャッシュミスしたため、データｂとそのアドレス情報に置換される。また、サイクルＣ２では、Ｌ２キャッシュ４内の第１タグ領域４ｂと第２タグ領域４ｃのいずれにもキャッシュミスしたため、第１データ領域４ａと第１タグ領域４ｂはデータｂとそのアドレス情報に置換される。第２タグ領域４ｃには、データａのアドレス情報を置換せずに、データｂのアドレス情報が追加で格納される。また、このサイクルＣ３では、データｃの読出要求があったとする。
【００５９】
次のサイクルＣ４では、Ｌ１キャッシュ３はサイクルＣ３でキャッシュミスしたため、データｃとそのアドレス情報に置換される。また、サイクルＣ３では、Ｌ２キャッシュ４内の第１タグ領域４ｂと第２タグ領域４ｃのいずれにもキャッシュミスしたため、第１データ領域４ａと第１タグ領域４ｂはデータｃとそのアドレス情報に置換される。第２タグ領域４ｃには、データａ、ｂのアドレス情報を置換せずに、データｃのアドレス情報が追加で格納される。また、このサイクルＣ４では、データａの読出要求があったとする。
【００６０】
次のサイクルＣ５では、Ｌ１キャッシュ３はサイクルＣ４でキャッシュミスしたため、データａとそのアドレス情報に置換される。また、サイクルＣ４では、Ｌ２キャッシュ４内の第２タグ領域４ｃにキャッシュヒットしたため、第１データ領域４ａと第１タグ領域４ｂに追加でデータａとそのアドレス情報が格納される。また、第２タグ領域４ｃ内のデータａに対応するアドレス情報の優先度が最高の値に引き上げられる。また、このサイクルＣ５では、データｄの読出要求があったとする。
【００６１】
次のサイクルＣ６では、Ｌ１キャッシュ３はサイクルＣ５でキャッシュミスしたため、データｄとそのアドレス情報に置換される。また、サイクルＣ５では、Ｌ２キャッシュ４内の第１タグ領域４ｂと第２タグ領域４ｃのいずれにもキャッシュミスしたため、第１データ領域４ａと第１タグ領域４ｂ内のデータｃはデータｄとそのアドレス情報に置換される。第２タグ領域４ｃには、データａ、ｂ、ｃのアドレス情報を置換せずに、データｄのアドレス情報が追加で格納される。また、このサイクルＣ３では、データｂの読出要求があったとする。
【００６２】
次のサイクルＣ７では、Ｌ１キャッシュ３はサイクルＣ６でキャッシュミスしたため、データｂとそのアドレス情報に置換される。また、サイクルＣ６では、Ｌ２キャッシュ４内の第１タグ領域４ｂと第２タグ領域４ｃのいずれにもキャッシュミスしたため、第１データ領域４ａと第１タグ領域４ｂ内のデータｃはデータｄとそのアドレス情報に置換される。第２タグ領域４ｃには、データａ、ｂ、ｃのアドレス情報を置換せずに、データｄのアドレス情報が追加で格納される。また、このサイクルＣ７では、データａの読出要求があったとする。これにより、Ｌ２キャッシュ４内の第１タグ領域４ｂにヒットすることになり、第１データ領域４ａからデータａが読み出されて、プロセッサコア２に転送される。
【００６３】
次のサイクルＣ８では、Ｌ１キャッシュ３はサイクルＣ７でキャッシュミスしたため、データａとそのアドレス情報に置換される。また、サイクルＣ７では、Ｌ２キャッシュ４内の第１タグ領域４ｂと第２タグ領域４ｃのいずれにもキャッシュヒットしたため、第１データ領域４ａと第１タグ領域４ｂ内のデータａ、ｂは変化しない。第２タグ領域４ｃでは、データａの優先度が最も高くなり、次いで、データｂ、ｄ、ｃの順にデータが格納される。
【００６４】
図４からわかるように、３サイクルごとに読出要求のあるデータａは、４サイクルごとに読出要求のあるデータｂよりも優先してＬ２キャッシュ４に格納される。これにより、再参照される可能性がより高いデータほど、優先的にＬ２キャッシュ４に格納することができる。
【００６５】
図５は第２タグ領域４ｃがない場合のＬ１キャッシュ３とＬ２キャッシュ４のヒット／ミス判定結果を示す図である。図５では、読出要求のあったデータの並び順は図４と同じであり、Ｌ１キャッシュ３とＬ２キャッシュ４のメモリ容量も図４と同じである。図５では、直近に読出要求のあった２つのデータしかＬ２キャッシュ４に格納できないため、３サイクル以上隔てて同じデータの読出要求があっても、Ｌ２キャッシュ４にはヒットしない。これに対して、本実施形態は、図４に示すように、直近に読出要求のあった４つのデータのアドレス情報を格納する第２タグ領域４ｃを有し、第２タグ領域４ｃとのヒット判定結果に基づいて第１データ領域４ａにデータを格納するため、アクセス頻度の高いデータを確実に第１データ領域４ａに格納できる。
【００６６】
このように、本実施形態では、Ｌ２キャッシュ４に、本来の第１タグ領域４ｂとは別に、第２タグ領域４ｃを設けて、第２タグ領域４ｃにはアドレス情報と優先度情報とを対応づけて格納し、Ｌ２キャッシュ４の第１データ領域４ａに格納されていないデータの読出要求があった場合でも、第２タグ領域４ｃ内の優先度情報に基づいて、第１データ領域４ａにデータを格納するか否かを決定できる。これにより、高再参照データで無いデータのＬ２キャッシュ４への書き込みを抑制でき、Ｌ２キャッシュ４への書込み回数を削減できる。これにより、第１データ領域４ａの優先度の高いデータを追い出すことを抑制しつつ、第１データ領域４ａに優先度の高いデータを格納でき、Ｌ２キャッシュ４へのヒット率を向上できる。より具体的には、第２タグ領域４ｃを設けることで、再参照される可能性の高いデータに対するヒット率を向上できる。これにより、L2キャッシュのデータ入れ替え頻度を抑制でき、Ｌ２キャッシュ４への書込み回数を削減できる。よって、書込み回数に制限のあるＭＲＡＭ等の不揮発メモリを用いてＬ２キャッシュ４を構成できる。
【００６７】
（第２の実施形態）
図６は第２の実施形態によるプロセッサシステムの概略構成を示すブロック図である。図６のプロセッサシステムは、図１のＬ２キャッシュ４とメインメモリ５の間に、Ｌ３キャッシュ７を設けたものである。Ｌ３キャッシュ７は、読出要求のあったデータがＬ２キャッシュ４にミスしたときにアクセスされてヒット／ミス判定を行う。ヒットすると、読出要求のあったデータをＬ３キャッシュ７から読み出して、Ｌ２キャッシュ４に転送する。ミスすると、Ｌ３キャッシュ７はメインメモリ５に読出要求を転送する。
【００６８】
図６のＬ３キャッシュ７は、Ｌ２キャッシュ４よりもメモリ容量が大きい。本実施形態では、第１の実施形態と同様に、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７のタグアレイがＬＲＵアルゴリズムで管理されているものとするが、ＬＲＵ以外の様々なデータ優先度管理アルゴリズムと組み合わせることも可能である。また、以下では、簡略化のため、タグアレイをフルアソシアティブキャッシュの例を説明するが、本実施形態は、種々のキャッシュ方式に適用可能であり、例えば、セットアソシアティブでもよいし、ダイレクトマップでもよい。
【００６９】
図７は第２の実施形態によるメモリシステム１内のＬ２キャッシュ４とＬ３キャッシュ７の内部構成を示すブロック図である。図７に示すように、Ｌ２キャッシュ４は、第１タグ領域４ｂと、第１データ領域４ａと、Ｌ２キャッシュコントローラ６とを有する。また、Ｌ３キャッシュ７は、第２タグ領域７ａと、第２データ領域７ｂと、Ｌ３キャッシュコントローラ８とを有する。Ｌ３キャッシュ７は、Ｌ２キャッシュ４よりもメモリ容量が多い。よって、第２タグ領域７ａは第１タグ領域４ｂよりも大きく、第２データ領域７ｂは第１データ領域４ａよりも大きい。
【００７０】
第１データ領域４ａと第２データ領域７ｂは、ＭＲＡＭ等の不揮発メモリで構成されており、第１タグ領域４ｂと第２タグ領域７ａは、ＳＲＡＭ等の高速の揮発メモリで構成されている。なお、第１タグ領域４ｂと第２タグ領域７ａを、不揮発メモリで構成してもよい。
【００７１】
第１タグ領域４ｂと第２タグ領域７ａはいずれも、アドレス情報４ｂ１，７ａ１と、優先度情報４ｂ２，７ａ２とを対応づけて格納する。
【００７２】
Ｌ２キャッシュコントローラ６は、アクセス情報送信部１１と、第１ヒット判定部１３と、優先度決定部１６とを有する。Ｌ３キャッシュコントローラ８は、優先度更新部１２と、第２ヒット判定部１４と、優先度取得部１５と、アクセス制御部１７とを有する。
【００７３】
Ｌ２キャッシュコントローラ６内のアクセス情報送信部１１は、Ｌ２キャッシュ４へのアクセス情報をＬ３キャッシュコントローラ８に送信する。第１ヒット判定部１３は、読出要求のあったアドレス情報がＬ２キャッシュ４内の第１タグ領域４ｂに格納されているか否かを判定する。優先度決定部１６は、読出要求のあったアドレス情報について優先度取得部１５で取得された優先度情報に基づいて、読出対象のデータを第１データ領域４ａに格納するか否かを決定する。
【００７４】
Ｌ３キャッシュコントローラ８内の優先度更新部１２は、アクセス情報送信部１１から送信されたアクセス情報に基づいて、第２タグ領域７ａ内の優先度情報を更新する。第２ヒット判定部１４は、読出対象のデータがＬ２キャッシュ４でミスした場合に、このデータのアドレス情報がＬ３キャッシュ７内の第２タグ領域７ａに格納されているか否かを判定する。優先度取得部１５は、読出対象のデータのアドレス情報が第２タグ領域７ａにヒットした場合に、第２タグ領域７ａから対応する優先度情報を取得する。この優先度情報は、Ｌ２キャッシュコントローラ６内の優先度決定部１６に送られる。
【００７５】
図８は第２の実施形態によるメモリシステム１の処理動作を示すフローチャートである。まず、読出対象のデータがＬ２キャッシュ４にヒットするか否かを判定する（ステップＳ２１）。ここでは、読出対象のデータのアドレス情報がＬ２キャッシュ４内の第１タグ領域４ｂに格納されているか否かを、第１ヒット判定部１３にて判定する。
【００７６】
ステップＳ２１でヒットしたと判定されると、Ｌ２キャッシュコントローラ６は、Ｌ２キャッシュ４から読出対象のデータを読み出して、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ２２）。
【００７７】
ステップＳ２１でミスしたと判定されると、読出対象のデータがＬ３キャッシュ７にヒットするか否かを判定する（ステップＳ２３）。ここでは、読出対象のデータのアドレス情報がＬ３キャッシュ７内の第２タグ領域７ａ１に格納されているか否かを、第２ヒット判定部１４にて判定する。ステップＳ２３でヒットしたと判定されると、Ｌ３キャッシュコントローラ８は、Ｌ３キャッシュ７から読出対象のデータを読み出して、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ２４）。
【００７８】
ステップＳ２３でＬ３キャッシュ７にミスしたと判定されると、Ｌ３キャッシュコントローラ８は、メインメモリ５から読出対象のデータを読み出してＬ３キャッシュ７に格納するとともに、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ２５）。
【００７９】
ステップＳ２２、Ｓ２４またはＳ２５の処理が終了すると、優先度取得部１５は、Ｌ３キャッシュ７内の第２タグ領域７ａから優先度情報を取得して、Ｌ２キャッシュコントローラ６に送信する（ステップＳ２６）。
【００８０】
次に、Ｌ２キャッシュコントローラ６内の優先度決定部１６は、ステップＳ２６で送信されてきた優先度情報に基づいて、Ｌ３キャッシュ７またはメインメモリ５から読み出したデータをＬ２キャッシュ４に格納するか否かを決定する。また、優先度更新部１２は、第２タグ領域７ａの優先度情報を更新する（ステップＳ２７）。
【００８１】
次に、Ｌ２キャッシュコントローラ６は、ステップＳ２７の決定に従って、第２タグ領域７ａまたはメインメモリ５から読み出したデータを第１データ領域４ａに格納または非格納の制御を行う（ステップＳ２８）。
【００８２】
優先度決定部１６がステップＳ２７でＬ２キャッシュ４にデータを格納するか否かを決定するポリシは、図３のステップＳ７と同様に様々なものが考えられ、どのポリシを選択してもよい。
【００８３】
図９は第２の実施形態におけるＬ２キャッシュ４のヒット／ミス判定結果を示す図である。図９の例では、８サイクルにわたって、プロセッサコア２がデータａ、ｘ１、ｘ２、ａ、ｘ３、ｘ４およびａの順に読出要求を行う例を示している。このように、図９は、プロセッサコア２がデータａを３サイクルごとに読出要求を行う例を示している。図９のL2_Hit?、access Data、L1、L2_0, L2_1は図４と同じである。L3_0〜L3_5はＬ３キャッシュ７内の第２データ領域７ｂに格納されているデータの優先度情報７ａ２を表しており、この中には当該データのアドレス情報７ａ１が格納されている。L3_0の優先度が最も高く、L3_5の優先度が最も低いことを示している。
【００８４】
まず、サイクルＣ１で、データａの読出要求があったとする。この時点では、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７には、何もデータが格納されていないとする。また、Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量を有し、Ｌ２キャッシュ４は２キャッシュライン分のメモリ容量を有し、Ｌ３キャッシュ７は６キャッシュライン分のメモリ容量を有するものとする。
【００８５】
次のサイクルＣ２では、サイクルＣ１で読出要求のあったデータａは、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７のいずれにも格納されていないことから、これらキャッシュでミスする。そして、データａがメインメモリ５から読み出されて、データａとそのアドレス情報はＬ１キャッシュ３とＬ３キャッシュ７に格納されるが、データａの優先度情報はＬ３キャッシュ７内の第２タグ領域７ａ１には格納されていないため、データａはＬ２キャッシュ４には格納されない。また、このサイクルＣ２では、データｘ１の読出要求があったものとする。
【００８６】
次のサイクルＣ３では、サイクルＣ２で読出要求のあったデータｘ１は、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７でミスし、このデータｘ１はメインメモリ５から読み出されて、データｘ１とそのアドレス情報はＬ１キャッシュ３とＬ３キャッシュ７に格納される。Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量しかないため、データａはデータｘ１に上書きされる。Ｌ３キャッシュ７は６キャッシュライン分のメモリ容量を有するため、データａとデータｘ１はともにＬ３キャッシュ７に格納され、直近にアクセスのあったデータｘ１の優先度がデータａの優先度よりも高く設定される。なお、サイクルＣ３までは、データｘ１の優先度情報はＬ３キャッシュ７内の第２タグ領域７ａ１には格納されていなかったため、データｘ１はＬ２キャッシュ４には格納されない。また、このサイクルＣ３では、データｘ２の読出要求があったものとする。
【００８７】
次のサイクルＣ４では、サイクルＣ３で読出要求のあったデータｘ２は、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７でミスし、このデータｘ２はメインメモリ５から読み出されて、データｘ２とそのアドレス情報はＬ１キャッシュ３とＬ３キャッシュ７に格納される。Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量しかないため、データｘ１はデータｘ２に上書きされる。Ｌ３キャッシュ７は６キャッシュライン分のメモリ容量を有するため、データａ、ｘ１、ｘ２はともにＬ３キャッシュ７に格納され、データｘ２、ｘ１、ａの順に優先度が下がる優先度情報が生成される。すなわち、より直近にアクセスしたデータほど、優先度が高くなる。なお、サイクルＣ４までは、データｘ２の優先度情報はＬ３キャッシュ７内の第２タグ領域７ａ１には格納されていなかったため、データｘ２はＬ２キャッシュ４には格納されない。また、このサイクルＣ４では、データａの読出要求があったものとする。
【００８８】
次のサイクルＣ５では、サイクルＣ４で読出要求のあったデータａは、Ｌ１キャッシュ３とＬ２キャッシュ４でミスし、Ｌ３キャッシュ７でヒットする。よって、Ｌ３キャッシュ７からデータａが読み出されて、Ｌ１キャッシュ３とＬ２キャッシュ４に格納される。Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量しかないため、データｘ２はデータａに上書きされる。Ｌ３キャッシュ７内の優先度が変更になり、データａ、ｘ２、ｘ１の順に優先度が下がる優先度情報が生成される。また、このサイクルＣ５では、データｘ３の読出要求があったものとする。
【００８９】
次のサイクルＣ６では、サイクルＣ５で読出要求のあったデータｘ３は、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７でミスし、このデータｘ３はメインメモリ５から読み出されて、データｘ３とそのアドレス情報はＬ１キャッシュ３とＬ３キャッシュ７に格納される。Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量しかないため、データａはデータｘ３に上書きされる。Ｌ３キャッシュ７は６キャッシュライン分のメモリ容量を有するため、データｘ３、ａ、ｘ２、ｘ１の順に優先度が下がる優先度情報が生成される。すなわち、より直近にアクセスしたデータほど、優先度が高くなる。なお、サイクルＣ６までは、データｘ３の優先度情報はＬ３キャッシュ７内の第２タグ領域７ａ１には格納されていなかったため、データｘ３はＬ２キャッシュ４には格納されない。また、このサイクルＣ６では、データｘ４の読出要求があったものとする。
【００９０】
次のサイクルＣ７では、サイクルＣ６で読出要求のあったデータｘ４は、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７でミスし、このデータｘ４はメインメモリ５から読み出されて、データｘ４とそのアドレス情報はＬ１キャッシュ３とＬ３キャッシュ７に格納される。Ｌ１キャッシュ３は１キャッシュライン分のメモリ容量しかないため、データｘ３はデータｘ４に上書きされる。Ｌ３キャッシュ７は６キャッシュライン分のメモリ容量を有するため、データｘ４、ｘ３、ａ、ｘ２、ｘ１の順に優先度が下がる優先度情報が生成される。すなわち、より直近にアクセスしたデータほど、優先度が高くなる。なお、サイクルＣ７までは、データｘ４の優先度情報はＬ３キャッシュ７内の第２タグ領域７ａ１には格納されていなかったため、データｘ４はＬ２キャッシュ４には格納されない。また、このサイクルＣ７では、データａの読出要求があったものとする。これにより、Ｌ２キャッシュ４にヒットすることになる。
【００９１】
図１０はＬ３キャッシュ７内の第２タグ領域７ａが優先度情報を持たない場合の一比較例のヒット／ミス判定結果を示す図である。図１０では、読出要求のあったデータの並び順は図９と同じであり、Ｌ１キャッシュ３とＬ２キャッシュ４のメモリ容量も図９と同じである。図１０では、直近に読出要求のあった２つのデータしかＬ２キャッシュ４に格納できないため、３サイクル以上隔てて同じデータの読出要求があっても、Ｌ２キャッシュ４にはヒットしない。これに対して、本実施形態は、図９に示すように、Ｌ３キャッシュ７内の第２タグ領域７ａに格納された優先度情報に基づいて、優先度が高いデータのみをＬ２キャッシュ４に格納するため、３サイクル以上隔てて同じデータの読出要求があっても、Ｌ２キャッシュ４にヒットさせることができる。
【００９２】
このように、第２の実施形態では、Ｌ３キャッシュ７内の第２タグ領域７ａに、各アドレス情報に対応づけて優先度情報を設けるため、Ｌ３キャッシュ７にアクセスされたデータの優先度を把握することができる。よって、この優先度情報に基づいて、Ｌ２キャッシュ４にデータを格納するか否かを決定でき、再参照される可能性の高いデータをＬ２キャッシュ４に優先して格納することができる。これにより、Ｌ２キャッシュ４へのヒット率を向上できる。
【００９３】
（第３の実施形態）
第３の実施形態は、ビクティムキャッシュ（Victim Cache方式）を採用するものである。ここで、ビクティムキャッシュとは、下位階層のデータをプロセッサコア２に転送する際に、上位階層のキャッシュにはデータを格納せず、上位階層のキャッシュからデータを追い出す際に、下位階層のキャッシュにデータを格納する方式である。
【００９４】
第３の実施形態によるメモリシステム１は、図６と同様に、Ｌ１キャッシュ３、Ｌ２キャッシュ４およびＬ３キャッシュ７の３階層のキャッシュを備えている。なお、４階層以上のキャッシュを備えていてもよい。
【００９５】
図１１は第３の実施形態によるメモリシステム１の処理動作を示すフローチャートである。まず、Ｌ２キャッシュ４にヒットしたか否かを判定する（ステップＳ３１）。ステップＳ３１でヒットしたと判定されると、読出対象のデータをＬ２キャッシュ４から読み出して、Ｌ１キャッシュ３を介してプロセッサコア２に転送する（ステップＳ３２）。その後、図１１の処理を終了する。
【００９６】
ステップＳ３１でＬ２キャッシュ４にミスしたと判定されると、Ｌ３キャッシュ７にヒットしたか否かを判定する（ステップＳ３３）。Ｌ３キャッシュ７にヒットしたと判定されると、Ｌ３キャッシュ７からＬ１キャッシュ３を介してプロセッサコア２にデータを転送する（ステップＳ３４）。Ｌ３キャッシュ７にミスしたと判定されると、メインメモリ５からＬ１キャッシュ３を介してプロセッサコア２にデータを転送する（ステップＳ３５）。このとき、メインメモリ５からのデータはＬ３キャッシュ７には転送されない。
【００９７】
ステップＳ３４またはＳ３５の処理が終了すると、次に、優先度取得部１５は、Ｌ３キャッシュ７内の第２タグ領域７ａから優先度情報を取得して、Ｌ２キャッシュコントローラ６に送信する（ステップＳ３６）。
【００９８】
次に、Ｌ２キャッシュコントローラ６内の優先度決定部１６は、ステップＳ３６で送信されてきた優先度情報に基づいて、Ｌ３キャッシュ７またはメインメモリ５から読み出したデータをＬ２キャッシュ４に格納するか否かを決定する。（ステップＳ３７）。
【００９９】
次に、Ｌ２キャッシュコントローラ６は、ステップＳ３７の決定に従って、第２タグ領域７ａまたはメインメモリ５から読み出したデータを第１データ領域４ａに格納または非格納の制御を行う（ステップＳ３８）。
【０１００】
優先度決定部１６がステップＳ３７でＬ２キャッシュ４にデータを格納するか否かを決定するポリシは、図３のステップＳ７と同様に様々なものが考えられ、どのポリシを選択してもよい。
【０１０１】
Ｌ２キャッシュ４にデータを格納する際に、Ｌ２キャッシュ４から別のデータを追い出したか否かを判定する（ステップＳ３９）。別のデータを追い出した場合には、追い出したデータをＬ３キャッシュ７内の第２データ領域７ｂに格納するとともに、第２タグ領域７ａ内の優先度情報を更新する（ステップＳ４０）。また、Ｌ１キャッシュ３からデータを追い出した際に、Ｌ３キャッシュ７内の第２データ領域７ｂに格納するとともに、第２タグ領域７ａ内の優先度情報を更新してもよい。Ｌ１キャッシュ３からデータを追い出した際に、当該データがＬ２キャッシュ４に格納されていなければ、Ｌ３キャッシュ７内の第２データ領域７ｂに格納するとともに、第２タグ領域７ａ内の優先度情報を更新してもよい。
【０１０２】
このように、第３の実施形態では、ビクティムキャッシュ方式を採用する場合であっても、Ｌ２キャッシュ４に再参照されるデータを優先的に格納することができる。
【０１０３】
上述した第１〜第３の実施形態では、階層化された複数のキャッシュメモリを備えたメモリシステム１について説明したが、本発明は、キャッシュメモリ以外のメモリに幅広く適用可能である。ここで、メモリとは、物理空間のメモリと仮想空間のメモリのいずれも含む趣旨であり、本発明は、例えば、ＴＬＢ（Translation Lookaside Buffer）やページバッファなどにも適用可能である。
【０１０４】
（第１タグと第２タグの実装形態）
第１〜第３の実施形態では、簡単化のため、第１タグ領域４ｂの前提となるセット数と、第２タグ領域４ｃの前提となるセット数は同じであるものとした。しかしながら、本実施形態は、第１タグ領域４ｂと第２タグ領域４ｃのセット数が同じである構成に限定されない。例えば、第１タグ領域４ｂのセット数が第２タグ領域４ｃのセット数よりも大きくてもよいし、第１タグ領域４ｂのセット数が第２タグ領域４ｃのセット数より小さくてもよい。キャッシュメモリのメモリ容量が同じ場合、セット数が多いキャッシュメモリのタグメモリの１エントリ当たりのデータ量は、セット数が少ないキャッシュメモリのタグメモリの１エントリ当たりのデータ量よりも小さい。従って、例えば、第１タグ領域４ｂが格納するデータ量よりも第２タグ領域４ｃが格納するデータ量を大きくしても、第２タグ領域４ｃのセット数を多くすることで、タグメモリの増加を抑制することが出来る。
【０１０５】
第１〜第３の実施形態では、第２タグ領域４ｃは第１タグ領域４ｂより多くの情報を保持する例を示した。しかし、第２タグ領域４ｃは、第１タグ領域４ｂよりメモリ容量が小さくてもよい。
【０１０６】
第１〜第３の実施形態の第１タグ領域４ｂと第２タグ領域４ｃは、物理的には統合された１つのタグ領域となっていてもよい。図１２に統合された第１タグ領域４ｂと第２タグ領域４ｃの例を示す。図１２の例では、第１タグ領域４ｂは、タグアレイ２１内の優先度１〜３のアドレス情報と、対応するデータアレイアドレスと、対応する優先度情報を含む。第１データ領域４ａは、データアレイ２２内のデータ領域のデータを含む。第２タグ領域４ｃは、タグアレイ２１内の優先度１〜５のアドレス情報と、対応する優先度情報とを含む。
【０１０７】
図１２の例では、アクセス時に、タグアレイ２１内のタグアドレスと対応するデータアドレスとを読み出して、読み出したタグアドレスとアクセスのあったアドレスとを比較し、ヒットすれば、読み出したデータアドレスに対応するデータをデータアレイ２２内から読み出す。
【０１０８】
（第１領域と第２領域のデータ粒度が異なる場合）
第１〜第３の実施形態では、簡単化のため、第１タグ領域４ｂのラインサイズと、第２タグ領域４ｃのラインサイズは同じであるものとした。しかしながら、本実施形態は、第１タグ領域４ｂと第２タグ領域４ｃのラインサイズが同じである構成に限定されない。例えば、第１タグ領域４ｂのラインサイズが第２タグ領域４ｃのラインサイズよりも大きくてもよいし、第１タグ領域４ｂのラインサイズが第２タグ領域４ｃのラインサイズより小さくてもよい。
【０１０９】
例えば、第１タグ領域４ｂのラインサイズが第２タグ領域４ｃのラインサイズより小さい実施形態を考える。第２タグ領域４ｂの１つのエントリが示すデータには、第１タグ領域４ｂの複数のデータが含まれる。例えば、図１３のように、第２タグ領域４ｂの１つのエントリが示すデータに、第１タグ領域４ｂの１つのエントリが示すデータが４つ含まれる場合を考える。図１３の第１データと第２データの両端に示す数値は、データの先頭アドレスと終端アドレスを示す。この例において、第１〜第３の実施形態で示したように、第２タグ領域４ｃの１エントリが示すデータのうち、０ｘ０から８バイトのデータにアクセスがあり、次に０ｘ８から８バイトのデータにアクセスがあったとする。この場合、第２タグ領域４ｃの同一のエントリに連続してアクセスを行っているため、このエントリの優先度が高いと判定し、０ｘ８から８バイトのデータを高優先度データとして第１データ領域４ａに書き込むことが想定される。これは、例えば、第２データ領域７ｂへのアクセスをより詳細にプロファイルする機構（詳細アクセスプロファイラ）を設けることで抑制することが出来る。
【０１１０】
例えば、図１３に示すように、第２タグ領域４ｃ内に、第２データ領域７ｂの８バイトごとに、１ビットのアクセスフラグ４ｄを設ける方法が考えられる。この場合、第２タグ領域４ｃの１エントリ毎に、４ビットのアクセスフラグ４ｄが設けられることになる。アクセスフラグ４ｄは、１エントリ内の４つの８バイト領域のうち、どの８バイト領域にアクセスしたかを示す情報である。このアクセスフラグと第２タグ領域４ｃの優先度情報を用いて、例えば、第２タグ領域４ｃの優先度が高くてアクセスフラグがセットされている場合に高優先度データとして第１データ領域４ａに書き込み、第２タグ領域４ｃの優先度が高くアクセスフラグがセットされていない場合に低優先度データとして第１データ領域４ａに書き込むといったことが考えられる。前述の例を用いて、４ビットのアクセスフラグの動作を示す。初期状態では、例えば、４ビットのアクセスフラグは０にセットされる。０ｘ０から８バイトのアクセスがあると、これに対応するフラグを１にセットする。また、０ｘ０から８バイトのデータが含まれる第２タグ領域４ｃのエントリの優先度をＭＲＵにセットする。次の０ｘ８から８バイトのデータへのアクセスがあると、第２タグ領域４ｃのエントリはＭＲＵであるが、アクセス時点では０ｘ８から８バイトに対応するアクセスフラグは０であるため、低優先度データとして第１データ領域４ａに書き込む。また、０ｘ８から８バイトのデータに対応するアクセスフラグを１にセットする。
【０１１１】
例えば、第２タグ領域４ｃの１エントリ毎に、近い時間帯に第２タグ領域４ｃのどの位置にアクセスがあったかを示すアクセスアドレス情報をいくつか保持する方法が考えられる。第２タグ領域４ｃの同一エントリに連続してアクセスがあった場合に、アクセスアドレス情報を用いて、例えば、第２タグ領域４ｃでの優先度が高くアクセスアドレス情報が存在する場合に高優先度データとして第１データ領域４ａに書き込み、第２タグ領域４ｃの優先度が高くアクセスアドレス情報が存在しない場合に低優先度データとして第１データ領域４ａに書き込む。同一エントリへの連続しないアクセスの場合に、第２タグ領域４ｃの優先度が高いときはアクセスアドレス情報に関わらず第１データ領域４ａに高優先度データとして書き込み、第２タグ領域４ｃの優先度が低いときにはアクセスアドレス情報に関わらず第１データ領域４ａに低優先度データとして書き込む。連続するアクセスかどうかは、例えば、第２タグ領域４ｃの優先度から判断してもよい。例えば、アクセスのあったデータがＭＲＵであれば、連続するアクセスであると判断し、そうでなければ、連続していないアクセスであると判断してもよい。前述の例を用いて、アクセスアドレス情報の動作を示す。簡単化のため、１つのアクセスアドレス情報を保持する例を示す。まず０ｘ０から８バイトのデータへのアクセスがあると、優先度更新部１２は、対応するエントリの優先度をＭＲＵにセットし、第２タグ領域４ｃのエントリ内に存在するアクセスアドレス情報に０ｘ０をセットする。次に０ｘ８から８バイトのデータへのアクセスがあると、優先度取得部１５は、第２タグ領域４ｃの優先度とアクセスアドレス情報を取得する。第２タグ領域４ｃの優先度がＭＲＵであるが、アクセスアドレス情報は０ｘ０で、０ｘ８と異なるため、低優先度データとして第１データ領域４ｃに書き込む。最後に、アクセスアドレス情報を０ｘ８で上書きする。
【０１１２】
（ショートリテンション技術との組み合わせ）
上述した第１〜第３の実施形態は、ショートリテンション技術と組み合わせることが可能である。ショートリテンション技術とは、例えばＭＲＡＭにおいて、少なくとも、２つの書き込み手段を備えることを言う。例えば、高エネルギーでの書き込みを行い長時間のリテンションを実現する第１の書き込み手段と、短時間のリテンションであるものの低エネルギーでの書き込みを行い省エネルギーを実現する第２の書き込み手段を備えることをいう。例えば、第１〜第３の実施形態で、第２タグ領域４ｃから得られた優先度が高ければ、第１データ領域４ａに第１の書き込み手段で書き込みを行い、第２タグ領域４ｃから得られた優先度が低ければ、第１データ領域４ａに第２の書き込み手段で書き込みを行う、といった形態が考えられる。
【０１１３】
（コヒーレンシ）
第１〜第３の実施形態で説明したキャッシュメモリに、ＭＥＳＩプロトコルのようなコヒーレンシに関する状態を保持する場合は、コヒーレンシの状態を第２タグ領域４ｃにも格納してもよい。コヒーレンシの状態を第２タグ領域４ｃのみに格納してもよい。例えば、第２タグ領域４ｃの優先度情報に基づき、第１データ領域４ａへ書き込まない場合等に、上位階層に転送したデータに対応する第２タグ領域４ｃのエントリにコヒーレンシに関する状態を保持する。例えば、第１タグ領域４ｂが第２タグ領域４ｃより小さい場合に、第２タグ領域４ｃで多くのデータのコヒーレンシに関する状態を保持することが出来る。具体的な動作としては、例えば、当該キャッシュの上位階層でのデータ書き換え情報を当該キャッシュに送付し、第２タグ領域４ｃ内の当該エントリのコヒーレンシに関する状態をＭｏｄｉｆｙに変更する。または、第１タグ領域４ｂに、第１データ領域４ｃに格納するデータのアドレス以外を格納する領域を設け、当該領域にコヒーレンシに関する状態を格納してもよい。
【０１１４】
（動的手法）
第２タグ領域４ｃの優先度情報に基づいた第１データ領域４ａへの格納ポリシを動的に制御してもよい。例えば、第２タグ領域４ｃで、アドレス毎にアクセス頻度情報を取得し、優先度情報とアクセス頻度情報により第１データ領域４ａへの格納ポリシを決定してもよい。例えば、第２タグ領域４ｃでの優先度が高くアクセス頻度が高いデータを第１データ領域４ａに格納し、第２タグ領域４ｃでの優先度が高くアクセス頻度が低いデータの第１データ領域４ａへの格納を禁止する。アクセス頻度情報としては、例えば、単位時間あたりのヒット回数がある。単位時間とは、例えば、単位実行サイクル数や単位実行命令数や単位キャッシュアクセス回数といったものである。例えば、一般的なＬＲＵでは、優先度決定にアクセス頻度が考慮されていないため、このような制御が有効である場合がある。第２データ領域７ｂでの優先度決定にアクセス頻度が考慮されていれば、このような制御を必ずしも行わなくてもよい。
【０１１５】
図３のステップＳ１，Ｓ２、図８のステップＳ２１，Ｓ２３、および図１１のステップＳ３１，Ｓ３３では、第１ヒット判定部１３でミスしたときに第２ヒット判定部１４の判定処理を行っているが、第１ヒット判定部１３と第２ヒット判定部１４の処理を並行して行ってもよい。
【０１１６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１７】
１  メモリシステム、２  プロセッサコア、３  Ｌ１キャッシュ、４  Ｌ２キャッシュ、４ａ  第１データ領域、４ｂ  第１タグ領域、４ｃ  第２タグ領域、
５  メインメモリ、６  Ｌ２キャッシュコントローラ、１１  アクセス情報送信部、１２  優先度更新部、１３  第１ヒット判定部、１４  第２ヒット判定部、１５  優先度取得部、１６  優先度決定部、１７  アクセス制御部、
【図１】
2017058951.tif 000003
【図２】
2017058951.tif 000004
【図３】
2017058951.tif 000005
【図６】
2017058951.tif 000006
【図７】
2017058951.tif 000007
【図８】
2017058951.tif 000008
【図１１】
2017058951.tif 000009
【図１３】
2017058951.tif 000010
【図４】
2017058951.tif 000011
【図５】
2017058951.tif 000012
【図９】
2017058951.tif 000013
【図１０】
2017058951.tif 000014
【図１２】
2017058951.tif 000015
【手続補正書】
【提出日】平成28年12月16日(2016.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを格納する第１データ領域と、
前記第１データ領域に格納されたデータに対応するアドレス情報を格納する第１タグ領域と、
アドレス情報と優先度情報とを対応づけて格納する第２タグ領域と、
前記第１タグ領域に対するアクセス情報に基づいて、前記第２タグ領域内の前記優先度情報を更新する優先度更新部と、
読出対象のデータのアドレス情報が前記第２タグ領域に格納されているか否かを判定するヒット判定部と、
前記ヒット判定部による判定結果に基づいて、前記読出対象のデータを前記第１データ領域に格納するか否かに関する格納制御情報を決定する決定部と、
前記格納制御情報に基づいて前記決定部が前記読出し対象のデータを前記第１データ領域に格納することを決定すると、前記第１データ領域よりアクセス優先度の低い第２データ領域から読み出した前記読出対象のデータを前記第１データ領域に格納する制御を行うアクセス制御部と、を備えるメモリシステム。
【請求項２】
前記第２タグ領域は、第１優先度と、当該第１優先度よりも低い第２優先度との少なくとも２種類の優先度の優先度情報を含んでおり、
前記ヒット判定部により、前記第２タグ領域に格納されていると判定された場合には、前記読出し対象データのアドレス情報に対応する優先度情報を前記第２タグ領域から取得する優先度取得部を備え、
前記決定部は、前記優先度情報に基づいて、前記読出対象のデータを前記第１データ領域に格納するか否かに関する格納制御情報を決定する請求項１に記載のメモリシステム。
【請求項３】
前記第１タグ領域は、前記第１データ領域に格納されたデータに対応するアドレス情報と、優先度情報とを対応づけて格納し、
前記第１タグ領域の前記優先度情報は、第３優先度と、当該第３優先度よりも低い第４優先度との少なくとも２種類の優先度の優先度情報を含んでおり、
前記決定部は、前記読出対象のデータを前記第２データ領域から読み出して前記第１データ領域に格納する際には、対応する前記第２タグ領域内の優先度情報に基づいて、前記第１タグ領域に格納されるアドレス情報の優先度情報を決定する請求項１または２に記載のメモリシステム。
【請求項４】
前記決定部は、前記ヒット判定部により、前記第２タグ領域に格納されていないと判定された場合には、前記読出し対象のデータを前記第１データ領域に格納することを禁止する格納制御情報を選択する請求項１乃至３のいずれか１項に記載のメモリシステム。
【請求項５】
前記決定部は、前記優先度取得部により取得された優先度情報が前記第１優先度の優先度情報の場合には、前記読み出し対象のデータを前記第１データ領域に格納し、前記優先度取得部により取得された優先度情報が前記第２優先度の優先度情報の場合には、前記読出し対象のデータを前記第１データ領域に格納することを禁止する格納制御情報を選択する請求項２に記載のメモリシステム。
【請求項６】
前記決定部は、前記ヒット判定部により、前記第２タグ領域に格納されていないと判定された場合には、前記読出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第２優先度の優先度情報を格納する格納制御情報を選択する請求項２に記載のメモリシステム。
【請求項７】
前記第１タグ領域は、前記第１データ領域に格納されたデータに対応するアドレス情報と、優先度情報とを対応づけて格納し、
前記決定部は、前記優先度取得部により取得された優先度情報が前記第１優先度の優先度情報の場合には、前記読み出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第１優先度の優先度情報を格納する格納制御情報を選択し、前記優先度取得部により取得された優先度情報が前記第２優先度の優先度情報の場合には、前記読出し対象のデータを前記第１データ領域に格納するとともに、前記第１タグ領域に前記第２優先度の優先度情報を格納する格納制御情報を選択する、請求項２に記載のメモリシステム。
【請求項８】
前記アクセス制御部は、前記第１タグ領域に前記第３優先度の優先度情報を格納するべきデータを、第１書き込み手段により前記第１データ領域に格納し、前記第１タグ領域に前記第４優先度の優先度情報を格納するべきデータを、第２書き込み手段により前記第１データ領域に格納する、請求項３に記載のメモリシステム。
【請求項９】
前記第１データ領域、前記第１タグ領域および前記第２タグ領域を有する第１メモリと、
前記第２データ領域を有し、前記第１メモリよりアクセス優先度の低い第２メモリと、を備える請求項１乃至８のいずれか１項に記載のメモリシステム。
【請求項１０】
前記第１データ領域および前記第１タグ領域を有する第１メモリと、
前記第２データ領域および前記第２タグ領域を有し、前記第１メモリよりアクセス優先度の低い第２メモリと、を備える請求項１乃至８のいずれか１項に記載のメモリシステム。
【請求項１１】
前記第１メモリおよび前記第２メモリは、それぞれ階層が異なるキャッシュメモリである請求項９または１０に記載のメモリシステム。
【請求項１２】
前記優先度更新部は、前記第１メモリへのアクセス毎に、前記第２タグ領域内の少なくとも一部の優先度情報を更新する請求項９に記載のメモリシステム。
【請求項１３】
前記優先度更新部は、前記第２メモリに対して当該第２メモリと階層が異なるメモリのデータを追い出す場合に、前記第２タグ領域内の少なくとも一部の優先度情報を更新する請求項１０または１１に記載のメモリシステム。
【請求項１４】
前記第１タグ領域を格納する第１メモリと、
前記第２タグ領域を格納する第２メモリと、を備える、
請求項１に記載のメモリシステム。
【請求項１５】
前記第１タグ領域と前記第２タグ領域は、共通のメモリに格納される、
請求項１に記載のメモリシステム。
【請求項１６】
前記第１タグ領域の１エントリ分のアドレス情報のサイズは、前記第２タグ領域の１エントリ分のアドレス情報のサイズと異なる請求項１に記載のメモリシステム。
【請求項１７】
前記第１データ領域の１エントリ分のデータ量と、前記第２データ領域の１エントリ分のデータ量とが異なっており、
前記第２タグ領域は、前記第２データ領域内のアクセス位置を示すフラグ情報を格納し、
前記決定部は、前記フラグ情報に基づいて、前記格納制御情報を決定する、請求項１に記載のメモリシステム。
【請求項１８】
前記第１データ領域は、不揮発メモリを含む請求項１乃至１７のいずれか１項に記載のメモリシステム。
【請求項１９】
前記不揮発メモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）である請求項１８に記載のメモリシステム。