JP3812933B2 - ファイルシステムおよびその制御方法 - Google Patents
ファイルシステムおよびその制御方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、フラッシュメモリを含む不揮発性メモリなどの不揮発性半導体記憶装置および、これらを用いたメモリカードなどのデータ再構築方法および、データのリフレッシュ管理方法を採用したファイルシステムおよびその制御方法に関する。
【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の乗数で表し、2102=約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)
Claims (16)
- 複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、該消去ブロックが論理的により小さな記憶領域単位に分割され、該消去ブロックおよび記憶領域単位の状態情報を用いてファイルが管理され、かつ該消去ブロックに含まれる無効な該記憶領域単位を開放するブロックの再構築動作を行うファイルシステムにおいて、
該消去ブロック毎にブロックを再構築した日付を所定の記憶領域に格納する再構築日付記憶手段と、該再構築日付記憶手段にて記憶した日付から一定の期間が経過したブロックを優先的に再構築処理する再構築制御手段とを有したファイルシステム。 - 前記再構築制御手段は、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第1計算結果格納手段と、該経過時間の計算結果を基に、一定の期間が経過したブロックを、優先的に再構築する第1再構築処理手段とを有する請求項1記載のファイルシステム。
- 前記再構築制御手段は、前記ブロックの消去回数を計数する消去回数計数手段と、その計算結果を高速にアクセス可能な記憶領域に表形式で格納する第2計算結果格納手段と、該第2計算結果格納手段にて記憶する消去回数が多いほど、前記日付を基に予め定められる一定の短い周期でかつ優先的に再構築する第2再構築処理手段とを有する請求項1記載のファイルシステム。
- 前記再構築制御手段は、前記ブロックの消去回数を計数する消去回数計数手段と、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算する再構築経過時間計算手段と、その消去回数および経過時間を、高速にアクセス可能な記憶領域に表形式で格納する第3計算結果格納手段と、該消去回数および経過時間からパラメータを算出するパラメータ計算手段と、該パラメータ計算手段で計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納するパラメータ格納手段と、該パラメータに基づいて、一定の期間が経過したブロックを優先的に再構築する第3再構築処理手段とを有する請求項1記載のファイルシステム。
- 前記再構築制御手段は、電源投入時、システムリセットからの復帰時、再構築動作を一定期間行わなかった場合の少なくとも何れかのときに、再構築動作を優先的に行う請求項1〜4の何れかに記載のファイルシステム。
- メモリセルの特性が劣化したことを検出するメモリセル特性劣化検出手段を有し、該メモリセル特性劣化検出手段がメモリセル特性の劣化を検出した場合に、その劣化が検出されたメモリセルを含む記憶領域単位および消去ブロックに対して再構築動作を優先的に行う請求項1〜5の何れかに記載のファイルシステム。
- 前記消去回数と再構築年月から求めた計算結果として10の乗数で表し、その計算式に該乗数を用いる請求項3または4記載のファイルシステム。
- 前記再構築日付記憶手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に再構築日付を記憶させる請求項1〜7の何れかに記載のファイルシステム。
- 前記再構築制御手段は、実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に、前記再構築時からの経過時間、消去回数および、これらから得たパラメータの少なくとも何れかを記憶させるようにする請求項1〜8の何れかに記載のファイルシステム。
- 実際に存在する記憶領域単位番号を超える番号の状態情報記録領域に使用不可な物理ブロック番号を記憶する請求項1〜9の何れかに記載のファイルシステム。
- 使用不可な物理ブロック番号を高速にアクセス可能な記憶領域に記憶する請求項1〜10の何れかに記載のファイルシステム。
- 前記不揮発性半導体記憶装置のメモリセルに多値を記憶させる請求項1に記載のファイルシステム。
- 複数個の消去ブロックによって構成されブロック単位でデータを消去可能とする不揮発性半導体記憶装置に対して、該消去ブロックが論理的により小さく分割された記憶領域単位および該消去ブロックの状態情報を用いてファイルを管理するファイルシステムの制御方法において、
該消去ブロックに含まれる無効な該記憶領域単位を開放するブロックの再構築処理は、該消去ブロック毎にブロックを再構築した日付を所定の記憶領域に記憶しておき、該日付から一定の期間が経過したブロックを優先的に処理するファイルシステムの制御方法。 - 各ブロック毎に直近に行ったブロックの再構築時からの経過時間を計算した計算結果を、高速にアクセス可能な記憶領域に表形式で格納しておき、該経過時間の計算結果に基づいて、一定の期間が経過したブロックを、優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。
- 前記消去回数が多いブロックほど、前記日付を基に予め定められる一定の短い周期でかつ優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。
- ブロックの消去回数と、前記日付を基に各ブロック毎に直近に行ったブロックの再構築時からの経過時間とから算出した計算結果を、高速にアクセス可能な記憶領域に表形式で格納し、該計算結果を基に、一定の期間が経過したブロックを優先的に再構築の対象ブロックとする請求項13に記載のファイルシステムの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001121823A JP3812933B2 (ja) | 2001-04-19 | 2001-04-19 | ファイルシステムおよびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001121823A JP3812933B2 (ja) | 2001-04-19 | 2001-04-19 | ファイルシステムおよびその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002318729A JP2002318729A (ja) | 2002-10-31 |
JP3812933B2 true JP3812933B2 (ja) | 2006-08-23 |
Family
ID=18971622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001121823A Expired - Fee Related JP3812933B2 (ja) | 2001-04-19 | 2001-04-19 | ファイルシステムおよびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3812933B2 (ja) |
Cited By (2)
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)
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 (ja) * | 2007-05-31 | 2013-06-19 | 株式会社東芝 | データリフレッシュ装置、及びデータリフレッシュ方法 |
US7770079B2 (en) * | 2007-08-22 | 2010-08-03 | Micron Technology Inc. | Error scanning in flash memory |
JP2009140564A (ja) * | 2007-12-06 | 2009-06-25 | Toshiba Corp | Nand型フラッシュメモリおよびメモリシステム |
KR20100013485A (ko) * | 2008-07-31 | 2010-02-10 | 삼성전자주식회사 | 메모리 장치 및 웨어 레벨링 방법 |
JP5255389B2 (ja) * | 2008-09-29 | 2013-08-07 | 株式会社日立製作所 | 記憶装置およびメモリ制御方法 |
JP5422984B2 (ja) * | 2008-12-08 | 2014-02-19 | 富士通株式会社 | 不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法 |
US7859932B2 (en) * | 2008-12-18 | 2010-12-28 | Sandisk Corporation | Data refresh for non-volatile storage |
JP5593254B2 (ja) * | 2010-05-12 | 2014-09-17 | パナソニック株式会社 | 半導体メモリ装置及び半導体メモリシステム |
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 (ja) * | 2013-02-28 | 2013-07-11 | Toshiba Corp | 電子機器及びその制御方法 |
JP2014178867A (ja) * | 2013-03-14 | 2014-09-25 | Toshiba Corp | ストレージ制御装置、及びストレージ制御システム |
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 (ko) | 2015-01-13 | 2021-05-12 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
KR102277521B1 (ko) | 2015-01-23 | 2021-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 리드 리클레임 및 읽기 방법 |
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 (ja) * | 2015-09-07 | 2018-04-04 | Necプラットフォームズ株式会社 | メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
-
2001
- 2001-04-19 JP JP2001121823A patent/JP3812933B2/ja not_active Expired - Fee Related
Cited By (2)
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 (ja) | 2002-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3812933B2 (ja) | ファイルシステムおよびその制御方法 | |
JP4256175B2 (ja) | 不揮発性半導体メモリ | |
KR101122485B1 (ko) | 메모리 시스템 | |
US8713380B2 (en) | Non-volatile memory and method having efficient on-chip block-copying with controlled error rate | |
TWI574270B (zh) | 記憶體裝置之平均抹寫 | |
US11853205B2 (en) | Memory device with dynamic cache management | |
US8737148B2 (en) | Selective retirement of blocks | |
JP4188744B2 (ja) | メモリカード | |
TWI356996B (en) | Card controller controlling semiconductor memory i | |
US5379262A (en) | Nonvolatile semiconductor memory device | |
JPH05282889A (ja) | 不揮発性半導体メモリ装置 | |
KR20160043121A (ko) | 동적 멀티 모드 동작의 비휘발성 메모리 | |
KR20090042039A (ko) | 불휘발성 메모리 장치의 데이터 관리 방법 | |
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 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
US9442842B2 (en) | Memory system performance configuration | |
US20200097215A1 (en) | Adaptive solid state device management based on data expiration time | |
JP3672576B2 (ja) | 不揮発性半導体メモリ装置 | |
JP2006323499A (ja) | 半導体装置 | |
JP2005316793A (ja) | フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP5264459B2 (ja) | 半導体記憶装置 | |
JP2009211202A (ja) | メモリシステム |
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 |