JP6784033B2 - 方法、キャッシュシステム及びデータ監視部 - Google Patents

方法、キャッシュシステム及びデータ監視部 Download PDF

Info

Publication number
JP6784033B2
JP6784033B2 JP2016032786A JP2016032786A JP6784033B2 JP 6784033 B2 JP6784033 B2 JP 6784033B2 JP 2016032786 A JP2016032786 A JP 2016032786A JP 2016032786 A JP2016032786 A JP 2016032786A JP 6784033 B2 JP6784033 B2 JP 6784033B2
Authority
JP
Japan
Prior art keywords
cache memory
volatile cache
data
volatile
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016032786A
Other languages
English (en)
Other versions
JP2017151664A (ja
Inventor
陽司 田山
陽司 田山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016032786A priority Critical patent/JP6784033B2/ja
Publication of JP2017151664A publication Critical patent/JP2017151664A/ja
Application granted granted Critical
Publication of JP6784033B2 publication Critical patent/JP6784033B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、プロセッサ、キャッシュシステム、制御方法及びプログラムに関する。
近年、回路システム全体の低消費電力化が課題となっている。低消費電力化を実現するための方法の1つに、プロセッサが使用されていない時に動作周波数を小さくする方法がある。しかし、この方法では、プロセッサがスタンバイ状態であっても電源そのものをオフにすることはできない。これに対して、プロセッサに含まれるキャッシュメモリを不揮発性メモリのみで構成し、プロセッサがスタンバイ状態の時に電源をオフにすることも考えられる。しかし、不揮発性メモリは揮発性メモリに比べて書き込み速度が遅いため、プロセッサ性能の悪化が生じる。
特許文献1では、揮発性キャッシュメモリと不揮発性キャッシュメモリとでキャッシュシステムを構成し、通常は揮発性キャッシュメモリのみをキャッシュメモリとして使用し、プロセッサの電源をオフにする(言い換えると、パワーゲーティングを行う)際は、揮発性キャッシュメモリのデータを不揮発性キャッシュメモリに書き込んだ後に、プロセッサの電源をオフにする技術が開示されている。
特開2012−190359号公報
ここで、キャッシュシステムへのアクセス方式は、ライトスルー方式とライトバック方式の2通りが知られている。
ライトスルー方式は、書き込み時にキャッシュメモリとメインメモリの両方のデータが更新される手法である。この方式は、常に最新のデータがメインメモリに書き込まれるので、キャッシュメモリとメインメモリとの同期を考慮する必要がない。しかし、キャッシュメモリとメインメモリとの間のバスが混雑するので、メインメモリへの書き込み待ち時間が発生するという欠点がある。
一方、ライトバック方式は、書き込み時にキャッシュメモリのみが更新され、対象キャッシュラインがリプレイスされるときにメインメモリが更新される手法である。この方式では、高速にデータを書き込むことが可能となるが、一定期間キャッシュメモリとメインメモリとが非同期となる。
特許文献1に記載の手法では、ライトスルー方式を前提としており、ライトバック方式を採用する場合にはキャッシュシステム内の一部のデータにアクセスできなくなる可能性がある。特許文献1に記載の手法では、パワーゲーティング状態から復帰後、揮発性キャッシュメモリの空き容量が無くなると、不揮発性キャッシュメモリの電源がオフになる。この際、不揮発性キャッシュメモリ内のデータの内、プロセッサからのアクセス要求が無かったデータは、揮発性キャッシュメモリに書きこまれないままになる。つまり、不揮発性キャッシュメモリの電源がオフになっている間は、プロセッサからのアクセス要求が無かったデータを、揮発性キャッシュメモリに書きこむことができない。
そこで、本明細書に開示される実施形態が達成しようとする目的の一つは、不揮発性キャッシュメモリに記録されていたデータにアクセスできなくなることを防ぐことができるキャッシュシステムを提供することである。
本実施形態の方法は、不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記キャッシュシステムが第一の条件を満たすまで、前記揮発性キャッシュメモリに書きこむ第一のステップと、前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二のステップと、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三のステップと、有する。
本実施形態のキャッシュシステムは、不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムであって、前記制御部は、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ動作を実行し、前記キャッシュシステムが第一の条件を満たしたとき、前記書きこみ動作を中止し、前記データ監視部は、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書き込む。
本実施形態のデータ監視部は、不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムにおけるデータ監視部であって、前記制御部が前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を前記揮発性キャッシュメモリに書きこむキャッシュシステムにおいて、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書き込む、データ監視部。
上述の実施形態によれば、不揮発性キャッシュメモリに記録されていたデータにアクセスできなくなることを防ぐことができるキャッシュシステムを提供することができる。
第1の実施形態に係るキャッシュシステムのブロック図である。 第1の実施形態に係るキャッシュシステムの動作のフローチャートである。 第2の実施形態に係るキャッシュシステムのブロック図である。 第2の実施形態に係るキャッシュシステムの動作のフローチャートである。 第2の実施形態に係るキャッシュシステムのブロック図である。 第2の実施形態に係るキャッシュシステムの動作のフローチャートである。 第2の実施形態に係るキャッシュシステムの動作のフローチャートである。 第2の実施形態に係るキャッシュシステムの動作のフローチャートである。
以下では、具体的な実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
以下に説明される複数の実施形態は、独立に実施されることもできるし、適宜組み合わせて実施されることもできる。これら複数の実施形態は、互いに異なる新規な特徴を有している。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し、互いに異なる効果を奏することに寄与する。
<第1の実施形態>
図1は、第1の実施形態におけるキャッシュシステム100の構成の一例を示す。
キャッシュシステム100は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とデータ監視部12とメインメモリ13と制御部14とを少なくとも有する。
揮発性キャッシュメモリ10には、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部が、キャッシュシステム100が第一の条件を満たすまで書きこまれる。なお、揮発性キャッシュメモリ10には、例えば、SRAM(Static Random Access Memory)などを用いても良い。
不揮発性キャッシュメモリ11は、種々のデータを記憶する。なお、不揮発性キャッシュメモリ11には、磁気抵抗メモリ(MRAM:Magnetoresistive Random Access Memory)などを用いても良い。不揮発性キャッシュメモリとしてMRAMを用いた場合、他の素材を用いた場合と比較して、書き換え耐性が高く、書き込みスピードも速い。
データ監視部12は、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていないデータの少なくとも一部を、メインメモリ13に書き込む。
メインメモリ13には、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていないデータの少なくとも一部が、データ監視部12により書きこまれる。また、メインメモリ13に記憶されているデータは、揮発性キャッシュメモリ10に書きこまれる。
制御部14は、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を、キャッシュシステム100が第一の条件を満たすまで、揮発性キャッシュメモリ10に書きこむ。
なお、第一の条件は、例えば、揮発性キャッシュメモリ10の空き容量に関する条件である。例えば、第一の条件は、揮発性キャッシュメモリ10の空き容量が閾値以下になることであっても良い。あるいは、第一の条件は、揮発性キャッシュメモリ10の空き容量がゼロになることであっても良い。
なお、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とを組み合わせた構造を用いることで、一時的にプロセッサの電源をオフにする場合に、揮発性キャッシュメモリ10に記憶されているデータを不揮発性キャッシュメモリ11に退避させることができる。これにより、データが消失することを防ぐことができる。また、プロセッサの電源を再度オンにした直後には、不揮発性キャッシュメモリ11に記憶されている記憶データを使用して、キャッシュシステム100を動作させることができる。
次に、本実施形態のキャッシュシステム100の動作について、図2を用いて説明する。
はじめに、揮発性キャッシュメモリの電源および不揮発性キャッシュメモリの電源をオンにする(ステップS10)。このとき、揮発性キャッシュメモリは空である。不揮発性キャッシュメモリには、不揮発性キャッシュメモリの電源がオフにされる前に書きこまれたデータが記憶されている。
制御部14は、揮発性キャッシュメモリ10に、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を、キャッシュシステム100が第一の条件を満たすまで書きこむ(ステップS11)。なお、制御部14は、キャッシュシステム100が第一の条件を満たしたとき、不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部を揮発性キャッシュメモリ10に書きこむ動作を中止する。
キャッシュシステム100が第一の条件を満たしたとき、データ監視部12は、不揮発性キャッシュメモリ11に記憶された記憶データのうち、揮発性キャッシュメモリ10に書きこまれていない記憶データの内の少なくとも一部を、メインメモリ13に書き込む(ステップS12)。
以上のようにして、本実施形態におけるキャッシュシステム100は、不揮発性キャッシュメモリ11に記憶された記憶データの内、揮発性キャッシュメモリ10に書きこまれていないデータを、不揮発性キャッシュメモリ11からメインメモリ13に書きこむ。これにより、キャッシュシステム100は、不揮発性キャッシュメモリ11の電源がオフにされている間も、不揮発性キャッシュメモリに記憶されていた記憶データの内、メインメモリ13に書きこまれたデータを、揮発性キャッシュメモリ10に書きこむことができる。そのため、不揮発性キャッシュメモリに記録されていたデータにアクセスできなくなることを防ぐことができる。
ところで、不揮発性キャッシュメモリ内の全データを揮発性キャッシュメモリに書き戻すために、パワーゲーティング状態からの復帰時に、不揮発性キャッシュメモリの全データを揮発性キャッシュメモリに書きこむという方法も考えられる。しかし、その場合は書きこみ処理のために復帰が遅延するというデメリットがある。本実施形態におけるキャッシュシステム100では、パワーゲーティング状態からの復帰時に、不揮発性キャッシュメモリの全データを揮発性キャッシュメモリに書きこむということを行わない。そのため、書きこみ処理による復帰遅延を抑制することができるという効果もある。
<第2の実施形態>
次に、本発明の第2の実施形態におけるキャッシュシステムについて説明する。
本実施形態では、キャッシュシステム、特にデータ監視部の構成および動作について、第1の実施形態よりも詳細に説明する。
図3は、本実施形態におけるキャッシュシステム110の構成の一例を示す。
揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、メインメモリ13および制御部14の構成は、第1の実施形態と同様である。
データ監視部15は、第1の実施形態で述べた動作に加え、不揮発性キャッシュメモリ11の記憶データのステータスの更新、および、ダーティデータの検出を行う。
まず、データ監視部15による記憶データのステータス更新について説明する。ここで、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10に書きこまれたデータのステータスはクリーンであり、そのようなデータをクリーンデータと呼ぶ。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10に書きこまれていないデータのステータスはダーティであり、そのようなデータをダーティデータと呼ぶ。データ監視部15は、揮発性キャッシュメモリ10の電源および不揮発性キャッシュメモリ11の電源がオンになったとき、データ監視部15は、不揮発性キャッシュメモリ11の全ての記憶データのステータスを、ダーティとする。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10にダーティデータが送られるとき、データ監視部15は、当該データのステータスをダーティからクリーンに変更する。
次に、データ監視部15によるダーティデータの検出について説明する。データ監視部15は、キャッシュシステム110が第一の条件を満たしたとき、不揮発性キャッシュメモリ11の記憶データの中から、揮発性キャッシュメモリ10に書きこまれていないデータ、すなわちダーティデータを検出する。検出されたダーティデータは、メインメモリ13に記録される。なお、第一の条件とは、第1の実施形態で述べた条件と同じである。
次に、本実施形態のキャッシュシステム110の動作について、図4を用いて説明する。
揮発性キャッシュメモリ10の電源および不揮発性キャッシュメモリ11の電源がオンになったとき、データ監視部15は、不揮発性キャッシュメモリ11の全ての記憶データのステータスを、ダーティに更新する(ステップS20)。
不揮発性キャッシュメモリ11に記憶された記憶データの少なくとも一部が、揮発性キャッシュメモリ10に書きこまれる。また、不揮発性キャッシュメモリ11から揮発性キャッシュメモリ10にダーティデータが書きこまれるとき、データ監視部15は、当該データのステータスをダーティからクリーンに変更する(ステップS21)。
キャッシュシステム110が第一の条件を満たしたか否かを判断する(ステップS22)。キャッシュシステムが第一の条件を満たしている場合(ステップS22:Yes)、ステップS23に進む。キャッシュシステムが第一の条件を満たしていない場合(ステップS22:No)、ステップS21に戻る。
データ監視部15は、不揮発性キャッシュメモリ11が記憶する記憶データの中にダーティデータがあるか否かを検出する(ステップS23)。不揮発性キャッシュメモリ11の記憶データの中にダーティデータが無い場合(ステップS23:No)、ステップS24に進み、不揮発性キャッシュメモリ11の電源をオフにする。不揮発性キャッシュメモリ11の記憶データの中にダーティデータがある場合(ステップS23:Yes)、ステップS25に進む。
データ監視部15は、ダーティデータの少なくとも一部を、メインメモリ13に書き込む(ステップS25)。
そして、不揮発性キャッシュメモリ11の電源をオフにする(ステップS26)。
以上のようにして、本実施形態におけるキャッシュシステム110は、不揮発性キャッシュメモリ11の記憶データが、揮発性キャッシュメモリ10に書きこまれたデータであるか否かを、ステータスにより管理する。そのため、本実施形態のキャッシュシステム110は、キャッシュシステム110が第一の条件を満たしたときに、不揮発性キャッシュメモリ11の記憶データの中から、揮発性キャッシュメモリ10に書きこまれていないデータを確実に発見することができる、という効果がある。
ところで、一般に、キャッシュシステムは、アドレスデコーダを有する。上述の実施形態では、キャッシュシステムは、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで、アドレスデコーダを共有してもよい。アドレスデコーダを共有することで、装置面積を削減することができる。
以下では、上述の実施形態においてアドレスデコーダを共有することで生じる課題、および、その解決策を説明する。
アドレスデコーダは、プロセッサから出力されるアドレスデータに応じて、揮発性キャッシュメモリと不揮発性キャッシュメモリのラインを指定する。
アドレスデコーダを共有することにより、不揮発性キャッシュメモリから揮発性キャッシュメモリへデータをコピーする場合には、同じライン上へコピーされる。そのため、書き込み先に既に他のデータが存在している場合、既に存在していた他のデータが上書きされてしまう。上書きされたデータが最近使用されたものであるとき、このデータが再度要求される確率は高い。そのため、データが上書きされることによって、キャッシュミスが起きる確率が上がる。
上述の課題を解決するために、上述の実施形態におけるキャッシュシステムを以下のように改変しても良い。
図5は、キャッシュシステム120の構成の一例を示す。
キャッシュシステム120は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、アドレスデコーダ16、退避領域17、マルチプレクサ18、19、制御部20、データ監視部15、および、メインメモリ13を少なくとも有する。
なお、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、メインメモリ13およびデータ監視部15の構成は、第2の実施形態と同様である。また、揮発性キャッシュメモリ10と、揮発性キャッシュメモリ11の容量は、同じとする。
アドレスデコーダ16は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで共有されている。
退避領域17は、揮発性キャッシュメモリ10に接続されている。退避領域17は、一時的にデータを記憶するものであって、揮発性キャッシュメモリ10の1ライン分のデータを保存することができる。退避領域17は、フリップフロップ(Flip−Flop:FF)やSRAMなどのメモリから構成されても良い。
マルチプレクサ18は、制御部20の制御に応じて、揮発性キャッシュメモリ10から出力されるデータと不揮発性キャッシュメモリ11から出力されるデータのいずれか一方をプロセッサへ出力する。
マルチプレクサ19は、制御部20の制御に応じて、プロセッサから要求されたデータ、不揮発性キャッシュメモリ11に記憶された記憶データ、退避領域17に記憶されたデータのいずれかを、揮発性キャッシュメモリ10へ入力する。
制御部20は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11、および、アドレスデコーダ16の制御を行う。また、制御部20は、揮発性キャッシュメモリ10、不揮発性キャッシュメモリ11から取得したアドレスヒットの状態とプロセッサから出力された要求の種類に応じて、マルチプレクサ18、19の出力を制御する。
次に、キャッシュシステム120の動作について説明する。
本キャッシュシステムには、3通りの動作モードがある。
第1の動作モードは、揮発性キャッシュメモリ10のみをキャッシュメモリとして用いる動作モードである。つまり、第1の動作モードのとき、キャッシュシステム120は、プロセッサの要求に基づいて、揮発性キャッシュメモリ10からデータを出力する。また、第1の動作モードのとき、キャッシュシステム120は、プロセッサの要求に基づいて、メインメモリ13に含まれるデータやプロセッサのL1キャッシュに含まれるデータを揮発性キャッシュメモリ10へ書きこむ。
第2の動作モードは、プロセッサの電源をオフにしてパワーゲーティングを行うまでの動作モードである。アドレスデコーダ16が揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11のメモリの1ラインずつを指定し、揮発性キャッシュメモリ10のデータが1ラインずつ不揮発性キャッシュメモリ11の同じラインに書きこまれる。そして、この書きこみ作業が終了すると同時に、プロセッサの電源がオフになる。
第3の動作モードは、プロセッサがパワーゲーティングの状態から復帰した直後から第1の動作モードへ移行するまでの間の動作モードである。第2の動作モードにて、プロセッサの電源がオフになるため、揮発性キャッシュメモリ10に記憶されたデータは消える。その後、プロセッサがパワーゲーティングの状態から復帰すると、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11の両方の電源がオンになる。このとき、不揮発性キャッシュメモリ11にはパワーゲーティング前に揮発性キャッシュメモリ10からコピーされたデータが格納されているが、揮発性キャッシュメモリ10にはデータが格納されていない。そこで、パワーゲーティングから復帰した直後は、プロセッサが処理を行うために必要なデータを不揮発性キャッシュメモリ11やメインメモリからデータを読み込む。そして、この読み込んだデータを揮発性キャッシュメモリ10へ格納する。
図6〜図8は、第3の動作モード時のキャッシュシステムの動作を示すフローチャートである。
プロセッサがパワーゲーティングの状態から復帰し、キャッシュシステム120がプロセッサから要求を取得すると(ステップS30:Yes)、制御部20は、指定されたアドレスのデータが揮発性キャッシュメモリ10に存在するか否かを確認する(ステップS31)。
指定されたアドレスのデータが揮発性キャッシュメモリ10に存在し(ステップS31:Yes)、プロセッサからの要求がリード要求であるならば(ステップS32:Yes)、揮発性キャッシュメモリ10は当該データをプロセッサに書きこむ(ステップS33)。また、プロセッサからの要求がリード要求でないならば(ステップS32:No)、制御部20は、揮発性キャッシュメモリ10の指定されたアドレスに当該データを書き込む(ステップS34)。
また、制御部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)等の方法を用いても良い。
プロセッサから指定されたアドレスのデータが揮発性キャッシュメモリ10に存在せず、不揮発性キャッシュメモリ11に存在する場合(ステップS35:Yes)、アドレスデコーダ16は、不揮発性キャッシュメモリ11の当該データが格納されているラインを指定する。アドレスデコーダ16は、揮発性キャッシュメモリ10と不揮発性キャッシュメモリ11とで共有されているため、アドレスデコーダ16は、揮発性キャッシュメモリ10についても同じラインを指定する。そして、制御部20は、揮発性キャッシュメモリ10の当該ライン上に、既に他のデータが格納されているか否かを確認する(ステップS39)。
アドレスデコーダ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)。
ここで、揮発性キャッシュメモリ10において、アドレスデコーダ16によって指定されたライン上に既にデータが格納されている場合(ステップS39:Yes)、不揮発性キャッシュメモリ11の指定ライン上のデータを揮発性キャッシュメモリ10にコピーすると、当該ラインに格納されているデータが上書きされてしまう。そのため、既存のデータを一時的に退避させる必要がある。
そこでまず、制御部20は、アドレスデコーダ16によって指定された揮発性キャッシュメモリ10のライン上に記憶されたデータを退避領域17へ転送する(ステップS40)。
そして、プロセッサからの要求がリード要求であれば(ステップS41:Yes)、不揮発性キャッシュメモリ11は、アドレスデコーダ16によって指定されている不揮発性キャッシュメモリ11のデータをプロセッサへ転送する(ステップS42)。このとき、転送されるデータのステータスがダーティの場合(ステップS43:No)、データ監視部15は、当該データのステータスをクリーンに変更する(ステップS45)。その後、不揮発性キャッシュメモリ11は、不揮発性キャッシュメモリ11の指定ライン上のデータを揮発性キャッシュメモリ10の同じライン上に書きこむ(ステップS46)。プロセッサへ転送されるデータのステータスがクリーンの場合(ステップS43:Yes)は、当該データのステータスは変更されずに、ステップS46の処理が行われる。プロセッサからの要求がリード要求でないならば(ステップS41:No)、制御部20は、アドレスデコーダ16によって指定された揮発性キャッシュメモリ10のライン上にプロセッサから指示されたデータを書きこむ(ステップS44)。
その後、制御部20は、アドレスデコーダ16によって指定されるラインを、揮発性キャッシュメモリ10の空き領域に変更させた上で、退避領域17に格納したデータを揮発性キャッシュメモリ10に書きこむ(ステップS47)。
上述のステップS40〜S47によって、揮発性キャッシュメモリ10に格納されているデータが上書きされることを防ぎ、揮発性キャッシュメモリ10のヒット率低下を防ぐことができる。
図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)。
以上のような実施形態をとることで、第1の実施形態および第2の実施形態で述べた効果を奏するとともに、アドレスデコーダ共通化により面積を削減することができる。
なお、上述した各実施形態の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータ・プログラムが、情報処理装置が備えるCPU(Central Processing Unit)によって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムであって、前記制御部は、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ動作を実行し、前記キャッシュシステムが第一の条件を満たしたとき、前記書きこみ動作を中止し、前記データ監視部は、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、キャッシュシステム。
(付記2)前記第一の条件は、前記揮発性キャッシュメモリの空き容量に関する条件である、付記1に記載のキャッシュシステム。
(付記3)前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることである、付記1または2に記載のキャッシュシステム。
(付記4)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書き込まれていないデータがあるか否かを検出する、付記1乃至3のいずれかに記載のキャッシュシステム。
(付記5)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれたデータのステータスを更新する、付記1乃至4のいずれかに記載のキャッシュシステム。
(付記6)前記検出は、前記キャッシュシステムが前記第一の条件を満たしたときに行われる、付記1乃至5のいずれかに記載のキャッシュシステム。
(付記7)前記不揮発性キャッシュメモリの容量と前記揮発性キャッシュメモリの容量とは同じである、付記1乃至6のいずれかに記載のキャッシュシステム。
(付記8)前記キャッシュシステムは、ライトバック方式を採用する、付記1乃至7のいずれかに記載のキャッシュシステム。
(付記9)前記揮発性キャッシュメモリと前記不揮発性キャッシュメモリとに対して同じラインを指定するアドレスデコーダと、前記揮発性キャッシュメモリからデータが入力される退避領域とをさらに有し、前記退避領域は、前記入力データを前記揮発性キャッシュメモリに出力する、付記1乃至8のいずれかに記載のキャッシュシステム。
(付記10)前記揮発性キャッシュメモリの所定のライン上に他のデータが記録されていた場合、前記退避領域は、前記他のデータが前記揮発性キャッシュメモリから出力され、その後、前記他のデータを前記揮発性キャッシュメモリに出力する、付記1乃至9のいずれかに記載のキャッシュシステム。
(付記11)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部を有するキャッシュシステムにおけるデータ監視部であって、前記キャッシュシステムが第一の条件を満たしたとき、前記不揮発性キャッシュメモリに記憶された記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、データ監視部。
(付記12)前記第一の条件は、前記揮発性キャッシュメモリの空き容量に関する条件である、付記11に記載のデータ監視部。
(付記13)前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることである、付記11または12に記載のデータ監視部。
(付記14)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータがあるか否かを検出する、付記11乃至13のいずれかに記載のデータ監視部。
(付記15)前記データ監視部は、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれたデータのステータスを更新する、付記11乃至14のいずれかに記載のデータ監視部。
(付記16)前記検出は、前記キャッシュシステムが前記第一の条件を満たしたときに行われる、付記11乃至15のいずれかに記載のデータ監視部。
(付記17)前記不揮発性キャッシュメモリの容量と前記揮発性キャッシュメモリの容量とは同じである、付記11乃至16のいずれかに記載のデータ監視部。
(付記18)前記キャッシュシステムは、ライトバック方式を採用する、付記11乃至17のいずれかに記載のデータ監視部。
(付記19)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ第一のステップと、前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二のステップと、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三のステップと、を含む、方法。
(付記20)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムにおけるデータ監視部の制御方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部が前記揮発性キャッシュメモリに書きこまれるキャッシュシステムにおいて、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむステップを有する、方法。
(付記21)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、コンピュータ上で実行された際に、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ第一の工程と、前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二の工程と、前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち、前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三の工程と、を有する制御方法を実行することが可能なプログラムコードを有するプログラム。
(付記22)不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムにおけるデータ監視部の制御方法であって、前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部が前記揮発性キャッシュメモリに書きこまれるキャッシュシステムにおいて、コンピュータ上で実行された際に、前記キャッシュシステムが第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ工程を有する制御方法を実行することが可能なプログラムコードを有するプログラム。
(付記23)コンピュータに読み取り可能な情報記憶媒体であって、付記21に記載のプログラムを記憶する記憶媒体。
(付記24)コンピュータに読み取り可能な情報記憶媒体であって、付記22に記載のプログラムを記憶する記憶媒体。
10 揮発性キャッシュメモリ
11 不揮発性キャッシュメモリ
12、15 データ監視部
13 メインメモリ
14 制御部
16 アドレスデコーダ
17 退避領域
18、19 マルチプレクサ
20 制御部
100、110、120 キャッシュシステム

