(58)【調査した分野】(Int.Cl.,DB名)
前記第1の複数のパルスの各パルスおよび前記第2の複数のパルスの各パルスが印加された後、前記メモリセルの前記サブセットの閾値電圧と消去検証電圧との比較を実行し、前記メモリセルのサブセットの各々の前記閾値電圧が前記消去検証電圧との前記比較をパスする場合、前記メモリセルに対する前記書き込み操作のソフトプログラム手順を継続する、請求項3に記載の方法。
前記メモリセルは複数のページ内に配列され、複数のメモリセルとしての各ページ、前記メモリセルの前記サブセットは前記複数のページのうちの第1のページとしてさらに特徴づけられる、請求項1に記載の方法。
前記第1の所定のランプ速度は第1の電圧インクリメントを使用し、前記第2の所定のランプ速度は、前記第1の電圧インクリメントよりも大きい第2の電圧インクリメントを使用する、請求項1に記載の方法。
前記第1の所定のランプ速度は前記第1の複数のパルスに第1のパルス幅を使用し、前記第2の所定のランプ速度は前記第2の複数のパルスに、前記第1のパルス幅よりも小さい第2のパルス幅を使用する、請求項1に記載の方法。
前記第1の複数のパルスの各パルスおよび前記第2の複数のパルスの各パルスの前記印加の後、前記メモリセルの前記サブセットの閾値電圧とプログラム検証電圧との比較を実行し、
前記メモリセルに対して前記書き込み操作の前記第1の複数のパルスを印加するステップは、前記第1の複数のパルスが、その閾値電圧が前記プログラム検証電圧との前記比較に失敗する前記メモリセルの前記サブセットのメモリセルにのみ印加されることをさらに特徴づけられ、
前記メモリセルに対して前記書き込み操作の前記第2の複数のパルスを印加するステップは、前記第2の複数のパルスが、その閾値電圧が前記プログラム検証電圧との前記比較に失敗する前記メモリセルのサブセットのメモリセルにのみ印加されることをさらに特徴づけられる、請求項8に記載の方法。
前記メモリセルは複数のページ内に配列され、複数のメモリセルとしての各ページ、前記メモリセルの前記サブセットは前記複数のページのうちの第1のページとしてさらに特徴づけられる、請求項11に記載の方法。
前記第1の所定のランプ速度は第1の電圧インクリメントを使用し、前記第2の所定のランプ速度は、前記第1の電圧インクリメントよりも大きい第2の電圧インクリメントを使用する、請求項11に記載の方法。
【発明を実施するための形態】
【0006】
一態様では、不揮発性メモリは、電荷トラッピングによる問題のような、プログラム/消去サイクル中に生じる、書き込みを実行する上での困難を克服するために、必要な場合に書き込みパルスのランプ速度が増大される書き込み操作を有する。最初に初期ランプ速度に応じた書き込みパルスを使用した後、メモリセルは過度に遅い速度で移動しているか否かを調べるために試験される。そうでない場合、メモリセルは、書き込みパルスの通常ランプ速度に応じた書き込みに成功するまで、継続して書き込まれる。他方、メモリセルが過度に遅く移動している場合、書き込みは継続するが、これは通常ランプ速度と比較して増大した割合でランピングされた書き込みパルスを使用する。これは、NVMセルの書き込みに成功するか、または書き込みに長くかかり過ぎて終了されるまで継続する。これには、プログラム/消去サイクルがまだ大きくなっていないにもかかわらず通常ランプ速度が不必要に高い場合と比較して、書き込みに起因する損傷が低減するという効果がある。代わりに、プログラム/消去サイクルが大きくなる結果としてセル劣化または電荷トラッピングに起因して書き込みが長くなりすぎることを見越して、書き込みパルスは、書き込み時間の指定を満たすためにより急速にランピングされる。これは、プログラム/消去サイクルが大きくなる前の時間の間に通常ランプ速度をより遅くして損傷を低減することによって、書き込みが失敗する時点の前のプログラム/消去サイクルの全体的なカウントを増大させるだけでなく、書き込み操作におけるビットセル移動速度の監視に基づいて増大したランプ速度に自動的かつ適応的に切り替えることによって、プログラム/消去サイクルカウントが大きくなった後の書き込みパフォーマンスをも改善する。
【0007】
図1は、一実施形態による不揮発性メモリ(NVM)103を含む集積回路100のブロック図である。図示の実施形態では、集積回路(IC)100は、複数の信号またはビットを用いて、バスなどのような適切なインターフェース105を介してNVM103に結合される少なくとも1つのプロセッサ101を含むシステム・オン・チップ(SOC)などを実装してもよい。IC100は、他のメモリデバイスのような他の回路、モジュールまたはデバイス、他の機能モジュール(図示せず)、および、入力、出力または入出力(I/O)ポートまたはピンなどのような外部インターフェース(図示せず)を含んでもよい。代替的な一実施形態では、NVM103は、他のデバイスを一切有せず単独でIC100上に集積される。別の代替的な実施形態では、プロセッサ101、NVM103およびインターフェース105は、IC100上のより大きなシステムの一部である。
【0008】
図2は、インターフェース105に結合される、一実施形態に応じたNVM103のより詳細なブロック図である。NVM103は、NVMアレイ201と、NVMアレイ201に結合される行デコーダ203と、NVMアレイ201に結合される列ロジック205と、インターフェース105、NVMアレイ201、列ロジック205、および行デコーダ203に結合されるNVMコントローラ207とを含む。列ロジック205は列デコーダおよびセンス増幅器(図示せず)を組み込んでおり、各インターフェースは複数の信号またはビットを用いて図示されている。NVMコントローラ207は、インターフェース105または他のインターフェースを通じて通信されるようにプロセッサ(複数の場合もあり)101に応答するなどして、行デコーダ203および列ロジック205を通じてNVMアレイ201の手順を制御する。NVMコントローラ207は、行デコーダ203に行アドレスを提供し、列ロジック205に列アドレスを提供することによって、NVMアレイ201内のメモリセルにアクセスする。列ロジック205を介してNVMアレイ201内にデータが書き込まれ、当該アレイからデータが読み出される。NVMコントローラ207はまた、(図示されていない対応するスイッチおよびコントローラを介して)NVMアレイ201に対するソースおよびウェル電圧を駆動する。
【0009】
NVMコントローラ207内には、電荷ポンプ209、閾値電圧(Vt)モニタ211、プログラムランプ速度制御ロジック213、および消去ランプ速度制御ロジック215が示されている。チャージポンプ209は、消去ゲート電圧を提供する負電荷ポンプ、プログラムゲート電圧および消去pウェル電圧を提供する正電荷ポンプ、および、プログラムドレイン電圧を提供するドレインポンプを含むことができる。所定のVt検証読み出しレベルにおける列ロジック205からの出力データがVtモニタ211に提供される。Vtモニタ211、プログラムランプ速度制御ロジック213、および消去ランプ速度制御ロジック215は、所定数のプログラム/消去パルス後の中間のVt検証読み出しを監視することによって、プログラムランプ速度および消去ランプ速度を適応的に調整する。
【0010】
NVMアレイ201は、1つ以上のブロックのメモリセルを組み込んでおり、各メモリブロックは、たとえば、16キロバイト(kB),32kB,64kB,128kB,256kBなどのような、選択されるブロックサイズを有する。NVMアレイ201内のメモリセルは一般的に、pウェル(PW)およびnウェル(NW)を含む分離されたウェルとともに、ゲート(G)端子、ドレイン(D)端子およびソース(S)端子を有する。一実施形態では、各メモリブロックは、メモリセルの行および列を成すように編成される。メモリセルの各行のゲート端子は、行デコーダ203に結合される複数のワード線のうちの対応するものに結合される。メモリセルの各列のドレイン端子は、列ロジック205に結合される複数のビット線のうちの対応するものに結合される。各メモリセルのソース端子およびウェル(PWおよびNW)は、NVMコントローラ207によって駆動および制御される。
【0011】
図示のように、NVMアレイ201は、プログラムおよび消去手順が適応的に調整可能または構成可能なランプ速度で実行されることを可能にするように構成される少なくとも1つのメモリブロック202を含む。
【0012】
NVMアレイ201内のメモリセルは、半導体構成、層状シリコン金属ナノ結晶などのような、いくつかの構成のうちのいずれか1つに応じて実装されることができる。一実施形態では、各メモリセルは、シリコン基板などの上に実装される。一実施形態では、各メモリセルのpウェルはnウェルによってP型基板から分離される。各メモリセルのドレインおよびソース端子を形成する一対のn+型ドープ領域(図示せず)が、pウェル内に形成される。各メモリセルは、ゲート端子を形成する、pウェル上に形成される酸化物層(図示せず)、酸化物層上に設けられるフローティングゲート(図示せず)、フローティングゲート上に設けられる絶縁体層(図示せず)、および絶縁体層上に設けられる制御ゲート(図示せず)を含む、積層ゲート構造などをさらに含む。pウェルは一般的に、グランド電圧Vssに結合され、nウェルは一般的に、本明細書において説明するように、FN消去パルスの間を除いてソース電圧Vddに結合される。Vddの電圧レベルは特定の実施態様に応じて決まる。
【0013】
一実施形態では、本明細書においてさらに説明するように、消去およびプログラム手順の間に電圧パルスがメモリセルに印加されるとき、メモリセルのpウェルおよびnウェルはともに結合されるかまたは他の様態で駆動されて、集合的にランプパルス電圧を受け取る。「消去パルス」は、メモリブロック202の各メモリセルに印加されると考えられ、ゲート端子は選択される消去パルス電圧に駆動され、pウェルおよびnウェルは集合的に、連続的に増大する消去ランプパルス電圧を受け取る。したがって、メモリセルに印加される各消去パルスは、ゲート端子に印加される消去パルス電圧、および、メモリセルの少なくとも1つのウェル接続に印加される消去ランプパルス電圧を含む。「プログラムパルス」は、メモリブロック202のうちのメモリセルのグループに印加されると考えられ、ゲート端子はランピングされたプログラムゲート電圧に駆動され、ドレイン端子は選択されたプログラムドレイン電圧に駆動される。プログラムパルスは、メモリセルのグループがプログラムされるまでメモリセルのグループに印加されることになり、そのような手順は、メモリブロック全体がプログラムされるまで、メモリブロック内の他のメモリセルに対して反復することができる。ソフトプログラムパルスはプログラムパルスと同様であるが、ゲート電圧がより低い。書き込み操作は、プログラム、消去、またはソフトプログラム操作であることができ、書き込みパルスは、消去パルス、ソフトプログラムパルス、またはプログラムパルスであってもよい。
【0014】
本開示は、消去ランプパルス電圧がメモリセルのpウェルおよびnウェルに印加され、一方でゲート端子が相対的に固定された大きさを有する消去パルス電圧を受け取る例示的なNVM技術を使用して説明される。他のNVM技術などを使用するもののような代替的な実施形態では、代わりに消去ランプパルス電圧は、ゲート端子などのような、消去されているメモリセルの異なる接続または端子に印加される。
【0015】
本開示は、ランピングされたプログラムパルス電圧がメモリセルのゲートに印加され、一方でドレイン端子が相対的に固定された大きさを有する、異なるプログラムパルス電圧を受け取る例示的なNVM技術をも使用して説明される。他のNVM技術などを使用するもののような代替的な実施形態では、代わりにプログラム電圧は、プログラミングされているメモリセルの異なる接続または端子に印加される。これは、ソフトプログラミングにも当てはまることができるが、ゲートに印加されるパルスはより低いレベルにある。
【0016】
図3は方法300のフローチャート図であり、これは、概して、
図2のNVMアレイ201内のメモリブロック202に対して
図2のNVMコントローラ207によって制御される書き込み操作を実行する方法であり、ステップ302,304,306,308,310,312,314、および316を含む。方法300に関係するいくらかの詳細を
図4、
図5、
図6、および
図7に示す。ステップ302において、書き込みパルスがメモリブロック202に印加されて、書き込み操作が開始される。ステップ304において、書き込みパルスを受け取るメモリセルが検証電圧に応じた閾値電圧に達したか否かについて判定が行われる。これらのメモリセルのすべてがこの閾値電圧に達している場合、書き込み操作はステップ306において示されているように完了する。これらのメモリセルのうちの1つ以上が検証電圧に応じた閾値電圧に達していない場合、ステップ308において、ランプ速度変更が必要か否かを判定するために、所定数の書き込みパルスが印加されたか否かについて判定が行われる。答えがいいえである場合、ステップ314において、最大数のパルスが印加されたか否かについて判定が行われる。最大値が印加されている場合、書き込み操作はステップ316において示されているように失敗している。最大値が印加されていない場合、ステップ302について図示のように別の書き込みパルスが印加される。プロセスは、ステップ304において判定されるように書き込まれているNVMセルのすべてがパスするか、またはランプ速度決定に至ったことを意味する、ステップ308におけるランプ速度決定が「はい」になるかのいずれかまで、このように継続する。一例として、ランプ速度決定点は、開始からの所定数のパルスにおけるものであってもよい。この「はい」点まで、書き込みパルスは
図4に示すような初期ランプ速度に従っている。
図4の例において、或る数の書き込みパルスが第1のレベル403に存在しており、別の数が第2のレベル405に存在している。
【0017】
ランプ速度変更決定のときである場合、ステップ310において、書き込まれているNVMセルのすべてが暫定レベルへの書き込みに成功したか否かについて判定が行われる。
図5および
図6は、消去操作である書き込み操作の例に関する2つの可能性を示す。
図5には、書き込まれているNVMセルの最初の分布としての分布502、および、ランプ速度変更に対する決定の時点における暫定分布が示されている。書き込み、この場合は消去に成功するために、書き込まれているNVMセルのすべては、ステップ304の消去検証によって判定されるときに十分に低い閾値電圧を有していると検証されていなければならない。
図5において、NVMメモリセルのいずれも書き込みに成功していない。加えて、ステップ310において示されているように、より低い要件が満たされているか否かについての判定に関してさらなる試験がある。このより低い要件は、書き込まれているNVMセルが、相対的に大きい数のプログラム/消去サイクルの後にパフォーマンス劣化を受けていたかのように振る舞っているか否かを判定するためのものである。この場合、書き込まれているNVMセルのすべてがこの挙動を有するとは限らず、これは、分布全体が、それらが
図5のグラフに示すように暫定検証点の左にあるように十分にその閾値電圧を変更されているためである。したがって、ステップ308のランプ速度決定点に達したときに状況が
図5に示すようなものである場合、ステップ310における決定は、暫定閾値電圧要件が満たされており、試験をパスしているというものである。この場合、書き込みプロセスは、書き込みパルスについて
図4に示すような通常ランプ速度404で継続する。通常ランプ速度404のこの例において、次のレベルはレベル405,407,409であり、最終的には408のピーク電圧である。初期ランプ速度402と組み合わされた通常ランプ速度404の次のレベルへの各遷移は、同じ数の書き込みパルスによって隔てられている。すなわち、通常ランプ速度は初期ランプ速度と同じである。ピーク電圧408においてタイムアウトする前に可能なパルスの数は、他のレベルのいずれかにおけるパルスの数の約2倍であると考えられるが、これは正確なスケールではなく、差はそれよりもはるかに大きいものである可能性がある。実際の数は、プログラム/消去サイクルの数による劣化の特定の特性に基づいて経験的に求められる。
【0018】
他方、
図6に示す可能性は、NVMセルのうちのいくつかが暫定検証の左に移動するのに十分に閾値電圧を変更されていないことである。これは、多数のプログラム/消去サイクルに起因してパフォーマンス劣化があったこと、および、書き込み操作の完了に成功するために書き込み操作のランプ速度を増大させることが望ましいことを示している。したがって、ステップ310において、暫定Vt要件をパスしていないと判定され、ステップ312において書き込みパルスのランプ速度の増大が発動される。これは
図4においてランプ速度の増大406として示されており、これは次の書き込みパルスがレベル407にあることを示している。必要とされる場合、書き込みパルスはさらに増大され、次のレベルへの各増大は、通常ランプ速度404のパルスの数の約半分の割合である。したがって、多くのプログラム/消去サイクルに起因してNVMセルがパフォーマンス劣化を経験したことが検出されると、書き込みパルスは増大した速度でランピングされる。1つの結果はピーク電圧408により早く達することであり、より高い割合の書き込みサイクルが、書き込みパルスのランプ速度の増大を発動するこれらのNVMセルのより高い電圧にあるようになる。最終的にタイムアウト410のような時点に達すると、書き込み操作は失敗している。その前の、最終的な結果は
図7に示すものになり、書き込まれているNVMセルのすべてが、
図5〜
図7の例では消去操作である書き込み操作をパスしていることになる。消去操作は、NVMセルのうちのいくつかが過消去される結果になることが多く、これらの過消去セルにはソフトプログラミングが必要である。
【0019】
図8には、書き込み操作が消去操作であるときを示す方法800が示されており、方法300よりも多くの詳細を提供する。消去操作は、ステップ802〜814を含むプリプログラム手順、ステップ816〜838を含む消去手順、および、ステップ840〜854を含むソフトプログラム手順を含むことができる。
【0020】
プリプログラミング手順の間、ステップ802は、現在の行および列アドレスの、メモリブロック202内の第1のアドレスへの初期化を含むことができる。ステップ804において、プログラム(PGM)検証試験がメモリブロック202内の現在のアドレスに対して実行される。プログラミングおよび検証は個々のメモリセルまたはメモリセルのサブセットに対して実行されてもよいが、プログラミングおよび検証は一般的にはページごとに実行され、各ページは128ビットなどのような、選択される数のメモリセルまたはビットを含む。プログラミングパルスは、一度に、最大18ビットのような複数のメモリセルまたはビットに印加されることができる。プログラム検証試験の間、現在のアドレスにおける各メモリセルのVtがプログラム検証閾値(PVT)電圧と比較される。現在のアドレスにおける任意のメモリセルのVtがPVT電圧を下回る場合、操作はステップ806に進み、最大数のプログラムパルスが印加されたか否かが判定される。最大数のプログラムパルスが印加されていない場合、操作はステップ808に進み、次のプログラムパルスがPVTを下回るメモリセルに印加され、その後、ステップ804に進む。
【0021】
ステップ806が、最大数のプログラムパルスが印加されたと判定した場合、ステップ810が、消去操作が失敗したことを示す。
【0022】
ステップ804に戻って、現在のアドレスにおいてプログラム検証手順をパスした(すなわち、そのアドレスにおけるすべてのメモリセルのVtがPVT電圧、たとえば6V以上である)場合、ステップ812が、最後のアドレスがプログラムされているか否かを判定する。最後のアドレスがプログラムされていない場合、ステップ814が、現在のアドレスをインクリメントして、操作をステップ804に戻す。そうでなく、最後のアドレスがプログラムされている場合、操作はステップ816に続く。操作は、メモリブロック202の各メモリセルのVtが少なくともPVTになるまでさらにプログラムパルスを印加することによってステップ804〜808をループする。
【0023】
プリプログラム手順が完了した後、操作は消去手順のステップ816に進む。ステップ816は、メモリブロック202上で通常ランプ速度を使用して実行されるように、消去操作をデフォルトにすることを含むことができる。ステップ818は、アドレスをメモリブロック202内の第1のアドレスに初期化することを含むことができる。いずれにせよ、これは、消去操作の最初の部分に対して消去パルスの通常ランプ速度を使用する。これは、
図4に示す初期ランプ速度402に類似している。
【0024】
ステップ820は、メモリブロック202のメモリセルに対して消去(ERS)検証試験を実行して、メモリブロック202が消去基準を満たすか否かを判定することができる。消去パルスは一般的に、メモリブロック202全体またはメモリブロック202のサブセットに印加されることになる一括操作であるが、消去検証は一般的にはページごとに実行され、各ページは128ビットなどのような、選択される数のメモリセルまたはビットを含む。消去検証試験の間、メモリセルの各々のVtが消去検証閾値(EVT)電圧(メモリセルの各々に対する消去基準を表す)と比較される。メモリブロック202の任意のメモリセルのVtがEVT電圧、たとえば3.5Vを上回る場合、操作はステップ822に進み、当該ステップは、現在の消去パルスが選択された暫定パルスであるか否かを判定する。これは、
図3に示す方法300のステップ308に類似している。暫定パルス数は特定のNVM技術について予め定められている。たとえば、1つのNVM技術では、消去手順の間のpウェル電圧は4.2Vから8.5Vにランピングすることになる。したがって、選択される暫定パルスは、電圧が効率的な消去手順のための所定のレベルを上回るが、印加されることになる最大消去電圧を下回るものであることができる。
【0025】
現在の消去パルスが選択された暫定パルスでない場合、ステップ824が、最大数の消去パルスが印加されているか否かを判定する。最大数の消去パルスが印加されていない場合、ステップ826が、次の消去パルスを印加し、制御はステップ820に戻る。
【0026】
ステップ822に戻って参照して、現在の消去パルスが選択された暫定パルスである場合、ステップ828が、Vtモニタ211によって第1の読み出しページ上でVtの暫定消去検証読み出しを実行する。これは、
図3に示す方法300のステップ310に類似している。ステップ830が、第1の読み出しページ内のすべてのビットが、指定電圧よりも低いVt電圧を有すると判定する場合、検証読み出しにパスし、制御はステップ826に移行して次の消去パルスが印加される。ランプ速度は引き続き、
図4に示す通常ランプ速度404に類似の通常ランプ速度である。ステップ830が、検証読み出しにパスしておらず、たとえば、第1の読み出しページ内のすべてのビットが所定の暫定検証読み出しVtレベルを下回っているわけではないと判定する場合、ステップ832が、消去パルスのランプ速度の増大を可能にする。また、ランプ速度増大フラグを、増大したランプ速度が消去に使用されるという、ユーザに対する指示子にセットすることが有益であり得る。これは、
図3に示す方法300のステップ312、および
図4に示すランプ速度の増大406に類似している。その後、消去手順はステップ832から、増大したランプ速度でステップ826に進む。
【0027】
ステップ820に戻って参照して、選択された読み出しページまたはアドレスにおいて消去検証にパスした場合、たとえば、メモリブロック202内の選択された読み出しページのいずれのメモリセルのVtもEVT電圧を上回っていない場合、操作はステップ836に進み、最後のアドレスが消去検証されているか否かが判定される。最後のアドレスが消去検証されていない場合、ステップ838が、アドレスをインクリメントして、手順をステップ820に移行する。手順は、メモリブロック202の各メモリセルのVtがEVTを下回るまでさらに消去パルスを印加することによってステップ820〜832をループする。ステップ824が、最大数の消去パルスが印加されたと判定した場合、プロセス834が、消去操作が失敗したことを示す。
【0028】
図8に示す方法800の実施形態は、2つの異なるランプ速度間で消去ランプ速度を適応的に調整するようにできている。消去手順800は、より多くの数の暫定消去パルスおよび暫定検証読み出しレベルをチェックすることによってビットセルパフォーマンス劣化をさらに管理するために、3つ以上のランプ速度をハンドリングするように構成されることができる。
【0029】
消去手順が完了した後、メモリブロック202に対するソフトプログラム手順が開始されて、過消去メモリセルのVtが、ソフトプログラム検証電圧閾値(SPVT)とEVTとの間の所望の電圧範囲内に置かれる。ソフトプログラム手順は一般的にはページごとに実行され、各ページは128セルなどのような、選択される数のメモリセルを含む。ソフトプログラムパルスは、一度に複数のメモリセルに印加されることができる。一実施形態では、ソフトプログラムパルスは、一度に最大36個のメモリセルに印加されてもよい。ソフトプログラムパルスは一般的に、電圧がより低い、パルス持続時間がより短い、またはその両方の組み合わせなど、プログラムパルスほど強くはない。ソフトプログラム手順はステップ840によって開始し、当該ステップは、アドレスをメモリブロック202内の第1のアドレスに初期化することを含むことができる。操作はステップ842に進み、ソフトプログラム(SFT PGM)検証試験が実行され、現在のアドレスにおける各メモリセルのVtがSPVT電圧と比較される。現在のアドレスにおける任意のメモリセルのVtがSPVT電圧を下回る場合、操作はステップ850に進み、最大数のソフトプログラムパルスが印加されたか否かが判定される。最大数のソフトプログラムパルスが印加されていない場合、操作はステップ854に進み、現在のアドレスにおいてソフトプログラム検証読み出しに失敗するメモリセルにソフトプログラムパルスが印加される。ソフトプログラムパルスは、EVTを下回ったままSPVTを上回ってVtを増大させるための、選択される電圧レベルおよび持続時間を有する。手順はステップ842に戻って、現在のアドレスにおける各メモリセルのVtがSPVTを下回るか否かが判定され、手順は、メモリブロック202の各メモリセルのVtがSPVT電圧とEVT電圧との間になるまでさらにソフトプログラムパルスを印加することによってステップ842〜854をループする。
【0030】
ステップ850が、最大数のソフトプログラムパルスが印加されたと判定した場合、ステップ852が、消去操作が失敗したことを示す。
【0031】
ステップ842に戻って、ソフトプログラム検証手順にパスした(すなわち、VtがSPVT以上である)場合、ステップ844が、最後のアドレスがソフトプログラム検証されているか否かを判定する。最後のアドレスがソフトプログラム検証されていない場合、ステップ848が、アドレスをインクリメントして、手順をステップ842に戻す。そうでなく、最後のアドレスがソフトプログラム検証されている場合、手順はステップ846に移動して、消去操作にパスしたことが示される。代替形態として、ソフトプログラミングはまた、
図9に示すプログラミング方法に関するもののようなプログラミングパルスに関するランプ速度変更を含んでもよい。
【0032】
図9は、概して
図2のNVMコントローラ207によって実行および制御される、メモリブロック202の少なくとも一部をプログラミングするための、および同様にソフトプログラミングするための方法900の一実施形態のフローチャート図である。いずれにせよ、ステップは、最初は
図4に示すランプ速度402に類似の通常ランプ速度においてランピングされる消去パルスによって開始する。ステップ904は、メモリブロック202内の、書き込まれることになる第1のメモリセルのアドレスおよびデータをNVMコントローラ207に提供することを含むことができる。
【0033】
ステップ906は、メモリブロック202の現在のメモリセルに対してプログラム検証試験を実行し、メモリセルがプログラム基準を満たしているか否かを判定することができる。プログラム検証試験の間、現在のアドレスにおける各メモリセルのVtがプログラム検証閾値(PVT)電圧(プログラム基準を表す)と比較されることができる。現在のアドレスにおけるメモリセルのいずれかのVtがPVT電圧を下回る場合、操作はステップ910に進み、現在のプログラムパルスが選択される暫定プログラムパルスであるか否かが判定される。選択される暫定プログラムパルスは、プログラム手順の間に印加されることになる最大数のパルスを下回るが、メモリセルが一般的に通常操作の間に、たとえば広範囲にわたる漏れのない、PVTを満たすパルス数以上のパルスである。これは、
図3に示す方法300のステップ308に類似している。
【0034】
現在のプログラムパルスが選択された暫定パルスでない場合、ステップ912が、最大数のプログラムパルスが印加されているか否かを判定する。最大数のプログラムパルスが印加されていない場合、ステップ914が次のプログラムパルスを印加し、ステップ906に移行する。
【0035】
ステップ910に戻って参照して、現在のプログラムパルスが選択された暫定プログラムパルスである場合、ステップ916が、以前のメモリアドレスがプログラムされていた間にパフォーマンス劣化が検出されていることに起因して、ランプ速度増大がすでにイネーブルされていることを示すために、ランプ速度増大フラグがセットされているか否かを判定する。ランプ速度増大フラグがセットされている場合、ステップ916は制御をステップ912に移行する。ランプ速度増大フラグがセットされていない場合、ステップ916は制御をステップ918に移行する。
【0036】
ステップ918は、Vtモニタ211によって、Vtの暫定プログラム検証読み出しを実行することを含むことができる。ステップ920が、暫定プログラム検証Vt読み出しにパスしていると判定し、プログラムされているページ内のすべてのビットが指定電圧よりも高いVt電圧を有する場合、制御はステップ914に移行されて、次のプログラムパルスが印加され、プログラミングは
図4に示す通常ランプ速度404に類似している通常ランプ速度を使用して継続する。ステップ920が、検証Vt読み出しにパスしていないと判定する場合、ステップ922が、ランプ速度増大をイネーブルし、ランプ速度増大フラグをセットし、プログラムパルスのランプ速度が
図4に示すランプ速度増大406に類似して増大される。
【0037】
ステップ906に戻って参照して、プログラム検証にパスした場合、操作はステップ908に進み、最後のアドレスがプログラムされているか否かが判定される。最後のアドレスがプログラムされている場合、ステップ909が、そのメモリセルのグループに対するプログラム操作にパスしたことを示す。最後のアドレスがプログラムされていない場合、ステップ908は操作をステップ904に移行する。操作は、メモリブロック202の各メモリセルのVtが少なくともPVTになるまでさらにプログラムパルスを印加することによってステップ904〜914を通じてループする。
【0038】
図9に示す方法900の実施形態は、2つの異なるランプ速度間でプログラムランプ速度を適応的に調整するようにできている。プログラム手順900は、より多くの数の暫定プログラムパルスをチェックし、追加のランプ速度増大フラグを使用することによって3つ以上のランプ速度をハンドリングするように構成されることができる。方法900は、ソフトプログラミングにおいて使用するために容易に適合されることができる。ソフトプログラミングのために、ランプ速度変更を行うべきであるか否かが判定される特定のポイントがあることになる。このポイントは、ソフトプログラミングのために選択されることになり、ステップ910において検出されることになる。プログラミングの進行が多数の以前のプログラム/消去サイクルに起因するパフォーマンス劣化を示したか否かを示すことになるプログラミング状態があることになる。この基準はステップ920において使用されることになる。この判定に基づいて、ステップ922におけるランプ速度は、引き続き通常ランプ速度のままであるか、増大したランプ速度に変化するかのいずれかであることになる。
【0039】
ここまでで、プログラム、ソフトプログラム、および/または消去操作の間にメモリセルVt移動を監視することによって書き込みパルスランプ速度を適応的に調整するシステムおよび方法が開示されたことを諒解されたい。すなわち、メモリセルの移動が遅すぎて暫定検証Vtチェックに失敗した場合、電荷トラッピングに起因して書き込み時間が遅くなるのを低減するために書き込みパルスのランプ速度が増大されることになる。これによって、NVMの寿命の第1の部分の間にピーク電圧を回避するかまたは少なくともピーク電圧にある時間を短くすることによってNVMセルへの損傷を低減することが可能になり、この後にのみ、指定書き込み時間を満たすためにランプ速度が増大される。
【0040】
特に、メモリアレイのメモリセルに対して書き込み操作を実行する方法は、第1の所定のランプ速度に応じてメモリセルに対して書き込み操作の第1の複数のパルスを印加するステップを含み、第1の複数のパルスは所定数のパルスである。方法は、メモリセルのサブセットの閾値電圧と、暫定検証電圧との比較を実行するステップをさらに含む。方法は、メモリセルのサブセットのいずれかの閾値電圧が暫定検証電圧との比較に失敗する場合、第1の所定のランプ速度と比較して増大されたランプ速度を有する第2の所定のランプ速度に応じてメモリセルに対して第2の複数のパルスを印加することによって、書き込み操作を継続するステップをさらに含む。方法は、メモリセルのサブセットの各々の閾値電圧が暫定検証電圧との比較をパスする場合、第1の所定のランプ速度に応じてメモリセルに対して第2の複数のパルスを印加することによって、書き込み操作を継続するステップをさらに含んでもよい。方法は、書き込み操作を実行するステップが消去手順を実行するステップを含むことをさらに特徴としてもよい。方法は、第1の複数のパルスを印加すること、および第2の複数のパルスを印加することが上記メモリセルのすべてのメモリセルに対して実行されることをさらに特徴としてもよい。方法は、第1の複数のパルスの各パルスおよび第2の複数のパルスの各パルスが印加された後、メモリセルのサブセットの閾値電圧と消去検証電圧との比較を実行し、メモリセルのサブセットの各々の閾値電圧が消去検証電圧との比較をパスする場合、メモリセルに対する書き込み操作のソフトプログラム手順を継続することをさらに特徴としてもよい。方法は、メモリセルが複数のページ内に配列され、複数のメモリセルとしての各ページ、メモリセルのサブセットが複数のページのうちの第1のページとしてさらに特徴づけられることをさらに特徴としてもよい。方法は、第1の所定のランプ速度が第1の電圧インクリメントを使用し、第2の所定のランプ速度が、第1の電圧インクリメントよりも大きい第2の電圧インクリメントを使用することをさらに特徴としてもよい。方法は、第1の所定のランプ速度が第1の複数のパルスに第1のパルス幅を使用し、第2の所定のランプ速度が第2の複数のパルスに、第1のパルス幅よりも小さい第2のパルス幅を使用することをさらに特徴としてもよい。方法は、書き込み操作を実行するステップがプログラム手順またはソフトプログラム手順を実行するステップを含むことをさらに特徴としてもよい。方法は、第1の複数のパルスの各パルスを印加し、第2の複数のパルスの各パルスを印加した後、メモリセルのサブセットの閾値電圧とプログラム検証電圧との比較を実行し、メモリセルに対して書き込み操作の第1の複数のパルスを印加するステップは、第1の複数のパルスが、その閾値電圧がプログラム検証電圧との比較に失敗するメモリセルのサブセットのメモリセルにのみ印加されることをさらに特徴づけられ、メモリセルに対して書き込み操作の第2の複数のパルスを印加するステップは、第2の複数のパルスが、その閾値電圧がプログラム検証電圧との比較に失敗するメモリセルのサブセットのメモリセルにのみ印加されることをさらに特徴づけられることをさらに特徴としてもよい。方法は、第2の複数のパルスが第2の所定数のパルスであることをさらに特徴としてもよく、方法は、メモリセルのサブセットの閾値電圧と第2の暫定検証電圧との比較を実行するステップと、メモリセルのサブセットのいずれかの閾値電圧が第2の暫定検証電圧との比較に失敗する場合、第2の所定のランプ速度と比較して増大されたランプ速度を有する第3の所定のランプ速度に応じてメモリセルに対して第3の複数のパルスを印加することによって、書き込み操作を継続するステップと、メモリセルのサブセットの各々の閾値電圧が第2の暫定検証電圧との比較をパスする場合、第1の所定のランプ速度または第2の所定のランプ速度に応じてメモリセルに対して第4の複数のパルスを印加することによって、書き込み操作を継続するステップとをさらに含んでもよい。
【0041】
メモリアレイのメモリセルに対して書き込み操作を実行する方法も開示される。方法は、書き込み操作の消去手順において、第1の所定のランプ速度に応じてメモリセルのサブセットに所定数のパルスを印加するステップを含む。方法は、メモリセルのサブセットの少なくとも1つのメモリセルの閾値電圧が暫定検証電圧よりも大きいか否かを判定するステップをも含む。方法は、メモリセルのサブセットの各メモリセルに対して複数の追加のパルスを印加するステップをも含む。方法は、メモリセルのサブセットの少なくとも1つのメモリセルの閾値電圧が暫定検証電圧よりも大きい場合、複数の追加のパルスは、第1の所定のランプ速度と比較して増大されたランプ速度を有する第2の所定のランプ速度に応じて印加されることも含む。方法は、メモリセルのサブセットの各メモリセルの閾値電圧が暫定検証電圧よりも大きくない場合、複数の追加のパルスは、第1の所定のランプ速度に応じて印加されることをさらに含む。方法は、消去手順の後、方法がメモリセルに対してソフトプログラム手順を実行することによって書き込み操作を継続するステップをさらに含んでもよいことをさらに特徴としてもよい。方法は、書き込み操作の消去手順において、方法が、所定数のパルスの各パルスおよび複数の追加のパルスの各パルスが印加された後、メモリセルのサブセットの閾値電圧と消去検証電圧とを比較するステップをさらに含んでもよく、メモリセルのサブセットのすべてのメモリセルの閾値電圧が消去検証電圧を下回る場合、メモリセルに対する書き込み操作のソフトプログラム手順によって継続することをさらに特徴としてもよい。方法は、メモリセルが複数のページ内に配列され、複数のメモリセルとしての各ページ、メモリセルのサブセットが複数のメモリセルのうちの第1のページとしてさらに特徴づけられることをさらに特徴としてもよい。方法は、第1の所定のランプ速度が第1の電圧インクリメントを使用し、第2の所定のランプ速度が、第1の電圧インクリメントよりも大きい第2の電圧インクリメントを使用することをさらに特徴としてもよい。方法は、第1の所定のランプ速度が第1のパルス幅を使用し、第2の所定のランプ速度が第1のパルス幅よりも小さい第2のパルス幅を使用することをさらに特徴としてもよい。
【0042】
不揮発性であるメモリセルのアレイを含む不揮発性メモリ(NVM)システムも開示される。NVMシステムは、アレイに結合されるコントローラをさらに含み、コントローラは、書き込み操作のために、第1の所定のランプ速度に応じて書き込み操作の第1の複数のパルスをアレイに印加し、ここで、第1の複数のパルスは所定数のパルスであり、アレイのサブセットの閾値電圧と、暫定検証電圧とを比較し、サブセットのいずれかのメモリセルの閾値電圧が暫定検証電圧との比較に失敗する場合、コントローラは、第1の所定のランプ速度と比較して増大されたランプ速度を有する第2の所定のランプ速度に応じて第2の複数のパルスをアレイに印加することによって、書き込み操作を継続する。NVMシステムは、サブセットの各メモリセルの閾値電圧が暫定検証電圧との比較をパスする場合、第1の所定のランプ速度に応じてメモリセルに対して第3の複数のパルスを印加することによって、コントローラが書き込み操作を継続することをさらに特徴としてもよい。NVMシステムは、書き込み操作が、プログラム手順、ソフトプログラム手順、および消去手順のうちの少なくとも1つを含むことをさらに特徴としてもよい。
【0043】
したがって、本明細書において描写したアーキテクチャは例示にすぎないこと、および、事実、同じ機能を達成する多くの他のアーキテクチャを実装することができることは理解されたい。要約すると、ただし依然として明確な意味で、同じ機能を達成するための構成要素の任意の構成が、所望の機能が達成されるように効果的に「関連付けられる」。したがって、本明細書における、特定の機能を達成するために結合される任意の2つの構成要素は互いに「関連付けられる」とみなすことができ、それによって、中間の構成要素またはアーキテクチャにかかわりなく、所望の機能が達成される。同様に、そのように関連付けられる任意の2つの構成要素も、所望の機能を達成するために互いに「動作可能に接続されている」または「動作可能に結合されている」とみなすことができる。
【0044】
さらに例として、一実施形態では、本明細書に開示のシステムの例示される要素は、単一の集積回路上または同じデバイス内に位置する回路である。代替的には、システムは、互いに相互接続される任意の数の別個の集積回路または別個のデバイスを含んでもよい。さらに例として、システムまたはその一部は、実回線または実回線に転換可能な論理表現のソフトまたはコード表現であってもよい。そのため、システムは、任意の適切なタイプのハードウェア記述言語において具現化されてもよい。
【0045】
さらに、上述の動作の機能間の境界は例示にすぎないことを当業者は認識しよう。複数の動作の機能を単一の動作に組み合わせることができ、かつ/または単一の動作の機能を追加の動作に分散させることができる。その上、代替的な実施形態は、特定の動作の複数のインスタンスを含んでもよく、動作の順序はさまざまな他の実施形態においては変更してもよい。
【0046】
本開示をその特定の好ましいバージョンを参照して相当に詳細に説明してきたが、他のバージョンおよび変形形態が可能であり考慮される。当業者は、添付の特許請求の範囲によって定義されているような本開示の精神および範囲から逸脱することなく、本開示の同じ目的を実行するための他の構造を設計または改変するための基礎として、開示されている概念および具体的な実施形態を容易に使用することができることを理解すべきである。