(57)【特許請求の範囲】
【請求項１】
メモリセルをプログラムするための方法であって、
データストリームを使用して、３つの異なる符号化状態を含む符号化ストリームを生成することと、
前記符号化ストリームを使用して、前記メモリセルをプログラムすることと、
を含み、
前記符号化ストリームを生成することは、
前記データストリームから、事前にコード化されたデータストリームを生成することと、
前記事前にコード化されたデータストリームから、マップされた電圧ストリームを生成することと、
前記マップされた電圧ストリームから、前記符号化ストリームを生成することと、
を含む、方法。
【請求項２】
前記事前にコード化されたデータストリームを生成することは、元のデータストリームの現在のデータ値を、前記事前にコード化されたデータストリームの以前のデータ値と論理的に組み合わせることを含む、請求項１に記載の方法。
【請求項３】
前記マップされた電圧ストリームを生成することは、前記事前にコード化されたデータストリームの各データ値を、代表的な電圧にマップすることを含む、請求項１に記載の方法。
【請求項４】
前記事前にコード化されたデータストリームの各データ値を、代表的な電圧にマップすることは、前記事前にコード化されたデータストリームの第１の論理状態を、第１の電圧にマップすることと、前記事前にコード化されたデータストリームの第２の論理状態を、第２の電圧にマップすることとを含む、請求項３に記載の方法。
【請求項５】
前記事前にコード化されたデータストリームの最初の先行データ値が、第１の論理状態に初期化されている、請求項１に記載の方法。
【請求項６】
前記符号化ストリームを生成することは、前記マップされた電圧ストリームを使用して、３進電圧ストリームを生成することを含み、前記３進電圧ストリームは、第１のデータ状態が０Ｖによって表され、第２のデータ状態がＡボルトおよび−Ａボルトの両方によって表されるように、０、Ａ、および−Ａの電圧を含む、請求項１に記載の方法。
【請求項７】
前記第２のデータ状態を有する第１のビットは、前記第１のビットの前にある、前記データストリームの中の奇数個のビットが、前記第１のデータ状態を有することに応答して、Ａボルトによって表され、前記第２のデータ状態を有する第２のビットは、前記第２のビットの前にある、前記データストリームの中の偶数個のビットが、前記第１のデータ状態を有することに応答して、−Ａボルトによって表される、請求項６に記載の方法。
【請求項８】
メモリセルのアレイと、
データストリームから、３つの異なる符号化状態を含む符号化ストリームを生成し、前記符号化ストリームを使用して、前記アレイのメモリセルをプログラムするように構成される、コントローラと、
を備え、
前記符号化ストリームを生成することは、
前記データストリームから、事前にコード化されたデータストリームを生成することと、
前記事前にコード化されたデータストリームから、マップされた電圧ストリームを生成することと、
前記マップされた電圧ストリームから、前記符号化ストリームを生成することと、
を含む、デバイス。
【請求項９】
前記コントローラはさらに、前記データストリームの中の第２のデータ状態を有する現在のビットの前にある、第１のデータ状態を有するビットの数をカウントし、前記カウントを使用して、前記符号化ストリームを少なくとも部分的に生成するように構成される、請求項８に記載のデバイス。
【請求項１０】
前記符号化ストリームを生成するように構成される前記コントローラは、前記データストリームのビットを前記事前にコード化されたデータストリームの先行ビットと論理的に組み合わせることによって、前記データストリームから前記事前にコード化されたデータストリームを生成するように構成される、コントローラを含む、請求項８に記載のデバイス。
【請求項１１】
前記コントローラはさらに、前記データストリームを、０、Ａ、および−Ａの電圧を含む３進電圧ストリームに符号化するように構成される、請求項８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、概して、メモリに関し、特定の実施形態は、メモリセルをプログラミングし、読み取ることに関する。
【背景技術】
【０００２】
フラッシュメモリデバイスは、幅広い範囲の電子的用途において、よく使用される非揮発（不揮発性）メモリのソースへと発展している。フラッシュメモリデバイスは、典型的には、高メモリ密度、高信頼性、および低電力消費を可能にする１トランジスタメモリセルを使用する。フラッシュメモリの通常の利用先には、パーソナルコンピュータ、フラッシュドライブ、デジタルカメラ、および携帯電話が含まれる。基本入出力システム（ＢＩＯＳ）等のプログラムコードおよびシステムデータが、典型的には、パーソナルコンピュータシステムで使用するためにフラッシュメモリデバイスに格納される。
【０００３】
典型的なフラッシュメモリデバイスは、メモリセルのアレイが、典型的には、一度に１バイトの代わりに、ブロックごとに消去および再プログラムすることができる、メモリブロックに編成される、メモリのタイプである。メモリセルのうちのそれぞれの閾値電圧は、各メモリセルの中に記憶されるデータ値を決定する。
【０００４】
図１Ａおよび１Ｂは、典型的な非揮発（不揮発性）メモリセルの可能なプログラム状態を図示する。図１Ａは、単一（シングル）レベルセル（ＳＬＣ）メモリデバイスの可能なプログラム状態を図示する。図１Ｂは、多重（マルチ）レベルセル（ＭＬＣ）メモリデバイスの可能なプログラム状態を図示する。
【０００５】
図１Ａおよび１Ｂの分布のうちのそれぞれは、その特定の範囲内の各閾値電圧におけるメモリセルの数とともに、閾値電圧（Ｖｔ）範囲を表す。各分布は、特定のプログラム可能な状態を表す。例えば、図１Ａは、負の電圧分布１０１が、論理「１」状態（例えば、消去状態）を表し、正の電圧分布１０２が、論理「０」状態（例えば、プログラム状態）を表すことを示す。同様に、図１Ｂは、負の電圧分布１０３が、論理「１１」状態（例えば、消去状態）を表し、３つの正の電圧分布１０４〜１０６が、それぞれ、論理「１０」、「００」、および「０１」状態（例えば、プログラム状態）を表すことを示す。
【０００６】
少なくとも部分的に、非揮発メモリデバイスで使用される、比較的低い閾値電圧により、メモリデバイスをプログラムすることは、雑音の影響を受けやすくあり得る。例えば、図１Ａを参照すると、−Ａが消去状態を表す電圧であり、＋Ａがプログラム状態を表す電圧である場合、Ａは、１Ｖから３Ｖの範囲内であり得る。したがって、電圧をプログラムするか、または読み取るかのいずれかの間に発生する雑音は、メモリセルのデータ状態を、不正確にプログラムさせ、または不正確に読み取らせ得る。
【０００７】
上述の理由により、および本明細書を読んで理解することにより当業者に明白となるであろう他の理由により、当技術分野では、メモリデバイスにおける雑音の効果を低減させるための必要性がある。
【図面の簡単な説明】
【０００８】
【図１Ａ】典型的な非揮発メモリセルの可能なプログラム状態に対する電圧分布を示す。
【図１Ｂ】典型的な非揮発メモリセルの可能なプログラム状態に対する電圧分布を示す。
【図２】ＮＡＮＤアーキテクチャメモリアレイの一部分の一実施形態の概略図を示す。
【図３】メモリデバイスをプログラムするための方法の一実施形態のフローチャートを示す。
【図４】図３の方法による、データおよび電圧ストリームの一実施形態の表を示す。
【図５】図３の方法を用いてプログラムされたメモリデバイスを読み取るための方法の一実施形態のトレリス状態図を示す。
【図６】感知動作のための説明された方法を使用して、メモリデバイスを組み込むことができるシステムの一実施形態のブロック図を示す。
【発明を実施するための形態】
【０００９】
以下の詳細な説明において、その一部を形成し、例として、特定の実施形態が示される、添付の図面が参照される。図中、いくつかの図を通して、同様の数字はほぼ同様の構成要素を記載する。他の実施形態を利用してもよく、また、本開示の範囲から逸脱せずに、構造的、論理的、および電気的な変更を行ってもよい。したがって、以下の詳細な説明は、制限的な意味で解釈されるべきではない。
【００１０】
図２は、非揮発メモリセルの一連のストリングを備える、ＮＡＮＤアーキテクチャメモリアレイ２０１の一部分の一実施形態の概略図を図示する。図２の概略図は、プログラム可能な非揮発メモリデバイスの一実施例の例証の目的のためにすぎない。プログラムするための方法の実施形態は、図示されるメモリアレイアーキテクチャに限定されない。代替的実施形態は、ＮＯＲまたは他のアーキテクチャを使用することもできる。
【００１１】
メモリアレイ２０１は、一連のストリング２０４、２０５等の行に配列される非揮発メモリセル（例えばフローティングゲート）のアレイを含む。セルのそれぞれは、各一連のストリング２０４、２０５内において、ドレイン・ソース間に結合される。複数の一連のストリング２０４、２０５の間をまたがるアクセスライン（例えばワードライン）ＷＬ０〜ＷＬ３１は、列内のメモリセルの制御ゲートにバイアスをかけるように、列内の各メモリセルの制御ゲートに結合される。偶数／奇数ビットラインＢＬ＿Ｅ、ＢＬ＿Ｏ等のデータラインは、一連のストリングに結合され、最終的に、各ビットラインは、選択されたビットライン上の電流または電圧を感知することによって各セルの状態を検出する、感知回路を伴うページバッファに結合される。
【００１２】
メモリセルの各一連のストリング２０４、２０５は、ソース選択ゲート２１６、２１７（例えばトランジスタ）によってソースライン２０６へ、また、ドレイン選択ゲート２１２、２１３（例えばトランジスタ）によって個々のビットラインＢＬ＿Ｅ、ＢＬ＿Ｏへ結合される。ソース選択ゲート２１６、２１７は、それらの制御ゲートに結合されるソース選択ゲート制御ラインＳＧ（Ｓ）２１８によって制御される。ドレイン選択ゲート２１２、２１３は、ドレイン選択ゲート制御ラインＳＧ（Ｄ）２１４によって制御される。
【００１３】
各メモリセルは、単一レベルセル（ＳＬＣ）または多重レベルセル（ＭＬＣ）としてプログラムすることができる。各セルの閾値電圧（Ｖｔ）は、セルの中に記憶されるデータ状態を示す。例えば、ＳＬＣでは、２．５ＶのＶｔが、プログラムされたセルを示し得る一方で、−２．５ＶのＶｔは、消去されたセルを示し得る。ＭＬＣは、異なるデータ状態をそれぞれ示す、複数のＶｔ範囲を使用する。マルチレベルセルは、ビットパターンを特定のＶｔ範囲に割り当てることによって、従来のフラッシュセルのアナログ性質をうまく利用することができる。この技術は、セルに割り当てられるＶｔ範囲の数量に応じて、１つのセルにつき２つ以上のビットを表すデータ状態の記憶を可能にする。いずれの場合も、従来のメモリデバイスは、典型的には、データ状態（例えば、データ状態１および０、または、それぞれ、データ状態１１、１０、００、および０１）を１対１の関係で直接表すために、プログラム状態（例えば、分布１０１および１０２、または分布１０３、１０４、１０５、および１０６によって表される）を使用する。
【００１４】
図３は、図２で図示されるようなＳＬＣ非揮発メモリデバイス等のメモリデバイスをプログラムするための方法の一実施形態のフローチャートを図示する。本方法は、「ｋ」がストリームの中のビット位置である、図４のＵｋデータストリームとして図示されるようなビットのデータストリームから開始する。典型的な従来技術のプログラミング方法では、Ｕｋは、メモリデバイスにプログラムされるであろうデータストリームである。
【００１５】
Ｕｋデータストリームは、事前にコード化（符号化）されたデータストリームを生成する際に使用される（３０１）。事前にコード化されたデータストリームは、Ｖｋとして図４で表される。一実施形態では、Ｖｋ＝ＸＯＲ（Ｕｋ，Ｖｋ−１）である。一実施形態では、Ｖｋの初期値が論理０に設定されることが仮定される。
【００１６】
実施例として図４のＵｋデータストリームを使用して、Ｕ０＝１であり、Ｖｋの初期値が０であるため、新しいＶ０＝ＸＯＲ（１，０）＝１であることが分かる。同様に、Ｕ１＝０およびＶ０＝１であり、したがって、Ｖ１＝１である。この事前コーディングアルゴリズムは、Ｕｋデータストリーム全体が、図４で図示されるような事前にコード化されたＶｋデータストリームを生成するために継続する。
【００１７】
事前にコード化されたＶｋデータストリームは、図４で図示されるようなマップされた電圧ストリームＣｋを生成するために使用される（３０３）。事前にコード化されたＶｋデータストリームは、バイナリ（２進）Ｖｋデータストリームから正および負の電圧にマップされる。一実施形態では、図４で図示されるように、マッピング規則が、Ｖｋ＝０を第１の電圧（例えば、１Ｖ）に、Ｖｋ＝１を第２の電圧（例えば、−１Ｖ）にマップすることができる。一実施形態では、第１および第２の電圧は、同一の大きさを有する。このマッピングは、Ｖｋデータストリーム全体が、図４で図示されるようなマップされた電圧ストリームＣｋを生成するために継続する。
【００１８】
次いで、マップされた電圧ストリームＣｋは、図４で図示されるような３進電圧ストリームＸｋ等の符号化ストリームを生成するために使用される（３０５）。一実施形態では、Ｘｋ＝｛Ｃｋ＋Ｃｋ−１｝である。実施例として、図４のＣｋ電圧ストリームを仮定すると、Ｘ０＝｛−１＋１｝＝｛０｝、およびＸ１＝｛−１−１｝＝−２である。この３進値変換は、Ｃｋストリーム全体が、図４で図示されるようなＸｋ電圧ストリームを生成するために継続する。
【００１９】
次いで、Ｘｋ電圧ストリームは、メモリデバイスをプログラムするために使用される。したがって、メモリセルを２つのプログラム状態（例えば、１、０）のうちの１つにプログラムするための従来技術の方法の代わりに、図３のプログラミング実施形態は、少なくとも３つの異なるプログラム状態（例えば、０、−２、＋２）のうちの１つをＳＬＣメモリセルにプログラムする。
【００２０】
代替実施形態では、Ｘｋの３進電圧を、別の方式で元のデータストリームＵｋから生成することができる。図４のＵｋおよびＸｋの両方を参照すると、Ｕｋ＝０であるとき、Ｘｋが−２または＋２のいずれかであり、Ｕｋ＝１であるとき、Ｘｋ＝０であることが分かる。加えて、Ｘｋの位置よりも前に、Ｕｋの中の奇数個の論理１があるとき、Ｘｋが−２であることが分かる。Ｘｋの位置よりも前に、Ｕｋの中の偶数個の論理１があるとき、Ｘｋは＋２である。したがって、第１のＵｋ論理状態（例えば、論理１）を０Ｖと置換し、Ｘｋの中の現在の位置よりも前にある第１のＵｋ論理状態（例えば、論理１）の発生数をカウントし、現在の位置よりも前にある第１の論理状態の個数が奇数であるときは−２Ｖと、現在の位置よりも前にある第１の論理状態の個数が偶数であるときは＋２Ｖと、第２のＵｋ論理状態（例えば、論理０）を置換することによって、Ｕｋから、符号化されたＸｋ電圧ストリームを生成することができる。
【００２１】
図４に示される０、−２、および＋２のＸｋ値は、例証の目的のためにすぎない。Ｘｋ値の一般的表現は、Ａの大きさが、メモリセルにプログラム可能である任意の電圧であり得る、０、−Ａ、および＋Ａであり得る。
【００２２】
一実施形態では、個々の現在のデータサンプルならびに過去のデータサンプルに依存するシーケンス検出器（例えば、ビタビ検出器）を使用して、メモリセルにプログラムされた３進Ｘｋ値を読み取ることができる。そのようなビタビ検出器の一実施形態は、図５のトレリス状態図によって図示することができる。
【００２３】
図５のトレリス状態図は、ＣｋとＸｋとの間の関係を図示する。図４の実施形態のＣｋが、２つの値（例えば、−１および１）を示すため、２つの可能な状態（例えば、−１および１）を有するトレリスが示されている。トレリスの中の各円５０１は、Ｃｋ−１状態を表す。各Ｃｋ−１状態の間の線は、同一の状態（例えば、−１から−１）または第２の状態（例えば、−１から１）のいずれかへの移動を表す。これらの線のうちのそれぞれは、その移動をトリガするＵｋ／Ｘｋ値５０２によって標識される。
【００２４】
トレリス状態図の解釈の実施例は、図４の表および図５のトレリス状態図の両方を指す。図４は、Ｃｋ−１＝−１、Ｕｋ＝０、およびＸｋ＝−２であるとき、次いで、現在の状態が、−１（例えば、Ｃｋ＝−１）になるであろうことを示す。これは、トレリス状態図の上縁５０５によって図示される。同様に、Ｃｋ−１＝１、Ｕｋ＝０、およびＸｋ＝２であるとき、次いで、現在の状態が、１（例えば、Ｃｋ＝１）になるであろうことを示す。これは、トレリス状態図の底縁５０６によって図示される。
【００２５】
図５のトレリス状態図はまた、Ｃｋ−１＝−１、Ｕｋ＝１、およびＸｋ＝０であるとき、次いで、現在の状態が、１（例えば、Ｃｋ＝１）になるであろうことを示す。同様に、Ｃｋ−１＝１、Ｕｋ＝１、およびＸｋ＝０であるとき、次いで、現在の状態が、−１（例えば、Ｃｋ＝−１）になるであろうことを示す。
【００２６】
プログラムするための方法は、典型的な従来技術のＳＬＣプログラミングと比較して、ＳＬＣメモリプログラミング中の平均エネルギーの倍増をもたらし得る。例えば、２つのＳＬＣ状態に対する分布が、図１に示されるように、電圧−Ａおよび＋Ａを中心とすることを仮定すると、従来技術のプログラミング方法の平均信号電力は、Ａ２である。プログラムするための本方法のＸｋという平均信号電力は、（１／２）［４Ａ２＋０］＝２Ａ２であり、したがって、信号対雑音比を向上させる。
【００２７】
ビタビ検出器は、シーケンス検出器である。言い換えれば、それは、それらの個々のＸｋ出力に基づいて、個々のＵｋに関する決定を行わない。代わりに、それは、その決定を行うのに一連の過去のサンプルに依存する。ビタビ検出器の以下の説明では、Ｙｋは、Ｘｋの雑音が多いバージョンを表す。つまり、Ｙｋ＝Ｘｋ＋Ｎｋであり、式中、Ｎｋは、非揮発メモリ上のデータの記憶およびリトリーバルプロセスの一部としてＸｋに追加される、電子雑音である。各時間単位ｋにおいて、ビタビ検出は、分岐メトリック計算、パスメトリック更新、サバイバ交換、および決定解放といった、４つの演算を含む。
【００２８】
分岐メトリック計算を説明する際に、図５のトレリス状態図を参照し、一対の状態を接続する各縁５０５、５０６が、分岐である。Ｙｋがメモリから読み取られた後、（Ｙｋ−Ｘｋ）２が、トレリスのその段階内の各分岐について判定される。トレリスの各段階内に４つの遷移があり、分岐の集合であるトレリス段階が、状態Ｃｋ−１を状態Ｃｋに接続するため、それは、時間単位ｋにおける事柄の状態を表し、Ｂ１およびＢ２が、状態０から去る遷移を指し、Ｂ３およびＢ４が、状態１から去る遷移を指す、以下の４つの分岐メトリックが判定される。
Ｂ１＝（Ｙｋ＋２Ａ）２
Ｂ２＝（Ｙｋ−０）２
Ｂ３＝（Ｙｋ−０）２
Ｂ４＝（Ｙｋ−２Ａ）２
【００２９】
これらの数量を拡張し、各方程式から雑音項（Ｙ２）を破棄することにより、以下をもたらす。
Ｂ１＝４Ａｙｋ＋４Ａ２
Ｂ２＝０
Ｂ３＝０
Ｂ４＝−４Ａｙｋ＋４Ａ２
【００３０】
パスメトリックとも呼ばれる、状態メトリックとして知られている数量が、２つの状態と関連付けられる。この数量は、各時間単位ｋにおいて更新される。その事実を示すために、時間単位ｋにおける２つのパスメトリックは、それぞれ、Ｐ（０，ｋ）およびＰ（１，ｋ）によって表される。２つのパスメトリックは、時間単位０において０に初期化される。次いで、全時間単位ｋにおいて、２つの状態のうちのそれぞれについて、一方は状態０から、他方は状態１からである、２つの別個の候補パスがあることが観察される。時間ｋにおいて状態０で終端する２つの候補パスのメトリックは、表記ＣＰ１（０，ｋ）およびＣＰ２（０，ｋ）によって表され、以下として計算される。
ＣＰ１（０，ｋ）＝Ｐ（０，ｋ−１）＋Ｂ１
ＣＰ２（０，ｋ）＝Ｐ（１，ｋ−１）＋Ｂ３
【００３１】
次いで、上記の２つの候補のうちのどちらのほうが小さいかが判定される。小さいほうの候補が、状態０への更新されたパスとして選択され、後に、時間ｋにおける状態０へのパスメトリック、Ｐ（０，ｋ）と呼ばれる。Ｐ（１，ｋ−１）を生じさせるように、同一の演算が状態１に行われる。次いで、ＣＰ１（１，ｋ）＝Ｐ（０，ｋ−１）＋Ｂ２とＣＰ２（１，ｋ）＝Ｐ（１，ｋ−１）＋Ｂ４の間で比較が行われる。次いで、最小値が、時間ｋにおける状態１への更新されたパスメトリックとして選択され、後に、Ｐ（１，ｋ）として表される。
【００３２】
決定プロセスの開始時に、レジスタのアレイが、２つの状態のうちのそれぞれに割り当てられる。これらのレジスタは、典型的には、サバイバアレイまたは単純にサバイバとして知られている。サバイバのうちのそれぞれの中のレジスタの数は、パスメモリと呼ばれる。パスメモリが２０である場合、状態０のサバイバは、Ｓ０＝Ｓ０（０）、Ｓ０（１）、…Ｓ０（１９）によって表され、状態１のサバイバは、Ｓ１＝Ｓ１（０）、Ｓ１（１）、…、Ｓ１（１９）によって表される。
【００３３】
パスメトリック更新段階では、いったん所与の状態に対する更新されたパスメトリックが生成されると、その状態になる選択された分岐上のＵｋ標識が、対応するサバイバにプッシュされる。例えば、状態０に対する更新されたパスメトリックＰ（０，ｋ）を生成するとき、ＣＰ１（０，ｋ）が選択された場合、Ｕｋ標識は、Ｂ１分岐にプッシュされる（例えば、Ｓ０の中への０）。ＣＰ２（０，ｋ）が選択された場合、Ｕｋ標識は、Ｂ３分岐にプッシュされる（例えば、Ｓ０の中への１）。
【００３４】
同様に、状態１に対する更新されたパスメトリックＰ（１，ｋ）を生成するとき、ＣＰ１（１，ｋ）が獲得された場合、Ｕｋ標識は、Ｂ２分岐にプッシュされる（例えば、Ｓ１の中への１）。ＣＰ２（１，ｋ）が獲得された場合、Ｕｋ標識は、Ｂ４分岐にプッシュされる（例えば、Ｓ１の中への０）。
【００３５】
このプロセスは、パスメモリが２０である場合、２０時間単位を超えて進み続けることができない。それは、パスメモリの長さによって制限される。その時点で、サバイバは満杯であり、いかなる新しいＵｋもサバイバにプッシュされることができない。これは、決定解放が起こるときである。最も古いコンテンツが、サバイバから、状態０に対するサバイバＳ０（０）および状態１に対するＳ１（０）にプッシュされる。さらに、各サバイバの全ての残りのコンテンツは、状態０に対するＳ０（０）および状態１に対するＳ１（０）の中の空のスロットをうまく利用するように、左側に１つだけ後ろにプッシュされる。これは、新たに入ってくるＵｋのための場所を作成する。新しいＵｋは、状態０に対する第１９のレジスタＳ０（１９）および状態１に対するＳ１（１９）にプッシュされる。ここで、これらは、各状態に対する新しいサバイバになる。
【００３６】
Ｓ０からプッシュされた１つ、およびＳ１からプッシュされたもう１つといった、サバイバの２つのプッシュされたコンテンツが、ここで利用可能である。これら２つのうちの１つは、決定として選択され、解放される。演繹的に、決定を解放する、Ｓ０またはＳ１のどちらのサバイバが所望されるかが、決定される。このサバイバは、決定解放のために全体を通して使用される。サバイバが満杯になった後にのみ、第１の決定解放が起こるため、この実施例では２０である、パスメモリと等しい待ち時間がある。言い換えれば、時間２０において解放される決定は、約Ｕ０であり、時間２１において解放される決定は、約Ｕ１であり、時間２２において解放される決定は、約Ｕ２である、等である。
【００３７】
従来技術では、決定は、実質的に瞬間的に行われる。言い換えれば、Ｙｋが観察されるとすぐに、対応するＵｋが決定される。ビタビ検出器は、現在の状態になる、横断されるパスの履歴を考慮することによって、遅延を伴って決定を行う。これは、あるパスが非合法であり、正しい一連のＵｋがそれを取らないであろうことを認識させる。瞬間スナップショット決定は、パス履歴を無視するため、間違ったパスを正しいパスと区別できない場合がある。したがって、ビタビ検出器が、より良好な雑音排除性という利点を提供することができる。
【００３８】
図６は、図２で図示されるようなメモリアレイアーキテクチャを備えることができ、本明細書で開示されるプログラミング方法を使用してプログラムすることができる、メモリデバイス６００の機能ブロック図を図示する。メモリデバイス６００は、外部コントローラ６１０に結合される。外部コントローラ６１０は、マイクロプロセッサまたは何らかの他のタイプのコントローラであってもよい。メモリデバイス６００および外部コントローラ６１０は、システム６２０の一部を形成する。
【００３９】
メモリデバイス６００は、メモリセル（例えば、非揮発メモリセル）のアレイ６３０を含む。メモリアレイ６３０は、ワードライン行およびビットライン列のバンクに配列される。一実施形態では、メモリアレイ６３０の列は、メモリセルの一連のストリングを備える。
【００４０】
アドレスバッファ回路６４０が、入出力回路６６０を通して提供されるアドレス信号をラッチするように提供される。アドレス信号は、メモリアレイ６３０にアクセスするように、行デコーダ６４４および列デコーダ６４６によって受信および復号される。
【００４１】
メモリデバイス６００は、感知回路６５０を使用して、メモリアレイ列内の電圧または電流変化を感知することによって、メモリアレイ６３０の中のデータを読み取る。感知回路６５０は、一実施形態では、メモリアレイ６３０から一列のデータを読み取り、ラッチするように結合される。感知回路６５０は、以前に説明されたように、感知回路、ならびにプログラム検証動作を行うための他の回路を含む。データは、コントローラ６１０との複数のデータ接続６６２上の双方向データ通信ならびにアドレス通信のために、入出力回路６６０を通して入力および出力される。書き込み回路６５５が、データをメモリアレイに書き込むように提供される。
【００４２】
内部コントローラ（例えば、制御回路および／またはファームウェア）６７０が、外部コントローラ６１０から制御インターフェース６７２上に提供された信号を復号する。これらの信号は、データ読み取り、データ書き込み（プログラム）、および消去動作を含む、メモリアレイ６３０上の動作を制御するために使用される。内部コントローラ６７０は、状態機械、シーケンサ、またはメモリ制御信号を生成する何らかの他のタイプのコントローラであってもよい。一実施形態では、内部コントローラ６７０は、本開示のプログラミング実施形態の実行を制御するように構成される。代替実施形態では、外部コントローラ６１０は、本開示のプログラミング実施形態の実行を制御するように構成される。
【００４３】
図６に示されるメモリデバイスは、メモリの特徴の基礎的な理解に役立つよう、簡略化されている。内部回路のより詳細な理解およびフラッシュメモリの機能は、当業者に公知である。
【００４４】
＜結論＞
要約すると、プログラム動作の１つ以上の実施形態は、メモリセルをプログラムする際に、向上した信号対雑音比を提供することができる。これは、ＳＬＣメモリデバイスの２つの元のデータ状態を、少なくとも３つの異なるプログラム状態に符号化し、したがって、プログラムされた信号電力を増加させることによって、達成することができる。
【００４５】
本明細書において特定の実施形態が示され、記載されているが、同じ目的を実現するように考慮されている構成を、示された特定の実施形態に置き換えてもよいことが、当業者に理解されるであろう。本発明の多くの応用例が当業者に明らかであろう。したがって、本出願は、本発明の応用例または変形例をカバーすることを意図するものである。
【図１】
0005901746.tif 000002
【図１Ｂ】
0005901746.tif 000003
【図２】
0005901746.tif 000004
【図３】
0005901746.tif 000005
【図４】
0005901746.tif 000006
【図５】
0005901746.tif 000007
【図６】
0005901746.tif 000008