(57)【要約】  マルチパスプログラミング処理における不揮発性メモリのプログラミング時間が短縮される。第１プログラミングパスでは、高速の高い状態のセルと低速の高い状態のセルを識別するために高い状態のセルは一連のプログラムパルスによってプログラムされる一方で、低い状態のセルはプログラミングからロックアウトされる。識別された高速の高い状態のセルはプログラミングから一時的にロックアウトされる一方で、低速の高い状態のセルはそれらの最後の目的とする状態までプログラムされ続ける。さらに、プログラムパルスは、低速の高い状態のセルをプログラムするために急峻にステップアップされる。第２プログラミングパスでは、高速の高い状態のセルは、これらがすべて目的とする状態に達するまで他の低い状態のセルとともにプログラムされる。第１プログラミングパスにおいてすべての高い状態のセルがプログラムされるアプローチに比べて時間の節約が実現される。【選択図】図１
2011526049.tif 000002
【特許請求の範囲】
【請求項１】
ａ）低速プログラミング記憶素子（６１０）と高速プログラミング記憶素子（６２０）を区別するためにオフセット（Δ＝ＶＶ−Ｃ−ＶＶ−ＣＬＬ）を差し引いた第１の検証レベル（ＶＶ−Ｃ）を用いて第１の組の記憶素子（Ｃ）に対してプログラミング動作を実行する一方で、少なくとも第２の組の記憶素子（Ａ、Ｂ）のプログラミングをロックアウトするステップと、
ｂ）前記高速プログラミング記憶素子をロックアウトする一方で、前記第１の検証レベル（ＶＶ−Ｃ）を用いて前記低速プログラミング記憶素子のプログラミングを継続し、かつ前記少なくとも第２の組の記憶素子をロックアウトし続けるステップと、
ｃ）前記低速プログラミング記憶素子をロックアウトする一方で、前記第１の検証レベル（ＶＶ−Ｃ）を用いて前記高速プログラミング記憶素子のプログラミングを再開し、かつ前記オフセットを差し引いた前記第１の検証レベルよりも小さい少なくとも第２の検証レベル（ＶＶ−Ｂ）を用いて前記少なくとも第２の組の記憶素子をプログラムするステップと、
を備える不揮発性記憶装置の動作方法。
【請求項２】
前記第１の組の記憶素子および前記少なくとも第２の組の記憶素子は、共通の閾値電圧区分からプログラムされる、請求項１に記載の方法。
【請求項３】
第１のステップサイズ（ΔＶ１）だけ増加されるプログラムパルスを印加するステップを含み、ステップａ）に先立って前記第１および第２の組の記憶素子に対してプログラミング動作を実行するステップをさらに備え、ステップｂ）はより高い第２のステップサイズ（ΔＶ５）だけ増加されるプログラムパルスを印加するステップを含む、請求項１または２に記載の方法。
【請求項４】
ステップａ）は第１のステップサイズ（ΔＶ３）だけ増加される第１の組のプログラムパルスを印加するステップを含み、ステップｂ）は第２の組のプログラムパルスを印加するステップを含み、前記第２の組の最初のプログラムパルスは前記第１の組のプログラムパルスの最後のプログラムパルスから前記第１のステップサイズよりも大きいステップサイズ（ΔＶ４）だけ増加される、請求項３に記載の方法。
【請求項５】
前記第２の組の前記最初のプログラムパルスは前記第１の組のプログラムパルスの最後のプログラムパルスから前記オフセットだけ増加される、請求項４に記載の方法。
【請求項６】
前記第１の検証レベルは最高のデータ状態（Ｃ）のためのものであり、前記少なくとも第２の検証レベルは２番目に高いデータ状態（Ｂ）のためのものである、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
ステップｃ）は、前記第２の検証レベル（ＶＶ−Ｂ）よりも小さい第３の検証レベル（ＶＶ−Ａ）を用いて第３の組の記憶素子をプログラムするステップを含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
ステップａ）およびｂ）は、前記第１の検証レベルに関係付けられるデータ状態（Ｃ）にプログラムすることを目的とする記憶素子のみのプログラミングを可能とする、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記第１の組の記憶素子における指定された数または部分の記憶素子が前記オフセットを差し引いた前記第１の検証レベルで検証されたときにステップａ）を終了するステップをさらに備える、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
ステップａ）は、プログラムパルスを印加するステップを備え、
本方法は、指定された数のプログラムパルスが印加されたときにステップａ）を終了するステップをさらに備える、請求項１〜８のいずれか一項に記載の方法。
【請求項１１】
ステップａ）は、プログラムパルスを印加するステップを備え、
本方法は、前記第１の組の記憶素子において指定された数または部分の記憶素子が前記オフセットを差し引いた前記第１の検証レベルで検証された後で指定された数の追加のプログラムパルスが印加されたときにステップａ）を終了するステップをさらに備える、請求項１〜８のいずれか一項に記載の方法。
【請求項１２】
第１の組の記憶素子（Ｃ）および第２の組の記憶素子（Ａ、Ｂ）と、
前記第１および第２の組の記憶素子と通信する少なくとも１つの制御回路（１２１０、１２５０）とを備える不揮発性記憶装置であって、
前記少なくとも１つの制御回路は、ａ）低速プログラミング記憶素子（６１０）と高速プログラミング記憶素子（６２０）を区別するためにオフセット（Δ＝ＶＶ−Ｃ−ＶＶ−ＣＬＬ）を差し引いた第１の検証レベル（ＶＶ−Ｃ）を用いて前記第１の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも前記第２の組の記憶素子のプログラミングをロックアウトし、ｂ）前記第１の検証レベル（ＶＶ−Ｃ）を用いて前記低速プログラミング記憶素子のプログラミングを継続し、かつ前記少なくとも第２の組の記憶素子をロックアウトし続ける一方で、前記高速プログラミング記憶素子をロックアウトし、ｃ）前記第１の検証レベルを用いて前記高速プログラミング記憶素子のプログラミングを再開し、かつ前記オフセットを差し引いた前記第１の検証レベルよりも小さい少なくとも第２の検証レベル（ＶＶ−Ｂ）を用いて前記少なくとも第２の組の記憶素子をプログラムする一方で、前記低速プログラミング記憶素子をロックアウトする、不揮発性記憶装置。
【請求項１３】
前記オフセットを差し引いた前記第１の検証レベルを用いて前記第１の組の記憶素子に対して前記プログラミング動作を実行する前に、前記少なくとも１つの制御回路は、ａ）に先立って第１のステップサイズ（ΔＶ１）だけ増加されるプログラムパルスを印加することを含むプログラミング動作を、前記第１および第２の組の記憶素子に対して実行し、
前記高速プログラミング記憶素子のロックアウトはより高い第２のステップサイズ（ΔＶ５）だけ増加されるプログラムパルスを印加することを含む、請求項１２に記載の不揮発性記憶装置。
【請求項１４】
前記オフセットを差し引いた前記第１の検証レベルを用いて前記第１の組の記憶素子に対して前記プログラミング動作を実行するために、前記少なくとも１つの制御回路は第１のステップサイズ（ΔＶ３）だけ増加される第１の組のプログラムパルスを印加し、
前記高速プログラミング記憶素子をロックアウトするために、前記少なくとも１つの制御回路は第２の組のプログラムパルスを印加し、
前記第２の組の最初のプログラムパルスは前記第１の組のプログラムパルスの最後のプログラムパルスから前記第１のステップサイズよりも大きいステップサイズ（ΔＶ４）だけ増加される、請求項１３に記載の不揮発性記憶装置。
【請求項１５】
前記第２の組の前記最初のプログラムパルスは、前記第１の組のプログラムパルスの最後のプログラムパルスから前記オフセットだけ増加される、請求項１４に記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再書込み可能型読取専用メモリ（ＥＥＰＲＯＭ）とフラッシュメモリは、最も普及している不揮発性半導体メモリである。フラッシュメモリに関しては、ある種のＥＥＰＲＯＭもそうであるが、通常のフル装備のＥＥＰＲＯＭとは異なり、全メモリアレイまたは一部分のメモリの内容は、１ステップで消去することができる。
【０００３】
通常のＥＥＰＲＯＭとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。形成されているトランジスタの閾値電圧（ＶＴＨ）は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００４】
ある種のＥＥＰＲＯＭとフラッシュメモリデバイスは、２つの電荷量範囲を蓄えるために使われるフローティングゲートを備えており、それゆえ、その記憶素子は、２つの状態、即ち、消去状態とプログラムされた状態、の間でプログラム／消去が行われることができる。そのようなフラッシュメモリデバイスは、各記憶素子が１ビットデータを記憶することができるので、バイナリフラッシュメモリデバイスと呼ばれることがある。
【０００５】
マルチステート（マルチレベルとも呼ばれる）フラッシュメモリデバイスは、複数の区別された許可された／有効なプログラム済閾値電圧範囲を特定することによって実現される。夫々の区別された閾値電圧範囲は、メモリデバイス内で符号化される一組のデータビットに対する予め決められた値に対応する。例えば、各記憶素子は、４個の区別された閾値電圧範囲に対応する４個の区別された電荷バンドの中の一つの状態に置かれることによって、２ビットデータを記憶することができる。
【０００６】
通常、プログラム動作において制御ゲートに印加されるプログラム電圧ＶＰＧＭは、時間の経過に伴って大きさが増大する一連のパルスとして印加される。一つのアプローチとしては、パルスの大きさは、連続するパルスの１つ毎に、例えば０．２−０．４Ｖの既定のステップサイズずつ増加する。ＶＰＧＭは、フラッシュメモリ素子の制御ゲートに印加される。プログラムパルスの間の期間に検証動作が実行される。即ち、並列にプログラムされている素子グループの各素子のプログラムレベルは、連続するパルスの間に読み出され、素子がプログラムされている検証レベルと等しいか或いはそれ以上であるか否かが判定される。マルチステートフラッシュメモリ素子のアレイでは、素子の状態毎に検証ステップが実行され、データに対応する検証レベルにその素子が達したか否かが判定される。例えば、４つの状態のいずれかにデータを記憶可能なマルチステート記憶素子では、３つの比較点での検証動作が必要とされる。
【０００７】
さらに、ＥＥＰＲＯＭ、或いは、ＮＡＮＤフラッシュメモリデバイスのようなフラッシュメモリデバイスのＮＡＮＤストリングをプログラミングする場合、通常、制御ゲートにＶＰＧＭが印加されるとともにビットラインが接地され、それによって、セル、或いはメモリ素子、即ち記憶素子のチャネルからフローティングゲートへ電子が注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリ素子の閾値電圧が上昇し、メモリ素子がプログラムされた状態となる。そのようなプログラミングに関するさらなる情報は、米国特許第６，８５９，３９７号、及び、米国特許第６，９１７，５４２号に開示されており、両者の文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、プログラム障害は、依然として解決の難しい問題の１つである。プログラム障害は、他のＮＡＮＤストリングのプログラミング中に禁止されたＮＡＮＤストリングにおいて、また時にはプログラムされたＮＡＮＤストリング自体において発生する。プログラム障害は、非選択の不揮発性記憶素子の閾値電圧が他の不揮発性記憶素子のプログラミングによってシフトされるときに発生する。プログラム障害は、まだプログラムされていない消去済みの記憶素子だけでなく既にプログラム済みの記憶素子においても発生する可能性がある。マルチパスプログラミング技術は、記憶素子を徐々にプログラムすることによってプログラム障害を低減することができる。しかしながら、プログラミング時間が長くなる。
【課題を解決するための手段】
【０００９】
本発明は、不揮発性記憶システムにおけるプログラム障害を低減すると同時にプログラミング時間も短縮するプログラミング技術を提供することによって上記およびその他の問題に対処する。
【００１０】
一実施形態では、不揮発性記憶装置を動作させる方法は、低速プログラミング記憶素子と高速プログラミング記憶素子を区別するためにオフセットを差し引いた第１の検証レベルを用いて第１の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも第２の組の記憶素子をプログラミングすることからロックアウトするステップを含む。この方法は、さらに、高速プログラミング記憶素子をロックアウトする一方で、第１の検証レベルを用いて低速プログラミング記憶素子のプログラミングを継続し、かつ少なくとも第２の組の記憶素子をロックアウトし続けるステップを含む。この方法は、さらに、低速プログラミング記憶素子をロックアウトする一方で、第１の検証レベルを用いて高速プログラミング記憶素子のプログラミングを再開し、かつオフセットを差し引いた第１の検証レベルよりも小さい少なくとも第２の検証レベルを用いて少なくとも第２の組の記憶素子をプログラムするステップを含む。
【００１１】
別の実施形態では、不揮発性記憶装置を動作させる方法は、第１の検証レベルに関連付けられる第１のデータ状態にプログラムすることが目的とされる記憶素子をプログラムする一方で、第１の検証レベル以下であるそれぞれ第２および第３の検証レベルに関連付けられる少なくとも第２および第３のデータ状態にプログラムすることが目的とされる他の記憶素子のプログラミングをロックアウトするステップを含む。この方法は、さらに、プログラミング中に、第１のデータ状態にプログラムすることが目的とされる記憶素子の中で低速プログラミング記憶素子と高速プログラミング記憶素子を区別し、高速プログラミング記憶素子をロックアウトする一方で、低速プログラミング記憶素子のプログラミングを継続するステップを含む。方法は、さらに、少なくとも第２の組の記憶素子を少なくとも第２および第３のデータ状態に続いてプログラムする一方で、第１のデータ状態への高速プログラミング記憶素子のプログラミングを再開し、高速プログラミング記憶素子のプログラミング再開に関するプログラミング条件とは異なる低速プログラミング記憶素子のプログラミングを継続するためのプログラミング条件を適用するステップを含む。
【００１２】
別の実施形態では、不揮発性記憶装置を動作させる方法は、ａ）第１の検証レベルに関係付けられる第１のデータ状態にプログラムすることが目的とされる記憶素子をプログラムする一方で、第１の検証レベル以下であるそれぞれ第２および第３の検証レベルに関連付けられる少なくとも第２および第３のデータ状態にプログラムすることが目的とされる他の記憶素子のプログラミングをロックアウトするステップを含む。方法は、さらに、ｂ）少なくとも第２の組の記憶素子を続いてプログラムするステップを含み、ステップａ）ではステップｂ）のプログラミング条件とは異なるプログラミング条件を使用する。
【００１３】
別の実施形態では、不揮発性記憶システムは、第１の組の記憶素子と、第１の組の記憶素子と通信する少なくとも１つの制御回路とを含む。少なくとも１つの制御回路は、（ａ）低速プログラミング記憶素子と高速プログラミング記憶素子を区別するためにオフセットを差し引いた第１の検証レベルを用いて第１の組の記憶素子に対してプログラミング動作を実行する一方で、少なくとも第２の組の記憶素子のプログラミングをロックアウトし、（ｂ）第１の検証レベルを用いて低速プログラミング記憶素子のプログラミングを継続し、かつ少なくとも第２の組の記憶素子をロックアウトし続ける一方で、高速プログラミング記憶素子をロックアウトし、（ｃ）第１の検証レベルを用いて高速プログラミング記憶素子のプログラミングを再開し、かつオフセットを差し引いた第１の検証レベルよりも小さい少なくとも第２の検証レベルを用いて少なくとも第２の組の記憶素子をプログラムする一方で、低速プログラミング記憶素子をロックアウトする。
【００１４】
本明細書に記載される方法を実施するための対応する方法、システム、およびコンピュータ可読記憶デバイスまたはプロセッサ可読記憶デバイスが提供されてもよい。
【図面の簡単な説明】
【００１５】
【図１】ＮＡＮＤストリングの平面図である。
【図２】図１のＮＡＮＤストリングの等価回路図である。
【図３】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図４】基板上に形成されたＮＡＮＤストリングの断面図である。
【図５ａ】最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図５ｂ】最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図５ｃ】最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図５ｄ】最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図５ｅ】最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ａ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｂ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｃ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｄ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｅ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｆ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図６ｇ】最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す図である。
【図７ａ】図５ａ〜５ｄに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。
【図７ｂ】図５ｅに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。
【図７ｃ】図６ａ〜６ｄに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。
【図７ｄ】図６ｅおよび６ｆに対応するプログラミングシーケンスにおけるプログラム電圧および検証電圧を示す図である。
【図８ａ】図６ａ〜６ｇに対応するプログラミング処理を説明する図である。
【図８ｂ】図６ａ〜６ｇに対応するプログラミング処理を説明する図である。
【図９ａ】異なるプログラミング状態が各パスにおいて使用されるマルチパスプログラミング処理を説明する図である。
【図９ｂ】高い状態のセルが低い状態のセルの前にプログラムされるマルチパスプログラミング処理を説明する図である。
【図１０】３つの異なるプログラミング技術に対するプログラムパルス番号と検証レベルの表である。
【図１１】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図１２】シングル行／列デコーダと読み出し／書き込み回路を使った不揮発性記憶システムのブロック図である。
【図１３】デュアル行／列デコーダと読み出し／書き込み回路を使った不揮発性記憶システムのブロック図である。
【図１４】検出ブロックの一実施形態のブロック図である。
【図１５】全ビットラインメモリアーキテクチャまたは奇数偶数メモリアーキテクチャのためのブロックへのメモリアレイの編成の一例を示す図である。
【図１６】閾値電圧区分の組とワンパスプログラミングの一例を示す図である。
【図１７】閾値電圧区分の組とツーパスプログラミングの一例を示す図である。
【図１８ａ】種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。
【図１８ｂ】種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。
【図１８ｃ】種々の閾値電圧区分、及び、不揮発性メモリをプログラミングする処理を説明する図である。
【発明を実施するための形態】
【００１６】
本発明は、不揮発性記憶システムにおけるプログラム障害を低減すると同時にプログラミング時間も短縮するプログラミング技術を提供する。
【００１７】
本発明を実装するのに好適なメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を利用するものであり、２つの選択ゲートの間に複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は、１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１選択ゲート１２０と第２選択ゲート１２２の間に挟まれている、直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ＮＡＮＤストリングのビットライン１２６への接続を開閉する。選択ゲート１２２は、ＮＡＮＤストリングのソースライン１２８への接続を開閉する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧を加えることによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧を加えることによって制御される。トランジスタ１００、１０２、１０４、及び１０６の夫々は、制御ゲートとフローティングゲートを有している。トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを備えている。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを備えている。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを備えている。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを備えている。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており（又はワードラインＷＬ３であり）、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。制御ゲートは、また、ワードラインの一部として提供される。一実施形態では、トランジスタ１００、１０２、１０４、及び、１０６は、夫々が記憶素子であり、メモリセルと呼ばれることがある。他の実施形態では、記憶素子は、複数のトランジスタを含むことがあり、図１や図２に示すものとは異なる場合がある。選択ゲート１２０は、選択ラインＳＧＤに接続されている。選択ゲート１２２は、選択ラインＳＧＳに接続されている。
【００１８】
図３は、３個のＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、いくつかのＮＡＮＤストリングを含む。例えば、３個のＮＡＮＤストリング、３２０、３４０及び３６０が、さらに多くのＮＡＮＤストリングを有するメモリアレイ内に示される。各ＮＡＮＤストリングは、２個の選択ゲートと４つの記憶素子を有している。簡単のために４個の記憶素子が描かれているが、最近のＮＡＮＤストリングは、例えば最高３２個又は６４個の記憶素子を有する場合がある。
【００１９】
例えば、ＮＡＮＤストリング３２０は選択ゲート３２２と３２７、及び、記憶素子３２３〜３２６を有し、ＮＡＮＤストリング３４０は選択ゲート３４２と３４７、及び、記憶素子３４３〜３４６を有し、ＮＡＮＤストリング３６０は選択ゲート３６２と３６７、及び、記憶素子３６３〜３６６を有する。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７、又は３６７）によってソースラインに接続されている。選択ラインＳＧＳは、ソース側選択ゲートを制御するために使用される。種々のＮＡＮＤストリング３２０、３４０、及び３６０は、選択ゲート３２２、３４２、３６２等の選択トランジスタによって各ビットライン３２１、３４１、及び、３６１に接続されている。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは必ずしもＮＡＮＤストリング間で共通とされている必要はない。すなわち、異なるＮＡＮＤストリングには異なる選択ラインを接続できる。ワードラインＷＬ３は、記憶素子３２３、３４３、及び、３６３のための制御ゲートに接続されている。ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４のための制御ゲートに接続されている。ワードラインＷＬ１は、記憶素子３２５、３４５、及び、３６５のための制御ゲートに接続されている。ワードラインＷＬ０は、記憶素子３２６、３４６、及び、３６６のための制御ゲートに接続されている。つまり、各ビットラインと各ＮＡＮＤストリングは記憶素子のアレイ又はセットの列を含む。ワードライン（ＷＬ３、ＷＬ２、ＷＬ１及びＷＬ０）は、アレイ又はセットの行を含む。各ワードラインは、行において各記憶素子の制御ゲートを接続している。また、制御ゲートはワードライン自体によって提供されてよい。例えば、ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４に制御ゲートを提供する。実際には、１つのワードラインに数千の記憶素子がある場合がある。
【００２０】
各記憶素子はデータを記憶できる。例えば、１ビットのデジタルデータを記憶するときは、記憶素子の可能な閾値電圧（ＶＴＨ）の範囲は、論理データ「１」と「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、前記ＶＴＨは、記憶素子が消去された後に負となり、論理「１」として定義される。プログラム動作後の前記ＶＴＨは正であり、論理「０」として定義される。ＶＴＨが負であり、読み出しが試行されると、記憶素子がオンして論理「１」が記憶されていることが示される。前記ＶＴＨが正であり、読み出し動作が試行されると、記憶素子はオンにならず、論理「０」が記憶されていることが示される。また、記憶素子は、例えば複数ビットのデジタルデータ等の複数のレベルの情報も記憶できる。このケースでは、ＶＴＨ値の範囲はデータレベルの数に分割される。例えば、４つのレベルの情報が記憶されている場合には、データ値「１１」、「１０」、「０１」、及び、「００」に割り当てられる４つのＶＴＨ範囲がある。ＮＡＮＤタイプのメモリの一例では、消去動作後の前記ＶＴＨは負となり、「１１」として定義される。正のＶＴＨ値は「１０」、「０１」及び「００」の状態のために使用される。記憶素子に書き込まれるデータと、素子の閾値電圧範囲との特定な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、米国特許第６，２２２，７６２号及び第７，２３７，０７４号は、マルチステートフラッシュ記憶素子のための多様なデータ符号化方式を説明しており、両出願の全体を参照することにより本明細書に組み込まれる。
【００２１】
ＮＡＮＤタイプのフラッシュメモリ及びその動作の関連性のある例は、それぞれが参照することにより本明細書に組み込まれる米国特許番号第５，３８６，４２２号、第５，５７０，３１５号、第５，７７４，３９７号、第６，０４６，９３５号、第６，４５６，５２８号、及び第６，５２２，５８０号に示されている。
【００２２】
フラッシュ記憶素子をプログラミングするときには、プログラム電圧が記憶素子の制御ゲートに印加されるとともに、記憶素子に接続されているビットラインが接地される。チャネルからの電子はフローティングゲートに注入される。電子がフローティングゲートに蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶＴＨが上昇する。プログラミング中の記憶素子の制御ゲートにプログラム電圧を印加するために、そのプログラム電圧は適切なワードライン上に印加される。上述したように、各ＮＡＮＤストリング中の１つの記憶素子が同じワードラインを共有している。例えば、図３の記憶素子３２４をプログラミングするときには、プログラム電圧は記憶素子３４４と３６４の制御ゲートにも印加される。
【００２３】
しかしながら、プログラム障害は、他のＮＡＮＤストリングのプログラミング中に禁止されたＮＡＮＤストリングにおいて、また時にはプログラムされたＮＡＮＤストリング自体において発生する可能性がある。プログラム障害は、選択されない不揮発性記憶素子の閾値電圧が他の不揮発性記憶素子のプログラミングが原因でシフトされるときに発生する。プログラム障害は、まだプログラムされていない消去済みの記憶素子だけでなく、過去にプログラムされた記憶素子でも発生する可能性がある。様々なプログラム障害メカニズムは、ＮＡＮＤフラッシュメモリなどの不揮発性記憶デバイスの利用可能な動作ウィンドウを制限する可能性がある。
【００２４】
たとえば、ＮＡＮＤストリング３２０が禁止されており（たとえば、これが現在プログラムされている記憶素子を含まない非選択のＮＡＮＤストリングである）、かつＮＡＮＤストリング３４０がプログラムされている（たとえば、これが現在プログラムされている記憶素子を含む選択済みのＮＡＮＤストリングである）場合、プログラム障害はＮＡＮＤストリング３２０で発生する可能性がある。たとえば、パス電圧ＶＰＡＳＳが低い場合、禁止されたＮＡＮＤストリングのチャネルは十分にブーストされず、非選択のＮＡＮＤストリングの選択ワードラインは不慮にプログラムされる可能性がある。別のありうる状況では、ブースト電圧はゲート誘導ドレインリーク（ＧＩＤＬ）などのリークメカニズムによって低下されて同じ問題を生じる可能性がある。後でプログラムされる他の隣接記憶素子との容量結合による電荷蓄積素子のＶＴＨのシフトなど、他の効果もプログラム障害の一因となりうる。
【００２５】
図４は、基板上に形成されたＮＡＮＤストリングの断面図を示す。図は簡略化されており、縮尺どおりではない。ＮＡＮＤストリング４００は、ソース側選択ゲート４０６と、ドレイン側選択ゲート４２４と、基板４９０上に形成される８個の記憶素子４０８、４１０、４１２、４１４、４１６、４１８、４２０及び４２２とを有する。複数のソース／ドレイン領域（その一例はソース／ドレイン領域４３０である）が、各記憶素子と選択ゲート４０６及び４２４の両側に形成されている。一つのアプローチでは、基板４９０は、３重ウェル技術を採用しており、ｐ型基板領域４９６の中にｎウェル領域４９４が形成されており、その中にｐウェル領域４９２が形成されている。ＮＡＮＤストリングとその不揮発性記憶素子は、少なくとも部分的には、ｐウェル領域上に形成されている。ビットライン４２６にはＶＢＬの電位が供給されるとともに、ソース供給ライン４０４にはＶＳＯＵＲＣＥの電位が供給される。ボディバイアス電圧のような電圧は、端子４０２を介してｐウェル領域４９２にも印加され、かつ／又は端子４０３を介してｎウェル領域４９４に印加される。
【００２６】
読み出し処理の間、記憶素子４１４に関係付けられた選択ワードライン（この例ではＷＬ３である）に制御ゲート電圧ＶＣＧＲが供給される。さらに、記憶素子の制御ゲートは、ワードラインの一部として提供され得ることに留意されたい。例えば、ＷＬ０、ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、ＷＬ５、ＷＬ６、及びＷＬ７は、それぞれ、記憶素子４０８、４１０、４１２、４１４、４１６、４１８、４２０、及び４２２の制御ゲートを通じて延設し得る。一つの可能なブースト方式では、ＮＡＮＤストリング４００に関係付けられた残りのワードラインにパス電圧ＶＲＥＡＤが印加される。いくつかのブースト方式では、異なるワードラインに異なるパス電圧が印加される。選択ゲート４０６と４２４には夫々、ＶＳＧＳとＶＳＧＤが印加される。
【００２７】
図５ａ〜５ｅは、最高の状態が低い状態の前にプログラムされるマルチパスプログラミング技術における記憶素子の閾値電圧を示す。逆のプログラムシーケンスは、障害および隣接セルの干渉効果の影響を低減することができる。このようなプログラミング技術の一例は、「Ｃ−ファースト（Ｃ−ｆｉｒｓｔ）」と呼ばれ、状態Ｃが４データ状態のマルチレベルの実行における最高の状態を表わす。この技術は、８、１６、またはその他の状態数に拡張することができる。このような技術は、低い状態のセルをそれらの目的とする状態にプログラムする前に最高の状態のセルすべてをそれらの目的とする状態にプログラムすることを要する。典型的に、２つまたはそれ以上のパスが実行され、一連のプログラムパルスが各プログラミングパスにおいて繰り返される。たとえば、ステップ状に増加する一連のプログラムパルスが各パスにおいて印加されてもよい。
【００２８】
図５ａは、消去動作後の一組の記憶素子の閾値電圧区分を示す。ｘ軸は、４つの異なる状態、すなわち、消去状態（Ｅ）、状態Ａ、状態Ｂ、および状態Ｃの閾値電圧（ＶＴＨ）を示す。ｙ軸は、各状態におけるセルまたは記憶素子の数を示す。また、各状態対する電圧検証レベル、すなわち、それぞれ状態Ａ、Ｂ、およびＣに対する、ＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃが示される。図面は、必ずしも一定の縮尺で描かれていないが、消去済み状態区分の比較的高い振幅はセルのすべてがその状態にあることを示すように意図されている。状態Ａ、Ｂ、およびＣは、どのセルも現在それらの状態にないことを表現するために破線を用いて示される。図５ａは、Ｅ、Ａ、Ｂ、およびセルＣが消去状態にあることを示す。「セルＡ」、「セルＢ」、または「セルＣ」などの用語は、プログラミングの終了時の最終状態として、それぞれ、状態Ａ、Ｂ、またはＣにプログラムされることになっているセルを指すことが意図されている。
【００２９】
第１プログラミングパスの第１の部分が図５ｂ〜５ｄに示されている。図５ｂでは、セルＢおよびＣは、消去状態から「状態ＬＭ」（たとえば、下位−中間）と呼ばれる中間状態または一時的な状態にプログラムされる。状態ＬＭおよび他の状態の閾値電圧区分は、一般に、オーバーシュートおよびプログラミング精度の他の限界に起因する広がりを有することになる。セルＥおよびＡは消去状態のままである。このプログラミングパスでは、たとえば、初期のパルスレベルで始まり最終パルスレベルまでステップ状に進む一連のプログラムパルスが印加される。たとえば、第１プログラミングパスにおけるプログラム電圧および検証電圧を示す図７ａを参照されたい。ｘ軸は時間を示し、ｙ軸は電圧を示す。プログラムパルスは、ステップ状に上昇し、振幅が検証パルスよりも高い。第１プログラミングパスの第１の部分では、セルがＶＶ−ＬＭと対照して検証される（この表記法では、大文字Ｖは電圧を表わし、下付き文字Ｖ−ＬＭは「検証」および「状態ＬＭ」を表わす）。プログラムされたセルは、それらのＶＴＨがＶＶ−ＬＭに達していることが検証されると以後のプログラミングからロックアウトされる。図７ａの例では、すべてのセルＢおよびＣが１１番目のプログラムパルスの後に状態ＬＭに達している。
【００３０】
この時点で、第１プログラミングパスの第２の部分が始まる。図５ｃに示されるように、セルＣ、たとえば、最高の状態のセルのみがプログラムされる。セルＣは、状態ＬＭからプログラムされて、ＶＶ−Ｃと対照して検証される。状態ＬＭにおける振幅の低下は、状態ＬＭにあるセルが比較的少ないことを示すことを意味している。すなわち、セルＣが比較的高位にプログラムされるときセルＢは状態ＬＭのままである。一部のセルは比較的迅速にプログラムされるが、他のセルは、たとえば、セルの種々の特性、メモリデバイス内のセルの相対位置、およびその他の要因に起因して、比較的緩やかにプログラムされる。結果として、プログラミング中に、セルＣは、最初は比較的広い閾値電圧区分５１０に広がることになる。第１プログラミングパスの第２の部分のプログラミングが進むにつれて、セルＣは図５ｄに示されるように状態Ｃ区分５２０にプログラムされることになる。
【００３１】
第２プログラミングパスでは、一連のプログラムパルスが、たとえば、図５ｅおよび図７ｂに示されるように、選択ワードラインを介してプログラムされるセルに再び印加される。セルＡは消去状態から状態Ａにプログラムされる一方、セルＢは状態ＬＭから状態Ｂにプログラムされる。一つのアプローチでは、最初の６つの各プログラムパルスの後では検証がセルＡのみに対して実行され、次の７つの各プログラムパルスの後では検証がセルＡおよびＢに対して実行され、残る各プログラムパルスの後では検証がセルＢのみに対して実行される。この例では、プログラムパルスの総数が２２である。プログラミングが終了すると、図６ｆの閾値電圧区分が実現される。
【００３２】
上記のアプローチは、図７ａおよび７ｂで示される独立したパスで一連のプログラムパルス全体を繰り返す必要があり、これは図１６に関連して以下で議論されるように、たとえば、１パスプログラミング技術に比べて余分な時間がかかる。一方、プログラム障害および隣接セルの干渉効果の影響は低減される。これらの利益を維持する一方でプログラミング時間を短縮することは望ましいことになる。
【００３３】
一つのアプローチは、ここでさらに詳しく説明されるように、反復プログラムパルスの多くをスキップしてプログラム時間を短縮する一方で、マルチパスプログラミング技術の主要な利益を維持することを含む。
【００３４】
図６ａ〜６ｇは、最高の状態が低い状態の前にプログラムされる修正されたマルチパスプログラミング技術における記憶素子の閾値電圧を示す。この提案では、前述のＣ−ファーストシーケンスが以下のように修正される。第１プログラミングパスでは、セルが状態ＬＭにプログラムされた後、セルＣを最終状態に向けてプログラムするために初期パルス（又は一連のパルス）が印加される。高いＶＴＨを有する高速セルは、ＶＶ−ＣＬＬ検証レベルを用いて識別され、一時的にロックアウトされる。次のプログラムパルス（ＶＰＧＭ）は、ロックアウトされなかった低速セルＣをプログラムするのに適する大きい量だけ増加される。ＶＰＧＭを大量に増加することによって、パルスをスキップして時間を節約することができる。この後、低速セルＣのプログラミングは、最高のＶＰＧＭが印加されるまで続く。第２プログラミングパスでは、一時的にロックアウトされた高速セルＣが選択された母集団に戻される。ＶＰＧＭは、初期値に戻され、最後のプログラムパルスによって再び増加され、セルＡ、セルＢ、および高速セルＣを同時にプログラムする。高速セルＣは、このシーケンスの中で迅速にプログラムすることができ、それゆえ、余分な時間を必要としない。具体的な実行では、本発明者らはＣ−ファースト（または、最終状態ファースト（ｌａｓｔ−ｓｔａｔｅ−ｆｉｒｓｔ））プログラミングを使用する。この技術は、４つよりも少ないかあるいは多いプログラミング状態を使用する方式に適合させることができる。さらに、高速−低速の違い（ｆａｓｔ−ｓｌｏｗ  ｄｉｓｔｉｎｃｔｉｏｎ）は１つまたは複数の高い状態に役立てることができる。
【００３５】
図６ａは、すべてのセルが消去状態にある開始閾値電圧区分を示す。さらに、図７ｃを参照すると、これは図６ａ〜６ｄに対応するプログラミング技術におけるプログラム電圧および検証電圧を示す。第１プログラミングパスの第１段階では、すべてのセルＢおよびセルＣは、ＶＶ−ＬＭの検証レベルを用いて消去状態から状態ＬＭにプログラムされ、図６ｂの閾値電圧区分をもたらす。この段階では、一つの可能なアプローチでは、最小レベルで始まるプログラム電圧が印加され、各パルスはステップサイズΔＶ１だけ増加される。一つの可能な実施例では、１１のプログラムパルスがこの段階で印加される。提供される数値例は具体的なアプリケーションを最適化するように調整することができることを理解されたい。一般に、プログラミングおよび検証中に使用されるすべての電圧レベルおよびその他のパラメータは、具体的なアプリケーションに合わせて最適化することができる。これは、初期および最終プログラムパルスレベル、様々なステップサイズおよび増分、各段階におけるプログラムパルスの数、ならびに検証レベルを含む。
【００３６】
第１プログラミングパスの第２段階では、高速セルＣを低速セルＣから分離するために閾値電圧検出が実行される。その結果、高速および低速メモリセルは、識別またはグループ化される。セルＣは、図６ｃに示されるように、状態ＬＭから値ＶＣ１とＶＣ２の間の閾値電圧の範囲にプログラムされる。図７ｃに示されるように、段階２における初期のプログラムパルスはΔＶ２だけステップアップされ、段階２における各後続のプログラムパルスはΔＶ３だけ増加される。たとえば、プログラミングがセルＣに対して迅速に進むようにΔＶ２およびΔＶ３はΔＶ１よりも大きくてよい。また、第２段階中に、高速および低速プログラミングセルＣを決定することができるように、セルＣは新たな検証レベルＶＶ−ＣＬＬと対照して検証される。（なお、ＶＶ−ＣＬＬと対照的に、図６ｇに関連して以下で議論されるＶＶ−ＣＬは、状態Ｃに対する雑モード（ｃｏａｒｓｅ  ｍｏｄｅ）の検証レベルを示す）。ＶＶ−ＣＬＬは、オフセットΔを差し引いたＶＶ−Ｃに等しく、具体的なアプリケーションに合わせて最適化することができる。実施例では、３つのプログラムパルスが段階２において使用されるが、メモリデバイスの特性評価に応じて１つまたは複数のプログラムパルスが使用されてもよい。使用されるプログラムパルスの数は、低速プログラミングセルと高速プログラミングセルを区別できる閾値電圧区分にセルＣをプログラムするのに十分であるべきである。
【００３７】
あるいは、段階３を終了する判断は、ＶＴＨ＞ＶＶ−ＣＬＬである、ワードラインまたはブロックなどにおける一組のセルＣ内のセルＣの数またはセルＣの一部分に応じて「個別に」適応決定することができる。たとえば、段階２は、第１のセルＣがＶＴＨ＞ＶＶ−ＣＬＬに達すると終了することができる。また、所定数または所定部分のセルがＶＴＨ＞ＶＶ−ＣＬＬに達した後のある一定数の追加プログラムパルスの後で段階２を終了することが可能である。
【００３８】
段階２が終了した後、低速セルＣの閾値電圧はＶＣ１とＶＶ−ＣＬＬの間の範囲６１０にあり、高速セルＣの閾値電圧はＶＶ−ＣＬＬとＶＣ２の間の範囲６２０にあるであろう。なお、この例は、低速および高速セルＣの区分が、それぞれ、約５０％および５０％であることを示す。しかしながら、高速セルＣおよび低速セルＣの数が等しい必要はない。さらに、閾値電圧区分の範囲に関して、例は、ＶＣ１における区分の低端が区分ＬＭの範囲に入ることを示す。しかしながら、これは、ＶＣ１における区分の低端が区分ＬＭの上の方にあってもよいので必要でない。さらに、ＶＣ２におけるセルＣ区分の高端は、最終状態Ｃ区分の高端にあるものとして示されているが、低い方にあってもよい。
【００３９】
図６ｄに示されるように、段階２の後、第１プログラミングパスの第３段階が起こり、段階２で識別された高速セルＣはプログラミングから一時的にロックアウトされ、低速セルＣのプログラミングが継続される。この例では、段階３は、ＶＶ−Ｃレベルにおいて４つの追加プログラムパルスおよび検証を含む。ここでは、プログラムパルスシーケンスにおいて先にスキップすることが可能であり、したがって、大幅にステップアップされたプログラムパルスが段階３の開始時に印加される。プログラムパルスをスキップすることによって、本発明者らはこれらのスキップされたパルスに対応する時間を節約している。たとえば、図７ａのアプローチと比較すると、パルス１５〜１８は、図７ｃにおける段階３の最初のプログラムパルス（１５番目のパルス全体）が図７ａの１９番目のプログラムパルスと同じレベルであるようにスキップされてもよい。この後、図７ｃにおける段階３の２番目〜４番目のプログラムパルスは、一つの可能なアプローチにおいて、図７ａのそれぞれ２０番目から２２番目のプログラムパルスと同じレベルであってもよい。それゆえ、図７ｃのプログラムシーケンス例では、２２のプログラムパルスを使用する図７ａのプログラムシーケンス例と対照的に１８のプログラムパルスを使用し、プログラム時間の大幅な節約をもたらす。
【００４０】
さらに、段階３の最初のプログラムパルスは段階２の最後のプログラムパルスをΔＶ４だけ超えてもよく、その一方、ΔＶ５のステップサイズは段階３における後続のパルスに使用される。一つのアプローチでは、ΔＶ４はΔＶ２およびΔＶ１よりも大きい。ΔＶ５は、ΔＶ１よりも大きくかつΔＶ３と同程度であってもよい。一つのアプローチでは、ΔＶ４はＶＶ−Ｃ−ＶＶ−ＣＬＬ、すなわち、状態Ｃ検証レベルと低い状態Ｃ検証レベルの差に等しいかほぼ等しい。一般に、低速セルがプログラムされていることは分かっているので、プログラムパルスレベルは前のパルスに比べて段階３で急激にステップアップすることができる。このようなセルは、比較的変化しにくく、したがって、それらの閾値電圧が目的とする最終状態に向って上昇し続けるように振幅が大きくおよび／または持続時間の長いプログラムパルスが選択ワードラインを介してセルの制御ゲートに印加される必要がある。それゆえ、別の態様は、段階３においてプログラムパルスレベルを上げることに加え、あるいはプログラムパルスレベルを上げることに代えて、プログラムパルスの持続時間を延長することを含む。
【００４１】
段階３の後、第１プログラミングパスが終了し、続いて第２のプログラムパスが実行される。それゆえ、第１プログラミングパスの後半部分では、最後の最高の状態の対象となるセルのみが選択される間に多数のプログラムパルスの印加を伴う。開始時および最後のＶＰＧＭ値は、増分およびステップサイズとともに、特性評価中に最適化されるべきパラメータである。
【００４２】
第２プログラミングパスは、図６ｅおよび６ｆと図７ｄに関連して説明される。図７ｄは、図６ｅおよび６ｆに対応するプログラミング技術におけるプログラム電圧および検証電圧を示す。図７ｄのプログラムパルスシーケンスは、一つの可能なアプローチでは、プログラムパルスが正規のステップで徐々に増加される通常のシーケンスである。
【００４３】
以前にロックアウトされた高速セルＣ（ＶＴＨ区分６３０で表わされる）はロックアウトが解除され、したがって、これらは図６ｅに示されるようにセルＡおよびセルＢとともにプログラムされる。セルＡは消去状態からプログラムされるが、セルＢは状態ＬＭからプログラムされる。図７ｄのプログラムパルスシーケンスでは、６つのプログラムパルスに及ぶ第４段階を定義することができ、この段階では初期パルスに続いてΔＶ１だけ増加されるパルスが印加され、セルＡの検証がＶＶ−Ａを用いて実行される。５つのプログラムパルスに及ぶ第５段階を定義することができ、この段階ではセルＡおよびセルＢの検証がそれぞれＶＶ−ＡおよびＶＶ−Ｂを用いて実行される。２つのプログラムパルスに及ぶ第６段階を定義することができ、この段階ではセルＡ、セルＢ、および高速セルＣの検証がそれぞれＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃを用いて実行される。６つのプログラムパルスに及ぶ第７段階を定義することができ、この段階ではセルＢおよび高速セルＣの検証がそれぞれＶＶ−ＢおよびＶＶ−Ｃを用いて実行される。この時点で、第２のプログラムパスおよびプログラミング動作全体が終了して図６ｆの閾値電圧分布をもたらす。
【００４４】
低速セルＣがなく、高速セルＣのみがプログラムを継続しているので、第２プログラミングパスは図７ｂのアプローチよりも早く終了するはずである。さらに、第２プログラミングパスは、図７ｃの第３段階の最初のプログラムパルスのレベルにあるプログラムパルスに達するおよその時刻、たとえば、図７ｄの１９番目のプログラムパルスまでに終了するはずである。それゆえ、第２プログラミングパスは図７ｂの２２のプログラムパルスではなく１９番目のプログラムパルスの後に終了してもよく、これによってプログラム時間が大幅に節約される。示される例では、第１および第２プログラミングパスでの時間の節約は全体で７つのプログラムパルスである。さらなる詳細については図１０を参照されたい。
【００４５】
オプションとして、本明細書に記載した技術は、図６ｇに示されるように、雑／ファインプログラミング処理を含むように修正することができる。雑／ファインプログラミングは、最初にセルが比較的迅速にプログラムされる雑モードで、セルのプログラミングに関与する。これは、たとえば、比較的大きいあるいは大胆なプログラムパルスのステップサイズまたはパルス持続時間を用いて実現されてもよい。セルが目的とする最後のプログラミング状態の検証レベル以下のレベル（それぞれ、状態Ａ、Ｂ、およびＣに対して雑モード検証レベルＶＶ−ＡＬ、ＶＶ−ＢＬ、およびＶＶ−ＣＬ）で検証されるとき、セルは、セルが比較的ゆっくりプログラムされるファインプログラミングモードに切り換えられる。これによって、オーバーシュートが抑制されるので、セルをより正確にプログラムすることができる。ファインプログラミングモードは、たとえば、ステップサイズ及び／またはパルス持続時間が比較的小さいプログラムパルスを印加し、及び/またはビットライン電圧を上昇させてプログラミング速度を遅くしてもよい。雑モードで達する閾値電圧区分は、それぞれＡ、Ｂ、およびＣと標記されるファインモードで達する閾値電圧区分と区別するために、ＡＬ、ＢＬ、およびＣＬと標記される。状態ＬＭへのプログラミングは、状態ＬＭが中間状態であり、精度がさほど重要でないので雑／ファインプログラミングを採用する必要がない。
【００４６】
たとえば、低速セルＣが状態Ｃ（たとえば、図６ｄ）にプログラムされる第１プログラミングパスでは、低速セルＣは、ＶＶ−ＣＬで検証された後、ファインプログラミングに切り換えられ、ＶＶ−Ｃの最終検証レベルが引き続いて印加される。第２プログラミングパスでは、セルＡ、セルＢ、および高速セルＣは、最初、雑モードにおいてそれぞれＶＶ−ＡＬ、ＶＶ−ＢＬ、およびＶＶ−ＣＬで検証され、ファインモードにおいてそれぞれＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃで検証される。一つの態様では、雑／ファイン技術は、第２プログラミングパス中にプログラムされる高速セルＣのみに使用されるようにして、セルＣには限定的に使用されるようにしてもよい。雑／ファインプログラミング技術の例は、参照によって本明細書に組み込まれる米国特許第７，０８８，６２１明細書において議論されている。また、以下のパス「Ａ」およびパス「Ｂ」（たとえば、段階４〜７）に比べて「Ｃ−ファースト」パス（たとえば、段階３）に対するビットライン電圧またはパルス数を別々に最適化することも可能である。このような最適化は、プログラミング時間の増加を回避するために許容される最大数の「ファイン」パルスを設定することを含んでいてもよい。
【００４７】
さらに、他の修正形態が図７ａ〜７ｄに関連して議論される技術を含む前述の技術のいずれにも適用可能である。一つのアプローチでは、種々のプログラム条件がプログラミングパスの種々の段階または一部、および／または種々のプログラミングパスにおいて実行される。たとえば、第１および第２プログラミングパスは、性能、区分幅、およびプログラム障害特性などの目標に対して２つのパスを別々に最適化するために種々の掃引パラメータを有することができる。一例は、速度と区分幅の独立のトレードオフを有するように第１プログラミングパスと第２プログラミングパスの間に比較的大きいプログラムパルスステップサイズを使用することである。別の例は、２つのプログラミングパスに対して独立に適用されて最適化される種々のプログラム禁止パラメータを使用することである。たとえば、種々のチャネルブーストモードが第１および第２プログラミングパスにおける非選択ワードラインに印加される種々のパス電圧によって実行されてもよい。たとえば、種々のチャネルブーストモードについて参照によって本明細書に組み込まれる米国特許第６，８５９，３９７号明細書を参照されたい。また、プログラミング中に非選択ワードラインに印加されるパス電圧を示す図４も参照されたい。また、雑プログラミングモードに続くファインプログラミングモードにおいて種々の最大許容プログラムパルス数が使用されてもよい。また、ファインプログラミングモード中などに、種々のビットライン電圧が使用されてもよい。様々な他の態様が可能である。基本的に、プログラミングに影響を与えるように設定できるパラメータは、プログラミングパスの種々の段階または一部に対しておよび／またはプログラミング処理全体の種々のプログラミングパスにおいて最適化することができる。
【００４８】
図８ａおよび８ｂは、図６ａ〜６ｆに対応するプログラミング処理を表わす。議論される具体的な実施は、４つの状態を含む。しかしながら、他の実施も可能である。図８ａに示すように、ステップ８００で、プログラミングが始まる。ステップ８０２で、段階１（図７ｃも参照されたい）が始まり、セルＡは一時的にプログラミングからロックアウトされる。なお、消去状態を維持することが目的とされているセルは、プログラミング処理を通じてロックアウトされる。ステップ８０４は、最低ＶＰＧＭレベルで始まるプログラムパルスを印加することを含む。ステップ８０６は、ＶＶ−ＬＭで検証を実行して状態ＬＭに達するセルＢおよびセルＣ（ＶＴＨ＞ＶＶ−ＬＭであるセル）を一時的にロックアウトすることを含む。「ロックアウト」という用語は、関連ビットラインの電圧を上昇させるなどしてセルのさらなるプログラミングを防止する一方で、他のセルがプログラムされ続けることを指す。判断ステップ８０８は、すべてのセルＢおよびセルＣが状態ＬＭに対して検証されているかどうか、あるいは所定の数Ｎ１のプログラムパルスが印加されているかどうかを判定する。すべてのセルＢおよびセルＣが状態ＬＭまで検証されておらず、かつＮ１パルスが印加されていないと判定されると、ステップ８１０で次のプログラムパルスが印加され、前のパルスをΔＶ１だけ増加する。この後、処理はステップ８０６にループバックする。判断ステップ８０８ですべてのセルＢおよびセルＣが状態ＬＭまで検証されているか、またはＮ１パルスが印加されていると判定されると、ステップ８１２で第１プログラミングパスの段階２が始まる。ここで、セルＣを除くすべてのセルは、プログラミングから一時的にロックアウトされる（たとえば、セルＡおよびセルＢはロックアウトされる）。セルＣは第１の組の記憶素子と見なされてもよいが、セルＡおよびセルＢは、それぞれ、第２および第３の組の記憶素子である。ステップ８１４は、前のパルスからΔＶ１だけ増加されるプログラムパルスを印加することを含む。
【００４９】
ステップ８１６は、ＶＶ−ＣＬＬで検証を実行してＶＴＨ＞ＶＶ−ＣＬＬであるセルＣを一時的にロックアウトすることを含む。これらのロックアウトされたセルは高速セルＣである。判断ステップ８１８は、所定の数Ｎ２のプログラムパルスが印加されているかどうか、あるいは所定の数または部分Ｎ３のセルＣがＶＶ−ＣＬＬに達しているかどうかを判定する。別の態様は、所定の数または部分のセルＣがＶＶ−ＣＬＬに達しており、かつ所定の数のさらなるプログラムパルスが印加されているかどうかを判定することである。所定の数Ｎ２のプログラムパルスが印加されておらず、かつ所定の数または部分Ｎ３のセルＣがＶＶ−ＣＬＬに達してないと判定されると、ステップ８２０で、次のプログラムパルスが印加され、前のパルスをΔＶ３だけ増加する。この後、処理はステップ８１６にループバックする。判断ステップ８１８で所定の数Ｎ２のプログラムパルスが印加されているか、あるいは所定の数または部分Ｎ３のセルＣがＶＶ−ＣＬＬに達していると判定されると、ステップ８２２で、第１プログラミングパスの段階３が始まる。ここで、低速セルＣを除くすべてのセルは、プログラミングから一時的にロックアウトされる（たとえば、セルＡ、セルＢ、および高速セルＣはロックアウトされる）。ステップ８２４は、前のパルスからΔＶ４だけ増加されるプログラムパルスを印加することを含む。
【００５０】
ステップ８２６は、ＶＶ−Ｃで検証を実行してＶＴＨ＞ＶＶ−Ｃである低速セルＣを永久にロックアウトすることを含む。永久ロックアウトは、現在のプログラミング動作全体にわたるロックアウトを指す。判断ステップ８２８は、すべての低速セルＣが状態Ｃに達しているかどうか、あるいは所定の数Ｎ４のプログラムパルスが印加されているかどうかを判定する。なお、本明細書で言及されるプログラムパルスの数（たとえば、Ｎ１〜Ｎ８）は、現在の段階におけるプログラムパルスおよび／または現在のプログラミングパスにおけるプログラムパルスの総数によって表わすことができる。ステップ８２８ですべての低速セルＣが状態Ｃに達しておらず、かつ所定の数Ｎ４のプログラムパルスが印加されていないと判定されると、ステップ８３０で、次のプログラムパルスが印加され、前のパルスをΔＶ５だけ増加する。この後、処理はステップ８２６にループバックする。判断ステップ８２８ですべての低速セルＣが状態Ｃに達しているか、あるいは所定の数Ｎ４のプログラムパルスが印加されていると判定されると、ステップ８３２で、段階４および第２プログラミングパスが始まる。ここで、セルＡ、セルＢ、および高速セルＣは、プログラムできるようにそれらの一時的なロックアウトから解除される。処理は図８ｂに続く。
【００５１】
図８ｂでは、ステップ８４０は、最低ＶＰＧＭ、または他の初期ＶＰＧＭ値で再び始まるプログラムパルスを印加することを含む。ステップ８４２は、ＶＶ−Ａで検証を実行してＶＴＨ＞ＶＶ−ＡであるセルＡを永久にロックアウトすることを含む。判断ステップ８４４は、すべてのセルＡが状態Ａに達しているかどうか、あるいは所定の数Ｎ５のプログラムパルスが印加されているかどうかを判定する。ステップ８４４ですべてのセルＡが状態Ａに達しておらず、かつ所定の数Ｎ５のプログラムパルスが印加されていないと判定されると、ステップ８４６で次のプログラムパルスが印加され、一つの可能なアプローチでは、前のパルスをΔＶ１だけ増加する。この後、処理はステップ８４２にループバックする。ステップ８４４ですべてのセルＡが状態Ａに達しているか、あるいは所定の数Ｎ５のプログラムパルスが印加されていると判定されると、ステップ８４８で段階５が始まり、この場合、ステップ８５０で、ΔＶ１の増加を用いた次のプログラムパルスが印加される。ステップ８５２は、ＶＶ−ＡおよびＶＶ−Ｂで検証動作を実行してそれぞれＶＴＨ＞ＶＶ−ＡまたはＶＴＨ＞ＶＶ−ＢであるセルＡおよびセルＢを永久にロックアウトすることを含む。判断ステップ８５４は、すべてのセルＡおよびセルＢがそれぞれ状態Ａおよび状態Ｂに達しているかどうか、あるいは所定の数Ｎ６のプログラムパルスが印加されているかどうかを判定する。ステップ８５４ですべてのセルＡおよびセルＢがそれぞれ状態Ａおよび状態Ｂに達しておらず、かつ所定の数Ｎ６のプログラムパルスが印加されていないと判定されると、ステップ８５６で次のプログラムパルスが印加され、前のパルスをΔＶ１だけ増加する。この後、処理はステップ８５２にループバックする。ステップ８５４ですべてのセルＡおよびセルＢがそれぞれ状態Ａおよび状態Ｂに達しているか、あるいは所定の数Ｎ６のプログラムパルスが印加されていると判定されると、ステップ８５８で段階６が始まり、この場合、ステップ８６０で、ΔＶ１の増加を用いた次のプログラムパルスが印加される。
【００５２】
ステップ８６２は、ＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃで検証動作を実行してそれぞれの目的とする状態に達するセルＡ、セルＢ、およびセルＣ（たとえば、それぞれＶＴＨ＞ＶＶ−Ａ、ＶＴＨ＞ＶＶ−Ｂ、およびＶＴＨ＞ＶＶ−Ｃである）を永久にロックアウトすることを含む。判断ステップ８６４はすべてのセルＡ、セルＢ、およびセルＣが目的とする状態Ａ、Ｂ、またはＣに達しているかどうか、あるいは所定の数Ｎ７のプログラムパルスが印加されているかどうかを判定する。ステップ８６４ですべてのセルＡ、セルＢ、およびセルＣが目的とする状態Ａ、Ｂ、またはＣに達しておらず、かつ所定の数Ｎ７のプログラムパルスが印加されていないと判定されると、ステップ８６６で次のプログラムパルスが印加され、前のパルスをΔＶ１だけ増加する。この後、処理はステップ８６２にループバックする。ステップ８６４ですべてのセルＡ、セルＢ、およびセルＣが目的とする状態Ａ、Ｂ、またはＣに達しているか、あるいは所定の数Ｎ７のプログラムパルスが印加されていると判定されると、ステップ８６８で、段階７、すなわち第２プログラミングパスの最終段階が始まり、この場合、ステップ８７０で、ΔＶ１の増加を用いた次のプログラムパルスが印加される。ステップ８７２は、ＶＶ−ＢおよびＶＶ−Ｃで検証動作を実行してそれらの目的とする状態に達するセルＢおよびセルＣ（たとえば、それぞれＶＴＨ＞ＶＶ−ＢおよびＶＴＨ＞ＶＶ−Ｃである）を永久にロックアウトすることを含む。判断ステップ８７４はすべてのセルＢおよびセルＣがそれぞれ状態ＢおよびＣに達しているかどうか、あるいは所定の数Ｎ８のプログラムパルスが印加されているかどうかを判定する。判断ステップ８７４ですべてのセルＢおよびセルＣがそれぞれ状態ＢおよびＣに達しておらず、かつ所定の数Ｎ８のプログラムパルスが印加されていないと判定されると、ステップ８７６で次のプログラムパルスが印加され、前のパルスをΔＶ１だけ増加する。この後、処理はステップ８７２にループバックする。ステップ８７４ですべてのセルＢおよびセルＣがそれぞれ状態ＢおよびＣに達しているか、あるいは所定の数Ｎ８のプログラムパルスが印加されていると判定されると、ステップ８７８でプログラミングは終了する。
【００５３】
図９ａは、異なるプログラミング条件が各パスにおいて使用されるマルチパスプログラミング処理を表わす。前述のように、異なるプログラム条件をプログラミングパスの異なる段階または一部および／または種々のプログラミングパスにおいて実行することができる。このことによって、性能、区分幅、およびプログラム障害特性などの目標に対する２つのプログラミングパスまたはその一部を最適化することが可能になる。プログラミング条件の例として、プログラムパルスのステップサイズ、プログラムパルス持続時間、プログラム禁止パラメータ、チャネルブーストモード、パス電圧、ファインプログラミングモードにおけるプログラムパルスの最大許容数、およびファインプログラミングモード中などに使用されるビットライン電圧が挙げられる。ステップ９００は、第１プログラミングパスを開始することを含む。ステップ９０２は、第１プログラミング条件を実行することを含む。ステップ９０４は、セルＣをプログラムすることと高速セルＣをロックアウトすることとを含む。ステップ９０６は、低速セルＣをプログラムすることを含む。ステップ９０８は、第２プログラミングパスを開始することを含む。ステップ９１０は、第１プログラミング条件とは異なる第２プログラミング条件を実行することを含む。ステップ９１２は、セルＡ、セルＢ、および高速セルＣをプログラムすることを含む。
【００５４】
図９ｂは、高い状態のセルが低い状態のセルの前にプログラムされるマルチパスプログラミング処理を表わす。４つのデータ状態が使用され、状態Ｃが最高のデータ状態である実施例が提供されているが、他の実施が可能である。たとえば、８つまたは１６のデータ状態を使用することが可能である。さらに、１つよりも多くの高い状態に対して高速−低速技術を実施することも可能である。たとえば、８つのデータ状態の場合、２つの最高の状態が本明細書で議論される技術を最初に用いてプログラムされてもよい。このような場合、２つの最高の状態における高速セルおよび低速セルは、第１プログラミングパスにおいて決定され、高速セルは低速セルがプログラミングを終了する間にロックアウトされる。第２プログラミングパスでは、他のすべてのセルは、２つの最高の状態において高速セルとともに目的とするそれらの最終状態にプログラムされる。他の様々なアプローチも可能である。
【００５５】
ステップ９２０は、第１プログラミングパスを開始することを含む。ステップ９２２は、セルを中間状態（たとえば、状態ＬＭ）にプログラムすることを含む。ステップ９２４は、高い状態のセルをプログラムすることと高速の高い状態のセルが検出された後でこれらをロックアウトすることとを含む。ステップ９２６は、低速の高い状態のセルをプログラムすることを含む。ステップ９２８は、第２プログラミングパスを開始することを含む。ステップ９３０は、高速の高い状態のセルを含む、残りのセルをプログラムすることを含む。
【００５６】
図１０は、３つの異なるプログラミング技術に対するプログラムパルス番号と検証レベルの表を示す。ケース＃１は、図１６に関連して以下で議論されるような１パスプログラミング技術を指す。ケース＃２は、図７ａおよび図７ｂに関連して先に議論されたようなマルチパスプログラミング技術を指す。ケース＃３は、図７ｃおよび図７ｄに関連して先に議論されたようなマルチパスプログラミング技術を指す。一番左の列は、１〜２２の範囲のプログラムパルス番号を示す。検証レベルＡ、Ｂ、およびＣは、それぞれ、状態Ａ、Ｂ、およびＣに対するＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃを指す。さらに、雑／ファインプログラミングが採用されるとき、雑検証レベルＡ、ＢＬ、およびＣＬは、それぞれ、状態Ａ、Ｂ、およびＣに対するＶＶ−ＡＬ、ＶＶ−ＢＬ、およびＶＶ−ＣＬを指し（図６ｇ参照）、ＶＶ−Ａ、ＶＶ−Ｂ、およびＶＶ−Ｃはファイン検証レベルである。ＣＬＬは検証レベルＶＶ−ＣＬＬを示す。
【００５７】
ケース＃１は、ＶＶ−Ａおよび／またはＶＶ−ＡＬにおける１３の検証動作、ＶＶ−Ｂおよび／またはＶＶ−ＢＬにおける１３の検証動作、ならびにＶＶ−Ｃおよび／またはＶＶ−ＣＬにおける１１の検証動作の合計６３の検証動作を含む。さらに、２２のプログラムループ（たとえば、プログラムパルス）が適用される。それゆえ、合計８５の動作が実行される。ケース＃２は、ＶＶ−Ｃにおける１１の検証動作、ＶＶ−Ａおよび／またはＶＶ−ＡＬにおける１３の検証動作、ならびにＶＶ−Ｂおよび／またはＶＶ−ＢＬにおける１３の検証動作の合計６３の検証動作を含む。さらに、３０のプログラムパルス（全部で、２プログラミングパスにわたる）が印加される。それゆえ、合計９３の動作が実行される。ケース＃３は、ＶＶ−ＣＬＬにおける４つの検証動作、ＶＶ−Ａおよび／またはＶＶ−ＡＬにおける１３の検証動作、ＶＶ−Ｂおよび／またはＶＶ−ＢＬにおける１３の検証動作、ならびにＶＶ−ＣＬおよび／またはＶＶ−Ｃにおける８つの検証動作の合計６５の検証動作を含む。さらに、２４のプログラムパルス（全部で、２プログラミングパスにわたる）が印加される。それゆえ、合計８９の動作が実行される。それゆえ、ケース＃３では、ケース＃２と比べて、６つのプログラムパルスをさらに印加することに関わる時間が節約される。この節約は２つの検証動作がさらに必要となることによってわずかに相殺されるが、総合的な利益はなお有意である。実現される可能性のある時間の節約は、他のアプリケーションではさらに大きいかもしれない。
【００５８】
図１１は、図１および２に示したようなＮＡＮＤ記憶素子のアレイ１１００の一例を示している。各列に沿って、ビットライン１１０６はＮＡＮＤストリング１１５０のドレイン選択ゲートのドレイン端子１１２６に接続している。ＮＡＮＤストリングの各行に沿って、ソースライン１１０４はＮＡＮＤストリングのソース選択ゲートのすべてのソース端子１１２８に接続できる。メモリシステムの一部としてのＮＡＮＤアーキテクチャアレイ及びその動作の一例は、米国特許第５，５７０，３１５号、第５，７７４，３９７号、及び第６，０４６，９３５号に記載されている。
【００５９】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは基本プログラミング動作として一度に書き込まれる最小数の記憶素子を有することができる。一般に、記憶素子の１行に１ページ以上のデータを記憶する。１ページは１つ以上のセクタを記憶できる。１つのセクタは、ユーザデータとオーバヘッドデータを有する。オーバヘッドデータは一般に、そのセクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）を有する。制御部（後述）の一部は、データがアレイ内に書き込まれるときにＥＣＣを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにさえ記憶される。
【００６０】
ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４，１２８またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００６１】
一実施形態では、メモリ記憶素子は、十分な期間に亘ってｐ−ウェルが消去電圧（例えば２０Ｖ）に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。容量結合のために、未選択ワードライン、ビットライン、選択ライン、及び、ｃ−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、ファウラ−ノルドハイムトンネルメカニズムによってフローティングゲートの電子が基板側に放出されるにつれて選択された記憶素子のデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
【００６２】
図１２は、単一の行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。図は、本発明の一実施形態に従って記憶素子のページを同時に読み取り、プログラミングするための読み出し／書き込み回路を有するメモリ素子１２９６を示す。メモリ装置１２９６は、１つ以上のメモリダイ１２９８を有する。メモリダイ１２９８は、２次元のアレイの記憶素子１１００、制御回路１２１０、及び、読み出し／書き込み回路１２６５を有する。いくつかの実施形態では、記憶素子のアレイは３次元であり得る。メモリアレイ１１００は行デコーダ１２３０を介してワードラインによって、及び、列デコーダ１２６０を介してビットラインによってアドレスできる。読み出し／書き込み回路１２６５は複数の検出ブロック１２００を有しており、１ページの記憶素子を並列に読み出し又はプログラミングすることができる。一般に、制御部１２５０は、１つ以上のメモリダイ１２９８のように同じメモリ装置１２９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン１２２０を介してホストと制御部１２５０の間、及び、ライン１２１８を介して制御部と１つ以上のメモリダイ１２９８の間で送られる。
【００６３】
制御回路１２１０は、読み出し／書き込み回路１２６５と協調して、メモリアレイ１１００上でメモリ動作を実行する。制御回路１２１０は、ステートマシン１２１２、オンチップアドレスデコーダ部１２１４、及び、電力制御モジュール１２１６を有している。ステートマシン１２１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ１２１４は、ホスト又はメモリ制御部によって用いられるとともに、デコーダ１２３０及び１２６０によって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール１２１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００６４】
いくつかの実装形態では、図１２の構成要素のいくつかを結合することができる。多様な設計では、記憶素子アレイ１１００以外の構成要素の１つまたは複数を（単独でまたは組み合わせて）１つの管理回路と見なすことができる。例えば、一つ以上の管理回路は、制御回路１２１０、ステートマシン１２１２、デコーダ１２１４／１２６０、電力制御１２１６、検出ブロック１２００、読み出し／書き込み回路１２６５、制御部１２５０等の内の１つ、または組み合わせを有してよい。
【００６５】
図１３は、二重行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。ここでは、図１２に図示されるメモリ素子１２９６の別の配列が示される。多様な周辺回路によるメモリアレイ１１００に対するアクセスは、アレイの両側で対称様式に実現され、その結果各側のアクセスラインと回路網の密度は半分に低減される。従って、行デコーダは行デコーダ１２３０Ａと１２３０Ｂに分割され、列デコーダは列デコーダ１２６０Ａと１２６０Ｂに分割されている。同様に、読み出し／書き込み回路は、アレイ１１００の底部からビットラインに接続する読み出し／書き込み回路１２６５Ａと、アレイ１１００の上部からビットラインに接続する読み出し／書き込み回路１２６５Ｂに分割されている。この方法により、読み出し／書き込みモジュールの密度は本質的に二分の一に低減される。図１３の装置は、図１２の装置で上述したような制御部を有することもできる。
【００６６】
図１４は、検出ブロックの一実施形態を示すブロック図である。検証及び読み出しのような検出動作は検出ブロックを含む。個々の検出ブロック１２００は、検出モジュール１２８０と呼ばれるコア部と共通部１２９０とに分割される。一実施形態では、各ビットラインの別個の検出モジュール１２８０と、複数の検出モジュール１２８０の集合の１つの共通部１２９０があってもよい。一例では、検出ブロックは、１つの共通部１２９０と８つの検出モジュール１２８０を有することができる。グループ内の各検出モジュールは、データバス１２７２を介して関連する共通部と通信できる。さらなる詳細としては、米国特許出願公開第２００６／０１４０００７号を参照する。その全体は参照することにより本明細書に組み込まれる。
【００６７】
検出モジュール１２８０は検出回路１２７０を有しており、検出回路１２７０は接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。検出モジュール１２８０はさらにビットラインラッチ１２８２を有しており、ビットラインラッチ１２８２は接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ１２８２内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態（例えば、１．５〜３Ｖ）に設定する。
【００６８】
共通部１２９０は、プロセッサ１２９２、１セットのデータラッチ１２９４、及び１セットのデータラッチ１２９４とデータバス１２２０の間を接続するＩ／Ｏインタフェース１２９６を有する。プロセッサ１２９２は計算を実行する。例えば、その機能の１つは、検出された記憶素子内に記憶されているデータを判定し、判定したデータを１セットのデータラッチ内に記憶することである。１セットのデータラッチ１２９４は、読み出し動作中に、プロセッサ１２９２によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス１２２０から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムされる予定の書き込みデータを表す。Ｉ／Ｏインタフェース１２９６は、データラッチ１２９４とデータバス１２２０の間のインタフェースを提供する。
【００６９】
読み出し又は検出中には、システムの動作はステートマシン１２１２の制御下にあり、ステートマシン１２１２はアドレスされた記憶素子への異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール１２８０はこれらの電圧の１つに移動し、バス１２７２を介して検出モジュール１２８０からプロセッサ１２９２に出力が提供される。その時点で、プロセッサ１２９２は、検出モジュールの移動イベントと、ステートマシンから入力ライン１２９３を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ１２９４に記憶する。コア部の別の実施形態では、ビットラインラッチ１２８２は、検出モジュール１２８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方の機能を兼ねる。
【００７０】
当然のことながら、いくつかの実装形態では複数のプロセッサ１２９２を有することができる。一実施形態では、各プロセッサ１２９２は出力ライン（図示せず）を有し、各出力ラインは共にワイヤードＯＲ接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続する前に反転される。ワイヤードＯＲを受け取るステートマシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の迅速な決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理０がワイヤードＯＲラインに送られる（又はデータ１を反転させる）。全てのビットがデータ０を出力する（又はデータ１を反転させる）と、ステートマシンはプログラミング処理を終了することを認識する。各プロセッサが８つの検出モジュールと通信するので、ステートマシンはワイヤードＯＲラインを８回読み出す必要があるか、あるいは関連するビットラインの結果を蓄積するために論理がプロセッサ１２９２に追加され、ステートマシンがワイヤードＯＲラインを一度だけ読み出せば良いようにする。同様に、論理レベルを正しく選ぶことにより、グローバルステートマシンは、第１のビットがいつその状態を変更し、相応してアルゴリズムを変更するのかを検知できる。
【００７１】
プログラム又は検証中に、プログラムされるデータはデータバス１２２０から１組のデータラッチ１２９４内に記憶される。ステートマシンの制御下の書き込み動作は、アドレス指定される記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを有する。各プログラムパルスに続いてリードバック（検証）が実行され、記憶素子が所望のメモリ状態にプログラムされたかどうかを判定する。プロセッサ１２９２は、所望のメモリ状態に対するリードバックメモリ状態を監視する。その２つが一致する場合、プロセッサ１２９２はビットラインラッチ１２８２を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラムパルスがその制御ゲートに現れても、ビットラインに接続した記憶素子がさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ１２８２をロードし、検出回路が検証処理中に禁止値にそれを設定する。
【００７２】
データラッチスタック１２９４は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール１２８０毎に３つのデータラッチが存在する。いくつかの実装形態では、（必須ではないが）データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス１２２０のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを形成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、ｒ個の読み出し／書き込みモジュールのバンクを調整し、その組のデータラッチが読み出し／書き込みブロックの全体のシフトレジスタの一部であっても、その組のデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
【００７３】
不揮発性記憶装置の多様な実施形態の構造及び／または動作についての追加情報は、米国特許第７，１９６，９３１号、米国特許第７，０２３，７３６号、米国特許第７，０４６，５６８号、米国特許第７，１９６，９２８号、及び、米国特許第７，３２７，６１９号に記載されている。直前に示した特許文書の５つの全ては、その全体を参照することにより本明細書に組み込まれる。
【００７４】
図１５は、全ビットラインメモリアーキテクチャのために、又は、奇数−偶数メモリアーキテクチャのために、メモリアレイをブロックに編成する例を示す。メモリアレイ１５００の例示的な構造が説明される。一例として、１，０２４個のブロックに分割されるＮＡＮＤフラッシュＥＥＰＲＯＭが説明されている。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックに、ビットラインＢＬ０、ＢＬ１、・・・ＢＬ８５１１に対応する８，５１２の列が存在する。全ビットライン（ＡＢＬ）アーキテクチャ（アーキテクチャ１５１０）と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラミング動作中に同時に選択される。共通のワードラインに沿っており、任意のビットラインに接続される記憶素子は、同時にプログラミングされる。
【００７５】
示される例では、４個の記憶素子が直列に連結されてＮＡＮＤストリングを形成している。４個の記憶素子が各ＮＡＮＤストリングに含まれることが示されているが、４個より多く又は４個より少なくてもよい（例えば１６個、３２個、６４個、その他の数）ＮＡＮＤストリングの１つの端子は、（選択ゲートドレインラインＳＧＤに接続される）ドレイン選択ゲートを介して対応するビットラインに接続され、別の端子が（選択ゲートソースラインＳＧＳに接続される）ソース選択ゲートを介してｃ−ソースに接続される。
【００７６】
奇数−偶数アーキテクチャ（アーキテクチャ１５００）と呼ばれる他の実施形態では、ビットラインは偶数ビットライン（ＢＬｅ）と奇数ビットライン（ＢＬｏ）に分割される。この奇数−偶数アーキテクチャでは、共通ワードラインに沿っており、奇数ビットラインに接続されている記憶素子群は同時にプログラミングされ、共通ワードラインに沿っており、偶数ビットラインに接続されている記憶素子群は別のタイミングで同時にプログラミングされる。この例では、各ブロックに、偶数列と奇数列に分割される８，５１２の列がある。この例では、４個の記憶素子が直列にＮＡＮＤストリングに接続されている。各ＮＡＮＤストリングに４個の記憶素子が含まれることが示されているが、４個より多くの又は４個より少ない記憶素子が用いられることも可能である。
【００７７】
読み出し動作及びプログラミング動作の１つの構成の間に、４，２５６個の記憶素子が同時に選択される。選択された記憶素子は、同じワードラインと同じ種類のビットライン（例えば、偶数又は奇数）を有する。従って、１論理ページを形成する５３２バイトのデータを同時に読み出し、あるいは、プログラミングすることが可能であり、１ブロックのメモリが少なくとも８論理ページ（それぞれ奇数ページと偶数ページがある４ワードライン）を記憶できる。４個のマルチステート記憶素子の場合、各記憶素子が２ビットのデータを記憶し、これらの２ビットのそれぞれが別のページに記憶されると、１ブロックは１６の論理ページを記憶する。他のサイズのブロック及びページを使用することも可能である。
【００７８】
ＡＢＬアーキテクチャ又は奇数−偶数アーキテクチャの何れかの場合は、ｐ−ウェルを消去電圧（例えば２０Ｖ）に上昇させ、選択されたブロックのワードラインを接地することによって、記憶素子を消去できる。ソースライン及びビットラインはフローティングされる。消去は、メモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行できる。電子は、記憶素子のフローティングゲートからｐ−ウェル領域に移され、記憶素子のＶＴＨが負となる。
【００７９】
読み出し動作及び検証動作では、選択ゲート（ＳＧＤとＳＧＳ）が２．５〜４．５Ｖの範囲の電圧に接続され、未選択ワードライン（例えば、ＷＬ２が選択されたワードラインであるときにＷＬ０、ＷＬ１、及び、ＷＬ３）は読み出しパス電圧ＶＲＥＡＤ（通常、４．５〜６Ｖの範囲の電圧）に上昇され、トランジスタをパスゲートとして動作させる。選択されたワードラインＷＬ２は所定の電圧に接続され、その電圧のレベルは、関係する記憶素子のＶＴＨがこのようなレベルを超えているのか、あるいは、下回っているのかを決定するために、読み出し動作及び検証動作ごとに指定される。例えば、２レベルの記憶素子のための読み出し動作では、選択されたワードラインＷＬ２が接地されて、ＶＴＨが０Ｖより高いか否かが検出される。２レベル記憶素子の検証動作では、選択されたワードラインＷＬ２が例えば０．８Ｖに接続されて、ＶＴＨが少なくとも０．８Ｖに到達したか否かが検証される。ソース及びｐ−ウェルは０Ｖにある。偶数ビットライン（ＢＬｅ）であると仮定される選択されたビットラインは、例えば０．７Ｖのレベルに事前に充電（プリチャージ）される。ＶＴＨがワードライン上の読み出しレベル又は検証レベルより高い場合は、対象の記憶素子と関連するビットライン（ＢＬｅ）の電位レベルは、非導電性記憶素子のために高いレベルに維持される。他方、ＶＴＨが読み出しレベル又は検証レベルより低い場合は、導電性記憶素子がビットラインを放電するために、対象のビットライン（ＢＬｅ）の電位レベルは、例えば０．５Ｖ未満等の低いレベルに減少する。これによって、記憶素子の状態が、ビットラインに接続される電圧比較検出アンプによって検出される。
【００８０】
前述される消去動作、読み出し動作、及び、検証動作は、従来の既知の技法に従って実行される。従って、説明されている詳細の多くは、当業者によって変えられることがある。従来既知の他の消去技法、読み出し技法、及び検証技法も使用できる。
【００８１】
図１６は、閾値電圧区分のセットとワンパスプログラミングの例を示す。記憶素子アレイの例示のＶＴＨ区分は、各記憶素子が２ビットのデータを記憶するケースに対して提供されている。第１の閾値電圧区分Ｅは、消去された記憶素子に対して提供される。プログラミングされた記憶素子の３つの閾値電圧区分、Ａ、Ｂ及びＣも示されている。一実施形態では、Ｅ区分の閾値電圧は負であり、Ａ区分、Ｂ区分及びＣ区分の閾値電圧は正である。
【００８２】
それぞれの閾値電圧範囲は、データビットのセットの所定値に対応する。記憶素子にプログラミングされたデータと記憶素子の閾値電圧レベルの特殊な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、両方ともその全体を参照することにより本明細書に組み込まれる、米国特許第６，２２２，７６２号及び米国特許第７，２３７，０７４号は、マルチ状態フラッシュメモリ素子の多様なデータ符号化方式を説明する。一実施形態では、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。４つの状態が示されているが、本発明は、４つの状態より多い又は少ない構造を含む他のマルチステート構造に使用することもできる。
【００８３】
３つの読み出し参照電圧Ｖｒａ、Ｖｒｂ、及び、Ｖｒｃは、記憶素子からデータを読み出すために提供される。既定の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ及びＶｒｃを上回っているのか、あるいは下回っているのかをテストすることによって、システムは、記憶素子が存在する状態、即ち、プログラム状態を判定することができる。
【００８４】
さらに、３つの検証参照電圧Ｖｖａ、Ｖｖｂ、及び、Ｖｖｃが提供される。記憶素子を状態Ａにプログラミングするとき、システムは、それらの記憶素子がＶｖａ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｂにプログラミングするとき、システムは、記憶素子がＶｖｂ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｃにプログラミングするとき、システムは、記憶素子がＶｖｃ以上の閾値電圧を有するかどうかをテストする。
【００８５】
フルシーケンスプログラミングとして知られている一実施形態においては、記憶素子は、消去状態Ｅからプログラミンされた状態Ａ、Ｂ又はＣの何れかに直接的にプログラミングされる。例えば、まず、プログラミングされる記憶素子の集合中の全ての記憶素子が消去状態Ｅとなるように、集合が消去される場合がある。次に、図２０の制御ゲート電圧シーケンスで示されるような一連のプログラムパルスが、記憶素子を状態Ａ、Ｂ又はＣに直接的にプログラミングするために使用される。いくつかの記憶素子は状態Ｅから状態Ａにプログラムされ、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラミングされる。選択ワードラインＷＬｎ上で状態Ｅから状態Ｃにプログラミングするときは、ＷＬｎ下のフローティングゲートでの電荷量の変化が、状態Ｅを状態Ａにあるいは状態Ｅを状態Ｂにプログラミングするときの電圧の変化に比較して極めて大きいため、ＷＬｉ−１下の隣接フローティングゲートへの寄生結合の量は最大限となる。状態Ｅから状態Ｂにプログラミングするときは、隣接フローティングゲートへの結合の量は少なくなる。状態Ｅから状態Ａにプログラミングするときは、結合の量はさらに少なくなる。
【００８６】
図１７は、２つの異なるページ（下位ページと上位ページ）に対してデータを記憶するマルチステート記憶素子にプログラムする２パス技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下位ページが「０」を記憶し、上位ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下位ページが「１」を記憶し、上位ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００８７】
第１プログラミングパスでは、記憶素子の閾値電圧レベルは下位の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印１１００で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラミングパスを終了する。
【００８８】
第２プログラミングパスでは、記憶素子の閾値電圧レベルは上位論理ページ内にプログラムされるビットに従って設定される。上位論理ページビットが論理「１」を記憶する場合、記憶素子は下位ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上位ページビットは「１」を保持するのでプログラミングは生じない。上位ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印１７２０で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミングパスの結果として記憶素子が状態Ａ内にプログラムされれば、記憶素子はさらに第２パスでプログラムされ、矢印１７１０で示したように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下位ページ用のデータを変更することなく、上位ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。図１６および１７の両方において、隣接するワードライン上でフローティングゲートへの結合量は最終状態に依存する。
【００８９】
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラミング処理は受け取ったデータを用いて下位ページプログラミングを実行できる。次のデータを受け取ったときは、システムは上位ページをプログラミングする。さらに別の実施形態では、システムは下位ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、米国特許第７，１２０，０５１号に開示されている。その全体は参照することによって本明細書に組み込まれる。
【００９０】
図１８ａ〜ｃは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合の影響を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、４つのデータ状態を用いて記憶素子毎に２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラムされた状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は２ページ分のデータを記憶する。参照のために、これらのページのデータは上位ページ及び下位ページと呼ばれるが、他のラベルを与えることもできる。状態Ａを参照すると、上位ページはビット０を記憶し、下位ページはビット１を記憶している。状態Ｂを参照すると、上位ページはビット１を記憶し、下位ページはビット０を記憶している。状態Ｃを参照すると、両方のページがビットデータ０を記憶している。
【００９１】
プログラミング処理は、２つのステップの処理である。第１ステップでは、下位ページをプログラムする。下位ページがデータ１のままである場合、記憶素子状態は状態Ｅに留まる。データが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｂ’にプログラムされる。従って、図１８ａは、状態Ｅから状態Ｂ’への記憶素子のプログラミングを示している。状態Ｂ’は中間状態Ｂであり、従って、検証点はＶｖｂ’として示され、Ｖｖｂより低い。
【００９２】
一実施形態では、状態Ｅから状態Ｂ’に記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下位ページに対してプログラムする。例えば、図２を見直すと、記憶素子１０６用の下位ページをプログラムした後、記憶素子１０４の下位ページをプログラムする。記憶素子１０４をプログラムした後、記憶素子１０４が状態Ｅから状態Ｂ’に上昇した閾値電圧を有していた場合、フローティングゲート間結合の影響は記憶素子１０６の見かけの閾値電圧を上昇させる。これは、図１８ｂの閾値電圧区分１８５０に示したように状態Ｂ’の閾値電圧区分を拡大する影響を有する。閾値電圧区分のこの見かけの拡大は、上位ページをプログラムする際に修正される。
【００９３】
図１８ｃは、上位ページをプログラムする工程を示している。記憶素子が消去状態Ｅであって上位ページが１に留まる場合、記憶素子は状態Ｅに留まる。記憶素子が状態Ｅであり、その上位ページデータが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ａになる。記憶素子が中間の閾値電圧区分１８５０であって上位ページデータが１に留まる場合、記憶素子は最終状態Ｂにプログラムされる。記憶素子が中間の閾値電圧区分１８５０であって上位ページデータがデータ０になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｃになる。隣接記憶素子の上位ページプログラミングだけが所定の記憶素子の見かけの閾値電圧に影響を与えるので、図１８ａ〜ｃで示した工程はフローティングゲート間結合影響を低減する。別の状態符号化の一例は、上位ページデータが１であるとき区分１８５０から状態Ｃに移動することであり、上位ページデータが０であるとき状態Ｂに移動することである。
【００９４】
図１８ａ〜ｃは４つのデータ状態と２つのページデータに対する一例を提供するが、開示された概念は４つの状態より多い、又は少ない状態、及び２つのページとは異なるページを備えた他の実装形態に適用することもできる。
【００９５】
本発明の前記の詳細な説明は図解及び説明のために提示されたものである。本発明は、網羅的となる、あるいは本発明を開示されている正確な形式に制限することを意図していない。前記教示を鑑みて多くの変型及び変更が可能である。説明された実施形態は、本発明及びその実際的な応用を最もよく説明し、それにより当業者が多様な実施形態において、及び意図されている特定の使用に適するように多様な変型を用いて本発明を最もよく活用できるようにするために選択された。本発明の範囲がここに添付される請求項により定められることが意図される。
【図１】
2011526049.tif 000003
【図２】
2011526049.tif 000004
【図３】
2011526049.tif 000005
【図４】
2011526049.tif 000006
【図５ａ】
2011526049.tif 000007
【図５ｂ】
2011526049.tif 000008
【図５ｃ】
2011526049.tif 000009
【図５ｄ】
2011526049.tif 000010
【図５ｅ】
2011526049.tif 000011
【図６ａ】
2011526049.tif 000012
【図６ｂ】
2011526049.tif 000013
【図６ｃ】
2011526049.tif 000014
【図６ｄ】
2011526049.tif 000015
【図６ｅ】
2011526049.tif 000016
【図６ｆ】
2011526049.tif 000017
【図６ｇ】
2011526049.tif 000018
【図７ａ】
2011526049.tif 000019
【図７ｂ】
2011526049.tif 000020
【図７ｃ】
2011526049.tif 000021
【図７ｄ】
2011526049.tif 000022
【図８ａ】
2011526049.tif 000023
【図８ｂ】
2011526049.tif 000024
【図９ａ】
2011526049.tif 000025
【図９ｂ】
2011526049.tif 000026
【図１０】
2011526049.tif 000027
【図１１】
2011526049.tif 000028
【図１２】
2011526049.tif 000029
【図１３】
2011526049.tif 000030
【図１４】
2011526049.tif 000031
【図１５】
2011526049.tif 000032
【図１６】
2011526049.tif 000033
【図１７】
2011526049.tif 000034
【図１８ａ】
2011526049.tif 000035
【図１８ｂ】
2011526049.tif 000036
【図１８ｃ】
2011526049.tif 000037
【国際調査報告】
2011526049.tif 000038
2011526049.tif 000039