JP2011526049A - 最小限の追加時間ペナルティで障害を低減するために改良されたプログラミングアルゴリズム - Google Patents

最小限の追加時間ペナルティで障害を低減するために改良されたプログラミングアルゴリズム Download PDF

Info

Publication number
JP2011526049A
JP2011526049A JP2011516538A JP2011516538A JP2011526049A JP 2011526049 A JP2011526049 A JP 2011526049A JP 2011516538 A JP2011516538 A JP 2011516538A JP 2011516538 A JP2011516538 A JP 2011516538A JP 2011526049 A JP2011526049 A JP 2011526049A
Authority
JP
Japan
Prior art keywords
programming
program
storage elements
state
storage element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011516538A
Other languages
English (en)
Other versions
JP5203510B2 (ja
Inventor
ダナ リー
ディーパンシュ ダッタ
インダ ドン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2011526049A publication Critical patent/JP2011526049A/ja
Application granted granted Critical
Publication of JP5203510B2 publication Critical patent/JP5203510B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Abstract

マルチパスプログラミング処理における不揮発性メモリのプログラミング時間が短縮される。第1プログラミングパスでは、高速の高い状態のセルと低速の高い状態のセルを識別するために高い状態のセルは一連のプログラムパルスによってプログラムされる一方で、低い状態のセルはプログラミングからロックアウトされる。識別された高速の高い状態のセルはプログラミングから一時的にロックアウトされる一方で、低速の高い状態のセルはそれらの最後の目的とする状態までプログラムされ続ける。さらに、プログラムパルスは、低速の高い状態のセルをプログラムするために急峻にステップアップされる。第2プログラミングパスでは、高速の高い状態のセルは、これらがすべて目的とする状態に達するまで他の低い状態のセルとともにプログラムされる。第1プログラミングパスにおいてすべての高い状態のセルがプログラムされるアプローチに比べて時間の節約が実現される。
【選択図】図1

Description

本発明は、不揮発性メモリに関する。
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再書込み可能型読取専用メモリ(EEPROM)とフラッシュメモリは、最も普及している不揮発性半導体メモリである。フラッシュメモリに関しては、ある種のEEPROMもそうであるが、通常のフル装備のEEPROMとは異なり、全メモリアレイまたは一部分のメモリの内容は、1ステップで消去することができる。
通常のEEPROMとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。形成されているトランジスタの閾値電圧(VTH)は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
ある種のEEPROMとフラッシュメモリデバイスは、2つの電荷量範囲を蓄えるために使われるフローティングゲートを備えており、それゆえ、その記憶素子は、2つの状態、即ち、消去状態とプログラムされた状態、の間でプログラム/消去が行われることができる。そのようなフラッシュメモリデバイスは、各記憶素子が1ビットデータを記憶することができるので、バイナリフラッシュメモリデバイスと呼ばれることがある。
マルチステート(マルチレベルとも呼ばれる)フラッシュメモリデバイスは、複数の区別された許可された/有効なプログラム済閾値電圧範囲を特定することによって実現される。夫々の区別された閾値電圧範囲は、メモリデバイス内で符号化される一組のデータビットに対する予め決められた値に対応する。例えば、各記憶素子は、4個の区別された閾値電圧範囲に対応する4個の区別された電荷バンドの中の一つの状態に置かれることによって、2ビットデータを記憶することができる。
通常、プログラム動作において制御ゲートに印加されるプログラム電圧VPGMは、時間の経過に伴って大きさが増大する一連のパルスとして印加される。一つのアプローチとしては、パルスの大きさは、連続するパルスの1つ毎に、例えば0.2−0.4Vの既定のステップサイズずつ増加する。VPGMは、フラッシュメモリ素子の制御ゲートに印加される。プログラムパルスの間の期間に検証動作が実行される。即ち、並列にプログラムされている素子グループの各素子のプログラムレベルは、連続するパルスの間に読み出され、素子がプログラムされている検証レベルと等しいか或いはそれ以上であるか否かが判定される。マルチステートフラッシュメモリ素子のアレイでは、素子の状態毎に検証ステップが実行され、データに対応する検証レベルにその素子が達したか否かが判定される。例えば、4つの状態のいずれかにデータを記憶可能なマルチステート記憶素子では、3つの比較点での検証動作が必要とされる。
さらに、EEPROM、或いは、NANDフラッシュメモリデバイスのようなフラッシュメモリデバイスのNANDストリングをプログラミングする場合、通常、制御ゲートにVPGMが印加されるとともにビットラインが接地され、それによって、セル、或いはメモリ素子、即ち記憶素子のチャネルからフローティングゲートへ電子が注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリ素子の閾値電圧が上昇し、メモリ素子がプログラムされた状態となる。そのようなプログラミングに関するさらなる情報は、米国特許第6,859,397号、及び、米国特許第6,917,542号に開示されており、両者の文献の内容は、その全体を参照することにより本明細書に組み込まれる。
しかしながら、プログラム障害は、依然として解決の難しい問題の1つである。プログラム障害は、他のNANDストリングのプログラミング中に禁止されたNANDストリングにおいて、また時にはプログラムされたNANDストリング自体において発生する。プログラム障害は、非選択の不揮発性記憶素子の閾値電圧が他の不揮発性記憶素子のプログラミングによってシフトされるときに発生する。プログラム障害は、まだプログラムされていない消去済みの記憶素子だけでなく既にプログラム済みの記憶素子においても発生する可能性がある。マルチパスプログラミング技術は、記憶素子を徐々にプログラムすることによってプログラム障害を低減することができる。しかしながら、プログラミング時間が長くなる。
本発明は、不揮発性記憶システムにおけるプログラム障害を低減すると同時にプログラミング時間も短縮するプログラミング技術を提供することによって上記およびその他の問題に対処する。
一実施形態では、不揮発性記憶装置を動作させる方法は、低速プログラミング記憶素子と高速プログラミング記憶素子を区別するためにオフセットを差し引いた第1の検証レベルを用いて第1の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも第2の組の記憶素子をプログラミングすることからロックアウトするステップを含む。この方法は、さらに、高速プログラミング記憶素子をロックアウトする一方で、第1の検証レベルを用いて低速プログラミング記憶素子のプログラミングを継続し、かつ少なくとも第2の組の記憶素子をロックアウトし続けるステップを含む。この方法は、さらに、低速プログラミング記憶素子をロックアウトする一方で、第1の検証レベルを用いて高速プログラミング記憶素子のプログラミングを再開し、かつオフセットを差し引いた第1の検証レベルよりも小さい少なくとも第2の検証レベルを用いて少なくとも第2の組の記憶素子をプログラムするステップを含む。
別の実施形態では、不揮発性記憶装置を動作させる方法は、第1の検証レベルに関連付けられる第1のデータ状態にプログラムすることが目的とされる記憶素子をプログラムする一方で、第1の検証レベル以下であるそれぞれ第2および第3の検証レベルに関連付けられる少なくとも第2および第3のデータ状態にプログラムすることが目的とされる他の記憶素子のプログラミングをロックアウトするステップを含む。この方法は、さらに、プログラミング中に、第1のデータ状態にプログラムすることが目的とされる記憶素子の中で低速プログラミング記憶素子と高速プログラミング記憶素子を区別し、高速プログラミング記憶素子をロックアウトする一方で、低速プログラミング記憶素子のプログラミングを継続するステップを含む。方法は、さらに、少なくとも第2の組の記憶素子を少なくとも第2および第3のデータ状態に続いてプログラムする一方で、第1のデータ状態への高速プログラミング記憶素子のプログラミングを再開し、高速プログラミング記憶素子のプログラミング再開に関するプログラミング条件とは異なる低速プログラミング記憶素子のプログラミングを継続するためのプログラミング条件を適用するステップを含む。
別の実施形態では、不揮発性記憶装置を動作させる方法は、a)第1の検証レベルに関係付けられる第1のデータ状態にプログラムすることが目的とされる記憶素子をプログラムする一方で、第1の検証レベル以下であるそれぞれ第2および第3の検証レベルに関連付けられる少なくとも第2および第3のデータ状態にプログラムすることが目的とされる他の記憶素子のプログラミングをロックアウトするステップを含む。方法は、さらに、b)少なくとも第2の組の記憶素子を続いてプログラムするステップを含み、ステップa)ではステップb)のプログラミング条件とは異なるプログラミング条件を使用する。
別の実施形態では、不揮発性記憶システムは、第1の組の記憶素子と、第1の組の記憶素子と通信する少なくとも1つの制御回路とを含む。少なくとも1つの制御回路は、(a)低速プログラミング記憶素子と高速プログラミング記憶素子を区別するためにオフセットを差し引いた第1の検証レベルを用いて第1の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも第2の組の記憶素子のプログラミングをロックアウトし、(b)第1の検証レベルを用いて低速プログラミング記憶素子のプログラミングを継続し、かつ少なくとも第2の組の記憶素子をロックアウトし続ける一方で、高速プログラミング記憶素子をロックアウトし、(c)第1の検証レベルを用いて高速プログラミング記憶素子のプログラミングを再開し、かつオフセットを差し引いた第1の検証レベルよりも小さい少なくとも第2の検証レベルを用いて少なくとも第2の組の記憶素子をプログラムする一方で、低速プログラミング記憶素子をロックアウトする。
本明細書に記載される方法を実施するための対応する方法、システム、およびコンピュータ可読記憶デバイスまたはプロセッサ可読記憶デバイスが提供されてもよい。
NANDストリングの平面図である。 図1のNANDストリングの等価回路図である。 NANDフラッシュ記憶素子のアレイのブロック図である。 基板上に形成されたNANDストリングの断面図である。 最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。 図5a〜5dに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。 図5eに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。 図6a〜6dに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。 図6eおよび6fに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。 図6a〜6gに対応するプログラミング処理を説明する図である。 図6a〜6gに対応するプログラミング処理を説明する図である。 異なるプログラミング状態が各パスにおいて使用されるマルチパスプログラミング処理を説明する図である。 高い状態のセルが低い状態のセルの前にプログラムされるマルチパスプログラミング処理を説明する図である。 3つの異なるプログラミング技術に対するプログラムパルス番号と検証レベルの表である。 NANDフラッシュ記憶素子のアレイのブロック図である。 シングル行/列デコーダと読み出し/書き込み回路を使った不揮発性記憶システムのブロック図である。 デュアル行/列デコーダと読み出し/書き込み回路を使った不揮発性記憶システムのブロック図である。 検出ブロックの一実施形態のブロック図である。 全ビットラインメモリアーキテクチャまたは奇数偶数メモリアーキテクチャのためのブロックへのメモリアレイの編成の一例を示す図である。 閾値電圧区分の組とワンパスプログラミングの一例を示す図である。 閾値電圧区分の組とツーパスプログラミングの一例を示す図である。 種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。 種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。 種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。
本発明は、不揮発性記憶システムにおけるプログラム障害を低減すると同時にプログラミング時間も短縮するプログラミング技術を提供する。
本発明を実装するのに好適なメモリシステムの一例は、NANDフラッシュメモリ構造を利用するものであり、2つの選択ゲートの間に複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1は、1つのNANDストリングを示す平面図である。図2は、その等価回路である。図1と図2に示すNANDストリングは、第1選択ゲート120と第2選択ゲート122の間に挟まれている、直列に接続されている4つのトランジスタ100、102、104及び106を有する。選択ゲート120は、NANDストリングのビットライン126への接続を開閉する。選択ゲート122は、NANDストリングのソースライン128への接続を開閉する。選択ゲート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に接続されている。
図3は、3個のNANDストリングを示す回路図である。NAND構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、いくつかのNANDストリングを含む。例えば、3個のNANDストリング、320、340及び360が、さらに多くのNANDストリングを有するメモリアレイ内に示される。各NANDストリングは、2個の選択ゲートと4つの記憶素子を有している。簡単のために4個の記憶素子が描かれているが、最近のNANDストリングは、例えば最高32個又は64個の記憶素子を有する場合がある。
例えば、NANDストリング320は選択ゲート322と327、及び、記憶素子323〜326を有し、NANDストリング340は選択ゲート342と347、及び、記憶素子343〜346を有し、NANDストリング360は選択ゲート362と367、及び、記憶素子363〜366を有する。各NANDストリングは、その選択ゲート(例えば、選択ゲート327、347、又は367)によってソースラインに接続されている。選択ラインSGSは、ソース側選択ゲートを制御するために使用される。種々のNANDストリング320、340、及び360は、選択ゲート322、342、362等の選択トランジスタによって各ビットライン321、341、及び、361に接続されている。これらの選択トランジスタは、ドレイン選択ラインSGDによって制御される。他の実施形態では、選択ラインは必ずしもNANDストリング間で共通とされている必要はない。すなわち、異なるNANDストリングには異なる選択ラインを接続できる。ワードラインWL3は、記憶素子323、343、及び、363のための制御ゲートに接続されている。ワードラインWL2は、記憶素子324、344、及び、364のための制御ゲートに接続されている。ワードラインWL1は、記憶素子325、345、及び、365のための制御ゲートに接続されている。ワードラインWL0は、記憶素子326、346、及び、366のための制御ゲートに接続されている。つまり、各ビットラインと各NANDストリングは記憶素子のアレイ又はセットの列を含む。ワードライン(WL3、WL2、WL1及びWL0)は、アレイ又はセットの行を含む。各ワードラインは、行において各記憶素子の制御ゲートを接続している。また、制御ゲートはワードライン自体によって提供されてよい。例えば、ワードラインWL2は、記憶素子324、344、及び、364に制御ゲートを提供する。実際には、1つのワードラインに数千の記憶素子がある場合がある。
各記憶素子はデータを記憶できる。例えば、1ビットのデジタルデータを記憶するときは、記憶素子の可能な閾値電圧(VTH)の範囲は、論理データ「1」と「0」を割り当てられる2つの範囲に分割される。NANDタイプのフラッシュメモリの一例では、前記VTHは、記憶素子が消去された後に負となり、論理「1」として定義される。プログラム動作後の前記VTHは正であり、論理「0」として定義される。VTHが負であり、読み出しが試行されると、記憶素子がオンして論理「1」が記憶されていることが示される。前記VTHが正であり、読み出し動作が試行されると、記憶素子はオンにならず、論理「0」が記憶されていることが示される。また、記憶素子は、例えば複数ビットのデジタルデータ等の複数のレベルの情報も記憶できる。このケースでは、VTH値の範囲はデータレベルの数に分割される。例えば、4つのレベルの情報が記憶されている場合には、データ値「11」、「10」、「01」、及び、「00」に割り当てられる4つのVTH範囲がある。NANDタイプのメモリの一例では、消去動作後の前記VTHは負となり、「11」として定義される。正のVTH値は「10」、「01」及び「00」の状態のために使用される。記憶素子に書き込まれるデータと、素子の閾値電圧範囲との特定な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、米国特許第6,222,762号及び第7,237,074号は、マルチステートフラッシュ記憶素子のための多様なデータ符号化方式を説明しており、両出願の全体を参照することにより本明細書に組み込まれる。
NANDタイプのフラッシュメモリ及びその動作の関連性のある例は、それぞれが参照することにより本明細書に組み込まれる米国特許番号第5,386,422号、第5,570,315号、第5,774,397号、第6,046,935号、第6,456,528号、及び第6,522,580号に示されている。
フラッシュ記憶素子をプログラミングするときには、プログラム電圧が記憶素子の制御ゲートに印加されるとともに、記憶素子に接続されているビットラインが接地される。チャネルからの電子はフローティングゲートに注入される。電子がフローティングゲートに蓄積すると、フローティングゲートは負に帯電し、記憶素子のVTHが上昇する。プログラミング中の記憶素子の制御ゲートにプログラム電圧を印加するために、そのプログラム電圧は適切なワードライン上に印加される。上述したように、各NANDストリング中の1つの記憶素子が同じワードラインを共有している。例えば、図3の記憶素子324をプログラミングするときには、プログラム電圧は記憶素子344と364の制御ゲートにも印加される。
しかしながら、プログラム障害は、他のNANDストリングのプログラミング中に禁止されたNANDストリングにおいて、また時にはプログラムされたNANDストリング自体において発生する可能性がある。プログラム障害は、選択されない不揮発性記憶素子の閾値電圧が他の不揮発性記憶素子のプログラミングが原因でシフトされるときに発生する。プログラム障害は、まだプログラムされていない消去済みの記憶素子だけでなく、過去にプログラムされた記憶素子でも発生する可能性がある。様々なプログラム障害メカニズムは、NANDフラッシュメモリなどの不揮発性記憶デバイスの利用可能な動作ウィンドウを制限する可能性がある。
たとえば、NANDストリング320が禁止されており(たとえば、これが現在プログラムされている記憶素子を含まない非選択のNANDストリングである)、かつNANDストリング340がプログラムされている(たとえば、これが現在プログラムされている記憶素子を含む選択済みのNANDストリングである)場合、プログラム障害はNANDストリング320で発生する可能性がある。たとえば、パス電圧VPASSが低い場合、禁止されたNANDストリングのチャネルは十分にブーストされず、非選択のNANDストリングの選択ワードラインは不慮にプログラムされる可能性がある。別のありうる状況では、ブースト電圧はゲート誘導ドレインリーク(GIDL)などのリークメカニズムによって低下されて同じ問題を生じる可能性がある。後でプログラムされる他の隣接記憶素子との容量結合による電荷蓄積素子のVTHのシフトなど、他の効果もプログラム障害の一因となりうる。
図4は、基板上に形成されたNANDストリングの断面図を示す。図は簡略化されており、縮尺どおりではない。NANDストリング400は、ソース側選択ゲート406と、ドレイン側選択ゲート424と、基板490上に形成される8個の記憶素子408、410、412、414、416、418、420及び422とを有する。複数のソース/ドレイン領域(その一例はソース/ドレイン領域430である)が、各記憶素子と選択ゲート406及び424の両側に形成されている。一つのアプローチでは、基板490は、3重ウェル技術を採用しており、p型基板領域496の中にnウェル領域494が形成されており、その中にpウェル領域492が形成されている。NANDストリングとその不揮発性記憶素子は、少なくとも部分的には、pウェル領域上に形成されている。ビットライン426にはVBLの電位が供給されるとともに、ソース供給ライン404にはVSOURCEの電位が供給される。ボディバイアス電圧のような電圧は、端子402を介してpウェル領域492にも印加され、かつ/又は端子403を介してnウェル領域494に印加される。
読み出し処理の間、記憶素子414に関係付けられた選択ワードライン(この例ではWL3である)に制御ゲート電圧VCGRが供給される。さらに、記憶素子の制御ゲートは、ワードラインの一部として提供され得ることに留意されたい。例えば、WL0、WL1、WL2、WL3、WL4、WL5、WL6、及びWL7は、それぞれ、記憶素子408、410、412、414、416、418、420、及び422の制御ゲートを通じて延設し得る。一つの可能なブースト方式では、NANDストリング400に関係付けられた残りのワードラインにパス電圧VREADが印加される。いくつかのブースト方式では、異なるワードラインに異なるパス電圧が印加される。選択ゲート406と424には夫々、VSGSとVSGDが印加される。
図5a〜5eは、最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す。逆のプログラムシーケンスは、障害および隣接セルの干渉効果の影響を低減することができる。このようなプログラミング技術の一例は、「C−ファースト(C−first)」と呼ばれ、状態Cが4データ状態のマルチレベルの実行における最高の状態を表わす。この技術は、8、16、またはその他の状態数に拡張することができる。このような技術は、低い状態のセルをそれらの目的とする状態にプログラムする前に最高の状態のセルすべてをそれらの目的とする状態にプログラムすることを要する。典型的に、2つまたはそれ以上のパスが実行され、一連のプログラムパルスが各プログラミングパスにおいて繰り返される。たとえば、ステップ状に増加する一連のプログラムパルスが各パスにおいて印加されてもよい。
図5aは、消去動作後の一組の記憶素子の閾値電圧区分を示す。x軸は、4つの異なる状態、すなわち、消去状態(E)、状態A、状態B、および状態Cの閾値電圧(VTH)を示す。y軸は、各状態におけるセルまたは記憶素子の数を示す。また、各状態対する電圧検証レベル、すなわち、それぞれ状態A、B、およびCに対する、VV−A、VV−B、およびVV−Cが示される。図面は、必ずしも一定の縮尺で描かれていないが、消去済み状態区分の比較的高い振幅はセルのすべてがその状態にあることを示すように意図されている。状態A、B、およびCは、どのセルも現在それらの状態にないことを表現するために破線を用いて示される。図5aは、E、A、B、およびセルCが消去状態にあることを示す。「セルA」、「セルB」、または「セルC」などの用語は、プログラミングの終了時の最終状態として、それぞれ、状態A、B、またはCにプログラムされることになっているセルを指すことが意図されている。
第1プログラミングパスの第1の部分が図5b〜5dに示されている。図5bでは、セルBおよびCは、消去状態から「状態LM」(たとえば、下位−中間)と呼ばれる中間状態または一時的な状態にプログラムされる。状態LMおよび他の状態の閾値電圧区分は、一般に、オーバーシュートおよびプログラミング精度の他の限界に起因する広がりを有することになる。セルEおよびAは消去状態のままである。このプログラミングパスでは、たとえば、初期のパルスレベルで始まり最終パルスレベルまでステップ状に進む一連のプログラムパルスが印加される。たとえば、第1プログラミングパスにおけるプログラム電圧および検証電圧を示す図7aを参照されたい。x軸は時間を示し、y軸は電圧を示す。プログラムパルスは、ステップ状に上昇し、振幅が検証パルスよりも高い。第1プログラミングパスの第1の部分では、セルがVV−LMと対照して検証される(この表記法では、大文字Vは電圧を表わし、下付き文字V−LMは「検証」および「状態LM」を表わす)。プログラムされたセルは、それらのVTHがVV−LMに達していることが検証されると以後のプログラミングからロックアウトされる。図7aの例では、すべてのセルBおよびCが11番目のプログラムパルスの後に状態LMに達している。
この時点で、第1プログラミングパスの第2の部分が始まる。図5cに示されるように、セルC、たとえば、最高の状態のセルのみがプログラムされる。セルCは、状態LMからプログラムされて、VV−Cと対照して検証される。状態LMにおける振幅の低下は、状態LMにあるセルが比較的少ないことを示すことを意味している。すなわち、セルCが比較的高位にプログラムされるときセルBは状態LMのままである。一部のセルは比較的迅速にプログラムされるが、他のセルは、たとえば、セルの種々の特性、メモリデバイス内のセルの相対位置、およびその他の要因に起因して、比較的緩やかにプログラムされる。結果として、プログラミング中に、セルCは、最初は比較的広い閾値電圧区分510に広がることになる。第1プログラミングパスの第2の部分のプログラミングが進むにつれて、セルCは図5dに示されるように状態C区分520にプログラムされることになる。
第2プログラミングパスでは、一連のプログラムパルスが、たとえば、図5eおよび図7bに示されるように、選択ワードラインを介してプログラムされるセルに再び印加される。セルAは消去状態から状態Aにプログラムされる一方、セルBは状態LMから状態Bにプログラムされる。一つのアプローチでは、最初の6つの各プログラムパルスの後では検証がセルAのみに対して実行され、次の7つの各プログラムパルスの後では検証がセルAおよびBに対して実行され、残る各プログラムパルスの後では検証がセルBのみに対して実行される。この例では、プログラムパルスの総数が22である。プログラミングが終了すると、図6fの閾値電圧区分が実現される。
上記のアプローチは、図7aおよび7bで示される独立したパスで一連のプログラムパルス全体を繰り返す必要があり、これは図16に関連して以下で議論されるように、たとえば、1パスプログラミング技術に比べて余分な時間がかかる。一方、プログラム障害および隣接セルの干渉効果の影響は低減される。これらの利益を維持する一方でプログラミング時間を短縮することは望ましいことになる。
一つのアプローチは、ここでさらに詳しく説明されるように、反復プログラムパルスの多くをスキップしてプログラム時間を短縮する一方で、マルチパスプログラミング技術の主要な利益を維持することを含む。
図6a〜6gは、最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す。この提案では、前述のC−ファーストシーケンスが以下のように修正される。第1プログラミングパスでは、セルが状態LMにプログラムされた後、セルCを最終状態に向けてプログラムするために初期パルス(又は一連のパルス)が印加される。高いVTHを有する高速セルは、VV−CLL検証レベルを用いて識別され、一時的にロックアウトされる。次のプログラムパルス(VPGM)は、ロックアウトされなかった低速セルCをプログラムするのに適する大きい量だけ増加される。VPGMを大量に増加することによって、パルスをスキップして時間を節約することができる。この後、低速セルCのプログラミングは、最高のVPGMが印加されるまで続く。第2プログラミングパスでは、一時的にロックアウトされた高速セルCが選択された母集団に戻される。VPGMは、初期値に戻され、最後のプログラムパルスによって再び増加され、セルA、セルB、および高速セルCを同時にプログラムする。高速セルCは、このシーケンスの中で迅速にプログラムすることができ、それゆえ、余分な時間を必要としない。具体的な実行では、本発明者らはC−ファースト(または、最終状態ファースト(last−state−first))プログラミングを使用する。この技術は、4つよりも少ないかあるいは多いプログラミング状態を使用する方式に適合させることができる。さらに、高速−低速の違い(fast−slow distinction)は1つまたは複数の高い状態に役立てることができる。
図6aは、すべてのセルが消去状態にある開始閾値電圧区分を示す。さらに、図7cを参照すると、これは図6a〜6dに対応するプログラミング技術におけるプログラム電圧および検証電圧を示す。第1プログラミングパスの第1段階では、すべてのセルBおよびセルCは、VV−LMの検証レベルを用いて消去状態から状態LMにプログラムされ、図6bの閾値電圧区分をもたらす。この段階では、一つの可能なアプローチでは、最小レベルで始まるプログラム電圧が印加され、各パルスはステップサイズΔVだけ増加される。一つの可能な実施例では、11のプログラムパルスがこの段階で印加される。提供される数値例は具体的なアプリケーションを最適化するように調整することができることを理解されたい。一般に、プログラミングおよび検証中に使用されるすべての電圧レベルおよびその他のパラメータは、具体的なアプリケーションに合わせて最適化することができる。これは、初期および最終プログラムパルスレベル、様々なステップサイズおよび増分、各段階におけるプログラムパルスの数、ならびに検証レベルを含む。
第1プログラミングパスの第2段階では、高速セルCを低速セルCから分離するために閾値電圧検出が実行される。その結果、高速および低速メモリセルは、識別またはグループ化される。セルCは、図6cに示されるように、状態LMから値VC1とVC2の間の閾値電圧の範囲にプログラムされる。図7cに示されるように、段階2における初期のプログラムパルスはΔVだけステップアップされ、段階2における各後続のプログラムパルスはΔVだけ増加される。たとえば、プログラミングがセルCに対して迅速に進むようにΔVおよびΔVはΔVよりも大きくてよい。また、第2段階中に、高速および低速プログラミングセルCを決定することができるように、セルCは新たな検証レベルVV−CLLと対照して検証される。(なお、VV−CLLと対照的に、図6gに関連して以下で議論されるVV−CLは、状態Cに対する雑モード(coarse mode)の検証レベルを示す)。VV−CLLは、オフセットΔを差し引いたVV−Cに等しく、具体的なアプリケーションに合わせて最適化することができる。実施例では、3つのプログラムパルスが段階2において使用されるが、メモリデバイスの特性評価に応じて1つまたは複数のプログラムパルスが使用されてもよい。使用されるプログラムパルスの数は、低速プログラミングセルと高速プログラミングセルを区別できる閾値電圧区分にセルCをプログラムするのに十分であるべきである。
あるいは、段階3を終了する判断は、VTH>VV−CLLである、ワードラインまたはブロックなどにおける一組のセルC内のセルCの数またはセルCの一部分に応じて「個別に」適応決定することができる。たとえば、段階2は、第1のセルCがVTH>VV−CLLに達すると終了することができる。また、所定数または所定部分のセルがVTH>VV−CLLに達した後のある一定数の追加プログラムパルスの後で段階2を終了することが可能である。
段階2が終了した後、低速セルCの閾値電圧はVC1とVV−CLLの間の範囲610にあり、高速セルCの閾値電圧はVV−CLLとVC2の間の範囲620にあるであろう。なお、この例は、低速および高速セルCの区分が、それぞれ、約50%および50%であることを示す。しかしながら、高速セルCおよび低速セルCの数が等しい必要はない。さらに、閾値電圧区分の範囲に関して、例は、VC1における区分の低端が区分LMの範囲に入ることを示す。しかしながら、これは、VC1における区分の低端が区分LMの上の方にあってもよいので必要でない。さらに、VC2におけるセルC区分の高端は、最終状態C区分の高端にあるものとして示されているが、低い方にあってもよい。
図6dに示されるように、段階2の後、第1プログラミングパスの第3段階が起こり、段階2で識別された高速セルCはプログラミングから一時的にロックアウトされ、低速セルCのプログラミングが継続される。この例では、段階3は、VV−Cレベルにおいて4つの追加プログラムパルスおよび検証を含む。ここでは、プログラムパルスシーケンスにおいて先にスキップすることが可能であり、したがって、大幅にステップアップされたプログラムパルスが段階3の開始時に印加される。プログラムパルスをスキップすることによって、本発明者らはこれらのスキップされたパルスに対応する時間を節約している。たとえば、図7aのアプローチと比較すると、パルス15〜18は、図7cにおける段階3の最初のプログラムパルス(15番目のパルス全体)が図7aの19番目のプログラムパルスと同じレベルであるようにスキップされてもよい。この後、図7cにおける段階3の2番目〜4番目のプログラムパルスは、一つの可能なアプローチにおいて、図7aのそれぞれ20番目から22番目のプログラムパルスと同じレベルであってもよい。それゆえ、図7cのプログラムシーケンス例では、22のプログラムパルスを使用する図7aのプログラムシーケンス例と対照的に18のプログラムパルスを使用し、プログラム時間の大幅な節約をもたらす。
さらに、段階3の最初のプログラムパルスは段階2の最後のプログラムパルスをΔVだけ超えてもよく、その一方、ΔVのステップサイズは段階3における後続のパルスに使用される。一つのアプローチでは、ΔVはΔVおよびΔVよりも大きい。ΔVは、ΔVよりも大きくかつΔVと同程度であってもよい。一つのアプローチでは、ΔVはVV−C−VV−CLL、すなわち、状態C検証レベルと低い状態C検証レベルの差に等しいかほぼ等しい。一般に、低速セルがプログラムされていることは分かっているので、プログラムパルスレベルは前のパルスに比べて段階3で急激にステップアップすることができる。このようなセルは、比較的変化しにくく、したがって、それらの閾値電圧が目的とする最終状態に向って上昇し続けるように振幅が大きくおよび/または持続時間の長いプログラムパルスが選択ワードラインを介してセルの制御ゲートに印加される必要がある。それゆえ、別の態様は、段階3においてプログラムパルスレベルを上げることに加え、あるいはプログラムパルスレベルを上げることに代えて、プログラムパルスの持続時間を延長することを含む。
段階3の後、第1プログラミングパスが終了し、続いて第2のプログラムパスが実行される。それゆえ、第1プログラミングパスの後半部分では、最後の最高の状態の対象となるセルのみが選択される間に多数のプログラムパルスの印加を伴う。開始時および最後のVPGM値は、増分およびステップサイズとともに、特性評価中に最適化されるべきパラメータである。
第2プログラミングパスは、図6eおよび6fと図7dに関連して説明される。図7dは、図6eおよび6fに対応するプログラミング技術におけるプログラム電圧および検証電圧を示す。図7dのプログラムパルスシーケンスは、一つの可能なアプローチでは、プログラムパルスが正規のステップで徐々に増加される通常のシーケンスである。
以前にロックアウトされた高速セルC(VTH区分630で表わされる)はロックアウトが解除され、したがって、これらは図6eに示されるようにセルAおよびセルBとともにプログラムされる。セルAは消去状態からプログラムされるが、セルBは状態LMからプログラムされる。図7dのプログラムパルスシーケンスでは、6つのプログラムパルスに及ぶ第4段階を定義することができ、この段階では初期パルスに続いてΔVだけ増加されるパルスが印加され、セルAの検証がVV−Aを用いて実行される。5つのプログラムパルスに及ぶ第5段階を定義することができ、この段階ではセルAおよびセルBの検証がそれぞれVV−AおよびVV−Bを用いて実行される。2つのプログラムパルスに及ぶ第6段階を定義することができ、この段階ではセルA、セルB、および高速セルCの検証がそれぞれVV−A、VV−B、およびVV−Cを用いて実行される。6つのプログラムパルスに及ぶ第7段階を定義することができ、この段階ではセルBおよび高速セルCの検証がそれぞれVV−BおよびVV−Cを用いて実行される。この時点で、第2のプログラムパスおよびプログラミング動作全体が終了して図6fの閾値電圧分布をもたらす。
低速セルCがなく、高速セルCのみがプログラムを継続しているので、第2プログラミングパスは図7bのアプローチよりも早く終了するはずである。さらに、第2プログラミングパスは、図7cの第3段階の最初のプログラムパルスのレベルにあるプログラムパルスに達するおよその時刻、たとえば、図7dの19番目のプログラムパルスまでに終了するはずである。それゆえ、第2プログラミングパスは図7bの22のプログラムパルスではなく19番目のプログラムパルスの後に終了してもよく、これによってプログラム時間が大幅に節約される。示される例では、第1および第2プログラミングパスでの時間の節約は全体で7つのプログラムパルスである。さらなる詳細については図10を参照されたい。
オプションとして、本明細書に記載した技術は、図6gに示されるように、雑/ファインプログラミング処理を含むように修正することができる。雑/ファインプログラミングは、最初にセルが比較的迅速にプログラムされる雑モードで、セルのプログラミングに関与する。これは、たとえば、比較的大きいあるいは大胆なプログラムパルスのステップサイズまたはパルス持続時間を用いて実現されてもよい。セルが目的とする最後のプログラミング状態の検証レベル以下のレベル(それぞれ、状態A、B、およびCに対して雑モード検証レベルVV−AL、VV−BL、およびVV−CL)で検証されるとき、セルは、セルが比較的ゆっくりプログラムされるファインプログラミングモードに切り換えられる。これによって、オーバーシュートが抑制されるので、セルをより正確にプログラムすることができる。ファインプログラミングモードは、たとえば、ステップサイズ及び/またはパルス持続時間が比較的小さいプログラムパルスを印加し、及び/またはビットライン電圧を上昇させてプログラミング速度を遅くしてもよい。雑モードで達する閾値電圧区分は、それぞれA、B、およびCと標記されるファインモードで達する閾値電圧区分と区別するために、AL、BL、およびCLと標記される。状態LMへのプログラミングは、状態LMが中間状態であり、精度がさほど重要でないので雑/ファインプログラミングを採用する必要がない。
たとえば、低速セルCが状態C(たとえば、図6d)にプログラムされる第1プログラミングパスでは、低速セルCは、VV−CLで検証された後、ファインプログラミングに切り換えられ、VV−Cの最終検証レベルが引き続いて印加される。第2プログラミングパスでは、セルA、セルB、および高速セルCは、最初、雑モードにおいてそれぞれVV−AL、VV−BL、およびVV−CLで検証され、ファインモードにおいてそれぞれVV−A、VV−B、およびVV−Cで検証される。一つの態様では、雑/ファイン技術は、第2プログラミングパス中にプログラムされる高速セルCのみに使用されるようにして、セルCには限定的に使用されるようにしてもよい。雑/ファインプログラミング技術の例は、参照によって本明細書に組み込まれる米国特許第7,088,621明細書において議論されている。また、以下のパス「A」およびパス「B」(たとえば、段階4〜7)に比べて「C−ファースト」パス(たとえば、段階3)に対するビットライン電圧またはパルス数を別々に最適化することも可能である。このような最適化は、プログラミング時間の増加を回避するために許容される最大数の「ファイン」パルスを設定することを含んでいてもよい。
さらに、他の修正形態が図7a〜7dに関連して議論される技術を含む前述の技術のいずれにも適用可能である。一つのアプローチでは、種々のプログラム条件がプログラミングパスの種々の段階または一部、および/または種々のプログラミングパスにおいて実行される。たとえば、第1および第2プログラミングパスは、性能、区分幅、およびプログラム障害特性などの目標に対して2つのパスを別々に最適化するために種々の掃引パラメータを有することができる。一例は、速度と区分幅の独立のトレードオフを有するように第1プログラミングパスと第2プログラミングパスの間に比較的大きいプログラムパルスステップサイズを使用することである。別の例は、2つのプログラミングパスに対して独立に適用されて最適化される種々のプログラム禁止パラメータを使用することである。たとえば、種々のチャネルブーストモードが第1および第2プログラミングパスにおける非選択ワードラインに印加される種々のパス電圧によって実行されてもよい。たとえば、種々のチャネルブーストモードについて参照によって本明細書に組み込まれる米国特許第6,859,397号明細書を参照されたい。また、プログラミング中に非選択ワードラインに印加されるパス電圧を示す図4も参照されたい。また、雑プログラミングモードに続くファインプログラミングモードにおいて種々の最大許容プログラムパルス数が使用されてもよい。また、ファインプログラミングモード中などに、種々のビットライン電圧が使用されてもよい。様々な他の態様が可能である。基本的に、プログラミングに影響を与えるように設定できるパラメータは、プログラミングパスの種々の段階または一部に対しておよび/またはプログラミング処理全体の種々のプログラミングパスにおいて最適化することができる。
図8aおよび8bは、図6a〜6fに対応するプログラミング処理を表わす。議論される具体的な実施は、4つの状態を含む。しかしながら、他の実施も可能である。図8aに示すように、ステップ800で、プログラミングが始まる。ステップ802で、段階1(図7cも参照されたい)が始まり、セルAは一時的にプログラミングからロックアウトされる。なお、消去状態を維持することが目的とされているセルは、プログラミング処理を通じてロックアウトされる。ステップ804は、最低VPGMレベルで始まるプログラムパルスを印加することを含む。ステップ806は、VV−LMで検証を実行して状態LMに達するセルBおよびセルC(VTH>VV−LMであるセル)を一時的にロックアウトすることを含む。「ロックアウト」という用語は、関連ビットラインの電圧を上昇させるなどしてセルのさらなるプログラミングを防止する一方で、他のセルがプログラムされ続けることを指す。判断ステップ808は、すべてのセルBおよびセルCが状態LMに対して検証されているかどうか、あるいは所定の数N1のプログラムパルスが印加されているかどうかを判定する。すべてのセルBおよびセルCが状態LMまで検証されておらず、かつN1パルスが印加されていないと判定されると、ステップ810で次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ806にループバックする。判断ステップ808ですべてのセルBおよびセルCが状態LMまで検証されているか、またはN1パルスが印加されていると判定されると、ステップ812で第1プログラミングパスの段階2が始まる。ここで、セルCを除くすべてのセルは、プログラミングから一時的にロックアウトされる(たとえば、セルAおよびセルBはロックアウトされる)。セルCは第1の組の記憶素子と見なされてもよいが、セルAおよびセルBは、それぞれ、第2および第3の組の記憶素子である。ステップ814は、前のパルスからΔVだけ増加されるプログラムパルスを印加することを含む。
ステップ816は、VV−CLLで検証を実行してVTH>VV−CLLであるセルCを一時的にロックアウトすることを含む。これらのロックアウトされたセルは高速セルCである。判断ステップ818は、所定の数N2のプログラムパルスが印加されているかどうか、あるいは所定の数または部分N3のセルCがVV−CLLに達しているかどうかを判定する。別の態様は、所定の数または部分のセルCがVV−CLLに達しており、かつ所定の数のさらなるプログラムパルスが印加されているかどうかを判定することである。所定の数N2のプログラムパルスが印加されておらず、かつ所定の数または部分N3のセルCがVV−CLLに達してないと判定されると、ステップ820で、次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ816にループバックする。判断ステップ818で所定の数N2のプログラムパルスが印加されているか、あるいは所定の数または部分N3のセルCがVV−CLLに達していると判定されると、ステップ822で、第1プログラミングパスの段階3が始まる。ここで、低速セルCを除くすべてのセルは、プログラミングから一時的にロックアウトされる(たとえば、セルA、セルB、および高速セルCはロックアウトされる)。ステップ824は、前のパルスからΔVだけ増加されるプログラムパルスを印加することを含む。
ステップ826は、VV−Cで検証を実行してVTH>VV−Cである低速セルCを永久にロックアウトすることを含む。永久ロックアウトは、現在のプログラミング動作全体にわたるロックアウトを指す。判断ステップ828は、すべての低速セルCが状態Cに達しているかどうか、あるいは所定の数N4のプログラムパルスが印加されているかどうかを判定する。なお、本明細書で言及されるプログラムパルスの数(たとえば、N1〜N8)は、現在の段階におけるプログラムパルスおよび/または現在のプログラミングパスにおけるプログラムパルスの総数によって表わすことができる。ステップ828ですべての低速セルCが状態Cに達しておらず、かつ所定の数N4のプログラムパルスが印加されていないと判定されると、ステップ830で、次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ826にループバックする。判断ステップ828ですべての低速セルCが状態Cに達しているか、あるいは所定の数N4のプログラムパルスが印加されていると判定されると、ステップ832で、段階4および第2プログラミングパスが始まる。ここで、セルA、セルB、および高速セルCは、プログラムできるようにそれらの一時的なロックアウトから解除される。処理は図8bに続く。
図8bでは、ステップ840は、最低VPGM、または他の初期VPGM値で再び始まるプログラムパルスを印加することを含む。ステップ842は、VV−Aで検証を実行してVTH>VV−AであるセルAを永久にロックアウトすることを含む。判断ステップ844は、すべてのセルAが状態Aに達しているかどうか、あるいは所定の数N5のプログラムパルスが印加されているかどうかを判定する。ステップ844ですべてのセルAが状態Aに達しておらず、かつ所定の数N5のプログラムパルスが印加されていないと判定されると、ステップ846で次のプログラムパルスが印加され、一つの可能なアプローチでは、前のパルスをΔVだけ増加する。この後、処理はステップ842にループバックする。ステップ844ですべてのセルAが状態Aに達しているか、あるいは所定の数N5のプログラムパルスが印加されていると判定されると、ステップ848で段階5が始まり、この場合、ステップ850で、ΔVの増加を用いた次のプログラムパルスが印加される。ステップ852は、VV−AおよびVV−Bで検証動作を実行してそれぞれVTH>VV−AまたはVTH>VV−BであるセルAおよびセルBを永久にロックアウトすることを含む。判断ステップ854は、すべてのセルAおよびセルBがそれぞれ状態Aおよび状態Bに達しているかどうか、あるいは所定の数N6のプログラムパルスが印加されているかどうかを判定する。ステップ854ですべてのセルAおよびセルBがそれぞれ状態Aおよび状態Bに達しておらず、かつ所定の数N6のプログラムパルスが印加されていないと判定されると、ステップ856で次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ852にループバックする。ステップ854ですべてのセルAおよびセルBがそれぞれ状態Aおよび状態Bに達しているか、あるいは所定の数N6のプログラムパルスが印加されていると判定されると、ステップ858で段階6が始まり、この場合、ステップ860で、ΔVの増加を用いた次のプログラムパルスが印加される。
ステップ862は、VV−A、VV−B、およびVV−Cで検証動作を実行してそれぞれの目的とする状態に達するセルA、セルB、およびセルC(たとえば、それぞれVTH>VV−A、VTH>VV−B、およびVTH>VV−Cである)を永久にロックアウトすることを含む。判断ステップ864はすべてのセルA、セルB、およびセルCが目的とする状態A、B、またはCに達しているかどうか、あるいは所定の数N7のプログラムパルスが印加されているかどうかを判定する。ステップ864ですべてのセルA、セルB、およびセルCが目的とする状態A、B、またはCに達しておらず、かつ所定の数N7のプログラムパルスが印加されていないと判定されると、ステップ866で次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ862にループバックする。ステップ864ですべてのセルA、セルB、およびセルCが目的とする状態A、B、またはCに達しているか、あるいは所定の数N7のプログラムパルスが印加されていると判定されると、ステップ868で、段階7、すなわち第2プログラミングパスの最終段階が始まり、この場合、ステップ870で、ΔVの増加を用いた次のプログラムパルスが印加される。ステップ872は、VV−BおよびVV−Cで検証動作を実行してそれらの目的とする状態に達するセルBおよびセルC(たとえば、それぞれVTH>VV−BおよびVTH>VV−Cである)を永久にロックアウトすることを含む。判断ステップ874はすべてのセルBおよびセルCがそれぞれ状態BおよびCに達しているかどうか、あるいは所定の数N8のプログラムパルスが印加されているかどうかを判定する。判断ステップ874ですべてのセルBおよびセルCがそれぞれ状態BおよびCに達しておらず、かつ所定の数N8のプログラムパルスが印加されていないと判定されると、ステップ876で次のプログラムパルスが印加され、前のパルスをΔVだけ増加する。この後、処理はステップ872にループバックする。ステップ874ですべてのセルBおよびセルCがそれぞれ状態BおよびCに達しているか、あるいは所定の数N8のプログラムパルスが印加されていると判定されると、ステップ878でプログラミングは終了する。
図9aは、異なるプログラミング条件が各パスにおいて使用されるマルチパスプログラミング処理を表わす。前述のように、異なるプログラム条件をプログラミングパスの異なる段階または一部および/または種々のプログラミングパスにおいて実行することができる。このことによって、性能、区分幅、およびプログラム障害特性などの目標に対する2つのプログラミングパスまたはその一部を最適化することが可能になる。プログラミング条件の例として、プログラムパルスのステップサイズ、プログラムパルス持続時間、プログラム禁止パラメータ、チャネルブーストモード、パス電圧、ファインプログラミングモードにおけるプログラムパルスの最大許容数、およびファインプログラミングモード中などに使用されるビットライン電圧が挙げられる。ステップ900は、第1プログラミングパスを開始することを含む。ステップ902は、第1プログラミング条件を実行することを含む。ステップ904は、セルCをプログラムすることと高速セルCをロックアウトすることとを含む。ステップ906は、低速セルCをプログラムすることを含む。ステップ908は、第2プログラミングパスを開始することを含む。ステップ910は、第1プログラミング条件とは異なる第2プログラミング条件を実行することを含む。ステップ912は、セルA、セルB、および高速セルCをプログラムすることを含む。
図9bは、高い状態のセルが低い状態のセルの前にプログラムされるマルチパスプログラミング処理を表わす。4つのデータ状態が使用され、状態Cが最高のデータ状態である実施例が提供されているが、他の実施が可能である。たとえば、8つまたは16のデータ状態を使用することが可能である。さらに、1つよりも多くの高い状態に対して高速−低速技術を実施することも可能である。たとえば、8つのデータ状態の場合、2つの最高の状態が本明細書で議論される技術を最初に用いてプログラムされてもよい。このような場合、2つの最高の状態における高速セルおよび低速セルは、第1プログラミングパスにおいて決定され、高速セルは低速セルがプログラミングを終了する間にロックアウトされる。第2プログラミングパスでは、他のすべてのセルは、2つの最高の状態において高速セルとともに目的とするそれらの最終状態にプログラムされる。他の様々なアプローチも可能である。
ステップ920は、第1プログラミングパスを開始することを含む。ステップ922は、セルを中間状態(たとえば、状態LM)にプログラムすることを含む。ステップ924は、高い状態のセルをプログラムすることと高速の高い状態のセルが検出された後でこれらをロックアウトすることとを含む。ステップ926は、低速の高い状態のセルをプログラムすることを含む。ステップ928は、第2プログラミングパスを開始することを含む。ステップ930は、高速の高い状態のセルを含む、残りのセルをプログラムすることを含む。
図10は、3つの異なるプログラミング技術に対するプログラムパルス番号と検証レベルの表を示す。ケース#1は、図16に関連して以下で議論されるような1パスプログラミング技術を指す。ケース#2は、図7aおよび図7bに関連して先に議論されたようなマルチパスプログラミング技術を指す。ケース#3は、図7cおよび図7dに関連して先に議論されたようなマルチパスプログラミング技術を指す。一番左の列は、1〜22の範囲のプログラムパルス番号を示す。検証レベルA、B、およびCは、それぞれ、状態A、B、およびCに対するVV−A、VV−B、およびVV−Cを指す。さらに、雑/ファインプログラミングが採用されるとき、雑検証レベルA、BL、およびCLは、それぞれ、状態A、B、およびCに対するVV−AL、VV−BL、およびVV−CLを指し(図6g参照)、VV−A、VV−B、およびVV−Cはファイン検証レベルである。CLLは検証レベルVV−CLLを示す。
ケース#1は、VV−Aおよび/またはVV−ALにおける13の検証動作、VV−Bおよび/またはVV−BLにおける13の検証動作、ならびにVV−Cおよび/またはVV−CLにおける11の検証動作の合計63の検証動作を含む。さらに、22のプログラムループ(たとえば、プログラムパルス)が適用される。それゆえ、合計85の動作が実行される。ケース#2は、VV−Cにおける11の検証動作、VV−Aおよび/またはVV−ALにおける13の検証動作、ならびにVV−Bおよび/またはVV−BLにおける13の検証動作の合計63の検証動作を含む。さらに、30のプログラムパルス(全部で、2プログラミングパスにわたる)が印加される。それゆえ、合計93の動作が実行される。ケース#3は、VV−CLLにおける4つの検証動作、VV−Aおよび/またはVV−ALにおける13の検証動作、VV−Bおよび/またはVV−BLにおける13の検証動作、ならびにVV−CLおよび/またはVV−Cにおける8つの検証動作の合計65の検証動作を含む。さらに、24のプログラムパルス(全部で、2プログラミングパスにわたる)が印加される。それゆえ、合計89の動作が実行される。それゆえ、ケース#3では、ケース#2と比べて、6つのプログラムパルスをさらに印加することに関わる時間が節約される。この節約は2つの検証動作がさらに必要となることによってわずかに相殺されるが、総合的な利益はなお有意である。実現される可能性のある時間の節約は、他のアプリケーションではさらに大きいかもしれない。
図11は、図1および2に示したようなNAND記憶素子のアレイ1100の一例を示している。各列に沿って、ビットライン1106はNANDストリング1150のドレイン選択ゲートのドレイン端子1126に接続している。NANDストリングの各行に沿って、ソースライン1104はNANDストリングのソース選択ゲートのすべてのソース端子1128に接続できる。メモリシステムの一部としてのNANDアーキテクチャアレイ及びその動作の一例は、米国特許第5,570,315号、第5,774,397号、及び第6,046,935号に記載されている。
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュEEPROMシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは基本プログラミング動作として一度に書き込まれる最小数の記憶素子を有することができる。一般に、記憶素子の1行に1ページ以上のデータを記憶する。1ページは1つ以上のセクタを記憶できる。1つのセクタは、ユーザデータとオーバヘッドデータを有する。オーバヘッドデータは一般に、そのセクタのユーザデータから計算された誤り訂正符号(ECC)を有する。制御部(後述)の一部は、データがアレイ内に書き込まれるときにECCを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ECC及び/又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにさえ記憶される。
ユーザデータのセクタは一般に512バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の16〜20バイトである。多数のページがブロックを構成し、それは8ページから、例えば最大32、64,128またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、NANDストリングの列はブロックを含む。
一実施形態では、メモリ記憶素子は、十分な期間に亘ってp−ウェルが消去電圧(例えば20V)に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。容量結合のために、未選択ワードライン、ビットライン、選択ライン、及び、c−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、ファウラ−ノルドハイムトンネルメカニズムによってフローティングゲートの電子が基板側に放出されるにつれて選択された記憶素子のデータが消去される。電子がフローティングゲートからp−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
図12は、単一の行/列デコーダ及び読み出し/書き込み回路を使用する不揮発性メモリシステムのブロック図である。図は、本発明の一実施形態に従って記憶素子のページを同時に読み取り、プログラミングするための読み出し/書き込み回路を有するメモリ素子1296を示す。メモリ装置1296は、1つ以上のメモリダイ1298を有する。メモリダイ1298は、2次元のアレイの記憶素子1100、制御回路1210、及び、読み出し/書き込み回路1265を有する。いくつかの実施形態では、記憶素子のアレイは3次元であり得る。メモリアレイ1100は行デコーダ1230を介してワードラインによって、及び、列デコーダ1260を介してビットラインによってアドレスできる。読み出し/書き込み回路1265は複数の検出ブロック1200を有しており、1ページの記憶素子を並列に読み出し又はプログラミングすることができる。一般に、制御部1250は、1つ以上のメモリダイ1298のように同じメモリ装置1296(例えば、取り外し可能なストレージカード)内に含まれる。コマンド及びデータは、ライン1220を介してホストと制御部1250の間、及び、ライン1218を介して制御部と1つ以上のメモリダイ1298の間で送られる。
制御回路1210は、読み出し/書き込み回路1265と協調して、メモリアレイ1100上でメモリ動作を実行する。制御回路1210は、ステートマシン1212、オンチップアドレスデコーダ部1214、及び、電力制御モジュール1216を有している。ステートマシン1212は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ1214は、ホスト又はメモリ制御部によって用いられるとともに、デコーダ1230及び1260によって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール1216は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
いくつかの実装形態では、図12の構成要素のいくつかを結合することができる。多様な設計では、記憶素子アレイ1100以外の構成要素の1つまたは複数を(単独でまたは組み合わせて)1つの管理回路と見なすことができる。例えば、一つ以上の管理回路は、制御回路1210、ステートマシン1212、デコーダ1214/1260、電力制御1216、検出ブロック1200、読み出し/書き込み回路1265、制御部1250等の内の1つ、または組み合わせを有してよい。
図13は、二重行/列デコーダ及び読み出し/書き込み回路を使用する不揮発性メモリシステムのブロック図である。ここでは、図12に図示されるメモリ素子1296の別の配列が示される。多様な周辺回路によるメモリアレイ1100に対するアクセスは、アレイの両側で対称様式に実現され、その結果各側のアクセスラインと回路網の密度は半分に低減される。従って、行デコーダは行デコーダ1230Aと1230Bに分割され、列デコーダは列デコーダ1260Aと1260Bに分割されている。同様に、読み出し/書き込み回路は、アレイ1100の底部からビットラインに接続する読み出し/書き込み回路1265Aと、アレイ1100の上部からビットラインに接続する読み出し/書き込み回路1265Bに分割されている。この方法により、読み出し/書き込みモジュールの密度は本質的に二分の一に低減される。図13の装置は、図12の装置で上述したような制御部を有することもできる。
図14は、検出ブロックの一実施形態を示すブロック図である。検証及び読み出しのような検出動作は検出ブロックを含む。個々の検出ブロック1200は、検出モジュール1280と呼ばれるコア部と共通部1290とに分割される。一実施形態では、各ビットラインの別個の検出モジュール1280と、複数の検出モジュール1280の集合の1つの共通部1290があってもよい。一例では、検出ブロックは、1つの共通部1290と8つの検出モジュール1280を有することができる。グループ内の各検出モジュールは、データバス1272を介して関連する共通部と通信できる。さらなる詳細としては、米国特許出願公開第2006/0140007号を参照する。その全体は参照することにより本明細書に組み込まれる。
検出モジュール1280は検出回路1270を有しており、検出回路1270は接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。検出モジュール1280はさらにビットラインラッチ1282を有しており、ビットラインラッチ1282は接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ1282内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態(例えば、1.5〜3V)に設定する。
共通部1290は、プロセッサ1292、1セットのデータラッチ1294、及び1セットのデータラッチ1294とデータバス1220の間を接続するI/Oインタフェース1296を有する。プロセッサ1292は計算を実行する。例えば、その機能の1つは、検出された記憶素子内に記憶されているデータを判定し、判定したデータを1セットのデータラッチ内に記憶することである。1セットのデータラッチ1294は、読み出し動作中に、プロセッサ1292によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス1220から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムされる予定の書き込みデータを表す。I/Oインタフェース1296は、データラッチ1294とデータバス1220の間のインタフェースを提供する。
読み出し又は検出中には、システムの動作はステートマシン1212の制御下にあり、ステートマシン1212はアドレスされた記憶素子への異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール1280はこれらの電圧の1つに移動し、バス1272を介して検出モジュール1280からプロセッサ1292に出力が提供される。その時点で、プロセッサ1292は、検出モジュールの移動イベントと、ステートマシンから入力ライン1293を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ1294に記憶する。コア部の別の実施形態では、ビットラインラッチ1282は、検出モジュール1280の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方の機能を兼ねる。
当然のことながら、いくつかの実装形態では複数のプロセッサ1292を有することができる。一実施形態では、各プロセッサ1292は出力ライン(図示せず)を有し、各出力ラインは共にワイヤードOR接続される。いくつかの実施形態では、出力ラインは、ワイヤードORラインに接続する前に反転される。ワイヤードORを受け取るステートマシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の迅速な決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理0がワイヤードORラインに送られる(又はデータ1を反転させる)。全てのビットがデータ0を出力する(又はデータ1を反転させる)と、ステートマシンはプログラミング処理を終了することを認識する。各プロセッサが8つの検出モジュールと通信するので、ステートマシンはワイヤードORラインを8回読み出す必要があるか、あるいは関連するビットラインの結果を蓄積するために論理がプロセッサ1292に追加され、ステートマシンがワイヤードORラインを一度だけ読み出せば良いようにする。同様に、論理レベルを正しく選ぶことにより、グローバルステートマシンは、第1のビットがいつその状態を変更し、相応してアルゴリズムを変更するのかを検知できる。
プログラム又は検証中に、プログラムされるデータはデータバス1220から1組のデータラッチ1294内に記憶される。ステートマシンの制御下の書き込み動作は、アドレス指定される記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを有する。各プログラムパルスに続いてリードバック(検証)が実行され、記憶素子が所望のメモリ状態にプログラムされたかどうかを判定する。プロセッサ1292は、所望のメモリ状態に対するリードバックメモリ状態を監視する。その2つが一致する場合、プロセッサ1292はビットラインラッチ1282を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラムパルスがその制御ゲートに現れても、ビットラインに接続した記憶素子がさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ1282をロードし、検出回路が検証処理中に禁止値にそれを設定する。
データラッチスタック1294は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール1280毎に3つのデータラッチが存在する。いくつかの実装形態では、(必須ではないが)データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス1220のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、m個の記憶素子の読み出し/書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを形成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、r個の読み出し/書き込みモジュールのバンクを調整し、その組のデータラッチが読み出し/書き込みブロックの全体のシフトレジスタの一部であっても、その組のデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
不揮発性記憶装置の多様な実施形態の構造及び/または動作についての追加情報は、米国特許第7,196,931号、米国特許第7,023,736号、米国特許第7,046,568号、米国特許第7,196,928号、及び、米国特許第7,327,619号に記載されている。直前に示した特許文書の5つの全ては、その全体を参照することにより本明細書に組み込まれる。
図15は、全ビットラインメモリアーキテクチャのために、又は、奇数−偶数メモリアーキテクチャのために、メモリアレイをブロックに編成する例を示す。メモリアレイ1500の例示的な構造が説明される。一例として、1,024個のブロックに分割されるNANDフラッシュEEPROMが説明されている。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックに、ビットラインBL0、BL1、・・・BL8511に対応する8,512の列が存在する。全ビットライン(ABL)アーキテクチャ(アーキテクチャ1510)と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラミング動作中に同時に選択される。共通のワードラインに沿っており、任意のビットラインに接続される記憶素子は、同時にプログラミングされる。
示される例では、4個の記憶素子が直列に連結されてNANDストリングを形成している。4個の記憶素子が各NANDストリングに含まれることが示されているが、4個より多く又は4個より少なくてもよい(例えば16個、32個、64個、その他の数)NANDストリングの1つの端子は、(選択ゲートドレインラインSGDに接続される)ドレイン選択ゲートを介して対応するビットラインに接続され、別の端子が(選択ゲートソースラインSGSに接続される)ソース選択ゲートを介してc−ソースに接続される。
奇数−偶数アーキテクチャ(アーキテクチャ1500)と呼ばれる他の実施形態では、ビットラインは偶数ビットライン(BLe)と奇数ビットライン(BLo)に分割される。この奇数−偶数アーキテクチャでは、共通ワードラインに沿っており、奇数ビットラインに接続されている記憶素子群は同時にプログラミングされ、共通ワードラインに沿っており、偶数ビットラインに接続されている記憶素子群は別のタイミングで同時にプログラミングされる。この例では、各ブロックに、偶数列と奇数列に分割される8,512の列がある。この例では、4個の記憶素子が直列にNANDストリングに接続されている。各NANDストリングに4個の記憶素子が含まれることが示されているが、4個より多くの又は4個より少ない記憶素子が用いられることも可能である。
読み出し動作及びプログラミング動作の1つの構成の間に、4,256個の記憶素子が同時に選択される。選択された記憶素子は、同じワードラインと同じ種類のビットライン(例えば、偶数又は奇数)を有する。従って、1論理ページを形成する532バイトのデータを同時に読み出し、あるいは、プログラミングすることが可能であり、1ブロックのメモリが少なくとも8論理ページ(それぞれ奇数ページと偶数ページがある4ワードライン)を記憶できる。4個のマルチステート記憶素子の場合、各記憶素子が2ビットのデータを記憶し、これらの2ビットのそれぞれが別のページに記憶されると、1ブロックは16の論理ページを記憶する。他のサイズのブロック及びページを使用することも可能である。
ABLアーキテクチャ又は奇数−偶数アーキテクチャの何れかの場合は、p−ウェルを消去電圧(例えば20V)に上昇させ、選択されたブロックのワードラインを接地することによって、記憶素子を消去できる。ソースライン及びビットラインはフローティングされる。消去は、メモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行できる。電子は、記憶素子のフローティングゲートからp−ウェル領域に移され、記憶素子のVTHが負となる。
読み出し動作及び検証動作では、選択ゲート(SGDとSGS)が2.5〜4.5Vの範囲の電圧に接続され、未選択ワードライン(例えば、WL2が選択されたワードラインであるときにWL0、WL1、及び、WL3)は読み出しパス電圧VREAD(通常、4.5〜6Vの範囲の電圧)に上昇され、トランジスタをパスゲートとして動作させる。選択されたワードラインWL2は所定の電圧に接続され、その電圧のレベルは、関係する記憶素子のVTHがこのようなレベルを超えているのか、あるいは、下回っているのかを決定するために、読み出し動作及び検証動作ごとに指定される。例えば、2レベルの記憶素子のための読み出し動作では、選択されたワードラインWL2が接地されて、VTHが0Vより高いか否かが検出される。2レベル記憶素子の検証動作では、選択されたワードラインWL2が例えば0.8Vに接続されて、VTHが少なくとも0.8Vに到達したか否かが検証される。ソース及びp−ウェルは0Vにある。偶数ビットライン(BLe)であると仮定される選択されたビットラインは、例えば0.7Vのレベルに事前に充電(プリチャージ)される。VTHがワードライン上の読み出しレベル又は検証レベルより高い場合は、対象の記憶素子と関連するビットライン(BLe)の電位レベルは、非導電性記憶素子のために高いレベルに維持される。他方、VTHが読み出しレベル又は検証レベルより低い場合は、導電性記憶素子がビットラインを放電するために、対象のビットライン(BLe)の電位レベルは、例えば0.5V未満等の低いレベルに減少する。これによって、記憶素子の状態が、ビットラインに接続される電圧比較検出アンプによって検出される。
前述される消去動作、読み出し動作、及び、検証動作は、従来の既知の技法に従って実行される。従って、説明されている詳細の多くは、当業者によって変えられることがある。従来既知の他の消去技法、読み出し技法、及び検証技法も使用できる。
図16は、閾値電圧区分のセットとワンパスプログラミングの例を示す。記憶素子アレイの例示のVTH区分は、各記憶素子が2ビットのデータを記憶するケースに対して提供されている。第1の閾値電圧区分Eは、消去された記憶素子に対して提供される。プログラミングされた記憶素子の3つの閾値電圧区分、A、B及びCも示されている。一実施形態では、E区分の閾値電圧は負であり、A区分、B区分及びC区分の閾値電圧は正である。
それぞれの閾値電圧範囲は、データビットのセットの所定値に対応する。記憶素子にプログラミングされたデータと記憶素子の閾値電圧レベルの特殊な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、両方ともその全体を参照することにより本明細書に組み込まれる、米国特許第6,222,762号及び米国特許第7,237,074号は、マルチ状態フラッシュメモリ素子の多様なデータ符号化方式を説明する。一実施形態では、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に1ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲E(状態E)に「11」を、閾値電圧範囲A(状態A)に「10」を、閾値電圧範囲B(状態B)に「00」を、及び閾値電圧範囲C(状態C)に「01」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。4つの状態が示されているが、本発明は、4つの状態より多い又は少ない構造を含む他のマルチステート構造に使用することもできる。
3つの読み出し参照電圧Vra、Vrb、及び、Vrcは、記憶素子からデータを読み出すために提供される。既定の記憶素子の閾値電圧がVra、Vrb及びVrcを上回っているのか、あるいは下回っているのかをテストすることによって、システムは、記憶素子が存在する状態、即ち、プログラム状態を判定することができる。
さらに、3つの検証参照電圧Vva、Vvb、及び、Vvcが提供される。記憶素子を状態Aにプログラミングするとき、システムは、それらの記憶素子がVva以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Bにプログラミングするとき、システムは、記憶素子がVvb以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Cにプログラミングするとき、システムは、記憶素子がVvc以上の閾値電圧を有するかどうかをテストする。
フルシーケンスプログラミングとして知られている一実施形態においては、記憶素子は、消去状態Eからプログラミンされた状態A、B又はCの何れかに直接的にプログラミングされる。例えば、まず、プログラミングされる記憶素子の集合中の全ての記憶素子が消去状態Eとなるように、集合が消去される場合がある。次に、図20の制御ゲート電圧シーケンスで示されるような一連のプログラムパルスが、記憶素子を状態A、B又はCに直接的にプログラミングするために使用される。いくつかの記憶素子は状態Eから状態Aにプログラムされ、他の記憶素子は状態Eから状態Bに、及び/又は、状態Eから状態Cにプログラミングされる。選択ワードラインWLn上で状態Eから状態Cにプログラミングするときは、WLn下のフローティングゲートでの電荷量の変化が、状態Eを状態Aにあるいは状態Eを状態Bにプログラミングするときの電圧の変化に比較して極めて大きいため、WLi−1下の隣接フローティングゲートへの寄生結合の量は最大限となる。状態Eから状態Bにプログラミングするときは、隣接フローティングゲートへの結合の量は少なくなる。状態Eから状態Aにプログラミングするときは、結合の量はさらに少なくなる。
図17は、2つの異なるページ(下位ページと上位ページ)に対してデータを記憶するマルチステート記憶素子にプログラムする2パス技術の一例を示している。状態E(11)、状態A(10)、状態B(00)及び状態C(01)の4つの状態が示されている。状態Eの場合、両方のページが「1」を記憶する。状態Aの場合、下位ページが「0」を記憶し、上位ページが「1」を記憶する。状態Bの場合、両方のページが「0」を記憶する。状態Cの場合、下位ページが「1」を記憶し、上位ページが「0」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
第1プログラミングパスでは、記憶素子の閾値電圧レベルは下位の論理ページにプログラムされるビットに従って設定される。そのビットが論理「1」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「0」であれば、矢印1100で示したように、記憶素子の閾値レベルは状態Aになるように増大される。これによって、第1プログラミングパスを終了する。
第2プログラミングパスでは、記憶素子の閾値電圧レベルは上位論理ページ内にプログラムされるビットに従って設定される。上位論理ページビットが論理「1」を記憶する場合、記憶素子は下位ページビットのプログラミングに依存する状態E又はAの一方であり、どちらも上位ページビットは「1」を保持するのでプログラミングは生じない。上位ページビットが論理「0」となる場合、閾値電圧はシフトされる。第1パスによって記憶素子が消去状態Eに留まっていれば第2段階で記憶素子をプログラムし、矢印1720で示したように閾値電圧が状態C内になるように増大させる。第1プログラミングパスの結果として記憶素子が状態A内にプログラムされれば、記憶素子はさらに第2パスでプログラムされ、矢印1710で示したように閾値電圧が状態B内になるように増大させる。第2パスの結果は、下位ページ用のデータを変更することなく、上位ページの論理「0」を記憶するように指定した状態に記憶素子をプログラムすることである。図16および17の両方において、隣接するワードライン上でフローティングゲートへの結合量は最終状態に依存する。
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラミング処理は受け取ったデータを用いて下位ページプログラミングを実行できる。次のデータを受け取ったときは、システムは上位ページをプログラミングする。さらに別の実施形態では、システムは下位ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体(又は大部分)を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、米国特許第7,120,051号に開示されている。その全体は参照することによって本明細書に組み込まれる。
図18a〜cは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合の影響を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、4つのデータ状態を用いて記憶素子毎に2ビットのデータを記憶する。例えば、状態Eが消去状態であり、状態A、B及びCがプログラムされた状態であると仮定する。状態Eはデータ11を記憶している。状態Aはデータ01を記憶している。状態Bはデータ10を記憶している。状態Cはデータ00を記憶している。両方のビットは隣接する状態A及びBの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は2ページ分のデータを記憶する。参照のために、これらのページのデータは上位ページ及び下位ページと呼ばれるが、他のラベルを与えることもできる。状態Aを参照すると、上位ページはビット0を記憶し、下位ページはビット1を記憶している。状態Bを参照すると、上位ページはビット1を記憶し、下位ページはビット0を記憶している。状態Cを参照すると、両方のページがビットデータ0を記憶している。
プログラミング処理は、2つのステップの処理である。第1ステップでは、下位ページをプログラムする。下位ページがデータ1のままである場合、記憶素子状態は状態Eに留まる。データが0にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態B’にプログラムされる。従って、図18aは、状態Eから状態B’への記憶素子のプログラミングを示している。状態B’は中間状態Bであり、従って、検証点はVvb’として示され、Vvbより低い。
一実施形態では、状態Eから状態B’に記憶素子をプログラムした後、NANDストリング内の隣接記憶素子(WLn+1)をその下位ページに対してプログラムする。例えば、図2を見直すと、記憶素子106用の下位ページをプログラムした後、記憶素子104の下位ページをプログラムする。記憶素子104をプログラムした後、記憶素子104が状態Eから状態B’に上昇した閾値電圧を有していた場合、フローティングゲート間結合の影響は記憶素子106の見かけの閾値電圧を上昇させる。これは、図18bの閾値電圧区分1850に示したように状態B’の閾値電圧区分を拡大する影響を有する。閾値電圧区分のこの見かけの拡大は、上位ページをプログラムする際に修正される。
図18cは、上位ページをプログラムする工程を示している。記憶素子が消去状態Eであって上位ページが1に留まる場合、記憶素子は状態Eに留まる。記憶素子が状態Eであり、その上位ページデータが0にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Aになる。記憶素子が中間の閾値電圧区分1850であって上位ページデータが1に留まる場合、記憶素子は最終状態Bにプログラムされる。記憶素子が中間の閾値電圧区分1850であって上位ページデータがデータ0になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Cになる。隣接記憶素子の上位ページプログラミングだけが所定の記憶素子の見かけの閾値電圧に影響を与えるので、図18a〜cで示した工程はフローティングゲート間結合影響を低減する。別の状態符号化の一例は、上位ページデータが1であるとき区分1850から状態Cに移動することであり、上位ページデータが0であるとき状態Bに移動することである。
図18a〜cは4つのデータ状態と2つのページデータに対する一例を提供するが、開示された概念は4つの状態より多い、又は少ない状態、及び2つのページとは異なるページを備えた他の実装形態に適用することもできる。
本発明の前記の詳細な説明は図解及び説明のために提示されたものである。本発明は、網羅的となる、あるいは本発明を開示されている正確な形式に制限することを意図していない。前記教示を鑑みて多くの変型及び変更が可能である。説明された実施形態は、本発明及びその実際的な応用を最もよく説明し、それにより当業者が多様な実施形態において、及び意図されている特定の使用に適するように多様な変型を用いて本発明を最もよく活用できるようにするために選択された。本発明の範囲がここに添付される請求項により定められることが意図される。

