JP4931915B2 - 不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法 - Google Patents

不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法 Download PDF

Info

Publication number
JP4931915B2
JP4931915B2 JP2008514710A JP2008514710A JP4931915B2 JP 4931915 B2 JP4931915 B2 JP 4931915B2 JP 2008514710 A JP2008514710 A JP 2008514710A JP 2008514710 A JP2008514710 A JP 2008514710A JP 4931915 B2 JP4931915 B2 JP 4931915B2
Authority
JP
Japan
Prior art keywords
program
programming
increasing
period
volatile storage
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.)
Expired - Fee Related
Application number
JP2008514710A
Other languages
English (en)
Other versions
JP2008542968A (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 JP2008542968A publication Critical patent/JP2008542968A/ja
Application granted granted Critical
Publication of JP4931915B2 publication Critical patent/JP4931915B2/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/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Description

本発明は、不揮発性メモリのプログラミングに関する。
半導体メモリデバイスは、さまざまな電子装置内で、ますます多く使用されるようになっている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピューティング装置、非モバイルコンピューティング装置、およびその他の装置の中で使用されている。電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)およびフラッシュメモリは、特に普及している不揮発性半導体メモリである。
EEPROMとフラッシュメモリは共に、半導体基板中のチャネル領域の上方に位置するとともにチャネル領域から絶縁されている浮遊ゲートを利用している。この浮遊ゲートは、ソース領域とドレイン領域の間に位置している。制御ゲートが、浮遊ゲートの上方に設けられているとともに浮遊ゲートから絶縁されている。トランジスタの閾値電圧は、浮遊ゲートに保持されている電荷の量によって制御される。すなわち、ソースとドレイン間を導通させてトランジスタをオンさせるために制御ゲートに印加しなければならない電圧の最小値は、浮遊ゲート上の電荷のレベルによって制御される。
EEPROMデバイスまたはNANDフラッシュメモリデバイスなどのフラッシュメモリデバイスをプログラミングするとき、一般的には、制御ゲートにプログラム電圧を印加して、ビット線を接地する。チャネルからの電子は浮遊ゲートに注入される。電子が浮遊ゲート中に蓄積されると、浮遊ゲートは負に帯電して、メモリセルの閾値電圧が引き上げられ、これで、メモリセルはプログラムされた状態になる。プログラミングに関するさらなる情報は、双方ともそれらの全体を参照してここに組み込む「不揮発性メモリのソース側自己昇圧技法」という名称の米国特許第6,859,397号および2003年7月29日に出願された「過剰プログラムされたメモリの検出」という名称の米国特許出願公開2007/0024939に見受けられる。
EEPROMデバイスおよびフラッシュメモリデバイスのなかには、2つの範囲の電荷を記憶させるために使う浮遊ゲートを有するものがある。したがって、メモリセルは、2つの状態(消去された状態とプログラムされた状態)のどちらかにプログラム/消去することが可能である。このようなフラッシュメモリは、バイナリフラッシュメモリデバイスと呼ばれることもある。
マルチステート(マルチレベルとも呼ばれる)フラッシュメモリデバイスは、禁止電圧範囲によって分離されている複数の異なる許容された、または有効な、プログラムされた閾値電圧範囲を特定することによって実現される。これら異なる閾値電圧範囲のそれぞれは、メモリデバイスの中に符号化されたデータビットの集合の所定の値に対応している。
一般的に、プログラムが動作している間に制御ゲートに印加されるプログラム電圧は、一連のパルスとして印加される。1つの実施形態では、これらパルスの大きさは、連続するパルスごとに所定のステップサイズだけ(たとえば、0.2V、0.3V、0.2Vまたはその他の値)だけ増加する。図1に、フラッシュメモリセルの制御ゲート(または、場合によってはステアリングゲート)に印加することが可能なプログラム電圧信号Vpgmを示す。このプログラム電圧信号Vpgmは、時間とともに大きさが増加する一連のパルスを含んでいる。プログラムパルス同士間の期間に、検証動作が実行される。すなわち、並列にプログラムされているセルグループ中の各セルのプログラミングレベルを、連続するプログラミングパルス同士間で読み取って、このレベルが、プログラムすべき検証レベル以上であるかどうか判定する。マルチステートフラッシュメモリセルを含むアレイの場合、これらメモリセルは、おのおのの状態に対する検証ステップを実行して、セルが自身のデータに関連した検証レベルに到達したかどうかを判定可能とする。たとえば、データを4つの状態で記憶することが可能なマルチステートメモリセルは、3つの比較ポイントに対して検証動作を実行する必要がありうる。
プログラム電圧Vpgmの大きさの選択は、妥協の問題である。この値があまりに高いと、一部のメモリセルがオーバープログラムされる結果となり、この値があまりに低すぎると、プログラミング時間が長くなるという結果となる。一般的に、不揮発性メモリのユーザは、メモリプログラムが高速であることを望む。
先行技術においては、あまり使用実績のない新しいデバイス(フレッシュデバイスとも呼ばれる)に対しても、頻繁に使用されたデバイスに対しても同じプログラム信号が用いられる。しかしながら、不揮発性メモリデバイスの場合、プログラミングサイクルをたくさん経過するに連れて、浮遊ゲートとチャネル領域間の絶縁体に電荷が捕獲される。電荷がこのように捕獲されることによって、閾値電圧のレベルが高くなって、メモリセルをより迅速にプログラムすることが可能となる。プログラム信号の大きさをあまり高く設定した場合、たとえフレッシュデバイスがオーバープログラミングされるという結果にならなくても、このデバイスは、頻繁に使用するに連れて、オーバープログラミングされるようになる。したがって、新しいデバイスは、長く使用されるに連れてオーバープログラミングされることがないように、そのプログラム電圧を十分低く設定する。プログラム電圧の大きさをこのように低くすると、フレッシュデバイスがデータをプログラムする速度が低下する。
本書に記載する技術は、オーバープログラミングする危険性を増すことなく、データをより早くプログラミングするための解決策を提供する。この成果を達成するために、プログラミング特徴の1つの集合を用いて新しいデバイスをプログラムし、一方、プログラミング特徴の別の集合を用いて、このデバイスを使用後にプログラムする。
1つの実施形態では、第1の初期値を持つ増加プログラム信号を用いて第1の期間中に不揮発性記憶素子の集合をプログラムし、次いで、第2の初期値を持つ増加プログラム信号を用いてこの不揮発性記憶素子集合を第2の期間中にプログラムする。ここで、第2の期間は第1の期間の後に来る期間であり、第2の初期値は第1の初期値とは異なる。
1つの実施例は、不揮発性記憶素子の集合と、前記不揮発性記憶素子と通信している1つ以上の管理回路とを備えている。1つ以上の管理回路は、データをプログラムする要求を受信する。この要求に応答して、1つ以上の管理回路は、不揮発性記憶素子に対する使用量指示が第1の使用量を示している場合には第1の開始値を有するプログラミング信号を用いて不揮発性記憶素子をプログラムし、この使用量指示が第2の使用量を示している場合には第2の開始値を有するプログラミング信号を用いて不揮発性記憶素子をプログラムする。使用量指示の一例として、不揮発性記憶素子、コントローラ、状態マシンまたは他のところに記憶されるフラグ(1ビット以上)がある。このフラグが、不揮発性記憶素子の使用量の尺度を反映するデータを記憶する。
本発明の実施に適した不揮発性メモリシステムの一例では、NANDフラッシュメモリ構造を使用する。NANDフラッシュメモリ構造では、2つの選択ゲートの間に複数のトランジスタが直列に配置されている。直列のトランジスタと選択ゲートは、NANDストリングと呼ばれる。図2は、1つのNANDストリングを示す上面図である。図3は、その等価回路である。図2および図3に示すNANDストリングは、直列の4つのトランジスタ100、102、104、106を備え、第1の選択ゲート120と第2の選択ゲート122との間に挟まれている。選択ゲート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に接続されている。制御ゲート102CGは、ワード線WL2に接続されている。制御ゲート104CGは、ワード線WL1に接続されている。制御ゲート106CGは、ワード線WL0に接続されている。1つの実施形態では、トランジスタ100、102、104、106のそれぞれがメモリセルとなる。他の実施形態では、メモリセルが複数のトランジスタを含んでいてもよく、図2および図3に示した構成と異なっていてもよい。選択ゲート120は、選択線SGDに接続され、選択ゲート122は、選択線SGSに接続される。
図4は、上記のNANDストリングの断面図を示す。図4に示すように、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ストリングの共通ソース線につながっている。
図2〜図4では、NANDストリング内に4つのメモリセルを示しているが、4つのトランジスタの使用する構成は、一例であることに留意されたい。ここに記載される技術によって使用されるNANDストリングは、4つ未満のメモリセルを有していてもよく、又は、4つを超えるメモリセルを有していてもよい。例えば、一部のNANDストリングは、8つのメモリセル、16のメモリセル、32のメモリセルなどを含むことができる。本明細書における説明は、NANDストリング内のメモリセルがいかなる数でも有効である。
各メモリセルは、アナログ又はデジタル形式で表されたデータを記憶することが可能である。1ビットのデジタルデータを記憶する場合、メモリセルの可能な閾値電圧の範囲は、論理データ「1」および「0」が割り当てられる2つの範囲に分割される。NAND型フラッシュメモリの一例では、メモリセルの消去された後の閾値電圧は負となり、論理「1」と定義される。プログラム後の閾値電圧は正となり、論理「0」と定義される。閾値電圧が負の状態で制御ゲートに0Vを印加することによって読み出しが試みられた場合、メモリセルはオンになり、論理1が記憶されていることを示す。閾値電圧が正の状態で制御ゲートに0Vを印加することによって読み出しが試みられた場合、メモリセルはオンにならず、これは論理「0」が記憶されていることを示す。
また、メモリセルは、複数の状態の情報を記憶することも可能であり、それにより例えば複数ビットのデジタルデータを記憶することも可能である。複数の状態のデータを記憶する場合、可能な閾値電圧の範囲は、記憶する状態の数に分割される。例えば、4つの状態の情報が記憶される場合、4つの閾値電圧範囲が存在し、それぞれにデータ値「11」、「10」、「01」、「00」が割り当てられる。NAND型メモリの一例では、消去動作の後の閾値電圧は負となり、「11」と定義される。正の閾値電圧は、「10」、「01」、「00」の状態のために使用される。一部の実施例では(上に例示したようなもの)、これらのデータ値(たとえば論理状態)を、グレイコード割り当て方法を用いて閾値範囲に割り当て、これで、浮遊ゲートの閾値電圧が間違ってその隣接する物理状態にずれても、たった1つの論理ビットしか影響されないようにしている。これら分布のそれぞれを、上記の状態とは異なったデータ状態に対応させることが可能な実施形態もある。メモリセルにプログラムされたデータとこのセルの閾値電圧範囲との間の具体的な関係は、メモリセルに対して採用されるデータ符号化スキームによって異なる。たとえば、その双方の全体を参照してここに組み込む、2003年6月13日に出願された「メモリシステムのセルの追跡」という名称の米国特許第6,222,762号と米国特許出願第10/461,244号には、マルチステート式フラッシュメモリセルのさまざまなデータ符号化スキームが記載されている。くわえて、本発明に関わる実施形態は、2ビットのデータより多いデータを記憶するメモリセルにも適用可能である。
NAND型フラッシュメモリおよびそれらの動作に関連する例は、次の米国特許/特許出願(それらのすべては、それらの全体が参照により本明細書に援用されるものとする)で提供されている。米国特許第5,570,315号明細書、米国特許第5,774,397号明細書、米国特許第6,046,935号明細書、米国特許第5,386,422号明細書、米国特許第6,456,528号明細書、および米国特許出願第09/893,277号明細書(公開番号US2003/0002348)である。NAND型フラッシュメモリに加え、その他のタイプの不揮発性フラッシュメモリも本発明とともに使用されてもよい。
フラッシュEEPROMシステムで役に立つ別のタイプのメモリセルは、導電性の浮遊ゲートの代わりに非導電性の誘電性材料を利用して、電荷を不揮発式に蓄積している。このようなセルが、1987年3月に発行されたIEEEのエレクトロン・デバイス・レターの第EDL−8巻の第3号の、チャンらによる「真性の酸化物・窒化物・酸化物型の1トランジスタ式EEPROMデバイス」という記事の93〜95ページに記載されている。シリコン酸化物、シリコン窒化物、シリコン酸化物(“ONO”)で形成された三層誘電体を、メモリセルのチャネル上で、導電性の制御ゲートと半導体基板の表面とで挟んでいる。このセルは、セルのチャネルから窒素中に電子を注入し、この窒素中でこれらの電子が限られた領域中に捕獲されて蓄積されることによってプログラムされる。すると、この蓄積された電荷のため、このセルのチャネルのある部分の閾値電圧が変化するが、この変化は検出可能である。このセルは、ホットホールを窒素中に注入することによって消去される。また、1991年4月に発行されたソリッドステート回路に関するIEEEジャーナルの第26巻の第4号のノザキらによる「半導体ディスクに応用されるMONOSメモリセルを持つ1MビットのEEPROM」の497〜501ページを読めば、ドーピングされた多結晶シリコンゲートがメモリセルチャネルのある部分上を伸張して、互いに分離された選択トランジスタを形成している分離ゲート構造の類似のセルが記述されている。前述の2つの記事の全体を参照してここに組み込む。参照して個々に組み込む、1998年のIEEEプレスのウイリアム・ブラウン(William D. Brown)とジョー・ブルーワ(Joe E. Brewer)によって編集された「不揮発性半導体メモリ技術」の1.2章に言及されているプログラミング技法もまた、誘電性電荷捕獲デバイスに応用可能であるとこの章に記述されている。このパラグラフに記述されているメモリセルもまた、本発明で用いることが可能である。したがって、本書に記載する技術もまた、互いに異なったメモリセルの誘電体領域同士間でのカップリングに当てはまる。
おのおののセルに2ビットを記憶する別の方式が、2000年11月に発行されたIEEEのエレクトロン・デバイス・レターの第21巻の第11号のエイタン(Eitan)らによる「NROM:新規な選択的捕獲、2ビット式の不揮発性メモリセル」の543〜545ページに記載されている。ONO誘電体層が、ソース拡散層とドレイン拡散層間のチャネル上を伸張している。一方のデータビットに対する電荷がドレインに隣り合った誘電体層中で局所化され、他方のデータビット用の電荷がソースに隣り合った誘電体層中で局所化される。マルチステートデータ記憶装置は、誘電体内部の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み取ることによって記憶される。このパラグラフに記述するメモリセルもまた、本発明で用いることが可能である。
図5は、本発明を実施するために使用できるフラッシュメモリシステムの1つの実施形態のブロック図である。メモリセルアレイ202は、列制御回路204と、行制御回路206と、c−ソース制御回路210と、p−ウェル制御回路208によって制御される。列制御回路204は、メモリセル内に記憶されたデータを読み出すために、プログラム動作中のメモリセルの状態を判定するために、およびビット線の電位レベルを制御してプログラミングを促進又はプログラミングを抑止するために、メモリセルアレイ202のビット線に接続されている。行制御回路206は、ワード線のうちのいずれかを選択するために、読み出し電圧を印加するために、プログラム電圧を印加するために、および消去電圧を印加するために、ワード線に接続されている。例えば、EPROMおよびフラッシュメモリ回路で使用するプログラム電圧レベルは、メモリ回路で通常使用される電圧より高い。これらは回路に供給される電圧より高いことがよくある。これらの高い電圧は、好ましくは行制御回路206(あるいは別の場所)内の電荷ポンプによって生成される。行制御回路206は、一つの例において、本質的に容量性ワード線に電荷を投入し、電圧を高くする。電荷ポンプは入力を電圧Vinで受け取り、入力された電圧を電圧増倍の過程において徐々に高くし、より高い電圧Voutを出力する。出力された電圧は負荷、例えばEPROMメモリ回路ワード線に供給する。いくつかの実施例においては、負荷から電荷ポンプへフィードバック信号が送られる。従来技術のポンプは、負荷が所定の電圧に達したことを示す信号に応答して停止する。また、負荷が所定の電圧に達すると、過電荷を防ぐために分路が使用される。しかし、これはより多くの電力を消費し、低電圧印加の際には望ましくない。電荷ポンプに関する詳細な情報は、参照として本発明の全体に組み込まれる米国特許第6,734,718号に記載されている。
C−ソース制御回路210は、メモリセルに接続された共通ソース線(図6に「C−ソース」として示す)を制御する。P−ウェル制御回路208は、p−ウェル電圧を制御する。
メモリセル内に記憶されたデータは、列制御回路204によって読み出され、データ入力/出力バッファ212を経由して、外部I/O線に出力される。メモリセル内に記憶されるプログラムデータは、外部I/O線を経由してデータ入力/出力バッファ212に入力され、列制御回路204に転送される。外部I/O線は、コントローラ218に接続される。
フラッシュメモリデバイスを制御するためのコマンドデータは、コントローラ218に入力される。コマンドデータは、どのような動作が要求されているのかをフラッシュメモリに通知する。入力コマンドは、列制御回路204と、行制御回路206と、c−ソース制御210と、p−ウェル制御回路208と、データ入力/出力バッファ212とを制御する状態マシン216に転送される。状態マシン216は、さらに、レディ(READY)/ビジー(BUSY)や、パス(PASS)/フェイル(FAIL)などの、フラッシュメモリのステータスデータを出力してもよい。いくつかの実施例において、状態マシン216は、以下に説明するフローチャートに描かれる工程を含むプログラミングプロセスの管理を担う。
コントローラ218は、パーソナルコンピュータ、デジタルカメラ、パーソナルデジタルアシスタントなどのホストシステムに接続されている、又は、接続可能である。コントローラ218は、ホストからコマンドを受信するために、ホストからデータを受信するために、ホストにデータを提供するために、およびホストにステータス情報を提供するために、ホストと通信を行う。コントローラ218は、ホストからのコマンドを、状態マシン216と通信するコマンド回路214が解読して実行可能なコマンド信号に変換する。コントローラ218は、通常、メモリアレイに書き込まれる、又はメモリアレイから読み出されるユーザデータのためのバッファメモリを有している。いくつかの実施例においては、プログラミングプロセスはこのコントローラによって管理できる。
一例のメモリシステムは、コントローラ218を含む1つの集積回路と、1つ以上の集積回路チップ(それぞれがメモリアレイと、関連する制御、入力/出力、および状態マシン回路とを含む)を備える。メモリアレイとシステムのコントローラ回路は、1つ以上の集積回路チップ上に一緒に統合される傾向にある。メモリシステムは、ホストシステムの一部として組み込まれていてもよく、又は、ホストシステムに着脱可能に挿入されるメモリカード(又はその他のパッケージ)内に含まれていてもよい。そのような着脱可能なカードは、メモリシステム全体(例えば、コントローラを含む)を含んでいてもよく、又は、メモリアレイおよび関連する周辺回路のみを含んでいてもよい(コントローラはホスト内に組み込まれる)。このように、コントローラ(または制御機能)は、ホスト内に組み込まれることも、又は着脱可能なメモリシステム内に含まれることも可能である。
いくつかの実施形態では、図5のコンポーネントのうちのあるものは、組み合わせることが可能である。さまざまな設計で、図5のコンポーネントのうちで、メモリセルアレイ202以外の1つ以上のコンポーネントが、管理回路と考えることが可能である。たとえば、1つ以上の管理回路は、コマンド回路、状態マシン、行制御回路、列制御回路、ウエル制御回路、ソース制御回路、データ入/出力回路およびコントローラのうちのどれか1つまたはこれらを組み合わせたものを含んでいる。
図6を参照して、メモリセルアレイ202の構造の例を説明する。一例として、1,024個のブロックに区分けされているNAND型フラッシュEEPROMを説明する。それぞれのブロックに記憶されたデータは同時に消去される。1つの実施形態では、ブロックは、同時に消去されるセルの最小単位である。本実施形態において、各ブロックには8,512カラムあり、偶数および奇数カラムに分割される。ビット線はまた偶数のビット線(BLe)および奇数のビット線(BLo)に分割される。図6は、直列に接続され、NANDストリングを形成する4つのメモリセルを示す。4つのセルは各NANDストリングに含まれるように図示されているが、使用するセルの数は4つ以上でも4つ以下でもよい。NANDストリングの一方の端子は、選択トランジスタSGDを介して対応するビット線に接続され、もう一方の端子は、第2の選択トランジスタSGSを介してc-ソースに接続される。
読み出しおよびプログラミング動作の1つの実施形態では、4,256のメモリセルが同時に選択される。選択されるメモリセルは、同じワード線と、同じ種類のビット線(例えば、偶数ビット線又は奇数ビット線)とを有する。したがって、532バイトのデータが同時に読み出し又はプログラムされることが可能である。同時に読み出し又はプログラムされるこれらの532バイトのデータは、一つの論理ページを形成する。したがって、1つのブロックは、少なくとも8つの論理ページを記憶することが可能である(4本のワード線、それぞれが奇数および偶数ページを有する)。各メモリセルが2ビットのデータを記憶し、これら2ビットがそれぞれ異なったページに記憶する場合(例えば、マルチステートメモリセル)、1つのブロックは16の論理ページを記憶する。他のサイズのブロックおよびページも、本発明とともに使用されてもよい。さらに、図5および図6に示す構造以外の構造を、本発明を実施するために使用することもできる。例えば、1つの実施例において、ビット線は、全てのビット線がプログラムされかつ同時に(あるいは非同時に)読み取りされるように奇数と偶数の線に分割されない。
メモリセルの消去は、p−ウェルを消去電圧(例えば、20ボルト)まで引き上げるとともに、選択されたブロックのワード線を接地することによって行われる。ソースおよびビット線はフローティングとする。消去は、メモリアレイ全体、独立したブロック、又は別の単位のセルに対して実行することができる。浮遊ゲートから電子がp−ウェル領域に移動し、閾値電圧は負になる(一つの実施形態において)。
読み出しおよび検証動作では、トランジスタをパスゲートとして動作させるために、選択ゲート(SGDおよびSGS)と、選択されないワード線(例えば、WL0、WL2、およびWL3)が、読み出しパス電圧(例えば、4.5ボルト)まで引き上げられる。選択されるワード線(例えば、WL1)は、各読み出しおよび検証動作について指定されたレベルの電圧に接続され、関連するメモリセルの閾値電圧が指定されたレベルの電圧より上なのか下なのかが判定される。例えば、2レベル型のメモリセルの読み出し動作では、選択されるワード線WL1を接地してもよく、それによって閾値電圧が0Vよりも高いのか否かを検出することができる。2レベル型のメモリセルの検証動作では、選択されるワード線WL1を例えば0.8Vに接続し、それによって閾値電圧が少なくとも0.8Vに到達しているのか否かを検証することができる。ソースおよびp−ウェルは0ボルトである。選択されるビット線(BLe)は、例えば0.7Vのレベルに、プリチャージされる。閾値電圧が、ワード線上の読み出し又は検証レベルよりも高い場合、関連するビット線(BLe)の電位レベルは、非導電性のメモリセルのため、ハイレベルを維持する。他方、閾値電圧が、読み出し又は検証レベルよりも低い場合、関連するビット線(BLe)の電位レベルは、導電性のメモリセルの放電によって、例えば0.5V未満のローレベルに減少する。メモリセルの状態は、それによって、ビット線に接続されたセンス増幅器により検出される。
上記の消去、読み出し、および検証動作は、当業界で知られた技術に従って実行される。したがって、説明した詳細の多くについては、当業者によって変更されることが可能である。当業界で知られた他の読み出しおよび検証技術を使用することもできる。
上述したように、おのおののブロックを多くのページに分割することが可能である。1つの実施形態では、1ページがプログラミングの単位である。いくつかの実施例では、個々のページがセグメントに分割される。セグメントは、基本的なプログラミング動作として一度に書き込まれる最少のセルの数を有している。一般的に、1ページ以上分のデータが1行のメモリセルに記憶される。1ページに1つ以上のセクターを記憶することが可能である。セクターには、ユーザデータとオーバヘッドデータが含まれる。オーバヘッドデータは、一般的に、セクターのうちのユーザデータから計算されたエラー訂正符号(ECC)を含んでいる。コントローラの一部が、データがアレイ中にプログラミングされている間にECCを計算し、また、データがアレイから読み出されている間にこれをチェックする。代替例では、ECCおよび/または他のオーバヘッドデータを、自身が属すユーザデータとは異なったページ、さらには異なったブロックに記憶される。メモリデバイスの他の部分(たとえば状態マシン)がECCを計算可能である実施形態もある。
ユーザデータを含むセクターは、一般に、磁気ディスクドライブ中のセクターのサイズに対応して512バイトである。オーバヘッドデータは、一般的には追加の16〜20バイトである。多くのページがブロックを形成しているが、その数値は、たとえば、8ページから32ページ、64ページ、さらにこれ以上の数値の間のいずれかの数値である。
図7に、それぞれのメモリセルが2ビットのデータを記憶している場合のメモリセルアレイの閾値電圧分布を示す。図7は、消去されたメモリセルの第1の閾値電圧分布Eを示している。プログラムされたメモリセルの3つの閾値電圧分布A、B、Cもまた、示されている。1つの実施形態では、分布E中の閾値電圧は負であり、分布A、B、C中の閾値電圧は正である。
図7の異なる閾値電圧範囲はそのそれぞれが、データビットの集合の所定の値に対応している。メモリセルにプログラムされたデータとこのセルの閾値電圧レベルとの間の具体的な関係は、セルに対して採用されるデータ符号化スキームによって異なる。1つの例では、“11”を閾値電圧範囲E(状態E)に割り当て、“10”を閾値電圧範囲A(状態A)に割り当て、“00”を閾値電圧範囲B(状態B)に割り当て、“01”を閾値電圧範囲C(状態C)に割り当てている。しかしながら、他のスキームを用いている実施形態もある。
図7はまた、メモリセルからデータを読み出すための3つの基準電圧Vra、Vrb、Vrcを示している。所与のメモリセルの閾値電圧がVra、VrbおよびVrcより大きいか小さいかをテストすることによって、本システムは、メモリセルがどの状態にあるかを判定することが可能である。図7はまた、3つの検証基準電圧Vva、Vvb、Vvcを示している。メモリセルを状態Aにプログラミングする際には、本システムは、これらのメモリセルの閾値電圧がVva以上であるかどうかテストする。メモリセルを状態Bにプログラミングする際には、本システムは、これらのメモリセルの閾値電圧がVvb以上であるかどうかテストする。メモリセルを状態Cにプログラミングする際には、本システムは、これらのメモリセルの閾値電圧がVvc以上であるかどうかを決定する。
1つの実施形態では、フルシーケンスプログラミングとして知られているが、メモリセルを、消去状態Eからプログラム済み状態A、B、C(曲線矢印で示されている)のうちのどれにでも直接的にプログラムすることが可能である。たとえば、プログラムされるメモリセルの母集団を最初に消去し、これで、この母集団中のすべてのメモリセルが消去状態Eとなるようにする。一部のメモリセルが状態Eから状態Aにプログラムされている間に、他のメモリセルを状態Eから状態Bにプログラムしたりおよび/または状態Eから状態Cにプログラムしたりする。
図8に、互いに異なった2つのページ、すなわち、下位ページと上位ページ分のデータを記憶しているマルチステートメモリセルをプログラミングする2パス式技法の例を示す。4つの状態、すなわち、状態E(11)、状態A(10)、状態B(00)および状態C(01)が示されている。状態Eの場合、両ページとも“1”を記憶している。状態Aの場合、下位ページは“0”を記憶し、上位ページは“1”を記憶している。状態Bの場合、両ページとも“0”を記憶している。状態Cの場合、下位ページは“1”を記憶し、上位ページは“0”を記憶している。ここで、特定のビットパターンがそれぞれの状態に割り当てられているが、別のビットパターンを割り当ててもよい。第1のプログラミングパスでは、セルの閾値電圧レベルを、下位の論理ページにプログラムされるビットにしたがって設定される。このビットが論理“1”であれば、この閾値電圧は変更されないが、これは、前に消去されている結果として適切な状態にあるからである。しかしながら、このプログラムされるビットが論理“0”であれば、このセルの閾値電圧は、矢印230で示すように状態Aにまで引き上げられる。これで、第1のプログラミングパスが完結する。
第2のプログラミングパスでは、セルの閾値電圧レベルが、上位の論理ページにプログラムされるビットにしたがって設定される。この上位論理ページビットが論理“1”を記憶するのであれば、なんらプログラミングされないが、これは、このセルが、双方ともが“1”という上位ページビットを有している、下位ページビットのプログラミングしだいで決まる状態EまたはAの内の一方の状態にあるからである。上位ページビットが論理“0”となるのであれば、閾値電圧はずれる。第1のパスの結果、セルが消去状態Eのままであれば、第2のフェーズで、このセルは、閾値電圧が、矢印234で示すように状態C内に来るように増大されるようにプログラムされる。このセルが、第1のプログラミングパスの結果として状態Aにプログラムされた場合、メモリセルは、矢印232で示すように閾値電圧が状態B内に来るように、第2のパスでさらにプログラムされる。第2のパスの結果、下位ページのデータを変更することなく、上位ページの論理“0”を記憶するように指定された状態にセルをプログラムすることになる。
1つの実施形態では、ページ全体を満たすに十分なデータを書き込まれた場合に、総シーケンス書き込みを実行するようにシステムをセットアップすることが可能である。ページ全体を満たすに十分なデータが書き込まれない場合、プログラミングプロセスは、受信したデータによる下位ページのプログラミングをプログラムすることが可能である。さらにその後にデータが受信されると、本システムは、上位ページをプログラムする。別の実施形態では、このシステムは、下位ページをプログラムするモードで書き込みを始め、次に、ワード線のメモリセルの全部(またはほとんど)を満たすに十分なデータがその後で受信されれば総シーケンスプログラミングモードに変換することが可能である。このような実施形態のより詳細が、その全体を参照してここに組み込む、発明者サージー・アナトリビッチ・ゴロベッツ(Sergy Anatolievich Gorobets)とヤン・リー(Yan Li)による、2004年12月14日に出願された「早期のデータを用いる不揮発性メモリのパイプライン型プログラミング」という名称の米国特許出願第11/013,125号に開示されている。
図9A〜13Cに、前のページの隣り合ったのメモリセルに書き込んだ後に特定のページに関するなんらかの特定のメモリセルに書き込み動作を実行することによって、この特定のメモリセルに対する、浮遊ゲート同士のカップリングを軽減する不揮発性メモリをプログラミングする別のプロセスを開示する。図9A〜9Cが教示するこのプロセスの1つの実施例では、この不揮発性メモリセルのそれぞれが、4つのデータ状態を用いて2ビットのデータを記憶する。たとえば、状態Eが消去された状態で、状態A、BおよびCがプログラムされた状態と仮定する。状態Eはデータ11を記憶している。状態Aはデータ01を記憶している。状態Bはデータ10を記憶している。状態Cはデータ00を記憶している。隣り合った状態Aと状態Bの間で双方のビットが変化するので、これはノングレイコーディングの例である。データをデータの物理状態に符号化する他の方法も用いることが可能である。それぞれのメモリセルが2ページ分のデータを記憶している。参照目的で、これらのページのデータを下位ページと上位ページと呼ぶが、別のラベルを付けることも可能である。図9のプロセスに対する状態Aを参照して、上位ページはビット0を記憶し、下位ページはビット1を記憶する。状態Bを参照して、上位ページはビット1を記憶し、下位ページはビット0を記憶する。状態Cを参照して、双方のページはビットデータ0を記憶する。図9のプログラミングプロセスは、2つのステップのプロセスである。第1のステップでは、下位ページをプログラムする。この下位ページがデータ1の状態にとどまることになっている場合、メモリセルの状態は状態Eのままである。このデータが0にプログラムされることになっている場合、メモリセルが状態B’にプログラムされるように、メモリセルの閾値電圧を引き上げる。図9Aに、状態Eから状態B’にメモリセルをプログラミングする様子を示す。図9Aに示す状態B’は中間状態B’である。したがって、検証ポイントを、Vvbより低いVvb‘として示す。
1つの実施形態では、あるメモリセルが状態Eから状態B’にプログラムされると、隣り合ったワードライン上のその隣接したメモリセルがその下位ページに関してプログラムされる。その隣接したメモリセルをプログラミングした後で、浮遊ゲート同士間のカップリング作用によって、状態Bである検討中のメモリセルの見かけ上の閾値電圧が引き上げられる。これによって、状態Bの閾値電圧分布の幅を図9Bのしきい値電圧分布250として示す分布にまで広げる作用がある。この閾値電圧分布の見かけ上の拡大は、上位ページをプログラミングするときに修正される。
図9Cは、上位ページをプログラミングするプロセスを示している。メモリセルが消去された状態Eにあって上位ページが1のままとどまるのであれば、このメモリセルは状態Eのままである。メモリセルが状態Eにあってその上位ページデータを0にプログラミングすることになっているのであれば、このメモリセルの閾値電圧を引き上げて、メモリセルが状態Aとなるようにする。メモリセルが中間閾値電圧分布250中にあって、上位ページデータが1にとどまることになっている場合、このメモリセルは最終状態Bにプログラムされる。メモリセルが中間閾値電圧分布250中にあって、上位ページデータがデータ0になることになっている場合、このメモリセルの閾値電圧を引き上げて、メモリセルが状態Cとなるようにする。図9A〜9Cに示すプロセスによって浮遊ゲート同士間のカップリング作用が低減されるが、これは、隣接したメモリセルの上位ページをプログラミングした場合にしか、所与のメモリセルの見かけ上の閾値電圧が影響されないからである。別の状態のコーディングの例として、上位ページデータが1の時に閾値電圧分布250から状態Cへ移動する、および上位ページデータが0の時には状態Bで移動することが挙げられる。図9A〜9Cに4つのデータ状態と2ページ分のデータに関する例を示すが、図19A〜19Cが教示する概念は、状態が4つより多いまたは少なく、ページの数が異なっている他の実施例にも適用可能である。様々なプログラミング方法および浮遊ゲート間のカップリングについては、2005年4月5日に出願された米国特許第11/099,133号の「Compensating For Coupling During Read Operations Of Non−Volatile Memory」に記載されている。
図10に、不揮発性メモリをプログラミングしている間での実行例を記述する表を示す。データは、フレッシュデバイス(未使用デバイス)と、すでに10,000のプログラミングサイクルを実行したデバイスに対して提供される。1つの実施形態では、プログラミングサイクルには、プログラミングする動作と消去する動作(または消去してからプログラミングする動作)が含まれる。他の実施形態では、プログラミングサイクルが、消去動作なしのプログラミング動作を含むことがある。図10の表は、上述した図8に係る方法に従って下位ページと上位ページにデータをプログラムするために、どれだけのプログラミングパルス(Vpgm)の数が用いられたかを示している。また、上述した図7に係る方法に従ってフルシーケンスプログラミングを実行するためのデータもある。どちらの場合も、初期パルスの大きさは16.0ボルト、ステップサイズは0.3ボルトである。図10に示すように、フレッシュデバイスの場合の平均プログラミング時間は800マイクロ秒であり、使用済みデバイスのそれは650マイクロ秒である。フレッシュデバイスは、繰り返し使用されているデバイスより約3発多いプログラミングパルスを必要とした。くわえて、フレッシュデバイスは、ソフトプログラミングプロセス(以下に説明する)ではより多くのプログラムパルスを必要とした。
オーバープログラミングの危険性を不当に増すことなく、プログラミングプロセスの速度を増すために、フレッシュデバイスをプログラミングする際に1集合のプログラミングパラメータを用い、ある程度の分量使用されたデバイスをプログラミングする際には別の集合のプログラミングパラメータを用いることを提案する。
1つの実施形態では、フレッシュデバイスと使用済みデバイスは、プログラミング信号Vpgmの初期プログラミングパルスの大きさを変化させることによって、さまざまなプログラミングパラメータでプログラムすることが可能である(たとえば図1を参照)。図11は、初期プログラミングパルスの大きさを時間とともに変化させることによって不揮発性メモリをプログラミングするプロセスの1つの実施形態を記述するフローチャートである。ステップ300で、初期プログラミング電圧を設定する。すなわち、本デバイスは、プログラム信号Vpgmの最初のパルスの大きさを決定する。図11Aに示す1つの例では、制御ゲートに印加されるプログラム電圧の最初のパルスの大きさは16.9Vである。連続するパルスはそれぞれ、その大きさが、直前のパルスと比較して0.3Vだけ増加している。ステップ302で、本デバイスは、Nサイクルにわたって動作するが、ここでNは、あらかじめ決定されるかまたはリアルタイムで決定される。ステップ304で、Nサイクル経過したら、Vpgmの初期プログラミングパルスの大きさは減少する。図11Bに示す1つの例では、制御ゲートに印加されるプログラム電圧Vpgmの最初のパルスの大きさは16.6Vまで減少している。連続するパルスはそれぞれ、その大きさが、直前のパルスと比較して0.3Vだけ増加している。ステップ306で、本デバイスは、Mサイクルにわたって動作するが(MはNと同じであったり異なったりする)、ここで数字Mの大きさは、あらかじめ決定されるかまたはリアルタイムで決定される。ステップ308で、(N+M)サイクル経過したら、初期プログラミング電圧は新しい値にまで減少する。図11Cに示す1つの例では、制御ゲートに印加されるプログラム電圧Vpgmの最初のパルスの大きさは16.3Vまで減少している。連続するパルスはそれぞれ、その大きさが、直前のパルスと比較して0.3Vだけ増加している。ステップ310で、本デバイスは、さらなるPサイクルにわたって動作するが、ここでPの大きさは、あらかじめ周知であるかまたはリアルタイムで決定される。ステップ312で、プログラム電圧Vpgmの初期パルスの大きさが減少する。図11Dに示す1つの例では、制御ゲートに印加されるプログラム電圧Vpgmの最初のパルスの大きさは16.0Vまで減少している。連続するパルスはそれぞれ、その大きさが、直前のパルスと比較して0.3Vだけ増加している。ステップ314で、本デバイスは、この新しい初期パルスで操作される。初期プログラミングパルスの大きさを減少させるこのプロセスは、望むだけの数のパルスにわたって継続させることが可能である。
図12は、図11のプロセスに対応する、例示の性能測定基準を示す表である。1つの実施形態では、初期プログラミングパルスの大きさは、ステップ300で16.9ボルトに設定される。1K回のプログラミングサイクル(ステップ302)の後では、初期パルスの大きさは16.6ボルトに減少される(ステップ304)。約3,000サイクルにわたって動作したら、初期パルスは16.3ボルトにまで低下され、プログラミング電圧はパルスごとに0.3ボルトだけ増加する。10,000サイクル動作したら、初期プログラムパルスの大きさは16.0ボルトに設定される。この方式では、下位ページをプログラミングするためのパルスの数は10であり、上位ページをプログラミングするためのパルスの数は15であり、フルシーケンスをプログラミングするためのパルスの数は19である。このプログラミングプロセス中での性能は、本デバイスの寿命全体にわたって一定である。フレッシュな部品のプログラミング性能は、オーバープログラミングが増加することなく向上した。
図13〜20は、図11と関連する概念を実施するさまざまな実施形態のさらなる詳細を示す図である。プログラミングサイクルの数をカウントすることに加えて、図12を参照して上に説明したように、他の実施例では、ソフトプログラミングを実行するために必要とされるソフトプログラムパルスの数をカウントする動作も含んでいる。ソフトプログラミングパルスの数が閾値に到達すると、初期プログラミングパルスの大きさが変更される。別の実施形態では、特定のプログラミングサイクル中にプログラミングの繰り返し(またはパルス)の数をカウントする。この繰り返し(またはパルス)の数が閾値を超えると、初期プログラミングパルスの大きさが変わる。さらに別の実施形態では、読み取りプロセス中に用いられるエラー訂正の量に基づいて初期の大きさを変更することを決定する。プログラミング特徴を調整するこれらの方式のどれでも、デバイス全体(たとえば、メモリアレイ全体)に対して、またはブロックごとに、またはメモリの別の部分集合に対して適用することが可能である。このプロセスは、コントローラ、状態マシン、これら双方の組み合わせまたは別の構造体によって実行可能である。
図13は、プログラムサイクルの数をカウントして、これにしたがって初期プログラミングパルスの大きさを調整する、メモリセルのプログラミングをより詳細に説明するフローチャートである。図13のプロセスは、データをプログラムする要求を受信するとこれに応答して実行することが可能である。ステップ402で、メモリのうちのプログラムすべき適切な部分を選択する。この動作には、書き込み先のブロックおよび/またはページおよび/またはセクターを選択する動作が含まれる。ステップ404で、サイクルカウント値を増加する。このサイクルカウント値は、プログラミングサイクルの数のカウント値である。サイクルカウント値は、フラッシュメモリアレイ、状態マシン、コントローラまたは別のロケーションに記憶することが可能である。1つの実施形態では、カウント値は、状態マシンと結合したレジスタに記憶される。ステップ406で、メモリの選択部分が事前プログラムされるが、この動作はフラッシュメモリがたとえ消耗してもよいようにする備えである。この選ばれたセクターまたはページ内のすべてのメモリセルが、同じ閾値電圧範囲にプログラムされる。ステップ406はオプションである。ステップ408で、プログラムされる予定のメモリセルをすべて消去する。たとえば、ステップ408は、古いメモリセルを状態Eにシフトさせる動作を含むことがある(図7〜9を参照)。ステップ410で、本システムは、ソフトプログラミングプロセスを実行する。上記の消去プロセスで、メモリセルのうちの一部のセルの閾値電圧を分布Eより下の値に下げることが可能である(図7〜9を参照)。このソフトプログラミングプロセスでは、図1に類似したプログラム電圧パルスをメモリセルに印加し、これで、その閾値電圧が閾値電圧分布E以内に入るまで増加させるようにする。ステップ412で、初期プログラムパルスの大きさを示すフラグにアクセスする。たとえば、図12の表を用いて、部品が1,000サイクル実行した場合、初期パルスに対するプログラムパルスの大きさは16.6ボルトとなる。この初期値を、電荷ポンプを適切にプログラミングすることによって、ステップ412で設定する。ステップ414で、プログラムカウント値PCを初期値としてのゼロに設定する。ステップ416で、プログラムパルスを適切なワードラインに印加する。ステップ418で、このワードライン上のメモリセルを、その目標閾値電圧レベルに到達したかどうか検証する。これらメモリセルのすべてが目標閾値電圧レベルに到達した場合(ステップ420)、このプログラミングプロセスはステップ422で成功裏に(ステータス=パス)完了したことになる。これらメモリセルのすべてが目標閾値電圧レベルに到達したわけではない場合、ステップ424で、プログラムカウント値PCが20未満であるかどうか判定される。プログラムカウント値PCが20以上であれば、プログラミングプロセスは失敗したことになる(ステップ426)。プログラムカウント値PCが20未満であれば、ステップ428で、プログラム電圧信号Vpgmの大きさを次のパルスのためにステップサイズ(たとえば0.3V)だけ増加して、プログラムカウント値PCを増加する。ここで、自身の目標閾値電圧に到達したメモリセルは、現在のプログラミングサイクルの残りの時間でのプログラミングの対象から外される。ステップ428の後、図13のプロセスはステップ416に進んで、次のプログラムパルスが印加される。
図14は、図13のステップ404の一部として実行される、サイクルカウント値を増加してフラグを調整するプロセスを説明するフローチャートである。ステップ460で、サイクルカウント値(COと記されている)を増加する。このサイクルカウント値は、この特定のデバイス、ブロックなどに対して実行されたプログラムサイクルの数を表している。ステップ462では、サイクルカウント値が第1の閾値未満であるかどうか判定される。第1の閾値の一例は1,000である。サイクルカウント値が第1の閾値未満であれば、ステップ464でフラグが変更されることはない。フラグは、初期プログラムパルスに対してどの大きさを採用するかの指示を記憶する1つ以上のビットの集合である。1つの実施形態では、フラグはフラッシュメモリアレイに記憶することが可能である。別の実施形態では、フラグは、状態マシンまたはコントローラと結合したレジスタに記憶することが可能である。開始パルスの取りえる大きさが4つある実施形態では、フラグは4つの値を記憶することが可能である必要があり、したがって、フラグは2ビットフラグであればよい。設計を容易にするために、フラグを1バイトのフラグとすることが望ましい。サイクルカウント値が第1の閾値以上であるとステップ462で判定された場合、サイクルカウント値が第2の閾値未満であるかどうかステップ466で判定される。第2の閾値の例は3,000である。サイクルカウント値が第2の閾値未満であれば、初期プログラムパルスの大きさを、少しだけシフトされたフレッシュデバイスと関連した大きさであると特定する指示でフラグが上書きされる。たとえば、デバイスが第1の閾値をパスした場合、ステップ468で、初期Vpgm(たとえば16.9ボルト)を小さいシフト値(0.3ボルト)だけ減少させて16.6ボルトとする。サイクルカウント値COが第2の閾値以上であるとステップ466で判定された場合、サイクルカウント値が第3の閾値未満であるかどうかステップ470で判定される。サイクルカウント値が第3の閾値未満であれば、このカウント値は第2の閾値と第3の閾値の中間にあり、したがって、フレッシュデバイスと関連する初期プログラムパルスの大きさから中程度だけシフトした値を特定する指示でフラグを上書きする。たとえば、この初期プログラム電圧は2ステップ(たとえば0.6ボルト)だけシフトダウンされる。サイクルカウント値が第3の閾値以上であれば、フレッシュデバイスの初期プログラム電圧は、3ステップ(たとえば0.9ボルト)を含むことがある大幅なステップ値だけシフトダウンされる。したがって、ステップ474では、フラグは、図12の例では初期プログラムパルスの大きさは16.0ボルトになるはずであることを示している。フラグの値が変化しなければ、このフラグを上書きする必要がないような実施形態もある。図14で書き込まれたフラグは、図13のステップ412でチェックされたフラグである。
図15は、図13のステップ412の一部として実行される、プログラミング信号Vpgmの初期パルスの大きさを設定するプロセスを説明するフローチャートである。ステップ500では、図14のプロセスで書き込みされたフラグを読み取る。フラグが大きいシフト値を示していれば(ステップ502)、プログラミング信号Vpgmの初期パルスの大きさは大きいシフト値だけ低い初期値の大きさに設定される。図12の例を用いれば、フレッシュデバイスと関連する初期のプログラミング電圧Vpgm0は16.9ボルトであり、大きいシフト値は0.9ボルトであり、したがって、ステップ504で、初期パルスの大きさは16.0ボルトにシフトされる。フラグが大きいシフト値を示していなければ(ステップ502)、フラグが中程度シフト値を示しているかどうか判定する(ステップ506)。そうであれば、最初のパルスの大きさは、中程度シフト値(たとえば0.6V)だけ低いVpgm0(たとえば16.9V)に設定される。図12の例では、ステップ508で、初期パルスの大きさは16.3ボルトに設定される。フラグが中程度サイズ値を示していない場合、フラグが小さいシフト値を示しているかどうか判定される(ステップ510)。フラグが小さいシフト値を示していれば、最初のパルスの大きさは、ステップ512で、小さいシフト値(たとえば0.3V)だけ低いVpgm0に設定される。フラグが小さいシフト値を示していなければ、最初のパルスの大きさは、Vpgm0(たとえば16.9V)のままである。
図16は、ソフトプログラミングプロセス中での性能に基づいて初期プログラミングパルスの大きさを判定する実施形態のプログラミングプロセスを説明するフローチャートである。図16のステップ532、534、536は、図13のステップ402、406、408とそれぞれ類似している。図16のステップ540は、図13のステップ412と類似している。図16のステップ542、544、546、548、550、552、554、556は、図13のステップ414、416、418、420、422、424、426、428とそれぞれ類似している。
図17は、図16のステップ538の一部として実行される、ソフトプログラミングとフラグの適切な調整とのプロセスを説明するフローチャートである。図17のプロセスは、図1の信号に類似した増加するパルスの集合を用いている。これはソフトプログラミング中に用いられるため、信号はVspgmと呼ばれ、これらパルスはソフトプログラミングパルスと呼ばれる。図17のステップ560で、初期パルスの大きさが設定される。1つの実施形態では、ソフトプログラミング中、初期パルスの大きさは約14ボルトである。他の値を用いることも可能である。くわえて、ループカウント値LCがゼロに設定される。ステップ562で、ソフトプログラムパルスが、選択されたメモリセルのワードラインに印加される。ステップ564で、検証プロセスを実行して、メモリセルの閾値電圧が分布E内にあるかどうかチェックする(図7〜9を参照)。すべてのメモリセルの閾値電圧が分布E中にあるわけではないことが検証された場合、ソフトプログラム電圧信号Vspgmを次のパルスにまで増加して、ループカウント値LCを1だけ増す。ステップ568の後、562に戻る。ステップ562、564、566、568のループは、すべてのメモリセルが検証されるまで、または、エラーが発生したと結論されて処理がストップするまでは継続される。たとえば、繰り返しの回数を20以下に制限する。繰り返し回数が20を超えた場合、閾値電圧がいまだ閾値分布Eより下方にあるメモリセルが損傷を負ったものと結論付けて、これらのメモリセルを通常の動作での使用対象から除外する。
ひとたびすべてのメモリセルが検証されたら(ステップ566)、ステップ570に進んで、ループカウント値LCが15未満であるかどうか判定する。15未満でなければ、Vpgm0からシフトすべきではないという指示をフラグに書き込む。これはフレッシュデバイスの場合に相当する。ループカウント値が15未満であれば、ステップ574で、ループカウント値が13未満であるかどうか判定される。ループカウント値が13以上であれば(たとえば、LC=13または14)、Vpgm0から小さいシフト値を示す内容がフラグに書き込まれる。ループカウント値LCが13未満であれば、ステップ578で、ループカウント値が11未満であるかどうかテストされる。ループカウント値が11以上であれば、ステップ580で、Vpgm0からの中程度のシフト値を用いるべきであるという指示をフラグに書き込む。ループカウント値LCが11未満であれば、初期プログラミングパルスの大きさに対してVpgm0からの大きいシフト値を用いるべきであることを示す内容がフラグに記憶される。
図18は、フラグビットに書き込むプロセスの1つの実施形態を説明するするフローチャートである。この実施形態は、フラグによって初期プログラミングパルスの大きさが増してしまうことを防止する。すなわち、いったん中程度のシフトが用いられると、フラグは、小さいシフトが用いられることを許容しないことになる。このようにして、プログラム信号の初期の大きさは不変のままであるか、または減少するが、決して増加しない。他の動作を用いることが可能な実施形態もある。図18のステップ600で、Vpgm0からの特定のシフトを示すようにフラグに書き込みをする必要があるかどうか判定する。1つの実施形態では、ステップ600には、図14または図17のプロセスを実行する動作が含まれる。ステップ602で、この分量だけまたはこれ以上の分量だけシフトすることを、フラグがすでに示しているかどうか判定する。その場合、フラグはステップ604では書き込みされない。そうでない場合、Vpgm0からの新たなシフトを示すようにフラグに書き込みをする。
図19は、将来のプログラミングサイクルで初期のプログラミングパルスの大きさをどのようにして設定するかを決定するために、プログラミングサイクルごとの繰り返し数をカウントする不揮発性メモリをプログラミングするプロセスの1つの実施形態を説明するフローチャートである。図19のステップ650、652、654、656、658、660、662、664、666、668、670、672は、それぞれ、図13の402、406、408、410、412、414、416、418、420、424、426、428と同じである。相異が1つあるが、それは、ステップ664の検証の後、すべてのメモリセルが検証されたら(ステップ666)、ステップ680で、プログラムカウント値PCが9未満であるかどうか判定されることである。ステップ662、664、666、668、672はループを形成するが、このループは、すべてのプログラムセルがプログラムされるまで、または、プログラムカウント値が20(別の数値が用いられる実施形態もある)に到達するまでは継続的に繰り返される。このループの繰り返し回数が9未満であれば、フラグをステップ684で増加する。この繰り返し回数が9以上であれば、このプログラミングプロセスはフラグを変更することなく完了する。フラグがステップ684で増加されるごとに、プログラミング信号の初期パルスの大きさを変更(たとえば減少)させる。次回に図19のプロセスが実行される際に、ステップ658でフラグをチェックする。したがって、たとえば、初期プログラミング電圧パルスの大きさが16.9ボルトである場合、プログラム電圧信号が用いられ続けるが、ここで、メモリをプログラムするために必要とされる繰り返し回数が9未満になるまで、初期パルスの大きさは16.9ボルトである。いったん繰り返し回数が9未満になると、フラグを増加する。次回にプログラミングプロセスを実行する際に、ステップ658で、フラグが増加されていることを確認して、初期プログラムパルスの大きさの値を16.9から下げて16.6に変更する。これによって、繰り返し回数が再度上昇する。最終的には、図19のプロセスの繰り返し回数は9未満となるが、その場合、フラグが増加され、初期パルスの大きさが、16.3にまで減少される等となる。ここで、図19で、ステップ680での9という値は他の値に変更することが可能である。
図20は、直前の読み取り動作中に検出されたエラーの量に基づいて、初期プログラミングパルスの大きさを下げるべきであるかどうかを判定するようなプロセスの一実施形態を説明するフローチャートである。図20のプロセスは、データ読み取り要求に応答して実行される。ステップ700で、データページに対して通常の読み取り動作を実行する。この動作は、技術上周知であるさまざまな技法によって実行される。ステップ702で、読み取られたデータと一緒に記憶されているエラー訂正符号をチェックして、なんらかのエラーがあるかどうか判定する。エラーがなければ、このデータがステップ704で報告される。エラーがあれば、ステップ706で、このエラーが訂正可能であるかどうか判定される。このエラーが訂正可能でない場合、ステップ708で、エラーが報告される。エラーが訂正可能であれば、ステップ710でこのエラーを訂正して、ステップ712でこのデータを報告する。ステップ714で、エラー訂正の量が閾値を超えているかどうか判定する。閾値の一例として、セクター1つ当たり2ビット以上にエラーがあったかどうかという基準がある。他の閾値を用いることも可能である。エラーが閾値を超えていれば、ステップ718でフラグを増加する。エラーが閾値を超えていなければ、フラグは増加されない。デバイスがフレッシュである場合、フラグはゼロである。フラグを増加したら、次回にプログラミングプロセスを実行する際に、初期プログラミングパルスの大きさを変更する。たとえば、図13のプロセスを(ステップ404なしで)、プログラミングするために用いることが可能である。ステップ412を実行する場合、フラグにアクセスして、最後にアクセスされて以来増加されていれば、最初のプログラムパルスの大きさは、直前に用いられた大きさより1ステップ低くなる。
プログラミングパラメータを変更する事例の多くで、初期プログラミングパルスの大きさが低下されるが、他のパラメータを変更することも可能である。くわえて、他のタスクを用いて、初期パルスの大きさをいつ低下されるべきか、または、別様にプログラミングパラメータを変更すべきであるかを判定するようにすることも可能である。
代替実施形態では、制御ゲート/ワードラインに印加されるプログラム信号の波形を、大きさが増加するパルスの集合とは異なったものとすることが可能である。
本発明に関する上述の詳細な説明は、例証と説明目的で提示したものである。本発明を、開示した形態そのもので尽きるとかこれに限るとかを意図するものではない。上記の教示に照らし合わせて、多くの修正例や変更例が可能である。説明した実施形態は、本発明とその実際の応用例の原理がもっともよく説明され、これによって、他の当業者が、想定される特定の用途に適しているさまざまな実施形態で、また、さまざまな修正をもって、本発明を利用することが可能となるように選ばれたものである。本発明の範囲は添付クレームによって定義されることを意図するものである。
図1は、フラッシュメモリデバイスの1つ以上の制御ゲートに印加することが可能なプログラム電圧信号の一例を示す図である。 図2は、NANDストリングの上面図である。 図3は、NANDストリングの等価回路図である。 図4は、NANDストリングの断面図である。 図5は、不揮発性メモリシステムのブロック図である。 図6は、不揮発性メモリアレイのブロック図である。 図7は、閾値電圧分布の例示の集合を示す図。 図8は、閾値電圧分布の例示の集合を示す図である。 図9A〜9Cは、さまざまな閾値電圧分布を示し、不揮発性メモリをプログラミングするプロセスを説明する図である。 図10は、プログラミングの実行を説明するチャートである。 図11は、不揮発性記憶装置をプログラミングするプロセスの一実施形態を説明するフローチャートである。 図11Aは、初期パルスを持つプログラム信号を示す図である。 図11Bは、初期パルスを持つプログラム信号を示す図である。 図11Cは、初期パルスを持つプログラム信号を示す図である。 図11Dは、初期パルスを持つプログラム信号を示す図である。 図12は、プログラミングの実行を説明するチャートである。 図13は、不揮発性記憶装置をプログラミングするプロセスの1つの実施形態を説明するフローチャートである。 図14は、サイクルのカウント値を増加するプロセスの1つの実施形態を説明するフローチャートである。 図15は、プログラム信号Vpgmの初期値を設定するプロセスの1つの実施形態を説明するフローチャートである。 図16は、不揮発性記憶装置をプログラミングするプロセスの1つの実施形態を説明するフローチャートである。 図17は、ソフトプログラミングプロセスを実行するプロセスの1つの実施形態を説明するフローチャートである。 図18は、データをフラグに書き込むプロセスの1つの実施形態を説明するフローチャートである。 図19は、不揮発性記憶装置をプログラミングするプロセスの1つの実施形態を説明するフローチャートである。 図20は、データを読み取るプロセスの1つの実施形態を説明するフローチャートである。

Claims (16)

  1. 不揮発性記憶を操作する方法であって、
    第1の初期電圧を持つ第1プログラムパルスを含む複数のプログラムパルスの増加するプログラム信号をワードラインに印加することによって、第1の期間中に不揮発性記憶素子の集合をプログラミングする工程と、
    第2の初期電圧を持つ第2プログラムパルスを含む複数のプログラムパルスの増加するプログラム信号を前記ワードラインに印加することによって、第2の期間中に前記不揮発性記憶素子の集合をプログラミングする工程と、を備えており、
    前記第2の初期電圧は、前記第1の初期電圧よりも低く、
    前記第1の期間中の前記増加するプログラム信号が、前記プログラミングを完了させるのに閾値として設定された数のプログラム信号を必要とするときに、前記第1の期間が終了し、前記第2の期間が開始される方法。
  2. 前記第1の期間と前記第2の期間の増加するプログラム信号はそれぞれ、大きさが増加する一連のプログラムパルスを有する請求項1に記載の方法。
  3. 前記第1の期間の増加するプログラム信号は、前記第1の期間の複数のプログラムサイクルの各プログラムサイクルで用いられており、
    前記第2の期間の増加するプログラム信号は、前記第2の期間の複数のプログラムサイクルの各プログラムサイクルで用いられており、
    前記第1の期間中の前記増加するプログラム信号が、前記第1の期間の複数のプログラムサイクルのうちの1つの前記プログラミングを完了させるのに閾値として設定された数のプログラム信号を必要とするときに、前記第1の期間が終了し、前記第2の期間が開始される請求項2に記載の方法。
  4. 前記第1の期間中の前記増加するプログラム信号が前記プログラミングを完了させるのに閾値として設定された数のプログラム信号を必要としたかどうかの指示を記憶する工程と、
    データをプログラムする要求を受信する工程と、
    前記要求に応答して前記指示を読み取る工程と、
    前記指示に基づいて、前記第1の期間を終了させ、前記第2の期間を開始させることを決定する工程と、をさらに備える請求項3に記載の方法。
  5. 第3の初期電圧を持つ第3プログラムパルスを含む複数のプログラムパルスの増加するプログラム信号をワードラインに印加することによって、第3の期間中に前記不揮発性記憶素子の集合をプログラミングする工程をさらに備えており、
    前記第3の期間が前記第2の期間の後であり、
    前記第3の初期電圧が、前記第2の初期電圧よりも低い請求項1に記載の方法。
  6. 前記不揮発性記憶素子の集合が、不揮発性記憶素子のブロックである請求項1に記載の方法。
  7. 前記不揮発性記憶素子の集合が、不揮発性記憶素子のアレイ全体である請求項1に記載の方法。
  8. 不揮発性記憶システムであって、
    不揮発性記憶素子と、
    前記不揮発性記憶素子と通信している1つ以上の管理回路と、を備えており、
    前記1つ以上の管理回路は、データをプログラムする要求を受信しており、
    前記1つ以上の管理回路は、前記要求に応答して、(a)第1の開始電圧を有する増加するプログラミング信号、又は(b)第2の開始電圧を有する増加するプログラミング信号を用いて前記不揮発性記憶素子をプログラムし、
    前記第1の開始電圧を有する増加するプログラム信号と前記第2の開始電圧を有する増加するプログラム信号は、ワードラインに印加されるものであり、
    前記第2の開始電圧は、前記第1の開始電圧よりも低く、
    前記1つ以上の管理回路は、前記第1の開始電圧を有する前記増加するプログラミング信号が、前記プログラムを完了させるのに閾値として設定された数のプログラム信号を必要とするときに、前記第1の開始電圧を有する前記増加するプログラミング信号の使用から前記第2の開始電圧を有する前記増加するプログラミング信号の使用に変更する不揮発性記憶システム。
  9. 前記1つ以上の管理回路が、前記要求に応答して前記第1の開始電圧を有する前記増加するプログラミング信号が前記プログラムを完了させるのに閾値として設定された数のプログラム信号を必要としているかどうかの指示を読み取り、
    前記1つ以上の管理回路が、前記指示に基づいて、前記第1の開始電圧を有する前記増加するプログラミング信号の使用から前記第2の開始電圧を有する前記増加するプログラミング信号の使用に変更する請求項8に記載の不揮発性記憶システム。
  10. 前記1つ以上の管理回路が、前記第1の開始電圧を有する前記増加するプログラミング信号が、1つのプログラムサイクルの前記プログラムを完了させるのに閾値として設定された数のプログラム信号を必要とするときに、前記第1の開始電圧を有する前記増加するプログラミング信号の使用から前記第2の開始電圧を有する前記増加するプログラミング信号の使用に変更する請求項8に記載の不揮発性記憶システム。
  11. 前記第1の開始電圧を有する前記増加するプログラミング信号と前記第2の開始電圧を有する増加するプログラミング信号はそれぞれ、大きさが増加する一連のプログラムパルスを有する請求項8に記載の不揮発性記憶システム
  12. 前記第2の開始電圧を有する前記増加するプログラミング信号が、前記プログラムを完了させるのに閾値として設定された数のプログラム信号を必要とするときに、前記1つ以上の管理回路が、第3の開始電圧を有する増加するプログラミング信号をワードラインに印加して前記不揮発性記憶素子をプログラムし、
    前記第3の開始電圧が前記第2の開始電圧よりも低い請求項8に記載の不揮発性記憶システム。
  13. 前記1つ以上の不揮発性記憶素子が、不揮発性記憶素子のブロックである請求項8に記載の不揮発性記憶システム。
  14. 前記1つ以上の不揮発性記憶素子が、複数のブロックを含むフラッシュメモリデバイスのアレイである請求項8に記載の不揮発性記憶システム。
  15. 前記1つ以上の不揮発性記憶素子が、フラッシュメモリデバイスである請求項8に記載の不揮発性記憶システム。
  16. 前記1つ以上の管理回路が、状態マシン、デコーダ、感知回路およびコントローラのうちの1つ以上を有しており、
    前記不揮発性記憶素子がフラッシュメモリデバイスのアレイの一部であり、フラッシュメモリデバイスの前記アレイがワードラインとビットラインを有している請求項8に記載の不揮発性記憶システム。
JP2008514710A 2005-06-03 2006-05-26 不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法 Expired - Fee Related JP4931915B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/144,264 2005-06-03
US11/144,264 US7339834B2 (en) 2005-06-03 2005-06-03 Starting program voltage shift with cycling of non-volatile memory
PCT/US2006/020375 WO2006132818A2 (en) 2005-06-03 2006-05-26 Starting program voltage shift with cycling of non-volatile memory

Publications (2)

Publication Number Publication Date
JP2008542968A JP2008542968A (ja) 2008-11-27
JP4931915B2 true JP4931915B2 (ja) 2012-05-16

Family

ID=37493940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008514710A Expired - Fee Related JP4931915B2 (ja) 2005-06-03 2006-05-26 不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法

Country Status (7)

Country Link
US (4) US7339834B2 (ja)
EP (1) EP1886319B1 (ja)
JP (1) JP4931915B2 (ja)
KR (1) KR100945057B1 (ja)
CN (2) CN101213613B (ja)
TW (1) TWI313868B (ja)
WO (1) WO2006132818A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957405B2 (en) 2019-01-21 2021-03-23 Toshiba Memory Corporation Memory system configured to update write voltage applied to memory cells based on number of write or erase operations

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7957189B2 (en) * 2004-07-26 2011-06-07 Sandisk Il Ltd. Drift compensation in a flash memory
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US8223553B2 (en) * 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7408810B2 (en) * 2006-02-22 2008-08-05 Micron Technology, Inc. Minimizing effects of program disturb in a memory device
US7561469B2 (en) * 2006-03-28 2009-07-14 Micron Technology, Inc. Programming method to reduce word line to word line breakdown for NAND flash
US7440321B2 (en) * 2006-04-12 2008-10-21 Micron Technology, Inc. Multiple select gate architecture with select gates of different lengths
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7486561B2 (en) 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7471565B2 (en) * 2006-08-22 2008-12-30 Micron Technology, Inc. Reducing effects of program disturb in a memory device
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7539052B2 (en) * 2006-12-28 2009-05-26 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US7564711B2 (en) * 2007-02-20 2009-07-21 Sandisk Corporation Multiple pass write sequence for non-volatile storage
EP2458592B1 (en) * 2007-02-20 2014-03-26 SanDisk Technologies, Inc. Multiple pass write sequence for non-volatile storage
US7589652B2 (en) * 2007-04-12 2009-09-15 Microchip Technology Incorporated Read and write interface communications protocol for digital-to-analog signal converter with non-volatile memory
US7580290B2 (en) * 2007-06-21 2009-08-25 Sandisk Corporation Non-volatile storage system with intelligent control of program pulse duration
US7630249B2 (en) * 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
KR101403429B1 (ko) 2007-10-09 2014-06-03 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US8117375B2 (en) 2007-10-17 2012-02-14 Micron Technology, Inc. Memory device program window adjustment
US7924618B2 (en) * 2007-12-27 2011-04-12 Hynix Semiconductor Inc. Method of programming non-volatile memory device
JP5150245B2 (ja) 2007-12-27 2013-02-20 株式会社東芝 半導体記憶装置
US7733705B2 (en) 2008-03-13 2010-06-08 Micron Technology, Inc. Reduction of punch-through disturb during programming of a memory device
KR100953045B1 (ko) 2008-05-23 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR101464255B1 (ko) * 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
US8854887B2 (en) 2008-07-10 2014-10-07 Hynix Semiconductor Inc. Nonvolatile memory device and method of programming the same
KR100965071B1 (ko) * 2008-07-10 2010-06-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR101423612B1 (ko) * 2008-09-16 2014-07-25 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법, 그리고 그것을포함하는 메모리 시스템
US8045375B2 (en) 2008-10-24 2011-10-25 Sandisk Technologies Inc. Programming non-volatile memory with high resolution variable initial programming pulse
US7839690B2 (en) * 2008-12-11 2010-11-23 Sandisk Corporation Adaptive erase and soft programming for memory
US8645792B2 (en) * 2008-12-16 2014-02-04 Micron Technology, Inc. Memory with guard value dependent error correction
KR100996108B1 (ko) * 2009-01-21 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR20120001748A (ko) 2009-03-24 2012-01-04 램버스 인코포레이티드 비휘발성 메모리에 대한 펄스 제어
US8026544B2 (en) * 2009-03-30 2011-09-27 Sandisk Technologies Inc. Fabricating and operating a memory array having a multi-level cell region and a single-level cell region
KR20110018753A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
US8400854B2 (en) * 2009-09-11 2013-03-19 Sandisk Technologies Inc. Identifying at-risk data in non-volatile storage
US8199579B2 (en) 2009-09-16 2012-06-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US8248855B2 (en) * 2010-03-10 2012-08-21 Infinite Memories Ltd. Method of handling reference cells in NVM arrays
KR101138101B1 (ko) * 2010-05-27 2012-04-24 에스케이하이닉스 주식회사 불휘발성 메모리 소자의 프로그램 방법
JP2011258260A (ja) * 2010-06-07 2011-12-22 Toshiba Corp 不揮発性半導体記憶装置
JP5566797B2 (ja) * 2010-07-02 2014-08-06 株式会社東芝 不揮発性半導体記憶装置
JP2012027969A (ja) * 2010-07-21 2012-02-09 Toshiba Corp 不揮発性半導体記憶装置
US8451662B2 (en) 2011-03-03 2013-05-28 Micron Technology, Inc. Reading memory cell history during program operation for adaptive programming
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8842477B2 (en) * 2012-06-01 2014-09-23 Spansion Llc Method, apparatus, and manufacture for flash memory adaptive algorithm
CN103631529A (zh) * 2012-08-21 2014-03-12 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
JP5667143B2 (ja) * 2012-10-11 2015-02-12 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体メモリ
US8971128B2 (en) 2013-01-31 2015-03-03 Sandisk Technologies Inc. Adaptive initial program voltage for non-volatile memory
US9864498B2 (en) 2013-03-13 2018-01-09 Tobii Ab Automatic scrolling based on gaze detection
US9619020B2 (en) 2013-03-01 2017-04-11 Tobii Ab Delay warp gaze interaction
TWI501245B (zh) * 2013-05-06 2015-09-21 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
US10317995B2 (en) 2013-11-18 2019-06-11 Tobii Ab Component determination and gaze provoked interaction
US10558262B2 (en) 2013-11-18 2020-02-11 Tobii Ab Component determination and gaze provoked interaction
US9123424B2 (en) 2013-12-17 2015-09-01 Sandisk Technologies Inc. Optimizing pass voltage and initial program voltage based on performance of non-volatile memory
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
KR102221752B1 (ko) 2014-03-20 2021-03-02 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
US9952883B2 (en) 2014-08-05 2018-04-24 Tobii Ab Dynamic determination of hardware
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
KR20170011644A (ko) * 2015-07-23 2017-02-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US10482969B2 (en) * 2017-12-21 2019-11-19 Western Digital Technologies, Inc. Programming to a correctable amount of errors
US10580495B2 (en) 2017-12-21 2020-03-03 Western Digital Technologies, Inc. Partial program operation of memory wordline
US10978156B2 (en) 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US11545221B2 (en) 2018-06-29 2023-01-03 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
WO2020162896A1 (en) * 2019-02-06 2020-08-13 Hewlett-Packard Development Company, L.P. Writing a nonvolatile memory to programmed levels
CN111857560B (zh) * 2019-04-30 2024-06-28 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
JP2022040515A (ja) * 2020-08-31 2022-03-11 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリおよびプログラミング方法
US11342029B2 (en) 2020-09-28 2022-05-24 Sandisk Technologies Llc Non-volatile memory with switchable erase methods
US11854620B2 (en) 2021-06-18 2023-12-26 Sandisk Technologies Llc Word line zoned adaptive initial program voltage for non-volatile memory

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357688A (ja) * 2000-06-16 2001-12-26 Matsushita Electric Ind Co Ltd 半導体記憶装置とその書き換え装置
JP2002133887A (ja) * 2000-10-31 2002-05-10 Matsushita Electric Ind Co Ltd 不揮発性半導体メモリ装置
JP2002208291A (ja) * 2001-01-15 2002-07-26 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2004046985A (ja) * 2002-07-12 2004-02-12 Toshiba Corp 不揮発性半導体メモリ及びそのテスト方法
WO2005010869A2 (en) * 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Method of archiving data
JP2005327435A (ja) * 2004-05-14 2005-11-24 Hynix Semiconductor Inc フラッシュメモリ装置及びその駆動方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280446A (en) * 1990-09-20 1994-01-18 Bright Microelectronics, Inc. Flash eprom memory circuit having source side programming
US5220531A (en) * 1991-01-02 1993-06-15 Information Storage Devices, Inc. Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5412601A (en) * 1992-08-31 1995-05-02 Nippon Steel Corporation Non-volatile semiconductor memory device capable of storing multi-value data in each memory cell
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
EP0704854B1 (en) * 1994-09-30 1999-12-01 STMicroelectronics S.r.l. Memory device having error detection and correction function, and methods for writing and erasing the memory device
JP3807744B2 (ja) 1995-06-07 2006-08-09 マクロニクス インターナショナル カンパニイ リミテッド 可変プログラムパルス高及びパルス幅によるページモードフラッシュメモリ用自動プログラミングアルゴリズム
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
IT1303204B1 (it) 1998-11-27 2000-10-30 St Microelectronics Srl Metodo di programmazione di celle di memoria non volatile ad elevataprecisione, con velocita' di programmazione ottimizzata.
US6301161B1 (en) * 2000-04-25 2001-10-09 Winbond Electronics Corporation Programming flash memory analog storage using coarse-and-fine sequence
IT1319614B1 (it) * 2000-12-22 2003-10-20 St Microelectronics Srl Metodo per programmare una pluralita' di celle di memoria collegate inparallelo e relativo circuito di programmazione
WO2002056316A1 (fr) * 2001-01-12 2002-07-18 Hitachi, Ltd. Memoire remanente a semi-conducteur
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6614695B2 (en) * 2001-08-24 2003-09-02 Micron Technology, Inc. Non-volatile memory with block erase
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
JP3987715B2 (ja) * 2001-12-06 2007-10-10 富士通株式会社 不揮発性半導体メモリおよび不揮発性半導体メモリのプログラム電圧制御方法
US6967872B2 (en) * 2001-12-18 2005-11-22 Sandisk Corporation Method and system for programming and inhibiting multi-level, non-volatile memory cells
JP4050555B2 (ja) * 2002-05-29 2008-02-20 株式会社東芝 不揮発性半導体記憶装置およびそのデータ書き込み方法
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
US20050049334A1 (en) 2003-09-03 2005-03-03 Slawomir Rubinsztain Solvent-modified resin system containing filler that has high Tg, transparency and good reliability in wafer level underfill applications
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US6734718B1 (en) 2002-12-23 2004-05-11 Sandisk Corporation High voltage ripple reduction
US6735114B1 (en) * 2003-02-04 2004-05-11 Advanced Micro Devices, Inc. Method of improving dynamic reference tracking for flash memory unit
US6859397B2 (en) * 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
KR100546343B1 (ko) * 2003-07-18 2006-01-26 삼성전자주식회사 플래시 메모리 장치의 프로그램 방법
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
JP2005122841A (ja) * 2003-10-17 2005-05-12 Renesas Technology Corp 不揮発性半導体記憶装置
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7139198B2 (en) 2004-01-27 2006-11-21 Sandisk Corporation Efficient verification for coarse/fine programming of non-volatile memory
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357688A (ja) * 2000-06-16 2001-12-26 Matsushita Electric Ind Co Ltd 半導体記憶装置とその書き換え装置
JP2002133887A (ja) * 2000-10-31 2002-05-10 Matsushita Electric Ind Co Ltd 不揮発性半導体メモリ装置
JP2002208291A (ja) * 2001-01-15 2002-07-26 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2004046985A (ja) * 2002-07-12 2004-02-12 Toshiba Corp 不揮発性半導体メモリ及びそのテスト方法
WO2005010869A2 (en) * 2003-07-30 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Method of archiving data
JP2005327435A (ja) * 2004-05-14 2005-11-24 Hynix Semiconductor Inc フラッシュメモリ装置及びその駆動方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957405B2 (en) 2019-01-21 2021-03-23 Toshiba Memory Corporation Memory system configured to update write voltage applied to memory cells based on number of write or erase operations
US11501839B2 (en) 2019-01-21 2022-11-15 Kioxia Corporation Memory system configured to determine a write voltage applied to memory cells based on the number of erase operations

Also Published As

Publication number Publication date
US20080130368A1 (en) 2008-06-05
US7633812B2 (en) 2009-12-15
US7630254B2 (en) 2009-12-08
US20060274583A1 (en) 2006-12-07
US7339834B2 (en) 2008-03-04
CN102385924B (zh) 2015-01-14
US8111554B2 (en) 2012-02-07
KR100945057B1 (ko) 2010-03-05
WO2006132818A2 (en) 2006-12-14
WO2006132818A3 (en) 2007-07-12
CN102385924A (zh) 2012-03-21
CN101213613B (zh) 2011-10-19
CN101213613A (zh) 2008-07-02
EP1886319A2 (en) 2008-02-13
KR20080016598A (ko) 2008-02-21
US20100020613A1 (en) 2010-01-28
JP2008542968A (ja) 2008-11-27
EP1886319B1 (en) 2015-07-15
US20080137431A1 (en) 2008-06-12
TW200707440A (en) 2007-02-16
TWI313868B (en) 2009-08-21

Similar Documents

Publication Publication Date Title
JP4931915B2 (ja) 不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法
JP4754631B2 (ja) 不揮発性メモリを自己調整式の最大プログラムループでプログラムする方法
JP4857278B2 (ja) オーバープログラミングの低減を利用する高速プログラミングシステム
KR101600551B1 (ko) 고해상도의 가변 초기 프로그램 펄스를 이용한 비휘발성 메모리의 프로그램
JP4994447B2 (ja) 閾値電圧の分布が緊密化するように不揮発性メモリを非リアルタイムで再プログラミングする方法
JP2008535145A (ja) マルチレベルセル型フラッシュメモリに高位レベル状態をより迅速にプログラミングする方法
EP1678722A1 (en) Programming method based on the behavior of non-volatile memory cells
JP4938020B2 (ja) タイミング情報による逆結合効果
EP1971984B1 (en) Continued verification in non-volatile memory write operations
JP4726958B2 (ja) プログラム外乱を低減させたnandタイプの不揮発性メモリをプログラムするラスト―ファーストモードと方法
JP4960378B2 (ja) 不揮発性メモリの読み出し外乱を低減する方法
JP2009512115A (ja) ビット線結合を生じる不揮発性メモリを制御してプログラムする方法
JP4820879B2 (ja) 非選択ワード線を効果的に制御して不揮発性メモリを読み出す方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110819

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: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120214

R150 Certificate of patent or registration of utility model

Ref document number: 4931915

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: 20150224

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

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

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