フラッシュメモリシステムの一例は、NAND構造を用いており、2つの選択ゲートの間に複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1は、1つのNANDストリング30を示す平面図である。図2は、その等価回路である。図1と図2に示すNANDストリングは、第1選択ゲート12と第2選択ゲート22の間に挟まれている、直列に接続されている4つのトランジスタ10、12、14及び16を有する。選択ゲート12は、NANDストリングをビットライン26に接続している。選択ゲート22は、NANDストリングをソースライン28に接続している。選択ゲート12は、選択ラインSGDを介して制御ゲート20CGに適切な電圧を加えることによって制御される。選択ゲート22は、選択ラインSGSを介して制御ゲート22CGに適切な電圧を加えることによって制御される。トランジスタ10、12、14、及び16の夫々は、制御ゲートとフローティングゲートを備えており、それらはメモリセルのゲート要素を形成する。例えば、トランジスタ10は、制御ゲート10CGとフローティングゲート10FGを備えている。トランジスタ12は、制御ゲート12CGとフローティングゲート12FGを備えている。トランジスタ14は、制御ゲート14CGとフローティングゲート14FGを備えている。トランジスタ16は、制御ゲート16CGとフローティングゲート16FGを備えている。制御ゲート10CGはワードラインWL3に接続されており、制御ゲート12CGはワードラインWL2に接続されており、制御ゲート14CGはワードラインWL1に接続されており、制御ゲート16CGはワードラインWL0に接続されている。
EEPROMシステムに適用できる他のタイプのメモリセルは、電荷を不揮発で蓄積するために、伝導性のフローティングゲートに替えて非伝導の誘電物質を活用する。そのようなセルは、Chanらによる記事、「A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device」、IEEE Electron Device Letters, Vol. EDL-8, No.3 March 1987, pp 93-95に説明されている。酸化ケイ素、窒化ケイ素、及び酸化ケイ素(ONO)で形成される三層の誘電体が、メモリセルチャネル上で半導電性基板の表面と導電性制御ゲートとの間に挟まれている。セルは、セルチャネルから窒化物の中に電子を注入することにより書き込みが行われ、窒化物内において電子が制限領域内にトラッピングされ蓄積される。この蓄積された電荷は、セルのチャネルの一部の閾値電圧を、その変化が検出できる程に変更する。セルは、窒化物中にホットホールを注入することによって消去される。Nozakiらの、「A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application」、IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501に、分離した選択トランジスタを形成するためにドーピングされたポリシリコンゲートがメモリセルチャネルの一部に拡がっている分割ゲート構成における同様のセルが説明されている。前記した2つの記事は、その全体を参照することにより本明細書に組み込まれる。参照することにより本明細書に組み込まれるWilliam D. Brown及びJoe E. Brewerによって編集された「Nonvolatile Semiconductor Memory Technology」、IEEE Press, 1998のセクション1.2にも、誘電電荷トラップデバイスに適用可能である書き込み技法が説明されている。この段落で説明されているメモリセルもまた用いることができる。本明細書が開示する技術は、異なるメモリセルの誘電領域群の間のカップリングに適用することもできる。
各セルに2ビットを記憶する別のアプローチが、Etianらによる、「NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell」、 IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545に説明されている。ONO誘電層は、ソースとドレイン拡散の間でチャネルを越えて拡がっている。1データビットに対応する電荷量は、ドレインに隣接する誘電体層内に局地化され、他のデータビットに対応する電荷量は、ソースに隣接する誘電体層内に局地化される。誘電体内の空間的に分離された複数の電荷蓄積領域のバイナリ状態を読み出すことによってマルチステートデータ記憶が得られる。本段落で説明したメモリセルも用いることができる。
図1と図2は、NANDストリング内の4個のメモリセルを示しているが、4個のトランジスタの使用は単に一例として提示されている点に留意されたい。NANDストリングは、4個よりも少ない、或いは、4個よりも多いメモリセルを有していてよい。例えば、NANDストリングによっては8個、16個、32個などの数のメモリセルを有していてよい。本明細書の説明は、いかなる特定個数のメモリセルを有するNANDストリングにも限定されない。NANDタイプのフラッシュメモリおよびそれらの動作に関連する例は、以下の米国特許/特許出願に記載されており、それらは、その全体を参照することにより本明細書に組み込まれる。米国特許第5,570,315号、米国特許第5,774,397号、米国特許第6,046,935号、米国特許第5,386,422号、米国特許第6,456,528号、米国特許出願第09/893,277(公開公報第US2003/0002348号)。NANDフラッシュメモリに加えて、他のタイプの不揮発性メモリも、実施形態に従って用いることができる。
NAND構造を用いたフラッシュメモリシステムの一般的なアーキテクチャは、いくつかのNANDストリングを含んでいる。図3は、例えば図1と2に示したNANDストリングの典型的なアレイ100を表している。各列に沿って、ビットライン26が、NANDストリングのビットライン選択ゲートのドレイン端子に接続されている。NANDストリングの各行に沿って、ソースラインがNANDストリングのソースライン選択ゲートの全ソース端子に接続されている。
メモリセルのアレイ100は、多数のメモリセルのブロックに分割されている。フラッシュEEPROMシステムでは一般的に、ブロックは消去の一単位を構成し、消去ブロックあるいは物理ブロックと呼ばれることがある。各ブロックは、同時に消去される最小数のメモリセルを含んでいる。但し、複数のブロックが同時に消去されることもある。幾つかの実装形態では、より小さいメモリセルの単位が同時に消去されることもある。図3では、一つのブロックは、共通セットのワードラインWL0−WL3に接続されたセル群を含む。例えば、ブロック90は、ワードラインWL0−WL3に接続された各NANDストリング30を含んでいる。
一実施形態では、メモリセルの各ブロックは、列群を構成する一組のビットラインと、列群を構成する一組のワードラインを備えている。各ブロックは典型的には複数のページに分割されている。一つのページは、典型的には書き込み或いは読み出しの最小単位を構成する。但し、1回の動作で複数のページが書き込まれる、或いは読み出されることもある。別の実施形態では、個々のページはセグメント群に分割される。セグメントは、基本的な読み出し動作によって1度に書き込まれる、より少ない数のセルを含んでいる。複数のページデータは、メモリセルの一つの行に記憶される。一つのページは、複数のセクタデータを記憶することができ、そのサイズは、通常はホストシステムによって定義される。一つのセクタは、ユーザデータとオーバーヘッドデータを含む。オーバーヘッドデータは、典型的にはエラー訂正コード(ECC)を含む。ECCは、セクタのユーザデータから算出される。後述するコントローラの一部が、データがアレイに書き込まれる間にECCを算出し、また、アレイから読み出される間にECCをチェックする。或いは、ECC及び/又は他のオーバーヘッドデータは、それらに対応するユーザデータが記憶されるものとは異なるページ或いは異なるブロックに記憶されてもよい。ユーザデータの1セクタは通常512バイトであり、そのサイズは、磁気ディスクドライブで通常用いられるセクタサイズに対応している。オーバーヘッドデータは、典型的には付加的な16−20バイトで構成される。8ページ、32、64、或いはそれ以上の多数のページが一つのブロックを構成する。幾つかの実施形態では、NANDストリングの一列が、一つのブロックを構成する。
一実施形態では、ビットラインは偶数(even)ビットライン(BLe)と奇数(odd)ビットライン(BLo)に分かれている。偶数/奇数ビットラインアーキテクチャでは、共通するワードラインに沿っているとともに偶数ビットラインに接続されているメモリセル群が一度に書き込まれ、共通するワードラインに沿っているとともに奇数ビットラインに接続されているメモリセル群が別途一度に書き込まれる。同時に読み出されるか、或いは書き込まれるデータが1つの論理ページを構成する。
他の実施形態では、ビットライン群は偶数と奇数のビットラインに分かれてはいない。そのようなアーキテクチャは、一般に、全ビットラインアーキテクチャと呼ばれている。全ビットラインアーキテクチャでは、読み出し及び書き込み動作において1ブロックの全てのビットラインが同時に選択される。共通するワードラインに沿っているとともにいずれかのビットラインに接続されているメモリセル群は、同時に書き込まれる。他の実施形態では、ブロック或いはビットライン群は、他のグループ化(たとえば右と左、あるいは2以上のグループ化など)によっても分割され得る。
図4は、メモリセルの1ページを並列に読み出すための、或いは書き込むためのリード/ライト回路を有するメモリデバイス110を示している。メモリデバイス110は、1つ以上のメモリダイ又はチップ112を有する。メモリダイ112は、メモリセルの2次元アレイ100、制御回路120、及び、リード/ライト回路130Aと130Bを備えている。図4の一実施形態では、様々な周辺回路によるメモリアレイ200へのアクセスはアレイの両側で対称的に実装されており、これにより、各側のアクセスライン及び回路の密度が半分に低減される。他の実施形態では、種々の周辺回路が、アレイの片側に非対象の形で実装されていてもよい。リード/ライト回路130A及び130Bは、複数のセンスブロック200を有しており、それらのセンスブロック200によって、1ページのメモリセルを並列に読み出し又は書き込みすることができる。メモリアレイ100は、行デコーダ140Aと140Bを介したワードラインと、列デコーダ142Aと142Bを介したビットラインによってアドレス指定される。典型的な実施形態では、コントローラ144は、1つ以上のメモリダイ112のような同一のメモリデバイス110(例えば、取り外し可能なストレージカード又はパッケージ)内に実装される。命令、及び、データは、ライン132を介してホストとコントローラ144の間で転送され、また、ライン134を介してコントローラと1つ以上のメモリダイ112の間で転送される。
制御回路120は、リード/ライト回路130Aと130Bと協働して、メモリアレイ100に対してメモリ動作を実行する。制御回路120は、ステートマシン122、オンチップアドレスデコーダ124、及び電力制御モジュール126を有している。ステートマシン122は、メモリ動作のチップレベルの制御を提供する。オンチップアドレスデコーダ124は、ホスト又はメモリコントローラによって用いられるアドレスと、デコーダ140A、140B、142A及び142Bによって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール126は、メモリ動作においてワードライン及びビットラインに供給される電力及び電圧を制御する。
図5は、センスモジュール150と呼ばれるコア部と、共通部160に分割された個別のセンスブロック200のブロック図である。一実施形態では、各ビットラインに対して個別のセンスモジュール150を用意し、一組のセンスモジュール150に対して一つの共通部160を用意してもよい。一例として、1個のセンスブロックは、1個の共通部160と8個のセンスモジュール150を有している。グループ内の各センスモジュールは、データバス156を介して協働する共通部と通信する。さらなる詳細として、2004年12月29日出願の米国特許出願第11/026,536、「Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers」があり、その出願は、全体を参照することにより本明細書に組み込まれる。
センスモジュール150は、接続されたビットライン内の伝導電流が予め決められた閾値レベルより高いか低いかを判定するセンス回路154を備えている。センスモジュール150はまた、接続されたビットラインに電圧状態を設定するために用いられるビットラインラッチ152を有している。例えば、ビットラインラッチ152内にラッチされた予め決められた状態が、接続されたビットラインを、書き込み禁止を指定する状態(例えば、VDD)に引き上げる(プル)する。
共通部160は、プロセッサ162、1組のデータラッチ164、及び、1組のデータラッチ164とデータバス168の間を接続するI/Oインタフェース166を備えている。プロセッサ162は計算を実行する。例えば、その機能の1つは、検出された(センスされた)メモリセル内に記憶されているデータを特定し、特定したデータを1組のデータラッチ内に格納することである。1組のデータラッチ164は、読み出し動作において、プロセッサ162によって特定されたデータビット群を格納するために用いられる。一組のデータラッチ164は、また、書き込み動作において、データバス168から取り込んだデータビット群を格納するためにも用いられる。取り込まれるデータビット群は、メモリ内に書き込む予定のライトデータ(書き込みデータ)を表す。
読み出し又は検出中には、システムの動作はステートマシン122の制御下にあり、ステートマシン122はアドレス指定されたセルへの種々の制御ゲート電圧の供給を制御する。メモリに用意された様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む毎に、センスモジュール150はこれらの電圧の1つに遷移し、バス156を介してセンスモジュール150からプロセッサ162に出力が提供される。その時点で、プロセッサ162は、センスモジュールの遷移イベントと、ステートマシンから入力ライン158を介して加えられた制御ゲート電圧についての情報によって、結果としてのメモリ状態を決定する。それから、プロセッサは、メモリ状態に対するバイナリ符号化を計算し、得られたデータビット群をデータラッチ164に格納する。コアの別の実施形態では、ビットラインラッチ152は、センスモジュール150の出力をラッチするラッチ、及び、上記のようなビットラインラッチの二つの役割を持つ。
当然のことながら、いくつかの実装形態では複数のプロセッサ162を有することができる。一実施形態では、各プロセッサ162は出力ライン(不図示)を有し、各出力ラインは共にワイヤードOR(配線論理和)接続される。いくつかの実施形態では、出力ラインは、ワイヤードORラインに接続される前段階で反転される。ワイヤードORの結果を受け取るステートマシンは、書き込まれる全てのビットがいつ所望のレベルに到達したかを判断できる。したがって、この構成は、書き込み処理の完了時点を判定する書き込み検証処理における素早い判定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理「0」がワイヤードORラインに送られる(又はデータ「1」が反転される)。全てのビットがデータ「0」を出力すると(又はデータ「1」が反転されると)、ステートマシンは書き込み処理の完了を知る。各プロセッサが8個のセンスモジュールと通信する実施形態では、ステートマシンはワイヤードORラインを8回読み出す必要があってもよいし、あるいは、協働するビットラインの結果を蓄積するための論理をプロセッサ162に追加し、ステートマシンがワイヤードORラインを一度だけ読み出せば良いようにしてもよい。同様に、論理レベルを適切に選択することによって、グローバルステートマシンは、第1ビットがいつその状態を変更したのかを検知することができ、その結果としてアルゴリズムを変えることができる。
書き込み又は検証処理の間、書き込まれるべきデータはデータバス168から1組のデータラッチ164内に格納される。ステートマシン制御下の書き込み動作は、アドレス指定されたメモリセルの制御ゲートに加えられる一連の書き込み電圧パルスを伴う。各書き込みパルスに続いてリードバック(検証処理)が実行され、メモリセルが所望の状態に書き込まれたかどうかを判定する。プロセッサ162は、所望のメモリ状態に対するリードバックメモリ状態を監視する。その2つが一致したとき、プロセッサ162は、書き込み禁止を指定する状態にビットラインを引き上げる(プルする)ようにビットラインラッチ152を設定する。これにより、たとえ書き込みパルスがその制御ゲートに影響しても、ビットラインに接続したセルがさらに書き込みされないようにすることができる。他の実施形態では、プロセッサが最初にビットラインラッチ152をロードし、センス回路が検証処理中にそれに禁止値を設定する。
データラッチスタック164は、センスモジュールに対応するデータラッチのスタックを有する。一実施形態では、センスモジュール150毎に3個のデータラッチが存在する。幾つかの実装形態では、(必須ではないが)データラッチはシフトレジスタとして実装され、内部に格納されたパラレルデータをデータバス168用にシリアルデータに変換したり、その逆を行ったりする。好適な一実施形態では、m個のメモリセル用のリード/ライトブロックに対応する全てのデータラッチを相互にリンクしてブロックシフトレジスタを構成し、シリアル転送によってブロックデータを入力または出力できるようにする。特に、r個のリード/ライトモジュールの一群のデータラッチのそれぞれが、データバスへ或いはデータバスからデータを順に転送するようにリード/ライトモジュールのバンクを構成し、一群のデータラッチがあたかもリード/ライトブロック全体のシフトレジスタの一部であるかのようにしてもよい。
不揮発性記憶デバイスの多様な実施形態の構造及び/または動作についてのさらなる情報は次の文献に記載されている。(1)米国特許出願公開2004/0057287号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、2004年3月25日公開、(2)米国特許出願公開2004/0109357号、「Non-Volatile Memory And Method with Improved Sensing」、2004年6月10日公開、(3)米国特許出願第11/015,199、「Improved Memory Sensing Circuit And Method For Low Voltage Operation」、発明者、Raul-Adrian Cernea、2004年12月16日出願、(4)米国特許出願第11/099,133号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者Jian Chen、2005年4月5日出願、及び、(5)米国特許出願第11/321,953号、「Reference Sense Amplifier For Non-Volatile Memory」、発明者Siu Lung Chan、及び、Raul-Adrian Cernea、2005年12月28日出願。これら5個の特許文献の全ては、その全体を参照することにより本明細書に組み込まれる。
一実施形態では、データは、共通のワードラインに沿っているメモリセルに書き込まれる。従って、図9の書き込みパルスの印加に先立って、いずれかのワードラインが書き込みのために選択される。このワードラインを選択ワードラインと称する。ブロックの残りのワードライン群を非選択ワードラインと称する。選択ワードラインに対して1つ又は2つの隣接ワードラインが存在することがある。選択ワードラインに対して2つの隣接ワードラインが存在する場合、ドレイン側に位置する隣接ワードラインをドレイン側隣接ワードラインと称し、ソース側に位置する隣接ワードラインをソース側隣接ワードラインと称する。例えば、図2のWL2が選択ワードラインの場合、WL1がソース側隣接ワードラインに相当し、WL3がドレイン側隣接ワードラインに相当する。
一つのメモリセルに書き込みを行う場合、例えば、ドレインとp−ウエルが0Vを受けつつ、制御ゲートは、その大きさが増加していく一連の書き込みパルスを受ける。一実施形態では、一連のパルスの大きさは、12Vから24Vの範囲である。他の実施形態では、一連のパルスの範囲は、これとは異なっていてよいし、例えば、12Vよりも大きいレベルのパルスから始まってもよい。メモリセルへの書き込みにおいて、書き込みパルスの間の期間に検証動作が行われる。即ち、並列に書き込まれる一群のセルの各セルの書き込みレベルは、各書き込みパルスの間に読み出され、読み出されたレベルが書き込み時のレベルである検証レベルに達しているか或いは上回っているかが判定される。書き込みの一検証手段は、特定の比較ポイントで導通するか否かを検査することである。十分に書き込まれたことが検証されたセルは、例えばNANDセルにおいては、ビットライン電圧が0からVDD(例えば1.8V−3.3V)に引き上げられ、全ての後続の書き込みパルスに対してロックされ、それらセルの書き込み処理は終了する。幾つかの場合には、パルス数は制限されることがあり(例えば20パルス)、最後のパルスによってもあるメモリセルが十分に書き込まれなかった場合には、エラーが推定される。幾つかの実施形態では、書き込みに先立って、メモリセル群は、(ブロック単位或いは他の単位で)消去される。
図6は、一実施形態における書き込み電圧信号を示している。この信号は、大きさが増大していく一連のパルス群からなる。パルスの大きさは、既定のステップサイズでパルス毎に増大する。複数のデータビットを記憶するメモリセルの一実施形態では、典型的なステップサイズは0.2V(又は0.4V)である。各書き込みパルスの間に、検証パルスが存在する。図6の信号は、4状態メモリセルに対するものであり、それゆえ、その信号は、3個の検証パルスを含む。例えば、書き込みパルス240と242の間に、連続する3個の検証パルスが存在する。第1検証パルス244は、ゼロボルトの検証電圧レベルとして示されている。第1検証パルスの後には、第2検証電圧レベルにある第2検証パルス246が続く。第2検証パルスの後には、第3検証電圧レベルにある第3検証パルス248が続く。8状態でデータを記憶することができるマルチステートメモリセルは、例えば、7つの比較ポイントについて検証動作を実行する必要がある。そのため、7つの検証動作を7つの検証レベルで実行するために、2つの連続する書き込みパルスの間で7つの検証パルスが連続的に印加される。7つの検証動作に基づいて、そのシステムは、メモリセルの状態を決定することができる。検証に要する時間的負担を軽減する1つの手段は、より効率的な検証プロセスを利用するものである。これは例えば、米国特許出願第10/314,055号、「Smart Verify for Multi-State Memories」、2002年12月5日出願、米国特許出願第11/259,799号、「Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify」、2005年10月27日出願、及び、米国特許出願番号第11/260,658号、「Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify」、2005年10月27日出願、に開示されており、これら出願の全体は参照により、本明細書に組み込まれる。
図7は、不揮発性メモリを書き込むための方法の一実施形態を示すフローチャートである。書き込み対象のメモリセルはステップ200にて消去される。ステップ200は、書き込み対象のメモリセルよりも多くのメモリセル(例えばブロック単位、又は他の単位)を消去することを含んでいてよい。ステップ202では、消去されたメモリセルに対して消去した閾値電圧の区分を狭めるソフト書き込みが実行される。消去処理の結果、いくつかのメモリセルが必要以上に深く消去されてしまう可能性がある。ソフト書き込みは、小さな書き込みパルスを印加して、消去されたメモリセルの閾値電圧を消去検証レベルに近付ける。ステップ204では、「データロード」命令がコントローラ144によって発行され、制御回路120に入力されることで、データ入力/出力バッファにデータを入力することが可能となる。入力されたデータは命令として認識され、制御回路120に入力された命令ラッチ信号(図示せず)を介しステートマシン122によってラッチされる。ステップ206では、コントローラ又はホストから、ページアドレスを指定するアドレスデータが行コントローラ又はデコーダ140A、140Bに入力される。入力されたデータは、制御回路に入力されたアドレスラッチ信号の影響を受けながら、ステートマシン122によってページアドレスとして認識されてラッチされる。ステップ208では、アドレス指定されたページ用の1ページの書き込みデータが、書き込みのためにデータ入力/出力バッファに入力される。一実施形態では、例えば、532バイトのデータを入力することができる。このデータは、選択ビットラインのための適切なレジスタ内にラッチされる。いくつかの実施形態では、データは、検証動作で使用するために、選択されたビットラインのための第2レジスタ内にもラッチされる。ステップ210では、「書き込み」命令がコントローラによって発行され、データ入力/出力バッファに入力される。この命令は、制御回路に入力された命令ラッチ信号を介してステートマシン122によってラッチされる。
ステップ208でラッチされたデータは、「書き込み」命令でトリガされることにより、適切なワードラインに印加した図6のステップ状のパルスを使用して、ステートマシン122が制御する選択されたメモリセル内に書き込まれる。ステップ212では、選択されたワードラインに印加される書き込みパルス電圧レベルVPGMが開始パルス(例えば12V)に初期化され、ステートマシン122によって維持されている書き込みカウンタPCが0に初期化される。ステップ214では、選択されたワードラインに第1VPGMパルスが印加される。特定のデータラッチに論理「0」が格納されている場合には(論理「0」はそのデータラッチに対応するメモリセルを書き込みすべきことを示す)、対応するビットラインが接地される。一方、特定のデータラッチに論理「1」が格納されている場合(論理「1」はそのデータラッチに対応するメモリセルを現在のデータ状態に維持すべきことを示す)は、対応するビットラインにVDDが接続されて書き込みが禁止される。
ステップ216では、選択されたメモリセルの状態が検証される。選択されたセルの対象の閾値電圧が適切なレベルに達したことが検知されると、対応するデータラッチに格納されているデータが論理「1」に変更される。閾値電圧が適切なレベルに達していないことが検知された場合には、対応するデータラッチに格納されているデータは変更されない。こうすることで、対応するデータラッチに論理「1」が格納されているビットラインは書き込みする必要がなくなる。全てのデータラッチが論理「1」を格納したとき、ステートマシンは、全ての選択されたセルが書き込まれたことを認識する。ステップ218では、全てのデータラッチが論理「1」を格納しているかどうかがチェックされる。格納している場合には、全ての選択されたメモリセルが目標の状態に書き込まれ、検証されたので、書き込み処理は無事完了する。ステップ220にて、「合格」ステータスが通知される。
ステップ218にて全てのデータラッチが論理「1」を格納してはいないと判定された場合には、書き込み処理が継続する。ステップ222では、書き込みカウンタPCが書き込み限度値に対してチェックされる。書き込み限度値の一例は20であるが、これ以外の値の使用も可能である。書き込みカウンタPCが20未満でない場合には、ステップ226にて、書き込みに失敗したセルの数が既定数以下かどうかが判定される。書き込みに失敗したビットの数が既定数以下の場合には、ステップ228にて、書き込み処理に合格のフラグが立てられ、合格のステータスが通知される。書き込みに失敗したビットは、読み出し処理においてエラー修正を使用して修正することができる。しかし、書き込みに失敗したビットの数が既定数よりも多い場合には、ステップ230にて、書き込み処理に失敗したことを示すフラグが立てられ、失敗ステータスが通知される。書き込みカウンタPCが20未満である場合には、ステップ224にて、VPGMレベルがステップサイズだけ増加され、書き込みカウンタPCがインクリメントされる。ステップ224が終了すると、処理はステップ214へ戻り、次のVPGMパルスを印加する。
図7のフローチャートは、バイナリ記憶に適用可能なシングルパス書き込みの方法を示す。マルチレベル記憶装置に適用できる2パス書き込み方法では、例えば、複数回の書き込みステップ又は検証ステップがフローチャートの一巡において用いられる。書き込み動作の各パスにおいてステップ212−230が実行される。第1パスでは、1又は複数の書き込みパルスが印加され、その結果が検証されて、セルが適切な中間状態にあるか否かが判定される。第2パスでは、1又は複数の書き込みパルスが印加され、その結果が検証されて、セルが適切な最終状態にあるか否かが判定される。
成功した書き込み処理の最後では、メモリセルの閾値電圧は、書き込み済みメモリセルの1又は複数の閾値電圧区分内、あるいは、消去済みメモリセルの閾値電圧区分内にあるはずである。メモリセルの可能な閾値電圧の範囲は、個別のメモリ状態を表す複数の範囲に分割することができる。例えば、2つの閾値電圧の範囲は、論理データ「1」と「0」に割り当てられる2つのメモリ状態を実現することができる。個別のメモリ状態を表す2以上の閾値電圧範囲を用いることによって、一つのメモリセルは、デジタルデータの複数ビットを記憶することもできる。閾値電圧ウィンドウは、所定のメモリ状態群と、個々の状態を画定するために使用される複数の電圧ブレークポイントレベルに分割することができる。例えば、4個の状態を使用する場合には、データ値11、10、01、00に割り当てられる4個の区別されたメモリ状態を表す4個の閾値電圧範囲が存在することになる。メモリセルに書き込まれるデータとセルの閾値電圧範囲との間の特定の関係は、メモリセルに採用する符合化方法によって異なる。米国特許第6,222,762号、及び2003年6月13日出願の米国特許出願番号第10/461,244号、「Tracking Cells For A Memory System」は、両方ともその全体が参照により本明細書に組み込まれる。それらの文献は、マルチステートフラッシュメモリセルの様々なデータ符号化方法について記述している。
図8は、各メモリセルが2ビットデータを記憶する一群のメモリセルに対する閾値電圧区分を示す。図8は、消去されたメモリセルに対応する第1閾値電圧区分Eと、書き込まれたメモリセルに対応する3個の閾値電圧区分A、B及びCを示している。一実施形態では、区分E内の閾値電圧は負値であり、区分A、B及びC内の閾値電圧は正値である。図8の個々の閾値電圧範囲のそれぞれは、予め定められたデータビットの値に対応する。メモリセルに書き込まれるデータとセルの閾値電圧レベルとの間の特定の関係は、セルに採用されるデータ符号化の方法によって異なる。一実施形態では、データ値は、グレイコード割当を用いて閾値電圧範囲に割り当てられる。グレイコード割当を採用することによって、フローティングゲートの閾値電圧がそれに隣接する物理状態へ誤ってシフトした場合であってもその影響が1ビットだけに留まるようにすることができる。しかしながら、他の実施形態では、グレイコード法を用いずともよい。一例として、「11」が閾値電圧範囲E(状態E)に割り当てられ、「10」が閾値電圧範囲A(状態A)に割り当てられ、「00」が閾値電圧範囲B(状態B)に割り当てられ、「01」が閾値電圧範囲C(状態C)に割り当てられる。図8は4個の状態の場合を示しているが、本明細書が開示する実施形態は、他のバイナリ、又は、4個以外の状態数を取り得るマルチステート構造に適用することも可能である。
図8はまた、フルシーケンス書き込み技術を示している。フルシーケンス書き込みでは、メモリセルに、消去状態Eから書き込み状態A、B、或いはCのいずれへもダイレクトに書き込むことができる。書き込まれるべきメモリセルの集団を、集団内の全メモリセルが消去状態Eとなるように最初に消去する。一連の書き込み電圧パルスを選択されたメモリセルの制御ゲートに印加し、メモリセルに直接に状態A、B、又はCを書き込む。幾つかのメモリセルを状態Eから状態Aに書き込むとともに、他のメモリセルを状態Eから状態Bへ、及び/又は、状態Eから状態Cへ書き込むことができる。
図9は、2つの異なるページ(下位ページと上位ページ)のためのデータを記憶するマルチステートメモリセルへの2パス書き込み技術の一例を示す。4つの状態が示されている。状態Eでは、両ページに「1」が記憶される。状態Aでは、下位ページに「0」が記憶され、上位ページに「1」が記憶される。状態Bでは、両ページに「1」が記憶される。状態Cでは、下位ページに「1」が記憶され、上位ページに「0」が記憶される。複数の状態のそれぞれに特定のビットパターンが割り当てられるが、異なるビットパターンを割り当てることも可能である。
第1書き込みパスでは、下位の論理ページへ書き込むべきビットに従って、セルの閾値電圧レベルを設定する。そのビットが論理「1」ならば、状態は先の消去の結果のときのままでよいので、閾値データを変更する必要はない。他方、書き込むべきビットが論理「0」ならば、矢印250が示すように、セルの閾値レベルを状態Aへ増加させる。こうして第1書き込みパスが終了する。
第2書き込みパスでは、上位の論理ページに書き込むべきビットに従って、セルの閾値電圧レベルを設定する。上位論理ページビットが論理「1」ならば、そのセルは状態EとAのいずれかであるので、書き込みする必要はない。状態EとAの両者とも、下位ページビットへの書き込みにおいて上位ページビットが「1」のままだからである。上位ページビットが論理「0」の場合、閾値電圧をシフトする。第1パスの結果セルが消去状態Eのままであるならば、矢印254で示すように、第2パスでは、状態C内となるまで閾値電圧が増加するようにセルを書き込む。第1書き込みパスの結果でセルが状態Aに書き込まれている場合、矢印252で示すように、第2パスでは、状態B内となるまで閾値電圧が増加するようにセルをさらに書き込む。第2パスは、下位ページのデータを変えることなく上位ページに論理「0」を記憶するように指定された状態へセルを書き込む。
図10A〜10Cに、不揮発性メモリの書き込み処理を示す。ここで示す書き込み処理は、前ページの隣接メモリセルへの書き込みに続いて、特定のメモリセルに特定のページを書き込むことによって、その特定のメモリセルに対してフローティングゲート間のカップリングを抑制するものである。本明細書においては、その技法をラストファーストモード(LM)書き込みと称する。10A〜10Cに示す例では、各メモリセルは、4データ状態を使って1メモリセル当り2ビットデータを記憶する。消去状態Eはデータ「11」を記憶し、状態Aはデータ「01」を記憶し、状態Bはデータ「10」を記憶し、状態Cはデータ「00」を記憶する。物理データ状態への他のデータ符号化方式を採用してもよい。各メモリセルは、2つの論理ページデータの一部を記憶する。説明のため、それらのページを上位ページと下位ページと称するが、他の呼称を付けてもよい。状態Aは、上位ページにビット「0」を記憶し、下位ページにビット「1」を記憶することに符号化される。状態Bは、上位ページにビット「1」を記憶し、下位ページにビット「0」を記憶することに符号化される。状態Cは、両ページにビット「0」を記憶することに符号化される。ワードラインWLnのメモリセルに対する下位ページデータは、図10Aに示されている第1ステップで書き込まれ、そのセルに対する上位ページデータは、図10Cに示されている第2ステップで書き込まれる。下位ページデータがセルに対してデータ「1」を保持させるものであるならば、第1ステップにおいてセルの閾値電圧は状態Eのままでよい。下位ページデータが、「0」を書き込むべきものであるならば、そのメモリセルの閾値電圧を状態B’に引き上げる。ここで、状態B’は、Vvbよりも低い検証レベルVvb’を有する中間状態Bである。
一実施形態では、メモリセルに対して下位ページデータを書き込んだ後、隣接ワードラインWLn+1の隣接メモリセルにその下位ページに関して書き込みを行う。例えば、図1〜3において、WL1のメモリセルに対して下位ページを書き込んだ後、WL2のメモリセルに対して下位ページを書き込む。メモリセル12への書き込みの後、メモリセル10の閾値電圧が状態Eから状態B’に引き上げられた場合、フローティングゲートカップリングはメモリセル12のみかけの閾値電圧を引き上げる。WLnのメモリセルに対する累積的なカップリング作用は、図10Bに示すように、そのセルの閾値電圧のみかけの閾値電圧区分を拡げる。閾値電圧区分のみかけ上の拡大は、図10Cに示すように、注目するワードラインに上位ページを書き込む際に修正することができる。
図10Cは、WLnのセルに上位ページを書き込む処理を示している。メモリセルが消去状態Eにあり、その上位ページビットが「1」のままである場合、そのメモリセルは状態Eのままでよい。メモリセルが状態Eにあり、その上位ページビットに「0」が書き込まれるべき場合は、メモリセルの閾値電圧を状態A内となるまで引き上げる。メモリセルが中間閾値電圧区分B’内であり、その上位ページデータが「1」のままでよい場合は、最終状態Bとなるようにメモリセルを書き込む。メモリセルが中間閾値電圧区分B’内であり、その上位ページデータを「0」にすべき場合は、状態Cの範囲内となるようにメモリセルの閾値電圧を引き上げる。図10A〜10Cに示した処理は、フローティングゲートカップリングの影響を低減する。隣接メモリセルの上位ページへの書き込みのみが、注目するメモリセルのみかけの閾値電圧に影響を及ぼすからである。本技法のさらに別の状態符号化の一例では、上位ページデータが「1」のときには中間状態B’から状態Cへ移動させ、上位ページデータが「0」のときには状態Bへ移動させる。図10A〜10Cは、4データ状態と2データページの場合の一例を提供するものである。本技術は、4つ以上あるいはそれ以下の状態を有するとともに、様々な数のページを用いる場合にも適用可能である。
図11A〜11Fは、図8、9、及び図10A〜10Cで説明した方法の様々な実施形態における書き込み順を説明する表である。
図11Aは、全ビットライン書き込みにおける1ビットラインに沿ったメモリセルの書き込み順を示す表である。この実施形態では、4個のワードラインを備える1ブロックが、4個のページ(ページ0〜3)を有している。まずページ0を書き込み、次いでページ1を書き込み、次いでページ2を書き込み、最後にページ3を書き込む。ページ0のデータは、ワードラインWL0に接続された全てのメモリセルに記憶されるデータを含む。ページ1のデータは、ワードラインWL1に接続されたメモリセルに記憶されるデータを含む。ページ2のデータは、WL2に接続されたメモリセルに記憶されるデータを含む。ページ3のデータは、ワードラインWL3に接続されたメモリセルに記憶されるデータを含む。図11Aの実施形態は、図8に関して上記説明したフルシーケンス書き込みを想定している。
図11Bは、図8に関して上記説明したフルシーケンス書き込み方法を採用したときの偶数/奇数書き込みにおける書き込み順を示している。この実施形態では、4個のワードラインを備える1ブロックが、8データページを含んでいる。ワードラインWL0に接続された偶数ビットライン上のメモリセルが、ページ0のデータを記憶する。ワードラインWL0に接続された奇数ビットライン上のメモリセルが、ページ1のデータを記憶する。ワードラインWL1に接続された偶数ビットライン上のメモリセルが、ページ2のデータを記憶する。ワードラインWL1に接続された奇数ビットライン上のメモリセルが、ページ3のデータを記憶する。ワードラインWL2に接続された偶数ビットライン上のメモリセルが、ページ4のデータを記憶する。ワードラインWL2に接続された奇数ビットライン上のメモリセルが、ページ5のデータを記憶する。ワードラインWL3に接続された偶数ビットライン上のメモリセルが、ページ6のデータを記憶する。ワードラインWL3に接続された奇数ビットライン上のメモリセルが、ページ7のデータを記憶する。データは、ページの番号順に従ってページ0からページ7へと書き込まれる。
図11Cの表は、全ビットライン書き込みを実行するメモリアレイについての図9の2フェーズ書き込み処理における書き込み順を示している。4個のワードラインを備える1ブロックは、8ページを含む。ワードラインWL0に接続されたメモリセルでは、下位ページのデータがページ0を構成し、上位ページデータがページ1を構成する。ワードラインWL1に接続されたメモリセルでは、下位ページのデータがページ2を構成し、上位ページデータがページ3を構成する。ワードラインWL2に接続されたメモリセルでは、下位ページのデータがページ4を構成し、上位ページデータがページ5を構成する。ワードラインWL3に接続されたメモリセルでは、下位ページのデータがページ6を構成し、上位ページデータがページ7を構成する。データは、ページの番号順に従ってページ0からページ7へと書き込まれる。
図11Dは、偶数/奇数書き込みを実行するメモリアーキテクチャについての図9の2フェーズ書き込み処理における書き込み順を説明する表である。4個のワードラインを備える一つのブロックは、16ページを含んでおり、それらのページは、ページ0からページ15へ、ページの番号順に書き込まれる。ワードラインWL0に接続された偶数ビットライン上のメモリセルでは、下位ページのデータがページ0を構成し、上位ページデータがページ2を構成する。ワードラインWL0に接続された奇数ビットライン上のメモリセルでは、下位ページのデータがページ1を構成し、上位ページデータがページ3を構成する。ワードラインWL1に接続された偶数ビットライン上のメモリセルでは、下位ページがページ4を構成し、上位ページがページ6を構成する。ワードラインWL1に接続された奇数ビットライン上のメモリセルでは、下位ページがページ5を構成し、上位ページがページ7を構成する。ワードラインWL2に接続された偶数ビットライン上のメモリセルでは、下位ページがページ8を構成し、上位ページがページ10を構成する。ワードラインWL2に接続された奇数ビットライン上のメモリセルでは、下位ページがページ9を構成し、上位ページがページ11を構成する。ワードラインWL3に接続された偶数ビットライン上のメモリセルでは、下位ページが12を構成し、上位ページがページ14を構成する。ワードラインWL3に接続された奇数ビットライン上のメモリセルでは、下位ページがページ13を構成し、上位ページがページ15を構成する。これとは異なり、図14Eの場合、偶数ビットラインの各ワードライン下の下位と上位の両ページは、同じワードラインの奇数ビットラインの両ページへの書き込みの前に書き込まれる。
図11Fと図11Gは、図10A〜10Cの書き込み方法を採用した場合のメモリセルの書き込み順を示す。図11Fは、全ビットライン書き込みを実行するアーキテクチャに関係する。ワードラインWL0に接続されたメモリセルでは、下位ページがページ0を構成し、上位ページがページ2を構成する。ワードラインWL1に接続されたメモリセルでは、下位ページがページ1を構成し、上位ページがページ4を構成する。ワードラインWL2に接続されたメモリセルでは、下位ページがページ3を構成し、上位ページがページ6を構成する。ワードラインWL3に接続されたメモリセルでは、下位ページがページ5を構成し、上位ページがページ7を構成する。メモリセルは、ページ0からページ7へと、ページの番号順に書き込まれる。
図11Gは、奇数/偶数書き込みを実行するアーキテクチャに関係する。ワードラインWL0に接続された偶数ビットライン上のメモリセルでは、下位ページがページ0を構成し、上位ページがページ4を構成する。ワードラインWL0に接続された奇数ビットライン上のメモリセルでは、下位ページがページ1を構成し、上位ページがページ5を構成する。ワードラインWL1に接続された偶数ビットライン上のメモリセルでは、下位ページがページ2を構成し、上位ページがページ8を構成する。ワードラインWL1に接続された奇数ビットライン上のメモリセルでは、下位ページがページ3を構成し、上位ページがページ9を構成する。ワードラインWL2に接続された偶数ビットライン上のメモリセルでは、下位ページがページ6を構成し、上位ページがページ12を構成する。ワードラインWL2に接続された奇数ビットライン上のメモリセルでは、下位ページがページ7を構成し、上位ページがページ13を構成する。ワードラインWL3に接続された偶数ビットライン上のメモリセルでは、下位ページがページ10を構成し、上位ページがページ14を構成する。ワードラインWL3に接続された奇数ビットライン上のメモリセルでは、下位ページがページ11を構成し、上位ページがページ15を構成する。メモリセルは、ページ0からページ15へと、ページの番号順に書き込まれる。最後に、偶数と奇数のビットラインの両者を有するアーキテクチャのそれぞれは、全ての偶数ビットラインを例えばチップの左側に物理的にまとめて配置し、全ての奇数ビットラインを例えばチップの右側にまとめて配置して、実装することができる。
図11A〜11Gの実施形態において、メモリセルは、ソース側からドレイン側へNANDストリングに沿って書き込まれることに留意されたい。また、図の表は、4つのワードラインを備えた実施形態について示している。表に示した種々の方法は、4つ以外のワードラインを備えたシステムに適用することでき、また、順序を適宜に変更することによって、異なる方向(例えばドレインからソースへ向かって)に書き込むことができる。奇数/偶数書き込みを使ったアーキテクチャの例が、米国特許第6,522,580と第6,643,188に開示されており、それら両文献はその全体を参照することにより本明細書に組み込まれる。全ビットライン書き込みを用いたアーキテクチャに関するさらなる情報は、次の米国特許文献に開示されており、それらの文献はその全体を参照することにより本明細書に組み込まれる。米国特許公開公報第2004/0057283、米国特許公開公報第2004/0060031、米国特許公開公報第2004/0057285、米国特許公開公報第2004/0057287、米国特許公開公報第2004/0057318、米国特許第6,771,536公報、及び、米国特許6,781,877公報。
一実施形態では、メモリセルは、pウエルを十分な時間消去電圧(例えば20ボルト)に引き上げ、ソースとビットラインをフローティング状態にするとともに選択されたブロックのワードラインを接地することによって消去することができる。選択されたメモリセルのトンネル酸化層に強い電界が加わると、フローティングゲートの電荷が基板側へ放出されて、選択されたメモリセルのデータが消去される。電荷がフローティングゲートからpウエル領域へ移動するにつれて、選択されたメモリセルの閾値電圧が下がる。消去を禁止すべきセルについては、そのワードラインをフローティング状態にしておく。容量結合(カップリング)によって、非選択ワードライン、ビットライン、選択ワードライン、及び共通ソースラインもまた、消去電圧のかなりの割合へ引き上げられ、これによって非選択セルの消去が禁止される。消去は、メモリアレイ全体に対して、個々のブロックに対して、或いは、他のセルユニットに対して実行することができる。
不揮発性メモリの読み出しに際して、メモリセルの閾値電圧メモリウインドウを使っている範囲の数に分割するために、各状態の間に少なくとも一つの参照閾値電圧レベルが通常設定される。既定の固定した電圧(例えば、読み出し参照電圧)を、参照閾値電圧レベルに対応したメモリセルのゲートに印加してセルを読み出す際、そのソース/ドレイン間の導通状態を、その導通をブレークポイントレベル又は参照電流と比較することによって判定する。一般に、全ビットラインを同時に書き込むアーキテクチャでは、全ビットラインから同時にデータを読み出す。同様に、奇数と偶数のビットラインを別々に書き込むアーキテクチャでは、一般に、奇数と偶数のビットラインを個別に読み出す。しかしながら、そのような限定は必須ではない。本明細書に開示する読み出しのための技術は、図8〜9及び図10A〜10Cで説明した全ビットライン書き込みと奇数/偶数ビットライン書き込み技法のいずれにも、また他の書き込み技法にも適用可能である。
図8は、メモリセルからデータを読み出す際の3つの読み出し参照電圧、VrA、VrB、及びVrCを示している。メモリセルの閾値電圧がVrA、VrB、及びVrBよりも小さいか大きいかを検査することによって、システムはそのメモリセルがどの状態にあるかを判定することができる。メモリセルの制御ゲートにVrAを印加したときにそのメモリセルが導通したならば、そのメモリセルは状態Eにある。メモリセルがVrBとVrCで導通し、VrAで導通しなかったならば、そのメモリセルは状態Aにある。メモリセルがVrCで導通し、VrAとVrBで導通しなったならば、そのメモリセルは状態Bにある。メモリセルがVrA、VrB、及びVrCで導通しなかったならば、そのメモリセルは状態Cにある。図8はまた、3個の検証参照電圧、VvA、VvB、及びVvCを示している。メモリセルに状態Aを書き込む場合、システムはそのメモリセルがVvA以上の閾値電圧を有するか否かをテストする。メモリセルに状態Bを書き込む場合、システムはそのメモリセルがVvB以上の閾値電圧を有するか否かをテストする。メモリセルに状態Cを書き込む場合、システムはそのメモリセルがVvC以上の閾値電圧を有するか否かを判定する。
図12は、1回の読み出し又は検証処理における様々な信号の変化を示すタイミング図である。図12の処理の繰り返し1回が、各セルメモリに対する1回の検出動作(センス動作)を表している。バイナリメモリセルの場合、図12の処理を1回実行する。4つの状態(例えば、E、A、B,及びC)を取り得るマルチステートメモリセルの場合、各メモリセルに対して図12の処理を3回(3つのセンス動作を)実行する。
一般に、読み出し及び検証動作において、選択ワードライン(例えば、図3のWL2)は、読み出し参照電圧Vcgrに接続され、そのレベルは各読み出し及び検証動作に対して設定される、注目しているメモリセルの閾値電圧がそのレベルに達しているか否かが判定される。選択ブロックの選択ゲートは、1つ又は複数の選択電圧に引き上げられ、選択ブロックの非選択ワードライン(例えば、図3のWL0、WL1、及び、WL3)は、トランジスタがパスゲートとして機能するように読み出しパス電圧Vread(例えば4.5ボルト)に引き上げられる。ワードライン電圧を印加した後、そのメモリセルの導通電流を計測し、ワードラインに印加した電圧に応答してそのメモリセルがオンしたか否かを判定する。計測した導通電流が特定の値よりも大きい場合、そのメモリセルはオンしたと判定し、ワードラインに印加した電圧はメモリセルの閾値電圧よりも大きいと判定する。計測した導通電流が特定の値よりも大きくない場合、メモリセルはオンしなかったと判定し、ワードラインに印加した電圧がそのメモリセルの閾値電圧よりも大きくないと判定する。
読み出し、或いは検証動作におけるメモリセルの導通電流の計測には様々な方法がある。一例として、メモリセルの導通電流は、センスアンプ内の専用コンデンサの放電速度で計測することができる。他の例として、選択メモリセルの導通電流は、そのメモリセルを含むNANDストリングがビットラインを放電することを許容する(或いは許容しない)。所定時間後にビットライン上の電荷量を計測し、それが放電された否かを判定する。
図12は、SGD、WL_unsel、WLn+1、WLn、SGS,選択BL、BLCLAMP、及び、ソースの信号を示しており、それらの信号はVss(約0ボルト)で開始する。SGDは、ドレイン側選択ゲートのゲート選択ラインを表す。SGSは、ソース側選択ゲートのゲート選択ラインを表す。WLnは、読み出し/検証のために選択されたワードラインを表す。WLn+1は、WLnのドレイン側に隣接するワードラインである非選択ワードラインを表す。WL_unselは、ドレイン側隣接ワードライン以外の非選択ワードラインを表す。選択BLは、読み出し/検証のために選択されたビットラインを表す。ソースは、メモリセルのソースラインを表す(図3参照)。BLCLAMPは、アナログ信号であり、センスアンプから電圧を与えられたときにビットラインの値を設定する信号を表す。示されたSGS、選択BL、及びBLCLAMPには2つのバージョンが存在することに留意されたい。SGS(B)、選択BL(B)、及び、BLCLAMP(B)の信号の組は、ビットラインが放電したか否かを判定することによってメモリセルの導通電流を計測するメモリセルのアレイのための読み出し/検証動作を示している。SGS(C)、選択BL(C)、及び、BLCLAMP(C)の信号の組は、センスアンプ内の専用コンデンサを放電する速さによってメモリセルの導通電流を計測するメモリセルのアレイのための読み出し/検証動作を示している。
まず、SGS(B)、選択BL(B)、及び、BLCLAMP(B)に関して、ビットラインが放電されたか否かを判定することによってメモリセルの導通電流を計測することを含むセンス回路とメモリセルのアレイの動作について説明する。図12の時刻t1において、SGDをVDD(例えば略5.5ボルト)へ引き上げ、非選択ワードライン(WL_unsel)をVread(例えば、略5.5ボルト)へ引き上げ、ドレイン側隣接ワードライン(WLn+1)をVreadXへ引き上げ、読み出し動作の場合には選択ワードラインWLnをVcgr(例えば、図8、9及び図10A−10CのVra、Vrb、又はVrc)へ引き上げ、或いは、検証動作の場合には選択ワードラインWLnを検証レベルVcgv(例えば、Vva、Vvb、又はVvc)へ引き上げ、そして、選択ビットライン選択BLをプリチャージするためにBLCLAMP(B)をプリチャージボルト(例えば略0.7ボルト)へ引き上げる。電圧VreadとVreadXは、パス電圧として作用する。なぜならば、それらは、(物理状態或いは閾値電圧に関わらずに)非選択メモリセルをオンさせパスゲートとして機能させるからである。時刻t2において、BLCLAMP(B)をVssまで低下させ、NANDストリングがビットラインを制御する。また、時刻t2において、SGS(B)をVDDへ引き上げることによってソース側選択ゲートをオンさせる。このことは、ビットライン上の電荷を放出する経路を提供する。読み出しのために選択したメモリセルの閾値電圧が、選択ワードラインWLnに印加したVcgr又はVcgvよりも大きい場合、信号線260で示すように、選択メモリセルはオンせず、ビットラインは放電しない。読み出しのために選択したメモリセルの閾値電圧が、選択ワードラインWLnに印加したVcgr又はVcgvを下回っている場合、曲線262で示すように、読み出しのために選択したメモリセルがオンし(導通し)、ビットライン電圧が低下する。時刻t2以降であって時刻t3(実装によって決定される)以前のいずれかのタイミングで、そのビットラインが十分に放電したか否かをセンスアンプが判定する。t2とt3の間において、センスアンプが評価対象のBL電圧を計測できるようにBLCLAMP(B)を引き上げ、その後低下させる。時刻t3において、図示された信号をVss(或いはスタンバイ又は回復のための他の値)に低下させる。他の実施形態では、いくつかの信号のタイミングは変更し得ることに留意されたい(例えば、隣接するワードラインに印加する信号をシフトさせる)。
次に、SGS(C)、選択BL(C)、及び、BLCLAMP(C)に関して、センスアンプ内の専用コンデンサを放電する速度によってメモリセルの導通電流を計測するセンス回路とメモリセルのアレイの動作について説明する。図9の時刻t1において、SGDをVDD(例えば略3.5ボルト)へ引き上げ、非選択ワードライン(WL_unsel)をVread(例えば、略3.5ボルト)へ引き上げ、ドレイン側隣接ワードライン(WLn+1)をVreadXへ引き上げ、読み出し動作の場合には選択ワードラインWLnをVcgr(例えば、図11のVra、Vrb、又はVrc)へ引き上げ、或いは、検証動作の場合には選択ワードラインWLnをVcgv(例えば、図11のVva、Vvb、又はVvc)へ引き上げる。この場合、センスアンプは、NANDストリングの状態がどのように変化しようとビットライン電圧を一定値に保持し、センスアンプは、その定電圧に「固定された」ビットラインを流れる電流を計測する。そのため、t1にてBLCLAMP(C)を引き上げた後はt3まで変化させない。t1以降であって時刻t3(実装に応じて決定される)より前に、センスアンプが、センスアンプ内のコンデンサが十分な電荷量を放電したか否かを判定する。時刻t3において、図示した信号をVss(或いはスタンバイ又は回復のための他の値)に低下させる。他の実施形態では、いくつかの信号のタイミングは変更し得ることに留意されたい。
図13は、図8、9、又は図10A〜10Cなどの技術に従って書き込まれた不揮発性メモリセルからデータを読み出すための一実施形態を説明するフローチャートである。図13は、システムレベルの読み出し処理を示している。ステップ300では、データの読み出しリクエストを受信する。ステップ302では、データ読み出しリクエストに応答して特定ページに対して読み出し動作を実行する。一実施形態では、ページデータを書き込む際、システムは、エラー訂正コード(ECC)のための追加ビットを生成し、そのデータページとともに、それらのECCビットを書き込む。ECC技術は良く知られている。このECC処理には、当業者に知られている様々な適切なECCを用いてよい。ページからデータを読み出す際、ステップ304において、データ中にエラーがあるか否かを判定するためにECCビットが用いられる。ECC処理は、コントローラ、ステートマシンなど、システムのいずれの構成部分が実行してもよい。ステップ304にてエラーが発見されると、ステップ308にて、そのエラーが訂正可能か否かを判定する。エラーは、フローティングゲート間カップリング、又は他の原因で生じ得る。種々のECC方法は、データセット中の所定数までのエラーを訂正することができる。ECC処理がエラーを訂正できる場合、ステップ310にてECC処理によってデータが訂正され、ステップ314にてその訂正されたデータがユーザに通知される。幾つかの実施形態では、ステップ314の後にECC処理を実行してもよい。データ回復処理の詳細を以下に説明する。データを回復した後、そのデータはステップ316にて通知される。ステップ318において、読み出すべきさらなるページが存在する場合は、ステップ302の処理に戻り、そうでない場合は、ステップ320で終了する。図13の処理は、全ビットライン書き込みと奇数/偶数ビットライン書き込みのいずれで書き込まれたデータに対しても適用可能であることに留意されたい。
図14は、ページの読み出し動作(図13のステップ302)を実行するための処理の一実施形態を説明する図である。図14の処理は、ブロックの全ビットライン、ブロックの奇数ビットラインのみ、ブロックの偶数ビットラインのみ、あるいは、ブロックの他のサブセットのいずれかを含むページに対しても実行可能である。ステップ320では、ページに対応する適切なワードラインに読み出し参照電圧Vraを印加する。ステップ322では、そのページに対応したビットラインをセンスし、アドレス指定されたメモリセルが、その制御ゲートへのVraの印加によってオンしたか否かを判定する。ビットラインが導通すれば、それは対応するメモリセルがオンしたことを示しており、従って、そのメモリセルの閾値電圧がVra(例えば状態E)を下回っていることが分かる。ステップ324では、ビットラインのセンス結果を、そのビットラインに対応した適切なラッチ(例えばラッチ202)に格納する。ステップ326では、読み出し対象のページに対応するワードラインに読み出し参照電圧Vrbを印加する。ステップ328では、上記説明と同様にビットラインをセンスする。ステップ330では、そのビットラインに対応した適切なラッチに結果を格納する。ステップ332では、そのページに対応したワードラインに読み出し参照電圧Vrcを印加する。ステップ334では、上記した説明と同様に、ビットラインをセンスし、メモリセルがオンしたか否かを判定する。ステップ336では、センスステップの結果を、そのビットラインに対応した適切なラッチに格納する。ステップ338では、各ビットラインのデータ値を決定する。例えば、Vraでメモリセルが導通したならば、そのメモリセルは状態Eにある。メモリセルがVrbとVrcで導通し、Vraで導通しなかったならば、そのメモリセルは状態Aにある。メモリセルがVrcで導通し、VraとVrbで導通しなかったならば、そのメモリセルは、状態Bにある。メモリセルがVra、Vrb、及びVrcのいずれでも導通しなかったならば、そのメモリセルは、状態Cにある。一実施形態では、データ値はプロセッサ162が決定する。ステップ340では、プロセッサ162が、各ビットラインに対応する適切なラッチ(例えばラッチ164)に、決定したデータ値を格納する。
ステップ320〜324は、図12に示す動作の実行を含み、その場合はVcgr=Vra、VreadX=Vreadである。ステップ326〜330は、図12に示す動作の実行を含み、その場合はVcgr=Vrb、VreadX=Vreadである。ステップ332−336は、図12に示す動作の実行を含み、その場合はVcgr=Vrc、VreadX=Vreadである。
フローティングゲートカップリングは、読み出し動作においてエラーを引き起こし得る。
メモリセルのフローティングゲートに蓄積された電荷量は、みかけのシフトを受けることがある。そのみかけのシフトは、隣接メモリセルのフローティングゲート又は他の電荷蓄積領域(例えば、誘電性の電荷蓄積領域)に蓄積された電荷に起因する電界結合によって生じる。理論上は、メモリアレイ内のいずれのメモリセルのフローティングゲート上の電荷量によって生じる電界も、アレイ内の他のメモリセルのフローティングゲートに影響を及ぼす。その影響は、前述したように、隣接するメモリセルにおいて最も顕著である。電荷量のみかけのシフトは、メモリセルのメモリ状態を読み出す際にエラーを発生させ得る。
フローティングゲートカップリングの影響は、対象のメモリセルへの書き込みに続いてその対象メモリセルに隣接するメモリセルへの書き込みが行われるという状況下で最も顕著である。しかし、その影響は、他の状況でも起こり得る。隣接メモリセルのフローティングゲート上の電荷量、又は電荷量の一部は、電界結合を通じて対象のメモリセルに作用し、対象のメモリセルの閾値電圧のみかけのシフトを生じさせる。メモリセルのみかけの閾値電圧は、書き込んだメモリ状態に対応する読み出し参照電圧を印加したときにメモリセルがオンしないことが起こり得るほどに大きくシフトしてしまうことがある。
典型的には、メモリセルの行は、ソース側選択ゲートラインに隣接するワードライン(WL0)から書き込みが開始される。書き込みは、その後、先立つワードライン(WLn)への書き込み終了(そのワードラインの各セルをその最終状態にすること)の後に、少なくとも1ページ分のデータが隣接ワードライン(WLn+1)に書き込まれるように、一連のセルを通じて、ワードライン(WL1、WL2、WL3、等)へと順次進展する。この書き込みのパターンが、フローティングゲートカップリングに起因する、書き込み後のメモリセルの閾値電圧のみかけのシフトを起こす。書き込みするNANDストリングの最後のワードラインを除く各ワードラインについて、注目するワードラインへの書き込みの完了に続いて、隣接ワードラインが書き込まれる。注目するワードラインに隣接しており、そのワードラインよりも後に書き込まれるメモリセルのフローティングゲートに蓄積される負値の電荷量は、その注目するワードライン上のメモリセルのみかけの閾値電圧を上昇させる。
図15は、フローティングゲート間のカップリング(結合)の概念を図解する。図15は、同一のNANDストリング上に位置する、隣接するフローティングゲート350と352を示している。フローティングゲート350と352は、NANDチャネル/領域354、ウエル、又は基板の上に位置しており、それらはソース/ドレイン領域356、358、360を備えている。ワードラインWLnの一部であってそれに接続された制御ゲート362がフローティングゲート350の上に位置している。ワードラインWLn+1の一部であってそれに接続された制御ゲート364がフローティングゲート352の上に位置している。フローティングゲート350は、他の複数のゲートからカップリングを受けるが、理解をし易くするために、図15では、一つの隣接メモリセルからの影響のみを図示している。図15は、フローティングゲート350に影響を与える隣接メモリセルからの結合(カップリング)の3つの要素:r1、r2、及びCrを示している。要素r1は、隣接フローティングゲート(350と352)の間の結合比であり、隣接フローティングゲートの静電容量を、その周囲にある他の全ての電極に対するフローティングゲート350の全ての静電結合の和で除した値として算出される。要素r2は、フローティングゲート350とドレイン側隣接制御ゲート364の間の結合比であり、フローティングゲート350と制御ゲート364の静電容量を、その周囲にある全ての他の電極に対するフローティングゲート350の全ての静電結合の和で除した値として算出される。要素Crは、制御ゲート結合比であり、フローティングゲート352とそれに対応する制御ゲート364の間の静電容量を、その周囲にある全ての他の電極に対するフローティングゲート352の全ての静電結合の和で除した値として算出される。
一実施形態では、要求される補償の大きさ、ΔVread、は、選択ワードラインWLnのメモリセルを読み出すときに算出することができ、次の式で与えられる。
ΔVTn+1は、WLnへの書き込み/検証の時刻と現在時刻との間におけるドレイン側隣接メモリセルの閾値電圧の変化を表す。ΔVTn+1とr1は、本方法によって軽減されるワードライン間の寄生カップリング作用を引き起こす主因である。ΔVreadは、その作用を軽減するための補償を表す。
本明細書で説明するカップリングのための補償は、隣接フローティングゲート間の同じ寄生静電容量、及び、フローティングゲートと隣接制御ゲート間の静電容量を利用することによって得られる。制御ゲート/フローティングゲートの積層は、典型的には、1回のエッチング工程で形成されるので、この補償は、メモリセル間の間隙の変動に依存する。従って、2つの隣接セルが遠く離れている場合、カップリングの影響は小さくなり、そのため、それ対する補償も小さくて済む。2つの隣接セル同士が近い場合には、カップリングの影響が大きくなり、大きな補償が必要となる。このことは、比例的な補償を構成する。
上記説明した補償は、エッチバック深さの変動の影響も低減する。幾つかのデバイスでは、制御ゲートはフローティングゲートを包み込んでいる。重なり部分は「エッチバック」と呼ばれる。エッチバック深さの変化はカップリング作用の大きさに影響を与える。上記した補償の技術によれば、補償の効果は同様に、エッチバック深さに依存して変化する。
フローティングゲート間カップリングの影響を低減することによって、閾値電圧区分間のマージンを小さくすることを可能する。或いは、メモリシステムは、書き込みを高速化することができる。
本明細書が開示する技術の他の重要な利点として、WLnやWLn+1に電圧を印加するためのデジタルアナログコンバータの分解能が、選択ワードラインWLnに印加する電圧を変化させる従来の補償と比べて、高くなくてよいことがある。選択ワードラインに補償を印加するという場合にその補償に要求される変化は、本発明と比較して精緻である必要がある。本発明では、補償の変化は、寄生カップリングには直接には作用せず、従って、Vreadの低い解像度が、WLnにマージン付加した電圧の高い解像度に等価的に変換される。
図16は、隣接ワードラインに印加する読み出しパス電圧に補償として変化(ΔVread)を付加したデータ回復処理(ステップ620)の一実施形態を説明するフローチャートである。データには、フローティングゲート間カップリング作用(又は他の要因)に起因するエラーが含まれることがある。図16の処理は、フローティングゲート間カップリング作用(又は他の要因)に対する補償を行いながらデータを読み出す。補償は、隣接ワードラインを検査し、隣接ワードラインへの書き込みが、フローティングゲート間カップリングがどの程度作用するかを決定することを含む。例えば、ワードラインWLn(例えば、図3のWL2)のデータを読み出すとき、この処理は、ワードラインWLn+1(例えば、図3WL3)のデータも読み出す。ワードラインWLn+1上のデータがWLn上のデータにみかけの変化を引き起こしている場合、この読み出しプロセスは、その予定しない変化に対して補償を加える。
図16の処理に基づいて特定のメモリセルを読み出す場合、隣接メモリセルがその特定のメモリセルに及ぼすカップリングの影響を低減するために、隣接メモリセルに補償を加える。そのような実施形態では、WLn+1に印加しているパス電圧(Vreadで表されている)を標準の値(例えば6V)から(例えば3Vに)減じる。Vreadを3Vへ減じることは、図8に示したフルシーケンス処理、又は、図9に示した上位/下位ページ処理に適している。図10A〜10Cに示した処理の場合、そのような処理では補償すべきフローティングゲートカップリングの影響の大きさが小さいので、Vreadは他と比較してその減少幅は小さくてよく、例えば4.5V程度である。
補償は、WLnに対する読み出し動作の間のWLn+1への、書き込み/検証動作の検証フェーズの間に用いられる電圧と比較してより高い電圧の印加を含む。補償は、変化/デルタ:ΔVread=[[Vread(WLnの読み出しにおけるWLn+1)−Vread(WLnの検証におけるWLn+1)]}から構成されてよい。検証における低い方のVreadを用いる利点は、要求されるΔVreadを保持しながら、後の読み出し動作においてVreadのノミナル値の印加を許容することである。検証におけるVreadのノミナル値よりも小さい値を使わなかった場合、十分なΔVreadの印加を許容する読み出しにおけるVreadの必要値は、例えば6+3=9Vとなり、その値は、読み出し擾乱状態を引き起こすかもしれない電圧より高い電圧である。後の補償のためのそのような準備の一例が、図12に示されており、それは、他の非選択ワードラインにはVreadを印加しながら、ドレイン側隣接ワードラインにVreadXを印加するというものである。従来の多くのデバイスでは、全ての非選択ワードラインにVreadを印加していた。図12の実施形態では、隣接ワードラインを除く全ての非選択ワードラインにVreadを印加しながら、ドレイン側隣接ワードラインにVreadXを印加する。
図16に示す処理は、図8に関して上記説明したフルシーケンス書き込みに適用したものであり、図8のフルシーケンス書き込みでは、1論理ページの2ビットが各セルに記憶され、それらは同時に読み出されて通知される。隣接ワードライン上のメモリセルが状態Eにある場合は、フローティングゲート間カップリングの影響は生じない。隣接ワードライン上のメモリセルが状態Aにある場合は、小さいカップリングの影響が生じる。隣接ワードライン上のメモリセルが状態Bにある場合は、中程度のフローティングゲート間カップリングの影響が生じる。隣接ワードライン上のメモリセルが状態Cにある場合は、大きいフローティングゲート間カップリングの影響が生じる。隣接ワードラインによって生じるカップリング影響の正確な大きさは、アレイの実装状態に依存して変化し、従って、デバイスの特性に基づいて決定される。
図16のステップ370は、隣接ワードラインWLn+1に対する読み出し動作の実行を含む。一実施形態では、隣接ワードラインに対する図14の処理の実行を含む。例えば、ワードラインWL1内のページが読み出し対象の場合、ステップ370は、ワードラインWL2に対する図14の処理の実行を含む。ステップ370の結果は、ステップ372において適切なラッチに格納される。幾つかの実施形態では、WLn+1に対して実行する読み出し動作は、WLn+1に記憶されている実際のデータを特定することになる。他の実施形態では、WLn+1に対して実行する読み出し動作は、WLn+1における電荷量レベルを特定することになる。そのWLn+1における電荷量レベルは、WLn+1に記憶されたデータを反映したものである場合がある。
ステップ374では、いま注目しているワードラインWLnに対して読み出し処理を実行する。この処理は、図14の処理においてVreadX=Vread1とした処理の実行を含む。一実施形態では、Vread1=Vreadである。従って、全ての非選択ワードライン(図12におけるWL_unsel、WLn+1を参照されたい)にVreadを印加する。このことは、最大の補償を与えるものであり、その補償は、現在の読み出し動作においてWLn+1に対して用いたVreadの値と、これに先立つ書き込み/検証の検証フェーズにおいて用いたVreadの値との差によって決定される。補償値compCは、次の通り決定することができる。compC=Vread1−Vreadp=5.5−3=2.5V,ここで、Vreadpは、書き込み/検証において用いられたVreadの値である。ステップ374の結果は、WLn+1の隣接セルが状態Cであると(ステップ370にて)特定されたメモリセルのビットラインに対応する適切なラッチに格納される。すなわち、最大補償compCは、そのドレイン側隣接セルが状態Eから状態Cへ書き込まれることによって閾値電圧の最大変化を受けているセルと関係している。それらのドレイン側隣接セルは、WLnの書き込み/検証のときには状態Eであったが、現在は状態Cにあることに留意されたい。全ての状況下で補償すべきであるのは、WLnの書き込み時とWLnの読み出し時である現時刻の間に影響を受けたWLn+1上のドレイン側隣接セルの状態変化に対してである。ドレイン側隣接セルが現在状態Cであるべきことが検知されなかった他のビットラインに対しては、WLn+1に対してVread1を使ったWLnのこの読み出しのデータは無視する。
ステップ378では、WLnに対して読み出し処理を実行する。この読み出し処理の間、ドレイン側隣接ワードラインWLn+1にVread2を印加する。即ち、VreadX=Vread2であり、ここでVread2は、Vread1と比較すると、書き込みにおいて用いられたVreadpの値に近い値である。このことは、ドレイン側隣接セルが現在状態Bにあるセルに対して適切な小さい量の補償を与える。補償の量の一例は、compB=Vread2−Vreadp=4.9−3=1.9Vである。即ち、Vread2は、Vreadpに対してcompBだけ差がある。ステップ380では、状態Bにある隣接メモリセル(例えばWLn+1)を有するメモリセルのためのビットラインについてステップ378の結果が格納される。他のビットラインについてのデータは無視される。
ステップ382では、WLnに対して読み出し処理を実行する。その読み出し処理では、ドレイン側隣接ワードラインWLn+1にVread3を印加する。即ち、VreadX=Vread3であり、Vread3は、Vread2と比較すると、書き込みにおいて用いられたVreadpの値に近い値である。このことは、ドレイン側隣接セルが現在状態Aにあるセルに対して適切なやや小さい量の補償を与える。補償の量の一例は、compA=Vread3−Vreadp=4.3−3=1.3Vである。即ち、Vread3は、Vreadpに対してcompAだけ差がある。ステップ384では、状態Aにある隣接メモリセル(例えばWLn+1)を有するメモリセルのためのビットラインについてステップ382の結果が格納される。他のビットラインについてのデータは無視される。
ステップ386では、WLnに対して読み出し処理を実行する。その読み出し処理では、ドレイン側隣接ワードラインWLn+1にVread4を印加する。即ち、VreadX=Vread4であり、Vread4は、書き込みにおいて用いられたVreadpの値と同一である。このことは、補償なしを意味し、それは、ドレイン側隣接セルが、書き込み/検証時においてもそうであったように現在も状態Eにあるセルに対して適切である。補償の量の一例は、compE=Vread4−Vreadp=3−3=0.0Vである。ステップ388では、状態Eにある隣接メモリセル(例えばWLn+1)を有するメモリセルのためのビットラインについてステップ386の結果が格納される。他のビットラインについてのデータは無視される。図16の処理において、隣接ビットラインは4種の電圧が印加されるが、読み出し対象の各メモリセルにはただ1つの適切な電圧のみが印加される。
異なる実装形態においてはVread1、Vread2、Vread3、及びVread4として異なる値が用いられてもよく、それらの値は、デバイスの特性、実験、及び/又はシミュレーションに基づいて決定される。
上記の説明において、図16の処理は、図13におけるデータ回復ステップ314の一部として実行される。他の実施形態では、図16の処理は、データ読み出し要求に応答して実行する初期読み出し処理として用いてもよい。例えば、図13のステップ300にてデータ読み出し要求の受信後、システムはステップ302にて読み出し動作を実行する。そのような実施形態では、ステップ302は、図16の処理を実行するように実装される。図16の処理をステップ302に実装する実施形態は、付加的なデータ回復ステップ314は必要でないことがあり、データ訂正を行わないシステムの場合、そのシステムはエラーを通知する。
図17は、データ回復処理(例えば、図16の方法)をブロックの全てのワードライン(但し、書き込まれた最後のワードラインを除く)に対して実行する場合を示している。例えば、x数のワードラインが存在する場合、ワードラインWL0からWLx−1に対して回復処理を使う。ワードラインWLx(例えば、ドレインに最も近いワードライン)に対しては回復処理を実行する必要はない。なぜならば、そのワードラインは、そのワードラインの後に書き込まれ、フローティングゲート間カップリングの影響を引き起こす隣接ワードラインを有していないからである。図17は、全ワードラインに対して順次回復処理を実行する実施形態を示しているが、図13に関して上記説明した実施形態のように、ワードラインに対する回復処理を、別の時刻に、訂正不可能のECCエラーが存在する場合にのみ実行するようにしてもよい。
上記説明した図14と図16の方法は、図8の1論理ページの2ビットを記憶するフルシーケンス書き込みに関するものであった。それらの処理は、図9の2ステップ処理であり2論理ページのそれぞれからの1ビットを記憶する書き込み方法によって書き込まれたデータを読み出す場合には、僅かに修正すればよい。例えば、標準的な読み出し動作(図13のステップ302)を実行する場合、下位ページの読み出しには、メモリセルの制御ゲートへVraとVrcを印加し、それらの読み出しポイントにおいてセンスして、その下位ページに対するデータが状態E/C(データ「1」)であるのか、状態A/B(データ「0」)であるのかを決定することが必要である。従って、図14は、下位ページの読み出しにおいては、ステップ320、322、324、ステップ332、334、336、338、及び340のみが実行されるように修正される。上位ページの読み出しの実行に際しては、上位ページデータが状態E/A(データ「1」)であるのか状態B/C(データ「0」)であるのかを決定するために読み出し比較ポイントVrbを用いる。従って、上位ページの読み出しに際しては、図14の処理は、ステップ326、328、330、及び340のみを実行するように訂正される。さらに、データを回復する場合(ステップ314)、下位ページのデータを回復する際には図18の方法を実行し、上位ページのデータを回復する際には図19の処理を実行する。
図18のステップ400では、隣接ワードラインWLn+1に対して読み出し動作を実行する。一実施形態では、図14の方法をステップ400で実行する。幾つかの実施形態では、WLn+1に対して実行する読み出し動作が、WLn+1に記憶されている実際のデータを決定する結果となる。他の実施形態では、WLn+1に対して実行する読み出し動作が、WLn+1の電荷量レベル(又は他の状態)を決定する結果となる。WLn+1の電荷量レベル(又は他の状態)は、WLn+1に記憶されているデータを正確に反映することがあればそうでない場合もある。その読み出し動作の結果は、ステップ402において適切なラッチに格納される。ステップ404では、読み出し対象のワードラインWLnに対して読み出し動作を実行する。ステップ404は、図12の処理の実行を含み、その処理では、WLnにVraを印加するとともに、VreadX=Vread4である。ステップ406では、ビットラインをセンスする。ステップ408では、その結果を適切なラッチに格納する。ステップ404の他の実施形態では、読み出し処理は、VreadX=Vread1で実行してもよい。一実施形態では、ステップ404におけるVreadXの値は、検証処理において使われた値と同値である。
ステップ410では、ワードラインWLnに読み出し参照電圧Vrcを印加し、VreadX=Vread1とした上で、読み出し対象のワードラインWLnに対して読み出し動作を実行する。ステップ412では、上述したようにデータをセンスする。ステップ414では、状態Cのデータを記憶している隣接セルに対応するビットラインについて、センスステップ412の結果を格納する。
ステップ416では、ワードラインWLnに読み出し参照電圧Vrcを印加し、WLn+1に対してVreadX=Vread2とした上で、読み出し対象のワードラインWLnに対して読み出し動作を実行する。ステップ418では、上述したようにデータをセンスする。ステップ420では、状態Bのデータを記憶している隣接セルに対応するビットラインについて、ステップ418の結果を格納する。他のビットラインに対するデータは無視する。
ステップ422では、ワードラインWLnに読み出し参照電圧Vrcを印加し、WLn+1に対してVreadX=Vread3とした上で、WLnに対して読み出し動作を実行する。ステップ424では、上述したようにデータをセンスする。ステップ426では、状態Aのデータを記憶している隣接セルに対応するビットラインについて、ステップ424の結果を格納する。他のビットラインに対するデータは無視する。
ステップ428では、ワードラインWLnに読み出し参照電圧Vrcを印加し、WLn+1に対してVreadX=Vread4で、WLnに対して読み出し動作を実行する。ステップ430では、上述したようにデータをセンスする。ステップ432では、ステップ430の結果を、状態Eのデータを記憶している隣接セルに対応するビットラインに対して格納する。他のビットラインに対するデータは無視する。
ステップ434では、プロセッサ162が、センスステップで格納したデータに基づいてデータ値を決定する。ステップ436では、データ読み出しを要求するユーザとの将来的な通信に備えて、ステップ434で決定されたデータ値をラッチに格納する。他の実施形態では、ステップ432と424の間で、状態Aに関連したステップ404〜408を実行してもよい。他のフローチャートの処理と同様に、図18のステップ群を実行する順序として異なる順序を採用してもよい。
図18に示した処理において、Vrcに対してのみ補償を適用し、状態Bを状態Cと区別したことに留意されたい。消去状態は通常、閾値が負値であり、その消去状態はWLn+1によって影響するが、訂正が不必要なほどに状態Aから十分に隔たっているので、Vraでの読み出しには補償は必要ない。このことは、現在の世代のメモリにとって実用的な仮定ではあるが、将来の世代のメモリにとっては適切な仮定ではないかもしれず、上記説明したVrcに関する補償は、Vraに対して用いることが好適となる場合もあり得る。
ステップ434にてデータ値を決定する際、Vraに応答してメモリセルが導通したならば、下位ページのデータは「1」である。Vraに対する応答としてはメモリセルは導通せず、Vrcに対する応答でも導通しなかった場合もやはり、下位ページのデータは「1」である。Vraに対する応答としてはメモリセルは導通せず、しかしVrcに応答して導通した場合は、下位ページのデータは「0」である。
図19の処理は、上位ページのデータの読み出しあるいは回復に用いられる。ステップ450では、隣接ワードラインWLn+1に対して読み出し動作を実行する。幾つかの実施形態では、WLn+1に対する読み出し動作は、WLn+1に記憶されている実際のデータを特定する結果となる。他の実施形態では、WLn+1に対する読み出し動作は、WLn+1の電荷量レベルを特定する結果となる。WLn+1の電荷量レベルは、WLn+1に記憶されているデータを正確に反映していることもあれば、そうでないこともある。ステップ452では、各ビットラインに対応する適切なラッチにステップ450の結果を格納する。
ステップ454では、ワードラインWLnに読み出し参照電圧Vrbを印加し、WLn+1に対してVreadX=Vread1として、WLnに対して読み出し動作を実行する。ステップ456では、上述したようにデータをセンスする。ステップ458では、状態Cのデータを記憶している隣接セルに対応するビットラインについて、ステップ456の結果を格納する。他のビットラインについてのデータは破棄する。
ステップ460では、ワードラインWLnに読み出し参照電圧Vrbを印加し、WLn+1に対してVreadX=Vread2として、WLnに対して読み出し動作を実行する。ステップ462では、上述したようにデータをセンスする。ステップ464では、状態Bのデータを記憶している隣接セルに対応するビットラインについて、ステップ462の結果を格納する。他のビットラインについてのデータは廃棄する。
ステップ466では、ワードラインWLnに読み出し参照電圧Vrbを印加し、WLn+1に対してVreadX=Vread3として、WLnに対して読み出し動作を実行する。ステップ468では、上述したようにデータをセンスする。ステップ470では、状態Aのデータを記憶している隣接セルに対応するビットラインについて、ステップ468の結果を格納する。他のビットラインに対するデータは廃棄する。
ステップ472では、ワードラインWLnに読み出し参照電圧Vrbを印加し、WLn+1に対してVreadX=Vread4として、WLnに対して読み出し動作を実行する。ステップ474では、上述したようにデータをセンスする。ステップ476では、状態Eのデータを記憶している隣接セルに対応するビットラインについて、ステップ474の結果を格納する。他のビットラインに対するデータは廃棄する。
ステップ478では、プロセッサ162が、センスし格納したデータに基づいてデータ値を決定する。Vrbに応答してメモリセルがオンしたならば、上位ページのデータは「1」である。メモリセルがVrbに対する応答としてはオンしなかったならば、上位ページのデータは「0」である。ステップ480では、プロセッサ162によって決定されたデータ値は、ユーザとの通信に備えてデータラッチに格納される。
他の実施形態では、データの回復に際して図18と図19の方法を使うよりもむしろ、データ読み出し要求に応答して実行される初期データ読み出しのときに図18と図19の方法を使ってもよい。例えば、図13のステップ300にてデータ読み出し要求を受信した後、システムは、ステップ302にて読み出し動作を実行してもよい。そのような実施形態の場合、ステップ302は、図18及び/又は図19の処理を実行するように実装される。ステップ302の実行に際して図18及び/又は図19の処理を用いる実施形態は、ステップ314のデータ回復を有さない場合があり、その場合にはシステムは、エラーが訂正不可能であった場合はそのエラーを通知する。
図18と図19は、図9の上位ページと下位ページの処理を用いて書き込まれたデータを読み出す場合を説明している。図18と図19の2つの方法は、全ビットライン書き込みの場合、或いは、奇数/偶数ビットライン書き込みによって書き込まれたデータを読み出す場合に適用することができる。全ビットライン書き込みが用いられる場合、全ビットラインは通常同時に読み出される。奇数/偶数ビットライン書き込みが用いられる場合、通常は偶数ビットラインが最初に同時に読み出され、それとは異なる時刻に奇数ビットラインが同時に読み出される。
図20〜25は、図10A〜10Cに関する方法によって書き込まれたデータを読み出す際に用いる処理を説明する図である。図20の処理は、ECCを使う前に、或いはそれとは別個に、特定の1つ又は複数のページ(又は他のグループ)のデータに対する読み出し要求に応答して実行されるデータを読み出すための全体的な処理として実装することができる。他の実施形態では、図20の処理を、図13のデータ回復ステップ314の一部として実行してもよい。図10A〜10Cの処理によって書き込まれたデータを読み出す際、隣接セルの下位ページへの書き込みによって発生するフローティングゲート間カップリングによる変動は、メモリセルの上位ページを不確実性の元で書き込む際に訂正されるべきである。それゆえ、隣接セルからのフローティングゲート間カップリングの影響を補償する際、この処理の一実施形態では、隣接セルの上位ページの書き込みに起因するカップリングの影響を考慮するのみでよい。図20のステップ500では、この処理は、隣接ワードラインに対する上位ページデータを読み出す。隣接ワードラインの上位ページが書き込まれていない場合(ステップ502)、フローティングゲート間カップリングの影響に対する補償なしに読み出し対象のページを読み出す(ステップ504)。隣接ワードラインの上位ページが書き込まれていた場合は(ステップ502)、ステップ506にて、フローティングゲート間カップリングの影響に対する補償を使って、読み出し対象のページを読み出す。幾つかの実施形態では、隣接ワードラインに対して実行する読み出し動作は、隣接ワードライン上の電荷量レベルを決定する結果となる。その電荷量レベルは、記憶しているデータを正確に反映していることもあればそうでないこともある。また、読み出し対象の選択ワードライン、即ち、WLnは、下位ページデータのみを有していることに留意されたい。このことは、ブロック全体がまだ書き込まれていない場合に生じる。そのような状況においては、WLn+1上のセルはまだ消去状態にあり、従って、WLnのセルにはまだカップリングの影響が生じていないことが確実である。このことは、補償が必要ないことを意味する。従って、その上位ページが書き込まれていないワードラインの下位ページ読み出しは、如何なる補償技術も必要なしに通常通り行うことができる。
一実施形態では、図10A〜10Cの書き込み処理を実装したメモリアレイは、1又は複数のフラグを格納するための一組のメモリセルを確保している。例えば、一列のメモリセルを、それらに対応する下位ページのメモリセルの行が書き込まれているか否かを示すフラグを格納するために用い、他の一列のメモリセルを、それらに対応する上位ページのメモリセルの行が書き込まれているか否かを示すフラグを格納するために用いることができる。幾つかの実施形態では、フラグのコピーを格納するために冗長なセルを用いることができる。適切なフラグをチェックすることによって、隣接ワードラインに対する上位ページが書き込まれているか否かを判定することができる。そのようなフラグ及び書き込みの処理についてのより詳細な説明は、米国特許第6,657,891、Shibataら、"Semiconductor Memory Device For Storing Multi-Valued Data,"に開示があり、その全体は参照により本明細書に組み込まれる。
図21は、ドレイン側隣接ワードラインのような隣接ワードラインの上位ページデータを読み出すための処理(図10のステップ500)の一実施形態を説明する図である。ステップ510では、読み出し対象のページに対応したワードラインに読み出し参照電圧Vrcを印加する。ステップ512では、上述したことと同様にビットラインをセンスする。ステップ514では、ステップ512の結果を適切なラッチに格納する。ステップ516では、システムは、読み出し対象のページに対応した上位ページへの書き込みを示すフラグをチェックする。一実施形態では、フラグを格納しているメモリセルは、フラグが立てられていない場合には状態Eにあり、フラグが立てられている場合には状態Cにある。それゆえ、ステップ512において、その特定セルが導通している(オンしている)ことが検出されたならば、そのセルには状態Cのデータが格納されておらず、従ってフラグが立てられていないことが判明する。そのセルが導通しなかったならば、ステップ516においてそのメモリセルは上位ページが書き込まれていることを示していることが判定される。
他の実施形態では、フラグは1バイトに格納され得る。全てのビットに状態Cを格納するのに対して、1バイトは、フラグを表す一意に決まる8ビットコードを含み、それによってステートマシン222は、例えば、8ビットコードが状態Eにある少なくとも1ビット、状態Aにある少なくとも1ビット、状態Bにある少なくとも1ビット、及び、状態Cにある少なくとも1ビットを有することを知ることができる。上位ページが書き込まれていなかった場合、メモリセルのそのバイトは全て状態Eとなる。上位ページが書き込まれていた場合、メモリセルのそのバイトは、そのコードを格納する。一実施形態では、ステップ516は、コードを格納しているバイトのメモリセルのいずれかが、Vrcに応答してオンしないか否かをチェックすることによって実施され得る。他の実施形態では、ステップ516は、フラグを格納しているメモリセルのバイトをアドレス指定して読み出すこと、及び、そのデータをステートマシンへ送ること、を含む。ステートマシンは、そのメモリセルに格納されたコードが、ステートマシンが予期したコードと一致しているか否かを検証する。一致していたならば、ステートマシンは上位ページが書き込み済みであると結論する。
フラグが立てられていなかった場合(ステップ518)、図21の処理は、上位ページは書き込まれていなかったとの結論をもって終了する。フラグが立てられていた場合(ステップ518)、上位ページは書き込み済と判定し、ステップ522において、読み出し対象のページに対応したワードラインにVrbを印加する。ステップ524では、上述したのと同様にビットラインをセンスする。ステップ526では、ステップ524の結果を適切なラッチに格納する。ステップ528では、読み出し対象のページに対応したワードラインに電圧Vraを印加する。ステップ530では、ビットラインをセンスする。ステップ532では、ステップ530の結果を適切なラッチに格納する。ステップ534では、プロセッサ162が、3個のセンシングステップ512、524、及び530の結果に基づいて、読み出し対象のメモリセルのそれぞれに記憶されたデータ値を決定する。ステップ536では、最終的なユーザへの通知のために、ステップ534で決定されたデータ値を適切なデータラッチに格納する。ステップ534では、プロセッサ162が、選択された特定状態の符号化に依存する良く知られた簡単なロジック技術を使って上位ページと下位ページの値を決定する。例えば、図10A−10Cで説明した符号化では、下位ページのデータはVrb*(Vrbで読み出したときに記憶されていた値の補数)であり、上位ページのデータは、Vra* ORである(Vrb AND Vrc*)。
一実施形態では、図21の処理は、ドレイン側ワードラインへのVreadの印加を含む。それゆえ、図21の処理ではVreadX=Vreadである。図21の処理の他の実施形態では、VreadX=Vread4である。
図22は、隣接ワードラインからのフローティングゲート間カップリングに対する補償をシステムが必要としない場合(図20のステップ504参照)における対象のワードラインのデータを読み出すための処理の一実施形態を説明するフローチャートである。ステップ550では、対象のワードラインに対して、読み出しが上位ページであるのか下位ページであるのかを判定する。下位ページに対する読み出しである場合、ステップ552にて、読み出し対象のページに対応したワードラインにVrbを印加する。ステップ554では、ビットラインをセンスする。ステップ556では、センシングステップ554の結果を適切なラッチに格納する。ステップ558では、そのページが上位ページデータを含んでいるか否かを判定するためにフラグをチェックする。フラグがない場合、現在のデータはいずれも中間状態にあり、Vrbは用いるのに不適切な比較電圧であったということを意味する。処理はステップ560へ続き、ワードラインにVraを印加する。ステップ562にてビットラインを再びセンスし、ステップ564にてその結果を格納する。ステップ566では、プロセッサ162が、格納すべきデータ値を決定する。一実施形態では、下位ページを読み出す際、ワードラインへのVrb(又はVra)の印加に応答してメモリセルがオンするならば、下位ページデータは「1」であり、そうでない場合は、下位ページデータは「0」である。
ページアドレスが上位ページに該当すると判定された場合(ステップ550)、ステップ570にて上位ページの読み出し処理を実行する。一実施形態では、ステップ570の上位ページ読み出し処理は、図21で説明した方法と同様の方法を含み、書き込まれていない上位ページが読み出しのためにアドレス指定されたか又は他の理由により、フラグと全ての3つの状態を読み出すステップを含む。
一実施形態では、図22の処理は、ドレイン側隣接ワードラインへのVreadの印加を含む。それゆえ、図22の処理においてはVreadX=Vreadである。図21の処理の他の実施形態では、VreadX=Vread4である。
図23は、フローティングゲート間カップリングに対する補償を行いながらデータを読み出す処理(図20のステップ506参照)の一実施形態を説明するフローチャートである。図23のステップ580では、システムは、フローティングゲート間カップリングに対する補償を使うか否かを決定する。この処理はビットライン毎に個別に実行される。適切なプロセッサ162が、隣接ワードラインからのデータに基づいていずれのビットラインが補償を必要とするかを判定する。隣接ワードラインが状態E又はBの場合(或いは電荷量が明らかに状態E又はBを示している場合)、読み出し対象の特定ワードラインは、フローティングゲート間カップリングの影響に対する補償を必要としない。この判定は、隣接ワードラインが状態Eにあるならば、現在のワードラインが書き込まれたときまで閾値が変化していなかったのでカップリングに寄与しなかったという推定に基づく。隣接ワードラインが状態Bにあるならば、それはB’から変化したことを示しており、B’からBへの変化は小さく、無視し得る。他の実施形態では、状態B’から状態Bへの小さい変化は、比例して小さなΔVreadの印加によって補償し得る。
一実施形態では、ステップ580の処理は、ステップ500と同時に実行し得る。例えば、図24は、特定のビットラインに対してオフセットを用いるか否かの判定を実行するステップを説明するチャート図である。第1ステップでは、そのワードラインに対してVraを用いた読み出し処理を実行する。第2ステップでは、Vrbを用いた読み出しを実行する。Vraによる読み出しの際、そのメモリセルが状態Eにあるならばラッチは「1」を格納し、そのメモリセルが状態A、B、又はCにあるならば「0」を格納する。Vrbによる読み出しの際、ラッチは状態E及びAに対して「1」を格納し、状態BとCに対して「0」を格納する。図24の第3ステップは、ステップ1からの結果を伴う第2ステップからの結果を反転したものに対してXOR動作を実行することを含む。第4ステップでは、そのワードラインに対してVrcを使って読み出し動作を実行する。ラッチは、状態E、A、及びBに対して「1」を格納し、状態Cに対して「0」を格納する。第5ステップでは、ステップ4とステップ3の結果に対して論理積動作を実行する。ステップ1、2、及び4は、図21の一部として実行され得ることに留意されたい。図24のステップ3と5は、専用ハードウエア或いはプロセッサ162によって実行し得る。ステップ5の結果は、ラッチに格納され、補償が不必要ならば「1」が格納され、補償が必要ならば「0」が格納される。従って、状態A又はCにあるWLn+1上の隣接メモリセルを有するWLn上の読み出し対象のメモリセルに対して補償が必要とされる。このアプローチは、WLn+1からの全データを格納し2以上のラッチを必要とする先の方法と比較すると、WLnを訂正するか否かの判定に一つのラッチのみを必要とする。
先に言及したように、図10A〜10Cの書き込み技術を実装する一実施例において、WLnに対する書き込み検証の間のWLn+1に印加する低いVreadpは、4.5Vに減じることができる。隣接メモリセルが状態E又はBにある場合のような、WLnの読み出しに際してフローティングゲートカップリングに対する補償が必要ない場合、WLn+1に対してVreadX=Vread4を印加することができる。その場合、Vread4は、WLnに対する書き込み検証の間にWLn+1に印加されるVreadp(4.5V)に等しい。状態Bにある隣接セルに対して補償する実装において小さい補償が使われる場合、0.5Vの補償を与えるためにWLn+1に約5VのVreadXを印加し得る。図23及び図25においては、この変化に対する補償は図示されていないが、説明したように適用し得る。状態A又は状態Cにある隣接メモリセルに基づいて補償を加える場合、WLn+1にVreadX=Vread3を印加することができ、ここでVread3は、約6Vに等しい。このことは、1.5V(6V〜4.5V)の補償を与える。
図23のステップ582に戻り、読み出し対象のページが上位ページであるか下位ページであるかを判定する。読み出し対象のページが下位ページである場合、ステップ1204の読み出し処理において、読み出し対象のページに対応するワードラインWLnにVrbを印加し、ドレイン側隣接ワードラインWLn+1にVread4を印加する。図10A〜10Cで説明した状態符号化に対してはVrbでの読み出しで下位ページデータを決定することができることに留意されたい。ステップ588では、センシングステップ586の結果を、そのビットラインに対応する適切なラッチに格納する。ステップ590では、読み出し処理において、読み出し対象のページに対するワードラインWLnにVrbを印加し、ドレイン側隣接ワードラインWLn+1にVread3を印加する(図12参照)。ステップ592では、ビットラインをセンスする。ステップ594では、ステップ580にて補償を使うと判定されたビットラインに対して、ステップ588にて格納された結果をセンシングステップ592の結果で上書きする。特定のビットラインに対して補償が不必要と判定された場合、ステップ592からの結果は格納しない。ステップ596では、プロセッサ162が、下位ページに対してデータが「1」であるか「0」であるかを判定する。メモリセルがVrbに応答してオンした場合は、下位ページデータは「1」であり、そうでない場合は下位ページデータは「0」である。ステップ598では、ユーザとの通信のために下位ページデータを適切なラッチに格納する。
ステップ582にて読み出し対象のページが上位ページであると判定された場合、ステップ600にて上位ページの訂正処理を実行する。図25は、上位ページ訂正処理を説明するフローチャートである。図25のステップ610では、読み出し処理の一部として、読み出し対象のページに対応するワードラインに読み出し参照電圧Vrcを印加し、ドレイン側隣接ワードラインWLn+1にVread4を印加する。ステップ612では、ビットラインをセンスする。ステップ614では、センシングステップの結果を適切なラッチに格納する。ステップ616では、読み出し処理の一部として、読み出し対象のページに対応するワードラインにVrcを印加し、ドレイン側隣接ワードラインWLn+1にVread3を印加する。ステップ618では、ビットラインをセンスする。ステップ620では、補償を必要とするビットライン(ステップ580参照)に対して、ステップ614で格納された結果をセンシングステップ618の結果で上書きする。
ステップ622では、読み出し処理の間、そのワードラインにVrbを印加し、ドレイン側隣接ワードラインWLn+1にVread4を印加する。ステップ624では、ビットラインをセンスする。ステップ626では、センシングステップ624の結果を格納する。ステップ628では、読み出し処理の間、読み出し対象のページに対応するワードラインにVrbを印加し、ドレイン側隣接ワードラインWLn+1にVread3を印加する。ステップ630では、ビットラインをセンスする。ステップ632では、補償を必要とするビットライン(ステップ580参照)についてはステップ626で格納された結果をステップ630の結果で上書きする。
ステップ634では、読み出し処理の一部として、読み出し対象のページに対応するワードラインにVraを印加し、ドレイン側隣接ワードラインWLn+1にVread4を印加する。ステップ636では、ビットラインをセンスする。ステップ638では、センシングステップ636の結果を適切なラッチに格納する。ステップ640では、読み出し処理の一部として、読み出し対象のページに対応するワードラインにVraを印加し、ドレイン側隣接ワードラインWLn+1にVread3を印加する。ステップ642では、ビットラインをセンスする。ステップ644では、補償を必要とするビットライン(ステップ580参照)についてはステップ638で格納された結果をステップ642の結果で上書きする。ステップ646では、プロセッサ162が、従来技術で知られている前述した他の方法と同様の方法でデータ値を決定する。ステップ648では、ユーザへの通知のためにプロセッサ162が決定したデータ値を適切なデータラッチに格納する。他の実施形態では、(Vrc、Vrb、Vra)を使った読み出しの順序を変更してもよい。
図20に関する上記の説明において、1ページデータの読み出しに関する例を説明した。データ読み出し要求は、必ずではないが、複数のページデータの読み出しを要求する場合もある。一実施形態では、複数ページデータの読み出し処理の高速化を図るために、ユーザが前のページデータの転送を受けている間にステートマシンが次のページのセンシングを行うなど、読み出し処理はパイプライン処理されることもある。そのような実装形態においては、パイプラインの読み出し処理によってフラグのフェッチ処理が中断されることがあり得る。そのような実装形態を回避するために、一実施形態では、(フラグを読み出してそれをステートマシンへ送る処理に替えて、)あるページを読み出す際、そのページに対するフラグを読み出し、そのフラグをチェックするためにワイヤードOR検知処理を用いる。例えば、図20のステップ500(隣接ワードラインの読み出し)の間、その処理はまず参照電圧としてVrcを使ってデータを読み出す。このとき、各状態がデータ「1」を記憶していることをワイヤードORラインが示している場合、この場合は上位ページは書き込みが行われておらず、従って、補償は不必要であり、システムはフローティングゲート間カップリングに対する補償なしにデータを読み出す(ステップ504)。フラグが各データ状態のデータを含む1バイトコードである場合、フラグが立てられていたならば少なくともそのフラグメモリセルは状態Cのデータを有するはずである。ワイヤードORラインが状態Cのデータを有するメモリセルがないことを示す場合には、ステートマシンは、フラグが立てられていないと判断でき、その場合は、隣接ワードラインに対応する上位ページには書き込みが行われておらず、フローティングゲートカップリングに対する補償は不必要となる。パイプライン読み出しの実行に関するより詳細な情報は、米国特許出願第11/099,133、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者、Jian Chen、2005年4月5日出願、に開示されており、その文献の全体は参照により本明細書に組み込まれる。
目的がWLn上のデータを読み出すことである場合、読み誤ってしまうビットは、大抵は区分(distribution)の後部におけるビットであるので、ECCによるWLn+1の正確な読み出しは必要なく、また、それらが他のデータ状態に属すると読み誤ってしまうことは、WLn上の対象セルの読み出しに対して要求される補償の量を決定する際に大きな問題を引き起こすものではない。例えば、状態Bへ書き込まれているが僅かに強く書き込まれすぎているWLn+1上のセルは、WLn+2への書き込みによって静電容量カップリングの影響を受けるが、そのようなセルは、WLnの読み出し処理の一部としてカップリング補償(図16のステップ370)なしにWLn+1を読み出す際に状態Cにあるものと読み誤ってしまうかもしれない。この読み誤りは、次の理由により問題を生じない。(1)WLn+1上のデータを読み取ることがそのときの目的ではないこと。(2)状態CにあるとしたWLn+1上のセルのみかけの状態に基づいてWLn上の対応するセルの読み出しに適用する補償は、WLn+1上のセルが状態Bであると正確に読み出した場合にそのことに基づいて行う補償よりも、実際にはより効果的であること。これは、WLn+1のセルが最初により強く書き込まれること、或いは、WLn+1のセルが続いて発生するWLn+2のセルから受けるカップリングの影響など、WLn+1上のセルを状態Cであると読み誤ることを誘発する全ての要因は、WLn+1のセルによる、WLnのセルに影響を及ぼすカップリング効果をより強めるように作用するからである。WLnのセルに影響を与える、この強められたカップリングに際しては、WLn+1のセルが状態Bにあるとするよりも状態Cにあるとして得られる補償を行う方が実際的にはよりよい結果をもたらす。
場合によっては、隣接ワードラインWLn+1のメモリセルのみかけの状態の読み誤りは、選択されたワードラインに対する読み出し動作に負の影響を及ぼすかもしれない。従って、一実施形態は、隣接ワードラインの読み出しに対して、マージンを付加した読み出し参照電圧を提供する。マージンを付加した値は、隣接ワードラインをセンスする際により正確な結果をもたらし、及び/又は、その情報に基づいて選択ワードラインを読み出すときの結果を改善する。上述したように、WLn+1を読み出すときの目的は、WLn+1のメモリセルに記憶された正確なデータを決定することではなく、WLnを読み出すときに現れるWLn+1のメモリセルのみかけの状態を決定することである。WLn+1への書き込みのときからのWLn+1のセルの閾値電圧の変化は、WLnのデータを読み出すときに検出されることが有益である。なぜならば、そのような変化は、WLnに対する直接の読み出し動作におけるWLnのセルのみかけの閾値電圧に影響を与えるからである。WLnを読み出す際に適切な補償を与えるためにWLn+1の読み出しに対してこのコンセプトにおいて用いられる読み出し誤りは、WLnの読み出しの際に現れるWLn+1のセルのみかけの状態の読み出し誤りであることに特に留意されたい。このことは、セルに元々書き込まれたデータ(それはWLnの読み出しにおける最終的な目的ではあるがWLn+1の読み出しにおける最終的な目的ではない)の読み出し誤りとは異なる。WLnに対する読み出しを行う際のWLn+1のセルのみかけの状態と、元々書き込まれていた実際の状態は明確に区別することが重要である。
選択されたワードラインWLnの読み出しの一部として実行するドレイン側隣接ワードラインWLn+1に対する読み出し処理を検討する。ワードラインWLn+1が書き込まれていた場合、WLn+1を検証するに際してワードラインWLn+2(WLn+1のドレイン側隣接ワードライン)に読み出しパス電圧Vreadpを印加する。Vreadpは低い読み出しパス電圧である。前述したように、いくつかの実施形態ではVreadpはVread4に等しくてよい。Vreadpの低い値は、隣接セルの状態に基づいて読み出しパス電圧をVreadpからVread3、Vread2、又はVread1のいずれかに増加することによって、後の読み出し動作における補償を可能にする。
書き込み検証において、ドレイン側ワードラインは完全には書き込まれないことが保証されるので、Vreadpの低い値はドレイン側に対してパス電圧として用いることができる。フルシーケンス(図8)、又は、典型的な上位/下位ページ書き込み(図9)の場合において、WLn+2は消去され得る。図10A〜10Cの書き込み技術において、ドレイン側隣接ワードラインはせいぜい部分的に書き込まれる。従って、WLn+1のセルの検証において、低い読み出しパス電圧は、WLn+2のセルがオンすることを保証するのに十分である。
WLnの読み出しのためのWLn+1に対する補償なし読み出し動作の実行後において、WLn+2に対して大きな値の読み出しパス電圧を用いることがある。WLn+1への書き込みから後は、WLn+2上のメモリセルの状態は、そのセルへの書き込みの結果、変化し得る。それらのセルは、そのときにいずれの書き込み状態も取り得るのであり、書き込み中では確かであった保証はもはや適用可能ではない。従って、状態に関わらずに全てのメモリセルを確実にオンさせるために大きな読み出しパス電圧を印加する。典型的には、WLn+1(Vcgrが印加される)を除く全てのワードラインは、WLnに対する補償なし読み出しにおいてVreadが印加される。全てのセルを確実に導通させるために、Vreadにはその最大値を設定する。例えば、大抵の場合、Vread1に等しいVreadが用いられる。
WLn+1に対する検証と読み出しの間でWLn+2に印加する読み出しパス電圧の変化は、WLn+1のメモリセルのみかけの閾値電圧の負方向へのシフトを引き起こす可能性がある。WLn+2に対するワードライン電圧の一部は、書き込み検証と読み出しにおいてWLn+1のメモリセルのフローティングゲートと結合し得る。検証と読み出しの間でWLn+2に対するワードライン電圧の正値の増加が生じるので、WLn+1のメモリセルの閾値電圧が低下するように見えることがある。
このタイプの閾値電圧のみかけの変化を図26に示す。図26は、例えばメモリアレイの特定のワードラインに接続された一組のメモリセルについての閾値電圧の区分を示している。この一組のメモリセルは、状態E、状態A、状態B,又は状態Cのいずれかとなるように書き込みを受けている。区分701は、状態Eにあるメモリセルの閾値電圧の区分である。区分702は、状態Aにあるメモリセルの閾値電圧の区分である。区分706は、状態Bにあるメモリセルの閾値電圧の区分である。区分710は、状態Cにあるメモリセルの閾値電圧の区分である。区分701、702、706、及び710は、書き込み完了時における実際の閾値電圧区分を示しており、その閾値電圧区分は、書き込み動作におけるメモリセルの検証に際してセンスアンプによって検知されるであろうものである。
図26において、第2の区分の組を破線にて示す。それらの閾値電圧の区分は、書き込みと検証に続いて実行される読み出し動作においてセンスアンプによって検知され得るメモリセルの閾値電圧を表している。さらに詳細には、第2の区分の組は、選択されたワードラインWLnの読み出しのための情報を決定するときに隣接ワードラインWLn+1のメモリセルを補償なしで読み出す際のWLn+1のメモリセルのみかけの閾値電圧を表している。区分700は、状態Aにあるメモリセルのみかけの閾値電圧の区分である。区分704は、状態Bにあるメモリセルのみかけの閾値電圧の区分である。区分708は、状態Cにあるメモリセルのみかけの閾値電圧の区分である。第2の区分は、消去状態Eについては図示していないが、消去状態Eも同様にみかけの閾値電圧の変化を生じる。
第2の組のみかけの閾値区分は、第1の組の実際の閾値電圧区分と比較すると低い方へシフトする。隣接ワードラインWLn+1を読み出す際、それに隣接するワードラインWLn+2に印加する大きい読み出しパス電圧が、WLn+1のメモリセルのみかけの閾値電圧を低下させる。ワードラインWLn+2に印加される大きい正値のバイアスの一部が、WLn+1のメモリセルのフローティングゲートと容量的に結合する。WLn+2に対する大きな正値の電圧に基づくこの容量的結合は、WLn+1のメモリセルのみかけの閾値電圧を低下させる可能性がある。
本明細書が開示する一実施形態に従った読み出し参照電圧についての2組のレベル群を図26に示す。図26では、読み出し参照電圧の値は、選択ワードラインWLnの読み出しに用いられるレベルより低くなるようにマージンが付加される。書き込み状態Aに対応する読み出し参照電圧Vraの第1の値Vra1は、選択ワードラインWLnを読み出す際に用いる。選択ワードラインを読み出すのに用いられる情報を決定するために隣接ワードラインを読み出すとき、読み出し参照電圧Vraの第2の値Vra2を用いる。状態Bに対応する読み出し参照電圧Vrbの第1の値Vrb1は、選択ワードラインWLnを読み出す際に用いる。隣接ワードラインWLn+1を読み出すとき、読み出し参照電圧Vrbの第2の値Vrb2を用いる。書き込み状態Cに対応する読み出し参照電圧Vrcの第1の値Vrc1は、選択ワードラインWLnを読み出す際に用いる。選択ワードラインの読み出し処理の一部として、隣接ワードラインWLn+1を読み出すときに、第2の値Vrc2を用いる。
マージンを付加した読み出し参照電圧を使った隣接ワードラインのための読み出し動作の原理を図27に示す。図27は、メモリセルの1ブロックの選択ワードラインWLnを読み出すためのステップを示すフローチャートである。ステップ660では、データ読み出し要求を受信する。要求されたデータに対応するアドレスの範囲は、ワードラインWLnに記憶されたデータを含む。ステップ662では、WLn+1のメモリセルからの情報を、読み出し参照電圧に対する第1の値の組を使って検出する。例えば、一実施形態では、Vra2、Vrb2、及びVrc2の読み出し参照電圧レベルが用いられる。ステップ664では、そのブロックの各非選択ワードラインに第1パス電圧を印加する。ステップ666では、読み出し対象の選択ワードラインWLnに隣接するワードラインWLn+1に第1のレベルで第2パス電圧を印加する。
ステップ668にて、読み出し参照電圧に対する第2組のレベルを用いてWLnに読み出し動作を実行する。例えば、状態A、B、及びCのそれぞれに対応するVra1、Vrb1、及びVrc1を、選択ワードラインとビットラインに印加し、夫々の電圧印加においてセンスする。以下でさらに説明するが、WLn+1に用いる第1のレベルの組は、選択ワードラインWLnに対して用いたレベルよりも上となるように、或いは下となるようにマージンを付加され得る。
一実施形態では、ステップ664、666、及び668を反復繰り返すことによって、4つのサブ読み出しを実行する。繰り返し毎に、ステップ666にて異なる値の第2パス電圧をWLn+1に印加し、ワードラインWLn+1がワードラインWLnに与えるフローティングゲートカップリング効果に基づいた補償を提供するためにビットラインの導通をセンスする。第1の値は、WLn+1の状態Eにあるメモリセルに対応する。第2の値は、WLn+1の状態Aにあるメモリセルに対応する。第3の値は、WLn+1の状態Bにあるメモリセルに対応する。第4の値は、WLn+1の状態Cにあるメモリセルに対応する。ステップ670では、WLnのデータを格納する。WLn+1の状態Eにある隣接メモリセルに対応するビットラインに対して、第2パス電圧を第1の値で印加しながらステップ668にてセンスした結果を格納する。WLn+1の状態Aにある隣接メモリセルに対応するビットラインに対して、第2パス電圧を第2の値で印加しながらステップ668にてセンスした結果を格納する。WLn+1の状態Bにある隣接メモリセルに対応するビットラインに対して、第2パス電圧を第3の値で印加しながらステップ668にてセンスした結果を格納する。WLn+1の状態Cにある隣接メモリセルに対応するビットラインに対して、第2パス電圧を第4の値で印加しながらステップ668にてセンスした結果を格納する。
図27は、WLnに対する読み出し参照電圧レベルの1つの組の使用と、WLn+1に対する異なる組の使用を説明する全体図を示す。図28は、一実施形態における、選択ワードラインWLnに対する読み出し処理の一部としての隣接ワードラインの特定の読み出し処理を示すフローチャートである。図28の方法は、一実施形態では、図16のステップ370、図18のステップ400、及び、図19のステップ450に対して実行してよい。
ステップ750にて、状態Aの読み出し参照電圧についてマージン付加した値Vra2をWLn+1に印加する。Vra2をWLn+1に印加している間、選択ブロックの残りの各ワードラインには読み出しパス電圧Vreadを印加する。読み出し動作において、WLn+1のセルのセンシングを可能にするため、そのパス電圧が印加されたいずれの書き込み済みセルも確実にオンさせるように、大きな値のVread、典型的にはVread1を用いる。Vread1の値は、WLn+1の書き込みの検証のときに使った読み出しパス電圧の値よりも大きい。前述したように、Vreadpの低めの読み出しパス電圧(たとえばVread4)は、検証において用いられた。読み出しパス電圧の増加に関係したカップリングの影響を補償するために、Vra2の電圧レベルが選ばれる。
ステップ752において、ビットラインをセンスし、制御ゲートへのVra2の印加の下でアドレス指定したメモリセルが導通するか否かを判定する。導通したビットラインは、そのビットラインのアドレス指定されたメモリセルがオンしたことを示しており、従って、そのメモリセルはVra2より低い閾値電圧(例えば状態E)を有することを示している。ステップ754では、ビットラインをセンスした結果を、そのビットラインに対応する適切なラッチに格納する。
ステップ756では、状態Bの読み出し参照電圧についてのマージン付加した値Vrb2をWLn+1に印加し、残りのワードラインのそれぞれにVreadを印加する。ステップ758では、説明したように、Vra2の読み出し参照電圧レベルの印加に対してビットラインをセンスする。ステップ760では、その結果をそのビットラインに対応した適切なラッチに格納する。ステップ762では、状態Cの読み出し参照電圧についてのマージン付加した値Vrc2をWLn+1に印加し、残りのワードラインのそれぞれにVreadを印加する。ステップ764にてビットラインを再びセンスし、いずれのセルが導通しているか否か、即ち、印加しているレベルVrc2より低い閾値電圧を有するセルを判定する。ステップ766では、そのビットラインに対応する適切なラッチに結果を格納する。
ステップ768では、各ビットラインに対するデータ値を決定する。Vrb2及びVrc2で導通したがVra2では導通しなかったセルは、状態Aにある。Vrc2で導通したがVrb2及びVra2では導通しなかったセルは、状態Bにある。印加した読み出し参照電圧のいずれでも導通しなかったセルは、状態Cにある。一実施形態では、データ値はプロセッサ162が決定する。ステップ770では、プロセッサ162が、各ビットラインに対応する適切なラッチに決定したデータ値を格納する。図28では、WLn+1について実際のデータ値が決定される。他の実施形態では、マージン付加した読み出し参照電圧を使った隣接ワードラインの読み出しは、WLn+1の電荷量レベル又は他の状態の情報を決定することができる。それらの情報は、WLn+1に記憶されているデータを正確に反映している場合もあるし、そうでない場合もある。
図21で説明した隣接ワードラインの上位ページの読み出しを実行する際にも同様の技術を用いることができる。隣接ワードラインの上位ページの読み出しは、図10A〜10Cで説明した技術によって書き込まれている選択ワードラインの読み出し処理の一部として実行される。ステップ510にて状態Cの読み出し参照電圧を、ステップ522にて状態Bの読み出し参照電圧を、及び/又は、ステップ528にて状態Aの読み出し参照電圧を印加する場合、マージン付加した参照電圧を用いる。例えば、一実施形態では、Vra2、Vrb2、及び/又はVrc3の参照電圧を用いる。
選択ワードラインに隣接するワードラインに対する読み出し参照電圧は、異なる実施形態毎に様々にマージン付加し得る。例えば、隣接ワードライン(例えばWLn+1)に印加する読み出し参照電圧の値は、図26に示した選択ワードラインWLnに印加するレベルよりも低い値となるようにマージン付加し得る。他の実施形態では、隣接ワードラインに印加する値は、選択ワードラインに印加するレベルよりも高い値となるようにマージン付加し得る。例えば、消去区分にあるセルは、そのみかけの、或いは実際の閾値電圧が、時間とともに増加し得る。他のセル(例えば同じワードラインのセル)への書き込みは、消去状態のセルの電圧を、何らかの要因で、消去動作がそのセルに対して実行されたときに比べて高い電圧の区分へ導くようにシフトさせ得る。従って、隣接ワードラインを読み出す際の状態Aに対する読み出し参照電圧は、選択ワードラインの読み出しの際に用いる参照電圧と比較するときに、高い方へシフトさせ得る。
読み出し参照電圧の組(例えば、Vra、Vrb、及び、Vrc)の中の幾つか(いくつでもよい)の読み出し参照電圧は、WLn+1の読み出しに対してマージン付加し得る。例えば、一つの参照電圧(例えばVra)のみについてマージン付加した値を用いてよいし、2つの参照電圧(例えば、Vrb及びVrc)についてマージン付加した値を用いてもよい。幾つかの読み出し参照電圧を高いレベルへマージン付加し、他の参照電圧を低いレベルへマージン付加するなど、様々な制限の組合せを採用し得る。
隣接ワードラインに印加する読み出し参照電圧についてのマージン付加した値は、異なる値或いはパラメータに対してマージン付加し得る。例えば、一実施形態では、隣接ワードラインのためのマージン付加した読み出し参照電圧は、それに対応する選択ワードラインWLnに印加する読み出し参照電圧の値を調整することによって得られる。例えば、Vra2が、Vra1のレベルからオフセットされる、などである。他の実施形態では、隣接ワードラインのための読み出し参照電圧は、その参照電圧に隣接する状態の閾値電圧に対してマージン付加し得る。マージン付加した値については以下で詳細に説明する。
図26において、読み出し参照電圧のレベルの第2の組は、WLnに対して用いる第1のレベルの組から相対的にマージン付加されている。Vra2は、Vra1から特定の量だけオフセットしており、Vrb2は、Vrb1から特定の量だけオフセットしており、Vrc2は、Vrc1から特定の量だけオフセットしている。オフセット量は、各状態で同じであってよいし、異なっていてもよい。例えば、Vra1からVra2へのオフセット量が、Vrb1からVrb2へのオフセット量よりも大きい場合があってよい。
図29は、WLnの読み出しの際に用いるオリジナルの読み出し参照電圧に基づかない読み出し参照電圧へのマージン付加の方法の一実施形態を示している。保持力の損失や緩和(閾値電圧の高い方へのシフト)などの要因は、メモリセルからの状態読み出しに影響し得る。WLnのセルに記憶されたデータを読み出す際、それに用いる読み出し参照電圧のレベルは、通常、上記の要因がセルからの状態読み出しに影響しないように選ばれる。読み出し動作は、セルが書き込まれたときの状態を決定することであり、読み出し動作がそれらの保持力損失や緩和を検知することは望ましくない。WLnに対する適切な補償を得るためにWLn+1を読み出す際、しかしながら、それらの要因に基づく閾値電圧の変化を検出することが好都合である場合がある。例として、WLn+1のセルのみかけの状態又は閾値電圧が書き込み時からシフトした場合、このシフトを検知すること(或いはそのセルの現在のみかけの状態を検知すること)には利点がある。このシフトはWLnのセルのみかけの閾値電圧に影響する。WLnの実際のデータを求めることが目的であるので、WLn+1におけるそのシフトを考慮した補償を提供することは、WLnの読み出しにおいてより良い結果をもたらす。
メモリセルの書き込み状態の組に対する閾値電圧区分701、702、706、及び710を、シフトした区分700、704、及び708とともに、図29に再記する。状態Aの読み出し参照電圧Vra1、状態Bの読み出し参照電圧Vrb1、及び、状態Cの読み出し参照電圧Vrc1もまた示している。図29は、さらに、それぞれの状態の間の平均閾値レベルを示している。この平均閾値電圧は、後述するように種々の方法で定義することができる。Vmaは、状態E及びAに対応する平均閾値電圧である。Vmbは、状態AとBに対応する平均閾値電圧である。Vmcは、状態BとCに対応する平均閾値電圧である。
隣接ワードラインWLn+1をセンスするときに用いる読み出し参照電圧レベルが、状態Aに対してはVra2に、状態Bに対してはVrb2に、状態Cに対してはVrc2に、示されている。これらの読み出し参照電圧は、上述した平均閾値電圧レベルVma、Vmb、及び、Vmcに対して相対的にマージンが付加されている。これは、図26に示した隣接ワードラインに対する読み出し参照電圧の第2の組と対比される。その実施形態では、読み出し参照電圧レベルの第2の組は、読み出し参照電圧の第1の組に対して相対的にマージンが付加される。このことは、特定の状況において利点を提供する。それを以下に説明する。
選択ワードラインを読み出す際に用いる読み出し参照電圧レベルは、隣接するメモリセル状態電圧区分の間の中間点で与えられずともよい。図21において、例えば、VrbとVrcは、それぞれ、下位側の状態電圧区分に近いレベルで与えられる。Vrbは、状態Bよりも状態Aに近く、Vrcは、状態Cよりも状態Bに近い。そのような配置は、フラッシュメモリセルシステムにおいて、データ保持力のために用いられる。例えば、状態Bに書き込まれたメモリセルが、時間の経過とともにその負値の電荷量を失う場合、Vrb1を状態Aに近いレベルに配置することが有効である。セルの閾値電圧がVrb1を下回るほどにセルの電荷量が低下した場合、そのセルを状態Aにあると読み誤る可能性がある。従って、いくつかの実装形態では、そのような読み誤りを回避するために、読み出し参照電圧レベルを下位側の状態に近い位置に設定することが好ましい。
隣接ワードラインの読み出しのためのマージン付加した読み出し参照電圧レベルが、WLnで用いられたレベルに相関してマージン付加される場合、いくつかの場合には、異なるタイプの読み誤りが発生する虞がある。下位側の状態にあるセルを上位側の状態にあるセルであると読み誤ることがある。例えば、Vrb1が状態Aの区分の上位側の限界値に比較的近い位置に設定されたときに、Vrb1に対して相対的にシフトさせたVrb2の値を用いる場合、状態Aにあるセルを状態Bにあるものと読み誤る可能性がある。WLn+1への書き込みの後にWLn+1のセルに隣接するWLn+2のセルに状態Cが書き込まれた場合、負値の電荷量の結合(カップリング)によってWLn+1のセルの閾値電圧が増加したようにみえる可能性がある。さらに、WLnを読み出す際には検出されるのが好ましくない保持力などは、上述したように、WLn+1を読み出す際には検出されることが好ましい場合がある。
従って、図29の実施形態は、読み出し参照電圧の第2の組を、2つの隣接するメモリセル状態に対応する平均閾値電圧に対して相対的にマージン付加する。Vra2は、状態E及びAの平均閾値電圧に対して相対的にマージン付加され、Vrb2は、状態A及びBの平均閾値電圧に対して相対的にマージン付加され、Vrc2は、状態B及びCの平均閾値電圧に対して相対的にマージン付加される。
一実施形態では、平均閾値電圧は、2つの隣接する状態に対する夫々の閾値電圧区分の下限値の平均に基づいて決定される。その下限値は、書き込み検証において用いられる検証レベルに相当するとともに、上記平均を算出するにも用いられる。例えば、平均閾値電圧Vmbは、状態A及びBのそれぞれへの書き込み時において印加される検証レベルVva及びVvbの平均を用いて算出される。検証レベルの平均を算出した後、その値に、下位側の閾値電圧区分の区分幅の半値をオフセットとして加えて、平均閾値電圧レベル(即ちVmb)を決定する。他の実施形態では、平均閾値電圧は、2つの隣接する読み出し参照電圧に基づいて算出される。例えば、状態AとBの間の平均閾値電圧Vmbは、セルを読み出す際に印加する読み出し参照電圧VraとVrbの平均として算出される。この場合、参照電圧レベルは、特定の状態に対応する単一の閾値電圧レベルに対してではなく、平均閾値電圧レベルに対して相対的にマージン付加される。一実施形態では、読み出し参照電圧は、第1の区分(例えは状態A)の上限値と第2の区分(例えば状態B)の下限値の間の中間点に関してマージン付加される。
一実施形態では、読み出し参照電圧の第2の組は、書き込み検証動作と読み出し動作の両者間におけるVreadの変化分に基づいて決定される。特定の状態に対する読み出し参照電圧は、それに隣接する状態の平均閾値電圧からΔVreadに基づく補償マージンを差し引いた値に等しい値に設定される。
一実装形態では、補償マージンは、次のとおり決定される。数式2は、与えられたメモリセルのみかけの閾値電圧の変化分とVreadの変化分との間の関係を表す。
WLnの特定メモリセルの閾値電圧の変化分ΔVTnは、2つの要素、即ち、その特定セルに隣接するセルに印加する読み出しパス電圧における変化分ΔVread、及び、その隣接セルの閾値電圧における変化分ΔVTn+1、に基づく。より具体的には、その変化分は、ΔVTnに関連する静電結合の効果(その効果は、負値の電荷量の結合により閾値電圧を上昇させる)と、ΔVreadに関連する静電結合の効果(その効果は、正値の電荷量の結合により閾値電圧を低下させる)との間の差分に等しい。
Vreadの変化分に対応する適切なマージン値を得るために、WLn+1のメモリセルにおいてVTの電荷量に変化がない場合には、ΔVTn+1をゼロとすることができる。Vreadの既知の変化分を用いて、算出したΔVTnと等しい値にマージン値を設定することができ、これによって、ドレイン側隣接ワードラインを読み出す際のみかけの閾値電圧における変化分を直接に相殺することができる。
選択ワードラインWLnに対する読み出し動作を考える。その読み出し動作では、WLnを読み出すときに、補償を与えるためにドレイン側ワードラインWLn+1からの情報を用いる。書き込みに際してワードラインWLn+1を検証するとき、そのドレイン側隣接ワードラインWLn+2は、低い読み出しパス電圧Vreadp(即ち、Vread4)を受ける。Vreadpを約3.0Vと仮定する。今、WLnに対する動作の一部として、WLn+1を読み出すとき、WLn+2上の全てのメモリセルを確実に導通させるためにWLn+2に読み出しパス電圧Vread1を印加する。ΔVreadが2.5Vとなるように、Vread1を約5.5Vと仮定する。さらにr1、r2、及び、Crn(Crn+1)の各値をそれぞれ、0.02、0.03、及び、0.5と仮定する。数式2において、「n」、「n+1」にそれぞれ「n+1」、「n+2」を代入し、ΔVTn+2を「0」に等しくすると、数式3を得る。WLn+1を読み出す際のマージンの大きさは、数式3で決定することができる。
数式3は、Vreadにおける変化分に基づいて、書き込みの時から読み出しの時にかけてWLn+1上のセルに見込まれる閾値電圧におけるみかけの変化の大きさを与える。WLn+1を読み出す際に印加する読み出し参照電圧レベルがこのみかけの変化分から得られるので、より正確な読み出し動作を実現できる。上記仮定した値を数式3に代入すると、ΔVreadに基づくWLn+1におけるVTの変化分は、約−0.2Vとなる。即ち、−0.2Vの補償読み出しマージンが得られる。
前述したように、様々な方法で隣接ワードラインの読み出しに対する読み出し参照電圧にマージンを与えることができる。一実施形態では、読み出し参照電圧は、2つの隣接する状態への書き込み検証電圧の平均値に補償マージンを加えた値に等しい値に設定される。4状態(E、A、B、C)デバイスであり、検証レベルVva、Vvb、Vvcがそれぞれ、0.8V、1.6V、3.6Vのデバイスを仮定する。状態Aの参照電圧Vra2は、0V(マージンなし)に維持される。状態Bの参照電圧Vrb2は、((0.8+1.6)/2)−0.2=1.0Vに設定される。状態Cの参照電圧は、((1.6+3.6)/2)−0.2=2.4Vに設定される。これらの値は、一例であり、実装形態によって変化し得ることに留意されたい。
他の実施形態では、読み出し参照電圧は、2つの隣接する状態のノミナル読み出し参照電圧の平均値に補償マージンを加えた値に等しい値に設定される。さらに他の実施形態では、読み出し参照電圧は、2つの隣接する状態の平均閾値電圧の平均に補償マージンを加えた値に等しい値に設定される。一実施形態では、上記した平均値を算出することなく、補償マージンをノミナル読み出し参照電圧に直接に加える。
上記した実施形態では、状態Aの参照電圧レベルにはマージンを加えない。他の実施形態では、そのレベルにマージンを加える。状態Aの読み出し参照電圧にマージンを加えないことについて、様々な実装形態でいくつかの理由がある。状態参照電圧を引き下げるマージンが要求されたときに負の電圧を加えることはしばしば難しい。さらに、0Vに近い小さい正値の電圧を精密に加えることが難しいことが時折ある。加えて、状態Aにあるセルの閾値電圧は電荷量ゼロ(ニュートラル)の付近にあるので、そのセルでは保持力損失がほとんどない。従って、保持力損失の不利な影響なしに状態のノミナル読み出し参照電圧を用いることができる。最後に、状態Aへ書き込みするときに、書き込み電圧パルスに小さい増分値がしばしば用いられ、それは書き込みレベルを精密にする。
本発明の前記の詳細な説明は、図解及び説明のために提示された。網羅的となること、あるいは本発明を開示されている正確な形式に制限することは意図されていない。上記の提示を鑑みて多くの変型及び変形が可能である。説明した実施形態は、本発明の原理及びその実際的な応用例を最もよく説明し、それにより当業者が多様な実施形態で、及び意図された特定の用途に適するような多様な変型で本発明を最もうまく活用できるようにするために選ばれた。本発明の範囲が本明細書に添付される請求項により定められることが意図される。