JP3812933B2 - File system and control method thereof - Google Patents

File system and control method thereof Download PDF

Info

Publication number
JP3812933B2
JP3812933B2 JP2001121823A JP2001121823A JP3812933B2 JP 3812933 B2 JP3812933 B2 JP 3812933B2 JP 2001121823 A JP2001121823 A JP 2001121823A JP 2001121823 A JP2001121823 A JP 2001121823A JP 3812933 B2 JP3812933 B2 JP 3812933B2
Authority
JP
Japan
Prior art keywords
block
reconstruction
file system
data
date
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.)
Expired - Fee Related
Application number
JP2001121823A
Other languages
Japanese (ja)
Other versions
JP2002318729A (en
Inventor
克巳 福本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2001121823A priority Critical patent/JP3812933B2/en
Publication of JP2002318729A publication Critical patent/JP2002318729A/en
Application granted granted Critical
Publication of JP3812933B2 publication Critical patent/JP3812933B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、フラッシュメモリを含む不揮発性メモリなどの不揮発性半導体記憶装置および、これらを用いたメモリカードなどのデータ再構築方法および、データのリフレッシュ管理方法を採用したファイルシステムおよびその制御方法に関する。
【0002】
【従来の技術】
従来、フラッシュメモリは、チップ一括または、任意の領域のメモリセル(セクタまたはブロックと呼ばれる)を一括して電気的に消去する機能を持つ不揮発性半導体記憶装置である。このフラッシュメモリのメモリセルとしては、例えば、NOR型やNAND型と呼ばれるものがある。何れのメモリセルも図17に示すメモリセル構成がデータ記憶の基本構造である。
【0003】
図17において、メモリセル100は、浮遊ゲート型電界効果トランジスタ構造を有しており、1素子で1ビット(1セル)を構成することができる。そのために高集積化に優れている。このメモリセル100ヘのデータの書き込みは、制御ゲート電極Gに約12V、ドレイン電極Dに約7V、ソース電極Sに0Vを印加して、ドレイン接合部近傍で発生させたホットエレクトロンを浮遊ゲート電極FGに注入することにより行う。この書き込みによって、メモリセル100の制御ゲート電極Gから見た閾値電圧Vthは高くなる(データ「0」)。
【0004】
また、この浮遊ゲート型電界効果トランジスタ構造を有したメモリセル100は、1素子で多値(メモリセルの閾値電圧Vthを数百mV間隔で2のn乗の状態を作る)を構成すると更に高集積化に優れる。
【0005】
このメモリセル100ヘのデータの書き込みは、ソース電極Sを0Vにし、制御ゲート電極Gに約12V、ドレイン電極Dに約7Vの数マイクロ秒のパルスを印加し、ドレイン接合部近傍で発生させたホットエレクトロンを浮遊ゲート電極FGに注入することにより行う。この書き込みによってメモリセル100の制御ゲート電極Gから見た閾値電圧Vthは高くなる。メモリセル100の閾値電圧Vthの制御は、制御ゲート電極Gの電圧を変化、ドレイン電極Dの電圧変化、または、パルス幅を変化させて行う。
【0006】
一方、消去は制御ゲート電極Gを接地し、ソース電極Sに正の高電圧(約12V)を印加することにより、浮遊ゲート電極FGとソース電極Sの間に高電界を発生させ、薄いゲート酸化膜を通したトンネル現象を利用して浮遊ゲート電極FGに蓄積された電子をソース電極Sに引き抜くことによって行う。この消去は、通常、ブロック単位(例えば16Kバイトや64Kバイト単位)に行われる。この消去によって制御ゲート電極Gから見た閾値電圧Vthは低くなる(デーダ「1」)。このとき、メモリセル100が選択トランジスタを持たないため、閾値電圧Vthが負になること(過剰消去)は致命的な不良となる(データ読み出し時に、正しいデータが読み出せない不良)。
【0007】
また、データ読み出しは、ソース電極Sに0V、ドレイン電極Dに約1V程度の低電圧を印加し、制御ゲート電極Gには約5V程度の電圧を印加し、このときに流れるチャンネル電流の大小が情報の「1」と「0」とに対応することを利用して行う。ドレイン電極Dへの電圧を低電圧にするのは、寄生的な弱い書き込み動作(ソフトライト)を防止するためである。
【0008】
また、多値記憶のデータ読み出しは、ソース電極Sに0V、ドレイン電極Dに約lV程度の低電圧を印加し、制御ゲート電極Gに印加する電圧を変化し、このときにチャンネル電流が流れる時の制御ゲート電極Gの電圧を利用して行う。なお、このメモリセル100では、データ書き込みをドレイン電極D側、消去をソース電極S側で行うので、接合プロファイルはそれぞれの動作に適するように個別に最適化するのが望ましい。即ち、ソース電極S、ドレイン電極Dは非対称構造になっており、ドレイン接合部では書き込み効率を高めるために電界集中型プロファイルを用い、ソース接合部では高電圧が印加可能な電界緩和型プロファイルを採用している。
【0009】
消去時にソース電極Sに高電圧を印加する方法は、ソース接合部の耐圧を高めなければならないので、ソース電極S側を微細化しにくいこと、およびソース電極S近傍でホットホールが発生し、その一部がトンネル絶縁膜中にトラップされ、セルの信頼性が低下するなどの問題がある。
【0010】
そこで、他の消去の例(負ゲート消去)としては、制御ゲート電極Gに負電圧(約−10V)、ソース電極Sに電源電圧(約5V)を印加し、トンネル電流によって消去する。
【0011】
この消去方法の利点の一つは、消去時にソース電極Sに印加される電圧が低いので、ソース電極S側の接合耐圧が低くてもよいので、セルのゲート長を短縮することが可能なことである。また、負ゲート消去法を用いると、消去ブロックサイズを小さくし易いという利点(セクタ消去と呼ばれる)もある。
【0012】
また、ソース電極Sに高電界を加えた消去方法では、この高電界に起因する寄生的な電流であるバンド間トンネル電流が流れ、その電流値はチップ全体で数mAにもなるので、電流供給能力が限られる昇圧回路の使用が困難になる。したがって、従来は、消去用の高電圧Vppをチップ外部から供給していた。負ゲート消去方法では、ソース電極Sに電源電圧Vcc(5Vまたは3V)を供給することが可能になるので、単一電源化が比較的容易に可能になるという利点がある。
【0013】
データ書き込みに、ホットエレクトロンを用いる方法では、書き込み時に1セル当たり約1mAの電流が流れるので、従来のEEPROMと同様にFNトンネル電流を用い、データ書き込み時に1セル当たりに流れる電流を少なくするフラッシュメモリもある。
【0014】
半導体プロセスの微細化や電池駆動の携帯型機器の普及と共に動作電源の低電圧化が要望されている。そのため、5V単一動作ではなく、3V単一動作品や、2.7V単一動作品の要求/開発が活発である。
【0015】
3V電源(Vcc)や2.7V電源でデータを読み出す場合、現状のフラッシュEEPROMでは、制御ゲート線(ワード線)に電源電位(Vcc=3V)、または高速化/動作マージン拡大のため内部昇圧した約5Vを印加している。
【0016】
このような不揮発性半導体記憶装置では、短時間での書き込みと読み出しが可能なRAM(ランダム・アクセス・メモリ)に比べて、多くの動作状態(書き込み、ブロック消去、全チップ一括消去、状態レジスタの読み出しなど)を持つ。多数の動作状態を外部制御信号(/CE,/WE,/CEなど)の組み合わせに対応させると、従来のEPROM,EEPROMにある制御信号では足らなくなるので、新しい制御信号を追加する必要が生じる。その結果、使い勝手が悪くなるので、制御信号線を増加することなく、コマンド方式をとる方法が考案されて世の中の主流になっている。この不揮発性半導体記憶装置では、ユーザが入力したコマンドは、CSM(コマンド・ステート・マシン)と呼ばれるコマンドを認識する回路に入り、WSM(ライト・ステート・マシン)がコマンドに対応した動作(消去/書き込みなど)を実行する。
【0017】
この種の不揮発性半導体記憶装置は、チップ内の消去ブロックの大きさを不均等または均等に分割したものがある。
【0018】
書き込み/消去方法共に、FNトンネル電流で行うものや、メモリセルを直列に8個または16個接続したNAND型と呼ばれるメモリセル方式もある。VAND型は、NOR型に比べて読み出しスピードが遅いが、メモリセルサイズを小さくできるという利点がある。
【0019】
上述したように、通常は、図18に示すように、1個のメモリセルに2値(1ビット)を記憶する。1個のメモリセルに4値(2ビット)や8値(3ビット)更には、さらには16値(4ビット)などの多値を記録する試みもある。
【0020】
1個のメモリセルに例えば2値(1ビット)を記憶する場合には、データ「1」をメモリセルの閾値電圧Vth=2.5Vとし、データ「0」をメモリセルの閾値電圧Vth=6.5vと定めると、データ間の閾値電圧Vthの差は約4Vである。しかし、1個のメモリセルに例えば4値(2ビット)を記憶する場合には、この4Vの間にさらに、2値を記憶させる必要がある。
【0021】
即ち、データ「11」をメモリセルの閾値電圧Vth=2Vとし、データ「10」をメモリセルの閾値電圧Vth=3.5Vとし、データ「01」をメモリセルの閾値電圧Vth=5vとし、データ「00」をメモリセルの閾値電圧Vth=6.5vと定めると、データ間の閾値電圧Vthの差は約1.5Vに小さくなる。
【0022】
このように、1個のメモリセルにより多くの値を記憶する程、1個のメモリセル内の、ある記憶状態と他の記憶状態との電位差が小さくなる(データの読み誤りが発生しやすい)欠点があるが、安価に大容量のメモリが作製できるという利点もある。
【0023】
このようなフラッシュメモリの不揮発性という特性を利用して、ハードディスクに代表される磁気ディスクのようなデータ記憶(ファイルシステム)用途に用いることが提案されている。即ち、データの取り扱い単位をハードディスクのように数100バイト程度と小さくし、効率良くデータを管理するものである。しかし、フラッシュメモリでファイルシステムを構築すると、以下のような課題(1)〜(3)がある。
【0024】
(1)まず、この種の不揮発性半導体記憶装置では、データ読み出し速度が約100ナノ秒(nSec)と速いのに比べて、データの書き込み動作は約20マイクロ秒(μSec)、消去動作は数百ミリ秒(mSec)と更に遅い。
【0025】
(2)次に、フラッシュメモリはデータの書き換えがブロック単位であり、1バイト単位でデータを書き換えられない。
【0026】
(3)さらに、データ保持期間は、約10年以上可能であるが、ブロックの消去回数が増加する程、酸化膜の劣化がすすみ、リーク電流が増加するので、データ保持期間は短縮する傾向にある。そのため、消去回数の制限は、各ブロック当たり約10万回であり、或る1つのブロックに集中して書き換えが起こり、一個のブロックの消去回数が10万回を越えるとフラッシュメモリチップ全体の信頼性が大幅に劣化する。
【0027】
フラッシュメモリをデータ記憶(ファイル記憶)に用いるには、上記課題(1)〜(3)に対し次の様に対策している。まず、データの消去状態または有効状態を示す状態ビットをデータに付加する。即ち、実際には、消去動作は行わず、状態ビットヘの書き込みのみで、データの状態が変化したことを示す。このように、データの消去は状態ビットの書き込みで代用されるので、見かけ上データの消去が1000倍以上高速化され、また、実際の消去動作を頻繁に行わなくて済む。
【0028】
しかし、ブロック中に、実際には消去されておらず、状態ビットのみ消去状態のデータ、即ち、無効データが増加すると新たにデータを書き込むための空き領域がなくなる。データを書き込むための領域が無くなれば、有効なデータを予め消去済みの予備ブロックにコピーする。このコピーが終わると、ブロック中に消去状態のデータが多かったコピー元のブロックを消去して、新たに予備ブロックとする。この動作を再構築(リクレイム)と呼んでいる。
【0029】
この再構築動作を模式的に示すと図19(1)〜図19(3)のようになる。即ち、消去ブロック1と消去ブロック2があり、消去ブロック1がデータ記憶用ブロックでブロック2が予備ブロックを示している。予備ブロックは予め消去済み(全ビットの値が「1」)であるとする。各消去ブロックは5つのデータの取り扱い単位(以下セクタと称する)があり、セクタ毎にその状態を示す状態ビットを持つ。この説明を簡略化するため、ここでは、状態ビットは1ビットであり、その値が「1」でセクタのデータが有効、「0」でセクタのデータが無効とする。図19(1)で消去ブロック1は全てのセクタA〜Eにデータが書き込まれており、そのうち、セクタBとセクタDは状態ビットが「0」であり無効データである。このブロックにはこれ以上データを書き込めるセクタがないため、再構築動作が行われる。再構築は図19(2)のように、ブロック1のセクタのうち、状態ビットが「1」で、データが有効なセクタの内容が予備ブロック(ブロック2)にコピーされる。予備ブロックでコピーされなかったセクタは消去状態になっており、このセクタにはデータを書き込むことが可能となる。このように、有効なデータを予備ブロックにコピーすると、元のデータ記憶ブロック(ブロック1)を消去し、これを新たな予備ブロックとする(図19(3))。
【0030】
実開平6−48051号公報「ICカード」には、1チップ単位でのみ消去可能なメモリ、複数チップからなる半導体メモリと、バイト単位で消去可能な半導体メモリを用い、1チップ単位でのみ消去可能なメモリに書き込まれているファイルに関する情報がバイト単位で消去可能な半導体メモリに書き込まれたICカードの一例が示されている。
【0031】
特開平6−223591号公報「フラッシュEEPROMのアレイのクリーン・アップ方法」では、従来の再構築動作の対象となるブロックは、消去回数の平均化のため、他の消去ブロックに比べて書き換え回数が少ないブロックが選ばれるかまたは、データを書き込み易くするために、消去状態(無効)のデータが多い消去ブロックが選ばれるものである。
【0032】
【発明が解決しようとする課題】
しかし、上記従来の構成では、ビット単価を下げるために、近年、1個のメモリセルに複数のビット(2ビット、3ビットおよび4ビット)を記憶するようになってきている。これを多値化と呼ぶが、この多値化の場合、1個のメモリセルに多くのビットを記憶する程、データ間の閾値電圧Vthの電位差を小さくしなければならないので、その分、保持データが劣化しやすくなり、例えば10年間のデータ保持ができず、データ保持への信頼性および製品歩留まりの点で問題がある。
【0033】
本発明は、上記従来の問題を解決するもので、データの劣化が進んでいると判断されるブロックを再構築動作の対象ブロックとしてリフレッシュすることにより、多値化してもその保持データの劣化を防止できて、データ保持への信頼性と製品歩留まりの向上を図ることができるファイルシステムおよびその制御方法を提供することを目的とする。
【0034】
【課題を解決するための手段】
本発明のファイルシステムは、複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、消去ブロックが論理的により小さな記憶領域単位に分割され、消去ブロックおよび記憶領域単位の状態情報を用いてファイルが管理され、かつ消去ブロックに含まれる無効な記憶領域単位を開放するブロックの再構築動作を行うファイルシステムにおいて、消去ブロック毎にブロックを再構築した日付を所定の記憶領域に格納する再構築日付記憶手段と、再構築日付記憶手段にて記憶した日付から一定の期間が経過したブロックを優先的に再構築処理する再構築制御手段とを有したものであり、そのことにより上記目的が達成される。また、本発明のファイルシステムの制御方法は、複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、該消去ブロックが論理的により小さく分割された記憶領域単位および消去ブロックの状態情報を用いてファイルを管理するファイルシステムの制御方法において、消去ブロックに含まれる無効な記憶領域単位を開放するブロックの再構築処理は、消去ブロック毎にブロックを再構築した日付を所定の記憶領域に記憶しておき、その日付から一定の期間が経過したブロックを優先的に処理するものであり、そのことにより上記目的が達成される。
【0035】
また、好ましくは、本発明のファイルシステムにおける再構築制御手段は、日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第1計算結果格納手段と、経過時間の計算結果を基に、一定の期間が経過したブロックを、優先的に再構築する第1再構築処理手段とを有する。また、好ましくは、本発明のファイルシステムの制御方法において、各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納しておき、その経過時間の計算結果に基づいて、一定の期間が経過したブロックを、優先的に再構築の対象ブロックとする。
【0036】
さらに、好ましくは、本発明のファイルシステムにおける再構築制御手段は、ブロックの消去回数を計数する消去回数計数手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第2計算結果格納手段と、第2計算結果格納手段にて記憶する消去回数が多いほど、日付を基に予め定められる一定の短い周期でかつ優先的に再構築する第2再構築処理手段とを有する。また、好ましくは、本発明のファイルシステムの制御方法において、消去回数が多いブロックほど、日付を基に予め定められる一定の短い周期でかつ優先的に再構築の対象ブロックとする。
【0037】
さらに、好ましくは、本発明のファイルシステムにおける再構築制御手段は、ブロックの消去回数を計数する消去回数計数手段と、日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その消去回数および経過時間を、高速にアクセス可能な記憶領域に表形式で格納する第3計算結果格納手段と、消去回数および経過時間からパラメータを算出するパラメータ計算手段と、パラメータ計算手段で計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納するパラメータ格納手段と、このパラメータに基づいて、一定の期間が経過したブロックを優先的に再構築する第3再構築処理手段とを有する。また、好ましくは、本発明のファイルシステムの制御方法において、ブロックの消去回数と、日付を基に各ブロック毎に直近に行ったブロックの再構築時らの経過時間とから算出した計算結果を、高速にアクセス可能な記憶領域に表形式で格納し、計算結果を基に、一定の期間が経過したブロックを優先的に再構築の対象ブロックとする。
【0038】
さらに、好ましくは、本発明のファイルシステムにおける再構築制御手段は、電源投入時、システムリセットからの復帰時、再構築動作を一定期間行わなかった場合の少なくとも何れかのときに、再構築動作を優先的に行う。
【0039】
さらに、好ましくは、本発明のファイルシステムにおける再構築制御手段は、メモリセルの特性が劣化したことを検出するメモリセル特性劣化検出手段を有し、該メモリセル特性劣化検出手段がメモリセル特性の劣化を検出した場合に、その劣化が検出されたメモリセルを含む記憶領域単位および消去ブロックに対して再構築動作を優先的に行う。
【0040】
さらに、好ましくは、消去回数と再構築年月から求めた計算結果として10の乗数で表し、その計算式に乗数を用いる。また、好ましくは、前記不揮発性半導体記憶装置のメモリセルに多値を記憶させる。
【0041】
さらに、好ましくは、本発明のファイルシステムにおける再構築日付記憶手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に再構築日付を記憶させる。
【0042】
さらに、好ましくは、本発明のファイルシステムにおける再構築制御手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に、再構築時からの経過時間、消去回数および、これらから得たパラメータの少なくとも何れかを記憶させる。
【0043】
さらに、好ましくは、本発明のファイルシステムにおいて、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に使用不可な物理ブロック番号を記憶する。
【0044】
さらに、好ましくは、本発明のファイルシステムにおいて、使用不可な物理ブロック番号を高速にアクセス可能な記憶領域に記憶する。
【0045】
上記構成により、以下、その作用を説明する。再構築の対象となるブロックとして、データ劣化、即ち、前述のように、メモリセルの酸化膜が劣化し、保持しているデータの信頼性が低下した状態が起きたブロックも考慮に入れる。具体的には、他の消去ブロックに比べて、消去状態(無効)のデータが多いブロックが選ばれるだけではなく、データ劣化が進んでいる(または、データ劣化が進んでいる可能性がある)ブロックも再構築の対象ブロックとする。より具体的には、ブロック構築時の日付(年月)をブロックの一部に書き込む。一般的に、書換え回数が多いほど、酸化膜トラップの発生や酸化膜の劣化がすすみ、一定時間が経てば再構築動作の対象とする。または、ブロック消去回数とブロック構築時の日付(年月)をブロックの一部に書き込む。一般的に、書き換え回数が多いほど、酸化膜トラップの発生や酸化膜の劣化がすすみ、リーク電流が増加するので、データの劣化が進みやすいから、書き換え回数が多いブロックほど、より短時間のうちに(優先的に)再構築動作の対象とする。即ち、書き換え回数が多いためデータの劣化が進んでいると考えられるブロック内の有効データをこれより書き換え回数の少ない予備ブロック側へ移す。
【0046】
また、リフレッシュ機能(またはリフレッシュコマンド)を持つ不揮発性記憶装置の場合には、リフレッシュ要否判定実行の結果、メモリセルの閾値電圧Vthが規定値よりも大きく変化していて、メモリセルのリフレッシュが必要と判断された場合には、そのブロックを優先的に再構築動作の対象とする。リフレッシュ機能の一例としては、特開平7−37397号公報があり、ここで言うリフレッシュ機能とは、メモリセルに保持されているデータが「0」か「1」かを判別する基準となるリファレンス電圧を変化させることにより読み出しマージンをチェックし、マージンの少ないメモリセルは劣化が進んでいると判断し、余剰な書き込み動作を行い閾値電圧Vthを回復することを示している。
【0047】
この再構築動作の対象となるブロックは、他の消去ブロックに比べて書き換え回数が少ないブロックが選ばれるか、または、消去状態(無効)のデータが多いブロックが選ばれる。ビット単価を下げるために、近年では1個のメモリセルに複数のビット(2ビット、3ビットや4ビット)を記憶する多値化が行われ、この多値化の場合には、1個のメモリセルに多くのビットを記憶する程、データ間の電位差が小さくなるので、データ保持時間が劣化し(10年間保持できない)、信頼性と歩留まりの問題が発生するが、データ劣化が起きたブロックや、書き換えた日付(年月)が古いブロック(データ劣化が懸念されるブロック)を再構築動作の対象とするので、特に、微細化プロセスで製造された不揮発性半導体記憶装置や、1個のメモリセルに複数のビット(2ビット、3ビットや4ビット)を記憶する多値化セルのデータ保持特性の劣化(10年間保持できない)が解消され、信頼性と歩留まりの問題が解消する。
【0048】
具体的には、各消去ブロック毎にブロックを再構築した日付(年月)を格納する領域を有し、一定の期間が経過したブロックを、再構築の対象とするので、データ保持特性の劣化(10年間保持できない)が解消され、歩留まりの問題も解消される。
【0049】
また、各消去ブロック毎に、ブロックを再構築した日付を格納する領域を有し、各ブロック毎の経過時間の計算結果をRAMのような高速メモリ上にテーブルとして格納し、一定の期間が経過したブロックを、再構築の対象とするので、データ保持特性の劣化(10年間保持できない)が解消され、歩留まりの問題が解消すると共に高速な検索が可能となる。
【0050】
さらに、各消去ブロック毎に、ブロック消去回数とブロックを再構築した年月を格納する領域を有し、ブロック消去回数が多いほど一定の短い周期で再構築の対象とするので、データ保持特性の劣化(10年間保持できない)が解消され、歩留まりの問題が解消する。
【0051】
さらに、各消去ブロック毎に、ブロック消去回数とブロックを再構築した年月を格納する領域を有し、ブロック消去回数と各ブロック毎の経過時間から算出した計算結果をRAMのような高速メモリ上にテーブルとして格納し、一定の期間が経過したブロックを、再構築の対象とするので、データ保持特性の劣化(10年間保持できない)が解消され、歩留まりの問題が解消する。
【0052】
さらに、電源投入時、システムリセットから復帰時、さらには、再構築動作を一定期間行わなかった場合などに、優先的に再構築動作の実行を開始することにより、データ保持特性の劣化(10年幣持できない)が解消され、歩留まりの問題も解消する。
【0053】
さらに、データ書き換え回数と再構築日付から求めた計算結果(経過時間と消去回数の各条件に応じて量が変化するパラメータ)を記憶するので、RAMの記憶容量を少なくできる。
【0054】
さらに、実際に存在するセクタ番号を超える番号のセクタ状態情報記録領域を使うので、記憶領域を無駄にせず有効に利用できる。
【0055】
さらに、使用不可な物理ブロック番号を記憶するので(データ書き換えできない)不良ブロックを含むフラッシュメモリが使用可能となり、製品歩留まりが上がり、安価になる。また、使用不可な物理ブロック番号をRAM上に記憶するので、高速な検索が可能となる。
【0056】
【発明の実施の形態】
以下、本発明のファイルシステムの実施形態1,2について図面を参照しながら説明する。
(実施形態1)
図1は、本発明の実施形態1におけるファイルシステムのシステム構成を示すブロック図である。
【0057】
図1において、フラッシュ・メモリ・ファイル・システム1(以下ファイルシステム1という)は、ファイルシステム制御部2と、ファイルシステムメモリ部3と、フラッシュメモリ制御部4と、データ格納用のフラッシュメモリ部5とを有しており、消去ブロックおよび記憶領域単位(セクタ)の状態情報を用いてファイルが管理され、かつ消去ブロックに含まれる無効なセクタを開放するブロックの再構築動作を行うものである。
【0058】
ファイルシステム制御部2は、アプリケーション(またはオペレーティングシステムOS)6から依頼され、ファイルシステム1が行う再構築処理を含む各種データ処理を制御するものである。ファイルシステム制御部2は、本発明の特徴部分として、図2に示すように、消去ブロック毎にブロックを再構築した日付を、所定の記憶領域を持つファイルシステムメモリ部3に格納する再構築日付記憶手段21と、再構築日付記憶手段21にて記憶した日付から一定の期間が経過したブロックを優先的に再構築処理する再構築制御手段22を有している。なお、再構築日付はファイルシステムメモリ部3に格納された後に、フラッシュメモリ制御部4を介してフラッシュメモリ部5の所定の領域(ブロックコントロールセクタのセクタ♯128)にも格納される。
【0059】
この再構築制御手段22は、日付を基に各ブロック毎に直近に行ったブロックの再構築からの経過時間を計算する再構築経過時間計算手段221と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第1計算結果格納手段222と、経過時間の計算結果を基に、一定の期間が経過したブロックを、優先的に再構築する第1再構築処理手段223とを有するものである。
【0060】
ファイルシステムメモリ部3は、高速にアクセス可能な記憶領域を持ち、ファイルシステム1がその記憶領域に、後述する状態情報(図4〜図6)などの制御情報を格納するために使用するものである。この制御情報としては、上記状態情報の他に、テーブル形式で例えば消去回数および再構築日付、この日付からの経過時間、パラメータ計算結果などを記憶している。
【0061】
フラッシュメモリ制御部4は、ファイルシステム制御部2によって指示されて、フラッシュメモリ部5ヘの通常のデータ読出し、データ書込みおよびデータ消去、さらには、再構築処理によるデータ読出し、データ書込みおよびデータ消去などの各種データ処理を制御するものである。
【0062】
フラッシュメモリ部5はデータを記憶するものであり、複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置であり、ここでは、消去ブロックが論理的により小さなデータ記憶領域単位であるセクタに分割されている。以下、図3を用いて詳細に説明する。
【0063】
図3は、図1のフラッシュメモリ部5に格納されているデータ構成図である。図3に示すように、フラッシュメモリの各消去ブロックは、データの取り扱い単位であるセクタに分割されて配置されており、各消去ブロックのサイズが64キロバイトで、各セクタのサイズが512バイトであるとした場合、各消去ブロックには128個のセクタ(図3ではブロックコントロールセクタとセクタ#1〜セクタ#127のデータ領域)が存在することになる。
【0064】
ここで、フラッシュメモリの複数個ある消去ブロックのうち、任意の1個の消去ブロックを、ファイルシステム1の再構築用の予備ブロック(データが消去されフォーマットされたブロック)とする。
【0065】
複数個ある消去ブロックはアドレスの小さい方から大きい方に向かって、0、1、2、...と物理ブロック番号が割り当てられる。また、上記セクタ#1からセクタ#127として付された番号を物理セクタ番号と称する。物理ブロック番号と物理セクタ番号はハードウェアで一意的に定められ、原則として、固定した値を持つものとする。なお、論理ブロック番号と論理セクタ番号はファイルシステムの効率的な管理上設けられた番号であり、その値は変化し得る。
【0066】
消去ブロックのセクタのうち、先頭部分に存在するセクタ1個を、該当ブロックの制御情報を格納するセクタ(以下、ブロックコントロールセクタと呼ぶ)として、予め確保する。
【0067】
このブロックコントロールセクタは、先頭から、該当消去ブロック自身の状態情報2バイト、該当消去ブロック内のセクタ#1の状態情報2バイト、以下、セクタ#127の状態情報2バイトが配置され、2バイト×128個=256バイトの情報を有している。残りの256バイト部(図2のセクタ#128以降の状態情報)には、再構築年月(日付)などが記憶される。
【0068】
該当消去ブロック自体の状態情報は、ファイルステム制御部2が割り当てを行う0〜255の論理ブロック番号、および現在のブロック状態として、(1)11111111b:未使用、(2)11111110b:データ転送中、(3)11111100b:元ブロック消去中、(4)11111000b:データ有り、(5)11110000b:ブロックフルの5つの状態を有する。
【0069】
該当消去ブロック内のセクタの状態情報は、上記該当消去ブロック自身の状態情報と同様に、ファイルシステム制御部2が割り当てを行う0〜4095の論理セクタ番号、および現在のセクタ状態として、(I)1111b:未使用、(II)1110b:データ書き込み中、(III)1100b:データ書き込み完了、(IV)1000b:データ有効、(V)0000b:データ無効、の5つの状態を有する。
【0070】
前述したように、図3のセクタ#127状態情報を越える部分(セクタ#128)には、該当ブロックの直近の再構築年月日時(または年月)を記憶する。例えば、再構築年月日時を記憶するには、例えば「1999111220」で1999年11月12日20時を表す構成とする。再構築年月を記憶するには、例えば「199911」で1999年11月を表す構成とする。または、2000年以降は、例えば「00011」で2000年11月を表し、例えば「00112」で2001年12月を表すものとする。更に簡略化めために、2000年以降は、例えば「0011」で2000年11月を表し、例えば「0112」で2001年12月を表すようにしてもよい。
【0071】
図4は、図1のファイルシステムメモリ部3(RAM)に格納されている各消去ブロックに関するデータ構成図(以下、ブロック情報表と呼ぶ)である。図4では、物理ブロック番号、論理ブロック番号、およびブロック状態を1つの単位としたブロック情報を有しており、具体的には、「物理ブロック番号=0、論理ブロック番号=0、ブロック状態=データ有り」である消去ブロック、また、「物理ブロック番号=1、論理ブロック番号=1、ブロック状態=データフル(ブロックフル)」である消去ブロックなどが存在することを示している。
【0072】
図5は、図1のファイルシステムメモリ部3(RAM)に格納されている各セクタに関するデータ構成図(以下、セクタ情報表1と呼ぶ)である。図5では、物理ブロック番号、物理セクタ番号、論理セクタ番号および、セクタ状態を1つの単位とした情報を有しており、具体的には、「物理ブロック番号=0、物理セクタ番号=0、論理セクタ番号=100、セクタ状態=データ有効」である物理セクタ、また、「物理ブロック番号=0、物理セクタ番号=1、物理セクタ=10、セクタ状態=データ無効」である物理セクタなどが存在することを示している。
【0073】
図6は、図1のファイルシステムメモリ部3(RAM)に格納されている各消去ブロック毎の各セクタ状態数に関するデータ構成図(以下、セクタ情報表2と呼ぶ)である。図6では、物理ブロック番号、未使用セクタ数、データ有効セクタ数、データ無効セクタ数および、再構築年月を1つの単位とした情報を有しており、具体的には、「物理ブロック番号=0、未使用セクタ数=100、データ有効セクタ数=20、データ無効セクタ数=7、再構築年月00010(2000年10月)」である消去ブロック、また、「物理ブロック番号=1、未使用セクタ数=0、データ有効セクタ数=50、データ無効セクタ数=77、再構築年月00112(2001年12月)」である消去ブロックなどが存在することを示している。
【0074】
以上の図4のブロック情報表、図5のセクタ情報表1および図6のセクタ情報表2は、ファイルシステム1が起動する段階において、フラッシュメモリ部5から、上記ブロックコントロールセクタと、図3のセクタ#128以降の状態情報を読み出すことによってそれぞれ、ファイルシステムメモリ部3(RAM)に作成される。ブロック情報表、セクタ情報表1およびセクタ情報表2をRAM部に作成しない場合においても、ファイルシステム1を使用することは可能であるが、データをやりとりする速度が、フラッシュメモリ部5とのデータのやり取りよりも高速であるという利点がある。
【0075】
上記構成により、以下、その動作を説明する。
【0076】
図7は、図1のファイルシステムメモリ部5に格納された制御データの読出し処理に関するフローチャート図である。
【0077】
図7に示すように、フラッシュメモリ部5に格納されたデータ読出し要求が発生した場合、このデータ読出し要求は、図1のアプリケーション(またはオペレーティングシステムOS)6からファイルシステム制御部2に対して、読出しすべき論理セクタ番号が与えられ、ファイルシステム制御部2は、ファイルシステムメモリ部3(RAM)に記憶されたセクタ情報表1から、読み出すべきデータが格納されたセクタの、セクタ状態が「データ有効」である論理セクタ番号を検索し、該当セクタのフラッシュメモリ部5における物理的な格納場所(物理セクタ番号)を取得する(ステップS121)。フラッシュメモリ制御部4は、取得した物理的な格納場所のセクタ読出しを行う(ステップS122)。さらに、ファイルシステム制御部2は、読み出すべきデータがまだあるかどうかを判断し(ステップS123)、読み出すべきデータがまだある場合にはステップS121に戻り、読み出すべきデータがない場合には処理を終了する。
【0078】
次に、フラッシュメモリ部5へのデータ書込み要求が発生した場合には、このデータ書込み要求は、図1のアプリケーション(またはオペレーティングシステムOS)6からファイルシステム制御部2に対して、書き込むデータが与えられ、ファイルシステム制御部2は、ファルシステムメモリ部3(RAM)に記憶された、セクタ情報表2から、未使用セクタ数が最も多い物理ブロック番号を取得し、その物理ブロック番号を取得できたかどうかの確認を行う。書き込み可能なブロックが取得できなかった場合には、書き込み領域を確保するためにファイルシステム1の再構築処理を行う。
【0079】
このように、フラッシュメモリ部5へのデータの書き込み要求が発生したが、データの書き込みが可能なセクタが取得できなくなった場合、即ち、無効セクタが多く未使用セクタがなくなった場合には、アプリケーション6(オペレーティングシステムOS)からファイルシステム1の再構築の要求が発生し、ファイルシステム制御部2で再構築動作の制御が行われる。以下、この再構築動作の制御について説明する。
【0080】
図8および図9は、図1のファイルシステム1の再構築処理に関するフローチャート図、図10および図11は図8および図9の再構築処理中におけるデータの変化(操作)を示すデータ構成図である。なお、前述した図4〜図6に示したようなブロックおよびセクタに関する状態情報を有するテーブルや図3に示したデータ構成に類似した状態情報を用いてファイルシステム1を構築する方法が、特願平11−254973号に示されている。ここでは、その代表的な図12(本発明の図3に相当)、図13(本発明の図6に相当)を参考例として示している。本発明においては、図12と比較すれば判るが、図3に示すように「セクタ#128以降の状態情報」が追加され、また、図13と比較すれば判るが、図6に示すように「再構築年月」が追加されている。ここでは、この追加した点(本発明の特徴部分)を中心に説明し、前述したブロック状態情報やセクタ状態情報のアプリケーション6(またはオペレーティングシステムOS)からの利用方法等の詳細は特願平11−254973号に準ずるものとして、ここではその詳細な説明を省略する。
【0081】
図10では、再構築の対象となるブロックをブロック#0、予備ブロックをブロック#nとしている。まず、セクタ情報表2から再構築年月が一定期間経過している物理ブロック番号、次にブロック情報表からこの物理ブロック番号に対応する論理ブロック番号を取得する(ステップ151;A1,A2)。ただし、一定期間経過したものがない場合には、データ無効セクタ数が最も多い物理ブロック番号、および論理ブロック番号を取得するものとする。以下これらのブロック番号を再構築対象物理ブロック番号および再構築対象論理ブロック番号と呼ぶ。
【0082】
次に、予備ブロック、即ち、ファイルシステム1の再構築用に予め未使用状態(消去状態)で確保しておいたブロックの論理ブロック番号を再構築対象論理ブロック番号に更新する(A3)と共に、ブロック状態を「未使用」から「データ転送中」へ更新する(A4)。なお、予備ブロックはその論理ブロック番号が後述するように「11111111b」であることからブロック情報表を検索することにより特定できる。同様に、ブロック情報表においても予備ブロックの論理ブロック番号を再構築対象論理ブロック番号に更新し(A5)、ブロック状態を「未使用」から「データ転送中」に更新する(A6)。
【0083】
さらに、再構築対象物理ブロック番号を持つブロックに含まれる有効セクタのデータを予備ブロックヘコピーする。ここでは、コピー動作を効率よく行うために、セクタ情報表1から再構築対象物理ブロック番号を持つセクタのうち、セクタ情報が「データ有効」であるものを検索し、その物理セクタ番号を取得する(ステップ153、A7)。
【0084】
セクタ状態が「データ有効」である場合は、再構築対象物理ブロック番号を持つブロックに格納されているA7で取得した物理セクタ番号を持つブロックコントロールセクタ内のセクタ状態情報とデータ領域内のデータを、各々予備ブロックの同じ物理セクタを持つセクタ情報とデータ領域にコピーする(A8,A9)。
【0085】
さらに、セクタ状態情報表1の更新を行う。即ち、セクタ情報表1から再構築対象物理ブロック番号を持つA7で取得した物理セクタ番号に対応する論理セクタ番号およびセクタ状態(「データ有効」)を各々予備ブロックの物理ブロック番号を持つA7で取得したものと同じ物理セクタ番号に対応する論理セクタ番号およびセクタ状態ヘコピーする(A10,A11)。
【0086】
以上でセクタ状態が「データ有効」である1つのセクタのデータおよびそのセクタに付随する情報が再構築対象ブロックから予備ブロックヘコピーされる。再構築対象ブロックに含まれるセクタ状態が「データ有効」である全てのセクタをコピーするために、セクタ状態情報表1から再構築対象物理ブロック番号のブロックに、まだ残りのセクタがあるかどうかの確認を行い(ステップ156)、残りのセクタがある場合には、ステップ153へ戻り、残りのセクタがなくなるまで上記の処理を実行する。
【0087】
次に、セクタ情報表2の更新、再構築対象ブロックの消去およびそれに伴う状態情報の更新を行う。即ち、セクタ情報表2の再構築対象物理ブロックのデータ有効セクタ数を予備ブロックのデータ有効セクタ数にコピーし(A12)、また,再構築年月にこの再構築動作を行った年月を記入する(ステップ157、A13)。
【0088】
未使用セクタ数はブロックに含まれるセクタの総数からデータ有効セクタ数を減算した値を記入する(A14)。
【0089】
データ無効セクタ数は再構築直後は「0」である。次に、再構築対象ブロックの消去に控え、予備ブロックに格納されるブロックコントロールセクタ内のブロック状態情報中のブロック状態を「データ転送中」から「元ブロック消去中」へ更新し(A15)、対応するブロック情報表のブロック状態も同様に「データ転送中」から「元ブロック消去中」へ更新する(ステップ158、A16)。
【0090】
また、予備ブロックに格納されるセクタ#128以降の状態情報にもA13と同様に再構築年月を記入しておく(A17)。
【0091】
ここで、実際に再構築対象ブロックの消去動作を行う(ステップ159)。消去動作が完了すると、予備ブロックに格納されるブロックコントロールセクタ内のブロック状態情報中のブロック状態を「元ブロック消去中」から「データ有り」へ更新し(A18)、ブロック情報表の予備ブロックのブロック状態も同様に「元ブロック消去中」から「データ有り」へ更新する(ステップ160、A19)。
【0092】
消去動作によって、ブロック内の全てのデータは「1」となるので、あるブロックに格納されるブロック状態情報内の論理ブロック番号が「11111111b」のブロックを予備ブロックであると定義することにより、消去動作により、再構築対象ブロックは自動的に予備ブロックとなり、またブロックコントロールセクタ内のブロック情報も自動的に「未使用;11111111b」になる。
【0093】
また、ブロック情報表(図4)、セクタ情報表1(図5)、およびセクタ情報表2(図6)のステップ159で消去したブロック番号の各項目は、そのブロックが自動的に予備ブロックとなり、フラッシュメモリ部5へのデータの書き込みや読み出しにおいて参照されることがないため、更新は不要である。以上で再構築動作が終了する。
【0094】
なお、本実施形態1においては、ファイルシステム1の再構築の処理は、消去ブロック1つを消去する場合を示したが、この一連の再構築処理を複数回実行することも可能である。
【0095】
また、ファイルシステム1が、複数個のフラッシュメモリにより構成される場合においては、1個のフラッシュメモリ毎に任意の1個の消去ブロックをファイルシステム1の再構築用の予備ブロックとして、予め確保しておくのではなく、複数個のフラッシュメモリに対して、1個の予備ブロックを確保する構成にしてもよい。この場合には、確保する予備ブロックの数を少なくできるという利点がある。
(実施形態2)
上記実施形態1では、図3のセクタ#128状態情報以降に、該当ブロックの直近の再構築日付(例えば年月)を記憶し、それを用いて再構築処理を行う場合を示したが、本実施形態2は、図3のセクタ#128状態情報以降に、該当ブロックの直近の再構築日付(例えば年月)の他に、該当ブロックの消去回数をも記憶し、それらを用いて再構築処理を行う場合である。
【0096】
図14は、本発明の実施形態2におけるファイルシステムのファイルシステム制御部の機能構成を示すブロック図である。図14において、ファイルシステム制御部2Aは、再構築日付記憶手段21Aと、再構築制御手段22Aとを有している。再構築制御手段22Aは、ブロックの消去回数を計数する消去回数計数手段221Aと、各ブロック毎に直近に行ったブロックの再構築日付からの経過時間を計算する再構築経過時間計算手段222Aと、その消去回数および経過時間を、高速にアクセス可能な記憶領域を持つファイルシステムメモリ部3に表形式で格納する第3計算結果格納手段223Aと、消去回数および経過時間から所定のパラメータ(経過時間と消去回数の各条件に応じて変化する量)を算出するパラメータ計算手段224Aと、このパラメータ計算手段224Aで計算した計算結果を、高速にアクセス可能な記憶領域を持つファイルシステムメモリ部3に表形式で格納するパラメータ格納手段225Aと、このパラメータに基づいて再構築処理を行う第3再構築処理手段226Aとを有するものである。
【0097】
図15は、図14のファイルシステムメモリ部3に格納されている、各消去ブロック毎の各セクタ状態に関するデータの構成図(上記セクタ情報表2の他の例)である。図15において、物理ブロック番号、未使用セクタ数、データ有効セクタ数、およびデータ無効セクタ数、再構築日時、消去回数を1つの単位としたテーブル情報を有している。図15では、上記実施形態1で示した図6と同様に、例えば物理ブロック番号=0、未使用セクタ数目100、データ有効セクタ数=20、データ無効セクタ数=7、である消去ブロックを示し、また、例えば物理ブロック番号=1、未使用セクタ数=0、データ有効セクタ数=50、データ無効セクタ数=77を示している。さらに、図15では、図6の再構築年月の他に、記憶領域が増加するが、消去回数をも記憶している。この消去回数は10000で一万回を表している。
【0098】
消去回数(または書き換え回数)と再構築年月から求めた計算結果(経過時間と消去回数の各条件に応じて量が変化するパラメータ)を記憶する方が記憶容量を小さくできることに着目し、現在の年月が2001年10月であり、該当ブロックの再構築日が1999年12月で、消去回数が2102回であれば、年だけを考慮して、
2001年〜1999年=2年
消去回数は10の乗数で表し、210=約2×10の3乗を計算結果としてRAM(ファイルシステムメモリ部3)上に、2年と3乗と約2を下記のようにパラメータとして「0232」と記憶する。これによって、年と回数を3桁で表すことが可能になる。
【0099】
再構築処理をするかどうかの判定方法としては、直近の再構築処理時から1年以内であれば、消去回数が 70000回以上、即ち、0047以上を再構築の対象とし、直近の再構築処理時から1年であれば、消去回数が50000回以上、即ち、「0145」以上を再構築の対象とし、直近の再構築処理時から2年であれば、消去回数が20000回以上、即ち、「0242」以上を再構築の対象とし、直近の再構築処理時から3年であれば、消去回数が7000回以上、即ち、「0337」以上を再構築の対象とし、直近の再構築処理時から4年であれば、消去回数が5000回以上、即ち、「0435」以上を再構築の対象とし、直近の再構築処理時から5年であれば、消去回数が2000回以上、即ち、「0532」以上を再構築の対象とし、直近の再構築処理時から6年であれば、消去回数が700回以上、即ち、「0627」以上を再構築の対象とし、直近の再構築処理時から7年であれば、消去回数が500回以上、即ち、「0725」以上を再構築の対象とし、直近の再構築処理時から8年であれば、消去回数が200回以上、即ち、「0822」以上を再構築の対象とし、直近の再構築処理時から9年であれば、消去回数が70回以上、即ち、「0917」以上を再構築の対象とし、直近の再構築処理時から10年以上であれば、消去回数が50回以上、即ち、1015以上を再構築の対象とする。
【0100】
フラッシュメモリ部5へのデータの書き込み要求が発生したが、データの書き込みが可能なセクタが取得できなくなった場合には、ファイルシステム1の再構築の要求が発生し、図8において、図15のセクタ情報表2から、まず、消去回数と、経過時間との計算結果が、データ保証に必要な上記一定値(パラメータ)を超えた物理ブロック番号、および論理ブロック番号を取得する(ステップ151)。また、一定期間経過したものがない場合には、データ無効セクタ数が最も多い物理ブロック番号、および論理ブロック番号を取得する(ステップ151)。
【0101】
従来は、再構築動作の対象となるブロックは、他の消去ブロックに比べて書き換え回数が少ないブロックが選ばれるか、または、消去状態(無効)のデータが多いブロックが選ばれる。ビット単価を下げるために、近年では、1個のメモリセルに複数のビット(2ビット、3ビットや4ビット)を記憶するようになってきた(多値化と呼ぶ)。しかし、多値化の場合には、1個のメモリセルに多くのビットを記憶する程、データ間の閾値電圧Vthの電位差が小さくなるので、保持データが劣化し、データ保持時間として10年間の保持もできない。これによって、データ保持の信頼性と製品歩留まりの問題が発生する。これに対して、上記実施形態1,2に代表される本発明によれば、データ劣化を起きたブロックや、書き換えた日付(年月)が古いブロック(データ劣化が懸念されるブロック)を再構築動作の対象とするので、特に、微細化プロセスで製造された不揮発性半導体記憶装置や、1個のメモリセルに複数のビット(2ビット、3ビットや4ビット)を記憶する多値化したセルのデータ保持特性の劣化(10年間保持できない)を解消でき、データ保持の信頼性と製品歩留まりの上記問題を解消することができる。
【0102】
以上のように、更にその効果を説明すると、上記実施形態1の再構築動作として、
(a)前回再構築動作が行われてから、別途定める一定時間を経過していた場合、データの劣化が発生しているから、データのリフレッシュを行うために、再構築を行う。これによって、多値化してもその保持データの劣化を防止できて、データ保持への信頼性と歩留まり向上を図ることができる。
【0103】
さらに、よりきめ細かな対応としては、本実施形態2の再構築動作として、
(b)書き換え回数が多いほど、データ保持特性が劣化するから、書き換え回数が多いほど、前回再構築動作が行われてから、別途定めるより短い時間を経過した場合に、データのリフレッシュを行うために、再構築を行う。具体例としては、書き換え回数と経過時間との計算結果が一定値を越えた場合に、再構築を行うようにする。これによって、多値化してもその保持データの劣化を防止できて、データ保持への信頼性と歩留まり向上を図ることができる。
【0104】
なお、上記実施形態1として、図3のセクタ#128状態情報以降に、該当ブロックの直近の再構築年月を記憶させ、上記実施形態2として、図3のセクタ#128状態情報以降に、該当ブロックの直近の再構築年月の他に、該当ブロックの消去回数を記憶させたが、これに限らず、実施形態3として、図3のセクタ#128状態情報以降に、該当ブロックの消去回数だけを記憶させ、それを用いて再構築処理を行っても、多値化してもその保持データの劣化防止ができて、データ保持への信頼性と歩留まり向上を図ることができる本発明の効果を奏する。この場合に、再構築制御手段は、ブロックの消去回数を計数する消去回数計数手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第2計算結果格納手段と、この第2計算結果格納手段にて記憶する消去回数が多いほど、日付を基に予め定められる一定の短い周期でかつ優先的に再構築する第2再構築処理手段とを有するように構成すればよい。
【0105】
また、上記実施形態1,2以外の例としては、リフレッシュコマンドを持つフラッシュメモリの場合には、メモリセルが劣化し、メモリセルの閾値電圧Vthを回復するために、リフレッシュ必要と判断されたブロックには、次回の再構築動作の対象とするために、上述の図15のセクタ情報表2の書き換え回数(消去回数)と経過時間との計算結果(パラメータ計算結果)を記録する場所に、上記一定値以上の値(例えば9999)を記録し、次回の再構築時に優先的に再構築の対象となるようにすることもできる。
【0106】
さらに、上記実施形態1,2以外の例としては、書き換えできない不良ブロックや、消去回数(または書き換え回数)が規定値(例えば、デバイス仕様書が保証する書き換え回数)を超えたブロックは、図16のように、ブロック状態を使用禁止(データ記録に使わないブロック)とする。そして、図3のセクタ#128以降の状態情報の領域に使用禁止ブロック番号を記録する。
【0107】
さらに、他の例として、本発明の不揮発性半導体記憶装置に電源の投入を検出する電源電圧検出回路を設け、電源投入の検出時に前述した再構築動作を起動するようにしても良い。また、更に他の例として、システムリセットからの復帰時にも前述した再構築動作を起動するようにしてもよい。
【0108】
【発明の効果】
以上のように、本発明によれば、各消去ブロック毎にブロックを再構築した日付(年月)を格納する領域を有し、直近の再構築日付から一定の期間が経過したブロックを、再構築の対象とするため、データ保持特性の劣化(10年間保持できない)を解消することができ、製品歩留まりの問題を解消することができる。
【0109】
また、各消去ブロック毎にブロックを再構築した日付(年月)を格納する領域を有し、各ブロック毎の直近の再構築日付からの経過時間の計算結果を、高速にアクセス可能な記憶領域上に表形式(テーブル)として格納し、直近の再構築日付から一定の期間が経過したブロックを、再構築の対象とするため、高速な検索ができてデータ保持特性の劣化(10年間保持できない)を解消でき、製品歩留まりの問題を解消することができる。
【0110】
さらに、各消去ブロック毎に、ブロック消去回数とブロックを再構築した日付(年月)を格納する領域を有し、ブロック消去回数が多いほど一定の短い周期で再構築の対象とするため、データ保持特性の劣化(10年間保持できない)を解消でき、データ保持の信頼性と製品歩留まりの問題を解消することができる。
【0111】
さらに、各消去ブロック毎にブロック消去回数とブロックを再構築した日付(年月)とを格納する領域を有し、ブロック消去回数と各ブロック毎の経過時間とから算出した計算結果を、高速にアクセス可能な記憶領域上に表形式(テーブル)として格納し、直近の再構築日付から一定期間が経過したブロックを、再構築の対象とするため、データ保持特性の劣化(10年間保持できない)を解消でき、データ保持の信頼性と製品歩留まりの問題を解消することができる。この場合、高速にアクセス可能な記憶領域上のデータを削減可能であるという利点がある。
【0112】
さらに、電源投入時、システムリセットから復帰時、さらには再構築動作を一定期間行わなかった場合に、優先的に再構築動作の実行を開始すれば、データ保持特性の劣化(10年間保持できない)を解消でき、データ保持の信頼性と製品歩留まりの問題を解消することができる。
【0113】
さらに、メモリセルが劣化しその劣化した特性を回復する動作、即ちリフレッシュ動作を要する場合にも再構築動作を行うことにより、データ保持特性の劣化(10年間保持できない)を解消でき、製品歩留まりの問題を解消することができる。
【0114】
さらに、書換え回数(消去回数)と再構築日付から求めた計算結果を記憶するため、記憶容量を削減することができる。
【0115】
さらに、実際に存在するセクタ番号を超える番号のセクタ状態情報記録領域を書換え回数(消去回数)や再構築日付の記録用に使うため、記憶領域を有効に利用できる。
【0116】
さらに、使用不可な物理ブロック番号を記憶するため、書き換えできない不良ブロックを含むフラッシュメモリが使用可能となり、製品歩留まりが上がり、安価になる。
【0117】
さらに、使用不可な物理ブロック番号を、高速にアクセス可能な記憶領域上に記憶するため、高速な検索をすることができる。
【図面の簡単な説明】
【図1】本発明の実施形態1におけるファイルシステムのシステム構成を示すブロック図である。
【図2】図1のファイルシステム制御部の機能構成を示すブロック図である。
【図3】図1のフラッシュメモリ部に格納されているデータ構成図である。
【図4】図1のファイルシステムメモリ部に格納されているブロック情報表に関するデータ構成図である。
【図5】図1のファイルシステムメモリ部に格納されているセクタ情報表1に関するデータ構成図である。
【図6】図1のファイルシステムメモリ部に格納されているセクタ情報表2に関するデータ構成図である。
【図7】図1のファイルシステムメモリ部に格納された制御データの読出し処理に関するフローチャート図である。
【図8】図1のファイルシステムの再構築処理(その1)に関するフローチャート図である。
【図9】図1のファイルシステムの再構築処理(その2)に関するフローチャート図である。
【図10】図8および図9の再構築処理中におけるデータの変化(その1)を示すデータ構成図である。
【図11】図8および図9の再構築処理中におけるデータの変化(その2)を示すデータ構成図である。
【図12】従来のフラッシュメモリ部に格納されているデータ構成図である。
【図13】図12のファイルシステムメモリ部に格納されているセクタ情報表2に関するデータ構成図である。
【図14】本発明の実施形態2におけるファイルシステムのファイルシステム制御部の機能構成を示すブロック図である。
【図15】図1のファイルシステムメモリ部に格納されている、各消去ブロック毎の各セクタ状態に関するデータ構成図である。
【図16】本発明のファイルシステムメモリ部に格納されているブロック情報表に関するデータ構成図である。
【図17】浮遊ゲート型電界効果トランジスタ構造を有したメモリセルの構成図である。
【図18】1個のメモリセルに2値(1ビット)を記憶する場合の閾値電圧分布を示す図である。
【図19】(1)〜(3)は従来の再構築動作を順次模式的に示すと図である。
【符号の説明】
1 ファイルシステム
2,2A ファイルシステム制御部
21,21A 再構築日付記憶手段
22,22A 再構築制御手段
221,222A 再構築経過時間計算手段
222 第1計算結果格納手段
223 第1再構築処理手段
221A 消去回数計数手段
223A 第3計算結果格納手段
224A パラメータ計算手段
225A パラメータ格納手段
226A 第3再構築処理手段
3 ファイルシステムメモリ部
4 フラッシュメモリ制御部
5 フラッシュメモリ部
6 アプリケーション(またはオペレーティングシステムOS)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a non-volatile semiconductor memory device such as a non-volatile memory including a flash memory, a data restructuring method such as a memory card using the same, a file system employing a data refresh management method, and a control method thereof.
[0002]
[Prior art]
Conventionally, a flash memory is a non-volatile semiconductor memory device having a function of electrically erasing memory cells (referred to as sectors or blocks) in a single chip or in an arbitrary area. As memory cells of this flash memory, for example, there are those called NOR type and NAND type. In any memory cell, the memory cell configuration shown in FIG. 17 is the basic structure of data storage.
[0003]
In FIG. 17, the memory cell 100 has a floating gate type field effect transistor structure, and one element can constitute one bit (one cell). Therefore, it is excellent in high integration. Data is written into the memory cell 100 by applying about 12 V to the control gate electrode G, about 7 V to the drain electrode D, and 0 V to the source electrode S, and generating hot electrons generated near the drain junction at the floating gate electrode. This is done by injecting into FG. By this writing, the threshold voltage Vth viewed from the control gate electrode G of the memory cell 100 is increased (data “0”).
[0004]
Further, the memory cell 100 having the floating gate type field effect transistor structure has a higher value when one element forms a multi-value (a threshold voltage Vth of the memory cell is made to be a power of 2 n at intervals of several hundred mV). Excellent integration.
[0005]
Data writing to the memory cell 100 was generated in the vicinity of the drain junction by setting the source electrode S to 0 V, applying a pulse of about 12 V to the control gate electrode G and about 7 V to the drain electrode D for several microseconds. This is done by injecting hot electrons into the floating gate electrode FG. By this writing, the threshold voltage Vth viewed from the control gate electrode G of the memory cell 100 is increased. The threshold voltage Vth of the memory cell 100 is controlled by changing the voltage of the control gate electrode G, changing the voltage of the drain electrode D, or changing the pulse width.
[0006]
On the other hand, in erasing, the control gate electrode G is grounded, and a positive high voltage (about 12 V) is applied to the source electrode S, thereby generating a high electric field between the floating gate electrode FG and the source electrode S, and thin gate oxidation. This is done by extracting electrons accumulated in the floating gate electrode FG to the source electrode S using a tunneling phenomenon through the film. This erasure is normally performed in block units (for example, 16 Kbytes or 64 Kbytes). By this erasing, the threshold voltage Vth viewed from the control gate electrode G is lowered (data “1”). At this time, since the memory cell 100 does not have a selection transistor, the negative threshold voltage Vth (excessive erasure) is a fatal defect (a defect in which correct data cannot be read when reading data).
[0007]
In data reading, a low voltage of about 0 V is applied to the source electrode S and a low voltage of about 1 V is applied to the drain electrode D, and a voltage of about 5 V is applied to the control gate electrode G. This is performed by utilizing the correspondence between information “1” and “0”. The reason why the voltage to the drain electrode D is lowered is to prevent a parasitic weak write operation (soft write).
[0008]
Further, when reading data in multi-value storage, a low voltage of about 0 V is applied to the source electrode S and a low voltage of about 1 V is applied to the drain electrode D, and the voltage applied to the control gate electrode G is changed. This is performed using the voltage of the control gate electrode G. In this memory cell 100, since data writing is performed on the drain electrode D side and erasing is performed on the source electrode S side, it is desirable to optimize the junction profile individually so as to suit each operation. That is, the source electrode S and the drain electrode D have an asymmetric structure, and the drain junction uses an electric field concentration type profile to increase write efficiency, and the source junction uses an electric field relaxation type profile capable of applying a high voltage. is doing.
[0009]
In the method of applying a high voltage to the source electrode S at the time of erasing, since the breakdown voltage of the source junction must be increased, the source electrode S side is difficult to be miniaturized, and hot holes are generated near the source electrode S. There is a problem that the portion is trapped in the tunnel insulating film and the reliability of the cell is lowered.
[0010]
Therefore, as another example of erasing (negative gate erasing), a negative voltage (about -10 V) is applied to the control gate electrode G, a power supply voltage (about 5 V) is applied to the source electrode S, and erasing is performed by a tunnel current.
[0011]
One advantage of this erasing method is that since the voltage applied to the source electrode S during erasing is low, the junction breakdown voltage on the source electrode S side may be low, so that the gate length of the cell can be shortened. It is. In addition, when the negative gate erase method is used, there is an advantage (referred to as sector erase) that the erase block size can be easily reduced.
[0012]
Further, in the erasing method in which a high electric field is applied to the source electrode S, a band-to-band tunneling current that is a parasitic current caused by the high electric field flows, and the current value becomes several mA across the entire chip. It becomes difficult to use a booster circuit with limited capability. Therefore, conventionally, a high voltage Vpp for erasing has been supplied from the outside of the chip. In the negative gate erasing method, the power supply voltage Vcc (5 V or 3 V) can be supplied to the source electrode S, so that there is an advantage that a single power supply can be made relatively easily.
[0013]
In the method using hot electrons for data writing, a current of about 1 mA flows per cell at the time of writing. Therefore, a flash memory that uses an FN tunnel current as in a conventional EEPROM and reduces the current flowing per cell at the time of data writing. There is also.
[0014]
With the miniaturization of semiconductor processes and the spread of battery-driven portable devices, there is a demand for lower operating power. Therefore, there is an active demand / development of 3V single operation products and 2.7V single operation products instead of 5V single operation.
[0015]
When reading data with a 3V power supply (Vcc) or a 2.7V power supply, in the current flash EEPROM, the control gate line (word line) has a power supply potential (Vcc = 3V) or an internal boost for speeding up / expanding operation margin. About 5V is applied.
[0016]
In such a nonvolatile semiconductor memory device, there are many operation states (writing, block erasing, batch erasing of all chips, status register, and so on) compared to a random access memory (RAM) capable of writing and reading in a short time. Read). If a large number of operating states are made to correspond to combinations of external control signals (/ CE, / WE, / CE, etc.), the control signals in the conventional EPROM and EEPROM become insufficient, and a new control signal needs to be added. As a result, usability deteriorates, and a method of taking a command system without increasing the number of control signal lines has been devised and has become mainstream in the world. In this nonvolatile semiconductor memory device, a command input by a user enters a circuit that recognizes a command called CSM (command state machine), and WSM (write state machine) performs an operation corresponding to the command (erase / erase / state). Write).
[0017]
Some nonvolatile semiconductor memory devices of this type are obtained by dividing the size of erase blocks in a chip unevenly or evenly.
[0018]
There are a write / erase method using a FN tunnel current and a NAND type memory cell system in which 8 or 16 memory cells are connected in series. The VAND type is slower in reading speed than the NOR type, but has an advantage that the memory cell size can be reduced.
[0019]
As described above, normally, as shown in FIG. 18, a binary value (1 bit) is stored in one memory cell. There are also attempts to record multi-values such as 4-level (2 bits), 8-level (3-bit), and even 16-level (4-bit) in one memory cell.
[0020]
For example, when binary (1 bit) is stored in one memory cell, the data “1” is set to the threshold voltage Vth = 2.5V of the memory cell, and the data “0” is set to the threshold voltage Vth = 6 of the memory cell. .5v, the difference in threshold voltage Vth between data is about 4V. However, when storing, for example, 4 values (2 bits) in one memory cell, it is necessary to further store 2 values between 4V.
[0021]
That is, the data “11” is the memory cell threshold voltage Vth = 2 V, the data “10” is the memory cell threshold voltage Vth = 3.5 V, the data “01” is the memory cell threshold voltage Vth = 5 v, and the data If “00” is defined as the threshold voltage Vth of the memory cell = 6.5 v, the difference in threshold voltage Vth between data is reduced to about 1.5V.
[0022]
Thus, as more values are stored in one memory cell, the potential difference between one storage state and another storage state in one memory cell becomes smaller (data reading errors are more likely to occur). There is a drawback, but there is also an advantage that a large-capacity memory can be manufactured at low cost.
[0023]
Utilizing such non-volatile characteristics of flash memory, it has been proposed to use it for data storage (file system) applications such as a magnetic disk represented by a hard disk. That is, the data handling unit is made as small as several hundred bytes like a hard disk, and the data is managed efficiently. However, when a file system is constructed with a flash memory, there are the following problems (1) to (3).
[0024]
(1) First, in this type of nonvolatile semiconductor memory device, the data read operation is about 20 microseconds (μSec) and the erase operation is several times compared to the high data read speed of about 100 nanoseconds (nSec). Even slower, 100 milliseconds (mSec).
[0025]
(2) Next, in the flash memory, data is rewritten in units of blocks, and data cannot be rewritten in units of 1 byte.
[0026]
(3) Further, the data retention period can be about 10 years or more. However, as the number of block erasures increases, the deterioration of the oxide film progresses and the leakage current increases, so the data retention period tends to be shortened. is there. Therefore, the number of times of erasure is limited to about 100,000 times for each block, and rewriting occurs intensively in one block, and if the number of times of erasure of one block exceeds 100,000 times, the reliability of the entire flash memory chip is increased. The characteristics deteriorate significantly.
[0027]
In order to use the flash memory for data storage (file storage), the following countermeasures are taken against the problems (1) to (3). First, a status bit indicating an erased or valid state of data is added to the data. That is, in practice, the erase operation is not performed, and only the writing to the status bit indicates that the data state has changed. As described above, the data erasure is replaced by the writing of the status bit, so that the data erasure is apparently speeded up by 1000 times or more, and the actual erasing operation does not need to be frequently performed.
[0028]
However, when data in the block is not actually erased and only the status bits are erased, that is, invalid data increases, there is no free space for writing new data. When there is no more area for writing data, valid data is copied to a previously erased spare block. When this copying is completed, the block of the copy source that has a large amount of erased data in the block is erased and newly set as a spare block. This operation is called reconstruction (reclaim).
[0029]
This reconstruction operation is schematically shown in FIGS. 19 (1) to 19 (3). That is, there are an erase block 1 and an erase block 2, where the erase block 1 represents a data storage block and the block 2 represents a spare block. It is assumed that the spare block has been erased in advance (all bit values are “1”). Each erase block has five data handling units (hereinafter referred to as sectors), and each sector has a status bit indicating the status. In order to simplify this explanation, here, the status bit is 1 bit, and when the value is “1”, the sector data is valid, and when the value is “0”, the sector data is invalid. In FIG. 19A, the erase block 1 has data written in all the sectors A to E. Among them, the sector B and the sector D are invalid data with the status bit being “0”. Since there are no more sectors to which data can be written in this block, a reconstruction operation is performed. In the reconstruction, as shown in FIG. 19 (2), the contents of the sector in which the status bit is “1” and the data is valid are copied to the spare block (block 2). A sector that has not been copied in the spare block is in an erased state, and data can be written to this sector. As described above, when valid data is copied to the spare block, the original data storage block (block 1) is erased and used as a new spare block (FIG. 19 (3)).
[0030]
Japanese Utility Model Publication No. 6-48051 “IC card” uses a memory that can be erased only in units of one chip, a semiconductor memory that consists of a plurality of chips, and a semiconductor memory that can be erased in units of bytes, and can be erased only in units of one chip. 1 shows an example of an IC card in which information on a file written in a simple memory is written in a semiconductor memory that can be erased in byte units.
[0031]
In Japanese Laid-Open Patent Publication No. 6-223591 “Flash EEPROM Array Clean-Up Method”, the number of times of rewriting is larger than the number of other erase blocks in the block to be subjected to the conventional rebuilding operation because the number of erase times is averaged. Either a small number of blocks are selected, or an erase block with a large number of erased (invalid) data is selected in order to facilitate data writing.
[0032]
[Problems to be solved by the invention]
However, in the above conventional configuration, in order to lower the bit unit price, in recent years, a plurality of bits (2 bits, 3 bits, and 4 bits) have been stored in one memory cell. This is called multi-leveling. In the case of multi-leveling, the more the bit is stored in one memory cell, the smaller the potential difference of the threshold voltage Vth between data must be reduced. Data tends to deteriorate, for example, data cannot be retained for 10 years, and there are problems in terms of reliability in data retention and product yield.
[0033]
The present invention solves the above-described conventional problem, and refreshes a block that is judged to have deteriorated data as a target block for the reconstruction operation, thereby reducing the retained data even if the multi-value is increased. An object of the present invention is to provide a file system and a control method therefor that can be prevented and can improve the reliability of data retention and improve the product yield.
[0034]
[Means for Solving the Problems]
The file system of the present invention has a configuration in which an erase block is logically divided into smaller storage area units than a non-volatile semiconductor memory device configured by a plurality of erase blocks and capable of erasing data in units of blocks. In a file system in which a file is managed using state information of storage area units and a block is reconstructed to release an invalid storage area unit included in the erase block, the date when the block was reconstructed for each erase block is displayed. Reconstruction date storage means for storing in a predetermined storage area, and reconstruction control means for preferentially rebuilding a block for which a certain period has elapsed from the date stored in the reconstruction date storage means Yes, and the above objective is achieved. Also, the file system control method of the present invention is a storage system in which an erase block is logically divided into smaller blocks than a non-volatile semiconductor memory device constituted by a plurality of erase blocks and capable of erasing data in units of blocks. In the file system control method for managing files using area unit and erase block status information, the block rebuild process that releases invalid storage area units contained in erase blocks is rebuilt for each erase block. The date is stored in a predetermined storage area, and a block for which a certain period has elapsed from that date is preferentially processed, whereby the above object is achieved.
[0035]
Preferably, the reconstruction control means in the file system of the present invention is a reconstruction elapsed time calculation means for calculating the elapsed time from the most recent block reconstruction time for each block based on the date, and First calculation result storage means for storing calculation results in a storage area that can be accessed at high speed in a table format, and firstly reconstructing a block after a certain period of time based on the calculation results of elapsed time Restructuring processing means. Preferably, in the file system control method of the present invention, the calculation result obtained by calculating the elapsed time from the most recent block reconstruction for each block is displayed in a table format in a storage area accessible at high speed. Based on the calculation result of the elapsed time, a block for which a certain period has elapsed is preferentially set as a reconstruction target block.
[0036]
Further preferably, the reconstruction control means in the file system of the present invention includes an erase count counting means for counting the erase count of the block, and a second calculation for storing the calculation result in a tabular form in a storage area accessible at high speed. The result storage means and the second reconstruction processing means for preferentially rebuilding at a predetermined short period based on the date as the number of times of erasure stored in the second calculation result storage means increases. Preferably, in the file system control method of the present invention, a block with a larger number of deletions is preferentially set as a target block to be reconstructed with a predetermined short period based on the date.
[0037]
Further preferably, the reconstruction control means in the file system of the present invention includes an erase count counting means for counting the number of block erases, and a time since the most recent block rebuild for each block based on the date. Reconstructed elapsed time calculation means for calculating time, third calculation result storage means for storing the erase count and elapsed time in a table format in a storage area accessible at high speed, and calculating parameters from the erase count and elapsed time Parameter calculation means, parameter storage means for storing the calculation results calculated by the parameter calculation means in a table format in a storage area that can be accessed at high speed, and on the basis of this parameter, a block after a certain period of time is given priority. And a third reconstruction processing means for reconstructing. Preferably, in the file system control method of the present invention, the calculation result calculated from the number of block erasures and the elapsed time from the most recent block reconstruction for each block based on the date, The data is stored in a table format in a storage area that can be accessed at high speed. Based on the calculation result, a block after a certain period of time is preferentially set as a target block for reconstruction.
[0038]
Further preferably, the reconstruction control means in the file system of the present invention performs the reconstruction operation at least one of when the power is turned on, when returning from the system reset, and when the reconstruction operation is not performed for a certain period. Give priority.
[0039]
Further preferably, the reconstruction control means in the file system of the present invention has memory cell characteristic deterioration detecting means for detecting that the characteristics of the memory cell have deteriorated, and the memory cell characteristic deterioration detecting means When the deterioration is detected, the reconstruction operation is preferentially performed on the storage area unit and the erase block including the memory cell in which the deterioration is detected.
[0040]
  Further preferably, the number of erasuresAs a calculation result obtained from the reconstruction dateIt is represented by a multiplier of 10, and the multiplier is used in the calculation formula.Preferably, a multivalue is stored in a memory cell of the nonvolatile semiconductor memory device.
