(57)【要約】【課題】物理ブロック単位で、データ保持特性のばらつきが発生した場合においても、その特性ばらつきを吸収し、データ保持性能を改善できる半導体記録装置を提供する。【解決手段】データの書き込み時には、ＥＣＣ符号を構成してフラッシュメモリの物理ブロックに書き込む。読み出しにおいて、ＥＣＣ符号によるエラー訂正で、エラー訂正された数が基準数以上存在する物理ブロックを警告ブロックとし、警告ブロックテーブルに登録する。書き込み時に新規物理ブロックを抽出するときに、警告ブロックの優先順位を下げて抽出する。これにより、警告ブロックが以後の書き込みにおいて選択されることが抑制されるため、各物理ブロックのデータ保持特性劣化を平均化することができる。【選択図】図５
2010079486.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ブロックにより構成され、且つ物理ブロックが複数ページによって構成される不揮発性メモリを内蔵する半導体記録装置において、
データの書き込みの際に入力されたデータに対して、ＥＣＣパリティを付加して、ＥＣＣ符号を生成するＥＣＣ生成手段と、
前記ＥＣＣ生成手段より出力されるＥＣＣ符号を物理ブロックに書き込むデータ書き込み手段と、
前記不揮発性メモリの物理ブロックよりＥＣＣ符号を読み出すデータの読み出し手段と、
前記データ読み出し手段により読み出された各ページのデータにエラーがあるときに、ＥＣＣ符号によってエラーを訂正するＥＣＣ訂正手段と、
データ読み出し時に前記ＥＣＣ訂正手段によって訂正したエラー数が閾値以上の物理ブロックを警告ブロックとして警告ブロックテーブルに登録する警告ブロック管理手段と、
データの書き込み時に前記警告ブロックテーブルに登録されている警告ブロックの優先順位を下げて新規に書き込み可能な物理ブロックを抽出するテーブル管理手段と、を具備する半導体記録装置。
【請求項２】
前記テーブル管理手段は、データ書き込み及び読み出し時に、外部より与えられる論理アドレスで示される論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示す論物変換テーブル、及び各物理ブロックの使用可否を示すブロックエントリテーブルの登録、更新を行うと共に、データ書き込み時に前記ブロックエントリテーブルと警告ブロックテーブルとに基づいて新規物理ブロックを抽出するものである請求項１記載の半導体記録装置。
【請求項３】
前記警告ブロック管理手段は、警告ブロックとして登録された物理ブロックの物理ブロック番号と、当該物理ブロックで訂正したエラーの数を要素として前記警告ブロックテーブルに登録するものである請求項１記載の半導体記録装置。
【請求項４】
半導体記録装置の物理ブロックの書き換え回数を計数し、物理ブロックの書き換え回数の増加に伴って前記警告ブロックとして判定するエラー訂正数の閾値を増加させる書き換え回数管理手段を更に具備する請求項１〜３のいずれか１項記載の半導体記録装置。
【請求項５】
前記警告ブロック管理手段は、登録する警告ブロック数の上限値を規定し、既に登録されている警告ブロック数が当該上限値に等しく、且つ新たに警告ブロックの条件を満たす警告ブロック候補が検出された場合に、エラー訂正数が最小であった登録済み警告ブロックと登録候補の警告ブロックのエラー訂正数を比較し、登録候補の警告ブロックのエラー訂正数が多ければ登録候補の警告ブロックを警告ブロックテーブルに登録し、比較した警告ブロックを警告ブロックテーブルより削除するものである請求項１〜４のいずれか１項記載の半導体記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードなどの不揮発性の半導体記録装置に関し、特に内部の不揮発性メモリのデータ保持特性のばらつき及び書き換え回数の増加に伴う劣化を抑制するようにした半導体記録装置に関する。
【背景技術】
【０００２】
従来、フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（Secure Digital）カード等の半導体記録装置は、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。
【０００３】
半導体記録装置に内蔵されているフラッシュメモリは、一定サイズの多数の物理ブロックから成り、物理ブロックの単位でデータを消去できるメモリである。昨今の大容量化の要請に対応すべく、フラッシュメモリは１セルで２ビット以上のデータが蓄積できる多値フラッシュメモリが商品化されている。
【０００４】
図１に、多値フラッシュメモリのフローティングゲートに蓄積する電子の数と閾値電圧（Ｖｔｈ）の関係の一例を示す。図１に示すように、４値のフラッシュメモリでは、フローティングゲートの電子の蓄積状態をその閾値電圧（Ｖｔｈ）に従って４状態で管理する。消去状態は電位が一番低く、これを（１，１）とする。そして電子が蓄積していくにつれて閾値電圧が離散的に上昇し、その状態を夫々（１，０）（０，０）（０，１）とする。このように、蓄積する電子の数に比例して電位が上昇するので、所定の電位の閾値に収まるように制御することによって、１つのメモリセルに２ビットのデータを記録することができる。
【０００５】
図２に４値のフラッシュメモリの１つの物理ブロックの模式図を示す。図２に示す物理ブロックは、２Ｋ個（Ｋは自然数）のページによって構成されている。そして、書き込み処理は、ページ番号０から昇順に実施される。ここで、ページ番号ｍ（０≦ｍ＜Ｋ）のページとページ番号（Ｋ＋ｍ）番のページは１つのメモリセルを共有している関係（以下、セル共有関係という）にあるとする。セル共有関係にあるページにおいて、最初に書き込むページを第１ページ、次に書き込むページを第２ページと呼ぶ。つまり、ページ番号ｍへの書き込み（第１ページへの書き込み）と、ページ番号（Ｋ＋ｍ）への書き込み（第２ページへの書き込み）は、同一のセルに電子をチャージしていることになる。図１を参照に説明すると、第１ページへの書き込みでは、電位は最大でも半分までしか上昇しないように制御し、次の第２ページへの書き込みでは、半分から最大まで電位が上昇するように制御する。
【０００６】
図３に、フラッシュメモリセルの状態遷移を示す。図３に示すように、フラッシュメモリの物理ブロックの１つのメモリセルの状態は、以下のように遷移する。
（ａ）データを消去した後は、メモリセルの状態は（１，１）
（ｂ）第１ページへの書き込み後は、セルの状態は（１，１）又は（１，０）
（ｃ）第２ページへの書き込み後は、セルの状態は（１，１），（１，０），（０，０）又は（０，１）
このように、多値のフラッシュメモリでは、閾値電圧Ｖｔｈに複数の状態を設けてフラッシュメモリの電子の蓄積量を制御する多値記録を行い、大容量化を実現している。
【０００７】
しかしながら、多値フラッシュメモリにおいては、電子の蓄積量によって４状態を識別するために、各状態間の閾値電圧（Ｖｔｈ）の差が、２値フラッシュメモリより小さい。また、書き換え回数を重ねる毎に、データの書き換えを繰り返すと、電子の注入と引き抜きによってゲート酸化膜にわずかな損傷が発生する。この損傷が積み重なると電子トラップが数多く形成されるため、実際のフローティングゲートに蓄積される電子数が減少してしまう。半導体プロセスの微細化に比例して、フローティングゲートに蓄積される電子数が少なくなっているため、電子トラップの影響は大きくなる。このように、フラッシュメモリの大容量化を支える多値記録及び半導体プロセスの微細化に従い、フラッシュメモリのデータ保持特性が劣化するという問題点が顕著になってきた。
【０００８】
上記の課題の解決手法としてフラッシュメモリの書き換え回数を制限したり、エラー訂正を強化することが行われている。特許文献１では、フラッシュメモリの物理ブロックを構成するページ単位に誤り訂正能力の高いＥＣＣ符号を記録し、読み出し時に誤り訂正を実施する。そして、誤り数が基準値以上であれば、当該ページにかかるデータを消去済みブロックのページに記録し直すことにより、近い将来において、当該ページのデータが誤り訂正不可となることを防止している。
【特許文献１】特開２００６−２２１３３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
半導体記録装置では、書き換え回数が増加するにつれて、ゲート酸化膜の損傷による電子トラップが数多く形成されるため、実際のフローティングゲートに蓄積される電子数が減少し、データ保持特性が劣化する。フラッシュメモリは物理ブロック単位で消去されるため、フラッシュメモリのデータ保持特性のばらつきは、物理ブロック単位で発生する可能性が高い。更に、フラッシュメモリの制御手法によって各物理ブロックの書き換え回数のばらつきが発生すれば、データ保持特性のばらつきは加速していく。
【００１０】
一般にフラッシュメモリの制御においては、論理ブロックアドレスと物理ブロックアドレスとを変換する変換テーブル（以下、論物変換テーブルという）を用いることにより、論理ブロックへの書き込みにばらつきがあっても物理ブロックの書き換え回数を平均化している。論物変換テーブルの一例を図４に示す。図４に示すように、１個の論理ブロックが使用中であれば、それに対応している物理ブロック番号を登録し、論理ブロックが未使用であれば、存在しない物理ブロック番号（例えばＺ）を登録する。半導体記録装置では、以下のような手法で書き換え回数を平均化する。
（Ｓ１）電源投入時に論物変換テーブルをリードし、全物理ブロックの使用状態（使用又は未使用）を示すブロックエントリテーブルを作成する。
（Ｓ２）ホストから書き込み命令が発行されると、ブロックエントリテーブルより未使用の物理ブロックを、ランダムに、又は物理ブロック番号のサーチ初期値から昇順に抽出する。
（Ｓ３）抽出した物理ブロックを消去し、ホストから転送されるデータを書き込む。
（Ｓ４）論物変換テーブルとブロックエントリテーブルを更新する。
【００１１】
しかしながら、上記の方法では、例えばファイル１とファイル２の２個のファイルがあって、ファイル１を更新せずファイル２を繰り返して更新した後、ファイル１，２を更新する場合においては、各物理ブロックの書き換え回数ばらつきが無視できない程度に発生する。つまり、ファイル１に割り当てられた物理ブロックの書き換え回数は、ファイル２が繰り返して更新されている間は一定であるが、それ以外の物理ブロックの書き換え回数は増加している。その後ファイル１，２を更新すると、全体の物理ブロックの書き換え回数が増加する。よって、この時点での物理ブロックの書き換え回数は、元のファイル１に割り当てられた物理ブロックとそれ以外の物理ブロックとで大幅に異なってしまう。
【００１２】
このように、物理ブロックの書き換え回数にばらつきが発生すると、物理ブロックによってデータ保持特性が大きく異なっていく。よって従来の手法では、書き換え回数のばらつきによるデータ保持特性が劣化し、エラー訂正不能なレベルになる可能性がある。この場合には誤り訂正されたページのデータを消去済みブロックのページに記録し直すことができなくなるという問題があった。
【００１３】
本発明は上記課題を解決するものであり、物理ブロック単位でデータ保持特性のばらつきが発生した場合においても、そのばらつきを吸収し、データ保持性能を改善できる半導体記録装置を提供することを目的とする。
【００１４】
更に、各物理ブロックの書き換え回数にばらつきが発生した場合においても、物理ブロックの書き換え回数のばらつきを緩和し、データ保持特性を改善できる半導体記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
この課題を解決するために、本発明の半導体記録装置は、複数の物理ブロックにより構成され、且つ物理ブロックが複数ページによって構成される不揮発性メモリを内蔵する半導体記録装置において、データの書き込みの際に入力されたデータに対して、ＥＣＣパリティを付加して、ＥＣＣ符号を生成するＥＣＣ生成手段と、前記ＥＣＣ生成手段より出力されるＥＣＣ符号を物理ブロックに書き込むデータ書き込み手段と、前記不揮発性メモリの物理ブロックよりＥＣＣ符号を読み出すデータの読み出し手段と、前記データ読み出し手段により読み出された各ページのデータにエラーがあるときに、ＥＣＣ符号によってエラーを訂正するＥＣＣ訂正手段と、データ読み出し時に前記ＥＣＣ訂正手段によって訂正したエラー数が閾値以上の物理ブロックを警告ブロックとして警告ブロックテーブルに登録する警告ブロック管理手段と、データの書き込み時に前記警告ブロックテーブルに登録されている警告ブロックの優先順位を下げて新規に書き込み可能な物理ブロックを抽出するテーブル管理手段と、を具備するものである。
【００１６】
ここで前記テーブル管理手段は、データ書き込み及び読み出し時に、外部より与えられる論理アドレスで示される論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示す論物変換テーブル、及び各物理ブロックの使用可否を示すブロックエントリテーブルの登録、更新を行うと共に、データ書き込み時に前記ブロックエントリテーブルと警告ブロックテーブルとに基づいて新規物理ブロックを抽出するようにしてもよい。
【００１７】
ここで前記警告ブロック管理手段は、警告ブロックとして登録された物理ブロックの物理ブロック番号と、当該物理ブロックで訂正したエラーの数を要素として前記警告ブロックテーブルに登録するようにしてもよい。
【００１８】
ここで半導体記録装置の物理ブロックの書き換え回数を計数し、物理ブロックの書き換え回数の増加に伴って前記警告ブロックとして判定するエラー訂正数の閾値を増加させる書き換え回数管理手段を更に具備するようにしてもよい。
【００１９】
ここで前記警告ブロック管理手段は、登録する警告ブロック数の上限値を規定し、既に登録されている警告ブロック数が当該上限値に等しく、且つ新たに警告ブロックの条件を満たす警告ブロック候補が検出された場合に、エラー訂正数が最小であった登録済み警告ブロックと登録候補の警告ブロックのエラー訂正数を比較し、登録候補の警告ブロックのエラー訂正数が多ければ登録候補の警告ブロックを警告ブロックテーブルに登録し、比較した警告ブロックを警告ブロックテーブルより削除するようにしてもよい。
【発明の効果】
【００２０】
上記構成によって、データの読み出しの際におけるＥＣＣ符号を利用した誤り訂正の結果より、警告ブロックとして管理された物理ブロックを、データ保持特性の劣化した物理ブロックと判定し、データの書き込みで新規の物理ブロックを選択する際に、警告ブロックの優先順位を下げて選択しているので、半導体記録装置の物理ブロックのデータ保持特性の偏りを抑制できる。
【００２１】
また、書き換え回数管理手段により、半導体記録装置の物理ブロックの書き換え回数を計数し、書き換え回数の増加に従い、警告ブロックと判定するエラー訂正数の閾値を増加すれば、書き換え回数が増加していった場合にも警告ブロックを適切に登録することができる。
【００２２】
このように、半導体記録装置の物理ブロックにおいて、データ保持特性及び書き換え回数のばらつきが発生した場合においても、そのばらつきを吸収し、データ保持性能を改善することができる。
【発明を実施するための最良の形態】
【００２３】
図５に本発明の実施の形態による半導体記録装置の構成図を示す。本実施の形態において、外部インターフェイス手段１は、図示しないホスト機器からのコマンドやデータを受信し、データの転送を行うインターフェイスである。
【００２４】
ＥＣＣ生成手段２は、外部インターフェイス手段１を介して入力されたデータに対して、Ａワード毎にＢワード（Ａ，Ｂは自然数）のＥＣＣパリティ符号を付加したＥＣＣ符号を生成するものである。尚ＥＣＣパリティはエラー訂正の機能を持つコードである。本実施の形態では、Ａを５１２、Ｂを８として説明する。
【００２５】
データ書き込み手段３は、ＥＣＣ生成手段２によって生成された（Ａ＋Ｂ）ワードのデータを、フラッシュメモリ４の物理ブロックの各ページに記録するものである。
【００２６】
フラッシュメモリ４は４値のフラッシュメモリであり、多数の物理ブロックから構成される。物理ブロックは消去単位であって、夫々２Ｋ個（Ｋは自然数）のページを有する。フラッシュメモリの内部は前述した図２に示すように０〜２Ｋ−１までのページ番号で管理されている。このうちページ番号０〜Ｋ−１のＫページはメモリセルの第１ページにより構成され、ページ番号Ｋ〜２Ｋ−１のＫページはメモリセルの第２ページにより構成される。本実施の形態のフラッシュメモリの各物理ブロックはＫ＝３２、即ち６４ページで構成されるものとする。各ページはＡワードの記憶容量を持ち、Ｂワード以上の冗長領域を持っている。ここでは１ワードは例えば１バイト、即ち８ビットとする。
【００２７】
テーブル管理手段５は、論物変換テーブルとブロックエントリテーブルを管理するものである。論物変換テーブルは外部インターフェイス手段１を介して指示される論理ブロックと、論理ブロックに対応するフラッシュメモリの物理ブロックのアドレスとを関連づけるものである。ブロックエントリテーブルは電源の投入後に生成されるもので、各物理ブロックの使用又は未使用を示すテーブルである。テーブル管理手段５は、これらのテーブルを登録、更新すると共に、データ書き込みの際論理ブロックに対応する新規物理ブロックをブロックエントリテーブルと後述する警告ブロックテーブルを参照して抽出するものである。
【００２８】
データ読み出し手段６は、ホスト機器より外部インターフェイス手段１に読み出しコマンドが与えられたときに、指定された論理ブロックに対応するフラッシュメモリ４の物理ブロックより、データを読み出すものである。
【００２９】
ＥＣＣ訂正手段７は、データを読み出す際にＥＣＣ生成手段２で生成されたページ単位のＥＣＣパリティに基づいて、ページ単位にエラー訂正を施すものである。
【００３０】
書き換え回数管理手段８は、本半導体記録装置における物理ブロックの書き換え回数の平均値を管理し、平均値に基づいてエラー訂正数閾値（REF#CorNum）を算出するものである。
【００３１】
警告ブロック管理手段９は、データの読み出し時にＥＣＣ訂正手段７でＥＣＣ訂正された物理ブロックで、エラー訂正数閾値（REF#CorNum）以上あったブロックを警告ブロックとして警告ブロックテーブルに登録したり、更新するものである。
【００３２】
警告ブロックテーブルの一例を図６に示す。警告ブロックテーブルでは、警告ブロックの物理ブロック番号と、各警告ブロックのエラー訂正数とを要素として保持している。図６では物理ブロック番号ＰＢ８のエラー訂正数が３０、物理ブロック番号ＰＢ１０のエラー訂正数が２８であることを示す。また、警告ブロックの総数は、フラッシュメモリの製造者が保証している最大のバッドブロック数から現バッドブロック数を減算した値以下とすることが望ましい。例えば、フラッシュ製造者が保証している最大のバッドブロック数が１００であって、現在のバッドブロック数が４０の場合は、警告ブロックとして登録可能な数（以下、登録可能警告ブロック数という）は６０とし、警告ブロック数を６０以下にとどめておく。警告ブロック数をそれ以上増加させても、半導体記録装置の記録容量分のデータを記録した場合には警告ブロックを使用せざるを得ないからである。
【００３３】
次に本実施の形態の半導体記録装置の動作について説明する。まずテーブル管理手段５は、電源投入時に論物変換テーブルを読み出し、全物理ブロックの使用状態（使用又は未使用）を示すブロックエントリテーブルを作成する。ブロックエントリテーブルの一例を図７に示す。図７において、上段は物理ブロック番号、下段はその使用状態を示しており、１が使用済み、０は使用可のブロックである。
【００３４】
次に、警告ブロックテーブルへの登録及び警告ブロックテーブルの更新ステップについて説明する。まず書き換え回数管理手段８の管理している全物理ブロックの書き換え回数により警告ブロックとして登録するエラー訂正数の閾値を設定する。
【００３５】
一般に、書き換え回数の増加に伴い、前述した電子トラップの増加等でフローティングゲートに蓄積している電子数が減少するため、エラーの発生率が増加する。よって、書き換え回数が増加すると、ブロック当たりのエラー訂正数も増加していく。このため、警告ブロックとするか否かを判断するエラー訂正数の閾値を一定にしておけば、比較的書き換え回数が少ない場合は、全く警告ブロックの抽出ができなくなる。一方書き換え回数が増加すると、読み出したブロックの多くを警告ブロックとして登録しなければならなくなる。
【００３６】
上記特性を考慮し、書き換え回数の全ブロックの平均値を書き換え回数管理手段８で算出する。そして、例えば、各物理ブロックの書き換え回数の上限値が１万回と規定されているフラッシュメモリでは、警告ブロックとして登録する物理ブロック当たりのエラー訂正数の閾値を以下のように変化させる。
書き換え回数の平均値が０〜５０００回の場合、エラー訂正数閾値（REF#CorNum）を６４個以上とする。
書き換え回数の平均が  ５０００回〜８０００回の場合、エラー訂正数閾値（REF#CorNum）を９６個以上とする。
書き換え回数の平均値が８０００回以上の場合、エラー訂正数閾値（REF#CorNum）を１２８個以上とする。
尚、この数値は一例であって適宜変更することができるが、書き換え回数の平均値が増加するとエラー訂正数閾値も増加させるものとする。
【００３７】
このように、書き換え回数の平均値が増加すれば警告ブロックとして登録するブロック当たりのエラー訂正数閾値も大きくなるように変化させることによって、書き換えが平均書き換え回数より多い物理ブロック、または書き換え回数によるエラー耐性が弱い物理ブロックを警告ブロックとして効果的に抽出することができる。
【００３８】
物理ブロックの書き換え回数の総数は、論物変換テーブルの更新回数とブロックエントリテーブルの変化数との積に一致するので、書き換え回数管理手段８は、（論物変換テーブルの更新回数＊エントリテーブルの変化数／物理ブロック数）を書き換え回数の平均値として利用することができる。
【００３９】
次に警告ブロックの判定及び登録について説明する。この処理はリードコマンドに応じて物理ブロックからデータを読み出す毎に行われる。図８は、警告ブロックの判定に関するフローであり、各ステップについて、以下詳細に説明する。
（Ｓ１）データ読み出し手段６により１つの物理ブロックから読み出されたデータにエラーがあれば、ＥＣＣ訂正手段７でＥＣＣ訂正し、物理ブロック当たりのエラー訂正数を計数する。
（Ｓ２）物理ブロック当たりのエラー訂正数を、エラー訂正数閾値REF#CorNumと比較する。エラー訂正数がこのエラー訂正数閾値以下であれば、警告ブロックとせずに処理を終了する。
（Ｓ３）物理ブロック当たりのエラー訂正数がREF#CorNum以上であれば、警告ブロックの候補とする。
（Ｓ４）当該物理ブロックを警告ブロック候補とした場合、警告ブロックテーブルに既に登録済みの警告ブロック数と、登録可能警告ブロック数とを比較する。
（Ｓ５）（登録済みの警告ブロック数）＜（登録可能警告ブロック数）の場合、警告ブロック候補をテーブルに警告ブロックとして登録して処理を終える。
（Ｓ６）テーブルには１ブロックづつ登録するので、Ｓ５の不等式が成り立たなければ、登録済みの警告ブロック数は登録可能警告ブロック数と等しい。この場合テーブルに登録済みの警告ブロックの中で、エラー訂正数の最小値（Min#Num）のブロックを求め、その最小値Min#Numと登録候補の警告ブロックのエラー訂正数とを比較する。
（Ｓ７）警告ブロック候補のエラー訂正数がMin#Numより大きい場合は、警告ブロック候補を警告ブロックとして警告ブロックテーブルに登録する。そしてエラー訂正数の最小値の警告ブロックは警告ブロックテーブルから解除して処理を終える。警告ブロック候補のエラー訂正数が最小値Min#Num以下であれば、警告ブロック候補を警告ブロックテーブルに登録することなく処理を終える。
【００４０】
ここで説明したように、データの読み出し毎にエラー訂正数に基づいて警告ブロックテーブルを適宜更新することにより、フラッシュメモリの状態推移に対応し、効果的に警告ブロックを抽出することができる。
【００４１】
次にデータの書き込みについて説明する。データを書き込む場合には、ホスト機器は、半導体記録装置にセクタ（５１２バイト）を最小単位としてライトコマンドと共に論理アドレス及び書き込みデータを転送する。外部インターフェイス手段１を介してライトコマンドを受けると、ＥＣＣ生成手段２は、書き込みデータをワード単位でＡワード毎に分離し、ＢワードのＥＣＣパリティを付加する。この実施の形態ではセクタ毎に８バイトのＥＣＣパリティを付加し、５２０バイトのＥＣＣ符号として構成する。ＥＣＣ符号としては、リードソロモン符号を使用する。データ部５１２バイト、パリティ部８バイトのリードソロモン符号では、４バイトの誤りを訂正できる。ＥＣＣ生成手段２で生成された５２０バイトのＥＣＣ符号は、データ書き込み手段３に入力される。
【００４２】
次に、テーブル管理手段５は未使用の物理ブロックをブロックエントリテーブルと警告ブロックテーブルに基づいて１ブロック抽出する。この新規物理ブロックの抽出処理について、図９のフローチャートに沿って説明する。
（Ｓ１１）物理ブロック番号のサーチポインタＳＰの初期値をランダムに生成する。
（Ｓ１２）ブロックエントリテーブルからサーチポインタＳＰで示される物理ブロックが未使用ブロックかどうかを判別する。
（Ｓ１３）使用済みのブロックであれば、ブロックエントリテーブルのサーチポインタＳＰをインクリメントしてＳ１２に戻る。
（Ｓ１４）未使用物理ブロックであれば、そのブロックが警告ブロックテーブルに登録されている警告ブロックかどうかを判別する。警告ブロックでなければ、そのブロックを新規物理ブロックとして採用する。
（Ｓ１５）抽出された物理ブロックが警告ブロックであれば、ループ数がＣ（Ｃは予め定められた自然数）以下かどうかを判別する。
（Ｓ１６）Ｃ以下の場合、ループ数をインクリメントしてＳ１３に戻る。
（Ｓ１７）ループ数がＣに達すれば、警告ブロックテーブルを参照し、抽出したC個の警告ブロックの中で、エラー訂正数が最小の警告ブロックを新規物理ブロックとして採用する。
【００４３】
こうして１つの新規物理ブロックが抽出されたので、データ書き込み手段３はこの新規物理ブロックを消去し、５２０バイトのＥＣＣ符号をフラッシュメモリ４の物理ブロックの１ページにライトする。１物理ブロックは６４ページで構成されているので、セクタ番号をＳｅｃＮｕｍとすると、
６４＊ｎ≦ＳｅｃＮｕｍ≦６４ｎ＋６３（ｎは０以上の整数）
を満たす連続する６４セクタのデータは、フラッシュメモリ４の同一物理ブロックに書き込まれる。テーブル管理手段５は論物変換テーブル及びブロックエントリテーブルを更新する。
【００４４】
以上説明したように、本実施の形態によれば、ＥＣＣ訂正手段で訂正した物理ブロック当たりのエラー訂正数が閾値以上であったブロックを、警告ブロックとして登録する。そしてホスト機器から書き込み指示されたときに、データを書き込む新規物理ブロックをブロックエントリテーブルと警告ブロックを参照しながら警告ブロックの優先順位を下げて抽出する。このため新規物理ブロックの抽出の際に警告ブロックの選択の可能性が低くなり、データ保持特性の劣化した物理ブロックの書き換え回数の増加を抑制することができる。
【００４５】
また、書き換え回数の平均値によって、警告ブロックとして登録するブロック当たりのエラー訂正数の閾値を変化させることによって、書き換えが平均書き換え回数より多い物理ブロック、またはエラー耐性が弱い物理ブロックを効果的に抽出することができる。
【００４６】
本実施の形態によれば、論物変換テーブルより新規の物理ブロックを抽出する過程において、書き換え回数の多い可能性が高い警告ブロックの優先順位を下げて抽出しているので、全体の書き換え回数の偏りを抑制できる。
【００４７】
本実施の形態では、１つのメモリセルに格納するビット数が２ビットの４値フラッシュメモリを用いた半導体記録装置について説明したが、本発明はさらに状態を増加させ、１セルに３ビット以上格納できる多値フラッシュメモリにも適応することができる。さらに、多値フラッシュメモリのみならず、２値フラッシュメモリやその他の不揮発性メモリに適応しても同様の効果が得られる。
【産業上の利用可能性】
【００４８】
本発明の半導体記録装置は、メモリカードなどの半導体記録装置に関し、特に不揮発性メモリの物理ブロックのデータ保持特性のばらつきがあっても、新規物理ブロックの適応抽出処理を実施することで、物理ブロック毎のデータ保持特性のばらつきを抑制することができる。よって、データ保持特性が良好でない多値フラッシュメモリを使用した半導体記録装置や書き換え回数を頻繁に実施する業務用映像記録分野で使用される可能性が大きい。
【図面の簡単な説明】
【００４９】
【図１】多値フラッシュメモリの電子の蓄積状態を示す模式図
【図２】多値フラッシュメモリの物理ブロックのセル共有を示す図
【図３】多値フラッシュメモリのセルの状態遷移図
【図４】論物変換テーブルの一例
【図５】本発明の実施の形態における半導体記録装置の構成図
【図６】本実施の形態における警告ブロックテーブルの一例
【図７】本実施の形態におけるブロックエントリテーブルの一例
【図８】本実施の形態における警告ブロック判定を示すフローチャート
【図９】本実施の形態における新物理ブロックサーチを示すフローチャート
【符号の説明】
【００５０】
１  外部インターフェイス手段
２  ＥＣＣ生成手段
３  データ書きこみ手段
４  フラッシュメモリ
５  テーブル管理手段
７  ＥＣＣ訂正手段
８  書き換え回数管理手段
９  警告ブロック管理手段
【図１】
2010079486.tif 000003
【図２】
2010079486.tif 000004
【図３】
2010079486.tif 000005
【図４】
2010079486.tif 000006
【図５】
2010079486.tif 000007
【図６】
2010079486.tif 000008
【図７】
2010079486.tif 000009
【図８】
2010079486.tif 000010
【図９】
2010079486.tif 000011