(57)【特許請求の範囲】
【請求項１】
互いに交差するビット線及びソース線、前記ビット線及びソース線間に配置され且つ制御ゲート及び電荷蓄積層を持つトランジスタからなるメモリセルを複数直列接続させたセルストリング、並びに、前記セルストリングの各メモリセルの制御ゲートに接続されたワード線、を有するセルアレイと、
データ書き込みの際、選択された前記ワード線にプログラム電圧を印加すると共に、その他の非選択の前記ワード線に通過電圧を印加するプログラム動作からなる書き込みループを、前記プログラム電圧を一定の電圧でステップアップしながら、繰り返し実行するデータ書き込み部と
を備え、
ｎ回目の書き込みループで用いる前記通過電圧とｎ＋１回目の書き込みループで用いる前記通過電圧の差をΔＶｎと表わした場合であって、Ｌ＜Ｍ（Ｌ及びＭは整数）が成立する場合、
前記データ書き込み部は、ΔＶ（Ｌ−１）＜ΔＶＬ、ΔＶＬ≦ΔＶ（Ｍ−１）且つΔＶ（Ｍ−１）＜ΔＶＭとなる前記通過電圧を用いて前記書き込みループを実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記データ書き込み部は、ΔＶ１からΔＶ（Ｌ−１）までが０となり、ΔＶＬからΔＶ（Ｍ−１）までが０より大きい一定の第１電圧値となり、且つ、ΔＶＭからΔＶ（Ｎ−１）（ＮはＭより大きい整数）までが前記第１電圧より大きい一定の第２電圧値となる前記通過電圧を用いて前記書き込みループを実行する
ことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記データ書き込み部は、ΔＶ１からΔＶＮ（ＮはＭより大きい整数）までが指数関数的に上昇する前記通過電圧を用いて前記書き込みループを実行する
ことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項４】
前記データ書き込み部は、ΔＶ１からΔＶ（Ｌ−１）までが０以上の一定の値となり、且つ、ΔＶＬからΔＶ（Ｎ−１）（ＮはＭより大きい整数）までが指数関数的に上昇する前記通過電圧を用いて前記書き込みループを実行する
ことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項５】
前記データ書き込み部は、Ｌ、Ｍ、Ｎ（ＮはＭより大きい整数）を前記書き込みループの数に基づいて決定する
ことを特徴とする請求項１〜４のいずれか１項記載の不揮発性半導体記憶装置。
【請求項６】
前記データ書き込み部は、Ｌ、Ｍ、Ｎ（ＮはＭより大きい整数）を前記プログラム電圧に基づいて決定する
ことを特徴とする請求項１〜４のいずれか１項記載の不揮発性半導体記憶装置。
【請求項７】
前記データ書き込み部は、Ｌ、Ｍ、Ｎ（ＮはＭより大きい整数）を前記通過電圧に基づいて決定する
ことを特徴とする請求項１〜４のいずれか１項記載の不揮発性半導体記憶装置。
【請求項８】
前記データ書き込み部は、Ｌ、Ｍ、Ｎ（ＮはＭより大きい整数）を前記メモリセルに対する書き込み／消去サイクル数に応じて変更する
ことを特徴とする請求項１〜７のいずれか１項記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体記憶装置の一つであるフラッシュメモリに対するデータ書き込みは、通常、プログラム動作とベリファイ動作からなる書き込みループを繰り返すことで実現している。
【０００３】
このうちプログラム動作では、ＮＡＮＤ型のフラッシュメモリの場合、選択メモリセルに接続されたワード線に対して書き込みループ毎にステップアップするプログラム電圧を印加すると共に、その他のワード線には非選択メモリセルがオンする程度の通過電圧を印加する。
【０００４】
しかし、この場合、非選択メモリセルにおける制御ゲートとチャネルとの電位差が大きくなってしまい、その結果、非選択ビット線に接続された非選択メモリセルに誤書き込みされるおそれがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０５７２８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プログラム動作におけるメモリセルの閾値電圧分布の広がりを抑制した不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態に係る不揮発性半導体記憶装置は、互いに交差するビット線及びソース線、前記ビット線及びソース線間配置され且つ制御ゲート及び電荷蓄積層を持つトランジスタからなるメモリセルを複数直列接続させたセルストリング、並びに、前記セルストリングの各メモリセルの制御ゲートに接続されたワード線、を有するセルアレイと、データ書き込みの際、選択された前記ワード線にプログラム電圧を印加すると共に、その他の非選択の前記ワード線に通過電圧を印加するプログラム動作からなる書き込みループを繰り返し実行するデータ書き込み部とを備え、ｎ回目の書き込みループで用いる前記通過電圧とｎ＋１回目の書き込みループで用いる前記通過電圧の差をΔＶｎと表わした場合であって、Ｌ＜Ｍ（Ｌ及びＭは整数）が成立する場合、前記データ書き込み部は、ΔＶ（Ｌ−１）＜ΔＶＬ、ΔＶＬ≦ΔＶ（Ｍ−１）且つΔＶ（Ｍ−１）＜ΔＶＭとなる前記通過電圧を用いて前記書き込みループを実行することを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る不揮発性半導体記憶装置のブロック図である。
【図２】同実施形態に係る不揮発性半導体記憶装置のメモリセルアレイの回路図である。
【図３】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時におけるメモリセル群の閾値電圧分布の遷移の様子を示す図である。
【図４】同実施形態に係る不揮発性半導体記憶装置のプログラム動作時におけるメモリセルアレイのバイアス状態を示す図である。
【図５】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスの原理を説明する図である。
【図６】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスのフローチャートである。
【図７】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスのフローチャートである。
【図８】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスのフローチャートである。
【図９】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【図１０】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における通過電圧を示す図である。
【図１１】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスのフローチャートである。
【図１２】同実施形態に係る不揮発性半導体記憶装置のプログラム動作に効果を説明する図である。
【図１３】同実施形態に係る不揮発性半導体記憶装置のプログラム動作に効果を説明する図である。
【図１４】同実施形態に係る不揮発性半導体記憶装置のプログラム動作に効果を説明する図である。
【図１５】第２の実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【図１６】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における通過電圧を示す図である。
【図１７】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における通過電圧を示す図である。
【図１８】第３の実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【図１９】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における通過電圧を示す図である。
【図２０】第４の実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【図２１】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンス時における通過電圧を示す図である。
【図２２】同実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスのフローチャートである。
【図２３】第５の実施形態に係る不揮発性半導体記憶装置における書き込みシーケンスのフローチャートを示す図である。
【図２４】同実施形態に係る不揮発性半導体記憶装置における書き込みシーケンスのフローチャートを示す図である。
【図２５】同実施形態に係る不揮発性半導体記憶装置における書き込みシーケンスのフローチャートを示す図である。
【図２６】同実施形態に係る不揮発性半導体記憶装置における書き込みシーケンスの判定条件を示す図である。
【図２７】第１の実施形態に対する比較例に係る不揮発性半導体記憶装置の書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【図２８】同比較例に係る不揮発性半導体記憶装置の書き込みシーケンス後のメモリセル群の閾値電圧分布を示す図である。
【図２９】同実施形態に対する他の比較例に係る不揮発性半導体記憶装置の書き込みループ数とプログラム電圧及び通過電圧との関係を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態に係る不揮発性半導体記憶装置について説明する。
【００１０】
［第１の実施形態］
＜全体構成＞
先ず、第１の実施形態に係る不揮発性半導体記憶装置の全体構成について説明する。
【００１１】
図１は、本実施形態に係る不揮発性半導体記憶装置のブロック図である。
このＮＡＮＤ型フラッシュメモリは、ＮＡＮＤチップ１０、このＮＡＮＤチップ１０を制御するコントローラ１１及びＲＯＭヒューズ１２を備える。
【００１２】
ＮＡＮＤチップ１０を構成するメモリセルアレイ１は、後述するように、複数の電荷蓄積層型のメモリセルをマトリクス状に配置して構成される。
【００１３】
メモリセルアレイ１の周辺には、ロウデコーダ／ワード線ドライバ２ａ、カラムデコーダ２ｂ、ページバッファ３、並びに、プログラム電圧発生回路８ａ及び通過電圧発生回路８ｂからなる電圧発生回路８が配置されている。これら、ロウデコーダ／ワード線ドライバ２ａ、カラムデコーダ２ｂ、ページバッファ３及び電圧発生回路８はデータ書き込み部を構成するものであり、メモリセルアレイ１に対してページ単位でデータの書き込み、或いは読み出しを行う。
【００１４】
ロウデコーダ／ワード線ドライバ２ａは、メモリセルアレイ１のワード線及び選択ゲート線を駆動する。ページバッファ３は、１ページ分のセンスアンプ回路とデータ保持回路を備えている。ページバッファ３の１ページ分の読み出しデータは、カラムデコーダ２ｂにより順次カラム選択されて、Ｉ／Ｏバッファ９を介して外部Ｉ／Ｏ端子に出力される。Ｉ／Ｏ端子から供給される書き込みデータは、カラムデコーダ２ｂにより選択されてページバッファ３にロードされる。ページバッファ３には、１ページ分の書き込みデータがロードされる。ロウアドレス信号及びカラムアドレス信号はＩ／Ｏバッファ９を介して入力され、それぞれ、ロウデコーダ２ａ及びカラムデコーダ２ｂに転送される。ロウアドレスレジスタ５ａは、消去動作では、消去ブロックアドレスを保持し、書き込み動作や読み出し動作ではページアドレスを保持する。カラムアドレスレジスタ５ｂには、書き込み動作開始前の書き込みデータロードのための先頭カラムアドレスや、読み出し動作のための先頭カラムアドレスが入力される。書き込みイネーブル／ＷＥや読み出しイネーブル／ＲＥなどが入力されるまで、カラムアドレスレジスタ５ｂは入力されたカラムアドレスを保持する。
【００１５】
ロジック制御回路６は、チップイネーブル信号／ＣＥ、コマンドイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ等の制御信号に基づいて、コマンドやアドレスの入力、データの入出力を制御する。読み出し動作や書き込み動作はコマンドで実行される。コマンドを受けて、シーケンス制御回路７は、読み出し動作や、書き込み或いは消去のシーケンス制御を行う。電圧発生回路８は、制御回路７により制御されて、種々の動作に必要な電圧を発生する。
【００１６】
コントローラ１１は、ＲＯＭヒューズ１２に記憶された制御に必要な各種情報を用い、ＮＡＮＤチップ１０の現在の書込状態に適した条件でデータの書き込み及び読み出しの制御を実行する。なお、後述する書き込み動作の一部は、ＮＡＮＤチップ１０側で行うようにしても良い。
【００１７】
＜メモリセルアレイ＞
次に、本実施形態に係る不揮発性半導体記憶装置のメモリセルアレイ１について説明する。
【００１８】
図２は、メモリセルアレイ１の回路図である。図２の場合、ｎ個（ｎは、自然数）の直列接続されたメモリセルＭＣ０〜ＭＣｎ−１とその両端に接続された選択ゲートトランジスタＳＧ１、ＳＧ２により、ＮＡＮＤストリング４が構成されている。選択ゲートトランジスタＳＧ１のソースは、共通ソース線ＣＥＬＳＲＣに接続され、選択ゲートトランジスタＳＧ２のドレインはビット線ＢＬ（ＢＬ０〜ＢＬｍ−１）に接続される。メモリセルＭＣ０〜ＭＣｎ−１の制御ゲートはそれぞれワード線ＷＬ（ＷＬ０〜ＷＬｎ−１）に接続され、選択ゲートトランジスタＳＧ１、ＳＧ２のゲートは、選択ゲート線ＳＬ１、ＳＬ２に接続される。
【００１９】
１つのワード線ＷＬに沿う複数のメモリセルＭＣの範囲が、一括したデータの読み出し及び書き込みの単位となるページとなる。また、ワード線ＷＬ方向に並ぶ複数のＮＡＮＤストリング４の範囲が、データの一括消去の単位となるブロックＢＬＫを構成する。図２では、ビット線ＢＬ方向にビット線ＢＬを共有する複数のブロックＢＬＫ０〜ＢＬＫｌ−１を配列して、セルアレイ１が構成されている。ワード線ＷＬ及び選択ゲート線ＳＬ０、ＳＬ１は、ロウデコーダ２ａにより駆動される。各ビット線ＢＬは、ページバッファ３のセンスアンプ回路Ｓ／Ａに接続されている。
【００２０】
ここで、このようなＮＡＮＤ型フラッシュメモリのアクセス単位である「ページ」について説明する。以下の説明において、「ページ」とは、異なる２つの意味を有するので注意を要する。
【００２１】
第１は、１つのワード線に沿う一括したデータアクセス単位としての「ページ」である。そして、第２は、１つのメモリセルに複数ビットを記憶する場合の記憶データの階層を示す「ページ」であり、この場合、「Ｌ（Ｌｏｗｅｒ）ページ」、「Ｕ（Ｕｐｐｅｒ）ページ」などと呼ぶ。
【００２２】
＜データ書き込み＞
先ず、本実施形態のデータ書き込みについて説明する前に、以下で用いる用語について説明しておく。
【００２３】
始めに、データ書き込み時に実行される一連の処理を「書き込みシーケンス」と呼ぶ。この書き込みシーケンスは、実際にメモリセルの閾値電圧を遷移させる「プログラム動作」と、メモリセルの閾値電圧を確認する「ベリファイ動作」からなる「書き込みループ」によって実行される。各プログラム動作では、選択ワード線ＷＬに対してメモリセルＭＣの閾値電圧の遷移に必要なプログラム電圧Ｖｐｇｍが印加され、非選択ワード線ＷＬに対してメモリセルＭＣが導通する程度の通過電圧Ｖｐａｓｓが印加される。
【００２４】
次に、本実施形態の書き込みシーケンスについて説明する。
図３は、２ビット／セルのメモリセルを用いた場合の書き込みシーケンス時のメモリセル群の閾値電圧分布の遷移の様子を示す図である。
【００２５】
始めに、データ消去を実行する（ステップＳ１０１）。これは、ブロック全体に対して一括に実行される。その結果、ブロック内の全てのメモリセルの閾値電圧Ｖｔｈは、最も低いＥＲレベルになる。
【００２６】
続いて、Ｌページ書き込みを実行する（ステップＳ１０２）。これは、書き込みデータの下位ビットに基づいて実行される。下位ビットが“１”の場合、メモリセルの閾値電圧ＶｔｈはＥＲレベルに維持される。下位ビットが“０”の場合、メモリセルの閾値電圧ＶｔｈはＥＲレベルからＡレベルとＢレベルとの中間レベルであり電圧Ｖｌｍよりも高いＬＭレベルに遷移する。
【００２７】
最後に、Ｕページ書き込みを実行する（ステップＳ１０３）。これは、書き込みデータの上位ビットに基づいて実行される。もし、メモリセルの閾値電圧ＶｔｈがＥＲレベルならば、上位データが“１”の場合、メモリセルの閾値電圧ＶｔｈはＥＲレベルのまま維持する。逆に、上位ビットが“０”の場合、メモリセルの閾値電圧Ｖｔｈは電圧Ｖａ（Ｖａ＜Ｖｌｍ）よりも高いＡレベルに遷移する。一方、メモリセルの閾値電圧ＶｔｈがＬＭレベルならば、上位ビットが“０”の場合、メモリセルの閾値電圧Ｖｔｈは電圧Ｖｂ（Ｖａ＜Ｖｂ）よりも高いＢレベルに遷移する。逆に、上位ビットが“１”の場合、メモリセルの閾値電圧Ｖｔｈは電圧Ｖｃ（Ｖｂ＜Ｖｃ）よりも高いＣレベルまで遷移する。
【００２８】
以上のように、メモリセルに対する２ビットデータの書き込みは、Ｌページ書き込みとＵページ書き込みの２段階によって実現される。
【００２９】
各ページの書き込みは、例えば、次のような書き込みループの繰り返しによって実現される。
【００３０】
書き込みループは、メモリセルＭＣの閾値電圧Ｖｔｈを遷移させるプログラム動作と、メモリセルＭＣの閾値電圧Ｖｔｈがベリファイ電圧以上であることを確認するベリファイ動作からなる。
【００３１】
書き込みシーケンスのプログラム動作は、メモリセルアレイ１を図４に示すようなバイアス状態にすることで実現される。なお、図４に示す例は、ワード線ＷＬ１に接続されたメモリセルＭＣ１にデータを書き込む場合を示している。
【００３２】
つまり、プログラム動作では、選択メモリセルＭＣ１の制御ゲート（ワード線ＷＬ１）にメモリセルＭＣの閾値電圧Ｖｔｈの遷移に必要なプログラム電圧Ｖｐｇｍ（例えば、２０Ｖ程度）を印加し、それ以外のメモリセルＭＣ０、ＭＣ２、・・・、ＭＣｎ−１の制御ゲートには、それぞれ通過電圧Ｖｐａｓｓ（例えば、１０Ｖ程度）を印加する。この通過電圧Ｖｐａｓｓは、メモリセルＭＣの閾値電圧ＶｔｈによらずメモリセルＭＣ０、ＭＣ２、・・・、ＭＣｎ−１がオンする程度の電圧且つプログラムされない程度の電圧となる。また、ソース線ＣＥＬＳＲＣ側の選択ゲート線ＳＬ１には、接地電圧Ｖｓｓ（例えば、０Ｖ）を印加し、ビット線ＢＬ側の選択ゲート線ＳＬ２には、電源電圧Ｖｃｃを印加する。ビット線ＢＬには０Ｖを印加する。ソース線ＣＥＬＳＲＣには電源電圧Ｖｃｃを印加する。また、セルウエルには、ウエル電圧Ｖｗｅｌｌ（例えば、０Ｖ）を印加する。
【００３３】
これによって、メモリセルＭＣ１のゲート絶縁膜に高電圧が加わり、セルウエルから電荷蓄積層に電子がトンネリングし、電荷蓄積層に電荷が蓄えられる。その結果、メモリセルＭＣ１の閾値電圧Ｖｔｈは正電圧側にシフトする。
【００３４】
ここで、従来の不揮発性半導体記憶装置の書き込みシーケンスでは、プログラム電圧Ｖｐｇｍについては、書き込みループ毎にステップアップさせ、通過電圧Ｖｐａｓｓについては、一定に維持させて書き込みループを繰り返していた。
【００３５】
しかし、この場合、書き込みシーケンスが進むにつれ、プログラム電圧Ｖｐｇｍと通過電圧Ｖｐａｓｓとの差が広がってしまう。この場合、選択ワード線ＷＬと非選択ビット線ＢＬに接続された非選択メモリセルＭＣにおいて、制御ゲートとチャネルとの電位差が大きくなっていき、誤書き込みが発生してしまう恐れがあった。
【００３６】
そこで、上記問題を解決するものとして、次のような書き込みシーケンスが考えられる。
【００３７】
図２７は、第１の実施形態に対する比較例に係る不揮発性半導体記憶装置の書き込みループ数とプログラム電圧Ｖｐｇｍ及び通過電圧Ｖｐａｓｓとの関係を示す図である。
【００３８】
この書き込みシーケンスの場合、書き込みループ毎にプログラム電圧Ｖｐｇｍだけでなく、通過電圧Ｖｐａｓｓも一定幅でステップアップさせる。この場合、上記問題は解決されるものの、非選択ワード線ＷＬ及び選択ビット線ＢＬに接続された非選択メモリセルＭＣに制御ゲートに大きな電圧（通過電圧Ｖｐａｓｓ）が印加されることになるため、閾値電圧Ｖｔｈが変動してしまう。
【００３９】
特に変動しやすい低レベルの閾値電圧分布、例えばＡレベルの閾値電圧分布は、図２９の矢印ａ１で示すように、広がってしまう点が問題となる。
【００４０】
そこで、この問題を解決するものとして、図２８に示す書き込みシーケンスが考えられる。この書き込みシーケンスの場合、図２８の矢印ａ１で示すように、書き込みシーケンスの初期における通過電圧Ｖｐａｓｓを低めに設定した上で、書き込みループ毎に、通過電圧Ｖｐａｓｓを一定幅でステップアップさせる。これによって、低レベルの閾値電圧分布が変動しまうという問題は解決できる。
【００４１】
しかし、この場合、通過電圧Ｖｐａｓｓの初期値が低い分、多くの書き込みループを要することになり、書き込みシーケンスの処理時間が長期化する点が問題となる。
【００４２】
そこで、第１の実施形態に係る不揮発性半導体記憶装置では、次のような書き込みシーケンスを採用する。
【００４３】
図５は、本実施形態に係る不揮発性半導体記憶装置の書き込みシーケンスの原理を説明する図である。
【００４４】
本実施形態では、図５に示すように、書き込みシーケンスのうち初期の段階の書き込みループ、つまり、低レベルの閾値電圧Ｖｔｈのプログラムの期間Ｐ１においては、書き込みループ毎の通過電圧Ｖｐａｓｓのステップアップ幅を小さめにしておき、高レベルの閾値電圧のプログラムの期間Ｐ２においては、書き込みループ毎の通過電圧Ｖｐａｓｓのステップアップ幅をプログラムの期間Ｐ１よりも大きくする。図５の場合、期間Ｐ２の終わりにおいて、通過電圧Ｖｐａｓｓが最大の通過電圧Ｖｐｓｍａｘに達している。ここで、最大の通過電圧Ｖｐｓｍａｘは、これ以上通過電圧Ｖｐａｓｓが大きくなると、非選択ワード線ＷＬとチャネルとの電位差が大きくなり非選択メモリセルＭＣに誤書き込みが発生する確率が高くなる通過電圧Ｖｐａｓｓである。そのため、仮に、これ以上、通過電圧Ｖｐａｓｓをステップアップさせると、非選択ワード線ＷＬ及び選択ビット線ＢＬに接続された非選択メモリセルＭＣの閾値電圧Ｖｔｈが変動してしまう。そのため、期間Ｐ２よりも後の書き込みループでは、通過電圧Ｖｐａｓｓは、ステップアップしないようにしている。
【００４５】
これによって、図２７に示す比較例に比べて、期間Ｐ１では、実効的なプログラム電圧Ｖｐｇｍの増加を抑えることができる。また、低レベルの閾値電圧Ｖｔｈの変動を防止することができ、低レベルの閾値電圧Ｖｔｈが広がることを抑制できる。また、図２８に示す比較例に比べて、期間Ｐ２では、実効的なプログラム電圧Ｖｐｇｍがより高くなることになるため、選択メモリセルＭＣの閾値電圧Ｖｔｈが所望の閾値電圧Ｖｔｈに遷移し易くなり、書き込みシーケンスの処理時間を短縮することができる。
次に図５に示す書き込みシーケンスの制御方法について説明する。
【００４６】
図６は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを書き込みループ回数で制御する場合の書き込みシーケンスのフローチャートである。フローチャートの動作は、例えば、シーケンス制御回路７が制御する。
【００４７】
始めに、ステップＳ２０１で、書き込みループ数ｎｌを１で初期化する。また、通過電圧Ｖｐａｓｓを初期通過電圧Ｖｐａｓｓ０で初期化する（初期通過電圧Ｖｐａｓｓ０は、例えば５Ｖ）。
【００４８】
続いて、ステップＳ２０２で、書き込みループ数が、ｎｌ＜Ｒｎｌ１（Ｒｎｌ１は、例えば１０）かを判定する。ｎ＜Ｒｎｌ１であれば（Ｓ２０２のＹｅｓ）、ステップＳ２０３において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、ｎ≧Ｒｎｌ１であれば（Ｓ２０２のＮｏ）、ステップＳ２０７に処理を移す。ここで、書き込みループ数はＮＡＮＤチップ１０内に配置されたラッチに記憶することができる。
【００４９】
続いて、ステップＳ２０４で、ベリファイ動作を実行する。仮に、このステップＳ２０４で全てのメモリセルがパスした場合（Ｓ２０４のＰａｓｓ）、動作を終了する。一方、一部のメモリセルがパスしなかった場合（Ｓ２０４のＦａｉｌ）、ステップＳ２０５で、書き込みループ数ｎｌをインクリメントする。
【００５０】
続いて、ステップＳ２０６で、通過電圧ＶｐａｓｓにΔＶｐａｓｓを加える。ここで、ΔＶｐａｓｓは電圧Ｖｃ１である。このとき、プログラム電圧ＶｐｇｍもΔＶｐｇｍだけステップアップさせる。その後、ステップＳ２０２に処理を戻す。
【００５１】
ステップＳ２０７では、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。
【００５２】
続いて、ステップＳ２０８で、ベリファイ動作を実行する。仮に、このステップＳ２０８で全てのメモリセルがパスした場合（Ｓ２０８のＰａｓｓ）、動作を終了する。一方、一部のメモリセルがパスしなかった場合（Ｓ２０８のＦａｉｌ）、ステップＳ２０９で、書き込みループ数ｎｌをインクリメントする。
【００５３】
続いて、ステップＳ２１０で、通過電圧ＶｐａｓｓにΔＶｐａｓｓを加える。ここで、ΔＶｐａｓｓは電圧Ｖｃ２（＞電圧Ｖｃ１）である。このとき、プログラム電圧ＶｐｇｍもΔＶｐｇｍステップアップさせる。
【００５４】
続いて、ステップＳ２１１で、書き込みループ数ｎｌが、例えばｎｌ＜Ｒｎｌ２（Ｒｎｌ２は、例えば１５）かを判定する。ｎｌ＜Ｒｎｌ２であれば（Ｓ２１１のＹｅｓ）、再度ステップＳ２０７において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、ｎ≧Ｒｎｌ２であれば（Ｓ２１１のＮｏ）、ステップＳ２１２に処理を移す。なお、Ｒｎｌ１＜Ｒｎｌ２である。
【００５５】
ステップＳ２１２では、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。ここでの通過電圧Ｖｐａｓｓは、最大の通過電圧Ｖｐｓｍａｘとなる。すなわち、以降のプログラム動作では通過電圧Ｖｐａｓｓをステップアップさせない。
【００５６】
続いて、ステップＳ２１３で、ベリファイ動作を実行する。このベリファイ動作でプログラムが完了（全てのメモリセルがパス）したかを判定し、完了している場合（Ｓ２１３のＰａｓｓ）書き込みシーケンスを終了し、完了していない場合（Ｓ２１３のＦａｉｌ）、ステップＳ２１４で書き込みループ数ｎｌが最大ループ回数（図中の“ｌｏｏｐ  ｍａｘ”）に達したかどうか判断する。このステップＳ２１４において、書き込みループ数ｎｌが最大ループ回数に達している場合は、書き込み失敗として書き込みシーケンスを終了する。一方、書き込みループ回数に達していない場合は、Ｓ２１２に処理を戻す。この際、プログラム電圧ＶｐｇｍはΔＶｐｇｍだけステップアップさせるが、通過電圧Ｖｐａｓｓはステップアップさせない。
【００５７】
図７は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓをプログラム電圧Ｖｐｇｍで制御する場合の書き込みシーケンスのフローチャートである。フローチャートの動作は、例えば、シーケンス制御回路７が制御する。
【００５８】
始めに、ステップＳ３０１で、プログラム電圧Ｖｐｇｍを、所定の電圧Ｖｐｇｍ０（Ｖｐｇｍ０は、例えば１３Ｖ）で初期化する。また、通過電圧Ｖｐａｓｓを初期通過電圧Ｖｐａｓｓ０で初期化する（初期通過電圧Ｖｐａｓｓ０は、例えば５Ｖ）。
【００５９】
続いて、ステップＳ３０２で、プログラム電圧Ｖｐｇｍが、Ｖｐｇｍ＜Ｒｖｐｇ１（Ｒｖｐｇ１は、例えば１５Ｖ）かを判定する。Ｖｐｇｍ＜Ｒｖｐｇ１であれば（Ｓ３０２のＹｅｓ）、ステップＳ３０３に処理を移し、Ｖｐｇｍ≧Ｒｖｐｇ１であれば（Ｓ３０２のＮｏ）、ステップＳ３０７に処理を移す。
【００６０】
続くステップＳ３０３及びＳ３０４は、図６のステップＳ２０３及びＳ２０４と同様であるため説明を省略する。
【００６１】
続いて、ステップＳ３０５で、プログラム電圧Ｖｐｇｍを所定の電圧ΔＶｐｇｍだけステップアップさせる。その後、図６のステップＳ２０６と同様のステップＳ３０６を処理し、ステップＳ３０２に処理を戻す。
【００６２】
ステップＳ３０７及びＳ３０８は、図６のステップＳ２０７及びＳ２０８と同様であるため説明を省略する。
【００６３】
続いて、ステップＳ３０９で、プログラム電圧Ｖｐｇｍを電圧ΔＶｐｇｍだけステップアップさせる。その後、図６のステップＳ２１０と同様のステップＳ３１０を処理する。
【００６４】
続いて、ステップＳ３１１で、プログラム電圧Ｖｐｇｍが、Ｖｐｇｍ＜Ｒｖｐｇ２（Ｒｖｐｇ２は、例えば１７Ｖ）かを判定する。Ｖｐｇｍ＜Ｒｖｐｇ２であれば（Ｓ３１１のＹｅｓ）、再度ステップＳ３０７において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、Ｖｐｇｍ≧Ｒｖｐｇ２であれば（ステップＳ３１１のＮｏ）、ステップＳ３１２に処理を移す。なお、Ｒｖｐｇ１＜Ｒｖｐｇ２である。
【００６５】
ステップＳ３１２〜Ｓ３１４は、図６のステップＳ２１２〜Ｓ２１４と同様であるため説明を省略する。
【００６６】
図８は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを通過電圧Ｖｐａｓｓで制御する場合の書き込みシーケンスのフローチャートである。フローチャートの動作は、例えば、シーケンス制御回路７が制御する。
【００６７】
始めに、ステップＳ４０１で、通過電圧Ｖｐａｓｓを、初期通過電圧Ｖｐａｓｓｓ０（初期通過電圧Ｖｐａｓｓ０は、例えば５Ｖ）で初期化する。
【００６８】
続いて、ステップＳ４０２で、通過電圧Ｖｐａｓｓが、Ｖｐａｓｓ＜Ｒｖｐａ１（Ｒｖｐａ１は、例えば７Ｖ）かを判定する。Ｖｐａｓｓ＜Ｒｖｐａ１であれば（Ｓ４０２のＹｅｓ）、ステップＳ４０３に処理を移し、Ｖｐａｓｓ≧Ｒｖｐａ１であれば（Ｓ４０２のＮｏ）、ステップＳ４０６に処理を移す。
【００６９】
続くステップＳ４０３、Ｓ４０４及びＳ４０５は、図６のステップＳ２０３、Ｓ２０４及びＳ２０６と同様であるため説明を省略する。
【００７０】
ステップＳ４０６、Ｓ４０７及びＳ４０８は、図６のステップＳ２０７、Ｓ２０８及びＳ２１０と同様であるため説明を省略する。
【００７１】
続いて、ステップＳ４０９で、通過電圧Ｖｐａｓｓが、Ｖｐａｓｓ＜Ｒｖｐａ２（Ｒｖｐａ２は、例えば９Ｖ）かを判定する。Ｖｐａｓｓ＜Ｒｖｐａ２であれば（Ｓ４０９のＹｅｓ）、再度ステップＳ４０６において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラムを実行する。一方、Ｖｐａｓｓ≧Ｒｖｐａ２であれば（Ｓ４０９のＮｏ）、ステップＳ４１０に処理を移す。なお、Ｒｖｐａ１＜Ｒｖｐａ２である。
【００７２】
ステップＳ４１０〜Ｓ４１２は、図６のステップＳ２１２〜Ｓ２１４と同様であるため説明を省略する。
【００７３】
次に、本実施形態に係る書き込みシーケンスを２ビット／セルのメモリセルを用いた不揮発性半導体記憶装置に適用した場合について説明する。例えば、図３のＵページ書き込みの場合を想定している。
【００７４】
図９は、２ビット／セルのメモリセルＭＣに対する書き込みシーケンス時における書き込みループ数とプログラム電圧Ｖｐｇｍ及び通過電圧Ｖｐａｓｓの関係を示す図である。また、図１０は、図９の場合における通過電圧Ｖｐａｓｓの様子を示す図である。
【００７５】
始めの１〜Ｌ回目（Ｌは、例えば５）の書き込みループは、Ａレベルのプログラム期間となる。ここでは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを０Ｖとする。
【００７６】
続くＬ＋１〜Ｍ回目（Ｍは、例えば１０）の書き込みループは、Ｂレベルのプログラム期間となる。ここでは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを一定の電圧Ｖｃ１とする。
【００７７】
続くＭ＋１回目以降の書き込みループは、Ｃレベルのプログラム期間となる。ここでは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを電圧Ｖｃ１より大きい一定の電圧Ｖｃ２とする。なお、図９及び図１０の場合、Ｎ回目（Ｎは、例えば１５）の書き込みループにおいて、通過電圧Ｖｐａｓｓが、最大の通過電圧Ｖｐｓｍａｘ）に達してしまう。そのため、仮に、Ｎ＋１回目以降の書き込みループでも通過電圧Ｖｐａｓｓを電圧Ｖｃ２ずつステップアップしていくと、通過電圧Ｖｐａｓｓが印加される非選択メモリセルＭＣの閾値電圧Ｖｔｈもプログラム電圧Ｖｐｇｍを印加したときと同様、変動することになる。そのため、Ｎ＋１回目以降の書き込みループでは、通過電圧Ｖｐａｓｓをステップアップしないようにする。
【００７８】
以上のように、本実施形態の書き込みシーケンスでは、ステップアップ幅ΔＶｐａｓｓを、Ａレベルのプログラムが終了するＬ回目の書き込みループの後、Ｂレベルのプログラムが終了するＭ回目の書き込みループの後の２回、ステップアップ幅ΔＶｐａｓｓが大きくなるように切り替えている。
【００７９】
つまり、ｎ回目の書き込みループで用いる通過電圧Ｖｐａｓｓとｎ＋１回目の書き込みループで用いる通過電圧Ｖｐａｓｓの差（ステップアップ幅）をΔＶｎと表現すると、データ書き込み部は、ΔＶ（Ｌ−１）＜ΔＶＬ、ΔＶＬ≦ΔＶ（Ｍ−１）且つΔＶ（Ｍ−１）＜ΔＶＭとなるように通過電圧Ｖｐａｓｓを用いて書き込みループを実行していると言い換えることができる。
【００８０】
このように、図９及び図１０に示す実施形態の場合、Ａレベルのプログラム期間では、低い通過電圧Ｖｐａｓｓを用いることで、Ａレベルの閾値電圧分布が広がるのを抑制できると共に、ＢレベルやＣレベルなど閾値電圧Ｖｔｈが遷移し難いプログラム期間では、そのレベルに応じて通過電圧Ｖｐａｓｓをステップアップさせていくこと、メモリセルＭＣの閾値電圧Ｖｔｈを遷移し易くすることができる。
【００８１】
次に図９及び図１０に示す書き込みシーケンスの制御方法について説明する。フローチャートの動作は、例えば、シーケンス制御回路７が制御する。
【００８２】
図１１は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを書き込みループ回数ｎｌで制御する場合の書き込みシーケンスのフローチャートである。ここで、書き込みループ数はＮＡＮＤチップ１０内に配置されたラッチに記憶することができる。
【００８３】
始めに、ステップＳ５０１で、書き込みループ数ｎｌを１で初期化する。また、通過電圧Ｖｐａｓｓを初期通過電圧Ｖｐａｓｓ０で初期化する（初期通過電圧Ｖｐａｓｓ０は、例えば５Ｖ）。
【００８４】
続いて、ステップＳ５０２で、書き込みループ数ｎｌが、例えばｎｌ＜Ｌ（例えばＬは５）かを判定する。ｎｌ＜Ｌであれば（Ｓ５０２のＹｅｓ）、ステップＳ５０３において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、ｎｌ≧Ｌであれば（Ｓ５０２のＮｏ）、ステップＳ５０７に処理を移す。
【００８５】
続いて、ステップＳ５０４で、ベリファイ動作を実行する。仮に、このステップＳ５０４で全てのメモリセルがパスした場合（Ｓ５０４のＰａｓｓ）、動作を終了する。一方、一部のメモリセルがパスしなかった場合（Ｓ５０４のＦａｉｌ）、ステップＳ５０５で、書き込みループ数ｎｌをインクリメントする。
【００８６】
続いて、ステップＳ５０６で、通過電圧ＶｐａｓｓにΔＶｐａｓｓを加える。但し、ここでは、ΔＶｐａｓｓは０Ｖであり、実質的に何も処理を行わない。つまり、書き込みループ数がｎｌ＜Ｌである間は、通過電圧Ｖｐａｓｓはステップアップされない。その後、ステップＳ５０２に処理を戻す。
【００８７】
ステップＳ５０７では、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。
【００８８】
続いて、ステップＳ５０８で、ベリファイ動作を実行する。仮に、このステップＳ５０８で全てのメモリセルがパスした場合（Ｓ５０８のＰａｓｓ）、動作を終了する。一方、一部のメモリセルがパスしなかった場合（Ｓ５０８のＦａｉｌ）ステップＳ５０９で、書き込みループ数ｎｌをインクリメントする。
【００８９】
続いて、ステップＳ５１０で、通過電圧ＶｐａｓｓにΔＶｐａｓｓを加える。ここで、ΔＶｐａｓｓは電圧Ｖｃ１である。このとき、プログラム電圧ＶｐｇｍもΔＶｐｇｍだけステップアップさせる。
【００９０】
続いて、ステップＳ５１１で、書き込みループ数ｎｌが、例えばｎｌ＜Ｍ（例えばＭは１０）かを判定する。ｎｌ＜Ｍであれば（Ｓ５１１のＹｅｓ）、再度ステップＳ５０７において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、ｎｌ≧Ｍであれば（Ｓ５１１のＮｏ）、ステップＳ５１２に処理を移す。
【００９１】
ステップＳ５１２では、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。
【００９２】
続いて、ステップＳ５１３で、ベリファイ動作を実行する。仮に、このステップＳ５１３で全てのメモリセルがパスした場合（Ｓ５１３のＰａｓｓ）、動作を終了する。一方、一部のメモリセルがパスしなかった場合（Ｓ５１３のＦａｉｌ）、ステップ５１４で、書き込みループ数ｎｌをインクリメントする。
【００９３】
続いて、ステップＳ５１５で、通過電圧ＶｐａｓｓにΔＶｐａｓｓを加える。ここで、ΔＶｐａｓｓは電圧Ｖｃ２（＞電圧Ｖｃ１）である。このとき、プログラム電圧ＶｐｇｍもΔＶｐｇｍだけステップアップさせる。
【００９４】
続いて、ステップＳ５１６で、書き込みループ数ｎｌが、例えばｎｌ＜Ｎ（例えばＮは１５）かを判定する。ｎｌ＜Ｎであれば（Ｓ５１６のＹｅｓ）、再度ステップＳ５１２において、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓでプログラム動作を実行する。一方、ｎｌ≧Ｎであれば（Ｓ５１６のＮｏ）、ステップＳ５１７に処理を移す。
【００９５】
ステップＳ５１７では、最大の通過電圧Ｖｐｓｍａｘを用いてプログラム動作を実行する。
【００９６】
続いて、ステップＳ５１８で、ベリファイ動作を実行する。このベリファイ動作でプログラムが完了（全てのメモリセルがパス）したかを判定し、完了している場合（Ｓ５１８のＰａｓｓ）、書き込みシーケンスを終了し、完了していない場合（Ｓ５１８のＦａｉｌ）、Ｓ５１９で書き込みループ数ｎｌが最大ループ回数（図中の“ｌｏｏｐ  ｍａｘ”）に達したかどうか判断する。このステップＳ５１９において、書き込みループ数ｎｌが最大ループ回数に達している場合は、書き込み失敗として書き込みシーケンスを終了する。一方、書き込みループ回数に達していない場合は、ステップＳ５１７に処理を戻す。この際、プログラム電圧ＶｐｇｍはΔＶｐｇｍだけステップアップさせるが、通過電圧Ｖｐａｓｓはステップアップさせない。
【００９７】
図１１に示す書き込みシーケンスは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを書き込みループ回数で制御する場合であったが、図７及び図８と同様、プログラム電圧Ｖｐａｇｍ或いは通過電圧Ｖｐａｓｓで制御することもできる。
【００９８】
また、本実施形態の書き込みシーケンスを用いた場合、低レベルの閾値電圧分布の広がりを抑制できることは前述の通りであるが、その他にも次のような効果を得ることもできる。
【００９９】
図１２及び図１３は、図９のグラフに対してＡレベル〜Ｃレベルのプログラム期間を重ね合わせた図である。図１２は、書き込み／消去サイクル数が少ないメモリセルＭＣ（以下、「フレッシュセル」と呼ぶ）の場合であり、図１３は、書き込み／消去サイクル数が多いメモリセルＭＣ（以下、「サイクルドセル」と呼ぶ）の場合である。
【０１００】
フレッシュセルに対する書き込みシーケンスの場合、図１２に示すように、ＡレベルのプログラムはＬ回目（Ｌは、例えば５）の書き込みループ、ＢレベルのプログラムはＭ回目（Ｌは、例えば１０）の書き込みループ、ＣレベルのプログラムはＸ回目（Ｘは、例えば１５）の書き込みループで完了するとする。
【０１０１】
これに対し、サイクルドセルの場合、図１３に示すように、ＡレベルのプログラムはＬ回目の書き込みループよりも早いＬ´回目の書き込みループ、ＢレベルのプログラムはＭ回目の書き込みループよりも早いＭ´回目の書き込みループ、ＣレベルのプログラムはＸ回目の書き込みループよりも早いＸ´回目の書き込みループで完了する。これは、一般的に、サイクルドセルの方が、フレッシュセルよりも閾値電圧が上昇し易い（以下「プログラムし易い」と称する場合がある）ためである。
【０１０２】
つまり、図１２及び図１３に示す場合、フレッシュセルにとってのＡレベルのプログラム期間（１〜Ｌ回目の書き込みループ）は、サイクルドセルにとってのＡレベル及びＢレベルのプログラム期間となる。但し、ここでのＢレベルのプログラムとは、サイクルドセルの中でも、プログラムがし易いメモリセルＭＣが対象となることに注意されたい。同様に、フレッシュセルにとってのＢレベルのプログラム期間（Ｌ＋１〜Ｍ回目の書き込みループ）は、サイクルドセルにとってのＢレベル及びＣレベルのプログラム期間となる。但し、ここでのＣレベルのプログラムとは、サイクルドセルの中でも、プログラムがし易いメモリセルＭＣが対象となることに注意されたい。また、フレッシュセルに取ってのＣレベルのプログラム期間（Ｍ以降の書き込みループ）は、サイクルドセルにとってのＣレベルのプログラム期間である。但し、ここでのＣレベルのプログラムとは、サイクルドセルの中でも、プログラムがし難いメモリセルＭＣが対象となることに注意されたい。
【０１０３】
以上のように、図９〜図１１に示す書き込みシーケンスの場合、サイクルドセルに関しては、Ｂレベルのプログラムがし易いメモリセルＭＣは、通過電圧Ｖｐａｓｓを低く抑えたステップアップしないＬ回目までの書き込みループでプログラムされ、また、Ｃレベルのプログラムがし易いメモリセルＭＣは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓが電圧Ｖｃ１と低いＭ回目までの書き込みループでプログラムされることになる。その結果、サイクルドセルに対するＢレベル及びＣレベルの過プログラムを防ぐことができ、図１４の点線で示すように、Ｂレベル及びＣレベルの閾値電圧分布の上裾が広がるのを抑制することができる。
【０１０４】
以上、本実施形態によれば、前述の書き込みシーケンスを用いることで、書き込みシーケンスの処理時間を増大させることなく低レベルの閾値電圧分布の広がりを抑制することができる。また、サイクルドセルに対するデータ書き込みに関しても、高レベルの閾値電圧分布の広がりを抑制することができる。
【０１０５】
［第２の実施形態］
以下で説明する第２〜第４の実施形態は、第１の実施形態の変形例となるものである。
【０１０６】
第２の実施形態では、書き込みループ毎に通過電圧Ｖｐａｓｓを指数関数的にステップアップさせる書き込みシーケンスについて説明する。
【０１０７】
図１５は、本実施形態に係る書き込みシーケンス時における書き込みループ数とプログラム電圧Ｖｐｇｍ及び通過電圧Ｖｐａｓｓの関係を示す図である。また、図１６及び図１７は、本実施形態に係る書き込みシーケンスを用いた場合であって、Ｎ＝６とした場合の通過電圧Ｖｐａｓｓの様子を示す図である。
【０１０８】
本実施形態の場合、図１５に示すように、通過電圧Ｖｐａｓｓが、最大の通過電圧Ｖｐｓｍａｘに達するＮ回目の書き込みループまではステップアップ幅ΔＶｐａｓｓ自体を等間隔でステップアップさせながら書き込みループを繰り返し実行する。
【０１０９】
具体的には、図１６に示す場合、通過電圧Ｖｐａｓｓが、最大の通過電圧Ｖｐｓｍａｘに達する６回目の書き込みループまで、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓ自体を０．１Ｖずつ増やしながら、書き込みループを繰り返し実行する。
【０１１０】
つまり、ｎ回目の書き込みループで用いる通過電圧Ｖｐａｓｓに対するｎ＋１回目の書き込みループで用いる通過電圧Ｖｐａｓｓの差（ステップアップ幅）をΔＶｎと表現すると、データ書き込み部は、ΔＶ１＝０．１Ｖ、ΔＶ２＝０．２Ｖ、・・・、ΔＶ５＝０．５Ｖとなるような通過電圧Ｖｐａｓｓを用いて書き込みループを実行していると言い換えることができる。これを一般的な形で表わすと、ΔＶｎ＝ΔＶ（ｎ−１）＋０．１となる。
また、図１７は、本実施形態に係る書き込みシーケンスの他の例である。
【０１１１】
図１７に示す場合、１回目の書き込みループから２回目の書き込みループにかけての通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓは、０．１Ｖであるが、それ以降は、通過電圧Ｖｐａｓｓがプログラム電圧Ｖｐｇｍの下限に達する６回目の書き込みループまで、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓ自体を０．２Ｖずつ増やしながら、書き込みループを繰り返し実行する。
【０１１２】
図１６及び図１７のステップアップ幅ΔＶｐａｓｓ制御は、論理回路による演算により行うことができる。また、ＮＡＮＤチップ１０内のＲＯＭヒューズなどにステップアップ幅ΔＶｐａｓｓの変動値を記憶することにより行うこともできる。
【０１１３】
メモリセルＭＣのプログラムのし易さはメモリセル毎にバラツキがあり、各レベルのプログラム期間も明確に分けられないような場合がある。
【０１１４】
この点、本実施形態によれば、プログラムする閾値電圧に関係なくプログラムし易いメモリセルＭＣに対しては低い通過電圧Ｖｐａｓｓを用いたプログラム動作を実行し、プログラムし難いメモリセルＭＣに対しては高い通過電圧Ｖｐａｓｓを用いたプログラム動作を実行することになるため、第１の実施形態と比べ、メモリセルのプログラム特性により最適なプログラム動作を実行することができる。
【０１１５】
［第３の実施形態］
第３の実施形態では、早い段階の書き込みループでは、通過電圧Ｖｐａｓｓを一定の幅でステップアップさせ、その後の書き込みループでは、通過電圧Ｖｐａｓｓを指数関数的にステップアップさせる書き込みシーケンスについて説明する。
【０１１６】
図１８は、本実施形態に係る書き込みシーケンス時における書き込みループ数とプログラム電圧Ｖｐｇｍ及び通過電圧Ｖｐａｓｓの関係を示す図である。また、図１９は、本実施形態に係る書き込みシーケンスを用いた場合であって、Ｌ＝２、Ｎ＝６とした場合の通過電圧Ｖｐａｓｓの関係を示す図である。
【０１１７】
本実施形態の場合、図１８に示すように、１〜Ｌ回目の書き込みループまでは、通過電圧Ｖｐａｓｓを一定の幅Ｖｃ１でステップアップさせ、Ｌ＋１回目の書き込みループから通過電圧ＶｐａｓｓがＮ回目の書き込みループまではステップアップ幅ΔＶｐａｓｓ自体をステップアップさせながら書き込みループを繰り返し実行する。
【０１１８】
具体的には、図１９に示す場合、例えば、１及び２回目の書き込みループでは、通過電圧Ｖｐａｓｓを０．１Ｖずつステップアップし、３回目の書き込みループから通過電圧Ｖｐａｓｓが６回目の書き込みループまでは、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓ自体を０．１Ｖずつ増やしながら、書き込みループを繰り返し実行する。
【０１１９】
つまり、ｎ回目の書き込みループで用いる通過電圧Ｖｐａｓｓに対するｎ＋１回目の書き込みループで用いる通過電圧Ｖｐａｓｓの差（ステップアップ幅）をΔＶｎと表現すると、データ書き込み部は、ΔＶ１＝０．１Ｖ、ΔＶ２＝０．１Ｖ、ΔＶ３＝０．２Ｖ、ΔＶ４＝０．３Ｖ、ΔＶ５＝０．５Ｖとなるような通過電圧Ｖｐａｓｓを用いて書き込みループを実行していると言える。
【０１２０】
本実施形態の場合、低レベルの閾値電圧のプログラム期間では、通過電圧Ｖｐａｓｓのステップアップを抑えつつプログラム動作を実行するので、第１の実施形態と同様、低レベルの閾値電圧分布の広がりを抑えることができると共に、その後の書き込みループでは、第２の実施形態と同様、メモリセルのプログラム特性に応じた適切な通過電圧Ｖｐａｓｓを用いたプログラム動作を実行することができる。
【０１２１】
［第４の実施形態］
第４の実施形態は、図３の書き込みとは異なり、書き込みシーケンスにおいて、Ａ〜Ｃレベルに書き込まれるメモリセルに対して同時に書き込みが行われ、各レベルに達したメモリセルから順に書き込み禁止状態（ロックアウト動作）となる。この書き込み禁止状態は、ビット線の電圧を変更（例えば、０Ｖから２．５Ｖに変更）することにより行うことができる。
【０１２２】
図２０は、本実施形態に係る書き込みシーケンス時における書き込みループ数とプログラム電圧Ｖｐｇｍ及び通過電圧Ｖｐａｓｓの関係を示す図である。また、図２１は、本実施形態に係る書き込みシーケンスを用いた場合の通過電圧Ｖｐａｓｓの関係を示す図である。ここで、Ａレベルのプログラム期間はＡレベルに書き込まれるメモリセルのベリファイがパスするまでの期間であり、Ｂレベルのプログラム期間はＢレベルに書き込まれるメモリセルのベリファイがパスするまでの期間であり、Ｃレベルのプログラム期間はＣレベルに書き込まれるメモリセルのベリファイがパスするまでの期間である。
【０１２３】
本実施形態の場合、図２０に示すように、Ａレベルのプログラム期間である１〜Ｌ回目の書き込みループでは、通過電圧Ｖｐａｓｓをステップアップさせずにプログラム動作を実行し、Ｂレベルのプログラム期間であるＬ＋１〜Ｍ回目の書き込みループでは、通過電圧Ｖｐａｓｓを所定の電圧Ｖｃ１でステップアップさせつつプログラム動作を実行する。その後、Ｃレベルのプログラム期間であるＭ＋１〜Ｎ回目の書き込みループでは、通過電圧Ｖｐａｓｓを指数関数的にステップアップさせつつプログラム動作を実行する。
【０１２４】
具体的には、図２１に示す場合、Ａレベルのプログラム期間である１〜４回目の書き込みループでは、通過電圧Ｖｐａｓｓをステップアップさせずにプログラム動作を実行し、Ｂレベルのプログラム期間である５及び６回目の書き込みループでは、通過電圧Ｖｐａｓｓを０．１Ｖだけステップアップさせつつプログラム動作を実行する。その後、Ｃレベルのプログラム期間である７〜９回目の書き込みループでは、通過電圧Ｖｐａｓｓを、閾値電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓ自体を０．１Ｖずつステップアップさせつつプログラム動作を実行する。
【０１２５】
つまり、ｎ回目の書き込みループで用いる通過電圧Ｖｐａｓｓに対するｎ＋１回目の書き込みループで用いる通過電圧Ｖｐａｓｓの差（ステップアップ幅）をΔＶｎと表現すると、データ書き込み部は、ΔＶ１〜ΔＶ３＝０Ｖ、ΔＶ４，ΔＶ５＝０．１Ｖ、ΔＶ６＝０．２Ｖ、ΔＶ７＝０．３Ｖ、ΔＶ８＝０．４Ｖとなるような通過電圧Ｖｐａｓｓを用いて書き込みループを実行している。
【０１２６】
本実施形態の場合、Ａレベル及びＢレベルのプログラム期間では、第１の実施形態と同様、プログラムする閾値電圧に適したプログラム動作を実行することができ、Ｃレベルのプログラム期間では、第２の実施形態と同様、メモリセルのプログラム特性に適したプログラム動作を実行することができる。
【０１２７】
図２２は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓをベリファイ動作時のプログラム対象となるメモリセルＭＣのうちベリファイパスしたメモリセル数の割合（以下、「ベリファイパス率」と呼ぶ）で制御する場合の書き込みシーケンスのフローチャートである。なお、図２２のフローチャートは、２ビット／セルのメモリセルＭＣに対する書き込みシーケンスを示している。ここで、ベリファイパス率は、ＥＣＣで救済できるビットはパスしたものと見なしてベリファイパス率を計算しても良い。
【０１２８】
始めに、ステップＳ６０１で、Ａレベルのベリファイパス率ｒａが、ｒａ＜Ｒｒａ（Ｒｒａは、例えば１００％）かを判定する。ｒａ＜Ｒｒａであれば、ステップＳ６０２に処理を移し、ｒａ≧Ｒｒａであれば、ステップＳ６０５に処理を移す。なお、ベリファイパス率は１００％には限られず、Ａレベルに書き込まれるメモリセルの７０％がパスした時点を、Ａレベルのプログラム期間と定義することもできる。以下、Ｂレベル、Ｃレベルのベリファイパス率に関しても同様である。
【０１２９】
続くステップＳ６０２及びＳ６０３は、図６のステップＳ２０３及びＳ２０４と同様であるため説明を省略する。なお、ステップＳ６０３において、Ａレベルのベリファイをパスしたメモリセルは以降のプログラム動作において書き込み禁止状態となる。
【０１３０】
続いて、ステップＳ６０４で、ステップＳ６０３におけるベリファイ結果に基づいてＡレベルのベリファイパス率ｒａを更新する。その後、ステップＳ６０１に処理を戻す。
【０１３１】
ステップＳ６０５で、Ｂレベルのベリファイパス率ｒｂが、ｒｂ＜Ｒｒｂ（Ｒｒｂは、例えば１００％）かを判定する。ｒｂ＜Ｒｒｂであれば、ステップＳ６０６に処理を移す。一方、ｒｂ≧Ｒｒｂであれば、ステップＳ６０９に処理を移す。
【０１３２】
続くステップＳ６０６及びＳ６０７は、図６のステップＳ２０７及びＳ２０８と同様であるため説明を省略する。
【０１３３】
続いて、ステップＳ６０８で、ステップＳ６０７におけるベリファイ結果に基づいてＢレベルのベリファイパス率ｒｂを更新する。その後、ステップＳ６０５に処理を戻す。
【０１３４】
ステップＳ６０９で、通過電圧Ｖｐａｓｓが最大の通過電圧Ｖｐｓｍａｘに達しているかを判定する。通過電圧Ｖｐａｓｓが最大の通過電圧Ｖｐｓｍａｘに達している場合、ステップＳ５１１に処理を移し、通過電圧Ｖｐａｓｓが最大の通過電圧Ｖｐｓｍａｘに達していない場合、ステップＳ６１０に処理を移す。
【０１３５】
続くステップＳ６１０、Ｓ６１１、Ｓ６１２及びＳ６１３は、図６のステップＳ２０７、Ｓ２１０、Ｓ２１１及びＳ２１４と同様であるため説明を省略する。
【０１３６】
最後に、ステップＳ６１４で、Ｃレベルのベリファイパス率ｒｃが、ｒｃ＜Ｒｒｃ（Ｒｒｃは、例えば１００％）かを判定する。ｒｃ＜Ｒｒｃであれば、書き込みシーケンスを完了する。一方、ｒｃ≧Ｒｒｃであれば、ステップＳ６１５で書き込みループ数ｎｌが最大ループ回数（図中の“ｌｏｏｐ  ｍａｘ”）に達したかどうか判断した上で、ステップＳ６０９に処理を戻す。
【０１３７】
このように、Ａ〜Ｃレベルまで一括に書き込む方式に対応することもできる。その結果、プログラム動作を高速化することができる。
【０１３８】
［第５の実施形態］
第５の実施形態は、第１の実施形態の変形例である。
第１の実施形態では、書き込み／消去サイクル数に関係なく、書き込みループ数、プログラム電圧Ｖｐｇｍ、通過電圧Ｖｐａｓｓ或いはベリファイパス率によって通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを切り替えていた。しかし、第１の実施形態でも述べたように、一般的に、メモリセルは書き込み／消去サイクル数が増えるにつれてプログラムし易くなる傾向にある。
【０１３９】
そこで、本実施形態では、書き込み／消去サイクル数に応じて、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを切り替える判定条件を変える書き込みシーケンスについて説明する。
【０１４０】
図２３は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを書き込みループに応じて切り替える書き込みシーケンスのフローチャートの一部であり、図６に示すフローチャートの開始（Ｓｔａｒｔ）及びステップＳ２０１間に追加される処理である。
【０１４１】
図２３の場合、始めに、ステップＳ２５１において、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きいかを判定し、書き込み／消去回数がサイクル数Ｒｎｃ以下の場合、ステップＳ２５２に処理を移し、図６のステップＳ２０２で用いる基準書き込みループ数Ｒｎｌ１を所定のループ数Ｃｎｌ１で初期化し、図６のステップＳ２０６で用いる基準書き込みループ数Ｒｎｌ２を所定のループ数Ｃｎｌ２で初期化する。一方、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きい場合、ステップＳ２５３に処理を移し、基準書き込みループ数Ｒｎｌ１をループ数Ｃｎｌ１より大きいループ数Ｃｎｌ１´で初期化し、基準書き込みループ数Ｒｎｌ２をループ数Ｃｎｌ２より大きいループ数Ｃｎｌ２´で初期化する。
【０１４２】
なお、この書き込み／消去サイクル数は、ＮＡＮＤチップ１０内のＲＯＭヒューズに記憶されていても良い。この場合は、シーケンス制御回路７がＲＯＭヒューズに記憶された書き込み／消去サイクル数を読み出し、ステップＳ２５２の処理を行う。また、この書き込み／消去サイクル数は、ＲＯＭヒューズ１２に記憶されていても良い。この場合はコントローラ１１が書き込みコマンドをＮＡＮＤチップ１０への送付に前後して、書き込み／消去サイクル数の情報をＮＡＮＤチップ１０へ送付しても良い。
【０１４３】
このように、書き込み／消去サイクル数の増加に伴い、通過電圧Ｖｐａｓｓのステップアップを遅らせるようにすることで、プログラム速度が速くなったメモリセルへのアシストを弱くすることができる。これによって、書き込みシーケンス後の閾値電圧分布の広がりを抑制することができる。
【０１４４】
図２４は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓをプログラム電圧Ｖｐｇｍに応じて切り替える書き込みシーケンスのフローチャートの一部であり、図７に示すフローチャートの開始（Ｓｔａｒｔ）及びステップＳ３０１間に追加される処理である。
【０１４５】
図２４の場合、始めに、ステップＳ３５１において、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きいかを判定し、書き込み／消去回数がサイクル数Ｒｎｃ以下の場合、ステップＳ３５２に処理を移し、図７のステップＳ３０２で用いる基準プログラム電圧Ｒｖｐｇ１を所定の電圧Ｃｖｐｇ１で初期化し、図７のステップＳ３０６で用いる基準プログラム電圧Ｒｖｐｇ２を所定の電圧Ｃｖｐｇ２で初期化する。一方、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きい場合、ステップＳ３５３に処理を移し、基準プログラム電圧Ｖｐｇｍ１を電圧Ｒｖｐｇ１より大きい所定の電圧Ｖｐｇ１´で初期化し、基準プログラム電圧Ｒｖｐｇ２を電圧Ｖｐｇ２より大きい所定の電圧Ｖｐｇ２´で初期化する。
【０１４６】
図２５は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓを通過電圧Ｖｐａｓｓに応じて切り替える書き込みシーケンスのフローチャートの一部であり、図８に示すフローチャートの開始（Ｓｔａｒｔ）及びステップＳ４０１間に追加される処理である。
【０１４７】
図２５の場合、始めに、ステップＳ４５１において、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きいかを判定し、書き込み／消去サイクル数がサイクル数Ｒｎｃ以下の場合、ステップＳ４５２に処理を移し、図８のステップＳ４０２で用いる基準通過電圧Ｒｖｐａ１を所定の電圧Ｃｖｐａ１で初期化し、図８のステップＳ４０６で用いる基準通過電圧Ｒｖｐａ２を所定の電圧Ｃｖｐａ２で初期化する。一方、書き込み／消去サイクル数が所定のサイクル数Ｒｎｃよりも大きい場合、ステップＳ４５３に処理を移し、基準通過電圧Ｖｐｇａ１を電圧Ｒｖｐａ１より大きい所定の電圧Ｃｖｐａ１´で初期化し、基準通過電圧Ｒｖｐａ２を電圧Ｃｖｐａ２より大きい所定の電圧Ｃｖｐａ２´で初期化する。
【０１４８】
図２６は、通過電圧Ｖｐａｓｓのステップアップ幅ΔＶｐａｓｓのベリファイパス率に応じて切り替える書き込みシーケンスにおいて、書き込み／消去サイクルと図９に示すフローチャートのステップＳ５０１、Ｓ５０５及びＳ５１５の判定条件との関係を示す具体例である。
【０１４９】
例えば、書き込み／消去サイクル数Ｒｎｃが１０００回未満の場合、ステップＳ５０１の判定条件をＡレベルのベリファイパス率が１００％か、ステップＳ５０５の判定条件をＢレベルのベリファイパス率が１００％か、ステップＳ５１５の判定条件をＣレベルのベリファイパス率が１００％かで設定する。
【０１５０】
書き込み／消去サイクル数Ｒｎｃが１万回未満の場合、ステップＳ５０１の判定条件をＢレベルのベリファイパス率が５０％か、ステップＳ５０５の判定条件をＢレベルのベリファイパス率が５０％か、ステップＳ５１５の判定条件をＣレベルのベリファイパス率が１００％かで設定する。
【０１５１】
また、書き込み／消去サイクル数Ｒｎｃが１万回以上の場合、ステップＳ５０１の判定条件をＢレベルのベリファイパス率が７５％か、ステップＳ５０５の判定条件をＢレベルのベリファイパス率が７５％か、ステップＳ５１５の判定条件をＣレベルのベリファイパス率が１００％かで設定する。
【０１５２】
以上、図２３〜図２５のいずれも、図２２と同様、書き込み／消去サイクル数の増加に伴い、通過電圧Ｖｐａｓｓのステップアップを遅らせるようにすることで、プログラム速度が速くなったメモリセルへのアシストを弱くすることができる。これによって、書き込みシーケンス後の閾値電圧分布の広がりを抑制することができる。
【０１５３】
以上、本実施形態によれば、第１の実施形態と同様の効果を得られるばかりでなく、書き込み／消去サイクル数の増加によってプログラム特性が変化した場合であっても、適切な通過電圧Ｖｐａｓｓのステップアップが可能となり閾値電圧分布の広がりを抑制することができる。
【０１５４】
［その他］
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５５】
１・・・メモリセルアレイ、１ａ・・・ＲＯＭヒューズ領域、２ａ・・・ロウデコーダ／ワード線ドライバ、２ｂ・・・カラムデコーダ、３・・・ページバッファ、４・・・ＮＡＮＤストリング、５ｂ・・・カラムアドレスレジスタ、６・・・ロジック制御回路、７・・・シーケンス制御回路、８・・・電圧発生回路、８ａ・・・プログラム電圧発生回路、８ｂ・・・通過電圧発生回路、９・・・Ｉ／Ｏバッファ、１０・・・ＮＡＮＤチップ、１１・・・コントローラ、
【図１】
0005622712.tif 000002
【図２】
0005622712.tif 000003
【図３】
0005622712.tif 000004
【図４】
0005622712.tif 000005
【図５】
0005622712.tif 000006
【図６】
0005622712.tif 000007
【図７】
0005622712.tif 000008
【図８】
0005622712.tif 000009
【図９】
0005622712.tif 000010
【図１０】
0005622712.tif 000011
【図１１】
0005622712.tif 000012
【図１２】
0005622712.tif 000013
【図１３】
0005622712.tif 000014
【図１４】
0005622712.tif 000015
【図１５】
0005622712.tif 000016
【図１６】
0005622712.tif 000017
【図１７】
0005622712.tif 000018
【図１８】
0005622712.tif 000019
【図１９】
0005622712.tif 000020
【図２０】
0005622712.tif 000021
【図２１】
0005622712.tif 000022
【図２２】
0005622712.tif 000023
【図２３】
0005622712.tif 000024
【図２４】
0005622712.tif 000025
【図２５】
0005622712.tif 000026
【図２６】
0005622712.tif 000027
【図２７】
0005622712.tif 000028
【図２８】
0005622712.tif 000029
【図２９】
0005622712.tif 000030