JP2010079486A - 半導体記録装置 - Google Patents
半導体記録装置 Download PDFInfo
- Publication number
- JP2010079486A JP2010079486A JP2008245497A JP2008245497A JP2010079486A JP 2010079486 A JP2010079486 A JP 2010079486A JP 2008245497 A JP2008245497 A JP 2008245497A JP 2008245497 A JP2008245497 A JP 2008245497A JP 2010079486 A JP2010079486 A JP 2010079486A
- Authority
- JP
- Japan
- Prior art keywords
- block
- warning
- physical
- data
- physical block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
【課題】物理ブロック単位で、データ保持特性のばらつきが発生した場合においても、その特性ばらつきを吸収し、データ保持性能を改善できる半導体記録装置を提供する。
【解決手段】データの書き込み時には、ECC符号を構成してフラッシュメモリの物理ブロックに書き込む。読み出しにおいて、ECC符号によるエラー訂正で、エラー訂正された数が基準数以上存在する物理ブロックを警告ブロックとし、警告ブロックテーブルに登録する。書き込み時に新規物理ブロックを抽出するときに、警告ブロックの優先順位を下げて抽出する。これにより、警告ブロックが以後の書き込みにおいて選択されることが抑制されるため、各物理ブロックのデータ保持特性劣化を平均化することができる。
【選択図】図5
【解決手段】データの書き込み時には、ECC符号を構成してフラッシュメモリの物理ブロックに書き込む。読み出しにおいて、ECC符号によるエラー訂正で、エラー訂正された数が基準数以上存在する物理ブロックを警告ブロックとし、警告ブロックテーブルに登録する。書き込み時に新規物理ブロックを抽出するときに、警告ブロックの優先順位を下げて抽出する。これにより、警告ブロックが以後の書き込みにおいて選択されることが抑制されるため、各物理ブロックのデータ保持特性劣化を平均化することができる。
【選択図】図5
Description
本発明は、メモリカードなどの不揮発性の半導体記録装置に関し、特に内部の不揮発性メモリのデータ保持特性のばらつき及び書き換え回数の増加に伴う劣化を抑制するようにした半導体記録装置に関する。
従来、フラッシュメモリが内蔵されたカード型の記録媒体であるSD(Secure Digital)カード等の半導体記録装置は、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。
半導体記録装置に内蔵されているフラッシュメモリは、一定サイズの多数の物理ブロックから成り、物理ブロックの単位でデータを消去できるメモリである。昨今の大容量化の要請に対応すべく、フラッシュメモリは1セルで2ビット以上のデータが蓄積できる多値フラッシュメモリが商品化されている。
図1に、多値フラッシュメモリのフローティングゲートに蓄積する電子の数と閾値電圧(Vth)の関係の一例を示す。図1に示すように、4値のフラッシュメモリでは、フローティングゲートの電子の蓄積状態をその閾値電圧(Vth)に従って4状態で管理する。消去状態は電位が一番低く、これを(1,1)とする。そして電子が蓄積していくにつれて閾値電圧が離散的に上昇し、その状態を夫々(1,0)(0,0)(0,1)とする。このように、蓄積する電子の数に比例して電位が上昇するので、所定の電位の閾値に収まるように制御することによって、1つのメモリセルに2ビットのデータを記録することができる。
図2に4値のフラッシュメモリの1つの物理ブロックの模式図を示す。図2に示す物理ブロックは、2K個(Kは自然数)のページによって構成されている。そして、書き込み処理は、ページ番号0から昇順に実施される。ここで、ページ番号m(0≦m<K)のページとページ番号(K+m)番のページは1つのメモリセルを共有している関係(以下、セル共有関係という)にあるとする。セル共有関係にあるページにおいて、最初に書き込むページを第1ページ、次に書き込むページを第2ページと呼ぶ。つまり、ページ番号mへの書き込み(第1ページへの書き込み)と、ページ番号(K+m)への書き込み(第2ページへの書き込み)は、同一のセルに電子をチャージしていることになる。図1を参照に説明すると、第1ページへの書き込みでは、電位は最大でも半分までしか上昇しないように制御し、次の第2ページへの書き込みでは、半分から最大まで電位が上昇するように制御する。
図3に、フラッシュメモリセルの状態遷移を示す。図3に示すように、フラッシュメモリの物理ブロックの1つのメモリセルの状態は、以下のように遷移する。
(a)データを消去した後は、メモリセルの状態は(1,1)
(b)第1ページへの書き込み後は、セルの状態は(1,1)又は(1,0)
(c)第2ページへの書き込み後は、セルの状態は(1,1),(1,0),(0,0)又は(0,1)
このように、多値のフラッシュメモリでは、閾値電圧Vthに複数の状態を設けてフラッシュメモリの電子の蓄積量を制御する多値記録を行い、大容量化を実現している。
(a)データを消去した後は、メモリセルの状態は(1,1)
(b)第1ページへの書き込み後は、セルの状態は(1,1)又は(1,0)
(c)第2ページへの書き込み後は、セルの状態は(1,1),(1,0),(0,0)又は(0,1)
このように、多値のフラッシュメモリでは、閾値電圧Vthに複数の状態を設けてフラッシュメモリの電子の蓄積量を制御する多値記録を行い、大容量化を実現している。
しかしながら、多値フラッシュメモリにおいては、電子の蓄積量によって4状態を識別するために、各状態間の閾値電圧(Vth)の差が、2値フラッシュメモリより小さい。また、書き換え回数を重ねる毎に、データの書き換えを繰り返すと、電子の注入と引き抜きによってゲート酸化膜にわずかな損傷が発生する。この損傷が積み重なると電子トラップが数多く形成されるため、実際のフローティングゲートに蓄積される電子数が減少してしまう。半導体プロセスの微細化に比例して、フローティングゲートに蓄積される電子数が少なくなっているため、電子トラップの影響は大きくなる。このように、フラッシュメモリの大容量化を支える多値記録及び半導体プロセスの微細化に従い、フラッシュメモリのデータ保持特性が劣化するという問題点が顕著になってきた。
上記の課題の解決手法としてフラッシュメモリの書き換え回数を制限したり、エラー訂正を強化することが行われている。特許文献1では、フラッシュメモリの物理ブロックを構成するページ単位に誤り訂正能力の高いECC符号を記録し、読み出し時に誤り訂正を実施する。そして、誤り数が基準値以上であれば、当該ページにかかるデータを消去済みブロックのページに記録し直すことにより、近い将来において、当該ページのデータが誤り訂正不可となることを防止している。
特開2006−221334号公報
半導体記録装置では、書き換え回数が増加するにつれて、ゲート酸化膜の損傷による電子トラップが数多く形成されるため、実際のフローティングゲートに蓄積される電子数が減少し、データ保持特性が劣化する。フラッシュメモリは物理ブロック単位で消去されるため、フラッシュメモリのデータ保持特性のばらつきは、物理ブロック単位で発生する可能性が高い。更に、フラッシュメモリの制御手法によって各物理ブロックの書き換え回数のばらつきが発生すれば、データ保持特性のばらつきは加速していく。
一般にフラッシュメモリの制御においては、論理ブロックアドレスと物理ブロックアドレスとを変換する変換テーブル(以下、論物変換テーブルという)を用いることにより、論理ブロックへの書き込みにばらつきがあっても物理ブロックの書き換え回数を平均化している。論物変換テーブルの一例を図4に示す。図4に示すように、1個の論理ブロックが使用中であれば、それに対応している物理ブロック番号を登録し、論理ブロックが未使用であれば、存在しない物理ブロック番号(例えばZ)を登録する。半導体記録装置では、以下のような手法で書き換え回数を平均化する。
(S1)電源投入時に論物変換テーブルをリードし、全物理ブロックの使用状態(使用又は未使用)を示すブロックエントリテーブルを作成する。
(S2)ホストから書き込み命令が発行されると、ブロックエントリテーブルより未使用の物理ブロックを、ランダムに、又は物理ブロック番号のサーチ初期値から昇順に抽出する。
(S3)抽出した物理ブロックを消去し、ホストから転送されるデータを書き込む。
(S4)論物変換テーブルとブロックエントリテーブルを更新する。
(S1)電源投入時に論物変換テーブルをリードし、全物理ブロックの使用状態(使用又は未使用)を示すブロックエントリテーブルを作成する。
(S2)ホストから書き込み命令が発行されると、ブロックエントリテーブルより未使用の物理ブロックを、ランダムに、又は物理ブロック番号のサーチ初期値から昇順に抽出する。
(S3)抽出した物理ブロックを消去し、ホストから転送されるデータを書き込む。
(S4)論物変換テーブルとブロックエントリテーブルを更新する。
しかしながら、上記の方法では、例えばファイル1とファイル2の2個のファイルがあって、ファイル1を更新せずファイル2を繰り返して更新した後、ファイル1,2を更新する場合においては、各物理ブロックの書き換え回数ばらつきが無視できない程度に発生する。つまり、ファイル1に割り当てられた物理ブロックの書き換え回数は、ファイル2が繰り返して更新されている間は一定であるが、それ以外の物理ブロックの書き換え回数は増加している。その後ファイル1,2を更新すると、全体の物理ブロックの書き換え回数が増加する。よって、この時点での物理ブロックの書き換え回数は、元のファイル1に割り当てられた物理ブロックとそれ以外の物理ブロックとで大幅に異なってしまう。
このように、物理ブロックの書き換え回数にばらつきが発生すると、物理ブロックによってデータ保持特性が大きく異なっていく。よって従来の手法では、書き換え回数のばらつきによるデータ保持特性が劣化し、エラー訂正不能なレベルになる可能性がある。この場合には誤り訂正されたページのデータを消去済みブロックのページに記録し直すことができなくなるという問題があった。
本発明は上記課題を解決するものであり、物理ブロック単位でデータ保持特性のばらつきが発生した場合においても、そのばらつきを吸収し、データ保持性能を改善できる半導体記録装置を提供することを目的とする。
更に、各物理ブロックの書き換え回数にばらつきが発生した場合においても、物理ブロックの書き換え回数のばらつきを緩和し、データ保持特性を改善できる半導体記録装置を提供することを目的とする。
この課題を解決するために、本発明の半導体記録装置は、複数の物理ブロックにより構成され、且つ物理ブロックが複数ページによって構成される不揮発性メモリを内蔵する半導体記録装置において、データの書き込みの際に入力されたデータに対して、ECCパリティを付加して、ECC符号を生成するECC生成手段と、前記ECC生成手段より出力されるECC符号を物理ブロックに書き込むデータ書き込み手段と、前記不揮発性メモリの物理ブロックよりECC符号を読み出すデータの読み出し手段と、前記データ読み出し手段により読み出された各ページのデータにエラーがあるときに、ECC符号によってエラーを訂正するECC訂正手段と、データ読み出し時に前記ECC訂正手段によって訂正したエラー数が閾値以上の物理ブロックを警告ブロックとして警告ブロックテーブルに登録する警告ブロック管理手段と、データの書き込み時に前記警告ブロックテーブルに登録されている警告ブロックの優先順位を下げて新規に書き込み可能な物理ブロックを抽出するテーブル管理手段と、を具備するものである。
ここで前記テーブル管理手段は、データ書き込み及び読み出し時に、外部より与えられる論理アドレスで示される論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示す論物変換テーブル、及び各物理ブロックの使用可否を示すブロックエントリテーブルの登録、更新を行うと共に、データ書き込み時に前記ブロックエントリテーブルと警告ブロックテーブルとに基づいて新規物理ブロックを抽出するようにしてもよい。
ここで前記警告ブロック管理手段は、警告ブロックとして登録された物理ブロックの物理ブロック番号と、当該物理ブロックで訂正したエラーの数を要素として前記警告ブロックテーブルに登録するようにしてもよい。
ここで半導体記録装置の物理ブロックの書き換え回数を計数し、物理ブロックの書き換え回数の増加に伴って前記警告ブロックとして判定するエラー訂正数の閾値を増加させる書き換え回数管理手段を更に具備するようにしてもよい。
ここで前記警告ブロック管理手段は、登録する警告ブロック数の上限値を規定し、既に登録されている警告ブロック数が当該上限値に等しく、且つ新たに警告ブロックの条件を満たす警告ブロック候補が検出された場合に、エラー訂正数が最小であった登録済み警告ブロックと登録候補の警告ブロックのエラー訂正数を比較し、登録候補の警告ブロックのエラー訂正数が多ければ登録候補の警告ブロックを警告ブロックテーブルに登録し、比較した警告ブロックを警告ブロックテーブルより削除するようにしてもよい。
上記構成によって、データの読み出しの際におけるECC符号を利用した誤り訂正の結果より、警告ブロックとして管理された物理ブロックを、データ保持特性の劣化した物理ブロックと判定し、データの書き込みで新規の物理ブロックを選択する際に、警告ブロックの優先順位を下げて選択しているので、半導体記録装置の物理ブロックのデータ保持特性の偏りを抑制できる。
また、書き換え回数管理手段により、半導体記録装置の物理ブロックの書き換え回数を計数し、書き換え回数の増加に従い、警告ブロックと判定するエラー訂正数の閾値を増加すれば、書き換え回数が増加していった場合にも警告ブロックを適切に登録することができる。
このように、半導体記録装置の物理ブロックにおいて、データ保持特性及び書き換え回数のばらつきが発生した場合においても、そのばらつきを吸収し、データ保持性能を改善することができる。
図5に本発明の実施の形態による半導体記録装置の構成図を示す。本実施の形態において、外部インターフェイス手段1は、図示しないホスト機器からのコマンドやデータを受信し、データの転送を行うインターフェイスである。
ECC生成手段2は、外部インターフェイス手段1を介して入力されたデータに対して、Aワード毎にBワード(A,Bは自然数)のECCパリティ符号を付加したECC符号を生成するものである。尚ECCパリティはエラー訂正の機能を持つコードである。本実施の形態では、Aを512、Bを8として説明する。
データ書き込み手段3は、ECC生成手段2によって生成された(A+B)ワードのデータを、フラッシュメモリ4の物理ブロックの各ページに記録するものである。
フラッシュメモリ4は4値のフラッシュメモリであり、多数の物理ブロックから構成される。物理ブロックは消去単位であって、夫々2K個(Kは自然数)のページを有する。フラッシュメモリの内部は前述した図2に示すように0〜2K−1までのページ番号で管理されている。このうちページ番号0〜K−1のKページはメモリセルの第1ページにより構成され、ページ番号K〜2K−1のKページはメモリセルの第2ページにより構成される。本実施の形態のフラッシュメモリの各物理ブロックはK=32、即ち64ページで構成されるものとする。各ページはAワードの記憶容量を持ち、Bワード以上の冗長領域を持っている。ここでは1ワードは例えば1バイト、即ち8ビットとする。
テーブル管理手段5は、論物変換テーブルとブロックエントリテーブルを管理するものである。論物変換テーブルは外部インターフェイス手段1を介して指示される論理ブロックと、論理ブロックに対応するフラッシュメモリの物理ブロックのアドレスとを関連づけるものである。ブロックエントリテーブルは電源の投入後に生成されるもので、各物理ブロックの使用又は未使用を示すテーブルである。テーブル管理手段5は、これらのテーブルを登録、更新すると共に、データ書き込みの際論理ブロックに対応する新規物理ブロックをブロックエントリテーブルと後述する警告ブロックテーブルを参照して抽出するものである。
データ読み出し手段6は、ホスト機器より外部インターフェイス手段1に読み出しコマンドが与えられたときに、指定された論理ブロックに対応するフラッシュメモリ4の物理ブロックより、データを読み出すものである。
ECC訂正手段7は、データを読み出す際にECC生成手段2で生成されたページ単位のECCパリティに基づいて、ページ単位にエラー訂正を施すものである。
書き換え回数管理手段8は、本半導体記録装置における物理ブロックの書き換え回数の平均値を管理し、平均値に基づいてエラー訂正数閾値(REF#CorNum)を算出するものである。
警告ブロック管理手段9は、データの読み出し時にECC訂正手段7でECC訂正された物理ブロックで、エラー訂正数閾値(REF#CorNum)以上あったブロックを警告ブロックとして警告ブロックテーブルに登録したり、更新するものである。
警告ブロックテーブルの一例を図6に示す。警告ブロックテーブルでは、警告ブロックの物理ブロック番号と、各警告ブロックのエラー訂正数とを要素として保持している。図6では物理ブロック番号PB8のエラー訂正数が30、物理ブロック番号PB10のエラー訂正数が28であることを示す。また、警告ブロックの総数は、フラッシュメモリの製造者が保証している最大のバッドブロック数から現バッドブロック数を減算した値以下とすることが望ましい。例えば、フラッシュ製造者が保証している最大のバッドブロック数が100であって、現在のバッドブロック数が40の場合は、警告ブロックとして登録可能な数(以下、登録可能警告ブロック数という)は60とし、警告ブロック数を60以下にとどめておく。警告ブロック数をそれ以上増加させても、半導体記録装置の記録容量分のデータを記録した場合には警告ブロックを使用せざるを得ないからである。
次に本実施の形態の半導体記録装置の動作について説明する。まずテーブル管理手段5は、電源投入時に論物変換テーブルを読み出し、全物理ブロックの使用状態(使用又は未使用)を示すブロックエントリテーブルを作成する。ブロックエントリテーブルの一例を図7に示す。図7において、上段は物理ブロック番号、下段はその使用状態を示しており、1が使用済み、0は使用可のブロックである。
次に、警告ブロックテーブルへの登録及び警告ブロックテーブルの更新ステップについて説明する。まず書き換え回数管理手段8の管理している全物理ブロックの書き換え回数により警告ブロックとして登録するエラー訂正数の閾値を設定する。
一般に、書き換え回数の増加に伴い、前述した電子トラップの増加等でフローティングゲートに蓄積している電子数が減少するため、エラーの発生率が増加する。よって、書き換え回数が増加すると、ブロック当たりのエラー訂正数も増加していく。このため、警告ブロックとするか否かを判断するエラー訂正数の閾値を一定にしておけば、比較的書き換え回数が少ない場合は、全く警告ブロックの抽出ができなくなる。一方書き換え回数が増加すると、読み出したブロックの多くを警告ブロックとして登録しなければならなくなる。
上記特性を考慮し、書き換え回数の全ブロックの平均値を書き換え回数管理手段8で算出する。そして、例えば、各物理ブロックの書き換え回数の上限値が1万回と規定されているフラッシュメモリでは、警告ブロックとして登録する物理ブロック当たりのエラー訂正数の閾値を以下のように変化させる。
書き換え回数の平均値が0〜5000回の場合、エラー訂正数閾値(REF#CorNum)を64個以上とする。
書き換え回数の平均が 5000回〜8000回の場合、エラー訂正数閾値(REF#CorNum)を96個以上とする。
書き換え回数の平均値が8000回以上の場合、エラー訂正数閾値(REF#CorNum)を128個以上とする。
尚、この数値は一例であって適宜変更することができるが、書き換え回数の平均値が増加するとエラー訂正数閾値も増加させるものとする。
書き換え回数の平均値が0〜5000回の場合、エラー訂正数閾値(REF#CorNum)を64個以上とする。
書き換え回数の平均が 5000回〜8000回の場合、エラー訂正数閾値(REF#CorNum)を96個以上とする。
書き換え回数の平均値が8000回以上の場合、エラー訂正数閾値(REF#CorNum)を128個以上とする。
尚、この数値は一例であって適宜変更することができるが、書き換え回数の平均値が増加するとエラー訂正数閾値も増加させるものとする。
このように、書き換え回数の平均値が増加すれば警告ブロックとして登録するブロック当たりのエラー訂正数閾値も大きくなるように変化させることによって、書き換えが平均書き換え回数より多い物理ブロック、または書き換え回数によるエラー耐性が弱い物理ブロックを警告ブロックとして効果的に抽出することができる。
物理ブロックの書き換え回数の総数は、論物変換テーブルの更新回数とブロックエントリテーブルの変化数との積に一致するので、書き換え回数管理手段8は、(論物変換テーブルの更新回数*エントリテーブルの変化数/物理ブロック数)を書き換え回数の平均値として利用することができる。
次に警告ブロックの判定及び登録について説明する。この処理はリードコマンドに応じて物理ブロックからデータを読み出す毎に行われる。図8は、警告ブロックの判定に関するフローであり、各ステップについて、以下詳細に説明する。
(S1)データ読み出し手段6により1つの物理ブロックから読み出されたデータにエラーがあれば、ECC訂正手段7でECC訂正し、物理ブロック当たりのエラー訂正数を計数する。
(S2)物理ブロック当たりのエラー訂正数を、エラー訂正数閾値REF#CorNumと比較する。エラー訂正数がこのエラー訂正数閾値以下であれば、警告ブロックとせずに処理を終了する。
(S3)物理ブロック当たりのエラー訂正数がREF#CorNum以上であれば、警告ブロックの候補とする。
(S4)当該物理ブロックを警告ブロック候補とした場合、警告ブロックテーブルに既に登録済みの警告ブロック数と、登録可能警告ブロック数とを比較する。
(S5)(登録済みの警告ブロック数)<(登録可能警告ブロック数)の場合、警告ブロック候補をテーブルに警告ブロックとして登録して処理を終える。
(S6)テーブルには1ブロックづつ登録するので、S5の不等式が成り立たなければ、登録済みの警告ブロック数は登録可能警告ブロック数と等しい。この場合テーブルに登録済みの警告ブロックの中で、エラー訂正数の最小値(Min#Num)のブロックを求め、その最小値Min#Numと登録候補の警告ブロックのエラー訂正数とを比較する。
(S7)警告ブロック候補のエラー訂正数がMin#Numより大きい場合は、警告ブロック候補を警告ブロックとして警告ブロックテーブルに登録する。そしてエラー訂正数の最小値の警告ブロックは警告ブロックテーブルから解除して処理を終える。警告ブロック候補のエラー訂正数が最小値Min#Num以下であれば、警告ブロック候補を警告ブロックテーブルに登録することなく処理を終える。
(S1)データ読み出し手段6により1つの物理ブロックから読み出されたデータにエラーがあれば、ECC訂正手段7でECC訂正し、物理ブロック当たりのエラー訂正数を計数する。
(S2)物理ブロック当たりのエラー訂正数を、エラー訂正数閾値REF#CorNumと比較する。エラー訂正数がこのエラー訂正数閾値以下であれば、警告ブロックとせずに処理を終了する。
(S3)物理ブロック当たりのエラー訂正数がREF#CorNum以上であれば、警告ブロックの候補とする。
(S4)当該物理ブロックを警告ブロック候補とした場合、警告ブロックテーブルに既に登録済みの警告ブロック数と、登録可能警告ブロック数とを比較する。
(S5)(登録済みの警告ブロック数)<(登録可能警告ブロック数)の場合、警告ブロック候補をテーブルに警告ブロックとして登録して処理を終える。
(S6)テーブルには1ブロックづつ登録するので、S5の不等式が成り立たなければ、登録済みの警告ブロック数は登録可能警告ブロック数と等しい。この場合テーブルに登録済みの警告ブロックの中で、エラー訂正数の最小値(Min#Num)のブロックを求め、その最小値Min#Numと登録候補の警告ブロックのエラー訂正数とを比較する。
(S7)警告ブロック候補のエラー訂正数がMin#Numより大きい場合は、警告ブロック候補を警告ブロックとして警告ブロックテーブルに登録する。そしてエラー訂正数の最小値の警告ブロックは警告ブロックテーブルから解除して処理を終える。警告ブロック候補のエラー訂正数が最小値Min#Num以下であれば、警告ブロック候補を警告ブロックテーブルに登録することなく処理を終える。
ここで説明したように、データの読み出し毎にエラー訂正数に基づいて警告ブロックテーブルを適宜更新することにより、フラッシュメモリの状態推移に対応し、効果的に警告ブロックを抽出することができる。
次にデータの書き込みについて説明する。データを書き込む場合には、ホスト機器は、半導体記録装置にセクタ(512バイト)を最小単位としてライトコマンドと共に論理アドレス及び書き込みデータを転送する。外部インターフェイス手段1を介してライトコマンドを受けると、ECC生成手段2は、書き込みデータをワード単位でAワード毎に分離し、BワードのECCパリティを付加する。この実施の形態ではセクタ毎に8バイトのECCパリティを付加し、520バイトのECC符号として構成する。ECC符号としては、リードソロモン符号を使用する。データ部512バイト、パリティ部8バイトのリードソロモン符号では、4バイトの誤りを訂正できる。ECC生成手段2で生成された520バイトのECC符号は、データ書き込み手段3に入力される。
次に、テーブル管理手段5は未使用の物理ブロックをブロックエントリテーブルと警告ブロックテーブルに基づいて1ブロック抽出する。この新規物理ブロックの抽出処理について、図9のフローチャートに沿って説明する。
(S11)物理ブロック番号のサーチポインタSPの初期値をランダムに生成する。
(S12)ブロックエントリテーブルからサーチポインタSPで示される物理ブロックが未使用ブロックかどうかを判別する。
(S13)使用済みのブロックであれば、ブロックエントリテーブルのサーチポインタSPをインクリメントしてS12に戻る。
(S14)未使用物理ブロックであれば、そのブロックが警告ブロックテーブルに登録されている警告ブロックかどうかを判別する。警告ブロックでなければ、そのブロックを新規物理ブロックとして採用する。
(S15)抽出された物理ブロックが警告ブロックであれば、ループ数がC(Cは予め定められた自然数)以下かどうかを判別する。
(S16)C以下の場合、ループ数をインクリメントしてS13に戻る。
(S17)ループ数がCに達すれば、警告ブロックテーブルを参照し、抽出したC個の警告ブロックの中で、エラー訂正数が最小の警告ブロックを新規物理ブロックとして採用する。
(S11)物理ブロック番号のサーチポインタSPの初期値をランダムに生成する。
(S12)ブロックエントリテーブルからサーチポインタSPで示される物理ブロックが未使用ブロックかどうかを判別する。
(S13)使用済みのブロックであれば、ブロックエントリテーブルのサーチポインタSPをインクリメントしてS12に戻る。
(S14)未使用物理ブロックであれば、そのブロックが警告ブロックテーブルに登録されている警告ブロックかどうかを判別する。警告ブロックでなければ、そのブロックを新規物理ブロックとして採用する。
(S15)抽出された物理ブロックが警告ブロックであれば、ループ数がC(Cは予め定められた自然数)以下かどうかを判別する。
(S16)C以下の場合、ループ数をインクリメントしてS13に戻る。
(S17)ループ数がCに達すれば、警告ブロックテーブルを参照し、抽出したC個の警告ブロックの中で、エラー訂正数が最小の警告ブロックを新規物理ブロックとして採用する。
こうして1つの新規物理ブロックが抽出されたので、データ書き込み手段3はこの新規物理ブロックを消去し、520バイトのECC符号をフラッシュメモリ4の物理ブロックの1ページにライトする。1物理ブロックは64ページで構成されているので、セクタ番号をSecNumとすると、
64*n≦SecNum≦64n+63(nは0以上の整数)
を満たす連続する64セクタのデータは、フラッシュメモリ4の同一物理ブロックに書き込まれる。テーブル管理手段5は論物変換テーブル及びブロックエントリテーブルを更新する。
64*n≦SecNum≦64n+63(nは0以上の整数)
を満たす連続する64セクタのデータは、フラッシュメモリ4の同一物理ブロックに書き込まれる。テーブル管理手段5は論物変換テーブル及びブロックエントリテーブルを更新する。
以上説明したように、本実施の形態によれば、ECC訂正手段で訂正した物理ブロック当たりのエラー訂正数が閾値以上であったブロックを、警告ブロックとして登録する。そしてホスト機器から書き込み指示されたときに、データを書き込む新規物理ブロックをブロックエントリテーブルと警告ブロックを参照しながら警告ブロックの優先順位を下げて抽出する。このため新規物理ブロックの抽出の際に警告ブロックの選択の可能性が低くなり、データ保持特性の劣化した物理ブロックの書き換え回数の増加を抑制することができる。
また、書き換え回数の平均値によって、警告ブロックとして登録するブロック当たりのエラー訂正数の閾値を変化させることによって、書き換えが平均書き換え回数より多い物理ブロック、またはエラー耐性が弱い物理ブロックを効果的に抽出することができる。
本実施の形態によれば、論物変換テーブルより新規の物理ブロックを抽出する過程において、書き換え回数の多い可能性が高い警告ブロックの優先順位を下げて抽出しているので、全体の書き換え回数の偏りを抑制できる。
本実施の形態では、1つのメモリセルに格納するビット数が2ビットの4値フラッシュメモリを用いた半導体記録装置について説明したが、本発明はさらに状態を増加させ、1セルに3ビット以上格納できる多値フラッシュメモリにも適応することができる。さらに、多値フラッシュメモリのみならず、2値フラッシュメモリやその他の不揮発性メモリに適応しても同様の効果が得られる。
本発明の半導体記録装置は、メモリカードなどの半導体記録装置に関し、特に不揮発性メモリの物理ブロックのデータ保持特性のばらつきがあっても、新規物理ブロックの適応抽出処理を実施することで、物理ブロック毎のデータ保持特性のばらつきを抑制することができる。よって、データ保持特性が良好でない多値フラッシュメモリを使用した半導体記録装置や書き換え回数を頻繁に実施する業務用映像記録分野で使用される可能性が大きい。
1 外部インターフェイス手段
2 ECC生成手段
3 データ書きこみ手段
4 フラッシュメモリ
5 テーブル管理手段
7 ECC訂正手段
8 書き換え回数管理手段
9 警告ブロック管理手段
2 ECC生成手段
3 データ書きこみ手段
4 フラッシュメモリ
5 テーブル管理手段
7 ECC訂正手段
8 書き換え回数管理手段
9 警告ブロック管理手段
Claims (5)
- 複数の物理ブロックにより構成され、且つ物理ブロックが複数ページによって構成される不揮発性メモリを内蔵する半導体記録装置において、
データの書き込みの際に入力されたデータに対して、ECCパリティを付加して、ECC符号を生成するECC生成手段と、
前記ECC生成手段より出力されるECC符号を物理ブロックに書き込むデータ書き込み手段と、
前記不揮発性メモリの物理ブロックよりECC符号を読み出すデータの読み出し手段と、
前記データ読み出し手段により読み出された各ページのデータにエラーがあるときに、ECC符号によってエラーを訂正するECC訂正手段と、
データ読み出し時に前記ECC訂正手段によって訂正したエラー数が閾値以上の物理ブロックを警告ブロックとして警告ブロックテーブルに登録する警告ブロック管理手段と、
データの書き込み時に前記警告ブロックテーブルに登録されている警告ブロックの優先順位を下げて新規に書き込み可能な物理ブロックを抽出するテーブル管理手段と、を具備する半導体記録装置。 - 前記テーブル管理手段は、データ書き込み及び読み出し時に、外部より与えられる論理アドレスで示される論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示す論物変換テーブル、及び各物理ブロックの使用可否を示すブロックエントリテーブルの登録、更新を行うと共に、データ書き込み時に前記ブロックエントリテーブルと警告ブロックテーブルとに基づいて新規物理ブロックを抽出するものである請求項1記載の半導体記録装置。
- 前記警告ブロック管理手段は、警告ブロックとして登録された物理ブロックの物理ブロック番号と、当該物理ブロックで訂正したエラーの数を要素として前記警告ブロックテーブルに登録するものである請求項1記載の半導体記録装置。
- 半導体記録装置の物理ブロックの書き換え回数を計数し、物理ブロックの書き換え回数の増加に伴って前記警告ブロックとして判定するエラー訂正数の閾値を増加させる書き換え回数管理手段を更に具備する請求項1〜3のいずれか1項記載の半導体記録装置。
- 前記警告ブロック管理手段は、登録する警告ブロック数の上限値を規定し、既に登録されている警告ブロック数が当該上限値に等しく、且つ新たに警告ブロックの条件を満たす警告ブロック候補が検出された場合に、エラー訂正数が最小であった登録済み警告ブロックと登録候補の警告ブロックのエラー訂正数を比較し、登録候補の警告ブロックのエラー訂正数が多ければ登録候補の警告ブロックを警告ブロックテーブルに登録し、比較した警告ブロックを警告ブロックテーブルより削除するものである請求項1〜4のいずれか1項記載の半導体記録装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008245497A JP2010079486A (ja) | 2008-09-25 | 2008-09-25 | 半導体記録装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008245497A JP2010079486A (ja) | 2008-09-25 | 2008-09-25 | 半導体記録装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010079486A true JP2010079486A (ja) | 2010-04-08 |
Family
ID=42209876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008245497A Pending JP2010079486A (ja) | 2008-09-25 | 2008-09-25 | 半導体記録装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010079486A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2372740A2 (en) | 2010-03-30 | 2011-10-05 | Yamatake Corporation | Relay driver circuit |
JP2011233207A (ja) * | 2010-04-28 | 2011-11-17 | Univ Of Tokyo | データ入出力制御装置および半導体記憶装置システム |
JP2013054409A (ja) * | 2011-08-31 | 2013-03-21 | Toshiba Corp | 情報記憶装置および情報記憶方法 |
KR20160020717A (ko) | 2014-08-14 | 2016-02-24 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 및 그 프로그래밍 방법 |
CN105468293A (zh) * | 2014-09-30 | 2016-04-06 | Emc公司 | 通过预测损坏的m-页提高闪存利用率的方法和系统 |
JP2017107525A (ja) * | 2015-11-26 | 2017-06-15 | 京セラドキュメントソリューションズ株式会社 | 記憶装置使用管理プログラム及び電子機器 |
EP3203479A1 (en) | 2016-02-02 | 2017-08-09 | Winbond Electronics Corp. | Non-volatile semiconductor memory device |
US10068659B2 (en) | 2014-03-14 | 2018-09-04 | Winbond Electronics Corp. | Semiconductor memory device and programming method of NAND flash memory |
US10395753B2 (en) | 2014-08-28 | 2019-08-27 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
-
2008
- 2008-09-25 JP JP2008245497A patent/JP2010079486A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2372740A2 (en) | 2010-03-30 | 2011-10-05 | Yamatake Corporation | Relay driver circuit |
JP2011233207A (ja) * | 2010-04-28 | 2011-11-17 | Univ Of Tokyo | データ入出力制御装置および半導体記憶装置システム |
JP2013054409A (ja) * | 2011-08-31 | 2013-03-21 | Toshiba Corp | 情報記憶装置および情報記憶方法 |
US10068659B2 (en) | 2014-03-14 | 2018-09-04 | Winbond Electronics Corp. | Semiconductor memory device and programming method of NAND flash memory |
KR20160020717A (ko) | 2014-08-14 | 2016-02-24 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 및 그 프로그래밍 방법 |
US10395753B2 (en) | 2014-08-28 | 2019-08-27 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
CN105468293A (zh) * | 2014-09-30 | 2016-04-06 | Emc公司 | 通过预测损坏的m-页提高闪存利用率的方法和系统 |
JP2016071893A (ja) * | 2014-09-30 | 2016-05-09 | イーエムシー コーポレイションEmc Corporation | 持続性記憶装置を管理する方法およびシステム、ならびに非一時的コンピュータ読み取り可能媒体 |
US9690655B2 (en) | 2014-09-30 | 2017-06-27 | EMC IP Holding Company LLC | Method and system for improving flash storage utilization by predicting bad m-pages |
US10339001B2 (en) | 2014-09-30 | 2019-07-02 | EMC IP Holding Company LLC | Method and system for improving flash storage utilization by predicting bad M-pages |
JP2018085122A (ja) * | 2014-09-30 | 2018-05-31 | イーエムシー コーポレイションEmc Corporation | 持続性記憶装置を管理する方法およびシステム、ならびに非一時的コンピュータ読み取り可能媒体 |
JP2017107525A (ja) * | 2015-11-26 | 2017-06-15 | 京セラドキュメントソリューションズ株式会社 | 記憶装置使用管理プログラム及び電子機器 |
US9947410B2 (en) | 2016-02-02 | 2018-04-17 | Winbound Electronics Corp. | Non-volatile semiconductor memory device |
EP3203479A1 (en) | 2016-02-02 | 2017-08-09 | Winbond Electronics Corp. | Non-volatile semiconductor memory device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141475B2 (en) | Methods for tag-grouping of blocks in storage devices | |
US8078923B2 (en) | Semiconductor memory device with error correction | |
US8713381B2 (en) | Systems and methods of using dynamic data for wear leveling in solid-state devices | |
JP2010079486A (ja) | 半導体記録装置 | |
US10613943B2 (en) | Method and system for improving open block data reliability | |
JP5658128B2 (ja) | Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20160098316A1 (en) | Error processing method, memory storage device and memory controlling circuit unit | |
US20090024787A1 (en) | Data writing method and apparatus | |
US8762810B2 (en) | Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system | |
CN106297883B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
JP2010079485A (ja) | 半導体記録装置 | |
JP4866107B2 (ja) | 不揮発性記憶装置及びその書き込み判定方法 | |
US10459630B2 (en) | Memory management method, memory storage device and memory controlling circuit unit | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US8775902B2 (en) | Memory controller and storage device | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
JP5335779B2 (ja) | 半導体記録装置 | |
CN114550783A (zh) | 控制器及其操作方法 | |
KR101699779B1 (ko) | 플래시 메모리의 색인 방법 | |
US9679652B2 (en) | Threshold based multi-level cell programming for reliability improvement | |
JP2010108029A (ja) | 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |