JP3822171B2 - 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 - Google Patents
不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 Download PDFInfo
- Publication number
- JP3822171B2 JP3822171B2 JP2003026478A JP2003026478A JP3822171B2 JP 3822171 B2 JP3822171 B2 JP 3822171B2 JP 2003026478 A JP2003026478 A JP 2003026478A JP 2003026478 A JP2003026478 A JP 2003026478A JP 3822171 B2 JP3822171 B2 JP 3822171B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- file
- semiconductor memory
- written
- 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
- 238000000034 method Methods 0.000 title claims description 44
- 239000004065 semiconductor Substances 0.000 title claims description 26
- 230000015654 memory Effects 0.000 claims description 42
- 238000007726 management method Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 19
- 238000001514 detection method Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 7
- 239000000758 substrate Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000012141 concentrate Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、不揮発性半導体メモリに係り、特に電気的に書き換え可能な不揮発性半導体メモリ素子(EEPROM)のうちのNAND型EEPROMを用いた不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法に関する。
【0002】
【従来の技術】
コンピュータの2次記憶装置には、現在磁気ディスク装置が広く用いられているが、近年、電気的に書き換え可能な不揮発性半導体メモリ(EEPROM)が、その機械的強度に対する信頼性、低消費電力、可搬性の良さ、高速アクセスといった特徴を生かして、磁気ディスクを置き換えるような用途に使われだした。しかし、磁気ディスク装置とEEPROMには機能的な相違点があるため、従来の磁気ディスク装置をそのまま置き換えるためには、これを埋めるための制御が必要となる。
【0003】
EEPROMの一つとして、高集積化が可能なNAND型EEPROMが知られている。これは、複数のメモリセルをそれらのソース、ドレインを隣接するもの同士で共有する形で直列接続して一単位とし、ビット線に接続するものである。メモリセルは通常、電荷蓄積層と制御ゲートが積層されたFETMOS構造を有する。メモリセルアレイは、p型基板、又はn型基板に形成されたp型ウェル内に集積形成される。NANDセルのドレイン側は選択ゲートを介してビット線に接続され、ソース側はやはり選択ゲートを介して、ソース線(基準電位配線に接続される(図21))。メモリセルの制御ゲートは、行方向に連続的に接続されてワード線となる。通常同一ワード線につながるメモリセルの集合を1ページと呼び、一組のドレイン側及びソース側の選択ゲートに挟まれたページの集合を1NANDブロック又は単に1ブロックと呼ぶ(図22)。通常1ブロックは独立に消去可能な最小単位となる。
【0004】
NAND型EEPROMの動作は次の通りである。データの消去は1NANDブロック内のメモリセルに対して同時に行われる。即ち選択されたNANDブロックの全ての制御ゲートを基準電位VSSとし、p型ウェル及びn型基板に高電圧VPP(例えば20V)を印加する。これにより、全てのメモリセルにおいて浮遊ゲートから基板に電子が放出され、しきい値は負の方向にシフトする。通常この状態を”1”状態と定義する。またチップ消去は全NANDブロックを選択状態にすることによりなされる。
【0005】
データの書き込み動作は、ビット線から最も離れた位置のメモリセルから順に行われる。NANDブロック内の選択された制御ゲートには高電圧VPP(例えば20V)を印加し、他の非選択ゲートには中間電位VM(例えば10V)を与える。またビット線にはデータに応じて、VSS又はVMを与える。ビット線にVSSが与えられたとき(”0”書き込み)、その電位は選択メモリセルに伝達され、浮遊ゲートに電子注入が生ずる。これによりその選択メモリセルのしきい値は正方向にシフトする。通常この状態を”0”状態と定義する。ビット線にVMが与えられた(”1”書き込み)メモリセルには電子注入は起らず、従ってしきい値は変化せず負に留まる。データの読み出し動作はNANDブロック内の選択されたメモリセルの制御ゲートをVSSとして、それ以外の制御ゲート及び選択ゲートをVCCとし選択メモリセルで電流が流れるか否かを検出することにより行われる。
【0006】
NAND型EEPROMではデータの書き込みはソース線に近いページからドレイン側のページに順に行なわれる必要がある。その必要性を図23を参照して以下に説明する。”1”書き込みは中間電位VM(10V程度)を選択メモリセルのドレインに転送し、電子の注入を起こさせず消去状態(即ち負のしきい値)を保つ。図23は制御ゲート1が選択状態(VPP)のときを示している。よって制御ゲート2は非選択でVMが与えられている。またドレインにもVM(”1”書き込み)が与えられている。図23(a)はソース側から書き込みを行なったときの図、図23(b)はドレイン側から書き込みを行なった場合のものである。図23(a)の場合ドレイン側のセルMa2のしきい値は負であるので、ドレインの電位VMは確実にソース側セルMa1に転送される。しかしながら、図23(b)の場合ドレイン側セルMb2にすでに”0”書き込み動作がなされ、正のしきい値(たとえば3.5V)を持っていたとすると、ソース側セルMb1に”1”を書き込む際、セルMb1にはVMからセルMb2のしきい値電圧分差し引いた電圧しか転送されてこない。よってセルMb1では制御ゲートと基板間の電位差が大きくなって誤書き込みが起こる可能性がある。以上のようにソース側から順に書き込む手段は誤書き込みを防ぐ意味で重要である。
【0007】
従来の磁気ディスク装置では、データの読み出しや書き込みといったアクセスは、セクタを単位として行われている。磁気記録媒体上に同心円状に形成される記憶領域の1本1本はトラックと呼ばれているが、このトラックがさらに数十個の領域に分割されてセクタと呼ばれる記憶単位が形成されている。パーソナルユースの携帯型コンピュータに使用されている典型的磁気ディスク装置の1セクタの容量は512バイトである。
【0008】
また、コンピュータが磁気ディスク装置にデータを記憶させる場合の一塊のデータをファイルと呼んでいるが、このファイルが記憶装置上のどの場所に記憶されているのかを管理するのが、オペレーティングシステム(以下OS)の重要な機能の一つである。
【0009】
図24は、パーソナルユースの携帯型コンピュータに使用されている典型的なOSの一つであるMS−DOSがファイル管理をするために磁気ディスク装置の記憶領域をどの様に使用しているかを示す図である。61のブート領域はコンピュータが起動するときに必要な情報が納められている領域で、ユーザファイルの管理には関わらない領域である。64のルートディレクトリ領域には、ファイルの名前とそれに付随する情報を記録したファイル管理用テーブルが納められている。ルートディレクトリにより他のデータファイルと同様な扱いで管理されるが、その内容はルートディレクトリと同一の、サブディレクトリと呼ばれるものがデータ領域に階層的に存在し得る。これらは、存在する領域と階層中での順位を除いて機能的には同じものであるので総称して単にディレクトリと呼ばれる。ディレクトリ中の1つのファイルに関する情報は32バイトの領域を占めていてその内容は図25に示すようになっている。磁気ディスク装置のデータ記録がセクタを単位としていることは先に述べたが、ファイルに対してディスク上の領域を割り当てるにはクラスタという論理的単位を用いる。1クラスタは、2のべき乗倍個のセクタで構成されるようにディスクの種類によって決められている。図25の66のスタートクラスタ番号とはファイルの先頭に割り当てられたクラスタの番号である。図24の62のFAT領域には、65のデータ領域中のクラスタがどの様な順につながって、1つのファイルを構成しているのかを表すデータ領域へのファイル割当情報が納められている。63はFAT領域62のバックアップである。以上のように、MS−DOSのファイル管理は、FAT領域とルートディレクトリ領域の情報をもとに行われるが、これらの領域の位置と大きさは、ディスクの種類ごとに決められていて固定である。
【0010】
NAND型EEPROMのアクセスの単位は前述の通りページである。4MビットのNAND型EEPROMを例に取ると、1ページは512バイトで、1ブロックは8ページで構成されている。よって、磁気ディスク装置をNAND型EEPROMで置き換えるような応用においては、ディスクの1セクタをNAND型EEPROMの1ページに対応させると変換が容易である。しかしながら磁気ディスク装置をEEPROMで置き換えようとする場合に問題となる大きな相違点の一つに、データの書き換え可能回数がある。磁気ディスク装置の場合、媒体上に記録されるデータの書き換え回数には制限がなく、その寿命はヘッドと磁気記録媒体が接触することによる損傷といった機械的な要因に支配されている。一方EEPROMの場合は、データの書き換え可能回数が現状の技術では104 ないし105 回程度しかない。
【0011】
また、前述のように、磁気ディスク装置の1セクタに記録される”データ”量は512バイトであるが、このデータ量とはユーザが記録再生する情報の量で、セクタ内にはこの他にも、記録再生制御に必要な情報が追加して書き込まれてある。そういった情報の一つに誤り訂正コード(以下ECCコード)がある。これは、媒体の欠陥やノイズの影響等で、ユーザのデータが正しく読み取れなかった場合に、読み取りデータに誤りがあることを検出したり、さらにその誤りを訂正したりするための情報で、セクタにデータを書き込むときに、ECC発生回路が記録されるデータをもとに計算し、データとともに媒体上に書き込まれる。
【0012】
NAND型EEPROMのアクセス単位はページであり、多少の相違はあるものの、これを磁気ディスク装置のセクタに相当するものと見なすことができる。信頼性を向上させるため、磁気ディスク装置のように、1ページの物理的な容量をユーザデータが記録再生される情報量より多くして、その冗長分をECCに割り当てることは有効な施策の一つである。
【0013】
従来の磁気ディスク装置では、これを記憶装置として使用するために、フォーマットと呼ばれる初期化が必要とされる。フォーマットにより、磁気記録媒体上には一連の複数セクタが円周上に並んだトラックが形成され、さらにこのトラックが同心円状に複数(通常数百〜千数百)本形成される。このとき、各セクタは、ユーザデータ領域に特定の初期化パターンが書き込まれるとともに、記録再生制御に必要な情報が書き込まれる。ECCも初期化パターンから計算されたものが書き込まれる。一方、NAND型EEPROMは、先の説明からわかるように、一度書き込みを行ったページに対しては、磁気ディスク装置で行われるような重ね書きをすることは出来ない。例え1ページでもデータを書き換えるためには、複数のページからなるブロックを単位として消去を行う必要があるから、消去されるブロックの他のページは、必要によって待避させて消去後に書き戻すこともしなければならない。よって、消去後のページは、有効なユーザデータを書き込むときまで消去状態に保っていた方が好都合の場合が多い。
【0014】
【発明が解決しようとする課題】
磁気ディスク装置の場合、装置に保証された寿命時間を20000動作時間、この内の数分の1がデータの書き換えに費やされる時間であるとすると、ファイル管理領域等の特定の記憶領域に対して最悪で109 回程度の書き換えが行われると見積もることができる。これに対してNAND型EEPROMは、前述の通り、書き換え可能回数は105 回程度であるから、磁気ディスク装置と同様の使い方をすると、1ブロックのみに書き込みが集中するという最悪の場合に、1万分の1の回数しか書き込みを行うことが出来ない。実際のデータの書き込み位置は記憶領域内に分散するので、その分、見かけの書換回数はこれよりは増加する。ところが、1度書き込まれた後に長期間消去されないデータが存在すると、書き込み可能領域が狭くなったのと等価であるから、それだけ書き換えできる回数が減少する。
【0015】
また、OSによるファイル管理のように、一般に、ファイルはデータ領域の空いた領域であればどこに記録されてもよく、その場所はディレクトリとFATのようなテーブルで管理されている。よって、書き換え可能回数に制限があるEEPROMにこのようなファイル管理を適用しても、ファイルに関しては、同一場所への書き換えが集中しないように書き込み位置を分散させるのは容易である。ところが、ファイルを書き込んだり書き換えたりした場合には必ずファイル管理テーブルの内容の書き換えが発生するので、これらのテーブルデータが書き換えられる頻度は、個々のデータファイルが書き込まれる頻度に比べてかなり多い。しかも、このテーブルはファイルの記録場所を検索するおおもとの情報であるから、いつも決まった位置に記録されている必要がある。よって、EEPROMをファイル記憶装置に応用した場合、この管理テーブル領域に集中した書き換えによって、短時間で寿命に至ってしまうおそれがあるという問題があった。
【0016】
さらに、前述の説明から分るように、磁気ディスク装置では、有効なユーザデータが書き込まれる前のセクタも、ユーザデータの書き込まれたセクタと同様にECCによるチェックを行って何等差し支えない。これに対して、消去後のページが有効なユーザデータを書き込むときまで消去状態に保たれるように制御されたNAND型EEPROMでは、有効なユーザデータが書き込まれる前のページを読み出すと、ECCを含めたページ内の情報は全て”1”になっているから、ECC検査回路は誤りがあるという判定を下してしまう。
【0017】
通常、ホストコンピュータのオペレーティングシステムは、有効なデータの書かれていないページのみを読み出そうとすることはないが、複数のページをファイル管理の単位としている場合に、既に有効なデータの書かれたページと一緒に読み込もうとすることは有り得る。また、ページの書き換えにともなってブロック消去をするときに、消去されるブロック内の他のページに、既に書き込みがされているのか否かを、データの待避を制御する手段が知り得ないような制御装置の場合には、消去状態のページもバッファに読み込まなくてはならない。こうした場合に、消去状態のページのデータに対してECC検査回路が働いてしまうと、上述のように、本来は正常なページであるにもかかわらず、誤りが発生したと誤認され、エラー処理に制御が移ってしまい、処理を正常に進めることが出来なくなってしまう。
【0018】
本発明の目的は、磁気ディスク装置と同等の寿命を実現することができ、また高信頼性を確保することができる不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法を提供することである。
【0019】
【課題を解決するための手段】
上記課題を解決するために、本発明は、一端がソース線に、他端がビット線に、隣接するソース及びドレインが互いに接続される複数のメモリセルと、ファイル記憶位置の関連情報は、あらかじめ消去されたメモリセル領域に対して、更新の都度、ソース線側のメモリセルからビット線側のメモリセルの方向へ順番に書き込まれ、ビット線に最も近い位置の書き込みデータを最新の関連情報とする管理手段とを備えることを要旨とする。
【0020】
【作用】
上記構成において、第1に、データの書き込みが複数の記憶領域に対し一方向に循環して行われるので書き込みが特定の記憶領域に集中することなく、複数の記憶領域全体に均一に行われる。また、書き込まれた後、長期間変更を受けることなく同じ場所に留まっているデータは複数の記憶領域全体と比較した書き込み回数に不均衡が生じないように移動させられるので、見かけの書き込み領域が狭まって寿命を縮めてしまうことが防止される。
【0021】
第2に、書き込まれたデータが変更されていない記憶領域の選択が、書き込みの1循環周期を以って行われることにより、見かけの書き込み領域を狭めることが一層適切に防止される。
【0022】
第3に、書き換え頻度の高い管理テーブルのメモリ手段上での記録位置が固定されず、またこの管理テーブルの位置を示すポインタを複数階に階層化して記録することにより、検索のため固定した位置に記録されなければならないポインタの書き換え回数が他の領域と同等に抑えられて特定の記憶領域に書き込みが集中して短時間で寿命に至ってしまうことが防止される。
【0023】
第4に、読み出されたデータからその記憶領域であるページ等が消去状態であるかどうかが検出されて誤り検出手段の検出結果に誤りがでることが防止される。これにより、消去状態のページ等がデータの書き込まれたページ等と区別無く読み出されるような制御が行われる場合にも、読み出しデータの正確な誤り検出が行われて高い信頼性が確保される。
【0024】
【実施例】
以下、本発明の実施例を図面を参照して説明する。本実施例は、NAND型EEPROMを用いた不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法に適用されている。
【0025】
図1ないし図9は、本発明の第1実施例を示す図である。まず、図2は、メモリ手段であるEEPROMにおける記憶領域の構成を示している。同図の31〜36は、管理の単位となる容量で区切られた複数の記憶領域であり、消去単位と同一或いはその整数倍とすると扱いが簡単になるが、それに限定されるものではない。また、本実施例では以下この単位記憶領域を単にブロックと称するが、これはNAND型EEPROMの消去単位であるブロックと解釈しても構わないがそれに限定されるものでもない。各ブロックに付けられた番号は、各ブロックを順位付けするためのもので、物理的なアドレス順とするのが分りやすいが、特定の規則に従った論理的な順位であっても構わない。以後簡単のために、ここで説明に使用するメモリ手段は6個のブロックで構成されていることにする。
【0026】
図1は、上記ブロック31〜36への書き込みを管理するためのテーブルである。11〜16の各項目は、ブロック31〜36の状態を示すもので、21〜23に図示されるように3つのフラグで構成されている。即ち、ブロックに有意なデータが記録されているか否かを管理する第3の管理手段としてのフラグ(以下、有効フラグ又はVフラグ)23と、有効フラグとともに参照することで、データの書き込みをブロックの順位にしたがって1方向に向かって、かつ循環して使用されるように管理するための第1の管理手段としてのフラグ(以下、消去フラグ又はEフラグ)21と、ブロックに記録されたデータが或る時点から後に変更されたか否かを管理する第2の管理手段としてのフラグ(以下、変更フラグ又はCフラグ)22である。
【0027】
次に、図面とフローチャートを使用して、本実施例の書き込み方式を説明する。なお、書き込まれたデータを読み出すためには、書き込んだデータのタグ(例えばファイル名)と書き込んだ位置の対応を管理する手段が必要であるが、これは通常のファイルシステム(OS)で行われている方法を適用可能なので本実施例では説明を省略する。
【0028】
図3及び図4はデータ書き込みの手順を示すフローチャート、図5はデータ消去の手順を示すフローチャート、図6はデータの書き換え手順を示すフローチャート、図7は書き込み手順中で使用されるサブルーチンのフローチャートである。図8及び図9はデータの書き込みによって、図2で示した記憶領域と図1で示したそれを管理するテーブルの状態の変化を同時に説明するための図である。図8及び図9の記憶領域を示す図中の斜線のブロックは有効なデータが書き込まれている領域を示すものとする。
【0029】
まずメモリ装置が使用される前には、図8(a)に示されるように全てのフラグが”0”に初期化されるものとする。この状態で第1ブロックの書き込みを行うことを考える。図3のステップ201で必要な容量が空いていることをチェックする。次に、この方式では有意なデータが記録されているか否かを管理するVフラグと一方向に向っての循環使用を管理するEフラグの両方が”0”のブロックにしか書き込みを行わないので、この条件に合うブロック検索を行う(図3ステップ202,203、図7ステップ301〜304)。条件に合うことが確認された後、第1ブロックにデータを書き込んで(図3ステップ204〜206)、CフラグとVフラグを”1”にする(図3ステップ207、図8(b))。今書き込んだデータを即書き換えると、図5の手順に従って、第1ブロックのVフラグ”0”に、Eフラグを”1”に変更し、初回の書き込みと同じ手順で検索される第2ブロックにデータを書き込む(図8(c))。これで第1ブロックは論理的な消去状態になるが、電気的な消去は別に行わなければならない。バックグラウンドで行われるのが処理速度の面で好ましいが、その方法は本実施例の本質から外れるので説明は省略する。以下の説明ではデータが書き込まれる前にこれらのブロックに電気的な消去は何らかの方法で済んでいることと仮定する。
【0030】
こうした書き込み処理が続くと、データは、ブロック番号順にメモリ全体に一様に書き込まれ、例えば図8(d)に示すような状態になる。ここで例えば1ブロック分のデータの書き込みをしようとすると、空き領域はあるが、図3のステップ203の検索で失敗する。検索に失敗したという状態は、ブロックの空き領域に対する一様な書き込みが一巡したことを示している。よって、次の一巡の単一方向書き込みを制御するために全てのブロックに対するEフラグを”0”にクリアする(図3ステップ209、図8(e))。
【0031】
単一方向循環による一様書き込みとともに本実施例を特徴づけるのは長期間同じ場所に留まるデータを移動させる点である。これを実現するためには、移動を行うのに適当な、書き込み回数に関連したタイミングが必要となるが、その一つとしてEフラグが全てクリアされる時点を利用する。図3では、この時点におけるステップ210〜213の処理でCフラグを検査することにより、移動対象のデータを選択している。図8(e)では、全てのブロックのCフラグが”1”になっているが、これは、Cフラグが初期化された時点から図8(e)の状態になるまでに、全てのブロックが最低1回は書き換えられていることを示している。この場合は、どのデータがより長く同じブロックを占有しているのか判断できないのでステップ214で初期化し直す(図8(f))。その後、この一連の処理を起動させた第1ブロックのデータ書き込みを行う(図4ステップ224〜228,206、図9(a))。
【0032】
さらに、第5ブロックのデータが消去されて図9(b)の状態になり、第2ブロックの書き込みと第1ブロックの消去があって図9(c)の状態になったとする。書き込みパターンの最後として、この時点で第1ブロックの書き込みを行う場合を考える。書き換えはもう一巡したので書き込み可能領域の検索には失敗し、Eフラグが全てクリアされる(図9(d))。続いてCフラグの検査が行われるが、今度は、第2ブロックのCフラグが”0”であるので、このブロックのデータは比較的長期間書き換えが行われていないと判断し移動の対象にする。移動先の書き込み可能ブロックは、図3のステップ215〜220の手順に従って、移動対象データの入ったブロックを起点に書き込みが進行する方向へ循環して検索される。この例では、第4ブロックが該当するので、第2ブロックはここにデータがコピーされた後消去される(図4ステップ221〜223、図9(e))。これにより、図8(c)の時点からずっと第2ブロックを占有していたデータが移動され、このブロックが書き換え可能になる。
【0033】
あとは図9(c)の時点で要求された1ブロック分のデータを空きブロックに書き込めばよいのであるが、通常の書き込みと同様に書き込み可能ブロックを検索しても失敗してしまう場合が有り得る。即ち図9(c)の時点で空きブロックが丁度1個しかなかった場合で、このときは、この空きブロックに移動対象データが入り、移動対象データが元々入っていたブロックのEフラグが”1”となっているので検索に引っかからない。よって図4のステップ227で示したようにEフラグをクリアする処理が必要である。移動対象のデータが元々入っていたブロックのEフラグを”0”のままにしておくような制御を行えばこの様なことはなくなるが、そのかわりに、他に空きブロックが有るにもかかわらず、移動直後のブロックが書き換え可能ブロックとして検索され、バックグラウンドの電気的消去が間に合わないという様なことが起り得る。
【0034】
次いで、図10ないし図14には、本発明の第2実施例を示す。本実施例では、不揮発性半導体メモリとして4MビットNAND型EEPROMを用いることを仮定する。また、実施例の要点を簡略に説明するため、MS−DOSのクラスタに相当する記憶領域の論理的な管理の単位をNAND型EEPROMの消去単位であるブロックと一致させるものとする。また、本実施例ではユーザファイル、ファイルの記録位置を管理するテーブル及びそのテーブルへの階層化されたポインタのうちその位置が固定されないものは、記憶領域中の特定の領域に記録される必要がないので、出来得る限り書き込みが記憶領域全体に分散されるように制御されるべきである。しかしながら、本実施例は、ファイルの位置を管理するテーブルが記憶領域中の特定の領域に固定されずに済む手法を説明するためのものなので、分散書き込み制御がされることを前提とするが、その詳細については触れない。
【0035】
図11は、ファイルの記録された位置を管理するためのテーブルの一つを構成するブロックの1例であり、ここでは仮にルート管理テーブルと呼ぶことにする。図11の38はMS−DOSのFATと同様な構成で記憶領域全体のブロック割当状況を管理するためのテーブルであるが、本実施例では、ユーザーファイルのみならず、ファイル管理テーブル自身やそのポインタといった管理情報の記録されたブロックの位置も動くので、それらの割当も併せて管理されるものとする。図11の39はブロックの割当情報がこのブロック内に納まらなかった場合に使用される追加ブロックの位置や、MS−DOSのディレクトリに相当するファイル名とそれに付随する情報に関する管理テーブル等の位置を示すポインタであるとする。即ち、図11に示す管理テーブルをアクセスできれば、ファイル管理に関する情報は全てアクセス可能になるものとする。
【0036】
図12は、ルート管理テーブルの記録された位置を示すために、記録された位置を階層的に示すように構成されたポインタが記録されるブロックの1例である。図12(a)の41〜48はNAND型EEPROMのページを表していて、48がソース側、41がドレイン側である。ポインタは1ページに納まる情報量とし、NAND型EEPROMの書き込みルールに従ってソース側から順に書き込まれてゆくものとする。図12(a)の46〜48の斜線のページは、更新されたポインタが書き込まれていたことを示し、41〜44の”NULL”は消去されたままのページであることを示す。同図(a)の第1のポインタを納めたブロックは、45のページの情報がルート管理テーブルの位置を示している。同図(b)の第mのポインタを納めたブロックは、同様の構成で、第(m−1)のポインタの位置を示すものとする。ポインタの数(階層数)をnとした場合、第1〜第(n−1)のポインタは、記憶可能な領域のどこに記録されてもよく、複数階のポインタを順に手繰ることでアクセスされる。第nのポインタ(以下、ルートポインタ)だけは、記憶領域の固定の位置に記録される。図10は、この複数階に設定されたポインタのつながりを示している。
【0037】
図13は、本実施例に係るファイル管理方式に必要なルート管理テーブルの更新に伴なって発生する処理の手順を示したフローチャートである。ルート管理テーブルの内容は、予めRAMに読み込まれて展開されており、更新はRAM上で行われた後に書き戻されるものとする。まず、ファイルの書き込み等でブロック割当に変更が生じると、変更されたルート管理テーブルを書き戻すブロックの位置を自身のブロック割当テーブルを参照して決定する(ステップ401)。次に、この位置をポインタに設定し、割当テーブルを更新してから書き込みを行う(ステップ402〜405)。図14のフローチャートのステップ501〜510は、階層化されたポインタにブロック位置を設定する手順を示している。この手順は、階層化されたポインタの設定を変更するために再帰的に呼び出される。
【0038】
次に、ポインタの階層数nの大きさの決め方を具体的に説明する。ファイルの書き込みによりブロックの割当に変更が起きると、その都度、ルート管理テーブルの内容が更新される。書き込みが特定ブロックに集中しないように、更新されたテーブル自体も別のブロックに書き込まれる。ルート管理テーブルの位置が変わったので第1のポインタの記録位置も更新される。ポインタの更新は同一ブロック内で8回(8ページ分)可能であるから、第1ポインタを納めたブロックは、ファイルの書き込みによるブロックの変更8回で一通りの書き込みが行われ、9回目の更新で位置が変わる。第2のポインタを納めたブロックは同様に、ファイルの書き込み64回に1回の割で書き換えが起きると見積もることが出来る。ここで仮に、不揮発性半導体メモリ装置の総容量を20Mバイトとすると、総ブロック数は1ブロックの容量が4kバイトであるから5120ブロックになる。EEPROMの書き換え可能回数をC回とし、これらのブロックに均一に書き込みが行われたとすると、延べ5120×Cブロックの書き換えが発生し得る。ファイル1ブロック分の書き換えに対して管理テーブル1ブロックの書き換えが発生するとすると、1回に付き2ブロックの書き換えが起きるからブロック割当の変更の発生回数は最高で5120×C÷2=2560×C回である。
【0039】
第nポインタを記録した固定ブロックの書き換えは、ブロック割当の変更8n回に1回の割合で起きる。また、このブロックも最高C回の書き換えが可能であるから、8n ×C=23n×C回までのブロック割当の変更なら、この固定ブロックの書き換え回数が他のブロックより先に限界に達することはない。よって、必要な階層数nは、23n×C=2560×Cn=log2 2560÷3 ≒4となる。
【0040】
図15ないし図20には、本発明の第3実施例を示す。図15は本実施例に係る不揮発性半導体メモリ装置の全体構成を示すブロック図である。同図において115はメモリ手段としてのNAND型EEPROMモジュールであり、複数個のページからなるブロックに分割されたメモリセルアレイで構成されている。EEPROMモジュール115はデータ線で結ばれたホストインターフェイス101を介して図示省略のホストシステムに接続されている。データ線上には、マルチプレクサ113及びデータバッファ107が設けられている。また、ホストインターフェイス101内には、データレジスタ102、アドレスレジスタ103、カウントレジスタ104、コマンドレジスタ105、ステータレジスタ106及びエラーレジスタ116が設けられている。108はコントロールロジック、109は誤り制御ロジック、114はアドレスジェネレータ、110は制御手段としての機能を有するCPU、111は作業用RAM、112は制御プログラムROMである。制御プログラムROM112には、データ書き込み等のための一連の制御プログラムが格納されている。
【0041】
図16は、誤り制御ロジック109の内部構成を示す図である。誤り検出手段としてのECC検査回路150、誤り検出/訂正コード発生手段としてのECC発生回路151及び消去検出手段としての消去検出回路152が備えられている。
【0042】
本実施例のメモリ装置は、不揮発性メモリ領域であるEEPROMモジュール115に記録されるデータに関し、必要に応じてメモリ領域の使用状況を管理するテーブルを使用する。このテーブルは、他のユーザ・データとともにEEPROMモジュール115に記録されるが、この装置が起動するときに自動的に作業用RAM111に読み込まれる。また、このテーブルは、更新される都度、或いは装置の使用が終了する時点でEEPROMモジュール115に書き戻されることとする。
【0043】
次に、この装置の動作をフローチャートを用いて説明する。ホストシステムは、図15のホストインターフェイス101内のアドレスレジスタ103にアクセス開始アドレスを、カウントレジスタ104にアクセスしたいデータのセクタ長をセットし、最後にコマンドレジスタ105に読み出し/書き込み等の命令をセットする。ホストインターフェイス101のコマンドレジスタ105にアクセス命令が書き込まれると、コントローラ内のCPU110は、コマンドレジスタ105内の命令を読み込み、制御プログラムROM112に納められたコマンド実行のための一連の制御プログラムを実行する。
【0044】
図17は、EEPROMモジュール115からデータを読み出す手順を示すフローチャートである。まず、図15のCPU110は、ホストインターフェイス101にセットされた開始アドレスから、読み出しを行うべきEEPROMモジュール115の物理的なアドレスを決定する(ステップ601)。次に、EEPROMモジュール115からデータバッファ107にデータを読み出す(ステップ602)。次いで、エラー処理及びデータバッファ107からホストシステムへのデータ転送等を実行する(ステップ603〜605)。
【0045】
図18及び図19は、EEPROMモジュール115からデータバッファ107にデータを読み出す手順を示すフローチャートである。CPU110は、EEPROMモジュール115をマルチプレクサ113を通してアクセスし読み出しモードに設定し、データバッファ107を読み出しモードに設定する(ステップ701,702)。アドレスジェネレータ114には、読み出しを行うべきEEPROMモジュール115の物理的なアドレスを設定する(ステップ703)。そして、データバッファ107に、読み出したデータを蓄えるべき領域を決定してその先頭番地をデータバッファ107への書き込みアドレスとして設定する(ステップ704)。その後、コントロールロジック108に対してデータ読み出しのための定められたシーケンスを実行するように指令を送る。
【0046】
コントロールロジック108は、マルチプレクサ113をEEPROMモジュール115からの読み出しデータがデータバッファ107に流れるように設定し、アドレスジェネレータ114の内容をインクリメントしながら、1セクタ分のデータを読み出す(ステップ705)。また、図16のECC検査回路150をこれらのデータ及びこれに付随して読み出されるECCコードを使って誤りを検出するように制御すると同時に、読み出されたデータが消去状態であるかどうかを検出するように消去検出回路152を制御する。消去検出回路152は、1セクタ分のデータ及びECCコードが全て消去後の状態である”1”であった場合に、CPU110からアクセス可能なレジスタに、消去状態を検出したことを示すコードをセットする。1セクタ分のデータが読み出されると、CPU110は、ECC検査回路150をチェックしデータの誤りを検査する(ステップ706)。誤りが検出されなかった場合は、データバッファからホストシステムにデータを転送する。誤りが検出されると、CPU110は次に消去検出回路152をアクセスし、消去状態が検出されていたならば、ECC検査回路150の結果を誤検出とみなしバッファ内のデータをホストシステムに転送する。ECC検査回路150が誤りを検出し、消去検出回路152も消去状態を検出しなかった場合で、検出された誤りが訂正可能な場合は、データバッファ107をアクセスして誤ったデータを訂正してからホストシステムにデータを転送する。
【0047】
もし、訂正不可能な誤りが検出された場合には、ホストシステムに対するデータ転送は行わずに、CPU110は、ホストインターフェイス101内のステータスレジスタ106にエラーが起きたことを示すコードを、エラーレジスタ116にエラーの内容を示すコードを設定し、ホストシステムに命令の実行が異常終了したことを通知して処理を終了する(ステップ707〜712)。
【0048】
図20は、データバッファからホストシステムにデータを転送する手順を示すフローチャートである。CPU110は、データバッファ107に読み出したデータが蓄えられた領域の先頭番地を同バッファからの読み出しアドレスとして設定し(ステップ801,802)、コントロールロジック108に対して、ホストシステムに1セクタ分のデータの転送を行うように指令する。コントロールロジック108は、データバッファ107とホストインターフェイス101を制御してホストシステムに対して1セクタ分のデータを転送し(ステップ803)、これが終了するとアドレスレジスタ103を1セクタ分進め、カウントレジスタ104から1を減じ、CPU108に転送が終了したことを通知する。ホストシステムに転送すべきデータが残っている限り、CPU110はこの制御を繰り返す。読み出しデータが全て転送されたら、CPU110は、ホストインターフェイス101内のステータスレジスタ106にエラーの無かったことを示すコードを設定し、ホストシステムに命令の実行が終了したことを通知して処理を終了する。
【0049】
【発明の効果】
以上説明したように、本発明に係る不揮発性半導体メモリ装置によれば、第1に、データの書き込みを複数の記憶領域に対して単一方向に循環して行うようにしたため、特定の記憶領域に集中することなく、書き込みを複数の記憶領域全体に均一に行うことができる。また、書き込まれた後、長期間変更を受けることなく同じ場所に留まっているデータは複数の記憶領域全体と比較した書きかえ回数に不均衡が生じないように移動させるようにしたため、見かけの書き込み領域が狭まって寿命を縮めてしまうことを防止することができる。したがって同一記憶場所の書き換え回数に制限があるにもかかわらず、磁気ディスク装置と同等の寿命を実現することができて用途を拡大することができる。
【0050】
第2に、書き込まれたデータが変更されていない記憶領域の選択を、書き込みの1循環周期を以って行うようにしたため、見かけの書き込み領域を狭めてしまうことを一層適切に防止することができる。
【0051】
第3に、書き換え頻度の高い管理テーブルの記憶領域上での配置は固定されず、またこの管理テーブルの位置を示すポインタは複数階に階層化して記録するようにしたため、検索のため固定した位置に記録されなければならないポインタの書き換え回数が他の領域と同等に抑えられて特定の記憶領域に書き込みが集中して短時間で寿命に至ってしまうことを防ぐことができる。したがって、上記第1の発明と同様に、同一記憶場所の書き換え回数に制限があるにもかかわらず、磁気ディスク装置と同等の寿命を実現することができる。
【0052】
第4に、読み出されたデータからその記憶領域であるページ等が消去状態であるか否かを検出し、読み出しデータに誤りが検出された場合でも同時に消去状態が検出されたときには、その読み出しデータには誤りが無いものとして処理するようにしたため、消去状態のページ等がデータの書き込まれたページ等と区別無く読み出されるような制御が行われる場合にも、読み出しデータの正確な誤り検出を行うことができて高い信頼性を確保することができる。
【図面の簡単な説明】
【図1】本発明に係る不揮発性半導体メモリ装置の第1実施例においてブロックへの書き込みを管理するためのテーブルの構成を示す図である。
【図2】第1実施例においてEEPROMにおける記憶領域の構成を示す図である。
【図3】第1実施例において記憶領域へのデータの書き込みの手順を示すフローチャートである。
【図4】第1実施例において記憶領域へのデータの書き込みの手順を示すフローチャートである。
【図5】第1実施例においてデータ消去の手順を示すフローチャートである。
【図6】第1実施例においてデータの書き換えの手順を示すフローチャートである。
【図7】図4のデータの書き込みの手順中で使用されるサブルーチンのフローチャートである。
【図8】第1実施例においてデータの書き込みによる記憶領域及びこれを管理するテーブルの状態の変化を説明するための図である。
【図9】第1実施例においてデータの書き込みによる記憶領域及びこれを管理するテーブルの状態の変化を説明するための図である。
【図10】本発明の第2実施例においてポインタとルート管理テーブルのつながり関係を示す図である。
【図11】第2実施例におけるルート管理テーブルの構成を示す図である。
【図12】第2実施例においてポインタが記録されたブロックを示す図である。
【図13】第2実施例においてルート管理テーブルの更新に伴なって発生する処理の手順を示すフローチャートである。
【図14】第2実施例においてポインタにブロック位置を設定する手順を示すフローチャートである。
【図15】本発明の第3実施例に係る不揮発性半導体メモリ装置の構成を示すブロック図である。
【図16】図15における誤り制御ロジックの内部構成を示す図である。
【図17】第3実施例においてEEPROMモジュールからデータの読み出しの手順を示すフローチャートである。
【図18】第3実施例においてEEPROMモジュールからデータバッファにデータを読み出す手順を示すフローチャートである。
【図19】第3実施例においてEEPROMモジュールからデータバッファにデータを読み出す手順を示すフローチャートである。
【図20】図17におけるデータバッファからホストシステムに読み出したデータを転送する手順を示すフローチャートである。
【図21】EEPROMの一つのNANDセルを示す等価回路図である。
【図22】EEPROMのメモリセルアレイを示す等価回路図である。
【図23】NAND型EEPROMの書き込み動作を説明するための図である。
【図24】オペレーティングシステムの一つであるMS−DOSのファイル管理方法を説明するための図である。
【図25】ディレクトリの構成例を説明するための図である。
【符号の説明】
21…第1の管理手段となるもので、有効フラグとともに参照しデータの書き込みをブロックの順位にしたがって1方向に向かって、かつ循環して使用されるように制御するためのフラグ
22…第2の管理手段となるもので、ブロックに記録されたデータが或る時点から後に変更されたか否かを管理するフラグ
23…ブロックに有意なデータが記録されているか否かを管理するフラグ
31〜36…管理単位となる容量で区切られた複数の記憶領域
38…ブロックの割当を管理するテーブル
41〜48,51〜58 ポインタ情報が記録されるページ
109…誤り制御ロジック
110…CPU(制御手段)
115…EEPROMモジュール(メモリ手段)
150…ECC検査回路(誤り検出手段)
151…ECC発生回路
152…消去検出回路(消去検出手段)
Claims (6)
- 複数のメモリセルがそれらのソース、ドレインを隣接するメモリセル同士で共有する形で直列接続され、前記直列接続の一端がソース線、もう一端がビット線に接続されたNANDセルを複数備える不揮発性半導体メモリを使用した不揮発性半導体メモリ装置において、
同一の前記ソース線にそれぞれ接続する複数の前記NANDセルが独立に消去可能な単位であるブロックを構成し、前記ブロックに既に書き込まれたデータを更新する時に、前記ソース線側のメモリセルから前記ビット線側のメモリセルの方向へ順次データの書きこみがなされ、前記ビット線に最も近い位置のメモリセルに書き込まれたデータを最新のデータとして管理し、前記データはファイルの記録位置に関連する情報であることを特徴とする不揮発性半導体メモリ装置。 - 前記複数のメモリセルが行方向に連続的にワード線に接続されてデータの書き込み単位であるページを構成し、前記ファイルの記録位置に関連する情報は、1ページに納まる情報量であることを特徴とする請求項1に記載の不揮発性半導体メモリ装置。
- 前記ファイルの記録位置に関連する情報は、前記ファイルの記録された位置を管理するテーブルが記録された位置を示すポインタであることを特徴とする請求項1又は2に記載の不揮発性半導体メモリ装置。
- 複数のメモリセルがそれらのソース、ドレインを隣接するメモリセル同士で共有する形で直列接続され、前記直列接続の一端がソース線、もう一端がビット線に接続されたNANDセルを複数備える不揮発性半導体メモリの制御方法であって、
同一の前記ソース線にそれぞれ接続する複数の前記NANDセルが独立に消去可能な単位であるブロックを構成し、前記ブロックに既に書き込まれたデータを更新する時に、前記ソース線側のメモリセルから前記ビット線側のメモリセルの方向へ順次データの書きこみがなされ、前記ビット線に最も近い位置のメモリセルに書き込まれたデータを最新のデータとして管理し、前記データはファイルの記録位置に関連する情報であることを特徴とする不揮発性半導体メモリの制御方法。 - 前記複数のメモリセルが行方向に連続的にワード線に接続されてデータの書き込み単位であるページを構成し、前記ファイルの記録位置に関連する情報は、1ページに納まる情報量であることを特徴とする請求項4に記載の不揮発性半導体メモリの制御方法。
- 前記ファイルの記録位置に関連する情報は、前記ファイルの記録された位置を管理するテーブルが記録された位置を示すポインタであることを特徴とする請求項4又は5に記載の不揮発性半導体メモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026478A JP3822171B2 (ja) | 2003-02-03 | 2003-02-03 | 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026478A JP3822171B2 (ja) | 2003-02-03 | 2003-02-03 | 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17423292A Division JP3412839B2 (ja) | 1992-07-01 | 1992-07-01 | 不揮発性半導体メモリ装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006003026A Division JP3974149B2 (ja) | 2006-01-10 | 2006-01-10 | 不揮発性半導体メモリ装置及び不揮発性半導体メモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003272391A JP2003272391A (ja) | 2003-09-26 |
JP3822171B2 true JP3822171B2 (ja) | 2006-09-13 |
Family
ID=29208405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003026478A Expired - Fee Related JP3822171B2 (ja) | 2003-02-03 | 2003-02-03 | 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3822171B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
US7437653B2 (en) * | 2004-12-22 | 2008-10-14 | Sandisk Corporation | Erased sector detection mechanisms |
-
2003
- 2003-02-03 JP JP2003026478A patent/JP3822171B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003272391A (ja) | 2003-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3412839B2 (ja) | 不揮発性半導体メモリ装置 | |
KR960004738B1 (ko) | 불휘발성 반도체 메모리 장치 | |
JP4933269B2 (ja) | 不揮発性メモリおよびメモリプレーン配列を伴う方法 | |
US5509018A (en) | Flash-erase-type nonvolatile semiconductor storage device | |
JP3226042B2 (ja) | フラッシュEEpromシステム | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
US8706988B2 (en) | Memory system | |
JP5317690B2 (ja) | メモリシステム | |
US8738867B2 (en) | Memory system | |
US20030225961A1 (en) | Flash memory management system and method | |
US8108594B2 (en) | Memory system | |
JP2007519996A6 (ja) | 不揮発性メモリおよびフェーズ化されたプログラム障害処理を伴う方法 | |
JP2007519996A (ja) | 不揮発性メモリおよびフェーズ化されたプログラム障害処理を伴う方法 | |
JP3822171B2 (ja) | 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 | |
JP3974149B2 (ja) | 不揮発性半導体メモリ装置及び不揮発性半導体メモリの制御方法 | |
JP3672576B2 (ja) | 不揮発性半導体メモリ装置 | |
JP3267320B2 (ja) | 不揮発性半導体メモリ装置及び不揮発性半導体メモリ装置の制御方法 | |
JP4050250B2 (ja) | 不揮発性半導体メモリ装置 | |
JP3908238B2 (ja) | 不揮発性半導体メモリ装置のデータ書き込み方法 | |
JP2003242788A (ja) | 不揮発性半導体メモリ装置及びその制御方法 | |
JP2009211218A (ja) | メモリシステムおよび瞬断判定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060110 |
|
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: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060621 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |