三次元構造のNAND型フラッシュメモリは、メモリアレイを積層方向に拡張したことにより、所定の領域に含まれるワード線の数、又は、ビット線の数が増大する。例えば、全てのワード線を2次元構造のワード線選択トランジスタに接続しようとすると、配線ピッチの制約により全てのワード線を接続することが困難である。あるいは、ワード線選択トランジスタの数が増大し、ロウデコーダの面積が増大する。そこで、異なる選択ゲートにより制御される複数のNANDストリングによってワード線を共有化することにより、ワード線選択トランジスタに接続される配線数の増大を抑制する方法が用いられている。その結果、配線数や面積の増大の問題が解決されるが、ワード線を共有化することにより、消去ブロックサイズが増大するという問題が発生する。そこで、消去ブロックサイズを小さくする方法として、NAND型メモリストリング内に、1本以上のワード線からなるサブブロックを定義し、サブブロックの単位で消去、及び書き込みを可能とする検討が行われている。
NAND型フラッシュメモリにおいて、あるワード線に接続されたメモリセルにデータを書き込んだ場合、その後、同じメモリストリング内に含まれるワード線に接続されたメモリにデータが書き込まれると、先に書き込まれたメモリセルの閾値電圧が変化することが知られている。
また、データをあるメモリセルに書き込んだ後、このメモリセルと同じメモリストリングに含まれる他のメモリセルを消去した場合、逆方向に閾値電圧が変化することになる。したがって、NAND型ストリング内にサブブロックを設定して消去や書込みを行う場合には、閾値電圧分布の変化、例えば閾値電圧分布の幅が拡大することを防止する必要がある。
以下、実施の形態について、図面を参照して説明する。全図面において、同一部分には同一符号を付している。
(第1の実施の形態)
[構成]
先ず、図1を参照して、第1の実施形態に適用される不揮発性半導体記憶装置の全体構成について説明する。
図1に示すように、第1の実施形態に係る不揮発性半導体記憶装置は、メモリセルアレイ11、ロウデコーダ12、データ回路・ページバッファ13、カラムデコーダ14、制御回路15、入出力回路16、アドレス・コマンドレジスタ17、内部電圧発生回路18、コアドライバ19、及びフラグレジスタ20を備えている。
メモリセルアレイ11は、図2に示すように、カラム方向に延びた複数のビット線BLと、ビット線BLに交差するロウ方向に延びた複数のソース線CELSRCと、電気的に書き換え可能な複数のメモリセルMTrが直列に接続されたメモリストリングMSを有している。メモリセルアレイ11は、本実施の形態では、メモリチップ内に2個あるものとして説明するが、本実施の形態に記載の技術はメモリセルアレイが2個の場合に限らず、メモリセルアレイ11がメモリチップ内に1個のみ存在する装置、あるいは3個以上のメモリセルアレイ11が1つのメモリチップ内に存在する装置にも適用可能である。
図2に示すように、メモリセルアレイ11は、データを電気的に記憶するメモリセルMTrを3次元マトリクス状に配列して構成される。すなわち、メモリセルMTrは、積層方向にマトリクス状に配列されるとともに、積層方向と直交する水平方向にもマトリクス状に配列される。積層方向に並ぶ複数個のメモリセルMTrは直列接続され、メモリストリングMSを構成する。
メモリストリングMSの両端には選択時に導通状態とされるドレイン側選択トランジスタSDTr、ソース側選択トランジスタSSTrが接続される。このメモリストリングMSは、積層方向を長手方向として配列される。ドレイン側選択トランジスタSDTrの一端は、ビット線BLに接続される。ソース側選択トランジスタSSTrの一端は、ソース線CELSRCに接続される。
図1に示すように、ロウデコーダ12は、アドレス・コマンドレジスタ17から入力されたブロックアドレス信号等をデコードし、またコアドライバ19から出力されるワード線制御信号や選択ゲート制御信号を受けて、メモリセルアレイ11を制御する。
データ回路・ページバッファ13は、読み出し動作時において、メモリセルアレイ11からデータを読み出し、ページバッファにデータを一時的に保持する。また、書き込み動作時において、チップ外部から書き込みデータは、データ回路・ページバッファ13にロードされた後、選択されたメモリセルに書き込まれる。
本実施の形態において、データ回路・ページバッファ13は、1つのメモリセルに2ビットのデータを保持する2ビット/セル記憶方式に対応するため、3つのキャッシュメモリC0〜C2を備えている。キャッシュメモリC1、C2は、それぞれ2ビットのデータのうちの下位ページデータLOWER又は上位ページデータUPPERのいずれかを保持する。また、キャッシュメモリC0は、例えば書き込み動作において、ベリファイ読み出し動作の結果に基づいてビット毎に書きこみ制御するための一時的なデータを保持するために用意されている。
カラムデコーダ14は、アドレス・コマンドレジスタ17から入力されたカラムアドレス信号をデコードし、データの入出力制御を行う。制御回路15は、アドレス・コマンドレジスタ17から読み出し・書き込み・消去動作等を実行する信号を受けて、所定のシーケンスに従って、コア動作に必要な種々の電圧を発生する内部電圧発生回路18を制御し、また、ワード線やビット線制御の制御を行うコアドライバ19を制御する。
さらに、制御回路15は、後述するフラグを識別し、ワード線の電圧を制御する。フラグは、ページ毎に設定され、ページから読み出されたフラグは、キャッシュメモリC0〜C2を介してフラグレジスタ20に保持される。制御回路15は、フラグレジスタ20に保持されたフラグに従って、ベリファイレベルを制御する。フラグの書き込みについては、後述する。
入出力回路16は、コマンド・アドレス・データの入出力制御を行う。
次に、図3を参照して、メモリセルアレイ11の回路構成について説明する。図3は、メモリセルアレイ11のカラム方向の断面に沿って形成されるメモリセルMTr、ドレイン側選択トランジスタSDTr、ソース側選択トランジスタSSTr、及びその周辺回路の等価回路図である。
メモリセルアレイ11は、図3に示すように、複数のビット線BL、及び複数のメモリブロックMBを有する。ビット線BLは、ロウ方向に所定ピッチで、カラム方向に複数のメモリブロックMBに跨るようにストライプ状に延びている。メモリブロックMBは、所定ピッチでカラム方向に繰り返し配置されている。
メモリブロックMBは、図3に示すように、ロウ方向及びロウ方向と直交するカラム方向にマトリクス状に配列された複数のメモリユニットMUを有する。メモリブロックMBにおいて、一本のビット線BLには、共通接続された複数のメモリユニットMUが設けられている。
メモリユニットMUは、メモリストリングMS、ソース側選択トランジスタSSTr、及びドレイン側選択トランジスタSDTrを有する。メモリユニットMUは、ロウ方向及びカラム方向にマトリクス状に配列されている。
また、ロウ方向に並ぶ複数のメモリユニットMU(メモリストリングMS)において、ワード線WL0〜WL7に接続された複数のメモリセルは、後述するように、1つのサブブロックを構成し、ワード線WL8〜WL15に接続された複数のメモリセルは、1つのサブブロックを構成する。これらサブブロックは、消去単位を構成し、第1の実施形態は、後述するように、サブブロック毎にデータが消去される。
尚、上記において、サブブロックは、メモリストリングを1/2として構成したが、これに限らず、メモリストリングを1/4、又は1/8に分けてサブブロックを構成することも可能である。
メモリストリングMSは、直列接続された複数のメモリセルMTr0〜MTr15、及びバックゲートトランジスタBTrにて構成されている。メモリセルMTr0〜MTr7は、積層方向に直列に接続されている。メモリセルMTr8〜MTr15も、同様に積層方向に直列に接続されている。メモリセルMTr0〜MTr15は、電荷蓄積層に電荷を蓄積させることで、情報を記憶する。
バックゲートトランジスタBTrは、最下層のメモリセルMTr7とメモリセルMTr8との間に接続されている。従って、メモリセルMTr0〜MTr15、及びバックゲートトランジスタBTrは、カラム方向に沿った断面においてU字形状に接続されている。ソース側選択トランジスタSSTrのドレインは、メモリストリングMSの他端(メモリセルMTr0のソース)に接続されている。ドレイン側選択トランジスタSDTrのソースは、メモリストリングMSの一端(メモリセルMTr15のドレイン)に接続されている。
メモリユニットMUにおいて、1つのメモリブロックMB中のメモリセルMTr0のゲートは、ワード線WL0に共通接続されている。同様に、1つのメモリブロックMB中のメモリセルMTr1〜MTr15それぞれのゲートは、対応するワード線WL1〜WL15に共通接続されている。また、ロウ方向及びカラム方向にマトリクス状に配列されたバックゲートトランジスタBTrのゲートは、バックゲート線BGに共通接続されている。
メモリユニットMUにおいて、ロウ方向に一列に配列された各ドレイン側選択トランジスタSDTrのゲートは、ロウ方向に延びるドレイン側選択ゲート線SGDに共通接続されている。また、カラム方向に一列に配列されたドレイン側選択トランジスタSDTrのドレインは、ビット線BLに共通に接続されている。
メモリユニットMUにおいて、ロウ方向に一列に配列された各ソース側選択トランジスタSSTrのゲートは、ロウ方向に延びるソース側選択ゲート線SGSに共通接続されている。また、カラム方向に隣接する一対のメモリユニットMUにおいて、ロウ方向に一列に配列されたソース側選択トランジスタSSTrのソースは、ロウ方向に延びるソース線CELSRCに共通に接続されている。
図4は、図2に示すメモリセルの断面図である。
ワード線導電層41は、カラム方向に所定ピッチをもってロウ方向に延びるストライプ状に形成された部分を有する。ワード線導電層41は、ポリシリコン(poly−Si)あるいはポリサイドにて構成されている。ワード線導電層41はメモリセルデバイスの制御ゲートに対応している。
ワード線導電層41、及び絶縁層42を貫通するように形成されたメモリホール43の内側には、メモリゲート絶縁層44及び柱状の半導体層45を有する。
メモリゲート絶縁層44は、ブロック絶縁層44a、電荷蓄積層44b、及びトンネル絶縁層44cを有する。ブロック絶縁層44aは、酸化シリコン(SiO2)にて構成されている。電荷蓄積層44bは、ブロック絶縁層44a上に形成される。電荷絶縁層44bは、電荷を蓄積し、メモリセルMTr0〜MTr15のデータを保持するために用いられる。電荷蓄積層44bは、窒化シリコン(SiN)にて構成されている。トンネル絶縁層44cは、電荷蓄積層44b上に形成される。トンネル絶縁層44cは、酸化シリコン(SiO2)にて構成されている。柱状の半導体層45は、ポリシリコン(poly−Si)にて構成されている。ワード線41より上側及び下側に位置する半導体層45は、メモリセルデバイスのドレイン端子又はソース端子に対応し、ビット線又はセルソース線に電気的に接続される。ワード線導電層の電位及び電荷蓄積層の電荷蓄積状態に応じて、半導体層45を流れるセル電流が変化するため、これを利用してデータを記憶する。
(データの記憶方法)
次に、図5を参照して、この不揮発性半導体記憶装置のデータの記憶方法について説明する。
ここでは、1つのメモリセルに2bitの情報が記憶される2bit/セルの場合について説明する。
図5は、2bit/セルに適用される4つの閾値分布とデータの割り当てを示している。前述したように、本実施の形態のメモリセルは、電荷蓄積層を有しているため、そこに保持する電荷量を制御することによって、所望の閾値電圧を得ることができる。最も低い閾値分布Eは、消去動作によって得られる閾値電圧である。閾値分布Eより高い、分布A〜Cは書き込み動作によって得られる閾値分布である。
2bit/セルは、2bitを2つのページアドレスに対応するデータとして記憶する。すなわち、下位(lower)ページのデータと上位(Upper)ページのデータが1つのメモリセルに記憶される。下位ページのデータ“1”は、E分布とA分布に対応し、データ“0”はB分布とC分布に対応する。上位ページのデータ“1”はE分布とC分布に対応し、データ“0”はA分布とB分布に対応する。
下位ページのデータは、ワード線電圧V_BRを用いて読み出し動作をすることにより、“1”又は“0”のデータを読み出すことができる。すなわち、E分布又はA分布に対応する閾値がメモリセルに記憶されている場合、メモリセルの閾値よりもワード線(制御ゲート)の電位が高い場合、メモリセルがオン状態となりセル電流がビット線からセルソース線に向かって流れる。逆に、B分布又はC分布に対応する閾値がメモリセルに記憶されている場合、メモリセルの閾値より制御ゲートの電位が低いため、メモリセルはオフ状態となりセル電流が流れない。このようなセル電流の違いが、ビット線に接続されるデータ回路内のセンスアンプにより検出され、メモリセルのデータが“0”であるか“1”であるかを判定できる。
上位ページの場合、ワード線電位としてV_ARとV_CRを用いて読み出し動作が行われ、データ回路の中で所定の演算を行うことによって、データを識別することができる。すなわち、メモリセルの閾値電圧がV_ARとV_CRの間にあると判定されたメモリセルのデータが“0”であると判定され、メモリセルの閾値電圧がV_ARより低と判定された場合、及びV_CRより高いと判定された場合、データは“0”と判定される。
(一般的な三次元構造のNANDフラッシュメモリの閾値電圧の変化)
図6を用いて、上記図3に示した複数のメモリセルに対して、読み出し、書き込み、消去の各動作を行う場合のメモリセルの特性について説明する。
図6A〜図6Gは、消去動作を行った後のメモリストリング内の4ページ分の閾値分布を示している。実際は、メモリストリング内の全てのページが対象であるが、ここでは、セルの特性の振る舞いを分かり易く示すため、メモリストリング内のソース側の半分に属するワード線WL0とワード線WL7と、ドレイン側(ビット線側)の半分に属するワード線WL8とワード線WL15を取り出して説明することとする。また、ワード線WL0〜WL7のグループをサブブロックSubB_A、WL8〜WL15のグループをサブブロックSubB_Bと言うこととする。ここで、サブブロックは、例えばワード線WL0〜WL7に接続された全メモリユニットのメモリセルを含んでいる。
図6Aに示すように、消去動作が理想的に実行された場合、消去後の各ページの閾値電圧分布は、最も高い閾値電圧が消去ベリファイレベルEV付近である閾値分布となる。
次に、図6Bに示すように、ワード線WL0のセルがA状態に書き込まれる。AVは、A状態の書き込みベリファイレベルを示し、正常に書き込まれると、書き込みベリファイレベルAV以上の閾値分布ができる。
その後、ワード線WL1からWL7までのセルが順次書き込まれる。
図6Cは、ワード線WL7の書き込みが完了した状態を示している。この時、ワード線WL0の閾値分布は、若干閾値が高い側にシフトする。このシフトは、ワード線WL0に接続されたメモリセルに着目した場合、同一のメモリストリング内のワード線WL1からWL7のメモリセルに書き込みが行われたことによって、ワード線WL0を書き込んだ直後のセル電流が減少することによって生じる効果である。ここでは、このシフトをバックパターンノイズと称することとする。
このバックパターンノイズの大きさは、どのような書き込みデータが同一のメモリストリング内に記憶されたかによって変わるが、ここでは、どの場合においても平均的な大きさのノイズであるとする。この状態のノイズは、例えば書き込みデータが、著しく偏りのないパターンになるようにランダムな処理が意図的に加えられているような状態に相当する。
図6Dは、その後、ワード線WL8〜WL15に接続されたメモリセルにも同様の書き込みが行われた状態を示している。このような書き込みが実行されると、ワード線WL0のバックパターンノイズは、ワード線WL8〜15の書き込みデータによって更に大きくなる。通常、NANDフラッシュメモリは、セルソース側のメモリセルからドレイン側のメモリセルに向かって書き込まれるため、最初に書き込まれたメモリセルのバックパターンノイズが最も大きくなる。
ここで、各ワード線の分布において、点線で示す分布は、それぞれ書き込みを行った直後の分布を示している。もし、上記のようなランダムな書き込みがない場合、他のセルの書き込みが終了した時点でも、書き込み直後の閾値状態が維持されることを意味している。
次に、図6Eは、図6Dの状態より、サブブロックSubB_Aを構成するワード線WL0〜WL7に接続されたメモリセルが消去された場合を示している。
この消去動作により、ワード線WL0〜WL7に接続されたセルは、消去ベリファイレベルEVを上限とする閾値状態に戻され、ワード線WL8〜WL15に接続されたセルの閾値分布は、ワード線WL0〜WL7のバックパターンがなくなったことにより、所定量だけ閾値分布が低い側にシフトする。
その後、図6Fに示すように、再びワード線WL0に接続されたメモリセルが書き込まれた場合、ワード線WL8〜WL15の閾値分布は殆ど変化しない。すなわち、ワード線WL0のデータパターンだけでは、著しく大きなバックパターンノイズが発生しないため、ワード線WL8〜WL15の閾値分布は殆ど変化しない。
次いで、図6Gに示すように、残りのワード線WL1〜WL7が書き込まれると、ワード線WL0は、それらの書き込みによってバックパターンノイズを受けるが、ワード線WL7は、書き込み直後であるため、ベリファイレベルAVを下限とする閾値分布になる。
上記のように、書き込みと消去を行った場合におけるA状態の閾値分布のシフト量は、最も低い図6Eから最も高い図6Dの幅となる。ここで、閾値電圧分布幅を定量化するために、ビット毎のベリファイで書き込まれた閾値電圧の分布幅を6・Vtwとし、1つのサブブロック内のワード線が書き込まれたときの閾値電圧の変化分を1・Vtwとすると、状態Aの閾値電圧分布の範囲は、9・Vtwとなる。このため、サブブロックが消去された場合、その後の書き込み動作により、全体的な閾値電圧分布のシフト量が増加し、閾値電圧の分布範囲が広がるという問題がある。
(第1の実施形態)
図7は、第1の実施形態を示すものであり、所定の書き込み状態のための書き込みベリファイレベルの例を示している。
図7は、ある閾値電圧分布において、Vvfy_minを下限として、一定のステップ電圧dvで、例えば8段階のレベル設定を可能とする例を示している。この設定レベルは、例えば4値の閾値電圧分布Aレベル、Bレベル、Cレベルの何れにも適用される。
図8A乃至図8Jを参照して、例えば図6と同様にAレベルの閾値電圧分布に第1の実施形態を適用した場合の動作について説明する。
図8Aは、消去後の閾値電圧分布を示しており、図8Bは、ワード線WL0に接続されてメモリセルにA状態が書き込まれた場合を示している。図8A、図8Bは、図6A、図6Bと同様である。ワード線WL0のベリファイレベルは、例えばVvfyminに設定される。
この後、ワード線WL1に接続されたメモリセルに書き込みを行う場合、ベリファイレベルは、例えばVvfyminに設定され、ワード線WL2、WL3に接続されたメモリセルに書き込みを行う場合、ベリファイレベルは、例えばVvfymin+dvに設定される。ワード線WL4、WL5に接続されたメモリセルに書き込みを行う場合、ベリファイレベルは、例えばVvfymin+2dvに設定され、ワード線WL6、WL7に接続されたメモリセルに書き込みを行う場合、ベリファイレベルは、例えばVvfymin+3dvに設定される。
ベリファイレベルのシフト量は、上記のように、二つのワード線毎に増加する方法に限定されるものではなく、着目セルの閾値分布の上限が、先に書き込まれたワード線に接続されたメモリセルの閾値電圧の上限を超えないように、最適に設定すればよい。
図8Cは、ワード線WL7に接続されたメモリセルにデータを書き込む場合を示しており、ベリファイレベルが、Vvfymin+3dvに設定されて書き込みベリファイが実行された場合を示している。
図8Dは、ワード線WL0〜WL7が書き込まれた状態であって、ワード線WL8〜WL15に書き込む場合、ワード線WL8には例えば、Vvfymin+4dvのベリファイレベルが印加され、ワード線WL15にはVvfymin+7dvのベリファイレベルが印加されて、書き込みが行われる。
次に、図8Eにおいて、ワード線WL0〜WL7について消去動作を実行すると、ワード線WL8〜WL15の閾値電圧は、ワード線WL0〜WL7のバックパターンの消去に伴い、閾値電圧が低い側にシフトする。
しかし、第1の実施形態の場合、ベリファイレベルが予め一定電圧ndv(nは1〜7)だけ高く設定されているため、閾値電圧が低下した後の分布は、ワード線WL0のVvfyminより低下することを防止できる。
この後、図8F、図8Gにおいて、ワード線WL0〜WL7に接続されたメモリセルが書き込まれるが、同じWL0〜WL7が書込みの対象であっても、図8B、図8Cとは異なる制御が適用される。
ワード線WL8〜WL15接続されたメモリセルが書き込まれた状態であって、ワード線WL0〜WL7に書き込む場合、ワード線WL0には例えば、Vvfymin+4dvのベリファイレベルが印加され、ワード線WL15にはVvfymin+7dvのベリファイレベルが印加される。
このように、着目するメモリストリング内において、他のサブブロックに書込み状態がある場合には、それよりも後で書込みが行われるサブブロックのワード線には、相対的に高いベリファイレベルを適用する。
この状態において、閾値電圧分布を図6Gに示す閾値電圧分と比較すると、図8Gにおいて、状態Aの閾値電圧分布の範囲は8Vtwであり、図6Gに比べて、閾値電圧分布の範囲が狭くなっている。
次いで、図8Hに示すように、サブブロックSubB_A、SubB_Bの全体が消去される。
この後、図8Iに示すように、ワード線WL8〜WL15に接続されたメモリセルが書き込まれる。
ここで、ワード線WL8に接続されたメモリセルを書き込む場合において、ワード線WL0〜WL7に接続されたメモリセルが書き込まれていない場合、ワード線WL8のベリファイレベルは、Vvfyminとなることが重要である。また、ワード線WL15には、Vvfymin+3dvが印加される。ワード線WL0〜WL7を含むサブブロックSubB_Aが書き込まれているか否かがフラグデータにより判別され、ベリファイレベルが制御される。
ここで、フラグデータとは、ワード線WL0に接続された複数のメモリセルのうち1又は複数のメモリセルがフラグセルとして機能し、このフラグセルに書き込まれたデータを意味する。このフラグデータは、サブブロックSubB_Aの場合、ワード線WL0に接続されたフラグセルに書き込まれ、サブブロックSubB_Bの場合、ワード線WL8に接続されたフラグセルに書き込まれる。すなわち、ワード線WL0、又はWL8に接続されたメモリセルにデータが書き込まれるとき、これらメモリセルと同時に選択されるフラグセルにフラグデータが書き込まれる。フラグデータの閾値電圧は、例えばLMレベル(AレベルとBレベルの中間のレベル)に設定される。このフラグデータは、前述したように、例えば図1に示すチップ内の制御回路15で識別され、上記のようなベリファイレベルの制御が実行される。
尚、ベリファイレベルの制御は、制御回路15に限定されるものではなく、チップ外のコントローラがフラグデータを判別し、コマンド発行やパラメータの設定変更によって、ベリファイレベルを制御してもよい。
次いで、図8Jに示すように、ワード線WL0からワード線WL7に順次書き込みが実行される。ワード線WL0からワード線WL7の書き込みは、ワード線WL8〜WL15の書き込みが行われた後であるため、ベリファイレベルがそれに応じて変更される。すなわち、ワード線WL0には、例えばVvfymin+4dvが印加され、ワード線WL7には、例えばVvfymin+7dvが印加される。
このようにベリファイレベルを設定することにより、サブブロックSubB_AやSubB_Bの単位で、消去動作を行った後、書き込みを行っても、閾値分布幅が広がることを防止できる。
図9は、1ページ内のメモリセルとフラグセルの関係、及びキャッシュメモリの関係を示すものであり、図1と同一部分には同一符号を付している。
図9に示すように、フラグセルFLCは、ページ内に設けられている。すなわち、各ページは、複数のメモリセルMCとフラグセルFLCとにより構成されている。フラグセルの数は1つに限定されるものではなく、複数であってもよい。
データ回路・ページバッファ13は、それぞれ複数のセンスアンプSAとキャッシュメモリC0〜C2により構成されている。キャッシュメモリC2は、入出力回路16に接続され、書き込みデータ又は読み出しデータ及びフラグデータを保持する。フラグデータは、フラグレジスタ20を介して制御回路15と授受される。
(書き込み動作)
図10、図11、図12を参照して、上述した書き込み動作についてさらに説明する。
図10は、データ書き込み時における不揮発性半導体記憶装置の動作を示している。図示せぬ外部のコントローラは、ライトイネーブル信号/WEを活性化して、データロードを示すコマンド“80h”を発行し、選択ページのアドレス及びデータを出力する。この後、プログラムの実行を示すコマンド“10h”がコントローラから発行されると、制御回路15は、レディ・ビジー信号をビジー状態(ローレベル)とし、書き込み動作を実行する。
書き込み動作において、期間T1は、フラグをセットするための処理を示している。選択されたページアドレスがサブブロックSubB_Aのワード線WL0、又はサブブロックSubB_Bのワード線WL8である場合、フラグデータをフラグセルFLCに書き込むためのフラグデータをキャッシュメモリC0〜C2のいずれかにセットして、後述する通常のデータ書き込みと同時に書き込みが行われるようにする。すなわち、実際に、フラグセルFLCのみに書き込み動作を行うと書き込み時間が長くなってしまうため、ここでは、フラグ書き込みのデータ設定のみが行われる。あるいは、どのページにもフラグデータを書き込むこととしてもよい。
この後、期間T2において、書き込み対象のサブブロックと対となる他方のサブブロックが書き込まれているかどうかを判別するため、他方のサブブロックのフラグデータが読み出される。この読み出されたフラグデータに従って、ベリファイレベルが設定される。
次いで、期間T3において、選択されたページにデータが書き込まれ、設定されたベリファイレベルによりプログラムベリファイが実行される。
(サブブロックSubB_Aのプログラム動作)
図11は、選択ページのアドレスが例えばサブブロックSubB_Aのワード線WL0〜WL7を指定する場合における期間T1〜T3の動作を示している。
先ず、選択ページのアドレスがワード線WL0を示すか否かが判別される(ST11)。この結果、選択ページのアドレスがワード線WL0を示す場合、フラグデータをセットするための処理が実行される(ST12)。すなわち、図1に示すフラグレジスタ20にフラグデータが設定され、このフラグデータが図9に示すキャッシュメモリC2のフラグセルFLCに対応する部分にセットされる。このキャッシュメモリC2の他の領域には、コマンド“80h”によりロードされたデータがセットされている。
一方、選択ページのアドレスが例えばサブブロックSubB_Aのワード線WL1〜WL7を指定する場合、フラグデータのセット処理は実行されない。
次に、サブブロックSubB_Bにデータが書き込まれているかどうかを知るため、サブブロックSubB_Bのフラグデータが読み出される(ST13)。すなわち、サブブロックSubB_Bのワード線WL8が選択され、フラグセルFLCからフラグデータが読み出される。このデータは、キャッシュメモリC0〜C2を介してフラグレジスタ20に供給される。
制御回路15は、フラグレジスタ20に保持されたフラグデータに基づき、サブブロックSubB_Bにデータが書き込まれているかどうかを判別する(ST14)。
この判別の結果、サブブロックSubB_Bにデータが書き込まれていない場合、メモリストリングに対する最初の書き込みであるため、ベリファイレベルの初期値Vvfy_0としてVvfy_minが設定され、ワード線WL0に接続されたメモリセルのプログラム及びプログラムベリファイが実行される(ST15)。
サブブロックSubB_Bにデータが書き込まれていない場合、以後のワード線WL1〜WL7のベリファイレベルVvfy_i(i=1〜7)は、選択されたワード線WLiに従って、前述したように、例えばk*dVvfy(k=1〜3)ずつ増加される。
一方、前記ステップST14において、サブブロックSubB_Bにデータが書き込まれていると判別された場合、ベリファイレベルの初期値Vvfy_0としてVvfy_min+M*dVvfy(例えばM=4)が設定され、プログラム及びプログラムベリファイが実行される(ST16)。尚、Mの値は、例えば同じベリファイレベルを適用するワード線の本数が、2のべき乗となるように設定される。
サブブロックSubB_Bにデータが書き込まれている場合、以後のワード線WL1〜WL7のベリファイレベルVvfy_i(i=1〜7)は、選択されたワード線WLiに従って、前述したように、例えばk*dVvfy(k=5〜7)ずつ増加される。
(サブブロックSubB_Bのプログラム動作)
図12は、選択ページのアドレスが例えばサブブロックSubB_Bのワード線WL0〜WL7を指定する場合における期間T1〜T3の動作を示している。
この場合、先ず、選択ページのアドレスがワード線WL8を示すか否かが判別される(ST21)。この結果、選択ページのアドレスがワード線WL8を示す場合、フラグデータをセットするための処理が実行される(ST22)。すなわち、図1に示すフラグレジスタ20にフラグデータが設定され、このフラグデータが図9に示すキャッシュメモリC2のフラグセルFLCに対応する部分にセットされる。このキャッシュメモリC2の他の領域には、コマンド“80h”によりロードされたデータがセットされている。
一方、選択ページのアドレスが例えばサブブロックSubB_Bのワード線WL9〜WL15を指定する場合、フラグデータのセット処理は実行されない。
次に、サブブロックSubB_Aにデータが書き込まれているかどうかを知るため、サブブロックSubB_Aのフラグデータが読み出される(ST23)。すなわち、サブブロックSubB_Aのワード線WL0が選択され、フラグセルFLCからフラグデータが読み出される。このデータは、キャッシュメモリC0〜C2を介してフラグレジスタ20に供給される。
制御回路15は、フラグレジスタ20に保持されたフラグデータに基づき、サブブロックSubB_Aにデータが書き込まれているかどうかを判別する(ST24)。
この判別の結果、サブブロックSubB_Aにデータが書き込まれていない場合、メモリストリングに対する最初の書き込みであるため、ベリファイレベルの初期値Vvfy_0としてVvfy_minが設定され、ワード線WL8に接続されたメモリセルのプログラム及びプログラムベリファイが実行される(ST25)。
サブブロックSubB_Aにデータが書き込まれていない場合、以後のワード線WL91〜WL157のベリファイレベルVvfy_i(i=9〜15)は、選択されたワード線WLiに従って、前述したように、例えばk*dVvfy(k=1〜3)ずつ増加される。
一方、前記ステップST24において、サブブロックSubB_Aにデータが書き込まれていると判別された場合、ベリファイレベルの初期値Vvfy_0としてVvfy_min+M*dVvfy(例えばM=4)が設定され、プログラム及びプログラムベリファイが実行される(ST26)。
サブブロックSubB_Aにデータが書き込まれている場合、以後のワード線WL9〜WL15のベリファイレベルVvfy_i(i=9〜15)は、選択されたワード線WLiに従って、前述したように、例えばk*dVvfy(k=5〜7)ずつ増加される。このように、サブブロックが2個の場合には、ベリファイレベルの調整用の電圧範囲も2つのグループに分けて用いられる。すなわち、k*dVvfy(k=0〜3)は低い側のベリファイレベルの調整用電圧のグループであり、k*dVvfy(k=4〜7)は高い側のベリファイレベルの調整用電圧のグループである。
尚、上記ベリファイレベルは、例えばサブブロックの数が4個である場合、ベリファイレベルが例えば4グループに分けられる。この4グループから書き込みを行うサブブロックに応じてベリファイレベルが、次のルールに従って選択される。
0個のサブブロックが書き込み済みの時、1番低いベリファイレベルのグループが選択される。
1個のサブブロックが書き込み済みの時、2番目に低いベリファイレベルのグループが選択される。
2個のサブブロックが書き込み済みの時、3番目に低いベリファイレベルのグループが選択される。
3個のサブブロックが書き込み済みの時、最も高いベリファイレベルのグループが選択される。
図13は、上記動作をまとめたものであり、フラグデータに従ったベリファイレベルを示している。
例えばケース(Case)0は、サブブロックSubB_Aのワード線WL0に接続されたメモリセルの書き込みを示している。この場合、フラグデータが“0”で、サブブロックSubB_Bが書き込まれていないため、ワード線WL0に印加されるベリファイレベルの初期値は、Vvfy_minに設定される。その他のワード線WL1〜WL15などには、電圧Vread(読み出しパス電圧)が供給される。また、サブブロックSubB_Aのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース1は、サブブロックSubB_Aが書き込まれた状態(フラグデータが“1”)において、ワード線WL2に接続されたメモリセルを書き込む場合を示している。この場合、サブブロックSubB_Bのフラグデータは“0”であり、サブブロックSubB_Bは、書き込まれていないため、ワード線WL2に印加されるベリファイレベルの初期値は、Vvfy_min+dVvfy(図13において、dVvfy=dvと表記している)に設定される。その他のワード線WL0、WL1〜WL3WL15などには、電圧Vreadが供給される。
例えばケース2は、サブブロックSubB_Bが書き込まれた状態(フラグデータが“1”)において、サブブロックSubB_Aのワード線WL0に接続されたメモリセルの書き込みを示している。この場合、ワード線WL0のベリファイレベルの初期値は、Vvfy_min+M*dVvfyに設定される。その他のワード線WL1〜WL15などには、電圧Vreadが供給される。また、サブブロックSubB_Aのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース3は、サブブロックSubB_A、及びSubB_Bが両方とも書き込まれた状態(両フラグデータが“1”)において、サブブロックSubB_Aのワード線WL2に接続されたメモリセルが書き込まれる場合を示している。この場合、ワード線WL2のベリファイレベルの初期値は、Vvfy_min+(M+1)*dVvfyに設定される。その他のワード線WL0、WL1、WL3〜WL15などには、電圧Vreadが供給される。
例えばケース4は、サブブロックSubB_Bのワード線WL8に接続されたメモリセルの書き込みを示している。この場合、サブブロックSubB_Aが書き込まれていないため(フラグデータが“0”)、ワード線WL8のベリファイレベルの初期値は、Vvfy_minに設定される。その他のワード線WL0〜WL7、WL9〜WL15などには、電圧Vreadが供給される。また、サブブロックSubB_Bのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース5は、サブブロックSubB_Bが書き込まれた状態(フラグデータが“1”)において、ワード線WL10に接続されたメモリセルが書き込まれる場合を示している。この場合、サブブロックSubB_Aが書き込まれていないため(フラグデータが“0”)、ワード線WL8のベリファイレベルの初期値は、Vvfy_min+dvに設定される。その他のワード線WL0〜WL9、WL11〜WL15などには、電圧Vreadが供給される。
例えばケース6は、サブブロックSubB_Aが書き込まれた状態(フラグデータが“1”)において、サブブロックSubB_Bのワード線WL8に接続されたメモリセルが書き込まれる場合を示している。この場合、サブブロックSubB_Aが書き込まれているため、ベリファイレベルの初期値は、Vvfy_min+M*dVvfy(図13では、dVvfy=dvと表記している)に設定される。その他のワード線WL0〜WL7、WL9〜WL15などには、電圧Vreadが供給される。また、サブブロックSubB_Bのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース7は、サブブロックSubB_A及びSubB_Bの両方が書き込まれた状態(両フラグデータが“1”)において、サブブロックSubB_Bのワード線WL10に接続されたメモリセルが書き込まれる場合を示している。この場合、サブブロックSubB_Aが書き込まれているため、ベリファイレベルの初期値は、Vvfy_min+(M+1)*dVvfy(図13では、dVvfy=dvと表記している)に設定される。その他のワード線WL0〜WL9、WL11〜WL15などには、電圧Vreadが供給される。
上記第1の実施形態によれば、ロウ方向に並ぶ複数のメモリユニットMU(メモリストリングMS)が複数のサブブロックSubB_A、SubB_Bに分割され、サブブロック毎にデータが消去される不揮発性半導体記憶装置であって、データの書き込み時、選択ワード線が含まれない非選択のサブブロックのフラグデータを判別し、非選択のサブブロックが書き込まれている場合と、書き込まれていない場合とで、選択ワード線に供給するベリファイレベルを変えている。すなわち、非選択サブブロックが書き込まれている場合のベリファイレベルを、非選択サブブロックが書き込まれていない場合のベリファイレベルより高く設定している。このため、メモリユニットMU内のサブブロックのデータが消去された場合においても、メモリセルの閾値電圧の分布範囲が広がることを防止できる。
尚、上記実施形態において、ベリファイレベルの制御は、制御回路15により行ったが、これに限定されるものではなく、外部のコントローラにより行うことも可能である。
また、第1の実施形態は、メモリユニットMU(メモリストリングMS)が2つのサブブロックに分割されている場合について説明したが、上述したように、メモリユニットMUが4個、又は8個に分割されている場合においても、非選択のサブブロックのフラグデータを読み出して非選択のサブブロックが書き込まれているかどうかを判別し、選択ワード線のベリファイレベルを設定することにより、第1の実施形態と同様の効果を得ることが可能である。
(第2の実施形態)
図14は、第2の実施形態を示すものであり、E、A、B、Cの各状態の閾値電圧分布と電圧Vreadの関係を示す図である。
前述したように、プログラムベリファイ動作において、非選択のメモリセルが接続されたワード線には、電圧Vreadが供給され、メモリセルが状態Cの閾値電圧に設定されている場合においても、セルがオンするように設定されている。
電圧Vreadに対する状態E、A、B、Cのオンマージンを消去分布Eに対してVovd(e)、A状態に対してVovd(a)、B状態に対してVovd(b)、C状態に対してVovd(c)とすると図14に示すようになる。
ソース側のメモリセルから順番に書き込むことを基本手順とすると、ある選択セルで書き込みベリファイが行われる時、選択セルよりビット線側の非選択セルに印加されるVreadのオンマージンは、Vovd(e)となる。
一方、読み出し動作において、Vreadに対するオンマージンは、書き込まれたデータによって、Vovd(e)〜Vovd(c)となる。オンマージンがVovd(c)のメモリセルが多く含まれると、書き込みベリファイの場合よりもメモリストリング内の非選択セルにおいてセル電流が流れにくい状態となり、相対的にセル電流が減少し、前述したバックパターンノイズが大きくなる。
逆に、オンマージンがVovd(e)のメモリセルが多く含まれると、書き込みベリファイ時と同様の状態が維持されることとなって、セル電流の変化は小さくなり、バックパターンノイズは小さくなる。
ここで、書き込みベリファイの時のVreadを、図14に示す電圧Vcv(例えばVovd(b)<Vcv<Vovd(c))に低下させると、非選択セル部のオンマージンは、Vovd(vfy)となり、読み出し動作時のオンマージンとなるVovd(e)〜Vovd(c)の中間的な状態を設定することができるようになる。これはバックパターンノイズが、正にも負にもなり得ることを意味する。
第2の実施形態は、電圧Vread(第1の読み出しパス電圧)と、これより低い電圧Vcv(第2の読み出しパス電圧)を用いて書き込みベリファイを制御する例である。
消去状態からワード線WL0に書き込みを行う場合、ワード線WL0が属さないサブブロックSubB_Bが消去状態である場合、ワード線WL0以外の例えばワード線WL2〜WL15に、電圧Vreadより低い読み出しパス電圧Vcvを印加することができる。
ここで、読み出しパス電圧Vcvは、図14において、Vovd(vfy)≒Vovd(c)のような関係にある電圧であるとする。この場合、ベリファイ読み出し動作時において、電圧Vcvが印加される非選択セルの閾値電圧は消去状態(消去分布E)である。電圧Vcvが印加されるセルはオン状態となるが、セル電流は電圧Vreadを印加する場合に比べて小さい。
一方、読み出し動作時、非選択セルには電圧Vreadが印加されるため、状態Cの閾値電圧に書き込まれたセルは、ベリファイ時と同程度のセル電流が流れるが、状態E〜Bの閾値電圧に書き込まれたセルは、オン状態となるベリファイ読み出し時よりも相対的に大きな電流が流れる。したがって、通常、状態E〜Cのいずれかの閾値電圧であって、ランダムな閾値電圧になる傾向があるとすると、上記のような電圧Vcvを用いて書き込みを行うと、バックパターンノイズは、閾値電圧分布が低電位側にシフトする。
図15A〜15J、図16、図17を参照して第2の実施形態の動作について説明する。尚、図16、図17において、図11、図12と同一部分には同一符号を付し、詳細な説明は省略する。
図15A〜15Jは、第2の実施形態に係る書き込み、消去動作を行った場合における閾値電圧分布を示すものであり、代表的にサブブロックSubB_Aに属するワード線WL0とワード線WL7で制御されるメモリセルの閾値電圧分布と、サブブロックSubB_Bに属するワード線WL8とWL15で制御されるメモリセルの閾値電圧分布を示している。
(サブブロックSubB_Aのプログラム動作)
図15Aは、サブブロックSubB_A、SubB_Bが共に消去された後の状態を示しており、各メモリセルの閾値電圧は、消去レベル、すなわち状態Eとなっている。
この状態より、サブブロックSubB_Aに属するワード線WL0に接続されたメモリセルにデータを書き込む場合(ST11)、フラグデータをセットするための処理が実行される(ST12)。
次いで、ワード線WL8に接続されたフラグセルFLCからフラグデータが読み出され(ST13)、サブブロックSubB_Bが消去されているかどうかが判別される(ST31)。
この判別の結果、サブブロックSubB_Bが消去されている場合、選択されたワード線WL0に接続されたメモリセルにデータが書き込まれ、フラグセルFLCにフラグデータが書き込まれ、次いで書き込みベリファイが行われる(ST32)。このワード線WL0の書き込みベリファイにおいて、ワード線WL0にはベリファイ電圧Vvfyが供給され、ワード線WL1には、例えば電圧Vreadが供給され、消去状態のワード線WL2〜WL15には、電圧Vcvが供給される。
図15Bは、ワード線WL0を選択して書き込み及び書き込みベリファイを行った後の閾値電圧を示している。書き込みベリファイにおいて、選択ワード線WL0より所定本数、例えば2本離れた非選択ワード線WL2からワード線WL15に電圧Vcvが印加されている。
このようにして、サブブロックSubB_A内のワード線WL1以降が順次書き込まれる。この際、選択ワード線がWLnである場合、書き込みベリファイにおいて、ワード線WLn+2〜WL15に電圧Vcvが供給され、ワード線WLn+1に電圧Vreadが供給される。
図15Cは、ワード線WL0の書き込みからワード線WL7まで書き込みが行われた後の閾値電圧を示している。ワード線WL7の閾値電圧分布は、書き込み直後の閾値電圧分布であるため、ターゲットとするベリファイレベルAVより高い側に閾値電圧分布が存在する。
一方、ワード線WL0の閾値電圧分布は、ワード線WL1からワード線WL7の書き込みによって、ワード線WL0の書き込み直後の閾値電圧分布から閾値電圧が若干ずれた状態となる。すなわち、非選択ワード線を電圧Vcvに設定した場合、閾値電圧分布は、図15Cに破線で示すように、書き込み直後の閾値電圧分布より低い側に広がる。1つのサブブロック分(8本のワード線)の書き込み動作による閾値電圧のシフト量を、この説明において、1・Vtwと定義する場合、ワード線WL0の閾値電圧のシフト量は、1・Vtwとなる。
尚、前記ステップST14において、サブブロックSubB_Bが消去されていない場合、ステップST33に制御が移行する。ステップST33の動作は後述する。
(サブブロックSubB_Bのプログラム動作)
次に、図17に示すステップST21において、サブブロックSubB_Bのワード線WL8に接続されたメモリセルにデータを書き込むものと判断された場合(ST21)、フラグデータをセットするための処理が実行される(ST22)。
次いで、ワード線WL0に接続されたフラグセルFLCからフラグデータが読み出され(ST23)、サブブロックSubB_Aが消去されているかどうかが判別される(ST41)。
この判別の結果、サブブロックSubB_Aには、既にデータが書き込まれていため、選択されたワード線WL0に接続されたメモリセルにデータが書き込まれ、次いで書き込みベリファイが行われ、次いで書き込みベリファイが行われる(ST43)。このワード線WL8の書き込みベリファイにおいて、ワード線WL8には、ベリファイ電圧Vvfyが供給され、ワード線WL9、WL0〜WL7には、例えば電圧Vreadが供給され、消去状態のワード線WL10〜WL15には電圧Vcvが供給される。
このようにして、サブブロックSubB_B内のワード線WL9以降が順次書き込まれる。この際、選択ワード線がWLnである場合、書き込みベリファイにおいて、ワード線WLn+2〜WL15に電圧Vcvが供給され、ワード線WLn+1、WL0〜WL7に電圧Vreadが供給される。
図15Dは、サブブロックSubB_Bに属する8本のワード線WL8〜WL15に書き込みを行った後の閾値電圧を示している。この場合、ワード線WL0の閾値電圧分布は図15Cの状態よりも更に低い側に広がる。この場合のシフト量は、2・Vtwとなる。
図15Eは、サブブロックSubB_Aを消去した後の閾値電圧を示している。ここで、サブブロックSubB_Bに属するワード線WL8〜WL15の閾値電圧分布は、全体的に1・Vtw程度低い側にシフトする。この時、ワード線WL8の閾値電圧分布の最も低い部分は、消去の前後で1Vtw程度低下する。しかし、この閾値電圧分布の位置は、図15Dに示すワード線WL0の閾値電圧分布の最も低い部分と同程度の位置にあると期待することができる。なぜなら、ワード線WL8の閾値電圧分布は、サブブロックSubB_Aの書き込み後に書き込まれ、ワード線WL0の閾値電圧分布の位置とは、1・Vtw程度の違いがあるからである。
(サブブロックSubB_Aのプログラム動作:ST33)
上記のように、サブブロックSubB_Aを消去した後、再びワード線WL0に接続されたメモリセルにデータを書き込む場合、図16に示すステップST11からST13が上述したように実行され、ステップST31において、サブブロックSubB_Bが消去されているかどうかが判別される。
この判別の結果、サブブロックSubB_Bは消去されていないため、制御がステップST33に移行され、ワード線WL0の書き込み及び書き込みベリファイが実行される。この書き込みベリファイにおいて、ワード線WL0にベリファイ電圧Vvfyが供給され、ワード線WL1、WL8〜WL15に電圧Vreadが供給され、ワード線WL2〜WL7に電圧Vcvが供給される。
図15Fは、サブブロックSubB_Aのワード線WL0に再び書き込み動作を行った場合を示している。この場合、選択されたサブブロックSubB_A内の非選択ワード線のうち、選択ワード線から例えば2本数離れたワード線WL2〜WL7は、消去状態であるため、電圧Vcvが印加される。
この後、サブブロックSubB_Aのワード線WL1〜WL7に接続されたメモリセルにデータが書き込まれる。この場合、選択ワード線をWLnとすると、ワード線WLn+2〜WL7に電圧Vcvが供給され、ワード線Wln+1、WL8〜WL15に電圧Vreadが供給される。
図15Gは、サブブロックSubB_Aの全てのワード線に書き込みを行った後の閾値電圧である。ここで、ワード線WL0の閾値電圧分布において、ワード線WL0の書き込みを行った後で、ワード線WL1〜WL7に状態E〜Cの閾値電圧へ平均的な書き込みが行われた場合、ワード線WL0において、閾値電圧分布が低下する傾向がみられる。仮に、同じメモリストリングのワード線WL1〜WL7の全てに状態Cの閾値電圧となるようなデータが書き込まれた場合、書き込み直後の閾値電圧分布が保たれる。
一方、サブブロックSubB_Bの閾値電圧分布においては、ワード線WL8の閾値電圧分布の最も低い部分は、サブブロックSubB_B内の着目ストリングにおいて、平均的なデータの書き込みが行われた場合に対応している。サブブロックSubB_Aに平均的なデータの書き込みがなかった場合、すなわち、殆ど消去状態のままとなるようなデータ書き込みの場合、ワード線WL8の閾値電圧分布の最も低い部分は、その位置を保つようになり、逆にSubB_Aに平均的なデータの書き込みがあった場合には、1・Vtw程度の閾値電圧分布の上昇がみられる。
以上より、このような制御方法によっても、着目する書き込み状態の閾値電圧分布の幅を8・Vtw程度に制御することが可能となる。
(サブブロックSubB_Bのプログラム動作:ST42)
図15Hは、サブブロックSubB_A及びSubB_Bの両方を消去した状態を示している。
この状態において、サブブロックSubB_Bにデータを書き込む場合、図17のステップST21〜ST23が上記のように実行され、サブブロックSubB_Aが消去されているかどうかが判別される(ST41)。
この判別の結果、サブブロックSubB_Aが消去されているため、制御がステップST42に移行され、サブブロックSubB_Bの書き込み及び書き込みベリファイがワード線WL8から実行される(ST42)。この書き込みベリファイにおいて、ワード線WL8にベリファイ電圧Vvfyが供給され、ワード線WL9に電圧Vreadが供給され、WL10〜WL15、ワード線WL0〜WL7に電圧Vcvが供給される。
次いで、ワード線WL9〜WL15の書き込み及び書き込みベリファイが実行される。このとき、選択ワード線をWLnとすると、ワード線WLn+1に電圧Vreadが供給され、ワード線WLn+2〜WL15、WL0〜WL7に電圧Vcvが供給される。
図15Iは、サブブロックSubB_Bのワード線WL8〜WL15に再び書き込み動作を行った場合を示している。この場合、非選択のサブブロックSubB_A内の非選択ワード線WL0〜WL7は、消去状態であるため、電圧Vcvが印加される。
(サブブロックSubB_Aのプログラム動作:ST33)
この後、上記ステップST33に従って、サブブロックSubB_Aのワード線WL1〜WL7に接続されたメモリセルにデータが書き込まれる。
図15Jは、ワード線WL0〜WL7が書き込まれた状態を示している。
図18は、上記動作をまとめたものであり、フラグデータに従ったベリファイレベルを示している。
例えばケース(Case)0は、サブブロックSubB_Aのワード線WL0に接続されたメモリセルの書き込みを示している。この場合、フラグデータが“0”で、サブブロックSubB_Bが書き込まれていないため、ワード線WL0に印加されるベリファイレベルは、Vvfyに設定される。ワード線WL1には、電圧Vreadが供給され、ワード線WL2〜WL15には、電圧Vcvが供給されている。また、サブブロックSubB_Aのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース1は、サブブロックSubB_Aのワード線WL1に接続されたメモリセルの書き込みを示している。この場合、サブブロックSubB_Aのフラグデータが“1”に書き込まれ、サブブロックSubB_Bのフラグデータが書き込まれていない。ワード線WL1のベリファイレベルは、Vvfyに設定され、ワード線WL0、WL2には、電圧Vreadが供給され、ワード線WL3〜WL7、WL8〜WL15に電圧Vcvが供給される。
例えばケース2は、サブブロックSubB_Aのワード線WL1に接続されたメモリセルの書き込みを示している。この場合、両フラグデータが“1”で、サブブロックSubB_A及びSubB_Bの両方が書き込まれている。ワード線WL1のベリファイレベルは、Vvfyに設定され、ワード線WL0、WL2、ワード線WL8〜WL15には、電圧Vreadが供給され、ワード線WL3〜WL7に電圧Vcvが供給される。
例えばケース3は、サブブロックSubB_Bのワード線WL8に接続されたメモリセルの書き込みを示している。この場合、フラグデータが“0”で、サブブロックSubB_Aが書き込まれていない。ワード線WL8のベリファイレベルは、Vvfyに設定され、ワード線WL9には、電圧Vreadが供給され、ワード線WL0〜WL7、WL10〜WL15には電圧Vcvが供給される。また、サブブロックSubB_Bのフラグデータは“0”から“1”に書き込まれることを示している。
例えばケース4は、サブブロックSubB_Bのワード線WL9に接続されたメモリセルの書き込みを示している。ケース4は、サブブロックSubB_Bが書き込まれた状態(フラグデータが“1”)において、サブブロックSubB_Aが書き込まれていない状態である(フラグデータが“0”)。ワード線WL9のベリファイレベルは、Vvfyに設定され、ワード線WL8、WL10には、電圧Vreadが供給され、ワード線WL0〜WL7、WL11〜WL15には電圧Vcvが供給される。
例えばケース5は、サブブロックSubB_Bのワード線WL9に接続されたメモリセルの書き込みを示している。この場合、両フラグデータが“1”で、サブブロックSubB_A及びSubB_Bの両方が書き込まれている。ワード線WL9のベリファイレベルは、Vvfyに設定され、ワード線WL0〜WL8には、電圧Vreadが供給され、ワード線WL11〜WL15にはVcvが供給される。
上記第2の実施形態によれば、データの書き込み時、選択されたサブブロック内の非選択ワード線、及び非選択サブブロックの消去状態のメモリセルが接続されたワード線に電圧Vreadより低い電圧Vcvを印加することにより、閾値電圧分布の上昇方向のシフト量を抑制できる。このため、閾値電圧分布を例えば8・Vtwの範囲に収めることができ、閾値電圧分布の幅を狭めることが可能である。
具体的には、図6A乃至図6Gに示す例においては、書き込み直後の閾値電圧分布に対して、メモリストリング内の全てのメモリセルに書き込みが行われた場合、図6Dに示すように、ワード線WL0は、閾値電圧が2・Vtw程度上昇し、その他、ワード線WL7,WL8は、閾値電圧が1・Vtw上昇し、ワード線WL15の閾値電圧は変化しない。その後、サブブロックが消去されると、ワード線WL8〜WL15の閾値電圧分布が1・Vtw程度低下する。この結果として、閾値電圧分布が3・Vtw程度広がる。
これに対して、第2の実施形態の場合、図15Dに示すように、メモリストリング内の全てのメモリセルに書き込みが行われた場合、ワード線WL0の閾値電圧が2・Vtw程度低下する可能性があり、ワード線WL7,WL8は、閾値電圧が1・Vtw低下する可能性があり、ワード線WL15の閾値電圧は変化しない。しかし、ワード線WL0〜WL15の閾値電圧分布の変動は、2・Vtwの閾値電圧の範囲に揃っている。このため、その後、サブブロックSubB_Aが消去された場合、ワード線WL8〜WL15の閾値電圧が1・Vtw程度低下するが、閾値電圧分布の変動の範囲は、上記の2・Vtwに重なっており、分布の広がりが制限されている。
(第3の実施形態)
図19は、第3の実施形態を示すものであり、図1に示すフラグレジスタ20を備えない場合の構成図を示している。図19において、図1と同一部分には同一符号を付している。
第1、第2の実施形態は、サブブロックの状態をサブブロック内に配置したフラグセルに記憶し、フラグセルの情報に基づき、チップ上で所定の動作を制御した。しかしながら、チップ上で上記のような動作を制御するには、フラグセルの情報に非常に高い信頼性が要求される。
そこで、チップ上でフラグ情報を保持するより、外部のコントローラにより上記動作制御を任せた方が望ましいとも考えられる。この場合、外部のコントローラは、あるサブブロックを選択して書き込み動作を行う場合、同じブロック内の他のサブブロックの状態を考慮して、第1、第2の実施形態に示した動作切り替えができるようにコマンドを発行したり、パラメータを設定したりする。
その場合、第1の実施形態において、図11に示すステップST11〜ST13、図12に示すステップST21〜ST23の処理をスキップすることができる。また、第2の実施形態において、図16に示すステップST11〜ST13、図17に示すステップST21〜ST23の処理をスキップすることができる。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。