(57)【要約】【課題】  消費電力を削減するとともに、動作速度が速いキャッシュシステムおよび処理装置を提供すること。【解決手段】  本発明の実施形態によるキャッシュシステムは、揮発性キャッシュメモリーと、前記揮発性キャッシュメモリーと同容量の不揮発性キャッシュメモリーと、前記揮発性キャッシュメモリーと前記不揮発性キャッシュメモリーとに対して同じラインを指定するアドレスデコーダと、前記揮発性キャッシュメモリーから入力されるデータを記憶し、記憶したデータを前記揮発性キャッシュメモリーへ出力する退避領域とを有することを特徴とする。【選択図】  図２
2012190359.tif 000002
【特許請求の範囲】
【請求項１】
揮発性キャッシュメモリーと、
前記揮発性キャッシュメモリーと同容量の不揮発性キャッシュメモリーと、
前記揮発性キャッシュメモリーと前記不揮発性キャッシュメモリーとに対して同じラインを指定するアドレスデコーダと、
前記揮発性キャッシュメモリーから入力されるデータを記憶し、記憶したデータを前記揮発性キャッシュメモリーへ出力する退避領域とを有することを特徴とするキャッシュシステム。
【請求項２】
前記不揮発性キャッシュメモリーに記憶されたデータに対する要求を受けると、前記アドレスデコーダにて指定される前記不揮発性キャッシュメモリーに記憶されたラインと同じ前記揮発性キャッシュメモリーのライン上に前記不揮発性キャッシュメモリーに記憶されたデータを記憶するよう制御する制御部をさらに有することを特徴とする請求項１に記載のキャッシュシステム。
【請求項３】
前記制御部は、前記不揮発性キャッシュメモリーに記憶されたデータを前記揮発性キャッシュメモリーに記憶させるときに、前記アドレスデコーダによって指定される前記揮発性キャッシュメモリーのライン上にデータが記憶されていれば、その前記揮発性キャッシュメモリーに記憶されているデータを前記退避領域に記憶させた後に、前記不揮発性キャッシュメモリーに記憶されたデータを前記揮発性キャッシュメモリーに記憶させ、その後、前記退避領域に記憶させたデータを前記揮発性キャッシュメモリーに記憶させることを特徴とする請求項２に記載のキャッシュシステム。
【請求項４】
前記制御部は、前記揮発性キャッシュメモリーの電源をオフにする場合、前記揮発性キャッシュメモリーに記憶されたデータを前記不揮発性キャッシュメモリーに記憶させた後に前記揮発性キャッシュメモリーの電源をオフにすることを特徴とする請求項３に記載のキャッシュシステム。
【請求項５】
前記揮発性キャッシュメモリーのライン毎に、前記揮発性キャッシュメモリーのラインに記憶されているデータが前記不揮発性キャッシュメモリーのデータから複製されたデータであるかどうかを示すフラグを格納する記憶部をさらに有し、
前記制御部は、前記揮発性キャッシュメモリーに記憶されたデータを前記不揮発性キャッシュメモリーに記憶させるときに、前記記憶部の前記不揮発性キャッシュメモリーのデータから複製されたデータでないことを示すフラグと対応付けられた前記揮発性キャッシュメモリーのラインに記憶されたデータを、前記不揮発性キャッシュメモリーにコピーすることを特徴とする請求項４に記載のキャッシュシステム。
【請求項６】
前記揮発性キャッシュメモリーのラインに対して、前記揮発性キャッシュメモリーのラインに記憶されているデータが前記不揮発性キャッシュメモリーのデータから複製されたデータであるかどうかを示すフラグをウェイ毎に格納する記憶部をさらに有し、
前記制御部は、前記揮発性キャッシュメモリーに記憶されたデータを前記不揮発性キャッシュメモリーに記憶させるときに、前記記憶部に記憶されたウェイ毎のフラグが前記不揮発性キャッシュメモリーのデータから複製されたデータでないことを示す前記揮発性キャッシュメモリーのラインのウェイに記憶されたデータを、前記不揮発性キャッシュメモリーにコピーすることを特徴とする請求項４に記載のキャッシュシステム。
【請求項７】
前記制御部は、前記揮発性キャッシュメモリーに空き領域が無いときに前記不揮発性キャッシュメモリーの電源をオフにすることを特徴とする請求項１乃至６のいずれか１項に記載のキャッシュシステム。
【請求項８】
前記揮発性キャッシュメモリーは、磁気抵抗メモリーまたは強誘電体メモリーであることを特徴とする請求項１乃至７のいずれか１項に記載のキャッシュシステム。
【請求項９】
請求項１乃至８のいずれか１項に記載のキャッシュシステムと、
前記キャッシュシステムから出力されるデータを用いた演算を行うプロセッサエレメントを有することを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はキャッシュシステムおよび処理装置に関する。
【背景技術】
【０００２】
近年、回路システム全体の低消費電力化が課題となっている。特にプロセッサ部分は、動作させている最中にも使用されていないことが頻繁に発生しているため、プロセッサ部分の消費電力削減によって、回路システム全体の消費電力を低減することができる。そこで、プロセッサが使用されていない時には、動作周波数を下げることでプロセッサ部分の消費電力を削減する方法が取られてきた。しかしこの方法では、プロセッサのスタンバイ時であっても動作電源そのものを切ることはできない。そのため、更なる消費電力削減が求められている。これに対して、プロセッサに含まれるキャッシュを不揮発性メモリーで構成し、プロセッサがスタンバイの時に動作電源を切断することも考えられるが、不揮発性メモリーは揮発性メモリーに比べて書き込み速度が遅いため、プロセッサ性能の悪化が生じる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７０９３０８９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで本発明は、消費電力を削減するとともに、動作速度が速いキャッシュシステムおよび処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の実施形態によるキャッシュシステムは、揮発性キャッシュメモリーと、前記揮発性キャッシュメモリーと同容量の不揮発性キャッシュメモリーと、前記揮発性キャッシュメモリーと前記不揮発性キャッシュメモリーとに対して同じラインを指定するアドレスデコーダと、前記揮発性キャッシュメモリーから入力されるデータを記憶し、記憶したデータを前記揮発性キャッシュメモリーへ出力する退避領域とを有することを特徴としている。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態に係る情報処理装置の構成を示すブロック図。
【図２】本発明の実施形態に係る情報処理装置のキャッシュの構成を示すブロック図。
【図３】本発明の実施形態に係る情報処理装置のキャッシュの第３の動作モード時の動作を示すフローチャートである。
【図４】本発明の実施形態に係る情報処理装置のキャッシュの第３の動作モード時の動作を示すフローチャートである。
【図５】本発明の実施形態に係る情報処理装置のキャッシュの変形例の構成を示すブロック図。
【図６】本発明の実施形態に係る情報処理装置のキャッシュの変形例の第２の動作モード時の動作を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態について図面を参照して説明する。  
図１は、本発明の実施形態に係る情報処理装置を示す構成図である。この情報処理装置は、例えば通信機器やＰＣやテレビなどであり、プロセッサ１０、メインメモリー２０、ハードディスク３０、入出力装置４０が内部インタフェースで接続されている。また、メインメモリー２０には不揮発性メモリー５０が接続されている。
【０００８】
プロセッサ１０は、プロセッサエレメント（ＰＥ）１１とキャッシュ１２とを含み、プロセッサエレメント１１には、演算を行うコア１１１やＬ１キャッシュと呼ばれる高速な記憶装置などが含まれる。本実施形態に係るプロセッサ１０は、プロセッサ１０の稼働状況に応じてプロセッサ電源のオン・オフを繰り返すことによって、プロセッサ１０の消費電力削減を行う。
【０００９】
キャッシュ１２は、揮発性メモリーを有する揮発性キャッシュ部１２１と、不揮発性メモリーを有する不揮発性キャッシュ部１２２を含む。揮発性メモリーは、例えばＳＲＡＭ（Static Random Access Memory）などである。不揮発性メモリーは、例えば磁気抵抗メモリー（ＭＲＡＭ：Megnetoresistive Random Access Memory）、強誘電体メモリー（ＦｅＲＡＭ：Ferroelectric Random Access Memory）、抵抗変化型メモリー（ＲｅＲＡＭ：Resistance Random Access Memory）、相変化メモリー（ＰＲＡＭ：Phase change RAM）などである。不揮発性メモリーとしてＭＲＡＭを用いた場合、他の不揮発性メモリーと比較して、書き換え耐性が高く、書き込みスピードも速い。また、ＦｅＲＡＭを不揮発性メモリーとして用いた場合は、ＦｅＲＡＭは、ＭＲＡＭとほぼ同じ程度の書き換え耐性を有し、既存の集積回路の作成プロセスと相性が良いため、製造が容易である。
【００１０】
仮に、キャッシュ１２を揮発性メモリーだけで構成したとすると、プロセッサ１０の電源をオフにした時に、キャッシュ１２に保存されていたデータが全て消去されてしまい、プロセッサ１０が再度動作した時に、上位の記憶媒体（メインメモリー２０やハードディスク３０）からデータの読み出しを行う必要が生じ、演算処理時間の悪化を引き起こす。また、仮にキャッシュ１２を不揮発性メモリーだけで構成したとすると、不揮発性メモリーは揮発性メモリーに比べて書き込み速度が遅いため、プロセッサ１０の性能の悪化が生じる。
【００１１】
それに対して、キャッシュ１２は揮発性キャッシュ部１２１と不揮発性キャッシュ部１２２とを組み合わせたハイブリッドキャッシュ構造を用いる。キャッシュ１２は、一時的にプロセッサ電源をオフにする際には、揮発性キャッシュ部１２１に記憶されているデータを不揮発性キャッシュ部１２２に退避させてデータの消失を防ぎ、プロセッサ電源を再度立ち上げた直後には、不揮発性キャッシュ部１２２に保存されているデータを使用して動作する。
【００１２】
図２は、キャッシュ１２の構成を示すブロック図である。キャッシュ１２は、前述の揮発性キャッシュ部１２１、不揮発性キャッシュ部１２２のほかに、アドレスデコーダ１２３、退避領域１２４、マルチプレクサ１２５、１２６、制御部１２７を有する。
【００１３】
揮発性キャッシュ部１２１のメモリーは、プロセッサエレメント１１からキャッシュ１２への書き込み要求がなされているデータかメインメモリー２０から取り出されたデータと、不揮発性キャッシュ部１２２のメモリーに記憶されたデータと、退避領域１２４に記憶されたデータのいずれかをメモリーに格納することができる。プロセッサエレメント１１からの書き込み要求がなされるデータは、例えば、メインメモリー２０に含まれるデータやプロセッサエレメント１１のＬ１キャッシュに含まれるデータのうち、プロセッサエレメント１１で演算処理に使用されたデータである。
【００１４】
不揮発性キャッシュ部１２２のメモリーは、揮発性キャッシュ部１２１の揮発性メモリーと同じ容量の不揮発性メモリーである。不揮発性キャッシュ部１２２は、揮発性キャッシュ部１２１のメモリーに記憶されたデータをメモリーに格納することができる。
【００１５】
アドレスデコーダ１２３は、プロセッサエレメント１１から出力されるアドレスデータに応じて、揮発性キャッシュ部１２１内のメモリーと不揮発性キャッシュ部１２２内のメモリーのラインを指定する。揮発性キャッシュ部１２１と不揮発性キャッシュ部１２２とでライン指定に使用するアドレスデコーダ１２３を共有することで、キャッシュ１２の面積を削減することができる。ただし、アドレスデコーダ１２３の共有化によって、揮発性キャッシュ部１２１内のメモリーと不揮発性キャッシュ部１２２内のメモリーの一方から他方へデータをコピーする場合には、同じライン上へのコピーとなる。
【００１６】
退避領域１２４は、揮発性キャッシュ部１２１に接続されている。退避領域１２４は、一時的にデータを記憶するものであって、フリップフロップ（ＦＦ）やＳＲＡＭなどのメモリーから成り、揮発性キャッシュ部１２１内のメモリーの１ライン分のデータを保存することができる。
【００１７】
アドレスデコーダ１２３の共有化によって、不揮発性キャッシュ部１２２内のメモリーから揮発性キャッシュ部１２１内のメモリーへデータをコピーする場合には、同じライン上へのコピーとなるため、書き込み先に既に他のデータが存在している場合、そのデータが上書きされてしまう。上書きされたデータが最近使用されたものであるとき、このデータの再要求確率は高い。そのため、このデータを上書きすることによって、キャッシュミスを起こす確率が上がってしまう。これを回避するために、退避領域１２４が用いられる。不揮発性キャッシュ部１２２内のメモリーから揮発性キャッシュ部１２１内のメモリーへデータをコピーするときに、アドレスデコーダ１２３によって指定されているライン上に既にデータが格納されている場合、このデータを一時的に退避領域１２４へ退避させる。そして、不揮発性キャッシュ部１２２内のメモリーから揮発性キャッシュ部１２１内のメモリーへのデータコピー完了後に、アドレスデコーダ１２３によって揮発性キャッシュ部１２１内のメモリーの他のラインを指定させ、その場所に退避領域１２４に格納されているデータを保存する。これによって、キャッシュミスの確率が上がるようなデータの上書きを減らすことができる。
【００１８】
マルチプレクサ１２５は、制御部１２７の制御に応じて、揮発性キャッシュ部１２１から出力されるデータと不揮発性キャッシュ部１２２から出力されるデータのいずれか一方をプロセッサエレメント１１へ出力する。
【００１９】
マルチプレクサ１２６は、制御部１２７の制御に応じて、プロセッサエレメント１１からキャッシュ１２への書き込み要求がなされたデータと、不揮発性キャッシュ部１２２のメモリーに記憶されたデータと、退避領域１２４に記憶されたデータのいずれかを揮発性キャッシュ部１２１へ入力する。
【００２０】
制御部１２７は、揮発性キャッシュ部１２１、不揮発性キャッシュ部１２２、アドレスデコーダ１２３の制御を行う。また、制御部１２７は、揮発性キャッシュ部１２１、不揮発性キャッシュ部１２２から取得したアドレスヒットの状態とプロセッサエレメント１１から出力された要求の種類に応じて、マルチプレクサ１２５、１２６の出力を制御する。
【００２１】
このような構成を有するキャッシュ１２の動作について説明する。キャッシュ１２には、３通りの動作モードがある。第１の動作モードは、揮発性キャッシュ部１２１のみをキャッシュとして用いる動作モードである。つまり、第１の動作モードのとき、キャッシュ１２は、プロセッサエレメント１１の要求に基づいて、揮発性キャッシュ部１２１からデータを出力したり、メインメモリー２０に含まれるデータやプロセッサエレメント１１のＬ１キャッシュに含まれるデータを揮発性キャッシュ部１２１へ格納したりする。
【００２２】
第２の動作モードは、プロセッサ１０の電源をオフにしてパワーゲーティングを行う場合の動作モードである。このとき、アドレスデコーダ１２３が揮発性キャッシュ部１２１と不揮発性キャッシュ部１２２のメモリーの１ラインずつを指定し、揮発性メモリーのデータを１ラインずつ不揮発性メモリーの同じラインに書き込む。そして、このコピー作業が終了すると同時に、キャッシュ１２の電源をオフにする。
【００２３】
第３の動作モードは、プロセッサ１０がパワーゲーティングの状態から復帰した直後から第１の動作モードへ移行するまでの間の動作モードである。第２の動作モードにて、キャッシュ１２の電源をオフにするため、揮発性キャッシュ部１２１に記憶されたデータは消える。その後、プロセッサ１０がパワーゲーティングの状態から復帰すると、揮発性キャッシュ部１２１と不揮発性キャッシュ部１２２の両方の電源がオンになる。このとき、不揮発性キャッシュ部１２２にはパワーゲーティング前に揮発性キャッシュ部１２１からコピーされたデータが格納されているが、揮発性キャッシュ部１２１にはデータが格納されていない。
【００２４】
そこで、パワーゲーティングから復帰した直後は、プロセッサエレメント１１が処理を行うために必要なデータを不揮発性キャッシュ部１２２やメインメモリー２０からデータを読み込む。そして、この読み込んだデータを揮発性キャッシュ部１２１へ格納する。ここで、不揮発性キャッシュ部１２２よりも書き込み速度の速い揮発性キャッシュ部１２１へデータの書き込みを行うため、プロセッサ動作性能の悪化を防ぐことができる。ただし、揮発性キャッシュ部１２１に記憶されるデータは、不揮発性キャッシュ部１２２から参照したデータに限らず、揮発性キャッシュ部１２１と不揮発性キャッシュ部１２２の同じラインに記憶されるデータは必ずしも同じデータではないことになる。
【００２５】
そのため、パワーゲーティングの状態から復帰してからある程度の時間が経過すると、不揮発性キャッシュ部１２２のデータを揮発性キャッシュ部１２１のメモリー上に記憶するとき、アドレスデコーダ１２３によって指定されている揮発性キャッシュ部１２１のラインには既にデータが格納されている状況が発生し得る。そこで、当該ライン上の揮発性キャッシュ部１２１のデータを退避領域１２４へ一時的に退避させ、不揮発性キャッシュ部１２２から揮発性キャッシュ部１２１へデータをコピーした後に、退避しておいたデータを揮発性キャッシュ部１２１のメモリーの他のライン上に記憶させる。これによって、最近揮発性キャッシュ部１２１に格納されたデータが上書きされることを防ぐことができる。
【００２６】
その後、さらに時間が経過すると、揮発性キャッシュ部１２１のメモリーに空き領域が無くなる。不揮発性キャッシュ部１２２の電源をオフにして、第１の動作モードに移行し、キャッシュ１２では揮発性キャッシュ部１２１をキャッシュとして用いる。
【００２７】
図３と図４は、第３の動作モード時のキャッシュ１２の動作を示すフローチャートである。プロセッサ１０がパワーゲーティングの状態から復帰し、キャッシュ１２がプロセッサエレメント１１から要求を取得すると（Ｓ１０のＹｅｓ）、揮発性キャッシュ部１２１のメモリー上に指定されたアドレスのデータが存在するか否かを確認する（Ｓ１１）。指定されたアドレスのデータが揮発性キャッシュ部１２１のメモリーに存在し（Ｓ１１のＹｅｓ）、プロセッサエレメント１１からの要求が参照要求（Read Request）であるならば（Ｓ１２のＹｅｓ）、揮発性キャッシュ部１２１の当該データをプロセッサエレメント１１に転送する（Ｓ１３）。また、プロセッサエレメント１１からの要求が、書き込み要求（Write Request）であって、指定されたアドレスのデータが揮発性キャッシュ部１２１のメモリーに存在するならば（Ｓ１２のＮｏ）、揮発性キャッシュ部１２１のメモリーの指定されたアドレスのデータが書き込まれている部分に、データを書き込む（Ｓ１４）。
【００２８】
一方、キャッシュ１２はプロセッサエレメント１１からの要求取得に基づいて、不揮発性キャッシュ部１２２のメモリーに指定されたアドレスのデータが存在するか否かも確認する（Ｓ１５）。この不揮発性キャッシュ部１２２の確認は、揮発性キャッシュ部１２１の確認と並行して行っても良い。指定されたアドレスのデータが揮発性キャッシュ部１２１のメモリーにも不揮発性キャッシュ部１２２のメモリーにも存在せず（Ｓ１５のＮｏ）、プロセッサエレメント１１からの要求が参照要求であったならば（Ｓ１６のＹｅｓ）、上位の記憶媒体（例えばメインメモリー２０）に参照要求を出し、取得したデータを揮発性キャッシュ部１２１のメモリーに書き込みするとともに、そのデータをプロセッサエレメント１１に送る（Ｓ１７）。指定されたアドレスのデータが揮発性キャッシュ部１２１のメモリーにも不揮発性キャッシュ部１２２のメモリーにも存在せず（Ｓ１５のＮｏ）、プロセッサエレメント１１からの要求が書き込み要求であるならば（Ｓ１６のＮｏ）、揮発性キャッシュ部１２１のメモリーにデータを格納する（Ｓ１８）。なお、データを書き込む際、揮発性キャッシュ部１２１のメモリーに空きが無ければ、いずれかのラインのデータを追い出して空きを作り、そのラインに書き込む。揮発性キャッシュ部１２１のメモリーから追い出したデータは、もし必要があればメインメモリー２０に書き込み要求を送出し、メインメモリー２０にこのデータを書き込む。どのラインのデータを追い出すかは、例えばＬＲＵ（Least Recently Used）等の方法を用いる。
【００２９】
プロセッサエレメント１１から指定されたアドレスのデータが揮発性キャッシュ部１２１のメモリーに存在せず、不揮発性キャッシュ部１２２のメモリーに存在する場合（Ｓ１５のＹｅｓ）、アドレスデコーダ１２３が不揮発性キャッシュ部１２２の当該データが格納されているラインを指定する。すると、揮発性キャッシュ部１２１についてもメモリーの同じラインを指定することになる。そして、揮発性キャッシュ部１２１のメモリーの当該ライン上に既に他のデータが格納されているか否かを確認する（Ｓ１９）。
【００３０】
ステップＳ１９において、アドレスデコーダ１２３によって指定された揮発性キャッシュ部１２１のメモリーのライン上にデータが格納されていない場合（Ｓ１９のＮｏ）、プロセッサエレメント１１から出された要求が参照要求であれば（Ｓ２０のＹｅｓ）、その不揮発性キャッシュ部１２１のメモリーのライン上のデータをプロセッサエレメント１１へ転送し（Ｓ２１）、アドレスデコーダ１２３が指定する不揮発性キャッシュ部１２２のメモリーのラインに記憶されたデータを、揮発性キャッシュ部１２１のメモリーの同じラインに書き込む（Ｓ２２）。プロセッサエレメント１１から出された要求が書き込み要求であれば（Ｓ２０のＮｏ）、プロセッサエレメント１１への転送を行なわず、アドレスデコーダ１２３が指定するライン上にプロセッサエレメント１１に指示されたデータを書き込む（Ｓ２３）。
【００３１】
一方、ステップＳ１９において、アドレスデコーダ１２３によって指定された揮発性キャッシュ部１２１のメモリーのライン上に既にデータが格納されている場合（Ｓ１９のＹｅｓ）、不揮発性キャッシュ部１２２の指定ライン上のデータを揮発性キャッシュ部１２１のメモリーにコピーすると、当該ラインに格納されているデータが上書きされるため、既存のデータを一時的に退避させる必要がある。
【００３２】
そこでまず、アドレスデコーダ１２３によって指定された揮発性キャッシュ部１２１のメモリーのライン上に記憶されたデータを退避領域１２４へ転送する（Ｓ２４）。
【００３３】
そして、プロセッサエレメント１１からの要求が参照要求であれば（Ｓ２５のＹｅｓ）、アドレスデコーダ１２３によって指定されている不揮発キャッシュ部１２２のデータをプロセッサエレメント１１へ転送する（Ｓ２６）。その後、不揮発性キャッシュ部１２２の指定ライン上のデータを揮発性キャッシュ部１２１の同じライン上に書き込む（Ｓ２７）。プロセッサエレメント１１からの要求が参照要求でないならば（Ｓ２５のＮｏ）、アドレスデコーダ１２３によって指定された揮発性キャッシュ部のライン上にプロセッサエレメント１１から指示されたデータを書き込む（Ｓ２８）
その後、アドレスデコーダ１２３によって指定するラインを例えば揮発性キャッシュ部１２１の空き領域に変更したうえで、退避領域１２４に格納したデータを揮発性キャッシュ部１２１に書き込む（Ｓ２９）。
【００３４】
このようなステップＳ２４〜Ｓ２９の手順によって、揮発性キャッシュ部１２１のメモリーに格納されているデータが上書きされることを防ぎ、揮発性キャッシュ部１２１のヒット率低下を防ぐことができる。
【００３５】
図３、図４のステップＳ１３、Ｓ１４、Ｓ１７、Ｓ１８、Ｓ２２、Ｓ２３、Ｓ２９終了後には、揮発性キャッシュ部１２１のメモリーに空き領域が有るか否かを確認する（Ｓ３０）。ステップＳ１４、Ｓ１７、Ｓ１８、Ｓ２２、Ｓ２３、Ｓ２９によって揮発性キャッシュ部１２１へデータが書き込まれて、揮発性キャッシュ部１２１のメモリーに空き領域が無くなったような場合（Ｓ３０のＹｅｓ）、不揮発性キャッシュ部１２２の電源を落とし（Ｓ３１）、それ以降は第１の動作モードでキャッシュ１２を動作させる。
【００３６】
なお、図４のフローチャートでは、揮発性キャッシュ部１２１のメモリーに空き領域が無くなった場合に、第１の動作モードに移行するとして説明したが、第１の動作モードへの移行のタイミングはこれに限らない。例えば、プロセッサ１０に計時手段を更に有し、パワーゲーティング後の経過時間が所定の時間を超えた場合に、第１の動作モードへ移行しても良い。
【００３７】
このような実施形態をとることで、アドレスデコーダ共通化による面積削減とともに、プロセッサ１０の動作時には不揮発性メモリーよりも動作速度の速い揮発性メモリーへ書き込むことができるため、揮発性メモリーのみを用いたプロセッサと同等の動作速度を保つことができる。また、揮発性メモリーを含むプロセッサ１０の電源がオフされることによって揮発性メモリー内のデータは消えるが、揮発性メモリーの電源がオフになる前に、揮発性メモリー内のデータを不揮発性メモリーに記憶させることにより、プロセッサ１０の電源がオンされたときに、不揮発性メモリーからデータの読み出しを行うことができるため、演算処理時間の悪化を防ぐことができる。
【００３８】
（変形例）
図５は、本発明の実施形態に係る情報処理装置のキャッシュの変形例を示すブロック図である。図５では、図２に示したキャッシュ１２と同じ構成要素については同じ記号を付し、詳細な説明を省略する。
【００３９】
図５に示すキャッシュ１２ａの揮発性キャッシュ部１２９は、不揮発性キャッシュ部１２２のメモリーと同容量の揮発性メモリーと、揮発性キャッシュ部１２９のメモリーの各ラインが不揮発性キャッシュ部１２２からコピーされたデータであるかどうかを示すフラグを格納する記憶領域を有する。この記憶領域に格納されたフラグは、不揮発性キャッシュ部１２２から揮発性キャッシュ部１２９へデータをコピーするとき（例えば、図４のステップＳ２２、Ｓ２６にてデータを記憶する場合）に、設定する。そして、この記憶領域を揮発性メモリーで構成することにより、設定されたフラグは、プロセッサ１０の電源をオフにするときにリセットすることができる。
【００４０】
また、キャッシュ１２ａはコピー制御部１２８を有する。コピー制御部１２８は、揮発性キャッシュ部１２９の記憶領域から、各ラインに記憶されたデータが不揮発性キャッシュ部１２２からコピーされたデータであるかどうかを示すフラグを受け取り、パワーゲーティング時に不揮発性キャッシュ部１２２のメモリーのラインごとに揮発性キャッシュ部１２９のメモリーのデータをコピーするか否かを制御する。
【００４１】
図６は、キャッシュ１２ａの第２の動作モード時の動作を示すフローチャートである。第１の動作モードまたは第３の動作モードで動作中に（Ｓ５０）、プロセッサ１０の稼働状況に基づいてプロセッサエレメント１１がプロセッサ１０の電源を一時的にオフにしてパワーゲーティングを行うと判断した場合（Ｓ５１のＹｅｓ）、アドレスデコーダ１２３が、揮発性キャッシュ部１２９と不揮発性キャッシュ部１２２のメモリーのアドレスラインの１つを指定する（Ｓ５２）。すると、コピー制御部１２８が揮発性キャッシュ部１２９の記憶領域を確認し、揮発性キャッシュ部１２９のメモリーのアドレスデコーダ１２３に指定されたラインに記憶されたデータが不揮発性キャッシュ部１２２からコピーされたデータか否かを判断する（Ｓ５３）。
【００４２】
揮発性キャッシュ部１２９のメモリーに記憶されているデータが不揮発性キャッシュ部１２２からコピーされたデータならば（Ｓ５３のＹｅｓ）、揮発性キャッシュ部１２９のメモリーの当該ラインに記憶されたデータと不揮発性キャッシュ部１２２のメモリーの当該ラインに記憶されたデータとは同じデータである。そのため、当該ラインのデータについては、揮発性キャッシュ部のメモリーから不揮発性キャッシュ部のメモリーへデータをコピーする必要が無い。
【００４３】
一方、揮発性キャッシュ部１２９のメモリーに記憶されているデータが、例えばメインメモリー２０からコピーされたデータの場合（例えば、図３のステップＳ１７、Ｓ１８にて記憶されたデータの場合）には、不揮発性キャッシュ部１２２のメモリーにはそのデータが記憶されていない。そこで、揮発性キャッシュ部１２９のメモリーの当該ラインに記憶されたデータを不揮発性キャッシュ部のメモリーの同じラインにコピーする（Ｓ５４）。
【００４４】
ステップＳ５２〜Ｓ５４の処理を繰り返し、アドレスデコーダ１２３が揮発性キャッシュ部１２９、不揮発性キャッシュ部１２２のメモリーの全てのラインを指定し終えると（Ｓ５５のＹｅｓ）、キャッシュ１２ａの電源を落とし（Ｓ５６）、第２のモードを終了する。
【００４５】
この変形例によれば、揮発性キャッシュ部１２９と不揮発性キャッシュ部１２２のメモリーのラインに格納されているデータが同じ場合には、揮発性キャッシュ部１２９から不揮発性キャッシュ部１２２へそのラインのデータをコピーしないため、早くキャッシュ１２の電源を落とすことができる。
【００４６】
なお、キャッシュ１２がＮウェイセットアソシアティブ方式にてマッピングされる場合、揮発性キャッシュ部１２９と不揮発性キャッシュ部１２２とで、同じデータは同じライン上の同じウェイ内にのみ記憶される。この場合、退避領域１２４は、揮発性キャッシュ部１２９の１ウェイ分のデータを記憶する。また、揮発性キャッシュ部１２９のメモリーの１ラインにつき、ウェイ数分（Ｎ個）のフラグを記憶する。このようにＮ個のフラグを持つことで、揮発性キャッシュ部１２９のメモリーのラインに記憶されたＮ個のデータのうちで、不揮発性キャッシュ部１２２のメモリーからコピーされたデータだけを特定できる。そして、フラグにて不揮発性キャッシュ部１２２からコピーしたと確認されるデータ（例えば、これをデータＡとする）は、揮発性キャッシュ部１２９から不揮発性キャッシュ部１２２へコピーせず、不揮発性キャッシュ部１２２からコピーしたのではないデータは、不揮発性キャッシュ部１２２のデータＡが格納されているライン以外のラインに記憶すれば良い。
【００４７】
本発明の実施形態は、上記実施形態とその変形例に限定されることはなく、本発明の要旨を逸脱しない範囲において、適宜変更しても良い。
【符号の説明】
【００４８】
１０…プロセッサ、１１…プロセッサエレメント、１２，１２ａ…キャッシュ、２０…メインメモリー、３０…ハードディスク、４０…入出力装置、５０…不揮発性メモリー、１１１…コア、１２１，１２９…揮発性キャッシュ部、１２２…不揮発性キャッシュ部、１２３…アドレスデコーダ、１２４…退避領域、１２５，１２６…マルチプレクサ、１２７…制御部、１２８…コピー制御部
【図１】
2012190359.tif 000003
【図２】
2012190359.tif 000004
【図３】
2012190359.tif 000005
【図４】
2012190359.tif 000006
【図５】
2012190359.tif 000007
【図６】
2012190359.tif 000008