初期プログラミング電圧のトリミング中に消去/書き込みサイクルを減らす不揮発性メモリおよび方法
高性能不揮発性メモリ装置でメモリページとワード線のタイプに応じてプログラミング電圧をトリミングする。メモリの各消去可能なブロックの中で1グループのワード線を相継ぐプログラムループでテストして、消去/プログラムサイクルの過多の問題を最小限にとどめる。類似するメモリページのサンプルの統計結果から特定タイプのメモリページにとって最適なプログラミング電圧を導き出す。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)やフラッシュEEPROM等の不揮発性半導体メモリに関し、より具体的には様々なメモリセル群の最適初期プログラミング電圧を判定することに関する。
【背景技術】
【0002】
不揮発性電荷蓄積が可能な固体メモリは、特に形状因子が小さいカードにパッケージ化されたEEPROMやフラッシュEEPROMの形をとるものが最近、情報家電や家庭用電化製品を中心に様々なモバイルおよびハンドヘルド装置の記憶装置として盛んに選ばれている。同じく固体メモリであるRAM(ランダムアクセスメモリ)と違って、フラッシュメモリは不揮発性であって、電源を切った後にも蓄積されたデータを保持する。フラッシュメモリはコストが高くつくにもかかわらず、大容量記憶用途で使われることが多くなっている。ハードドライブやフロッピーディスク等、回転する磁気媒体を基礎とする従来の大容量記憶装置は、モバイルおよびハンドヘルド環境に不向きである。なぜならば、ディスクドライブは、えてしてかさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うためである。このような望ましくない属性を持つディスク方式の記憶装置は、殆どのモバイルおよびポータブル用途において実用的でない。他方、埋め込み型と着脱可能なカードの形をとるフラッシュメモリは、その小さなサイズ、低消費電力、高速度、および高い信頼性ゆえにモバイルおよびハンドヘルド環境に理想的にマッチする。
【0003】
EEPROMと電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去が可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる不揮発性メモリである。いずれも半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造によるフローティング(非接続)導電性ゲートを利用する。さらに、このフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷の量によって制御される。つまり、フローティングゲート上の一定レベルの電荷に応じてコントロールゲートに印加すべき電圧(しきい値)があり、これが印加されることによりトランジスタは「オン」に切り替わり、ソース領域とドレイン領域との導通が可能となる。
【0004】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは普通、メモリ装置の特性と、作動条件と、来歴とに左右される。セルの一定の記憶状態は、基本的にはウィンドウ内の個々の明確な分解可能なしきい値電圧レベル範囲によって指定される。
【0005】
通常の2状態EEPROMセルでは、1つ以上の電流区切りレベルを設定して伝導ウィンドウを2つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース/ドレイン電流を区切りレベル(または基準電流IREF )に比較することによって記憶状態が決定する。読み出される電流が区切りレベルのものより高ければ、セルはひとつの論理状態(例えば「0」状態)にあると判断する。他方、電流が区切りレベルのものに満たなければ、セルはもうひとつの論理状態(例えば「1」状態)にあると判断する。このような2状態セルは1ビットのデジタル情報を蓄積する。外部からプログラムできる基準電流源は多くの場合、メモリシステムの一部として用意され、区切りレベル電流を生成する。
【0006】
メモリ容量を増やすため、フラッシュEEPROM装置の実装密度は半導体技術の進歩にともない益々高くなっている。各メモリセルで3状態以上を蓄積することによって蓄積容量を増やす方法もある。
【0007】
多状態またはマルチレベルEEPROMメモリセルの場合、伝導ウィンドウを2つ以上の区切り点で3つ以上の領域に分割し、各セルで2ビット以上のデータを蓄積できるようにする。したがって、EEPROMアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第5,172,338号(特許文献1)には、多状態またはマルチレベルメモリセルを備えるEEPROMまたはフラッシュEEPROMが記載されている。
【0008】
メモリセルとして機能するトランジスタは通常、2通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上の電子が加速する。同時に、コントロールゲートに印加される高電圧は、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。こうして電子は基板から介在するフローティングゲートまで引き寄せられる。
【0009】
メモリ装置の消去にはいくつか方法がある。EPROMの場合、紫外線によってフローティングゲートから電荷を取り除くことによってメモリをまとめて消去できる。EEPROMの場合、コントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導することによってメモリセルを電気的に消去できる(すなわち、ファウラ・ノルドハイム・トンネル)。通常、EEPROMはバイト単位で消去可能である。フラッシュEEPROMの場合、メモリが一度にまるごと、または一度に1ブロック以上が、電気的に消去され、ブロックは512バイト以上のメモリで構成されることがある。
【0010】
メモリ装置は通常、1つ以上のメモリチップをカード上に実装する。それぞれのメモリチップは、デコーダや消去、書き込み、および読み出し回路等の周辺回路によってサポートされるメモリセルアレイを備える。より精緻なメモリ装置は、知的で高度なメモリ操作とインターフェイスを実行する外部メモリコントローラと連動する。
【0011】
特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された1ページのメモリセルをまとめてプログラムできる。
【0012】
良好なプログラミング性能を達成するには、初期プログラミング電圧VPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧VPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するVPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。最適な初期プログラミング電圧VPGM0なら数ステップで目標状態に達する。この最適VPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをVPGM0トリミングという。
【0013】
通常は工場からの出荷に先立ち専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの1つとして、最適初期プログラミング電圧を判定する(VPGM0トリミング)。つまり、従来のVPGM0トリミングはメモリテスタで行われるが、このメモリテスタは高価な専用装置である。しかも、それらのメモリテスタは大抵ワード線を個別にテストするもので、現在のワード線のテストが完了した後に次のワード線に進む。このやり方でワード線上の1ページのメモリセルをプログラムループでプログラムし、目標パターン(例えば「0000・・・0」、ここで「0」は所定のプログラム状態)までプログラムできるか否かをテストする。このプログラムループでは通常、最初の開始プログラミング電圧から一連のプログラミング電圧パルスを使用する。そして、ベリファイ操作でページをリードバックして、目標パターンまで正常にプログラムされたか否かを判断する。プログラム−ベリファイ済みに至らない場合はページ/ワード線のセルを消去し、次のプログラムループで開始プログラミング電圧を上げて再びプログラムする。ページがプログラム−ベリファイ済みになるまではこのプロセスを繰り返す。このようにして、ページのプログラム−ベリファイを可能にする開始プログラミング電圧値を判断する。
【0014】
ページを適切にプログラムするための初期プログラミング電圧を得るには、プログラムループの初期プログラミング電圧を上げながら試行を繰り返す必要がある。従来のVPGM0トリミングでは、開始電圧を上げて次のプログラムループを実行する前にページを消去しなければならないことが分かる。そのページを保持するワード線のメモリセルは試行中に何度も消去されることがある。また、同じ消去ブロックにある他の全てのワード線も消去サイクルを通過する。
【0015】
消去/プログラムサイクルを通過するたびに被る耐久性にかかわるストレスによって不揮発性メモリ装置の寿命は制限される。例えば、フラッシュEEPROM装置の耐久性は一定数のプログラム/消去サイクルに耐える力である。装置の能動誘電体膜における電子の捕獲は、この不揮発性メモリ装置の耐久性を制限する物理現象である。図2を参照すると、プログラミング中には基板から誘電体界面を通じて電荷蓄積単位にかけて電子が注入される。同様に、消去中には電荷蓄積単位から誘電体界面を通じて電子が抽出される。いずれの場合も、ある程度の電子は誘電体界面によって捕獲される。捕獲された電子が以降のプログラム/消去サイクルで印加される電場に対抗するため、プログラムしきい値電圧は低い値へ推移し、消去しきい値電圧は高い値に推移する。徐々に閉鎖するしきい値ウィンドウにこれを見ることができる。このしきい値ウィンドウの閉鎖によって実質的な耐久性は約104 プログラム/消去サイクルまで制限される。
【0016】
各ブロックに多数のワード線があるメモリアーキテクチャで1ワード線のセルを何度も消去すると、同じブロックにある残りのワード線も同じ回数だけ消去される。このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。例えば各ワード線につき10回程度の試行が必要で、各ブロックに64本のワード線があるなら、そのブロックは全部で640回の消去サイクルを被ることになる。また、VPGM0トリミングは他の変数をカバーするためにも行われる。例えば、ワード線は複数の物理ページと複数の論理ページを持つことがある。ブロック境界に近いワード線は、コア領域にあるワード線に比べて若干異なるプログラミング特性を持つことがある。このようなばらつきによって必要なトリミング数が10倍増しになることがある。このため、工場で行われる従来のVPGM トリミングでは数千もの耐久サイクルをメモリ装置に費やすことになる。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【0017】
したがって、高性能・高容量不揮発性メモリが一般的に求められている。とりわけ、過剰な耐久サイクルをメモリに強いることなく開始プログラミング電圧を決定し、最適に設定する、不揮発性メモリが求められている。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】米国特許第5,172,338号
【特許文献2】米国特許第5,595,924号
【特許文献3】米国特許第5,070,032号
【特許文献4】米国特許第5,095,344号
【特許文献5】米国特許第5,315,541号
【特許文献6】米国特許第5,343,063号
【特許文献7】米国特許第5,661,053号
【特許文献8】米国特許第5,313,421号
【特許文献9】米国特許第6,222,762号
【特許文献10】米国特許第5,570,315号
【特許文献11】米国特許第5,903,495号
【特許文献12】米国特許第6,046,935号
【特許文献13】米国特許第5,768,192号
【特許文献14】米国特許第6,011,725号
【非特許文献】
【0019】
【非特許文献1】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
【発明の概要】
【0020】
消去サイクルを減らすVPGM トリミング
本発明の一態様によると、ブロックの形に構成されたメモリセルアレイを有し、各ブロックが一斉に消去可能なメモリセルにアクセスするためのワード線からなり、各ワード線が一斉にプログラム可能な1ページ以上のメモリセルを含む不揮発性メモリにおいて、ブロック内のワード線に沿って1ページのメモリセルをプログラムするにあたって最適な開始電圧を推定するには、ブロック内の類似するワード線サンプルをテストプログラムして、それぞれのページ/ワード線を指定パターンまでプログラムできる個々の開始電圧から統計平均を求める。それには、開始プログラミング電圧から一連のパルスを印加するプログラムループをサンプルの全ページで実行する。サンプルの各ページがプログラムループを通過した後には、プログラム−ベリファイ済みのページ/ワード線をさらなる処理から除外し、その開始プログラミング電圧を保存する。そして、ブロックを消去し、サンプル中のまだベリファイされていないワード線を次の増加開始電圧による次のプログラムループで再度プログラムできる状態にする。このサイクルは、サンプル中の全ワード線がプログラム−ベリファイ済みとなるまで続く。そして、個々の開始プログラミング電圧から統計平均を求めることで、そのページにとって最適な開始プログラミング電圧を導き出すことができる。
【0021】
既述した方式でブロック内のワード線サンプルをテストすれば、ブロック消去回数が減るという利点がある。ワード線サンプルは互いに段階的にテストされるため、全てのワード線がそれぞれのプログラムループでプログラムを終えたら、それらを一斉に消去して、次のプログラムループに取りかかることができる。この方式によりブロック消去回数は減り、従来方式に比べて10倍の節約を達成できる。例えば、従来方式ではそれぞれのワード線が個別にテストされ、プログラムループの前にはその都度ブロック消去があって互いに同期しない。1ワード線のプログラムループのたびに行われるブロック消去は、サンプル中のワード線ごとに倍加する。
【0022】
本発明のさらなる特徴と利点は、この後に続く好適な実施形態の説明を添付の図面と併せて解釈することで理解することができる。
【図面の簡単な説明】
【0023】
【図1】不揮発性メモリチップの機能ブロックを概略的に示す。
【図2】不揮発性メモリセルを概略的に示す。
【図3】フローティングゲートが随時一度に選択的に蓄積できる4通りの電荷Q1〜Q4でソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示す。
【図4】NORメモリセルアレイの一例を示す。
【図5A】NANDストリングの形に構成されたメモリセルストリングを概略的に示す。
【図5B】図5Aに示されたNANDストリング等のNANDストリングからなるNANDメモリセルアレイの一例を示す。
【図6】消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。
【図7】階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。
【図8】いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。
【図9】最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つをテストするメモリテスタの機能ブロックを概略的に示す。
【図10】好適な実施形態に従い最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つとともに作動する代替のメモリテスタの機能ブロックを示す。
【図11A】メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。
【図11B】図11Aに見られる良好なブロックを選択する一実施形態をより詳細に示す。
【図12】ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。
【図13】本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。
【図14】図13に見られる作業の具体的な実施例を示すフローチャートである。
【図15】メモリセルページの初期プログラミングテストで使用する階段波形を示す。
【図16】図15に見られる階段波形走査を使用し、VPGM トリミングの開始プログラミング電圧を判定するフローチャートである。
【図17】ページ/ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
【図18】高速プログラミングワード線を重視したVPGM トリム値を得る方式を示すフローチャートである。
【発明を実施するための形態】
【0024】
メモリシステム
図1〜図7は、本発明の様々な態様を実装できる例示的なメモリシステムを示す。
図1は、不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ100は、二次元のメモリセルアレイ200と、制御回路210と、デコーダ、読み出し/書き込み回路、マルチプレクサ等の周辺回路とを含む。メモリアレイ200は、行デコーダ230Aおよび230Bによりワード線(図2参照)ごとに、また列デコーダ260Aおよび260Bによりビット線(図2参照)ごとにアドレスできる。読み出し/書き込み回路270Aおよび270Bにより、メモリセルページの読み出しまたはプログラムは並行して行うことができる。好適な実施形態において、同じワード線を共有する隣接するメモリセル行からページが構成される。メモリセル行を複数のページに区分する別の実施形態において、個々のページに向けて読み出し/書き込み回路270Aおよび270Bを多重化するためにブロックマルチプレクサ250Aおよび250Bを設ける。
【0025】
制御回路210は読み出し/書き込み回路270と協働しながらメモリアレイ200に対してメモリ操作を実行する。制御回路210は通常ならば状態マシン212を含むほか、オンチップアドレスデコーダや電力制御モジュール(明確に図示せず)等、その他の回路を含む。状態マシン212はチップレベルのメモリ操作制御を提供する。
メモリアレイ200は通常、行および列に配列されてワード線およびビット線によりアドレスできる二次元のメモリセルアレイとして構成される。アレイは、NORタイプのアーキテクチャまたはNANDタイプのアーキテクチャに従って形成できる。
【0026】
図2は、不揮発性メモリセルを概略的に示す。メモリセル10は、フローティングゲートや誘電体層等の電荷蓄積単位20を有する電界効果トランジスタによって実装できる。メモリセル10は、ソース14、ドレイン16、およびコントロールゲート30も含む。
現在、商業的に成功を収めた不揮発性固体メモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用され、各種のメモリセルは1つ以上の電荷蓄積素子を持つ。
【0027】
典型的な不揮発性メモリセルはEEPROMとフラッシュEEPROMとを含む。米国特許第5,595,924号(特許文献2)には、EEPROMセルの例とその製造方法が記載されている。米国特許第5,070,032号(特許文献3)、第5,095,344号(特許文献4)、第5,315,541号(特許文献5)、第5,343,063号(特許文献6)、第5,661,053号(特許文献7)、第5,313,421号(特許文献8)、および第6,222,762号(特許文献9)には、フラッシュEEPROMセルの例と、メモリシステムにおけるその運用と、その製造方法が記載されている。特に米国特許第5,570,315号(特許文献10)、第5,903,495号(特許文献11)、第6,046,935号(特許文献12)には、NANDセル構造を持つメモリ装置の例が記載されている。また、エイタンらによる「NROM:新しい局限トラッピング、2ビット不揮発性メモリセル」,IEEE電子デバイスレター,第21巻,第11号,2000年11月,543〜545ページ (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)(非特許文献1)、米国特許第5,768,192号(特許文献13)および第6,011,725号(特許文献14)には、誘電性蓄積素子を利用するメモリ装置の例が記載されている。
【0028】
実際には、コントロールゲートに基準電圧が印加されるときにセルのソース電極とドレイン電極にかけて伝導電流を感知することによってセルの記憶状態を読み出すのが普通である。セルのフローティングゲート上の特定の各電荷につき、一定の基準コントロールゲート電圧に対応する伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウはフローティングゲートにプログラムできる電荷の範囲によって決まる。
【0029】
分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートでテスト対象となる特定の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いかまたは高いかを検出することも可能である。一実施形態において、ビット線の静電容量を通じて放電する伝導電流のレートを調べることによって、しきい値電流に対する伝導電流の検出を果たす。
【0030】
図3は、フローティングゲートが随時一度に選択的に蓄積できる4通りの電荷Q1〜Q4でソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示すものである。実線で描かれた4本のID 対VCG曲線はメモリセルのフローティングゲートにプログラムできる4通りの電荷レベルを表し、4通りの可能な記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウの範囲は0.5Vから3.5Vに及ぶ。しきい値ウィンドウをそれぞれ0.5V間隔で5つの領域に分割することにより、6通りの記憶状態に区切ることができる。例えば、図に示されるように2μAの基準電流IREF を使用するなら、Q1でプログラムされるセルは、その曲線がVCG=0.5Vおよび1.0Vで区切られたしきい値ウィンドウの領域内でIREF と交差するため、記憶状態「1」にあるとみなされる。同様に、Q4は記憶状態「5」にある。
【0031】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。この場合は所要の分解能を達成するためにプログラミング操作と読み出し操作の精度を上げる必要がある。
【0032】
図4は、NORメモリセルアレイの一例を示す。メモリアレイ300のメモリセルの各行は、それぞれのソース14とドレイン16によってデイジーチェーン方式で接続される。この設計は仮想接地設計と呼ばれることがある。行内のセル10のコントロールゲート30はワード線42等のワード線へ接続する。列内のセルのソースおよびドレインは、ビット線34および36等、選択されたビット線へそれぞれ接続する。
【0033】
図5Aは、NANDストリングの形に構成されたメモリセルストリングを概略的に示す。NANDストリング50は、ソースおよびドレインによってデイジーチェーン方式で接続された一連のメモリトランジスタM1、M2・・・Mn(例えば、n=4、8、16またはそれ以上)からなる。1対の選択トランジスタS1、S2は、NANDストリングのソース端子54とドレイン端子56を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイでソース選択トランジスタS1がオンになると、ソース端子はソース線へ結合される(図5B参照)。同様に、ドレイン選択トランジスタS2がオンになると、NANDストリングのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、一定量の電荷を蓄積して目的の記憶状態を表現する電荷蓄積素子20を具備する。各メモリトランジスタのコントロールゲートは読み出し操作と書き込み操作とを制御する。図5Bに見られるように、NANDストリング行の対応するメモリトランジスタのコントロールゲートは、いずれも同じワード線へ接続する。同様に、選択トランジスタS1、S2のそれぞれのコントロールゲートは、それぞれのソース端子54とドレイン端子56を介したNANDストリングへのアクセスを制御する。同様に、NANDストリング行の対応する選択トランジスタのコントロールゲートは、いずれも同じ選択線へ接続する。
【0034】
NANDストリングの中でアドレスされたメモリトランジスタを読み出したり、あるいはプログラミング中にベリファイしたりするときには、そのコントロールゲートにしかるべき電圧を供給する。同時に、NANDストリング50の中でアドレスされていない残りのメモリトランジスタは、それぞれのコントロールゲートに十分な電圧が印加されることによって完全にオンになる。このようにして、個々のメモリトランジスタのソースからNANDストリングのソース端子54にかけて導電経路ができあがり、個々のメモリトランジスタのドレインからセルのドレイン端子56にかけても同様である。米国特許第5,570,315号(特許文献10)、第5,903,495号(特許文献11)、第6,046,935号(特許文献12)には、そのようなNANDストリング構造を持つメモリ装置が記載されている。
【0035】
図5Bは、図5Aに示されたNANDストリング等のNANDストリングからなるNANDメモリセルアレイの一例を示す。ビット線、例えばビット線36は、NANDストリングの各列に沿って各NANDストリングのドレイン端子56へ結合する。ソース線、例えばソース線34は、NANDストリングの各バンクに沿って各NANDストリングのソース端子54へ結合する。NANDストリングのバンクのセル行に沿ったコントロールゲートはワード線に接続する。NANDストリングのバンクのワード線と選択線にしかるべき電圧をかけることにより、NANDストリングのバンクのメモリセル行全体をアドレスできる。NANDストリングの中であるひとつのメモリトランジスタを読み出すときには、ストリングの中にある残りのメモリトランジスタがそれぞれのワード線を通じてハードにオンになるため、ストリングの中を流れる電流は基本的に、読み出し対象セルに蓄積される電荷レベルに左右される。
【0036】
図6は、消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。電荷蓄積メモリ装置のプログラミングでは専らその電荷蓄積素子に電荷を加えるだけである。このため、プログラミング操作にあたって、メモリセルの電荷蓄積素子に存在する電荷を事前に除去(または消去)しなければならない。セルアレイ全体あるいはアレイのかなりのセル群を、電気的に一斉に(瞬時に)消去するEEPROM等の不揮発性メモリは「フラッシュ」EEPROMと呼ばれる。消去の後にはセル群を再度プログラムできる。一斉に消去できるセル群は1つ以上のアドレス可能な消去単位からなる。消去単位またはブロックは通常1ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、1回の操作で2ページ以上をプログラムしたり、あるいは読み出したりする場合もある。各ページは通常1セクタ以上のデータを格納し、このセクタのサイズはホストシステムによって決まる。磁気ディスクドライブの規格に従い512バイトのユーザデータからなるセクタはその一例であり、さらにここにユーザデータおよび/またはこれを格納するブロックに関する何バイトかのオーバーヘッド情報が加わる。
【0037】
図6に見られる例では、メモリアレイ200の個々のメモリセルには、ワード線WL0〜WLy とビット線BL0〜BLx によってアクセスできる。このメモリは消去ブロック0、1・・・m等の消去ブロックに構成されている。図5Aおよび図5Bも参照すると、NANDストリング50の中に16のメモリセルがあるなら、アレイ内のNANDストリングの最初のバンクにはWL0〜WL15でアクセスできる。消去ブロック0は、NANDストリングの最初のバンクの全メモリセルが一斉に消去されるように構成されている。別のメモリアーキテクチャでは、2つ以上のNANDストリングのバンクを一斉に消去できる。
【0038】
図7は、階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに増加された電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行って、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された1ページのメモリセルをまとめてプログラムできる。
【0039】
メモリテストシステム
図8〜図10は、本発明の様々な態様を実装できる例示的なメモリテストシステムを示す。
良好なプログラミング性能を達成するには、初期プログラミング電圧VPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧VPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するVPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。パルスからパルスにかけてのステップサイズにも同じことが当てはまる。一般的には、適切な分解能で図3に見られる区切られたあるいは分離された各領域を数ステップで横断できるのが最適なステップサイズである。最適な初期プログラミング電圧VPGM0なら数ステップで目標状態に達する。一般的に、ステップサイズはしきい値ウィンドウ内の区画数に基づき事前に決定できる。最適VPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをVPGM0トリミングという。
【0040】
図8は、いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。メモリテスタ300は通常、並行テストにあたって多数のメモリチップ100へ接続する。通常は工場からの出荷に先立ち、専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの1つとして、最適初期プログラミング電圧を判定する(VPGM0トリミング)。
【0041】
図9は、最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つをテストするメモリテスタの機能ブロックを概略的に示す。基本的に、メモリテスタ300はメモリチップ100に向けて一連のコマンドを発行し、これを受けてメモリチップは様々な初期プログラミング電圧サンプルを使って数々のプログラミング操作を実行する。不揮発性メモリアレイ200にはシステムデータを蓄積する指定エリア(「ROMFUSE」)202がある。メモリテスタはメモリインターフェイス310を通じてオンチップメモリコントローラ210とやり取りする。テスタのプロセッサ302は、ROM308から当初引き出されたRAM304内のテストプログラムを実行する。1組のテスタレジスタ306によりテストプログラムの実行は捗る。テストプログラムは、ユーザインターフェイス312からの入力を通じてユーザによって制御される。テスト結果をもとに、タイプの異なるワード線やページ等の様々なプログラミングバリエーションにとって最適な初期プログラミング電圧VPGM0を判断する。トリム値はROMFUSE202に戻され、蓄積される。通常のメモリ使用では、電源投入時にROMFUSEのデータをコントローラレジスタ350にロードすることで、コントローラ210はメモリ操作中にそれらのデータに速やかにアクセスできる。
【0042】
図10は、好適な実施形態に従い最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つとともに作動する代替のメモリテスタの機能ブロックを示す。この実施例ではテスト機能の多くがメモリチップ100そのものに組み込まれている。オンチップメモリコントローラ210’は、埋め込み内蔵セルフテスト(「BIST」)モジュール340と1組のコントローラレジスタ350のための追加の容量とによってさらに強化されている。このため、既述のVPGM トリミング操作を含む種々のテストはオンチップで実行できる。テスト結果をもとに最適初期プログラミング電圧VPGM0をオンチップまたは外部テスタ330により決定できる。決定した値はROMFUSE202に戻され、蓄積される。通常のメモリ使用では、電源投入時にROMFUSEのデータをコントローラレジスタ350にロードすることで、コントローラ210’はメモリ操作中にそれらのデータに速やかにアクセスできる。
【0043】
この強化セルフテスト型オンチップコントローラ210’により、外部の専用テスタはもはや必要ない。並行してテストされる多数のメモリチップの操作にあたっては、パーソナルコンピュータで実装されたシンプルなテスタ310で事足りる。メモリテスタ310はテスタメモリインターフェイス332を通じてオンチップメモリコントローラ210’とやり取りする。テスタはユーザインターフェイス334からオペレータ入力を受け取る。一実施例において、テスタ310はメモリチップ100の各々にセルフテストの実行を指示し、テストの終わりに各メモリチップの状態を報告するだけである。もうひとつの実施例において、テスタ310はテスト結果から統計を収集し、統計計算を行う。
このセルフテスト型オンチップコントローラ210’には、高価な専用テスタを使わずにすむという利点がある。テストを現場で行い、メモリ装置の経年劣化にともないVPGM0値のトリミングをやり直すという可能性も提供される。
【0044】
VPGM トリミング操作
図11Aは、メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。既に述べたように、このプロセスはプログラミング電圧(「VPGM 」)トリミングと呼ばれることもある。
ステップ400:良好なブロックiを選択する。実施例によっては、時間がかかるVPGM トリミング操作に取りかかる前のブロックに迅速なプログラムテストを行うと好ましい。このステップは実装しだいでオプションである。これを省くには、欠陥ワード線に遭遇した場合にその欠陥ワード線を無視するだけでよい。良好なブロック判定の詳しい説明を図11Bに示す。
ステップ410:サンプリングのため、選択したブロックiで1グループのワード線を選択する。{WL(i,j)ここでj=0、m−1}。一般的に、選択されるワード線のグループとワード線のタイプは類似するプログラミング特性を持つ。
ステップ420:WL(i,j)上のページで、VPGM0(i,j)から始まる階段パルス電圧波形により所定のパルス数以内でページ全体を指定状態までプログラムする初期プログラミング電圧VPGM0(i,j)を判断する。ワード線WL(i,j)を共有する1ページのメモリセルを並行してプログラムする。階段波形はパルスのたびに1ステップずつ増加し、所定のパルス数まで増加する。
ステップ460:十分なサンプルを収集するため、必要に応じステップ400〜420を繰り返して別のブロックを選択する。例えば、プログラミング特性が異なる3タイプのワード線がそれぞれのブロックにある。第1のタイプはブロックの上境界にある最初のワード線2本である。第2のタイプはブロックの下境界にある最後のワード線2本である。第3のタイプはブロックのコア領域にある全ワード線である。3タイプのワード線のそれぞれでサンプルを充実させるには、メモリアレイにまたがって分布する多数のブロックで大きなサンプルを採るのが好ましい。以降のセクションで説明するように、1組のブロックから幾何学的配置が類似するワード線を採ることによってタイプが類似する様々なワード線サンプルを形成することもできる。
ステップ470:ワード線サンプル全体で平均開始プログラミング電圧(「<VPGM0>」)を計算する。それには、各ワード線サンプルのVPGM0の総計を全ワード線サンプルの総計で割る。すなわち、
【0045】
図11Bは、図11Aに見られる良好なブロックを選択する一実施形態をより詳細に示す。良好なブロックとは、ワード線沿いの全メモリセルページをプログラムできるブロックを意味する。以下、図11Aに見られるステップ400をより明確に説明する。
ステップ401:ブロックを消去する。
ステップ402:ブロック内の全ワード線を所定のパルス数で指定状態まで順次プログラムする。
ステップ404:ブロック内のいずれかのワード線がプログラムに失敗した?失敗したワード線がある場合はステップ406へ進み、さもなくばステップ408へ進む。
ステップ406:1つ以上の欠陥ワード線を含むために不良ブロックとみなす。これは特に、NANDチェーンの中の1不良セルによってチェーン全体に動作不良が生じるNANDアーキテクチャのメモリに当てはまる。この不良ブロックはVPGM トリミングから外される。
ステップ408:ブロックは良好。良好なブロックはVPGM トリミングに選ばれる。
ステップ409:ブロックを消去し、その中にあるワード線をプログラムできる状態にする。
【0046】
1つ以上の欠陥ワード線の存在が必ずしもブロック全体の欠陥を意味しない実施例では、不良ブロック探索を行う必要はない。その場合は、既に述べたようにテスト中に遭遇した欠陥ワード線を単に無視すればよい。
【0047】
図12は、ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。図11Aのステップ420の従来の実施例では、記憶装置の効率的な使用と便宜を図るためにブロック内のワード線サンプルを個別にテストする。前のワード線のテストが完了した後に次のワード線をテストする。つまり、前のワード線のテストでプログラムに成功した後に(あるいはプログラム不能と判定された後に)、次のワード線でテストを繰り返す。以下、図11Aに見られるステップ420を従来の場合でより明確に説明する。
ステップ422:ブロックiを消去し、その中にあるワード線をプログラムできる状態にする。
ステップ424:まずはj=0に設定してサンプルの最初のワード線を指示する。
ステップ426:インデックス「j」を使ってブロック内のサンプルからワード線WL(i,j)を選択する。
ステップ428:開始プログラミング電圧の初期値を設定する。VPGM0(i,j)=VPGM0_0。
ステップ430:VPGM0(i,j)から所定のパルス数でワード線上のページを指定状態までプログラムする。
ステップ432:ページ/WLはプログラムされた?WL(i,j)が指定状態までプログラムされない場合はステップ440へ進み、さもなくばステップ450へ進む。
ステップ440:VPGM0(i,j)=VPGM0(i,j)+ΔVとなるようにVPGM0(i,j)を増加させる。
ステップ442:ブロックiを消去し、増加VPGM0(i,j)でワード線を再度プログラムできる状態にする。
ステップ450:ページのプログラムに成功した。統計を収集するためにVPGM0(i,j)を保存する。
ステップ452:ブロックiを消去し、次のワード線をプログラムできる状態にする。
ステップ454:サンプル中の最終ワード線に達した?最終ワード線のテストがまだならばステップ456へ進み、さもなくば図10Aのステップ460へ進む。
ステップ456:j=j+1により次のワード線へ進み、ステップ424まで戻って次のワード線をテストする。
【0048】
この従来方式では、消去をはさんだ相継ぐプログラムループをページが繰り返し通過することが分かる。既に述べたように、ワード線の個別テストでは各ワード線につきプログラムループがステップ440とステップ442をめぐるたびにブロック消去が行われるため、ブロックの消去回数が増えてしまう。テストを受ける全てのワード線でこの犠牲を払うことになる。
【0049】
再び図6を参照すると、各ブロックに多数のワード線があるメモリアーキテクチャで1ワード線のセルを何度も消去すれば、同じブロックにある残りのワード線も同じ回数だけ消去される。前に述べたように、このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【0050】
消去サイクルを減らすVPGM トリミング
本発明の一態様によると、ブロックの形に構成されたメモリセルアレイを有し、各ブロックが一斉に消去可能なメモリセルにアクセスするためのワード線からなり、各ワード線が一斉にプログラム可能な1ページ以上のメモリセルを含む不揮発性メモリにおいて、ブロック内のワード線に沿って1ページのメモリセルをプログラムするにあたって最適な開始電圧を推定するには、ブロック内の類似するワード線サンプルをテストプログラムして、それぞれのページ/ワード線を指定パターンまでプログラムできる個々の開始電圧から統計平均を求める。それには、開始プログラミング電圧から一連のパルスを印加するプログラムループをサンプルの全ページで実行する。サンプルの各ページがプログラムループを通過した後には、プログラム−ベリファイ済みのページ/ワード線をさらなる処理から除外し、その開始プログラミング電圧を保存する。ブロックを消去し、サンプル中のまだベリファイされたいないワード線を次の増加開始電圧による次のプログラムループで再度プログラムできる状態にする。このサイクルは、サンプル中の全ワード線がプログラム−ベリファイ済みとなるまで続く。個々の開始プログラミング電圧から統計平均を求めることで、そのページにとって最適な開始プログラミング電圧を導き出すことができる。
【0051】
既述した方式でブロック内のワード線サンプルをテストすれば、ブロック消去回数が減るという利点がある。ワード線サンプルは互いに段階的にテストされるため、全てのワード線がそれぞれのプログラムループでプログラムを終えたら、それらを一斉に消去して、次のプログラムループに取りかかることができる。この方式によりブロック消去回数は減り、従来方式に比べて10倍の節約を達成できる。例えば、図11に見られる従来方式ではそれぞれのワード線が個別にテストされ、プログラムループの前にはその都度ブロック消去があって互いに同期しない。1ワード線のプログラムループのたびに行われるブロック消去は、サンプル中のワード線ごとに倍加する。
【0052】
図13は、本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。3つの段階からなる作業が図に示されている。第1の段階500ではブロック内のページ/ワード線サンプルをテストし、統計を収集する。ここにはステップ510からステップ550までが含まれる。それぞれのワード線は1物理ページ以上のメモリセルをサポートする。加えて、それぞれのメモリセルページは各メモリセルで蓄積できるビット数に応じて1論理ページ以上のデータを蓄積する。よって、1つのワード線に複数の論理ページが対応する。種々の論理ページをプログラムするにあたってプログラミング特性に著しいばらつきがある限り、各論理ページのプログラミングは同じワード線上で特有のVPGM トリミングになる。テストでは一度に特定のワード線上の特定の論理ページをプログラムする。便宜上、ページをテストするということもあればワード線をテストするということもある。ステップ560を含む第2の段階では、サンプルとなる別のブロックで第1の段階500を繰り返す。復号化回路とプログラミング回路が2つ以上のブロックに対する操作をサポートする場合は、最初の2つの段階を同時に行うことができる。ステップ570からステップ572までを含む第3の段階では統計平均を計算し、テスト対象となるワード線の推定最適開始プログラミング電圧を導き出す。
【0053】
この作業では基本的に、それぞれのワード線に開始電圧を用いてプログラミングステップを適用し、ワード線上のページが所定のプログラムループ目標以内に指定状態までプログラムされるか否かをベリファイしながらサンプル中のワード線を循環する。プログラム−ベリファイ済みとなったページ/ワード線の開始電圧は保存する。プログラム−ベリファイ済みに至らないページ/ワード線の開始電圧は増加させる。この増加情報も、好ましくは蓄積装置に保存する。プログラム−ベリファイ済みに至らないワード線にはサイクルが繰り返されるので、ブロック消去の後には増加開始電圧によるプログラミングステップをもう一度通過させる。このプロセスは、サンプル中の全ワード線が所定のプログラムループ目標以内でプログラム−ベリファイ済みになるまで続く。
ステップ510:ブロックの中で特定のタイプのページを代表するページのサンプルを選択する。
ステップ520:サンプル中の各ページに対応する開始プログラミング電圧に初期値を提供する。
ステップ530:ページサンプルを含むブロックを消去する。
ステップ540:ページサンプルの中で目標パターンまでまだプログラムされていないページのサブセットをそれぞれの開始プログラミング電圧で順次プログラムし、各ページをプログラムした後には、
目標パターンまでプログラムされたか否かをベリファイし、かつ
ページがプログラム−ベリファイ済みに至っていなければ、その開始プログラミング電圧を所定の量で増加させ、プログラム−ベリファイ済みなら、ページのプログラム−ベリファイを可能にする開始プログラミング電圧を導き出すために情報を保存する。
ステップ550:サンプルの全ページがプログラム−ベリファイ済み?ベリファイ済みに至っていないページがある場合はステップ530まで戻り、さもなくばステップ560へ進む。
ステップ560:サンプルに選ばれた別のブロックでステップ500からステップ560までを繰り返す。
ステップ570:保存した情報からサンプルの平均開始プログラミング電圧を計算する。
ステップ572:サンプルの平均開始プログラミング電圧をもとに特定タイプのページの開始プログラミング電圧を導き出す。
【0054】
所定のプログラムループ目標によって最大許容増加数は制限される。この制限は2通りの実施例で2通りの意味を持つ。
一実施形態では、この制限で比較的低い増加上限を設定する。これは特定の開始電圧からページのプログラミングが失敗または不十分とみなされるまでの最大プログラミングパルスまたは増加数を設定する。この数字は、通常のメモリ装置の使用で実際のプログラミング操作中に割り当てられるプログラミングステップ数とほぼ同じ数字に設定する。例えば、ユーザによる通常のプログラミング操作で、ある特定の論理ページのプログラミングは8〜10プログラミングパルス以内で完了しなければならない。こうすることでVPGM トリミングテストは現実のプログラミング状況に近いものになる。一般的に、この制限は5〜15の範囲におよぶ。
【0055】
後ほど詳述するもうひとつの実施形態において、最終電圧によってページがプログラム済みになるまでプログラミング電圧を増やすことができる。この最終電圧をもとに、所定のステップ数までスケールバックすることにより最適開始電圧を推定する。この実施形態では通常のプログラミング状況を模擬するために制限を設定しない。しかし、欠陥ワード線に遭遇する場合の開始プログラミング電圧の増加は無限ではない。欠陥ワード線に遭遇する場合の増加を最大所定値に制限するため、制限は高めの数字(例えば、30〜50)に設定する。開始プログラミング電圧を最大値まで増やした後にページを指定状態までプログラムできない場合はそのワード線を欠陥とみなし、そのVPGM データを統計から除外する。別の実施例では欠陥ワード線を含むブロック全体を除外する。
【0056】
説明した2つの実施形態ではそれぞれ異なる理由からプログラムループに制限を設ける。制限を低く設定する最初の実施形態では、通常のプログラミング操作のようにパルスステップ数のマージンを設けることによって開始電圧からのプログラミングの成功を評価する。制限内で完了するプログラミングは成功とみなす。逆に、プログラミングの不成功は開始電圧の設定が低すぎることを意味する。制限を高い上限に設定する2番目の実施形態は、欠陥ワード線をプログラムできない場合の無限増加を防ぐ。この制限に達した場合、開始電圧が低すぎることを意味するのではなく、単にワード線に欠陥があることを意味する。
【0057】
もうひとつの実施例でも低い制限が企図される。階段波形の最初の数ステップ(例えば、1または2ステップ)以内にプログラムループが完了するなら、これはそのページが非常に速い異例のプログラミング特性を持つことを意味する。したがって、所定の低い制限内でプログラム−ベリファイ済みになるページは異例とみなし、統計を歪めないようにするために平均計算から除外する。
【0058】
図14は、図13に見られる作業の具体的な実施例を示すフローチャートである。
ステップ610:ブロックiの初期値を設定する。
ページベリファイステータス:PageDone(j)=FALSE、全てのj
初期プログラミング電圧:VPGM0(i,j)=VPGM0_0、全てのj
ΔVPGM0数:StepUp#(j)=0、全てのj
ステップ620:ブロックiを消去する。
ステップ630:j=0。
ステップ632:サンプルの中でワード線WL(i,j)を選択する。j=0、m−1。
ステップ640:VPGM0(i,j)から所定のパルス数にかけてワード線上のページを指定状態までプログラムする。
ステップ642:ページはプログラムされた?ページがプログラム−ベリファイ済みに至っていなければステップ650へ進み、さもなくばステップ660へ進む。
ステップ650:ワード線はプログラム−ベリファイ済みに至っていない。したがって、その初期プログラミング電圧をさらなるステップにより増加させる。StepUp#(j)を増加させる。StepUp#(j)=StepUp#(j)+1。
ステップ652:VPGM0(i,j)を増加させる。VPGM0(i,j)=VPGM0(i,j)+StepUp#(j)*ΔV。
ステップ660:ワード線のテストが終了し、ページ処理済みを標示する。PageDone=TRUE。
ステップ662:初期電圧からのステップアップ数として最終プログラミング電圧の情報を蓄積する。StepUp#Global=StepUp#Global+Stepup#(j)。
ステップ670:次のワード線。j=j+1。
ステップ672:サンプル中の最終ワード線に達した?(すなわち、j=m?)WL(i,j)が最後のワード線でなければステップ680へ進み、さもなくばステップ690へ進む。
ステップ680:非処理済みページ。PageDone(j)=TRUE?現在のページがプログラム−ベリファイ済みであることをステータスが伝える場合はこれを無視するかあるいは省き、プロセスはステップ670へ進み、さもなくばプロセスはステップ632まで戻って、プログラム−ベリファイ済みに至っていない次のワード線をテストする。
ステップ690:全てのページ/WLがプログラムされるまで残りの非処理済みWLを再走査する。全てのjでIs_PageDone(j)=TRUE?プログラム−ベリファイ済みに至っていないワード線が1つでもある場合はステップ620まで戻って、増加プログラミング電圧で再度プログラムし、さもなくば全ワード線のプログラミングは終わっているから、プロセスは図12のステップ560へ進む。
【0059】
スケーリングによる開始電圧の推定
本発明のもうひとつの態様によると、ワード線上のページの初期プログラミングテスト運転によって開始プログラミング電圧の初期値を推定する。ワード線上の選択されたページを一連の階段波形電圧パルスで逐次プログラムし、パルス間にベリファイをはさみながらページが指定パターンまでプログラムされたことをベリファイする。ページがプログラム−ベリファイ済みになるときの最終プログラミング電圧を使用し、所定の量までスケールバックすることにより開始プログラミング電圧を推定する。類似するページ/ワード線サンプルを検討することによって平均開始プログラミング電圧を求める。異例の項目によって統計が歪まないようにするため、サンプル中でプログラムできないページ/ワード線は無視してよい。
【0060】
もうひとつの実施形態ではプロセスをさらに洗練させ、第1の行程から推定された開始プログラミング電圧を第2の行程の階段波形の初期値として使用する。こうすれば類似するページのサンプルで平均を求めるときに、代表的なページの開始プログラミング電圧を推定できる。開始プログラミング電圧は、所定の階段波形ステップ数により最終プログラミング電圧を負にオフセットすることによって推定する。所定のステップ数は、好ましくは通常のプログラミング操作でプログラム成功に割り当てるステップ数とほぼ同じにする。
【0061】
このスケーリング方式の利点として、各ページ/ワード線に対するシンプルな1または2行程プログラミングテストで十分にページの開始プログラミング電圧の推定を得ることができる。各ページを個別にテストでき、テスト中に多数の消去操作をともなうことはない。このため、ワード線サンプルの中でブロック消去を管理する必要はない。
【0062】
図15は、メモリセルページの初期プログラミングテストで使用する階段波形を示す。メモリセルページをサポートするワード線にこの階段波形電圧を印加する。漸増プログラミングを実行するため、まずはViの電圧パルスを印加する。その後、電圧は、ページを読み出してページが指定パターンまでプログラムされたか否かをベリファイするのに適したVVERに変わる。プログラムパルスを印加しベリファイするプロセスは、ページがプログラム−ベリファイ済みになるまで続く。この時点でプログラミング電圧はVf=StepUps#*ΔVまで増加している。一実施形態において、この最終電圧を所定のステップ数からバックオフして、前に述べたVPGMトリミングテストの開始プログラミング電圧推定とする、すなわち、VPGM0=Vf−NOFFSET*ΔV、ここでNOFFSETは所定のステップ数である。
【0063】
図16は、図15に見られる階段波形走査を使用し特定のページで開始プログラミング電圧を判定するフローチャートである。
ステップ800:メモリセルページをプログラムするため、所定の初期電圧レベルVp=Viとするプログラミング電圧を用意する。
ステップ802:メモリセルページを消去する。
ステップ810:Vpのパルスをメモリセルページに印加する。
ステップ812:メモリセルページが所定の記憶状態の対応するページになるまでプログラムされたか否かをベリファイする。
ステップ814:ページはプログラム−ベリファイ済み?ページがプログラム−ベリファイ済みでなければステップ820へ進み、さもなくばステップ830へ進む。
ステップ820:プログラミング電圧を所定の量Vp=Vp+DVで増加させる。
【0064】
ステップ830:ページの開始プログラミング電圧を保存する、VPGM0=Vp−NOFFSET*ΔV。好適な実施例では、推定開始プログラミング電圧を第2行程のテスト運転で階段波形の初期値として使用する。このようにして初期値は、第1行程のテスト運転のものに比べて通常のプログラミング操作に近いものになる。
これまでどおり、タイプが類似するワード線のサンプルをテストして、そのタイプの統計的に平均化された開始プログラミング電圧を求める。テスト結果用の記憶装置を抑えるため、好ましくはテスト運転が終わるたびに統計平均を実行する。
【0065】
図17は、ページ/ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
ステップ850:タイプが類似するページのサンプルで第1の行程のテスト運転(例えば、各ページにつきステップ800からステップ830)を実行する。
ステップ860:第1の行程のテスト運転から推定開始プログラミング電圧の第1の統計平均を求める。<VPGM0>1 。
ステップ870:開始プログラミング電圧の初期値として<VPGM0>1 を使用し(すなわち、Vi=<VPGM0>1 )、タイプが類似するページのサンプルで第2の行程のテスト運転(例えば、各ページにつきステップ800からステップ830)を実行する。
ステップ880:第2の行程のテスト運転から推定開始プログラミング電圧の第2の統計平均を求める。<VPGM0>2 。
【0066】
一実施形態において、満足な開始プログラミング電圧推定を得るにあたっては1行程(ステップ850からステップ860)だけで十分である。もうひとつの実施形態において、第2の行程(ステップ870からステップ880)を任意に使用し、第1の行程から得た結果を精緻化する。
【0067】
別の実施例では、図13および図14で説明したVPGMトリミング方式の初期値のための入力として推定開始電圧<VPGM0>1 または<VPGM0>2 を使用する。図13のステップ520と図14のステップ610で説明したテストの開始プログラミング電圧には初期値VPGM0_0が必要である。この値の設定が低すぎると、テストでワード線がプログラム−ベリファイ済みになるまでのステップが増えてしまう。これは非効率的であり、メモリ装置の消去サイクルが多くなる。他方、値の設定が高すぎるとワード線がオーバープログラムされるおそれがある。
【0068】
高速プログラミングページ偏重VPGM トリミング
本発明のもうひとつの態様によると、複数の消去可能なブロックを有し、プログラミング特性が類似する1グループのワード線を各ブロックに有するメモリアレイにおいて、グループの代表的なページの最適開始プログラミング電圧を得る方式は、1セットのブロックにわたってセットの各ブロックで幾何学的に類似する位置にある1つ以上のワード線でサンプルを形成することと、セットの各サンプルからプログラミング電圧の統計推定を得ることと、最適開始プログラミング電圧を導き出すためにセットの中で最小推定を選択することとを含む。高速プログラミングワード線は低速プログラミングワード線に比べて低いプログラミング電圧ですむため、このやり方により最適値はグループの高速プログラミングワード線を重視したものになる。
【0069】
他のセクションで説明したプログラミング電圧トリミング方式では、ページの全てのビットがプログラム−ベリファイ済みか否かを一度に1ページずつ調べる。低速プログラミングビットもプログラム−ベリファイ済みにならなければページ全体がプログラム−ベリファイされたことにはならないから、この場合のテスト結果は低速プログラミングビット寄りのものになる。その結果、開始電圧の推定は高速プログラミングビットにとって過大なものとなり、オーバープログラミングを招くおそれがある。ここで説明するサンプリング・統計計算方式なら、低速プログラミングビットに偏った方式から導き出された最も低い値を開始電圧のセットとして選択できる。
【0070】
幾何学的に類似する位置ということは、物理メモリアレイのレイアウトに何らかの対称性があることを意味する。同じ対称グループに属する構造は非常に類似する特性を持つ。図6を参照すると、例えばWL2からWL13までは消去ブロックのコア領域でまったく同じではなくともある程度は類似するプログラミング特性を持つ1グループのワード線を形成する。例えば、ブロック0からブロック127までを1セットのブロックとする。そのセットの各ブロックで幾何学的に類似する位置からワード線を選択することによってサンプルを形成する。第1のサンプルはブロック0のWL2、ブロック1のWL18、ブロック2のWL34・・・ブロック127のWL1034からなる。第2のサンプルはブロック0のWL3、ブロック1のWL19、ブロック2のWL35・・・ブロック127のWL1035からなる。全部で128サンプルのセットになる。それぞれのサンプルでVPGM トリミング操作を実行すると、128の統計結果(例えば、<VPGM0>)が得られる。この方法では128の<VPGM0>の中で最も小さい<VPGM0>を選ぶ必要がある。
【0071】
図18は、高速プログラミングワード線を重視したVPGM トリム値を得る方式を示すフローチャートである。
ステップ900:消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能ブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含む不揮発性メモリを用意する。
ステップ902:ブロックの中でページを代表する1グループのページを選択する。
ステップ904:1セットのブロックを選択する。
ステップ906:少なくとも各ブロックの幾何学的に類似する位置にあるページを各ブロックから選択することにより、1セットのサンプルを形成する。
ステップ908:セットの各サンプルからプログラミング電圧の統計推定を求める。
【0072】
ステップ910:セットの中で最小統計推定を選択することによってページの開始プログラミング電圧を判定する。少なくとも類似するページを各ブロックから選択することによって個々のサンプルを形成しテストするこの方式には、最低限の記憶装置ですむという利点もある。それぞれのサンプルをテストした後には平均値の形でテスト結果を出し、蓄積する。次のサンプルも同様にテストし、その平均値を蓄積された最初の平均値に比較する。記憶装置にはいずれか低いほうの平均値が残るから、1セットのサンプルを一度に1サンプルずつ処理する過程でただひとつのデータを蓄積するだけでよい。
【0073】
各ブロックからごく一部を選択することによってサンプルを形成するため、欠陥ワード線が大部分を占める不良ブロックにサンプル平均がさほど左右されないという利点もある。
【0074】
ここで参照する特許、特許出願、記事、書籍、仕様書、その他の出版物、文書、事物はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている出版物、文書、または事物のいずれかと本願明細書の本文との間で用語の定義または使用に矛盾や食い違いがある場合には本願明細書における用語の定義または使用が優先するものとする。
【0075】
これまで本発明の様々な態様を特定の実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【技術分野】
【0001】
本発明は、一般的には電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)やフラッシュEEPROM等の不揮発性半導体メモリに関し、より具体的には様々なメモリセル群の最適初期プログラミング電圧を判定することに関する。
【背景技術】
【0002】
不揮発性電荷蓄積が可能な固体メモリは、特に形状因子が小さいカードにパッケージ化されたEEPROMやフラッシュEEPROMの形をとるものが最近、情報家電や家庭用電化製品を中心に様々なモバイルおよびハンドヘルド装置の記憶装置として盛んに選ばれている。同じく固体メモリであるRAM(ランダムアクセスメモリ)と違って、フラッシュメモリは不揮発性であって、電源を切った後にも蓄積されたデータを保持する。フラッシュメモリはコストが高くつくにもかかわらず、大容量記憶用途で使われることが多くなっている。ハードドライブやフロッピーディスク等、回転する磁気媒体を基礎とする従来の大容量記憶装置は、モバイルおよびハンドヘルド環境に不向きである。なぜならば、ディスクドライブは、えてしてかさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うためである。このような望ましくない属性を持つディスク方式の記憶装置は、殆どのモバイルおよびポータブル用途において実用的でない。他方、埋め込み型と着脱可能なカードの形をとるフラッシュメモリは、その小さなサイズ、低消費電力、高速度、および高い信頼性ゆえにモバイルおよびハンドヘルド環境に理想的にマッチする。
【0003】
EEPROMと電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去が可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる不揮発性メモリである。いずれも半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造によるフローティング(非接続)導電性ゲートを利用する。さらに、このフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷の量によって制御される。つまり、フローティングゲート上の一定レベルの電荷に応じてコントロールゲートに印加すべき電圧(しきい値)があり、これが印加されることによりトランジスタは「オン」に切り替わり、ソース領域とドレイン領域との導通が可能となる。
【0004】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは普通、メモリ装置の特性と、作動条件と、来歴とに左右される。セルの一定の記憶状態は、基本的にはウィンドウ内の個々の明確な分解可能なしきい値電圧レベル範囲によって指定される。
【0005】
通常の2状態EEPROMセルでは、1つ以上の電流区切りレベルを設定して伝導ウィンドウを2つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース/ドレイン電流を区切りレベル(または基準電流IREF )に比較することによって記憶状態が決定する。読み出される電流が区切りレベルのものより高ければ、セルはひとつの論理状態(例えば「0」状態)にあると判断する。他方、電流が区切りレベルのものに満たなければ、セルはもうひとつの論理状態(例えば「1」状態)にあると判断する。このような2状態セルは1ビットのデジタル情報を蓄積する。外部からプログラムできる基準電流源は多くの場合、メモリシステムの一部として用意され、区切りレベル電流を生成する。
【0006】
メモリ容量を増やすため、フラッシュEEPROM装置の実装密度は半導体技術の進歩にともない益々高くなっている。各メモリセルで3状態以上を蓄積することによって蓄積容量を増やす方法もある。
【0007】
多状態またはマルチレベルEEPROMメモリセルの場合、伝導ウィンドウを2つ以上の区切り点で3つ以上の領域に分割し、各セルで2ビット以上のデータを蓄積できるようにする。したがって、EEPROMアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第5,172,338号(特許文献1)には、多状態またはマルチレベルメモリセルを備えるEEPROMまたはフラッシュEEPROMが記載されている。
【0008】
メモリセルとして機能するトランジスタは通常、2通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上の電子が加速する。同時に、コントロールゲートに印加される高電圧は、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。こうして電子は基板から介在するフローティングゲートまで引き寄せられる。
【0009】
メモリ装置の消去にはいくつか方法がある。EPROMの場合、紫外線によってフローティングゲートから電荷を取り除くことによってメモリをまとめて消去できる。EEPROMの場合、コントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導することによってメモリセルを電気的に消去できる(すなわち、ファウラ・ノルドハイム・トンネル)。通常、EEPROMはバイト単位で消去可能である。フラッシュEEPROMの場合、メモリが一度にまるごと、または一度に1ブロック以上が、電気的に消去され、ブロックは512バイト以上のメモリで構成されることがある。
【0010】
メモリ装置は通常、1つ以上のメモリチップをカード上に実装する。それぞれのメモリチップは、デコーダや消去、書き込み、および読み出し回路等の周辺回路によってサポートされるメモリセルアレイを備える。より精緻なメモリ装置は、知的で高度なメモリ操作とインターフェイスを実行する外部メモリコントローラと連動する。
【0011】
特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された1ページのメモリセルをまとめてプログラムできる。
【0012】
良好なプログラミング性能を達成するには、初期プログラミング電圧VPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧VPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するVPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。最適な初期プログラミング電圧VPGM0なら数ステップで目標状態に達する。この最適VPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをVPGM0トリミングという。
【0013】
通常は工場からの出荷に先立ち専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの1つとして、最適初期プログラミング電圧を判定する(VPGM0トリミング)。つまり、従来のVPGM0トリミングはメモリテスタで行われるが、このメモリテスタは高価な専用装置である。しかも、それらのメモリテスタは大抵ワード線を個別にテストするもので、現在のワード線のテストが完了した後に次のワード線に進む。このやり方でワード線上の1ページのメモリセルをプログラムループでプログラムし、目標パターン(例えば「0000・・・0」、ここで「0」は所定のプログラム状態)までプログラムできるか否かをテストする。このプログラムループでは通常、最初の開始プログラミング電圧から一連のプログラミング電圧パルスを使用する。そして、ベリファイ操作でページをリードバックして、目標パターンまで正常にプログラムされたか否かを判断する。プログラム−ベリファイ済みに至らない場合はページ/ワード線のセルを消去し、次のプログラムループで開始プログラミング電圧を上げて再びプログラムする。ページがプログラム−ベリファイ済みになるまではこのプロセスを繰り返す。このようにして、ページのプログラム−ベリファイを可能にする開始プログラミング電圧値を判断する。
【0014】
ページを適切にプログラムするための初期プログラミング電圧を得るには、プログラムループの初期プログラミング電圧を上げながら試行を繰り返す必要がある。従来のVPGM0トリミングでは、開始電圧を上げて次のプログラムループを実行する前にページを消去しなければならないことが分かる。そのページを保持するワード線のメモリセルは試行中に何度も消去されることがある。また、同じ消去ブロックにある他の全てのワード線も消去サイクルを通過する。
【0015】
消去/プログラムサイクルを通過するたびに被る耐久性にかかわるストレスによって不揮発性メモリ装置の寿命は制限される。例えば、フラッシュEEPROM装置の耐久性は一定数のプログラム/消去サイクルに耐える力である。装置の能動誘電体膜における電子の捕獲は、この不揮発性メモリ装置の耐久性を制限する物理現象である。図2を参照すると、プログラミング中には基板から誘電体界面を通じて電荷蓄積単位にかけて電子が注入される。同様に、消去中には電荷蓄積単位から誘電体界面を通じて電子が抽出される。いずれの場合も、ある程度の電子は誘電体界面によって捕獲される。捕獲された電子が以降のプログラム/消去サイクルで印加される電場に対抗するため、プログラムしきい値電圧は低い値へ推移し、消去しきい値電圧は高い値に推移する。徐々に閉鎖するしきい値ウィンドウにこれを見ることができる。このしきい値ウィンドウの閉鎖によって実質的な耐久性は約104 プログラム/消去サイクルまで制限される。
【0016】
各ブロックに多数のワード線があるメモリアーキテクチャで1ワード線のセルを何度も消去すると、同じブロックにある残りのワード線も同じ回数だけ消去される。このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。例えば各ワード線につき10回程度の試行が必要で、各ブロックに64本のワード線があるなら、そのブロックは全部で640回の消去サイクルを被ることになる。また、VPGM0トリミングは他の変数をカバーするためにも行われる。例えば、ワード線は複数の物理ページと複数の論理ページを持つことがある。ブロック境界に近いワード線は、コア領域にあるワード線に比べて若干異なるプログラミング特性を持つことがある。このようなばらつきによって必要なトリミング数が10倍増しになることがある。このため、工場で行われる従来のVPGM トリミングでは数千もの耐久サイクルをメモリ装置に費やすことになる。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【0017】
したがって、高性能・高容量不揮発性メモリが一般的に求められている。とりわけ、過剰な耐久サイクルをメモリに強いることなく開始プログラミング電圧を決定し、最適に設定する、不揮発性メモリが求められている。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】米国特許第5,172,338号
【特許文献2】米国特許第5,595,924号
【特許文献3】米国特許第5,070,032号
【特許文献4】米国特許第5,095,344号
【特許文献5】米国特許第5,315,541号
【特許文献6】米国特許第5,343,063号
【特許文献7】米国特許第5,661,053号
【特許文献8】米国特許第5,313,421号
【特許文献9】米国特許第6,222,762号
【特許文献10】米国特許第5,570,315号
【特許文献11】米国特許第5,903,495号
【特許文献12】米国特許第6,046,935号
【特許文献13】米国特許第5,768,192号
【特許文献14】米国特許第6,011,725号
【非特許文献】
【0019】
【非特許文献1】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
【発明の概要】
【0020】
消去サイクルを減らすVPGM トリミング
本発明の一態様によると、ブロックの形に構成されたメモリセルアレイを有し、各ブロックが一斉に消去可能なメモリセルにアクセスするためのワード線からなり、各ワード線が一斉にプログラム可能な1ページ以上のメモリセルを含む不揮発性メモリにおいて、ブロック内のワード線に沿って1ページのメモリセルをプログラムするにあたって最適な開始電圧を推定するには、ブロック内の類似するワード線サンプルをテストプログラムして、それぞれのページ/ワード線を指定パターンまでプログラムできる個々の開始電圧から統計平均を求める。それには、開始プログラミング電圧から一連のパルスを印加するプログラムループをサンプルの全ページで実行する。サンプルの各ページがプログラムループを通過した後には、プログラム−ベリファイ済みのページ/ワード線をさらなる処理から除外し、その開始プログラミング電圧を保存する。そして、ブロックを消去し、サンプル中のまだベリファイされていないワード線を次の増加開始電圧による次のプログラムループで再度プログラムできる状態にする。このサイクルは、サンプル中の全ワード線がプログラム−ベリファイ済みとなるまで続く。そして、個々の開始プログラミング電圧から統計平均を求めることで、そのページにとって最適な開始プログラミング電圧を導き出すことができる。
【0021】
既述した方式でブロック内のワード線サンプルをテストすれば、ブロック消去回数が減るという利点がある。ワード線サンプルは互いに段階的にテストされるため、全てのワード線がそれぞれのプログラムループでプログラムを終えたら、それらを一斉に消去して、次のプログラムループに取りかかることができる。この方式によりブロック消去回数は減り、従来方式に比べて10倍の節約を達成できる。例えば、従来方式ではそれぞれのワード線が個別にテストされ、プログラムループの前にはその都度ブロック消去があって互いに同期しない。1ワード線のプログラムループのたびに行われるブロック消去は、サンプル中のワード線ごとに倍加する。
【0022】
本発明のさらなる特徴と利点は、この後に続く好適な実施形態の説明を添付の図面と併せて解釈することで理解することができる。
【図面の簡単な説明】
【0023】
【図1】不揮発性メモリチップの機能ブロックを概略的に示す。
【図2】不揮発性メモリセルを概略的に示す。
【図3】フローティングゲートが随時一度に選択的に蓄積できる4通りの電荷Q1〜Q4でソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示す。
【図4】NORメモリセルアレイの一例を示す。
【図5A】NANDストリングの形に構成されたメモリセルストリングを概略的に示す。
【図5B】図5Aに示されたNANDストリング等のNANDストリングからなるNANDメモリセルアレイの一例を示す。
【図6】消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。
【図7】階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。
【図8】いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。
【図9】最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つをテストするメモリテスタの機能ブロックを概略的に示す。
【図10】好適な実施形態に従い最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つとともに作動する代替のメモリテスタの機能ブロックを示す。
【図11A】メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。
【図11B】図11Aに見られる良好なブロックを選択する一実施形態をより詳細に示す。
【図12】ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。
【図13】本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。
【図14】図13に見られる作業の具体的な実施例を示すフローチャートである。
【図15】メモリセルページの初期プログラミングテストで使用する階段波形を示す。
【図16】図15に見られる階段波形走査を使用し、VPGM トリミングの開始プログラミング電圧を判定するフローチャートである。
【図17】ページ/ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
【図18】高速プログラミングワード線を重視したVPGM トリム値を得る方式を示すフローチャートである。
【発明を実施するための形態】
【0024】
メモリシステム
図1〜図7は、本発明の様々な態様を実装できる例示的なメモリシステムを示す。
図1は、不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ100は、二次元のメモリセルアレイ200と、制御回路210と、デコーダ、読み出し/書き込み回路、マルチプレクサ等の周辺回路とを含む。メモリアレイ200は、行デコーダ230Aおよび230Bによりワード線(図2参照)ごとに、また列デコーダ260Aおよび260Bによりビット線(図2参照)ごとにアドレスできる。読み出し/書き込み回路270Aおよび270Bにより、メモリセルページの読み出しまたはプログラムは並行して行うことができる。好適な実施形態において、同じワード線を共有する隣接するメモリセル行からページが構成される。メモリセル行を複数のページに区分する別の実施形態において、個々のページに向けて読み出し/書き込み回路270Aおよび270Bを多重化するためにブロックマルチプレクサ250Aおよび250Bを設ける。
【0025】
制御回路210は読み出し/書き込み回路270と協働しながらメモリアレイ200に対してメモリ操作を実行する。制御回路210は通常ならば状態マシン212を含むほか、オンチップアドレスデコーダや電力制御モジュール(明確に図示せず)等、その他の回路を含む。状態マシン212はチップレベルのメモリ操作制御を提供する。
メモリアレイ200は通常、行および列に配列されてワード線およびビット線によりアドレスできる二次元のメモリセルアレイとして構成される。アレイは、NORタイプのアーキテクチャまたはNANDタイプのアーキテクチャに従って形成できる。
【0026】
図2は、不揮発性メモリセルを概略的に示す。メモリセル10は、フローティングゲートや誘電体層等の電荷蓄積単位20を有する電界効果トランジスタによって実装できる。メモリセル10は、ソース14、ドレイン16、およびコントロールゲート30も含む。
現在、商業的に成功を収めた不揮発性固体メモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用され、各種のメモリセルは1つ以上の電荷蓄積素子を持つ。
【0027】
典型的な不揮発性メモリセルはEEPROMとフラッシュEEPROMとを含む。米国特許第5,595,924号(特許文献2)には、EEPROMセルの例とその製造方法が記載されている。米国特許第5,070,032号(特許文献3)、第5,095,344号(特許文献4)、第5,315,541号(特許文献5)、第5,343,063号(特許文献6)、第5,661,053号(特許文献7)、第5,313,421号(特許文献8)、および第6,222,762号(特許文献9)には、フラッシュEEPROMセルの例と、メモリシステムにおけるその運用と、その製造方法が記載されている。特に米国特許第5,570,315号(特許文献10)、第5,903,495号(特許文献11)、第6,046,935号(特許文献12)には、NANDセル構造を持つメモリ装置の例が記載されている。また、エイタンらによる「NROM:新しい局限トラッピング、2ビット不揮発性メモリセル」,IEEE電子デバイスレター,第21巻,第11号,2000年11月,543〜545ページ (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)(非特許文献1)、米国特許第5,768,192号(特許文献13)および第6,011,725号(特許文献14)には、誘電性蓄積素子を利用するメモリ装置の例が記載されている。
【0028】
実際には、コントロールゲートに基準電圧が印加されるときにセルのソース電極とドレイン電極にかけて伝導電流を感知することによってセルの記憶状態を読み出すのが普通である。セルのフローティングゲート上の特定の各電荷につき、一定の基準コントロールゲート電圧に対応する伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウはフローティングゲートにプログラムできる電荷の範囲によって決まる。
【0029】
分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートでテスト対象となる特定の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いかまたは高いかを検出することも可能である。一実施形態において、ビット線の静電容量を通じて放電する伝導電流のレートを調べることによって、しきい値電流に対する伝導電流の検出を果たす。
【0030】
図3は、フローティングゲートが随時一度に選択的に蓄積できる4通りの電荷Q1〜Q4でソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示すものである。実線で描かれた4本のID 対VCG曲線はメモリセルのフローティングゲートにプログラムできる4通りの電荷レベルを表し、4通りの可能な記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウの範囲は0.5Vから3.5Vに及ぶ。しきい値ウィンドウをそれぞれ0.5V間隔で5つの領域に分割することにより、6通りの記憶状態に区切ることができる。例えば、図に示されるように2μAの基準電流IREF を使用するなら、Q1でプログラムされるセルは、その曲線がVCG=0.5Vおよび1.0Vで区切られたしきい値ウィンドウの領域内でIREF と交差するため、記憶状態「1」にあるとみなされる。同様に、Q4は記憶状態「5」にある。
【0031】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。この場合は所要の分解能を達成するためにプログラミング操作と読み出し操作の精度を上げる必要がある。
【0032】
図4は、NORメモリセルアレイの一例を示す。メモリアレイ300のメモリセルの各行は、それぞれのソース14とドレイン16によってデイジーチェーン方式で接続される。この設計は仮想接地設計と呼ばれることがある。行内のセル10のコントロールゲート30はワード線42等のワード線へ接続する。列内のセルのソースおよびドレインは、ビット線34および36等、選択されたビット線へそれぞれ接続する。
【0033】
図5Aは、NANDストリングの形に構成されたメモリセルストリングを概略的に示す。NANDストリング50は、ソースおよびドレインによってデイジーチェーン方式で接続された一連のメモリトランジスタM1、M2・・・Mn(例えば、n=4、8、16またはそれ以上)からなる。1対の選択トランジスタS1、S2は、NANDストリングのソース端子54とドレイン端子56を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイでソース選択トランジスタS1がオンになると、ソース端子はソース線へ結合される(図5B参照)。同様に、ドレイン選択トランジスタS2がオンになると、NANDストリングのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、一定量の電荷を蓄積して目的の記憶状態を表現する電荷蓄積素子20を具備する。各メモリトランジスタのコントロールゲートは読み出し操作と書き込み操作とを制御する。図5Bに見られるように、NANDストリング行の対応するメモリトランジスタのコントロールゲートは、いずれも同じワード線へ接続する。同様に、選択トランジスタS1、S2のそれぞれのコントロールゲートは、それぞれのソース端子54とドレイン端子56を介したNANDストリングへのアクセスを制御する。同様に、NANDストリング行の対応する選択トランジスタのコントロールゲートは、いずれも同じ選択線へ接続する。
【0034】
NANDストリングの中でアドレスされたメモリトランジスタを読み出したり、あるいはプログラミング中にベリファイしたりするときには、そのコントロールゲートにしかるべき電圧を供給する。同時に、NANDストリング50の中でアドレスされていない残りのメモリトランジスタは、それぞれのコントロールゲートに十分な電圧が印加されることによって完全にオンになる。このようにして、個々のメモリトランジスタのソースからNANDストリングのソース端子54にかけて導電経路ができあがり、個々のメモリトランジスタのドレインからセルのドレイン端子56にかけても同様である。米国特許第5,570,315号(特許文献10)、第5,903,495号(特許文献11)、第6,046,935号(特許文献12)には、そのようなNANDストリング構造を持つメモリ装置が記載されている。
【0035】
図5Bは、図5Aに示されたNANDストリング等のNANDストリングからなるNANDメモリセルアレイの一例を示す。ビット線、例えばビット線36は、NANDストリングの各列に沿って各NANDストリングのドレイン端子56へ結合する。ソース線、例えばソース線34は、NANDストリングの各バンクに沿って各NANDストリングのソース端子54へ結合する。NANDストリングのバンクのセル行に沿ったコントロールゲートはワード線に接続する。NANDストリングのバンクのワード線と選択線にしかるべき電圧をかけることにより、NANDストリングのバンクのメモリセル行全体をアドレスできる。NANDストリングの中であるひとつのメモリトランジスタを読み出すときには、ストリングの中にある残りのメモリトランジスタがそれぞれのワード線を通じてハードにオンになるため、ストリングの中を流れる電流は基本的に、読み出し対象セルに蓄積される電荷レベルに左右される。
【0036】
図6は、消去可能なブロックに構成されたメモリアレイの一例を概略的に示す。電荷蓄積メモリ装置のプログラミングでは専らその電荷蓄積素子に電荷を加えるだけである。このため、プログラミング操作にあたって、メモリセルの電荷蓄積素子に存在する電荷を事前に除去(または消去)しなければならない。セルアレイ全体あるいはアレイのかなりのセル群を、電気的に一斉に(瞬時に)消去するEEPROM等の不揮発性メモリは「フラッシュ」EEPROMと呼ばれる。消去の後にはセル群を再度プログラムできる。一斉に消去できるセル群は1つ以上のアドレス可能な消去単位からなる。消去単位またはブロックは通常1ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、1回の操作で2ページ以上をプログラムしたり、あるいは読み出したりする場合もある。各ページは通常1セクタ以上のデータを格納し、このセクタのサイズはホストシステムによって決まる。磁気ディスクドライブの規格に従い512バイトのユーザデータからなるセクタはその一例であり、さらにここにユーザデータおよび/またはこれを格納するブロックに関する何バイトかのオーバーヘッド情報が加わる。
【0037】
図6に見られる例では、メモリアレイ200の個々のメモリセルには、ワード線WL0〜WLy とビット線BL0〜BLx によってアクセスできる。このメモリは消去ブロック0、1・・・m等の消去ブロックに構成されている。図5Aおよび図5Bも参照すると、NANDストリング50の中に16のメモリセルがあるなら、アレイ内のNANDストリングの最初のバンクにはWL0〜WL15でアクセスできる。消去ブロック0は、NANDストリングの最初のバンクの全メモリセルが一斉に消去されるように構成されている。別のメモリアーキテクチャでは、2つ以上のNANDストリングのバンクを一斉に消去できる。
【0038】
図7は、階段波形の形で選択されたワード線へ印加される一連のプログラミング電圧パルスを示す。特定の状態までプログラムされるセルは相継ぐプログラミング電圧パルスに晒され、その都度フローティングゲートに増加された電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行って、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流がベリファイされるとプログラミングは停止する。メモリセルの電荷蓄積単位にプログラムされ蓄積する電子に対抗するために、使用するプログラミングパルストレインの周期または振幅は上げることができる。プログラミング回路は通常、選択されたワード線に一連のプログラミングパルスを印加する。こうして、コントロールゲートがワード線へ接続された1ページのメモリセルをまとめてプログラムできる。
【0039】
メモリテストシステム
図8〜図10は、本発明の様々な態様を実装できる例示的なメモリテストシステムを示す。
良好なプログラミング性能を達成するには、初期プログラミング電圧VPGM0とステップサイズを適切に選ばなければならない。選択する初期プログラミング電圧VPGM0が低すぎると、目標状態に達するまでのプログラミングパルス数が極端に多くなってしまう。他方、選択するVPGM0が高すぎると、特に多状態メモリの場合はプログラミングの最初のパルスで目標状態を通り越してしまう。パルスからパルスにかけてのステップサイズにも同じことが当てはまる。一般的には、適切な分解能で図3に見られる区切られたあるいは分離された各領域を数ステップで横断できるのが最適なステップサイズである。最適な初期プログラミング電圧VPGM0なら数ステップで目標状態に達する。一般的に、ステップサイズはしきい値ウィンドウ内の区画数に基づき事前に決定できる。最適VPGM0は製造上のばらつきに大きく左右され、従来は工場でテストを行って判断してきた。このプロセスをVPGM0トリミングという。
【0040】
図8は、いくつかのメモリチップで最適初期プログラミング電圧を判定するための典型的なテスト構成を示す。メモリテスタ300は通常、並行テストにあたって多数のメモリチップ100へ接続する。通常は工場からの出荷に先立ち、専用のメモリテスタを用意して、いくつかのメモリチップを並行してテストする。これらのテストの1つとして、最適初期プログラミング電圧を判定する(VPGM0トリミング)。
【0041】
図9は、最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つをテストするメモリテスタの機能ブロックを概略的に示す。基本的に、メモリテスタ300はメモリチップ100に向けて一連のコマンドを発行し、これを受けてメモリチップは様々な初期プログラミング電圧サンプルを使って数々のプログラミング操作を実行する。不揮発性メモリアレイ200にはシステムデータを蓄積する指定エリア(「ROMFUSE」)202がある。メモリテスタはメモリインターフェイス310を通じてオンチップメモリコントローラ210とやり取りする。テスタのプロセッサ302は、ROM308から当初引き出されたRAM304内のテストプログラムを実行する。1組のテスタレジスタ306によりテストプログラムの実行は捗る。テストプログラムは、ユーザインターフェイス312からの入力を通じてユーザによって制御される。テスト結果をもとに、タイプの異なるワード線やページ等の様々なプログラミングバリエーションにとって最適な初期プログラミング電圧VPGM0を判断する。トリム値はROMFUSE202に戻され、蓄積される。通常のメモリ使用では、電源投入時にROMFUSEのデータをコントローラレジスタ350にロードすることで、コントローラ210はメモリ操作中にそれらのデータに速やかにアクセスできる。
【0042】
図10は、好適な実施形態に従い最適初期プログラミング電圧を判定するために図8に示されたメモリチップのいずれか1つとともに作動する代替のメモリテスタの機能ブロックを示す。この実施例ではテスト機能の多くがメモリチップ100そのものに組み込まれている。オンチップメモリコントローラ210’は、埋め込み内蔵セルフテスト(「BIST」)モジュール340と1組のコントローラレジスタ350のための追加の容量とによってさらに強化されている。このため、既述のVPGM トリミング操作を含む種々のテストはオンチップで実行できる。テスト結果をもとに最適初期プログラミング電圧VPGM0をオンチップまたは外部テスタ330により決定できる。決定した値はROMFUSE202に戻され、蓄積される。通常のメモリ使用では、電源投入時にROMFUSEのデータをコントローラレジスタ350にロードすることで、コントローラ210’はメモリ操作中にそれらのデータに速やかにアクセスできる。
【0043】
この強化セルフテスト型オンチップコントローラ210’により、外部の専用テスタはもはや必要ない。並行してテストされる多数のメモリチップの操作にあたっては、パーソナルコンピュータで実装されたシンプルなテスタ310で事足りる。メモリテスタ310はテスタメモリインターフェイス332を通じてオンチップメモリコントローラ210’とやり取りする。テスタはユーザインターフェイス334からオペレータ入力を受け取る。一実施例において、テスタ310はメモリチップ100の各々にセルフテストの実行を指示し、テストの終わりに各メモリチップの状態を報告するだけである。もうひとつの実施例において、テスタ310はテスト結果から統計を収集し、統計計算を行う。
このセルフテスト型オンチップコントローラ210’には、高価な専用テスタを使わずにすむという利点がある。テストを現場で行い、メモリ装置の経年劣化にともないVPGM0値のトリミングをやり直すという可能性も提供される。
【0044】
VPGM トリミング操作
図11Aは、メモリ装置である種のワード線について推定開始プログラミング電圧を得る一般的方式を示すフローチャートである。既に述べたように、このプロセスはプログラミング電圧(「VPGM 」)トリミングと呼ばれることもある。
ステップ400:良好なブロックiを選択する。実施例によっては、時間がかかるVPGM トリミング操作に取りかかる前のブロックに迅速なプログラムテストを行うと好ましい。このステップは実装しだいでオプションである。これを省くには、欠陥ワード線に遭遇した場合にその欠陥ワード線を無視するだけでよい。良好なブロック判定の詳しい説明を図11Bに示す。
ステップ410:サンプリングのため、選択したブロックiで1グループのワード線を選択する。{WL(i,j)ここでj=0、m−1}。一般的に、選択されるワード線のグループとワード線のタイプは類似するプログラミング特性を持つ。
ステップ420:WL(i,j)上のページで、VPGM0(i,j)から始まる階段パルス電圧波形により所定のパルス数以内でページ全体を指定状態までプログラムする初期プログラミング電圧VPGM0(i,j)を判断する。ワード線WL(i,j)を共有する1ページのメモリセルを並行してプログラムする。階段波形はパルスのたびに1ステップずつ増加し、所定のパルス数まで増加する。
ステップ460:十分なサンプルを収集するため、必要に応じステップ400〜420を繰り返して別のブロックを選択する。例えば、プログラミング特性が異なる3タイプのワード線がそれぞれのブロックにある。第1のタイプはブロックの上境界にある最初のワード線2本である。第2のタイプはブロックの下境界にある最後のワード線2本である。第3のタイプはブロックのコア領域にある全ワード線である。3タイプのワード線のそれぞれでサンプルを充実させるには、メモリアレイにまたがって分布する多数のブロックで大きなサンプルを採るのが好ましい。以降のセクションで説明するように、1組のブロックから幾何学的配置が類似するワード線を採ることによってタイプが類似する様々なワード線サンプルを形成することもできる。
ステップ470:ワード線サンプル全体で平均開始プログラミング電圧(「<VPGM0>」)を計算する。それには、各ワード線サンプルのVPGM0の総計を全ワード線サンプルの総計で割る。すなわち、
【0045】
図11Bは、図11Aに見られる良好なブロックを選択する一実施形態をより詳細に示す。良好なブロックとは、ワード線沿いの全メモリセルページをプログラムできるブロックを意味する。以下、図11Aに見られるステップ400をより明確に説明する。
ステップ401:ブロックを消去する。
ステップ402:ブロック内の全ワード線を所定のパルス数で指定状態まで順次プログラムする。
ステップ404:ブロック内のいずれかのワード線がプログラムに失敗した?失敗したワード線がある場合はステップ406へ進み、さもなくばステップ408へ進む。
ステップ406:1つ以上の欠陥ワード線を含むために不良ブロックとみなす。これは特に、NANDチェーンの中の1不良セルによってチェーン全体に動作不良が生じるNANDアーキテクチャのメモリに当てはまる。この不良ブロックはVPGM トリミングから外される。
ステップ408:ブロックは良好。良好なブロックはVPGM トリミングに選ばれる。
ステップ409:ブロックを消去し、その中にあるワード線をプログラムできる状態にする。
【0046】
1つ以上の欠陥ワード線の存在が必ずしもブロック全体の欠陥を意味しない実施例では、不良ブロック探索を行う必要はない。その場合は、既に述べたようにテスト中に遭遇した欠陥ワード線を単に無視すればよい。
【0047】
図12は、ワード線上のページで初期プログラミング電圧を判定するステップの従来の実施例を示すフローチャートである。図11Aのステップ420の従来の実施例では、記憶装置の効率的な使用と便宜を図るためにブロック内のワード線サンプルを個別にテストする。前のワード線のテストが完了した後に次のワード線をテストする。つまり、前のワード線のテストでプログラムに成功した後に(あるいはプログラム不能と判定された後に)、次のワード線でテストを繰り返す。以下、図11Aに見られるステップ420を従来の場合でより明確に説明する。
ステップ422:ブロックiを消去し、その中にあるワード線をプログラムできる状態にする。
ステップ424:まずはj=0に設定してサンプルの最初のワード線を指示する。
ステップ426:インデックス「j」を使ってブロック内のサンプルからワード線WL(i,j)を選択する。
ステップ428:開始プログラミング電圧の初期値を設定する。VPGM0(i,j)=VPGM0_0。
ステップ430:VPGM0(i,j)から所定のパルス数でワード線上のページを指定状態までプログラムする。
ステップ432:ページ/WLはプログラムされた?WL(i,j)が指定状態までプログラムされない場合はステップ440へ進み、さもなくばステップ450へ進む。
ステップ440:VPGM0(i,j)=VPGM0(i,j)+ΔVとなるようにVPGM0(i,j)を増加させる。
ステップ442:ブロックiを消去し、増加VPGM0(i,j)でワード線を再度プログラムできる状態にする。
ステップ450:ページのプログラムに成功した。統計を収集するためにVPGM0(i,j)を保存する。
ステップ452:ブロックiを消去し、次のワード線をプログラムできる状態にする。
ステップ454:サンプル中の最終ワード線に達した?最終ワード線のテストがまだならばステップ456へ進み、さもなくば図10Aのステップ460へ進む。
ステップ456:j=j+1により次のワード線へ進み、ステップ424まで戻って次のワード線をテストする。
【0048】
この従来方式では、消去をはさんだ相継ぐプログラムループをページが繰り返し通過することが分かる。既に述べたように、ワード線の個別テストでは各ワード線につきプログラムループがステップ440とステップ442をめぐるたびにブロック消去が行われるため、ブロックの消去回数が増えてしまう。テストを受ける全てのワード線でこの犠牲を払うことになる。
【0049】
再び図6を参照すると、各ブロックに多数のワード線があるメモリアーキテクチャで1ワード線のセルを何度も消去すれば、同じブロックにある残りのワード線も同じ回数だけ消去される。前に述べたように、このブロックの中にある他のワード線もテストするなら、ブロックを消去する回数は等比級数的に増加する。メモリ装置の寿命の半分ほどを顧客に届く前に使い果たすことになる。
【0050】
消去サイクルを減らすVPGM トリミング
本発明の一態様によると、ブロックの形に構成されたメモリセルアレイを有し、各ブロックが一斉に消去可能なメモリセルにアクセスするためのワード線からなり、各ワード線が一斉にプログラム可能な1ページ以上のメモリセルを含む不揮発性メモリにおいて、ブロック内のワード線に沿って1ページのメモリセルをプログラムするにあたって最適な開始電圧を推定するには、ブロック内の類似するワード線サンプルをテストプログラムして、それぞれのページ/ワード線を指定パターンまでプログラムできる個々の開始電圧から統計平均を求める。それには、開始プログラミング電圧から一連のパルスを印加するプログラムループをサンプルの全ページで実行する。サンプルの各ページがプログラムループを通過した後には、プログラム−ベリファイ済みのページ/ワード線をさらなる処理から除外し、その開始プログラミング電圧を保存する。ブロックを消去し、サンプル中のまだベリファイされたいないワード線を次の増加開始電圧による次のプログラムループで再度プログラムできる状態にする。このサイクルは、サンプル中の全ワード線がプログラム−ベリファイ済みとなるまで続く。個々の開始プログラミング電圧から統計平均を求めることで、そのページにとって最適な開始プログラミング電圧を導き出すことができる。
【0051】
既述した方式でブロック内のワード線サンプルをテストすれば、ブロック消去回数が減るという利点がある。ワード線サンプルは互いに段階的にテストされるため、全てのワード線がそれぞれのプログラムループでプログラムを終えたら、それらを一斉に消去して、次のプログラムループに取りかかることができる。この方式によりブロック消去回数は減り、従来方式に比べて10倍の節約を達成できる。例えば、図11に見られる従来方式ではそれぞれのワード線が個別にテストされ、プログラムループの前にはその都度ブロック消去があって互いに同期しない。1ワード線のプログラムループのたびに行われるブロック消去は、サンプル中のワード線ごとに倍加する。
【0052】
図13は、本発明の好適な実施形態に従いブロック内のワード線サンプルから最適開始プログラミング電圧を推定する作業を概括的に示すフローチャートである。3つの段階からなる作業が図に示されている。第1の段階500ではブロック内のページ/ワード線サンプルをテストし、統計を収集する。ここにはステップ510からステップ550までが含まれる。それぞれのワード線は1物理ページ以上のメモリセルをサポートする。加えて、それぞれのメモリセルページは各メモリセルで蓄積できるビット数に応じて1論理ページ以上のデータを蓄積する。よって、1つのワード線に複数の論理ページが対応する。種々の論理ページをプログラムするにあたってプログラミング特性に著しいばらつきがある限り、各論理ページのプログラミングは同じワード線上で特有のVPGM トリミングになる。テストでは一度に特定のワード線上の特定の論理ページをプログラムする。便宜上、ページをテストするということもあればワード線をテストするということもある。ステップ560を含む第2の段階では、サンプルとなる別のブロックで第1の段階500を繰り返す。復号化回路とプログラミング回路が2つ以上のブロックに対する操作をサポートする場合は、最初の2つの段階を同時に行うことができる。ステップ570からステップ572までを含む第3の段階では統計平均を計算し、テスト対象となるワード線の推定最適開始プログラミング電圧を導き出す。
【0053】
この作業では基本的に、それぞれのワード線に開始電圧を用いてプログラミングステップを適用し、ワード線上のページが所定のプログラムループ目標以内に指定状態までプログラムされるか否かをベリファイしながらサンプル中のワード線を循環する。プログラム−ベリファイ済みとなったページ/ワード線の開始電圧は保存する。プログラム−ベリファイ済みに至らないページ/ワード線の開始電圧は増加させる。この増加情報も、好ましくは蓄積装置に保存する。プログラム−ベリファイ済みに至らないワード線にはサイクルが繰り返されるので、ブロック消去の後には増加開始電圧によるプログラミングステップをもう一度通過させる。このプロセスは、サンプル中の全ワード線が所定のプログラムループ目標以内でプログラム−ベリファイ済みになるまで続く。
ステップ510:ブロックの中で特定のタイプのページを代表するページのサンプルを選択する。
ステップ520:サンプル中の各ページに対応する開始プログラミング電圧に初期値を提供する。
ステップ530:ページサンプルを含むブロックを消去する。
ステップ540:ページサンプルの中で目標パターンまでまだプログラムされていないページのサブセットをそれぞれの開始プログラミング電圧で順次プログラムし、各ページをプログラムした後には、
目標パターンまでプログラムされたか否かをベリファイし、かつ
ページがプログラム−ベリファイ済みに至っていなければ、その開始プログラミング電圧を所定の量で増加させ、プログラム−ベリファイ済みなら、ページのプログラム−ベリファイを可能にする開始プログラミング電圧を導き出すために情報を保存する。
ステップ550:サンプルの全ページがプログラム−ベリファイ済み?ベリファイ済みに至っていないページがある場合はステップ530まで戻り、さもなくばステップ560へ進む。
ステップ560:サンプルに選ばれた別のブロックでステップ500からステップ560までを繰り返す。
ステップ570:保存した情報からサンプルの平均開始プログラミング電圧を計算する。
ステップ572:サンプルの平均開始プログラミング電圧をもとに特定タイプのページの開始プログラミング電圧を導き出す。
【0054】
所定のプログラムループ目標によって最大許容増加数は制限される。この制限は2通りの実施例で2通りの意味を持つ。
一実施形態では、この制限で比較的低い増加上限を設定する。これは特定の開始電圧からページのプログラミングが失敗または不十分とみなされるまでの最大プログラミングパルスまたは増加数を設定する。この数字は、通常のメモリ装置の使用で実際のプログラミング操作中に割り当てられるプログラミングステップ数とほぼ同じ数字に設定する。例えば、ユーザによる通常のプログラミング操作で、ある特定の論理ページのプログラミングは8〜10プログラミングパルス以内で完了しなければならない。こうすることでVPGM トリミングテストは現実のプログラミング状況に近いものになる。一般的に、この制限は5〜15の範囲におよぶ。
【0055】
後ほど詳述するもうひとつの実施形態において、最終電圧によってページがプログラム済みになるまでプログラミング電圧を増やすことができる。この最終電圧をもとに、所定のステップ数までスケールバックすることにより最適開始電圧を推定する。この実施形態では通常のプログラミング状況を模擬するために制限を設定しない。しかし、欠陥ワード線に遭遇する場合の開始プログラミング電圧の増加は無限ではない。欠陥ワード線に遭遇する場合の増加を最大所定値に制限するため、制限は高めの数字(例えば、30〜50)に設定する。開始プログラミング電圧を最大値まで増やした後にページを指定状態までプログラムできない場合はそのワード線を欠陥とみなし、そのVPGM データを統計から除外する。別の実施例では欠陥ワード線を含むブロック全体を除外する。
【0056】
説明した2つの実施形態ではそれぞれ異なる理由からプログラムループに制限を設ける。制限を低く設定する最初の実施形態では、通常のプログラミング操作のようにパルスステップ数のマージンを設けることによって開始電圧からのプログラミングの成功を評価する。制限内で完了するプログラミングは成功とみなす。逆に、プログラミングの不成功は開始電圧の設定が低すぎることを意味する。制限を高い上限に設定する2番目の実施形態は、欠陥ワード線をプログラムできない場合の無限増加を防ぐ。この制限に達した場合、開始電圧が低すぎることを意味するのではなく、単にワード線に欠陥があることを意味する。
【0057】
もうひとつの実施例でも低い制限が企図される。階段波形の最初の数ステップ(例えば、1または2ステップ)以内にプログラムループが完了するなら、これはそのページが非常に速い異例のプログラミング特性を持つことを意味する。したがって、所定の低い制限内でプログラム−ベリファイ済みになるページは異例とみなし、統計を歪めないようにするために平均計算から除外する。
【0058】
図14は、図13に見られる作業の具体的な実施例を示すフローチャートである。
ステップ610:ブロックiの初期値を設定する。
ページベリファイステータス:PageDone(j)=FALSE、全てのj
初期プログラミング電圧:VPGM0(i,j)=VPGM0_0、全てのj
ΔVPGM0数:StepUp#(j)=0、全てのj
ステップ620:ブロックiを消去する。
ステップ630:j=0。
ステップ632:サンプルの中でワード線WL(i,j)を選択する。j=0、m−1。
ステップ640:VPGM0(i,j)から所定のパルス数にかけてワード線上のページを指定状態までプログラムする。
ステップ642:ページはプログラムされた?ページがプログラム−ベリファイ済みに至っていなければステップ650へ進み、さもなくばステップ660へ進む。
ステップ650:ワード線はプログラム−ベリファイ済みに至っていない。したがって、その初期プログラミング電圧をさらなるステップにより増加させる。StepUp#(j)を増加させる。StepUp#(j)=StepUp#(j)+1。
ステップ652:VPGM0(i,j)を増加させる。VPGM0(i,j)=VPGM0(i,j)+StepUp#(j)*ΔV。
ステップ660:ワード線のテストが終了し、ページ処理済みを標示する。PageDone=TRUE。
ステップ662:初期電圧からのステップアップ数として最終プログラミング電圧の情報を蓄積する。StepUp#Global=StepUp#Global+Stepup#(j)。
ステップ670:次のワード線。j=j+1。
ステップ672:サンプル中の最終ワード線に達した?(すなわち、j=m?)WL(i,j)が最後のワード線でなければステップ680へ進み、さもなくばステップ690へ進む。
ステップ680:非処理済みページ。PageDone(j)=TRUE?現在のページがプログラム−ベリファイ済みであることをステータスが伝える場合はこれを無視するかあるいは省き、プロセスはステップ670へ進み、さもなくばプロセスはステップ632まで戻って、プログラム−ベリファイ済みに至っていない次のワード線をテストする。
ステップ690:全てのページ/WLがプログラムされるまで残りの非処理済みWLを再走査する。全てのjでIs_PageDone(j)=TRUE?プログラム−ベリファイ済みに至っていないワード線が1つでもある場合はステップ620まで戻って、増加プログラミング電圧で再度プログラムし、さもなくば全ワード線のプログラミングは終わっているから、プロセスは図12のステップ560へ進む。
【0059】
スケーリングによる開始電圧の推定
本発明のもうひとつの態様によると、ワード線上のページの初期プログラミングテスト運転によって開始プログラミング電圧の初期値を推定する。ワード線上の選択されたページを一連の階段波形電圧パルスで逐次プログラムし、パルス間にベリファイをはさみながらページが指定パターンまでプログラムされたことをベリファイする。ページがプログラム−ベリファイ済みになるときの最終プログラミング電圧を使用し、所定の量までスケールバックすることにより開始プログラミング電圧を推定する。類似するページ/ワード線サンプルを検討することによって平均開始プログラミング電圧を求める。異例の項目によって統計が歪まないようにするため、サンプル中でプログラムできないページ/ワード線は無視してよい。
【0060】
もうひとつの実施形態ではプロセスをさらに洗練させ、第1の行程から推定された開始プログラミング電圧を第2の行程の階段波形の初期値として使用する。こうすれば類似するページのサンプルで平均を求めるときに、代表的なページの開始プログラミング電圧を推定できる。開始プログラミング電圧は、所定の階段波形ステップ数により最終プログラミング電圧を負にオフセットすることによって推定する。所定のステップ数は、好ましくは通常のプログラミング操作でプログラム成功に割り当てるステップ数とほぼ同じにする。
【0061】
このスケーリング方式の利点として、各ページ/ワード線に対するシンプルな1または2行程プログラミングテストで十分にページの開始プログラミング電圧の推定を得ることができる。各ページを個別にテストでき、テスト中に多数の消去操作をともなうことはない。このため、ワード線サンプルの中でブロック消去を管理する必要はない。
【0062】
図15は、メモリセルページの初期プログラミングテストで使用する階段波形を示す。メモリセルページをサポートするワード線にこの階段波形電圧を印加する。漸増プログラミングを実行するため、まずはViの電圧パルスを印加する。その後、電圧は、ページを読み出してページが指定パターンまでプログラムされたか否かをベリファイするのに適したVVERに変わる。プログラムパルスを印加しベリファイするプロセスは、ページがプログラム−ベリファイ済みになるまで続く。この時点でプログラミング電圧はVf=StepUps#*ΔVまで増加している。一実施形態において、この最終電圧を所定のステップ数からバックオフして、前に述べたVPGMトリミングテストの開始プログラミング電圧推定とする、すなわち、VPGM0=Vf−NOFFSET*ΔV、ここでNOFFSETは所定のステップ数である。
【0063】
図16は、図15に見られる階段波形走査を使用し特定のページで開始プログラミング電圧を判定するフローチャートである。
ステップ800:メモリセルページをプログラムするため、所定の初期電圧レベルVp=Viとするプログラミング電圧を用意する。
ステップ802:メモリセルページを消去する。
ステップ810:Vpのパルスをメモリセルページに印加する。
ステップ812:メモリセルページが所定の記憶状態の対応するページになるまでプログラムされたか否かをベリファイする。
ステップ814:ページはプログラム−ベリファイ済み?ページがプログラム−ベリファイ済みでなければステップ820へ進み、さもなくばステップ830へ進む。
ステップ820:プログラミング電圧を所定の量Vp=Vp+DVで増加させる。
【0064】
ステップ830:ページの開始プログラミング電圧を保存する、VPGM0=Vp−NOFFSET*ΔV。好適な実施例では、推定開始プログラミング電圧を第2行程のテスト運転で階段波形の初期値として使用する。このようにして初期値は、第1行程のテスト運転のものに比べて通常のプログラミング操作に近いものになる。
これまでどおり、タイプが類似するワード線のサンプルをテストして、そのタイプの統計的に平均化された開始プログラミング電圧を求める。テスト結果用の記憶装置を抑えるため、好ましくはテスト運転が終わるたびに統計平均を実行する。
【0065】
図17は、ページ/ワード線サンプルの開始プログラミング電圧の多行程判定を示すフローチャートである。
ステップ850:タイプが類似するページのサンプルで第1の行程のテスト運転(例えば、各ページにつきステップ800からステップ830)を実行する。
ステップ860:第1の行程のテスト運転から推定開始プログラミング電圧の第1の統計平均を求める。<VPGM0>1 。
ステップ870:開始プログラミング電圧の初期値として<VPGM0>1 を使用し(すなわち、Vi=<VPGM0>1 )、タイプが類似するページのサンプルで第2の行程のテスト運転(例えば、各ページにつきステップ800からステップ830)を実行する。
ステップ880:第2の行程のテスト運転から推定開始プログラミング電圧の第2の統計平均を求める。<VPGM0>2 。
【0066】
一実施形態において、満足な開始プログラミング電圧推定を得るにあたっては1行程(ステップ850からステップ860)だけで十分である。もうひとつの実施形態において、第2の行程(ステップ870からステップ880)を任意に使用し、第1の行程から得た結果を精緻化する。
【0067】
別の実施例では、図13および図14で説明したVPGMトリミング方式の初期値のための入力として推定開始電圧<VPGM0>1 または<VPGM0>2 を使用する。図13のステップ520と図14のステップ610で説明したテストの開始プログラミング電圧には初期値VPGM0_0が必要である。この値の設定が低すぎると、テストでワード線がプログラム−ベリファイ済みになるまでのステップが増えてしまう。これは非効率的であり、メモリ装置の消去サイクルが多くなる。他方、値の設定が高すぎるとワード線がオーバープログラムされるおそれがある。
【0068】
高速プログラミングページ偏重VPGM トリミング
本発明のもうひとつの態様によると、複数の消去可能なブロックを有し、プログラミング特性が類似する1グループのワード線を各ブロックに有するメモリアレイにおいて、グループの代表的なページの最適開始プログラミング電圧を得る方式は、1セットのブロックにわたってセットの各ブロックで幾何学的に類似する位置にある1つ以上のワード線でサンプルを形成することと、セットの各サンプルからプログラミング電圧の統計推定を得ることと、最適開始プログラミング電圧を導き出すためにセットの中で最小推定を選択することとを含む。高速プログラミングワード線は低速プログラミングワード線に比べて低いプログラミング電圧ですむため、このやり方により最適値はグループの高速プログラミングワード線を重視したものになる。
【0069】
他のセクションで説明したプログラミング電圧トリミング方式では、ページの全てのビットがプログラム−ベリファイ済みか否かを一度に1ページずつ調べる。低速プログラミングビットもプログラム−ベリファイ済みにならなければページ全体がプログラム−ベリファイされたことにはならないから、この場合のテスト結果は低速プログラミングビット寄りのものになる。その結果、開始電圧の推定は高速プログラミングビットにとって過大なものとなり、オーバープログラミングを招くおそれがある。ここで説明するサンプリング・統計計算方式なら、低速プログラミングビットに偏った方式から導き出された最も低い値を開始電圧のセットとして選択できる。
【0070】
幾何学的に類似する位置ということは、物理メモリアレイのレイアウトに何らかの対称性があることを意味する。同じ対称グループに属する構造は非常に類似する特性を持つ。図6を参照すると、例えばWL2からWL13までは消去ブロックのコア領域でまったく同じではなくともある程度は類似するプログラミング特性を持つ1グループのワード線を形成する。例えば、ブロック0からブロック127までを1セットのブロックとする。そのセットの各ブロックで幾何学的に類似する位置からワード線を選択することによってサンプルを形成する。第1のサンプルはブロック0のWL2、ブロック1のWL18、ブロック2のWL34・・・ブロック127のWL1034からなる。第2のサンプルはブロック0のWL3、ブロック1のWL19、ブロック2のWL35・・・ブロック127のWL1035からなる。全部で128サンプルのセットになる。それぞれのサンプルでVPGM トリミング操作を実行すると、128の統計結果(例えば、<VPGM0>)が得られる。この方法では128の<VPGM0>の中で最も小さい<VPGM0>を選ぶ必要がある。
【0071】
図18は、高速プログラミングワード線を重視したVPGM トリム値を得る方式を示すフローチャートである。
ステップ900:消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能ブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含む不揮発性メモリを用意する。
ステップ902:ブロックの中でページを代表する1グループのページを選択する。
ステップ904:1セットのブロックを選択する。
ステップ906:少なくとも各ブロックの幾何学的に類似する位置にあるページを各ブロックから選択することにより、1セットのサンプルを形成する。
ステップ908:セットの各サンプルからプログラミング電圧の統計推定を求める。
【0072】
ステップ910:セットの中で最小統計推定を選択することによってページの開始プログラミング電圧を判定する。少なくとも類似するページを各ブロックから選択することによって個々のサンプルを形成しテストするこの方式には、最低限の記憶装置ですむという利点もある。それぞれのサンプルをテストした後には平均値の形でテスト結果を出し、蓄積する。次のサンプルも同様にテストし、その平均値を蓄積された最初の平均値に比較する。記憶装置にはいずれか低いほうの平均値が残るから、1セットのサンプルを一度に1サンプルずつ処理する過程でただひとつのデータを蓄積するだけでよい。
【0073】
各ブロックからごく一部を選択することによってサンプルを形成するため、欠陥ワード線が大部分を占める不良ブロックにサンプル平均がさほど左右されないという利点もある。
【0074】
ここで参照する特許、特許出願、記事、書籍、仕様書、その他の出版物、文書、事物はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている出版物、文書、または事物のいずれかと本願明細書の本文との間で用語の定義または使用に矛盾や食い違いがある場合には本願明細書における用語の定義または使用が優先するものとする。
【0075】
これまで本発明の様々な態様を特定の実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【特許請求の範囲】
【請求項1】
消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含む不揮発性メモリで、特定のページの開始プログラミング電圧を判定する方法であって、
(a)ブロックの中で特定のページを代表するページのサンプルを選択するステップと、
(b)サンプルの各ページをプログラムするため、関連する初期値と所定のステップ数とにより階段波形を有する関連するプログラミング電圧を提供するステップと、
(c)ページサンプルを含むブロックを消去するステップと、
(d)サンプル中の全ページにつき、関連するプログラミング電圧を関連する初期値と併せて使用してページが目標パターンまでプログラム可能か否かを判定し、プログラム可能ならば、収集統計の一部として関連する初期値を蓄積した後にページをさらなる処理から除外し、さもなくば関連する初期値を所定のステップにより増加させるステップと、
(e)サンプル中の全ページがプログラム可能と判定されるまで、または関連する初期値が所定の最大電圧まで増加されるまで、(c)〜(d)を繰り返すステップと、
(f)ページの開始プログラミング電圧を導き出すため、収集統計からサンプルの平均開始プログラミング電圧を計算するステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
サンプルは、メモリアレイ内の複数のブロックから採ったより大きいサンプルの一部であり、
収集統計は、複数のブロックのプログラム可能なページに関連する蓄積された初期値を含む方法。
【請求項3】
請求項1記載の方法において、
関連する初期値の所定のステップの増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する方法。
【請求項4】
請求項2記載の方法において、
関連する初期値の所定のステップの増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する方法。
【請求項5】
請求項1記載の方法において、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である方法。
【請求項6】
請求項2記載の方法において、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である方法。
【請求項7】
請求項1記載の方法において、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである方法。
【請求項8】
請求項2記載の方法において、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである方法。
【請求項9】
請求項7記載の方法において、
整数ステップ数は、40を上回る方法。
【請求項10】
請求項8記載の方法において、
整数ステップ数は、40を上回る方法。
【請求項11】
請求項1記載の方法において、
前記収集統計の一部として関連する初期値を蓄積することは、ページがプログラム−ベリファイ済みとなるまでに初期値が増加したステップ数を蓄積するステップを含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、サンプルの増加ステップ数の平均と所定の電圧ステップとの積による方法。
【請求項12】
請求項2記載の方法において、
前記収集統計の一部として関連する初期値を蓄積することは、ページがプログラム−ベリファイ済みとなるまでに初期値が増加したステップ数を蓄積するステップを含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、サンプルの増加ステップ数の平均と所定の電圧ステップとの積による方法。
【請求項13】
請求項1記載の方法において、
(g)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(h)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(i)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(j)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(g)〜(j)は(a)〜(f)に先立ち実行される方法。
【請求項14】
請求項2記載の方法において、
(g)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(h)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(i)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(j)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(g)〜(j)は(a)〜(f)に先立ち実行される方法。
【請求項15】
請求項2記載の方法において、
各ブロックの幾何学的に類似する場所に位置するページを各ブロックから選択することにより1セットのサンプルを形成するステップと、
前記セットの各サンプルからプログラミング電圧の統計推定を得るステップと、をさらに含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、セットの中で最小統計推定を選択することによる方法。
【請求項16】
請求項1〜15のいずれか記載の方法において、
個々のメモリセルは、1ビットのデータを各々蓄積する方法。
【請求項17】
請求項1〜15のいずれか記載の方法において、
個々のメモリセルは、2ビット以上のデータを各々蓄積する方法。
【請求項18】
不揮発性メモリであって、
消去可能なブロックの形に構成され、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含むメモリセルアレイと、
ブロックの中で特定のページを代表するページの指定サンプルと、
サンプルの各ページをプログラムするため、関連する初期値と所定のステップ数とにより階段波形を有する関連するプログラミング電圧と、
特定のページの開始プログラミング電圧を判定する内蔵セルフテストモジュールであって、
(a)ページサンプルを含むブロックを消去するステップと、
(b)サンプル中の全ページにつき、関連するプログラミング電圧を関連する初期値と併せて使用してページが目標パターンまでプログラム可能か否かを判定し、プログラム可能ならば、収集統計の一部として関連する初期値を蓄積した後にページをさらなる処理から除外し、さもなくば関連する初期値を所定のステップにより増加させるステップと、
(c)ページサンプルの各々がプログラム−ベリファイ済みとなるまで、または所定の最大電圧まで増加した関連プログラミング電圧によりプログラムされるまで、(a)〜(b)を繰り返すステップと、
(d)サンプルの平均開始プログラミング電圧を計算するため、またサンプルの平均開始プログラミング電圧に基づきページの開始プログラミング電圧を導き出すため、収集統計を提供するステップと、を含むメモリ操作を提供する内蔵セルフテストモジュールと、
を備える不揮発性メモリ。
【請求項19】
請求項18記載の不揮発性メモリにおいて、
関連する初期値の所定のステップ増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する不揮発性メモリ。
【請求項20】
請求項18記載の不揮発性メモリにおいて、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である不揮発性メモリ。
【請求項21】
請求項18記載の不揮発性メモリにおいて、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである不揮発性メモリ。
【請求項22】
請求項21記載の不揮発性メモリにおいて、
整数ステップ数は、40を上回る不揮発性メモリ。
【請求項23】
請求項18記載の不揮発性メモリにおいて、
前記メモリ操作を提供するモジュールは、
(e)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(f)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(g)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(h)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(e)〜(h)は(a)〜(d)に先立ち実行される不揮発性メモリ。
【請求項24】
請求項18記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項25】
請求項19記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項26】
請求項20記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項27】
請求項21記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項28】
請求項22記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項29】
請求項23記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項30】
請求項18記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項31】
請求項19記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項32】
請求項20記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項33】
請求項21記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項34】
請求項22記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項35】
請求項23記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項36】
請求項18〜35のいずれか記載の不揮発性メモリにおいて、
個々のメモリセルは、1ビットのデータを各々蓄積する不揮発性メモリ。
【請求項37】
請求項18〜35のいずれか記載の不揮発性メモリにおいて、
個々のメモリセルは、2ビット以上のデータを各々蓄積する不揮発性メモリ。
【請求項1】
消去可能なブロックの形に構成されたメモリセルアレイを有し、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含む不揮発性メモリで、特定のページの開始プログラミング電圧を判定する方法であって、
(a)ブロックの中で特定のページを代表するページのサンプルを選択するステップと、
(b)サンプルの各ページをプログラムするため、関連する初期値と所定のステップ数とにより階段波形を有する関連するプログラミング電圧を提供するステップと、
(c)ページサンプルを含むブロックを消去するステップと、
(d)サンプル中の全ページにつき、関連するプログラミング電圧を関連する初期値と併せて使用してページが目標パターンまでプログラム可能か否かを判定し、プログラム可能ならば、収集統計の一部として関連する初期値を蓄積した後にページをさらなる処理から除外し、さもなくば関連する初期値を所定のステップにより増加させるステップと、
(e)サンプル中の全ページがプログラム可能と判定されるまで、または関連する初期値が所定の最大電圧まで増加されるまで、(c)〜(d)を繰り返すステップと、
(f)ページの開始プログラミング電圧を導き出すため、収集統計からサンプルの平均開始プログラミング電圧を計算するステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
サンプルは、メモリアレイ内の複数のブロックから採ったより大きいサンプルの一部であり、
収集統計は、複数のブロックのプログラム可能なページに関連する蓄積された初期値を含む方法。
【請求項3】
請求項1記載の方法において、
関連する初期値の所定のステップの増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する方法。
【請求項4】
請求項2記載の方法において、
関連する初期値の所定のステップの増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する方法。
【請求項5】
請求項1記載の方法において、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である方法。
【請求項6】
請求項2記載の方法において、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である方法。
【請求項7】
請求項1記載の方法において、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである方法。
【請求項8】
請求項2記載の方法において、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである方法。
【請求項9】
請求項7記載の方法において、
整数ステップ数は、40を上回る方法。
【請求項10】
請求項8記載の方法において、
整数ステップ数は、40を上回る方法。
【請求項11】
請求項1記載の方法において、
前記収集統計の一部として関連する初期値を蓄積することは、ページがプログラム−ベリファイ済みとなるまでに初期値が増加したステップ数を蓄積するステップを含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、サンプルの増加ステップ数の平均と所定の電圧ステップとの積による方法。
【請求項12】
請求項2記載の方法において、
前記収集統計の一部として関連する初期値を蓄積することは、ページがプログラム−ベリファイ済みとなるまでに初期値が増加したステップ数を蓄積するステップを含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、サンプルの増加ステップ数の平均と所定の電圧ステップとの積による方法。
【請求項13】
請求項1記載の方法において、
(g)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(h)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(i)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(j)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(g)〜(j)は(a)〜(f)に先立ち実行される方法。
【請求項14】
請求項2記載の方法において、
(g)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(h)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(i)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(j)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(g)〜(j)は(a)〜(f)に先立ち実行される方法。
【請求項15】
請求項2記載の方法において、
各ブロックの幾何学的に類似する場所に位置するページを各ブロックから選択することにより1セットのサンプルを形成するステップと、
前記セットの各サンプルからプログラミング電圧の統計推定を得るステップと、をさらに含み、
前記サンプルの平均開始プログラミング電圧を計算するステップは、セットの中で最小統計推定を選択することによる方法。
【請求項16】
請求項1〜15のいずれか記載の方法において、
個々のメモリセルは、1ビットのデータを各々蓄積する方法。
【請求項17】
請求項1〜15のいずれか記載の方法において、
個々のメモリセルは、2ビット以上のデータを各々蓄積する方法。
【請求項18】
不揮発性メモリであって、
消去可能なブロックの形に構成され、一斉に消去可能なメモリセルにアクセスするために1ブロックのワード線を各消去可能なブロックに含み、かつ一斉にプログラム可能な1ページ以上のメモリセルを各ワード線に含むメモリセルアレイと、
ブロックの中で特定のページを代表するページの指定サンプルと、
サンプルの各ページをプログラムするため、関連する初期値と所定のステップ数とにより階段波形を有する関連するプログラミング電圧と、
特定のページの開始プログラミング電圧を判定する内蔵セルフテストモジュールであって、
(a)ページサンプルを含むブロックを消去するステップと、
(b)サンプル中の全ページにつき、関連するプログラミング電圧を関連する初期値と併せて使用してページが目標パターンまでプログラム可能か否かを判定し、プログラム可能ならば、収集統計の一部として関連する初期値を蓄積した後にページをさらなる処理から除外し、さもなくば関連する初期値を所定のステップにより増加させるステップと、
(c)ページサンプルの各々がプログラム−ベリファイ済みとなるまで、または所定の最大電圧まで増加した関連プログラミング電圧によりプログラムされるまで、(a)〜(b)を繰り返すステップと、
(d)サンプルの平均開始プログラミング電圧を計算するため、またサンプルの平均開始プログラミング電圧に基づきページの開始プログラミング電圧を導き出すため、収集統計を提供するステップと、を含むメモリ操作を提供する内蔵セルフテストモジュールと、
を備える不揮発性メモリ。
【請求項19】
請求項18記載の不揮発性メモリにおいて、
関連する初期値の所定のステップ増加は、通常プログラミング操作中にメモリに印加される類似するプログラミング電圧のステップに相応する不揮発性メモリ。
【請求項20】
請求項18記載の不揮発性メモリにおいて、
関連するプログラミング電圧の階段波形の所定のステップ数は、15以下である不揮発性メモリ。
【請求項21】
請求項18記載の不揮発性メモリにおいて、
所定の最大電圧は、初期値に整数ステップ数の階段波形電圧を加えたものである不揮発性メモリ。
【請求項22】
請求項21記載の不揮発性メモリにおいて、
整数ステップ数は、40を上回る不揮発性メモリ。
【請求項23】
請求項18記載の不揮発性メモリにおいて、
前記メモリ操作を提供するモジュールは、
(e)開始電圧を有する階段波形プログラミング電圧によりページに対して初期プログラミングを実行するステップと、
(f)階段波形のステップ間に目標パターンがページにプログラムされたか否かをベリファイするステップと、
(g)ページがプログラム−ベリファイ済みとなるときの階段波形の最終電圧を得るステップと、
(h)最終電圧の線形スケーリングにより関連する開始プログラミング電圧を推定するステップと、をさらに含み、
(e)〜(h)は(a)〜(d)に先立ち実行される不揮発性メモリ。
【請求項24】
請求項18記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項25】
請求項19記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項26】
請求項20記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項27】
請求項21記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項28】
請求項22記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項29】
請求項23記載の不揮発性メモリにおいて、
収集統計は、前記不揮発性メモリと通信する外部テスタによって処理される不揮発性メモリ。
【請求項30】
請求項18記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項31】
請求項19記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項32】
請求項20記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項33】
請求項21記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項34】
請求項22記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項35】
請求項23記載の不揮発性メモリにおいて、
収集統計は、前記内蔵セルフテストモジュールによって処理される不揮発性メモリ。
【請求項36】
請求項18〜35のいずれか記載の不揮発性メモリにおいて、
個々のメモリセルは、1ビットのデータを各々蓄積する不揮発性メモリ。
【請求項37】
請求項18〜35のいずれか記載の不揮発性メモリにおいて、
個々のメモリセルは、2ビット以上のデータを各々蓄積する不揮発性メモリ。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公表番号】特表2010−503945(P2010−503945A)
【公表日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2009−528383(P2009−528383)
【出願日】平成19年8月30日(2007.8.30)
【国際出願番号】PCT/US2007/077295
【国際公開番号】WO2008/033679
【国際公開日】平成20年3月20日(2008.3.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
【公表日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願日】平成19年8月30日(2007.8.30)
【国際出願番号】PCT/US2007/077295
【国際公開番号】WO2008/033679
【国際公開日】平成20年3月20日(2008.3.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
[ Back to top ]