(57)【特許請求の範囲】
【請求項１】
キャッシュメモリとして使用可能な不揮発メモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第１バッファと、
電源遮断時に、前記第１バッファ内の前記アドレス変換情報を前記不揮発メモリに記憶させる第１コントローラと、
前記キャッシュメモリを制御する第２コントローラと、を備え、
前記第１コントローラは、電源遮断時に前記第２コントローラに前記キャッシュメモリ内の一部のキャッシュ領域を無効化するよう要求し、
前記第２コントローラは、無効化要求のあったキャッシュ領域に存在して前記キャッシュメモリより下位階層のメモリに書き戻していないデータがある場合には、当該データを前記下位階層のメモリに書き戻して、前記一部のキャッシュ領域を無効化し、
前記第１コントローラは、前記第１バッファの前記アドレス変換情報を前記無効化したキャッシュ領域に記憶するメモリシステム。
【請求項２】
前記キャッシュメモリは、複数のウェイを有するセットアソシアティブ構成、または複数のウェイを有するフルアソシアティブ構成であり、それぞれが同一サイズの記憶領域を有する複数のウェイに分かれており、
前記第１コントローラは、電源遮断時には、前記複数のウェイのうち少なくとも一つに、前記第１バッファ内の前記アドレス変換情報を記憶する請求項１に記載のメモリシステム。
【請求項３】
前記キャッシュメモリは、複数のウェイおよび複数のセットを有するセットアソシアティブ構成であり、
前記第１コントローラは、電源遮断時に、一つ以上のウェイにおけるすべてのセットを、前記第１バッファの前記アドレス変換情報の記憶先として使用する請求項１に記載のメモリシステム。
【請求項４】
前記第１コントローラは、前記ウェイごとに優先度を持たせて、優先度の低いウェイから順に、電源遮断時における前記アドレス変換情報の記憶先として使用する請求項２または３に記載のメモリシステム。
【請求項５】
前記第２コントローラは、前記ウェイごとに前記キャッシュメモリとして使用するか否かを制御し、前記キャッシュメモリとして使用するウェイと、電源遮断時に前記第１バッファ内の前記アドレス変換情報を記憶させるウェイと、を管理する請求項２乃至４のいずれかに記載のメモリシステム。
【請求項６】
前記第２コントローラは、前記キャッシュメモリとして使用するウェイの数に応じてインクリメントされ、前記アドレス変換情報を記憶させるウェイの数に応じてディクリメントされるレジスタを有する請求項５に記載のメモリシステム。
【請求項７】
前記第１コントローラは、電源復帰時に、前記無効化したキャッシュ領域に記憶させた全ての前記アドレス変換情報を前記第１バッファに書き戻し、
前記第１コントローラは、前記第１バッファへの書き戻しが完了したことを前記第２コントローラに通知し、
前記第２コントローラは、前記無効化したキャッシュ領域を前記キャッシュメモリとして使用する請求項１乃至６のいずれか一項に記載のメモリシステム。
【請求項８】
不揮発メモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第１バッファと、
前記不揮発メモリを、キャッシュメモリとして使用するか、前記第１バッファよりアクセス優先順位が低い第２バッファとして使用するかを切り替える第１コントローラと、
前記キャッシュメモリまたは前記第２バッファを制御する第２コントローラと、を備え、
前記第１コントローラは、前記不揮発メモリを前記キャッシュメモリから前記第２バッファに切り替える場合には、前記第２コントローラに前記キャッシュメモリの無効化を要求し、
前記第２コントローラは、前記下位階層のメモリに書き戻していないデータがある場合には、前記無効化の要求に応じて、前記キャッシュメモリ内のデータを前記下位階層のメモリに書き戻した後に前記キャッシュメモリを無効化し、
前記第１コントローラは、前記キャッシュメモリが無効化されると、前記不揮発メモリを前記キャッシュメモリから前記第２バッファに切り替えるメモリシステム。
【請求項９】
前記第２コントローラは、
前記キャッシュメモリを制御する第３コントローラと、
前記第２バッファを制御する第４コントローラと、を含んでおり、
前記第１コントローラは、
前記不揮発メモリを前記キャッシュメモリから前記第２バッファに切り替える場合には、前記第３コントローラに前記キャッシュメモリの無効化を要求し、
前記第３コントローラは、前記下位階層のメモリに書き戻していないデータがある場合には、前記キャッシュメモリの無効化の要求に応じて、前記キャッシュメモリ内のデータを前記下位階層のメモリに書き戻し、
前記第１コントローラは、前記キャッシュメモリ内のデータが前記下位階層のメモリに書き戻された後に、前記第４コントローラに前記不揮発メモリの初期化を要求し、
前記第４コントローラは、前記不揮発メモリの初期化の要求に応じて、前記不揮発メモリを初期化して、初期化完了を前記第１コントローラに通知し、
前記第１コントローラは、前記不揮発メモリの初期化完了後に、前記不揮発メモリを前記キャッシュメモリから前記第２バッファに切り替える請求項８に記載のメモリシステム。
【請求項１０】
前記不揮発メモリを前記キャッシュメモリとして使用する場合における前記キャッシュメモリは、複数のウェイを有するセットアソシアティブ構成、または複数のウェイを有するフルアソシアティブ構成であり、それぞれが同一サイズの記憶領域を有する複数のウェイに分かれており、
前記第１コントローラは、前記複数のウェイのうち少なくとも一つを前記第２バッファとして使用するか否かを切り替える請求項８または９に記載のメモリシステム。
【請求項１１】
前記不揮発メモリを前記キャッシュメモリとして使用する場合における前記キャッシュメモリは、複数のウェイおよび複数のセットを有するセットアソシアティブ構成であり、
前記第１コントローラは、電源遮断時に、一つ以上のウェイにおけるすべてのセットを、前記第１バッファの前記アドレス変換情報の記憶先として使用する請求項８または９に記載のメモリシステム。
【請求項１２】
前記第２コントローラは、前記キャッシュメモリとして使用するウェイの数に応じてインクリメントされ、前記アドレス変換情報を記憶させるウェイの数に応じてディクリメントされるレジスタを有する請求項１０または１１に記載のメモリシステム。
【請求項１３】
前記第１コントローラは、少なくとも前記第１バッファのミス情報に基づいて、前記キャッシュメモリを前記第２バッファとして使用するか否かを制御する請求項８乃至１２のいずれか一項に記載のメモリシステム。
【請求項１４】
前記第１コントローラは、前記ウェイごとに優先度を持たせて、優先度の低いウェイから順に、電源遮断時における前記アドレス変換情報の記憶先として使用する請求項１０乃至１３のいずれかに記載のメモリシステム。
【請求項１５】
前記第２コントローラは、前記ウェイごとに前記キャッシュメモリとして使用するか否かを制御し、前記キャッシュメモリとして使用するウェイと、電源遮断時に前記第１バッファ内の前記アドレス変換情報を記憶させるウェイと、を管理する請求項１０乃至１４のいずれかに記載のメモリシステム。
【請求項１６】
前記第１コントローラは、前記第２バッファとして使用していた領域の初期化を前記第２コントローラに通知し、
前記第２コントローラは、前記第２バッファとして使用していた領域を初期化した後、初期化完了を前記第１コントローラに通知し、
前記第１コントローラは、前記初期化した領域を前記キャッシュメモリに切り替える請求項８乃至１５のいずれか一項に記載のメモリシステム。
【請求項１７】
不揮発メモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第１バッファと、
前記不揮発メモリを、キャッシュメモリとして使用するか、前記第１バッファよりアクセス優先順位が低い第２バッファとして使用するかを切り替える第１コントローラと、
前記キャッシュメモリを制御する第２コントローラと、
前記第２バッファを制御する第３コントローラと、を備え、
前記第１コントローラは、前記キャッシュメモリとして使用している１つ以上のウェイを新たに前記第２バッファとして使用する場合、前記第２コントローラに前記１つ以上のウェイの無効化を要求し、
前記第２コントローラは、前記下位階層のメモリに書き戻す必要のあるデータがある場合には、前記要求に応じて、前記下位階層のメモリにデータを書き戻し、
前記第１コントローラは、前記第３コントローラに前記１つ以上のウェイの初期化を通知し、
前記第３コントローラは、前記１つ以上のウェイを初期化した後、初期化完了を前記第１コントローラに通知し、
前記第１コントローラは、前記１つ以上のウェイを新たに前記第２バッファに切り替えるメモリシステム。
【請求項１８】
前記第１コントローラは、前記第２バッファとして使用している１つ以上のウェイを新たに前記キャッシュメモリとして使用する場合、前記１つ以上のウェイの無効化を前記第３コントローラに要求し、
前記第３コントローラは、前記１つ以上のウェイを無効化したことを前記第１コントローラに通知し、
前記第１コントローラは、前記第２コントローラに前記１つ以上のウェイの初期化を通知し、
前記第２コントローラは、前記１つ以上のウェイを初期化した後、初期化完了を前記第１コントローラに通知し、
前記第１コントローラは、前記１つ以上のウェイを新たに前記キャッシュメモリに切り替える請求項１７に記載のメモリシステム。
【請求項１９】
前記第１コントローラは、少なくとも前記第１バッファのミス情報に基づいて、新たに１つ以上のウェイを前記キャッシュメモリまたは前記第２バッファとして使用するか否かを切替制御する請求項１７または１８に記載のメモリシステム。
【請求項２０】
前記不揮発メモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）である請求項１乃至１９のいずれかに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発メモリを有するメモリシステムに関する。
【背景技術】
【０００２】
メモリアクセスを行う場合、プロセッサが発行した仮想アドレスを物理アドレスに変換し、変換した物理アドレスを用いてキャッシュメモリやメインメモリへのアクセスを行うのが一般的である。
【０００３】
仮想アドレスを物理アドレスに変換する処理は、ＴＬＢ（トランスレーション・ルックアサイド・バッファ）で行われる。ＴＬＢのアクセス速度は、プロセッサの処理性能に大きく影響する。
【０００４】
通常、ＴＬＢは、高速のＳＲＡＭで構成されるが、ＳＲＡＭは揮発メモリであり、電源遮断によりデータが消去されてしまう。このため、ＴＬＢをＳＲＡＭで構成すると、電源投入時に、ページテーブルから一部のアドレス変換情報をＴＬＢにコピーする処理を行わなければならず、ＴＬＢがアクセス可能となるまでに時間がかかってしまう。また、ＴＬＢはメモリ容量が限られているため、ＴＬＢにてミスが生じると、必要とするアドレス変換情報をページテーブルに取りに行かなければならず、アドレス変換処理にかなりの時間がかかってしまう。
【０００５】
また、プロセッサは、メインメモリにアクセスする前に、キャッシュメモリにアクセスするため、プロセッサが要求したデータがキャッシュメモリに格納されている場合と格納されていない場合で、アクセス速度に大きな違いが生じる。このため、最近では、２階層以上に階層化されたキャッシュメモリや、大容量のキャッシュメモリを設けて、キャッシュヒット率を向上させるようにしている。
【０００６】
しかしながら、大容量のキャッシュメモリを設けても、そのごく一部しか使用しない場合もあり、必ずしも大容量のキャッシュメモリを有効活用できるとは限らない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許４６０８０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、プロセッサの処理性能を向上可能なメモリシステムを提供するものである。
【課題を解決するための手段】
【０００９】
本実施形態によれば、メインメモリより高速アクセスが可能な第１キャッシュメモリとして使用可能な不揮発メモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第１トランスレーション・ルックアサイド・バッファと、
電源遮断時に、前記第１トランスレーション・ルックアサイド・バッファ内の前記アドレス変換情報を前記不揮発メモリに記憶させる第１コントローラと、を備えるメモリシステムが提供される。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態によるメモリシステム１を備えたプロセッサシステム２の概略構成を示すブロック図。
【図２】第１の実施形態におけるＬ１キャッシュ８、Ｌ２キャッシュ９として使用可能な不揮発メモリ１０およびメインメモリ４のアクセス優先度を示す図。
【図３】ページエントリ情報１２の一例を示す図。
【図４】ＴＬＢ７を用いたアドレス変換処理の処理手順の一例を示すフローチャート。
【図５】ＴＬＢ７のデータ構成の一例を示す図。
【図６】図１の不揮発メモリ１０をＬ２キャッシュ９として使用する場合のデータ構成の一例を示す図。
【図７】ＭＭＵ５の電源遮断時の処理動作の一例を示すフローチャート。
【図８】ウェイ８を無効化する例を示す図。
【図９】電源復帰時の処理動作の一例を示すフローチャート。
【図１０】第２の実施形態によるメモリシステム１を備えたプロセッサシステム２の概略構成を示すブロック図。
【図１１】キャッシュモード時のメモリ構成を示す図。
【図１２】キャッシュモード時の再構成メモリ２２のデータ構成を示す図。
【図１３】ＴＬＢモード時のメモリ構成を示す図。
【図１４】ＴＬＢモード時の再構成メモリ２２のデータ構成を示す図。
【図１５】第２の実施形態によるメモリシステム１の処理手順の一例を示すフローチャート。
【図１６】キャッシュモードからＴＬＢモードへの遷移の手順の一例を示すフローチャート。
【図１７】ＴＬＢモードからキャッシュモードへの遷移の手順の一例を示すフローチャート。
【図１８】キャッシュモード時に再構成コントローラ２１が行うモード遷移処理の処理手順の一例を示すフローチャート。
【図１９】ＴＬＢモード時に再構成コントローラ２１が行うモード遷移処理の処理手順の一例を示すフローチャート。
【図２０】第３の実施形態による再構成メモリ２２の内部構成の一例を示すブロック図。
【図２１】キャッシュモードから一部ＴＬＢモードに遷移させる処理手順を示すフローチャート。
【図２２】さらに追加でＴＬＢモードに遷移させる処理手順を示すフローチャート。
【図２３】ＴＬＢモードから一部キャッシュモードに遷移させる処理手順を示すフローチャート。
【図２４】さらに追加でキャッシュモードに遷移させる処理手順を示すフローチャート。
【図２５】第３の実施形態による再構成コントローラ２１の処理手順を示すフローチャート。
【図２６】第２または第３の実施形態をマルチコアに適用した第１例を示すブロック図。
【図２７】第２または第３の実施形態をマルチコアに適用した第２例を示すブロック図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、メモリシステムおよびプロセッサシステム内の特徴的な構成および動作を中心に説明するが、メモリシステムおよびプロセッサシステムには以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
【００１２】
（第１の実施形態）
図１は第１の実施形態によるメモリシステム１を備えたプロセッサシステム２の概略構成を示すブロック図である。図１のプロセッサシステム２は、メモリシステム１と、プロセッサ３と、メインメモリ４とを備えている。
【００１３】
メモリシステム１は、メモリ管理ユニット（ＭＭＵ：Memory Management Unit）５と、ページテーブル６と、ＴＬＢ（Translation Lookaside Buffer、第１トランスレーション・ルックアサイド・バッファ）７と、１次キャッシュメモリ（Ｌ１キャッシュ、第２キャッシュメモリ）８と、２次キャッシュメモリ（Ｌ２キャッシュ、第１キャッシュメモリ）９として使用可能な不揮発メモリ１０と、電源管理コントローラ（第１コントローラ）１１とを備えている。
【００１４】
Ｌ１キャッシュ８と、Ｌ２キャッシュ９として使用可能な不揮発メモリ１０とには、メインメモリ４に格納されたデータ、またはメインメモリ４に格納されるべきデータの少なくとも一部が格納される。以下では、不揮発メモリ１０をＬ２キャッシュ９と呼称することもある。
【００１５】
Ｌ１キャッシュ８およびＬ２キャッシュ９は、その内部に保持するデータを一意に識別可能なアドレス情報を保持するタグ部を有する。タグ部の実装形態には、専用のメモリ領域を保持するものや、データを保持するメモリ領域の一部に保持するものなど様々な実装形態があり、本実施形態ではそれら全てと組み合わせ可能である。
【００１６】
図１では、Ｌ２キャッシュ９までの２階層のキャッシュメモリを設ける例を示しているが、Ｌ２キャッシュ９よりも高次のキャッシュメモリを設けてもよい。すなわち、本実施形態では、特性の異なる２以上のメモリが異なる階層に設けられているか、特性の異なる２つ以上のメモリが同一階層に設けられていることが前提条件となる。ここで、特性とは、例えばアクセス速度である。この他、特性は、消費電力でもよいし、メモリ容量でもよいし、それ以外のメモリを区別する種々の特性でもよい。
【００１７】
以下では、簡略化のため、Ｌ２キャッシュ９までの２階層のキャッシュ構造を有する例を説明する。
【００１８】
メインメモリ４以外の、プロセッサ３、ＭＭＵ５、Ｌ１キャッシュ８および不揮発メモリ１０は、例えば一つのチップに集積される。あるいは、プロセッサ３、ＭＭＵ５、Ｌ１キャッシュ８が１つのチップに集積され、Ｌ２キャッシュ９として使用される不揮発メモリ１０は別のチップに集積され、これらがチップ同士の積層構造に基づき、金属配線によって直接接合されるメモリシステム１であってもよい。以下では、Ｌ１キャッシュ８および不揮発メモリ１０を総称して、「キャッシュ」あるいは「キャッシュメモリ」と呼称することもある。
【００１９】
Ｌ１キャッシュ８および不揮発メモリ１０は、メインメモリ４よりも高速アクセスが可能な半導体メモリで構成されている。Ｌ１キャッシュ８と、Ｌ２キャッシュ９として使用可能な不揮発メモリ１０とへのデータ配置ポリシには様々なバリエーションが考えられる。例えば、Inclusion方式がある。この場合、Ｌ２キャッシュ９には、Ｌ１キャッシュ８に格納されたデータのすべてが格納される。
【００２０】
その他、例えば、Exclusion方式がある。この方式では、例えばＬ１キャッシュ８とＬ２キャッシュ９に同じデータは配置されない。また、例えば、Inclusion方式とExclusion方式のハイブリッド方式がある。この方式では、例えばＬ１キャッシュ８とＬ２キャッシュ９とで重複して保持されるデータもあるし、排他的に保持されるデータもある。
【００２１】
これらの方式は、Ｌ１キャッシュ８とＬ２キャッシュ９間のデータ配置ポリシであり、複数階層のキャッシュ構成では様々な組み合わせが考えられる。例えば、全ての階層でInclusion方式であってもよい。例えば、Ｌ１キャッシュ８はExclusive方式で、Ｌ２キャッシュ９とメインメモリ４はInclusion方式であってもよい。また、上述した様々なデータ配置ポリシを任意に組み合わせてもよい。
【００２２】
キャッシュの更新方式にも様々な方式が存在するが、本実施形態はそれら全てと組み合わせ可能である。例えば、キャッシュ書き込みヒット時の書き込み方式がライトスルーであってもよいし、ライトバックであってもよい。また、キャッシュ書き込みミス時の書き込み方式がライトアロケートであってもよいし、ノーライトアロケートであってもよい。ここで、ライトアロケートは、キャッシュミスの場合に、下位階層のキャッシュまたはメインメモリ４から該当データを読み出して、当該キャッシュの更新を行うものであり、ノーライトアロケートは、キャッシュミスしてもキャッシュの更新を行わないものである。
【００２３】
Ｌ２キャッシュ９として使用される不揮発メモリ１０のメモリ容量はＬ１キャッシュ８のメモリ容量以上である。このように、高次のキャッシュメモリほどメモリ容量が大きくなる。従って、高次のキャッシュメモリには集積度が高く、容量に比例する傾向にあるリーク電力が少ないメモリを用いることが望ましい。このようなメモリとして、例えば、ＭＲＡＭ（Magnetoresistive Random Access Memory）等の不揮発メモリ１０が考えられる。また、例えば、低リーク電力プロセスを用いたＳＲＡＭやＤＲＡＭであってもよい。
【００２４】
後述するように、本実施形態による不揮発メモリ１０は、その少なくとも一部を、Ｌ２キャッシュ９またはＴＬＢ７として使用できるようにしている。また、電源遮断時には、不揮発メモリ１０とは別個に設けられるＴＬＢ７に格納されたアドレス変換情報を不揮発メモリ１０内に待避（記憶）させることも可能である。
【００２５】
電源管理コントローラ１１は、例えば、プロセッサ３の動作情報を取得し、プロセッサ３の低負荷状態または電源遮断時に、ＴＬＢ７内のアドレス変換情報を不揮発メモリ１０に待避（記憶）させる制御を行う。電源管理コントローラ１１がＴＬＢ７内のアドレス変換情報を不揮発メモリ１０に待避（記憶）させる理由は、ＴＬＢ７はＳＲＡＭ等の揮発メモリで構成されるため、電源遮断により、ＴＬＢ７内のアドレス変換情報が消去され、電源復帰後に、ページテーブル６からＴＬＢ７にページエントリ情報の一部をコピーしなければならず、ＴＬＢ７の準備が整うまでの間、プロセッサ３の処理性能や実行効率が低下するおそれがあるためである。本実施形態のように、電源遮断時にＴＬＢ７内のアドレス変換情報を不揮発メモリ１０に待避（記憶）させるようにすれば、電源復帰時に、不揮発メモリ１０からＴＬＢ７に高速にアドレス変換情報を書き戻すことができ、電源復帰後のＴＬＢミスの頻度を低減でき、プロセッサ３の処理オーバーヘッドを軽減できる。
【００２６】
電源管理コントローラ１１は、例えばプロセッサ３の低負荷時にＭＭＵ５の電源を遮断する。電源管理コントローラ１１による電源遮断ポリシには様々な方式が存在し、本実施形態は、様々な電源遮断ポリシと組み合わせることができる。
【００２７】
ページテーブル６は、ＯＳ（Operating System）が管理する仮想アドレス空間と物理アドレス空間のマッピングを格納するテーブルである。一般的に、仮想アドレスがインデックスとして用いられ、仮想アドレス毎に対応する物理アドレス等を格納する領域をもつ。ページテーブル６内の１つの仮想アドレスに対応する領域をページエントリとよぶ。ページテーブル６は、一般的には、メインメモリ４の主記憶空間上に配置される。なお、本実施形態は様々なページテーブルの形態に適用することが可能である。例えば、物理アドレスをインデックスとして用い、物理アドレス毎に対応する仮想アドレス等を格納する領域をもつページテーブルであっても適用可能である。
【００２８】
ＴＬＢ７はページテーブル６内の一部のページエントリをキャッシングするメモリ領域である。一般的にハードウェアで実装され、ソフトウェアで実装されるページテーブル６より高速にアクセス可能である。ＴＬＢ７は、例えばSRAMで構成される。図１では省略しているが、ＴＬＢ７は、ＴＬＢ７にアクセスするためのＴＬＢコントローラを有する。
【００２９】
ＭＭＵ５はＴＬＢ７とページテーブル６を管理し、プロセッサ３が発行した仮想アドレスを物理アドレスに変換するアドレス変換機能(仮想記憶管理)、メモリ保護機能、キャッシュ制御機能、バス調停機能、等の機能を提供する。Ｌ１キャッシュ８等の上位階層キャッシュは仮想アドレスでアクセスされることもあるが、一般的に、Ｌ２キャッシュ９以下の下位階層のメモリはＭＭＵ５によって変換された物理アドレスでアクセスされる。ＭＭＵ５は、メインメモリ４へのデータ配置とデータ追い出しの際に、仮想アドレスと物理アドレスとの変換テーブルを更新する。なお、ＭＭＵ５は、その全てをハードウェアで実装したり、全てをソフトウェアで実装したり、それらのハイブリッドで実装する等、様々な実装形態が存在する。本実施形態に示される方式は、これら全ての実装形態と組み合わせ可能である。
【００３０】
図１では、ＭＭＵ５とは別個にＴＬＢ７を設けているが、通常はＭＭＵ５の内部にＴＬＢ７が設けられる。本実施形態では、便宜上、ＭＭＵ５とＴＬＢ７を別個に取り扱うが、例えば、ＴＬＢ７がＭＭＵ５に内蔵される場合も含むものとする。例えば、ＭＭＵ５とＴＬＢ７が個別にプロセッサ３により管理されていてもよい。
【００３１】
メインメモリ４は、Ｌ１キャッシュ８および不揮発メモリ１０よりもメモリ容量が大きいことから、プロセッサ３等が実装されるチップとは別個の１以上のチップで構成されることが多い。メインメモリ４を構成するメモリセルは、例えばＤＲＡＭ（Dynamic RAM）セルである。なお、ＴＳＶ（Through Silicon Via）等の技術を用いて、プロセッサ３等と一つのチップに混載してもよい。
【００３２】
図２は第１の実施形態におけるＬ１キャッシュ８、Ｌ２キャッシュ９として使用可能な不揮発メモリ１０およびメインメモリ４のアクセス優先度を示す図である。図示のように、プロセッサ３が発行した仮想アドレスに対応する物理アドレスは、まず最優先にＬ１キャッシュ８に送られる。この物理アドレスに対応するデータ（以下、対象データ）がＬ１キャッシュ８にある場合は、プロセッサ３はそのデータにアクセスすることになる。Ｌ１キャッシュ８のメモリ容量は、例えば数１０ｋバイト程度である。
【００３３】
対象データがＬ１キャッシュ８にない場合は、対応する物理アドレスはＬ２キャッシュ９として使用可能な不揮発メモリ１０に送られる。不揮発メモリ１０に対象データがある場合は、プロセッサ３はそのデータにアクセスすることになる。不揮発メモリ１０のメモリ容量は、例えば数１００ｋバイト〜数Ｍバイト程度である。
【００３４】
対象データがＬ２キャッシュ９として使用可能な不揮発メモリ１０にない場合は、対応する物理アドレスはメインメモリ４に送られる。本実施形態では、メインメモリ４には、不揮発メモリ１０に格納されている全データが格納されているものとする。なお、本実施形態は、上述したキャッシュ間データ配置ポリシに限定されるものではない。
【００３５】
メインメモリ４には、ＭＭＵ５で管理されるページ単位のデータが格納される。一般的に、ＭＭＵ５で管理されるページ単位のデータはメインメモリ４と補助記憶装置に配置されるが、本実施形態では簡易化のため全てのデータがメインメモリ４に配置されているものとする。本実施形態では、メインメモリ４に対象データがある場合は、プロセッサ３はそのデータにアクセスすることになる。メインメモリ４のメモリ容量は、例えば数Ｇバイト程度である。
【００３６】
このように、Ｌ１キャッシュ８および不揮発メモリ１０を含むキャッシュメモリは階層化されており、次数の大きい（下位階層の）キャッシュメモリほどメモリ容量は大きい。本実施形態では、簡単化のため、次数の大きいキャッシュメモリには、次数の小さい（上位階層の）キャッシュメモリに格納されている全データが格納されるものとしている。
【００３７】
ＴＬＢ７は、ページごとにページエントリ情報とページ番号とを対応づけて記憶している。ページ番号には、仮想アドレス情報が格納される。図３はページエントリ情報１２の一例を示す図である。図３のページエントリ情報１２は、ページフレーム番号１３と、属性情報１４とを含んでいる。
【００３８】
ページフレーム番号１３には、ページ番号（仮想アドレス情報）に対応する物理アドレス情報が格納される。
【００３９】
属性情報１４は、例えば、ダーティビット情報Ｄと、アクセスビット情報Ａと、ユーザ・スーパーバイザ・ビット情報Ｕ／Ｓと、リードライトビット情報Ｒ／Ｗと、プレゼントビット情報Ｐとを含んでいる。ダーティビット情報Ｄは、このページに書き込みを行ったときに１に設定される。アクセスビット情報Ａは、このページにアクセスすると１に設定される。ユーザ・スーパーバイザビット情報Ｕ／Ｓは、該当ページをユーザモードで使用するか、スーパーバイザモードで使用するかを設定するものである。リードライトビット情報Ｒ／Ｗは、読み出しのみを行うときに０に設定され、読み書きを行うときに１に設定される。プレゼントビットＰは、このページがメインメモリ４に存在するときに１に設定される。
【００４０】
図４はＴＬＢ７を用いたアドレス変換処理の処理手順の一例を示すフローチャートである。まず、プロセッサ３が仮想アドレスにてメモリアクセスを要求すると（ステップＳ１）、その仮想アドレスをＭＭＵ５が受け取って、ＴＬＢ７参照用のページ番号を生成する（ステップＳ２）。次に、ＭＭＵ５は、生成したページ番号を用いてＴＬＢ７へのアクセスを行う（ステップＳ３）。図１では不図示のＴＬＢコントローラ１５は、ＭＭＵ５からページ番号を受け取ると、そのページ番号がＴＬＢ７内に存在するか否かを確認する（ステップＳ３）。存在しない場合は、ＴＬＢミスをＭＭＵ５に通知する（ステップＳ４）。ＴＬＢミスが発生すると、ＭＭＵ５は、プロセッサ３のアーキテクチャの設計ポリシに基づいて、ＴＬＢミス時の処理を行う。例えば、ＭＭＵ５は、ページテーブル６へのアクセスを行い、その結果をＴＬＢ７に書き込み（ステップＳ５）、その後に、ステップＳ３に戻って、再度ＴＬＢ７へのアクセスを行う。
【００４１】
一方、ステップＳ３で存在すると確認された場合、ＴＬＢコントローラ１５は、ＴＬＢヒットと判断して、ページ番号に対応するページエントリをＴＬＢ７から読出して、ＭＭＵ５に送る（ステップＳ６）。
【００４２】
ＭＭＵ５は、ページエントリ情報１２に含まれるページフレーム番号１３と、ページ内オフセットとを結合した物理アドレスを生成する（ステップＳ７）。
【００４３】
図５はＴＬＢ７のデータ構成の一例を示す図である。図５のＴＬＢ７は、８ウェイのフルアソシアティブ構成であり、ＴＬＢコントローラ１５によりアクセスされる。図５のＴＬＢ７は、各ウェイごとに、仮想アドレスの一部であるページ番号１６と、図４に示すページエントリ情報１２とを対応づけて記憶している。例えば、仮想アドレスが６４ビットで、ページサイズが４Ｋバイトの場合、一例として、仮想アドレスの上位５２ビットがページ番号１６として用いられ、下位１２ビットがページ内オフセットとして用いられる。
【００４４】
図６は図１の不揮発メモリ１０をＬ２キャッシュ９として使用する場合のデータ構成の一例を示す図である。図６はセット数が２で８ウェイのセットアソシアティブ構成を示している。なお、セット数とウェイ数は図６に示したものに限定されない。例えば、セットは、物理アドレス中の第１アドレスビット群で選択され、ウェイは、物理アドレス中の第１アドレスビット群よりも下位側の第２アドレスビット群で選択される。
【００４５】
図６に示すように、不揮発メモリ１０は、不揮発メモリ領域１０ａの他に、Ｌ２キャッシュコントローラ１７とＴＬＢ待避コントローラ１８とを有する。Ｌ２キャッシュコントローラ１７は、不揮発メモリ１０をＬ２キャッシュ９として使用する場合に、Ｌ２キャッシュ９へのアクセスを制御する。ＴＬＢ待避コントローラ１８は、電源遮断時に不揮発メモリ１０にＴＬＢ７内の情報を待避（記憶）させる制御を行う。ＴＬＢ待避コントローラ１８は、図１の電源管理コントローラ１１に統合してもよい。
【００４６】
ＴＬＢ待避コントローラ１８は、ＭＭＵ５の電源遮断時には、ＴＬＢ７内のページ番号およびページエントリ情報１２をＬ２キャッシュ９として使用される不揮発メモリ１０に待避（記憶）させる。なお、ＴＬＢ７内に格納される情報は、必ずしも図３に示したものに限定されない。ただし、ＴＬＢ７には少なくとも仮想アドレスから物理アドレスへのアドレス変換情報が格納されている。よって、ＴＬＢ待避コントローラ１８は、ＭＭＵ５の電源遮断時には、ＴＬＢ７内の少なくともアドレス変換情報を不揮発メモリ１０に待避（記憶）させる。
【００４７】
より詳細には、ＴＬＢ待避コントローラ１８は、ＭＭＵ５の電源遮断時には、電源管理コントローラ１１からの指示を受けて、例えば、不揮発メモリ１０内の１つまたは複数のウェイに、ＴＬＢ７内の情報を待避（記憶）させる。すなわち、ＴＬＢ待避コントローラ１８は、不揮発メモリ１０のウェイを単位として、ＴＬＢ７内の情報を待避（記憶）させる。または、セットを単位としてＴＬＢ７内の情報を退避してもよい。本実施形態では、ウェイを単位とする構成を示す。ウェイを単位とする理由は、Ｌ２キャッシュコントローラ１７は、ウェイごとにＬ２キャッシュ９にアクセスするため、一部のウェイを無効化してＴＬＢ７用に割り当てたとしても、その他のウェイを無効化する必要が無く、Ｌ２キャッシュ９アクセスにはそれほど支障は生じないためである。なお、不揮発メモリ１０がウェイ構成になっていない場合は、予め定めたメモリ領域にＴＬＢ７内の情報を待避（記憶）させてもよい。
【００４８】
図７はＭＭＵ５の電源遮断時の処理動作の一例を示すフローチャートである。電源管理コントローラ１１は、例えば、プロセッサ３の動作状態をモニタしており、プロセッサ３が低負荷状態であると認識すると（ステップＳ１１）、ＭＭＵ５に電源遮断リクエストを送信する（ステップＳ１２）。電源管理コントローラ１１には様々な実装形態が考えられる。例えば、プロセッサ３で実行されるＯＳのようなソフトウェアであってもよいし、プロセッサ３とは別のハードウェア等で構成された専用モジュールであってもよい。ソフトウェアとハードウェアのハイブリッド構成であってもよい。電源管理コントローラ１１は、割り込みコントローラの機能を備えてもよいし、割り込みコントローラから割り込み情報を受け取り、電源管理を行ってもよい。このリクエストを受けたＭＭＵ５は、ＴＬＢ待避コントローラ１８にＴＬＢ７の待避準備を要求する（ステップＳ１３）。
【００４９】
ＴＬＢ待避コントローラ１８は、Ｌ２キャッシュコントローラ１７に不揮発メモリ１０の一部領域の無効化を要求する（ステップＳ１４）。この要求を受けて、Ｌ２キャッシュコントローラ１７は、不揮発メモリ１０の１つまたは複数のウェイを無効化し、無効化したウェイをＬ２キャッシュコントローラ１７の管理対象から除外する（ステップＳ１５）。
【００５０】
Ｌ２キャッシュコントローラ１７は、一部のウェイを無効化するにあたって、例えばアクセス頻度の低い領域、すなわちＬＲＵ（Least Recently Used）近傍のウェイを優先的に無効化する。図８はウェイ８を無効化する例を示している。Ｌ２キャッシュコントローラ１７は、ウェイ８に格納されているダーティなデータをメインメモリ４内に書き戻す（ステップＳ１６）。続いて、Ｌ２キャッシュコントローラ１７は、ウェイ８に格納されているすべてのデータを無効化し、不図示の有効ウェイレジスタの値を８から７にデクリメントする（ステップＳ１７）。
【００５１】
次に、ＴＬＢ待避コントローラ１８は、不揮発メモリ１０内のウェイ８のメモリ領域を、設計時に定めたポリシに従って、ＴＬＢ７内のページ番号とページエントリ情報１２とを格納する領域として認識する。そして、ウェイ８の先頭領域からアドレス順に、ＴＬＢ７内の全データを格納するポリシを決定する（ステップＳ１８）。例えば、ＴＬＢ７が図５のように、８ウェイのフルアソシアティブ構成の場合、不揮発メモリ１０内のウェイ８の先頭領域に、ＴＬＢ７内のウェイ１のページ番号およびページエントリ情報１２を格納し、引き続いて、ＴＬＢ７内のウェイ２から８までのページ番号およびページエントリ情報１２を順に格納する。
【００５２】
不揮発メモリ１０内でＴＬＢ７の情報格納に用いるウェイの数は、ウェイのデータサイズやＴＬＢ７のデータサイズ等に依存する。例えば、不揮発メモリ１０の１ラインが６４バイトの場合、不揮発メモリ１０の１ウェイ(２ライン)分をＴＬＢ７の情報格納に用いるとすると、６４×２＝１２８バイトである。ＴＬＢ７のページ番号が５２ビット、ＴＬＢ７のページエントリ情報１２が６４ビット、ウェイ数が８とすると、１２８−（５２＋６４）×８／８＝１２バイトが余ることになる。この余りの領域は、例えばＴＬＢ待避コントローラ１８の管理外としてもよいし、空き領域として認識し、他の目的に利用してもよい。
【００５３】
ＴＬＢ待避コントローラ１８は、ＭＭＵ５にＴＬＢ７の読出しを要求する（ステップＳ１９）。この要求に従ってＭＭＵ５がＴＬＢ７から情報を読み出すと、読み出した情報をＴＬＢ待避コントローラ１８は、不揮発メモリ１０内の無効化領域に格納する（ステップＳ２０）。ＴＬＢ７から不揮発メモリ１０への情報格納が終了すると、ＴＬＢ待避コントローラ１８は、ＭＭＵ５に書込み完了を通知する（ステップＳ２１）。最後に、ＭＭＵ５はＴＬＢ７の電源を遮断する。
【００５４】
図９は電源復帰時の処理動作の一例を示すフローチャートである。電源管理コントローラ１１は、例えばプロセッサ３の負荷状態を認識し、ＭＭＵ５に電源復帰リクエストを送信する（ステップＳ２２）。このリクエストを受けると、ＭＭＵ５はＴＬＢ７の電源を復帰する（ステップＳ２３）。続いて、ＭＭＵ５はＴＬＢ退避コントローラ１８に、退避データの書き戻しを要求する（ステップＳ２４）。ＴＬＢ退避コントローラ１８は、退避データをＴＬＢ７に書き戻す（ステップＳ２５）。書き戻しが完了すると、ＴＬＢ退避コントローラ１８は、Ｌ２キャッシュコントローラ１７に不揮発メモリ１０の一部領域の有効化を要求する（ステップＳ２６）。Ｌ２キャッシュコントローラ１７は、無効化していた不揮発メモリ１０の１つまたは複数のウェイを有効化し、不図示の有効ウェイレジスタの値を７から８にインクリメントし（ステップＳ２７）、ＴＬＢ退避コントローラ１８に有効化完了を通知する（ステップＳ２８）。ＴＬＢ退避コントローラ１８は、ＭＭＵ５に退避データの書き戻し完了を通知する（ステップＳ２９）。ＭＭＵ５は電源管理コントローラ１１に、電源復帰完了を通知する（ステップＳ３０）。
【００５５】
退避データのＴＬＢ７への書き戻しは必ずしも必須ではない。電源復帰の際に、退避データのＴＬＢ７への書き戻しを行うかどうかを判断する手順をふみ、書き戻しを行わないと判断した場合には、以下の手順で電源復帰を行ってもよい。
【００５６】
電源管理コントローラ１１は、ＭＭＵ５に電源復帰リクエストを送信する。ＭＭＵ５はＴＬＢ７の電源を復帰し、初期化する。ＭＭＵ５は電源管理コントローラ１１に電源復帰完了を通知する。
【００５７】
電源復帰の際に、退避データのＴＬＢ７への書き戻しを行うかどうかを判断する基準としては、さまざまなものが考えられる。例えば、判断する基準として、書き戻すアドレス変換情報が正しいものであるかどうか、という基準がある。書き戻すアドレス変換情報が正しいものでない、または、その可能性がある場合は、書き戻しを行わないと判断してもよい。書き戻すアドレス変換情報が正しいものであるかどうかは、例えば、電源遮断中にページテーブルが書き換えられたかどうかをチェックしてもよい。更に、退避しているアドレス変換情報が属するアドレス空間に関するページテーブルが書き換えられたかどうかをチェックしてもよい。例えば、ＯＳのような管理者が、電源遮断中にページテーブルを書き換えたかを記憶し、書き換えていた場合には、電源復帰時に退避データの書き戻しを行わなくてもよい。例えば、ＯＳのような管理者が、電源遮断時にＴＬＢに存在したアドレス変換情報のアドレス空間のＩＤを記憶し、電源遮断中にページテーブルを書き換えたアドレス空間ＩＤを記憶し、電源復帰時に、それらのＩＤが一致すれば、電源復帰時に退避データの書き戻しを行わなくてもよい。
【００５８】
例えば、判断する基準として、書き戻すアドレス変換情報が、電源復帰後に利用される（書き戻したあとＴＬＢヒットする）かどうか、という基準がある。電源復帰時に利用されない、または、その可能性が高い場合は、書き戻しを行わないと判断してもよい。書き戻すアドレス変換情報が電源復帰後に利用されるかどうかは、例えば、退避しているアドレス変換情報が属するアドレス空間を、電源復帰後にすぐにプロセッサが利用するかどうかチェックしてもよい。例えば、ＯＳのような管理者が、電源遮断時にＴＬＢ７に存在したアドレス変換情報のアドレス空間のＩＤを記憶し、電源復帰時にプロセッサ３で実行するプログラムがそのＩＤのアドレス空間にアクセスしない場合は、電源復帰時に退避データの書き戻しを行わなくてもよい。プロセッサ３で実行するプログラムが、どのＩＤのアドレス空間にアクセスするかは、実行するプログラムのプロセスＩＤからＯＳのような管理者が判断してもよい。
【００５９】
なお、退避データの書き戻しは、電源復帰後のＴＬＢ７へのアクセスをトリガにして行ってもよい。例えば、以下のような手順で書き戻す。
【００６０】
ＭＭＵ５はＴＬＢ７の電源を復帰し、初期化する。ＭＭＵ５はＴＬＢ７の電源復帰の完了を電源管理コントローラ１１に通知する。プロセッサ３は、プログラムの実行を開始し、ＭＭＵ５へアドレス変換を要求する。ＴＬＢ７にミスすると、ＴＬＢ７はＴＬＢ退避コントローラ１８へ所望のアドレス変換情報が存在するか問い合わせる。ＴＬＢ退避コントローラ１８は、要求されたアドレス変換情報が存在するかチェックし、存在すれば、ＴＬＢコントローラ１５に退避したＴＬＢエントリを送付する。ＴＬＢコントローラ１５はそれらをＴＬＢに書き込み、ＭＭＵ５にアドレス変換情報を送付する。
【００６１】
このように、第１の実施形態では、Ｌ２キャッシュ９として使用可能な不揮発メモリ１０の少なくとも一部を、ＭＭＵ５の電源遮断時に、ＴＬＢ７内のページエントリ情報１２等を格納するために使用するため、ＴＬＢ７としてＳＲＡＭ等の揮発メモリを用いていても、電源遮断により、ＴＬＢ７の情報が消去されなくなる。よって、電源復帰後にＴＬＢミスが増えるような不具合が生じなくなり、プロセッサ３の処理性能を向上できる。
【００６２】
（第２の実施形態）
図１０は第２の実施形態によるメモリシステム１を備えたプロセッサシステム２の概略構成を示すブロック図である。図１０のメモリシステム１は、ＭＭＵ５、ページテーブル６およびＬ１キャッシュ（第２キャッシュメモリ）８の他に、再構成コントローラ２１、再構成メモリ２２、Ｌ１ＴＬＢ２３、Ｌ２ＴＬＢ（第１トランスレーション・ルックアサイド・バッファ）２４およびＬ３キャッシュ２５を備えている。
【００６３】
Ｌ１キャッシュ８、Ｌ１ＴＬＢ２３およびＬ２ＴＬＢ２４は、例えばＳＲＡＭのような揮発メモリである。再構成メモリ２２とＬ３キャッシュ２５は、ＭＲＡＭのような不揮発メモリ１０である。
【００６４】
再構成メモリ２２は、Ｌ２キャッシュ９またはＬ３ＴＬＢ（第２トランスレーション・ルックアサイド・バッファ）２０として使用可能であり、再構成コントローラ２１により、再構成メモリ２２をＬ２キャッシュ９またはＬ３ＴＬＢ２０のどちらで使用するかを切り替えることができる。
【００６５】
再構成メモリ２２をＬ２キャッシュ９として使用する場合、Ｌ１キャッシュ８、Ｌ２キャッシュ９およびＬ３キャッシュ２５は、Inclusion方式でデータを管理してもよい。この場合、Ｌ２キャッシュ９にはＬ１キャッシュ８に格納された全データが格納され、Ｌ３キャッシュ２５にはＬ２キャッシュ９に格納された全データが格納される。あるいは、Exclusion方式でデータを管理してもよい。この場合、Ｌ１キャッシュ８、Ｌ２キャッシュ９およびＬ３キャッシュ２５には、重複したデータは格納されない。また、Inclusion方式とExclusion方式を組み合わせてもよい。例えば、Ｌ１キャッシュ８とＬ２キャッシュ９はExclusive方式で、Ｌ２キャッシュ９とＬ３キャッシュ２５はInclusion方式であってもよい。
【００６６】
Ｌ１キャッシュ８、Ｌ２キャッシュ９およびＬ３キャッシュ２５の書込みヒット時の書込み方式は、ライトスルーとライトバックのどちらでもよい。また、Ｌ１キャッシュ８、Ｌ２キャッシュ９およびＬ３キャッシュ２５の書込みミス時の書込み方式は、ライトアロケートとライトノンアロケートのどちらでもよい。
【００６７】
Ｌ２キャッシュ９のメモリ容量は、Ｌ１キャッシュ８のメモリ容量以上であり、Ｌ３キャッシュ２５のメモリ容量は、Ｌ２キャッシュ９のメモリ容量以上である。
【００６８】
なお、図１０では、Ｌ３キャッシュ２５までの３階層のキャッシュメモリを備えているが、本実施形態はこれに限定されるものではない。４階層以上の高次のキャッシュメモリを設けてもよいし、２階層のキャッシュメモリであってもよい。
【００６９】
Ｌ１ＴＬＢ２３とＬ２ＴＬＢ２４は、階層化されたＴＬＢであり、例えばＬ２ＴＬＢ２４のメモリ容量はＬ１ＴＬＢ２３のメモリ容量より大きく、Ｌ１ＴＬＢ２３がＬ２ＴＬＢ２４よりも優先してアクセスされる。Ｌ１ＴＬＢ２３は、例えば図５のようなフルアソシアティブ構成のＴＬＢである。また、Ｌ２ＴＬＢ２４は、例えばセットアソシアティブ構成のＴＬＢである。
【００７０】
再構成コントローラ２１は、再構成メモリ２２を、Ｌ２キャッシュ９として機能させるキャッシュモード（第１モード）と、Ｌ３ＴＬＢ２０として機能させるＴＬＢモード（第２モード）との切替選択を行う。
【００７１】
図１０の例では、再構成コントローラ２１は、Ｌ１キャッシュ８とＬ２ＴＬＢ２４に接続されている。また、再構成メモリ２２は、再構成コントローラ２１からの制御に従って、Ｌ１キャッシュ８またはＬ２ＴＬＢ２４からのアクセス要求を受け付ける。
【００７２】
図１１はキャッシュモード時のメモリ構成を示す図である。Ｌ１キャッシュ８がミスすると、Ｌ１キャッシュ８は、Ｌ２キャッシュ９として機能する再構成メモリ２２にアクセス要求を送る。再構成メモリ２２は、キャッシュミスすると、Ｌ３キャッシュ２５にアクセス要求を送る。
【００７３】
図１２はキャッシュモード時の再構成メモリ２２のデータ構成を示す図である。図１２に示すように、再構成メモリ２２は、再構成メモリアレイ２６と、Ｌ２キャッシュコントローラ２７と、Ｌ３ＴＬＢコントローラ（第２コントローラ）２８とを有する。キャッシュモード時には、再構成メモリアレイ２６は、Ｌ２キャッシュ９として使用され、Ｌ２キャッシュ９のアクセス制御はＬ２キャッシュコントローラ２７が行う。Ｌ３ＴＬＢコントローラ２８は、キャッシュモード時には停止状態である。
【００７４】
キャッシュモード時には、再構成メモリアレイ２６の全領域がＬ２キャッシュ９として機能し、図１２の例では、再構成メモリアレイ２６を２セットで８ウェイのセットアソシアティブ構成にしている。
【００７５】
図１３はＴＬＢモード時のメモリ構成を示す図である。ＴＬＢモード時には、Ｌ２ＴＬＢ２４がミスすると、Ｌ２ＴＬＢ２４は、Ｌ３ＴＬＢ２０として機能する再構成メモリ２２にアクセス要求を送る。ＭＭＵ５は、再構成メモリ２２内のＬ３ＴＬＢ２０でもミスすると、ＴＬＢミスと判断して、ページテーブル６にアクセスする。
【００７６】
図１４はＴＬＢモード時の再構成メモリ２２のデータ構成を示す図である。ＴＬＢモード時には、再構成メモリ２２は、Ｌ３ＴＬＢ２０として機能するため、図１４の例では、８セットで８ウェイのセットアソシアティブ構成にしている。Ｌ３ＴＬＢコントローラ２８がＬ３ＴＬＢ２０の制御を行い、Ｌ２キャッシュコントローラ２７は停止している。
【００７７】
図１４のＬ３ＴＬＢ２０は、各ウェイの各セットが、ページ番号を格納する領域とページエントリ情報１２を格納する領域とを有する。例えば、８セット設けるセットアソシアティブ方式とすることで、フルアソシアティブ方式と比較し、ページ番号を格納する領域に格納されるページ番号の情報を最大３ビット削減することができる。すなわち、例えば、ページ番号を格納する領域には、ページ番号を３ビット省略したページ番号のタグを格納すればよい。
【００７８】
図１５は第２の実施形態によるメモリシステム１の処理手順の一例を示すフローチャートである。まず、再構成メモリ２２がキャッシュモードかＴＬＢモードかを選択する（ステップＳ３１）。モード選択にあたっては、後述するように、キャッシュミス率やＴＬＢミス率などを参考にする。
【００７９】
キャッシュモードを選択した場合にＬ１ＴＬＢ２３およびＬ２ＴＬＢ２４の双方にミスすると、ＴＬＢミスとなり、ＭＭＵ５はページテーブル６にアクセスする（ステップＳ３２）。
【００８０】
ＭＭＵ５は、Ｌ１ＴＬＢ２３、Ｌ２ＴＬＢ２４またはページテーブル６から取得したアドレス変換情報を用いてＬ１キャッシュ８にアクセス要求を送付し、Ｌ１キャッシュ８がミスすると、Ｌ１キャッシュ８は再構成メモリ２２にアクセス要求を送る（ステップＳ３３）。Ｌ２キャッシュ９として機能する再構成メモリ２２は、キャッシュヒットするか否かを確認し（ステップＳ３４）、キャッシュヒットすると、再構成メモリ２２から該当データを読み出してＬ１キャッシュ８に送る（ステップＳ３５）。ステップＳ３５でキャッシュミスすると、再構成メモリ２２はＬ３キャッシュ２５にアクセス要求を送る（ステップＳ３６）。
【００８１】
一方、ステップＳ３１でＴＬＢモードを選択した場合に、Ｌ１ＴＬＢ２３またはＬ２ＴＬＢ２４にヒットすると、後述するステップＳ４１に移行する。また、Ｌ１ＴＬＢ２３およびＬ２ＴＬＢ２４の双方にミスすると、Ｌ２ＴＬＢ２４は、Ｌ３ＴＬＢ２０として機能する再構成メモリ２２にアクセス要求を送る（ステップＳ３７）。
【００８２】
Ｌ３ＴＬＢコントローラ２８は、Ｌ３ＴＬＢ２０に該当するページエントリ情報１２があるか否かを判定し（ステップＳ３８）、Ｌ３ＴＬＢ２０に該当するページエントリ情報１２があればＴＬＢヒットとなり、Ｌ３ＴＬＢコントローラ２８は、ＭＭＵ５にページエントリ情報１２を通知する（ステップＳ３９）。Ｌ３ＴＬＢ２０に該当するページエントリ情報１２がなければＴＬＢミスとなり、ＭＭＵ５はページテーブル６にアクセスする（ステップＳ４０）。
【００８３】
ＭＭＵ５は、Ｌ１ＴＬＢ２３、Ｌ２ＴＬＢ２４、Ｌ３ＴＬＢ２０またはページテーブル６からアドレス変換情報を取得し（ステップＳ４１）、取得したアドレス変換情報をＬ３ＴＬＢ２０、Ｌ２ＴＬＢ２４およびＬ１ＴＬＢ２３にフィルする（書き込む）。Ｌ２ＴＬＢ２４は、このフィルの際に上書きされ消去されるアドレス変換情報をＬ３ＴＬＢ２０に追い出して（書き込んで）もよい。ＭＭＵ５は、Ｌ１ＴＬＢ２３から取得したアドレス変換情報を用いてＬ１キャッシュ８にアクセス要求を送付し（ステップＳ４２）、Ｌ１キャッシュ８がミスすると、Ｌ１キャッシュ８はＬ３キャッシュ２５にアクセス要求を送る。
【００８４】
なお、図１４のデータ構成は一例であり、セット数やウェイ数は任意である。また、必ずしも再構成メモリ２２をセットアソシアティブ構成にする必要はない。場合によっては、フルアソシアティブ構成やダイレクトマップ構成にしてもよい。
【００８５】
図１６はキャッシュモードからＴＬＢモードへの遷移の手順の一例を示すフローチャートである。再構成コントローラ２１は、Ｌ２キャッシュコントローラ２７に対して、キャッシュフラッシュを行うよう通知する（ステップＳ４１）。Ｌ２キャッシュコントローラ２７は、Ｌ２キャッシュ９として用いる再構成メモリ２２内のダーティデータをＬ３キャッシュ２５に書き戻し、キャッシュフラッシュ完了を再構成コントローラ２１に通知する（ステップＳ４２）。
【００８６】
再構成コントローラ２１は、Ｌ１キャッシュ８のキャッシュミス時にＬ１キャッシュ８がＬ３キャッシュ２５にアクセスするよう、Ｌ１キャッシュ８を設定する（ステップＳ４３）。これに並行して、再構成コントローラ２１は、Ｌ３ＴＬＢコントローラ２８に、再構成メモリ２２をＬ３ＴＬＢ２０として使用するために、再構成メモリ２２の初期化を通知する（ステップＳ４４）。
【００８７】
Ｌ３ＴＬＢコントローラ２８は、再構成メモリ２２を初期化し、初期化完了を再構成コントローラ２１に通知する（ステップＳ４５）。再構成コントローラ２１は、Ｌ２ＴＬＢ２４のミス時にＬ２ＴＬＢ２４が再構成コントローラ２１にアクセスするようＬ２ＴＬＢ２４を設定する（ステップＳ４６）。
【００８８】
図１７はＴＬＢモードからキャッシュモードへの遷移の手順の一例を示すフローチャートである。再構成コントローラ２１は、Ｌ２ＴＬＢコントローラに、Ｌ２ＴＬＢ２４のミス時にＴＬＢミスであると認識するようＬ２ＴＬＢ２４を設定させる（ステップＳ５１）。次に、再構成コントローラ２１は、Ｌ２キャッシュコントローラ２７に、Ｌ２キャッシュ９として機能する再構成メモリ２２を初期化するよう通知する（ステップＳ５２）。Ｌ２キャッシュコントローラ２７は、Ｌ２キャッシュ９の初期化を行い、初期化の完了を再構成コントローラ２１に通知する（ステップＳ５３）。再構成コントローラ２１は、Ｌ１キャッシュ８ミス時にＬ１キャッシュ８が再構成コントローラ２１にアクセスするようにＬ１キャッシュ８を設定する（ステップＳ５４）。
【００８９】
（モード遷移の判断基準）
再構成コントローラ２１がキャッシュモードとＴＬＢモードとの間でモード遷移を行う判断基準は、例えば、以下のようにして行う。
【００９０】
１．再構成コントローラ２１は、再構成メモリ２２をＬ２キャッシュ９として使用している場合に、Ｌ２ＴＬＢミスがプロセッサ３の処理性能に大きく影響を与えている場合には、ＴＬＢモードに遷移させる。例えば、Ｌ２キャッシュ９のキャッシュヒット頻度による処理性能向上よりも、Ｌ２ＴＬＢ２４のミス頻度情報による処理性能低下の方が大きいと判断できる場合には、ＴＬＢモードに遷移させてもよい。より具体的には、Ｌ２ＴＬＢ２４のミス頻度情報が設定された閾値以上で、Ｌ２キャッシュ９のキャッシュヒット頻度情報が設定された閾値を以下の場合に、再構成コントローラ２１はＴＬＢモードに遷移させてもよい。Ｌ２ＴＬＢ２４のミス頻度情報とＬ２キャッシュ９のヒット頻度情報を直接比較してもよい。例えば、Ｌ２ＴＬＢ２４のミス頻度情報がＬ２キャッシュ９のヒット頻度情報より大きければ、ＴＬＢモードに遷移させてもよい。
【００９１】
２．再構成コントローラ２１は、再構成メモリ２２をＬ３ＴＬＢ２０として使用している場合に、Ｌ１キャッシュ８のキャッシュミスがプロセッサ３の処理性能に大きな影響を与えている場合には、キャッシュモードに遷移させる。例えば、Ｌ３ＴＬＢ２０のヒット情報頻度による処理性能向上よりも、Ｌ１キャッシュ８がミスし、Ｌ２キャッシュ９がヒットする予測頻度情報による処理性能向上が大きいと判断できる場合には、キャッシュモードに遷移してもよい。より具体的には、Ｌ３ＴＬＢ２０のヒット頻度情報が設定された閾値以下で、予測したＬ２キャッシュ９のヒット頻度情報が設定された閾値以上の場合に、再構成コントローラ２１はキャッシュモードに遷移させてもよい。Ｌ３ＴＬＢ２０のヒット頻度情報と予測したＬ２キャッシュ９のヒット頻度情報を直接比較してもよい。例えば、Ｌ３ＴＬＢ２０のヒット頻度情報が予測したＬ２キャッシュ９のヒット頻度情報より小さければ、キャッシュモードに遷移させてもよい。
【００９２】
Ｌ２キャッシュ９の予測ヒット頻度情報は、例えば、ＴＬＢモードで無効化されているＬ２キャッシュコントローラ２７のキャッシュタグを利用し、計測することが出来る。この場合、例えば、Ｌ１キャッシュ８は、キャッシュミスしたアドレスをＬ２キャッシュコントローラ２７に通知し、Ｌ２キャッシュコントローラ２７は、再構成メモリ２２の制御を行うことなくタグメモリのみを動作させ、Ｌ２キャッシュ９でのヒット・ミスをシミュレーションすればよい。
【００９３】
なお、キャッシュおよびＴＬＢのヒット頻度情報は、様々な定量化が考えられる。例えば、単位時間若しくは単位命令数当たりのヒット回数でも良い。ヒットによる処理性能向上の度合いでも良い。ヒットによる性能向上の度合いは、例えば、対象階層メモリ（キャッシュもしくはＴＬＢ）とその下位階層メモリのレイテンシの差と、対象階層メモリの単位時間当たりのヒット回数を乗算すれば算出できる。算出された値を、単位時間もしくは単位命令あたりのプロセッサ実行時間で除算した処理性能向上率を用いてもよい。
【００９４】
図１８はキャッシュモード時に再構成コントローラ２１が行うモード遷移処理の処理手順の一例を示すフローチャートである。
【００９５】
例えば、再構成コントローラ２１は、キャッシュモードでは、Ｌ２キャッシュ９として機能する再構成メモリ２２からＬ２キャッシュ９のキャッシュヒット頻度情報を取得するとともに、Ｌ２ＴＬＢ２４からＬ２ＴＬＢ２４のミス頻度情報を取得する（ステップＳ６１）。
【００９６】
次に、再構成コントローラ２１は、取得したＬ２キャッシュ９のキャッシュヒット頻度情報が予め定めた第１閾値未満で、かつ取得したＬ２ＴＬＢ２４のミス頻度情報が予め定めた第２閾値以上か否かを判定する（ステップＳ６２）。
【００９７】
ステップＳ６２の判定がＹＥＳの場合、すなわち、Ｌ２キャッシュ９のキャッシュヒット頻度情報が第１閾値未満で、かつＬ２ＴＬＢ２４のミス頻度情報が第２閾値以上であれば、キャッシュモードからＴＬＢモードへの遷移を行う（ステップＳ６３）。
【００９８】
ステップＳ６２の判定がＮＯの場合、すなわち、Ｌ２キャッシュ９のキャッシュヒット頻度情報が第１閾値以上か、Ｌ２ＴＬＢ２４のミス頻度情報が第２閾値未満かの少なくとも一方であれば、モード遷移は行わず、現状のキャッシュモードを保持する（ステップＳ６４）。
【００９９】
図１９はＴＬＢモード時に再構成コントローラ２１が行うモード遷移処理の処理手順の一例を示すフローチャートである。
【０１００】
例えば、再構成コントローラ２１は、ＴＬＢモードでは、Ｌ３ＴＬＢ２０として機能する再構成メモリ２２からＬ３ＴＬＢ２０のヒット頻度情報を取得するとともに、Ｌ２キャッシュコントローラ２７から予測ヒット頻度情報を取得する（ステップＳ７１）。
【０１０１】
次に、再構成コントローラ２１は、取得したＬ３ＴＬＢ２０のヒット頻度情報が予め定めた第３閾値未満で、かつ取得したL2キャッシュの予測ヒット頻度情報が予め定めた第４閾値以上か否かを判定する（ステップＳ７２）。
【０１０２】
ステップＳ７２の判定がＹＥＳの場合、すなわち、Ｌ３ＴＬＢ２０のヒット頻度情報が第３閾値未満で、かつＬ2キャッシュの予測キャッシュヒット頻度情報が第４閾値以上であれば、ＴＬＢモードからキャッシュモードへの遷移を行う（ステップＳ７３）。
【０１０３】
ステップＳ７２の判定がＮＯの場合、すなわち、Ｌ３ＴＬＢ２０のヒット頻度情報が第３閾値以上か、Ｌ2キャッシュ８の予測キャッシュヒット頻度情報が第４閾値未満かの少なくとも一方であれば、モード遷移は行わず、現状のＴＬＢモードを保持する（ステップＳ７４）。
【０１０４】
図１０では、再構成メモリ２２を、Ｌ２キャッシュ９またはＬ３ＴＬＢ２０として使用する例を説明したが、再構成メモリ２２に割り当てるキャッシュメモリの階層とＴＬＢの階層とは任意である。すなわち、上述したキャッシュモードでは、再構成メモリ２２を、複数階層のキャッシュメモリのうち任意の階層のキャッシュメモリとして使用し、上述したＴＬＢモードでは、複数階層のＴＬＢのうち任意の階層のＴＬＢとして使用するようにしてもよい。
【０１０５】
このように、第２の実施形態では、不揮発メモリ１０からなる再構成メモリ２２を、キャッシュメモリとして使用するか、ＴＬＢとして使用するかを、再構成コントローラ２１が切り替えることができるようにしたため、プロセッサ３の処理性能をより向上できる。すなわち、キャッシュミスが多い場合には、再構成メモリ２２によりキャッシュメモリのメモリ容量を増やすことができるため、キャッシュミスを削減できる。また、ＴＬＢミスが多い場合には、再構成メモリ２２によりＴＬＢの容量を増やすことができるため、ＴＬＢミスを削減できる。
【０１０６】
また、第１の実施形態と同様に、再構成メモリ２２の一部、例えば一部のウェイを、電源遮断時のＴＬＢの待避（記憶）先として用いることができる。よって、電源復帰後のＴＬＢミスの増加を抑制できる。電源遮断時のＴＬＢ待避（記憶）の制御は、再構成コントローラ２１が行ってもよいし、あるいは、他のコントローラ（例えば、図１の電源管理コントローラ１１）を図１０のメモリシステム１に設けても、このコントローラで電源遮断時のＴＬＢ待避（記憶）の制御を行ってもよい。第２の実施形態での電源遮断時のＴＬＢの退避に関しても、第１の実施形態に記載されている種々の制御ポリシや制御手順は適用可能である。
【０１０７】
（第３の実施形態）
第３の実施形態は、再構成メモリ２２の一部をキャッシュメモリとして使用し、残りの少なくとも一部をＴＬＢとして使用するものである。すなわち、第３の実施形態による再構成メモリ２２は、キャッシュメモリの領域とＴＬＢの領域とが混在したハイブリッド構成である。
【０１０８】
第３の実施形態によるメモリシステム１を備えたプロセッサシステム２は、図１０と同様に構成される。
【０１０９】
図２０は第３の実施形態による再構成メモリ２２の内部構成の一例を示すブロック図である。図２０の再構成メモリ２２は、再構成メモリアレイ２６と、Ｌ２キャッシュコントローラ２７と、Ｌ３ＴＬＢコントローラ２８とを有する。
【０１１０】
再構成メモリアレイ２６は、全メモリ領域をＬ２キャッシュ９またはＬ３ＴＬＢ２０として使用することができる他、一部のメモリ領域をＬ２キャッシュ９として使用し、残りの少なくとも一部をＬ３ＴＬＢ２０として使用することができる。
【０１１１】
再構成コントローラ（第２コントローラ）２１は、再構成メモリアレイ２６内の割り振りを制御する。すなわち、再構成コントローラ２１は、再構成メモリアレイ２６内のメモリ領域の少なくとも一部をＬ２キャッシュ９およびＬ３ＴＬＢ２０として使用するか否かを制御する。
【０１１２】
再構成メモリアレイ２６内のＬ２キャッシュ９は、Ｌ２キャッシュコントローラ２７によりアクセス制御され、再構成メモリアレイ２６内のＬ３ＴＬＢ２０は、Ｌ３ＴＬＢコントローラ２８によりアクセス制御される。
【０１１３】
図２１は再構成メモリアレイ２６をキャッシュモードから一部ＴＬＢモードに遷移させる処理手順の一例を示すフローチャートである。まず、Ｌ２キャッシュコントローラ２７に対して、再構成メモリアレイ２６の任意のウェイのキャッシュフラッシュを通知する（ステップＳ８１）。
【０１１４】
次に、ステップＳ８１でキャッシュフラッシュを通知したウェイのダーティデータをＬ３キャッシュ２５に書き戻して、キャッシュフラッシュの完了を再構成コントローラ２１に通知する（ステップＳ８２）。
【０１１５】
次に、Ｌ３ＴＬＢコントローラ２８にウェイの追加とその初期化を通知する（ステップＳ８３）。次に、Ｌ３ＴＬＢコントローラ２８は、追加したウェイを初期化し、初期化の完了を再構成コントローラ２１に通知する（ステップＳ８４）。
【０１１６】
次に、再構成コントローラ２１は、Ｌ２ＴＬＢ２４のミス時に再構成コントローラ２１に通知するようＬ２ＴＬＢ２４を設定する。（ステップＳ８５）。
【０１１７】
図２１の処理手順で、再構成メモリアレイ２６の任意のウェイをＴＬＢモードに遷移させた後、さらに別の任意のウェイをＴＬＢモードに遷移させることも可能である。この場合の処理手順は、例えば図２２のようなフローチャートになる。
【０１１８】
まず、Ｌ２キャッシュコントローラ２７に対して、新たな任意のウェイのキャッシュフラッシュを通知する（ステップＳ９１）。次に、ステップＳ９１でキャッシュフラッシュを通知したウェイのダーティデータをＬ３キャッシュ２５に書き戻して、キャッシュフラッシュの完了を再構成コントローラ２１に通知する（ステップＳ９２）。その後は、ステップＳ８３〜Ｓ８５と同様の処理が行われる（ステップＳ９３〜Ｓ９５）。
【０１１９】
このようにして、再構成メモリアレイ２６内で、ＴＬＢモードのウェイを増やすことができる。一方、再構成メモリアレイ２６内のＴＬＢモードのウェイをキャッシュモードに遷移することも可能である。
【０１２０】
図２３は再構成メモリアレイ２６内のＴＬＢモードのウェイをキャッシュモードに遷移させる処理手順の一例を示すフローチャートである。まず、Ｌ３ＴＬＢコントローラ２８に任意のウェイの無効化を通知する（ステップＳ１０１）。次に、Ｌ３ＴＬＢコントローラ２８は、通知されたウェイの無効化を行い、無効化の完了を再構成コントローラ２１に通知する（ステップＳ１０２）。
【０１２１】
再構成コントローラ２１は、Ｌ２キャッシュコントローラ２７にウェイの追加とその初期化を通知する（ステップＳ１０３）。Ｌ２キャッシュコントローラ２７は、追加したウェイを初期化し、初期化の完了を再構成コントローラ２１に通知する（ステップＳ１０４）。再構成コントローラ２１は、Ｌ１キャッシュ８のキャッシュミス時に再構成コントローラ２１にアクセスするようＬ１キャッシュ８を設定する（ステップＳ１０５）。
【０１２２】
図２３の処理手順で、再構成メモリアレイ２６の任意のウェイをＴＬＢモードからキャッシュモードに遷移させた後、さらに別の任意のウェイをキャッシュモードに遷移させることも可能である。この場合の処理手順は、例えば図２４のようなフローチャートになる。
【０１２３】
再構成コントローラ２１は、Ｌ３ＴＬＢコントローラ２８に任意のウェイの無効化を通知する（ステップＳ１１１）。Ｌ３ＴＬＢコントローラ２８は、通知されたウェイの無効化を行い、無効化の完了を再構成コントローラ２１に通知する（ステップＳ１１２）。その後は、図２２のステップステップＳ１０３，Ｓ１０４と同様の処理を行う（ステップＳ１１３，Ｓ１１４）。
【０１２４】
図２５は第３の実施形態による再構成コントローラ２１の処理手順を示すフローチャートである。なお、このフローチャートは、再構成メモリアレイ２６が、複数のウェイを有するフルアソシアティブまたはセットアソシアティブ構成である例を示している。
【０１２５】
まず、再構成コントローラ２１は、再構成メモリ２２から、Ｌ２キャッシュ９のキャッシュヒット頻度情報とＬ３ＴＬＢ２０のミス頻度情報とを取得する（ステップＳ１２１）。
【０１２６】
次に、Ｌ２キャッシュ９のキャッシュヒット頻度情報が第１閾値未満で、かつＬ２ＴＬＢ２０のミス頻度情報が第２閾値以上か否かを判定する（ステップＳ１２２）。
【０１２７】
ステップＳ１２２の判定がＹｅｓであれば、Ｌ２キャッシュ９のウェイを減らして、Ｌ３ＴＬＢ２０のウェイを増やす（ステップＳ１２３）。ここでは、例えば、１つまたは複数のウェイ単位で、Ｌ２キャッシュ９の領域を減らして、Ｌ３ＴＬＢ２０の領域を増やす。
【０１２８】
ステップＳ１２２の判定がＮｏであれば、Ｌ３ＴＬＢ２０のヒット頻度情報が第３閾値未満で、かつＬ２キャッシュ９の予測ヒット頻度情報が第４閾値以上か否かを判定する（ステップＳ１２４）。
【０１２９】
ステップＳ１２４の判定がＹｅｓであれば、Ｌ３ＴＬＢ２０のウェイを減らして、Ｌ２キャッシュ９のウェイを増やす（ステップＳ１２５）。ステップＳ１２４の判定がＮｏであれば、再構成メモリアレイ２６における現状のウェイ構成を保持して、図２５の処理を終了する。
【０１３０】
第３の実施形態においても、再構成メモリ２２に割り当てるキャッシュメモリの階層とＴＬＢの階層とは任意であり、Ｌ２キャッシュ９とＬ３ＴＬＢ２０に限定されるものではない。
【０１３１】
なお、再構成メモリアレイ２６が複数のウェイに分かれていない場合は、例えば、所定のメモリサイズのメモリブロックごとに、Ｌ２キャッシュ９またはＬ３ＴＬＢ２０として使用するか否かを設定してもよい。
【０１３２】
このように、第３の実施形態では、再構成メモリアレイ２６内に、キャッシュメモリとＴＬＢの双方を混在させることができるため、キャッシュアクセス情報やＴＬＢミスアクセス情報に応じて、再構成メモリアレイ２６内のキャッシュメモリとＴＬＢの割合を増減でき、キャッシュミスの低減や、ＴＬＢミスの低減が可能である。
【０１３３】
（第４の実施形態）
上述した図１〜図２５では、プロセッサ３がシングルコアの例を説明したが、上述した第１、第２および第３の実施形態は、種々のプロセッサ３の構成に適用可能である。例えば、図２６は第２または第３の実施形態をマルチコアに適用した第１例を示すブロック図である。図２６は、２つのプロセッサ３を有する例を示している。各プロセッサ３ごとに、ＭＭＵ５、ページテーブル６、Ｌ１キャッシュ８、再構成コントローラ２１、再構成メモリ２２、Ｌ１ＴＬＢ２３およびＬ２ＴＬＢ２４が設けられている。Ｌ３キャッシュ２５とメインメモリ４は、２つのプロセッサ３で共有している。図２６の構成で、３つ以上のプロセッサ３を設ける場合も、Ｌ３キャッシュ２５とメインメモリ４はすべてのプロセッサ３で共有される。
【０１３４】
図２７は、第２または第３の実施形態をマルチコアに適用した第２例を示すブロック図である。図２７では、図２６と異なり、Ｌ３キャッシュ２５とメインメモリ４だけでなく、再構成コントローラ２１と再構成メモリ２２も、すべてのプロセッサ３で共有している。図２７の構成によれば、例えば、各プロセッサ３の処理負担に応じて、再構成メモリ２２を各プロセッサ３で分担して使用するため、再構成メモリ２２を有効活用することができる。また、図２７の構成によれば、再構成コントローラ２１と再構成メモリ２２の数を削減できることから、メモリシステム１内のハードウェア構成を簡略化できる。
【０１３５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３６】
１  メモリシステム、２  プロセッサシステム、３  プロセッサ、４  メインメモリ、５  ＭＭＵ、６  ページテーブル、７  第１トランスレーション・ルックアサイド・バッファ、８  Ｌ１キャッシュ、９  Ｌ２キャッシュ、１０  不揮発メモリ、１１  電源管理コントローラ、１７  Ｌ２キャッシュコントローラ、１８  ＴＬＢ待避コントローラ、２０  Ｌ３ＴＬＢ、２１  再構成コントローラ、２２  再構成メモリ、２３  Ｌ１ＴＬＢ、２４  Ｌ２ＴＬＢ、２５  Ｌ３キャッシュ
【要約】      （修正有）【課題】プロセッサの処理性能を向上可能なメモリシステムを提供する。【解決手段】メモリシステム１は、メインメモリ４より高速アクセスが可能な第１キャッシュメモリとして使用可能な不揮発メモリ１０と、プロセッサ３が発行する仮想アドレスから物理アドレスへのアドレス変換情報を格納する第１トランスレーション・ルックアサイド・バッファ７と、電源遮断時に、第１トランスレーション・ルックアサイド・バッファ内のアドレス変換情報を不揮発メモリに記憶させる第１コントローラ１１と、を備える。【選択図】図１【図１】
0005974133.tif 000002
【図２】
0005974133.tif 000003
【図３】
0005974133.tif 000004
【図４】
0005974133.tif 000005
【図５】
0005974133.tif 000006
【図６】
0005974133.tif 000007
【図７】
0005974133.tif 000008
【図８】
0005974133.tif 000009
【図９】
0005974133.tif 000010
【図１０】
0005974133.tif 000011
【図１１】
0005974133.tif 000012
【図１２】
0005974133.tif 000013
【図１３】
0005974133.tif 000014
【図１４】
0005974133.tif 000015
【図１５】
0005974133.tif 000016
【図１６】
0005974133.tif 000017
【図１７】
0005974133.tif 000018
【図１８】
0005974133.tif 000019
【図１９】
0005974133.tif 000020
【図２０】
0005974133.tif 000021
【図２１】
0005974133.tif 000022
【図２２】
0005974133.tif 000023
【図２３】
0005974133.tif 000024
【図２４】
0005974133.tif 000025
【図２５】
0005974133.tif 000026
【図２６】
0005974133.tif 000027
【図２７】
0005974133.tif 000028