JP5555840B2 - 拡張マルチレベルメモリ - Google Patents

拡張マルチレベルメモリ Download PDF

Info

Publication number
JP5555840B2
JP5555840B2 JP2011106289A JP2011106289A JP5555840B2 JP 5555840 B2 JP5555840 B2 JP 5555840B2 JP 2011106289 A JP2011106289 A JP 2011106289A JP 2011106289 A JP2011106289 A JP 2011106289A JP 5555840 B2 JP5555840 B2 JP 5555840B2
Authority
JP
Japan
Prior art keywords
memory cell
threshold voltage
memory device
encoding
memory cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011106289A
Other languages
English (en)
Other versions
JP2011243198A (ja
Inventor
マルコ,マッカローネ
グウィード,ロマッツィ
イラーリア,モッタ
Original Assignee
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2011243198A publication Critical patent/JP2011243198A/ja
Application granted granted Critical
Publication of JP5555840B2 publication Critical patent/JP5555840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Description

本発明は、半導体メモリに関し、より詳細には不揮発性マルチレベルメモリに関する。
メモリデバイスは、いくつか例を挙げると、コンピュータ、携帯電話、PDA、情報ロガー、及びナビゲーション装置等の多様な電子機器に用いられる。このような電子機器の中で、いくつか例を挙げると、NANDまたはNORフラッシュメモリ、SRAM、DRAM、及び相変化メモリ等の様々な型式の不揮発性メモリデバイスが用いられてもよい。一般に、書き込み処理またはプログラミング処理は、このようなメモリデバイスに情報を記憶するように用いることができるが、読み出し処理は記憶された情報を取り出すように用いることができる。
プログラム可能なメモリの記憶密度は、メモリセルの空間占有を低減するようにメモリセルの物理的なサイズを縮小することによって増加させることができ、例えば、メモリを集積しているダイ上の同じシリコン領域上により多数のメモリセルを形成することができるようになる。記憶密度を上げる他の方法は、メモリセルが1ビット以上の情報を記憶することができる「マルチレベル」と呼ばれるプログラミングスキームの使用を含んでもよい。特に、このようなマルチレベルプログラミングスキームを用いることによって、メモリセルは、各々が対応する論理値を含む多数の異なるプログラミング状態の任意の1つにプログラムされることができる。メモリセルのプログラミング状態は、メモリセル内に含まれたトランジスタの閾値電圧によって定義されてもよい。例えば、2ビットを記憶するように適合させたメモリセルに対して、メモリセルの閾値電圧は4つの異なる値の1つを与えてもよい。特定の例において、このような記憶されたビット対の論理値は、閾値電圧の増加に対応するバイナリシークエンス“11”,“10”,“01”,“00”に対応してもよい。ここで論理値“11”は、最も低い閾値電圧(消去状態)を持つ状態に関連してもよく、他の状態は閾値電圧の増加を持つ状態の継承に関連していてもよい。しかしながら、このようなメモリに固有の実質的に不可避な許容誤差のために、4つの所望値のうち1つに正確にプログラムされる代わりに、プログラムされたメモリセルの閾値電圧は4つのそれぞれの「母集団」とも呼ばれるプログラム分布に分布されてもよい。したがって、各プログラミング状態は、単一の閾値電圧に関連するのではなく、代わりに、例えば、それぞれのプログラム分布によって順次定義されたそれぞれの閾値電圧の範囲に関連してもよい。
図1は、本発明の実施形態に係るメモリデバイスを概略的に示すブロック図である。 図2Aは、本発明の実施形態に係る符号化ユニットを示すブロック図である。 図2Bは、本発明の実施形態に係る線形結合ユニットを示すブロック図である。 図2Cは、本発明の実施形態に係る線形結合を格子状(trellis)に示す図である。 図3は、本発明の実施形態に係るプログラム分布及びこのようなプログラム分布のパーティションを示す図である。 図4は、本発明の他の実施形態を格子状に示す図である。 図5Aは、本発明の実施形態に係る検出回路を概略的に示す図である。 図5Bは、本発明の実施形態に係る検出回路のタイミングを示す図である。 図6は、本発明の実施形態に係る復号化ユニットを概略的に示すブロック図である。 図7Aは、本発明の実施形態に係るプログラム分布及びこのようなプログラム分布の距離関数を示す図である。 図7Bは、本発明の実施形態に係る距離関数を実装したルックアップテーブルである。 図7Cは、本発明の実施形態に係るプログラム分布及びこのような距離値を示す図である。 図8は、本発明の他の実施形態を格子状に示す図である。 図9Aは、本発明の実施形態に係る符号化ユニットを示すブロック図である。 図9Bは、本発明の実施形態に係る線形結合ユニットを示すブロック図である。 図9Cは、本発明の実施形態に係る部分集合に区分されたプログラミングを概略的に示す図である。 図10は、本発明の実施形態に係るコンピュータシステム及びメモリデバイスを概略的に示す図である。
非限定的かつ非網羅的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
本明細書全体を通して、「一実施形態」または「実施形態」を参照することは、特別な特徴、構造、特性が、請求項に記載された発明の主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」または「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特徴、構造、または特性は、1以上の実施形態において組み合わされてもよい。
実施形態において、メモリデバイスの記憶密度は、1ビットの情報を表すのに2以上のプログラミング状態を記憶することが可能なマルチレベルメモリセルを組み込むことによって、増加させることができる。個々のマルチレベルメモリセルにプログラムされてもよい数多くの異なるプログラミング状態を選択する前に、メモリデバイスの設計者は、メモリデバイスの供給電源電圧値及びメモリデバイスに固有の許容誤差パラメータを含むいくつかの要素を考慮してもよい。例えば、供給電源電圧値は、プログラム分布集合によって広がる電圧範囲の上位レベルを定義してもよく、各プログラム分布の幅は、メモリデバイスに固有の許容誤差パラメータに関係していてもよい。実施形態において、記憶密度を更に増加させるアプローチは、記号を与える畳み込み符号により情報を符号化することによって情報を記憶することと、1以上のマルチレベルメモリセル内にこのような記号を記憶することとを含んでもよい。このような記憶された情報を取り出すことは、いわゆる「ソフトディシジョン」と、畳み込み符号化とをこのような記憶された記号に適用することとを用いてもよい。他の実施形態において、記憶密度を増加させるアプローチは、メモリデバイスのメモリセル内に情報を記憶することの前に、誤り訂正符号(ECC)を用いて情報を処理することを含んでもよい。以下に記載するように、もし隣接プログラム分布の間で部分的に重なり合うようにプログラム分布の数が比較的十分に高くても、このようにソフトディシジョン・アプローチを用いてメモリセルのコンテンツを読み出すことによって、誤って読み出す可能性を低減することができる。
実施形態において、メモリデバイスは、プログラム分布の規則正しいシーケンス下における1つのプログラム分布にセットされた閾値電圧を持つ複数のメモリセルから構成できる。このようなメモリデバイスはターゲットメモリセルの集合内に記憶される第1入力情報を受信することができる。第1の入力情報は、第1の入力情報を対応する第2の入力情報に符号化する第1のビット数を含んでもよい。第2の入力情報は、第1のビット数より高い第2のビット数を含んでもよい。メモリデバイスは、第2の入力情報に従うシーケンスのプログラム分布の選択された集合に、ターゲットメモリセル集合の閾値電圧を設定するようにプログラムされてもよい。シーケンスのプログラム分布は部分集合に分類されてもよく、部分集合はシーケンス内の連続したプログラム分布である必要はない複数のプログラム分布を含んでもよい。第2の入力情報は、以下に詳細に記載するように、プログラム分布集合が属する部分集合を特定する部分集合情報部を含んでもよい。
図1は、本発明の実施形態に係るメモリ100を概略的に示すブロック図である。特に、不揮発性半導体メモリ100は、例えば、電気的にプログラム可能な不揮発性フラッシュメモリから構成されてもよい。メモリ100は、半導体物質のチップ(図示せず)内に集積されてもよく、例えば、複数の行及び列内にシーケンスされた情報を記憶するメモリセル110の行列105を含んでもよい。一実施形態において、メモリセル110は、電子によって荷電される導電フローティングゲート等の電荷保存素子を持つN‐チャンネルMOSトランジスタから構成されてもよいが、請求項に記載した内容はこの点に限定されるものではない。
メモリ100は、マルチレベルメモリから構成できる。消去された状態において、メモリセル110は、低い閾値電圧を持つことができる。メモリセル110は、特定量の電荷をメモリセル110のフローティングゲート内に置くことによって多数の状態の中で任意の1つにプログラムされることができる。このような状態は、前の状態の電荷量に比べて増加したフローティングゲートの電荷量の結果により増加した閾値電圧によって特徴付けられてもよい。特定の実施形態において、メモリ100はNANDアーキテクチャから構成されてもよく、それぞれのメモリセルストリングを形成するように互いに一連に接続された8グループ、16グループ、またはそれ以上のグループのメモリセル110等のグループを含んでもよい。同じ行列の列に属する異なるメモリセルストリングは、それぞれのビット線BL112に互いに並列に接続されてもよいが、請求項に記載した内容はそのように限定されるものではない。
メモリ100は、所望のメモリセル110またはメモリセル110のグループを選択するアドレス符号ADRを受信することができる。アドレス符号ADRは、セレクタ回路と、例えば、ページバッファ回路(図示せず)等の読み出し‐プログラム回路とを含むことができる読み出し‐プログラムユニット115に与えられてもよい。このようなセレクタ回路は、アドレスされたメモリセル110を選択することができ、一方、読み出し‐プログラム回路は、例えばメモリセル110上で行われてもよい読み出し‐プログラム操作を実行することができる。
メモリ100において、メモリセル110に記憶される前に情報を符号化してもよい。この目的のために、本発明の実施形態によれば、メモリ100は、メモリセル110に記憶される入力信号DINに対して符号化動作をすることと、メモリセル110から読み出された符号化された出力信号DCOUTに対して復号化動作をすることとを実行する符号化‐復号化ユニット120を含んでもよい。特に、符号化‐復号化ユニット120は、メモリ100の入出力端末150に順次結合されてもよい入出力バッファ140から入力信号DINを受信する符号化ユニット130を含むことができる。一実施形態において、符号化‐復号化ユニット120は、入力信号DINに対して符号化動作をすることを行うとともに、対応する符号化された入力信号DCINを読み出し‐プログラムユニット115に与えることができる。そして、少なくとも一部がアドレス符号ADRに基づいて、符号化された入力信号DCINは、行列105の対応するメモリセル110に記憶されてもよい。符号化‐復号化ユニット120は更に、アドレスされたメモリセル110から読み出された符号化された出力信号DCOUTを読み出し‐プログラムユニット115から受信する復号化ユニット160を含み、復号化動作を実行し、及び/または、(復号化された)対応する出力信号DCOUTを入出力バッファ140に与えることができる。
実施形態において、システムは、メモリ100等のメモリデバイスから構成されてもよい。特定の実装例において、メモリデバイスは、1以上のマルチレベルメモリセルに渡って情報を表す信号を記憶するメモリアレイと、情報の値を決定するためにメモリアレイにソフトディシジョン及び畳み込み符号化を適用するコントローラとから構成されてもよい。このようなシステムは、メモリデバイスを作動させるメモリデバイスコントローラと、1以上のアプリケーションをホストするともに、ホストがメモリアレイにアクセスするためにメモリデバイスコントローラに対して書き込みコマンド及び/または読み出しコマンドを開始するプロセッサとから更に構成されてもよい。勿論、このようなメモリデバイスの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
図2Aは、本発明の実施形態に係る符号化ユニット130を示すブロック図である。特定の例において、メモリセル110は、各々3ビットの情報を記憶するようにプログラムされることができる。勿論、他の実装例において他のビット数が記憶されてもよい。本明細書において、例示は、特定の数、値、その他を含む特定の実装例について記載すると言ってもよい。しかしながら、このような詳細事項は単に説明する目的のためであって、請求項の内容はそのように限定されるものではない。アドレスされたメモリセル110に記憶される入力信号DINは、3ビットストリングa1(k),a2(k),a3(k)によって表されることができ、ここで“k”は整数からなるインデックスである。例えば、クロック信号(図5B)によって定義されることができるメモリ100の動作の各k番目のサイクルにおいて、新しいビットストリングa1(k),a2(k),a3(k)は符号化される符号化ユニット130に与えられてもよい。特定のメモリアクセスにおいて(例えば、k番目の特定の動作において)プログラムされるメモリセル110の数は1より大きくてもよい。しかしながら、簡潔に説明すると、現在記載した実装例は1サイクルの動作においてアクセスされることができる単一のメモリセル110を含む。
符号化ユニット130は、符号化された入力信号DCINを得る3ビットストリングから構成されている入力信号DINを符号化することができる。本発明の実施形態によれば、符号化ユニット130は、入力信号DINに冗長性を加える線形符号化処理を用いる畳み込み符号器から構成されてもよい。一実装例において、このような線形符号化処理は、ビタビ処理から構成されてもよいが、請求項の内容はそのように限定されるものではない。符号化ユニット130によって導入された冗長性は、入力信号DINを形成する各3ビットストリングa1(k),a2(k),a3(k)が、符号化された入力信号DCINを形成している対応する4ビット記号b1(k),b2(k),b3(k),b4(k)に符号化されることができるように、1ビットを含んでもよい。そして、このような4ビット記号b1(k),b2(k),b3(k),b4(k)は、例えば、アドレス符号ADRによってアドレスされたメモリセル110に記憶される読み出し‐プログラムユニット115に与えられてもよい。以下に更に詳細に記載するように、各メモリセル110は、例えば、2=16個の異なる状態にプログラムされてもよい。更に、このような例示は単に説明する目的のためであって、請求項の内容はそのように限定されるものではない。符号化ユニット130は、例えば、ビットa3(k)からビットb3(k)及びビットb4(k)を生成する有限状態機械から構成されている線形結合ユニット205を含んでもよい。他方で、ビットb1(k)はビットa1(k)に一致してもよく、ビットb2(k)はビットa2(k)に一致してもよい。各k番目の動作において、ビットb3(k)及びビットb4(k)は、少なくとも一部において特定の動作サイクルの間に線形結合ユニット205に与えられた信号(例えば、ビットa3(k))に基づいて計算されてもよく、少なくとも一部において、例えば、(本明細書では、(k−1)番目という表記によって示された)前の動作サイクルの間に線形結合ユニット205に与えられた情報によって推定された値に順次依存してもよい(有限状態機械である)線形結合ユニット205の内部状態に基づいて計算されてもよい。勿論、このような符号化ユニットの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
図2Bは、本発明の実施形態に係る線形結合ユニット205を示すブロック図である。線形結合ユニット205は、3つの遅延素子210,215,220、及び/または、バイナリ加算器225を含んでもよい。このような各遅延素子は、メモリ100の動作サイクルの間にビットを受信するとともにビットの値を記憶することができる。このように、メモリ100の各k番目の動作において、遅延素子は、以前の(k−1)番目のサイクルの動作において受信した値を表す出力信号を与えることができる。例えば、遅延素子210は、ビットa3(k)を受信するとともにビットa3(k)を記憶することができる。遅延素子210は、遅延素子215の入力端末(回路ノードB)に接続された出力端末を含んでもよい。遅延素子215は、バイナリ加算器の第1の入力端末(回路ノードD)に接続された出力端末を順次持つ遅延素子220の入力端末(回路ノードC)に接続された出力端末を含んでもよい。バイナリ加算器225は、ノードBに接続された第2の入力端末と、ビットa3(k)を受信する第3入力端末とを含んでもよい。線形結合ユニット205は、ビットb3(k)を与えるためのノードCに接続された第1の出力端末と、ビットb4(k)を与えるためのバイナリ加算器225の出力端末に接続された第2の出力端末とを含んでもよい。勿論、このような線形結合器の詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
実装例において、符号化ユニット130によって実行された符号化動作は、線形結合ユニット205によって定義されることができる特定のECCを含んでもよい。図2Cは、本発明の実施形態に係る線形結合ユニット205から生成される符号構造を表す格子図230を示す。特に、格子図230は、少なくとも一部において、その入力において受信したビットa3(k)の値に依存している線形結合ユニット205の内部状態の進行について示すことができる。
線形結合ユニット205の内部状態集合は、回路ノードB,C,Dによって与えられた値によって定義されてもよく、それゆえ、例えば、2=8個の異なる内部状態を含んでもよい。格子図230において、内部状態は参照S(k),S(k+1)によって特定され、ここでi=0,1,…,7である。特に、参照S(k)は、一般的なメモリ100のk番目の動作サイクルにおける線形結合ユニット205によって与えられた内部状態に対応してもよく、一方、参照S(k+1)は、後続の(k+1)番目の動作サイクルにおいて与えられた内部状態に対応してもよい。このような格子図は勿論、単なる例示であって、請求項の内容はそのように限定されるものではない。
格子図230は、少なくとも一部においてビットa3(k)の値に基づいて生じる線形結合ユニット205の「現在」の内部状態S(k)及び「将来」の内部状態S(k+1)の間の許容可能な遷移を示す。より詳細には、現在の内部状態S(k)は、2つの異なる将来の内部状態S(k)またはS(k)に遷移することができる。例えば、もしビットa3(k)が“0“に等しいならば、格子図230は、内部状態S(k)が遷移矢線tij(実線で示す)を介して対応する内部状態S(k+1)に遷移できることを示す。他方で、もしビットa3(k)が“1”に等しいならば、内部状態S(k)は、後続の遷移矢印t’il(破線で示す)を介して対応する内部状態S(k+1)に遷移することができる。許容可能な遷移(例えば、遷移矢印tij,t’ilによって示す)は、符号構造を定義することができる。許容可能な遷移は、線形結合ユニット205の構造によって順次定義することができる。もし線形結合ユニット205の構造を変化するならば、遅延素子及び/またはバイナリ加算器の間の接続を変更することによって、例えば、格子図230の許容可能な遷移及び/または対応する符号構造はそれに応じて変化してもよい。
格子図230によって定義された符号を用いて、符号化ユニット130によって生成された4ビット記号b1(k),b2(k),b3(k),b4(k)を記憶するために、アドレスされたメモリセル110は、それぞれの16個のプログラム分布D0,D1,…,D15に対応して、16個の異なる状態の中から対応する1つにプログラムされることができる。少なくとも一部において、ビットb1(k),b2(k),b3(k),b4(k)によって与えられた値に基づいて、16個のプログラム分布D0,D1,…,D15を図3に示す。このようなプログラム分布D0,D1,…,D15は、それぞれの幅のために互いにオーバーラップしてもよく、少なくとも一部においてメモリ100の固有の許容誤差に依存してもよい。この点において、プログラム分布D0,D1,…,D15は、図3に一定の比率に縮尺して示してはいるわけではない。
本発明の実施形態によれば、ビットb1(k),b2(k),b3(k),b4(k)と様々なプログラム分布D0,D1,…,D15との間の組み合わせは、以下のように区分される部分集合を含むことができる。例えば、16個のプログラム分布D0,D1,…,D15は、それぞれ4個のプログラム分布を含む4つの異なる部分集合B0,B1,B2,B3に区分することができる。部分集合は、ビットb3(k)及びb4(k)の値に対応することによって識別することができる。例えば、部分集合B0は、b3(k)=0,b4(k)=0に対応することができるとともにプログラム分布D0,D4,D8,D12を含むことができ、部分集合B1は、b3(k)=0,b4(k)=1に対応することができるとともにプログラム分布D1,D5,D9,D13を含むことができ、部分集合B2は、b3(k)=1,b4(k)=0に対応することができるとともにプログラム分布D2,D6,D10,D14を含むことができ、部分集合B3は、b3(k)=1,b4(k)=1に対応することができるとともにプログラム分布D3,D7,D11,D15を含むことができる。
部分集合B0,B1,B2,B3において、4つのプログラム分布は、少なくとも一部において、ビットb1(k),b2(k)に基づいて特定することができる。例えば、第1の部分集合のプログラム分布D0,D1,D2,D3は、b1(k)=0,b2(k)=0に対応してもよく、第2の分布D4,D5,D6,D7は、b1(k)=1,b2(k)=0に対応してもよく、第3の分布D8,D9,D10,D11は、b1(k)=0,b2(k)=1に対応してもよく、第3の分布D12,D13,D14,D15は、b1(k)=1,b2(k)=1に対応してもよい。更に、部分集合B0,B1,B2,B3において、隣接するプログラム分布間の距離は、このように同じ部分集合のプログラム分布の間のオーバーラップを避けるように増加させることができる。
ビットb3(k),b4(k)と4つの部分集合B0,B1,B2,B3とを結び付ける組み合わせを確立し、図2の格子図230を用いて線形結合ユニット205の内部状態S(k)の遷移を調べると、どの部分集合が選択されたかを特定の遷移に対して決定することが可能になる。例えば、線形結合ユニット205が状態S(k)である場合、及び、k番目の動作サイクルにおいて受信したビットa3(k)の値が“0”に等しい場合、内部状態はS(k+1)に遷移することができるとともに、ビットb3(k),b4(k)はそれぞれ値“0”,“0”と与えることができる。内部状態は、例えば、遷移矢線t00を通じて遷移することができる。このような値の対は、部分集合B0に対応することができる。代わりにビットa3(k)の値が“1”に等しい場合、内部状態は遷移矢印t’01を通じてS(k+1)に遷移することができるとともに、ビットb3(k),b4(k)はそれぞれ値“1”,“0”と与えることができるので、選択した部分集合はB2から構成することができる。勿論、このようなメモリデバイスの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
図4は、本発明の他の実施形態を格子状に示す図である。特定の例において、12ビットの情報のシーケンスは、4つのメモリセル110に記憶されてもよい。このようなシーケンスは、4つの連続する動作サイクルの間に受信された入力信号DINの4つの部分から構成されてもよい。特に、サイクル“k”において、入力信号DINは、文字列a1(k)=0,a2(k)=1,a3(k)=0に対応することができ、サイクル“k+1”において、入力信号DINは、文字列a1(k+1)=0,a2(k+1)=1,a3(k+1)=1に対応することができ、サイクル“k+2”において、入力信号DINは、文字列a1(k+2)=1,a2(k+2)=0,a3(k+2)=1に対応することができ、サイクル“k+3”において、入力信号DINは、文字列a1(k+3)=0,a2(k+3)=0,a3(k+3)=0に対応することができる。線形結合ユニット205の初期の内部状態はS(k)であってもよい。勿論、このような格子図は単なる例示であって、請求項の内容はそのように制限されるものではない。
k番目の動作サイクルにおいて、文字列a1(k)=0,a2(k)=1,a3(k)=0を、符号化ユニット130に与えることができる。対応する格子図405によって示すことができるように、後続の(k+1)番目の動作サイクルにおいて、線形結合ユニット205は、遷移矢線t00に後続する同じ内部状態S(k+1)を保持することができる。第1のメモリセル110に記憶される、符号化ユニット130によって生成された対応する4ビットの記号は、例えば、部分集合B0に属する分布D8に対応することができるb1(k)=0,b2(k)=1,b3(k)=0,b4(k)=0であってもよい。
(k+1)番目の動作サイクルにおいて、文字列a1(k+1)=0,a2(k+1)=1,a3(k+1)=1を、符号化ユニット130に与えることができる。対応する格子図410によって示すことができるように、線形結合ユニット205は、遷移矢線t’01を介して内部状態S(k+2)にスイッチすることができる。それゆえ、第1のメモリセル110に記憶される、符号化ユニット130によって生成された対応する4ビットの記号は、部分集合B2に属する分布D10に対応するb1(k+1)=0,b2(k+1)=1,b3(k+1)=1,b4(k+1)=0であってもよい。
(k+2)番目の動作サイクルにおいて、もし文字列a1(k+2)=1,a2(k+2)=0,a3(k+2)=1が符号化ユニット130に与えられた場合、線形結合ユニット205は、遷移矢線t’46(格子図415を参照)を介して内部状態S(k+2)から内部状態S(k+3)にスイッチすることができる。それゆえ、第1のメモリセル110に記憶される、符号化ユニット130によって生成された対応する4ビットの記号は、部分集合B0に属する分布D4に対応するb1(k+2)=1,b2(k+2)=0,b3(k+2)=0,b4(k+2)=0であってもよい。
最後に、(k+3)番目の動作サイクルにおいて、もし文字列a1(k+3)=0,a2(k+3)=0,a3(k+2)=0が符号化ユニット130に与えられた場合、線形結合ユニット205は、遷移矢線t63(格子図420を参照)を介して内部状態S6(k+3)から内部状態S(k+4)にスイッチすることができる。それゆえ、第1のメモリセル110に記憶される、符号化ユニット130によって生成された対応する4ビットの記号は、部分集合B3に属する分布D3に対応するb1(k+3)=0,b2(k+3)=0,b3(k+3)=1,b4(k+3)=1であってもよい。
したがって、符号化ユニット130によって実行される符号化は、先行の動作サイクルにおいて受信した入力信号DINの履歴を考慮することができる符号化パスを介して、各記号を符号化ユニット130によって生成することができるように、畳み込み符号を用いてもよい。例えば、前述の例を参照すると、入力信号DINのシーケンスは、符号化パスS(k)−S(k+1)−S(k+2)−S(k+3)−S(k+4)によって符号化されていてもよい。4ビットの記号b1(k+3),b2(k+3),b3(k+3),b4(k+3)は、内部状態S(k)から開始して3回目の動作サイクル後に順次到着した内部状態S(k+3)から開始して計算されていてもよい。もし、例えば、先行の3つの動作サイクルの間に受信した入力信号DINのシーケンスが異なる場合、符号化パスは異なっていてもよいとともに、それゆえ結合ユニット205の内部状態はS(k+3)と異なっていてもよい。
実施形態において、アドレスされたメモリセル110のグループに記憶されたビット情報は、読み出し‐プログラムユニット115によって検出された符号化された出力記号DCOUT(図1)上のソフトディシジョンシステムを用いて取り出されてもよい。より詳細には、読み出し‐プログラムユニット115によって与えられた符号化された出力信号DCOUTは、例えば、アドレスされたメモリセル110の閾値電圧を示す数字のデジタルシーケンスから構成されてもよい。例えば、エラーの可能性が低いような十分な信頼度を持つソフトディシジョンシステムを用いて記憶したビット情報を取り出すために、読み出し‐プログラムユニット115によって検出された閾値電圧は、相対的高精度になる相対的高解像度を持つことができる。
例えば、アドレスされたメモリセル110の閾値電圧は、アドレスされたメモリセルゲート端末に線形電圧ランプを増加させることができるとともに、メモリセルがターンオンする時間を回路が測定することができる電圧ランプ読み出しスキームによって検出されてもよい。一実装例において、メモリセル110の閾値電圧を検出することは、例えば図5に示す検出回路500を用いてもよい。検出回路500は、読み出し‐プログラムユニット115の一部から構成されてもよい。検出回路500は、アドレスされたメモリセル110に対応するビット線BLの電圧を示すビット線電圧Vblを受信する第1の入力端末を持つ電圧コンパレータ505を含んでもよい。電圧コンパレータ505はまた、参照電圧Vrefを受信する参照ジェネレータブロック510に連結した第2の入力端末と、ビット線電圧値Vblが参照電圧VREFよりも低下する場合にカウンター回路515にトリガー信号TRIGを与える出力端末とを含むことができる。本発明の実施形態によれば、カウンター回路515は、例えば、値“000000”から始まり、例えば、“111111”で終わる6ビットのシーケンスを生成することができる。カウンター回路515は、シーケンスの値が更新される頻度を定義するクロック信号CKを受信することができる。カウンター回路515の動作は、リセット信号RESET、スタート信号START、及びストップ信号STOPを通じて、制御ブロック520によって管理されてもよい。特に、カウンター回路515によって生成されたシーケンスは、アサートされたスタート信号STARTに応答して開始されてもよく、アサートされたストップ信号STOPに応答して停止してもよく、例えば、アサートされたリセット信号RESETに応答して(例えば、値“000000”に)リセットされてもよい。更に、電圧コンパレータ505によって生成されたトリガー信号TRIGはまた、制御ブロック520に与えられてもよい。勿論、このような検出回路の詳細は単なる例示であって、請求項の内容はそのように制限されるものではない。
制御ブロック520はまた、カウンター回路515によって生成されたシーケンスが(例えば、値“111111”に到達する)完全なサイクルを遂行した場合、カウンター回路515からオーバーフロー信号OFLを受信することができる。制御ブロック520はまた、アドレスされたメモリセル110のゲート端末に与えられる読み出し電圧Vrdを生成することができる読み出し電圧ジェネレータ525に結合してもよい。以下に詳細に記載するように、読み出し電圧Vrdは実行される動作に依存する異なる値を与えてもよい。検出回路500は、例えば、少なくとも一時的に8ビットを記憶するレジスタ530を更に含むことができる。レジスタ530の第1セクション535は、カウンター回路515によって生成された6ビットを記憶することができ、レジスタ530の第2セクションは、例えば、制御ブロック520によって生成された2ビットの文字列RNを記憶することができる。6入力のNORゲート545は、入力端末において第1セクション535に記憶された6ビットを受信するように、レジスタ530に連結されてもよい。NORゲート545の出力端末は、制御ブロック520に信号NO DATAを与えるように制御ブロック520に結合されてもよい。
図5Bは、本発明の実施形態に係る検出回路500のタイミング図550を示す。このようなタイミング図550は、例えば、アドレスされたメモリセル110の閾値電圧を検出する動作中に伴った前の信号について説明できる。検出回路500によって実行された検出動作は、対応する文字列RNの値によって識別された4以上の別個の相まで実行することができる。第1の相(RN=00)の開始において、制御ブロック520は、カウンター回路515をリセットするためにリセット信号RESETをアサートしてもよく、レジスタ530は第1セクション535において文字列“000000”を記憶してもよい。このことは、信号NO DATAは、例えば、高い値にセットされてもよいことを意味する。同時に、アドレスされたメモリセル110を含むメモリ文字列に結合されたビット線BLの電圧は、予充電回路(図示せず)を用いることによって、具体的な予充電電圧PVがもたらされてもよい。この点において、読み出し電圧ジェネレータ525によって生成された読み出し電圧Vrdは、第1の値にセットされてもよく、スタート信号STARTは、カウンター回路515によって数えられたシーケンスを開始するように、制御ブロック520によってアサートされてもよい。
読み出し電圧Vrdにバイアスされているアドレスされたメモリセル110のゲート端末において、ビット線BLは、少なくとも一部においてメモリセル110の閾値電圧に依存する放電率で放電を開始してもよい。より詳細には、もしメモリセル110が相対的に高い閾値電圧に対応するプログラム分布にプログラムされた場合、読み出し電圧Vrdの値は、アドレスされたメモリセル110をターンオンすることができないかもしれない。このような場合、ビット線BLは、アドレスされたメモリセル110に逆バイアス接合の存在に基づく実質的に不可避な漏電効果によって放電することができるため、放電率が特に低くなるかもしれない。他方、もし閾値電圧が十分に低い場合、例えば、対応する放電率の増加によって、読み出し電圧Vrdは(少なくとも部分的には)メモリセル110をターンオンすることができるようになる。
カウンター回路515は、ビット線BLが放電に使う時間を測定することができる。このような測定は、メモリセル110の閾値電圧を示すことができる。より詳細には、もしビット線の電圧Vblが参照電圧VREFよりも低下した場合、電圧コンパレータ505は、例えば、トリガー信号TRIGをアサートすることができる。トリガー信号のアサーションに応答して、制御ブロック520は、カウンター回路515によって生成されたシーケンスを停止させるように、ストップ信号STOPをアサートすることができる。そして、シーケンスによって与えられた値は、レジスタ530の第1セクション535に一時的に記憶されてもよい。レジスタ530に記憶された値は、アドレスされたメモリセル110の閾値電圧について比較的正確な方法で量を測る機会を与えることができる。もし値が“000000”とは異なる場合、NORゲート545によって生成された信号NO DATAは、閾値電圧が正しく検出されたことを信号で通信しながら、論理的に低い値にスイッチすることができる。
ビット線BLの放電率が非常に低い場合、カウンター回路515によって生成されたシーケンスは、例えば、ビット線の電圧Vblが参照電圧VREFに到達する前に、値“111111”に到達することができる。この場合、カウンター回路515は、オーバーフロー信号OFLをアサートすることができるとともに、制御ブロック520は、カウンター回路515を停止するストップ信号STOPをアサートすることができる。この点において、カウンター回路515と予充電電圧PVに戻されるビット線BLとをリセットするリセット信号RESETを再びアサートしている制御ブロック520で、第1の相(RN=01)が開始されてもよい。検出回路500は、読み出し電圧Vrdの値を増加させるものの、前述の動作を再び実行することができる。さらに、ビット配線BLの放電率が非常に低い場合、続いて、例えば、増加した読み出し電圧を用いて、第3の相(RN=10)または第4の相(RN=11)でさえ実行されてもよい。それゆえ、検出回路500によって実行された動作の検出結果は、デジタル文字列から構成されてもよい。特定の実装例において、このような文字列は、レジスタ530に記憶された8ビットのデジタル文字列から構成されてもよく、その値は、アドレスされたメモリセル110の閾値電圧を表すことができる。勿論、このような文字列及び上に記載した他の詳細な説明は単なる例示であって、請求項の内容はそのように制限されるものではない。
図5Bに示した例において、ビット線の電圧Vblは、第4の相の間にのみ参照電圧VREFより低下してもよく、それによって、比較的高いプログラム分布に対応することができる高い閾値電圧を示すことができる。例えば、レジスタ530に記憶されたそのような電圧は、メモリセル110がどのプログラム分布にプログラムされたかを判定することができないかもしれない。図3を参照して上に記載したように、16個のプログラム分布D0,D1,…,D15は、互いにオーバーラップしてもよく、それゆえ、検出回路500を用いて検出された具体的な閾値電圧は、2つの異なる隣接プログラム分布の1つに属していてもよい。この目的のために、以下に記載するように、更に動作が実行されてもよい。
閾値電圧が正しく検出された場合、レジスタ530に記憶された8ビットのデジタル文字列は復号化ユニット160に与えられる符号化された出力信号DCOUTを表すことができる。メモリセル110は、符号化ユニット130によって定義された符号によって具体的なプログラム分布にプログラムされていてもよく、それによって、前記8ビットの文字列によって与えられる情報(例えば、検出された閾値電圧の値)は、(復号化された)出力信号DOUTを得るように復号化されてもよい。検出回路500は、上に記載したように、アドレスされたメモリセル110の閾値電圧を、例えば、4つの手順を用いた8ビットの解像度で検出することができる。より詳細には、検出回路500は、2ビットの文字列RNによって識別された4つの別個の読み出しることを、それぞれ6ビットの解像度で実行することができるが、請求項の内容はこの点に限定されるものではない。各4つの読み出しることは、ビット線BLが再び予充電電圧PVになった後に行われることができる。
メモリセル110ごとに予充電している1つのビット線より多く含む必要がない閾値電圧を検出する代わりのアプローチは、上に記載した4つの読み出し動作の1つに実質的に類似する単独の読み出し動作を含むことができるが、例えば、8ビット解像度のように改良された解像度で行ってもよい。しかしながら、このような場合、このような単独の読み出し動作が実行される時間がより長くかかるので、検出することは、メモリセルの漏電効果によって妨げられる虞があり、それゆえ、ビット線BLの放電率は、主としてこのような漏電に基づくものである虞がある。
図6は、本発明の実施形態に係る復号化ユニット160を概略的に示すブロック図である。先に記載したように、復号化ユニット160は、対応する(復号化された)出力信号DOUTを得るように、符号化された出力信号DCOUTに対して復号化動作をすることを実行することができる。復号化ユニット160は、例えば、検出された閾値電圧を示している符号化された出力信号DCOUTを受信する計量ユニット605を含むことができる。復号化ユニット160は、検知された閾値電圧がそれぞれ部分集合B0,B1,B2,B3に属するプログラム分布に属する確率を測ることができる、4つの対応する計量値MR0,MR1,MR2,MR3をそれらに応じて生成することができる。メモリセル110が与えることができる閾値電圧のために(例えば、符号化された出力信号DCOUTの値のために)計量ユニット605は、例えば、少なくとも一部において、プログラム分布を区分した部分集合D0,D1,…,D15に基づいて、計量値MR0,MR1,MR2,MR3を計算することができる。勿論、このような復号化ユニットの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
本発明の実施形態によれば、どのように様々な計量値MR0,MR1,MR2,MR3が計量ユニット605によって計算されることができるかについて記載するために、以下に(どのようにプログラム分布D0,D1,…,D15が部分集合B0,B1,B2,B3に区分されたかについて説明した)図3と共に図7を参照する。図7Aは、各部分集合Bi(i=0,1,2,3)について、対応する計量関数FBiを示すものであり、FBiの傾向は、閾値電圧が部分集合Biに対応する確率に相関していてもよい。FBiの傾向は、少なくとも一部において、例えば、メモリセル110の閾値電圧110に依存してもよい。計量関数FBiは、プログラム分布の数と、プログラム分布が部分集合に分類された方法とを考慮して確立されてもよい。本発明の実施形態によれば、図7Aに説明した計量関数FBiは、部分集合Biに属する各プログラム分布の中央ピークに対応する最大値を表す周期関数から構成されてもよい。このような周期関数は、ピークに対応する値とは別に、閾値電圧として減少してもよい。例えば、計量関数FB0は、分布D0,D4,D8,及びD12の中央ピークに対応する4つの閾値電圧の最大値を表してもよい。それゆえ、これらの値が部分集合B0自身を形成するプログラム分布D0,D4,D8,D12の中央に対応することができるため、4つの閾値電圧は部分集合B0に属する最も高い確率を持つものであってもよい。更に、計量関数FB0は、プログラム分布D0,D4,D8,D12の中央から最も離れたそれらの閾値電圧に対して0に等しくてもよい。例えば、分布D2のピークに対応する閾値電圧は、部分集合B0に属する最も近いプログラム分布(例えば、D0及びD4)のピークから最も離れたところに配置されてもよく、それゆえ、0に近い部分集合B0に含まれたプログラム分布に属する確率を持つ。
本発明の実施形態によれば、計量関数FB0,FB1,FB2,FB3は、図7Bに示すルックアップテーブル710等のルックアップテーブルを用いて実装されてもよい。より詳細には、もし符号化された出力信号DCOUTが検出回路500を用いて(単に例示として、8ビットの解像度で)生成された場合、ルックアップテーブル710は、2=256行を含むことができ、各行はそれぞれの閾値電圧に対応していてもよい。ルックアップテーブル710の各行は、行に対応する閾値電圧に関係した4つの計量値MR0,MR1,MR2,MR3を含むことができる。例えば、特定の実装例によれば、4つの計量値MR0,MR1,MR2,MR3は、4つの対応する6ビットのデジタル文字列によって表すことができる。4つの6ビットデジタル文字列の値は、ルックアップテーブル710の行に含まれた閾値電圧における計量関数FB0,FB1,FB2,FB3によって与えられた値に比例してもよい。ルックアップテーブル710において、分布D0のピークに対応する閾値電圧は、DCOUT=“8”に対応するように生成されてもよい。その結果、ルックアップテーブル710の8行に含まれた計量値MR0は、“111111”に等しくてもよく、(プログラム分布D0から構成される)部分集合B0に属する閾値電圧が最も高い値である確率を示すことができる。ルックアップテーブル710は、対応する読み出し専用メモリ(ROM)に記憶されてもよく、または、例えば、計量値MR0,MR1,MR2,MR3のそれぞれ1つに専用の4つの異なるROMに記憶されてもよい。勿論、このような解像度のビット数は単なる例示であって、請求項の内容はそのように限定されるものではない。
図7Cを参照して説明する。図7Cは、本発明の実施形態による、読み出し‐プログラムユニット115によって生成された、4つの特定の符号化された出力信号DCOUTに応答して、計量ユニット605によって生成された計量値MR0,MR1,MR2,MR3について示す。受信された第1の値DCOUTは、値“135”から構成されてもよい。例えば、この値は、図4に示した例においてプログラムされた第1のメモリセル110によって与えられた閾値電圧に対応することができる。それゆえ、DCOUT=“135”は、部分集合B0に属することができるプログラム分布D8の中央ピークの近傍に位置する閾値電圧に対応することができる。この符号化された特定の出力信号DCOUTを用いて、最も高い計量値は(明確にするために、本明細書において計量値は10進数で表される)“60”に等しくすることができるMR0であってもよい。
受信された第2のDCOUT値は、代わりに値“157”を持つことができる。この値は、例えば、図4に示した例においてプログラムされた第2のメモリセル110によって与えられた閾値電圧に対応することができる。それゆえ、DCOUT=“157”は、部分集合B1に属することができるプログラム分布D9と、部分集合B2に属することができるプログラム分布D10との間の中央値の近くに位置した閾値電圧に対応することができる。実際に、このような特定のDCOUT値を用いて、MR2=“31”であることができる最も高い計量値は、実質的に計量値MR2=“31”に等しくてもよい。
受信した第3のDCOUT値は、代わりに値“84”から構成されてもよい。例えば、値は図4に示した例においてプログラムされた第3のメモリセル110によって与えられた閾値電圧に対応することができる。それゆえ、DCOUT=“84”は、部分集合B0に属することができるプログラム分布D4の中央ピークに実質的に近いが、部分集合B1に属することができるプログラム分布D5に対してわずかにシフトした位置の閾値電圧に対応することができる。その結果として、MR0=“40”から構成されることができる最も高い計量値は、MR1=“25”から構成されることができる2番目に高い計量値よりも相当に高くてもよい。
最後に、4番目のDCOUT値は、“61”を持つことができる。この値は、例えば、図4に示した例においてプログラムされた4番目のメモリセル110によって与えられた閾値電圧に対応することができる。それゆえ、DCOUT=“61”は、部分集合B3に属することができるプログラム分布D3の中央ピークに実質的に近いが、部分集合B2に属することができるプログラム分布D2に対してわずかにシフトした位置の閾値電圧に対応することができる。その結果として、MR3=“48”から構成されることができる最も高い計量値は、MR2=“20”から構成されることができる2番目に高い計量値よりも相当に高くてもよい。したがって、第1のメモリセルが部分集合B0に属するプログラム分布にプログラムされたことを判定してもよい。同様に、第3のメモリセルは、部分集合B0に属するプログラム分布にプログラムされていてもよく、一方、第4のメモリセルは、部分集合B3に属するプログラム分布にプログラムされていてもよい。しかしながら、部分集合B1及びB2は近似的に同じ確率を持つことができるので、第2のメモリセルがプログラムされることができた部分集合を決定することは相対的に困難になる虞がある。
そして、以下に更に記載するように、実施形態において復号化ユニット160は、符号化ユニット130によって符号化されたビット情報を取り出すことができるとともに、n個のメモリセル110のグループにこのような情報を記憶することができる。例えば、復号化ユニット160は、n個のメモリセル110から読み出したDCOUTによって計算された計量値に対してソフトディシジョン復号化動作を実行することによって、ビット情報を取り出すことができる。図6に戻って、計量ユニット605は、n個のメモリセル110から読み出されたDCOUTの計量値MR0,MR1,MR2,MR3を累積することができる加算‐比較‐選択(ACS)ユニット610に結合されてもよい。この方式において、i=0〜7(例えば、状態S(k)の数)であるパス計量値PMVi(k)は、符号化ユニット130によって組み込まれた符号を定義する格子図を形成し、各メモリセルに対して生成されてもよい。このようなパス計量値は、n個のメモリセル110に記憶されたビット情報を符号化することに続いた最も確率の高い符号化パスを決定することができる。n個の各メモリセル110に対応するパス計量値PMVi(k)は、例えば、パス計量レジスタ615に一時的に記憶されてもよい。
復号化ユニット160は更に、n個のメモリセル110から読み出したDCOUTを一時的に記憶する符号化情報レジスタ617と、パス計量値PMVi(k)を受信するパス計量レジスタ615に結合したトレースバックユニット620とから構成されてもよい。少なくとも一部において、受信されたパス計量値PMVi(k)に基づいて、トレースバックユニット620は、n個の各メモリセル110に対して、特定のメモリセル110がプログラムされたプログラム分布を含む部分集合を取り出すために、ソフトディシジョン動作を実行することができる。トレースバックユニット620は、特定のメモリセル110に予め記憶される線形結合ユニット205を介して符号化された信号DINの部分から構成されてもよい出力信号DOUTの第1の部分を取り出す機能を持つことができる。図2Cに示した格子符号230によって定義されたECCを参照すると、トレースバックユニット620によって取り出された信号DINの部分は、3ビットの文字列a1(k),a2(k),a3(k)のビットa3(k)を含むことができる。ビットa3(k)は、DCINのビットb3(k),b4(k)を生成するように用いられてもよい。
信号DINの符号化されていない(例えば、2ビットa1(k),a2(k))部分に対応する信号DOUTの残りの部分を取り出すために、復号化ユニット160は、トレースバックユニット620及び符号化情報レジスタ617に結合したディスクリミネータユニット625を更に含むことができる。特に、以下に記載するように、信号DOUTの残りの部分は、少なくとも一部において、トレースバックユニット620及びDCOUTによって取り出された特定の部分集合に基づいて計算されてもよい。
例を記載すると、復号化ユニット160は、図4に参照された例において与えられた、符号化された信号DCINによってプログラムされた4つのメモリセル110から検出された、符号化された出力信号DCOUTのシーケンスを復号化することができる。それゆえ、第1のメモリセル110は、文字列a1(k)=0,a2(k)=1,a3(k)=0によってプログラムされてもよく、第2のメモリセル110は、文字列a1(k+1)=0,a2(k+1)=1,a3(k+1)=1によってプログラムされてもよく、第3のメモリセル110は、文字列a1(k+2)=1,a2(k+2)=0,a3(k+2)=1によってプログラムされてもよく、第4のメモリセル110は、文字列a1(k+3)=0,a2(k+3)=0,a3(k+3)=0によってプログラムされてもよい。復号化ユニット160によって実行された動作についての記載は、上記の4つのメモリセルに対応する格子図405,410,415,420を含む図8を参照して記載される。
最初のk番目の動作サイクルにおいて、計量ユニット605は、検出回路500から、第1のメモリセルの閾値電圧に対応する符号化された第1の出力信号DCOUTを受信することができる。この場合、符号化された出力信号DCOUTは“135”に等しくてもよい。既に記載したように、計量ユニット605は、この場合、それぞれ“60”,“10”,“2”,及び“12”に等しくすることができる対応する計量値MR0,MR1,MR2,MR3を計算してもよい。
ACSユニット610は、以下に記載するような処理によって、計量値MR0,MR1,MR2,MR3からパス計量値PMVi(k)を生成することができる。上記で説明したように、符号化ユニット130によって実行される符号化動作の間、格子図における遷移は対応する部分集合の選択に関連してもよい。したがって、ACSユニット610は、状態S(k)と状態S(k+1)の間で生じる格子図405において可能な各遷移に、その遷移に関連する部分集合の計量値を割り当てることができる。例えば、遷移矢線t00によって特定されることができる、状態S(k)から状態S(k+1)への遷移は、部分集合B0の選択に関連することができるため、ACSユニット610は、この場合、“60”に等しくすることができる遷移に計量値MR0を割り当ててもよい。遷移矢線t’04によって特定される状態S(k)から状態S(k+1)への遷移は、代わりに、部分集合B2の選択に関連してもよい。それゆえ、ACSユニット610は、この場合、“2”に等しくすることができる遷移に計量値MR2を割り当てることができる。さらに、このような格子図は単なる例示であって、請求項の内容はそのように制限されるものではない。
実施形態において、計量値が格子図405の様々な遷移に割り当てられる処理は、対応する「分岐計量集合」を定義することができる。格子図405の各状態S(k)に対して、「分岐計量値」として引用される2つの計量値は、それ自身の状態S(k)から分岐する2つの遷移に割り当てられてもよい。このような分岐計量値は、例えば、分岐計量レジスタ630に一時的に記憶されてもよい。
そして、格子図405の各状態S(k)に対して、ACSユニット610は、2つの対応する計量値を比較してもよく、最も高い値を選択してもよく、選択した計量値にパス計量値PMVi(k)をセットしてもよく、かつ、選択した計量値をパス計量レジスタ615に記憶してもよい。この場合、第1のメモリセルに対応するk番目の動作サイクルの間に生成されたパス計量値PMVi(k)は、PMV0(k)=“60”,PMV1(k)=“12”,PMV2(k)=“60”,PMV3(k)=“12”,PMV4(k)=“60”,PMV5(k)=“12”,PMV6(k)=“60”,PMV7(k)=“12”から構成されてもよい。
後続の(k+1)番目の動作サイクルの間に、計量ユニット605は、検出回路500から、第2のメモリセルの閾値電圧に対応することができる符号化された第2の出力信号DCOUTを受信することができる。この場合、例えば、DCOUTは、“157”に等しくてもよく、対応する計量値MR0,MR1,MR2,MR3は、それぞれ“8”,“29”,“31”,及び“11”に等しくてもよい。先に記載したように、このような新しい計量値を用いることによって、ACSユニット160は、格子図410に対応する新しい分岐計量集合を生成することができるとともに、分岐計量集合を分岐計量レジスタ630に記憶することができる。
実施形態において、格子図410の各状態S(k+1)に対して、ACSユニット610は、2つの対応する計量値を比較し、最も高い値を選択し、かつ、選択した計量値と、パス計量レジスタ615に既に記憶された先行のk番目の動作サイクルにおいて計算されたパス計量値PMVi(k)との間の計量値の和に対して、パス計量値PMVi(k+1)を設定することができる。ACSユニット610は、パス計量レジスタ615にパス計量値を記憶することができる。この場合、第2のメモリセルに対応するパス計量値PMVi(k+1)の結果は、PMV0(k+1)=“68”,PMV1(k+1)=“89”,PMV2(k+1)=“91”,PMV3(k+1)=“71”,PMV4(k+1)=“91”,PMV5(k+1)=“71”,PMV6(k+1)=“68”,PMV7(k+1)=“89”から構成されてもよい。勿論、このような計量値を割り当てることの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。(k+2)番目の動作サイクルの間に生成され、かつ、第3のメモリセルに対応するパス計量値PMVi(k+2)は、PMV0(k+2)=“108”,PMV1(k+2)=“116”,PMV2(k+2)=“111”,PMV3(k+2)=“111”,PMV4(k+2)=“129”,PMV5(k+2)=“99”,PMV6(k+2)=“131”,PMV7(k+2)=“97”から構成されてもよい。更に、(k+3)番目の動作サイクルの間に生成され、かつ、第4のメモリセルに対応するパス計量値PMVi(k+3)は、PMV0(k+3)=“136”,PMV1(k+3)=“159”,PMV2(k+3)=“149”,PMV3(k+3)=“179”,PMV4(k+3)=“128”,PMV5(k+3)=“159”,PMV6(k+3)=“140”,PMV7(k+3)=“145”から構成されてもよい。
実施形態において、パス計量値PMVi(k),PMVi(k+1),PMVi(k+2),PMVi(k+3)は、各動作サイクルにおいて、かつ、格子図の各状態に対して、最も高い計量値を持つ遷移を選択することによって生成されてもよい。したがって、線形結合ユニット205に与えられた信号DINの部分を符号化する符号化ユニット130が後続する符号化パスを取り出すことがここで可能になる。特に、トレースバックユニット620は、パス計量レジスタ615にアクセスし、読み出す最後のメモリセル110に対応するパス計量値PMVi(k+3)をスキャンすることができ、かつ、例えば、最も高い計量値PMVi(k+3)持つ状態S(k+4)を選択することができる。ソフトディシジョンを用いて、この状態は、取り出される符号化パスの最終状態の最も確率の高い候補とすることができる。現在の例において、この状態は、“179”に等しいパス計量PMVi(k+3)を持つ状態S3(k+4)から構成されてもよい。
この点において、符号化パスの先行の状態(この場合、(k+3)状態)をトレースバックするために、トレースバックユニット620は、状態S(k+3)から、選択した状態S(k+4)までチェックすることができる。この場合、このような遷移は、状態S(k+3)から始まる遷移と、状態S(k+3)から始まる遷移とを含むことができる。そして、トレースバックユニット620は、最も高いパス計量PMVi(k+2)を持つ状態S(k+3)から始まる遷移を選択することができる。選択した状態は、取り出された符号化パスの最後から2番目の状態を表すことができる。この例において、選択した状態は、“131”に等しいパス計量値PMVi(k+2)を持つ状態S(k+3)から構成されてもよい。符号化パスの最後の2つの状態に結び付く遷移を決定すると、格子図の各遷移が、例えば、特定の部分集合(この場合、部分集合B3)の選択に関連することができるので、第4のメモリセル110の閾値電圧がプログラムされる部分集合を取り出すことが可能になる。
先に記載したように、格子図において、状態の対の間での各遷移は、符号化された信号DINの部分の対応する値にも関連することができる。すなわち、符号化パスの最後の2つの状態に結び付ける遷移を決定すると、第4のメモリセル110に記憶されたビットa3(k+3)を取り出すことが可能になる。この例において、選択した遷移は状態S(k+3)から始まるとともに状態S(k+4)で終わることができ、a3(k+3)=“0”に対応することができる。この点において、処理は、最も高いパス計量値を持つそれらの遷移を選択することによって、符号化パスの他の先行の状態をトレースバックするために繰り返されてもよい。
図8を参照して、上に記載した処理で取り出された符号化パスは、太線で示されるとともに、(最初から最後までの)状態シーケンスS(k)‐S(k+1)‐S(k+2)‐S(k+3)‐S(k+4)を含む。符号化されていない信号DINの部分に対応する信号DOUTの残りの部分(例えば、ビットa1(k),a2(k),a1(k+1),a2(k+1),a1(k+2),a2(k+2),a1(k+3),及びa2(k+3))は、代わりにディスクリミネータユニット625によって取り出されてもよい。特に、各メモリセル110に対して、ディスクリミネータユニット625は、少なくとも一部において、メモリセル110の閾値電圧がプログラムされた部分集合に基づくとともに、少なくとも一部において、そのメモリセル110の閾値電圧を表すDCOUTに基づいた信号DOUTの部分を取り出すことが可能になる。閾値電圧は、トレースバックユニット620によって決定されてもよい。DCOUTは符号化情報レジスタ617に記憶されてもよい。
実施形態において、部分集合に属するプログラム分布は、互いにオーバーラップすることはなく、部分集合内の各プログラム分布は、信号DINの決定部分(例えば、符号化されなかった部分)に関連することができる。したがって、メモリセル110の閾値電圧がプログラムされた部分集合及び閾値電圧それ自体を知ることにより、閾値電圧がプログラムされた特定のプログラム分布及び信号DINの関連部分を識別することができるようになる。例えば、先の例の第4のメモリセル110を参照すると、トレースバックユニット620は、その閾値電圧がプログラムされた部分集合が部分集合B3であると決定することができる。図3を参照すると、部分集合B3は、プログラム分布D3,D7,D11,及びD15を含むことができる。関連したDCOUTは、部分集合B3に属するプログラム分布D3の中央ピーク付近に位置し、かつ、部分集合B2に順次属するプログラム分布D2にわずかにシフトした閾値電圧に対応することができる(図7C参照)。したがって、その閾値電圧がプログラムされた部分集合が部分集合B3から構成されることを知ることにより、閾値電圧がプログラム分布D3にプログラムされたかどうかを判定する方法を可能にする。例えば、各部分集合D0,D1,D2,D3のプログラム分布は、b1(k+3)=0及びb2(k+3)=0に関連してもよく、各部分集合D4,D5,D6,D7のプログラム分布は、b1(k+3)=1及びb2(k+3)=0に関連してもよく、各部分集合D8,D9,D10,D11のプログラム分布は、b1(k+3)=0及びb2(k+3)=1に関連してもよく、各部分集合D12,D13,D14,D15のプログラム分布は、b1(k+3)=1及びb2(k+3)=1に関連してもよい。B1(k+3)=a1(k+3),b2(k+3)=a2(k+3)であるから、第4のメモリセル110に対応する信号DCOUTの残りの部分は、a1(k+3)=0,a2(k+3)=0から構成されてもよい。このような4つのメモリセルの動作例を繰り返すことによって、信号DOUTが取り出されてもよい。例えば、第1のメモリセル110に対して、a1(k)=0,a2(k)=1,a3(k)=0であり、第2のメモリセル110に対して、a1(k+1)=0,a2(k+1)=1,a3(k+1)=1であり、第3のメモリセル110に対して、a1(k+2)=1,a2(k+2)=0,a3(k+2)=1であり、第4のメモリセル110に対して、a1(k+3)=0,a2(k+3)=0,a3(k+3)=0である。
先に記載した符号化‐復号化ユニット120によって実行された動作は、線形結合ユニット205の構造によって定義された特定の畳み込み符号と、特定の部分集合区分とを用いることができる。しかしながら、部分集合と、メモリセルに記憶された情報を符号化することに用いた符合とが異なる場合、同様の考慮が適用されてもよい。例えば、上に記載した実施形態において、各メモリセル110に(例えば、ビットa1(k),a2(k),a3(k)によって形成された符号化されていない文字列等の)3ビットの情報を記憶するために、各メモリセル110は、対応する(符号化された)文字列b1(k),b2(k),b3(k),b4(k)に対応して与えられた値に基づいて、16個のプログラム分布D0,D1,…,D15に対応する16個の異なる状態の中から対応する1つの状態にプログラムされてもよい。プログラム分布の数は、文字列b1(k),b2(k),b3(k),b4(k)を形成するビットの数によって定義されてもよい。この文字列は、文字列を生成するために用いた符号によって導入された冗長性によって順次定義されてもよい。
メモリセルに固有の許容誤差によって導入された限界のために、上の例において記載したように、例えば、16個等のプログラム分布の数は過大になるかもしれず、隣接するプログラム分布において過剰のオーバーラップを生じるかもしれない。少な目の数のプログラム分布を用いて同数のビット情報を記憶するアプローチは、1以上のメモリセルに対応するブロックに記憶される情報を符号化することを含んでもよい。このようにして、符号によって定義された冗長性は、ブロックに対応するメモリセルへと細分化されてもよい。その結果、各メモリセルがプログラムされることができるプログラム分布の数は低減されてもよい。このような解決の仕方がどのように実装されることができるかを示す例について、図9A、図9B、及び図9Cを参照して説明する。特定の例において、メモリに記憶される情報は、16ビットの各ブロックがアドレスされたメモリセル110の対応する対に記憶されることができる、6ビットの情報のブロックから構成されてもよい。この目的のために、符号化ユニット130は、結果として、例えば、符号化ユニット910に変更されてもよい。特定の実装例において、アドレスされたメモリセル110の対に記憶される信号DINは、6ビットの文字列a1(k),a2(k),a3(k),a4(k),a5(k),a6(k)によって表されてもよい。符号化ユニット910は、符号化された信号DCINを得るように信号DINを形成する6ビットの文字列を符号化してもよい。符号化ユニット910は、信号DINに冗長性を加える線形符号化スキームを用いる畳み込み符号化器から構成されてもよい。この場合、しかしながら、符号化ユニット910によって導入された冗長性は、メモリセル110の対あたり1ビットから構成されてもよい。信号DINを形成する6ビットの各文字列a1(k),a2(k),a3(k),a4(k),a5(k),a6(k)は、符号化された信号DCINを形成する、対応する7ビットの記号b1(k),b2(k),b3(k),b4(k),b5(k),b6(k),b7(k)に符号化されてもよい。そして、このような7ビットの記号b1(k),b2(k),b3(k),b4(k),b5(k),b6(k),b7(k)は、アドレス符号ADRによってアドレスされたメモリセル110の対に記憶される読み出し‐プログラムユニット115に与えられてもよい。本発明の実施形態によれば、ビットb1(k),b2(k),b3(k),b4(k)は、ビットa1(k),a2(k),a3(k),a4(k)に同期することができ、一方、ビットb5(k),b6(k),b7(k)は、図9Bに示すように、線形結合ユニット920によって、ビットa5(k),a6(k)から生成されてもよい。6ビットの文字列a1(k),a2(k),a3(k),a4(k),a5(k),a6(k)は、対応する7ビットの記号b1(k),b2(k),b3(k),b4(k),b5(k),b6(k),b7(k)に符号化されることができるので、メモリセル110の各対は、2=128個の異なる状態にプログラムされてもよい。
したがって、アドレスされた対の各メモリセル110は、(第1のメモリセル対の)それぞれ12個のプログラム分布E0,E1,…,E11と、(第2のメモリセル対の)それぞれ12個のプログラム分布F0,F1,…,F11に対応して、12個の異なる状態の中の対応する1つの状態にプログラムされてもよい。この方法において、メモリセルの各対110がプログラムされることが可能である128個の異なる状態において各状態は、プログラム対E,E(i=1〜11,j=1〜11)によって定義された12*12=144個の状態の中の対応する状態に関連してもよい。したがって、このような値で、144−128=16個の分布対Ei,を用いる必要がない。
ビットb1(k),b2(k),b3(k),b4(k),b5(k),b6(k),b7(k)の値と、プログラム分布対E,Eとによって特定された128個の状態の間の関係は、符号化ユニット910または読み出し‐プログラムユニット115に含まれたマッピングユニット(図示せず)によって定義されてもよい。この場合においてさえ、ビットb1(k),b2(k),b3(k),b4(k),b5(k),b6(k),b7(k)によって定義された128個の状態と、様々なプログラム分布対E,Eとの間の関係は、部分集合を区分することを含んでもよい。より詳細には、図9Cに示すように、128個の状態は、2=8個の異なる部分集合SB0,SB1,SB2,SB3,SB4,SB5,SB6,SB7に区分されてもよく、各部分集合は2=16個のプログラム分布対E,Eを含んでいる。各部分集合は、線形結合ユニット920によって生成された対応する文字列b5(k),b6(k),b7(k)の値によって特定されてもよい。さらに、各部分集合SB0,SB1,SB2,SB3,SB4,SB5,SB6,SB7によって、様々なプログラム分布の対E,E間の「距離」は、このようにして同一のプログラム分布間のオーバーラップを避けるように増加されてもよい。
図10は、本発明の実施形態に係るコンピュータシステム及びメモリデバイスを概略的に示す図である。このようなコンピュータシステムは、例えば、アプリケーション及び/または他のコードを実行するように、1以上のプロセッサから構成されてもよい。例えば、メモリデバイス810は、図1に示したメモリ100から構成されてもよい。コンピュータデバイス804は、メモリデバイス810を管理するように設定可能な任意の典型的なデバイス、器具、または装置であってもよい。メモリデバイス810は、メモリコントローラ815及びメモリ822を含んでもよい。例示であって制限されるものではないが、コンピュータデバイス804は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス、またはこれらに類似するような、1以上のコンピュータデバイス及び/またはプラットフォームと、例えば、パーソナルデジタルアシスタント(PDA)、モバイル通信デバイス、またはこれらに類似するような、1以上のパーソナルコンピュータまたは通信デバイスまたは通信器具と、例えば、データベースまたはデータストレージサービスプロバイダ/システム等の、コンピュータシステム、及び/または提携サービスプロバイダ機能と、及び/またはこれらの任意の組み合わせとを具備することができる。
システム800に示した様々なデバイスの全部または一部は、ハードウェア、ファームウェア、ソフトウェア、または、これらの任意の組み合わせを用いて、あるいは、それらを含むことによって組み込まれてもよいと認識されるものである。それゆえ、例示であって限定されるものではないが、コンピュータデバイス804は、バス840と、ホストまたはメモリコントローラ815を通してメモリ822に機能的に連結されている少なくとも1つの処理装置820を含むことができる。処理装置820は、データ計算手続きまたはデータ計算処理の少なくとも一部を実行するように設定可能な1以上の典型的な回路である。例示であって限定されるものではないが、処理装置820は、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、アプリケーション特化集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイ、及び類似物、またはこれらの任意の組み合わせを含むことができる。処理装置820は、メモリコントローラ815と通信するように設定されたオペレーティングシステムを含むことができる。このようなオペレーティングシステムは、例えば、バス840によってメモリコントローラ815に送信されるコマンドを生成することができる。このようなコマンドは、読み出しコマンド及び/または書き込みコマンドを含むことができる。書き込みコマンドに応答して、例えば、メモリコントローラ815は、例えば、メモリパーティションへのコマンド書き込みに関連した情報を書き込みセットパルスまたはリセットパルス等のバイアス信号を与えることができる。実施形態において、メモリコントローラ815はメモリデバイス810を動作することができ、処理装置820は、1以上のアプリケーションをホストすることができ、かつ/または、例えば、ホストがメモリデバイス810内のメモリセルにアクセスするようにメモリコントローラに対してコマンドの書き込みを開始することができる。
一実施形態において、システムは、1以上のマルチレベルメモリセルに渡って情報を記憶するメモリアレイと、情報の値を決定するメモリアレイにソフトディシジョン及び畳み込み符号化を適用するコントローラと、メモリデバイスを動作させるメモリデバイスコントローラとを含むメモリデバイスから構成されてもよい。システムは更に、1以上のアプリケーションをホストするとともに、ホストがメモリセルアレイ内のメモリセルにアクセスするように、メモリデバイスコントローラに対して書き込みコマンド及び/または読み出しコマンドを開始させるプロセッサを含んでもよい。
メモリ822は、典型的な任意のデータ記憶機構である。メモリ822は、例えば、プライマリストレージユニット824、及び/またはセカンダリストレージユニット826を含むことができる。プライマリストレージユニット824は、例えば、ランダムアクセスメモリ、読出し専用メモリなどを含み得る。この例では、処理装置820とは別のものであるとして示されているが、プライマリストレージユニット824の全部または一部は、処理装置820内に設けられているか、あるいは処理装置820と同じ場所に設置されているか、または処理装置820に結合していると理解されるべきものである。
セカンダリストレージユニット826は、例えば、プライマリストレージユニットと同型または類似型のメモリ、及び/または、例えば、ディスクドライブ、光学ディスクドライブ、テープドライブ、固体状態記憶ドライブなどの1以上のデータ記憶デバイスまたはシステムを含むことができる。いくらかの実施形態において、セカンダリストレージユニット826はコンピュータ読み取り可能メディア828を動作的に受信可能であってもよく、またはコンピュータ読み取り可能メディア828に結合するように設定可能であってもよい。コンピュータ読み取り可能メディア828は、例えば、システム800内の1以上のデバイスに、アクセス可能なデータ、コード、及び/または命令を伝送でき、かつ/または、アクセス可能なデータ、コード、及び/または命令を生成できる、任意のメディアを含んでもよい。
コンピュータデバイス804は、例えば、入力/出力832を含むことができる。入力/出力832は、人及び/または機械入力を受け入れるように、あるいは人及び/または機械入力を導入するように設定することができる1以上の典型的なデバイスまたは機構であるとともに/あるいは、人または機械出力に伝えるように、または人または機械出力に与えるように設定可能な1以上のデバイスまたは機構である。例示であって限定されるものではないが、入力/出力デバイス832は、動作的に設定されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポートなどを含むことができる。
本発明の実施形態であると現時点で考えられることについて説明するとともに記載してきたが、請求項の内容から逸脱することなく他の様々に変更されてもよく、かつ均等なものに置換されてもよいと当業者に認識されるべきものである。更に、本発明の精神から逸脱することなく、請求項の内容の教示に対して特定の状況を適用するように多くの変更がなされてもよい。それゆえ、は、開示した前の実施形態に制限されるものではないと意図されるとともに、そのような請求項の内容はまた、添付の特許請求の範囲内及びその均等物にある全ての実施形態を包含することができると意図される。

Claims (20)

  1. メモリセルアレイのマルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
    一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合を保持し、
    ソフトディシジョンを特定の前記周期関数の集合に関連付け、
    ソフトディシジョン及び畳み込み符号化を用いて、符号化状態を決定するために、符号化に続いた候補のパスの確率計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択することを特徴とする方法。
  2. 更に、1以上のマルチレベルメモリセルにおける情報を記憶することを含み、
    更に、前記情報を記憶することは、
    記号を与える畳み込み符号によって前記情報を符号化し、
    前記1以上のマルチレベルメモリセルに前記記号を記憶することを特徴とする請求項1に記載の方法。
  3. 更に、前記符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択することを特徴とする請求項1に記載の方法。
  4. 前記マルチレベルメモリセルは、2以上のビットを記憶することが可能であることを特徴とする請求項1に記載の方法。
  5. 更に、検出した閾値電圧に対するプログラム分布に属する確率を測るために、計量値を生成することを特徴とする請求項1に記載の方法。
  6. 更に、前記周期関数の集合を、ルックアップテーブルに保持することを特徴とする請求項1に記載の方法。
  7. 1以上のマルチレベルメモリセルに渡って状態を記憶するメモリアレイと、
    前記マルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
    一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合にアクセスし、
    ソフトディシジョンを特定の前記周期関数の集合に関連付け、
    ソフトディシジョン及び畳み込み復号化を用いて、符号化状態を決定するために、符号化に続いた候補のパスの確率計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択するコントローラと
    を具備することを特徴とするメモリデバイス。
  8. 前記コントローラは、符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択するよう構成されることを特徴とする請求項7に記載のメモリデバイス。
  9. 前記1以上のマルチレベルメモリセルの閾値電圧を決定するよう構成される検出回路と、
    報を、前記1以上のマルチレベルメモリセルの前記閾値電圧を示すデジタル数列に変換するよう構成されるコンバータとを更に具備することを特徴とする請求項7に記載のメモリデバイス。
  10. 前記検出回路は、前記1以上のマルチレベルメモリセルの1つに対応するビット線の電圧と参照電圧とを取り出す複数の入力を持つ電圧コンパレータから構成されることを特徴とする請求項9に記載のメモリデバイス。
  11. 前記マルチレベルメモリセルは、2以上のビットを記憶することが可能であることを特徴とする請求項7に記載のメモリデバイス。
  12. 前記1以上のマルチレベルメモリセルのプログラム分布に属する確率を測るために、計量値を生成するよう構成される復号化ユニットを更に具備することを特徴とする請求項7に記載のメモリデバイス。
  13. 前記周期関数の集合を記憶するよう構成されるルックアップテーブルを更に具備することを特徴とする請求項7に記載のメモリデバイス。
  14. メモリデバイスと、
    前記メモリデバイスを動作させるメモリデバイスコントローラと、
    1以上のアプリケーションをホストするとともに、メリアレイにアクセスさせるために、前記メモリデバイスコントローラに対して書き込みコマンド及び/または読み出しコマンドを開始するプロセッサとを具備してなり、
    前記メモリデバイスは、1以上のマルチレベルメモリセルに渡って情報を記憶するよう構成される前記メモリアレイと、
    前記マルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
    一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合にアクセスし、
    ソフトディシジョンを特定の前記周期関数の集合に関連付け、
    ソフトディシジョン及び畳み込み復号化を用いて、前記記憶されている状態を決定するために、符号化に続いた最も確率の高いパスの計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択するよう構成されるコントローラと、を備えることを特徴とするシステム。
  15. 前記コントローラは、符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択するよう構成されることを特徴とする請求項14に記載のシステム。
  16. 前記コントローラは、
    前記1以上のマルチレベルメモリセルの閾値電圧を決定するよう構成される検出回路と、
    前記情報を、前記1以上のマルチレベルメモリセルの前記閾値電圧を示すデジタル数列に変換するよう構成されるコンバータとを更に具備することを特徴とする請求項14に記載のシステム。
  17. 前記検出回路は、前記1以上のマルチレベルメモリセルの1つに対応するビット線の電圧と参照電圧とを取り出す複数の入力を持つ電圧コンパレータから構成されることを特徴とする請求項16に記載のシステム。
  18. 前記畳み込み符号化は、ビタビ符号化であることを特徴とする請求項14に記載のシステム。
  19. 前記メモリデバイスは、
    検出した閾値電圧が前記1以上のマルチレベルメモリセルの特定のプログラム分布に属する確率を測るために、計量値を生成するよう構成される復号化ユニットを更に具備することを特徴とする請求項14に記載のシステム。
  20. 前記周期関数の集合を記憶するよう構成されるルックアップテーブルを更に具備することを特徴とする請求項14に記載のシステム。
JP2011106289A 2010-05-19 2011-05-11 拡張マルチレベルメモリ Active JP5555840B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/783,483 US8386895B2 (en) 2010-05-19 2010-05-19 Enhanced multilevel memory
US12/783,483 2010-05-19

Publications (2)

Publication Number Publication Date
JP2011243198A JP2011243198A (ja) 2011-12-01
JP5555840B2 true JP5555840B2 (ja) 2014-07-23

Family

ID=44973482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011106289A Active JP5555840B2 (ja) 2010-05-19 2011-05-11 拡張マルチレベルメモリ

Country Status (6)

Country Link
US (2) US8386895B2 (ja)
JP (1) JP5555840B2 (ja)
KR (1) KR101409551B1 (ja)
CN (1) CN102254571B (ja)
DE (1) DE102011075966B4 (ja)
TW (1) TWI484497B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386895B2 (en) * 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9275720B2 (en) * 2010-12-30 2016-03-01 Kandou Labs, S.A. Differential vector storage for dynamic random access memory
IT1403667B1 (it) * 2011-01-31 2013-10-31 St Microelectronics Srl Dispositivo di memoria con misurazione interna di parametri funzionali
US8780659B2 (en) * 2011-05-12 2014-07-15 Micron Technology, Inc. Programming memory cells
US8797805B2 (en) 2011-12-22 2014-08-05 Micron Technology, Inc. Methods and apparatuses for determining threshold voltage shift
US8943386B1 (en) * 2012-02-16 2015-01-27 Sk Hynix Memory Solutions Inc. Generating soft read values which optimize dynamic range
US8737139B2 (en) 2012-04-11 2014-05-27 Micron Technology, Inc. Determining soft data for combinations of memory cells
US9239754B2 (en) * 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
US8848453B2 (en) 2012-08-31 2014-09-30 Micron Technology, Inc. Inferring threshold voltage distributions associated with memory cells via interpolation
KR102125371B1 (ko) 2012-12-04 2020-06-22 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작방법
KR102067611B1 (ko) 2013-03-15 2020-01-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법과 상기 메모리 컨트롤러를 포함하는 장치들
KR102087436B1 (ko) 2013-04-02 2020-04-14 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
TWI498893B (zh) * 2013-10-31 2015-09-01 Innostor Technology Corp MLC memory write method in multiple environments
WO2015131203A1 (en) 2014-02-28 2015-09-03 Kandou Lab, S.A. Clock-embedded vector signaling codes
US9373408B2 (en) * 2014-10-07 2016-06-21 SanDisk Technologies, Inc. Highly linear analog-to-digital converter and method for nonvolatile memory
US10379940B2 (en) * 2016-12-08 2019-08-13 Sandisk Technologies Llc Pipeline delay detection during decoding by a data storage device
US10467177B2 (en) 2017-12-08 2019-11-05 Kandou Labs, S.A. High speed memory interface
US10777286B2 (en) * 2018-12-28 2020-09-15 Micron Technology, Inc. Apparatus and methods for determining data states of memory cells
US10942889B2 (en) 2019-06-04 2021-03-09 Micron Technology, Inc. Bit string accumulation in memory array periphery
KR102440692B1 (ko) * 2019-06-04 2022-09-07 마이크론 테크놀로지, 인크. 메모리 어레이 주변부에서의 비트 스트링의 누산

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058851A (en) 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
KR930004862B1 (ko) 1990-12-17 1993-06-09 삼성전자 주식회사 상태 평가량 기억장치
DE69423104T2 (de) 1994-10-31 2000-07-20 St Microelectronics Srl Fehlernachweis- und Korrekturverfahren in einem mehrstufigen Speicher und Speicher für dieses Verfahren
US6857099B1 (en) 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US6023781A (en) 1996-09-18 2000-02-08 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5956743A (en) 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
FR2769747B1 (fr) 1997-10-15 2001-10-05 Sgs Thomson Microelectronics Perfectionnement aux memoires non volatiles programmables par effet dit "de porteurs chauds" et effacables par effet tunnel
US6279133B1 (en) 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
CN1256005A (zh) 1998-01-21 2000-06-07 索尼株式会社 编码方法和存储装置
JP3308915B2 (ja) 1998-11-11 2002-07-29 エヌイーシーマイクロシステム株式会社 不良救済用メモリセル及びそれを用いた記憶装置
US6871303B2 (en) 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
IL141800A0 (en) 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US6487251B1 (en) 1999-08-30 2002-11-26 Hughes Electronics Corporation System and method for performing combined multi-rate convolutional coding
US6175522B1 (en) 1999-09-30 2001-01-16 Advanced Micro Devices, Inc. Read operation scheme for a high-density, low voltage, and superior reliability nand flash memory device
US6628723B1 (en) 1999-10-15 2003-09-30 Cisco Technology Coding rate reduction for turbo codes
US6731538B2 (en) 2000-03-10 2004-05-04 Kabushiki Kaisha Toshiba Semiconductor memory device including page latch circuit
JP2002076915A (ja) 2000-08-31 2002-03-15 Sony Corp インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法
US6591394B2 (en) 2000-12-22 2003-07-08 Matrix Semiconductor, Inc. Three-dimensional memory array and method for storing data bits and ECC bits therein
JP4017177B2 (ja) 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
KR100390959B1 (ko) * 2001-06-29 2003-07-12 주식회사 하이닉스반도체 센싱회로를 이용한 멀티레벨 플래시 메모리 프로그램/리드방법
KR100438537B1 (ko) 2001-07-19 2004-07-03 엘지전자 주식회사 이동 통신 단말기에서의 복호 장치 및 그 제어 방법
US6683817B2 (en) 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US7293217B2 (en) 2002-12-16 2007-11-06 Interdigital Technology Corporation Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
US6839870B2 (en) 2003-03-21 2005-01-04 Terayon Communications Systems, Inc. Error-correcting code interleaver
US7467264B2 (en) 2003-06-27 2008-12-16 Hewlett-Packard Development Company, L.P. Methods and apparatuses for determining the state of a memory element
JP3984209B2 (ja) 2003-07-31 2007-10-03 株式会社東芝 半導体記憶装置
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7607073B1 (en) 2004-08-04 2009-10-20 Marvell International Ltd. Methods, algorithms, software, circuits, receivers and systems for iteratively decoding a tailbiting convolutional code
EP1797645B1 (en) 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
US7061804B2 (en) 2004-11-18 2006-06-13 Qualcomm Incorporated Robust and high-speed memory access with adaptive interface timing
KR100578141B1 (ko) 2004-11-22 2006-05-10 삼성전자주식회사 읽기 속도를 향상시킬 수 있는 낸드 플래시 메모리 장치
KR100915650B1 (ko) 2004-12-28 2009-09-04 인터내셔널 비지네스 머신즈 코포레이션 정보 기록 장치, 그 데이터 흐름 제어기, 및 그 데이터흐름의 제어 방법
US7359279B2 (en) 2005-03-31 2008-04-15 Sandisk 3D Llc Integrated circuit memory array configuration including decoding compatibility with partial implementation of multiple memory layers
US7644338B2 (en) 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7469368B2 (en) 2005-11-29 2008-12-23 Broadcom Corporation Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US20070266296A1 (en) 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US7840875B2 (en) 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
US7836364B1 (en) * 2006-05-30 2010-11-16 Marvell International Ltd. Circuits, architectures, apparatuses, systems, methods, algorithms, software and firmware for using reserved cells to indicate defect positions
US7627803B2 (en) 2006-07-05 2009-12-01 Harris Corporation System and method for variable forward error correction (FEC) protection
US8046660B2 (en) 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US7805663B2 (en) 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
TWI360126B (en) * 2006-09-28 2012-03-11 Sandisk Corp Nonvolatile memory with adaptive operations and me
JP5177991B2 (ja) * 2006-10-25 2013-04-10 株式会社東芝 不揮発性半導体記憶装置
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100766042B1 (ko) 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
KR100845529B1 (ko) 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8010735B2 (en) 2007-07-31 2011-08-30 Broadcom Corporation Flash memory with millimeter wave host interface and method for use therewith
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
KR101492595B1 (ko) 2007-05-21 2015-02-11 라모트 앳 텔-아비브 유니버시티 리미티드 메모리 효율적인 ldpc 디코딩
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
JP5354979B2 (ja) 2007-07-12 2013-11-27 パナソニック株式会社 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器
US7860200B2 (en) 2007-10-12 2010-12-28 Harris Corporation Communications system using adaptive filter that is selected based on output power
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
KR101398212B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8051240B2 (en) * 2008-05-09 2011-11-01 Sandisk Technologies Inc. Compensating non-volatile storage using different pass voltages during program-verify and read
US8023334B2 (en) * 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
US8510628B2 (en) * 2009-11-12 2013-08-13 Micron Technology, Inc. Method and apparatuses for customizable error correction of memory
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8386895B2 (en) * 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8194441B2 (en) 2010-09-23 2012-06-05 Micron Technology, Inc. Phase change memory state determination using threshold edge detection

Also Published As

Publication number Publication date
DE102011075966A1 (de) 2011-12-29
TWI484497B (zh) 2015-05-11
KR101409551B1 (ko) 2014-07-02
DE102011075966B4 (de) 2016-09-01
US8700978B2 (en) 2014-04-15
TW201214457A (en) 2012-04-01
US20130242652A1 (en) 2013-09-19
JP2011243198A (ja) 2011-12-01
KR20110127615A (ko) 2011-11-25
CN102254571A (zh) 2011-11-23
US8386895B2 (en) 2013-02-26
CN102254571B (zh) 2015-06-17
US20110289376A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP5555840B2 (ja) 拡張マルチレベルメモリ
JP6752991B1 (ja) メモリセルのデータ状態の判定
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
US9985651B2 (en) Read threshold calibration for LDPC
US7843727B2 (en) Memory device and data reading method
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
KR101414494B1 (ko) 메모리 장치 및 메모리 데이터 읽기 방법
KR20110092091A (ko) 플래시 메모리 장치 및 그것의 읽기 방법
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
US9685243B2 (en) Determining soft data from a hard read
JP2011521393A (ja) メモリ装置およびメモリプログラミング方法
US20190087264A1 (en) Memory system
US9697892B1 (en) Generation and application of gray codes
US20170293446A1 (en) Erase page indicator
CN106205680B (zh) 电阻可变存储装置、读取电路单元及其操作方法
JP2017107620A (ja) 半導体装置及び不揮発メモリ
JP6303039B2 (ja) ストレージシステム用のセル位置プログラミング
US20220215874A1 (en) Data scrambling method that controls code density
JP5901746B2 (ja) メモリセルをプログラミングすること
US9361181B2 (en) Error protection for memory devices
JP2006031755A (ja) 不揮発性半導体記憶装置及びデータ読み書き方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140219

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140409

R150 Certificate of patent or registration of utility model

Ref document number: 5555840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250