チャネル−フローティングゲート間の容量結合を含む、プログラムにおける結合の影響を低減する方法及び不揮発性記憶システムを提供する。
メモリ装置が小型化されるほど、容量結合の影響はより大きな問題となる。特に、プログラムの間、プログラムが完了した記憶素子(非選択、ロックアウトされた、又は禁止された記憶素子ともいう)は、ブロックの全てのワードラインとフローティングチャネルの助けを受けたブーストにより、接続された基板のチャネル領域のチャネル電位を引き上げることによって禁止される。フローティングチャネルは、上昇されたビットライン電圧(Vbl)からの影響によってもたらされる。しかしながら、この上昇したチャネル電位は、まだプログラム中である隣接する記憶素子のフローティングゲートと結合し、そのフローティングゲートの電位を意図せず上昇させてしまう。このことは、チャネル−フローティングゲート間の容量結合と称される。結果的に、プログラム速度が、選択記憶素子に対して望ましいレベルを超えて上昇することになり、それらの閾値電圧の分布を広くしてしまう。
このようなプログラム速度の上昇は、高速又は低速プログラムモードにある記憶素子において起こり得る。ここで、高速又は低速プログラムモードは、コントローラによって設定される。典型的には、選択記憶素子のVthが目標Vthから離れているときは、選択ビットライン(選択記憶素子に接続されているビットライン)のVblをゼロボルトに維持することによって、高速プログラムモードが実行される。その後、選択記憶素子のVthが目標Vthに近づくと、プログラムを減速させるために、但し完全には禁止しないように、Vblをおよそ0.6−0.8ボルトまで引き上げることによって、低速プログラムモードが実施される。
このような結合を避ける一手法は、選択記憶素子のビットラインをフロートさせることである。しかしながら、この手法は、Vblをゼロでない特定のレベルにする必要のある低速プログラムモードを使用できなくなくする。ここで開示する様々な解決手法は、ビットラインを最適な方法で駆動及び/又はフローティングさせる検知回路及びプログラム技術を提供するものである。
一手法では、プログラムの減速を行うために、追加的な検証動作や、制御された高速又は低速プログラムモードを必要としない。その代わり、選択記憶素子のビットラインをフローティングさせることにより、ある一状態の目標検証レベルを利用して、次に高い状態へプログラムされている選択記憶素子のプログラムを減速させることができる。チャネル電位は、これはチャネルに通過したVblであるが、隣接する非選択ビットライン(非選択記憶素子に接続されている)の電圧上昇との結合によって上昇する。その結果、プログラム速度は減速される。この手法は、ビットライン−ビットライン間の結合が強く生じるほど、自動的にそれに応じてさらに減速することができ、チャネル−フローティングゲート間の結合によるチャネル電位上昇の解決手段として機能する。
他の一手法では、低速プログラムモードにある選択記憶素子において、チャネル−ゲート間の容量結合を補償することができる。この手法では、選択ビットラインに結合され、それに接続されたチャネル領域に伝送される電圧の上昇によって、非選択ビットラインを駆動する。Vblによって定まるチャネル電位は0.8−1.2ボルトとなり、これは従来のビットラインバイアスよりも高く、それによって選択記憶素子のフローティングゲート電位の上昇を相殺する。その結果、低速プログラムモードが、選択記憶素子に対して意図した低速度で実行され、このような補償のない場合に起こり得る速度上昇が防止される。同様の補償は、高速プログラムモードにある選択記憶素子に対しても行うことができる。この場合、選択記憶素子のチャネルは、最初は接地されており、その後にビットラインの結合によってバイアスされるので、プログラムは意図された高速度で実行されることになり、このような補償のない場合に起こり得る速度上昇が防止される。ただし、高速プログラムモードにある選択記憶素子に対する補償は、低速プログラムモードにあるものと比較すると、概して重要ではない。この手法又は他の手法では、パス電圧がワードラインに印加される時に対して、Vblをチャネルに通過させるタイミングを様々に変更できる。ドレイン選択ゲート電圧を調整するタイミングについても、適宜最適化すればよい。
他の一手法では、プログラム動作の一部として、選択記憶素子(及びそのビットライン、以下、選択ビットラインという)が、非選択記憶素子(及びそれらのビットライン、以下、非選択ビットラインという)に隣接するのか否かを判断する検知処理を行うことができる。非選択ビットラインとは、選択ワードライン上にある非選択記憶素子に接続されたビットラインをいう。選択ビットラインは、選択ワードライン上にある選択記憶素子に接続されたビットラインをいう。同じワードラインにおける非選択記憶素子のチャネルから選択記憶素子のフローティングゲートへの結合である、チャネル―フローティングゲート間の結合は、選択記憶素子がチャネルブースト下にある一又は二の非選択記憶素子に隣接するときに、最も強くなる。検知は、この状況を検出するために実行され、それにより、必要に応じて適切な補償を行い、不要であれば補償を行わないことができる。
他の一手法では、補償電圧のみを、あるいは低速プログラムモードのバイアスと併せて、選択記憶素子のチャネルへそのビットラインを介して直接的に供給することができる。
本発明の実施に適したメモリシステムの一例は、NANDフラッシュメモリ構造を用いる。そのNANDフラッシュメモリ構造は2つの選択ゲートの間に直列に接続された複数のトランジスタを有している。直列に配置されたトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1aは、一つのNANDストリング90を示す平面図である。図1bはその等価回路である。図示されたNANDストリングは、直列に接続されており、第1の選択ゲート120と第2の選択ゲート122の間に挟まれている4つのトランジスタ100、102、104、及び106を有する。選択ゲート120は、NANDストリングをビットライン126に接続する。選択ゲート122は、NANDストリングをソースライン128に接続する。選択ゲート120、122は、制御ゲート120CG、122CGにそれぞれ適切な電圧が印加されることによって制御される。トランジスタ100、102、104及び106のそれぞれは制御ゲート及びフローティングゲートを有する。トランジスタ100は、制御ゲート100CG及びフローティングゲート100FGを有する。トランジスタ102は制御ゲート102CG及びフローティングゲート102FGを有する。トランジスタ104は、制御ゲート104CG及びフローティングゲート104FGを有する。トランジスタ106は、制御ゲート106CG及びフローティングゲート106FGを有する。制御ゲート100CG、102CG、104CG、106CGは、ワードラインWL3、WL2、WL1、WL0にそれぞれ接続されている。一実施形態では、トランジスタ100、102、104及び106は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることもある。あるいは、図示されているのとは異なることもある。選択ゲート120、120は、ドレイン側選択ラインSGD、ソース側選択ライン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+ドープ層125は、NANDストリングのためのビットライン126に接続する。一方、N+ドープ層128は複数のNANDストリングのための一つの共通ソースラインに接続する。それぞれのメモリセルは、アナログ又はデジタル方式で表されるデータを、一以上のビットで記憶することができる。
NANDフラッシュメモリに加えて、他のタイプの不揮発性メモリを使用することもできる。
プログラム動作の一部として、非選択の記憶素子や例えば非選択のNANDストリング90に接続された基板のチャネル領域の電位をブーストすることができる。非選択の記憶素子あるいはNANDストリングは、プログラム動作の所与のプログラム反復においてプログラムから禁止又はロックアウトされることから、禁止された又はロックアウトされた記憶素子あるいはNANDストリングと称することができる。例えば、制御ゲートとフローティングゲート100CG/100FG、102CG/100FG、104CG/104FG、106CG/106FGによって構成される記憶素子のいずれかが、プログラム動作において非選択の記憶素子となるとき、例えば、NANDストリング90が非選択のNANDストリングとなるとき、チャネル領域141が基板144のp−ウェル140内に形成される。チャネル領域141は、基板内における導電経路であって、ドープ領域130、132、134、136、138の内部及び間を伸びる。ブーストは様々に実施することができる。例えば、プレチャージの工程において、これはパス電圧を非選択のワードラインに印加する前に行われるが、ビットライン126に供給された電圧が、ドレイン側選択ゲートトランジスタ120CGを通じてチャネル141へ送られる。
一つの考え方として、適切なVblにより、ドレイン側トランジスタの制御ゲートがVdd+Vthにバイアスされたときに、ドレイン側選択ゲートトランジスタはプレチャージ電圧としてVblの電圧を提供する。ここで、Vddは、検知回路への供給電圧であり、Vthはドレイン側選択ゲートトランジスタの閾値電圧である。制御ゲートの電圧が上昇するほど、チャネルはより高電位にブーストされる。ドレイン側選択ゲートトランジスタは、それにより非導通の状態となり、ビットラインがチャネル領域141から遮断されて、ブーストされた電位がチャネルにおいて維持される。チャネルブーストは、ワードラインにパス電圧を印加し、チャネルをフローティングさせることによっても行うことができる。
図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)によってソースライン370に接続される。ソース側選択ゲートの制御には、選択ラインSGSが使用される。多様なNANDストリング320、340及び360は、各選択ゲート322、342、362内のドレイン側選択トランジスタによって、各ビットライン321、341及び361に接続される。これらの選択トランジスタは、ドレイン選択ラインSGDによって制御される。他の実施形態では、選択ラインは、必ずしもNANDストリングの間で共通である必要はない。つまり、異なる選択ラインを、異なるNANDストリングのために設けることもできる。一例ではあるが、NANDストリング320、340、360にそれぞれ接続されたチャネル領域329、330、331は、基板内に形成することができる。ここで、記憶素子及びチャネル領域は、それらの実際の位置から90度回転させて図示されている。
ワードラインは記憶素子の制御ゲートへ次のように接続されている:WL3(記憶素子323、343及び363、WL2(記憶素子324、344及び364)、WL1(記憶素子325、345及び365)、WL0(記憶素子326、346及び366)。各ワードラインは、行内の各記憶素子の制御ゲートに接続されている。あるいは、制御ゲートは、ワードライン自体によって構成されてもよい。
フラッシュ記憶素子をプログラムするときは、例えば接続されたワードラインを通じて、記憶素子の制御ゲートにプログラム電圧を印加し、その記憶素子に接続されたビットラインを接地する。それにより、チャネルからの電子がフローティングゲートに注入される。フローティングゲート内に電子が蓄積すると、フローティングゲートは負に帯電し、記憶素子のVthが上昇する。
図4は、図1aと1bに示すようなNAND記憶素子のアレイ400の例を示す。各列に沿って、ビットライン406が、NANDストリング450のドレイン側選択ゲートのドレイン端子426に接続されている。NANDストリングの各行に沿って、ソースライン404が、NANDストリングのソース選択ゲートの全てのソース端子428に接続されている。
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュEEPROMシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページは、プログラムの最小単位である。1ページ又は複数ページのデータは、通常、記憶素子の1行に記憶される。例えば、1行は、通常、いくつかのインタリーブされたページを含む、あるいは、1行は1ページを構成してよい。ページの全ての記憶素子は、一度に読み出され、又は、プログラムされる。多数のページがブロックを構成し、それは8ページから、例えば最大32、64、128又はそれ以上のページのいずれであってもよい。いくつかの実施形態では、NANDストリングの列はブロックを含む。
一例であるが、検知回路410、412、414が、ビットライン406、407、408にそれぞれ接続されている。検知回路410、412、414は、一又は複数の電源405によって供給される、それぞれVdd、Vdd−ΔV、Vcompの電力供給ライン401、402、403に接続されている。これらの電圧については後段でさらに説明する。検知回路は、制御信号とデータを交換するために、一以上の制御回路にも接続されている。
図5は、単一行/列デコーダ及び読み出し/書き込み回路を使用する不揮発性メモリシステムのブロック図である。メモリ素子596は、一実施形態に従って、記憶素子のページを同時に読み出し、プログラムするための読み出し/書き込み回路を有する。メモリ素子596は、一以上のメモリダイ598を有する。メモリダイ598は、2次元のアレイの記憶素子400、制御回路510、及び、読み出し/書き込み回路565を有する。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ400は行復号部530を介してワードラインによって、及び列復号部560を介してビットラインによってアドレスできる。読み出し/書き込み回路565は複数の検知ブロック500を有し(通常、各検知ブロックは、各ビットライン対して一つずつの、一組の検知回路又は検知アンプを有する)、1ページの記憶素子を並行して読み出し又はプログラムすることができる。後段で検知回路の一例を詳細に説明する。一般に、制御部550は、一つ以上のメモリダイ598のように同じメモリ素子596(例えば、取り外し可能なストレージカード)内に含まれる。コマンド及びデータは、ライン520を介してホストと制御部550の間及びライン518を介して制御部と一つ以上のメモリダイ598の間で送られる。
制御回路510は、読み出し/書き込み回路565と協調して、メモリアレイ400上でメモリ動作を実行する。制御回路510は、状態マシン512、オンチップアドレスデコーダ514、及び電力制御モジュール516を含む。状態マシン512は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ514は、ホスト又はメモリコントローラによって使用されるとともに、デコーダ530と560によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。電力制御モジュール516は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御し、図4に示す電源405を含むことができる。
いくつかの実装例では、図5の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ400以外の(単独又は組み合わせた)一つ又は複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路510、状態マシン512、デコーダ514/560、電力制御モジュール516、検知ブロック500(後段で説明する検知回路を含む)、読み出し/書き込み回路565、制御部550等の内の任意の一又は組み合わせを含んでよい。
別の実施形態では、不揮発性メモリシステムは、二重の行/列デコーダ及び読み出し/書き込み回路を使用する。メモリアレイ400に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施される。
図6は、検知ブロックの一実施形態を示すブロック図である。個々の検知ブロック500は、検知モジュール580と呼ばれるコア部分、及び共通部分590に区切られる。一実施形態では、ビットラインごとに別個の検知モジュール580、及び、複数の検知モジュールの一組に一つの共通部分590が存在する。一例では、検知ブロックは、一つの共通部分590及び8つの検知モジュール580を含み、それぞれは後段で説明する検知回路に類似する。グループ内の検知モジュールのそれぞれは、データバス572を介して関連付けられた共通部分と通信する。
検知モジュール580は、接続されているビットラインの導通電流が所定の閾値レベルを超えているのか、それとも下回っているのかを判断する検知回路570を含む。検知モジュール580は、接続されたビットライン上で電圧状態を設定するために使用されるビットラインラッチ582も含む。例えば、ビットラインラッチ582で所定の状態にラッチされることにより、接続されたビットラインは、プログラム禁止を指定する状態にプルされることになる。
共通部分590は、プロセッサ592、一組のデータラッチ594、及び、一組のデータラッチ594とデータバス520の間に結合されているI/Oインタフェース596を含む。プロセッサ592は、計算を実行する。例えば、その機能の一つは、検知された記憶素子に記憶されるデータを特定し、一組のデータラッチにその決定されたデータを記憶することである。一組のデータラッチ594は、読み出し動作の間にプロセッサ592によって決定されるデータビットを記憶するために使用される。それは、プログラム動作中にデータバス520からインポートされるデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリの中にプログラムされるべきことを意味する書き込みデータを表す。I/Oインタフェース596は、データラッチ594とデータバス520の間のインタフェースを提供する。
読み出し又は検知の間、状態マシン512は、アドレス指定された記憶素子に対する様々な制御ゲート電圧の供給を制御する。サポートする多様なメモリ状態に対応して、所定の多様な制御ゲート電圧が順次供給されていくと、これらの電圧のなかの一つで検知モジュール580がトリップし、検知モジュール580からの出力がバス572を介してプロセッサ592に提供される。このとき、プロセッサ592は、検知モジュールがトリップしたことと、入力回線593を介して状態マシンから得られる印加した制御ゲート電圧についての情報とを考慮し、その結果として得られるメモリ状態を決定する。次に、それは、メモリ状態を2進コード化し、結果として生じるデータビットをデータラッチ594に記憶する。コア部分の別の実施形態では、ビットラインラッチ582は、検知モジュール580の出力をラッチするためのラッチ及び上述したビットラインラッチとして機能する。
プログラム又は検証の間に、プログラムされるデータは、データバス520から一組のデータラッチ594に記憶される。状態マシンの制御下にあるプログラム動作は、アドレス指定された記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを含む。各プログラムパルスの後ろには、記憶素子が所望されるメモリ状態にプログラムされたかどうかを判断するために読み返し(検証)が続く。プロセッサ592は、所望されるメモリ状態に関して読み返しメモリ状態を監視する。この2つが一致するとき、ビットラインがプログラム禁止を指定する状態にプルされるように、プロセッサ592がビットラインラッチ582を設定する。これが、プログラムパルスがその制御ゲートに出現したとしても、ビットラインに結合された記憶素子がさらにプログラムされるのを禁止する。他の実施形態では、プロセッサはビットラインラッチ582を初期にロードし、検証プロセスの間に検知回路がそれを禁止値に設定する。
データラッチスタック594は、検知モジュールに対応するデータラッチのスタックを含む。一実施形態では、検知モジュール580ごとに3つのデータラッチがある。データラッチは、その中に記憶される並列データが、データバス520用のシリアルデータに変換され、逆の場合も同じとなるように、シフトレジスタとして実装することができる。データのブロックをシリアル転送によって入力又は出力できるように、m個の記憶素子の読み出し/書き込みブロックに対応する全てのデータラッチがともにリンクしてブロックシフトレジスタが形成され得る。特に、読み出し/書き込みモジュールのバンクは、一組のデータラッチのそれぞれが、あたかもそれらが読み出し/書き込みブロック全体のためのシフトレジスタの一部であるかのように、データをデータバスの中に又はデータバスの中から次々とシフトするように適応される。
図7aは、各記憶素子が2ビットのデータを記憶する4状態型のメモリ装置のための一組の閾値電圧分布の例を示す。第1の閾値電圧分布700は、消去された(状態E)記憶素子のためのものである。3つの閾値電圧分布702、704、及び706は、チャネル−フローティングゲート間の結合が補償されたプログラム状態A、B及びCをそれぞれ表す。拡幅された閾値電圧分布703、705、及び707は、プログラム状態A、B及びCにおいてそれぞれチャネル−フローティングゲート間の結合の影響により生じる。このような結合は、選択記憶素子のフローティングゲートの電位を上昇させ、そのプログラム速度(例えばプログラムパルスあたりの閾値電圧の変化と表現される)を、意図されたプログラム速度よりも速くし、その結果、閾値電圧分布が高圧側の端部において拡幅される。一実施形態では、状態Eの閾値電圧は負となり、状態A、B、Cの閾値電圧は正となる。
読み出し基準電圧、Vra、Vrb、及びVrcは、記憶素子からデータを読み出すために利用される。所与の記憶素子の閾値電圧がVra、Vrb、及びVrcを超えているのか、それとも下回っているのかを検知することによって、システムは記憶素子の状況、例えば、プログラム状態を特定することができる。
さらに、検証基準電圧Vva、Vvb、及びVvcが利用される。記憶素子を状態A、B状態、C状態にプログラムするとき、システムは、それらの記憶素子がそれぞれVva、Vvb、Vvcよりも大きい閾値電圧を有するか否かを検知する。
フルシーケンスプログラムでは、記憶素子は、消去状態Eからプログラム状態A、B又はCのいずれかに直接的にプログラムされる。例えば、プログラムされる記憶素子の集合は、その集合の全ての記憶素子が消去状態Eとなるように、先ず消去される。図8に示される一連のプログラムパルスは、記憶素子を直接的に状態A、B、又はCにプログラムするために使用される。いくつかの記憶素子が状態Eから状態Aにプログラムされる間、他の記憶素子は状態Eから状態Bに、及び/又は、状態Eから状態Cにプログラムされる。
一例であるが、低速プログロムモードでは、一又は複数のデータ状態のために、低(オフセット)検証レベルと高(目標)検証レベルを使用することができる。例えば、VvaL及びVvaをそれぞれ状態Aのためのオフセット及び目標検証レベルとし、VvbLとVvbをそれぞれ状態Bのためのオフセット及び目標検証レベルとすることができる。プログラムの間、目標状態として状態Aにプログラムされる記憶素子(状態A記憶素子)の閾値電圧がVvaLを超えた時に、電圧Vblを、通常プログラムレベル(即ち、非禁止レベル)である例えば0ボルトと、完全禁止レベルである例えば2−3ボルトとの間である例えば0.6−0.8ボルトのレベルまで上げることによって、記憶素子のプログラム速度が減速される。これは、閾値電圧の大きな増大を避け、正確性をもたらす。閾値電圧がVvaに達した時、記憶素子はさらなるプログラムからロックアウトされる。同様に、目標状態として状態Bにプログラムされる記憶素子の閾値電圧がVvbLを超えた時に、その記憶素子のプログラム速度が減速され、閾値電圧がVvbに達した時に、記憶素子はさらなるプログラムからロックアウトされる。一つの手法では、最高位の状態については、いくらかのオーバーシュートは基本的に許容されるので、低速プログラムモードを使用しなくてもよい。その代わり、消去状態よりも高く、最高位の状態よりも低いプログラム状態に関しては、二重の検証レベルを使用することができる。
図7bは、2つの異なるページ(下側ページと上側ページ)に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図7aと同じく閾値電圧分布700、702、704及び706によって4つの状態が示されている。これらの状態及びその示すビットは、状態E(11)、状態A(10)、状態B(00)及び状態C(01)である。状態Eの場合、両方のページが「1」を記憶する。状態Aの場合、下側ページが「0」を記憶し、上側ページが「1」を記憶する。状態Bの場合、両方のページが「0」を記憶する。状態Cの場合、下側ページが「1」を記憶し、上側ページが「0」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることもできる。
第1プログラムパスでは、記憶素子の閾値電圧レベルが、下側の論理ページにプログラムされるビットに応じて設定される。そのビットが論理「1」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「0」であれば、矢印730で示したように、記憶素子の閾値レベルは状態Aになるように増大される。これによって、第1プログラムパスを終了する。
第2プログラムパスでは、記憶素子の閾値電圧レベルが、上側論理ページ内にプログラムされるビットに応じて設定される。上側論理ページビットが論理「1」を記憶する場合、記憶素子は下側ページビットのプログラムによって状態E又はAの一方にあり、どちらも上側ページビットは「1」を保持するのでプログラムは生じない。上側ページビットが論理「0」となる場合、閾値電圧はシフトされる。第1パスによって記憶素子が消去状態Eに留まっていれば、第2段階では記憶素子をプログラムして、矢印720で示すように閾値電圧を状態Cとなるように増大させる。第1プログラムパスの結果として記憶素子が状態Aにプログラムされていれば、記憶素子はさらに第2パスでプログラムされ、矢印710で示すように閾値電圧を状態Bとなるように増大させる。第2パスは、下側ページのデータを変更することなく、上側ページに論理「0」を記憶するように指定された状態に、記憶素子をプログラムする。
ここで、低速プログラムモードは、この技術にも用いることができる。
一つの手法では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラム処理は受け取ったデータを用いて下側ページプログラムを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体(又は大部分)を充填するために次の十分なデータを受け取った場合、全シーケンスプログラムモードに変換する。
その他の考えられる手法として、第1ステップでは、下側ページをプログラムする。下側ページがデータ1のままである場合、記憶素子状態は状態Eに留まる。データが0にプログラムされる場合、記憶素子が状態Aと状態Bの間に広がる中間状態にプログラムされるように、記憶素子の閾値電圧を上昇させる。
上側ページのプログラムでは、記憶素子が消去状態Eであって上側ページが1に留まる場合、記憶素子は状態Eに留まる。記憶素子が状態Eであり、その上側ページデータが0にプログラムされる場合、記憶素子の閾値電圧を上昇させ、記憶素子を状態A(分布1004)にする。記憶素子が中間閾値電圧分布であって上側ページデータが1に留める場合、記憶素子は目標状態Bにプログラムされる。記憶素子が中間閾値電圧分布であって上側ページデータをデータ0とする場合、記憶素子の閾値電圧を上昇させ、記憶素子を状態Cとする。
上述したプログラムの例は、4つのデータ状態及び2ページのデータに関するものであるが、ここで教示する概念は、4つの状態より多い又は少なく、2ページより多い又は少ない他の実装例にも適用することができる。例えば、各記憶素子ついて8又は16の状態を取り得るメモリ素子が、現在、計画されている、又は生産中である。
さらに、前述のプログラム手法の例では、記憶素子が目標データ状態にプログラムされるにつれて、記憶素子のVthが上昇していく。しかしながら、記憶素子が目標データ状態にプログラムされるにつれて、記憶素子のVthが低下していくプログラム手法を採用することもできる。記憶素子電流を測定するプログラム手法も採用することができる。本明細書の概念は、種々のプログラム手法に適合されうる。
図8は、プログラム動作中に選択ワードラインに印加される一連のプログラム及び検証パルスを示す。プログラム動作は、複数のプログラム反復を含んでもよく、その場合、各反復では、一又は複数のプログラムパルス(電圧)とこれに続く一又は複数の検証電圧とが、選択ワードラインに印加される。一つの可能なアプローチでは、プログラム電圧は連続する反復においてステップアップされる。さらに、プログラム電圧は、パス電圧(Vpass)レベルを有する第1の部分、例えば、6〜8ボルトと、これに続くプログラムレベルの第2の部分、例えば、12〜25ボルトを含んでいてもよい。例えば、第1、第2、第3、及び第4のプログラムパルス800、802、804、及び806は、それぞれVpgm1、Vpgm2、Vpgm3、及びVpgm4などのプログラム電圧を有する。各プログラムパルスの後には、Vva、Vvb、及びVvcなどの一又は複数の検証電圧の組808が提供されてもよい。記憶素子がすべて最低プログラム状態(例えば、A状態)に達しているとは考えられないので、場合によっては、一又は複数の初期プログラムパルスに検証パルスが続かないこともある。その後、プログラム反復では、A状態に対して検証パルスが使用され、例えば、これにA状態及びB状態に対して検証パルスを使用するプログラム反復と、B状態及びC状態に対して検証パルスを使用するプログラム反復とが続く。
一つのオプションでは、偶−奇プログラムパルスが使用される。この場合、一度の反復プログラムでは、偶数ビットラインの選択記憶素子をプログラムするための一のプログラムパルスが使用され、これに奇数ビットラインの選択記憶素子をプログラムするための別のプログラムパルスが続き、さらに偶数及び奇数ビットラインの両方に対して一又は複数の検証パルスが続く。
図9は、一組の記憶素子に対するマルチパスプログラム動作を示す。図示された構成要素は、より大きい組の記憶素子、ワードライン、及びビットラインのサブセットであってもよい。一つのアプローチでは、WLn−1の記憶素子、例えば、記憶素子902、904、及び906は、第1のプログラムパスでプログラムされる。このステップは円で囲まれた「1」で表される。次の(「2」)では、WLnの記憶素子、例えば、記憶素子912、914及び916が、第1のプログラムパスでプログラムされる。この例では、ワードラインがプログラムのために選択されるとき、各プログラムパルスの後に検証動作が行われる。WLnに対する検証動作中に、一又は複数の検証電圧がWLnに印加され、パス電圧がWLn−1及びWLn+1を含む残りのワードラインに印加される。選択ワードラインに対して検知動作が行われるよう、非選択記憶素子をターンオンする(導通状態にする)ためにパス電圧が使用される。次の(「3」)では、WLn−1の記憶素子が、第2のプログラムパスでプログラムされる。次の(「4」)では、WLn+1の記憶素子が、第1のプログラムパスでプログラムされる。次の(「5」)では、WLnの記憶素子が、第2のプログラムパスでそれぞれの目標状態にプログラムされる。
図10aは、チャネル−フローティングゲート結合とフローティングゲート−フローティングゲート結合とを示すNANDストリングの断面図を示す。ビットライン即ちNANDストリングの方向は紙面に垂直であり、ワードラインの方向は左から右に向かう。ワードライン1000は複数のNANDストリングにわたる。第1のNANDストリングは、チャネル領域(CH)1016を含む。図2及び3に関して述べたチャネル領域も参照されたい。第1のNANDストリングの記憶素子1010は、制御ゲート(CG)1012と、フローティングゲート(FG)1014を含む。制御ゲート(CG)1012は、ワードライン1000の一部である。第2のNANDストリングは、チャネル領域1026を含む。第2のNANDストリングの記憶素子1020は、制御ゲート1022と、フローティングゲート1024を含む。制御ゲート1022は、ワードライン1000の一部である。第3のNANDストリングはチャネル領域1036を含む。第3のNANDストリングの記憶素子1030は、制御ゲート1032と、フローティングゲート1034を含む。制御ゲート1032は、ワードライン1000の一部である。
メモリデバイスが小型化されるにつれて、記憶素子間の干渉が次第に重要な役割を果たす。冒頭で述べたように、これらの干渉の一つは、プログラム中に生じるチャネル−フローティングゲート結合である。全ビットラインプログラムにおいて、プログラムを受ける選択ワードライン1000の選択記憶素子1020を考える。同じワードライン1000上の隣接ビットラインの隣接記憶素子(例えば、1010及び/又は1030)はその目標データ状態に達すると、以後のプログラムからロックアウトされる。その結果、次のプログラム反復では、ロックアウトされた記憶素子又は非選択記憶素子の基板チャネル領域(例えば、1016及び/又は1036)がブーストされて、プログラムパルスが選択ワードライン1000に印加されるときに、非選択記憶素子のフローティングゲート(例えば、1014及び/又は1034)が上昇されるのを阻止する。しかしながら、チャネル(例えば、1016及び/又は1036)でブーストされた電位は、チャネル1026が0Vなどの一定電圧に保たれる場合に、選択記憶素子1020のフローティングゲート1024に結合し、プログラムパルスが印加されるときフローティングゲート1024とチャネル1026との間の実効電場の上昇をもたらす。結合の大きさは、チャネル電位及び結合係数に依存する。このため、選択記憶素子のVthに所望以上の大きい上昇が生じる。したがって、記憶素子のVth分布は、図7aに示すように無用に広がってしまう。
チャネル−フローティングゲート結合に加えて、フローティングゲート−フローティングゲート結合も選択記憶素子で見られる実効Vpgmを増加させる可能性がある。これは、フローティングゲート1014及び/又は1034からフローティングゲート1024への結合によって表される。
例えば、0.2Vのステップサイズのプログラム電圧がワードライン1000に印加されると、チャネル1016からの結合によって、フローティングゲート1024の電位は、0.3Vなど、ステップサイズがより高く、かつチャネル1016からの結合がなかった場合に予想される大きさだけ上昇することがある。チャネル1036からの結合も同様に、フローティングゲート1024の電位を予想よりも上昇させることがあり、それによって予想されるよりも速いプログラムが行われる。このことは、主に、隣接ビットライン/NANDストリングが同時にプログラムされる全ビットライン(ABL)プログラム手法に関する。ABLの場合、隣接記憶素子は、プログラムの開始時にチャネルが0Vのプログラム記憶素子であることがある。プログラムが進むにつれ、隣接記憶素子は、例えば8Vといった高くブーストされたチャネル電圧を有する禁止記憶素子へと変化する。この突然の変化によって、隣接記憶素子では、プログラムするための電場が突然に増加されてしまうことがある。
ABLプログラムの一つの特徴は、プログラム終了時点がきわめて不規則で予測不可能なことである。前述の偶数/奇数プログラム手法では、偶数NANDチェーンがプログラムされるときに、奇数NANDチェーンは選択されず、逆も同様である。非選択NANDチャネルは、プログラムシーケンスの初めから、高い電位で常にブーストされる。チャネル−フローティングゲート結合は、選択記憶素子がプログラムに対して比較的高い電場を有効に受けるようにするが、選択記憶素子は比較的高い電場を受ける第1のプログラムパルスで比較的速くプログラムされるだけである。後続のプログラムパルスは非選択記憶素子の隣接チャネルからの一定の結合による影響を受けず、従って、定常状態のプログラムに続く選択記憶素子に対する突然のVth変化は生じない。偶数/奇数プログラム手法は、チャネル−フローティングゲート結合による副次的悪影響がないという利点を有するものの、そのパフォーマンスはABLプログラムのパフォーマンスの半分にすぎない。従って、パフォーマンスにおいて不利な条件のないABLプログラムにおいて、補償手法をものにすることに価値がある。
ABLプログラムの場合、選択記憶素子に対する突然の電場変化を解消するために、選択記憶素子のチャネルは、一定電圧、例えば、0.5Vで補償することができ、それによってフローティングゲートからチャネルへの実効電圧を減らすことができる。このチャネルバイアスは、図3に示すように、選択ゲートSGDからビットラインを通じて供給することができる。ビットライン341の電圧は、ゲート電圧342を適切なレベルまで上昇させることによって、チャネル330に伝達することができる。ビットライン−ビットライン結合は、ビットラインが互いに非常に接近しているので、比較的強力である。この事実は、チャネル電位を変調するために必要なビットライン電位を得るために利用することができる。
図10bは、非選択ビットラインから選択ビットラインへの結合を示す。矢印で表される結合は、非選択ビットラインから選択ビットラインに対して起こりうる。このような結合は、隣接する両方の非選択ビットラインが選択ビットラインに結合するときに最も高い。このビットライン結合は、選択記憶素子のチャネル電圧を補償し制御するために利用されうる。
一般に、選択ビットラインによって受ける結合は、一又は複数の隣接ビットラインのパターンに依存する。例えば、結合は一又は複数の非隣接ビットラインから受ける。また、結合効果が波及効果によってビットラインのチェーンを越えて伝わることもありうる。パターンU1−S2−S3−S4−U5を有する一連の隣接ビットラインを考える。ここで、U及びSは、それぞれ非選択ビットライン及び選択ビットラインを表す。S3では、U1及びU5が非隣接ビットラインではあるものの、これらのビットラインからの結合を受けることもある。隣接ビットライン間の結合比は、比較的高く、例えば45%となることがあり、これとは別に5%が次の次に隣接する記憶素子の結合又はグラウンドからのものとなる。別のビットラインから2ビットライン離れているビットラインからの結合は45%×45%=20.25%であり、これは有意である。それゆえ、S3は全体で結合の40.5%を受ける可能性があり、これは選択記憶素子が片側に隣接する隣接非選択記憶素子を有する場合に非常に近い。結合効果には意図的結合効果と非意図的結合効果とがある。U5からS4まで、又はU1からS1までの結合は、U5からS4まで及びU1からS1までのチャネル結合効果を補償するためにスローダウン効果を提供する意図的結合である。U1及びU5の両方からのS3ビットライン結合(例えば、40.5%)は、45%の直接結合効果に非常に近く、非意図的結合効果であり、望ましくないプログラムのスローダウンをもたらす。S2及びS4はS3に関連する選択記憶素子のフローティングゲートを結合するために禁止チャネルを有していないので、S3はその直接隣接記憶素子、すなわち、S2及びS4からの結合による影響を受けない。
チャネル−フローティングゲート結合を抑制するための様々なアプローチとして、前述の偶数−奇数プログラムパルスの使用が挙げられる。しかしながら、これはパフォーマンスに不利な条件をもたらす。また、非選択記憶素子に対するブーストを抑制することが可能であるが、そうすることでプログラム外乱のリスクが増す。低速プログラムモードにおいてビットラインをフロートさせる手法も考えられるが、効果的に実施することが困難である。このような実施態様においてフローティング状態にされる禁止ビットラインは、低速プログラムモードビットライン(低速プログラムモードの選択記憶素子に接続されたビットライン)によって結合し得るが、禁止Vblにおける最後の昇圧は、低速プログラムモードビットラインを結合するには十分でなく、プログラムを十分にスローダウンできないことがある。別のアプローチは、比較的小さいプログラムパルスステップサイズを採用するものである。しかしながら、これもパフォーマンスに不利な条件をもたらす。
図11aは、オフセット及び目標検証レベルを使用するとともに結合効果を抑制するプログラム手法例の閾値電圧分布1100、1102、1104及び1106を示す。
一つのアプローチでは、A状態及びB状態記憶素子がまず高速プログラムモードでプログラムされ、この後、これらのVthがそれぞれの目標検証レベルに近づくと低速プログラムモードでプログラムされる。C状態記憶素子は、パフォーマンスを高めるために低速モードを有していない。図7aに関連して述べたように、低速及び高速プログラムモードは、比較的狭いVth分布を実現するために採用されうる。記憶素子は、最初、そのビットラインを0Vとする高速プログラムモードによって、消去状態から比較的高い状態にプログラムされうる。記憶素子はその目標検証レベルから離れているため、結合によって生じる突然のVthの急上昇が、所望のVth範囲を超えて記憶素子をオーバープログラムすることはない。よって、結合効果は無視されうる。記憶素子のVthが、それぞれ目標検証レベルVva又はVvbからオフセットされたVvaL又はVvbLなどのオフセット検証レベルに合格すると、記憶素子は低速プログラムモードに入り、そこでは、Vblを例えばVslow=0.6〜0.8Vに上昇させるなどして、各プログラムパルスに伴うVthの増加率を低減させる。記憶素子が低速プログラムモードにあるとき、即ち、その目標検証レベルに近いときは、正確な制御が求められるので、結合効果は補償されるべきである。チャネル結合効果を補償するためには、意図的なスローダウンに加えて、追加的なスローダウンが必要である。この手法はダブルスローダウン(DSD)と呼ばれることがある。追加的なスローダウンを行う一つのアプローチは、VblをVslowに上昇させた後に、ビットラインをフローティング状態にすることである。記憶素子のVthが目標検証レベルに合格すると、記憶素子はそのVblを上昇させることによってさらなるプログラムからロックアウトされる。
なお、目標に近づいたときに行う意図的なスローダウンを伴う最終プログラム手法は、必ずしも必要とされない。
別のアプローチでは、一つのプログラム速度モードが採用されるが、オフセット及び目標検証レベルでの検証動作も実施する。この場合、データ状態のオフセット検証レベルに達すると、データ状態にプログラムされる必要のある選択記憶素子のビットラインはフローティング状態にされる。これは、他のいくつかのアプローチの場合と同様に、Vblをさらに高く駆動することなく実施することができる。データ状態の目標検証レベルに達すると、これらの選択記憶素子に対するビットラインはロックアウトされる。
オフセット検証レベルVvaL及びVvaBは、それぞれ、A及びB状態記憶素子に対するトリガー検証レベルであると考えることができ、ビットラインフローティング及び/又はVbl=Vslowと設定することをトリガーする。
しかしながら、これらのアプローチでは、追加的な検証動作が採用され、パフォーマンスに不利な条件がもたらされる。
図11bは、プログラム手法の一例における閾値電圧分布を示す。この手法は、プログラム動作を通じてただ一つのプログラム速度モードと一の状態あたり一の検証レベルとが使用される場合における結合効果を抑制する。この場合、記憶素子は、高速プログラムモード又は禁止モードのいずれかにある。チャネル−フローティングゲート結合を補償するために、Vthの範囲は、付加的な検証動作を追加することなく、3つの領域(4つのデータ状態が使用されるもの仮定として)に分割することができる。Vva未満の第1の領域において、B状態及びC状態の記憶素子は、これらの目標から離れているので高速プログラムモードとすることができる。A状態記憶素子については、必要に応じて、これらに接続されたビットラインをフロートさせることにより、スローダウンすることができる。フローティング状態のビットラインは、隣接記憶素子が禁止されたときに隣接ビットラインによって結合されうる。A状態記憶素子は、Vvaを通過した後、禁止される。
Vva〜Vvbの第2の領域では、B状態記憶素子がVvaを通過したら、これらに接続されたビットラインをフロートさせ、隣接記憶素子の禁止ビットラインからの結合を受けるようにする。それにより、B状態記憶素子はスローダウンしてオーバープログラムが防止される。Vvbを超える第3の領域では、B状態記憶素子はB検証レベル(Vvb)を通過した後、禁止される。C状態記憶素子は、Vvcに達するまで高速プログラムモードとされる。目標検証レベルVva及びVvbは、それぞれB状態及びC状態記憶素子に対するトリガー検証レベルと見なすことができ、ビットラインフローティングをトリガーする。
この手法では、プログラム動作のすべて又は選択された一部分において、一又は複数の隣接する非選択ビットライン、あるいは近傍に位置する他の非選択ビットラインが存在するときに、これらのビットラインからの結合を許容して、選択ビットラインに対するプログラム速度を低下させることが可能である。なお、この手法は、一又は複数の隣接する非選択ビットラインがあるかどうかを把握する必要がなく、それにより、この情報を得るためのステップと、それに応じたパフォーマンスの低下を避けることができる。プログラム速度は、存在する結合の大きさに応じて自動的に低減される。特に、選択ビットラインをフローティング状態にすると、ビットラインは隣接する非選択ビットラインによってより高く結合されうることになる。およそ3pFの大きい静電容量を有するビットラインは、非常に小さい静電容量(おそらく、3pFの1%)を有する接続されたチャネルに対する電源としての役割を果たしうる。結合電圧を有するビットラインの場合、チャネルはビットラインと同じ電圧にある。禁止ビットラインの電圧は、チャネルがフローティング状態にありかつビットラインから切り離されるパストランジスタSGDに対して十分に高い。フローティングチャネルは、ワードライン電圧を上昇させることによって後で結合され、高いブースト電圧を実現して以後のプログラムを阻止する。
選択記憶素子のビットラインをフローティング状態にし、補償の一形態として低速プログラムを行うとの指示は、後述するように、「スローダウン」ビットをUDLラッチに設定することによって行うことができる。
理想的に、フローティング状態のビットラインを介したスローダウンは、目標検証レベルの前の約500mVで行われるべきである(500mVという最悪時のチャネル−フローティングゲート結合を仮定して)。A状態及びB状態記憶素子に関して前述したようなフローティング状態のビットラインを介したスローダウンを行うことは、およそ2つの新たな検証パルスを追加するという結果になり得る。しかしながら、プログラムパルスはC状態プログラムと共有されるので、新たなプログラムパルスは生じない。C状態記憶素子に対するスローダウンは、およそ2つの新たなプログラムパルスを追加するという結果になり得る。しかしながら、このようなトレードオフによって、比較的狭いVth分布が得られる。パフォーマンスにおける不利な条件を抑制するために、一つの実施態様では、C状態記憶素子をスローダウンしないことである。記憶素子の他の状態へのプログラムのほとんどは、C状態記憶素子がプログラムを継続しているときに禁止されるので、実際のところ、C状態は、他の2つの状態A及びBよりも、チャネル−フローティングゲート結合効果の確率が低い。さらに、C状態記憶素子がこれらの検証レベルに達する前に、隣接する記憶素子が多くのプログラムパルスから禁止される場合、Vth分布がチャネル−フローティングゲート結合現象によって広げられることはない。
なお、比較的多くのビットラインがプログラム動作の初期に接地されるとき、接地ビットラインは一般にビットライン間の結合を阻止するので、ビットライン間の結合の機会は少ない。
さらに詳しくは、図8に示すような階段状に増加するVpgmが使用されるものと仮定する。典型的には、A状態記憶素子のプログラムに第1の組のプログラムパルスが使用され、B状態記憶素子のプログラムには重複する第2の組のプログラムパルスが使用され、C状態記憶素子のプログラムには重複する第3の組のプログラムパルスが使用される。ビットラインフローティングに起因して、A状態段階の初期にいくらかのスローダウンがあるものと仮定しよう。この場合は、スローダウンがない場合に比べて、A状態プログラム段階が遅く終了することになる。さらに、B状態に対するスローダウンがある場合、やはりスローダウンがない場合に比べて、B状態プログラム段階が遅く終了することになる。しかしながら、記憶素子は同じプログラムパルスを共有するので全プログラム時間が増加しないことから、A状態及びB状態記憶素子のプログラムにより長い時間を費やし、かつより多くの検証動作を実施することが容認される。全体のプログラム時間は、最高位の状態に対するプログラム時間に基づくことになる。
それゆえ、C状態記憶素子がスローダウンされると、全プログラム時間に関して不利となりうる。なお、一般に、チャネル−フローティングゲート結合効果は、比較的稀なことではあるが、隣接ビットラインがロックアウトされたときに、ビットラインがほとんどロックアウトされる可能性がある。この稀な事象がC状態と結合することはさらに稀な事象である。C状態記憶素子をスローダウンすると、全プログラム時間が、例えば2回のプログラム反復分だけ、増加する可能性がある。
図11cは、図11a及び11bに関係したプログラムプロセスの例を示す。プログラム動作はステップ1120において開始する。プログラム反復はステップ1122において開始する。
一つの手法では、図11aに対応して、ステップ1124において、ビットラインはオフセット検証レベル(選択記憶素子の目標検証レベルよりも低い検証レベルである)に達していない選択記憶素子に対して接地され、ビットラインはオフセット検証レベルに達している選択記憶素子を補償するためにフロートされる。例えば、VvbLはB状態記憶素子に対するオフセット検証レベルであり、この場合、目標データ状態はB状態であり、目標検証レベルはVvbである。一つの選択肢として、例えば、ビットラインがVslowよりもわずかに高いレベルでフローティング状態となるように、ビットラインをフロートさせる前に、Vbl=Vslowと設定することができる。あるいは、例えば、ビットラインが0Vよりもわずかに高いレベルでフローティング状態となるように、ビットラインをフロートさせる前にVbl=0Vと設定することもできる。
別の手法では、図11bに対応して、ステップ1126において、選択記憶素子がその目標データ状態よりも低い特定の低データ状態の目標検証レベル(選択記憶素子の目標検証レベルよりも低い検証レベルである)に達していなければ、その選択記憶素子のビットラインを接地し、選択記憶素子が当該特定の低データ状態の目標検証レベルに達していれば、その選択記憶素子のビットラインを補償のためにフロートさせる。例えばVvaは、B状態という目標データ状態よりも低いデータ状態の目標検証レベルである。すなわち、A状態は、B状態よりも1状態だけ低い。状態Er(比較的高いE状態とは異なる消去状態を示す)、A、B、C、D、E、F、及びGを有する8レベルデバイスでは、状態Dは、例えば、状態Fよりも2状態だけ低い。
ステップ1132では、フローティング状態のビットラインを結合するために、非選択ビットラインの電圧が昇圧される。ステップ1134では、プログラムパルスが印加される。
ステップ1128では、非選択ワードラインのVpassを上昇させる。これは、選択ビットラインのフローティングを開始する前又は後に行うことができる。ステップ1130では、Vpassを上昇させる前又は後に、あるいは選択ビットラインをフロートさせる前又は後に、Vsgdを昇圧する。Vsgdは、Vpgmが上昇されると同時に(チャネルブースティングがVpassに依存するときはVpgmの前に、チャネルブースティングがVpgmに依存するときVpgmの後に)、昇圧することができる。これは、禁止ビットラインの昇圧を有しない通常のプログラムにおける任意のステップである。後述する図15は、図11cのステップの一部を示す。例えば、接地されたビットライン(1524)のVblや、フローティング状態にあるビットライン(1522)のVblが示されている。ここで、フローティングはt8で開始され、t8において非選択ビットラインのVblが昇圧され(1518)、選択ビットラインのフローティング(t8における)の前(t7)に非選択ワードラインのVpassが上昇され(1529)、選択ビットラインのフローティング(t8における)の後(t9における)に非選択ワードラインのVpassが上昇され(1528)、Vpassを上昇させた後(それぞれt7〜t9における)にVsgdを昇圧する(それぞれ、t9又はt10における1530又は1531)。Vsgdは、記憶素子とそれぞれのビットライン(例えば、図3における321、341、及び361)との間に設けられたドレイン選択トランジスタ(例えば、図3における322、342、及び362)のゲート電圧である。
ステップ1136では、検証動作が実施される。検証動作の結果は、目標検証レベルに達した選択記憶素子のビットラインをロックアウトするために使用される。ステップ1138では、検証動作の結果に基づいて、検知回路におけるラッチが更新される。判断ステップ1140では、次のプログラム反復がある場合、ステップ1122において次のプログラム反復の処理へと継続する。判断ステップ1140がNOであれば、プログラム動作がステップ1142において終了する。
なお、ステップ1124、1128、1130、1132及び1134は、その少なくとも一部分が時間的に重なってもよい。同様に、ステップ1126、1128、1130、1132及び1134も、その少なくとも一部分が時間的に重なってもよい。概して、結合されたビットラインは、非選択ビットラインが昇圧される前に、フローティングされているべきである。さらに、所望のビットライン及びSGD電圧は、Vpgmが印加されるときまでに確立されているべきである。
なお、本明細書に記載される様々なプログラム手法は、制御回路の適切な論理によって実施されうる。
図11dは、それぞれのビットラインに対するデータラッチを示す。前述のように、データラッチは、スローダウンビットを記憶するために使用されうる。このビットは、接続された記憶素子が、プログラム動作の少なくとも一部の間でそのビットラインがフロートされ、スローダウンされるべきであることを示す、一つの値(1)を有することができる。このビットは、接続された記憶素子がスローダウンされるべきでなく、プログラム動作の少なくとも一部の間でそのビットラインを接地することによって、高速プログラムされるべきであることを示す、もう一の値(0)を有することができる。ビット値は、プログラム動作中に変化し、ビットラインを適切に制御するために、典型的には接続された検知回路を介して、制御回路によって読み出される。
一般に、各々が1ビットのデータを記憶する複数のデータラッチを、各ビットラインに対して設けることができる。ラッチは、接続された記憶素子がプログラム動作において所定の管理点に達していることを識別する。例えば、ラッチは、記憶素子がまだプログラムを終了していないこと(例えば、そのVthがVva、Vvb、又はVvcなどの目標検証レベル未満であること)、あるいはプログラムを終了していること(例えば、そのVthが目標検証レベルを超えること)を識別してもよい。また、ラッチは、記憶素子のVthがオフセット検証レベル(例えば、VvaL又はVvbL)未満である、例えば、低速プログラムモードにおいてオフセット検証レベル(例えば、VvaL又はVvbL)を超えるが目標検証レベル(例えば、Vva、Vvb、又はVvc)未満である、あるいは目標検証レベルを超えることを識別してもよい。
XDLラッチと称される第1の組のラッチ1201は、ラッチ1200、1202、1204、1206及び1208を含む。XDLラッチは、例えば、データの下位ページを記憶するために使用されうる。XDLラッチは、下位ページビットが接続された記憶素子に記憶されたときに反転される。UDLラッチと称される第2の組のラッチ1211は、ラッチ1210、1212、1214、1216及び1218を含む。一つの可能な実施態様では、UDLラッチは、接続された記憶素子が低速プログラムモードにあるとき、例えば、そのVthがオフセット検証レベルと目標検証レベルの間にあるときに反転される。図11aの実施態様では、UDLラッチは、接続された記憶素子のチャネルがフローティング状態にある低速プログラムモードからそのチャネルが接地される高速プログラムモードに遷移するとき反転されるビットを記憶する。LDLラッチと称される第3の組のラッチ1221は、ラッチ1220、1222、1224、1226及び1228を含む。ラッチは、代表的なビットラインBLi−2、BLi−1、BL、BLi+1及びBLi+2に接続される。LDLラッチは、例えば、データの上位ページを記憶するために使用されうる。LDLラッチは、接続された記憶素子がプログラムを終了するとき、例えば、そのVthがVva、VVb、又はVvcなどの目標検証レベルを超えるとき反転される。
図11eは、図11dのラッチのビット割当を示す。Eは消去状態を示す。Af、Bf及びCfは、チャネルが接地された状態でのそれぞれA状態、B状態及びC状態記憶素子に対する高速プログラムモードを示す。As、Bs及びCsは、ビットラインがフローティングされた状態でのそれぞれA状態、B状態及びC状態記憶素子に対する低速プログラムモードを示す。Ain、Bin及びCinは、それぞれA状態、B状態及びC状態記憶素子に対する禁止モードを示す。lockout及びlockoutlは、検知回路におけるビットラインを制御するためにデータラッチからのそれぞれ第1及び第2のデータ転送を示す。第1の転送は、ダイナミックラッチとしてコンデンサを用いてデータを検知ノードに入れ、この後、データをラッチに転送し、第2の転送は後述するように一部のデータをラッチに戻す。これらのデータ転送は、検知回路における電圧を制御する方法を提供する。例えば、禁止するための一の電圧とスローダウンするための一の電圧を使用してもよい。lockoutlは、ビットラインが低速プログラムモードにあるかどうかを示すために使用されうる。
この実施態様では、UDL=1は低速プログラムモードがA、B及びC状態に対して効力があることを示す。プログラム中、制御回路は選択記憶素子に対するラッチデータを読み出し、データに応じて、選択記憶素子がそのビットラインをフローティング状態又は接地された状態のいずれでプログラムされるべきかを判断する。制御回路は、この後、対応するデータを検知回路に転送する。
図12は、補償なしの高速プログラムモード、補償付きの低速プログラムモード、及びロックアウト/禁止条件に対するデータ状態の閾値電圧範囲を示す。一般に、チャネル−フローティングゲート結合は、Vthの増加率のより正確な制御が必要とされるときに、低速プログラムモードにある記憶素子に対して最も重要となる。最も高い状態(例えば、C状態)では、チャネル−フローティングゲート結合に対する補償が、他の状態の場合ほど重要ではないので、低速プログラムモードが必ずしも使用される必要はない。従って、C状態プログラムは、スローダウンされず、一般的なパフォーマンスの不利な条件が生じない。A及びB状態に対する低速プログラムモードは、さらに2〜3の検証動作などの不利な条件をもたらす。その結果、例えばB状態を例とすると、閾値電圧の範囲1254では、チャネルを接地した状態での高速プログラムを行うことができ、チャネル−フローティングゲート結合に対する補償はしない。この範囲1254はVvbLまで及ぶ。閾値電圧の範囲1256では、チャネル−フローティングゲート結合を補償しながらの低速プログラムが行なわれ、これはVth分布1250に対応する。この範囲1256はVvbLからVvbにまで及ぶ。そして、閾値電圧の範囲1258は、Vvbよりも高く、Vth分布1252に対応するが、ここではB状態記憶素子がロックアウト/禁止状態とされる。上記した説明は、他の状態に対しても適用される。
潜在的な欠点としては、範囲1256の近く、例えば、VvbLの近く及びその直下にある記憶素子は、チャネル−フローティングゲート結合による影響を受け、そのVthがVth分布1252の右端まで急上昇され、Vth分布が広げられるおそれがある。
代替的アプローチは、目標状態にかかわらず、高速プログラムモード記憶素子のビットラインをフロートさせて、そのプログラムをスローダウンすることである。両方の選択肢は、どちらが最適であるかを判断するために、メモリデバイスで実施することができる。
チャネル−フローティングゲート結合を補償する様々なプログラム手法を以下で詳しく説明する。
図13は、一組の不揮発性記憶素子をプログラムする方法を示す。この方法では、隣接ビットラインへの補償結合をもたらすために、禁止ビットラインの電圧が二つの駆動電圧を用いて昇圧される。ステップ1300では、プログラム動作が開始される。ステップ1302では、プログラム動作の反復が開始される。ステップ1304では、禁止された(非選択)記憶素子の第1のグループと、低速プログラムモードにある第2のグループの記憶素子と、高速プログラムモードにある第3のグループの記憶素子とが識別される。第1のグループは非選択記憶素子を示し、第2及び第3のグループは選択記憶素子を示す。この識別は、例えば、制御回路がラッチデータを読み出すことによって行うことができる。第1のグループは第1のビットラインに接続された第1の記憶素子を含み、第2のグループは第2のビットラインに接続された第2の記憶素子を含み、第3のグループは第3のビットラインに接続された第3の記憶素子を含む。記憶素子及びビットラインは、メモリアレイ内で互いにいかなる相対位置にあってもよい。
ステップ1306では、第1の期間において、第1のグループのビットラインがVdd−ΔV(初期レベル)の電源でプレチャージされるとともに、第2及び第3のグループのビットラインが接地される。ΔVは、選択記憶素子で生じるチャネル−フローティングゲート結合を弱める非選択ビットラインから選択ビットラインへの結合をもたらす電圧の上昇分を示す。即ち、選択記憶素子では、チャネル−フローティングゲート結合に起因するフローティングゲート電位の上昇は、そのビットライン電位を上昇させることによって少なくとも部分的に補償される。
ステップ1308では、第1の期間後の第2の期間に、第2のグループのビットラインがVslowまでプレチャージされる。このステップでは、望ましくない結合効果を防止するために、禁止ビットライン及び接地ビットラインが能動的にバイアスされ、それにより、これらのビットラインがフローティング状態にならないようにすることが望ましい。
ステップ1310では、第2の期間後の第3の期間に、第1のグループのビットラインがVdd(昇圧されたレベル)の電源で駆動され、第2のグループのビットラインがフロートされ、第3のグループのビットラインがフロート又は接地される。
同じ期間において、ステップ1309では、フローティング開始の前又は後に非選択ワードラインのVpassを上昇させる。その後、ステップ1311では、Vpassを上昇させる前又は後に、あるいはフローティングの開始後で、Vpgmが選択ワードライン上で上昇される時などに、Vsgdを昇圧される。ステップ1309及び1311は、ステップ1310のタイミングに対して、様々なタイミングで開始することができる。例えば、ステップ1309は、非選択ビットラインの電圧上昇前に非選択ワードライン上のVpassを上昇させるステップ1310の前に開始することができる。あるいは、ステップ1309は、非選択ビットラインの電圧が変化した後に、非選択ワードライン上のVpassを上昇させてチャネルブーストが行わるステップ1310の後で開始することもできる。他の場合では、ステップ1309に続くステップ1311は、非選択フローティングチャネルがまずブーストされ、その後、非選択ビットラインが最終のVddレベルまで上昇され、その後、Vsgdが上昇されるステップ1310に先立って開始することもできる。ブーストを行うステップ1309の後でステップ1310を開始することは、補償ビットライン(隣接する非選択ビットラインによって結合される)に対するチャネルが、それに接続されたチャネルが意図せずブーストされ、プログラムが減速されずに停止されるおそれがないという点で有利である。
さらに、異なる選択ワードラインに対して、異なる手法を採用することができる。この場合、一部のワードラインに接続されたフローティング状態のチャネルは、非選択Vpass電圧によってブーストすることでき(Vpassブースティングと称する)、他の一部のワードラインに接続されたフローティング状態のチャネルは、採用されたブースティングモードに応じて、選択ワードラインのVpgmによってブーストすることができる(Vpgmブースティングと称する)。ステップ1309は、Vpassブースティング及びVpgmブースティングの両方の場合を含みうる。Vpassブースティングの場合、ステップ1309はVpassが上昇される時を示す。Vpgmブースティングの場合、ステップ1309はVpgmが上昇される時を示す。
第1のグループのビットラインを、Vdd−ΔVからVddまで上昇させると、ΔVの昇圧が、ΔVの大きさ及びビットラインのパターンに基づいて、第1のグループのビットラインを第2及び第3のグループのビットラインへ結合させる。選択及び非選択ワードライン上のワードライン電圧は、記憶素子の第1のグループに対して禁止のためにフロートされたビットラインと結合する。記憶素子の第2及び第3のグループに対してフロートされたビットラインは、接続されたビットラインの電圧バイアスとして働き、これらのビットラインはワードラインによって結合されない。これは主としてビットラインとチャネルの間の静電容量差によるもので、大きい静電容量を有するビットラインは小さい静電容量を有するチャネルに対するタンクとして働く。
第1のグループのビットラインからの結合は、第2のグループのビットラインの電位をVslowよりもCr×ΔVだけ上昇させ、ここで、Crは結合比である。同様に、第3のグループのビットラインがフローティング状態にあるとき、第1のグループのビットラインからの結合は、それらの電位をΔV及び結合比に基づいて0Vを超えて上昇させる。しかしながら、別の可能なアプローチでは、第3のグループのビットラインが接地されると、これらのビットラインが0Vに保たれ、ΔVの電圧上昇による影響を受けない。所与の選択ビットラインが受ける結合の大きさは、例えば、電圧上昇されたビットラインまでの距離とこれらのビットラインの数とに依存する。
ステップ1312では、第2及び第3のグループにおける選択記憶素子に対する一又は複数の検証動作を実施する。ステップ1313では、目標データ状態に達したビットラインをロックアウトする。判断ステップ1314では、次のプログラム反復がある場合、処理はステップ1302において継続し、そうでなければ、プログラム動作はステップ1316において終了する。
例として、図13の処理は、図14の検知回路及び図15の時間軸を用いて実施することができる。例えば、第1の期間は図15のt3〜t6に対応し、第2の期間はt6〜t7又はt6〜t8に対応し、第3の期間はt7〜t11又はt9〜t11に対応しうる。
図14は、図13の方法とともに採用される検知回路を示す。この検知回路では、駆動電圧がビットラインをバイアスするために使用される。様々な検知回路の構成を採用することができる。ここで説明する様々な検知回路の動作は、同様の名称の構成要素が共通の機能を果たしうることに留意して、これらの記述の集合に基づいて理解することができる。多くの検知回路、例えば、平面上の64Kの検知回路は、他に指定がない限り、典型的には共通の制御信号を受け取り、一又は複数の共通電源にアクセスする。例えば、図4における共通電源405を参照されたい。例えば、BLX、BLC、CLK、ICO、LCO、及びFCOなどの共通制御信号を以下でさらに説明する。検知回路に近い信号の例として、以下でさらに説明するBUS、SEN、LAT、及びFLGがある。電源に関しては、大きなグループの検知回路の端にある包括的回路によって、検知回路内のトランジスタゲート電圧が提供される。これらはVdd+Vthなどの高い電圧であってよい。ゲートには容量性の負荷が加わるので、ゲートには高い電圧を使用することができる。しかしながら、検知回路のドレイン/ソース電圧に対しては、多量の電流が消費されるのを回避するために、電源はVddに制限される可能性がある。
検知回路1490と同等の回路が、各ビットラインに対しては個別に設けられてもよく、それらの検知回路は、ビットラインに接続された記憶素子が、プログラムを禁止されているのか、低速プログラムモードにあるのか、高速プログラムモードにあるのに応じて、異なるように構成される。一又は複数の制御回路は、各検知回路に対してそれら構成するための指令を送ることができる。また、読取りデータ及び書込みデータなどの、データを交換することもできる。
検知回路は、データを記憶するために設けられたラッチの数と、ビットラインに与えられる電圧の数によって特徴付けられうる。ここで説明する手法は、検知回路を可能な限りコンパクトで実効的なものにしつつ、検知回路の機能を最適に活用する。実施態様の例は、2つのラッチを含み、ビットラインに3つの電圧、すなわち、0V、低速プログラムモード電圧、Vslow、及びVddを供給しうる。凡例1491を参照されたい。凡例は、どの構成要素がどの電圧を設定するために使用されるかを示す。一つのラッチ1471は、LAT1480及びその相補的なノードINV1462におけるフルラッチであり、他のラッチはSEN1454に記憶ノードと接地板としてクロック(CLK)ノード1453とを有するコンデンサ1452によって提供されるダイナミック・コンデンサ・ラッチである。
ここでの検知回路のトランジスタは、例えば、nMOSFET(nMOS)及びpMOSFET(pMOS)を含んでいてもよい。NANDストリング1450は、検知回路1490に接続されており、複数の記憶素子1444、1446及び1448を含む。複数の記憶素子1444、1446及び1448は、ワードラインWL63、WL62、・・・、WL0に接続されているとともに、例えば、SGDトランジスタ1442を介してビットライン(BL)1440に接続されている。また、NANDストリング1450は、複数のNANDストリングに対する共通ソースライン1451に接続されたソース選択ゲートSGS1449を含む。ビットライン1440は、BLSトランジスタ1438及びBLC(ビットラインクランプ)トランジスタ1428に接続されており、BLC(ビットラインクランプ)トランジスタ1428はCOM1経路1426に結合されている。BLSトランジスタ1438は、低電圧トランジスタを有する検知回路をメモリアレイの高い電圧から分離しうる高電圧トランジスタである。検知中、BLSは導通状態にある。BLCトランジスタは、そのゲート電圧とトランジスタのドレインのVddなどの十分に高い電圧の電源とを制御することによってビットラインの電圧をクランプしうる。
BLCトランジスタ1428は、ソース(S)側及びドレイン(D)側を有する。INVトランジスタ1430への入力は、LATトランジスタ1432への入力の反転であり、LATトランジスタ1432は、pMOS1432のnウェルに対する端子1434を介して電源Vddを受け取る。これらのトランジスタはソースグランド(SRCGRD)ノード1436に接続される。同様に、LATトランジスタ1420への入力は、INVトランジスタ1424への入力の反転であり、INVトランジスタ1424は、pMOS1424のnウェルに対する端子1422を介してVddを受け取る。
一の経路では、BLXトランジスタ1412は、COM2経路1418、COM3経路1411、及びQSWトランジスタ1406の間に及んでおり、QSWトランジスタ1406はさらに電源端子1404に接続される。別の経路では、HLLトランジスタ1414及びXXLトランジスタ1416はCOM2経路1418及びSENトランジスタ1410の間に及んでおり、SENトランジスタ1410はさらに電源端子BCP1408に接続される。HLLトランジスタ1414は、SENノードにおける電圧をセットアップするために検知動作の開始時にSENノード1454における初期電圧を設定する。XXL、SET、及びBUSは、BUS1468の電圧に応じてSENが放電期間後に、例えば、0Vに放電されるか、それともVddに保たれるかを判断するために検知動作において制御される。コンデンサ1452は、トランジスタ1410を導通状態にあるように制御することによって、ノード1408がビットラインにつながるようにビットラインが能動的にVbcpでバイアスされるべきかどうかを判断するデータを記憶するために使用されうる。さらに、非選択ビットラインに対するVbcpのVdd−ΔVからVddへの昇圧は、後述するように、結合補償が選択ビットラインに対して必要かどうかを判断するためのプロセスの一部として使用されうる。
一つの可能なアプローチでは、Vbcpノード1408は、出力又はVddの駆動電圧を供給する第1の電源1401、あるいは出力又はVdd−ΔVの駆動電圧を供給する第2の電源1403を選択するスイッチ1402に接続される。電源は、例えば、1.7〜2.5Vの範囲にあってもよい。電源は独立していてもよく、あるいは2つの出力を使用する一の電源が提供されてもよい。スイッチ1402を制御するために制御信号SWが使用されてもよい。すべての感知回路に対する大域的制御部である電源及びスイッチは、検知回路のグループの端に設置されうる。検知回路1490は、ΔVの電圧上昇を提供するために、非選択NANDストリングを表すNANDストリング1450のビットライン1440をVdd又はVdd−ΔVだけ直接駆動するように制御することができ、したがって、選択ビットラインへのΔV結合の精確な制御がビットラインをフローティング状態にする可能性なしに提供されうる。
一つの可能な実施態様では、スイッチを介して1401又は1403のいずれかを選択するために禁止ビットラインの各検知回路に共通制御信号SWが送られる。共通Vdd又はVdd−ΔVは、非選択ビットラインの各検知回路へのそれぞれの経路に提供されうる。なお、SENの制御下にあるトランジスタ1410は、Vdd又はVdd−ΔVがビットラインを伝達しうるかどうかを判断する。
VbcpがVddで固定されると、VblはBLCトランジスタ1428などによるnMOSクランピングによって制御されうる。nMOSクランピングは、BLCゲート電圧(Vgs)に比例するレベルのVblを供給する。一般に、BLCクランピングは、ビットラインをフローティング状態にすることなく、ビットラインの電圧を設定するために使用されうる。しかしながら、時としては、クランプされたBLCは遮断されうる。例えば、設定電圧まで充電するビットラインのプロセス中に、Vblは隣接ビットラインが充電するにつれて結合されうる。電圧が設定電圧を超えて結合されると、BLCトランジスタはVgsがVthよりも低下したときに遮断されうる。したがって、ビットラインはフローティング状態になる。フローティングビットラインは、制御されたレベルで駆動されないが、例えば、フローティング前の過去に駆動されたレベル及び容量結合などの効果に基づくレベルを取る。
特に、Vdd−ΔV及びこの後のVddが、BLCトランジスタ1428のゲートをバイアスすることによって、非選択ビットラインに対して供給されると(例えば、それぞれVdd−ΔV+Vth及びVdd+Vthで)、これらのビットラインがVslowの初期レベルまで充電されるとき、非選択ビットラインは低速プログラムモード記憶素子のビットラインからのビットライン結合を介して結合されうる。これによって、BLCトランジスタ1428は遮断されうる。BLCトランジスタ1428は、そのゲート電圧がその閾値電圧(Vth)とそのソース電圧(Vbl)の和を超えると導通状態になる。非選択ビットラインの電圧が上昇されると、BLCゲート電圧はBLCトランジスタを導通状態に保つほど高くはなくなる。
このフローティング問題を解決するための一つの方法として、BLCトランジスタのドレイン電圧を、切替可能な電源Vbcpを提供する電源1401又は1403により、別々に制御することができる。最初に、非選択ビットラインに対して、BLCトランジスタのドレイン電圧はVdd−ΔVであり、BLCがパスゲートとして働くようにBLCゲート電圧が十分に高いときに、この電圧はチャネルに移される。プレチャージピーク電流、Iccも電圧源ランプ速度によって制御されうる。BLCトランジスタのドレイン電圧は、その後、Vddまで上昇される。CLK1453のステップアップを活用するSENノード1454は、トランジスタ1410でVddを伝達するのに十分な高さである。非選択ビットラインのΔVのステップアップは、これらのビットラインのプログラムを減速するために、選択ビットラインへの結合を意図的に誘発するために採用されうることを思い起こされたい。
低速プログラムモードにおける選択ビットラインに関して、SETトランジスタ1466は、INV1424、LAT1420、BLC1428及びBLS1438トランジスタを介して、ビットライン1440にVslowを供給することができる。COM2経路1418は、SENノード1454からのデータの入出力のために、SETトランジスタ1466を介してバス端子1468に接続される。SENノード1454は、コンデンサ1452を介してCLK端子1453に接続される。また、SENノード1454は、トランジスタ1456を介してINV経路1462に結合され、INV経路1462は、リセット(RST_NCO)トランジスタ1464を介してバス端子1468に結合される。トランジスタ1456は、検知中にストローブ信号を受け取るSTBnトランジスタ1458を介して電源ノード1460に結合される。また、INV経路1462は、STBnトランジスタ1484及びプルダウントランジスタ1486を介して接地される。STBn1458が0VになるとSENノード1454はINVノード1462に反転転送されうる。BUS1468が0Vにあるとき、INVノード1462はトランジスタRST_NCO1464を通じて0Vに初期化されうる。一方、INVノードをVddなどの高い電位に初期化する必要がある場合、BUS1468が0Vにあるとき、SENノード1454は経路XXL1416及びSET1466を介して0に初期化されることになる。
ラッチ1471では、LAT経路1480が、INV経路1462の反転となる。LAT1480は、トランジスタ1478を介して電源ノード1476に結合され、かつトランジスタ1474及びRST_PCOトランジスタ1472を介して電源ノード1470に結合される。また、LAT1480は、プルダウントランジスタ1482を介してグランドに結合される。ゲートSTBn付きのトランジスタ1484は、プルアップ経路1456及び1468と、プルダウン経路1484及び1486との間の「衝突」を排除する。トランジスタRST_PCO1472は、RST_NCO経路1464を通じてINVが0に更新される必要があるときに、プルアップ経路を遮断するためのものである。
図15は、図14の検知回路に関連する時間軸を示す。時刻を示す点t0〜11が示されている。時間軸は正確な縮尺ではない。時間軸は、複数回の反復を含むプログラム動作の一回の反復にわたっており、一又は複数回の検証動作(図示せず)が各反復の時間軸に含まれる期間に続きうる。
波形は、図14の同様の名称の構成要素に対応する。図示の期間で、QSW、HLL、及びXLL=0Vである。波形1502は、BLX/BLCトランジスタゲートバイアスの電圧である。波形1504は、SETトランジスタゲートバイアスの電圧である。波形1506は、BUSの電圧である。波形1508は、RST_NCOの電圧である。波形1509は、検知ノードSENの電圧である。波形1510は、STBnの電圧である。波形1512は、INVの電圧である。波形1514は、CLKの電圧である。波形1516は、Vbcpである。波形1518は、非選択ビットラインのVblである。波形1520は、補償付きの低速プログラムモードにおける選択ビットラインのVblである。波形1522は、ビットラインがフローティング状態にあるときの補償付きの高速プログラムモードにおける選択ビットラインのVblである。破線は、フローティング電圧を表す。波形1524は、ビットラインが接地されているときの補償なしの高速プログラムモードにおける選択ビットラインのVblである。時間軸は、3本の代表的なビットライン、すなわち、禁止又は非選択記憶素子(第1の記憶素子)に接続された第1のビットラインと、低速プログラムモード記憶素子(第2の記憶素子)に接続された第2のビットラインと、高速プログラムモード記憶素子(第3の記憶素子)に接続された第3のビットラインとを考慮することによって理解されうる。
波形1526と波形1528は、t8におけるΔVの昇圧後にVpassが上昇される場合について、選択ワードライン電圧(Vwl)と非選択ワードライン電圧をそれぞれ示す。Δtは、Vpassの立ち上り時間である。波形1527と波形1529は、t8におけるΔVの昇圧前にVpassが上昇される場合について、選択ワードライン電圧と非選択ワードライン電圧をそれぞれ示す。波形1530又は1531は、t8におけるΔVの昇圧の後又は前においてVpassが上昇される場合について、ドレイン選択ゲート電圧(Vgsd)をそれぞれ示す。
t1において、RST_NCOがハイになると、バスノード1468は接地電圧においてINV経路1462に接続され、INV1462は有効に0Vにリセットされる。t2において、SETはno.0〜no.7の検知回路において連続的にハイになる。この実施態様では、検知ブロック500(図6)の共通部分590などの一の回路が、電圧をバス上の8つの検知回路(各々が検知モジュール580に類似している)に連続的に供給し、各検知回路はさらにSET電圧を受け取る。
SENノード1454は、BUSが一部の検知回路に対して0にあるときに放電することができるが、BUSが他の検知回路に対してハイに保たれるときには放電されない。1510において、STBnはローになり、SENノード値の反転はINVノード1462に保存される。
t3において、波形1516は、Vbcpが0Vから初期レベルであるVdd−ΔVに上昇されることを示す。同時点で、波形1502は、BLX/BLC制御ゲート電圧が0VからVsgのレベル、例えば、4〜5Vに上昇されることを示す。この電圧は、BLX/BLCトランジスタをパスゲートとして機能させ、Vdd−ΔVを非選択ビットラインに伝達するのに十分な高さである(波形1518)。Vblを設定するためにBLCクランピングを使用する場合に比べると、非選択ビットラインをフローティング状態にするおそれはない。Vblcが低い場合、ビットラインは前述のようにクランプされてフローティング状態になる。具体的に、t3においてCLKが上昇すると、非選択ビットラインがVdd−ΔVで駆動されるように、SENノード1454がハイレベルにブーストされてSENトランジスタ1410をターンオンする。SENトランジスタ1410及びSGD1442は、パスゲートとして働く。トランジスタ1430及び1432を含む接地経路を通じたt3における選択ビットラインではVbl=0Vである(波形1520、1522、及び1524)。
t4において、SGDは、ドレイン選択ゲートを、Vblが十分に低いときに導通状態にしてビットラインをチャネルに接続されるようにし、Vblが十分に高いときに非導通にして(チャネルはビットラインから遮断されるので)チャネルをフローティング状態にするレベルまで低下される。
t5において、RST_NCO及びINVはデータ転送を行う。低速プログラムモードビットラインでは、t6においてSETトランジスタがビットラインに接続されるときにVslowがビットラインに供給されるように、SETトランジスタはVslow+Vthまで上昇される。
t6において、BUSはVddまで上昇し(波形1506)、低速プログラムモードビットラインに対するVblは、Vslowまで上昇する(波形1520)。
t7において、一つの態様では、Vwl(波形1529)が期間Δtに上昇を開始し、t8においてVpassに達する。図13で前述したように、Vpass立ち上り時間t7は、ビットラインフローティング時間t8に対して調整することが可能である(ステップ1309及び1310)。
t8において、Vddの電圧源(波形1516)の始動により非選択ビットラインが駆動され、ΔVの昇圧を生じさせる。制御信号SWは、Vdd−ΔV電源1403の代わりに、Vdd電源1401が選択されるようにスイッチ1402を制御することができる。その結果、低速プログラムモード記憶素子のビットラインは、より高い電圧に結合される(波形1520)。前述のように、これは低速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めるので有益である。低速プログラムモード記憶素子のビットラインは、これらの検知回路によって普通なら直接的に与えられない補償が提供される。
高速プログラムモード記憶素子のビットラインがフロートされる場合、例えば、SRCGNDをフロートさせる場合、これらのビットライン及びチャネルもより高い電圧に結合される(波形1522)。また、このことは、高速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めるので有益である。高速プログラムモード記憶素子のビットラインが接地される場合(波形1524)、これらのビットラインは0Vに保たれる。高速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めることは必須でないことが多いので、これは容認することができる。ΔVは、特定タイプのメモリデバイスに対して所望レベルの結合を提供するために最適設定されうる設計パラメータである。
所望のチャネル電位が実現された状態で、プログラムパルスが選択ワードラインに印加され(波形1527)、チャネル−フローティングゲート結合が補償されながら、意図したプログラムが行われる。
Vpassは、初期に印加されない場合、t9において印加されてもよく(波形1528)、Vpgmはt10において印加されてもよい(波形1526)。
Vsgdは、t9又はt10において示すように、昇圧されることなく一定に保たれうる。しかしながら、Vsgdは、ビットラインからチャネルに伝達される電圧を決定するレベルにある(Vsgd−Vth>VblであるときVchannel=Vbl)ので、Vpassがt9において上昇した後に(Vwl波形1529及び1527が使用されるとき、波形1531)、あるいはt10において上昇した後に(Vwl波形1528及び1526が使用されるとき、波形1530)、Vsgdを昇圧させることに利点がある。Vsgdが高いほど、大きな電圧がビットラインからチャネルに伝達され、それにより、より大幅なスローダウンが実現される。しかし、Vsgdが高すぎると、Vsgdがブーストされたチャネルに対して漏洩を誘発する可能性があり、その場合、Vsgdの機能はチャネルとビットラインの接続を遮断することである。チャネル静電容量は非常に小さく、したがって、チャネルからビットラインへの小さな電荷漏洩が有害となり、プログラム外乱をもたらす。禁止ビットラインのステップアップに関して、初期のVsgdはVdd−ΔVにおいてチャネルからビットラインへの漏洩を阻止するほど低い値であるべきである。SGDへの隣接ワードライン結合の影響は、ブーストされたチャネルに対するチャネル漏洩を防止するためにVsgdを設定する際に考慮されなければならない。チャネルがブーストされた後、ビットラインはVddまで上昇される。また、VsgdはVsgd(initial)+ΔVまで上昇されうる。これは、ビットライン電圧がVddまで上昇されるので、ブーストされたチャネル漏洩を心配することなく、より高い電圧をビットラインからチャネルまで伝達するといった利益をもたらす。
一般に、Vsgdは、Vpassが印加されるときに、規定レベルにある必要がある。Vpass及びVpgmのタイミングは、チャネルブースティングメカニズムによって決定される。Vpassがチャネルブースティングを支配する場合、Vpassが上昇する時点はVsgdタイミングとの関連で重要である。同様に、Vpgmがチャネルブースティングを支配する場合、Vpgmが上昇する時点はVsgdタイミングとの関連で重要である。Vsgdは、ビットラインが選択記憶素子のチャネルにつながるように十分に高い値であるべきであるが、ビットラインが非選択記憶素子のチャネルから遮断されるように十分に低い値であるべきである。しかしながら、Vsgdは、SGDトランジスタを介した禁止ビットラインからの漏洩電圧を回避し、チャネルが確実に遮断されるようにするために、t5からt9又はt10までのこの規定レベルよりも低くすることができる。さらに、チャネルブースティングを安定化しうるように、Vpassが上昇される時点とVsgdが上昇される時点との間に遅延を設けることができる。Vsgdに対するこの制御手法は、図16b、17b〜d、及び18bの実施形態を含む、本明細書に記載する他の実施形態にも同様に採用されうる。
SGDトランジスタのVthは、隣接チャネルからの結合によって影響されうる。非選択ブーストチャネルからのこのような結合がある場合、トランジスタを導通状態にするためのVthが低くなりうる。それゆえ、結合の増加に起因してさらなる電圧が必要になると、SGDトランジスタはより高い電圧をビットラインからチャネルに自動的に伝達することになる。Vsgdはすべての選択ドレイントランジスタのゲートに印加されるので、ブーストチャネルが別のブーストチャネルの隣にある場合、ブーストチャネルからビットラインに漏洩することもありうる。妥協解決策は、ビットラインがローのときVsgdをローに保ち、ビットライン電圧がハイのときVsgdを上昇させることである。
図16aは別の検知回路1699を示す。この実施態様例は、2つのラッチを含み、3つの電圧、すなわち、(a)0V、(b)Vslow、Vslow+comp又はVcomp、及び(c)Vdd−ΔVをビットラインに供給することができる。どの電圧を設定するためにどの構成要素を使用するかを示す凡例1691を参照されたい。一のラッチ1619は、インバータ1620及び1622、LAT経路1621、及びINT経路1623を含み、別のラッチ1635は、インバータ1634及び1632、FLG経路1629、及びINV経路1635を含む。LAT経路1621はラッチ1619の非反転側にあり、FLG経路1629はラッチ1635の非反転側にある。
NANDストリング1650は、検知回路に接続され、例えば、それぞれ、ワードラインWL63、WL62、・・・、WL0、ならびにSGDトランジスタ1642を介してビットライン(BL)1640につながる記憶素子1644、1646、及び1648を含む。また、NANDストリング1650は、複数のNANDストリングに対して共通のソースライン1651に接続されたソース選択ゲート1649を含む。ビットライン1640は、BLSトランジスタ1616とソースS及びドレインDを有するBLCトランジスタ1614とにつながる。BLCトランジスタ1614は、BLYトランジスタ1612に接続され、BLYトランジスタ1612はさらにバス1624に接続される。また、BLYトランジスタ1612は、COM経路1645を介してFLAトランジスタ1604に接続され、COM経路1645はさらにFLGトランジスタ1602に接続される。Vddの電源ノード1600は、FLG及びFLAトランジスタに接続される。
HLLトランジスタ1606は、検知(SEN)ノード1611に接続され、検知動作中に初期電圧を供給する。また、SENノードは、コンデンサ1609を介してクロック(CLK)ノード1608と、トランジスタ1613のゲートとに接続される。トランジスタ1613は、STR(ストローブ)トランジスタ1615を介してバス1624と、CLKノード1608とに接続される。バス1624は、パスゲート1643の後、LCOトランジスタ1618を介してラッチ1619につながる。また、バス1624は、ICOトランジスタ1626及びFCOトランジスタ1628を介してラッチ1635につながる。分離(ISO)トランジスタ1617は、ラッチを伴うデータ転送が行われるとき、ラッチ1619及び1635を含む回路の右側を回路1699の左側及びビットラインから分離することができる。具体的に、ISOトランジスタは、BUS1624をCOMノード1645から分離する。これによって、並列動作を効率的にするために、BUS1624からLAT1621へのデータ転送を、BLY1612及びBLC1614を介してFLG1629から供給されるビットラインバイアスから分離する。詳細については、図17dにおける波形1791を参照されたい。
検知中、ビットラインバイアスがBLY1612及びBLC1614を介してFLG1629からビットラインBLに供給されうる。例えば、Vbl=0.4Vなどの非ゼロバイアスがBLCを制御することによって供給されうる。さらに、ビットライン電圧(例えば、0.4V)へのBLY経路は、BUS(0又はVdd)からの電圧と異なる場合がある。検知は、HLL1606経路でなくSTR1615経路を通じて行われる。HLL経路は、LATラッチを通じてSEN電圧をデジタル化してSENに戻すために使用される。例えば、LATラッチは、そのトリップポイントを2.5V電圧源による1.2Vに有しうる。SENノードの電圧は0〜2.5Vの任意の値であってよい。SEN電圧が1.2Vを超えるのであれば、これは2.5Vとしてラッチされることになる。同様に、1.2Vよりも低いSEN電圧は、LATラッチにおいて0Vにラッチされることになる。連続電圧範囲を2つの離散電圧に変換するこのプロセスは、デジタル化と呼ばれる。デジタル化された電圧は、LATラッチとのこのやり取りの後SENノードに記憶されることになる。STR経路は、電流検知を用いるさらに精確な検知に対応する。
経路1641は、BUSからFLGにロックアウトデータを転送するために使用される。禁止の場合はFLG=0であり、プログラムの場合はINV=0である。経路1637は、FLGpMOS経路を通じて禁止ビットラインに対するVddにビットラインを充電するために使用される(1602)。ICO1626は、ハイに保たれて、高速プログラムモードにおいて選択記憶素子に確実なグランドを提供する。ICO=0Vの場合、経路1639は、lockoutlデータをBUS1624からLAT経路1621に転送するために使用される。
特に、ラッチ1619は、一のゲーティングデバイスを有しており、このデバイスはLCOトランジスタ1618である。バス1624は、データをLCO1618を通じてラッチ1619のLAT経路1621に転送しうる。あるいは、バスは、データをICOトランジスタ1626を通じてラッチ1635の反転側のINVノード1631に、あるいはFCOトランジスタ1628を介してラッチ1635の正側のFLGノード1629に転送しうる。
低速プログラムモード記憶素子では、LCO1618は、Vslowのバイアスレベルを供給するためのVslow+Vthのゲート電圧を有しており、ビットラインを充電することができる。一般に、LCOは所望の供給電圧を得るためにクランプされうる。別の例として、LCOは、低速プログラムモード記憶素子のビットラインに対してチャネル−フローティングゲート結合を補償するVslow+compのバイアスレベルを供給するために、Vslow+comp+Vthのゲート電圧を有していてもよい。Vslowは、例えば、0.6〜0.8Vであってもよく、Vcompは、同程度の例えば、0.2〜0.6Vであってもよい。Vslow+compは、それゆえ、0.8〜1.4Vであってもよい。Vfast+compは、高速プログラムモードのVcompに等しくてもよい。
なお、検知動作中、STR及びFCOを介してSENからFLG1629に転送されたデータは、その論理値が反転される。例えば、SEN=1(ハイ)であれば、FLG=0(ロー)である。これは反転を伴う検知である。一方、HLLを介してSENからLAT1621に転送されたデータは、その論理値が反転されない。例えば、SEN=1(ハイ)であれば、LAT=1(ハイ)である。これは反転のない検知である。
図16bは、図16aの検知回路に関連するプログラムに対する時間軸を示す。この制御方法例では、BLCトランジスタ1614は検知回路からビットラインにVddのような高い電圧を伝達するために使用され、検知回路は結合補償が提供されないような方法で動作される。時間軸は、禁止ビットライン(Vbl(inhibit))、補償なしの低速プログラムビットライン(Vbl(slow))、及び補償なしの高速プログラムビットライン(Vbl(fast))に対する電圧を示す。波形1660は、BLCトランジスタの電圧を示す。波形1662は、t0〜t2におけるBUS1624からFLG経路1629へのデータ転送と、t3〜t4におけるBUS1624からLAT経路1621へのデータ転送とを示す。波形1664は、禁止ビットラインのビットライン電圧、Vbl(inhibit)を示す。Vbl(inhibit)はFLG=0のときVddに設定される。波形1666はVbl(fast)を示し、Vbl(fast)はLAT=0(ロー)を用いて0Vに設定される。波形1667はVbl(slow)を示し、Vbl(slow)はLAT=1(ハイ)をFLG=1(ハイ)と組み合わせて用いてハイ、すなわち、Vslowに設定される。波形1668は、選択ワードラインに印加される電圧を示し、波形1670は、非選択ワードラインに印加される電圧を示す。波形1672は、ICOトランジスタに印加される電圧を示し、ICOトランジスタはラッチ1635及びFLGノードを更新する。波形1674は、低速プログラムモードビットラインのLATラッチを更新するLCOトランジスタに印加される電圧を示す。t3〜t4においてLCO電圧がフル論理レベルVddまで上昇すると、LATラッチが更新される。t4〜t7におけるLCO電圧は、ビットライン電圧源をVslowなどの規定レベルになるようにクランプする。ここで、LCO電圧は、0.2〜1.4Vなどの電圧をビットラインに伝達するアナログ電圧レベルである。
t0〜t2において、FCO(波形1676)はハイになり、BUSからFLGへの転送を行うことができる。ICOはt1〜t3においてハイになる。t2において、BLCはVdd+Vthまで上昇し、したがって、Vbl(inhibit)=Vddとなる。Vbl(fast)及びVbl(slow)は、t2〜t3において0Vにある。t3〜t4において、BUSからLATへのデータ転送が行われるようにLCOはハイになる。Vbl(fast)及びVbl(slow)は、BUSからLATへの転送中、t3〜t4において、フローティング状態になる。t4において、Vbl(slow)はVslowまで上昇される。t5において、Vpassが印加され(波形1670)、t6において、Vpgm(波形1668)が印加される。
図17aは、結合補償が後続のプログラムにおいて必要であるかどうかを判断するために選択ビットラインを検知する方法を示す。前述のように、選択記憶素子が受けるチャネル−フローティングゲート結合は、隣接する記憶素子のデータパターンに依存する。同じワードライン上の両方の隣接記憶素子が非選択である場合は、一方の隣接記憶素子のみが同じワードライン上にある場合、あるいは最も近い非選択記憶素子が選択記憶素子に隣接しない場合よりもよりも結合が大きくなる。各選択ビットラインが受ける実際の結合を検知することによって、補償を提供するのか否か及び/又は提供する補償のレベルに関する判断を、情報に基づいて行うことができる。参照により本明細書に組み込まれる米国特許第7,215,574号明細書では、一方又は両方のいずれの隣接ビットラインがロックアウトされるかに応じてVblオフセットを提供している。所与のビットラインに対するセンスアンプが、左側及び右側の隣接ビットラインがロックアウトされているかどうかを判断するためにこれらのビットラインのセンスアンプから制御信号を受け取る。しかしながら、このアプローチでは、センスアンプが互いに信号をやり取りしうるように新たな回路及びレイアウト領域が必要である。ここに記載する解決策は、これらの欠点を克服するものである。
一つのアプローチでは、非選択ビットラインの電圧が昇圧され、任意の隣接する選択ビットラインへの結合がもたらされるとともに、その結合の大きさを決定するために選択ビットラインが検知される。結合の大きさが閾値を超える場合、選択ビットラインはプログラム中にVblを所定の大きさだけ上昇させることによって補償を受けるべきであることを示すデータがラッチ又はその他の場所に記憶される。補償は、低速及び/又は高速プログラムモードビットラインに適用することができる。
例示するプロセスでは、ステップ1700において、プログラム動作が開始される。ステップ1702では、プログラム動作の反復が開始される。ステップ1704では、選択ビットラインがフロートされつつ、非選択ビットラインの電圧が昇圧される。制御回路は、ビットラインのラッチを読み出し、選択されていないものを特定して、その検知回路にVblを上昇させる旨の指示をすることができる。同様に、制御回路は、ビットラインのラッチを読み出し、選択されているものを特定して、検知回路にビットラインをフロートさせる旨の指示をすることができる。ステップ1706では、選択ビットラインの電圧が検知され、非選択ビットラインからの結合の程度が判断される。電圧又は電流の検知といった、様々な検知手法を採用することができる。ステップ1708では、各選択ビットラインについて補償の要否を特定する。この情報は、検知回路のラッチ又は別の場所に記憶することができる。補償を必要とする結合の閾値レベル(T)は、選択ビットラインに隣接する一又は複数のビットラインが選択されないときに実現される結合の大きさに基づくことができる。
ステップ1710では、補償を必要とする選択ビットラインに対して、その電圧をベースラインレベルよりも高く上昇させることによって補償を行う。一つの手法では、(1)両方の隣接ビットラインが禁止される、(2)一方の隣接ビットラインのみが禁止される、及び(3)隣接ビットラインが禁止されない、の3つの状況が考えられる。各状況に対してビットラインバイアスが与えられる。例えば、0.5V、0.25V、及び0Vがそれぞれ第1、第2、及び第3の場合に対して採用されてもよい。Vfastが名目上0Vである高速プログラムモードに関して、我々は、第1、第2、及び第3の場合に対してそれぞれ、Vfast+comp=Vcomp=0.5V、0.25V又は0Vとしている。Vslowが名目上0.6Vである低速プログラムモードに関して、我々は、第1、第2、及び第3の場合に対してそれぞれ、Vslow+comp=1.1V、0.85V又は0.6Vとしている。
ステップ1712では、補償が実施されながら選択記憶素子にプログラムパルスが印加される。ステップ1714では、選択ビットラインに対して検証動作が実施される。ステップ1716では、目標データ状態に達したビットラインがロックアウトされる。
判断ステップ1718において、次のプログラム反復がある場合、処理はステップ1702において継続する。次のプログラム反復がない場合、プログラム動作はステップ1720において終了する。
例として、図17aのプロセスを、図16aの検知回路と図17b及び17cの時間軸とを参照してさらに説明する。
図17bは、図16aの検知回路に関連する検知及びプログラムに関する時間軸を示す。なお、本明細書の様々な図の図面は必ずしも一定の縮尺でなく、すなわち、必ずしも互いに比例していない。これは、補償が必要かどうかを検知し、LCOトランジスタ1618(BLCトランジスタは単なるパスゲートである)などを介してこのような補償を実施するために検知回路1699を制御する例である。時間軸は、禁止ビットライン及び選択ビットラインの電圧を示す。波形は、図16aの検知回路における同様の名称の構成要素に対して示される。この場合、Vbl(波形1734、1736、及び1737)はVpgmが印加されるときフローティング状態にならない。しかしながら、低速及び高速のプログラムモードはいずれも示していない。
波形1730は、BLCトランジスタのゲート電圧を表す。波形1732は、BUS1624からFLG経路1629へと、SENからLAT経路1621へのデータ転送を表す。波形1734は、禁止ビットラインに対するVbl(Vbl(inhibit))を表す。波形1736は、選択ビットラインに対するVbl(Vbl(no comp))を表し、ここでは検知によって補償(comp)が必要ないと決定されている。この場合、LAT=0である。波形1737は、選択ビットラインに対するVbl(Vbl(comp))を表し、ここでは、検知によって補償が必要と決定されている。この場合、LAT=1である。波形1738は、選択ワードラインに印加される電圧を表す。波形1739は、非選択ワードラインに印加される電圧を表す。波形1742は、t5〜t6における検知のためにSENノードと結合ビットラインとの間の電荷共有を判断するためのBLZトランジスタのゲートに印加される電圧を表す。波形1744は、CLKノード1608に印加される電圧を表し、ここで、検知するSENノードを強化するために電圧がステップアップされる。波形1746は、t7〜t8においてSENからLATにデータ転送をさせるためにLCOトランジスタのゲートに印加される電圧を表す。波形1748は、t0〜t3においてBUSからFLGにデータ転送をさせるためにFCOトランジスタのゲートに印加される電圧を表す。
t0〜t3においてBUSからFLGへのデータ転送後、BLCはt3においてVdd−ΔV+Vthまで上昇する。その結果、Vbl(inhibit)はVdd−ΔVまで上昇する。t4において、BLCは、ΔVだけVdd+Vthまで上昇する。その結果、Vbl(inhibit)はVddまで上昇する。前述のように、禁止ビットラインの電圧ステップアップはフローティング状態にある選択ビットラインに結合し、選択ビットラインの電圧もΔV及び結合比に基づいて増加させる。例えば、波形1736は、Vblが閾値T未満であるレベルに結合される場合を示し、一方、波形1737はVblが閾値Tを超えるレベルに結合される場合を示す。波形1736に関して、T’は使用されうる第2の閾値の例である。選択ビットラインによって様々な閾値レベルの結合を受けているかどうかを検知することが可能であり、その場合、対応する様々なレベルの補償、例えば、多くの結合があるときは多くの補償が提供されうる。例えば、比較的低い閾値(T)の結合は唯一の隣接する非選択ビットラインに対応している可能性があり、その場合、第1のビットラインバイアスがプログラム中に印加され、比較的高い閾値(T’)の結合は2つの隣接する非選択ビットラインに対応している可能性があり、その場合、比較的高い第2のビットラインバイアスがプログラム中に印加される。
様々な補償電圧が検知回路から供給され、LATラッチ1619に類似した多くのラッチ回路とLCOトランジスタ1618とが要求される場合がある。簡単に説明するために、図16aに示す回路では、複数の補償電圧を供給することができない。対照的に、図14及び15に示す回路及び時間軸は、0から完全な補償を実現するために必要な最大電圧までの電圧範囲をカバーする連続補償電圧を供給することができる。後述する図17cに示す方法は、プログラム中に結合が制御されなくなることのない、制御性が高いデジタル化された補償を示す。
破線はフローティング電圧を表す。BLZトランジスタは、t5〜t6において検知のために開放状態にある。Tを超えて結合するビットラインはLAT=H(ハイ)でラッチされ、Tを超えて結合しないビットラインはLAT=0(ロー)でラッチされる。図16aにおけるLAT経路162の更新は、データ極性の反転を防止するためにSTR(ストローブ)経路1615とは異なるHLL1606、ISO1617及びLCO1618を介して実現される。
検知では、例えば、コンデンサ1609に接続されたSENノード1611とビットラインの静電容量との間で電荷共有が行われるかどうかを判断する手法を採用しうる。コンデンサの電圧は、BLZトランジスタがONであるかOFFであるかに基づいて、それぞれ、変化したり変化しなかったりする。ビットラインレベルがBLZトランジスタ(T+Vth)によって設定される閾値(T)よりも低い場合、小さい静電容量を有するSENノードはビットライン電圧と同じレベルにあることなる。ビットライン電圧がT閾値よりも高い場合、SENはそのプレチャージレベルであるVddに保たれることになる。一つの可能なアプローチでは、ビットライン−ビットライン結合を有するVblがTより小さいかTに等しいときにBLZトランジスタが導通状態であり、ビットライン−ビットライン結合を有するVblがTよりも大きいときにBLZトランジスタが非導通であるように、BLZトランジスタ1610又は別のトランジスタはT+Vthのゲート電圧を供給されうる。コンデンサ1609は、最初にVddまで充電される。例えば、T=0.8Vの場合、BLZトランジスタを0.8V+トランジスタのVth(例えば、1V)の計1.8Vでバイアスすることができる。ビットラインが最大0.9Vに結合された場合、BLZトランジスタはビットラインを検知回路から遮断する(1.8−1.0<0.9であるので)。検知ノード1611がVddなどの電圧まで充電される場合、この電圧はBLZトランジスタが非導通であるのでそのままである。コンデンサの電圧が著しく低下しないときはBLZトランジスタは非導通であると判断されうる。一方、ビットラインが0.7Vに結合される場合、ビットラインが検知回路につながるように(1.8−1.0>0.7)BLZトランジスタは導通状態になり、また、ビットライン静電容量はコンデンサ1609の静電容量よりもはるかに大きいので検知ノード電圧は著しく低下してVblに等しくなる。
t8において、補償を必要としないビットラインは接地電圧にされ(波形1736)、補償を必ず必要とするビットラインは、LCOトランジスタの制御ゲートをVth+補償レベルとすることにより、規定の補償レベルでプレチャージされる(波形1737)。それゆえ、Vpgmが印加されるとき、閾値Tに結合されない選択不揮発性記憶素子それぞれのビットラインの電位は一つのレベル、例えば、0Vで供給され(波形1736)、閾値Tに結合される選択不揮発性記憶素子それぞれのビットラインの電位は、別のより高いレベル、例えば、Vcompで供給される(波形1737)。
Vpassはt9においてワードラインに印加され、Vpgmはt10において選択ワードラインに印加される。Vpgmが印加されるとき、ビットラインはフローティング状態にないが、有利には規定のレベルで供給される。このアプローチでは、選択ビットラインが一般に参照され、低速プログラムモードが採用されないときは、例えば、高速プログラムモードビットラインであってもよい。Vpgmが印加されるとき、Vblは補償が必要でないときは有利には0Vにあり(波形1736)、補償が必要であるときは規定された非ゼロレベルにある(波形1737)。
図17cは、図16aの検知回路に関連する検知のための時間軸を示す。これは、補償が必要であるかどうかを検知し、LCOトランジスタ1618などを介してこのような補償を提供するために図16aの検知回路1699を制御する別の例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。この実施形態では、V(slow+comp)をフローティング状態(波形1762)に保つが、他の3つのすべての電圧は能動的に、例えば、0V、Vslow、及びVcomp(=Vfast+comp=0V)にバイアスされる。これは、駆動されるビットラインと、検知回路がすべてのビットラインを異なるレベルで駆動できないときにフローティング状態にするビットラインを選択する際の設計トレードオフの例である。特に、手法は、補償が指示されないときに低速プログラムモードビットラインを駆動し、補償が指示されるときにこれらのビットラインをフローティング状態にするように選択する。また、手法では、補償が必要であるか否かにかかわらず高速プログラムモードビットラインを一のレベルで駆動するように選択する。後述する図17dでは、別の手法を説明する。
なお、補償は、実施態様例で述べるように検知によって、あるは他の手段によって指示されうる。例えば、選択及び非選択ビットラインの場所は制御データから分かる場合がある。前述の米国特許第7,215,574号明細書は一つの可能なアプローチを提供しており、ここでは、センスアンプは、ビットラインが選択されるか否かを示す制御データを交換する。別のアプローチは、非選択ビットラインと各選択ビットラインとの近さについての集中管理の情報に基づいて、補償レベル又は補償なしを直接設定する各検知回路へのデータを集中管理に提供させることである。
4ビットラインの場合に対するラッチ条件は以下の通りである。第1の場合、禁止ビット線(波形1754)では、FLG=0及びLAT=1である。第2の場合、補償ビットライン(波形1758又は1762)では、FLG=1及びLAT=1である。LCOは、補償付きの低速プログラムモードビットラインに対してVslow+comp+Vthにあることになる。ビットラインはt8〜t9において充電される。第3の場合、Vbl(slow)(波形1760)では、FLG=1及びLAT=1である。LCOは、ビットラインがt10の後に充電されるとき低速プログラムモードビットラインに対してVslow+Vthにあることになる。この時、補償ビットラインは、0Vまでの放電期間に放電されるか、あるいは補償されたレベルに保たれる(波形1758)か、あるいはVslow+comp+にわずかに結合される(波形1762)か、のいずれかである。第4の場合、接地ビットライン(波形1756)では、FLG=1及びLAT=0である。
波形1750は、BLCトランジスタのゲート電圧を表す。波形1752は、t0〜t3におけるBUS1624からFLG経路1629へのデータ転送、t7〜t8におけるSENノード1611からLAT経路1621へのデータ転送、及びt9〜t10におけるBUS1624からLAT経路1621へのデータ転送を表す。波形1754は、Vbl(inhibit)を表す。波形1756は、補償が検知によって指示されない場合のVbl(fast)を表す。この場合、LAT=0である。波形1758は、補償の必要性が検知によって指示される場合の高速プログラムモードビットライン(Vbl(fast+comp)=0V)に対するVblを表すが、Vthが目標Vthから離れている場合の二度目にLATが更新されると、補償された電圧が放電される。波形1760は、補償が検知によって指示されない場合の低速プログラムモードビットライン(Vbl(slow))に対するVblを表す。LCOゲートをVslow+Vthに設定することによって、t10〜t13ではVbl(slow)=Vslowである。波形1762は、補償の必要性が検知によって指示される場合の選択低速プログラムモードビットラインに対するVbl(Vbl(slow+comp))を表す。
波形1764は、選択ワードラインに印加される電圧を表す。波形1766は、非選択ワードラインに印加される電圧を表す。波形1767は、HLLトランジスタ1606に印加される電圧を表す。波形1768は、FLGをVddに設定した状態で非禁止ビットラインをグランドに保持するためにICOトランジスタのゲートに印加される電圧を表す。波形1770は、t5〜t6において検知するコンデンサ1609を放電するためにBLZトランジスタのゲートに印加される電圧を表す。波形1772は、SENノードをブーストアップしてLATを更新するためにCLKノード1608に印加される電圧を表す。波形1774は、LCOトランジスタのゲートに印加される電圧を表す。t7〜t8において、LCOはBUSからLATにデータ転送させる。t8〜t13において、LCOは、所望のVblを供給するように設定される。例えば、LCOは、プログラムモードビットラインを補償するレベルに設定される。波形1776は、FCOがハイであるときBUSからLATにデータ転送させるために、FCOトランジスタのゲートに印加される電圧を表す。
t0〜t3においてBUSからFLGへのデータの転送後、BLCはt3においてVdd−ΔV+Vthまで上昇する。その結果、Vbl(inhibit)はVdd−ΔVまで上昇する。t4において、BLCはVdd+VthまでΔVだけ上昇する。その結果、Vbl(inhibit)はVddまで上昇する。禁止ビットラインにおける電圧上昇は、フローティング状態にある選択ビットラインVbl(fast+comp)及びVbl(slow+comp)に結合し、これらの電圧をΔV及び結合比に基づいて上昇させる。閾値を超えないVbl(fast)へのわずかな結合を例として示す。さらに例として、結合は基本的にVbl(slow)に影響を与えない。破線はフローティング電圧を表す。HLLは、SENノードをVddにプレチャージするためにt4〜t5においてハイである。BLZトランジスタは、t5〜t6において検知のために開放状態(導通状態)にあり、HLLはt7〜t8においてハイであり、SENからLATにデータを転送させてラッチ1619を設定する。
t8において、補償が指定されないVbl(fast)ビットラインはグランドにプルされる(波形1756)。t8〜t9において、ビットライン1758及び1762は規定レベルでプレチャージされるが、Vbl(slow)ビットラインは接地される(波形1760)。LCOは、Vslow+comp+Vthに設定されてVbl(slow+comp)=Vslow+compを供給する。t9〜t10において、LCOはVdd+Vth(>Vslow+Vth)にステップダウンしてBUSからLATへのデータ転送を実施する。t10において、Vbl(fast+comp)はさらにグランドに放電され、LCO=Vslow+Vthであるので、Vbl(slow)=Vslowとなる。なお、Vbl(slow)の増加はt10においてVbl(slow+comp)に結合する。
例えば、前述のように、Vbl(slow+comp)は、それぞれ、(1)両方の隣接ビットラインが禁止、(2)一方の隣接ビットラインが禁止、又は(3)隣接ビットラインの禁止なし、の場合に1.1V、0.85V、又は0.6Vとなりうる。
Vpassがt11においてワードラインに印加され、Vpgmがt12において選択ワードラインに印加される。この場合、Vpgmが印加されるときVbl(slow+comp)ビットラインはフローティング状態にあるが、他のビットラインはフローティング状態にない。
それゆえ、Vpgmが印加されるとき、閾値Tに結合しないVbl(fast)は0Vで供給され、閾値Tに結合しないVbl(slow)はVslowで供給され、閾値Tに必ず結合するVbl(slow+comp)はVslow+comp又はVslow+comp+で供給される。Vslow+comp+は、t10において、0VからVslowにステップアップするVbl(slow)に起因するVslow+compからの結合を表す(波形1760)。この結合はデータパターンに特異的である。
図17dは、図16aの検知回路に関連する検知のための別の時間軸を示す。これは、補償が必要であるかどうかを検知し、このような補償を提供するために、図16aの検知回路1699を制御する別の例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。この実施形態では、禁止ビットラインがフローティング状態に保たれるが、他の3つの電圧は能動的にバイアスされる(例えば、0V、Vbl(slow)、及びVbl(slow+comp))。
これは、駆動されるビットラインと、検知回路がすべてのビットラインを異なるレベルで駆動できないときにフローティング状態にされるビットラインと、を選択する際の設計トレードオフの別の例である。特に、設計では、低速プログラムモードビットラインを、補償が指示されないときに一のレベルで駆動し、補償が指示されるときに別のレベルで駆動するように選択する。また、手法では、高速プログラムモードビットラインを一のレベルで駆動するように選択する。手法はVbl(inhibit)をフローティング状態にする。
以下のステップが適用される。(a)フローティングビットラインを検知し、検知された結果をLATの代りにFLGにラッチする。LATは、BUSからの低速プログラム情報で更新される。分離トランジスタISO1617は、BUSとLATの間のデータ転送動作をビットライン充電動作から分離して、これら2つの動作が同時に実行されるようにするために使用される。(b)HLL及びLCOトランジスタを開放する(導通状態にする)ことによってSENノードをLATデータで更新する。(c)BLCを低速プログラムモードビットラインに対するVslow+comp+Vthに下げ、LCO=Vslow+Vthに設定し、ビットラインをこの電圧まで充電する。(d)ワードライン電圧をランプしてプログラムを実施する。
4ビットラインの場合のラッチ条件は以下の通りである。第1の場合には、禁止ビットライン(波形1782)に対して、FLG=0及びLAT=1であり、禁止ビットラインはt4〜t8においてVddまで充電される。第2の場合には、補償ビットライン(波形1784及び1786)に対して、t8の後、FLG=0及びLAT=1である。t8の後、補償付きの低速プログラムモードビットラインに対してBLC=Vslow+comp+Vthである。第3の場合には、補償なしの低速プログラムモードビットライン(波形1785)に対して、FLG=1、LAT=1である。補償なしの低速プログラムモードビットラインに対して、LCO=Vslow+Vthである。ビットラインは、t10の後に充電される。この時、補償ビットラインは0Vまで放電され、禁止ビットラインはわずかに結合される。低速プログラム及びslow+compビットラインはいずれも能動的に結合回避(avoiding coupling)にバイアスされる。第4の場合には、接地ビットライン(波形1783)に対して、FLG=1及びLAT=0である。
波形1780は、BLCトランジスタのゲート電圧を表す。波形1781は、t0〜t3におけるBUS 1624からFLG経路1629まで、t5〜t6におけるBUSからLAT経路まで、及びt7〜t8におけるSENノードからFLG経路までのデータ転送を表す。図17cと同様の波形名称を用いて、波形1782はVbl(inhibit)を表し、波形1783はVbl(fast)を表し、ここでLAT=0であり、波形1784はVbl(fast+comp)を表し、波形1785はVbl(slow)を表す。t8の後、LCOゲートをVslow+Vthに設定することによってVbl(slow)=Vslowである。波形1786はVbl(slow+comp)を表す。
波形1787は選択ワードラインに印加される電圧を表す。波形1788は非選択ワードラインに印加される電圧を表す。波形1789はSTRトランジスタ1615に印加される電圧を表す。波形1790はHLLトランジスタのゲートに印加される電圧を表す。波形1791はISOトランジスタのゲートに印加される電圧を表す。波形1792はICOトランジスタのゲートに印加される電圧を表す。波形1793は、t5〜t6において検知するコンデンサ1609を放電するために、BLZトランジスタのゲートに印加される電圧を表す。波形1794はCLKノード1608に印加される電圧を表す。波形1795はLCOトランジスタのゲートに印加される電圧を表す。t5〜t6において、LCOはBUSからLATにデータを転送させる。t9〜t13において、LCOは所望のVblを供給するように設定される。波形1796は、FCOがハイのとき、BUSからFLGに、またSENからFLGにデータを転送させるためにFCOトランジスタのゲートに印加される電圧を表す。
t0〜t3においてBUSからFLGにデータが転送された後、BLCはt3においてVdd+ΔV+Vthまで上昇する。その結果、Vbl(inhibit)はVdd−ΔVまで上昇する。t4において、BLCはVdd+VthまでΔVだけ上昇する。その結果、Vbl(inhibit)はVddまで上昇する。禁止ビットラインにおける電圧上昇は、フローティング状態にある選択ビットラインVbl(fast+comp)及びVbl(slow+comp)に結合し、これらの電圧をΔV及び結合比に基づいて増加させる。閾値を超えないVbl(fast)へのわずかな結合を例として示す。さらに例として、結合は基本的にVbl(slow)に影響を与えない。破線はフローティング電圧を表す。BLZトランジスタは、t5〜t6において検知のために開放状態にある。HLL及びISOは、LATラッチからSENノードを更新するためにt6〜t7においてハイになる。STRは、SENからFLGにデータを転送させるためにt7〜t8においてハイである。ラッチがBUS→FLG、BUS→LAT、及びSEN→FLGと更新する間、反転接続インバータ1622及び1632(図16a)は衝突を回避するためにディセーブルされる。LAT1619からのSENの更新の間、反転接続インバータ1622は、LAT=0の場合にLATがSENを上書きするのを確認するためアクティブである。
t8において、補償付きの低速プログラムモードビットラインでは、Vslow+compが波形1786において供給されるようにBLCがVslow+comp+Vthに設定される。補償付きの高速プログラムモードビットラインでは、ビットラインがLAT=0によってグランドに放電される。Vslowが波形1785において供給されるようにLCOはVslow+Vthに設定される。補償が指定されないVbl(fast)ビットラインは、グランドにプルされる(波形1783)。Vbl(inhibit)(波形1782)は、t8における、Vbl(slow)(波形1785)及びVbl(slow+comp)(波形1786)のステップアップによって、レベルVddよりも大きいレベルVdd+に結合されてもよい。
Vpassはt11においてワードラインに印加され、Vpgmはt12において選択ワードラインに印加される。この場合、Vpgmが印加されるときVbl(inhibit)ビットラインはフローティング状態にあるが、他のビットラインはフローティング状態にない。
なお、図16aが図14に見られるようにVdd−ΔV及びVddの電源を含むように修正される場合、図16aの検知回路に関係する図16b、17b〜dの時間軸の手法を修正してもよい。この場合、BLCを用いてビットライン電圧をクランプせずに、Vdd−ΔV及びVddをビットラインに伝達するようにBLCをハイに設定してもよい。
図18aはもう一の代替検知回路1899を示す。この回路では、駆動電圧が補償付き低速プログラムモードビットラインに使用される。また、同様の倍電圧駆動法が図14に示す検知回路で実現されうる。検知回路1899は、トランジスタ1807、電源ノード1805、及びVslow+compの出力を供給する電源1803が追加されていることを除いて図16aの回路と同じである。Vcompは、例えば、0.2〜0.6Vの範囲で調整可能であってもよく、Vslowは、例えば、0.2〜0.8Vの範囲で調整可能であってもよく、したがって、Vslow+compは0.4〜1.4Vの範囲で調整可能である。図18aにおける同様の番号の要素は図16aにおける要素に対応する。
一又は複数の電源を用いて選択ビットラインを駆動することによって、レベルはビットラインをフローティング状態にする手法に比べて精確に設定されうる。選択ビットラインが規定レベルのVslow+compで駆動され、これによって、チャネル−フローティングゲート結合の補償に加えて低速プログラムモードに対して適切なVblを供給するように、電源1803はビットラインに結合されうる。
さらに、補償なしの低速プログラムモードビットラインでは、Vslowが経路1825に供給されてビットラインに結合されるように、Vslowは、Vslow+VthをLCOトランジスタ1618に印加することによってビットラインに供給されうる。別のオプションは、電源1803をビットラインに接続する代わりに、経路1825のVslowに加えて別の電源からのVcompをビットラインに接続することである。どの構成要素がどの電圧を設定するために使用されるかを指定する凡例1891を参照されたい。検知回路1899の適切な制御によって、ビットライン1640と選択NANDストリングを表すNANDストリング1650のチャネルとは、電源Vslow+Vcompによって直接駆動されうる。この場合、ビットラインの精確な制御がビットラインをフローティング状態にするリスクを伴わずに提供されうる。
検知回路は、4つの電圧源を提供するために以下のように操作されうる。
a)ロックアウトデータをFLGラッチ1635に転送する。
b)禁止ビットラインに対してFLG=0であればビットラインをVdd−ΔV(BLC電圧によって制御される)までプレチャージする。他のビットラインは、INVを通じてプルダウンするためにICO=H(ハイ)であるので確実なGNDである。
c)ICOをターンオフしてFLG=1でビットラインをフローティング状態にする。BLC電圧を上げてVddを伝達する。
d)ビットラインが結合した後、BLZをターンオンして電圧検知を実施し、コンデンサを用いてSENノードに結果を記憶する。検知結果がCLKノードによってブーストされ、補償する場合にLATをハイに設定するのに十分に高いかどうかを確認する。
e)検知結果がLATにおいてアナログ電圧からデジタルレベルに変換される。デジタル化された電圧はSENノードに転送されて将来使うために記憶される。それゆえ、選択ビットラインの検知電圧は、検知され、デジタル化され、記憶され、選択ビットラインの電圧は、Vpgmが印加されると、検知に基づき、記憶データに対応したそれぞれのレベルでその後に供給される。
LAT=1であれば、結合補償を行う。LAT=0であれば結合補償を行わない。データを保持するためにコンデンサ1609を使用する。
f)lockoutlデータをデータラッチからBUSを通じてLCOラッチに転送する。
g)HLLをターンオンしてLAT=0のときのみSENノードを更新する。
h)Vbcpノード1805は、フローティング状態から補償電圧Vcomp+Vslowを供給するためのバイアス電圧に変化する。VslowはLCOによって供給されうる。
i)4つの異なるビットライン電圧がビットラインに能動的に供給され(0V、Vslow、Vslow+comp、及びVdd)、ここで、各ビットラインは4つの電圧の一にバイアスされる。ワードライン電圧をランプしてプログラムを開始する。
図18bは、図18aの検知回路に関連する検知及びプログラムに対する時間軸を示す。これは、補償が必要であるかどうかを検知し、精確な制御を提供するために専用電源を介してこのような補償を提供するための検知回路1899を制御する例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。
一般に、t0〜t3は、ビットラインが検知回路から遮断されるロックアウト期間であり、t3〜t4はビットラインプレチャージ期間であり、t4〜t7は隣接ビットラインからの結合が検知される検知期間であり、t7〜t8、t9〜t10、及びt12〜t13はデータ転送期間であり、t13〜t16はビットラインが充電されてプログラムが行われる期間である。
波形1860は、BLCトランジスタのゲート電圧を表す。波形1862は、t0〜t3におけるBUS1624からFLGノード1629へのデータ転送、t7〜t8におけるSENノード1611からLATノード1621へのデータ転送、t9〜t10においてSENをデジタルレベルに更新するためにLATノードからSENノードに戻るデータ転送、及びt11〜t12におけるBUS1624からLATノード1621へのデータ転送を表す。波形1864は、Vbl(inhibited)を表す。波形1866は、Vbl(fast)を表し、ここでLAT=0である。波形1868はVbl(fast+comp)を表す。波形1870はVbl(slow)を表す。Vbl(slow)は、t13〜t16においてBLCトランジスタによって制御される。波形1872はVbl(slow+comp)を表す。
波形1874は、選択ワードラインに印加される電圧を表す。波形1876は、非選択ワードラインに印加される電圧を表す。波形1878は、ICOトランジスタのゲートに印加される電圧を表す。波形1880は、t5〜t6において検知するコンデンサ1609を放電するためにBLZトランジスタのゲートに印加される電圧を表す。波形1882は、CLKノード1608に印加される電圧を表す。CLK信号は、t7〜t9においてビットライン結合検知中にステップアップし、トランジスタ1807が導通状態になり、Vbcpをビットラインに伝達するようにさらにSENをブーストする必要がある。波形1884は、t7〜t8においてSENからLATにデータを転送させ、t9〜t10においてLATからSENにデータを転送させ、t11〜t12においてBUSからLATにデータを転送させるために、そしてt13の後に低速プログラム電圧をビットラインに供給するために、LCOトランジスタのゲートに印加される電圧を表す。補償なしで低速プログラムモード記憶素子のビットラインにVslowを供給するために、t13の後はLCO=Vslow+Vthとなる。波形1886は、FCOがハイのときBUSからFLGにデータ転送させるために、FCOトランジスタのゲートに印加される電圧を表す。波形1888は、期間t7〜t10中にSENから検知された結果をまずLATラッチに転送し、そしてLATからSENノードに転送し、この後、t12〜t13においてLAT=0のとき補償が必要でなければSENノードを放電するために、HLLトランジスタのゲートに印加される電圧を表す。
HLLトランジスタは、SENコンデンサ1609に出入りするデータを転送するために使用される。SENから検知されたデータをLATに転送した後、ラッチされているLAT信号はデジタル信号であり、t9〜t10においてコンデンサのダイナミックラッチに転送される。HLLをハイに設定することによって、VddがSENに保存される。補償が必要でなければ、コンデンサは0Vである。補償が必要であれば、コンデンサはVddを記憶することになる。SENノード1611は、SENがハイのとき、コンデンサに接続され、トランジスタ1807を導通状態にしてノード1805をビットラインに接続し、SENがローのとき、トランジスタ1807を非導通状態にしてVbcpノード1805をビットラインから切り離す。トランジスタ1807は、ノード1805及び電源1803に接続されたドレインと、ビットラインに接続されたソースと、検知ノード1611に接続されたゲートとを有する。FLGは、FLG=0のときVddをビットラインに供給する。
t12〜t13において、LATはVslowを供給するだけで、電源1803はVslow+compをビットラインに供給することになる。
t12〜t13におけるlockoutl転送は、ビットラインが低速プログラムモードにあるかどうかを示す。ここで、LATは最新データでもう一度リフレッシュされる。t12〜t13におけるlockoutl転送の終了時に、SENはfast+compの場合に再びリフレッシュされてSENを0に放電する。Vslowを受け取るビットラインは依然としてLAT=1を有する。
禁止ビットラインの場合、FLG=0、LAT=1、及びSEN=1であり、ここで、トランジスタFLG1602はVddをビットラインに供給する。補償なしの高速プログラムモードビットラインの場合、FLG=1、LAT=0、及びSEN=0であり、ここで、LATラッチ1619はグランドをビットラインに供給する。補償なしの低速プログラムモードビットラインの場合、FLG=1、LAT=1、及びSEN=0であり、ここで、LATラッチ1619はVslowを供給する。補償付きの低速プログラムモードビットラインの場合、FLG=1、LAT=1、及びSEN=1であり、ここで、SENトランジスタ1807はVslow+compを供給する。LATは、LCOトランジスタ制御によってVslowをビットラインに供給するだけとなる。
それゆえ、本発明者らは、データを保持する3つのデータラッチ、すなわち、FLG、LAT、及びコンデンサを有している。これら3つの値に基づいて、本発明者らはビットライン電圧を設定することができる。すべてのビットライン電圧が安定すると、t13においてブースティング及びプログラムが開始して実施される。
同時に、LAT=0Vがさらにビットラインをグランドにプルダウンする。したがって、検知ノードをゼロ等価にリフレッシュすると、Vcompがビットラインに印加されないようになる。補償ビットラインはグランドに放電するだけでよいが、放電経路はLAT=0Vによって活性化される。放電経路に関して、本発明者らはインバータ又はグランドトランジスタを検討しなければならないが、Vcomp電源1803は唯一の供給電圧である。検知ノードがたとえ既に0Vであっても、これはビットラインがゼロに放電されることを保証するものではなく、したがって、放電はLATトランジスタを経由する必要がある。
なお、第1及び第2のHLLパルスは様々な振幅を有するが、これは必須ではない。Vddを伝達するために検知ノードを転送するとき、Vddを伝達するために異なる振幅が使用されてよい。しかし、SENがグランドに放電しているだけであるとき、高い電圧はHLLにとって必要でない。例えば、Vddを伝達するとき、HLLはVdd+Vthにあるだけでよい。通常、Vthは約1Vである。Vdd=2.5Vであれば、HLL=3.5Vである。これは、HLLが低電圧トランジスタであるときHLLにストレスをもたらすおそれがある。Vddを伝達したいときにHLLに3.5Vを使用しうるように切替可能な電圧を使用することができるが、0Vを伝達したいだけであれば、HLLトランジスタへのストレスを軽減するために2.5Vを使用することができる。
波形1890はSENノードが検知中に放電されないときのSENノードにおける電圧を表し、波形1892はSENノードが検知中又は更新中に放電されるときのSENノードにおける電圧を表す。波形1894は、VbcpがVslow+compまで上昇するとき図18aにおけるノード1805の電圧を表す。
t0〜t3においてBUSからFLGにデータが転送された後、BLCはt3においてVdd−ΔV+Vthまで上昇する。その結果、Vbl(inhibit)はVdd−ΔVまで上昇する。Vbl(inhibit)は、FLG=0でFLG経路1629によって供給される。同時にLAT=1(ハイ)である。t4において、BLCはVdd+VthまでΔVだけ上昇する。その結果、Vbl(inhibit)=Vddである。禁止ビットラインにおける電圧上昇は、フローティング状態にあるVbl(fast+comp)及びVbl(slow+comp)に結合し、これらの電圧をΔV及び結合比に応じて増加させる。閾値を超えないVbl(fast)へのわずかな結合を例として示す。さらに例として、結合は基本的にVbl(slow)に影響を与えない。破線はフローティング電圧を表す。BLZトランジスタは、t5〜t6において検知のために開放状態にある。
補償が指定されないVbl(fast)ビットラインは、t8においてグランドにプルされる(波形1866)が、補償が指定されるVbl(fast+comp)ビットラインはt13においてグランドにプルされる(波形1868)。ビットラインは、t13〜t16において規定レベルでプレチャージされる。波形1870に関して、検知動作の放電期間において検知ノードの放電が著しいことに起因してSEN=0(ロー)であるとき、これは補償を必要としないほど結合が低いことを示している。したがって、SEN=ローはトランジスタ1807を非導通状態にし、したがって、電源ノード1805はビットラインから遮断される。一方、放電期間における検知ノードの放電がわずかであることに起因してSEN=ハイであるとき、これは補償を必要とするほど結合が高いことを示している。結果的に、SENはトランジスタ1807を導通状態にするほど高く、したがって、電源ノード1805はビットラインに接続される。SEN及びLATがいずれもハイである場合、ビットラインに供給される電圧は2つある。一方はLCO経路からのVslowであり、他方はトランジスタ1807からである。電源はVslowよりも高いVbcp=Vslow+compであるので、LCOトランジスタはOFF(非導通)状態にあることになる。結局、ビットライン電位を供給するのはVbcpからの一の電源だけである。
SEN=ローであるとき、LCOはVslowをビットラインに供給する。波形1872に関して、SEN=1(ハイ)が設定されてパスゲートとして働くトランジスタ1807を導通状態にし、したがって、電源ノード1805はビットラインに結合される。波形1866及び1868に関して、SEN=0(ロー)が設定されてトランジスタ1807を非導通状態にし、したがって、電源ノード1805はビットラインから遮断される。また、LAT=0で、かつFLG=1である。Vpassがt14においてワードラインに印加され、Vpgmがt15において選択ワードラインに印加される。有利には、Vpgmが印加されるとき、ビットラインがフローティング状態になるおそれがない。ビットラインは、補償付き又は補償なしの低速プログラムモードを含む、精確な制御のために規定レベルで駆動される。
なお、図14に見られるように図18aがVdd−ΔV及びVddの電源を含むように修正される場合、図18aの検知回路に関係している図18bの時間軸の手法は修正されてもよい。この場合、BLCを用いてビットライン電圧をクランプするのではなく、BLCをハイに設定してビットラインにVdd−ΔV及びVddを伝達してもよい。同様に、図14及び16aの検知回路は、図18aに見られるように、Vcompの電源を含むように修正されてもよい。
一実施形態では、記憶システムが、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む一組の記憶素子と、各記憶素子に接続されたそれぞれのビットラインと、一又は複数の制御回路とを備える。前記一又は複数の制御回路は、一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行するために、(a)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加し、(b)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する。
他の一実施形態では、記憶システムにおける一組の記憶素子をプログラムするための方法が提供される。ここで、各々の記憶素子は、対応するビットラインに接続されている。この方法は、前記一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行する工程を含む。ここで、前記一組の記憶素子は、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む。前記複数のプログラム反復を実行する工程は、(a)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加する工程と、(b)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する工程とを含む。
他の一実施形態では、記憶システムが、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む一組の記憶素子と、前記少なくとも一つの記憶素子に接続されたそれぞれのビットラインと、一又は複数の制御回路とを備える。前記一又は複数の制御回路は、(a)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムを行い、(b)前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記ビットラインをフロートさせながら、前記一組の記憶素子にプログラムを継続する。
上記した詳細な説明は、図解及び説明のために提示された。それは、網羅的であること、又は開示されている正確な形式に本技術を制限することを意図していない。上記の教示を鑑みて、多くの修正及び変形が考えられる。説明された実施形態は、本技術及びその実践的な用途の原則を最もよく説明し、それによって当業者が多様な実施例において、及び意図された特定の使用に適するような多様な修正をもって本技術を最もよく活用できるようにするために選ばれた。本技術の範囲は、ここに添付される請求項により定められるものである。