JP2010015197A - ストレージ制御装置、データ復元装置およびストレージシステム - Google Patents

ストレージ制御装置、データ復元装置およびストレージシステム Download PDF

Info

Publication number
JP2010015197A
JP2010015197A JP2008171829A JP2008171829A JP2010015197A JP 2010015197 A JP2010015197 A JP 2010015197A JP 2008171829 A JP2008171829 A JP 2008171829A JP 2008171829 A JP2008171829 A JP 2008171829A JP 2010015197 A JP2010015197 A JP 2010015197A
Authority
JP
Japan
Prior art keywords
data
restoration
processing unit
padding
semiconductor 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.)
Abandoned
Application number
JP2008171829A
Other languages
English (en)
Inventor
Kazuhiro Fukutomi
和弘 福冨
Hideaki Sato
英昭 佐藤
Shinichi Sugano
伸一 菅野
Shigehiro Asano
滋博 浅野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008171829A priority Critical patent/JP2010015197A/ja
Priority to US12/398,608 priority patent/US7984325B2/en
Publication of JP2010015197A publication Critical patent/JP2010015197A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】パディング処理におけるデータ読み込みの際に、データが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合であっても、書き込み処理を続行することができるストレージ制御装置、データ復元装置およびストレージシステムを提供する。
【解決手段】パディング処理部22のパディング処理の際に、一の半導体記憶装置31のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、ストレージ制御装置20からデータ復元装置30に対してデータ復元要求を発行し、データ復元装置30側でデータ復元要求に応じ、他の半導体記憶装置31からデータを読み込んでデータの復元処理を行い、復元結果をストレージ制御装置20のパディング処理部22に返してパディング処理を実行する。
【選択図】 図3

Description

本発明は、ストレージ制御装置、データ復元装置およびストレージシステムに関する。
近年、記憶媒体の1つとして、NAND型フラッシュメモリが広く普及しつつある。NAND型フラッシュメモリは、電源供給を停止しても情報が保持可能である不揮発性メモリである。
このようなNAND型フラッシュメモリにおいては、大容量化および高集積化に伴って、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブの影響が顕著化しており、保存したデータが劣化することにより、記憶したデータを正しく再生できなくなる可能性が高まる、という問題が存在する。経年変化は、時間経過と共に、電荷を蓄積したフローティングゲートから次第に電荷が抜けることでデータに誤りが生じる現象である。また、リードディスターブは、データを読み出したメモリセルに隣接したメモリセルのフローティングゲートに微妙な電荷が蓄えられることによって、記憶したデータに誤りが生じる現象である。
そこで、NAND型フラッシュメモリにおいては、上述のような経年変化とリードディスターブの問題を解決すべく、発生したデータの誤りを訂正する誤り訂正符号(Error Correcting Code)を用いることで正しいデータを復元することが可能になっている。
加えて、NAND型フラッシュメモリにおいては、誤り訂正を行った後で、再びNAND型フラッシュメモリへ書き直すリフレッシュ処理を行うことで、NAND型フラッシュメモリ上へ記憶したデータが完全に破壊されることを防ぎ、データ保持期間を増加させることが可能になっている。
近年、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つNAND型フラッシュメモリが開発されており、SSD(Solid State Drive)と呼ばれている。このようなSSDは、HDDに比べてデータの読み込み性能に優れるとともに、低消費電力・耐衝撃性を有している。
ところで、NAND型フラッシュメモリにデータを記憶させる手法としては、ブロックと呼ばれる単位で一度データを消去してから書き込みを行うもの、ページと呼ばれる単位でデータの読み出しや書き込みを行うもの、これらの消去・読み出し・書き込みの単位が固定されていたりするものがある。
一方、サーバコンピュータ,ストレージシステムのコントローラ,パーソナルコンピュータなどのホスト機器が、HDDに代表される二次記憶装置に対してデータの読み出しおよび書き込みを行う単位は、セクタと呼ばれる。セクタは、NAND型フラッシュメモリのような半導体記憶素子の消去、読み出し、書き込みの単位とは独立に定められている。たとえば、半導体記憶素子のブロックの大きさ(ブロックサイズ)は512キロバイト、ページの大きさ(ページサイズ)は4キロバイトであるのに対して、ホスト機器のセクタの大きさ(セクタサイズ)は、512バイトのように定められている。
つまり、HDDに代えてSSDで二次記憶装置を構成する場合には、ホスト機器からのSSDのブロックサイズやページサイズより小さい書き込み要求(セクタサイズ)を、SSDのブロックサイズやページサイズに適合させて、SSDに書き込む必要がある。このような処理は、パディング処理と呼ばれている(例えば、非特許文献1参照)。
パディング処理によるデータ書き込み処理の概要を以下に説明する。
(1)ホスト機器から、SSDで構成された二次記憶装置に対して、SSDのブロックサイズやページサイズより小さいデータサイズ(セクタサイズ)の書き込み要求が送られる。
(2)SSDで構成された二次記憶装置内部の作業領域に書き込み要求のデータを保存するとともに、書き込み先領域内の書き込み要求に応じた更新部分を除く未変更部分のデータをパディング用データとして読み込んで作業領域に書き込み要求のデータとともに保存する。
(3)書き込み先領域の削除処理を行った後、作業領域のデータ(書き込み要求のデータおよびパディング用データ)を書き込み先領域に書き込む。
4.4BSDの設計と実装 Marshall Kirk McKusickほか 著、砂原秀樹 監訳、七丈直弘 訳 P.233 6.2ブロックデバイス
ところが、上述したようなパディング処理においては、書き込み先領域内の書き込み要求に応じた更新部分を除く未変更部分のデータをパディング用データとして読み込む際に、読み出し処理に伴うデータ破損であるリードディスターブが生じた場合であって、誤り訂正符号(Error Correcting Code)による誤り訂正ができずにデータ読み込みエラーが起きた場合には、書き込み要求のデータおよびSSD自体には何も問題はなくとも、書き込み処理を続行することができないと判定されてしまう、という問題がある。
本発明は、上記に鑑みてなされたものであって、パディング処理におけるデータ読み込みの際に、データが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合であっても、書き込み処理を続行することができるストレージ制御装置、データ復元装置およびストレージシステムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明のストレージ制御装置は、不揮発性の半導体記憶装置に対する書き込み要求のサイズを、前記半導体記憶装置に対する書き込みサイズに適合させるパディング処理を実行するパディング処理部と、前記パディング処理部のパディング処理によって前記半導体記憶装置に対する書き込みサイズに適合させられた前記書き込み要求を、前記半導体記憶装置に書き込む書き込み部と、前記パディング処理部のパディング処理の際に、前記半導体記憶装置のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、データの破損を復元するデータ復元装置に対してデータ復元要求を発行する復元要求処理部と、を備え、前記パディング処理部は、前記データ復元要求に応じて復元された復元データを前記データ復元装置から受け取って前記パディング処理を実行する、ことを特徴とする。
また、本発明のデータ復元装置は、不揮発性の半導体記憶装置を制御するストレージ制御装置から発行された破損データのデータ復元要求に応じ、前記破損データを含まない他の前記半導体記憶装置からデータを読み込み、データの復元処理を行う復元処理部と、前記復元処理部による復元結果を前記ストレージ制御装置へ出力する復元結果出力部と、を備えることを特徴とする。
また、本発明のストレージシステムは、不揮発性の半導体記憶装置に対する書き込み要求のサイズを、前記半導体記憶装置に対する書き込みサイズに適合させるパディング処理を実行するパディング処理部と、前記パディング処理部のパディング処理によって前記半導体記憶装置に対する書き込みサイズに適合させられた前記書き込み要求を、前記半導体記憶装置に書き込む書き込み部と、前記パディング処理部のパディング処理の際に、前記半導体記憶装置のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、データ復元要求を発行する復元要求処理部と、前記復元要求処理部から発行された前記データ復元要求に応じ、他の前記半導体記憶装置からデータを読み込み、データの復元処理を行う復元処理部と、前記復元処理部による復元結果を前記パディング処理部へ出力する復元結果出力部と、を備え、前記パディング処理部は、前記復元結果を用いて前記パディング処理を実行する、ことを特徴とする。
本発明によれば、パディング処理部のパディング処理の際に、一の半導体記憶装置のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、ストレージ制御装置からデータ復元装置に対してデータ復元要求を発行し、データ復元装置側でデータ復元要求に応じ、他の半導体記憶装置からデータを読み込んでデータの復元処理を行い、復元結果をストレージ制御装置のパディング処理部に返してパディング処理を実行するようにしたことにより、例えデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合であっても、データ復元装置の復元機能(例えば、RAID機能)と組み合わせることで当該データを他の半導体記憶装置に保存していたデータから復元することができるので、半導体記憶装置内部での誤り訂正能力を超えた誤り訂正が可能となり、書き込み処理を続行することができる、という効果を奏する。
以下に添付図面を参照して、この発明にかかるストレージ制御装置、データ復元装置およびストレージシステムの最良な実施の形態を詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
本発明の実施の一形態を図1ないし図8に基づいて説明する。図1は、本発明の第1の実施の形態にかかるストレージシステム100の概略構成を示すブロック図である。図1に示すように、ストレージシステム100は、PC(Personal Computer)等のホスト装置10と、RAID(Redundant Arrays of Inexpensive Disks)コントローラ30と、ストレージ装置40とで構成されている。ストレージ装置40は、ストレージ制御装置として機能するコントローラ20と、不揮発性半導体記憶装置31とを複数組有している。なお、図1においては、コントローラ20と不揮発性半導体記憶装置31とを別体で設けたが、コントローラ20は、不揮発性半導体記憶装置31内にそれぞれ組み込まれるものであっても良い。
ホスト装置10は、RAIDコントローラ30を介してコントローラ20に対してデータの書き込みや読み込みを要求する指示情報を出力する。以下、データの書き込みを要求する指示情報を「書き込み要求」と呼び、データの読み込みを要求する指示情報を「読み込み要求」と呼ぶ。なお、RAIDコントローラ30を介してホスト装置10からコントローラ20に出力される書き込み要求には、少なくとも書き込み対象のデータが含まれているものとし、また、読み込み要求には、読み込み先となる複数の不揮発性半導体記憶装置31のアドレス情報(例えば、LBA:Logical Block Addressing)が含まれているものとする。
不揮発性半導体記憶装置31は、不揮発性半導体素子を利用した記憶媒体であり、例えば、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つNAND型フラッシュメモリ(不揮発性半導体素子)であるSSD(Solid State Drive)などがある。本実施の形態では、SSDを例とするが特に限定されるものではない。
RAIDコントローラ30は、PC等に内蔵される耐障害性・冗長性を持つRAID構成のストレージシステムにおけるデータ復元装置である。RAIDコントローラ30は、複数の不揮発性半導体記憶装置31を、データの破損を回避するRAID技術を用いて管理し、これら複数の不揮発性半導体記憶装置31により論理的に構成される記憶領域に対し、データの書き込みや読み出しをホスト装置10からの要求に応じて実行する。
具体的に、RAIDコントローラ30は、複数の不揮発性半導体記憶装置31をRAID1、5、6の何れか又はこれらの組み合わせとした構成とすることで、複数の不揮発性半導体記憶装置31の耐障害性・冗長性を実現している。以下、本実施の形態では複数の不揮発性半導体記憶装置31をRAID5の構成とした態様について説明する。
RAID5は、パリティと呼ばれる誤り訂正符号の記憶用に割り当てる記憶装置と、データの記憶用に割り当てる記憶装置とを、ストライプ毎に順次変更するものである。RAID5を実装するディスクアレイ装置では、耐障害性の向上、大容量化、リード処理の高速化が実現できる。
図2は、RAID5で構成された複数の不揮発性半導体記憶装置31の記憶領域を示す模式図である。なお、図2は4台の不揮発性半導体記憶装置31(不揮発性半導体記憶装置311〜314)により構成した例であり、当該複数の不揮発性半導体記憶装置31の記憶領域に記憶された12個のデータA〜Lの状態を示している。
RAID5を構成する不揮発性半導体記憶装置31の記憶領域は、コントローラ20により、データの書き込みまたは読み込みの単位となる複数の論理ブロックに分割される。図2に示した例では、データA〜Lの夫々やパリティP1〜P4の夫々が格納された領域が、1つの論理ブロックを示している。
ここで、パリティP1〜P4は、同一のストライプ領域(0〜3)に属する複数のデータから算出された復元情報であって、この復元情報に基づいて同一のストライプ領域に属するデータを復元することが可能となっている。例えば、パリティP1はストライプ番号0に属するデータA、B、Cから生成されており、このパリティP1を用いることで、データA、B、Cのうち何れか一のデータにエラーが発生した場合、残りのデータとパリティP1とからエラーの発生したデータを復元することができる。なお、データが格納される論理ブロック及びパリティが格納される論理ブロック(以下、パリティ領域という)は、所定のルールに基づき定められているものとするが、その配置位置は図2の例に限定されないものとする。
複数の不揮発性半導体記憶装置31は、RAIDコントローラ30によるRAID管理の下、データを記憶する。なお、不揮発性半導体記憶装置31の個数は、RAIDコントローラ30が使用するRAIDの規約に応じた個数(例えば、RAID1であれば2個以上、RAID5ならば3個以上)であれば特に問わないものとする。
<コントローラ20の説明>
次に、図3を参照して、コントローラ20の構成および処理について詳細に説明する。図3は、コントローラ20の詳細構成を示すブロック図である。コントローラ20は、ASICやCPU等の処理装置、コントローラ20の動作を制御する所定のプログラムが格納されたROMや当該処理装置のワーク領域となるRAM等の記憶装置を備えており(何れも図示せず)、当該処理装置と記憶装置に格納されたプログラムとの協働により、図3に示すように、ホストインタフェース部21、パディング処理部22、コマンド処理部23、復元要求処理部24、ストレージインタフェース部25の各機能部を実現するものとする。
ホストインタフェース部21は、ホスト装置10(RAIDコントローラ30)と接続するためのインタフェース装置であって、ホスト装置10(RAIDコントローラ30)とコントローラ20(コマンド処理部23および復元要求処理部24)との間で行われるコマンドの授受を制御する。
ストレージインタフェース部25は、不揮発性半導体記憶装置31と接続するためのインタフェース装置であって、不揮発性半導体記憶装置31とコントローラ20(コマンド処理部23)との間で行われるデータの授受を制御する。
コマンド処理部23は、ホストインタフェース部21を介して入力されるホスト装置10からの要求に応じた不揮発性半導体記憶装置31に対するデータの書き込みや読み込みを、ストレージインタフェース部25を介して行う。特に、コマンド処理部23は、不揮発性半導体記憶装置31に対するデータの書き込みについては、パディング処理部22のパディング処理後に行う。
パディング処理部22は、SSDである不揮発性半導体記憶装置31を用いる場合に、HDDと同じ接続インタフェース規格(ATA規格)を持つために生じるホスト装置10からのSSDのブロックサイズやページサイズより小さい書き込み要求(セクタサイズ)を(図4参照)、SSDのブロックサイズやページサイズに適合させて、SSDに書き込む処理であるパディング処理を実行する。
図5は、パディング処理を含むデータ書き込み処理の概要を示す模式図である。図5に示すように、ホスト装置10から、SSDである不揮発性半導体記憶装置31に対して、SSDのブロックサイズやページサイズより小さいデータサイズ(セクタサイズ)の書き込み要求が送られると、SSDである不揮発性半導体記憶装置31の内部の作業領域33に書き込み要求のデータを保存するとともに、SSDである不揮発性半導体記憶装置31の書き込み先領域32内の書き込み要求に応じた更新部分を除く未変更部分のデータをパディング用データとして読み込んで作業領域33に書き込み要求のデータとともに保存してパディング処理を完了する(図5の(1))。そして、書き込み先領域32の削除処理を行った後、作業領域33のデータ(書き込み要求のデータおよびパディング用データ)を書き込み先領域32に書き込む(図5の(2))。これにより、ホスト装置10からのSSDのブロックサイズやページサイズより小さい書き込み要求(セクタサイズ)を、SSDのブロックサイズやページサイズに適合させることができる。
ところで、SSDを構成する不揮発性半導体素子がNAND型フラッシュメモリの場合、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブ等の理由により、記憶セル上のデータが破損する可能性がある。一般に、NAND型フラッシュメモリを記録媒体とする記憶装置においては、誤り訂正符号(Error Correcting Code)を用いることで破損したデータから正しいデータを復元することが可能になっている。しかしながら、誤り訂正符号(Error Correcting Code)を用いても必ずしも全ての誤りを訂正できるとは限らず、この場合、データを読み込み時にエラーが発生することになる。
そこで、本実施の形態においては、パディング処理部22のパディング処理における書き込み先領域32の未変更部分のデータ読み込みの際に、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブが生じた場合であって、データの誤りを訂正する誤り訂正符号(Error Correcting Code)を用いてもデータの復元ができなかった場合には、コマンド処理部23が、復元要求処理部24に対して当該データ復元要求をRAIDコントローラ30に対して発行するように指示を出す。
復元要求処理部24は、ホストインタフェース部21を介してRAIDコントローラ30に対してデータ復元要求を発行するとともに、後述するRAIDコントローラ30から出力される復元結果を受け取り、復元結果をコマンド処理部23に返す。
そして、コマンド処理部23が復元要求処理部24から受け取った復元データをパディング処理部22に渡すと、パディング処理部22は復元要求処理部24から受け取った復元データをSSDである不揮発性半導体記憶装置31の内部の作業領域33に書き込み要求のデータとともに保存し、SSDのブロックサイズやページサイズに適合させてパディング処理を完了する。その後、コマンド処理部23は、書き込み部として機能し、書き込み先領域32のデータを削除し、作業領域33のデータを書き込み先領域32に書き込む。
<RAIDコントローラ30の説明>
次に、図6を参照して、RAIDコントローラ30の構成および処理について詳細に説明する。図6は、RAIDコントローラ30の詳細構成を示すブロック図である。図6に示すRAIDコントローラ30は、上述したような複数の不揮発性半導体記憶装置31を接続し、ある特定の不揮発性半導体記憶装置31が故障してデータの読み込みができなくなった場合でも、その不揮発性半導体記憶装置31に保存していたデータを、その他の不揮発性半導体記憶装置31に保存していたデータから復元できるような、耐障害性・冗長性を持つRAID構成のストレージシステムにおけるRAIDコントローラを想定している。
RAIDコントローラ30は、ASICやCPU等の処理装置、RAIDコントローラ30の動作を制御する所定のプログラムが格納されたROMや当該処理装置のワーク領域となるRAM等の記憶装置を備えており(何れも図示せず)、当該処理装置と記憶装置に格納されたプログラムとの協働により、図6に示すように、インタフェース部11、復元要求処理部12、復元処理部13の各機能部を実現するものとする。
インタフェース部11は、コントローラ20と接続するためのインタフェース装置であって、コントローラ20とRAIDコントローラ30(復元要求処理部12および復元処理部13)との間で行われるコマンドの授受を制御する。
復元要求処理部12は、インタフェース部11を介してコントローラ20から発行されたデータ復元要求を受け取り、受け取ったデータ復元要求を復元処理部13に渡す。
復元処理部13は、復元要求処理部12からデータ復元要求を受け取ると、当該データ復元に必要なデータを他の不揮発性半導体記憶装置31(SSD)から読み込み、データの復元を試みる。より詳細には、復元処理部13は、読み込みエラーが発生したデータについて、当該データと同一のストライプ領域に属する他のデータ及びパリティを用いて、読み込みエラーが発生したデータの復元を行う。
復元処理部13は、復元結果出力部としても機能し、当該データを復元できた場合は、インタフェース部11を介して復元結果をコントローラ20に対して出力する。
これにより、パディング処理部22のパディング処理における書き込み先領域32の未変更部分のデータ読み込みの際に、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブが生じた場合であってデータの誤りを訂正する誤り訂正符号(Error Correcting Code)を用いてもデータの復元ができなかった場合には、データの破損について、RAIDコントローラ30の復元処理部13が読み込みエラーの発生したデータを当該データと同一のストライプ領域に属する他のデータ及びパリティに基づいて復元し、コントローラ20のパディング処理部22はRAIDコントローラ30から受け取った復元データをSSDである不揮発性半導体記憶装置31の内部の作業領域33に書き込み要求のデータとともに保存し、SSDのブロックサイズやページサイズに適合させてパディング処理を完了する。その後、コマンド処理部23は、書き込み先領域32のデータを削除し、作業領域33のデータを書き込み先領域32に書き込ませる。
<コントローラ20の書き込み処理>
次に、コントローラ20の書き込み処理の流れについて説明する。図7は、コントローラ20により実行される書き込み処理の流れを示すフローチャートである。なお、本処理の前提として、複数の不揮発性半導体記憶装置31はRAID5で構成されているものとし、データの書き込みは複数の不揮発性半導体記憶装置31のストライプ単位で行われるものとする。
コントローラ20のコマンド処理部23は、書き込み要求を受け取ると(ステップS1)、書き込み要求がSSDのブロックサイズに合致したデータサイズであるか否かを判断する(ステップS2)。
書き込み要求がSSDのブロックサイズに合致したデータサイズでない場合、パディング処理部22によるパディング処理前である場合には(ステップS2のNo)、パディング処理部22は、SSDである不揮発性半導体記憶装置31の書き込み先領域32内の書き込み要求に応じた更新部分を除く未変更部分のデータをパディング用データとして読み込む(ステップS3)。
読み込みエラーが起きなかった場合には(ステップS4のNo)、読み取った未変更部分のデータ(パディング用データ)を書き込み要求のデータとともに作業領域33に保存する(ステップS5)。上述のようなステップS3〜S5の処理は、SSDのブロックサイズに合致したデータサイズになるまで繰り返される。
SSDのブロックサイズに合致したデータサイズになったと判断された場合(ステップS2のYes)、コマンド処理部23は、書き込み先領域32の削除処理を行った後(ステップS6)、作業領域33のデータ(書き込み要求のデータおよびパディング用データ)を書き込み先領域32に書き込み(ステップS7)、書き込み成功の応答をRAIDコントローラ30(ホスト装置10)に返す(ステップS8)。
一方、データの誤りを訂正する誤り訂正符号(Error Correcting Code)を用いてもデータの復元ができず、読み込みエラーが起きた場合には(ステップS4のYes)、復元要求処理部24は、ホストインタフェース部21を介してRAIDコントローラ30に対してデータ復元要求を発行する(ステップS9)。
その後、復元要求処理部24は、RAIDコントローラ30から出力される復元結果を受け取ると、復元結果をコマンド処理部23に返し(ステップS10のYes)、コマンド処理部23はデータの復元ができたか否かを判断する(ステップS11)。
コマンド処理部23がデータの復元ができないと判断した場合には(ステップS11のNo)、書き込み失敗の応答をRAIDコントローラ30(ホスト装置10)に返す(ステップS12)。
コマンド処理部23がデータの復元ができたと判断した場合には(ステップS11のYes)、ステップS5に戻り、パディング処理部22は受け取った復元データを書き込み要求のデータとともに作業領域33に保存する(ステップS5)。
<RAIDコントローラ30のデータ復元処理>
次に、RAIDコントローラ30のデータ復元処理の流れについて説明する。図8は、RAIDコントローラ30により実行されるデータ復元処理の流れを示すフローチャートである。
RAIDコントローラ30の復元要求処理部12は、インタフェース部11を介してコントローラ20から発行されたデータ復元要求を受け取ると(ステップS21のYes)、復元処理部13は、当該データ復元に必要なデータを他の不揮発性半導体記憶装置31(SSD)から読み込み、データの復元を試みる(ステップS22)。
復元処理部13は、当該データを復元できた場合には(ステップS23のYes)、インタフェース部11を介して復元結果(復元データ)をコントローラ20に対して出力し、復元成功の応答を返す(ステップS24)。
一方、復元処理部13は、当該データを復元できなかった場合には(ステップS23のNo)、復元失敗の応答を返す(ステップS25)。
このように本実施の形態によれば、パディング処理部22のパディング処理におけるデータ読み込みの際に、RAIDが構成された複数の不揮発性半導体記憶装置31のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、コントローラ20からRAIDコントローラ30に対してデータ復元要求を発行し、RAIDコントローラ30側でデータ復元要求に応じ、RAIDを構成する他の半導体記憶装置31からデータを読み込んでデータの復元処理を行い、復元結果をコントローラ20のパディング処理部22に返してパディング処理を実行するようにしたことにより、例えデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合であっても、RAID機能と組み合わせることで当該データを他の半導体記憶装置31に保存していたデータから復元することができるので、半導体記憶装置31の内部での誤り訂正能力を超えた誤り訂正が可能となり、書き込み処理を続行することができる。
なお、本実施の形態においては、データ復元装置としてRAID構成のストレージシステムにおけるRAIDコントローラ30を想定しているが、専用のストレージシステムではなく、そのような機能を持ったコンピュータシステムでもよい。
また、データ復元処理は、たとえば耐障害性・冗長性を持つストレージシステムのデータ復元処理を利用するのではなく、専用に設計されたものを利用してもよい。
本発明の第1の実施の形態にかかるストレージシステムの概略構成を示すブロック図である。 RAID5で構成されたストレージの記憶領域を示す模式図である。 コントローラの詳細構成を示すブロック図である。 書き込み要求のサイズを示す模式図である。 パディング処理を含むデータ書き込み処理の概要を示す模式図である。 RAIDコントローラの詳細構成を示すブロック図である。 コントローラにより実行される書き込み処理の流れを示すフローチャートである。 RAIDコントローラにより実行されるデータ復元処理の流れを示すフローチャートである。
符号の説明
13 復元処理部、復元結果出力部
20 ストレージ制御装置
22 パディング処理部
23 書き込み部
24 復元要求処理部
30 データ復元装置
31 半導体記憶装置
100 ストレージシステム

Claims (6)

  1. 不揮発性の半導体記憶装置に対する書き込み要求のサイズを、前記半導体記憶装置に対する書き込みサイズに適合させるパディング処理を実行するパディング処理部と、
    前記パディング処理部のパディング処理によって前記半導体記憶装置に対する書き込みサイズに適合させられた前記書き込み要求を、前記半導体記憶装置に書き込む書き込み部と、
    前記パディング処理部のパディング処理の際に、前記半導体記憶装置のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、データの破損を復元するデータ復元装置に対してデータ復元要求を発行する復元要求処理部と、
    を備え、
    前記パディング処理部は、前記データ復元要求に応じて復元された復元データを前記データ復元装置から受け取って前記パディング処理を実行する、
    ことを特徴とするストレージ制御装置。
  2. 前記データ復元装置は、RAID(Redundant Arrays of Inexpensive Disks)コントローラである、
    ことを特徴とする請求項1記載のストレージ制御装置。
  3. 前記不揮発性の半導体記憶装置は、ハードディスクドライブと同じ接続インタフェース規格を持つNAND型フラッシュメモリであるSSD(Solid State Drive)を記録媒体とする、
    ことを特徴とする請求項1記載のストレージ制御装置。
  4. 不揮発性の半導体記憶装置を制御するストレージ制御装置から発行された破損データのデータ復元要求に応じ、前記破損データを含まない他の前記半導体記憶装置からデータを読み込み、データの復元処理を行う復元処理部と、
    前記復元処理部による復元結果を前記ストレージ制御装置へ出力する復元結果出力部と、
    を備えることを特徴とするデータ復元装置。
  5. 前記不揮発性の半導体記憶装置は、ハードディスクドライブと同じ接続インタフェース規格を持つNAND型フラッシュメモリであるSSD(Solid State Drive)を記録媒体とする、
    ことを特徴とする請求項4記載のデータ復元装置。
  6. 不揮発性の半導体記憶装置に対する書き込み要求のサイズを、前記半導体記憶装置に対する書き込みサイズに適合させるパディング処理を実行するパディング処理部と、
    前記パディング処理部のパディング処理によって前記半導体記憶装置に対する書き込みサイズに適合させられた前記書き込み要求を、前記半導体記憶装置に書き込む書き込み部と、
    前記パディング処理部のパディング処理の際に、前記半導体記憶装置のデータが破損した場合であって、データの誤りを訂正する誤り訂正符号を用いてもデータの復元ができなかった場合に、データ復元要求を発行する復元要求処理部と、
    前記復元要求処理部から発行された前記データ復元要求に応じ、他の前記半導体記憶装置からデータを読み込み、データの復元処理を行う復元処理部と、
    前記復元処理部による復元結果を前記パディング処理部へ出力する復元結果出力部と、
    を備え、
    前記パディング処理部は、前記復元結果を用いて前記パディング処理を実行する、
    ことを特徴とするストレージシステム。