Claims (6)

  1. 不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリとを有するキャッシュシステムにおける方法であって、前記キャッシュシステムが動作を開始してから前記キャッシュシステムが有する前記不揮発性キャッシュメモリ、前記揮発性キャッシュメモリ、及び前記メインメモリの全てが停止するまでの期間における方法であり、
    前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ第一のステップと、
    前記キャッシュシステムが第一の条件を満たしたとき、前記第一のステップを中止する第二のステップと、
    前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ第三のステップと、
    を含む、方法であって、
    前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることである方法。
  2. 前記第一の条件は、前記揮発性キャッシュメモリの空き容量がゼロになることである、請求項1に記載の方法。
  3. 前記記憶データのうち、前記第一のステップにおいて前記揮発性キャッシュメモリに書きこまれたデータの前記不揮発性キャッシュメモリでのステータスが更新される更新ステップを含む、
    請求項1または2に記載の方法。
  4. 前記キャッシュシステムは、ライトバック方式を採用する、請求項1乃至3のいずれかに記載の方法。
  5. 不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とデータ監視部とを有するキャッシュシステムであって、
    前記制御部は、前記キャッシュシステムが動作を開始してから前記キャッシュシステムが有する前記不揮発性キャッシュメモリ、前記揮発性キャッシュメモリ、及び前記メインメモリの全てが停止するまでの期間において、
    前記不揮発性キャッシュメモリに記憶された記憶データの少なくとも一部を、前記揮発性キャッシュメモリに書きこむ動作を実行し、
    前記キャッシュシステムが第一の条件を満たしたとき、前記書きこみ動作を中止し、
    前記データ監視部は、前記キャッシュシステムが動作を開始してから前記キャッシュシステムが有する前記不揮発性キャッシュメモリ、前記揮発性キャッシュメモリ、及び前記メインメモリの全てが停止するまでの期間において、
    前記キャッシュシステムが前記第一の条件を満たしたとき、前記記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、
    キャッシュシステムであって、
    前記第一の条件は、前記揮発性キャッシュメモリの空き容量が閾値以下であることであるキャッシュシステム。
  6. 不揮発性キャッシュメモリと揮発性キャッシュメモリとメインメモリと制御部とを有するキャッシュシステムにおけるデータ監視部であって、
    前記キャッシュシステムが動作を開始してから前記キャッシュシステムが有する前記不揮発性キャッシュメモリ、前記揮発性キャッシュメモリ、及び前記メインメモリの全てが停止するまでの期間において、前記キャッシュシステムが第一の条件を満たしたとき、前記不揮発性キャッシュメモリに記憶された記憶データのうち前記揮発性キャッシュメモリに書きこまれていないデータの少なくとも一部を、前記メインメモリに書きこむ、データ監視部であって、
    前記第一の条件は、前記揮発性キャッシュメモリの空き容量が,前記揮発性キャッシュメモリの空き容量が閾値以下であることであるデータ監視部。
