(57)【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルが配列されたメモリセルアレイと、
前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに供給する印加電圧及び印加時間を制御する書込制御部とを具備し、
前記書込制御部は、データ消去後に行われる弱書き込み動作での書き込み制御において、前記メモリセルアレイ内の所定個のメモリセルに対しては、消去ベリファイ時に用いられる消去ベリファイ電圧を超えない第１の電圧で書き込みを行い、
前記所定個のメモリセル以外のメモリセルに対しては、前記所定個のメモリセルにおけるメモリセル１個当たりの書き込みの平均書き込み回数に応じて、前記消去ベリファイ電圧を超えない電圧で、かつ前記第１の電圧に所定の電圧増分を加えた第２の電圧、あるいは前記第１の電圧のいずれかを用いて書き込みを行うことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記書込制御部は、個々のメモリセルに対して前記書き込みで書き込んだデータが所望のデータになるまで、前記書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを繰り返すことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
複数の不揮発性メモリセルが配列され、第１のグループと第２のグループを有するメモリセルアレイと、
前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに対する印加電圧及び印加時間を制御する書込制御部とを具備し、
前記書込制御部は、データ消去後に行われる弱書き込み動作での書き込み制御において、前記第１のグループ内のメモリセルへ供給される第１の印加電圧及び印加時間を第１の書き込み条件に設定し、前記第１のグループ内のメモリセルを順次選択して書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを行い、さらに前記第１のグループ内のメモリセル全体の書き込みに要した時間に応じて、前記第１の印加電圧に所定の電圧増分を加えた第２の印加電圧あるいは前記第１の印加電圧のいずれか、及び印加時間を第２の書き込み条件に設定し、前記第２のグループ内のメモリセルを順次選択して書き込みと前記書き込みの検証とを行い、前記第１の印加電圧及び前記第２の印加電圧は、消去ベリファイ時に用いられる消去ベリファイ電圧を超えない電圧であることを特徴とする不揮発性半導体記憶装置。
【請求項４】
前記第１の書き込み条件で書き込みが行われる第１のグループ内のメモリセル全体の書き込み時間を、複数の分周回路で構成されたバイナリカウンタで書き込み電圧のパルス数をカウントすることにより測定し、かつ前記第１のグループ内のメモリセル数を２の累乗で表される個数に設定することによって、前記バイナリカウンタの出力の上位ビットが１つのメモリセル当たりの平均パルス数を表すようにしたことを特徴とする請求項３記載の不揮発性半導体記憶装置。
【請求項５】
前記書込制御部は、前記第１のグループ内のメモリセルに対する書き込み電圧の大きさを示す信号と、前記第１のグループ内のメモリセルに対し、書き込んだ書き込み回数を示す信号とを加算する加算回路と、この加算回路の出力に応じて前記第２のグループ内のメモリセルに対する書き込み電圧を出力する電圧変換回路とを有することを特徴とする請求項３記載の不揮発性半導体記憶装置。
【請求項６】
前記書込制御部は、前記第１のグループ内のメモリセルに対する書き込み電圧のパルス数をカウントする第１のバイナリカウンタをさらに有し、前記書き込み回数を示す信号は、前記第１のバイナリカウンタからの出力であることを特徴とする請求項５記載の不揮発性半導体記憶装置。
【請求項７】
前記書込制御部は、前記第２のグループ内のメモリセルに対する書き込み電圧のパルス数をカウントする第２のバイナリカウンタを含む制御回路をさらに有し、
前記制御回路には、前記第１のバイナリカウンタの出力と、前記第２のグループ内のメモリセルに対する書き込み電圧のパルス数と、前記第２のバイナリカウンタの出力とが入力され、前記制御回路は、これらの信号に応じて前記第２のグループ内のメモリセルに対する書き込み電圧の電圧増分を示す信号を生成することを特徴とする請求項６記載の不揮発性半導体記憶装置。
【請求項８】
前記書込制御部は、前記メモリセルアレイ内のメモリセルのデータを消去し、消去した全てのメモリセルに記憶されたデータが消去されていることを検証した後、メモリセルの閾値分布幅を縮小するために、メモリセル毎に書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを実行することを特徴とする請求項１乃至７のいずれか１項に記載の不揮発性半導体記憶装置。
【請求項９】
前記書込制御部は、アドレスを更新して個々のアドレスのメモリセルに対して書き込みを行うときに、ある初期条件で、書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを実行し、書き込んだデータが所望のデータになっていない場合には前記メモリセルに印加する電圧をステップアップしていくステップアップ書き込みを行う機能を具備し、所定のアドレスに達するまでは第３の電圧から前記ステップアップ書き込みあるいは前記第３の電圧で書き込みを行い、前記所定のアドレス以降は前記第３の電圧に所定の電圧増分を加えた第４の電圧から前記ステップアップ書き込みを行うことを特徴とする請求項１乃至８のいずれか１項に記載の不揮発性半導体記憶装置。
【請求項１０】
前記書込制御部は、アドレスを更新して個々のアドレスのメモリセルに対して書き込みを行うときに、ある初期条件で、書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを実行し、書き込んだデータが所望のデータになっていない場合には前記メモリセルに印加する電圧をステップアップしていくステップアップ書き込みを行う機能を具備し、所定のアドレスに達するまでは第３の電圧で、あるいは第３の電圧から第１のステップ幅でステップアップするステップアップ書き込みを行い、前記所定のアドレス以降は前記第３の電圧から第２のステップ幅でステップアップするステップアップ書き込みを行うことを特徴とする請求項１乃至８のいずれか１項に記載の不揮発性半導体記憶装置。
【請求項１１】
前記書込制御部は、アドレスを更新して個々のアドレスのメモリセルに対して書き込みを行うときに、ある初期条件で、書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを実行し、書き込んだデータが所望のデータになっていない場合には前記メモリセルに印加する電圧をステップアップしていくステップアップ書き込みを行う機能を具備し、所定のアドレスに達するまでは第３の電圧からステップアップする前記ステップアップ書き込みの上限電圧を第１の上限電圧に設定し、前記所定のアドレス以降は前記第３の電圧からステップアップする前記ステップアップ書き込みの上限電圧を前記第１の上限電圧より高い第２の上限電圧に設定することを特徴とする請求項１乃至８のいずれか１項に記載の不揮発性半導体記憶装置。
【請求項１２】
複数の不揮発性のメモリセルが配列されてなり、複数の前記メモリセルを有するブロックごとに分割されたメモリセルアレイと、
前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに対する印加電圧及び印加時間を制御する書込制御部と、
前記メモリセルアレイ内のメモリセルに対するデータの消去に際して、ブロック内の全てのメモリセルをまとめて消去するブロック単位でのデータの消去を複数ブロックについて同時に実行する消去制御部とを具備し、
前記書込制御部は、前記消去制御部による複数ブロックに対する同時消去後に行われる弱書き込み動作での書き込み制御において、メモリセル毎にメモリセルのデータが所望のデータになっているか否かの検証とメモリセルのデータを所望のデータにするための書き込みとを行う際に、消去を実行した各々のブロック内の所定個のメモリセルに対しては前記検証時に用いられる消去ベリファイ電圧を超えない第１の電圧で書き込みを行い、前記ブロック内の前記所定個のメモリセルを除く残りのメモリセルに対しては前記所定個のメモリセルにおけるメモリセル１個当たりの書き込みの平均書き込み回数に応じて、前記消去ベリファイ電圧を超えない電圧で、かつ前記第１の電圧に所定の電圧増分を加えた第２の電圧、あるいは前記第１の電圧のいずれかを用いて書き込みを行うことを特徴とする不揮発性半導体記憶装置。
【請求項１３】
複数の不揮発性のメモリセルが配列されてなり、複数の前記メモリセルを有するブロックごとに分割されたメモリセルアレイと、
前記個々のブロック内に形成されたダミーセルと、
前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに対する印加電圧及び印加時間を制御する書込制御部と、
前記メモリセルアレイ内のメモリセルに対するデータの消去に際して、ブロック内の全てのメモリセルをまとめて消去するブロック単位でのデータの消去を実行する消去制御部とを具備し、
前記書込制御部は、前記消去制御部によるブロック単位でのデータ消去後に行われる弱書き込み動作での書き込み制御において、メモリセル毎にメモリセルに記憶されたデータが所望のデータになっているか否かの検証と書き込みを行う際に、前記ダミーセルに対しては前記検証時に用いられる消去ベリファイ電圧を超えない第１の電圧で書き込み行い、前記ダミーセルにおけるダミーセル１個当たりの書き込みの平均書き込み回数に応じて、前記消去ベリファイ電圧を超えない電圧で、かつ前記第１の電圧に所定の電圧増分を加えた第２の電圧、あるいは前記第１の電圧のいずれかを書き込み電圧に設定し、前記ダミーセルが属するブロック内の残りの通常のメモリセルに対しては設定された前記書き込み電圧で書き込みを行うことを特徴とする不揮発性半導体記憶装置。
【請求項１４】
メモリセルに対して消去を行う第１ステップと、
前記メモリセルヘの第１の印加電圧及び印加時間を第１の書き込み条件に設定する第２ステップと、
第１のグループ内のメモリセルに対してメモリセルに記憶されたデータが所望のデータになっているか否かの検証を行い、前記データが所望のデータになっていない場合は、前記第１の書き込み条件にて前記メモリセルに対して書き込みを行った後、再び前記検証を行うことにより、前記メモリセルに記憶されたデータが所望のデータになるまで前記検証と前記書き込みとを繰り返すと共に、データが所望のデータになるまでの書き込み回数をカウントする第３ステップと、
前記第１のグループ内のメモリセルに対する前記書き込み回数に応じて、前記第１の印加電圧に所定の電圧増分を加えた第２の印加電圧あるいは前記第１の印加電圧のいずれか、及び印加時間をメモリセルヘの第２の書き込み条件に設定する第４ステップと、
前記第１のグループに属さない第２のグループ内のメモリセルに対して、メモリセルに記憶されたデータが所望のデータになっているか否かの検証を行い、所望のデータになっていない場合は、前記第２の書き込み条件にて前記メモリセルに対して書き込みを行った後、再び前記検証を行うことにより、前記メモリセルに記憶されたデータが所望のデータになるまで前記検証と前記書き込みとを繰り返す第５ステップと、
を具備することを特徴とする不揮発性半導体記憶装置のデータ消去方法。
【請求項１５】
前記第５ステップでは、前記書き込みが繰り返されるごとに、前記第２のグループ内のメモリセルへ供給される印加電圧がステップアップされることを特徴とする請求項１４記載の不揮発性半導体記憶装置のデータ消去方法。
【請求項１６】
前記所定個のメモリセルは、前記メモリセルアレイ内の第１の領域に配置されたメモリセルであり、前記所定個のメモリセル以外のメモリセルは、前記メモリセルアレイ内の第２の領域に配置されたメモリセルであり、前記所定個のメモリセル以外のメモリセルの数は前記所定個のメモリセルの数より多いことを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、不揮発性半導体記憶装置に係り、特にデータ消去後におけるメモリセルの閾値の分布幅を制御する機能を持つＮＯＲ型フラッシュメモリに関するものである。
【０００２】
【従来の技術】
ＮＯＲ型フラッシュメモリでは、電源の低電圧化と共に読み出しの高速化が求められている。これらを同時に実現するためには、メモリセルアレイにおける消去状態のメモリセルの閾値分布（消去分布）をいかに狭い範囲に制御するかがキーポイントとなる。
【０００３】
ＮＯＲ型フラッシュメモリにおけるメモリセルの閾値（以下セル閾値）の分布幅を縮小する手段として、消去動作の後に、ビット毎べリファイおよび弱書き込み（ウィークプログラム(Weak Program)）を行うことが考えられる。
【０００４】
前記ビット毎ベリファイは、ビット毎に行うベリファイである。前記弱書き込みは、通常の書き込みより書き込み量の少ない書き込みである。弱書き込みでは、メモリセルのゲートあるいはドレインにかけるバイアスを、通常の書き込みより低く抑えて閾値変化を小さく制御する。
【０００５】
次に、ＮＯＲ型フラッシュメモリにおける弱書き込み動作を説明する。
【０００６】
図２６（ａ）は、消去動作後におけるメモリセルアレイのセル閾値の分布を示す図である。図２６（ｂ）は、弱書き込み動作後におけるメモリセルアレイのセル閾値の分布を示す図である。
【０００７】
まず、消去動作によって、図２６（ａ）に示すように、セル閾値Ｖthの分布が消去べリファイ（Erase Verify）レベルＥＶより低くなる。その後、セル閾値Ｖthが過消去べリファイ（0ver Erase Verify）レベルＯＥＶより低いセルに対して弱書き込みを行う。これにより、図２６（ｂ）に示すように、セル閾値Ｖthを、消去べリファイレベルＥＶより低い範囲で過消去べリファイレベルＯＥＶより高くし、セル閾値Ｖthの分布幅をＯＥＶ＜Ｖth＜ＥＶの幅まで縮小する。
【０００８】
図２６（ｂ）に示したようなセル閾値Ｖthの分布幅を実現するためのシーケンスを図２７に示す。この図２７は、従来のビット毎べリファイ及び弱書き込みの動作を示すフローチャートである。
【０００９】
まず、セル閾値Ｖthの分布の上限が消去べリファイレベルＥＶとなるまで、消去動作を行う。続いて、セル閾値Ｖthの消去分布の下限を過消去べリファイレベルＯＥＶまで引き上げるために、ビット毎べリファイと弱書き込みを行う。ビット毎べリファイでは、セルのゲート印加電圧ＶgをＯＥＶに設定し、全てのセルについて順次にべリファイを行う。
【００１０】
ここで、べリファイ対象となるアドレスのセルのべリファイ結果がＯＫ（Ｖth≧ＯＥＶ）であれば、アドレスをカウントアップし、次のアドレスのセルにアクセスする。一方、前記べリファイ結果がＮＧ（Ｖth＜ＯＥＶ）であれば、前記セルに対して弱書き込みを行う。そして、前記アドレスのセルの閾値ＶthがＯＥＶ以上になるまで、ベリファイと弱書き込みを繰り返す。その後、全てのアドレスに対してベリファイ結果がＯＫとなったか否かを確認し、シーケンスを終了する。
【００１１】
前記弱書き込みでは、セル閾値Ｖthが消去べリファイレベルＥＶを越えないように、弱書き込み時にセルに印加するゲート電圧Ｖg、ドレイン電圧Ｖd、及び書き込み時間を設定する。
【００１２】
ところで、メモリチップの消去に要する時間は、セルの消去動作と前記セル閾値の分布幅を縮小するためのビット毎べリファイ及び弱書き込みまで含めた時間で定義される。このため、ビット毎べリファイと弱書き込みは、極力短時間で実行されることが要求される。従って、弱書き込み時におけるセルに対しての電圧印加時間は、通常の書き込み時と同程度の短時間（例えば１．５μsec）であることが望ましい。
【００１３】
一方、ＮＯＲ型フラッシュメモリにおけるホットエレクトロン書き込みの書き込み時間とメモリセルの閾値変化量との関係は、通常、図２８に示すようになっている。図２８は、縦軸にセル閾値Ｖthの変化量ΔＶth（Ｖ）を、横軸に書き込み時間（μsec）（対数）を取った場合のセルの書き込み特性を示す。この図では、セルのドレイン電圧Ｖdを５Ｖに固定し、書き込み時のゲート電圧Ｖgをパラメータとしている。
【００１４】
この書き込み特性は、書き込み時間の増大に応じてセル閾値Ｖthが増加する線形領域（≦１０μsec）から、セル閾値Ｖthの増加が徐々に小さくなる飽和領域へ変化している。
【００１５】
前述した弱書き込みは、１０μsec以下の短いパルスにて書き込みを行うので、前記書き込み特性中の線形領域の特性にしたがう。しかし、この線形領域の特性では、セル閾値の変化量ΔＶthがメモリセル間のばらつきや温度に大きく影響される。特に、前記セル閾値の変化量ΔＶthは温度依存性が大きい。
【００１６】
図２９は、図２８に示した書き込み特性中の線形領域の書き込みにおいて、セル閾値Ｖthを０Ｖから２Ｖまでシフトさせるのに必要な書き込み時間（書き込み所要時間）の温度依存特性を示す。
【００１７】
この温度依存特性から、書き込み時のゲート電圧Ｖgを固定したとき、１００℃と−４０℃では、セル閾値Ｖthを２Ｖシフトさせるのに必要な時間が最大１０倍以上も異なることがわかる。
【００１８】
この状況下で、図２７に示したビット毎べリファイ及び弱書き込みのシーケンスの実行を考える。
【００１９】
弱書き込みにより、セル閾値Ｖthが消去べリファイレベルＥＶを越えてはならない。このため、書き込み速度が速い低温で消去べリファイレベルＥＶを越えないように、弱書き込み時のゲート電圧Ｖgを設定する必要がある。しかし、このような設定を行うと、書き込み速度が遅い高温では、弱書き込みの所要時間が、書き込み速度が速い低温での所要時間の最大１０倍以上になってしまうことになる。
【００２０】
また、前述したようなデータ消去動作後のビット毎べリファイ及び弱書き込みの所要時間は、メモリチップ間のばらつきや、ブロック間のばらつきによっても変動する。前記ブロックは、一括して消去を行うことができるメモリセルの集合体であり、消去実行時の最小単位である。
【００２１】
【発明が解決しようとする課題】
前述したように従来の不揮発性半導体メモリでは、データ消去動作の後にビット毎べリファイ及び弱書き込みを行う際、セル閾値をシフトさせるのに必要な時間の温度依存性が大きいため、書き込み速度が遅い高温ではビット毎べリファイと弱書き込みに必要な所要時間が著しく長くなるという問題がある。
【００２２】
そこでこの発明は、前記問題点を解決すべくなされたものであり、メモリセルアレイ内の複数のメモリセルを順次選択してデータの書き込みを行う際、動作保証温度内の任意の温度条件で書き込みに必要な所要時間を短く抑えることができる不揮発性半導体記憶装置を提供することを目的とする。
【００２３】
【課題を解決するための手段】
この発明の第１の実施態様の不揮発性半導体記憶装置は、複数の不揮発性メモリセルが配列されたメモリセルアレイと、前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに供給する印加電圧及び印加時間を制御する書込制御部とを具備し、前記書込制御部は、データ消去後に行われる弱書き込み動作での書き込み制御において、前記メモリセルアレイ内の所定個のメモリセルに対しては、消去ベリファイ時に用いられる消去ベリファイ電圧を超えない第１の電圧で書き込みを行い、前記所定個のメモリセル以外のメモリセルに対しては、前記所定個のメモリセルにおけるメモリセル１個当たりの書き込みの平均書き込み回数に応じて、前記消去ベリファイ電圧を超えない電圧で、かつ前記第１の電圧に所定の電圧増分を加えた第２の電圧、あるいは前記第１の電圧のいずれかを用いて書き込みを行うことを特徴とする。
この発明の第２の実施態様の不揮発性半導体記憶装置は、複数の不揮発性メモリセルが配列され、第１のグループと第２のグループを有するメモリセルアレイと、前記メモリセルアレイ内のメモリセルに対するデータの読み出し、書き込み、消去の各動作に応じて、選択されたメモリセルに対する印加電圧及び印加時間を制御する書込制御部とを具備し、前記書込制御部は、データ消去後に行われる弱書き込み動作での書き込み制御において、前記第１のグループ内のメモリセルへ供給される第１の印加電圧及び印加時間を第１の書き込み条件に設定し、前記第１のグループ内のメモリセルを順次選択して書き込みと前記書き込みで書き込んだデータが所望のデータになっているか否かの検証とを行い、さらに前記第１のグループ内のメモリセル全体の書き込みに要した時間に応じて、前記第１の印加電圧に所定の電圧増分を加えた第２の印加電圧あるいは前記第１の印加電圧のいずれか、及び印加時間を第２の書き込み条件に設定し、前記第２のグループ内のメモリセルを順次選択して書き込みと前記書き込みの検証とを行い、前記第１の印加電圧及び前記第２の印加電圧は、消去ベリファイ時に用いられる消去ベリファイ電圧を超えない電圧であることを特徴とする。
【００２４】
このように構成された不揮発性半導体記憶装置によれば、メモリセルアレイ内の複数のメモリセルを順次選択してデータの書き込みを行う際、メモリセルのアドレス区分に応じて書き込み条件を変化させることにより、動作保証温度内の任意の温度条件において書き込みに必要な全体の所要時間を短く抑えることができる。
【００２５】
【発明の実施の形態】
以下、図面を参照してこの発明の実施の形態について説明する。
【００２６】
まず、この発明の概要についてＮＯＲ型フラッシュメモリを例にとり説明する。一般に、ＮＯＲ型フラッシュメモリにおいて、消去状態におけるメモリセルの閾値分布を狭めることは、低電源電圧での高速読み出しにつながる。そこで、閾値分布を狭めるために、ビット毎ベリファイと弱書き込みが行われている。しかし、弱書き込みにて行われる、１μsec 程度の短いホットエレクトロン書き込みは、セル閾値の変化に対する温度依存性が大きく、書き込みに必要な時間が温度によって大きく異なる。
【００２７】
そこでこの発明では、一括消去が可能な１つのブロック内のメモリセルアレイを、先にビット毎ベリファイ及び弱書き込みを行う第１のグループと、その後にビット毎ベリファイ及び弱書き込みを行う第２のグループの２つに分ける。このような分割をブロック毎に行い、ブロック毎に第１のグループと第２のグループを設定する。そして、前記第１のグループに対して行うビット毎ベリファイ及び弱書き込みをサンプル書き込み（第１の弱書き込み）とし、前記第２のグループに対して行うビット毎ベリファイ及び弱書き込みをメイン書き込み（第２の弱書き込み）とする。
【００２８】
前記サンプル書き込みは、ブロック内のメモリセルのうち、所定の少数のセル（前記第１のグループ）に対して書き込みを行うものである。このサンプル書き込みでは、書き込み時間（速度）に関連するパラメータ、例えば書き込み時のゲート電圧Ｖg（ワード線電位）が低めに設定されるとともに、このサンプル書き込み中の弱書き込み回数がカウントされる。
【００２９】
前記メイン書き込みは、前記ブロック内のメモリセルのうち、前記第１のグループを除いた残りの多数のセル（前記第２のグループ）に対して書き込みを行うものである。このメイン書き込みでは、前記サンプル書き込み中における弱書き込み回数のカウント結果に応じて、前記パラメータ（ゲート電圧Ｖg等）が変更され設定される。すなわち、その時の温度に対して適切なゲート電圧Ｖg等が選択される。
【００３０】
これにより、動作保証温度内の任意の温度条件において、データ消去動作後のビット毎べリファイ及び弱書き込みの実行に必要な時間を短く抑えることが可能になる。
【００３１】
［第１の実施の形態］
図１は、この発明の第１の実施形態のＮＯＲ型フラッシュメモリ（メモリチップ）の構成を概略的に示すブロック図である。
【００３２】
図１において、メモリセルアレイ１は、ＮＯＲ型フラッシュのメモリセルを構成するセルトランジスタが行列状に配置されてなる。ロウデコーダ２は、後述するアドレスコントローラ、データコントローラ（アドレス／データコントローラ）で指定されたロウアドレスをデコードして、メモリセルアレイ１内の行選択を行うものである。
【００３３】
カラムデコーダ３は、アドレス／データコントローラで指定されたカラムアドレスをデコードして、メモリセルアレイ１内の列選択を行うものである。前記カラムデコーダ３は、カラムスイッチ用のトランジスタを含む。
【００３４】
アドレス／データコントローラ４は、アドレス信号を受けて前記ロウデコーダ２にロウアドレスを供給するとともに、前記カラムデコーダ３にカラムアドレスを供給する。前記アドレス／データコントローラ４は、アドレスカウンタ４ａを含む。
【００３５】
センスアンプ（Ｓ／Ａ）５は、メモリセルアレイ１内の選択されたメモリセルに記憶されたデータの読み出しに際して、前記メモリセルからの読み出し電位を、リファレンスセルアレイ６内のリファレンスセルからの読み出し電位と比較することにより前記データを判定する。そして、センスアンプ（Ｓ／Ａ）５は、その判定結果を、前記アドレス／データコントローラ４に出力する。
【００３６】
昇圧回路（電源制御系）７は、前記カラムデコーダ３により選択されたセルトランジスタのドレインに印加すべきドレイン電圧Ｖdを、読み出し、書き込み、あるいは消去動作に応じて供給するものである。
【００３７】
レギュレータ８は、前記昇圧回路７の出力電圧を受け取り、前記ロウデコーダ２により選択されたセルトランジスタのゲート、及び前記カラムデコーダ３内のカラムスイッチ用トランジスタのゲートに印加すべきゲート電圧Ｖgを制御信号ＶGHに基づいて制御する。この例では、レギュレータ８は、制御信号ＶGHが“Ｈ”になると、ゲート電圧Ｖgが高くなるように制御する。
【００３８】
コマンドユーザインタフェース（ＣＵＩ）９は、外部からコントロールピン（図示せず）に入力される出力イネーブル信号ＯＥＢ、書き込みイネーブル信号ＷＥＢ、チップイネーブル信号ＣＥＢと、アドレスピン、データピンに入力される所定の信号により、読み出し、書き込み、消去などの命令を判定する。前記コマンドユーザインタフェース９は、これらの命令に基づいて書込制御部（Write State Machine ；ＷＳＭ）１０に制御信号を供給する。
【００３９】
前記書込制御部１０は、読み出し、書き込み、消去の各動作に応じて、前記昇圧回路７、レギュレータ８、及びアドレス／データコントローラ４を制御する。これにより、所定のメモリセルを選択させ、選択されたメモリセルに所定電圧を所定時間だけ印加させる。
【００４０】
さらに、前記書込制御部１０は、弱書き込みコントローラ１１を含む。この弱書き込みコントローラ１１は、前記アドレス／データコントローラ４内のアドレスカウンタ４ａから供給されるサンプルエンド信号SENDに基づいて、弱書き込み回数をカウントし前記制御信号ＶGHを出力する。前記サンプルエンド信号SENDは、後述する第１のグループのアドレスの終了を知らせる信号である。
【００４１】
ここで、メモリセルアレイ１は、図２に示すように、一括消去が可能な複数のブロックＢＫ１〜ＢＫｎに分割されている。さらに、ブロックＢＫ１〜ＢＫｎは、それぞれ第１のグループ（サンプルグループ）Ｇ１と第２のグループ（メイングループ）Ｇ２とに分割されている。
【００４２】
前記書込制御部１０は、メモリセルアレイ１内の複数のメモリセルを順次選択してデータの書き込みを行う際、前記第１のグループＧ１と第２のグループＧ２に対して次のような制御を行う。
【００４３】
まず、書込制御部１０は、セルの書き込み時間（速度）に関連するパラメータを第１の書き込み条件に設定し、第１のグループＧ１のメモリセルを順次選択してそれぞれ書き込みとべリファイを行うように制御する。前記パラメータは、例えばセルヘのゲート印加電圧及びドレイン印加電圧、セルヘの電圧印加時間などである。次に、書込制御部１０は、第１のグループＧ１のメモリセル全体の書き込みに要した時間に応じて、セルヘの印加電圧や電圧印加時間を変更した第２の書き込み条件を設定し、第２のグループＧ２のメモリセルを順次選択してそれぞれ書き込みとベリファイを行うように制御する。
【００４４】
このような制御機能の具体例としては、メモリセルアレイ１内のメモリセルを指定するためのアドレスを変更して複数のメモリセルを決められた順序にしたがって順次選択し、個々のアドレスのメモリセルに対してべリファイをパスするまで書き込みと書き込みべリファイを繰り返すビット毎べリファイ及び書き込みの動作を制御する機能である。さらに、所定のアドレスに達するまでは、書き込みの際に、第１の書き込み条件で書き込みを行い、前記所定のアドレス以降では第２の書き込み条件で書き込みを行うように制御する機能である。
【００４５】
ここで、前記ビット毎べリファイ及び書き込みは、例えばメモリセルアレイのデータを消去し、全てのセルが消去べリファイをパスした後、セルの閾値分布幅を縮小するためなどに用いられる。
【００４６】
次に、図３（ａ）、（ｂ）を用いて図１中の弱書き込みコントローラ１１について説明する。
【００４７】
図３（ａ）は、図１中の弱書き込みコントローラ１１の構成を示す回路図である。
【００４８】
この弱書き込みコントローラ１１は、３段の分周回路ＢＣ１〜ＢＣ３からなるバイナリカウンタ２１、２つの入力端子を持つナンドゲート２２１、２２２、及び３個のインバータ２３１、２３２、２３３からなる。
【００４９】
図３（ｂ）は、図３（ａ）中の分周回路ＢＣ１〜ＢＣ３の１段分の構成を示す回路図である。
【００５０】
この分周回路は、マスター・スレーブ型のフリップフロップ（Ｆ／Ｆ）回路からなる。ここでは、分周回路は、２つの入力端子を持つノアゲート２４１、２４２、４個のクロックドインバータ２５１〜２５４、およびインバータ２６が図示のように接続されてなる。このようなフリップフロップ（Ｆ／Ｆ）回路の動作は、よく知られているのでその詳述な説明は省略する。
【００５１】
図３（ａ）において、弱書き込み信号WPRGMDは弱書き込みを実行するときに“Ｈ”となる弱書き込みの実行を指示する信号であり、別の回路（図示せず）から供給される。サンプルエンド信号SENDは、前記第１のグループのアドレスの終了を知らせる信号であり、前記アドレスコントローラ４内のアドレスカウンタ４ａから出力される。前記SENDは、所定の少数のセル（前記第１のグループ）に対する弱書き込み回数をアドレスカウンタ４ａがカウントしている期間中（サンプル書き込み中）は“Ｌ”、その後は“Ｈ”となる。信号RESETは、分周回路をリセットする信号であり、別の回路（図示せず）から供給されて各分周回路ＢＣ１〜ＢＣ３のリセット端ＲＳＴに入力される。
【００５２】
図３（ａ）に示すように、前記信号SENDをインバータ２３３で反転した信号と信号WPRGMDは、ナンドゲート２２１にそれぞれ入力される。このナンドゲート２２１の出力信号およびそれをインバータ２３１で反転した信号は、バイナリカウンタ２１の初段分周回路ＢＣ１の相補的なクロック入力端ＣＬＫ、／ＣＬＫにそれぞれ入力される。
【００５３】
前記バイナリカウンタ２１の最終段の分周回路ＢＣ３の相補的な信号出力端のうちの一方の出力端ＯＵＴの出力信号、およびサンプルエンド信号SENDはナンドゲート２２２にそれぞれ入力される。さらに、このナンドゲート２２２の出力信号は、インバータ２３２で反転され、図１中のレギュレータ８に制御信号ＶGHとして供給される。前記制御信号ＶGHは、ゲート電圧Ｖgを適当な値に制御するために使用される。
【００５４】
前記バイナリカウンタ２１は、サンプルエンド信号SENDが“Ｌ”である期間に、弱書き込みを何回実行したかをカウントアップする。このカウントアップが所定の回数に達するまでは、バイナリカウンタ２１の出力端ＯＵＴの信号は“Ｌ”である。つまり、制御信号ＶGHは“Ｌ”である。
【００５５】
そして、バイナリカウンタ２１のカウントアップが所定の回数に達したときには、バイナリカウンタ２１の出力端ＯＵＴの信号は“Ｈ”になる。このとき、信号SENDも“Ｈ”になる。よって、制御信号ＶGHは“Ｈ”になる。
【００５６】
次に、図４（ａ）、（ｂ）を用いて図１中のレギュレータ８について説明する。このレギュレータ８には、図４（ａ）に示すＤ／Ａコンバータや、図４（ｂ）に示す電圧切換回路が用いられる。
【００５７】
図４（ａ）は、図１中のレギュレータ８の一例として用いられるＤ／Ａコンバータの回路図である。
【００５８】
このＤ／Ａコンバータは、電圧制御用のｐＭＯＳトランジスタＰ０、抵抗分圧回路、電圧比較回路ＣＰ、スイッチ用のｐＭＯＳトランジスタＰ１、及びレベルシフタＬＳからなる。
【００５９】
電圧制御用ｐＭＯＳトランジスタＰ０のソースは、昇圧電圧Ｖppが印加される昇圧電源ノードに接続されており、ドレインはＤ／Ａ変換出力ノードとなっている。抵抗分圧回路は、前記ｐＭＯＳトランジスタＰ０のドレインと接地ノードとの間に直列に接続された抵抗素子Ｒ１、抵抗素子Ｒ２および抵抗素子Ｒ３からなる。
【００６０】
電圧比較回路ＣＰの非反転入力端（＋）は、前記抵抗分圧回路における抵抗素子Ｒ２と抵抗素子Ｒ３との間の接続ノードに接続され、反転入力端（−）には基準電圧Ｖref が供給される。前記電圧比較回路ＣＰの出力端は、前記ｐＭＯＳトランジスタＰ０のゲートに接続されている。
【００６１】
スイッチ用ｐＭＯＳトランジスタＰ１は、前記ｐＭＯＳトランジスタＰ０のドレイン（Ｄ／Ａ変換出力ノード）と、抵抗素子Ｒ１と抵抗素子Ｒ２間の接続ノードとの間に接続されている。
【００６２】
レベルシフタＬＳは、制御信号ＶGHのレベルをシフトし、前記スイッチ用ｐＭＯＳトランジスタＰ１のゲートにレベルシフトした信号を印加する。前記レベルシフタＬＳは、制御信号ＶGHが“Ｈ”レベルのときに、スイッチ用ｐＭＯＳトランジスタＰ１をオフ状態に制御する。
【００６３】
図４（ａ）のＤ／Ａコンバータにおいて、制御信号ＶGHが“Ｌ”レベルのときには、スイッチ用ｐＭＯＳトランジスタＰ１はオン状態となり、抵抗素子Ｒ１の両端間は短絡されている。このとき、抵抗分圧回路における抵抗素子Ｒ２および抵抗素子Ｒ３の直列接続ノードの電圧（帰還電圧）Ｖf は基準電圧Ｖref より高くなる。よって、電圧比較回路ＣＰの出力電圧は高くなり、ｐＭＯＳトランジスタＰ０のオン抵抗は高い状態となる。これにより、この時のＤ／Ａ変換出力ノードの電圧ＶgはＶ0になる。
【００６４】
一方、制御信号ＶGHが“Ｈ”レベルのときには、スイッチ用ｐＭＯＳトランジスタＰ１はオフ状態になり、抵抗素子Ｒ１の両端間は短絡されなくなる。このとき、抵抗分圧回路の帰還電圧Ｖf は低くなり、電圧比較回路ＣＰの出力電圧は低くなる。よって、ｐＭＯＳトランジスタＰ０のオン抵抗は低い状態になる。これにより、Ｄ／Ａ変換出力ノードの電圧ＶgはＶ1になる。
【００６５】
また、図１中のレギュレータ８の他の例として、構成が簡単な電圧切換回路を用いてもよい。図４（ｂ）は、前記電圧切換回路の構成を示す回路図である。
【００６６】
この電圧切換回路では、電圧Ｖ0が印加される第１の入力ノードと、ゲート電圧Ｖgが出力される出力ノードとの間に、ｐＭＯＳトランジスタＰ０が接続されている。また、電圧Ｖ1が印加される第２の入力ノードと前記出力ノードとの間に、ｐＭＯＳトランジスタＰ１が接続されている。制御信号ＶGHは、ｐＭＯＳトランジスタＰ０のゲートに入力され、さらに前記制御信号ＶGHはインバータ回路ＩＶにより反転されてｐＭＯＳトランジスタＰ１のゲートに入力されている。
【００６７】
このような電圧切換回路では、制御信号ＶGHが“Ｌ”レベルのときに、ｐＭＯＳトランジスタＰ０がオン状態になり、ゲート電圧Ｖgとして電圧Ｖ0が出力ノードから出力される。一方、制御信号ＶGHが“Ｈ”レベルのときには、ｐＭＯＳトランジスタＰ１がオン状態になり、ゲート電圧Ｖgとして電圧Ｖ1が出力ノードから出力される。
【００６８】
次に、図１に示すフラッシュメモリの動作を説明する。
【００６９】
データの読み出し動作は、選択されたメモリセルからの読み出し電位と、リファレンスセルアレイ６内のリファレンスセルからの読み出し電位とをセンスアンプ５で比較することにより行われる。ビット毎べリファイ及び弱書き込みの動作は、例えば図５に示すようなフローチャートにしたがって行われる。
【００７０】
まず、図５のフローチャートの概要を説明する。書込制御部１０内の弱書き込みコントローラ１１は、弱書き込みを行うアドレスをブロック毎に第１のグループと第２のグループの２つのグループに分け、第１のグループのアドレスをサンプル書き込みのためのアドレスとして割り当てる。さらに、べリファイのデータを“０”に固定し、ゲート電圧Ｖgを過消去べリファイレベルＯＥＶに固定する。弱書き込みコントローラ１１は、第１のグループのアドレスに対するサンプル書き込み期間中に、弱書き込みを何回実行したかをカウントする。
【００７１】
そして、弱書き込みコントローラ１１は、前記サンプル書き込み期間中に実行した弱書き込み回数に応じて、制御信号ＶGHを出力し、第２のグループのアドレスに対するメイン書き込み期間中の弱書き込み時のゲート電圧Ｖgを設定する。その後、設定されたゲート電圧Ｖgを用いて、第２のグループのアドレスに対するメイン書き込みを行う。
【００７２】
次に、前述したようなサンプル書き込みによるサンプリング手法を用いた場合のビット毎べリファイ及び弱書き込みの動作シーケンスについて、図５に示すフローチャートを参照しながら詳細に説明する。
【００７３】
図５のフローチャートにおいて、基本的な動作シーケンスは図２７に示した従来例のフローチャートと変わらないが、SEND＝“Ｌ”（サンプル書き込み期間中）ならＶg＝ＶOで弱書き込みを実行し、SEND＝“Ｈ”（メイン書き込み期間中）ならＶg＝Ｖ1で弱書き込みを実行する点が異なる。
【００７４】
まず、セルに対して消去を行う（ステップＳ１）。この消去は、セルの閾値Ｖthの分布の上限が消去ベリファイレベルＥＶとなるまで行われる。
【００７５】
続いて、アドレスを“０”、弱書き込み回数Ｎを“０”に設定する。さらに、書き込み速度が速い条件（低温）で１回の弱書き込みにより、セルの初期閾値Ｖthがいくらであろうと、弱書き込み後の閾値Ｖthが消去べリファイレベルＥＶを超えないように、電圧ＶO（＝ゲート電圧Ｖg）を設定する（ステップＳ２）。
【００７６】
このままの条件で全てのセルに対して弱書き込みを行うと、書き込み速度が遅い条件（高温）下では、前記動作シーケンスが終了するまでに非常に長い時間がかかる。具体的には、例えば弱書き込みを実行する際、ある一つのアドレスのセルに着目すると、低温では数回の弱書き込みでべリファイ結果がＯＫになる場合でも、高温ではその１０倍の回数の弱書き込みを行わないとべリファイ結果がＯＫにならない場合がある。
【００７７】
そこで、まずサンプル書き込みを実行し、続いてこのサンプル書き込み期間中の弱書き込み回数に応じて設定されたゲート電圧を用いて、メイン書き込みを実行する。これにより、メイン書き込みの回数が非常に多くなって、前記動作シーケンスが終了するまでに非常に長い時間がかかるのを防止する。以下に、サンプル書き込みとメイン書き込みの手順を述べる。
【００７８】
第１のグループのアドレスが指定するセルに対し、前記サンプル書き込みとしてのベリファイ及び弱書き込みを以下のように実行する。ゲート電圧Ｖg ＝ＯＥＶでベリファイを行い（ステップＳ３）、ベリファイ結果がＮＧのときはゲート電圧Ｖg ＝ＶO で弱書き込みを行い、弱書き込み回数Ｎを１増加させる（ステップＳ４）。その後、再びゲート電圧Ｖg ＝ＯＥＶでベリファイを行う。このように、ベリファイ結果がＯＫになるまで、弱書き込み及びベリファイを繰り返す。
【００７９】
図３（ａ）中のバイナリカウンタ２１は、サンプル書き込み期間中（SEND＝“Ｌ”の期間中）に、実行した弱書き込み回数Ｎを保持する。すなわち、アドレスを更新しながら（ステップＳ５）、第１のグループの終了アドレスまでサンプル書き込みを実行し（ステップＳ６）、この期間の弱書き込み回数Ｎを求める。この弱書き込み回数Ｎから、前記第１のグループのセルに対する弱書き込み実行中の書き込み条件（温度）を推定できる。
【００８０】
サンプル書き込み終了後、弱書き込み回数Ｎに基づいて図１中のレギュレータ８を制御し、弱書き込みの回数が少なくなるように、ゲート電圧Ｖgを最適化して電圧Ｖ1 を設定する（ステップＳ７）。この場合、SEND＝“Ｈ”となり制御信号ＶGHが“Ｈ”になると、レギュレータ８は、ゲート電圧Ｖgをサンプル書き込み中よりも高くなるように（Ｖ1 ＞ＶO ）制御する。一方、制御信号ＶGHが“Ｌ”のままなら、ゲート電圧Ｖgをサンプル書き込み中と同じになるように（Ｖ1 ＝ＶO ）制御する。
【００８１】
続いて、第２のグループのアドレスが指定するセルに対し、前記メイン書き込みとしてのベリファイ及び弱書き込みを以下のように実行する。ゲート電圧Ｖg ＝ＯＥＶでベリファイを行い（ステップＳ８）、ベリファイ結果がＮＧのときはゲート電圧Ｖg ＝Ｖ1 で弱書き込みを行う（ステップＳ９）。その後、再びゲート電圧Ｖg ＝ＯＥＶでベリファイを行う。このように、ベリファイ結果がＯＫになるまで、弱書き込み及びベリファイを繰り返す。
【００８２】
前記ステップＳ８でベリファイ結果がＯＫのとき、アドレスを更新して（ステップＳ１０）、終了アドレスを越えていない場合、ステップＳ８に戻る。そして、第２のグループの終了アドレスまでメイン書き込みを実行する（ステップＳ１１）。前記メイン書き込みでは、サンプル書き込み終了後の残りのセルについて、ゲート電圧Ｖg ＝Ｖ1 で弱書き込みを実行することにより、弱書き込み回数を減少させることができるため、データ消去に伴って行われる弱書き込みに必要な時間の温度依存性を小さくできる。
【００８３】
その後、前記弱書き込みによって、セル閾値Ｖthが消去ベリファイレベルＥＶを越えていないか確認するために、すべてのセルに対してゲート電圧Ｖg ＝ＥＶで消去ベリファイを行う（ステップＳ１２）。ベリファイ結果がＮＧのときは、再びステップＳ１の消去動作に戻り、前記動作シーケンスを再び実行する。一方、ベリファイ結果がＯＫであるときは、ビット毎べリファイ及び弱書き込みの動作シーケンスを終了する。
【００８４】
前述したサンプル書き込みを用いた手法により、弱書き込み時の最適なゲート電圧Ｖ1 を得るには、各々の条件下におけるサンプル書き込み中の弱書き込み回数を予め推定しておく必要がある。これは、それぞれの条件下におけるメモリセルの弱書き込み特性（弱書き込み時間と閾値変化の関係）と、閾値幅縮小前の閾値分布の分布関数から得ることができる。以下に、その推定手法の概要を述べる。
【００８５】
説明を簡単にするために、弱書き込み特性の温度特性のみを考慮する。すると、ある温度下で１つのセルについての弱書き込み時間は初期の閾値のみに依存する。よって、図６に示すように、必要な弱書き込み回数によって、消去後の閾値分布を分割することができる。図６中の１〜ｎｉは、セルの閾値ＶthがＶth＞ＯＥＶとなるのに必要な弱書き込み回数を示す。Ｐ（Ｖｉ≦Ｖth＜Ｖｉ−１）を、閾値がＶｉ≦Ｖth＜Ｖｉ−１となる確率（分布関数）とすると、１つのセルに必要な弱書き込み回数の期待値ｎを計算することができる。閾値がＶｉ≦Ｖth＜Ｖｉ−１であるセルにはｎｉ回の弱書き込みが必要であるとすると、ｎは、
【００８６】
【数１】
0003854025.tif 000002
【００８７】
で表される。弱書き込みを行うセル数が増えれば、１つのセル当たりの平均弱書き込み回数はｎに近づく。
【００８８】
しかし、実際のシーケンスではセル単位ではなく、アドレス単位でセルを選択する。すなわち、１つのアドレスで例えば１ワード（１６セル）が選択され、同時に書き込みが実行される。これら１６セルは、初期の閾値が異なり、必要な弱書き込み回数も違う。あるアドレスにより３つのセルが同時に選択されたときのベリファイ結果を、例として図７に示す。
【００８９】
セル１は、初めから目的とする分布内に閾値があり、弱書き込みを行う前のベリファイでＯＫとなった。セル２は、１回目の弱書き込み後のベリファイでＯＫとなった。しかし、セル３は、３回目の弱書き込み後のベリファイでようやくＯＫとなった。よって、このアドレスは３回の弱書き込みで弱書き込みが終了したことになる。
【００９０】
このように、実際の弱書き込みにおける回数のサンプリングでは、１６セル中の最も書き込みの遅い（初期閾値の低い）セルに必要な弱書き込み回数が反映される。このことを考慮すると、１６セルのうちの少なくとも１つがｎｉ回で書き込まれる確率は、
【００９１】
【数２】
0003854025.tif 000003
【００９２】
で計算できる。なお、必要に応じてセルトランジスタのゲート長や書き込みバイアスのばらつきを考慮してもよい。
【００９３】
なお、図５に示したフローチャートでは、サンプル書き込み中に実行した弱書き込み回数に基づいて、セルのゲート電圧Ｖgを制御したが、このゲート電圧Ｖgに代えて、セルのドレイン印加電圧Ｖdや弱書き込み時間を制御してもよい。
【００９４】
また、サンプル書き込みの対象とするセル数（アドレス数）は、少ないほど望ましいが、あるセルの消去直後の閾値Ｖthの初期値が不明であるので、ある程度の個数が必要である。
【００９５】
また、前記第１の実施の形態では、図２に示すように、一括消去が可能なブロックＢＫ１〜ＢＫｎにおいて各々のブロックごとに、サンプル書き込みを行う対象セル（第１のグループ）Ｇ１を設定した。ブロック間の閾値のばらつきが小さく、セル特性が変わらない場合には、ブロックごとに対象セルを設定せず、図８に示すように、１つのブロックに設定した対象セルＧ１から得た弱書き込み回数に基づいて、残りのフラッシュメモリ全体のメモリセルに対してメイン書き込みを行うようにしてもよい。
【００９６】
なお、前記第１の実施の形態では、サンプル書き込み期間中の弱書き込み回数が所定値に達すると、メイン書き込み期間中にセルに印加するゲート電圧Ｖg を、サンプル書き込み期間中に印加するゲート電圧Ｖg より高い所定の一定電圧に設定した。しかし、サンプル書き込み期間中の弱書き込み回数に応じて、メイン書き込み期間中のゲート電圧Ｖg を可変設定することも可能であり、その一例を以下の第２の実施の形態において説明する。
【００９７】
［第２の実施の形態］
図９は、第２の実施の形態における弱書き込みコントローラおよびレギュレータの構成を示すブロック図である。前記弱書き込みコントローラおよびレギュレータでは、サンプル書き込み期間中の弱書き込み回数に応じて、メイン書き込み期間中にセルに印加するゲート電圧Ｖg を可変設定する制御が行われる。
【００９８】
図９において、図１中の弱書き込みコントローラ１１に相当するものとして、バイナリカウンタ４１およびデコーダ４２が設けられている。また、図１中のレギュレータ８に相当するものとして、Ｄ／Ａコンバータ４３が設けられている。
【００９９】
前記バイナリカウンタ４１は、図３（ａ）中に示したバイナリカウンタ２１と同様の構成である。前記バイナリカウンタ４１には、弱書き込み信号WPRGMD、サンプルエンド信号SEND、及びリセット信号RESET が入力される。
【０１００】
デコーダ４２は、前記バイナリカウンタ４１の各段の分周回路ＢＣ１〜ＢＣ３の出力信号をデコードする。Ｄ／Ａコンバータ４３は、昇圧回路４４から供給される電圧を受け取り、前記デコーダ４２からのデコード出力に応じて、電圧Ｖg を変更して出力する。
【０１０１】
なお、前記弱書き込み信号WPRGMDは、弱書き込みの実行状態となっている間は“Ｈ”となる。また、サンプルエンド信号SENDは、サンプル書き込み中には“Ｌ”、メイン書き込み中には“Ｈ”になる。また、リセット信号RESET は、弱書き込み回数のカウンタをリセットするときに“Ｈ”になる。
【０１０２】
次に、図１０を用いて、Ｄ／Ａコンバータ４３について詳細に説明する。
【０１０３】
図１０は、図９中のＤ／Ａコンバータ４３の構成を示す回路図である。
【０１０４】
このＤ／Ａコンバータ４３は、図４（ａ）に示したＤ／Ａコンバータに対して、以下のように変更されている。抵抗分圧回路における抵抗素子Ｒ1 〜Ｒ5 の数を増やして、抵抗短絡用ノード数（分圧数）を増やす。Ｄ／Ａ変換出力ノードと各抵抗短絡用ノードとの間に、それぞれ対応してスイッチ用ｐＭＯＳトランジスタ（例えばＰ1 〜Ｐ3 ）が接続され、各スイッチ用ｐＭＯＳトランジスタに対応してデコーダ４２からのデコード出力信号（例えばＶ1 〜Ｖ3 ）が供給される。デコード出力信号により、ｐＭＯＳトランジスタＰ1 〜Ｐ3 がスイッチングされ、Ｄ／Ａコンバータ４３の出力が制御される。なお、図１０において、図４中と同一部分には同一符号を付している。
【０１０５】
図１０のＤ／Ａコンバータにおいて、デコード出力信号Ｖ1 〜Ｖ3 がそれぞれ非活性レベル“Ｈ”のときには、スイッチ用ｐＭＯＳトランジスタＰ1 〜Ｐ3 はそれぞれオフ状態である。
【０１０６】
このとき、抵抗分圧回路における抵抗素子Ｒ4 および抵抗素子Ｒ5 の直列接続ノードの電圧（帰還電圧）Ｖf が基準電圧Ｖref 入力と等しくなるように電圧比較回路ＣＰの出力電圧が制御される。この結果、Ｄ／Ａ変換出力ノードの電圧Ｖg は、Ｒ1 〜Ｒ5 の直列抵抗とＲ5 の比で決まる値Ｖg0＝Ｖref ×（Ｒ1 ＋Ｒ2 ＋Ｒ3 ＋Ｒ4 ＋Ｒ5 ）／Ｒ5 になる。
【０１０７】
いま、デコード出力信号Ｖ1 〜Ｖ3 のうち、Ｖ1 のみが“Ｌ”レベルになると、スイッチ用ｐＭＯＳトランジスタＰ1 〜Ｐ3 のうちのＰ1 のみがオン状態になる。これにより、抵抗素子Ｒ1 の両端間が短絡される。この結果、Ｄ／Ａ変換出力ノードの電圧Ｖg は、Ｒ2 〜Ｒ5 の直列抵抗とＲ5 の比で決まる値Ｖg1＝Ｖref ×（Ｒ2 ＋Ｒ3 ＋Ｒ4 ＋Ｒ5 ）／Ｒ5 になり、前記Ｖg0よりも、Ｒ1 が短絡された分に応じてＶref ×Ｒ1 ／Ｒ5 だけ低い値に制御される。
【０１０８】
これに対して、デコード出力信号Ｖ1 〜Ｖ3 のうち、Ｖ2 のみが“Ｌ”レベルになると、スイッチ用ｐＭＯＳトランジスタＰ1 〜Ｐ3 のうちのＰ2 のみがオン状態になる。これにより、Ｄ／Ａ変換出力ノードと抵抗素子Ｒ2 および抵抗素子Ｒ3 の直列接続ノードとの間の抵抗素子（抵抗素子Ｒ1 および抵抗素子Ｒ2 ）が短絡される。
【０１０９】
この結果、Ｄ／Ａ変換出力ノードの電圧Ｖg は、Ｒ3 〜Ｒ5 の直列抵抗とＲ5 の比で決まる値Ｖg2＝Ｖref ×（Ｒ3 ＋Ｒ4 ＋Ｒ5 ）／Ｒ5 になり、前記Ｖg1よりも、Ｒ2 が短絡された分に応じてＶref ×Ｒ2 ／Ｒ5 だけ低い値に制御される。
【０１１０】
これに対して、デコード出力信号Ｖ1 〜Ｖ3 のうち、Ｖ3 のみが“Ｌ”レベルになると、スイッチ用ｐＭＯＳトランジスタＰ1 〜Ｐ3 のうちのＰ3 のみがオン状態になる。これにより、Ｄ／Ａ変換出力ノードと抵抗素子Ｒ3 および抵抗素子Ｒ4 の直列接続ノードとの間の抵抗素子（抵抗素子Ｒ1 〜抵抗素子Ｒ3 ）の両端間が短絡される。
【０１１１】
この結果、Ｄ／Ａ変換出力ノードの電圧Ｖg は、Ｒ4 、Ｒ5 の直列抵抗とＲ5 の比で決まる値Ｖg3＝Ｖref ×（Ｒ4 ＋Ｒ5 ）／Ｒ5 になり、前記Ｖg2よりも、Ｒ3 が短絡された分に応じてＶref ×Ｒ3 ／Ｒ5 だけ低い値に制御される。
【０１１２】
次に、図９に示した弱書き込みコントローラおよびレギュレータの動作を説明する。
【０１１３】
信号WPRGMDをクロックとしてバイナリカウンタ４１を動作させることにより、弱書き込み回数をカウントする。サンプル書き込みが終了した後は、信号SENDが“Ｈ”になっているので、バイナリカウンタ４１の入カクロックは“Ｌ”レベルで固定である。したがって、バイナリカウンタ４１がリセットされるまでは、サンプル書き込み時の弱書き込み回数がバイナリカウンタ４１に保持される。
【０１１４】
前記したように、バイナリカウンタ４１の各段の分周回路ＢＣ１〜ＢＣ３の出力信号はデコーダ４２に入力してデコードされ、そのデコーダ４２のデコード出力に応じてＤ／Ａコンバータ４３の出力電圧（ゲート電圧Ｖg ）が変化する。このようにして、ゲート電圧Ｖg は、複数の電圧値の中から選択され設定されることになる。
【０１１５】
［第３の実施の形態］
前述した第２の実施の形態のように、サンプル書き込み期間中の弱書き込み回数に応じてメイン書き込み期間中にセルに印加するゲート電圧Ｖg を可変設定する場合、サンプル書き込み期間中の弱書き込み回数とメイン書き込みのゲート電圧をどう関係づけるかが重要である。この第３の実施の形態では、サンプル書き込みを行うアドレスの個数を２の累乗で表される数にすることにより、サンプル書き込みにおけるアドレス１個当たりの平均弱書き込み回数を導出し、簡単にメイン書き込み時のゲート電圧を設定することが可能になる。
【０１１６】
図１１は、第３の実施の形態における弱書き込みコントローラおよびレギュレータの構成を示すブロック図である。前記弱書き込みコントローラおよびレギュレータでは、サンプル書き込み期間中の弱書き込み回数に応じて、メイン書き込み期間中にセルに印加するゲート電圧Ｖg を可変設定する制御が行われる。
【０１１７】
図１１において、図１中の弱書き込みコントローラ１１に相当するものとして、バイナリカウンタ５１および加算器５２１〜５２４が設けられている。前記バイナリカウンタ５１は、分周回路ＢＣ１〜ＢＣ７を有している。前記分周回路ＢＣ１〜ＢＣ７と加算器５２１〜５２４との間には、アンドゲートＡＤ１〜ＡＤ４が接続されている。
【０１１８】
ナンドゲート５３の第１入力端には弱書き込み信号WPRGMDが入力され、その第２入力端にはインバータ５４を経てサンプルエンド信号SENDが入力され、さらにその第３入力端には分周回路ＢＣ７の／ＯＵＴ端子の出力が入力される。ナンドゲート５３の出力は、分周回路ＢＣ１のＣＬＫ端子に、またインバータ５５を経て分周回路ＢＣ１の／ＣＬＫ端子に入力される。
【０１１９】
また、図１中のレギュレータ８に相当するものとして、Ｄ／Ａコンバータ４３が設けられている。前記Ｄ／Ａコンバータ４３には、昇圧回路４４よりが昇圧電位が供給される。
【０１２０】
前記バイナリカウンタ５１は、サンプル書き込みの期間中、すなわちサンプルエンド信号SENDが“Ｌ”の間に、弱書き込み信号WPRGMDが“Ｈ”となった回数をカウントする。
【０１２１】
弱書き込み時にセルに印加するゲート電圧（Ｄ／Ａコンバータ出力値）Ｖgは、Ｄ／Ａコンバータ４３への４つの入力値Ａ〜Ｄで決まる。例えば、Ｄ／Ａコンバータ入力値とＤ／Ａコンバータ出力値との関係を図１２に示すように設定しておく。前記入力値Ａ〜Ｄは、入力信号ＩＮ１〜と入力信号ＩＮ２との和であり、加算器５２１〜５２４で生成される。
【０１２２】
前記入力信号ＩＮ１は、弱書き込みにおける最低のゲート電圧、すなわちサンプル書き込み時のゲート電圧を示すようなデジタル値である。例えば、図１２を参照して説明すると、サンプル書き込み時のゲート電圧が２．０Ｖである場合、入力信号ＩＮ１は（０、０、０、０）となり、ゲート電圧が２．５Ｖである場合、入力信号ＩＮ１は（０、０、０、１）となる。前記入力信号ＩＮ２は、弱書き込み回数を示す信号であり、メイン書き込み時におけるゲート電圧増分をあらわす。前記加算器は、図１３に示すように、パストランジスタＰＨ１〜ＰＨ４、インバータＩＶ１〜ＩＶ６を有する回路と、ナンドゲートＮＤ５〜ＮＤ８を有する回路とから構成されている。
【０１２３】
このように構成された回路において、サンプル書き込み時のアドレスの個数を２のｎ乗で記述できる数にしておく。すると、弱書き込み回数を示すバイナリカウンタ５１の出力（分周回路ＢＣ１〜ＢＣ７の出力）のうち、下位ｎビットの出力（分周回路ＢＣ１〜ＢＣｎの出力）を除いた値はちょうど１つのアドレスに対して行われる弱書き込みの平均書き込み回数となる。
【０１２４】
例えば、サンプル書き込みにおけるアドレスの個数を８（＝２３）個にしたときは以下のようになる。図１１に示すように、分周回路ＢＣ１〜ＢＣ７の出力のうち、分周回路ＢＣ１〜ＢＣ３の出力を除いた値、すなわち分周回路ＢＣ４〜ＢＣ７の出力は個々のアドレスに対して行われる弱書き込み回数の平均値となる。この場合、弱書き込み回数の平均値と入力信号ＩＮ２との関係は図１４に示すようになり、これらに対するゲート電圧の増分ΔＶgも図１４に示すように設定することができる。
【０１２５】
以上説明したように、サンプル書き込みを行うアドレス数を２ｎ個とし、メイン書き込み時のゲート電圧増分を設定するための信号として、前記バイナリカウンタ５１の上位ビット（（ｎ＋１）ビット以上）の出力を使用する。これにより、メイン書き込みにおけるゲート電圧増分の最適化が極めて容易になる。なお、図１１に示す回路では、サンプル書き込み期間中は、増分を反映させないように、アンドゲートＡＤ１〜ＡＤ４が接続されている。
【０１２６】
［第４の実施の形態］
前記サンプル書き込みにおいて、図１中のアドレスコントローラ４内のアドレスカウンタ４ａが予め設定されたアドレスに到達した時点でアドレスの終了を知らせる信号SENDを出力させることにより、フラッシュメモリ全体の構成を最も簡単にすることができる。
【０１２７】
図１５（ａ）は、第４の実施の形態で使用されるアドレスコントローラの構成を示す回路図である。ここでは、１０２４本のワード線を有するメモリセルアレイにおいて、ワード線をカウントする場合を例に取り説明する。
【０１２８】
図１５（ａ）において、７０ｉ（i=0〜8）はアドレスカウンタ、信号RESETはアドレスカウンタ７０ｉのカウントをリセットするリセット信号、信号ADDPAD<i>（i=0〜8）はチップ外部から入力されるアドレス信号、信号SELECTは入力されたアドレス信号を選択するアドレス選択信号、信号ADD<i>（i=0〜8）はチップ内部で使用されるアドレス信号である。
【０１２９】
各アドレスカウンタ７０ｉにおいて、端子ADVINはクロック信号ＣＫが入力されるクロック入力端、端子CARRYINは桁繰り上げを示すキャリー信号CARRYが入力されるキャリー入力端、端子CARRYOUTは前記キャリー信号を出力するキャリー出力端、アドレス信号信号ADD<i>（i=0〜8）はカウント値を示す信号であり、ロウデコーダ２に供給される。なお、アドレスカウンタは、行アドレスに対応するカウンタと列アドレスに対応するカウンタが設けられるが、ここでは行アドレスに対応するカウンタのみを示している。
【０１３０】
図１５（ｂ）は、図１５（ａ）中のアドレスカウンタ７０ｉの構成を示す回路図である。
【０１３１】
このアドレスカウンタは、クロック入力端ADVINに入力されるクロック信号と、キャリー入力端CARRYINに前段回路から入力されるキャリー信号との否定論理積を取るナンドゲート７１と、このナンドゲート７１の出力を反転させて信号ADVを出力するインバータ７２と、リセット信号RESET がリセット入力端に入力され、前記信号ADVにより反転動作するＦ／Ｆ回路７３と、前記Ｆ／Ｆ回路７３の出力およびチップ外部から入力するアドレス信号ADDPAD<i> のいずれか一方をアドレス選択信号SELECTにより選択してアドレス信号ADD<i>として出力するマルチプレクサ７４と、前記Ｆ／Ｆ回路７３の出力と前段回路からキャリー入力端CARRYIN に入力されるキャリー信号との否定論理積を取るナンドゲート７５と、このナンドゲート７５の出力を反転させてキャリー出力端CARRYOUTからキャリー信号CARRY を出力するインバータ７６とを有する。
【０１３２】
図１６は、図１５（ａ）のアドレスコントローラの動作を示すタイミング波形図である。
【０１３３】
図１５（ａ）のアドレスコントローラは、リセット信号RESETによりリセットされた後、クロック入力端ADVINに入力されるクロック信号をカウントアップする。そして、チップ外部から入力されるアドレス信号ADDPAD<0> 〜ADDPAD<8> と、各段のアドレスカウンタから出力される信号のいずれか一方を、アドレス選択信号SELECTにより選択してアドレス信号ADD<0>〜ADD<8>として出力する。
【０１３４】
図１７は、第４の実施の形態で使用されるアドレスコントローラ内のSEND信号を生成する回路の構成を示す回路図である。
【０１３５】
このSEND信号の生成回路では、Ｆ／Ｆ回路７７のリセット入力端にリセット信号RESET を入力し、セット入力端にキャリー信号CARRYを入力することにより、簡単な構成により信号SENDを生成することができる。例えば、前記キャリー信号入力として、行アドレスカウンタの３段目から出力されるキャリー信号CARRY<2>を用いれば、このキャリー信号CARRY<2>が“１”になるまでの４ワード線分のセルをサンプルとして使用することになる。
【０１３６】
次に、ブロック単位でのデータ消去が可能なフラッシュメモリに対して、SEND信号の生成回路を設ける場合について説明する。
【０１３７】
ＮＯＲ型フラッシュメモリには、メモリセルアレイが複数のメモリセルブロックに分割され、メモリセルアレイのセルに対するデータの消去に際して、ブロック内のセルの全てをまとめて消去するブロック単位でのデータの消去を実行するための消去制御部を具備するものがある。
【０１３８】
図１９（ａ）、図１９（ｂ）は、一括消去可能なブロック単位が６４Ｋバイト、３２Ｋバイトのそれぞれの場合のサンプル書き込みに用いられるワード線を示している。図１９（ａ）に示す６４Ｋバイトのブロックでは、ワード線ＷＬ１〜ＷＬ４を用いてサンプル書き込みが行われる。図１９（ｂ）に示す３２Ｋバイトのブロックでは、ワード線ＷＬ１〜ＷＬ８を用いてサンプル書き込みが行われる。
【０１３９】
ところで、同一のフラッシュメモリにおいて、アドレスによって消去単位が６４Ｋバイトであったり、８Ｋバイトであったりする変則ブロックが設定されているものがある。このようなフラッシュメモリでは、消去単位（ブロック単位）の違いによって１ワード線当たりのセル数が異なるため、図１７に示したような単純な構成のSEND信号生成回路に、行アドレスに対応するアドレスカウンタのキャリー出力信号を入力して信号SENDを生成すると、サンプル書き込みにおけるサンプルセル数が異なってしまうという問題が生じることがある。
【０１４０】
この問題を解決するためには、図１８に示すように構成されたSEND信号生成回路を用いて、行アドレスに対応するカウンタのキャリー出力信号ではなく、列アドレスに対応するカウンタのキャリー出力信号をバイナリカウンタ１００でカウントすることにより、信号SENDを生成するという手段を用いることができる。
【０１４１】
図１８に示すSEND信号生成回路において、バイナリカウンタ１００は図３（ａ）に示した第１の実施の形態に係る弱書き込みコントローラと同様に、分周回路ＢＣ１〜ＢＣ３を有している。
【０１４２】
初段の分周回路ＢＣ１のクロック入力端ＣＬＫには、列アドレスに対応するアドレスカウンタから出力されるキャリー出力信号（例えばCARRY<2>）が入力される。また、分周回路ＢＣ１のクロック入力端／ＣＬＫには、前記キャリー出力信号のインバータ１０１で反転された信号が入力される。
【０１４３】
そして、初段の分周回路ＢＣ１の出力と最終段の分周回路ＢＣ３の出力との否定論理積をナンドゲート１０２でとり、このナンドゲート１０２の出力がＳＲ型Ｆ／Ｆ回路１０３のセット入力端Ｓに入力される。リセット信号RESETは、インバータ１０４で反転され、前記ＳＲ型Ｆ／Ｆ回路１０３のリセット入力端Ｒに入力される。このＳＲ型Ｆ／Ｆ回路１０３の出力端Ｑの信号は、インバータ１０５で反転されて信号SENDとして出力される。
【０１４４】
なお、前記列アドレスに対応するアドレスカウンタのキャリー出力信号として、変則ブロックのうちの最小ブロックに含まれるカラム数に対応する回路段のキャリー出力信号（例えばCARRY<2>）を用いれば、分周回路の数を減らすことができる。但し、全てのブロックがこの最小変則ブロックの整数倍である必要がある。
【０１４５】
また、ＮＯＲ型フラッシュメモリの消去制御部により、消去単位の異なる複数ブロックに対して同時消去を行った後に、この発明に係る手法によりビット毎べリファイと書き込みを行うように制御してもよい。
【０１４６】
すなわち、例えば図１９（ｃ）に示すように、複数ブロックをまとめて消去するマルチブロック一括消去方式を採用した場合にも、図１８に示したSEND信号生成回路は有効である。
【０１４７】
図１９（ｃ）に示すように、６４Ｋバイトのメモリブロックを行方向に４等分したブロックＢＫ１〜ＢＫ４のうちの一部（例えば３つのブロックＢＫ１、ＢＫ３、ＢＫ４）のみを消去（変則ブロック消去）するときは、５本のワード線ＷＬ１〜ＷＬ５に対応するセル（３×５＝１５個）と１ブロックのカラムに対応するセル（１個）との合計（１６個）をサンプルとして使用する。
【０１４８】
［第５の実施の形態］
ＮＯＲ型フラッシュメモリでは、消去に要する時間が長い（１秒程度）ので、あるブロックの消去中に別のブロックの読み出しや書き込みが行えると都合がよい。そこで、ＮＯＲ型フラッシュメモリには、あるブロックの消去中に別のブロックの読み出しや書き込みを行うための動作モード（以下消去サスペンドモード）が設けられている。前記第４の実施の形態で説明した手法は、前記消去サスペンドモードにも適用させることができる。前記消去サスペンドモードに、前記第４の実施の形態の手法を適用した例を第５の実施の形態として説明する。
【０１４９】
前記消去サスペンドモードに、前記第４の実施の形態の手法を実施した場合、消去サスペンド中に温度が大きく変わると、消去サスペンド前にこの発明に係るサンプリング手法（サンプル書き込み）により最適化したゲート電圧Ｖg は消去サスペンド後には不適であることもあり得る。
【０１５０】
これに対処するには、消去サスペンド終了後にサンプル書き込みをやり直せばよく、このようなサンプル書き込みの制御は、図１８に示したSEND信号生成回路の出力信号SENDを使用すれば十分可能である。
【０１５１】
サンプル書き込みが終了し最適なゲート電圧Ｖg を設定した後に、消去サスペンドモードに入った場合は、消去サスペンドモードからの復帰後に新たにサンプル書き込みを実行し最適なゲート電圧Ｖg を設定すればよい。
【０１５２】
しかし、サンプル書き込みの実行中（弱書き込み回数のカウント中）に消去サスペンドモードに入った場合は、以下のような問題を生じる。この問題を図２０を用いて説明する。図２０は、消去サスペンドモードからの復帰後に、サンプル書き込みを実行した場合の各信号とアドレスとの関係を示す一例である。
【０１５３】
サンプル書き込みの実行中に消去サスペンドモードに入った場合は、キャリー信号の１ビット（１つの“０”あるいは“１”期間）に対応するアドレスの途中で消去サスペンドモードに入る場合がある。このような場合は、消去サスペンドモードから復帰したときのアドレスがキャリー信号の１ビットに相当するアドレスの途中に復帰する。このため、サンプル書き込みを新たに実行したとき、キャリー信号の最下位ビットに対応するアドレス数がその他のビットに対応するアドレス数と異なってしまう。この図２０では、キャリー信号の１ビットに対応する４個のアドレスのうち、３個目のアドレスに復帰した場合を示している。図２０からわかるように、キャリー信号の最下位ビットに対応するアドレス数だけ２個となり、その他のビットに対応するアドレス数は４個になっている。ここでは、キャリー信号の最下位ビットに対応するアドレス数が２個の場合を示したが、このアドレス数は消去サスペンドモードに入る直前のサンプル書き込みの状況によって異なる。この場合、アドレス数が２のｎ乗にならず、前記第３の実施の形態にて述べた手法によって、アドレス１個当たりの平均弱書き込み回数を算出するのが困難になってしまう。
【０１５４】
このような問題は、最初に入力するキャリー信号CARRY に対応するアドレスに対して行う弱書き込みの回数を、サンプル書き込みにおける弱書き込み回数のカウントから除くことによって解決することができる。すなわち、サンプル書き込みを行うサンプルセルとして無視すればよい。例えば、図２１に示すように論理構成されたサスペンド対応可能な弱書き込みコントローラを用いて、カウントされる書き込みパルスを制限することにより対処できる。
【０１５５】
図２１に示す弱書き込みコントローラにおいて、SEND信号生成回路１２１は図１８に示したマルチブロック一括消去方式に対応したSEND信号生成回路と同様の構成である。弱書き込みコントローラ１２２は、図３（ａ）に示した第１の実施の形態に係る弱書き込みコントローラにおいて入力側の二入力のナンドゲート２２１が三入力のナンドゲート１２３に変更されたものである。
【０１５６】
ナンドゲート１２４は、前記SEND信号生成回路１２１の各段の分周回路の出力端／Ｑからの出力の否定論理積をとる。このナンドゲート１２４の出力は、信号WPRGMD、SENDとともに前記弱書き込みコントローラ１２２の三入力のナンドゲート１２３に入力される。
【０１５７】
図２１に示す弱書き込みコントローラ１２２によれば、各段の分周回路の出力端／Ｑが全て“１”のとき、即ち、初段の分周回路のキャリー信号CARRY が発生するまでは、ナンドゲート１２４の出力を“０”に固定することによって、弱書き込みコントローラ１２２により弱書き込みの回数をカウントしないように制御することができる。
【０１５８】
これにより、キャリー信号の最下位ビットにおけるサンプル書き込み回数をカウントしないようにできるので、消去サスペンドモードが実行される環境においても、アドレス１個当たりの平均弱書き込み回数の算出を容易に行うことができる。
【０１５９】
［第６の実施の形態］
この第６の実施の形態では、サンプル書き込みのために専用に用いられるのダミーセルを設けた場合について説明する。第１〜第５の実施の形態では、弱書き込みを実行する際に、サンプル書き込みを行うセルとしてメモリセルアレイ内の通常のセル（実際に読み出しも行うセル）を用いている。そして、前記通常のセルのうち、所定の少数セルに対してサンプル書き込みを行い、温度条件によって大きく変わる書き込み時間を検知している。
【０１６０】
ここで、複数のセルをサンプル書き込みの対象として用いるのは、たとえ書き込みの遅い温度条件でも消去直後の初期閾値Ｖthが過消去ベリファイレベルＯＥＶ近傍に存在する場合には、非常に少ない回数の弱書き込みによりべリファイをパスしてしまうことがあるからである。すなわち、弱書き込みを実行する目的は、図２６（ｂ）に示すように、消去分布において消去ベリファイレベルＥＶ〜過消去ベリファイレベルＯＥＶの範囲内に閾値Ｖthを収めることであり、例えばＥＶ〜ＯＥＶ内から最も離れた閾値Ｖthの小さいセルを選んでサンプル書き込みを行うようにすれば、サンプル書き込みを行うセル数は少数であってもよい。
【０１６１】
そこで、消去単位となる各ブロック中に、図示を省略するが、通常のセルとは別に、実際に読み出しを行わないサンプル書き込み専用のダミーセルを所望の行数だけ設ける。
【０１６２】
そして、ブロック消去後（例えば複数ブロックに対する同時消去後）に、ビット毎べリファイと弱書き込みを行う際、まず、ダミーセルに対して第１の書き込み条件で弱書き込みを行う。その後、前記弱書き込みに要した時間に応じてセルヘの印加電圧を変更した第２の書き込み条件を設定し、ダミーセルが属するブロック内の残りの通常のメモリセルに対して前記第２の書き込み条件でビット毎べリファイと弱書き込みを実行する。
【０１６３】
前記サンプル書き込み専用のダミーセルは、セルトランジスタのカップリング比やチャネル幅Ｗ／チャネル長Ｌなどの制御により、消去時の閾値電圧Ｖthが読み出しを行う通常セルより常に小さくなるように設定するとよい。通常セルより閾値電圧Ｖthが小さいダミーセルを形成するには、ダミーセルの制御ゲートと浮遊ゲート間のカップリング比を大きくするなどの方法がある。このようなダミーセルをサンプル書き込みに用いることにより、１個乃至数個のサンプリング数で書き込みの遅い温度条件を検知することが可能になる。
【０１６４】
［第７の実施の形態］
一般に、書き込み時間を短縮する方法として、ある１つのセルに書き込みを行う際に、書き込みパルス毎にゲート電圧Ｖg をステップアップしていく（少しずつ増加させて行く）書き込み方式がある。
【０１６５】
このステップアップ書き込みの一般的な方式は、以下のようなになる。あるアドレスのセルを選択し、書き込みべリファイをパスするまで書き込みとべリファイを繰り返す。ここで、べリファイ結果がＮＧになる毎に、各書き込み毎にゲート電圧Ｖg を所定のステップ幅ΔＶg （例えば０．５Ｖ）だけ加算して印加する。これにより、２回目以降の書き込みで、閾値電圧を十分に変化させることができる。
【０１６６】
第７の実施の形態は、前記ステップアップ書き込みを、前記第１の実施の形態乃至第６の実施の形態のいずれかのビット毎べリファイ及び弱書き込みに併用したものである。
【０１６７】
ここで、第７の実施の形態における動作の一例について、図２２に示すフローチャートおよび図２３に示すゲート電圧Ｖg の波形変化を参照しながら説明する。
【０１６８】
サンプル書き込み期間中は、ゲート電圧Ｖg を固定してビット毎にべリファイと弱書き込みを繰り返し（ステップＳ１〜Ｓ６）、書き込みパルスの総数（弱書き込み回数）Ｎをカウントする（ステップＳ４）。
【０１６９】
次に、サンプル書き込み終了後、メイン書き込みを以下のように実行する。まず、各アドレスの１回目の書き込み時のゲート電圧Ｖg （初期値）を、前記書き込みパルスの総数Ｎに応じてＶ1（Ｎ）に設定する（ステップＳ２１）。さらに、ゲート電圧Ｖg のステップアップ回数Ｍを“０”に設定する（ステップＳ２２）。このステップアップ回数Ｍは、弱書き込みを行う毎に１が加算され、弱書き込み時のゲート電圧Ｖgの設定に用いられる。
【０１７０】
続いて、ゲート電圧Ｖg ＝ＯＥＶでベリファイを行い（ステップＳ８）、ベリファイ結果がＮＧのときは、ゲート電圧Ｖg＝Ｖ1（Ｎ）＋Ｍ・ΔＶg で弱書き込みを行う（ステップＳ２３）。さらに、ステップアップ回数Ｍを１増加させる（ステップＳ２４）。その後、再びゲート電圧Ｖg ＝ＯＥＶでベリファイを行う。このように、ベリファイ結果がＯＫになるまで、弱書き込み及びベリファイを繰り返す。これにより、メイン書き込みでは、各弱書き込み毎に、図２３に示すように、ゲート電圧Ｖg を一定のステップ幅ΔＶg で増加させながら弱書き込みが行われる。
【０１７１】
前記ステップＳ８でベリファイ結果がＯＫのとき、アドレスを更新して（ステップＳ１０）、終了アドレスを越えていない場合、ステップＳ８に戻る。そして、第２のグループの終了アドレスまでメイン書き込みを実行する（ステップＳ１１）。前記メイン書き込みでは、サンプル書き込み終了後の残りのセルに対して、ゲート電圧Ｖg＝Ｖ1（Ｎ）＋Ｍ・ΔＶg で弱書き込みを実行することにより、弱書き込み回数をさらに減少させることができるため、データ消去に伴って行われる弱書き込みに必要な時間の温度依存性を小さくできる。
【０１７２】
その後、前記弱書き込みによって、セル閾値Ｖthが消去ベリファイレベルＥＶを越えていないか確認するために、すべてのセルに対してゲート電圧Ｖg ＝ＥＶで消去ベリファイを行う（ステップＳ１２）。ベリファイ結果がＮＧのときは、再びステップＳ１の消去動作に戻り、前記動作シーケンスを再び実行する。一方、ベリファイ結果がＯＫであるときは、ビット毎べリファイ及び弱書き込みの動作シーケンスを終了する。
【０１７３】
なお、この第７の実施の形態においては、サンプル書き込み期間中の書き込みパルスの総数Ｎに応じて、メイン書き込み期間中のゲート電圧Ｖg の初期値を変化させたが、ゲート電圧Ｖg の初期値だけでなく、ステップ幅ΔＶg も変化させてもよい。
【０１７４】
また、前記第７の実施の形態においては、サンプル書き込み期間中はゲート電圧Ｖg を固定したが、このサンプル書き込み期間中の弱書き込みにも前記ステップアップ書き込みを適用してもよい。即ち、所定のアドレスに達するまでは第１の初期条件からステップアップ書き込みを行い、それ以降は第２の初期条件からステップアップ書き込みを行うようにしてもよい。このようにすれば、ビット毎ベリファイ及び弱書き込みに要する時間をさらに短縮することができる。但し、サンプル書き込み期間中は書き込み条件の違いを明確化したいので、ステップアップ書き込みを行わない方が精度が高くなる。
【０１７５】
［第８の実施の形態］
前記第７の実施の形態で説明したステップアップ書き込みは、あるアドレスについてベリファイをパスするまで、各弱書き込みごとにセルに印加するゲート電圧をステップアップしていく手法である。この手法を用いる場合、ゲート電圧が高くなりすぎると、１回の弱書き込みで閾値が必要以上に高くなるオーバープログラムが起こる危険が生じる。このため、通常、設定されるゲート電圧に所定の上限電圧を設ける必要がある。
【０１７６】
ところが、書き込み速度は温度条件によって大きく変化するため、以下のような問題が生じる。書き込みの速い温度条件（低温）において書き込みを行うときに、オーバープログラムが起こらない程度にゲート電圧に低い上限電圧を設定した場合、書き込みの遅い温度条件（高温）で書き込みを行うと、書き込み時間が極端に長くなってしまう。一方、書き込みの遅い温度条件において書き込みを行うときに、書き込み時間が所定時間内におさまるように上限電圧を高く設定した場合、書き込みの速い温度条件で書き込みを行うと、オーバープログラムが起こる危険性がある。
【０１７７】
このような問題を対策した第８の実施の形態について以下に説明する。
【０１７８】
まず、書き込みを実行する複数のセルを２つのグループに分ける。そのうち少数のセルをもつグループに対してサンプル書き込みを実行する。この書き込みでは、ステップアップにより設定されるゲート電圧の上限電圧を低く、書き込みの速い条件でもオーバープログラムが起こらない程度に設定しておく。前記サンプル書き込みの際、サンプル書き込みの対象である全てのセルの弱書き込みに要した印加パルス数（弱書き込み回数）をカウントしておく。
【０１７９】
次に、メイン書き込みの実行前に、前記サンプル書き込みでカウントしたパルス数に応じて、メイン書き込みにおけるゲート電圧の上限電圧が設定される。そして、残りの多数のセルに対してメイン書き込みを実行する。
【０１８０】
次に、第８の実施に形態を実現するために用いられる弱書き込みコントローラ及びレギュレータについて説明する。
【０１８１】
図２４（ａ）、（ｂ）は、第８の実施の形態における弱書き込みコントローラ及びレギュレータの構成を示す回路図である。
【０１８２】
弱書き込みコントローラは、複数段の分周回路ＢＣ１〜ＢＣ４を有するサンプルカウンタ８１、複数段の分周回路ＢＣ５〜ＢＣ７を有するステップアップカウンタ８２、このステップアップカウンタ８２の出力と信号SENDとの論理積を取るアンドゲートＡＤ１〜ＡＤ３、これらアンドゲートの出力と信号ＩＮ１とを加算する加算器５２１〜５２４を有している。また、レギュレータは、Ｄ／Ａコンバータ４３を有している。このＤ／Ａコンバータ４３には、昇圧回路４４から昇圧電位が供給される。
【０１８３】
ナンドゲート８３の第１入力端には弱書き込み信号WPRGMDが入力され、その第２入力端にはインバータ８４を経てサンプルエンド信号SENDが入力され、さらにその第３入力端には分周回路ＢＣ４の/OUT端子の出力が入力される。ナンドゲート８３の出力は、分周回路ＢＣ１のCLK端子に、またインバータ８５を経て分周回路ＢＣ１の/CLK端子に入力される。
【０１８４】
前記サンプルカウンタ８１では、サンプル書き込み期間中の弱書き込み回数がカウントされ、その回数に応じた信号SAMPLE1〜信号SAMPLE3が分周回路ＢＣ２〜ＢＣ４の出力端OUTから出力される。
【０１８５】
信号SAMPLE1〜信号SAMPLE3、これらの反転信号、あるいは分周回路ＢＣ５〜ＢＣ７のOUT端子の出力STEP1〜STEP3がナンドゲート８６、８７、インバータ８８に図２４（ａ）に示すように入力される。これらナンドゲート８６、８７、インバータ８８の出力はナンドゲート８９に入力される。さらに、このナンドゲート８９の出力はノアゲート９０の第１入力端に入力され、その第２入力端には弱書き込み信号WPRGMDが入力される。ノアゲート９０の出力は、分周回路ＢＣ５のCLK端子に、またインバータ９１を経て分周回路ＢＣ５の/CLK端子に入力される。
【０１８６】
前記ステップアップカウンタ８２では、メイン書き込み期間中の弱書き込み回数がカウントされ、その回数に応じた信号STEP1〜STEP3が分周回路ＢＣ５〜ＢＣ７の出力端OUTから出力される。
【０１８７】
さらに、メイン書き込み時におけるゲート電圧増分をあらわす前記信号STEP1〜STEP3と、弱書き込みにおける最低のゲート電圧、すなわちサンプル書き込み時のゲート電圧である入力信号ＩＮ１とが加算器に入力される。これら加算器５２１〜５２４から出力される信号AOUT1〜AOUT4は、Ｄ／Ａコンバータ４３にそれぞれ入力される。このとき、Ｄ／Ａコンバータ４３の入力と出力との関係を予め設定しておくことにより、加算器５２１〜５２４から出力される信号AOUT1〜AOUT4に応じてステップ幅ΔＶgで増加させたゲート電圧Ｖg を出力する。なお、図２４に示す回路では、サンプル書き込み期間中は、増分を反映させないように、アンドゲートＡＤ１〜ＡＤ３が接続されている。
【０１８８】
このように構成された回路では、ノアゲートの第１入力端に入力されるナンドゲート８９の出力が“Ｈ”になったとき、弱書き込み信号WPRGMDにかかわらず、その出力は常に“Ｌ”となる。これにより、弱書き込み回数のカウントを停止させることで、ゲート電圧の上限電圧を設定する。
【０１８９】
この第８の実施の形態を適用した場合のゲート電圧の波形を図２５（ａ）、図２５（ｂ）に示す。
【０１９０】
以上説明したようにこの第８の実施の形態によれば、前記第７の実施の形態と同様にビット毎ベリファイ及び弱書き込みに要する時間を短縮できると共に、オーバープログラムの発生を防止することができる。
【０１９１】
前記第８の実施の形態では、サンプル書き込み期間中はゲート電圧を一定に固定しているが、サンプル書き込みでもゲート電圧をステップアップするようにしてもよい。また、第７の実施の形態と組み合わせて、メイン書き込み時のステップアップ初期電圧、ゲート電圧のステップ幅（変化量）、及び上限電圧を同時に変化させることも可能である。
【０１９２】
［第９の実施の形態］
前記各実施の形態では、サンプル書き込み期間中の書き込みパルスの総数（弱書き込み回数）Ｎに応じて、メイン書き込み期間中のゲート電圧Ｖg の最適化を行った。この発明は、サンプル書き込み期間中の書き込みパルスの総数Ｎを用いずに、サンプル書き込み期間中に書き込みパルス数の最も多かったセルの書き込みパルス数を用い、このパルス数に応じてメイン書き込み期間中のゲート電圧Ｖg の最適化を行うようにしてもよい。言い換えると、サンプル書き込み期間中の１アドレスに対する最大書き込みパルス数を保存しておき、その最大書き込みパルス数に応じてメイン書き込み期間中における最適なゲート電圧Ｖg を設定するようにしてもよい。
【０１９３】
この場合、書き込み速度が最も遅いセルの書き込みパルス数をカウントすることになるので、閾値Ｖthが著しく違うセルが存在しないことが条件である。これは、書き込み速度が最も遅いセルの書き込みパルス数に応じてゲート電圧Ｖg を設定すると、閾値Ｖthが著しく違うセルが存在する場合、セルによっては設定されたゲート電圧Ｖg が適せず、オーバープログラムなどが起きてしまう危険があるからである。また、この手法では、サンプル書き込み期間中の書き込みパルスの総数ではなく、１アドレスに対する最大書き込みパルス数をカウントするため、パルス数のカウントに必要な分周回路の数を減らすことができる。よって、分周回路の形成に必要なレイアウト面積を小さくできるという利点がある。
【０１９４】
なお、前記各実施の形態では、データ消去時のビット毎べリファイ及び弱書き込みについて説明したが、データ書き込みに際しても、前述したデータ消去時のべリファイ及び弱書き込みの実施形態に準じて適用し、一部のビットに対して書き込みを行った結果により、残りのビットの書き込み条件を設定することが可能である。但し、ワード単位（例えば１６ビット）のデータ書き込みに際しては、ビット数が少ないので、一部のビットをサンプルした結果により残りのビットの書き込み条件を決めたとしても、前述したブロック単位でのデータ消去時のビット毎べリファイ及び弱書き込みに比べて効果は少ない。
【０１９５】
【発明の効果】
以上述べたようにこの発明によれば、メモリセルアレイ内の複数のメモリセルを順次選択してデータの書き込みを行う際、動作保証温度内の任意の温度条件で書き込みに必要な所要時間を短く抑えることができる不揮発性半導体記憶装置を提供することが可能である。
【図面の簡単な説明】
【図１】この発明の第１の実施の形態のＮＯＲ型フラッシュメモリ（メモリチップ）の構成を概略的に示すブロック図である。
【図２】前記ＮＯＲ型フラッシュメモリが有するアドレス空間における第１のグループ及び第２のグループの状態を示す図である。
【図３】（ａ）は、図１に示したフラッシュメモリ内の弱書き込みコントローラの構成を示す回路図である。（ｂ）は、前記弱書き込みコントローラ内の１段分の分周回路の構成を示す回路図である。
【図４】（ａ）は、図１に示したフラッシュメモリ内のレギュレータの一例として用いられるＤ／Ａコンバータの回路図である。（ｂ）は、前記レギュレータの他の例として用いられる電圧切換回路の構成を示す回路図である。
【図５】図１に示したフラッシュメモリにおけるビット毎べリファイ及び弱書き込みの動作を示すフローチャートである。
【図６】消去後におけるメモリセルの閾値に関する分布を示す図である。
【図７】３つのセルが同時に選択されたときのベリファイ結果の一例を示す図表である。
【図８】前記ＮＯＲ型フラッシュメモリが有する別のアドレス空間における第１のグループの状態を示す図である。
【図９】この発明の第２の実施の形態における弱書き込みコントローラ及びレギュレータの構成を示すブロック図である。
【図１０】図９に示したＤ／Ａコンバータの構成を示す回路図である。
【図１１】この発明の第３の実施の形態における弱書き込みコントローラ及びレギュレータの構成を示すブロック図である。
【図１２】図１１に示したＤ／Ａコンバータの入力と出力との関係を示す図表である。
【図１３】図１１に示した弱書き込みコントローラ内の加算器の構成を示す回路図である。
【図１４】図１１に示した弱書き込みコントローラ及びレギュレータにおける加算器への入力信号ＩＮ２とゲート電圧Ｖｇ増分との関係を示す図表である。
【図１５】（ａ）は、この発明の第４の実施の形態で使用されるアドレスコントローラの構成を示す回路図である。（ｂ）は、前記アドレスコントローラ内のアドレスカウンタの構成を示す回路図である。
【図１６】図１５（ａ）に示したアドレスコントローラの動作を示すタイミング波形図である。
【図１７】図１５（ｂ）に示したアドレスコントローラ内のSEND信号生成回路の構成を示す回路図である。
【図１８】図１５（ｂ）に示したアドレスコントローラ内のマルチブロック一括消去に対応したSEND信号生成回路の構成を示す回路図である。
【図１９】この発明の第３の実施の形態でマルチブロック一括消去を行う際に通常ブロック消去時にサンプルとするセルアレイ、及び変則ブロック消去時にサンプルとするセルアレイの一例を示す図である。
【図２０】この発明の第５の実施の形態において消去サスペンドモードからの復帰後に、サンプル書き込みを実行した場合の各信号とアドレスとの関係の一例を示す図である。
【図２１】この発明の第５の実施の形態における弱書き込みコントローラ及びSEND信号生成回路の構成を示す回路図である。
【図２２】この発明の第７の実施の形態におけるビット毎べリファイ及び弱書き込みの動作を示すフローチャートである。
【図２３】この発明の第７の実施の形態の前記弱書き込みにおけるゲート電圧Ｖg の変化示す波形図である。
【図２４】（ａ）、（ｂ）は、この発明の第８の実施の形態における弱書き込みコントローラ及びレギュレータの構成を示す回路図である。
【図２５】（ａ）、（ｂ）は、この発明の第８の実施の形態の弱書き込みにおけるゲート電圧Ｖg の変化示す波形図である。
【図２６】（ａ）は、フラッシュメモリのメモリセルアレイの消去動作後におけるセル閾値の分布を示す図である。（ｂ）は、前記メモリセルアレイの弱書き込み動作後におけるセル閾値の分布を示す図である。
【図２７】従来のビット毎べリファイ及び弱書き込みの動作を示すフローチャートである。
【図２８】フラッシュメモリにおけるホットエレクトロン書き込みの書き込み時間とセルの閾値変化量との関係を示す図である。
【図２９】図２８に示した書き込み特性中の線形領域の書き込みにおいて、セル閾値を２Ｖシフトさせるのに必要な書き込み時間の温度依存特性を示す図である。
【符号の説明】
１…メモリセルアレイ
２…ロウデコーダ
３…カラムデコーダ
４…アドレスコントローラ／データコントローラ
４ａ…アドレスカウンタ
５…センスアンプ
６…リファレンスセルアレイ
７…昇圧回路（電源制御系）
８…レギュレータ
９…コマンドユーザインタフェース
１０…書込制御部（Write State Machine ；ＷＳＭ）
１１…弱書き込みコントローラ
【図１】
0003854025.tif 000004
【図２】
0003854025.tif 000005
【図３】
0003854025.tif 000006
【図４】
0003854025.tif 000007
【図５】
0003854025.tif 000008
【図６】
0003854025.tif 000009
【図７】
0003854025.tif 000010
【図８】
0003854025.tif 000011
【図９】
0003854025.tif 000012
【図１０】
0003854025.tif 000013
【図１１】
0003854025.tif 000014
【図１２】
0003854025.tif 000015
【図１３】
0003854025.tif 000016
【図１４】
0003854025.tif 000017
【図１５】
0003854025.tif 000018
【図１６】
0003854025.tif 000019
【図１７】
0003854025.tif 000020
【図１８】
0003854025.tif 000021
【図１９】
0003854025.tif 000022
【図２０】
0003854025.tif 000023
【図２１】
0003854025.tif 000024
【図２２】
0003854025.tif 000025
【図２３】
0003854025.tif 000026
【図２４】
0003854025.tif 000027
【図２５】
0003854025.tif 000028
【図２６】
0003854025.tif 000029
【図２７】
0003854025.tif 000030
【図２８】
0003854025.tif 000031
【図２９】
0003854025.tif 000032