(57)【要約】【課題】全体の信頼性を確保しつつチップ単体に許容される不良率を緩和したメモリシステムを提供すること。【解決手段】夫々所定サイズの単位領域毎に分割管理されるｎ個の不揮発性半導体メモリのチップを有し、前記ｎ個のチップのうちの一つのチップの単位領域は前記単位領域に夫々対応付けられている他のｎ−１個のチップにおける単位領域を含む群に対する誤り訂正符号を記憶し、かつ前記誤り訂正符号を格納するチップが単位領域の位置毎に異なるメモリチップ群と、単位領域のデータを書き換えるとき、前記データの誤り訂正符号を格納している単位領域を書き換えデータの書き込み先に指定し、書き換え前のデータが格納されていた単位領域を新たな誤り訂正符号の格納先に指定するアクセス先算出部と、を備える。【選択図】図７
2010282369.tif 000002
【特許請求の範囲】
【請求項１】
夫々所定サイズの単位領域毎に分割管理されるｎ個の不揮発性半導体メモリのチップを有し、前記ｎ個のチップのうちの一つのチップの単位領域は前記単位領域に夫々対応付けられている他のｎ−１個のチップにおける単位領域を含む群に対する誤り訂正符号を記憶し、かつ前記誤り訂正符号を格納するチップが単位領域の位置毎に異なるメモリチップ群と、
単位領域のデータを書き換えるとき、前記データの誤り訂正符号を格納している単位領域を書き換えデータの書き込み先に指定し、書き換え前のデータが格納されていた単位領域を新たな誤り訂正符号の格納先に指定するアクセス先算出部と、
を備えることを特徴とするメモリシステム。
【請求項２】
前記単位領域は、ブロックまたは複数ブロックである、ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記ｎ個のチップのうちの一つのチップが読み出し不能となったとき、前記読み出し不能のチップを除くｎ−１個のチップに単位領域毎に格納されている水平パリティおよびデータに基づいて前記読み出し不能のチップに格納されていたデータを救済するチップ故障対応部をさらに備える、ことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記メモリチップ群を複数有する請求項１に記載のメモリシステム。
【請求項５】
前記不揮発性半導体メモリチップからなるスペアチップをさらに有し、
前記チップ故障対応部は、前記救済したデータを前記スペアチップに格納する、
ことを特徴とする請求項３に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムに用いられるメモリシステムとして、ＮＡＮＤ型フラッシュメモリ（以降、単にＮＡＮＤメモリという）などの不揮発性半導体メモリを搭載したＳＳＤ（Solid  State  Drive）が注目されている。ＳＳＤなどのメモリシステムは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
【０００３】
メモリシステムは、一般的に、記憶容量を大きくするために、複数（例えば１６個や３２個）のＮＡＮＤメモリチップ（以降、単にチップという）を搭載している。夫々のチップは、メモリセルにアクセスするためのカラムデコーダ、ロウデコーダなどを制御する制御回路を個別に有している。この制御回路が故障した場合にはそのチップに書き込まれていたデータが全て読み出せなくなる。各チップの制御回路には、不良率がメモリシステム全体に許容される不良率の約１／ｎ（ｎは搭載するチップの数）倍以下であることが要求される。メモリシステムに搭載されるチップ数は増加傾向にあるので、チップ数に反比例して小さくなる１チップ当たりで許容される不良率は今後メモリシステム製造を益々困難にすることが予想される。したがって、チップ単体に許容される不良率を緩和することが要望されていた。また、制御回路が故障したとき、読み出し不能となったデータを救済する仕組みが要望されていた。
【０００４】
これらの要望に応える方策として、チップ数に冗長性を持たせ、冗長チップに誤り訂正符号を格納することが考えられる。しかしながら、不揮発性半導体メモリのチップには書込み／消去回数に制限がある。特定のチップを誤り訂正符号専用にすると他のチップのどれか１個が書き換えられる度に消去・再書込みを繰り返すことになり、誤り訂正符号専用チップの劣化が著しくなるという新たな問題が生じる。
【０００５】
ところで、記憶素子に格納するデータに基づいて誤り訂正符号を算出し、格納されたデータにエラーが生じたとき、予め算出しておいた誤り訂正符号に基づいて前記エラーが生じたデータを救済する技術がいくつか公知となっている。例えば特許文献１には、複数チップでパリティグループを形成する技術が開示されている。しかしながら、特許文献１には、チップ数の冗長性およびパリティを格納する位置については記述されていない。また、特許文献２には、半導体記憶素子のディスク領域に格納するデータに関する誤り訂正符号を半導体記憶素子に格納する技術が開示されている。また、特許文献３には、パリティ情報を格納する専用のメモリカードを備える技術が開示されている。しかしながら、特許文献２および特許文献３の技術では、誤り訂正符号を格納する部位の劣化を抑えることはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３２３２２４号公報
【特許文献２】特開２００１−１６７００２号公報
【特許文献３】特開２０００−３３９２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、全体の信頼性を確保しつつチップ単体に許容される不良率を緩和したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、夫々所定サイズの単位領域毎に分割管理されるｎ個の不揮発性半導体メモリのチップを有し、前記ｎ個のチップのうちの一つのチップの単位領域は前記単位領域に夫々対応付けられている他のｎ−１個のチップにおける単位領域を含む群に対する誤り訂正符号を記憶し、かつ前記誤り訂正符号を格納するチップが単位領域の位置毎に異なるメモリチップ群と、単位領域のデータを書き換えるとき、前記データの誤り訂正符号を格納している単位領域を書き換えデータの書き込み先に指定し、書き換え前のデータが格納されていた単位領域を新たな誤り訂正符号の格納先に指定するアクセス先算出部と、を備えることを特徴とするメモリシステムが提供される。
【発明の効果】
【０００９】
本発明によれば、全体の信頼性を確保しつつチップ単体に許容される不良率を緩和したメモリシステムを提供することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施の形態にかかるＳＳＤの構成を示す図。
【図２】図２は、データおよびパリティが格納されている様子を説明する図。
【図３】図３は、データおよびパリティが格納されている様子を説明する図。
【図４】図４は、データおよびパリティが格納されている様子を説明する図。
【図５】図５は、チップ故障時のデータの状態を説明する図。
【図６】図６は、第１の実施の形態にかかるデータ転送装置の機能構成を説明する図。
【図７】図７は、第１の実施の形態にかかるＳＳＤの書き込み処理時の動作を説明するフローチャート。
【図８】図８は、第１の実施の形態にかかるＳＳＤの読み出し処理時の動作を説明するフローチャート。
【図９】図９は、第１の実施の形態にかかるＳＳＤのデータを救済する動作を説明するフローチャート。
【図１０】図１０は、第２の実施の形態にかかるＳＳＤが備えるＮＡＮＤメモリの構成を説明する図。
【図１１】図１１は、第２の実施の形態にかかるＳＳＤのスペアチップの使用を開始する動作を説明するフローチャート。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１２】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかるメモリシステムの構成を示すブロック図である。ここでは、メモリシステムの一例としてＳＳＤを例に挙げて説明するが、本第１の実施の形態の適用対象はＳＳＤに限定しない。
【００１３】
図１に示すように、ＳＳＤ１は、パーソナルコンピュータなどのホスト装置２にＳＡＴＡインタフェースなどの通信規格で接続され、ホスト装置２の外部メモリとして機能する。ＳＳＤ１は、ホスト装置２から書き込み要求されたデータを記憶する不揮発性メモリであるＮＡＮＤメモリ１０と、ホスト装置２とＮＡＮＤメモリ１０との間のデータ転送を制御するデータ転送装置２０とを備えている。ＳＳＤ１がホスト装置２から受信する書き込み／読み出し要求は、書き込み／読み出し先のアドレス情報（例えば、ＬＢＡ：Logical  Block  Addressing）と書き込み／読み出し要求するデータのサイズとが含まれている。
【００１４】
ＮＡＮＤメモリ１０は、夫々一つの冗長チップが追加された複数のチップから構成される一つ以上のチップグループを有している。ここでは、ＮＡＮＤメモリ１０は、チップａ〜ｊを備えており、チップａ〜ｄに冗長チップｅが追加された合計５個のチップがチップグループ１０ａ、チップｆ〜ｉに冗長チップｊが追加された合計５個のチップがチップグループ１０ｂを形成している。チップグループ１０ａ、１０ｂは、夫々、５チップ分の記憶容量を有しているが、４チップ分の記憶容量がホスト装置２から書き込み要求されたデータ（以降、単にデータということもある）を格納するために使用され、冗長チップの追加により増加した残りの１チップ分の記憶容量はデータの誤り訂正符号としてのパリティを格納するために使用される。
【００１５】
ここで、特定のチップをパリティを格納する専用の領域とすると、他のチップのどれか１個が書き換えられる度に消去・再書込みを繰り返すことになり、パリティを格納しているチップは他のチップに比べて劣化が激しくなるという問題がある。この問題を解決するために、本第１の実施の形態では、パリティを格納する領域を動的に変化させるようにした。以下、チップグループ１０ａ、１０ｂにおけるデータおよびパリティの格納ルールについて具体的に説明する。なお、チップグループ１０ａおよびチップグループ１０ｂは同じ構成を有しているので、以降は代表としてチップグループ１０ａのみについて説明する。
【００１６】
チップａ〜ｅは夫々記憶領域が所定サイズ毎に分割管理され、同一チップ上に属していても所定サイズの領域毎にデータが格納される領域であるかパリティが格納される領域であるかが異なっている。パリティが格納される領域に格納されているパリティビットは、他の４つのチップにおけるこのパリティビットと同一の位置に格納されているデータからなる群に対して付加される水平パリティビットである。なお、分割管理される領域とは、ＳＳＤ１における消去単位であるブロックや複数ブロックに等しくてよいが、以降の説明においてはブロックであるとして説明する。また、ホスト装置２から書き込まれたデータが格納されるブロックをデータ格納ブロック、パリティが格納されるブロックをパリティ格納ブロックと表現することとする。
【００１７】
図２（ａ）はある時点においてチップａ〜ｅにデータおよびパリティが格納されている様子を説明する図である。図示するように、チップａのブロックａ、チップｂのブロックｂ、チップｃのブロックｃ、チップｄのブロックｄ、およびチップｅのブロックｅは夫々、チップａ〜ｅにおける同一位置に位置している。そして、ブロックｅはブロックａ〜ｄに格納されているデータに付加されるパリティ（いわゆる水平パリティ）が格納されている。図２（ｂ）は、図２（ａ）に示したブロックａ〜ｄの同一位置のメモリセルに夫々格納されているデータ１〜４と、ブロックｅにおけるデータ１〜４と同一位置のメモリセルに格納されているデータ１〜４の群のパリティを説明する図である。なお、ここでは、各チップａ〜ｆのメモリセルは２ビットを格納することができる多値方式のメモリセルであるとしている。データ１は上位ビットが１、下位ビットが０、すなわち”１０”である。同様に、データ２〜４は夫々”００”、”１１”、”０１”の値となっている。そして、データ１〜４の上位ビットには計２個の”１”があるので上位ビットのパリティは”０”、下位ビットにも計２個の”１”があるので下位ビットのパリティも”０”となっている。なお、ここではパリティとして偶数パリティを採用するようにしているが、奇数パリティを採用してもかまわない。
【００１８】
図３は、図２に示す状態において、ブロックｂに格納されていたデータ２をデータ５としての”１０”で書き換える場合の変化を説明する図である。データ２をデータ５で書き換えるとき、図３（ａ）左図に示すように、ブロックｂに格納されていたデータ２とブロックｅに格納されていたパリティとが消去される。そして、図３（ａ）右図に示すように、パリティ格納ブロックであったブロックｅにデータ５が書き込まれ、データ１、３〜５について新たに計算されたパリティがブロックｂに書き込まれる。図３（ｂ）に示すように、ブロックｅにはデータ５（”１０”）が格納されており、ブロックｂには、新しいパリティとして”１０”が格納されている。
【００１９】
図４は、図３に示す状態において、ブロックｄに格納されていたデータ４をデータ６としての”００”で書き換える場合の変化を説明する図である。データ４をデータ６で書き換えるとき、今度は、図４（ａ）左図に示すように、ブロックｄに格納されていたデータ４とブロックｂに格納されていたパリティとが消去される。そして、図４（ａ）右図に示すように、ブロックｂにデータ６が書き込まれ、さらに新しく計算されたパリティがブロックｄに書き込まれる。図４（ｂ）に示すように、ブロックｂにはデータ６（”００”）が格納されており、ブロックｄにはパリティ”１１”が格納されている。
【００２０】
このように、本第１の実施の形態では、あるブロックに格納されているデータを書き換えるとき、このデータの水平パリティを格納しているブロックが書き換えデータの書き込み先となり、書き換え前のデータか格納されているブロックが新たな水平パリティの格納先となる。これにより、パリティ格納領域の位置がチップ間を跨いで動的に変化するようになる。なお、夫々のチップａ〜ｆには、夫々自身が備えるメモリセルにアクセスするための制御回路が個別に備えられており、制御回路が故障するとそのチップの全てのメモリセルにアクセスすることができなくなる。図４に示す状態においてデータ格納領域であるブロックｃを有するチップｃがアクセス不能となったときのデータの状態を図５に示す。図示するように、パリティが”１１”であり、他の３つのデータが”１０”、”００”、”１０”であることから、ブロックｃにて失われたデータが”１１”であることが算出される。すなわち故障したチップに格納されていたデータを救済することができる。
【００２１】
データ転送装置２０は、上記したデータおよびパリティの格納ルールに従ってデータ転送を行うための機能構成として、図６に示すように、パリティ格納領域に格納するパリティを計算するパリティ計算部２１と、ホスト装置２から受信する書き込み／読み出し要求に含まれるアドレス情報とデータサイズとにより指定される論理アドレスとしてのアクセス先のブロックと上述の格納ルールにより変化する物理アドレスとしてのデータの格納先のブロックとを対応付ける格納位置対応情報２２と、前記格納位置対応情報２２に基づいてアクセス先ブロックに対応するデータ格納先ブロックを算出するアクセス先算出部２３と、故障したチップに記憶されていたデータを救済するチップ故障対応部２４と、を備えている。なお、格納位置対応情報２２はデータを格納する位置に関する論理アドレスと物理アドレスと一対一で対応付けられているので、格納位置対応情報２２においてデータ格納ブロックを一つ選択し、前記選択したデータ格納ブロックを有するチップ以外のチップにおける前記選択したブロックと同一位置のブロックでかつ論理アドレスに対応付けられていない物理アドレスのブロックは、前記選択したデータ格納ブロックに格納されているデータのパリティが格納されているパリティ格納ブロックに等しい。すなわち、格納位置対応情報２２にはデータ格納ブロック毎に対応するパリティ格納ブロックが明示されていないが、格納位置対応情報２２を参照することによってデータ格納ブロック毎のパリティ格納ブロックの物理アドレスを求めることができるようになっている。なお、格納位置対応情報２２はデータ格納ブロック毎に対応するパリティ格納ブロックを明示するようにしてもよい。
【００２２】
次に、図７〜図９を参照してこれらの機能構成部の動作を説明する。図７は、書き込み処理時の動作を説明するフローチャートである。
【００２３】
図７に示すように、ホスト装置２から書き込み要求されたとき、アクセス先算出部２３は、格納位置対応情報２２を参照し、書き込み要求にて指定されている書き込みアクセス先ブロックに対応するデータ格納ブロックとこのデータ格納ブロックに格納されているデータのパリティを格納しているパリティ格納ブロックを求め、求めたパリティ格納ブロックを書き込み要求されたデータの書き込み先に決定する（ステップＳ１）。さらに、アクセス先算出部２３は、前記求めたデータ格納ブロックを新たなパリティ格納ブロックに決定する（ステップＳ２）。ステップＳ１、ステップＳ２にて決定したブロックに格納されていたデータ、パリティは消去される。
【００２４】
続いて、パリティ計算部２１は、書き込み要求されたデータに基づいて新たにパリティを計算する（ステップＳ３）。そして、データ転送装置２０は、ステップＳ１にて決定した書き込み先ブロックに書き込み要求されたデータを書き込むとともに、ステップＳ２にて決定した新たなパリティ格納ブロックにステップＳ３にて算出したパリティを書き込む（ステップＳ４）。そして、アクセス先算出部２３は、格納位置対応情報２２を更新する（ステップＳ５）。具体的には、アクセス先算出部２３は、格納位置対応情報２２において前記書き込み要求にて指定されたブロックに対応付けられていたデータ格納ブロック（ステップＳ２にて新たなパリティ格納ブロックに決定したブロック）を、ステップＳ１にて決定したブロックに変更する。そして、書き込み処理の動作が終了となる。
【００２５】
図８は、読み出し処理時の動作を説明するフローチャートである。図示するように、ホスト装置２から読み出し要求がなされると、データ転送装置２０は、格納位置対応情報２２を参照し、読み出し要求にて指定されている読み出しアクセス先ブロックに対応付けられているデータ格納ブロックを求める（ステップＳ１１）。そして、データ転送装置２０は、求めたブロックからデータを読み出して読み出したデータをホスト装置２に送信し（ステップＳ１２）、読み出し処理の動作が終了となる。
【００２６】
ステップＳ１２において求めたブロックがアクセス不能であったとき、データを救済するデータ救済処理が実行される。図９は、データ救済処理を説明するフローチャートである。図示するように、まず、チップ故障対応部２４は、格納位置対応情報２２を参照し、アクセス不能なブロック（故障ブロック）に格納されていたデータのパリティが格納されているパリティ格納ブロックを求める（ステップＳ２１）。そして、チップ故障対応部２４は、求めたパリティ格納ブロックに格納されていたパリティと、故障ブロックと同一位置に位置する他のチップのデータ格納ブロックに格納されているデータと、に基づいて、故障ブロックに格納されていたデータを救済し（ステップＳ２２）、データ救済処理の動作が終了となる。救済されたデータはホスト装置２に送信される。
【００２７】
このように、チップグループに冗長チップが一つ追加され、一つのチップが故障しても故障したチップに格納されているデータを救済できるようにしたので、ＮＡＮＤメモリ１０全体の信頼性を向上させることができる。換言すると、チップ一つ当たりに要求される不良率を大きくすることができる。例として３２チップ搭載したメモリシステムにおいて、ＳＳＤ１全体としての不良率を３２００ｐｐｍ以下にすることが必要である場合、チップに冗長性を持たせないと、１チップあたりの不良率は３２００／３２＝１００ｐｐｍ以下にする必要がある。これに対して、３３チップ搭載し、冗長性により１チップ故障まで許容するようにすると、１チップあたりの不良率はおよそ２５００ｐｐｍまで許容されるようになる。すなわち、メモリシステム全体の信頼性を確保しつつチップ一つ当たりに要求される不良率が緩和されるので、メモリチップやメモリシステムの製造を簡単にすることができる。
【００２８】
また、夫々一つの冗長チップを持つチップグループを複数有するようにしたので、チップグループが一つしかない場合に比べてメモリシステム全体の信頼性をさらに向上させることができる。
【００２９】
なお、読み出し先のブロックがアクセス不能であったときデータ救済処理を実行する、として説明したが、チップ故障対応部２４は、データ救済処置により救済したデータを故障ブロックと同一位置に位置するパリティ格納ブロックに格納するようにし、以降はパリティを使用しないようにしてもよい。また、チップが判明したとき、該チップが含むデータ格納ブロックに格納されているデータに対してデータ救済処置を実行し、救済したデータを故障ブロックと同一位置に位置するパリティ格納ブロックに格納するようにしてもよい。このようにすることによって、一度データ救済処置を実行したブロックについては再度データ救済処置を実行する必要がなくなり、読み出し処理の効率が向上する。
【００３０】
また、以上の説明においては、パリティ格納ブロックには水平パリティを格納する、言い換えると、パリティ格納ブロックには、他の４つのチップにおけるこのパリティ格納ブロックと同一の位置のブロックに格納されている夫々のデータからなる群に対して付加されることとして説明した。しかしながら、パリティ格納ブロックと他の４つのチップにおけるパリティ算出対象のデータ格納ブロックの夫々とが対応付けることが可能であれば、パリティ格納ブロックに格納するパリティは同一位置のデータ格納ブロックに格納されていたデータのパリティでなくてもかまわない。
【００３１】
また、以上の説明においては、誤り訂正符号として偶数パリティを使用するとして説明したが、奇数パリティを使用するようにしても問題ない。また、誤り訂正符号として、パリティではなく、チェックサムを使用するようにしてもよい。例えば、”０１”、”１１”、”１０”のチェックサムは、桁上がりが発生して”１１０”となるが、下２桁だけ取った値である”１０”を誤り訂正符号を格納するブロックに記憶させるようにする。データ救済処置の際、失われたデータは、格納されているチェックサムから残りのデータを減算した値となるが、値が負の値となる場合は桁上がり分を加算して正の値とするようにする。例えば”１１”が失われたとすると、格納されているチェックサム”１０”から”０１”および”１０”を減算する。すると、負の値”−０１”が得られるが、桁上がり分”１００”を加算することによって失われた値である”１１”を算出することができる。
【００３２】
以上説明したように、本発明の第１の実施の形態によれば、ブロック毎に分割管理される複数のチップからなるチップグループを有し、前記複数のチップのうちの一つのチップのブロックは他のチップにおける前記ブロックと同一位置のブロックの群の誤り訂正符号を記憶し、かつ誤り訂正符号を記憶するチップはブロック毎に異なり、データを書き換えるとき、このデータの誤り訂正符号を格納しているブロックを書き換えデータの書き込み先に指定し、書き換え前のデータが格納されていたブロックを新たな誤り訂正符号の格納先に指定するように構成したので、データの書き換え毎に誤り訂正符号の格納先が変わるので、チップ毎の書き換え回数が均一化され、かつ一つのチップが読み出し不能となっても読み出し不能チップに格納されていたデータは他のチップのデータおよび誤り訂正符号に基づいて救済できるので、メモリシステム全体の信頼性を確保しつつチップ単体に許容される不良率を緩和することができる。
【００３３】
（第２の実施の形態）
第２の実施の形態では、第１の実施の形態の構成に加え、チップがアクセス不能となったとき、このアクセス不能となったチップのスペアとして使用される冗長チップをさらに備える。図１０は、第２の実施の形態のＳＳＤが備えるＮＡＮＤメモリの構成を説明する図である。なお、第２の実施の形態のＮＡＮＤメモリ以外の構成は、第１の実施の形態と等しいので、ここでは第１の実施の形態で用いた構成の名称および符号をそのまま使用することとする。また、第２の実施の形態のデータ転送装置２０の機能構成は、チップ故障対応部の動作が異なるものの、他の機能構成は第１の実施の形態と等しいので、第１の実施の形態で用いた機能構成の名称および符号をそのまま使用することとする。
【００３４】
図１０に示すように、本第２の実施の形態のＮＡＮＤメモリ３０は、チップａ〜ｊに加え、スペアチップとして一つ以上（ここでは二つ）のチップｋ、チップｌを備えている。チップｋ、チップｌは、チップａ〜ｊのうちの一つまたは二つがアクセス不能となったとき、アクセス不能となったチップ（故障チップ）の代わりとしての使用が開始される。
【００３５】
次に、スペアチップの使用を開始する際の動作について説明する。図１１は、スペアチップの使用を開始する処理を説明するフローチャートである。図示するように、まず、チップ故障対応部２４は、故障チップから一つのブロックを選択する（ステップＳ３１）。そして、チップ故障対応部２４は、格納位置対応情報２２を参照することによって、選択したブロックはデータ格納ブロックであるか否かを判定する（ステップＳ３２）。選択したブロックがデータ格納ブロックであった場合（ステップＳ３２、Ｙｅｓ）、チップ故障対応部２４は、図９にて示したデータ救済処理をステップＳ３３およびステップＳ３４にて実行し、選択したブロックに格納されていたデータを救済する。
【００３６】
そして、チップ故障対応部２４は、救済したデータをスペアチップにおける前記選択したブロックと同一の位置に書き込む（ステップＳ３５）。そして、チップ故障対応部２４は格納位置対応情報２２を更新する（ステップＳ３６）。すなわち、格納位置対応情報２２に記述されているステップＳ３１にて選択した故障ブロックの記述を、ステップＳ３５にて書き込んだスペアチップの書き込み先のブロックの記述に変更する。
【００３７】
一方、ステップＳ３２において、選択したブロックがデータ格納ブロックではなかった場合（ステップＳ３２、Ｎｏ）、選択したブロックはパリティ格納ブロックであるので、チップ故障対応部２４は、このブロックに格納されていたパリティを再度計算し（ステップＳ３７）、算出したパリティをスペアチップにおけるステップＳ３１にて選択した故障ブロックと同一の位置に書き込む（ステップＳ３８）。
【００３８】
ステップＳ３６またはステップＳ３８の後、チップ故障対応部２４は、故障チップから全てのブロックを選択したか否かを判定し（ステップＳ３９）、未選択の場合（ステップＳ３９、Ｎｏ）、ステップＳ３１に移行して未選択のブロックを一つ選択し、全て選択済みの場合（ステップＳ３９、Ｙｅｓ）、スペアチップの使用を開始する処理は終了となる。
【００３９】
なお、チップｋ、チップｌのうちのどちらから先にスペアチップとしての使用が開始されるようにしてもよい。
【００４０】
このように、本発明の第２の実施の形態によれば、スペアチップをさらに有し、チップグループに属するチップがアクセス不能となったとき、アクセス不能のチップから救済したデータをスペアチップに格納するように構成したので、第１の実施の形態よりもさらにメモリシステム全体の信頼性を向上させることができるようになる。第１の実施の形態よりもさらにメモリシステム全体の信頼性を向上させることができるので、メモリシステム全体に同レベルの信頼性を求める場合、第１の実施の形態に比べてチップ単体に許容される不良率をさらに緩和することができる。なお、スペアチップの数は多いほどメモリシステム全体の信頼性が向上する。
【符号の説明】
【００４１】
１  ＳＳＤ、２  ホスト装置、１０  ＮＡＮＤメモリ、１０ａ、ｂ  チップグループ、２０  データ転送装置、２１  パリティ計算部、２２  格納位置対応情報、２３  アクセス先算出部、２４  チップ故障対応部、３０  ＮＡＮＤメモリ。
【図１】
2010282369.tif 000003
【図２】
2010282369.tif 000004
【図３】
2010282369.tif 000005
【図４】
2010282369.tif 000006
【図５】
2010282369.tif 000007
【図６】
2010282369.tif 000008
【図７】
2010282369.tif 000009
【図８】
2010282369.tif 000010
【図９】
2010282369.tif 000011
【図１０】
2010282369.tif 000012
【図１１】
2010282369.tif 000013