(57)【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させる方法であって、
（ａ）ＮＡＮＤストリング内の特定の不揮発性記憶素子（２０８−２２２）を、その閾値電圧を、第１の検証レベル（ＶＶＡ−ＣＯＡＲＳＥ、ＶＶＢ−ＣＯＡＲＳＥ、ＶＶＣ−ＣＯＡＲＳＥ）を上回る第１のレベルまで上昇させるように粗プログラミング（Ｓ３）を実行するステップを備え、
前記粗プログラミングを実行するステップは、前記閾値電圧が前記第１の検証レベルを上回ることを検証するステップを含んでおり、
前記第１の検証レベルは前記特定の不揮発性記憶素子の目標データ状態（Ａ、Ｂ、Ｃ）に関連しており、
その後に、前記ＮＡＮＤストリング内の一方の隣接する不揮発性記憶素子に、その閾値電圧を検証レベル（ＶＶＡ−ＦＩＮＥ、ＶＶＢ−ＦＩＮＥ、ＶＶＣ−ＦＩＮＥ）を上回るように上昇させるファインプログラミング（Ｓ４）を実行するステップを備え、
（ｂ）その後に、前記特定の不揮発性記憶素子の前記目標データ状態を決定するため、および、前記特定の不揮発性記憶素子の前記目標データ状態を記憶されたデータとして記憶するために、前記特定の不揮発性記憶素子を読み出すステップ（Ｓ５）を備え、
その後に、前記ＮＡＮＤストリング内の他方の隣接する不揮発性記憶素子に、その閾値電圧を検証レベル（ＶＶＡ−ＣＯＡＲＳＥ、ＶＶＢ−ＣＯＡＲＳＥ、ＶＶＣ−ＣＯＡＲＳＥ）を上回るように上昇させる粗プログラミング（Ｓ６）を実行するステップを備え、
（ｃ）その後に、前記記憶されたデータにアクセスし、前記特定の不揮発性記憶素子の閾値電圧を、前記第１のレベルから、前記目標データ状態に関連する第２の検証レベル（ＶＶＡ−ＦＩＮＥ、ＶＶＢ−ＦＩＮＥ、ＶＶＣ−ＦＩＮＥ）を上回る第２のレベルまで上昇させるように、前記記憶されたデータに応じて、前記特定の不揮発性記憶素子のファインプログラミング（Ｓ７）を実行するステップを備える方法。
【請求項２】
前記他方の隣接する不揮発性記憶素子の前記粗プログラミングは、前記一方の隣接する不揮発性記憶素子への前記ファインプログラミングよりも、前記特定の不揮発性記憶素子とのより強い結合をもたらす、請求項１に記載の方法。
【請求項３】
第１のバイナリデータを供給するステップを備え、
ステップ（ａ）の前記粗プログラミング（Ｓ３）は、前記第１のバイナリデータに対応しており、
前記読み出すステップに応じて、前記記憶されたデータを第２のバイナリデータとして供給するステップを備え、
ステップ（ｃ）のファインプログラミング（Ｓ７）は、前記第２のバイナリデータに対応しており、前記第１のバイナリデータに対応していない、請求項１または２に記載の方法。
【請求項４】
ステップ（ａ）（Ｓ３）に先立って、データの第１のページを用いて前記特定の不揮発性記憶素子をプログラミングするステップ（Ｓ１）をさらに備え、
ステップ（ａ）（Ｓ３）の前記粗プログラミングを実行するステップは、データの第２のページを用いた第１のプログラミングパスであり、
ステップ（ｃ）（Ｓ７）の前記ファインプログラミングを実行するステップは、データの前記第２のページを用いた第２のプログラミングパスである、請求項１ないし３の何れか１項に記載の方法。
【請求項５】
前記読み出すステップは、対応する複数のデータ状態（Ａ、Ｂ、Ｃ）に関連する複数の制御ゲート読み出し電圧（ＶＣＧＲ−Ａ、ＶＣＧＲ−Ｂ、ＶＣＧＲ−Ｃ）を、前記特定の不揮発性記憶素子に順番に印加するステップを備える、請求項１ないし４の何れか１項に記載の方法。
【請求項６】
不揮発性記憶素子の集合（２００）と、
（ａ）ＮＡＮＤストリング内の特定の不揮発性記憶素子を、その閾値電圧を、第１の検証レベル（ＶＶＡ−ＣＯＡＲＳＥ、ＶＶＢ−ＣＯＡＲＳＥ、ＶＶＣ−ＣＯＡＲＳＥ）を上回る第１のレベルまで上昇させるように粗プログラミング（Ｓ３）を実行する手段（１３１０、１３５０）を備え、
前記粗プログラミングを実行するステップは、前記閾値電圧が前記第１の検証レベルを上回ることを検証するステップを含んでおり、
前記第１の検証レベルは前記特定の不揮発性記憶素子の目標データ状態（Ａ、Ｂ、Ｃ）に関連しており、
前記ＮＡＮＤストリング内の一方の隣接する不揮発性記憶素子に、その閾値電圧を検証レベル（ＶＶＡ−ＦＩＮＥ、ＶＶＢ−ＦＩＮＥ、ＶＶＣ−ＦＩＮＥ）を上回るように上昇させるファインプログラミング（Ｓ４）をその後に実行する手段を備え、
（ｂ）前記特定の不揮発性記憶素子の前記目標データ状態を決定するため、および、前記特定の不揮発性記憶素子の前記目標データ状態を記憶されたデータとして記憶するために、前記特定の不揮発性記憶素子をその後に読み出す（Ｓ５）手段（１３１０、１３５０）を備え、
前記ＮＡＮＤストリング内の他方の隣接する不揮発性記憶素子に、その閾値電圧を検証レベル（ＶＶＡ−ＣＯＡＲＳＥ、ＶＶＢ−ＣＯＡＲＳＥ、ＶＶＣ−ＣＯＡＲＳＥ）を上回るように上昇させる粗プログラミング（Ｓ６）をその後に実行する手段を備え、
（ｃ）前記記憶されたデータにアクセスし、前記特定の不揮発性記憶素子の閾値電圧を、前記第１のレベルから、前記目標データ状態に関連する第２の検証レベル（ＶＶＡ−ＦＩＮＥ、ＶＶＢ−ＦＩＮＥ、ＶＶＣ−ＦＩＮＥ）を上回る第２のレベルまで上昇させるように、前記記憶されたデータに応じて、前記特定の不揮発性記憶素子のファインプログラミング（Ｓ７）をその後に実行する手段（１３１０、１３５０）を備える不揮発性記憶装置。
【請求項７】
前記他方の隣接する不揮発性記憶素子の前記粗プログラミングは、前記一方の隣接する不揮発性記憶素子への前記ファインプログラミングよりも、前記特定の不揮発性記憶素子とのより強い結合をもたらす、請求項６に記載の不揮発性記憶装置。
【請求項８】
第１のバイナリデータを供給する手段をさらに備え、
ここで、前記特定の不揮発性記憶素子の前記粗プログラミングは、前記第１のバイナリデータに対応しており、
前記読み出す手段に応じて、前記記憶されたデータを第２のバイナリデータとして供給する手段をさらに備え、
ここで、前記特定の不揮発性記憶素子の前記ファインプログラミングは、前記第１のバイナリデータに対応しないが、前記第２のバイナリデータに対応している、請求項６または７に記載の不揮発性記憶装置。
【請求項９】
前記粗プログラミングを実行する手段（ａ）に先立って、その閾値電圧を前記第１のレベルへ上昇させるために、前記特定の不揮発性記憶素子のプログラミングを実行する手段をさらに備え、
前記粗プログラミングを実行する手段（ａ）の前記プログラミングするステップは、データの第２のページを用いた第１のプログラミングパスであり、
前記ファインプログラミングを実行する手段（ｃ）の前記プログラミングするステップは、データの前記第２のページを用いた第２のプログラミングパスである、請求項６ないし８の何れか１項に記載の不揮発性記憶装置。
【請求項１０】
前記読み出す手段は、対応する複数のデータ状態（Ａ、Ｂ、Ｃ）に関連する複数の制御ゲート読み出し電圧（ＶＣＧＲ−Ａ、ＶＣＧＲ−Ｂ、ＶＣＧＲ−Ｃ）を、前記特定の不揮発性記憶素子に順番に印加することによって、前記特定の不揮発性記憶素子を読み出す、請求項６ないし９の何れか１項に記載の不揮発性記憶装置。
【請求項１１】
前記不揮発性記憶素子は、マルチビットデータを記憶する、請求項６ないし１０の何れか１項に記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２００８年９月１１日に出願された米国仮特許出願番号６１／０９６，２２１に基づく優先権を主張するものであり、その内容は、参照することにより本明細書に組み込まれる（整理番号：ＳＡＮＤ−０１３７８ＵＳ１）。
【０００２】
本発明は、不揮発性メモリのための技術に関する。
【背景技術】
【０００３】
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。ＥＥＰＲＯＭとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。
【０００４】
フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。トランジスタの閾値電圧は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００５】
ＥＥＰＲＯＭ、或いは、ＮＡＮＤフラッシュメモリデバイスのようなフラッシュメモリデバイスをプログラミングする場合、通常、制御ゲートにプログラム電圧が印加されるとともにビットラインが接地される。チャネルからフローティングゲートへ電子が注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリ素子の閾値電圧が上昇し、メモリ素子がプログラムされた状態となる。そのようなプログラミングに関するさらなる情報は、「Source Side Self Boosting Technique For Non-Volatile Memory」と題した米国特許第６，８５９，３９７号、及び、「Detecting Over Programmed Memory」と題した米国特許第６，９１７，５４２号に開示されている。両者の文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【０００６】
ある種のＥＥＰＲＯＭとフラッシュメモリデバイスは、２つの電荷量範囲を蓄えるために使われるフローティングゲートを備えており、それゆえ、その記憶素子は、２つの状態（消去状態とプログラムされた状態）の間でプログラム／消去が行われることができる。そのようなフラッシュメモリデバイスは、バイナリフラッシュメモリデバイスと呼ばれることがある。
【０００７】
マルチステートフラッシュメモリデバイスは、禁止範囲によって分離された、複数の区別された許可された／有効なプログラム済閾値電圧範囲を特定することによって実現される。夫々の区別された閾値電圧範囲は、メモリデバイス内で符号化される一組のデータビットに対する予め決められた値に対応する。
【０００８】
隣接するフローティングゲートに保持された電荷に基づく電界の結合によって、フローティングゲートに蓄積された見かけ上の電荷量の変化が発生しうる。目標のフローティングゲートに隣接するフローティングゲートの一例としては、同一のワードラインに接続されるとともに、隣接するビットラインに接続されるフローティングゲートが挙げられる。
【０００９】
マルチステート装置では、バイナリ装置に比して、許可閾値範囲および禁止範囲が狭くなる。よって、フローティングゲート間の結合は、マルチステート装置にとって大きな懸案事項である。従って、フローティングゲート間の結合によって、許可閾値電圧範囲から禁止範囲へメモリセルがシフトすることがある。
【００１０】
フローティングゲート間の結合は、異なった時間にプログラムされた、隣接するメモリセルの集合間で発生しうる。例えば、第１のメモリセルがプログラムされることで、データのある集合に対応する電荷レベルがフローティングゲートに加えられることがある。続いて、１以上の隣接するメモリセルがプログラムされることで、データの第２の集合に対応する電荷レベルがフローティングゲートに加えられることがある。以上の隣接するメモリセルがプログラムされた後において、第１のメモリセルから読み出されたチャージレベルは、プログラムされたレベルと異なるように見える。これは、第１のメモリセルに結合した隣接メモリセル上の電荷による影響のためである。隣接メモリセルからの結合は、読み出される見かけ上の電荷レベルを、記憶されているデータを誤って読み出すのに充分な値だけ、変化させてしまうことがある。
【００１１】
フローティングゲート間の結合は、同時にプログラムされた隣接するメモリセルの集合間においても、発生しうる。例えば、２つの隣接するマルチステートメモリセルは、異なる目標レベルにプログラムされうる。第１のメモリセルは下位の閾値電圧に対応する状態にプログラムされ、第２のメモリセルは上位の閾値電圧に対応する状態にプログラムされうる。下位の閾値電圧に対応する状態にプログラムされるメモリセルは、第２のメモリセルが上位の閾値電圧に対応する状態に到達する前に、その状態に到達し、それ以上のプログラムから締め出されると考えられる。第２のメモリセルが上位側の閾値電圧に対応する状態に到達した後に、第２のメモリセルは第１のメモリセルに結合する。そして、第１のメモリセルの見かけ上の閾値電圧が、プログラムされた閾値電圧よりも高くされてしまう。
【００１２】
メモリセルの大きさが縮小し続けていくにつれて、短チャネル効果や、酸化膜厚／結合率のより大きな変動や、チャネルドーパントのさらなる変動によって、隣接する状態間の有効な分離が減少する。これに起因して、閾値電圧の自然なプログラミング分布および消去分布が増加することが期待されている。この効果は、２つの状態のみを使用するメモリ（バイナリメモリ）よりも、マルチステートメモリにとってより重要である。さらに、ワードライン間のスペースおよびビットライン間のスペースの減少によっても、隣接するフローティングゲート間の結合が増進する。
【００１３】
従って、隣接するフローティングゲート間の結合の影響を減少させる必要がある。さらに、市場競争の理由から、結合の影響を減少させる手法はコスト効果が高くなければならず、ハードウェアを効率的に利用しなければならない。
【発明の概要】
【課題を解決するための手段】
【００１４】
効率よく、隣接するフローティングゲート間の結合の影響を低減させるためのプログラミング技術を提供する。
【００１５】
一実施形態において、不揮発性記憶装置を動作させる方法は、（ａ）特定の不揮発性記憶素子を、その閾値電圧を、第１の検証レベルを上回る第１のレベルまで上昇させるようにプログラミングするステップと、（ｂ）前記プログラミングするステップの後に、前記閾値電圧が前記第１の検証レベルを上回っているか否かを決定するために前記特定の不揮発性記憶素子を読み出すステップと、（ｃ）前記特定の不揮発性記憶素子の閾値電圧を、前記第１のレベルから、第２の検証レベルを上回る第２のレベルまで上昇させるように、前記読み出すステップに応じて、前記特定の不揮発性記憶素子をさらにプログラミングするステップと、を備える。
【００１６】
他の実施形態では、不揮発性記憶装置を動作させる方法は、ワードラインの集合に関連する不揮発性記憶素子の集合に、マルチパスプログラミング処理を実行するステップを備える。マルチパスプログラミング処理は、各々のワードラインに対して少なくとも２つの関連するプログラミングパスを備えている。そしてマルチパスプログラミング処理は、特定のワードライン（ＷＬｎ）があるプログラミングパスの対象となり、その後に少なくとも第１の追加のワードラインが少なくとも１つのプログラミングパスの対象となり、その後にＷＬｎがもう一つのプログラミングパスの対象になるような順番で、実行される。当該方法は、ＷＬｎがあるプログラミングパスの対象となった後であって、第１の追加のＷＬがあるプログラミングパスの対象となる前に、ＷＬｎに対する読み出し処理を実行するステップと、ＷＬｎの関連した追加のパスを実行するために、読み出し処理による結果を使用するステップと、をさらに備える。
【００１７】
他の実施形態では、不揮発性記憶装置を動作させる方法は、ワードラインの集合に関連する不揮発性記憶素子の集合に、マルチパスプログラミング処理を実行するステップを備える。マルチパスプログラミング処理は、各々のワードラインに対して少なくとも２つの関連するプログラミングパスを備えている。そしてマルチパスプログラミング処理は、特定のワードライン（ＷＬｎ）があるプログラミングパスの対象となり、その後に少なくとも第１の追加のワードラインが、ＷＬｎに関連する複数の不揮発性記憶素子の一部分をプログラムする、少なくとも１つのプログラミングパスの対象となるような順番で、実行される。当該方法は、ＷＬｎがあるプログラミングの対象となった後に、読み出し処理および関連したエラー訂正処理をＷＬｎに対して実行するステップをさらに備える。当該方法は、ＷＬｎの別のプログラミングパスを実行するために、読み出し処理による結果と関連したエラー訂正処理とを使用するステップと、その結果、ＷＬｎに関連した不揮発性記憶素子のプログラミングを完了するステップと、をさらに備える。
【００１８】
他の実施形態では、不揮発性記憶装置は、不揮発性記憶素子の集合と、該不揮発性記憶素子の集合と通信する１つまたは複数の回路を備える。前記１つまたは複数の回路は、（ａ）特定の不揮発性記憶素子を、その閾値電圧を、第１の検証レベルを上回る第１のレベルまで上昇させるようにプログラミングし、（ｂ）前記プログラミングするステップの後に、前記閾値電圧が前記第１の検証レベルを上回っているか否かを決定するために前記特定の不揮発性記憶素子を読み出し、（ｃ）前記特定の不揮発性記憶素子の閾値電圧を、前記第１のレベルから、第２の検証レベルを上回る第２のレベルまで上昇させるように、前記読み出すステップに応じて、前記特定の不揮発性記憶素子をさらにプログラミングする。
【００１９】
ここで提供される方法を実行するための、関連する方法、システム、および、コンピュータまたは処理装置が読み込み可能な記憶媒体が提供されてもよい。
【図面の簡単な説明】
【００２０】
【図１ａ】ＮＡＮＤストリングの平面図である。
【図１ｂ】ＮＡＮＤストリングの等価回路図である。
【図１ｃ】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図２】ＮＡＮＤストリングの断面図である。
【図３】２パスプログラミング技術における、記憶素子の集合および関連したワードラインに関するプログラミング順序を示す図である。
【図４ａ】プログラミングの間に記憶素子の制御ゲートに印加される、パルス列の第１の例を示す図である。
【図４ｂ】プログラミングの間に記憶素子の制御ゲートに印加される、パルス列の第２の例を示す図である。
【図４ｃ】読み出し処理の間に記憶素子の制御ゲートに印加される、電圧波形の例を示す図である。
【図５ａ】プログラミングパスの間にデータが読み出される、図３の２パスプログラミング技術の詳細を示す図である。
【図５ｂ】プログラミングパスの間にデータが読み出されない、２パスプログラミング技術の詳細を示す図である。
【図６ａ】図３の２パスプログラミング技術の第１の粗なパスの後における、閾値電圧の変化を示す図である。
【図６ｂ】図３の２パスプログラミング技術の第２のファインなパスの後における、閾値電圧の変化を示す図である。
【図７ａ】データがプログラミングパスの間に読み出され、続いてデータにアクセスされてエラー訂正がされる、マルチパスプログラミングプロセスの概要を示す図である。
【図７ｂ】図３の２パスプログラミング技術に対応するマルチパスプログラミングプロセスを示す図である。
【図８】３パスプログラミング技術における、記憶素子の集合および関連したワードラインに関するプログラミング順序を示す図である。
【図９】プログラミングパスの間にデータが読み出される、図８の３パスプログラミング技術の詳細を示す図である。
【図１０ａ】図８に関連した３パスプログラミング技術における、閾値電圧分布を示す図である。
【図１０ｂ】図８に関連した３パスプログラミング技術における、閾値電圧分布を示す図である。
【図１０ｃ】図８に関連した３パスプログラミング技術における、閾値電圧分布を示す図である。
【図１１】図８の３パスプログラミング技術に対応するマルチパスプログラミングプロセスを示す図である。
【図１２ａ】追加のマルチパスプログラミングプロセスを示す図である。
【図１２ｂ】図１２ａに関連したプログラミング技術における、閾値電圧分布を示す図である。
【図１２ｃ】図１２ａに関連したプログラミング技術における、閾値電圧分布を示す図である。
【図１２ｄ】図１２ａに関連したプログラミング技術における、閾値電圧分布を示す図である。
【図１２ｅ】図１２ａに関連したプログラミング技術における、閾値電圧分布を示す図である。
【図１３】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図１４】シングル行／列デコーダと読み出し／書き込み回路を使った不揮発性記憶システムのブロック図である。
【図１５】読み出し／書き込みスタックの一実施形態のブロック図である。
【図１６】全ビットラインメモリアーキテクチャまたは奇数偶数メモリアーキテクチャのためのブロックへのメモリアレイの編成の一例を示す図である。
【発明を実施するための形態】
【００２１】
効率よく隣接フローティングゲート間の結合の影響を低減する、プログラミング技術を提供する。
【００２２】
本発明を実装するのに好適なフラッシュメモリシステムの一例は、ＮＡＮＤ構造を利用するものであり、２つの選択ゲートの間に挟まれた、複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１ａは、１つのＮＡＮＤストリングを示す平面図である。図１ｂは、その等価回路である。図１ａと図１ｂに示すＮＡＮＤストリングは、第１（ドレイン側）選択ゲート１２０と第２（ソース側）選択ゲート１２２の間に挟まれている、直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ビットラインコンタクト１２６を介して、ＮＡＮＤストリングをビットラインに接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８へ接続する。選択ゲート１２０は、選択ラインＳＧＤに適切な電圧を加えることによって制御される。選択ゲート１２２は、選択ラインＳＧＳに適切な電圧を加えることによって制御される。トランジスタ１００、１０２、１０４、及び１０６の夫々は、制御ゲートとフローティングゲートを有している。例えば、トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを備えている。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを備えている。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを備えている。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを備えている。制御ゲート１００ＣＧはワードラインＷＬ３に接続され、制御ゲート１０２ＣＧはワードラインＷＬ２に接続され、制御ゲート１０４ＣＧはワードラインＷＬ１に接続され、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。
【００２３】
図１ａおよび図１ｂはＮＡＮＤストリング内の４個のメモリを示しているが、４個のメモリセルの使用は単なる一例であることに留意されたい。ＮＡＮＤストリングは、４個未満または４個より多いメモリセルを有することができる。例えば、ＮＡＮＤストリングは、８個のメモリセル、１６個のメモリセル、３２個のメモリセル、６４個のメモリセル、１２８個のメモリセル、を備えることがある。ここでの議論では、ＮＡＮＤストリングのメモリセルの特定の数に限定されない。一実施形態では、６６個のメモリセルを備えるＮＡＮＤストリングが使用される。そのうち、６４個のメモリセルがデータを記憶するために使用され、２個のメモリセルがデータを記憶しないためにダミーメモリセルと呼ばれる。
【００２４】
ＮＡＮＤ構造を用いるフラッシュメモリシステムの典型的な構造では、幾つかのＮＡＮＤストリングを備える場合がある。ＮＡＮＤストリングの各々は、選択ラインＳＧＳでコントロールされるソース選択ゲートによって、共通ソースラインに接続される。そしてＮＡＮＤストリングの各々は、選択ラインＳＧＤでコントロールされるドレイン選択ゲートによって、ＮＡＮＤストリングが関連するビットラインに接続される。ビットラインの各々、および、ビットラインコンタクトを介してそれらの各ビットラインに接続される単数または複数のＮＡＮＤストリングのそれぞれは、複数のメモリセルのアレイの列を備える。ビットラインは、多数のＮＡＮＤストリングによって共有される。通常、ビットラインは、ワードラインと直交する方向を有して、ＮＡＮＤストリングの上部に伸びている。そして、ビットラインはセンスアンプに接続される。
【００２５】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性記憶装置も使用可能である。例えば、電荷を保持する誘電体層を用いたメモリセルによっても、不揮発性記憶装置が製造される。前述の導電性のフローティングゲート素子に代えて、誘電体層が用いられる。そのような誘電体記憶素子を使用したメモリ装置は、Eitanらによる、「NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell,」、ＩＥＥＥエレクトロンデバイスレター（IEEE Electron Device Letters）、ｖｏｌ．２１、ｎｏ．１１、２０００年１１月、ページ５４３−５４５に記載されている。ＯＮＯ誘電体層は、ソース拡散層とドレイン拡散層の間に、チャネルをまたがって伸びている。一方のデータビットの電荷は、ドレインに隣接する誘電体層に局在し、他方のデータビットの電荷は、ソースに隣接する誘電体層に局在する。米国特許第５，７６８，１９２および６，０１１，７２５は、２つのシリコン酸化膜層に挟まれたトラップ誘電体層を有する、不揮発性メモリセルを開示している。マルチステートデータストレージは、誘電体層内の空間的に分離した電荷保持領域の２値状態を、別々に読み出すことで実現される。ＭＯＮＯＳ型またはＴＡＮＯＳ型の構造や、ナノ結晶に基づく不揮発性記憶装置もまた使用可能である。他のタイプの不揮発性記憶装置も使用可能である。
【００２６】
図１ｃは、３個のＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、いくつかのＮＡＮＤストリングを含む。例えば、３個のＮＡＮＤストリング、３２０、３４０及び３６０が、さらに多くのＮＡＮＤストリングを有するメモリアレイ内に示される。各ＮＡＮＤストリングは、２個の選択ゲートと４つの記憶素子を有している。簡単化のために４個の記憶素子が描かれているが、最近のＮＡＮＤストリングは、例えば最高３２個又は６４個の記憶素子を有する場合がある。
【００２７】
例えば、ＮＡＮＤストリング３２０は選択ゲート３２２と３２７、及び、記憶素子３２３〜３２６を有し、ＮＡＮＤストリング３４０は選択ゲート３４２と３４７、及び、記憶素子３４３〜３４６を有し、ＮＡＮＤストリング３６０は選択ゲート３６２と３６７、及び、記憶素子３６３〜３６６を有する。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７、又は３６７）によってソースラインに接続されている。選択ラインＳＧＳは、ソース側選択ゲートを制御するために使用される。種々のＮＡＮＤストリング３２０、３４０、及び３６０は、選択ゲート３２２、３４２、３６２等の選択トランジスタによって各ビットライン３２１、３４１、及び、３６１に接続されている。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは必ずしもＮＡＮＤストリング間で共通とされている必要はない。すなわち、異なるＮＡＮＤストリングには異なる選択ラインを接続できる。ワードラインＷＬ３は、記憶素子３２３、３４３、及び、３６３のための制御ゲートに接続されている。ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４のための制御ゲートに接続されている。ワードラインＷＬ１は、記憶素子３２５、３４５、及び、３６５のための制御ゲートに接続されている。ワードラインＷＬ０は、記憶素子３２６、３４６、及び、３６６のための制御ゲートに接続されている。つまり、各ビットラインと各ＮＡＮＤストリングは記憶素子のアレイ又はセットの列を含む。ワードライン（ＷＬ３、ＷＬ２、ＷＬ１及びＷＬ０）は、アレイ又はセットの行を含む。各ワードラインは、行において各記憶素子の制御ゲートを接続している。また、制御ゲートはワードライン自体によって提供されてよい。例えば、ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４に制御ゲートを提供する。実際には、１つのワードラインに数千の記憶素子がある場合がある。
【００２８】
各記憶素子はデータを記憶できる。例えば、１ビットのデジタルデータを記憶するときは、記憶素子の可能な閾値電圧（ＶＴＨ）の範囲は、論理データ「１」と「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、前記ＶＴＨは、記憶素子が消去された後に負となり、論理「１」として定義される。プログラム動作後の前記ＶＴＨは正であり、論理「０」として定義される。ＶＴＨが負であり、読み出しが試行されると、記憶素子がオンして論理「１」が記憶されていることが示される。前記ＶＴＨが正であり、読み出し動作が試行されると、記憶素子はオンにならず、論理「０」が記憶されていることが示される。また、記憶素子は、例えば複数ビットのデジタルデータ等の複数のレベルの情報も記憶できる。このケースでは、ＶＴＨ値の範囲はデータレベルの数に分割される。例えば、４つのレベルの情報が記憶されている場合には、データ値「１１」、「１０」、「０１」、及び、「００」に割り当てられる４つのＶＴＨ範囲がある。ＮＡＮＤタイプのメモリの一例では、消去動作後の前記ＶＴＨは負となり、「１１」として定義される。正のＶＴＨ値は「１０」、「０１」及び「００」の状態のために使用される。記憶素子に書き込まれるデータと、素子のＶＴＨ範囲との特定な関係は、記憶素子のために採用されるデータ符号化方式に依存する。
【００２９】
フラッシュ記憶素子をプログラミングするときには、プログラム電圧が記憶素子の制御ゲートに印加されるとともに、記憶素子に接続されているビットラインが接地される。チャネルからの電子はフローティングゲートに注入される。電子がフローティングゲートに蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶＴＨが上昇する。プログラミング中の記憶素子の制御ゲートにプログラム電圧を印加するために、そのプログラム電圧は適切なワードライン上に印加される。上述したように、各ＮＡＮＤストリング中の１つの記憶素子が同じワードラインを共有している。例えば、図１ｃの記憶素子３２４をプログラミングするときには、プログラム電圧は記憶素子３４４と３６４の制御ゲートにも印加される。
【００３０】
図２は、ＮＡＮＤストリングの断面図を示す。図は簡略化されており、縮尺どおりではない。ＮＡＮＤストリング２００は、ソース側選択ゲート２０６と、ドレイン側選択ゲート２２４と、基板２９０上に形成される８個の記憶素子２０８、２１０、２１２、２１４、２１６、２１８、２２０及び２２２とを有する。基板のｎウェル領域２９４内に形成されるｐウェル領域２９２に、構成要素を形成することができる。同様に、ｎウェルは、ｐ−基板２９６内に形成することができる。供給ライン２０２および２０３は、ｐウェル領域２９２およびｎウェル領域２９４の各々に接続されている状態とすることができる。ビットライン２２６にはＶＢＬの電位が供給されるとともに、ソース供給ライン２０４にはＶＳＯＵＲＣＥの電位が供給される。ＶＳＧＳは選択ゲート２０６に印加され、ＶＳＧＤは選択ゲート２２４に印加される。ワードラインまたは不揮発性記憶素子のソース側は、ＮＡＮＤストリングのソース端が面する側（例えば、ソース供給ライン２０４）を指す。ワードラインまたは不揮発性記憶素子のソース側は、ＮＡＮＤストリングのソース端が面する側（例えば、ビットライン２２６）を指す。
【００３１】
メモリ装置内の記憶素子に、正確にデータをプログラムできることが重要である。通常、ＮＡＮＤ装置などの不揮発性記憶装置は、寸法がより縮小されていっており、隣接する記憶素子間のスペースもまた縮小している。これにより、特にフローティングゲート間により大きな容量結合が発生する。これは、隣接する記憶素子からの影響がより大きくなることを意味する。容量結合は、ビットライン間の結合、およびワードライン間の結合を含んでいる。
【００３２】
ＶＴＨの分布をより狭くするために、干渉の影響に取り組む必要がある。一つの解決策は、マルチパスプログラミングである。この方法では、１回の粗パスにおいて、記憶素子は、最終目的状態からオフセットレベルだけ下回ってプログラムされる。このオフセットレベルは、粗状態または“曖昧な”状態とみなされることがある、部分的にプログラムされた状態のためのものである。続いて、別のファインパスによって、記憶素子の最終目標状態へ到る残余のプログラムが行われる。最終プログラム状態は、“ファイン”状態とみなされることがある。マルチパスプログラミング技術の一例を、以下に述べる。
【００３３】
図３は、２パスプログラミング技術における、記憶素子の集合および関連するワードラインについてのプログラミング順序を示している。ここで、各々が１つの四角で表された記憶素子の集合は、ワードラインＷＬ０からＷＬ４の集合、および、ビットラインＢＬｉ−１からＢＬｉ＋１の集合と連通している。記載された要素は、記憶素子、ワードライン、ビットラインのより大きな集合の一部であってもよい。この例では、５本のワードラインが備えられる。ここで、ＷＬ０がソース側終端ワードラインであり、ＷＬ４がドレイン側終端ワードラインである。実際には、例えば６４または１２８本のワードラインなど、１つのブロックにより多くのワードラインが通常は配置される。記載されている図は、本発明の一実施形態の態様を表すために用いられている。ステップＳ１からＳ１５は、連続して実施されるステップを表している。
【００３４】
プログラミング順序は、複数のワードライン間をあちこちに変わることを含んでいる。よって、プログラミング順序は、ワードライン順を外れた順序、またはジグザグ順序と呼ばれることがある。粗パスおよびファインパスは、各々のワードラインに対して備えられることに留意されたい。第１のプログラミングパスは、ＷＬ０に関連する選択記憶素子に対して行われる（これは、ステップ１またはＳ１である）。次に、読み出し動作が、ＷＬ０に対して行われる（Ｓ２）。読み出し動作の後に続く隣接ワードラインの記憶素子のプログラミングによるカップリングによって、ＷＬ０上の記憶素子が影響を受ける前に、読み出し動作によって、ＷＬ０上の記憶素子の状態を確認することができる。エラー訂正符号（ＥＣＣ）を用いることで、読み出しデータ内のエラーを検出することができる。さらに、ＥＣＣは、粗プログラミング自体によって生じた誤りビットや、粗プログラミング後から粗読み出し前の期間によって生じた誤りビットを訂正するために使用することができる。一時的な記憶によっては、誤りビットは生じないと考えられている。
【００３５】
続いて、Ｓ３において、ＷＬ１に対して粗プログラミングパスが発生する。このプログラミングによって、ＷＬ１からのカップリングによる、ＷＬ０の記憶素子の閾値電圧の変化が発生する。Ｓ４において、ＷＬ０に対してファインプログラミングパスが発生する。実施可能な一態様では、これを達成するために、前もって読み出され記憶されたデータにアクセスが行われ、ＥＣＣデコードを用いて復号される。読み出されたデータは、ファインプログラミングパスによってＷＬ０の各記憶素子がプログラムされる予定のデータ状態を示している。Ｓ４の後に、読み出されたデータが消去されうる。この方法では以下に詳細に述べるように、あるワードラインにおいて、粗プログラミングの間に、ファインプログラミングのためのプログラムデータを記憶する必要を無くすことができる。さらに、閾値電圧分布が狭くなる。
【００３６】
Ｓ５では、読み出し動作が、ＷＬ１に対して行われる。Ｓ６では、粗プログラミングがＷＬ２に対して行われ、カップリングによってＷＬ１の記憶素子の閾値電圧に変化が発生する。Ｓ７において、ＷＬ１に対してファインプログラミングパスが発生する。これにより、ソース側の隣接ワードラインであるＷＬ０に、少ない量のカップリングが発生する。しかしながら、このカップリングは、粗プログラミングによるカップリングよりもはるかに少ないため、許容しうる。Ｓ５において以前に読み出されたデータにアクセスされ、当該データがＥＣＣデコードを用いて復号される。読み出されたデータは、ファインプログラミングパスによってＷＬ１の各記憶素子がプログラムされる予定のデータ状態を示している。あるワードラインに対して、粗プログラミングの後に記憶素子が読み出されるように、他のワードラインに対しても適宜に処理が進行する。記憶素子の読み出しは、より高位のワードラインの粗プログラミングによってそのワードラインが結合する前に行われる。そして、読み出されたデータが、ファインプログラミングに使用される。最後のワードラインであるＷＬ４が、Ｓ１４の読み出しの後にプログラムされる高位のワードラインが存在しない点を除いて、同様にしてプログラムされる。代わりに、Ｓ１５において、ファインプログラミングがＷＬ４に対して行われる。
【００３７】
オプションとして、図８に関連して詳述されるような、追加の初期プログラミングパスが、粗プログラミングおよびファインプログラミングの前に行われても良い。
【００３８】
図３の手法では、次の高位のワードラインが部分的にプログラムされるまでは、所定のワードラインのプログラミングが完了しない。基本的に、次の高位のワードラインは、１プログラミングパス後ろである。例えば、ＷＬ０のファインプログラミングが完了したときには、ＷＬ１は粗プログラミングが完了しているのみである。
【００３９】
全ビットラインプログラミングを用いることもできる。全ビットラインプログラミングでは、記憶素子が偶数または奇数の番号付けがされたビットラインに関連するか否かを考慮することなく、１本のワードライン上の全てのビットラインの複数の記憶素子がプログラムされる。しかしながら、他の手法も利用可能である。他の手法は、偶数ビットラインがプログラムされ、プログラムおよび検証処理が行われ、続いて奇数ビットラインがプログラムされ、プログラムおよび検証処理が行われるという手法を含んでいる。他の手法では、奇数および偶数ビットラインの両方が一緒にプログラムされ、プログラムパルスを受信し、その後に偶数ビットラインが検証され、その後に奇数ビットラインが検証される。続いて、次のプログラムパルスが印加され、それにより処理が継続する。これらの手法は、次に記述される。
【００４０】
図４ａは、プログラミング中に記憶素子の制御ゲートに印加されるパルス列４００の第１の例を示す図である。ある手法では、パルス列は、波高が徐々に増加するプログラムパルス４０２，４０４，４０６，４０８，４１０．．．と、各々のプログラムパルスの間の検証パルスの集合と、を含んでいる。検証パルスの集合は、後述するＶＶＡ-ＣＯＡＲＳＥ、ＶＶＢ-ＣＯＡＲＳＥおよびＶＶＣ-ＣＯＡＲＳＥの波高、または、ＶＶＡ-ＦＩＮＥ、ＶＶＢ-ＦＩＮＥおよびＶＶＣ-ＦＩＮＥの波高などを有する、検証パルス４０３の例を含んでいる。パルス波高は、ＶＰＧＭ１、ＶＰＧＭ２、などである。例えば、複数のパルスは、波高が一定とされてもよいし、一定レートまたは変化するレートで徐々に高くなるとしてもよい。通常、ｍ個のデータ状態が使用される場合には、ｍ−１個の検証パルスが使用される。ある手法では、各々のプログラミングパスに対して、同一のパルス列が使用される。しかしながら、異なるプログラミングパスに対して、異なるパルス列を使用することも可能である。例えば、第２のプログラミングパスでは、第１のパスに比してより高い初期ＶＰＧＭから開始するパルス列が使用されてもよい。
【００４１】
一実施形態では、プログラミングパルスは、例えば１２Ｖから開始するＶＰＧＭ１の電圧を備えている。そしてプログラミングパルスは、例えば２０−２５Ｖの最大値に到達するまで、連続するプログラミングパルスの各々において、例えば０．５Ｖの増分で増加する。ある実施形態では、データプログラムされる各状態（例えば、状態Ａ、ＢおよびＣ）に対して、検証パルスが存在するとすることができる。他の実施形態では、より多くのまたはより少ない検証パルスとすることができる。
【００４２】
パルス列４００は、例えば、全ビットラインプログラミングや、偶数−奇数プログラミングの間に使用される。あるタイプの偶数−奇数プログラミングの間では、パルス列４００を繰り返し使用することで、偶数番号が付けられたビットラインの記憶素子がプログラムおよび検証される。続いて、パルス列４００を繰り返し使用することで、奇数番号が付けられたビットラインが、プログラムおよび検証される。
【００４３】
他のタイプの偶数−奇数プログラミングでは、図４ｂに示すように、偶数および奇数の番号が付けられたビットラインの記憶素子が一緒にプログラムされるが、検証は別々に実施される。例えば、パルス列４６０は、波高が徐々に増加するプログラムパルス４４２，４４４，４４６，４４８，４５０．．．を含んでいる。そして、各々のプログラムパルスの間に、集合４４３および４４５の例を含んでいる、検証パルスの２つの集合を備えている。一つの実施形態では、プログラムパルス４４２と４４４の間において、例えば、検証パルス４４３の集合は、偶数の番号が付けられたビットラインの記憶素子を検証するために用いられてもよいし、検証パルス４４５の集合は、奇数の番号が付けられたビットラインの記憶素子を検証するために用いられてもよい。
【００４４】
図４ｃは、読み出し処理の間に、不揮発性記憶素子の制御ゲートに印加される電圧波形の例を示している。読み出し処理の間、選択ワードラインの電圧が、選択記憶素子の制御ゲートに結合される。そして、一連の読み出し電圧ＶＣＧＲ‐Ａ，ＶＣＧＲ‐ＢおよびＶＣＧＲ‐Ｃが供給される。マルチレベル記憶素子に対して、検証処理は通常は一つの比較レベルしか使用しないが、読み出し処理は複数の比較レベルを用いる点において、読み出し処理は検証処理と区別される。さらに、読み出し処理は、電圧閾値間隔および記憶素子のデータ状態が何れに分類されるべきかを決定する一方で、検証処理は、記憶素子の閾値電圧が比較レベルを超えることを保証する。通常、ｎ個の状態を識別するために、ｎ−１個の比較レベルが使用される。図６ａおよび６ｂに関連して以下に述べるように、粗にプログラムされたデータが読み出されるかファインにプログラムされたデータが読み出されるかに応じて、異なる読み出し電圧を用いることができる。
【００４５】
図５ａは、プログラミングパスの間にデータが読み出される、図３の２パスプログラミング技術の詳細を示している。ステップＳ１からＳ１０は、図３のステップの同様の番号が付けられたステップに対応する。“Ｅ”は消去状態を示す。時間は図の右側に向かって進行する。Ｓ１の前では、全ワードラインの記憶素子が、消去（Ｅ）状態である。Ｓ１において、ＷＬ０に対して粗プログラミングが実施される（“粗プログラム”）。その後、ＷＬ０の記憶素子は、粗にプログラムされた状態（“粗”）になる。ＷＬ１からＷＬ４の記憶素子は、Ｅ状態である。Ｓ２において、ＷＬ０が読み出され、関連するデータが記憶される。例えば、４つのデータ状態を取りうる場合には、各々の記憶素子に対してデータの２ビットを記憶させることができる。通常、２Ｎ個の状態がある場合には、Ｎビットを記憶することができる。Ｓ３において、ＷＬ１に対して粗プログラミングが実行される。ＷＬ１の記憶素子は粗状態となり、ＷＬ２からＷＬ４の記憶素子はＥ状態である。
【００４６】
Ｓ４において、ＷＬ０のファインプログラミング用として、ＷＬ０に関する読み出しデータにアクセスする。基本的に、読み出しデータは、ファインプログラミングの間にＷＬ０の各々の記憶素子に書き込まれるデータ状態を示している。従って、粗閾値電圧区分は、ファイン区分のプログラムデータを供給する。ＷＬ０の読み出しデータは、ファインプログラミングの後においてはもはや不要であるため、廃棄することができる。１度につき、１本のワードラインのデータのみが記憶されることが必要であることに留意されたい。これにより、プログラムデータのためのストレージ要求のみならず、データのやり取りに必要な動作も減少させることができる。従って、ハードウェアのコスト、電力消費量、およびメモリチップ上のハードウェアに使用されるスペースを減少させることができる。データの読み出しステップ、記憶ステップ、およびその後のアクセスステップは、コマンド入力によって開始される一連のシーケンスとして実行されうる。読み出しデータを一時的に記憶するために、メモリ装置内の記憶場所が提供されることがある。マルチパスプログラミングは、ユーザに感知されない。加えて、データの読み出しステップ、記憶ステップ、およびその後のアクセスステップが連続的であることをコマンドが保証しているため、メモリ装置内の記憶先は揮発性とすることができる。
【００４７】
本技術は、必要なデータ記憶容量がより少ない、粗−ファインプログラム方法を提供する。４−レベル記憶素子のための従来の粗／ファインプログラム方法は、プログラムデータを保持するために、４ビットフリップフロップ（必ずしもフリップフロップに限られず、何れの記憶装置でも許容される）のような記憶部を、ビットラインごとに必要としていた。一方、ここで述べられた技術の４−レベルセルは、２ビットフリップフロップ（必ずしもフリップフロップに限られず、何れの記憶装置でも許容される）のような記憶部を、ビットラインごとに必要とするのみである。
【００４８】
Ｓ５において、ＷＬ１が読み出され、関連するデータが記憶される。Ｓ６において、ＷＬ２に対して粗プログラミングが実行される。通常、ＷＬｎの粗プログラミング前に、ＷＬｎ−１の粗分布が読み出される。ＷＬｎ−１の粗分布は、ＷＬｎ−２のファインプログラミングからの結合によって、最小限しか障害を受けない。Ｓ６の間、ＷＬ０の記憶素子はファイン状態であり、ＷＬ１の記憶素子は粗状態であり、ＷＬ３およびＷＬ４の記憶素子はＥ状態である。Ｓ７において、ＷＬ１のファインプログラミング用として、ＷＬ１に関する読み出しデータにアクセスする。ＷＬ１の読み出しデータは、ファインプログラミングの後において廃棄することができる。Ｓ８において、ＷＬ２が読み出され、関連するデータが記憶される。Ｓ９において、ＷＬ３に対して粗プログラミングが実施される。ＷＬ０およびＷＬ１の記憶素子はファイン状態であり、ＷＬ２の記憶素子は粗状態であり、ＷＬ４の記憶素子はＥ状態である。Ｓ１０において、ＷＬ２のファインプログラミング用として、ＷＬ２に関する読み出しデータにアクセスする。ＷＬ２の読み出しデータは、ファインプログラミングの後において廃棄することができる。以降、記載されていないさらなるステップが実行される。
【００４９】
マルチパスプログラミングに読み出し処理を追加するオーバヘッドコストは、粗分布を読み出すための時間によって負担される必要があることに留意されたい。しかしながら、通常、読み出し時間はプログラミング時間全体の小さな一部分であるため、このコストは低い。
【００５０】
図５ｂは、図５ａと比較して、プログラミングパスの間にデータが読み出されない、２パスプログラミング技術の詳細を示している。ステップＳ１，Ｓ３，Ｓ４，Ｓ６，Ｓ７，Ｓ９およびＳ１０は、図５ａの同様の番号が付けられたステップに対応する。この手法では、少なくとも２本のワードラインからのプログラムデータが、メモリ装置または記憶システムのどこかに、同時に記憶される必要がある。例えば、ＷＬ０のデータは、粗プログラミングが実行される時（Ｓ１）から、ファインプログラミングがＷＬ０に対して実行される時まで（Ｓ４）、記憶される。ＷＬ１のデータは、粗プログラミングが実行される時（Ｓ３）から、ファインプログラミングがＷＬ１に対して実行される時まで（Ｓ７）、記憶される。ＷＬ２のデータは、粗プログラミングが実行される時（Ｓ６）から、ファインプログラミングがＷＬ２に対して実行される時まで（Ｓ１０）等に、記憶される。従って、ＷＬ０とＷＬ１は同時に記憶され、ＷＬ１とＷＬ２は同時に記憶され、ＷＬ２とＷＬ３は同時に記憶され、などになる。
【００５１】
図６ａは、図３の２パスプログラミング技術の、第１の粗パスの後における、閾値電圧の変化を表している。このプログラミング技術は、フルシーケンスプログラミングと呼ばれる。そのプログラミング技術の一部は、より低い検証電圧または粗検証電圧を使用する。
【００５２】
粗プログラミングは、ファインプログラミングに比して、より低い精度およびより速いレート（ΔＶＴＨ／ｓｅｃより大きい）で、記憶素子が最終目標状態へ向けてプログラムされる現象を指す。このより速いプログラミングは、例えば、より高い波高を有するプログラムパルスや、より速いレートで増加するプログラムパルスを印加することで、実現されうる。記憶素子は、最終検証レベルまたはファイン検証レベルを下回ってオフセットされた、検証レベルへプログラムされる。一般的に、粗検証レベルは、通常はファイン検証レベルに近いが、記憶素子の状態がファイン検証レベルをはるかに超えて行き過ぎることを防止するために、充分な程度に低くされる。すなわち、ファイン検証レベルを大きく超えてプログラミングすることがファイン分布を広げる結果になるにも関わらず、記載されているように、セルはファイン検証レベルを超えてプログラムされることが容認されている。
【００５３】
例として、消去状態（Ｅ）および３つの上位状態Ａ、ＢおよびＣを含んでいる、４つのデータ状態が存在しうる。２、４、８、１６またはそれ以上の何れの状態数も使用可能である。複数の記憶素子は、初期はＥ状態である。第１の、粗プログラミングパスは、状態Ａ、ＢおよびＣのそれぞれに対応する、ＶＶＡ‐ＣＯＡＲＳＥ，ＶＶＢ‐ＣＯＡＲＳＥおよびＶＶＣ‐ＣＯＡＲＳＥの第１の検証電圧の粗集合を使用する。粗プログラミングパスは、また、多重“パス書き込み”（ＰＷ）プログラミングプロセスの第１のパスとも呼ばれる。粗プログラミングパスの直後に、所定のワードライン（例えば、ＷＬｎ）に関連する記憶素子は、長い破線で表されるＶＴＨ分布を有する。ＷＬｎの閾値電圧の遷移は比較的大きく、これが隣接するワードラインの記憶素子への結合を引き起こす。ソース側の隣接ワードライン（ＷＬｎ−１）にファインプログラミングされた後、ＷＬｎのＶＴＨ分布は、短い破線で示されるように、僅かに高い方へ変化する。ドレイン側の隣接ワードライン（ＷＬｎ＋１）に粗プログラミングされた後、ＷＬｎのＶＴＨ分布は、点線で示されるように、著しく高い方へ変化する。このように、粗プログラミングの結合影響は、ファインプログラミングの影響よりも大きい。
【００５４】
ＷＬｎ−１へのファインプログラミング後の、ＷＬｎの粗分布は、ある程度の読み出しマージンを有しており、例えば、分布が重なり合わない。従って、ＷＬｎ−１へのファインプログラミングの後における、ＷＬｎの粗分布の読み出し（短い破線で表された分布の読み出し）は、正確な結果となる。ＥＣＣを誤りビットの訂正に用いることができる一方で、ＥＣＣが使用される場合には、分布のある程度の重なりを許容することができる。粗分布を読み出すための最適な読み出しレベルは、ファイン分布の読み出しレベルよりも多少低くなければならない。例えば、粗分布のための読み出しレベルは、図６ａに示すように、ＶＣＧＲ‐Ａ(ＣＯＡＲＳＥ)、ＶＣＧＲ‐Ｂ(ＣＯＡＲＳＥ)およびＶＣＧＲ‐Ｃ(ＣＯＡＲＳＥ)である。そして、ファイン分布のための読み出しレベルは、図６ｂに示すように、ＶＣＧＲ‐Ａ(ＦＩＮＥ)、ＶＣＧＲ‐Ｂ(ＦＩＮＥ)およびＶＣＧＲ‐Ｃ(ＦＩＮＥ)である。ＷＬｎ＋１への粗プログラミング後における、ＷＬｎの粗分布は、良好な読み出しマージンを有さないことがあり、例えば、図示するように分布が重なり合ってしまうことがある。
【００５５】
図６ｂは、図３の２パスプログラミング技術の、第２のファインパスの後における、閾値電圧の変化を表している。図６ａの粗パスに続いて行われる、第２のファインプログラミングパスは、状態Ａ、ＢおよびＣのそれぞれに対応する、ＶＶＡ‐ＦＩＮＥ，ＶＶＢ‐ＦＩＮＥおよびＶＶＣ‐ＦＩＮＥの、第２のより高い検証電圧の集合を使用する。従って、第２の検証電圧の集合内のｎ番目の検証電圧の各々は、第１の検証電圧の集合内のｎ番目の検証電圧の各々よりも異なった状態に対して同一または異なる増分量だけ高い。これは、多重“パス書き込み”プログラミングプロセスの、第２のパスである。ＷＬｎのファインプログラミングパスである第２プログラミングパスの直後に、記憶素子は、一点鎖線で表されるＶＴＨ分布を有する。点線で表された図６ａの分布は、図６ｂにおいて参考のために再掲されており、矢印は分布がどのように狭められるかを表している。ここで、記憶素子がその最終目的状態へプログラムされる。しかしながら、ＷＬｎ＋１へのファインプログラミングの後、ＷＬｎのＶＴＨ分布は、実線で示されるように、僅かに高い方へ変化する。
【００５６】
ファインプログラミングでは、粗プログラミングに比して、より高い精度およびより遅いレート（ΔＶＴＨ／ｓｅｃより小さい）で、記憶素子が最終目標状態へ向けてプログラムされる。このより遅いプログラミングは、例えば、より低い波高を有するプログラムパルスや、より遅いレートで増加するプログラムパルスを印加することで、実現されうる。
【００５７】
図７ａは、データがプログラミングパスの間に読み出され、その次にアクセスおよびエラー訂正が行われる、マルチパスプログラミングプロセスの概要を示している。初めに、プログラムされるデータが、ＥＣＣ符号化された形式とすることができる。通常、エラーを検出して訂正する誤り訂正符号、または、エラーを検出するが訂正することはできない誤り検出符号が使用されうる。ステップ７００において、マルチパスプログラミング処理が開始される。ステップ７０２において、特定のワードライン（例えばＷＬｎ）に対して、粗プログラミングが実施される。ステップ７０４において、特定のワードラインに強く結合していない他のワードライン（例えばＷＬｎ−１）に、プログラミングが実施される。例えば、このプログラミングは、ＷＬｎ−１のファインプログラミングである場合がある。ステップ７０６において、特定のワードラインが読み出され、関連するデータが記憶される。ステップ７０８において、特定のワードラインにかなり強く結合している他のワードラインに対して、プログラミングが実施される。例えば、このプログラミングは、ＷＬｎ＋１の粗プログラミングである場合がある。具体的には、ステップ７１０において、特定ワードラインの記憶素子のＶＴＨが、結合によって変化する。
【００５８】
ステップ７１２は、ＷＬｎの記憶されたデータにアクセスするステップと、ＥＣＣを用いてエラー訂正処理を実行するステップを備えている。ステップ７１４において、アクセスされたデータを用いて、特定ワードラインに対するファインプログラミングが実行される。そして、Ｓ７１６において、特定ワードラインについて記憶されたデータが廃棄される。例えば、もはや不要であるとして、データを上書きすることができる。
【００５９】
図７ｂは、図３の２パスプログラミング技術に対応する、マルチパスプログラミングプロセスを示す図である。ステップ７２０において、プログラミング処理が開始される。ステップ７２５において、ワードラインの添字の値が、第１のワードラインを表す０にセットされる。通常、複数のワードラインは、ＮＡＮＤストリングなどのワードラインの集合のソース側で０で始まる連続番号が付けられる。ステップ７３０は、ＷＬ０の粗プログラミングを含む。ステップ７３５は、ＷＬ０の読み出しを含む。ステップ７５５では、例えば１へ、添字の値が増加する。判断ステップ７６０において、添字の値が最後のワードラインを示すものでないと判断される場合には、フローは、ＷＬｉ（例えば、ＷＬ１）の粗プログラミングを含むステップ７４０へ進む。そしてステップ７４５は、ＷＬｉ−１（例えば、ＷＬ０）の粗読み出しデータにアクセスするステップと、ＷＬｉ−１にファインプログラミングを実行するステップを備える。ステップ７５０は、ＷＬｉ（例えば、ＷＬ１）を読み出すステップ、および関連するデータを記憶するステップを備える。
【００６０】
ステップ７５５では、例えば２へ、添字の値が再び増加する。ステップ７６０において、添字の値が最後のワードラインを示すものでないと判断される場合には、フローは、ＷＬｉ（例えば、ＷＬ２）の粗プログラミングを含むステップ７４０へ進む。そしてステップ７４５は、ＷＬｉ−１（例えば、ＷＬ１）粗読み出しデータにアクセスするステップと、ＷＬｉ−１にファインプログラミングを実行するステップを備える。ステップ７５０は、ＷＬｉ（例えば、ＷＬ２）を読み出すステップ、および関連するデータを記憶するステップを備える。
【００６１】
添字の値が最終ワードラインのものであると決定ステップ７６０で判断されるまで、プロセスは適宜に進行する。図３の例では、  最終ワードラインは、ｉ＝４で表されている。現段階では、最終ワードラインよりも上位のワードラインが存在しないという事実によって、プログラミングは僅かに修正されている。ステップ７６５において、ＷＬｉ（例えばＷＬ４）の粗プログラミングが行われる。ステップ７７０において、ＷＬｉ（例えばＷＬ４）の粗読み出しデータがアクセスされ、ＷＬｉに対してファインプログラミングが実施される。ステップ７７５において、プログラミング処理が最終的に終了する。これはプログラミング順序の一例であるため、他のプログラミング順序も可能であることに留意されたい。
【００６２】
図８は、３パスプログラミング技術における、記憶素子の集合および関連するワードラインについてのプログラミング順序を示している。図３と同様に、各々が１つの四角で表された記憶素子の集合は、ワードラインＷＬ０からＷＬ４の集合例、および、ビットラインＢＬｉ−１からＢＬｉ＋１の集合例と連通している。記載された要素は、記憶素子、ワードライン、ビットラインのより大きな集合の一部であってもよい。この例では、５本のワードラインが備えられる。ここで、ＷＬ０がソース側終端ワードラインであり、ＷＬ４がドレイン側終端ワードラインである。すなわち、ＷＬ０は、ＮＡＮＤストリングなどの直列接続された記憶素子の集合のソース端である。ＷＬ４は、直列接続された記憶素子の集合のドレイン端である。本図は、本発明の一態様を示すものである。ステップＳ１からＳ２０は、順番に発生する処理を表している。
【００６３】
プログラミングするステップの３つのパスは、以下において、下位ページパス、上位ページ粗パス（または第１上位ページパス）、および、上位ページファインパス（または第２上位ページパス）と記述する。Ｓ１は、ＷＬ０の下位ページプログラミングを備えている。Ｓ２は、ＷＬ１の下位ページプログラミングを備えている。Ｓ３は、ＷＬ０の上位ページ粗プログラミングを備えている。Ｓ４は、ＷＬ２の下位ページプログラミングを備えている。Ｓ５は、ＷＬ０の読み出しを備えている。Ｓ６は、ＷＬ０へ結合干渉を引き起こす、ＷＬ１の上位ページ粗プログラミングを備えている。Ｓ７は、以前に読み出されたデータにアクセスするステップと、ＷＬ０の上位ページファインプログラミングを実施するステップを備える。Ｓ８は、ＷＬ３の下位ページプログラミングを備える。Ｓ９は、ＷＬ１の読み出しを備える。Ｓ１０は、ＷＬ１へ結合干渉を引き起こす、ＷＬ２の上位ページ粗プログラミングを備えている。Ｓ１１は、以前に読み出されたデータにアクセスするステップと、ＷＬ１の上位ページファインプログラミングを実施するステップを備える。当該プロセスは、最終ワードラインに到達するまで、適宜に進行する。
【００６４】
この手法では、あるワードラインは、次の２つの上位ワードラインが  部分的にプログラムされるまで、プログラミングが終了しない。基本的に、次の上位ワードラインは１プログラミングパス後ろであり、２番目の上位ワードラインは２プログラミングパス後ろである。例えば、ＷＬ０の上位ページファインプログラミングが完了したときに、ＷＬ１は上位ページ粗プログラミングのみが完了しており、ＷＬ２は下位ページプログラミングのみが完了している。
【００６５】
図９は、プログラミングパスの間にデータが読み出される、図８の３パスプログラミング技術の詳細を示している。ステップＳ１からＳ１１は、図８のステップの同様の番号が付けられたステップに対応する。“Ｅ”は消去状態を示す。時間は図の右側に向かって進行する。Ｓ１の前では、全ワードラインの記憶素子が、消去状態（Ｅ）である。Ｓ１において、下位ページプログラミングがＷＬ０に対して実施される。その後、ＷＬ０の記憶素子は、下位ページ状態（“下位ページ”）になる。記憶素子が２つの状態の一方になる場合には、下位ページプログラミングもまた２レベルプログラミングである。
【００６６】
ＷＬ１からＷＬ４の記憶素子は、Ｅ状態である。Ｓ２において、下位ページプログラミングがＷＬ１に対して実施される。その後、ＷＬ１の記憶素子は、下位ページ状態になる。ＷＬ０の記憶素子は下位ページ状態であり、ＷＬ２からＷＬ４の記憶素子はＥ状態である。Ｓ３において、ＷＬ０は上位ページ粗プログラミング（“粗プログラム”）を受ける。ＷＬ１の記憶素子は下位ページ状態であり、ＷＬ２からＷＬ４の記憶素子はＥ状態である。Ｓ４において、下位ページプログラミングがＷＬ２に対して実施される。その後、ＷＬ２の記憶素子は、下位ページ状態になる。ＷＬ０の記憶素子は粗状態であり、ＷＬ１の記憶素子は下位ページ状態であり、ＷＬ３からＷＬ４の記憶素子はＥ状態である。
【００６７】
Ｓ５において、ＷＬ０が読み出され、関連するデータが記憶される。Ｓ６において、ＷＬ１に対して粗プログラミングが実施される。ＷＬ０の記憶素子は粗状態であり、ＷＬ２の記憶素子は下位ページ状態であり、ＷＬ３からＷＬ４の記憶素子はＥ状態である。Ｓ７において、ＷＬ０のファインプログラミングのために、ＷＬ０データがアクセスされ使用される。ＷＬ０のデータは、その後廃棄することができる。Ｓ８において、ＷＬ３に対して下位ページプログラミングが実施される。ＷＬ０の記憶素子は、ファインな上位ページ状態である。ＷＬ２の記憶素子は、粗な上位ページ状態である。ＷＬ４の記憶素子は、Ｅ状態である。Ｓ９において、ＷＬ１が読み出され、関連するデータが記憶される。Ｓ１０において、ＷＬ２に対して粗プログラミングが実施される。ＷＬ０の記憶素子は、ファインな上位ページ状態である。ＷＬ２の記憶素子は、粗な上位ページ状態である。ＷＬ３の記憶素子は、下位ページ状態である。ＷＬ４の記憶素子は、Ｅ状態である。Ｓ１１において、ＷＬ１はファインプログラミングを受ける。そして、ＷＬ１の読み出しデータが廃棄可能とされる。１度につき、１本のワードラインのデータのみが記憶されることが必要であることに、再度留意されたい。これにより、ストレージ要求のみならず、データのやり取りに必要な動作も減少させることができる。
【００６８】
例えば、ある可能な実施形態において、４−レベル記憶素子に対して、ここで述べた読み出し処理を行わない場合には、プログラミングの作業領域は２ビットのストレージを必要とする。また、次の処理のための一次的なバッファは、ファインプログラミングに使用される予定のＷＬｎ＋１データのための２ビットと、ファインプログラミングに使用される予定のＷＬｎデータのための２ビットとを含んでいる、４ビットのストレージを必要とする。従って、各々の記憶素子に対して、合計で６ビットの記憶スペースが必要となる。作業領域は、例えば、データラッチまたはフリップフロップとして提供されうる。一方、一時的なバッファは、データラッチ、フリップフロップ、バイナリバッファまたはバイナリメモリとして提供されうる。詳細については図１４および図１５を参照されたい。対照的に、ここで述べた読み出し処理では、プログラミング用の作業領域は２ビットのストレージを必要とする。また、一時的なバッファは、ファインプログラミングに使用される予定のＷＬｎデータのための２ビットを含んでいる、２ビットのストレージを必要とする。従って、各々の記憶素子に対して、合計で４ビットの記憶スペースが必要となる。ここで述べたプログラミング技術によって、記憶素子ごとに２ビットが削減される結果となる。
【００６９】
他の実施可能な形態では、作業領域は３ビットの記憶を必要とする。また、次の処理のための一次的なバッファは、ファインプログラミングに使用される予定のＷＬｎデータのための２ビットを含んでいる、２ビットのストレージを必要とする。従って、各々の記憶素子に対して、合計で５ビットの記憶スペースが必要となる。一方、ここで述べたプログラミング技術では、記憶素子ごとに１ビットが削減される結果となる。
【００７０】
１本のワードラインに数百または数千の記憶素子が備えられる場合には、必要記憶量の削減は重要である。コスト削減のために、必要記憶量が削減されたメモリ装置を設計することができる。さらに、電力消費も削減することができる。
【００７１】
その後、ここに記載されていない追加のステップも実行されることに留意されたい。
【００７２】
図１０ａ−１０ｃは、図８に関連する３パスプログラミング技術に対する、閾値電圧分布を示している。
【００７３】
図１０ａは、中間検証電圧が用いられる第１の下位ページプログラミングパス後における、閾値電圧の変化を示している。ここで、プログラミングプロセスには、３つの段階が存在する。初期段階は、ＢまたはＣの最終状態へプログラムされる予定の記憶素子に対して、中間検証電圧ＶＶＩＮＴを用いてプログラミムするステップを備える。Ａの最終状態へプログラムされる予定の記憶素子は、消去状態に維持される。この初期段階は、データの下位ページをプログラミングするステップを備えていても良い。ＷＬｎの下位ページプログラミングの直後において、ＷＬｎのＩＮＴＶＴＨ分布は、ＩＮＴ分布の長い破線で示される。ＷＬｎ−１に粗プログラミングされた後、ＩＮＴＶＴＨ分布は、短い破線で示されるように、僅かに高い方へ変化する。ＷＬｎ＋１に粗プログラミングされた後、ＷＬｎのＩＮＴＶＴＨ分布は、点線で示されるように、著しく高い方へ変化する。
【００７４】
図１０ｂは、低位検証電圧が用いられる第２パス（粗な上位ページパス）の後における、閾値電圧の変化を表している。図１０ａの初期段階の後、第１の“パス書き込み”プログラミングパスは、状態Ａ、ＢおよびＣのそれぞれに対応する、ＶＶＡ‐ＣＯＡＲＳＥ，ＶＶＢ‐ＣＯＡＲＳＥおよびＶＶＣ‐ＣＯＡＲＳＥの検証電圧の第１の下位集合を使用する。最終状態Ａにプログラムされる予定の記憶素子は、状態Ｅからプログラムが開始される。最終状態ＣまたはＣにプログラムされる予定の記憶素子は、状態ＩＮＴからプログラムが開始される。図１０ａの点線は、図１０ｂにおいて参考のために再掲されている。記憶素子は、最終状態を下回ってオフセットされたレベルへプログラムされる。このプログラミング段階は、データの上位ページプログラミングの第１の粗パスであってもよい。
【００７５】
ＷＬｎの粗な上位ページプログラミングパスの直後に、ＷＬｎの記憶素子は、例えば、一点鎖線で表されるＶＴＨ分布を有する。ＷＬｎ−１にファインプログラミングされた後、ＷＬｎのＶＴＨ分布は、二点鎖線で示されるように、僅かに高い方へ変化する。ＷＬｎ＋１に粗プログラミングされた後、ＷＬｎのＶＴＨ分布は、一点二短鎖線で示されるように、著しく高い方へ変化する。粗な上位ページ分布のための読み出しレベルは、ＶＣＧＲ‐Ａ(ＣＯＡＲＳＥ)、ＶＣＧＲ‐Ｂ(ＣＯＡＲＳＥ)およびＶＣＧＲ‐Ｃ(ＣＯＡＲＳＥ)である。状態Ａ、ＢおよびＣの各々に対する、制御ゲート読み出し電圧ＶＣＧＲ‐Ａ(ＣＯＡＲＳＥ)、ＶＣＧＲ‐Ｂ(ＣＯＡＲＳＥ)およびＶＣＧＲ‐Ｃ(ＣＯＡＲＳＥ)の例もまた、参考のために記載されている。
【００７６】
図１０ｃは、高位検証電圧が用いられる第３のファイン上位ページパスの後における、閾値電圧の変化を表している。図１０ｂから図１０ｃへの遷移は、図６ａから図６ｂへの遷移に類似している。図１０ｂの第１の“パス書き込み”プログラミングパスの後、第２の“パス書き込み”プログラミングパスは、状態Ａ、ＢおよびＣのそれぞれに対応する、ＶＶＡ‐ＦＩＮＥ，ＶＶＢ‐ＦＩＮＥおよびＶＶＣ‐ＦＩＮＥの第２の高位検証電圧の集合を使用する。最終状態Ａ、ＢまたはＣにプログラムされる予定の記憶素子は、図１０ｂから繰り返される一点二短鎖線で示されるように、それぞれの低位オフセット状態からプログラムが開始される。状態Ａ、ＢおよびＣの各々に対する、制御ゲート読み出し電圧ＶＣＧＲ‐Ａ(ＦＩＮＥ)、ＶＣＧＲ‐Ｂ(ＦＩＮＥ)およびＶＣＧＲ‐Ｃ(ＦＩＮＥ)の例もまた、参考のために記載されている。このプログラミング段階は、データの上位ページプログラミングの第２のファインパスであってもよい。ＷＬｎのファイン上位ページプログラミングパスの直後に、記憶素子は、点線で表されるＶＴＨ分布を有する。一点二短鎖線で表された図１０ｂの分布は、図１０ｃにおいて参考のために再掲されており、矢印は分布がどのように狭められるかを表している。ＷＬｎ＋１へのファインプログラミングの後、ＷＬｎのＶＴＨ分布は、実線で示されるように、僅かに高い方へ変化する。
【００７７】
マルチパスプログラミング技術の詳細を、次に述べる。一実施態様例では、不揮発性記憶素子は、４つのデータ状態を用いて、１つの記憶素子あたり２ビットを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、ＢおよびＣがプログラム状態であると仮定する。状態Ｅはデータ１１を記憶する。状態Ａはデータ０１を記憶する。状態Ｂはデータ１０を記憶する。状態Ｃはデータ００を記憶する。これは、状態ＡとＢとの間で両ビットが変化するため、グレーコードでない例である。データを物理的なデータ状態に符号化する、他の方式もまた使用可能である。各々の記憶素子は、データの２ページを記憶する。参考までに、これらのデータのページを、上位ページおよび下位ページと呼ぶ。しかしながら、これらに他の呼び名をつけることも可能である。状態Ａに関して、上位ページはビット０を記憶し、下位ページはビット１を記憶する。状態Ｂに関して、上位ページはビット１を記憶し、下位ページはビット０を記憶する。状態Ｃに関して、両ページはビット０を記憶する。
【００７８】
初期プログラミングパスでは、下位ページがプログラムされる。下位ページがデータ１のままである場合、記憶素子状態は状態Ｅに留まる。データが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態ＩＮＴにプログラムされる。一実施形態では、状態Ｅから状態ＩＮＴに記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下位ページに対してプログラムする。例えば、図１ｂを見直すと、記憶素子１０６用の下位ページをプログラムした後、記憶素子１０４の下位ページをプログラムする。記憶素子１０４をプログラミングした後、記憶素子１０４が状態Ｅから状態ＩＮＴに上昇したＶＴＨを有していた場合、フローティングゲート間結合の影響は記憶素子１０６の見かけのＶＴＨを上昇させる。これは、状態ＩＮＴのＶＴＨ区分を拡大する影響を有する。ＶＴＨ区分のこの見かけの拡大は、上位ページをプログラミングする際に大部分が修正される。
【００７９】
記憶素子が状態Ｅであって上位ページが１に留まる場合、記憶素子は状態Ｅに留まる。記憶素子が状態Ｅであり、その上位ページデータが０にプログラムされる場合、記憶素子のＶＴＨは上昇し、記憶素子は状態Ａになる。記憶素子がＩＮＴ閾値電圧区分であって上位ページデータが１に留まる場合、記憶素子は最終状態Ｂにプログラムされる。記憶素子がＩＮＴ閾値電圧区分であって上位ページデータがデータ０になる場合、記憶素子のＶＴＨは上昇し、記憶素子は状態Ｃになる。別の状態符号化の一例は、上位ページデータが１であるとき区分ＩＮＴから状態Ｃに移動することであり、上位ページデータが０であるとき状態Ｂに移動することである。
【００８０】
図１０ａ〜ｃは４つのデータ状態と２つのページデータに対する一例を提供するが、開示された概念は何れの数の状態およびページを備えた他の実装形態に適用することもできる。
【００８１】
図１１は、図８の３パスプログラミング技術に対応する、マルチパスプログラミングプロセスを示している。ステップ１１００において、プログラミング処理が開始される。ステップ１１０５において、ワードライン添字の値が、最初のソース側のワードラインを表す０にセットされる。ステップ１１１０は、ＷＬ０の下位ページプログラミングを備えている。ステップ１１１５は、ＷＬ１の下位ページプログラミングを備えている。ステップ１１２０は、ＷＬ０の粗な上位ページプログラミングを備えている。ステップ１１４５では、添字の値が増加する（例えば、１回目はｉ＝１へ増加する）。判断ステップ１１５０において、添字の値が最後のワードラインを示すものでないと判断される場合には、ステップ１１２５から１１４５の処理が実行される。具体的には、ステップ１１２５は、ＷＬｉ＋１（例えば、ＷＬ２）の下位ページプログラミングを備えている。ステップ１１３０は、ＷＬｉ−１（例えば、ＷＬ０）を読み出すステップと、関連するデータを記憶するステップを備えている。ステップ１１３５は、ＷＬｉ（例えば、ＷＬ１）の粗プログラミングを備えている。ステップ１１４０は、ＷＬｉ−１（例えば、ＷＬ０）の粗読み出しデータにアクセスするステップと、ＷＬｉ−１にファインな上位ページプログラミングを実行するステップを備える。ステップ１１４５では、添字がｉ＝２へ増加され、ステップ１１２５から１１４５の処理が再度実行される。具体的には、ステップ１１２５は、ＷＬｉ＋１（例えば、ＷＬ３）の下位ページプログラミングを備えている。ステップ１１３０は、ＷＬｉ−１（例えば、ＷＬ１）を読み出すステップと、関連するデータを記憶するステップを備えている。ステップ１１３５は、ＷＬｉ（例えば、ＷＬ２）の粗プログラミングを備えている。ステップ１１４０は、ＷＬｉ−１（例えば、ＷＬ１）の粗読み出しデータにアクセスするステップと、ＷＬｉ−１にファインな上位ページプログラミングを実行するステップを備える。
【００８２】
判断ステップ１１５０で最終ワードラインに到達されるまで、ステップ１１４５において添字の値が再度増加され、ステップ１１２５から１１４５が再度実行される。現段階では、最後の幾つかのワードラインに対するプログラミングプロセスを決定するステップを備える、ステップ１１５５から１１９０が実施される。例えば、最終ワードラインに関するｉ＝４では、図８に単に例示としてのみ示すように、ステップ１１５５はＷＬｉ−２（例えば、ＷＬ２）を読み出すステップを備え、ステップ１１６０はＷＬｉ−１（例えば、ＷＬ３）の粗な上位ページプログラミングを備え、ステップ１１６５はＷＬｉ−２（例えば、ＷＬ２）粗読み出しデータにアクセスするステップと、ＷＬｉ−２のファインプログラミングを実行するために当該読み出しデータを使用するステップを備える。ステップ１１７０は、ＷＬｉ−１（例えば、ＷＬ３）を読み出すステップを備える。ステップ１１７５は、ＷＬｉ（例えば、ＷＬ４）の粗な上位ページプログラミングを備える。ステップ１１８０は、ＷＬｉ−１（例えば、ＷＬ３）粗読み出しデータにアクセスするステップと、ＷＬｉ−１のファインプログラミングを実行するために当該読み出しデータを使用するステップを備える。ステップ１１８５は、ＷＬｉ（例えば、ＷＬ４）を読み出すステップを備える。ステップ１１９０は、ＷＬｉ（例えば、ＷＬ４）粗読み出しデータにアクセスするステップと、ＷＬｉのファインプログラミングを実行するために当該読み出しデータを使用するステップを備える。ステップ１１９５において、プログラミング処理が終了する。
【００８３】
図１２ａ−１２ｅに関連して、さらなるプログラミングの選択肢を次に述べる。図１２ａは、追加的なマルチパスプログラミングプロセスを示している。図１２ａは、ＡおよびＢ状態より前に、Ｃ状態に対して上位ページ粗プログラミングが実行される点を除いて、図８に類似している。ここで、Ｓ３、Ｓ６、Ｓ１０、Ｓ１４およびＳ１７は、状態Ｃの記憶素子に対する、上位ページの粗プログラミングを実行するステップと、それに続く、状態ＡおよびＢの記憶素子に対する、上位ページの粗プログラミングを表している。Ｓ７，Ｓ１１，Ｓ１５，Ｓ１８およびＳ２０は、全ての状態（例えば、Ａ、ＢおよびＣ）に対する、上位ページのファインプログラミングについてのステップを意味している。
【００８４】
図１２ｂから１２ｅは、図１２ａに関連したプログラミング技術に対する、閾値電圧分布を表す。
【００８５】
図１２ｂは、中間検証電圧が用いられる下位ページプログラミング後の、閾値電圧の変化を示している。この選択肢によっても、妨害の影響および隣接セルの干渉の影響を減少させることができる。主に、ビットライン間の干渉とプログラム外乱を減少させる。このプログラム技術は、“Ｃ−ファースト”または“最上位状態ファースト”と呼ばれる。ここでＣ状態は、マルチレベルの実施態様における４つのデータ状態のうち、最上位の状態を表している。当該技術は、８、１６、または他の状態数へ拡張することができる。このような技術は、下位状態セルの粗プログラミングの前に、粗検証レベルを用いて、最上位状態セルの全てを目標とする状態へプログラミングするステップを備えている。
【００８６】
図１２ｂでは、ＢおよびＣ状態の記憶素子（すなわち、最終的に状態ＢまたはＣの各々にプログラムされる予定の素子）が、ＶＶＩＮＴを検証レベルとして使用することで、プログラムされる。長い破線は、ＷＬｎの下位ページプログラミング直後の、ＷＬｎのＩＮＴＶＴＨ分布を表す。短い破線は、ＷＬｎ−１の粗な上位ページプログラミング後の、ＷＬｎのＩＮＴＶＴＨ分布を表す。点線は、ＷＬｎ＋１の下位ページプログラミング後の、ＷＬｎのＩＮＴＶＴＨ分布を表す。
【００８７】
図１２ｃは、一点鎖線で表されるように、Ｃ状態記憶素子の粗な上位ページプログラミング直後のＶＴＨ分布を示している。図１２ｂのＩＮＴ状態の点線が、参考として再掲されている。Ｃ状態の記憶素子に対するＶＴＨの遷移が、矢印で示されている。Ｂ状態の記憶素子のＶＴＨは、ＩＮＴのままとされる。
【００８８】
図１２ｄは、ＡおよびＢ状態に対する低位検証電圧が用いられる、ＡおよびＢの記憶素子の粗な上位ページプログラミングを示している。Ａ状態記憶素子は、低位検証レベルＶＶＡ-ＣＯＡＲＳＥを用いて、状態Ｅからプログラムされる。Ｂ状態記憶素子は、検証レベルＶＶＢ-ＣＯＡＲＳＥを用いて、ＩＮＴ状態からプログラムされる。図１２ｃのＩＮＴ状態の点線は、参考のために図１２ｄに再掲されている。ある手法では、この時点で、Ｃ状態記憶素子はプログラミングから除外される。ＡおよびＢの記憶素子の粗な上位ページプログラミングは、一点鎖線で表される分布から、二点鎖線で表される分布へ、Ｃ状態の記憶素子ＶＴＨに変化を発生させる。二点鎖線は、ＷＬｎの状態ＡおよびＢの記憶素子の粗な上位ページプログラミングの直後における、状態Ａ、ＢおよびＣのＷＬｎのＶＴＨ分布を表している。さらに、一点二短鎖線は、ＷＬｎ−１のファイン上位ページプログラミング後の、小さな結合変化が生じたＷＬｎの記憶素子のＶＴＨ分布を表している。破線は、大きな結合変化が経験された、ＷＬｎ＋１の粗な上位ページプログラミング後の、ＷＬｎの記憶素子のＶＴＨ分布を表している。
【００８９】
図１２ｅは、Ａ、ＢおよびＣ状態に対する高位検証電圧が用いられる、ファインな上位ページプログラミングを示している。具体的には、Ａ、ＢおよびＣ状態記憶素子は、高位検証レベルＶＶＡ-ＦＩＮＥ、ＶＶＢ-ＦＩＮＥおよびＶＶＣ-ＦＩＮＥの各々を使用してプログラムされる。ＷＬｎの上位ページプログラミングの直後に、記憶素子は、点線で示されるＶＴＨ分布を有する。破線で示された図１２ｄの分布は、参考のために図１２ｅに再掲されており、矢印は分布がどのように狭められるかを表している。ＷＬｎ＋１のファインプログラミングの後、ＷＬｎのＶＴＨ分布は、実線で示されるように、僅かに高い方へ変化する。
【００９０】
上述した技術を実施可能な不揮発性記憶装置の実施例を、次に説明する。
【００９１】
図１３は、図１ａおよび１ｂに示したようなＮＡＮＤ記憶素子のアレイ１１００の一例を示している。各列に沿って、ビットライン１３０６はＮＡＮＤストリング１３２５のドレイン選択ゲートのドレイン端子１３２６に接続している。ＮＡＮＤストリングの各行に沿って、ソースライン１３０４はＮＡＮＤストリングのソース選択ゲートのすべてのソース端子１３２８に接続できる。
【００９２】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの最小単位である。一般に、記憶素子の１行に１ページ以上のデータを記憶する。例えば通常、１行は、いくつかのインターリーブページを含んでいるか、または１ページを構成する。１ページの全ての記憶素子は、一緒に読み出しまたはプログラムが行われる。さらに、１ページは、１つまたは複数のセクタからのユーザデータを記憶できる。１つのセクタは、ユーザデータの適当な単位としてホストによって用いられる、論理上の概念である。セクタは、通常、コントローラに限定されているオーバヘッドデータを含まない。オーバヘッドデータは一般に、そのセクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）を有する。制御部（後述）の一部は、データがアレイ内に書き込まれるときにＥＣＣを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにさえ記憶される。
【００９３】
ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４、１２８またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００９４】
一実施形態では、メモリ記憶素子は、十分な期間に亘ってｐ−ウェルが消去電圧（例えば１４−２２Ｖ）に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
【００９５】
本明細書の技術は、ＮＡＮＤに加えて、他の不揮発性記憶技術（ＮＯＲを含む）に適用可能である。
【００９６】
図１４は、単一の行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。図は、本発明の一実施形態に従って記憶素子のページを同時に読み取り、プログラミングするための読み出し／書き込み回路を有するメモリ素子１３９６を示す。メモリ装置１３９６は、１つ以上のメモリダイ１３９８を有する。メモリダイ１３９８は、２次元のアレイの記憶素子１１００、制御回路１３１０、及び、読み出し／書き込み回路１３６５を有する。いくつかの実施形態では、記憶素子のアレイは３次元であり得る。メモリアレイ１１００は行デコーダ１３３０を介してワードラインによって、及び、列デコーダ１３６０を介してビットラインによってアドレスできる。読み出し／書き込み回路１３６５は、１ページの記憶素子を並列に読み出し又はプログラミングすることができる、複数の読み出し／書き込み（Ｒ／Ｗ）スタック１３０５を備えている。読み出し／書き込み（Ｒ／Ｗ）スタック１３０５の各々は、内臓回路である。複数のバイナリバッファ１３０２がまた、メモリアレイに関連して備えられている。一般に、外部制御部１３５０は、１つ以上のメモリダイ１３９８のように同じメモリ装置１３９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン１３２０を介してホストと制御部１３５０の間、及び、ライン１３１８を介して制御部と１つ以上のメモリダイ１３９８の間で送られる。
【００９７】
制御回路１３１０は、読み出し／書き込み回路１３６５と協調して、メモリアレイ１１００上でメモリ動作を実行する。制御回路１３１０は、ステートマシン１３１２、オンチップアドレスデコーダ部１３１４及び、電力制御モジュール１３１６を有している。ステートマシン１３１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ１３１４は、ホスト又はメモリ制御部によって用いられるとともに、デコーダ１３３０及び１３６０によって用いられるハードウェアアドレスの間のアドレスインターフェースを提供する。電力制御モジュール１３１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００９８】
いくつかの実装形態では、構成要素のいくつかを結合することができる。多様な設計では、記憶素子アレイ１３００以外の構成要素の１つまたは複数を（単独でまたは組み合わせて）１つの管理回路または制御回路と見なすことができる。例えば、一つ以上の管理回路は、制御回路１３１０、ステートマシン１３１２、デコーダ１３１４／１３６０、電力制御１３１６、Ｒ／Ｗスタック１３０５、読み出し／書き込み回路１３６５、制御部１３５０等の内の１つ、または組み合わせを有してよい。
【００９９】
他の手法では、多様な周辺回路によるメモリアレイ１３００に対するアクセスは、アレイの両側で対称様式に実現され、その結果各側のアクセスラインと回路網の密度は半分に低減される。従って、行デコーダは２つの行デコーダに分割され、列デコーダは２つの列デコーダに分割される。同様に、読み出し／書き込み回路は、アレイ１３００の底部からビットラインに接続する読み出し／書き込み回路と、アレイ１３００の上部からビットラインに接続する読み出し／書き込み回路に分割される。
この方法により、読み出し／書き込みモジュールの密度は本質的に二分の一に低減される。
【０１００】
制御部１３５０は、ＥＣＣエンコーダ／デコーダ１３５２およびバッファメモリ１３５４を備えることができる。ＥＣＣエンコーダ／デコーダ１３５２は、例えば図７ａに関連して前述したように、マルチパスプログラミングプロセスの間にプログラムおよび読み出しが行われるワードラインのデータを、符号化および復号化するために用いられる。符号化（ＥＣＣ符号化を含む）は、データが粗プログラムされる前に完了される。ＥＣＣエンコーダ／デコーダ１３５２は、ワードラインから読み出される行データの復号や、エラー訂正および検出や、エラー閾値を越えているか否かの決定に、同様にして用いることができる。バッファメモリ１３５４、バイナリバッファ１３２０およびデータラッチは、通常、一時的な揮発性のデータ記憶領域である。
【０１０１】
図１５は、読み出し／書き込みスタック（センスブロックとも呼ばれる）の一実施形態を示すブロック図である。一つの手法として、前述のような、分割されたＲ／Ｗスタックの集合が、図１４の読み出し／書き込み回路１３６５を実現するために備えられるとしてもよい。個々のＲ／Ｗスタック１３０５の例としては、ｋ本のビットラインの各々をセンシングする検出モジュール１３８０の束や、データを処理するとともにデータ通信を制御する共通プロセッサ１３９２や、ビットラインの各々に備えられるデータラッチ１３９４や、Ｉ／Ｏインターフェースモジュール１３９６などが挙げられる。従って、ある実施形態では、ビットラインの各々に対して分離した検出モジュール１３８０が備えられ、検出モジュール１３８０の集合に対して１つの共通プロセッサ１３９２が備えられることがある。検出モジュール１３８０、共通プロセッサ１３９２、データラッチ１３９４は、データバス１３９３を介して通信することができる。さらに、データラッチ１３９４は、Ｉ／Ｏインターフェース１３９６と直接に通信することができる。ステートマシン１３１２（図１４）は、スタックバスコントローラを介して、バス１３９３と随意に通信することができる。詳細は、参照することにより本明細書に組み込まれる、Ｕ．Ｓ．２００６／０１４０００７およびＵ．Ｓ．２００８／００６５８１３を参照されたい。
【０１０２】
検出モジュール１３８０は、センスアンプなどの検出回路１３８２を有している。検出回路１３８２は、接続されたビットライン内の伝導電流が、所定の閾値レベルより高いか低いかを判定する。検出モジュール１３８０は、さらにビットラインラッチ１３８４を有している。ビットラインラッチ１３８４は、接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ１３８４内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態（例えば、ＶＤＤ）に設定される。
【０１０３】
共通プロセッサ１３９２は、計算を実行する。例えば、その機能の１つは、検出された記憶素子内に記憶されているデータを判定し、判定したデータをデータラッチ１３９４の集合内に記憶することである。データラッチ１３９４の集合は、読み出し動作中に、プロセッサ１３９２によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス１３２０から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムされる予定の書き込みデータを表す。Ｉ／Ｏインターフェース１３９６は、データラッチ１３９４とデータバス１３２０の間のインターフェースを提供する。
【０１０４】
読み出し又は検出中には、システムの動作はステートマシン１３１２の制御下にあり、ステートマシン１３１２はアドレスされた記憶素子への異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール１３８０はこれらの電圧の１つに移動し、バス１３９３を介して検出モジュール１３８０からプロセッサ１３９２に出力が提供される。その時点で、プロセッサ１３９２は、検出モジュールの移動イベントと、ステートマシンから入力ライン１３９３を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ１３９４に記憶する。別の実施形態では、ビットラインラッチ１３８４は、検出モジュール１３８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方の機能を兼ねる。
【０１０５】
いくつかの実装形態では複数のプロセッサ１３９２を有することができる。一実施形態では、各プロセッサ１３９２は出力ライン（図示せず）を有し、各出力ラインは共にワイヤードＯＲ接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続する前に反転される。ワイヤードＯＲを受け取るステートマシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の迅速な決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理０がワイヤードＯＲラインに送られる（又はデータ１を反転させる）。全てのビットがデータ０を出力する（又はデータ１を反転させる）と、ステートマシンはプログラミング処理を終了することを認識する。各プロセッサが８つの検出モジュールと通信するので、ステートマシンはワイヤードＯＲラインを８回読み出す必要があるか、あるいは関連するビットラインの結果を蓄積するために論理がプロセッサ１３９２に追加され、ステートマシンがワイヤードＯＲラインを一度だけ読み出せば良いようにする。同様に、論理レベルを正しく選ぶことにより、グローバルステートマシンは、第１のビットがいつその状態を変更し、相応してアルゴリズムを変更するのかを検知できる。
【０１０６】
プログラム又は検証中に、プログラムされるデータはデータバス１３２０から１組のデータラッチ１３９４内に記憶される。ステートマシンの制御下の書き込み動作は、アドレス指定される記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを有する。各プログラムパルスに続いてリードバック（検証）が実行され、記憶素子が所望のメモリ状態にプログラムされたかどうかを判定する。プロセッサ１３９２は、所望のメモリ状態に対するリードバックメモリ状態を監視する。その２つが一致する場合、プロセッサ１３９２はビットラインラッチ１３８４を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラムパルスがその制御ゲートに現れても、ビットラインに接続した記憶素子がさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ１３８４をロードし、検出回路が検証処理中に禁止値にそれを設定する。
【０１０７】
データラッチスタック１３９４は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール１３８０毎に３つのデータラッチが存在する。いくつかの実装形態では、（必須ではないが）データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス１３２０のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを形成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、ｒ個の読み出し／書き込みモジュールのバンクを調整し、その組のデータラッチが読み出し／書き込みブロックの全体のシフトレジスタの一部であっても、その組のデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
【０１０８】
不揮発性記憶装置の多様な実施形態の構造及び／または動作についての追加情報は、米国特許第７，１９６，９３１号、米国特許第７，０２３，７３６号、米国特許第７，０４６，５６８号、Ｕ．Ｓ．２００６／０２２１６９２号，およびＵ．Ｓ．２００６／０１５８９４７号に記載されている。直前に示した特許文書の５つの全ては、その全体を参照することにより本明細書に組み込まれる。
【０１０９】
上述したように、様々なＲ／Ｗスタックが提供されてもよく、それらの１つ１つがユーザデータのそれぞれの部分を選択ワードラインの対応する記憶素子に記憶させる。複数のＲ／Ｗスタックは、通常、平行して動作しうる。
【０１１０】
図１６は、全ビットラインメモリアーキテクチャのために、又は、奇数−偶数メモリアーキテクチャのために、メモリアレイをブロックに編成する例を示す。メモリアレイ１６００の例示的な構造が説明される。一例として、１，０２４個のブロックに分割されるＮＡＮＤフラッシュＥＥＰＲＯＭが説明されている。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックに、ビットラインＢＬ０、ＢＬ１、・・・ＢＬ８５１１に対応する８，５１２の列が存在する。全ビットライン（ＡＢＬ）アーキテクチャ（アーキテクチャ１６１０）と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラミング動作中に同時に選択される。共通のワードラインに沿っており、任意のビットラインに接続される記憶素子は、同時にプログラミングされる。
【０１１１】
示される例では、ＮＡＮＤストリングを形成するために、６４個の記憶素子が直列に接続されている。６４本のデータワードラインが存在し、ＮＡＮＤストリングの各々は６４個のデータ記憶素子を備えている。他の実施形態では、ＮＡＮＤストリングは、６４個よりも多いまたは少ない記憶素子を備えうる。
【０１１２】
ＮＡＮＤストリングの１つの端子は、（選択ゲートドレインラインＳＧＤに接続される）ドレイン選択ゲートを介して対応するビットラインに接続され、別の端子が（選択ゲートソースラインＳＧＳに接続される）ソース選択ゲートを介してｃ−ソースに接続される。
【０１１３】
奇数−偶数アーキテクチャ（アーキテクチャ１６００）と呼ばれる一実施形態では、ビットラインは偶数ビットライン（ＢＬｅ）と奇数ビットライン（ＢＬｏ）に分割される。この場合、共通ワードラインに沿っており、奇数ビットラインに接続されている記憶素子群は同時にプログラミングされ、共通ワードラインに沿っており、偶数ビットラインに接続されている記憶素子群は別のタイミングで同時にプログラミングされる。データは異なるブロックにプログラムされることができる。また、データは異なるブロックから同時に読み出されることができる。この例では、各ブロックに、偶数列と奇数列に分割される８，５１２の列がある。
【０１１４】
読み出し動作及びプログラミング動作の１つの構成の間に、４，２５６個の記憶素子が同時に選択される。選択された記憶素子は、同じワードラインと同じ種類のビットライン（例えば、偶数又は奇数）を有する。従って、１論理ページを形成する５３２バイトのデータを同時に読み出し、あるいは、プログラミングすることが可能であり、１ブロックのメモリが少なくとも８論理ページ（それぞれ奇数ページと偶数ページがある４ワードライン）を記憶できる。４個のマルチステート記憶素子の場合、各記憶素子が２ビットのデータを記憶し、これらの２ビットのそれぞれが別のページに記憶されると、１ブロックは１６の論理ページを記憶する。他のサイズのブロック及びページを使用することも可能である。
【０１１５】
ＡＢＬアーキテクチャ又は奇数−偶数アーキテクチャの何れかの場合は、ｐ−ウェルを消去電圧（例えば２０Ｖ）に上昇させ、選択されたブロックのワードラインを接地することによって、記憶素子を消去できる。ソースライン及びビットラインはフローティングされる。消去は、メモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行できる。電子は、記憶素子のフローティングゲートからｐ−ウェル領域に移され、記憶素子のＶＴＨが負となる。
【０１１６】
本発明の前記の詳細な説明は図解及び説明のために提示されたものである。本発明は、網羅的となる、あるいは本発明を開示されている正確な形式に制限することを意図していない。前記教示を鑑みて多くの変型及び変更が可能である。説明された実施形態は、本発明及びその実際的な応用を最もよく説明し、それにより当業者が多様な実施形態において、及び意図されている特定の使用に適するように多様な変型を用いて本発明を最もよく活用できるようにするために選択された。本発明の範囲がここに添付される請求項により定められることが意図される。
【図１ａ】
0005467107.tif 000002
【図１ｂ】
0005467107.tif 000003
【図１ｃ】
0005467107.tif 000004
【図２】
0005467107.tif 000005
【図３】
0005467107.tif 000006
【図４ａ】
0005467107.tif 000007
【図４ｂ】
0005467107.tif 000008
【図４ｃ】
0005467107.tif 000009
【図５ａ】
0005467107.tif 000010
【図５ｂ】
0005467107.tif 000011
【図６ａ】
0005467107.tif 000012
【図６ｂ】
0005467107.tif 000013
【図７ａ】
0005467107.tif 000014
【図７ｂ】
0005467107.tif 000015
【図８】
0005467107.tif 000016
【図９】
0005467107.tif 000017
【図１０ａ】
0005467107.tif 000018
【図１０ｂ】
0005467107.tif 000019
【図１０ｃ】
0005467107.tif 000020
【図１１】
0005467107.tif 000021
【図１２ａ】
0005467107.tif 000022
【図１２ｂ】
0005467107.tif 000023
【図１２ｃ】
0005467107.tif 000024
【図１２ｄ】
0005467107.tif 000025
【図１２ｅ】
0005467107.tif 000026
【図１３】
0005467107.tif 000027
【図１４】
0005467107.tif 000028
【図１５】
0005467107.tif 000029
【図１６】
0005467107.tif 000030