Claims (15)

  1. a)低速プログラミング記憶素子(610)と高速プログラミング記憶素子(620)を区別するためにオフセット(Δ=VV−C−VV−CLL)を差し引いた第1の検証レベル(VV−C)を用いて第1の組の記憶素子(C)に対してプログラミング動作を実行する一方で、少なくとも第2の組の記憶素子(A、B)のプログラミングをロックアウトするステップと、
    b)前記高速プログラミング記憶素子をロックアウトする一方で、前記第1の検証レベル(VV−C)を用いて前記低速プログラミング記憶素子のプログラミングを継続し、かつ前記少なくとも第2の組の記憶素子をロックアウトし続けるステップと、
    c)前記低速プログラミング記憶素子をロックアウトする一方で、前記第1の検証レベル(VV−C)を用いて前記高速プログラミング記憶素子のプログラミングを再開し、かつ前記オフセットを差し引いた前記第1の検証レベルよりも小さい少なくとも第2の検証レベル(VV−B)を用いて前記少なくとも第2の組の記憶素子をプログラムするステップと、
    を備える不揮発性記憶装置の動作方法。
  2. 前記第1の組の記憶素子および前記少なくとも第2の組の記憶素子は、共通の閾値電圧区分からプログラムされる、請求項1に記載の方法。
  3. 第1のステップサイズ(ΔV)だけ増加されるプログラムパルスを印加するステップを含み、ステップa)に先立って前記第1および第2の組の記憶素子に対してプログラミング動作を実行するステップをさらに備え、ステップb)はより高い第2のステップサイズ(ΔV)だけ増加されるプログラムパルスを印加するステップを含む、請求項1または2に記載の方法。
  4. ステップa)は第1のステップサイズ(ΔV)だけ増加される第1の組のプログラムパルスを印加するステップを含み、ステップb)は第2の組のプログラムパルスを印加するステップを含み、前記第2の組の最初のプログラムパルスは前記第1の組のプログラムパルスの最後のプログラムパルスから前記第1のステップサイズよりも大きいステップサイズ(ΔV)だけ増加される、請求項3に記載の方法。
  5. 前記第2の組の前記最初のプログラムパルスは前記第1の組のプログラムパルスの最後のプログラムパルスから前記オフセットだけ増加される、請求項4に記載の方法。
  6. 前記第1の検証レベルは最高のデータ状態(C)のためのものであり、前記少なくとも第2の検証レベルは2番目に高いデータ状態(B)のためのものである、請求項1〜5のいずれか一項に記載の方法。
  7. ステップc)は、前記第2の検証レベル(VV−B)よりも小さい第3の検証レベル(VV−A)を用いて第3の組の記憶素子をプログラムするステップを含む、請求項1〜6のいずれか一項に記載の方法。
  8. ステップa)およびb)は、前記第1の検証レベルに関係付けられるデータ状態(C)にプログラムすることを目的とする記憶素子のみのプログラミングを可能とする、請求項1〜7のいずれか一項に記載の方法。
  9. 前記第1の組の記憶素子における指定された数または部分の記憶素子が前記オフセットを差し引いた前記第1の検証レベルで検証されたときにステップa)を終了するステップをさらに備える、請求項1〜8のいずれか一項に記載の方法。
  10. ステップa)は、プログラムパルスを印加するステップを備え、
    本方法は、指定された数のプログラムパルスが印加されたときにステップa)を終了するステップをさらに備える、請求項1〜8のいずれか一項に記載の方法。
  11. ステップa)は、プログラムパルスを印加するステップを備え、
    本方法は、前記第1の組の記憶素子において指定された数または部分の記憶素子が前記オフセットを差し引いた前記第1の検証レベルで検証された後で指定された数の追加のプログラムパルスが印加されたときにステップa)を終了するステップをさらに備える、請求項1〜8のいずれか一項に記載の方法。
  12. 第1の組の記憶素子(C)および第2の組の記憶素子(A、B)と、
    前記第1および第2の組の記憶素子と通信する少なくとも1つの制御回路(1210、1250)とを備える不揮発性記憶装置であって、
    前記少なくとも1つの制御回路は、a)低速プログラミング記憶素子(610)と高速プログラミング記憶素子(620)を区別するためにオフセット(Δ=VV−C−VV−CLL)を差し引いた第1の検証レベル(VV−C)を用いて前記第1の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも前記第2の組の記憶素子のプログラミングをロックアウトし、b)前記第1の検証レベル(VV−C)を用いて前記低速プログラミング記憶素子のプログラミングを継続し、かつ前記少なくとも第2の組の記憶素子をロックアウトし続ける一方で、前記高速プログラミング記憶素子をロックアウトし、c)前記第1の検証レベルを用いて前記高速プログラミング記憶素子のプログラミングを再開し、かつ前記オフセットを差し引いた前記第1の検証レベルよりも小さい少なくとも第2の検証レベル(VV−B)を用いて前記少なくとも第2の組の記憶素子をプログラムする一方で、前記低速プログラミング記憶素子をロックアウトする、不揮発性記憶装置。
  13. 前記オフセットを差し引いた前記第1の検証レベルを用いて前記第1の組の記憶素子に対して前記プログラミング動作を実行する前に、前記少なくとも1つの制御回路は、a)に先立って第1のステップサイズ(ΔV)だけ増加されるプログラムパルスを印加することを含むプログラミング動作を、前記第1および第2の組の記憶素子に対して実行し、
    前記高速プログラミング記憶素子のロックアウトはより高い第2のステップサイズ(ΔV)だけ増加されるプログラムパルスを印加することを含む、請求項12に記載の不揮発性記憶装置。
  14. 前記オフセットを差し引いた前記第1の検証レベルを用いて前記第1の組の記憶素子に対して前記プログラミング動作を実行するために、前記少なくとも1つの制御回路は第1のステップサイズ(ΔV)だけ増加される第1の組のプログラムパルスを印加し、
    前記高速プログラミング記憶素子をロックアウトするために、前記少なくとも1つの制御回路は第2の組のプログラムパルスを印加し、
    前記第2の組の最初のプログラムパルスは前記第1の組のプログラムパルスの最後のプログラムパルスから前記第1のステップサイズよりも大きいステップサイズ(ΔV)だけ増加される、請求項13に記載の不揮発性記憶装置。
  15. 前記第2の組の前記最初のプログラムパルスは、前記第1の組のプログラムパルスの最後のプログラムパルスから前記オフセットだけ増加される、請求項14に記載の不揮発性記憶装置。
