(57)【特許請求の範囲】
【請求項１】
記憶システムであって、
目標データ状態へプログラムされる少なくとも一つの記憶素子を含む一組の記憶素子（４００）と、
各記憶素子に接続されたそれぞれのビットライン（３２１、３４１、３６１）と、
一又は複数の制御回路（５１０、５５０）とを備え、
前記一又は複数の制御回路は、一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行するために、（ａ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の前記目標データ状態の目標検証レベル（Ｖｖａ、Ｖｖｂ）よりも低い検証レベル（ＶｖａＬ、ＶｖｂＬ）に達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加し、（ｂ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の前記目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する、記憶システム。
【請求項２】
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子に対するビットラインを低速プログラムモードに関連付けられたレベルまで昇圧させた後に、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する、請求項１に記載の記憶システム。
【請求項３】
前記少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルは、前記少なくとも一つの記憶素子の目標データ状態のオフセット検証レベル（ＶｖａＬ、ＶｖｂＬ）である、請求項１又は２に記載の記憶システム。
【請求項４】
前記目標データ状態の目標検証レベルよりも低い検証レベルは、前記少なくとも一つの記憶素子の目標データ状態よりも低位にある低データ状態の目標検証レベル（Ｖｖａ）である、請求項１又は２に記載の記憶システム。
【請求項５】
前記低データ状態は、前記少なくとも一つの記憶素子の目標データ状態の一つ下のデータ状態である、請求項４に記載の記憶システム。
【請求項６】
前記低データ状態は、前記少なくとも一つの記憶素子の目標データ状態の一つ下のデータ状態よりも低位である、請求項４に記載の記憶システム。
【請求項７】
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子が前記目標データ状態の目標検証レベルに達したときに、前記少なくとも一つの記憶素子をさらなるプログラムからロックアウトする、請求項１から６のいずれか一項に記載の記憶システム。
【請求項８】
前記少なくとも一つの記憶素子に関連するデータを記憶する少なくとも一つのラッチ（５８２）をさらに備え、そのデータは、前記少なくとも一つの記憶素子がプログラムされるときに、それに対するビットラインが接地あるいはフロートされるべきなのかを示す、請求項１から７のいずれか一項に記載の記憶システム。
【請求項９】
前記少なくとも一つの記憶素子に対するビットラインは、フロートされたときに、隣接する少なくとも一つの非選択ビットライン上での昇圧された電圧によって強く結合し、それによって前記少なくとも一つの記憶素子のプログラムが減速される、請求項１から８のいずれか一項に記載の記憶システム。
【請求項１０】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始される前に、前記一組のワードラインのなかの非選択ワードラインのパス電圧を上昇させる、請求項１から９のいずれか一項に記載の記憶システム。
【請求項１１】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始された後に、前記一組のワードラインのなかの非選択ワードラインのパス電圧を上昇させる、請求項１から９のいずれか一項に記載の記憶システム。
【請求項１２】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記一組のワードラインのなかの非選択ワードラインのパス電圧を上昇させるとともに、前記パス電圧の上昇に対して所定の遅れ時間の後に、前記ドレイン選択トランジスタのゲート電圧を昇圧させる、請求項１から９のいずれか一項に記載の記憶システム。
【請求項１３】
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始された後に、前記ドレイン選択トランジスタのゲート電圧を昇圧させる、請求項１から９のいずれか一項に記載の記憶システム。
【請求項１４】
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記一又は複数の制御回路は、前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始される前に、前記ドレイン選択トランジスタのゲート電圧を昇圧させる、請求項１から９のいずれか一項に記載の記憶システム。
【請求項１５】
記憶システムにおける一組の記憶素子をプログラムするための方法であって、各々の記憶素子は対応するビットラインに接続されており、
前記方法は、前記一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行する工程を含み、ここで、前記一組の記憶素子は、目標データ状態へプログラムされる少なくとも一つの記憶素子を含み、
前記複数のプログラム反復を実行する工程は、
前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の前記目標データ状態の目標検証レベル（Ｖｖａ、Ｖｖｂ）よりも低い検証レベル（ＶｖａＬ、ＶｖｂＬ）に達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加する工程と、
前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の前記目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する工程とを含む、方法。
【請求項１６】
前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子に対するビットラインが低速プログラムモードに関連付けられたレベルまで昇圧された後に、前記少なくとも一つの記憶素子に対するビットラインがフロートされながら、前記一組の記憶素子にプログラムパルスが印加される、請求項１５に記載の方法。
【請求項１７】
前記少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルは、前記少なくとも一つの記憶素子の目標データ状態のオフセット検証レベル（ＶｖａＬ、ＶｖｂＬ）である、請求項１５又は１６に記載の方法。
【請求項１８】
前記目標データ状態の目標検証レベルよりも低い検証レベルは、前記少なくとも一つの記憶素子の目標データ状態よりも低位にある低データ状態の目標検証レベル（Ｖｖａ）である、請求項１５又は１６に記載の方法。
【請求項１９】
前記低データ状態は、前記少なくとも一つの記憶素子の目標データ状態の一つ下のデータ状態である、請求項１８に記載の方法。
【請求項２０】
前記低データ状態は、前記少なくとも一つの記憶素子の目標データ状態の一つ下のデータ状態よりも低位である、請求項１８に記載の方法。
【請求項２１】
前記少なくとも一つの記憶素子が前記目標データ状態の目標検証レベルに達したときに、前記少なくとも一つの記憶素子をさらなるプログラムからロックアウトする工程をさらに含む、請求項１５から２０のいずれか一項に記載の方法。
【請求項２２】
前記少なくとも一つの記憶素子に関連するラッチデータ（５８２）を与える工程をさらに備え、そのラッチデータは、前記少なくとも一つの記憶素子がプログラムされるときに、それに対するビットラインが接地あるいはフロートされるべきなのかを示す、請求項１５から２１のいずれか一項に記載の方法。
【請求項２３】
前記少なくとも一つの記憶素子に対するビットラインは、フロートされたときに、隣接する少なくとも一つの非選択ビットライン上での昇圧された電圧によって強く結合し、それによって前記少なくとも一つの記憶素子のプログラムが減速される、請求項１５から２２のいずれか一項に記載の方法。
【請求項２４】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始される前に、前記一組のワードラインのなかの非選択ワードラインにおいてパス電圧が上昇される、請求項１５から２３のいずれか一項に記載の方法。
【請求項２５】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始された後に、前記一組のワードラインのなかの非選択ワードラインにおいてパス電圧が上昇される、請求項１５から２３のいずれか一項に記載の方法。
【請求項２６】
前記一組の記憶素子は、一組のワードライン（ＷＬ０−ＷＬ３）を含むメモリアレイ内にあり、
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記一組のワードラインのなかの非選択ワードラインにおいてパス電圧が上昇されるとともに、前記パス電圧の上昇に対して所定の遅れ時間の後に、前記ドレイン選択トランジスタのゲート電圧が昇圧される、請求項１５から２３のいずれか一項に記載の方法。
【請求項２７】
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始された後に、前記ドレイン選択トランジスタのゲート電圧が昇圧される、請求項１５から２３のいずれか一項に記載の方法。
【請求項２８】
前記少なくとも一つの記憶素子とそれに対するビットラインとの間には、ドレイン選択トランジスタ（ＳＧＤ）が設けられており、
前記少なくとも一つの記憶素子に対するビットラインがフロートされた状態での少なくとも一つのプログラムパルスに関連付けて、前記ビットラインのフロートが開始される前に、前記ドレイン選択トランジスタのゲート電圧が昇圧される、請求項１５から２３のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリは、最も普及している不揮発性半導体メモリの一つである。ＥＥＰＲＯＭの一種であるフラッシュメモリを用いると、従来のフル機能を備えたＥＥＰＲＯＭとは対照的に、メモリアレイ全体のコンテンツ、又はメモリの一部のコンテンツを一つのステップで消去できる。
【０００３】
従来のＥＥＰＲＯＭとフラッシュメモリの何れもが、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に配置されており、そのフローティングゲートから絶縁されている。このように形成されたトランジスタの閾値電圧（Ｖｔｈ）は、フローティングゲート上に保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加しなければならない電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
【０００４】
いくつかのＥＥＰＲＯＭ及びフラッシュメモリ素子は２つの範囲の電荷を記憶するために使用される記憶素子その他のフローティングゲートを含むセルを有するため、記憶素子は２つの状態、例えば消去状態とプログラム状態の間でプログラム／消去できる。各記憶素子は１ビットのデータを記憶できるため、このようなフラッシュメモリ素子はバイナリフラッシュメモリ素子と呼ばれることもある。
【０００５】
マルチ状態（マルチレベルとも呼ばれる）フラッシュメモリ素子が、複数の別個の許可／有効プログラム閾値電圧範囲を識別することによって実現される。各閾値電圧範囲は、記憶素子内で符号化される一組のデータビットの所定値に相当する。例えば、各メモリエレメントは、そのエレメントを４つの別々の閾値電圧範囲に相当する４つの別々の電荷バンドの内の一つに置くことができ、２ビットのデータを記憶できる。
【０００６】
通常、プログラム動作中に制御ゲートに印加されるプログラム電圧、即ちパルスＶｐｇｍは、経時的に大きさが大きくなる一連のパルスとして印加される。プログラム電圧は、選択されたワードラインに印加され得る。一つの考えられる手法では、パルスの大きさを、例えば０．２から０．４Ｖといった所定のステップサイズで、連続するパルス毎に大きくすることができる。Ｖｐｇｍは、フラッシュメモリ素子の制御ゲートに印加することができる。プログラムパルス間の期間では、検証動作が実行される。すなわち、並行してプログラムされる一群の素子における各素子のプログラムレベルが、その素子のプログラムされるべき検証レベル以上であるのか否かを判断するために、連続するプログラムパルスの間に読み出される。マルチ状態型のフラッシュメモリ素子のアレイの場合、検証ステップは素子の状態ごとに実行され、その素子がデータに関連付けられた検証レベルに達したのか否かが判断される。例えば、４つの状態にデータを記憶できるマルチ状態型のメモリ素子では、３つの比較点について検証動作を実行する必要がある。
【０００７】
さらに、ＥＥＰＲＯＭ又はフラッシュメモリ素子、例えばＮＡＮＤストリング内のＮＡＮＤフラッシュメモリ素子をプログラムするときは、通常、Ｖｐｇｍが制御ゲートに印加され、ビットラインが接地され、記憶素子のチャネルからフローティングゲートの中に電子が注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電され、メモリエレメントの閾値電圧は上昇し、プログラムされた状態にあると見なされる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、メモリ装置が小型化されるほど、プログラム動作における容量結合の影響がより深刻な問題となってきている。
【図面の簡単な説明】
【０００９】
【図１ａ】ＮＡＮＤストリングの平面図。
【００１０】
【図１ｂ】ＮＡＮＤストリングの等価回路図。
【００１１】
【図２】ＮＡＮＤストリングの断面図。
【００１２】
【図３】３つのＮＡＮＤストリングを示す回路図。
【００１３】
【図４】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図。
【００１４】
【図５】単一の行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図。
【００１５】
【図６】検知ブロックの一実施形態を示すブロック図。
【００１６】
【図７ａ】一組の閾値電圧分布の一例であって、結合の影響によって拡大された分布を含む。
【００１７】
【図７ｂ】一組の閾値電圧分布の例とツーパスプログラムを示す図。
【００１８】
【図８】プログラム動作中に選択ワードラインへ印加される一連のプログラムパルス及び検証パルスを示す。
【００１９】
【図９】一組の記憶素子のためのマルチパスプログラム動作を示す図。
【００２０】
【図１０ａ】チャネル−フローティングゲート間結合及びフローティングゲート−フローティングゲート間結合を説明するＮＡＮＤストリングの断面図を示す。
【００２１】
【図１０ｂ】非選択ビットラインから選択ビットラインへの結合を示す。
【００２２】
【図１１ａ】オフセット及び目標検証レベルを使用するプログラム技術の一例であって、結合の影響を低減するものを示す。
【００２３】
【図１１ｂ】単一速度のプログラムモードと一状態ごとに単一の検証レベルを使用するプログラム技術の一例であって、結合の影響を低減するものを示す。
【００２４】
【図１１ｃ】図１１ａ及び図１１ｂに関連してプログラムプロセスの一例を示す
【００２５】
【図１１ｄ】それぞれのビットラインのためのデータラッチを示す。
【００２６】
【図１１ｅ】図１１ｄに示すラッチに対するビットの割り当てを示す。
【００２７】
【図１２】補償なしの高速プログラムモード、補償ありの低速プログラムモード及びロックアウト／禁止状態について、一つのデータ状態の閾値電圧の範囲を示す。
【００２８】
【図１３】一組の不揮発性記憶素子をプログラムする方法であって、隣接するビットライン間の結合を補償するために、二つの駆動電圧を使用して禁止されたビットラインの電圧を昇圧する方法を示す。
【００２９】
【図１４】禁止されたビットラインに複数の駆動電圧を使用する検知回路であって、図１３のプロセスで使用されるものを示す。
【００３０】
【図１５】図１４の検知回路に関する時系列を示す。
【００３１】
【図１６ａ】別の検知回路を示す。
【００３２】
【図１６ｂ】図１６ａの検知回路に関するプログラムの時系列を示す。
【００３３】
【図１７ａ】次のプログラムにおいて結合補償が必要なのか否かを判断するために選択ビットラインを検知するための方法を示す。
【００３４】
【図１７ｂ】図１６ａの検知回路に関する検知及びプログラムの時系列を示す。
【００３５】
【図１７ｃ】図１６ａの検知回路に関する検知の時系列を示す。
【００３６】
【図１７ｄ】図１６ａの検知回路に関する検知の別の時系列を示す。
【００３７】
【図１８ａ】また別の検知回路を示す。
【００３８】
【図１８ｂ】図１８ａの検知回路に関する検知及びプログラムの時系列を示す。
【発明を実施するための形態】
【００３９】
チャネル−フローティングゲート間の容量結合を含む、プログラムにおける結合の影響を低減する方法及び不揮発性記憶システムを提供する。
【００４０】
メモリ装置が小型化されるほど、容量結合の影響はより大きな問題となる。特に、プログラムの間、プログラムが完了した記憶素子（非選択、ロックアウトされた、又は禁止された記憶素子ともいう）は、ブロックの全てのワードラインとフローティングチャネルの助けを受けたブーストにより、接続された基板のチャネル領域のチャネル電位を引き上げることによって禁止される。フローティングチャネルは、上昇されたビットライン電圧（Ｖｂｌ）からの影響によってもたらされる。しかしながら、この上昇したチャネル電位は、まだプログラム中である隣接する記憶素子のフローティングゲートと結合し、そのフローティングゲートの電位を意図せず上昇させてしまう。このことは、チャネル−フローティングゲート間の容量結合と称される。結果的に、プログラム速度が、選択記憶素子に対して望ましいレベルを超えて上昇することになり、それらの閾値電圧の分布を広くしてしまう。
【００４１】
このようなプログラム速度の上昇は、高速又は低速プログラムモードにある記憶素子において起こり得る。ここで、高速又は低速プログラムモードは、コントローラによって設定される。典型的には、選択記憶素子のＶｔｈが目標Ｖｔｈから離れているときは、選択ビットライン（選択記憶素子に接続されているビットライン）のＶｂｌをゼロボルトに維持することによって、高速プログラムモードが実行される。その後、選択記憶素子のＶｔｈが目標Ｖｔｈに近づくと、プログラムを減速させるために、但し完全には禁止しないように、Ｖｂｌをおよそ０．６−０．８ボルトまで引き上げることによって、低速プログラムモードが実施される。
【００４２】
このような結合を避ける一手法は、選択記憶素子のビットラインをフロートさせることである。しかしながら、この手法は、Ｖｂｌをゼロでない特定のレベルにする必要のある低速プログラムモードを使用できなくなくする。ここで開示する様々な解決手法は、ビットラインを最適な方法で駆動及び／又はフローティングさせる検知回路及びプログラム技術を提供するものである。
【００４３】
一手法では、プログラムの減速を行うために、追加的な検証動作や、制御された高速又は低速プログラムモードを必要としない。その代わり、選択記憶素子のビットラインをフローティングさせることにより、ある一状態の目標検証レベルを利用して、次に高い状態へプログラムされている選択記憶素子のプログラムを減速させることができる。チャネル電位は、これはチャネルに通過したＶｂｌであるが、隣接する非選択ビットライン（非選択記憶素子に接続されている）の電圧上昇との結合によって上昇する。その結果、プログラム速度は減速される。この手法は、ビットライン−ビットライン間の結合が強く生じるほど、自動的にそれに応じてさらに減速することができ、チャネル−フローティングゲート間の結合によるチャネル電位上昇の解決手段として機能する。
【００４４】
他の一手法では、低速プログラムモードにある選択記憶素子において、チャネル−ゲート間の容量結合を補償することができる。この手法では、選択ビットラインに結合され、それに接続されたチャネル領域に伝送される電圧の上昇によって、非選択ビットラインを駆動する。Ｖｂｌによって定まるチャネル電位は０．８−１．２ボルトとなり、これは従来のビットラインバイアスよりも高く、それによって選択記憶素子のフローティングゲート電位の上昇を相殺する。その結果、低速プログラムモードが、選択記憶素子に対して意図した低速度で実行され、このような補償のない場合に起こり得る速度上昇が防止される。同様の補償は、高速プログラムモードにある選択記憶素子に対しても行うことができる。この場合、選択記憶素子のチャネルは、最初は接地されており、その後にビットラインの結合によってバイアスされるので、プログラムは意図された高速度で実行されることになり、このような補償のない場合に起こり得る速度上昇が防止される。ただし、高速プログラムモードにある選択記憶素子に対する補償は、低速プログラムモードにあるものと比較すると、概して重要ではない。この手法又は他の手法では、パス電圧がワードラインに印加される時に対して、Ｖｂｌをチャネルに通過させるタイミングを様々に変更できる。ドレイン選択ゲート電圧を調整するタイミングについても、適宜最適化すればよい。
【００４５】
他の一手法では、プログラム動作の一部として、選択記憶素子（及びそのビットライン、以下、選択ビットラインという）が、非選択記憶素子（及びそれらのビットライン、以下、非選択ビットラインという）に隣接するのか否かを判断する検知処理を行うことができる。非選択ビットラインとは、選択ワードライン上にある非選択記憶素子に接続されたビットラインをいう。選択ビットラインは、選択ワードライン上にある選択記憶素子に接続されたビットラインをいう。同じワードラインにおける非選択記憶素子のチャネルから選択記憶素子のフローティングゲートへの結合である、チャネル―フローティングゲート間の結合は、選択記憶素子がチャネルブースト下にある一又は二の非選択記憶素子に隣接するときに、最も強くなる。検知は、この状況を検出するために実行され、それにより、必要に応じて適切な補償を行い、不要であれば補償を行わないことができる。
【００４６】
他の一手法では、補償電圧のみを、あるいは低速プログラムモードのバイアスと併せて、選択記憶素子のチャネルへそのビットラインを介して直接的に供給することができる。
【００４７】
本発明の実施に適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を用いる。そのＮＡＮＤフラッシュメモリ構造は２つの選択ゲートの間に直列に接続された複数のトランジスタを有している。直列に配置されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１ａは、一つのＮＡＮＤストリング９０を示す平面図である。図１ｂはその等価回路である。図示されたＮＡＮＤストリングは、直列に接続されており、第１の選択ゲート１２０と第２の選択ゲート１２２の間に挟まれている４つのトランジスタ１００、１０２、１０４、及び１０６を有する。選択ゲート１２０は、ＮＡＮＤストリングをビットライン１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続する。選択ゲート１２０、１２２は、制御ゲート１２０ＣＧ、１２２ＣＧにそれぞれ適切な電圧が印加されることによって制御される。トランジスタ１００、１０２、１０４及び１０６のそれぞれは制御ゲート及びフローティングゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧ及びフローティングゲート１００ＦＧを有する。トランジスタ１０２は制御ゲート１０２ＣＧ及びフローティングゲート１０２ＦＧを有する。トランジスタ１０４は、制御ゲート１０４ＣＧ及びフローティングゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧ及びフローティングゲート１０６ＦＧを有する。制御ゲート１００ＣＧ、１０２ＣＧ、１０４ＣＧ、１０６ＣＧは、ワードラインＷＬ３、ＷＬ２、ＷＬ１、ＷＬ０にそれぞれ接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることもある。あるいは、図示されているのとは異なることもある。選択ゲート１２０、１２０は、ドレイン側選択ラインＳＧＤ、ソース側選択ラインＳＧＳにそれぞれ接続されている。
【００４８】
図２は、前述されたＮＡＮＤストリングの断面図を示す。ＮＡＮＤストリングのトランジスタはｐ−ウェル領域１４０に形成されている。ｐ−ウェル領域は、代わりにｐ−タイプ基板１４４のｎ−ウェル領域１４２内にあってよい。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、及び１０６ＣＧ）とフローティングゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ、及び１０６ＦＧ）から構成される積層ゲート構造を有している。フローティングゲートは、ｐ−ウェルの表面に、酸化膜又は他の誘電体膜の上に形成される。制御ゲートはフローティングゲートの上にあり、ポリシリコン間の誘電体層が制御ゲート及びフローティングゲートを分離している。メモリセル（１００、１０２、１０４及び１０６）の制御ゲートは、ワードラインを構成している。Ｎ＋ドープ層又は領域１３０、１３２、１３４、１３６、及び１３８は、隣接するセルの間で共有され、これによってセルが互いに直列に接続されており、ＮＡＮＤストリングを形成している。これらのＮ＋ドープ層は、各セルのソース及びドレインを構成している。例えば、Ｎ＋ドープ層１３０はトランジスタ１２２のドレイン及びトランジスタ１０６のソースとしての機能を果たし、Ｎ＋ドープ層１３２はトランジスタ１０６のドレイン及びトランジスタ１０４のソースとしての機能を果たし、Ｎ＋ドープ層１３４はトランジスタ１０４のドレイン及びトランジスタ１０２のソースとしての機能を果たし、Ｎ＋ドープ層１３６はトランジスタ１０２のドレイン及びトランジスタ１００のソースとしての機能を果たし、Ｎ＋ドープ層１３８はトランジスタ１００のドレイン及びトランジスタ１２０のソースとしての機能を果たす。Ｎ＋ドープ層１２５は、ＮＡＮＤストリングのためのビットライン１２６に接続する。一方、Ｎ＋ドープ層１２８は複数のＮＡＮＤストリングのための一つの共通ソースラインに接続する。それぞれのメモリセルは、アナログ又はデジタル方式で表されるデータを、一以上のビットで記憶することができる。
【００４９】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性メモリを使用することもできる。
【００５０】
プログラム動作の一部として、非選択の記憶素子や例えば非選択のＮＡＮＤストリング９０に接続された基板のチャネル領域の電位をブーストすることができる。非選択の記憶素子あるいはＮＡＮＤストリングは、プログラム動作の所与のプログラム反復においてプログラムから禁止又はロックアウトされることから、禁止された又はロックアウトされた記憶素子あるいはＮＡＮＤストリングと称することができる。例えば、制御ゲートとフローティングゲート１００ＣＧ／１００ＦＧ、１０２ＣＧ／１００ＦＧ、１０４ＣＧ／１０４ＦＧ、１０６ＣＧ／１０６ＦＧによって構成される記憶素子のいずれかが、プログラム動作において非選択の記憶素子となるとき、例えば、ＮＡＮＤストリング９０が非選択のＮＡＮＤストリングとなるとき、チャネル領域１４１が基板１４４のｐ−ウェル１４０内に形成される。チャネル領域１４１は、基板内における導電経路であって、ドープ領域１３０、１３２、１３４、１３６、１３８の内部及び間を伸びる。ブーストは様々に実施することができる。例えば、プレチャージの工程において、これはパス電圧を非選択のワードラインに印加する前に行われるが、ビットライン１２６に供給された電圧が、ドレイン側選択ゲートトランジスタ１２０ＣＧを通じてチャネル１４１へ送られる。
【００５１】
一つの考え方として、適切なＶｂｌにより、ドレイン側トランジスタの制御ゲートがＶｄｄ＋Ｖｔｈにバイアスされたときに、ドレイン側選択ゲートトランジスタはプレチャージ電圧としてＶｂｌの電圧を提供する。ここで、Ｖｄｄは、検知回路への供給電圧であり、Ｖｔｈはドレイン側選択ゲートトランジスタの閾値電圧である。制御ゲートの電圧が上昇するほど、チャネルはより高電位にブーストされる。ドレイン側選択ゲートトランジスタは、それにより非導通の状態となり、ビットラインがチャネル領域１４１から遮断されて、ブーストされた電位がチャネルにおいて維持される。チャネルブーストは、ワードラインにパス電圧を印加し、チャネルをフローティングさせることによっても行うことができる。
【００５２】
図３は、３つのＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的な構造は、数個のＮＡＮＤストリングを含む。例えば、３つのＮＡＮＤストリング３２０、３４０及び３６０は、さらに多くのＮＡＮＤストリングを有するメモリアレイ内で見ることができる。ＮＡＮＤストリングのそれぞれが２個の選択ゲートと４個の記憶素子を含む。図面を簡素化するために４個の記憶素子が示されているが、最新のＮＡＮＤストリングは、例えば、３２個又は６４個の記憶素子を有することもある。
【００５３】
例えば、ＮＡＮＤストリング３２０は、選択ゲート３２２及び３２７並びに記憶素子３２３から３２６を含み、ＮＡＮＤストリング３４０は、選択ゲート３４２及び３４７並びに記憶素子３４３から３４６を含み、ＮＡＮＤストリング３６０は、選択ゲート３６２及び３６７並びに記憶素子３６３から３６６を含む。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７又は３６７）によってソースライン３７０に接続される。ソース側選択ゲートの制御には、選択ラインＳＧＳが使用される。多様なＮＡＮＤストリング３２０、３４０及び３６０は、各選択ゲート３２２、３４２、３６２内のドレイン側選択トランジスタによって、各ビットライン３２１、３４１及び３６１に接続される。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは、必ずしもＮＡＮＤストリングの間で共通である必要はない。つまり、異なる選択ラインを、異なるＮＡＮＤストリングのために設けることもできる。一例ではあるが、ＮＡＮＤストリング３２０、３４０、３６０にそれぞれ接続されたチャネル領域３２９、３３０、３３１は、基板内に形成することができる。ここで、記憶素子及びチャネル領域は、それらの実際の位置から９０度回転させて図示されている。
【００５４】
ワードラインは記憶素子の制御ゲートへ次のように接続されている：ＷＬ３（記憶素子３２３、３４３及び３６３、ＷＬ２（記憶素子３２４、３４４及び３６４）、ＷＬ１（記憶素子３２５、３４５及び３６５）、ＷＬ０（記憶素子３２６、３４６及び３６６）。各ワードラインは、行内の各記憶素子の制御ゲートに接続されている。あるいは、制御ゲートは、ワードライン自体によって構成されてもよい。
【００５５】
フラッシュ記憶素子をプログラムするときは、例えば接続されたワードラインを通じて、記憶素子の制御ゲートにプログラム電圧を印加し、その記憶素子に接続されたビットラインを接地する。それにより、チャネルからの電子がフローティングゲートに注入される。フローティングゲート内に電子が蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶｔｈが上昇する。
【００５６】
図４は、図１ａと１ｂに示すようなＮＡＮＤ記憶素子のアレイ４００の例を示す。各列に沿って、ビットライン４０６が、ＮＡＮＤストリング４５０のドレイン側選択ゲートのドレイン端子４２６に接続されている。ＮＡＮＤストリングの各行に沿って、ソースライン４０４が、ＮＡＮＤストリングのソース選択ゲートの全てのソース端子４２８に接続されている。
【００５７】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページは、プログラムの最小単位である。１ページ又は複数ページのデータは、通常、記憶素子の１行に記憶される。例えば、１行は、通常、いくつかのインタリーブされたページを含む、あるいは、１行は１ページを構成してよい。ページの全ての記憶素子は、一度に読み出され、又は、プログラムされる。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４、１２８又はそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００５８】
一例であるが、検知回路４１０、４１２、４１４が、ビットライン４０６、４０７、４０８にそれぞれ接続されている。検知回路４１０、４１２、４１４は、一又は複数の電源４０５によって供給される、それぞれＶｄｄ、Ｖｄｄ−ΔＶ、Ｖｃｏｍｐの電力供給ライン４０１、４０２、４０３に接続されている。これらの電圧については後段でさらに説明する。検知回路は、制御信号とデータを交換するために、一以上の制御回路にも接続されている。
【００５９】
図５は、単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。メモリ素子５９６は、一実施形態に従って、記憶素子のページを同時に読み出し、プログラムするための読み出し／書き込み回路を有する。メモリ素子５９６は、一以上のメモリダイ５９８を有する。メモリダイ５９８は、２次元のアレイの記憶素子４００、制御回路５１０、及び、読み出し／書き込み回路５６５を有する。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ４００は行復号部５３０を介してワードラインによって、及び列復号部５６０を介してビットラインによってアドレスできる。読み出し／書き込み回路５６５は複数の検知ブロック５００を有し（通常、各検知ブロックは、各ビットライン対して一つずつの、一組の検知回路又は検知アンプを有する）、１ページの記憶素子を並行して読み出し又はプログラムすることができる。後段で検知回路の一例を詳細に説明する。一般に、制御部５５０は、一つ以上のメモリダイ５９８のように同じメモリ素子５９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン５２０を介してホストと制御部５５０の間及びライン５１８を介して制御部と一つ以上のメモリダイ５９８の間で送られる。
【００６０】
制御回路５１０は、読み出し／書き込み回路５６５と協調して、メモリアレイ４００上でメモリ動作を実行する。制御回路５１０は、状態マシン５１２、オンチップアドレスデコーダ５１４、及び電力制御モジュール５１６を含む。状態マシン５１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ５１４は、ホスト又はメモリコントローラによって使用されるとともに、デコーダ５３０と５６０によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。電力制御モジュール５１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御し、図４に示す電源４０５を含むことができる。
【００６１】
いくつかの実装例では、図５の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ４００以外の（単独又は組み合わせた）一つ又は複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路５１０、状態マシン５１２、デコーダ５１４／５６０、電力制御モジュール５１６、検知ブロック５００（後段で説明する検知回路を含む）、読み出し／書き込み回路５６５、制御部５５０等の内の任意の一又は組み合わせを含んでよい。
【００６２】
別の実施形態では、不揮発性メモリシステムは、二重の行／列デコーダ及び読み出し／書き込み回路を使用する。メモリアレイ４００に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施される。
【００６３】
図６は、検知ブロックの一実施形態を示すブロック図である。個々の検知ブロック５００は、検知モジュール５８０と呼ばれるコア部分、及び共通部分５９０に区切られる。一実施形態では、ビットラインごとに別個の検知モジュール５８０、及び、複数の検知モジュールの一組に一つの共通部分５９０が存在する。一例では、検知ブロックは、一つの共通部分５９０及び８つの検知モジュール５８０を含み、それぞれは後段で説明する検知回路に類似する。グループ内の検知モジュールのそれぞれは、データバス５７２を介して関連付けられた共通部分と通信する。
【００６４】
検知モジュール５８０は、接続されているビットラインの導通電流が所定の閾値レベルを超えているのか、それとも下回っているのかを判断する検知回路５７０を含む。検知モジュール５８０は、接続されたビットライン上で電圧状態を設定するために使用されるビットラインラッチ５８２も含む。例えば、ビットラインラッチ５８２で所定の状態にラッチされることにより、接続されたビットラインは、プログラム禁止を指定する状態にプルされることになる。
【００６５】
共通部分５９０は、プロセッサ５９２、一組のデータラッチ５９４、及び、一組のデータラッチ５９４とデータバス５２０の間に結合されているＩ／Ｏインタフェース５９６を含む。プロセッサ５９２は、計算を実行する。例えば、その機能の一つは、検知された記憶素子に記憶されるデータを特定し、一組のデータラッチにその決定されたデータを記憶することである。一組のデータラッチ５９４は、読み出し動作の間にプロセッサ５９２によって決定されるデータビットを記憶するために使用される。それは、プログラム動作中にデータバス５２０からインポートされるデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリの中にプログラムされるべきことを意味する書き込みデータを表す。Ｉ／Ｏインタフェース５９６は、データラッチ５９４とデータバス５２０の間のインタフェースを提供する。
【００６６】
読み出し又は検知の間、状態マシン５１２は、アドレス指定された記憶素子に対する様々な制御ゲート電圧の供給を制御する。サポートする多様なメモリ状態に対応して、所定の多様な制御ゲート電圧が順次供給されていくと、これらの電圧のなかの一つで検知モジュール５８０がトリップし、検知モジュール５８０からの出力がバス５７２を介してプロセッサ５９２に提供される。このとき、プロセッサ５９２は、検知モジュールがトリップしたことと、入力回線５９３を介して状態マシンから得られる印加した制御ゲート電圧についての情報とを考慮し、その結果として得られるメモリ状態を決定する。次に、それは、メモリ状態を２進コード化し、結果として生じるデータビットをデータラッチ５９４に記憶する。コア部分の別の実施形態では、ビットラインラッチ５８２は、検知モジュール５８０の出力をラッチするためのラッチ及び上述したビットラインラッチとして機能する。
【００６７】
プログラム又は検証の間に、プログラムされるデータは、データバス５２０から一組のデータラッチ５９４に記憶される。状態マシンの制御下にあるプログラム動作は、アドレス指定された記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを含む。各プログラムパルスの後ろには、記憶素子が所望されるメモリ状態にプログラムされたかどうかを判断するために読み返し（検証）が続く。プロセッサ５９２は、所望されるメモリ状態に関して読み返しメモリ状態を監視する。この２つが一致するとき、ビットラインがプログラム禁止を指定する状態にプルされるように、プロセッサ５９２がビットラインラッチ５８２を設定する。これが、プログラムパルスがその制御ゲートに出現したとしても、ビットラインに結合された記憶素子がさらにプログラムされるのを禁止する。他の実施形態では、プロセッサはビットラインラッチ５８２を初期にロードし、検証プロセスの間に検知回路がそれを禁止値に設定する。
【００６８】
データラッチスタック５９４は、検知モジュールに対応するデータラッチのスタックを含む。一実施形態では、検知モジュール５８０ごとに３つのデータラッチがある。データラッチは、その中に記憶される並列データが、データバス５２０用のシリアルデータに変換され、逆の場合も同じとなるように、シフトレジスタとして実装することができる。データのブロックをシリアル転送によって入力又は出力できるように、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチがともにリンクしてブロックシフトレジスタが形成され得る。特に、読み出し／書き込みモジュールのバンクは、一組のデータラッチのそれぞれが、あたかもそれらが読み出し／書き込みブロック全体のためのシフトレジスタの一部であるかのように、データをデータバスの中に又はデータバスの中から次々とシフトするように適応される。
【００６９】
図７ａは、各記憶素子が２ビットのデータを記憶する４状態型のメモリ装置のための一組の閾値電圧分布の例を示す。第１の閾値電圧分布７００は、消去された（状態Ｅ）記憶素子のためのものである。３つの閾値電圧分布７０２、７０４、及び７０６は、チャネル−フローティングゲート間の結合が補償されたプログラム状態Ａ、Ｂ及びＣをそれぞれ表す。拡幅された閾値電圧分布７０３、７０５、及び７０７は、プログラム状態Ａ、Ｂ及びＣにおいてそれぞれチャネル−フローティングゲート間の結合の影響により生じる。このような結合は、選択記憶素子のフローティングゲートの電位を上昇させ、そのプログラム速度（例えばプログラムパルスあたりの閾値電圧の変化と表現される）を、意図されたプログラム速度よりも速くし、その結果、閾値電圧分布が高圧側の端部において拡幅される。一実施形態では、状態Ｅの閾値電圧は負となり、状態Ａ、Ｂ、Ｃの閾値電圧は正となる。
【００７０】
読み出し基準電圧、Ｖｒａ、Ｖｒｂ、及びＶｒｃは、記憶素子からデータを読み出すために利用される。所与の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ、及びＶｒｃを超えているのか、それとも下回っているのかを検知することによって、システムは記憶素子の状況、例えば、プログラム状態を特定することができる。
【００７１】
さらに、検証基準電圧Ｖｖａ、Ｖｖｂ、及びＶｖｃが利用される。記憶素子を状態Ａ、Ｂ状態、Ｃ状態にプログラムするとき、システムは、それらの記憶素子がそれぞれＶｖａ、Ｖｖｂ、Ｖｖｃよりも大きい閾値電圧を有するか否かを検知する。
【００７２】
フルシーケンスプログラムでは、記憶素子は、消去状態Ｅからプログラム状態Ａ、Ｂ又はＣのいずれかに直接的にプログラムされる。例えば、プログラムされる記憶素子の集合は、その集合の全ての記憶素子が消去状態Ｅとなるように、先ず消去される。図８に示される一連のプログラムパルスは、記憶素子を直接的に状態Ａ、Ｂ、又はＣにプログラムするために使用される。いくつかの記憶素子が状態Ｅから状態Ａにプログラムされる間、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラムされる。
【００７３】
一例であるが、低速プログロムモードでは、一又は複数のデータ状態のために、低（オフセット）検証レベルと高（目標）検証レベルを使用することができる。例えば、ＶｖａＬ及びＶｖａをそれぞれ状態Ａのためのオフセット及び目標検証レベルとし、ＶｖｂＬとＶｖｂをそれぞれ状態Ｂのためのオフセット及び目標検証レベルとすることができる。プログラムの間、目標状態として状態Ａにプログラムされる記憶素子（状態Ａ記憶素子）の閾値電圧がＶｖａＬを超えた時に、電圧Ｖｂｌを、通常プログラムレベル（即ち、非禁止レベル）である例えば０ボルトと、完全禁止レベルである例えば２−３ボルトとの間である例えば０．６−０．８ボルトのレベルまで上げることによって、記憶素子のプログラム速度が減速される。これは、閾値電圧の大きな増大を避け、正確性をもたらす。閾値電圧がＶｖａに達した時、記憶素子はさらなるプログラムからロックアウトされる。同様に、目標状態として状態Ｂにプログラムされる記憶素子の閾値電圧がＶｖｂＬを超えた時に、その記憶素子のプログラム速度が減速され、閾値電圧がＶｖｂに達した時に、記憶素子はさらなるプログラムからロックアウトされる。一つの手法では、最高位の状態については、いくらかのオーバーシュートは基本的に許容されるので、低速プログラムモードを使用しなくてもよい。その代わり、消去状態よりも高く、最高位の状態よりも低いプログラム状態に関しては、二重の検証レベルを使用することができる。
【００７４】
図７ｂは、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図７ａと同じく閾値電圧分布７００、７０２、７０４及び７０６によって４つの状態が示されている。これらの状態及びその示すビットは、状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）である。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることもできる。
【００７５】
第１プログラムパスでは、記憶素子の閾値電圧レベルが、下側の論理ページにプログラムされるビットに応じて設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印７３０で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラムパスを終了する。
【００７６】
第２プログラムパスでは、記憶素子の閾値電圧レベルが、上側論理ページ内にプログラムされるビットに応じて設定される。上側論理ページビットが論理「１」を記憶する場合、記憶素子は下側ページビットのプログラムによって状態Ｅ又はＡの一方にあり、どちらも上側ページビットは「１」を保持するのでプログラムは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば、第２段階では記憶素子をプログラムして、矢印７２０で示すように閾値電圧を状態Ｃとなるように増大させる。第１プログラムパスの結果として記憶素子が状態Ａにプログラムされていれば、記憶素子はさらに第２パスでプログラムされ、矢印７１０で示すように閾値電圧を状態Ｂとなるように増大させる。第２パスは、下側ページのデータを変更することなく、上側ページに論理「０」を記憶するように指定された状態に、記憶素子をプログラムする。
【００７７】
ここで、低速プログラムモードは、この技術にも用いることができる。
【００７８】
一つの手法では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラム処理は受け取ったデータを用いて下側ページプログラムを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラムモードに変換する。
【００７９】
その他の考えられる手法として、第１ステップでは、下側ページをプログラムする。下側ページがデータ１のままである場合、記憶素子状態は状態Ｅに留まる。データが０にプログラムされる場合、記憶素子が状態Ａと状態Ｂの間に広がる中間状態にプログラムされるように、記憶素子の閾値電圧を上昇させる。
【００８０】
上側ページのプログラムでは、記憶素子が消去状態Ｅであって上側ページが１に留まる場合、記憶素子は状態Ｅに留まる。記憶素子が状態Ｅであり、その上側ページデータが０にプログラムされる場合、記憶素子の閾値電圧を上昇させ、記憶素子を状態Ａ（分布１００４）にする。記憶素子が中間閾値電圧分布であって上側ページデータが１に留める場合、記憶素子は目標状態Ｂにプログラムされる。記憶素子が中間閾値電圧分布であって上側ページデータをデータ０とする場合、記憶素子の閾値電圧を上昇させ、記憶素子を状態Ｃとする。
【００８１】
上述したプログラムの例は、４つのデータ状態及び２ページのデータに関するものであるが、ここで教示する概念は、４つの状態より多い又は少なく、２ページより多い又は少ない他の実装例にも適用することができる。例えば、各記憶素子ついて８又は１６の状態を取り得るメモリ素子が、現在、計画されている、又は生産中である。
【００８２】
さらに、前述のプログラム手法の例では、記憶素子が目標データ状態にプログラムされるにつれて、記憶素子のＶｔｈが上昇していく。しかしながら、記憶素子が目標データ状態にプログラムされるにつれて、記憶素子のＶｔｈが低下していくプログラム手法を採用することもできる。記憶素子電流を測定するプログラム手法も採用することができる。本明細書の概念は、種々のプログラム手法に適合されうる。
【００８３】
図８は、プログラム動作中に選択ワードラインに印加される一連のプログラム及び検証パルスを示す。プログラム動作は、複数のプログラム反復を含んでもよく、その場合、各反復では、一又は複数のプログラムパルス（電圧）とこれに続く一又は複数の検証電圧とが、選択ワードラインに印加される。一つの可能なアプローチでは、プログラム電圧は連続する反復においてステップアップされる。さらに、プログラム電圧は、パス電圧（Ｖｐａｓｓ）レベルを有する第１の部分、例えば、６〜８ボルトと、これに続くプログラムレベルの第２の部分、例えば、１２〜２５ボルトを含んでいてもよい。例えば、第１、第２、第３、及び第４のプログラムパルス８００、８０２、８０４、及び８０６は、それぞれＶｐｇｍ１、Ｖｐｇｍ２、Ｖｐｇｍ３、及びＶｐｇｍ４などのプログラム電圧を有する。各プログラムパルスの後には、Ｖｖａ、Ｖｖｂ、及びＶｖｃなどの一又は複数の検証電圧の組８０８が提供されてもよい。記憶素子がすべて最低プログラム状態（例えば、Ａ状態）に達しているとは考えられないので、場合によっては、一又は複数の初期プログラムパルスに検証パルスが続かないこともある。その後、プログラム反復では、Ａ状態に対して検証パルスが使用され、例えば、これにＡ状態及びＢ状態に対して検証パルスを使用するプログラム反復と、Ｂ状態及びＣ状態に対して検証パルスを使用するプログラム反復とが続く。
【００８４】
一つのオプションでは、偶−奇プログラムパルスが使用される。この場合、一度の反復プログラムでは、偶数ビットラインの選択記憶素子をプログラムするための一のプログラムパルスが使用され、これに奇数ビットラインの選択記憶素子をプログラムするための別のプログラムパルスが続き、さらに偶数及び奇数ビットラインの両方に対して一又は複数の検証パルスが続く。
【００８５】
図９は、一組の記憶素子に対するマルチパスプログラム動作を示す。図示された構成要素は、より大きい組の記憶素子、ワードライン、及びビットラインのサブセットであってもよい。一つのアプローチでは、ＷＬｎ−１の記憶素子、例えば、記憶素子９０２、９０４、及び９０６は、第１のプログラムパスでプログラムされる。このステップは円で囲まれた「１」で表される。次の（「２」）では、ＷＬｎの記憶素子、例えば、記憶素子９１２、９１４及び９１６が、第１のプログラムパスでプログラムされる。この例では、ワードラインがプログラムのために選択されるとき、各プログラムパルスの後に検証動作が行われる。ＷＬｎに対する検証動作中に、一又は複数の検証電圧がＷＬｎに印加され、パス電圧がＷＬｎ−１及びＷＬｎ＋１を含む残りのワードラインに印加される。選択ワードラインに対して検知動作が行われるよう、非選択記憶素子をターンオンする（導通状態にする）ためにパス電圧が使用される。次の（「３」）では、ＷＬｎ−１の記憶素子が、第２のプログラムパスでプログラムされる。次の（「４」）では、ＷＬｎ＋１の記憶素子が、第１のプログラムパスでプログラムされる。次の（「５」）では、ＷＬｎの記憶素子が、第２のプログラムパスでそれぞれの目標状態にプログラムされる。
【００８６】
図１０ａは、チャネル−フローティングゲート結合とフローティングゲート−フローティングゲート結合とを示すＮＡＮＤストリングの断面図を示す。ビットライン即ちＮＡＮＤストリングの方向は紙面に垂直であり、ワードラインの方向は左から右に向かう。ワードライン１０００は複数のＮＡＮＤストリングにわたる。第１のＮＡＮＤストリングは、チャネル領域（ＣＨ）１０１６を含む。図２及び３に関して述べたチャネル領域も参照されたい。第１のＮＡＮＤストリングの記憶素子１０１０は、制御ゲート（ＣＧ）１０１２と、フローティングゲート（ＦＧ）１０１４を含む。制御ゲート（ＣＧ）１０１２は、ワードライン１０００の一部である。第２のＮＡＮＤストリングは、チャネル領域１０２６を含む。第２のＮＡＮＤストリングの記憶素子１０２０は、制御ゲート１０２２と、フローティングゲート１０２４を含む。制御ゲート１０２２は、ワードライン１０００の一部である。第３のＮＡＮＤストリングはチャネル領域１０３６を含む。第３のＮＡＮＤストリングの記憶素子１０３０は、制御ゲート１０３２と、フローティングゲート１０３４を含む。制御ゲート１０３２は、ワードライン１０００の一部である。
【００８７】
メモリデバイスが小型化されるにつれて、記憶素子間の干渉が次第に重要な役割を果たす。冒頭で述べたように、これらの干渉の一つは、プログラム中に生じるチャネル−フローティングゲート結合である。全ビットラインプログラムにおいて、プログラムを受ける選択ワードライン１０００の選択記憶素子１０２０を考える。同じワードライン１０００上の隣接ビットラインの隣接記憶素子（例えば、１０１０及び／又は１０３０）はその目標データ状態に達すると、以後のプログラムからロックアウトされる。その結果、次のプログラム反復では、ロックアウトされた記憶素子又は非選択記憶素子の基板チャネル領域（例えば、１０１６及び／又は１０３６）がブーストされて、プログラムパルスが選択ワードライン１０００に印加されるときに、非選択記憶素子のフローティングゲート（例えば、１０１４及び／又は１０３４）が上昇されるのを阻止する。しかしながら、チャネル（例えば、１０１６及び／又は１０３６）でブーストされた電位は、チャネル１０２６が０Ｖなどの一定電圧に保たれる場合に、選択記憶素子１０２０のフローティングゲート１０２４に結合し、プログラムパルスが印加されるときフローティングゲート１０２４とチャネル１０２６との間の実効電場の上昇をもたらす。結合の大きさは、チャネル電位及び結合係数に依存する。このため、選択記憶素子のＶｔｈに所望以上の大きい上昇が生じる。したがって、記憶素子のＶｔｈ分布は、図７ａに示すように無用に広がってしまう。
【００８８】
チャネル−フローティングゲート結合に加えて、フローティングゲート−フローティングゲート結合も選択記憶素子で見られる実効Ｖｐｇｍを増加させる可能性がある。これは、フローティングゲート１０１４及び／又は１０３４からフローティングゲート１０２４への結合によって表される。
【００８９】
例えば、０．２Ｖのステップサイズのプログラム電圧がワードライン１０００に印加されると、チャネル１０１６からの結合によって、フローティングゲート１０２４の電位は、０．３Ｖなど、ステップサイズがより高く、かつチャネル１０１６からの結合がなかった場合に予想される大きさだけ上昇することがある。チャネル１０３６からの結合も同様に、フローティングゲート１０２４の電位を予想よりも上昇させることがあり、それによって予想されるよりも速いプログラムが行われる。このことは、主に、隣接ビットライン／ＮＡＮＤストリングが同時にプログラムされる全ビットライン（ＡＢＬ）プログラム手法に関する。ＡＢＬの場合、隣接記憶素子は、プログラムの開始時にチャネルが０Ｖのプログラム記憶素子であることがある。プログラムが進むにつれ、隣接記憶素子は、例えば８Ｖといった高くブーストされたチャネル電圧を有する禁止記憶素子へと変化する。この突然の変化によって、隣接記憶素子では、プログラムするための電場が突然に増加されてしまうことがある。
【００９０】
ＡＢＬプログラムの一つの特徴は、プログラム終了時点がきわめて不規則で予測不可能なことである。前述の偶数／奇数プログラム手法では、偶数ＮＡＮＤチェーンがプログラムされるときに、奇数ＮＡＮＤチェーンは選択されず、逆も同様である。非選択ＮＡＮＤチャネルは、プログラムシーケンスの初めから、高い電位で常にブーストされる。チャネル−フローティングゲート結合は、選択記憶素子がプログラムに対して比較的高い電場を有効に受けるようにするが、選択記憶素子は比較的高い電場を受ける第１のプログラムパルスで比較的速くプログラムされるだけである。後続のプログラムパルスは非選択記憶素子の隣接チャネルからの一定の結合による影響を受けず、従って、定常状態のプログラムに続く選択記憶素子に対する突然のＶｔｈ変化は生じない。偶数／奇数プログラム手法は、チャネル−フローティングゲート結合による副次的悪影響がないという利点を有するものの、そのパフォーマンスはＡＢＬプログラムのパフォーマンスの半分にすぎない。従って、パフォーマンスにおいて不利な条件のないＡＢＬプログラムにおいて、補償手法をものにすることに価値がある。
【００９１】
ＡＢＬプログラムの場合、選択記憶素子に対する突然の電場変化を解消するために、選択記憶素子のチャネルは、一定電圧、例えば、０．５Ｖで補償することができ、それによってフローティングゲートからチャネルへの実効電圧を減らすことができる。このチャネルバイアスは、図３に示すように、選択ゲートＳＧＤからビットラインを通じて供給することができる。ビットライン３４１の電圧は、ゲート電圧３４２を適切なレベルまで上昇させることによって、チャネル３３０に伝達することができる。ビットライン−ビットライン結合は、ビットラインが互いに非常に接近しているので、比較的強力である。この事実は、チャネル電位を変調するために必要なビットライン電位を得るために利用することができる。
【００９２】
図１０ｂは、非選択ビットラインから選択ビットラインへの結合を示す。矢印で表される結合は、非選択ビットラインから選択ビットラインに対して起こりうる。このような結合は、隣接する両方の非選択ビットラインが選択ビットラインに結合するときに最も高い。このビットライン結合は、選択記憶素子のチャネル電圧を補償し制御するために利用されうる。
【００９３】
一般に、選択ビットラインによって受ける結合は、一又は複数の隣接ビットラインのパターンに依存する。例えば、結合は一又は複数の非隣接ビットラインから受ける。また、結合効果が波及効果によってビットラインのチェーンを越えて伝わることもありうる。パターンＵ１−Ｓ２−Ｓ３−Ｓ４−Ｕ５を有する一連の隣接ビットラインを考える。ここで、Ｕ及びＳは、それぞれ非選択ビットライン及び選択ビットラインを表す。Ｓ３では、Ｕ１及びＵ５が非隣接ビットラインではあるものの、これらのビットラインからの結合を受けることもある。隣接ビットライン間の結合比は、比較的高く、例えば４５％となることがあり、これとは別に５％が次の次に隣接する記憶素子の結合又はグラウンドからのものとなる。別のビットラインから２ビットライン離れているビットラインからの結合は４５％×４５％＝２０．２５％であり、これは有意である。それゆえ、Ｓ３は全体で結合の４０．５％を受ける可能性があり、これは選択記憶素子が片側に隣接する隣接非選択記憶素子を有する場合に非常に近い。結合効果には意図的結合効果と非意図的結合効果とがある。Ｕ５からＳ４まで、又はＵ１からＳ１までの結合は、Ｕ５からＳ４まで及びＵ１からＳ１までのチャネル結合効果を補償するためにスローダウン効果を提供する意図的結合である。Ｕ１及びＵ５の両方からのＳ３ビットライン結合（例えば、４０．５％）は、４５％の直接結合効果に非常に近く、非意図的結合効果であり、望ましくないプログラムのスローダウンをもたらす。Ｓ２及びＳ４はＳ３に関連する選択記憶素子のフローティングゲートを結合するために禁止チャネルを有していないので、Ｓ３はその直接隣接記憶素子、すなわち、Ｓ２及びＳ４からの結合による影響を受けない。
【００９４】
チャネル−フローティングゲート結合を抑制するための様々なアプローチとして、前述の偶数−奇数プログラムパルスの使用が挙げられる。しかしながら、これはパフォーマンスに不利な条件をもたらす。また、非選択記憶素子に対するブーストを抑制することが可能であるが、そうすることでプログラム外乱のリスクが増す。低速プログラムモードにおいてビットラインをフロートさせる手法も考えられるが、効果的に実施することが困難である。このような実施態様においてフローティング状態にされる禁止ビットラインは、低速プログラムモードビットライン（低速プログラムモードの選択記憶素子に接続されたビットライン）によって結合し得るが、禁止Ｖｂｌにおける最後の昇圧は、低速プログラムモードビットラインを結合するには十分でなく、プログラムを十分にスローダウンできないことがある。別のアプローチは、比較的小さいプログラムパルスステップサイズを採用するものである。しかしながら、これもパフォーマンスに不利な条件をもたらす。
【００９５】
図１１ａは、オフセット及び目標検証レベルを使用するとともに結合効果を抑制するプログラム手法例の閾値電圧分布１１００、１１０２、１１０４及び１１０６を示す。
【００９６】
一つのアプローチでは、Ａ状態及びＢ状態記憶素子がまず高速プログラムモードでプログラムされ、この後、これらのＶｔｈがそれぞれの目標検証レベルに近づくと低速プログラムモードでプログラムされる。Ｃ状態記憶素子は、パフォーマンスを高めるために低速モードを有していない。図７ａに関連して述べたように、低速及び高速プログラムモードは、比較的狭いＶｔｈ分布を実現するために採用されうる。記憶素子は、最初、そのビットラインを０Ｖとする高速プログラムモードによって、消去状態から比較的高い状態にプログラムされうる。記憶素子はその目標検証レベルから離れているため、結合によって生じる突然のＶｔｈの急上昇が、所望のＶｔｈ範囲を超えて記憶素子をオーバープログラムすることはない。よって、結合効果は無視されうる。記憶素子のＶｔｈが、それぞれ目標検証レベルＶｖａ又はＶｖｂからオフセットされたＶｖａＬ又はＶｖｂＬなどのオフセット検証レベルに合格すると、記憶素子は低速プログラムモードに入り、そこでは、Ｖｂｌを例えばＶｓｌｏｗ＝０．６〜０．８Ｖに上昇させるなどして、各プログラムパルスに伴うＶｔｈの増加率を低減させる。記憶素子が低速プログラムモードにあるとき、即ち、その目標検証レベルに近いときは、正確な制御が求められるので、結合効果は補償されるべきである。チャネル結合効果を補償するためには、意図的なスローダウンに加えて、追加的なスローダウンが必要である。この手法はダブルスローダウン（ＤＳＤ）と呼ばれることがある。追加的なスローダウンを行う一つのアプローチは、ＶｂｌをＶｓｌｏｗに上昇させた後に、ビットラインをフローティング状態にすることである。記憶素子のＶｔｈが目標検証レベルに合格すると、記憶素子はそのＶｂｌを上昇させることによってさらなるプログラムからロックアウトされる。
【００９７】
なお、目標に近づいたときに行う意図的なスローダウンを伴う最終プログラム手法は、必ずしも必要とされない。
【００９８】
別のアプローチでは、一つのプログラム速度モードが採用されるが、オフセット及び目標検証レベルでの検証動作も実施する。この場合、データ状態のオフセット検証レベルに達すると、データ状態にプログラムされる必要のある選択記憶素子のビットラインはフローティング状態にされる。これは、他のいくつかのアプローチの場合と同様に、Ｖｂｌをさらに高く駆動することなく実施することができる。データ状態の目標検証レベルに達すると、これらの選択記憶素子に対するビットラインはロックアウトされる。
【００９９】
オフセット検証レベルＶｖａＬ及びＶｖａＢは、それぞれ、Ａ及びＢ状態記憶素子に対するトリガー検証レベルであると考えることができ、ビットラインフローティング及び／又はＶｂｌ＝Ｖｓｌｏｗと設定することをトリガーする。
【０１００】
しかしながら、これらのアプローチでは、追加的な検証動作が採用され、パフォーマンスに不利な条件がもたらされる。
【０１０１】
図１１ｂは、プログラム手法の一例における閾値電圧分布を示す。この手法は、プログラム動作を通じてただ一つのプログラム速度モードと一の状態あたり一の検証レベルとが使用される場合における結合効果を抑制する。この場合、記憶素子は、高速プログラムモード又は禁止モードのいずれかにある。チャネル−フローティングゲート結合を補償するために、Ｖｔｈの範囲は、付加的な検証動作を追加することなく、３つの領域（４つのデータ状態が使用されるもの仮定として）に分割することができる。Ｖｖａ未満の第１の領域において、Ｂ状態及びＣ状態の記憶素子は、これらの目標から離れているので高速プログラムモードとすることができる。Ａ状態記憶素子については、必要に応じて、これらに接続されたビットラインをフロートさせることにより、スローダウンすることができる。フローティング状態のビットラインは、隣接記憶素子が禁止されたときに隣接ビットラインによって結合されうる。Ａ状態記憶素子は、Ｖｖａを通過した後、禁止される。
【０１０２】
Ｖｖａ〜Ｖｖｂの第２の領域では、Ｂ状態記憶素子がＶｖａを通過したら、これらに接続されたビットラインをフロートさせ、隣接記憶素子の禁止ビットラインからの結合を受けるようにする。それにより、Ｂ状態記憶素子はスローダウンしてオーバープログラムが防止される。Ｖｖｂを超える第３の領域では、Ｂ状態記憶素子はＢ検証レベル（Ｖｖｂ）を通過した後、禁止される。Ｃ状態記憶素子は、Ｖｖｃに達するまで高速プログラムモードとされる。目標検証レベルＶｖａ及びＶｖｂは、それぞれＢ状態及びＣ状態記憶素子に対するトリガー検証レベルと見なすことができ、ビットラインフローティングをトリガーする。
【０１０３】
この手法では、プログラム動作のすべて又は選択された一部分において、一又は複数の隣接する非選択ビットライン、あるいは近傍に位置する他の非選択ビットラインが存在するときに、これらのビットラインからの結合を許容して、選択ビットラインに対するプログラム速度を低下させることが可能である。なお、この手法は、一又は複数の隣接する非選択ビットラインがあるかどうかを把握する必要がなく、それにより、この情報を得るためのステップと、それに応じたパフォーマンスの低下を避けることができる。プログラム速度は、存在する結合の大きさに応じて自動的に低減される。特に、選択ビットラインをフローティング状態にすると、ビットラインは隣接する非選択ビットラインによってより高く結合されうることになる。およそ３ｐＦの大きい静電容量を有するビットラインは、非常に小さい静電容量（おそらく、３ｐＦの１％）を有する接続されたチャネルに対する電源としての役割を果たしうる。結合電圧を有するビットラインの場合、チャネルはビットラインと同じ電圧にある。禁止ビットラインの電圧は、チャネルがフローティング状態にありかつビットラインから切り離されるパストランジスタＳＧＤに対して十分に高い。フローティングチャネルは、ワードライン電圧を上昇させることによって後で結合され、高いブースト電圧を実現して以後のプログラムを阻止する。
【０１０４】
選択記憶素子のビットラインをフローティング状態にし、補償の一形態として低速プログラムを行うとの指示は、後述するように、「スローダウン」ビットをＵＤＬラッチに設定することによって行うことができる。
【０１０５】
理想的に、フローティング状態のビットラインを介したスローダウンは、目標検証レベルの前の約５００ｍＶで行われるべきである（５００ｍＶという最悪時のチャネル−フローティングゲート結合を仮定して）。Ａ状態及びＢ状態記憶素子に関して前述したようなフローティング状態のビットラインを介したスローダウンを行うことは、およそ２つの新たな検証パルスを追加するという結果になり得る。しかしながら、プログラムパルスはＣ状態プログラムと共有されるので、新たなプログラムパルスは生じない。Ｃ状態記憶素子に対するスローダウンは、およそ２つの新たなプログラムパルスを追加するという結果になり得る。しかしながら、このようなトレードオフによって、比較的狭いＶｔｈ分布が得られる。パフォーマンスにおける不利な条件を抑制するために、一つの実施態様では、Ｃ状態記憶素子をスローダウンしないことである。記憶素子の他の状態へのプログラムのほとんどは、Ｃ状態記憶素子がプログラムを継続しているときに禁止されるので、実際のところ、Ｃ状態は、他の２つの状態Ａ及びＢよりも、チャネル−フローティングゲート結合効果の確率が低い。さらに、Ｃ状態記憶素子がこれらの検証レベルに達する前に、隣接する記憶素子が多くのプログラムパルスから禁止される場合、Ｖｔｈ分布がチャネル−フローティングゲート結合現象によって広げられることはない。
【０１０６】
なお、比較的多くのビットラインがプログラム動作の初期に接地されるとき、接地ビットラインは一般にビットライン間の結合を阻止するので、ビットライン間の結合の機会は少ない。
【０１０７】
さらに詳しくは、図８に示すような階段状に増加するＶｐｇｍが使用されるものと仮定する。典型的には、Ａ状態記憶素子のプログラムに第１の組のプログラムパルスが使用され、Ｂ状態記憶素子のプログラムには重複する第２の組のプログラムパルスが使用され、Ｃ状態記憶素子のプログラムには重複する第３の組のプログラムパルスが使用される。ビットラインフローティングに起因して、Ａ状態段階の初期にいくらかのスローダウンがあるものと仮定しよう。この場合は、スローダウンがない場合に比べて、Ａ状態プログラム段階が遅く終了することになる。さらに、Ｂ状態に対するスローダウンがある場合、やはりスローダウンがない場合に比べて、Ｂ状態プログラム段階が遅く終了することになる。しかしながら、記憶素子は同じプログラムパルスを共有するので全プログラム時間が増加しないことから、Ａ状態及びＢ状態記憶素子のプログラムにより長い時間を費やし、かつより多くの検証動作を実施することが容認される。全体のプログラム時間は、最高位の状態に対するプログラム時間に基づくことになる。
【０１０８】
それゆえ、Ｃ状態記憶素子がスローダウンされると、全プログラム時間に関して不利となりうる。なお、一般に、チャネル−フローティングゲート結合効果は、比較的稀なことではあるが、隣接ビットラインがロックアウトされたときに、ビットラインがほとんどロックアウトされる可能性がある。この稀な事象がＣ状態と結合することはさらに稀な事象である。Ｃ状態記憶素子をスローダウンすると、全プログラム時間が、例えば２回のプログラム反復分だけ、増加する可能性がある。
【０１０９】
図１１ｃは、図１１ａ及び１１ｂに関係したプログラムプロセスの例を示す。プログラム動作はステップ１１２０において開始する。プログラム反復はステップ１１２２において開始する。
【０１１０】
一つの手法では、図１１ａに対応して、ステップ１１２４において、ビットラインはオフセット検証レベル（選択記憶素子の目標検証レベルよりも低い検証レベルである）に達していない選択記憶素子に対して接地され、ビットラインはオフセット検証レベルに達している選択記憶素子を補償するためにフロートされる。例えば、ＶｖｂＬはＢ状態記憶素子に対するオフセット検証レベルであり、この場合、目標データ状態はＢ状態であり、目標検証レベルはＶｖｂである。一つの選択肢として、例えば、ビットラインがＶｓｌｏｗよりもわずかに高いレベルでフローティング状態となるように、ビットラインをフロートさせる前に、Ｖｂｌ＝Ｖｓｌｏｗと設定することができる。あるいは、例えば、ビットラインが０Ｖよりもわずかに高いレベルでフローティング状態となるように、ビットラインをフロートさせる前にＶｂｌ＝０Ｖと設定することもできる。
【０１１１】
別の手法では、図１１ｂに対応して、ステップ１１２６において、選択記憶素子がその目標データ状態よりも低い特定の低データ状態の目標検証レベル（選択記憶素子の目標検証レベルよりも低い検証レベルである）に達していなければ、その選択記憶素子のビットラインを接地し、選択記憶素子が当該特定の低データ状態の目標検証レベルに達していれば、その選択記憶素子のビットラインを補償のためにフロートさせる。例えばＶｖａは、Ｂ状態という目標データ状態よりも低いデータ状態の目標検証レベルである。すなわち、Ａ状態は、Ｂ状態よりも１状態だけ低い。状態Ｅｒ（比較的高いＥ状態とは異なる消去状態を示す）、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、及びＧを有する８レベルデバイスでは、状態Ｄは、例えば、状態Ｆよりも２状態だけ低い。
【０１１２】
ステップ１１３２では、フローティング状態のビットラインを結合するために、非選択ビットラインの電圧が昇圧される。ステップ１１３４では、プログラムパルスが印加される。
【０１１３】
ステップ１１２８では、非選択ワードラインのＶｐａｓｓを上昇させる。これは、選択ビットラインのフローティングを開始する前又は後に行うことができる。ステップ１１３０では、Ｖｐａｓｓを上昇させる前又は後に、あるいは選択ビットラインをフロートさせる前又は後に、Ｖｓｇｄを昇圧する。Ｖｓｇｄは、Ｖｐｇｍが上昇されると同時に（チャネルブースティングがＶｐａｓｓに依存するときはＶｐｇｍの前に、チャネルブースティングがＶｐｇｍに依存するときＶｐｇｍの後に）、昇圧することができる。これは、禁止ビットラインの昇圧を有しない通常のプログラムにおける任意のステップである。後述する図１５は、図１１ｃのステップの一部を示す。例えば、接地されたビットライン（１５２４）のＶｂｌや、フローティング状態にあるビットライン（１５２２）のＶｂｌが示されている。ここで、フローティングはｔ８で開始され、ｔ８において非選択ビットラインのＶｂｌが昇圧され（１５１８）、選択ビットラインのフローティング（ｔ８における）の前（ｔ７）に非選択ワードラインのＶｐａｓｓが上昇され（１５２９）、選択ビットラインのフローティング（ｔ８における）の後（ｔ９における）に非選択ワードラインのＶｐａｓｓが上昇され（１５２８）、Ｖｐａｓｓを上昇させた後（それぞれｔ７〜ｔ９における）にＶｓｇｄを昇圧する（それぞれ、ｔ９又はｔ１０における１５３０又は１５３１）。Ｖｓｇｄは、記憶素子とそれぞれのビットライン（例えば、図３における３２１、３４１、及び３６１）との間に設けられたドレイン選択トランジスタ（例えば、図３における３２２、３４２、及び３６２）のゲート電圧である。
【０１１４】
ステップ１１３６では、検証動作が実施される。検証動作の結果は、目標検証レベルに達した選択記憶素子のビットラインをロックアウトするために使用される。ステップ１１３８では、検証動作の結果に基づいて、検知回路におけるラッチが更新される。判断ステップ１１４０では、次のプログラム反復がある場合、ステップ１１２２において次のプログラム反復の処理へと継続する。判断ステップ１１４０がＮＯであれば、プログラム動作がステップ１１４２において終了する。
【０１１５】
なお、ステップ１１２４、１１２８、１１３０、１１３２及び１１３４は、その少なくとも一部分が時間的に重なってもよい。同様に、ステップ１１２６、１１２８、１１３０、１１３２及び１１３４も、その少なくとも一部分が時間的に重なってもよい。概して、結合されたビットラインは、非選択ビットラインが昇圧される前に、フローティングされているべきである。さらに、所望のビットライン及びＳＧＤ電圧は、Ｖｐｇｍが印加されるときまでに確立されているべきである。
【０１１６】
なお、本明細書に記載される様々なプログラム手法は、制御回路の適切な論理によって実施されうる。
【０１１７】
図１１ｄは、それぞれのビットラインに対するデータラッチを示す。前述のように、データラッチは、スローダウンビットを記憶するために使用されうる。このビットは、接続された記憶素子が、プログラム動作の少なくとも一部の間でそのビットラインがフロートされ、スローダウンされるべきであることを示す、一つの値（１）を有することができる。このビットは、接続された記憶素子がスローダウンされるべきでなく、プログラム動作の少なくとも一部の間でそのビットラインを接地することによって、高速プログラムされるべきであることを示す、もう一の値（０）を有することができる。ビット値は、プログラム動作中に変化し、ビットラインを適切に制御するために、典型的には接続された検知回路を介して、制御回路によって読み出される。
【０１１８】
一般に、各々が１ビットのデータを記憶する複数のデータラッチを、各ビットラインに対して設けることができる。ラッチは、接続された記憶素子がプログラム動作において所定の管理点に達していることを識別する。例えば、ラッチは、記憶素子がまだプログラムを終了していないこと（例えば、そのＶｔｈがＶｖａ、Ｖｖｂ、又はＶｖｃなどの目標検証レベル未満であること）、あるいはプログラムを終了していること（例えば、そのＶｔｈが目標検証レベルを超えること）を識別してもよい。また、ラッチは、記憶素子のＶｔｈがオフセット検証レベル（例えば、ＶｖａＬ又はＶｖｂＬ）未満である、例えば、低速プログラムモードにおいてオフセット検証レベル（例えば、ＶｖａＬ又はＶｖｂＬ）を超えるが目標検証レベル（例えば、Ｖｖａ、Ｖｖｂ、又はＶｖｃ）未満である、あるいは目標検証レベルを超えることを識別してもよい。
【０１１９】
ＸＤＬラッチと称される第１の組のラッチ１２０１は、ラッチ１２００、１２０２、１２０４、１２０６及び１２０８を含む。ＸＤＬラッチは、例えば、データの下位ページを記憶するために使用されうる。ＸＤＬラッチは、下位ページビットが接続された記憶素子に記憶されたときに反転される。ＵＤＬラッチと称される第２の組のラッチ１２１１は、ラッチ１２１０、１２１２、１２１４、１２１６及び１２１８を含む。一つの可能な実施態様では、ＵＤＬラッチは、接続された記憶素子が低速プログラムモードにあるとき、例えば、そのＶｔｈがオフセット検証レベルと目標検証レベルの間にあるときに反転される。図１１ａの実施態様では、ＵＤＬラッチは、接続された記憶素子のチャネルがフローティング状態にある低速プログラムモードからそのチャネルが接地される高速プログラムモードに遷移するとき反転されるビットを記憶する。ＬＤＬラッチと称される第３の組のラッチ１２２１は、ラッチ１２２０、１２２２、１２２４、１２２６及び１２２８を含む。ラッチは、代表的なビットラインＢＬｉ−２、ＢＬｉ−１、ＢＬ、ＢＬｉ＋１及びＢＬｉ＋２に接続される。ＬＤＬラッチは、例えば、データの上位ページを記憶するために使用されうる。ＬＤＬラッチは、接続された記憶素子がプログラムを終了するとき、例えば、そのＶｔｈがＶｖａ、ＶＶｂ、又はＶｖｃなどの目標検証レベルを超えるとき反転される。
【０１２０】
図１１ｅは、図１１ｄのラッチのビット割当を示す。Ｅは消去状態を示す。Ａｆ、Ｂｆ及びＣｆは、チャネルが接地された状態でのそれぞれＡ状態、Ｂ状態及びＣ状態記憶素子に対する高速プログラムモードを示す。Ａｓ、Ｂｓ及びＣｓは、ビットラインがフローティングされた状態でのそれぞれＡ状態、Ｂ状態及びＣ状態記憶素子に対する低速プログラムモードを示す。Ａｉｎ、Ｂｉｎ及びＣｉｎは、それぞれＡ状態、Ｂ状態及びＣ状態記憶素子に対する禁止モードを示す。ｌｏｃｋｏｕｔ及びｌｏｃｋｏｕｔｌは、検知回路におけるビットラインを制御するためにデータラッチからのそれぞれ第１及び第２のデータ転送を示す。第１の転送は、ダイナミックラッチとしてコンデンサを用いてデータを検知ノードに入れ、この後、データをラッチに転送し、第２の転送は後述するように一部のデータをラッチに戻す。これらのデータ転送は、検知回路における電圧を制御する方法を提供する。例えば、禁止するための一の電圧とスローダウンするための一の電圧を使用してもよい。ｌｏｃｋｏｕｔｌは、ビットラインが低速プログラムモードにあるかどうかを示すために使用されうる。
【０１２１】
この実施態様では、ＵＤＬ＝１は低速プログラムモードがＡ、Ｂ及びＣ状態に対して効力があることを示す。プログラム中、制御回路は選択記憶素子に対するラッチデータを読み出し、データに応じて、選択記憶素子がそのビットラインをフローティング状態又は接地された状態のいずれでプログラムされるべきかを判断する。制御回路は、この後、対応するデータを検知回路に転送する。
【０１２２】
図１２は、補償なしの高速プログラムモード、補償付きの低速プログラムモード、及びロックアウト／禁止条件に対するデータ状態の閾値電圧範囲を示す。一般に、チャネル−フローティングゲート結合は、Ｖｔｈの増加率のより正確な制御が必要とされるときに、低速プログラムモードにある記憶素子に対して最も重要となる。最も高い状態（例えば、Ｃ状態）では、チャネル−フローティングゲート結合に対する補償が、他の状態の場合ほど重要ではないので、低速プログラムモードが必ずしも使用される必要はない。従って、Ｃ状態プログラムは、スローダウンされず、一般的なパフォーマンスの不利な条件が生じない。Ａ及びＢ状態に対する低速プログラムモードは、さらに２〜３の検証動作などの不利な条件をもたらす。その結果、例えばＢ状態を例とすると、閾値電圧の範囲１２５４では、チャネルを接地した状態での高速プログラムを行うことができ、チャネル−フローティングゲート結合に対する補償はしない。この範囲１２５４はＶｖｂＬまで及ぶ。閾値電圧の範囲１２５６では、チャネル−フローティングゲート結合を補償しながらの低速プログラムが行なわれ、これはＶｔｈ分布１２５０に対応する。この範囲１２５６はＶｖｂＬからＶｖｂにまで及ぶ。そして、閾値電圧の範囲１２５８は、Ｖｖｂよりも高く、Ｖｔｈ分布１２５２に対応するが、ここではＢ状態記憶素子がロックアウト／禁止状態とされる。上記した説明は、他の状態に対しても適用される。
【０１２３】
潜在的な欠点としては、範囲１２５６の近く、例えば、ＶｖｂＬの近く及びその直下にある記憶素子は、チャネル−フローティングゲート結合による影響を受け、そのＶｔｈがＶｔｈ分布１２５２の右端まで急上昇され、Ｖｔｈ分布が広げられるおそれがある。
【０１２４】
代替的アプローチは、目標状態にかかわらず、高速プログラムモード記憶素子のビットラインをフロートさせて、そのプログラムをスローダウンすることである。両方の選択肢は、どちらが最適であるかを判断するために、メモリデバイスで実施することができる。
【０１２５】
チャネル−フローティングゲート結合を補償する様々なプログラム手法を以下で詳しく説明する。
【０１２６】
図１３は、一組の不揮発性記憶素子をプログラムする方法を示す。この方法では、隣接ビットラインへの補償結合をもたらすために、禁止ビットラインの電圧が二つの駆動電圧を用いて昇圧される。ステップ１３００では、プログラム動作が開始される。ステップ１３０２では、プログラム動作の反復が開始される。ステップ１３０４では、禁止された（非選択）記憶素子の第１のグループと、低速プログラムモードにある第２のグループの記憶素子と、高速プログラムモードにある第３のグループの記憶素子とが識別される。第１のグループは非選択記憶素子を示し、第２及び第３のグループは選択記憶素子を示す。この識別は、例えば、制御回路がラッチデータを読み出すことによって行うことができる。第１のグループは第１のビットラインに接続された第１の記憶素子を含み、第２のグループは第２のビットラインに接続された第２の記憶素子を含み、第３のグループは第３のビットラインに接続された第３の記憶素子を含む。記憶素子及びビットラインは、メモリアレイ内で互いにいかなる相対位置にあってもよい。
【０１２７】
ステップ１３０６では、第１の期間において、第１のグループのビットラインがＶｄｄ−ΔＶ（初期レベル）の電源でプレチャージされるとともに、第２及び第３のグループのビットラインが接地される。ΔＶは、選択記憶素子で生じるチャネル−フローティングゲート結合を弱める非選択ビットラインから選択ビットラインへの結合をもたらす電圧の上昇分を示す。即ち、選択記憶素子では、チャネル−フローティングゲート結合に起因するフローティングゲート電位の上昇は、そのビットライン電位を上昇させることによって少なくとも部分的に補償される。
【０１２８】
ステップ１３０８では、第１の期間後の第２の期間に、第２のグループのビットラインがＶｓｌｏｗまでプレチャージされる。このステップでは、望ましくない結合効果を防止するために、禁止ビットライン及び接地ビットラインが能動的にバイアスされ、それにより、これらのビットラインがフローティング状態にならないようにすることが望ましい。
【０１２９】
ステップ１３１０では、第２の期間後の第３の期間に、第１のグループのビットラインがＶｄｄ（昇圧されたレベル）の電源で駆動され、第２のグループのビットラインがフロートされ、第３のグループのビットラインがフロート又は接地される。
【０１３０】
同じ期間において、ステップ１３０９では、フローティング開始の前又は後に非選択ワードラインのＶｐａｓｓを上昇させる。その後、ステップ１３１１では、Ｖｐａｓｓを上昇させる前又は後に、あるいはフローティングの開始後で、Ｖｐｇｍが選択ワードライン上で上昇される時などに、Ｖｓｇｄを昇圧される。ステップ１３０９及び１３１１は、ステップ１３１０のタイミングに対して、様々なタイミングで開始することができる。例えば、ステップ１３０９は、非選択ビットラインの電圧上昇前に非選択ワードライン上のＶｐａｓｓを上昇させるステップ１３１０の前に開始することができる。あるいは、ステップ１３０９は、非選択ビットラインの電圧が変化した後に、非選択ワードライン上のＶｐａｓｓを上昇させてチャネルブーストが行わるステップ１３１０の後で開始することもできる。他の場合では、ステップ１３０９に続くステップ１３１１は、非選択フローティングチャネルがまずブーストされ、その後、非選択ビットラインが最終のＶｄｄレベルまで上昇され、その後、Ｖｓｇｄが上昇されるステップ１３１０に先立って開始することもできる。ブーストを行うステップ１３０９の後でステップ１３１０を開始することは、補償ビットライン（隣接する非選択ビットラインによって結合される）に対するチャネルが、それに接続されたチャネルが意図せずブーストされ、プログラムが減速されずに停止されるおそれがないという点で有利である。
【０１３１】
さらに、異なる選択ワードラインに対して、異なる手法を採用することができる。この場合、一部のワードラインに接続されたフローティング状態のチャネルは、非選択Ｖｐａｓｓ電圧によってブーストすることでき（Ｖｐａｓｓブースティングと称する）、他の一部のワードラインに接続されたフローティング状態のチャネルは、採用されたブースティングモードに応じて、選択ワードラインのＶｐｇｍによってブーストすることができる（Ｖｐｇｍブースティングと称する）。ステップ１３０９は、Ｖｐａｓｓブースティング及びＶｐｇｍブースティングの両方の場合を含みうる。Ｖｐａｓｓブースティングの場合、ステップ１３０９はＶｐａｓｓが上昇される時を示す。Ｖｐｇｍブースティングの場合、ステップ１３０９はＶｐｇｍが上昇される時を示す。
【０１３２】
第１のグループのビットラインを、Ｖｄｄ−ΔＶからＶｄｄまで上昇させると、ΔＶの昇圧が、ΔＶの大きさ及びビットラインのパターンに基づいて、第１のグループのビットラインを第２及び第３のグループのビットラインへ結合させる。選択及び非選択ワードライン上のワードライン電圧は、記憶素子の第１のグループに対して禁止のためにフロートされたビットラインと結合する。記憶素子の第２及び第３のグループに対してフロートされたビットラインは、接続されたビットラインの電圧バイアスとして働き、これらのビットラインはワードラインによって結合されない。これは主としてビットラインとチャネルの間の静電容量差によるもので、大きい静電容量を有するビットラインは小さい静電容量を有するチャネルに対するタンクとして働く。
【０１３３】
第１のグループのビットラインからの結合は、第２のグループのビットラインの電位をＶｓｌｏｗよりもＣｒ×ΔＶだけ上昇させ、ここで、Ｃｒは結合比である。同様に、第３のグループのビットラインがフローティング状態にあるとき、第１のグループのビットラインからの結合は、それらの電位をΔＶ及び結合比に基づいて０Ｖを超えて上昇させる。しかしながら、別の可能なアプローチでは、第３のグループのビットラインが接地されると、これらのビットラインが０Ｖに保たれ、ΔＶの電圧上昇による影響を受けない。所与の選択ビットラインが受ける結合の大きさは、例えば、電圧上昇されたビットラインまでの距離とこれらのビットラインの数とに依存する。
【０１３４】
ステップ１３１２では、第２及び第３のグループにおける選択記憶素子に対する一又は複数の検証動作を実施する。ステップ１３１３では、目標データ状態に達したビットラインをロックアウトする。判断ステップ１３１４では、次のプログラム反復がある場合、処理はステップ１３０２において継続し、そうでなければ、プログラム動作はステップ１３１６において終了する。
【０１３５】
例として、図１３の処理は、図１４の検知回路及び図１５の時間軸を用いて実施することができる。例えば、第１の期間は図１５のｔ３〜ｔ６に対応し、第２の期間はｔ６〜ｔ７又はｔ６〜ｔ８に対応し、第３の期間はｔ７〜ｔ１１又はｔ９〜ｔ１１に対応しうる。
【０１３６】
図１４は、図１３の方法とともに採用される検知回路を示す。この検知回路では、駆動電圧がビットラインをバイアスするために使用される。様々な検知回路の構成を採用することができる。ここで説明する様々な検知回路の動作は、同様の名称の構成要素が共通の機能を果たしうることに留意して、これらの記述の集合に基づいて理解することができる。多くの検知回路、例えば、平面上の６４Ｋの検知回路は、他に指定がない限り、典型的には共通の制御信号を受け取り、一又は複数の共通電源にアクセスする。例えば、図４における共通電源４０５を参照されたい。例えば、ＢＬＸ、ＢＬＣ、ＣＬＫ、ＩＣＯ、ＬＣＯ、及びＦＣＯなどの共通制御信号を以下でさらに説明する。検知回路に近い信号の例として、以下でさらに説明するＢＵＳ、ＳＥＮ、ＬＡＴ、及びＦＬＧがある。電源に関しては、大きなグループの検知回路の端にある包括的回路によって、検知回路内のトランジスタゲート電圧が提供される。これらはＶｄｄ＋Ｖｔｈなどの高い電圧であってよい。ゲートには容量性の負荷が加わるので、ゲートには高い電圧を使用することができる。しかしながら、検知回路のドレイン／ソース電圧に対しては、多量の電流が消費されるのを回避するために、電源はＶｄｄに制限される可能性がある。
【０１３７】
検知回路１４９０と同等の回路が、各ビットラインに対しては個別に設けられてもよく、それらの検知回路は、ビットラインに接続された記憶素子が、プログラムを禁止されているのか、低速プログラムモードにあるのか、高速プログラムモードにあるのに応じて、異なるように構成される。一又は複数の制御回路は、各検知回路に対してそれら構成するための指令を送ることができる。また、読取りデータ及び書込みデータなどの、データを交換することもできる。
【０１３８】
検知回路は、データを記憶するために設けられたラッチの数と、ビットラインに与えられる電圧の数によって特徴付けられうる。ここで説明する手法は、検知回路を可能な限りコンパクトで実効的なものにしつつ、検知回路の機能を最適に活用する。実施態様の例は、２つのラッチを含み、ビットラインに３つの電圧、すなわち、０Ｖ、低速プログラムモード電圧、Ｖｓｌｏｗ、及びＶｄｄを供給しうる。凡例１４９１を参照されたい。凡例は、どの構成要素がどの電圧を設定するために使用されるかを示す。一つのラッチ１４７１は、ＬＡＴ１４８０及びその相補的なノードＩＮＶ１４６２におけるフルラッチであり、他のラッチはＳＥＮ１４５４に記憶ノードと接地板としてクロック（ＣＬＫ）ノード１４５３とを有するコンデンサ１４５２によって提供されるダイナミック・コンデンサ・ラッチである。
【０１３９】
ここでの検知回路のトランジスタは、例えば、ｎＭＯＳＦＥＴ（ｎＭＯＳ）及びｐＭＯＳＦＥＴ（ｐＭＯＳ）を含んでいてもよい。ＮＡＮＤストリング１４５０は、検知回路１４９０に接続されており、複数の記憶素子１４４４、１４４６及び１４４８を含む。複数の記憶素子１４４４、１４４６及び１４４８は、ワードラインＷＬ６３、ＷＬ６２、・・・、ＷＬ０に接続されているとともに、例えば、ＳＧＤトランジスタ１４４２を介してビットライン（ＢＬ）１４４０に接続されている。また、ＮＡＮＤストリング１４５０は、複数のＮＡＮＤストリングに対する共通ソースライン１４５１に接続されたソース選択ゲートＳＧＳ１４４９を含む。ビットライン１４４０は、ＢＬＳトランジスタ１４３８及びＢＬＣ（ビットラインクランプ）トランジスタ１４２８に接続されており、ＢＬＣ（ビットラインクランプ）トランジスタ１４２８はＣＯＭ１経路１４２６に結合されている。ＢＬＳトランジスタ１４３８は、低電圧トランジスタを有する検知回路をメモリアレイの高い電圧から分離しうる高電圧トランジスタである。検知中、ＢＬＳは導通状態にある。ＢＬＣトランジスタは、そのゲート電圧とトランジスタのドレインのＶｄｄなどの十分に高い電圧の電源とを制御することによってビットラインの電圧をクランプしうる。
【０１４０】
ＢＬＣトランジスタ１４２８は、ソース（Ｓ）側及びドレイン（Ｄ）側を有する。ＩＮＶトランジスタ１４３０への入力は、ＬＡＴトランジスタ１４３２への入力の反転であり、ＬＡＴトランジスタ１４３２は、ｐＭＯＳ１４３２のｎウェルに対する端子１４３４を介して電源Ｖｄｄを受け取る。これらのトランジスタはソースグランド（ＳＲＣＧＲＤ）ノード１４３６に接続される。同様に、ＬＡＴトランジスタ１４２０への入力は、ＩＮＶトランジスタ１４２４への入力の反転であり、ＩＮＶトランジスタ１４２４は、ｐＭＯＳ１４２４のｎウェルに対する端子１４２２を介してＶｄｄを受け取る。
【０１４１】
一の経路では、ＢＬＸトランジスタ１４１２は、ＣＯＭ２経路１４１８、ＣＯＭ３経路１４１１、及びＱＳＷトランジスタ１４０６の間に及んでおり、ＱＳＷトランジスタ１４０６はさらに電源端子１４０４に接続される。別の経路では、ＨＬＬトランジスタ１４１４及びＸＸＬトランジスタ１４１６はＣＯＭ２経路１４１８及びＳＥＮトランジスタ１４１０の間に及んでおり、ＳＥＮトランジスタ１４１０はさらに電源端子ＢＣＰ１４０８に接続される。ＨＬＬトランジスタ１４１４は、ＳＥＮノードにおける電圧をセットアップするために検知動作の開始時にＳＥＮノード１４５４における初期電圧を設定する。ＸＸＬ、ＳＥＴ、及びＢＵＳは、ＢＵＳ１４６８の電圧に応じてＳＥＮが放電期間後に、例えば、０Ｖに放電されるか、それともＶｄｄに保たれるかを判断するために検知動作において制御される。コンデンサ１４５２は、トランジスタ１４１０を導通状態にあるように制御することによって、ノード１４０８がビットラインにつながるようにビットラインが能動的にＶｂｃｐでバイアスされるべきかどうかを判断するデータを記憶するために使用されうる。さらに、非選択ビットラインに対するＶｂｃｐのＶｄｄ−ΔＶからＶｄｄへの昇圧は、後述するように、結合補償が選択ビットラインに対して必要かどうかを判断するためのプロセスの一部として使用されうる。
【０１４２】
一つの可能なアプローチでは、Ｖｂｃｐノード１４０８は、出力又はＶｄｄの駆動電圧を供給する第１の電源１４０１、あるいは出力又はＶｄｄ−ΔＶの駆動電圧を供給する第２の電源１４０３を選択するスイッチ１４０２に接続される。電源は、例えば、１．７〜２．５Ｖの範囲にあってもよい。電源は独立していてもよく、あるいは２つの出力を使用する一の電源が提供されてもよい。スイッチ１４０２を制御するために制御信号ＳＷが使用されてもよい。すべての感知回路に対する大域的制御部である電源及びスイッチは、検知回路のグループの端に設置されうる。検知回路１４９０は、ΔＶの電圧上昇を提供するために、非選択ＮＡＮＤストリングを表すＮＡＮＤストリング１４５０のビットライン１４４０をＶｄｄ又はＶｄｄ−ΔＶだけ直接駆動するように制御することができ、したがって、選択ビットラインへのΔＶ結合の精確な制御がビットラインをフローティング状態にする可能性なしに提供されうる。
【０１４３】
一つの可能な実施態様では、スイッチを介して１４０１又は１４０３のいずれかを選択するために禁止ビットラインの各検知回路に共通制御信号ＳＷが送られる。共通Ｖｄｄ又はＶｄｄ−ΔＶは、非選択ビットラインの各検知回路へのそれぞれの経路に提供されうる。なお、ＳＥＮの制御下にあるトランジスタ１４１０は、Ｖｄｄ又はＶｄｄ−ΔＶがビットラインを伝達しうるかどうかを判断する。
【０１４４】
ＶｂｃｐがＶｄｄで固定されると、ＶｂｌはＢＬＣトランジスタ１４２８などによるｎＭＯＳクランピングによって制御されうる。ｎＭＯＳクランピングは、ＢＬＣゲート電圧（Ｖｇｓ）に比例するレベルのＶｂｌを供給する。一般に、ＢＬＣクランピングは、ビットラインをフローティング状態にすることなく、ビットラインの電圧を設定するために使用されうる。しかしながら、時としては、クランプされたＢＬＣは遮断されうる。例えば、設定電圧まで充電するビットラインのプロセス中に、Ｖｂｌは隣接ビットラインが充電するにつれて結合されうる。電圧が設定電圧を超えて結合されると、ＢＬＣトランジスタはＶｇｓがＶｔｈよりも低下したときに遮断されうる。したがって、ビットラインはフローティング状態になる。フローティングビットラインは、制御されたレベルで駆動されないが、例えば、フローティング前の過去に駆動されたレベル及び容量結合などの効果に基づくレベルを取る。
【０１４５】
特に、Ｖｄｄ−ΔＶ及びこの後のＶｄｄが、ＢＬＣトランジスタ１４２８のゲートをバイアスすることによって、非選択ビットラインに対して供給されると（例えば、それぞれＶｄｄ−ΔＶ＋Ｖｔｈ及びＶｄｄ＋Ｖｔｈで）、これらのビットラインがＶｓｌｏｗの初期レベルまで充電されるとき、非選択ビットラインは低速プログラムモード記憶素子のビットラインからのビットライン結合を介して結合されうる。これによって、ＢＬＣトランジスタ１４２８は遮断されうる。ＢＬＣトランジスタ１４２８は、そのゲート電圧がその閾値電圧（Ｖｔｈ）とそのソース電圧（Ｖｂｌ）の和を超えると導通状態になる。非選択ビットラインの電圧が上昇されると、ＢＬＣゲート電圧はＢＬＣトランジスタを導通状態に保つほど高くはなくなる。
【０１４６】
このフローティング問題を解決するための一つの方法として、ＢＬＣトランジスタのドレイン電圧を、切替可能な電源Ｖｂｃｐを提供する電源１４０１又は１４０３により、別々に制御することができる。最初に、非選択ビットラインに対して、ＢＬＣトランジスタのドレイン電圧はＶｄｄ−ΔＶであり、ＢＬＣがパスゲートとして働くようにＢＬＣゲート電圧が十分に高いときに、この電圧はチャネルに移される。プレチャージピーク電流、Ｉｃｃも電圧源ランプ速度によって制御されうる。ＢＬＣトランジスタのドレイン電圧は、その後、Ｖｄｄまで上昇される。ＣＬＫ１４５３のステップアップを活用するＳＥＮノード１４５４は、トランジスタ１４１０でＶｄｄを伝達するのに十分な高さである。非選択ビットラインのΔＶのステップアップは、これらのビットラインのプログラムを減速するために、選択ビットラインへの結合を意図的に誘発するために採用されうることを思い起こされたい。
【０１４７】
低速プログラムモードにおける選択ビットラインに関して、ＳＥＴトランジスタ１４６６は、ＩＮＶ１４２４、ＬＡＴ１４２０、ＢＬＣ１４２８及びＢＬＳ１４３８トランジスタを介して、ビットライン１４４０にＶｓｌｏｗを供給することができる。ＣＯＭ２経路１４１８は、ＳＥＮノード１４５４からのデータの入出力のために、ＳＥＴトランジスタ１４６６を介してバス端子１４６８に接続される。ＳＥＮノード１４５４は、コンデンサ１４５２を介してＣＬＫ端子１４５３に接続される。また、ＳＥＮノード１４５４は、トランジスタ１４５６を介してＩＮＶ経路１４６２に結合され、ＩＮＶ経路１４６２は、リセット（ＲＳＴ＿ＮＣＯ）トランジスタ１４６４を介してバス端子１４６８に結合される。トランジスタ１４５６は、検知中にストローブ信号を受け取るＳＴＢｎトランジスタ１４５８を介して電源ノード１４６０に結合される。また、ＩＮＶ経路１４６２は、ＳＴＢｎトランジスタ１４８４及びプルダウントランジスタ１４８６を介して接地される。ＳＴＢｎ１４５８が０ＶになるとＳＥＮノード１４５４はＩＮＶノード１４６２に反転転送されうる。ＢＵＳ１４６８が０Ｖにあるとき、ＩＮＶノード１４６２はトランジスタＲＳＴ＿ＮＣＯ１４６４を通じて０Ｖに初期化されうる。一方、ＩＮＶノードをＶｄｄなどの高い電位に初期化する必要がある場合、ＢＵＳ１４６８が０Ｖにあるとき、ＳＥＮノード１４５４は経路ＸＸＬ１４１６及びＳＥＴ１４６６を介して０に初期化されることになる。
【０１４８】
ラッチ１４７１では、ＬＡＴ経路１４８０が、ＩＮＶ経路１４６２の反転となる。ＬＡＴ１４８０は、トランジスタ１４７８を介して電源ノード１４７６に結合され、かつトランジスタ１４７４及びＲＳＴ＿ＰＣＯトランジスタ１４７２を介して電源ノード１４７０に結合される。また、ＬＡＴ１４８０は、プルダウントランジスタ１４８２を介してグランドに結合される。ゲートＳＴＢｎ付きのトランジスタ１４８４は、プルアップ経路１４５６及び１４６８と、プルダウン経路１４８４及び１４８６との間の「衝突」を排除する。トランジスタＲＳＴ＿ＰＣＯ１４７２は、ＲＳＴ＿ＮＣＯ経路１４６４を通じてＩＮＶが０に更新される必要があるときに、プルアップ経路を遮断するためのものである。
【０１４９】
図１５は、図１４の検知回路に関連する時間軸を示す。時刻を示す点ｔ０〜１１が示されている。時間軸は正確な縮尺ではない。時間軸は、複数回の反復を含むプログラム動作の一回の反復にわたっており、一又は複数回の検証動作（図示せず）が各反復の時間軸に含まれる期間に続きうる。
【０１５０】
波形は、図１４の同様の名称の構成要素に対応する。図示の期間で、ＱＳＷ、ＨＬＬ、及びＸＬＬ＝０Ｖである。波形１５０２は、ＢＬＸ／ＢＬＣトランジスタゲートバイアスの電圧である。波形１５０４は、ＳＥＴトランジスタゲートバイアスの電圧である。波形１５０６は、ＢＵＳの電圧である。波形１５０８は、ＲＳＴ＿ＮＣＯの電圧である。波形１５０９は、検知ノードＳＥＮの電圧である。波形１５１０は、ＳＴＢｎの電圧である。波形１５１２は、ＩＮＶの電圧である。波形１５１４は、ＣＬＫの電圧である。波形１５１６は、Ｖｂｃｐである。波形１５１８は、非選択ビットラインのＶｂｌである。波形１５２０は、補償付きの低速プログラムモードにおける選択ビットラインのＶｂｌである。波形１５２２は、ビットラインがフローティング状態にあるときの補償付きの高速プログラムモードにおける選択ビットラインのＶｂｌである。破線は、フローティング電圧を表す。波形１５２４は、ビットラインが接地されているときの補償なしの高速プログラムモードにおける選択ビットラインのＶｂｌである。時間軸は、３本の代表的なビットライン、すなわち、禁止又は非選択記憶素子（第１の記憶素子）に接続された第１のビットラインと、低速プログラムモード記憶素子（第２の記憶素子）に接続された第２のビットラインと、高速プログラムモード記憶素子（第３の記憶素子）に接続された第３のビットラインとを考慮することによって理解されうる。
【０１５１】
波形１５２６と波形１５２８は、ｔ８におけるΔＶの昇圧後にＶｐａｓｓが上昇される場合について、選択ワードライン電圧（Ｖｗｌ）と非選択ワードライン電圧をそれぞれ示す。Δｔは、Ｖｐａｓｓの立ち上り時間である。波形１５２７と波形１５２９は、ｔ８におけるΔＶの昇圧前にＶｐａｓｓが上昇される場合について、選択ワードライン電圧と非選択ワードライン電圧をそれぞれ示す。波形１５３０又は１５３１は、ｔ８におけるΔＶの昇圧の後又は前においてＶｐａｓｓが上昇される場合について、ドレイン選択ゲート電圧（Ｖｇｓｄ）をそれぞれ示す。
【０１５２】
ｔ１において、ＲＳＴ＿ＮＣＯがハイになると、バスノード１４６８は接地電圧においてＩＮＶ経路１４６２に接続され、ＩＮＶ１４６２は有効に０Ｖにリセットされる。ｔ２において、ＳＥＴはｎｏ．０〜ｎｏ．７の検知回路において連続的にハイになる。この実施態様では、検知ブロック５００（図６）の共通部分５９０などの一の回路が、電圧をバス上の８つの検知回路（各々が検知モジュール５８０に類似している）に連続的に供給し、各検知回路はさらにＳＥＴ電圧を受け取る。
【０１５３】
ＳＥＮノード１４５４は、ＢＵＳが一部の検知回路に対して０にあるときに放電することができるが、ＢＵＳが他の検知回路に対してハイに保たれるときには放電されない。１５１０において、ＳＴＢｎはローになり、ＳＥＮノード値の反転はＩＮＶノード１４６２に保存される。
【０１５４】
ｔ３において、波形１５１６は、Ｖｂｃｐが０Ｖから初期レベルであるＶｄｄ−ΔＶに上昇されることを示す。同時点で、波形１５０２は、ＢＬＸ／ＢＬＣ制御ゲート電圧が０ＶからＶｓｇのレベル、例えば、４〜５Ｖに上昇されることを示す。この電圧は、ＢＬＸ／ＢＬＣトランジスタをパスゲートとして機能させ、Ｖｄｄ−ΔＶを非選択ビットラインに伝達するのに十分な高さである（波形１５１８）。Ｖｂｌを設定するためにＢＬＣクランピングを使用する場合に比べると、非選択ビットラインをフローティング状態にするおそれはない。Ｖｂｌｃが低い場合、ビットラインは前述のようにクランプされてフローティング状態になる。具体的に、ｔ３においてＣＬＫが上昇すると、非選択ビットラインがＶｄｄ−ΔＶで駆動されるように、ＳＥＮノード１４５４がハイレベルにブーストされてＳＥＮトランジスタ１４１０をターンオンする。ＳＥＮトランジスタ１４１０及びＳＧＤ１４４２は、パスゲートとして働く。トランジスタ１４３０及び１４３２を含む接地経路を通じたｔ３における選択ビットラインではＶｂｌ＝０Ｖである（波形１５２０、１５２２、及び１５２４）。
【０１５５】
ｔ４において、ＳＧＤは、ドレイン選択ゲートを、Ｖｂｌが十分に低いときに導通状態にしてビットラインをチャネルに接続されるようにし、Ｖｂｌが十分に高いときに非導通にして（チャネルはビットラインから遮断されるので）チャネルをフローティング状態にするレベルまで低下される。
【０１５６】
ｔ５において、ＲＳＴ＿ＮＣＯ及びＩＮＶはデータ転送を行う。低速プログラムモードビットラインでは、ｔ６においてＳＥＴトランジスタがビットラインに接続されるときにＶｓｌｏｗがビットラインに供給されるように、ＳＥＴトランジスタはＶｓｌｏｗ＋Ｖｔｈまで上昇される。
【０１５７】
ｔ６において、ＢＵＳはＶｄｄまで上昇し（波形１５０６）、低速プログラムモードビットラインに対するＶｂｌは、Ｖｓｌｏｗまで上昇する（波形１５２０）。
【０１５８】
ｔ７において、一つの態様では、Ｖｗｌ（波形１５２９）が期間Δｔに上昇を開始し、ｔ８においてＶｐａｓｓに達する。図１３で前述したように、Ｖｐａｓｓ立ち上り時間ｔ７は、ビットラインフローティング時間ｔ８に対して調整することが可能である（ステップ１３０９及び１３１０）。
【０１５９】
ｔ８において、Ｖｄｄの電圧源（波形１５１６）の始動により非選択ビットラインが駆動され、ΔＶの昇圧を生じさせる。制御信号ＳＷは、Ｖｄｄ−ΔＶ電源１４０３の代わりに、Ｖｄｄ電源１４０１が選択されるようにスイッチ１４０２を制御することができる。その結果、低速プログラムモード記憶素子のビットラインは、より高い電圧に結合される（波形１５２０）。前述のように、これは低速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めるので有益である。低速プログラムモード記憶素子のビットラインは、これらの検知回路によって普通なら直接的に与えられない補償が提供される。
【０１６０】
高速プログラムモード記憶素子のビットラインがフロートされる場合、例えば、ＳＲＣＧＮＤをフロートさせる場合、これらのビットライン及びチャネルもより高い電圧に結合される（波形１５２２）。また、このことは、高速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めるので有益である。高速プログラムモード記憶素子のビットラインが接地される場合（波形１５２４）、これらのビットラインは０Ｖに保たれる。高速プログラムモード記憶素子に対するチャネル−フローティングゲート結合を弱めることは必須でないことが多いので、これは容認することができる。ΔＶは、特定タイプのメモリデバイスに対して所望レベルの結合を提供するために最適設定されうる設計パラメータである。
【０１６１】
所望のチャネル電位が実現された状態で、プログラムパルスが選択ワードラインに印加され（波形１５２７）、チャネル−フローティングゲート結合が補償されながら、意図したプログラムが行われる。
【０１６２】
Ｖｐａｓｓは、初期に印加されない場合、ｔ９において印加されてもよく（波形１５２８）、Ｖｐｇｍはｔ１０において印加されてもよい（波形１５２６）。
【０１６３】
Ｖｓｇｄは、ｔ９又はｔ１０において示すように、昇圧されることなく一定に保たれうる。しかしながら、Ｖｓｇｄは、ビットラインからチャネルに伝達される電圧を決定するレベルにある（Ｖｓｇｄ−Ｖｔｈ＞ＶｂｌであるときＶｃｈａｎｎｅｌ＝Ｖｂｌ）ので、Ｖｐａｓｓがｔ９において上昇した後に（Ｖｗｌ波形１５２９及び１５２７が使用されるとき、波形１５３１）、あるいはｔ１０において上昇した後に（Ｖｗｌ波形１５２８及び１５２６が使用されるとき、波形１５３０）、Ｖｓｇｄを昇圧させることに利点がある。Ｖｓｇｄが高いほど、大きな電圧がビットラインからチャネルに伝達され、それにより、より大幅なスローダウンが実現される。しかし、Ｖｓｇｄが高すぎると、Ｖｓｇｄがブーストされたチャネルに対して漏洩を誘発する可能性があり、その場合、Ｖｓｇｄの機能はチャネルとビットラインの接続を遮断することである。チャネル静電容量は非常に小さく、したがって、チャネルからビットラインへの小さな電荷漏洩が有害となり、プログラム外乱をもたらす。禁止ビットラインのステップアップに関して、初期のＶｓｇｄはＶｄｄ−ΔＶにおいてチャネルからビットラインへの漏洩を阻止するほど低い値であるべきである。ＳＧＤへの隣接ワードライン結合の影響は、ブーストされたチャネルに対するチャネル漏洩を防止するためにＶｓｇｄを設定する際に考慮されなければならない。チャネルがブーストされた後、ビットラインはＶｄｄまで上昇される。また、ＶｓｇｄはＶｓｇｄ（ｉｎｉｔｉａｌ）＋ΔＶまで上昇されうる。これは、ビットライン電圧がＶｄｄまで上昇されるので、ブーストされたチャネル漏洩を心配することなく、より高い電圧をビットラインからチャネルまで伝達するといった利益をもたらす。
【０１６４】
一般に、Ｖｓｇｄは、Ｖｐａｓｓが印加されるときに、規定レベルにある必要がある。Ｖｐａｓｓ及びＶｐｇｍのタイミングは、チャネルブースティングメカニズムによって決定される。Ｖｐａｓｓがチャネルブースティングを支配する場合、Ｖｐａｓｓが上昇する時点はＶｓｇｄタイミングとの関連で重要である。同様に、Ｖｐｇｍがチャネルブースティングを支配する場合、Ｖｐｇｍが上昇する時点はＶｓｇｄタイミングとの関連で重要である。Ｖｓｇｄは、ビットラインが選択記憶素子のチャネルにつながるように十分に高い値であるべきであるが、ビットラインが非選択記憶素子のチャネルから遮断されるように十分に低い値であるべきである。しかしながら、Ｖｓｇｄは、ＳＧＤトランジスタを介した禁止ビットラインからの漏洩電圧を回避し、チャネルが確実に遮断されるようにするために、ｔ５からｔ９又はｔ１０までのこの規定レベルよりも低くすることができる。さらに、チャネルブースティングを安定化しうるように、Ｖｐａｓｓが上昇される時点とＶｓｇｄが上昇される時点との間に遅延を設けることができる。Ｖｓｇｄに対するこの制御手法は、図１６ｂ、１７ｂ〜ｄ、及び１８ｂの実施形態を含む、本明細書に記載する他の実施形態にも同様に採用されうる。
【０１６５】
ＳＧＤトランジスタのＶｔｈは、隣接チャネルからの結合によって影響されうる。非選択ブーストチャネルからのこのような結合がある場合、トランジスタを導通状態にするためのＶｔｈが低くなりうる。それゆえ、結合の増加に起因してさらなる電圧が必要になると、ＳＧＤトランジスタはより高い電圧をビットラインからチャネルに自動的に伝達することになる。Ｖｓｇｄはすべての選択ドレイントランジスタのゲートに印加されるので、ブーストチャネルが別のブーストチャネルの隣にある場合、ブーストチャネルからビットラインに漏洩することもありうる。妥協解決策は、ビットラインがローのときＶｓｇｄをローに保ち、ビットライン電圧がハイのときＶｓｇｄを上昇させることである。
【０１６６】
図１６ａは別の検知回路１６９９を示す。この実施態様例は、２つのラッチを含み、３つの電圧、すなわち、（ａ）０Ｖ、（ｂ）Ｖｓｌｏｗ、Ｖｓｌｏｗ＋ｃｏｍｐ又はＶｃｏｍｐ、及び（ｃ）Ｖｄｄ−ΔＶをビットラインに供給することができる。どの電圧を設定するためにどの構成要素を使用するかを示す凡例１６９１を参照されたい。一のラッチ１６１９は、インバータ１６２０及び１６２２、ＬＡＴ経路１６２１、及びＩＮＴ経路１６２３を含み、別のラッチ１６３５は、インバータ１６３４及び１６３２、ＦＬＧ経路１６２９、及びＩＮＶ経路１６３５を含む。ＬＡＴ経路１６２１はラッチ１６１９の非反転側にあり、ＦＬＧ経路１６２９はラッチ１６３５の非反転側にある。
【０１６７】
ＮＡＮＤストリング１６５０は、検知回路に接続され、例えば、それぞれ、ワードラインＷＬ６３、ＷＬ６２、・・・、ＷＬ０、ならびにＳＧＤトランジスタ１６４２を介してビットライン（ＢＬ）１６４０につながる記憶素子１６４４、１６４６、及び１６４８を含む。また、ＮＡＮＤストリング１６５０は、複数のＮＡＮＤストリングに対して共通のソースライン１６５１に接続されたソース選択ゲート１６４９を含む。ビットライン１６４０は、ＢＬＳトランジスタ１６１６とソースＳ及びドレインＤを有するＢＬＣトランジスタ１６１４とにつながる。ＢＬＣトランジスタ１６１４は、ＢＬＹトランジスタ１６１２に接続され、ＢＬＹトランジスタ１６１２はさらにバス１６２４に接続される。また、ＢＬＹトランジスタ１６１２は、ＣＯＭ経路１６４５を介してＦＬＡトランジスタ１６０４に接続され、ＣＯＭ経路１６４５はさらにＦＬＧトランジスタ１６０２に接続される。Ｖｄｄの電源ノード１６００は、ＦＬＧ及びＦＬＡトランジスタに接続される。
【０１６８】
ＨＬＬトランジスタ１６０６は、検知（ＳＥＮ）ノード１６１１に接続され、検知動作中に初期電圧を供給する。また、ＳＥＮノードは、コンデンサ１６０９を介してクロック（ＣＬＫ）ノード１６０８と、トランジスタ１６１３のゲートとに接続される。トランジスタ１６１３は、ＳＴＲ（ストローブ）トランジスタ１６１５を介してバス１６２４と、ＣＬＫノード１６０８とに接続される。バス１６２４は、パスゲート１６４３の後、ＬＣＯトランジスタ１６１８を介してラッチ１６１９につながる。また、バス１６２４は、ＩＣＯトランジスタ１６２６及びＦＣＯトランジスタ１６２８を介してラッチ１６３５につながる。分離（ＩＳＯ）トランジスタ１６１７は、ラッチを伴うデータ転送が行われるとき、ラッチ１６１９及び１６３５を含む回路の右側を回路１６９９の左側及びビットラインから分離することができる。具体的に、ＩＳＯトランジスタは、ＢＵＳ１６２４をＣＯＭノード１６４５から分離する。これによって、並列動作を効率的にするために、ＢＵＳ１６２４からＬＡＴ１６２１へのデータ転送を、ＢＬＹ１６１２及びＢＬＣ１６１４を介してＦＬＧ１６２９から供給されるビットラインバイアスから分離する。詳細については、図１７ｄにおける波形１７９１を参照されたい。
【０１６９】
検知中、ビットラインバイアスがＢＬＹ１６１２及びＢＬＣ１６１４を介してＦＬＧ１６２９からビットラインＢＬに供給されうる。例えば、Ｖｂｌ＝０．４Ｖなどの非ゼロバイアスがＢＬＣを制御することによって供給されうる。さらに、ビットライン電圧（例えば、０．４Ｖ）へのＢＬＹ経路は、ＢＵＳ（０又はＶｄｄ）からの電圧と異なる場合がある。検知は、ＨＬＬ１６０６経路でなくＳＴＲ１６１５経路を通じて行われる。ＨＬＬ経路は、ＬＡＴラッチを通じてＳＥＮ電圧をデジタル化してＳＥＮに戻すために使用される。例えば、ＬＡＴラッチは、そのトリップポイントを２．５Ｖ電圧源による１．２Ｖに有しうる。ＳＥＮノードの電圧は０〜２．５Ｖの任意の値であってよい。ＳＥＮ電圧が１．２Ｖを超えるのであれば、これは２．５Ｖとしてラッチされることになる。同様に、１．２Ｖよりも低いＳＥＮ電圧は、ＬＡＴラッチにおいて０Ｖにラッチされることになる。連続電圧範囲を２つの離散電圧に変換するこのプロセスは、デジタル化と呼ばれる。デジタル化された電圧は、ＬＡＴラッチとのこのやり取りの後ＳＥＮノードに記憶されることになる。ＳＴＲ経路は、電流検知を用いるさらに精確な検知に対応する。
【０１７０】
経路１６４１は、ＢＵＳからＦＬＧにロックアウトデータを転送するために使用される。禁止の場合はＦＬＧ＝０であり、プログラムの場合はＩＮＶ＝０である。経路１６３７は、ＦＬＧｐＭＯＳ経路を通じて禁止ビットラインに対するＶｄｄにビットラインを充電するために使用される（１６０２）。ＩＣＯ１６２６は、ハイに保たれて、高速プログラムモードにおいて選択記憶素子に確実なグランドを提供する。ＩＣＯ＝０Ｖの場合、経路１６３９は、ｌｏｃｋｏｕｔｌデータをＢＵＳ１６２４からＬＡＴ経路１６２１に転送するために使用される。
【０１７１】
特に、ラッチ１６１９は、一のゲーティングデバイスを有しており、このデバイスはＬＣＯトランジスタ１６１８である。バス１６２４は、データをＬＣＯ１６１８を通じてラッチ１６１９のＬＡＴ経路１６２１に転送しうる。あるいは、バスは、データをＩＣＯトランジスタ１６２６を通じてラッチ１６３５の反転側のＩＮＶノード１６３１に、あるいはＦＣＯトランジスタ１６２８を介してラッチ１６３５の正側のＦＬＧノード１６２９に転送しうる。
【０１７２】
低速プログラムモード記憶素子では、ＬＣＯ１６１８は、Ｖｓｌｏｗのバイアスレベルを供給するためのＶｓｌｏｗ＋Ｖｔｈのゲート電圧を有しており、ビットラインを充電することができる。一般に、ＬＣＯは所望の供給電圧を得るためにクランプされうる。別の例として、ＬＣＯは、低速プログラムモード記憶素子のビットラインに対してチャネル−フローティングゲート結合を補償するＶｓｌｏｗ＋ｃｏｍｐのバイアスレベルを供給するために、Ｖｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈのゲート電圧を有していてもよい。Ｖｓｌｏｗは、例えば、０．６〜０．８Ｖであってもよく、Ｖｃｏｍｐは、同程度の例えば、０．２〜０．６Ｖであってもよい。Ｖｓｌｏｗ＋ｃｏｍｐは、それゆえ、０．８〜１．４Ｖであってもよい。Ｖｆａｓｔ＋ｃｏｍｐは、高速プログラムモードのＶｃｏｍｐに等しくてもよい。
【０１７３】
なお、検知動作中、ＳＴＲ及びＦＣＯを介してＳＥＮからＦＬＧ１６２９に転送されたデータは、その論理値が反転される。例えば、ＳＥＮ＝１（ハイ）であれば、ＦＬＧ＝０（ロー）である。これは反転を伴う検知である。一方、ＨＬＬを介してＳＥＮからＬＡＴ１６２１に転送されたデータは、その論理値が反転されない。例えば、ＳＥＮ＝１（ハイ）であれば、ＬＡＴ＝１（ハイ）である。これは反転のない検知である。
【０１７４】
図１６ｂは、図１６ａの検知回路に関連するプログラムに対する時間軸を示す。この制御方法例では、ＢＬＣトランジスタ１６１４は検知回路からビットラインにＶｄｄのような高い電圧を伝達するために使用され、検知回路は結合補償が提供されないような方法で動作される。時間軸は、禁止ビットライン（Ｖｂｌ（ｉｎｈｉｂｉｔ））、補償なしの低速プログラムビットライン（Ｖｂｌ（ｓｌｏｗ））、及び補償なしの高速プログラムビットライン（Ｖｂｌ（ｆａｓｔ））に対する電圧を示す。波形１６６０は、ＢＬＣトランジスタの電圧を示す。波形１６６２は、ｔ０〜ｔ２におけるＢＵＳ１６２４からＦＬＧ経路１６２９へのデータ転送と、ｔ３〜ｔ４におけるＢＵＳ１６２４からＬＡＴ経路１６２１へのデータ転送とを示す。波形１６６４は、禁止ビットラインのビットライン電圧、Ｖｂｌ（ｉｎｈｉｂｉｔ）を示す。Ｖｂｌ（ｉｎｈｉｂｉｔ）はＦＬＧ＝０のときＶｄｄに設定される。波形１６６６はＶｂｌ（ｆａｓｔ）を示し、Ｖｂｌ（ｆａｓｔ）はＬＡＴ＝０（ロー）を用いて０Ｖに設定される。波形１６６７はＶｂｌ（ｓｌｏｗ）を示し、Ｖｂｌ（ｓｌｏｗ）はＬＡＴ＝１（ハイ）をＦＬＧ＝１（ハイ）と組み合わせて用いてハイ、すなわち、Ｖｓｌｏｗに設定される。波形１６６８は、選択ワードラインに印加される電圧を示し、波形１６７０は、非選択ワードラインに印加される電圧を示す。波形１６７２は、ＩＣＯトランジスタに印加される電圧を示し、ＩＣＯトランジスタはラッチ１６３５及びＦＬＧノードを更新する。波形１６７４は、低速プログラムモードビットラインのＬＡＴラッチを更新するＬＣＯトランジスタに印加される電圧を示す。ｔ３〜ｔ４においてＬＣＯ電圧がフル論理レベルＶｄｄまで上昇すると、ＬＡＴラッチが更新される。ｔ４〜ｔ７におけるＬＣＯ電圧は、ビットライン電圧源をＶｓｌｏｗなどの規定レベルになるようにクランプする。ここで、ＬＣＯ電圧は、０．２〜１．４Ｖなどの電圧をビットラインに伝達するアナログ電圧レベルである。
【０１７５】
ｔ０〜ｔ２において、ＦＣＯ（波形１６７６）はハイになり、ＢＵＳからＦＬＧへの転送を行うことができる。ＩＣＯはｔ１〜ｔ３においてハイになる。ｔ２において、ＢＬＣはＶｄｄ＋Ｖｔｈまで上昇し、したがって、Ｖｂｌ（ｉｎｈｉｂｉｔ）＝Ｖｄｄとなる。Ｖｂｌ（ｆａｓｔ）及びＶｂｌ（ｓｌｏｗ）は、ｔ２〜ｔ３において０Ｖにある。ｔ３〜ｔ４において、ＢＵＳからＬＡＴへのデータ転送が行われるようにＬＣＯはハイになる。Ｖｂｌ（ｆａｓｔ）及びＶｂｌ（ｓｌｏｗ）は、ＢＵＳからＬＡＴへの転送中、ｔ３〜ｔ４において、フローティング状態になる。ｔ４において、Ｖｂｌ（ｓｌｏｗ）はＶｓｌｏｗまで上昇される。ｔ５において、Ｖｐａｓｓが印加され（波形１６７０）、ｔ６において、Ｖｐｇｍ（波形１６６８）が印加される。
【０１７６】
図１７ａは、結合補償が後続のプログラムにおいて必要であるかどうかを判断するために選択ビットラインを検知する方法を示す。前述のように、選択記憶素子が受けるチャネル−フローティングゲート結合は、隣接する記憶素子のデータパターンに依存する。同じワードライン上の両方の隣接記憶素子が非選択である場合は、一方の隣接記憶素子のみが同じワードライン上にある場合、あるいは最も近い非選択記憶素子が選択記憶素子に隣接しない場合よりもよりも結合が大きくなる。各選択ビットラインが受ける実際の結合を検知することによって、補償を提供するのか否か及び／又は提供する補償のレベルに関する判断を、情報に基づいて行うことができる。参照により本明細書に組み込まれる米国特許第７，２１５，５７４号明細書では、一方又は両方のいずれの隣接ビットラインがロックアウトされるかに応じてＶｂｌオフセットを提供している。所与のビットラインに対するセンスアンプが、左側及び右側の隣接ビットラインがロックアウトされているかどうかを判断するためにこれらのビットラインのセンスアンプから制御信号を受け取る。しかしながら、このアプローチでは、センスアンプが互いに信号をやり取りしうるように新たな回路及びレイアウト領域が必要である。ここに記載する解決策は、これらの欠点を克服するものである。
【０１７７】
一つのアプローチでは、非選択ビットラインの電圧が昇圧され、任意の隣接する選択ビットラインへの結合がもたらされるとともに、その結合の大きさを決定するために選択ビットラインが検知される。結合の大きさが閾値を超える場合、選択ビットラインはプログラム中にＶｂｌを所定の大きさだけ上昇させることによって補償を受けるべきであることを示すデータがラッチ又はその他の場所に記憶される。補償は、低速及び／又は高速プログラムモードビットラインに適用することができる。
【０１７８】
例示するプロセスでは、ステップ１７００において、プログラム動作が開始される。ステップ１７０２では、プログラム動作の反復が開始される。ステップ１７０４では、選択ビットラインがフロートされつつ、非選択ビットラインの電圧が昇圧される。制御回路は、ビットラインのラッチを読み出し、選択されていないものを特定して、その検知回路にＶｂｌを上昇させる旨の指示をすることができる。同様に、制御回路は、ビットラインのラッチを読み出し、選択されているものを特定して、検知回路にビットラインをフロートさせる旨の指示をすることができる。ステップ１７０６では、選択ビットラインの電圧が検知され、非選択ビットラインからの結合の程度が判断される。電圧又は電流の検知といった、様々な検知手法を採用することができる。ステップ１７０８では、各選択ビットラインについて補償の要否を特定する。この情報は、検知回路のラッチ又は別の場所に記憶することができる。補償を必要とする結合の閾値レベル（Ｔ）は、選択ビットラインに隣接する一又は複数のビットラインが選択されないときに実現される結合の大きさに基づくことができる。
【０１７９】
ステップ１７１０では、補償を必要とする選択ビットラインに対して、その電圧をベースラインレベルよりも高く上昇させることによって補償を行う。一つの手法では、（１）両方の隣接ビットラインが禁止される、（２）一方の隣接ビットラインのみが禁止される、及び（３）隣接ビットラインが禁止されない、の３つの状況が考えられる。各状況に対してビットラインバイアスが与えられる。例えば、０．５Ｖ、０．２５Ｖ、及び０Ｖがそれぞれ第１、第２、及び第３の場合に対して採用されてもよい。Ｖｆａｓｔが名目上０Ｖである高速プログラムモードに関して、我々は、第１、第２、及び第３の場合に対してそれぞれ、Ｖｆａｓｔ＋ｃｏｍｐ＝Ｖｃｏｍｐ＝０．５Ｖ、０．２５Ｖ又は０Ｖとしている。Ｖｓｌｏｗが名目上０．６Ｖである低速プログラムモードに関して、我々は、第１、第２、及び第３の場合に対してそれぞれ、Ｖｓｌｏｗ＋ｃｏｍｐ＝１．１Ｖ、０．８５Ｖ又は０．６Ｖとしている。
【０１８０】
ステップ１７１２では、補償が実施されながら選択記憶素子にプログラムパルスが印加される。ステップ１７１４では、選択ビットラインに対して検証動作が実施される。ステップ１７１６では、目標データ状態に達したビットラインがロックアウトされる。
【０１８１】
判断ステップ１７１８において、次のプログラム反復がある場合、処理はステップ１７０２において継続する。次のプログラム反復がない場合、プログラム動作はステップ１７２０において終了する。
【０１８２】
例として、図１７ａのプロセスを、図１６ａの検知回路と図１７ｂ及び１７ｃの時間軸とを参照してさらに説明する。
【０１８３】
図１７ｂは、図１６ａの検知回路に関連する検知及びプログラムに関する時間軸を示す。なお、本明細書の様々な図の図面は必ずしも一定の縮尺でなく、すなわち、必ずしも互いに比例していない。これは、補償が必要かどうかを検知し、ＬＣＯトランジスタ１６１８（ＢＬＣトランジスタは単なるパスゲートである）などを介してこのような補償を実施するために検知回路１６９９を制御する例である。時間軸は、禁止ビットライン及び選択ビットラインの電圧を示す。波形は、図１６ａの検知回路における同様の名称の構成要素に対して示される。この場合、Ｖｂｌ（波形１７３４、１７３６、及び１７３７）はＶｐｇｍが印加されるときフローティング状態にならない。しかしながら、低速及び高速のプログラムモードはいずれも示していない。
【０１８４】
波形１７３０は、ＢＬＣトランジスタのゲート電圧を表す。波形１７３２は、ＢＵＳ１６２４からＦＬＧ経路１６２９へと、ＳＥＮからＬＡＴ経路１６２１へのデータ転送を表す。波形１７３４は、禁止ビットラインに対するＶｂｌ（Ｖｂｌ（ｉｎｈｉｂｉｔ））を表す。波形１７３６は、選択ビットラインに対するＶｂｌ（Ｖｂｌ（ｎｏ  ｃｏｍｐ））を表し、ここでは検知によって補償（ｃｏｍｐ）が必要ないと決定されている。この場合、ＬＡＴ＝０である。波形１７３７は、選択ビットラインに対するＶｂｌ（Ｖｂｌ（ｃｏｍｐ））を表し、ここでは、検知によって補償が必要と決定されている。この場合、ＬＡＴ＝１である。波形１７３８は、選択ワードラインに印加される電圧を表す。波形１７３９は、非選択ワードラインに印加される電圧を表す。波形１７４２は、ｔ５〜ｔ６における検知のためにＳＥＮノードと結合ビットラインとの間の電荷共有を判断するためのＢＬＺトランジスタのゲートに印加される電圧を表す。波形１７４４は、ＣＬＫノード１６０８に印加される電圧を表し、ここで、検知するＳＥＮノードを強化するために電圧がステップアップされる。波形１７４６は、ｔ７〜ｔ８においてＳＥＮからＬＡＴにデータ転送をさせるためにＬＣＯトランジスタのゲートに印加される電圧を表す。波形１７４８は、ｔ０〜ｔ３においてＢＵＳからＦＬＧにデータ転送をさせるためにＦＣＯトランジスタのゲートに印加される電圧を表す。
【０１８５】
ｔ０〜ｔ３においてＢＵＳからＦＬＧへのデータ転送後、ＢＬＣはｔ３においてＶｄｄ−ΔＶ＋Ｖｔｈまで上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄ−ΔＶまで上昇する。ｔ４において、ＢＬＣは、ΔＶだけＶｄｄ＋Ｖｔｈまで上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄまで上昇する。前述のように、禁止ビットラインの電圧ステップアップはフローティング状態にある選択ビットラインに結合し、選択ビットラインの電圧もΔＶ及び結合比に基づいて増加させる。例えば、波形１７３６は、Ｖｂｌが閾値Ｔ未満であるレベルに結合される場合を示し、一方、波形１７３７はＶｂｌが閾値Ｔを超えるレベルに結合される場合を示す。波形１７３６に関して、Ｔ’は使用されうる第２の閾値の例である。選択ビットラインによって様々な閾値レベルの結合を受けているかどうかを検知することが可能であり、その場合、対応する様々なレベルの補償、例えば、多くの結合があるときは多くの補償が提供されうる。例えば、比較的低い閾値（Ｔ）の結合は唯一の隣接する非選択ビットラインに対応している可能性があり、その場合、第１のビットラインバイアスがプログラム中に印加され、比較的高い閾値（Ｔ’）の結合は２つの隣接する非選択ビットラインに対応している可能性があり、その場合、比較的高い第２のビットラインバイアスがプログラム中に印加される。
【０１８６】
様々な補償電圧が検知回路から供給され、ＬＡＴラッチ１６１９に類似した多くのラッチ回路とＬＣＯトランジスタ１６１８とが要求される場合がある。簡単に説明するために、図１６ａに示す回路では、複数の補償電圧を供給することができない。対照的に、図１４及び１５に示す回路及び時間軸は、０から完全な補償を実現するために必要な最大電圧までの電圧範囲をカバーする連続補償電圧を供給することができる。後述する図１７ｃに示す方法は、プログラム中に結合が制御されなくなることのない、制御性が高いデジタル化された補償を示す。
【０１８７】
破線はフローティング電圧を表す。ＢＬＺトランジスタは、ｔ５〜ｔ６において検知のために開放状態にある。Ｔを超えて結合するビットラインはＬＡＴ＝Ｈ（ハイ）でラッチされ、Ｔを超えて結合しないビットラインはＬＡＴ＝０（ロー）でラッチされる。図１６ａにおけるＬＡＴ経路１６２の更新は、データ極性の反転を防止するためにＳＴＲ（ストローブ）経路１６１５とは異なるＨＬＬ１６０６、ＩＳＯ１６１７及びＬＣＯ１６１８を介して実現される。
【０１８８】
検知では、例えば、コンデンサ１６０９に接続されたＳＥＮノード１６１１とビットラインの静電容量との間で電荷共有が行われるかどうかを判断する手法を採用しうる。コンデンサの電圧は、ＢＬＺトランジスタがＯＮであるかＯＦＦであるかに基づいて、それぞれ、変化したり変化しなかったりする。ビットラインレベルがＢＬＺトランジスタ（Ｔ＋Ｖｔｈ）によって設定される閾値（Ｔ）よりも低い場合、小さい静電容量を有するＳＥＮノードはビットライン電圧と同じレベルにあることなる。ビットライン電圧がＴ閾値よりも高い場合、ＳＥＮはそのプレチャージレベルであるＶｄｄに保たれることになる。一つの可能なアプローチでは、ビットライン−ビットライン結合を有するＶｂｌがＴより小さいかＴに等しいときにＢＬＺトランジスタが導通状態であり、ビットライン−ビットライン結合を有するＶｂｌがＴよりも大きいときにＢＬＺトランジスタが非導通であるように、ＢＬＺトランジスタ１６１０又は別のトランジスタはＴ＋Ｖｔｈのゲート電圧を供給されうる。コンデンサ１６０９は、最初にＶｄｄまで充電される。例えば、Ｔ＝０．８Ｖの場合、ＢＬＺトランジスタを０．８Ｖ＋トランジスタのＶｔｈ（例えば、１Ｖ）の計１．８Ｖでバイアスすることができる。ビットラインが最大０．９Ｖに結合された場合、ＢＬＺトランジスタはビットラインを検知回路から遮断する（１．８−１．０＜０．９であるので）。検知ノード１６１１がＶｄｄなどの電圧まで充電される場合、この電圧はＢＬＺトランジスタが非導通であるのでそのままである。コンデンサの電圧が著しく低下しないときはＢＬＺトランジスタは非導通であると判断されうる。一方、ビットラインが０．７Ｖに結合される場合、ビットラインが検知回路につながるように（１．８−１．０＞０．７）ＢＬＺトランジスタは導通状態になり、また、ビットライン静電容量はコンデンサ１６０９の静電容量よりもはるかに大きいので検知ノード電圧は著しく低下してＶｂｌに等しくなる。
【０１８９】
ｔ８において、補償を必要としないビットラインは接地電圧にされ（波形１７３６）、補償を必ず必要とするビットラインは、ＬＣＯトランジスタの制御ゲートをＶｔｈ＋補償レベルとすることにより、規定の補償レベルでプレチャージされる（波形１７３７）。それゆえ、Ｖｐｇｍが印加されるとき、閾値Ｔに結合されない選択不揮発性記憶素子それぞれのビットラインの電位は一つのレベル、例えば、０Ｖで供給され（波形１７３６）、閾値Ｔに結合される選択不揮発性記憶素子それぞれのビットラインの電位は、別のより高いレベル、例えば、Ｖｃｏｍｐで供給される（波形１７３７）。
【０１９０】
Ｖｐａｓｓはｔ９においてワードラインに印加され、Ｖｐｇｍはｔ１０において選択ワードラインに印加される。Ｖｐｇｍが印加されるとき、ビットラインはフローティング状態にないが、有利には規定のレベルで供給される。このアプローチでは、選択ビットラインが一般に参照され、低速プログラムモードが採用されないときは、例えば、高速プログラムモードビットラインであってもよい。Ｖｐｇｍが印加されるとき、Ｖｂｌは補償が必要でないときは有利には０Ｖにあり（波形１７３６）、補償が必要であるときは規定された非ゼロレベルにある（波形１７３７）。
【０１９１】
図１７ｃは、図１６ａの検知回路に関連する検知のための時間軸を示す。これは、補償が必要であるかどうかを検知し、ＬＣＯトランジスタ１６１８などを介してこのような補償を提供するために図１６ａの検知回路１６９９を制御する別の例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。この実施形態では、Ｖ（ｓｌｏｗ＋ｃｏｍｐ）をフローティング状態（波形１７６２）に保つが、他の３つのすべての電圧は能動的に、例えば、０Ｖ、Ｖｓｌｏｗ、及びＶｃｏｍｐ（＝Ｖｆａｓｔ＋ｃｏｍｐ＝０Ｖ）にバイアスされる。これは、駆動されるビットラインと、検知回路がすべてのビットラインを異なるレベルで駆動できないときにフローティング状態にするビットラインを選択する際の設計トレードオフの例である。特に、手法は、補償が指示されないときに低速プログラムモードビットラインを駆動し、補償が指示されるときにこれらのビットラインをフローティング状態にするように選択する。また、手法では、補償が必要であるか否かにかかわらず高速プログラムモードビットラインを一のレベルで駆動するように選択する。後述する図１７ｄでは、別の手法を説明する。
【０１９２】
なお、補償は、実施態様例で述べるように検知によって、あるは他の手段によって指示されうる。例えば、選択及び非選択ビットラインの場所は制御データから分かる場合がある。前述の米国特許第７，２１５，５７４号明細書は一つの可能なアプローチを提供しており、ここでは、センスアンプは、ビットラインが選択されるか否かを示す制御データを交換する。別のアプローチは、非選択ビットラインと各選択ビットラインとの近さについての集中管理の情報に基づいて、補償レベル又は補償なしを直接設定する各検知回路へのデータを集中管理に提供させることである。
【０１９３】
４ビットラインの場合に対するラッチ条件は以下の通りである。第１の場合、禁止ビット線（波形１７５４）では、ＦＬＧ＝０及びＬＡＴ＝１である。第２の場合、補償ビットライン（波形１７５８又は１７６２）では、ＦＬＧ＝１及びＬＡＴ＝１である。ＬＣＯは、補償付きの低速プログラムモードビットラインに対してＶｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈにあることになる。ビットラインはｔ８〜ｔ９において充電される。第３の場合、Ｖｂｌ（ｓｌｏｗ）（波形１７６０）では、ＦＬＧ＝１及びＬＡＴ＝１である。ＬＣＯは、ビットラインがｔ１０の後に充電されるとき低速プログラムモードビットラインに対してＶｓｌｏｗ＋Ｖｔｈにあることになる。この時、補償ビットラインは、０Ｖまでの放電期間に放電されるか、あるいは補償されたレベルに保たれる（波形１７５８）か、あるいはＶｓｌｏｗ＋ｃｏｍｐ＋にわずかに結合される（波形１７６２）か、のいずれかである。第４の場合、接地ビットライン（波形１７５６）では、ＦＬＧ＝１及びＬＡＴ＝０である。
【０１９４】
波形１７５０は、ＢＬＣトランジスタのゲート電圧を表す。波形１７５２は、ｔ０〜ｔ３におけるＢＵＳ１６２４からＦＬＧ経路１６２９へのデータ転送、ｔ７〜ｔ８におけるＳＥＮノード１６１１からＬＡＴ経路１６２１へのデータ転送、及びｔ９〜ｔ１０におけるＢＵＳ１６２４からＬＡＴ経路１６２１へのデータ転送を表す。波形１７５４は、Ｖｂｌ（ｉｎｈｉｂｉｔ）を表す。波形１７５６は、補償が検知によって指示されない場合のＶｂｌ（ｆａｓｔ）を表す。この場合、ＬＡＴ＝０である。波形１７５８は、補償の必要性が検知によって指示される場合の高速プログラムモードビットライン（Ｖｂｌ（ｆａｓｔ＋ｃｏｍｐ）＝０Ｖ）に対するＶｂｌを表すが、Ｖｔｈが目標Ｖｔｈから離れている場合の二度目にＬＡＴが更新されると、補償された電圧が放電される。波形１７６０は、補償が検知によって指示されない場合の低速プログラムモードビットライン（Ｖｂｌ（ｓｌｏｗ））に対するＶｂｌを表す。ＬＣＯゲートをＶｓｌｏｗ＋Ｖｔｈに設定することによって、ｔ１０〜ｔ１３ではＶｂｌ（ｓｌｏｗ）＝Ｖｓｌｏｗである。波形１７６２は、補償の必要性が検知によって指示される場合の選択低速プログラムモードビットラインに対するＶｂｌ（Ｖｂｌ（ｓｌｏｗ＋ｃｏｍｐ））を表す。
【０１９５】
波形１７６４は、選択ワードラインに印加される電圧を表す。波形１７６６は、非選択ワードラインに印加される電圧を表す。波形１７６７は、ＨＬＬトランジスタ１６０６に印加される電圧を表す。波形１７６８は、ＦＬＧをＶｄｄに設定した状態で非禁止ビットラインをグランドに保持するためにＩＣＯトランジスタのゲートに印加される電圧を表す。波形１７７０は、ｔ５〜ｔ６において検知するコンデンサ１６０９を放電するためにＢＬＺトランジスタのゲートに印加される電圧を表す。波形１７７２は、ＳＥＮノードをブーストアップしてＬＡＴを更新するためにＣＬＫノード１６０８に印加される電圧を表す。波形１７７４は、ＬＣＯトランジスタのゲートに印加される電圧を表す。ｔ７〜ｔ８において、ＬＣＯはＢＵＳからＬＡＴにデータ転送させる。ｔ８〜ｔ１３において、ＬＣＯは、所望のＶｂｌを供給するように設定される。例えば、ＬＣＯは、プログラムモードビットラインを補償するレベルに設定される。波形１７７６は、ＦＣＯがハイであるときＢＵＳからＬＡＴにデータ転送させるために、ＦＣＯトランジスタのゲートに印加される電圧を表す。
【０１９６】
ｔ０〜ｔ３においてＢＵＳからＦＬＧへのデータの転送後、ＢＬＣはｔ３においてＶｄｄ−ΔＶ＋Ｖｔｈまで上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄ−ΔＶまで上昇する。ｔ４において、ＢＬＣはＶｄｄ＋ＶｔｈまでΔＶだけ上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄまで上昇する。禁止ビットラインにおける電圧上昇は、フローティング状態にある選択ビットラインＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）及びＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）に結合し、これらの電圧をΔＶ及び結合比に基づいて上昇させる。閾値を超えないＶｂｌ（ｆａｓｔ）へのわずかな結合を例として示す。さらに例として、結合は基本的にＶｂｌ（ｓｌｏｗ）に影響を与えない。破線はフローティング電圧を表す。ＨＬＬは、ＳＥＮノードをＶｄｄにプレチャージするためにｔ４〜ｔ５においてハイである。ＢＬＺトランジスタは、ｔ５〜ｔ６において検知のために開放状態（導通状態）にあり、ＨＬＬはｔ７〜ｔ８においてハイであり、ＳＥＮからＬＡＴにデータを転送させてラッチ１６１９を設定する。
【０１９７】
ｔ８において、補償が指定されないＶｂｌ（ｆａｓｔ）ビットラインはグランドにプルされる（波形１７５６）。ｔ８〜ｔ９において、ビットライン１７５８及び１７６２は規定レベルでプレチャージされるが、Ｖｂｌ（ｓｌｏｗ）ビットラインは接地される（波形１７６０）。ＬＣＯは、Ｖｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈに設定されてＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）＝Ｖｓｌｏｗ＋ｃｏｍｐを供給する。ｔ９〜ｔ１０において、ＬＣＯはＶｄｄ＋Ｖｔｈ（＞Ｖｓｌｏｗ＋Ｖｔｈ）にステップダウンしてＢＵＳからＬＡＴへのデータ転送を実施する。ｔ１０において、Ｖｂｌ（ｆａｓｔ＋ｃｏｍｐ）はさらにグランドに放電され、ＬＣＯ＝Ｖｓｌｏｗ＋Ｖｔｈであるので、Ｖｂｌ（ｓｌｏｗ）＝Ｖｓｌｏｗとなる。なお、Ｖｂｌ（ｓｌｏｗ）の増加はｔ１０においてＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）に結合する。
【０１９８】
例えば、前述のように、Ｖｂｌ（ｓｌｏｗ＋ｃｏｍｐ）は、それぞれ、（１）両方の隣接ビットラインが禁止、（２）一方の隣接ビットラインが禁止、又は（３）隣接ビットラインの禁止なし、の場合に１．１Ｖ、０．８５Ｖ、又は０．６Ｖとなりうる。
【０１９９】
Ｖｐａｓｓがｔ１１においてワードラインに印加され、Ｖｐｇｍがｔ１２において選択ワードラインに印加される。この場合、Ｖｐｇｍが印加されるときＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）ビットラインはフローティング状態にあるが、他のビットラインはフローティング状態にない。
【０２００】
それゆえ、Ｖｐｇｍが印加されるとき、閾値Ｔに結合しないＶｂｌ（ｆａｓｔ）は０Ｖで供給され、閾値Ｔに結合しないＶｂｌ（ｓｌｏｗ）はＶｓｌｏｗで供給され、閾値Ｔに必ず結合するＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）はＶｓｌｏｗ＋ｃｏｍｐ又はＶｓｌｏｗ＋ｃｏｍｐ＋で供給される。Ｖｓｌｏｗ＋ｃｏｍｐ＋は、ｔ１０において、０ＶからＶｓｌｏｗにステップアップするＶｂｌ（ｓｌｏｗ）に起因するＶｓｌｏｗ＋ｃｏｍｐからの結合を表す（波形１７６０）。この結合はデータパターンに特異的である。
【０２０１】
図１７ｄは、図１６ａの検知回路に関連する検知のための別の時間軸を示す。これは、補償が必要であるかどうかを検知し、このような補償を提供するために、図１６ａの検知回路１６９９を制御する別の例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。この実施形態では、禁止ビットラインがフローティング状態に保たれるが、他の３つの電圧は能動的にバイアスされる（例えば、０Ｖ、Ｖｂｌ（ｓｌｏｗ）、及びＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ））。
【０２０２】
これは、駆動されるビットラインと、検知回路がすべてのビットラインを異なるレベルで駆動できないときにフローティング状態にされるビットラインと、を選択する際の設計トレードオフの別の例である。特に、設計では、低速プログラムモードビットラインを、補償が指示されないときに一のレベルで駆動し、補償が指示されるときに別のレベルで駆動するように選択する。また、手法では、高速プログラムモードビットラインを一のレベルで駆動するように選択する。手法はＶｂｌ（ｉｎｈｉｂｉｔ）をフローティング状態にする。
【０２０３】
以下のステップが適用される。（ａ）フローティングビットラインを検知し、検知された結果をＬＡＴの代りにＦＬＧにラッチする。ＬＡＴは、ＢＵＳからの低速プログラム情報で更新される。分離トランジスタＩＳＯ１６１７は、ＢＵＳとＬＡＴの間のデータ転送動作をビットライン充電動作から分離して、これら２つの動作が同時に実行されるようにするために使用される。（ｂ）ＨＬＬ及びＬＣＯトランジスタを開放する（導通状態にする）ことによってＳＥＮノードをＬＡＴデータで更新する。（ｃ）ＢＬＣを低速プログラムモードビットラインに対するＶｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈに下げ、ＬＣＯ＝Ｖｓｌｏｗ＋Ｖｔｈに設定し、ビットラインをこの電圧まで充電する。（ｄ）ワードライン電圧をランプしてプログラムを実施する。
【０２０４】
４ビットラインの場合のラッチ条件は以下の通りである。第１の場合には、禁止ビットライン（波形１７８２）に対して、ＦＬＧ＝０及びＬＡＴ＝１であり、禁止ビットラインはｔ４〜ｔ８においてＶｄｄまで充電される。第２の場合には、補償ビットライン（波形１７８４及び１７８６）に対して、ｔ８の後、ＦＬＧ＝０及びＬＡＴ＝１である。ｔ８の後、補償付きの低速プログラムモードビットラインに対してＢＬＣ＝Ｖｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈである。第３の場合には、補償なしの低速プログラムモードビットライン（波形１７８５）に対して、ＦＬＧ＝１、ＬＡＴ＝１である。補償なしの低速プログラムモードビットラインに対して、ＬＣＯ＝Ｖｓｌｏｗ＋Ｖｔｈである。ビットラインは、ｔ１０の後に充電される。この時、補償ビットラインは０Ｖまで放電され、禁止ビットラインはわずかに結合される。低速プログラム及びｓｌｏｗ＋ｃｏｍｐビットラインはいずれも能動的に結合回避（ａｖｏｉｄｉｎｇ  ｃｏｕｐｌｉｎｇ）にバイアスされる。第４の場合には、接地ビットライン（波形１７８３）に対して、ＦＬＧ＝１及びＬＡＴ＝０である。
【０２０５】
波形１７８０は、ＢＬＣトランジスタのゲート電圧を表す。波形１７８１は、ｔ０〜ｔ３におけるＢＵＳ  １６２４からＦＬＧ経路１６２９まで、ｔ５〜ｔ６におけるＢＵＳからＬＡＴ経路まで、及びｔ７〜ｔ８におけるＳＥＮノードからＦＬＧ経路までのデータ転送を表す。図１７ｃと同様の波形名称を用いて、波形１７８２はＶｂｌ（ｉｎｈｉｂｉｔ）を表し、波形１７８３はＶｂｌ（ｆａｓｔ）を表し、ここでＬＡＴ＝０であり、波形１７８４はＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）を表し、波形１７８５はＶｂｌ（ｓｌｏｗ）を表す。ｔ８の後、ＬＣＯゲートをＶｓｌｏｗ＋Ｖｔｈに設定することによってＶｂｌ（ｓｌｏｗ）＝Ｖｓｌｏｗである。波形１７８６はＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）を表す。
【０２０６】
波形１７８７は選択ワードラインに印加される電圧を表す。波形１７８８は非選択ワードラインに印加される電圧を表す。波形１７８９はＳＴＲトランジスタ１６１５に印加される電圧を表す。波形１７９０はＨＬＬトランジスタのゲートに印加される電圧を表す。波形１７９１はＩＳＯトランジスタのゲートに印加される電圧を表す。波形１７９２はＩＣＯトランジスタのゲートに印加される電圧を表す。波形１７９３は、ｔ５〜ｔ６において検知するコンデンサ１６０９を放電するために、ＢＬＺトランジスタのゲートに印加される電圧を表す。波形１７９４はＣＬＫノード１６０８に印加される電圧を表す。波形１７９５はＬＣＯトランジスタのゲートに印加される電圧を表す。ｔ５〜ｔ６において、ＬＣＯはＢＵＳからＬＡＴにデータを転送させる。ｔ９〜ｔ１３において、ＬＣＯは所望のＶｂｌを供給するように設定される。波形１７９６は、ＦＣＯがハイのとき、ＢＵＳからＦＬＧに、またＳＥＮからＦＬＧにデータを転送させるためにＦＣＯトランジスタのゲートに印加される電圧を表す。
【０２０７】
ｔ０〜ｔ３においてＢＵＳからＦＬＧにデータが転送された後、ＢＬＣはｔ３においてＶｄｄ＋ΔＶ＋Ｖｔｈまで上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄ−ΔＶまで上昇する。ｔ４において、ＢＬＣはＶｄｄ＋ＶｔｈまでΔＶだけ上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄまで上昇する。禁止ビットラインにおける電圧上昇は、フローティング状態にある選択ビットラインＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）及びＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）に結合し、これらの電圧をΔＶ及び結合比に基づいて増加させる。閾値を超えないＶｂｌ（ｆａｓｔ）へのわずかな結合を例として示す。さらに例として、結合は基本的にＶｂｌ（ｓｌｏｗ）に影響を与えない。破線はフローティング電圧を表す。ＢＬＺトランジスタは、ｔ５〜ｔ６において検知のために開放状態にある。ＨＬＬ及びＩＳＯは、ＬＡＴラッチからＳＥＮノードを更新するためにｔ６〜ｔ７においてハイになる。ＳＴＲは、ＳＥＮからＦＬＧにデータを転送させるためにｔ７〜ｔ８においてハイである。ラッチがＢＵＳ→ＦＬＧ、ＢＵＳ→ＬＡＴ、及びＳＥＮ→ＦＬＧと更新する間、反転接続インバータ１６２２及び１６３２（図１６ａ）は衝突を回避するためにディセーブルされる。ＬＡＴ１６１９からのＳＥＮの更新の間、反転接続インバータ１６２２は、ＬＡＴ＝０の場合にＬＡＴがＳＥＮを上書きするのを確認するためアクティブである。
【０２０８】
ｔ８において、補償付きの低速プログラムモードビットラインでは、Ｖｓｌｏｗ＋ｃｏｍｐが波形１７８６において供給されるようにＢＬＣがＶｓｌｏｗ＋ｃｏｍｐ＋Ｖｔｈに設定される。補償付きの高速プログラムモードビットラインでは、ビットラインがＬＡＴ＝０によってグランドに放電される。Ｖｓｌｏｗが波形１７８５において供給されるようにＬＣＯはＶｓｌｏｗ＋Ｖｔｈに設定される。補償が指定されないＶｂｌ（ｆａｓｔ）ビットラインは、グランドにプルされる（波形１７８３）。Ｖｂｌ（ｉｎｈｉｂｉｔ）（波形１７８２）は、ｔ８における、Ｖｂｌ（ｓｌｏｗ）（波形１７８５）及びＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）（波形１７８６）のステップアップによって、レベルＶｄｄよりも大きいレベルＶｄｄ＋に結合されてもよい。
【０２０９】
Ｖｐａｓｓはｔ１１においてワードラインに印加され、Ｖｐｇｍはｔ１２において選択ワードラインに印加される。この場合、Ｖｐｇｍが印加されるときＶｂｌ（ｉｎｈｉｂｉｔ）ビットラインはフローティング状態にあるが、他のビットラインはフローティング状態にない。
【０２１０】
なお、図１６ａが図１４に見られるようにＶｄｄ−ΔＶ及びＶｄｄの電源を含むように修正される場合、図１６ａの検知回路に関係する図１６ｂ、１７ｂ〜ｄの時間軸の手法を修正してもよい。この場合、ＢＬＣを用いてビットライン電圧をクランプせずに、Ｖｄｄ−ΔＶ及びＶｄｄをビットラインに伝達するようにＢＬＣをハイに設定してもよい。
【０２１１】
図１８ａはもう一の代替検知回路１８９９を示す。この回路では、駆動電圧が補償付き低速プログラムモードビットラインに使用される。また、同様の倍電圧駆動法が図１４に示す検知回路で実現されうる。検知回路１８９９は、トランジスタ１８０７、電源ノード１８０５、及びＶｓｌｏｗ＋ｃｏｍｐの出力を供給する電源１８０３が追加されていることを除いて図１６ａの回路と同じである。Ｖｃｏｍｐは、例えば、０．２〜０．６Ｖの範囲で調整可能であってもよく、Ｖｓｌｏｗは、例えば、０．２〜０．８Ｖの範囲で調整可能であってもよく、したがって、Ｖｓｌｏｗ＋ｃｏｍｐは０．４〜１．４Ｖの範囲で調整可能である。図１８ａにおける同様の番号の要素は図１６ａにおける要素に対応する。
【０２１２】
一又は複数の電源を用いて選択ビットラインを駆動することによって、レベルはビットラインをフローティング状態にする手法に比べて精確に設定されうる。選択ビットラインが規定レベルのＶｓｌｏｗ＋ｃｏｍｐで駆動され、これによって、チャネル−フローティングゲート結合の補償に加えて低速プログラムモードに対して適切なＶｂｌを供給するように、電源１８０３はビットラインに結合されうる。
【０２１３】
さらに、補償なしの低速プログラムモードビットラインでは、Ｖｓｌｏｗが経路１８２５に供給されてビットラインに結合されるように、Ｖｓｌｏｗは、Ｖｓｌｏｗ＋ＶｔｈをＬＣＯトランジスタ１６１８に印加することによってビットラインに供給されうる。別のオプションは、電源１８０３をビットラインに接続する代わりに、経路１８２５のＶｓｌｏｗに加えて別の電源からのＶｃｏｍｐをビットラインに接続することである。どの構成要素がどの電圧を設定するために使用されるかを指定する凡例１８９１を参照されたい。検知回路１８９９の適切な制御によって、ビットライン１６４０と選択ＮＡＮＤストリングを表すＮＡＮＤストリング１６５０のチャネルとは、電源Ｖｓｌｏｗ＋Ｖｃｏｍｐによって直接駆動されうる。この場合、ビットラインの精確な制御がビットラインをフローティング状態にするリスクを伴わずに提供されうる。
【０２１４】
検知回路は、４つの電圧源を提供するために以下のように操作されうる。
【０２１５】
ａ）ロックアウトデータをＦＬＧラッチ１６３５に転送する。
【０２１６】
ｂ）禁止ビットラインに対してＦＬＧ＝０であればビットラインをＶｄｄ−ΔＶ（ＢＬＣ電圧によって制御される）までプレチャージする。他のビットラインは、ＩＮＶを通じてプルダウンするためにＩＣＯ＝Ｈ（ハイ）であるので確実なＧＮＤである。
【０２１７】
ｃ）ＩＣＯをターンオフしてＦＬＧ＝１でビットラインをフローティング状態にする。ＢＬＣ電圧を上げてＶｄｄを伝達する。
【０２１８】
ｄ）ビットラインが結合した後、ＢＬＺをターンオンして電圧検知を実施し、コンデンサを用いてＳＥＮノードに結果を記憶する。検知結果がＣＬＫノードによってブーストされ、補償する場合にＬＡＴをハイに設定するのに十分に高いかどうかを確認する。
【０２１９】
ｅ）検知結果がＬＡＴにおいてアナログ電圧からデジタルレベルに変換される。デジタル化された電圧はＳＥＮノードに転送されて将来使うために記憶される。それゆえ、選択ビットラインの検知電圧は、検知され、デジタル化され、記憶され、選択ビットラインの電圧は、Ｖｐｇｍが印加されると、検知に基づき、記憶データに対応したそれぞれのレベルでその後に供給される。
【０２２０】
ＬＡＴ＝１であれば、結合補償を行う。ＬＡＴ＝０であれば結合補償を行わない。データを保持するためにコンデンサ１６０９を使用する。
【０２２１】
ｆ）ｌｏｃｋｏｕｔｌデータをデータラッチからＢＵＳを通じてＬＣＯラッチに転送する。
【０２２２】
ｇ）ＨＬＬをターンオンしてＬＡＴ＝０のときのみＳＥＮノードを更新する。
【０２２３】
ｈ）Ｖｂｃｐノード１８０５は、フローティング状態から補償電圧Ｖｃｏｍｐ＋Ｖｓｌｏｗを供給するためのバイアス電圧に変化する。ＶｓｌｏｗはＬＣＯによって供給されうる。
【０２２４】
ｉ）４つの異なるビットライン電圧がビットラインに能動的に供給され（０Ｖ、Ｖｓｌｏｗ、Ｖｓｌｏｗ＋ｃｏｍｐ、及びＶｄｄ）、ここで、各ビットラインは４つの電圧の一にバイアスされる。ワードライン電圧をランプしてプログラムを開始する。
【０２２５】
図１８ｂは、図１８ａの検知回路に関連する検知及びプログラムに対する時間軸を示す。これは、補償が必要であるかどうかを検知し、精確な制御を提供するために専用電源を介してこのような補償を提供するための検知回路１８９９を制御する例である。時間軸は、禁止ビットライン、補償付き及び補償なしの高速プログラムビットライン、及び補償付き及び補償なしの低速プログラムビットラインの電圧を含む。
【０２２６】
一般に、ｔ０〜ｔ３は、ビットラインが検知回路から遮断されるロックアウト期間であり、ｔ３〜ｔ４はビットラインプレチャージ期間であり、ｔ４〜ｔ７は隣接ビットラインからの結合が検知される検知期間であり、ｔ７〜ｔ８、ｔ９〜ｔ１０、及びｔ１２〜ｔ１３はデータ転送期間であり、ｔ１３〜ｔ１６はビットラインが充電されてプログラムが行われる期間である。
【０２２７】
波形１８６０は、ＢＬＣトランジスタのゲート電圧を表す。波形１８６２は、ｔ０〜ｔ３におけるＢＵＳ１６２４からＦＬＧノード１６２９へのデータ転送、ｔ７〜ｔ８におけるＳＥＮノード１６１１からＬＡＴノード１６２１へのデータ転送、ｔ９〜ｔ１０においてＳＥＮをデジタルレベルに更新するためにＬＡＴノードからＳＥＮノードに戻るデータ転送、及びｔ１１〜ｔ１２におけるＢＵＳ１６２４からＬＡＴノード１６２１へのデータ転送を表す。波形１８６４は、Ｖｂｌ（ｉｎｈｉｂｉｔｅｄ）を表す。波形１８６６は、Ｖｂｌ（ｆａｓｔ）を表し、ここでＬＡＴ＝０である。波形１８６８はＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）を表す。波形１８７０はＶｂｌ（ｓｌｏｗ）を表す。Ｖｂｌ（ｓｌｏｗ）は、ｔ１３〜ｔ１６においてＢＬＣトランジスタによって制御される。波形１８７２はＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）を表す。
【０２２８】
波形１８７４は、選択ワードラインに印加される電圧を表す。波形１８７６は、非選択ワードラインに印加される電圧を表す。波形１８７８は、ＩＣＯトランジスタのゲートに印加される電圧を表す。波形１８８０は、ｔ５〜ｔ６において検知するコンデンサ１６０９を放電するためにＢＬＺトランジスタのゲートに印加される電圧を表す。波形１８８２は、ＣＬＫノード１６０８に印加される電圧を表す。ＣＬＫ信号は、ｔ７〜ｔ９においてビットライン結合検知中にステップアップし、トランジスタ１８０７が導通状態になり、Ｖｂｃｐをビットラインに伝達するようにさらにＳＥＮをブーストする必要がある。波形１８８４は、ｔ７〜ｔ８においてＳＥＮからＬＡＴにデータを転送させ、ｔ９〜ｔ１０においてＬＡＴからＳＥＮにデータを転送させ、ｔ１１〜ｔ１２においてＢＵＳからＬＡＴにデータを転送させるために、そしてｔ１３の後に低速プログラム電圧をビットラインに供給するために、ＬＣＯトランジスタのゲートに印加される電圧を表す。補償なしで低速プログラムモード記憶素子のビットラインにＶｓｌｏｗを供給するために、ｔ１３の後はＬＣＯ＝Ｖｓｌｏｗ＋Ｖｔｈとなる。波形１８８６は、ＦＣＯがハイのときＢＵＳからＦＬＧにデータ転送させるために、ＦＣＯトランジスタのゲートに印加される電圧を表す。波形１８８８は、期間ｔ７〜ｔ１０中にＳＥＮから検知された結果をまずＬＡＴラッチに転送し、そしてＬＡＴからＳＥＮノードに転送し、この後、ｔ１２〜ｔ１３においてＬＡＴ＝０のとき補償が必要でなければＳＥＮノードを放電するために、ＨＬＬトランジスタのゲートに印加される電圧を表す。
【０２２９】
ＨＬＬトランジスタは、ＳＥＮコンデンサ１６０９に出入りするデータを転送するために使用される。ＳＥＮから検知されたデータをＬＡＴに転送した後、ラッチされているＬＡＴ信号はデジタル信号であり、ｔ９〜ｔ１０においてコンデンサのダイナミックラッチに転送される。ＨＬＬをハイに設定することによって、ＶｄｄがＳＥＮに保存される。補償が必要でなければ、コンデンサは０Ｖである。補償が必要であれば、コンデンサはＶｄｄを記憶することになる。ＳＥＮノード１６１１は、ＳＥＮがハイのとき、コンデンサに接続され、トランジスタ１８０７を導通状態にしてノード１８０５をビットラインに接続し、ＳＥＮがローのとき、トランジスタ１８０７を非導通状態にしてＶｂｃｐノード１８０５をビットラインから切り離す。トランジスタ１８０７は、ノード１８０５及び電源１８０３に接続されたドレインと、ビットラインに接続されたソースと、検知ノード１６１１に接続されたゲートとを有する。ＦＬＧは、ＦＬＧ＝０のときＶｄｄをビットラインに供給する。
【０２３０】
ｔ１２〜ｔ１３において、ＬＡＴはＶｓｌｏｗを供給するだけで、電源１８０３はＶｓｌｏｗ＋ｃｏｍｐをビットラインに供給することになる。
【０２３１】
ｔ１２〜ｔ１３におけるｌｏｃｋｏｕｔｌ転送は、ビットラインが低速プログラムモードにあるかどうかを示す。ここで、ＬＡＴは最新データでもう一度リフレッシュされる。ｔ１２〜ｔ１３におけるｌｏｃｋｏｕｔｌ転送の終了時に、ＳＥＮはｆａｓｔ＋ｃｏｍｐの場合に再びリフレッシュされてＳＥＮを０に放電する。Ｖｓｌｏｗを受け取るビットラインは依然としてＬＡＴ＝１を有する。
【０２３２】
禁止ビットラインの場合、ＦＬＧ＝０、ＬＡＴ＝１、及びＳＥＮ＝１であり、ここで、トランジスタＦＬＧ１６０２はＶｄｄをビットラインに供給する。補償なしの高速プログラムモードビットラインの場合、ＦＬＧ＝１、ＬＡＴ＝０、及びＳＥＮ＝０であり、ここで、ＬＡＴラッチ１６１９はグランドをビットラインに供給する。補償なしの低速プログラムモードビットラインの場合、ＦＬＧ＝１、ＬＡＴ＝１、及びＳＥＮ＝０であり、ここで、ＬＡＴラッチ１６１９はＶｓｌｏｗを供給する。補償付きの低速プログラムモードビットラインの場合、ＦＬＧ＝１、ＬＡＴ＝１、及びＳＥＮ＝１であり、ここで、ＳＥＮトランジスタ１８０７はＶｓｌｏｗ＋ｃｏｍｐを供給する。ＬＡＴは、ＬＣＯトランジスタ制御によってＶｓｌｏｗをビットラインに供給するだけとなる。
【０２３３】
それゆえ、本発明者らは、データを保持する３つのデータラッチ、すなわち、ＦＬＧ、ＬＡＴ、及びコンデンサを有している。これら３つの値に基づいて、本発明者らはビットライン電圧を設定することができる。すべてのビットライン電圧が安定すると、ｔ１３においてブースティング及びプログラムが開始して実施される。
【０２３４】
同時に、ＬＡＴ＝０Ｖがさらにビットラインをグランドにプルダウンする。したがって、検知ノードをゼロ等価にリフレッシュすると、Ｖｃｏｍｐがビットラインに印加されないようになる。補償ビットラインはグランドに放電するだけでよいが、放電経路はＬＡＴ＝０Ｖによって活性化される。放電経路に関して、本発明者らはインバータ又はグランドトランジスタを検討しなければならないが、Ｖｃｏｍｐ電源１８０３は唯一の供給電圧である。検知ノードがたとえ既に０Ｖであっても、これはビットラインがゼロに放電されることを保証するものではなく、したがって、放電はＬＡＴトランジスタを経由する必要がある。
【０２３５】
なお、第１及び第２のＨＬＬパルスは様々な振幅を有するが、これは必須ではない。Ｖｄｄを伝達するために検知ノードを転送するとき、Ｖｄｄを伝達するために異なる振幅が使用されてよい。しかし、ＳＥＮがグランドに放電しているだけであるとき、高い電圧はＨＬＬにとって必要でない。例えば、Ｖｄｄを伝達するとき、ＨＬＬはＶｄｄ＋Ｖｔｈにあるだけでよい。通常、Ｖｔｈは約１Ｖである。Ｖｄｄ＝２．５Ｖであれば、ＨＬＬ＝３．５Ｖである。これは、ＨＬＬが低電圧トランジスタであるときＨＬＬにストレスをもたらすおそれがある。Ｖｄｄを伝達したいときにＨＬＬに３．５Ｖを使用しうるように切替可能な電圧を使用することができるが、０Ｖを伝達したいだけであれば、ＨＬＬトランジスタへのストレスを軽減するために２．５Ｖを使用することができる。
【０２３６】
波形１８９０はＳＥＮノードが検知中に放電されないときのＳＥＮノードにおける電圧を表し、波形１８９２はＳＥＮノードが検知中又は更新中に放電されるときのＳＥＮノードにおける電圧を表す。波形１８９４は、ＶｂｃｐがＶｓｌｏｗ＋ｃｏｍｐまで上昇するとき図１８ａにおけるノード１８０５の電圧を表す。
【０２３７】
ｔ０〜ｔ３においてＢＵＳからＦＬＧにデータが転送された後、ＢＬＣはｔ３においてＶｄｄ−ΔＶ＋Ｖｔｈまで上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）はＶｄｄ−ΔＶまで上昇する。Ｖｂｌ（ｉｎｈｉｂｉｔ）は、ＦＬＧ＝０でＦＬＧ経路１６２９によって供給される。同時にＬＡＴ＝１（ハイ）である。ｔ４において、ＢＬＣはＶｄｄ＋ＶｔｈまでΔＶだけ上昇する。その結果、Ｖｂｌ（ｉｎｈｉｂｉｔ）＝Ｖｄｄである。禁止ビットラインにおける電圧上昇は、フローティング状態にあるＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）及びＶｂｌ（ｓｌｏｗ＋ｃｏｍｐ）に結合し、これらの電圧をΔＶ及び結合比に応じて増加させる。閾値を超えないＶｂｌ（ｆａｓｔ）へのわずかな結合を例として示す。さらに例として、結合は基本的にＶｂｌ（ｓｌｏｗ）に影響を与えない。破線はフローティング電圧を表す。ＢＬＺトランジスタは、ｔ５〜ｔ６において検知のために開放状態にある。
【０２３８】
補償が指定されないＶｂｌ（ｆａｓｔ）ビットラインは、ｔ８においてグランドにプルされる（波形１８６６）が、補償が指定されるＶｂｌ（ｆａｓｔ＋ｃｏｍｐ）ビットラインはｔ１３においてグランドにプルされる（波形１８６８）。ビットラインは、ｔ１３〜ｔ１６において規定レベルでプレチャージされる。波形１８７０に関して、検知動作の放電期間において検知ノードの放電が著しいことに起因してＳＥＮ＝０（ロー）であるとき、これは補償を必要としないほど結合が低いことを示している。したがって、ＳＥＮ＝ローはトランジスタ１８０７を非導通状態にし、したがって、電源ノード１８０５はビットラインから遮断される。一方、放電期間における検知ノードの放電がわずかであることに起因してＳＥＮ＝ハイであるとき、これは補償を必要とするほど結合が高いことを示している。結果的に、ＳＥＮはトランジスタ１８０７を導通状態にするほど高く、したがって、電源ノード１８０５はビットラインに接続される。ＳＥＮ及びＬＡＴがいずれもハイである場合、ビットラインに供給される電圧は２つある。一方はＬＣＯ経路からのＶｓｌｏｗであり、他方はトランジスタ１８０７からである。電源はＶｓｌｏｗよりも高いＶｂｃｐ＝Ｖｓｌｏｗ＋ｃｏｍｐであるので、ＬＣＯトランジスタはＯＦＦ（非導通）状態にあることになる。結局、ビットライン電位を供給するのはＶｂｃｐからの一の電源だけである。
【０２３９】
ＳＥＮ＝ローであるとき、ＬＣＯはＶｓｌｏｗをビットラインに供給する。波形１８７２に関して、ＳＥＮ＝１（ハイ）が設定されてパスゲートとして働くトランジスタ１８０７を導通状態にし、したがって、電源ノード１８０５はビットラインに結合される。波形１８６６及び１８６８に関して、ＳＥＮ＝０（ロー）が設定されてトランジスタ１８０７を非導通状態にし、したがって、電源ノード１８０５はビットラインから遮断される。また、ＬＡＴ＝０で、かつＦＬＧ＝１である。Ｖｐａｓｓがｔ１４においてワードラインに印加され、Ｖｐｇｍがｔ１５において選択ワードラインに印加される。有利には、Ｖｐｇｍが印加されるとき、ビットラインがフローティング状態になるおそれがない。ビットラインは、補償付き又は補償なしの低速プログラムモードを含む、精確な制御のために規定レベルで駆動される。
【０２４０】
なお、図１４に見られるように図１８ａがＶｄｄ−ΔＶ及びＶｄｄの電源を含むように修正される場合、図１８ａの検知回路に関係している図１８ｂの時間軸の手法は修正されてもよい。この場合、ＢＬＣを用いてビットライン電圧をクランプするのではなく、ＢＬＣをハイに設定してビットラインにＶｄｄ−ΔＶ及びＶｄｄを伝達してもよい。同様に、図１４及び１６ａの検知回路は、図１８ａに見られるように、Ｖｃｏｍｐの電源を含むように修正されてもよい。
【０２４１】
一実施形態では、記憶システムが、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む一組の記憶素子と、各記憶素子に接続されたそれぞれのビットラインと、一又は複数の制御回路とを備える。前記一又は複数の制御回路は、一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行するために、（ａ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加し、（ｂ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する。
【０２４２】
他の一実施形態では、記憶システムにおける一組の記憶素子をプログラムするための方法が提供される。ここで、各々の記憶素子は、対応するビットラインに接続されている。この方法は、前記一組の記憶素子に対するプログラム動作の複数のプログラム反復を実行する工程を含む。ここで、前記一組の記憶素子は、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む。前記複数のプログラム反復を実行する工程は、（ａ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムパルスを印加する工程と、（ｂ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記少なくとも一つの記憶素子が目標データ状態の目標検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインをフロートさせながら、前記一組の記憶素子にプログラムパルスを印加する工程とを含む。
【０２４３】
他の一実施形態では、記憶システムが、目標データ状態へプログラムされる少なくとも一つの記憶素子を含む一組の記憶素子と、前記少なくとも一つの記憶素子に接続されたそれぞれのビットラインと、一又は複数の制御回路とを備える。前記一又は複数の制御回路は、（ａ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達するまで、前記少なくとも一つの記憶素子に対するビットラインを接地しながら、前記一組の記憶素子にプログラムを行い、（ｂ）前記少なくとも一つの記憶素子が、当該少なくとも一つの記憶素子の目標データ状態の目標検証レベルよりも低い検証レベルに達したら、前記ビットラインをフロートさせながら、前記一組の記憶素子にプログラムを継続する。
【０２４４】
上記した詳細な説明は、図解及び説明のために提示された。それは、網羅的であること、又は開示されている正確な形式に本技術を制限することを意図していない。上記の教示を鑑みて、多くの修正及び変形が考えられる。説明された実施形態は、本技術及びその実践的な用途の原則を最もよく説明し、それによって当業者が多様な実施例において、及び意図された特定の使用に適するような多様な修正をもって本技術を最もよく活用できるようにするために選ばれた。本技術の範囲は、ここに添付される請求項により定められるものである。
【図１ａ】
0005470468.tif 000002
【図１ｂ】
0005470468.tif 000003
【図２】
0005470468.tif 000004
【図３】
0005470468.tif 000005
【図４】
0005470468.tif 000006
【図５】
0005470468.tif 000007
【図６】
0005470468.tif 000008
【図７ａ】
0005470468.tif 000009
【図７ｂ】
0005470468.tif 000010
【図８】
0005470468.tif 000011
【図９】
0005470468.tif 000012
【図１０ａ】
0005470468.tif 000013
【図１０ｂ】
0005470468.tif 000014
【図１１ａ】
0005470468.tif 000015
【図１１ｂ】
0005470468.tif 000016
【図１１ｃ】
0005470468.tif 000017
【図１１ｄ】
0005470468.tif 000018
【図１１ｅ】
0005470468.tif 000019
【図１２】
0005470468.tif 000020
【図１３】
0005470468.tif 000021
【図１４】
0005470468.tif 000022
【図１５】
0005470468.tif 000023
【図１６ａ】
0005470468.tif 000024
【図１６ｂ】
0005470468.tif 000025
【図１７ａ】
0005470468.tif 000026
【図１７ｂ】
0005470468.tif 000027
【図１７ｃ】
0005470468.tif 000028
【図１７ｄ】
0005470468.tif 000029
【図１８ａ】
0005470468.tif 000030
【図１８ｂ】
0005470468.tif 000031