(57)【要約】【課題】可用性を向上させ、かつ、価格を抑制することが可能なミラー構成のＳＳＤ装置を提供する。【解決手段】ＳＳＤ装置１は、Ａ系とＢ系とからなるミラー構成の不揮発データ記憶部２０および不揮発データ記憶制御部１０を備え、不揮発データ記憶制御部１０は、ページ・リード・ライト制御部１１、アドレス変換処理部１３、物理アドレス選択処理部１４、アドレス変換テーブル１５を備える。ページ・リード・ライト制御部１１は、ＮＶＭチップ２１の故障を検出したとき、その故障したＮＶＭチップ２１とミラー関係にあるＮＶＭチップ２１からページデータを読み出し、その読み出したページデータを、故障したＮＶＭチップ２１およびそれとミラー関係にあるＮＶＭチップ２１以外の、Ａ系およびＢ系の不揮発データ記憶部２０のそれぞれに属し、互いにミラー関係にあるＮＶＭチップ２１へコピーする。【選択図】図１
2011150590.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の２系統の不揮発データ記憶部と、前記ミラー構成の２系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記２系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置。
【請求項２】
前記ミラー構成の２系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ１個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項１に記載のソリッド・ステート・ドライブ装置。
【請求項３】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項１に記載のソリッド・ステート・ドライブ装置。
【請求項４】
それぞれが複数の不揮発性メモリチップを含んでなり、それぞれが所定の形式の同じページデータを記憶するミラー構成の２系統の不揮発データ記憶部と、前記ミラー構成の２系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成されたソリッド・ステート・ドライブ装置のミラー構成再構成方法であって、
前記不揮発データ記憶制御部は、
前記不揮発データ記憶部に記憶するページデータを識別する論理アドレスと、前記ページデータを記憶する前記不揮発性メモリチップおよびその内部のページアドレスを識別する物理アドレスと、を対応付けたアドレス変換テーブルと、
前記不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、
前記ページデータを前記不揮発データ記憶部に書き込むとき、前記不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、
前記不揮発データ記憶部から論理アドレスを指定してページデータを読み出すとき、前記アドレス変換テーブルを参照して前記論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、
を備え、
前記ページ・リード・ライト制御部は、
前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、
前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップから、その不揮発性メモリチップに記憶されているページデータを読み出し、
前記読み出したページデータを、前記故障した不揮発性メモリチップおよび前記故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記２系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーすること
を特徴とするソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項５】
前記ミラー構成の２系統の不揮発データ記憶部のそれぞれにおける物理アドレスの総領域サイズは、前記論理アドレスの総領域サイズと前記不揮発性メモリチップ１個に含まれる物理アドレスの領域サイズとを合算したサイズよりも大きいこと
を特徴とする請求項４に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【請求項６】
前記不揮発データ記憶部に記憶される前記ページデータには、論理アドレスが含まれていること
を特徴とする請求項４に記載のソリッド・ステート・ドライブ装置のミラー構成再構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリによるミラー構成のソリッド・ステート・ドライブ装置（以下、ＳＳＤ装置と略称）、および、そのＳＳＤ装置において故障チップが生じた場合にミラー構成を再構成するミラー構成再構成方法に関する。
【背景技術】
【０００２】
近年、不揮発性半導体メモリであるフラッシュメモリの大容量化と低価格化に伴い、フラッシュメモリを用いて構成したＳＳＤ装置がハードディスク装置の代替記憶装置として普及の兆しをみせている。一般に、ＳＳＤ装置は、ハードディスク装置で必須の可動部品が不要であるため、高速かつ高信頼であるとされている。しかしながら、フラッシュメモリは、低価格化してきたとはいえ、同一の記憶容量で比較すれば、ハードディスク装置に比べ高価である。
【０００３】
ところで、複数のハードディスク装置を冗長構成することによって信頼性を向上させる技術として、ＲＡＩＤ（Redundant Arrays of Inexpensive (or Independent) Disks）がある。ＲＡＩＤの構成には様々なものがあるが、その中で、比較的簡単な構成で、かつ、実用的な高信頼性が得られる構成として、ミラー構成（いわゆる、ＲＡＩＤ１）がある。
【０００４】
ミラー構成は、少なくとも２台のハードディスク装置で構成されるものであり、その２台のハードディスク装置には全く同じデータが記憶される。従って、いずれか一方のハードディスク装置が故障しても、その故障したハードディスク装置に記憶されていたデータは、他方のハードディスク装置に残っていることになる。従って、データが保全される意味において、信頼性が向上する。しかしながら、ミラー構成の場合、１台のハードディスク装置が故障した場合には、システムを停止させ、その故障したハードディスク装置を新しいハードディスク装置と取り替えることが必要となる。従って、ミラー構成のハードディスク装置の可用性は、必ずしも高いとはいえない。
【０００５】
ＲＡＩＤには、信頼性や可用性をさらに向上させた構成としてＲＡＩＤ１＋５などの構成があるが、より多くのハードディスク装置が必要となる（ちなみに、ＲＡＩＤ１＋５では、少なくとも６台が必要）。
【０００６】
また、特許文献１には、３台のハードディスク装置でミラーリングを行い、可用性を向上させたディスク記憶システムの例が開示されている。３台のハードディスク装置でミラーリングを行えば、そのいずれかが故障しても他の２台のハードディスク装置でミラーリングを継続することができる。従って、その可用性は高い。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−３１６５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術よれば、高信頼性と可用性を兼ね備えたディスク記憶システムを実現しようとすれば、前記のように少なくとも３台のハードディスク装置が必要となる。従って、単純にハードディスク装置をＳＳＤ装置に置き換えることよって、従来と同様の構成の記憶システムを実現しようとすれば、その価格は極めて高価なものとなってしまう。
【０００９】
本発明は、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のＳＳＤ装置およびＳＳＤ装置のミラー構成再構成方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のＳＳＤ装置は、それぞれが複数の不揮発性メモリチップからなるミラー構成の２系統の不揮発データ記憶部と、そのミラー構成の２系統の不揮発データ記憶部を制御する不揮発データ記憶制御部と、を含んで構成される。
また、その不揮発データ記憶制御部は、不揮発データ記憶部に記憶するページデータの論理アドレスと物理アドレスとを対応付けるアドレス変換テーブルと、不揮発データ記憶部に対してページデータの書き込みまたは読み出しの制御を行うページ・リード・ライト制御部と、不揮発データ記憶部から空きページの物理アドレスを選択する物理アドレス選択処理部と、アドレス変換テーブルを参照して論理アドレスに対応する物理アドレスを取得するアドレス変換処理部と、を含んで構成される。
そして、前記ページ・リード・ライト制御部は、前記不揮発データ記憶部を構成する不揮発性メモリチップのいずれかが故障していることを検出したときには、その故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、故障した不揮発性メモリチップおよびその故障した不揮発性メモリチップとミラー関係にある不揮発性メモリチップ以外の、前記２系統の不揮発データ記憶部のそれぞれに属し、互いにミラー関係となっている不揮発性メモリチップへコピーする。
【００１１】
以上のように、本発明のＳＳＤ装置におけるページ・リード・ライト制御部は、不揮発性メモリチップの故障を検出したときには、その故障チップと同じページデータを記憶している反対側系統に属する不揮発性メモリチップからページデータを読み出し、その読み出したページデータを、前記２系統の不揮発データ記憶部それぞれに属する故障していない不揮発性メモリチップへコピーする。従って、本発明のＳＳＤ装置においては、ある不揮発性メモリチップが故障して、一時的にＳＳＤ装置のミラー構成が崩れても、速やかにミラー構成が再構成される。
【００１２】
つまり、本発明のＳＳＤ装置は、２系統の不揮発データ記憶部のミラー構成であるが、一方の系統で故障チップが発生したとき、速やかに不揮発データ記憶部のミラー構成を再構成することができる。そのため、故障チップを取り替えたり、故障チップを含んだ系統の不揮発データ記憶部全体を取り替えたりする必要はない。従って、可用性向上のために、３重化などより高度な冗長構成にする必要がないので、価格を抑制した可用性の高いミラー構成のＳＳＤ装置が実現される。
【発明の効果】
【００１３】
本発明によれば、可用性を向上させることができ、かつ、価格を抑制することが可能なミラー構成のＳＳＤ装置およびＳＳＤ装置のミラー構成再構成方法が提供される。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るＳＳＤ装置の構成の例を示した図。
【図２】本発明の実施形態に係るＳＳＤ装置で用いられるＮＶＭチップの内部構成の例を示した図。
【図３】アドレス変換テーブルおよび故障チップテーブルの構成の例を示した図。
【図４】ＳＳＤ装置に実装可能な論理アドレスの領域とＳＳＤ装置に物理的に実装されている物理アドレスの領域の対応関係の例を示した図。
【図５】不揮発データ記憶制御部のページ・リード・ライト制御部が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図。
【図６】不揮発データ記憶部のＡ系のＮＶＭチップのうちＮＶＭ（＃５）が故障チップになったことを例示する図。
【図７】故障したＡ系のＮＶＭ（＃５）に対応するＢ系のＮＶＭ（＃１７）に記憶されているデータを、他の故障していないＮＶＭチップにコピーする様子を、アドレス変換テーブルの変化により例示した図。
【図８】ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図。
【図９】故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１６】
図１は、本発明の実施形態に係るＳＳＤ装置の構成の例を示した図である。図１に示すように、ＳＳＤ装置１は、自身にとって外部装置となるホスト装置２に、ホストバス３を介して接続される。
【００１７】
ここで、ホスト装置２は、いわゆるコンピュータ、または、コンピュータを利用した様々な形態の情報処理装置、制御装置、端末装置などである。また、ホストバス３は、ＩＤＥ（Integrated Drive Electronics），ＳＣＳＩ（Small Computer System Interface），ＳＡＴＡ（Serial Advanced Technology Attachment），ＳＡＳ（Serial Attached SCSI），ＵＳＢ（Universal Serial Bus）などである。
【００１８】
ＳＳＤ装置１は、不揮発データ記憶部２０および不揮発データ記憶制御部１０によって構成される。
【００１９】
不揮発データ記憶部２０は、不揮発性メモリであるＮＡＮＤフラッシュメモリのＮＶＭ（Non-Volatile Memory：不揮発性メモリ）チップ２１を複数個含んで構成される。このとき、不揮発データ記憶部２０は、Ａ系およびＢ系の２系統の記憶部に分割されて構成され、各系は、同じ記憶容量の、同じ個数のＮＶＭチップ２１によって構成される。すなわち、不揮発データ記憶部２０のＡ系およびＢ系により、ミラー構成の記憶装置が構成される。なお、図１の例では、不揮発データ記憶部２０のＡ系およびＢ系は、それぞれ１２個のＮＶＭチップ２１によって構成され、各ＮＶＭチップ２１には、ＮＶＭ（＃ｎ）の符号が付されている。ｎは、チップ番号（チップ識別情報）を表している。
【００２０】
不揮発データ記憶部２０のＡ系およびＢ系は、ミラー構成の記憶装置であるので、ＮＶＭチップ２１へのデータ書き込みは、両系で互いにミラー関係にある２つのＮＶＭチップ２１に対して同時に行われる（以下、両系ライトという）。また、データの読み出しは、いずれか一方の系に属するＮＶＭチップ２１から行われる。
【００２１】
ここで、両系で互いにミラー関係にあるＮＶＭチップ２１とは、両系それぞれで全く同じデータが記憶されるＮＶＭチップ２１をいう。なお、本実施形態では、ＮＶＭチップ２１のチップ番号ｎを各系のＮＶＭチップ２１の個数ｍ（図１の例では、ｍ＝１２）で割った余りｍｏｄ（ｎ，ｍ）が同じになる両系それぞれに属するＮＶＭチップ２１をいう。
【００２２】
不揮発データ記憶制御部１０は、ホスト装置２から供給されるデータをＡ系およびＢ系のＮＶＭチップ２１へ書き込む制御（ライト制御）、または、ホスト装置２からの求めに応じてＡ系またはＢ系のＮＶＭチップ２１からデータを読み出す制御（リード制御）を行う。また、不揮発データ記憶制御部１０は、不揮発データ記憶部２０を構成するＮＶＭチップ２１の故障を検出したとき、その故障したＮＶＭチップ２１を除去した構成で、ミラー構成を再構成する。
【００２３】
そこで、不揮発データ記憶制御部１０は、ＮＶＭチップ２１に対するデータのリード・ライト制御を実現するために、ページ・リード・ライト制御部１１、アドレス変換処理部１３、物理アドレス選択処理部１４、アドレス変換テーブル１５などの機能ブロックを備えている。また、不揮発データ記憶制御部１０は、故障チップ発生時にミラー構成を再構成する制御を実現するために、故障チップテーブル１６を備え、さらに、ミラー構成を再構成する場合のページ・リード・ライト制御、すなわち、故障チップのデータを他のＮＶＭチップ２１にコピーする故障チップデータコピー処理部１２を備えている。これらの各ブロックの処理機能の詳細については、以下、実施形態を説明する中で、順次、説明していく。
【００２４】
なお、以上のようなブロックにより構成された不揮発データ記憶制御部１０は、演算処理装置（ＣＰＵ：Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＦＰＧＡ（Field Programmable Gate Array）などを用いて実現することができる。その場合、不揮発データ記憶制御部１０を構成する各ブロックの機能は、前記の演算処理装置がＲＡＭまたはＲＯＭに記憶されている所定のプログラムを実行することによって実現される。
【００２５】
図２は、ＳＳＤ装置１で用いられるＮＶＭチップ２１の内部構成の例を示した図である。不揮発データ記憶制御部１０の各部の詳細な動作を説明する前に、ＮＶＭチップ２１の内部構成について説明しておく。ＮＶＭチップ２１が、いわゆる、ＮＡＮＤフラッシュメモリから構成される場合、図２（ａ），（ｂ）に示すように、１個のＮＶＭチップ２１の記憶領域は、複数のブロック２１１に分割され、それぞれのブロック２１１は、複数のページ２１２（例えば、６４ページ）に分割されて構成されている。また、図２（ｃ）に示すように、それぞれのページ２１２には、例えば、４ｋＢのデータを記憶する記憶領域が設けられている。
【００２６】
そこで、１個のＮＶＭチップ２１の記憶容量が、例えば、４ＧＢである場合に、１ブロック＝６４ページ、１ページ＝４ｋＢであるとすると、１個のＮＶＭチップ２１には、およそ１６ｋ個のブロック２１１が設けられていることになる。従って、図２（ａ）において、ｍ＝１６ｋ（１６,３８３）となる。
【００２７】
これらＮＶＭチップ２１におけるブロック２１１およびページ２１２の構成は、フラッシュメモリ自体の構造およびその読み出し・書き込み方法に由来し、そのデータの読み出し・書き込みついては、次のような制約が設けられている。
（１）データ読み出し・書き込みは、ページ２１２の単位で行う。（２）データの消去はブロック２１１の単位で行う。（３）ページ２１２が消去された状態でなければ、そのページ２１２への書き込みはできない。（４）ブロック２１１の消去回数には、上限がある。
【００２８】
従って、ＮＶＭチップ２１に対するデータの書き込みまたは読み出しは、図２（ｃ）に示したフォーマットのページ２１２を単位として行われる。そのフォーマットによれば、ページ２１２は、ヘッダ２１３とそれぞれが５１２Ｂのデータを含んでなる８個のセグメント２１４とによって構成される。このとき、各セグメント２１４のデータには、ＣＲＣ（Cyclic Redundancy Check）符号やリード・ソロモン符号などの検査符号２１５が付加される。また、ヘッダ２１３は、そのページに記憶されるデータの論理アドレスを含んで構成される。
【００２９】
なお、ここまでの説明では、ページ２１２は、４ｋＢのデータを記憶する記憶領域を有すると説明しているが、実際には（物理的には）４ｋＢ＋αの記憶領域を有している。このとき、＋αは２００〜２５６Ｂ程度であるが、この＋αの記憶領域部分を利用して、ヘッダ２１３や検査符号２１５が記憶される。以下、このページ２１２の領域に記憶されるヘッダ２１３や検査符号２１５を含めたデータをページデータと呼ぶ。
【００３０】
図３は、アドレス変換テーブル１５および故障チップテーブル１６の構成の例を示した図である。
【００３１】
アドレス変換テーブル１５は、不揮発データ記憶制御部１０内に設けられた図示しないＲＡＭ（Random Access Memory）などに記憶され、図３（ａ）に示すように、論理アドレスと物理アドレスを対応付けたテーブルである。また、アドレス変換テーブル１５は、ホスト装置２から送信されるページ・ライト・コマンドまたはページ・リード・コマンドに添付されている論理アドレスを物理アドレスに変換するためのテーブルとして機能する。ここで、論理アドレスは、ページデータを識別する情報であり、また、物理アドレスは、チップ番号とページアドレスからなり、そのページデータが、どのＮＶＭチップ２１の、どのページ２１２に記憶されているかを示す情報である。
【００３２】
本実施形態では、ページ２１２を識別するページアドレスは、それぞれのＮＶＭチップ２１ごとに全ブロック２１１を通しての通し番号が付されるものとする。従って、図２に示したように各ＮＶＭチップ２１が１６ｋ個のブロック２１１で構成され、各ブロック２１１が６４個のページ２１２で構成されているとすれば、各ＮＶＭチップ２１は、全部で１Ｍ個のページ２１２で構成される。つまり、その１Ｍ個のページ２１２を識別するページアドレスとして、０〜１Ｍ（１,０４８,５７５）の範囲に含まれる番号が付されることになる。
【００３３】
また、本実施形態では、アドレス変換テーブル１５は、Ａ系、Ｂ系で共用されるため、物理アドレスのチップ番号としては、Ａ系におけるチップ番号のみが記憶される。従って、図３（ａ）における論理アドレスが“Ａ１２３４”のページデータは、そのチップ番号が“５”であるから、そのページデータは、図１におけるＮＶＭチップ２１のＮＶＭ（＃５）にもＮＶＭ（＃１７）にも記憶されていることになる。
【００３４】
なお、アドレス変換テーブル１５における論理アドレスと物理アドレスの対応付けは、ＳＳＤ装置１が使用開始される最初からされておく必要はなく、ページデータが書き込まれるたびに、その都度、対応付けられればよい。つまり、アドレス変換テーブル１５は、最初は全部空欄であり、ページデータが書き込まれるとき、その都度、追加されていけばよい。
【００３５】
次に、図３（ｂ）に示すように、故障チップテーブル１６は、ＳＳＤ装置１に含まれるＮＶＭチップ２１の故障状態を表したテーブルである。ここで、故障状態が“０”は、故障していないことを、故障状態が“１”は、故障していることを表している。従って、故障チップテーブル１６は、例えば、２４ビットのフラグレジスタによって構成することができる。
【００３６】
なお、図３（ｂ）の例では、ＮＶＭ（＃２）のＮＶＭチップ２１が故障している。また、故障チップテーブル１６の各欄は、初期状態で、すべて“０”であり、故障チップが生じたとき、その故障チップの故障状態が“１”にされる。
【００３７】
図４は、ＳＳＤ装置１に実装可能な論理アドレスの領域とＳＳＤ装置１に物理的に実装されている物理アドレスの領域の対応関係の例を示した図である。詳細は後記するが、本実施形態では、あるＮＶＭチップ２１が故障した場合には、そのＮＶＭチップ２１に記憶されているページデータを他のＮＶＭチップ２１に分散させて記憶させる。そのため、実装可能な論理アドレスの領域サイズは、１２個のＮＶＭチップ２１を合算した物理アドレスの領域サイズから、１個のＮＶＭチップ２１に含まれる物理アドレスの領域サイズを差し引いた領域サイズよりも小であることが必要である。
【００３８】
従って、図４において、論理アドレスが０から順に＋１インクリメントしながら付される場合には、論理アドレスの最終アドレスは、１Ｍ×１１＝１１,５３４,３３６（１６進でＢ０００００）より小さくなければならない。なお、図４では、論理アドレスの最終アドレスは、１６進でＡＤＦＦＦＦであるとしている。
【００３９】
以上のように、本実施形態では、Ａ系、Ｂ系がそれぞれＮ個のＮＶＭチップ２１からなるミラー構成のＳＳＤ装置１に実装可能な論理アドレスの領域サイズ（言い換えれば、ＳＳＤ装置１の名目上の記憶容量）は、Ｎ−１個のＮＶＭチップ２１を合算した物理アドレスの領域サイズよりも小であることが必要である。
【００４０】
すなわち、ＳＳＤ装置１におけるＡ系、Ｂ系のそれぞれの物理的アドレスの総領域サイズは、ＳＳＤ装置１の論理アドレスの総領域サイズとＮＶＭチップ２１の１個に含まれる物理的アドレスの総領域サイズとを合算したサイズよりも大きくなければならない。これは、ＳＳＤ装置１の名目上の記憶容量（論理アドレスの総領域サイズ）を設定するとき、Ａ系、Ｂ系のそれぞれにＮＶＭチップ２１の１個分以上の冗長な物理アドレス領域を確保しておく必要があることを意味している。
【００４１】
図５は、不揮発データ記憶制御部１０のページ・リード・ライト制御部１１が実行するページ・ライト・コマンド処理およびページ・リード・コマンド処理の処理フローの例を示した図である。
【００４２】
図５（ａ）に示すように、ページ・リード・ライト制御部１１は、ホスト装置２からページ・ライト・コマンドを受信すると（ステップＳ１１）、そのページ・ライト・コマンドから論理アドレスを取得する（ステップＳ１２）。なお、ページ・ライト・コマンドは、ページデータを不揮発データ記憶部２０のＮＶＭチップ２１に書き込む命令であり、そのページ・ライト・コマンドには、論理アドレスを含んだ書き込み対象のページデータが添付されている。
【００４３】
次に、ページ・リード・ライト制御部１１は、物理アドレス選択処理部１４を用いて、物理アドレス選択処理を実行する（ステップＳ１３）。このとき、物理アドレス選択処理部１４は、アドレス変換テーブル１５を参照して、不揮発データ記憶部２０のＮＶＭチップ２１でデータが未だ書き込まれていない（消去された状態の）ページ２１２の物理アドレス、つまり、空きページの物理アドレス（以下、空き物理アドレスと略称する）の１つを選択する。
【００４４】
すなわち、物理アドレス選択処理は、ページ・ライト・コマンドに添付されているページデータを書き込むべき空きページの物理アドレスを選択する処理であり、その処理では、１つの空き物理アドレスが選択されればよい。なお、その物理アドレス選択処理において、各ページ２１２への書き込み回数を平準化（いわゆる、ウエアレベリング）する場合には、その平準化のアルゴリズムに沿って空き物理アドレスを選択するが、本実施形態では、平準化の方法は、どのようなものであってもよく、その詳細な説明を省略する。
【００４５】
次に、ページ・リード・ライト制御部１１は、物理アドレス選択処理によって選択された物理アドレスに、ページ・ライト・コマンドに添付されたページデータを書き込む（ステップＳ１４）。なお、この場合のページデータの書き込みは、両系ライトであり、Ａ系、Ｂ系の互いにミラー関係にある２つのＮＶＭチップ２１の物理アドレスに、同じページデータが書き込まれる。なお、Ａ系、Ｂ系の互いにミラー関係にある２つのＮＶＭチップ２１の物理アドレスとは、本実施形態の場合、それぞれのチップ番号を１２で割った余りが同じで、かつ、ページアドレスが同じである場合をいう。
【００４６】
次に、ページ・リード・ライト制御部１１は、ステップＳ１４で書き込んだページデータの論理アドレスと物理アドレスとを用いて、アドレス変換テーブル１５を更新する（ステップＳ１５）。すなわち、ページ・リード・ライト制御部１１がステップＳ１４を実行した際に、書き込み対象のページデータの論理アドレスがすでにアドレス変換テーブル１５に存在したときには、その論理アドレスに対応する物理アドレスを、ステップＳ１４でページデータの書き込み先となった物理アドレスに更新する。また、書き込み対象のページデータの論理アドレスがアドレス変換テーブル１５に存在しなかったときには、その論理アドレスとステップＳ１４で書き込み先となった物理アドレスとを対応付けたデータを、新たにアドレス変換テーブル１５に追加する。
【００４７】
次に、ページ・リード・ライト制御部１１は、ページ消去が必要であるか否かを判定する（ステップＳ１６）。ここで、ページ消去が必要である場合は、ステップＳ１５でアドレス変換テーブル１５にすでに存在していた論理アドレスに対応する物理データを更新した場合であり、また、ページ消去が不要である場合は、ステップＳ１５でアドレス変換テーブル１５に論理アドレスと物理アドレスとを対応付けたデータを新たに追加した場合である。
【００４８】
ステップＳ１６における判定の結果、ページ消去が必要であった場合には（ステップＳ１６でＹｅｓ）、ページ・リード・ライト制御部１１は、所定のページ消去処理を実行し（ステップＳ１７）、ページ消去が不要であった場合には（ステップＳ１６でＮｏ）、ページ消去処理の実行をスキップして、ページ・ライト・コマンドの処理を終了する。
【００４９】
なお、ページ・リード・ライト制御部１１は、ページ消去処理において、例えば、消去対象となった物理アドレスを有するページ２１２の消去を予約しておき、それぞれのブロック２１１ごとに、そのブロック２１１に属するすべてまたは大部分のページ２１２が消去予約された場合に、そのブロック２１１に属するすべてのページ２１２を消去する。
【００５０】
また、図５（ｂ）に示すように、ページ・リード・ライト制御部１１は、ホスト装置２からページ・リード・コマンドを受信すると（ステップＳ２１）、そのページ・リード・コマンドから論理アドレスを取得する（ステップＳ２２）。なお、ページ・リード・コマンドは、不揮発データ記憶部２０のＮＶＭチップ２１に記憶されているページデータを読み出す命令であり、ページ・リード・コマンドには、読み出し対象のページデータの論理アドレスが添付されている。
【００５１】
次に、ページ・リード・ライト制御部１１は、その取得した論理アドレスをアドレス変換処理部１３へ渡し、そのアドレス変換処理部１３を用いて、アドレス変換処理を実行する（ステップＳ２３）。すなわち、アドレス変換処理部１３は、ページ・リード・ライト制御部１１から論理アドレスを受け取ると、アドレス変換テーブル１５を参照して、その論理アドレスに対応付けられた物理アドレスを取得する。
【００５２】
次に、ページ・リード・ライト制御部１１は、アドレス変換処理部１３によって取得された物理アドレスからページデータを読み出し（ステップＳ２４）、読み出したページデータをホスト装置２へ送信して（ステップＳ２５）、ページ・リード・コマンドの処理を終了する。
【００５３】
続いて、図６および図７を参照して、故障チップが生じたときのミラー構成の再構成処理手順を具体的に説明する。ここで、図６は、不揮発データ記憶部２０のＡ系のＮＶＭチップ２１のうちＮＶＭ（＃５）が故障チップになったことを例示する図である。
【００５４】
なお、ＮＶＭチップ２１の故障は、ページ・リード・ライト制御部１２がページ・リード・コマンド、ページ・ライト・コマンド、ページ消去コマンドなどを実行したとき検出される。例えば、ページ・リード・ライト制御部１２は、ページ・リード・コマンドにより同じページ２１２のデータを所定回数以上読み出しても正しいデータを読み出せない場合には（検査符号２１５を用いて正誤の判定が可能）、そのページ２１２を含むＮＶＭチップ２１を故障チップと判定する。同様に、ページ・リード・ライト制御部１２は、所定回数以上の書き込みやブロック消去を繰り返しても正しいデータを書き込むことができないページ２１２が生じたり、消去できないブロック２１１が生じたりした場合には、そのページ２１２またはブロック２１１を含むＮＶＭチップ２１を故障チップと判定する。
【００５５】
図６に示すように、不揮発データ記憶部２０において、Ａ系のＮＶＭチップ２１のうち例えば、ＮＶＭ（＃５）が故障チップ（実線の×印が付されたＮＶＭチップ２１）になった場合には、Ａ系のＮＶＭ（＃５）についてはページデータの書き込みおよび読み出しができなくなるので、Ａ系とＢ系とによるミラー構成が崩れる。
【００５６】
しかしながら、この時点では、故障したＮＶＭ（＃５）に記憶されているページデータと同じページデータが、ＮＶＭ（＃５）とミラー関係にあるＢ系のＮＶＭ（＃１７）（図６で、点線の×印が付されたＮＶＭチップ２１）に記憶されている。そこで、本実施形態では、Ａ系のＮＶＭ（＃５）が故障チップとなっても、Ｂ系のＮＶＭ（＃１７）に記憶されているページデータを、Ａ系、Ｂ系それぞれにおける故障していないＮＶＭチップ２１へコピー（両系ライト）することにより、ミラー構成を再構成することができる。
【００５７】
図７は、故障したＡ系のＮＶＭ（＃５）とミラー関係にあるＢ系のＮＶＭ（＃１７）に記憶されているデータを、他の故障していないＮＶＭチップ２１にコピーする様子を、アドレス変換テーブル１５の変化により例示した図である。
【００５８】
図７（ａ）には、故障チップ発生時のアドレス変換テーブル１５が示されている。ここでは、ＮＶＭ（＃５）が故障したものとして、コピー対象のページデータが太線枠で示されている。このとき、そのチップ番号は、“５”となっているが、コピー元となるＮＶＭチップ２１は、その故障したＡ系のＮＶＭ（＃５）とミラー関係にあるＢ系のＮＶＭ（＃１７）である。
【００５９】
次に、図７（ｂ）には、ＮＶＭ（＃１７）のページアドレス“２”に記憶されている論理アドレス“Ａ１８１７”のページデータが、ＮＶＭ（＃０）およびＮＶＭ（＃１２）のページアドレス“１０”にコピー（両系ライト）されたことが表されている。また、同様に、図７（ｃ）には、ＮＶＭ（＃１７）のページアドレス“９”に記憶されている論理アドレス“Ａ１８２９”のページデータが、ＮＶＭ（＃１）およびＮＶＭ（＃１３）のページアドレス“１３”にコピー（両系ライト）されたことが表されている。
【００６０】
以下、同様に、図７（ｄ），（ｅ）に示されているように、ＮＶＭ（＃１７）のページアドレス“１０”、“１１”に記憶されているページデータは、それぞれ、ＮＶＭ（＃２）およびＮＶＭ（＃１４）のページアドレス“９”、ＮＶＭ（＃３）およびＮＶＭ（＃１５）のページアドレス“７”へと、順次コピー（両系ライト）されていく。なお、その場合、当然ではあるが、故障チップであるＮＶＭ（＃５）およびコピー元であるＮＶＭ（＃１７）へのコピーは、スキップされる。
【００６１】
以上のようにして、ＮＶＭ（＃１７）から読み出したページデータを、Ａ系、Ｂ系の互いに対応するチップ番号の同じページアドレスに、順次コピー（両系ライト）していくことによって、ＮＶＭ（＃５）およびＮＶＭ（＃１７）を除外した形態で、ミラー構成が再構成される。従って、このようにしてミラー構成が再構成された場合には、Ａ系のＮＶＭ（＃５）だけでなく、ＮＶＭ（＃５）に対応するＢ系の故障していないＮＶＭ（＃１７）も使用不能となる。
【００６２】
図８は、ミラー構成を再構成するために実行される故障チップデータコピー処理の処理フローの例を示した図である。この故障チップデータコピー処理は、ページ・リード・ライト制御部１１により、故障チップが検出されたときに開始される。なお、ページ・リード・ライト制御部１１は、図５ステップＳ１７のページ消去処理などで、例えば、あるＮＶＭチップ２１の消去不可能なブロック（不良ブロック）の数が所定数以上に達した場合などに、そのＮＶＭチップ２１が故障したと判定する。
【００６３】
図８に示すように、故障チップデータコピー処理部１２は、まず、故障チップとミラー関係にある他系側のＮＶＭチップ２１をコピー元チップに指定する（ステップＳ３１）とともに、コピー元チップのページアドレス（ＳＰＡ）を初期化し、ゼロクリアする（ステップＳ３２）。さらに、故障チップデータコピー処理部１２は、コピー先チップのチップ番号（ＤＣＮ）およびページアドレス（ＤＰＡ）を初期化する（ステップＳ３３）。なお、ＤＣＮおよびＤＰＡの初期化される値は、後記する物理アドレス選択処理（図９参照）の処理方法などに依存し、適宜定められる。また、このようにして初期化されたＳＰＡ，ＤＣＮ，ＤＰＡの値は、故障チップデータコピー処理部１２内に設けられたメモリまたはレジスタに記憶される。
【００６４】
次に、故障チップデータコピー処理部１２は、コピー元チップのページアドレス（ＳＰＡ）からページデータを読み出し（ステップＳ３４）、その読み出したページデータから論理アドレスを取得する（ステップＳ３５）。なお、論理アドレスは、そのページデータのヘッダ２１３に含まれている（図２参照）。
【００６５】
次に、故障チップデータコピー処理部１２は、物理アドレス選択処理部１４を用いて、物理アドレス選択処理を実行する（ステップＳ３６）。このとき、物理アドレス選択処理部１４は、ページ・ライト・コマンド処理（図５（ａ）参照）の場合と同様に、空き物理アドレスの１つを選択して、提供するだけでよいが、図９に示すように、故障していないＮＶＭチップ２１から空き物理アドレスを均等に選択するようにしてもよい。
【００６６】
次に、故障チップデータコピー処理部１２は、物理アドレス選択処理によって選択された物理アドレスに、ステップＳ３４でコピー元チップから読み出したページデータを書き込む（ステップＳ３７）。なお、このページデータの書き込みは、両系ライトであり、Ａ系、Ｂ系の互いにミラー関係にある２個のＮＶＭチップ２１の物理アドレスに、同じページデータが書き込まれる。
【００６７】
次に、故障チップデータコピー処理部１２は、ステップＳ３５で取得した論理アドレスとステップＳ３６の物理アドレス選択処理によって選択された物理アドレスとを対応付けたデータをアドレス変換テーブル１５に追加することにより、アドレス変換テーブル１５を更新する（ステップＳ３８）。
【００６８】
次に、故障チップデータコピー処理部１２は、コピー元チップのページアドレス（ＳＰＡ）をインクリメント、すなわち、ＳＰＡ＝ＳＰＡ＋１とし（ステップＳ３９）、そのページアドレスが最終ページアドレスに到達したか否かを判定する（ステップＳ４０）。その判定の結果、最終ページアドレスに到達していなかった場合には（ステップＳ４０でＮｏ）、故障チップデータコピー処理部１２は、ステップＳ３４へ戻り、ステップＳ３４以降の処理を繰り返して実行する。また、最終ページアドレスに到達していた場合には（ステップＳ４０でＹｅｓ）、故障チップデータコピー処理部１２は、故障チップデータコピー処理を終了する。なお、ここでいう最終ページアドレスとは、１個のＮＶＭチップ２１内におけるページアドレスの最大値である。
【００６９】
図９は、故障チップデータコピー処理時に実行される物理アドレス選択処理の処理フローの例を示した図である。この処理フローは、コピー先となるＮＶＭチップ２１のすべてのチップで、あるページアドレス（このアドレスを、以下、ＤＰＡ０と記す）以降がすべて空き物理アドレス領域であり、その空き物理アドレス領域の合算した領域サイズが故障チップ、つまり、ＮＶＭチップ２１の物理領域サイズよりも大きい場合に適用される。
【００７０】
図８に示したように、図９の物理アドレス選択処理が実行される前には、故障チップデータコピー処理のステップＳ３３において、コピー先チップのチップ番号（ＤＣＮ）およびページアドレス（ＤＰＡ）が初期化される。ここでは、この初期化により、ＤＣＮ＝０、ＤＰＡ＝ＤＰＡ０が設定されるものとする。
【００７１】
続いて、図９の物理アドレス選択処理が開始されると、物理アドレス選択処理部１４は、故障チップテーブル１６を参照して、チップ番号（ＤＣＮ）で指定されるコピー先チップが故障チップであるか否かを判定する（ステップＳ５１）。なお、この判定では、Ａ系、Ｂ系の互いにミラー関係にあるＮＶＭチップ２１のいずれか一方が故障チップである場合には、故障チップと判定する。例えば、Ｂ系のＮＶＭ（＃１７）が故障チップであった場合、ＤＣＮ＝５のときは、ステップＳ５１では、故障チップと判定される。
【００７２】
ステップＳ５１での判定の結果、コピー先チップが故障チップであったときには（ステップＳ５１でＹｅｓ）、物理アドレス選択処理部１４は、コピー先チップのチップ番号（ＤＣＮ）をインクリメント、すなわち、ＤＣＮ＝ＤＣＮ＋１とする（ステップＳ５２）。ただし、コピー先チップのチップ番号（ＤＣＮ）が最終のチップ番号（ＤＣＮ＝１１）を超えたとき、つまり、ＤＣＮ＝１２のとき、ＤＣＮ＝０とする。
【００７３】
また、ステップＳ５１での判定の結果、コピー先チップが故障チップでなかったときには（ステップＳ５１でＹｅｓ）、物理アドレス選択処理部１４は、この時点でのコピー先チップのチップ番号（ＤＣＮ）およびページアドレス（ＤＰＡ）を、物理アドレス選択処理部１４が選択した物理アドレスとして上位処理部、すなわち、故障チップデータコピー処理部１２へ返す（ステップＳ５３）。
【００７４】
次に、物理アドレス選択処理部１４は、コピー先チップのチップ番号（ＤＣＮ）をインクリメント、すなわち、ＤＣＮ＝ＤＣＮ＋１とする（ステップＳ５４）。ただし、コピー先チップのチップ番号（ＤＣＮ）が最終のチップ番号（ＤＣＮ＝１１）を超えたとき、つまり、ＤＣＮ＝１２のとき、ＤＣＮ＝０とする。さらに、物理アドレス選択処理部１４は、コピー先チップのページアドレス（ＤＰＡ）をインクリメント、すなわち、ＤＰＡ＝ＤＰＡ＋１として（ステップＳ５４）、物理アドレス選択処理を終了する。
【００７５】
なお、物理アドレス選択処理は、図９に示した処理フローに限定されるものではない。物理アドレス選択処理は、故障していないＮＶＭチップ２１から空き物理アドレスを見つけて、その１つを選択し、その選択した空き物理アドレスを送出するものであれば、どのような処理であってもよい。
【００７６】
以上のような故障チップデータコピー処理および物理アドレス選択処理によって、故障チップに記憶されているページデータと同じページデータが、Ａ系、Ｂ系の故障していない互いにミラー関係にあるＮＶＭチップ２１の同じページアドレスにコピーされることになる。その結果、ＳＳＤ装置１は、故障チップおよびその故障チップとミラー関係にあるＮＶＭチップ２１を除外した形で、Ａ系、Ｂ系によるミラー構成を再構成することができる。
【００７７】
従って、本実施形態では、Ａ系、Ｂ系のミラー構成をした不揮発データ記憶部２０は、Ａ系またはＢ系を構成するＮＶＭチップ２１のいずれかのチップが故障して、そのミラー構成が崩れたとしても、不揮発データ記憶制御部１０における故障チップデータコピー処理（図８参照）によって、Ａ系、Ｂ系のミラー構成を速やかに再構成することができる。従って、本実施形態によるＳＳＤ装置１の可用性は、例えば、３台の記憶装置（ハードディスク装置）によるミラー構成と同程度に高いものである。また、この場合、Ａ系、Ｂ系の記憶装置部分の増加は、Ａ系、Ｂ系それぞれにおいて、全１２個に対して、１〜２個のＮＶＭチップ２１が増加する程度であるから、例えば、３重化のミラー構成などと比較してもその増加量は小さい。従って、本実施形態により提供される可用性の高いミラー構成のＳＳＤ装置１の価格は、抑制されたものとなる。
【００７８】
（実施形態の変形例）
以上に説明した実施形態では、一方の系のＮＶＭチップ２１が故障した場合には、その故障チップとミラー関係にある他方の系のＮＶＭチップ２１は、故障していなくても使用できなくなる。このような不利益は、Ａ系およびＢ系で同じアドレス変換テーブル１５が用いられるために生じる。すなわち、Ａ系およびＢ系で同じアドレス変換テーブル１５が用いられることによって、Ａ系およびＢ系の完全なミラー構成が保証されるわけであるが、それ故に、一方の系のＮＶＭチップ２１が故障した場合には、その故障チップとミラー関係にある他方の系のＮＶＭチップ２１が使用できなくなる、つまり、故障したことになるのは、やむを得ない事態である。
【００７９】
そこで、この実施形態の変形例では、アドレス変換テーブル１５は、Ａ系およびＢ系それぞれに対して独立して設けられているとする。この場合には、同じ論理アドレスのページデータであっても、Ａ系とＢ系とでは、記憶される物理アドレスは同じとは限らない。この意味では、ミラー構成は崩れているが、論理アドレス側からＡ系およびＢ系を見た場合には、ミラー構成は保たれている。
【００８０】
この実施形態の変形例における故障チップデータコピー処理部１２の処理フローは、図８で説明した処理フローとは、一部が異なったものとなる。図８の処理フローでは、コピー元のデータの所在は、故障チップとミラー関係にある他方の系のＮＶＭチップ２１であると簡単に指定することができるが、この実施形態の変形例では、コピー元のデータの所在を求めるために、２つのアドレス変換テーブル１５を突き合わせる必要がある。
【００８１】
すなわち、故障チップデータコピー処理部１２は、まず、故障チップが属する系のアドレス変換テーブル１５から、故障チップに記憶されているページデータの論理アドレスを抽出する。そして、他系側のアドレス変換テーブル１５を参照して、その抽出された論理アドレスに対応付けられた物理アドレスを取得し、その取得した物理アドレスをコピー元データの所在アドレスとする。
【００８２】
また、故障チップデータコピー処理におけるコピー先も図８の場合と相違する。図８では、コピー元データを両系ライトしているが、この実施形態の変形例では、両系ライトは不要である。コピー元データは、故障チップが属する系と同じ系の故障していないＮＶＭチップ２１の空き物理アドレスにコピーされればよい。従って、故障チップが属さない系のＮＶＭチップ２１については、その系のアドレス変換テーブル１５も含め、何も変更する必要はない。従って、故障チップとミラー関係にある他方の系のＮＶＭチップ２１も、そのまま使用されることになる。
【００８３】
以上のように、本実施形態の変形例では、一方の系のＮＶＭチップ２１が故障しても、その故障チップとミラー関係にある他方の系のＮＶＭチップ２１まで使用できなくなることはない。従って、物理アドレスの総領域の論理アドレスの総領域に対する冗長量が、ＮＶＭチップ２１の１個以上２個未満である場合には、本実施形態の変形例では、例えば、Ａ系で故障チップが発生し、その後、Ｂ系で故障チップが発生しても、ＳＳＤ装置１は、そのままミラー構成を再構成することができ、継続して使用することができる。なお、元の実施形態の場合には、２個の故障チップが発生した場合には、ミラー構成を再構成することはできない。従って、その分だけ、ＳＳＤ装置１の寿命は長くなり、可用性は向上する。
【符号の説明】
【００８４】
１      ＳＳＤ装置（ソリッド・ステート・ドライブ装置）
２      ホスト装置
３      ホストバス
１０    不揮発データ記憶制御部
１１    ページ・リード・ライト制御部
１２    故障チップデータコピー処理部
１３    アドレス変換処理部
１４    物理アドレス選択処理部
１５    アドレス変換テーブル
１６    故障チップテーブル
２０    不揮発データ記憶部
２１    ＮＶＭチップ（不揮発性メモリチップ）
【図１】
2011150590.tif 000003
【図２】
2011150590.tif 000004
【図３】
2011150590.tif 000005
【図４】
2011150590.tif 000006
【図５】
2011150590.tif 000007
【図６】
2011150590.tif 000008
【図７】
2011150590.tif 000009
【図８】
2011150590.tif 000010
【図９】
2011150590.tif 000011