(57)【要約】【課題】  プログラム動作や消去動作を短時間でかつ効率よく行なうことができる不揮発性半導体記憶装置を提供する。【解決手段】  パルス印加回数ｎが１２回までは、前半パルスとしてパルス幅が固定の２ｍｓに設定され、かつ１回ごとにパルス電圧が増加される。さらに後半パルスとして、電圧が最大電圧に到達するまで３ｍｓの固定パルス幅で、かつ１回ごとにパルス電圧が増加される。最大電圧到達後は、まずパルス幅３ｍｓで２回パルスが印加され、次に最大電圧においてパルス幅４ｍｓで２回パルスが印加され、また、続いて最大電圧において、パルス幅５ｍｓで２回パルスが印加される。最大電圧到達後もしきい値電圧の時間的変化をリニアに近づけることができる。【選択図】        図５
2005092948.tif 000002
【特許請求の範囲】
【請求項１】
不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、
前記複数のメモリセルに印加する電圧を発生する電源回路と、
前記電源回路を制御して前記メモリブロックの前記複数のメモリセルに一括して消去パルスを印加させる制御部とを備え、
前記制御部は、前記消去パルスを繰り返し印加させる際に、前記消去パルスの電圧が印加最大電圧値に達するまでは、第１の固定パルス幅で前記消去パルスの電圧を印加回数に応じて増加させ、前記消去パルスの電圧が前記印加最大電圧値に到達すると、前記印加回数に応じて前記消去パルスのパルス幅を増加させる、不揮発性半導体記憶装置。
【請求項２】
前記制御部は、前記印加回数が所定回数に到達するまでは、第２の固定パルス幅で前記消去パルスの印加をさせ、前記印加回数が前記所定回数に到達すると、前記第１のパルス幅で前記消去パルスの印加をさせる、請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記制御部は、前記消去パルスの電圧が前記印加最大電圧値に到達すると、同一のパルス幅の前記消去パルスを所定回数印加させた後に、パルス幅を増加させる、請求項１に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御部は、前記印加最大電圧値と、前記第１の固定パルス幅と、前記消去パルスの電圧の増分と、前記パルス幅の増分とを、変数として読込む、請求項１に記載の不揮発性半導体記憶装置。
【請求項５】
不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、
前記複数のメモリセルに印加する電圧を発生する電源回路と、
前記複数のメモリセルの一部を選択するためにアドレス信号をデコードするデコード回路とを備え、
前記デコード回路は、前記アドレス信号に応じて前記一部を選択する第１の動作と、前記アドレス信号に応じて前記一部に加えて他の領域を多重に選択する第２の動作とを制御信号に応じて切換えて実行し、
前記電源回路および前記デコード回路を制御して前記メモリブロックの消去を行なう制御部をさらに備え、
前記制御部は、前記メモリブロックが第１の消去状態になった後に、前記制御信号によって前記デコード回路に前記第２の動作を行なわせ、前記メモリブロックに対して過消去リカバリパルスを印加させる、不揮発性半導体記憶装置。
【請求項６】
前記制御部は、ターゲット時間に相当する数の前記過消去リカバリパルスを連続して印加し、その後過消去ベリファイを実行する、請求項５に記載の不揮発性半導体記憶装置。
【請求項７】
不揮発にデータを記憶する複数のメモリトランジスタを含むメモリブロックと、
前記複数のメモリトランジスタのコントロールゲートに印加するゲート電圧と、ドレインに印加するドレイン電圧とを発生する電源回路と、
前記ゲート電圧の目標電圧値に相当するカウント値をクロック信号に応じてカウントアップするカウンタと、
前記電源回路を制御する制御部とを備え、
前記制御部は、前記電源回路に対し前記ドレイン電圧の活性化を指示し、その後前記カウント値の初期値を前記カウンタに対してセットし、前記カウンタのカウントアップ動作のスタートおよびストップを制御する、不揮発性半導体記憶装置。
【請求項８】
前記カウンタは、カウントアップ速度が前記制御部からの指示信号に応じて変化し、
前記メモリブロックは、
前記メモリブロックが書込み許可状態か否かを示すロックビットを記憶する１対のメモリトランジスタをさらに含み、
前記制御部は、書込対象が前記ロックビットである場合には、前記書込対象が前記ロックビットで無い場合と比べて前記カウントアップ速度が遅くなるように前記指示信号を出力し、かつ前記書込対象が前記ロックビットで無い場合と比べて１回のパルス幅が長くなるように書込パルスを印加させる、請求項７に記載の不揮発性半導体記憶装置。
【請求項９】
前記制御部は、前記書込対象が前記ロックビットである場合には、書込パルスの印加ごとに前記カウンタに前記カウント値の初期値をセットし、前記カウンタのカウントアップ動作をスタートさせ、前記書込対象が前記ロックビットで無い場合には、２回目以降の書込パルスとして方形波を印加させる、請求項８に記載の不揮発性半導体記憶装置。
【請求項１０】
通常書込モードと加速書込モードとを有する不揮発性半導体記憶装置であって、
不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、
書込時に最初に書込データがセットされ、一時的にデータを保持する緩衝記憶部と、
前記メモリブロックからの読出データと前記緩衝記憶部の保持値とを受けて前記メモリブロックに書込パルスを印加するための情報を出力するベリファイ回路とを備え、
前記ベリファイ回路は、前記緩衝記憶部の前記保持値と前記読出しデータとを比較して前記緩衝記憶部の保持値を更新し前記情報を出力する第１の動作と、前記緩衝記憶部の前記保持値をそのまま前記情報として出力する第２の動作とを実行し、
前記不揮発性半導体記憶装置は、
前記ベリファイ回路の制御を行なう制御部をさらに備え、
前記制御部は、前記通常書込モードでは、前記ベリファイ回路に前記第１の動作を実行させることにより初回の書込パルスのための前記情報を出力させ、前記加速書込モードでは、前記ベリファイ回路に前記第２の動作を実行させることにより初回の書込パルスのための前記情報を出力させる、不揮発性半導体記憶装置。
【請求項１１】
前記制御部は、書込のための連続するアドレスを発生し、前記通常書込モードでは前記アドレスのインクリメントごとに割込み要求の有無と時間超過を判別し、前記加速書込モードでは割込み要求の有無の判別は行なわず前記アドレスのインクリメント複数回に１回の割合で時間超過を判別する、請求項１０に記載の不揮発性半導体記憶装置。
【請求項１２】
不揮発にデータを記憶する複数のメモリトランジスタを含むメモリブロックと、
前記複数のメモリトランジスタに印加する電圧を発生する電源回路と、
前記電圧の目標電圧値に相当するカウント値をクロック信号に応じてカウントアップするカウンタと、
前記電源回路を制御する制御部とを備え、
前記制御部は、前記メモリブロックの一括消去が指示されると、前記カウント値の初期値を前記カウンタに対してセットし、前記カウンタのカウントアップ動作のスタートおよびストップを制御する、不揮発性半導体記憶装置。
【請求項１３】
前記カウンタは、
複数ビットの入力値に前記制御部から与えられる値を加算する加算器と、
ロード信号に応じて保持値がセットされイネーブル信号の活性化に応じて前記加算器の出力を取り込みイネーブル信号の非活性化に応じて現在の保持値を維持し、保持値を前記複数ビットの入力値として前記加算器に出力する保持回路とを含む、請求項１２に記載の不揮発性半導体記憶装置。
【請求項１４】
ノーマルメモリセルアレイと、
スペアメモリセルアレイと、
アドレス信号に応じて前記ノーマルメモリセルアレイの一部を選択するノーマルデコード回路と、
前記アドレス信号を受けて冗長判定を行なう冗長判定回路と、
前記冗長判定回路の出力をテスト信号に応じて強制的に活性化させるゲート回路と、
前記ゲート回路の出力と前記アドレス信号とに応じて前記スペアメモリセルアレイの一部を選択するスペアデコード回路とを備え、
前記スペアデコード回路は、前記テスト信号の活性化時に前記アドレス信号がインクリメントされると、複数回に１回の割合で前記スペアメモリセルアレイの特定部分を選択する、不揮発性半導体記憶装置。
【請求項１５】
前記テスト信号の活性化時には、前記アドレス信号が所定範囲分インクリメントされるときに前記スペアメモリセルアレイ中の特定のメモリトランジスタが選択される割合は、前記ノーマルメモリセルアレイ中の特定のメモリトランジスタが選択される割合と等しい、請求項１４に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は不揮発性半導体記憶装置に関し、特にメモリブロックの一括消去が可能なフラッシュメモリに関する。
【背景技術】
【０００２】
不揮発性半導体記憶装置、特にフラッシュメモリは、電池駆動の携帯型機器に近年さかんに搭載され、より効率がよい書込方法や消去方法が求められている。
【０００３】
その一例として、特開平１１−１９１２９６号公報（特許文献１）には、不揮発性メモリセルのための制御されたホットエレクトロン書込方法に関する技術が開示されている。この書込方法では、セルの書込の最適化が図られている。すなわち特に、プログラムと消去後のソフト書込に対してセルの基板はソース領域に対して負の電圧にバイアスされ、さらにセルの制御ゲート領域は、平衡条件を満足する選択された予め決められた傾斜を有するランプ電圧を受ける。
【特許文献１】特開平１１−１９１２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
携帯端末のより軽快な動作や長時間の動作を実現するために、フラッシュメモリにおける内部動作シーケンス、たとえばプログラム動作や消去動作を一層効率をよくする必要がある。
【０００５】
この発明は、プログラム動作や消去動作を短時間でかつ効率よく行なうことができる不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、要約すると、不揮発性半導体記憶装置であって、不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、複数のメモリセルに印加する電圧を発生する電源回路と、電源回路を制御してメモリブロックの複数のメモリセルに一括して消去パルスを印加させる制御部とを備える。制御部は、消去パルスを繰り返し印加させる際に、消去パルスの電圧が印加最大電圧値に達するまでは、第１の固定パルス幅で消去パルスの電圧を印加回数に応じて増加させ、消去パルスの電圧が印加最大電圧値に到達すると、印加回数に応じて消去パルスのパルス幅を増加させる。
【０００７】
この発明の他の局面に従うと、不揮発性半導体記憶装置であって、不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、複数のメモリセルに印加する電圧を発生する電源回路と、複数のメモリセルの一部を選択するためにアドレス信号をデコードするデコード回路とを備える。デコード回路は、アドレス信号に応じて一部を選択する第１の動作と、アドレス信号に応じて一部に加えて他の領域を多重に選択する第２の動作とを制御信号に応じて切換えて実行する。不揮発性半導体記憶装置は、電源回路およびデコード回路を制御してメモリブロックの消去を行なう制御部をさらに備える。制御部は、メモリブロックが第１の消去状態になった後に、制御信号によってデコード回路に第２の動作を行なわせ、メモリブロックに対して過消去リカバリパルスを印加させる。
【０００８】
この発明のさらに他の局面に従うと、不揮発性半導体記憶装置であって、不揮発にデータを記憶する複数のメモリトランジスタを含むメモリブロックと、複数のメモリトランジスタのコントロールゲートに印加するゲート電圧と、ドレインに印加するドレイン電圧とを発生する電源回路と、ゲート電圧の目標電圧値に相当するカウント値をクロック信号に応じてカウントアップするカウンタと、電源回路を制御する制御部とを備える。制御部は、電源回路に対しドレイン電圧の活性化を指示し、その後カウント値の初期値をカウンタに対してセットし、カウンタのカウントアップ動作のスタートおよびストップを制御する。
【０００９】
この発明のさらに他の局面に従うと、通常書込モードと加速書込モードとを有する不揮発性半導体記憶装置であって、不揮発にデータを記憶する複数のメモリセルを含むメモリブロックと、書込時に最初に書込データがセットされ、一時的にデータを保持する緩衝記憶部と、メモリブロックからの読出データと緩衝記憶部の保持値とを受けてメモリブロックに書込パルスを印加するための情報を出力するベリファイ回路とを備える。ベリファイ回路は、緩衝記憶部の保持値と読出しデータとを比較して緩衝記憶部の保持値を更新し情報を出力する第１の動作と、緩衝記憶部の保持値をそのまま情報として出力する第２の動作とを実行する。不揮発性半導体記憶装置は、ベリファイ回路の制御を行なう制御部をさらに備える。制御部は、通常書込モードでは、ベリファイ回路に第１の動作を実行させることにより初回の書込パルスのための情報を出力させ、加速書込モードでは、ベリファイ回路に第２の動作を実行させることにより初回の書込パルスのための情報を出力させる。
【００１０】
この発明のさらに他の局面に従うと、不揮発性半導体記憶装置であって、不揮発にデータを記憶する複数のメモリトランジスタを含むメモリブロックと、複数のメモリトランジスタに印加する電圧を発生する電源回路と、電圧の目標電圧値に相当するカウント値をクロック信号に応じてカウントアップするカウンタと、電源回路を制御する制御部とを備える。制御部は、メモリブロックの一括消去が指示されると、カウント値の初期値をカウンタに対してセットし、カウンタのカウントアップ動作のスタートおよびストップを制御する。
【００１１】
この発明のさらに他の局面に従うと、不揮発性半導体記憶装置であって、ノーマルメモリセルアレイと、スペアメモリセルアレイと、アドレス信号に応じてノーマルメモリセルアレイの一部を選択するノーマルデコード回路と、アドレス信号を受けて冗長判定を行なう冗長判定回路と、冗長判定回路の出力をテスト信号に応じて強制的に活性化させるゲート回路と、ゲート回路の出力とアドレス信号とに応じてスペアメモリセルアレイの一部を選択するスペアデコード回路とを備える。スペアデコード回路は、テスト信号の活性化時にアドレス信号がインクリメントされると、複数回に１回の割合でスペアメモリセルアレイの特定部分を選択する。
【発明の効果】
【００１２】
本発明によれば、最大電圧にパルス電圧が到達した後にも、しきい値電圧の変化をリニアに近づけることができる。
【００１３】
したがって、ブロック消去時間を短縮することができ、高速に消去可能で、効率よく動作させることができる不揮発性半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下において、本発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００１５】
［実施の形態１］
図１は、本発明の不揮発性半導体記憶装置１の構成を示したブロック図である。
【００１６】
図１を参照して、不揮発性半導体記憶装置１は、外部から与えられるデータ信号ＤＩＮ、アドレス信号ＡＤＲおよびコマンド信号ＣＭＤを受け内部ブロックに分配するコマンドユーザインターフェイス部２と、コマンドユーザインターフェイス部２からの指示に応じて内部クロックＩＣＬＫを発生する内部クロック発生部４と、コマンドユーザインターフェイス部２からコマンド信号ＣＭＤを受け、内部クロック発生部４から内部クロック信号ＩＣＬＫを受けて、不揮発性半導体記憶装置１の全体制御を行なうＣＰＵ（中央演算ユニット）６と、ＣＰＵ６との間でデータをやり取りするリードオンリーメモリ（ＲＯＭ）８とを含む。
【００１７】
不揮発性半導体記憶装置１は、さらに、電源回路１２と、ＣＰＵ６の指示に従って電源回路１２を制御する電源制御回路１０と、電源回路１２において発生される高電圧や、負電圧を電源制御回路１０を経由して与えられるアドレス信号ＡＤＲに応じて分配するデコーダ１４とを含む。
【００１８】
不揮発性半導体記憶装置１は、さらに、ページバッファ１８と、ベリファイ回路１６と、メモリセルアレイ２０とを含む。
【００１９】
ベリファイ回路１６は、消去時には、メモリセルアレイに消去パルスを印加した後に、メモリセルアレイのデータを読出し、消去が完了しているか否かを確認する。また、ベリファイ回路１６は、書込時には、外部から与えられるデータ信号ＤＩＮとメモリセルアレイの保持データの読出結果とを比較して、プログラムパルスを印加する必要があるか否かを判断する。
【００２０】
ページバッファ１８は、緩衝記憶部であり、一時的にデータを保持する。ページバッファ１８には、書込時にベリファイ回路１６を経由して最初に書込データがセットされ、その後続いてベリファイ回路１６によって比較された結果が書込まれる。
【００２１】
メモリセルアレイ２０は、複数のメモリブロックを含む。ＲＯＭ８に記録されたソフトウェアの命令により、ＣＰＵ６が、電源制御回路１０に制御信号を送り電源回路１２を制御する。具体的には、電源制御回路１０は、電源回路１２内にある図示しないチャージャポンプ回路に対して目標電圧値を設定し、チャージャポンプ回路は、その目標電圧値に応じた電圧を発生させる。ここで発生した電圧を、最終的にメモリセルアレイ中のメモリブロックに一括して印加することで、ＦＮ（Fowler-Nordheim）トンネル現象を起こさせる。このような電圧印加を消去パルスの印加ということにする。
【００２２】
図２は、本発明の不揮発性半導体記憶装置１のブロック消去の制御を説明するためのフローチャートである。
【００２３】
図２を参照して、所定の消去コマンドが入力されブロック消去動作が開始されると、まずステップＳ１において変数の読込が行なわれる。
【００２４】
図３は、図２のステップＳ１で読込まれる変数について説明するための図である。
【００２５】
図３を参照して、変数Ｘはパルス印加回数であり、たとえば１３回のように設定される。変数ΔＶ１は、消去パルスの電圧の増分値を示し、たとえば０．１，０．１，０．２…（Ｖ）のような配列が設定される。変数ΔＶ１は、配列ではなくて０.１（Ｖ）固定でもよい。変数ΔＶ２は、消去パルスの電圧の増分値を示し、たとえば０．２，０．３，０．５…（Ｖ）のような配列が設定される。変数ΔＶ２は、配列ではなくて０.２（Ｖ）固定でもよい。
【００２６】
変数Ａはパルス幅を示し、たとえば２（ｍｓ）のような値が設定される。変数Ｂはパルス幅を示し、たとえば３（ｍｓ）のような値が設定される。変数Ｋは、パルス連続印加回数を示し、たとえば２（回）のような値が設定される。変数Δｔはパルス幅の増分値を示し、たとえば１，１，１…（ｍｓ）のような配列が設定される。このように各種パラメータを変数にして読込むようにしておけば、メモリトランジスタの特性が異なる場合等でも変数を変更するだけで対応することが可能となる。
【００２７】
再び図２を参照して、ステップＳ１の変数の読込が終了すると、続いて、ステップＳ２に進む。ステップＳ２では、パルス印加回数やパルス電圧の初期化が行なわれる。そしてステップＳ３に進む。ステップＳ３では、消去ベリファイが行なわれる。消去ベリファイでは、図１のベリファイ回路１６がメモリセルアレイ２０からデータを読出すことにより、消去が完了しているか否かが判断される。そして、ステップＳ３において消去ベリファイがフェイルとなると、ステップＳ４に進み、後に詳しく説明する消去パルスの印加が行なわれる。そしてステップＳ３に再び戻り、消去ベリファイが行なわれる。
【００２８】
ステップＳ３において、消去ベリファイがパスすると、ブロック消去動作が終了する。
【００２９】
図４は、図２における消去パルス印加を行なうステップＳ４の動作を詳細に説明するためのフローチャートである。
【００３０】
図４を参照して、ステップＳ４の消去パルス印加動作がスタートすると、まずステップＳ１１においてパルス印加回数ｎがＸより小さいか否かが判断される。Ｘは、図３の変数の説明の例では、たとえば１３回であった。ステップＳ１１において、パルス印加回数ｎが変数Ｘよりも小さい場合には、ステップＳ１２に進み、パルス幅固定（Ａ）で、パルス電圧Ｖでパルス印加が行なわれる。そしてステップＳ１３に進み、パルス電圧Ｖを１ステップ増加するように設定される。
【００３１】
図５は、消去パルスの印加が繰返される経過を説明するための波形図である。
【００３２】
変数Ｘが１３である場合には、パルス印加回数ｎが１２回までは、パルス幅が固定のＡ（たとえば２ｍｓ）に設定され、かつ１回ごとにパルス電圧が増加される。たとえばこのパルス電圧の増加は、図２に示されるように変数ΔＶ１として保持されている配列によって定められる。また配列でなくても、増分を固定値にしておいてもよい。
【００３３】
再び図４を参照して、ステップＳ１３が終了すると、ステップＳ２０に進み、パルス印加回数ｎが１増加される。そして図２に示されるようにパルス印加が終了すると、再びステップＳ３の消去ベリファイが行なわれる。このようにパルス印加回数がＸを超えるまでは、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ２０の順でパルス印加が繰返される。これは図５において前半パルスとして記載されている部分に相当する。
【００３４】
ステップＳ１１においてパルス印加回数ｎがＸよりも小さくない場合には、ステップＳ１４に進み、パルス電圧Ｖが最大電圧Ｖｍａｘとなっているか否かが判断される。パルス電圧Ｖがまだ最大電圧Ｖｍａｘに到達していない場合には、ステップＳ１５に進み、パルス幅固定（Ｂ）でパルス電圧Ｖでパルス印加がなされ、ステップＳ１６に進み、パルス電圧Ｖが１ステップ増加される。ステップＳ１６が終了すると、ステップＳ２０に進みパルス印加回数ｎのインクリメントがなされる。
【００３５】
ステップＳ１５、Ｓ１６を通過する処理経路は、図５における後半パルスの印加に相当する。後半パルスの印加では、たとえば図３に示されるように、パルス幅を示す変数Ｂが３ｍｓに設定されるときには、３ｍｓのパルス幅でパルス電圧が最大電圧に到達するまでパルスが印加されていく。
【００３６】
再び図４を参照して、ステップＳ１４において、パルス電圧Ｖが最大電圧Ｖｍａｘに到達した場合には、ステップＳ１７に進む。ステップＳ１７では、現在のパルス幅でＫ回印加したか否かが判断される。図５の波形はＫが２である場合の例である。まだＫ回印加していない場合には、ステップＳ１８に進み現在のパルス幅でもう一度パルス電圧Ｖｍａｘを印加する。ステップＳ１８が終了すると、ステップＳ２０に進みパルス印加回数ｎがインクリメントされる。
【００３７】
一方ステップＳ１７において、現在のパルス幅でＫ回印加したと判断された場合には、ステップＳ１９に進み、パルス幅を１ステップ分増加させる。そしてパルス電圧Ｖｍａｘを印加する。ステップＳ１９が終了すると、ステップＳ２０に進みパルス印加回数ｎがインクリメントされる。
【００３８】
図５に示すように、ステップＳ１８、Ｓ１９を通過する経路は、最大電圧到達後まずパルス幅３ｍｓで２回パルスが印加され、次に最大電圧においてパルス幅４ｍｓで２回パルスが印加され、また、続いて最大電圧において、パルス幅５ｍｓで２回パルスが印加されるパルス印加動作に相当する。このように、最大電圧Ｖｍａｘを超えるまではパルス印加電圧を増加させない。これは、図１における電源回路から、デコーダを介してメモリセルアレイ２０に電圧を印加する経路の、トランジスタの耐圧を超えないようにするためである。
【００３９】
図６は、パルス幅一定のままパルス印加を行なった場合の、メモリセルのしきい値電圧の変化を示す図である。
【００４０】
図７は、図５に示すような波形を印加した場合のしきい値電圧の変化を示す図である。
【００４１】
図６、図７を参照して、パルス幅を固定にして印加をし続ける場合には、図６に示すように、最大電圧に印加パルスの電圧値が到達した後には、しきい値電圧の変化はパルス印加回数に対してリニアではなくなってしまう。一方、図５に示すように、最大電圧到達後は、１回当たりのパルス幅を徐々に長くしていくようにすれば、最大電圧にパルス電圧が到達した後にも、しきい値電圧の変化を図６の場合よりもリニアに近づけることができる。したがって、ブロック消去時間を短縮することができ、高速に消去可能で、効率よく動作可能な不揮発性半導体記憶装置を提供することができる。
【００４２】
［実施の形態２］
図８は、過消去状態を解消するオーバーイレースリカバリ（ＯＥＲ）動作を説明するための図である。
【００４３】
図８を参照して、プログラム状態にありしきい値が高くなっているメモリブロック中のメモリセルに一括して消去パルスを印加すると、しきい値電圧が小さくなる方にメモリセルのしきい値電圧の分布が移動する。メモリブロック中のすべてのメモリセルが、しきい値電圧Ｖｔｈ以下にそのしきい値が変化するまで消去パルスを一括して印加すると、消去時のしきい値電圧の下限であるしきい値電圧Ｖｔｈ１よりも、しきい値電圧が小さくなってしまうメモリセルが存在してしまう。このようなメモリセルを過消去ビットと呼ぶと、この過消去ビットをメモリセルのビットごとに、チャネルホットエレクトロン（ＣＨＥ）を発生させて、しきい値電圧Ｖｔｈ１よりもしきい値電圧が大きくなるように、所定のしきい値電圧の分布内に戻すための動作がある。この動作をオーバーイレースリカバリ（以下ＯＥＲ）と呼ぶ。
【００４４】
図９は、ＯＥＲ時の電圧印加状態を説明するための図である。
【００４５】
図９を参照して、メモリセルトランジスタのソース電位Ｖｓは０Ｖに設定される。基板電位Ｖｓｕｂは負電位、たとえば−１．２Ｖに設定される。ドレイン電位は正電位、たとえば＋４．８Ｖに設定される。
【００４６】
この状態で制御電極（コントロールゲートとも称する）の電位Ｖｃｇをたとえば２Ｖ程度に設定すると、しきい値電圧が小さいメモリセルトランジスタについては、多くのドレイン電流Ｉｄが流れ、一方しきい値電圧が比較的高いトランジスタにおいては、ドレイン電流Ｉｄはほとんど流れない。複数のメモリセルトランジスタに対してこのような電圧印加を同時に行なうと、しきい値電圧が低いメモリセルトランジスタに対して選択的にしきい値電圧の変化が生ずることになる。このようにドレイン電流を流して、チャネルホットエレクトロンを発生させしきい値電圧を上昇させることは、ビットごとに精度よく制御ができるという利点がある。しかし、ドレイン電流が大きいため、ブロック一括にこのようなチャネルホットエレクトロンによる書込を施すことはできない。
【００４７】
一方、消去パルスを印加する場合には、ＦＮトンネル電流を基板から浮遊ゲート（フローティングゲートとも称する）に向けて流し、しきい値電圧を変化させる。このＦＮトンネル電流の電流値はさほど大きくないため、メモリブロックに対して一括して消去や書込を行なうことができるが、さほど精度よく書込むことはできない。精度よく書込を行なうためにブロックよりも小さな単位で電流を印加しようとすると、印加単位ごとにメモリセルを形成するウェルを分離する必要があるので、メモリセルアレイのレイアウト面積が大きくなってしまい現実的ではない。
【００４８】
図１０は、実施の形態２のＯＥＲ動作においてパルスの印加を説明するための図である。
【００４９】
図１０を参照して、通常、ＯＥＲ動作では、パルスをビットごとに印加してその都度ベリファイ動作を行ない、しきい値電圧が所定の電圧よりも高くなったか否かを確認して、さらにパルスを印加するか否かを決めていた。しかし、先に説明したように、制御電極の電位Ｖｃｇを超えてまでしきい値電圧がシフトすることはない。これはドレイン電流がしきい値電圧の上昇により流れなくなってしまうので、チャネルホットエレクトロンが発生しなくなるからである。したがって、時間の短縮のために、パルスの印加ごとのベリファイ動作は行なわない。
【００５０】
図１０に示すように、ターゲット時間に達するまでパルスを印加し続け、そしてターゲット時間に達するとパルスの印加を停止させるのがよい。１回目のパルス印加により、Ｐ１に示されるようにしきい値電圧は上昇する。２回目のパルス印加時Ｐ２においては、パルス印加時Ｐ１ほどはしきい値電圧の変化はない。そしてターゲット時間に相当する回数印加時のＰｍａｘにおいては、しきい値電圧の変化はほとんど起こらなくなる。
【００５１】
そして、さらに実施の形態２においては、消去時間の短縮のため、ＯＥＲ動作においては、複数のビットに対して同時にパルスを印加する。ドレイン電流をブロック一括で流すことは、電流供給能力の都合上困難であるが、数ビット程度であればドレイン電流を流すことが可能だからである。
【００５２】
図１１は、実施の形態２における複数ビット選択の構成を説明するためのブロック図である。
【００５３】
図１１を参照して、ＣＰＵ６は、複数ビットを選択するための制御信号ＭＭ１〜ＭＭ３をデコーダ１４に対して出力する。デコーダ１４はアドレス信号Ａ０〜Ａ２２と制御信号ＭＭ１〜ＭＭ３とを受けて、ワード線ＷＬ、セレクトゲート線ＳＧおよびメインビット線ＭＢＬを選択し、メモリセルアレイ２０の中でＯＥＲを行なうメモリセルを指定する。
【００５４】
図１２は、メモリセルアレイ２０中のメモリブロックを概略的に示した回路図である。
【００５５】
図１２を参照して、メインビット線ＭＢＬ、１本当たりの構成について説明する。
【００５６】
メモリセルアレイ２０は、選択用のトランジスタ２２，２４，２６，２８を含む。選択用のトランジスタ２２，２４，２６，２８は、セレクトゲート線ＳＧ０〜ＳＧ３に応じてそれぞれビット線ＢＬ０〜ＢＬ３を選択する。
【００５７】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ０に各々のドレインが接続され、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３に、それぞれのゲートが接続されるメモリトランジスタ３０，３１，３２，３３を含む。メモリトランジスタは、コントロールゲートと基板との間にフローティングゲートを挟んだ２層ゲートＭＯＳトランジスタである。
【００５８】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ０に各々のドレインが接続され、ワード線ＷＬ２５２，ＷＬ２５３，ＷＬ２５４，ＷＬ２５５に、それぞれのゲートが接続されるメモリトランジスタ３６，３７，３８，３９を含む。
【００５９】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ１に各々のドレインが接続され、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３に、それぞれのゲートが接続されるメモリトランジスタ４０，４１，４２，４３を含む。
【００６０】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ１に各々のドレインが接続され、ワード線ＷＬ２５２，ＷＬ２５３，ＷＬ２５４，ＷＬ２５５に、それぞれのゲートが接続されるメモリトランジスタ４６，４７，４８，４９を含む。
【００６１】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ２に各々のドレインが接続され、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３に、それぞれのゲートが接続されるメモリトランジスタ５０，５１，５２，５３を含む。
【００６２】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ２に各々のドレインが接続され、ワード線ＷＬ２５２，ＷＬ２５３，ＷＬ２５４，ＷＬ２５５に、それぞれのゲートが接続されるメモリトランジスタ５６，５７，５８，５９を含む。
【００６３】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ３に各々のドレインが接続され、ワード線ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３に、それぞれのゲートが接続されるメモリトランジスタ６０，６１，６２，６３を含む。
【００６４】
メモリセルアレイ２０は、さらに、ソース線ＳＬに各々のソースが接続され、ビット線ＢＬ３に各々のドレインが接続され、ワード線ＷＬ２５２，ＷＬ２５３，ＷＬ２５４，ＷＬ２５５に、それぞれのゲートが接続されるメモリトランジスタ６６，６７，６８，６９を含む。
【００６５】
図１３は、図１１におけるデコーダ１４の構成を示した回路図である。
【００６６】
図１３を参照して、デコーダ１４は、アドレス信号Ａ５，Ａ７に応じてセレクトゲート線ＳＧ０〜ＳＧ３を活性化するビット線デコード回路８２と、アドレス信号Ａ６，Ａ８に応じてワード線ＷＬ０〜ＷＬ３を選択するワード線デコード回路８４とを含む。
【００６７】
ビット線デコード回路８２は、図示しないプリデコード回路でプリデコードされた信号を制御信号ＭＭ１でマスクして、セレクトゲート線ＳＧ０〜ＳＧ３を一括して活性化することができるゲート回路８６を含む。
【００６８】
ゲート回路８６は、プリデコード信号／Ａ５・／Ａ７と制御信号ＭＭ１とを受けて、セレクトゲート線ＳＧ０を活性化するＯＲ回路９０と、プリデコード信号Ａ５・／Ａ７と制御信号ＭＭ１とを受けて、セレクトゲート線ＳＧ１を活性化するＯＲ回路９１と、プリデコード信号／Ａ５・Ａ７と制御信号ＭＭ１とを受けて、セレクトゲート線ＳＧ２を活性化するＯＲ回路９２と、プリデコード信号Ａ５・Ａ７と制御信号ＭＭ１とを受けて、セレクトゲート線ＳＧ３を活性化するＯＲ回路９３とを含む。
【００６９】
ワード線デコード回路８４は、グローバルワード線ＧＷＬ０が選択されたときに、選択信号ＳＬ０〜ＳＬ３に応じてワード線ＷＬ０〜ＷＬ３をそれぞれ選択するワード線ドライバ９８と、アドレス信号Ａ６，Ａ８および制御信号ＭＭ２，ＭＭ３に応じて選択信号ＳＬ０〜ＳＬ３を出力するゲート回路９６とを含む。
【００７０】
ゲート回路９６は、アドレス信号／Ａ６と制御信号ＭＭ２とを受けるＯＲ回路１００と、アドレス信号Ａ６と制御信号ＭＭ２とを受けるＯＲ回路１０１と、アドレス信号／Ａ６と制御信号ＭＭ２とを受けるＯＲ回路１０２と、アドレス信号Ａ６と制御信号ＭＭ２とを受けるＯＲ回路１０３とを含む。
【００７１】
ゲート回路９６は、さらに、アドレス信号／Ａ８と制御信号ＭＭ３とを受けるＯＲ回路１１０と、アドレス信号／Ａ８と制御信号ＭＭ３とを受けるＯＲ回路１１１と、アドレス信号Ａ８と制御信号ＭＭ３とを受けるＯＲ回路１１２と、アドレス信号Ａ８と制御信号ＭＭ３とを受けるＯＲ回路１１３とを含む。
【００７２】
ゲート回路９６は、さらに、ＯＲ回路１００の出力と１１０の出力とを受けて選択信号ＳＬ０を出力するＡＮＤ回路１２０と、ＯＲ回路１０１の出力と１１１の出力とを受けて選択信号ＳＬ１を出力するＡＮＤ回路１２１と、ＯＲ回路１０２の出力と１１２の出力とを受けて選択信号ＳＬ２を出力するＡＮＤ回路１２２と、ＯＲ回路１０３の出力と１１３の出力とを受けて選択信号ＳＬ３を出力するＡＮＤ回路１２３とを含む。
【００７３】
図１２、図１３からわかるように、制御信号ＭＭ１が活性化されるとセレクトゲート線ＳＧ０〜ＳＧ３が一括して活性化されることにより、４本のビット線が同時に選択され、これに書込データが伝達される。
【００７４】
また、制御信号ＭＭ２がＨレベルで、かつ、制御信号ＭＭ３がＬレベルの場合には、アドレス信号Ａ６にかかわらずアドレス信号Ａ８がＨレベルの場合にはワード線ＷＬ２，ＷＬ３が同時に選択される。また、アドレス信号／Ａ８がＨレベルの場合にはワード線ＷＬ０，ＷＬ１が同時に選択される。
【００７５】
制御信号ＭＭ２，ＭＭ３がともにＨレベルに選択されると、選択信号ＳＬ０〜ＳＬ３はＨレベルにすべて活性化され、グローバルワード線ＧＷＬ０が選択されたときには、ワード線ＷＬ０〜ＷＬ３が一括して選択される。このように、制御信号ＭＭ１〜ＭＭ３を制御することにより、ＯＥＲ時に選択するメモリセルの数を変えることができる。メモリセルの電流特性と電源回路からの電源電流供給能力とのバランスにより、一度に選択できるセルの数が変わる。これに対応するため、マルチ選択するメモリトランジスタの数をＣＰＵからの命令により自由に変更可能にしている。
【００７６】
また、選択数の設定は、制御信号ＭＭ１〜ＭＭ３を変化させることにより、出力が１６ビットの場合つまりデータ出力端子が１６の場合には次のように変化させることができる。
【００７７】
まず、制御信号ＭＭ１〜ＭＭ３がすべてＬレベルの場合には、１ワード、すなわち１つの出力端子当たり１つのメモリトランジスタに対してＯＥＲ動作が行なわれる。これは通常のＯＥＲと同じであり、時間はかかるが、電源回路の電流供給能力に余裕があるので、確実にしきい値電圧をシフトさせることができる。
【００７８】
次に、制御信号ＭＭ１をＨレベルに設定し、制御信号ＭＭ２，ＭＭ３はＬレベルに設定した場合には、４ワードマルチ選択が可能となる。この場合には、ＯＥＲ動作におけるアドレスインクリメントとして、アドレス信号ビットＡ＜１４：８＞，Ａ＜６＞，Ａ＜４：０＞を順次インクリメントする必要がある。
【００７９】
制御信号ＭＭ１，ＭＭ２をＨレベルに設定し、制御信号ＭＭ３をＬレベルに設定した場合には、８ワードのマルチ選択が可能となる。この場合には、アドレスのインクリメントはアドレス信号ビットＡ＜１４：８＞，Ａ＜４：０＞を順次インクリメントする。
【００８０】
制御信号ＭＭ１〜ＭＭ３をすべてＨレベルに設定すると、１６ワードのマルチ選択が可能となる。この場合には、アドレス信号ビットＡ＜１４：９＞，Ａ＜４：０＞を順次インクリメントする。これらすべてのアドレスインクリメント方法は、ＲＯＭ８に格納されているソフトウェアのコードがＣＰＵ６に読込まれることによって制御される。
【００８１】
図１４は、実施の形態２のブロック消去の制御を説明するためのフローチャートである。
【００８２】
図１４を参照して、ブロック消去が開始されると、まずステップＳ３０において消去ベリファイが行なわれる。消去ベリファイがフェイルの場合は、図８のしきい値電圧Ｖｔｈ２よりもしきい値電圧が小さくなるまで、ステップＳ３１において消去パルスの印加がメモリブロック全体に対して一括して行なわれる。この場合の消去パルスの印加は、ＦＮトンネル電流によるしきい値電圧の変化を引起す。
【００８３】
ステップＳ３０において消去ベリファイがパスすると、ステップＳ３２に進み初期設定動作が行なわれる。この初期設定動作では、ＯＥＲパルスの印加回数の最大数ＭＡＸの設定や、制御信号ＭＭ１〜ＭＭ３の設定などが行なわれる。
【００８４】
そして、ステップＳ３３に進みＯＥＲパルスの印加回数ｎがターゲット時間に対応する回数ＭＡＸに一致するか否かが判断される。まだ回数がＭＡＸに至っていない場合にはステップＳ３４に進み、図１０におけるＰ１に示すように、オーバーイレースリカバリ書込パルスの印加がなされてしきい値電圧が上昇する。そして、ステップＳ３５に進みＯＥＲパルス印加回数ｎインクリメントがなされ、ステップＳ３３に戻る。
【００８５】
このようにステップＳ３３〜ステップＳ３５が、図１０のターゲット時間に相当するまで繰返される。印加回数がＭＡＸに達し、過消去となったビットのしきい値電圧がしきい値電圧の下限値付近に変化したと想定されると、ステップＳ３６に進み過消去ベリファイが行なわれる。メモリセルトランジスタの特性にばらつきがあるため、過消去ベリファイがフェイルする場合もあり、このときにはもう一度ステップＳ３２に戻り、所定回数のＯＥＲ書込パルスの印加がなされる。
【００８６】
一方、ステップＳ３６で過消去ベリファイがパスすると、ステップＳ３７に進みＯＥＲ処理を行なったビットのアドレスが最終であるか否かが判断される。まだアドレスが最終でない場合にはステップＳ３８に進み、アドレスのインクリメントがなされる。このとき、制御信号ＭＭ１〜ＭＭ３の設定によってインクリメントするビットが異なる。アドレスのインクリメントがなされると、ステップＳ３２に進み再びＯＥＲパルスの印加がなされる。
【００８７】
ステップＳ３７においてアドレスが最終であった場合には、ステップＳ３９に進み消去ベリファイが行なわれる。消去ベリファイがパスすると終了し、フェイルするとフェイルエンドとなる。
【００８８】
なお、ステップＳ３０とステップＳ３２の間に、過消去ビットのしきい値電圧をブロック一括で少し大きくするソフトフラッシュプログラム動作を行なってもよい。
【００８９】
通常のＯＥＲ動作では、まずすべてのアドレスに対して過消去となっているか否かベリファイを行なって、必要なビットにのみＯＥＲパルスを印加する。したがって、すべてのアドレスに対してベリファイを行なうので、この分時間を多く要してしまう。さらに、ベリファイでフェイルしたビットに対してＯＥＲパルスをかけるので、フェイルビットの数が増加するにつれ１ビットずつのパルス印加時間が増加し、ブロック消去全体として時間が長くなってしまい、最悪なケースでは消去タイムオーバーでチップがフェイルになる場合もある。
【００９０】
それに対して実施の形態２で説明したＯＥＲ動作では、複数ビットを選択して過消去リカバリパルスを印加できる。これにより、図１４のステップＳ３０の消去ベリファイがパスした後には過消去ベリファイなしで、すべてのメモリセルを対象として一度に複数個ずつ選択してＯＥＲパルスを印加することで、ブロック消去時間を短縮することができる。
【００９１】
さらに、一度に選択できるメモリセルの数を、制御信号ＭＭ１〜ＭＭ３で変更することができ、かつ、ターゲット時間も初期設定で変数ＭＡＸを変えることで変更することができるので、特性が異なるフラッシュメモリに対しても、変数を変更することのみで対応することができる。
【００９２】
とくに、制御信号ＭＭ１＝Ｈとし、ＳＧ０〜ＳＧ３を全部選択した場合を基本とすると、それ以上選択数を増やす場合には、メインビット線を複数選択してメモリカラムをさらに多重に選択する方法と、ワード線を複数選択してメモリロウを多重に選択する方法とが考えられる。しかし、メインビット線を複数選択する方法では、メモリセルに流す電流の和が大きくなりすぎるという問題がある。したがって、さらに選択数を増やす場合はメモリカラムを追加で選択するのではなく、制御信号ＭＭ２，ＭＭ３によってワード線を多重に選択している。
【００９３】
つまり、追加のマルチ選択をビット線側で行なわずワード線側で行なっているのは、セレクトゲート２２〜２８のサイズによってもともと電流が絞られているためセレクトゲート２２〜２８での電圧降下を考えると、ビット線をさらにマルチ選択するよりもワード線をマルチ選択することで全体の電流を減らしたほうが得策となるからである。
【００９４】
［実施の形態３］
実施の形態３は、チャネルホットエレクトロン書込方法によってフローティングゲートへ電子を蓄積し、メモリトランジスタのしきい値を制御することにより情報を記憶する不揮発性半導体記憶装置において、電圧の印加方法の変更により制御の安定化を図るものである。
【００９５】
不揮発性半導体記憶装置におけるしきい値電圧制御動作の１つに、チャネルホットエレクトロン注入方法がある。
【００９６】
図１５は、チャネルホットエレクトロンの注入について説明するための図である。
【００９７】
図１５を参照して、メモリトランジスタのソースを０Ｖに設定し、ドレインに電圧Ｖｄを印加し、制御電極に電位Ｖｃｇを印加すると、ドレインからソースに向けてドレイン電流が流れる。そしてその際の電子の一部がフローティングゲートに注入される。これがチャネルホットエレクトロン注入である。この場合、フローティングゲート側へ移動させるための電子を、チャネル領域のドレイン側近傍に十分に生成させるように、ドレインとソースとの間に十分な電位差を与える必要がある。
【００９８】
図１６は、メモリトランジスタの縮小に伴い、セレクトトランジスタも縮小されることを説明するための図である。
【００９９】
図１６を参照して、微細化によるメモリトランジスタサイズの縮小に伴い、メモリトランジスタのドレインに電圧を供給する側のトランジスタ、すなわちセレクトトランジスタのサイズも縮小される。セレクトトランジスタのサイズが縮小されると、メモリトランジスタのドレインへの電圧供給能力が低下する。すなわち電流が流れると、抵抗値が大きいため電圧降下が大きくなってしまう。したがって、メモリトランジスタの縮小を行なう前の状態で行なっていた制御方法と同様な方法で、ソースドレイン間に電流を流すと、メモリトランジスタのドレイン電圧が降下してしまうという不具合が生じる。
【０１００】
図１７は、メモリトランジスタとセレクトトランジスタの断面を示した模式図である。
【０１０１】
図１７を参照して、サイズ縮小により、セレクトトランジスタの抵抗が増大すると、セレクトトランジスタの抵抗値による電圧降下も大きくなる。セレクトトランジスタに与えるドレイン電圧ＳＴｒＶｄに対して、メモリトランジスタに印加されるドレイン電圧ＭＴｒＶｄが低下してしまい、メモリトランジスタにドレイン電流が流れなくなってしまう。この場合、チャネルホットエレクトロン注入を行なうのに十分な電子を生成できず、しきい値電圧の制御が困難となる。
【０１０２】
言い換えると、セレクトトランジスタの構造が変わると、特にチャネル幅が狭まるとオン抵抗が増大し、電圧供給能力が低下してしまう。この場合にはドレイン電流Ｉｄが一定レベルを超えると、十分な電圧ＭＴｒＶｄを供給できなくなる。
【０１０３】
しきい値電圧の制御時間を長くし、メモリトランジスタのソース・ドレイン間に流れる電流を抑え、少しずつしきい値を変動させる手段もある。しかし、この制御時間については製品の仕様によってある所定の時間以内に定められているので、むやみに延ばすことはできない。したがってドレイン電圧の低下が起こらないように、メモリトランジスタのソース・ドレイン間に流れるドレイン電流を抑えながら、これまでの製品と同じ制御時間内で制御動作が完了するように、制御方法を変更する必要がある。
【０１０４】
図１８は、実施の形態３において不揮発性半導体記憶装置のコントロールゲート電位Ｖｃｇを制御する構成を説明するためのブロック図である。
【０１０５】
図１８を参照して、コマンドユーザインターフェイス部２は、制御電極に与える電位Ｖｃｇを設定するための設定値ＣＮＵＭＢＥＲを発生するカウンタ１４０を含む。ＣＰＵ６は、カウンタ１４０に対してリセット信号ＲＥＳＥＴ、イネーブル信号Ｃ−ＥＮＡＢＬＥおよび初期値をロードするロード信号ＬＯＡＤおよびロードするための初期値を示す信号ＤＳＥＴを送出する。電源制御回路１０は、カウンタ１４０からカウント値ＣＮＵＭＢＥＲを受け、カウント値ＣＮＵＭＢＥＲとＣＰＵ６からの制御信号ＣＳＩＧとに基づき電源回路１２に対して制御を行なう。
【０１０６】
電源回路１２は、コントロールゲート用の電位Ｖｃｇを発生する電源回路１４２と、ソース電圧Ｖｓ、ドレイン電圧Ｖｄおよび基板電圧Ｖｓｕｂを出力する電源回路１４４とを含む。電源回路１４２は、ディテクタ１４６とチャージポンプ１４８とを含む。ディテクタ１４６は、内部回路１５０によって電源制御回路１０から送られてくる数値ＶＮＵＭＢＥＲをデジタル値からアナログ電圧に変換し、比較回路１５２によってチャージポンプ１４８が出力する電位Ｖｃｇと比較し、チャージポンプを制御するイネーブル信号ＥＮＡＢＬＥを発生する。
【０１０７】
電源回路１４４は、電源制御回路１０から指示されるタイミングに基づき電位Ｖｄ，ＶｓおよびＶｓｕｂの活性化／非活性化の制御を行なう。
【０１０８】
図１９は、書込パルスを印加の検討例を説明するためのフローチャートである。
【０１０９】
図２０は、図１９に示したフローチャートに従って電圧を印加した場合の波形を示した動作波形図である。
【０１１０】
図１９、図２０を参照して、書込パルスがスタートすると、まずステップＳ４１においてＶｃｇ用カウンタ１４０がリセットされカウント値ＣＮＵＭＢＥＲは０にリセットされる。そしてステップＳ４２において電位Ｖｓｕｂ，ＶｄおよびＶｓの電圧印加が開始される。その結果、図２０の時刻０μｓ〜１μｓ付近では、選択トランジスタのドレイン電圧ＳＴｒＶｄおよびメモリトランジスタのドレイン電圧ＭＴｒＶｄは、ともに４．８Ｖとなっている。
【０１１１】
続いてステップＳ４３に進みＶｃｇ用カウンタのカウントが開始される。ＣＰＵ６がイネーブル信号Ｃ−ＥＮＡＢＬＥをＬレベルからＨレベルに活性化することにより、カウンタ１４０が図示しないクロック信号に基づきカウント値ＣＮＵＭＢＥＲを順次インクリメントする。そしてステップＳ４４に進みカウンタ１４０のカウント値が目標値であるか否かが判断され目標値になっていなければステップＳ４５に進みカウント値の増加がさらに続けられる。そしてステップＳ４４においてカウント値が目標値に到達した場合にはステップＳ４６に進みＶｃｇ用カウンタ１４０はカウントを停止する。これにより図２０において時刻１μｓ付近から３μｓの手前付近に示されるように電位Ｖｃｇは次第に増加してそして９Ｖ付近になると上昇を停止する。
【０１１２】
そして図２０の時刻４．７５μｓ付近において、ステップＳ４７における電圧印加停止がＣＰＵから指示される。この検討例においては、図２０のドレイン電流Ｉｄのピーク電流値は１０９μＡであった。ドレイン電流Ｉｄがピークのときに、セレクトトランジスタのドレインの電位ＳＴｒＶｄから電圧降下したメモリトランジスタのドレインの電位ＭＴｒＶｄの値が最も低くなってしまう。
【０１１３】
図２１は、実施の形態３の不揮発性半導体記憶装置において用いられる書込パルスの制御フローを示したフローチャートである。
【０１１４】
図２２は、図２１に示したフローチャートを用いた場合の動作を説明するための動作波形図である。
【０１１５】
図２１、図２２を参照して、まず書込パルスの印加動作がスタートすると、ステップＳ５１においてＶｃｇ用カウンタ１４０がリセットされ、続いてステップＳ５２において電位Ｖｓｕｂ，ＶｄおよびＶｓの印加が開始される。これにより図２２の時刻０μｓから１μｓの間は電位Ｖｃｇは０Ｖであり、電位ＳＴｒＶｄおよびＭＴｒＶｄはともに４．８Ｖに設定される。
【０１１６】
続いて、ステップＳ５３においてＶｃｇ用カウンタ１４０に初期値がセットされる。すると時刻１μｓにおいてコントロールゲート電位Ｖｃｇは引上げられ、これによりドレイン電流Ｉｄは所定の最大電流Ｉｄｍａｘを超えない程度まで流れる。なお、コントロールゲート電位Ｖｃｇが同じであっても、定性的には低温であるほどまたメモリトランジスタの初期のしきい値電圧が低いほど制御動作開始時のドレイン電流Ｉｄの値は大きくなる。図２２で説明した場合には、これらの特性を踏まえ、図２０の場合には０Ｖだった制御動作開始時のコントロール制御電位Ｖｃｇの初期値を４．５Ｖとした。
【０１１７】
ステップＳ５３において初期値がセットされた後には、ステップＳ５４に進み、Ｖｃｇ用カウンタのカウントが開始される。カウント開始は、ＣＰＵ６によりイネーブル信号Ｃ−ＥＮＡＢＬＥが活性化されることにより行なわれる。その際に、ＣＰＵ６は、カウンタの１クロック当りの増分値を示す制御信号ＤＶを変更し、図２０で示した場合より電位Ｖｃｇの傾きが変更される。
【０１１８】
図２０の場合では、メモリトランジスタのしきい値電圧の挙動に対して、印加している電位Ｖｃｇの傾きが急峻である。この場合には、まだしきい値電圧が低い状態であるのにもかかわらず高い電位Ｖｃｇがコントロールゲートに印加されるので、ドレイン電流Ｉｄがより多く流れてしまう。これに対し図２２で示した場合には、電位Ｖｃｇの変化の傾きを、メモリトランジスタのしきい値電圧の挙動に合せるように緩めている。しきい値電圧の挙動（傾き）に電位Ｖｃｇの傾きを近づけておくことで、急激なドレイン電流Ｉｄの増加を抑制しつつ、制御動作開始時、制御動作中盤、制御動作終盤でほぼ同等にチャネルホットエレクトロンをフローティングゲートに注入することができる。
【０１１９】
カウンタのカウントが開始された後には、ステップＳ５５でカウンタのカウント値が目標値になっているか否かが判断され、目標値になっていない場合にはステップＳ５６においてカウント値が増加される。そしてステップＳ５５においてカウント値が目標値に到達した時には、ステップＳ５７に進みカウンタのカウントが停止される。そしてステップＳ５８においてＶｃｇ，Ｖｓｕｂ，ＶｄおよびＶｓの各電位の印加が停止される。
【０１２０】
同じしきい値電圧制御方法（ここではホットエレクトロン注入）の下でも、その制御対象であるメモリトランジスタが複数になれば、ばらつきの範囲でしきい値電圧の変化に差が生ずる。同じ電圧を同じ時間印加した後であっても、複数のメモリトランジスタがあれば、その数に相当して各要素にばらつきが生ずる。この要素は、たとえばフローティングゲート内への電子の蓄積、フローティングゲート電位、メモリトランジスタのしきい値などである。
【０１２１】
たとえば、フローティングゲート内への電子の蓄積が比較的少ないメモリトランジスタ（しきい値電圧が低い）に対して、他のメモリトランジスタと同様の電位Ｖｃｇを印加すると、ドレイン電流が必要以上に流れてしまう。したがって、チャネルホットエレクトロンを発生する効率が下がり、他のメモリトランジスタと比べるとしきい値は効率よく上昇しない。
【０１２２】
図２３は、図２０に示した波形を与えた場合のしきい値電圧の変化のばらつきを説明するための図である。
【０１２３】
図２４は、図２２に示した波形を与えた場合のしきい値電圧の変化のばらつきを説明するための図である。
【０１２４】
図２３、図２４では、各々５００Ｋ個のメモリトランジスタのしきい値電圧の変化が示されている。
【０１２５】
図２３の場合と図２４の場合とでは、各メモリトランジスタ間の同じ制御時間（図の横軸）におけるしきい値電圧の差（図の縦軸）に違いが見られる。電位Ｖｃｇの上昇を緩やかにすれば、フローティングゲート内への電子の蓄積が十分でない時点でＶｃｇの絶対値が必要以上に高すぎることはなくなり、ドレイン電流が流れすぎる現象を比較的抑えられる。
【０１２６】
図２３の場合では、標準的な変化を示すメモリトランジスタのしきい値電圧が６Ｖに達したときに（時刻６．４μｓ付近）、最も変化の遅いメモリトランジスタのしきい値は約４Ｖであった。両者の差が約２Ｖであった。
【０１２７】
これに対し、図２４に示した場合には、コントロールゲート電位Ｖｃｇの変化を緩やかにしたおかげで、この差を約１．５Ｖまで狭めることができている（時刻７．８μｓ付近）。
【０１２８】
つまり、図２３で示された数値約２．０Ｖに対して、図２４で示された数値は約１．５Ｖになっており、ばらつきが抑えられるという効果がある。
【０１２９】
このように、実施の形態３では、ランプ波形を印加できるので、書込の効率を上げることができる。つまり、コントロールゲート電位Ｖｃｇの傾きを緩やかにすることにより、しきい値電圧の変化のばらつきを抑える効果が得られ、より安定したしきい値電圧制御動作ができる。
【０１３０】
さらに、実施の形態３では、まず基板およびドレインおよびソースに電圧を設定してその後に後からコントロールゲートに電圧を印加する。これにより、チャネル領域のドレイン側に予め電子を生成しておくことができ効率よくホットエレクトロン注入が行なえるという効果がある。
【０１３１】
以上説明したように、実施の形態３においては、複数のメモリトランジスタ間に起こるしきい値変化のばらつきを抑えることにより、安定した書込時間の製品スペックを達成するのに有効である。また、多重レベルのプログラミングにおいてしきい値の分布幅を狭帯化させることは必須であり、これを達成するために用いても効果がある。
【０１３２】
［実施の形態４］
実施の形態４では、ロックビットをプログラムする方法について説明する。
【０１３３】
図２５は、ロックビット説明をするための図である。
【０１３４】
ロックビットは、メモリアレイ内に存在し、各メモリブロックに対して内部オペレーションを行なってもよいかどうかを判定するためのビットである。図２５においては、ノーマル領域にはワード線ＷＬ０〜ＷＬｎとビット線ＢＬ０，ＢＬ１，…の各交点にノーマルのメモリトランジスタが配置されている。ノーマル領域では、１つのメモリトランジスタで１ビットの情報を記憶する。これに対してロックビットは、ノーマル領域に隣接するスペア領域のロックビット線ＬＢＬとワード線ＷＬ１，ＷＬ０の交点２つに配置されるメモリトランジスタを用いて、１ビットが保持される。このようにロックビットは２つのメモリトランジスタを用いて１ビットを記憶しているので、そのプログラムは２つのメモリトランジスタに対して同時にプログラムを行なう必要がある。
【０１３５】
図２６は、ロックビットを保持する２つのメモリトランジスタの断面図である。
【０１３６】
図２６を参照して、ロックビット線ＬＢＬとワード線ＷＬ０，ＷＬ１の２つの交点に２つのメモリトランジスタが存在し、ロックビットを保持する。ロックビットをプログラムするには、たとえば、ソースを０Ｖに設定し、基板を−１．２Ｖに設定し、ロックビット線ＬＢＬの電位を４．８Ｖに設定し、ワード線ＷＬ０およびＷＬ１の電位を３〜９Ｖに設定する。これにより、２つのメモリトランジスタに同時にチャネルホットエレクトロンが発生ししきい値電圧が変化する。
【０１３７】
しかしながら、２セル同時にプログラムすると、ノーマル領域に配置される通常のメモリトランジスタのプログラムをする場合に比べてロックビット線からソースに流れるドレイン電流が２倍流れることになる。したがって、実施の形態３で図２２で説明したような台形波プログラムでは、ドレイン電流が流れすぎ電源回路に内蔵されたチャージポンプの能力が不足して安定した動作が行なえないおそれがある。
【０１３８】
したがって、実施の形態４では、ロックビットのプログラムコマンドが入力された場合には、ＣＰＵ６がロックビットであることを判定し、台形波の電位上昇スピードを半分にする。
【０１３９】
図２７は、実施の形態４におけるロックビットをプログラムする動作を説明するためのフローチャートである。
【０１４０】
図２７を参照して、コマンドが入力され書込動作がスタートすると、まずステップＳ６１において指定されたビットがロックビットか否かが判断される。
【０１４１】
ステップＳ６１において指定されたビットが通常のビットである場合には、まずステップＳ６２において書込ベリファイが実行される。そしてステップＳ６３に進み書込パルスの印加回数が１回目であるかそれ以降であるかが判断される。１回目であった場合にはステップＳ６４に進み実施の形態３で説明したような台形波１が印加される。
【０１４２】
一方ステップＳ６３において印加回数が２回目移行であった場合には、ステップＳ６５において電圧Ｖの方形波が印加される。ステップＳ６４またはステップＳ６５が終了すると、図１８のカウンタ１４０がインクリメントされることにより電圧の設定値が増加しそしてステップＳ６７において印加回数ｎがインクリメントされる。
【０１４３】
図２８は、図２７においてステップＳ６３〜Ｓ６７が繰返し印加される様子を説明する動作波形図である。
【０１４４】
図２８に示すように、１回目のパルスは実施の形態３で説明したような台形波パルスが印加され、２回目、３回目、４回目、５回目と方形波パルスが電圧値が増加しつつ繰返し印加される。
【０１４５】
再び図２７を参照して、ステップＳ６１においてロックビットであると判断された場合には、ステップＳ６８に進み、まず書込ベリファイが実行される。そして書込ベリファイがフェイルである場合にはステップＳ６９に進み台形波２が印加される。
【０１４６】
図２９は、ステップＳ６９で台形波２が印加される様子を説明するための波形図である。
【０１４７】
図２９では、ＣＰＵ６がロックビットであることを判定すると、図１８におけるカウンタ１４０に対して１クロック当りのカウント増加値を示す増分値ＤＶを変化させることにより、台形波の電圧上昇スピードを図２８に示したノーマル印加パルスに比べて半分にしている。すなわち、図２８において傾きＧ１に対して図２９の傾きＧ２は半分の値となる。そして１パルス当りの印加時間はＴ１からＴ２に増加される。このようにステップＳ６８において書込ベリファイパスとなるまで繰返し同じ台形波が印加される。
【０１４８】
これは、１回目の台形波でロックビットのしきい値電圧がプログラム領域まで行かなかった場合に２回目以降の印加をノーマルの場合と同様に方形波で行なうとしきい値電圧がシフトしないことが想定されるからである。なぜなら、ドレイン電流が多く流れすぎることにより十分な電圧がメモリトランジスタのドレインに印加されなくなってしまうからである。
【０１４９】
このために、実施の形態４では、２回目以降のロックビットパルスにも同じ台形波を使用することで、しきい値電圧のシフトを確実に起こさせるようにしている。実施の形態４では、ロックビットか否かによって書込パルスの印加方法を変更することで複数のメモリトランジスタを使用するロックビットに対して効率よく書込を行なうことができる。
【０１５０】
［実施の形態５］
実施の形態５では、ＡＣＣ（アクセラレート）モードプログラムについて説明する。ＡＣＣモードとは、不揮発性半導体記憶装置のメモリセルアレイのデータが消去完了されているという前提で高速に書込むモードである。ＡＣＣモードは、たとえば、不揮発性半導体記憶装置を購入したメーカーが、大量のデバイスに書込装置で量産用のプログラムを次々と書込む際などに用いられる。
【０１５１】
図３０は、ＡＣＣモードに関連する構成を説明するためのブロック図である。
【０１５２】
図３０を参照して、メモリセルアレイ２０にデータを書込む際には、まず書込データＳＤ［１５：０］がベリファイ回路１６をそのままスルーしてページバッファ１８に書込まれる。
【０１５３】
その後、ページバッファ１８の出力ＰＤ［１５：０］とメモリセルアレイ２０からの読出されたデータＲＤ［１５：０］とがベリファイ回路１６において比較される。ベリファイ回路１６は、ベリファイがパスするとＣＰＵ６に対して書込完了を示す信号ＣＤ＿ＡＬＬを出力する。ベリファイ回路１６はベリファイがフェイルであれば、書込パルスを印加する必要のあるビットには“０”を、書込パルスを印加する必要の無いビットに対しては“１”を設定し信号ＣＤ［１５：０］を出力する。この結果に応じてメモリセルアレイ２０には書込パルスが印加される。この値は同時にページバッファ１８に保持され次回のベリファイ回路１６での比較の期待値ＰＤ［１５：０］となる。
【０１５４】
このように通常の書込動作では、最初にベリファイ動作を行なっているため書込時間が長い。しかし、メモリセルアレイ２０のデータが消去された状態であることがわかっていれば初回のベリファイ動作は省略することができる。ただし、この場合には、外部から入力されそのままページバッファに保持されている書込データを、直接メモリセルアレイに伝える必要がある。このためには初回に、ベリファイ回路１６が出力する信号ＣＤ［１５：０］に信号ＰＤ［１５：０］を反映させる必要がある。
【０１５５】
このため、ベリファイ回路１６は、ＣＰＵ６から出力される各種の制御信号ＶＣＳ１，ＶＣＳ２，ＥＮ１，ＥＮ２，ＲＥＳＥＴ，ＳＡＣＣに応じて動作モードごとに異なる動作を行なう。
【０１５６】
図３１は、図３０のベリファイ回路１６のプログラムに関する構成を示す回路図である。
【０１５７】
図３１を参照して、ベリファイ回路１６は、ページバッファからのデータＰＤ［１５：０］をイネーブル信号ＥＮ１に応じて取込み、出力がリセット信号ＲＥＳＥＴに応じて“０”にリセットされるラッチ回路１６２と、メモリセルアレイから読出されたデータＲＤ［１５：０］を、ＡＣＣモード時に活性化される信号ＳＡＣＣによって“１”に固定するためのＯＲ回路１６４と、ＯＲ回路１６４の出力をイネーブル信号ＥＮ２に応じて取込み、リセット信号ＲＥＳＥＴに応じて出力が“０”にリセットされるラッチ回路１６６とを含む。
【０１５８】
ベリファイ回路１６は、さらに、信号ＶＣＳ１，ＶＣＳ２に応じてラッチ回路１６２の出力およびラッチ回路１６６の出力を処理するゲート回路１６８を含む。
【０１５９】
ゲート回路１６８は、ラッチ回路１６６の出力と制御信号ＶＣＳ１とを受けるＮＡＮＤ回路１７０と、ラッチ回路１６２の出力、制御信号ＶＣＳ２およびＶＣＳ１を受けるＮＡＮＤ回路１７２と、ラッチ回路１６６の出力と制御信号ＶＣＳ１とを受けるＯＲ回路１７４と、ラッチ回路１６２の出力と制御信号ＶＣＳ１，ＶＣＳ２とを受けるゲート１７６とを含む。ゲート１７６は、ラッチ回路１６２の出力および制御信号ＶＣＳ２がＨレベルでかつ、制御信号ＶＣＳ１がＬレベルの場合にのみＬレベルを出力し、他の場合にはＨレベルを出力する。
【０１６０】
ベリファイ回路１６は、さらに、ＮＡＮＤ回路１７０の出力とＮＡＮＤ回路１７２の出力とＯＲ回路１７４の出力とゲート１７６の出力とを受けてデータＷＤ［１５：０］を出力する４入力のＮＡＮＤ回路１７８と、データＷＤ［１５：０］と外部から書込コマンドとともに入力される書込データＳＤ［１５：０］のいずれか一方を、コマンドユーザインターフェイス部２からの制御信号ＳＥＴＵＰに応じて選択し信号ＣＤ［１５：０］を出力するセレクタ１７９と、セレクタ１７９が出力する１６ビットの信号ＣＤ［１５：０］のすべての論理積を演算して信号ＣＤ＿ＡＬＬを出力するＡＮＤ回路１８０とを含む。
【０１６１】
コマンドユーザインターフェイス部２は、書込コマンドが入力されると、一旦、制御信号ＳＥＴＵＰを活性化し、書込データＳＤ［１５：０］をＣＤ［１５：０］として出力させ、これをページバッファ１８に保持させる。その後、コマンドユーザインターフェイス部２は、制御信号ＳＥＴＵＰを非活性化し、以後ページバッファ１８には比較結果を反映したデータＷＤ［１５：０］がＣＤ［１５：０］として書込まれる。
【０１６２】
ベリファイ回路１６は、ＯＥＶ、ＰＶ、ＶＬＣ、ＥＶ、Ｆｌａｓｈ ｔｏ ＰＢなどの各モードで兼用して用いられる回路である。このため、制御信号ＶＣＳ１，ＶＣＳ２で動作の切り替えを行なっている。
【０１６３】
ＯＥＶ（Over Erase Verify）モードは、過消去ベリファイを行なうモードである。ＰＶ（Program Verify）モードは、書込ベリファイを行なうモードである。ＶＬＣ（Vth Lower Check）モードは、過消去ビット書込後の下裾ベリファイを行なうモードである。ＥＶ（Erase Verify）モードは、消去ベリファイを行なうモードである。Ｆｌａｓｈ ｔｏ ＰＢモードは、メモリセルの内容をベリファイ経路を利用してページバッファに書込むため、ベリファイ回路１６に比較無しで動作を行なわせるモードである。
【０１６４】
制御信号ＶＣＳ１，ＶＣＳ２を変更することにより、各モードに対応する動作が行なわれる。ＯＥＶモードでは信号ＶＣＳ１，ＶＣＳ２はともにＬレベルに設定される。ＰＶモードおよびＶＬＣモードでは、信号ＶＣＳ１はＬレベルに設定され、信号ＶＣＳ２はＨレベルに設定される。ＥＶモードおよびＦｌａｓｈ ｔｏ ＰＢモードでは、信号ＶＣＳ１はＨレベルに設定され、信号ＶＣＳ２はＬレベルに設定される。
【０１６５】
実施の形態５で説明するＡＣＣモード時には、ＰＶモードでの制御となる。この場合には、ＮＡＮＤ回路１７０，１７２の出力はともにＨレベルに固定され、ＯＲ回路１７４およびゲート１７６の組合せ論理によってベリファイの判定がなされる。
【０１６６】
先に説明したように、ＡＣＣモードでは初回のベリファイを行なわないようにして時間を短縮する。このためにＯＲ回路１６４が設けられている。通常のプログラムでは、ラッチ回路１６２は、初回ベリファイ時に外部から入れた期待値、すなわちプログラムすべき書込値を出力し、この出力がゲート１７６を経由してＮＡＮＤ回路１７８に伝達される。一方で、メモリセルから読出されたデータＲＤ［１５：０］がラッチ回路１６６の出力を経由してＯＲ回路１７４を経由してＮＡＮＤ回路１７８に伝達される。
【０１６７】
ＡＣＣモードで初回にベリファイ動作を行なわない場合には、メモリセルアレイからメモリセルのデータＲＤ［１５：０］が入力されないので、ラッチ回路１６６はリセットされた状態にあり“０”を保持している。このためＯＲ回路１７４が出力する１６ビットはすべて“０”となるので、ＮＡＮＤ回路１７８が出力する信号ＷＤ［１５：０］の１６ビットはすべて“１”となり、ＣＤ［１５：０］のビットもすべて“１”となる。
【０１６８】
信号ＣＤ［１５：０］のビットが“０”である場合にはメモリセルに書込パルスが印加される。一方、このビットが“１”であればプログラムが完了していると見なされこれ以上パルスは印加されなくなる。このため、ＡＣＣモード時には、信号ＳＡＣＣをＨレベルに活性化する。これによりＯＲ回路１７４の出力をＨレベルとすることで、初回のベリファイをしなくてもラッチ回路１６２の出力に応じたパルス印加が必ずできるようにしている。
【０１６９】
図３２は、実施の形態５の書込動作を説明するためのフローチャートである。
【０１７０】
図３０、図３２を参照して、書込動作が開始されると、まずステップＳ７１においてＣＰＵ６が動作モードがＡＣＣモードか否かを判断する。ＡＣＣモードでない場合には、ステップＳ７２に進みノーマル書込が実行される。
【０１７１】
一方、モードがＡＣＣモードである場合には、ステップＳ７３でＡＣＣ書込が実行される。
【０１７２】
図３３は、図３２におけるノーマル書込を実行するステップＳ７２をより詳細に説明したフローチャートである。
【０１７３】
図３０、図３３を参照して、ノーマル書込がスタートすると、まずステップＳ８１においてＣＰＵ６はベリファイ回路１６に対して信号ＳＡＣＣをＬレベルに設定する。そしてステップＳ８２において、書込ベリファイが行なわれる。書込ベリファイがパスである場合にはステップＳ９０に進む。一方、書込ベリファイがフェイルである場合には初回パルス印加動作が行なわれる。
【０１７４】
初回パルス印加動作は、ステップＳ８３、Ｓ８４で行なわれる。
【０１７５】
図３４は、初回パルス印加の波形を説明するための波形図である。
【０１７６】
図３３、図３４を参照して、まずステップＳ８３においてパルス電圧が所定値となるまで電圧が上昇していく。電圧が目標値に到達すると、続いてステップＳ８４においてサスペンド／アボート判定が行なわれる。サスペンドとは、たとえば１５μｓ以内に外部から割込処理の要求があった場合には書込動作を停止することをいう。またアボート処理とは、たとえば書込時間が所定値よりも長くなってしまった場合に強制的に書込を終了させるような処理をいう。
【０１７７】
ステップＳ８３，Ｓ８４で初回パルスの印加が終了すると、次にステップＳ８６に進み書込ベリファイが行なわれる。書込ベリファイがフェイルであれば２回目のパルス印加が行なわれる。
【０１７８】
２回目以降のパルス印加としては、まずステップＳ８７でプログラム電圧の印加がスタートされ、そしてそれに続きステップＳ８８においてサスペンド／アボート判定が行なわれる。ステップＳ８８においてサスペンドまたはアボート判定がなされた場合には、ステップＳ８９に進みサスペンド／アボート処理がなされる。一方、ステップＳ８８でサスペンド／アボート判定されなかった場合には、再びステップＳ８６に進み書込ベリファイが行なわれる。
【０１７９】
ステップＳ８６で書込ベリファイがパスした場合には続いてステップＳ９０に進む。
【０１８０】
ステップＳ９０では書込アドレスの下位４ビットのインクリメントが行なわれ、続いてステップＳ９１においてサスペンド／アボート判定が行なわれる。ステップＳ９１でサスペンドまたはアボートであると判定された場合には、ステップＳ９２に進みサスペンド／アボート処理が行なわれる。一方、ステップＳ９１でサスペンドおよびアボートと判定されなかった場合にはステップＳ９３に進み、４ビットのアドレスをインクリメントした結果、桁上げすなわちキャリーが生じたか否かが判断される。キャリーが“１”である場合にはステップＳ９４に進み、アドレスの上位４ビットがインクリメントされる。一方、ステップＳ９３でキャリーが“１”でなかった場合には、次のアドレスに対する書込を行なうために再びステップＳ８１に戻る。
【０１８１】
ステップＳ９４でアドレス上位４ビットのインクリメントがされた後にはステップＳ９５に進み、インクリメントした結果キャリーが発生した否かが判断される。キャリーが発生した場合、すなわちキャリーが“１”であれば書込終了となる。キャリーが発生しなかった場合には次のアドレスに対して書込を行なうために再びステップＳ８１に戻る。
【０１８２】
図３５は、図３２におけるステップＳ７３のＡＣＣ書込の詳細な動作を説明するためのフローチャートである。
【０１８３】
図３０、図３５を参照して、ＡＣＣ書込においては、初回の書込ベリファイが行なわれずに初回のパルス印加がなされる点と、サスペンド処理の判定が行なわれない点が図３３に示したノーマル書込の場合と大きく異なっている。
【０１８４】
ノーマル書込においては、外部からの割込要求に備えて、内部動作中であっても動作を一時中断させるためのポイントがプログラム上に用意されている。割込要求があった場合に確実に処理するために、外部からの割込要求を受け付ける間隔の規格値、たとえば１５μｓに対してマージンを持たせ、１０μｓ程度毎にＲＯＭに格納されているソフトウェアへ割込み処理ルーチンを埋込んである。
【０１８５】
図３３の処理の場合は、割込処理ルーチンを実行し毎回サスペンドがかかっていないか調べるために、その分時間が長くなってしまっている。量産時の書込のように通常は割込が発生しないような、消去済のフラッシュメモリに書込を行なうような場合には、このサスペンドポイントを削除した図３５に示すＡＣＣモードの処理フローでプログラム時間の高速化を図っている。
【０１８６】
しかしここで、サスペンド要求判定ルーチンと一緒に埋込まれているアボート判定ルーチンも同時に削除してしまうと問題が生ずる。
【０１８７】
仮に、メモリセルトランジスタの特性が悪く、プログラム動作が規格時間内に終了しない場合には、タイムオーバーで処理をアボートさせる必要がある。図３３で説明したノーマル書込の場合には、これらの判定ポイントがサスペンドと同じルーチンで行なわれている。したがって図３３のフローチャートにおいてサスペンド／アボート判定を単に削除してしまうとタイムオーバー時のアボート処理をすることができなくなってしまう。以下、図３５のフローチャートについて順番に説明していく。
【０１８８】
ＡＣＣ書込が開始されると、ステップＳ１０１においてＣＰＵは制御信号ＳＡＣＣをＨレベルに設定する。書込コマンドがコマンドユーザインターフェイス部２に入力されることにより、制御信号ＳＥＴＵＰが活性化され、ページバッファ１８に書込データが転送される。この書込データはその後制御信号ＳＥＴＵＰが非活性化されると、ベリファイ回路１６をそのままスルーしてＣＤ［１５：０］としてメモリセルアレイに伝達される。そして初回のパルス印加がベリファイ動作なしで行なわれる。初回のパルス印加時には、ステップＳ１０２においてアボート判定が行なわれ、ステップＳ１０４において電圧判定が行なわれる。
【０１８９】
図３６は、ＡＣＣ書込時の初回パルスを説明するための波形図である。
【０１９０】
図３６を参照して、ＡＣＣ書込時には、実施の形態３で説明したような台形波パルスが印加される。最初にカウンタを所定値にセットすることにより初期電圧が印加され、そしてその後カウンタが目標値になっているか否かを判定する電圧判定が行なわれる。その際に、初期の段階では、カウント値を観測しなくても目標値には達していないことが明らかであるので、そのパルス印加の前半においてアボート判定を行なっている。
【０１９１】
具体的には、アボートルーチンはせいぜい１０コードぐらいのため、電圧はその間に２Ｖ程度しか上がらない。したがって、３Ｖから電圧印加を開始した場合であれば、アボートルーチンを処理している間に５Ｖ程度までしか上がらない。このため、ＣＰＵ６がわざわざカウント値を参照して電圧判定を行なわなくても、設定到達電圧の目標値（９Ｖ程度）を超えてしまうことはあり得ない。また、第１回目のパルスの場合に台形波の後に方形波を印加するような図３４の波形をＡＣＣモードの初回パルスに用いてもよいが、その際はランプ波に続く方形波印加部分でアボート判定を行なう。
【０１９２】
再び図３５を参照して、ステップＳ１０２においてタイムオーバー等によるアボートであると判定されると、ステップＳ１０３に進みアボート処理がなされる。
【０１９３】
ステップＳ１０２においてアボートであると判定されない場合には、ステップＳ１０４に進み電圧判定が行なわれ、電圧は目標値に到達するまで上昇する。ステップＳ１０４において電圧が目標値に到達すると、ステップＳ１０５に進む。
【０１９４】
ステップＳ１０５では、ＣＰＵ６は、信号ＳＡＣＣをＬレベルに非活性化する。これによりベリファイ回路１６は通常のベリファイを行なうように設定される。そしてステップＳ１０６において書込ベリファイがなされる。書込ベリファイがフェイルである場合には、２回目以降のパルス印加がステップＳ１０７，Ｓ１０８において行なわれる。ステップＳ１０７ではプログラム電圧の印加がスタートされ、続いてステップＳ１０８においてアボート判定がなされる。
【０１９５】
ステップＳ１０８でアボートであると判定された場合には、ステップＳ１０９に進みアボート処理がなされる。一方、ステップＳ１０８においてアボートであると判定されない場合には再びステップＳ１０５に戻る。
【０１９６】
ステップＳ１０６において書込ベリファイがパスすると次のアドレスに対する書込を行なう。
【０１９７】
ページプログラムの場合では、１２８ワードのプログラムを行なう。このため必ずアドレスインクリメントルーチンが必要となる。本明細書におけるフラッシュメモリのＣＰＵ６は４ビットマイコンであるので、一度の命令で処理できるのは４ビット幅つまり４ビットカウンタで最高１６回である。つまりＣＰＵのソフトウェアでアドレスのインクリメントを行なうためには、下位４ビットがいっぱいになれば別のルーチンを使用しもう３ビットのカウンタ演算をしてやる必要がある。
【０１９８】
ステップＳ１０６がパスすると、まず、ステップＳ１１０に進み書込アドレスの下位４ビットのインクリメントがなされる。
【０１９９】
そしてインクリメントによってキャリーが発生したか否かがステップＳ１１１において判断される。キャリーが発生した場合にはステップＳ１１２に進みアドレスの上位４ビットのインクリメントがなされる。一方、キャリーが発生しなかった場合には、ステップＳ１０１に戻り次のアドレスに対する書込処理がなされる。
【０２００】
ステップＳ１１２でアドレス上位４ビットのインクリメントがなされた場合には続いてＳ１１３においてアボート判定がなされる。
【０２０１】
上位３ビットの演算は１２８回中７回だけしか行なわれず、その演算ルーチンに１０コードのアボート判定ルーチンを入れたとしても、１０×７０ｎｓ＝７００ｎｓが合計値となる。これを１２８回で割ると１ワード当り５．５ｎｓの時間にしかならないのでこれは無視できる範囲である。
【０２０２】
ステップＳ１１３でアボートであると判定された場合にはステップＳ１１４に進みアボート処理がなされる。
【０２０３】
一方、ステップＳ１１３においてアボートであると判定されない場合には、ステップＳ１１５に進みステップＳ１１２のインクリメントによってキャリーが発生したか否かが判断される。キャリーが発生しない場合にはステップＳ１０１に戻りインクリメント後のアドレスに対する書込処理が行なわれる。一方ステップＳ１１５においてキャリーが発生したと判断された場合には書込処理は終了する。
【０２０４】
実施の形態５では、ＡＣＣモードを設け、初回パルス印加前には書込ベリファイを行なわない。そして、アドレスインクリメント処理時に上位３ビットのインクリメント処理の直後にアボート判定ルーチンを入れている。これにより時間の増加を防ぎ、かつアボートが可能な書込制御シーケンスが実現されている。すなわち、時間短縮が達成された加速書込モードを備えるのでユーザが使いやすい不揮発性半導体記憶装置が実現できる。
【０２０５】
［実施の形態６］
実施の形態６では、ブロック消去時の電源回路中のチャージポンプの制御方法について説明する。
【０２０６】
図３７は、チャージポンプのセットアップ時間について説明するための図である。
【０２０７】
図３７を参照して、ＣＰＵがカウンタを０から増加させて電圧目標値を０からカウントアップさせると、セットアップ時間が長くなる。これに対して、チャージポンプの能力に余裕がある場合は、このセットアップ時間を短縮することができる。
【０２０８】
図３８は、ブロック消去時のチャージポンプの制御方法を検討するための検討例を説明するためのブロック図である。
【０２０９】
図３８を参照して、この検討例では、コマンドユーザインターフェイス部２Ａ中のカウンタ２１０は、消去ではなくてプログラムに合わせた仕様になっている。つまりカウンタ２１０は、ＣＰＵ６Ａからリセット信号が送られると出力値ＣＮＵＭＢＥＲが“０”にリセットされ、ＣＰＵ６Ａが出力する制御信号Ｃ−ＥＮＡＢＬＥが活性化されるとカウントを開始し、非活性化されるとカウントを停止する。これは、プログラム時には、三角波を作り出す目的でカウンタが設計されているからである。三角波とは、ランプ波とも呼ばれ、０Ｖから設定値まで設定電圧を時間ステップで上げていく波形である。
【０２１０】
電源制御回路１０Ａは、ＣＰＵ６Ａから送られる動作モードとチューニングヒューズ回路１９２に設定されているチューニング信号に応じてカウンタ２１０の出力が所定値となったときにＣＰＵ６Ａに対して停止信号Ｃ−ＳＴＯＰを出力する。デコード回路１９６，１９８，…，２００には、各種条件に対応する電圧値を検出するデコード回路である。そして選択信号発生回路１９４は、動作モードとチューニング信号に基づいてデコード回路１９６〜２００の出力のいずれか１つをＡＮＤ回路２０２〜２０６およびＯＲ回路２０８によって選択する。
【０２１１】
しかし、ブロック消去で消去パルスを印加する場合には、三角波は特に必要はなく、一定の電圧のパルス印加が必要である。図３８に示した構成では、設定目標電圧に達するまで電圧制御回路１０Ａがカウント値を判定し、電圧制御回路が出力する信号Ｃ−ＳＴＯＰに応じてＣＰＵ６Ａがイネーブル信号Ｃ−ＥＮＡＢＬＥを制御しカウンタ２１０を動作させる必要があった。
【０２１２】
たとえば８Ｖの電圧が必要で、０．１Ｖ／７０ｎｓのステップで０から８ＶまでＶｃｇを上昇させる場合には、８０回×７０ｎｓ＝５．６μｓのセットアップ時間が必要になる。これを電圧のセットごとに行なうとかなりの時間を要してしまう。また、電圧の到達をＣＰＵ６Ａに教える必要があるため、消去動作時の電圧設定ごとの到達電圧判定用の制御信号を生成するデコード回路１９６，１９８，…，２００が必要となり、大きな面積を要していた。
【０２１３】
図３９は、図３８に示した検討例のブロック消去動作を説明するためのフローチャートである。
【０２１４】
図３９を参照して、ブロック消去が開始されると、まずステップＳ１２１で消去ベリファイが行なわれる。ステップＳ１２１で消去ベリファイがパスされば、そのままブロック消去動作は完了となる。
【０２１５】
ステップＳ１２１で消去ベリファイがフェイルである場合にはステップＳ１２２に進みＣＰＵはカウンタをリセットした後に“０”からカウントをスタートさせる。そしてステップＳ１２３においてカウント値が目標値か否かが判断される。そしてカウンタが目標値でない場合には、ステップＳ１２４においてカウント値の増加がなされ再びステップＳ１２３でカウント値が目標値か否かが判断される。
【０２１６】
ステップＳ１２３においてカウント値が目標値であると判断された場合には、電源制御回路１０Ａからカウンタストップ信号がＣＰＵ６Ａに送られてくるのでカウンタ２１０はカウント動作を停止する（ステップＳ１２５）。そしてステップＳ１２６において所定時間のパルス印加が行なわれ、そしてステップＳ１２７で消去ベリファイが行なわれる。
【０２１７】
ステップＳ１２７で消去ベリファイがフェイルであった場合にはステップＳ１２８でカウント値が増加され、すなわちＣＰＵ６Ａからイネーブル信号によってカウンタ２１０が動作を開始し、電源制御回路１０Ａから送られてくるストップ信号Ｃ−ＳＴＯＰに応じてＣＰＵ６Ａはカウンタ２１０をストップさせる。そして所定時間のパルス印加がステップＳ１２９で行なわれる。パルス印加がステップＳ１２９で行なわれた後には再び消去ベリファイがステップＳ１２７で行なわれる。
【０２１８】
そしてステップＳ１２７の消去ベリファイがパスであればブロック消去が完了となる。  
【０２１９】
図４０は、実施の形態６のブロック消去時におけるチャージポンプの制御に関する構成を説明するためのブロック図である。
【０２２０】
図４０を参照して、コマンドユーザインターフェイス部２に含まれるカウンタ２１２は、ＣＰＵ６から送られる信号ＬＯＡＤによって初期値ＤＳＥＴをセットすることができる。またカウンタ２１２は、ＣＰＵ６が出力するリセット信号ＲＥＳＥＴに応じてカウント値が“０”にリセットされ、信号Ｃ−ＥＮＡＢＬＥが活性化されているときにカウントアップを行ない非活性化されているときはカウントアップは行なわない。さらに、カウンタ２１２は信号ＤＶに応じてカウントアップを行なう１ステップのカウント値の増加分を変化させることができる。
【０２２１】
図４１は、図４０におけるカウンタ２１２の構成を示したブロック図である。
【０２２２】
図４１を参照して、カウンタ２１２は、６ビット分の保持回路２２１〜２２６と、加算器２２８とを含む。
【０２２３】
保持回路２２１は、リセット信号ＲＥＳＥＴに応じてリセットされクロック信号Ｐ２に応じて入力値を取込むラッチ回路２３２と、ラッチ回路２３２の出力と初期設定値ＤＳＥＴとをロード信号ＬＯＡＤに応じて切換えて出力するセレクタ２３４と、セレクタ２３４の出力をクロック信号Ｐ１に応じて取込むラッチ回路２３６とを含む。ラッチ回路２３６はリセット信号ＲＥＳＥＴに応じてリセットされる。
【０２２４】
保持回路２２１は、さらに、ラッチ回路２３６の出力と加算器２２８の６ビットの出力のうち対応するビットを信号Ｃ−ＥＮＡＢＬＥに応じて切換えるセレクタ２３８を含む。セレクタ２３８の出力はラッチ回路２３２の入力に与えられる。
【０２２５】
加算器２２８は、保持回路２２１〜２２６の６ビットの出力に対し増分値ＤＶを加算して再び保持回路２２１〜２２６に対して出力する。増分値は、たとえば＋１である場合にはカウンタ２１２は１クロック当りカウント値を１ずつ増加させる。また増分値が＋２である場合にはカウンタ２１２は１クロック当りカウント値を２ずつ増加させる。これによりランプ波形の傾きを変えることができる。
【０２２６】
図４２は、実施の形態６のブロック消去動作を説明するためのフローチャートである。
【０２２７】
図４２を参照して、ブロック消去がコマンドにより指示されると、まずステップＳ１３１において消去ベリファイが行なわれる。消去ベリファイがパスであればそのままブロック消去は終了である。
【０２２８】
一方、消去ベリファイがフェイルであればステップＳ１３２においてＣＰＵ６はカウンタ２１２に対して目標電圧値をセットする。これによりチャージポンプの電流供給能力に応じたスピードで電圧が上昇し、ステップＳ１３３において短縮されたセットアップ時間でパルス印加を行なうことができる。
【０２２９】
そしてステップＳ１３４において消去ベリファイが行なわれ、消去ベリファイがフェイルする場合にはステップＳ１３５においてカウント値増加により電圧が上昇し、ステップＳ１３６においてパルス印加が行なわれ、ステップＳ１３４において再び消去ベリファイが行なわれる。ステップＳ１３４において消去ベリファイがパスであればブロック消去が完了する。
【０２３０】
以上説明したように、実施の形態６では、電圧値をカウントアップするカウンタに初期値をセットすることができるように変更したので、電源回路中のチャージポンプの能力に応じた速度ですばやく電圧を印加することができる。たとえば、印加電圧として８Ｖが必要な場合には、従来５．６μｓであったセットアップ時間が１．５μｓに短縮される。また、図３８の場合では複数のデコード回路１９６〜２００が必要であったが、図４０の場合には、カウンタに初期値を直接セットできるので回路規模も小さくできてレイアウト面積の削減が可能となる。
【０２３１】
［実施の形態７］
実施の形態７ではフラッシュメモリにおけるスペアメモリセルに対する書込動作について説明する。
【０２３２】
従来は、ノーマルメモリセルアレイにおいて不良が発見されるとスペアメモリセルアレイに対しては動作書込のチェックをしない段階で置換を行ない、この置換動作を行なったスペアメモリセルに対して書込および読出動作のチェックをしていた。しかしながら、製品歩留まりを一層向上させるには、スペアメモリセルアレイ部分を動作チェックしてからすなわち不良でないことを確認してから置換を行なったほうがよい。
【０２３３】
しかしながら、フラッシュメモリは特に書込動作に時間がかかるので、従来ノーマルメモリセルアレイの書込および読出を行なってさらにスペアメモリセルアレイに対しても同様な処理を別途行なうのでは書込時間が長くなってしまう。このため書込をノーマルメモリセルアレイとスペアメモリセルアレイに対して同時に行なうマルチ書込を行なって書込時間を短縮する。
【０２３４】
図４３は、スペアメモリセルアレイに対する書込動作を説明するためのブロック図である。
【０２３５】
図４３を参照して、入力されたアドレスＡＤＤＲＥＳＳはノーマルデコーダ２６０と冗長判定回路２５２とに与えられる。アドレスがノーマルメモリセルアレイ中の不良メモリセルに相当する場合には、冗長判定回路２５２は信号ＨＩＴを活性化する。これに応じてスペアデコーダ２６２はスペアメモリセルアレイ２６６の一部を選択する。
【０２３６】
一方スペアメモリセルアレイ２６６の書込チェックを事前に行なっておくためにはＴＥＳＴ回路２５４においてテスト信号ＴＥＳＴを活性化させ、スペアデコーダ２６２に対してテスト動作を行なわせる。テスト動作時にはスペアデコーダ２６２はアドレス信号ＡＤＤＲＥＳＳに応じてスペアメモリセルアレイ２６６を選択する。スペアデコーダ２６２がテスト動作時にアドレス信号ＡＤＤＲＥＳＳに応じてスペアメモリセルアレイの一部を選択するようにしたのは、選択率の問題を解決するためである。
【０２３７】
選択率の問題とは、後に説明するようにノーマルデコーダはアドレスに応じて３２分の１の選択率でノーマルメモリセルアレイの一部を選択する。一方、テスト動作時にヒット信号のみを強制的に活性化させスペアデコーダが１対１の選択を行なうのでは、スペアメモリセルアレイに対して書込パルスがノーマルセルアレイの３２倍の頻度で印加されてしまう。このため、スペアメモリセルアレイが劣化しやすいという問題がある。
【０２３８】
また、電源回路２５８は高電圧ＶＰＹをノーマルデコーダ２６０とスペアデコーダ２６２とに供給するが、信号ＨＩＴを強制的に活性化させたときにスペアメモリセルアレイをすべて選択してしまうのでは、電源回路２５８の電流供給能力が不足してしまうという問題が生ずる。たとえば通常動作でノーマルメモリセル１６ビットを同時書込する場合に対して、テスト動作時にさらに８ビットのスペアも同時に書込むのでは、電源回路２５８のチャージポンプの能力は１．５倍必要となってしまう。しかし１６ビットを同時に書込む場合にスペアメモリセルアレイを余分に１ビット書込むのであればそれほどチャージポンプの能力を大きくする必要はない。
【０２３９】
図４４は、図４３におけるノーマルデコーダ２６０，ノーマルメモリセルアレイ２６４およびスペアデコーダ２６２、スペアメモリセルアレイ２６６の構成を説明するための回路図である。
【０２４０】
図４４を参照して、ノーマルデコーダ２６０は、書込データＤ［０］に応じて出力信号ＢＤＯ［０］を高電圧ＶＰＹに駆動するバッファ回路２７２と、書込データＤ［１］に応じて出力信号ＢＤＯ［１］を高電圧ＶＰＹに駆動するバッファ回路２７４と，書込データＤ［２］に応じて出力信号ＢＤＯ［２］を高電圧ＶＰＹに駆動するバッファ回路２７６と，書込データＤ［１５］に応じて出力信号ＢＤＯ［１５］を高電圧ＶＰＹに駆動するバッファ回路２７８とを含む。
【０２４１】
ノーマルデコーダ２６０は、さらに、アドレス信号Ａ０〜Ａ４に応じて３２本のメインビット線のうち１本を選択して信号ＢＤＯ［０］を伝達するセレクタ２８２と、アドレス信号Ａ０〜Ａ４に応じて３２本のメインビット線のうち１本を選択して信号ＢＤＯ［１］を伝達するセレクタ２８４と、アドレス信号Ａ０〜Ａ４に応じて３２本のメインビット線のうち１本を選択して信号ＢＤＯ［２］を伝達するセレクタ２８６と、アドレス信号Ａ０〜Ａ４に応じて３２本のメインビット線のうち１本を選択して信号ＢＤＯ［１５］を伝達するセレクタ２８８とを含む。
【０２４２】
ノーマルメモリセルアレイ２６４には、各セレクタ２８２，２８４，２８６，２８８に対応してメインビット線ＭＢＬ［３１：０］が設けられ、行列状にメモリセルトランジスタが配置される。
【０２４３】
ＯＲ回路２５６は、信号ＨＩＴ［０］と信号ＴＥＳＴとを受けるＯＲ回路２９２と、信号ＨＩＴ［１］と信号ＴＥＳＴとを受けるＯＲ回路２９４と、信号ＨＩＴ［２］と信号ＴＥＳＴとを受けるＯＲ回路２９６と、信号ＨＩＴ［７］と信号ＴＥＳＴとを受けるＯＲ回路２９８とを含む。
【０２４４】
スペアデコーダ２６２は、信号ＤＳＰ［０］とＯＲ回路２９２の出力とプリデコード信号／Ａ４・／Ａ３・／Ａ２・／Ａ１・／Ａ０とを受けるＡＮＤ回路３０２と、信号ＤＳＰ［１］とＯＲ回路２９４の出力とプリデコード信号／Ａ４・／Ａ３・／Ａ２・／Ａ１・Ａ０とを受けるＡＮＤ回路３０４と、信号ＤＳＰ［２］とＯＲ回路２９６の出力とプリデコード信号／Ａ４・／Ａ３・／Ａ２・Ａ１・／Ａ０とを受けるＡＮＤ回路３０６と、信号ＤＳＰ［７］とＯＲ回路２９８の出力とプリデコード信号／Ａ４・／Ａ３・Ａ２・Ａ１・Ａ０とを受けるＡＮＤ回路３０８とを含む。
【０２４５】
スペアデコーダ２６２は、さらに、ＡＮＤ回路３０２，３０４，３０６，３０８の入力をそれぞれ受けるバッファ回路３１２，３１４，３１６，３１８を含む。バッファ回路３１２，３１４，３１６，３１８は高電圧ＶＰＹを電源電圧として受け、それぞれ出力信号ＢＤＯＳＰ［０］，ＢＤＯＳＰ［１］，ＢＤＯＳＰ［２］，ＢＤＯＳＰ［７］を出力する。
【０２４６】
スペアデコーダ２６２は、さらに、信号ＣＡＵ０をゲートに受け信号ＢＤＯＳＰ［０］，ＢＤＯＳＰ［１］，ＢＤＯＳＰ［２］，ＢＤＯＳＰ［７］をそれぞれスペアビット線ＭＢＬＳＰ［０］，ＭＢＬＳＰ［１］，ＭＢＬＳＰ［２］，ＭＢＬＳＰ［７］に伝達するためのＮチャネルＭＯＳトランジスタ３２２，３２４，３２６，３２８を含む。
【０２４７】
図４５は、図４４におけるセレクタ２８２の構成を示した回路図である。
【０２４８】
図４５を参照して、セレクタ２８２は、プログラム時に活性化される信号ＢＤＯを信号ＣＡＵＯの活性化時にノードＮ１に伝達するＮチャネルＭＯＳトランジスタ３４２と、リード時にノードＮ１の信号を信号ＢＤＥとして出力するために設けられ、ゲートに信号ＣＡＵＥを受けるＮチャネルＭＯＳトランジスタ３４４とを含む。
【０２４９】
セレクタ２８２は、さらに、ノードＮ１とビット線ＭＢＬ［０］との間に接続されゲートにプリデコード信号／Ａ４・／Ａ３・／Ａ２・／Ａ１・／Ａ０を受けるＮチャネルＭＯＳトランジスタ３４６と、ノードＮ１とメインビット線ＭＢＬ［１］との間に接続されゲートにプリデコード信号／Ａ４・／Ａ３・／Ａ２・／Ａ１・Ａ０を受けるＮチャネルＭＯＳトランジスタ３４８と、ノードＮ１とビット線ＭＢＬ［３１］との間に設けられゲートにプリデコード信号Ａ４・Ａ３・Ａ２・Ａ１・Ａ０を受けるＮチャネルＭＯＳトランジスタ３５０とを含む。
【０２５０】
再び図４４を参照して、セレクタ２８２〜２８８は３２分の１の選択率でビット線ＭＢＬを選択する。マルチ書込時にはスペア判定信号ＨＩＴによらず制御を行なうためにテスト信号ＴＥＳＴをＨレベルに活性化する。スペアビット線ＭＢＬＳＰ［０］〜ＭＢＬＳＰ［７］に高電圧を印加する場合に、アドレス信号Ａ４〜Ａ０を用いて選択率を３２分の１に強制的に設定する。
【０２５１】
図４４において信号Ａ［４：０］が“０００００”の場合にはビット線ＭＢＬＳＰ［０］が選択される。また、信号Ａ［４：０］が“００００１”の場合には、ビット線ＭＢＬＳＰ［１］が選択されてプログラム時に高電圧が印加される。
【０２５２】
図４６は、図４４に示した構成のスペア選択に関する変形例を示した図である。
【０２５３】
図４６を参照して、ＯＲ回路２５６Ａは、信号ＨＩＴ［０］と信号ＴＥＳＴとを受けるＯＲ回路３６２と、信号ＨＩＴ［１］と信号ＴＥＳＴとを受けるＯＲ回路３６４とを含む。
【０２５４】
スペアデコーダ２６２Ａは、データ信号ＤＳＰ［０］とＯＲ回路３６２の出力とプリデコード信号／Ａ４・／Ａ３・／Ａ２とを受けるＡＮＤ回路３６６と、データ信号ＤＳＰ［１］とＯＲ回路３６４の出力とプリデコード信号／Ａ４・／Ａ３・Ａ２とを受けるＡＮＤ回路３７０と、電源電圧として高電圧ＶＰＹを受け入力にＡＮＤ回路３６６の出力を受けて信号ＢＤＯＳＰ［０］を出力するバッファ回路３６８と、電源電圧として高電圧ＶＰＹを受け入力にＡＮＤ回路３７０の出力を受けて信号ＢＤＯＳＰ［１］を出力するバッファ回路３７２と、アドレス信号Ａ０，Ａ１に応じてビット線ＭＢＬＳＰ［０］〜ＭＢＬＳＰ［３］のうちの１本を選択しこれに信号ＢＤＯＳＰ［０］を与える４分の１選択回路３７４と、アドレス信号Ａ０，Ａ１に応じてビット線ＭＢＬＳＰ［４］〜ＭＢＬＳＰ［７］のうちの１本を選択しこれに信号ＢＤＯＳＰ［１］を与える４分の１選択回路３７６とを含む。
【０２５５】
図４７は、図４６における４分の１選択回路３７４の構成を示した回路図である。
【０２５６】
図４７を参照して、４分の１選択回路３７４は、プログラム時に活性化される信号ＢＤＯを信号ＣＡＵＯの活性化時にノードＮ２に伝達するＮチャネルＭＯＳトランジスタ３８２と、リード時にノードＮ２の信号を信号ＢＤＥとして出力するために設けられ、ゲートに信号ＣＡＵＥを受けるＮチャネルＭＯＳトランジスタ３８４とを含む。
【０２５７】
４分の１選択回路３７４は、さらに、ノードＮ２とビット線ＭＢＬＳＰ［０］との間に接続されゲートにプリデコード信号／Ａ１・／Ａ０を受けるＮチャネルＭＯＳトランジスタ３８６と、ノードＮ２とメインビット線ＭＢＬＳＰ［１］との間に接続されゲートにプリデコード信号／Ａ１・Ａ０を受けるＮチャネルＭＯＳトランジスタ３８８と、ノードＮ１とビット線ＭＢＬＳＰ［３］との間に設けられゲートにプリデコード信号Ａ１・Ａ０を受けるＮチャネルＭＯＳトランジスタ３９０とを含む。
【０２５８】
図４６、図４７で示した変形例では、信号ＢＤＯ［７：０］の高電圧の信号をデコードするだけでなく、コラムデコード側でアドレスＡ［１：０］で４分の１に選択してかつ、ＡＮＤ回路３６６，３７０でアドレスＡ［４：２］による８分の１の選択を行なうことで図４４の場合と同様な効果を得ることができる。
【０２５９】
実施の形態７では、スペアメモリセルに対する信頼性が向上し、電源回路の能力をあまり増大させなくてもノーマルメモリセルとスペアメモリセルに対する同時書込が可能な不揮発性半導体記憶装置が提供できる。
【０２６０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２６１】
【図１】本発明の不揮発性半導体記憶装置１の構成を示したブロック図である。
【図２】本発明の不揮発性半導体記憶装置１のブロック消去の制御を説明するためのフローチャートである。
【図３】図２のステップＳ１で読込まれる変数について説明するための図である。
【図４】図２における消去パルス印加を行なうステップＳ４の動作を詳細に説明するためのフローチャートである。
【図５】消去パルスの印加が繰返される経過を説明するための波形図である。
【図６】パルス幅一定のままパルス印加を行なった場合の、メモリセルのしきい値電圧の変化を示す図である。
【図７】図５に示すような波形を印加した場合のしきい値電圧の変化を示す図である。
【図８】過消去状態を解消するオーバーイレースリカバリ（ＯＥＲ）動作を説明するための図である。
【図９】ＯＥＲ時の電圧印加状態を説明するための図である。
【図１０】実施の形態２のＯＥＲ動作においてパルスの印加を説明するための図である。
【図１１】実施の形態２における複数ビット選択の構成を説明するためのブロック図である。
【図１２】メモリセルアレイ２０中のメモリブロックを概略的に示した回路図である。
【図１３】図１１におけるデコーダ１４の構成を示した回路図である。
【図１４】実施の形態２のブロック消去の制御を説明するためのフローチャートである。
【図１５】チャネルホットエレクトロンの注入について説明するための図である。
【図１６】メモリトランジスタの縮小に伴い、セレクトトランジスタも縮小されることを説明するための図である。
【図１７】メモリトランジスタとセレクトトランジスタの断面を示した模式図である。
【図１８】実施の形態３において不揮発性半導体記憶装置のコントロールゲート電位Ｖｃｇを制御する構成を説明するためのブロック図である。
【図１９】書込パルスを印加の検討例を説明するためのフローチャートである。
【図２０】図１９に示したフローチャートに従って電圧を印加した場合の波形を示した動作波形図である。
【図２１】実施の形態３の不揮発性半導体記憶装置において用いられる書込パルスの制御フローを示したフローチャートである。
【図２２】図２１に示したフローチャートを用いた場合の動作を説明するための動作波形図である。
【図２３】図２０に示した波形を与えた場合のしきい値電圧の変化のばらつきを説明するための図である。
【図２４】図２２に示した波形を与えた場合のしきい値電圧の変化のばらつきを説明するための図である。
【図２５】ロックビット説明をするための図である。
【図２６】ロックビットを保持する２つのメモリトランジスタの断面図である。
【図２７】実施の形態４におけるロックビットをプログラムする動作を説明するためのフローチャートである。
【図２８】図２７においてステップＳ６３〜Ｓ６７が繰返し印加される様子を説明する動作波形図である。
【図２９】ステップＳ６９で台形波２が印加される様子を説明するための波形図である。
【図３０】ＡＣＣモードに関連する構成を説明するためのブロック図である。
【図３１】図３０のベリファイ回路１６のプログラムに関する構成を示す回路図である。
【図３２】実施の形態５の書込動作を説明するためのフローチャートである。
【図３３】図３２におけるノーマル書込を実行するステップＳ７２をより詳細に説明したフローチャートである。
【図３４】初回パルス印加の波形を説明するための波形図である。
【図３５】図３２におけるステップＳ７３のＡＣＣ書込の詳細な動作を説明するためのフローチャートである。
【図３６】ＡＣＣ書込時の初回パルスを説明するための波形図である。
【図３７】チャージポンプのセットアップ時間について説明するための図である。
【図３８】ブロック消去時のチャージポンプの制御方法を検討するための検討例を説明するためのブロック図である。
【図３９】図３８に示した検討例のブロック消去動作を説明するためのフローチャートである。
【図４０】実施の形態６のブロック消去時におけるチャージポンプの制御に関する構成を説明するためのブロック図である。
【図４１】図４０におけるカウンタ２１２の構成を示したブロック図である。
【図４２】実施の形態６のブロック消去動作を説明するためのフローチャートである。
【図４３】スペアメモリセルアレイに対する書込動作を説明するためのブロック図である。
【図４４】図４３におけるノーマルデコーダ２６０，ノーマルメモリセルアレイ２６４およびスペアデコーダ２６２、スペアメモリセルアレイ２６６の構成を説明するための回路図である。
【図４５】図４４におけるセレクタ２８２の構成を示した回路図である。
【図４６】図４４に示した構成のスペア選択に関する変形例を示した図である。
【図４７】図４６における４分の１選択回路３７４の構成を示した回路図である。
【符号の説明】
【０２６２】
１  不揮発性半導体記憶装置、２，２Ａ  コマンドユーザインターフェイス部、４  内部クロック発生部、６，６Ａ  ＣＰＵ、８  ＲＯＭ、１０，１０Ａ  電圧制御回路、１２，１４２，１４４，２５８  電源回路、１４  デコーダ、１６  ベリファイ回路、１８  ページバッファ、２０  メモリセルアレイ、２２，２４，２６，２８  トランジスタ、３０〜６９  メモリトランジスタ、８２  ビット線デコード回路、８４  ワード線デコード回路、８６  ゲート回路、９０〜９３，１００〜１１３，１６４，１７４，２０８，２５６，２５６Ａ，２９２〜２９８，３６２，３６４  ＯＲ回路、９６，１６８  ゲート回路、９８  ワード線ドライバ、１２０〜１２３，１８０，２０２〜２０６，３０２〜３０８，３６６，３７０  ＡＮＤ回路、１４０，２１０，２１２  カウンタ、１４６  ディテクタ、１４８  チャージポンプ、１５０  内部回路、１５２  比較回路、１６２，１６６，２３２，２３６  ラッチ回路、１７０，１７２，１７８  ＮＡＮＤ回路、１７６  ゲート、１７９  セレクタ、１９２  チューニングヒューズ回路、１９４  選択信号発生回路、１９６〜２００  デコード回路、２２１〜２２６  保持回路、２２８  加算器、２３４，２３８，２８２〜２８８  セレクタ、２５２  冗長判定回路、２５４  ＴＥＳＴ回路、２６０  ノーマルデコーダ、２６２，２６２Ａ  スペアデコーダ、２６４  ノーマルメモリセルアレイ、２６６  スペアメモリセルアレイ、２７２〜２７８，３１２〜３１８，３６８，３７２  バッファ回路、３２２〜３２８，３４２〜３５０，３８２〜３９０  トランジスタ、３７４，３７６  選択回路、ＢＬ０〜ＢＬ３  ビット線、ＬＢＬ  ロックビット線、ＭＢＬ  メインビット線、ＭＢＬ［０］〜ＭＢＬ［３１］  ビット線、ＭＢＬＳＰ［０］〜ＭＢＬＳＰ［７］  スペアビット線、ＳＧ０〜ＳＧ３  セレクトゲート線、ＳＬ  ソース線、ＷＬ  ワード線、ＷＬ０〜ＷＬ２５５  ワード線。
【図１】
2005092948.tif 000003
【図２】
2005092948.tif 000004
【図３】
2005092948.tif 000005
【図４】
2005092948.tif 000006
【図５】
2005092948.tif 000007
【図６】
2005092948.tif 000008
【図７】
2005092948.tif 000009
【図８】
2005092948.tif 000010
【図９】
2005092948.tif 000011
【図１０】
2005092948.tif 000012
【図１１】
2005092948.tif 000013
【図１２】
2005092948.tif 000014
【図１３】
2005092948.tif 000015
【図１４】
2005092948.tif 000016
【図１５】
2005092948.tif 000017
【図１６】
2005092948.tif 000018
【図１７】
2005092948.tif 000019
【図１８】
2005092948.tif 000020
【図１９】
2005092948.tif 000021
【図２０】
2005092948.tif 000022
【図２１】
2005092948.tif 000023
【図２２】
2005092948.tif 000024
【図２３】
2005092948.tif 000025
【図２４】
2005092948.tif 000026
【図２５】
2005092948.tif 000027
【図２６】
2005092948.tif 000028
【図２７】
2005092948.tif 000029
【図２８】
2005092948.tif 000030
【図２９】
2005092948.tif 000031
【図３０】
2005092948.tif 000032
【図３１】
2005092948.tif 000033
【図３２】
2005092948.tif 000034
【図３３】
2005092948.tif 000035
【図３４】
2005092948.tif 000036
【図３５】
2005092948.tif 000037
【図３６】
2005092948.tif 000038
【図３７】
2005092948.tif 000039
【図３８】
2005092948.tif 000040
【図３９】
2005092948.tif 000041
【図４０】
2005092948.tif 000042
【図４１】
2005092948.tif 000043
【図４２】
2005092948.tif 000044
【図４３】
2005092948.tif 000045
【図４４】
2005092948.tif 000046
【図４５】
2005092948.tif 000047
【図４６】
2005092948.tif 000048
【図４７】
2005092948.tif 000049