JP2011516538A 2008-06-27 2009-06-23 最小限の追加時間ペナルティで障害を低減するために改良されたプログラミングアルゴリズム Expired - Fee Related JP5203510B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/163,073 US7800956B2 (en) 2008-06-27 2008-06-27 Programming algorithm to reduce disturb with minimal extra time penalty
US12/163,073 2008-06-27
PCT/US2009/048311 WO2009158350A1 (en) 2008-06-27 2009-06-23 Improved programming algorithm to reduce disturb with minimal extra time penalty

Publications (2)

Publication Number Publication Date
JP2011526049A true JP2011526049A (ja) 2011-09-29
JP5203510B2 JP5203510B2 (ja) 2013-06-05

Family

ID=41056765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516538A Expired - Fee Related JP5203510B2 (ja) 2008-06-27 2009-06-23 最小限の追加時間ペナルティで障害を低減するために改良されたプログラミングアルゴリズム

Country Status (8)

Country Link
US (1) US7800956B2 (ja)
EP (1) EP2301033B1 (ja)
JP (1) JP5203510B2 (ja)
KR (1) KR101546460B1 (ja)
CN (1) CN102138181B (ja)
AT (1) ATE535913T1 (ja)
TW (1) TWI416527B (ja)
WO (1) WO2009158350A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020837A (ja) * 2008-07-10 2010-01-28 Samsung Electronics Co Ltd 不揮発性半導体記憶装置
JP2011150749A (ja) * 2010-01-20 2011-08-04 Toshiba Corp 不揮発性半導体記憶装置
JP2013077361A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 不揮発性半導体記憶装置
WO2015004712A1 (ja) * 2013-07-08 2015-01-15 株式会社 東芝 ロックアウトモードとノーロックアウトモードを有する半導体記憶装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100323554B1 (ko) * 1997-05-14 2002-03-08 니시무로 타이죠 불휘발성반도체메모리장치
US8223551B2 (en) * 2009-02-19 2012-07-17 Micron Technology, Inc. Soft landing for desired program threshold voltage
KR101005145B1 (ko) * 2009-03-06 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
KR101620025B1 (ko) * 2010-02-19 2016-05-24 삼성전자주식회사 데이터 저장 시스템 및 그것의 오픈 블록 관리 방법
KR20110131648A (ko) 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법
US8310870B2 (en) 2010-08-03 2012-11-13 Sandisk Technologies Inc. Natural threshold voltage distribution compaction in non-volatile memory
US8369149B2 (en) 2010-09-30 2013-02-05 Sandisk Technologies Inc. Multi-step channel boosting to reduce channel to floating gate coupling in memory
KR101798013B1 (ko) * 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR101821604B1 (ko) * 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9082510B2 (en) * 2012-09-14 2015-07-14 Freescale Semiconductor, Inc. Non-volatile memory (NVM) with adaptive write operations
KR102053953B1 (ko) 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US8929142B2 (en) 2013-02-05 2015-01-06 Sandisk Technologies Inc. Programming select gate transistors and memory cells using dynamic verify level
US20140281842A1 (en) * 2013-03-14 2014-09-18 Fusion-Io, Inc. Non-Volatile Cells Having a Non-Power-of-Two Number of States
KR102125376B1 (ko) * 2013-07-01 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 쓰기 방법
US9007841B1 (en) * 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
KR20160047667A (ko) * 2014-10-22 2016-05-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9496040B2 (en) * 2015-01-22 2016-11-15 Sandisk Technologies Llc Adaptive multi-page programming methods and apparatus for non-volatile memory
US9865352B2 (en) * 2015-10-28 2018-01-09 Sandisk Technologies, Llc Program sequencing
US9711211B2 (en) 2015-10-29 2017-07-18 Sandisk Technologies Llc Dynamic threshold voltage compaction for non-volatile memory
US9564226B1 (en) * 2015-10-30 2017-02-07 Sandisk Technologies Llc Smart verify for programming non-volatile memory
CN106856102B (zh) * 2015-12-08 2020-11-03 西安格易安创集成电路有限公司 一种Nand Flash的编程方法
JP6441250B2 (ja) * 2016-03-15 2018-12-19 東芝メモリ株式会社 半導体記憶装置
KR102565888B1 (ko) 2016-09-12 2023-08-11 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
JP2018055736A (ja) * 2016-09-26 2018-04-05 東芝メモリ株式会社 半導体記憶装置
KR20180088190A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
KR102504295B1 (ko) 2017-11-24 2023-02-27 삼성전자 주식회사 비휘발성 메모리 장치 및 이의 프로그램 방법
CN110892482B (zh) 2019-10-12 2021-01-29 长江存储科技有限责任公司 对存储器件进行编程的方法及相关存储器件
KR20220067419A (ko) * 2020-11-17 2022-05-24 삼성전자주식회사 메모리 장치, 메모리 시스템 및 이들의 동작 방법
US11581049B2 (en) * 2021-06-01 2023-02-14 Sandisk Technologies Llc System and methods for programming nonvolatile memory having partial select gate drains
US11475959B1 (en) * 2021-06-30 2022-10-18 Sandisk Technologies Llc Reduced program time for memory cells using negative bit line voltage for enhanced step up of program bias

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003109386A (ja) * 2001-06-27 2003-04-11 Sandisk Corp 複数のデータ状態で動作する不揮発性メモリのストレージエレメント間の結合による影響を低減させるための動作技術
JP2008165960A (ja) * 2006-12-28 2008-07-17 Hynix Semiconductor Inc Nand型フラッシュメモリ素子のデータ消去方法
JP2009541910A (ja) * 2006-06-19 2009-11-26 サンディスク コーポレイション 不揮発性メモリの読み出し動作改善における個別サイズマージンのプログラムおよび選択状態時の補償による検知
JP2010511264A (ja) * 2006-11-30 2010-04-08 モサイド・テクノロジーズ・インコーポレーテッド フラッシュメモリプログラム禁止方式

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
EP0830684B1 (en) 1995-06-07 2004-08-25 Macronix International Co., Ltd. Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
TW338165B (en) 1996-09-09 1998-08-11 Sony Co Ltd Semiconductor nand type flash memory with incremental step pulse programming
US6327183B1 (en) 2000-01-10 2001-12-04 Advanced Micro Devices, Inc. Nonlinear stepped programming voltage
EP1249842B1 (en) 2001-04-10 2009-08-26 STMicroelectronics S.r.l. Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6714448B2 (en) 2002-07-02 2004-03-30 Atmel Corporation Method of programming a multi-level memory device
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7327619B2 (en) 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7020026B2 (en) 2004-05-05 2006-03-28 Sandisk Corporation Bitline governed approach for program control of non-volatile memory
KR100645055B1 (ko) 2004-10-28 2006-11-10 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7092290B2 (en) * 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
KR100655442B1 (ko) 2005-09-01 2006-12-08 삼성전자주식회사 프로그램 스타트 전압을 가변시킬 수 있는 플래시 메모리장치
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7457144B2 (en) * 2006-07-19 2008-11-25 Qimonda Flash Gmbh & Co. Kg Memory device and method for verifying information stored in memory cells

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003109386A (ja) * 2001-06-27 2003-04-11 Sandisk Corp 複数のデータ状態で動作する不揮発性メモリのストレージエレメント間の結合による影響を低減させるための動作技術
JP2009541910A (ja) * 2006-06-19 2009-11-26 サンディスク コーポレイション 不揮発性メモリの読み出し動作改善における個別サイズマージンのプログラムおよび選択状態時の補償による検知
JP2010511264A (ja) * 2006-11-30 2010-04-08 モサイド・テクノロジーズ・インコーポレーテッド フラッシュメモリプログラム禁止方式
JP2011044233A (ja) * 2006-11-30 2011-03-03 Mosaid Technologies Inc フラッシュメモリプログラム禁止方式
JP2008165960A (ja) * 2006-12-28 2008-07-17 Hynix Semiconductor Inc Nand型フラッシュメモリ素子のデータ消去方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020837A (ja) * 2008-07-10 2010-01-28 Samsung Electronics Co Ltd 不揮発性半導体記憶装置
JP2011150749A (ja) * 2010-01-20 2011-08-04 Toshiba Corp 不揮発性半導体記憶装置
JP2013077361A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 不揮発性半導体記憶装置
WO2015004712A1 (ja) * 2013-07-08 2015-01-15 株式会社 東芝 ロックアウトモードとノーロックアウトモードを有する半導体記憶装置
US9564240B2 (en) 2013-07-08 2017-02-07 Kabushiki Kaisha Toshiba Semiconductor storage device
JPWO2015004712A1 (ja) * 2013-07-08 2017-02-23 株式会社東芝 ロックアウトモードとノーロックアウトモードを有する半導体記憶装置

