(57)【要約】  不揮発性メモリシステム（２０）において、電荷ポンプ（３２）がプログラミングメモリセルに対して生成した電圧ポンプパルスが、参照電圧と一致しないとわかった場合、プログラミング周期が終了するまで、電圧ポンプパルスのプログラム時間の調整値を基本的にそのままにする。このように、しきい値電圧分布の拡大が発生しない、または低減するように、残余のプログラミング周期に対して、プログラミングパルスの効果的なプログラム時間の変動を防止する。この特徴により、遅い動作および／または弱い動作という条件で電荷ポンプが動作する場合に、プログラム時間を長くできるという柔軟性がありながら、短いプログラム時間をプログラミングパルスに割り当てて、性能を向上することが可能になる。
2008507802.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリシステムにおいて、
複数の電荷蓄積素子と、
前記複数の電荷蓄積素子をプログラムするプログラミング周期の間、少なくともいくつかの電圧ポンプパルスそれぞれの振幅を前のパルスに対して増加する前記電圧ポンプパルスを、順次生成する電荷ポンプと、
前記電圧ポンプパルスのシーケンスを受け取る第１の入力と、その振幅が所定の時間間隔で増加する参照電圧を受け取る第２の入力と、前記電圧ポンプパルスと前記参照電圧との比較を表す出力信号を生成する出力とを有する比較器と、
前記電圧ポンプパルスを前記電荷蓄積素子に印加するように割り当てられたプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整するプログラム時間制御信号を前記出力信号に応答して生成する回路と、
を備えるシステム。
【請求項２】
請求項１記載の不揮発性メモリシステムにおいて、
前記回路が、前記プログラム時間制御信号を記憶するラッチを備えるシステム。
【請求項３】
請求項２記載の不揮発性メモリシステムにおいて、
前記ラッチが、前記プログラミング周期の終わりにリセット可能であるシステム。
【請求項４】
請求項２記載の不揮発性メモリシステムにおいて、
前記電荷ポンプが生成した前記電圧ポンプパルスの前記プログラム時間を制御するコントローラをさらに備え、前記コントローラが、前記プログラミング周期の終わりに前記ラッチをリセットするシステム。
【請求項５】
請求項２記載の不揮発性メモリシステムにおいて、
前記ラッチが、ＳＲフリップフロップを備えるシステム。
【請求項６】
請求項１記載の不揮発性メモリシステムにおいて、
前記参照電圧を前記比較器に供給するコントローラをさらに備えるシステム。
【請求項７】
請求項６記載の不揮発性メモリシステムにおいて、
前記コントローラが、前記電荷ポンプが生成した前記電圧ポンプパルスのプログラム時間を制御するシステム。
【請求項８】
請求項１記載の不揮発性メモリシステムにおいて、
前記パルス幅制御信号により、生成した前記電圧ポンプパルスのパルス幅を、前記プログラミング周期が終了するまで基本的に変化しない所定の値に増加するシステム。
【請求項９】
請求項１記載の不揮発性メモリシステムにおいて、
前記プログラム時間を第１の値に設定し、前記プログラム時間制御信号により前記プログラム時間を前記第１の値よりも大きい第２の値に増加するシステム。
【請求項１０】
複数の電荷蓄積素子を備える不揮発性メモリシステムをプログラムする方法において、
前記複数の電荷蓄積素子をプログラムするプログラミング周期の間、少なくともいくつかの前記パルスそれぞれの振幅を前のパルスに対して増加する前記電圧ポンプパルスを、順次生成するステップと、
電圧ポンプパルスのシーケンスを、その振幅が所定の時間間隔で増加する参照電圧と比較し、前記電圧ポンプパルスと前記参照電圧との比較を表す出力信号を生成するステップと、
生成した前記電圧ポンプパルスのプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整するプログラム時間制御信号を前記出力信号に応答して生成するステップと、
を含む方法。
【請求項１１】
請求項１０記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間制御信号を記憶するステップをさらに含む請求項１１記載の方法。
【請求項１２】
請求項１０記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラミング周期の終わりに前記電圧ポンプパルスのプログラム時間をリセットするステップをさらに含む方法。
【請求項１３】
請求項１０記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間制御信号により、生成した前記電圧ポンプパルスの前記プログラム時間を、前記プログラミング周期が終了するまで基本的に変化しない所定の値に増加する方法。
【請求項１４】
請求項１０記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間を、第１の初期値に設定するステップをさらに含み、前記プログラム時間制御信号により、前記プログラム時間を前記第１の値よりも大きい第２の値に増加する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、不揮発性メモリシステムに関し、特に、プログラム時間制御を有する不揮発性メモリシステムに関する。
【背景技術】
【０００２】
不揮発性メモリのメモリセルまたは電荷蓄積素子（ここでは、２つの用語を区別なく用いる）は、セルの一部の行またはすべての行を同時に並行してプログラムが行われる。行の各選択したセルのしきい値電圧を、プログラミング周期の所定の電圧範囲（セルの最終的な所望の状態であってもなくてもよい）内の値にプログラムするまで、プログラミング電圧パルスをメモリセルの選択した行に印加する。各プログラミング周期の間に、プログラミング電圧パルスの時間系列を、周期的な時間間隔等の所定の時間間隔にして、各プログラミングパルスの振幅を、そのシーケンスの直前のプログラミングパルスの振幅と比較して、固定電圧ステップの分を増加する。
【０００３】
プログラミング電圧のパルスとパルスの間の時間に、プログラム検証動作を実行する。すなわち、各プログラミングパルスがプログラムした検証電圧レベル以上であるかどうか判定した後で、並列でプログラムを行った各電荷蓄積素子のプログラムしたレベルを読み出す。任意の電荷蓄積素子のしきい値電圧が検証電圧レベルを超えていると判定された場合は、以下でロックアウトと呼ぶ処理において、特定の電荷蓄積素子が接続しているビットラインの電圧を、低い電圧（通常、０ボルト）から高レベルまたは抑制レベル（通常Ｖｄｄ）へ上げることにより、このような電荷蓄積素子のプログラミングを停止する。検証電圧レベルに達するまで、並列でプログラムを行った他の電荷蓄積素子のプログラミングを継続する。各プログラム検証動作を行った後で、検証電圧レベルになっていないしきい値電圧を有する並列でプログラムを行った電荷蓄積素子が、まだ１つ以上ある場合は、所定のステップサイズでプログラミングパルスの振幅を増幅して、並列でプログラムを行った電荷蓄積素子に印加して、再びプログラム検証動作を行う。次のプログラミング動作の後で、増幅したプログラミングパルスにより、並列でプログラムを行った全ての電荷蓄積素子のしきい値電圧が検証電圧レベルになっていない場合は、次の時間間隔の間にプログラミングパルスの振幅を同じ所定のステップサイズで再び増加して、並列でプログラムを行った電荷蓄積素子全てのしきい値電圧が検証電圧レベルになるまで、この処理を繰り返す。これにより、特定のプログラミング周期の終了を表示する。
【０００４】
ファウラーノルドハイムトンネルにより電荷を導入したフローティングゲート電荷蓄積素子では、フローティングゲートの電荷量を、周知のトンネル変換式を用いる電圧パルス特性の関数として算出することができる。図５Ａは、しきい値電圧（制御ゲートから測定する）を制御ゲートに適用する電圧パルスの数の関数として示す。このシミュレーションで用いられる各種のファウラーノルドハイムパラメータを選択して、典型的な９０ｎｍのＮＡＮＤ処理として、電圧パルスを１５ボルトから開始して、パルス毎に０．２ボルトずつ増加したと仮定する。２つの曲線は、２つの異なるパルス継続時間（１０μ秒および１５μ秒）に対して、しきい値対電圧の傾斜がほぼ同じであることを示している。長いパルス継続時間により、当初高いしきい値電圧（長時間の電荷トンネル以上）を生成するが、各パルスによるしきい値の変化は、電圧の絶対値に比例する。このことは、各プログラミングステップに固定パルス継続時間を用いる限り、各パルスの間、しきい値はせいぜい任意の量（この場合は０．２ボルト）が増加するだけであると予測することができることと、前述したように、セル毎のプログラミングを抑制する場合は、任意の論理状態に対して、プログラムした全てのセルの最終しきい値分布が電圧パルスステップサイズのほぼ等しい狭い範囲内になると推測することを意味している。
【０００５】
プログラミングシーケンスの間、パルス継続時間が変化可能な場合は、そのしきい値分布の幅が好ましくない大きさになるという問題が見受けられる。図５Ｂは、第１の４つのパルスを、パルス毎に０．２ボルト増加する、１０μ秒の一定のプログラム継続時間に適用して、次に、可変プログラムパルス幅となるシミュレーションを示す。シリーズ１は、第５番目とそれに続く全てのパルスが１５μ秒である場合の、しきい値電圧の変化を示す。別の５〜１０パルス後に、それに続くしきい値電圧の変化が、図５Ａに示されている結果に基づいて、狭いパルスでその前に得られたしきい値電圧に近づく。パルス幅が増幅しなかった場合に予測される値を超えるように、そのパルスの後で、長いパルスが１つでもあると任意のロックアウトセルのしきい値を増加することに留意されたい。シリーズ２は、各パルスの後で、１０μ秒から１５μ秒の間でパルス継続時間が変動する場合の、予測したしきい値電圧の変化を示す。パルス５は１０μ秒、パルス６は１５μ秒、パルス７は１０μ秒、パルス８は１５μ秒等である。この場合、プログラムした状態のしきい値分布は、１０μ秒または１５μ秒のいずれかをずっと適用することにより得たもの、あるいはパルス幅の１回の変化から得たものよりも大きい。いくつかのパルスは、そのパルスがロックアウトにならないけれども検証レベルのすぐ下になる場合は必ずしも役に立たない０．２ボルトのしきい値電圧変化になるが、単に、その予測したしきい値変化の大きな、広がったしきい値分布となるパルスがもう１つ必要になる。
【０００６】
前述したプログラミング動作を、マルチレベル電荷蓄積素子とともにバイナリレベル電荷蓄積素子またはメモリセルに適用する。マルチレベル電荷蓄積素子に対する前述したプログラミングおよびプログラム検証動作の説明が、米国特許第６，５２２，５８０号（特許文献１）に記載されている。この特許は、その全体が本願明細書において参照により援用されている。
【０００７】
前の説明から明らかなように、前述したプログラミング処理には、プログラミングパルスを有するセルのプログラムを繰り返し行い、これに続いてプログラム検証動作を行うことが必要になる。従って、この処理には時間がかかる。よって、メモリセルまたは電荷蓄積素子を、性能を向上させるのにできるだけ短い時間で所望のしきい値電圧にプログラムできるように、各プログラミングパルスを印加するプログラム時間が短い継続時間になることは望ましい。
【０００８】
メモリセルをプログラムするプログラミングパルスを、ＤＡＣ制御により出力電圧が容易に変化する電荷ポンプで生成する場合がよくある。通常、電荷ポンプの電圧出力を、参照電圧と比較する。電荷ポンプの出力が参照電圧の値に達した場合は、プログラムフラグ信号ＦＬＧＰＧＭを生成して、ポンプ出力電圧が所望のプログラム電圧レベルに達したことを示す。選択した行の選択したセルのプログラム時間の測定は、プログラムフラグＦＬＧＰＧＭが高くなったら直ちに開始する。このプログラム時間が開始すると、それらのしきい値電圧の変更と並行して、電荷ポンプのプログラミング電圧出力（ポンプパルスとも呼ばれる）をメモリセルまたは電荷蓄積素子に印加する。以下に説明するように、電荷ポンプが弱い等により、プログラムフラグＦＬＧＰＧＭが遅延する場合、プログラムフラグＦＬＧＰＧＭになっていないと、フラグＦＬＧＰＧＭの予測した時間よりも後の所定の時間でプログラミングを開始する。これにより、パルスからパルスまでの可変プログラム継続時間になる。
【０００９】
特定のステップサイズ電圧だけプログラム電圧レベルを増加する場合、同じステップサイズで参照電圧を増加して、ステップサイズが増加した後で、プログラミングパルスと比較する。このように、プログラムフラグＦＬＧＰＧＭの生成に用いる参照電圧のステップをプログラム電圧レベルの増加に合わせる。
【００１０】
多くの電荷ポンプの強度は、温度および入力電圧レベルの関数である。低い温度で、例えば、電荷ポンプの出力電圧が特定の予測した電圧値に達するのに時間がかかるので、ある種類の電荷ポンプの強度は弱い傾向がある。弱い電荷ポンプでは、低い振幅電圧出力が必要となる場合と比較して、高い振幅電圧出力が必要となる電圧出力となるまで長い時間がかかることもある。従って、プログラムフラグＦＬＧＰＧＭが遅延するほどポンプが弱い場合、プログラミング電圧パルス振幅が意図した値または予測した値に達していなくても、プログラミングを周期的な時間で開始する。このような状況では、プログラミング周期内で、プログラムフラグＦＬＧＰＧＭに達した時と、プログラムフラグＦＬＧＰＧＭが遅延した時とで周期的な時間で、実際のプログラミングをトリガすることが見受けられる。従って、効果的なプログラム時間（プログラミングパルスが所望の電圧レベルになっているプログラム時間の部分）が変化する。これにより、メモリセルのしきい値電圧分布を広くする。
【００１１】
１つの解決方法は、プログラミングに割り当てられた時間を長くすることなので、プログラム時間の開始時に、電荷ポンプの電圧出力がまだ所望の電圧レベルになっていなくても、プログラミングに割り当てられた長いプログラム時間により、ある時間遅延の後で、弱い電荷ポンプが所望の電圧レベルになることが可能なので、得られる効果的なプログラム時間は、メモリセルを意図したしきい値電圧値にプログラムするのにやはり十分である。しかし、前述したように、性能を向上させるには、プログラミングパルスを適用するプログラム時間を最小の長さにすることが望ましい。従って、長いプログラム時間を割り当てると、不揮発性メモリシステムの性能を低下することになる。特定の限られた条件で長いプログラム時間が必要になるので、これは特別の場合である。従って、前述した問題を改善する不揮発性メモリシステムを提供することが望ましい。
【特許文献１】米国特許第６，５２２，５８０号
【発明の開示】
【００１２】
理想的には、ポンプが室温で動作する場合というように、電荷ポンプが強力な場合は、割り当てたプログラム時間をできるだけ短くして、遅い電荷ポンプを補償する必要がある場合に限って、長いプログラム時間が好ましい。同様に、プログラムパルスに対して適度な電圧出力で電荷ポンプを低い状態で供給する必要がある場合は、プログラム周期の開始部分では、短いプログラム時間を用いることもできる。プログラミング周期の終わりに向けて、高い振幅電圧が必要な場合、当初用いた短い時間の代わりに、長いプログラム時間を用いてもよい。
【００１３】
本発明は、電荷ポンプが生成した電圧ポンプパルスが、参照電圧と一致しないとわかった場合、プログラミング周期が終了するまで、電圧ポンプパルスのプログラム時間の調整値を基本的にそのままにするという認識に基づいている。このように、しきい値電圧分布の拡大が発生しない、または低減するように、残余のプログラミング周期に対して、プログラミングパルスの効果的なプログラム時間の変動を防止する。この特徴により、遅い動作および／または弱い動作という条件で電荷ポンプが動作する場合に、プログラム時間を長くできるという柔軟性がありながら、短いプログラム時間をプログラミングパルスに割り当てて、性能を向上することが可能になる。
【発明を実施するための最良の形態】
【００１４】
説明を簡単にするために、本願では、同じ部材には同じ符号が付けられている。
【００１５】
図１は、システムバス１５を介してホストコンピュータ１０と通信するフラッシュメモリシステム２０（プラグインカードまたはモジュールの形態が可能である）のブロック図である。フラッシュメモリシステム２０は、フラッシュＥＥＰＲＯＭモジュール３０とコントローラ４０とを含んでいる。そして、コントローラ４０は、メモリ４１とプロセッサ４３とを含んでいる。コントローラ４０は、ホストコンピュータ１０から受信したコマンドを解釈して、フラッシュＥＥＰＲＯＭモジュール３０の対応する読み出し、書き込みおよび他の動作を、ホストコンピュータ１０に対してトランスペアレントで翻訳する。
【００１６】
図２は、一例として、電荷ポンプ電圧パルスの生成に関するフラッシュＥＥＰＲＯＭシステム２０の部分を示す概略ブロック図である。図２に示されているように、供給電圧Ｖｓｙｓを、ホストによりオプションの電圧レギュレータ４５を介してコントローラ４０に印加して、可能ならば異なる電圧レベルＶｄｄを、モジュール３０に印加する。プロセッサ４３が、コマンドとタイミング信号とをモジュール３０に適用して、電荷ポンプ３２が、プロセッサ４３からの制御信号に応答して電圧ＶｄｄからプログラミングパルスＶｐｐを生成する。実際には、たいていの場合、不揮発性メモリ３０のインターフェイス・制御モジュール５６に、メモリの詳細な動作を制御するのに十分な論理があり、プロセッサ４３の制御動作を低減する。通常、制御５６は、可能ならば、制御５６またはアレイ５４内の別のＲＯＭに記憶したいくつかのパラメータで、事前に定義したプロトコルと専用の論理状態マシーンとを用いて、プロセッサ４３からのコマンドを解釈するのに十分な論理から構成され、起動と同時に読み出しを行う。しかし、本発明は、コントローラの物理位置に依存しておらず、プロセッサ４３またはインターフェイスのいずれかと、制御５６とを用いることもできる。プログラミングパルスＶｐｐを、プログラム時間制御回路５２とメモリセルアレイ５４とに印加する。アレイ５４は、メモリセルの行および列から構成される。説明を簡単にするため、行および列の制御を行うとともに、メモリアレイの他の制御を行う各種の制御回路については、図２から省略している。プログラミングパルスの振幅Ｖｐｐが参照電圧より低い場合に、プログラム時間制御回路５２が検出を行う。このような場合は、回路５２がプログラム時間フラグを設定して、フラグを制御５６に送信する。制御５６は、次に、電荷ポンプ３２が生成したそれに続くパルスＶｐｐのプログラム時間を増加する。回路５２は、プログラミングパルスＶｐｐの時間系列で、（プログラミングパルスＶｐｐのステップサイズ電圧の増加に段階的に追随する）対応する参照電圧を下回る場合に第１のインスタンスが発生すると同時に、残余のプログラミング周期の間に生成したそれに続くプログラミングパルスＶｐｐ全てに対して、延長したプログラム時間を用いるように、プログラム時間フラグを残余のプログラミング周期に対して設定するように構成されている。
【００１７】
図３は、図２のプログラム時間制御回路５２をより詳細に示す概略回路図である。図３に示されているように、電荷ポンプ３２の出力Ｖｐｐを、ノード６５に接続した２つの抵抗器６４ａ、６４ｂを含む電圧デバイダ６２に接続する。また、抵抗器６４ｂは接地接続されている。ノード６５を、比較器６６の一方の入力に接続する。そのもう一方の入力には、制御５６から電圧ａＶが印加される。Ｖは参照電圧である。比較器６６は、ノード６５の電圧を電圧ａＶと比較する。比較器６６によるノード６５の電圧とａＶとの比較により、Ｖｐｐが参照電圧Ｖを上回るか下回るかを示すようにするために、ａの値を、抵抗器６４ａのＶｐｐから電圧が立ち下がるように調整してある。従って、電荷ポンプ３２の電圧出力ＶｐｐがＶを超える場合は、比較器６６は、フラグ信号ＦＬＧＰＧＭの値を高く設定する（すなわち、“１”）。フラグ信号ＦＬＧＰＧＭを、ＳＲフリップフロップ７０のＳｎ入力に送る。フリップフロップ７０の入力Ｓｎは、“アクティブロー”である。これは、フリップフロップ７０のＳｎ入力が、入力Ｓｎでフラグ信号ＦＬＧＰＧＭから反転した信号に応答することを意味している。フリップフロップ７０の入力Ｒｎも、やはり“アクティブロー”である。ＣＬＫｐをアクティブにする際に、Ｖｐｐが参照電圧を下回っている場合に、フリップフロップ７０を設定するようにする。
【００１８】
図４は、図３の回路の動作を説明するタイミング図である。ここで、時間ｔ０はプログラミング周期の開始を示す。ＳＲフリップフロップ７０はフリップフロップによりクロック制御されるので、制御５６からのクロックパルスＣＬＫｐがアクティブになっている（例えば、高レベル）と、入力Ｓｎおよび入力Ｒｎで信号に応答する。図４に示されているように、プログラミング周期の開始ｔ０付近で、制御５６が電荷ポンプ３２にラベル１で示す第１のポンプパルスを生成させ、また初期デフォルトのプログラム時間をより小さい値ｐｔ１（例えば、約１１または１２μ秒）に設定して、図２に示されているシステム２０の性能を最適化する。図４に示されているように、プログラミングまたはプログラム時間ｐｔ１は、基本的にラベル１で示す第１のポンプパルスのパルス幅と同じである。このポンプパルスの振幅を、前述したやり方で制御５６が供給した参照電圧と比較する。
【００１９】
当初（すなわち、時間ｔ０で）、プログラム時間フラグを低レベルまたは“０”に設定する。第１のプログラミングパルス１のＶｐｐの振幅が参照電圧のものよりも大きいと仮定すると、図４に示されているように、フラグ信号ＦＬＧＰＧＭを時間ｔ１になる前に高レベルにアクティブにする。次に、フリップフロップ７０は、時間ｔ１で制御５６から第１のクロックパルスＣＬＫｐを受け取る。図４に示されているように、フリップフロップ７０の入力Ｒｎに送った制御５６からの動作信号７２の終わりのリセットを、プログラミング周期の開始ｔ０で高レベルにアクティブにする。従って、時間ｔ１で、第１のクロックパルス（ＣＬＫｐ）をフリップフロップに印加すると、入力Ｓｎおよび入力Ｒｎが高レベルになる。フリップフロップが動作の終わりにフラグ信号ＦＬＧＰＧＭの反転信号とリセット信号の反転信号とに応答するので、これにより、フリップフロップ７０のＱ出力を、プログラミング周期の開始と同時に設定したその初期値、または低レベルまたは“０”に保つ必要があることを示す。時間ｔ２で、第２のクロックパルス（ＣＬＫｐ）をフリップフロップ７０に印加すると、同じ処理が繰り返される。時間ｔ２になる前に、フラグ信号を再び高レベルにアクティブにして、フリップフロップのＱ出力を再び低レベルにするように、プログラミングパルスＶｐｐは参照電圧よりも高くなっている。
【００２０】
しかし、時間ｔ３で、電荷ポンプ３２の出力プログラミングパルスＶｐｐは以前よりもゆっくりと立ち上がるので、ｔ３になってから所望のピーク振幅になる。このことは、数多くの異なる原因に起因する。その１つは低い温度である。別の考えられる原因は、電荷ポンプ３２が、時間ｔ３では前よりも高い電圧レベルの供給を必要とするという事実による。Ｓｎへの入力が低レベルなので、時間ｔ３で、フリップフロップ７０は、Ｑでその出力を高レベルにリセットする。これが、プログラム時間フラグ信号となる。これを、制御５６に供給して、次に、ｐｔ１からｐｔ２の間で直ちにプログラムまたはプログラム時間を延長して、ＥＥＰＲＯＭモジュール３０に供給した制御信号を変更して、プログラム時間のこの変化を反映する。これにより、予測したピーク振幅までポンプパルスを立ち上がらせるのに十分な時間となり、図４に示されているように、所望のプログラム時間ｐｔ１の間、このピーク振幅でポンプパルスを印加可能にする。理想的には、ポンプが弱い場合であっても、性能が必ずしも低下しないように、ポンプパルスをゆっくりと立ち上がらせるのに十分なだけｐｔ１よりも長くなるように、ｐｔ２の値を設定する。前述した例では、ｐｔ１が約１１または１２μ秒、ｐｔ２の値が約１４μ秒とすることもできる。
【００２１】
フリップフロップ７０のＱ出力７４、つまりプログラム時間フラグ信号は、残余のプログラミング周期の間は変化しないので、残余のプログラミング周期に対するｐｔ１の代わりに、この延長したプログラム時間ｐｔ２を用いるように、プロセッサ４３および／または制御５６がモジュール３０の制御を継続する。従って、図４に示されているように、次のポンプパルスＶｐｐに割り当てられたプログラム時間は、ｐｔ１ではなくｐｔ２になる。何らかの理由により、時間ｔ４でプログラミングパルスの振幅が参照電圧を超えるような場合であっても、図４に示されている時間ｔ４の場合のように、フラグ信号ＦＬＧＰＧＭが高レベルなので、ポンプパルスＶｐｐに割り当てたプログラム時間はｐｔ２のままである。時間ｔ６で、プログラミング周期の終わりでは、動作信号の終わりのリセットが立ち下がって“０”になる。当業者に周知のように、Ｒｎのリセット入力が設定した入力Ｓｎよりも優先順位が高くなるように、ＳＲフリップフロップを設計することができる。従って、時間ｔ６でクロック信号を受け取ると、フリップフロップ７０が、そのＱ出力を低レベルまたは“０”にリセットする。これにより、制御５６にプログラム時間をより小さいデフォルト値ｐｔ１に戻すようにさせ、次のプログラム周期に備える。
【００２２】
種々の実施形態を参照して、本発明について説明してきたが、本発明の範囲を逸脱することなく、変更および修正を行うことも可能である。これらは、添付の特許請求の範囲およびそれらの同等物によってのみ制限されるものである。ここで参照したものは全て、その全体が本願明細書において参照により援用されている。
【図面の簡単な説明】
【００２３】
【図１】ホストコンピュータと、ホストコンピュータに接続したフラッシュＥＥＰＲＯＭシステムとを含むコンピュータシステムを示すブロック図である。
【図２】本発明の一実施形態を示す図１のフラッシュＥＥＰＲＯＭシステムのコントローラおよび電圧生成部を示すブロック図である。
【図３】本発明の一実施形態を示す図２の回路の素子をいくつか示す概略回路図である。
【図４】図３の回路の動作を示すタイミング図である。
【図５Ａ】２つの異なるパルス継続時間で電荷蓄積セルに適用するパルス数の関数としてのセルしきい値電圧のコンピュータシミュレーションを示す図である。
【図５Ｂ】２つの異なるパルス継続時間シーケンスで電荷蓄積セルに適用するパルス数の関数としてのセルしきい値電圧の変化を示すコンピュータシミュレーションを示す図である。
【図１】
2008507802.tif 000003
【図２】
2008507802.tif 000004
【図３】
2008507802.tif 000005
【図４】
2008507802.tif 000006
【図５Ａ】
2008507802.tif 000007
【図５Ｂ】
2008507802.tif 000008
【手続補正書】
【提出日】平成19年5月22日(2007.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリシステムにおいて、
複数の電荷蓄積素子と、
前記複数の電荷蓄積素子をプログラムするプログラミング周期の間、少なくともいくつかの電圧ポンプパルスそれぞれの振幅を前のパルスに対して増加する前記電圧ポンプパルスを、順次生成する電荷ポンプと、
前記電圧ポンプパルスのシーケンスを受け取る第１の入力と、その振幅が所定の時間間隔で増加する参照電圧を受け取る第２の入力と、前記電圧ポンプパルスと前記参照電圧との比較を表す出力信号を生成する出力とを有する比較器と、
前記電圧ポンプパルスの振幅が前記参照電圧と一致しない場合に、前記電圧ポンプパルスを前記電荷蓄積素子に印加するように割り当てられたプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整するプログラム時間制御信号を前記出力信号に応答して生成する回路と、
を備えるシステム。
【請求項２】
請求項１記載の不揮発性メモリシステムにおいて、
前記回路が、前記プログラム時間制御信号を記憶するラッチを備えるシステム。
【請求項３】
請求項２記載の不揮発性メモリシステムにおいて、
前記ラッチが、前記プログラミング周期の終わりにリセット可能であるシステム。
【請求項４】
請求項２記載の不揮発性メモリシステムにおいて、
前記電荷ポンプが生成した前記電圧ポンプパルスの前記プログラム時間を制御するコントローラをさらに備え、前記コントローラが、前記プログラミング周期の終わりに前記ラッチをリセットするシステム。
【請求項５】
請求項２記載の不揮発性メモリシステムにおいて、
前記ラッチが、ＳＲフリップフロップを備えるシステム。
【請求項６】
請求項１記載の不揮発性メモリシステムにおいて、
前記参照電圧を前記比較器に供給するコントローラをさらに備えるシステム。
【請求項７】
請求項６記載の不揮発性メモリシステムにおいて、
前記コントローラが、前記電荷ポンプが生成した前記電圧ポンプパルスのプログラム時間を制御するシステム。
【請求項８】
請求項１記載の不揮発性メモリシステムにおいて、
前記パルス幅制御信号により、生成した前記電圧ポンプパルスのパルス幅を、前記プログラミング周期が終了するまで基本的に変化しない所定の値に増加するシステム。
【請求項９】
請求項１記載の不揮発性メモリシステムにおいて、
前記プログラム時間を第１の値に設定し、前記プログラム時間制御信号により前記プログラム時間を前記第１の値よりも大きい第２の値に増加するシステム。
【請求項１０】
請求項１記載の不揮発性メモリシステムにおいて、
前記電圧ポンプパルスの振幅が前記参照電圧を下回る場合に、前記プログラム時間制御信号により、前記電圧ポンプパルスを前記電荷蓄積素子に印加するように割り当てられたプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整するシステム。
【請求項１１】
複数の電荷蓄積素子を備える不揮発性メモリシステムをプログラムする方法において、
前記複数の電荷蓄積素子をプログラムするプログラミング周期の間、少なくともいくつかの前記パルスそれぞれの振幅を前のパルスに対して増加する前記電圧ポンプパルスを、順次生成するステップと、
電圧ポンプパルスのシーケンスを、その振幅が所定の時間間隔で増加する参照電圧と比較し、前記電圧ポンプパルスと前記参照電圧との比較を表す出力信号を生成するステップと、
前記電圧ポンプパルスの振幅が前記参照電圧と一致しない場合に、生成した前記電圧ポンプパルスのプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整するプログラム時間制御信号を前記出力信号に応答して生成するステップと、
を含む方法。
【請求項１２】
請求項１１記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間制御信号を記憶するステップをさらに含む請求項１１記載の方法。
【請求項１３】
請求項１１記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラミング周期の終わりに前記電圧ポンプパルスのプログラム時間をリセットするステップをさらに含む方法。
【請求項１４】
請求項１１記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間制御信号により、生成した前記電圧ポンプパルスの前記プログラム時間を、前記プログラミング周期が終了するまで基本的に変化しない所定の値に増加する方法。
【請求項１５】
請求項１１記載の不揮発性メモリシステムをプログラムする方法において、
前記プログラム時間を、第１の初期値に設定するステップをさらに含み、前記プログラム時間制御信号により、前記プログラム時間を前記第１の値よりも大きい第２の値に増加する方法。
【請求項１６】
請求項１１記載の不揮発性メモリシステムをプログラムする方法において、
前記電圧ポンプパルスの振幅が前記参照電圧を下回る場合に、前記プログラム時間制御信号により、前記電圧ポンプパルスを前記電荷蓄積素子に印加するように割り当てられたプログラム時間を前記プログラミング周期が終了するまで基本的に変化しない値に調整する方法。
【国際調査報告】
2008507802.tif 000009
2008507802.tif 000010
2008507802.tif 000011