(57)【特許請求の範囲】
【請求項１】
メモリセルのグループをプログラムする方法であって、
前記メモリセルのグループは、各々が複数のプログラム状態のうちの第１の部分のプログラム状態にプログラムされる、メモリセルの第１のセグメントを含み、前記メモリセルのグループは、各々が前記複数のプログラム状態のうちの第２の部分のプログラム状態にプログラムされる、メモリセルの第２のセグメントを更に含み、前記メモリセルのグループは、各々が前記複数のプログラム状態のうちの前記第１の部分及び前記第２の部分以外のプログラム状態にプログラムされる、メモリセルの第３のセグメントを更に含み、
前記方法は、
プログラミングの第１のセグメントとして、
プログラミング電圧で前記メモリセルのグループにバイアスをかけることと、
第１の開始電圧及び第１の終了電圧を有する第１の傾斜電圧信号セグメントで前記メモリセルのグループをプログラム検証することと、
メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントのうちの特定数のメモリセルが前記第１の傾斜電圧信号セグメントでの前記プログラム検証に合格するまで、前記プログラミング電圧を増加させ、かつ、前記バイアスをかけることと前記第１の傾斜電圧信号セグメントで前記プログラム検証することとを繰り返すことと、
を含み、
プログラミングの第２のセグメントとして、
プログラミング電圧で前記メモリセルのグループにバイアスをかけることと、
第２の開始電圧及び第２の終了電圧を有する第２の傾斜電圧信号セグメントで前記メモリセルのグループをプログラム検証することと、
メモリセルの前記第３のセグメントのうちの特定数のメモリセルが前記第２の傾斜電圧信号セグメントでの前記プログラム検証に合格するまで、前記プログラミング電圧を増加させ、かつ、前記バイアスをかけることと前記第２の傾斜電圧信号セグメントで前記プログラム検証することとを繰り返すことと、
を含み、
前記第１の開始電圧は前記第２の開始電圧とは異なり、かつ、前記第１の終了電圧は前記第２の終了電圧とは異なる、方法。
【請求項２】
前記第１の傾斜電圧信号セグメントが前記第２の傾斜電圧信号セグメントと同じ傾斜率を有する、請求項１に記載の方法。
【請求項３】
前記第１の傾斜電圧信号セグメントが前記第２の傾斜電圧信号セグメントと重複する、請求項１に記載の方法。
【請求項４】
前記第１の傾斜電圧信号セグメント又は前記第２の傾斜電圧信号セグメントでの前記プログラム検証に合格する前記メモリセルの前記特定数は、他のメモリセルよりも高速でプログラムするメモリセルによって決定される、請求項１に記載の方法。
【請求項５】
前記第１の開始電圧は前記第２の開始電圧未満であり、前記第１の終了電圧は前記第２の終了電圧未満である、請求項１に記載の方法。
【請求項６】
目標メモリセルをアクティブにする傾斜電圧信号セグメントの特定の電圧に関連付けられたカウントを決定することをさらに含み、前記カウントは前記目標メモリセルの閾値電圧を示す、請求項１に記載の方法。
【請求項７】
プログラミングの前記第２のセグメントは、メモリセルの前記第１のセグメントのプログラミングを阻止することをさらに含む、請求項１に記載の方法。
【請求項８】
プログラミングの前記第１のセグメントは、前記プログラミング電圧で前記メモリセルのグループにバイアスをかける前に、ページバッファにデータをロードすることを更に含み、前記データは、メモリセルの前記第１のセグメントに対するユーザデータと、メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントに対するプログラムデータとを含んでおり、
メモリセルの前記第１のセグメントに対する前記ユーザデータは、メモリセルの前記第１のセグメントのメモリセルを、プログラム状態の前記第１の部分の目標プログラム状態にプログラムするように構成され、
メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントに対する前記プログラムデータは、メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントの全てのメモリセルを、プログラム状態の前記第１の部分の最も高いプログラム状態よりも高いプログラム状態にプログラムすることを試みるように構成される、請求項１に記載の方法。
【請求項９】
メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントに対する前記プログラムデータは、メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントの全てのメモリセルを、プログラム状態の前記第２の部分の最も低いプログラム状態にプログラムすることを試みるように構成される、請求項８に記載の方法。
【請求項１０】
プログラミングの前記第２のセグメントは、前記プログラミング電圧で前記メモリセルのグループにバイアスをかける前に、ページバッファにデータをロードすることを更に含み、前記データは、メモリセルの前記第１のセグメントに対する阻止データと、メモリセルの前記第２のセグメントに対するユーザデータと、メモリセルの前記第３のセグメントに対するプログラムデータとを含んでおり、
メモリセルの前記第１のセグメントに対する前記阻止データは、メモリセルの前記第１のセグメントのメモリセルのプログラミングを阻止するように構成され、
メモリセルの前記第２のセグメントに対する前記ユーザデータは、メモリセルの前記第２のセグメントのメモリセルを、プログラム状態の前記第２の部分の目標プログラム状態にプログラムするように構成され、
メモリセルの前記第３のセグメントに対する前記プログラムデータは、メモリセルの前記第３のセグメントの全てのメモリセルを、プログラム状態の前記第２の部分の最も高いプログラム状態よりも高いプログラム状態にプログラムすることを試みるように構成される、請求項８に記載の方法。
【請求項１１】
メモリセルの前記第３のセグメントは、各々が前記複数のプログラム状態のうちの第３の部分のプログラム状態にプログラムされるメモリセルを含み、
前記方法は、プログラミングの第３のセグメントとして、
プログラミング電圧で前記メモリセルのグループにバイアスをかけることと、
第３の開始電圧及び第３の終了電圧を有する第３の傾斜電圧信号セグメントで前記メモリセルのグループをプログラム検証することと、
特定数以上のメモリセルが前記第３の傾斜電圧信号セグメントでの前記プログラム検証に失敗しなくなるまで、前記プログラミング電圧を増加させ、かつ、前記バイアスをかけることと前記第３の傾斜電圧信号セグメントで前記プログラム検証することとを繰り返すことと、
を更に含み、
前記第１の開始電圧、前記第２の開始電圧、及び前記第３の開始電圧は全て異なる電圧であり、かつ、前記第１の終了電圧、前記第２の終了電圧、及び前記第３の終了電圧は全て異なる電圧である、請求項１に記載の方法。
【請求項１２】
プログラミングの前記第１のセグメントは、前記プログラミング電圧で前記メモリセルのグループにバイアスをかける前に、ページバッファにデータをロードすることを更に含み、前記データは、メモリセルの前記第１のセグメントに対するユーザデータと、メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントに対するプログラムデータとを含んでおり、
メモリセルの前記第１のセグメントに対する前記ユーザデータは、メモリセルの前記第１のセグメントのメモリセルを、プログラム状態の前記第１の部分の目標プログラム状態にプログラムするように構成され、
メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントに対する前記プログラムデータは、メモリセルの前記第２のセグメント及びメモリセルの前記第３のセグメントの全てのメモリセルを、プログラム状態の前記第２の部分の最も低いプログラム状態にプログラムすることを試みるように構成される、請求項１１に記載の方法。
【請求項１３】
プログラミングの前記第２のセグメントは、前記プログラミング電圧で前記メモリセルのグループにバイアスをかける前に、ページバッファにデータをロードすることを更に含み、前記データは、メモリセルの前記第１のセグメントに対する阻止データと、メモリセルの前記第２のセグメントに対するユーザデータと、メモリセルの前記第３のセグメントに対するプログラムデータとを含んでおり、
メモリセルの前記第１のセグメントに対する前記阻止データは、メモリセルの前記第１のセグメントのメモリセルのプログラミングを阻止するように構成され、
メモリセルの前記第２のセグメントに対する前記ユーザデータは、メモリセルの前記第２のセグメントのメモリセルを、プログラム状態の前記第２の部分の目標プログラム状態にプログラムするように構成され、
メモリセルの前記第３のセグメントに対する前記プログラムデータは、メモリセルの前記第３のセグメントの全てのメモリセルを、プログラム状態の前記第３の部分の最も低いプログラム状態にプログラムすることを試みるように構成される、請求項１２に記載の方法。
【請求項１４】
プログラミングの前記第３のセグメントは、前記プログラミング電圧で前記メモリセルのグループにバイアスをかける前に、ページバッファにデータをロードすることを更に含み、前記データは、メモリセルの前記第１のセグメント及びメモリセルの前記第２のセグメントに対する阻止データと、メモリセルの前記第３のセグメントに対するユーザデータとを含んでおり、
メモリセルの前記第１のセグメント及びメモリセルの前記第２のセグメントに対する前記阻止データは、メモリセルの前記第１のセグメント及びメモリセルの前記第２のセグメントのメモリセルのプログラミングを阻止するように構成され、
メモリセルの前記第３のセグメントに対する前記ユーザデータは、メモリセルの前記第３のセグメントのメモリセルを、プログラム状態の前記第３の部分の目標プログラム状態にプログラムするように構成される、請求項１３に記載の方法。
【請求項１５】
前記第１の傾斜電圧信号セグメント、前記第２の傾斜電圧信号セグメント、及び前記第３の傾斜電圧信号セグメントは、各々、異なる傾斜率を有する、請求項１１に記載の方法。
【請求項１６】
前記第１の開始電圧は前記第２の開始電圧未満であり、前記第２の開始電圧は前記第３の開始電圧未満であり、前記第１の終了電圧は前記第２の終了電圧未満であり、前記第２の終了電圧は前記第３の終了電圧未満である、請求項１１に記載の方法。
【請求項１７】
プログラム状態の前記第３の部分の各プログラム状態は、プログラム状態の前記第２の部分のプログラム状態を表すいずれの閾値電圧範囲よりも高い閾値電圧範囲によって表され、プログラム状態の前記第２の部分の各プログラム状態は、プログラム状態の前記第１の部分のプログラム状態を表すいずれの閾値電圧範囲よりも高い閾値電圧範囲によって表される、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、概して、メモリに関し、特定の実施形態は、メモリのプログラミングに関する。
【背景技術】
【０００２】
フラッシュメモリデバイスは、幅広い範囲の電子的用途において、よく使用される不揮発メモリのソースへと発展している。フラッシュメモリデバイスは、典型的には、高メモリ密度、高信頼性、および低電力消費を可能にする１トランジスタメモリセルを使用する。フラッシュメモリの通常の利用先には、パーソナルコンピュータ、フラッシュドライブ、デジタルカメラ、および携帯電話が含まれる。基本入出力システム（ＢＩＯＳ）等のプログラムコードおよびシステムデータが、典型的には、パーソナルコンピュータシステムで使用するためにフラッシュメモリデバイスに格納される。
【０００３】
典型的なフラッシュメモリデバイスは、典型的には一度に１バイトではなく、ブロック毎に消去および再プログラム可能なメモリブロックへメモリセルアレイが組織される、メモリのタイプである。メモリセルのそれぞれにおける閾値電圧の変化は、電荷格納構造（例えばフローティングゲートまたは電荷トラップ）または他の物理的現象（例えば相変化または分極）の消去またはプログラミングにより、各セルのデータ値を決定する。このタイプのセル内のデータは、電荷格納構造内の電荷の有無によって決定される。
【０００４】
プログラミング動作は、典型的には、プログラムされているメモリセルの制御ゲートに印加される一連の増分的に増加するプログラミングパルスを含む。各プログラミングパルス後のプログラム検証動作により、先行するプログラミングパルスから生じるメモリセルの閾値電圧が決定できる。
【０００５】
プログラム検証動作は、プログラムされているメモリセルの制御ゲートに傾斜電圧信号を印加することを含むことができる。傾斜電圧信号が、メモリセルがプログラムされている閾値電圧に達するときに、メモリセルはオンになり、感知回路がメモリセルに結合されているデータライン（例えばビットライン）上の電流を検出する。
【０００６】
各プログラム検証動作の傾斜電圧信号は、メモリセルについてＶｔ電圧範囲全体をカバーする。例えば、メモリセルの消去された閾値電圧が−３Ｖまで低下し、プログラムされた閾値電圧が５Ｖまで上昇することができる場合、傾斜電圧信号は、−３Ｖで開始し、５Ｖまで上昇する。こうして、各プログラミング動作は、プログラミングパルス時間に加え、プログラム検証傾斜電圧信号全体を生成するための時間を含む。メモリブロックの各メモリセル上でのかかるプログラミング動作の実行は、長い時間がかかり、メモリシステム内のパフォーマンスのボトルネックを生じさせる可能性がある。
【０００７】
上記の理由、および本明細書を読み、理解すると当業者には明らかであろう他の理由のために、当該分野では、より効率的なプログラミング動作が求められている。
【図面の簡単な説明】
【０００８】
【図１】メモリアレイのプログラム検証回路の一実施形態のブロック図を示す。
【図２】図１のブロック図に従う、ＮＡＮＤメモリアレイの一実施形態の一部の概略図を示す。
【図３】プログラム検証動作のセグメント分割の一実施形態のプロットを示す。
【図４Ａ】セグメント分割されたプログラム検証動作を組み込む、プログラミングの方法の一実施形態のフローチャートを示す。
【図４Ｂ】セグメント分割されたプログラム検証動作を組み込む、プログラミングの方法の一実施形態のフローチャートを示す。
【図４Ｃ】セグメント分割されたプログラム検証動作を組み込む、プログラミングの方法の一実施形態のフローチャートを示す。
【図５】図４の方法に従う、複数レベルメモリセルアレイの異なるプログラム状態の一実施形態のプロットを示す。
【図６】図１のプログラム検証回路を組み込むことができる、メモリシステムの一実施形態のブロック図を示す。
【発明を実施するための形態】
【０００９】
以下の詳細な説明において、その一部を形成し、例として、特定の実施形態が示される、添付の図面が参照される。図中、いくつかの図を通して、同様の数字はほぼ同様の構成要素を記載する。他の実施形態を利用してもよく、また、本開示の範囲から逸脱せずに、構造的、論理的、および電気的な変更を行ってもよい。したがって、以下の詳細な説明は、制限的な意味で解釈されるべきではない。
【００１０】
図１は、メモリアレイ１０１のプログラム検証回路の一実施形態のブロック図を示す。図２にプログラム検証されるメモリアレイ１０１が示され、以降に記載されるＮＡＮＤアレイ等の不揮発メモリアレイにすることができる。代替の実施形態は、他の種類のメモリアレイを使用することができる。例として、選択されたアクセスライン（例えばワードライン）に結合されるメモリセル１２０、１２１はプログラム検証されると想定される。
【００１１】
傾斜電圧発生器回路１００は、メモリアレイ１０１に結合される。傾斜電圧発生器回路１００は、プログラム検証動作中に、選択されたワードラインを介してメモリセルの制御ゲートに印加される傾斜電圧信号の生成に関与している。以降により詳細に記載されているように、傾斜電圧信号が、その印加されている選択されたメモリセルの閾値電圧まで上昇すると、そのメモリセルが作動し（アクティブにされ）、選択されたメモリセルに結合されるビットライン上に電流を流す。選択されたメモリセルがプログラムされた閾値電圧を決定するために、感知回路によってこの電流が検出される。
【００１２】
傾斜電圧発生器回路１００は、デジタル／アナログコンバータ（ＤＡＣ）１１１に結合されるカウンタ１１０を含む。カウンタ１１０は、クロック入力ＣＬＫの移行をカウントし、アナログ傾斜電圧信号にカウントを変換するデジタル／アナログコンバータ１１１へ、カウントを出力する。アナログ傾斜電圧信号は、傾斜電圧発生器回路１００からメモリアレイ１０１へ、電流利得、電圧利得、および／または電気インピーダンス変換のうちの１つ以上を提供できるバッファ１１２へ入力される。
【００１３】
ＤＡＣ１１１の範囲は、傾斜電圧発生器回路１００によって生成される傾斜電圧信号セグメントの意図されたＶｔ範囲をカバーするように、ＶｓｔａｒｔおよびＶｓｔｏｐによって定義できる。ＶｓｔａｒｔおよびＶｓｔｏｐ信号は、プログラム検証回路と同じチップ（図示せず）上に生成できる。
【００１４】
傾斜電圧信号セグメントの生成は、カウンタ１１０へのＣＬＫをオンにすることによって開始できる。このイベントは、プログラム検証回路と同じチップ上に存在しうるステートマシン（図示せず）によって制御可能である。カウンタ１１０がその最大カウントに達するとき等、傾斜電圧信号セグメントが完了すると、回路１００から「ＲＡＭＰ＿ＤＯＮＥ」という信号が生成され、傾斜電圧信号セグメントがその停止電圧、Ｖｓｔｏｐに達したことを示すために、ステートマシン（図示せず）に送り返される。
【００１５】
図１の実施形態において、カウンタ１１０は、８ビットカウンタである。カウンタ１１０は、こうして、００００００００から１１１１１１１１（例えば０〜２５５）へバイナリカウントを出力する。バッファ１０７によって、最上位７ビット（例えばビット１〜７）が周辺回路１０５へ出力される。この７ビットカウントは、以降、Ｖｔカウントと称され、０００００００〜１１１１１１１（例えば０〜１２７）のバイナリカウントである。傾斜電圧信号セグメント（例えば図３のセグメント３０１〜３０３を参照）がプログラムされているメモリセルの閾値電圧に達すると、Ｖｔカウントは、周辺回路１０５のラッチにラッチされる。ラッチされたＶｔカウントは、メモリセルを作動させた特定の電圧を生成したカウントに対応するため、プログラムされているメモリセルの閾値電圧を示す。
【００１６】
周辺回路１０５（例えばページバッファ）は、一実施形態において、感知回路、ラッチ、およびコンパレータを含む。周辺回路１０５は、さらに、例えば、ビットラインを介して、メモリアレイ１０１に結合される。周辺回路１０５のより詳細な動作については、以降、説明する。
【００１７】
図２は、図１に示されるように、不揮発メモリセルの一連のストリングを備える、ＮＡＮＤアーキテクチャメモリアレイ２０１の一部の一実施形態の概略図を示す。メモリアレイの本実施形態は、示されるＮＡＮＤアーキテクチャに制限されない。代替の実施形態は、ＮＯＲまたは他のアーキテクチャも使用することができる。
【００１８】
メモリアレイ２０１は、一連の（直列）ストリング２０４、２０５等の行に配列される不揮発メモリセル（例えばフローティングゲート）のアレイを含む。セルのそれぞれは、各一連のストリング２０４、２０５内において、ドレイン・ソース間に結合される。複数の一連のストリング２０４、２０５を横切って延びるアクセスライン（例えばワードライン）ＷＬ０〜ＷＬ３１は、列内のメモリセルの制御ゲートにバイアスをかけるように、列内の各メモリセルの制御ゲートに結合される。偶数／奇数のビットラインＢＬ＿Ｅ、ＢＬ＿Ｏ等のデータラインは、一連のストリングに結合され、最終的に、選択されたビットライン上の電流または電圧を感知することにより、各セルの状態を検出する感知回路に結合される。
【００１９】
メモリセルの各一連のストリング２０４、２０５は、ソース選択ゲート２１６、２１７（例えばトランジスタ）によってソースライン２０６へ、また、ドレイン選択ゲート２１２、２１３（例えばトランジスタ）によって個々のビットラインＢＬ＿Ｅ、ＢＬ＿Ｏへ結合される。ソース選択ゲート２１６、２１７は、それらの制御ゲートに結合されるソース選択ゲート制御ラインＳＧ２１８によって制御される。ドレイン選択ゲート２１２、２１３は、ドレイン選択ゲート制御ラインＳＧ（Ｄ）２１４によって制御される。
【００２０】
各メモリセルは、単一レベルセル（ＳＬＣ）または複数レベルセル（ＭＬＣ）としてプログラムすることができる。各セルの閾値電圧（Ｖｔ）は、そのセルのデータ値を示す。例えば、ＳＬＣにおいて、２．５ＶのＶｔは、プログラムされたセルを示してもよく、一方で、−０．５ＶのＶｔは消去されたセルを示してもよい。ＭＬＣは、それぞれ、異なる状態を示す複数のＶｔ範囲を使用する。複数レベルセルは、ビットパターンを特定のＶｔ範囲に割り当てることにより、従来のフラッシュセルのアナログの性質を利用することができる。この技術は、セルに割り当てられる多数のＶｔ範囲による、セル当たり２ビット以上を表すデータ値の格納を可能にする。
【００２１】
メモリセルをプログラムする時間の長さは、プログラミングパルスの時間に加えて、各プログラミングパルス後のプログラム検証動作を遂行するための時間を含むことができる。メモリセルがプログラミングパルスを経験するたびに、その閾値電圧が大きくなっていく。したがって、メモリセルがプログラム検証されるたびに同じ傾斜電圧信号を使用することは、時間の無駄である可能性がある。
【００２２】
セグメント化されたプログラム検証動作は、プログラム検証傾斜電圧信号を複数セグメントにセグメント化（例えば分割）する。図３は、こうしたセグメント化された動作の一例を示す。図３および本記載は３つのセグメントに言及しているが、本実施形態は、セグメントのいずれの特定の数にも制限されない。
【００２３】
図３は、従来の傾斜電圧発生器回路の出力にすることができる典型的な傾斜電圧信号３００を示す。例として、この傾斜電圧信号３００は、−３Ｖで開始し、４０．９６μ秒間にわたって５Ｖまで増加すると想定される。本発明の１つ以上の実施形態において、かかる傾斜電圧信号は、代わりに、３つのセグメント３０１〜３０３にセグメント化することもでき、ここで、３つのセグメント３０１  ３０３のそれぞれは、１２．８μ秒の期間を有する。
【００２４】
３つのセグメント３０１〜３０３のそれぞれは、隣接するセグメントと重複する。例えば、第１の傾斜電圧信号セグメント３０１は、−２Ｖの開始電圧を有し、１２．８μ秒の期間にわたり、０．５Ｖの停止電圧まで増加する。第２の傾斜電圧信号セグメント３０２は０Ｖの開始電圧を有し、そのそれぞれの１２．８μ秒間にわたり、２．５Ｖの停止電圧まで増加する。第３の傾斜電圧信号セグメント３０３は、２Ｖの開始電圧を有し、そのそれぞれの１２．８μ秒の期間にわたって、４．５Ｖの停止電圧まで増加する。セグメントを隣接するセグメントと重複させることにより、プログラムされているメモリセルによって生じる全ての閾値電圧が複数セグメントによってカバーされる可能性が高まり得る。
【００２５】
各傾斜電圧信号セグメントの範囲（例えば停止電圧と開始電圧との間の差）を、各プログラミングパルスから生じるメモリセルの閾値電圧の予測される分布の大きさに基づいて選択することができる。例えば、各プログラミングパルスから生じるメモリセルの閾値電圧の予測される分布が２．５Ｖ未満である場合、セグメント３０１〜３０３のそれぞれの範囲を、２．５Ｖに選択できる。
【００２６】
重複するセグメントであっても、セグメントのいずれか内においてプログラミングの遅いメモリセルは検証可能でない可能性がある。かかる場合において、これらのメモリセルの読み取りを訂正するために誤り訂正コーディングを使用してもよい。こうして、従来の傾斜電圧信号３００がセグメント化される（例えば分割される）セグメント数は、セグメント化されたプログラム検証動作によって検証可能なメモリセル数と誤り訂正コーディングによって訂正可能なメモリセル数との間の妥協点にすることができる。
【００２７】
セグメント数は、メモリ技術によって決定することもできる。例えば、１つのメモリ技術は、閾値電圧分布が、ある技術において、他の技術よりも幅広くなるように、プログラミングパルスに対して、別のメモリ技術とは異なって応答してもよい。より幅広い閾値電圧分布は、典型的には、より少ないセグメントを使用することができる。
【００２８】
図３に示される各セグメント３０１〜３０３は、さらに、図１のカウンタ１１０の最上位７ビットからのＶｔカウント（０〜１２７）を示す。同じ１２８カウントは、従来のセグメント化されていない傾斜電圧信号（例えば８Ｖ）よりも短い電圧範囲（例えば２．５Ｖ）をカバーするため、セグメント化されたプログラム検証方法は、先行技術と比較して、より大きい書き込み解像度（例えば電圧範囲／ビット数）を提供できることがわかる。
【００２９】
一実施形態において、各セグメントの傾斜率は、従来の（セグメント化されていない）傾斜率と同じに保持するべきである。これによって、各ワードラインの抵抗−容量（ＲＣ）に応じて実行される誤り訂正により、読み取り動作中に、閾値電圧をより容易に計算することができる。典型的なワードラインは、何千ものメモリセルに対して結合する可能性があるため、各ワードラインのＲＣは、ワードラインの一端に印加される電圧がワードラインのもう一方の端に達するのを遅延させることがありうる。傾斜電圧信号がワードラインの一端の特定の電圧である場合、ラッチされる実際のＶｔカウントは遅延せず、メモリセルを実際に作動させているものとは異なる電圧を示すことがありうる。プログラミング動作中に、この差は、傾斜電圧信号が印加されている場所から最も遠いメモリセルにプログラムされているデータに追加される既知のオフセットによって相殺される。このオフセットは、傾斜電圧信号の傾斜率と共に、印加された電圧からの距離を考慮する。傾斜電圧信号セグメントの傾斜率が従来の傾斜率とは異なる場合、ＲＣ誤りを相殺するために、異なるオフセットを決定する必要がある。
【００３０】
図４Ａ〜図４Ｃは、セグメント化されたプログラミング（例えばセグメント化されたプログラム検証）の方法の一実施形態のフローチャートを示す。セグメント化されたプログラミングの実施形態の動作を示すために、図４Ａ〜図４Ｃの例は、プログラム検証傾斜電圧信号が３つのセグメントにセグメント化された（例えばパーティション分割された）と想定する。さらに、メモリセルのそれぞれは、各メモリセルが、図５に示されるように、８つの異なる状態（例えばＬ０〜Ｌ７）のうちのそれぞれ１つにプログラム可能であるように、セル当たり３ビットを格納するように構成されると想定する。さらに、プログラミング実行順序は、最も低い状態（例えば、最も低い公称閾値電圧を表すＬ０）から最も高い状態（例えば、最も高いプログラムされた公称閾値電圧を表すＬ７）までであると想定する。代替の実施形態は、傾斜電圧信号を異なる数のセグメントにセグメント化することができる、および／または、メモリセルは、異なる数の状態のうちのそれぞれの１つにプログラムされるように構成することができる。以降に記載されているように、代替の実施形態は、さらに、最も高い状態から最も低い状態への順序等、異なるプログラミング実行順序を使用することができる。
【００３１】
図４Ａ〜図４Ｃに説明された方法は、３つのセグメントを備えるメモリセルのグループのプログラミングに関する。一実施形態において、このグループは、１ページのデータである。こうして、１ページのデータは、３つのデータロードサイクルおよび３つのプログラミングサイクルを経験する。
【００３２】
図４Ａは、ユーザデータの第１のセグメントによるメモリセルのプログラミングを示す。図４Ｂは、ユーザデータの第２のセグメントによるメモリセルのプログラミングを示す。図４Ｃは、ユーザデータの第３のセグメントによるメモリセルのプログラミングを示す。図４Ａ〜図４Ｃのプログラミング実施形態の記載では、図５の電圧レベル分布を参照する。
【００３３】
電圧レベルＬ０（例えば消去された状態）はプログラムされないため、Ｌ０電圧レベルを保持するべきメモリセルはプログラミングが阻止される。一実施形態において、阻止データ（例えば論理的ゼロ）は、これらのメモリセルのためにページバッファにロードされる。これは、これらのセルのプログラミングを阻止するように、メモリ制御回路に命令する。図４Ａ〜図４Ｃの以下の記載は、レベルＬ０を保持するべきメモリセルが、プログラミングからいくつかの点で阻止されると想定する。
【００３４】
図４Ａを参照すると、説明されたプログラミング動作の第１のセグメントは、１ページのデータをページバッファにロードすることから開始する（４０１）。１ページのデータは、Ｌ１またはＬ２状態のうちの１つにプログラムされるこれらのセル等のメモリセルの第１のセグメントについて、ユーザデータ（本明細書で用いられるように、「ユーザデータ」という用語は、例えば、オーバーヘッドデータを含む、セルに最終的にプログラムされる実際のデータを指す）を含むことができる。第１のページのデータの他の部分（例えばメモリセルの第２および第３のセグメントのデータ）は、プログラムデータを含むことができる。本明細書で用いられているように、「プログラムデータ」は、例えば、メモリ制御回路に、プログラミング動作の第１のセグメントの間、名目上は実現可能な最も高い閾値電圧に、対応するメモリセルをプログラムするように試行させるデータを指すことができる。一実施例において、プログラムデータは、例えば、全ての論理的データまたは状態Ｌ３に対応するデータにすることができる。次いで、１ページのデータのプログラミングが開始される（４０３）。
【００３５】
プログラミングは、初期のプログラミング電圧を有する初期のプログラミングパルスによって、第１のセグメントメモリセルの制御ゲートにバイアスをかけることを含む（４０４）。次いで、第１のセグメント傾斜電圧でプログラム検証動作が実行される（４０５）。かかる傾斜電圧３０１の一例が、図３に示される。特定の数（例えば１０個）の第２および／または第３のセグメントのメモリセルがプログラム検証動作に合格したかどうかが決定される（４０６）。これは、作動されたメモリセルからビットラインへの電流の流れを検知する感知回路によって遂行することができる。第２および／または第３のセグメントの特定の数のメモリセルが、プログラム検証動作に合格したかどうかを決定することは、第２および第３のセグメント内のプログラミングが速い（ｆａｓｔ−ｔｏ−ｐｒｏｇｒａｍ）セルによって決定付けられる。特定の数のメモリセルがプログラム検証動作に合格した場合（４０６）、プログラミングパルスカウントＮが決定される（４０７）。次いで、説明されたプログラミング動作の第２のセグメントが実行される（４０８）。
【００３６】
プログラム検証によって、第２および／または第３のセグメントの特定の数（例えば１０個）のメモリセルが問題なくプログラムされたことが示されない場合、プログラミングパルスカウントは、再びインクリメントされ（例えば、プログラミング電圧のインクリメント）、メモリセルは別のプログラミング動作のためにバイアスをかけられる（４０９）。第２および／または第３のセグメントの特定の数（例えば１０個）のメモリセルが問題なくプログラムされるまで、またはメモリセルがプログラムできないと判断されて誤り（エラー）状態となるまで、インクリメントされたプログラミングパルスおよびプログラム検証が繰り返される（４０５、４０６、４０９）。
【００３７】
図５の上方のプロット５０１は、図４に説明されたプログラミング動作の第１のセグメントの結果の一実施形態を示す。このプロットは、各状態にあるメモリセルの数の分布と、その閾値電圧範囲との対応を示す。
【００３８】
上方のプロット５０１は、プログラム阻止されたメモリセル（例えばＬ０）か、ユーザデータに対応する目標閾値電圧にプログラムされているメモリセル（例えばＬ１およびＬ２）か、またはプログラミング動作の第１のセグメント後にユーザデータに対応する目標電圧に達していないメモリセル（例えば分布５１０）か、のいずれかを示す。
【００３９】
図５に示される分布５１０および５２０は、各セグメント内のメモリセルの最終的なプログラムされた状態を必ずしも表さない。これらの分布５１０および５２０は、メモリセルの２つ以上のプログラムされた状態をカバーしてもよい。
【００４０】
図４Ｂに示される説明されたプログラミング動作の第２のセグメントは、１ページのデータをページバッファにロードすることを含む（４１１）。１ページのデータは、Ｌ３またはＬ４の状態のうちの１つにプログラムされるべきセルのようなメモリセルの第２のセグメントのユーザデータを含むことができる。ページは、さらに、メモリセルの第１のセグメントのプログラミングを阻止するように、メモリセルの第１のセグメントの阻止データ（例えば論理的ゼロ）を含むことができる。さらに、１ページのデータは、メモリセルの第３のセグメントのプログラムデータを含むことができる。本明細書において用いられているように、「プログラムデータ」は、例えば、メモリ制御回路を、プログラミング動作の第２のセグメントにおいて名目上は実現可能な最も高い閾値電圧に、対応するメモリセルをプログラムするように試行させるデータを指すことができる。一実施例において、１ページのデータに含まれるプログラムデータは、状態Ｌ５に対応するデータを含むことができる。次いで、１ページのデータのプログラミングが開始される（４１３）。
【００４１】
第１の傾斜電圧信号セグメントの開始電圧で開始することは、第２のセグメントメモリセルが既に第１のセグメントの最も高い閾値電圧にプログラムされているため、効率的ではない。よって、第１のセグメントのプログラミング動作の終了時に決定されるプログラミングパルスカウントＮは、（例えばＮ＋１）インクリメントされ、このプログラミングパルス数によって表される電圧がメモリセルの制御ゲートに印加される（４１４）。
【００４２】
次いで、プログラム検証動作が、第２の傾斜電圧信号セグメントで実行される（４１５）。かかる傾斜電圧信号セグメントの一例は、セグメント３０２として、図３に示される。
【００４３】
次いで、第２のセグメントの特定の数（例えば１０個）のメモリセルがプログラム検証動作に合格するかどうかが決定される（４１６）。これは、作動されたメモリセルからビットラインへの電流の流れを検出する感知回路によって遂行できる。第２のセグメントの特定の数のメモリセルがプログラム検証動作に合格したかどうかを決定することは、第２のセグメント内のプログラミングが速いセルによって決定付けられる。第２のセグメントの特定の数のメモリセルがプログラム検証動作に合格する場合（４１６）、プログラミングパルスカウントＭが決定される（４１７）。次いで、説明されたプログラミング動作の第３のセグメントが実行される（４１８）。
【００４４】
プログラム検証によって、第３のセグメントの特定の数（例えば１０個）のメモリセルが問題なくプログラムされたことが示されない場合、プログラミングパルスカウントは、再びインクリメントされ（例えばプログラミング電圧のインクリメント）、メモリセルは別のプログラミング動作についてバイアスをかけられる（４１９）。第３のセグメントの特定の数（例えば１０個）のメモリセルが問題なくプログラムされるまで、またはメモリセルがプログラムできないと決定されて誤り（エラー）状態となるまで、インクリメントされたプログラミングパルスおよびプログラム検証が繰り返される（４１５、４１６、４１９）。
【００４５】
図５の中間のプロット５０２は、プログラム阻止されたメモリセル（例えばＬ０）か、ユーザデータに従って目標閾値電圧にプログラムされたメモリセル（例えばＬ１〜Ｌ４）か、または説明されたプログラミング動作の第１および第２のセグメント後に、ユーザデータに相当する目標閾値電圧に達していないメモリセル（例えば分布５２０）を示す。
【００４６】
図４Ｃに示される、説明されたプログラミング動作の第３のセグメントは、１ページのデータをページバッファにロードすることを含む（４２１）。１ページのデータは、Ｌ５、Ｌ６またはＬ７状態のうちの１つにプログラムされるべきセルのようなメモリセルの第３のセグメントのユーザデータを含むことができる。１ページのデータの残りの部分（例えばメモリセルの第１および第２のセグメントのデータ）は、阻止データを含むことができる。次いで、１ページのデータのプログラミングが開始される（４２３）。
【００４７】
プログラミング動作の第２のセグメントの終了時に決定されたプログラミングパルスカウントＭが、インクリメントされ（例えばＭ＋１）、このプログラミングパルス数によって表される電圧が、メモリセルにバイアスをかけるために使用される（４２４）。
【００４８】
次いで、第３の傾斜電圧信号セグメントで、プログラム検証動作が実行される（４２５）。かかる傾斜電圧信号セグメントの一例は、傾斜電圧信号セグメント３０３として図３に示される。
【００４９】
次いで、特定の数（例えば１０個）以上のメモリセルが、プログラム検証に失敗していないかどうかが決定される（４２６）。特定の数以上のメモリセルが、プログラム検証動作に失敗していないかどうかの決定は、プログラミングが遅い（ｓｌｏｗ−ｔｏ−ｐｒｏｇｒａｍ）セルによって決定付けられ、プログラミングの完了を示す従来の方法に対応することができる。これは、ビットラインにおける電流の流れを感知回路が検知できないことによって遂行できる。
【００５０】
プログラム検証によって、特定の数（例えば１０個）以上のメモリセルが、プログラム検証に失敗していないことが示されない場合、プログラミングパルスカウントは再びインクリメントされ（例えばプログラミング電圧のインクリメント）、メモリセルは、別のプログラミング動作についてバイアスをかけられる（４２９）。特定の数（例えば１０個）以上のメモリセルが、プログラム検証に失敗しなくなるまで、またはメモリセルがプログラムできないことが決定されて誤り（エラー）状態となるまで、インクリメントされたプログラミングパルスおよびプログラム検証が繰り返される（４２５、４２６、４２９）。
【００５１】
図５の下方のプロット５０３は、説明されたプログラミング動作の第１、第２、および第３のセグメント後のメモリセルを示す。
【００５２】
図４および図５に説明されたプログラミング動作は、第１のセグメントメモリセルから第３のセグメントメモリセルへプログラムする実施形態を示す。代替の実施形態において、最初に第３のセグメントメモリセル、続いて第２のセグメントメモリセル、最後に第１のセグメントメモリセルがプログラムされるように、このプログラミングシーケンスを逆にすることができる。かかる実施形態は、より高い閾値電圧のメモリセルが最初にプログラムされるため、プログラムの中断状態が減るという利点を有することができる。
【００５３】
図６は、メモリデバイス６００の機能ブロック図を示す。メモリデバイス６００は、外部プロセッサ６１０に結合される。プロセッサ６１０は、マイクロプロセッサまたはいくつかの他の種類のコントローラにしてもよい。メモリデバイス６００およびプロセッサ６１０は、メモリシステム６２０の一部を形成する。
【００５４】
メモリデバイス６００は、メモリセルのアレイ１０１（例えば不揮発メモリセル）を含む。メモリアレイ１０１は、ワードライン列およびビットライン行のバンクで配列される。一実施形態において、メモリアレイ１０１の行は、メモリセルの一連のストリングを備える。
【００５５】
アドレスバッファ回路６４０は、入出力回路６６０を介して提供されるアドレス信号をラッチするように提供される。アドレス信号は、メモリアレイ１０１にアクセスするために、列デコーダ６４４および行デコーダ６４６によって受信およびデコードされる。
【００５６】
メモリデバイス６００は、感知増幅器回路６５０を使用して、メモリアレイ行内の電圧または電流の変化を感知することにより、メモリアレイ１０１内のデータを読み込む。感知増幅器回路６５０は、一実施形態において、メモリアレイ１０１から、データの列を読み込みおよびラッチするように結合される。双方向データ通信、さらに、コントローラ６１０による複数のデータ接続６６２によるアドレス通信のためにデータ入力および出力バッファ回路６６０が含まれる。メモリアレイにデータを書き込むために書き込み回路６５５が提供される。
【００５７】
メモリ制御回路６７０は、プロセッサ６１０から制御接続６７２上に提供される信号をデコードする。これらの信号は、データ読み込み、データ書き込み（プログラム）、および消去動作を含む、メモリアレイ１０１上の動作を制御するために使用される。メモリ制御回路６７０は、ステートマシン、シーケンサ、またはメモリ制御信号を生成するためのいくつかの他の種類のコントローラであってもよい。一実施形態において、メモリ制御回路６７０は、本開示のセグメント化されたプログラミング方法のうちの１つ以上の実行を制御するように構成される。
【００５８】
図６に示されるメモリデバイスは、メモリの特徴の基礎的な理解に役立つよう、簡略化されている。内部回路のより詳細な理解およびフラッシュメモリの機能は、当業者に公知である。
【００５９】
まとめ
要約すると、セグメント化されたプログラミング方法のうちの１つ以上の実施形態は、プログラミング中におけるより高速なプログラム検証動作を提供できる。各プログラム検証動作について典型的な先行技術の単一プログラム検証傾斜電圧信号を使用する代わりに、プログラム検証傾斜電圧は、それぞれ、異なる検証電圧で開始および終了する、複数の傾斜電圧信号セグメントにセグメント化される。メモリセルのセグメントは、検証が成功するまでプログラムされ（例えばプログラミングパルスおよびプログラム検証動作）、次いで、次のセグメントがプログラムされる（例えば最も低いセグメントから最も高いセグメントまたは最も高いセグメントから最も低いセグメント）。
【００６０】
本明細書において特定の実施形態が示され、記載されているが、同じ目的を実現するように考慮されている構成を、示された特定の実施形態に置き換えてもよいことが、当業者に理解されるであろう。本発明の多くの応用例が当業者に明らかであろう。したがって、本出願は、本発明の応用例または変形例をカバーすることを意図するものである。
【図１】
0005687356.tif 000002
【図２】
0005687356.tif 000003
【図３】
0005687356.tif 000004
【図４Ａ】
0005687356.tif 000005
【図４Ｂ】
0005687356.tif 000006
【図４Ｃ】
0005687356.tif 000007
【図５】
0005687356.tif 000008
【図６】
0005687356.tif 000009