(57)【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させる方法であって、
１組の不揮発性記憶素子（１５００、１５１０）の中にあり、１組のワードライン（６００）の中の選択されたワードライン（ＷＬ３）に接続されている少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンド（７００）を受信するステップと、
前記読み出しコマンドに応じて、前記１組のワードラインの中の別のワードライン（ＷＬ５）を選定するステップ（７１０）と、
前記別のワードラインに接続されている不揮発性記憶素子に対して検出動作を実施するステップ（７１５）と、
前記検出動作に基づいて、少なくとも１つの読み出し比較レベルを決定するステップ（７２５）と、
前記少なくとも１つの読み出し比較レベルを用いて前記少なくとも１つの選択された不揮発性記憶素子を読み出すステップ（７３０）、
を備えており、
前記検出動作は、閾値電圧分布を取得し、
前記少なくとも１つの読み出し比較レベルは、前記閾値電圧分布の中の凹み部分を特定することによって決定される、
方法。
【請求項２】
前記別のワードラインを前記１組のワードラインから無作為に選定するステップをさらに備える請求項１に記載の方法。
【請求項３】
前記１組のワードラインの中の少なくとも１つの指定されたワードライン（ＷＬ４）を除外して、前記別のワードラインを前記１組のワードラインから無作為に選定するステップをさらに備える請求項１に記載の方法。
【請求項４】
前記別のワードラインが、前記選択されたワードラインに隣接しない請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記検出動作に基づいて、前記別のワードラインに接続されている前記不揮発性記憶素子に対して複数の読み出し比較レベルを決定するステップと、
前記複数の読み出し比較レベルを用いて前記少なくとも１つの選択された不揮発性記憶素子を読み出すステップ、
をさらに備える請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記少なくとも１つの読み出し比較レベルは、データ状態の第１のペアの隣接する状態を互いに区別する第１の読み出し比較レベル（９３０）を備え、
前記方法が、
前記第１の読み出し比較レベルに基づいて、かつ、データ状態の第２のペアの隣接する状態を互いに区別する検出動作を実施せずに、データ状態の前記第２のペアの隣接する状態を互いに区別する第２の読み出し比較レベル（９３５）を決定するステップをさらに備える、
請求項１〜５のいずれか一項に記載の方法。
【請求項７】
不揮発性記憶システムであって、
少なくとも１つの選択された不揮発性記憶素子を含む１組の不揮発性記憶素子（１５００、１５１０）と、
前記少なくとも１つの選択された不揮発性記憶素子が接続されている選択されたワードライン（ＷＬ３）を含んでおり、前記１組の不揮発性記憶素子に接続されている１組のワードライン（６００）と、
前記１組のワードラインと通信する少なくとも１つの制御回路（１２１０、１２５０）、
を有しており、
前記少なくとも１つの制御回路が、
（ａ）前記選択されたワードラインに接続されている前記少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受信し（７００）、
（ｂ）前記読み出しコマンドに応じて、前記１組のワードラインの中の別のワードライン（ＷＬ５）を選定し（７１０）、前記別のワードラインに接続されている不揮発性記憶素子に対して検出動作を実施し（７１５）、前記検出動作に基づいて少なくとも１つの読み出し比較レベルを決定し（７２５）、
（ｃ）前記少なくとも１つの読み出し比較レベルを用いて前記少なくとも１つの選択された不揮発性記憶素子を読み出し（７３０）、
前記検出動作は、閾値電圧分布を取得し、
前記少なくとも１つの読み出し比較レベルは前記閾値電圧分布の中の凹み部分を特定することによって決定される、
不揮発性記憶システム。
【請求項８】
前記少なくとも１つの制御回路が、前記１組のワードラインの中の少なくとも１つの指定されたワードライン（ＷＬ４）を除外して、前記別のワードラインを前記１組のワードラインから無作為に選択する、請求項７に記載の不揮発性記憶システム。
【請求項９】
前記少なくとも１つの制御回路が、前記別のワードラインを前記１組のワードラインから無作為に選択する、請求項７に記載の不揮発性記憶システム。
【請求項１０】
前記別のワードラインが、前記選択されたワードラインに隣接しない、請求項７または８に記載の不揮発性記憶システム。
【請求項１１】
前記少なくとも１つの制御回路が、
前記検出動作に基づいて、前記別のワードラインに接続されている前記不揮発性記憶素子に対して複数の読み出し比較レベルを決定し、
前記複数の読み出し比較レベルを用いて、前記少なくとも１つの選択された不揮発性記憶素子を読み出す、
請求項７〜１０のいずれか一項に記載の不揮発性記憶システム。
【請求項１２】
前記少なくとも１つの読み出し比較レベルは、データ状態の第１のペアの隣接する状態を互いに区別する第１の読み出し比較レベル（９３０）を備え、
前記少なくとも１つの制御回路が、
前記第１の読み出し比較レベルに基づいて、かつ、データ状態の第２のペアの隣接する状態を互いに区別する検出動作を実施せずに、データ状態の前記第２のペアの隣接する状態を互いに区別する第２の読み出し比較レベル（９３５）を決定する、
請求項７〜１１のいずれか一項に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再書込み可能型読取専用メモリ（ＥＥＰＲＯＭ）とフラッシュメモリは、最も普及している不揮発性半導体メモリである。フラッシュメモリに関しては、ある種のＥＥＰＲＯＭもそうであるが、通常のフル装備のＥＥＰＲＯＭとは異なり、全メモリアレイまたは一部分のメモリの内容を、１ステップで消去することができる。
【０００３】
通常のＥＥＰＲＯＭとフラッシュメモリは、半導体基板内のチャネル領域上に配置されており、そのチャネル領域から絶縁されているフローティングゲートを有している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。このように形成されているトランジスタの閾値電圧（ＶTH）は、フローティングゲート上に保持されている電荷量によって制御される。即ち、トランジスタをオンしてそのソースとドレインの間の導通可能にするために必要な制御ゲートへの印加電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００４】
ある種のＥＥＰＲＯＭとフラッシュメモリデバイスは、２つの範囲の電荷量を蓄えるために使われるフローティングゲートを備えており、それゆえ、その記憶素子は、２つの状態、即ち、消去状態とプログラムされた状態の間でプログラム／消去が行われることができる。そのようなフラッシュメモリデバイスは、各記憶素子が１ビットデータを記憶することができるので、バイナリフラッシュメモリデバイスと呼ばれる。
【０００５】
マルチステート（マルチレベルとも呼ばれる）フラッシュメモリデバイスは、複数の区別された許可された／有効なプログラム済閾値電圧範囲を特定することによって実現される。夫々の区別された閾値電圧範囲は、メモリデバイス内で符号化される一組のデータビットに対する予め決められた値に対応する。例えば、各記憶素子は、４個の区別された閾値電圧範囲に対応する４個の区別された電荷バンドの中の一つの状態に置かれることによって、２ビットのデータを記憶することができる。
【０００６】
通常、プログラム動作において制御ゲートに印加されるプログラム電圧ＶPGMは、時間の経過に伴って大きさが増大する一連のパルスとして印加される。一つのアプローチとしては、パルスの大きさは、連続するパルスの１つ毎に、例えば０．２−０．４Ｖの既定のステップサイズずつ増加する。ＶPGMは、フラッシュメモリ素子の制御ゲートに印加される。プログラムパルスの間の期間に検証動作が実行される。即ち、並列にプログラムされている素子グループの各素子のプログラムレベルは、連続するパルスとパルスの間に読み出され、素子がプログラムされている検証レベルと等しいか或いはそれ以上であるか否かが判定される。マルチステートフラッシュメモリ素子のアレイでは、素子の状態毎に検証ステップが実行され、データに対応する検証レベルにその素子が達したか否かが判定される。例えば、４つの状態のいずれかにデータを記憶可能なマルチステート記憶素子では、３つの比較点での検証動作が必要とされる。
【０００７】
さらに、ＥＥＰＲＯＭ、或いは、ＮＡＮＤフラッシュメモリデバイスのようなフラッシュメモリデバイスのＮＡＮＤストリングをプログラミングする場合、通常、制御ゲートにＶPGMが印加されるとともにビットラインが接地され、それによって、セル、或いはメモリ素子、即ち、記憶素子のチャネルからフローティングゲートへ電子が注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負に帯電し、メモリ素子の閾値電圧が上昇し、メモリ素子がプログラムされた状態となる。そのようなプログラミングに関するさらなる情報は、「Ｓｏｕｒｃｅ  Ｓｉｄｅ  Ｓｅｌｆ  Ｂｏｏｓｔｉｎｇ  Ｔｅｃｈｎｉｑｕｅ  Ｆｏｒ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ」と題した米国特許第６，８５９，３９７号、及び、「Ｄｅｔｅｃｔｉｎｇ  Ｏｖｅｒ  Ｐｒｏｇｒａｍｍｅｄ  Ｍｅｍｏｒｙ」と題した２００５年６月１２日発行の米国特許第６，９１７，５４２号に開示されている。両者の文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【０００８】
しかしながら、読み出しディスターブは未だに解決できない問題の１つである。読み出しディスターブとは、記憶素子の状態が、別の記憶素子を読み出す間に意図せず変化してしまうことである。さらに、厚さの薄いトンネル酸化物を使用する比較的新しいデバイスおよび多くのプログラム／消去サイクルを経たデバイスでは問題が悪化する。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、不揮発性記憶システムにおける読み出しディスターブを低減する方法を提供することによって、上記および他の問題に対処する。
【課題を解決するための手段】
【００１０】
一実施形態では、不揮発性記憶装置を動作させる方法は、１組の不揮発性記憶素子の中の少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受信するステップを含み、少なくとも１つの選択された不揮発性記憶素子は１組のワードラインの中の選択されたワードラインに接続されている。方法は、さらに、読み出しコマンドに応じて、１組のワードラインの中の別のワードラインを選択するステップと、別のワードラインに接続されている不揮発性記憶素子に対して検出動作を実施するステップと、検出動作に基づいて少なくとも１つの比較レベルを決定するステップを含む。方法は、さらに、少なくとも１つの読み出し比較レベルを用いて少なくとも１つの選択された不揮発性記憶素子を読み出すステップを含む。
【００１１】
別の実施形態では、不揮発性記憶装置を動作させる方法は、１組の不揮発性記憶素子の中の少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受信するステップを含み、少なくとも１つの選択された不揮発性記憶素子は１組のワードラインの中の選択されたワードラインに接続されている。方法は、さらに、読み出しコマンドに応じて、１組のワードラインの中の別のワードラインを選定するステップと、別のワードラインに接続されている不揮発性記憶素子からデータを検出するステップと、エラー訂正処理を実行するステップと、エラー訂正処理に基づいて基準を決定するステップを含む。基準が閾値未満である場合は、方法は、さらに、別のワードラインに接続されている不揮発性記憶素子から検出されるデータに基づいて決定される少なくとも１つの読み出し比較レベルを用いて少なくとも１つの選択された不揮発性記憶素子を読み出すステップを含む。基準が閾値を超える場合は、方法は、さらに、１組の不揮発性記憶素子のデータの完全性を調査するステップおよび／または１組の不揮発性記憶素子におけるデータに関してリフレッシュ動作を実施するステップを含む。
【００１２】
別の実施形態では、不揮発性記憶装置を動作させる方法は、１組の不揮発性記憶素子の中の少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受信するステップを含み、１組の不揮発性記憶素子がデータを複数のデータ状態に記憶し、少なくとも１つの選択された不揮発性記憶素子が１組のワードラインの中の選択されたワードラインに接続されている。方法は、さらに、読み出しコマンドに応じて、１組のワードラインの中の別のワードラインを選択するステップと、複数のデータ状態の中のデータ状態の第１のペアの隣接する状態を互いに区別するために別のワードラインに接続されている不揮発性記憶素子に対して検出動作を実施するステップと、検出動作に基づいて、データ状態の第１のペアの隣接するデータ状態間の第１の読み出し比較レベル決定するステップとを含む。方法は、さらに、データ状態の第２のペアの隣接する状態を互いに区別する検出動作を実施せずに、第１の読み出し比較レベルに基づいて、複数のデータ状態の中のデータ状態の第２のペアの隣接するデータ状態間の第２の読み出し比較レベル決定するステップと、少なくとも第２の読み出し比較レベルを用いて少なくとも１つの選択された不揮発性記憶素子を読み出すステップを含む。
【００１３】
別の実施形態では、不揮発性記憶装置を動作させる方法は、１組の不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受け取るステップを含み、１組の不揮発性記憶素子はデータを複数のデータ状態に記憶する。方法は、さらに、読み出しコマンドに応じて、複数のデータ状態の中のデータ状態の第１のペアの隣接する状態を互いに区別するために検出動作を実施するステップと、検出動作に基づいて、データ状態の第１のペアの隣接するデータ状態間の第１の読み出し比較レベルを決定するステップを含む。方法は、さらに、データ状態の第２のペアの隣接する状態を互いに区別する検出動作を実施せずに、第１の読み出し比較レベルに基づいて、複数のデータ状態の中のデータ状態の第２のペアの隣接するデータ状態間の第２の読み出し比較レベルを決定するステップと、少なくとも第２の読み出し比較レベルを用いて少なくとも１つの選択された不揮発性記憶素子を読み出すステップを含む。
【００１４】
別の実施形態では、不揮発性記憶システムは、少なくとも１つの選択された不揮発性記憶素子を含む１組の不揮発性記憶素子を含む。システムは、さらに、選択されたワードラインを含む１組の不揮発性記憶素子に接続されている１組のワードラインを含み、少なくとも１つの選択された不揮発性記憶素子は選択されたワードラインに接続されている。システムは、さらに、１組のワードラインと通信する少なくとも１つの制御部を含む。少なくとも１つの制御部は、（ａ）選択されたワードラインに接続されている少なくとも１つの選択された不揮発性記憶素子からのデータの読み出しを要求する読み出しコマンドを受信し、（ｂ）読み出しコマンドに応じて、１組のワードラインの中の別のワードラインを選定し、別のワードラインに接続されている不揮発性記憶素子に対して検出動作を実施し、検出動作に基づいて少なくとも１つの読み出し比較レベルを決定し、（ｃ）少なくとも１つの読み出し比較レベルを用いて少なくとも１つの選択された不揮発性記憶素子を読み出す。
【００１５】
本明細書に記載される方法を実施するための対応する方法、システム、およびコンピュータ可読記憶デバイスまたはプロセッサ可読記憶デバイスが提供されてもよい。
【図面の簡単な説明】
【００１６】
【図１】ＮＡＮＤストリングの平面図である。
【図２】図１のＮＡＮＤストリングの等価回路図である。
【図３】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図４】基板に形成されたＮＡＮＤストリングの断面図である。
【図５ａ】１組の不揮発性記憶素子の初期閾値電圧分布を対応する検証電圧および読み出し電圧とともに示す図である。
【図５ｂ】読み出しディスターブを受ける１組の不揮発性記憶素子の閾値電圧分布を示す図である。
【図５ｃ】図５ｂの閾値電圧分布の測定と対応する読み出し電圧の設定とを示す図である。
【図６】１組のワードラインにおける選択されたワードラインを示す図である。
【図７】別のワードラインに基づいて選択されたワードラインを読み出すための読み出し比較レベルを設定する処理を示す図である。
【図８】別のワードラインおよびエラー訂正基準に基づいて選択されたワードラインを読み出すための読み出し比較レベルを設定する処理を示す図である。
【図９】第１の読み出し比較レベルから追加の読み出し比較レベルを決定することによって選択されたワードラインを読み出すための読み出し比較レベルを設定する処理を示す図である。
【図１０】第１の読み出し比較レベルから追加の読み出し比較レベルを決定することによって選択されたワードラインを読み出すための読み出し比較レベルを設定する処理のさらなる詳細を示す図である。
【図１１】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図１２】シングル行／列デコーダと読み出し／書き込み回路を使った不揮発性記憶システムのブロック図である。
【図１３】デュアル行／列デコーダと読み出し／書き込み回路を使った不揮発性記憶システムのブロック図である。
【図１４】検出ブロックの一実施形態のブロック図である。
【図１５】全ビットラインメモリアーキテクチャまたは奇数偶数メモリアーキテクチャのためのブロックへのメモリアレイの編成の一例を示す図である。
【図１６】閾値電圧分布の組の一例および１パスプログラミングを示す図である。
【図１７】閾値電圧分布の組の一例および２パスプログラミングを示す図である。
【図１８ａ】種々の閾値電圧分布と、不揮発性メモリをプログラミングする処理を説明する図である。
【図１８ｂ】種々の閾値電圧分布と、不揮発性メモリをプログラミングする処理を説明する図である。
【図１８ｃ】種々の閾値電圧分布と、不揮発性メモリをプログラミングする処理を説明する図である。
【図１９】不揮発性メモリをプログラミングする処理の一実施形態を説明する図である。
【図２０】プログラミング中に不揮発性記憶素子の制御ゲートに印加されるパルス列の一例を示す図である。
【発明を実施するための形態】
【００１７】
本発明は、不揮発性記憶システムにおいて読み出しディスターブを低減する方法を提供する。
【００１８】
本発明を実現するのに適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を利用するものであり、２つの選択ゲートの間に直列に接続された複数のトランジスタを含んでいる。直列に接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は、１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１選択ゲート１２０と第２選択ゲート１２２の間に挟まれており、直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ＮＡＮＤストリングのビットライン１２６への接続を切り換える。選択ゲート１２２は、ＮＡＮＤストリングのソースライン１２８への接続を切り換える。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧を加えることによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧を加えることによって制御される。トランジスタ１００、１０２、１０４、及び１０６の夫々は、制御ゲートとフローティングゲートを有している。トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを備えている。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを備えている。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを備えている。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを備えている。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。または、これらの制御ゲートは、ワードラインの一部である。一実施形態では、トランジスタ１００、１０２、１０４、及び、１０６の夫々は記憶素子であり、メモリセルと呼ばれる。他の実施形態では、記憶素子は、複数のトランジスタを含むことがあり、図１や図２に示すものとは異なる場合がある。選択ゲート１２０は、選択ラインＳＧＤ（ドレイン選択ゲート）に接続されている。選択ゲート１２２は、選択ラインＳＧＳ（ソース選択ゲート）に接続されている。
【００１９】
図３は、３個のＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、いくつかのＮＡＮＤストリングを含む。例えば、３個のＮＡＮＤストリング、３２０、３４０及び３６０が、さらに多くのＮＡＮＤストリングを有するメモリアレイ内に示されている。各ＮＡＮＤストリングは、２個の選択ゲートと４つの記憶素子を有している。簡単化のために４個の記憶素子が描かれているが、最近のＮＡＮＤストリングは、例えば最高３２個又は６４個の記憶素子を有する場合がある。
【００２０】
例えば、ＮＡＮＤストリング３２０は選択ゲート３２２と３２７、及び、記憶素子３２３〜３２６を有し、ＮＡＮＤストリング３４０は選択ゲート３４２と３４７、及び、記憶素子３４３〜３４６を有し、ＮＡＮＤストリング３６０は選択ゲート３６２と３６７、及び、記憶素子３６３〜３６６を有する。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７、又は３６７）によってソースラインに接続されている。選択ラインＳＧＳは、ソース側選択ゲートを制御するために使用される。種々のＮＡＮＤストリング３２０、３４０、及び３６０は、選択ゲート３２２、３４２、３６２等の選択トランジスタによって各ビットライン３２１、３４１、及び、３６１に接続されている。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは必ずしもＮＡＮＤストリング間で共通とされている必要はない。すなわち、異なるＮＡＮＤストリングには異なる選択ラインを接続できる。ワードラインＷＬ３は、記憶素子３２３、３４３、及び、３６３の制御ゲートに接続されている。ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４の制御ゲートに接続されている。ワードラインＷＬ１は、記憶素子３２５、３４５、及び、３６５の制御ゲートに接続されている。ワードラインＷＬ０は、記憶素子３２６、３４６、及び、３６６の制御ゲートに接続されている。つまり、各ビットラインと各ＮＡＮＤストリングは記憶素子のアレイ又はセットの列を含む。ワードライン（ＷＬ３、ＷＬ２、ＷＬ１及びＷＬ０）は、アレイ又はセットの行を含む。各ワードラインは、行に沿って各記憶素子の制御ゲートを接続している。また、制御ゲートはワードライン自体によって提供されてよい。例えば、ワードラインＷＬ２は、記憶素子３２４、３４４、及び、３６４に制御ゲートを提供する。実際には、１つのワードラインに数千の記憶素子がある場合がある。
【００２１】
各記憶素子はデータを記憶できる。例えば、１ビットのデジタルデータを記憶するときは、記憶素子の可能な閾値電圧（ＶTH）の範囲は、論理データ「１」と「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、ＶTHは、記憶素子が消去された後に負となり、論理「１」として定義される。プログラム動作後のＶTHは正であり、論理「０」として定義される。ＶTHが負であり、読み出しが試行されると、記憶素子がオンして論理「１」が記憶されていることが示される。ＶTHが正であり、読み出し動作が試行されると、記憶素子はオンにならず、論理「０」が記憶されていることが示される。また、記憶素子は、例えば複数ビットのデジタルデータ等の複数のレベルの情報を記憶することもできる。この場合には、ＶTHの値の範囲はデータレベルの数に分割される。例えば、４つのレベルの情報が記憶される場合には、データ値「１１」、「１０」、「０１」、及び、「００」に割り当てられる４つのＶTH範囲がある。ＮＡＮＤタイプのメモリの一例では、消去動作後のＶTHは負となり、「１１」として定義される。正のＶTH値は「１０」、「０１」及び「００」の状態に使用される。記憶素子に書き込まれるデータと、素子の閾値電圧範囲との特定な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、両出願の全体を参照することにより本明細書に組み込まれる米国特許第６，２２２，７６２号及び第７，２３７，０７４号が、マルチステートフラッシュ記憶素子のための多様なデータ符号化方式を説明している。
【００２２】
ＮＡＮＤタイプのフラッシュメモリ及びその動作の関連性のある例は、それぞれが参照することにより本明細書に組み込まれる米国特許第５，３８６，４２２号、第５，５７０，３１５号、第５，７７４，３９７号、第６，０４６，９３５号、第６，４５６，５２８号、及び、第６，５２２，５８０号に示されている。
【００２３】
フラッシュ記憶素子をプログラミングするときには、プログラム電圧が記憶素子の制御ゲートに印加されるとともに、記憶素子に接続されているビットラインが接地される。チャネルからの電子がフローティングゲートに注入される。電子がフローティングゲートに蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶTHが上昇する。プログラミング中の記憶素子の制御ゲートにプログラム電圧を印加するために、プログラム電圧が適切なワードラインに印加される。上述したように、各ＮＡＮＤストリング中の１つの記憶素子が同じワードラインを共有している。例えば、図３の記憶素子３２４をプログラミングするときには、プログラム電圧は記憶素子３４４と３６４の制御ゲートにも印加される。
【００２４】
しかしながら、プログラムディスターブは、他のＮＡＮＤストリングのプログラミング中に禁止されているＮＡＮＤストリングで、また、場合によっては、プログラミング中のＮＡＮＤストリング自体で発生する可能性がある。プログラムディスターブは、選択されない不揮発性記憶素子の閾値電圧が、他の不揮発性記憶素子のプログラミングが原因でシフトされることで発生する。プログラムディスターブは、まだプログラムされていない消去済みの記憶素子だけでなく、過去にプログラムされた記憶素子でも発生する可能性がある。様々なプログラムディスターブメカニズムは、ＮＡＮＤフラッシュメモリなどの不揮発性記憶デバイスの利用可能な動作ウィンドウを制限する可能性がある。
【００２５】
たとえば、ＮＡＮＤストリング３２０が禁止されており（たとえば、これが現在プログラム中の記憶素子を含まない非選択のＮＡＮＤストリングである）、かつ、ＮＡＮＤストリング３４０がプログラムされている（たとえば、これが現在プログラム中の記憶素子を含む選択されたＮＡＮＤストリングである）場合、プログラムディスターブはＮＡＮＤストリング３２０で発生する可能性がある。たとえば、パス電圧ＶPASSが低い場合、禁止されたＮＡＮＤストリングのチャネルは十分にブーストされず、非選択のＮＡＮＤストリングの選択されたワードラインが意図せずにプログラムされる場合がある。別のあり得る状況では、ブースト電圧がゲート誘導ドレインリーク（ＧＩＤＬ）などのリークメカニズムによって低下して同じ問題が生じる可能性がある。後でプログラムされる隣接記憶素子との容量結合による電荷蓄積素子のＶTHのシフトなど、他の効果もプログラムディスターブの一因となりうる。
【００２６】
図４は、基板上に形成されたＮＡＮＤストリングの断面図を示す。図は簡略化されており、縮尺は正確ではない。ＮＡＮＤストリング４００は、ソース側選択ゲート４０６と、ドレイン側選択ゲート４２４と、基板４９０上に形成される８個の記憶素子４０８、４１０、４１２、４１４、４１６、４１８、４２０及び４２２を有する。複数のソース／ドレイン領域（その一例はソース／ドレイン領域４３０である）が、各記憶素子と選択ゲート４０６及び４２４の両側に形成されている。一つのアプローチでは、基板４９０は、３重ウェル技術を採用しており、ｐ型基板領域４９６の中にｎウェル領域４９４が形成されており、その中にｐウェル領域４９２が形成されている。ＮＡＮＤストリングとその不揮発性記憶素子は、少なくとも部分的には、ｐウェル領域上に形成されている。ビットライン４２６にＶBLの電位が印加されるとともに、ソース供給ライン４０４にＶSOURCEの電位が印加される。ボディバイアス電圧のような電圧が、端子４０２を介してｐウェル領域４９２に印加され、及び／または、端子４０３を介してｎウェル領域４９４に印加される。
【００２７】
プログラム動作の間に、記憶素子４１４に接続された選択されたワードライン（この例ではＷＬ３である）に制御ゲート電圧ＶPGMが印加される。さらに、記憶素子の制御ゲートは、ワードラインの一部である場合があることに留意されたい。例えば、ＷＬ０、ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、ＷＬ５、ＷＬ６、及びＷＬ７は、それぞれ、記憶素子４０８、４１０、４１２、４１４、４１６、４１８、４２０、及び４２２の制御ゲートを通じて延設されていてもよい。他の可能なブースト方式では、ＮＡＮＤストリング４００に接続された残りのワードラインに読み出しパス電圧ＶREADが印加される。選択ゲート４０６と４２４には夫々、ＶSGSとＶSGDが印加される。
【００２８】
図５ａ〜５ｃは、読み出しディスターブがどのようにして１組の不揮発性記憶素子の閾値電圧分布を変えるか、および、この問題に対処する処理に関係している。図５ａは、１組の不揮発性記憶素子の初期の閾値電圧分布を、対応する検証および読み出し電圧とともに示す図である。たとえば、初期の閾値電圧分布は、１組の記憶素子がプログラムされた直後に適用される。この例では、８個のデータ状態が用いられる。一般に、２個以上のデータ状態が用いられる。
【００２９】
プログラミングが完了したと見なされるために記憶素子がプログラミングをしていなければならない最低閾値電圧を規定するために、プログラミング中に検証レベルＶV1〜ＶV7が用いられる。程度は様々であるが記憶素子が検証レベルを越えて、各状態に対して有限の閾値分布が生じる。
【００３０】
さらに、データ状態の数が増加してデータ状態が互いに近づくにつれて、読み出し基準電圧とも呼ばれる正確な読み出し比較レベルを提供することが一層重要となる。この実施例では、読み出し処理において８つのデータ状態を区別するために読み出し比較レベルＶR1〜ＶR7が使用される。たとえば、ＶR1が記憶素子の制御ゲートに印加されて記憶素子が導通状態になると、ＶR1は記憶素子の閾値電圧（ＶTH）よりも大きいと結論付けられる。同様に、記憶素子が非導通であれば、ＶR1は記憶素子の閾値電圧（ＶTH）よりも低いと結論付けられる。したがって、記憶素子が読み出し比較レベルの各々に対して導通するか否かを判定することによって、記憶素子のデータ状態を判別できる。換言すれば、記憶素子のデータ状態は、記憶素子が導通しない場合の最高読み出し比較レベルと記憶素子が導通する場合の最低読み出し比較レベルとの間の状態である。また、読み出し処理は、ワードラインに接続されている複数の記憶素子のデータ状態を同時に特定することができる。
【００３１】
なお、対応する読み出し比較電圧（たとえば、ＶR1〜ＶR7）は、電圧グループ間、すなわち、典型的には前の分布の少し上の値である。たとえば、ＶR1は状態０と状態１の間、すなわち、状態０の分布の少し上の値であり、ＶR2は状態１と状態２の間、すなわち、状態１の分布の少し上の値であり、以下同様である。読み出しディスターブおよびデータ保持損失による閾値電圧の分布の拡大が起きる。この効果は、典型的に、高い状態ほど大きい。結果として、図に示されるように、高い状態の状態間ほど間隔が大きくなることが好ましい。
【００３２】
前述のように、読み出しディスターブは、閾値電圧分布に著しい変化をもたらす可能性がある。読み出しディスターブは、記憶素子からの電荷損失によって正の閾値電圧を低下させ、記憶素子の電荷利得によって負の閾値電圧を上昇させる傾向がある。一部のデバイスでは、消去状態が負の閾値電圧を有し、場合によってはこれに隣接するいくつかの状態も負の閾値電圧を有する。たとえば、１６状態のデバイスでは、状態０〜４が負の閾値電圧を有し、状態５〜１５が正の閾値電圧を有している場合がある。一方、他のデバイスでは、すべての状態が正の閾値電圧を有している場合がある。
【００３３】
図５ｂは、読み出しディスターブを受けた１組の不揮発性記憶素子の閾値電圧分布を示す図である。図示される読み出し基準電圧ＶR1〜ＶR7は、図５ａと同じである。ここで、各状態に対する閾値電圧分布は、読み出しディスターブによって、図５ａに示される分布に比べて幅が広くなり、かつ、下側にシフトしている。さらに、高いデータ状態ほど、読み出しディスターブが大きくなり、シフトが大きくなる。なお、隣接するデータ状態の分布は場合によって重なる可能性もある。ここで、この例では、読み出し電圧が低い閾値電圧分布に重なるので、図５ａの読み出し電圧が図５ｂで表わされるデータ状態を読み出すために使用される場合には、読み出しエラーが生じる可能性のあることが分かる。
【００３４】
さらに、読み出しディスターブは以下のような様々な要因に影響される可能性がある。その要因とは、プログラミング／消去サイクルの数（サイクルの数が増えて記憶素子に繰り返しストレスが加えられると読み出しディスターブが大きくなる）、データが書き込まれる時刻と読み出される時刻との間の温度変化（高温でより多くのディスターブが生じる）、ブロック内の記憶素子の相対位置（ブロック内の端のワードラインは、隣接するワードラインが１本であり、そのワードラインからしか影響を受けないので、ディスターブが少なくなる）、メモリデバイス内の電源のレベル（データが書き込まれる時刻と読み出される時刻の間にレベルが変わる可能性があり、記憶素子に印加される電圧が高くなると読み出しディスターブが大きくなる）、プログラム電圧レベル（プログラムレベルが高くなると、ストレスが大きくなり読み出しディスターブが大きくなる）、消去電圧レベル（消去レベルが高くなると、ストレスが大きくなり読み出しディスターブが大きくなる）、プログラム、読み出し、または消去電圧が印加される期間（期間が長くなると、ストレスが大きくなり読み出しディスターブが大きくなる）などである。
【００３５】
図５ｃは、図５ｂの閾値電圧分布の測定と対応する読み出し電圧の設定とを示す図である。
【００３６】
実際の閾値分布を測定する処理は、複数の独立した読み出しまたは検出動作でメモリデバイスを読み出すステップを有する。読み出し動作の数は、分布測定に必要な分解能に基づく。たとえば、メモリデバイスが１つの記憶素子で３ビットを表わす８つの状態を使用し、１状態当たり１０点の分解能が要求される場合には、読み出し動作は７９個の電圧閾値レベルの各々に対して実施される。図５ｃでは、各ドットが読み出し点を表わしており、実線は図５ｂと同じである。閾値電圧がビンで指定される範囲にある記憶素子の数を各ビンの高さで示すヒストグラムを提供することができる。最も適切な読み出しレベルは、たとえば、隣接する状態間の最小値として決定することができる。最小値の範囲が存在するときは、２つのデータ状態間の最も適切な読み出しレベルは、２つの状態の低い方の分布のすぐ上の値である可能性がある。ここで、読み出しレベルＶ’R1〜Ｖ’R7は、図５ｂのＶR1〜ＶR7レベルに対して最適レベルにシフトされている。一般に、前述のように、最大データ保持シフトをさらに可能にするためには、読み出しレベルを前のレベルにできる限り近づけることが望ましい。読み出しレベルＶ’R1〜Ｖ’R7を使用すると、図５ｂの読み出しレベルが使用される場合に起きる実質的な読み出しエラーが回避される。
【００３７】
読み出しディスターブは、ＮＡＮＤフラッシュメモリチップなどの不揮発性記憶装置における主要な信頼性の問題である。読み出しディスターブは、記憶素子が読み出し動作中に電圧を加えられてストレスを受けるときに生じる。電圧の振幅が大きく、印加期間が長くなると、より大きいストレスが生じる。電圧が印加される回数も要因であり、印加回数の増加はストレスの増加につながる。電圧の振幅に関しては、（ＶRと呼ばれる印加制御ゲート読み出し電圧を用いて）ブロック内の選択されたワードラインが読み出されるとき、同じブロック内の選択されていないワードラインは、ＮＡＮＤストリング内の選択されていない記憶素子をバイパスするために高い電圧（読み出しパス電圧またはＶREADと呼ばれる）に駆動される。さらに、読み出しパス電圧は、２Ｖなどのマージンだけ最高のＶR（たとえば、８つのデータ状態があるときはＶR7）を超えるように定められており、選択されていないワードライン上の選択されていない記憶素子をオーバードライブすることになる。さらに、１つの記憶素子に対して４ビットの技術（たとえば、１６のデータ状態を有する）における実効的な読み出しパス電圧は、記憶素子メモリ当たり２進値（２つのデータ状態）および２ビット（データ状態に対して）の実効的な読み出しパス電圧よりもはるかに高くなる可能性がある。それゆえ、将来のデバイスは、データ状態を増加させる方向に向かうので、読み出しディスターブ問題は一層重要になる。
【００３８】
８状態（記憶素子当たり３ビット）デバイスに対する電圧振幅に関しては、（８×４）−１＝３１の読み出し比較動作が考えられる。さらに、１００，０００回の読み出し動作が所望の耐用期間中に行われると仮定する。１００，０００回の読み出し動作とゼロソフトビット（たとえば、１５の異なる読み出しレベルでの順次読み出し）の場合、ブロックの開放期間は、１００，０００×３１×（各ＶREADに対する開放期間）である。さらに、１本のワードライン上ですべての記憶素子を読み出すのに要する時間は、１ストローブ検出を使用するかそれとも２ストローブ検出を使用するかに依存する。２ストローブ検出の場合の全開放時間は、１ストローブ検出の場合の全開放時間のほぼ２倍になる。このことから、印加される読み出しパス電圧の振幅および期間に基づいて記憶素子は重大なストレスに曝されることが分かる。
【００３９】
読み出し中止は、何度も読み出されたブロックのデータを書き直すために使用することができる。読み出し中止の一実施例は、すべての読み出しを基にブロックが書き直される僅かな機会をもたらす。僅かな機会は、乱数発生器を使用して作り出される。乱数発生器の使用は、実際の読み出し回数を計数し続けることよりも容易である。しかしながら、このアプローチは資源集約的であり記憶素子の実態を考慮しない。別の可能なアプローチでは、記憶素子がエラー訂正符号（ＥＣＣ）を用いて符号化されるデータを記憶し、データがエラーとなる度合いを判定するための読み出し中にＥＣＣ復号エンジンがモニターされる。たとえば、ＥＣＣ復号エンジンが収束するのに必要な時間、あるいは収束するのに必要な反復回数をモニターすることができる。これらの基準が閾値を超えると、書き直しが指示される。
【００４０】
特に、強力なＥＣＣ（ＳＥＣＣ）が使用されるときには、ＥＣＣがデータを訂正できる条件からＥＣＣが動作しないのに必要な条件を分離するシャープなカットオフポイントはそれほど存在しない。強力なＥＣＣは、たとえば、５〜８％の最大ビットエラーを訂正することができる。これは、ＳＥＣＣを使用すると、実質的に訂正ミスの可能性がないからである。ＥＣＣページの欠陥ビットの数があまりに多くなると、ＳＥＣＣアルゴリズムが収束しなくなる。しかし、この状態に至る前に収束が減速する。所要時間、または、ＳＥＣＣの収束を実現するために必要な反復回数は、早期警戒フラグとして働く可能性がある。ＳＥＣＣの収束に時間がかかり過ぎるか、または、ＥＣＣページの欠陥ビット数が所定値を超えると、制御部は、ブロックを書き直す必要があるかどうかを判定するために、データまたは分布マージンの読み出し調査を開始することができる。
【００４１】
発生する問題の１つは、時として、ユーザが特定ブロック内の１本のワードライン上の大量のデータを繰り返して読み出すことがあることである。ブロック内の選択されていないワードラインのみが読み出しディスターブに曝されるので、こうした状況では、対象の選択された１本のワードラインを読み出しても残りのブロックのデータをリフレッシュする必要性に関して適切な時期にフラグを立てることができない。また、留意すべきは、摩耗レベルが採用されるとき、ブロックのデータを書き直すとデータが他の物理ブロックに移動することである。それゆえ、場合によっては、特定ワードラインの１つまたは複数の記憶素子が繰り返し読み出されるので、１つまたは複数の選択された記憶素子自体はプログラムディスターブを避けられるが、他のワードラインの記憶素子が読み出しディスターブに曝されるディスターブ。特定のワードラインの選択された記憶素子は、一般に要求されるデータが特定ワードラインに記憶されるときなど、様々な状況において繰り返し読み出される。
【００４２】
結果として、ＥＣＣ復号エンジンは、特定のワードラインの選択された記憶素子からのデータを復号化するときに問題を示さないかもしれない。しかしながら、別のワードラインの（多くの読み出しディスターブを受けている）記憶素子ディスターブが引き続いて読み出されるときに、ＥＣＣ復号エンジンは、収束が遅く時間がかかるなどの重大な問題を示すかもしれず、あるいは収束すらしないかもしれない。基本的に、これは、発見される問題を訂正するには遅すぎるのかもしれない。それゆえ、ＥＣＣ復号エンジンの性能低下の進行をモニターして、リフレッシュを実施しあるいは他の是正措置を取る時期に関して適切な判断を下す機能が損なわれる。
【００４３】
読み出しレベルは、図５ｃに関連して先に説明したように、特定のワードラインの記憶素子のような１組の記憶素子の現在の閾値電圧分布に基づいて決定することができる。これは、動的検出点収集（ＤＳＰＡ）の一形態であり、定期的に実施可能であり、たとえば、ブロック内の全ての読み出しに対して、または、ブロック内の全てのｎ＞１読み出しに対して実施可能であり、あるいは、例外的に、たとえば、ＥＣＣ復号エンジン基準を超えて収束が困難であることが示されたときに実施することができる。読み出し比較レベルをベースラインレベルからどの程度ずらすべきかを判定するために、動的検出点収集は、１ソフトビット、２ソフトビット、またはそれ以上のソフトビットを用いて１ページまたは複数ページを読み出す（すなわち、８状態の記憶素子に対して７つの読み出しレベルよりも高い分解能で読み出す）ステップを含むことがある。電荷利得／損失は、動的検出点収集によって対処することができるメカニズムの１つである。
【００４４】
図６は、１組のワードラインの中における選択されたワードラインを示す図である。１組のワードライン６００は、この例では、８本のワードラインＷＬ０〜ＷＬ７を有する。選択されたワードライン６１５は、たとえばホスト読み出しコマンドに基づいて、読み出し対象として選択されたワードラインである。このワードラインは、関連するデータを記憶する記憶素子を有する。残りのワードラインは、選択されたワードライン６１５のソース側にある１組の選択されていないワードライン６２０と、選択されたワードライン６１５のドレイン側にある１組の選択されていないワードライン６１０とを含む。選定されたワードライン６０５は、無作為に選定されるか、さもなければ、更新され最適化された読み出し電圧を得るために選択されたワードライン６１５を読み出すより前に読み出されるように選定された選択されていないワードラインである。
【００４５】
一態様では、選択されたワードラインを読み出す読み出しコマンドが受信されたときに、無作為に選定された選択されていないワードラインで動的検出点収集が実施される。一つのアプローチでは、どの選択されていないワードラインが選定されてもよい。別のアプローチでは、１つまたは複数の選択されていないワードラインを除いて、任意の選択されていないワードラインが選定される。たとえば、ブロックにおける最初および最後の数本のワードラインと選択されたワードラインに隣接するワードラインは、他のワードラインよりも多い、または、少ない読み出しディスターブを受ける可能性があるので、除外されてもよい。
【００４６】
たとえば、ＷＬ０〜ＷＬ６３と表される６４本のワードラインがあり、選択されたワードラインがＷＷ５である場合を想定しよう。ＷＬ０およびＷＬ６１は最終ワードラインとして除外され、ＷＬ４およびＷＬ６はこれらがＷＬ５に隣接するので除外されるものと仮定すると、ＤＳＰＡの特徴評価に適した所定のワードラインの組は、たとえば、ＷＬ１〜ＷＬ３およびＷＬ７〜ＷＬ６０であるかもしれない。さらに、ホスト（または制御部）がＷＬ５を繰り返し読み出さなければならない状況を考えてみよう。この場合、一つの可能なアプローチでは、ＷＬ５を読み出すために発行されるあらゆるコマンドが、別のワードラインを最初に読み出すことになる。この別のワードラインがＤＳＰＡのために読み出される間に、ＷＬ５はＶREADに曝されることによって読み出しディスターブに曝される。その後、ＷＬ５が引き続いて読み出されると、モニターされるＷＬ５に対するＥＣＣ復号エンジン基準はブロックのより代表的なものになる。それゆえ、ブロック内の読み出しディスターブ問題の正確な早期警戒が得られ、したがって、制御部は、読み出しディスターブ問題がＥＣＣ復号エンジンを無効にするほど大きくなる前にブロックをリフレッシュするか、あるいは、別のブロックに書き直すなどの訂正処置を実施することができる。このアプローチは、必要なときにのみ読み出し中止を可能にする。
【００４７】
図７は、別のワードラインに基づいて選択されたワードラインを読み出すための読み出し比較レベルを設定する処理を示す図である。処理は、ステップ７００において読み出しコマンドを受信する。たとえば、メモリデバイスの制御部が、読み出しコマンドを外部のホスト制御部から受け取る。また、制御部は、ホスト制御部に関係なく内部で使用するデータの読み出しコマンドを発行することが可能である。ステップ７０５では、読み出しコマンドに基づいて選択されたワードラインを識別する。典型的には、ワードラインは、読み出しコマンド内のコードワードによって識別される。ステップ７１０では、別のワードラインを選定する。たとえば、これは、別のワードラインを無作為に選定することを含む。一つの可能なアプローチでは、選択されたワードラインに隣接するワードラインあるいはブロックの終わりのワードラインなど、特定のワードラインが除外される。このようなワードラインは、特にドレイン側の選択されたワードラインに隣接するワードラインにおいて、比較的重度の読み出しディスターブを受ける場合がある。このようなワードラインを避けることによって、ブロック全体のより代表的なる程度の読み出しディスターブを有するワードラインが選定される。
【００４８】
しかしながら、ステップ７１０における別の可能なアプローチは、選択されたワードラインに対してドレイン側で隣接するワードラインなど、隣接するワードラインを選定することである。これは、一般に、プログラミングがブロックのソース側からドレイン側に進行するときに、プログラムされていないかあるいは一部しかプログラムされていないワードラインである。これは、ブロック全体の中で最悪の読み出しディスターブを受けているワードラインを選択することを含む。選択されたワードラインが最終のドレイン側のワードラインである場合には、ソース側で隣接するワードラインが選定されてもよい。
【００４９】
ステップ７１５では、これらの記憶素子の閾値電圧分布を得るために、前記別のワードラインの記憶素子に対して検出動作を実施する。たとえば、これは、図５ｃにおいてドットで表わされる点の各々によって表わされるような複数の異なるレベルのワードライン電圧で一連の検出動作を実施することを含む。ステップ７２０では、閾値電圧分布における凹み部分を識別し、ステップ７２５では、凹み部分に基づいて読み出し比較レベルを決定する。たとえば、図５ｃにおける最適化された読み出し比較レベルＶ’R1〜Ｖ’R7を参照されたい。
【００５０】
これらの最適化された読み出し比較レベルが決定されると、ステップ７３０で最適化された読み出し比較レベルを用いて選択されたワードラインの不揮発性記憶素子に対して読み出し動作が実施される。ステップ７３５では、メモリデバイス内のバッファからの読み出しデータをホスト制御部に転送することなどして、結果が報告される。読み出し処理はステップ７４０で終了する。
【００５１】
ＷＬ０〜ＷＬ６３と表される６４本のワードラインを備える例を考えてみよう。ユーザがブロックのＷＬ５のページの読み出しを要求する場合には、ＷＬ５が選択されたワードラインである。この場合、まず、ＤＳＰＡ動作は、ＤＳＰＡの特徴評価に適した所定のワードラインの組の中から無作為にあるいは、別の方法で選定された別のワードラインに対して実施される。前記別のワードラインの選定には乱数発生器が使用されてもよい。あるいは、前記別のワードラインは、選択されたワードラインから所与のワードライン数だけずらされたワードラインを選定することによって、たとえば、ＷＬ５が選択されたワードラインであるときＷＬ１５を選定し、ＷＬ３５が選択されたワードラインであるときＷＬ４５を選定することなどによって作為的に選定することができ、この場合、ずれは＋１０ワードラインである。選択されたワードラインがドレイン側に近いときには、反対方向に、たとえば、−１０ワードランのずれによって、あるいは、計数が最初の望ましいソース側ワードラインで続くモジュロ計算によって、前記別のワードラインが選定されてもよく、たとえば、ＷＬ６０が選択されたワードラインであるときＷＬ８を選定してもよい。この場合、最終ワードラインＷＬ０およびＷＬ６３は除外される。
【００５２】
別の例のアプローチでは、選択されたワードラインから前記別のワードラインまでのずれは、各読み出し動作に対して、たとえば、＋１０ワードラインだけ変更される。それゆえ、ＷＬ５が最初に読み出されるときにはＷＬ１５を選定し、つぎに、ＷＬ５が再び読み出されるときにはＷＬ２５を選定し、以下同様に選定する。さらに別の例のアプローチでは、ワードラインのサブセットが無作為または作為的に選定され、サブセット内の特定ワードラインが無作為または作為的に選定される。たとえば、選択されたワードラインがＷＬ５の場合には、ワードラインのサブセットは、ＷＬ７〜ＷＬ１５（隣接するワードラインＷＬ６を除く）、ＷＬ１６〜２５、ＷＬ２６〜３５、ＷＬ３６〜４５、ＷＬ４６〜５５、ＷＬ５６〜６２、および、ＷＬ１〜ＷＬ３（最終ワードラインＷＬ６３およびＷＬ０と隣接するワードラインＷＬ４を除く）のように定義されてもよい。一つのアプローチでは、ＷＬ５が最初に読み出されるときに、ＷＬ７〜１５は選定されたサブセットとして選定されて、ＷＬ６〜ＷＬ１５の１つが前記別のワードラインとして無作為に選定され、ＷＬ５が２回目に読み出されるときには、ＷＬ１６〜２５が選定されたサブセットとして選定されて、ＷＬ１６〜２５の１つが前記別のワードラインとして無作為に選定され、以下同様である。
【００５３】
選択されたワードラインが読み出されるたびに、あるいは、それより少ない頻度で、最適な読み出し電圧または他の電圧を得るために、前記別のワードラインを選定して解析することができる。たとえば、別のワードラインを選定して新たな電圧を得るかどうかの判断を無作為または作為的に行なうことができ、したがって、この判断は、選択されたワードラインが読み出される回数に対して、平均的なまたは一定の間隔で周期的に行われる。あるいは、たとえば、選択されたワードラインが４回読み出された後、さらに、選択されたワードラインが８回読み出されるなど、一定でないインクリメントを採用することができる。
【００５４】
新たな電圧を得るかどうかの判断は、１本のワードラインが他のワードラインを読み出すことなく複数回読み出されるときに開始することができる。特定のワードラインが読み出された回数を追跡しないことが望まれる場合には、新たな電圧を任意のワードラインが読み出されるたびに得ることができる。ブロック内の任意のワードラインが読み出された回数を追跡する場合には、判断は、任意のワードラインのあらゆるｎ＞１の読み出し後に行なうことができる。ブロック内の任意のワードラインが読み出された回数を追跡しない場合には、判断は、無作為に、たとえば、特定の読み出しが別のワードラインを選定して新たな電圧を得ることにつながるかどうかを判定するために乱数発生器を用いて行なうことができる。読み出し動作がブロック全体のすべてあるいは大部分に関与する場合には、すべての記憶素子が同様の読み出しディスターブを受けることになるので、ワードラインを選定して新たな電圧を得る必要はないかもしれない。様々な他のアプローチも可能である。制御は、適切なデータを維持して所望の方式を実施することができる。
【００５５】
図８は、選択されたワードラインを読み出す読み出し比較レベルを、別のワードラインとエラー訂正基準に基づいて設定する処理を示す図である。ステップ８００、８０５、および８１０は、図７のステップ７００、７０５、および７１０にそれぞれ対応する。ステップ８１５では、別のワードラインの記憶素子の閾値電圧分布を得るために、ＥＣＣ復号などの、別のワードラインの記憶素子に対する検出動作を実施する。ステップ８２０では、ＥＣＣ復号処理に基づいて基準を決定する。たとえば、基準は、収束までの時間および／または反復回数を示すことがある。判断ステップ８２５において、基準が閾値（この閾値は、試験および／または理論計算に基づいて設定できる）より低ければ、ＥＣＣ復号処理は順調に進んでいる。この場合、処理は、ステップ８３５、８４０、８４５、８５０、および８５５に進み、これらのステップは図７のステップ７２０、７２５、７３０、７３５、および７４０にそれぞれ対応する。判断ステップ８２５において、基準が閾値未満でなければ、ＥＣＣ復号処理は順調に進んでおらず、ステップ８３０において、データの完全性についてさらに調査が実施され、および／または、データのリフレッシュ動作が実施される。さらなる調査は、たとえば、不正復号を有しているかどうかを判定するために１本または複数本の付加的ワードラインの付加的読み出し試験を含んでいてもよい。リフレッシュ動作は、たとえば、データを第１のブロックから第２のブロックにコピーすること、第１のブロックを消去すること、および、データを第１のブロックにコピーバックすることを含んでいてもよい。
【００５６】
ステップ８１０で、選択されたワードラインに対してドレイン側で隣接するワードラインなど、最悪の読み出しディスターブを伴うワードラインが選定されたときには、エラー基準は無作為選択が行なわれる場合よりもステップ８２５における閾値を超える可能性が高い。
【００５７】
図９は、第１の読み出し比較レベルから追加の読み出し比較レベルを決定することによって、選択されたワードラインを読み出す読み出し比較レベルを設定する処理を示す図である。図５ｃに示されるように、ＤＳＰＡの一部としてすべてのデータ状態で閾値電圧分布を決定することは、多数の検出動作を必要とし、したがって、処理集約的である。代替的なアプローチは、すべてのデータ状態よりも少ないデータ状態において閾値電圧分布を決定すること、および、その結果を基に他のデータ状態を推定することを含む。たとえば、得られる閾値電圧分布は、２つの隣接するデータ状態を区別するに足る電圧範囲に制限することができ、最適な読み出し比較レベルをこの結果から決定することができる。続いて、１つまたは複数の他のデータ状態に対する最適な読み出し比較レベルを、式に基づいて決定することができる。この式では、ベースラインレベルに対する所定のデータ状態の読み出し比較レベルのオフセットを他のデータ状態のオフセットに変換することができ、他のデータ状態の最適な読み出し比較レベルは既知のベースラインレベルおよびそれぞれのオフセットから得ることができる。一つの可能なアプローチでは、このオフセットは測定されたオフセットに等しく設定されるか、あるいは測定されたオフセットの何分の一かに設定される。ベースライン読み出しレベルは、読み出しディスターブがないときの試験および／または理論解析から最適であると分かる所定レベルとすることができる。
【００５８】
たとえば、８つのデータ状態および７つの読み出しレベルＶR1〜ＶR7があるものと仮定する。また、図５ａ〜５ｃを参照されたい。Ｖ’R7を決定するのに十分である閾値電圧分布が実施される。Ｖ’R7が決定されると、オフセットΔ7＝ＶR1−ＶR'7を決定することができる。この後、他の読み出しレベルに対するオフセットをΔ7の関数、たとえば、Δ1＝ｆ１（Δ7）、Δ2＝ｆ２（Δ7）、Δ3＝ｆ３（Δ7）Δ4＝ｆ４（Δ7）、Δ5＝ｆ５（Δ7）、Δ6＝ｆ６（Δ7）として決定することができる。一般に、状態ｉでは、Δi＝ｆｉ（Δ7）、およびＶ’Ri＝ＶRi＋Δiであり、ここで、ＶRiはベースライン読み出しレベルである。例として、Δ7は０．５Ｖであってもよく、式はオフセットが下位の読み出しレベルで小さくなる試験および／または理論解析を示していてもよく、このことから、たとえば、Δ1＝０．４×Δ7＝０．２０Ｖ、Δ2＝０．５×Δ7＝０．２５Ｖ、Δ3＝０．６×Δ7＝０．３０Ｖ、Δ4＝０．７×Δ7＝０．３５Ｖ、Δ5＝０．８×Δ7＝０．４０Ｖ、およびΔ6＝０．９×Δ7＝０．４５Ｖと決定できる。この場合、状態１〜６に対する最適読み出し比較レベルがＶ’R1＝ＶR1−０．２０Ｖ、Ｖ’R2＝ＶR2−０．２５Ｖ、Ｖ’R3＝ＶR3−０．３０Ｖ、Ｖ’R4＝ＶR4−０．３５Ｖ、Ｖ’R5＝ＶR5−０．４０Ｖ、およびＶ’R6＝ＶR6−０．４５Ｖとして計算される。なお、ここでは、オフセットが負であると仮定しており、これはベースライン読み出しレベルが正の場合である。ベースライン読み出しレベルが負であれば、オフセットは正になる。
【００５９】
したがって、第１の読み出し比較電圧を決定するために２つの最高位のプログラムされた状態（たとえば、状態６および７）を含む電圧範囲を読み出すことができる。第１の読み出し比較電圧が決定されると、他の状態に対するオフセットと対応する最適な読み出し比較電圧が決定される。
【００６０】
なお、読み出しディスターブは閾値電圧とともに大きくなるので、最高位の状態は結果を基に他のデータ状態を正確に推定できる大きい信号対雑音比を備えていてもよい。メモリデバイスの具体的な技術のデバイスレベルの特徴評価に基づいて、最高位の状態に対するオフセットが分かると、すべての状態に対するオフセットを決定することができる。また、１つよりも多いが全部よりも少ないデータ状態に対するずれを得ることも可能であり、これらの結果を利用して他のデータ状態をより正確に推定することも可能である。また、最高位から２番目の状態も好結果をもたらす可能性がある。
【００６１】
最後の２つの状態の分布間の凹み部分は高い精度で特定される必要があるので、電圧領域を細かい分解能でスキャンするべきである。たとえば、４００ｍＶの範囲をスキャンする２５ｍＶのスキャンステップサイズは１６個の読み出しをもたらし、これは任意のページ（１６のデータ状態を仮定）で実施される一般的な１５個の読み出し（ソフトビットなし）に近い数である。これによって、選択されたワードラインが受けるＶREADの曝露が、少なくとも、選択されたワードラインの定期的な読み出しの間に残りのブロックが受けるＶREADの曝露と同等であることが確実になる。選択されていないワードラインの多くは、選択されたワードラインの２倍の時間ＶREADに曝されるということが言える。このことを考慮して、書き直しを開始する基準をさらに厳しくすることができる。
【００６２】
図９を参照すると、ステップ９００では、データを読み出すコマンドを受信する。ステップ９０５では、読み出しコマンドから選択されたワードラインを識別する。つぎに、選択されていないワードラインを含む１つの経路と選択されたワードラインを含む１つの経路からなる２つの経路のうちの一方を辿ることができる。１つの経路では、ステップ９１０で別のワードラインが選定される。ステップ９１５では、別のワードラインの記憶素子に対して検出動作を実施して、第１の対となる隣接するデータ状態における隣接するデータ状態を区別するのに十分な閾値電圧分布を得る。第２の経路では、ステップ９２０はステップ９１５と同じであるが、選択されたワードラインを含む。いずれの場合でも、ステップ９２５では、閾値電圧分布における凹み部分を識別し、ステップ９３０では、凹み部分に基づいて第１の読み出し比較レベルを決定する。たとえば、これは図５ｃにおけるＶ’R7である。
【００６３】
ステップ９３５において、第１の読み出し比較レベルとオプションとしての他の要因とに基づいて、前述のような式を用いて他の読み出し比較レベルを決定する。他の要因は、たとえば、プログラム／消去サイクルの数、１組のワードライン内における選択されたワードラインの位置、温度依存性、および、電源レベル依存性（ボックス９４０）を含むことができる。たとえば、試験および／または理論計算は、特定のメモリデバイスに関して、上記変数のいずれかが最適な読み出しレベルに影響を及ぼすことを示すかもしれない。さらに、１組の変数の元で最適である最適読み出し比較レベルは、別の１組の変数が存在するときに調整することができる。たとえば、各データ状態のオフセットが、プログラム／消去サイクルの数に基づいて変更されてもよい。一例として、高位の状態のオフセットは低位の状態のオフセットよりも増加が大きいかもしれない。１つの状態のオフセットを別の状態のオフセットに関係付ける式は、適宜調整することができる。
【００６４】
同様に、１つのワードラインに対して決定された所定の状態に関する最適な読み出しレベルが、ワードライン位置に基づいて別のワードラインに対して調整されるべきであると判断されてもよい。ワードラインは、比較的類似したレベルの読み出しディスターブを受けるワードラインのサブセット、たとえば、ソース側ワードライン、中間ワードライン、およびドレイン側ワードラインにグループ化されてもよい。
【００６５】
温度依存性に関して、記憶素子の閾値電圧は、−２ｍＶ／℃ずつ低下する。また、より多くのディスターブが高温で発生する。それゆえ、最適な読み出し比較レベルが決定されるときに温度があるベースラインレベルよりも高い場合には、この事実は、温度が異なるときに後で使用されるときに最適な読み出し比較レベルが適切に調整されるよう明らかにされるべきである。温度依存性回路は温度の指示を与えることができる。温度依存性基準信号を与える様々な方法が知られている。一つの可能アプローチでは、バンドギャップ回路が使用される。たとえば、参照によって本明細書に組み込まれる「Ｖｏｌｔａｇｅ  Ｇｅｎｅｒａｔｉｏｎ  Ｃｉｒｃｕｉｔｒｙ  Ｈａｖｉｎｇ  Ｔｅｍｐｅｒａｔｕｒｅ  Ｃｏｍｐｅｎｓａｔｉｏｎ」と題する米国特許第６，８０１，４５４号明細書には、温度係数に基づいて不揮発性メモリに読み出し電圧を出力する電圧発生回路が記載されている。この回路では、温度非依存性部分と温度が上昇するにつれて増加する温度依存性部分とを含むバンドギャップ電流が使用される。
【００６６】
電源レベル依存性に関して、電源レベルは補償付きの場合でも変化する可能性があり、その結果として、検出中に使用される電圧は変化する可能性がある。このような変化は、適切な回路を用いて追跡し、最適な読み出し比較レベルが得られるよう適切に調整することができる。
【００６７】
ステップ９４５では決定された読み出し比較レベルを用いて選択されたワードラインの記憶素子に対して読み出し動作を実施し、ステップ９５０では結果を報告し、処理はステップ９５５で終了する。図１０は、第１の読み出し比較レベルから追加の読み出し比較レベルを決定することによって選択されたワードラインを読み出す読み出し比較レベルを設定する処理のさらなる詳細を示す図である。ステップ１０００では、８つの状態（図５ａ〜５ｃ参照）があるときに、２つの最高位の隣接するデータ状態（たとえば、状態６と状態７）を区別するのに十分な閾値電圧分布を得るために記憶素子（選択されたワードライン又は別のワードラインの）に対して検出動作を実施する。複数のデータ状態が下位の範囲から上位の範囲まで延びており、隣接するデータ状態６および７は上位の範囲にある。
【００６８】
ステップ１００５では閾値電圧分布における凹み部分を特定し、ステップ１０１０では凹み部分に基づいて第１の読み出し比較レベル（たとえば、Ｖ’R7）を設定する。ステップ１０１５では、第１の読み出し比較レベルと関連するベースライン読み出しレベルとの差（たとえば、Ｖ’R7−ＶR7）に基づいて第１のシフト（たとえば、Δ7）を決定する。ステップ１０２０では、第１のシフトとオプションとしての他の要因とに基づいて、式に基づいて他の読み出し比較レベルが決定される。各ベースライン読み出し比較レベルは、各比較レベルに対する追加の検出動作を実施することなく、関連する閾値電圧シフトによって新たな最適化された比較レベルに修正される。したがって、最適化された比較レベルは、下位の状態の領域にあるデータ状態に対して、たとえば、状態０および１に対してＶ’R1、状態１および２に対してＶ’R2、などのように決定される。他の要因として、たとえば、プログラム／消去サイクルの数、１組のワードライン内における選択されたワードラインの位置、温度依存性、および、電源レベル依存性を挙げることができる（ボックス１０２５）。ステップ１０３０では、決定された読み出し比較レベルを用いて選択されたワードラインの記憶素子に対して読み出し動作を実施し、ステップ１０３５では結果を報告し、処理はステップ１０４５で終了する。
【００６９】
図１１は、図１および２に示したようなＮＡＮＤ記憶素子のアレイ１１００の一例を示している。各列に沿って、ビットライン１１０６は、ＮＡＮＤストリング１１５０のドレイン選択ゲートのドレイン端子１１２６に接続されている。ＮＡＮＤストリングの各行に沿って、ソースライン１１０４は、ＮＡＮＤストリングのソース選択ゲートのすべてのソース端子１１２８を接続している。メモリシステムの一部としてのＮＡＮＤアーキテクチャアレイ及びその動作の一例は、米国特許第５，５７０，３１５号、第５，７７４，３９７号、及び第６，０４６，９３５号に記載されている。
【００７０】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは基本プログラミング動作として一度に書き込まれる最小数の記憶素子を有する。一般に、記憶素子の１行に１ページ以上のデータを記憶する。１ページは１つ以上のセクタを記憶できる。１つのセクタは、ユーザデータとオーバヘッドデータを有する。オーバヘッドデータは一般に、そのセクタのユーザデータから計算されたエラー訂正符号（ＥＣＣ）を有する。制御部（後述）の一部は、データがアレイ内に書き込まれるときにＥＣＣを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにも記憶される。
【００７１】
ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４，１２８またはそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００７２】
一実施形態では、ソースラインとビットラインをフローティングさせた状態で、ｐ−ウェルを十分な期間に亘って消去電圧（例えば２０Ｖ）に上昇し、選択されたブロックのワードラインを接地させることによって、メモリ記憶素子は消去される。容量結合のために、選択されていないワードライン、ビットライン、選択されたライン、及び、ｃ−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、ファウラ−ノルドハイムトンネルメカニズムによってフローティングゲートの電子が基板側に放出され、選択された記憶素子のデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は低下する。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
【００７３】
図１２は、単一の行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。図は、本発明の一実施形態に従って記憶素子のページを同時に読み取り、プログラミングするための読み出し／書き込み回路を有するメモリ素子１２９６を示している。メモリ装置１２９６は、１つ以上のメモリダイ１２９８を有する。メモリダイ１２９８は、２次元のアレイの記憶素子１１００、制御回路１２１０、及び、読み出し／書き込み回路１２６５を有する。いくつかの実施形態では、記憶素子のアレイは３次元である。メモリアレイ１１００は行デコーダ１２３０を介してワードラインによって、及び、列デコーダ１２６０を介してビットラインによってアドレスできる。読み出し／書き込み回路１２６５は複数の検出ブロック１２００を有しており、１ページの記憶素子を並列に読み出し又はプログラミングすることができる。一般に、制御部１２５０は、１つ以上のメモリダイ１２９８のように同じメモリ装置１２９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン１２２０を介してホストと制御部１２５０の間、及び、ライン１２１８を介して制御部と１つ以上のメモリダイ１２９８の間で送られる。
【００７４】
制御回路１２１０は、読み出し／書き込み回路１２６５と協調して、メモリアレイ１１００上でメモリ動作を実行する。制御回路１２１０は、ステートマシン１２１２、オンチップアドレスデコーダ部１２１４、及び、電力制御モジュール１２１６を有している。ステートマシン１２１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ１２１４は、ホスト又はメモリ制御部によって用いられるとともに、デコーダ１２３０及び１２６０によって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール１２１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００７５】
いくつかの実施形態では、図１２の構成要素のいくつかを結合することができる。多様な設計では、記憶素子アレイ１１００以外の構成要素の１つまたは複数を（単独でまたは組み合わせて）１つの管理回路と見なすことができる。例えば、一つ以上の管理回路は、制御回路１２１０、ステートマシン１２１２、デコーダ１２１４／１２６０、電力制御１２１６、検出ブロック１２００、読み出し／書き込み回路１２６５、制御部１２５０等の内の１つ、または組み合わせを有してよい。
【００７６】
図１３は、二重行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。ここでは、図１２に図示されるメモリ素子１２９６の別の配列が示される。多様な周辺回路によるメモリアレイ１１００に対するアクセスは、アレイの両側で対称式に実現され、その結果各側のアクセスラインと回路網の密度は半分に低減される。従って、行デコーダは行デコーダ１２３０Ａと１２３０Ｂに分割され、列デコーダは列デコーダ１２６０Ａと１２６０Ｂに分割されている。同様に、読み出し／書き込み回路は、アレイ１１００の底部からビットラインに接続する読み出し／書き込み回路１２６５Ａと、アレイ１１００の上部からビットラインに接続する読み出し／書き込み回路１２６５Ｂに分割されている。この方法により、読み出し／書き込みモジュールの密度は実質的に二分の一に低減される。図１３の装置は、図１２の装置で上述したような制御部を有することもできる。
【００７７】
図１４は、検出ブロックの一実施形態を示すブロック図である。個々の検出ブロック１２００は、検出モジュール１２８０と呼ばれるコア部と共通部１２９０とに分割される。一実施形態では、各ビットラインの別個の検出モジュール１２８０と、複数の検出モジュール１２８０の集合の１つの共通部１２９０があってもよい。一例では、検出ブロックは、１つの共通部１２９０と８つの検出モジュール１２８０を有することができる。グループ内の各検出モジュールは、データバス１２７２を介して関連する共通部と通信できる。さらなる詳細としては、米国特許出願公開第２００６／０１４０００７号、「Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ＆  Ｍｅｔｈｏｄ  ｗｉｔｈ  Ｓｈａｒｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  ｆｏｒ  ａｎ  Ａｇｇｒｅｇａｔｅ  ｏｎ  Ｓｅｎｓｅ  Ａｍｐｌｉｆｉｅｒｓ」、公開日２００６年６月２９日を参照する。その全体は参照することにより本明細書に組み込まれる。
【００７８】
検出モジュール１２８０は検出回路１２７０を有しており、検出回路１２７０は接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。検出モジュール１２８０はさらにビットラインラッチ１２８２を有しており、ビットラインラッチ１２８２は接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ１２８２内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態（例えば、Ｖｄｄ）に設定される
【００７９】
共通部１２９０は、プロセッサ１２９２、１セットのデータラッチ１２９４、及び１セットのデータラッチ１２９４とデータバス１２２０の間を接続するＩ／Ｏインタフェース１２９６を有する。プロセッサ１２９２は計算を実行する。例えば、その機能の１つは、検出された記憶素子内に記憶されているデータを判定し、判定したデータを１セットのデータラッチ内に記憶することである。１セットのデータラッチ１２９４は、読み出し動作中に、プロセッサ１２９２によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス１２２０から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムされる予定の書き込みデータを表す。Ｉ／Ｏインタフェース１２９６は、データラッチ１２９４とデータバス１２２０の間のインタフェースを提供する。
【００８０】
読み出し又は検出中には、システムの動作はステートマシン１２１２の制御下にあり、ステートマシン１２１２はアドレスされた記憶素子への異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール１２８０はこれらの電圧の１つに移動し、バス１２７２を介して検出モジュール１２８０からプロセッサ１２９２に出力が提供される。その時点で、プロセッサ１２９２は、検出モジュールの移動イベントと、ステートマシンから入力ライン１２９３を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を特定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ１２９４に記憶する。コア部の別の実施形態では、ビットラインラッチ１２８２は、検出モジュール１２８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方の機能を兼ねる。
【００８１】
当然のことながら、いくつかの実施形態では複数のプロセッサ１２９２を有することができる。一実施形態では、各プロセッサ１２９２は出力ライン（図示せず）を有し、各出力ラインは共にワイヤードＯＲ接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続する前に反転される。ワイヤードＯＲを受け取るステートマシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の迅速な決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理０がワイヤードＯＲラインに送られる（又はデータ１を反転させる）。全てのビットがデータ０を出力する（又はデータ１を反転させる）と、ステートマシンはプログラミング処理を終了することを認識する。各プロセッサが８つの検出モジュールと通信するので、ステートマシンはワイヤードＯＲラインを８回読み出す必要があるか、あるいは関連するビットラインの結果を蓄積するために論理がプロセッサ１２９２に追加され、ステートマシンがワイヤードＯＲラインを一度だけ読み出せば良いようにする。同様に、論理レベルを正しく選ぶことにより、グローバルステートマシンは、第１のビットがいつその状態を変更し、これに応じてアルゴリズムを変更するのかを検知できる。
【００８２】
プログラム又は検証中に、プログラムされるデータはデータバス１２２０から１組のデータラッチ１２９４内に記憶される。ステートマシンの制御下の書き込み動作は、アドレス指定される記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを有する。各プログラムパルスに続いてリードバック（検証）が実行され、記憶素子が所望のメモリ状態にプログラムされたかどうかが判定される。プロセッサ１２９２は、所望のメモリ状態に対するリードバックメモリ状態を監視する。その２つが一致する場合、プロセッサ１２９２はビットラインラッチ１２８２を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、プログラムパルスがその制御ゲートに印加されたとしても、ビットラインに接続された記憶素子がさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ１２８２をロードし、検出回路が検証処理中に禁止値にそれを設定する。
【００８３】
データラッチスタック１２９４は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール１２８０毎に３つのデータラッチが存在する。いくつかの実施形態では、（必須ではないが）データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス１２２０のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを形成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、ｒ個の読み出し／書き込みモジュールのバンクを調整し、その組のデータラッチが読み出し／書き込みブロックの全体のシフトレジスタの一部であっても、その組のデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
【００８４】
不揮発性記憶装置の多様な実施形態の構造及び／または動作についての追加情報は、（１）米国特許第７，１９６，９３１号、２００７年３月２７日発行、「Ｎｏｎ−ｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ａｎｄ  Ｍｅｔｈｏｄ  Ｗｉｔｈ  Ｒｅｄｕｃｅｄ  Ｓｏｕｒｃｅ  Ｌｉｎｅ  Ｂｉａｓ  Ｅｒｒｏｒｓ」、（２）米国特許第７，０２３，７３６号、２００６年４月４日発行、「Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ａｎｄ  Ｍｅｔｈｏｄ  ｗｉｔｈ  Ｉｍｐｒｏｖｅｄ  Ｓｅｎｓｉｎｇ」、（３）米国特許第７，０４６，５６８号、２００６年５月１６日発行、「Ｍｅｍｏｒｙ  Ｓｅｎｓｉｎｇ  Ｃｉｒｃｕｉｔ  Ａｎｄ  Ｍｅｔｈｏｄ  Ｆｏｒ  Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｏｐｅｒａｔｉｏｎ」、（４）米国特許第７，１９６，９２８、２００７年３月２７日発行、「Ｃｏｍｐｅｎｓａｔｉｎｇ  ｆｏｒ  Ｃｏｕｐｌｉｎｇ  Ｄｕｒｉｎｇ  Ｒｅａｄ  Ｏｐｅｒａｔｉｏｎｓ  ｏｆ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ」、及び、（５）米国特許第７，３２７，６１９号、２００８年２月５日発行、「Ｒｅｆｅｒｅｎｃｅ  Ｓｅｎｓｅ  Ａｍｐｌｉｆｉｅｒ  Ｆｏｒ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ」に記載されている。以上に示した特許文書の５つの全ては、その全体を参照することにより本明細書に組み込まれる。
【００８５】
図１５は、全ビットラインメモリアーキテクチャのために、又は、奇数−偶数メモリアーキテクチャのために、メモリアレイをブロックに編成する例を示す。メモリアレイ１５００の例示的な構造が説明される。一例として、１，０２４個のブロックに分割されるＮＡＮＤフラッシュＥＥＰＲＯＭが説明されている。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックに、ビットラインＢＬ０、ＢＬ１、・・・ＢＬ８５１１に対応する８，５１２の列が存在する。全ビットライン（ＡＢＬ）アーキテクチャ（アーキテクチャ１５１０）と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラミング動作中に同時に選択される。共通のワードラインに沿っており、任意のビットラインに接続される記憶素子は、同時にプログラミングされる。
【００８６】
上記の例では、４つの記憶素子が直列に接続されることでＮＡＮＤストリングが形成されている。各ＮＡＮＤストリングに４つの記憶素子が含まれるように示されているが、４つより多くてもよく、４つより少なくてもよい（例えば、１６個、３２個、６４個または他の数）。ＮＡＮＤストリングの１つの端子が（選択ゲートドレインラインＳＧＤに接続されている）ドレイン選択ゲートを介して対応するビットラインに接続されており、別の端子が（選択ゲートソースラインＳＧＳに接続されている）ソース選択ゲートを介してｃ−ソースに接続されている。
【００８７】
奇数−偶数アーキテクチャ（アーキテクチャ１５００）と呼ばれる他の実施形態では、ビットラインは偶数ビットライン（ＢＬｅ）と奇数ビットライン（ＢＬｏ）に分割される。奇数−偶数アーキテクチャでは、共通ワードラインに沿っており、奇数ビットラインに接続されている記憶素子群は同時にプログラミングされ、共通ワードラインに沿っており、偶数ビットラインに接続されている記憶素子群は別のタイミングで同時にプログラミングされる。この例では、各ブロック内に８，５１２の列があり、これらの列は偶数列と奇数列に分けられる。この例では、４つの記憶素子が直列に接続されてＮＡＮＤストリングを構成するものとして示されている。４つの記憶素子が各ＮＡＮＤストリングに含まれるように示されているが、４つより多い、または、４つより少ない記憶素子が使用されてもよい。
【００８８】
読み出し動作及びプログラミング動作の１つの構成の間に、４，２５６個の記憶素子が同時に選択される。選択された記憶素子は、同じワードラインと同じ種類のビットライン（例えば、偶数又は奇数）を有する。従って、１論理ページを形成する５３２バイトのデータを同時に読み出し、あるいは、プログラミングすることが可能であり、１ブロックのメモリが少なくとも８論理ページ（それぞれ奇数ページと偶数ページがある４ワードライン）を記憶できる。マルチステート記憶素子の場合、各記憶素子が２ビットのデータを記憶し、これらの２ビットのそれぞれが別のページに記憶されると、１ブロックは１６の論理ページを記憶する。他のサイズのブロック及びページを使用することも可能である。
【００８９】
ＡＢＬアーキテクチャ又は奇数−偶数アーキテクチャの何れかの場合は、ｐ−ウェルを消去電圧（例えば２０Ｖ）に上昇させ、選択されたブロックのワードラインを接地することによって、記憶素子を消去できる。ソースライン及びビットラインはフローティングされる。消去は、メモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行できる。電子は、記憶素子のフローティングゲートからｐ−ウェル領域に移され、記憶素子のＶTHが負となる。
【００９０】
読み出し動作及び検証動作では、選択ゲート（ＳＧＤとＳＧＳ）が２．５〜４．５Ｖの範囲の電圧に接続され、選択されていないワードライン（例えば、ＷＬ２が選択されたワードラインであるときにＷＬ０、ＷＬ１、及び、ＷＬ３）は読み出しパス電圧ＶREAD（通常、４．５〜６Ｖの範囲の電圧）に上昇されてトランジスタをパスゲートとして動作させる。選択されたワードラインＷＬ２は所定の電圧に接続され、その電圧のレベルは、関係する記憶素子のＶTHがこのようなレベルを超えているのか、あるいは、下回っているのかを決定するために、読み出し動作及び検証動作ごとに指定される。例えば、２レベルの記憶素子のための読み出し動作では、選択されたワードラインＷＬ２が接地されて、ＶTHが０Ｖより高いか否かが検出される。２レベル記憶素子の検証動作では、選択されたワードラインＷＬ２が例えば０．８Ｖに接続されて、ＶTHが少なくとも０．８Ｖに到達したか否かが検証される。ソース及びｐ−ウェルは０Ｖとされる。偶数ビットライン（ＢＬｅ）であると仮定される選択されたビットラインは、例えば０．７Ｖのレベルに事前充電される。ＶTHがワードライン上の読み出しレベル又は検証レベルより高い場合は、対象の記憶素子と関連するビットライン（ＢＬｅ）の電位レベルは、非導電性記憶素子のために高いレベルに維持される。他方、ＶTHが読み出しレベル又は検証レベルより低い場合は、導電性記憶素子がビットラインを放電するために、対象のビットライン（ＢＬｅ）の電位レベルは、例えば０．５Ｖ未満等の低いレベルに減少する。これによって、記憶素子の状態が、ビットラインに接続される電圧比較検出アンプによって検出される。
【００９１】
前述される消去動作、読み出し動作、及び、検証動作は、従来の既知の技法に従って実行される。従って、説明されている詳細の多くは、当業者によって変えられることがある。従来既知の他の消去技法、読み出し技法、及び検証技法も使用できる。
【００９２】
図１６は、閾値電圧分布のセットを例示する。記憶素子アレイの例示のＶTH分布は、各記憶素子が２ビットのデータを記憶するケースに対して提供されている。第１の閾値電圧分布Ｅは、消去された記憶素子に対して提供される。プログラミングされた記憶素子の３つの閾値電圧分布、Ａ、Ｂ及びＣも示されている。一実施形態では、Ｅ分布の閾値電圧は負であり、Ａ分布、Ｂ分布及びＣ分布の閾値電圧は正である。
【００９３】
それぞれの閾値電圧範囲は、データビットのセットの所定値に対応する。記憶素子にプログラミングされたデータと記憶素子の閾値電圧レベルの特殊な関係は、記憶素子のために採用されるデータ符号化方式に依存する。例えば、両方ともその全体を参照することにより本明細書に組み込まれる、２００７年６月２６日に発行された米国特許第６，２２２，７６２号及び米国特許第７，２３７，０７４号は、マルチ状態フラッシュメモリ素子の多様なデータ符号化方式を説明する。一実施形態では、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。４つの状態が示されているが、本発明は、４つの状態より多い又は少ない構造を含む他のマルチステート構造に使用することもできる。
【００９４】
読み出し参照電圧Ｖｒａ、Ｖｒｂ、及び、Ｖｒｃは、記憶素子からデータを読み出すために印加される。既定の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ及びＶｒｃを上回っているのか、あるいは下回っているのかをテストすることによって、システムは、記憶素子の状態、即ち、プログラム状態を判定することができる。
【００９５】
さらに、３つの検証参照電圧Ｖｖａ、Ｖｖｂ、及び、Ｖｖｃが提供される。記憶素子を状態Ａにプログラミングするときに、システムは、それらの記憶素子がＶｖａ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｂにプログラミングするときに、システムは、記憶素子がＶｖｂ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｃにプログラミングするときに、システムは、記憶素子がＶｖｃ以上の閾値電圧を有するかどうかをテストする。
【００９６】
フルシーケンスプログラミングとして知られている一実施形態においては、記憶素子は、消去状態Ｅからプログラミンされた状態Ａ、Ｂ又はＣの何れかに直接的にプログラミングされる。例えば、まず、プログラミングされる記憶素子の集合中の全ての記憶素子が消去状態Ｅとなるように、集合が消去される。次に、図２０の制御ゲート電圧シーケンスで示されるような一連のプログラムパルスが、記憶素子を状態Ａ、Ｂ又はＣに直接的にプログラミングするために使用される。いくつかの記憶素子は状態Ｅから状態Ａにプログラムされ、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラミングされる。選択されたワードラインＷＬｎ上で状態Ｅから状態Ｃにプログラミングするときには、ＷＬｎにあるフローティングゲートの電荷量の変化が、状態Ｅを状態Ａにあるいは状態Ｅを状態Ｂにプログラミングするときの電荷の変化に比較して極めて大きいため、ＷＬｎ−１にある隣のフローティングゲートへの寄生結合の量は最大に達する。状態Ｅから状態Ｂにプログラミングするときは、隣のフローティングゲートへの結合の量は少なくなる。状態Ｅから状態Ａにプログラミングするときは、結合の量はさらに少なくなる。
【００９７】
図１７は、２つの異なるページ（下位ページと上位ページ）に対してデータを記憶するマルチステート記憶素子にプログラムする２パス技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下位ページが「０」を記憶し、上位ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下位ページが「１」を記憶し、上位ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能である。
【００９８】
第１プログラミングパスでは、記憶素子の閾値電圧レベルは下位の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印１１００で示すように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラミングパスを終了する。
【００９９】
第２プログラミングパスでは、記憶素子の閾値電圧レベルは上位論理ページ内にプログラムされるビットに従って設定される。上位論理ページビットが論理「１」を記憶する場合、記憶素子は下位ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上位ページビットは「１」を保持するのでプログラミングは生じない。上位ページビットが論理「０」である場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印１７２０で示すたように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミングパスの結果として記憶素子が状態Ａ内にプログラムされれば、記憶素子はさらに第２パスでプログラムされ、矢印１７１０で示すように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下位ページ用のデータを変更することなく、上位ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。図１６および１７の両方において、隣接するワードライン上でフローティングゲートへの結合量は最終状態に依存する。
【０１００】
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラミング処理は受け取ったデータを用いて下位ページプログラミングを実行できる。次のデータを受け取ったときは、システムは上位ページをプログラミングする。さらに別の実施形態では、システムは下位ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、米国特許第７，１２０，０５１号、「Ｐｉｐｅｌｉｎｅｄ  Ｐｒｏｇｒａｍｍｉｎｇ  ｏｆ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｉｅｓ  Ｕｓｉｎｇ  Ｅａｒｌｙ  Ｄａｔａ」、発行日２００６年１０月１０日に開示されている。その全体は参照することによって本明細書に組み込まれる。
【０１０１】
図１８ａ〜ｃは、前のページの隣の記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合の影響を低減する不揮発性メモリをプログラムする別の方法を開示している。実施形態の一例では、不揮発性記憶素子は、４つのデータ状態を用いて記憶素子毎に２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラムされた状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は２ページ分のデータを記憶する。参照のために、これらのページのデータは上位ページ及び下位ページと呼ばれるが、他のラベルを与えることもできる。状態Ａを参照すると、上位ページはビット０を記憶し、下位ページはビット１を記憶している。状態Ｂを参照すると、上位ページはビット１を記憶し、下位ページはビット０を記憶している。状態Ｃを参照すると、両方のページがビットデータ０を記憶している。
【０１０２】
プログラミング処理は、２つのステップの処理である。第１ステップでは、下位ページをプログラムする。下位ページがデータ１のままである場合、記憶素子状態は状態Ｅに留まる。データが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｂ’にプログラムされる。従って、図１８ａは、状態Ｅから状態Ｂ’への記憶素子のプログラミングを示している。状態Ｂ’は中間状態Ｂであり、従って、検証点はＶｖｂ’として示され、Ｖｖｂより低い。
【０１０３】
一実施形態では、状態Ｅから状態Ｂ’に記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下位ページに対してプログラムする。例えば、図２を見直すと、記憶素子１０６の下位ページをプログラムした後に、記憶素子１０４の下位ページをプログラムする。記憶素子１０４をプログラムした後に、記憶素子１０４が状態Ｅから状態Ｂ’に上昇した閾値電圧を有していれば、フローティングゲート間結合の影響は記憶素子１０６の見かけの閾値電圧を上昇させる。これは、図１８ｂの閾値電圧分布１８５０に示したように状態Ｂ’の閾値電圧分布を拡大する影響を有する。閾値電圧分布のこの見かけの拡大は、上位ページをプログラムする際に修正される。
【０１０４】
図１８ｃは、上位ページをプログラムする工程を示している。記憶素子が消去状態Ｅであって上位ページが１に留まる場合、記憶素子は状態Ｅに留まる。記憶素子が状態Ｅであり、その上位ページデータが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ａになる。記憶素子が中間の閾値電圧分布１８５０であって上位ページデータが１に留まる場合、記憶素子は最終状態Ｂにプログラムされる。記憶素子が中間の閾値電圧分布１８５０であって上位ページデータがデータ０になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｃになる。隣接記憶素子の上位ページプログラミングだけが所定の記憶素子の見かけの閾値電圧に影響を与えるので、図１８ａ〜ｃで示した工程はフローティングゲート間結合影響を低減する。別の状態符号化の一例は、上位ページデータが１であるとき分布１８５０から状態Ｃに移動することであり、上位ページデータが０であるとき状態Ｂに移動することである。
【０１０５】
図１８ａ〜ｃは４つのデータ状態と２つのページデータに対する一例を提供するが、開示された概念は４つの状態より多い、又は少ない状態、及び２つのページとは異なるページを備えた他の実施形態に適用することもできる。
【０１０６】
図１９は、不揮発性メモリをプログラミングする方法の一実施形態を示すフローチャートである。一実施形態では、記憶素子はプログラミングの前に（ブロック単位または他の単位で）消去される。ステップ１９００では、「データロード」コマンドが制御部によって発行され、入力が制御回路１２１０によって受信される。ステップ１９０５では、ページアドレスを指定するアドレスデータが制御部またはホストからデコーダ１２１４に入力される。ステップ１９１０では、アドレス指定されたページのプログラムデータの１ページが、プログラミング用のデータバッファに入力される。そのデータは、ラッチの適切なセットにラッチされる。ステップ１９１５では、「プログラム」コマンドが、制御部によって状態マシン１２１２に発行される。
【０１０７】
「プログラム」コマンドによってトリガされることで、ステップ１９１０でラッチされたデータは、適切な選択されたワードラインに印加される図２０のパルス列２０００のステップ状のプログラムパルスを用いてステートマシン１２１２によって制御される選択された記憶素子にプログラミングされる。ステップ１９２０では、プログラム電圧ＶPGMが開始パルス（例えば、１２Ｖまたは他の値）に初期化され、ステートマシン１２１２によって維持されるプログラムカウンタ（ＰＣ）がゼロに初期化される。ステップ１９２５では、既に述べたように、選択されていないビットラインのチャネルが事前充電される。ステップ１９３０では、第１のＶPGMパルスが選択されたワードラインに印加され、選択されたワードラインに接続されている記憶素子のプログラミングが開始される。論理「０」が、対応する記憶素子がプログラミングされなければならないことを示す特定のデータラッチに記憶されている場合には、対応するビットラインが接地される。他方、論理「１」が、対応する記憶素子が現在のデータ状態に留まる必要があることを示す特定のラッチに記憶されている場合には、対応するビットラインが１．５〜３Ｖに接続され、プログラミングが禁止される。
【０１０８】
ステップ１９３５では、選択された記憶素子の状態が検証される。選択された記憶素子の対象の閾値電圧が適切なレベルに到達したことが検出されると、対応するデータラッチに記憶されるデータが論理「１」に変更される。閾値電圧が適切なレベルに到達していないことが検出されると、対応するデータラッチに記憶されるデータは変更されない。このように、対応するデータラッチに論理「１」が記憶されているビットラインは、プログラミングされる必要がない。データラッチの全てが論理「１」を記憶しているとき、ステートマシンは（前述されたワイヤードＯＲ型機構を介して）全ての選択された記憶素子がプログラミングされたことを認識する。ステップ１９４０では、データラッチの全てが論理「１」を記憶しているか否かがチェックされる。データラッチの全てが論理「１」を記憶している場合、全ての選択された記憶素子がプログラミングされて検証されたため、プログラミング処理は完了し、成功となる。ステップ１９４５で「パス（合格）」のステータスが報告される。いくつかの実施形態では、プログラミング処理は全ての選択された記憶素子がプログラムされたと検証されたわけではない場合でも、完了し、成功となる。このような場合は、十分にプログラムされていない記憶素子によって、その後の読出し処理中にエラーが生じ得る。しかしながら、このようなエラーはＥＣＣで修正され得る。
【０１０９】
ステップ１９４０で、データラッチの全てが論理「１」を記憶しているわけではないと判定されると、プログラミング処理は続行する。いくつかの実施形態では、データラッチの全てが論理「１」を記憶しているわけではない場合でも、プログラム処理がストップする場合がある。ステップ１９５０では、プログラムカウンタＰＣが、プログラム制限値ＰＣｍａｘに対してチェックされる。プログラム制限値の一例は２０である。ただし、他の数も使用できる。プログラムカウンタＰＣがＰＣｍａｘ未満ではない場合、プログラム処理は失敗となり、「失敗」のステータスがステップ１９５５で報告される。プログラムカウンタＰＣがＰＣｍａｘ未満である場合には、ＶPGMがステップサイズだけ増加され、ステップ１９６０でプログラムカウンタＰＣは増分される。次にプロセスはステップ１９３０に戻り、次のＶPGMパルスが印加される。
【０１１０】
図２０は、プログラミング中に不揮発性記憶素子の制御ゲートに印加されるパルス列の例を示す。パルス列２０００は一連のプログラムパルス２００５、２０１０、２０１５、２０２０、２０２５、２０３０、２０３５、２０４０、２０４５、２０５０・・・を含んでおり、これらはプログラミング対象として選択されたワードラインに印加される。一実施形態では、プログラミングパルスは、１２Ｖで開始し、最大２０〜２５Ｖに達するまでプログラミングパルスごとに、例えば０．５Ｖずつ増加する電圧ＶPGMを有する。プログラムパルス間には検証パルス（例えば、３つの検証パルス）がある。いくつかの実施形態では、データが、例えば状態Ａ、Ｂ及びＣにプログラミングされている状態ごとに検証パルスが存在する。他の実施形態では、さらに多くまたはさらに少ない検証パルスが存在する。各セットの検証パルスは、例えば、Ｖｖａ、Ｖｖｂ、及び、Ｖｖｃ（図１７）、又は、Ｖｖｂ’（図１８ａ）の振幅を有し得る。
【０１１１】
本発明の前記の詳細な説明は図解及び説明のために提示されたものである。本発明は、網羅的となる、あるいは本発明を開示されている正確な形式に制限することを意図していない。前記教示を鑑みて多くの変型及び変更が可能である。説明された実施形態は、本発明及びその実際的な応用を最もよく説明し、それにより当業者が多様な実施形態において、及び意図されている特定の使用に適するように多様な変型を用いて本発明を最もよく活用できるようにするために選択された。本発明の範囲がここに添付される請求項により定められることが意図される。
【図１】
0005444340.tif 000002
【図２】
0005444340.tif 000003
【図３】
0005444340.tif 000004
【図４】
0005444340.tif 000005
【図５ａ】
0005444340.tif 000006
【図５ｂ】
0005444340.tif 000007
【図５ｃ】
0005444340.tif 000008
【図６】
0005444340.tif 000009
【図７】
0005444340.tif 000010
【図８】
0005444340.tif 000011
【図９】
0005444340.tif 000012
【図１０】
0005444340.tif 000013
【図１１】
0005444340.tif 000014
【図１２】
0005444340.tif 000015
【図１３】
0005444340.tif 000016
【図１４】
0005444340.tif 000017
【図１５】
0005444340.tif 000018
【図１６】
0005444340.tif 000019
【図１７】
0005444340.tif 000020
【図１８ａ】
0005444340.tif 000021
【図１８ｂ】
0005444340.tif 000022
【図１８ｃ】
0005444340.tif 000023
【図１９】
0005444340.tif 000024
【図２０】
0005444340.tif 000025