(58)【調査した分野】(Int.Cl.,DB名)
前記記憶データのうち、前記第一のステップにおいて前記揮発性キャッシュメモリに書きこまれたデータの前記不揮発性キャッシュメモリでのステータスが更新される更新ステップを含む、
請求項1または2に記載の方法。
【発明を実施するための形態】
【0015】
以下では、具体的な実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0016】
以下に説明される複数の実施形態は、独立に実施されることもできるし、適宜組み合わせて実施されることもできる。これら複数の実施形態は、互いに異なる新規な特徴を有している。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し、互いに異なる効果を奏することに寄与する。
【0017】
<第1の実施形態>
図1は、第1の実施形態におけるキャッシュシステム100の構成の一例を示す。
【0018】
キャッシュシステム100は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とデータ監視部12とメインメモリ13と制御部14とを少なくとも有する。
【0019】
揮発性キャッシュメモリ10には、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部が、キャッシュシステム100が第一の条件を満たすまで書きこまれる。なお、揮発性キャッシュメモリ10には、例えば、SRAM(Static Random Access Memory)などを用いても良い。
【0020】
不揮発性キャッシュメモリ11は、種々のデータを記憶する。なお、不揮発性キャッシュメモリ11には、磁気抵抗メモリ(MRAM:Magnetoresistive Random Access Memory)などを用いても良い。不揮発性キャッシュメモリとしてMRAMを用いた場合、他の素材を用いた場合と比較して、書き換え耐性が高く、書き込みスピードも速い。
【0021】
データ監視部12は、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていないデータの少なくとも一部を、メインメモリ13に書き込む。
【0022】
メインメモリ13には、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていないデータの少なくとも一部が、データ監視部12により書きこまれる。また、メインメモリ13に記憶されているデータは、揮発性キャッシュメモリ10に書きこまれる。
【0023】
制御部14は、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を、キャッシュシステム100が第一の条件を満たすまで、揮発性キャッシュメモリ10に書きこむ。
【0024】
なお、第一の条件は、例えば、揮発性キャッシュメモリ10の空き容量に関する条件である。例えば、第一の条件は、揮発性キャッシュメモリ10の空き容量が閾値以下になることであっても良い。あるいは、第一の条件は、揮発性キャッシュメモリ10の空き容量がゼロになることであっても良い。
【0025】
なお、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とを組み合わせた構造を用いることで、一時的にプロセッサの電源をオフにする場合に、揮発性キャッシュメモリ10に記憶されているデータを不揮発性キャッシュメモリ11に退避させることができる。これにより、データが消失することを防ぐことができる。また、プロセッサの電源を再度オンにした直後には、不揮発性キャッシュメモリ11に記憶されている記憶データを使用して、キャッシュシステム100を動作させることができる。
【0026】
次に、本実施形態のキャッシュシステム100の動作について、
図2を用いて説明する。
【0027】
はじめに、揮発性キャッシュメモリの電源および不揮発性キャッシュメモリの電源をオンにする(ステップS10)。このとき、揮発性キャッシュメモリは空である。不揮発性キャッシュメモリには、不揮発性キャッシュメモリの電源がオフにされる前に書きこまれたデータが記憶されている。
【0028】
制御部14は、揮発性キャッシュメモリ10に、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を、キャッシュシステム100が第一の条件を満たすまで書きこむ(ステップS11)。なお、制御部14は、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を揮発性キャッシュメモリ10に書きこむ動作を中止する。
【0029】
キャッシュシステム100が第一の条件を満たしたとき、データ監視部12は、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていない記憶データの内の少なくとも一部を、メインメモリ13に書き込む(ステップS12)。
【0030】
以上のようにして、本実施形態におけるキャッシュシステム100は、不揮発性キャッシュメモリ11に記憶された記憶データの内、揮発性キャッシュメモリ10に書きこまれていないデータを、不揮発性キャッシュメモリ11からメインメモリ13に書きこむ。これにより、キャッシュシステム100は、不揮発性キャッシュメモリ11の電源がオフにされている間も、不揮発性キャッシュメモリに記憶されていた記憶データの内、メインメモリ13に書きこまれたデータを、揮発性キャッシュメモリ10に書きこむことができる。そのため、不揮発性キャッシュメモリに記録されていたデータにアクセスできなくなることを防ぐことができる。
【0031】
ところで、不揮発性キャッシュメモリ内の全データを揮発性キャッシュメモリに書き戻すために、パワーゲーティング状態からの復帰時に、不揮発性キャッシュメモリの全データを揮発性キャッシュメモリに書きこむという方法も考えられる。しかし、その場合は書きこみ処理のために復帰が遅延するというデメリットがある。本実施形態におけるキャッシュシステム100では、パワーゲーティング状態からの復帰時に、不揮発性キャッシュメモリの全データを揮発性キャッシュメモリに書きこむということを行わない。そのため、書きこみ処理による復帰遅延を抑制することができるという効果もある。
【0032】
<第2の実施形態>
次に、本発明の第2の実施形態におけるキャッシュシステムについて説明する。
【0033】
本実施形態では、キャッシュシステム、特にデータ監視部の構成および動作について、第1の実施形態よりも詳細に説明する。
【0034】
図3は、本実施形態におけるキャッシュシステム110の構成の一例を示す。
【0035】
揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、メインメモリ13および制御部14の構成は、第1の実施形態と同様である。
【0036】
データ監視部15は、第1の実施形態で述べた動作に加え、不揮発性キャッシュメモリ11の記憶データのステータスの更新、および、ダーティデータの検出を行う。
【0037】
まず、データ監視部15による記憶データのステータス更新について説明する。ここで、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10に書きこまれたデータのステータスはクリーンであり、そのようなデータをクリーンデータと呼ぶ。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10に書きこまれていないデータのステータスはダーティであり、そのようなデータをダーティデータと呼ぶ。データ監視部15は、揮発性キャッシュメモリ10の電源および不揮発性キャッシュメモリ11の電源がオンになったとき、データ監視部15は、不揮発性キャッシュメモリ11の全ての記憶データのステータスを、ダーティとする。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10にダーティデータが送られるとき、データ監視部15は、当該データのステータスをダーティからクリーンに変更する。
【0038】
次に、データ監視部15によるダーティデータの検出について説明する。データ監視部15は、キャッシュシステム110が第一の条件を満たしたとき、不揮発性キャッシュメモリ11の記憶データの中から、揮発性キャッシュメモリ10に書きこまれていないデータ、すなわちダーティデータを検出する。検出されたダーティデータは、メインメモリ13に記録される。なお、第一の条件とは、第1の実施形態で述べた条件と同じである。
【0039】
次に、本実施形態のキャッシュシステム110の動作について、
図4を用いて説明する。
【0040】
揮発性キャッシュメモリ10の電源および不揮発性キャッシュメモリ11の電源がオンになったとき、データ監視部15は、不揮発性キャッシュメモリ11の全ての記憶データのステータスを、ダーティに更新する(ステップS20)。
【0041】
不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部が、揮発性キャッシュメモリ10に書きこまれる。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10にダーティデータが書きこまれるとき、データ監視部15は、当該データのステータスをダーティからクリーンに変更する(ステップS21)。
【0042】
キャッシュシステム110が第一の条件を満たしたか否かを判断する(ステップS22)。キャッシュシステムが第一の条件を満たしている場合(ステップS22:Yes)、ステップS23に進む。キャッシュシステムが第一の条件を満たしていない場合(ステップS22:No)、ステップS21に戻る。
【0043】
データ監視部15は、不揮発性キャッシュメモリ11が記憶する記憶データの中にダーティデータがあるか否かを検出する(ステップS23)。不揮発性キャッシュメモリ11の記憶データの中にダーティデータが無い場合(ステップS23:No)、ステップS24に進み、不揮発性キャッシュメモリ11の電源をオフにする。不揮発性キャッシュメモリ11の記憶データの中にダーティデータがある場合(ステップS23:Yes)、ステップS25に進む。
【0044】
データ監視部15は、ダーティデータの少なくとも一部を、メインメモリ13に書き込む(ステップS25)。
【0045】
そして、不揮発性キャッシュメモリ11の電源をオフにする(ステップS26)。
【0046】
以上のようにして、本実施形態におけるキャッシュシステム110は、不揮発性キャッシュメモリ11の記憶データが、揮発性キャッシュメモリ10に書きこまれたデータであるか否かを、ステータスにより管理する。そのため、本実施形態のキャッシュシステム110は、キャッシュシステム110が第一の条件を満たしたときに、不揮発性キャッシュメモリ11の記憶データの中から、揮発性キャッシュメモリ10に書きこまれていないデータを確実に発見することができる、という効果がある。
【0047】
ところで、一般に、キャッシュシステムは、アドレスデコーダを有する。上述の実施形態では、キャッシュシステムは、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで、アドレスデコーダを共有してもよい。アドレスデコーダを共有することで、装置面積を削減することができる。
【0048】
以下では、上述の実施形態においてアドレスデコーダを共有することで生じる課題、および、その解決策を説明する。
【0049】
アドレスデコーダは、プロセッサから出力されるアドレスデータに応じて、揮発性キャッシュメモリと不揮発性キャッシュメモリのラインを指定する。
【0050】
アドレスデコーダを共有することにより、不揮発性キャッシュメモリから揮発性キャッシュメモリへデータをコピーする場合には、同じライン上へコピーされる。そのため、書き込み先に既に他のデータが存在している場合、既に存在していた他のデータが上書きされてしまう。上書きされたデータが最近使用されたものであるとき、このデータが再度要求される確率は高い。そのため、データが上書きされることによって、キャッシュミスが起きる確率が上がる。
【0051】
上述の課題を解決するために、上述の実施形態におけるキャッシュシステムを以下のように改変しても良い。
【0052】
図5は、キャッシュシステム120の構成の一例を示す。
【0053】
キャッシュシステム120は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、アドレスデコーダ16、退避領域17、マルチプレクサ18、19、制御部20、データ監視部15、および、メインメモリ13を少なくとも有する。
【0054】
なお、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、メインメモリ13およびデータ監視部15の構成は、第2の実施形態と同様である。また、揮発性キャッシュメモリ10と、揮発性キャッシュメモリ11の容量は、同じとする。
【0055】
アドレスデコーダ16は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで共有されている。
【0056】
退避領域17は、揮発性キャッシュメモリ10に接続されている。退避領域17は、一時的にデータを記憶するものであって、揮発性キャッシュメモリ10の1ライン分のデータを保存することができる。退避領域17は、フリップフロップ(Flip−Flop:FF)やSRAMなどのメモリから構成されても良い。
【0057】
マルチプレクサ18は、制御部20の制御に応じて、揮発性キャッシュメモリ10から出力されるデータと不揮発性キャッシュメモリ11から出力されるデータのいずれか一方をプロセッサへ出力する。
【0058】
マルチプレクサ19は、制御部20の制御に応じて、プロセッサから要求されたデータ、不揮発性キャッシュメモリ11に記憶された記憶データ、退避領域17に記憶されたデータのいずれかを、揮発性キャッシュメモリ10へ入力する。
【0059】
制御部20は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、および、アドレスデコーダ16の制御を行う。また、制御部20は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11から取得したアドレスヒットの状態とプロセッサから出力された要求の種類に応じて、マルチプレクサ18、19の出力を制御する。
【0060】
次に、キャッシュシステム120の動作について説明する。
【0061】
本キャッシュシステムには、3通りの動作モードがある。
【0062】
第1の動作モードは、揮発性キャッシュメモリ10のみをキャッシュメモリとして用いる動作モードである。つまり、第1の動作モードのとき、キャッシュシステム120は、プロセッサの要求に基づいて、揮発性キャッシュメモリ10からデータを出力する。また、第1の動作モードのとき、キャッシュシステム120は、プロセッサの要求に基づいて、メインメモリ13に含まれるデータやプロセッサのL1キャッシュに含まれるデータを揮発性キャッシュメモリ10へ書きこむ。
【0063】
第2の動作モードは、プロセッサの電源をオフにしてパワーゲーティングを行うまでの動作モードである。アドレスデコーダ16が揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11のメモリの1ラインずつを指定し、揮発性キャッシュメモリ10のデータが1ラインずつ不揮発性キャッシュメモリ11の同じラインに書きこまれる。そして、この書きこみ作業が終了すると同時に、プロセッサの電源がオフになる。
【0064】
第3の動作モードは、プロセッサがパワーゲーティングの状態から復帰した直後から第1の動作モードへ移行するまでの間の動作モードである。第2の動作モードにて、プロセッサの電源がオフになるため、揮発性キャッシュメモリ10に記憶されたデータは消える。その後、プロセッサがパワーゲーティングの状態から復帰すると、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11の両方の電源がオンになる。このとき、不揮発性キャッシュメモリ11にはパワーゲーティング前に揮発性キャッシュメモリ10からコピーされたデータが格納されているが、揮発性キャッシュメモリ10にはデータが格納されていない。そこで、パワーゲーティングから復帰した直後は、プロセッサが処理を行うために必要なデータを不揮発性キャッシュメモリ11やメインメモリからデータを読み込む。そして、この読み込んだデータを揮発性キャッシュメモリ10へ格納する。
【0065】
図6〜
図8は、第3の動作モード時のキャッシュシステムの動作を示すフローチャートである。
【0066】
プロセッサがパワーゲーティングの状態から復帰し、キャッシュシステム120がプロセッサから要求を取得すると(ステップS30:Yes)、制御部20は、指定されたアドレスのデータが揮発性キャッシュメモリ10に存在するか否かを確認する(ステップS31)。
【0067】
指定されたアドレスのデータが揮発性キャッシュメモリ10に存在し(ステップS31:Yes)、プロセッサからの要求がリード要求であるならば(ステップS32:Yes)、揮発性キャッシュメモリ10は当該データをプロセッサに書きこむ(ステップS33)。また、プロセッサからの要求がリード要求でないならば(ステップS32:No)、制御部20は、揮発性キャッシュメモリ10の指定されたアドレスに当該データを書き込む(ステップS34)。
【0068】
また、制御部20はプロセッサからの要求に基づいて、不揮発性キャッシュメモリ11に、指定されたアドレスのデータが存在するか否かも確認する(ステップS35)。制御部20は、この確認をステップS31の確認と並行して行っても良い。指定されたアドレスのデータが揮発性キャッシュメモリ10にも不揮発性キャッシュメモリ11にも存在せず(ステップS35:No)、プロセッサからの要求がリード要求であったならば(ステップS36:Yes)、制御部20は上位の記憶媒体(例えばメインメモリ)にリード要求を出し、取得したデータを揮発性キャッシュメモリ10に書き込むとともに、そのデータをプロセッサに送る(ステップS37)。指定されたアドレスのデータが揮発性キャッシュメモリ10にも不揮発性キャッシュメモリ11にも存在せず(ステップS35:No)、プロセッサからの要求がリード要求でないならば(ステップS36:No)、制御部20は、揮発性キャッシュメモリ10にデータを書きこむ(ステップS38)。なお、データを書きこむ際、揮発性キャッシュメモリ10の容量に空きが無ければ、制御部20は、いずれかのラインのデータを追い出して空きを作り、そのラインに当該データを書きこんでも良い。どのラインのデータを追い出すかは、例えばLRU(Least Recently Used)等の方法を用いても良い。
【0069】
プロセッサから指定されたアドレスのデータが揮発性キャッシュメモリ10に存在せず、不揮発性キャッシュメモリ11に存在する場合(ステップS35:Yes)、アドレスデコーダ16は、不揮発性キャッシュメモリ11の当該データが格納されているラインを指定する。アドレスデコーダ16は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで共有されているため、アドレスデコーダ16は、揮発性キャッシュメモリ10についても同じラインを指定する。そして、制御部20は、揮発性キャッシュメモリ10の当該ライン上に、既に他のデータが格納されているか否かを確認する(ステップS39)。
【0070】
アドレスデコーダ16によって指定された揮発性キャッシュメモリ10のライン上にデータが格納されておらず(ステップS39:No)、プロセッサから出された要求がリード要求であれば(ステップS52:Yes)、不揮発性キャッシュメモリ11は、不揮発性キャッシュメモリ11のライン上のデータをプロセッサへ転送する(ステップS53)。このとき、転送するデータのステータスがダーティの場合(ステップS54:No)、データ監視部15は、当該データのステータスをクリーンに変更する(ステップS56)。そして、不揮発性キャッシュメモリ11は、アドレスデコーダ16が指定する不揮発性キャッシュメモリ11のラインに記憶されたデータを、揮発性キャッシュメモリ10の同じラインに書きこむ(ステップS57)。書きこまれるデータのステータスがクリーンの場合(ステップS54:Yes)は、当該データのステータスは変更されずに、ステップS57の処理が行われる。プロセッサからの要求がリード要求でないならば(ステップS52:No)、プロセッサへの転送は行われず、制御部20は、アドレスデコーダ16が指定するライン上にプロセッサに指示されたデータを書きこむ(ステップS55)。
【0071】
ここで、揮発性キャッシュメモリ10において、アドレスデコーダ16によって指定されたライン上に既にデータが格納されている場合(ステップS39:Yes)、不揮発性キャッシュメモリ11の指定ライン上のデータを揮発性キャッシュメモリ10にコピーすると、当該ラインに格納されているデータが上書きされてしまう。そのため、既存のデータを一時的に退避させる必要がある。
【0072】
そこでまず、制御部20は、アドレスデコーダ16によって指定された揮発性キャッシュメモリ10のライン上に記憶されたデータを退避領域17へ転送する(ステップS40)。
【0073】
そして、プロセッサからの要求がリード要求であれば(ステップS41:Yes)、不揮発性キャッシュメモリ11は、アドレスデコーダ16によって指定されている不揮発性キャッシュメモリ11のデータをプロセッサへ転送する(ステップS42)。このとき、転送されるデータのステータスがダーティの場合(ステップS43:No)、データ監視部15は、当該データのステータスをクリーンに変更する(ステップS45)。その後、不揮発性キャッシュメモリ11は、不揮発性キャッシュメモリ11の指定ライン上のデータを揮発性キャッシュメモリ10の同じライン上に書きこむ(ステップS46)。プロセッサへ転送されるデータのステータスがクリーンの場合(ステップS43:Yes)は、当該データのステータスは変更されずに、ステップS46の処理が行われる。プロセッサからの要求がリード要求でないならば(ステップS41:No)、制御部20は、アドレスデコーダ16によって指定された揮発性キャッシュメモリ10のライン上にプロセッサから指示されたデータを書きこむ(ステップS44)。
【0074】
その後、制御部20は、アドレスデコーダ16によって指定されるラインを、揮発性キャッシュメモリ10の空き領域に変更させた上で、退避領域17に格納したデータを揮発性キャッシュメモリ10に書きこむ(ステップS47)。
【0075】
上述のステップS40〜S47によって、揮発性キャッシュメモリ10に格納されているデータが上書きされることを防ぎ、揮発性キャッシュメモリ10のヒット率低下を防ぐことができる。
【0076】
図6、
図7、
図8のステップS33、S34、S37、S38、S47、S55、S57終了後には、制御部20は、揮発性キャッシュメモリ10に空き領域が有るか否かを確認する(ステップS48)。そして、揮発性キャッシュメモリ10に空き領域が無い場合(ステップS48:No)、データ監視部15は、不揮発性キャッシュメモリ11のラインを1つずつ走査し、ステータスがダーティであるデータを検出する。データ監視部15は、検出したダーティデータをメインメモリ13に書きこむとともに、当該データのステータスをクリーンに変更する(ステップS49)。データ監視部15は、不揮発性キャッシュメモリ11にダーティデータが存在しなくなるまで、ステップS49の処理を行う(ステップS50:Yes)。
【0077】
以上のような実施形態をとることで、第1の実施形態および第2の実施形態で述べた効果を奏するとともに、アドレスデコーダ共通化により面積を削減することができる。
【0078】
なお、上述した各実施形態の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータ・プログラムが、情報処理装置が備えるCPU(Central Processing Unit)によって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【0079】
上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0080】
(付記1)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムであって、前記制御部は、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ動作を実行し、前記キャッシュシステムが第一の条件を満たしたとき、前記書きこみ動作を中止し、前記データ監視部は、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、キャッシュシステム。
【0081】
(付記2)前記第一の条件は、前記揮発性キャッシュメモリの空き容量に関する条件である、付記1に記載のキャッシュシステム。
【0082】
(付記3)前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることである、付記1または2に記載のキャッシュシステム。
【0083】
(付記4)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書き込まれていないデータがあるか否かを検出する、付記1乃至3のいずれかに記載のキャッシュシステム。
【0084】
(付記5)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれたデータのステータスを更新する、付記1乃至4のいずれかに記載のキャッシュシステム。
【0085】
(付記6)前記検出は、前記キャッシュシステムが前記第一の条件を満たしたときに行われる、付記1乃至5のいずれかに記載のキャッシュシステム。
【0086】
(付記7)前記不揮発性キャッシュメモリの容量と前記揮発性キャッシュメモリの容量とは同じである、付記1乃至6のいずれかに記載のキャッシュシステム。
【0087】
(付記8)前記キャッシュシステムは、ライトバック方式を採用する、付記1乃至7のいずれかに記載のキャッシュシステム。
【0088】
(付記9)前記揮発性キャッシュメモリと前記不揮発性キャッシュメモリとに対して同じラインを指定するアドレスデコーダと、前記揮発性キャッシュメモリからデータが入力される退避領域とをさらに有し、前記退避領域は、前記入力データを前記揮発性キャッシュメモリに出力する、付記1乃至8のいずれかに記載のキャッシュシステム。
【0089】
(付記10)前記揮発性キャッシュメモリの所定のライン上に他のデータが記録されていた場合、前記退避領域は、前記他のデータが前記揮発性キャッシュメモリから出力され、その後、前記他のデータを前記揮発性キャッシュメモリに出力する、付記1乃至9のいずれかに記載のキャッシュシステム。
【0090】
(付記11)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部を有するキャッシュシステムにおけるデータ監視部であって、前記キャッシュシステムが第一の条件を満たしたとき、前記不揮発性キャッシュメモリに記憶された記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、データ監視部。
【0091】
(付記12)前記第一の条件は、前記揮発性キャッシュメモリの空き容量に関する条件である、付記11に記載のデータ監視部。
【0092】
(付記13)前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることである、付記11または12に記載のデータ監視部。
【0093】
(付記14)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータがあるか否かを検出する、付記11乃至13のいずれかに記載のデータ監視部。
【0094】
(付記15)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれたデータのステータスを更新する、付記11乃至14のいずれかに記載のデータ監視部。
【0095】
(付記16)前記検出は、前記キャッシュシステムが前記第一の条件を満たしたときに行われる、付記11乃至15のいずれかに記載のデータ監視部。
【0096】
(付記17)前記不揮発性キャッシュメモリの容量と前記揮発性キャッシュメモリの容量とは同じである、付記11乃至16のいずれかに記載のデータ監視部。
【0097】
(付記18)前記キャッシュシステムは、ライトバック方式を採用する、付記11乃至17のいずれかに記載のデータ監視部。
【0098】
(付記19)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ第一のステップと、前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二のステップと、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三のステップと、を含む、方法。
【0099】
(付記20)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムにおけるデータ監視部の制御方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部が前記揮発性キャッシュメモリに書きこまれるキャッシュシステムにおいて、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむステップを有する、方法。
【0100】
(付記21)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、コンピュータ上で実行された際に、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ第一の工程と、前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二の工程と、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三の工程と、を有する制御方法を実行することが可能なプログラムコードを有するプログラム。
【0101】
(付記22)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムにおけるデータ監視部の制御方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部が前記揮発性キャッシュメモリに書きこまれるキャッシュシステムにおいて、コンピュータ上で実行された際に、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ工程を有する制御方法を実行することが可能なプログラムコードを有するプログラム。
【0102】
(付記23)コンピュータに読み取り可能な情報記憶媒体であって、付記21に記載のプログラムを記憶する記憶媒体。
【0103】
(付記24)コンピュータに読み取り可能な情報記憶媒体であって、付記22に記載のプログラムを記憶する記憶媒体。