プログラミング中にベリファイするために隣接するワード線をバイアスするための不揮発性メモリおよびその方法
不揮発性メモリのための種々のプログラミング手法が、メモリセルをターゲットしきい値レベルに関してプログラムすることを含む。このプロセスは、初めにターゲットしきい値レベルより所定のオフセットだけ手前の第1のベリファイレベルに関してプログラムすることを含む。後に、プログラミングはターゲットベリファイレベルに関して完了される。第1のベリファイレベルでのベリファイについて、仮想の第1のベリファイレベルが実際上使用され、この場合、ターゲットしきい値レベルは選択されたワード線で使用され、バイアス電圧が隣接する非選択ワード線で使用される。従って、低レベルでのベリファイを避けるために、標準ベリファイレベルを実際にオフセットさせる代わりに1つ以上の隣接ワード線をバイアスすることによって、第1のプログラミングパスまたはプログラミングフェーズにおいてベリファイレベルは好ましくは仮想的にオフセットされる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリのための技術に関する。
【背景技術】
【0002】
半導体メモリは、種々の電子装置用にポピュラーとなっている。例えば、不揮発性半導体メモリは、携帯電話機、デジタルカメラ、個人用携帯情報端末(PDA)、モバイル計算装置、ノンモバイル計算装置およびその他の装置に用いられている。最もポピュラーな不揮発性半導体メモリの中に、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)およびフラッシュメモリがある。
【0003】
EEPROMおよびフラッシュメモリは、両方とも、半導体基板内のチャネル領域の上に位置してチャネル領域から絶縁されているフローティングゲートを利用する。フローティングゲートはソース領域とドレイン領域との間に位置する。コントロールゲートはフローティングゲートの上に設けられ、フローティングゲートから絶縁される。トランジスタのしきい値電圧は、フローティングゲート上に保持されている電荷の量により制御される。すなわち、そのソースおよびドレインの間の導通を許すためにトランジスタがオンに転換される前にコントロールゲートに印加されなければならない電圧の最低量は、フローティングゲート上の電荷のレベルにより制御される。
【0004】
EEPROM、またはNANDフラッシュメモリ装置などのフラッシュメモリ装置をプログラムするときには、通例プログラム電圧がコントロールゲートに印加されると共にビット線が接地される。チャネルからの電子がフローティングゲートに注入される。電子がフローティングゲートに集積されるとき、フローティングゲートは負に充電され、メモリセルのしきい値電圧はメモリセルがプログラム済み状態となるように高められる。プログラミングに関するより多くの情報を、その全体が本願明細書において参照により援用されている「Source Side Self-Boosting Technique For Non-Volatile Memory 」という米国特許第6,859,397号(特許文献1)および「Detecting Over Programmed Memory」という米国特許第6,917,545号(特許文献2)で見出すことができる。
【0005】
いくつかのEEPROMとフラッシュメモリ装置とは2つの範囲の電荷を蓄積するために使用されるフローティングゲートを有し、従って、メモリセルは2つの状態(消去済み状態およびプログラム済み状態)の間でプログラム/消去され得る。このようなフラッシュメモリ装置は、時にはバイナリフラッシュメモリ装置と称される。
【0006】
禁止範囲により分離された複数の識別可能な許容される/妥当なプログラム済みしきい値電圧範囲を識別することにより、多状態フラッシュメモリ装置が実現される。各々の識別可能なしきい値電圧範囲は、記憶装置において符号化されるデータビットのセットのための1つの所定値に対応する。
【0007】
隣接するフローティングゲートに蓄積された電荷に基づく電界の結合のために、フローティングゲートに蓄積された見かけ上の電荷にシフトが発生する可能性がある。このフローティングゲート間結合現象は、その全体が本願明細書において参照により援用されている米国特許第5,867,429号(特許文献3)に記載されている。ターゲットのフローティングゲートに隣接するフローティングゲートの一例は、同じワード線に接続されかつ隣接するビット線に接続されているフローティングゲートを含む。
【0008】
多状態装置では、許容されるしきい値電圧範囲と禁止範囲とはバイナリ装置の場合より狭いので、フローティングゲート間結合の効果は多状態装置に関しては大きな関心事である。従って、フローティングゲート間結合は、メモリセルが許容されるしきい値電圧範囲から禁止範囲へ移されるという結果をもたらす可能性がある。
【0009】
フローティングゲート間結合は、別々のときにプログラムされた隣接するメモリセルのセット間で生じ得る。例えば、第1のメモリセルは、一セットのデータに対応するレベルの電荷をそのフローティングゲートに加えるためにプログラムされる。その後、第2のセットのデータに対応するレベルの電荷をそのフローティングゲートに加えるために1つ以上の隣接するメモリセルがプログラムされる。その隣接するメモリセルのうちの1つ以上がプログラムされた後、第1のメモリセルから読み出される電荷レベルは、隣接するメモリセル上の電荷が第1のメモリセルに結合されるという効果のために、プログラムされたものとは異なるように見える。隣接するメモリセルからの結合は、読み出される見かけ上の電荷レベルを、格納されているデータの誤読につながるのに充分な量だけシフトさせる可能性がある。
【0010】
フローティングゲート間結合は、同時にプログラムされた隣接するメモリセルのセット間でも発生し得る。例えば、2つの隣接する多状態メモリセルは、第1のメモリセルが低いほうのしきい値電圧に対応する状態にプログラムされ、第2のメモリセルが高いほうのしきい値電圧に対応する状態にプログラムされるように、異なるターゲットレベルにプログラムされ得る。低いほうのしきい値電圧に対応する状態にプログラムされるメモリセルは、第2のメモリセルが高いほうのしきい値電圧に対応する状態に達する前に、その状態に達してさらなるプログラミングから締め出されそうである。第2のメモリセルは、高いほうのしきい値電圧に対応する状態に達した後、第1のメモリセルと結合して、プログラムされたのよりも高い見かけ上のしきい値電圧を第1のメモリセルに持たせ得る。
【0011】
メモリセルのサイズが小さくなるに連れて、短チャネル効果と、より大きな酸化物厚/結合比変動と、より大きなチャネルのドーパント変動に起因してしきい値電圧の自然なプログラミング分布および消去分布は大きくなり、そのため隣接する状態間の利用可能な間隔が小さくなると思われる。この効果は、2状態だけを使用するメモリ(バイナリメモリ)より多状態メモリについて遥かに重要である。さらに、ワード線間の間隔の減少とビット線間の間隔の減少も、隣接するフローティングゲート間の結合を大きくする。
従って、隣接するフローティングゲート間の結合の効果を減少させる必要がある。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国特許第6,859,397号
【特許文献2】米国特許第6,917,545号
【特許文献3】米国特許第5,867,429号
【特許文献4】米国特許第5,570,315号
【特許文献5】米国特許第5,774,397号
【特許文献6】米国特許第6,046,935号
【特許文献7】米国特許第5,386,422号
【特許文献8】米国特許第6,456,528号
【特許文献9】米国特許出願公開第2003/0002348号
【特許文献10】米国特許出願第11/026,536号
【特許文献11】米国特許出願公開第2004/0057287号
【特許文献12】米国特許出願公開第2004/0109357号
【特許文献13】米国特許出願第11/015,199号
【特許文献14】米国特許出願第11/099,133号
【特許文献15】米国特許出願第11/321,953号
【特許文献16】米国特許第6,222,762号
【特許文献17】米国特許出願公開第2004/0255090号
【特許文献18】米国特許出願第11/013,125号
【特許文献19】米国特許出願第11/099,049号
【特許文献20】米国特許第6,888,758号
【特許文献21】米国特許第7,196,928号
【特許文献22】米国特許出願公開第2006/0221714号
【特許文献23】米国特許出願第11/377,972号
【特許文献24】米国特許第6,781,877号
【非特許文献】
【0013】
【非特許文献1】Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95
【非特許文献2】Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501
【非特許文献3】William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」,IEEE Press(1998年)のセクション1.2
【非特許文献4】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
【発明の概要】
【0014】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動(ユーピン効果)は、所与のターゲット状態へのセルのプログラミング中に、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷に関わらずセルから正しいターゲット状態が読み出されるようにベリファイレベルを適宜調整することによって、補償される。
【0015】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを伴うマルチパスプログラミング
本発明の他の1つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも2パスで実行される。第1のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第2のパスは、標準ベリファイレベルを用いてプログラミングを完了させる。第1のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに1つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【0016】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大/精密プログラミング
本発明の他の1つの態様によれば、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルのために、始めにより粗大ではあるが高速なプログラミングステップを用い、その後により精密なステップを用いることを含むプログラミング操作において、各粗大ステップの間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接するワード線に印加される所定のバイアス電圧とを用いて仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【0017】
マルチパスプログラミングまたはマルチフェーズプログラミングは、両方とも、ユーピン効果を減少させるのに役立つ。それらは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを含まないために簡単に実行できるので有利である。
【図面の簡単な説明】
【0018】
【図1】NANDストリングの平面図である。
【図2】NANDストリングの等価回路図である。
【図3】NANDストリングの横断面図である。
【図4】NANDフラッシュメモリセルのアレイの一部分のブロック図である。
【図5】不揮発性メモリシステムのブロック図である。
【図6】不揮発性メモリシステムのブロック図である。
【図7】メモリアレイのブロック図である。
【図8】センスブロックの一実施形態を描いたブロック図である。
【図9】センスモジュールの一実施形態の略図である。
【図10】センスモジュールの一実施形態のためのタイミング図である。
【図11】不揮発性メモリをプログラムするためのプロセスの一実施形態を記述したフローチャートである。
【図12】不揮発性メモリセルのコントロールゲートに印加される波形の例である。
【図13】しきい値電圧分布のセットの例を描いた図である。
【図14】しきい値電圧分布のセットの例を描いた図である。
【図15】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図16】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図17】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したフローチャートである。
【図18】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したタイミング図である。
【図19】読み出しプロセスの一実施形態を記述したフローチャートである。
【図20】プログラム済み状態についてのしきい値電圧の分布を描いた図である。
【図21】プログラミングのプロセスの一実施形態を記述したグラフである。
【図22】プログラミングのプロセスの一実施形態を記述したグラフである。
【図23】プログラミングのプロセスの一実施形態を記述したフローチャートである。
【図24】ベリファイするためのプロセスの一実施形態を記述したフローチャートである。
【図25】データを読み出すためのプロセスの一実施形態を記述したフローチャートである。
【図26】データを読み出すための一実施形態を記述したタイミング図である。
【図27】メモリシステムを設定し使用するプロセスの一実施形態を記述したフローチャートである。
【図28】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図29】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図30】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図31】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図32】データ依存ベリファイレベルを用いるプログラミング中にユーピン効果を補償する方法を示す流れ図である。
【図33】本発明を図で示すのに適するメモリアレイの一部分を示す。
【図34】隣接する電荷に起因する摂動を補償するためにプログラミング中にWLn上のベリファイレベルを調整することを示す。
【図35】ワンパスのデータ依存ベリファイレベルが現在のワード線だけに印加される図32に示されているベリファイするステップの一実施形態を示す流れ図である。
【図36A】4つの別個のクラスタをなして1つのしきい値ウィンドウ内に分散した4つのメモリ状態をサポートするメモリセルの代表的な集団の例を示す。
【図36B】高くプログラムされた隣接セルの、現在感知されているセルのプログラム済みしきい値レベルに対する影響を示す。
【図37A】感知されている現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。
【図37B】ユーピン効果を軽減するための、マルチパスプログラミングの第1のパスについてのベリファイレベルのシフトを示す。
【図38】好ましい実施形態に従う、ベリファイ中のワード線上の標準のベリファイレベルと、その標準のベリファイレベルに仮想オフセットをもたらすための隣接ワード線のバイアスとの組み合わせを示す。
【図39】ワンパスデータ依存ベリファイレベルが現在のワード線と隣接ワード線との両方に印加される、図32に示されているベリファイステップの他の1つの好ましい実施形態を示す流れ図である。
【図40】2ビットのメモリセルを持っていて、そのページが隣接ワード線上のメモリセル間のユーピン効果を最小にするのに最適なシーケンスでプログラムされるメモリの例を示す。
【図41】図5に示されている記憶装置と通信するホストを示す。
【図42】次のワード線のためのデータのページを得るための他の1つの手法を示す。
【図43】消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果による影響をどのように受け得るかを示す。
【図44】全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。
【図45】1つの好ましい実施形態に従う、両側訂正を行うための隣接ワード線のバイアスを示す。
【図46】所定のしきい値レベルに関してしきい値レベルの明確な分布を有するメモリセルのグループを作ることの流れ図である。
【図47】本発明の1つの一般的な態様に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
【図48】本発明の1つの好ましい実施形態に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによりユーピン効果を減少させることの流れ図である。
【図49】この好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイの間に標準ベリファイレベルに対して仮想オフセットをもたらすための、ベリファイされる選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。
【図50】粗大または精密プログラミングフェーズにおけるメモリセルのためのビット線電圧を示す。
【図51】本発明の1つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大/精密プログラミングを示す流れ図である。
【発明を実施するための形態】
【0019】
本発明を実施するのに適するメモリシステムの一例はNANDフラッシュメモリ構造を使用し、それは、2つの選択ゲート間に複数のトランジスタを直列に配置することを含む。それらの直列のトランジスタと選択ゲートとはNANDストリングと称される。図1は、1つのNANDストリングを示す平面図である。図2は、その等価回路である。図1および2に描かれているNANDストリングは第1の選択ゲート120と第2の選択ゲート122との間に挟まれた直列の4つのトランジスタ100,102,104および106を含む。選択ゲート120は、ビット線126へのNANDストリング接続をゲーティングする。選択ゲート122は、ソース線128へのNANDストリング接続をゲーティングする。選択ゲート120は、コントロールゲート120CGに適切な電圧を印加することにより制御される。選択ゲート122は、コントロールゲート122CGに適切な電圧を印加することにより制御される。トランジスタ100,102,104および106の各々はコントロールゲートおよびフローティングゲートを有する。トランジスタ100はコントロールゲート100CGおよびフローティングゲート100FGを有する。トランジスタ102はコントロールゲート102CGおよびフローティングゲート102FGを含む。トランジスタ104はコントロールゲート104CGおよびフローティングゲート104FGを含む。トランジスタ106はコントロールゲート106CGおよびフローティングゲート106FGを含む。コントロールゲート100CGはワード線WL3に接続され(あるいはワード線WL3であり)、コントロールゲート102CGはワード線WL2に接続され、コントロールゲート104CGはワード線WL1に接続され、コントロールゲート106CGはワード線WL0に接続されている。一実施形態では、トランジスタ100,102,104および106はそれぞれメモリセルである。他の実施形態では、メモリセルは複数のトランジスタを含むか、あるいは図1および2に描かれているものとは異なり得る。選択ゲート120は選択線SGDに接続されている。選択ゲート122は選択線SGSに接続されている。
【0020】
図3は、前述したNANDストリングの横断面図を提供する。図3に描かれているように、NANDストリングのトランジスタはpウェル領域140に形成される。各トランジスタは、コントロールゲート(100CG,102CG,104CGおよび106CG)とフローティングゲート(100FG,102FG,104FGおよび106FG)とから成る積層されたゲート構造を含む。コントロールゲートとフローティングゲートとは、通例、ポリシリコン層を堆積させることにより形成される。フローティングゲートは、酸化物または他の誘電体膜の上のpウェルの表面上に形成される。コントロールゲートはフローティングゲートの上に形成され、ポリシリコン間誘電体層がコントロールゲートとフローティングゲートとを分離する。メモリセル(100,102,104および106)のコントロールゲートはワード線を形成する。N+ドーピングされた拡散領域130,132,134,136および138は隣接するセル間で共有され、それらを通してセルが互いに直列に接続されてNANDストリングを形成する。これらのN+ドーピングされた領域は、セルの各々のソースおよびドレインを形成する。例えば、N+ドーピングされた領域130はトランジスタ122のドレインおよびトランジスタ106のためのソースとして働き、N+ドーピングされた領域132はトランジスタ106のためのドレインおよびトランジスタ104のためのソースとして働き、N+ドーピングされた領域134はトランジスタ104のためのドレインおよびトランジスタ102のためのソースとして働き、N+ドーピングされた領域136はトランジスタ102のためのドレインおよびトランジスタ100のためのソースとして働き、N+ドーピングされた領域138はトランジスタ100のためのドレインおよびトランジスタ120のためのソースとして働く。N+ドーピングされた領域126はNANDストリングのためのビット線に接続し、N+ドーピングされた領域128は複数のNANDストリングのための共通ソース線に接続する。
【0021】
図1〜3はNANDストリング内に4つのメモリセルを示しているけれども、4つのトランジスタの使用は単に一例として提供されているに過ぎないことに留意するべきである。本願明細書に記載されている技術と共に使用されるNANDストリングは、4個未満のメモリセルまたは5個以上のメモリセルを持つことができる。例えば、いくつかのNANDストリングは8個のメモリセル、16個のメモリセル、32個のメモリセル、64個のメモリセルなどを含み得る。本願明細書の議論はNANDストリング中のどんな特定の数のメモリセルにも限定されない。
【0022】
各メモリセルは、データをアナログ形またはデジタル形で記憶することができる。1ビットのデジタルデータを記憶するとき、メモリセルの可能なしきい値電圧の範囲は2つの範囲に分割され、それらに論理データ「1」および「0」が割当てられる。NAND形フラッシュメモリの一例では、電圧しきい値はメモリセルが消去された後は負であり、論理「1」として定義される。しきい値電圧はプログラム操作後は正であり、論理「0」として定義される。しきい値電圧が負であって、0ボルトをコントロールゲートに印加することによって読み出しが試みられたとき、メモリセルはオンに転換して、論理1が記憶されていることを示す。しきい値電圧が正であって、コントロールゲートに0ボルトを印加することによって読み出し操作が試みられたとき、メモリセルはオンに転換しなくて、そのことは論理ゼロが記憶されていることを示す。1ビットのデジタルデータを記憶するメモリセルはバイナリメモリセルと称される。
【0023】
メモリセルは、複数ビットのデジタルデータを記憶することもできる。そのようなメモリセルは多状態メモリセルと称される。多状態メモリセルのためのしきい値電圧ウィンドウは、その状態の数に分割される。例えば、4つの状態が用いられるならば、データ値「11」、「10」、「01」、および「00」に割当てられた4つのしきい値電圧範囲があり得る。NAND形メモリの一例では、消去操作後のしきい値電圧は負であって「11」として定義される。正のしきい値電圧は「10」、「01」、および「00」の状態のために使用される。
【0024】
NAND形フラッシュメモリおよびその動作の適切な例は、その全体が本願明細書において参照により援用されている、米国特許第5,570,315号(特許文献4)、米国特許第5,774,397号(特許文献5)、米国特許第6,046,935号(特許文献6)、米国特許第5,386,422号(特許文献7)、米国特許第6,456,528号(特許文献8)、および米国特許出願第09/893,277号(米国特許出願公開第2003/0002348号)(特許文献9)に提供されている。NANDフラッシュメモリのほかに、他のタイプの不揮発性メモリも本発明と共に使用され得る。
【0025】
フラッシュEEPROMシステムにおいて有益な他の1つのタイプのメモリセルは、電荷を不揮発性に蓄積するために伝導性フローティングゲートの代わりに非伝導性の誘電体材料を利用する。そのようなセルは、Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95 (非特許文献1)に記載されている。酸化ケイ素、窒化ケイ素および酸化ケイ素(「ONO」)から形成される3層誘電体が伝導性コントロールゲートとメモリセルのチャネルの上の半電導性基板の表面との間に挟まれている。セルは、電子をセルのチャネルから窒化物に注入することによりプログラムされ、ここでそれらは限られた領域に捕獲され蓄積される。この蓄積された電荷は、その後、セルのチャネルの一部分のしきい値電圧を検出可能な仕方で変化させる。セルは、ホットホールを窒化物に注入することにより消去される。Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501 (非特許文献2)も参照されたい。ここで、ドーピングされたポリシリコンゲートが別の選択トランジスタを形成するためにメモリセルチャネルの一部分の上に広がる分割ゲート構成の類似セルが記述されている。前述した2つの論文は、その全体が本願明細書において参照により援用されている。本願明細書において参照により援用されている、William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」,IEEE Press(1998年)のセクション1.2(非特許文献3)において言及されているプログラミング技術は、そのセクションにおいて、誘電体電荷トラッピング装置に応用可能であるとも記述されている。この段落に記述されているメモリセルは本発明と一緒にも使用され得る。従って、本願明細書に記載されている技術は、異なるメモリセルの誘電体領域の間の結合にも適用される。
【0026】
各セルに2ビットを記憶させることへの他の1つのアプローチが、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献4)に記載されている。ONO誘電体層がソース拡散とドレイン拡散との間のチャネルを横断して広がる。1つのデータビットのための電荷はドレインに隣接して誘電体層内に局在させられ、他方のデータビットのための電荷はソースに隣接して誘電体層内に局在させられる。多状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことにより得られる。この段落に記載されているメモリセルは本発明と一緒にも使用され得る。
【0027】
図4は、図1〜3に示されているもののようなNANDセルのアレイの例を示す。各列に沿って、ビット線206がNANDストリング150のためのドレイン選択ゲートのドレイン端子126に結合されている。NANDストリングの各行に沿って、ソース線204は、NANDストリングのソース選択ゲートの全てのソース端子128を接続することができる。メモリシステムの一部としてのNANDアーキテクチャアレイとその動作との例が、米国特許第5,570,315号(特許文献4)、第5,774,397号(特許文献5)、および第6,046,935号(特許文献6)に見出される。
【0028】
メモリセルのアレイはメモリセルの多数のブロックに分割される。フラッシュEEPROMシステムで普通であるように、ブロックは消去の単位である。すなわち、各ブロックは、一緒に消去される最少数のメモリセルを含む。各ブロックは、通例、数個のページに分割される。ページは、プログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは、基本プログラミング操作として一度に書き込まれる最少数のセルを含み得る。データの1つ以上のページが、通例、メモリセルの1つの行に格納される。1ページは、1つ以上のセクタを記憶することができる。セクタは、ユーザデータとオーバーヘッドデータとを含む。オーバーヘッドデータは、通例、セクタのユーザデータから計算された誤り訂正符号(ECC)を含む。コントローラ(後で記載される)の一部分は、データがアレイにプログラムされるときにECCを計算し、アレイからデータが読み出されるときにそれをチェックする。あるいは、ECCおよび/または他のオーバーヘッドデータは、それらが関係するユーザデータとは異なるページに、あるいは異なるブロックにすら、格納される。ユーザデータの1つのセクタは、通例、磁気ディスクドライブにおける1セクタのサイズに対応する512バイトである。オーバーヘッドデータは、通例、付加的な16〜20バイトである。多数のページ、例えばおよそ8ページから32,64,128またはそれ以上のページが1つのブロックを形成する。
【0029】
図5は、本発明の一実施形態に従って、1ページのメモリセルを並行して読み出し、またプログラムするための読み出し/書き込み回路を有する記憶装置296を示す。記憶装置296は1つ以上のメモリダイ298を含み得る。メモリダイ298は、メモリセルの2次元アレイ300、制御回路310、および読み出し/書き込み回路365を含む。いくつかの実施形態では、メモリセルのアレイは3次元的であり得る。メモリセルは、ビット線、ワード線、ソース線、およびメモリアレイを制御するために使用される他の線などの種々の制御線により制御されアクセスされる。例えば、メモリアレイ300は、行デコーダ330を介してワード線により、また列デコーダ360を介してビット線により、アドレス指定可能である。読み出し/書き込み回路365は、複数のセンスブロック400を含み、1ページのメモリセルが並行して読み出されまたはプログラムされることを可能にする。通例、コントローラ350が、1つ以上のメモリダイ298と同じ記憶装置296(例えば、取り外し可能な記憶装置カード)に含まれる。線320を介してホストとコントローラ350との間で、また線318を介してコントローラと1つ以上のメモリダイ298との間で、コマンドおよびデータが転送される。
【0030】
制御回路310は、メモリアレイ300に対してメモリ操作を実行するために読み出し/書き込み回路365と協力する。制御回路310は、状態マシン312、オンチップのアドレスデコーダ314および電力制御モジュール316を含む。状態マシン312は、メモリ操作のチップレベル制御を提供する。オンチップのアドレスデコーダ314は、ホストまたはメモリコントローラにより使用されるものと、デコーダ330および360により使用されるハードウェアアドレスとの間のアドレスインターフェイスを提供する。電力制御モジュール316は、メモリ操作中にワード線およびビット線に供給される電力および電圧を制御する。
【0031】
いくつかの実施例では、図5のコンポーネントのうちのいくつかは合併され得る。種々の設計において、図5の、メモリセルアレイ300以外のコンポーネントのうちの1つ以上は(単独であるいは組み合わされて)、1つの管理回路と見なされ得る。例えば、管理回路は、制御回路310、状態マシン312、デコーダ314/360、電力制御316、センスブロック400、読み出し/書き込み回路365、コントローラ350などのうちの任意の1つ、またはこれらの1つの組み合わせを含み得る。
【0032】
図6は、図5に示されている記憶装置296の他の構成を示す。各側におけるアクセス線および回路の密度が半分に減るように、種々の周辺回路によるメモリアレイ300へのアクセスはアレイの両側で対称的に実行される。従って、行デコーダは行デコーダ330Aおよび330Bに分割され、列デコーダは列デコーダ360Aおよび360Bに分割されている。同様に、読み出し/書き込み回路は、下からビット線に接続する読み出し/書き込み回路365Aおよびアレイ300の上からビット線に接続する読み出し/書き込み回路365Bに分割されている。このようにして、読み出し/書き込みモジュールの密度は本質的に二分の一減らされている。図6の装置は、図5の装置について前に記載されたように、コントローラも含むことができる。
【0033】
図7と関連して、メモリセルアレイ300の代表的な構造が記載される。一例として、1,024ブロックに分割されたNANDフラッシュEEPROMが記載される。各ブロックに格納されたデータは同時に消去され得る。一実施形態では、ブロックは、同時に消去されるメモリセルの最小単位である。各ブロックに、この例では、ビット線BL0,BL1・・・BL8511に対応する8,512の列がある。一実施形態では、読み出し操作およびプログラミング操作中に1ブロックの全ビット線が同時に選択され得る。1つの共通のワード線に沿い、いずれかのビット線に接続されているメモリセルは同時にプログラムされ得る。
【0034】
他の1つの実施形態では、ビット線は偶数ビット線および奇数ビット線に分けられる。奇数/偶数ビット線アーキテクチャでは、1つの共通ワード線に沿い奇数ビット線に接続されているメモリセルは1つの時点でプログラムされ、1つの共通ワード線に沿い偶数ビット線に接続されているメモリセルは他の1つの時点でプログラムされる。
【0035】
図7は、直列に接続されてNANDストリングを形成する4つのメモリセルを示している。4つのセルが各NANDストリングに含まれるように示されているけれども、4つより多いあるいは少ない数が使用され得る(例えば、16,32,または他の数)。NANDストリングの一端子は(選択ゲートドレイン線SGDに接続されている)ドレイン選択ゲートを介して対応するビット線に接続され、他の1つの端子は(選択ゲートソース線SGSに接続されている)ソース選択ゲートを介してcソースに接続されている。
【0036】
図8は、センスモジュール380と称されるコア部分と、共通部分390とに分割された1つの特定のセンスブロック400のブロック図である。一実施形態では、各ビット線のための別々のセンスモジュール380と、複数のセンスモジュール380のセットのための1つの共通部分390とがある。一例では、センスブロックは1つの共通部分390と8つのセンスモジュール380とを含む。1グループ内のセンスモジュールの各々は、データバス372を介して、関連する共通部分と通信する。さらなる詳細については、その全体が本願明細書において参照により援用されている2004年12月29日に出願された「Non-Volatile Memory & Method With Shared Processing For An Aggregate Of Sense Amplifiers」という米国特許出願第11/026,536号(特許文献10)を参照されたい。
【0037】
センスモジュール380は、接続されているビット線の伝導電流が所定のしきい値レベルより高いか低いかを判定するセンス回路370を含む。センスモジュール380は、接続されているビット線の電圧状態をセットするために使用されるビット線ラッチ382も含む。例えば、ビット線ラッチ382にラッチされた1つの所定の状態は、接続されているビット線がプログラム禁止を示す状態(例えば、Vdd)に引かれるという結果をもたらす。
【0038】
共通部分390は、プロセッサ392と、データラッチのセット394と、データラッチのセット394およびデータバス320の間に結合されたI/Oインターフェイス396とを含む。プロセッサ392は計算を行う。例えば、その機能の1つは、感知されたメモリセルに格納されているデータを判定して、その判定されたデータをデータラッチのセットに格納することである。データラッチのセット394は、読み出し操作中にプロセッサ392により判定されたデータビットを記憶するために使用される。それは、プログラミング操作中にデータバス320からインポートされたデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリにプログラムされるべく意図された書き込みデータを表す。I/Oインターフェイス396は、データラッチ394とデータバス320との間のインターフェイスを提供する。
【0039】
読み出しまたは感知の間、システムの動作は、アドレス指定されたセルへのいろいろなコントロールゲート電圧の供給を制御する状態マシン312の制御下にある。それが、メモリによりサポートされる種々のメモリ状態に対応する種々の所定のコントロールゲート電圧を通って進むとき、センスモジュール380はそれらの電圧のうちの1つでトリップすることができて、1つの出力がセンスモジュール380からバス372を介してプロセッサ392に提供される。その時点で、プロセッサ392は、センスモジュールの(1つまたは複数の)トリップ事象と、入力線393を介しての状態マシンからの印加されたコントロールゲート電圧に関する情報とを考慮することにより、結果としての状態を判定する。それは、その後、メモリ状態のためのバイナリエンコーディングを計算し、結果としてのデータビットをデータラッチ394に格納する。コア部分の他の実施形態では、ビット線ラッチ382は、センスモジュール380の出力をラッチするためのラッチとしての役割と、また前述したビット線ラッチとしての役割との両方のために役立つ。
【0040】
いくつかの実施例は複数のプロセッサ392を含むであろうと予想される。一実施形態では、各プロセッサ392は、その各出力が共にワイヤードOR接続されるように、1つの出力線(図9には描かれていない)を含む。いくつかの実施形態では、出力線は、ワイヤードOR線に接続される前に、反転される。ワイヤードORを受け取る状態マシンは、プログラムされる全てのビットが所望のレベルに達した時を判定することができるので、この構成は、プログラム−ベリファイプロセス中にプログラミングプロセスが完了した時を速やかに判定することを可能にする。例えば、各ビットがその所望のレベルに達したとき、そのビットについて論理ゼロがワイヤードOR線に送られる(あるいはデータ1が反転される)。全てのビットがデータ0(あるいは反転されたデータ1)を出力すると、状態マシンはプログラミングプロセスを終わらせるべきことを知る。各プロセッサは8個のセンスモジュールと通信するので、状態マシンがワイヤードOR線を8回読み出す必要があるか、あるいは、状態マシンがワイヤードOR線を1回読み出すだけでよいように関連するビット線の結果を累算するための論理がプロセッサ392に付加される。同様に、論理レベルを正しく選択することにより、包括的状態マシンは、第1のビットがその状態を変化させた時を検出してアルゴリズムを適宜変化させることができる。
【0041】
プログラムまたはベリファイの間、プログラムされるべきデータは、データバス320からデータラッチのセット394に格納されている。状態マシンの制御下のプログラム操作は、アドレス指定されたメモリセルのコントロールゲートに印加される1系列のプログラミング電圧パルスを含む。メモリセルが所望の状態にプログラムされたかどうか判定するために、各プログラミングパルス後にベリファイ操作が続く。プロセッサ392は、所望のメモリ状態に関連してベリファイされたメモリ状態を監視する。それら2つが一致するとき、プロセッサ222は、ビット線がプログラム禁止を示す状態に引かれるようにビット線ラッチ214をセットする。これは、ビット線に結合されているセルが、たとえそのコントロールゲートにプログラミングパルスが現れても、それ以上プログラムされることを妨げる。他の実施形態では、プロセッサは最初にビット線ラッチ382にロードし、センス回路はそれをベリファイプロセス中に禁止値にセットする。
【0042】
データラッチスタック394は、センスモジュールに対応するデータラッチのスタックを包含する。一実施形態では、センスモジュール380あたりに3つのデータラッチがある。いくつかの実施例(しかし、必要とはされない)では、データラッチは、その中に格納されている並列データがデータバス320のための直列データに、またその逆に、変換されるように、シフトレジスタとして実現される。好ましい実施形態では、m個のメモリセルの読み出し/書き込みブロックに対応する全てのデータラッチは、1ブロックのデータがシリアル転送によって入力または出力され得るように、互いにリンクされて1つのブロックシフトレジスタを形成する。特に、r個の読み出し/書き込みモジュールのバンクは、そのデータラッチのセットの各々がデータを、あたかもそれらが読み出し/書き込みブロック全体のための1つのシフトレジスタの一部であるかのように、データバスの中にまたはデータバスの中からシーケンシャルにシフトさせるように、適応させられる。
【0043】
不揮発性記憶装置の種々の実施形態の構造および/または動作に関する付加的な情報は、すべてその全体が本願明細書において参照により援用されている、(1)2004年3月25日に公開された「Non-Volatile Memory And Method With Reduced Source Line Bias Errors 」という米国特許出願公開第2004/0057287号(特許文献11)、(2)2004年6月10日に公開された「Non-Volatile Memory And Method With Improved Sensing」という米国特許出願公開第2004/0109357号(特許文献12)、(3)2004年12月16日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第11/015,199号(特許文献13)、(4)2005年4月5日にJian Chen により出願された「Compensating For Coupling During Read Operations Of Non-Volatile Memory」という米国特許出願第11/099,133号(特許文献14)、および(5)2005年12月28日にSiu Lung Chan およびRaul-Adrian Cerneaにより出願された「Reference Sense Amplifier For Non-Volatile Memory 」という米国特許出願第11/321,953号(特許文献15)に見出され得る。
【0044】
図9は、センスモジュール380の一例を示すが、他の実施例も使用され得る。センスモジュール380は、ビット線絶縁トランジスタ512、ビット線プルダウン回路(トランジスタ522および550)、ビット線電圧クランプトランジスタ612、読み出しバス転送ゲート530、センスアンプ600およびビット線ラッチ382を含む。ビット線絶縁トランジスタ512の一方の側は、ビット線BLおよびコンデンサ510に接続されている。ビット線絶縁トランジスタ512の他方の側は、ビット線電圧クランプトランジスタ612およびビット線プルダウントランジスタ522に接続されている。ビット線絶縁トランジスタ512のゲートは、BLSと称される信号を受信する。ビット線電圧クランプトランジスタ512のゲートは、BLCと称される信号を受信する。ビット線電圧クランプトランジスタ512は、ノードSEN2において読み出しバス転送ゲート530に接続されている。読み出しバス転送ゲート530は、読み出しバス532に接続されている。ビット線電圧クランプトランジスタ512は、ノードSEN2においてセンスアンプ600に接続する。図9の実施形態では、センスアンプ600はトランジスタ613,634,641,642,643,654,654および658,並びにコンデンサCsaを含む。ビット線ラッチ382はトランジスタ661,662,663,664,666および668を含む。
【0045】
一般的に、1つのワード線に沿うメモリセルは並行して操作される。従って、一致する数のセンスモジュールが並行して動作する。一実施形態では、並行して動作するセンスモジュールに1つのコントローラが制御信号およびタイミング信号を提供する。いくつかの実施形態では、1つのワード線に沿うデータは複数のページに分割され、データは一度に1ページ、あるいは一度に複数のページに読み出されるかまたはプログラムされる。
【0046】
センスモジュール380は、ビット線絶縁トランジスタ512が信号BLSによりイネーブルされたときに1つのメモリセルのためのビット線(例えば、ビット線BL)に接続可能である。センスモジュール380は、センスアンプ600によってメモリセルの伝導電流を感知し、読み出し結果をセンスノードSEN2におけるデジタル電圧レベルとしてラッチし、それをゲート530を介して読み出しバス532に出力する。
【0047】
センスアンプ600は、第2の電圧クランプ(トランジスタ612および634)、プリチャージ回路(トランジスタ541,642および643)、およびディスクリミネータまたは比較回路(トランジスタ654,656および658、およびコンデンサCsa)を含む。一実施形態では、読み出されるメモリセルのコントロールゲートに基準電圧が印加される。基準電圧がメモリセルのしきい値電圧より大きければ、メモリセルをオンに転換してそのソースおよびドレインの間に電流を伝導する。基準電圧がメモリセルのしきい値電圧より大きくなければ、メモリセルはオンに転換せず、そのソースおよびドレインの間に電流を伝導しない。多くの実施例において、オン/オフは連続的な遷移であり、メモリセルはいろいろなコントロールゲート電圧に応答していろいろな電流を伝導し得る。メモリセルがオンで電流を伝導されているならば、その伝導される電流は、ノードSENにおける電圧を低下させ、他方の端子がVddであるコンデンサCsaの両端間の電圧を実際上充電しあるいは高める。ノードSENにおける電圧が所定の感知期間の間に所定のレベルまで放電したならば、センスアンプ600は、コントロールゲート電圧に応答してメモリセルがオンに転換したことを報じる。
【0048】
センスモジュール380の1つの特徴は、感知中にビット線への一定電圧供給を取り入れたことである。これはビット線電圧クランプトランジスタ612により好ましく実現され、これは、トランジスタ612がビット線BLと直列で、ダイオードクランプのように動作する。そのゲートは、そのしきい値電圧VTより上の所望のビット線電圧VBLに等しい一定電圧BLCにバイアスされる。このようにして、それは、ビット線をノードSENから絶縁し、プログラム−ベリファイまたは読み出しの間、所望のVBL=0.5〜0.7ボルトなどのビット線のための一定電圧レベルをセットする。一般的に、ビット線電圧レベルは、長いプリチャージ時間を避けるために充分に低いけれども接地ノイズおよび他のファクタを避けるために充分に高いレベルにセットされる。
【0049】
センスアンプ600は、センスノードSENを通る伝導電流を感知して、伝導電流が所定値より高いか低いかを判定する。センスアンプは、感知結果を信号SEN2としてデジタル形で読み出しバス532に出力する。
【0050】
本質的にSEN2における信号の反転状態であり得るデジタル制御信号INVも、プルダウン回路を制御するために出力される。感知された伝導電流が所定値より高いときには、INVはハイでSEN2はローである。この結果は、プルダウン回路によって強められる。プルダウン回路は、制御信号INVにより制御されるnトランジスタ522と、制御信号GRSにより制御される他の1つのnトランジスタ550とを含む。GRS信号がローであるときには、INV信号の状態に関わらずビット線BLが浮動させられることを可能にする。プログラミング中、GRS信号はハイになって、ビット線BLが接地に引かれてINVにより制御されることを可能にする。ビット線BLが浮動させられる必要があるとき、GRS信号はローになる。センスモジュール、センスアンプおよびラッチの他の設計も使用され得ることに留意するべきである。
【0051】
読み出し/書き込み回路365は、1ページのメモリセルに対して同時に作用する。読み出し/書き込み回路365内の各センスモジュール380は、ビット線を介して対応するセルに結合されている。伝導電流は、ソース線を通って接地へ行く前に、センスモジュールからビット線を通ってメモリセルのドレインに流入してソースから流出する。集積回路チップにおいて、メモリアレイ内のセルのソースは、全て、メモリチップの何らかの外部接地パッド(例えば、Vssパッド)に接続されているソース線の複数のブランチとして互いに結合される。ソース線の抵抗を減少させるために金属ストラップが使用されるときでも、メモリセルのソース電極と接地パッドとの間に有限の抵抗Rが残る。通例、接地ループ抵抗Rはおよそ50オームである。
【0052】
並行して感知されるメモリのページ全体について、ソース線を通って流れる総電流は、全ての伝導電流の合計である。一般的に、各メモリセルは、その電荷蓄積素子内にプログラムされた電荷の量に依存する伝導電流を有する。メモリセルの所与のコントロールゲート電圧に対して、少量の電荷が割合に高い伝導電流を生じさせる。メモリセルのソース電極と接地パッドとの間に有限の抵抗が存在するとき、抵抗における電圧降下はVdrop=iTOT Rにより与えられる。
【0053】
例えば、4,256本のビット線が、各々1μAの電流で、同時に放電すれば、ソース線電圧降下は4,000線×1μA/線×50オーム〜0.2ボルトに等しくなる。このソース線バイアスは、メモリセルのしきい値電圧が感知されるときに0.2ボルトの感知エラーの原因となる。
【0054】
1セットの実施形態において、ソース線バイアスを減少させる方法は、マルチパス感知のための特徴および技術を有する読み出し/書き込み回路により成し遂げられる。各パスは、所与の区分電流値より高い伝導電流を有するメモリセルを識別してシャットダウンするのに役立つ。通例、各パスで、所与の区分電流値は、在来のシングルパス感知のためのブレークポイント電流値に次第に収斂する。このようにして、その後のパスにおける感知は、高電流セルがシャットダウンされているから、ソース線バイアスによる影響をより少なく受けることになる。
【0055】
例えば、マルチパス感知は2パスで実行され得る(j=0から1まで)。第1のパス後、ブレークポイントより高い伝導電流を有するメモリセルが識別されて、それらの伝導電流をオフにすることによって除去される。それらの伝導電流をオフにする1つの好ましい仕方は、それらのビット線におけるそれらのドレイン電圧を接地にセットすることである。第2のパスでは、ソース線バイアスからのエラーは低減される。3以上のパスも考えられる。ソース線バイアスがエラーを引き起こさない実施形態では、感知のために1パスが使用され得る。
【0056】
図10(A)〜10(K)は、読み出し/ベリファイ操作中のセンスモジュール380の一実施形態を説明するタイミング図を描いている。
フェーズ(0):セットアップ
センスモジュール380(図9を参照)は、イネーブル信号BLS(図10(A))を介して対応するビット線に接続されている。電圧クランプはBLC(図10(B))でイネーブルされる。プリチャージトランジスタ642は、制御信号FLT(図10(C))で限定電流源としてイネーブルされる。
【0057】
フェーズ(1):制御されたプリチャージ
センスアンプ600は、信号INV(図10(H))をトランジスタ658を介して接地に引くリセット信号RST(図10(D))により初期化される。従って、リセット時に、INVはローにセットされる。同時に、pトランジスタ663は相補的信号LATをVddまたはハイに引く(図10(H))。すなわち、LATはINVのコンプリメントである。絶縁トランジスタ634は信号LATにより制御される。従って、リセット後、絶縁トランジスタ634はイネーブルされてセンスノードSEN2をセンスアンプの内部センスノードSENに接続する。
【0058】
プリチャージトランジスタ642は、内部センスノードSENおよびセンスノードSEN2を通してビット線BLを所定期間にわたってプリチャージする。これは、ビット線を、その中での伝導を感知するために最適の電圧に至らせる。プリチャージトランジスタ642は、制御信号FLT(「FLOAT(浮動)」)により制御される。ビット線は、ビット線電圧クランプ612によりセットされる所望のビット線電圧のほうへ引き上げられる。引き上げの速さは、ビット線の伝導電流に依存する。伝導電流が小さいほど、引き上げは速い。
【0059】
所定値より高い伝導電流を有するメモリセルがオフにされて、ソース線バイアスへのそれらの寄与がなくされたならばソース線バイアスに起因する感知エラーは最少にされるということを前に説明した。従って、プリチャージトランジスタ642は2つの機能を果たす。1つは、ビット線を最適感知電圧にプリチャージすることである。他方は、DC(直流)感知のための所定値より高い伝導電流を有するメモリセルを、それらがソース線バイアスへの寄与から除去され得るように、識別するのを助けることである。
【0060】
DC感知は、ビット線に所定の電流を供給するための電流源のように振る舞うプリチャージ回路を提供することにより成し遂げられる。pトランジスタ642を制御する信号FLTは、所定の電流が流れるように「プログラムする」ような信号である。一例として、FLT信号は、500nAにセットされた基準電流を有する電流ミラーから生成され得る。pトランジスタ642が電流ミラーの反転脚を形成するとき、それは同じ500nAを投入させる。
【0061】
図10(I1)〜10(I4)は、700nA,400nA,220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続された例としての4つのビット線の電圧を示す。プリチャージ回路(これはトランジスタ642を含む)が、例えば、500nAの限界値を有する電流源であるとき、500nAを上回る伝導電流を有するメモリセルは、ビット線上の電荷を、それが蓄積できるよりも速く排出させる。従って、伝導電流700nAを有するビット線では、内部センスノードSENにおけるその電圧あるいは信号は0Vの近くに留まる(例えば、0.1ボルト、図10(I1)を参照)。その一方で、メモリセルの伝導電流が500nAより低ければ、プリチャージ回路(これはトランジスタ642を含む)はビット線を充電し始めて、その電圧は、クランプされているビット線電圧(例えば、電圧クランプ612によりセットされた0.5V)のほうへ上昇し始める(図10(I2)〜10(I4))。相応して、内部センスノードSENは0V付近に留まるかあるいはVddへ引き上げられる(図10(G))。一般的に、伝導電流が小さいほど、ビット線電圧はクランプされたビット線電圧へ速く充電される。従って、制御されたプリチャージフェーズ後にビット線の電圧を調べることにより、接続されているメモリセルが所定のレベルより高い伝導電流を有するかあるいは低い伝導電流を有するかを識別することが可能である。
【0062】
フェーズ(2):DCラッチングと後のストローブからの高電流セルの除去
制御されるプリチャージフェーズ後、ノードSENがディスクリミネータ回路によって感知される最初のDC高電流感知フェーズが始まる。感知は、所定のレベルより高い伝導電流を有するメモリセルを識別する。ディスクリミネータ回路は直列の2つのpトランジスタ654および656を含み、それらは、信号INVを記録するノードのためのプルアップとして作用する。pトランジスタ654は、ローになる読み出しストローブ信号STBによりイネーブルされ、pトランジスタ656は、ローになる内部センスノードSENの信号によりイネーブルされる。高電流メモリセルは、0Vに近いか、あるいは、少なくとも、pトランジスタ656をオフに転換させるほど充分に高くはそのビット線がプリチャージされ得ない信号SENを有する。例えば、弱いプルアップが500nAの電流に限定されるならば、それは700nAの伝導電流を有するセルをプルアップしない(図10(G1))。STBがラッチのためにローをストローブすると、INVはVddにプルアップされる。これは、ラッチ回路660をINVがハイでLATがローの状態にセットする(図10(H1))。
【0063】
INVがハイでLATがローであるとき、絶縁ゲート630はディスエーブルされ、センスノードSEN2は内部センスノードSENから遮られる。同時に、ビット線はプルダウントランジスタ522によって接地に引かれる(図9および10(I1))。これは、ビット線のどのような伝導電流をもオフに転換させ、それをソース線バイアスへの寄与から除く。
【0064】
従って、センスモジュール380の1つの好ましい実施例では、限定電流源プリチャージ回路が使用される。これは、高電流を伝導しているビット線を識別して、後の感知でのソース線バイアスエラーを最小にするためにそれらをオフに転換させるための追加のあるいは代わりの方法(DC感知)を提供する。
【0065】
他の1つの実施形態では、プリチャージ回路は、高電流ビット線の識別を助けるように特別には構成されないけれども、メモリシステムに利用可能な最大電流の許容範囲内でなるべく速くビット線をプルアップしプリチャージするように最適化される。
【0066】
フェーズ(3):リカバリ/プリチャージ
以前にプルダウンされていなかったビット線の伝導電流の感知の前に、プリチャージ回路は、ローになる信号FLTによりアクティブ化されて、内部センスノードSEN2をVddにプリチャージする(図10(C)および図10(I2)〜10(I4))と共に、隣接するビット線の電圧の低下に起因して部分的に下方に結合されていたかもしれないビット線をプリチャージする。
【0067】
フェーズ(4):第1のAC感知
一実施形態では、浮動させられた内部センスノードSENにおける電圧降下を判定することによりAC(交流または過渡的)感知が実行される。これは、内部センスノードSENに結合されたコンデンサCsaを使用するディスクリミネータ回路により、また伝導電流がそれに充電する(ノードSENの電圧を低下させる)速度を考慮することにより、成し遂げられる。集積回路環境において、コンデンサCsaは通例トランジスタにより実現されるけれども、他の実施例が適切である。コンデンサCsaは所定の静電容量、例えば30fFを有し、それは最適電流決定のために選択され得る。区分電流値は、通例100〜1,000nAの範囲であり、充電期間の適切な調整によりセットされ得る。
【0068】
ディスクリミネータ回路は、内部センスノードSENの信号SENを感知する。各感知の前に、内部センスノードSENの信号はプリチャージトランジスタ642によりVddに引き上げられる。これは、最初に、コンデンサCsaの両端間の電圧をゼロにセットする。
【0069】
センスアンプ600が何時でも感知できるとき、プリチャージ回路は、ハイになるFLTによりディスエーブルされる(図10(C))。第1の感知期間T1は、ストローブ信号STBのアサートにより終わらされる。感知期間中、導通しているメモリセルにより誘導される伝導電流がコンデンサに充電する。SENの電圧は、コンデンサCsaがビット線の伝導電流の電流ドレイン作用を通して充電されているときにVddから低下する。図10(G)(曲線G2〜G4を参照)は、400nA,220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続されている残りの3つの例としてのビット線に対応するSENノードを示し、低下は、より高い伝導電流を有するものについてはより急速である。
【0070】
フェーズ(5):第1のACラッチと後の感知からのより高い電流のセルの除去
第1の所定の感知期間の終了時に、SENノードは、ビット線の伝導電流に依存する何らかの電圧に低下している(図10Gの曲線G2〜G4を参照)。一例として、この第1のフェーズにおける区分電流は300nAであるようにセットされる。コンデンサCsa、感知期間T1およびpトランジスタ656のしきい値電圧は、区分電流(例えば、300nA)より高い伝導電流に対応するSENの信号が、トランジスタ656をオンに転換させるために充分に低くなるようなものである。ラッチ信号STBがローをストローブすると、出力信号INVはハイに引かれ、ラッチ382によりラッチされる(図10(E)および図10(H)(曲線H2))。その一方で、区分電流より低い伝導電流に対応する信号SENは、トランジスタ656をオンに転換させることのできない信号SENを生じさせる。この場合、ラッチ382は不変のままであり、その場合にはLATはハイのままである(図10(H3)および10(H4))。従って、ディスクリミネータ回路が、実際上、感知期間によりセットされる基準電流に関してビット線の伝導電流の高さを判定することが分かる。
【0071】
センスアンプ600は第2の電圧クランプトランジスタ612も含み、その目的は、トランジスタ612のドレインの電圧を、ビット線電圧クランプ610が適切に機能するように充分に高く保つことである。前述したように、ビット線電圧クランプ610は、ビット線電圧を所定値VBL、例えば0.5Vにクランプする。これは、トランジスタ612のゲート電圧BLCがVBL+VT にセットされること(ここで、VT はトランジスタ612のしきい値電圧である)、およびセンスノード501に接続されているドレインがソースより大きいこと、すなわち信号SEN2>VBLを必要とする。特に、電圧クランプの構成が与えられたならば、SEN2はXX0−VT またはBLX−VT のうちの小さいほうより高くあるべきではなく、SENは低くあるべきではない。感知中、絶縁ゲート630は素通り(pass−through)モードである。しかし、感知中、内部センスノードSENの信号はVddから低下する電圧を有する。第2の電圧クランプは、そのどちらがより低いとしても、XX0−VT またはBLX−VT のうちの低いほうよりSENが低下することを妨げる。これは、信号BLXにより制御されるnトランジスタ612により成し遂げられ、ここでBLXは≧VBL+VT である。従って、電圧クランプの作用を通して、感知中、ビット線電圧VBLは一定に、例えば〜0.5Vに保たれる。
【0072】
電流判定の出力はラッチ回路382によりラッチされる。ラッチ回路は、トランジスタ661,662,663および664並びにトランジスタ666および668によりセット/リセットラッチとして形成される。pトランジスタ666は信号RST(RESET:リセット)により制御され、nトランジスタ668は信号STBにより制御される。低電圧動作向けに適合させられている前述したセンスアンプの変形例が、その全体が本願明細書において参照により援用されている2004年12月16日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第11/015,199号(特許文献13)に見出される。
【0073】
一般的に、一致する数のマルチパスセンスモジュール380により操作される1ページのメモリセルがある。第1の区分電流レベルより高い伝導電流を有するメモリセルについては、それらのLAT信号はローにラッチされる(INVはハイにラッチされる)。これは、対応するビット線を接地に引くようにビット線プルダウン回路520をアクティブ化し、これによりそれらの電流をオフに転換させる。
【0074】
フェーズ(6):リカバリ/プリチャージ
以前に下方に引かれていなかったビット線の伝導電流の次の感知の前に、プリチャージ回路は内部センスノード631をVddにプリチャージするように信号FLTによりアクティブ化される(図10(C)および図10(I3)〜10(I4))。
【0075】
フェーズ(7):第2の感知
センスアンプ600が何時でも感知できるとき、プリチャージ回路は、ハイになるFLTによりディスエーブルされる(図10(C))。第2の感知期間T2は、ストローブ信号STBのアサートによりセットされる。感知期間中、伝導電流があるならば、コンデンサに充電する。ノードSENの信号は、コンデンサCsaがビット線36の伝導電流の電流ドレイン作用を通して充電されているときにVddから低下する。
【0076】
前の例によれば、300nAより高い伝導電流を有するメモリセルは、以前のフェーズで既に識別されてシャットダウンされている。図14(G)(曲線G3およびG4)は、220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続されている2つの例としてのビット線に対応するSEN信号をそれぞれ示す。
【0077】
フェーズ(8):読み出しのための第2のラッチ
第2の所定の感知期間T2の終了時に、SENは、ビット線の伝導電流に依存する何らかの電圧に低下している(図10(G)(曲線G3およびG4))。一例として、この第2のフェーズにおける区分電流は100nAにセットされる。この場合、伝導電流220nAを有するメモリセルは、そのINVがハイにラッチされ(図10(H))、そのビット線は後に接地に引かれる(図10(I3))。その一方で、伝導電流40nAを有するメモリセルは、LATハイでプリセットされたラッチの状態に対して影響を及ぼさない。
【0078】
フェーズ(9):バスへの読み出し
最後に、読み出しフェーズでは、転送ゲート530の制御信号NCOは、ラッチされた信号SEN2が読み出しバス532に読み出されることを可能にする(図10(J)および10(K))。
図10(I1)〜10(I4)から分かるように、ビット線電圧は、各感知期間中、一定のままである。従って、前の議論から、容量性のビット線間結合は排除される。
【0079】
前述したセンスモジュール380は、感知が3つのパスで実行される1つの実施形態であり、始めの2つのパスは、より高い電流のメモリセルを識別してシャットダウンするために実行される。より高い電流のソース線バイアスへの寄与が除去されるので、最後のパスは、より低い範囲の伝導電流を有するセルをより正確に感知することができる。
【0080】
他の実施形態では、感知操作はDCパスおよびACパスの異なる組み合わせで実行され、あるものは2つだけあるいはそれ以上のACパス、あるいは1つのパスだけを使用する。異なるパスの間に使用される区分電流値は、その都度同じであってもよく、あるいは最終パスで使用される区分電流に向かって漸次収斂してもよい。さらに、前述した感知の実施形態は、適切なセンスモジュールの一例に過ぎない。本願明細書に記載された発明を実施するために他の設計および技術も使用され得る。本願明細書に記載された発明のために1つの特定のセンスモジュールが必要とされたりあるいは提案されるわけではない。
【0081】
図11は、不揮発性メモリをプログラムする方法の一実施形態を記述したフローチャートである。一実施例では、メモリセルはプログラミングの前に(ブロックまたは他の単位で)消去される。メモリセルは、一実施形態では、充分な期間にわたってpウェルを消去電圧(例えば、20ボルト)に高めると共に、ソース線およびビット線が浮動している間選択されたブロックのワード線を接地することによって消去される。容量結合に起因して、選択されていないワード線、ビット線、選択線、およびcソースも消去電圧のかなりの部分まで高められる。従って、選択されたメモリセルのトンネル酸化物層に強い電界が加えられ、フローティングゲートの電子が一般的にはファウラーノルドハイムトンネリングにより基板側に放出されるときに、選択されたメモリセルのデータが消去される。電子がフローティングゲートからpウェル領域に移されるとき、選択されたセルのしきい値電圧は低められる。消去は、メモリアレイ全体、別々のブロック、あるいはセルの他の単位に対して、実行され得る。
【0082】
図11のステップ700で、「データロード」コマンドがコントローラにより発せられて制御回路310により受け取られる。ステップ702で、ページアドレスを指定するアドレスデータがコントローラまたはホストからデコーダ314に入力される。ステップ704で、アドレス指定されたページのための1ページのプログラムデータがプログラミングのためにデータバッファに入力される。そのデータは、ラッチの適切なセットにおいてラッチされる。ステップ706で、コントローラにより状態マシン312に対して「プログラム」コマンドが発せられる。
【0083】
「プログラム」コマンドによりトリガされて、ステップ704でラッチされたデータは、適切なワード線に加えられる図12の階段状パルスを用いる状態マシン312により制御される選択されたメモリセル中にプログラムされる。ステップ708で、プログラム電圧Vpgmは始動パルス(例えば、12Vまたは他の値)に初期化され、状態マシン312により維持されるプログラムカウンタPCは0に初期化される。ステップ710で、選択されたワード線に第1のVpgmパルスが加えられる。対応するメモリセルがプログラムされるべきことを示す論理「0」が特定のデータラッチに記憶されているならば、対応するビット線が接地される。その一方で、対応するメモリセルがその現在のデータ状態に留まるべきであることを示す論理「1」が特定のラッチに記憶されているならば、対応するビット線はプログラミングを抑制するVddに接続される。
【0084】
ステップ712で、選択されたメモリセルの状態は、それらがそれらのターゲットしきい値電圧に達しているかどうかを判定するためにベリファイされる。選択されたセルのしきい値電圧がターゲットレベルに達していることが検出されたならば、対応するデータラッチに記憶されているデータは論理「1」に変更される。しきい値電圧が適切なレベルに達していないことが検出されたならば、対応するデータラッチに記憶されているデータは変更されない。このようにして、対応するデータラッチに論理「1」が記憶されているビット線はプログラムされなくてもよい。全てのデータラッチが論理「1」を記憶しているとき、状態マシンは(前述したワイヤードORタイプのメカニズムを介して)全ての選択されたセルがプログラムされていることを知る。ステップ714で、全てのデータラッチが論理「1」を記憶しているかどうかがチェックされる。そうであるならば、全ての選択されたメモリセルがプログラムされてベリファイされたのであるから、プログラミングプロセスは完了していて成功している。「合格」のステータスがステップ716で報告される。
【0085】
ステップ714で、データラッチの全てが論理「1」を記憶しているわけではないと判定されたならば、プログラミングプロセスは続行される。ステップ718で、プログラムカウンタPCはプログラム極限値PCMAXと照合される。プログラム極限値の一例は20であるけれども、他の数も使用され得る。プログラムカウンタPCが20未満でなければ、プログラムプロセスは失敗していて、ステップ720で「失敗」のステータスが報告される。いくつかの実施形態では、ループの最大数に達した後、システムは、所定量未満のセルがプログラミングを終えていないかどうかをチェックする。その所定数未満がプログラミングを終えていなければ、プログラミングプロセスは依然として合格であると見なされる。プログラムカウンタPCが20未満であれば、ステップ722でVpgmレベルはステップサイズだけ高められ、プログラムカウンタPCはインクリメントされる。ステップ722の後、プロセスはステップ710に巡り戻って次のVpgmパルスを印加する。
【0086】
図12は、プログラミングのために選択されたワード線に加えられる一連のプログラムパルスを示す。プログラムパルス同士の中間には1セットのベリファイパルスがある(図示せず)。いくつかの実施形態では、データがプログラムされる各状態について1つのベリファイパルスがあり得る。他の実施形態では、もっと多いあるいはもっと少ないベリファイパルスがあり得る。
【0087】
一実施形態では、データは1つの共通ワード線に沿うメモリセルにプログラムされる。従って、図12のプログラムパルスを加える前に、ワード線のうちの1つがプログラミングのために選択される。このワード線は、選択されたワード線と称される。ブロックの残りのワード線は、選択されていないワード線と称される。
【0088】
成功したプログラム(ベリファイを伴う)プロセスの終了時に、メモリセルのしきい値電圧は、適宜に、プログラム済みメモリセルについてのしきい値電圧の1つ以上の分布の中または消去済みメモリセルについてのしきい値電圧の1つの分布の中にあるべきである。図13は、各メモリセルが2ビットのデータを記憶するときのメモリセルのアレイについての例としてのしきい値電圧分布を示す。図13は、消去済みメモリセルについての第1のしきい値電圧分布Eを示す。プログラム済みメモリセルについての3つのしきい値電圧分布A,BおよびCも描かれている。一実施形態では、E分布内のしきい値電圧は負であり、A,BおよびC分布内のしきい値電圧は正である。
【0089】
図13の各々の区別可能なしきい値電圧範囲は、データビットのセットについての所定値に対応する。メモリセルにプログラムされたデータとセルのしきい値電圧レベルとの特定の関係は、セルのために採用されるデータ符号化方式に依存する。例えば、両方ともその全体が本願明細書において参照により援用されている、米国特許第6,222,762号と(特許文献16)、および2003年6月13日に出願された「Tracking Cells For A Memory System」という米国特許出願公開第2004/0255090号(特許文献17)は、多状態フラッシュメモリセルのための種々のデータ符号化方式を記載している。一実施形態では、フローティングゲートのしきい値電圧がその隣の物理状態に誤ってシフトしても1ビットだけが影響を受けることとなるように、データ値はグレイコード割当てを用いてしきい値電圧範囲に割当てられる。一例は、「11」をしきい値電圧範囲E(状態E)に割り当て、「10」をしきい値電圧範囲A(状態A)に割当て、「00」をしきい値電圧範囲B(状態B)に割当て、「01」をしきい値電圧範囲C(状態C)に割当てる。しかし、他の実施形態では、グレイコードは使用されない。図13は4つの状態を示しているけれども、本発明は、4つより多いまたは少ない状態を含むものを含む他の多状態構造でも使用され得る。例えば、いくつかの不揮発性記憶素子は8つ(7つのプログラム済みおよび1つの消去済み)またはそれ以上の状態を利用することができる。
【0090】
図13は、メモリセルからデータを読み出すための3つの読み出し基準電圧Vra,VrbおよびVrcも示している。所与のメモリセルのしきい値電圧がVra,VrbおよびVrcより高いか低いかを試験することにより、システムはそのメモリセルがどの状態にあるかを判定することができる。
【0091】
図13は、3つのベリファイ基準電圧Vva,VvbおよびVvcも示す。メモリセルを状態Aにプログラムするときに、システムは、それらのメモリセルがVvaより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Bにプログラムするときに、システムは、メモリセルがVvbより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Cにプログラムするときに、システムは、メモリセルがVvcより大きいかまたはそれに等しいそれらのしきい値電圧を有するかどうか判定する。
【0092】
フルシーケンスプログラミングとして知られる1つの実施形態では、メモリセルは、消去状態Eからプログラム済み状態A,BまたはCのいずれにも直接プログラムされることができる。例えば、プログラムされるべきメモリセルの集団は、その集団の中の全てのメモリセルが消去済み状態Eになるように、始めに消去され得る。いくつかのメモリセルが状態Eから状態Aへプログラムされつつあるときに、他のメモリセルは状態Eから状態Bへかつ/または状態Eから状態Cへプログラムされつつある。
【0093】
図14は、2つの異なるページ、下側ページおよび上側ページのためのデータを記憶する多状態メモリセルをプログラムする2パス手法の例を示す。4つの状態、すなわち状態E(11)、状態A(10)、状態B(00)および状態C(01)が描かれている。状態Eについて、両方のページが「1」を記憶する。状態Aについて、下側ページは「0」を記憶し、上側ページは「1」を記憶する。状態Bについて、両方のページが「0」を記憶する。状態Cについて、下側ページは「1」を記憶し、上側ページは「0」を記憶する。特定のビットパターンが状態の各々に割り当てられているけれども、異なるビットパターンも割り当てられ得るということに留意するべきである。
【0094】
第1のプログラミングパスで、セルのしきい値電圧レベルは、下側論理ページにプログラムされるべきビットに応じてセットされる。そのビットが論理「1」であれば、しきい値電圧は、以前に消去されていた結果として適切な状態にあるから、変更されない。しかし、プログラムされるべきビットが論理「0」であれば、そのセルのしきい値レベルは、矢730により示されているように、状態Aとなるように高められる。
【0095】
第2のプログラミングパスで、セルのしきい値電圧レベルは、上側論理ページにプログラムされるビットに応じてセットされる。上側論理ページのビットが論理「1」を記憶しなければならないのであれば、下側ページのビットのプログラミングに依存してセルが状態EまたはAのうちの一方であり、その両方が「1」の上側ページビットを維持しているから、プログラミングは行なわれない。上側ページのビットが論理「0」であるべきであれば、しきい値電圧は変更される。第1のパスがセルが消去済み状態Eに留まるという結果をもたらしたならば、第2のフェーズで、セルは、矢734により描かれているように、しきい値電圧が高められて状態Cの中に入るようにプログラムされる。セルが第1のプログラミングパスの結果として状態Aにプログラムされていたならば、メモリセルは、矢732により描かれているように、しきい値電圧が高められて状態Bの中に入るように第2のパスでさらにプログラムされる。第2のパスの結果は、セルを、下側ページのためのデータを変更することなく上側ページのために論理「0」を記憶するように指定された状態にプログラムすることである。
【0096】
一実施形態では、1つのワード線を満たすのに充分なデータが書き込まれるならば、システムはフルシーケンス書き込みを実行するようにセットアップされ得る。不十分なデータが書き込まれるならば、プログラミングプロセスは、受け取られたデータでプログラムして下側ページをプログラムすることができる。その後のデータが受け取られると、システムは上側ページをプログラムする。さらに別の1つの実施形態では、システムは、下側ページをプログラムするモードで書き始めて、1つのワード線の全体(またはその大部分)のメモリセルを満たすのに充分なデータが後に受け取られたならばフルシーケンスプログラミングモードに転換することができる。そのような実施形態についてのより多くの詳細な情報が、その全体が本願明細書において参照により援用されている2004年12月14日にSergey Anatolievich GorobetsおよびYan Liにより出願された「Pipelined Programming Of Non-Volatile Memories Using Early Data 」という米国特許出願第11/013,125号(特許文献18)に開示されている。
【0097】
図15は、不揮発性メモリセルからデータを読み出すための一実施形態を記述するフローチャートである。センスモジュールに関する前の議論は、データが特定のビット線からどのように読み出されるかを論じている。図15は、システムレベルでの読み出しプロセスを提供する。ステップ800で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。前に論じられたように、隣接するフローティングゲート(または他の隣接する電荷蓄積素子)に蓄積された電荷に基づく電界の結合のために、不揮発性メモリセルのフローティングゲート(または他の電荷蓄積素子)に蓄積された見かけ上の電荷にシフトが発生する可能性がある。この結合を補償するために、所与のメモリセルのための読み出しプロセスは、隣接するメモリセルのプログラム済み状態を考慮に入れる。ステップ802は、隣接するフローティングゲート間の結合のそのような補償を提供するかどうかを判定することを含む。いくつかの実施形態では、ステップ802はどの程度の補償を用いるかを決定することを含む。ステップ804で、データを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ804の読み出しプロセスは、ステップ802に基づいて、隣接するフローティングゲート間の結合の適切な補償を含むことができる。一実施形態では、ステップ804で読み出されるメモリセルは1つの共通ワード線に、けれども異なるビット線に、接続されている。
【0098】
一実施形態では、1ページのためのデータがプログラムされるときに、システムはまた誤り訂正符号(ECC)を作り、これらのECCをページのデータと共に書き込む。ECC技術は当該技術分野で良く知られている。使用されるECCプロセスは、当該技術分野で知られている任意の適切なECCプロセスを含むことができる。1ページ(または他のデータ単位)からデータを読み出すときに、データ中にエラーがあるかどうか判定するためにECCが使用される(ステップ806)。ECCプロセスは、コントローラ、状態マシン、またはシステム中の他の場所で実行され得る。データ中にエラーがなければ、そのデータはステップ808でユーザに報告される。ステップ806でエラーが発見されたならば、そのエラーが訂正可能であるかどうか判定される(ステップ810)。種々のECC方法が、1セットのデータ中の所定数のエラーを訂正する能力を有する。ECCプロセスがそのデータを訂正できるならば、ステップ812でそのデータを訂正するためにECCプロセスが使用され、その訂正されたデータがステップ814でユーザに報告される。データがECCプロセスによって訂正できなければ(ステップ810)、ステップ820でエラーがユーザに報告される。いくつかの実施形態では、ステップ820は、データの全部または部分集合を報告することを含むこともできる。データの1つの部分集合がエラーを有しないことが分かったならば、その部分集合が報告され得る。
【0099】
図16は、隣接するフローティングゲート間の結合の補償を使用することのある、不揮発性メモリセルからデータを読み出すための他の1つの実施形態を記述するフローチャートである。図15のプロセスと図16のプロセスとの1つの差異は、図16のプロセスが、読み出しプロセス中にエラーがある場合に限って補償を使用することである。
【0100】
図16のステップ840で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。ステップ842で、そのデータを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のための読み出しプロセスが実行される。ステップ842の読み出しプロセスは、本願明細書に記載された結合の補償を含まない。ステップ844は、データ中にエラーがあるかどうかの判定を含む。データ中にエラーがなければ、そのデータはステップ846でユーザに報告される。ステップ844でエラーが発見されれば、ステップ850で、そのエラーが訂正可能であるかどうかが判定される。種々のECC方法が、1セットのデータ中の所定数のエラーを訂正する能力を有する。ECCプロセスがそのデータを訂正できるならば、ステップ852でそのデータを訂正するためにECCプロセスが使用され、その訂正されたデータがステップ854でユーザに報告される。データがECCプロセスにより訂正できなければ(ステップ850)、システムは、隣接するフローティングゲート間の結合の補償を伴う読み出しプロセスを実行することによってデータを回復しようと試みる。従って、ステップ860で、システムは、隣接フローティングゲート間の結合を処理するために補償を用いるかどうか、かつ/またはどの程度の補償を用いるかを決定する。ステップ862で、データを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ862の読み出しプロセスは、ステップ860に基づいて、隣接フローティングゲート間の結合の適切な補償を用いることによってデータを回復しようと試みる。
【0101】
ターゲットのフローティングゲートに隣接するフローティングゲートは、同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート、または隣接するビット線および隣接するワード線の両方の上にあるためにターゲットのフローティングゲートの向こう側にあるフローティングゲートを含み得る。一実施形態では、本願明細書で論じられた結合の補償は、隣接フローティングゲートのこれらの前述したセットのうちのいずれにも適用され得る。いくつかの実施形態では、本願明細書で論じられた結合の補償は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲートに適用される。例えば、メモリセル362は、その見かけ上のしきい値電圧がメモリセル364および366からの結合に起因して変化させられ得る(図7を参照)。同じビット上にあるけれども異なるワード線上にある隣接フローティングゲートに起因する結合の補償は、その全体が本願明細書において参照により援用されている2005年4月5日にYan LiおよびJian Chen により出願された「Read Operation For Non-Volatile Storage That Includes Compensation For Coupling 」という米国特許出願第11/099,049号(特許文献19)においてより詳しく論じられている。いくつかの実施形態は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート間および同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート間の結合の補償を提供する。
【0102】
隣接するフローティングゲート間の結合の量は、隣接するフローティングゲートがプログラムされるタイミングに依存する。同時にプログラムされる2つの隣接するフローティングゲートは、結合をほとんどあるいは全く持ちそうもない。最大量の結合は、一方のフローティングゲートがプログラムされなくて(例えば、消去済み状態Eに留まる)、他方のフローティングゲートが後に最高に(例えば、最も)プログラムされた状態にプログラムされる(例えば、状態Cにプログラムされる図13を参照)場合に2つの隣接するフローティングゲート間に生じそうである。状態Eと状態Aとの間には大きなマージンがあるので、結合があっても、状態Eにあるデータを誤って読み出すことはなさそうである。2番目に大きな量の結合は、状態Aにプログラムされた第1のフローティングゲートと、状態Cにプログラムされた、後にプログラムされたフローティングゲートとの間にある。従って、一実施形態では、結合の補償が使用される唯一のときは、1つのメモリセルが第1のプログラム済み状態(例えば、状態A)にあって、その隣のものが1セットの状態(4つの状態、8つの状態、または異なる数の状態)のうちの最高のプログラム済み状態(例えば、状態C)にあるときである。他の実施形態では、結合の補償は、隣のメモリセルが異なる状態、例えば状態Bまたは他の1つの状態にあるときに使用され得る。4つより多いまたは少ない状態を使用するいくつかの実施形態では、結合の補償は、隣のメモリセルが、結合を引き起こすと分かっている状態にあるときに、使用され得る。同様に、結合の補償は、ターゲットのメモリセルが、その特定の実施例に適切な、状態A以外の状態にあるときに、使用され得る。
【0103】
隣のメモリセルの状態が何らかの技術を用いて検出または取得され得るならば、考察されているメモリセルに必要な訂正の量は、次の読み出し操作の間に決定され調整されることができる。特定のメモリセルの状態を知る1つの方法は、読み出し操作を通してのものである。しかし、一実施形態では、隣接するビット線のためのセンスアンプ間には通信はない。読み出し操作後も、考察されているメモリセルは、その隣のメモリセルの状態を知らない。
【0104】
図17は、1つのメモリセルが状態Aにあってその隣のメモリセルのうちの1つ以上が状態Cにあるかどうかに基づいて、補償が使用されるべきかどうか、またどの程度の補償が使用されるべきかを判定するための一実施形態を記述するフローチャートである。少なくとも2つのシナリオがある。1つのシナリオでは、読み出される特定のメモリセルは状態Aにあり、その隣のもののうちの1つは状態Cにある。第2のシナリオでは、読み出される特定のメモリセルは状態Aにあり、その隣のもののうちの2つ(異なるビット線)は状態Cにある。図17のプロセスは、特定のメモリセル(または特定のビット線)についてのいずれかの隣のものが状態Cに(または、7つ以上の状態のセットのうちの最高のプログラム済み状態に)あるかどうか判定する。このプロセスは、図15のステップ802および図16のステップ860を実行するために使用され得る。
【0105】
図17のステップ900で、選択されたワード線に接続されているメモリセルの全て(または部分集合)が、メモリセルが状態Cにあるかどうか判定するために、読み出される。これは、読み出し比較ポイントVrcを使用することにより成し遂げられる。Vrcより大きなしきい値電圧を有するメモリセルは、状態Cにあると想定される。Vrc未満のしきい値電圧を有するメモリセルは状態Cにはない。Vrcを使用する読み出し操作の終了時に、各センスアンプは、その対応するメモリセルが状態Cにあるか否かをラッチする。克服されなければならない1つの障害は、いくつかの実施例ではセンスアンプが隣のセンスアンプに話しかけることができないことである。例えば、図7を見ると、ビット線BL2のためのセンスアンプは、ビット線BL1またはビット線BL3のセンスアンプと通信できない。従って、BL2のためのセンスアンプは、BL1およびBL3上の隣のメモリセルが状態Cにあるかどうかを知らない。ステップ902〜910は、隣のメモリセルが状態Cにあるかどうかを示すために実行される。ステップ902で、状態Cにあるとステップ900で感知されたメモリセルに接続されているビット線の全てが所定の電圧に充電される。一例では、状態Cのメモリセルを伴うビット線は0.5ボルトに充電される。図9を振り返り見ると、これは、0.5ボルト+Vth(トランジスタ612の)をトランジスタ612のゲートに印加すると共に、INV=0を引き起こすためにRST信号をローにトグルすることによって、成し遂げられ得る。他のセンスアンプは、INV=1でセットアップされていたので、それらのビット線には充電はされない。GRS=0では、ビット線にはアクティブなプルダウンはない。Cデータを有するビット線が充電されるときに、隣接するビット線はビット線間結合に起因してそれらのビット線に結合される。1つの実施例では、そのような結合は総ビット線静電容量の40%であり得る。両方の隣のものがCデータを有するビット線について、容量結合は総ビット線静電容量の80%におよび得る。例えば、ビット線の1つの隣のものがCデータを有するならば、それは約0.15ボルトだけ上方結合(coupled-up)され得る。ビット線の2つの隣のものがCデータを有するならば、それは約0.3ボルトだけ上方結合され得る。
【0106】
ステップ904で、Cデータを有する2つの隣のものを有するビット線が識別される。一実施形態では、ステップ904は、BLCを0.2+Vth(トランジスタ612の)に下げることによって成し遂げられる。これは、2つのCの隣のものを有するビット線のトランジスタ612をオフに転換させる。なぜならば、トランジスタ612のドレイン側はVddであり、ソース側は0.3ボルトだからである。その後、SENノードは放電されず、センスアンプはLAT=1をラッチする。1つのCの隣のものを有するかあるいはCの隣のものを有しない他のビット線は、トランジスタ612が導通している。ビット線はコンデンサCsaより遥かに高い静電容量を有するので、SENノードは放電し、センスアンプはLAT=0をラッチする。SENノードが充電されるか放電されるかの結果は、適切なデータラッチ394に記憶される(ステップ906)。ステップ906の後、センスアンプおよびビット線はリセットされ、ステップ902と同様に、状態Cにあるメモリセルに接続されているビット線はその後ステップ908で再び充電される。ステップ910で、1つ以上のCの隣のものに結合されているビット線が、BLC=0.15ボルト+Vth(トランジスタ612の)を印加することによって感知される。システムは、状態Cにあるメモリセルを有する1つ以上の隣のものを有するビット線を感知する。ステップ912で、結果がラッチ394のうちの1つに格納される。ステップ904で2つの隣のものが状態Cにありかつステップ908で1つ以上の隣のものが状態Cにあるという表示を記憶したビット線について、そのビット線は状態Cにある隣のものを2つ以上有すると想定される。2つ以上の隣のものが状態Cにあるという表示をステップ906で記憶しなかったけれどもステップ910で1つ以上の隣のものが状態Cにあるという表示を記憶したビット線について、それらのビット線は状態Cにある隣のものを1つ有すると想定される。
【0107】
図18は、図17のプロセスで実行される操作のうちのいくつかをグラフ的に描くタイミング図である。タイミング図は、ステップ902,904および906に対応する3つの期間に分解されている。ステップ902中、信号BLCを0.5ボルトにトランジスタ612についてのしきい値電圧を加えたものに高められることが分かる。これは、選択されたワード線に接続されていて状態Cにあるメモリセルに結合されている全てのビット線のために行われる。それらのビット線は0.5ボルトに高められるように示されている。そのときに2つのCの隣のものを有するビット線は、ビット線が0.3ボルトに高められるように2つの対応する隣のビット線に結合される。Cの隣のものを有しないビット線は0ボルトに留まる。この時間フレーム中、信号GRSはローである。BLCはその後0ボルトに下げられ、その後0.2ボルトにトランジスタ612についてのしきい値電圧を加えたものに高められ、そのときにビット線が感知される(ステップ904)。状態Cの2つの隣のものの隣のビット線はSENノードを放電させない(線914を参照)。状態Cの2つの隣のものを有しなかったビット線はSENノードを放電させる(線916を参照)。データを適切なビット線ラッチ382にラッチした後に、データはデータラッチ394に転送される。
【0108】
図19は、1つ以上のCの隣のものを有するメモリセルのために補償を提供することを含み得る読み出しプロセスの一実施形態を記述している。図19のプロセスは、図15のステップ804および図16のステップ862の一実施形態のより多くの詳細を提供する。さらに、図16のステップ842を実行するためにステップ940〜950および964〜972が使用され得る。図19のプロセスは、1つのワード線と全ビット線、またはビット線の部分集合を含む1ページのデータのために実行され得る。図19のステップ940で、読み出し基準電圧Vraが、ページに関連付けられた適切なワード線に印加される。これは、そのワード線に接続されたメモリセルのためのコントロールゲートに読み出し基準電圧Vraを印加させる。ステップ942で、ページに関連付けられているビット線は、アドレス指定されたメモリセルが導通するか導通しないかを、それらのコントロールゲートへのVraの印加に基づいて判定するために、感知される。導通するビット線は、メモリセルがオンに転換したこと、従って、それらのメモリセルのしきい値電圧がVraより低い(例えば、状態Eにある)ことを示す。ステップ944で、ビット線についての感知の結果が、それらのビット線のための適切なラッチに格納される。
【0109】
ステップ946で、読み出し基準電圧Vrbが、読み出されるページに関連付けられているワード線に印加される。ステップ948で、ビット線が、前に記載されているように感知される。ステップ950で、状態Cにある隣のメモリセルを有しない、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【0110】
この実施形態は、状態Cにあるメモリセルの隣にある状態Aのデータを補正しようと試みる。引き起こされる可能性のあるエラーは、メモリセルが、実際には状態Aにあるのに状態Bにあるように見えることとなるように高められた見かけ上のしきい値電圧を有することである。ステップ952で、Vrbに第1のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ライン954で、ビット線が、前に記載されているように感知される。ステップ956で、状態Cにある隣のメモリセルを1つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。ステップ958で、Vrbに第2のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ステップ960で、ビット線が、前に記載されているように感知される。ステップ962で、状態Cにある隣接するメモリセルを2つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【0111】
ステップ964で、読み出されるページに関連付けられているワード線に読み出し基準電圧Vrcが印加される。ステップ966で、ビット線が、前に記載されているように感知される。ステップ968で、全ビット線について結果が適切なラッチに格納される。ステップ970で、ページ(または他のデータ単位)中の各メモリセルについてのデータ値が判定される。例えば、メモリセルがVraで導通すれば、そのメモリセルは状態Eにある。メモリセルがVrb(またはVrbと第1のオフセット、またはVrbtと第2のオフセット)およびVrcで導通するけれどもVraでは導通しなければ、そのメモリセルは状態Aにある。メモリセルがVrcでは導通するけれどもVraでもVrb(またはVrbとどちらかのオフセット)でも導通しなければ、そのメモリセルは状態Bにある。メモリセルがVraでも、Vrb(またはVrbとどちらかのオフセット)でもVrcでも導通しなければ、そのメモリセルは状態Cにある。一実施形態では、データ値はプロセッサ392により判定される。ステップ972で、プロセッサ392は、各ビット線について、判定されたデータ値を適切なラッチに格納する。他の実施形態では、種々のレベル(Vra、Vrb、およびVrc)を感知することは異なる順序で行われ得る。
【0112】
第1のオフセットおよび第2のオフセットの量は、特定の実施例に依存する。本願明細書に記載された発明は、第1のオフセットあるいは第2のオフセットの特定の値には依存しない。一実施形態では、第1のオフセットは0.1ボルトで第2のオフセットは0.2ボルトであるが、他の適切な値が使用されてもよい。
【0113】
別々のビット線上の隣接するメモリセル間の容量結合について読み出しプロセス中に補正を行う代わりに、補償はプログラミングのときにも実行され得る。システムはプログラミングのときにデータを知っているので、システムはメモリセルを、そのメモリセルの隣のもののうちの1つ以上が状態Cにプログラムされるべく指定されていれば、意図的に、僅かに低いしきい値電圧を有する状態Aにプログラムすることができる。このようにして、その状態Aのメモリセルは、状態Cに指定された隣のものがプログラミングを終えた後に、正しく読み出される。
【0114】
プログラミングプロセスを不当に低速化せずに密なしきい値電圧分布を達成するための1つの解決策は、2フェーズのプログラミングプロセスを使用することである。第1のフェーズすなわち粗大プログラミングフェーズは、密なしきい値電圧分布を達成することにあまり配慮せずにしきい値電圧をすばやく高めようとする試みを含む。第2のフェーズすなわち精密プログラミングフェーズは、より密なしきい値電圧分布を達成しながらターゲットしきい値電圧に達するためにしきい値電圧をよりゆっくり高めようと試みる。粗大/精密プログラミング方法の一例が、その全体が本願明細書において参照により援用されている米国特許第6,888,758号(特許文献20)に見出される。
【0115】
粗大/精密プログラミング方法の一例では、プロセスは2つのベリファイレベル、すなわちターゲットベリファイレベル(精密ベリファイレベルとも呼ばれる)および粗大ベリファイレベルを使用する。プロセスは、プログラミングプロセスの粗大フェーズを行うことから始まる。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルに達したときに、メモリセルは、0ボルトより大きくて禁止電圧よりは低い値にビット線電圧を高めて精密プログラミングフェーズに入る。粗大フェーズ中、ビット線電圧はほぼ0ボルトである。メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。精密プログラミングフェーズ中、ビット線電圧が0ボルトから中間値に高められるという影響により、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さそうである。メモリセルは、メモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまでは精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達するときに、ビット線電圧は、そのメモリセルのそれ以上のプログラミングを禁止するためにVdd(または他の禁止電圧)に高められる。
【0116】
異なるビット線上の隣接するメモリセル間の結合について補正を行うことを含む、提案されたプログラミング方法は、前述した粗大/精密プログラミングプロセスを使用するけれども、2の代わりに3のベリファイレベルが使用される。例えば、図20は、状態Aについてのしきい値電圧分布980を示す。ベリファイのために使用されるターゲット電圧はVvaである。前に論じられた粗大/精密プログラミングのための従来の技法は、Vcaと記される粗大ベリファイレベルを有する。提案された方式は、以下のように使用されるべき第3のベリファイレベルViaを付け加えることを含む。要約すると、粗大プログラミングフェーズ中、メモリセルは、しきい値電圧がVcaに達するまでプログラムされる。状態Aにプログラムされつつあって、状態Cにプログラムされるべきメモリセルに隣接しているために補償を必要とするメモリセルは、精密フェーズにおいてしきい値電圧がViaに達するまでプログラムされる。他のメモリセルは、精密フェーズにおいて、それらのしきい値電圧がVvaに達するまでプログラムされる。従って、状態Cにある隣のものを有して状態Aにあるメモリセルは、ことによるとターゲットしきい値電圧分布980より低いことさえある、より低いしきい値電圧を持ちそうである。従って、結合は、それらのメモリセルのしきい値電圧をしきい値電圧分布980の中へ高めさせる。
【0117】
図21は、その隣のもののいずれもが状態Cにはないために補償を必要としなかったメモリセルについての粗大/精密プログラミングの一例を示すしきい値電圧対時間およびビット線電圧対時間のグラフを提供する。このグラフは、時点t1,t2,t3,t4およびt5においてプログラミングパルスがメモリセルのためのコントロールゲートに印加されると想定している。t1,t2およびt3に関連するパルスで、メモリセルのしきい値電圧は高められる。時点t3でメモリセルのしきい値電圧はVcaより高くなる。従って、粗大プログラミングフェーズは終わり、精密プログラミングフェーズが始まる。ビット線電圧は、それに応じて0ボルトから中間電圧V1(例えば、1ボルト)に高められる。0ボルトとは対照的に、中間電圧V1の印加は、そのビット線についてのプログラミングプロセスを遅くする。時点t5で、メモリセルのしきい値電圧はVvaより大きく、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。
【0118】
図22は、その隣のもののうちの1つ以上が状態Cにあってこのメモリセルが状態Aにプログラムされるために補償を必要とするメモリセルについてのグラフを示す。時点t3で、メモリセルのしきい値電圧は高まってVcaに達しているので、ビット線電圧は中間電圧V1に高められる。時点t4で、メモリセルのしきい値電圧はViaに達し、それはVcaより大きくてVvaよりは小さいので、メモリセルは、ビット線電圧をVddに高めることによってさらなるプログラミングから締め出される。
【0119】
他の実施形態では、V1のほかに複数の中間電圧が使用され得ることに留意するべきである。例えば、補償を受けるメモリセルは1つの中間ビット線電圧を使用することができ、補償を受けないメモリセルは他の1つの中間ビット線電圧を使用することができる。他の実施形態では、別々のビット線が別々の中間電圧を使用することができる。
【0120】
図23は、図21および22のグラフに従うプログラミングのためのプロセスの一実施形態を記述するフローチャートである。ステップ1000で、「データロード」がコントローラにより発せられて制御回路により受け取られる。ステップ1002で、ページアドレスを示すアドレスデータがコントローラまたはホストからデコーダ314に入力される。ステップ1004で、アドレス指定されたページのための1ページのプログラムデータ(または他のデータ単位)がプログラミングのためにデータバッファに入力される。そのデータは適切なラッチのセットにラッチされる。ステップ1006で、「プログラム」コマンドがコントローラにより状態マシン312に対して発せられる。ステップ1008で、結合を補償するかどうかに関して判定が行われる。特定のメモリセルが状態Cにプログラムされつつありかつその隣のもののうちの1つ以上(または2つ以上)が状態Cにプログラムされるためにプログラミングプロセスの間に特定のメモリセルが補償を受ける必要があるかどうかを例えばコントローラ350、制御回路310、センスブロック400または他のコンポーネントが判定する。コントローラ350および制御回路310はプログラムデータ全体を知っているので、一実施形態では、システムは、補償が必要かどうかを自動的に知る。他の実施形態では、各ビット線のためのデータラッチの各々は、プログラムされるべきデータを知る。従って、センスモジュール400は、ビット線のいずれかが、状態Cにプログラムされるべきデータを有する隣のものを有するかどうかを判定するために図17のステップ908,910および912を実行することができる。そうであるならば、そのような隣のものを有するビット線は補償のために表示される。図23の一実施形態では、状態Cにある隣のものを1つ以上有するメモリセルに提供される補償値が1つだけある。他の実施形態では、状態Cにある隣のものが1つあるかあるいは状態Cにある隣のものが2つあるかによって値の異なる補償が提供され得る。
【0121】
図23のステップ1010で、最初のパルスはその初期値にセットされ、プログラムカウンタはその初期値にセットされ、ビット線電圧はその初期値にセットされる。プログラムされるべきメモリセルについて、ビット線電圧は0ボルトにセットされる。プログラムされないメモリセルについて、ビット線はVddにセットされる。初期電圧の表示をラッチに格納することもできる。いくつかの実施形態では、初期ビット線値をプログラムパルスステップ1012の間に印加することもできる(以下で論じられる)。
【0122】
ステップ1012で、プログラムパルスが適切なワード線に印加される。ステップ1014で、ベリファイプロセスが実行される。メモリセルが粗大プログラミングフェーズにあるならば、ステップ1014のベリファイプロセスは、メモリセルのしきい値電圧が粗大ベリファイレベルに達しているかどうかを判定するために使用される。メモリセルが精密プログラミングフェーズにあるならば、メモリセルについてのしきい値電圧は、ターゲットしきい値電圧(例えば、Vva)または補償を必要とするメモリセルについての中間ベリファイレベル(例えば、Via)と比較される。ステップ1014について、より多くの詳細が下に提供される。ステップ1016で、プログラムされるべきメモリセルの全てについてのステータスが、それらが全てベリファイされたようなステータスであるかどうかが判定される。それらが全てベリファイされたならば、成功したプログラミングプロセスがステップ1018で報告される。それらの全てがベリファイされたのではなければ、ステップ1020でプログラムカウンタPCがプログラム極限値PCmaxと照合される。プログラムカウンタPCがPCmax未満でなければ、プログラムプロセスは失敗していて、ステップ1022で失敗のステータスが報告される。プログラムカウンタがPCmax未満であれば、ステップ1024でプログラム電圧(Vpgm)振幅がステップサイズだけ大きくされてプログラムカウンタPCがインクリメントされる。ステップ1024の後、プロセスはステップ1012に巡り戻って次のVpgmパルスを印加する。
【0123】
図24は、図23のベリファイステップ1014の一実施形態を記述するフローチャートである。ステップ1060で、システムは、メモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかを判定する。図23のプロセスは1グループのメモリセル(例えば、1つの共通ワード線に接続された1ページのメモリセル)のために行われる高レベルプロセスを記述しているということに留意するべきである。図24のプロセスは、プログラムされる各々の特定のメモリセルのために個別に実行される。一実施形態では、1つの特定のメモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかの表示を記憶するラッチがセンスブロックに与えられる。メモリセルが粗大プログラミングフェーズにあるならば、ステップ1062においてベリファイプロセスが粗大ベリファイレベル(例えば、Vca)で実行される。すなわち、センスアンプは、メモリセルのしきい値電圧が適切な粗大ベリファイレベルに達しているかどうかを判定するために使用される。例えば、メモリセルが状態Aにプログラムされつつあるならば、センスアンプは、前に記載されているように、メモリセルのしきい値電圧がVcaに達しているかどうかを試験する。しきい値電圧が粗大ベリファイレベルに達していたならば(ステップ1064)、メモリセルは粗大プログラミングフェーズを終えている。従って、ステップ1066で、次のプログラミングパルスでメモリセルが精密プログラミングフェーズに入るようにビット線電圧が中間電圧V1に高められる。ステップ1066の後、しきい値電圧が精密ベリファイレベル(あるいは中間ベリファイレベルが適切である)も超えたかどうかを判定するためにプロセスはステップ1080(後で論じられる)で続行される。メモリセルのしきい値電圧が粗大ベリファイレベルに達していなければ、ステップ1068においてメモリセルが粗大プログラミングフェーズを続行するようにビット線電圧は現在のレベルに留まる。
【0124】
ステップ1060においてメモリセルが精密プログラミングフェーズにあると判定されたならば、ステップ1080においてメモリセルが状態Aにプログラムされつつあって結合についての補償を必要としているかどうかが判定される。否であれば、ベリファイプロセスはステップ1082において精密ベリファイレベル(例えば、ターゲットベリファイレベルVva、VvbまたはVvc)を用いて実行される。補償が必要とされるならば、ステップ1090において中間ベリファイレベルViaを用いてベリファイプロセスが実行される。メモリセルのしきい値電圧が適切なベリファイレベルより高ければ(ステップ1084)、メモリセルは、ビット線電圧をVddに高めることによってステップ1088においてさらなるプログラミングから締め出される。メモリセルのしきい値電圧がベリファイレベルより高くなければ(ステップ1084)、ビット線電圧はステップ1086においてその現在のレベルに維持され、精密プログラミングフェーズが続行される。
【0125】
セルのフローティングゲート間結合の効果は、前に記載されたように、プログラムシーケンス中に補正され得る。それは、読み出し操作中にも補正され得る。次の議論は、隣のメモリセル状態に応じて読み出しが修正され得るようにビット線間結合効果を修正ファクタとして感知プロセスに組み込む読み出しシーケンスを記述する。図25および26は、隣接するメモリセルからの結合を経験している一定のメモリセルに補償を与えることを考慮に入れるデータ読み出しプロセスの実施形態を説明する。ステップ1100で、全てのビット線が、これらのビット線かつ選択されたワード線に接続されているメモリセルが状態Cにあるかどうかを判定するために、読み出される。これは、Vrcを読み出し比較ポイントとして用いる読み出し操作を実行することによって実行される。状態Cにあるメモリセルを有するビット線は、メモリセルが状態Cにあるという表示をラッチする。その読み出し操作は図18に示されている。ステップ1102で、状態C以外の状態にあるメモリセルを有するビット線が充電される。一実施形態では、それらのビット線は0.5ボルトに充電される。ステップ1102でビット線が充電された後、状態Cにあるメモリセルに接続されたビット線がステップ1104で0.25〜0.4ボルトの間に充電される。状態Cにあるメモリに接続されたビット線のステップ1104における充電は、ステップ1102で充電されたビット線を0.5ボルトより高い電圧へ上方結合させる。例えば、図26は、状態Cにあるメモリセルを有しないビット線を表すビット線BLnを示す。グラフは、ビット線がステップ1102の間に0.5ボルトに充電されることを示す。ビット線BLn+1は状態Cにあるメモリセルに接続されていて、BLn+1はBLnの隣のものである。ステップ1104の間、ビット線BLn+1はおよそ0.4ボルトに充電される。そのときに、ビット線BLnは、破線1120により描かれているように、0.5より高い電圧に結合される。ステップ1104で充電された隣のものに隣接しないビット線は、線1122により描かれているように、0.5ボルトに留まる。図25のステップ1106において、全てのビット線(またはビット線の部分集合)が感知される。Cの隣のものを有するビット線は、より高いビット線電圧を有すると感知される。そのより高いビット線電圧の故に、ビット線は、より多くの電流を伝導し、それはより低いしきい値電圧の外観を与える。これは隣接するセル間の結合を補償する。Cの隣のものを有するセルは、それらの隣のものがプログラムされた後、そのオリジナルのプログラムレベルより高い浮動電圧に結合される。このフローティングゲート間結合補償を有する読み出しは、セルのオリジナルのプログラムレベルを正しく読み直す。この読み出し補正は、多数の読み出し操作からの時間ペナルティなしで行われる。1つの読み出し操作が、補正を必要とするメモリセルと補正を必要としないメモリセルとについて結果を得る。
【0126】
前に記載された1つの実施形態では、セルソースノイズが除去されているときにいくつかの感知ストローブがあり得る。図25および26に関して前に記載されたプロセスは、全ての感知ストローブの間あるいは後の感知ストローブの間に応用され得る。例えば、2ストローブを有する1つの実施形態では、第1のストローブは図25および26のプロセスを使用しないかも知れず、第2のストローブは図25および26のプロセスを使用するかもしれない。
【0127】
前の記述は、プログラミングの間および読み出しの間のフローティングゲート結合を補償するためのプロセスを記述している。いくつかの実施形態では、プログラミングおよび読み出しの両方の間に補償が行われ得る。しかし、たいていの実施形態では、補償はプログラミングの間または読み出しの間に行われるけれども、その両方の間に行われるわけではない。補償を読み出しの間に行うのか、あるいはプログラミングの間に行うのかの決定は、メモリシステムの使用法に基づいてなされ得る。例えば、データはほとんどプログラムされないけれども多数回読み出されることになるであろうホストにおいてメモリシステムが使用されるのであれば、プログラミングの間に補償するほうがよいかもしれない。あるいは、ホストが多数回プログラムしてほとんど読み出さないならば、補償を読み出しプロセスの間に行うほうがよい。
【0128】
一実施形態では、メモリシステムは、読み出しプロセスの間でかつプログラミングプロセスの間に補償を行うための技術を含むように製造され得る。製造プロセスの間またはその後の何らかの段階で、メモリシステムは、読み出しプロセスの間にだけまたはプログラミングプロセスの間にだけ補償を行うように設定され得る。
【0129】
図27は、読み出しプロセスの間またはプログラミングプロセスの間に補償を行うようにメモリシステムを設定するためのプロセスを記述するフローチャートを提供する。ステップ1200で、メモリシステムは、読み出し中に補償を行うと共にプログラミング中に補償を行う能力を伴って製造される。これは、半導体ウェハを製造することを含み得る。任意に、ステップ1200は、当該技術分野で知られているプロセスを用いてウェハをパッケージングすることも含み得る。このパッケージは、前述した設定を行うためのスイッチを有するかもしれないし有しないかもしれない。集積回路上の記憶素子に関連付けられたそのようなスイッチを付加するための技術は当該技術分野において知られている。ステップ1202で、補償が読み出し中に行われるべきであるのかあるいは補償がプログラミング中に行われるべきであるのかを示すために、ステップ1200で製造されたメモリシステムの一部分であるフラグ(補償フラグ)が、意図された使用法に基づいてセットされる。フラグは、製造プロセス中、製造プロセス後、試験プロセス中、あるいは装置が使用されている間にセットされ得る。ステップ1204で、装置の使用中に、システムは補償フラグをチェックする。補償フラグが読み出し中に補償を行うためにセットされていたならば、ステップ1206でメモリシステムは読み出しプロセス中に結合についての補償を提供する。補償フラグがプログラミングのためにセットされれば、メモリはプログラミングプロセス中に結合についての補償を提供する(ステップ1208)。
【0130】
フラグはステップ1202で多くの異なる仕方でセットされ得る。製造または試験プロセスの間に、補償が読み出し中に行われるべきかあるいはプログラミング中に行なわれるべきかを示すためにROMヒューズがセットされ得る。他の実施形態では、フラグの指示を記憶するための他の手段(例えば、不揮発性アレイ内のメモリセル、フリップフロップ、あるいは他の記憶装置)が、製造プロセス中あるいは製造プロセス後に実現されかつ/またはセットされ得る。フラグは試験プロセス中あるいは使用中にもセットされ得る。さらに、集積回路のためのパッケージングは、ホストへのメモリカードの挿入の前にユーザによりセットされ得るスイッチを含むことができる。
【0131】
いくつかの実施形態では、補償フラグは、メモリシステムがホストに挿入された後にステップ1202でセットされ得る。図28〜31は、そのような設定の例を提供する。図28のステップ1300で、メモリシステムはホストに組み込まれる。ホストの例は、デジタルカメラ、ミュージックプレーヤ、移動電話、ハンドヘルド計算装置、あるいは他の計算装置を含むことができる。例示を目的として、ミュージックプレーヤがプログラムするより遥かに頻繁に読み出しを行うであろうということを考慮する。従って、ミュージックプレーヤは、プログラミング中に補償を提供することができる。その一方で、デジタルカメラは、より頻繁にプログラムし得るから、読み出しプロセス中に補償プロセスを提供するのがより適切である。図28のステップ1302で、ホストはそのプリファランスをコントローラに知らせる。すなわち、ホストは、既知のプロトコルを使用するコントローラに自身が補償を何時実行することを望むかを伝えることができると知るように事前プログラムされる。ステップ1304で、コントローラは、ホストからプリファランスを受け取って、ホストから受け取ったそのプリファランスに基づいて補償フラグ(メモリセルまたは他の記憶装置に記憶される)をセットする。
【0132】
図29はメモリシステムを設定するための他の1つの実施形態のフローチャートを提供する。ステップ1320で、メモリシステムがホストに組み込まれる。ステップ1332で、ユーザはプリファランスを選択することができる。一実施形態では、ユーザは、機械的スイッチを動かすことによってあるいはホストのユーザインターフェイスでプリファランスを選択することによってプリファランスを選択する。例えば、デジタルカメラのユーザは読み出し中に補償を行うことを選択することができ、ミュージックプレーヤのユーザはプログラミング中に補償を行うことを選ぶことができる。ステップ1334で、ホストはそのプリファランスをコントローラに知らせる。ステップ1336で、コントローラは、ホストから受け取られたプリファランスに基づいて補償フラグをセットする。
【0133】
図30は、メモリシステムを設定するためのプロセスの他の1つの実施形態を記述するフローチャートを提供する。ステップ1330で、メモリシステムはホストに組み込まれる。ステップ1332で、コントローラはホストが身元を明らかにすることを要求する。例えば、ホストは、自身がデジタルカメラ、ミュージックプレーヤ、PDA、携帯電話機などであることを示すことができる。コントローラは、ステップ1334でその情報を受け取ってホスト情報のテーブルにアクセスする。テーブルは、各々のモデルまたはタイプの装置について補償フラグをどのようにセットするかを明らかにする。そのテーブルとホストから受け取られた情報とに基づいて、コントローラは設定を選択する(例えば、読み出し中に補償を行うか、それともプログラム中に補償を行うかを選択する)。ステップ1336で、コントローラは、ステップ1334で決定された設定に基づいてフラグを適宜セットする。
【0134】
図31は、メモリシステムを設定するためのプロセスの他の1つの実施形態を記述するフローチャートである。ステップ1360で、メモリシステムはホストに組み込まれる。ステップ1362で、ホストは複数のファイルをメモリシステムに格納させる。所定量の時間の後、所定量のファイルがメモリシステムに格納された後、あるいはホストまたはユーザからのコマンドに基づいて、コントローラはステップ1364でメモリシステムに格納されている最も代表的なファイルタイプを判定する。例えば、10個のファイルが格納されていて、そのうちの8個がミュージックファイルであるならば、コントローラは、最も代表的なファイルがミュージックファイルであると判定する。ステップ1366で、コントローラは、代表的ファイルタイプに基づいて設定を決定する。例えば、ファイルタイプを記録したテーブルをメモリシステムに格納することができ、各ファイルタイプについての補償フラグのために1つの値が格納される。フラグの値は、補償をプログラミング中に行うかそれとも読み出し中に行うかを示すことができる。ステップ1368で、コントローラは、ステップ1366で決定された設定に基づいて補償フラグをセットする。
【0135】
隣接するセルの中の電荷に起因する摂動についてのプログラミング中の補償
セル間のフローティングゲート結合(「ユーピン効果」)
前述したように、1つのメモリセルの電荷蓄積素子の中にプログラムされた電荷は、隣接するメモリセルの電界を乱す電界を生じさせる。これは、本質的に電荷蓄積素子を有する電界効果トランジスタである隣のメモリセルの特性に影響を及ぼす。特に、感知されるときには、メモリセルは、乱され方の程度がより低いときよりも高いしきい値レベルを有する(あるいはより多くプログラムされている)ように見える。
【0136】
一般的に、1つのメモリセルが第1の界環境下でプログラム−ベリファイされて、隣接セルが後に異なる電荷でプログラムされたために後に異なる界環境下で再び読み出されるならば、「ユーピン効果」と称される隣接するフローティングゲート間の結合により読み出し精度が影響を受けるかもしれない。半導体メモリにおいて集積化がますます進むと、メモリセル間の蓄積された電荷に起因する電界の摂動(ユーピン効果)は、セル間の間隔が縮むに連れてますます明らかになってくる。
【0137】
読み出し中のBL−BLおよびWL−WLユーピン効果についての補正
前のセクションに記載されたように、1つの方法は、読み出し操作中にBL−BLユーピン効果を補償することである。それは、隣接するビット線上のセルのプログラム済み状態が始めに留意されて、現在のビット線上の現在のセルを読み出すときに適切な補償を行うために使用される、ルックアヘッド(「LA」)手法である。隣接するセルのデータを読み出すために、現在のセルのビット線で付加的な感知が行われる。隣接するビット線上の検出されたデータに基づいて、現在のセルを感知するときに適切な量の補償が使用される。
【0138】
読み出し中のWL−WLユーピン効果についての補正は、本質的に、ルックアヘッド(「LA」)読み出しと称されているものである。LA読み出し方式は、その全体が本願明細書において参照により援用されている、米国特許第7,196,928号と(特許文献21)、2006年10月に公開された「Read Operations For Non-Volatile Storage That Includes Compensation For Coupling」という米国特許出願公開第2006/0221714号(特許文献22)とに開示されている。LA補正を伴う読み出しは、基本的に、隣接するワード線上のセルにプログラムされたメモリ状態を調べ、現在のワード線上の読み出されつつあるメモリセルに対してそれらが持つ摂動効果を補正する。ページが前述した好ましいプログラミング方式に従ってプログラムしているのであれば、隣接するワード線は現在のものの直ぐ上のワード線からのものである。LA補正方式は、隣接するワード線上のデータが現在のページの前に読み出されることを必要とする。
【0139】
代わりの直接LA方式(「DLA」:Direct LA scheme)が、その全体が本願明細書において参照により援用されている2006年3月17日に出願された「System For Performing Read Operations On Non-Volatile Storage With Compensation For Coupling」という米国特許出願第11/377,972号(特許文献23)に開示されている。DLA方式も、隣のワード線上の隣接するセルのプログラム済み状態を考慮に入れることによって現在のワード線におけるセルの読み出しに対して補正を行う。読み出し中に現在のワード線を単にバイアスする代わりに、補正は、結果として生じるフローティングゲート結合がWL−WLユーピン効果エラーを相殺するように、隣接するワード線をバイアスすることによって成し遂げられる。
【0140】
読み出し中にユーピン効果を補正することは可能であるけれども、メモリがセルあたりにますます多くのメモリ状態をサポートするとき、操作はますます厄介になる。2ビットまたは4状態のメモリでは、現在のワード線上のページのプログラム済み状態を判定するために既に少なくとも3回の読み出しがある。補償を行うために隣のワード線上のデータが使用されるならば、隣のワード線上のページも読み出されなければならない。それゆえ、現在のワード線上の現在のページを読み出すことは、隣のワード線上の隣のページを読み出すことも必要とする。
【0141】
プログラミング中のユーピン効果の補正
多くの点で、プログラミング性能を犠牲にしてではあるけれどもプログラミング中にユーピン効果を補正するのが好ましい。多くの記憶装置は、いったんデータがプログラムされた後はほとんどあるいは全く更新されることなくそれが多数回読み出されるという仕方で使用される。従って、装置の総合的性能は、補正という重荷をプログラミング側に移すことによって最善にされる。
【0142】
ユーピン効果は隣接するセルにより強く影響を及ぼし、それはメモリアレイの1つの行に沿うビット線を横断することがあり(BL−BLユーピン効果)、また1つの列に沿うワード線を横断することがあり得る(WL−WLユーピン効果)。それは、セルにとっての界環境の、プログラム−ベリファイの時点と隣接するセルがプログラムされた後の読み出しの時点との間での非対称性を最小にすることによって、軽減される。
【0143】
プログラミング中にユーピン効果を減少させる方法がいくつかある。1つの方法は、1つのワード線に沿う1ページのメモリセルのためのプログラミングが2以上のパスで完了させられるマルチパスプログラミングを行うことである。通例、少なくとも2つのプログラミングパスが実行される。第1のパスは、ページ中の全セルをそれらのそれぞれのターゲット状態の近くへ、ターゲット状態について普通はそれであるべきものより低くオフセットしている対応するベリファイレベルを用いて、プログラムする。次のパスは、そのようなオフセットを伴わない標準のベリファイレベルを用いてプログラミングを完成させる。セルに対するユーピン効果は、セルのプログラミング後の隣のものの変化(すなわち、プログラミング)によって与えられるに過ぎない。次のパスがフローティングゲート間の電荷の最小限の変化を伴って実行されるときには、プログラム−ベリファイ操作とその後の読み出し操作との間に界環境の最小限の非対称性があり得る。従って、ユーピン効果は2パスプログラミング手法で最小にされる。この手法は、BL−BLユーピン効果を最小にすることができる。後述されるように、それは、ワード線からワード線へとプログラムしてゆくときに2パスが特定の順序で実行されるならば、WL−WLユーピン効果を減少させることもできる。
【0144】
前述した最低2パスのプログラミング方式の1つの不利な点は、各々のプログラミングが、データが適切になる前に少なくとも2パスを必要とすることである。換言すれば、データは、最終パスが完了するまでは有効ではなく、従って有用ではない。
【0145】
1つの代わりのマルチパスプログラミング方式は、全ビットが適切になるまで各パスが1つの付加的なビットを漸次プログラムするようにマルチビット符号化を採用することである。このようにして、各パスは、マルチビットデータの少なくとも1ビットをプログラムすると共に、セルにプログラムされたマルチビットデータが有効になる前に全パスを完了させることを必要とせずに有用なデータを格納することができる。BL−BLユーピン効果を減少させるために、バイナリプログラミングの各パスの間の電荷の大きな変化を避ける符号化が使用される。そのような特性を有する1つの好ましい符号化は、図14と関連して前に記載された「LM」符号化により与えられる。LM符号化は、各パスが1ビットのデータを格納することを効果的に可能にするけれども、ユーピン効果をおよそ50%減少させるだけである。
【0146】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされた摂動を引き起こす電荷にもかかわらず正しいターゲット状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによって、セルの所与のターゲット状態へのプログラム中に補償される。
【0147】
これは、隣接するメモリセルのメモリ状態を前もって判定し、プログラムされるメモリセルのターゲット状態と隣接するメモリセルのメモリ状態との関数としてベリファイレベルを調整することによって成し遂げられる。この方式は、プログラミングが単一パスで完了させられるという利点も有する。
【0148】
図32は、プログラミング中にデータ依存ベリファイレベルを用いてユーピン効果を補償する方法を示す流れ図である。これは、本質的に、データ依存ベリファイレベルを使用するワンパスプログラミング方式である。
ステップ1400:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング電圧を1グループのメモリセルに並行して印加する。
ステップ1410:ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイする。
ステップ1420:グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ1430:所与のターゲット状態にプログラムされるべきメモリセルは全てベリファイされたか?そうであるならば、ステップ1440に進み、そうでなければ、ステップ1400に進む。
ステップ1440:所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【0149】
図33は、本発明を説明するのに適するメモリアレイの一部分を示す。例えば、1つのワード線WLnにより接続される1ページのメモリセルが並行してプログラムされる。メモリセル1460などの、ページ中のセルのうちの任意の1つに対するユーピン効果は、大部分は、プログラムされるメモリセル1460の近隣の隣接するセルの後のプログラミングにより与えられる。特に、ワード線WLnに沿って、左側の隣のものはセル1472であり、右側の隣のものはセル1474である。同様に、プログラムしているセル1460はビット線BL2を介してセンスアンプ(図示せず)に結合されている。ビット線BL2に沿って、プログラム中のセル1460の下の、ワード線WLn−1上の隣のものはセル1482であり、上のWLn+1ワード線上の隣のものはセル1484である。
【0150】
メモリセル1460の隣のものは可能なメモリ状態のうちの任意の1つにあることができて、各々が異なる量の電荷をその電荷蓄積素子に有し、従って異なる量の摂動を主張する。隣のものが4つある場合には、摂動の範囲は、これらの隣のものにおける可能なメモリ状態の順列により与えられる。一般的に、当面の問題に関連のある隣のものは、メモリセル1460がプログラミングを終えた後にプログラムされるものだけである。実際問題として、メモリセル1460により見られる摂動の量、従って補償レベルの数を扱いやすい数に量子化することが好ましい。例えば、補償レベルの数を1ビットにより符号化することができ、この場合、「0」は無補償を意味し、「1」は所定のレベルの補償を意味することができる。他の1つの実施形態では、4つに及ぶ可能な補償レベルを表すために2ビットが使用され得る。
【0151】
現在のワード線WLnに印加される所定のオフセットベリファイレベル
一実施形態では、ベリファイは、プログラム−ベリファイされるべきメモリセルに関連付けられたワード線に印加される所定のオフセットベリファイ電圧レベルで感知することによって実行される。例えば、図33を参照して、メモリセル1460がプログラム−ベリファイされるならば、所定のベリファイ電圧レベルがWLnに印加される。
【0152】
図34は、隣接する電荷に起因する摂動を補償するためにプログラミング中にWLn上のベリファイレベルを調整することを示す。この例は、1ビットにより符号化される2つの可能な補償レベルを示す。隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない。従って、ベリファイ感知中にWLnワード線に印加されるベリファイ電圧レベルは、セル1460などのセルをターゲット状態にプログラムするのに適切な標準のV(ターゲット状態)と同じである(補償符号「1」)。一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、標準ベリファイレベルを所定のオフセット電圧ΔVだけ低くオフセットさせることによって補償が行われる、すなわち、V−ΔVの電圧がWLnに印加される(補償符号「0」)。オフセットΔVは、ΔV(隣接状態)により示される隣接状態の関数である。図34の例はNANDメモリに関連し、そこではWLnはNANDチェーンの中の選択されたワード線であって(図2を参照)、選択されていないワード線の残りには、ベリファイ操作中、電圧Vpassが印加される。WLn−1およびWLn+1は、WLnに隣接する選択されていないワード線のうちの2つとして示されている。
【0153】
一般的に、オフセットは、それにプログラムされるべきターゲット状態に依存する隣のものからの摂動の量がどれほどかの関数である。プログラム済み状態が多いほど、より多くの電荷および摂動がある。オフセットを、工場におけるメモリチップの初期試験および品質認定により前もって定めることができる。
【0154】
図32の例は1ビット補償方式を示しているが、2ビット補償方式などのより精細な方式も可能である。2ビットの場合には、WLnに印加され得る4つの可能な電圧レベル、すなわちV、(V−ΔV1)、(V−ΔV2)および(V−ΔV3)がある。
【0155】
図35は、ワンパスデータ依存ベリファイレベルが現在のワード線にだけ印加される図32に示されているベリファイステップの一実施形態を示す流れ図である。ベリファイステップ1410は、
ステップ1412:ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイすることと、
ステップ1414:ベリファイは、ベリファイされるメモリセルのワード線上の所定のベリファイレベルにより与えられる電圧を用いて感知することを含むということとを含む。
【0156】
プログラムされるべきメモリセルがNANDチェーンの一部であるならば(図2を参照)、所定のベリファイレベルは、プログラムされるメモリセルに関連付けられたワード線に印加される。チェーン中の他の全てのメモリセルは、それらをオンに転換させるために、それらに関連付けられたワード線にパス電圧Vpass(遠くのドレイン側にあるセルはVddであり得る)を印加される。
【0157】
1ビット補償方式では、ページの全セルのコントロールゲートが同じワード線WLnを共有するので、プログラミング中のベリファイは、1つの所与のターゲット状態についてページに対して2回実行されなければならない。ページ中の、その隣のものが補償を必要としないセルのためには、標準ベリファイ電圧レベルVがWLnに印加される。補償を必要とするセルのためには、オフセットベリファイ電圧レベルV−ΔVがWLnに印加される。
【0158】
他の実施形態では、より多くの補償レベルが考えられるということが理解されるべきである。いろいろなレベルは1つより多いビットにより符号化され、ベリファイ操作は、いろいろな補償レベルを有するページのいろいろな部分集合に対して実行されなければならない。プログラミングを受けるセルのための補償レベルが決定されると、それはベリファイ操作中に使用されるべくセルの同じ列または感知回路にラッチされる。前述したように、ベリファイできないセルは次のプログラミングパルスによるさらなるプログラミングを受けさせられ、ベリファイされたものはさらなるプログラミングを受けないようにプログラム禁止にされる。
【0159】
プログラミング中にベリファイレベルをターゲット状態と隣接するメモリセルの前もって判定されたメモリ状態との関数として、調整することにより、隣接するセル上の現存するあるいは予想される電荷に起因するユーピン効果は本質的に1プログラミングパスで補償される。全セルを第1のパスでそれらのターゲット状態の近くにプログラムし、その後に、好ましくは隣接するセルがプログラムされた後にプログラミングをさらなるパスで完了させる必要はない。実際には、プログラミングは、性能を高めるために好ましくは2以上のフェーズ(例えば、粗大/精密フェーズ)を採用し得るけれども、ユーピン効果を減少させるために2つの別々のパスを完全に異なる時点で実行する必要はない。シングルパスのプログラミングは、最大のプログラミング性能と、ワード線からワード線へのより簡単なプログラミングシーケンスとを考慮に入れる。
【0160】
より低いオフセットベリファイレベルを用いる操作に伴う問題点
シングルパスプログラミング方式あるいはマルチパスプログラミング方式のいずれの場合にも、パスのうちの少なくとも1つにおいてベリファイレベルはより低くオフセットされなければならない。低すぎるベリファイレベルを使用することには問題が生じるかもしれない。
【0161】
一般的に、隣のものからのユーピン効果に起因するセルの摂動は、セルの見かけ上のしきい値レベルを高めるという効果を有する。換言すれば、セルは、ユーピン効果なしの場合より多くプログラムされているように見える。従って、ユーピン効果を考慮に入れるときにはベリファイレベルは標準より低くなければならない。2パスプログラミング方式では、特にそうである。第1のパスは完全にユーピン効果の影響を受け、第2の仕上げパスは、ユーピン効果の影響がより少なくて、ベリファイし得る。従って、最悪の場合のユーピン効果に起因する「過剰プログラミング」を回避すると共に、メモリセル間でしきい値レベルの集団のために密な分布を保証するために、第1のパスのベリファイレベルは標準より低くオフセットされなければならない。しかし、次の説明から分かるように、オフセットは1Vほどの低さかあるいはそれ以上であり得る。これは、感知中に操作上の難点を引き起こすかあるいは1つのメモリセルがサポートし得るメモリ状態の数を制限することがある。
【0162】
図36Aは、1つのしきい値ウィンドウ内で4つの別々のクラスタをなして分布する4つのメモリ状態をサポートするメモリセルの典型的な集団の例を示す。各クラスタは、4つのメモリ状態のうちの1つを有する集団メモリセルを表す。この例は、−2.5Vから4Vに及ぶしきい値ウィンドウを示す。一般的に、しきい値ウィンドウの下限は、負の電圧で感知するセンスアンプの能力により決まる。その一方で、しきい値ウィンドウの上限は、高電圧トランジスタの降伏電圧と、大量の電荷を保持するためのフローティングゲートの劣化とにより決まる。
【0163】
図36Bは、現在感知されているセルのプログラム済みしきい値レベルに対する高くプログラムされた隣接するセルの影響を示す。これは、現在のセルの知覚されるしきい値レベルを高めるユーピン効果である。例えば、高くプログラムされた隣のものは、その電荷蓄積素子(例えば、フローティングゲート)に相当の量の電荷をプログラムされ、その隣接する電荷の影響は、感知される現在のセルのフローティングゲートに結合する。各々の隣のものは、現在のセルの知覚されるしきい値レベルを350mVも高め得る。セルが、その直ぐ隣のものの4つ全て(左、右、上および下)により乱されるならば、それは、知覚されるしきい値レベルを1V超高め得る。従って、その隣のもののプログラム済み状態により、各セルの見かけ上のしきい値レベルは、ゼロからある最高ボルト数までの範囲内でシフトされ得る。各クラスタに対する正味の効果は、その末尾がより高いボルト数のほうへ散開させられるということである。
【0164】
図37Aは、感知される現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。この例は、感知される現在のセルが状態「A」にあるメモリセルの集団に属することを示している。集団1502は、いかなる隣接摂動にもさらされないメモリセルを表す。隣接するビット線上の隣のものの両方が後に最もプログラムされた状態にプログラムされることにより集団のいくつかのセルが乱されるときに1502の末尾は1504へ変更される(BL−BLユーピン効果)。同様に、次のワード線(WLn+1)上の隣のものが後に最もプログラムされた状態にプログラムされることによって集団のいくつかのセルが乱されるときにも1504の末尾はさらに1506へ変更される(WL−WLユーピン効果)。従って、BL−BLユーピン効果およびWL−WLユーピン効果の両方の組み合わせが、セルをより高いしきい値電圧レベルを有するように見えさせ得るということが分かる。例えば、最悪の場合のBL−BL効果はしきい値電圧を250mVシフトさせることができ、一方の隣のものからの最悪の場合のWL−WL効果はしきい値電圧を350mV、両側からならば700mV、シフトさせることができる。その組み合わせは600mVから約1Vにおよび得る。
【0165】
前述したように、ユーピン効果にさらされたメモリセルの見かけ上のしきい値レベルの上昇に起因して「過剰プログラム」しないために、マルチパスプログラミングの第1のパスのためのベリファイレベルは、最悪の場合のユーピン効果を実質的に含むオフセット1512だけ低くセットされる。従って、第1のプログラミングパスについて、高くプログラムされた隣接するセルに起因して知覚される高められたしきい値レベルにより明らかにされる現在のセルの起こり得る「過剰プログラミング」を避けるために、第1のパスのためのベリファイレベルは1Vも低くオフセットされなければならないかもしれない。
【0166】
図37Bは、ユーピン効果を減少させるための、マルチパスプログラミングの第1のパスのためのベリファイレベルのシフトを示す。例えば、2つのパスがあって最終のパスが状態「A」、「B」および「C」のためにそれぞれ標準ベリファイレベルV2a、V2bおよびV2cを使用するならば、これらのターゲット状態の各々へのプログラミングのための対応する第1のパスのベリファイレベルV1a、V1bおよびV1cは、所定量だけ低くオフセットされ得る。例えば、V1aはV2aから所定量1512(図37Aも参照)だけ低くオフセットされる。
【0167】
マルチパスプログラミング方式において第1のパスのベリファイレベルをオフセットさせることと、シングルパスプログラミング方式においてユーピン効果を補償するために使用される低いほうのベリファイレベルをより小さな程度にオフセットさせることとは、消去済み状態「E」についての問題を引き起こす。一般的に、なるべく多くの別々の状態をはめ込むためにしきい値ウィンドウの広さを最大にするために、消去済み状態はしきい値ウィンドウの下端の限界に置かれる。前に説明されたように、この限界は、負電圧で感知するセンスアンプの能力により制御される。例えば、下限は、図に示されているように−2.5Vであり、実際問題として、消去済み状態の、明瞭に画されかつしっかりと制御される分布を持つことが好ましい。通例、それは、より密な分布を形成するための消去後のソフトプログラミングにより成し遂げられる。ソフトプログラミングは、消去済み状態のための所定のレベルに関してのプログラム−ベリファイを必要とする。しかし、オフセットした第1のパスのベリファイレベルが必要であれば、そのオフセット1510はベリファイレベルをしきい値ウィンドウの下限を超えてシフトさせるかもしれない。オフセットを限界内に保つために全てのクラスタをより正の端のほうへシフトさせることが可能ではあるけれども、それはしきい値ウィンドウの有効範囲を狭める。
【0168】
隣接ワード線をバイアスすることによるベリファイレベルの仮想オフセット
本発明の他の1つの態様に従って、調整されたベリファイレベルでプログラム−ベリファイされるときに、隣接するメモリセル中に後にプログラムされる摂動を引き起こす電荷に関わらず正しいターゲット状態がセルから読み出されることとなるように隣接ワード線を適宜バイアスすることによって、ベリファイレベルの調整が仮想的に成し遂げられる。これは、プログラムされるセルのベリファイレベルに現実のオフセットを使用することを回避し、これにより、最低メモリ状態をベリファイするときに負電圧感知を必要とするようにベリファイレベルを低くシフトさせすぎるかもしれないという問題を回避するという利点を有する。
【0169】
前に図36Aおよび36Bに関連して説明したように、より低くオフセットされたベリファイレベルを使用することは望ましくない。本発明のこの態様は、隣接するワード線WLn+1を適切にバイアスすることで同じ効果を達成することによって、標準より低いベリファイレベルを使用するという問題を回避する。
【0170】
図38は、好ましい実施形態に従う、標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受けるワード線上の標準ベリファイレベルと隣接するワード線をバイアスすることとの組み合わせを示す。この例は、NANDメモリに使用される1ビットにより符号化される2つの可能な補償レベルを示す。特に、WLnはNANDチェーンの中の選択されたワード線であり(図2を参照)、選択されていないワード線の残りには、ベリファイ操作中に電圧Vpassが印加される。
【0171】
隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない(補償符号「1」)。従って、ベリファイ感知中にWLnワード線に印加されるベリファイ電圧レベルは、セル1460などのセルをターゲット状態にプログラムするのに適切な標準のV(ターゲット状態)と同じである(補償符号「1」)。同時に、チェーン内の選択されていないワード線の残りには、ベリファイ操作中に電圧Vpassが印加される。WLn−1およびWLn+1は、WLnに隣接する選択されていないワード線のうちの2つとして示されている。特に2つの電圧のうちの1つ、V0=VpassがWLn+1に印加される。
【0172】
一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、補償が必要とされる(補償符号「0」)。この場合、V0より低いV1がWLn+1に印加される。V1は、図34に示されている補償符号「0」のための設定と事実上同様の効果を有することとなるように、前もって決められる。しかし、標準ベリファイレベルをより低くオフセットさせてそれをWLnに印加する(補償符号「0」)。同等の方式は、より低くオフセットされたVpassであるV1をWn+1に印加することである。
【0173】
従って、1ビット補償では、ワード線電圧設定は標準ベリファイ操作と同様であり、補償が不要であるときには隣のワード線WLn+1にV0=Vpassが印加され、補償が必要なときには隣のワード線にV1が印加される。電圧V1をVpass−ΔV’と見なすことができ、ここでΔV’は、図34に示されているWLnにおける標準ベリファイレベルに対する仮想オフセットの効果を生じさせるための余分なバイアスである。好ましくは、隣接するワード線上の電圧は、補償を伴うセルのベリファイ中のより低い電圧V1から、無補償の他のセルのベリファイ中のより高い電圧V0へ高められる。
【0174】
図39は、ワンパスデータ依存ベリファイレベルが現在のワード線と隣接するワード線との両方に印加される、図32に示されているベリファイステップの他の1つの好ましい実施形態を示す流れ図である。隣接するワード線(例えば、WLn+1)に対するバイアス電圧の付加的な印加は、現在のワード線(例えば、WLn)に印加されるベリファイ電圧レベルを仮想的にオフセットさせるという効果を有する。これは、前述したベリファイ電圧を低下させることに関連する不利益を回避する。実際に、仮想オフセットの効果は、WL−WL結合効果についてのメカニズムを真似、従ってWL−WL結合効果を調整することに関して、より精密である。
ステップ1530:ワード線およびビット線によりアクセスされ得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1540:1グループのメモリセルが並行して所与のターゲット状態にプログラムされるように指定する。
ステップ1550:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループのメモリセルに並行して印加する。
ステップ1560:所与のターゲット状態の第1の関数である所定のベリファイ電圧レベルを、グループのメモリセルにアクセスするワード線に印加する。
ステップ1562:ベリファイされるメモリセルに隣接するメモリセルのターゲット状態の第2の関数である所定のバイアス電圧レベルを隣接するワード線に印加する。
ステップ1568:プログラムされるメモリセルのグループをベリファイするために感知する。
ステップ1570:所与のターゲット状態にプログラムされたとベリファイされたグループの中のメモリセルのさらなるプログラミングを禁止する。
ステップ1580:所与のターゲット状態にプログラムされるべきメモリセルが全てベリファイされたか?そうであるならば、ステップ1590に進み、そうでなければ、ステップ1540に進む。
ステップ1590:所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【0175】
WL−WLユーピン効果を半分だけ減少させるための好ましいプログラミング方式
隣接するワード線上のメモリセル間に摂動が生じるWL−WLユーピン効果に関して、それは、好ましいプログラミング方式を用いてプログラミング中に軽減される。これは、実際上、摂動を半分だけ減少させる。残りの半分も、前述したプログラミング操作中または読み出し操作中に種々の補償方式のうちの1つまたはそれらの組み合わせを用いて訂正され得る。
米国特許第6,781,877号(特許文献24)は、WL−WLユーピン効果がメモリアレイ中のページを最適な順序でプログラムすることによっても減少させられるプログラミング方式を開示している。
【0176】
1つの好ましいプログラミング方式は、ワード線に関連付けられているページを最適な順序でプログラムさせる。例えば、どの物理的ページも1ページのバイナリデータを保持するバイナリメモリの場合には、ページは、好ましくは、例えば下から上へなどの終始一貫した方向に沿ってシーケンシャルにプログラムされる。この方法では、特定のページがプログラムされるときに、その下側のページは既にプログラムされている。それらがどんな摂動を引き起こす効果を現在のページに及ぼすとしても、それらは、現在のページがプログラム−ベリファイされるときにそれらの摂動を考慮して償われる。本質的に、ページをプログラムする順序は、プログラムされる現在のページが、それがプログラムされた後には、その環境に最小限の変化を見ることを可能にするべきである。従って、各々のプログラム済みページはその上側のページによってのみ乱され、WL−WLユーピン効果は、このプログラミング順序によって実際上半分に減少させられる。
【0177】
メモリセルの各物理ページが多状態で、結果としての複数の論理データページが別々のパスでプログラムされるメモリの場合には、順序はあまり単純ではない。例えば、4つのメモリ状態を符号化する2ビットメモリでは、1つのワード線に関連付けられた各物理ページは、各セルからの2ビットデータの単一のページまたは2つの別々の論理ページ(それぞれ各セルからの1ビットデータの下側および上側ビット)と見なされ得る。従って、各セルが、2ビット符号に対応する4つの状態のうちのそのターゲット状態に直接プログラムされて、物理ページがプログラムされ得る。あるいは、2つのビットの各々は、始めに下ビットのページで、その後に上側ビットのページで別々にプログラムされ得る。各物理ページの論理ページが別々にプログラムされるときには、修正された最適順序が可能である。
【0178】
図40は2ビットメモリセルを有するメモリの例を示し、そのページは、隣接するワード線上のメモリセル間のユーピン効果を最小にするように最適な順序でプログラムされる。便宜上、表示法は、物理ページP0,P1,P2・・・がそれぞれワード線W0,W1,W2・・・上に存在するような表示法である。2ビットメモリでは、各物理ページには2つの論理ページ、すなわち、各々バイナリデータを有する下側ビット論理ページおよび上側ビット論理ページが関連付けられる。一般的に、論理ページはLP(ワード線、論理ページ)により与えられる。例えば、W0上のP0の下側ビットページおよび上側ビットページはそれぞれLP(0.0)およびLP(0.1)と称され、W2上の対応するものはLP(2.0)およびLP(2.1)と称される。
【0179】
本質的に、論理ページのプログラミングは、プログラムされる現在のセルが、それがプログラムされた後にその環境に最小限の変化を見ることとなるように順序nに従う。この場合にも、下から上への1つの終始一貫した方向にインクリメンタルに移動することは、1つの側からの摂動を除去するのに役立つ。さらに、各物理ページが2つのプログラミングパスを持ち得るので、プログラミングが低いほうの物理ページから上のほうへ移動してゆくときに、現在の上側ビットページは、それに隣接する下側ビットページが既にプログラムされ終わったためにそれらの摂動を引き起こす効果が現在の上側ビットページをプログラムするときに償われることとなった後に、プログラムされるのがよい。従って、プログラミングがLP(0.0)から始まるならば、順序は、ページプログラミング順序、0,1,2・・・n・・・により指定されるとおりであり、それはLP(0.0),LP(1.0),LP(0.1),LP(2.0),LP(1.1),LP(3.0),LP(2.1)・・・をもたらす。
【0180】
データ依存ベリファイレベルを用いてプログラムするための隣接状態の判定
図24に関して前述したように、プログラム−ベリファイ中のBL−BLユーピン効果についての好ましい補償方式は、プログラム−ベリファイレベルを隣接状態のプログラム済み状態に応じて調整することである。プログラムされるセルの列またはビット線に隣接状態を伝えるために、各々の隣のもののビット線は、各々の隣のもののプログラム済み状態に依存する所定の電圧にセットされる。この所定の電圧は、プログラムされるセルのビット線において行なわれる付加的な感知で検出され、その後にプログラム−ベリファイレベルをオフセットさせるために使用される。
【0181】
プログラミング中のWL−WLユーピン効果についての補償の場合には、プログラム−ベリファイレベルを適宜オフセットさせるために、隣接するワード線についてのプログラム済み状態またはデータが取得されて、ベリファイを受けるセルのベリファイ回路または感知回路に利用可能にされなければならない。
【0182】
例えば、メモリアレイ中の底のワード線から開始するなどの好ましい順序でプログラミングが行なわれるならば、現在プログラムされているワード線に関して、先行するワード線は既にプログラムされている。先行するワード線からのデータのページは、単に読み出されて、対応する列ラッチにラッチされ得る。しかし、図40に関連して記載された好ましいプログラミング順序が遵守されるならば、先行するワード線からのユーピン効果は既に留意されていて、補償を計算するためにそのデータを得る必要はない。
やがてプログラムされるべき次のワード線内のデータについては、それを取得するためのいくつかの可能性がある。
【0183】
図41は、図5に示されている記憶装置と通信するホストを示す。記憶装置はメモリチップ298とコントローラ610とを含む。メモリチップ298は、メモリアレイ300と、センスアンプ、データラッチ394、I/O回路などの周辺回路と、オンチップ制御回路310とを含む。オンチップ制御回路310は、メモリチップの動作を制御する。多くの実施例において、ホスト10はコントローラ350を介してメモリチップ298と通信して相互に作用する。
【0184】
コントローラ350は、メモリチップと協力し、より高いレベルのメモリ動作を制御し管理する。例えば、ホスト書き込みに関して、ホスト10はデータが1ページずつメモリアレイ300に書き込まれるべきことを要求する。その後、データの各ページはコントローラ350に送られ、これは、それをデータラッチ394に、メモリアレイにプログラムされるように、集結させる。1つの実施例では、少なくとも2ページのデータがコントローラ350により受け取られてコントローラRAM352にバッファされる。第1のページがワード線WLn内の現在のページにプログラムされるべくデータラッチ394にラッチされているときに、ワード線WLn+1内の次のページにプログラムされるべく意図されている次のページのデータが評価されて、高度にプログラムされた状態に対応するものは、符号化された補償レベルとしても、対応するデータラッチにラッチされる。好ましい実施例では、各列に関連付けられたロジックおよびプロセッサは、本発明の種々のベリファイ方式でプログラミング操作を行うために状態マシンと協力する。
【0185】
図42は、次のワード線のためのデータのページを得るための他の1つの手法を示す。不揮発性メモリアレイ300の一部分が正規部分302とバッファ部分304とに分割される。メモリアレイの正規部分302は、通例、マルチビットデータを記憶する。その一方で、バッファ部分304内のメモリセルは、好ましくは、バイナリデータを記憶するように構成される。このようにすれば、バイナリデータは、相対的に高速に、ユーピン効果を補正する必要なく、バッファ部分にプログラムされ得る。好ましくは、データが最初にメモリに書き込まれるときに、それは最初にバッファ部分304に書かれる。後に、適切なときに、バッファ部分304からのデータが正規部分302にコピーされ得る。正規部分302にプログラムされるべきデータはバッファ部分304から容易に読み出され得るので、現在のページがプログラムされつつあるときに次のページのためのデータも、プログラム−ベリファイ中の補償についての考慮のために利用可能である。
【0186】
消去済みメモリ状態のための隣接するセル内の電荷に起因する摂動の補償
前述したように、データのページが、例えば下から上へなどの一定のワード線順序でプログラムされつつあるときに、下側の隣接ワード線WLn−1は、現在のワード線WLnより前にプログラムされるので現在のワード線のセルに対してユーピン効果を及ぼさない。従って、ベリファイレベルについて調整するときに、前にプログラムされたワード線WLn−1は考慮されなくてもよい。
【0187】
しかし、消去済み状態に留まるメモリセルについては、WLn−1上のプログラム済みセルでさえもWLn上の消去済みセルに対してユーピン効果を及ぼす。換言すれば、上Wn+1および下Wn−1にある隣接する隣のものの両方がWLn上のセルを乱す。それは、セルが常に消去済み状態に留まるならば、プログラムされるどの隣接する隣のものもセルがその状態になった後に存在するからである。従って、両方がセルの、それが消去されてからの界環境の変化に、寄与する。
【0188】
メモリは、通例、それらのしきい値レベルがしきい値ウィンドウの下端部に存する範囲に下がるように、そのセルを消去する。好ましい実施形態では、より深く消去されたセルを所定の区分しきい値レベルより下のより狭い範囲内にプログラムするためにソフトプログラミング操作が採用される。ソフトプログラミングは、所定の区分しきい値レベルに関してのベリファイと交互に行なわれる。このようにして、ソフトプログラミングとベリファイとは、消去済みセルの分布を所定の区分しきい値レベルの直ぐ下の所定の範囲に引き締めるのに役立つ。
【0189】
図43は、消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果によってどのように影響され得るかを示す。セルのワード線への所定のベリファイレベルVE の印加によって所定の区分しきい値レベル1610に関して消去済みセルがソフトプログラムされベリファイされた後に、引き締められた消去済み集団は密な分布1602により表される。前に論じられたように、WLn−1にあるページのプログラミングはWL−WLユーピン効果を導入して、分布1602の右尾部が、延びた尾部1604の場合のように、より高いレベルのほうへ広がるという結果をもたらす。同様に、WLnにあるページのプログラミングはBL−BLユーピン効果を導入して、分布1604の右尾部が、延びた尾部1606の場合のように、より高いレベルのほうへさらに広がるという結果をもたらす。最後に、WLn+1上のページをプログラムすることの効果は、右尾部を1606から延びた尾部1608へさらに広げる。
後にプログラムされた隣のものに起因して、いくつかの消去済みセルが、それらのしきい値レベルがプログラム済み状態領域までシフトされるほどに乱されることがあるということが図43から明らかである。
【0190】
本発明の他の1つの態様に従って、消去済みメモリセルは、それらが消去された後に好ましくは「ソフトプログラムされる」。この「ソフトプログラムされる」というのは、消去済みセルを消去済み状態とプログラム済み状態とを区別するための所定のしきい値に関して所定の範囲のしきい値レベルにプログラムすることを指す。これは、消去済みセルを所定のしきい値に関して交互にプログラムしベリファイすることにより成し遂げられる。隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷にもかかわらず正しい消去済み状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによってソフトプログラミング中に補償される。
【0191】
これは、プログラムされるセルのワード線の両側の隣接ワード線上のものを含む隣接するメモリセルのメモリ状態を前もって判定し、隣接するメモリセルのメモリ状態の関数であるオフセットで区分レベルを下げることによってベリファイレベルを調整することによって、成し遂げられる。
【0192】
図44は、全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。この場合、ベリファイレベルは、隣接するワード線WLn−1およびWLn+1の両方の上の隣接するセルと、隣接するビット線上の隣のものとの関数として調整される。ソフトプログラミング後、消去済みセルが図43において1602の左尾部および1626の右尾部により示される補正されていない分布と比べて引き締まったしきい値分布1630を有することが見られる。
BL−BLユーピン効果が黙許され得る1つの代わりの実施形態では、ベリファイレベルのためのオフセットの調整でWL−WLユーピン効果だけが補正される。
1つの好ましい実施形態では、ベリファイレベルのオフセットは、図38Aおよび図38Bに示されているものと同様の隣接ワード線のうちの1つ以上のバイアスによって仮想的に実行される。
【0193】
図45は、1つの好ましい実施形態に従う、両側補正を成し遂げるための隣接ワード線のバイアスを示す。ソフトプログラムされる消去済みセルがワード線WLn上にあるならば、図38Aに示されている方式と同様に標準ベリファイレベルVE がWLnに印加される。標準ベリファイレベルVE は、図43に関連して前に記載されたユーピン効果補正を考慮せずに消去済みセルの標準ソフトプログラミングに使用されるものである。
【0194】
WLnのどちらの側にも隣接するワード線があるので、好ましい実施例は、両方の隣接するワード線をバイアスすることである。各々の隣接するワード線がそれぞれ1ビットの「1」または「0」により表示される2つの電圧V0またはV1のうちの1つを持つことを許されるならば、両方の隣接するワード線は、2ビットにより表示される4つの可能な組み合わせを有する。それらの組み合わせの各々は、VE の異なる量の仮想オフセット、従って対応する量の補償レベルを与える。前に論じられたように、隣接するワード線が、値Vpassを有するV0にバイアスされるときには、それは標準の場合である。その一方で、隣接するワード線がV0より低いV1にバイアスされるときには、それはVE の仮想のより低いオフセットを生じさせるという効果を有する。従って、両方の隣接ワード線がV1にバイアスされれば最高の補償レベル(00)が達成される。次のより低い補償レベル(01)は、V1にある隣接ワード線WLn+1とV0にあるWLn−1とを有する。同様に、最小あるいは無補償レベル(11)は、共にV0にあるVLn−1およびWLn+1を有する。
【0195】
図46は、所定のしきい値レベルに関して明瞭に画定されたしきい値レベルの分布を有するメモリセルのグループを作ることの流れ図である。
ステップ1600:ワード線およびビット線によりアクセスし得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1610:消去済み状態の限界を定める所定のしきい値レベルを実質的に超えさせて1グループのメモリセルを消去する。
ステップ1620:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループの消去済みメモリセルに並行して印加する。
ステップ1630:グループのメモリセルにアクセスするワード線に所定のしきい値レベル電圧を印加する。
ステップ1632:第1の所定のバイアス電圧レベルを第1の隣接ワード線に印加し、第1の所定のバイアス電圧は第1の隣接するメモリセルのターゲット状態の第2の関数であり、第1の隣接するセルは第1の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ1634:第2の所定のバイアス電圧レベルを第2の隣接ワード線に印加し、第2の所定のバイアス電圧は第2の隣接するメモリセルのターゲット状態の第2の関数であり、第2の隣接するセルは第2の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ1638:所定のしきい値レベルに関してプログラムされたグループの消去済みメモリセルをベリファイするために感知する。
ステップ1640:ベリファイされたグループ中のメモリセルのそれ以上のプログラミングを禁止する。
ステップ1650:グループ中の全ての消去済みメモリセルがベリファイされたか?そうであるならば、ステップ1660に進み、そうでなければ、ステップ1620に進む。
ステップ1660:グループ中の全ての消去済みメモリセルが所定のしきい値レベルに関してプログラムされた。
【0196】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを用いるマルチパスプログラミング
前に論じられたように、ユーピン効果があると、プログラム済みセルは、その後の隣接セルのプログラム後に読み出されると見かけ上より高いしきい値レベルを伴ってより多く「プログラムされている」ように見える。これによって、同じ状態にプログラムされたセルについてのしきい値の分布が広がる。
【0197】
前の解決策は、プログラミングを2つ以上のパスで行うことである。第1のパスは、各セルをそのターゲット状態またはターゲットしきい値レベルの少し手前にプログラムすることである。第2のパスは、ターゲット状態までのプログラミングを完了させる。このようにすれば、プログラムされるセルに見える隣接界環境の、それが最後にプログラムされかつベリファイされた時点から隣接セルがプログラムされる時点までの変化は、最小になる。これは、選択されたワード線上のベリファイレベルを第1のパス中でより低くオフセットさせることによって成し遂げられる。次のワード線内のセルがプログラムされた後、分布を引き締めるために第2のパスプログラミングが加えられる。
【0198】
本発明の他の1つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも2パスで実行される。第1のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第2のパスは、標準ベリファイレベルでプログラミングを完了させる。第1のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに1つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【0199】
図47は、本発明の1つの一般的な態様に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
ステップ1700:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ1710:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第1のパスで1グループのメモリセルを並行してプログラムする。ここで、第1のパスにおけるプログラミングはステップ1714を含む。
ステップ1714:プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ1720:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【0200】
図48は、本発明の1つの好ましい実施形態に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。 ステップ1700:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ1710:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第1のパスで1グループのメモリセルを並行してプログラムする。ここで、第1のパスにおけるプログラミングはステップ1712、ステップ1714、ステップ1716、およびステップ1718を含む。
ステップ1712:プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧をグループに並行して印加する。
ステップ1714:プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ1716:グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ1718:グループ中の全てのセルがベリファイされたか?そうであるならば、ステップ1720に進み、そうでなければ、ステップ1710に進む。
ステップ1720:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【0201】
前に論じられたように、マルチパスプログラミングを用いることの利点は、ユーピン効果を減少させることができることである。マルチパスプログラミングは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを必要としないのでより簡単に実行できる。
【0202】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大/精密プログラミング
粗大および精密プログラミングステップの2フェーズでのプログラミング手法は、米国特許第6,888,758号に記載され、既に図20および図21にも関連して記載されている。プログラミング操作が2つのベリファイレベル、すなわちターゲットベリファイレベル(精密ベリファイレベルとも呼ばれる)および精密ベリファイレベルの前の粗大ベリファイレベルを用いることが分かる。粗大ベリファイレベルは、精密ベリファイレベルから所定のオフセットだけ低くオフセットされている。
【0203】
プロセスは、プログラミングプロセスの粗大フェーズを実行することから始まる。各粗大プログラミングステップの次に、粗大ベリファイレベルに関してのベリファイが続く。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルまでプログラムされたときに、メモリセルは精密プログラミングフェーズに入る。プログラミングは、ターゲットレベルを通り越さないように、遅くされる。これは、セルのビット線電圧を0ボルトよりは大きくて禁止電圧よりは小さい値に高めることによって成し遂げられる。一般的に、フルプログラミング効率を目的として、粗大フェーズ中と同様に、ビット線電圧はほぼ0ボルトである。その一方で、メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。精密プログラミングフェーズ中、ビット線電圧が0ボルトから中間値に高められるという効果に起因して、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さくなりやすい。メモリセルは、そのメモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまで精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達したとき、そのメモリセルのそれ以上のプログラミングを禁止するためにビット線電圧がVdd(または他の禁止電圧)に高められる。
【0204】
前の粗大/精密プログラミング手法は2つのベリファイレベルに関してのベリファイを必要とし、その第1のものはターゲットベリファイレベルより低い粗大ベリファイレベルである。粗大フェーズ中、これは、ベリファイされるメモリセルの選択されたワード線に実際の粗大ベリファイ電圧レベルを供給することによって成し遂げられる。NANDチェーンの場合、NANDチェーン内の他の全てのワード線は、通例、標準のVpass電圧にセットされる。精密フェーズ中、選択されたワード線はターゲットベリファイ電圧レベルそのものに高められる。
【0205】
本発明の他の1つの態様に従って、初めに、より粗大ではあるが速いプログラミングステップを用い、次に、より精密なステップが続くことを含むプログラミング操作において、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルについて、各粗大ステップ間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接ワード線に印加される所定のバイアス電圧とを用いることによって仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【0206】
図49は、好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイ中に標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受ける選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。この例では、WLnはNANDチェーンの中の選択されたワード線であり(図2を参照)、選択されないワード線の残りには普通、ベリファイ操作中、電圧Vpassが印加される。
【0207】
粗大フェーズ中、ベリファイ操作は、ターゲット状態のためのベリファイレベルより低くオフセットされるべき粗大ベリファイレベルに関して感知を行うことにより成し遂げられる。しかし、WLn上の電圧をオフセットさせる代わりに、それは粗大フェーズおよび精密フェーズの全体にわたって変わらず、ターゲットベリファイレベルに留まる。代わりに、粗大フェーズ中、隣接ワード線のうちの1つ、例えばWLn+1が標準Vpassより低い電圧V1にバイアスされる。これは、WLnをVcoarse(粗大)にセットするという仮想的効果を有する。
【0208】
メモリセルは、プログラムされて粗大ベリファイレベルに対してベリファイされた後、そのビット線をゼロ電圧にバイアスすることによって精密プログラミングフェーズに入る。精密フェーズにおけるベリファイ操作は、通例にならい、ターゲットベリファイレベルに関して感知を行うことにより成し遂げられる。すなわち、WLnに印加されたターゲットベリファイレベルと、WLn+1およびWLn−1などの選択されていないワード線に印加されたV2(=Vpass)とを用いて行う。
【0209】
図50は、粗大または精密プログラミングフェーズ中のメモリセルのためのビット線電圧を示す。粗大プログラミングフェーズ中、ビット線は実質的にゼロ電圧である。精密プログラミングフェーズ中、プログラミングを遅らせるためにビット線はゼロとVddとの間の所定の中間電圧にある。
【0210】
図51は、本発明の1つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大/精密プログラミングを示す流れ図である。
ステップ1800:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1802:メモリセルを関連するターゲットしきい値レベルに関してプログラムするために、関連するターゲットしきい値レベルより低いオフセットベリファイレベルを提供する。
ステップ1810:粗大フェーズにおけるプログラミングを可能にするために1グループのセルのビット線に第1のビット線電圧を初めに印加する。
ステップ1820:所定量のプログラミング波形電圧を印加することによりグループのメモリセルを関連するターゲットしきい値レベルに関して並行してプログラムする。
ステップ1830:プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第1の隣接ワード線に印加された第1の所定のバイアス電圧とを用いて感知することによって、オフセットベリファイレベルに関してベリファイする。
ステップ1832:プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第1の隣接ワード線に印加された第2の所定のバイアス電圧とを用いて感知を行うことによって、関連するターゲットしきい値レベルに関してベリファイする。
ステップ1840:グループの全てのメモリセルが関連するターゲットしきい値レベルに対してベリファイされたか?そうであるならば、ステップ1860に進み、そうでなければ、ステップ1850に進む。
ステップ1850:オフセットベリファイレベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが精密フェーズで遅らされるように、第2のビット線電圧にセットする。
ステップ1852:関連するターゲットしきい値レベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが禁止されるように、第3のビット線電圧にセットする。
ステップ1860:グループについて関連するターゲットしきい値レベルに関するプログラミングを終了する。
【0211】
記載された種々のタイプの不揮発性メモリシステムは、それぞれ1ビットから複数のビットのデータを記憶し、取り外し可能なメモリカードと他の装置の回路基板に埋め込まれた記憶装置とを含むいろいろなデジタル記憶装置およびシステムに存在すると考えられるメモリセルをサポートすることができる。
【0212】
本発明についての前の詳しい記述は、解説および説明の目的のために与えられている。網羅的であること、あるいは発明を開示された形そのものに限定することは意図されていない。前の教示を考慮すれば多くの改変および変形が可能である。説明された実施形態は、本発明の原理とその実際的な応用とを最善に説明することによって、他の当業者が本発明を種々の実施形態において、意図された特定の使用法に適する種々の改変を加えて最善に利用することを可能にするために、選択された。本願明細書に添付されている特許請求の範囲により本発明の範囲が定義されることが意図されている。
【技術分野】
【0001】
本発明は、不揮発性メモリのための技術に関する。
【背景技術】
【0002】
半導体メモリは、種々の電子装置用にポピュラーとなっている。例えば、不揮発性半導体メモリは、携帯電話機、デジタルカメラ、個人用携帯情報端末(PDA)、モバイル計算装置、ノンモバイル計算装置およびその他の装置に用いられている。最もポピュラーな不揮発性半導体メモリの中に、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)およびフラッシュメモリがある。
【0003】
EEPROMおよびフラッシュメモリは、両方とも、半導体基板内のチャネル領域の上に位置してチャネル領域から絶縁されているフローティングゲートを利用する。フローティングゲートはソース領域とドレイン領域との間に位置する。コントロールゲートはフローティングゲートの上に設けられ、フローティングゲートから絶縁される。トランジスタのしきい値電圧は、フローティングゲート上に保持されている電荷の量により制御される。すなわち、そのソースおよびドレインの間の導通を許すためにトランジスタがオンに転換される前にコントロールゲートに印加されなければならない電圧の最低量は、フローティングゲート上の電荷のレベルにより制御される。
【0004】
EEPROM、またはNANDフラッシュメモリ装置などのフラッシュメモリ装置をプログラムするときには、通例プログラム電圧がコントロールゲートに印加されると共にビット線が接地される。チャネルからの電子がフローティングゲートに注入される。電子がフローティングゲートに集積されるとき、フローティングゲートは負に充電され、メモリセルのしきい値電圧はメモリセルがプログラム済み状態となるように高められる。プログラミングに関するより多くの情報を、その全体が本願明細書において参照により援用されている「Source Side Self-Boosting Technique For Non-Volatile Memory 」という米国特許第6,859,397号(特許文献1)および「Detecting Over Programmed Memory」という米国特許第6,917,545号(特許文献2)で見出すことができる。
【0005】
いくつかのEEPROMとフラッシュメモリ装置とは2つの範囲の電荷を蓄積するために使用されるフローティングゲートを有し、従って、メモリセルは2つの状態(消去済み状態およびプログラム済み状態)の間でプログラム/消去され得る。このようなフラッシュメモリ装置は、時にはバイナリフラッシュメモリ装置と称される。
【0006】
禁止範囲により分離された複数の識別可能な許容される/妥当なプログラム済みしきい値電圧範囲を識別することにより、多状態フラッシュメモリ装置が実現される。各々の識別可能なしきい値電圧範囲は、記憶装置において符号化されるデータビットのセットのための1つの所定値に対応する。
【0007】
隣接するフローティングゲートに蓄積された電荷に基づく電界の結合のために、フローティングゲートに蓄積された見かけ上の電荷にシフトが発生する可能性がある。このフローティングゲート間結合現象は、その全体が本願明細書において参照により援用されている米国特許第5,867,429号(特許文献3)に記載されている。ターゲットのフローティングゲートに隣接するフローティングゲートの一例は、同じワード線に接続されかつ隣接するビット線に接続されているフローティングゲートを含む。
【0008】
多状態装置では、許容されるしきい値電圧範囲と禁止範囲とはバイナリ装置の場合より狭いので、フローティングゲート間結合の効果は多状態装置に関しては大きな関心事である。従って、フローティングゲート間結合は、メモリセルが許容されるしきい値電圧範囲から禁止範囲へ移されるという結果をもたらす可能性がある。
【0009】
フローティングゲート間結合は、別々のときにプログラムされた隣接するメモリセルのセット間で生じ得る。例えば、第1のメモリセルは、一セットのデータに対応するレベルの電荷をそのフローティングゲートに加えるためにプログラムされる。その後、第2のセットのデータに対応するレベルの電荷をそのフローティングゲートに加えるために1つ以上の隣接するメモリセルがプログラムされる。その隣接するメモリセルのうちの1つ以上がプログラムされた後、第1のメモリセルから読み出される電荷レベルは、隣接するメモリセル上の電荷が第1のメモリセルに結合されるという効果のために、プログラムされたものとは異なるように見える。隣接するメモリセルからの結合は、読み出される見かけ上の電荷レベルを、格納されているデータの誤読につながるのに充分な量だけシフトさせる可能性がある。
【0010】
フローティングゲート間結合は、同時にプログラムされた隣接するメモリセルのセット間でも発生し得る。例えば、2つの隣接する多状態メモリセルは、第1のメモリセルが低いほうのしきい値電圧に対応する状態にプログラムされ、第2のメモリセルが高いほうのしきい値電圧に対応する状態にプログラムされるように、異なるターゲットレベルにプログラムされ得る。低いほうのしきい値電圧に対応する状態にプログラムされるメモリセルは、第2のメモリセルが高いほうのしきい値電圧に対応する状態に達する前に、その状態に達してさらなるプログラミングから締め出されそうである。第2のメモリセルは、高いほうのしきい値電圧に対応する状態に達した後、第1のメモリセルと結合して、プログラムされたのよりも高い見かけ上のしきい値電圧を第1のメモリセルに持たせ得る。
【0011】
メモリセルのサイズが小さくなるに連れて、短チャネル効果と、より大きな酸化物厚/結合比変動と、より大きなチャネルのドーパント変動に起因してしきい値電圧の自然なプログラミング分布および消去分布は大きくなり、そのため隣接する状態間の利用可能な間隔が小さくなると思われる。この効果は、2状態だけを使用するメモリ(バイナリメモリ)より多状態メモリについて遥かに重要である。さらに、ワード線間の間隔の減少とビット線間の間隔の減少も、隣接するフローティングゲート間の結合を大きくする。
従って、隣接するフローティングゲート間の結合の効果を減少させる必要がある。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国特許第6,859,397号
【特許文献2】米国特許第6,917,545号
【特許文献3】米国特許第5,867,429号
【特許文献4】米国特許第5,570,315号
【特許文献5】米国特許第5,774,397号
【特許文献6】米国特許第6,046,935号
【特許文献7】米国特許第5,386,422号
【特許文献8】米国特許第6,456,528号
【特許文献9】米国特許出願公開第2003/0002348号
【特許文献10】米国特許出願第11/026,536号
【特許文献11】米国特許出願公開第2004/0057287号
【特許文献12】米国特許出願公開第2004/0109357号
【特許文献13】米国特許出願第11/015,199号
【特許文献14】米国特許出願第11/099,133号
【特許文献15】米国特許出願第11/321,953号
【特許文献16】米国特許第6,222,762号
【特許文献17】米国特許出願公開第2004/0255090号
【特許文献18】米国特許出願第11/013,125号
【特許文献19】米国特許出願第11/099,049号
【特許文献20】米国特許第6,888,758号
【特許文献21】米国特許第7,196,928号
【特許文献22】米国特許出願公開第2006/0221714号
【特許文献23】米国特許出願第11/377,972号
【特許文献24】米国特許第6,781,877号
【非特許文献】
【0013】
【非特許文献1】Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95
【非特許文献2】Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501
【非特許文献3】William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」,IEEE Press(1998年)のセクション1.2
【非特許文献4】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
【発明の概要】
【0014】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動(ユーピン効果)は、所与のターゲット状態へのセルのプログラミング中に、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷に関わらずセルから正しいターゲット状態が読み出されるようにベリファイレベルを適宜調整することによって、補償される。
【0015】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを伴うマルチパスプログラミング
本発明の他の1つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも2パスで実行される。第1のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第2のパスは、標準ベリファイレベルを用いてプログラミングを完了させる。第1のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに1つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【0016】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大/精密プログラミング
本発明の他の1つの態様によれば、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルのために、始めにより粗大ではあるが高速なプログラミングステップを用い、その後により精密なステップを用いることを含むプログラミング操作において、各粗大ステップの間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接するワード線に印加される所定のバイアス電圧とを用いて仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【0017】
マルチパスプログラミングまたはマルチフェーズプログラミングは、両方とも、ユーピン効果を減少させるのに役立つ。それらは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを含まないために簡単に実行できるので有利である。
【図面の簡単な説明】
【0018】
【図1】NANDストリングの平面図である。
【図2】NANDストリングの等価回路図である。
【図3】NANDストリングの横断面図である。
【図4】NANDフラッシュメモリセルのアレイの一部分のブロック図である。
【図5】不揮発性メモリシステムのブロック図である。
【図6】不揮発性メモリシステムのブロック図である。
【図7】メモリアレイのブロック図である。
【図8】センスブロックの一実施形態を描いたブロック図である。
【図9】センスモジュールの一実施形態の略図である。
【図10】センスモジュールの一実施形態のためのタイミング図である。
【図11】不揮発性メモリをプログラムするためのプロセスの一実施形態を記述したフローチャートである。
【図12】不揮発性メモリセルのコントロールゲートに印加される波形の例である。
【図13】しきい値電圧分布のセットの例を描いた図である。
【図14】しきい値電圧分布のセットの例を描いた図である。
【図15】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図16】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図17】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したフローチャートである。
【図18】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したタイミング図である。
【図19】読み出しプロセスの一実施形態を記述したフローチャートである。
【図20】プログラム済み状態についてのしきい値電圧の分布を描いた図である。
【図21】プログラミングのプロセスの一実施形態を記述したグラフである。
【図22】プログラミングのプロセスの一実施形態を記述したグラフである。
【図23】プログラミングのプロセスの一実施形態を記述したフローチャートである。
【図24】ベリファイするためのプロセスの一実施形態を記述したフローチャートである。
【図25】データを読み出すためのプロセスの一実施形態を記述したフローチャートである。
【図26】データを読み出すための一実施形態を記述したタイミング図である。
【図27】メモリシステムを設定し使用するプロセスの一実施形態を記述したフローチャートである。
【図28】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図29】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図30】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図31】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図32】データ依存ベリファイレベルを用いるプログラミング中にユーピン効果を補償する方法を示す流れ図である。
【図33】本発明を図で示すのに適するメモリアレイの一部分を示す。
【図34】隣接する電荷に起因する摂動を補償するためにプログラミング中にWLn上のベリファイレベルを調整することを示す。
【図35】ワンパスのデータ依存ベリファイレベルが現在のワード線だけに印加される図32に示されているベリファイするステップの一実施形態を示す流れ図である。
【図36A】4つの別個のクラスタをなして1つのしきい値ウィンドウ内に分散した4つのメモリ状態をサポートするメモリセルの代表的な集団の例を示す。
【図36B】高くプログラムされた隣接セルの、現在感知されているセルのプログラム済みしきい値レベルに対する影響を示す。
【図37A】感知されている現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。
【図37B】ユーピン効果を軽減するための、マルチパスプログラミングの第1のパスについてのベリファイレベルのシフトを示す。
【図38】好ましい実施形態に従う、ベリファイ中のワード線上の標準のベリファイレベルと、その標準のベリファイレベルに仮想オフセットをもたらすための隣接ワード線のバイアスとの組み合わせを示す。
【図39】ワンパスデータ依存ベリファイレベルが現在のワード線と隣接ワード線との両方に印加される、図32に示されているベリファイステップの他の1つの好ましい実施形態を示す流れ図である。
【図40】2ビットのメモリセルを持っていて、そのページが隣接ワード線上のメモリセル間のユーピン効果を最小にするのに最適なシーケンスでプログラムされるメモリの例を示す。
【図41】図5に示されている記憶装置と通信するホストを示す。
【図42】次のワード線のためのデータのページを得るための他の1つの手法を示す。
【図43】消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果による影響をどのように受け得るかを示す。
【図44】全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。
【図45】1つの好ましい実施形態に従う、両側訂正を行うための隣接ワード線のバイアスを示す。
【図46】所定のしきい値レベルに関してしきい値レベルの明確な分布を有するメモリセルのグループを作ることの流れ図である。
【図47】本発明の1つの一般的な態様に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
【図48】本発明の1つの好ましい実施形態に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによりユーピン効果を減少させることの流れ図である。
【図49】この好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイの間に標準ベリファイレベルに対して仮想オフセットをもたらすための、ベリファイされる選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。
【図50】粗大または精密プログラミングフェーズにおけるメモリセルのためのビット線電圧を示す。
【図51】本発明の1つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大/精密プログラミングを示す流れ図である。
【発明を実施するための形態】
【0019】
本発明を実施するのに適するメモリシステムの一例はNANDフラッシュメモリ構造を使用し、それは、2つの選択ゲート間に複数のトランジスタを直列に配置することを含む。それらの直列のトランジスタと選択ゲートとはNANDストリングと称される。図1は、1つのNANDストリングを示す平面図である。図2は、その等価回路である。図1および2に描かれているNANDストリングは第1の選択ゲート120と第2の選択ゲート122との間に挟まれた直列の4つのトランジスタ100,102,104および106を含む。選択ゲート120は、ビット線126へのNANDストリング接続をゲーティングする。選択ゲート122は、ソース線128へのNANDストリング接続をゲーティングする。選択ゲート120は、コントロールゲート120CGに適切な電圧を印加することにより制御される。選択ゲート122は、コントロールゲート122CGに適切な電圧を印加することにより制御される。トランジスタ100,102,104および106の各々はコントロールゲートおよびフローティングゲートを有する。トランジスタ100はコントロールゲート100CGおよびフローティングゲート100FGを有する。トランジスタ102はコントロールゲート102CGおよびフローティングゲート102FGを含む。トランジスタ104はコントロールゲート104CGおよびフローティングゲート104FGを含む。トランジスタ106はコントロールゲート106CGおよびフローティングゲート106FGを含む。コントロールゲート100CGはワード線WL3に接続され(あるいはワード線WL3であり)、コントロールゲート102CGはワード線WL2に接続され、コントロールゲート104CGはワード線WL1に接続され、コントロールゲート106CGはワード線WL0に接続されている。一実施形態では、トランジスタ100,102,104および106はそれぞれメモリセルである。他の実施形態では、メモリセルは複数のトランジスタを含むか、あるいは図1および2に描かれているものとは異なり得る。選択ゲート120は選択線SGDに接続されている。選択ゲート122は選択線SGSに接続されている。
【0020】
図3は、前述したNANDストリングの横断面図を提供する。図3に描かれているように、NANDストリングのトランジスタはpウェル領域140に形成される。各トランジスタは、コントロールゲート(100CG,102CG,104CGおよび106CG)とフローティングゲート(100FG,102FG,104FGおよび106FG)とから成る積層されたゲート構造を含む。コントロールゲートとフローティングゲートとは、通例、ポリシリコン層を堆積させることにより形成される。フローティングゲートは、酸化物または他の誘電体膜の上のpウェルの表面上に形成される。コントロールゲートはフローティングゲートの上に形成され、ポリシリコン間誘電体層がコントロールゲートとフローティングゲートとを分離する。メモリセル(100,102,104および106)のコントロールゲートはワード線を形成する。N+ドーピングされた拡散領域130,132,134,136および138は隣接するセル間で共有され、それらを通してセルが互いに直列に接続されてNANDストリングを形成する。これらのN+ドーピングされた領域は、セルの各々のソースおよびドレインを形成する。例えば、N+ドーピングされた領域130はトランジスタ122のドレインおよびトランジスタ106のためのソースとして働き、N+ドーピングされた領域132はトランジスタ106のためのドレインおよびトランジスタ104のためのソースとして働き、N+ドーピングされた領域134はトランジスタ104のためのドレインおよびトランジスタ102のためのソースとして働き、N+ドーピングされた領域136はトランジスタ102のためのドレインおよびトランジスタ100のためのソースとして働き、N+ドーピングされた領域138はトランジスタ100のためのドレインおよびトランジスタ120のためのソースとして働く。N+ドーピングされた領域126はNANDストリングのためのビット線に接続し、N+ドーピングされた領域128は複数のNANDストリングのための共通ソース線に接続する。
【0021】
図1〜3はNANDストリング内に4つのメモリセルを示しているけれども、4つのトランジスタの使用は単に一例として提供されているに過ぎないことに留意するべきである。本願明細書に記載されている技術と共に使用されるNANDストリングは、4個未満のメモリセルまたは5個以上のメモリセルを持つことができる。例えば、いくつかのNANDストリングは8個のメモリセル、16個のメモリセル、32個のメモリセル、64個のメモリセルなどを含み得る。本願明細書の議論はNANDストリング中のどんな特定の数のメモリセルにも限定されない。
【0022】
各メモリセルは、データをアナログ形またはデジタル形で記憶することができる。1ビットのデジタルデータを記憶するとき、メモリセルの可能なしきい値電圧の範囲は2つの範囲に分割され、それらに論理データ「1」および「0」が割当てられる。NAND形フラッシュメモリの一例では、電圧しきい値はメモリセルが消去された後は負であり、論理「1」として定義される。しきい値電圧はプログラム操作後は正であり、論理「0」として定義される。しきい値電圧が負であって、0ボルトをコントロールゲートに印加することによって読み出しが試みられたとき、メモリセルはオンに転換して、論理1が記憶されていることを示す。しきい値電圧が正であって、コントロールゲートに0ボルトを印加することによって読み出し操作が試みられたとき、メモリセルはオンに転換しなくて、そのことは論理ゼロが記憶されていることを示す。1ビットのデジタルデータを記憶するメモリセルはバイナリメモリセルと称される。
【0023】
メモリセルは、複数ビットのデジタルデータを記憶することもできる。そのようなメモリセルは多状態メモリセルと称される。多状態メモリセルのためのしきい値電圧ウィンドウは、その状態の数に分割される。例えば、4つの状態が用いられるならば、データ値「11」、「10」、「01」、および「00」に割当てられた4つのしきい値電圧範囲があり得る。NAND形メモリの一例では、消去操作後のしきい値電圧は負であって「11」として定義される。正のしきい値電圧は「10」、「01」、および「00」の状態のために使用される。
【0024】
NAND形フラッシュメモリおよびその動作の適切な例は、その全体が本願明細書において参照により援用されている、米国特許第5,570,315号(特許文献4)、米国特許第5,774,397号(特許文献5)、米国特許第6,046,935号(特許文献6)、米国特許第5,386,422号(特許文献7)、米国特許第6,456,528号(特許文献8)、および米国特許出願第09/893,277号(米国特許出願公開第2003/0002348号)(特許文献9)に提供されている。NANDフラッシュメモリのほかに、他のタイプの不揮発性メモリも本発明と共に使用され得る。
【0025】
フラッシュEEPROMシステムにおいて有益な他の1つのタイプのメモリセルは、電荷を不揮発性に蓄積するために伝導性フローティングゲートの代わりに非伝導性の誘電体材料を利用する。そのようなセルは、Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95 (非特許文献1)に記載されている。酸化ケイ素、窒化ケイ素および酸化ケイ素(「ONO」)から形成される3層誘電体が伝導性コントロールゲートとメモリセルのチャネルの上の半電導性基板の表面との間に挟まれている。セルは、電子をセルのチャネルから窒化物に注入することによりプログラムされ、ここでそれらは限られた領域に捕獲され蓄積される。この蓄積された電荷は、その後、セルのチャネルの一部分のしきい値電圧を検出可能な仕方で変化させる。セルは、ホットホールを窒化物に注入することにより消去される。Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501 (非特許文献2)も参照されたい。ここで、ドーピングされたポリシリコンゲートが別の選択トランジスタを形成するためにメモリセルチャネルの一部分の上に広がる分割ゲート構成の類似セルが記述されている。前述した2つの論文は、その全体が本願明細書において参照により援用されている。本願明細書において参照により援用されている、William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」,IEEE Press(1998年)のセクション1.2(非特許文献3)において言及されているプログラミング技術は、そのセクションにおいて、誘電体電荷トラッピング装置に応用可能であるとも記述されている。この段落に記述されているメモリセルは本発明と一緒にも使用され得る。従って、本願明細書に記載されている技術は、異なるメモリセルの誘電体領域の間の結合にも適用される。
【0026】
各セルに2ビットを記憶させることへの他の1つのアプローチが、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献4)に記載されている。ONO誘電体層がソース拡散とドレイン拡散との間のチャネルを横断して広がる。1つのデータビットのための電荷はドレインに隣接して誘電体層内に局在させられ、他方のデータビットのための電荷はソースに隣接して誘電体層内に局在させられる。多状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことにより得られる。この段落に記載されているメモリセルは本発明と一緒にも使用され得る。
【0027】
図4は、図1〜3に示されているもののようなNANDセルのアレイの例を示す。各列に沿って、ビット線206がNANDストリング150のためのドレイン選択ゲートのドレイン端子126に結合されている。NANDストリングの各行に沿って、ソース線204は、NANDストリングのソース選択ゲートの全てのソース端子128を接続することができる。メモリシステムの一部としてのNANDアーキテクチャアレイとその動作との例が、米国特許第5,570,315号(特許文献4)、第5,774,397号(特許文献5)、および第6,046,935号(特許文献6)に見出される。
【0028】
メモリセルのアレイはメモリセルの多数のブロックに分割される。フラッシュEEPROMシステムで普通であるように、ブロックは消去の単位である。すなわち、各ブロックは、一緒に消去される最少数のメモリセルを含む。各ブロックは、通例、数個のページに分割される。ページは、プログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは、基本プログラミング操作として一度に書き込まれる最少数のセルを含み得る。データの1つ以上のページが、通例、メモリセルの1つの行に格納される。1ページは、1つ以上のセクタを記憶することができる。セクタは、ユーザデータとオーバーヘッドデータとを含む。オーバーヘッドデータは、通例、セクタのユーザデータから計算された誤り訂正符号(ECC)を含む。コントローラ(後で記載される)の一部分は、データがアレイにプログラムされるときにECCを計算し、アレイからデータが読み出されるときにそれをチェックする。あるいは、ECCおよび/または他のオーバーヘッドデータは、それらが関係するユーザデータとは異なるページに、あるいは異なるブロックにすら、格納される。ユーザデータの1つのセクタは、通例、磁気ディスクドライブにおける1セクタのサイズに対応する512バイトである。オーバーヘッドデータは、通例、付加的な16〜20バイトである。多数のページ、例えばおよそ8ページから32,64,128またはそれ以上のページが1つのブロックを形成する。
【0029】
図5は、本発明の一実施形態に従って、1ページのメモリセルを並行して読み出し、またプログラムするための読み出し/書き込み回路を有する記憶装置296を示す。記憶装置296は1つ以上のメモリダイ298を含み得る。メモリダイ298は、メモリセルの2次元アレイ300、制御回路310、および読み出し/書き込み回路365を含む。いくつかの実施形態では、メモリセルのアレイは3次元的であり得る。メモリセルは、ビット線、ワード線、ソース線、およびメモリアレイを制御するために使用される他の線などの種々の制御線により制御されアクセスされる。例えば、メモリアレイ300は、行デコーダ330を介してワード線により、また列デコーダ360を介してビット線により、アドレス指定可能である。読み出し/書き込み回路365は、複数のセンスブロック400を含み、1ページのメモリセルが並行して読み出されまたはプログラムされることを可能にする。通例、コントローラ350が、1つ以上のメモリダイ298と同じ記憶装置296(例えば、取り外し可能な記憶装置カード)に含まれる。線320を介してホストとコントローラ350との間で、また線318を介してコントローラと1つ以上のメモリダイ298との間で、コマンドおよびデータが転送される。
【0030】
制御回路310は、メモリアレイ300に対してメモリ操作を実行するために読み出し/書き込み回路365と協力する。制御回路310は、状態マシン312、オンチップのアドレスデコーダ314および電力制御モジュール316を含む。状態マシン312は、メモリ操作のチップレベル制御を提供する。オンチップのアドレスデコーダ314は、ホストまたはメモリコントローラにより使用されるものと、デコーダ330および360により使用されるハードウェアアドレスとの間のアドレスインターフェイスを提供する。電力制御モジュール316は、メモリ操作中にワード線およびビット線に供給される電力および電圧を制御する。
【0031】
いくつかの実施例では、図5のコンポーネントのうちのいくつかは合併され得る。種々の設計において、図5の、メモリセルアレイ300以外のコンポーネントのうちの1つ以上は(単独であるいは組み合わされて)、1つの管理回路と見なされ得る。例えば、管理回路は、制御回路310、状態マシン312、デコーダ314/360、電力制御316、センスブロック400、読み出し/書き込み回路365、コントローラ350などのうちの任意の1つ、またはこれらの1つの組み合わせを含み得る。
【0032】
図6は、図5に示されている記憶装置296の他の構成を示す。各側におけるアクセス線および回路の密度が半分に減るように、種々の周辺回路によるメモリアレイ300へのアクセスはアレイの両側で対称的に実行される。従って、行デコーダは行デコーダ330Aおよび330Bに分割され、列デコーダは列デコーダ360Aおよび360Bに分割されている。同様に、読み出し/書き込み回路は、下からビット線に接続する読み出し/書き込み回路365Aおよびアレイ300の上からビット線に接続する読み出し/書き込み回路365Bに分割されている。このようにして、読み出し/書き込みモジュールの密度は本質的に二分の一減らされている。図6の装置は、図5の装置について前に記載されたように、コントローラも含むことができる。
【0033】
図7と関連して、メモリセルアレイ300の代表的な構造が記載される。一例として、1,024ブロックに分割されたNANDフラッシュEEPROMが記載される。各ブロックに格納されたデータは同時に消去され得る。一実施形態では、ブロックは、同時に消去されるメモリセルの最小単位である。各ブロックに、この例では、ビット線BL0,BL1・・・BL8511に対応する8,512の列がある。一実施形態では、読み出し操作およびプログラミング操作中に1ブロックの全ビット線が同時に選択され得る。1つの共通のワード線に沿い、いずれかのビット線に接続されているメモリセルは同時にプログラムされ得る。
【0034】
他の1つの実施形態では、ビット線は偶数ビット線および奇数ビット線に分けられる。奇数/偶数ビット線アーキテクチャでは、1つの共通ワード線に沿い奇数ビット線に接続されているメモリセルは1つの時点でプログラムされ、1つの共通ワード線に沿い偶数ビット線に接続されているメモリセルは他の1つの時点でプログラムされる。
【0035】
図7は、直列に接続されてNANDストリングを形成する4つのメモリセルを示している。4つのセルが各NANDストリングに含まれるように示されているけれども、4つより多いあるいは少ない数が使用され得る(例えば、16,32,または他の数)。NANDストリングの一端子は(選択ゲートドレイン線SGDに接続されている)ドレイン選択ゲートを介して対応するビット線に接続され、他の1つの端子は(選択ゲートソース線SGSに接続されている)ソース選択ゲートを介してcソースに接続されている。
【0036】
図8は、センスモジュール380と称されるコア部分と、共通部分390とに分割された1つの特定のセンスブロック400のブロック図である。一実施形態では、各ビット線のための別々のセンスモジュール380と、複数のセンスモジュール380のセットのための1つの共通部分390とがある。一例では、センスブロックは1つの共通部分390と8つのセンスモジュール380とを含む。1グループ内のセンスモジュールの各々は、データバス372を介して、関連する共通部分と通信する。さらなる詳細については、その全体が本願明細書において参照により援用されている2004年12月29日に出願された「Non-Volatile Memory & Method With Shared Processing For An Aggregate Of Sense Amplifiers」という米国特許出願第11/026,536号(特許文献10)を参照されたい。
【0037】
センスモジュール380は、接続されているビット線の伝導電流が所定のしきい値レベルより高いか低いかを判定するセンス回路370を含む。センスモジュール380は、接続されているビット線の電圧状態をセットするために使用されるビット線ラッチ382も含む。例えば、ビット線ラッチ382にラッチされた1つの所定の状態は、接続されているビット線がプログラム禁止を示す状態(例えば、Vdd)に引かれるという結果をもたらす。
【0038】
共通部分390は、プロセッサ392と、データラッチのセット394と、データラッチのセット394およびデータバス320の間に結合されたI/Oインターフェイス396とを含む。プロセッサ392は計算を行う。例えば、その機能の1つは、感知されたメモリセルに格納されているデータを判定して、その判定されたデータをデータラッチのセットに格納することである。データラッチのセット394は、読み出し操作中にプロセッサ392により判定されたデータビットを記憶するために使用される。それは、プログラミング操作中にデータバス320からインポートされたデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリにプログラムされるべく意図された書き込みデータを表す。I/Oインターフェイス396は、データラッチ394とデータバス320との間のインターフェイスを提供する。
【0039】
読み出しまたは感知の間、システムの動作は、アドレス指定されたセルへのいろいろなコントロールゲート電圧の供給を制御する状態マシン312の制御下にある。それが、メモリによりサポートされる種々のメモリ状態に対応する種々の所定のコントロールゲート電圧を通って進むとき、センスモジュール380はそれらの電圧のうちの1つでトリップすることができて、1つの出力がセンスモジュール380からバス372を介してプロセッサ392に提供される。その時点で、プロセッサ392は、センスモジュールの(1つまたは複数の)トリップ事象と、入力線393を介しての状態マシンからの印加されたコントロールゲート電圧に関する情報とを考慮することにより、結果としての状態を判定する。それは、その後、メモリ状態のためのバイナリエンコーディングを計算し、結果としてのデータビットをデータラッチ394に格納する。コア部分の他の実施形態では、ビット線ラッチ382は、センスモジュール380の出力をラッチするためのラッチとしての役割と、また前述したビット線ラッチとしての役割との両方のために役立つ。
【0040】
いくつかの実施例は複数のプロセッサ392を含むであろうと予想される。一実施形態では、各プロセッサ392は、その各出力が共にワイヤードOR接続されるように、1つの出力線(図9には描かれていない)を含む。いくつかの実施形態では、出力線は、ワイヤードOR線に接続される前に、反転される。ワイヤードORを受け取る状態マシンは、プログラムされる全てのビットが所望のレベルに達した時を判定することができるので、この構成は、プログラム−ベリファイプロセス中にプログラミングプロセスが完了した時を速やかに判定することを可能にする。例えば、各ビットがその所望のレベルに達したとき、そのビットについて論理ゼロがワイヤードOR線に送られる(あるいはデータ1が反転される)。全てのビットがデータ0(あるいは反転されたデータ1)を出力すると、状態マシンはプログラミングプロセスを終わらせるべきことを知る。各プロセッサは8個のセンスモジュールと通信するので、状態マシンがワイヤードOR線を8回読み出す必要があるか、あるいは、状態マシンがワイヤードOR線を1回読み出すだけでよいように関連するビット線の結果を累算するための論理がプロセッサ392に付加される。同様に、論理レベルを正しく選択することにより、包括的状態マシンは、第1のビットがその状態を変化させた時を検出してアルゴリズムを適宜変化させることができる。
【0041】
プログラムまたはベリファイの間、プログラムされるべきデータは、データバス320からデータラッチのセット394に格納されている。状態マシンの制御下のプログラム操作は、アドレス指定されたメモリセルのコントロールゲートに印加される1系列のプログラミング電圧パルスを含む。メモリセルが所望の状態にプログラムされたかどうか判定するために、各プログラミングパルス後にベリファイ操作が続く。プロセッサ392は、所望のメモリ状態に関連してベリファイされたメモリ状態を監視する。それら2つが一致するとき、プロセッサ222は、ビット線がプログラム禁止を示す状態に引かれるようにビット線ラッチ214をセットする。これは、ビット線に結合されているセルが、たとえそのコントロールゲートにプログラミングパルスが現れても、それ以上プログラムされることを妨げる。他の実施形態では、プロセッサは最初にビット線ラッチ382にロードし、センス回路はそれをベリファイプロセス中に禁止値にセットする。
【0042】
データラッチスタック394は、センスモジュールに対応するデータラッチのスタックを包含する。一実施形態では、センスモジュール380あたりに3つのデータラッチがある。いくつかの実施例(しかし、必要とはされない)では、データラッチは、その中に格納されている並列データがデータバス320のための直列データに、またその逆に、変換されるように、シフトレジスタとして実現される。好ましい実施形態では、m個のメモリセルの読み出し/書き込みブロックに対応する全てのデータラッチは、1ブロックのデータがシリアル転送によって入力または出力され得るように、互いにリンクされて1つのブロックシフトレジスタを形成する。特に、r個の読み出し/書き込みモジュールのバンクは、そのデータラッチのセットの各々がデータを、あたかもそれらが読み出し/書き込みブロック全体のための1つのシフトレジスタの一部であるかのように、データバスの中にまたはデータバスの中からシーケンシャルにシフトさせるように、適応させられる。
【0043】
不揮発性記憶装置の種々の実施形態の構造および/または動作に関する付加的な情報は、すべてその全体が本願明細書において参照により援用されている、(1)2004年3月25日に公開された「Non-Volatile Memory And Method With Reduced Source Line Bias Errors 」という米国特許出願公開第2004/0057287号(特許文献11)、(2)2004年6月10日に公開された「Non-Volatile Memory And Method With Improved Sensing」という米国特許出願公開第2004/0109357号(特許文献12)、(3)2004年12月16日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第11/015,199号(特許文献13)、(4)2005年4月5日にJian Chen により出願された「Compensating For Coupling During Read Operations Of Non-Volatile Memory」という米国特許出願第11/099,133号(特許文献14)、および(5)2005年12月28日にSiu Lung Chan およびRaul-Adrian Cerneaにより出願された「Reference Sense Amplifier For Non-Volatile Memory 」という米国特許出願第11/321,953号(特許文献15)に見出され得る。
【0044】
図9は、センスモジュール380の一例を示すが、他の実施例も使用され得る。センスモジュール380は、ビット線絶縁トランジスタ512、ビット線プルダウン回路(トランジスタ522および550)、ビット線電圧クランプトランジスタ612、読み出しバス転送ゲート530、センスアンプ600およびビット線ラッチ382を含む。ビット線絶縁トランジスタ512の一方の側は、ビット線BLおよびコンデンサ510に接続されている。ビット線絶縁トランジスタ512の他方の側は、ビット線電圧クランプトランジスタ612およびビット線プルダウントランジスタ522に接続されている。ビット線絶縁トランジスタ512のゲートは、BLSと称される信号を受信する。ビット線電圧クランプトランジスタ512のゲートは、BLCと称される信号を受信する。ビット線電圧クランプトランジスタ512は、ノードSEN2において読み出しバス転送ゲート530に接続されている。読み出しバス転送ゲート530は、読み出しバス532に接続されている。ビット線電圧クランプトランジスタ512は、ノードSEN2においてセンスアンプ600に接続する。図9の実施形態では、センスアンプ600はトランジスタ613,634,641,642,643,654,654および658,並びにコンデンサCsaを含む。ビット線ラッチ382はトランジスタ661,662,663,664,666および668を含む。
【0045】
一般的に、1つのワード線に沿うメモリセルは並行して操作される。従って、一致する数のセンスモジュールが並行して動作する。一実施形態では、並行して動作するセンスモジュールに1つのコントローラが制御信号およびタイミング信号を提供する。いくつかの実施形態では、1つのワード線に沿うデータは複数のページに分割され、データは一度に1ページ、あるいは一度に複数のページに読み出されるかまたはプログラムされる。
【0046】
センスモジュール380は、ビット線絶縁トランジスタ512が信号BLSによりイネーブルされたときに1つのメモリセルのためのビット線(例えば、ビット線BL)に接続可能である。センスモジュール380は、センスアンプ600によってメモリセルの伝導電流を感知し、読み出し結果をセンスノードSEN2におけるデジタル電圧レベルとしてラッチし、それをゲート530を介して読み出しバス532に出力する。
【0047】
センスアンプ600は、第2の電圧クランプ(トランジスタ612および634)、プリチャージ回路(トランジスタ541,642および643)、およびディスクリミネータまたは比較回路(トランジスタ654,656および658、およびコンデンサCsa)を含む。一実施形態では、読み出されるメモリセルのコントロールゲートに基準電圧が印加される。基準電圧がメモリセルのしきい値電圧より大きければ、メモリセルをオンに転換してそのソースおよびドレインの間に電流を伝導する。基準電圧がメモリセルのしきい値電圧より大きくなければ、メモリセルはオンに転換せず、そのソースおよびドレインの間に電流を伝導しない。多くの実施例において、オン/オフは連続的な遷移であり、メモリセルはいろいろなコントロールゲート電圧に応答していろいろな電流を伝導し得る。メモリセルがオンで電流を伝導されているならば、その伝導される電流は、ノードSENにおける電圧を低下させ、他方の端子がVddであるコンデンサCsaの両端間の電圧を実際上充電しあるいは高める。ノードSENにおける電圧が所定の感知期間の間に所定のレベルまで放電したならば、センスアンプ600は、コントロールゲート電圧に応答してメモリセルがオンに転換したことを報じる。
【0048】
センスモジュール380の1つの特徴は、感知中にビット線への一定電圧供給を取り入れたことである。これはビット線電圧クランプトランジスタ612により好ましく実現され、これは、トランジスタ612がビット線BLと直列で、ダイオードクランプのように動作する。そのゲートは、そのしきい値電圧VTより上の所望のビット線電圧VBLに等しい一定電圧BLCにバイアスされる。このようにして、それは、ビット線をノードSENから絶縁し、プログラム−ベリファイまたは読み出しの間、所望のVBL=0.5〜0.7ボルトなどのビット線のための一定電圧レベルをセットする。一般的に、ビット線電圧レベルは、長いプリチャージ時間を避けるために充分に低いけれども接地ノイズおよび他のファクタを避けるために充分に高いレベルにセットされる。
【0049】
センスアンプ600は、センスノードSENを通る伝導電流を感知して、伝導電流が所定値より高いか低いかを判定する。センスアンプは、感知結果を信号SEN2としてデジタル形で読み出しバス532に出力する。
【0050】
本質的にSEN2における信号の反転状態であり得るデジタル制御信号INVも、プルダウン回路を制御するために出力される。感知された伝導電流が所定値より高いときには、INVはハイでSEN2はローである。この結果は、プルダウン回路によって強められる。プルダウン回路は、制御信号INVにより制御されるnトランジスタ522と、制御信号GRSにより制御される他の1つのnトランジスタ550とを含む。GRS信号がローであるときには、INV信号の状態に関わらずビット線BLが浮動させられることを可能にする。プログラミング中、GRS信号はハイになって、ビット線BLが接地に引かれてINVにより制御されることを可能にする。ビット線BLが浮動させられる必要があるとき、GRS信号はローになる。センスモジュール、センスアンプおよびラッチの他の設計も使用され得ることに留意するべきである。
【0051】
読み出し/書き込み回路365は、1ページのメモリセルに対して同時に作用する。読み出し/書き込み回路365内の各センスモジュール380は、ビット線を介して対応するセルに結合されている。伝導電流は、ソース線を通って接地へ行く前に、センスモジュールからビット線を通ってメモリセルのドレインに流入してソースから流出する。集積回路チップにおいて、メモリアレイ内のセルのソースは、全て、メモリチップの何らかの外部接地パッド(例えば、Vssパッド)に接続されているソース線の複数のブランチとして互いに結合される。ソース線の抵抗を減少させるために金属ストラップが使用されるときでも、メモリセルのソース電極と接地パッドとの間に有限の抵抗Rが残る。通例、接地ループ抵抗Rはおよそ50オームである。
【0052】
並行して感知されるメモリのページ全体について、ソース線を通って流れる総電流は、全ての伝導電流の合計である。一般的に、各メモリセルは、その電荷蓄積素子内にプログラムされた電荷の量に依存する伝導電流を有する。メモリセルの所与のコントロールゲート電圧に対して、少量の電荷が割合に高い伝導電流を生じさせる。メモリセルのソース電極と接地パッドとの間に有限の抵抗が存在するとき、抵抗における電圧降下はVdrop=iTOT Rにより与えられる。
【0053】
例えば、4,256本のビット線が、各々1μAの電流で、同時に放電すれば、ソース線電圧降下は4,000線×1μA/線×50オーム〜0.2ボルトに等しくなる。このソース線バイアスは、メモリセルのしきい値電圧が感知されるときに0.2ボルトの感知エラーの原因となる。
【0054】
1セットの実施形態において、ソース線バイアスを減少させる方法は、マルチパス感知のための特徴および技術を有する読み出し/書き込み回路により成し遂げられる。各パスは、所与の区分電流値より高い伝導電流を有するメモリセルを識別してシャットダウンするのに役立つ。通例、各パスで、所与の区分電流値は、在来のシングルパス感知のためのブレークポイント電流値に次第に収斂する。このようにして、その後のパスにおける感知は、高電流セルがシャットダウンされているから、ソース線バイアスによる影響をより少なく受けることになる。
【0055】
例えば、マルチパス感知は2パスで実行され得る(j=0から1まで)。第1のパス後、ブレークポイントより高い伝導電流を有するメモリセルが識別されて、それらの伝導電流をオフにすることによって除去される。それらの伝導電流をオフにする1つの好ましい仕方は、それらのビット線におけるそれらのドレイン電圧を接地にセットすることである。第2のパスでは、ソース線バイアスからのエラーは低減される。3以上のパスも考えられる。ソース線バイアスがエラーを引き起こさない実施形態では、感知のために1パスが使用され得る。
【0056】
図10(A)〜10(K)は、読み出し/ベリファイ操作中のセンスモジュール380の一実施形態を説明するタイミング図を描いている。
フェーズ(0):セットアップ
センスモジュール380(図9を参照)は、イネーブル信号BLS(図10(A))を介して対応するビット線に接続されている。電圧クランプはBLC(図10(B))でイネーブルされる。プリチャージトランジスタ642は、制御信号FLT(図10(C))で限定電流源としてイネーブルされる。
【0057】
フェーズ(1):制御されたプリチャージ
センスアンプ600は、信号INV(図10(H))をトランジスタ658を介して接地に引くリセット信号RST(図10(D))により初期化される。従って、リセット時に、INVはローにセットされる。同時に、pトランジスタ663は相補的信号LATをVddまたはハイに引く(図10(H))。すなわち、LATはINVのコンプリメントである。絶縁トランジスタ634は信号LATにより制御される。従って、リセット後、絶縁トランジスタ634はイネーブルされてセンスノードSEN2をセンスアンプの内部センスノードSENに接続する。
【0058】
プリチャージトランジスタ642は、内部センスノードSENおよびセンスノードSEN2を通してビット線BLを所定期間にわたってプリチャージする。これは、ビット線を、その中での伝導を感知するために最適の電圧に至らせる。プリチャージトランジスタ642は、制御信号FLT(「FLOAT(浮動)」)により制御される。ビット線は、ビット線電圧クランプ612によりセットされる所望のビット線電圧のほうへ引き上げられる。引き上げの速さは、ビット線の伝導電流に依存する。伝導電流が小さいほど、引き上げは速い。
【0059】
所定値より高い伝導電流を有するメモリセルがオフにされて、ソース線バイアスへのそれらの寄与がなくされたならばソース線バイアスに起因する感知エラーは最少にされるということを前に説明した。従って、プリチャージトランジスタ642は2つの機能を果たす。1つは、ビット線を最適感知電圧にプリチャージすることである。他方は、DC(直流)感知のための所定値より高い伝導電流を有するメモリセルを、それらがソース線バイアスへの寄与から除去され得るように、識別するのを助けることである。
【0060】
DC感知は、ビット線に所定の電流を供給するための電流源のように振る舞うプリチャージ回路を提供することにより成し遂げられる。pトランジスタ642を制御する信号FLTは、所定の電流が流れるように「プログラムする」ような信号である。一例として、FLT信号は、500nAにセットされた基準電流を有する電流ミラーから生成され得る。pトランジスタ642が電流ミラーの反転脚を形成するとき、それは同じ500nAを投入させる。
【0061】
図10(I1)〜10(I4)は、700nA,400nA,220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続された例としての4つのビット線の電圧を示す。プリチャージ回路(これはトランジスタ642を含む)が、例えば、500nAの限界値を有する電流源であるとき、500nAを上回る伝導電流を有するメモリセルは、ビット線上の電荷を、それが蓄積できるよりも速く排出させる。従って、伝導電流700nAを有するビット線では、内部センスノードSENにおけるその電圧あるいは信号は0Vの近くに留まる(例えば、0.1ボルト、図10(I1)を参照)。その一方で、メモリセルの伝導電流が500nAより低ければ、プリチャージ回路(これはトランジスタ642を含む)はビット線を充電し始めて、その電圧は、クランプされているビット線電圧(例えば、電圧クランプ612によりセットされた0.5V)のほうへ上昇し始める(図10(I2)〜10(I4))。相応して、内部センスノードSENは0V付近に留まるかあるいはVddへ引き上げられる(図10(G))。一般的に、伝導電流が小さいほど、ビット線電圧はクランプされたビット線電圧へ速く充電される。従って、制御されたプリチャージフェーズ後にビット線の電圧を調べることにより、接続されているメモリセルが所定のレベルより高い伝導電流を有するかあるいは低い伝導電流を有するかを識別することが可能である。
【0062】
フェーズ(2):DCラッチングと後のストローブからの高電流セルの除去
制御されるプリチャージフェーズ後、ノードSENがディスクリミネータ回路によって感知される最初のDC高電流感知フェーズが始まる。感知は、所定のレベルより高い伝導電流を有するメモリセルを識別する。ディスクリミネータ回路は直列の2つのpトランジスタ654および656を含み、それらは、信号INVを記録するノードのためのプルアップとして作用する。pトランジスタ654は、ローになる読み出しストローブ信号STBによりイネーブルされ、pトランジスタ656は、ローになる内部センスノードSENの信号によりイネーブルされる。高電流メモリセルは、0Vに近いか、あるいは、少なくとも、pトランジスタ656をオフに転換させるほど充分に高くはそのビット線がプリチャージされ得ない信号SENを有する。例えば、弱いプルアップが500nAの電流に限定されるならば、それは700nAの伝導電流を有するセルをプルアップしない(図10(G1))。STBがラッチのためにローをストローブすると、INVはVddにプルアップされる。これは、ラッチ回路660をINVがハイでLATがローの状態にセットする(図10(H1))。
【0063】
INVがハイでLATがローであるとき、絶縁ゲート630はディスエーブルされ、センスノードSEN2は内部センスノードSENから遮られる。同時に、ビット線はプルダウントランジスタ522によって接地に引かれる(図9および10(I1))。これは、ビット線のどのような伝導電流をもオフに転換させ、それをソース線バイアスへの寄与から除く。
【0064】
従って、センスモジュール380の1つの好ましい実施例では、限定電流源プリチャージ回路が使用される。これは、高電流を伝導しているビット線を識別して、後の感知でのソース線バイアスエラーを最小にするためにそれらをオフに転換させるための追加のあるいは代わりの方法(DC感知)を提供する。
【0065】
他の1つの実施形態では、プリチャージ回路は、高電流ビット線の識別を助けるように特別には構成されないけれども、メモリシステムに利用可能な最大電流の許容範囲内でなるべく速くビット線をプルアップしプリチャージするように最適化される。
【0066】
フェーズ(3):リカバリ/プリチャージ
以前にプルダウンされていなかったビット線の伝導電流の感知の前に、プリチャージ回路は、ローになる信号FLTによりアクティブ化されて、内部センスノードSEN2をVddにプリチャージする(図10(C)および図10(I2)〜10(I4))と共に、隣接するビット線の電圧の低下に起因して部分的に下方に結合されていたかもしれないビット線をプリチャージする。
【0067】
フェーズ(4):第1のAC感知
一実施形態では、浮動させられた内部センスノードSENにおける電圧降下を判定することによりAC(交流または過渡的)感知が実行される。これは、内部センスノードSENに結合されたコンデンサCsaを使用するディスクリミネータ回路により、また伝導電流がそれに充電する(ノードSENの電圧を低下させる)速度を考慮することにより、成し遂げられる。集積回路環境において、コンデンサCsaは通例トランジスタにより実現されるけれども、他の実施例が適切である。コンデンサCsaは所定の静電容量、例えば30fFを有し、それは最適電流決定のために選択され得る。区分電流値は、通例100〜1,000nAの範囲であり、充電期間の適切な調整によりセットされ得る。
【0068】
ディスクリミネータ回路は、内部センスノードSENの信号SENを感知する。各感知の前に、内部センスノードSENの信号はプリチャージトランジスタ642によりVddに引き上げられる。これは、最初に、コンデンサCsaの両端間の電圧をゼロにセットする。
【0069】
センスアンプ600が何時でも感知できるとき、プリチャージ回路は、ハイになるFLTによりディスエーブルされる(図10(C))。第1の感知期間T1は、ストローブ信号STBのアサートにより終わらされる。感知期間中、導通しているメモリセルにより誘導される伝導電流がコンデンサに充電する。SENの電圧は、コンデンサCsaがビット線の伝導電流の電流ドレイン作用を通して充電されているときにVddから低下する。図10(G)(曲線G2〜G4を参照)は、400nA,220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続されている残りの3つの例としてのビット線に対応するSENノードを示し、低下は、より高い伝導電流を有するものについてはより急速である。
【0070】
フェーズ(5):第1のACラッチと後の感知からのより高い電流のセルの除去
第1の所定の感知期間の終了時に、SENノードは、ビット線の伝導電流に依存する何らかの電圧に低下している(図10Gの曲線G2〜G4を参照)。一例として、この第1のフェーズにおける区分電流は300nAであるようにセットされる。コンデンサCsa、感知期間T1およびpトランジスタ656のしきい値電圧は、区分電流(例えば、300nA)より高い伝導電流に対応するSENの信号が、トランジスタ656をオンに転換させるために充分に低くなるようなものである。ラッチ信号STBがローをストローブすると、出力信号INVはハイに引かれ、ラッチ382によりラッチされる(図10(E)および図10(H)(曲線H2))。その一方で、区分電流より低い伝導電流に対応する信号SENは、トランジスタ656をオンに転換させることのできない信号SENを生じさせる。この場合、ラッチ382は不変のままであり、その場合にはLATはハイのままである(図10(H3)および10(H4))。従って、ディスクリミネータ回路が、実際上、感知期間によりセットされる基準電流に関してビット線の伝導電流の高さを判定することが分かる。
【0071】
センスアンプ600は第2の電圧クランプトランジスタ612も含み、その目的は、トランジスタ612のドレインの電圧を、ビット線電圧クランプ610が適切に機能するように充分に高く保つことである。前述したように、ビット線電圧クランプ610は、ビット線電圧を所定値VBL、例えば0.5Vにクランプする。これは、トランジスタ612のゲート電圧BLCがVBL+VT にセットされること(ここで、VT はトランジスタ612のしきい値電圧である)、およびセンスノード501に接続されているドレインがソースより大きいこと、すなわち信号SEN2>VBLを必要とする。特に、電圧クランプの構成が与えられたならば、SEN2はXX0−VT またはBLX−VT のうちの小さいほうより高くあるべきではなく、SENは低くあるべきではない。感知中、絶縁ゲート630は素通り(pass−through)モードである。しかし、感知中、内部センスノードSENの信号はVddから低下する電圧を有する。第2の電圧クランプは、そのどちらがより低いとしても、XX0−VT またはBLX−VT のうちの低いほうよりSENが低下することを妨げる。これは、信号BLXにより制御されるnトランジスタ612により成し遂げられ、ここでBLXは≧VBL+VT である。従って、電圧クランプの作用を通して、感知中、ビット線電圧VBLは一定に、例えば〜0.5Vに保たれる。
【0072】
電流判定の出力はラッチ回路382によりラッチされる。ラッチ回路は、トランジスタ661,662,663および664並びにトランジスタ666および668によりセット/リセットラッチとして形成される。pトランジスタ666は信号RST(RESET:リセット)により制御され、nトランジスタ668は信号STBにより制御される。低電圧動作向けに適合させられている前述したセンスアンプの変形例が、その全体が本願明細書において参照により援用されている2004年12月16日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第11/015,199号(特許文献13)に見出される。
【0073】
一般的に、一致する数のマルチパスセンスモジュール380により操作される1ページのメモリセルがある。第1の区分電流レベルより高い伝導電流を有するメモリセルについては、それらのLAT信号はローにラッチされる(INVはハイにラッチされる)。これは、対応するビット線を接地に引くようにビット線プルダウン回路520をアクティブ化し、これによりそれらの電流をオフに転換させる。
【0074】
フェーズ(6):リカバリ/プリチャージ
以前に下方に引かれていなかったビット線の伝導電流の次の感知の前に、プリチャージ回路は内部センスノード631をVddにプリチャージするように信号FLTによりアクティブ化される(図10(C)および図10(I3)〜10(I4))。
【0075】
フェーズ(7):第2の感知
センスアンプ600が何時でも感知できるとき、プリチャージ回路は、ハイになるFLTによりディスエーブルされる(図10(C))。第2の感知期間T2は、ストローブ信号STBのアサートによりセットされる。感知期間中、伝導電流があるならば、コンデンサに充電する。ノードSENの信号は、コンデンサCsaがビット線36の伝導電流の電流ドレイン作用を通して充電されているときにVddから低下する。
【0076】
前の例によれば、300nAより高い伝導電流を有するメモリセルは、以前のフェーズで既に識別されてシャットダウンされている。図14(G)(曲線G3およびG4)は、220nAおよび40nAの伝導電流を有するメモリセルにそれぞれ接続されている2つの例としてのビット線に対応するSEN信号をそれぞれ示す。
【0077】
フェーズ(8):読み出しのための第2のラッチ
第2の所定の感知期間T2の終了時に、SENは、ビット線の伝導電流に依存する何らかの電圧に低下している(図10(G)(曲線G3およびG4))。一例として、この第2のフェーズにおける区分電流は100nAにセットされる。この場合、伝導電流220nAを有するメモリセルは、そのINVがハイにラッチされ(図10(H))、そのビット線は後に接地に引かれる(図10(I3))。その一方で、伝導電流40nAを有するメモリセルは、LATハイでプリセットされたラッチの状態に対して影響を及ぼさない。
【0078】
フェーズ(9):バスへの読み出し
最後に、読み出しフェーズでは、転送ゲート530の制御信号NCOは、ラッチされた信号SEN2が読み出しバス532に読み出されることを可能にする(図10(J)および10(K))。
図10(I1)〜10(I4)から分かるように、ビット線電圧は、各感知期間中、一定のままである。従って、前の議論から、容量性のビット線間結合は排除される。
【0079】
前述したセンスモジュール380は、感知が3つのパスで実行される1つの実施形態であり、始めの2つのパスは、より高い電流のメモリセルを識別してシャットダウンするために実行される。より高い電流のソース線バイアスへの寄与が除去されるので、最後のパスは、より低い範囲の伝導電流を有するセルをより正確に感知することができる。
【0080】
他の実施形態では、感知操作はDCパスおよびACパスの異なる組み合わせで実行され、あるものは2つだけあるいはそれ以上のACパス、あるいは1つのパスだけを使用する。異なるパスの間に使用される区分電流値は、その都度同じであってもよく、あるいは最終パスで使用される区分電流に向かって漸次収斂してもよい。さらに、前述した感知の実施形態は、適切なセンスモジュールの一例に過ぎない。本願明細書に記載された発明を実施するために他の設計および技術も使用され得る。本願明細書に記載された発明のために1つの特定のセンスモジュールが必要とされたりあるいは提案されるわけではない。
【0081】
図11は、不揮発性メモリをプログラムする方法の一実施形態を記述したフローチャートである。一実施例では、メモリセルはプログラミングの前に(ブロックまたは他の単位で)消去される。メモリセルは、一実施形態では、充分な期間にわたってpウェルを消去電圧(例えば、20ボルト)に高めると共に、ソース線およびビット線が浮動している間選択されたブロックのワード線を接地することによって消去される。容量結合に起因して、選択されていないワード線、ビット線、選択線、およびcソースも消去電圧のかなりの部分まで高められる。従って、選択されたメモリセルのトンネル酸化物層に強い電界が加えられ、フローティングゲートの電子が一般的にはファウラーノルドハイムトンネリングにより基板側に放出されるときに、選択されたメモリセルのデータが消去される。電子がフローティングゲートからpウェル領域に移されるとき、選択されたセルのしきい値電圧は低められる。消去は、メモリアレイ全体、別々のブロック、あるいはセルの他の単位に対して、実行され得る。
【0082】
図11のステップ700で、「データロード」コマンドがコントローラにより発せられて制御回路310により受け取られる。ステップ702で、ページアドレスを指定するアドレスデータがコントローラまたはホストからデコーダ314に入力される。ステップ704で、アドレス指定されたページのための1ページのプログラムデータがプログラミングのためにデータバッファに入力される。そのデータは、ラッチの適切なセットにおいてラッチされる。ステップ706で、コントローラにより状態マシン312に対して「プログラム」コマンドが発せられる。
【0083】
「プログラム」コマンドによりトリガされて、ステップ704でラッチされたデータは、適切なワード線に加えられる図12の階段状パルスを用いる状態マシン312により制御される選択されたメモリセル中にプログラムされる。ステップ708で、プログラム電圧Vpgmは始動パルス(例えば、12Vまたは他の値)に初期化され、状態マシン312により維持されるプログラムカウンタPCは0に初期化される。ステップ710で、選択されたワード線に第1のVpgmパルスが加えられる。対応するメモリセルがプログラムされるべきことを示す論理「0」が特定のデータラッチに記憶されているならば、対応するビット線が接地される。その一方で、対応するメモリセルがその現在のデータ状態に留まるべきであることを示す論理「1」が特定のラッチに記憶されているならば、対応するビット線はプログラミングを抑制するVddに接続される。
【0084】
ステップ712で、選択されたメモリセルの状態は、それらがそれらのターゲットしきい値電圧に達しているかどうかを判定するためにベリファイされる。選択されたセルのしきい値電圧がターゲットレベルに達していることが検出されたならば、対応するデータラッチに記憶されているデータは論理「1」に変更される。しきい値電圧が適切なレベルに達していないことが検出されたならば、対応するデータラッチに記憶されているデータは変更されない。このようにして、対応するデータラッチに論理「1」が記憶されているビット線はプログラムされなくてもよい。全てのデータラッチが論理「1」を記憶しているとき、状態マシンは(前述したワイヤードORタイプのメカニズムを介して)全ての選択されたセルがプログラムされていることを知る。ステップ714で、全てのデータラッチが論理「1」を記憶しているかどうかがチェックされる。そうであるならば、全ての選択されたメモリセルがプログラムされてベリファイされたのであるから、プログラミングプロセスは完了していて成功している。「合格」のステータスがステップ716で報告される。
【0085】
ステップ714で、データラッチの全てが論理「1」を記憶しているわけではないと判定されたならば、プログラミングプロセスは続行される。ステップ718で、プログラムカウンタPCはプログラム極限値PCMAXと照合される。プログラム極限値の一例は20であるけれども、他の数も使用され得る。プログラムカウンタPCが20未満でなければ、プログラムプロセスは失敗していて、ステップ720で「失敗」のステータスが報告される。いくつかの実施形態では、ループの最大数に達した後、システムは、所定量未満のセルがプログラミングを終えていないかどうかをチェックする。その所定数未満がプログラミングを終えていなければ、プログラミングプロセスは依然として合格であると見なされる。プログラムカウンタPCが20未満であれば、ステップ722でVpgmレベルはステップサイズだけ高められ、プログラムカウンタPCはインクリメントされる。ステップ722の後、プロセスはステップ710に巡り戻って次のVpgmパルスを印加する。
【0086】
図12は、プログラミングのために選択されたワード線に加えられる一連のプログラムパルスを示す。プログラムパルス同士の中間には1セットのベリファイパルスがある(図示せず)。いくつかの実施形態では、データがプログラムされる各状態について1つのベリファイパルスがあり得る。他の実施形態では、もっと多いあるいはもっと少ないベリファイパルスがあり得る。
【0087】
一実施形態では、データは1つの共通ワード線に沿うメモリセルにプログラムされる。従って、図12のプログラムパルスを加える前に、ワード線のうちの1つがプログラミングのために選択される。このワード線は、選択されたワード線と称される。ブロックの残りのワード線は、選択されていないワード線と称される。
【0088】
成功したプログラム(ベリファイを伴う)プロセスの終了時に、メモリセルのしきい値電圧は、適宜に、プログラム済みメモリセルについてのしきい値電圧の1つ以上の分布の中または消去済みメモリセルについてのしきい値電圧の1つの分布の中にあるべきである。図13は、各メモリセルが2ビットのデータを記憶するときのメモリセルのアレイについての例としてのしきい値電圧分布を示す。図13は、消去済みメモリセルについての第1のしきい値電圧分布Eを示す。プログラム済みメモリセルについての3つのしきい値電圧分布A,BおよびCも描かれている。一実施形態では、E分布内のしきい値電圧は負であり、A,BおよびC分布内のしきい値電圧は正である。
【0089】
図13の各々の区別可能なしきい値電圧範囲は、データビットのセットについての所定値に対応する。メモリセルにプログラムされたデータとセルのしきい値電圧レベルとの特定の関係は、セルのために採用されるデータ符号化方式に依存する。例えば、両方ともその全体が本願明細書において参照により援用されている、米国特許第6,222,762号と(特許文献16)、および2003年6月13日に出願された「Tracking Cells For A Memory System」という米国特許出願公開第2004/0255090号(特許文献17)は、多状態フラッシュメモリセルのための種々のデータ符号化方式を記載している。一実施形態では、フローティングゲートのしきい値電圧がその隣の物理状態に誤ってシフトしても1ビットだけが影響を受けることとなるように、データ値はグレイコード割当てを用いてしきい値電圧範囲に割当てられる。一例は、「11」をしきい値電圧範囲E(状態E)に割り当て、「10」をしきい値電圧範囲A(状態A)に割当て、「00」をしきい値電圧範囲B(状態B)に割当て、「01」をしきい値電圧範囲C(状態C)に割当てる。しかし、他の実施形態では、グレイコードは使用されない。図13は4つの状態を示しているけれども、本発明は、4つより多いまたは少ない状態を含むものを含む他の多状態構造でも使用され得る。例えば、いくつかの不揮発性記憶素子は8つ(7つのプログラム済みおよび1つの消去済み)またはそれ以上の状態を利用することができる。
【0090】
図13は、メモリセルからデータを読み出すための3つの読み出し基準電圧Vra,VrbおよびVrcも示している。所与のメモリセルのしきい値電圧がVra,VrbおよびVrcより高いか低いかを試験することにより、システムはそのメモリセルがどの状態にあるかを判定することができる。
【0091】
図13は、3つのベリファイ基準電圧Vva,VvbおよびVvcも示す。メモリセルを状態Aにプログラムするときに、システムは、それらのメモリセルがVvaより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Bにプログラムするときに、システムは、メモリセルがVvbより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Cにプログラムするときに、システムは、メモリセルがVvcより大きいかまたはそれに等しいそれらのしきい値電圧を有するかどうか判定する。
【0092】
フルシーケンスプログラミングとして知られる1つの実施形態では、メモリセルは、消去状態Eからプログラム済み状態A,BまたはCのいずれにも直接プログラムされることができる。例えば、プログラムされるべきメモリセルの集団は、その集団の中の全てのメモリセルが消去済み状態Eになるように、始めに消去され得る。いくつかのメモリセルが状態Eから状態Aへプログラムされつつあるときに、他のメモリセルは状態Eから状態Bへかつ/または状態Eから状態Cへプログラムされつつある。
【0093】
図14は、2つの異なるページ、下側ページおよび上側ページのためのデータを記憶する多状態メモリセルをプログラムする2パス手法の例を示す。4つの状態、すなわち状態E(11)、状態A(10)、状態B(00)および状態C(01)が描かれている。状態Eについて、両方のページが「1」を記憶する。状態Aについて、下側ページは「0」を記憶し、上側ページは「1」を記憶する。状態Bについて、両方のページが「0」を記憶する。状態Cについて、下側ページは「1」を記憶し、上側ページは「0」を記憶する。特定のビットパターンが状態の各々に割り当てられているけれども、異なるビットパターンも割り当てられ得るということに留意するべきである。
【0094】
第1のプログラミングパスで、セルのしきい値電圧レベルは、下側論理ページにプログラムされるべきビットに応じてセットされる。そのビットが論理「1」であれば、しきい値電圧は、以前に消去されていた結果として適切な状態にあるから、変更されない。しかし、プログラムされるべきビットが論理「0」であれば、そのセルのしきい値レベルは、矢730により示されているように、状態Aとなるように高められる。
【0095】
第2のプログラミングパスで、セルのしきい値電圧レベルは、上側論理ページにプログラムされるビットに応じてセットされる。上側論理ページのビットが論理「1」を記憶しなければならないのであれば、下側ページのビットのプログラミングに依存してセルが状態EまたはAのうちの一方であり、その両方が「1」の上側ページビットを維持しているから、プログラミングは行なわれない。上側ページのビットが論理「0」であるべきであれば、しきい値電圧は変更される。第1のパスがセルが消去済み状態Eに留まるという結果をもたらしたならば、第2のフェーズで、セルは、矢734により描かれているように、しきい値電圧が高められて状態Cの中に入るようにプログラムされる。セルが第1のプログラミングパスの結果として状態Aにプログラムされていたならば、メモリセルは、矢732により描かれているように、しきい値電圧が高められて状態Bの中に入るように第2のパスでさらにプログラムされる。第2のパスの結果は、セルを、下側ページのためのデータを変更することなく上側ページのために論理「0」を記憶するように指定された状態にプログラムすることである。
【0096】
一実施形態では、1つのワード線を満たすのに充分なデータが書き込まれるならば、システムはフルシーケンス書き込みを実行するようにセットアップされ得る。不十分なデータが書き込まれるならば、プログラミングプロセスは、受け取られたデータでプログラムして下側ページをプログラムすることができる。その後のデータが受け取られると、システムは上側ページをプログラムする。さらに別の1つの実施形態では、システムは、下側ページをプログラムするモードで書き始めて、1つのワード線の全体(またはその大部分)のメモリセルを満たすのに充分なデータが後に受け取られたならばフルシーケンスプログラミングモードに転換することができる。そのような実施形態についてのより多くの詳細な情報が、その全体が本願明細書において参照により援用されている2004年12月14日にSergey Anatolievich GorobetsおよびYan Liにより出願された「Pipelined Programming Of Non-Volatile Memories Using Early Data 」という米国特許出願第11/013,125号(特許文献18)に開示されている。
【0097】
図15は、不揮発性メモリセルからデータを読み出すための一実施形態を記述するフローチャートである。センスモジュールに関する前の議論は、データが特定のビット線からどのように読み出されるかを論じている。図15は、システムレベルでの読み出しプロセスを提供する。ステップ800で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。前に論じられたように、隣接するフローティングゲート(または他の隣接する電荷蓄積素子)に蓄積された電荷に基づく電界の結合のために、不揮発性メモリセルのフローティングゲート(または他の電荷蓄積素子)に蓄積された見かけ上の電荷にシフトが発生する可能性がある。この結合を補償するために、所与のメモリセルのための読み出しプロセスは、隣接するメモリセルのプログラム済み状態を考慮に入れる。ステップ802は、隣接するフローティングゲート間の結合のそのような補償を提供するかどうかを判定することを含む。いくつかの実施形態では、ステップ802はどの程度の補償を用いるかを決定することを含む。ステップ804で、データを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ804の読み出しプロセスは、ステップ802に基づいて、隣接するフローティングゲート間の結合の適切な補償を含むことができる。一実施形態では、ステップ804で読み出されるメモリセルは1つの共通ワード線に、けれども異なるビット線に、接続されている。
【0098】
一実施形態では、1ページのためのデータがプログラムされるときに、システムはまた誤り訂正符号(ECC)を作り、これらのECCをページのデータと共に書き込む。ECC技術は当該技術分野で良く知られている。使用されるECCプロセスは、当該技術分野で知られている任意の適切なECCプロセスを含むことができる。1ページ(または他のデータ単位)からデータを読み出すときに、データ中にエラーがあるかどうか判定するためにECCが使用される(ステップ806)。ECCプロセスは、コントローラ、状態マシン、またはシステム中の他の場所で実行され得る。データ中にエラーがなければ、そのデータはステップ808でユーザに報告される。ステップ806でエラーが発見されたならば、そのエラーが訂正可能であるかどうか判定される(ステップ810)。種々のECC方法が、1セットのデータ中の所定数のエラーを訂正する能力を有する。ECCプロセスがそのデータを訂正できるならば、ステップ812でそのデータを訂正するためにECCプロセスが使用され、その訂正されたデータがステップ814でユーザに報告される。データがECCプロセスによって訂正できなければ(ステップ810)、ステップ820でエラーがユーザに報告される。いくつかの実施形態では、ステップ820は、データの全部または部分集合を報告することを含むこともできる。データの1つの部分集合がエラーを有しないことが分かったならば、その部分集合が報告され得る。
【0099】
図16は、隣接するフローティングゲート間の結合の補償を使用することのある、不揮発性メモリセルからデータを読み出すための他の1つの実施形態を記述するフローチャートである。図15のプロセスと図16のプロセスとの1つの差異は、図16のプロセスが、読み出しプロセス中にエラーがある場合に限って補償を使用することである。
【0100】
図16のステップ840で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。ステップ842で、そのデータを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のための読み出しプロセスが実行される。ステップ842の読み出しプロセスは、本願明細書に記載された結合の補償を含まない。ステップ844は、データ中にエラーがあるかどうかの判定を含む。データ中にエラーがなければ、そのデータはステップ846でユーザに報告される。ステップ844でエラーが発見されれば、ステップ850で、そのエラーが訂正可能であるかどうかが判定される。種々のECC方法が、1セットのデータ中の所定数のエラーを訂正する能力を有する。ECCプロセスがそのデータを訂正できるならば、ステップ852でそのデータを訂正するためにECCプロセスが使用され、その訂正されたデータがステップ854でユーザに報告される。データがECCプロセスにより訂正できなければ(ステップ850)、システムは、隣接するフローティングゲート間の結合の補償を伴う読み出しプロセスを実行することによってデータを回復しようと試みる。従って、ステップ860で、システムは、隣接フローティングゲート間の結合を処理するために補償を用いるかどうか、かつ/またはどの程度の補償を用いるかを決定する。ステップ862で、データを読み出すためのリクエストに応答して1つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ862の読み出しプロセスは、ステップ860に基づいて、隣接フローティングゲート間の結合の適切な補償を用いることによってデータを回復しようと試みる。
【0101】
ターゲットのフローティングゲートに隣接するフローティングゲートは、同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート、または隣接するビット線および隣接するワード線の両方の上にあるためにターゲットのフローティングゲートの向こう側にあるフローティングゲートを含み得る。一実施形態では、本願明細書で論じられた結合の補償は、隣接フローティングゲートのこれらの前述したセットのうちのいずれにも適用され得る。いくつかの実施形態では、本願明細書で論じられた結合の補償は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲートに適用される。例えば、メモリセル362は、その見かけ上のしきい値電圧がメモリセル364および366からの結合に起因して変化させられ得る(図7を参照)。同じビット上にあるけれども異なるワード線上にある隣接フローティングゲートに起因する結合の補償は、その全体が本願明細書において参照により援用されている2005年4月5日にYan LiおよびJian Chen により出願された「Read Operation For Non-Volatile Storage That Includes Compensation For Coupling 」という米国特許出願第11/099,049号(特許文献19)においてより詳しく論じられている。いくつかの実施形態は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート間および同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート間の結合の補償を提供する。
【0102】
隣接するフローティングゲート間の結合の量は、隣接するフローティングゲートがプログラムされるタイミングに依存する。同時にプログラムされる2つの隣接するフローティングゲートは、結合をほとんどあるいは全く持ちそうもない。最大量の結合は、一方のフローティングゲートがプログラムされなくて(例えば、消去済み状態Eに留まる)、他方のフローティングゲートが後に最高に(例えば、最も)プログラムされた状態にプログラムされる(例えば、状態Cにプログラムされる図13を参照)場合に2つの隣接するフローティングゲート間に生じそうである。状態Eと状態Aとの間には大きなマージンがあるので、結合があっても、状態Eにあるデータを誤って読み出すことはなさそうである。2番目に大きな量の結合は、状態Aにプログラムされた第1のフローティングゲートと、状態Cにプログラムされた、後にプログラムされたフローティングゲートとの間にある。従って、一実施形態では、結合の補償が使用される唯一のときは、1つのメモリセルが第1のプログラム済み状態(例えば、状態A)にあって、その隣のものが1セットの状態(4つの状態、8つの状態、または異なる数の状態)のうちの最高のプログラム済み状態(例えば、状態C)にあるときである。他の実施形態では、結合の補償は、隣のメモリセルが異なる状態、例えば状態Bまたは他の1つの状態にあるときに使用され得る。4つより多いまたは少ない状態を使用するいくつかの実施形態では、結合の補償は、隣のメモリセルが、結合を引き起こすと分かっている状態にあるときに、使用され得る。同様に、結合の補償は、ターゲットのメモリセルが、その特定の実施例に適切な、状態A以外の状態にあるときに、使用され得る。
【0103】
隣のメモリセルの状態が何らかの技術を用いて検出または取得され得るならば、考察されているメモリセルに必要な訂正の量は、次の読み出し操作の間に決定され調整されることができる。特定のメモリセルの状態を知る1つの方法は、読み出し操作を通してのものである。しかし、一実施形態では、隣接するビット線のためのセンスアンプ間には通信はない。読み出し操作後も、考察されているメモリセルは、その隣のメモリセルの状態を知らない。
【0104】
図17は、1つのメモリセルが状態Aにあってその隣のメモリセルのうちの1つ以上が状態Cにあるかどうかに基づいて、補償が使用されるべきかどうか、またどの程度の補償が使用されるべきかを判定するための一実施形態を記述するフローチャートである。少なくとも2つのシナリオがある。1つのシナリオでは、読み出される特定のメモリセルは状態Aにあり、その隣のもののうちの1つは状態Cにある。第2のシナリオでは、読み出される特定のメモリセルは状態Aにあり、その隣のもののうちの2つ(異なるビット線)は状態Cにある。図17のプロセスは、特定のメモリセル(または特定のビット線)についてのいずれかの隣のものが状態Cに(または、7つ以上の状態のセットのうちの最高のプログラム済み状態に)あるかどうか判定する。このプロセスは、図15のステップ802および図16のステップ860を実行するために使用され得る。
【0105】
図17のステップ900で、選択されたワード線に接続されているメモリセルの全て(または部分集合)が、メモリセルが状態Cにあるかどうか判定するために、読み出される。これは、読み出し比較ポイントVrcを使用することにより成し遂げられる。Vrcより大きなしきい値電圧を有するメモリセルは、状態Cにあると想定される。Vrc未満のしきい値電圧を有するメモリセルは状態Cにはない。Vrcを使用する読み出し操作の終了時に、各センスアンプは、その対応するメモリセルが状態Cにあるか否かをラッチする。克服されなければならない1つの障害は、いくつかの実施例ではセンスアンプが隣のセンスアンプに話しかけることができないことである。例えば、図7を見ると、ビット線BL2のためのセンスアンプは、ビット線BL1またはビット線BL3のセンスアンプと通信できない。従って、BL2のためのセンスアンプは、BL1およびBL3上の隣のメモリセルが状態Cにあるかどうかを知らない。ステップ902〜910は、隣のメモリセルが状態Cにあるかどうかを示すために実行される。ステップ902で、状態Cにあるとステップ900で感知されたメモリセルに接続されているビット線の全てが所定の電圧に充電される。一例では、状態Cのメモリセルを伴うビット線は0.5ボルトに充電される。図9を振り返り見ると、これは、0.5ボルト+Vth(トランジスタ612の)をトランジスタ612のゲートに印加すると共に、INV=0を引き起こすためにRST信号をローにトグルすることによって、成し遂げられ得る。他のセンスアンプは、INV=1でセットアップされていたので、それらのビット線には充電はされない。GRS=0では、ビット線にはアクティブなプルダウンはない。Cデータを有するビット線が充電されるときに、隣接するビット線はビット線間結合に起因してそれらのビット線に結合される。1つの実施例では、そのような結合は総ビット線静電容量の40%であり得る。両方の隣のものがCデータを有するビット線について、容量結合は総ビット線静電容量の80%におよび得る。例えば、ビット線の1つの隣のものがCデータを有するならば、それは約0.15ボルトだけ上方結合(coupled-up)され得る。ビット線の2つの隣のものがCデータを有するならば、それは約0.3ボルトだけ上方結合され得る。
【0106】
ステップ904で、Cデータを有する2つの隣のものを有するビット線が識別される。一実施形態では、ステップ904は、BLCを0.2+Vth(トランジスタ612の)に下げることによって成し遂げられる。これは、2つのCの隣のものを有するビット線のトランジスタ612をオフに転換させる。なぜならば、トランジスタ612のドレイン側はVddであり、ソース側は0.3ボルトだからである。その後、SENノードは放電されず、センスアンプはLAT=1をラッチする。1つのCの隣のものを有するかあるいはCの隣のものを有しない他のビット線は、トランジスタ612が導通している。ビット線はコンデンサCsaより遥かに高い静電容量を有するので、SENノードは放電し、センスアンプはLAT=0をラッチする。SENノードが充電されるか放電されるかの結果は、適切なデータラッチ394に記憶される(ステップ906)。ステップ906の後、センスアンプおよびビット線はリセットされ、ステップ902と同様に、状態Cにあるメモリセルに接続されているビット線はその後ステップ908で再び充電される。ステップ910で、1つ以上のCの隣のものに結合されているビット線が、BLC=0.15ボルト+Vth(トランジスタ612の)を印加することによって感知される。システムは、状態Cにあるメモリセルを有する1つ以上の隣のものを有するビット線を感知する。ステップ912で、結果がラッチ394のうちの1つに格納される。ステップ904で2つの隣のものが状態Cにありかつステップ908で1つ以上の隣のものが状態Cにあるという表示を記憶したビット線について、そのビット線は状態Cにある隣のものを2つ以上有すると想定される。2つ以上の隣のものが状態Cにあるという表示をステップ906で記憶しなかったけれどもステップ910で1つ以上の隣のものが状態Cにあるという表示を記憶したビット線について、それらのビット線は状態Cにある隣のものを1つ有すると想定される。
【0107】
図18は、図17のプロセスで実行される操作のうちのいくつかをグラフ的に描くタイミング図である。タイミング図は、ステップ902,904および906に対応する3つの期間に分解されている。ステップ902中、信号BLCを0.5ボルトにトランジスタ612についてのしきい値電圧を加えたものに高められることが分かる。これは、選択されたワード線に接続されていて状態Cにあるメモリセルに結合されている全てのビット線のために行われる。それらのビット線は0.5ボルトに高められるように示されている。そのときに2つのCの隣のものを有するビット線は、ビット線が0.3ボルトに高められるように2つの対応する隣のビット線に結合される。Cの隣のものを有しないビット線は0ボルトに留まる。この時間フレーム中、信号GRSはローである。BLCはその後0ボルトに下げられ、その後0.2ボルトにトランジスタ612についてのしきい値電圧を加えたものに高められ、そのときにビット線が感知される(ステップ904)。状態Cの2つの隣のものの隣のビット線はSENノードを放電させない(線914を参照)。状態Cの2つの隣のものを有しなかったビット線はSENノードを放電させる(線916を参照)。データを適切なビット線ラッチ382にラッチした後に、データはデータラッチ394に転送される。
【0108】
図19は、1つ以上のCの隣のものを有するメモリセルのために補償を提供することを含み得る読み出しプロセスの一実施形態を記述している。図19のプロセスは、図15のステップ804および図16のステップ862の一実施形態のより多くの詳細を提供する。さらに、図16のステップ842を実行するためにステップ940〜950および964〜972が使用され得る。図19のプロセスは、1つのワード線と全ビット線、またはビット線の部分集合を含む1ページのデータのために実行され得る。図19のステップ940で、読み出し基準電圧Vraが、ページに関連付けられた適切なワード線に印加される。これは、そのワード線に接続されたメモリセルのためのコントロールゲートに読み出し基準電圧Vraを印加させる。ステップ942で、ページに関連付けられているビット線は、アドレス指定されたメモリセルが導通するか導通しないかを、それらのコントロールゲートへのVraの印加に基づいて判定するために、感知される。導通するビット線は、メモリセルがオンに転換したこと、従って、それらのメモリセルのしきい値電圧がVraより低い(例えば、状態Eにある)ことを示す。ステップ944で、ビット線についての感知の結果が、それらのビット線のための適切なラッチに格納される。
【0109】
ステップ946で、読み出し基準電圧Vrbが、読み出されるページに関連付けられているワード線に印加される。ステップ948で、ビット線が、前に記載されているように感知される。ステップ950で、状態Cにある隣のメモリセルを有しない、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【0110】
この実施形態は、状態Cにあるメモリセルの隣にある状態Aのデータを補正しようと試みる。引き起こされる可能性のあるエラーは、メモリセルが、実際には状態Aにあるのに状態Bにあるように見えることとなるように高められた見かけ上のしきい値電圧を有することである。ステップ952で、Vrbに第1のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ライン954で、ビット線が、前に記載されているように感知される。ステップ956で、状態Cにある隣のメモリセルを1つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。ステップ958で、Vrbに第2のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ステップ960で、ビット線が、前に記載されているように感知される。ステップ962で、状態Cにある隣接するメモリセルを2つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【0111】
ステップ964で、読み出されるページに関連付けられているワード線に読み出し基準電圧Vrcが印加される。ステップ966で、ビット線が、前に記載されているように感知される。ステップ968で、全ビット線について結果が適切なラッチに格納される。ステップ970で、ページ(または他のデータ単位)中の各メモリセルについてのデータ値が判定される。例えば、メモリセルがVraで導通すれば、そのメモリセルは状態Eにある。メモリセルがVrb(またはVrbと第1のオフセット、またはVrbtと第2のオフセット)およびVrcで導通するけれどもVraでは導通しなければ、そのメモリセルは状態Aにある。メモリセルがVrcでは導通するけれどもVraでもVrb(またはVrbとどちらかのオフセット)でも導通しなければ、そのメモリセルは状態Bにある。メモリセルがVraでも、Vrb(またはVrbとどちらかのオフセット)でもVrcでも導通しなければ、そのメモリセルは状態Cにある。一実施形態では、データ値はプロセッサ392により判定される。ステップ972で、プロセッサ392は、各ビット線について、判定されたデータ値を適切なラッチに格納する。他の実施形態では、種々のレベル(Vra、Vrb、およびVrc)を感知することは異なる順序で行われ得る。
【0112】
第1のオフセットおよび第2のオフセットの量は、特定の実施例に依存する。本願明細書に記載された発明は、第1のオフセットあるいは第2のオフセットの特定の値には依存しない。一実施形態では、第1のオフセットは0.1ボルトで第2のオフセットは0.2ボルトであるが、他の適切な値が使用されてもよい。
【0113】
別々のビット線上の隣接するメモリセル間の容量結合について読み出しプロセス中に補正を行う代わりに、補償はプログラミングのときにも実行され得る。システムはプログラミングのときにデータを知っているので、システムはメモリセルを、そのメモリセルの隣のもののうちの1つ以上が状態Cにプログラムされるべく指定されていれば、意図的に、僅かに低いしきい値電圧を有する状態Aにプログラムすることができる。このようにして、その状態Aのメモリセルは、状態Cに指定された隣のものがプログラミングを終えた後に、正しく読み出される。
【0114】
プログラミングプロセスを不当に低速化せずに密なしきい値電圧分布を達成するための1つの解決策は、2フェーズのプログラミングプロセスを使用することである。第1のフェーズすなわち粗大プログラミングフェーズは、密なしきい値電圧分布を達成することにあまり配慮せずにしきい値電圧をすばやく高めようとする試みを含む。第2のフェーズすなわち精密プログラミングフェーズは、より密なしきい値電圧分布を達成しながらターゲットしきい値電圧に達するためにしきい値電圧をよりゆっくり高めようと試みる。粗大/精密プログラミング方法の一例が、その全体が本願明細書において参照により援用されている米国特許第6,888,758号(特許文献20)に見出される。
【0115】
粗大/精密プログラミング方法の一例では、プロセスは2つのベリファイレベル、すなわちターゲットベリファイレベル(精密ベリファイレベルとも呼ばれる)および粗大ベリファイレベルを使用する。プロセスは、プログラミングプロセスの粗大フェーズを行うことから始まる。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルに達したときに、メモリセルは、0ボルトより大きくて禁止電圧よりは低い値にビット線電圧を高めて精密プログラミングフェーズに入る。粗大フェーズ中、ビット線電圧はほぼ0ボルトである。メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。精密プログラミングフェーズ中、ビット線電圧が0ボルトから中間値に高められるという影響により、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さそうである。メモリセルは、メモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまでは精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達するときに、ビット線電圧は、そのメモリセルのそれ以上のプログラミングを禁止するためにVdd(または他の禁止電圧)に高められる。
【0116】
異なるビット線上の隣接するメモリセル間の結合について補正を行うことを含む、提案されたプログラミング方法は、前述した粗大/精密プログラミングプロセスを使用するけれども、2の代わりに3のベリファイレベルが使用される。例えば、図20は、状態Aについてのしきい値電圧分布980を示す。ベリファイのために使用されるターゲット電圧はVvaである。前に論じられた粗大/精密プログラミングのための従来の技法は、Vcaと記される粗大ベリファイレベルを有する。提案された方式は、以下のように使用されるべき第3のベリファイレベルViaを付け加えることを含む。要約すると、粗大プログラミングフェーズ中、メモリセルは、しきい値電圧がVcaに達するまでプログラムされる。状態Aにプログラムされつつあって、状態Cにプログラムされるべきメモリセルに隣接しているために補償を必要とするメモリセルは、精密フェーズにおいてしきい値電圧がViaに達するまでプログラムされる。他のメモリセルは、精密フェーズにおいて、それらのしきい値電圧がVvaに達するまでプログラムされる。従って、状態Cにある隣のものを有して状態Aにあるメモリセルは、ことによるとターゲットしきい値電圧分布980より低いことさえある、より低いしきい値電圧を持ちそうである。従って、結合は、それらのメモリセルのしきい値電圧をしきい値電圧分布980の中へ高めさせる。
【0117】
図21は、その隣のもののいずれもが状態Cにはないために補償を必要としなかったメモリセルについての粗大/精密プログラミングの一例を示すしきい値電圧対時間およびビット線電圧対時間のグラフを提供する。このグラフは、時点t1,t2,t3,t4およびt5においてプログラミングパルスがメモリセルのためのコントロールゲートに印加されると想定している。t1,t2およびt3に関連するパルスで、メモリセルのしきい値電圧は高められる。時点t3でメモリセルのしきい値電圧はVcaより高くなる。従って、粗大プログラミングフェーズは終わり、精密プログラミングフェーズが始まる。ビット線電圧は、それに応じて0ボルトから中間電圧V1(例えば、1ボルト)に高められる。0ボルトとは対照的に、中間電圧V1の印加は、そのビット線についてのプログラミングプロセスを遅くする。時点t5で、メモリセルのしきい値電圧はVvaより大きく、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。
【0118】
図22は、その隣のもののうちの1つ以上が状態Cにあってこのメモリセルが状態Aにプログラムされるために補償を必要とするメモリセルについてのグラフを示す。時点t3で、メモリセルのしきい値電圧は高まってVcaに達しているので、ビット線電圧は中間電圧V1に高められる。時点t4で、メモリセルのしきい値電圧はViaに達し、それはVcaより大きくてVvaよりは小さいので、メモリセルは、ビット線電圧をVddに高めることによってさらなるプログラミングから締め出される。
【0119】
他の実施形態では、V1のほかに複数の中間電圧が使用され得ることに留意するべきである。例えば、補償を受けるメモリセルは1つの中間ビット線電圧を使用することができ、補償を受けないメモリセルは他の1つの中間ビット線電圧を使用することができる。他の実施形態では、別々のビット線が別々の中間電圧を使用することができる。
【0120】
図23は、図21および22のグラフに従うプログラミングのためのプロセスの一実施形態を記述するフローチャートである。ステップ1000で、「データロード」がコントローラにより発せられて制御回路により受け取られる。ステップ1002で、ページアドレスを示すアドレスデータがコントローラまたはホストからデコーダ314に入力される。ステップ1004で、アドレス指定されたページのための1ページのプログラムデータ(または他のデータ単位)がプログラミングのためにデータバッファに入力される。そのデータは適切なラッチのセットにラッチされる。ステップ1006で、「プログラム」コマンドがコントローラにより状態マシン312に対して発せられる。ステップ1008で、結合を補償するかどうかに関して判定が行われる。特定のメモリセルが状態Cにプログラムされつつありかつその隣のもののうちの1つ以上(または2つ以上)が状態Cにプログラムされるためにプログラミングプロセスの間に特定のメモリセルが補償を受ける必要があるかどうかを例えばコントローラ350、制御回路310、センスブロック400または他のコンポーネントが判定する。コントローラ350および制御回路310はプログラムデータ全体を知っているので、一実施形態では、システムは、補償が必要かどうかを自動的に知る。他の実施形態では、各ビット線のためのデータラッチの各々は、プログラムされるべきデータを知る。従って、センスモジュール400は、ビット線のいずれかが、状態Cにプログラムされるべきデータを有する隣のものを有するかどうかを判定するために図17のステップ908,910および912を実行することができる。そうであるならば、そのような隣のものを有するビット線は補償のために表示される。図23の一実施形態では、状態Cにある隣のものを1つ以上有するメモリセルに提供される補償値が1つだけある。他の実施形態では、状態Cにある隣のものが1つあるかあるいは状態Cにある隣のものが2つあるかによって値の異なる補償が提供され得る。
【0121】
図23のステップ1010で、最初のパルスはその初期値にセットされ、プログラムカウンタはその初期値にセットされ、ビット線電圧はその初期値にセットされる。プログラムされるべきメモリセルについて、ビット線電圧は0ボルトにセットされる。プログラムされないメモリセルについて、ビット線はVddにセットされる。初期電圧の表示をラッチに格納することもできる。いくつかの実施形態では、初期ビット線値をプログラムパルスステップ1012の間に印加することもできる(以下で論じられる)。
【0122】
ステップ1012で、プログラムパルスが適切なワード線に印加される。ステップ1014で、ベリファイプロセスが実行される。メモリセルが粗大プログラミングフェーズにあるならば、ステップ1014のベリファイプロセスは、メモリセルのしきい値電圧が粗大ベリファイレベルに達しているかどうかを判定するために使用される。メモリセルが精密プログラミングフェーズにあるならば、メモリセルについてのしきい値電圧は、ターゲットしきい値電圧(例えば、Vva)または補償を必要とするメモリセルについての中間ベリファイレベル(例えば、Via)と比較される。ステップ1014について、より多くの詳細が下に提供される。ステップ1016で、プログラムされるべきメモリセルの全てについてのステータスが、それらが全てベリファイされたようなステータスであるかどうかが判定される。それらが全てベリファイされたならば、成功したプログラミングプロセスがステップ1018で報告される。それらの全てがベリファイされたのではなければ、ステップ1020でプログラムカウンタPCがプログラム極限値PCmaxと照合される。プログラムカウンタPCがPCmax未満でなければ、プログラムプロセスは失敗していて、ステップ1022で失敗のステータスが報告される。プログラムカウンタがPCmax未満であれば、ステップ1024でプログラム電圧(Vpgm)振幅がステップサイズだけ大きくされてプログラムカウンタPCがインクリメントされる。ステップ1024の後、プロセスはステップ1012に巡り戻って次のVpgmパルスを印加する。
【0123】
図24は、図23のベリファイステップ1014の一実施形態を記述するフローチャートである。ステップ1060で、システムは、メモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかを判定する。図23のプロセスは1グループのメモリセル(例えば、1つの共通ワード線に接続された1ページのメモリセル)のために行われる高レベルプロセスを記述しているということに留意するべきである。図24のプロセスは、プログラムされる各々の特定のメモリセルのために個別に実行される。一実施形態では、1つの特定のメモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかの表示を記憶するラッチがセンスブロックに与えられる。メモリセルが粗大プログラミングフェーズにあるならば、ステップ1062においてベリファイプロセスが粗大ベリファイレベル(例えば、Vca)で実行される。すなわち、センスアンプは、メモリセルのしきい値電圧が適切な粗大ベリファイレベルに達しているかどうかを判定するために使用される。例えば、メモリセルが状態Aにプログラムされつつあるならば、センスアンプは、前に記載されているように、メモリセルのしきい値電圧がVcaに達しているかどうかを試験する。しきい値電圧が粗大ベリファイレベルに達していたならば(ステップ1064)、メモリセルは粗大プログラミングフェーズを終えている。従って、ステップ1066で、次のプログラミングパルスでメモリセルが精密プログラミングフェーズに入るようにビット線電圧が中間電圧V1に高められる。ステップ1066の後、しきい値電圧が精密ベリファイレベル(あるいは中間ベリファイレベルが適切である)も超えたかどうかを判定するためにプロセスはステップ1080(後で論じられる)で続行される。メモリセルのしきい値電圧が粗大ベリファイレベルに達していなければ、ステップ1068においてメモリセルが粗大プログラミングフェーズを続行するようにビット線電圧は現在のレベルに留まる。
【0124】
ステップ1060においてメモリセルが精密プログラミングフェーズにあると判定されたならば、ステップ1080においてメモリセルが状態Aにプログラムされつつあって結合についての補償を必要としているかどうかが判定される。否であれば、ベリファイプロセスはステップ1082において精密ベリファイレベル(例えば、ターゲットベリファイレベルVva、VvbまたはVvc)を用いて実行される。補償が必要とされるならば、ステップ1090において中間ベリファイレベルViaを用いてベリファイプロセスが実行される。メモリセルのしきい値電圧が適切なベリファイレベルより高ければ(ステップ1084)、メモリセルは、ビット線電圧をVddに高めることによってステップ1088においてさらなるプログラミングから締め出される。メモリセルのしきい値電圧がベリファイレベルより高くなければ(ステップ1084)、ビット線電圧はステップ1086においてその現在のレベルに維持され、精密プログラミングフェーズが続行される。
【0125】
セルのフローティングゲート間結合の効果は、前に記載されたように、プログラムシーケンス中に補正され得る。それは、読み出し操作中にも補正され得る。次の議論は、隣のメモリセル状態に応じて読み出しが修正され得るようにビット線間結合効果を修正ファクタとして感知プロセスに組み込む読み出しシーケンスを記述する。図25および26は、隣接するメモリセルからの結合を経験している一定のメモリセルに補償を与えることを考慮に入れるデータ読み出しプロセスの実施形態を説明する。ステップ1100で、全てのビット線が、これらのビット線かつ選択されたワード線に接続されているメモリセルが状態Cにあるかどうかを判定するために、読み出される。これは、Vrcを読み出し比較ポイントとして用いる読み出し操作を実行することによって実行される。状態Cにあるメモリセルを有するビット線は、メモリセルが状態Cにあるという表示をラッチする。その読み出し操作は図18に示されている。ステップ1102で、状態C以外の状態にあるメモリセルを有するビット線が充電される。一実施形態では、それらのビット線は0.5ボルトに充電される。ステップ1102でビット線が充電された後、状態Cにあるメモリセルに接続されたビット線がステップ1104で0.25〜0.4ボルトの間に充電される。状態Cにあるメモリに接続されたビット線のステップ1104における充電は、ステップ1102で充電されたビット線を0.5ボルトより高い電圧へ上方結合させる。例えば、図26は、状態Cにあるメモリセルを有しないビット線を表すビット線BLnを示す。グラフは、ビット線がステップ1102の間に0.5ボルトに充電されることを示す。ビット線BLn+1は状態Cにあるメモリセルに接続されていて、BLn+1はBLnの隣のものである。ステップ1104の間、ビット線BLn+1はおよそ0.4ボルトに充電される。そのときに、ビット線BLnは、破線1120により描かれているように、0.5より高い電圧に結合される。ステップ1104で充電された隣のものに隣接しないビット線は、線1122により描かれているように、0.5ボルトに留まる。図25のステップ1106において、全てのビット線(またはビット線の部分集合)が感知される。Cの隣のものを有するビット線は、より高いビット線電圧を有すると感知される。そのより高いビット線電圧の故に、ビット線は、より多くの電流を伝導し、それはより低いしきい値電圧の外観を与える。これは隣接するセル間の結合を補償する。Cの隣のものを有するセルは、それらの隣のものがプログラムされた後、そのオリジナルのプログラムレベルより高い浮動電圧に結合される。このフローティングゲート間結合補償を有する読み出しは、セルのオリジナルのプログラムレベルを正しく読み直す。この読み出し補正は、多数の読み出し操作からの時間ペナルティなしで行われる。1つの読み出し操作が、補正を必要とするメモリセルと補正を必要としないメモリセルとについて結果を得る。
【0126】
前に記載された1つの実施形態では、セルソースノイズが除去されているときにいくつかの感知ストローブがあり得る。図25および26に関して前に記載されたプロセスは、全ての感知ストローブの間あるいは後の感知ストローブの間に応用され得る。例えば、2ストローブを有する1つの実施形態では、第1のストローブは図25および26のプロセスを使用しないかも知れず、第2のストローブは図25および26のプロセスを使用するかもしれない。
【0127】
前の記述は、プログラミングの間および読み出しの間のフローティングゲート結合を補償するためのプロセスを記述している。いくつかの実施形態では、プログラミングおよび読み出しの両方の間に補償が行われ得る。しかし、たいていの実施形態では、補償はプログラミングの間または読み出しの間に行われるけれども、その両方の間に行われるわけではない。補償を読み出しの間に行うのか、あるいはプログラミングの間に行うのかの決定は、メモリシステムの使用法に基づいてなされ得る。例えば、データはほとんどプログラムされないけれども多数回読み出されることになるであろうホストにおいてメモリシステムが使用されるのであれば、プログラミングの間に補償するほうがよいかもしれない。あるいは、ホストが多数回プログラムしてほとんど読み出さないならば、補償を読み出しプロセスの間に行うほうがよい。
【0128】
一実施形態では、メモリシステムは、読み出しプロセスの間でかつプログラミングプロセスの間に補償を行うための技術を含むように製造され得る。製造プロセスの間またはその後の何らかの段階で、メモリシステムは、読み出しプロセスの間にだけまたはプログラミングプロセスの間にだけ補償を行うように設定され得る。
【0129】
図27は、読み出しプロセスの間またはプログラミングプロセスの間に補償を行うようにメモリシステムを設定するためのプロセスを記述するフローチャートを提供する。ステップ1200で、メモリシステムは、読み出し中に補償を行うと共にプログラミング中に補償を行う能力を伴って製造される。これは、半導体ウェハを製造することを含み得る。任意に、ステップ1200は、当該技術分野で知られているプロセスを用いてウェハをパッケージングすることも含み得る。このパッケージは、前述した設定を行うためのスイッチを有するかもしれないし有しないかもしれない。集積回路上の記憶素子に関連付けられたそのようなスイッチを付加するための技術は当該技術分野において知られている。ステップ1202で、補償が読み出し中に行われるべきであるのかあるいは補償がプログラミング中に行われるべきであるのかを示すために、ステップ1200で製造されたメモリシステムの一部分であるフラグ(補償フラグ)が、意図された使用法に基づいてセットされる。フラグは、製造プロセス中、製造プロセス後、試験プロセス中、あるいは装置が使用されている間にセットされ得る。ステップ1204で、装置の使用中に、システムは補償フラグをチェックする。補償フラグが読み出し中に補償を行うためにセットされていたならば、ステップ1206でメモリシステムは読み出しプロセス中に結合についての補償を提供する。補償フラグがプログラミングのためにセットされれば、メモリはプログラミングプロセス中に結合についての補償を提供する(ステップ1208)。
【0130】
フラグはステップ1202で多くの異なる仕方でセットされ得る。製造または試験プロセスの間に、補償が読み出し中に行われるべきかあるいはプログラミング中に行なわれるべきかを示すためにROMヒューズがセットされ得る。他の実施形態では、フラグの指示を記憶するための他の手段(例えば、不揮発性アレイ内のメモリセル、フリップフロップ、あるいは他の記憶装置)が、製造プロセス中あるいは製造プロセス後に実現されかつ/またはセットされ得る。フラグは試験プロセス中あるいは使用中にもセットされ得る。さらに、集積回路のためのパッケージングは、ホストへのメモリカードの挿入の前にユーザによりセットされ得るスイッチを含むことができる。
【0131】
いくつかの実施形態では、補償フラグは、メモリシステムがホストに挿入された後にステップ1202でセットされ得る。図28〜31は、そのような設定の例を提供する。図28のステップ1300で、メモリシステムはホストに組み込まれる。ホストの例は、デジタルカメラ、ミュージックプレーヤ、移動電話、ハンドヘルド計算装置、あるいは他の計算装置を含むことができる。例示を目的として、ミュージックプレーヤがプログラムするより遥かに頻繁に読み出しを行うであろうということを考慮する。従って、ミュージックプレーヤは、プログラミング中に補償を提供することができる。その一方で、デジタルカメラは、より頻繁にプログラムし得るから、読み出しプロセス中に補償プロセスを提供するのがより適切である。図28のステップ1302で、ホストはそのプリファランスをコントローラに知らせる。すなわち、ホストは、既知のプロトコルを使用するコントローラに自身が補償を何時実行することを望むかを伝えることができると知るように事前プログラムされる。ステップ1304で、コントローラは、ホストからプリファランスを受け取って、ホストから受け取ったそのプリファランスに基づいて補償フラグ(メモリセルまたは他の記憶装置に記憶される)をセットする。
【0132】
図29はメモリシステムを設定するための他の1つの実施形態のフローチャートを提供する。ステップ1320で、メモリシステムがホストに組み込まれる。ステップ1332で、ユーザはプリファランスを選択することができる。一実施形態では、ユーザは、機械的スイッチを動かすことによってあるいはホストのユーザインターフェイスでプリファランスを選択することによってプリファランスを選択する。例えば、デジタルカメラのユーザは読み出し中に補償を行うことを選択することができ、ミュージックプレーヤのユーザはプログラミング中に補償を行うことを選ぶことができる。ステップ1334で、ホストはそのプリファランスをコントローラに知らせる。ステップ1336で、コントローラは、ホストから受け取られたプリファランスに基づいて補償フラグをセットする。
【0133】
図30は、メモリシステムを設定するためのプロセスの他の1つの実施形態を記述するフローチャートを提供する。ステップ1330で、メモリシステムはホストに組み込まれる。ステップ1332で、コントローラはホストが身元を明らかにすることを要求する。例えば、ホストは、自身がデジタルカメラ、ミュージックプレーヤ、PDA、携帯電話機などであることを示すことができる。コントローラは、ステップ1334でその情報を受け取ってホスト情報のテーブルにアクセスする。テーブルは、各々のモデルまたはタイプの装置について補償フラグをどのようにセットするかを明らかにする。そのテーブルとホストから受け取られた情報とに基づいて、コントローラは設定を選択する(例えば、読み出し中に補償を行うか、それともプログラム中に補償を行うかを選択する)。ステップ1336で、コントローラは、ステップ1334で決定された設定に基づいてフラグを適宜セットする。
【0134】
図31は、メモリシステムを設定するためのプロセスの他の1つの実施形態を記述するフローチャートである。ステップ1360で、メモリシステムはホストに組み込まれる。ステップ1362で、ホストは複数のファイルをメモリシステムに格納させる。所定量の時間の後、所定量のファイルがメモリシステムに格納された後、あるいはホストまたはユーザからのコマンドに基づいて、コントローラはステップ1364でメモリシステムに格納されている最も代表的なファイルタイプを判定する。例えば、10個のファイルが格納されていて、そのうちの8個がミュージックファイルであるならば、コントローラは、最も代表的なファイルがミュージックファイルであると判定する。ステップ1366で、コントローラは、代表的ファイルタイプに基づいて設定を決定する。例えば、ファイルタイプを記録したテーブルをメモリシステムに格納することができ、各ファイルタイプについての補償フラグのために1つの値が格納される。フラグの値は、補償をプログラミング中に行うかそれとも読み出し中に行うかを示すことができる。ステップ1368で、コントローラは、ステップ1366で決定された設定に基づいて補償フラグをセットする。
【0135】
隣接するセルの中の電荷に起因する摂動についてのプログラミング中の補償
セル間のフローティングゲート結合(「ユーピン効果」)
前述したように、1つのメモリセルの電荷蓄積素子の中にプログラムされた電荷は、隣接するメモリセルの電界を乱す電界を生じさせる。これは、本質的に電荷蓄積素子を有する電界効果トランジスタである隣のメモリセルの特性に影響を及ぼす。特に、感知されるときには、メモリセルは、乱され方の程度がより低いときよりも高いしきい値レベルを有する(あるいはより多くプログラムされている)ように見える。
【0136】
一般的に、1つのメモリセルが第1の界環境下でプログラム−ベリファイされて、隣接セルが後に異なる電荷でプログラムされたために後に異なる界環境下で再び読み出されるならば、「ユーピン効果」と称される隣接するフローティングゲート間の結合により読み出し精度が影響を受けるかもしれない。半導体メモリにおいて集積化がますます進むと、メモリセル間の蓄積された電荷に起因する電界の摂動(ユーピン効果)は、セル間の間隔が縮むに連れてますます明らかになってくる。
【0137】
読み出し中のBL−BLおよびWL−WLユーピン効果についての補正
前のセクションに記載されたように、1つの方法は、読み出し操作中にBL−BLユーピン効果を補償することである。それは、隣接するビット線上のセルのプログラム済み状態が始めに留意されて、現在のビット線上の現在のセルを読み出すときに適切な補償を行うために使用される、ルックアヘッド(「LA」)手法である。隣接するセルのデータを読み出すために、現在のセルのビット線で付加的な感知が行われる。隣接するビット線上の検出されたデータに基づいて、現在のセルを感知するときに適切な量の補償が使用される。
【0138】
読み出し中のWL−WLユーピン効果についての補正は、本質的に、ルックアヘッド(「LA」)読み出しと称されているものである。LA読み出し方式は、その全体が本願明細書において参照により援用されている、米国特許第7,196,928号と(特許文献21)、2006年10月に公開された「Read Operations For Non-Volatile Storage That Includes Compensation For Coupling」という米国特許出願公開第2006/0221714号(特許文献22)とに開示されている。LA補正を伴う読み出しは、基本的に、隣接するワード線上のセルにプログラムされたメモリ状態を調べ、現在のワード線上の読み出されつつあるメモリセルに対してそれらが持つ摂動効果を補正する。ページが前述した好ましいプログラミング方式に従ってプログラムしているのであれば、隣接するワード線は現在のものの直ぐ上のワード線からのものである。LA補正方式は、隣接するワード線上のデータが現在のページの前に読み出されることを必要とする。
【0139】
代わりの直接LA方式(「DLA」:Direct LA scheme)が、その全体が本願明細書において参照により援用されている2006年3月17日に出願された「System For Performing Read Operations On Non-Volatile Storage With Compensation For Coupling」という米国特許出願第11/377,972号(特許文献23)に開示されている。DLA方式も、隣のワード線上の隣接するセルのプログラム済み状態を考慮に入れることによって現在のワード線におけるセルの読み出しに対して補正を行う。読み出し中に現在のワード線を単にバイアスする代わりに、補正は、結果として生じるフローティングゲート結合がWL−WLユーピン効果エラーを相殺するように、隣接するワード線をバイアスすることによって成し遂げられる。
【0140】
読み出し中にユーピン効果を補正することは可能であるけれども、メモリがセルあたりにますます多くのメモリ状態をサポートするとき、操作はますます厄介になる。2ビットまたは4状態のメモリでは、現在のワード線上のページのプログラム済み状態を判定するために既に少なくとも3回の読み出しがある。補償を行うために隣のワード線上のデータが使用されるならば、隣のワード線上のページも読み出されなければならない。それゆえ、現在のワード線上の現在のページを読み出すことは、隣のワード線上の隣のページを読み出すことも必要とする。
【0141】
プログラミング中のユーピン効果の補正
多くの点で、プログラミング性能を犠牲にしてではあるけれどもプログラミング中にユーピン効果を補正するのが好ましい。多くの記憶装置は、いったんデータがプログラムされた後はほとんどあるいは全く更新されることなくそれが多数回読み出されるという仕方で使用される。従って、装置の総合的性能は、補正という重荷をプログラミング側に移すことによって最善にされる。
【0142】
ユーピン効果は隣接するセルにより強く影響を及ぼし、それはメモリアレイの1つの行に沿うビット線を横断することがあり(BL−BLユーピン効果)、また1つの列に沿うワード線を横断することがあり得る(WL−WLユーピン効果)。それは、セルにとっての界環境の、プログラム−ベリファイの時点と隣接するセルがプログラムされた後の読み出しの時点との間での非対称性を最小にすることによって、軽減される。
【0143】
プログラミング中にユーピン効果を減少させる方法がいくつかある。1つの方法は、1つのワード線に沿う1ページのメモリセルのためのプログラミングが2以上のパスで完了させられるマルチパスプログラミングを行うことである。通例、少なくとも2つのプログラミングパスが実行される。第1のパスは、ページ中の全セルをそれらのそれぞれのターゲット状態の近くへ、ターゲット状態について普通はそれであるべきものより低くオフセットしている対応するベリファイレベルを用いて、プログラムする。次のパスは、そのようなオフセットを伴わない標準のベリファイレベルを用いてプログラミングを完成させる。セルに対するユーピン効果は、セルのプログラミング後の隣のものの変化(すなわち、プログラミング)によって与えられるに過ぎない。次のパスがフローティングゲート間の電荷の最小限の変化を伴って実行されるときには、プログラム−ベリファイ操作とその後の読み出し操作との間に界環境の最小限の非対称性があり得る。従って、ユーピン効果は2パスプログラミング手法で最小にされる。この手法は、BL−BLユーピン効果を最小にすることができる。後述されるように、それは、ワード線からワード線へとプログラムしてゆくときに2パスが特定の順序で実行されるならば、WL−WLユーピン効果を減少させることもできる。
【0144】
前述した最低2パスのプログラミング方式の1つの不利な点は、各々のプログラミングが、データが適切になる前に少なくとも2パスを必要とすることである。換言すれば、データは、最終パスが完了するまでは有効ではなく、従って有用ではない。
【0145】
1つの代わりのマルチパスプログラミング方式は、全ビットが適切になるまで各パスが1つの付加的なビットを漸次プログラムするようにマルチビット符号化を採用することである。このようにして、各パスは、マルチビットデータの少なくとも1ビットをプログラムすると共に、セルにプログラムされたマルチビットデータが有効になる前に全パスを完了させることを必要とせずに有用なデータを格納することができる。BL−BLユーピン効果を減少させるために、バイナリプログラミングの各パスの間の電荷の大きな変化を避ける符号化が使用される。そのような特性を有する1つの好ましい符号化は、図14と関連して前に記載された「LM」符号化により与えられる。LM符号化は、各パスが1ビットのデータを格納することを効果的に可能にするけれども、ユーピン効果をおよそ50%減少させるだけである。
【0146】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされた摂動を引き起こす電荷にもかかわらず正しいターゲット状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによって、セルの所与のターゲット状態へのプログラム中に補償される。
【0147】
これは、隣接するメモリセルのメモリ状態を前もって判定し、プログラムされるメモリセルのターゲット状態と隣接するメモリセルのメモリ状態との関数としてベリファイレベルを調整することによって成し遂げられる。この方式は、プログラミングが単一パスで完了させられるという利点も有する。
【0148】
図32は、プログラミング中にデータ依存ベリファイレベルを用いてユーピン効果を補償する方法を示す流れ図である。これは、本質的に、データ依存ベリファイレベルを使用するワンパスプログラミング方式である。
ステップ1400:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング電圧を1グループのメモリセルに並行して印加する。
ステップ1410:ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイする。
ステップ1420:グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ1430:所与のターゲット状態にプログラムされるべきメモリセルは全てベリファイされたか?そうであるならば、ステップ1440に進み、そうでなければ、ステップ1400に進む。
ステップ1440:所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【0149】
図33は、本発明を説明するのに適するメモリアレイの一部分を示す。例えば、1つのワード線WLnにより接続される1ページのメモリセルが並行してプログラムされる。メモリセル1460などの、ページ中のセルのうちの任意の1つに対するユーピン効果は、大部分は、プログラムされるメモリセル1460の近隣の隣接するセルの後のプログラミングにより与えられる。特に、ワード線WLnに沿って、左側の隣のものはセル1472であり、右側の隣のものはセル1474である。同様に、プログラムしているセル1460はビット線BL2を介してセンスアンプ(図示せず)に結合されている。ビット線BL2に沿って、プログラム中のセル1460の下の、ワード線WLn−1上の隣のものはセル1482であり、上のWLn+1ワード線上の隣のものはセル1484である。
【0150】
メモリセル1460の隣のものは可能なメモリ状態のうちの任意の1つにあることができて、各々が異なる量の電荷をその電荷蓄積素子に有し、従って異なる量の摂動を主張する。隣のものが4つある場合には、摂動の範囲は、これらの隣のものにおける可能なメモリ状態の順列により与えられる。一般的に、当面の問題に関連のある隣のものは、メモリセル1460がプログラミングを終えた後にプログラムされるものだけである。実際問題として、メモリセル1460により見られる摂動の量、従って補償レベルの数を扱いやすい数に量子化することが好ましい。例えば、補償レベルの数を1ビットにより符号化することができ、この場合、「0」は無補償を意味し、「1」は所定のレベルの補償を意味することができる。他の1つの実施形態では、4つに及ぶ可能な補償レベルを表すために2ビットが使用され得る。
【0151】
現在のワード線WLnに印加される所定のオフセットベリファイレベル
一実施形態では、ベリファイは、プログラム−ベリファイされるべきメモリセルに関連付けられたワード線に印加される所定のオフセットベリファイ電圧レベルで感知することによって実行される。例えば、図33を参照して、メモリセル1460がプログラム−ベリファイされるならば、所定のベリファイ電圧レベルがWLnに印加される。
【0152】
図34は、隣接する電荷に起因する摂動を補償するためにプログラミング中にWLn上のベリファイレベルを調整することを示す。この例は、1ビットにより符号化される2つの可能な補償レベルを示す。隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない。従って、ベリファイ感知中にWLnワード線に印加されるベリファイ電圧レベルは、セル1460などのセルをターゲット状態にプログラムするのに適切な標準のV(ターゲット状態)と同じである(補償符号「1」)。一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、標準ベリファイレベルを所定のオフセット電圧ΔVだけ低くオフセットさせることによって補償が行われる、すなわち、V−ΔVの電圧がWLnに印加される(補償符号「0」)。オフセットΔVは、ΔV(隣接状態)により示される隣接状態の関数である。図34の例はNANDメモリに関連し、そこではWLnはNANDチェーンの中の選択されたワード線であって(図2を参照)、選択されていないワード線の残りには、ベリファイ操作中、電圧Vpassが印加される。WLn−1およびWLn+1は、WLnに隣接する選択されていないワード線のうちの2つとして示されている。
【0153】
一般的に、オフセットは、それにプログラムされるべきターゲット状態に依存する隣のものからの摂動の量がどれほどかの関数である。プログラム済み状態が多いほど、より多くの電荷および摂動がある。オフセットを、工場におけるメモリチップの初期試験および品質認定により前もって定めることができる。
【0154】
図32の例は1ビット補償方式を示しているが、2ビット補償方式などのより精細な方式も可能である。2ビットの場合には、WLnに印加され得る4つの可能な電圧レベル、すなわちV、(V−ΔV1)、(V−ΔV2)および(V−ΔV3)がある。
【0155】
図35は、ワンパスデータ依存ベリファイレベルが現在のワード線にだけ印加される図32に示されているベリファイステップの一実施形態を示す流れ図である。ベリファイステップ1410は、
ステップ1412:ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイすることと、
ステップ1414:ベリファイは、ベリファイされるメモリセルのワード線上の所定のベリファイレベルにより与えられる電圧を用いて感知することを含むということとを含む。
【0156】
プログラムされるべきメモリセルがNANDチェーンの一部であるならば(図2を参照)、所定のベリファイレベルは、プログラムされるメモリセルに関連付けられたワード線に印加される。チェーン中の他の全てのメモリセルは、それらをオンに転換させるために、それらに関連付けられたワード線にパス電圧Vpass(遠くのドレイン側にあるセルはVddであり得る)を印加される。
【0157】
1ビット補償方式では、ページの全セルのコントロールゲートが同じワード線WLnを共有するので、プログラミング中のベリファイは、1つの所与のターゲット状態についてページに対して2回実行されなければならない。ページ中の、その隣のものが補償を必要としないセルのためには、標準ベリファイ電圧レベルVがWLnに印加される。補償を必要とするセルのためには、オフセットベリファイ電圧レベルV−ΔVがWLnに印加される。
【0158】
他の実施形態では、より多くの補償レベルが考えられるということが理解されるべきである。いろいろなレベルは1つより多いビットにより符号化され、ベリファイ操作は、いろいろな補償レベルを有するページのいろいろな部分集合に対して実行されなければならない。プログラミングを受けるセルのための補償レベルが決定されると、それはベリファイ操作中に使用されるべくセルの同じ列または感知回路にラッチされる。前述したように、ベリファイできないセルは次のプログラミングパルスによるさらなるプログラミングを受けさせられ、ベリファイされたものはさらなるプログラミングを受けないようにプログラム禁止にされる。
【0159】
プログラミング中にベリファイレベルをターゲット状態と隣接するメモリセルの前もって判定されたメモリ状態との関数として、調整することにより、隣接するセル上の現存するあるいは予想される電荷に起因するユーピン効果は本質的に1プログラミングパスで補償される。全セルを第1のパスでそれらのターゲット状態の近くにプログラムし、その後に、好ましくは隣接するセルがプログラムされた後にプログラミングをさらなるパスで完了させる必要はない。実際には、プログラミングは、性能を高めるために好ましくは2以上のフェーズ(例えば、粗大/精密フェーズ)を採用し得るけれども、ユーピン効果を減少させるために2つの別々のパスを完全に異なる時点で実行する必要はない。シングルパスのプログラミングは、最大のプログラミング性能と、ワード線からワード線へのより簡単なプログラミングシーケンスとを考慮に入れる。
【0160】
より低いオフセットベリファイレベルを用いる操作に伴う問題点
シングルパスプログラミング方式あるいはマルチパスプログラミング方式のいずれの場合にも、パスのうちの少なくとも1つにおいてベリファイレベルはより低くオフセットされなければならない。低すぎるベリファイレベルを使用することには問題が生じるかもしれない。
【0161】
一般的に、隣のものからのユーピン効果に起因するセルの摂動は、セルの見かけ上のしきい値レベルを高めるという効果を有する。換言すれば、セルは、ユーピン効果なしの場合より多くプログラムされているように見える。従って、ユーピン効果を考慮に入れるときにはベリファイレベルは標準より低くなければならない。2パスプログラミング方式では、特にそうである。第1のパスは完全にユーピン効果の影響を受け、第2の仕上げパスは、ユーピン効果の影響がより少なくて、ベリファイし得る。従って、最悪の場合のユーピン効果に起因する「過剰プログラミング」を回避すると共に、メモリセル間でしきい値レベルの集団のために密な分布を保証するために、第1のパスのベリファイレベルは標準より低くオフセットされなければならない。しかし、次の説明から分かるように、オフセットは1Vほどの低さかあるいはそれ以上であり得る。これは、感知中に操作上の難点を引き起こすかあるいは1つのメモリセルがサポートし得るメモリ状態の数を制限することがある。
【0162】
図36Aは、1つのしきい値ウィンドウ内で4つの別々のクラスタをなして分布する4つのメモリ状態をサポートするメモリセルの典型的な集団の例を示す。各クラスタは、4つのメモリ状態のうちの1つを有する集団メモリセルを表す。この例は、−2.5Vから4Vに及ぶしきい値ウィンドウを示す。一般的に、しきい値ウィンドウの下限は、負の電圧で感知するセンスアンプの能力により決まる。その一方で、しきい値ウィンドウの上限は、高電圧トランジスタの降伏電圧と、大量の電荷を保持するためのフローティングゲートの劣化とにより決まる。
【0163】
図36Bは、現在感知されているセルのプログラム済みしきい値レベルに対する高くプログラムされた隣接するセルの影響を示す。これは、現在のセルの知覚されるしきい値レベルを高めるユーピン効果である。例えば、高くプログラムされた隣のものは、その電荷蓄積素子(例えば、フローティングゲート)に相当の量の電荷をプログラムされ、その隣接する電荷の影響は、感知される現在のセルのフローティングゲートに結合する。各々の隣のものは、現在のセルの知覚されるしきい値レベルを350mVも高め得る。セルが、その直ぐ隣のものの4つ全て(左、右、上および下)により乱されるならば、それは、知覚されるしきい値レベルを1V超高め得る。従って、その隣のもののプログラム済み状態により、各セルの見かけ上のしきい値レベルは、ゼロからある最高ボルト数までの範囲内でシフトされ得る。各クラスタに対する正味の効果は、その末尾がより高いボルト数のほうへ散開させられるということである。
【0164】
図37Aは、感知される現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。この例は、感知される現在のセルが状態「A」にあるメモリセルの集団に属することを示している。集団1502は、いかなる隣接摂動にもさらされないメモリセルを表す。隣接するビット線上の隣のものの両方が後に最もプログラムされた状態にプログラムされることにより集団のいくつかのセルが乱されるときに1502の末尾は1504へ変更される(BL−BLユーピン効果)。同様に、次のワード線(WLn+1)上の隣のものが後に最もプログラムされた状態にプログラムされることによって集団のいくつかのセルが乱されるときにも1504の末尾はさらに1506へ変更される(WL−WLユーピン効果)。従って、BL−BLユーピン効果およびWL−WLユーピン効果の両方の組み合わせが、セルをより高いしきい値電圧レベルを有するように見えさせ得るということが分かる。例えば、最悪の場合のBL−BL効果はしきい値電圧を250mVシフトさせることができ、一方の隣のものからの最悪の場合のWL−WL効果はしきい値電圧を350mV、両側からならば700mV、シフトさせることができる。その組み合わせは600mVから約1Vにおよび得る。
【0165】
前述したように、ユーピン効果にさらされたメモリセルの見かけ上のしきい値レベルの上昇に起因して「過剰プログラム」しないために、マルチパスプログラミングの第1のパスのためのベリファイレベルは、最悪の場合のユーピン効果を実質的に含むオフセット1512だけ低くセットされる。従って、第1のプログラミングパスについて、高くプログラムされた隣接するセルに起因して知覚される高められたしきい値レベルにより明らかにされる現在のセルの起こり得る「過剰プログラミング」を避けるために、第1のパスのためのベリファイレベルは1Vも低くオフセットされなければならないかもしれない。
【0166】
図37Bは、ユーピン効果を減少させるための、マルチパスプログラミングの第1のパスのためのベリファイレベルのシフトを示す。例えば、2つのパスがあって最終のパスが状態「A」、「B」および「C」のためにそれぞれ標準ベリファイレベルV2a、V2bおよびV2cを使用するならば、これらのターゲット状態の各々へのプログラミングのための対応する第1のパスのベリファイレベルV1a、V1bおよびV1cは、所定量だけ低くオフセットされ得る。例えば、V1aはV2aから所定量1512(図37Aも参照)だけ低くオフセットされる。
【0167】
マルチパスプログラミング方式において第1のパスのベリファイレベルをオフセットさせることと、シングルパスプログラミング方式においてユーピン効果を補償するために使用される低いほうのベリファイレベルをより小さな程度にオフセットさせることとは、消去済み状態「E」についての問題を引き起こす。一般的に、なるべく多くの別々の状態をはめ込むためにしきい値ウィンドウの広さを最大にするために、消去済み状態はしきい値ウィンドウの下端の限界に置かれる。前に説明されたように、この限界は、負電圧で感知するセンスアンプの能力により制御される。例えば、下限は、図に示されているように−2.5Vであり、実際問題として、消去済み状態の、明瞭に画されかつしっかりと制御される分布を持つことが好ましい。通例、それは、より密な分布を形成するための消去後のソフトプログラミングにより成し遂げられる。ソフトプログラミングは、消去済み状態のための所定のレベルに関してのプログラム−ベリファイを必要とする。しかし、オフセットした第1のパスのベリファイレベルが必要であれば、そのオフセット1510はベリファイレベルをしきい値ウィンドウの下限を超えてシフトさせるかもしれない。オフセットを限界内に保つために全てのクラスタをより正の端のほうへシフトさせることが可能ではあるけれども、それはしきい値ウィンドウの有効範囲を狭める。
【0168】
隣接ワード線をバイアスすることによるベリファイレベルの仮想オフセット
本発明の他の1つの態様に従って、調整されたベリファイレベルでプログラム−ベリファイされるときに、隣接するメモリセル中に後にプログラムされる摂動を引き起こす電荷に関わらず正しいターゲット状態がセルから読み出されることとなるように隣接ワード線を適宜バイアスすることによって、ベリファイレベルの調整が仮想的に成し遂げられる。これは、プログラムされるセルのベリファイレベルに現実のオフセットを使用することを回避し、これにより、最低メモリ状態をベリファイするときに負電圧感知を必要とするようにベリファイレベルを低くシフトさせすぎるかもしれないという問題を回避するという利点を有する。
【0169】
前に図36Aおよび36Bに関連して説明したように、より低くオフセットされたベリファイレベルを使用することは望ましくない。本発明のこの態様は、隣接するワード線WLn+1を適切にバイアスすることで同じ効果を達成することによって、標準より低いベリファイレベルを使用するという問題を回避する。
【0170】
図38は、好ましい実施形態に従う、標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受けるワード線上の標準ベリファイレベルと隣接するワード線をバイアスすることとの組み合わせを示す。この例は、NANDメモリに使用される1ビットにより符号化される2つの可能な補償レベルを示す。特に、WLnはNANDチェーンの中の選択されたワード線であり(図2を参照)、選択されていないワード線の残りには、ベリファイ操作中に電圧Vpassが印加される。
【0171】
隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない(補償符号「1」)。従って、ベリファイ感知中にWLnワード線に印加されるベリファイ電圧レベルは、セル1460などのセルをターゲット状態にプログラムするのに適切な標準のV(ターゲット状態)と同じである(補償符号「1」)。同時に、チェーン内の選択されていないワード線の残りには、ベリファイ操作中に電圧Vpassが印加される。WLn−1およびWLn+1は、WLnに隣接する選択されていないワード線のうちの2つとして示されている。特に2つの電圧のうちの1つ、V0=VpassがWLn+1に印加される。
【0172】
一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、補償が必要とされる(補償符号「0」)。この場合、V0より低いV1がWLn+1に印加される。V1は、図34に示されている補償符号「0」のための設定と事実上同様の効果を有することとなるように、前もって決められる。しかし、標準ベリファイレベルをより低くオフセットさせてそれをWLnに印加する(補償符号「0」)。同等の方式は、より低くオフセットされたVpassであるV1をWn+1に印加することである。
【0173】
従って、1ビット補償では、ワード線電圧設定は標準ベリファイ操作と同様であり、補償が不要であるときには隣のワード線WLn+1にV0=Vpassが印加され、補償が必要なときには隣のワード線にV1が印加される。電圧V1をVpass−ΔV’と見なすことができ、ここでΔV’は、図34に示されているWLnにおける標準ベリファイレベルに対する仮想オフセットの効果を生じさせるための余分なバイアスである。好ましくは、隣接するワード線上の電圧は、補償を伴うセルのベリファイ中のより低い電圧V1から、無補償の他のセルのベリファイ中のより高い電圧V0へ高められる。
【0174】
図39は、ワンパスデータ依存ベリファイレベルが現在のワード線と隣接するワード線との両方に印加される、図32に示されているベリファイステップの他の1つの好ましい実施形態を示す流れ図である。隣接するワード線(例えば、WLn+1)に対するバイアス電圧の付加的な印加は、現在のワード線(例えば、WLn)に印加されるベリファイ電圧レベルを仮想的にオフセットさせるという効果を有する。これは、前述したベリファイ電圧を低下させることに関連する不利益を回避する。実際に、仮想オフセットの効果は、WL−WL結合効果についてのメカニズムを真似、従ってWL−WL結合効果を調整することに関して、より精密である。
ステップ1530:ワード線およびビット線によりアクセスされ得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1540:1グループのメモリセルが並行して所与のターゲット状態にプログラムされるように指定する。
ステップ1550:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループのメモリセルに並行して印加する。
ステップ1560:所与のターゲット状態の第1の関数である所定のベリファイ電圧レベルを、グループのメモリセルにアクセスするワード線に印加する。
ステップ1562:ベリファイされるメモリセルに隣接するメモリセルのターゲット状態の第2の関数である所定のバイアス電圧レベルを隣接するワード線に印加する。
ステップ1568:プログラムされるメモリセルのグループをベリファイするために感知する。
ステップ1570:所与のターゲット状態にプログラムされたとベリファイされたグループの中のメモリセルのさらなるプログラミングを禁止する。
ステップ1580:所与のターゲット状態にプログラムされるべきメモリセルが全てベリファイされたか?そうであるならば、ステップ1590に進み、そうでなければ、ステップ1540に進む。
ステップ1590:所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【0175】
WL−WLユーピン効果を半分だけ減少させるための好ましいプログラミング方式
隣接するワード線上のメモリセル間に摂動が生じるWL−WLユーピン効果に関して、それは、好ましいプログラミング方式を用いてプログラミング中に軽減される。これは、実際上、摂動を半分だけ減少させる。残りの半分も、前述したプログラミング操作中または読み出し操作中に種々の補償方式のうちの1つまたはそれらの組み合わせを用いて訂正され得る。
米国特許第6,781,877号(特許文献24)は、WL−WLユーピン効果がメモリアレイ中のページを最適な順序でプログラムすることによっても減少させられるプログラミング方式を開示している。
【0176】
1つの好ましいプログラミング方式は、ワード線に関連付けられているページを最適な順序でプログラムさせる。例えば、どの物理的ページも1ページのバイナリデータを保持するバイナリメモリの場合には、ページは、好ましくは、例えば下から上へなどの終始一貫した方向に沿ってシーケンシャルにプログラムされる。この方法では、特定のページがプログラムされるときに、その下側のページは既にプログラムされている。それらがどんな摂動を引き起こす効果を現在のページに及ぼすとしても、それらは、現在のページがプログラム−ベリファイされるときにそれらの摂動を考慮して償われる。本質的に、ページをプログラムする順序は、プログラムされる現在のページが、それがプログラムされた後には、その環境に最小限の変化を見ることを可能にするべきである。従って、各々のプログラム済みページはその上側のページによってのみ乱され、WL−WLユーピン効果は、このプログラミング順序によって実際上半分に減少させられる。
【0177】
メモリセルの各物理ページが多状態で、結果としての複数の論理データページが別々のパスでプログラムされるメモリの場合には、順序はあまり単純ではない。例えば、4つのメモリ状態を符号化する2ビットメモリでは、1つのワード線に関連付けられた各物理ページは、各セルからの2ビットデータの単一のページまたは2つの別々の論理ページ(それぞれ各セルからの1ビットデータの下側および上側ビット)と見なされ得る。従って、各セルが、2ビット符号に対応する4つの状態のうちのそのターゲット状態に直接プログラムされて、物理ページがプログラムされ得る。あるいは、2つのビットの各々は、始めに下ビットのページで、その後に上側ビットのページで別々にプログラムされ得る。各物理ページの論理ページが別々にプログラムされるときには、修正された最適順序が可能である。
【0178】
図40は2ビットメモリセルを有するメモリの例を示し、そのページは、隣接するワード線上のメモリセル間のユーピン効果を最小にするように最適な順序でプログラムされる。便宜上、表示法は、物理ページP0,P1,P2・・・がそれぞれワード線W0,W1,W2・・・上に存在するような表示法である。2ビットメモリでは、各物理ページには2つの論理ページ、すなわち、各々バイナリデータを有する下側ビット論理ページおよび上側ビット論理ページが関連付けられる。一般的に、論理ページはLP(ワード線、論理ページ)により与えられる。例えば、W0上のP0の下側ビットページおよび上側ビットページはそれぞれLP(0.0)およびLP(0.1)と称され、W2上の対応するものはLP(2.0)およびLP(2.1)と称される。
【0179】
本質的に、論理ページのプログラミングは、プログラムされる現在のセルが、それがプログラムされた後にその環境に最小限の変化を見ることとなるように順序nに従う。この場合にも、下から上への1つの終始一貫した方向にインクリメンタルに移動することは、1つの側からの摂動を除去するのに役立つ。さらに、各物理ページが2つのプログラミングパスを持ち得るので、プログラミングが低いほうの物理ページから上のほうへ移動してゆくときに、現在の上側ビットページは、それに隣接する下側ビットページが既にプログラムされ終わったためにそれらの摂動を引き起こす効果が現在の上側ビットページをプログラムするときに償われることとなった後に、プログラムされるのがよい。従って、プログラミングがLP(0.0)から始まるならば、順序は、ページプログラミング順序、0,1,2・・・n・・・により指定されるとおりであり、それはLP(0.0),LP(1.0),LP(0.1),LP(2.0),LP(1.1),LP(3.0),LP(2.1)・・・をもたらす。
【0180】
データ依存ベリファイレベルを用いてプログラムするための隣接状態の判定
図24に関して前述したように、プログラム−ベリファイ中のBL−BLユーピン効果についての好ましい補償方式は、プログラム−ベリファイレベルを隣接状態のプログラム済み状態に応じて調整することである。プログラムされるセルの列またはビット線に隣接状態を伝えるために、各々の隣のもののビット線は、各々の隣のもののプログラム済み状態に依存する所定の電圧にセットされる。この所定の電圧は、プログラムされるセルのビット線において行なわれる付加的な感知で検出され、その後にプログラム−ベリファイレベルをオフセットさせるために使用される。
【0181】
プログラミング中のWL−WLユーピン効果についての補償の場合には、プログラム−ベリファイレベルを適宜オフセットさせるために、隣接するワード線についてのプログラム済み状態またはデータが取得されて、ベリファイを受けるセルのベリファイ回路または感知回路に利用可能にされなければならない。
【0182】
例えば、メモリアレイ中の底のワード線から開始するなどの好ましい順序でプログラミングが行なわれるならば、現在プログラムされているワード線に関して、先行するワード線は既にプログラムされている。先行するワード線からのデータのページは、単に読み出されて、対応する列ラッチにラッチされ得る。しかし、図40に関連して記載された好ましいプログラミング順序が遵守されるならば、先行するワード線からのユーピン効果は既に留意されていて、補償を計算するためにそのデータを得る必要はない。
やがてプログラムされるべき次のワード線内のデータについては、それを取得するためのいくつかの可能性がある。
【0183】
図41は、図5に示されている記憶装置と通信するホストを示す。記憶装置はメモリチップ298とコントローラ610とを含む。メモリチップ298は、メモリアレイ300と、センスアンプ、データラッチ394、I/O回路などの周辺回路と、オンチップ制御回路310とを含む。オンチップ制御回路310は、メモリチップの動作を制御する。多くの実施例において、ホスト10はコントローラ350を介してメモリチップ298と通信して相互に作用する。
【0184】
コントローラ350は、メモリチップと協力し、より高いレベルのメモリ動作を制御し管理する。例えば、ホスト書き込みに関して、ホスト10はデータが1ページずつメモリアレイ300に書き込まれるべきことを要求する。その後、データの各ページはコントローラ350に送られ、これは、それをデータラッチ394に、メモリアレイにプログラムされるように、集結させる。1つの実施例では、少なくとも2ページのデータがコントローラ350により受け取られてコントローラRAM352にバッファされる。第1のページがワード線WLn内の現在のページにプログラムされるべくデータラッチ394にラッチされているときに、ワード線WLn+1内の次のページにプログラムされるべく意図されている次のページのデータが評価されて、高度にプログラムされた状態に対応するものは、符号化された補償レベルとしても、対応するデータラッチにラッチされる。好ましい実施例では、各列に関連付けられたロジックおよびプロセッサは、本発明の種々のベリファイ方式でプログラミング操作を行うために状態マシンと協力する。
【0185】
図42は、次のワード線のためのデータのページを得るための他の1つの手法を示す。不揮発性メモリアレイ300の一部分が正規部分302とバッファ部分304とに分割される。メモリアレイの正規部分302は、通例、マルチビットデータを記憶する。その一方で、バッファ部分304内のメモリセルは、好ましくは、バイナリデータを記憶するように構成される。このようにすれば、バイナリデータは、相対的に高速に、ユーピン効果を補正する必要なく、バッファ部分にプログラムされ得る。好ましくは、データが最初にメモリに書き込まれるときに、それは最初にバッファ部分304に書かれる。後に、適切なときに、バッファ部分304からのデータが正規部分302にコピーされ得る。正規部分302にプログラムされるべきデータはバッファ部分304から容易に読み出され得るので、現在のページがプログラムされつつあるときに次のページのためのデータも、プログラム−ベリファイ中の補償についての考慮のために利用可能である。
【0186】
消去済みメモリ状態のための隣接するセル内の電荷に起因する摂動の補償
前述したように、データのページが、例えば下から上へなどの一定のワード線順序でプログラムされつつあるときに、下側の隣接ワード線WLn−1は、現在のワード線WLnより前にプログラムされるので現在のワード線のセルに対してユーピン効果を及ぼさない。従って、ベリファイレベルについて調整するときに、前にプログラムされたワード線WLn−1は考慮されなくてもよい。
【0187】
しかし、消去済み状態に留まるメモリセルについては、WLn−1上のプログラム済みセルでさえもWLn上の消去済みセルに対してユーピン効果を及ぼす。換言すれば、上Wn+1および下Wn−1にある隣接する隣のものの両方がWLn上のセルを乱す。それは、セルが常に消去済み状態に留まるならば、プログラムされるどの隣接する隣のものもセルがその状態になった後に存在するからである。従って、両方がセルの、それが消去されてからの界環境の変化に、寄与する。
【0188】
メモリは、通例、それらのしきい値レベルがしきい値ウィンドウの下端部に存する範囲に下がるように、そのセルを消去する。好ましい実施形態では、より深く消去されたセルを所定の区分しきい値レベルより下のより狭い範囲内にプログラムするためにソフトプログラミング操作が採用される。ソフトプログラミングは、所定の区分しきい値レベルに関してのベリファイと交互に行なわれる。このようにして、ソフトプログラミングとベリファイとは、消去済みセルの分布を所定の区分しきい値レベルの直ぐ下の所定の範囲に引き締めるのに役立つ。
【0189】
図43は、消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果によってどのように影響され得るかを示す。セルのワード線への所定のベリファイレベルVE の印加によって所定の区分しきい値レベル1610に関して消去済みセルがソフトプログラムされベリファイされた後に、引き締められた消去済み集団は密な分布1602により表される。前に論じられたように、WLn−1にあるページのプログラミングはWL−WLユーピン効果を導入して、分布1602の右尾部が、延びた尾部1604の場合のように、より高いレベルのほうへ広がるという結果をもたらす。同様に、WLnにあるページのプログラミングはBL−BLユーピン効果を導入して、分布1604の右尾部が、延びた尾部1606の場合のように、より高いレベルのほうへさらに広がるという結果をもたらす。最後に、WLn+1上のページをプログラムすることの効果は、右尾部を1606から延びた尾部1608へさらに広げる。
後にプログラムされた隣のものに起因して、いくつかの消去済みセルが、それらのしきい値レベルがプログラム済み状態領域までシフトされるほどに乱されることがあるということが図43から明らかである。
【0190】
本発明の他の1つの態様に従って、消去済みメモリセルは、それらが消去された後に好ましくは「ソフトプログラムされる」。この「ソフトプログラムされる」というのは、消去済みセルを消去済み状態とプログラム済み状態とを区別するための所定のしきい値に関して所定の範囲のしきい値レベルにプログラムすることを指す。これは、消去済みセルを所定のしきい値に関して交互にプログラムしベリファイすることにより成し遂げられる。隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷にもかかわらず正しい消去済み状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによってソフトプログラミング中に補償される。
【0191】
これは、プログラムされるセルのワード線の両側の隣接ワード線上のものを含む隣接するメモリセルのメモリ状態を前もって判定し、隣接するメモリセルのメモリ状態の関数であるオフセットで区分レベルを下げることによってベリファイレベルを調整することによって、成し遂げられる。
【0192】
図44は、全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。この場合、ベリファイレベルは、隣接するワード線WLn−1およびWLn+1の両方の上の隣接するセルと、隣接するビット線上の隣のものとの関数として調整される。ソフトプログラミング後、消去済みセルが図43において1602の左尾部および1626の右尾部により示される補正されていない分布と比べて引き締まったしきい値分布1630を有することが見られる。
BL−BLユーピン効果が黙許され得る1つの代わりの実施形態では、ベリファイレベルのためのオフセットの調整でWL−WLユーピン効果だけが補正される。
1つの好ましい実施形態では、ベリファイレベルのオフセットは、図38Aおよび図38Bに示されているものと同様の隣接ワード線のうちの1つ以上のバイアスによって仮想的に実行される。
【0193】
図45は、1つの好ましい実施形態に従う、両側補正を成し遂げるための隣接ワード線のバイアスを示す。ソフトプログラムされる消去済みセルがワード線WLn上にあるならば、図38Aに示されている方式と同様に標準ベリファイレベルVE がWLnに印加される。標準ベリファイレベルVE は、図43に関連して前に記載されたユーピン効果補正を考慮せずに消去済みセルの標準ソフトプログラミングに使用されるものである。
【0194】
WLnのどちらの側にも隣接するワード線があるので、好ましい実施例は、両方の隣接するワード線をバイアスすることである。各々の隣接するワード線がそれぞれ1ビットの「1」または「0」により表示される2つの電圧V0またはV1のうちの1つを持つことを許されるならば、両方の隣接するワード線は、2ビットにより表示される4つの可能な組み合わせを有する。それらの組み合わせの各々は、VE の異なる量の仮想オフセット、従って対応する量の補償レベルを与える。前に論じられたように、隣接するワード線が、値Vpassを有するV0にバイアスされるときには、それは標準の場合である。その一方で、隣接するワード線がV0より低いV1にバイアスされるときには、それはVE の仮想のより低いオフセットを生じさせるという効果を有する。従って、両方の隣接ワード線がV1にバイアスされれば最高の補償レベル(00)が達成される。次のより低い補償レベル(01)は、V1にある隣接ワード線WLn+1とV0にあるWLn−1とを有する。同様に、最小あるいは無補償レベル(11)は、共にV0にあるVLn−1およびWLn+1を有する。
【0195】
図46は、所定のしきい値レベルに関して明瞭に画定されたしきい値レベルの分布を有するメモリセルのグループを作ることの流れ図である。
ステップ1600:ワード線およびビット線によりアクセスし得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1610:消去済み状態の限界を定める所定のしきい値レベルを実質的に超えさせて1グループのメモリセルを消去する。
ステップ1620:プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループの消去済みメモリセルに並行して印加する。
ステップ1630:グループのメモリセルにアクセスするワード線に所定のしきい値レベル電圧を印加する。
ステップ1632:第1の所定のバイアス電圧レベルを第1の隣接ワード線に印加し、第1の所定のバイアス電圧は第1の隣接するメモリセルのターゲット状態の第2の関数であり、第1の隣接するセルは第1の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ1634:第2の所定のバイアス電圧レベルを第2の隣接ワード線に印加し、第2の所定のバイアス電圧は第2の隣接するメモリセルのターゲット状態の第2の関数であり、第2の隣接するセルは第2の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ1638:所定のしきい値レベルに関してプログラムされたグループの消去済みメモリセルをベリファイするために感知する。
ステップ1640:ベリファイされたグループ中のメモリセルのそれ以上のプログラミングを禁止する。
ステップ1650:グループ中の全ての消去済みメモリセルがベリファイされたか?そうであるならば、ステップ1660に進み、そうでなければ、ステップ1620に進む。
ステップ1660:グループ中の全ての消去済みメモリセルが所定のしきい値レベルに関してプログラムされた。
【0196】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを用いるマルチパスプログラミング
前に論じられたように、ユーピン効果があると、プログラム済みセルは、その後の隣接セルのプログラム後に読み出されると見かけ上より高いしきい値レベルを伴ってより多く「プログラムされている」ように見える。これによって、同じ状態にプログラムされたセルについてのしきい値の分布が広がる。
【0197】
前の解決策は、プログラミングを2つ以上のパスで行うことである。第1のパスは、各セルをそのターゲット状態またはターゲットしきい値レベルの少し手前にプログラムすることである。第2のパスは、ターゲット状態までのプログラミングを完了させる。このようにすれば、プログラムされるセルに見える隣接界環境の、それが最後にプログラムされかつベリファイされた時点から隣接セルがプログラムされる時点までの変化は、最小になる。これは、選択されたワード線上のベリファイレベルを第1のパス中でより低くオフセットさせることによって成し遂げられる。次のワード線内のセルがプログラムされた後、分布を引き締めるために第2のパスプログラミングが加えられる。
【0198】
本発明の他の1つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも2パスで実行される。第1のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第2のパスは、標準ベリファイレベルでプログラミングを完了させる。第1のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに1つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【0199】
図47は、本発明の1つの一般的な態様に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
ステップ1700:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ1710:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第1のパスで1グループのメモリセルを並行してプログラムする。ここで、第1のパスにおけるプログラミングはステップ1714を含む。
ステップ1714:プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ1720:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【0200】
図48は、本発明の1つの好ましい実施形態に従う、第1のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。 ステップ1700:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ1710:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第1のパスで1グループのメモリセルを並行してプログラムする。ここで、第1のパスにおけるプログラミングはステップ1712、ステップ1714、ステップ1716、およびステップ1718を含む。
ステップ1712:プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧をグループに並行して印加する。
ステップ1714:プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ1716:グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ1718:グループ中の全てのセルがベリファイされたか?そうであるならば、ステップ1720に進み、そうでなければ、ステップ1710に進む。
ステップ1720:プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【0201】
前に論じられたように、マルチパスプログラミングを用いることの利点は、ユーピン効果を減少させることができることである。マルチパスプログラミングは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを必要としないのでより簡単に実行できる。
【0202】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大/精密プログラミング
粗大および精密プログラミングステップの2フェーズでのプログラミング手法は、米国特許第6,888,758号に記載され、既に図20および図21にも関連して記載されている。プログラミング操作が2つのベリファイレベル、すなわちターゲットベリファイレベル(精密ベリファイレベルとも呼ばれる)および精密ベリファイレベルの前の粗大ベリファイレベルを用いることが分かる。粗大ベリファイレベルは、精密ベリファイレベルから所定のオフセットだけ低くオフセットされている。
【0203】
プロセスは、プログラミングプロセスの粗大フェーズを実行することから始まる。各粗大プログラミングステップの次に、粗大ベリファイレベルに関してのベリファイが続く。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルまでプログラムされたときに、メモリセルは精密プログラミングフェーズに入る。プログラミングは、ターゲットレベルを通り越さないように、遅くされる。これは、セルのビット線電圧を0ボルトよりは大きくて禁止電圧よりは小さい値に高めることによって成し遂げられる。一般的に、フルプログラミング効率を目的として、粗大フェーズ中と同様に、ビット線電圧はほぼ0ボルトである。その一方で、メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧(例えば、Vdd)に高められる。精密プログラミングフェーズ中、ビット線電圧が0ボルトから中間値に高められるという効果に起因して、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さくなりやすい。メモリセルは、そのメモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまで精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達したとき、そのメモリセルのそれ以上のプログラミングを禁止するためにビット線電圧がVdd(または他の禁止電圧)に高められる。
【0204】
前の粗大/精密プログラミング手法は2つのベリファイレベルに関してのベリファイを必要とし、その第1のものはターゲットベリファイレベルより低い粗大ベリファイレベルである。粗大フェーズ中、これは、ベリファイされるメモリセルの選択されたワード線に実際の粗大ベリファイ電圧レベルを供給することによって成し遂げられる。NANDチェーンの場合、NANDチェーン内の他の全てのワード線は、通例、標準のVpass電圧にセットされる。精密フェーズ中、選択されたワード線はターゲットベリファイ電圧レベルそのものに高められる。
【0205】
本発明の他の1つの態様に従って、初めに、より粗大ではあるが速いプログラミングステップを用い、次に、より精密なステップが続くことを含むプログラミング操作において、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルについて、各粗大ステップ間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接ワード線に印加される所定のバイアス電圧とを用いることによって仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【0206】
図49は、好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイ中に標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受ける選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。この例では、WLnはNANDチェーンの中の選択されたワード線であり(図2を参照)、選択されないワード線の残りには普通、ベリファイ操作中、電圧Vpassが印加される。
【0207】
粗大フェーズ中、ベリファイ操作は、ターゲット状態のためのベリファイレベルより低くオフセットされるべき粗大ベリファイレベルに関して感知を行うことにより成し遂げられる。しかし、WLn上の電圧をオフセットさせる代わりに、それは粗大フェーズおよび精密フェーズの全体にわたって変わらず、ターゲットベリファイレベルに留まる。代わりに、粗大フェーズ中、隣接ワード線のうちの1つ、例えばWLn+1が標準Vpassより低い電圧V1にバイアスされる。これは、WLnをVcoarse(粗大)にセットするという仮想的効果を有する。
【0208】
メモリセルは、プログラムされて粗大ベリファイレベルに対してベリファイされた後、そのビット線をゼロ電圧にバイアスすることによって精密プログラミングフェーズに入る。精密フェーズにおけるベリファイ操作は、通例にならい、ターゲットベリファイレベルに関して感知を行うことにより成し遂げられる。すなわち、WLnに印加されたターゲットベリファイレベルと、WLn+1およびWLn−1などの選択されていないワード線に印加されたV2(=Vpass)とを用いて行う。
【0209】
図50は、粗大または精密プログラミングフェーズ中のメモリセルのためのビット線電圧を示す。粗大プログラミングフェーズ中、ビット線は実質的にゼロ電圧である。精密プログラミングフェーズ中、プログラミングを遅らせるためにビット線はゼロとVddとの間の所定の中間電圧にある。
【0210】
図51は、本発明の1つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大/精密プログラミングを示す流れ図である。
ステップ1800:ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ1802:メモリセルを関連するターゲットしきい値レベルに関してプログラムするために、関連するターゲットしきい値レベルより低いオフセットベリファイレベルを提供する。
ステップ1810:粗大フェーズにおけるプログラミングを可能にするために1グループのセルのビット線に第1のビット線電圧を初めに印加する。
ステップ1820:所定量のプログラミング波形電圧を印加することによりグループのメモリセルを関連するターゲットしきい値レベルに関して並行してプログラムする。
ステップ1830:プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第1の隣接ワード線に印加された第1の所定のバイアス電圧とを用いて感知することによって、オフセットベリファイレベルに関してベリファイする。
ステップ1832:プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第1の隣接ワード線に印加された第2の所定のバイアス電圧とを用いて感知を行うことによって、関連するターゲットしきい値レベルに関してベリファイする。
ステップ1840:グループの全てのメモリセルが関連するターゲットしきい値レベルに対してベリファイされたか?そうであるならば、ステップ1860に進み、そうでなければ、ステップ1850に進む。
ステップ1850:オフセットベリファイレベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが精密フェーズで遅らされるように、第2のビット線電圧にセットする。
ステップ1852:関連するターゲットしきい値レベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが禁止されるように、第3のビット線電圧にセットする。
ステップ1860:グループについて関連するターゲットしきい値レベルに関するプログラミングを終了する。
【0211】
記載された種々のタイプの不揮発性メモリシステムは、それぞれ1ビットから複数のビットのデータを記憶し、取り外し可能なメモリカードと他の装置の回路基板に埋め込まれた記憶装置とを含むいろいろなデジタル記憶装置およびシステムに存在すると考えられるメモリセルをサポートすることができる。
【0212】
本発明についての前の詳しい記述は、解説および説明の目的のために与えられている。網羅的であること、あるいは発明を開示された形そのものに限定することは意図されていない。前の教示を考慮すれば多くの改変および変形が可能である。説明された実施形態は、本発明の原理とその実際的な応用とを最善に説明することによって、他の当業者が本発明を種々の実施形態において、意図された特定の使用法に適する種々の改変を加えて最善に利用することを可能にするために、選択された。本願明細書に添付されている特許請求の範囲により本発明の範囲が定義されることが意図されている。
【特許請求の範囲】
【請求項1】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、1グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように第1のパスで前記グループをプログラムするステップと、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように前記グループを次のパスでプログラムするステップと、を含み、
前記第1のパスで前記グループをプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップをさらに含む方法。
【請求項2】
請求項1記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項3】
請求項1記載の方法において、
前記第1のパスで前記グループをプログラムするステップは、
(a)プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧を前記グループに並行して印加するステップと、
(b)プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップと、
(c)前記グループ中のベリファイされたメモリセルのさらなるプログラミングを禁止するステップと、
前記グループの全てのメモリセルが全てベリファイされるまで(a)から(c)までを反復するステップと、
をさらに含む方法。
【請求項4】
請求項3記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項5】
請求項1記載の方法において、
前記グループを次のパスでプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと前記第1の隣接ワード線に印加される所定の非選択ワード線電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルに関してベリファイするステップをさらに含む方法。
【請求項6】
請求項5記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項7】
請求項1記載の方法において、
前記不揮発性メモリは、NANDタイプのものである方法。
【請求項8】
不揮発性メモリであって、
1セットのワード線および1セットのビット線によりアドレス指定可能なメモリセルのアレイと、 並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し/書き込み回路が各メモリセルを第1のパスおよび第2のパスでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記第1のパスでは、関連するターゲットしきい値レベルをプログラムされるメモリセルにアクセスするワード線に印加すると共に第1の所定のバイアス電圧を第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路が、メモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイする不揮発性メモリ。
【請求項9】
請求項8記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に、第2の所定のバイアス電圧を第2の隣接ワード線に印加させることを含む不揮発性メモリ。
【請求項10】
請求項8記載の不揮発性メモリにおいて、
前記グループを次のパスでプログラムすることは、関連するターゲットしきい値レベルをプログラムされる個々のメモリセルにアクセスするワード線に印加すると共に所定の非選択ワード線電圧を前記第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路がメモリセルを関連するターゲットしきい値レベルに関してベリファイすることをさらに含む不揮発性メモリ。
【請求項11】
請求項10記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に第2の所定のバイアス電圧を第2の隣接ワード線に印加させることをさらに含む不揮発性メモリ。
【請求項12】
請求項8記載の不揮発性メモリにおいて、
前記不揮発性メモリは、NANDタイプのものである不揮発性メモリ。
【請求項13】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、1グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が、関連するターゲットしきい値レベルより所定のオフセットだけ手前の粗大ベリファイレベルに対してベリファイされるように、前記グループを初めに粗大フェーズでプログラムするステップと、
前記グループ中の、粗大ベリファイレベルに関してベリファイされたメモリセルを精密フェーズでプログラムするステップであって、前記精密フェーズでは、プログラミングが遅くされ、メモリセルが関連するターゲットしきい値レベルに関してベリファイされるステップと、を含み、
前記グループを初めに粗大フェーズでプログラムするステップは、実際上、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを粗大ベリファイレベルに関してベリファイするステップをさらに含む方法。
【請求項14】
請求項13記載の方法において、
前記グループを初めに粗大フェーズでプログラムするステップは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第1のビット線電圧を印加するステップをさらに含む方法。
【請求項15】
請求項13記載の方法において、
前記グループを精密フェーズでプログラムするステップは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第2のビット線電圧を印加するステップを含む方法。
【請求項16】
請求項15記載の方法において、
前記不揮発性メモリは、NANDタイプのものである方法。
【請求項17】
不揮発性メモリであって、
1セットのワード線および1セットのビット線によりアドレス指定可能なメモリセルのアレイと、 並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し/書き込み回路が各メモリセルを粗大フェーズおよび精密フェーズでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記粗大フェーズにおいて、実際上、プログラムされるメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルを印加すると共に第1の所定のバイアス電圧を第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路が、メモリセルを粗大ベリファイレベルに関してベリファイする不揮発性メモリ。
【請求項18】
請求項17記載の不揮発性メモリにおいて、
前記グループを粗大フェーズでプログラムすることは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第1のビット線電圧を印加することをさらに含む不揮発性メモリ。
【請求項19】
請求項17記載の不揮発性メモリにおいて、
前記グループを精密フェーズでプログラムすることは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第2のビット線電圧を印加することを含む不揮発性メモリ。
【請求項20】
請求項17記載の不揮発性メモリにおいて、
前記不揮発性メモリは、NANDタイプのものである不揮発性メモリ。
【請求項21】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、所定のオフセットを伴うターゲットしきい値電圧レベルに関して1グループのメモリセルを並行してプログラムする方法であって、
プログラムされる各メモリセルのしきい値電圧を高めるために1つの量のプログラミング波形電圧を前記グループのメモリセルに並行して印加するステップと、
前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加するステップと、
所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等であるような所定のバイアス電圧レベルを隣接ワード線に印加するステップと、
プログラムされた前記グループのメモリセルを、仮想的にオフセットされた所定のしきい値レベルに関してベリファイするために感知するステップと、
を含む方法。
【請求項22】
不揮発性メモリであって、
1セットのワード線により1行ずつ、および1セットのビット線により1列ずつ、アドレス指定可能なメモリセルのアレイと、
並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、を備え、
ベリファイ中に、前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加すると共に隣接ワード線に所定のバイアス電圧を印加するために前記読み出し/書き込み回路と協力する電源とを含み、前記所定のバイアス電圧は、所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等である不揮発性メモリ。
【請求項1】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、1グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように第1のパスで前記グループをプログラムするステップと、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように前記グループを次のパスでプログラムするステップと、を含み、
前記第1のパスで前記グループをプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップをさらに含む方法。
【請求項2】
請求項1記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項3】
請求項1記載の方法において、
前記第1のパスで前記グループをプログラムするステップは、
(a)プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧を前記グループに並行して印加するステップと、
(b)プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップと、
(c)前記グループ中のベリファイされたメモリセルのさらなるプログラミングを禁止するステップと、
前記グループの全てのメモリセルが全てベリファイされるまで(a)から(c)までを反復するステップと、
をさらに含む方法。
【請求項4】
請求項3記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項5】
請求項1記載の方法において、
前記グループを次のパスでプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと前記第1の隣接ワード線に印加される所定の非選択ワード線電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルに関してベリファイするステップをさらに含む方法。
【請求項6】
請求項5記載の方法において、
前記ベリファイするステップは、第2の所定のバイアス電圧を第2の隣接ワード線に印加するステップをさらに含む方法。
【請求項7】
請求項1記載の方法において、
前記不揮発性メモリは、NANDタイプのものである方法。
【請求項8】
不揮発性メモリであって、
1セットのワード線および1セットのビット線によりアドレス指定可能なメモリセルのアレイと、 並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し/書き込み回路が各メモリセルを第1のパスおよび第2のパスでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記第1のパスでは、関連するターゲットしきい値レベルをプログラムされるメモリセルにアクセスするワード線に印加すると共に第1の所定のバイアス電圧を第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路が、メモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイする不揮発性メモリ。
【請求項9】
請求項8記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に、第2の所定のバイアス電圧を第2の隣接ワード線に印加させることを含む不揮発性メモリ。
【請求項10】
請求項8記載の不揮発性メモリにおいて、
前記グループを次のパスでプログラムすることは、関連するターゲットしきい値レベルをプログラムされる個々のメモリセルにアクセスするワード線に印加すると共に所定の非選択ワード線電圧を前記第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路がメモリセルを関連するターゲットしきい値レベルに関してベリファイすることをさらに含む不揮発性メモリ。
【請求項11】
請求項10記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に第2の所定のバイアス電圧を第2の隣接ワード線に印加させることをさらに含む不揮発性メモリ。
【請求項12】
請求項8記載の不揮発性メモリにおいて、
前記不揮発性メモリは、NANDタイプのものである不揮発性メモリ。
【請求項13】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、1グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が、関連するターゲットしきい値レベルより所定のオフセットだけ手前の粗大ベリファイレベルに対してベリファイされるように、前記グループを初めに粗大フェーズでプログラムするステップと、
前記グループ中の、粗大ベリファイレベルに関してベリファイされたメモリセルを精密フェーズでプログラムするステップであって、前記精密フェーズでは、プログラミングが遅くされ、メモリセルが関連するターゲットしきい値レベルに関してベリファイされるステップと、を含み、
前記グループを初めに粗大フェーズでプログラムするステップは、実際上、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第1の隣接ワード線に印加される第1の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを粗大ベリファイレベルに関してベリファイするステップをさらに含む方法。
【請求項14】
請求項13記載の方法において、
前記グループを初めに粗大フェーズでプログラムするステップは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第1のビット線電圧を印加するステップをさらに含む方法。
【請求項15】
請求項13記載の方法において、
前記グループを精密フェーズでプログラムするステップは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第2のビット線電圧を印加するステップを含む方法。
【請求項16】
請求項15記載の方法において、
前記不揮発性メモリは、NANDタイプのものである方法。
【請求項17】
不揮発性メモリであって、
1セットのワード線および1セットのビット線によりアドレス指定可能なメモリセルのアレイと、 並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し/書き込み回路が各メモリセルを粗大フェーズおよび精密フェーズでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記粗大フェーズにおいて、実際上、プログラムされるメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルを印加すると共に第1の所定のバイアス電圧を第1の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し/書き込み回路が、メモリセルを粗大ベリファイレベルに関してベリファイする不揮発性メモリ。
【請求項18】
請求項17記載の不揮発性メモリにおいて、
前記グループを粗大フェーズでプログラムすることは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第1のビット線電圧を印加することをさらに含む不揮発性メモリ。
【請求項19】
請求項17記載の不揮発性メモリにおいて、
前記グループを精密フェーズでプログラムすることは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第2のビット線電圧を印加することを含む不揮発性メモリ。
【請求項20】
請求項17記載の不揮発性メモリにおいて、
前記不揮発性メモリは、NANDタイプのものである不揮発性メモリ。
【請求項21】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、所定のオフセットを伴うターゲットしきい値電圧レベルに関して1グループのメモリセルを並行してプログラムする方法であって、
プログラムされる各メモリセルのしきい値電圧を高めるために1つの量のプログラミング波形電圧を前記グループのメモリセルに並行して印加するステップと、
前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加するステップと、
所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等であるような所定のバイアス電圧レベルを隣接ワード線に印加するステップと、
プログラムされた前記グループのメモリセルを、仮想的にオフセットされた所定のしきい値レベルに関してベリファイするために感知するステップと、
を含む方法。
【請求項22】
不揮発性メモリであって、
1セットのワード線により1行ずつ、および1セットのビット線により1列ずつ、アドレス指定可能なメモリセルのアレイと、
並行してプログラミングおよびベリファイを行うための1グループのメモリセルの各々のための読み出し/書き込み回路と、を備え、
ベリファイ中に、前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加すると共に隣接ワード線に所定のバイアス電圧を印加するために前記読み出し/書き込み回路と協力する電源とを含み、前記所定のバイアス電圧は、所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等である不揮発性メモリ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36A】
【図36B】
【図37A】
【図37B】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36A】
【図36B】
【図37A】
【図37B】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【公表番号】特表2010−539631(P2010−539631A)
【公表日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2010−524957(P2010−524957)
【出願日】平成20年9月10日(2008.9.10)
【国際出願番号】PCT/US2008/075862
【国際公開番号】WO2009/039011
【国際公開日】平成21年3月26日(2009.3.26)
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
【公表日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願日】平成20年9月10日(2008.9.10)
【国際出願番号】PCT/US2008/075862
【国際公開番号】WO2009/039011
【国際公開日】平成21年3月26日(2009.3.26)
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
[ Back to top ]