(57)【要約】【課題】セルトランジスタに書込みを行う際に回路やプロセスのバラツキに起因してノイズにより所望のベリファイレベルより低い閾値で書込みが終わっても、次のプログラム動作及びベリファイ動作で適正な閾値に書込みを行う。【解決手段】セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御する書込み制御回路を備え、書込み制御回路は、書込み対象セルトランジスタの閾値が初めてベリファイレベル以上となったプログラム動作後のベリファイ動作を同じベリファイレベルで２回以上行い、ベリファイ動作の２回目以降はプログラム動作の２回目の後に行い、２回目以降のベリファイ動作の結果がパスするまでプログラム動作とその後のベリファイ動作を繰り返すように制御する。【選択図】図５
2010211883.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルトランジスタが配置されたメモリセルアレイと、
前記セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御する書込み制御手段とを備え、
前記書込み制御手段は、書き込み対象セルトランジスタに対する第１のベリファイ動作を行い、前記第１のベリファイ動作の次に前記セルトランジスタを非選択状態に設定してプログラム動作を行い、前記プログラム動作後の前記セルトランジスタに対するベリファイ動作を第２のベリファイ動作として前記第１のベリファイ動作と同一のベリファイレベルで行うように制御することを特徴とする不揮発性半導体記憶装置。
【請求項２】
複数のセルトランジスタが配置されたメモリセルアレイと、
前記セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御する書込み制御手段とを備え、
前記書込み制御手段は、書込み対象セルトランジスタの閾値が初めてベリファイレベル以上になったプログラム動作である第１のプログラム動作後に第１のベリファイ動作を行い、前記第１のベリファイ動作の次に前記セルトランジスタを非選択状態に設定して第２のプログラム動作を行い、前記第２のプログラム動作後の前記セルトランジスタに対するベリファイ動作を第２のベリファイ動作として前記第１のベリファイ動作と同一のベリファイレベルで行うように制御することを特徴とする不揮発性半導体記憶装置。
【請求項３】
複数のセルトランジスタが配置されたメモリセルアレイと、
前記セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御するとともに、前記セルトランジスタに接続されているビット線に電源電圧より低い所定の中間電圧を印加した状態で半選択書込みを行い、ベリファイレベルおよび前記ベリファイレベルよりも低いベリファイロウレベルを設定するように制御する書込み制御手段とを備え、
前記書込み制御手段は、書込み対象セルトランジスタの閾値が初めて前記ベリファイロウレベル以上となったプログラム動作である第１のプログラム動作の次のプログラム動作を第２のプログラム動作として半選択書込みを行い、その後のベリファイ動作を第１のベリファイ動作として前記ベリファイレベルを基準として行い、さらに、書込み対象セルトランジスタを非選択状態に設定して第３のプログラム動作を行い、その後のベリファイ動作を第２のベリファイ動作として前記ベリファイレベルを基準として行うように制御することを特徴とする不揮発性半導体記憶装置。
【請求項４】
前記書き込み制御手段は、前記第２のベリファイ動作の結果がパスしなかった場合は前記第１のベリファイ動作の前に行ったプログラム動作を再度行い、その後のベリファイ動作をスキップして書き込み動作を終了するように制御することを特徴とする請求項２または３のいずれか一つに記載の不揮発性半導体記憶装置。
【請求項５】
セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御するとともに、前記セルトランジスタに接続されているビット線に電源電圧より低い所定の中間電圧を印加した状態で半選択書込みを行い、ベリファイレベルおよび前記ベリファイレベルよりも低いベリファイロウレベルを設定するように制御する書込み制御手段を備え、
前記書込み制御手段は、書込み対象セルトランジスタの閾値が初めてベリファイロウレベル以上となったプログラム動作の次に前記セルトランジスタに対して行うプログラム動作後のベリファイ動作を前記ベリファイレベルを基準として行い、前記ベリファイ動作の結果がパスしなかった場合に前記セルトランジスタに対して半選択書き込みによってプログラム動作を行うように制御することを特徴とする不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に係り、特にメモリセルに書込み制御を行う書込み制御回路に関する。
【背景技術】
【０００２】
電気的にデータの書き換えが可能な不揮発性半導体メモリとして、大容量化および高集積化可能なNAND型フラッシュメモリが知られている。このNAND型フラッシュメモリのチップにおいて、セルアレイ領域には、浮遊ゲート・制御ゲートの積層ゲート構造を有する複数のセルトランジスタの両端に選択トランジスタが接続されたNAND型メモリセル（以下、NANDセルと称する）が配列されている。
【０００３】
NANDフラッシュメモリのNANDセルに書込みを行う際には、セルトランジスタの閾値電圧の分布幅を狭くするために、プログラム動作とベリファイ動作を繰り返すように制御する方式を用いている（以下、プログラム動作およびベリファイ動作をあわせて書込み制御と呼ぶことがある。）。この際、プログラム動作は書込み電圧(Vpgm)を段階的に高く（ステップアップ）しながら何回かに分けて行う。つまり、書込み電圧(Vpgm)をステップアップしながら書込みを進め、各書込み動作の後にベリファイ動作を行う。ベリファイ動作とは、セルトランジスタの閾値電圧が狙いの値に書込めたかどうかを確認する動作である。この際、狙いの値に達してない場合は再びプログラム動作とベリファイ動作を行う。これに対して、狙いの値にプログラムされたと判定された場合は、次の書込みの時には、NANDセルに接続されているビット線BLに電源電圧に近い電圧を印加してセルトランジスタのチャネルをブースト状態にし、非選択状態のセルトランジスタに追加書込みがなされないようにする。
【０００４】
なお、通常、NANDセルに対する書込みの信頼性を持たせるために、ベリファイ動作時に読み出しデータを判定するための基準レベル（ベリファイレベル）は通常の読み出し動作時の判定基準レベルよりある程度高い電圧に設定する。
【０００５】
しかし、回路やNANDセルのプロセスばらつきに起因したノイズの影響を受けると、書込み電圧(Vpgm)のステップアップに対してセルトランジスタの閾値の変動が一定では無くなり、狙いの値より低い値で書込みが終了してしまう場合がある。これにより、狙いの閾値分布幅に収めることが不可能になり、信頼性、性能の劣化を招く。上記したようなノイズによる閾値低下の分までマージンを持たせようとすると、高い閾値まで書込まなくてはならないので、歩留まりの低下など他の問題に繋がる。
【０００６】
なお、特許文献１には、メモリセルの書込み動作後の状態を確認する書込みベリファイ回路と、書込みデータ回路の内容とメモリセルの書込み動作後の状態から書込み不十分のメモリセルに対して再書込みを行うように書込みデータ回路の内容を更新するデータ更新回路とを具備し、書込みデータ回路の内容に基づく書込み動作、書込みベリファイ動作、書込みデータ回路の内容更新を、メモリセルが所定の書込み状態になるまで繰り返す点が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−３５１３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は前記した従来の問題点を解決すべくなされたもので、セルトランジスタに書込みを行う際に適正な閾値に書込みを行うことが可能な不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の不揮発性半導体記憶装置の態様は、複数のセルトランジスタが配置されたメモリセルアレイと、前記セルトランジスタに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御する書込み制御手段とを備え、前記書込み制御手段は、書き込み対象セルトランジスタに対する第１のベリファイ動作を行い、前記第１のベリファイ動作の次に前記セルトランジスタを非選択状態に設定してプログラム動作を行い、前記プログラム動作後の前記セルトランジスタに対するベリファイ動作を第２のベリファイ動作として前記第１のベリファイ動作と同一のベリファイレベルで行うように制御することを特徴とする。
【発明の効果】
【００１０】
本発明の不揮発性半導体記憶装置によれば、セルトランジスタに書込みを行う際に適正な閾値に書込みを行うことが可能な不揮発性半導体記憶装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るNANDフラッシュメモリの構成を示すブロック図。
【図２】図１のメモリのコア部の一部を取り出して概略的に示すブロック回路図。
【図３】図２中のセンスアンプ＆データラッチ回路の１個分を取り出して概略的に示すブロック図。
【図４】セルトランジスタのノイズの影響によって生じる閾値の分布状態を示す図。
【図５】第１の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図６】第２の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図７】第３の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図８】第４の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図９】第５の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図１０】第６の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャート。
【図１１】書込み電圧のステップアップとセルトランジスタの閾値の関係の一例を示す特性図。
【図１２】セルトランジスタの閾値の理想的な分布幅と実際の分布幅の一例を示す特性図。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明を実施の形態により説明する。この説明に際して、全図にわたり共通する部分には共通する参照符号を付す。
【００１３】
図１は、本発明の実施形態に係るNANDフラッシュメモリの要部を抽出して概略構成を示すブロック図である。図２は、図１のメモリのコア部の一部を取り出して概略的に示すブロック回路図である。
【００１４】
このNANDフラッシュメモリは、メモリセルアレイ１、ロウデコーダ２、センスアンプ＆データラッチ３、内部電圧生成回路４、制御回路５、アドレスレジスタ６、カラムデコーダ７、インターフェース回路８等を含んで構成されている。
【００１５】
メモリセルアレイ１は、図２に示すように、複数のメモリセルブロックBLK0〜BLKmに分割されている。各メモリセルブロックBLK0〜BLKm中には、NANDセルがマトリクス配置されている。各NANDセルは、複数個のセルトランジスタが隣接するもの同士でソース、ドレインを共有するように直列接続されて形成されている。NANDセル列の一端側のドレインはそれぞれ選択トランジスタを介してビット線BL0 〜BLn に接続される。NANDセル列の他端側のソースは選択トランジスタを介してセルソース線に接続されている。メモリセルアレイ１の行方向に沿って延設された選択ゲート線SGD 、SGS はそれぞれ、同一行の選択トランジスタのゲートに接続される。メモリセルアレイ１の行方向に沿って延設されたワード線WL0 〜WLn+1 はそれぞれ、同一行のセルトランジスタの制御ゲートに接続される。ここで、１本のワード線に接続されたセルトランジスタにより１ページが構成され、複数ページ分でメモリセルブロックBLK0〜BLKmの１ブロックを構成する。なお、メモリセルアレイ１への書き込みおよび読み出しは１ページ単位で行われ、消去はブロック単位で行われる。
【００１６】
本例では、図３中に示すように、ビット線BL(BL0 〜BLn )の１本毎にカラム選択信号BSにより選択制御されるカラム選択トランジスタを介して１つのセンスアンプ＆データラッチ３が接続されている。ここで、奇数列カラムのカラム選択トランジスタのゲートにはカラム選択信号線BLSO、偶数列カラムのカラム選択トランジスタのゲートにはカラム選択信号線BLSEが接続されている。センスアンプ＆データラッチ３は、書き込み時には、インターフェース回路８に入力された書き込みを行うセルデータ（プログラムデータ）の１ページ分をラッチする。また、読み出し時には、メモリセルアレイ１中の選択されたメモリセルブロックBLK0〜BLKmから各ビット線に読み出されたセルデータの１ページ分をラッチする。
【００１７】
インターフェース回路８は、各種のコマンド、ロウアドレス信号、書き込みを行うセルデータなどが入力され、アドレス信号（ロウアドレス信号およびカラムアドレス信号）Add はアドレスレジスタ６に供給されてラッチされ、コマンドCom は制御回路５に供給されてラッチされる。また、インターフェース回路８は、メモリセルアレイ１から読み出されてセンスアンプ＆データラッチ３にラッチされたデータDataがデータ線１０を介して供給され、これを出力する。
【００１８】
制御回路５は、コマンドレジスタ、コマンドデコーダ、ステータスレジスタ等を含み、外部から各種の制御信号（チップ・イネーブル信号／ＣＥ、コマンド・ラッチ・イネーブル信号ＣＬＥ、アドレス・ラッチ・イネーブル信号ＡＬＥ、ライト・イネーブル信号／ＷＥ、リード・イネーブル信号／ＲＥ等）が入力する。ここで、コマンドレジスタはコマンドデータをラッチし、コマンドデコーダは供給されたコマンドをデコードしてフラッシュメモリの動作モードを決定し、かつ、その動作モードに応じてフラッシュメモリの全体の動作を制御する制御信号を生成する。これらの制御信号に基づいて、メモリ中の各回路の読み出し動作、書き込み動作、消去動作、ベリファイ動作、内部電圧生成回路４などが制御される。
【００１９】
内部電圧生成回路４は、制御信号に基づいて内部電圧を生成する。例えば書込み時には、書込み電圧、転送電圧等の高電圧を発生し、ロウデコーダ２およびメモリセルアレイ１に供給する。
【００２０】
アドレスレジスタ６にラッチされたロウアドレス信号（ブロックアドレス信号、ページアドレス信号）は、動作モード信号とともにロウデコーダ２に供給されてデコードされる。ロウデコーダ２は、メモリセルアレイ１中のメモリセルブロックBLK0〜BLKmおよびページを選択し、選択されたブロック内のワード線WL0 〜WLn+1 および選択ゲート線SGD 、SGS の電位を制御する。また、アドレスレジスタ６にラッチされたカラムアドレス信号は、カラムデコーダ７に供給されてデコードされる。カラムデコーダ７は、カラムアドレス信号に基づいてメモリセルアレイ１のカラムを選択する。
【００２１】
図３は、図２中のセンスアンプ＆データラッチ３の１個分を取り出して概略的に示すブロック図である。このセンスアンプ＆データラッチにおいて、センスアンプ(S/A )３１はビット線BLに接続されるとともにセンスアンプ側データラッチであるデータラッチ(DLSA)３２が接続されている。このデータラッチ３２は、ビット線BLを充放電するデータ、あるいは、センスアンプでセンスしたデータを保持する。
【００２２】
また、センスアンプ３１には、データ演算回路３３を介して複数のデータラッチ(DL1 、DL2,…)３４が接続されている。上記データラッチ(DL1 、DL2,…)３４の数は、セルアレイのメモリセル１個にｎビットの情報をプログラムする場合、外部バスより供給されるプログラムデータを格納するために少なくともｎ個必要である。本例では、２ビット／セルのプログラムを行う場合に必要である２個(DL1 、DL2 )と、さらに、データ演算回路の判定結果（Flag）を保持するために必要である２個(DL3 、DL4 )を示している。なお、１ビット／セルのプログラムを行う場合には、データラッチの数は３個(DL1 、DL2 、DL3 )でよい。データ演算回路３３は、以下に述べるような書込み制御機能を有する。
【００２３】
ここで、図３のセンスアンプ＆データラッチ３の動作を説明する。外部バスより供給されるプログラムデータはデータラッチ(DL1 、DL2 )に入力される。データ演算回路３３は、このプログラムデータに基づいてセンスアンプ＆データラッチ３に接続されているビット線BLの電位Vbl を、0V(Vss) 、後述するVinhibit、VQPWのいずれに設定するかを判定し、その判定結果をデータラッチ３２に転送し、さらに、このデータラッチ３２のデータを転送するように制御する。
【００２４】
図２に示したように、同一行のセルトランジスタの制御ゲートはワード線WL0 〜WLn+1 のいずれかに共通接続されており、書込み時には同一行のセルトランジスタは同時に書込みが行われる。この際、書込み速度の速いセルトランジスタは狙いの閾値への書込みを終了するまでのプログラムループ(Program Loop)回数が少ないが、書込み速度の遅いメモリセルは狙いの閾値への書込みを終了するまでのプログラムループ回数を多く必要とする。
【００２５】
図４は、NANDセルの書込みにおけるノイズの影響を説明するためにセルトランジスタの閾値分布状態を示す図である。NANDフラッシュメモリでは回路やNANDセルのプロセス起因によるノイズにより、図４中に破線で示すように、狙いの閾値より低い値で書込みが終了してしまうことがある。
【００２６】
そこで、本発明では、以下に述べる実施形態で説明するように、制御回路５は、書込みに際してベリファイ動作を複数回繰り返すように回路全体を制御する。これにより、最初のベリファイ動作中にノイズの影響で低い閾値のまま書込みが終わってしまっても、ノイズの影響を受け難くし、図４中に実線で示すように狙いの閾値分布幅にすることが可能になる。以下、プログラム動作及びベリファイ動作について種々の実施形態を説明する。
【００２７】
（第１の実施形態）
図５は、第１の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。ワード線WL0 〜WLn+1 のいずれかにより選択したセルトランジスタの制御ゲートに印加する書き込み電圧(Vpgm)をステップアップさせながら書込みを行う際、本実施形態では、書き込み対象セルトランジスタの閾値が初めてベリファイレベルに達したプログラム(PRG )動作（第１のプログラム動作）後のベリファイ動作を同じベリファイレベルで２回以上行う。この時、２回目以降のベリファイ動作は第１のプログラム動作の次のプログラム動作（第２のプログラム動作）以降に行い、ベリファイ動作の結果がパス(書き込み対象のセルトランジスタの閾値がベリファイレベル以上となること)するまでプログラム動作及びベリファイ動作を繰り返す。
【００２８】
即ち、図５中のビット線電位Vbl(a)に示すように、Program Loopのｎ回目（Loop n回目）のプログラム動作後に第１のベリファイ動作(V1)を行ってパスした場合、Loop n+1回目のプログラム動作はビット線BLに選択禁止電圧（Inhibit 電圧、〜3.0V）を印加して書き込み対象セルトランジスタのチャネルをブースト状態（書込みが起こらない状態、非選択状態）にして行う。
【００２９】
この後に第２のベリファイ動作(V2)を行い、このベリファイ動作(V2)の結果もベリファイ動作(V1)の結果と同様にパスした場合、その後は書込みを行わない。これに対して、Loop n+1回目のベリファイ動作(V2)で失敗(fail)した場合は、図５中のビット線電位Vbl(b)に示すように、Loop n+2回目に再びプログラム動作(PRG )を行う。同様に、Loop n+1 回目、Loop n+2 回目と連続してベリファイ動作(V2)が失敗した場合は、図５中のビット線電位Vbl(c)に示すように、プログラム動作及びベリファイ動作をベリファイ動作(V2)の結果がパスするまで繰り返す。なお、本実施形態では第１のプログラム動作後のベリファイ動作を２回行っているが、必要に応じて、第１のプログラム動作後のベリファイ動作を３回以上に増やしても良い。
【００３０】
上記したように第１の実施形態では、NANDセルに書込みを行う際にプログラム動作毎に書込み電圧を段階的に高くしながらプログラム動作後のベリファイ動作を行うように制御する制御回路５を備えたNANDフラッシュメモリにおいて、制御回路５は、第１のプログラム動作後の２回目以降のベリファイ動作の結果がパスするまでプログラム動作とその後のベリファイ動作を繰り返すように制御する。つまり、第１のプログラム動作後のベリファイ動作を同じベリファイレベルで２回以上行い、ベリファイ動作の２回目以降は第２のプログラム動作の後に行うように制御する。そして、第２のプログラム動作後の第２のベリファイ動作の結果がパスした場合は書込みを終了し、第２のプログラム動作後の第２のベリファイ動作の結果がパスしなかった場合は、ベリファイ動作の結果がパスするまで前記第１のプログラム動作と同様のプログラム動作およびその後のベリファイ動作を繰り返すように制御する。
【００３１】
このような制御により、第１のプログラム動作時に回路やプロセスのバラツキに起因してノイズにより狙いの閾値より低い値で書込みが終了した場合でも、第２のベリファイ動作に続く第１のプログラム動作と同様のプログラム動作及びベリファイ動作で適正な閾値に書込みを行うことが可能になる。結果として、図４中に実線で示したようにセルトランジスタの閾値分布幅を改善でき、書込み不良の発生を抑止することができる。
【００３２】
（第２の実施形態）
図６は、第２の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。図６中のビット線電位Vbl(a)に示すように、第１の実施形態と同様に、Loop n回目のプログラム動作（第１のプログラム動作）後に第１のベリファイ動作(V1)を行ってパスした場合、Loop n+1回のプログラム動作（第２のプログラム動作）は非選択状態でプログラム動作を行った後に第２のベリファイ動作(V2)を行う。この第２のベリファイ動作(V2)の結果も第１のベリファイ動作(V1)の結果と同様にパスした場合、その後は書込みを行わない。
【００３３】
Loop n回目で第１のベリファイ動作(V1)の結果がパスしたがLoop n+1回目の第２のベリファイ動作(V2)で失敗した場合には、図６中のビット線電位Vbl(b)に示すように、Loop n+2回目で書込みに入る。この時、書き込み電圧(Vpgm)はLoop n回目に対して２回ステップアップしているので、次のベリファイ動作の結果はパスする可能性が高い。したがって、本実施形態では、Loop n+1回目の第２のベリファイ動作(V2)が失敗したセルトランジスタに対しては、Loop n+2回目で書込みを行った後はベリファイ動作も行わず、書込みを終了する。
【００３４】
上記したように第２の実施形態では、第１の実施形態と同様の効果が得られるほか、第２のベリファイ動作でパスしなかった場合には次のプログラム動作後のベリファイ動作をスキップ(skip)し、書込みを終了するので、第１の実施形態と比べてベリファイ動作の回数を減らし、書込み速度を上げることができる。
【００３５】
（第３の実施形態）
図７は、第３の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。この実施形態は、書込み時にビット線BLに半選択電圧を印加して半選択書込みを行うことにより、セルトランジスタの閾値分布幅を狭く制御する方法（Quick Pass Write、以下、QPW と称する）を組み合せ使用した例である。ここで、半選択書込みとは、ビット線BLに0Vと電源電圧付近の電圧（例えば3V）の間の中間電圧（例えば1V）を印加して書込みを行う方式である。通常の書込みは、書込みを行うビット線BLには0V、書込みを行わないビット線BLには電源電圧程度の例えば3Vを印加するが、QPW では、書込み時のビット線BLに1V程度の中間電圧を印加して擬似的に書き込み電圧のステップ変化量電圧(dVpgm) が小さくなったような効果が得られる。
【００３６】
図７中のビット線電位Vbl(a)に示すように、Loop n回目のプログラム動作（第１のプログラム動作）後に、通常のベリファイレベルより低いベリファイロウレベル（verify Low Level）を基準としたベリファイ動作（VL）を行う。ここで、ベリファイロウレベルは、通常のベリファイレベルよりも、例えば通常書込み時における書き込み電圧のステップ変化量電圧dVpgm の約２分の１ 程度低い。このベリファイ動作の結果がパスした場合は、Loop n+1回目のプログラム動作（第２のプログラム動作）は、ビット線BLに1V程度を印加し、半選択状態にしてQPWを行う。
【００３７】
その後、通常のベリファイレベルを基準として第１のベリファイ動作(V1)を行い、第１のベリファイ動作(V1)の結果がパスした場合はLoop n+2回目のプログラム動作（第３のプログラム動作）を非選択状態で行った後に通常のベリファイレベルを基準として第２のベリファイ動作(V2)を行う。この第２のベリファイ動作(V2)の結果も第１のベリファイ動作(V1)の結果と同様にパスした場合、その後は書込みを行わない。図７中のビット線電位Vbl(a)では、ベリファイロウレベルでのベリファイ動作（VL）をパスした後、１回の書込みで第１のベリファイ動作(V1)の結果もパスしている例を示したが、第１のベリファイ動作(V1)が失敗すれば第２のプログラム動作及び第１のベリファイ動作を第１のベリファイ動作(V1)の結果がパスするまで行う。
【００３８】
また、Loop n+2回目の第２のベリファイ動作(V2)が失敗した場合、図７中のビット線電位Vbl(b)に示すように、Loop n+3回目に半選択書込みを行い、再び第２のベリファイ動作(V2)を行う。この第２のベリファイ動作(V2)が再び失敗した場合は、プログラム動作（半選択書き込み）及び第２のベリファイ動作を第２のベリファイ動作(V2)がパスするまで繰り返す。図７中のビット線電位bl(b)には、１回の追加書込みで第２のベリファイ動作(V2)の結果がパスしている例を示したが、実際には第２のベリファイ動作(V2)の結果がパスするまでプログラム動作（半選択書き込み）及び第２のベリファイ動作を何回も繰り返す。
【００３９】
上記したように第３の実施形態では、半選択書込みを利用した書込みを行う際に、プログラム動作後のベリファイ動作を、ベリファイロウレベルで１回と、通常のベリファイレベルで２回以上行う。そして、２回目以降のベリファイ動作が失敗したセルは、ノイズの影響により狙いの閾値まで書込まれなかったと考えられ、次の書込みで電界が強くなり書込み速度が速くなって過剰プログラミング(Over Programming)状態になってしまうおそれがあるので、次の書込みは半選択書込みを行って書込みを遅くすることにより過剰プログラミングを抑制することができる。
【００４０】
第３の実施形態によれば、第１の実施形態と同様の効果が得られるほか、セルトランジスタの閾値分布幅を狭くするための半選択書き込みとノイズ対策の書き込みを組合せることにより、セルトランジスタの閾値分布幅をさらに狭く実現することができる。
【００４１】
（第４の実施形態）
図８は、第４の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。図８中のビット線電位Vbl(a)に示すように、第３の実施形態と同様に、Loop n回目のプログラム動作（第１のプログラム動作）後に前記ベリファイロウレベルを基準としたベリファイ動作(VL)を行い、このベリファイ動作(VL)の結果がパスした場合、Loop n+1回のプログラム動作（第２のプログラム動作）はビット線BLに1V程度を印加し、半選択にして行う。その後、通常のベリファイレベルを基準とした第１のベリファイ動作(V1)を行い、第１のベリファイ動作(V1)の結果がパスした場合でも、Loop n+2回目のプログラム動作（第３のプログラム動作）を非選択状態で行った後に同じく通常のベリファイレベルを基準とした第２のベリファイ動作(V2)を行う。第２のベリファイ(V2)の結果も第１のベリファイ動作(V1)の結果と同様にパスすれば、その後は書込みを行わない。
【００４２】
Loop n回目でベリファイ動作(VL)の結果がパスし、Loop n+1回目で第１のベリファイ動作(V1)の結果がパスし、Loop n+2回目の第２のベリファイ動作(V2)で失敗した場合には、図８中のビット線電位Vbl(b)に示すように、Loop n+3回目で半選択書込みに入る。この時、書込み電圧VpgmはLoop n回目に対して２回ステップアップしているので、ベリファイをパスする可能性が高い。したがって、本実施形態では、Loop n+2回目の第２のベリファイ動作(V2)で失敗したセルトランジスタに対しては、Loop n+3回目で半選択書込みを行った後はベリファイ動作も行わず、書込みを終了する。
【００４３】
上記したように第４の実施形態では、第３の実施形態と同様の効果が得られるほか、２回目以降のベリファイ動作の結果がパスしなかった場合に次のプログラム動作後のベリファイ動作はスキップし、書込みを終了するので、第３の実施形態と比べて、ベリファイ動作の回数を減らし、書込み速度を上げることができる。
【００４４】
図１１は、書込み電圧(Vpgm)のステップアップとセルトランジスタの閾値(Vth )の関係の一例を示す特性図である。図１２は、書込み電圧(Vgpm)のステップアップに対するセルトランジスタの閾値(Vth )上昇のばらつきにより理想的な閾値分布（実線）に対して実際の閾値分布（破線）が変化する（広がる）様子の一例を示す特性図である。
【００４５】
理想的には、図１１中に実線で示すように、書込み電圧の段階的な増加に比例してセルトランジスタの閾値が上がっていく。しかし、実際には、図１１中に破線で示すように、回路やNANDセルのプロセスバラツキに起因するノイズによって、ステップ毎に速く書込まれたり遅く書込まれたりする。図１２に示した特性から分かるように、ある書き込み電圧での書込み時に閾値上昇がステップアップ変化量(dVpgm )より小さかった場合は、次に書き込み電圧をステップアップして書込みした場合はセルトランジスタのトンネル酸化膜にかかる電界が強くなるので、閾値上昇がdVpgm より大きく変動する可能性が高い。このような課題を解決する第５の実施形態及び第６の実施形態を以下に説明する。
【００４６】
（第５の実施形態）
図９は、第５の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。図９中のビット線電位Vbl(a)に示すように、Loop n回目のプログラム動作後にベリファイ動作(VL)を行う。ここで、ベリファイ動作(VL)の基準値ベリファイロウレベルは狙いの閾値に対して、例えばステップアップ変化量(dVpgm )の２分の１低いレベルに設定する。このベリファイ動作(VL)の結果がパスした場合には、Loop n+1回目のプログラム動作（第１のプログラム動作）を行った後に通常のベリファイレベルを基準としたベリファイ動作(V)を行う。このベリファイ動作(V)の結果がベリファイ動作(VL)の結果と同様にパスすれば、その後は書込みを行わない。
【００４７】
しかし、Loop n 回目のベリファイ動作(VL)の結果はパスしたがLoop n+1回目のベリファイ動作(V)で失敗した場合は、図９中のビット線電位Vbl(b)に示すように、ステップアップ変化量(dVpgm )より閾値変動が小さく、次のLoop n+2回目の書込みで閾値がステップアップ変化量より大きく変動する可能性が高いので、プログラム動作時にビット線BLに半選択電圧（例えば1V）を印加して書込みを遅くする。ここでは、Loop n+2回目でベリファイ(V)がパスしているが、実際には半選択電圧によるプログラム動作及びベリファイ動作をベリファイ(V)がパスするまで繰り返す。
【００４８】
上記したように第５の実施形態では、通常のベリファイレベルより例えばdVpgmの２分の１ 低いベリファイロウレベルを設定し、ベリファイロウレベルを基準としたベリファイ動作(VL)をパスした次のプログラム動作及びベリファイ動作（V）でパスしなかった場合は、次に半選択書込み動作及びベリファイ動作を繰り返す。これにより、セルトランジスタの閾値分布の高電圧側がノイズによって広がってしまう影響を抑制し、図１２中に実線で示すような閾値分布を得ることができる。
【００４９】
（第６の実施形態）
図１０は、第６の実施形態に係るNANDフラッシュメモリにおけるプログラム動作及びベリファイ動作を示すタイムチャートである。図１０中のビット線電位Vbl(a)に示すように、第５の実施形態と同様に、Loop n回目のプログラム動作後にベリファイ動作(VL)を行う。このベリファイ動作(VL)の結果がパスした場合には、Loop n+1回目のプログラム動作を行った後にベリファイ動作(V)を行う。このベリファイ動作(V)の結果もベリファイ動作(VL)と同様にパスすれば、その後は書込みを行わない。
【００５０】
これに対して、Loop n回目のベリファイ動作(VL)の結果はパスしたがLoop n+1回目のベリファイ動作(V)で失敗した場合は、図１０中のビット線電位Vbl(b)に示すようにLoop n+2回目のプログラム動作で書込みが終了する可能性が高いので、Loop n+2回目で半選択書込みを行った後にベリファイ動作もスキップして書込みを終了する。
【００５１】
上記したように第６の実施形態では、第５の実施形態と同様の効果が得られるほか、ベリファイ動作（V）をパスしなかった場合は次に半選択書込みを１回行い、ベリファイ動作をスキップし、書込みを終了するので、第５の実施形態と比べて、書込み速度を上げることができる。
【００５２】
次に、上記各実施形態における図３中のセンスアンプ＆データラッチ３の動作を説明する。
【００５３】
（第１の実施形態、第２の実施形態の動作）
まず、データラッチ(DL1 、DL2 )に入力されたデータにしたがってプログラム動作及びベリファイ動作(V1)を行う。ベリファイ動作(V1)の結果がパスした場合には、フラグ(Flag)としてデータラッチ(DL4 )にデータ“０”を書込む。次に、データラッチ(DL1 、DL2 、DL4 )の全てにデータが存在する（“０”データ）場合には、プログラム動作をスキップし、ベリファイ動作(V2)を行う。ベリファイ動作(V2)の結果がパスした場合にはデータラッチ(DL1 、DL2 、DL3 )を全て“１”（消去）にして書き込みを終了し、ベリファイ動作(V2)を失敗の場合にはデータラッチ(DL3 )にデータ“０”を書込む。データラッチ(DL1 、DL2 、DL4 )の全てにデータが無い（“１”データ）場合には、それ以上の追加書き込みは行わない。
【００５４】
次に、データラッチ(DL1 、DL2 、DL3 、DL4 )の全てにデータが存在する場合、第１の実施形態においては、プログラム動作及びベリファイ動作(V2)をベリファイ動作(V2)の結果がパスするまで行う。一方、第２の実施形態においては、プログラム動作のみを一度行ってデータラッチ(DL1 、DL2 、DL3 、DL4 )の全てを“１”にして終了する。
【００５５】
（第３の実施形態、第４の実施形態の動作）
まず、データラッチ(DL1 、DL2 )のデータにしたがってプログラム動作及びベリファイ動作(VL)を行う。ベリファイ動作(VL)の結果がパスした場合には、フラグ(Flag)としてデータラッチ(DL3 )にデータ“０”を書込む。次に、データラッチ(DL1 、DL2 、DL3 )にデータが存在する場合には、ビット線BLに半選択電圧を印加してプログラム動作（半選択書込み）した後にベリファイ動作(V1)を行う。ベリファイ動作(V1)の結果がパスした場合には、データラッチ(DL3 )を“１”に消去し、データラッチ(DL4 )にデータ“０”を書込む。次に、データラッチ(DL1 、DL2 、DL4 )の全てにデータが存在する場合には、プログラム動作をスキップし、ベリファイ動作(V2)を行う。ベリファイ動作(V2)の結果がパスした場合にはデータラッチ(DL1 、DL2 、DL4 )を全て“１”にして書き込みを終了し、ベリファイ動作(V2)を失敗した場合にはデータラッチ(DL3 )にデータ“０”を書込む。データラッチ(DL1 、DL2 、DL4 )の全てにデータが無い場合には、それ以上の追加書き込みは行わない。
【００５６】
次に、データラッチ(DL1 、DL2 、DL3 、DL4 )の全てにデータが存在する場合、第３の実施形態においては、プログラム動作及びベリファイ動作(V2)をベリファイ動作(V2)の結果がパスするまで行う。一方、第４の実施形態においては、プログラム動作のみを一度行ってデータラッチ(DL1 、DL2 、DL3 、DL4 )の全てを“１”にして終了する。
【００５７】
（第５の実施形態、第６の実施形態の動作）
まず、データラッチ(DL1 、DL2 )のデータにしたがってプログラム動作及びベリファイ動作(VL)を行う。ベリファイ(VL)をパスした場合には、フラグ(Flag)としてデータラッチ(DL4 )にデータ“０”を書込む。次に、データラッチ(DL1 、DL2 、DL4 )にデータが存在する場合には、プログラム動作及びベリファイ動作(V)を行う。ベリファイ（V）をパスした場合には、データラッチ(DL1 、DL2 、DL4 )を全て“１”にして書き込みを終了し、ベリファイ（V）が失敗の場合にはデータラッチ(DL3 )にデータ“０”を書込む。データラッチ(DL1 、DL2 、DL4 )の全てにデータが無い場合には、それ以上の追加書き込みは行わない。
【００５８】
次に、データラッチ(DL1 、DL2 、DL3 、DL4 )の全てにデータが存在する場合、第５の実施形態においては、プログラム動作及びベリファイ動作（V）をベリファイ動作（V）の結果がパスするまで行う。一方、第６の実施形態については、プログラム動作のみを一度行ってデータラッチ(DL1 、DL2 、DL3 、DL4 )の全てを“１”にして終了する。
【００５９】
なお、前述した第１、第２、第３、及び第４の実施形態における動作は、図２において複数本のビット線BLで１つのセンスアンプ＆データラッチ３を共有する構成に変更した場合でも可能である。
【００６０】
なお、上記各実施形態では、本発明をNANDフラッシュメモリに実施した場合について説明したが、本発明はNOR型フラッシュメモリ等の他の不揮発性半導体メモリにも適用できる場合もあり、本発明の主旨を逸脱しない範囲で適宜変更して実施することができる。
【符号の説明】
【００６１】
１…メモリセルアレイ、２…ロウデコーダ、３…センスアンプ＆データラッチ、４…内部電圧生成回路、５…制御回路、６…アドレスレジスタ、７…カラムデコーダ、８…インターフェース回路、３１…センスアンプ、３２…データラッチ、３３…データ演算回路、３４…データラッチ、BLK0〜BLKm…メモリセルブロック、BL0 〜BLn …ビット線、WL0 〜WLn+1 …ワード線、SGD 、SGS …選択ゲート線、BLSO、BLSE …カラム選択信号線。
【図１】
2010211883.tif 000003
【図２】
2010211883.tif 000004
【図３】
2010211883.tif 000005
【図４】
2010211883.tif 000006
【図５】
2010211883.tif 000007
【図６】
2010211883.tif 000008
【図７】
2010211883.tif 000009
【図８】
2010211883.tif 000010
【図９】
2010211883.tif 000011
【図１０】
2010211883.tif 000012
【図１１】
2010211883.tif 000013
【図１２】
2010211883.tif 000014