JP2016032786A 2016-02-24 2016-02-24 方法、キャッシュシステム及びデータ監視部 Active JP6784033B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016032786A JP6784033B2 (ja) 2016-02-24 2016-02-24 方法、キャッシュシステム及びデータ監視部

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016032786A JP6784033B2 (ja) 2016-02-24 2016-02-24 方法、キャッシュシステム及びデータ監視部

Publications (2)

Publication Number Publication Date
JP2017151664A JP2017151664A (ja) 2017-08-31
JP6784033B2 true JP6784033B2 (ja) 2020-11-11

Family

ID=59740881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016032786A Active JP6784033B2 (ja) 2016-02-24 2016-02-24 方法、キャッシュシステム及びデータ監視部

Country Status (1)

Country Link
JP (1) JP6784033B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309234A (ja) * 1993-02-15 1994-11-04 Toshiba Corp ディスク制御装置
JP4536785B2 (ja) * 2008-02-01 2010-09-01 富士通株式会社 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
US9003118B2 (en) * 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
JP2012190359A (ja) * 2011-03-11 2012-10-04 Toshiba Corp キャッシュシステムおよび処理装置
JP5627754B2 (ja) * 2013-10-28 2014-11-19 株式会社東芝 仮想記憶管理装置及び記憶管理装置

Also Published As

Publication number Publication date
JP2017151664A (ja) 2017-08-31

Similar Documents

Publication Publication Date Title
US8606997B2 (en) Cache hierarchy with bounds on levels accessed
JP6514569B2 (ja) データ処理装置における動的なキャッシュ・アロケーション・ポリシーの適応
US20200264980A1 (en) Apparatus and method of handling caching of persistent data
JP5535128B2 (ja) メモリシステム
US8407418B2 (en) Information processing apparatus and driver
US8639881B2 (en) Information processing apparatus and driver
KR101472967B1 (ko) 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
JP2009205335A (ja) 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JP2012190359A (ja) キャッシュシステムおよび処理装置
JP3236287B2 (ja) マルチプロセッサシステム
JP4297961B2 (ja) メモリアクセス制御装置およびメモリアクセス制御方法
WO2015186243A1 (ja) ストレージ装置
US20120047330A1 (en) I/o efficiency of persistent caches in a storage system
JP2012203487A (ja) キャッシュシステムおよび処理装置
JPH06349286A (ja) フラッシュメモリ用書き込み制御方法および制御装置
JP5298826B2 (ja) キャッシュメモリ及びプリフェッチ方法
JP6784033B2 (ja) 方法、キャッシュシステム及びデータ監視部
US11593276B2 (en) Data caching methods of cache systems
JP2006236239A (ja) データ処理システム及びデータ伸長方法
KR101168364B1 (ko) 로컬 메모리 데이터의 가간섭성 캐싱
KR101502998B1 (ko) 메모리 시스템 및 그 관리 방법
KR100851298B1 (ko) 캐시 메모리 컨트롤러 및 이를 이용한 캐시 메모리 관리방법
US20160055087A1 (en) System and method for managing cache replacements
US11899589B2 (en) Systems, methods, and devices for bias mode management in memory systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20190906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200923

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201006

R150 Certificate of patent or registration of utility model

Ref document number: 6784033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150