JP5953245B2 - 情報処理システム - Google Patents
情報処理システム Download PDFInfo
- Publication number
- JP5953245B2 JP5953245B2 JP2013024000A JP2013024000A JP5953245B2 JP 5953245 B2 JP5953245 B2 JP 5953245B2 JP 2013024000 A JP2013024000 A JP 2013024000A JP 2013024000 A JP2013024000 A JP 2013024000A JP 5953245 B2 JP5953245 B2 JP 5953245B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- volatile memory
- read
- cache
- write
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
不揮発性メモリを使用した情報処理システムにおける最適なデータ制御技術に関する。
様々な種類のコンピュータの多くは外部記憶装置としてHDDを利用しているが、近年では、揮発性メモリとHDDのパフォーマンスギャップが大きくなり、そのギャップを埋める高速デバイスとして不揮発性メモリを間に入れる構成が増えている。不揮発性メモリはメモリセルの密度に応じてライト書き換え耐力と容量単価のトレードオフを有する特徴がある。例えば、SLC(シングルレベルセル)はセル毎に1データビットを格納したもので容量単価は高いがライト書き換え耐力が強い。それに対してMLC(マルチレベルセル)は一つのセルに2、4、8とマルチにデータビットを格納できるため容量単価は安いが格納するデータビットを増やせば増やすほどライト書き換え耐力が弱くなる特徴を持つ。この不揮発性メモリの特徴を有効に利用した例が特許文献1に記載されている。この例ではライト書き換え耐力が強い特徴を持つ不揮発性メモリをライトキャッシュとして使用し、ライト書き換え耐力の弱い不揮発性メモリをリードキャッシュとして使用することを提案している。
上記の特許文献1ではライト書き換え耐力の弱い不揮発性メモリをリードキャッシュに使用してライト書き換え耐力の消耗を緩和しているが、キャッシュヒット率を高くするためにはアクセス頻度が低く書き換え頻度の高いデータもライト書き換え耐力の弱いリードキャッシュに書き込むことになり、ライト書き換え耐力不足の懸念を払拭することができない。上位に位置する揮発性メモリの容量を増やしアクセス頻度が低いデータも揮発性メモリに置いておくことでリードキャッシュヒット率を上げることができるが、それではコストアップになってしまう。
また、電源が遮断されると揮発性メモリのデータは消失してしまうので、これまで蓄積したアクセス頻度の高いデータが消失し、電源回復後のキャッシュヒット率は急激に低下する。
また、電源が遮断されると揮発性メモリのデータは消失してしまうので、これまで蓄積したアクセス頻度の高いデータが消失し、電源回復後のキャッシュヒット率は急激に低下する。
リードキャッシュの構成で揮発メモリと不揮発性メモリとの間にライト書き換え耐力の強い不揮発性メモリを間に配置し、上位の揮発性メモリと中位のライト書き換え耐力の強い不揮発性メモリのデータのリードアクセス頻度を監視し、リードアクセス頻度のレベルに応じて上位の揮発メモリ、中位のライト書き換え耐力の強い不揮発性メモリ、下位のライト書き換え耐力の弱い不揮発性メモリと段階的にデータの格納場所を変更する。
この発明によれば、リードアクセス頻度が高く、書き換えが発生しないデータのみをライト書き換え耐力の弱い不揮発性メモリに集約することができるので不揮発性メモリの書き換え耐力の消耗を緩和させることが可能になる。これまで揮発性メモリにあるすべてのデータは電源が遮断されると消失していたが、揮発メモリ内のデータでアクセス頻度の高いデータはライト書き換え耐力の強い不揮発性メモリに移動させるため電源が遮断されても消失することがない。高価な揮発メモリの容量を増やす代わりにライト書き換え耐力の強い不揮発性メモリで代用するためキャッシュヒット率を維持したコストパフォーマンスに優れた情報処理システムを構築することができる。
以下、図面を参照して、この発明の実施形態を説明する。
図1は本発明の実施形態に係るディスクサブシステム200の構成を示す図である。本ディスクサブシステム200は、ホストシステム100が利用するデータを記録するためにディスクサブシステム200として接続されている。ホストシステム100とディスクサブシステム200との接続形態はLAN(Local Area Network)を介する環境においては複数のホストシステム100が存在しても良い。また、ホストシステム100とディスクサブシステム200とが同一のコンピュータ上に存在してデータバスを介して接続される形態やディスクサブシステム200内のHDD220を外部接続としディスクサブシステム200自身がキャッシュサーバとする形態も考えられる。
図1のようにディスクサブシステム200は制御部210、リードキャッシュ230、ライトキャッシュ240、HDD220(Hard Disk Drive)で構成されている。制御部210はRAM211(Random Access Memory)、プロセッサ212、ROM213(Read Only Memory)で構成されている。RAM211は制御部210のワーク領域として使用し、ROM213には制御プログラムが格納されている。制御部210は本ディスクサブシステム200の動作を制御する中枢部でありホストシステム100が発行するHDD220へのデータの書き込み要求(ライトコマンド)または、読み出し要求(リードコマンド)を効率的に処理する。リードキャッシュ230は揮発性メモリ231と不揮発性メモリ232で構成されている。不揮発性メモリ232は、さらに書き込み耐力の異なる2種類の不揮発性メモリのSLC233とMLC234で構成されている。ここでは、SLC233とMLC234を使用する実施例となっているがライト書き込み耐力の異なる2種類のMLCを使用しても良い。HDD220はホストシステム100のデータを記録する記憶装置である。データ保証するために耐障害性を高めたRAID構成(Redundant Array of Inexpensive Disks)の形態が多い。リードキャッシュ230とライトキャッシュ240はHDD220のキャッシュとして使用する。
図2に実施形態の不揮発性メモリ232のデータ管理テーブル236の構成例を示す。データ管理テーブル236は不揮発性メモリ232に格納されているHDD220のキャッシュデータの格納箇所を管理するためのものである。ここではリードキャッシュ230内のMLC234の管理テーブルは書き換え頻度を考慮して、SLC233の管理テーブル236に集約した。データ管理テーブルはTag301、アドレスLBA(Logical Block Address)302、キャッシュアドレス303、SLC識別子304、MLC識別子305、Status306、リードアクセス頻度307で構成される。
Tag301はHDD220の各HDDの識別子を示す。具体的にはHDD220のHDDの搭載数が16台である場合には識別子は4ビットで表現することができる。アドレスLBA302はHDD220の各HDDのセクタ位置を示す。1台当たりのHDDの容量が2TBの場合には32ビットでアドレスLBA302を表現することができる。キャッシュアドレス303はSLC233とMLC234のキャッシュアドレスを示す。SLC識別子304とMLC識別子305を付加することでキャッシュデータがSLC233とMLC234のどちらに格納されているか特定することができる。
Status306はデータの状態を示す。Usedは使用している状態を示し、Not Usedは未使用の状態を示す。Not Usedは他のキャッシュ領域へデータを移動した場合やデータの書き換えが発生して不要となったデータに対してもセットされる。Not Usedがセットされたデータは後続の新しいデータを書き込むためにいつでも消去することができる。リードアクセス頻度307はキャッシュヒット時に該当データに対して1加算する。この処理によって、リードアクセス頻度307の高いデータの管理ができるようになる。
各キャッシュ領域のStatus306でNot Usedのデータがなく空き領域を確保できない場合にはリードアクセス頻度307のカウンタ値を使用して空き領域を確保することができる。具体的にはリードアクセス頻度307のカウンタ値の小さいデータはリードアクセス頻度の低いデータと判断することができるので優先的に消去し、新しいデータを格納するために領域を空けることができる。
図3に実施形態のリードキャッシュの揮発性メモリのデータ管理テーブル235の構成例を示す。図2の不揮発性メモリのデータ管理テーブル236の構成との相違点はSLC233識別子304とMLC234識別子がない点である。
図4に実施形態のライトキャッシュの揮発性メモリのデータ管理テーブル241の構成例を示す。図2の不揮発性メモリのデータ管理テーブル236の構成との相違点はSLC233識別子304とMLC234識別子がない点とStatus306でライトキャッシュ特有のDirtyとCleanのフラグがあることである。Dirtyはキャッシュ内にデータが格納されているがHDD220に同一のデータが存在しない状態を示し、CleanはHDD220とキャッシュ内に同一のデータが格納されている状態を示す。DirtyからCleanへの変更はホストシステム100からのライト要求に対してHDD220でライト処理が完了した時に行われる。
図5で実施例の動作の概要を説明する。ディスクサブシステム200はホストシステム100との間でリードデータやライトデータのやりとりを行う。制御部210はホストシステム100からのライト要求において、受領したライトデータをライトキャッシュ240に格納した後にHDD220にライト指示を行う。また、ホストシステム100からのリード要求においては各管理テーブル235、236、241を参照しデータの格納箇所を割り出しライトキャッシュ240、リードキャッシュ230からデータを転送する。キャッシュ内にデータがない場合にはHDD220からリードキャッシュ内の揮発性メモリ231に格納してからホストシステム100にデータを転送する。
制御部210はホストシステム100からのライト要求やリード要求の処理を行うたびに各データ管理テーブル235、236、241へのアクセスを行う。本発明では、リードキャッシュ230を揮発性メモリ231とライト書き込み耐力の異なる2つの不揮発性メモリのSLC233とMLC234の3構成とし、管理テーブル236を使用して、各データのリードアクセス頻度307に応じてキャッシュ内でデータを段階的に移動させることでMLC234の書き換え耐力の消耗を緩和させることができる。
図6のフローを用いて、ホストシステム100からのリード要求に対するシーケンスを説明する。まず初めに、ホストシステム100からのリード要求を受領すると、ライトキャッシュ内の揮発性メモリの管理テーブル241を検索する(ステップ401)。具体的にはHDD220に対するホストシステム100からのリード要求のTag301、アドレスLBA302と合致するデータが管理テーブル241に登録されているか検索する。ここで、ステップ402で該当のデータがある場合にはホストシステム100へデータ転送する(ステップ403)。次に、該当のデータの管理テーブルのリードアクセス頻度307を加算する(ステップ404)。
ステップ402で該当のデータがない場合はリードキャッシュ内の揮発性メモリの管理テーブル235を検索する(ステップ405)。ここで、ステップ406で該当のデータがある場合にはホストシステム100へデータ転送する(ステップ403)。次に、該当のデータの管理テーブルのリードアクセス頻度307を加算する(ステップ404)。
ステップ406で該当のデータがない場合はリードキャッシュ内の不揮発性メモリの管理テーブル236を検索する(ステップ407)。SLC識別子304とMLC識別子305を参照してどちらに格納されているか確認する。ここで、ステップ408で該当のデータがある場合にはホストシステム100へデータ転送する(ステップ403)。次に、該当のデータの管理テーブルのリードアクセス頻度307を加算する(ステップ404)。
ステップ408で該当のデータがない場合はHDD220からリードキャッシュ230内の揮発性メモリ231にデータを格納し(ステップ409)、ホストシステム100へデータ転送する(ステップ410)。次にリードキャッシュ内の揮発性メモリ231のデータのStatusをUsedにセットし(ステップ411)、リードアクセス頻度307を加算する(ステップ404)。
ステップ402で該当のデータがない場合はリードキャッシュ内の揮発性メモリの管理テーブル235を検索する(ステップ405)。ここで、ステップ406で該当のデータがある場合にはホストシステム100へデータ転送する(ステップ403)。次に、該当のデータの管理テーブルのリードアクセス頻度307を加算する(ステップ404)。
ステップ406で該当のデータがない場合はリードキャッシュ内の不揮発性メモリの管理テーブル236を検索する(ステップ407)。SLC識別子304とMLC識別子305を参照してどちらに格納されているか確認する。ここで、ステップ408で該当のデータがある場合にはホストシステム100へデータ転送する(ステップ403)。次に、該当のデータの管理テーブルのリードアクセス頻度307を加算する(ステップ404)。
ステップ408で該当のデータがない場合はHDD220からリードキャッシュ230内の揮発性メモリ231にデータを格納し(ステップ409)、ホストシステム100へデータ転送する(ステップ410)。次にリードキャッシュ内の揮発性メモリ231のデータのStatusをUsedにセットし(ステップ411)、リードアクセス頻度307を加算する(ステップ404)。
次に、図7のフローを用いて、ライトキャッシュ内の揮発性メモリ240とリードキャッシュ内の揮発性メモリ231からリードキャッシュ内の不揮発性メモリ232にデータを移動させる処理について説明する。
まず初めに、ライトキャッシュ内の揮発性メモリの管理テーブル241を検索する(ステップ501)。管理テーブルの検索は一定時間間隔で行う。ステップ502で規定値回数以上の該当のデータがある場合はリードキャッシュ内の不揮発性メモリ232のSLC233にデータを移動し(ステップ503)、管理テーブル236のSLC233の当該データのStatus306をUsedとし、SLC識別子304をセットする(ステップ504)。
次にリードキャッシュ内の揮発性メモリの管理テーブル235を検索する(ステップ505)。ステップ506で規定値回数以上の該当のデータがある場合はリードキャッシュ内の不揮発性メモリ232のSLC233にデータを移動し(ステップ507)、管理テーブル236のSLC233の当該データのStatus306をUsedとし、SLC識別子304をセットし、リードキャッシュ内の揮発性メモリ231の管理テーブル235の当該データのStatus306をNot Usedにセットする(ステップ508)。
次にリードキャッシュ内の不揮発性メモリの管理テーブル236を検索する(ステップ509)。ステップ510で規定回数以上のSLC233のデータがある場合はリードキャッシュ内の不揮発性メモリ232のMLC234にデータを移動する(ステップ511)。次に、管理テーブル236のMLC234のデータのStatus306をUsedとし、MLC識別子305をセットし、管理テーブル236のリードキャッシュのSLC233のデータのStatus306をNot Usedにセットする(ステップ512)。
このようにキャッシュ内のデータのリードアクセス頻度307に応じて揮発性メモリ、SLC234、MLC234と段階的にデータの格納場所を変更することでリードアクセス頻度が高く、データが書き換えられることがないデータは下位のライト書き込み耐力の弱いMLC側に集約することができるためライト書き換え耐力の消耗を緩和させることが可能となる。
100 ホストシステム
200 ディスクサブシステム
210 制御部
211 RAM(Random Access Memory)
212 プロセッサ
213 ROM(Read Only Memory)
220 HDD
230 リードキャッシュ
231 リードキャッシュ内の揮発性メモリ
232 リードキャッシュ内の不揮発性メモリ
233 SLC(シングルレベルセルメモリ)
234 MLC(マルチレベルセルメモリ)
235 リードキャッシュ内の揮発性メモリのデータ管理テーブル
236 リードキャッシュ内不揮発性メモリのデータ管理テーブル
240 ライトキャッシュ
241 ライトキャッシュ内の揮発性メモリのデータ管理テーブル
301 Tag
302 アドレスLBA(Logical Block Address)
303 キャッシュアドレス
304 SLC識別子
305 MLC識別子
306 Status
307 リードアクセス頻度
200 ディスクサブシステム
210 制御部
211 RAM(Random Access Memory)
212 プロセッサ
213 ROM(Read Only Memory)
220 HDD
230 リードキャッシュ
231 リードキャッシュ内の揮発性メモリ
232 リードキャッシュ内の不揮発性メモリ
233 SLC(シングルレベルセルメモリ)
234 MLC(マルチレベルセルメモリ)
235 リードキャッシュ内の揮発性メモリのデータ管理テーブル
236 リードキャッシュ内不揮発性メモリのデータ管理テーブル
240 ライトキャッシュ
241 ライトキャッシュ内の揮発性メモリのデータ管理テーブル
301 Tag
302 アドレスLBA(Logical Block Address)
303 キャッシュアドレス
304 SLC識別子
305 MLC識別子
306 Status
307 リードアクセス頻度
Claims (2)
- ホストと、該ホストのデータを格納する記憶装置と、該記憶装置からの読み出しデータを格納するリードキャッシュと、前記記憶装置及び前記リードキャッシュを制御してホストからの要求を処理する制御部とを有する情報処理システムにおいて、前記リードキャッシュは、前記記憶装置からの読み出しデータが格納される揮発性メモリと、該揮発性メモリのデータがリードアクセス頻度に応じて移動して格納される第1の不揮発性メモリと、該第1の不揮発性メモリよりライト書き換え耐力が低く該第1の不揮発性メモリのデータがリードアクセス頻度に応じて移動して格納される第2の不揮発性メモリから成り、前記リードキャッシュは前記揮発性メモリを管理する第1の管理テーブルと前記第1及び第2の不揮発性メモリを管理する第2の管理テーブルを有し、前記制御部は前記ホストからのリード要求時に前記第1及び第2の管理テーブルを検索し、要求データがあった場合には該当メモリから読み出してホストに転送し、要求データがなかった場合には前記記憶装置から読み出して前記揮発性メモリに格納し、前記ホストに転送する情報処理システム。
- 前記第2の管理テーブルは当該テーブルに登録されたデータが前記第1の不揮発性メモリ又は前記第2の不揮発性メモリのいずれに格納されているかを示す識別子を有する請求項1記載の情報処理システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013024000A JP5953245B2 (ja) | 2013-02-12 | 2013-02-12 | 情報処理システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013024000A JP5953245B2 (ja) | 2013-02-12 | 2013-02-12 | 情報処理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014153969A JP2014153969A (ja) | 2014-08-25 |
| JP5953245B2 true JP5953245B2 (ja) | 2016-07-20 |
Family
ID=51575766
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013024000A Expired - Fee Related JP5953245B2 (ja) | 2013-02-12 | 2013-02-12 | 情報処理システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5953245B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10255182B2 (en) | 2015-02-11 | 2019-04-09 | Samsung Electronics Co., Ltd. | Computing apparatus and method for cache management |
| US10552042B2 (en) * | 2017-09-06 | 2020-02-04 | Samsung Electronics Co., Ltd. | Effective transaction table with page bitmap |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8166229B2 (en) * | 2008-06-30 | 2012-04-24 | Intel Corporation | Apparatus and method for multi-level cache utilization |
| TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
| US8838903B2 (en) * | 2010-02-04 | 2014-09-16 | Dataram, Inc. | Priority ordered multi-medium solid-state storage system and methods for use |
| JP5434738B2 (ja) * | 2010-03-26 | 2014-03-05 | 日本電気株式会社 | ディスク装置 |
| JP5541361B2 (ja) * | 2010-07-01 | 2014-07-09 | 日本電気株式会社 | 記憶装置、解放優先順位決定方法およびプログラム |
| JP5520747B2 (ja) * | 2010-08-25 | 2014-06-11 | 株式会社日立製作所 | キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体 |
-
2013
- 2013-02-12 JP JP2013024000A patent/JP5953245B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014153969A (ja) | 2014-08-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102569783B1 (ko) | 비순차적 구역 네임스페이스들 | |
| KR102370760B1 (ko) | 존 네임스페이스에 대한 존 형성 | |
| US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
| US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
| CN114730290B (zh) | 将变化日志表移动至与分区对准 | |
| US9489148B2 (en) | Selecting between non-volatile memory units having different minimum addressable data unit sizes | |
| US20180018259A1 (en) | Apparatus and method for low power low latency high capacity storage class memory | |
| US9923562B1 (en) | Data storage device state detection on power loss | |
| CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
| KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
| US10372382B2 (en) | Methods and apparatus for read disturb detection based on logical domain | |
| CN110674056B (zh) | 一种垃圾回收方法及装置 | |
| TW201011767A (en) | NAND error management | |
| JP2009163647A (ja) | ディスクアレイ装置 | |
| US9639287B1 (en) | Write command reporting | |
| US11016889B1 (en) | Storage device with enhanced time to ready performance | |
| CN102301428A (zh) | 存储器装置、存储器管理装置及存储器管理方法 | |
| JP2015135603A (ja) | ストレージ装置及びデータを書き込む記憶領域を選択する方法 | |
| KR101070511B1 (ko) | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 | |
| US10901866B2 (en) | Failure detection and data recovery in a storage system | |
| JP5953245B2 (ja) | 情報処理システム | |
| EP2381354A2 (en) | Data recording device | |
| JP5594647B2 (ja) | ストレージ装置及びその制御方法 | |
| CN114730291A (zh) | 具有分区的ssd的数据停放 | |
| US9785563B1 (en) | Read command processing for data storage system based on previous writes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150831 |
|
| 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: 20160517 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160613 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 5953245 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| LAPS | Cancellation because of no payment of annual fees |