Also Published As

Publication number Publication date
WO2009158350A1 (en) 2009-12-30
US7800956B2 (en) 2010-09-21
TW201007761A (en) 2010-02-16
JP5203510B2 (ja) 2013-06-05
KR101546460B1 (ko) 2015-08-24
US20090323429A1 (en) 2009-12-31
EP2301033B1 (en) 2011-11-30
TWI416527B (zh) 2013-11-21
CN102138181B (zh) 2014-09-10
ATE535913T1 (de) 2011-12-15
CN102138181A (zh) 2011-07-27
KR20110049782A (ko) 2011-05-12
EP2301033A1 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
JP5203510B2 (ja) 最小限の追加時間ペナルティで障害を低減するために改良されたプログラミングアルゴリズム
JP5426666B2 (ja) 不揮発性記憶装置のチャネルブーストを増加させるためのビットラインプレチャージを強化する方式
JP5444468B2 (ja) パス電圧の外乱及びフローティングゲートから制御ゲートへのリークを低減するメモリプログラム
JP5250117B2 (ja) メモリのための適応消去及びソフトプログラミング
JP5250112B2 (ja) 不揮発性記憶装置の読み出し動作中における結合の補償
JP5396481B2 (ja) ワードライン結合を用いたメモリのマルチパスプログラミング
JP5367697B2 (ja) 不揮発性記憶装置における読み出し動作中の消費電力の低減
WO2009146235A1 (en) Compensating non-volatile storage using different pass voltages during program- verify and read
JP4855474B2 (ja) スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法
JP2012531003A (ja) 不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅
JP5134007B2 (ja) 早期ソース側ブーストを用いた不揮発性記憶装置におけるプログラム妨害の低減
JP4950299B2 (ja) 複数のブーストモードを使用した不揮発性メモリ内のプログラム妨害の低減

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120202

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130213

R150 Certificate of patent or registration of utility model

Ref document number: 5203510

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees