ソリッド・ステート・ドライブ装置およびミラー構成再構成方法
【課題】可用性を向上させ、かつ、価格を抑制することが可能なミラー構成のSSD装置を提供する。
【解決手段】SSD装置1は、A系とB系とからなるミラー構成の不揮発データ記憶部20および不揮発データ記憶制御部10を備え、不揮発データ記憶制御部10は、ページ・リード・ライト制御部11、アドレス変換処理部13、物理アドレス選択処理部14、アドレス変換テーブル15を備える。ページ・リード・ライト制御部11は、NVMチップ21の故障を検出したとき、その故障したNVMチップ21とミラー関係にあるNVMチップ21からページデータを読み出し、その読み出したページデータを、故障したNVMチップ21およびそれとミラー関係にあるNVMチップ21以外の、A系およびB系の不揮発データ記憶部20のそれぞれに属し、互いにミラー関係にあるNVMチップ21へコピーする。
【解決手段】SSD装置1は、A系とB系とからなるミラー構成の不揮発データ記憶部20および不揮発データ記憶制御部10を備え、不揮発データ記憶制御部10は、ページ・リード・ライト制御部11、アドレス変換処理部13、物理アドレス選択処理部14、アドレス変換テーブル15を備える。ページ・リード・ライト制御部11は、NVMチップ21の故障を検出したとき、その故障したNVMチップ21とミラー関係にあるNVMチップ21からページデータを読み出し、その読み出したページデータを、故障したNVMチップ21およびそれとミラー関係にあるNVMチップ21以外の、A系およびB系の不揮発データ記憶部20のそれぞれに属し、互いにミラー関係にあるNVMチップ21へコピーする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性半導体メモリによるミラー構成のソリッド・ステート・ドライブ装置(以下、SSD装置と略称)、および、そのSSD装置において故障チップが生じた場合にミラー構成を再構成するミラー構成再構成方法に関する。
【背景技術】
【0002】
近年、不揮発性半導体メモリであるフラッシュメモリの大容量化と低価格化に伴い、フラッシュメモリを用いて構成したSSD装置がハードディスク装置の代替記憶装置として普及の兆しをみせている。一般に、SSD装置は、ハードディスク装置で必須の可動部品が不要であるため、高速かつ高信頼であるとされている。しかしながら、フラッシュメモリは、低価格化してきたとはいえ、同一の記憶容量で比較すれば、ハードディスク装置に比べ高価である。
【0003】
ところで、複数のハードディスク装置を冗長構成することによって信頼性を向上させる技術として、RAID(Redundant Arrays of Inexpensive (or Independent) Disks)がある。RAIDの構成には様々なものがあるが、その中で、比較的簡単な構成で、かつ、実用的な高信頼性が得られる構成として、ミラー構成(いわゆる、RAID1)がある。
【0004】
ミラー構成は、少なくとも2台のハードディスク装置で構成されるものであり、その2台のハードディスク装置には全く同じデータが記憶される。従って、いずれか一方のハードディスク装置が故障しても、その故障したハードディスク装置に記憶されていたデータは、他方のハードディスク装置に残っていることになる。従って、データが保全される意味において、信頼性が向上する。しかしながら、ミラー構成の場合、1台のハードディスク装置が故障した場合には、システムを停止させ、その故障したハードディスク装置を新しいハードディスク装置と取り替えることが必要となる。従って、ミラー構成のハードディスク装置の可用性は、必ずしも高いとはいえない。
【0005】
RAIDには、信頼性や可用性をさらに向上させた構成としてRAID1+5などの構成があるが、より多くのハードディスク装置が必要となる(ちなみに、RAID1+5では、少なくとも6台が必要)。
【0006】
また、特許文献1には、3台のハードディスク装置でミラーリングを行い、可用性を向上させたディスク記憶システムの例が開示されている。3台のハードディスク装置でミラーリングを行えば、そのいずれかが故障しても他の2台のハードディスク装置でミラーリングを継続することができる。従って、その可用性は高い。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−316525号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来技術よれば、高信頼性と可用性を兼ね備えたディスク記憶システムを実現しようとすれば、前記のように少なくとも3台のハードディスク装置が必要となる。従って、単純にハードディスク装置をSSD装置に置き換えることよって、従来と同様の構成の記憶システムを実現しようとすれば、その価格は極めて高価なものとなってしまう。
【0009】
本発明は、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のSSD装置およびSSD装置のミラー構成再構成方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明のSSD装置は、それぞれが複数の不揮発性メモリチップからなるミラー構成の2系統の不揮発データ記憶部と、そのミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成される。
また、その不揮発データ記憶制御部は、不揮発データ記憶部に記憶するページデータの論理アドレスと物理アドレスとを対応付けるアドレス変換テーブルと、不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、アドレス変換テーブルを参照して論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、を含んで構成される。
そして、前記ページ・リード・ライト制御部は、前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、その故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、故障した不揮発性メモリチップおよびその故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーする。
【0011】
以上のように、本発明のSSD装置におけるページ・リード・ライト制御部は、不揮発性メモリチップの故障を検出したときには、その故障チップと同じページデータを記憶している反対側系統に属する不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、前記2系統の不揮発データ記憶部それぞれに属する故障していない不揮発性メモリチップへコピーする。従って、本発明のSSD装置においては、ある不揮発性メモリチップが故障して、一時的にSSD装置のミラー構成が崩れても、速やかにミラー構成が再構成される。
【0012】
つまり、本発明のSSD装置は、2系統の不揮発データ記憶部のミラー構成であるが、一方の系統で故障チップが発生したとき、速やかに不揮発データ記憶部のミラー構成を再構成することができる。そのため、故障チップを取り替えたり、故障チップを含んだ系統の不揮発データ記憶部全体を取り替えたりする必要はない。従って、可用性向上のために、3重化などより高度な冗長構成にする必要がないので、価格を抑制した可用性の高いミラー構成のSSD装置が実現される。
【発明の効果】
【0013】
本発明によれば、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のSSD装置およびSSD装置のミラー構成再構成方法が提供される。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係るSSD装置の構成の例を示した図。
【図2】本発明の実施形態に係るSSD装置で用いられるNVMチップの内部構成の例を示した図。
【図3】アドレス変換テーブルおよび故障チップテーブルの構成の例を示した図。
【図4】SSD装置に実装可能な論理アドレスの領域とSSD装置に物理的に実装されている物理アドレスの領域の対応関係の例を示した図。
【図5】不揮発データ記憶制御部のページ・リード・ライト制御部が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図。
【図6】不揮発データ記憶部のA系のNVMチップのうちNVM(#5)が故障チップになったことを例示する図。
【図7】故障したA系のNVM(#5)に対応するB系のNVM(#17)に記憶されているデータを、他の故障していないNVMチップにコピーする様子を、アドレス変換テーブルの変化により例示した図。
【図8】ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図。
【図9】故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【0016】
図1は、本発明の実施形態に係るSSD装置の構成の例を示した図である。図1に示すように、SSD装置1は、自身にとって外部装置となるホスト装置2に、ホストバス3を介して接続される。
【0017】
ここで、ホスト装置2は、いわゆるコンピュータ、または、コンピュータを利用した様々な形態の情報処理装置、制御装置、端末装置などである。また、ホストバス3は、IDE(Integrated Drive Electronics),SCSI(Small Computer System Interface),SATA(Serial Advanced Technology Attachment),SAS(Serial Attached SCSI),USB(Universal Serial Bus)などである。
【0018】
SSD装置1は、不揮発データ記憶部20および不揮発データ記憶制御部10によって構成される。
【0019】
不揮発データ記憶部20は、不揮発性メモリであるNANDフラッシュメモリのNVM(Non-Volatile Memory:不揮発性メモリ)チップ21を複数個含んで構成される。このとき、不揮発データ記憶部20は、A系およびB系の2系統の記憶部に分割されて構成され、各系は、同じ記憶容量の、同じ個数のNVMチップ21によって構成される。すなわち、不揮発データ記憶部20のA系およびB系により、ミラー構成の記憶装置が構成される。なお、図1の例では、不揮発データ記憶部20のA系およびB系は、それぞれ12個のNVMチップ21によって構成され、各NVMチップ21には、NVM(#n)の符号が付されている。nは、チップ番号(チップ識別情報)を表している。
【0020】
不揮発データ記憶部20のA系およびB系は、ミラー構成の記憶装置であるので、NVMチップ21へのデータ書き込みは、両系で互いにミラー関係にある2つのNVMチップ21に対して同時に行われる(以下、両系ライトという)。また、データの読み出しは、いずれか一方の系に属するNVMチップ21から行われる。
【0021】
ここで、両系で互いにミラー関係にあるNVMチップ21とは、両系それぞれで全く同じデータが記憶されるNVMチップ21をいう。なお、本実施形態では、NVMチップ21のチップ番号nを各系のNVMチップ21の個数m(図1の例では、m=12)で割った余りmod(n,m)が同じになる両系それぞれに属するNVMチップ21をいう。
【0022】
不揮発データ記憶制御部10は、ホスト装置2から供給されるデータをA系およびB系のNVMチップ21へ書き込む制御(ライト制御)、または、ホスト装置2からの求めに応じてA系またはB系のNVMチップ21からデータを読み出す制御(リード制御)を行う。また、不揮発データ記憶制御部10は、不揮発データ記憶部20を構成するNVMチップ21の故障を検出したとき、その故障したNVMチップ21を除去した構成で、ミラー構成を再構成する。
【0023】
そこで、不揮発データ記憶制御部10は、NVMチップ21に対するデータのリード・ライト制御を実現するために、ページ・リード・ライト制御部11、アドレス変換処理部13、物理アドレス選択処理部14、アドレス変換テーブル15などの機能ブロックを備えている。また、不揮発データ記憶制御部10は、故障チップ発生時にミラー構成を再構成する制御を実現するために、故障チップテーブル16を備え、さらに、ミラー構成を再構成する場合のページ・リード・ライト制御、すなわち、故障チップのデータを他のNVMチップ21にコピーする故障チップデータコピー処理部12を備えている。これらの各ブロックの処理機能の詳細については、以下、実施形態を説明する中で、順次、説明していく。
【0024】
なお、以上のようなブロックにより構成された不揮発データ記憶制御部10は、演算処理装置(CPU:Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、FPGA(Field Programmable Gate Array)などを用いて実現することができる。その場合、不揮発データ記憶制御部10を構成する各ブロックの機能は、前記の演算処理装置がRAMまたはROMに記憶されている所定のプログラムを実行することによって実現される。
【0025】
図2は、SSD装置1で用いられるNVMチップ21の内部構成の例を示した図である。不揮発データ記憶制御部10の各部の詳細な動作を説明する前に、NVMチップ21の内部構成について説明しておく。NVMチップ21が、いわゆる、NANDフラッシュメモリから構成される場合、図2(a),(b)に示すように、1個のNVMチップ21の記憶領域は、複数のブロック211に分割され、それぞれのブロック211は、複数のページ212(例えば、64ページ)に分割されて構成されている。また、図2(c)に示すように、それぞれのページ212には、例えば、4kBのデータを記憶する記憶領域が設けられている。
【0026】
そこで、1個のNVMチップ21の記憶容量が、例えば、4GBである場合に、1ブロック=64ページ、1ページ=4kBであるとすると、1個のNVMチップ21には、およそ16k個のブロック211が設けられていることになる。従って、図2(a)において、m=16k(16,383)となる。
【0027】
これらNVMチップ21におけるブロック211およびページ212の構成は、フラッシュメモリ自体の構造およびその読み出し・書き込み方法に由来し、そのデータの読み出し・書き込みついては、次のような制約が設けられている。
(1)データ読み出し・書き込みは、ページ212の単位で行う。(2)データの消去はブロック211の単位で行う。(3)ページ212が消去された状態でなければ、そのページ212への書き込みはできない。(4)ブロック211の消去回数には、上限がある。
【0028】
従って、NVMチップ21に対するデータの書き込みまたは読み出しは、図2(c)に示したフォーマットのページ212を単位として行われる。そのフォーマットによれば、ページ212は、ヘッダ213とそれぞれが512Bのデータを含んでなる8個のセグメント214とによって構成される。このとき、各セグメント214のデータには、CRC(Cyclic Redundancy Check)符号やリード・ソロモン符号などの検査符号215が付加される。また、ヘッダ213は、そのページに記憶されるデータの論理アドレスを含んで構成される。
【0029】
なお、ここまでの説明では、ページ212は、4kBのデータを記憶する記憶領域を有すると説明しているが、実際には(物理的には)4kB+αの記憶領域を有している。このとき、+αは200〜256B程度であるが、この+αの記憶領域部分を利用して、ヘッダ213や検査符号215が記憶される。以下、このページ212の領域に記憶されるヘッダ213や検査符号215を含めたデータをページデータと呼ぶ。
【0030】
図3は、アドレス変換テーブル15および故障チップテーブル16の構成の例を示した図である。
【0031】
アドレス変換テーブル15は、不揮発データ記憶制御部10内に設けられた図示しないRAM(Random Access Memory)などに記憶され、図3(a)に示すように、論理アドレスと物理アドレスを対応付けたテーブルである。また、アドレス変換テーブル15は、ホスト装置2から送信されるページ・ライト・コマンドまたはページ・リード・コマンドに添付されている論理アドレスを物理アドレスに変換するためのテーブルとして機能する。ここで、論理アドレスは、ページデータを識別する情報であり、また、物理アドレスは、チップ番号とページアドレスからなり、そのページデータが、どのNVMチップ21の、どのページ212に記憶されているかを示す情報である。
【0032】
本実施形態では、ページ212を識別するページアドレスは、それぞれのNVMチップ21ごとに全ブロック211を通しての通し番号が付されるものとする。従って、図2に示したように各NVMチップ21が16k個のブロック211で構成され、各ブロック211が64個のページ212で構成されているとすれば、各NVMチップ21は、全部で1M個のページ212で構成される。つまり、その1M個のページ212を識別するページアドレスとして、0〜1M(1,048,575)の範囲に含まれる番号が付されることになる。
【0033】
また、本実施形態では、アドレス変換テーブル15は、A系、B系で共用されるため、物理アドレスのチップ番号としては、A系におけるチップ番号のみが記憶される。従って、図3(a)における論理アドレスが“A1234”のページデータは、そのチップ番号が“5”であるから、そのページデータは、図1におけるNVMチップ21のNVM(#5)にもNVM(#17)にも記憶されていることになる。
【0034】
なお、アドレス変換テーブル15における論理アドレスと物理アドレスの対応付けは、SSD装置1が使用開始される最初からされておく必要はなく、ページデータが書き込まれるたびに、その都度、対応付けられればよい。つまり、アドレス変換テーブル15は、最初は全部空欄であり、ページデータが書き込まれるとき、その都度、追加されていけばよい。
【0035】
次に、図3(b)に示すように、故障チップテーブル16は、SSD装置1に含まれるNVMチップ21の故障状態を表したテーブルである。ここで、故障状態が“0”は、故障していないことを、故障状態が“1”は、故障していることを表している。従って、故障チップテーブル16は、例えば、24ビットのフラグレジスタによって構成することができる。
【0036】
なお、図3(b)の例では、NVM(#2)のNVMチップ21が故障している。また、故障チップテーブル16の各欄は、初期状態で、すべて“0”であり、故障チップが生じたとき、その故障チップの故障状態が“1”にされる。
【0037】
図4は、SSD装置1に実装可能な論理アドレスの領域とSSD装置1に物理的に実装されている物理アドレスの領域の対応関係の例を示した図である。詳細は後記するが、本実施形態では、あるNVMチップ21が故障した場合には、そのNVMチップ21に記憶されているページデータを他のNVMチップ21に分散させて記憶させる。そのため、実装可能な論理アドレスの領域サイズは、12個のNVMチップ21を合算した物理アドレスの領域サイズから、1個のNVMチップ21に含まれる物理アドレスの領域サイズを差し引いた領域サイズよりも小であることが必要である。
【0038】
従って、図4において、論理アドレスが0から順に+1インクリメントしながら付される場合には、論理アドレスの最終アドレスは、1M×11=11,534,336(16進でB00000)より小さくなければならない。なお、図4では、論理アドレスの最終アドレスは、16進でADFFFFであるとしている。
【0039】
以上のように、本実施形態では、A系、B系がそれぞれN個のNVMチップ21からなるミラー構成のSSD装置1に実装可能な論理アドレスの領域サイズ(言い換えれば、SSD装置1の名目上の記憶容量)は、N−1個のNVMチップ21を合算した物理アドレスの領域サイズよりも小であることが必要である。
【0040】
すなわち、SSD装置1におけるA系、B系のそれぞれの物理的アドレスの総領域サイズは、SSD装置1の論理アドレスの総領域サイズとNVMチップ21の1個に含まれる物理的アドレスの総領域サイズとを合算したサイズよりも大きくなければならない。これは、SSD装置1の名目上の記憶容量(論理アドレスの総領域サイズ)を設定するとき、A系、B系のそれぞれにNVMチップ21の1個分以上の冗長な物理アドレス領域を確保しておく必要があることを意味している。
【0041】
図5は、不揮発データ記憶制御部10のページ・リード・ライト制御部11が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図である。
【0042】
図5(a)に示すように、ページ・リード・ライト制御部11は、ホスト装置2からページ・ライト・コマンドを受信すると(ステップS11)、そのページ・ライト・コマンドから論理アドレスを取得する(ステップS12)。なお、ページ・ライト・コマンドは、ページデータを不揮発データ記憶部20のNVMチップ21に書き込む命令であり、そのページ・ライト・コマンドには、論理アドレスを含んだ書き込み対象のページデータが添付されている。
【0043】
次に、ページ・リード・ライト制御部11は、物理アドレス選択処理部14を用いて、物理アドレス選択処理を実行する(ステップS13)。このとき、物理アドレス選択処理部14は、アドレス変換テーブル15を参照して、不揮発データ記憶部20のNVMチップ21でデータが未だ書き込まれていない(消去された状態の)ページ212の物理アドレス、つまり、空きページの物理アドレス(以下、空き物理アドレスと略称する)の1つを選択する。
【0044】
すなわち、物理アドレス選択処理は、ページ・ライト・コマンドに添付されているページデータを書き込むべき空きページの物理アドレスを選択する処理であり、その処理では、1つの空き物理アドレスが選択されればよい。なお、その物理アドレス選択処理において、各ページ212への書き込み回数を平準化(いわゆる、ウエアレベリング)する場合には、その平準化のアルゴリズムに沿って空き物理アドレスを選択するが、本実施形態では、平準化の方法は、どのようなものであってもよく、その詳細な説明を省略する。
【0045】
次に、ページ・リード・ライト制御部11は、物理アドレス選択処理によって選択された物理アドレスに、ページ・ライト・コマンドに添付されたページデータを書き込む(ステップS14)。なお、この場合のページデータの書き込みは、両系ライトであり、A系、B系の互いにミラー関係にある2つのNVMチップ21の物理アドレスに、同じページデータが書き込まれる。なお、A系、B系の互いにミラー関係にある2つのNVMチップ21の物理アドレスとは、本実施形態の場合、それぞれのチップ番号を12で割った余りが同じで、かつ、ページアドレスが同じである場合をいう。
【0046】
次に、ページ・リード・ライト制御部11は、ステップS14で書き込んだページデータの論理アドレスと物理アドレスとを用いて、アドレス変換テーブル15を更新する(ステップS15)。すなわち、ページ・リード・ライト制御部11がステップS14を実行した際に、書き込み対象のページデータの論理アドレスがすでにアドレス変換テーブル15に存在したときには、その論理アドレスに対応する物理アドレスを、ステップS14でページデータの書き込み先となった物理アドレスに更新する。また、書き込み対象のページデータの論理アドレスがアドレス変換テーブル15に存在しなかったときには、その論理アドレスとステップS14で書き込み先となった物理アドレスとを対応付けたデータを、新たにアドレス変換テーブル15に追加する。
【0047】
次に、ページ・リード・ライト制御部11は、ページ消去が必要であるか否かを判定する(ステップS16)。ここで、ページ消去が必要である場合は、ステップS15でアドレス変換テーブル15にすでに存在していた論理アドレスに対応する物理データを更新した場合であり、また、ページ消去が不要である場合は、ステップS15でアドレス変換テーブル15に論理アドレスと物理アドレスとを対応付けたデータを新たに追加した場合である。
【0048】
ステップS16における判定の結果、ページ消去が必要であった場合には(ステップS16でYes)、ページ・リード・ライト制御部11は、所定のページ消去処理を実行し(ステップS17)、ページ消去が不要であった場合には(ステップS16でNo)、ページ消去処理の実行をスキップして、ページ・ライト・コマンドの処理を終了する。
【0049】
なお、ページ・リード・ライト制御部11は、ページ消去処理において、例えば、消去対象となった物理アドレスを有するページ212の消去を予約しておき、それぞれのブロック211ごとに、そのブロック211に属するすべてまたは大部分のページ212が消去予約された場合に、そのブロック211に属するすべてのページ212を消去する。
【0050】
また、図5(b)に示すように、ページ・リード・ライト制御部11は、ホスト装置2からページ・リード・コマンドを受信すると(ステップS21)、そのページ・リード・コマンドから論理アドレスを取得する(ステップS22)。なお、ページ・リード・コマンドは、不揮発データ記憶部20のNVMチップ21に記憶されているページデータを読み出す命令であり、ページ・リード・コマンドには、読み出し対象のページデータの論理アドレスが添付されている。
【0051】
次に、ページ・リード・ライト制御部11は、その取得した論理アドレスをアドレス変換処理部13へ渡し、そのアドレス変換処理部13を用いて、アドレス変換処理を実行する(ステップS23)。すなわち、アドレス変換処理部13は、ページ・リード・ライト制御部11から論理アドレスを受け取ると、アドレス変換テーブル15を参照して、その論理アドレスに対応付けられた物理アドレスを取得する。
【0052】
次に、ページ・リード・ライト制御部11は、アドレス変換処理部13によって取得された物理アドレスからページデータを読み出し(ステップS24)、読み出したページデータをホスト装置2へ送信して(ステップS25)、ページ・リード・コマンドの処理を終了する。
【0053】
続いて、図6および図7を参照して、故障チップが生じたときのミラー構成の再構成処理手順を具体的に説明する。ここで、図6は、不揮発データ記憶部20のA系のNVMチップ21のうちNVM(#5)が故障チップになったことを例示する図である。
【0054】
なお、NVMチップ21の故障は、ページ・リード・ライト制御部12がページ・リード・コマンド、ページ・ライト・コマンド、ページ消去コマンドなどを実行したとき検出される。例えば、ページ・リード・ライト制御部12は、ページ・リード・コマンドにより同じページ212のデータを所定回数以上読み出しても正しいデータを読み出せない場合には(検査符号215を用いて正誤の判定が可能)、そのページ212を含むNVMチップ21を故障チップと判定する。同様に、ページ・リード・ライト制御部12は、所定回数以上の書き込みやブロック消去を繰り返しても正しいデータを書き込むことができないページ212が生じたり、消去できないブロック211が生じたりした場合には、そのページ212またはブロック211を含むNVMチップ21を故障チップと判定する。
【0055】
図6に示すように、不揮発データ記憶部20において、A系のNVMチップ21のうち例えば、NVM(#5)が故障チップ(実線の×印が付されたNVMチップ21)になった場合には、A系のNVM(#5)についてはページデータの書き込みおよび読み出しができなくなるので、A系とB系とによるミラー構成が崩れる。
【0056】
しかしながら、この時点では、故障したNVM(#5)に記憶されているページデータと同じページデータが、NVM(#5)とミラー関係にあるB系のNVM(#17)(図6で、点線の×印が付されたNVMチップ21)に記憶されている。そこで、本実施形態では、A系のNVM(#5)が故障チップとなっても、B系のNVM(#17)に記憶されているページデータを、A系、B系それぞれにおける故障していないNVMチップ21へコピー(両系ライト)することにより、ミラー構成を再構成することができる。
【0057】
図7は、故障したA系のNVM(#5)とミラー関係にあるB系のNVM(#17)に記憶されているデータを、他の故障していないNVMチップ21にコピーする様子を、アドレス変換テーブル15の変化により例示した図である。
【0058】
図7(a)には、故障チップ発生時のアドレス変換テーブル15が示されている。ここでは、NVM(#5)が故障したものとして、コピー対象のページデータが太線枠で示されている。このとき、そのチップ番号は、“5”となっているが、コピー元となるNVMチップ21は、その故障したA系のNVM(#5)とミラー関係にあるB系のNVM(#17)である。
【0059】
次に、図7(b)には、NVM(#17)のページアドレス“2”に記憶されている論理アドレス“A1817”のページデータが、NVM(#0)およびNVM(#12)のページアドレス“10”にコピー(両系ライト)されたことが表されている。また、同様に、図7(c)には、NVM(#17)のページアドレス“9”に記憶されている論理アドレス“A1829”のページデータが、NVM(#1)およびNVM(#13)のページアドレス“13”にコピー(両系ライト)されたことが表されている。
【0060】
以下、同様に、図7(d),(e)に示されているように、NVM(#17)のページアドレス“10”、“11”に記憶されているページデータは、それぞれ、NVM(#2)およびNVM(#14)のページアドレス“9”、NVM(#3)およびNVM(#15)のページアドレス“7”へと、順次コピー(両系ライト)されていく。なお、その場合、当然ではあるが、故障チップであるNVM(#5)およびコピー元であるNVM(#17)へのコピーは、スキップされる。
【0061】
以上のようにして、NVM(#17)から読み出したページデータを、A系、B系の互いに対応するチップ番号の同じページアドレスに、順次コピー(両系ライト)していくことによって、NVM(#5)およびNVM(#17)を除外した形態で、ミラー構成が再構成される。従って、このようにしてミラー構成が再構成された場合には、A系のNVM(#5)だけでなく、NVM(#5)に対応するB系の故障していないNVM(#17)も使用不能となる。
【0062】
図8は、ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図である。この故障チップデータコピー処理は、ページ・リード・ライト制御部11により、故障チップが検出されたときに開始される。なお、ページ・リード・ライト制御部11は、図5ステップS17のページ消去処理などで、例えば、あるNVMチップ21の消去不可能なブロック(不良ブロック)の数が所定数以上に達した場合などに、そのNVMチップ21が故障したと判定する。
【0063】
図8に示すように、故障チップデータコピー処理部12は、まず、故障チップとミラー関係にある他系側のNVMチップ21をコピー元チップに指定する(ステップS31)とともに、コピー元チップのページアドレス(SPA)を初期化し、ゼロクリアする(ステップS32)。さらに、故障チップデータコピー処理部12は、コピー先チップのチップ番号(DCN)およびページアドレス(DPA)を初期化する(ステップS33)。なお、DCNおよびDPAの初期化される値は、後記する物理アドレス選択処理(図9参照)の処理方法などに依存し、適宜定められる。また、このようにして初期化されたSPA,DCN,DPAの値は、故障チップデータコピー処理部12内に設けられたメモリまたはレジスタに記憶される。
【0064】
次に、故障チップデータコピー処理部12は、コピー元チップのページアドレス(SPA)からページデータを読み出し(ステップS34)、その読み出したページデータから論理アドレスを取得する(ステップS35)。なお、論理アドレスは、そのページデータのヘッダ213に含まれている(図2参照)。
【0065】
次に、故障チップデータコピー処理部12は、物理アドレス選択処理部14を用いて、物理アドレス選択処理を実行する(ステップS36)。このとき、物理アドレス選択処理部14は、ページ・ライト・コマンド処理(図5(a)参照)の場合と同様に、空き物理アドレスの1つを選択して、提供するだけでよいが、図9に示すように、故障していないNVMチップ21から空き物理アドレスを均等に選択するようにしてもよい。
【0066】
次に、故障チップデータコピー処理部12は、物理アドレス選択処理によって選択された物理アドレスに、ステップS34でコピー元チップから読み出したページデータを書き込む(ステップS37)。なお、このページデータの書き込みは、両系ライトであり、A系、B系の互いにミラー関係にある2個のNVMチップ21の物理アドレスに、同じページデータが書き込まれる。
【0067】
次に、故障チップデータコピー処理部12は、ステップS35で取得した論理アドレスとステップS36の物理アドレス選択処理によって選択された物理アドレスとを対応付けたデータをアドレス変換テーブル15に追加することにより、アドレス変換テーブル15を更新する(ステップS38)。
【0068】
次に、故障チップデータコピー処理部12は、コピー元チップのページアドレス(SPA)をインクリメント、すなわち、SPA=SPA+1とし(ステップS39)、そのページアドレスが最終ページアドレスに到達したか否かを判定する(ステップS40)。その判定の結果、最終ページアドレスに到達していなかった場合には(ステップS40でNo)、故障チップデータコピー処理部12は、ステップS34へ戻り、ステップS34以降の処理を繰り返して実行する。また、最終ページアドレスに到達していた場合には(ステップS40でYes)、故障チップデータコピー処理部12は、故障チップデータコピー処理を終了する。なお、ここでいう最終ページアドレスとは、1個のNVMチップ21内におけるページアドレスの最大値である。
【0069】
図9は、故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図である。この処理フローは、コピー先となるNVMチップ21のすべてのチップで、あるページアドレス(このアドレスを、以下、DPA0と記す)以降がすべて空き物理アドレス領域であり、その空き物理アドレス領域の合算した領域サイズが故障チップ、つまり、NVMチップ21の物理領域サイズよりも大きい場合に適用される。
【0070】
図8に示したように、図9の物理アドレス選択処理が実行される前には、故障チップデータコピー処理のステップS33において、コピー先チップのチップ番号(DCN)およびページアドレス(DPA)が初期化される。ここでは、この初期化により、DCN=0、DPA=DPA0が設定されるものとする。
【0071】
続いて、図9の物理アドレス選択処理が開始されると、物理アドレス選択処理部14は、故障チップテーブル16を参照して、チップ番号(DCN)で指定されるコピー先チップが故障チップであるか否かを判定する(ステップS51)。なお、この判定では、A系、B系の互いにミラー関係にあるNVMチップ21のいずれか一方が故障チップである場合には、故障チップと判定する。例えば、B系のNVM(#17)が故障チップであった場合、DCN=5のときは、ステップS51では、故障チップと判定される。
【0072】
ステップS51での判定の結果、コピー先チップが故障チップであったときには(ステップS51でYes)、物理アドレス選択処理部14は、コピー先チップのチップ番号(DCN)をインクリメント、すなわち、DCN=DCN+1とする(ステップS52)。ただし、コピー先チップのチップ番号(DCN)が最終のチップ番号(DCN=11)を超えたとき、つまり、DCN=12のとき、DCN=0とする。
【0073】
また、ステップS51での判定の結果、コピー先チップが故障チップでなかったときには(ステップS51でYes)、物理アドレス選択処理部14は、この時点でのコピー先チップのチップ番号(DCN)およびページアドレス(DPA)を、物理アドレス選択処理部14が選択した物理アドレスとして上位処理部、すなわち、故障チップデータコピー処理部12へ返す(ステップS53)。
【0074】
次に、物理アドレス選択処理部14は、コピー先チップのチップ番号(DCN)をインクリメント、すなわち、DCN=DCN+1とする(ステップS54)。ただし、コピー先チップのチップ番号(DCN)が最終のチップ番号(DCN=11)を超えたとき、つまり、DCN=12のとき、DCN=0とする。さらに、物理アドレス選択処理部14は、コピー先チップのページアドレス(DPA)をインクリメント、すなわち、DPA=DPA+1として(ステップS54)、物理アドレス選択処理を終了する。
【0075】
なお、物理アドレス選択処理は、図9に示した処理フローに限定されるものではない。物理アドレス選択処理は、故障していないNVMチップ21から空き物理アドレスを見つけて、その1つを選択し、その選択した空き物理アドレスを送出するものであれば、どのような処理であってもよい。
【0076】
以上のような故障チップデータコピー処理および物理アドレス選択処理によって、故障チップに記憶されているページデータと同じページデータが、A系、B系の故障していない互いにミラー関係にあるNVMチップ21の同じページアドレスにコピーされることになる。その結果、SSD装置1は、故障チップおよびその故障チップとミラー関係にあるNVMチップ21を除外した形で、A系、B系によるミラー構成を再構成することができる。
【0077】
従って、本実施形態では、A系、B系のミラー構成をした不揮発データ記憶部20は、A系またはB系を構成するNVMチップ21のいずれかのチップが故障して、そのミラー構成が崩れたとしても、不揮発データ記憶制御部10における故障チップデータコピー処理(図8参照)によって、A系、B系のミラー構成を速やかに再構成することができる。従って、本実施形態によるSSD装置1の可用性は、例えば、3台の記憶装置(ハードディスク装置)によるミラー構成と同程度に高いものである。また、この場合、A系、B系の記憶装置部分の増加は、A系、B系それぞれにおいて、全12個に対して、1〜2個のNVMチップ21が増加する程度であるから、例えば、3重化のミラー構成などと比較してもその増加量は小さい。従って、本実施形態により提供される可用性の高いミラー構成のSSD装置1の価格は、抑制されたものとなる。
【0078】
(実施形態の変形例)
以上に説明した実施形態では、一方の系のNVMチップ21が故障した場合には、その故障チップとミラー関係にある他方の系のNVMチップ21は、故障していなくても使用できなくなる。このような不利益は、A系およびB系で同じアドレス変換テーブル15が用いられるために生じる。すなわち、A系およびB系で同じアドレス変換テーブル15が用いられることによって、A系およびB系の完全なミラー構成が保証されるわけであるが、それ故に、一方の系のNVMチップ21が故障した場合には、その故障チップとミラー関係にある他方の系のNVMチップ21が使用できなくなる、つまり、故障したことになるのは、やむを得ない事態である。
【0079】
そこで、この実施形態の変形例では、アドレス変換テーブル15は、A系およびB系それぞれに対して独立して設けられているとする。この場合には、同じ論理アドレスのページデータであっても、A系とB系とでは、記憶される物理アドレスは同じとは限らない。この意味では、ミラー構成は崩れているが、論理アドレス側からA系およびB系を見た場合には、ミラー構成は保たれている。
【0080】
この実施形態の変形例における故障チップデータコピー処理部12の処理フローは、図8で説明した処理フローとは、一部が異なったものとなる。図8の処理フローでは、コピー元のデータの所在は、故障チップとミラー関係にある他方の系のNVMチップ21であると簡単に指定することができるが、この実施形態の変形例では、コピー元のデータの所在を求めるために、2つのアドレス変換テーブル15を突き合わせる必要がある。
【0081】
すなわち、故障チップデータコピー処理部12は、まず、故障チップが属する系のアドレス変換テーブル15から、故障チップに記憶されているページデータの論理アドレスを抽出する。そして、他系側のアドレス変換テーブル15を参照して、その抽出された論理アドレスに対応付けられた物理アドレスを取得し、その取得した物理アドレスをコピー元データの所在アドレスとする。
【0082】
また、故障チップデータコピー処理におけるコピー先も図8の場合と相違する。図8では、コピー元データを両系ライトしているが、この実施形態の変形例では、両系ライトは不要である。コピー元データは、故障チップが属する系と同じ系の故障していないNVMチップ21の空き物理アドレスにコピーされればよい。従って、故障チップが属さない系のNVMチップ21については、その系のアドレス変換テーブル15も含め、何も変更する必要はない。従って、故障チップとミラー関係にある他方の系のNVMチップ21も、そのまま使用されることになる。
【0083】
以上のように、本実施形態の変形例では、一方の系のNVMチップ21が故障しても、その故障チップとミラー関係にある他方の系のNVMチップ21まで使用できなくなることはない。従って、物理アドレスの総領域の論理アドレスの総領域に対する冗長量が、NVMチップ21の1個以上2個未満である場合には、本実施形態の変形例では、例えば、A系で故障チップが発生し、その後、B系で故障チップが発生しても、SSD装置1は、そのままミラー構成を再構成することができ、継続して使用することができる。なお、元の実施形態の場合には、2個の故障チップが発生した場合には、ミラー構成を再構成することはできない。従って、その分だけ、SSD装置1の寿命は長くなり、可用性は向上する。
【符号の説明】
【0084】
1 SSD装置(ソリッド・ステート・ドライブ装置)
2 ホスト装置
3 ホストバス
10 不揮発データ記憶制御部
11 ページ・リード・ライト制御部
12 故障チップデータコピー処理部
13 アドレス変換処理部
14 物理アドレス選択処理部
15 アドレス変換テーブル
16 故障チップテーブル
20 不揮発データ記憶部
21 NVMチップ(不揮発性メモリチップ)
【技術分野】
【0001】
本発明は、不揮発性半導体メモリによるミラー構成のソリッド・ステート・ドライブ装置(以下、SSD装置と略称)、および、そのSSD装置において故障チップが生じた場合にミラー構成を再構成するミラー構成再構成方法に関する。
【背景技術】
【0002】
近年、不揮発性半導体メモリであるフラッシュメモリの大容量化と低価格化に伴い、フラッシュメモリを用いて構成したSSD装置がハードディスク装置の代替記憶装置として普及の兆しをみせている。一般に、SSD装置は、ハードディスク装置で必須の可動部品が不要であるため、高速かつ高信頼であるとされている。しかしながら、フラッシュメモリは、低価格化してきたとはいえ、同一の記憶容量で比較すれば、ハードディスク装置に比べ高価である。
【0003】
ところで、複数のハードディスク装置を冗長構成することによって信頼性を向上させる技術として、RAID(Redundant Arrays of Inexpensive (or Independent) Disks)がある。RAIDの構成には様々なものがあるが、その中で、比較的簡単な構成で、かつ、実用的な高信頼性が得られる構成として、ミラー構成(いわゆる、RAID1)がある。
【0004】
ミラー構成は、少なくとも2台のハードディスク装置で構成されるものであり、その2台のハードディスク装置には全く同じデータが記憶される。従って、いずれか一方のハードディスク装置が故障しても、その故障したハードディスク装置に記憶されていたデータは、他方のハードディスク装置に残っていることになる。従って、データが保全される意味において、信頼性が向上する。しかしながら、ミラー構成の場合、1台のハードディスク装置が故障した場合には、システムを停止させ、その故障したハードディスク装置を新しいハードディスク装置と取り替えることが必要となる。従って、ミラー構成のハードディスク装置の可用性は、必ずしも高いとはいえない。
【0005】
RAIDには、信頼性や可用性をさらに向上させた構成としてRAID1+5などの構成があるが、より多くのハードディスク装置が必要となる(ちなみに、RAID1+5では、少なくとも6台が必要)。
【0006】
また、特許文献1には、3台のハードディスク装置でミラーリングを行い、可用性を向上させたディスク記憶システムの例が開示されている。3台のハードディスク装置でミラーリングを行えば、そのいずれかが故障しても他の2台のハードディスク装置でミラーリングを継続することができる。従って、その可用性は高い。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−316525号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来技術よれば、高信頼性と可用性を兼ね備えたディスク記憶システムを実現しようとすれば、前記のように少なくとも3台のハードディスク装置が必要となる。従って、単純にハードディスク装置をSSD装置に置き換えることよって、従来と同様の構成の記憶システムを実現しようとすれば、その価格は極めて高価なものとなってしまう。
【0009】
本発明は、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のSSD装置およびSSD装置のミラー構成再構成方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明のSSD装置は、それぞれが複数の不揮発性メモリチップからなるミラー構成の2系統の不揮発データ記憶部と、そのミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成される。
また、その不揮発データ記憶制御部は、不揮発データ記憶部に記憶するページデータの論理アドレスと物理アドレスとを対応付けるアドレス変換テーブルと、不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、アドレス変換テーブルを参照して論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、を含んで構成される。
そして、前記ページ・リード・ライト制御部は、前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、その故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、故障した不揮発性メモリチップおよびその故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーする。
【0011】
以上のように、本発明のSSD装置におけるページ・リード・ライト制御部は、不揮発性メモリチップの故障を検出したときには、その故障チップと同じページデータを記憶している反対側系統に属する不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、前記2系統の不揮発データ記憶部それぞれに属する故障していない不揮発性メモリチップへコピーする。従って、本発明のSSD装置においては、ある不揮発性メモリチップが故障して、一時的にSSD装置のミラー構成が崩れても、速やかにミラー構成が再構成される。
【0012】
つまり、本発明のSSD装置は、2系統の不揮発データ記憶部のミラー構成であるが、一方の系統で故障チップが発生したとき、速やかに不揮発データ記憶部のミラー構成を再構成することができる。そのため、故障チップを取り替えたり、故障チップを含んだ系統の不揮発データ記憶部全体を取り替えたりする必要はない。従って、可用性向上のために、3重化などより高度な冗長構成にする必要がないので、価格を抑制した可用性の高いミラー構成のSSD装置が実現される。
【発明の効果】
【0013】
本発明によれば、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のSSD装置およびSSD装置のミラー構成再構成方法が提供される。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係るSSD装置の構成の例を示した図。
【図2】本発明の実施形態に係るSSD装置で用いられるNVMチップの内部構成の例を示した図。
【図3】アドレス変換テーブルおよび故障チップテーブルの構成の例を示した図。
【図4】SSD装置に実装可能な論理アドレスの領域とSSD装置に物理的に実装されている物理アドレスの領域の対応関係の例を示した図。
【図5】不揮発データ記憶制御部のページ・リード・ライト制御部が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図。
【図6】不揮発データ記憶部のA系のNVMチップのうちNVM(#5)が故障チップになったことを例示する図。
【図7】故障したA系のNVM(#5)に対応するB系のNVM(#17)に記憶されているデータを、他の故障していないNVMチップにコピーする様子を、アドレス変換テーブルの変化により例示した図。
【図8】ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図。
【図9】故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【0016】
図1は、本発明の実施形態に係るSSD装置の構成の例を示した図である。図1に示すように、SSD装置1は、自身にとって外部装置となるホスト装置2に、ホストバス3を介して接続される。
【0017】
ここで、ホスト装置2は、いわゆるコンピュータ、または、コンピュータを利用した様々な形態の情報処理装置、制御装置、端末装置などである。また、ホストバス3は、IDE(Integrated Drive Electronics),SCSI(Small Computer System Interface),SATA(Serial Advanced Technology Attachment),SAS(Serial Attached SCSI),USB(Universal Serial Bus)などである。
【0018】
SSD装置1は、不揮発データ記憶部20および不揮発データ記憶制御部10によって構成される。
【0019】
不揮発データ記憶部20は、不揮発性メモリであるNANDフラッシュメモリのNVM(Non-Volatile Memory:不揮発性メモリ)チップ21を複数個含んで構成される。このとき、不揮発データ記憶部20は、A系およびB系の2系統の記憶部に分割されて構成され、各系は、同じ記憶容量の、同じ個数のNVMチップ21によって構成される。すなわち、不揮発データ記憶部20のA系およびB系により、ミラー構成の記憶装置が構成される。なお、図1の例では、不揮発データ記憶部20のA系およびB系は、それぞれ12個のNVMチップ21によって構成され、各NVMチップ21には、NVM(#n)の符号が付されている。nは、チップ番号(チップ識別情報)を表している。
【0020】
不揮発データ記憶部20のA系およびB系は、ミラー構成の記憶装置であるので、NVMチップ21へのデータ書き込みは、両系で互いにミラー関係にある2つのNVMチップ21に対して同時に行われる(以下、両系ライトという)。また、データの読み出しは、いずれか一方の系に属するNVMチップ21から行われる。
【0021】
ここで、両系で互いにミラー関係にあるNVMチップ21とは、両系それぞれで全く同じデータが記憶されるNVMチップ21をいう。なお、本実施形態では、NVMチップ21のチップ番号nを各系のNVMチップ21の個数m(図1の例では、m=12)で割った余りmod(n,m)が同じになる両系それぞれに属するNVMチップ21をいう。
【0022】
不揮発データ記憶制御部10は、ホスト装置2から供給されるデータをA系およびB系のNVMチップ21へ書き込む制御(ライト制御)、または、ホスト装置2からの求めに応じてA系またはB系のNVMチップ21からデータを読み出す制御(リード制御)を行う。また、不揮発データ記憶制御部10は、不揮発データ記憶部20を構成するNVMチップ21の故障を検出したとき、その故障したNVMチップ21を除去した構成で、ミラー構成を再構成する。
【0023】
そこで、不揮発データ記憶制御部10は、NVMチップ21に対するデータのリード・ライト制御を実現するために、ページ・リード・ライト制御部11、アドレス変換処理部13、物理アドレス選択処理部14、アドレス変換テーブル15などの機能ブロックを備えている。また、不揮発データ記憶制御部10は、故障チップ発生時にミラー構成を再構成する制御を実現するために、故障チップテーブル16を備え、さらに、ミラー構成を再構成する場合のページ・リード・ライト制御、すなわち、故障チップのデータを他のNVMチップ21にコピーする故障チップデータコピー処理部12を備えている。これらの各ブロックの処理機能の詳細については、以下、実施形態を説明する中で、順次、説明していく。
【0024】
なお、以上のようなブロックにより構成された不揮発データ記憶制御部10は、演算処理装置(CPU:Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、FPGA(Field Programmable Gate Array)などを用いて実現することができる。その場合、不揮発データ記憶制御部10を構成する各ブロックの機能は、前記の演算処理装置がRAMまたはROMに記憶されている所定のプログラムを実行することによって実現される。
【0025】
図2は、SSD装置1で用いられるNVMチップ21の内部構成の例を示した図である。不揮発データ記憶制御部10の各部の詳細な動作を説明する前に、NVMチップ21の内部構成について説明しておく。NVMチップ21が、いわゆる、NANDフラッシュメモリから構成される場合、図2(a),(b)に示すように、1個のNVMチップ21の記憶領域は、複数のブロック211に分割され、それぞれのブロック211は、複数のページ212(例えば、64ページ)に分割されて構成されている。また、図2(c)に示すように、それぞれのページ212には、例えば、4kBのデータを記憶する記憶領域が設けられている。
【0026】
そこで、1個のNVMチップ21の記憶容量が、例えば、4GBである場合に、1ブロック=64ページ、1ページ=4kBであるとすると、1個のNVMチップ21には、およそ16k個のブロック211が設けられていることになる。従って、図2(a)において、m=16k(16,383)となる。
【0027】
これらNVMチップ21におけるブロック211およびページ212の構成は、フラッシュメモリ自体の構造およびその読み出し・書き込み方法に由来し、そのデータの読み出し・書き込みついては、次のような制約が設けられている。
(1)データ読み出し・書き込みは、ページ212の単位で行う。(2)データの消去はブロック211の単位で行う。(3)ページ212が消去された状態でなければ、そのページ212への書き込みはできない。(4)ブロック211の消去回数には、上限がある。
【0028】
従って、NVMチップ21に対するデータの書き込みまたは読み出しは、図2(c)に示したフォーマットのページ212を単位として行われる。そのフォーマットによれば、ページ212は、ヘッダ213とそれぞれが512Bのデータを含んでなる8個のセグメント214とによって構成される。このとき、各セグメント214のデータには、CRC(Cyclic Redundancy Check)符号やリード・ソロモン符号などの検査符号215が付加される。また、ヘッダ213は、そのページに記憶されるデータの論理アドレスを含んで構成される。
【0029】
なお、ここまでの説明では、ページ212は、4kBのデータを記憶する記憶領域を有すると説明しているが、実際には(物理的には)4kB+αの記憶領域を有している。このとき、+αは200〜256B程度であるが、この+αの記憶領域部分を利用して、ヘッダ213や検査符号215が記憶される。以下、このページ212の領域に記憶されるヘッダ213や検査符号215を含めたデータをページデータと呼ぶ。
【0030】
図3は、アドレス変換テーブル15および故障チップテーブル16の構成の例を示した図である。
【0031】
アドレス変換テーブル15は、不揮発データ記憶制御部10内に設けられた図示しないRAM(Random Access Memory)などに記憶され、図3(a)に示すように、論理アドレスと物理アドレスを対応付けたテーブルである。また、アドレス変換テーブル15は、ホスト装置2から送信されるページ・ライト・コマンドまたはページ・リード・コマンドに添付されている論理アドレスを物理アドレスに変換するためのテーブルとして機能する。ここで、論理アドレスは、ページデータを識別する情報であり、また、物理アドレスは、チップ番号とページアドレスからなり、そのページデータが、どのNVMチップ21の、どのページ212に記憶されているかを示す情報である。
【0032】
本実施形態では、ページ212を識別するページアドレスは、それぞれのNVMチップ21ごとに全ブロック211を通しての通し番号が付されるものとする。従って、図2に示したように各NVMチップ21が16k個のブロック211で構成され、各ブロック211が64個のページ212で構成されているとすれば、各NVMチップ21は、全部で1M個のページ212で構成される。つまり、その1M個のページ212を識別するページアドレスとして、0〜1M(1,048,575)の範囲に含まれる番号が付されることになる。
【0033】
また、本実施形態では、アドレス変換テーブル15は、A系、B系で共用されるため、物理アドレスのチップ番号としては、A系におけるチップ番号のみが記憶される。従って、図3(a)における論理アドレスが“A1234”のページデータは、そのチップ番号が“5”であるから、そのページデータは、図1におけるNVMチップ21のNVM(#5)にもNVM(#17)にも記憶されていることになる。
【0034】
なお、アドレス変換テーブル15における論理アドレスと物理アドレスの対応付けは、SSD装置1が使用開始される最初からされておく必要はなく、ページデータが書き込まれるたびに、その都度、対応付けられればよい。つまり、アドレス変換テーブル15は、最初は全部空欄であり、ページデータが書き込まれるとき、その都度、追加されていけばよい。
【0035】
次に、図3(b)に示すように、故障チップテーブル16は、SSD装置1に含まれるNVMチップ21の故障状態を表したテーブルである。ここで、故障状態が“0”は、故障していないことを、故障状態が“1”は、故障していることを表している。従って、故障チップテーブル16は、例えば、24ビットのフラグレジスタによって構成することができる。
【0036】
なお、図3(b)の例では、NVM(#2)のNVMチップ21が故障している。また、故障チップテーブル16の各欄は、初期状態で、すべて“0”であり、故障チップが生じたとき、その故障チップの故障状態が“1”にされる。
【0037】
図4は、SSD装置1に実装可能な論理アドレスの領域とSSD装置1に物理的に実装されている物理アドレスの領域の対応関係の例を示した図である。詳細は後記するが、本実施形態では、あるNVMチップ21が故障した場合には、そのNVMチップ21に記憶されているページデータを他のNVMチップ21に分散させて記憶させる。そのため、実装可能な論理アドレスの領域サイズは、12個のNVMチップ21を合算した物理アドレスの領域サイズから、1個のNVMチップ21に含まれる物理アドレスの領域サイズを差し引いた領域サイズよりも小であることが必要である。
【0038】
従って、図4において、論理アドレスが0から順に+1インクリメントしながら付される場合には、論理アドレスの最終アドレスは、1M×11=11,534,336(16進でB00000)より小さくなければならない。なお、図4では、論理アドレスの最終アドレスは、16進でADFFFFであるとしている。
【0039】
以上のように、本実施形態では、A系、B系がそれぞれN個のNVMチップ21からなるミラー構成のSSD装置1に実装可能な論理アドレスの領域サイズ(言い換えれば、SSD装置1の名目上の記憶容量)は、N−1個のNVMチップ21を合算した物理アドレスの領域サイズよりも小であることが必要である。
【0040】
すなわち、SSD装置1におけるA系、B系のそれぞれの物理的アドレスの総領域サイズは、SSD装置1の論理アドレスの総領域サイズとNVMチップ21の1個に含まれる物理的アドレスの総領域サイズとを合算したサイズよりも大きくなければならない。これは、SSD装置1の名目上の記憶容量(論理アドレスの総領域サイズ)を設定するとき、A系、B系のそれぞれにNVMチップ21の1個分以上の冗長な物理アドレス領域を確保しておく必要があることを意味している。
【0041】
図5は、不揮発データ記憶制御部10のページ・リード・ライト制御部11が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図である。
【0042】
図5(a)に示すように、ページ・リード・ライト制御部11は、ホスト装置2からページ・ライト・コマンドを受信すると(ステップS11)、そのページ・ライト・コマンドから論理アドレスを取得する(ステップS12)。なお、ページ・ライト・コマンドは、ページデータを不揮発データ記憶部20のNVMチップ21に書き込む命令であり、そのページ・ライト・コマンドには、論理アドレスを含んだ書き込み対象のページデータが添付されている。
【0043】
次に、ページ・リード・ライト制御部11は、物理アドレス選択処理部14を用いて、物理アドレス選択処理を実行する(ステップS13)。このとき、物理アドレス選択処理部14は、アドレス変換テーブル15を参照して、不揮発データ記憶部20のNVMチップ21でデータが未だ書き込まれていない(消去された状態の)ページ212の物理アドレス、つまり、空きページの物理アドレス(以下、空き物理アドレスと略称する)の1つを選択する。
【0044】
すなわち、物理アドレス選択処理は、ページ・ライト・コマンドに添付されているページデータを書き込むべき空きページの物理アドレスを選択する処理であり、その処理では、1つの空き物理アドレスが選択されればよい。なお、その物理アドレス選択処理において、各ページ212への書き込み回数を平準化(いわゆる、ウエアレベリング)する場合には、その平準化のアルゴリズムに沿って空き物理アドレスを選択するが、本実施形態では、平準化の方法は、どのようなものであってもよく、その詳細な説明を省略する。
【0045】
次に、ページ・リード・ライト制御部11は、物理アドレス選択処理によって選択された物理アドレスに、ページ・ライト・コマンドに添付されたページデータを書き込む(ステップS14)。なお、この場合のページデータの書き込みは、両系ライトであり、A系、B系の互いにミラー関係にある2つのNVMチップ21の物理アドレスに、同じページデータが書き込まれる。なお、A系、B系の互いにミラー関係にある2つのNVMチップ21の物理アドレスとは、本実施形態の場合、それぞれのチップ番号を12で割った余りが同じで、かつ、ページアドレスが同じである場合をいう。
【0046】
次に、ページ・リード・ライト制御部11は、ステップS14で書き込んだページデータの論理アドレスと物理アドレスとを用いて、アドレス変換テーブル15を更新する(ステップS15)。すなわち、ページ・リード・ライト制御部11がステップS14を実行した際に、書き込み対象のページデータの論理アドレスがすでにアドレス変換テーブル15に存在したときには、その論理アドレスに対応する物理アドレスを、ステップS14でページデータの書き込み先となった物理アドレスに更新する。また、書き込み対象のページデータの論理アドレスがアドレス変換テーブル15に存在しなかったときには、その論理アドレスとステップS14で書き込み先となった物理アドレスとを対応付けたデータを、新たにアドレス変換テーブル15に追加する。
【0047】
次に、ページ・リード・ライト制御部11は、ページ消去が必要であるか否かを判定する(ステップS16)。ここで、ページ消去が必要である場合は、ステップS15でアドレス変換テーブル15にすでに存在していた論理アドレスに対応する物理データを更新した場合であり、また、ページ消去が不要である場合は、ステップS15でアドレス変換テーブル15に論理アドレスと物理アドレスとを対応付けたデータを新たに追加した場合である。
【0048】
ステップS16における判定の結果、ページ消去が必要であった場合には(ステップS16でYes)、ページ・リード・ライト制御部11は、所定のページ消去処理を実行し(ステップS17)、ページ消去が不要であった場合には(ステップS16でNo)、ページ消去処理の実行をスキップして、ページ・ライト・コマンドの処理を終了する。
【0049】
なお、ページ・リード・ライト制御部11は、ページ消去処理において、例えば、消去対象となった物理アドレスを有するページ212の消去を予約しておき、それぞれのブロック211ごとに、そのブロック211に属するすべてまたは大部分のページ212が消去予約された場合に、そのブロック211に属するすべてのページ212を消去する。
【0050】
また、図5(b)に示すように、ページ・リード・ライト制御部11は、ホスト装置2からページ・リード・コマンドを受信すると(ステップS21)、そのページ・リード・コマンドから論理アドレスを取得する(ステップS22)。なお、ページ・リード・コマンドは、不揮発データ記憶部20のNVMチップ21に記憶されているページデータを読み出す命令であり、ページ・リード・コマンドには、読み出し対象のページデータの論理アドレスが添付されている。
【0051】
次に、ページ・リード・ライト制御部11は、その取得した論理アドレスをアドレス変換処理部13へ渡し、そのアドレス変換処理部13を用いて、アドレス変換処理を実行する(ステップS23)。すなわち、アドレス変換処理部13は、ページ・リード・ライト制御部11から論理アドレスを受け取ると、アドレス変換テーブル15を参照して、その論理アドレスに対応付けられた物理アドレスを取得する。
【0052】
次に、ページ・リード・ライト制御部11は、アドレス変換処理部13によって取得された物理アドレスからページデータを読み出し(ステップS24)、読み出したページデータをホスト装置2へ送信して(ステップS25)、ページ・リード・コマンドの処理を終了する。
【0053】
続いて、図6および図7を参照して、故障チップが生じたときのミラー構成の再構成処理手順を具体的に説明する。ここで、図6は、不揮発データ記憶部20のA系のNVMチップ21のうちNVM(#5)が故障チップになったことを例示する図である。
【0054】
なお、NVMチップ21の故障は、ページ・リード・ライト制御部12がページ・リード・コマンド、ページ・ライト・コマンド、ページ消去コマンドなどを実行したとき検出される。例えば、ページ・リード・ライト制御部12は、ページ・リード・コマンドにより同じページ212のデータを所定回数以上読み出しても正しいデータを読み出せない場合には(検査符号215を用いて正誤の判定が可能)、そのページ212を含むNVMチップ21を故障チップと判定する。同様に、ページ・リード・ライト制御部12は、所定回数以上の書き込みやブロック消去を繰り返しても正しいデータを書き込むことができないページ212が生じたり、消去できないブロック211が生じたりした場合には、そのページ212またはブロック211を含むNVMチップ21を故障チップと判定する。
【0055】
図6に示すように、不揮発データ記憶部20において、A系のNVMチップ21のうち例えば、NVM(#5)が故障チップ(実線の×印が付されたNVMチップ21)になった場合には、A系のNVM(#5)についてはページデータの書き込みおよび読み出しができなくなるので、A系とB系とによるミラー構成が崩れる。
【0056】
しかしながら、この時点では、故障したNVM(#5)に記憶されているページデータと同じページデータが、NVM(#5)とミラー関係にあるB系のNVM(#17)(図6で、点線の×印が付されたNVMチップ21)に記憶されている。そこで、本実施形態では、A系のNVM(#5)が故障チップとなっても、B系のNVM(#17)に記憶されているページデータを、A系、B系それぞれにおける故障していないNVMチップ21へコピー(両系ライト)することにより、ミラー構成を再構成することができる。
【0057】
図7は、故障したA系のNVM(#5)とミラー関係にあるB系のNVM(#17)に記憶されているデータを、他の故障していないNVMチップ21にコピーする様子を、アドレス変換テーブル15の変化により例示した図である。
【0058】
図7(a)には、故障チップ発生時のアドレス変換テーブル15が示されている。ここでは、NVM(#5)が故障したものとして、コピー対象のページデータが太線枠で示されている。このとき、そのチップ番号は、“5”となっているが、コピー元となるNVMチップ21は、その故障したA系のNVM(#5)とミラー関係にあるB系のNVM(#17)である。
【0059】
次に、図7(b)には、NVM(#17)のページアドレス“2”に記憶されている論理アドレス“A1817”のページデータが、NVM(#0)およびNVM(#12)のページアドレス“10”にコピー(両系ライト)されたことが表されている。また、同様に、図7(c)には、NVM(#17)のページアドレス“9”に記憶されている論理アドレス“A1829”のページデータが、NVM(#1)およびNVM(#13)のページアドレス“13”にコピー(両系ライト)されたことが表されている。
【0060】
以下、同様に、図7(d),(e)に示されているように、NVM(#17)のページアドレス“10”、“11”に記憶されているページデータは、それぞれ、NVM(#2)およびNVM(#14)のページアドレス“9”、NVM(#3)およびNVM(#15)のページアドレス“7”へと、順次コピー(両系ライト)されていく。なお、その場合、当然ではあるが、故障チップであるNVM(#5)およびコピー元であるNVM(#17)へのコピーは、スキップされる。
【0061】
以上のようにして、NVM(#17)から読み出したページデータを、A系、B系の互いに対応するチップ番号の同じページアドレスに、順次コピー(両系ライト)していくことによって、NVM(#5)およびNVM(#17)を除外した形態で、ミラー構成が再構成される。従って、このようにしてミラー構成が再構成された場合には、A系のNVM(#5)だけでなく、NVM(#5)に対応するB系の故障していないNVM(#17)も使用不能となる。
【0062】
図8は、ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図である。この故障チップデータコピー処理は、ページ・リード・ライト制御部11により、故障チップが検出されたときに開始される。なお、ページ・リード・ライト制御部11は、図5ステップS17のページ消去処理などで、例えば、あるNVMチップ21の消去不可能なブロック(不良ブロック)の数が所定数以上に達した場合などに、そのNVMチップ21が故障したと判定する。
【0063】
図8に示すように、故障チップデータコピー処理部12は、まず、故障チップとミラー関係にある他系側のNVMチップ21をコピー元チップに指定する(ステップS31)とともに、コピー元チップのページアドレス(SPA)を初期化し、ゼロクリアする(ステップS32)。さらに、故障チップデータコピー処理部12は、コピー先チップのチップ番号(DCN)およびページアドレス(DPA)を初期化する(ステップS33)。なお、DCNおよびDPAの初期化される値は、後記する物理アドレス選択処理(図9参照)の処理方法などに依存し、適宜定められる。また、このようにして初期化されたSPA,DCN,DPAの値は、故障チップデータコピー処理部12内に設けられたメモリまたはレジスタに記憶される。
【0064】
次に、故障チップデータコピー処理部12は、コピー元チップのページアドレス(SPA)からページデータを読み出し(ステップS34)、その読み出したページデータから論理アドレスを取得する(ステップS35)。なお、論理アドレスは、そのページデータのヘッダ213に含まれている(図2参照)。
【0065】
次に、故障チップデータコピー処理部12は、物理アドレス選択処理部14を用いて、物理アドレス選択処理を実行する(ステップS36)。このとき、物理アドレス選択処理部14は、ページ・ライト・コマンド処理(図5(a)参照)の場合と同様に、空き物理アドレスの1つを選択して、提供するだけでよいが、図9に示すように、故障していないNVMチップ21から空き物理アドレスを均等に選択するようにしてもよい。
【0066】
次に、故障チップデータコピー処理部12は、物理アドレス選択処理によって選択された物理アドレスに、ステップS34でコピー元チップから読み出したページデータを書き込む(ステップS37)。なお、このページデータの書き込みは、両系ライトであり、A系、B系の互いにミラー関係にある2個のNVMチップ21の物理アドレスに、同じページデータが書き込まれる。
【0067】
次に、故障チップデータコピー処理部12は、ステップS35で取得した論理アドレスとステップS36の物理アドレス選択処理によって選択された物理アドレスとを対応付けたデータをアドレス変換テーブル15に追加することにより、アドレス変換テーブル15を更新する(ステップS38)。
【0068】
次に、故障チップデータコピー処理部12は、コピー元チップのページアドレス(SPA)をインクリメント、すなわち、SPA=SPA+1とし(ステップS39)、そのページアドレスが最終ページアドレスに到達したか否かを判定する(ステップS40)。その判定の結果、最終ページアドレスに到達していなかった場合には(ステップS40でNo)、故障チップデータコピー処理部12は、ステップS34へ戻り、ステップS34以降の処理を繰り返して実行する。また、最終ページアドレスに到達していた場合には(ステップS40でYes)、故障チップデータコピー処理部12は、故障チップデータコピー処理を終了する。なお、ここでいう最終ページアドレスとは、1個のNVMチップ21内におけるページアドレスの最大値である。
【0069】
図9は、故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図である。この処理フローは、コピー先となるNVMチップ21のすべてのチップで、あるページアドレス(このアドレスを、以下、DPA0と記す)以降がすべて空き物理アドレス領域であり、その空き物理アドレス領域の合算した領域サイズが故障チップ、つまり、NVMチップ21の物理領域サイズよりも大きい場合に適用される。
【0070】
図8に示したように、図9の物理アドレス選択処理が実行される前には、故障チップデータコピー処理のステップS33において、コピー先チップのチップ番号(DCN)およびページアドレス(DPA)が初期化される。ここでは、この初期化により、DCN=0、DPA=DPA0が設定されるものとする。
【0071】
続いて、図9の物理アドレス選択処理が開始されると、物理アドレス選択処理部14は、故障チップテーブル16を参照して、チップ番号(DCN)で指定されるコピー先チップが故障チップであるか否かを判定する(ステップS51)。なお、この判定では、A系、B系の互いにミラー関係にあるNVMチップ21のいずれか一方が故障チップである場合には、故障チップと判定する。例えば、B系のNVM(#17)が故障チップであった場合、DCN=5のときは、ステップS51では、故障チップと判定される。
【0072】
ステップS51での判定の結果、コピー先チップが故障チップであったときには(ステップS51でYes)、物理アドレス選択処理部14は、コピー先チップのチップ番号(DCN)をインクリメント、すなわち、DCN=DCN+1とする(ステップS52)。ただし、コピー先チップのチップ番号(DCN)が最終のチップ番号(DCN=11)を超えたとき、つまり、DCN=12のとき、DCN=0とする。
【0073】
また、ステップS51での判定の結果、コピー先チップが故障チップでなかったときには(ステップS51でYes)、物理アドレス選択処理部14は、この時点でのコピー先チップのチップ番号(DCN)およびページアドレス(DPA)を、物理アドレス選択処理部14が選択した物理アドレスとして上位処理部、すなわち、故障チップデータコピー処理部12へ返す(ステップS53)。
【0074】
次に、物理アドレス選択処理部14は、コピー先チップのチップ番号(DCN)をインクリメント、すなわち、DCN=DCN+1とする(ステップS54)。ただし、コピー先チップのチップ番号(DCN)が最終のチップ番号(DCN=11)を超えたとき、つまり、DCN=12のとき、DCN=0とする。さらに、物理アドレス選択処理部14は、コピー先チップのページアドレス(DPA)をインクリメント、すなわち、DPA=DPA+1として(ステップS54)、物理アドレス選択処理を終了する。
【0075】
なお、物理アドレス選択処理は、図9に示した処理フローに限定されるものではない。物理アドレス選択処理は、故障していないNVMチップ21から空き物理アドレスを見つけて、その1つを選択し、その選択した空き物理アドレスを送出するものであれば、どのような処理であってもよい。
【0076】
以上のような故障チップデータコピー処理および物理アドレス選択処理によって、故障チップに記憶されているページデータと同じページデータが、A系、B系の故障していない互いにミラー関係にあるNVMチップ21の同じページアドレスにコピーされることになる。その結果、SSD装置1は、故障チップおよびその故障チップとミラー関係にあるNVMチップ21を除外した形で、A系、B系によるミラー構成を再構成することができる。
【0077】
従って、本実施形態では、A系、B系のミラー構成をした不揮発データ記憶部20は、A系またはB系を構成するNVMチップ21のいずれかのチップが故障して、そのミラー構成が崩れたとしても、不揮発データ記憶制御部10における故障チップデータコピー処理(図8参照)によって、A系、B系のミラー構成を速やかに再構成することができる。従って、本実施形態によるSSD装置1の可用性は、例えば、3台の記憶装置(ハードディスク装置)によるミラー構成と同程度に高いものである。また、この場合、A系、B系の記憶装置部分の増加は、A系、B系それぞれにおいて、全12個に対して、1〜2個のNVMチップ21が増加する程度であるから、例えば、3重化のミラー構成などと比較してもその増加量は小さい。従って、本実施形態により提供される可用性の高いミラー構成のSSD装置1の価格は、抑制されたものとなる。
【0078】
(実施形態の変形例)
以上に説明した実施形態では、一方の系のNVMチップ21が故障した場合には、その故障チップとミラー関係にある他方の系のNVMチップ21は、故障していなくても使用できなくなる。このような不利益は、A系およびB系で同じアドレス変換テーブル15が用いられるために生じる。すなわち、A系およびB系で同じアドレス変換テーブル15が用いられることによって、A系およびB系の完全なミラー構成が保証されるわけであるが、それ故に、一方の系のNVMチップ21が故障した場合には、その故障チップとミラー関係にある他方の系のNVMチップ21が使用できなくなる、つまり、故障したことになるのは、やむを得ない事態である。
【0079】
そこで、この実施形態の変形例では、アドレス変換テーブル15は、A系およびB系それぞれに対して独立して設けられているとする。この場合には、同じ論理アドレスのページデータであっても、A系とB系とでは、記憶される物理アドレスは同じとは限らない。この意味では、ミラー構成は崩れているが、論理アドレス側からA系およびB系を見た場合には、ミラー構成は保たれている。
【0080】
この実施形態の変形例における故障チップデータコピー処理部12の処理フローは、図8で説明した処理フローとは、一部が異なったものとなる。図8の処理フローでは、コピー元のデータの所在は、故障チップとミラー関係にある他方の系のNVMチップ21であると簡単に指定することができるが、この実施形態の変形例では、コピー元のデータの所在を求めるために、2つのアドレス変換テーブル15を突き合わせる必要がある。
【0081】
すなわち、故障チップデータコピー処理部12は、まず、故障チップが属する系のアドレス変換テーブル15から、故障チップに記憶されているページデータの論理アドレスを抽出する。そして、他系側のアドレス変換テーブル15を参照して、その抽出された論理アドレスに対応付けられた物理アドレスを取得し、その取得した物理アドレスをコピー元データの所在アドレスとする。
【0082】
また、故障チップデータコピー処理におけるコピー先も図8の場合と相違する。図8では、コピー元データを両系ライトしているが、この実施形態の変形例では、両系ライトは不要である。コピー元データは、故障チップが属する系と同じ系の故障していないNVMチップ21の空き物理アドレスにコピーされればよい。従って、故障チップが属さない系のNVMチップ21については、その系のアドレス変換テーブル15も含め、何も変更する必要はない。従って、故障チップとミラー関係にある他方の系のNVMチップ21も、そのまま使用されることになる。
【0083】
以上のように、本実施形態の変形例では、一方の系のNVMチップ21が故障しても、その故障チップとミラー関係にある他方の系のNVMチップ21まで使用できなくなることはない。従って、物理アドレスの総領域の論理アドレスの総領域に対する冗長量が、NVMチップ21の1個以上2個未満である場合には、本実施形態の変形例では、例えば、A系で故障チップが発生し、その後、B系で故障チップが発生しても、SSD装置1は、そのままミラー構成を再構成することができ、継続して使用することができる。なお、元の実施形態の場合には、2個の故障チップが発生した場合には、ミラー構成を再構成することはできない。従って、その分だけ、SSD装置1の寿命は長くなり、可用性は向上する。
【符号の説明】
【0084】
1 SSD装置(ソリッド・ステート・ドライブ装置)
2 ホスト装置
3 ホストバス
10 不揮発データ記憶制御部
11 ページ・リード・ライト制御部
12 故障チップデータコピー処理部
13 アドレス変換処理部
14 物理アドレス選択処理部
15 アドレス変換テーブル
16 故障チップテーブル
20 不揮発データ記憶部
21 NVMチップ(不揮発性メモリチップ)
【特許請求の範囲】
【請求項1】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の2系統の不揮発データ記憶部と、前記ミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置。
【請求項2】
前記ミラー構成の2系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ1個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項1に記載のソリッド・ステート・ドライブ装置。
【請求項3】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項1に記載のソリッド・ステート・ドライブ装置。
【請求項4】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の2系統の不揮発データ記憶部と、前記ミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置のミラー構成再構成方法であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項5】
前記ミラー構成の2系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ1個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項4に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項6】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項4に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項1】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の2系統の不揮発データ記憶部と、前記ミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置。
【請求項2】
前記ミラー構成の2系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ1個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項1に記載のソリッド・ステート・ドライブ装置。
【請求項3】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項1に記載のソリッド・ステート・ドライブ装置。
【請求項4】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の2系統の不揮発データ記憶部と、前記ミラー構成の2系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置のミラー構成再構成方法であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記2系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項5】
前記ミラー構成の2系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ1個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項4に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項6】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項4に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2011−150590(P2011−150590A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−12203(P2010−12203)
【出願日】平成22年1月22日(2010.1.22)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願日】平成22年1月22日(2010.1.22)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]