(57)【要約】【課題】システムデータが読み出し不可能となるリスクを低減すること。【解決手段】第１のデータ検証部は、所定のタイミングで不揮発性メモリの第１の番地からシステムデータを読み出して、当該読み出したシステムデータを検証する。番地選択部は、第１のデータ検証部による検証結果が不合格である場合に、第２の番地を選択し、第１のデータ操作部は、第２の番地に第１の番地に記憶されているシステムデータを複製する。第２のデータ検証部は、第２の番地に複製されたシステムデータを読み出して、当該読み出したシステムデータを検証する。第２のデータ操作部は、第２のデータ検証部による検証結果が合格である場合に、第１の番地に記憶されているシステムデータを消去する。【選択図】図６
2013196673.tif 000002
【特許請求の範囲】
【請求項１】
第１の番地にシステムデータを記憶する不揮発性メモリと、
所定のタイミングで前記第１の番地からシステムデータを読み出して、前記第１の番地から読み出したシステムデータを検証する第１のデータ検証部と、
前記第１のデータ検証部による検証結果が不合格である場合に、前記不揮発性メモリにおける、前記第１の番地と異なる第２の番地を選択する番地選択部と、
前記番地選択部が選択した前記第２の番地に前記第１の番地に記憶されているシステムデータを複製する第１のデータ操作部と、
前記第２の番地に複製されたシステムデータを読み出して、前記第２の番地から読み出したシステムデータを検証する第２のデータ検証部と、
前記第２のデータ検証部による検証結果が合格である場合に、前記第１の番地に記憶されているシステムデータを消去する第２のデータ操作部と、
を備えることを特徴とするメモリシステム。
【請求項２】
前記第２のデータ操作部は、前記第１のデータ検証部による検証結果が不合格である場合に、前記第１の番地に記憶されているシステムデータを消去しない、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第１のデータ検証部および前記第２のデータ検証部は、前記第１または第２の番地から読み出したシステムデータに対してエラー検出またはエラー訂正を行って、エラー検出数またはエラー訂正数に基づいて前記第１または第２の番地から読み出したシステムデータを検証する、
ことを特徴とする請求項１または請求項２に記載のメモリシステム。
【請求項４】
前記番地選択部は、前記不揮発性メモリのうちの書き換え回数が最小のブロックを前記第２の番地に選択する、
ことを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記番地選択部は、前記第２のデータ検証部による検証結果が合格になるか、または前記第２のデータ検証部による検証回数が所定回数に達するまで、検証毎に、前記第２の番地を新規に選択する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記第１の番地に記憶されているシステムデータは、ＭＬＣモードで記憶されており、前記検証回数が所定回数に達したとき、前記第２のデータ検証部は、前記１の番地に記憶されているシステムデータを前記選択された何れかの第２の番地にＳＬＣモードで複製する、
ことを特徴とする請求項５に記載のメモリシステム。
【請求項７】
第１のブロックにシステムデータを記憶する不揮発性メモリと、
所定のタイミングで前記第１のブロックからシステムデータを読み出して、前記第１のブロックから読み出したシステムデータを検証するデータ検証部と、
前記データ検証部による検証結果が不合格である場合に、前記不揮発性メモリのうちの書き換え回数が最小の第２のブロックを選択する番地選択部と、
前記第２のブロックに前記第１のブロックに記憶されているシステムデータを複製するデータ操作部と、
を備えることを特徴とするメモリシステム。
【請求項８】
前記データ検証部は、前記第１のブロックから読み出したシステムデータに対してエラー検出またはエラー訂正を行って、エラー検出数またはエラー訂正数に基づいて前記第１のブロックから読み出したシステムデータを検証する、
ことを特徴とする請求項７に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムに用いられるメモリシステムとして、ＮＡＮＤ型の記憶セルを備えるメモリチップを搭載したＳＳＤ（Solid  State  Drive）が注目されている。ＳＳＤは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−７９３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、システムデータが読み出し不可能となるリスクを低減したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一つの実施形態によれば、メモリシステムは、不揮発性メモリと、第１のデータ検証部と、番地選択部と、第１のデータ操作部と、第２のデータ検証部と、第２のデータ操作部とを備えている。不揮発性メモリは、第１の番地にシステムデータを記憶する。第１のデータ検証部は、所定のタイミングで前記第１の番地からシステムデータを読み出して、前記第１の番地から読み出したシステムデータを検証する。番地選択部は、前記第１のデータ検証部による検証結果が不合格である場合に、前記不揮発性メモリにおける、前記第１の番地と異なる第２の番地を選択する。第１のデータ操作部は、前記番地選択部が選択した前記第２の番地に前記第１の番地に記憶されているシステムデータを複製する。第２のデータ検証部は、前記第２の番地に複製されたシステムデータを読み出して、前記第２の番地から読み出したシステムデータを検証する。第２のデータ操作部は、前記第２のデータ検証部による検証結果が合格である場合に、前記第１の番地に記憶されているシステムデータを消去する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態のＳＳＤの構成例を示す図である。
【図２】図２は、メモリセルアレイに含まれる１個のブロックの構成例を示す回路図である。
【図３】図３は、しきい値分布の例を示す図である。
【図４】図４は、メモリセルアレイが記憶するデータを説明する図である。
【図５】図５は、信頼性担保処理を実行するための機能構成を説明する図である。
【図６】図６は、第１の実施形態のＳＳＤにおける信頼性担保処理を説明するフローチャートである。
【図７】図７は、第２の実施形態のＳＳＤにおける信頼性担保処理を説明するフローチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。以下、実施形態にかかるメモリシステムをＳＳＤに適用した場合について説明するが、実施形態にかかるメモリシステムの適用範囲はＳＳＤだけに限定されない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のＳＳＤの構成例を示す図である。図示するように、ＳＳＤ１００は、パーソナルコンピュータなどのホスト装置２００と所定の通信インタフェースで接続され、ホスト装置２００の外部記憶装置として機能する。ＳＳＤ１００がホスト装置２００から受信する読み出し要求や書き込み要求は、ＬＢＡ（Logical  Block  Addressing）で定義されたアクセス対象の先頭アドレスとアクセス対象の領域の範囲を示すセクタサイズとが含まれている。なお、通信インタフェースはＳＡＴＡ規格に限らず、ＳＡＳ（Serial  Attached  SCSI）、ＰＣＩｅ（PCI  Express）など様々な通信インタフェース規格を採用することが可能である。
【０００９】
ＳＳＤ１００は、ＮＡＮＤメモリ１と、ＣＰＵ（Central  Processing  Unit）２と、ホストインタフェース（ホストＩ／Ｆ）３と、ＤＲＡＭ（Dynamic  Random  Access  Memory）４と、ＮＡＮＤコントローラ（ＮＡＮＤＣ）５と、ＥＣＣ（Error  Checking  and  Correcting）回路６と、を備えている。ＣＰＵ２、ホストＩ／Ｆ３、ＤＲＡＭ４、ＮＡＮＤＣ５、およびＥＣＣ回路６は、互いにバスで接続されている。また、ＮＡＮＤメモリ１は、ＮＡＮＤＣ５に接続されている。
【００１０】
ＤＲＡＭ４は、ホスト装置２００とＮＡＮＤメモリ１との間の転送データを一時格納する揮発性メモリである。ホストＩ／Ｆ３は、ホスト装置２００との間の通信インタフェースの制御およびホスト装置２００とＤＲＡＭ４との間のデータ転送を実行する。ＣＰＵ２は、ファームウェア（ファームウェアプログラム１１）に基づいて、ＳＳＤ１００全体の制御を実行する。
【００１１】
ＮＡＮＤＣ５は、ＮＡＮＤメモリ１とＤＲＡＭ４との間のデータ転送を実行する。また、ＮＡＮＤＣ５は、ＮＡＮＤメモリ１に対するアクセス時に発生するエラーを訂正するＥＣＣ回路５１を備えている。ＥＣＣ回路５１は、第２の訂正符号のエンコードを行い、また、第１の誤り訂正符号のエンコードおよびデコードを行う。
【００１２】
ＥＣＣ回路６は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose  Chaudhuri  Hocqenghem）符号、ＲＳ（Reed  Solomon）符号、或いはＬＤＰＣ（Low  Density  Parity  Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。
【００１３】
ＮＡＮＤメモリ１は、ホスト装置２００からの書き込みデータを記憶するメモリセルアレイ１０を備えている。
【００１４】
メモリセルアレイ１０は、消去の単位となるブロックを複数備えて構成される。図２は、メモリセルアレイ１０に含まれる１個のブロックの構成例を示す回路図である。図示するように、各ブロックは、Ｘ方向に沿って順に配列された（ｍ＋１）個のＮＡＮＤストリングを備えている（ｍは、０以上の整数）。（ｍ＋１）個のＮＡＮＤストリングにそれぞれ含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００１５】
各メモリセルトランジスタＭＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（metal  oxide  semiconductor  field  effect  transistor）から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＴは、浮遊ゲート電極に蓄えられる電子の数に応じてしきい値電圧が変化し、このしきい値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００１６】
各ＮＡＮＤストリングにおいて、（ｎ＋１）個のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。そして、最もドレイン側に位置するメモリセルトランジスタＭＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１７】
ワード線ＷＬ０〜ＷＬｑは、ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｍ＋１）個のメモリセルトランジスタＭＴは１ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
【００１８】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００１９】
なお、メモリセルアレイ１０は、１つのメモリセルに２ビット以上を記憶する多値メモリ（MLC:  Multi  Level  Cell）であってもよいし、１つのメモリセルに１ビットを記憶する二値メモリ（SLC:  Single  Level  Cell）であってもよい。
【００２０】
図３は、１個のメモリセルトランジスタＭＴに２ビットの記憶を行う４値データ記憶方式でのしきい値分布の例を示している。４値データ記憶方式では、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか一つをメモリセルトランジスタＭＴに保持可能である。この、４値データ“ｘｙ”は、メモリセルトランジスタＭＴのしきい値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＴのしきい値電圧が負の消去状態である。
【００２１】
下位ページ書き込み動作においては、データ“１１”（消去状態）のメモリセルトランジスタＭＴに対して選択的に、下位ビットデータ“ｙ”の書き込みによって、データ“１０”が書き込まれる。上位ページ書き込み前のデータ“１０”のしきい値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”のしきい値分布の中間程度に位置しており、上位ページ書き込み後のしきい値分布よりブロードであってもよい。
【００２２】
上位ページ書き込み動作においては、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”の書き込みが行われて、データ“０１”およびデータ“００”が書き込まれる。
【００２３】
図４は、メモリセルアレイ１０が記憶するデータを説明する図である。図示するように、メモリセルアレイ１０は、ファームウェアプログラム１１、アドレス変換テーブル１２、およびホスト装置２００からの書き込みデータであるユーザデータ１３を記憶する。ファームウェアプログラム１１は、ＣＰＵ２にＳＳＤ１００の制御を実行せしめるプログラムであり、アドレス変換テーブル１２は、ＬＢＡとメモリセルアレイ１０の物理アドレスとの対応関係を記述したテーブルである。
【００２４】
ＮＡＮＤ型のメモリセルアレイ１０への書き込み方式として、例えば以下に述べる方式が採用される。まず、書き込みの前に、ブロック内の無効データを消去する必要がある。すなわち、消去済みのブロックのうち書き込みがまだ行われていないページに対して順次書き込みが可能であり、既に書き込みが行なわれたページに対する上書きが不可能である。また、上述のように、ホスト装置２００から要求される書き込み番地は、ホスト装置２００で用いられる論理アドレス（ＬＢＡ）で指定される。一方、ＮＡＮＤメモリ１へのデータの書き込み番地は、メモリセルアレイ１０の物理的な記憶位置（物理アドレス）に基づいて、ページの昇順に書き込みが行なわれる。即ち、物理アドレスは論理アドレスとは無関係に決定される。決定された論理アドレスと物理アドレスとの対応関係は、アドレス変換テーブル１２に記録される。そして、データの書き込み要求において指定された論理アドレスが再度指定されて新たなデータの書き込みがホストから要求されると、ＣＰＵ２は、消去済みのブロックのうちの書き込みがまだ行なわれていないページに対して新たなデータの書き込みを行う。このとき、ＣＰＵ２は、当該論理アドレスに対応して前回書き込みが行われたページを無効にして、新たなデータの書き込みが行われたページを有効にする。
【００２５】
ここで、メモリセルアレイ１０に対する書き込みおよび消去の回数の増加に伴って、フローティングゲート周りの酸化膜が劣化し、その位置に書き込まれたデータが変化しやすくなるという問題がある。また、メモリセルアレイ１０に書き込み済みのデータは、プログラムディスターブやリードディスターブにより変化し、データに誤りが生じることがある。一方、ファームウェアプログラム１１やアドレス変換テーブル１２は、ＳＳＤ１００がホスト装置２００の外部記憶装置としての機能を保つために不可欠なデータであり、これらのデータが破壊されると、ＳＳＤ１００の健全性が損なわれる。したがって、これらのデータが訂正不能となるような破壊を防止したり、破壊されてもＳＳＤ１００が動作するようにこれらのデータを多重化したりすることが望ましい。
【００２６】
そこで、第１の実施形態では、ファームウェアプログラム１１およびアドレス変換テーブル１２（以降、システムデータ１４と総称する）を所定のタイミングで検証し、検証結果がＮＧ（不合格）であった場合にはシステムデータ１４をメモリセルアレイ１０内の他の位置に移動させるようにした。なお、これらの一連の処理を、信頼性担保処理ということとする。
【００２７】
図５は、信頼性担保処理を実行するためのＳＳＤ１００の機能構成を説明する図である。図示するように、ＣＰＵ２は、信頼性担保処理制御部２１、コピー先探索部２２、データ検証部２３、およびデータ操作部２４を備えている。信頼性担保処理制御部２１は、コピー先探索部２２、データ検証部２３、およびデータ操作部２４を制御する。コピー先探索部２２は、システムデータ１４の複製先の番地を探索する。データ検証部２３は、信頼性担保処理の実行前のシステムデータ１４の検証と、複製されたシステムデータ１４の検証とを実行する。データ操作部２４は、システムデータ１４の複製や、複製元のシステムデータ１４（即ち信頼性担保処理の実行前のシステムデータ１４）の消去などを実行する。なお、これらの機能構成部は、ＣＰＵ２がファームウェアプログラム１１を実行することによって実現される。
【００２８】
図６は、第１の実施形態のＳＳＤ１００における信頼性担保処理を説明するフローチャートである。
【００２９】
まず、信頼性担保処理制御部２１は、現時点でシステムデータ１４の検証タイミングに至ったか否かを判定する（ステップＳ１）。現時点がシステムデータ１４の検証タイミングではない場合（ステップＳ１、Ｎｏ）、信頼性担保処理制御部２１は、ステップＳ１の判定処理を再び実行する。なお、検証タイミングはどのようなタイミングに設定するようにしてもよい。例えば、所定の時間間隔で検証が行われるようにしてよいし、電源オフ時や電源オン時を検証タイミングとするようにしてもよい。
【００３０】
現時点がシステムデータ１４の検証タイミングに達した場合（ステップＳ１、Ｙｅｓ）、信頼性担保処理制御部２１の指令により、データ検証部２３は、システムデータ１４の検証を実行する（ステップＳ２）。システムデータ１４の検証は、例えば以下のようにして実行される。即ち、データ検証部２３は、ＮＡＮＤＣ５に指令して、システムデータ１４をＮＡＮＤメモリ１からＤＲＡＭ４に転送せしめる（読み出させる）。ＥＣＣ回路５１は、システムデータ１４が転送される際に、第１の誤り訂正符号に基づくエラーの検出および訂正を行い、エラーの訂正を行った場合には、第１の誤り訂正符号によって訂正完了したエラー数をデータ検証部２３に報告する。また、訂正不可能なエラーがあった場合、ＥＣＣ回路５１は、データ検証部２３にその旨を報告し、データ検証部２３は、ＥＣＣ回路６に指令して、第１の誤り訂正符号により訂正不可能なエラーを第２の誤り訂正符号を用いて訂正せしめる。ＥＣＣ回路６は、訂正完了したエラー数をデータ検証部２３に報告する。
【００３１】
続いて、データ検証部２３は、検証結果がＮＧである（即ちシステムデータ１４の信頼性が低下している）か否かを判定する（ステップＳ３）。ステップＳ３の判定は、どのようにしておこなわれてもよい。例えば、データ検証部２３は、第１の誤り訂正符号による訂正数と第２の誤り訂正符号による訂正数の合計値が所定のしきい値に到達している場合に、システムデータ１４の信頼性が低下していると判定し、前記合計値が前記しきい値に到達していない場合に、システムデータ１４の信頼性が低下していないと判定することができる。また、データ検証部２３は、ステップＳ２を実行する毎に前記合計値を記録しておき、前記合計値が増加する傾向があるか否かに基づいてシステムデータ１４の信頼性が低下しているか否かを判定することができる。即ち、データ検証部２３は、前記合計値の現在値および／または過去値を用いて、システムデータ１４の信頼性が低下しているか否かを判定することができる。
【００３２】
検証結果がＯＫ（合格）であった場合（ステップＳ３、Ｎｏ）、信頼性担保処理制御部２１は、ステップＳ１の処理を実行する。検証結果がＮＧであった場合（ステップＳ３、Ｙｅｓ）、信頼性担保処理制御部２１は、ステップＳ５〜ステップＳ１０のループ処理のためのループインデックスｉを０で初期化して（ステップＳ４）、ｉ＝１０であるか否かを判定する（ステップＳ５）。ｉ＝１０ではない場合（ステップＳ５、Ｎｏ）、信頼性担保処理制御部２１は、コピー先探索部２２に指令して、指令を受けたコピー先探索部２２は、システムデータ１４の複製先の番地を空き領域のうちから選択する（ステップＳ６）。空き領域のうちのどの番地を選択するかは、ここでは特定の方法に限定されない。例えば、複製先の番地を、空きブロック（即ち有効データを含まないブロック）のうちの１つとしてもよい。
【００３３】
続いて、信頼性担保処理制御部２１は、データ操作部２４に指令して、指令をうけたデータ操作部２４は、システムデータ１４をステップＳ６にて選択された番地に複製する（ステップＳ７）。その後、データ検証部２３は、信頼性担保処理制御部２１からの指令により、ステップＳ６にて選択された番地に複製されたシステムデータ１４（以降、複製データ）の検証を実行し（ステップＳ８）、検証結果がＮＧであるか否かを判定する（ステップＳ９）。なお、ステップＳ８の処理は、ステップＳ２の処理と同様であってよい。また、ステップＳ９の処理は、ステップＳ２の処理によって得られた第１の誤り訂正符号による訂正数と第２の誤り訂正符号による訂正数との合計値に基づいて行われる。検証結果がＮＧであった場合（ステップＳ９、Ｙｅｓ）、信頼性担保処理制御部２１は、ｉを１だけインクリメントし（ステップＳ１０）、ステップＳ５の処理を実行する。
【００３４】
そして、ｉ＝１０であった場合には（ステップＳ５、Ｙｅｓ）、信頼性担保処理制御部２１は、データ操作部２４に指令して、検証結果が最も良好であった複製データを残し、他の複製データを無効化せしめ（ステップＳ１１）、その後、信頼性担保処理制御部２１は、ステップＳ１の判定処理を実行する。
【００３５】
複製データの検証結果がＯＫ（合格）であった場合（ステップＳ１２、Ｎｏ）、信頼性担保処理制御部２１は、データ操作部２４に指令して、検証結果がＯＫとなった複製データを残し、複製元のシステムデータ１４を無効化せしめる（ステップＳ１２）。なお、ここで、検証結果がＯＫとなった複製データのほかにも複製データが存在する場合には、信頼性担保処理制御部２１は、データ操作部２４に指令して、検証結果がＯＫとなった複製データを除く複製データを無効化する。信頼性担保処理制御部２１は、ステップＳ１２の処理の後、ステップＳ１の判定処理を実行する。
【００３６】
このように、第１の実施形態によれば、データ検証部２３は、ＮＡＮＤメモリ１の所定の番地に格納されているシステムデータ１４を所定のタイミングでＮＡＮＤメモリ１から読み出して、前記読み出したシステムデータ１４を検証し、コピー先探索部（番地選択部）２２は、データ検証部２３による検証結果が不合格である場合に、前記ＮＡＮＤメモリ１の複製先の番地を選択し、データ操作部２４は、前記選択された複製先の番地に前記システムデータ１４を複製する。そして、データ検証部２３は、複製データを読み出して、読み出した複製データを検証する。データ操作部２４は、複製データの検証結果が合格である場合に、複製元のシステムデータ１４を削除する。これにより、ＳＳＤ１００は、システムデータ１４の健全性が損なわれる前に当該システムデータ１４を他の一定の信頼性が保障された番地に移動させることができるので、システムデータ１４が読み出し不可能となるリスクを低減することができる。
【００３７】
また、データ操作部２４は、複製データの検証結果が不合格である場合に、複製元のシステムデータ１４を消去しないようにしたので、ＳＳＤ１００は、複製元のシステムデータ１４がエラー訂正が不可能となる破壊をうけたとしても、複製データをシステムデータ１４として使用することができるので、システムデータ１４が読み出し不可能となるリスクを低減することができる。
【００３８】
なお、以上の説明においては、データ検証部２３は、エラー訂正数に基づいてシステムデータ１４または複製データの検証を行うものとして説明したが、エラー検出数に基づいて検証を行うようにしてもよい。
【００３９】
（第２の実施形態）
第２の実施形態では、ＳＳＤ１００は、システムデータ１４の信頼性が低下したとき、システムデータ１４を、書き換え回数（即ち消去回数と書き込み回数との合計値）が最も少ないブロックに複製し、システムデータ１４を多重化する。
【００４０】
第２の実施形態のＳＳＤ１００のハードウェア構成は第１の実施形態と同等であり、個々の機能構成部の動作が異なるだけであるので、以下、第１の実施形態の構成要素を用いて説明する。
【００４１】
図７は、第２の実施形態のＳＳＤ１００における信頼性担保処理を説明するフローチャートである。まず、第２の実施形態のＳＳＤ１００においては、ステップＳ２１、ステップＳ２２において、既に説明したステップＳ１、ステップＳ２と夫々等しい処理が実行される。そして、データ検証部２３は、信頼性担保処理制御部２１からの指令に基づいて、システムデータ１４の検証結果がＮＧか否かを判定する（ステップＳ２３）。検証結果がＮＧであった場合（ステップＳ２３、Ｙｅｓ）、信頼性担保処理制御部２１は、コピー先探索部２２に指令して、指令を受けたコピー先探索部２２は、システムデータ１４の複製先として、空きブロックのうちの書き換え回数が最も少ないブロックを選択する（ステップＳ２４）。すると、信頼性担保処理制御部２１は、データ操作部２４に指令して、指令をうけたデータ操作部２４は、システムデータ１４をステップＳ２４にて選択されたブロックに複製する（ステップＳ２５）。ステップＳ２５の処理の後、または検証結果がＯＫであった場合（ステップＳ２３、Ｎｏ）、信頼性担保処理制御部２１は、ステップＳ２１の判定処理を実行する。
【００４２】
このように、第２の実施形態によれば、データ検証部２３は、ＮＡＮＤメモリ１の所定のブロックに格納されているシステムデータ１４を読み出して、読み出したシステムデータ１４を検証し、コピー先探索部２２は、検証結果が不合格である場合には、システムデータ１４の複製先として、書き換え回数が最小のブロックを選択し、データ操作部２４は、システムデータ１４を前記選択された書き換え回数が最小のブロックに複製するようにしたので、ＳＳＤ１００は、複製元のシステムデータ１４がエラー訂正が不可能となる破壊をうけたとしても、複製データをシステムデータ１４として使用することができるので、システムデータ１４が読み出し不可能となるリスクを低減することができる。また、第１の実施形態ではＳＳＤ１００は複製データの検証を行っていたところ、第２の実施形態によればＳＳＤ１００は複製データの検証を行うことがないので、信頼性担保処理にかかる処理コストを低減することができる。
【００４３】
（第３の実施形態）
なお、第１の実施形態においては、コピー先探索部２２は、任意の方法に基づいてシステムデータ１４の複製先の番地を選択するとして説明したが、コピー先探索部２２は、第２の実施形態と同様に、空きブロックのうちの書き換え回数が最も少ないブロックを複製先の番地として選択するようにしてもよい。このようにすることによって、出来るだけ健全性が高い番地にシステムデータ１４を複製することができるようになるので、一回の信頼性担保処理におけるステップＳ５〜ステップＳ１０のループ処理の実行回数を低減せしめることができるようになる。
【００４４】
また、第１の実施形態および第２の実施形態においては、コピー先探索部２２は、空いている領域から複製先の番地を探索するものとして説明したが、コピー先探索部２２は、有効データが途中のページまで書き込まれたブロックの、有効データに後続するページを複製先の番地として選択することもできる。
【００４５】
また、第２の実施形態においては、コピー先探索部２２は、空きブロックのうちの書き換え回数が最もすくないブロックをシステムデータ１４の複製先のブロックに選択するとして説明したが、全ブロックのうちの書き換え回数が最も少ないブロックが有効データを含むブロックである場合には、当該ブロックに書き込まれている有効データを他の空きブロックに移動した上で、空きブロックとなった前記ブロックをシステムデータ１４の複製先として選択するようにしてもよい。
【００４６】
また、第１の実施形態においては、データ操作部２４は、ステップＳ５〜ステップＳ１０のループ処理を１０回実施しても複製データの検査結果がＯＫとならない場合には、システムデータ１４を多重化するものとして説明したが、ＳＬＣモードで書き込まれたデータはＭＬＣモードで書き込まれたデータよりも失われにくいことを利用して、信頼性担保処理制御部２１は、以下のように制御を実行するようにしてもよい。即ち、初期状態においては、システムデータ１４は、ＭＬＣモードで書き込まれており、ステップＳ５〜ステップＳ１０のループ処理を１０回実施しても複製データの検査結果がＯＫとならない場合には、信頼性担保処理制御部２１は、データ操作部２４に指令して、指令をうけたデータ操作部２４は、ＳＬＣモードでシステムデータ１４を複製するようにしてもよい。なお、ＳＬＣモードでシステムデータ１４を複製した場合には、信頼性担保処理制御部２１は、データ操作部２４に、元のシステムデータ１４を消去せしめるようにしてもよいし、元のシステムデータ１４を残しておくようにしてもよい。
【００４７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４８】
１  ＮＡＮＤメモリ、２  ＣＰＵ、３  ホストＩ／Ｆ、４  ＤＲＡＭ、５  ＮＡＮＤＣ、６  ＥＣＣ回路、１０  メモリセルアレイ、１１  ファームウェアプログラム、１２  アドレス変換テーブル、１３  ユーザデータ、１４  システムデータ、２１  信頼性担保処理制御部、２２  コピー先探索部、２３  データ検証部、２４  データ操作部、２００  ホスト装置。
【図１】
2013196673.tif 000003
【図２】
2013196673.tif 000004
【図３】
2013196673.tif 000005
【図４】
2013196673.tif 000006
【図５】
2013196673.tif 000007
【図６】
2013196673.tif 000008
【図７】
2013196673.tif 000009