[0041]
Further preferably, the reconstruction date storage means in the file system of the present invention stores the reconstruction date in the status information recording area having a number exceeding the storage area unit number that actually exists.
[0042]
Further preferably, the reconstruction control means in the file system according to the present invention obtains the elapsed time from the time of reconstruction, the number of erasures, and the obtained information in the status information recording area having a number exceeding the storage area unit number that actually exists. At least one of the parameters is stored.
[0043]
Further preferably, in the file system of the present invention, an unusable physical block number is stored in a status information recording area having a number exceeding the storage area unit number that actually exists.
[0044]
Further preferably, in the file system of the present invention, the unusable physical block number is stored in a storage area accessible at high speed.
[0045]
The operation of the above configuration will be described below. As a block to be reconstructed, data deterioration, that is, a block in which a state in which the oxide film of the memory cell has deteriorated and the reliability of the stored data has occurred as described above is taken into consideration. Specifically, compared to other erase blocks, not only blocks with more erased (invalid) data are selected, but also data degradation has progressed (or data degradation may have progressed). The block is also a target block for reconstruction. More specifically, the date (year and month) at the time of building the block is written in a part of the block. In general, as the number of times of rewriting increases, the generation of an oxide film trap and the deterioration of the oxide film progress, and the target of the reconstruction operation is performed after a certain period of time. Alternatively, the block erase count and the date (year / month) at the time of block construction are written in a part of the block. In general, as the number of rewrites increases, the generation of oxide traps and the deterioration of oxide films progress and the leakage current increases, so the data deterioration tends to progress. (Preferentially) is the target of the reconstruction operation. That is, valid data in a block that is considered to have deteriorated due to a large number of rewrites is transferred to the spare block side having a smaller number of rewrites.
[0046]
Further, in the case of a nonvolatile memory device having a refresh function (or refresh command), the threshold voltage Vth of the memory cell has changed more than a specified value as a result of execution of the refresh necessity determination, and the memory cell is refreshed. If it is determined that it is necessary, the block is preferentially subjected to the reconstruction operation. As an example of the refresh function, there is JP-A-7-37397. The refresh function referred to here is a reference voltage serving as a reference for determining whether data held in a memory cell is “0” or “1”. It is shown that the read margin is checked by changing, and it is determined that the memory cell with a small margin is deteriorating, and an excessive write operation is performed to recover the threshold voltage Vth.
[0047]
As a block to be reconstructed, a block with a smaller number of rewrites than other erase blocks is selected, or a block with many erased (invalid) data is selected. In order to lower the bit unit price, in recent years, multi-valued storage is performed in which a plurality of bits (2 bits, 3 bits, or 4 bits) are stored in one memory cell. The more bits are stored in the memory cell, the smaller the potential difference between the data, so the data retention time degrades (cannot be retained for 10 years), and reliability and yield problems occur. In addition, since a block whose rewrite date (year and month) is old (a block for which data deterioration is a concern) is a target of the reconstruction operation, in particular, a nonvolatile semiconductor memory device manufactured by a miniaturization process or one Degradation of data retention characteristics (cannot be retained for 10 years) of multilevel cells that store multiple bits (2 bits, 3 bits, or 4 bits) in a memory cell is eliminated, eliminating problems of reliability and yield
[0048]
Specifically, each erase block has an area for storing the date (year / month) of rebuilding the block, and blocks for which a certain period has passed are subject to rebuilding. (Cannot be held for 10 years) is resolved, and the problem of yield is also resolved.
[0049]
In addition, each erase block has an area for storing the date when the block was reconstructed, and the calculation result of the elapsed time for each block is stored as a table on a high-speed memory such as RAM, and a certain period of time has elapsed. Since the reconstructed block is to be reconstructed, the deterioration of the data retention characteristic (cannot be retained for 10 years) is resolved, the problem of yield is solved, and high-speed search is possible.
[0050]
In addition, each erase block has an area for storing the number of block erases and the year and month when the block is reconstructed, and as the number of block erases increases, the data is reconstructed at a constant short cycle. Degradation (cannot be held for 10 years) is eliminated and yield problems are eliminated.
[0051]
In addition, each erase block has an area for storing the number of block erases and the year and month when the block is reconstructed, and the calculation result calculated from the number of block erases and the elapsed time for each block is stored on a high-speed memory such as a RAM. Since a block that has been stored for a certain period of time and whose fixed period has passed is targeted for reconstruction, the deterioration of data retention characteristics (cannot be retained for 10 years) is eliminated, and the problem of yield is eliminated.
[0052]
Further, when the power is turned on, when the system is reset from the system reset, or when the rebuilding operation is not performed for a certain period of time, the execution of the rebuilding operation is started preferentially, thereby degrading the data retention characteristics (10 years). Can't hold money), and the yield problem is solved.
[0053]
Furthermore, since the calculation result (a parameter whose amount changes depending on the conditions of the elapsed time and the erase count) obtained from the data rewrite count and the reconstruction date is stored, the storage capacity of the RAM can be reduced.
[0054]
Furthermore, since the sector status information recording area having a number exceeding the actually existing sector number is used, the storage area can be effectively used without being wasted.
[0055]
Further, since the unusable physical block number is stored, a flash memory including a defective block (data cannot be rewritten) can be used, and the product yield is increased and the cost is reduced. In addition, since unusable physical block numbers are stored on the RAM, high-speed search is possible.
[0056]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments 1 and 2 of the file system of the present invention will be described below with reference to the drawings.
(Embodiment 1)
FIG. 1 is a block diagram showing a system configuration of a file system according to the first embodiment of the present invention.
[0057]
In FIG. 1, a flash memory file system 1 (hereinafter referred to as a file system 1) includes a file system control unit 2, a file system memory unit 3, a flash memory control unit 4, and a flash memory unit 5 for storing data. The file is managed using the state information of the erase block and the storage area unit (sector), and a block restructuring operation for releasing invalid sectors included in the erase block is performed.
[0058]
The file system control unit 2 is requested by an application (or operating system OS) 6 and controls various data processes including a reconstruction process performed by the file system 1. As shown in FIG. 2, the file system control unit 2 stores the date of rebuilding the block for each erase block in the file system memory unit 3 having a predetermined storage area as shown in FIG. The storage means 21 and the rebuild control means 22 for preferentially rebuilding blocks for which a certain period has elapsed from the date stored in the rebuild date storage means 21 are provided. The rebuild date is stored in the file system memory unit 3 and then stored in a predetermined area (sector # 128 of the block control sector) of the flash memory unit 5 via the flash memory control unit 4.
[0059]
The reconstruction control means 22 is a reconstruction elapsed time calculation means 221 that calculates the elapsed time from the most recent block reconstruction for each block based on the date, and a storage that can access the calculation result at high speed. First calculation result storage means 222 for storing the area in a table format, and first reconstruction processing means 223 for preferentially reconstructing a block after a certain period of time based on the calculation result of elapsed time Is.
[0060]
The file system memory unit 3 has a storage area that can be accessed at high speed, and is used by the file system 1 to store control information such as status information (FIGS. 4 to 6) described later in the storage area. is there. As the control information, in addition to the state information, for example, the number of erasures and the reconstruction date, the elapsed time from this date, the parameter calculation result, etc. are stored in a table format.
[0061]
The flash memory control unit 4 is instructed by the file system control unit 2 to perform normal data reading, data writing and data erasing to the flash memory unit 5, and further data reading, data writing and data erasing by a reconstruction process, etc. It controls various data processing.
[0062]
The flash memory unit 5 stores data, and is a non-volatile semiconductor memory device configured by a plurality of erase blocks and capable of erasing data in units of blocks. Here, the erase block has a logically smaller data storage. It is divided into sectors which are area units. Hereinafter, it demonstrates in detail using FIG.
[0063]
FIG. 3 is a data configuration diagram stored in the flash memory unit 5 of FIG. As shown in FIG. 3, each erase block of the flash memory is divided into sectors that are data handling units, each erase block has a size of 64 kilobytes, and each sector has a size of 512 bytes. In this case, each erase block has 128 sectors (the block control sector and the data area of sector # 1 to sector # 127 in FIG. 3).
[0064]
Here, any one erase block among a plurality of erase blocks in the flash memory is assumed to be a spare block for reconstruction of the file system 1 (data erased and formatted block).
[0065]
The plurality of erase blocks have 0, 1, 2,. . . And physical block number. The numbers assigned as sector # 1 to sector # 127 are referred to as physical sector numbers. The physical block number and the physical sector number are uniquely determined by hardware, and in principle have fixed values. The logical block number and the logical sector number are numbers provided for efficient management of the file system, and their values can change.
[0066]
Of the sectors in the erase block, one sector existing at the head is reserved in advance as a sector for storing control information of the block (hereinafter referred to as a block control sector).
[0067]
In this block control sector, 2 bytes of status information of the corresponding erase block itself, 2 bytes of status information of the sector # 1 in the erase block, and 2 bytes of status information of the sector # 127 are arranged from the head. 128 pieces = 256 bytes of information. The remaining 256 bytes (status information after sector # 128 in FIG. 2) stores the reconstruction date (date) and the like.
[0068]
The status information of the corresponding erase block itself includes (1) 11111111b: unused, (2) 11111110b: data transfer in progress as the logical block number of 0 to 255 to which the file stem control unit 2 assigns and the current block status. (3) 11111100b: During original block erasure, (4) 111111000b: data present, (5) 11110000b: block full.
[0069]
Similarly to the state information of the corresponding erase block itself, the state information of the sector in the corresponding erase block includes the logical sector numbers 0 to 4095 assigned by the file system control unit 2 and the current sector state as (I) 1111b: Not used, (II) 1110b: Data writing in progress, (III) 1100b: Data writing complete, (IV) 1000b: Data valid, (V) 0000b: Data invalid.
[0070]
As described above, the most recent reconstruction date / time (or year / month) of the corresponding block is stored in the portion (sector # 128) exceeding the sector # 127 status information in FIG. For example, in order to store the reconstruction date and time, for example, “1999111220” is set to represent 20:00 on November 12, 1999. In order to store the reconstruction date, for example, “199911” represents November 1999. Alternatively, after 2000, for example, “00011” represents November 2000, and “00112” represents December 2001, for example. For further simplification, after 2000, for example, “0011” may represent November 2000, and “0112” may represent December 2001, for example.
[0071]
FIG. 4 is a data configuration diagram (hereinafter referred to as a block information table) regarding each erase block stored in the file system memory unit 3 (RAM) of FIG. In FIG. 4, the block information includes a physical block number, a logical block number, and a block state as one unit. Specifically, “physical block number = 0, logical block number = 0, block state = This indicates that there is an erase block with “data present” and an erase block with “physical block number = 1, logical block number = 1, block state = data full (block full)”.
[0072]
FIG. 5 is a data configuration diagram (hereinafter referred to as sector information table 1) regarding each sector stored in the file system memory unit 3 (RAM) of FIG. In FIG. 5, the physical block number, the physical sector number, the logical sector number, and information with the sector state as one unit are included. Specifically, “physical block number = 0, physical sector number = 0, Physical sector with logical sector number = 100, sector state = data valid, and physical sector with physical block number = 0, physical sector number = 1, physical sector = 10, sector state = data invalid, etc. It shows that
[0073]
FIG. 6 is a data configuration diagram (hereinafter referred to as sector information table 2) regarding the number of sector states for each erase block stored in the file system memory unit 3 (RAM) of FIG. In FIG. 6, the information includes the physical block number, the number of unused sectors, the number of valid data sectors, the number of invalid data sectors, and the reconstruction date as one unit. = 0, the number of unused sectors = 100, the number of valid data sectors = 20, the number of invalid data sectors = 7, and the reconstructed year and month 10010 (October 2000) ", and the" physical block number = 1, The number of unused sectors = 0, the number of valid data sectors = 50, the number of invalid data sectors = 77, and the erase block “reconstruction date 00112 (December 2001)” exist.
[0074]
The above-described block information table in FIG. 4, sector information table 1 in FIG. 5 and sector information table 2 in FIG. 6 are obtained from the flash memory unit 5 from the block control sector and the block control sector in FIG. The status information after sector # 128 is read out and created in the file system memory unit 3 (RAM). Even when the block information table, the sector information table 1 and the sector information table 2 are not created in the RAM unit, the file system 1 can be used, but the speed of data exchange with the flash memory unit 5 There is an advantage that it is faster than the exchange.
[0075]
The operation of the above configuration will be described below.
[0076]
FIG. 7 is a flowchart relating to the reading process of the control data stored in the file system memory unit 5 of FIG.
[0077]
As shown in FIG. 7, when a data read request stored in the flash memory unit 5 is generated, the data read request is sent from the application (or operating system OS) 6 in FIG. 1 to the file system control unit 2. A logical sector number to be read is given, and the file system control unit 2 reads from the sector information table 1 stored in the file system memory unit 3 (RAM) the sector state of the sector storing the data to be read is “data” The logical sector number that is “valid” is searched, and the physical storage location (physical sector number) of the corresponding sector in the flash memory unit 5 is acquired (step S121). The flash memory control unit 4 performs sector reading of the acquired physical storage location (step S122). Further, the file system control unit 2 determines whether there is still data to be read (step S123). If there is still data to be read, the process returns to step S121, and if there is no data to be read, the process ends. To do.
[0078]
Next, when a data write request to the flash memory unit 5 occurs, the data write request is given by the application (or operating system OS) 6 of FIG. The file system control unit 2 acquires the physical block number having the largest number of unused sectors from the sector information table 2 stored in the file system memory unit 3 (RAM), and has the physical block number been acquired? Check if. When a writable block cannot be obtained, the file system 1 is reconstructed to secure a write area.
[0079]
As described above, when a data write request to the flash memory unit 5 is generated, but a sector in which data can be written cannot be obtained, that is, when there are many invalid sectors and there are no unused sectors, the application 6 (operating system OS) generates a request for rebuilding the file system 1 and the file system control unit 2 controls the rebuilding operation. Hereinafter, control of this reconstruction operation will be described.
[0080]
FIGS. 8 and 9 are flowcharts relating to the rebuilding process of the file system 1 in FIG. 1, and FIGS. 10 and 11 are data configuration diagrams showing data changes (operations) during the rebuilding process in FIGS. is there. A method for constructing the file system 1 using the table having the state information related to the blocks and sectors as shown in FIGS. 4 to 6 and the state information similar to the data structure shown in FIG. It is shown in Japanese Patent Laid-Open No. 11-254974. Here, typical FIG. 12 (corresponding to FIG. 3 of the present invention) and FIG. 13 (corresponding to FIG. 6 of the present invention) are shown as reference examples. In the present invention, it can be understood by comparing with FIG. 12, but “state information after sector # 128” is added as shown in FIG. 3, and it can be understood by comparing with FIG. 13, but as shown in FIG. "Rebuild date" has been added. Here, this added point (characteristic part of the present invention) will be mainly described, and details such as how to use the block state information and the sector state information from the application 6 (or operating system OS) will be described in Japanese Patent Application No. 11. The detailed description is omitted here as it conforms to 2549743.
[0081]
In FIG. 10, a block to be reconstructed is a block # 0, and a spare block is a block #n. First, a physical block number whose reconstructed date has passed for a certain period is obtained from the sector information table 2, and then a logical block number corresponding to this physical block number is obtained from the block information table (step 151; A1, A2). However, if no data has passed for a certain period, the physical block number and logical block number with the largest number of data invalid sectors are acquired. Hereinafter, these block numbers are referred to as a reconstruction target physical block number and a reconstruction target logical block number.
[0082]
Next, the spare block, that is, the logical block number of the block reserved in the unused state (erased state) for the reconstruction of the file system 1 is updated to the logical block number to be reconstructed (A3), The block state is updated from “unused” to “data transfer in progress” (A4). Since the logical block number is “11111111b” as will be described later, the spare block can be specified by searching the block information table. Similarly, in the block information table, the logical block number of the spare block is updated to the reconstruction target logical block number (A5), and the block status is updated from “unused” to “data transfer in progress” (A6).
[0083]
Further, the valid sector data included in the block having the physical block number to be reconstructed is copied to the spare block. Here, in order to efficiently perform the copying operation, the sector information table 1 is searched for the sector having the data block number of the reconstruction target physical block number, and the physical sector number is acquired. (Step 153, A7).
[0084]
When the sector status is “data valid”, the sector status information in the block control sector having the physical sector number acquired in A7 stored in the block having the physical block number to be reconstructed and the data in the data area are stored. The sector information having the same physical sector in the spare block and the data area are copied (A8, A9).
[0085]
Further, the sector status information table 1 is updated. That is, the logical sector number and sector state ("data valid") corresponding to the physical sector number acquired in A7 having the physical block number to be reconstructed from the sector information table 1 are acquired in A7 each having the physical block number of the spare block. Are copied to the logical sector number and sector state corresponding to the same physical sector number (A10, A11).
[0086]
As described above, the data of one sector whose sector state is “data valid” and information associated with the sector are copied from the reconstruction target block to the spare block. In order to copy all the sectors in the reconstruction target block whose data state is “data valid”, whether or not there are still remaining sectors in the block of the reconstruction target physical block number from the sector state information table 1 Confirmation is made (step 156), and if there are remaining sectors, the process returns to step 153 and the above processing is executed until there are no remaining sectors.
[0087]
Next, the sector information table 2 is updated, the reconstruction target block is erased, and the state information associated therewith is updated. That is, the number of data effective sectors of the physical block to be reconstructed in the sector information table 2 is copied to the number of data effective sectors of the spare block (A12), and the date of this reconstruction operation is entered in the reconstruction date. (Step 157, A13).
[0088]
As the number of unused sectors, a value obtained by subtracting the number of valid data sectors from the total number of sectors included in the block is entered (A14).
[0089]
The number of invalid data sectors is “0” immediately after reconstruction. Next, in advance of erasure of the reconstruction target block, the block state in the block state information in the block control sector stored in the spare block is updated from “data transferring” to “original block erasing” (A15), Similarly, the block state of the corresponding block information table is updated from “data transfer in progress” to “original block erasure in progress” (steps 158 and A16).
[0090]
Also, the reconstruction date is entered in the status information after sector # 128 stored in the spare block, as in A13 (A17).
[0091]
Here, the erase operation of the reconstruction target block is actually performed (step 159). When the erase operation is completed, the block state in the block state information in the block control sector stored in the spare block is updated from “original block erased” to “data present” (A18), and the spare block in the block information table is updated. Similarly, the block state is updated from “deleting original block” to “data present” (step 160, A19).
[0092]
Since all data in the block becomes “1” by the erasing operation, the block having the logical block number “11111111b” in the block state information stored in a certain block is defined as a spare block. By the operation, the reconfiguration target block automatically becomes a spare block, and the block information in the block control sector automatically becomes “unused; 11111111b”.
[0093]
In addition, each block number item erased in step 159 of the block information table (FIG. 4), sector information table 1 (FIG. 5), and sector information table 2 (FIG. 6) automatically becomes a spare block. Since no reference is made in writing or reading data to the flash memory unit 5, no update is necessary. The reconstruction operation is thus completed.
[0094]
In the first embodiment, the reconstruction process of the file system 1 has been described as erasing one erase block. However, this series of reconstruction processes can be executed a plurality of times.
[0095]
When the file system 1 is composed of a plurality of flash memories, an arbitrary one erase block is secured in advance as a spare block for reconstruction of the file system 1 for each flash memory. Instead, a configuration may be adopted in which one spare block is secured for a plurality of flash memories. In this case, there is an advantage that the number of reserved blocks to be secured can be reduced.
(Embodiment 2)
In the first embodiment, the case where the latest reconstruction date (for example, year and month) of the corresponding block is stored after the sector # 128 state information in FIG. 3 and the reconstruction process is performed using the reconstruction date is shown. In the second embodiment, after the sector # 128 status information in FIG. 3, in addition to the most recent reconstruction date (for example, year and month) of the corresponding block, the number of erasures of the corresponding block is also stored, and the reconstruction process is performed using these This is the case.
[0096]
FIG. 14 is a block diagram illustrating a functional configuration of the file system control unit of the file system according to the second embodiment of the present invention. In FIG. 14, the file system control unit 2A has a reconstruction date storage unit 21A and a reconstruction control unit 22A. The reconstruction control unit 22A includes an erase number counting unit 221A that counts the number of block erasures, a reconstruction elapsed time calculation unit 222A that calculates an elapsed time from the most recent block reconstruction date for each block, Third calculation result storage means 223A for storing the erase count and elapsed time in a table format in the file system memory section 3 having a storage area accessible at high speed, and a predetermined parameter (elapsed time and Parameter calculation means 224A for calculating the amount of change according to each condition of the number of erasures), and the calculation result calculated by this parameter calculation means 224A in the file system memory section 3 having a storage area accessible at high speed The parameter storage means 225A for storing the data and the third reconstruction processing for performing the reconstruction processing based on the parameters And it has a means 226A.
[0097]
FIG. 15 is a configuration diagram of data relating to each sector state for each erase block (another example of the sector information table 2) stored in the file system memory unit 3 of FIG. In FIG. 15, there is table information in which a physical block number, the number of unused sectors, the number of valid data sectors, the number of invalid data sectors, the reconstruction date and time, and the number of erasures are set as one unit. FIG. 15 shows an erase block in which, for example, physical block number = 0, unused sector number 100, data valid sector number = 20, and data invalid sector number = 7, as in FIG. 6 described in the first embodiment. Further, for example, physical block number = 1, number of unused sectors = 0, number of valid data sectors = 50, and number of invalid data sectors = 77 are shown. Further, in FIG. 15, in addition to the reconstruction date of FIG. 6, the storage area is increased, but the number of erasures is also stored. The number of erasures is 10,000, which represents 10,000 times.
[0098]
  Focusing on the fact that the memory capacity can be reduced by storing the number of erasures (or the number of rewrites) and the calculation results (parameters whose amount changes according to the elapsed time and the number of erasures) calculated from the reconstruction date. If the date is October 2001, the rebuild date of the block is December 1999, and the number of deletions is 2102, then only the year is considered,
  2001-1999 = 2 years
  The number of erasures is represented by a multiplier of 10, 2102= 2 × 10 3 is stored as a calculation result on the RAM (file system memory unit 3), and 2 years, 3rd power, and about 2 are stored as parameters as “0232” as follows. This makes it possible to represent the year and number of times with three digits.
[0099]
As a method for determining whether or not to perform the rebuilding process, if it is within one year from the time of the latest rebuilding process, the number of times of erasure is 70000 times or more, that is, 0047 or more is the target of the rebuilding. If it is one year from the time, the number of erasures is 50000 times or more, that is, “0145” or more is the object of reconstruction, and if it is 2 years from the latest reconstruction process, the number of erasures is 20000 times or more, If “0242” or more is the target of reconstruction, and if it is 3 years from the most recent reconstruction process, the number of deletions is 7000 times or more, that is, “0337” or more is the target of reconstruction, and the latest reconstruction process 4 years from the time of deletion, the number of erasures is 5000 times or more, that is, “0435” or more is the target of reconstruction, and if it is 5 years from the most recent reconstruction process, the number of erasures is 2000 times or more, that is, “ 0532 "or more of reconstruction If it is 6 years from the time of the most recent reconstruction process, the number of deletions is 700 times or more, that is, “0627” or more is the target of reconstruction, and if it is 7 years from the most recent reconstruction process, If the number of times is 500 times or more, that is, “0725” or more is the target of reconstruction, and if it is 8 years from the most recent rebuilding process, the number of erasures is 200 times or more, that is, “0822” or more If it is 9 years from the most recent reconstruction process, the number of deletions is 70 times or more, that is, “0917” or more is the object of reconstruction, and if it is 10 years or more from the most recent reconstruction process, The number of times is 50 times or more, that is, 1015 or more is the object of reconstruction.
[0100]
When a data write request to the flash memory unit 5 is generated, but a sector in which data can be written cannot be obtained, a request to reconstruct the file system 1 is generated. From the sector information table 2, first, the physical block number and logical block number whose calculation results of the number of erasures and the elapsed time have exceeded the above-mentioned fixed values (parameters) necessary for data guarantee are obtained (step 151). If no fixed period has passed, the physical block number and logical block number with the largest number of data invalid sectors are acquired (step 151).
[0101]
Conventionally, as a block to be reconstructed, a block with a smaller number of rewrites than other erase blocks is selected, or a block with many erased (invalid) data is selected. In order to lower the bit unit price, in recent years, a plurality of bits (2 bits, 3 bits, and 4 bits) have been stored in one memory cell (referred to as multi-valued). However, in the case of multi-value, the more the bits are stored in one memory cell, the smaller the potential difference of the threshold voltage Vth between the data, so that the retained data deteriorates and the data retention time is 10 years. It cannot be held. This causes problems of data retention reliability and product yield. On the other hand, according to the present invention represented by the first and second embodiments, a block in which data has deteriorated or a block whose rewrite date (year / month) is old (a block in which data deterioration is a concern) is reproduced. Since it is a target of the construction operation, in particular, a non-volatile semiconductor memory device manufactured by a miniaturization process and a multi-value storage that stores a plurality of bits (2 bits, 3 bits, and 4 bits) in one memory cell Deterioration of the data retention characteristics of the cell (cannot be retained for 10 years) can be eliminated, and the above problems of data retention reliability and product yield can be eliminated.
[0102]
As described above, the effect will be further described. As the reconstruction operation of the first embodiment,
(A) If a predetermined time has elapsed since the previous restructuring operation, data deterioration has occurred, so that the data is rebuilt in order to refresh the data. As a result, the deterioration of the retained data can be prevented even when the number of values is increased, and the reliability of data retention and the yield can be improved.
[0103]
Furthermore, as a more detailed correspondence, as the reconstruction operation of the second embodiment,
(B) Since the data retention characteristic deteriorates as the number of rewrites increases, the data is refreshed when a shorter period of time elapses from the previous restructuring operation as the number of rewrites increases. Then, rebuild. As a specific example, reconstruction is performed when the calculation result of the number of rewrites and the elapsed time exceeds a certain value. As a result, the deterioration of the retained data can be prevented even when the number of values is increased, and the reliability of data retention and the yield can be improved.
[0104]
In the first embodiment, the most recent reconstruction date of the corresponding block is stored after the sector # 128 state information in FIG. 3, and in the second embodiment, after the sector # 128 state information in FIG. In addition to the most recent reconstruction date of the block, the number of erasures of the corresponding block is stored. However, the present invention is not limited to this. Even if the reconstruction process is performed using the stored data, the deterioration of the retained data can be prevented even when the multi-value is used, and the effect of the present invention can be improved in the reliability and the yield for retaining the data. Play. In this case, the reconstruction control means includes an erase count counting means for counting the number of block erases, a second calculation result storage means for storing the calculation results in a table format in a storage area accessible at high speed, 2 The second calculation processing unit may be configured to preferentially reconstruct at a predetermined short period based on the date as the number of erases stored in the calculation result storage unit increases.
[0105]
Further, as an example other than the first and second embodiments, in the case of a flash memory having a refresh command, a memory cell is deteriorated and a block determined to be refreshed in order to recover the threshold voltage Vth of the memory cell. In order to make it the object of the next reconstruction operation, the above-mentioned sector information table 2 of FIG. 15 is recorded at a place where the calculation result (parameter calculation result) of the rewrite count (erasure count) and the elapsed time is recorded. It is also possible to record a value greater than a certain value (for example, 9999) and preferentially become the target of reconstruction at the next reconstruction.
[0106]
Further, as an example other than the first and second embodiments, a defective block that cannot be rewritten or a block whose erase count (or rewrite count) exceeds a specified value (for example, the rewrite count guaranteed by the device specification) is shown in FIG. As shown, the block status is prohibited (blocks not used for data recording). Then, the use prohibition block number is recorded in the state information area after sector # 128 in FIG.
[0107]
As another example, the nonvolatile semiconductor memory device of the present invention may be provided with a power supply voltage detection circuit that detects power-on, and the above-described reconstruction operation may be activated when power-on is detected. As yet another example, the above-described reconstruction operation may be started when returning from a system reset.
[0108]
【The invention's effect】
As described above, according to the present invention, each erase block has an area for storing the date (year / month) of rebuilding the block, and a block that has passed a certain period from the most recent rebuilding date is reconstructed. Since it is an object of construction, it is possible to eliminate deterioration of data retention characteristics (cannot be retained for 10 years), and to solve the problem of product yield.
[0109]
In addition, each storage block has an area for storing the date (year / month) of rebuilding the block, and a storage area where the calculation result of the elapsed time from the most recent rebuilding date for each block can be accessed at high speed Stored in a table format (table) above, and blocks whose fixed period has passed since the most recent reconstruction date are subject to reconstruction, so high-speed search is possible and data retention characteristics deteriorate (cannot be retained for 10 years) ), And the product yield problem can be solved.
[0110]
Furthermore, each erase block has an area for storing the number of block erases and the date (year and month) of rebuilding the block. Deterioration of retention characteristics (cannot be retained for 10 years) can be eliminated, and data retention reliability and product yield problems can be resolved.
[0111]
In addition, each erase block has an area for storing the number of block erases and the date (year and month) when the block was reconstructed, and the calculation result calculated from the number of block erases and the elapsed time for each block can be calculated at high speed. Data is stored in an accessible storage area as a table (table), and blocks whose fixed period has passed since the most recent reconstruction date are subject to reconstruction. This can eliminate the problems of data retention reliability and product yield. In this case, there is an advantage that data on a storage area accessible at high speed can be reduced.
[0112]
Furthermore, if the rebuilding operation is started preferentially when the power is turned on, when returning from system reset, or when the rebuilding operation is not performed for a certain period, the data retention characteristics deteriorate (cannot be retained for 10 years) And the problems of data retention reliability and product yield can be solved.
[0113]
Furthermore, when the memory cell deteriorates and recovers its deteriorated characteristics, that is, when a refresh operation is required, the reconstruction operation is performed, so that the deterioration of data retention characteristics (cannot be maintained for 10 years) can be eliminated, and the product yield can be improved. The problem can be solved.
[0114]
Furthermore, since the calculation result obtained from the number of rewrites (the number of erasures) and the reconstruction date is stored, the storage capacity can be reduced.
[0115]
Furthermore, since the sector status information recording area having a number exceeding the sector number that actually exists is used for recording the number of rewrites (erasure count) and the reconstruction date, the storage area can be used effectively.
[0116]
Furthermore, since the unusable physical block number is stored, a flash memory including a defective block that cannot be rewritten can be used, and the product yield is increased and the cost is reduced.
[0117]
Furthermore, since the unusable physical block number is stored in a storage area that can be accessed at high speed, a high-speed search can be performed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a system configuration of a file system in Embodiment 1 of the present invention.
2 is a block diagram illustrating a functional configuration of a file system control unit in FIG. 1; FIG.
FIG. 3 is a data configuration diagram stored in the flash memory unit of FIG. 1;
4 is a data configuration diagram related to a block information table stored in the file system memory unit of FIG. 1. FIG.
5 is a data configuration diagram related to the sector information table 1 stored in the file system memory unit of FIG. 1. FIG.
6 is a data configuration diagram related to the sector information table 2 stored in the file system memory unit of FIG. 1;
7 is a flowchart regarding control data read processing stored in the file system memory unit of FIG. 1; FIG.
FIG. 8 is a flowchart related to the file system reconstruction process (part 1) of FIG. 1;
FIG. 9 is a flowchart related to the file system restructuring process (part 2) of FIG. 1;
10 is a data configuration diagram showing data change (part 1) during the reconstruction process of FIGS. 8 and 9. FIG.
11 is a data configuration diagram showing data change (part 2) during the reconstruction process of FIGS. 8 and 9. FIG.
FIG. 12 is a data configuration diagram stored in a conventional flash memory unit.
13 is a data configuration diagram related to the sector information table 2 stored in the file system memory unit of FIG. 12;
FIG. 14 is a block diagram showing a functional configuration of a file system control unit of a file system in Embodiment 2 of the present invention.
FIG. 15 is a data configuration diagram relating to each sector state for each erase block, stored in the file system memory unit of FIG. 1;
FIG. 16 is a data configuration diagram related to a block information table stored in the file system memory unit of the present invention.
FIG. 17 is a configuration diagram of a memory cell having a floating gate type field effect transistor structure.
FIG. 18 is a diagram showing a threshold voltage distribution when binary (1 bit) is stored in one memory cell;
FIGS. 19 (1) to (3) are diagrams schematically showing conventional reconstruction operations in order.
[Explanation of symbols]
1 File system
2,2A File system controller
21, 21A Reconstruction date storage means
22,22A Reconstruction control means
221, 222A Reconstruction elapsed time calculation means
222 First calculation result storage means
223 first reconstruction processing means
221A Erase count counting means
223A Third calculation result storage means
224A parameter calculation means
225A parameter storage means
226A Third reconstruction processing means
3 File system memory
4 Flash memory controller
5 Flash memory part
6 Application (or operating system OS)

Claims (16)

複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、該消去ブロックが論理的により小さな記憶領域単位に分割され、該消去ブロックおよび記憶領域単位の状態情報を用いてファイルが管理され、かつ該消去ブロックに含まれる無効な該記憶領域単位を開放するブロックの再構築動作を行うファイルシステムにおいて、
該消去ブロック毎にブロックを再構築した日付を所定の記憶領域に格納する再構築日付記憶手段と、該再構築日付記憶手段にて記憶した日付から一定の期間が経過したブロックを優先的に再構築処理する再構築制御手段とを有したファイルシステム。
For a non-volatile semiconductor memory device composed of a plurality of erase blocks and capable of erasing data in units of blocks, the erase blocks are logically divided into smaller storage areas, and the states of the erase blocks and storage areas In a file system in which a file is managed using information and a block is reconstructed to release an invalid storage area unit included in the erase block,
Reconstruction date storage means for storing in a predetermined storage area the date that the block was reconstructed for each erase block, and blocks that have passed a certain period of time from the date stored in the reconstruction date storage means are preferentially reconstructed. A file system having reconstruction control means for performing a construction process.
前記再構築制御手段は、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第1計算結果格納手段と、該経過時間の計算結果を基に、一定の期間が経過したブロックを、優先的に再構築する第1再構築処理手段とを有する請求項1記載のファイルシステム。  The reconstruction control means includes a reconstruction elapsed time calculation means for calculating an elapsed time from the most recent block reconstruction performed for each block based on the date, and a storage that can access the calculation result at high speed. A first calculation result storing means for storing the data in a tabular form in the area; and a first reconstruction processing means for preferentially reconstructing a block after a certain period of time based on the calculation result of the elapsed time. Item 1. The file system according to Item 1. 前記再構築制御手段は、前記ブロックの消去回数を計数する消去回数計数手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第2計算結果格納手段と、該第2計算結果格納手段にて記憶する消去回数が多いほど、前記日付を基に予め定められる一定の短い周期でかつ優先的に再構築する第2再構築処理手段とを有する請求項1記載のファイルシステム。  The reconstruction control means includes an erase count counting means for counting the number of erases of the block, a second calculation result storage means for storing the calculation results in a table format in a storage area accessible at high speed, and the second calculation 2. The file system according to claim 1, further comprising: a second reconstruction processing unit that preferentially reconstructs a predetermined short period based on the date as the number of times of erasure stored in the result storage unit increases. 前記再構築制御手段は、前記ブロックの消去回数を計数する消去回数計数手段と、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その消去回数および経過時間を、高速にアクセス可能な記憶領域に表形式で格納する第3計算結果格納手段と、該消去回数および経過時間からパラメータを算出するパラメータ計算手段と、該パラメータ計算手段で計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納するパラメータ格納手段と、該パラメータに基づいて、一定の期間が経過したブロックを優先的に再構築する第3再構築処理手段とを有する請求項1記載のファイルシステム。  The rebuild control means includes an erase count counting means for counting the erase count of the block, and a rebuild elapsed time for calculating an elapsed time from the most recent block rebuild for each block based on the date. A calculation means, a third calculation result storage means for storing the erase count and elapsed time in a tabular form in a storage area accessible at high speed, a parameter calculation means for calculating a parameter from the erase count and elapsed time, Parameter storage means for storing the calculation results calculated by the parameter calculation means in a table format in a storage area accessible at high speed, and a third method for preferentially reconstructing blocks after a certain period of time based on the parameters. The file system according to claim 1, further comprising a reconstruction processing unit. 前記再構築制御手段は、電源投入時、システムリセットからの復帰時、再構築動作を一定期間行わなかった場合の少なくとも何れかのときに、再構築動作を優先的に行う請求項1〜4の何れかに記載のファイルシステム。  The rebuild control means preferentially performs the rebuild operation when power is turned on, when returning from a system reset, or at least when the rebuild operation is not performed for a certain period of time. A file system according to any one of the above. メモリセルの特性が劣化したことを検出するメモリセル特性劣化検出手段を有し、該メモリセル特性劣化検出手段がメモリセル特性の劣化を検出した場合に、その劣化が検出されたメモリセルを含む記憶領域単位および消去ブロックに対して再構築動作を優先的に行う請求項1〜5の何れかに記載のファイルシステム。  A memory cell characteristic deterioration detecting unit for detecting that the characteristic of the memory cell has deteriorated, and the memory cell characteristic deterioration detecting unit includes a memory cell in which the deterioration is detected when the memory cell characteristic deterioration detecting unit detects the deterioration of the memory cell characteristic; 6. The file system according to claim 1, wherein the rebuilding operation is preferentially performed on the storage area unit and the erase block. 前記消去回数と再構築年月から求めた計算結果として10の乗数で表し、その計算式に該乗数を用いる請求項3または4記載のファイルシステム。The file system according to claim 3 or 4, wherein the file system is expressed by a multiplier of 10 as a calculation result obtained from the number of times of erasure and the reconstruction date, and the multiplier is used in the calculation formula. 前記再構築日付記憶手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に再構築日付を記憶させる請求項1〜7の何れかに記載のファイルシステム。  The file system according to claim 1, wherein the reconstruction date storage unit stores the reconstruction date in a state information recording area having a number exceeding a storage area unit number that actually exists. 前記再構築制御手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に、前記再構築時からの経過時間、消去回数および、これらから得たパラメータの少なくとも何れかを記憶させるようにする請求項1〜8の何れかに記載のファイルシステム。  The reconstruction control means stores in the status information recording area having a number exceeding the storage area unit number that actually exists, at least one of the elapsed time from the time of the reconstruction, the number of erasures, and the parameters obtained therefrom. The file system according to any one of claims 1 to 8. 実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に使用不可な物理ブロック番号を記憶する請求項1〜9の何れかに記載のファイルシステム。  The file system according to any one of claims 1 to 9, wherein an unusable physical block number is stored in a status information recording area having a number exceeding a storage area unit number that actually exists. 使用不可な物理ブロック番号を高速にアクセス可能な記憶領域に記憶する請求項1〜10の何れかに記載のファイルシステム。  The file system according to claim 1, wherein an unusable physical block number is stored in a storage area accessible at high speed. 前記不揮発性半導体記憶装置のメモリセルに多値を記憶させる請求項1に記載のファイルシステム。The file system according to claim 1, wherein multiple values are stored in a memory cell of the nonvolatile semiconductor memory device. 複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、該消去ブロックが論理的により小さく分割された記憶領域単位および該消去ブロックの状態情報を用いてファイルを管理するファイルシステムの制御方法において、
該消去ブロックに含まれる無効な該記憶領域単位を開放するブロックの再構築処理は、該消去ブロック毎にブロックを再構築した日付を所定の記憶領域に記憶しておき、該日付から一定の期間が経過したブロックを優先的に処理するファイルシステムの制御方法。
For a non-volatile semiconductor memory device composed of a plurality of erase blocks and capable of erasing data in block units, the erase block is logically divided into smaller storage areas and the erase block status information. In a file system control method for managing files,
The reconstruction process of the block that releases the invalid storage area unit included in the erase block stores the date of rebuilding the block for each erase block in a predetermined storage area, and starts a certain period from the date. A file system control method that preferentially processes blocks that have passed.
各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納しておき、該経過時間の計算結果に基づいて、一定の期間が経過したブロックを、優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。The calculation result of calculating the elapsed time from the most recent block reconstruction for each block is stored in a table format in a storage area accessible at high speed, and based on the calculation result of the elapsed time, The file system control method according to claim 13, wherein a block for which a certain period has elapsed is preferentially reconstructed. 前記消去回数が多いブロックほど、前記日付を基に予め定められる一定の短い周期でかつ優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。14. The file system control method according to claim 13 , wherein a block having a larger number of erases is preferentially reconstructed at a predetermined short period based on the date and preferentially. ブロックの消去回数と、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間とから算出した計算結果を、高速にアクセス可能な記憶領域に表形式で格納し、該計算結果を基に、一定の期間が経過したブロックを優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。Store the calculation results calculated from the number of block erasures and the elapsed time from the most recent block reconstruction for each block based on the date, in a high-speed accessible storage area in table format, The file system control method according to claim 13, wherein a block whose fixed period has elapsed is preferentially reconstructed based on the calculation result.
JP2001121823A 2001-04-19 2001-04-19 File system and control method thereof Expired - Fee Related JP3812933B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001121823A JP3812933B2 (en) 2001-04-19 2001-04-19 File system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001121823A JP3812933B2 (en) 2001-04-19 2001-04-19 File system and control method thereof

Publications (2)

Publication Number Publication Date
JP2002318729A JP2002318729A (en) 2002-10-31
JP3812933B2 true JP3812933B2 (en) 2006-08-23

Family

ID=18971622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001121823A Expired - Fee Related JP3812933B2 (en) 2001-04-19 2001-04-19 File system and control method thereof

Country Status (1)

Country Link
JP (1) JP3812933B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583859B2 (en) 2010-08-31 2013-11-12 Kabushiki Kaisha Toshiba Storage controller for wear-leveling and compaction and method of controlling thereof
US9627388B2 (en) 2014-06-11 2017-04-18 Samsung Electronics Co., Ltd. Memory system having overwrite operation control method thereof

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
JP5216244B2 (en) * 2007-05-31 2013-06-19 株式会社東芝 Data refresh apparatus and data refresh method
US7770079B2 (en) * 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
JP2009140564A (en) * 2007-12-06 2009-06-25 Toshiba Corp Nand flash memory and memory system
KR20100013485A (en) * 2008-07-31 2010-02-10 삼성전자주식회사 Memory device and method of wear leveling
JP5255389B2 (en) * 2008-09-29 2013-08-07 株式会社日立製作所 Storage device and memory control method
JP5422984B2 (en) 2008-12-08 2014-02-19 富士通株式会社 NONVOLATILE MEMORY, MEMORY CONTROL DEVICE, MEMORY CONTROL SYSTEM, AND NONVOLATILE MEMORY CONTROL METHOD
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
JP5593254B2 (en) * 2010-05-12 2014-09-17 パナソニック株式会社 Semiconductor memory device and semiconductor memory system
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8756458B2 (en) * 2011-12-12 2014-06-17 Apple Inc. Mount-time reconciliation of data availability
US9361201B2 (en) 2012-08-07 2016-06-07 Kabushiki Kaisha Toshiba Memory system and memory controller
JP2013137792A (en) * 2013-02-28 2013-07-11 Toshiba Corp Electronic device and method for controlling the same
JP2014178867A (en) * 2013-03-14 2014-09-25 Toshiba Corp Storage control device and storage control system
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
KR102250423B1 (en) 2015-01-13 2021-05-12 삼성전자주식회사 Nonvolatile memory system and operating method for the same
KR102277521B1 (en) 2015-01-23 2021-07-16 삼성전자주식회사 Storage device and read reclaim and reading method thereof
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
JP6306548B2 (en) * 2015-09-07 2018-04-04 Necプラットフォームズ株式会社 Memory management circuit, storage device, memory management method, and memory management program
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583859B2 (en) 2010-08-31 2013-11-12 Kabushiki Kaisha Toshiba Storage controller for wear-leveling and compaction and method of controlling thereof
US9627388B2 (en) 2014-06-11 2017-04-18 Samsung Electronics Co., Ltd. Memory system having overwrite operation control method thereof

Also Published As

Publication number Publication date
JP2002318729A (en) 2002-10-31

Similar Documents

Publication Publication Date Title
JP3812933B2 (en) File system and control method thereof
JP4256175B2 (en) Nonvolatile semiconductor memory
KR101122485B1 (en) Memory system
US8713380B2 (en) Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
TWI574270B (en) Wear leveling for a memory device
US11853205B2 (en) Memory device with dynamic cache management
US8737148B2 (en) Selective retirement of blocks
JP4188744B2 (en) Memory card
TWI356996B (en) Card controller controlling semiconductor memory i
US5379262A (en) Nonvolatile semiconductor memory device
JPH05282889A (en) Nonvolatile semiconductor memory
KR20160043121A (en) Non-volatile memory with dynamic multi-mode operation
KR20090042039A (en) Data management method for nonvolatile memory device
US9465539B2 (en) Operation management in a memory device
US20120124302A1 (en) Solid state storage system for uniformly using memory area and method controlling the same
US9053011B2 (en) Selective protection of lower page data during upper page write
US8732391B2 (en) Obsolete block management for data retention in nonvolatile memory
JP5494086B2 (en) Nonvolatile storage device and nonvolatile memory controller
US9442842B2 (en) Memory system performance configuration
US20200097215A1 (en) Adaptive solid state device management based on data expiration time
JP3672576B2 (en) Nonvolatile semiconductor memory device
JP2006323499A (en) Semiconductor device
JP2005316793A (en) Flash memory system and control method of flash memory
JP5264459B2 (en) Semiconductor memory device
JP2009211202A (en) Memory system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060529

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3812933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130609

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees