JP2012531003A - 不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅 - Google Patents

不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅 Download PDF

Info

Publication number
JP2012531003A
JP2012531003A JP2012516129A JP2012516129A JP2012531003A JP 2012531003 A JP2012531003 A JP 2012531003A JP 2012516129 A JP2012516129 A JP 2012516129A JP 2012516129 A JP2012516129 A JP 2012516129A JP 2012531003 A JP2012531003 A JP 2012531003A
Authority
JP
Japan
Prior art keywords
state
programming
programming pulse
temperature
storage elements
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.)
Withdrawn
Application number
JP2012516129A
Other languages
English (en)
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 Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 Technologies LLC filed Critical SanDisk Technologies LLC
Publication of JP2012531003A publication Critical patent/JP2012531003A/ja
Withdrawn legal-status Critical Current

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
    • 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

Abstract

不揮発性記憶システムにおいて、プログラム動作の途中に、使用している長い期間のプログラミングパルスを、短い期間のプログラミングパルスに切り替えることによって、プログラム外乱を削減することができる。切替ポイントは、温度、選択ワードラインの位置及び/又はトリガ状態への記憶素子の追跡調査に基づくことがある。切替ポイントは、温度が高いときほど、及びドレイン側に位置するワードラインの場合ほど、早く行うことができる。トリガ状態は、温度に基づいて選択できる。切り替えをトリガするためにトリガ状態に達することを要求される記憶素子の部分にも、温度の関数を設定できる。短い期間のプログラミングパルスは、禁止された記憶素子のためのチャネルブーストを改善し、それによってこれらの記憶素子のためのプログラム外乱を削減する。

Description

本技術は、不揮発性メモリに関する。
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ(EEPROM)と、フラッシュメモリは、最も普及している不揮発性半導体メモリの1つである。EEPROMの一種であるフラッシュメモリを用いると、従来のフル機能を備えたEEPROMとは対照的に、メモリアレイ全体のコンテンツ、又はメモリの一部のコンテンツを1つのステップで消去できる。
従来のEEPROMとフラッシュメモリの何れもが、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に配置されており、そのフローティングゲートから絶縁されている。このように形成されたトランジスタの閾値電圧(VTH)は、フローティングゲート上に保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加しなければならない電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
いくつかのEEPROM及びフラッシュメモリ素子は2つの範囲の電荷を記憶するために使用されるフローティングゲートを有するため、メモリエレメントは2つの状態、たとえば消去状態とプログラム状態の間でプログラミング/消去できる。各メモリエレメントは1ビットのデータを記憶できるため、このようなフラッシュメモリ素子はバイナリフラッシュメモリ素子と呼ばれることもある。
マルチ状態(マルチレベルとも呼ばれる)フラッシュメモリ素子が、複数の別個の許可/有効プログラム閾値電圧範囲を識別することによって実現される。各閾値電圧範囲は、メモリ素子内で符号化される一組のデータビットの所定値に相当する。例えば、各メモリエレメントは、そのエレメントを4つの別々の閾値電圧範囲に相当する4つの別々の電荷バンドの内の1つに置くことができ、2ビットのデータを記憶できる。
通常、プログラム動作中に制御ゲートに印加されるプログラム電圧VPGMは、経時的に大きさが大きくなる一連のパルスとして印加される。プログラム電圧は、選択されたワードラインに印加され得る。1つの考えられる手法では、パルスの大きさは、例えば0.2から0.4V等の所定のステップサイズでそれぞれの連続パルスで大きくなる。VPGMは、フラッシュメモリエレメントの制御ゲートに印加され得る。プログラミングパルス間の期間では、検証動作が実施される。すなわち、並行してプログラミングされているエレメントのグループの内の各エレメントのプログラミングレベルは、エレメントがプログラミングされている検証レベル以上であるか否かを判断するために、連続プログラミングパルスの間に読み出される。マルチ状態フラッシュメモリエレメントのアレイの場合、検証ステップは、エレメントがそのデータ関連検証レベルに達したのかどうかを判断するために、エレメントの状態ごとに実行され得る。例えば、4つの状態にデータを記憶できるマルチ状態メモリエレメントは、3つの比較点について検証動作を実行する必要がある場合がある。
さらに、EEPROM又はNANDストリング内のNANDフラッシュメモリ素子等のフラッシュメモリ素子をプログラミングするときには、通常、VPGMが制御ゲートに印加され、ビットラインが接地され、例えば記憶素子などのセル又はメモリエレメントのチャネルからの電子がフローティングゲートの中に注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電され、メモリエレメントの閾値電圧は上昇し、メモリエレメントがプログラミングされた状態にあると見なされる。
しかしながら、困難であり続ける1つの問題は、プログラム外乱である。プログラム外乱は、他の選択されたNANDストリングのプログラミング中に、禁止されている選択されていないNANDストリングで発生することがある。プログラム外乱は、非選択の不揮発性記憶素子の閾値電圧が、他の不揮発性記憶素子のプログラミングのためにシフトされると発生する。プログラム外乱は、まだプログラミングされていない消去された記憶素子だけではなく、以前にプログラミングされた記憶素子でも発生することがある。
期間の短いプログラミングパルスを使用して、チャネルのブーストを向上し、それによってプログラム外乱を抑制する方法及び不揮発性記憶装置が提供される。
プログラム動作の途中で、使用するプログラミングパルスを、期間の長いプログラミングパルスから、期間の短いプログラミングパルスへ切り替えることにより、プログラム外乱を抑制することができる。切替ポイントは、温度、選択ワードラインの位置、及び/又はトリガ状態に達した記憶素子の追跡調査に基づくことができる。温度が高いときほど、あるいは、選択ワードラインがドレイン側に近いときほど、切替ポイントを早期にすることができる。トリガ状態の選定は、温度に基づいて行うことができる。さらに、どれぐらいの記憶素子がトリガ状態に達したときに切り替えを行うかについても、温度に応じて定めることができる。
NANDストリングの平面図。
NANDストリングの等価回路図。
NANDストリングの断面図。
3つのNANDストリングを示す回路図。
NANDフラッシュ記憶素子のアレイのブロック図。
単一行/列デコーダ及び読み出し/書き込み回路を使用する不揮発性メモリシステムのブロック図。
検出ブロックの一実施形態を示すブロック図。
全ビットラインメモリアーキテクチャ用、又は奇数−偶数メモリアーキテクチャ用のブロックへのメモリアレイの編成の例を示す図。
閾値電圧分布及びワンパスプログラミングの例を示す図。
閾値電圧分布及びツーパスプログラミングの例を示す図。
種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。 種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。 種々の閾値電圧分布を示し、不揮発性メモリをプログラミングするためのプロセスを説明する図。
NANDストリングの断面図であり、ブースト中のチャネル接合漏れを示す図。
近傍チャネルがブーストされている、及びブーストされていないときのチャネルブースト電位を示す。
温度の関数としてチャネルブースト電位を示す。
プログラミングパルス幅及び選択されたワードラインの位置の関数としてチャネルブースト電位を示す。
プログラミングパルス数に関する切替ポイントを、選択ワードラインの位置と温度の関数として示す。
トリガ状態に関する切替ポイントを、温度の関数として示す。
トリガ状態に達するための記憶素子の数に関する切替ポイントを、温度の関数として示す。
プログラム動作でのプログラミングパルスを示し、ここでは、プログラム動作の途中で、プログラミングパルスの期間を短くする切り替えが行われる。
記憶素子において見られるプログラミングパルスであって、ワードラインのデコーダ側からの距離に基づいて変化するものを示す。
不揮発性メモリをプログラミングする方法の一実施形態を説明するフローチャートであって、プログラミングパルス数に基づいて、プログラミングパルスの期間を短くする切り替えが行われるものを示す。
不揮発性メモリをプログラミングする方法の一実施形態を説明するフローチャートであって、トリガ状態に達した記憶素子の数に基づいて、プログラミングパルスの期間を短くする切り替えが行われるものを示す。
本発明の実施に適したメモリシステムの一例は、NANDフラッシュメモリ構造を用いる。そのNANDフラッシュメモリ構造は2つの選択ゲートの間に直列に接続された複数のトランジスタを有している。直列に配置されたトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1aは、1つのNANDストリングを示す平面図である。図1bはその等価回路である。図示された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に接続されており、制御ゲート102CGはワードラインWL2に接続されており、制御ゲート104CGはワードラインWL1に接続されており、制御ゲート106CGはワードラインWL0に接続されている。一実施形態では、トランジスタ100、102、104及び106は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることもある。あるいは、図示されているのとは異なることもある。選択ゲート120は、選択ラインSGDに接続されている。選択ゲート122は、選択ラインSGSに接続されている。
図2は、前述されたNANDストリングの断面図を示す。NANDストリングのトランジスタはp−ウェル領域140に形成されている。p−ウェル領域は、代わりにp−タイプ基板144のn−ウェル領域142内にあってよい。各トランジスタは、制御ゲート(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ストリングのための1つの共通ソースラインに接続する。
図1a、1bおよび図2はNANDストリング内の4個のメモリセルを示しているが、本明細書に説明される技術とともに使用されるNANDストリングは、4個未満のメモリセル又は4個以上のメモリセルを有することができることに留意されたい。たとえば、いくつかのNANDストリングは、8個、16個、32個又はそれ以上のメモリセルを含む。
各メモリセルは、アナログ形式又はデジタル形式で表されるデータを記憶できる。1ビットのデジタルデータを記憶するとき、メモリセルの閾値電圧の範囲は、論理データ「1」及び「0」が割り当てられる2つの範囲に分割される。NANDタイプのフラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後に負となり、論理「1」として定義される。プログラム動作後に閾値電圧は正となり、論理「0」として定義される。閾値電圧が負であり、制御ゲートに0ボルトを印加することにより読み出しが試行されると、メモリセルがオンして論理1が記憶されていることが示される。閾値電圧が正であり、制御ゲートに0ボルトを印加することにより読み出し動作が試行されると、メモリセルはオンせず、論理ゼロが記憶されることが示される。
メモリセルは、複数の状態を記憶し、それによって複数ビットのデジタルデータを記憶することもできる。データの複数の状態を記憶するケースでは、閾値電圧ウィンドウは状態の数に分割される。例えば、4つの状態が使用される場合、データ値「11」、「10」、「01」、及び「00」に割り当てられる4つの閾値範囲がある。NANDタイプメモリの一例では、消去動作後の閾値電圧は負であり、「11」として定義される。正の閾値電圧は「10」、「01」、及び「00」の状態のために使用される。いくつかの実施形態では、フローティングゲートの閾値電圧が誤って隣の物理状態にシフトしても、1ビットだけが影響を受けるように、データ値(例えば、論理状態)は、グレーコード割り当てを使用して閾値範囲に割り当てられる。メモリセルにプログラムされたデータと、セルの閾値電圧範囲の間の特殊な関係は、メモリセルのために採用されるデータ符号化方式に依存する。
NANDフラッシュメモリに加えて、他のタイプの不揮発性メモリも使用できる。
フラッシュEEPROMシステムで役立つ別のタイプのメモリセルは、不揮発的に電荷を蓄えるために、導電性のフローティングゲートの代わりに非導電性の誘電材料を用いる。酸化ケイ素、窒化ケイ素、及び酸化ケイ素(「ONO」)から形成される三層誘電体が、導電性の制御ゲートと、メモリセルチャネル上の半導体基板の表面の間に挟まれる。セルは、セルチャネルから窒化物に電子を注入することによってプログラミングされ、電子は限られた領域内に閉じ込められ、蓄えられる。次に、この蓄えられた電荷が、検出可能な態様で、セルのチャネルの一部の閾値電圧を変化させる。セルは、窒化物の中にホットホールを注入することによって消去される。ドープされたポリシリコンゲートがメモリセルチャネルの一部の上に延在していることで別個の選択トランジスタが形成されている分割ゲート構造の類似するセルが提供される。
別の手法では、ONO誘電体層がソース拡散とドレイン拡散の間のチャネルを横切って延在する各NROMセルに2ビットが記憶される。1データビットの電荷は、ドレインに隣接する誘電体層に局所化され、他のデータビットの電荷はソースに隣接する誘電体層に局所化される。マルチ状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現される。
図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」の状態のために使用される。記憶素子にプログラミングされるデータと、素子の閾値電圧範囲の間の特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。
フラッシュ記憶素子をプログラミングするとき、プログラム電圧は記憶素子の制御ゲートに印加され、記憶素子と関連付けられたビットラインが接地される。チャネルからの電子がフローティングゲートの中に注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電し、記憶素子の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は、図1aと1bに図示されるようなNAND記憶素子のアレイ400の例を示す。各列に沿って、ビットライン406が、NANDストリング450のドレイン選択ゲートのドレイン端子426に接続されている。NANDストリングの各行に沿って、ソースライン404が、NANDストリングのソース選択ゲートの全てのソース端子428に接続されている。
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュEEPROMシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページは、プログラミングの最小単位である。1ページまたは複数ページのデータは、通常、記憶素子の1行に記憶される。例えば、1行は、通常、いくつかのインタリーブされたページを含む、あるいは、1行は1ページを構成してよい。ページの全ての記憶素子は、一度に読み出され、または、プログラミングされる。さらに、ページは、1つまたは複数のセクタからユーザデータを記憶できる。セクタは、ユーザデータの便利な単位としてホストによって使用される論理概念である。つまり、セクタは、通常、コントローラに限定されるオーバヘッドデータは含まない。オーバヘッドデータは、セクタのユーザデータから計算されたエラー訂正コード(ECC)を含むことができる。(後述される)コントローラの一部は、データがアレイにプログラミングされるときにECCを計算し、データがアレイから読み出されるときにそれをチェックする。また、ECC及び/又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページに記憶されてもよいし、もしくは、異なるブロックに記憶されてもよい。
ユーザデータのセクタは一般に512バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の16〜20バイトである。多数のページがブロックを構成し、それは8ページから、例えば最大32、64、128またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、NANDストリングの列はブロックを含む。
一実施形態では、メモリ記憶素子は、十分な期間に亘ってp−ウェルが消去電圧(例えば14から22V)に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。容量結合のために、非選択ワードライン、ビットライン、選択ライン、及び、c−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、フローティングゲートの電子が、通常はファウラー−ノードハイムトンネル現象によって基板側に放出されるにつれて選択された記憶素子のデータが消去される。電子がフローティングゲートからp−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
図5は、単一行/列デコーダ及び読み出し/書き込み回路を使用する不揮発性メモリシステムのブロック図である。同図は、一実施形態に従って記憶素子のページを同時に読み出し、プログラミングするための読み出し/書き込み回路を有するメモリ素子596を示す。メモリ素子596は、1つ以上のメモリダイ598を有する。メモリダイ598は、2次元のアレイの記憶素子400、制御回路510、及び、読み出し/書き込み回路565を有する。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ400は行復号部530を介してワードラインによって、及び、列復号部560を介してビットラインによってアドレスできる。読み出し/書き込み回路565は複数の検出ブロック500を有しており、1ページの記憶素子を並列に読み出し又はプログラムすることができる。一般に、制御部550は、1つ以上のメモリダイ598のように同じメモリ素子596(例えば、取り外し可能なストレージカード)内に含まれる。コマンド及びデータは、ライン520を介してホストと制御部550の間、及び、ライン518を介して制御部と1つ以上のメモリダイ598の間で送られる。
制御回路510は、読み出し/書き込み回路565と協調して、メモリアレイ400上でメモリ動作を実行する。制御回路510は、状態マシン512、オンチップアドレスデコーダ514、温度検出回路515、及び電力制御モジュール516を含む。状態マシン512は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ514は、ホストまたはメモリコントローラによって使用されるとともに、デコーダ530と560によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。温度検出回路515は、さらに後述されるように、プログラム動作で使用するための温度に基づいた信号またはデータを提供するために使用できる。電力制御モジュール516は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
いくつかの実装例では、図5の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ400以外の(単独又は組み合わせた)1つまたは複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路510、状態マシン512、デコーダ514/560、温度検出回路515、電力制御516、検出ブロック500、読み出し/書き込み回路565、制御部550等の内の任意の一又は組み合わせを含んでよい。
温度検出回路515に関して、NANDフラッシュメモリ素子等の現在の不揮発性記憶素子では、温度の変動が、データを読み出し、書き込む上で多様な問題を引き起こす。メモリ素子は、それが位置する環境に基づいて変化する温度にさらされる。例えば、いくつかの現在のメモリ素子は、−30℃から+85℃の間での使用のために定格されている。産業用の用途、軍事用途、及び消費者用途でも素子は大きな温度変動を経験することがある。
温度補償信号を提供するための多様な技法が知られている。これらの技法の一又は複数は、VOPTIMALに温度依存性を与えるために使用できる。この技法も可能ではあるが、これらの技法の大部分は実際の温度測定値を得ることに依存していない。例えば、本明細書に参照して組み込まれる、「Voltage Generation Circuitry Having Temperature Compensation」と題する米国特許第6,801,454号は、温度係数に基づいて、読み出し電圧を不揮発性メモリに出力する電圧生成回路を説明する。回路は、温度から独立した部分、及び、温度が上昇するにつれて増加する温度依存部分を含むバンドギャップ電流を使用する。本明細書に参照して組み込まれる、「Non−Volatile Memory With Temperatre−Compensated Data Read」と題する米国特許第6,560,152号は、データ記憶素子のソース又はドレインに印加される電圧を印加するバイアス発生器回路を使用する。任意の他の既知の技法だけではなく、これらの技法のどれかも、温度検出回路515によって使用できる。
別の実施形態では、不揮発性メモリシステムは、二重の行/列デコーダ及び読み出し/書き込み回路を使用する。メモリアレイ400に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施され、これによって各側のアクセスライン及び回路の密度が半減される。したがって、行デコーダは2つの行デコーダに分割されており、列デコーダは2つの列デコーダに分割されている。同様に、読み出し/書き込み回路は底部からビットラインに接続する読み出し/書き込み回路と、アレイ400の上部からビットラインに接続する読み出し/書き込み回路に分割される。このようにして、読み出し/書き込みモジュールの密度は、基本的に2分の1、削減される。
図6は、検出ブロックの一実施形態を示すブロック図である。個々の検出ブロック500は、検出モジュール580と呼ばれるコア部分、及び共通部分590に区切られる。一実施形態では、ビットラインごとに別個の検出モジュール580、及び、複数の検出モジュールの一組に1つの共通部分590がある。一例では、検出ブロックは、1つの共通部分590及び8つの検出モジュール580を含む。グループ内の検出モジュールのそれぞれが、データバス572を介して関連付けられた共通部分と通信する。
検出モジュール580は、接続されているビットラインの導通電流が所定の閾値レベルを超えているのか、それとも下回っているのかを判断する検出回路570を含む。検出モジュール580は、接続されたビットライン上で電圧状態を設定するために使用されるビットラインラッチ582も含む。例えば、ビットラインラッチ582で所定の状態にラッチされることにより、接続されたビットラインは、プログラム禁止(例えば、1.5から3V)を指定する状態にプルされることになる。
共通部分590は、プロセッサ592、一組のデータラッチ594、及び、一組のデータラッチ594とデータバス520の間に結合されているI/Oインタフェース596を含む。プロセッサ592は、計算を実行する。例えば、その機能の1つは、検出された記憶素子に記憶されるデータを特定し、一組のデータラッチにその決定されたデータを記憶することである。一組のデータラッチ594は、読み出し動作の間にプロセッサ592によって決定されるデータビットを記憶するために使用される。それは、プログラム動作中にデータバス520からインポートされるデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリの中にプログラミングされるべきことを意味する書き込みデータを表す。I/Oインタフェース596は、データラッチ594とデータバス520の間のインタフェースを提供する。
読み出し又は検出の間、システムの動作は、アドレス指定された記憶素子に対する異なる制御ゲート電圧の供給を制御する状態マシン512の制御下にある。メモリによってサポートされる多様なメモリ状態に対応する多様な所定の制御ゲート電圧をステップ単位で実行するにつれ、検出モジュール580がこれらの電圧の内の1つでトリップすることがあり、出力がバス572を介して検出モジュール580からプロセッサ592に提供される。その時点で、プロセッサ592は、入力回線593を介して、検出モジュールのトリップ事象及び状態マシンからの印加制御ゲート電圧についての情報を検討することによって、結果として生じるメモリ状態を決定する。次に、それは、メモリ状態を2進コード化し、結果として生じるデータビットをデータラッチ594の中に記憶する。コア部分の別の実施形態では、ビットラインラッチ582は、検出モジュール580の出力をラッチするためのラッチとして、また、上述されたビットラインラッチとして二重の役割を果たす。
いくつかの実装例は、複数のプロセッサ592を含むことがある。一実施形態では、出力ラインのそれぞれがともにワイヤードOR化されるように、各プロセッサ592が出力ライン(不図示)を含む。いくつかの実施形態では、出力ラインは、ワイヤードORラインに接続される前に反転される。ワイヤードORを受け取る状態マシンは、プログラミングされている全てのビットがいつ所望されるレベルに達したのかを判断できるため、この構成によって、いつプログラミングプロセスが完了したのかの、プログラム検証プロセスの間の迅速な判断が可能になる。例えば、各ビットがその所望されたレベルに達すると、そのビットの論理ゼロがワイヤードORラインに送られる(またはデータ1が反転される)。全てのビットがデータ0(又は反転されたデータ1)を出力すると、次に状態マシンはプログラミングプロセスを終了しなければならないことを知る。各プロセッサは8つの検出モジュールと通信するため、状態マシンはワイヤードORラインを8度読み出す必要がある。つまり、論理がプロセッサ592に追加され、状態マシンがワイヤードORラインを1度だけ読み出せばよいように、関連付けられたビットラインの結果を蓄積する。同様に、論理レベルを正しく選ぶことによって、グローバル状態マシンはいつ第1のビットがその状態を変更するのかを検出し、アルゴリズムを適切に変更する。
プログラミング又は検証の間に、プログラミングされるデータは、データバス520から一組のデータラッチ594に記憶される。状態マシンの制御下にあるプログラム動作は、アドレス指定された記憶素子の制御ゲートに印加される一連のプログラミング電圧パルスを含む。各プログラミングパルスの後ろには、記憶素子が所望されるメモリ状態にプログラミングされたかどうかを判断するために読み返し(検証)が続く。プロセッサ592は、所望されるメモリ状態に関して読み返しメモリ状態を監視する。この2つが一致するとき、ビットラインがプログラム禁止を指定する状態にプルされるように、プロセッサ592がビットラインラッチ582を設定する。これが、プログラミングパルスがその制御ゲートに出現したとしても、ビットラインに結合された記憶素子がさらにプログラミングされるのを禁止する。他の実施形態では、プロセッサはビットラインラッチ582を初期にロードし、検証プロセスの間に検出回路がそれを禁止値に設定する。
データラッチスタック594は、検出モジュールに対応するデータラッチのスタックを含む。一実施形態では、検出モジュール580ごとに3つのデータラッチがある。(必須ではないが)いくつかの実装例では、データラッチは、その中に記憶される並列データが、データバス520用のシリアルデータに変換され、逆の場合も同じとなるように、シフトレジスタとして実装される。好ましい実施形態では、データのブロックをシリアル転送によって入力又は出力できるように、m個の記憶素子の読み出し/書き込みブロックに対応する全てのデータラッチがともにリンクしてブロックシフトレジスタが形成され得る。特に、読み出し/書き込みモジュールのバンクは、一組のデータラッチのそれぞれが、あたかもそれらが読み出し/書き込みブロック全体のためのシフトレジスタの一部であるかのように、データをデータバスの中に又はデータバスの中から次々とシフトするように適応される。
図7は、全ビットラインメモリアーキテクチャ用、又は、奇数−偶数メモリアーキテクチャ用のブロックへのメモリアレイの編成の例を示す。メモリアレイ400の例示的な構造が説明される。一例として、1024個のブロックに区切られるNANDフラッシュEEPROMが説明される。各ブロックに記憶されるデータは、同時に消去され得る。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックにビットラインBL0、BL1、...BL8511に対応する8,512の列がある。全ビットライン(ABL)アーキテクチャ(アーキテクチャ710)と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラム動作の間に同時に選択され得る。共通ワードラインに沿った、任意のビットラインに接続された記憶素子は、同時にプログラミングされ得る。
提供されている例では、4個の記憶素子が直列で接続され、NANDストリングを形成する。4個の記憶素子が各NANDストリングに含まれるように示されているが、4個以上又は4個未満(例えば、16、32、64、又は別の数)を使用できる。NANDストリングの1つの端子はドレイン選択ゲートを介して対応するビットラインに接続され(ゲートドレインラインSGDを選択するために接続され)、別の端子はソース選択ゲートを介してc−ソースに接続される(ゲートソースラインSGSを選択するために接続される)。
奇数−偶数アーキテクチャ(アーキテクチャ700)と呼ばれる別の実施形態では、ビットラインは偶数ビットライン(BLe)及び奇数ビットライン(BLo)に分割される。奇数/偶数ビットラインアーキテクチャでは、共通ワードラインに沿った、奇数ビットラインに接続された記憶素子は、一度にプログラミングされる。一方、共通ビットラインに沿った、偶数ビットラインに接続された記憶素子は別のときにプログラミングされる。この例では、各ブロックに偶数列及び奇数列に分割される8,512の列があり、64個の記憶素子が1列内に直列で接続され、NANDストリングを形成するのが示されている。
読み出し動作及びプログラム動作の1つの構成の間に、4,256個の記憶素子が同時に選択される。選択された記憶素子は、同じワードライン及び同種のビットライン(例えば、偶数又は奇数)を有する。したがって、論理ページを形成する532バイトのデータを同時に読み出す、又はプログラミングすることができ、メモリの1ブロックが少なくとも8論理ページ(奇数ページ及び偶数ページにそれぞれ4ワードライン)を記憶できる。マルチ状態の記憶素子の場合、各記憶素子が2ビットのデータを記憶し、これらの2個のビットのそれぞれが異なるページに記憶されるとき、1ブロックは16論理ページを記憶できる。また、他のサイズのブロック及びページも使用できる。
ABLアーキテクチャ又は奇数−偶数アーキテクチャどちらかの場合、記憶素子は、p−ウェルを消去電圧(例えば20V)に上昇させ、選択されたブロックのワードラインを接地することによって消去され得る。ソースライン及びビットラインはフローティングしている。消去はメモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行され得る。電子は、記憶素子のVTHが負になるように、記憶素子のフローティングゲートからp−ウェル領域に転送される。
読み出し動作及び検証動作では、選択ゲート(SGD及びSGS)が2.5から4.5Vの範囲の電圧に接続され、非選択のワードライン(例えば、WL2が選択されたワードラインであるとき、WL0、WL1、及びWL3)が読み出しパス電圧VREAD(通常、4.5から6Vの範囲の電圧)に上昇され、トランジスタをパスゲートとして動作させる。選択ワードラインWL2はある電圧に接続され、その電圧のレベルは、対象の記憶素子のVTHがそのレベルを上回っているのか、それとも下回っているのかを判断するために、各読み出し動作及び検証動作ごとに指定される。例えば、2レベルの記憶素子のための読み出し動作では、選択ワードラインWL2が接地され、VTHが0ボルトよりも高いかどうかが検出され得る。2レベルの記憶素子のための検証動作では、選択ワードラインWL2は、例えば0.8Vに接続され、その結果、VTHが少なくとも0.8Vを超えたかどうかが検証される。ソース及びp−ウェルは0Vである。偶数ビットライン(BLe)であると仮定される選択ビットラインは、例えば0.7Vというレベルにプリチャージされる。VTHがワードラインの読み出しレベル又は検証レベルよりも高い場合には、対象の記憶素子と関連付けられたビットライン(BLe)の電位レベルは、非導電性記憶素子のために高レベルに維持される。他方、VTHが読み出しレベル又は検証レベルよりも低い場合には、関係するビットライン(BLe)の電位レベルは、導電性記憶素子がビットラインを放電するため、例えば0.5V未満等の低レベルに減少する。したがって、記憶素子の状態が、ビットラインに接続されている電圧コンパレータ検出増幅器により検出され得る。
図8は、一組の閾値電圧分布及びワンパスプログラミングの例を示す。記憶素子アレイのための例示の閾値電圧分布は、各記憶素子が2ビットのデータを記憶する場合に提供される。第1の閾値電圧分布800は、消去された(状態E)記憶素子に提供される。3つの閾値電圧分布802、804、及び806は、それぞれプログラミングされた状態A、B及びCを表す。一実施形態では、E分布内の閾値電圧は負であり、A、B及びC分布内の閾値電圧は正である。分布803、805及び807は、状態A、B、Cの記憶素子がそれぞれ、最終分布802、804、806に達する前に経験する一時的で過渡的な分布を表す。例えば、分布803は、状態AにプログラムされるべきA状態記憶素子のいくつか又は一部が、すでに状態Aに達していることを示す。これらの記憶素子は、閾値電圧VTH>Vvaとなっており、A状態に達したと検証される。残りのA状態記憶素子は、閾値電圧VTH<Vvaとなっており、未だA状態に達していない。
同様に、分布805は、状態BにプログラムされるべきB状態記憶素子のいくつか又は一部が、すでに状態Bに達していることを示し、分布807は、状態CにプログラムされるべきC状態記憶素子のいくつか又は一部が、すでに状態Cに達していることを示す。特定の状態にある記憶素子の数は、その閾値電圧が対応する検証レベルを上回るとされた記憶素子をカウントすることによって、特定することができる。
それぞれの独立した閾値電圧範囲は、一組のデータビットの所定値に対応する。記憶素子にプログラミングされたデータと記憶素子の閾値電圧レベルの特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。一実施形態では、フローティングゲートの閾値電圧が誤ってその隣の物理状態にシフトすると、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となるように、当該集合が消去される場合がある。図13の制御ゲート電圧シーケンスによって示されるような一連のプログラミングパルスは、記憶素子を直接的に状態A、B、又はCにプログラミングするために使用される。いくつかの記憶素子は状態Eから状態Aにプログラムされ、他の記憶素子は状態Eから状態Bに、及び/又は、状態Eから状態Cにプログラミングされる。WLn上で状態Eから状態Cにプログラミングするときには、WLn下のフローティングゲート上の電荷の量の変化が、状態Eから状態Aに、又は、状態Eから状態Bにプログラミングするときの電荷の変化と比較して最大となるので、WLn―1下の隣接フローティングゲートに対する寄生結合の量は最大値に達する。状態Eから状態Bにプログラミングするときは、隣接フローティングゲートへの結合の量はより少ない。状態Eから状態Aにプログラミングするときは、結合の量はさらに削減される。
図9は、2つの異なるページ(下側ページと上側ページ)に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図8の閾値電圧分布800、802、804および806の繰り返しで4つの状態が示されている。これらの状態およびその示すビットは、状態E(11)、状態A(10)、状態B(00)及び状態C(01)である。状態Eの場合、両方のページが「1」を記憶する。状態Aの場合、下側ページが「0」を記憶し、上側ページが「1」を記憶する。状態Bの場合、両方のページが「0」を記憶する。状態Cの場合、下側ページが「1」を記憶し、上側ページが「0」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
第1プログラミングパスでは、記憶素子の閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「1」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「0」であれば、矢印900で示したように、記憶素子の閾値レベルは状態Aになるように増大される。これによって、第1プログラミングパスを終了する。
第2プログラミングパスでは、記憶素子の閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「1」を記憶する場合、記憶素子は下側ページビットのプログラミングに依存する状態E又はAの一方であり、どちらも上側ページビットは「1」を保持するのでプログラミングは生じない。上側ページビットが論理「0」となる場合、閾値電圧はシフトされる。第1パスによって記憶素子が消去状態Eに留まっていれば第2段階で記憶素子をプログラムし、矢印920で示したように閾値電圧が状態C内になるように増大させる。第1プログラミングパスの結果として記憶素子が状態A内にプログラムされれば、記憶素子はさらに第2パスでプログラムされ、矢印910で示したように閾値電圧が状態B内になるように増大させる。第2パスの結果は、下側ページ用のデータを変更することなく、上側ページの論理「0」を記憶するように指定した状態に記憶素子をプログラムすることである。図8および9の両方において、隣接するワードライン上のフローティングゲートへの結合量は最終状態に依存する。
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラミングする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体(又は大部分)を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。
図9の分布802、804、806はそれぞれ、状態A、B、Cの記憶素子が最終分布802、804、806に達する前に経験する一時的で過渡的な分布(図8に示されている)を伴ってもよい。
図10aから図10cは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合効果を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、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(分布1000)に留まる。データが0にプログラムされる場合、記憶素子の電圧の閾値は、記憶素子が状態B’(分布1010)にプログラミングされるように引き上げられる。状態B’は、中間状態又はあいまいな状態である。従って、図10aは、状態Eから状態B’への記憶素子のプログラミングを示している。状態B’は暫定的状態Bであり、従って、検証点はVvb’として示され、Vvbより低い。
分布1010は、状態B’の記憶素子が分布1010に達する前に経験する一時的で過渡的な分布(図示されず)を伴ってもよい。
一実施形態では、状態Eから状態B’に記憶素子をプログラムした後、NANDストリング内の隣接記憶素子(WLn+1)をその下側ページに対してプログラムする。例えば、図2を見直すと、記憶素子106用の下側ページをプログラムした後、記憶素子104の下側ページをプログラムする。記憶素子104をプログラムした後、記憶素子104が状態Eから状態B’に上昇した閾値電圧を有していた場合、フローティングゲート間結合の影響は記憶素子106の見かけの閾値電圧を上昇させる。これは、図10bの閾値電圧分布1012に示したように状態B’の閾値電圧分布を拡大する効果を有する。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。また、状態Eは、分布1002によって示されるように、より少ない範囲に広げられてもよい。
図10cは、上側ページをプログラムする工程を示している。記憶素子が消去状態Eであって上側ページが1に留まる場合、記憶素子は状態E(分布1002)に留まる。記憶素子が状態Eであり、その上側ページデータが0にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態A(分布1004)になる。記憶素子が中間の閾値電圧分布1012であって上側ページデータが1に留まる場合、記憶素子は最終状態B(分布1006)にプログラムされる。記憶素子が中間の閾値電圧分布1012であって上側ページデータがデータ0になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態C(分布1008)になる。図10a−cに示す工程は、対して、隣接する記憶素子への上側ページのプログラムのみが、特定の記憶素子の明確な閾値電圧に影響を与えるので、フローティングゲートのフローティングゲートカップリングへの影響を低減することができる。選択的な符号化の一例は、分布1012を、上側ページが1であれば状態Cへ遷移させ、上側ページが0であれば状態Bへ遷移させる。
分布1004、1006、1008はそれぞれ、状態A、B及びCの記憶素子が最終分布1004、1006及び1008に達する前に経験する一時的で過渡的な分布を伴ってもよい。
図10aから図10cは、4つのデータ状態、及び、2ページのデータに関しての例を提供するが、教示される概念は、4つの状態より多い又は少なく、2ページより多い又は少ない他の実装例に適用できる。例えば、記憶素子ごとに8つ又は16の状態のあるメモリ素子が、現在、計画されている、又は生産中である。
図11は、NANDストリングの断面図であり、ブースト中のチャネル接合漏れを示す。断面図は、制御ゲート(CG)、つまり複数の記憶素子を横切って延在する、選択されたワードライン1100を示す。各記憶素子は、例えばFG1102、1104、及び1106等の、通常はp−ウェル内の基板のそれぞれのチャネル領域1108、1110、1112の上方にあるフローティングゲート(FG)を含む。各チャネル領域は、ページから出現するとして視覚化できるNANDストリングの一部である。この例では、チャネル領域1110は、禁止されたストリングの領域であり、チャネル領域1108及び1112はプログラミングされたストリングの領域である。Vboost>0Vは、チャネル領域1110のブーストされた電圧電位を表す。
図3に関して前述されたように、非選択NANDストリング内にある記憶素子は、プログラミングを禁止し、それによってプログラム外乱を回避するためにプログラム動作中に、それらのチャネルがブーストされる。ブーストは、通常、プログラム電圧Vpgmが選択ワードラインに印加されている間に、通過電圧Vpassを非選択のワードラインに印加することによって達成される。ただし、Vpassが高すぎることはあってはならず、さもなければVpassは非選択のNANDストリングをプログラムしてしまう。ブーストは、フローティングゲート全体の電圧を低下させることによって、フローティングゲートのプログラミングを禁止する。最もプログラム外乱の影響を受けやすい禁止された記憶素子は、選択されたワードライン1100と連通し、したがって相対的に高いプログラム電圧Vpgmを受ける記憶素子である。非選択のワードラインと連通する禁止された記憶素子は、その制御ゲートでプログラム電圧の代わりにより低い通過電圧Vpassを有し、したがってプログラム外乱の影響を受けにくい。
NANDフラッシュメモリが縮小を続けるにつれ、2つの隣接するチャネルの間の結合がより強くなるため、チャネルブーストはより難しくなる傾向がある。チャネルブースト電位は特定のレベルで飽和又は固定されることがある。このレベルを超えると、たとえVpassがさらに増加されても、チャネルブースト電位は大きく増加できない。禁止されている所与の記憶素子の場合、隣接する記憶素子の両方ともがプログラミングされているときと同様に、このチャネルブースト飽和は、同じワードラインに接続される2つの隣接する記憶素子のチャネルが、0V等の低電圧に留まるときに最も深刻である。例えば、チャネル1110はブースト電圧Vboostによって禁止され、チャネル1108及び1112は禁止されておらず、例えば0Vを受け取っている。雑/ファインプログラム動作の細かい段階のようないくつかの場合、選択されたNANDストリングのチャネルは、プログラミングを減速するために、0.5Vへ等、0Vをわずかに上回って上げることができる。ただし、このレベルも、数ボルトであり得るVboostより著しく低い。
ブースト電位飽和は、深刻なプログラム外乱問題を引き起こすことがある。例えば、あるワードライン上のいくつかの記憶素子が、記憶素子メモリ素子ごとに3ビット及び4ビットにおいて等、高閾値電圧にプログラミングされると、プログラム電圧は非常に高レベルまで増加できるが、チャネル電位は、ブースト飽和のため十分に増加できない。プログラム外乱は、このプログラミングの状況、及び他のプログラミングの状況で容易に起こり得る。
特に、チャネルブースト飽和は、チャネルブースト電位が高いときに、記憶素子のソース/ドレイン領域内の接合漏れによって引き起こされることがある。ただし、プログラミングパルス幅が削減されるとき、ブースト飽和を改善することができ、したがってブースト電位はより高くなる。これは、接合漏れ期間がより短いためである可能性がある。隣接するチャネルでの電位は、中心ブーストチャネルの側面方向電場εxを強力に変調し、接合漏れに影響を与えることができる。シャロートレンチアイソレーションをゲート酸化膜として、近傍チャネルをゲートとして見ると、この影響は、漏れがゲート電圧によって強力に変調されるゲート誘導ドレインリークにわずかに類似している。垂直の電場εyも示されている。電子正孔対1111が強力な電場によって生成される。
図12aは、近傍チャネルがブーストされている、及びブーストされていないときのチャネルブースト電位を示す。横軸は、非選択ワードラインに印加される通過電圧(Vpass)を示し、縦軸は、図11のチャネル1110等、禁止/ブーストされたチャネルのチャネルブースト電位(Vboost)を示す。チャネルブースト電位は、隣接するチャネルの電位に左右される。隣接チャネルの両方とも禁止されるとき(曲線1200)、Vboostは最高になる。隣接チャネルの内の一方が禁止/ブーストされ、他方の隣接チャネルが通電中である/ブーストされておらず、チャネル電位が0Vであるとき(曲線1202)、Vboostは2番目に高くなる。隣接チャネルの両方とも通電中であるとき(曲線1204)、Vboostは、最悪のケースである最低になる。いくつかの場合、曲線1200及び1204は、数ボルトの範囲内でのブーストが使用されるとき、少なくとも2V、異なることがある。
図12bは、温度の関数としてチャネルブースト電位を示す。ブースト飽和は、強力な温度依存を有する。高温で、ブーストはより難しくなり、チャネル中の高い逆バイアス漏れ電流のために、チャネル電位はより低いレベルで飽和する。低温では逆バイアス漏れ電流がはるかに低くなるので、状況は改善され、より高いVboostが達成できる。示されているグラフでは、所与のチャネルの場合、隣接チャネルの両方共が通電中である。室温の場合は、図12aにも示されている曲線1204に相当する。曲線1206は、−30℃等のより低温でのVpassの関数としてのVboostを表し、曲線1208は、+85℃等のより高温でのVpassの関数としてのVboostを表す。言及されたように、Vboostは、より高温でより低くなる。
図12cは、プログラミングパルス幅及び選択されたワードラインの位置の関数としてチャネルブースト電位を示す。縮小されたプログラミングパルス幅、つまり期間は、ブースト飽和を改善し、より高いブースト電位を達成できるようにする。これは、接合漏れ持続時間がより短くなるためである可能性がある。ここでは、横軸はプログラミングパルス(Vpgm)幅を示し、縦軸はVboostを示す。一般に、短いパルス幅は、より高いVboostと相関する。
プログラミングパルス幅を、名目幅の2分の1又は3分の1等に縮小すると、Vboostを大量に増加することができ、それによってプログラム外乱を大幅に削減できる。ある場合では、プログラミングパルス幅を20μsから10μsに削減すると、Vboostは約0.5Vと、かなり増加した。プログラミングパルス幅に対するより低い実際的な限度は、図14に関連してさらに説明されるように課される。
さらに、チャネルは多くの場合、選択されたワードラインが、中間のワードライン(曲線1212)又はソース側ワードライン(曲線1210)よりもドレイン側ワードライン(曲線1214)であるとき、より早期に飽和し得る。これは、例えば、0V等の分離電圧が、プログラミングパルス中に選択ワードラインのソース側の少なくとも1つのワードラインに印加されるいくつかのブースト方式の場合に当てはまる。分離電圧は、ドレイン側からチャネルのソース側を切断し、ドレイン側プログラミング中に、ブーストがより低くなるようにチャネル容量はより小さくなることがある。したがって、短いパルス幅への切り替えは、より高いワードラインの場合により早く発生することがある。
すなわち、Vboostは、ドレイン側の選択ワードラインの場合、所与のVpgmパルス幅にとってより低い。図7に示されるワードライン番号付け方式を使用すると、最も遠いソース側ワードラインはWL0(ワードライン番号0)であり、ワードライン番号は、この例ではWL63である、最も遠いドレイン側のワードラインに達するまで増加する。ソース側ワードラインは、最も遠いソース側ワードラインの内の数Nssのワードラインの範囲内にあるワードラインを包含することがある。ドレイン側ワードラインは、最も遠いドレイン側ワードラインの数Ndsのワードラインの範囲内にあるワードラインを包含することがある。中間ワードラインは、ソース側ワードラインとドレイン側ワードラインの間にあるワードラインを包含することがある。プログラミングのために選択されるワードラインがここで参照されていることに留意されたい。
プログラミングパルスの期間を短縮すると、プログラム動作を完了するために必要とされるプログラミングパルス数を増加させることになり、長い期間のパルスが使用される場合よりも、より高い振幅のプログラミングパルスが必要となることもある。しかしながら、より短いパルス期間によれば、記憶素子の閾値電圧はより小さい増分で増加し、きめの細かいプログラム動作を行うことができる。さらに、それぞれの短いパルスの後の検証をパスした記憶素子は早期にロックアウトできるので、全体的なプログラミング時間は、大幅に増加すると予想されない。
図12dは、選択ワードライン位置に基づいて調整された、温度(横軸)の関数としてのプログラミングパルス数(縦軸)に関して切替ポイントを示す。言及されたように、より高いVboostを達成する1つの手法は、所与の禁止チャネルの場合、短縮された期間のプログラミングパルスを使用することである。概念的には、これは、1つの長いプログラミングパルスを、2つ以上の短いパルスに分けることを伴う。長い期間のプログラミングパルスから、短い期間のプログラミングパルスへの切り替えは、一又は複数の基準に基づいたプログラム動作を通してある程度までは起こり得る。1つの考えられる手法は、所定のプログラミングパルス数で、つまりプログラム動作で適用されるあるN1番目のプログラミングパルスで切り替えることである。また、さらに以下に説明される図13も参照すること。パルス数は通常パルス振幅に対応するので、本来、切り替えは、プログラミングパルスの振幅が所定レベルに達すると発生する。
よりきめの細かい手法は、温度及び/又は選択ワードラインの位置を考慮する。例えば、図12dで、曲線1224は、選択ワードラインがドレイン側ワードラインであるときのN1対温度を示し、曲線1222は、選択ワードラインが中間ワードラインであるときのN1対温度を示し、曲線1220は、選択されたワードラインがソース側ワードラインであるときのN1対温度を示す。温度T1とT2の間の低温から中温までの範囲の温度では、それらの曲線は合致するが、短い期間のプログラミングパルスへの切り替えが、プログラム動作において相対的に遅くなされるように、より高いN1を採用することができ、そのときプログラミングパルスは比較的に高い振幅に達している。T2とT3の間のより高温の範囲では、短い期間のプログラミングパルスへの切り替えが、プログラム動作において相対的に早くなされるように、より低いN1を採用することができ、そのときプログラミングパルスの振幅は、それほど高くなっていない。この方式を使用することによって、チャネルブースト電位飽和の問題は緩和することができ、したがって高いVpgmでのプログラム外乱が削減される。
1つの手法では、図12dに示されるような曲線を作成するために多くのメモリ素子が試験され、メモリ素子の制御回路は、この曲線に基づいて切り替えを実装するように構成される。曲線は、表内のデータ点によって画定されてよい。制御回路は、本明細書中に提供される他の曲線を実装するように同様に構成されてよい。
図12eは、温度の関数としてのトリガ状態に関して切替ポイントを示す。短い期間のプログラミングパルスへの切り替えを実装するための別の手法は、特定のデータ状態へプログラミングされている記憶素子を追跡することを含む。切り替えは、記憶素子の所定の部分が、その特定のデータ状態に達するために検証されるときにトリガできる。通常、プログラム動作中の各プログラミングパルスの後に発生する検証動作は、追加の検証動作が必要とされないように使用できる。一般に、データは、記憶素子あたり整数N>1ビットを使用して(例えば、記憶素子あたり4つ以上の状態及び2つ以上のビット)2データ状態に符号化され、ほぼ等しい数の記憶素子がそれぞれの状態にプログラミングされる符号化方式が使用される。例えば、4つの状態、つまりE、A、B及びCで、選択ワードライン上の記憶素子の約4分の1がE状態にプログラミングされ、記憶素子の別の4分の1がA状態にプログラミングされ、記憶素子の別の4分の1がB状態にプログラミングされ、記憶素子の別の4分の1がC状態にプログラミングされる。したがって、記憶素子の異なる部分集合が、異なる状態、つまり1つの状態当たり1つの部分集合にプログラミングされる。
したがって、例えば使用可能な4つ以上の状態の内の1つ等特定の状態が、トリガ状態として選択できる。切り替えは、その特定の状態にプログラミングされることが意図される記憶素子の所定部分が、その特定のデータ状態に到達するために検証されると、トリガできる。例えば、状態Aがトリガ状態であり、ワードライン上の1024個の記憶素子がプログラミングされており、256個の記憶素子がE状態に留まり、256個の記憶素子がA状態にプログラミングされ、256個の記憶素子がB状態にプログラミングされ、256個の記憶素子がC状態にプログラミングされると仮定する。切り替えは、選択されたワードラインの256個のA状態の記憶素子の内の所定の部分がA状態に達したと検証されると、トリガできる。所定の部分は、記憶素子の内の数N2、分数、割合等で表すことができる。例えば、N2は128個の記憶素子であり、A状態の記憶素子の2分の1を表すことがある。
さらに、切り替え状態は、例えばとり得る4つの状態があるときのA状態のような、最低位の状態に固定することもできる。又は、切り替え状態は、温度等の基準に基づき動的に且つ適応的に選択できる。温度が、例えばT1からT2までといった低温のときよりも、例えばT2からT3までといった高温のときに、より低い切り替え状態を選択することができる。より低い切り替え状態は、より高い切り替え状態と比較して、プログラミングプロセスにおいて比較的に早期の切り替えを生じさせる。例えば、4つのデータ状態があるとき、切り替え状態は、温度がT1からT2までの場合、状態Aであってよく、T2からT3までの場合、状態Bであってよい。最低位から最高位まで8つのデータ状態、E、A、B,C、D、E、F、及びGがある場合、トリガ状態は、より高温の場合、例えばD状態であってよく、より低温の場合、F状態であってよい。2つ以上の切り替え状態も使用され得る。
例えばドレイン側ワードラインの場合はトリガ状態1、及びソースワードライン及び中間ワードラインの場合はトリガ状態2等、トリガ状態は、各ワードラインに、又はワードラインのグループに合わせることができる。例えば、ドレイン側ワードラインの場合T2=温度1、及びソース及び中間ワードラインの場合T2=温度2等、例えばT2等異なるトリガ状態が示される温度を、各ワードラインに、又はワードラインのグループに合わせることも可能である。
図12fは、温度の関数として、トリガ状態に達するための記憶素子の数に関して切替ポイントを示す。追加のオプションでは、いったん切り替え又はトリガ状態が、温度を基準にして所定の状態又は動的に選択された状態のどちらかとして判断されると、切替ポイントは温度の関数としてさらに改良できる。特に、所定の部分、つまり記憶素子の数N2が特定のデータ状態に到達したと検証されると、切り替えをトリガできることが言及された。ここでは、N2は、温度がより高いときにN2がより低くなり、温度がより低いときにN2がより高くなるように温度の関数として変化する。水平目盛は、トリガ状態の温度範囲を示す。
例えば、図12fの温度範囲は、T1からT2に、又はT2からT3に広がってよい(図12eを参照)。所与のトリガ状態の場合、短い期間のプログラミングパルスへの切り替えは、温度がトリガ状態の温度の範囲内で相対的により高いときに、相対的に早く発生する。同様に、短い期間のプログラミングパルスへの切り替えは、温度がトリガ状態の温度の範囲内で相対的により低いときに、相対的に遅く発生する。例えば、状態Aがトリガ状態であり、温度がその状態の範囲のハイエンドにある場合、N2は、状態Aにプログラミングされている選択されたワードラインの記憶素子の70%である数を表してよく、例えば、考えられる4つの状態を仮定すると、選択されたワードライン上の記憶素子の70%×1/4と同じであってよい。温度が状態の範囲のローエンドにある場合、N2は例えば90%の比較可能な値を表してよい。
割合単位で、非常に遅い又は速いプログラミング記憶素子に起因する予期せぬ結果を回避するため、N2は0%又は100%に近い値を回避する必要がある。試験又はシミュレーションは、N2の最適値を識別するために使用できる。例えば、特定の温度でのワードライン上の記憶素子は、N2の特定の値でプログラミングし、読み戻すことができる。読み出し時、ビットエラー数を決定できる。このプロセスは、最低数のエラーを生じさせる値を見つけるためにN2の異なる値で繰り返すことができる。さらに、例えば、ドレイン側ワードラインの場合N2=値1、及びソース及び中間ワードラインの場合N2=値2等、N2は、各ワードラインに、又はワードラインのグループに合わせることができる。
図13は、プログラム動作でのプログラミングパルスを示し、プログラム動作の途中でプログラミングパルスの期間を短縮する切り替えが行われている。言及されたように、短い期間のプログラミングパルスを使用する分割プログラミングパルス幅手法は、より高いブースト電圧を達成できる。Vpgmが特定のレベルに達すると、Vpgmレベル及びプログラムサイクルの総プログラム時間を維持しながら、そのプログラミングパルスを2つ以上の短いパルスに分割する。それぞれの短いプログラミングパルスの後、チャネルを放電してから、チャネルを再ブーストし、次の短いプログラミングパルスの間、ブースト電位が高いことを確実にする。それぞれの短いプログラミングパルスの後、検証動作を実行することもできる。これは、プログラミングパルスを印加した後に検証動作が続かないことに比較し、プログラム動作を低速化することになるが、この手法では、それぞれの短いパルスの後に検証に合格したビットをロックアウトし、その両側の禁止されたチャネルがプログラミングされることを抑制することができ、ブーストのための最悪のケースの可能性を削減できる。また、一部の短いプログラミングパルスの後に検証動作を行いつつ、検証動作なしで2つ以上の連続する短いプログラミングパルスを印加することも可能である。
一般に、プログラム動作は、パルス列を選択されたワードラインに印加することを含み、パルス列は、一又は複数の検証パルスが後に続くプログラミングパルスを含む。プログラミングパルスは、任意の数の異なる波形形状を有することがあることに留意されたい。矩形波が示されているが、マルチレベル形状又は傾斜形状等の他の形状も考えられる。さらに、より長い期間のパルスから、短い期間のパルスへのプログラミングパルス期間の切り替えは、パルス列の間に発生することがある。パルス列1300は、それぞれ時間t0からt9に、プログラミングのために選択されたワードラインに印加される、一連のプログラミングパルス1305、1310、1315、1320、1325、1330、1335、1340、1345、1350、...を含む。一実施形態では、プログラミングパルスは、12Vで開始し、例えば20から25V等の最大値に達するまで、それぞれの連続プログラミングパルスごとに、例えば0.5Vの増分で増加する電圧VPGMを有する。プログラミングパルスの間には、検証動作で使用される例えば3つの検証パルス等の検証パルスがある。いくつかの実施形態では、例えば状態A、B、及びC等、データがプログラミングされている状態ごとに検証パルスがある場合がある。他の実施形態では、より多くの又はより少ない検証パルスがある場合がある。各組の検証パルスは、例えば、Vva、Vvb、及びVvc(図9)又はVvb’(図10a)という振幅を有する場合がある。例の検証パルス1306が、プログラミングパルス1305に続き、例の検証パルス1307がプログラミングパルス1335に続く。
切替ポイント1303は、プログラミングパルス1305、1310、1315、1320、1325、及び1330等の(期間△tlの)長い期間のプログラミングパルスが使用される第1のプログラミングパルス列1301と、プログラミングパルス1335、1340、1345及び1350等の(期間△t2<△t1の)短い期間のプログラミングパルスが使用される第2のプログラミングパルス列1302の間の境界を示す。切替ポイントは、温度、選択ワードライン位置、及び/又はトリガ状態までの記憶素子の追跡を含む、本明細書に説明される多様な基準を使用して決定できる。
図14は、ワードラインのデコーダ側からのそれらの距離に基づいて、記憶素子に見られるプログラミングパルスを示す。プログラム電圧は、選択されたワードラインの一端であって、ワードラインのデコーダ側に印加される。ワードライン抵抗容量(RC)遅延のため、プログラミングパルスの形状は、デコーダ側から遠くにある記憶素子と比較して、デコーダ側の近くにある記憶素子の場合は異なる。プログラミングパルス1400は、△t1という期間を有する切り替え前の長い期間のプログラミングパルスであって、デコーダ側の近くにある記憶素子に見られるものを表す。一方、プログラミングパルス1402は、デコーダ側から遠くにある記憶素子に見られる切り替え前のプログラミングパルスを表す。パルス1402は、その前縁で減衰するが、パルスはVpgmの所望される振幅に達する。プログラミングパルス1410は、△t2という期間を有する切り替え後の短い期間のプログラミングパルスであって、デコーダ側の近くにある記憶素子に見られるものを表す。一方、プログラミングパルス1412は、デコーダ側から遠くにある記憶素子に見られる切り替え後のプログラミングパルスを表す。パルス1412は、その前縁で減衰し、Vpgmの所望される振幅をわずかに下回るVpgm−△のレベルに達する。
したがって、デコーダ側の近くにある記憶素子に見られるVpgmは、デコーダ側から遠くにある記憶素子に見られるVpgmよりも、わずかに高くなる。しかしながら、これはプログラム外乱を悪化させない。なぜなら、ワードラインのデコーダ側に近い記憶素子の場合、プログラミングはより早期に終了できるので、これらの記憶素子は、短い期間のパルスが印加された後に、追加のプログラミングからロックアウトされると、それらのチャネルはプログラミングから禁止されるためである。したがって所与の記憶素子の場合、隣接記憶素子のチャネルが禁止されると、チャネルブースト電位は著しく高くなる。したがって、より期間のプログラミングパルスを使用するとき、デコーダ側に近い記憶素子について、プログラム外乱は悪化しない。
ワードラインのRC遅延も、パルス幅がどれほど小さくなり得るかに関してより低い実際的な限度を課すことに留意されたい。パルス幅が小さすぎる場合、それは所望される高プログラム電圧レベルに到達できない場合がある。また、パルス幅が小さすぎる場合、記憶素子は、不十分なファウラー−ノルドハイムトンネリング注入のためにプログラミングされない。約3分の1から約2分の1に削減された期間のパルス幅は、現実的であると予想される。ただし、この範囲はメモリ素子に応じて変わることがある。
図15は、不揮発性メモリをプログラミングするための方法の一実施形態を説明するフローチャートであり、短い期間のプログラミングパルスへの切り替えはプログラミングパルス数に基づいている。1つの実装例では、プログラミングの前に記憶素子が(ブロック単位又は他の単位で)消去される。ステップ1500で、「データをロード」コマンドがコントローラによって発行され、入力が制御回路510によって受信される。ステップ1502で、ページアドレスを指定するアドレスデータが、コントローラ又はホストからデコーダ514に入力される。ステップ1504で、アドレス指定されたページのプログラムデータのページが、プログラミングのためにデータバッファに入力される。データは、ラッチの適切なセットでラッチされる。ステップ1506で、コントローラによって状態マシン512に「プログラム」コマンドが発行される。
「プログラム」コマンドによってトリガされ、ステップ1504でラッチされたデータは、適切な選択ワードラインに印加された図13のパルス列1300のステップ単位で実行されたプログラミングパルスを使用して、状態マシン512によって制御される選択された記憶素子の中にプログラミングされる。ステップ1508で、プログラム電圧VPGMが開始パルス(例えば、12V又は他の値)に初期化され、状態マシン512によって維持されるプログラムカウンタ(PC)はゼロで初期化される。ステップ1510で、温度検出回路515にアクセスすることによって温度が決定される。ステップ1512で、プログラミングのために現在選択されているワードラインのワードライン番号である、ワードライン位置が決定される。ステップ1514で、切り替えプログラミングパルス数(N1)が、図12dに示されるデータにアクセスすることによって等、温度及び/又はワードライン位置に基づいて決定される。ステップ1516で、図13の△t1等、プログラミングパルス幅が設定される。当初、プログラム動作の開始時、長い期間のパルスが使用される。ステップ1518で、現在のプログラミングパルス数又はカウントは、1という値に初期化される。決定ステップ1520で、現在のプログラミングパルス数がN1に等しいか、それともN1を超えているのかについて、決定される。現在のプログラミングパルス数がN1に等しくない、又はN1を超えない場合、△t1という期間のプログラミングパルスがステップ1524で印加される。
このように、最初のプログラミングパルスは、選択されたワードラインと関連付けられた記憶素子をプログラミングし始めるために、選択されたワードラインに印加される。論理「0」が、対応する記憶素子がプログラミングされる必要があることを示す特定のデータラッチに記憶される場合、対応するビットラインが接地される。他方、論理「1」が、対応する記憶素子がその現在のデータ状態に留まる必要があることを示す特定のラッチに記憶される場合、対応するビットラインは1.5から3Vに接続され、プログラミングを禁止する。
ステップ1526で、選択された記憶素子の状態は、検証動作で検証される。選択された記憶素子のターゲット閾値電圧が適切なレベルに達したことが検出されると、次に対応するデータラッチに記憶されたデータが論理「1」に変更される。閾値電圧が適切なレベルに達していないことが検出されると、対応するデータラッチに記憶されるデータは変更されない。このようにして、対応するデータラッチに記憶された論理「1」を有するビットラインは、プログラミングされる必要がない。データラッチの全てが論理「1」を記憶しているとき、状態マシンは(上述された結線論理和タイプの機構を介して)、全ての選択された記憶素子がプログラミングされたことを知る。ステップ1528で、データラッチの全てが論理「1」を記憶しているかどうかに関してチェックが行われる。全ての選択された記憶素子がプログラミングされ、検証されたため、データラッチの全てが論理「1」を記憶している場合、プログラミングプロセスは完了し、成功である。ステップ1530で、「パス」のステータスが報告される。いくつかの実施形態では、全ての選択された記憶素子がプログラミングされているとして検証されなくても、プログラミングプロセスは完了し、成功したと見なされる。かかる場合、以後の読み出し動作中のエラーは、記憶素子が不十分にプログラミングされたために発生することがある。ただし、これらのエラーはECCによって訂正できる。
ステップ1528で、データラッチの全てが論理「1」を記憶していないと判断されると、プログラミングプロセスは続行する。いくつかの実施形態では、データラッチの必ずしも全てが論理「1」を記憶していないとしても、プログラムプロセスは停止する。ステップ1532で、プログラムカウンタPCが、プログラム限度値PCmaxと照合される。プログラム限度値の一例は20であるが、他の数も使用できる。プログラムカウンタPCがPCmax以上である場合には、プログラムプロセスは不合格となり、「失敗」のステータスがステップ1534で報告される。プログラムカウンタPCがPCmax未満である場合には、ステップ1536が実行され、VPGMがステップサイズ分増加され、プログラムカウンタPCが1、増分され、現在のプログラミングパルス数が1増分される。次に、プロセスはステップ1520にループバックし、現在のプログラミングパルス数がN1に等しいか、それともN1を超えているかを決定する。現在のプログラミングパルス数がN1に等しい、又はN1を超えている場合、第2のプログラミングパルス幅△t2<△t1が設定される。したがって、以後のプログラミングパルスは、比較的に短い期間を有する。次に、プログラミングは、前述されたように続行する。現在のプログラミングパルス数がN1に等しくならない、又は超えない場合、ステップ1524で、第1のパルス幅△t1のプログラミングパルスがさらに印加される。
2つ以上のプログラミングパルス期間を使用することも可能であることに留意されたい。例えば、パルス列では、第1の期間△t1のプログラミングパルスの後に、第2の期間△t2<△t1のプログラミングパルスが続き、その後に、第3の期間△t3<△t2のプログラミングパルスが続いてもよい。
図16は、不揮発性メモリをプログラミングするための方法の別の実施形態を説明するフローチャートであり、短い期間のプログラミングパルスへの切り替えがトリガ状態に達する記憶素子の数に基づく。類似した番号が付けられたステップは、図15のステップに相当する。
ステップ1612は、図12eの情報を使用することによって等、温度に基づいて追跡調査するトリガ状態を決定することを含む。ステップ1614は、温度に基づいて、追跡調査状態で追跡調査する記憶素子N2のトリガ数を決定することを含む。ステップ1516で、図13の△t1等、プログラミングパルス幅が決定される。ステップ1618で、トリガ状態に達した記憶素子のカウントは、ゼロという値に初期化される。決定ステップ1620で、カウントがN2に等しくなるのか、それともN2を超えるのかに関する決定が下される。現在のカウントがN2に等しくない、又はN2を超えない場合、ステップ1524で、期間が△t1のプログラミングパルスが印加される。
ステップ1526で、選択された記憶素子の状態が、説明したように検証される。ステップ1627で、トリガ状態に達したと検証された記憶素子ごとに、カウントが1、更新される。ステップ1528、1530、1532及び1534は、説明した通りに進む。決定ステップ1532で、プログラムカウンタPCがPCmax未満である場合には、VPGMがステップサイズ分増加され、プログラムカウンタPCが1、増分されるステップ1536が実行される。
次にプロセスはステップ1620にループバックし、現在のカウントがN2に等しいのか、それともN2を超えているのかを決定する。現在のカウントが、N2に等しい又はN2を超えている場合、第2のプログラミングパルス幅△t2<△t1が設定される。したがって、以後のプログラミングパルスは、△t2という短い期間を有する。次に、プログラミングは前述されたように続行する。この場合、短い期間のプログラミングパルスへの切り替えは、閾値電圧がトリガ状態に達する記憶素子を追跡調査することによってトリガされる。トリガ状態が、この例ではビットを符号化するデータ状態であることに留意されたい。データ状態の検証レベルとは異なる指定検証レベルに閾値電圧が達する記憶素子を追跡調査することによって、短い期間のプログラミングパルスへの切り替えをトリガすることも可能である。これは、より大きな柔軟性を提供するが、追加の検証動作を生じさせる。データ状態と関係付けられる既存の検証レベルを使用する手法は、追加の検証動作を要求することなく既存の検証動作を利用するので、より効率的である場合がある。
記憶素子を追跡調査することによって、短い期間のプログラミングパルスへの切り替えをトリガすることは、メモリ素子内で経時的に発生することがある多様な性能変化を説明する適応手法である。例えば、メモリ素子がより多くのプログラミング−消去サイクルを蓄積するにつれて、記憶素子は、例えばより少ないプログラミングパルスでより迅速にプログラミングし得る。さらに、異なるメモリ素子、つまりメモリアレイ内の記憶素子の異なるブロックが異なる速度でプログラミングできる。適応切り替えは、かかる変形を自動的に説明する。
本明細書に説明される技術の一実施形態では、不揮発性記憶を操作するための方法は、プログラム動作の第1のプログラミングパルス列を一組のワードラインのなかの選択ワードラインに印加することを含み、一組のワードラインは、一組の記憶素子に接続され、選択ワードラインは、一組の記憶素子のなかの少なくとも一つの選択記憶素子、及び少なくとも一つの非選択記憶素子に接続されている。方法は、切り替え基準が満たされるのか否か判断することをさらに含み、切り替え基準は温度に依存する。切り替え基準が満たされている場合、方法は、プログラム動作中に、第1のプログラミングパルス列を印加することに代えて、第2のプログラミングパルス列(1302)を、選択されたワードラインに印加することに切り替えることをさらに含み、第2のプログラミングパルス列の少なくとも一つは、第1のプログラミングパルス列の少なくとも一つよりも、短い期間を有する。
別の実施形態では、不揮発性記憶システムは、一組の記憶素子、その一組の記憶素子に接続された一組のワードライン、及びその一組のワードラインに接続された一又は複数の制御回路を含む。その一又は複数の制御回路は、(a)プログラム動作中、一組のワードラインのなかの選択されたワードラインに、第1のプログラミングパルス列を印加し、ここで、選択されたワードラインは、一組の記憶素子のなかの少なくとも一つの選択された記憶素子及び少なくとも1つの非選択の記憶素子に接続されており、(b)切り替え基準が満たされるのか否かを判断し、ここで切り替え基準は温度に依存するものであり、(c)切り替え基準が満たされる場合、プログラム動作中に、第1のプログラミングパルス列を印加することに代えて、第2のプログラミングパルス列を選択されたワードラインに印加することに切り替え、ここで第2のプログラミングパルス列の少なくとも一つは、第1のプログラミングパルス列の少なくとも一つよりも、短い期間を有する。
別の実施形態では、不揮発性記憶を操作するための方法は、プログラム動作中、第1のプログラミングパルス列を、一組のワードラインのなかの選択されたワードラインに印加することを含み、一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側の間に伸びており、一組の記憶素子に接続されており、選択されたワードラインは、一組の記憶素子のなかの少なくとも一つの選択された記憶素子及び少なくとも1つの非選択の記憶素子に接続されている。方法は、切り替え基準が満たされるのか否か判断することをさらに含み、切り替え基準は一組のワードラインのなかの選択されたワードラインの位置に依存する。切り替え基準が満たされると、方法は、プログラム動作中に、第1のプログラミングパルス列を印加することに代えて、第2のプログラミングパルス列を選択されたワードラインに印加することに切り替えることを含み、第2のプログラミングパルス列の少なくとも一つは、第1のプログラミングパルス列の少なくとも一つのよりも、短い期間を有する。
別の実施形態では、不揮発性記憶システムは、選択されたNANDストリング及び非選択のNANDストリングを含む一組のNANDストリングを含み、各NANDストリングは記憶素子を有し、一組のNANDストリングは、一組のワードラインに接続されており、その一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側の間に伸びている。さらに、一又は複数の制御回路が、一組のワードラインに接続されている。この一又は複数の制御回路は、一組の記憶素子のなかの記憶素子の異なる部分集合が4つ以上の状態のなかの異なる状態にプログラミングされるプログラム動作を実行し、そのプログラム動作中、一又は複数の制御回路は、(a)一組のワードラインのなかの選択されたワードラインに第1のプログラミングパルス列を印加し、(b)切り替え基準が満たされるのか否かを判断し、切り替え基準が4つ以上の状態の内の1つの状態へのプログラミングを完了する記憶素子の一部に依存し、一つの状態は温度に基づき選択され、(b)切り替え基準が満たされる場合、プログラム動作中に、第1のプログラミングパルス列を印加することに代えて、第2のプログラミングパルス列を選択されたワードラインに印加することに切り替え、第2のプログラミングパルスの少なくとも一つは、第1のプログラミングパルス列の少なくとも一つよりも短い期間を有する。
本明細書に示される方法を実行するための、対応する方法、システム及びコンピュータ読み出し可能な記憶装置、又はプロセッサ読み出し可能な記憶装置も提供されてよい。
前記発明を実施するための形態は、図解及び説明のために提示された。それは、網羅的であること、または開示されている正確な形式に本技術を制限することを意図していない。上記の教示を鑑みて、多くの修正及び変形が考えられる。説明された実施形態は、本技術及びその実践的な用途の原則を最もよく説明し、それによって当業者が多様な実施例において、及び意図された特定の使用に適するような多様な修正をもって本技術を最もよく活用できるようにするために選ばれた。本技術の範囲は、本明細書に添付される特許請求項の範囲により定められることが意図される。

Claims (15)

  1. 不揮発性記憶装置を動作させるための方法であって、
    プログラム動作中に、第1のプログラミングパルス列(1301)を、一組のワードライン(WL0からWL63)のなかの選択されたワードライン(WLn)に印加する工程と、
    切り替え基準が満たされるのか否かを判断する工程(1520)と、
    前記切り替え基準が満たされる場合、前記プログラム動作中に、第1のプログラミングパルス列を印加することに代えて、おける第2のプログラミングパルス列(1302)を、前記選択されたワードラインに印加することに切り替える工程と、
    を有し、
    前記一組のワードラインは、一組の記憶素子(700、710)に接続されるとともに、前記選択されたワードラインは、前記一組の記憶素子なかの少なくとも1つの選択された記憶素子及び少なくとも1つの非選択の記憶素子と接続されており、
    前記切り替え基準は温度に依存するものであり、
    前記第2のプログラミングパルス列のなかの少なくとも一つは、前記第1のプログラミングパルス列のなかの少なくとも一つよりも、短い期間(△t2)を有する、方法。
  2. 前記温度が相対的に高いときほど、プログラム動作において第2のプログラミングパルス列(1302)の印加が早期に開始され、
    前記温度が相対的に低いときほど、プログラム動作において第2のプログラミングパルス列(1302)の印加が遅く開始される、請求項1に記載の方法。
  3. 前記温度が十分に低い(T2)場合には前記切り替え基準が満たされず、前記第1のプログラミングパルス列の印加から第2のプログラミングパルス列の印加への切り替えは行われず、前記プログラム動作が完了するまで前記第1のプログラミングパルス列が印加され、前記第1のプログラミングパルス列の各々は同じ期間を有する、請求項1又は2に記載の方法。
  4. 前記第1のプログラミングパルス列の各々は、第1の期間(△t1)を有し、
    前記第2のプログラミングパルス列の各々は、前記第1の期間よりも短い第2の期間(△t2)を有する、請求項1から3のいずれか一項に記載の方法。
  5. 前記第2の期間は、前記第1の期間の3分の1から2分の1の間である、請求項1から4のいずれか一項に記載の方法。
  6. 前記切り替え基準が満たされるのか否かを判断する工程は、前記一組の記憶素子のなかの一部の記憶素子が、4つ以上の状態のなかの一つの状態へプログラミングされたのか否かを判断することを含み、前記一つの状態は前記温度に基づくものである、請求項1から5のいずれか一項に記載の方法。
  7. 前記温度が相対的に高いとき、前記一つの状態は相対的に低い状態であり、
    前記温度が相対的に低いとき、前記一つの状態は相対的に高い状態である、請求項6に記載の方法。
  8. 最低位から最高位まで4つのデータ状態E、A、B及びCがあり、
    前記温度がT2からT3までのとき、前記一つの状態は状態Bであり、
    前記温度がT1からT2までのとき、前記一つの状態は状態Aであり、
    T1<T2<T3である、請求項6に記載の方法。
  9. 最低位から最高位まで8つのデータ状態E、A、B、C、D、E、F、及びGがあり、
    前記温度がT2からT3までのとき、前記一つの状態は状態Dであり、
    前記温度がT1からT2までのとき、前記一つの状態は状態Fであり、
    T1<T2<T3である、請求項6に記載の方法。
  10. 前記切り替え基準が満たされるのか否かを判断する工程は、前記一組の記憶素子のなかの所定の数の記憶素子が、4つ以上の状態のなかの所定の状態へのプログラミングされたのか否かを判断する工程を含み、
    前記所定の数は前記温度に基づくものである、請求項6に記載の方法。
  11. 選択されたNANDストリング及び非選択のNANDストリングを含む一組のNANDストリング(700、710)と、
    一組のワードラインに接続された一又は複数の制御回路(510、550)と、
    を備え、
    各NANDストリングは複数の記憶素子を含み、前記一組のNANDストリングは、一組のワードライン(WL0からWL63)に接続されており、一組のワードラインは、一組のワードラインのソース側と一組のワードラインのドレイン側との間に伸びており、
    前記一又は複数の制御回路は、前記一組の記憶素子のなかの異なる部分集合を、4以上の状態のなかの異なる状態へそれぞれプログラミングするプログラム動作を実行し、
    前記プログラム動作中、前記一又は複数の制御回路は、(a)第1のプログラミングパルス列(1301)を前記一組のワードラインのなかの選択されたワードラインに印加し、(b)切り替え基準が満たされるのか否かを判断し、ここで前記切り替え基準は温度に依存するものであり、(b)前記切り替え基準が満たされる場合に、第1のプログラミングパルス列を印加することに代えて、前記プログラム動作における第2のプログラミングパルス列(1302)を、前記選択されたワードラインに印加することに切り替え、ここで前記第2のプログラミングパルス列の少なくとも一つは、前記第1のプログラミングパルスの少なくとも一つよりも短い期間を有する、不揮発性記憶システム。
  12. 前記温度が相対的に高いときほど、プログラム動作において第2のプログラミングパルス列(1302)の印加が早期に開始され、
    前記温度が相対的に低いときほど、プログラム動作において第2のプログラミングパルス列(1302)の印加が遅く開始される、請求項11に記載の不揮発性記憶システム。
  13. 前記第1のプログラミングパルス列の各々は、第1の期間(△t1)を有し、
    前記第2のプログラミングパルス列の各々は、前記第1の期間よりも短い第2の期間(△t2)を有する、請求項11又は12に記載の不揮発性記憶システム。
  14. 前記切り替え基準が満たされるのか否かを判断するために、前記一又は複数の制御回路は、前記一組の記憶素子のなかの一部の記憶素子が、4つ以上の状態のなかの一つの状態へプログラミングされたのか否かを判断し、
    前記温度が閾値を超えている場合、前記一つの状態は前記4つ以上の状態のなかの一つの特定のプログラム状態であり、
    前記温度が前記閾値未満である場合、前記一つの状態は前記4つ以上の状態のなかの他のより高い特定のプログラム状態である、請求項11から13のいずれか一項に記載の不揮発性記憶システム。
  15. 前記温度が閾値(T2)を超えている場合、前記一つの状態は前記4つ以上の状態のなかの最低位のプログラム状態(A)であり、
    前記温度が前記閾値未満である場合、前記一つの状態は前記4つ以上の状態の内のなかの最低位から二番目のプログラミング状態(B)である、請求項14に記載の不揮発性記憶システム。
JP2012516129A 2009-06-22 2010-06-08 不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅 Withdrawn JP2012531003A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/488,967 US8045384B2 (en) 2009-06-22 2009-06-22 Reduced programming pulse width for enhanced channel boosting in non-volatile storage
US12/488,967 2009-06-22
PCT/US2010/037839 WO2011005401A2 (en) 2009-06-22 2010-06-08 Reduced programming pulse width for enhanced channel boosting in non-volatile storage

Publications (1)

Publication Number Publication Date
JP2012531003A true JP2012531003A (ja) 2012-12-06

Family

ID=42941993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012516129A Withdrawn JP2012531003A (ja) 2009-06-22 2010-06-08 不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅

Country Status (7)

Country Link
US (1) US8045384B2 (ja)
EP (1) EP2446441B8 (ja)
JP (1) JP2012531003A (ja)
KR (1) KR101662760B1 (ja)
CN (1) CN102576567B (ja)
TW (1) TW201112252A (ja)
WO (1) WO2011005401A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021099893A (ja) * 2019-11-30 2021-07-01 セミブレイン インコーポレイテッド パルス幅制御プログラミング方式を用いた論理互換フラッシュメモリ

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8130556B2 (en) * 2008-10-30 2012-03-06 Sandisk Technologies Inc. Pair bit line programming to improve boost voltage clamping
WO2012021379A2 (en) * 2010-08-10 2012-02-16 Rambus Inc. Verify before program resume for memory devices
US8498162B2 (en) * 2011-04-29 2013-07-30 Spansion Llc Method, apparatus, and manufacture for flash memory write algorithm for fast bits
US8711617B2 (en) 2011-06-03 2014-04-29 Micron Technology, Inc. Data modulation for groups of memory cells
US8804430B2 (en) 2012-03-26 2014-08-12 Sandisk Technologies Inc. Selected word line dependent select gate diffusion region voltage during programming
US8804425B2 (en) 2012-03-26 2014-08-12 Sandisk Technologies Inc. Selected word line dependent programming voltage
US8638608B2 (en) 2012-03-26 2014-01-28 Sandisk Technologies Inc. Selected word line dependent select gate voltage during program
US9224478B2 (en) * 2013-03-06 2015-12-29 Freescale Semiconductor, Inc. Temperature-based adaptive erase or program parallelism
US8879330B1 (en) * 2013-04-30 2014-11-04 Freescale Semiconductor, Inc. Non-volatile memory (NVM) with variable verify operations
KR102256918B1 (ko) * 2014-09-23 2021-05-27 에스케이하이닉스 주식회사 가변적 ispp 방식을 이용하여 프로그램을 수행하는 3차원 비휘발성 반도체 메모리 장치, 데이터 저장 장치 및 사용자 장치
US9437318B2 (en) * 2014-10-24 2016-09-06 Sandisk Technologies Llc Adaptive program pulse duration based on temperature
US9496040B2 (en) * 2015-01-22 2016-11-15 Sandisk Technologies Llc Adaptive multi-page programming methods and apparatus for non-volatile memory
KR102659596B1 (ko) * 2016-08-26 2024-04-19 삼성전자주식회사 비휘발성 메모리 장치
US9881683B1 (en) * 2016-12-13 2018-01-30 Cypress Semiconductor Corporation Suppression of program disturb with bit line and select gate voltage regulation
CN109658968B (zh) * 2017-10-12 2024-07-30 三星电子株式会社 非易失性存储器装置的操作方法
CN112041825A (zh) * 2018-05-02 2020-12-04 株式会社半导体能源研究所 半导体装置
CN110556149B (zh) * 2018-05-31 2021-04-30 北京兆易创新科技股份有限公司 一种抗干扰的编程方法、装置、设备及存储介质
KR102396743B1 (ko) * 2018-07-16 2022-05-12 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
CN111951857B (zh) * 2019-05-15 2023-06-09 兆易创新科技集团股份有限公司 一种非易失性存储器的编程方法及控制装置
US11145336B2 (en) * 2019-10-30 2021-10-12 Micron Technology, Inc. Program pulse control using environmental parameters
CN111727477A (zh) 2020-05-06 2020-09-29 长江存储科技有限责任公司 3d nand闪存的控制方法和控制器
US11145373B1 (en) * 2020-05-22 2021-10-12 Macronix International Co., Ltd. Method for programming flash memory device and flash memory system
KR20210158223A (ko) 2020-06-23 2021-12-30 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US11967383B2 (en) 2022-01-20 2024-04-23 Western Digital Technologies, Inc. Non-volatile memory with enhanced program operation for last state on slow plane
US20230253048A1 (en) * 2022-02-08 2023-08-10 Sandisk Technologies Llc Variable programming clocks during a multi-stage programming operation in a nand memory device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608679A (en) * 1994-06-02 1997-03-04 Intel Corporation Fast internal reference cell trimming for flash EEPROM memory
JPH1139887A (ja) * 1997-07-14 1999-02-12 Sony Corp 不揮発性半導体記憶装置
JP3965287B2 (ja) * 2001-10-09 2007-08-29 シャープ株式会社 不揮発性半導体記憶装置およびその書き込み時間決定方法
US6560152B1 (en) 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
US6625054B2 (en) * 2001-12-28 2003-09-23 Intel Corporation Method and apparatus to program a phase change memory
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6661724B1 (en) * 2002-06-13 2003-12-09 Cypress Semiconductor Corporation Method and system for programming a memory device
US6801454B2 (en) 2002-10-01 2004-10-05 Sandisk Corporation Voltage generation circuitry having temperature compensation
US6882567B1 (en) * 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
JP4204369B2 (ja) * 2003-03-31 2009-01-07 シャープ株式会社 不揮発性半導体メモリ装置
KR100635203B1 (ko) * 2004-05-14 2006-10-16 에스티마이크로일렉트로닉스 엔.브이. 플래쉬 메모리 장치 및 그 구동 방법
US7295478B2 (en) 2005-05-12 2007-11-13 Sandisk Corporation Selective application of program inhibit schemes in non-volatile memory
KR100719368B1 (ko) * 2005-06-27 2007-05-17 삼성전자주식회사 플래시 메모리 장치의 적응적 프로그램 방법 및 장치
US7468911B2 (en) * 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
US7630249B2 (en) * 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
US7817467B2 (en) * 2007-09-07 2010-10-19 Micron Technology, Inc. Memory controller self-calibration for removing systemic influence

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021099893A (ja) * 2019-11-30 2021-07-01 セミブレイン インコーポレイテッド パルス幅制御プログラミング方式を用いた論理互換フラッシュメモリ
JP7193517B2 (ja) 2019-11-30 2022-12-20 セミブレイン インコーポレイテッド パルス幅制御プログラミング方式を用いた論理互換フラッシュメモリ

Also Published As

Publication number Publication date
US8045384B2 (en) 2011-10-25
EP2446441B1 (en) 2015-02-25
US20100322005A1 (en) 2010-12-23
WO2011005401A2 (en) 2011-01-13
KR20120065274A (ko) 2012-06-20
EP2446441A2 (en) 2012-05-02
KR101662760B1 (ko) 2016-10-06
CN102576567B (zh) 2015-09-16
EP2446441B8 (en) 2015-05-27
TW201112252A (en) 2011-04-01
CN102576567A (zh) 2012-07-11
WO2011005401A4 (en) 2011-08-18
WO2011005401A3 (en) 2011-06-30

Similar Documents

Publication Publication Date Title
EP2446441B1 (en) Reduced programming pulse width for enhanced channel boosting in non-volatile storage
EP2446443B1 (en) Forecasting program disturb in memory by detecting natural threshold voltage distribution
JP5444468B2 (ja) パス電圧の外乱及びフローティングゲートから制御ゲートへのリークを低減するメモリプログラム
JP5426666B2 (ja) 不揮発性記憶装置のチャネルブーストを増加させるためのビットラインプレチャージを強化する方式
JP4954223B2 (ja) フローティングゲート結合に対する補償を伴う不揮発性記憶装置に対する読み出し動作
KR20130084610A (ko) 동기화된 커플링을 이용한 비휘발성 저장소자의 프로그래밍
JP5174829B2 (ja) 隣接メモリセルの記憶状態を考慮した不揮発性メモリセルの読み出し
JP5367697B2 (ja) 不揮発性記憶装置における読み出し動作中の消費電力の低減
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
KR101012132B1 (ko) 다른 전압들을 이용한 비휘발성 저장 장치에 대한 검증 동작
JP2013524400A (ja) メモリにおけるプログラムノイズ低減のための鋸形のマルチパルスプログラミング
JP2009514138A (ja) スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
JP5134007B2 (ja) 早期ソース側ブーストを用いた不揮発性記憶装置におけるプログラム妨害の低減
KR20100029194A (ko) 채널 절연 스위칭을 이용한 비휘발성 저장을 위한 부스팅
JP4950299B2 (ja) 複数のブーストモードを使用した不揮発性メモリ内のプログラム妨害の低減

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130204

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130308