(57)【要約】【課題】  消去動作においてメモリセルに印加される印加電圧がメモリセルの劣化の判定後に変更される場合に、消去動作に掛かる時間が長くなることを抑止する【解決手段】  半導体メモリは、不揮発性のメモリセルと、メモリセルに印加される消去動作時の印加電圧の回数を保持する保持部と、保持部に保持された回数が第１の値より少ない場合、消去動作において、印加電圧を初期電圧から順次に大きくしてメモリセルに繰り返し印加し、保持部に保持された回数が第１の値以上の場合、初期電圧より大きい印加電圧をメモリセルに繰り返し印加する第１制御部と、消去動作において第１制御部によりメモリセルに印加された印加電圧の回数が、保持部に保持された回数を超える場合に、メモリセルに印加された印加電圧の回数を保持部に書き込む第２制御部とを有する。【選択図】    図１
2015018588.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性のメモリセルと、
前記メモリセルに印加される消去動作時の印加電圧の回数を保持する第１保持部と、
前記第１保持部に保持された回数が第１の値より少ない場合、前記消去動作において、印加電圧を初期電圧から順次に大きくして前記メモリセルに繰り返し印加し、前記第１保持部に保持された回数が前記第１の値以上の場合、前記初期電圧より大きい印加電圧を前記メモリセルに繰り返し印加する第１制御部と、
前記消去動作において前記第１制御部により前記メモリセルに印加された印加電圧の回数が、前記第１保持部に保持された回数を超える場合に、前記メモリセルに印加された印加電圧の回数を前記第１保持部に書き込む第２制御部と
を備えることを特徴とする半導体メモリ。
【請求項２】
前記第２制御部は、
前記消去動作において前記メモリセルに印加された印加電圧の回数を保持する第２保持部と、
前記第１保持部から読み出される回数を保持する第３保持部と、
前記第２保持部に保持された回数と、前記第３保持部に保持された回数とを比較する比較部と、
前記比較部により、前記第２保持部に保持された回数が、前記第３保持部に保持された回数を超えることが判定された場合に、前記第２保持部に保持された回数を前記第１保持部に書き込む書き込み部と
を備えることを特徴とする請求項１記載の半導体メモリ。
【請求項３】
前記第２制御部は、
前記半導体メモリの温度を示す温度情報に基づいて、前記第２保持部に保持された回数を、基準温度での回数に補正する補正部を備え、
前記比較部は、前記第２保持部に保持された回数の代わりに、前記補正部により補正された回数を前記第３保持部に保持された回数と比較すること
を特徴とする請求項２記載の半導体メモリ。
【請求項４】
不揮発性のメモリセルを含む半導体メモリの動作方法であって、
前記メモリセルに印加される消去動作時の印加電圧の回数を保持する第１保持部に保持された回数が第１の値より少ない場合、前記消去動作において、印加電圧を初期電圧から順次に大きくして前記メモリセルに繰り返し印加し、
前記第１保持部に保持された回数が前記第１の値以上の場合、前記初期電圧より大きい印加電圧を前記メモリセルに繰り返し印加し、
前記消去動作において前記メモリセルに印加された印加電圧の回数が、前記第１保持部に保持された回数を超える場合に、前記メモリセルに印加された印加電圧の回数を前記第１保持部に書き込むこと
を特徴とする半導体メモリの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性のメモリセルを有する半導体メモリおよび半導体メモリの動作方法に関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性の半導体メモリでは、メモリセルに保持されるデータの論理は、メモリセルの閾値電圧に応じて決まる。例えば、メモリセルに保持されたデータを消去する消去動作は、メモリセルのゲートに電圧を印加し、メモリセルの閾値電圧を下げることで実行される。
【０００３】
消去動作において、メモリセルに印加されるパルス電圧の高さを順次に大きくし、印加電圧が所定値を超えた場合に印加するパルス幅を狭くする手法が提案されている（例えば、特許文献１参照）。
【０００４】
また、消去動作において、メモリセルのゲートに印加される電圧を順次に下げ、印加される電圧が最大の負レベルになった場合にドレイン電圧を順次に高くする手法が提案されている（例えば、特許文献２参照）。
【０００５】
さらに、消去動作において、メモリセルに印加されるパルス電圧の高さを順次に大きくし、メモリセルの劣化が進んだと判定された場合に、パルス電圧の高さを劣化前より大きくする手法が提案されている（例えば、特許文献３参照）。例えば、メモリセルの劣化は、データが消去されるまでに印加されるパルス電圧の数により判定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１６９０３１号公報
【特許文献２】特開２００２−３１９２８８号公報
【特許文献３】特開２０１２−２０３６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
メモリセルのフローティングゲートに蓄積された電子は、消去動作においてパルス電圧が高いほどフローティングゲートから抜けやすい。このため、パルス電圧の開始電圧が高いほど、コントロールゲートに印加されるパルスの数は少なくなる。例えば、メモリセルの劣化の判定に基づいてパルス電圧の開始電圧の高さを大きくすることにより、メモリセルに印加されるパルス電圧の数が劣化前より少なくなると、メモリセルが劣化していないと誤判定されるおそれがある。誤判定により、消去動作でメモリセルに印加されるパルス電圧の開始電圧が初期値に戻ると、誤判定前に比べて、消去動作時に印加されるパルス電圧の数は増加し、消去時間は長くなってしまう。
【０００８】
本件開示の半導体メモリおよび半導体メモリの動作方法は、消去動作においてメモリセルに印加される印加電圧がメモリセルの劣化の判定後に変更される場合に、消去動作に掛かる時間が長くなることを抑止することを目的とする。
【課題を解決するための手段】
【０００９】
一つの観点によれば、半導体メモリは、不揮発性のメモリセルと、メモリセルに印加される消去動作時の印加電圧の回数を保持する保持部と、保持部に保持された回数が第１の値より少ない場合、消去動作において、印加電圧を初期電圧から順次に大きくしてメモリセルに繰り返し印加し、保持部に保持された回数が第１の値以上の場合、初期電圧より大きい印加電圧をメモリセルに繰り返し印加する第１制御部と、消去動作において第１制御部によりメモリセルに印加された印加電圧の回数が、保持部に保持された回数を超える場合に、メモリセルに印加された印加電圧の回数を保持部に書き込む第２制御部とを有する。
【００１０】
別の観点によれば、不揮発性のメモリセルを含む半導体メモリの動作方法は、メモリセルに印加される消去動作時の印加電圧の回数を保持する保持部に保持された回数が第１の値より少ない場合、消去動作において、印加電圧を初期電圧から順次に大きくしてメモリセルに繰り返し印加し、保持部に保持された回数が第１の値以上の場合、初期電圧より大きい印加電圧をメモリセルに繰り返し印加し、消去動作においてメモリセルに印加された印加電圧の回数が、保持部に保持された回数を超える場合に、メモリセルに印加された印加電圧の回数を保持部に書き込む。
【発明の効果】
【００１１】
本件開示の半導体メモリおよび半導体メモリの動作方法は、消去動作においてメモリセルに印加される印加電圧がメモリセルの劣化の判定後に変更される場合に、消去動作に掛かる時間が長くなることを抑止できる。
【図面の簡単な説明】
【００１２】
【図１】半導体メモリの一実施形態を示す図である。
【図２】図１に示した半導体メモリにおける消去動作のフローの例を示す図である。
【図３】半導体メモリの別の実施形態を示す図である。
【図４】図３に示した第２制御部の例を示す図である。
【図５】図３に示した半導体メモリの消去動作におけるゲート電圧と消去パルスの数との関係の例を示す図である。
【図６】図３に示した半導体メモリにおける消去動作のフローの例を示す図である。
【図７】図６に示した消去動作の実行によるセルトランジスタの閾値電圧の変化の例を示す図である。
【図８】図６に示したプリプログラム動作の例を示す図である。
【図９】図６に示したステップ消去動作の例を示す図である。
【図１０】図６に示したステップ消去動作の例（図８の続き）を示す図である。
【図１１】図６に示したソフトプログラム動作の例を示す図である。
【図１２】図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す図である。
【図１３】別の半導体メモリにおいて、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す。
【図１４】半導体メモリの別の実施形態における制御部の例を示す図である。
【図１５】図１４に示した半導体メモリにおいて、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す図である。
【図１６】図１４に示した半導体メモリにおいて、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の別の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。
【００１４】
図１は、半導体メモリの一実施形態を示す。この実施形態の半導体メモリＭＥＭ１は、例えば、フラッシュメモリ等の不揮発性メモリであり、不揮発性のメモリセルＭＣ、保持部ＨＬＤ、第１制御部ＣＮＴ１および第２制御部ＣＮＴ２を有する。例えば、メモリセルＭＣは、コントロールゲートＣＧおよびフローティングゲートＦＧを含むセルトランジスタを有する。なお、半導体メモリＭＥＭ１は、消去コマンドに応答してデータが消去される複数のメモリセルＭＣを有してもよい。保持部ＨＬＤは、消去動作時にメモリセルＭＣに印加される印加電圧ＡＶの回数を保持する。消去動作により、メモリセルＭＣに保持されたデータは消去される。
【００１５】
第１制御部ＣＮＴ１は、消去動作において、保持部ＨＬＤに保持された回数が予め設定された回数である値ＮＵＭ１より少ない場合、印加電圧ＡＶを初期電圧（図２に示すＡＶ１）から順次に大きくしてメモリセルに繰り返し印加する。印加電圧ＡＶの増分は、一定でもよく、変化させてもよい。例えば、印加電圧ＡＶは、コントロールゲートＣＧとメモリセルＭＣの基板（セルトランジスタのウェル領域）に掛かる電圧である。例えば、第１制御部ＣＮＴ１は、消去動作時に、正電圧をメモリセルＭＣの基板に印加し、順次に低くなる負電圧をコントロールゲートＣＧに印加することで、印加電圧ＡＶを初期電圧ＡＶ１から順次に大きくする。
【００１６】
また、第１制御部ＣＮＴ１は、保持部ＨＬＤに保持された回数が、値ＮＵＭ１以上の場合、初期電圧ＡＶ１より大きい印加電圧（図２に示すＡＶ２）をメモリセルＭＣに繰り返し印加する。印加電圧ＡＶは大きいほどメモリセルＭＣの消去効率を向上することができ、メモリセルＭＣに保持されたデータを消去するまでにメモリセルＭＣに印加される印加電圧ＡＶの回数を、印加電圧ＡＶが小さいときに比べて減らすことができる。
【００１７】
第１制御部ＣＮＴ１は、消去動作時にメモリセルに印加される印加電圧の回数が値ＮＵＭ１以上の場合、メモリセルＭＣの劣化により消去動作の時間が劣化前に比べて長くなったと判断する。第１制御部ＣＮＴ１は、メモリセルＭＣの劣化を判断した場合、メモリセルＭＣへの印加電圧ＡＶを初期電圧ＡＶ１より大きくする。これにより、メモリセルＭＣのデータの消去効率を劣化前より向上することができ、印加電圧ＡＶの回数が減ることにより、劣化により長くなった消去動作の時間を短縮することができる。
【００１８】
第２制御部ＣＮＴ２は、消去動作において第１制御部ＣＮＴ１がメモリセルＭＣに印加した印加電圧ＡＶの回数が、保持部ＨＬＤに保持された回数を超える場合に、メモリセルＭＣに印加した印加電圧ＡＶの回数を保持部ＨＬＤに書き込む。
【００１９】
第２制御部ＣＮＴ２の動作により、保持部ＨＬＤは、保持部ＨＬＤに保持した回数より少ない回数に書き換えられることはない。換言すれば、初期電圧ＡＶ１より大きい印加電圧ＡＶ２をメモリセルＭＣに印加することにより少なくなった印加電圧ＡＶの回数は、保持部ＨＬＤに書き込まれない。したがって、メモリセルＭＣの劣化による印加電圧ＡＶの増大により、消去動作の印加電圧ＡＶの回数が減った場合にも、次の消去動作において、印加電圧ＡＶの回数が減ったことに基づいて、印加電圧ＡＶが初期電圧ＡＶ１に設定されることはない。この結果、消去動作においてメモリセルＭＣに印加される印加電圧ＡＶがメモリセルＭＣの劣化の判定後に変更される場合にも、印加電圧ＡＶが初期電圧ＡＶ１に戻ることを抑止することができ、消去動作に掛かる時間が長くなることを抑止することができる。
【００２０】
図２は、図１に示した半導体メモリＭＥＭにおける消去動作の例を示す。すなわち、図２は、半導体メモリの動作方法の一実施形態を示す。例えば、図２に示すフローは、半導体メモリＭＥＭ１が消去コマンドを受ける毎に、第１制御部ＣＮＴ１および第２制御部ＣＮＴ２により実行される。
【００２１】
まず、ステップＳ１０において、第１制御部ＣＮＴ１は、保持部ＨＬＤに保持された回数が予め設定された回数である値ＮＵＭ１以上であるか否かを判定する。第１制御部ＣＮＴ１は、保持部ＨＬＤに保持された回数が値ＮＵＭ１以上である場合、メモリセルＭＣが劣化したと判断し、処理をステップＳ１８に移行する。第１制御部ＣＮＴ１は、保持部ＨＬＤに保持された回数が値ＮＵＭ１より少ない場合、メモリセルＭＣが劣化していないと判断し、処理をステップＳ１２に移行する。
【００２２】
ステップＳ１２において、第１制御部ＣＮＴ１は、今回の消去動作による電圧の印加が初回（１回目）であるか否かを判定する。電圧の印加が初回の場合、処理はステップＳ１４に移行され、電圧の印加の印加が２回目以降の場合、処理はステップＳ１６に移行される。
【００２３】
ステップＳ１４において、第１制御部ＣＮＴ１は、印加電圧ＡＶを初期電圧ＡＶ１に設定する。ステップＳ１４の後、処理はステップＳ２０に移行される。ステップＳ１６において、第１制御部ＣＮＴ１は、印加電圧ＡＶを前回の印加電圧ＡＶに比べて大きくする。すなわち、メモリセルＭＣに印加される電圧は、順次に大きくなる。例えば、メモリセルＭＣのコントロールゲートＣＧに印加される負電圧は、順次に下がる。ステップＳ１６の後、処理はステップＳ２０に移行される。
【００２４】
一方、保持部ＨＬＤに保持された回数が値ＮＵＭ１以上である場合、ステップＳ１８において、第１制御部ＣＮＴ１は、印加電圧ＡＶを、初期電圧ＡＶ１より大きい印加電圧ＡＶ２に設定する。ステップＳ１８の後、処理はステップＳ２０に移行される。
【００２５】
ステップＳ２０において、第１制御部ＣＮＴ１は、ステップＳ１４、Ｓ１６またはＳ１８で設定した印加電圧ＡＶをメモリセルＭＣに印加する。
【００２６】
次に、ステップＳ２２において、第１制御部ＣＮＴ１は、メモリセルＭＣに保持されたデータが消去されたか否かを判定する。例えば、データが消去されたか否かの判定は、セルトランジスタが所定の閾値電圧に設定されたか否かを確認するベリファイ動作の実行により確認される。メモリセルＭＣに保持されたデータが消去された場合、処理はステップＳ２４に移行され、メモリセルＭＣに保持されたデータが消去されていない場合、処理はステップＳ１０に戻って、メモリセルＭＣに印加電圧ＡＶが再び印加される。なお、ステップＳ２２は、ステップＳ１０の前に実施されてもよい。この場合にも、ステップＳ２２は、ステップＳ２０の後に実施される。
【００２７】
ステップＳ２４において、第２制御部ＣＮＴ２は、今回の消去動作においてメモリセルＭＣに印加された印加電圧ＡＶの回数が、保持部ＨＬＤに保持された回数以上か否かを判定する。メモリセルＭＣに印加された印加電圧ＡＶの回数が、保持部ＨＬＤに保持された回数以上である場合、処理はステップＳ２６に移行される。メモリセルＭＣに印加された印加電圧ＡＶの回数が、保持部ＨＬＤに保持された回数より少ない場合、消去動作の処理は終了する。
【００２８】
ステップＳ２６において、第２制御部ＣＮＴ２は、今回の消去動作においてメモリセルＭＣに印加された印加電圧ＡＶの回数を、保持部ＨＬＤに書き込む。すなわち、保持部ＨＬＤに保持される印加電圧ＡＶの回数は、減らされることなく、メモリセルＭＣの劣化に応じて順次に増加する。そして、消去動作の処理は終了する。
【００２９】
以上、図１から図２に示した実施形態では、消去動作においてメモリセルＭＣに印加される印加電圧ＡＶがメモリセルＭＣの劣化の判定後に変更される場合に、消去動作の時間が長くなることを抑止できる。
【００３０】
図３は、半導体メモリの別の実施形態を示す。この実施形態の半導体メモリＭＥＭ２は、入力部１０、ステートマシン１２、記憶部１４、電圧生成部１６、セルアレイ１８、ロウデコーダ２０、コラムデコーダ２２、センスアンプ２４、ライトアンプ２６およびデータ入出力部２８を有する。例えば、半導体メモリＭＥＭ２は、フラッシュメモリ等の不揮発性メモリである。
【００３１】
入力部１０は、半導体メモリＭＥＭ２を動作させるためのコマンド信号ＣＭＤおよびアドレス信号ＡＤを受け、受けたコマンド信号ＣＭＤおよびアドレス信号ＡＤをステートマシン１２に出力する。アドレス信号ＡＤは、ロウデコーダ２０およびコラムデコーダ２２にも出力される。コマンド信号ＣＭＤは、消去動作を実行する消去コマンド、読み出し動作を実行する読み出しコマンド、およびプログラム動作を実行するプログラムコマンドを含む。
【００３２】
ステートマシン１２は、第１制御部１２１および第２制御部１２２を有する。第１制御部１２１は、入力部１０を介して受けるコマンド信号ＣＭＤに応じて、電圧生成部１６、ロウデコーダ２０、コラムデコーダ２２、センスアンプ２４、ライトアンプ２６およびデータ入出力部２８の動作を制御する複数の制御信号を生成する機能を有する。そして、コマンド信号ＣＭＤに応じて動作する第１制御部１２１の制御により、セルアレイ１８に保持されたデータの消去動作、データのプログラム動作またはデータの読み出し動作が実行される。
【００３３】
また、第１制御部１２１は、消去コマンドを示すコマンド信号ＣＭＤに応答して、消去動作の開始前にリセット信号ＲＳＴを第２制御部１２２に出力し、セルアレイ１８への電圧の印加毎にインクリメント信号ＩＮＣを第２制御部１２２に出力する。さらに、第１制御部１２１は、消去動作の開始前に、第１モードＭＤ１または第２モードＭＤ２を示す情報を第２制御部１２２から受ける。第１モードＭＤ１および第２モードＭＤ２は、図５で説明する。以下、消去動作において、メモリセルＭＣのセルトランジスタのコントロールゲートＣＧに印加される印加電圧は、消去パルスとも称される。
【００３４】
例えば、消去動作は、セルアレイ１８に配置されるメモリセルＭＣのセルトランジスタの閾値電圧を、消去状態を示す値に設定する動作である。例えば、プログラム動作は、アドレス信号ＡＤで指定されるメモリセルＭＣのセルトランジスタの閾値電圧を、プログラム状態を示す値に設定する動作である。例えば、読み出し動作は、アドレス信号ＡＤで指定されるメモリセルＭＣに保持されたデータの論理を読み出す動作である。例えば、消去状態のセルトランジスタの閾値電圧は、プログラム状態のセルトランジスタの閾値電圧より低く、正値を示す。
【００３５】
第２制御部１２２は、記憶部１４にデータＷＮを書き込む場合、書き込み要求を示す制御信号ＣＮＴをデータＷＮとともに記憶部１４に出力する。第２制御部１２２は、記憶部１４からデータＲＮを読み出す場合、読み出し要求を示す制御信号ＣＮＴを記憶部１４に出力する。例えば、データＷＮ、ＲＮは、消去動作時にメモリセルＭＣのコントロールゲートＣＧに印加された消去パルスの数を示す。また、第２制御部１２２は、消去動作の開始前に、第１モードＭＤ１または第２モードＭＤ２を示す情報を第１制御部１２１に出力する。
【００３６】
記憶部１４は、消去動作時にコントロールゲートＣＧに印加された消去パルスの数を示すデータＷＮを保持する不揮発性の記憶領域と、データＷＮの書き込み回路と、記憶領域に保持された消去パルスの数をデータＲＮとして読み出す読み出し回路とを有する。記憶部１４は、メモリセルＭＣに印加される消去動作時の印加電圧の回数を保持する第１保持部の一例である。
【００３７】
例えば、記憶部１４に設けられる不揮発性の記憶領域は、セルアレイ１８内のメモリセルＭＣと同様の複数のメモリセルを有する。メモリセルが２値データを記憶する場合、記憶部１４に設けられるメモリセルの数は、データＷＮのビット数（例えば、８ビット）以上あればよい。なお、記憶部１４は、初期値として”０”を記憶領域に保持する。例えば、初期値は、半導体メモリＭＥＭ２の製造工程（テスト工程）で記憶部１４に書き込まれる。
【００３８】
電圧生成部１６は、消去動作、プログラム動作および読み出し動作で使用する電圧をそれぞれ生成する。例えば、電圧生成部１６は、消去動作において、コントロールゲートＣＧに印加する負電圧およびセルアレイ１８の基板（セルトランジスタのウェル領域）に供給される高電圧等を生成する。例えば、消去動作時に、セルアレイ１８の基板は、９Ｖに設定される。
【００３９】
例えば、電圧生成部１６は、プログラム動作において、コントロールゲートＣＧに印加する高電圧およびビット線ＢＬに印加する高電圧等を生成する。例えば、電圧生成部１６は、読み出し動作において、コントロールゲートＣＧに印加する高電圧およびビット線ＢＬに印加する高電圧等を生成する。
【００４０】
セルアレイ１８は、マトリックス状に配置された複数のメモリセルＭＣを有する。例えば、各メモリセルＭＣは、コントロールゲートＣＧおよびフローティングゲートＦＧを含むセルトランジスタを有する。各セルトランジスタは、ソースがソース線ＳＬに接続され、ドレインがビット線ＢＬに接続され、コントロールゲートＣＧがワード線ＷＬに接続される。セルアレイ１８は、消去動作において、メモリセルＭＣに保持されたデータを消去する単位である。
【００４１】
なお、メモリセルＭＣのレイアウトやメモリセルＭＣの構造は、図３に限定されない。例えば、メモリセルＭＣは、セルトランジスタとビット線との間に選択トランジスタを有してもよい。また、セルアレイ１８は、メモリセルＭＣに保持されたデータを消去する単位である複数のセクタを有してもよい。
【００４２】
ロウデコーダ２０は、消去動作、プログラム動作および読み出し動作時に、第１制御部１２１からの制御信号と、アドレス信号ＡＤと、電圧生成部１６からの電圧を受けて動作し、ワード線ＷＬおよびソース線ＳＬを所定の電圧に設定する。コラムデコーダ２２は、プログラム動作および読み出し動作時に、ステートマシン１２からの制御信号およびアドレス信号ＡＤを受けて動作し、ビット線ＢＬを所定の電圧に設定する。
【００４３】
センスアンプ２４は、読み出し動作時に、第１制御部１２１からの制御信号を受けて動作し、データを読み出すメモリセルＭＣに接続されたビット線ＢＬの電圧または電流を、コラムデコーダ２２を介して受け、メモリセルＭＣに保持されたデータの論理を判定する。ライトアンプ２６は、プログラム動作時に、第１制御部１２１からの制御信号を受けて動作し、コラムデコーダ２２を介してビット線ＢＬを所定の電圧に設定する。
【００４４】
データ入出力部２８は、第１制御部１２１からの制御信号を受けて動作し、読み出し動作時に、メモリセルＭＣから読み出されたデータをデータ端子ＤＴに出力し、プログラム動作時に、データ端子ＤＴを介してメモリセルＭＣに書き込むデータを受ける。
【００４５】
図４は、図３に示した第２制御部１２２の例を示す。第２制御部１２２は、レジスタＲ１、Ｒ２、比較部ＣＭＰおよび書き込み部ＷＲを有する。レジスタＲ１は、リセット信号ＲＳＴにより、例えば”０”にリセットされる。レジスタＲ１に保持されるデータＥＰＮは、消去動作時にコントロールゲートＣＧに印加される消去パルスの数を示し、インクリメント信号ＩＮＣに応答して”１”ずつ増加する。レジスタＲ１に保持されたデータＥＰＮは、比較部ＣＭＰおよび書き込み部ＷＲに出力される。レジスタＲ１は、消去動作においてメモリセルＭＣに印加された印加電圧の回数を保持する第２保持部の一例である。
【００４６】
図３で説明したように、例えば、リセット信号ＲＳＴは、消去コマンドに応答して消去動作の開始前に第１制御部１２１により生成される。例えば、インクリメント信号ＩＮＣは、消去動作において、メモリセルＭＣのコントロールゲートＣＧに消去パルスが印加される毎に、第１制御部１２１により生成される。
【００４７】
レジスタＲ２は、記憶部１４から読み出されるデータＲＮを、以前の消去動作時にコントロールゲートＣＧに印加された消去パルスの数として保持し、保持したデータＲＮを比較器に出力する。例えば、第２制御部１２２は、消去コマンドの受信に応答してステートマシン１２が最初の消去パルスをコントロールゲートＣＧに印加する前に、記憶部１４から読み出したデータＲＮをレジスタＲ２に保持する。レジスタＲ２は、保持部１４から読み出される回数（データＲＮ）を保持する第３保持部の一例である。
【００４８】
また、レジスタＲ２は、記憶部１４から読み出されるデータＲＮが示す消去パルスの数に応じて、第１モードＭＤ１または第２モードＭＤ２を示す信号を図３に示した第１制御部１２１に出力する。例えば、レジスタＲ２は、データＲＮが”１５０回”以上を示す場合に、第２モードＭＤ２を示す信号を出力し、データＲＮが”１５０回”未満を示す場合に、第１モードＭＤ１を示す信号を出力する。なお、第２制御部１２２は、レジスタＲ２から出力されるデータＲＮが示す消去パルスの数と、”１５０回”とを比較する比較器を有し、比較器から第１モードＭＤ１または第２モードＭＤ２を示す信号を出力してもよい。この場合、レジスタＲ２は、第１モードＭＤ１および第２モードＭＤ２を示す信号を出力する機能を持たない。
【００４９】
比較部ＣＭＰは、消去動作の完了時に、レジスタＲ１に保持されたデータＥＰＮと、レジスタＲ２に保持されたデータＲＮとを比較し、データＥＰＮが示す消去パルスの数が、データＲＮが示す消去パルスの数より大きい場合に、超過信号ＯＶＥＲを出力する。書き込み部ＷＲは、比較部ＣＭＰからの超過信号ＯＶＥＲに応答して、レジスタＲ１に保持されたデータＥＰＮをデータＷＮとして記憶部１４に出力する。すなわち、消去動作でメモリセルＭＣに印加された消去パルスの数（ＥＰＮ）が、記憶部１４に保持された消去パルスの数（ＲＮ）より大きい場合、記憶部１４の内容はデータＥＰＮに書き換えられる。
【００５０】
図５は、図３に示した半導体メモリＭＥＭ２の消去動作におけるゲート電圧と消去パルスの数との関係の例を示す。図５において、横軸は、セルアレイ１８内のメモリセルＭＣのコントロールゲートＣＧに印加される消去パルスの数（積算値）を示し、縦軸は、セルアレイ１８内のメモリセルＭＣのコントロールゲートＣＧに印加される消去パルスの電圧を示す。
【００５１】
例えば、消去動作は、前回の消去動作で印加された消去パルスの数に応じて、第１モードＭＤ１または第２モードＭＤ２で実行される。なお、図４に示した第２制御部１２２は、前回の消去動作で印加された消去パルスの数を、内蔵する記憶領域に保持してもよく、図４に示したレジスタＲ１から読み出してもよい。
【００５２】
第１モードＭＤ１は、前回の消去動作で印加された消去パルスの数が値Ｎ１未満の場合に実行される。値Ｎ１は、第１モードＭＤ１により消去動作を実行する場合に、メモリセルＭＣの劣化を判定する閾値であり、例えば、”１５０”である。第１モードＭＤ１では、第１制御部１２１は、電圧を初期値Ｖ１から最終値Ｖ３に徐々に下げながら、コントロールゲートＣＧに消去パルスを繰り返し印加する（図５に示す太い実線）。すなわち、第１モードＭＤ１では、消去パルスの電圧を順次に下げるステップ消去が実行される。
【００５３】
特に限定されないが、初期値Ｖ１は”−５．２Ｖ”であり、最終値Ｖ３は”−９．２Ｖ”である。消去動作時に、セルトランジスタのウェル領域に印加される電圧は、高電圧である。このため、コントロールゲートＣＧに印加される消去パルスの電圧値が下がるほど、セルトランジスタに印加される電界は大きくなり、セルトランジスタに掛かるストレスは大きくなる。コントロールゲートＣＧに印加される初期値Ｖ１は、図２に示したメモリセルＭＣに印加される初期電圧ＡＶ１に対応する。
【００５４】
図５に示す例では、コントロールゲートＣＧに印加される電圧は、消去パルスが４回印加される毎に１ステップ（例えば、０．１２５Ｖ）下げられる。これにより、”−５．２Ｖ”から”−９．２Ｖ”までの４Ｖが低下するまでに１２８ステップ掛かる（０．１２５Ｖ×１２８／４）。なお、コントロールゲートＣＧに印加される電圧は、消去パルスの印加毎に下げられてもよい。
【００５５】
第２モードＭＤ２は、前回の消去動作で印加された消去パルスの数が予め設定された回数である値Ｎ１以上の場合に実行される。すなわち、第２モードＭＤ２は、前回の消去動作の実行により、メモリセルＭＣの劣化が判定された場合に実行される。第２モードＭＤ２では、消去動作においてコントロールゲートＣＧに印加される最初の消去パルスの電圧は、値Ｖ２に設定される。例えば、値Ｖ２は、最終値Ｖ３と同じ”−９．２Ｖ”である。すなわち、第２モードＭＤ２では、消去パルスの電圧を順次に下げるステップ消去は実行されない（図５に示す太い一点鎖線）。コントロールゲートＣＧに印加される値Ｖ２は、図２に示したメモリセルＭＣに印加される印加電圧ＡＶ２に対応する。
【００５６】
例えば、値Ｖ１、Ｖ２、Ｖ３および値Ｎ１は、ステートマシン１２内に設けられる不揮発性の記憶領域に保持される。値Ｖ１、Ｖ２、Ｖ３および値Ｎ１を保持する不揮発性の記憶領域は、セルアレイ１８内のメモリセルＭＣと同様の複数のメモリセルを有してもよく、ヒューズ回路などのＲＯＭ（Read Only Memory）を有してもよい。あるいは、値Ｖ１、Ｖ２、Ｖ３および値Ｎ１を保持する不揮発性の記憶領域は、記憶部１４内に設けられてもよい。
【００５７】
なお、値Ｖ２は、初期値Ｖ１より低く、最終値Ｖ３より高い値に設定されてもよい。例えば、値Ｖ２が”−８．２Ｖ”に設定された場合、コントロールゲートＣＧに印加される電圧は、”−８．２Ｖ”から”−９．２Ｖ”まで徐々に下げられる（図５に示す太い点線）。この場合、メモリセルＭＣに掛かるストレスが、第１モードＭＤ１よりも大きい消去動作（ステップ消去）が実行される。
【００５８】
また、図５の横軸は、セルアレイ１８内のメモリセルＭＣのコントロールゲートＣＧに印加される消去パルスの印加時間の積算値で示されてもよい。この場合、図４に示した記憶部１４は、１回の消去動作で印加された消去パルスの印加時間の積算値が保持し、レジスタＲ１は、インクリメント信号ＩＮＣの代わりに各消去パルスの印加時間を示すデータを受け、受けたデータを順次積算する加算器の機能を有する。
【００５９】
図６は、図３に示した半導体メモリＭＥＭ２における消去動作の例を示す。すなわち、図６は、半導体メモリの動作方法の別の実施形態を示す。図６に示すフローは、ステートマシン１２（第１制御部１２１および第２制御部１２２）により実行される。なお、セルアレイ１８が複数のセクタを有する場合、図６に示す消去動作は、セクタ単位で実行され（セクタ消去）、あるいは、全てのセクタで順次に実行される（フルチップ消去）。セクタ消去を実行するか、フルチップ消去を実行するかは、例えば、半導体メモリＭＥＭ２に供給されるコマンド信号ＣＭＤに応じて決定される。
【００６０】
まず、ステップＳ１００において、ステートマシン１２は、セルアレイ１８内のメモリセルＭＣをプログラム状態に設定するために、プリプログラム動作を実行する。プリプログラム動作の例は、図８に示す。
【００６１】
次に、ステップＳ２００において、ステートマシン１２は、セルアレイ１８内のメモリセルＭＣを消去状態に設定するために、ステップ消去動作を実行する。ステップ消去動作の例は、図９および図１０に示す。
【００６２】
次に、ステップＳ３００において、ステートマシン１２は、消去状態のセルトランジスタの閾値電圧が所定の範囲内に分布するように、ソフトプログラム動作を実行する。ソフトプログラム動作の例は、図１１に示す。
【００６３】
図７は、図６に示した消去動作の実行によるセルトランジスタの閾値電圧の変化の例を示す。図７（ａ）は、消去動作前の状態を示す。この例では、消去動作前に、消去状態のメモリセルＭＣ（消去セル）とプログラム状態のメモリセルＭＣ（プログラムセル）の数が、ほぼ等しい。消去セルのセルトランジスタの閾値電圧は、値ＶＴ１から値ＶＴ２の範囲に分布し、プログラムセルのセルトランジスタの閾値電圧は、値ＶＴ３以上の所定の範囲に分布している。例えば、消去セルの閾値電圧の下限である値ＶＴ１は、０Ｖより高い。
【００６４】
図７（ｂ）は、図６のステップＳ１００に示したプリプログラム動作の実行後の状態を示す。プリプログラム動作の実行により、セルアレイ１８内における消去状態のメモリセルＭＣは、プログラム状態に設定される。なお、プリプログラム動作において、セルトランジスタの閾値電圧を確認するベリファイ動作では、セルトランジスタの閾値電圧が値ＶＴ３以上になったか否かが判定される。
【００６５】
図７（ｃ）、（ｄ）、（ｅ）は、図６のステップＳ２００に示したステップ消去動作の実行によるセルトランジスタの閾値電圧の変化を示す。ステップ消去動作は、消去パルスの印加による閾値電圧の低い側への変化と、ＡＰＤＥ（Auto−Program Disturb after Erase）動作による閾値電圧の高い側への変化を含む。
【００６６】
なお、実際のステップ消去動作では、図５に示したように、複数の消去パルスが繰り返し印加され、消去パルスの印加毎にＡＰＤＥ動作が実行される。このため、実際のステップ消去動作では、１回の消去パルスの印加により、セルトランジスタの閾値電圧の分布が図７（ｃ）に示すように、大きく変化するわけではない。すなわち、図７（ｃ）は、セルアレイ１８内のセルトランジスタのコントロールゲートＣＧに消去パルスが印加された場合の閾値電圧の変化のイメージを示す。
【００６７】
実際のステップ消去動作では、図７（ｄ）、（ｅ）に示すように、ＡＰＤＥ動作と消去パルスの印加とが繰り返されることで、セルトランジスタの閾値電圧は、値ＶＴ０から値ＶＴ２の範囲に徐々に集まる。なお、ＡＰＤＥ動作は、閾値電圧が負のセルトランジスタをなくすためのプログラム動作であり、ＡＰＤＥ動作におけるベリファイ動作では、図７（ｄ）に示すように、セルトランジスタの閾値電圧が値ＶＴ０（０Ｖ）以上になったか否かが判定される。また、メモリセルＭＣがプログラム状態から消去状態に変化したことを確認するベリファイ動作は、図７（ｅ）に示すように、セルトランジスタの閾値電圧が値ＶＴ２以下になったか否かが判定される。
【００６８】
図７（ｆ）は、図６のステップＳ３００に示したソフトプログラム動作の実行後の状態を示す。ソフトプログラム動作の実行により、セルアレイ１８内における消去状態のセルトランジスタの閾値電圧は、値ＶＴ１以上に設定される。すなわち、ソフトプログラム動作において、セルトランジスタの閾値電圧を確認するベリファイ動作では、セルトランジスタの閾値電圧が値ＶＴ１以上になったか否かが判定される。
【００６９】
図８は、図６に示したプリプログラム動作の例を示す。
【００７０】
まず、ステップＳ１０２において、ステートマシン１２は、プリプログラムするメモリセルＭＣを示すアドレスの値を初期化する。例えば、ステートマシン１２は、内蔵するアドレスカウンタの値をリセットすることで、アドレスの値を初期化する。
【００７１】
次に、ステップＳ１０４において、ステートマシン１２は、ベリファイ動作を実行する。ステップＳ１０４で実行されるベリファイ動作は、セルトランジスタの閾値電圧が、図７に示したプログラム状態の下限値である値ＶＴ３以上であることを確認するために実行される。
【００７２】
次に、ステップＳ１０６において、ステートマシン１２は、ベリファイ動作がパスしたか否か、すなわち、ベリファイ動作を実行したメモリセルＭＣがプログラム状態であるか否かを判定する。ベリファイ動作がパスした場合、処理はステップＳ１１０に移行され、ベリファイ動作がフェイルした場合、処理はステップＳ１０８に移行される。
【００７３】
ステップＳ１０８において、ステートマシン１２は、ベリファイ動作がフェイルしたメモリセルＭＣに対してセルトランジスタの閾値電圧を値ＶＴ３以上に設定するためにプログラム動作を実行する。ステップＳ１０８の後、処理はステップＳ１０４に移行され、ベリファイ動作が再び実行される。
【００７４】
一方、ステップＳ１１０において、ステートマシン１２は、アドレスが最終アドレスか否か、すなわち、セルアレイ１８内の全てのメモリセルＭＣがプログラム状態に設定されたか否かを判定する。アドレスが最終アドレスの場合、処理はステップＳ１１４に移行され、アドレスが最終アドレスでない場合、処理はステップＳ１１２に移行される。
【００７５】
ステップＳ１１２において、ステートマシン１２は、例えば、アドレスカウンタをインクリメントし、ベリファイ動作を実行するメモリセルＭＣを示すアドレスを更新する。なお、アドレスは、アドレスカウンタをデクリメントすることで更新されてもよい。ステップＳ１１２の後、処理はステップＳ１０４に移行され、更新されたアドレスが示すメモリセルＭＣのベリファイ動作が実行される。
【００７６】
ステップＳ１１４において、ステートマシン１２は、ステップＳ１０２と同様に、アドレスの値を初期化する。そして、プリプログラム動作が終了する。
【００７７】
図９および図１０は、図６に示したステップ消去動作の例を示す。図１０は、図９の続きを示す。
【００７８】
まず、ステップＳ２０２において、ステートマシン１２は、図４に示した第２制御部１２２のレジスタＲ１を、例えば”０”にリセットする。すなわち、セルトランジスタのコントロールゲートＣＧに印加される消去パルスの回数（積算値）が０回に初期化される。
【００７９】
次に、ステップＳ２０４において、ステートマシン１２は、ベリファイ動作を実行する。ステップＳ２０４で実行されるベリファイ動作は、セルトランジスタの閾値電圧が、図７に示した消去状態の上限値である値ＶＴ２以下であることを確認するために実行される。
【００８０】
次に、ステップＳ２０６において、ステートマシン１２は、ベリファイ動作がパスしたか否か、すなわち、ベリファイ動作を実行したメモリセルＭＣが消去状態であるか否かを判定する。ベリファイ動作がパスした場合、処理はステップＳ２０８に移行され、ベリファイ動作がフェイルした場合、処理は図１０のステップＳ２５０に移行される。
【００８１】
ステップＳ２０８において、ステートマシン１２は、アドレスが最終アドレスか否か、すなわち、セルアレイ１８内の全てのメモリセルＭＣが消去状態に設定されたか否かを判定する。アドレスが最終アドレスの場合、処理はステップＳ２１２に移行され、アドレスが最終アドレスでない場合、処理はステップＳ２１０に移行される。
【００８２】
ステップＳ２１０において、ステートマシン１２は、図８のステップＳ１１２と同様にアドレスを更新し、更新したアドレスが示すメモリセルＭＣのベリファイ動作を実行するために、処理をステップＳ２０４に移行する。
【００８３】
一方、ステップＳ２１２において、ステートマシン１２は、図４に示した第２制御部１２２の比較部ＣＭＰを動作させ、レジスタＲ１の値がレジスタＲ２の値を超えているか否かを判定する。すなわち、今回のステップ消去動作でコントロールゲートＣＧに印加された消去パルスの数が、以前のステップ消去動作でコントロールゲートＣＧに印加された消去パルスの数より多いか否かが判定される。
【００８４】
実際の消去動作では、図１０のステップＳ２６６による消去パルスの印加前に、ステップＳ２０６でベリファイ動作がパスすることはない。このため、ステップＳ２１２の実行前に、図１０に示すステップＳ２５２が実行され、ステップＳ２１２で比較されるレジスタＲ２の値は、記憶部１４から読み出される。レジスタＲ１の値がレジスタＲ２の値を超えている場合、すなわち、今回のステップ消去動作での消去パルスの総数が、以前のステップ消去動作での消去パルスの総数より多い場合、処理はステップＳ２１４に移行される。レジスタＲ１の値がレジスタＲ２の値以下の場合、すなわち、今回のステップ消去動作での消去パルスの総数が、以前のステップ消去動作での消去パルスの総数以下の場合、ステップ消去動作の処理は終了する。
【００８５】
ステップＳ２１４において、ステートマシン１２は、図４に示した第２制御部１２２の書き込み部ＷＲを動作させ、レジスタＲ１の値を記憶部１４に書き込み、ステップ消去動作の処理を終了する。
【００８６】
一方、ステップＳ２０６でベリファイ動作がフェイルした場合、図１０のステップＳ２５０において、ステートマシン１２は、今回のステップ消去動作による消去パルスの印加が初回（１回目）であるか否かを判定する。消去パルスの印加が初回の場合、処理はステップＳ２５２に移行され、消去パルスの印加が２回目以降の場合、処理はステップＳ２６０に移行される。
【００８７】
ステップＳ２５２において、ステートマシン１２は、記憶部１４に保持された値をレジスタＲ２に読み込む。次に、ステップＳ２５４において、ステートマシン１２は、レジスタＲ２の値が、図５に示した値Ｎ１（この例では、”１５０”）以上か否かを判定する。すなわち、ステートマシン１２は、消去動作を図５に示した第１モードＭＤ１で実行するか、第２モードＭＤ２で実行するかを判定する。
【００８８】
ステートマシン１２は、レジスタＲ２の値が値Ｎ１以上の場合、メモリセルＭＣが劣化していると判断し、図５に示した第２モードＭＤ２でステップ消去動作を実行するために、処理をステップＳ２５６に移行する。一方、ステートマシン１２は、レジスタＲ２の値が値Ｎ１未満の場合、メモリセルＭＣが劣化していないと判断し、図５に示した第１モードＭＤ１でステップ消去動作を実行するために、処理をステップＳ２５８に移行する。
【００８９】
ステップＳ２５６において、ステートマシン１２は、コントロールゲートＣＧに印加する１回目の消去パルスの電圧（開始電圧）を値Ｖ２に設定し、処理をステップＳ２６６に移行する。開始電圧が値Ｖ２（例えば、−９．２Ｖ）に設定されることで、消去パルスの電圧を順次に下げるステップ消去は実行されない。
【００９０】
一方、ステップＳ２５８において、ステートマシン１２は、コントロールゲートＣＧに印加する１回目の消去パルスの電圧（開始電圧）を初期値Ｖ１に設定し、処理をステップＳ２６６に移行する。開始電圧が初期値Ｖ１（例えば、−５．２Ｖ）に設定されることで、コントロールゲートＣＧに印加する消去パルスの電圧を順次に下げるステップ消去が実行される。
【００９１】
消去パルスの印加が２回目以降の場合、ステップＳ２６０において、ステートマシン１２は、コントロールゲートＣＧに印加する消去パルスの電圧（印加電圧）が最終値Ｖ３以上であるか否かを判定する。印加電圧が最終値Ｖ３以上である場合、処理はステップＳ２６６に移行され、印加電圧が最終値Ｖ３未満である場合、処理はステップＳ２６２に移行される。ステップＳ２６０により、最終値Ｖ３を超える電圧の印加を抑止することができ、メモリセルＭＣの信頼性が低下する可能性を低減できる。
【００９２】
ステップＳ２６２において、ステートマシン１２は、コントロールゲートＣＧに同じ電圧で４回の消去パルスを印加したか否かを判定する。同じ電圧で４回の消去パルスが印加された場合、処理はステップＳ２６４に移行され、同じ電圧で印加された消去パルスが４回未満の場合、処理はステップＳ２６６に移行される。なお、コントロールゲートＣＧに印加される電圧が消去パルスの印加毎に下げられる場合、ステップＳ２６２は削除され、ステップＳ２６０で印加電圧が最終値Ｖ３未満である場合、処理はステップＳ２６４に移行される。
【００９３】
ステップＳ２６４において、ステートマシン１２は、消去パルスの電圧を１ステップ（この例では、０．１２５Ｖ）下げ、処理をステップＳ２６６に移行する。
【００９４】
ステップＳ２６６において、ステートマシン１２は、セルアレイ１８内のメモリセルＭＣのコントロールゲートＣＧに消去パルスを印加する。消去パルスの印加により、セルトランジスタの閾値電圧は、低い側にシフトされる。ステップＳ２６６の後、処理はステップＳ２６８に移行される。
【００９５】
ステップＳ２６８において、ステートマシン１２は、図４に示したインクリメント信号ＩＮＣを出力し、レジスタＲ１の値を”１”増加させ、処理をステップＳ２７０に移行する。なお、図５で説明したように、消去パルスの数の代わりに消去パルスの印加時間の積算値を用いてステップ消去動作を制御する場合、ステップＳ２６８では、レジスタＲ１は、１つの消去パルスの印加時間を示すデータを順次に積算する。
【００９６】
ステップＳ２７０において、ステートマシン１２は、ＡＰＤＥ動作のために、図８に示したステップＳ１０２と同様にアドレスを初期化し、処理をステップＳ２７２に移行する。ＡＰＤＥ動作は、ステップＳ２７２、Ｓ２７４、Ｓ２７６、Ｓ２７８、Ｓ２８０により実行される。
【００９７】
ステップＳ２７２において、ステートマシン１２は、ベリファイ動作を実行する。ステップＳ２７２で実行されるベリファイ動作は、セルトランジスタの閾値電圧が、図７に示したＶＴ０（０Ｖ）を超えていることを確認するために実行される。
【００９８】
次に、ステップＳ２７４において、ステートマシン１２は、ベリファイ動作がパスしたか否か、すなわち、ベリファイ動作を実行したセルトランジスタの閾値電圧がＶＴ０（０Ｖ）を超えているか否かを判定する。ベリファイ動作がパスした場合、処理はステップＳ２７８に移行され、ベリファイ動作がフェイルした場合、処理はステップＳ２７６に移行される。
【００９９】
ステップＳ２７６において、ステートマシン１２は、ベリファイ動作がフェイルしたセルトランジスタの閾値電圧を負から正にするためにプログラム動作を実行し、処理をステップＳ２７２に移行する。
【０１００】
一方、ステップＳ２７８において、ステートマシン１２は、アドレスが最終アドレスか否か、すなわち、セルアレイ１８内の全てのセルトランジスタの閾値電圧が正の消去状態に設定されたか否かを判定する。アドレスが最終アドレスの場合、処理はステップＳ２８２に移行され、アドレスが最終アドレスでない場合、処理はステップＳ２８０に移行される。
【０１０１】
ステップＳ２８０において、ステートマシン１２は、図８に示したステップＳ１１２と同様にアドレスを更新し、処理をステップＳ２７２に移行する。
【０１０２】
ステップＳ２８２において、ステートマシン１２は、図８に示したステップＳ１０２と同様にアドレスを初期化し、処理を図９に示したステップＳ２０４に移行する。そして、閾値電圧がＶＴ２以下であることを判定するベリファイ動作、所定の電圧での消去パルスの印加およびＡＰＤＥ動作が、セルアレイ１８の全てのセルトランジスタの閾値電圧が値ＶＴ０から値ＶＴ２の範囲内に設定されるまで繰り返し実行される。
【０１０３】
図１１は、図６に示したソフトプログラム動作の例を示す。ソフトプログラム動作は、セルトランジスタに設定する閾値電圧が異なることを除き、図８に示したプリプログラム動作と同様である。
【０１０４】
まず、ステップＳ４０２において、ステートマシン１２は、図８に示したステップＳ１０２と同様にアドレスを初期化する。次に、ステップＳ４０４において、ステートマシン１２は、ベリファイ動作を実行する。ステップＳ４０４で実行されるベリファイ動作は、セルトランジスタの閾値電圧が、図７に示した消去状態の下限値である値ＶＴ１以上であることを確認するために実行される。
【０１０５】
次に、ステップＳ４０６において、ステートマシン１２は、ベリファイ動作がパスしたか否か、すなわち、ベリファイ動作を実行したメモリセルＭＣが消去状態であるか否かを判定する。ベリファイ動作がフェイルした場合、処理はステップＳ４０８に移行され、ベリファイ動作がパスした場合、処理はステップＳ４１０に移行される。
【０１０６】
ステップＳ４０８において、ステートマシン１２は、ベリファイ動作がフェイルしたメモリセルＭＣに対してセルトランジスタの閾値電圧を値ＶＴ１以上に設定するためにプログラム動作を実行する。ステップＳ４０８の後、処理はステップＳ４０４に移行され、ベリファイ動作が再び実行される。
【０１０７】
一方、ステップＳ４１０において、ステートマシン１２は、アドレスが最終アドレスか否か、すなわち、セルアレイ１８内の全てのメモリセルＭＣが消去状態に設定されたか否かを判定する。アドレスが最終アドレスの場合、ソフトプログラム動作は終了し、アドレスが最終アドレスでない場合、処理はステップＳ４１２に移行される。ステップＳ４１２において、ステートマシン１２は、図８に示したステップＳ１１２と同様にアドレスを更新し、処理をステップＳ４０４に移行する。
【０１０８】
図１２は、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す。この例では、開始電圧は、図５に示した値Ｖ１（−５．２Ｖ）または値Ｖ２（−９．２Ｖ）である。図１２において、符号ＥＲＳは、消去コマンドが半導体メモリＭＥＭ２に供給され、消去動作が実行されることを示す。図１２において、レジスタＲ１の値および記憶部１４の値は、各消去動作の完了後の値を示し、レジスタＲ２の値は、各消去動作の開始前の値を示す。
【０１０９】
消去動作の完了後、図９に示したステップＳ２１２、Ｓ２１４において、第２制御部１２２は、消去動作でメモリセルＭＣに印加した消去パルスの数が、記憶部１４に保持された回数より多い場合、消去パルスの数を記憶部１４に書き込む。ここで、消去動作でメモリセルＭＣに印加した消去パルスの数は、図１０に示したステップＳ２６８によりレジスタＲ１に保持され、記憶部１４に保持された回数は、図１０に示したステップＳ２５２によりレジスタＲ２に保持されている。
【０１１０】
例えば、消去動作後にレジスタＲ１に”８０回”が保持され、レジスタＲ２に”７０回”が保持されている場合、第２制御部１２２は、記憶部１３に保持された値（７０回）を”８０回”に書き換える（図１２（ａ））。
【０１１１】
図１２に示した１番目から５番目の消去動作では、記憶部１４からレジスタＲ２に読み出された回数が”１５０回”より少ないため、図１０に示したステップＳ２５８において、開始電圧は値Ｖ１に設定される（図１２（ｂ））。５番目の消去動作でメモリセルＭＣに印加された消去パルスの数（”１５５回”）は、ステップ消去動作の完了時に記憶部１４に書き込まれる（図１２（ｃ））。
【０１１２】
６番目の消去動作において、記憶部１４からレジスタＲ２に読み出された回数が”１５０回”以上のため、図１０に示したステップＳ２５６において、開始電圧は値Ｖ２に設定される（図１２（ｄ））。６番目の消去動作では、開始電圧が値Ｖ１より低い値Ｖ２に設定されるため、消去動作で印加された消去パルスの数（”６０回”）は、前回の消去動作で印加された消去パルスの数（”１５５回”）より少なくなる。このため、図９に示したステップＳ２１２の判定は、Ｎｏ（偽）となり、記憶部１４は書き換えられない（図１２（ｅ））。７番目から９番目の消去動作においても、記憶部１４は書き換えられない。このため、開始電圧は、値Ｖ１から値Ｖ２に変更された後、値Ｖ１に戻ることはない（図１２（ｆ））。すなわち、メモリセルＭＣの劣化が判定された後に、開始電圧が値Ｖ２から値Ｖ１に戻ることはなく、消去動作の時間が前回の消去動作に比べて長くなることはない。
【０１１３】
なお、消去動作が繰り返し実行されることにより、メモリセルＭＣがさらに劣化し、メモリセルＭＣに印加した消去パルスの数が、記憶部１４に保持された回数より多くなった場合、消去パルスの数は、記憶部１４に再び書き込まれる（図１２（ｇ））。
【０１１４】
図１３は、別の半導体メモリにおいて、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す。図１２と同様の動作については、詳細な説明は省略する。１番目から５番目の消去動作は、図１２と同様である。
【０１１５】
図１３に示す動作を実行する半導体メモリは、図４に示した第２制御部１２２は、比較部ＣＭＰを持たず、消去動作で印加された消去パルスの数は、消去動作の完了毎に記憶部１４に書き込まれる。このため、６番目の消去動作において、記憶部１４に保持された消去パルスの数（”１５５回”）は、メモリセルＭＣの劣化が判定された後の消去動作で印加された消去パルスの数（”６０回”）で上書きされる（図１３（ａ））。これにより、７番目の消去動作では、記憶部１４からレジスタＲ２に読み出された回数（”６０回”）は、”１５０回”より少なくなり、図１０に示したステップＳ２５８において、開始電圧は値Ｖ２から値Ｖ１に戻ってしまう（図１３（ｂ））。
【０１１６】
メモリセルＭＣが劣化したにも拘わらず、開始電圧が値Ｖ１に戻ることにより、７番目の消去動作で印加される消去パルスの数は、開始電圧が値Ｖ２での消去動作で印加される消去パルスの数に比べて増加する（図１３（ｃ））。すなわち、消去動作に掛かる時間は再び長くなり、消去パルスの数が”１５０回”以上になるため、開始電圧は値Ｖ１から値Ｖ２に再び設定される。この後、消去動作で印加される消去パルスの数は、減少と増加とを交互に繰り返す。
【０１１７】
以上、この実施形態においても、図１および図２に示した実施形態と同様に、消去動作においてメモリセルＭＣに印加される印加電圧がメモリセルＭＣの劣化の判定後に変更される場合に、消去動作の時間が長くなることを抑止できる。さらに、この実施形態では、比較部ＣＭＰは、消去動作で印加された消去パルスの回数と、記憶部１４に保持された消去パルスの回数とを比較する。書き込み部ＷＲは、消去動作で印加された消去パルスの回数が、記憶部１４に保持された消去パルスの回数以上であることを比較部ＣＭＰが示すときに、消去動作で印加された消去パルスの回数を記憶部１４に上書きする。これにより、記憶部１４に保持される消去パルスの回数が、保持している回数より少なくなることを抑止でき、メモリセルＭＣの劣化が判定された後に、減少と増加とを交互に繰り返すことを抑制できる。
【０１１８】
図１４は、半導体メモリの別の実施形態における制御部の例を示す。図３および図４に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１１９】
この実施形態の半導体メモリＭＥＭ３は、図４に示した第２制御部１２２の代わりに第２制御部１２２Ａを有する。半導体メモリＭＥＭ３のその他の構成は、図３に示した半導体メモリＭＥＭ２と同様である。すなわち、半導体メモリＭＥＭ３は、例えば、フラッシュメモリ等の不揮発性メモリである。半導体メモリＭＥＭ３の消去動作の仕様は、図５と同一または同様であり、半導体メモリＭＥＭ３の消去動作のフローは、図６および図８から図１１と同一または同様である。
【０１２０】
第２制御部１２２Ａは、レジスタＲ１、Ｒ２、Ｒ３、補正部ＣＲＣＴ、比較部ＣＭＰおよび書き込み部ＷＲを有する。レジスタＲ１、Ｒ２、比較部ＣＭＰおよび書き込み部ＷＲは、図４に示した第２制御部１２２のレジスタＲ１、Ｒ２、比較部ＣＭＰおよび書き込み部ＷＲと同様である。すなわち、第２制御部１２２Ａは、図４に示した第２制御部１２２に補正部ＣＲＣＴおよびレジスタＲ３を追加している。
【０１２１】
レジスタＲ１は、インクリメント信号ＩＮＣに応答して、消去動作時にコントロールゲートＣＧに印加される消去パルスの数を示すデータＥＰＮ０を”１”ずつ増加する。補正部ＣＲＣＴは、レジスタＲ１から出力されるデータＥＰＮ０および半導体メモリＭＥＭ３のチップ温度を示す信号ＣＴを受け、チップ温度に応じて、データＥＰＮ０に補正係数ｋを乗じてデータＥＰＮを求める（ＥＰＮ＝ＥＰＮ０×ｋ）。すなわち、データＥＰＮは、データＥＰＮ０が示す任意の温度での消去パルスの数を、基準温度（例えば、摂氏２５度）での消去パルスの数に補正した値を示す。
【０１２２】
信号ＣＴは、半導体メモリＭＥＭ３に設けられる温度センサから出力されてもよく、半導体メモリＭＥＭ３の外部に設けられる温度センサから出力されてもよい。なお、補正部ＣＲＣＴは、半導体メモリＭＥＭ３が搭載される基板の温度を示す信号ＣＴを、チップ温度を示す情報として受けてもよい。以下、チップ温度または基板の温度は、チップ温度ＣＴとも称される。
【０１２３】
例えば、チップ温度ＣＴと補正係数ｋとの関係を示す情報は、第２制御部１２２Ａ内に設けられるテーブルＴＢＬに格納され、補正部ＣＲＣＴは、テーブルＴＢＬを参照して補正係数ｋを求める。なお、補正部ＣＲＣＴは、テーブルＴＢＬの補正係数ｋを用いずに、式（１）を用いて、データＥＰＮを求めてもよい。
１＋（２５−ＣＴ）×０．００２  ‥‥（１）
比較部ＣＭＰおよび書き込み部ＷＲは、図４と同一または同様である。図１４に示す第２制御部１２２Ａでは、データＥＰＮ０は、摂氏２５度のチップ温度ＣＴを基準にして補正部ＣＲＣＴによりデータＥＰＮに補正される。例えば、チップ温度ＣＴが摂氏マイナス２０度で、データＥＰＮ０が示す消去パルスの数が”１３０”の場合、データＥＰＮが示す消去パルスの数は”１４３”になる。また、チップ温度ＣＴが摂氏１３０度で、データＥＰＮ０が示す消去パルスの数が”１３０”の場合、データＥＰＮが示す消去パルスの数は”１０４”になる。これにより、チップ温度ＣＴに拘わりなく、摂氏２５度に換算された消去パルスの数を記憶部１４に書き込むことが可能になる。
【０１２４】
図１５は、図１４に示した半導体メモリＭＥＭ３において、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の例を示す。図１２および図１３と同様の動作については、詳細な説明は省略する。例えば、図１５は、半導体メモリＭＥＭ３のチップ温度ＣＴが摂氏マイナス２０度の場合の例を示す。この場合、補正部は、例えば、図１４に示したテーブルＴＢＬを参照して、レジスタＲ１に保持された消去パルスの数に”１．１０”を乗じ、乗じた値をレジスタＲ３に格納する。
【０１２５】
この例では、図１５に示した５番目の消去動作において、補正部ＣＲＣＴで補正され、レジスタＲ３に格納された消去パルスの数（”１５４回”）は、レジスタＲ２に保持された回数（”１４３回”）より多いため、記憶部１４に上書きされる（図１５（ａ））。また、レジスタＲ３に格納された消去パルスの数（”１５４回”）は、図５に示した値Ｎ１（”１５０回”）より多いため、メモリセルＭＣの劣化が検出される。
【０１２６】
６番目の消去動作では、記憶部１４からレジスタＲ２に読み出された回数が、メモリセルＭＣの劣化を示す”１５０回”以上のため、図１０に示したステップＳ２５６において、開始電圧は値Ｖ２（この例では、−９．２Ｖ）に設定される（図１５（ｂ））。６番目の消去動作では、開始電圧が値Ｖ１より低い値Ｖ２に設定されるため、消去動作で印加された消去パルスの数（”６０回”）は、前回の消去動作で印加された消去パルスの数（”１４０回”）より少なくなる（図１５（ｃ））。
【０１２７】
一方、補正部ＣＲＣＴによる温度補正が行われない場合、５番目の消去動作でレジスタＲ１に保持される消去パルスの数は”１４０回”であるため、メモリセルＭＣの劣化は検出されない。そして、レジスタＲ１に保持される消去パルスの数が”１５０回”以上になる６番目以降の消去動作後に、メモリセルＭＣの劣化が検出され、開始電圧が値Ｖ１より低い値Ｖ２に設定される。したがって、補正部ＣＲＣＴによる温度補正が行われない場合、メモリセルＭＣが劣化しているにも拘わらず開始電圧が値Ｖ１に維持され、消去パルスの数は、開始電圧が値Ｖ２に設定される場合の消去パルスの数に比べて多くなる。この結果、消去動作に掛かる時間は、開始電圧が値Ｖ２に設定される場合の消去動作に掛かる時間に比べて長くなり、半導体メモリＭＥＭ３の性能が低下する。換言すれば、補正部ＣＲＣＴによる温度補正が行われることで、実際のメモリセルＭＣの劣化に応じて開始電圧を値Ｖ１から値Ｖ２に変更することができ、消去動作に掛かる時間を最適化でき、半導体メモリＭＥＭ３の性能が低下することを抑制できる。
【０１２８】
図１６は、図１４に示した半導体メモリＭＥＭ３において、図６に示した消去動作が繰り返し実行される場合の開始電圧の変化の別の例を示す。図１２、図１３および図１５と同様の動作については、詳細な説明は省略する。例えば、図１６は、半導体メモリＭＥＭ３のチップ温度ＣＴが摂氏１３０度の場合の例を示す。この場合、補正部は、例えば、図１４に示したテーブルＴＢＬを参照して、レジスタＲ１に保持された消去パルスの数に”０．８０”を乗じ、乗じた値をレジスタＲ３に格納する。
【０１２９】
この例では、図１６に示した９番目の消去動作において、補正部ＣＲＣＴで補正され、レジスタＲ３に格納された消去パルスの数（”１５２回”）は、レジスタＲ２に保持された回数（”１４４回”）より多いため、記憶部１４に上書きされる（図１６（ａ））。また、レジスタＲ３に格納された消去パルスの数（”１５２回”）は、図５に示した値Ｎ１（”１５０回”）より多いため、メモリセルＭＣの劣化が検出される。
【０１３０】
すなわち、メモリセルＭＣの劣化は、レジスタＲ１に格納された回数が”１５０”になる５番目の消去動作ではなく、レジスタＲ１に格納された回数が”１９０”になる９番目の消去動作で検出される。そして、１０番目の消去動作では、記憶部１４からレジスタＲ２に読み出された回数が”１５０回”以上のため、図１０に示したステップＳ２５６において、開始電圧は値Ｖ２（この例では、−９．２Ｖ）に設定される（図１６（ｂ））。１０番目の消去動作では、開始電圧が値Ｖ１より低い値Ｖ２に設定されるため、消去動作で印加された消去パルスの数（”８０回”）は、前回の消去動作で印加された消去パルスの数（”１９０回”）より少なくなる。
【０１３１】
一方、補正部ＣＲＣＴによる温度補正が行われない場合、５番目の消去動作でレジスタＲ１に保持される消去パルスの数は”１５０回”になり、メモリセルＭＣの劣化が検出される。但し、５番目の消去動作では、摂氏２５度のチップ温度ＣＴを基準にした消去パルスの数は、”１２０”回であるため、実際にはメモリセルＭＣは劣化していない。メモリセルＭＣが劣化していないにも拘わらず、６番目以降の消去動作では、開始電圧が値Ｖ１より低い値Ｖ２に設定され、メモリセルＭＣに過剰なストレスが印加される。この結果、メモリセルＭＣの劣化を早めてしまう。換言すれば、補正部ＣＲＣＴによる温度補正が行われることで、実際のメモリセルＭＣの劣化に応じて開始電圧を値Ｖ１から値Ｖ２に変更することができ、メモリセルＭＣに過剰なストレスが印加されることを抑制でき、半導体メモリＭＥＭ３の信頼性が低下することを抑制できる。
【０１３２】
なお、半導体メモリＭＥＭ３のチップ温度ＣＴが消去動作毎に異なる場合にも、摂氏２５度のチップ温度ＣＴを基準にした消去パルスの数に基づいて、開始電圧が値Ｖ１から値Ｖ２に変更される。例えば、半導体メモリＭＥＭ３のチップ温度ＣＴが摂氏マイナス２０度と摂氏１３０度とに繰り返し変化する場合にも、チップ温度ＣＴに拘わらず、摂氏２５度を基準とした消去パルスの数に変換された値がレジスタＲ３に書き込まれる。そして、レジスタＲ３から記憶部１４に書き込まれた値が”１５０回”以上になった後の消去動作では、開始電圧は値Ｖ２に設定される。この結果、図１５および図１６と同様に、実際のメモリセルＭＣの劣化に応じて開始電圧を値Ｖ１から値Ｖ２に変更することができ、メモリセルＭＣに過剰なストレスが印加されることを抑制できる。
【０１３３】
以上、この実施形態においても、図１および図２に示した実施形態と同様に、消去動作においてメモリセルＭＣに印加される印加電圧がメモリセルＭＣの劣化の判定後に変更される場合に、消去動作の時間が長くなることを抑止できる。また、図３から図１３に示した実施形態と同様に、記憶部１４に保持される消去パルスの回数が、保持している回数より少なくなることを抑止でき、メモリセルＭＣの劣化が判定された後に、減少と増加とを交互に繰り返すことを抑制できる。
【０１３４】
さらに、この実施形態では、補正部ＣＲＣＴは、セルトランジスタに印加した消去パルスの数を基準温度での消去パルスの数に補正し、比較部ＣＭＰは、補正した値に基づいて動作する。これにより、実際のメモリセルＭＣの劣化に応じて開始電圧を値Ｖ１から値Ｖ２に変更することができ、メモリセルＭＣに過剰なストレスが印加されることを抑制できる。
【０１３５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３６】
１０…入力部；１２…ステートマシン；１４…記憶部；１６…電圧生成部；１８…セルアレイ；２０…ロウデコーダ；２２…コラムデコーダ；２４…センスアンプ；２６…ライトアンプ；２８…データ入出力部；ＡＤ…アドレス信号；ＡＶ、ＡＶ２…印加電圧；ＡＶ１…初期電圧；ＢＬ…ビット線；ＣＧ…コントロールゲート；ＣＭＤ…コマンド信号；ＣＭＰ…比較部；ＣＮＴ…制御信号；ＣＮＴ１…第１制御部；ＣＮＴ２…第２制御部；ＣＲＣＴ…補正部；ＣＴ…チップ温度；ＤＴ…データ端子；ＥＰＮ０、ＥＰＮ…データ；ＦＧ…フローティングゲート；ＨＬＤ…保持部；ＩＮＣ…インクリメント信号；ＭＣ…メモリセル；ＭＤ１…第１モード；ＭＤ２…第２モード；ＭＥＭ１、ＭＥＭ２、ＭＥＭ３…半導体メモリ；Ｒ１、Ｒ２、Ｒ３…レジスタ；ＲＮ…データ；ＲＳＴ…リセット信号；ＳＬ…ソース線；Ｖ１…初期値；Ｖ３…最終値；ＷＬ…ワード線；ＷＮ…データ；ＷＲ…書き込み部
【図１】
2015018588.tif 000003
【図２】
2015018588.tif 000004
【図３】
2015018588.tif 000005
【図４】
2015018588.tif 000006
【図５】
2015018588.tif 000007
【図６】
2015018588.tif 000008
【図７】
2015018588.tif 000009
【図８】
2015018588.tif 000010
【図９】
2015018588.tif 000011
【図１０】
2015018588.tif 000012
【図１１】
2015018588.tif 000013
【図１２】
2015018588.tif 000014
【図１３】
2015018588.tif 000015
【図１４】
2015018588.tif 000016
【図１５】
2015018588.tif 000017
【図１６】
2015018588.tif 000018