(57)【要約】  不揮発性メモリ  （ＮＶＭ）（１４）を有する集積回路（１０）は、プログラム／消去サイクルの第１の部分間に複数の読取電流／電圧閾値のうちの第１の閾値を選択し、前記プログラム／消去サイクルの第２の部分間に複数の読取電流／電圧閾値のうちの第２の閾値を選択する閾値選択器（２８）を含み、複数の読取電流／電圧閾値のうちの第１の閾値と複数の読取電流／電圧閾値のうちの第２の閾値とは異なる。プログラム／消去サイクルの第１の部分は、プログラム／消去サイクルの第２の部分の前の適切な時期に発生する。複数の読取電流／電圧閾値のうちの第２の閾値は、複数の読取電流／電圧閾値のうちの第１の閾値より小さい。
2009518766.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ（ＮＶＭ）をプログラム／消去する方法であって、
第１の消去電圧を用いて前記ＮＶＭの少なくとも１部の消去動作を開始させること、
第１の読取電流／電圧閾値を選択すること、
前記ＮＶＭの少なくとも１部の第１の実際の読取電流／電圧を判定すること、
前記第１の実際の読取電流／電圧と前記第１の読取電流／電圧閾値とを比較すること、
前記第１の実際の読取電流／電圧が前記第１の読取電流／電圧閾値より低い場合、
少なくとも１つの消去パルスを前記ＮＶＭの少なくとも１部に印加するステップと、
第２の読取電流／電圧閾値を選択するステップと、
前記ＮＶＭの前記少なくとも１部の第２の実際の読取電流／電圧を判定するステップと、
前記第２の実際の読取電流／電圧と第２の読取電流／電圧閾値とを比較するステップと、
を実行すること、
前記第２の実際の読取電流／電圧が前記第２の読取電流／電圧閾値以上である場合、消去動作を完了すること、
を備え、第１の読取電流／電圧閾値と第２の読取電流／電圧閾値が異なる、方法。
【請求項２】
前記少なくとも１つの消去パルスが第１の複数の第１の消去パルスを備える、請求項１に記載の方法。
【請求項３】
前記第１の複数の第１の消去パルスはＮ個の消去パルスを備え、Ｎは前記ＮＶＭに記憶される値によって決定される、請求項２に記載の方法。
【請求項４】
前記第１の複数の第１の消去パルスのそれぞれは、近似的に第１の電圧を有する、請求項２に記載の方法。
【請求項５】
前記第２の実際の読取電流／電圧が、前記第２の読取電流／電圧閾値より低い場合、
第２の複数の第２の消去パルスを前記ＮＶＭの少なくとも１部に印加するステップ
を実行することをさらに備え、
前記第２の消去パルスのそれぞれは、近似的に第２の電圧を有し、前記第２の電圧は第１の電圧と異な、請求項４に記載の方法。
【請求項６】
前記第２の電圧は、前記第１の電圧より高い、請求項５に記載の方法。
【請求項７】
前記第２の複数は、前記第１の複数と同数である、請求項５に記載の方法。
【請求項８】
前記第２の複数に追加される前記第１の複数が消去パルスの所定の最大総数に達し、且つ前記第２の実際の読取電流／電圧が前記第２の読取電流／電圧閾値より低い場合、前記ＮＶＭは失敗したとみなされる、請求項５に記載の方法。
【請求項９】
前記第２の読取電流／電圧閾値が、前記第１の読取電流／電圧閾値より小さい、請求項１に記載の方法。
【請求項１０】
不揮発性メモリ（ＮＶＭ）を有する集積回路であって、
プログラム／消去サイクルの第１の部分間に複数の読取電流／電圧閾値のうちの第１の閾値を選択し、前記プログラム／消去サイクルの第２の部分間に複数の読取電流／電圧閾値のうちの第２の閾値を選択する閾値選択器
を備え、複数の読取電流／電圧閾値のうちの前記第１の閾値と、複数の読取電流／電圧閾値のうちの前記第２の閾値とは異なる、集積回路。
【請求項１１】
プログラム／消去サイクルの前記第１の部分は、プログラム／消去サイクルの前記第２の部分の前の適切な時期に発生し、複数の読取電流／電圧閾値のうちの前記第２の閾値は、複数の読取電流／電圧閾値のうちの前記第１の閾値より小さい、請求項１０に記載の集積回路。
【請求項１２】
プログラム／消去サイクルの第１の部分間に第１の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの前記第１の閾値とを比較する読取確認回路であって、前記プログラム／消去サイクルの第２の部分間に第２の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの前記第２の閾値とも比較する、読取確認回路
をさらに備え、前記読取確認回路が前記閾値選択器に連結される、請求項１０に記載の集積回路。
【請求項１３】
前記第１の実際の読取電流／電圧が、複数の読取電流／電圧閾値のうちの前記第１の閾値より低い場合に、少なくとも１つの第１の消去パルスを前記ＮＶＭに印加し、前記第２の実際の読取電流／電圧が、複数の読取電流／電圧閾値のうちの前記第２の閾値より低い場合に、少なくとも１つの第２の消去パルスを前記ＮＶＭに印加する、消去パルス発生器をさらに備える、請求項１２に記載の集積回路。
【請求項１４】
前記少なくとも１つの第１の消去パルスは、第１の電圧を有する第１の複数の消去パルスを備え、前記少なくとも１つの第２の消去パルスは、第２の電圧を有する第２の複数の消去パルスを備える、請求項１２に記載の集積回路。
【請求項１５】
前記第２の電圧は、前記第１の電圧より高い、請求項１４の集積回路。
【請求項１６】
不揮発性メモリ（ＮＶＭ）であって、
ＮＶＭアレイと、
複数の読取電流／電圧閾値を生成する手段と、
プログラム／消去サイクルの第１の部分間に複数の読取電流／電圧閾値のうちの第１の閾値を選択し、プログラム／消去サイクルの第２の部分間に複数の読取電流／電圧閾値のうちの第２の閾値を選択する手段と、
プログラム／消去サイクルの第１の部分間に第１の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの前記第１の閾値とを比較し、前記プログラム／消去サイクルの第２の部分間に第２の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの前記第２の閾値とを比較する手段と、
第１の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第１の閾値より低い場合に第１の複数の第１の消去パルスをＮＶＭアレイに供給し、第２の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第２の閾値より低い場合に第２の複数の第２の消去パルスをＮＶＭアレイに供給する手段と、
を備える、不揮発性メモリ（ＮＶＭ）。
【請求項１７】
プログラム／消去サイクルの前記第１の部分は、プログラム／消去サイクルの前記第２の部分の前の適切な時期に発生し、複数の読取電流／電圧閾値のうちの前記第２の閾値は複数の読取電流／電圧閾値のうちの前記第１の閾値より小さい、請求項１６に記載のＮＶＭ。
【請求項１８】
前記第１の複数の第１の消去パルスは第１の電圧を有し、前記第２の複数の第２の消去パルスは第２の電圧を有する、請求項１６に記載のＮＶＭ。
【請求項１９】
前記第２の電圧は、前記第１の電圧より高い、請求項１８に記載のＮＶＭ。
【請求項２０】
前記第２の複数は前記第１の複数と同数である、請求項１９に記載のＮＶＭ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリ、特に、不揮発性メモリをプログラムする／消去する方法および装置に関する。
【背景技術】
【０００２】
複数回、プログラムされ且つ消去されることのできる不揮発性メモリ（ＮＶＭ）は、通常幅広い用途で使用される。概して、ＮＶＭは、データ保持仕様を確実に満たしつつ実行可能な最大数のプログラム／消去サイクルを有する。
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明の１実施形態は、第１の消去電圧を用いてＮＶＭの少なくとも１部の消去動作を開始させることと、第１の読取電流／電圧閾値を選択することと、ＮＶＭの少なくとも１部の第１の実際の読取電流／電圧を判定することと、第１の実際の読取電流／電圧と第１の読取電流／電圧閾値とを比較することと、を含む不揮発性メモリ（ＮＶＭ）をプログラム／消去する方法に関する。第１の実際の読取電流／電圧が第１の読取電流／電圧閾値より低い場合、該方法は、少なくとも１つの消去パルスをＮＶＭの少なくとも１部に印加することと、第２の読取電流／電圧閾値を選択することと、ＮＶＭの少なくとも１部の第２の実際の読取電流／電圧を判定することと、第２の実際の読取電流／電圧と第２の読取電流／電圧閾値とを比較することと、をさらに含む。第２の実際の読取電流／電圧が第２の読取電流／電圧閾値より高い場合、消去動作が完了する。第１の読取電流／電圧閾値と第２の読取電流／電圧閾値は異なる。
【０００４】
別の実施形態では、少なくとも１つの消去パルスは、第１の複数の第１の消去パルスを備える。第１の複数の第１の消去パルスは、Ｎ個の消去パルスを含み、ＮはＮＶＭに記憶される値によって決定される。第１の複数の第１の消去パルスはそれぞれほぼ第１の電圧を有する。
【０００５】
さらに別の実施形態では、第２の実際の読取電流／電圧が第２の読取電流／電圧閾値より低い場合、該方法は、第２の複数の第２の消去パルスをＮＶＭの少なくとも１部に印加することをさらに含み、第２の消去パルスそれぞれは、ほぼ第２の電圧を有し、第２の電圧は第１の電圧と異なる。第２の電圧は第１の電圧より大きくすることができる。第２の複数は第１の複数と同数にすることができる。第２の複数に追加された第１の複数が消去パルスの所定の最大総数に達し、第２の実際の読取電流／電圧が第２の読取電流／電圧閾値より低い場合、ＮＶＭは失敗したとみなされる。
【０００６】
別の実施形態では、第２の読取電流／電圧閾値は第１の読取電流／電圧閾値より小さい。
別の実施形態は、プログラム／消去サイクルの第１の部分間に複数の読取電流／電圧閾値のうちの第１の閾値を選択し、プログラム／消去サイクルの第２の部分間に複数の読取電流／電圧閾値のうちの第２の閾値を選択する閾値選択器を含む不揮発性メモリ（ＮＶＭ）を有する集積回路に関し、複数の読取電流／電圧閾値のうちの第１の閾値と複数の読取電流／電圧閾値のうちの第２の閾値とは異なる。
【０００７】
別の実施形態では、プログラム／消去サイクルの第１の部分は、プログラム／消去サイクルの第２の部分の前の適切な時期に発生し、複数の読取電流／電圧閾値のうちの第２の閾値は、複数の読取電流／電圧閾値のうちの第１の閾値より小さい。
【０００８】
さらに別の実施形態では、集積回路はさらに、プログラム／消去サイクルの第１の部分間に第１の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの第１の閾値とを比較し、プログラム／消去サイクルの第２の部分間に第２の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの第２の閾値とを比較する読取確認回路をさらに含み、前記読取確認回路は前記閾値選択器に連結される。さらに別の実施形態では、集積回路はさらに、第１の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第１の閾値より低い場合に少なくとも１つの第１の消去パルスをＮＶＭに印加し、第２の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第２の閾値より低い場合に少なくとも１つの第２の消去パルスをＮＶＭに印加する消去パルス発生器を含む。さらに別の実施形態では、少なくとも１つの第１の消去パルスは、第１の電圧を有する第１の複数の消去パルスを含み、少なくとも１つの第２の消去パルスは第２の電圧を有する第２の複数の消去パルスを備える。第２の電圧は第１の電圧より高くすることができる。
【０００９】
別の実施形態は、複数の読取電流／電圧閾値を生成する手段と、プログラム／消去サイクルの第１の部分間に複数の読取電流／電圧閾値のうちの第１の閾値を選択する手段と、プログラム／消去サイクルの第２の部分間に複数の読取電流／電圧閾値のうちの第２の閾値を選択する手段と、プログラム／消去サイクルの第１の部分間に第１の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの第１の閾値とを比較し、プログラム／消去サイクルの第２の部分間に第２の実際の読取電流／電圧と複数の読取電流／電圧閾値のうちの第２の閾値とを比較する手段と、第１の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第１の閾値より低い場合に第１の複数の第１の消去パルスをＮＶＭアレイに供給し、第２の実際の読取電流／電圧が複数の読取電流／電圧閾値のうちの第２の閾値より低い場合に第２の複数の第２の消去パルスをＮＶＭアレイに供給する手段と、を備えるＮＶＭアレイを含む不揮発性メモリ（ＮＶＭ）に関する。
【００１０】
別の実施形態では、プログラム／消去サイクルの第１の部分は、プログラム／消去サイクルの第２の部分の前の適切な時期に発生し、複数の読取電流／電圧閾値のうちの第２の閾値は複数の読取電流／電圧閾値のうちの第１の閾値より小さい。別の実施形態では、第１の複数の第１の消去パルスは第１の電圧を有し、第２の複数の第２の消去パルスは第２の電圧を有する。さらに別の実施形態では、第２の電圧は第１の電圧より高い、さらに別の実施形態では、第２の複数は第１の複数と同数である。
【発明を実施するための最良の形態】
【００１１】
本発明は、貼付の図面に限定されず、例として示され、図面において同じ参照符号は同様の構成要素を指す。
当業者であれば、図面中の構成要素は簡潔化と明瞭化のために示されており、必ずしも等縮尺ではないことを理解するであろう。たとえば、図面中の構成要素のいくつかの寸法は、本発明の実施形態に関する理解を深める助けとして他の構成要素に対して誇張して描かれているかもしれない。
【００１２】
ＮＶＭセルのデータ保持能力は、ＮＶＭセルから取り出すことができるように、所定のデータ値が適切に記憶され続ける時間の量で定まる。ＮＶＭセルの持続時間は、ＮＶＭセルの状態を確実に変更できなくなるまでに実行可能なプログラム／消去サイクルの最大数である。１つまたはそれ以上のＮＶＭセルが試験中または使用中に故障したとき、ＮＶＭアレイの実行可能性を拡張するのに使用可能な多種多様な技術（たとえば、冗長性、エラー修正コードなど）があることに注目されたい。
【００１３】
ＮＶＭは、所望の精度でプログラムすることができる。多くのＮＶＭはバイト毎にプログラムされるが、別の実施形態は、ビット、ワード、ロングワード、セクタ、ブロック、または任意のその他の所望の単位毎にプログラムすることができる。ＮＶＭは、所望の精度で消去することができる。多くのＮＶＭはセクタ毎に消去されるが、別の実施形態は、ビット、ワード、ロングワード、セクタ、ブロック、または任意のその他の所望の単位毎に消去することができる。
【００１４】
単独のＮＶＭアレイ３０（図２を参照）が、第２群のカスタマによって要求される耐久性の最大仕様を満たしつつ、第１群のカスタマによって要求されるデータ保持の最大仕様を満たさなければならないとき、１つの問題が生じる。
【００１５】
１例として、第１群のカスタマは、製品の寿命期間中（たとえば、２０年間）記憶しておかねばならないソフトウェアコード、たとえば、プロセッサ１２に対する指示（図１を参照）を記憶する。上記製品の１例は、エンジン制御を実行するソフトウェアコードを記憶するためにＮＶＭを使用する自動車である。この第１群のカスタマは、ＮＶＭが多数のプログラム／消去サイクルを実行するように要求できない。本例では、ＮＶＭがソフトウェアコードを記憶する場合、ソフトウェアコードはいったん最初にＮＶＭに記憶されれば２度と消去および書き換えする必要がないかもしれない。ほとんどの用途では、自己修正ソフトウェアコードは通常使用されない。
【００１６】
第２の例として、第２群のカスタマは、比較的短期間（たとえば、１ヶ月〜５年）記憶しておく必要があるデータ値、たとえば、不揮発性だが変動可能なデータを記憶する。上記製品の１例は、エンジン調整情報を表すデータ値を記憶するためにＮＶＭを使用する自動車である。この第２群のカスタマは、ＮＶＭが多くのプログラム／消去サイクルを実行する（たとえば、自動車の点火システムがオフおよびオンになるたびに１プログラム／消去サイクル）ことを要求する。本例では、ＮＶＭがデータ値を記憶する場合、データ値は新たなプログラム／消去サイクルによってリフレッシュされるため、長いデータ保持時間を有する必要がない。
【００１７】
加えて、同じ用途で両方の種類のＮＶＭを要求するカスタマもいる。たとえば、上述の自動車のカスタマは、ソフトウェアコードに対して長いデータ保持を有するＮＶＭを必要とするとともに、頻繁に書き換えられるデータ値には長い持続時間を有するＮＶＭを必要とする。
【００１８】
図１は、本発明の１実施形態に係る集積回路（ＩＣ）１０のブロック図である。図示される実施形態では、ＩＣ１０は、プロセッサ１２、ＮＶＭ１４、任意の他のメモリ１６、１つまたはそれ以上の任意の他のモジュール１８、および任意の外部バスインタフェース２０を有し、そのそれぞれがバス２２に双方向に連結される。本明細書で使用されるように、バスという用語は、データ、アドレス、制御、または状態などの１つまたはそれ以上の各種情報を送信するのに使用可能な複数の信号または導体を指すために使用される。
【００１９】
いくつかの実施形態では、ＩＣ１０は独立型ＮＶＭで、回路１２、１６、および１８は実装されない。この場合、外部バスインタフェース２０は、ＮＶＭ１４用のアドレスおよびデータバスドライバを含む。別の実施形態では、ＩＣ１０は、マイクロコントローラ上で利用可能なただ１つの回路としてＮＶＭ１４を有するマイクロコントローラである。回路１２、１４、１６、１８、および２０のうちの任意の１つまたはそれ以上は、ＩＣ１０の外部と連通するのに使用可能な１つまたはそれ以上の集積回路端子（図示せず）と連結する。いくつかの実施形態では、外部バス２４は、ＩＣ１０の外部の回路（図示せず）と連通するのに使用される。他のメモリ１６は任意の種類のメモリである。他のモジュール１８は、所望の目的のために使用される回路を含む。他のモジュール１８内の回路のいくつかの例は、タイマ回路、通信インタフェース回路、ディスプレイドライバ回路、アナログデジタル変換器、デジタルアナログ変換器、電力管理回路などである。
【００２０】
図２は、本発明の１実施形態に係る図１のＮＶＭ１４のブロック図である。１実施形態では、ＮＶＭ１４はＮ個のブロックを有するＮＶＭアレイ４２を有し、Ｎは１以上の任意の整数である。破線はＮＶＭアレイ４２のブロックを示すために使用される。これらのブロックは任意のサイズである。各ブロックに対応する制御情報は、各ブロック内に記憶される。
【００２１】
ＮＶＭ１４は、制御回路３２、読取回路４０、確認レベル発生器２６、確認レベル選択器２８、読取確認回路３０、電圧発生器３６、電圧選択器４８、プログラム／消去パルス発生器６４、および他のＮＶＭ回路３８も含む。確認レベル発生器２６は、導体５１〜５３を介して複数の確認レベルを確認レベル選択器に供給する。確認レベル選択器２８は、制御回路３２から導体４４を介して受信された選択信号に基づき、導体４６を介してこれらの確認レベルのうちの１つを読取確認回路３０に供給する。読取回路４０はＮＶＭアレイ４２に双方向に連結され、導体６０を介して実際の読取電流を読取確認回路３０に供給する。読取確認回路３０は制御回路３２に双方向に連結され、導体６２を介して制御回路３２に確認結果を供給する。制御回路３２は、確認レベル発生器２６、他のＮＶＭ回路３８、電圧発生器３６、およびプログラム／消去パルス発生器６４に双方向に連結される。電圧発生器３６は、導体５４〜５６を介して複数の電圧を電圧選択器４８に供給する。電圧選択器４８は制御回路３２から導体５０を介して受信された選択信号に基づき、導体５８を介してこれらの電圧のうちの１つをプログラム／消去パルス発生器６４に供給する。制御回路３２は、プログラム／消去パルスカウンタ３４、電圧当り最大パルスカウント６８、および最大総パルスカウント７０を含む。電圧当り最大パルスカウント６８および最大総パルスカウント７０は、たとえば、制御回路３２内のレジスタなどの記憶回路、あるいはＮＶＭ１４またはＩＣ１０内のどこか別の場所などに記憶される。
【００２２】
プログラム／消去サイクルは、ＮＶＭアレイ４２の全部または１部のプログラミングあるいはＮＶＭアレイ４２の全部または１部の消去を含む。１実施形態では、消去はビットを論理レベル１に設定することを指し、プログラミングはＮＶＭアレイ４２に記憶される所望の情報を表すために、必要に応じて当該ビットを論理レベル１または論理レベル０に設定することを指す。１実施形態では、ＮＶＭアレイ４２の１部のプログラミングは、プログラムされる部分のすべてのビットをまず消去する消去サイクルと、次に、記憶される所望の情報を表すために変更する必要のあるビットの状態を（たとえば、論理レベル０に）変更することを含む。また、本明細書で使用されるように、プログラム／消去サイクルは、単なる消去動作を含むことができることに注目されたい。１実施形態では、ブロック全体を１度に消去するか、または、おおよそ１つのブロックを１度に消去する。また、別の実施形態では、消去は、論理レベル１ではなく論理レベル０にビットを設定することを指す。
【００２３】
ＮＶＭアレイ４２の１部をプログラミングまたは消去したあと、プログラム／消去サイクルが成功したかどうかを判定する確認が次に実行される。確認のため、プログラム／消去されたビットの読取が行われ、ビットが適切にプログラム／消去されたかどうかを判定するため確認レベルと比較される。たとえば、ＮＶＭアレイ４２での選択されたビットセルの適切な消去を確認するために、読取確認回路３０が使用される。読取回路４０は、確認される選択ビットセルを読み取るために使用される複数のセンス増幅器（図示せず）を含む。読取回路４０は、各選択されたビットセルを感知し、導体６０を介して実際の読取電流を読取確認回路３０に供給する。（回路と読取回路４０の動作は当該技術において既知であるので、ここではより詳細に説明しないことに注意されたい）。次に、読取確認回路３０は、導体６０を介して受信された実際の読取電流と導体４６を介して供給された選択された確認レベルとを比較し、実際の読取電流が選択された確認レベル以上であるかどうかを判定する。確認レベル以上であれば、対応する消去されたビットセルの記憶値は、消去が成功したことを示す論理レベル１として確認される。
【００２４】
１実施形態では、１群のビットセルの消去が同時に確認される。たとえば、ＮＶＭアレイ４２の１部のすべてのビットセルが消去される場合、消去後、すべてが論理レベル１になると予測される。本例では、読取回路４０は、消去されたＮＶＭアレイ４２の部分の各ビットセルを感知し、最小の実際の読取電流を読取確認回路３０に供給される。この場合の最小の実際の読取電流が選択された確認レベル以上である場合、消去された部分のすべてのビットセルの消去が成功したことになる。
【００２５】
図４は、ＮＶＭアレイ４２に存在する０（「０」）ビットと１（「１」）ビットの分布と、様々な異なる確認レベルＶＬ１〜ＶＬＮを示すグラフである。ｙ軸はビット数を表し、ｘ軸はビットのビットセル電流を表す。したがって、「０」ビット（記憶された論理レベル０を有するビットセル）の場合、各ビットセルのビットセル電流は０／１読取閾値電流より小さい。「１」ビット（記憶された論理レベル１を有するビットセル）の場合、各ビットセルのビットセル電流は０／１読取閾値電流より大きい（さもなければ電流が０／１読取閾値電流より小さなどの「１」ビットも「０」ビットと誤って読み取られる）。したがって、０／１読取閾値電流未満の電流を有するビットセルは「０」を記憶するとして読み取られ、０／１読取閾値電流を超える電流を有するビットセルは「１」を記憶するとして読み取られる。ただし、強力な１ビットを確保するため、「１」ビットのビットセル電流が、０／１読取閾値電流よりも大きな所定量であることが望ましい。たとえば、図４では、最適な動作に関して、「１」ビットのビットセル電流は確認レベルＶＬ１より大きいはずである。したがって、図４に示されるように、「１」ビットの分布はＶＬ１の右で発生する。ただし、時間の経過とともに、たとえば、「１」ビットの分布はプログラム／消去サイクルによって引き起こされる装置酸化物へのダメージにより、左に移動し始め、０／１読取閾値に近づいていく。
【００２６】
図４に示されるように、「１」ビットの分布は０／１読取閾値に近づきながら移動することがあるが、様々な他の確認レベルＶＬ２〜ＶＬＮ（Ｎは任意の整数値である）によって示されるように少なくとも所定の量離れていることに注意されたい。たとえば、確認レベルＶＬ４がＶＬ１でなく「１」ビットを確認するのに使用された場合、小さなビットセル電流が有効な「１」ビットとみなされるために必要であるため、もっと多くのビットが「１」を有効に記憶するとして「合格」とする。ただし、ビットセル電流がＶＬ１〜ＶＬ３ではなくＶＬ４のみを上回る場合、「１」ビットは実際には、もはや確実にプログラムできなくなる点までＮＶＭが劣化するまでに残された寿命が短い、より微弱な「１」ビットである。したがって、１実施形態では、確認レベルＶＬ１は「１」ビットを確認するのにできるだけ長く使用され、それが不可能になったとき、「１」ビットを確認するには、ＶＬ２〜ＶＬＮなどのより小さな確認レベルが代わりに使用されることによって、ＮＶＭアレイ４２の寿命を延長させる。
【００２７】
再度図２を参照すると、読取確認回路３０は、「１」ビットを確認するために（確認レベル選択器２８によって供給される）様々な確認レベルのうちの１つを使用できることに注目されたい。たとえば、確認レベル発生器２６は、（たとえば、図４のＶＬ１〜ＶＬＮに対応する）Ｎ個の確認レベルを生成し、導体５１〜５３を介してそれらを確認レベル選択器２８に供給する。次に、確認レベル選択器２８は導体４４を介して制御回路３２から受信した選択信号に基づき、これらのうちの１つを選択し、実際に確認を行うために導体４６を介して選択された確認レベルを読取確認回路３０に供給する。次に、読取確認回路３０は読取回路４０から受け取った実際の読取電流をこの選択された確認レベルと比較し、導体６２を介してその結果を制御回路３２に供給する。制御回路３２の動作を、図３のフロー図を参照してより詳細に説明する。
【００２８】
ＮＶＭアレイ４２の１部を消去するための消去動作を実行するプログラム／消去サイクルの１例を、図２および５を参照して以下に説明する。１実施形態では、ＮＶＭアレイ４２の１部を消去するため、複数の消去パルスがたとえば、プログラム／消去パルス発生器６４によって生成される。これらのパルスの例を図５に示す。１実施形態では、ほぼ第１の消去電圧（ＥＶ１）を有する複数のパルス（たとえば、パルス１００）が印加され、その後にほぼ第２の消去電圧（ＥＶ２）を有する複数のパルス（たとえば、パルス１０２）が印加され、その後にほぼ第３の消去電圧（ＥＶ３）を有する複数のパルス（たとえば、パルス１０４）が印加される。１実施形態では、第１の消去電圧（たとえば、ＥＶ１）での各パルス後、消去パルスが成功したかどうかを判定するための確認が実行される。成功しなかった場合、別の消去パルスが同じ消去電圧で供給され、再度確認される。消去が成功したことが確認された時点でプログラム／消去サイクルは終了する。ただし、同じ消去電圧で所定数のパルス（たとえば、パルス１００の全部）が実行された後、消去がまだ成功していない場合、より高い消去電圧（たとえば、ＥＶ２）でパルスが供給される。再度、この高い消去電圧での各パルス後、消去が成功したかどうかを判定するために確認が行われ、そうであれば、プログラム／消去サイクルは無事その地点で終了する。ただし、その高い消去電圧での所定数のパルス（パルス１０２の全部）が実行され、消去がまだ成功していない場合、さらに高い消去電圧（たとえば、ＥＶ３）でパルスが供給される。
【００２９】
消去の成功が確認されるまで、あるいは最大総パルスカウントに達するまで、このプロセスは継続する。たとえば、パルス１０６の全部が完了し（つまり、パルス１００、１０２、１０４、．．．１０６の全部が完了した）、消去の成功がまだ確認されない場合、プログラム／消去サイクルは成功した消去なしで終了する（すなわち、失敗した消去）。１実施形態では、より高い消去電圧に移る前に消去電圧毎に供給される所定数のパルスは同じである。たとえば、最大５つのパルスが消去電圧毎に供給され、パルスの最大総数は２０である。ただし、別の実施形態では、より高い消去電圧に移る前に各消去電圧毎に供給されるパルスの数は異なる。これらの値は、たとえば、図２の電圧当り最大パルスカウント６２および最大総パルスカウント７０に記憶される。もしくは、この種の情報は、ＮＶＭアレイ４２の各ブロックに記憶され、各ブロックは異なるカウントを使用する。また、消去パルスカウンタ３４は、消去電圧当りのパルス数とパルスの総数を把握しておくため、任意の数のカウンタまたは他の回路を含む。次第に高くなる消去電圧を有するパルスの使用は、結果的にＮＶＭアレイ４２に対するダメージを軽減することに注目されたい。
【００３０】
したがって、各プログラム／消去サイクルは複数の異なる消去電圧と複数の異なる確認レベルを使用することができることに注意されたい。たとえば、確認レベル選択器２８は、プログラム／消去サイクルの第１の部分間に第１の確認レベルを選択し、次に、（たとえば、第１の確認レベルでの消去パルスが失敗した場合）（第１の部分後の適切な時期に生じる）プログラム／消去サイクルの第２の部分間に第２の確認レベルを選択する。したがって、プログラム／消去サイクルの第１の部分間に、読取確認回路３０は、第１の実際の読取電流と第１の確認レベルとを比較し、プログラム／消去サイクルの第２の部分間に、読取確認回路３０は第２の実際の読取電流と第２の確認レベルとを比較する。
【００３１】
図示される実施形態では、図２の他のＮＶＭ回路３８は、ＮＶＭ１４の動作に必要なすべての他の回路を含む。１実施形態では、他のＮＶＭ回路３８は、チャージポンプ、高電圧調整器、高電圧スイッチ、ワードラインドライバ、ソースラインドライバ、行デコーダ、列デコーダ、バス２２へのインタフェース、レジスタ、およびＮＶＭ１４の機能にとって望ましい任意の他の回路（図示せず）を有する。１実施形態の場合、他のＮＶＭ回路３８は従来のように可能であることに注意されたい。また、読取確認回路３０と同様の回路が「０」ビットを確認するために使用され、「０」ビットのビットセル電流は、有効性を判定するために０／１読取閾値電流より通常小さい確認レベルに照らして比較されることに注意されたい。また、別の実施形態では、０／１読取閾値電流より小さい電流を有するビットセルは「１」ビットに対応し、０／１読取閾値電流より大きい電流を有するビットセルは「０」ビットに対応する。
【００３２】
図３は、本発明の１実施形態に係る消去および確認手順を示すフロー図である。ＮＶＭアレイ４２の外部の刺激は、フロー８０の消去動作を開始させるために使用される。このような外部刺激の１例は、ＮＶＭ１４内の消去を開始させるプロセッサ１２（図１を参照）である。フローはブロック８２から開始され、最初の消去電圧と最初の確認レベルが選択される。たとえば、最初に、制御回路３２は、確認レベル発生器から第１の確認レベル（たとえば、図４のＶＬ１）を選択するために（たとえば、導体４４を介して）確認レベル選択器２８を指し示す。同様に、制御回路３２は、電圧発生器３６から第１の消去電圧（たとえば、ＥＶ１）を選択するために（たとえば、導体５０を介して）電圧選択器４８を指し示す。
【００３３】
その後、フローはブロック８４に進み、消去パルスは、（ブロック８２で選択された）選択された消去電圧を用いて供給される。たとえば、プログラム／消去パルス発生器６４は、たとえば、図５に示されるように、パルスを生成するため電圧選択器４８によって供給される消去電圧を使用する。制御回路３２は、パルス継続時間に関連するような、プログラム／消去パルス発生器６４の制御情報も供給できることに注意されたい。この第１のパルスは、ＮＶＭアレイ４２の選択された部分を消去するためにＮＶＭアレイ４２に供給される（当該技術において既知なように、選択された部分は、他のＮＶＭ回路３８によって示される）。
【００３４】
再び図３を参照すると、フローはブロック８６に進み、選択された確認レベルを用いて消去が確認される。たとえば、いったんパルスがパルス発生器６４によって供給されると、読取確認回路３０は図２を参照して上記したように消去が確認される。たとえば、読取回路４０は、読取確認回路３０に実際の読取電流を供給し、読取確認回路３０は、それを確認レベル選択器２８から選択された確認レベルと比較される。次に、フローは判定ブロック８８に進み、実際の読取電流が選択された確認レベル以上であるかどうかが判定される。そうであれば、フローは、消去が成功し、プログラム／消去サイクルが完了したことを示すブロック９０に進む。すなわち、ブロック９０で、フロー８０の消去動作が完了する。判定ブロック８８で、実際の読取電流が選択された確認レベル以上でないと判定される場合、フローは判定ブロック９２に進む。
【００３５】
判定ブロック９２で、選択された電圧レベルでの消去パルスの最大数に達したかどうかが判定される。達していない場合、フローはブロック８４に戻り、別の消去パルスが同じ選択された電圧レベルで供給され、同じ確認レベルで（ブロック８６で）確認が実行される。判定ブロック９２で、選択された電圧レベルでの消去パルスの最大数に達したことが判定された場合、フローは判定ブロック９４に進む。たとえば、判定ブロック９２の判定を行うために、制御回路３２は、現在の消去電圧でのパルス数を把握する第１の消去パルスカウンタのカウントと、（たとえば、消去電圧当りの最大パルスカウント６８の１部として記憶することのできる）現在の消去電圧の最大パルスカウントとが比較される。
【００３６】
判定ブロック９４では、消去パルスの最大総数に達したかどうかが判定される。たとえば、制御回路３２はこの判定を行うため、現行のプログラム／消去サイクルでのパルス総数を把握する第２の消去パルスカウンタのカウントと最大総パルスカウント７０とが比較される。消去パルスの最大総数に達した場合、フローは、現行のプログラム／消去サイクルが消去の失敗で終わる（すなわち、失敗した消去）ことを示すブロック９６に進む。消去またはプログラミング間の失敗は、ＮＶＭアレイ４２および／または他のＮＶＭ回路３８内の回路による場合があることに注意されたい。
【００３７】
ただし、判定ブロック９４で、消去パルスの最大総数に達していない場合、フローはブロック９８に進み、現行のプログラム／消去サイクルが継続する。ブロック９８では、高い消去電圧と低い確認レベルが選択され、フローはブロック８４に戻る。たとえば、ブロック８２で最初の消去電圧および確認レベルがＥＶ１とＶＬ１にそれぞれ対応する場合、ブロック９８で、高い消去電圧と低い確認レベルはＥＶ２とＶＬ２にそれぞれ対応する。この新たな高い消去電圧では、より強力な消去パルスが、消去を実行するためにＮＶＭアレイ４２に供給される。
【００３８】
さらに、このより高い消去電圧での各消去パルス後、低い確認レベルを用いて確認が実行される。この低い確認レベルは、読取確認回路３０が消去の成功を確認しやすくする。すなわち、各プログラム／消去サイクルは、複数の異なる消去電圧と複数の異なる確認レベルが使用される。次第に低くなる確認レベル（たとえば、それぞれＶＬ１、ＶＬ２、．．．ＶＬＮ）とともに次第に高くなる消去電圧（たとえば、ＥＶ１、ＥＶ２、．．．ＥＶＮ）を使用することによって、プログラム／消去サイクルによって生じるダメージが最小化され、用途に関係なく最適なデータ保持および持続性能がＮＶＭアレイ中のすべてのビットセルに対して確実に達成されるように、消去が実行および確認される。
【００３９】
消去電圧および確認レベルの任意のシーケンスを選択できることに注意されたい。たとえば、使用される消去電圧のシーケンス中の各消去電圧は、均等に間隔が置かれる。もしくは、たとえば、ＥＶ１からＥＶ２へのジャンプがその後のＥＶ２からＥＶ３へのジャンプより小さくなるように、均等に間隔を置く必要はない。また、各消去電圧は、必ずしも前の消去電圧より大きい必要はない。同様に、選択される確認レベルのシーケンス中の各確認レベルは、均等に間隔を置いても置かなくてもよい。また、各確認レベルは、必ずしも先の確認レベルよりも低い必要はない。１実施形態では、消去電圧のシーケンスは、１３ボルト、１３．２ボルト、１３．４ボルト．．．１４ボルト（ＥＶ１、ＥＶ２、ＥＶ３、ＥＶＮにそれぞれ対応）というように１３ボルトから始まり、１４ボルトに達するまで２００ミリボルトずつ増大し、確認レベルのシーケンスは、３０マイクロアンペア、２６マイクロアンペア、２２マイクロアンペア、．．．１０マイクロアンペア（ＶＬ１、ＶＬ２、ＶＬ３、．．．ＶＬＮにそれぞれ対応）というように３０マイクロアンペアから始まり、１０マイクロアンペアに達するまで４マイクロアンペアずつ減少する。ただし、上記したように、各消去電圧および確認レベルに対して、多くの異なるシーケンスが利用可能である。
【００４０】
１実施形態の場合、確認レベルは、ＮＶＭセルからの実際の読取電流に比較される基準電流であることにも注意されたい。別の実施形態は、確認レベルを表すのに基準電流以外のものが使用される。たとえば、確認レベルは基準電圧である。また、基準は、読取電流以外のものと比較してもよい。たとえば、確認レベルは、ＮＶＭセル電圧（たとえば、トランジスタ閾値電圧）と比較される基準電圧である。別の実施形態は、確認レベルを表すために任意の所望の回路特性が使用される。したがって、１実施形態では、確認レベルは読取電流／電圧閾値と称し、実際の読取電流は実際の読取電流／電圧と称する。また、１実施形態では、確認レベル選択器２８は、閾値選択器と称する。
【００４１】
ＮＶＭ１４は、図２に示される構造以外の他の構造を含むことができることに注意されたい。たとえば、確認レベル発生器２６および確認レベル選択器２８は様々な様式で実装される。１実施形態では、確認レベル発生器２６は任意の数の確認レベル（所望の種類の比較に応じて、電流または電圧）を生成し、確認レベル選択器２８は制御回路３２からの選択信号に基づき、これらのうちの１つを選択する。たとえば、確認レベル２８は、様々な生成された確認レベルから選択する、あるいは、選択された確認レベルを生成するために、確認レベル発生器２６内でイネーブルにされる回路を選択する。もしくは、これらの機能は単独のブロックに結合される。また、１実施形態では、以後の確認レベルはそれぞれ、最初の確認レベルまたはその他の先の確認レベルから生成される。確認レベル発生器２６および確認レベル選択器２８を参照して記載される同じ代替物が、電圧発生器３６および電圧選択器４８にもそれぞれ適用される。また、制御回路３２は、どの確認レベルおよび消去電圧を選択または生成するかを示す任意の種類の制御信号を必要に応じて供給される。
【００４２】
また、任意の種類の既知の回路が、ＮＶＭ１４の部品を実装するために使用される。たとえば、任意の種類の電流／電圧レベル発生器が、確認レベル発生器２６および電圧発生器３６を実装するために使用される。同様に、選択器２８および４８（たとえば、マルチプレクサ）の機能の選択を実行するために任意の種類の回路が使用される。また、プログラム／消去パルスカウンタ３４のカウンタ、およびプログラム／消去パルス発生器６４を実装するために既知の回路が使用される。また、プロセッサ１２上で動作するソフトウェア内で、あるいは、たとえば、フロー８０の制御を実行するハードウェア、またはハードウェアとソフトウェアの組み合わせとして制御回路３２が使用される。制御回路３２の部分は、ＮＶＭ１４全体に分布して配置さる、図２に示されるように、中心に集めなくてもよい。制御回路３２は、ＮＶＭ１４の機能に関連するＮＶＭ１４の部分に制御情報と信号を供給するために使用される。また、たとえば、発生器２６および３６、選択器２８および４８、読取確認回路３０、プログラム／消去パルス発生器６４、および制御回路３２などの、本明細書に記載のＮＶＭ１４の特定の部分は、「０」ビットのプログラミングや確認などのＮＶＭ１４の他の機能を実行する、あるいは実行するのを助けることもできることに注意されたい。本発明の実施形態は、複数回プログラムおよび消去可能な任意の種類のＮＶＭに適用可能であることにも注意されたい。
【００４３】
上記明細書では、本発明を特定の実施形態を参照して説明した。ただし、当業者であれば、下の請求項に記載される本発明の範囲を逸脱せずに、様々な修正や変更を行うことができると認識している。したがって、明細書および図面は限定的な意味ではなく例示的にみなすべきであって、上記すべての修正は本発明の範囲に含まれると意図される。
【００４４】
利益、その他の利点、および問題の解決策を、特定の実施形態を参照して説明した。ただし、利益、利点、問題の解決策、および利益、利点、または解決策を生じさせる、あるいはより明白にする構成要素は、請求項の１部または全部の重要で、必須で、または不可欠な特徴または構成要素と解釈すべきではない。本明細書で使用されるように、「備える」という用語またはその変形は、構成要素のリストを備えるプロセス、方法、品、または装置がこれらの構成要素だけを含むのではなく、明確にリストアップされていない、あるいは上記プロセス、方法、品、または装置に本来備わる他の構成要素を含むことができるように、非排他的な包含を対象とすることを目的とする。
【図面の簡単な説明】
【００４５】
【図１】本発明の１実施形態に係る集積回路のブロック図である。
【図２】本発明の１実施形態に係る図１のＮＶＭ１４のブロック図である。
【図３】本発明の１実施形態に係るＮＶＭを消去する方法のフロー図である。
【図４】本発明の１実施形態に係るプログラムされ消去されたビットの分布を示すグラフである。
【図５】本発明の１実施形態に係る各種消去パルスを示すグラフである。
【図１】
2009518766.tif 000003
【図２】
2009518766.tif 000004
【図３】
2009518766.tif 000005
【図４】
2009518766.tif 000006
【図５】
2009518766.tif 000007
【国際調査報告】
2009518766.tif 000008