(57)【特許請求の範囲】
【請求項１】
消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために１ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な１ページ以上のメモリセルを各ワード線に含む不揮発性メモリで、特定のページの開始プログラミング電圧を判定する方法であって、
（ａ）特定のページを代表するページサンプルを選択するステップと、
（ｂ）サンプルの各ページをプログラムするため、初期値と所定値に制限された最大電圧とにより階段波形を有するプログラミング電圧を提供するステップと、
（ｃ）ページサンプルを消去するステップと、
（ｄ）サンプル中の全ページにつき、制限された最大電圧に達するまで、またはページが目標パターンまでプログラムされて最終プログラミング電圧が収集統計の一部として蓄積されるまで、階段波形のステップごとにページをプログラムしかつベリファイするステップと、
（ｅ）最終プログラミング電圧から所定の量までスケールバックすることにより、蓄積された最終プログラミング電圧の各々から開始プログラミング電圧を推定するステップと、
（ｆ）ページの開始プログラミング電圧を導き出すため、収集統計からサンプルの平均開始プログラミング電圧を計算するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
ページの開始プログラミング電圧は、ページサンプルの最終プログラミング電圧を所定のステップ数により負にオフセットすることによって導き出される方法。
【請求項３】
請求項２記載の方法において、
所定のステップ数は、１５以下である方法。
【請求項４】
請求項１記載の方法において、
階段波形のステップは、通常プログラミング操作中にメモリに印加される別の階段波形のものに相応する方法。
【請求項５】
請求項１記載の方法において、
初期値を導き出された開始プログラミング電圧に設定して（ｂ）〜（ｅ）を繰り返すステップをさらに含む方法。
【請求項６】
請求項２記載の方法において、
初期値を導き出された開始プログラミング電圧に設定して（ｂ）〜（ｅ）を繰り返すステップをさらに含む方法。
【請求項７】
請求項３記載の方法において、
初期値を導き出された開始プログラミング電圧に設定して（ｂ）〜（ｅ）を繰り返すステップをさらに含む方法。
【請求項８】
請求項４記載の方法において、
初期値を導き出された開始プログラミング電圧に設定して（ｂ）〜（ｅ）を繰り返すステップをさらに含む方法。
【請求項９】
請求項１記載の方法において、
サンプルは、メモリアレイ内の複数のブロックから採ったより大きいサンプルの一部であり、
収集統計は、複数のブロックのプログラム可能なページに関連する蓄積された初期値を含む方法。
【請求項１０】
請求項９記載の方法において、
各ブロックの幾何学的に類似する場所に位置するページを各ブロックから選択することにより１セットのサンプルを形成するステップと、
前記セットの各サンプルからプログラミング電圧の統計推定を得るステップと、をさらに含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、セットの中で最小統計推定を選択することによる方法。
【請求項１１】
請求項１記載の方法において、
（ｇ）サンプルの各ページをプログラムするため、関連する初期値と所定のステップ数とにより階段波形を有する関連するプログラミング電圧を提供するステップと、
（ｈ）関連する初期値を（ａ）〜（ｆ）で判定したページの平均開始プログラミング電圧に設定するステップと、
（ｉ）ページサンプルを含むブロックを消去するステップと、
（ｊ）サンプル中の全ページにつき、関連するプログラミング電圧を関連する初期値と併せて使用してページが目標パターンまでプログラム可能か否かを判定し、プログラム可能ならば、収集統計の一部として関連する初期値を蓄積した後にページをさらなる処理から除外し、さもなくば関連する初期値を所定のステップにより増加させるステップと、
（ｋ）サンプル中の全ページがプログラム可能と判定されるまで、または関連する初期値が所定の最大電圧まで増加されるまで、（ｉ）〜（ｊ）を繰り返すステップと、
（ｆ）ページの開始プログラミング電圧を導き出すため、収集統計からサンプルの平均開始プログラミング電圧を計算するステップと、
をさらに含む方法。
【請求項１２】
不揮発性メモリであって、
消去可能なブロックの形に構成され、一斉に消去可能なメモリセルにアクセスするために１ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な１ページ以上のメモリセルを各ワード線に含むメモリセルアレイと、
ブロックの中で特定のページを代表するページの指定サンプルと、
サンプルの各ページをプログラムするため、初期値と所定値に制限された最大電圧とにより階段波形を有する関連するプログラミング電圧と、
特定のページの開始プログラミング電圧を判定する内蔵セルフテストモジュールであって、
（ａ）ページサンプルを消去するステップと、
（ｂ）サンプル中の全ページにつき、制限された最大電圧に達するまで、またはページが目標パターンまでプログラムされて最終プログラミング電圧が収集統計の一部として蓄積されるまで、階段波形のステップごとにページをプログラムしかつベリファイするステップと、
（ｃ）最終プログラミング電圧から所定の量までスケールバックすることにより、蓄積された最終プログラミング電圧の各々から開始プログラミング電圧を推定するステップと、
（ｄ）サンプルの平均開始プログラミング電圧を計算して特定のページの開始プログラミング電圧を導き出すため、収集統計を提供するステップと、を含むメモリ操作を提供する内蔵セルフテストモジュールと、を備え、
サンプルは、メモリアレイ内の複数のブロックから採ったより大きいサンプルの一部であり、
収集統計は、複数のブロックのプログラム可能なページに関連する蓄積された初期値を含む不揮発性メモリ。
【請求項１３】
不揮発性メモリであって、
消去可能なブロックの形に構成され、一斉に消去可能なメモリセルにアクセスするために１ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な１ページ以上のメモリセルを各ワード線に含むメモリセルアレイと、
ブロックの中で特定のページを代表するページの指定サンプルと、
サンプルの各ページをプログラムするため、初期値と所定値に制限された最大電圧とにより階段波形を有する関連するプログラミング電圧と、
特定のページの開始プログラミング電圧を判定する内蔵セルフテストモジュールであって、
（ａ）ページサンプルを消去するステップと、
（ｂ）サンプル中の全ページにつき、制限された最大電圧に達するまで、またはページが目標パターンまでプログラムされて最終プログラミング電圧が収集統計の一部として蓄積されるまで、階段波形のステップごとにページをプログラムしかつベリファイするステップと、
（ｃ）最終プログラミング電圧から所定の量までスケールバックすることにより、蓄積された最終プログラミング電圧の各々から開始プログラミング電圧を推定するステップと、
（ｄ）サンプルの平均開始プログラミング電圧を計算して特定のページの開始プログラミング電圧を導き出すため、収集統計を提供するステップと、を含むメモリ操作を提供する内蔵セルフテストモジュールと、を備え、
前記メモリ操作を提供する内蔵セルフテストモジュールは、
各ブロックの幾何学的に類似する場所に位置するページを各ブロックから選択することにより１セットのサンプルを形成するステップと、
前記セットの各サンプルからプログラミング電圧の統計推定を得るステップと、をさらに含み、
前記サンプルの平均開始プログラミング電圧を計算することは、セットの中で最小統計推定を選択することによる不揮発性メモリ。
【請求項１４】
請求項１２記載の不揮発性メモリにおいて、
不揮発性メモリは、ＮＡＮＤタイプの不揮発性メモリである不揮発性メモリ。
【請求項１５】
請求項１２記載の不揮発性メモリにおいて、
個々のメモリセルは、２ビット以上のデータを各々蓄積する不揮発性メモリ。
【請求項１６】
請求項１３記載の不揮発性メモリにおいて、
不揮発性メモリは、ＮＡＮＤタイプの不揮発性メモリである不揮発性メモリ。
【請求項１７】
請求項１３記載の不揮発性メモリにおいて、
個々のメモリセルは、２ビット以上のデータを各々蓄積する不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）やフラッシュＥＥＰＲＯＭ等の不揮発性半導体メモリに関し、より具体的には様々なメモリセル群の最適初期プログラミング電圧を判定することに関する。
【背景技術】
【０００２】
不揮発性電荷蓄積が可能な固体メモリは、特に形状因子が小さいカードにパッケージ化されたＥＥＰＲＯＭやフラッシュＥＥＰＲＯＭの形をとるものが最近、情報家電や家庭用電化製品を中心に様々なモバイルおよびハンドヘルド装置の記憶装置として盛んに選ばれている。同じく固体メモリであるＲＡＭ（ランダムアクセスメモリ）と違って、フラッシュメモリは不揮発性であって、電源を切った後にも蓄積されたデータを保持する。フラッシュメモリはコストが高くつくにもかかわらず、大容量記憶用途で使われることが多くなっている。ハードドライブやフロッピーディスク等、回転する磁気媒体を基礎とする従来の大容量記憶装置は、モバイルおよびハンドヘルド環境に不向きである。なぜならば、ディスクドライブは、えてしてかさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うためである。このような望ましくない属性を持つディスク方式の記憶装置は、殆どのモバイルおよびポータブル用途において実用的でない。他方、埋め込み型と着脱可能なカードの形をとるフラッシュメモリは、その小さなサイズ、低消費電力、高速度、および高い信頼性ゆえにモバイルおよびハンドヘルド環境に理想的にマッチする。
【０００３】
ＥＥＰＲＯＭと電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）は、消去が可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる不揮発性メモリである。いずれも半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造によるフローティング（非接続）導電性ゲートを利用する。さらに、このフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷の量によって制御される。つまり、フローティングゲート上の一定レベルの電荷に応じてコントロールゲートに印加すべき電圧（しきい値）があり、これが印加されることによりトランジスタは「オン」に切り替わり、ソース領域とドレイン領域との導通が可能となる。
【０００４】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは普通、メモリ装置の特性と、作動条件と、来歴とに左右される。セルの一定の記憶状態は、基本的にはウィンドウ内の個々の明確な分解可能なしきい値電圧レベル範囲によって指定される。
【０００５】
通常の２状態ＥＥＰＲＯＭセルでは、１つ以上の電流区切りレベルを設定して伝導ウィンドウを２つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース／ドレイン電流を区切りレベル（または基準電流ＩREF ）に比較することによって記憶状態が決定する。読み出される電流が区切りレベルのものより高ければ、セルはひとつの論理状態（例えば「０」状態）にあると判断する。他方、電流が区切りレベルのものに満たなければ、セルはもうひとつの論理状態（例えば「１」状態）にあると判断する。このような２状態セルは１ビットのデジタル情報を蓄積する。外部からプログラムできる基準電流源は多くの場合、メモリシステムの一部として用意され、区切りレベル電流を生成する。
【０００６】
メモリ容量を増やすため、フラッシュＥＥＰＲＯＭ装置の実装密度は半導体技術の進歩にともない益々高くなっている。各メモリセルで３状態以上を蓄積することによって蓄積容量を増やす方法もある。
【０００７】
多状態またはマルチレベルＥＥＰＲＯＭメモリセルの場合、伝導ウィンドウを２つ以上の区切り点で３つ以上の領域に分割し、各セルで２ビット以上のデータを蓄積できるようにする。したがって、ＥＥＰＲＯＭアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第５，１７２，３３８号明細書（特許文献１）には、多状態またはマルチレベルメモリセルを備えるＥＥＰＲＯＭまたはフラッシュＥＥＰＲＯＭが記載されている。
【０００８】
メモリセルとして機能するトランジスタは通常、２通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上の電子が加速する。同時に、コントロールゲートに印加される高電圧は、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。こうして電子は基板から介在するフローティングゲートまで引き寄せられる。
【０００９】
メモリ装置の消去にはいくつか方法がある。ＥＰＲＯＭの場合、紫外線によってフローティングゲートから電荷を取り除くことによってメモリをまとめて消去できる。ＥＥＰＲＯＭの場合、コントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導することによってメモリセルを電気的に消去できる（すなわち、ファウラ・ノルドハイム・トンネル）。通常、ＥＥＰＲＯＭはバイト単位で消去可能である。フラッシュＥＥＰＲＯＭの場合、メモリが一度にまるごと、または一度に１ブロック以上が、電気的に消去され、ブロックは５１２バイト以上のメモリで構成されることがある。
【００１０】
メモリ装置は通常、１つ以上のメモリチップをカード上に実装する。それぞれのメモリチップは、デコーダや消去、書き込み、および読み出し回路等の周辺回路によってサポートされるメモリセルアレイを備える。より精緻なメモリ装置は、知的で高度なメモリ操作とインターフェイスを実行する外部メモリコントローラと連動する。
【００１１】
特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された１ページのメモリセルをまとめてプログラムできる。
【００１２】
良好なプログラミング性能を達成するには、初期プログラミング電圧ＶPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧ＶPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するＶPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。最適な初期プログラミング電圧ＶPGM0なら数ステップで目標状態に達する。この最適ＶPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをＶPGM0トリミングという。
【００１３】
通常は工場からの出荷に先立ち専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの１つとして、最適初期プログラミング電圧を判定する（ＶPGM0トリミング）。つまり、従来のＶPGM0トリミングはメモリテスタで行われるが、このメモリテスタは高価な専用装置である。しかも、それらのメモリテスタは大抵ワード線を個別にテストするもので、現在のワード線のテストが完了した後に次のワード線に進む。このやり方でワード線上の１ページのメモリセルをプログラムループでプログラムし、目標パターン（例えば「００００・・・０」、ここで「０」は所定のプログラム状態）までプログラムできるか否かをテストする。このプログラムループでは通常、最初の開始プログラミング電圧から一連のプログラミング電圧パルスを使用する。そして、ベリファイ操作でページをリードバックして、目標パターンまで正常にプログラムされたか否かを判断する。プログラム−ベリファイ済みに至らない場合はページ／ワード線のセルを消去し、次のプログラムループで開始プログラミング電圧を上げて再びプログラムする。ページがプログラム−ベリファイ済みになるまではこのプロセスを繰り返す。このようにして、ページのプログラム−ベリファイを可能にする開始プログラミング電圧値を判断する。
【００１４】
ページを適切にプログラムするための初期プログラミング電圧を得るには、プログラムループの初期プログラミング電圧を上げながら試行を繰り返す必要がある。従来のＶPGM0トリミングでは、開始電圧を上げて次のプログラムループを実行する前にページを消去しなければならないことが分かる。そのページを保持するワード線のメモリセルは試行中に何度も消去されることがある。また、同じ消去ブロックにある他の全てのワード線も消去サイクルを通過する。
【００１５】
消去／プログラムサイクルを通過するたびに被る耐久性にかかわるストレスによって不揮発性メモリ装置の寿命は制限される。例えば、フラッシュＥＥＰＲＯＭ装置の耐久性は一定数のプログラム／消去サイクルに耐える力である。装置の能動誘電体膜における電子の捕獲は、この不揮発性メモリ装置の耐久性を制限する物理現象である。図２を参照すると、プログラミング中には基板から誘電体界面を通じて電荷蓄積単位にかけて電子が注入される。同様に、消去中には電荷蓄積単位から誘電体界面を通じて電子が抽出される。いずれの場合も、ある程度の電子は誘電体界面によって捕獲される。捕獲された電子が以降のプログラム／消去サイクルで印加される電場に対抗するため、プログラムしきい値電圧は低い値へ推移し、消去しきい値電圧は高い値に推移する。徐々に閉鎖するしきい値ウィンドウにこれを見ることができる。このしきい値ウィンドウの閉鎖によって実質的な耐久性は約１０4 プログラム／消去サイクルまで制限される。
【００１６】
各ブロックに多数のワード線があるメモリアーキテクチャで１ワード線のセルを何度も消去すると、同じブロックにある残りのワード線も同じ回数だけ消去される。このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。例えば各ワード線につき１０回程度の試行が必要で、各ブロックに６４本のワード線があるなら、そのブロックは全部で６４０回の消去サイクルを被ることになる。また、ＶPGM0トリミングは他の変数をカバーするためにも行われる。例えば、ワード線は複数の物理ページと複数の論理ページを持つことがある。ブロック境界に近いワード線は、コア領域にあるワード線に比べて若干異なるプログラミング特性を持つことがある。このようなばらつきによって必要なトリミング数が１０倍増しになることがある。このため、工場で行われる従来のＶPGM トリミングでは数千もの耐久サイクルをメモリ装置に費やすことになる。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【００１７】
したがって、高性能・高容量不揮発性メモリが一般的に求められている。とりわけ、過剰な耐久サイクルをメモリに強いることなく開始プログラミング電圧を決定し、最適に設定する、不揮発性メモリが求められている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】米国特許第５，１７２，３３８号明細書
【特許文献２】米国特許第５，５９５，９２４号明細書
【特許文献３】米国特許第５，０７０，０３２号明細書
【特許文献４】米国特許第５，０９５，３４４号明細書
【特許文献５】米国特許第５，３１５，５４１号明細書
【特許文献６】米国特許第５，３４３，０６３号明細書
【特許文献７】米国特許第５，６６１，０５３号明細書
【特許文献８】米国特許第５，３１３，４２１号明細書
【特許文献９】米国特許第６，２２２，７６２号明細書
【特許文献１０】米国特許第５，５７０，３１５号明細書
【特許文献１１】米国特許第５，９０３，４９５号明細書
【特許文献１２】米国特許第６，０４６，９３５号明細書
【特許文献１３】米国特許第５，７６８，１９２号明細書
【特許文献１４】米国特許第６，０１１，７２５号明細書
【非特許文献】
【００１９】
【非特許文献１】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no.11, Novemebr 2000, pp. 543-545
【発明の概要】
【００２０】
スケーリングによる開始電圧の推定
本発明のもうひとつの態様によると、ワード線上のページの初期プログラミングテスト運転によって開始プログラミング電圧の初期値を推定する。ワード線上の選択されたページを一連の階段波形電圧パルスで逐次プログラムし、パルス間にベリファイをはさみながらページが指定パターンまでプログラムされたことをベリファイする。ページがプログラム−ベリファイ済みになるときの最終プログラミング電圧を使用し、所定の量までスケールバックすることにより開始プログラミング電圧を推定する。類似するページ／ワード線サンプルを検討することによって平均開始プログラミング電圧を求める。異例の項目によって統計が歪まないようにするため、サンプル中でプログラムできないページ／ワード線は無視してよい。
【００２１】
もうひとつの実施形態ではプロセスをさらに洗練させ、第１の行程から推定された開始プログラミング電圧を第２の行程の階段波形の初期値として使用する。こうすれば類似するページのサンプルで平均を求めるときに、代表的なページの開始プログラミング電圧を推定できる。開始プログラミング電圧は、所定の階段波形ステップ数により最終プログラミング電圧を負にオフセットすることによって推定する。所定のステップ数は、好ましくは通常のプログラミング操作でプログラム成功に割り当てるステップ数とほぼ同じにする。
【００２２】
このスケーリング方式の利点として、各ページ／ワード線に対するシンプルな１または２行程プログラミングテストで十分にページの開始プログラミング電圧の推定を得ることができる。各ページを個別にテストでき、テスト中に多数の消去操作をともなうことはない。このため、ワード線サンプルの中でブロック消去を管理する必要はない。
【００２３】
高速プログラミングページ偏重ＶPGM トリミング
本発明のもうひとつの態様によると、複数の消去可能なブロックを有し、プログラミング特性が類似する１グループのワード線を各ブロックに有するメモリアレイにおいて、グループの代表的なページの最適開始プログラミング電圧を得る方式は、１セットのブロックにわたってセットの各ブロックで幾何学的に類似する位置にある１つ以上のワード線でサンプルを形成することと、セットの各サンプルからプログラミング電圧の統計推定を得ることと、最適開始プログラミング電圧を導き出すためにセットの中で最小推定を選択することとを含む。高速プログラミングワード線は低速プログラミングワード線に比べて低いプログラミング電圧ですむため、このやり方により最適値はグループの高速プログラミングワード線を重視したものになる。
【００２４】
少なくとも類似するページを各ブロックから選択することによって個々のサンプルを形成しテストするこの方式には、最低限の記憶装置ですむという利点もある。それぞれのサンプルをテストした後には平均値の形でテスト結果を出し、蓄積する。次のサンプルも同様にテストし、その平均値を蓄積された最初の平均値に比較する。記憶装置にはいずれか低いほうの平均値が残るから、１セットのサンプルを一度に１サンプルずつ処理する過程でただひとつのデータを蓄積するだけでよい。
【００２５】
他のセクションで説明したプログラミング電圧トリミング方式では、ページの全てのビットがプログラム−ベリファイ済みか否かを一度に１ページずつ調べる。低速プログラミングビットもプログラム−ベリファイ済みにならなければページ全体がプログラムされたことにはならないから、この場合のテスト結果は低速プログラミングビット寄りのものになる。その結果、開始電圧の推定は高速プログラミングビットにとって過大なものとなり、オーバープログラミングを招くおそれがある。ここで説明するサンプリング・統計計算方式なら、低速プログラミングビットに偏った方式から導き出された最も低い値を開始電圧として選択できる。
【００２６】
各ブロックからごく一部を選択することによってサンプルを形成するため、欠陥ワード線が大部分を占める不良ブロックにサンプル平均がさほど左右されないという利点もある。
【００２７】
本発明のさらなる特徴と利点は、この後に続く好適な実施形態の説明を添付の図面と併せて解釈することで理解することができる。
【図面の簡単な説明】
【００２８】
【図１】不揮発性メモリチップの機能ブロックを概略的に示す。
【図２】不揮発性メモリセルを概略的に示す。
【図３】フローティングゲートが随時一度に選択的に蓄積できる４通りの電荷Ｑ１〜Ｑ４でソース−ドレイン電流ＩD とコントロールゲート電圧ＶCGとの関係を示す。
【図４】ＮＯＲメモリセルアレイの一例を示す。
【図５Ａ】ＮＡＮＤストリングの形に構成されたメモリセルストリングを概略的に示す。
【図５Ｂ】図５Ａに示されたＮＡＮＤストリング等のＮＡＮＤストリングからなるＮＡＮＤメモリセルアレイの一例を示す。
【図６】消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。
【図７】階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。
【図８】いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。
【図９】最適初期プログラミング電圧を判定するために図８に示されたメモリチップのいずれか１つをテストするメモリテスタの機能ブロックを概略的に示す。
【図１０】好適な実施形態に従い最適初期プログラミング電圧を判定するために図８に示されたメモリチップのいずれか１つとともに作動する代替のメモリテスタの機能ブロックを示す。
【図１１Ａ】メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。
【図１１Ｂ】図１１Ａに見られる良好なブロックを選択する一実施形態をより詳細に示す。
【図１２】ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。
【図１３】本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。
【図１４】図１３に見られる作業の具体的な実施例を示すフローチャートである。
【図１５】メモリセルページの初期プログラミングテストで使用する階段波形を示す。
【図１６】図１５に見られる階段波形走査を使用し、ＶPGM トリミングの開始プログラミング電圧を判定するフローチャートである。
【図１７】ページ／ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
【図１８】高速プログラミングワード線を重視したＶPGM トリム値を得る方式を示すフローチャートである。
【発明を実施するための形態】
【００２９】
メモリシステム
図１〜図７は、本発明の様々な態様を実装できる例示的なメモリシステムを示す。
図１は、不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ１００は、二次元のメモリセルアレイ２００と、制御回路２１０と、デコーダ、読み出し／書き込み回路、マルチプレクサ等の周辺回路とを含む。メモリアレイ２００は、行デコーダ２３０Ａおよび２３０Ｂによりワード線（図２参照）ごとに、また列デコーダ２６０Ａおよび２６０Ｂによりビット線（図２参照）ごとにアドレスできる。読み出し／書き込み回路２７０Ａおよび２７０Ｂにより、メモリセルページの読み出しまたはプログラムは並行して行うことができる。好適な実施形態において、同じワード線を共有する隣接するメモリセル行からページが構成される。メモリセル行を複数のページに区分する別の実施形態において、個々のページに向けて読み出し／書き込み回路２７０Ａおよび２７０Ｂを多重化するためにページマルチプレクサ２５０Ａおよび２５０Ｂを設ける。
【００３０】
制御回路２１０は読み出し／書き込み回路２７０と協働しながらメモリアレイ２００に対してメモリ操作を実行する。制御回路２１０は通常ならば状態マシン２１２を含むほか、オンチップアドレスデコーダや電力制御モジュール（明確に図示せず）等、その他の回路を含む。状態マシン２１２はチップレベルのメモリ操作制御を提供する。
メモリアレイ２００は通常、行および列に配列されてワード線およびビット線によりアドレスできる二次元のメモリセルアレイとして構成される。アレイは、ＮＯＲタイプのアーキテクチャまたはＮＡＮＤタイプのアーキテクチャに従って形成できる。
【００３１】
図２は、不揮発性メモリセルを概略的に示す。メモリセル１０は、フローティングゲートや誘電体層等の電荷蓄積単位２０を有する電界効果トランジスタによって実装できる。メモリセル１０は、ソース１４、ドレイン１６、およびコントロールゲート３０も含む。
現在、商業的に成功を収めた不揮発性固体メモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用され、各種のメモリセルは１つ以上の電荷蓄積素子を持つ。
【００３２】
典型的な不揮発性メモリセルはＥＥＰＲＯＭとフラッシュＥＥＰＲＯＭとを含む。米国特許第５，５９５，９２４号明細書（特許文献２）には、ＥＥＰＲＯＭセルの例とその製造方法が記載されている。米国特許第５，０７０，０３２号明細書（特許文献３）、米国特許第５，０９５，３４４号明細書（特許文献４）、米国特許第５，３１５，５４１号明細書（特許文献５）、米国特許第５，３４３，０６３号明細書（特許文献６）、米国特許第５，６６１，０５３号明細書（特許文献７）、米国特許第５，３１３，４２１号明細書（特許文献８）、および米国特許第６，２２２，７６２号明細書（特許文献９）には、フラッシュＥＥＰＲＯＭセルの例と、メモリシステムにおけるその運用と、その製造方法が記載されている。特に米国特許第５，５７０，３１５号明細書（特許文献１０）、米国特許第５，９０３，４９５号明細書（特許文献１１）、米国特許第６，０４６，９３５号明細書（特許文献１２）には、ＮＡＮＤセル構造を持つメモリ装置の例が記載されている。また、エイタンらによる「ＮＲＯＭ：新しい局限トラッピング、２ビット不揮発性メモリセル」，ＩＥＥＥ電子デバイスレター，第２１巻，第１１号，２０００年１１月，５４３〜５４５ページ (Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no.11, Novemebr 2000, pp. 543-545)（非特許文献１）、米国特許第５，７６８，１９２号明細書（特許文献１３）および米国特許第６，０１１，７２５号明細書（特許文献１４）には、誘電性蓄積素子を利用するメモリ装置の例が記載されている。
【００３３】
実際には、コントロールゲートに基準電圧が印加されるときにセルのソース電極とドレイン電極にかけて伝導電流を感知することによってセルの記憶状態を読み出すのが普通である。セルのフローティングゲート上の特定の各電荷につき、一定の基準コントロールゲート電圧に対応する伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウはフローティングゲートにプログラムできる電荷の範囲によって決まる。
【００３４】
分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートでテスト対象となる特定の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いかまたは高いかを検出することも可能である。一実施形態において、ビット線の静電容量を通じて放電する伝導電流のレートを調べることによって、しきい値電流に対する伝導電流の検出を果たす。
【００３５】
図３は、フローティングゲートが随時一度に選択的に蓄積できる４通りの電荷Ｑ１〜Ｑ４でソース−ドレイン電流ＩD とコントロールゲート電圧ＶCGとの関係を示すものである。実線で描かれた４本のＩD 対ＶCG曲線はメモリセルのフローティングゲートにプログラムできる４通りの電荷レベルを表し、４通りの可能な記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウの範囲は０．５Ｖから３．５Ｖに及ぶ。しきい値ウィンドウをそれぞれ０．５Ｖ間隔で５つの領域に分割することにより、６通りの記憶状態に区切ることができる。例えば、図に示されるように２μＡの基準電流ＩREF を使用するなら、Ｑ１でプログラムされるセルは、その曲線がＶCG＝０．５Ｖおよび１．０Ｖで区切られたしきい値ウィンドウの領域内でＩREF と交差するため、記憶状態「１」にあるとみなされる。同様に、Ｑ４は記憶状態「５」にある。
【００３６】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。この場合は所要の分解能を達成するためにプログラミング操作と読み出し操作の精度を上げる必要がある。
【００３７】
図４は、ＮＯＲメモリセルアレイの一例を示す。メモリアレイ３００のメモリセルの各行は、それぞれのソース１４とドレイン１６によってデイジーチェーン方式で接続される。この設計は仮想接地設計と呼ばれることがある。行内のセル１０のコントロールゲート３０はワード線４２等のワード線へ接続する。列内のセルのソースおよびドレインは、ビット線３４および３６等、選択されたビット線へそれぞれ接続する。
【００３８】
図５Ａは、ＮＡＮＤストリングの形に構成されたメモリセルストリングを概略的に示す。ＮＡＮＤストリング５０は、ソースおよびドレインによってデイジーチェーン方式で接続された一連のメモリトランジスタＭ１、Ｍ２・・・Ｍｎ（例えば、ｎ＝４、８、１６またはそれ以上）からなる。１対の選択トランジスタＳ１、Ｓ２は、ＮＡＮＤストリングのソース端子５４とドレイン端子５６を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイでソース選択トランジスタＳ１がオンになると、ソース端子はソース線へ結合される（図５Ｂ参照）。同様に、ドレイン選択トランジスタＳ２がオンになると、ＮＡＮＤストリングのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、一定量の電荷を蓄積して目的の記憶状態を表現する電荷蓄積素子２０を具備する。各メモリトランジスタのコントロールゲートは読み出し操作と書き込み操作とを制御する。図５Ｂに見られるように、ＮＡＮＤストリング行の対応するメモリトランジスタのコントロールゲートは、いずれも同じワード線へ接続する。同様に、選択トランジスタＳ１、Ｓ２のそれぞれのコントロールゲートは、それぞれのソース端子５４とドレイン端子５６を介したＮＡＮＤストリングへのアクセスを制御する。同様に、ＮＡＮＤストリング行の対応する選択トランジスタのコントロールゲートは、いずれも同じ選択線へ接続する。
【００３９】
ＮＡＮＤストリングの中でアドレスされたメモリトランジスタを読み出したり、あるいはプログラミング中にベリファイしたりするときには、そのコントロールゲートにしかるべき電圧を供給する。同時に、ＮＡＮＤストリング５０の中でアドレスされていない残りのメモリトランジスタは、それぞれのコントロールゲートに十分な電圧が印加されることによって完全にオンになる。このようにして、個々のメモリトランジスタのソースからＮＡＮＤストリングのソース端子５４にかけて導電経路ができあがり、個々のメモリトランジスタのドレインからセルのドレイン端子５６にかけても同様である。米国特許第５，５７０，３１５号明細書（特許文献１０）、米国特許第５，９０３，４９５号明細書（特許文献１１）、米国特許第６，０４６，９３５号明細書（特許文献１２）には、そのようなＮＡＮＤストリング構造を持つメモリ装置が記載されている。
【００４０】
図５Ｂは、図５Ａに示されたＮＡＮＤストリング等のＮＡＮＤストリングからなるＮＡＮＤメモリセルアレイの一例を示す。ビット線、例えばビット線３６は、ＮＡＮＤストリングの各列に沿って各ＮＡＮＤストリングのドレイン端子５６へ結合する。ソース線、例えばソース線３４は、ＮＡＮＤストリングの各バンクに沿って各ＮＡＮＤストリングのソース端子５４へ結合する。ＮＡＮＤストリングのバンクのセル行に沿ったコントロールゲートはワード線に接続する。ＮＡＮＤストリングのバンクのワード線と選択線にしかるべき電圧をかけることにより、ＮＡＮＤストリングのバンクのメモリセル行全体をアドレスできる。ＮＡＮＤストリングの中であるひとつのメモリトランジスタを読み出すときには、ストリングの中にある残りのメモリトランジスタがそれぞれのワード線を通じてハードにオンになるため、ストリングの中を流れる電流は基本的に、読み出し対象セルに蓄積される電荷レベルに左右される。
【００４１】
図６は、消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。電荷蓄積メモリ装置のプログラミングでは専らその電荷蓄積素子に電荷を加えるだけである。このため、プログラミング操作にあたって、メモリセルの電荷蓄積素子に存在する電荷を事前に除去（または消去）しなければならない。セルアレイ全体あるいはアレイのかなりのセル群を、電気的に一斉に（瞬時に）消去するＥＥＰＲＯＭ等の不揮発性メモリは「フラッシュ」ＥＥＰＲＯＭと呼ばれる。消去の後にはセル群を再度プログラムできる。一斉に消去できるセル群は１つ以上のアドレス可能な消去単位からなる。消去単位またはブロックは通常１ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、１回の操作で２ページ以上をプログラムしたり、あるいは読み出したりする場合もある。各ページは通常１セクタ以上のデータを格納し、このセクタのサイズはホストシステムによって決まる。磁気ディスクドライブの規格に従い５１２バイトのユーザデータからなるセクタはその一例であり、さらにここにユーザデータおよび／またはこれを格納するブロックに関する何バイトかのオーバーヘッド情報が加わる。
【００４２】
図６に見られる例では、メモリアレイ２００の個々のメモリセルには、ワード線ＷＬ０〜ＷＬy とビット線ＢＬ０〜ＢＬx によってアクセスできる。このメモリは消去ブロック０、１・・・ｍ等の消去ブロックに構成されている。図５Ａおよび図５Ｂも参照すると、ＮＡＮＤストリング５０の中に１６のメモリセルがあるなら、アレイ内のＮＡＮＤストリングの最初のバンクにはＷＬ０〜ＷＬ１５でアクセスできる。消去ブロック０は、ＮＡＮＤストリングの最初のバンクの全メモリセルが一斉に消去されるように構成されている。別のメモリアーキテクチャでは、２つ以上のＮＡＮＤストリングのバンクを一斉に消去できる。
【００４３】
図７は、階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに増加された電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行って、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された１ページのメモリセルをまとめてプログラムできる。
【００４４】
メモリテストシステム
図８〜図１０は、本発明の様々な態様を実装できる例示的なメモリテストシステムを示す。
良好なプログラミング性能を達成するには、初期プログラミング電圧ＶPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧ＶPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するＶPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。パルスからパルスにかけてのステップサイズにも同じことが当てはまる。一般的には、適切な分解能で図３に見られる区切られたあるいは分離された各領域を数ステップで横断できるのが最適なステップサイズである。最適な初期プログラミング電圧ＶPGM0なら数ステップで目標状態に達する。一般的に、ステップサイズはしきい値ウィンドウ内の区画数に基づき事前に決定できる。最適ＶPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをＶPGM0トリミングという。
【００４５】
図８は、いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。メモリテスタ３００は通常、並行テストにあたって多数のメモリチップ１００へ接続する。通常は工場からの出荷に先立ち、専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの１つとして、最適初期プログラミング電圧を判定する（ＶPGM0トリミング）。
【００４６】
図９は、最適初期プログラミング電圧を判定するために図８に示されたメモリチップのいずれか１つをテストするメモリテスタの機能ブロックを概略的に示す。基本的に、メモリテスタ３００はメモリチップ１００に向けて一連のコマンドを発行し、これを受けてメモリチップは様々な初期プログラミング電圧サンプルを使って数々のプログラミング操作を実行する。不揮発性メモリアレイ２００にはシステムデータを蓄積する指定エリア（「ＲＯＭＦＵＳＥ」）２０２がある。メモリテスタはメモリインターフェイス３１０を通じてオンチップメモリコントローラ２１０とやり取りする。テスタのプロセッサ３０２は、ＲＯＭ３０８から当初引き出されたＲＡＭ３０４内のテストプログラムを実行する。１組のテスタレジスタ３０６によりテストプログラムの実行は捗る。テストプログラムは、ユーザインターフェイス３１２からの入力を通じてユーザによって制御される。テスト結果をもとに、タイプの異なるワード線やページ等の様々なプログラミングバリエーションにとって最適な初期プログラミング電圧ＶPGM0を判断する。トリム値はＲＯＭＦＵＳＥ２０２に戻され、蓄積される。通常のメモリ使用では、電源投入時にＲＯＭＦＵＳＥのデータをコントローラレジスタ３５０にロードすることで、コントローラ２１０はメモリ操作中にそれらのデータに速やかにアクセスできる。
【００４７】
図１０は、好適な実施形態に従い最適初期プログラミング電圧を判定するために図８に示されたメモリチップのいずれか１つとともに作動する代替のメモリテスタの機能ブロックを示す。この実施例ではテスト機能の多くがメモリチップ１００そのものに組み込まれている。オンチップメモリコントローラ２１０’は、埋め込み内蔵セルフテスト（「ＢＩＳＴ」）モジュール３４０と１組のコントローラレジスタ３５０のための追加の容量とによってさらに強化されている。このため、既述のＶPGM トリミング操作を含む種々のテストはオンチップで実行できる。テスト結果をもとに最適初期プログラミング電圧ＶPGM0をオンチップまたは外部テスタ３３０により決定できる。決定した値はＲＯＭＦＵＳＥ２０２に戻され、蓄積される。通常のメモリ使用では、電源投入時にＲＯＭＦＵＳＥのデータをコントローラレジスタ３５０にロードすることで、コントローラ２１０’はメモリ操作中にそれらのデータに速やかにアクセスできる。
【００４８】
この強化セルフテスト型オンチップコントローラ２１０’により、外部の専用テスタはもはや必要ない。並行してテストされる多数のメモリチップの操作にあたっては、パーソナルコンピュータで実装されたシンプルなテスタ３１０で事足りる。メモリテスタ３１０はテスタメモリインターフェイス３３２を通じてオンチップメモリコントローラ２１０’とやり取りする。テスタはユーザインターフェイス３３４からオペレータ入力を受け取る。一実施例において、テスタ３１０はメモリチップ１００の各々にセルフテストの実行を指示し、テストの終わりに各メモリチップの状態を報告するだけである。もうひとつの実施例において、テスタ３１０はテスト結果から統計を収集し、統計計算を行う。
このセルフテスト型オンチップコントローラ２１０’には、高価な専用テスタを使わずにすむという利点がある。テストを現場で行い、メモリ装置の経年劣化にともないＶPGM0値のトリミングをやり直すという可能性も提供される。
【００４９】
ＶPGM トリミング操作
図１１Ａは、メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。既に述べたように、このプロセスはプログラミング電圧（「ＶPGM 」）トリミングと呼ばれることもある。
ステップ４００：良好なブロックｉを選択する。実施例によっては、時間がかかるＶPGM トリミング操作に取りかかる前のブロックに迅速なプログラムテストを行うと好ましい。このステップは実装しだいでオプションである。これを省くには、欠陥ワード線に遭遇した場合にその欠陥ワード線を無視するだけでよい。良好なブロック判定の詳しい説明を図１１Ｂに示す。
ステップ４１０：サンプリングのため、選択したブロックｉで１グループのワード線を選択する。｛ＷＬ（ｉ，ｊ）ここでｊ＝０、ｍ−１｝。一般的に、選択されるワード線のグループとワード線のタイプは類似するプログラミング特性を持つ。
ステップ４２０：ＷＬ（ｉ，ｊ）上のページで、ＶPGM0（ｉ，ｊ）から始まる階段パルス電圧波形により所定のパルス数以内でページ全体を指定状態までプログラムする初期プログラミング電圧ＶPGM0（ｉ，ｊ）を判断する。ワード線ＷＬ（ｉ，ｊ）を共有する１ページのメモリセルを並行してプログラムする。階段波形はパルスのたびに１ステップずつ増加し、所定のパルス数まで増加する。
ステップ４６０：十分なサンプルを収集するため、必要に応じステップ４００〜４２０を繰り返して別のブロックを選択する。例えば、プログラミング特性が異なる３タイプのワード線がそれぞれのブロックにある。第１のタイプはブロックの上境界にある最初のワード線２本である。第２のタイプはブロックの下境界にある最後のワード線２本である。第３のタイプはブロックのコア領域にある全ワード線である。３タイプのワード線のそれぞれでサンプルを充実させるには、メモリアレイにまたがって分布する多数のブロックで大きなサンプルを採るのが好ましい。以降のセクションで説明するように、１組のブロックから幾何学的配置が類似するワード線を採ることによってタイプが類似する様々なワード線サンプルを形成することもできる。
ステップ４７０：ワード線サンプル全体で平均開始プログラミング電圧（「＜ＶPGM0＞」）を計算する。それには、各ワード線サンプルのＶPGM0の総計を全ワード線サンプルの総計で割る。すなわち、
0004819951.tif 000002
【００５０】
図１１Ｂは、図１１Ａに見られる良好なブロックを選択する一実施形態をより詳細に示す。良好なブロックとは、ワード線沿いの全メモリセルページをプログラムできるブロックを意味する。以下、図１１Ａに見られるステップ４００をより明確に説明する。
ステップ４０１：ブロックを消去する。
ステップ４０２：ブロック内の全ワード線を所定のパルス数で指定状態まで順次プログラムする。
ステップ４０４：ブロック内のいずれかのワード線がプログラムに失敗した？失敗したワード線がある場合はステップ４０６へ進み、さもなくばステップ４０８へ進む。
ステップ４０６：１つ以上の欠陥ワード線を含むために不良ブロックとみなす。これは特に、ＮＡＮＤチェーンの中の１不良セルによってチェーン全体に動作不良が生じるＮＡＮＤアーキテクチャのメモリに当てはまる。この不良ブロックはＶPGM トリミングから外される。
ステップ４０８：ブロックは良好。良好なブロックはＶPGM トリミングに選ばれる。
ステップ４０９：ブロックを消去し、その中にあるワード線をプログラムできる状態にする。
【００５１】
１つ以上の欠陥ワード線の存在が必ずしもブロック全体の欠陥を意味しない実施例では、不良ブロック探索を行う必要はない。その場合は、既に述べたようにテスト中に遭遇した欠陥ワード線を単に無視すればよい。
【００５２】
図１２は、ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。図１１Ａのステップ４２０の従来の実施例では、記憶装置の効率的な使用と便宜を図るためにブロック内のワード線サンプルを個別にテストする。前のワード線のテストが完了した後に次のワード線をテストする。つまり、前のワード線のテストでプログラムに成功した後に（あるいはプログラム不能と判定された後に）、次のワード線でテストを繰り返す。以下、図１１Ａに見られるステップ４２０を従来の場合でより明確に説明する。
ステップ４２２：ブロックｉを消去し、その中にあるワード線をプログラムできる状態にする。
ステップ４２４：まずはｊ＝０に設定してサンプルの最初のワード線を指示する。
ステップ４２６：インデックス「ｊ」を使ってブロック内のサンプルからワード線ＷＬ（ｉ，ｊ）を選択する。
ステップ４２８：開始プログラミング電圧の初期値を設定する。ＶPGM0（ｉ，ｊ）＝ＶPGM0_０。
ステップ４３０：ＶPGM0（ｉ，ｊ）から所定のパルス数でワード線上のページを指定状態までプログラムする。
ステップ４３２：ページ／ＷＬはプログラムされた？ＷＬ（ｉ，ｊ）が指定状態までプログラムされない場合はステップ４４０へ進み、さもなくばステップ４５０へ進む。
ステップ４４０：ＶPGM0（ｉ，ｊ）＝ＶPGM0（ｉ，ｊ）＋ΔＶとなるようにＶPGM0（ｉ，ｊ）を増加させる。
ステップ４４２：ブロックｉを消去し、増加ＶPGM0（ｉ，ｊ）でワード線を再度プログラムできる状態にする。
ステップ４５０：ページのプログラムに成功した。統計を収集するためにＶPGM0（ｉ，ｊ）を保存する。
ステップ４５２：ブロックｉを消去し、次のワード線をプログラムできる状態にする。
ステップ４５４：サンプル中の最終ワード線に達した？最終ワード線のテストがまだならばステップ４５６へ進み、さもなくば図１０Ａのステップ４６０へ進む。
ステップ４５６：ｊ＝ｊ＋１により次のワード線へ進み、ステップ４２４まで戻って次のワード線をテストする。
【００５３】
この従来方式では、消去をはさんだ相継ぐプログラムループをページが繰り返し通過することが分かる。既に述べたように、ワード線の個別テストでは各ワード線につきプログラムループがステップ４４０とステップ４４２をめぐるたびにブロック消去が行われるため、ブロックの消去回数が増えてしまう。テストを受ける全てのワード線でこの犠牲を払うことになる。
【００５４】
再び図６を参照すると、各ブロックに多数のワード線があるメモリアーキテクチャで１ワード線のセルを何度も消去すれば、同じブロックにある残りのワード線も同じ回数だけ消去される。前に述べたように、このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【００５５】
消去サイクルを減らすＶPGM トリミング
本発明の一態様によると、ブロックの形に構成されたメモリセルアレイを有し、各ブロックが一斉に消去可能なメモリセルにアクセスするためのワード線からなり、各ワード線が一斉にプログラム可能な１ページ以上のメモリセルを含む不揮発性メモリにおいて、ブロック内のワード線に沿って１ページのメモリセルをプログラムするにあたって最適な開始電圧を推定するには、ブロック内の類似するワード線サンプルをテストプログラムして、それぞれのページ／ワード線を指定パターンまでプログラムできる個々の開始電圧から統計平均を求める。それには、開始プログラミング電圧から一連のパルスを印加するプログラムループをサンプルの全ページで実行する。サンプルの各ページがプログラムループを通過した後には、プログラム−ベリファイ済みのページ／ワード線をさらなる処理から除外し、その開始プログラミング電圧を保存する。ブロックを消去し、サンプル中のまだベリファイされたいないワード線を次の増加開始電圧による次のプログラムループで再度プログラムできる状態にする。このサイクルは、サンプル中の全ワード線がプログラム−ベリファイ済みとなるまで続く。個々の開始プログラミング電圧から統計平均を求めることで、そのページにとって最適な開始プログラミング電圧を導き出すことができる。
【００５６】
既述した方式でブロック内のワード線サンプルをテストすれば、ブロック消去回数が減るという利点がある。ワード線サンプルは互いに段階的にテストされるため、全てのワード線がそれぞれのプログラムループでプログラムを終えたら、それらを一斉に消去して、次のプログラムループに取りかかることができる。この方式によりブロック消去回数は減り、従来方式に比べて１０倍の節約を達成できる。例えば、図１１に見られる従来方式ではそれぞれのワード線が個別にテストされ、プログラムループの前にはその都度ブロック消去があって互いに同期しない。１ワード線のプログラムループのたびに行われるブロック消去は、サンプル中のワード線ごとに倍加する。
【００５７】
図１３は、本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。３つの段階からなる作業が図に示されている。第１の段階５００ではブロック内のページ／ワード線サンプルをテストし、統計を収集する。ここにはステップ５１０からステップ５５０までが含まれる。それぞれのワード線は１物理ページ以上のメモリセルをサポートする。加えて、それぞれのメモリセルページは各メモリセルで蓄積できるビット数に応じて１論理ページ以上のデータを蓄積する。よって、１つのワード線に複数の論理ページが対応する。種々の論理ページをプログラムするにあたってプログラミング特性に著しいばらつきがある限り、各論理ページのプログラミングは同じワード線上で特有のＶPGM トリミングになる。テストでは一度に特定のワード線上の特定の論理ページをプログラムする。便宜上、ページをテストするということもあればワード線をテストするということもある。ステップ５６０を含む第２の段階では、サンプルとなる別のブロックで第１の段階５００を繰り返す。復号化回路とプログラミング回路が２つ以上のブロックに対する操作をサポートする場合は、最初の２つの段階を同時に行うことができる。ステップ５７０からステップ５７２までを含む第３の段階では統計平均を計算し、テスト対象となるワード線の推定最適開始プログラミング電圧を導き出す。
【００５８】
この作業では基本的に、それぞれのワード線に開始電圧を用いてプログラミングステップを適用し、ワード線上のページが所定のプログラムループ目標以内に指定状態までプログラムされるか否かをベリファイしながらサンプル中のワード線を循環する。プログラム−ベリファイ済みとなったページ／ワード線の開始電圧は保存する。プログラム−ベリファイ済みに至らないページ／ワード線の開始電圧は増加させる。この増加情報も、好ましくは蓄積装置に保存する。プログラム−ベリファイ済みに至らないワード線にはサイクルが繰り返されるので、ブロック消去の後には増加開始電圧によるプログラミングステップをもう一度通過させる。このプロセスは、サンプル中の全ワード線が所定のプログラムループ目標以内でプログラム−ベリファイ済みになるまで続く。
ステップ５１０：ブロックの中で特定のタイプのページを代表するページのサンプルを選択する。
ステップ５２０：サンプル中の各ページに対応する開始プログラミング電圧に初期値を提供する。
ステップ５３０：ページサンプルを含むブロックを消去する。
ステップ５４０：ページサンプルの中で目標パターンまでまだプログラムされていないページのサブセットをそれぞれの開始プログラミング電圧で順次プログラムし、各ページをプログラムした後には、
目標パターンまでプログラムされたか否かをベリファイし、かつ
ページがプログラム−ベリファイ済みに至っていなければ、その開始プログラミング電圧を所定の量で増加させ、プログラム−ベリファイ済みなら、ページのプログラム−ベリファイを可能にする開始プログラミング電圧を導き出すために情報を保存する。
ステップ５５０：サンプルの全ページがプログラム−ベリファイ済み？ベリファイ済みに至っていないページがある場合はステップ５３０まで戻り、さもなくばステップ５６０へ進む。
ステップ５６０：サンプルに選ばれた別のブロックでステップ５００からステップ５６０までを繰り返す。
ステップ５７０：保存した情報からサンプルの平均開始プログラミング電圧を計算する。
ステップ５７２：サンプルの平均開始プログラミング電圧をもとに特定タイプのページの開始プログラミング電圧を導き出す。
【００５９】
所定のプログラムループ目標によって最大許容増加数は制限される。この制限は２通りの実施例で２通りの意味を持つ。
一実施形態では、この制限で比較的低い増加上限を設定する。これは特定の開始電圧からページのプログラミングが失敗または不十分とみなされるまでの最大プログラミングパルスまたは増加数を設定する。この数字は、通常のメモリ装置の使用で実際のプログラミング操作中に割り当てられるプログラミングステップ数とほぼ同じ数字に設定する。例えば、ユーザによる通常のプログラミング操作で、ある特定の論理ページのプログラミングは８〜１０プログラミングパルス以内で完了しなければならない。こうすることでＶPGM トリミングテストは現実のプログラミング状況に近いものになる。一般的に、この制限は５〜１５の範囲におよぶ。
【００６０】
後ほど詳述するもうひとつの実施形態において、最終電圧によってページがプログラム済みになるまでプログラミング電圧を増やすことができる。この最終電圧をもとに、所定のステップ数までスケールバックすることにより最適開始電圧を推定する。この実施形態では通常のプログラミング状況を模擬するために制限を設定しない。しかし、欠陥ワード線に遭遇する場合の開始プログラミング電圧の増加は無限ではない。欠陥ワード線に遭遇する場合の増加を最大所定値に制限するため、制限は高めの数字（例えば、３０〜５０）に設定する。開始プログラミング電圧を最大値まで増やした後にページを指定状態までプログラムできない場合はそのワード線を欠陥とみなし、そのＶPGM データを統計から除外する。別の実施例では欠陥ワード線を含むブロック全体を除外する。
【００６１】
説明した２つの実施形態ではそれぞれ異なる理由からプログラムループに制限を設ける。制限を低く設定する最初の実施形態では、通常のプログラミング操作のようにパルスステップ数のマージンを設けることによって開始電圧からのプログラミングの成功を評価する。制限内で完了するプログラミングは成功とみなす。逆に、プログラミングの不成功は開始電圧の設定が低すぎることを意味する。制限を高い上限に設定する２番目の実施形態は、欠陥ワード線をプログラムできない場合の無限増加を防ぐ。この制限に達した場合、開始電圧が低すぎることを意味するのではなく、単にワード線に欠陥があることを意味する。
【００６２】
もうひとつの実施例でも低い制限が企図される。階段波形の最初の数ステップ（例えば、１または２ステップ）以内にプログラムループが完了するなら、これはそのページが非常に速い異例のプログラミング特性を持つことを意味する。したがって、所定の低い制限内でプログラム−ベリファイ済みになるページは異例とみなし、統計を歪めないようにするために平均計算から除外する。
【００６３】
図１４は、図１３に見られる作業の具体的な実施例を示すフローチャートである。
ステップ６１０：ブロックｉの初期値を設定する。
ページベリファイステータス：ＰａｇｅＤｏｎｅ（ｊ）＝ＦＡＬＳＥ、全てのｊ
初期プログラミング電圧：ＶPGM0（ｉ，ｊ）＝ＶPGM0＿０、全てのｊ
ΔＶPGM0数：ＳｔｅｐＵｐ＃（ｊ）＝０、全てのｊ
ステップ６２０：ブロックｉを消去する。
ステップ６３０：ｊ＝０。
ステップ６３２：サンプルの中でワード線ＷＬ（ｉ，ｊ）を選択する。ｊ＝０、ｍ−１。
ステップ６４０：ＶPGM0（ｉ，ｊ）から所定のパルス数にかけてワード線上のページを指定状態までプログラムする。
ステップ６４２：ページはプログラムされた？ページがプログラム−ベリファイ済みに至っていなければステップ６５０へ進み、さもなくばステップ６６０へ進む。
ステップ６５０：ワード線はプログラム−ベリファイ済みに至っていない。したがって、その初期プログラミング電圧をさらなるステップにより増加させる。ＳｔｅｐＵｐ＃（ｊ）を増加させる。ＳｔｅｐＵｐ＃（ｊ）＝ＳｔｅｐＵｐ＃（ｊ）＋１。
ステップ６５２：ＶPGM0（ｉ，ｊ）を増加させる。ＶPGM0（ｉ，ｊ）＝ＶPGM0（ｉ，ｊ）＋ＳｔｅｐＵｐ＃（ｊ）＊ΔＶ。
ステップ６６０：ワード線のテストが終了し、ページ処理済みを標示する。ＰａｇｅＤｏｎｅ＝ＴＲＵＥ。
ステップ６６２：初期電圧からのステップアップ数として最終プログラミング電圧の情報を蓄積する。ＳｔｅｐＵｐ＃Ｇｌｏｂａｌ＝ＳｔｅｐＵｐ＃Ｇｌｏｂａｌ＋Ｓｔｅｐｕｐ＃（ｊ）。
ステップ６７０：次のワード線。ｊ＝ｊ＋１。
ステップ６７２：サンプル中の最終ワード線に達した？（すなわち、ｊ＝ｍ？）ＷＬ（ｉ，ｊ）が最後のワード線でなければステップ６８０へ進み、さもなくばステップ６９０へ進む。
ステップ６８０：非処理済みページ。ＰａｇｅＤｏｎｅ（ｊ）＝ＴＲＵＥ？現在のページがプログラム−ベリファイ済みであることをステータスが伝える場合はこれを無視するかあるいは省き、プロセスはステップ６７０へ進み、さもなくばプロセスはステップ６３２まで戻って、プログラム−ベリファイ済みに至っていない次のワード線をテストする。  ステップ６９０：全てのページ／ＷＬがプログラムされるまで残りの非処理済みＷＬを再走査する。全てのｊでＩｓＰａｇｅＤｏｎｅ（ｊ）＝ＴＲＵＥ？プログラム−ベリファイ済みに至っていないワード線が１つでもある場合はステップ６２０まで戻って、増加プログラミング電圧で再度プログラムし、さもなくば全ワード線のプログラミングは終わっているから、プロセスは図１３のステップ５６０へ進む。
【００６４】
スケーリングによる開始電圧の推定
本発明のもうひとつの態様によると、ワード線上のページの初期プログラミングテスト運転によって開始プログラミング電圧の初期値を推定する。ワード線上の選択されたページを一連の階段波形電圧パルスで逐次プログラムし、パルス間にベリファイをはさみながらページが指定パターンまでプログラムされたことをベリファイする。ページがプログラム−ベリファイ済みになるときの最終プログラミング電圧を使用し、所定の量までスケールバックすることにより開始プログラミング電圧を推定する。類似するページ／ワード線サンプルを検討することによって平均開始プログラミング電圧を求める。異例の項目によって統計が歪まないようにするため、サンプル中でプログラムできないページ／ワード線は無視してよい。
【００６５】
もうひとつの実施形態ではプロセスをさらに洗練させ、第１の行程から推定された開始プログラミング電圧を第２の行程の階段波形の初期値として使用する。こうすれば類似するページのサンプルで平均を求めるときに、代表的なページの開始プログラミング電圧を推定できる。開始プログラミング電圧は、所定の階段波形ステップ数により最終プログラミング電圧を負にオフセットすることによって推定する。所定のステップ数は、好ましくは通常のプログラミング操作でプログラム成功に割り当てるステップ数とほぼ同じにする。
【００６６】
このスケーリング方式の利点として、各ページ／ワード線に対するシンプルな１または２行程プログラミングテストで十分にページの開始プログラミング電圧の推定を得ることができる。各ページを個別にテストでき、テスト中に多数の消去操作をともなうことはない。このため、ワード線サンプルの中でブロック消去を管理する必要はない。
【００６７】
図１５は、メモリセルページの初期プログラミングテストで使用する階段波形を示す。メモリセルページをサポートするワード線にこの階段波形電圧を印加する。漸増プログラミングを実行するため、まずはＶｉの電圧パルスを印加する。その後、電圧は、ページを読み出してページが指定パターンまでプログラムされたか否かをベリファイするのに適したＶVER に変わる。プログラムパルスを印加しベリファイするプロセスは、ページがプログラム−ベリファイ済みになるまで続く。この時点でプログラミング電圧はＶｆ＝ＳｔｅｐＵｐｓ＃＊ΔＶまで増加している。一実施形態において、この最終電圧を所定のステップ数からバックオフして、前に述べたＶＰＧＭトリミングテストの開始プログラミング電圧推定とする、すなわち、ＶPGM0＝Ｖｆ−ＮOFFSET＊ΔＶ、ここでＮOFFSETは所定のステップ数である。
【００６８】
図１６は、図１５に見られる階段波形走査を使用し特定のページで開始プログラミング電圧を判定するフローチャートである。
ステップ８００：メモリセルページをプログラムするため、所定の初期電圧レベルＶｐ＝Ｖｉとするプログラミング電圧を用意する。
ステップ８０２：メモリセルページを消去する。
ステップ８１０：Ｖｐのパルスをメモリセルページに印加する。
ステップ８１２：メモリセルページが所定の記憶状態の対応するページになるまでプログラムされたか否かをベリファイする。
ステップ８１４：ページはプログラム−ベリファイ済み？ページがプログラム−ベリファイ済みでなければステップ８２０へ進み、さもなくばステップ８３０へ進む。
ステップ８２０：プログラミング電圧を所定の量Ｖｐ＝Ｖｐ＋ΔＶで増加させる。
【００６９】
ステップ８３０：ページの開始プログラミング電圧を保存する、ＶPGM0＝Ｖｐ−ＮOFFSET＊ΔＶ。好適な実施例では、推定開始プログラミング電圧を第２行程のテスト運転で階段波形の初期値として使用する。このようにして初期値は、第１行程のテスト運転のものに比べて通常のプログラミング操作に近いものになる。
これまでどおり、タイプが類似するワード線のサンプルをテストして、そのタイプの統計的に平均化された開始プログラミング電圧を求める。テスト結果用の記憶装置を抑えるため、好ましくはテスト運転が終わるたびに統計平均を実行する。
【００７０】
図１７は、ページ／ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
ステップ８５０：タイプが類似するページのサンプルで第１の行程のテスト運転（例えば、各ページにつきステップ８００からステップ８３０）を実行する。
ステップ８６０：第１の行程のテスト運転から推定開始プログラミング電圧の第１の統計平均を求める。＜ＶPGM0＞1 。
ステップ８７０：開始プログラミング電圧の初期値として＜ＶPGM0＞1 を使用し（すなわち、Ｖｉ＝＜ＶPGM0＞1 ）、タイプが類似するページのサンプルで第２の行程のテスト運転（例えば、各ページにつきステップ８００からステップ８３０）を実行する。
ステップ８８０：第２の行程のテスト運転から推定開始プログラミング電圧の第２の統計平均を求める。＜ＶPGM0＞2 。
【００７１】
一実施形態において、満足な開始プログラミング電圧推定を得るにあたっては１行程（ステップ８５０からステップ８６０）だけで十分である。もうひとつの実施形態において、第２の行程（ステップ８７０からステップ８８０）を任意に使用し、第１の行程から得た結果を精緻化する。
【００７２】
別の実施例では、図１３および図１４で説明したＶＰＧＭトリミング方式の初期値のための入力として推定開始電圧＜ＶPGM0＞1 または＜ＶPGM0＞2 を使用する。図１３のステップ５２０と図１４のステップ６１０で説明したテストの開始プログラミング電圧には初期値ＶPGM0_０が必要である。この値の設定が低すぎると、テストでワード線がプログラム−ベリファイ済みになるまでのステップが増えてしまう。これは非効率的であり、メモリ装置の消去サイクルが多くなる。他方、値の設定が高すぎるとワード線がオーバープログラムされるおそれがある。
【００７３】
高速プログラミングページ偏重ＶPGM トリミング
本発明のもうひとつの態様によると、複数の消去可能なブロックを有し、プログラミング特性が類似する１グループのワード線を各ブロックに有するメモリアレイにおいて、グループの代表的なページの最適開始プログラミング電圧を得る方式は、１セットのブロックにわたってセットの各ブロックで幾何学的に類似する位置にある１つ以上のワード線でサンプルを形成することと、セットの各サンプルからプログラミング電圧の統計推定を得ることと、最適開始プログラミング電圧を導き出すためにセットの中で最小推定を選択することとを含む。高速プログラミングワード線は低速プログラミングワード線に比べて低いプログラミング電圧ですむため、このやり方により最適値はグループの高速プログラミングワード線を重視したものになる。
【００７４】
他のセクションで説明したプログラミング電圧トリミング方式では、ページの全てのビットがプログラム−ベリファイ済みか否かを一度に１ページずつ調べる。低速プログラミングビットもプログラム−ベリファイ済みにならなければページ全体がプログラム−ベリファイされたことにはならないから、この場合のテスト結果は低速プログラミングビット寄りのものになる。その結果、開始電圧の推定は高速プログラミングビットにとって過大なものとなり、オーバープログラミングを招くおそれがある。ここで説明するサンプリング・統計計算方式なら、低速プログラミングビットに偏った方式から導き出された最も低い値を開始電圧のセットとして選択できる。
【００７５】
幾何学的に類似する位置ということは、物理メモリアレイのレイアウトに何らかの対称性があることを意味する。同じ対称グループに属する構造は非常に類似する特性を持つ。図６を参照すると、例えばＷＬ２からＷＬ１３までは消去ブロックのコア領域でまったく同じではなくともある程度は類似するプログラミング特性を持つ１グループのワード線を形成する。例えば、ブロック０からブロック１２７までを１セットのブロックとする。そのセットの各ブロックで幾何学的に類似する位置からワード線を選択することによってサンプルを形成する。第１のサンプルはブロック０のＷＬ２、ブロック１のＷＬ１８、ブロック２のＷＬ３４・・・ブロック１２７のＷＬ１０３４からなる。第２のサンプルはブロック０のＷＬ３、ブロック１のＷＬ１９、ブロック２のＷＬ３５・・・ブロック１２７のＷＬ１０３５からなる。全部で１２８サンプルのセットになる。それぞれのサンプルでＶPGM トリミング操作を実行すると、１２８の統計結果（例えば、＜ＶPGM0＞）が得られる。この方法では１２８の＜ＶPGM0＞の中で最も小さい＜ＶPGM0＞を選ぶ必要がある。
【００７６】
図１８は、高速プログラミングワード線を重視したＶPGM トリム値を得る方式を示すフローチャートである。
ステップ９００：消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために１ブロックのワード線を各消去可能ブロックに含み、かつ一斉にプログラム可能な１ページ以上のメモリセルを各ワード線に含む不揮発性メモリを用意する。
ステップ９０２：ブロックの中でページを代表する１グループのページを選択する。
ステップ９０４：１セットのブロックを選択する。
ステップ９０６：少なくとも各ブロックの幾何学的に類似する位置にあるページを各ブロックから選択することにより、１セットのサンプルを形成する。
ステップ９０８：セットの各サンプルからプログラミング電圧の統計推定を求める。
【００７７】
ステップ９１０：セットの中で最小統計推定を選択することによってページの開始プログラミング電圧を判定する。少なくとも類似するページを各ブロックから選択することによって個々のサンプルを形成しテストするこの方式には、最低限の記憶装置ですむという利点もある。それぞれのサンプルをテストした後には平均値の形でテスト結果を出し、蓄積する。次のサンプルも同様にテストし、その平均値を蓄積された最初の平均値に比較する。記憶装置にはいずれか低いほうの平均値が残るから、１セットのサンプルを一度に１サンプルずつ処理する過程でただひとつのデータを蓄積するだけでよい。
【００７８】
各ブロックからごく一部を選択することによってサンプルを形成するため、欠陥ワード線が大部分を占める不良ブロックにサンプル平均がさほど左右されないという利点もある。
【００７９】
ここで参照する特許、特許出願、記事、書籍、仕様書、その他の出版物、文書、事物はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている出版物、文書、または事物のいずれかと本願明細書の本文との間で用語の定義または使用に矛盾や食い違いがある場合には本願明細書における用語の定義または使用が優先するものとする。
【００８０】
これまで本発明の様々な態様を特定の実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図１】
0004819951.tif 000003
【図２】
0004819951.tif 000004
【図３】
0004819951.tif 000005
【図４】
0004819951.tif 000006
【図５Ａ】
0004819951.tif 000007
【図５Ｂ】
0004819951.tif 000008
【図６】
0004819951.tif 000009
【図７】
0004819951.tif 000010
【図８】
0004819951.tif 000011
【図９】
0004819951.tif 000012
【図１０】
0004819951.tif 000013
【図１１Ａ】
0004819951.tif 000014
【図１１Ｂ】
0004819951.tif 000015
【図１２】
0004819951.tif 000016
【図１３】
0004819951.tif 000017
【図１４】
0004819951.tif 000018
【図１５】
0004819951.tif 000019
【図１６】
0004819951.tif 000020
【図１７】
0004819951.tif 000021
【図１８】
0004819951.tif 000022