JP3908238B2 - 不揮発性半導体メモリ装置のデータ書き込み方法 - Google Patents
不揮発性半導体メモリ装置のデータ書き込み方法 Download PDFInfo
- Publication number
- JP3908238B2 JP3908238B2 JP2004151857A JP2004151857A JP3908238B2 JP 3908238 B2 JP3908238 B2 JP 3908238B2 JP 2004151857 A JP2004151857 A JP 2004151857A JP 2004151857 A JP2004151857 A JP 2004151857A JP 3908238 B2 JP3908238 B2 JP 3908238B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- writing
- page
- 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
Images
Description
本発明は、電気的に書き換え可能な不揮発性半導体メモリ素子(EEPROM)のうちのNAND型EEPROMを用いた不揮発性半導体メモリ装置のデータ書き込み方法に関する。
コンピュータの2次記憶装置には、現在磁気ディスク装置が広く用いられているが、近年、電気的に書き換え可能な不揮発性半導体メモリ(EEPROM)が、その機械的強度に対する信頼性、低消費電力、可搬性の良さ、高速アクセスといった特徴を生かして、磁気ディスクを置き換えるような用途に使われだした。
しかし、磁気ディスク装置とEEPROMには機能的な相違点があるため、従来の磁気ディスク装置をそのまま置き換えるためには、これを埋めるための制御が必要となる。
EEPROMの一つとして、高集積化が可能なNAND型EEPROMが知られている。これは、複数のメモリセルをそれらのソース、ドレインを隣接するもの同士で共有する形で直列接続して一単位とし、ビット線に接続するものである。メモリセルは通常、電荷蓄積層と制御ゲートが積層されたFETMOS構造を有する。メモリセルアレイは、p型基板、又はn型基板に形成されたp型ウェル内に集積形成される。NANDセルのドレイン側は選択ゲートを介してビット線に接続され、ソース側はやはり選択ゲートを介して、ソース線(基準電位配線に接続される(図12)。メモリセルの制御ゲートは、行方向に連続的に接続されてワード線となる。通常同一ワード線につながるメモリセルの集合を1ページと呼び、一組のドレイン側及びソース側の選択ゲートに挟まれたページの集合を1NANDブロック又は単に1ブロックと呼ぶ(図13)。通常1ブロックは独立に消去可能な最小単位となる。
NAND型EEPROMの動作は次の通りである。データの消去は1NANDブロック内のメモリセルに対して同時に行われる。即ち選択されたNANDブロックの全ての制御ゲートを基準電位VSSとし、p型ウェル及びn型基板に高電圧VPP(例えば20V)を印加する。これにより、全てのメモリセルにおいて浮遊ゲートから基板に電子が放出され、しきい値は負の方向にシフトする。通常この状態を”1”状態と定義する。またチップ消去は全NANDブロックを選択状態にすることによりなされる。
データの書き込み動作は、ビット線から最も離れた位置のメモリセルから順に行われる。NANDブロック内の選択された制御ゲートには高電圧VPP(例えば20V)を印加し、他の非選択ゲートには中間電位VM(例えば10V)を与える。またビット線にはデータに応じて、VSS又はVMを与える。ビット線にVSSが与えられたとき(”0”書き込み)、その電位は選択メモリセルに伝達され、浮遊ゲートに電子注入が生ずる。これによりその選択メモリセルのしきい値は正方向にシフトする。通常この状態を”0”状態と定義する。ビット線にVMが与えられた(”1”書き込み)メモリセルには電子注入は起らず、従ってしきい値は変化せず負に留まる。データの読み出し動作はNANDブロック内の選択されたメモリセルの制御ゲートをVSSとして、それ以外の制御ゲート及び選択ゲートをVCCとし選択メモリセルで電流が流れるか否かを検出することにより行われる。
NAND型EEPROMではデータの書き込みはソース線に近いページからドレイン側のページに順に行なわれる必要がある。その必要性を図14を参照して以下に説明する。”1”書き込みは中間電位VM(10V程度)を選択メモリセルのドレインに転送し、電子の注入を起こさせず消去状態(即ち負のしきい値)を保つ。図14は制御ゲート1が選択状態(VPP)のときを示している。よって制御ゲート2は非選択でVMが与えられている。またドレインにもVM(”1”書き込み)が与えられている。図14(a)はソース側から書き込みを行なったときの図、図14(b)はドレイン側から書き込みを行なった場合のものである。図14(a)の場合ドレイン側のセルMa2のしきい値は負であるので、ドレインの電位VMは確実にソース側セルMa1に転送される。しかしながら、図14(b)の場合ドレイン側セルMb2にすでに”0”書き込み動作がなされ、正のしきい値(たとえば3.5V)を持っていたとすると、ソース側セルMb1に”1”を書き込む際、セルMb1にはVMからセルMb2のしきい値電圧分差し引いた電圧しか転送されてこない。よってセルMb1では制御ゲートと基板間の電位差が大きくなって誤書き込みが起こる可能性がある。以上のようにソース側から順に書き込む手段は誤書き込みを防ぐ意味で重要である。
従来磁気ディスク装置では、データの読み出しや書き込みといったアクセスの単位はセクタであった。媒体の円周上に形成されるトラックは数十個のセクタに分割されていて、このセクタには、回転方向に従って順に番号(アドレス)が付いている。いま仮に1トラックに50セクタあったとして、1回目のアクセスで第5セクタから4セクタ分のデータを書き込み、2回目のアクセスで第1セクタから4セクタ分のデータを書き込むといったアクセスは普通に行われる。一方、NAND型EEPROMのアクセス単位はページである。4MビットNAND型EEPROMを例に取ると、1ページは512バイトで、1ブロックは8ページで構成されている。よって、磁気ディスク装置をNAND型EEPROMで置き換えるような応用において、ディスクの1セクタをNAND型EEPROMの1ページマッピングすると変換が容易である。しかしながら、磁気ディスクと同様に、1ブロック中のソース側から5番目のページから4ページを書き込んでから、1番目から4ページを書き込むといったアクセスを行うと先に述べたように、誤書き込みが起こる可能性がある。
これを避けるための一つの方法は、2回目のアクセスにおいて、最初に書いた第5ページから4ページ分を1度バッファに待避してからこのブロックを消去し、第1ページから8ページ分のデータを書き込むという手順を踏むことである。
しかし、この操作は、EEPROMの限られた書き換え回数を浪費することになる。また他の方法は、NAND型EEPROMのアクセス単位を消去単位のブロックにしてしまうことである。この場合には、前述のようなブロックの一部のデータを書き換えるには、ブロック内の既に書き込まれたデータを一旦バッファに読み込み、書き換えるデータをバッファ上で重ね書きし、上記と同様に、このブロックを消去して、第1ページから8ページ分のデータを書き込むという手順を踏む。
以上のようにNAND型EEPROMでは、データのアクセスは磁気ディスクのセクタに相当するページを単位として行われるが、磁気ディスクのようにページ単位でランダムなデータ書き込みを行うと、ブロック内での書き込み順が規則からはずれて誤書き込みをする可能性がでるという問題があった。これを避けるために、バッファに先に書き込まれたデータを吸い上げてブロック消去を行った後に再書き込みをすることは、書き換え回数を増大させて、チップの寿命を縮めるという問題があった。また、アクセス単位をブロックすると、データの書き込みもブロック内の全てのページに対して1度に行われる。このとき、書き込まれるべきデータはバッファからNAND型EEPROMに転送されるが、バッファ内のデータは、全てが有効であるとは限らない。即ち、あるブロックに書き込みを行う場合で、その書き込みがそのブロックに対する初めての書き込みである場合、又はそのブロックに書き込んであるデータを無効にする場合、書き換えに先だってブロック内のデータを読み出す必要はない。よって、このとき一部のページにだけしか書き込むデータがなければ、残りのページに対するデータは無効である。通常、無効部分にデータはセットされないから、バッファが前に使われた時の”消し残した”データが残っていて、これがそのまま書き込まれる。従来の磁気ディスク装置では、データとして”1”を書き込む場合も”0”を書き込む場合も書き込みの時間に違いはなかった。しかし、NAND型EEPROMの場合は、先に説明したように消去状態では、全てのデータは”1”であり、”0”のデータを書き込む場合だけ電子の注入が行われる。また、電子の注入にかかる時間は、ビットごとに一定していないので、”0”が正常に書き込まれたかどうかをベリファイしながら進められる。よって、もしページ内のデータが全て”1”であったなら、書き込みは瞬時にして終了する。さらに、電子の注入が起きないから酸化膜に対するストレスも軽減される。このように、NAND型EEPROMの特性を考慮すると、無効なデータ部分は全て”1”に設定しておけば、これが1ページにわたった場合そのページの書き込みには無駄な時間をかけないで済むはずであるが、従来の入出力システムはこのような特性を持たない磁気ディスクのためのものであったから、この点に関する考慮がなされていなかった。
本発明は、上述のような問題に鑑みなされたもので、書き込み順の逆転による誤書き込みや再書き込みによる書き込み回数の増大を防止し、またメモリセルの絶縁膜に無駄なストレスを与えることを防止してチップの寿命を向上させ、さらに書き込みに要する時間を最小限に抑えることのできる不揮発性半導体メモリ装置のデータ書き込み方法を提供することを目的とする。
上記目的を達成するために、本発明の実施の形態の特徴は、(イ)複数個のページから構成される物理ブロックに分割されたNAND型EEPROMメモリセルアレイを備えた不揮発性半導体メモリ装置にデータを書き込む方法であって、(ロ)管理テーブルを参照して、ホストが指定した論理ページに対応しデータの書き込みが行われるべき物理ブロックを特定するステップと、(ハ)特定された物理ブロックに対してデータの書き込みを行うステップと、(ニ)ブロック内の次にデータが書き込まれるべき物理ページを示すポインタを設定するステップとを有し、(ホ)ポインタの設定において、特定された物理ブロック内のソース側の物理ページからドレイン側の物理ページへ向かってインクリメントする不揮発性半導体メモリ装置のデータ書き込み方法であることを要旨とする。
第1に、メモリ手段へのデータの書き込みに際しては、ホストシステム等からのページへのアクセス順序によらず、書き込み順に関する規則、即ち常にブロック内のソース側等のページから書き込みが行われる。これによりドレイン側等のページが先に書き込まれたことに起因する誤書き込みや、ドレイン側等に書き込まれたデータを消してから再書き込みを行うことによる書き込み回数の増大でチップの寿命を縮めることが回避される。
第2に、ブロックへのデータの書き込みに際し、バッファ内の有効なデータが存在しない領域のデータが、全て消去状態のデータと同じになるように初期化される。これにより無効なデータのみで満たされたページの書き込みが最短時間で終了し、またメモリセルの絶縁膜に対して無駄なストレスを与えることがなくなってチップの寿命を縮めることが回避される。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係る不揮発性半導体メモリ装置のデータ書き込み方法を適用する不揮発性半導体メモリ装置の全体構成を示すブロック図である。同図において1はメモリ手段としてのNAND型EEPROMモジュールであり、複数個のページからなるブロックに分割されたメモリセルアレイで構成されている。EEPROMモジュール1はデータ線で結ばれたホストインターフェイス3を介して図示省略のホストシステムに接続されている。
図1は、本発明の第1の実施の形態に係る不揮発性半導体メモリ装置のデータ書き込み方法を適用する不揮発性半導体メモリ装置の全体構成を示すブロック図である。同図において1はメモリ手段としてのNAND型EEPROMモジュールであり、複数個のページからなるブロックに分割されたメモリセルアレイで構成されている。EEPROMモジュール1はデータ線で結ばれたホストインターフェイス3を介して図示省略のホストシステムに接続されている。
データ線上には、マルチプレクサ10及びデータバッファ11が設けられている。また、ホストインターフェイス3内には、データレジスタ4、アドレスレジスタ5、カウントレジスタ6、コマンドレジスタ7、ステータレジスタ8及びエラーレジスタ9が設けられている。12はコントロールロジック、13はECC(誤差修正コード)ジェネレータ/チェッカ、14はアドレスジェネレータ、15は制御手段としての機能を有するCPU、16は後述のページ管理テーブル等が読み込まれる作業用RAM、17は制御プログラムROMである。制御プログラムROM17には、データ書き込み等のための一連の制御プログラムが格納されるようになっている。
本実施の形態のメモリ装置は、不揮発性メモリ領域であるEEPROMモジュール1に記録されるデータに関し、そのブロック内でのページ位置を割付け、管理するためにページ管理テーブルを使用する。このテーブルは、他のユーザ・データとともにEEPROMモジュール1に記録されるが、この装置が起動するときに自動的に作業用RAM16に読み込まれる。また、このテーブルはEEPROMモジュール1への書き込みが行われる度にその内容が更新されるが、この更新されたテーブルは、その都度、或いは装置の使用が終了する時点でEEPROMモジュール1に書き戻されることとする。
図2は、ブロック内のページアドレス(論理ページ)と物理的な位置(物理ページ)との対応を管理し、EEPROMモジュール1の書き込み順に関する規則に従って次に使用されるべきページの物理的な位置をポイントするための管理手段としてのページ管理テーブル20の1例である。このページ管理テーブル20は、図2(a)に示すようにn個の領域に分割されていて、各領域18はEEPROMモジュール1の各ブロックに対応している。ここでは簡単のため、メモリ装置を構成しているNAND型EEPROMが4MビットEEPROM1個であると仮定すると、n即ちブロック数は128である。これらの領域18は、さらに、同図(b)に示すようにポイント手段となる1個のポインタ21とページ数(=8)のフラグ領域22から構成されている。ポインタ21はブロック内のページへの書き込みをソース側から順に行うためのものでまだ書き込みの行われていない最もソース側のページを示すものとし、もしこの値がブロック当たりのページ数を越えた場合(この例では9になった場合)には、ブロック消去をしないと書き込みが行えないことを示すものとする。論理ページのフラグ22は、その論理ページがまだ書き込まれていない場合には”0”に設定され、書き込まれた場合には、実際に書き込まれた物理的な位置をソース側から何番目の物理ページであったかで示すものとする。
具体的な例を用いてデータが記録される際の動作の概要を述べる。あるブロックに、まだ何も書き込まれていなかったとすると、そのあるブロックに対応するページ管理テーブル20の領域18中のポインタ及びフラグの内容は、図3(a)のようになっている。このとき、このブロックの第5論理ページから3ページ分のデータを書き込むとする。まず、ポインタ21の値が1であるから、第5論理ページの内容は、一番ソース側の物理ページに書き込まれ、第5論理ページのフラグ22の値は1に更新され、ポインタ21の値もソース側から2番目のページを示すためにインクリメントされる。この操作がさらに2ページ分繰り返されて、図3(b)のように更新される。次に、同じブロックに第1論理ページから5ページ分の書き込みを行うとすると、ポインタ21は4番目の物理ページを指しているから、ここから5ページ分の書き込みを行い、テーブルを図3(c)のように更新する。この結果、ポインタ21は9になるので、このブロックへの次回の書き込みは、書き換えられないデータをバッファに待避してからブロック消去を行って新たなデータとともに書き戻すといった処理が必要になる。例えば、図3(c)の状態で、第1論理ページから2ページ分のデータを書き換えるとすると、書き換えられない第3論理ページから第7論理ページの内容をバッファに吸い上げてブロック消去を行い、ポインタ21も1に初期化する。その後、バッファ内の7ページ分のデータをブロックに書き込む。この場合の更新されたテーブルの内容を図3(d)に示す。また、ポインタの内容が9になっていなくても、書き込もうとするページ数が残りページ数より多い場合にも(例えば、図3(b)の状態で第3論理ページから6ページ分の書き込み要求がきた場合)、同様の処理をする必要がある。データの読み出しに際しては、ブロック内のページアドレスと物理的な位置との対応をこのページ管理テーブル20から求め必要なデータをアクセスする。
次に、この装置の動作をフローチャートを用いて説明する。ホストシステムは、図1のホストインターフェース3内のアドレスレジスタ5にアクセス開始アドレスを、カウントレジスタ6にアクセスしたいデータのセクタ長をセットし、最後にコマンドレジスタ7に読み出し/書き込み等の命令をセットする。ホストインターフェース3のコマンドレジスタ7にアクセス命令が書き込まれると、コントローラ内のCPU15は、コマンドレジスタ7内の命令を読み込み、制御プログラムROM17に納められたコマンド実行のための一連の制御プログラムを実行する。以下の説明では、簡単のためホストシステムの指定してくるセクタ長とEEPROMモジュール1におけるページ長は一致しているものと仮定する。
図4は、EEPROMモジュール1からデータを読み出す手順を示すフローチャートである。まず、図1のCPU15は、ホストインターフェース3にセットされた開始アドレスとページ管理テーブル20内のアドレス変換テーブルを参照して読み出しを行うべきEEPROMモジュール1の物理的なアドレスを決定する(ステップ101)。次に、EEPROMモジュール1からデータバッファ11にデータを読み出す(ステップ102)。次いで、後に詳述するようなエラー処理及びデータバッファ11からホストシステムへのデータ転送等を実行する(ステップ103〜105)。
図5は、EEPROMモジュールからデータバッファにデータを読み出す手順を示すフローチャートである。CPU15は、EEPROMモジュール1をマルチプレクサ10を通してアクセスし読み出しモードに設定し、データバッファ11を読み出しモードに設定する(ステップ201,202)。アドレスジェネレータ14には、読み出しを行うべきEEPROMモジュール1の物理的なアドレスを設定する(ステップ203)。そして、データバッファ11に、読み出したデータを蓄えるべき領域を決定してその先頭番地をデータバッファ10への書き込みアドレスとして設定する(ステップ204)。その後、コントロールロジック12に対してデータ読み出しのための定められたシーケンスを実行するように指令を送る。
コントロールロジック12は、マルチプレクサ10をEEPROMモジュール1からの読み出しデータがデータバッファ11に流れるように設定し、アドレスジェネレータ14の内容をインクリメントしながら、1セクタ分のデータを読み出す(ステップ205)。また、ECCジェネレータ/チェッカ13をこれらのデータ及びこれに付随して読み出されるECCコードを使って誤りを検出するように制御する。1セクタ分のデータが読み出されると、CPU15は、ECCジェネレータ/チェッカ13をチェックしデータの誤りを検査する(ステップ206)。誤りが検出されなかった場合、又は検出されても訂正が行えた場合は、データバッファ11からホストシステムにデータを転送する。もし、訂正不可能な誤りが検出された場合には、ホストシステムに対するデータ転送は行わずに、CPU15は、ホストインターフェース3内のステータスレジスタ8にエラーが起きたことを示すコードを、エラーレジスタ9にエラーの内容を示すコードを設定し、ホストシステムに命令の実行が異常終了したことを通知して処理を終了する(ステップ207〜210)。
図6は、データバッファからホストシステムにデータを転送する手順を示すフローチャートである。CPU15は、データバッファ11に読み出したデータが蓄えられた領域の先頭番地を同バッファからの読み出しアドレスとして設定し(ステップ301,302)、コントロールロジック12に対して、ホストシステムに1セクタ分のデータの転送を行うように指令する。コントロールロジック12は、データバッファ11とホストインターフェース3を制御してホストシステムに対して1セクタ分のデータを転送し(ステップ303)、これが終了するとアドレスレジスタ5を1セクタ分進め、カウントレジスタ6から1を減じ、CPU15に転送が終了したことを通知する。ホストシステムに転送すべきデータが残っている限り、CPU15はこの制御を繰り返す。読み出しデータが全て転送されたら、CPU15は、ホストインターフェース3内のステータスレジスタ8にエラーの無かったことを示すコードを設定し、ホストシステムに命令の実行が終了したことを通知して処理を終了する。
図7及び図8は、EEPROMモジュール1へデータを書き込む手順を示すフローチャートである。CPU15はホストインターフェース3にセットされた開始アドレスから、ホストシステムが書き込みを行おうとしているEEPROMモジュール1上のブロックを割り出す(ステップ401)。ホストシステムの指示するEEPROMモジュール1のブロック中の未使用ページ数が、書き込まれるページ数より少なく、かつ、ホストシステムからの要求がこのブロックのデータの全てを書き換えるものでない場合は、ブロック内の書き換えられないデータをデータバッファに読み込む(ステップ402〜404)。EEPROMからデータバッファ11にデータを読み出す手順は、先に図5のフローチャートを用いて説明した。ブロック内の重ね書きされない部分のデータが全てバッファに読み込まれるまで、図5の処理が繰り返される。ブロック中の未使用ページ数が、書き込まれるページ数以上の場合以外は、この後にブロック消去を行う(ステップ405)。次いで、後に詳述するようなホストシステムからデータバッファ11への書き込みデータの転送、データバッファ11からEEPROMモジュール1へのデータの書き込み処理及びエラー処理等を実行し、さらにページ管理テーブル中のポインタを初期化する(ステップ406〜411)。
図9は、ホストシステムからデータバッファに書き込みデータを転送する手順を示している。CPU15は、データバッファ11を書き込みモードに設定し(ステップ501)、ホストシステムから転送されてくるデータが蓄えられるデータバッファ11上のアドレスを同バッファへの書き込みアドレスとして設定する(ステップ502)。その後、コントロールロジック12に対して、ホストシステムから1セクタ分のデータの転送を行うように指令する。コントロールロジック12は、データバッファ11とホストインターフェース3を制御してホストシステムから1セクタ分のデータを受け取り、これが終了するとCPU15に転送が終了したことを通知する(ステップ503)。図9の処理は、ホストシステムから転送すべきデータが残っていて、かつ、データバッファ11にEEPROMモジュール1の書き込みを行おうとしているブロックのためのデータが不足している限り続けられる。ホストシステムからの転送が終了したら、CPU15はホストインターフェース3にセットされた開始アドレスに対応するブロックのページ管理テーブルのポインタを参照して、先に説明したように、データバッファ11に蓄えられた1ページ分のデータが書き込まれるべきEEPROMモジュール1上の該当ブロックのページ位置を決定し、書き込みを行う。
図10は、データバッファ内のデータ1ページ分をEEPROMモジュールに書き込む手順を示したフローチャートである。CPU15は、EEPROMモジュール1とデータバッファ11に必要ならば初期設定を施した後(ステップ601,602)、書き込みを行うページの先頭アドレスをアドレスジェネレータ14に設定し(ステップ603)、データバッファ11には、書き込まれるデータの先頭アドレスを同バッファの読み出しアドレスとして設定する(ステップ604)。そして、コントロールロジック12に対してデータ書き込みのための定められたシーケンスを実行するように指令を送る。コントロールロジック12は、マルチプレクサ10をデータバッファ11からの書き込みデータがEEPROMモジュール1に流れるように設定し、アドレスジェネレータ14の内容をインクリメントしながらデータを書き込む(ステップ605)。また、ECCジェネレータ/チェッカ13をこれらのデータからECCコードを生成するように制御し、データとともにこのコードも記録する(ステップ606)。図10の処理は、書き込みエラーが発生するか、該当ブロックに書き込むべき、データを書き終えるかするまで、ページ管理テーブルのポインタをインクリメントしながら続けられる。データの書き込みが正常に行えなかった場合は必要なエラー処理を行い、再度、書き込みを行う(ステップ607,608)。書き込みが正常に終了したらページ管理テーブルの内容を更新する。ホストシステムの要求するデータを全て記録し終えるか、エラーからの回復が不可能で処理を中断した場合は、CPU15は、ホストインターフェース3内のステータスレジスタ8に所定のコードを設定し、ホストシステムに命令の実行が終了したことを通知する。
なお、本実施の形態では、EEPROMモジュールは、ホストインターフェースを介して、ホストシステムと並行して動作可能なコントローラにより制御される形態を取っているが、ホストシステムのCPUにより直接制御される形態を取ってもよい。
(第2の実施の形態)
図11は、本発明の第2実施の形態に係る不揮発性半導体メモリ装置のデータ書き込み方法を適用する不揮発性半導体メモリ装置を示すブロック図である。CPU15は、インターフェース25をとおしてEEPROMモジュール1をアクセスする。また、アクセスに際しては、RAM26の一部に設けられたバッファ30を使用するようになっている。いま、EEPROMモジュール1が、4MビットNAND型EEPROMで構成されているとすると、1ブロックは4kバイトであるからバッファ30の大きさ、即ち入出力の単位は4kバイトである。バッファ30中の31〜38に相当する部分は、NAND型EEPROMのブロック中のページに相当する部分であるが、この装置では独立したデータとしては扱われない。
図11は、本発明の第2実施の形態に係る不揮発性半導体メモリ装置のデータ書き込み方法を適用する不揮発性半導体メモリ装置を示すブロック図である。CPU15は、インターフェース25をとおしてEEPROMモジュール1をアクセスする。また、アクセスに際しては、RAM26の一部に設けられたバッファ30を使用するようになっている。いま、EEPROMモジュール1が、4MビットNAND型EEPROMで構成されているとすると、1ブロックは4kバイトであるからバッファ30の大きさ、即ち入出力の単位は4kバイトである。バッファ30中の31〜38に相当する部分は、NAND型EEPROMのブロック中のページに相当する部分であるが、この装置では独立したデータとしては扱われない。
まず、EEPROMモジュール1内のあるブロック2のデータの一部を書き換える場合を考える。ブロック2の書き換えられない部分のデータは残さなければならないので予め読み出す必要があるが、この装置ではアクセス単位が1ブロックであるから、ブロック2のデータ全てがバッファ30に転送される。次にバッファ30上でデータの書き換えが行われ、同時にEEPROMモジュール1のブロック2は消去される。そして、バッファ30の内容が、ソース側のページから順に1ブロック分書き込まれる。
次に、ブロック2の内容は無効にして、3ページ分のデータだけを書き込む場合を考える。この場合ブロック2のデータは破棄するので予め読み出す必要はない。ブロック2は即消去される。いま仮に、3ページ分のデータがページ31〜33の位置に書き込まれるものであるとすると、CPU15はまずこの部分にデータを設定する。この時点では、バッファ30内の34〜38には、このアクセスの前にEEPROMモジュールにアクセスを行った時のデータがそのまま残っている。よって、このままバッファ30のデータをブロック2に書き込むと、本来意味の無いデータの入ったページ34〜38の内容がベリファイまでされてそのまま書き込まれるため無駄な時間を浪費する。そこで、CPU15は、ブロック2への書き込みに先だって、バッファ30内の34〜38にはEEPROMモジュールの消去時のデータである”1”をセットする。このように、本実施の形態では、データの書き込みに際し、バッファ30内の有効なデータが存在しない領域のデータが全て消去状態のデータと同じになるように初期化されるので、書き込みが最短時間で終了し、かつ、NAND型EEPROMの酸化膜に対して無駄なストレスを与えることが回避される。
なお、本実施の形態では、EEPROMモジュール1はインターフェース25を介してバス27上のCPU15により直接制御される形態を取っているが、インターフェース25とEEPROMモジュール1の間に介在しCPU15と並行して動作可能なコントローラにより制御される形態を取ってもよい。その他、本実施の形態はその主旨を逸脱しない範囲で種々変形して用いることができる。
1…EEPROMモジュール(メモリ手段)
2…ブロック
3・・・ホストインタフェース
4・・・データレジスタ
5・・・アドレスレジスタ
6・・・カウントレジスタ
7・・・コマンドレジスタ
8・・・ステータスレジスタ
9・・・エラーレジスタ
10・・・マルチプレクサ
11・・・データバッファ
12・・・コントロールロジック
13・・・ECCジェネレータ/チェッカ
14・・・アドレスジェネレータ
15・・・CPU(制御手段)
16・・・作業用RAM
17・・・制御プログラムROM
18・・・領域(ブロック)
20…管理手段となるページ管理テーブル
21…ポイント手段ポインタ(ポイント手段)
22・・・フラグ(領域)
25・・・インタフェース
26・・・RAM
27・・・バス
30…バッファ
31,32,33,34,35,36,37,38・・・ページ
101〜105,201〜210,301〜303,401〜411,501〜503,601〜608・・・ステップ
2…ブロック
3・・・ホストインタフェース
4・・・データレジスタ
5・・・アドレスレジスタ
6・・・カウントレジスタ
7・・・コマンドレジスタ
8・・・ステータスレジスタ
9・・・エラーレジスタ
10・・・マルチプレクサ
11・・・データバッファ
12・・・コントロールロジック
13・・・ECCジェネレータ/チェッカ
14・・・アドレスジェネレータ
15・・・CPU(制御手段)
16・・・作業用RAM
17・・・制御プログラムROM
18・・・領域(ブロック)
20…管理手段となるページ管理テーブル
21…ポイント手段ポインタ(ポイント手段)
22・・・フラグ(領域)
25・・・インタフェース
26・・・RAM
27・・・バス
30…バッファ
31,32,33,34,35,36,37,38・・・ページ
101〜105,201〜210,301〜303,401〜411,501〜503,601〜608・・・ステップ
Claims (4)
- 複数個のページから構成される物理ブロックに分割されたNAND型EEPROMメモリセルアレイを備えた不揮発性半導体メモリ装置にデータを書き込む方法であって、
管理テーブルを参照して、ホストが指定した論理ページに対応しデータの書き込みが行われるべき物理ブロックを特定するステップと、
前記特定された物理ブロックに対してデータの書き込みを行うステップと、
前記ブロック内の次にデータが書き込まれるべき物理ページを示すポインタを設定するステップ
とを有し、前記ポインタの設定において、前記特定された物理ブロック内のソース側の物理ページからドレイン側の物理ページへ向かってインクリメントすることを特徴とする不揮発性半導体メモリ装置のデータ書き込み方法。 - 前記特定するステップに先立ち、前記管理テーブルを前記メモリセルアレイからRAMに読み込むステップを実施することを特徴とする請求項1記載の不揮発性半導体メモリ装置のデータ書き込み方法。
- 前記RAMに読み込むステップを、前記不揮発性半導体メモリ装置の起動時に実施することを特徴とする請求項2記載の不揮発性半導体メモリ装置のデータ書き込み方法。
- ECCコードをデータとともに書き込むことを特徴とする請求項1乃至請求項3の内、いずれか1項に記載の不揮発性半導体メモリ装置のデータ書き込み方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004151857A JP3908238B2 (ja) | 2004-05-21 | 2004-05-21 | 不揮発性半導体メモリ装置のデータ書き込み方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004151857A JP3908238B2 (ja) | 2004-05-21 | 2004-05-21 | 不揮発性半導体メモリ装置のデータ書き込み方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17423492A Division JP3672576B2 (ja) | 1992-07-01 | 1992-07-01 | 不揮発性半導体メモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004265447A JP2004265447A (ja) | 2004-09-24 |
JP3908238B2 true JP3908238B2 (ja) | 2007-04-25 |
Family
ID=33128666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004151857A Expired - Fee Related JP3908238B2 (ja) | 2004-05-21 | 2004-05-21 | 不揮発性半導体メモリ装置のデータ書き込み方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3908238B2 (ja) |
-
2004
- 2004-05-21 JP JP2004151857A patent/JP3908238B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004265447A (ja) | 2004-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3412839B2 (ja) | 不揮発性半導体メモリ装置 | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN113257324A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US11561725B2 (en) | System and operating method thereof | |
KR20220001137A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
JP3672576B2 (ja) | 不揮発性半導体メモリ装置 | |
US11221945B2 (en) | Semiconductor memory device | |
US11249838B2 (en) | Memory system, memory controller, and method of operating memory controller | |
KR20230049858A (ko) | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 | |
JP3908238B2 (ja) | 不揮発性半導体メモリ装置のデータ書き込み方法 | |
JP4050250B2 (ja) | 不揮発性半導体メモリ装置 | |
KR20220068535A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
JP3267320B2 (ja) | 不揮発性半導体メモリ装置及び不揮発性半導体メモリ装置の制御方法 | |
CN114201110B (zh) | 存储器系统及其操作方法 | |
CN114296631B (zh) | 存储器系统及其操作方法 | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
JP3974149B2 (ja) | 不揮発性半導体メモリ装置及び不揮発性半導体メモリの制御方法 | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
JP3822171B2 (ja) | 不揮発性半導体メモリ装置及びその制御方法、不揮発性半導体メモリ装置システム及びその制御方法 | |
KR20230072062A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20210149314A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20230161676A (ko) | 이퓨즈 메모리를 제어하는 컨트롤러 및 그 동작 방법 | |
KR20220168510A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061222 |
|
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: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070117 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110126 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |