(57)【要約】【課題】ライト書き換え耐力の弱い不揮発性メモリをリードキャッシュに使用した場合、キャッシュヒット率を高くするためにリードアクセス頻度が低く、書き換え頻度の高いデータをキャッシュするとライト書き込み耐力不足の問題があった。【解決手段】リードキャッシュの構成で揮発性メモリとライト書き換え耐力の弱い不揮発性メモリとの間にライト書き換え耐力の強い不揮発性メモリを間に配置し、上位の揮発性メモリと中位のライト書き換え耐力の強い不揮発性メモリのデータのリードアクセス頻度を監視し、リードアクセス頻度のレベルに応じて上位の揮発性メモリ、中位のライト書き換え耐力の強い不揮発性メモリ、下位のライト書き換え耐力の弱い不揮発性メモリと段階的にデータの格納場所を制御する。【選択図】  図１
2014153969.tif 000002
【特許請求の範囲】
【請求項１】
ホストと、該ホストのデータを格納する記憶装置と、該記憶装置からの読み出しデータを格納するリードキャッシュと、前記記憶装置及び前記リードキャッシュを制御してホストからの要求を処理する制御部とを有する情報処理システムにおいて、前記リードキャッシュは、前記記憶装置からの読み出しデータが格納される揮発性メモリと、該揮発性メモリのデータがリードアクセス頻度に応じて移動して格納される第１の不揮発性メモリと、該第１の不揮発性メモリよりライト書き換え耐力が低く該第１の不揮発性メモリのデータがリードアクセス頻度に応じて移動して格納される第２の不揮発性メモリから成り、前記リードキャッシュは前記揮発性メモリを管理する第１の管理テーブルと前記第１及び第２の不揮発性メモリを管理する第２の管理テーブルを有し、前記制御部は前記ホストからのリード要求時に前記第１及び第２の管理テーブルを検索し、要求データがあった場合には該当メモリから読み出してホストに転送し、要求データがなかった場合には前記記憶装置から読み出して前記揮発性メモリに格納し、前記ホストに転送する情報処理システム。
【請求項２】
前記第２の管理テーブルは当該テーブルに登録されたデータが前記第１の不揮発性メモリ又は前記第２の不揮発性メモリのいずれに格納されているかを示す識別子を有する請求項１記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
不揮発性メモリを使用した情報処理システムにおける最適なデータ制御技術に関する。
【背景技術】
【０００２】
様々な種類のコンピュータの多くは外部記憶装置としてＨＤＤを利用しているが、近年では、揮発性メモリとＨＤＤのパフォーマンスギャップが大きくなり、そのギャップを埋める高速デバイスとして不揮発性メモリを間に入れる構成が増えている。不揮発性メモリはメモリセルの密度に応じてライト書き換え耐力と容量単価のトレードオフを有する特徴がある。例えば、ＳＬＣ（シングルレベルセル）はセル毎に１データビットを格納したもので容量単価は高いがライト書き換え耐力が強い。それに対してＭＬＣ（マルチレベルセル）は一つのセルに２、４、８とマルチにデータビットを格納できるため容量単価は安いが格納するデータビットを増やせば増やすほどライト書き換え耐力が弱くなる特徴を持つ。この不揮発性メモリの特徴を有効に利用した例が特許文献１に記載されている。この例ではライト書き換え耐力が強い特徴を持つ不揮発性メモリをライトキャッシュとして使用し、ライト書き換え耐力の弱い不揮発性メモリをリードキャッシュとして使用することを提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−４８３６１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１ではライト書き換え耐力の弱い不揮発性メモリをリードキャッシュに使用してライト書き換え耐力の消耗を緩和しているが、キャッシュヒット率を高くするためにはアクセス頻度が低く書き換え頻度の高いデータもライト書き換え耐力の弱いリードキャッシュに書き込むことになり、ライト書き換え耐力不足の懸念を払拭することができない。上位に位置する揮発性メモリの容量を増やしアクセス頻度が低いデータも揮発性メモリに置いておくことでリードキャッシュヒット率を上げることができるが、それではコストアップになってしまう。
また、電源が遮断されると揮発性メモリのデータは消失してしまうので、これまで蓄積したアクセス頻度の高いデータが消失し、電源回復後のキャッシュヒット率は急激に低下する。
【課題を解決するための手段】
【０００５】
リードキャッシュの構成で揮発メモリと不揮発性メモリとの間にライト書き換え耐力の強い不揮発性メモリを間に配置し、上位の揮発性メモリと中位のライト書き換え耐力の強い不揮発性メモリのデータのリードアクセス頻度を監視し、リードアクセス頻度のレベルに応じて上位の揮発メモリ、中位のライト書き換え耐力の強い不揮発性メモリ、下位のライト書き換え耐力の弱い不揮発性メモリと段階的にデータの格納場所を変更する。
【発明の効果】
【０００６】
この発明によれば、リードアクセス頻度が高く、書き換えが発生しないデータのみをライト書き換え耐力の弱い不揮発性メモリに集約することができるので不揮発性メモリの書き換え耐力の消耗を緩和させることが可能になる。これまで揮発性メモリにあるすべてのデータは電源が遮断されると消失していたが、揮発メモリ内のデータでアクセス頻度の高いデータはライト書き換え耐力の強い不揮発性メモリに移動させるため電源が遮断されても消失することがない。高価な揮発メモリの容量を増やす代わりにライト書き換え耐力の強い不揮発性メモリで代用するためキャッシュヒット率を維持したコストパフォーマンスに優れた情報処理システムを構築することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態のディスクサブシステムの構成を示す図
【図２】実施形態の不揮発性メモリのデータ管理テーブルの構成例
【図３】実施形態のリードキャッシュの揮発性メモリのデータ管理テーブルの構成例
【図４】実施形態のライトキャッシュの揮発性メモリのデータ管理テーブルの構成例
【図５】実施形態の動作の概要を説明する図
【図６】実施形態のホストシステムからリード要求に対するフローチャート
【図７】実施形態の揮発メモリからリードアクセス頻度の高いデータを不揮発性メモリに移動する処理のフローチャート
【発明を実施するための形態】
【０００８】
以下、図面を参照して、この発明の実施形態を説明する。
【０００９】
図１は本発明の実施形態に係るディスクサブシステム２００の構成を示す図である。本ディスクサブシステム２００は、ホストシステム１００が利用するデータを記録するためにディスクサブシステム２００として接続されている。ホストシステム１００とディスクサブシステム２００との接続形態はLAN（Local Area Network）を介する環境においては複数のホストシステム１００が存在しても良い。また、ホストシステム１００とディスクサブシステム２００とが同一のコンピュータ上に存在してデータバスを介して接続される形態やディスクサブシステム２００内のＨＤＤ２２０を外部接続としディスクサブシステム２００自身がキャッシュサーバとする形態も考えられる。
【００１０】
図１のようにディスクサブシステム２００は制御部２１０、リードキャッシュ２３０、ライトキャッシュ２４０、ＨＤＤ２２０（Hard Disk Drive）で構成されている。制御部２１０はＲＡＭ２１１（Random Access Memory）、プロセッサ２１２、ＲＯＭ２１３（Read Only Memory）で構成されている。ＲＡＭ２１１は制御部２１０のワーク領域として使用し、ＲＯＭ２１３には制御プログラムが格納されている。制御部２１０は本ディスクサブシステム２００の動作を制御する中枢部でありホストシステム１００が発行するＨＤＤ２２０へのデータの書き込み要求（ライトコマンド）または、読み出し要求（リードコマンド）を効率的に処理する。リードキャッシュ２３０は揮発性メモリ２３１と不揮発性メモリ２３２で構成されている。不揮発性メモリ２３２は、さらに書き込み耐力の異なる２種類の不揮発性メモリのＳＬＣ２３３とＭＬＣ２３４で構成されている。ここでは、ＳＬＣ２３３とＭＬＣ２３４を使用する実施例となっているがライト書き込み耐力の異なる２種類のＭＬＣを使用しても良い。ＨＤＤ２２０はホストシステム１００のデータを記録する記憶装置である。データ保証するために耐障害性を高めたRAID構成（Redundant Array of Inexpensive Disks）の形態が多い。リードキャッシュ２３０とライトキャッシュ２４０はＨＤＤ２２０のキャッシュとして使用する。
【００１１】
図２に実施形態の不揮発性メモリ２３２のデータ管理テーブル２３６の構成例を示す。データ管理テーブル２３６は不揮発性メモリ２３２に格納されているＨＤＤ２２０のキャッシュデータの格納箇所を管理するためのものである。ここではリードキャッシュ２３０内のＭＬＣ２３４の管理テーブルは書き換え頻度を考慮して、ＳＬＣ２３３の管理テーブル２３６に集約した。データ管理テーブルはTag３０１、アドレスLBA（Logical Block Address）３０２、キャッシュアドレス３０３、ＳＬＣ識別子３０４、ＭＬＣ識別子３０５、Status３０６、リードアクセス頻度３０７で構成される。
【００１２】
Tag３０１はＨＤＤ２２０の各ＨＤＤの識別子を示す。具体的にはＨＤＤ２２０のＨＤＤの搭載数が１６台である場合には識別子は４ビットで表現することができる。アドレスLBA３０２はＨＤＤ２２０の各ＨＤＤのセクタ位置を示す。１台当たりのＨＤＤの容量が２TBの場合には３２ビットでアドレスLBA３０２を表現することができる。キャッシュアドレス３０３はＳＬＣ２３３とＭＬＣ２３４のキャッシュアドレスを示す。ＳＬＣ識別子３０４とＭＬＣ識別子３０５を付加することでキャッシュデータがＳＬＣ２３３とＭＬＣ２３４のどちらに格納されているか特定することができる。
【００１３】
Status３０６はデータの状態を示す。Usedは使用している状態を示し、Not Usedは未使用の状態を示す。Not Usedは他のキャッシュ領域へデータを移動した場合やデータの書き換えが発生して不要となったデータに対してもセットされる。Not Usedがセットされたデータは後続の新しいデータを書き込むためにいつでも消去することができる。リードアクセス頻度３０７はキャッシュヒット時に該当データに対して１加算する。この処理によって、リードアクセス頻度３０７の高いデータの管理ができるようになる。
【００１４】
各キャッシュ領域のStatus３０６でNot Usedのデータがなく空き領域を確保できない場合にはリードアクセス頻度３０７のカウンタ値を使用して空き領域を確保することができる。具体的にはリードアクセス頻度３０７のカウンタ値の小さいデータはリードアクセス頻度の低いデータと判断することができるので優先的に消去し、新しいデータを格納するために領域を空けることができる。
【００１５】
図３に実施形態のリードキャッシュの揮発性メモリのデータ管理テーブル２３５の構成例を示す。図２の不揮発性メモリのデータ管理テーブル２３６の構成との相違点はＳＬＣ２３３識別子３０４とＭＬＣ２３４識別子がない点である。
【００１６】
図４に実施形態のライトキャッシュの揮発性メモリのデータ管理テーブル２４１の構成例を示す。図２の不揮発性メモリのデータ管理テーブル２３６の構成との相違点はＳＬＣ２３３識別子３０４とＭＬＣ２３４識別子がない点とStatus３０６でライトキャッシュ特有のDirtyとCleanのフラグがあることである。Dirtyはキャッシュ内にデータが格納されているがＨＤＤ２２０に同一のデータが存在しない状態を示し、CleanはＨＤＤ２２０とキャッシュ内に同一のデータが格納されている状態を示す。DirtyからCleanへの変更はホストシステム１００からのライト要求に対してＨＤＤ２２０でライト処理が完了した時に行われる。
【００１７】
図５で実施例の動作の概要を説明する。ディスクサブシステム２００はホストシステム１００との間でリードデータやライトデータのやりとりを行う。制御部２１０はホストシステム１００からのライト要求において、受領したライトデータをライトキャッシュ２４０に格納した後にＨＤＤ２２０にライト指示を行う。また、ホストシステム１００からのリード要求においては各管理テーブル２３５、２３６、２４１を参照しデータの格納箇所を割り出しライトキャッシュ２４０、リードキャッシュ２３０からデータを転送する。キャッシュ内にデータがない場合にはＨＤＤ２２０からリードキャッシュ内の揮発性メモリ２３１に格納してからホストシステム１００にデータを転送する。
【００１８】
制御部２１０はホストシステム１００からのライト要求やリード要求の処理を行うたびに各データ管理テーブル２３５、２３６、２４１へのアクセスを行う。本発明では、リードキャッシュ２３０を揮発性メモリ２３１とライト書き込み耐力の異なる２つの不揮発性メモリのＳＬＣ２３３とＭＬＣ２３４の３構成とし、管理テーブル２３６を使用して、各データのリードアクセス頻度３０７に応じてキャッシュ内でデータを段階的に移動させることでＭＬＣ２３４の書き換え耐力の消耗を緩和させることができる。
【００１９】
図６のフローを用いて、ホストシステム１００からのリード要求に対するシーケンスを説明する。まず初めに、ホストシステム１００からのリード要求を受領すると、ライトキャッシュ内の揮発性メモリの管理テーブル２４１を検索する（ステップ４０１）。具体的にはＨＤＤ２２０に対するホストシステム１００からのリード要求のTag３０１、アドレスLBA３０２と合致するデータが管理テーブル２４１に登録されているか検索する。ここで、ステップ４０２で該当のデータがある場合にはホストシステム１００へデータ転送する（ステップ４０３）。次に、該当のデータの管理テーブルのリードアクセス頻度３０７を加算する（ステップ４０４）。
ステップ４０２で該当のデータがない場合はリードキャッシュ内の揮発性メモリの管理テーブル２３５を検索する（ステップ４０５）。ここで、ステップ４０６で該当のデータがある場合にはホストシステム１００へデータ転送する（ステップ４０３）。次に、該当のデータの管理テーブルのリードアクセス頻度３０７を加算する（ステップ４０４）。
ステップ４０６で該当のデータがない場合はリードキャッシュ内の不揮発性メモリの管理テーブル２３６を検索する（ステップ４０７）。ＳＬＣ識別子３０４とＭＬＣ識別子３０５を参照してどちらに格納されているか確認する。ここで、ステップ４０８で該当のデータがある場合にはホストシステム１００へデータ転送する（ステップ４０３）。次に、該当のデータの管理テーブルのリードアクセス頻度３０７を加算する（ステップ４０４）。
ステップ４０８で該当のデータがない場合はＨＤＤ２２０からリードキャッシュ２３０内の揮発性メモリ２３１にデータを格納し（ステップ４０９）、ホストシステム１００へデータ転送する（ステップ４１０）。次にリードキャッシュ内の揮発性メモリ２３１のデータのStatusをUsedにセットし（ステップ４１１）、リードアクセス頻度３０７を加算する（ステップ４０４）。
【００２０】
次に、図７のフローを用いて、ライトキャッシュ内の揮発性メモリ２４０とリードキャッシュ内の揮発性メモリ２３１からリードキャッシュ内の不揮発性メモリ２３２にデータを移動させる処理について説明する。
【００２１】
まず初めに、ライトキャッシュ内の揮発性メモリの管理テーブル２４１を検索する（ステップ５０１）。管理テーブルの検索は一定時間間隔で行う。ステップ５０２で規定値回数以上の該当のデータがある場合はリードキャッシュ内の不揮発性メモリ２３２のＳＬＣ２３３にデータを移動し（ステップ５０３）、管理テーブル２３６のＳＬＣ２３３の当該データのStatus３０６をUsedとし、ＳＬＣ識別子３０４をセットする（ステップ５０４）。
【００２２】
次にリードキャッシュ内の揮発性メモリの管理テーブル２３５を検索する（ステップ５０５）。ステップ５０６で規定値回数以上の該当のデータがある場合はリードキャッシュ内の不揮発性メモリ２３２のＳＬＣ２３３にデータを移動し（ステップ５０７）、管理テーブル２３６のＳＬＣ２３３の当該データのStatus３０６をUsedとし、ＳＬＣ識別子３０４をセットし、リードキャッシュ内の揮発性メモリ２３１の管理テーブル２３５の当該データのStatus３０６をNot Usedにセットする（ステップ５０８）。
【００２３】
次にリードキャッシュ内の不揮発性メモリの管理テーブル２３６を検索する（ステップ５０９）。ステップ５１０で規定回数以上のＳＬＣ２３３のデータがある場合はリードキャッシュ内の不揮発性メモリ２３２のＭＬＣ２３４にデータを移動する（ステップ５１１）。次に、管理テーブル２３６のＭＬＣ２３４のデータのStatus３０６をUsedとし、ＭＬＣ識別子３０５をセットし、管理テーブル２３６のリードキャッシュのＳＬＣ２３３のデータのStatus３０６をNot Usedにセットする（ステップ５１２）。
【００２４】
このようにキャッシュ内のデータのリードアクセス頻度３０７に応じて揮発性メモリ、ＳＬＣ２３４、ＭＬＣ２３４と段階的にデータの格納場所を変更することでリードアクセス頻度が高く、データが書き換えられることがないデータは下位のライト書き込み耐力の弱いＭＬＣ側に集約することができるためライト書き換え耐力の消耗を緩和させることが可能となる。
【符号の説明】
【００２５】
１００  ホストシステム
２００  ディスクサブシステム
２１０  制御部
２１１  ＲＡＭ（Random Access Memory）
２１２  プロセッサ
２１３  ＲＯＭ（Read Only Memory）
２２０  ＨＤＤ
２３０  リードキャッシュ
２３１  リードキャッシュ内の揮発性メモリ
２３２  リードキャッシュ内の不揮発性メモリ
２３３  ＳＬＣ（シングルレベルセルメモリ）
２３４  ＭＬＣ（マルチレベルセルメモリ）
２３５  リードキャッシュ内の揮発性メモリのデータ管理テーブル
２３６  リードキャッシュ内不揮発性メモリのデータ管理テーブル
２４０  ライトキャッシュ
２４１  ライトキャッシュ内の揮発性メモリのデータ管理テーブル
３０１  Tag
３０２  アドレスLBA（Logical Block Address）
３０３  キャッシュアドレス
３０４  SLC識別子
３０５  MLC識別子
３０６  Status
３０７  リードアクセス頻度
【図１】
2014153969.tif 000003
【図２】
2014153969.tif 000004
【図３】
2014153969.tif 000005
【図４】
2014153969.tif 000006
【図５】
2014153969.tif 000007
【図６】
2014153969.tif 000008
【図７】
2014153969.tif 000009