(57)【要約】  インターフェイス１を介して入力されるデータ（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）に対して、Ａワード間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して（Ｎ＋Ｍ）ワードのエラー訂正符号を構成する。データ分配部３により、（Ｎ＋Ｍ）ワードを夫々（Ｎ＋Ｍ）個の物理ブロックに分配し、Ａワードずつ記録する。書き込みエラーが発生した場合は、そのページのセル共有ページとエラー訂正符号を構成している別の物理ブロックのページに記録されているデータを読み出す。これらのデータを使用して、セル共有ページのデータに消失訂正を実施し、セル共有ページのデータを復元して書き込む。これにより多値の不揮発性メモリにおいて、あるページの書き込み時のエラーがセルを共有している書き込み済みのページに伝搬しないようにすることができる。
2009139115.tif 000002
【特許請求の範囲】
【請求項１】
物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとする半導体記録装置において、
入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワードの間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して、（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成する第１のＥＣＣ生成部と、
前記第１のＥＣＣ生成部によって生成された第１のＥＣＣ符号の（Ｎ＋Ｍ）ワードを、１ワード毎に前記不揮発性メモリの物理ブロックのグループ内で異なる物理ブロックに分配を繰り返すことにより、（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配するデータ分配部と、
前記データ分配部によって分配された物理ブロック当たりＡワードのデータを、不揮発性メモリのＮ＋Ｍ個から成るグループの各物理ブロックに書き込むデータ書き込み部と、を備えた半導体記録装置。
【請求項２】
前記データ書き込み部は、前記データ分配部によって分配されたＡワードのデータを、夫々の物理ブロックの同一ページに書き込む請求項１記載の半導体記録装置。
【請求項３】
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページの各ビットが前記不揮発性メモリのセルを共有しているセル共有のページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、
前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを、夫々の物理ブロックから読み出すデータ読み出し部と、
前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたセル共有ページのデータを復元するデータ復元部と、を更に有し、
前記データ書き込み部は、前記データ復元部により復元されたセル共有ページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込む請求項１記載の半導体記録装置。
【請求項４】
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、
前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを夫々の物理ブロックから順次読み出すデータ読み出し部と、
前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたページのデータを復元するデータ復元部と、を更に有し、
前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込む請求項１記載の半導体記録装置。
【請求項５】
前記（Ｎ＋Ｍ）個の物理ブロックは、夫々別の不揮発性メモリである請求項１記載の半導体記録装置。
【請求項６】
物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとする半導体記録装置において、
データの書き込みの際に入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワード間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成する第１のＥＣＣ生成部と、
前記第１のＥＣＣ生成部によって生成された第１のＥＣＣ符号の（Ｎ＋Ｍ）ワードを、１ワード毎に前記不揮発性メモリの物理ブロックのグループ内で異なる物理ブロックに分配を繰り返すことにより、（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配するデータ分配部と、
前記データ分配部から夫々の物理ブロックに分配されたＡワードに対して、Ｂ（Ｂは自然数）ワードのパリティを生成する第２のＥＣＣ生成部と、
前記第２のＥＣＣ生成部より出力される（Ａ＋Ｂ）ワードのデータをＮ＋Ｍ個から成るグループの夫々の物理ブロックの夫々のページに書き込むデータ書き込み部と、を備えた半導体記録装置。
【請求項７】
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページの各ビットが前記不揮発性メモリのセルを共有しているセル共有のページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、
前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを、夫々の物理ブロックから読み出すデータ読み出し部と、
前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたセル共有ページのデータを復元するデータ復元部と、を更に有し、
前記データ書き込み部は、前記データ復元部により復元されたセル共有ページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込む請求項６記載の半導体記録装置。
【請求項８】
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、
前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを夫々の物理ブロックから順次読み出すデータ読み出し部と、
前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたページのデータを復元するデータ復元部と、を更に有し、
前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込む請求項６記載の半導体記録装置。
【請求項９】
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して読み出し動作をおこなうデータ読み出し部と、
前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、
前記データ読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を更に有し、
前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込む請求項６記載の半導体記録装置。
【請求項１０】
読み出しコマンドを受信したときに前記読み出しコマンドに含まれるアドレスにかかるデータを読み出すと共に、リードエラーフラグが付されたページのデータを構成要素としている前記第１のＥＣＣ符号の全データを、前記不揮発性メモリの夫々の物理ブロックより読み出すデータ読み出し部と、
前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、
前記読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を更に有し、
前記読み出しコマンドに含まれるアドレスにかかるデータ、及び前記データ復元部により復元されたデータを出力する請求項６記載の半導体記録装置。
【請求項１１】
物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとし、データの書き込みの際に、（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワード間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成し、Ａワードに対して、Ｂ（Ｂは自然数）ワードのパリティを生成して（Ａ＋Ｂ）ワードの第２のＥＣＣ符号としたデータが、Ｎ＋Ｍ個から成るグループの夫々の物理ブロックの同一ページに書き込まれた半導体記録装置であって、
読み出しコマンドを受信したときに前記読み出しコマンドに含まれるアドレスにかかるデータを読み出すと共に、リードエラーフラグが付されたページのデータを構成要素としている前記第１のＥＣＣ符号の全データを、前記不揮発性メモリの夫々の物理ブロックより読み出すデータ読み出し部と、
前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、
前記読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を有し、
前記読み出しコマンドに含まれるアドレスにかかるデータ、及び前記データ復元部により復元されたデータを出力する半導体記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードなどの半導体記録装置に関し、特に内部の不揮発性メモリで発生する書き込みエラーや読み出しエラーを修復する半導体記録装置に関する。
【背景技術】
【０００２】
従来、フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（Secure Digital）カード等の半導体記録装置は、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。【０００３】
半導体記録装置に内蔵されているフラッシュメモリは、一定サイズの多数の物理ブロックから成り、物理ブロックの単位でデータを消去できるメモリである。昨今の大容量化の要請に対応すべく、フラッシュメモリは１セルで２ビット以上のデータが蓄積できる多値フラッシュメモリが商品化されている。【０００４】
図１に、多値フラッシュメモリのフローティングゲートに蓄積する電子の数と閾値電圧（Ｖｔｈ）の関係の一例を示す。図１に示すように、４値のフラッシュメモリでは、フローティングゲートの電子の蓄積状態をその閾値電圧（Ｖｔｈ）に従って４状態で管理する。消去状態は電位が一番低く、これを（１，１）とする。そして電子が蓄積していくにつれて閾値電圧が離散的に上昇し、その状態を夫々（１，０）（０，０）（０，１）とする。このように、蓄積する電子の数に比例して電位が上昇するので、所定の電位の閾値に収まるように制御することによって、１つのメモリセルに２ビットのデータを記録することができる。【０００５】
図２に４値のフラッシュメモリの１つの物理ブロックの模式図を示す。図２に示す物理ブロックは、２＊Ｋ個（Ｋは自然数）のページによって構成されている。そして、書き込み処理は、ページ番号０から昇順に実施される。ここで、ページ番号ｍ（０≦ｍ＜Ｋ）のページとページ番号（Ｋ＋ｍ）番のページは１つのメモリセルを共有している関係（以下、セル共有関係という）にあるとする。セル共有関係にあるページにおいて、最初に書き込むページを第１ページ、次に書き込むページを第２ページと呼ぶ。つまり、ページ番号ｍへの書き込み（第１ページへの書き込み）と、ページ番号（Ｋ＋ｍ）への書き込み（第２ページへの書き込み）は、同一のセルに電子をチャージしていることになる。図１を参照に説明すると、第１ページへの書き込みでは、電位は半分までしか上昇しないように制御し、次の第２ページへの書き込みでは、最大まで電位が上昇するように制御する。図３に、フラッシュメモリセルの状態遷移を示す。図３に示すように、フラッシュメモリの物理ブロックの１つのメモリセルの状態は、以下のように遷移する。
（ａ）データを消去した後は、メモリセルの状態は（１，１）
（ｂ）第１ページの書き込み後は、セルの状態は（１，１）又は（１，０）
（ｃ）第２ページの書き込み後は、セルの状態は（１，１），（１，０），（０，０）又は（０，１）
このように、多値のフラッシュメモリでは、Ｖｔｈに複数の閾値を設けてフラッシュメモリの電子の蓄積量を制御する多値記録を行い、大容量化を実現している。【０００６】
上記の（ｂ）（ｃ）についてさらに詳細に説明する。（ｂ）においては、第１ページのメモリセルに１を書き込んだ後の状態が（１，１）であり、０を書き込んだ後の状態が（１，０）となる。さらに（ｃ）においては、（ｂ）での状態によって遷移が限定される。即ち、（ｂ）で（１，１）の状態からの遷移は、１を書き込んだ場合は（１，１）の状態が保持され、０を書き込んだ場合は（０，１）となる。一方、（ｂ）で（１，０）の状態からの遷移は、１を書き込んだ場合は（１，０）の状態が保持され、０を書き込んだ場合は（０，０）となる。【０００７】
しかしながら、（ｂ）から（ｃ）への遷移の過程において、書き込みエラーが書き込み済みの第１ページに伝搬するといった問題が発生する。即ち、（ｂ）で（１，１）であったメモリセルを（０，１）の状態にすべく電子注入を実施している際に、セル寿命等により、電位が（０，１）に対応するＶｔｈにまで上昇せずに、途中で停止してしまう場合がある。例えば（１，０）で停止したとすると、書き込み済みであった第１ページが１から０に遷移してしまう。この場合は、第２ページのエラーのみならず、第１ページにもエラーが伝搬するといった問題があった。【０００８】
図２に示すページ０〜ページ（Ｋ−１）の書き込みは第１ページの書き込みであり、この場合の書き込みエラーはＶｔｈが（１，１）の状態から（１，０）に上昇しないエラーである。また、図２に示すページＫ〜ページ（２Ｋ−１）の書き込みは第２ページの書き込みであり、Ｖｔｈの状態は（１，１）（１，０）（０，０）（０，１）になる。この場合の書き込みエラーには、次の２つのエラーがある。
（エラー１）  Ｖｔｈ（１，０）が（０，０）に上昇しない。
（エラー２）  Ｖｔｈ（１，１）が（０，１）に上昇しない。
エラー１の場合は、Ｖｔｈ（１，０）とＶｔｈ（０，０）が隣接しているが、エラー２の場合のＶｔｈ（１，１）とＶｔｈ（０，１）は間に２状態はさんでいる。特に、Ｖｔｈ（１，０）は第１ページの書き込み後の値であり、第２ページの書き込みによってＶｔｈが（１，０）にまでしか上昇しなかった場合は、第２ページが書き込みエラーになるのみならず、第１ページのデータも破壊してしまうことになる。例えば、ページＫの書き込み中に発生した書き込みエラーは、ページ０に書き込み済みであったデータを破壊する可能性がある。【０００９】
この課題を解決するために、特許文献１では、フラッシュメモリを制御するメモリコントローラにバッファメモリを設け、第２ページの書き込みが完了するまで、第１ページのデータをバッファメモリに格納しておき、第２ページの書き込みで書き込みエラーが発生した場合は、バッファメモリのデータをロードし、第１ページのデータもフラッシュメモリに再度書き込むように制御している。
【特許文献１】特開２００６−３１８３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の手法では第２ページの書き込みが終了するまで第１ページのデータをバッファメモリに保持しなければならない。このためセル共有関係の情報が既知の場合、ある物理ブロックに途中までデータを記録し、次に別の物理ブロックに書き込む場合には、この２つの物理ブロックの第１ページのデータをバッファメモリに保持しておく必要がある。このため最悪の場合、書き込み中の物理ブロックの半分の容量のバッファメモリが必要になる。【００１１】
また、セル共有ページの情報が公開されていない場合には、第１ページと第２ページの区別がつかないため、あるページへの書き込みでエラーが発生した場合には、そのページを含む物理ブロックの全ての書き込み済みのページにデータを再度書き込む必要が生じる。従ってホスト機器またはメモリカード内部に、物理ブロックの４倍程度の容量の大容量バッファを実装しておくことが必要となる。【００１２】
さらに、メモリカードの内部に大容量のバッファメモリを実装できない場合は、ホスト機器から発行するライト命令を物理ブロック単位に限定し、書き込みエラーが発生した場合は、ホスト機器が物理ブロック単位で再度書き込みするといった手法が想定される。この場合のバッファメモリのサイズは物理ブロックサイズに抑制される。高速化のために、並列書き込みを実施している場合は、物理ブロックサイズの数倍程度となる。しかしながら、物理ブロックサイズは、プロセスの微細化に従って増大しており、この場合でも物理ブロックサイズに対応したバッファメモリが必要になる。また既知に商品化されているホスト機器では、新しいメモリカードに対応できないといった課題があった。【００１３】
本発明は、上記問題を解決するものであり、従来のホスト機器との互換をとりつつ、書き込みエラーが発生した場合や書き込み後にエラーが発生した場合においても、訂正されたデータを読み出すことができる信頼性の高い半導体記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明の半導体記録装置は、物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとする半導体記録装置において、入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワードの間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して、（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成する第１のＥＣＣ生成部と、前記第１のＥＣＣ生成部によって生成された第１のＥＣＣ符号の（Ｎ＋Ｍ）ワードを、１ワード毎に前記不揮発性メモリの物理ブロックのグループ内で異なる物理ブロックに分配を繰り返すことにより、（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配するデータ分配部と、前記データ分配部によって分配された物理ブロック当たりＡワードのデータを、不揮発性メモリのＮ＋Ｍ個から成るグループの各物理ブロックに書き込むデータ書き込み部と、を備えたものである。【００１５】
ここで前記データ書き込み部は、前記データ分配部によって分配されたＡワードのデータを、夫々の物理ブロックの同一ページに書き込むようにしてもよい。【００１６】
ここで前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、前記書き込みエラー検出部によってエラーと検出されたページの各ビットが前記不揮発性メモリのセルを共有しているセル共有のページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを、夫々の物理ブロックから読み出すデータ読み出し部と、前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたセル共有ページのデータを復元するデータ復元部と、を更に有し、前記データ書き込み部は、前記データ復元部により復元されたセル共有ページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込むようにしてもよい。【００１７】
ここで前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを夫々の物理ブロックから順次読み出すデータ読み出し部と、前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたページのデータを復元するデータ復元部と、を更に有し、前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込むようにしてもよい。【００１８】
ここで前記（Ｎ＋Ｍ）個の物理ブロックは、夫々別の不揮発性メモリとしてもよい。【００１９】
この課題を解決するために、本発明の半導体記録装置は、物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとする半導体記録装置において、データの書き込みの際に入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワード間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成する第１のＥＣＣ生成部と、前記第１のＥＣＣ生成部によって生成された第１のＥＣＣ符号の（Ｎ＋Ｍ）ワードを、１ワード毎に前記不揮発性メモリの物理ブロックのグループ内で異なる物理ブロックに分配を繰り返すことにより、（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配するデータ分配部と、前記データ分配部から夫々の物理ブロックに分配されたＡワードに対して、Ｂ（Ｂは自然数）ワードのパリティを生成する第２のＥＣＣ生成部と、前記第２のＥＣＣ生成部より出力される（Ａ＋Ｂ）ワードのデータをＮ＋Ｍ個から成るグループの夫々の物理ブロックの夫々のページに書き込むデータ書き込み部と、を備えたものである。【００２０】
ここで前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、前記書き込みエラー検出部によってエラーと検出されたページの各ビットが前記不揮発性メモリのセルを共有しているセル共有のページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを、夫々の物理ブロックから読み出すデータ読み出し部と、前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたセル共有ページのデータを復元するデータ復元部と、を更に有し、前記データ書き込み部は、前記データ復元部により復元されたセル共有ページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込むようにしてもよい。【００２１】
ここで前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを夫々の物理ブロックから順次読み出すデータ読み出し部と、前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたページのデータを復元するデータ復元部と、を更に有し、前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込むようにしてもよい。【００２２】
ここで前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して読み出し動作をおこなうデータ読み出し部と、前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、前記データ読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を更に有し、前記データ書き込み部は、前記データ復元部により復元されたページのデータを前記不揮発性メモリのデータが書き込まれていない物理ブロックのページに書き込むようにしてもよい。【００２３】
ここで読み出しコマンドを受信したときに前記読み出しコマンドに含まれるアドレスにかかるデータを読み出すと共に、リードエラーフラグが付されたページのデータを構成要素としている前記第１のＥＣＣ符号の全データを、前記不揮発性メモリの夫々の物理ブロックより読み出すデータ読み出し部と、前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、前記読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を更に有し、前記読み出しコマンドに含まれるアドレスにかかるデータ、及び前記データ復元部により復元されたデータを出力するようにしてもよい。【００２４】
この課題を解決するために、本発明の半導体記録装置は、物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、Ｎ＋Ｍ個の前記物理ブロックを１つのグループとし、データの書き込みの際に、（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワード間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成し、Ａワードに対して、Ｂ（Ｂは自然数）ワードのパリティを生成して（Ａ＋Ｂ）ワードの第２のＥＣＣ符号としたデータが、Ｎ＋Ｍ個から成るグループの夫々の物理ブロックの同一ページに書き込まれた半導体記録装置であって、読み出しコマンドを受信したときに前記読み出しコマンドに含まれるアドレスにかかるデータを読み出すと共に、リードエラーフラグが付されたページのデータを構成要素としている前記第１のＥＣＣ符号の全データを、前記不揮発性メモリの夫々の物理ブロックより読み出すデータ読み出し部と、前記データ読み出し部より読み出された（Ａ＋Ｂ）ワードのデータに対して夫々エラー訂正を行い、訂正できなかった場合はリードエラーフラグを生成する第２のＥＣＣ訂正部と、前記読み出し部によって読み出されたリードエラーフラグが付されたページのデータを構成要素の１つとしている第1のＥＣＣ符号のデータに基づいて、リードエラーフラグで特定されたページのデータの消失訂正を行うデータ復元部と、を有し、前記読み出しコマンドに含まれるアドレスにかかるデータ、及び前記データ復元部により復元されたデータを出力するものである。
【発明の効果】
【００２５】
上記構成によって、第２ページに書き込みエラーが発生した場合に、そのページの各ビットを記憶する不揮発性メモリのメモリセルを共有している第１ページのデータと、前記第１ページとエラー訂正符号を構成している他の物理ブロックのページ読み出して消失訂正を実施し、データを復元した後、再書き込みするので、大容量のバッファメモリを用いることなく、セル共有による書き込みエラーの伝搬を防止することができる。【００２６】
また、物理ブロックにおけるセル共有の情報が公開されていない場合においても、書き込みエラーが発生した物理ブロックの書き込み済み全ページをエラーとみなして、当該物理ブロックとエラー訂正符号を構成している物理ブロックのデータを順次読み出し、消失訂正しながら再書き込みすることにより、物理ブロック単位で全データを復元できる。よって、書き込みエラーで発生するセル共有による書き込みエラーの伝搬を防止でき、信頼性の高い半導体記録装置を提供することが可能である。
【図面の簡単な説明】
【００２７】
【図１】図１は多値フラッシュメモリの電子の蓄積状態を示す模式図である。
【図２】図２は多値フラッシュメモリの物理ブロックのセル共有を示す図である。
【図３】図３は多値フラッシュメモリのセルの状態遷移図である。
【図４】図４は本発明の第１の実施の形態における半導体記録装置の構成図である。
【図５】図５は本実施の形態における物理ブロックのデータ及びパリティの配置の説明図である。
【図６】図６は本実施の形態におけるパリティの作成の説明図である。
【図７】図７は本実施の形態における書き込みエラーが発生した場合のフローチャートである。
【図８】図８は本実施の形態における書き込みエラーが発生した場合の処理を示す概念図である。
【図９】図９は本実施の形態の変形例（セル共有情報がない場合）における書き込みエラーが発生した場合の処理を示す概念図である。
【図１０】図１０は本発明の第２の実施の形態における半導体記録装置の構成図である。
【図１１Ａ】図１１Ａは書き込みデータの一例を示す図である。
【図１１Ｂ】図１１Ｂは書き込みデータに第１のＥＣＣ生成部でＥＣＣ符号を付した状態を示す図である。
【図１１Ｃ】図１１Ｃは第２のＥＣＣ生成部によるＥＣＣ符号を付した状態を示す図である。
【符号の説明】
【００２８】
１  インターフェイス
２  第１のＥＣＣ生成部
３  データ分配部
５ａ〜５ｅ  フラッシュメモリ
６ａ〜６ｅ  書き込みエラー検出部
７  フラグ生成部
８ａ〜８ｅ  データ読み出し部
９  データ復元部
１１ａ〜１１ｅ  第２のＥＣＣ生成部
１２ａ〜１２ｅ  データ読み出し部
１３ａ〜１３ｅ  第２のＥＣＣ訂正部
【発明を実施するための最良の形態】
【００２９】
（第１の実施の形態）
図４に本発明の第１の実施の形態による半導体記録装置の構成図を示す。本実施の形態において、インターフェイス１は、図示しないホスト機器からのコマンドやデータを受信し、データの転送を行うインターフェイスである。【００３０】
第１のＥＣＣ生成部２（以下、単にＥＣＣ生成部２という）はホスト機器からライトコマンドを受信したときに、受信したライトデータに対してエラー訂正パリティを付加するものである。より詳細には、入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワードの間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して、（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成するものである。尚ＥＣＣパリティはエラー訂正の機能を持つコードである。ここで本実施の形態では、Ｎを４、Ｍを１として説明する。尚ＥＣＣパリティは少なくともメモリセルの第１ページのデータに対して生成するが、第２ページのデータに対しては生成しなくてもよい。【００３１】
データ分配部３はＥＣＣ生成部２でパリティを付加されたＥＣＣ符号をフラッシュメモリの各物理ブロックに分配するものである。より具体的にはＥＣＣ生成部２によって生成されたＥＣＣ符号の（Ｎ＋Ｍ）ワード、ここでは５ワードを、１ワード毎にフラッシュメモリの異なる物理ブロックに分配し、これを繰り返すことにより、（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配するものである。【００３２】
データ書き込み部４ａ〜４ｅは、データ分配部３によって分配された物理ブロック当たりＡワードのデータを、不揮発性メモリのＮ＋Ｍグループの物理ブロックに記録するものである。ここではＭ＋Ｎを５としているので、データ書き込み部４ａ〜４ｅは５並列に実装され、５個のフラッシュメモリ５ａ〜５ｅの夫々１つの物理ブロックに夫々データを書き込むものである。【００３３】
本実施の形態の半導体記録装置は、（Ｎ＋Ｍ）個、ここでは５個のフラッシュメモリ５ａ〜５ｅを有している。フラッシュメモリ５ａ〜５ｅは本実施の形態では４値のフラッシュメモリとする。各フラッシュメモリは夫々複数の物理ブロックを有している。物理ブロックは消去単位であって、夫々２＊Ｋ（Ｋは自然数）個のページを有する。各ページはＡ（Ａは自然数）ワードから構成されている。ここでは１ワードは例えば１バイト、即ち８ビットとする。フラッシュメモリの物理ブロックの内部は、前述した図３に示すように０〜２Ｋ−１までのページ番号で管理されている。このうちページ番号０〜Ｋ−１のＫページはメモリセルの第１ページにより構成され、ページ番号Ｋ〜２Ｋ−１のＫページはメモリセルの第２ページにより構成される。【００３４】
書き込みエラー検出部６ａ〜６ｅは各フラッシュメモリ５ａ〜５ｅに書き込みを行ったときに生じる書き込みエラーを夫々検出するものであり、フラッシュメモリの数に対応して５個実装する。【００３５】
エラーフラグ生成部７は、書き込みエラー検出部６ａ〜６ｅで検出されたエラーに対してエラーフラグを生成するものである。エラーフラグ生成部７では、フラッシュメモリのセル共有情報を把握しているものとし、この共有情報に基づき、第２ページのエラーであればエラーフラグを生成する。【００３６】
データ読み出し部８ａ〜８ｅは、ホスト機器よりインターフェイス１に読み出しコマンドが与えられたときに指定されたアドレスに対応する各フラッシュメモリ５ａ〜５ｅより、データを読み出すものである。またデータの書き込み時にエラーがあったときに、ＥＣＣ符号に基づいてエラーを訂正する場合にもデータを読み出す。【００３７】
データ復元部９は、データの書き込み時にエラーがあったときに、データ読み出し部８ａ〜８ｅを介して読み出されたデータと、エラーフラグ生成部７で生成されたエラーフラグとに基づいて、エラー訂正を実施する。そしてエラーのないページのデータを新物理ブロックにコピーすることによって新物理ブロックにデータを復元するものである。復元したデータは、データ分配部３、データ書き込み部４ａ〜４ｅを介してフラッシュメモリ５ａ〜５ｅのいずれかに書き戻される。【００３８】
次にインターフェイス１を介してライトコマンド及びデータが入力されたときに、半導体記録装置の動作について、以下詳細に説明する。【００３９】
図５は５つのフラッシュメモリ５ａ〜５ｅにストライピング記録される場合の並列の物理ブロックとデータ及びパリティの関係を示す図である。図中の物理ブロックＰＢ０はフラッシュメモリ５ａの物理ブロック、物理ブロックＰＢ１はフラッシュメモリ５ｂの物理ブロックであり、以下同様に物理ブロックＰＢ２，ＰＢ３，ＰＢ４は夫々フラッシュメモリ５ｃ，５ｄ，５ｅの物理ブロックである。インターフェイス１により指定されるライトアドレスをＸとすると、フラッシュメモリのページ内のワード番号ｓ、フラッシュメモリの番号ｔ、各フラッシュメモリの物理ブロックの番号ｕ、物理ブロック内のページ番号ｖが一意で定まる。そして、フラッシュメモリ５ｅの物理ブロックの各ページにはＥＣＣ生成部２により生成されたＥＣＣパリティが書き込まれる。【００４０】
図６にＥＣＣパリティの生成方法を示している。図６（６−１）に、各物理ブロックＰＢ０，ＰＢ１，ＰＢ２，ＰＢ３及びＰＢ４のページ０のワードのアサインメントを示す。図６（６−２）は各ページの最初のワードに関するＥＣＣパリティとの関連図、図６（６−３）は各ページの２番目のワードに関するＥＣＣパリティとの関連図、図６（６−４）は各ページの最終ワードに関するＥＣＣパリティとの関連図である。ＥＣＣ生成部２は、Ｐ＿０、Ｐ＿１、Ｐ＿Ａ−１を以下にように計算する。
Ｐ＿０＝Ｄ［０］ＸＯＲ  Ｄ［Ａ］  ＸＯＲ  Ｄ［２＊Ａ］  ＸＯＲ  Ｄ［３＊Ａ］  ・・・（１）
Ｐ＿１＝Ｄ［１］ＸＯＲ  Ｄ［Ａ＋１］  ＸＯＲ  Ｄ［２＊Ａ＋１］  ＸＯＲ  Ｄ［３＊Ａ＋１］  ・・・（２）
Ｐ＿Ａ−１＝Ｄ［Ａ−１］ＸＯＲ  Ｄ［２＊Ａ−１］  ＸＯＲ  Ｄ［３＊Ａ−１］  ＸＯＲ  Ｄ［４＊Ａ−１］  ・・・（３）
ここでＤ［ｉ］は、アドレスｉに対応するデータの値、ＸＯＲはイクスクルーシブオアを示す。その他のＥＣＣパリティについても式（１）〜（３）と同様に算出する。【００４１】
上記のように、複数のデータを夫々要素とし、複数のデータからＥＣＣパリティを生成し、複数のデータを夫々相異なる物理ブロック、ここではＰＢ０〜ＰＢ３に記録し、ＥＣＣパリティをＰＢ４に記録しておく。これらのデータとＥＣＣパリティとは、ＥＣＣ符号を構成する。これらのデータとＥＣＣパリティはＥＣＣ符号の要素という。【００４２】
こうすればこのうちの１個の物理ブロックへの書き込みにエラーが生じても、ＥＣＣ符号の他の要素に基づいてデータを復元することができる。例えば、図６（６−１）において、物理ブロックＰＢ０の最初のデータＤ［０］を修復する場合は、式（１）を変形した次式（４）に基づいて４つの物理ブロックＰＢ１，ＰＢ２，ＰＢ３，ＰＢ４に保持された要素からエラーとなったデータを復元することができる。
Ｄ［０］＝Ｄ［Ａ］  ＸＯＲ  Ｄ［２＊Ａ］  ＸＯＲ  Ｄ［３＊Ａ］  ＸＯＲ  Ｐ＿０  ・・・（４）【００４３】
データ分配部３は、各フラッシュメモリに分配されたデータを夫々データ書き込み部４ａ〜４ｅに入力する。データ書き込み部４ａ〜４ｅは、分配されたデータをフラッシュメモリ５ａ〜５ｄの物理ブロックの各ページに書き込み、ＥＣＣパリティをフラッシュメモリ５ｅに書き込む。フラッシュメモリへの書き込みでは、所定の時間以内にＶｔｈが所望の電位に到達しない場合は、セルエラーと判断する。書き込みエラーが発生した場合は、書き込みエラーが発生した物理ブロックはこれ以降は使用せず、別の物理ブロックに再度書き込む。そのためエラーが発生した物理ブロックをバッドブロックとして登録し、新物理ブロックを抽出して再度書き込む処理が必要となる。【００４４】
次に、書き込みエラーの発生後の処理について、図７のフローチャートを参照して説明する。本実施の形態では４値フラッシュメモリを用いているため、各メモリセルを第１ページと第２ページの２ページで共有している。このため前述したように第２ページの書き込み時にエラーが生じると、メモリのセルを共有する第１ページにもエラーが伝搬する可能性がある。従って本実施の形態では書き込みエラー検出部６ａ〜６ｅは、書き込み時に書き込みエラーが発生したかどうかを検出する。エラーが発生した場合には、書き込みエラー検出部６ａ〜６ｅはエラーが発生したページをエラーフラグ生成部７に伝える。エラーフラグ生成部７はフラッシュメモリのセル共有情報を把握しているので、ステップＳ１において書き込みエラーが発生したページが第１ページか第２ページかを判定する。第１ページのエラーである場合は、ステップＳ２に進んでホスト機器にエラーステータスを返し、ホスト機器側で再書き込みして終了する。この場合にはエラーフラグは不要である。【００４５】
一方ステップＳ１において第２ページのエラーであると判断された場合は、エラーフラグ生成部７はセル共有ページにエラーフラグを生成する（ステップＳ３）。次いでデータ復元部９は、ステップＳ４において新物理ブロックを確保し、セル共有ページよりも前のデータをエラー発生ブロックから新物理ブロックにコピーする（ステップＳ５）。データ復元部９はエラーフラグが有効となったページと共にＥＣＣ符号を構成している他の物理ブロックのページを、データ読み出し部８ａ〜８ｅを介して読み出す（ステップＳ６）。データ復元部９はステップＳ７において、データ読み出し部８ａ〜８ｅによって読み出されたデータをエラーフラグを利用して、消失訂正する。次にデータ復元部９は、消失訂正されたデータをデータ分配部３、データ書き込み部４ａ〜４ｅのいずれかを介して新物理ブロックに書き込む（ステップＳ８）。更にデータ復元部９は、セル共有ページ以後のデータをエラー発生ブロックから新物理ブロックにコピーし（ステップＳ９）、その後ホスト機器にエラーステータスを返す（ステップＳ１０）。そうすればホスト機器は書き込みエラーが発生したページのデータを再度書き込むことができる（ステップＳ１１）。【００４６】
上記のステップＳ２以降の処理に関して、図８を参照にしながら具体的に説明する。図８の（８−１）では、ある物理ブロックのハッチングで示すページ（Ｋ＋１）にデータを書き込んでいるときに書き込みエラーが発生したことを示す。ページ番号（Ｋ＋１）のページはメモリセルの第２ページの１つであり、その各ビットのデータを保持するメモリセルは、ページ番号１の各ビットデータを保持するメモリセルとセル共有の関係にある。図８（８−２）（８−３）はエラー発生ブロックを修復する際の説明図であり、（８−２）はエラーが発生した物理ブロック、（８−３）はデータを修復して新たに書き込みをするための新物理ブロックである。この場合は以下のステップに沿って処理を行う。
（ステップＳ３）データ復元部９は、セル共有ページであるページ１にエラーフラグを生成する。
（ステップＳ４）データ復元部９は、新物理ブロックを確保する。
（ステップＳ５）データ復元部９は、ページ０をエラー発生ブロックから新物理ブロックのページ０にコピーする。
（ステップＳ６）データ復元部９は、ページ１をＥＣＣ符号の要素としている他の物理ブロックのページ１をデータ読み出し部８ａ〜８ｅを介してリードする。
（ステップＳ７）データ復元部９は、データ読み出し部８ａ〜８ｅによって読み出されたページ１のデータを、エラーフラグを使用して、消失訂正する。
（ステップＳ８）消失訂正されたページ１のデータを新物理ブロックのページ１に書き込む。
（ステップＳ９）ページ２以降のデータをエラー発生ブロックから新物理ブロックにコピーする。
（ステップＳ１０）ホスト機器にエラーステータスを返す。
（ステップＳ１１）ホスト機器がページ（Ｋ＋１）にデータを再度書き込む。
以上説明したように、第２ページに書き込みエラーが発生した場合に、セル共有している第１ページのデータにエラーが伝搬している可能性があるので、この第１ページとエラー訂正符号を構成している他の４つの物理ブロックのページのデータを読み出して消失訂正を実施し、データを復元した後に再度書き込む。こうすることにより、セル共有に基づくエラー伝搬を防止することができる。【００４７】
（変形例）
次に、本実施の形態の変形例について説明する。この変形例では物理ブロックにおけるセル共有の情報が公開されていない場合とする。従ってこの変形例ではＥＣＣ生成部は全てのページのＥＣＣパリティを生成する。この場合の処理について図９を参照にしながら説明する。図９の（９−１）では、ページ（Ｋ＋１）を書き込み中に書き込みエラーが発生したことを示す。ページ（Ｋ＋１）は第１ページであるか第２ページであるかは不明であり、どのページとセル共有の関係にあるかも不明である。しかしながら、もし第２ページであれば、それより前のページ０〜ページＫに、ページ（Ｋ＋１）とセル共有の関係にある第１ページが含まれている。図９（９−２）（９−３）はエラー発生ブロックを修復する際の説明図であり、図９（９−２）はエラーが発生した物理ブロック、図９（９−３）はデータを修復した後の新物理ブロックである。この場合の処理では、エラーフラグ生成部７は、エラーが発生した以前のページであるページ０〜ページＫのエラーフラグを全て有効にする。そしてデータ復元部９は書き込み済みページのデータとエラー訂正符号を構成している他の物理ブロックのＥＣＣ符号の各要素を順次読み出し、ページ０〜ページＫのデータを順次消失訂正して、新物理ブロックに書き込んでいく。エラーが生じたページ（Ｋ＋１）は図８の場合と同様に、ホスト機器にエラーステータスを返し、ホスト機器が再書き込みする。【００４８】
このように、物理ブロックにおけるセル共有の情報が公開されていない場合においても、書き込みエラーが発生した物理ブロックの書き込み済みの全ページをエラーとして処理する。即ち書き込みエラーが発生した物理ブロックの書き込み済みページのデータとエラー訂正符号を構成している他の物理ブロックのデータを順次読み出し、消失訂正しながら新物理ブロックに再書き込みすることにより、物理ブロック単位で全データを復元できる。【００４９】
この場合に他の物理ブロックのデータを読み出し、消失訂正することにより、エラー伝搬した物理ブロックのデータを復元することができるので、半導体記録装置やホスト機器に大容量のバッファメモリを実装する必要はない。【００５０】
さらに、上記と同様の理由で、ホスト機器が書き込むデータサイズを物理ブロックの整数倍に限定する必要もない。【００５１】
以上、書き込みエラーの修復について説明したが、本実施の形態では読み出し時のエラー訂正にも使用可能である。特に多値フラッシュメモリを使用した半導体記録装置では、２値フラッシュメモリに比較して読み出し時に隣接するメモリセルに悪影響を与えるディスターブ特性やデータを保持するリテンション特性が悪化しているため、有効に作用する。【００５２】
（第２の実施の形態）
次に本発明の第２の実施の形態の半導体記録装置について、図１０を用いて説明する。本実施の形態では書き込み時のエラー訂正に加えて読み出し時のエラー耐性を改善したものである。図１０において、データ分配部３の出力は第２のＥＣＣ生成部１１ａ〜１１ｅに与えられる。第２のＥＣＣ生成部１１ａ〜１１ｅは分配されたデータに対してＥＣＣパリティを生成してページ単位でＥＣＣパリティとデータ、即ちＥＣＣ符号とするものである。このＥＣＣ生成部の出力はそのままデータ書き込み部４ａ〜４ｅに与えられる。またデータ読み出し部１２ａ〜１２ｅの出力は第２のＥＣＣ訂正部１３ａ〜１３ｅを介してデータ復元部９に与えられる。第２のＥＣＣ訂正部１３ａ〜１３ｅは、第２のＥＣＣ生成部１１ａ〜１１ｅで生成されたページ単位のＥＣＣパリティに基づいて、エラーがあり訂正可能であれば訂正を施してデータ復元部９に与えるものである。データ読み出し部１２ａ〜１２ｅは読み出しコマンドを受信したときに読み出しコマンドに含まれるアドレスにかかるデータを読み出すと共に、リードエラーフラグが付されたページのデータを構成要素としている第１のＥＣＣ符号の全データを、不揮発性メモリの夫々の物理ブロックより読み出すものである。その他の構成は第１の実施の形態と同様であるので、説明を省略する。【００５３】
次にこの実施の形態の半導体記録装置の書き込み動作について図１１を用いて説明する。第１のＥＣＣ生成部２はホスト機器からライトコマンドを受信したときに、図１１Ａに示すように入力された（Ａ＊Ｎ）ワード（Ａ、Ｎは自然数）のデータに対して、Ａワードの間隔で抽出したＮワードにＭワード（Ｍは自然数）のＥＣＣパリティを付加して、（Ｎ＋Ｍ）ワードの第１のＥＣＣ符号をＡ個生成する。【００５４】
データ分配部３はＥＣＣ生成部２によって生成されたＥＣＣ符号の（Ｎ＋Ｍ）ワード、ここでは５ワードを、１ワード毎に第２のＥＣＣ生成部１１ａ〜１１ｅに分配し、これを繰り返すことにより、図１１Ｂに示すように（Ｎ＋Ｍ）個の物理ブロックにＡワードずつ分配する。【００５５】
第２のＥＣＣ生成部１１ａ〜１１ｅでは、ページ単位でＥＣＣ符号を生成する。この実施の形態では各ページのワード数はＡ＋Ｂワードであるとする。第２のＥＣＣ生成部１１ａ〜１１ｅはＡワードに対してＢワード（Ｂは２以上の整数）のＥＣＣパリティを付加する。ＥＣＣの方式としては例えばリードソロモン符号を用いる。リードソロモン符号に関しては説明を省略するが、Ｂ／２ワード分のエラーを訂正する能力を有している。一方、第１のＥＣＣ生成部２は前述したようにグループを構成するＮ個のデータからＥＣＣパリティを生成している。このためここで着目すべきことは、第１のＥＣＣ符号と第２のＥＣＣ符号とは直交関係にあることである。つまり（Ａ＋Ｂ）ワードの第２のＥＣＣ符号はある物理ブロックのページに分配され、その１つの要素を図１１Ｃに＊で示すものとする。この要素は一点鎖線で示す第１のＥＣＣ符号の１ワードである。よって、図１１Ｃにおいてある要素にエラーが生じて第２のＥＣＣ符号によりエラーが訂正できなかった場合であっても、第１のＥＣＣ符号で観測すると１ワードのエラーになり、十分に訂正できることになる。【００５６】
ＥＣＣパリティが付加されたデータはデータ書き込み部４ａ〜４ｅに入力され、フラッシュメモリ５ａ〜５ｅに書き込まれる。書き込み時のエラー訂正については第１の実施の形態と同様に実施してもよい。即ち図８に示すようにセル共有の情報が既知の場合には、書き込みエラーがあればセル共有に基づいてエラーが伝搬する可能性のあるページを消失訂正し、他のページを物理ブロックにコピーする。又は図９に示すようにセル共有の情報がなければエラーが生じたページより前に書き込まれている全てのページを消失訂正して新物理ブロックに書き込む方法がある。更にこれに加えて、第２のＥＣＣ符号を利用する手法について以下説明する。この場合第２のＥＣＣ訂正部１３ａ〜１３ｅは訂正不可であればリードエラーフラグを出力する機能を更に有するものとする。【００５７】
書き込み時にエラーが発生した場合は、書き込みエラーが発生したフラッシュメモリの当該物理ブロックの全データをデータ読み出し部（１２ａ〜１２ｅの少なくとも１個）より読み出す。フラッシュメモリより読み出された当該物理ブロックの全データは、ページ単位で第２のＥＣＣ訂正部（１３ａ〜１３ｅの少なくとも１個）に入力される。第２のＥＣＣ訂正部１３ａ〜１３ｅでは、各ページ単位でエラーがあればエラー訂正を実行する。エラー訂正が不可の場合は、当該ページのエラー訂正が不可能であったことを示すリードエラーフラグをページ単位に出力する。データ復元部９では、第２のＥＣＣ訂正部１３ａ〜１３ｅより出力されるリードエラーフラグと、エラー訂正済みのデータとに従って、消失訂正を実行する。例えば、フラッシュメモリ５ａの物理ブロックＰＢ０のページ１がエラー訂正不可と判定された場合においては、データ読み出し部１２ａ〜１２ｅはこのページのデータが構成要素であるＥＣＣ符号が記録されている同一グループの他の物理ブロックのページ１のデータを読み出す。これらのページが誤りなく読み出された場合、又はエラーがあっても第２のＥＣＣ訂正部１３ａ〜１３ｅによって訂正が可能であれば、訂正して各ページのデータを得る。こうすれば物理ブロックＰＢ０のページ１のエラーを、式（２）に基づいて消失訂正することができる。データ復元部９により消失訂正されたデータは、再度第２のＥＣＣ生成部に入力され、第２のＥＣＣ符号を生成した後に、データ書き込み部によりフラッシュメモリの新物理ブロックに書き込まれる。【００５８】
このように書き込まれたフラッシュメモリ５ａ〜５ｅよりデータを読み出す場合の動作について、以下説明する。データ読み出し部１２ａ〜１２ｅによりフラッシュメモリ５ａ〜５ｅから読み出されたデータは、まず第２のＥＣＣ訂正部１３ａ〜１３ｅに入力される。第２のＥＣＣ訂正部１３ａ〜１３ｅでは、各ページ単位でエラーがあればエラー訂正を実行する。エラー訂正が不可の場合は、当該ページのエラー訂正が不可能であったことを示すリードエラーフラグをページ単位に出力する。データ復元部９では、第２のＥＣＣ訂正部１３ａ〜１３ｅより出力されるリードエラーフラグと、エラー訂正済みのデータとに従って、消失訂正を実行する。例えば、フラッシュメモリ５ａの物理ブロックＰＢ０のページ１がエラー訂正不可と判定された場合においては、データ読み出し部１２ａ〜１２ｅはこのページのデータが１つの構成要素であるＥＣＣ符号が記録されている同一グループの他の物理ブロックのページ１のデータを読み出す。これらのページが誤りなく読み出された場合、又はエラーがあっても第２のＥＣＣ訂正部１３ａ〜１３ｅによって訂正が可能であれば、式（２）に基づいて消失訂正することができる。データ復元部９により消失訂正されたデータは、インターフェイス１を介してホスト機器に出力される。【００５９】
以上説明したように、インターフェイスを介して入力されるデータ（Ａ＊Ｎ）ワードに対して（Ａ、Ｎは自然数）、Ａワード間隔で抽出したＮワードにパリティを付加し（Ｎ＋Ｍ）ワードのエラー訂正符号を構成し、データ分配部により、（Ｎ＋Ｍ）ワードを夫々別の第２のＥＣＣ生成部にＡワードずつ分配し、第２のＥＣＣ生成部でＡワードに対してＢワードのパリティ符号を付加した（Ａ＋Ｂ）ワードを各ページに記録する。【００６０】
書き込み時にエラーが発生した場合は、エラーが発生した物理ブロックの全データをページ単位に読み出し、第２のエラー訂正部によりエラー訂正不能なページを検出することによって、エラー発生したページとセル共有の関係にあるページを検出することができる。そして、他の物理ブロックのＮ＋Ｍ−１個のページのデータより、エラー訂正不可であったページのＡワードのデータをデータ復元部により復元して、再度書き込みを行うことにより、ライトエラーで発生するセル共有部へのエラー伝搬の影響を防止することが可能となる。【００６１】
一方データの読み出し時には、フラッシュメモリより、ページ単位に（Ａ＋Ｂ）ワードを読み出し、第２のＥＣＣ訂正部により、エラー訂正可能な場合はエラー訂正したＡワードを出力し、エラー訂正不可能な場合はエラーフラグを出力する。このとき他の物理ブロックのＮ＋Ｍ−１個のページのデータより、エラー訂正不可であったページのＡワードのデータをデータ復元部により復元して、インターフェイスを介してホスト機器に出力する。【００６２】
フラッシュメモリはページの中で第２のＥＣＣ符号を用いてデータを記録することが多く、メモリセルの特性と第２のＥＣＣ符号の訂正能力によって、その書き換え回数と保存期間を規定している。このため、本実施の形態のように第２のＥＣＣ符号の外部に第１のＥＣＣ符号を付加することにより、エラー訂正能力を改善することができ、規定された性能を超えた使用も可能となる。【００６３】
尚、ここで示したようにデータがあらかじめ書き込まれ、ユーザは読み出しのみ可能な半導体記録装置について、データ読み出し部１２ａ〜１２ｅ，第２のＥＣＣ訂正部１３ａ〜１３ｅ及びデータ復元部９を用いて読み出したときにエラー訂正をする半導体記録装置として使用することができる。【００６４】
なお、上記説明では簡単のために第１のＥＣＣ符号は１パリティとしたが、それ以上のパリティを付加しても良いことはいうまでもない。即ちパリティの数Ｍは、１以上の任意の自然数とすることができる。またデータ読み出し部１２ａ〜１２ｅは読み出しコマンドを受信したときに読み出しコマンドに含まれるアドレスにかかるデータを読み出すと同時に、あらかじめそのページのデータを構成要素としている第１のＥＣＣ符号の全データを、不揮発性メモリの夫々の物理ブロックより読み出すようにしておけば、エラーの消失訂正処理を早めることができる。【００６５】
また、第２のＥＣＣ訂正符号はページ単位に構成したが、１ページに複数のＥＣＣ符号（例えば２０４８ワードに対して５１２ワード単位で４個のＥＣＣ符号）を構成してもよいことはいうまでもない。【００６６】
また各実施の形態では、メモリセルに格納するビット数が２ビットの多値フラッシュメモリとしたが、本発明はさらに状態を増加させ１セルに３ビット以上格納できる多値フラッシュメモリにも適応可能であることはいうまでもない。【００６７】
また各実施の形態では５つのフラッシュメモリを用いて第１のＥＣＣ符号の各要素を夫々のフラッシュメモリに記憶するようにしているが、フラッシュメモリの異なる物理ブロックに記録するようにしてもよい。【００６８】
さらに、フラッシュメモリのみならず、他の不揮発性メモリに適応しても同様の効果が得られることはいうまでもない。
【産業上の利用可能性】
【００６９】
本発明の半導体記録装置は、メモリカードなどの半導体記録装置に関し、特に内部の不揮発性メモリで発生する書き込みエラーや読み出しエラーを修復することができ、多値フラッシュメモリのエラー耐性能力を改善することができるため、信頼性を必要とされる業務用分野で使用される可能性が大きい。
【図１】
2009139115.tif 000003
【図２】
2009139115.tif 000004
【図３】
2009139115.tif 000005
【図４】
2009139115.tif 000006
【図５】
2009139115.tif 000007
【図６】
2009139115.tif 000008
【図７】
2009139115.tif 000009
【図８】
2009139115.tif 000010
【図９】
2009139115.tif 000011
【図１０】
2009139115.tif 000012
【図１１Ａ】
2009139115.tif 000013
【図１１Ｂ】
2009139115.tif 000014
【図１１Ｃ】
2009139115.tif 000015
【手続補正書】
【提出日】平成21年8月28日(2009.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理ブロックが複数ページによって構成される不揮発性メモリを内蔵し、複数個の前記物理ブロックを１つのグループとする半導体記録装置において、
入力されたデータに対して、所定の間隔で抽出したＥＣＣパリティを付加し、第１のＥＣＣ符号を生成する第１のＥＣＣ生成部と、
前記第１のＥＣＣ生成部によって生成された第１のＥＣＣ符号を、所定サイズ毎にグループ内の異なる物理ブロックに分配するデータ分配部と、
前記データ分配部によって分配されたデータを、グループ内の各物理ブロックに書き込むデータ書き込み部と、
前記不揮発性メモリへの書き込み時に発生する書き込みエラーを、物理ブロックのページ単位で検出する書き込みエラー検出部と、
前記書き込みエラー検出部によってエラーと検出されたページの各ビットが前記不揮発性メモリのセルを共有しているセル共有のページに対して、書き込みエラーの可能性を示すエラーフラグを生成するエラーフラグ生成部と、
前記エラーフラグ生成部によりエラーフラグが生成されたページのデータと共に第１のＥＣＣ符号を構成している全データを、夫々の物理ブロックから読み出すデータ読み出し部と、
前記データ読み出し部によって読み出されたデータより、前記エラーフラグ生成部で特定されたセル共有ページのデータを復元し、データが書き込まれていない物理ブロックのページに書き込むデータ復元部と、を備えた半導体記録装置。
【請求項２】
前記エラーフラグ生成部は、前記書き込みエラー検出部によってエラーと検出されたページが属する物理ブロックの全ての書き込み済みページに対して、書き込みエラーの可能性を示すエラーフラグ請求項１記載の半導体記録装置。
【請求項３】
前記データ書き込み部は、前記データ分配部によって分配されたデータを、夫々の物理ブロックの同一ページに書き込む請求項１記載の半導体記録装置。
【請求項４】
前記物理ブロックは、夫々別の不揮発性メモリである請求項１記載の半導体記録装置。
【請求項５】
（削除）
【請求項６】
（削除）
【請求項７】
（削除）
【請求項８】
（削除）
【請求項９】
（削除）
【請求項１０】
（削除）
【請求項１１】
（削除）
【国際調査報告】
2009139115.tif 000016
2009139115.tif 000017