JP2008171829A 2008-06-30 2008-06-30 ストレージ制御装置、データ復元装置およびストレージシステム Abandoned JP2010015197A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008171829A JP2010015197A (ja) 2008-06-30 2008-06-30 ストレージ制御装置、データ復元装置およびストレージシステム
US12/398,608 US7984325B2 (en) 2008-06-30 2009-03-05 Storage control device, data recovery device, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008171829A JP2010015197A (ja) 2008-06-30 2008-06-30 ストレージ制御装置、データ復元装置およびストレージシステム

Publications (1)

Publication Number Publication Date
JP2010015197A true JP2010015197A (ja) 2010-01-21

Family

ID=41449061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008171829A Abandoned JP2010015197A (ja) 2008-06-30 2008-06-30 ストレージ制御装置、データ復元装置およびストレージシステム

Country Status (2)

Country Link
US (1) US7984325B2 (ja)
JP (1) JP2010015197A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539132A (ja) * 2010-09-28 2013-10-17 ピュア・ストレージ・インコーポレイテッド Ssd環境のための適応的raid
US9208863B1 (en) 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
CA2745646C (en) 2009-04-21 2017-09-19 International Business Machines Corporation Apparatus and method for controlling a solid state disk (ssd) device
JP5668279B2 (ja) * 2009-08-06 2015-02-12 ソニー株式会社 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
JP2012022422A (ja) * 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置
JP5279785B2 (ja) 2010-09-17 2013-09-04 株式会社東芝 コントローラ、記憶装置、およびプログラム
US8707122B1 (en) * 2011-02-08 2014-04-22 Pmc-Sierra Us, Inc. Nonvolatile memory controller with two-stage error correction technique for enhanced reliability
US8756474B2 (en) * 2011-03-21 2014-06-17 Denso International America, Inc. Method for initiating a refresh operation in a solid-state nonvolatile memory device
US8799745B2 (en) * 2011-04-12 2014-08-05 Hitachi, Ltd. Storage control apparatus and error correction method
US8694855B1 (en) 2011-11-02 2014-04-08 Pmc-Sierra Us, Inc. Error correction code technique for improving read stress endurance
US8694849B1 (en) 2011-12-19 2014-04-08 Pmc-Sierra Us, Inc. Shuffler error correction code system and method
TWI479315B (zh) * 2012-07-03 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
JP2014056445A (ja) * 2012-09-12 2014-03-27 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
US8995302B1 (en) 2013-01-16 2015-03-31 Pmc-Sierra Us, Inc. Method and apparatus for translated routing in an interconnect switch
US9128858B1 (en) 2013-01-29 2015-09-08 Pmc-Sierra Us, Inc. Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US8990661B1 (en) 2013-03-05 2015-03-24 Pmc-Sierra Us, Inc. Layer specific attenuation factor LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10133500B2 (en) 2013-03-06 2018-11-20 Ab Initio Technology Llc Managing operations on stored data units
US9875054B2 (en) * 2013-03-06 2018-01-23 Ab Initio Technology Llc Managing operations on stored data units
US9959070B2 (en) 2013-03-06 2018-05-01 Ab Initio Technology Llc Managing operations on stored data units
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US8935598B1 (en) 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding
US8984376B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for avoiding error mechanisms in layered iterative decoding
US8984365B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9235467B2 (en) 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method with reference voltage partitioning for low density parity check decoding
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
CN104937577B (zh) * 2013-03-15 2018-11-30 慧与发展有限责任合伙企业 支持扩展写入的存储器模块控制器
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US10289507B1 (en) * 2015-10-27 2019-05-14 Pavilion Data Systems, Inc. Distributed rebuild of failed storage device
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
CN116431072A (zh) 2017-06-12 2023-07-14 净睿存储股份有限公司 集成到大容量存储设备的可访问快速耐久存储
US10789020B2 (en) 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
US11592991B2 (en) * 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10825477B2 (en) * 2018-08-02 2020-11-03 Western Digital Technologies, Inc. RAID storage system with logical data group priority
US11132256B2 (en) 2018-08-03 2021-09-28 Western Digital Technologies, Inc. RAID storage system with logical data group rebuild
KR20200113047A (ko) 2019-03-20 2020-10-06 삼성전자주식회사 오픈 채널 스토리지 장치의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9606927D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
US6119201A (en) * 1997-02-19 2000-09-12 International Business Machines Corporation Disk under-run protection using formatted padding sectors
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US7171594B2 (en) * 2002-03-06 2007-01-30 Hewlett-Packard Development Company, L.P. Pausing a transfer of data
JP4679943B2 (ja) * 2005-03-23 2011-05-11 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法
JP4413840B2 (ja) 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4660353B2 (ja) 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP4575288B2 (ja) 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP2008217857A (ja) 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
KR20090042039A (ko) * 2007-10-25 2009-04-29 삼성전자주식회사 불휘발성 메모리 장치의 데이터 관리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539132A (ja) * 2010-09-28 2013-10-17 ピュア・ストレージ・インコーポレイテッド Ssd環境のための適応的raid
JP2016105320A (ja) * 2010-09-28 2016-06-09 ピュア・ストレージ・インコーポレイテッド Ssd環境のための適応的raid
US9208863B1 (en) 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Also Published As

Publication number Publication date
US7984325B2 (en) 2011-07-19
US20090327802A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
JP2010015197A (ja) ストレージ制御装置、データ復元装置およびストレージシステム
JP5404804B2 (ja) ストレージサブシステム
JP5242264B2 (ja) データ制御装置、ストレージシステムおよびプログラム
US10917118B2 (en) Memory system
US8046528B2 (en) Data writing method for flash memory, and flash memory controller and storage device thereof
JP4059472B2 (ja) メモリカード及びメモリコントローラ
JP2010015195A (ja) 記憶制御装置及び記憶制御方法
US10762967B2 (en) Recovering from failure in programming a nonvolatile memory
TW201916018A (zh) 資料儲存裝置與將資料寫入記憶體裝置之方法
JP2008287404A (ja) 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
JP2009129070A (ja) フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP2008009635A (ja) ストレージシステム及びそのデータ保護方法
JP2005293363A (ja) ディスクアレイコントローラおよび情報処理装置
JP2014096072A (ja) ミラー構成を有するディスクアレイ及びそのリビルド方法
JP4775969B2 (ja) 不揮発性記憶装置
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
US10437490B2 (en) Reading of start-up information from different memory regions of a memory system
JP5579431B2 (ja) ソリッド・ステート・ドライブ装置および平準化管理情報の退避・回復方法
TWI744049B (zh) 記憶體控制器與資料處理方法
JP5306745B2 (ja) フラッシュメモリの管理方法及びフラッシュメモリデバイス
JP2008191701A (ja) エラー回復処理方法および情報処理装置
JP6052288B2 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
CN105808386A (zh) 硬盘数据恢复校验方法
JP2005107839A (ja) アレイコントローラ及びディスクアレイ再構築方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20110616