(57)【特許請求の範囲】
【請求項１】
メモリセルアレイのマルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合を保持し、
ソフトディシジョンを特定の前記周期関数の集合に関連付け、
ソフトディシジョン及び畳み込み符号化を用いて、符号化状態を決定するために、符号化に続いた候補のパスの確率計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択することを特徴とする方法。  
【請求項２】
更に、１以上のマルチレベルメモリセルにおける情報を記憶することを含み、
更に、前記情報を記憶することは、
記号を与える畳み込み符号によって前記情報を符号化し、
前記１以上のマルチレベルメモリセルに前記記号を記憶することを特徴とする請求項１に記載の方法。  
【請求項３】
更に、前記符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択することを特徴とする請求項１に記載の方法。  
【請求項４】
前記マルチレベルメモリセルは、２以上のビットを記憶することが可能であることを特徴とする請求項１に記載の方法。  
【請求項５】
更に、検出した閾値電圧に対するプログラム分布に属する確率を測るために、計量値を生成することを特徴とする請求項１に記載の方法。  
【請求項６】
更に、前記周期関数の集合を、ルックアップテーブルに保持することを特徴とする請求項１に記載の方法。  
【請求項７】
１以上のマルチレベルメモリセルに渡って状態を記憶するメモリアレイと、
前記マルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合にアクセスし、
ソフトディシジョンを特定の前記周期関数の集合に関連付け、
ソフトディシジョン及び畳み込み復号化を用いて、符号化状態を決定するために、符号化に続いた候補のパスの確率計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択するコントローラと
を具備することを特徴とするメモリデバイス。  
【請求項８】
前記コントローラは、符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択するよう構成されることを特徴とする請求項７に記載のメモリデバイス。  
【請求項９】
前記１以上のマルチレベルメモリセルの閾値電圧を決定するよう構成される検出回路と、
情報を、前記１以上のマルチレベルメモリセルの前記閾値電圧を示すデジタル数列に変換するよう構成されるコンバータとを更に具備することを特徴とする請求項７に記載のメモリデバイス。  
【請求項１０】
前記検出回路は、前記１以上のマルチレベルメモリセルの１つに対応するビット線の電圧と参照電圧とを取り出す複数の入力を持つ電圧コンパレータから構成されることを特徴とする請求項９に記載のメモリデバイス。  
【請求項１１】
前記マルチレベルメモリセルは、２以上のビットを記憶することが可能であることを特徴とする請求項７に記載のメモリデバイス。  
【請求項１２】
前記１以上のマルチレベルメモリセルのプログラム分布に属する確率を測るために、計量値を生成するよう構成される復号化ユニットを更に具備することを特徴とする請求項７に記載のメモリデバイス。  
【請求項１３】
前記周期関数の集合を記憶するよう構成されるルックアップテーブルを更に具備することを特徴とする請求項７に記載のメモリデバイス。  
【請求項１４】
メモリデバイスと、
前記メモリデバイスを動作させるメモリデバイスコントローラと、
１以上のアプリケーションをホストするとともに、メモリアレイにアクセスさせるために、前記メモリデバイスコントローラに対して書き込みコマンド及び／または読み出しコマンドを開始するプロセッサとを具備してなり、
前記メモリデバイスは、１以上のマルチレベルメモリセルに渡って情報を記憶するよう構成される前記メモリアレイと、
前記マルチレベルメモリセルから検出した閾値電圧に関連するソフトディシジョンを読み出し、
一の特定の周期関数に関連する記憶されている状態が互いに周期性を有しており、それぞれの集合が記憶されている状態についての異なる複数のプログラム分布に関連しているような、周期関数の集合にアクセスし、
ソフトディシジョンを特定の前記周期関数の集合に関連付け、
ソフトディシジョン及び畳み込み復号化を用いて、前記記憶されている状態を決定するために、符号化に続いた最も確率の高いパスの計算に少なくとも一部は基づいて、前記特定の周期関数の集合から一のプログラム分布を選択するよう構成されるコントローラと、を備えることを特徴とするシステム。  
【請求項１５】
前記コントローラは、符号化状態を決定するために、複数の候補のパスから最も高い確率の候補となるパスを選択するよう構成されることを特徴とする請求項１４に記載のシステム。  
【請求項１６】
前記コントローラは、
前記１以上のマルチレベルメモリセルの閾値電圧を決定するよう構成される検出回路と、
前記情報を、前記１以上のマルチレベルメモリセルの前記閾値電圧を示すデジタル数列に変換するよう構成されるコンバータとを更に具備することを特徴とする請求項１４に記載のシステム。  
【請求項１７】
前記検出回路は、前記１以上のマルチレベルメモリセルの１つに対応するビット線の電圧と参照電圧とを取り出す複数の入力を持つ電圧コンパレータから構成されることを特徴とする請求項１６に記載のシステム。  
【請求項１８】
前記畳み込み符号化は、ビタビ符号化であることを特徴とする請求項１４に記載のシステム。  
【請求項１９】
前記メモリデバイスは、
検出した閾値電圧が前記１以上のマルチレベルメモリセルの特定のプログラム分布に属する確率を測るために、計量値を生成するよう構成される復号化ユニットを更に具備することを特徴とする請求項１４に記載のシステム。  
【請求項２０】
前記周期関数の集合を記憶するよう構成されるルックアップテーブルを更に具備することを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリに関し、より詳細には不揮発性マルチレベルメモリに関する。
【背景技術】
【０００２】
メモリデバイスは、いくつか例を挙げると、コンピュータ、携帯電話、ＰＤＡ、情報ロガー、及びナビゲーション装置等の多様な電子機器に用いられる。このような電子機器の中で、いくつか例を挙げると、ＮＡＮＤまたはＮＯＲフラッシュメモリ、ＳＲＡＭ、ＤＲＡＭ、及び相変化メモリ等の様々な型式の不揮発性メモリデバイスが用いられてもよい。一般に、書き込み処理またはプログラミング処理は、このようなメモリデバイスに情報を記憶するように用いることができるが、読み出し処理は記憶された情報を取り出すように用いることができる。
【０００３】
プログラム可能なメモリの記憶密度は、メモリセルの空間占有を低減するようにメモリセルの物理的なサイズを縮小することによって増加させることができ、例えば、メモリを集積しているダイ上の同じシリコン領域上により多数のメモリセルを形成することができるようになる。記憶密度を上げる他の方法は、メモリセルが１ビット以上の情報を記憶することができる「マルチレベル」と呼ばれるプログラミングスキームの使用を含んでもよい。特に、このようなマルチレベルプログラミングスキームを用いることによって、メモリセルは、各々が対応する論理値を含む多数の異なるプログラミング状態の任意の１つにプログラムされることができる。メモリセルのプログラミング状態は、メモリセル内に含まれたトランジスタの閾値電圧によって定義されてもよい。例えば、２ビットを記憶するように適合させたメモリセルに対して、メモリセルの閾値電圧は４つの異なる値の１つを与えてもよい。特定の例において、このような記憶されたビット対の論理値は、閾値電圧の増加に対応するバイナリシークエンス“１１”，“１０”，“０１”，“００”に対応してもよい。ここで論理値“１１”は、最も低い閾値電圧（消去状態）を持つ状態に関連してもよく、他の状態は閾値電圧の増加を持つ状態の継承に関連していてもよい。しかしながら、このようなメモリに固有の実質的に不可避な許容誤差のために、４つの所望値のうち１つに正確にプログラムされる代わりに、プログラムされたメモリセルの閾値電圧は４つのそれぞれの「母集団」とも呼ばれるプログラム分布に分布されてもよい。したがって、各プログラミング状態は、単一の閾値電圧に関連するのではなく、代わりに、例えば、それぞれのプログラム分布によって順次定義されたそれぞれの閾値電圧の範囲に関連してもよい。
【図面の簡単な説明】
【０００４】
【図１】図１は、本発明の実施形態に係るメモリデバイスを概略的に示すブロック図である。
【図２Ａ】図２Ａは、本発明の実施形態に係る符号化ユニットを示すブロック図である。
【図２Ｂ】図２Ｂは、本発明の実施形態に係る線形結合ユニットを示すブロック図である。
【図２Ｃ】図２Ｃは、本発明の実施形態に係る線形結合を格子状（ｔｒｅｌｌｉｓ）に示す図である。
【図３】図３は、本発明の実施形態に係るプログラム分布及びこのようなプログラム分布のパーティションを示す図である。
【図４】図４は、本発明の他の実施形態を格子状に示す図である。
【図５Ａ】図５Ａは、本発明の実施形態に係る検出回路を概略的に示す図である。
【図５Ｂ】図５Ｂは、本発明の実施形態に係る検出回路のタイミングを示す図である。
【図６】図６は、本発明の実施形態に係る復号化ユニットを概略的に示すブロック図である。
【図７Ａ】図７Ａは、本発明の実施形態に係るプログラム分布及びこのようなプログラム分布の距離関数を示す図である。
【図７Ｂ】図７Ｂは、本発明の実施形態に係る距離関数を実装したルックアップテーブルである。
【図７Ｃ】図７Ｃは、本発明の実施形態に係るプログラム分布及びこのような距離値を示す図である。
【図８】図８は、本発明の他の実施形態を格子状に示す図である。
【図９Ａ】図９Ａは、本発明の実施形態に係る符号化ユニットを示すブロック図である。
【図９Ｂ】図９Ｂは、本発明の実施形態に係る線形結合ユニットを示すブロック図である。
【図９Ｃ】図９Ｃは、本発明の実施形態に係る部分集合に区分されたプログラミングを概略的に示す図である。
【図１０】図１０は、本発明の実施形態に係るコンピュータシステム及びメモリデバイスを概略的に示す図である。
【発明を実施するための形態】
【０００５】
非限定的かつ非網羅的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
【０００６】
本明細書全体を通して、「一実施形態」または「実施形態」を参照することは、特別な特徴、構造、特性が、請求項に記載された発明の主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」または「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特徴、構造、または特性は、１以上の実施形態において組み合わされてもよい。
【０００７】
実施形態において、メモリデバイスの記憶密度は、１ビットの情報を表すのに２以上のプログラミング状態を記憶することが可能なマルチレベルメモリセルを組み込むことによって、増加させることができる。個々のマルチレベルメモリセルにプログラムされてもよい数多くの異なるプログラミング状態を選択する前に、メモリデバイスの設計者は、メモリデバイスの供給電源電圧値及びメモリデバイスに固有の許容誤差パラメータを含むいくつかの要素を考慮してもよい。例えば、供給電源電圧値は、プログラム分布集合によって広がる電圧範囲の上位レベルを定義してもよく、各プログラム分布の幅は、メモリデバイスに固有の許容誤差パラメータに関係していてもよい。実施形態において、記憶密度を更に増加させるアプローチは、記号を与える畳み込み符号により情報を符号化することによって情報を記憶することと、１以上のマルチレベルメモリセル内にこのような記号を記憶することとを含んでもよい。このような記憶された情報を取り出すことは、いわゆる「ソフトディシジョン」と、畳み込み符号化とをこのような記憶された記号に適用することとを用いてもよい。他の実施形態において、記憶密度を増加させるアプローチは、メモリデバイスのメモリセル内に情報を記憶することの前に、誤り訂正符号（ＥＣＣ）を用いて情報を処理することを含んでもよい。以下に記載するように、もし隣接プログラム分布の間で部分的に重なり合うようにプログラム分布の数が比較的十分に高くても、このようにソフトディシジョン・アプローチを用いてメモリセルのコンテンツを読み出すことによって、誤って読み出す可能性を低減することができる。
【０００８】
実施形態において、メモリデバイスは、プログラム分布の規則正しいシーケンス下における１つのプログラム分布にセットされた閾値電圧を持つ複数のメモリセルから構成できる。このようなメモリデバイスはターゲットメモリセルの集合内に記憶される第１入力情報を受信することができる。第１の入力情報は、第１の入力情報を対応する第２の入力情報に符号化する第１のビット数を含んでもよい。第２の入力情報は、第１のビット数より高い第２のビット数を含んでもよい。メモリデバイスは、第２の入力情報に従うシーケンスのプログラム分布の選択された集合に、ターゲットメモリセル集合の閾値電圧を設定するようにプログラムされてもよい。シーケンスのプログラム分布は部分集合に分類されてもよく、部分集合はシーケンス内の連続したプログラム分布である必要はない複数のプログラム分布を含んでもよい。第２の入力情報は、以下に詳細に記載するように、プログラム分布集合が属する部分集合を特定する部分集合情報部を含んでもよい。
【０００９】
図１は、本発明の実施形態に係るメモリ１００を概略的に示すブロック図である。特に、不揮発性半導体メモリ１００は、例えば、電気的にプログラム可能な不揮発性フラッシュメモリから構成されてもよい。メモリ１００は、半導体物質のチップ（図示せず）内に集積されてもよく、例えば、複数の行及び列内にシーケンスされた情報を記憶するメモリセル１１０の行列１０５を含んでもよい。一実施形態において、メモリセル１１０は、電子によって荷電される導電フローティングゲート等の電荷保存素子を持つＮ‐チャンネルＭＯＳトランジスタから構成されてもよいが、請求項に記載した内容はこの点に限定されるものではない。
【００１０】
メモリ１００は、マルチレベルメモリから構成できる。消去された状態において、メモリセル１１０は、低い閾値電圧を持つことができる。メモリセル１１０は、特定量の電荷をメモリセル１１０のフローティングゲート内に置くことによって多数の状態の中で任意の１つにプログラムされることができる。このような状態は、前の状態の電荷量に比べて増加したフローティングゲートの電荷量の結果により増加した閾値電圧によって特徴付けられてもよい。特定の実施形態において、メモリ１００はＮＡＮＤアーキテクチャから構成されてもよく、それぞれのメモリセルストリングを形成するように互いに一連に接続された８グループ、１６グループ、またはそれ以上のグループのメモリセル１１０等のグループを含んでもよい。同じ行列の列に属する異なるメモリセルストリングは、それぞれのビット線ＢＬ１１２に互いに並列に接続されてもよいが、請求項に記載した内容はそのように限定されるものではない。
【００１１】
メモリ１００は、所望のメモリセル１１０またはメモリセル１１０のグループを選択するアドレス符号ＡＤＲを受信することができる。アドレス符号ＡＤＲは、セレクタ回路と、例えば、ページバッファ回路（図示せず）等の読み出し‐プログラム回路とを含むことができる読み出し‐プログラムユニット１１５に与えられてもよい。このようなセレクタ回路は、アドレスされたメモリセル１１０を選択することができ、一方、読み出し‐プログラム回路は、例えばメモリセル１１０上で行われてもよい読み出し‐プログラム操作を実行することができる。
【００１２】
メモリ１００において、メモリセル１１０に記憶される前に情報を符号化してもよい。この目的のために、本発明の実施形態によれば、メモリ１００は、メモリセル１１０に記憶される入力信号ＤＩＮに対して符号化動作をすることと、メモリセル１１０から読み出された符号化された出力信号ＤＣＯＵＴに対して復号化動作をすることとを実行する符号化‐復号化ユニット１２０を含んでもよい。特に、符号化‐復号化ユニット１２０は、メモリ１００の入出力端末１５０に順次結合されてもよい入出力バッファ１４０から入力信号ＤＩＮを受信する符号化ユニット１３０を含むことができる。一実施形態において、符号化‐復号化ユニット１２０は、入力信号ＤＩＮに対して符号化動作をすることを行うとともに、対応する符号化された入力信号ＤＣＩＮを読み出し‐プログラムユニット１１５に与えることができる。そして、少なくとも一部がアドレス符号ＡＤＲに基づいて、符号化された入力信号ＤＣＩＮは、行列１０５の対応するメモリセル１１０に記憶されてもよい。符号化‐復号化ユニット１２０は更に、アドレスされたメモリセル１１０から読み出された符号化された出力信号ＤＣＯＵＴを読み出し‐プログラムユニット１１５から受信する復号化ユニット１６０を含み、復号化動作を実行し、及び／または、（復号化された）対応する出力信号ＤＣＯＵＴを入出力バッファ１４０に与えることができる。
【００１３】
実施形態において、システムは、メモリ１００等のメモリデバイスから構成されてもよい。特定の実装例において、メモリデバイスは、１以上のマルチレベルメモリセルに渡って情報を表す信号を記憶するメモリアレイと、情報の値を決定するためにメモリアレイにソフトディシジョン及び畳み込み符号化を適用するコントローラとから構成されてもよい。このようなシステムは、メモリデバイスを作動させるメモリデバイスコントローラと、１以上のアプリケーションをホストするともに、ホストがメモリアレイにアクセスするためにメモリデバイスコントローラに対して書き込みコマンド及び／または読み出しコマンドを開始するプロセッサとから更に構成されてもよい。勿論、このようなメモリデバイスの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００１４】
図２Ａは、本発明の実施形態に係る符号化ユニット１３０を示すブロック図である。特定の例において、メモリセル１１０は、各々３ビットの情報を記憶するようにプログラムされることができる。勿論、他の実装例において他のビット数が記憶されてもよい。本明細書において、例示は、特定の数、値、その他を含む特定の実装例について記載すると言ってもよい。しかしながら、このような詳細事項は単に説明する目的のためであって、請求項の内容はそのように限定されるものではない。アドレスされたメモリセル１１０に記憶される入力信号ＤＩＮは、３ビットストリングａ１（ｋ），ａ２（ｋ），ａ３（ｋ）によって表されることができ、ここで“ｋ”は整数からなるインデックスである。例えば、クロック信号（図５Ｂ）によって定義されることができるメモリ１００の動作の各ｋ番目のサイクルにおいて、新しいビットストリングａ１（ｋ），ａ２（ｋ），ａ３（ｋ）は符号化される符号化ユニット１３０に与えられてもよい。特定のメモリアクセスにおいて（例えば、ｋ番目の特定の動作において）プログラムされるメモリセル１１０の数は１より大きくてもよい。しかしながら、簡潔に説明すると、現在記載した実装例は１サイクルの動作においてアクセスされることができる単一のメモリセル１１０を含む。
【００１５】
符号化ユニット１３０は、符号化された入力信号ＤＣＩＮを得る３ビットストリングから構成されている入力信号ＤＩＮを符号化することができる。本発明の実施形態によれば、符号化ユニット１３０は、入力信号ＤＩＮに冗長性を加える線形符号化処理を用いる畳み込み符号器から構成されてもよい。一実装例において、このような線形符号化処理は、ビタビ処理から構成されてもよいが、請求項の内容はそのように限定されるものではない。符号化ユニット１３０によって導入された冗長性は、入力信号ＤＩＮを形成する各３ビットストリングａ１（ｋ），ａ２（ｋ），ａ３（ｋ）が、符号化された入力信号ＤＣＩＮを形成している対応する４ビット記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）に符号化されることができるように、１ビットを含んでもよい。そして、このような４ビット記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）は、例えば、アドレス符号ＡＤＲによってアドレスされたメモリセル１１０に記憶される読み出し‐プログラムユニット１１５に与えられてもよい。以下に更に詳細に記載するように、各メモリセル１１０は、例えば、２４＝１６個の異なる状態にプログラムされてもよい。更に、このような例示は単に説明する目的のためであって、請求項の内容はそのように限定されるものではない。符号化ユニット１３０は、例えば、ビットａ３（ｋ）からビットｂ３（ｋ）及びビットｂ４（ｋ）を生成する有限状態機械から構成されている線形結合ユニット２０５を含んでもよい。他方で、ビットｂ１（ｋ）はビットａ１（ｋ）に一致してもよく、ビットｂ２（ｋ）はビットａ２（ｋ）に一致してもよい。各ｋ番目の動作において、ビットｂ３（ｋ）及びビットｂ４（ｋ）は、少なくとも一部において特定の動作サイクルの間に線形結合ユニット２０５に与えられた信号（例えば、ビットａ３（ｋ））に基づいて計算されてもよく、少なくとも一部において、例えば、（本明細書では、（ｋ−１）番目という表記によって示された）前の動作サイクルの間に線形結合ユニット２０５に与えられた情報によって推定された値に順次依存してもよい（有限状態機械である）線形結合ユニット２０５の内部状態に基づいて計算されてもよい。勿論、このような符号化ユニットの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００１６】
図２Ｂは、本発明の実施形態に係る線形結合ユニット２０５を示すブロック図である。線形結合ユニット２０５は、３つの遅延素子２１０，２１５，２２０、及び／または、バイナリ加算器２２５を含んでもよい。このような各遅延素子は、メモリ１００の動作サイクルの間にビットを受信するとともにビットの値を記憶することができる。このように、メモリ１００の各ｋ番目の動作において、遅延素子は、以前の（ｋ−１）番目のサイクルの動作において受信した値を表す出力信号を与えることができる。例えば、遅延素子２１０は、ビットａ３（ｋ）を受信するとともにビットａ３（ｋ）を記憶することができる。遅延素子２１０は、遅延素子２１５の入力端末（回路ノードＢ）に接続された出力端末を含んでもよい。遅延素子２１５は、バイナリ加算器の第１の入力端末（回路ノードＤ）に接続された出力端末を順次持つ遅延素子２２０の入力端末（回路ノードＣ）に接続された出力端末を含んでもよい。バイナリ加算器２２５は、ノードＢに接続された第２の入力端末と、ビットａ３（ｋ）を受信する第３入力端末とを含んでもよい。線形結合ユニット２０５は、ビットｂ３（ｋ）を与えるためのノードＣに接続された第１の出力端末と、ビットｂ４（ｋ）を与えるためのバイナリ加算器２２５の出力端末に接続された第２の出力端末とを含んでもよい。勿論、このような線形結合器の詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００１７】
実装例において、符号化ユニット１３０によって実行された符号化動作は、線形結合ユニット２０５によって定義されることができる特定のＥＣＣを含んでもよい。図２Ｃは、本発明の実施形態に係る線形結合ユニット２０５から生成される符号構造を表す格子図２３０を示す。特に、格子図２３０は、少なくとも一部において、その入力において受信したビットａ３（ｋ）の値に依存している線形結合ユニット２０５の内部状態の進行について示すことができる。
【００１８】
線形結合ユニット２０５の内部状態集合は、回路ノードＢ，Ｃ，Ｄによって与えられた値によって定義されてもよく、それゆえ、例えば、２３＝８個の異なる内部状態を含んでもよい。格子図２３０において、内部状態は参照Ｓｉ（ｋ），Ｓｉ（ｋ＋１）によって特定され、ここでｉ＝０，１，…，７である。特に、参照Ｓｉ（ｋ）は、一般的なメモリ１００のｋ番目の動作サイクルにおける線形結合ユニット２０５によって与えられた内部状態に対応してもよく、一方、参照Ｓｉ（ｋ＋１）は、後続の（ｋ＋１）番目の動作サイクルにおいて与えられた内部状態に対応してもよい。このような格子図は勿論、単なる例示であって、請求項の内容はそのように限定されるものではない。
【００１９】
格子図２３０は、少なくとも一部においてビットａ３（ｋ）の値に基づいて生じる線形結合ユニット２０５の「現在」の内部状態Ｓｉ（ｋ）及び「将来」の内部状態Ｓｉ（ｋ＋１）の間の許容可能な遷移を示す。より詳細には、現在の内部状態Ｓｉ（ｋ）は、２つの異なる将来の内部状態Ｓｊ（ｋ）またはＳｌ（ｋ）に遷移することができる。例えば、もしビットａ３（ｋ）が“０“に等しいならば、格子図２３０は、内部状態Ｓｉ（ｋ）が遷移矢線ｔｉｊ（実線で示す）を介して対応する内部状態Ｓｉ（ｋ＋１）に遷移できることを示す。他方で、もしビットａ３（ｋ）が“１”に等しいならば、内部状態Ｓｉ（ｋ）は、後続の遷移矢印ｔ’ｉｌ（破線で示す）を介して対応する内部状態Ｓｉ（ｋ＋１）に遷移することができる。許容可能な遷移（例えば、遷移矢印ｔｉｊ，ｔ’ｉｌによって示す）は、符号構造を定義することができる。許容可能な遷移は、線形結合ユニット２０５の構造によって順次定義することができる。もし線形結合ユニット２０５の構造を変化するならば、遅延素子及び／またはバイナリ加算器の間の接続を変更することによって、例えば、格子図２３０の許容可能な遷移及び／または対応する符号構造はそれに応じて変化してもよい。
【００２０】
格子図２３０によって定義された符号を用いて、符号化ユニット１３０によって生成された４ビット記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）を記憶するために、アドレスされたメモリセル１１０は、それぞれの１６個のプログラム分布Ｄ０，Ｄ１，…，Ｄ１５に対応して、１６個の異なる状態の中から対応する１つにプログラムされることができる。少なくとも一部において、ビットｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）によって与えられた値に基づいて、１６個のプログラム分布Ｄ０，Ｄ１，…，Ｄ１５を図３に示す。このようなプログラム分布Ｄ０，Ｄ１，…，Ｄ１５は、それぞれの幅のために互いにオーバーラップしてもよく、少なくとも一部においてメモリ１００の固有の許容誤差に依存してもよい。この点において、プログラム分布Ｄ０，Ｄ１，…，Ｄ１５は、図３に一定の比率に縮尺して示してはいるわけではない。
【００２１】
本発明の実施形態によれば、ビットｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）と様々なプログラム分布Ｄ０，Ｄ１，…，Ｄ１５との間の組み合わせは、以下のように区分される部分集合を含むことができる。例えば、１６個のプログラム分布Ｄ０，Ｄ１，…，Ｄ１５は、それぞれ４個のプログラム分布を含む４つの異なる部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３に区分することができる。部分集合は、ビットｂ３（ｋ）及びｂ４（ｋ）の値に対応することによって識別することができる。例えば、部分集合Ｂ０は、ｂ３（ｋ）＝０，ｂ４（ｋ）＝０に対応することができるとともにプログラム分布Ｄ０，Ｄ４，Ｄ８，Ｄ１２を含むことができ、部分集合Ｂ１は、ｂ３（ｋ）＝０，ｂ４（ｋ）＝１に対応することができるとともにプログラム分布Ｄ１，Ｄ５，Ｄ９，Ｄ１３を含むことができ、部分集合Ｂ２は、ｂ３（ｋ）＝１，ｂ４（ｋ）＝０に対応することができるとともにプログラム分布Ｄ２，Ｄ６，Ｄ１０，Ｄ１４を含むことができ、部分集合Ｂ３は、ｂ３（ｋ）＝１，ｂ４（ｋ）＝１に対応することができるとともにプログラム分布Ｄ３，Ｄ７，Ｄ１１，Ｄ１５を含むことができる。
【００２２】
部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３において、４つのプログラム分布は、少なくとも一部において、ビットｂ１（ｋ），ｂ２（ｋ）に基づいて特定することができる。例えば、第１の部分集合のプログラム分布Ｄ０，Ｄ１，Ｄ２，Ｄ３は、ｂ１（ｋ）＝０，ｂ２（ｋ）＝０に対応してもよく、第２の分布Ｄ４，Ｄ５，Ｄ６，Ｄ７は、ｂ１（ｋ）＝１，ｂ２（ｋ）＝０に対応してもよく、第３の分布Ｄ８，Ｄ９，Ｄ１０，Ｄ１１は、ｂ１（ｋ）＝０，ｂ２（ｋ）＝１に対応してもよく、第３の分布Ｄ１２，Ｄ１３，Ｄ１４，Ｄ１５は、ｂ１（ｋ）＝１，ｂ２（ｋ）＝１に対応してもよい。更に、部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３において、隣接するプログラム分布間の距離は、このように同じ部分集合のプログラム分布の間のオーバーラップを避けるように増加させることができる。
【００２３】
ビットｂ３（ｋ），ｂ４（ｋ）と４つの部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３とを結び付ける組み合わせを確立し、図２の格子図２３０を用いて線形結合ユニット２０５の内部状態Ｓｉ（ｋ）の遷移を調べると、どの部分集合が選択されたかを特定の遷移に対して決定することが可能になる。例えば、線形結合ユニット２０５が状態Ｓ０（ｋ）である場合、及び、ｋ番目の動作サイクルにおいて受信したビットａ３（ｋ）の値が“０”に等しい場合、内部状態はＳ０（ｋ＋１）に遷移することができるとともに、ビットｂ３（ｋ），ｂ４（ｋ）はそれぞれ値“０”，“０”と与えることができる。内部状態は、例えば、遷移矢線ｔ００を通じて遷移することができる。このような値の対は、部分集合Ｂ０に対応することができる。代わりにビットａ３（ｋ）の値が“１”に等しい場合、内部状態は遷移矢印ｔ’０１を通じてＳ４（ｋ＋１）に遷移することができるとともに、ビットｂ３（ｋ），ｂ４（ｋ）はそれぞれ値“１”，“０”と与えることができるので、選択した部分集合はＢ２から構成することができる。勿論、このようなメモリデバイスの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００２４】
図４は、本発明の他の実施形態を格子状に示す図である。特定の例において、１２ビットの情報のシーケンスは、４つのメモリセル１１０に記憶されてもよい。このようなシーケンスは、４つの連続する動作サイクルの間に受信された入力信号ＤＩＮの４つの部分から構成されてもよい。特に、サイクル“ｋ”において、入力信号ＤＩＮは、文字列ａ１（ｋ）＝０，ａ２（ｋ）＝１，ａ３（ｋ）＝０に対応することができ、サイクル“ｋ＋１”において、入力信号ＤＩＮは、文字列ａ１（ｋ＋１）＝０，ａ２（ｋ＋１）＝１，ａ３（ｋ＋１）＝１に対応することができ、サイクル“ｋ＋２”において、入力信号ＤＩＮは、文字列ａ１（ｋ＋２）＝１，ａ２（ｋ＋２）＝０，ａ３（ｋ＋２）＝１に対応することができ、サイクル“ｋ＋３”において、入力信号ＤＩＮは、文字列ａ１（ｋ＋３）＝０，ａ２（ｋ＋３）＝０，ａ３（ｋ＋３）＝０に対応することができる。線形結合ユニット２０５の初期の内部状態はＳ０（ｋ）であってもよい。勿論、このような格子図は単なる例示であって、請求項の内容はそのように制限されるものではない。
【００２５】
ｋ番目の動作サイクルにおいて、文字列ａ１（ｋ）＝０，ａ２（ｋ）＝１，ａ３（ｋ）＝０を、符号化ユニット１３０に与えることができる。対応する格子図４０５によって示すことができるように、後続の（ｋ＋１）番目の動作サイクルにおいて、線形結合ユニット２０５は、遷移矢線ｔ００に後続する同じ内部状態Ｓ０（ｋ＋１）を保持することができる。第１のメモリセル１１０に記憶される、符号化ユニット１３０によって生成された対応する４ビットの記号は、例えば、部分集合Ｂ０に属する分布Ｄ８に対応することができるｂ１（ｋ）＝０，ｂ２（ｋ）＝１，ｂ３（ｋ）＝０，ｂ４（ｋ）＝０であってもよい。
【００２６】
（ｋ＋１）番目の動作サイクルにおいて、文字列ａ１（ｋ＋１）＝０，ａ２（ｋ＋１）＝１，ａ３（ｋ＋１）＝１を、符号化ユニット１３０に与えることができる。対応する格子図４１０によって示すことができるように、線形結合ユニット２０５は、遷移矢線ｔ’０１を介して内部状態Ｓ４（ｋ＋２）にスイッチすることができる。それゆえ、第１のメモリセル１１０に記憶される、符号化ユニット１３０によって生成された対応する４ビットの記号は、部分集合Ｂ２に属する分布Ｄ１０に対応するｂ１（ｋ＋１）＝０，ｂ２（ｋ＋１）＝１，ｂ３（ｋ＋１）＝１，ｂ４（ｋ＋１）＝０であってもよい。
【００２７】
（ｋ＋２）番目の動作サイクルにおいて、もし文字列ａ１（ｋ＋２）＝１，ａ２（ｋ＋２）＝０，ａ３（ｋ＋２）＝１が符号化ユニット１３０に与えられた場合、線形結合ユニット２０５は、遷移矢線ｔ’４６（格子図４１５を参照）を介して内部状態Ｓ４（ｋ＋２）から内部状態Ｓ６（ｋ＋３）にスイッチすることができる。それゆえ、第１のメモリセル１１０に記憶される、符号化ユニット１３０によって生成された対応する４ビットの記号は、部分集合Ｂ０に属する分布Ｄ４に対応するｂ１（ｋ＋２）＝１，ｂ２（ｋ＋２）＝０，ｂ３（ｋ＋２）＝０，ｂ４（ｋ＋２）＝０であってもよい。
【００２８】
最後に、（ｋ＋３）番目の動作サイクルにおいて、もし文字列ａ１（ｋ＋３）＝０，ａ２（ｋ＋３）＝０，ａ３（ｋ＋２）＝０が符号化ユニット１３０に与えられた場合、線形結合ユニット２０５は、遷移矢線ｔ６３（格子図４２０を参照）を介して内部状態Ｓ6（ｋ＋３）から内部状態Ｓ３（ｋ＋４）にスイッチすることができる。それゆえ、第１のメモリセル１１０に記憶される、符号化ユニット１３０によって生成された対応する４ビットの記号は、部分集合Ｂ３に属する分布Ｄ３に対応するｂ１（ｋ＋３）＝０，ｂ２（ｋ＋３）＝０，ｂ３（ｋ＋３）＝１，ｂ４（ｋ＋３）＝１であってもよい。
【００２９】
したがって、符号化ユニット１３０によって実行される符号化は、先行の動作サイクルにおいて受信した入力信号ＤＩＮの履歴を考慮することができる符号化パスを介して、各記号を符号化ユニット１３０によって生成することができるように、畳み込み符号を用いてもよい。例えば、前述の例を参照すると、入力信号ＤＩＮのシーケンスは、符号化パスＳ０（ｋ）−Ｓ０（ｋ＋１）−Ｓ４（ｋ＋２）−Ｓ６（ｋ＋３）−Ｓ３（ｋ＋４）によって符号化されていてもよい。４ビットの記号ｂ１（ｋ＋３），ｂ２（ｋ＋３），ｂ３（ｋ＋３），ｂ４（ｋ＋３）は、内部状態Ｓ０（ｋ）から開始して３回目の動作サイクル後に順次到着した内部状態Ｓ６（ｋ＋３）から開始して計算されていてもよい。もし、例えば、先行の３つの動作サイクルの間に受信した入力信号ＤＩＮのシーケンスが異なる場合、符号化パスは異なっていてもよいとともに、それゆえ結合ユニット２０５の内部状態はＳ６（ｋ＋３）と異なっていてもよい。
【００３０】
実施形態において、アドレスされたメモリセル１１０のグループに記憶されたビット情報は、読み出し‐プログラムユニット１１５によって検出された符号化された出力記号ＤＣＯＵＴ（図１）上のソフトディシジョンシステムを用いて取り出されてもよい。より詳細には、読み出し‐プログラムユニット１１５によって与えられた符号化された出力信号ＤＣＯＵＴは、例えば、アドレスされたメモリセル１１０の閾値電圧を示す数字のデジタルシーケンスから構成されてもよい。例えば、エラーの可能性が低いような十分な信頼度を持つソフトディシジョンシステムを用いて記憶したビット情報を取り出すために、読み出し‐プログラムユニット１１５によって検出された閾値電圧は、相対的高精度になる相対的高解像度を持つことができる。
【００３１】
例えば、アドレスされたメモリセル１１０の閾値電圧は、アドレスされたメモリセルゲート端末に線形電圧ランプを増加させることができるとともに、メモリセルがターンオンする時間を回路が測定することができる電圧ランプ読み出しスキームによって検出されてもよい。一実装例において、メモリセル１１０の閾値電圧を検出することは、例えば図５に示す検出回路５００を用いてもよい。検出回路５００は、読み出し‐プログラムユニット１１５の一部から構成されてもよい。検出回路５００は、アドレスされたメモリセル１１０に対応するビット線ＢＬの電圧を示すビット線電圧Ｖｂｌを受信する第１の入力端末を持つ電圧コンパレータ５０５を含んでもよい。電圧コンパレータ５０５はまた、参照電圧Ｖｒｅｆを受信する参照ジェネレータブロック５１０に連結した第２の入力端末と、ビット線電圧値Ｖｂｌが参照電圧ＶＲＥＦよりも低下する場合にカウンター回路５１５にトリガー信号ＴＲＩＧを与える出力端末とを含むことができる。本発明の実施形態によれば、カウンター回路５１５は、例えば、値“００００００”から始まり、例えば、“１１１１１１”で終わる６ビットのシーケンスを生成することができる。カウンター回路５１５は、シーケンスの値が更新される頻度を定義するクロック信号ＣＫを受信することができる。カウンター回路５１５の動作は、リセット信号ＲＥＳＥＴ、スタート信号ＳＴＡＲＴ、及びストップ信号ＳＴＯＰを通じて、制御ブロック５２０によって管理されてもよい。特に、カウンター回路５１５によって生成されたシーケンスは、アサートされたスタート信号ＳＴＡＲＴに応答して開始されてもよく、アサートされたストップ信号ＳＴＯＰに応答して停止してもよく、例えば、アサートされたリセット信号ＲＥＳＥＴに応答して（例えば、値“００００００”に）リセットされてもよい。更に、電圧コンパレータ５０５によって生成されたトリガー信号ＴＲＩＧはまた、制御ブロック５２０に与えられてもよい。勿論、このような検出回路の詳細は単なる例示であって、請求項の内容はそのように制限されるものではない。
【００３２】
制御ブロック５２０はまた、カウンター回路５１５によって生成されたシーケンスが（例えば、値“１１１１１１”に到達する）完全なサイクルを遂行した場合、カウンター回路５１５からオーバーフロー信号ＯＦＬを受信することができる。制御ブロック５２０はまた、アドレスされたメモリセル１１０のゲート端末に与えられる読み出し電圧Ｖｒｄを生成することができる読み出し電圧ジェネレータ５２５に結合してもよい。以下に詳細に記載するように、読み出し電圧Ｖｒｄは実行される動作に依存する異なる値を与えてもよい。検出回路５００は、例えば、少なくとも一時的に８ビットを記憶するレジスタ５３０を更に含むことができる。レジスタ５３０の第１セクション５３５は、カウンター回路５１５によって生成された６ビットを記憶することができ、レジスタ５３０の第２セクションは、例えば、制御ブロック５２０によって生成された２ビットの文字列ＲＮを記憶することができる。６入力のＮＯＲゲート５４５は、入力端末において第１セクション５３５に記憶された６ビットを受信するように、レジスタ５３０に連結されてもよい。ＮＯＲゲート５４５の出力端末は、制御ブロック５２０に信号ＮＯ  ＤＡＴＡを与えるように制御ブロック５２０に結合されてもよい。
【００３３】
図５Ｂは、本発明の実施形態に係る検出回路５００のタイミング図５５０を示す。このようなタイミング図５５０は、例えば、アドレスされたメモリセル１１０の閾値電圧を検出する動作中に伴った前の信号について説明できる。検出回路５００によって実行された検出動作は、対応する文字列ＲＮの値によって識別された４以上の別個の相まで実行することができる。第１の相（ＲＮ＝００）の開始において、制御ブロック５２０は、カウンター回路５１５をリセットするためにリセット信号ＲＥＳＥＴをアサートしてもよく、レジスタ５３０は第１セクション５３５において文字列“００００００”を記憶してもよい。このことは、信号ＮＯ  ＤＡＴＡは、例えば、高い値にセットされてもよいことを意味する。同時に、アドレスされたメモリセル１１０を含むメモリ文字列に結合されたビット線ＢＬの電圧は、予充電回路（図示せず）を用いることによって、具体的な予充電電圧ＰＶがもたらされてもよい。この点において、読み出し電圧ジェネレータ５２５によって生成された読み出し電圧Ｖｒｄは、第１の値にセットされてもよく、スタート信号ＳＴＡＲＴは、カウンター回路５１５によって数えられたシーケンスを開始するように、制御ブロック５２０によってアサートされてもよい。
【００３４】
読み出し電圧Ｖｒｄにバイアスされているアドレスされたメモリセル１１０のゲート端末において、ビット線ＢＬは、少なくとも一部においてメモリセル１１０の閾値電圧に依存する放電率で放電を開始してもよい。より詳細には、もしメモリセル１１０が相対的に高い閾値電圧に対応するプログラム分布にプログラムされた場合、読み出し電圧Ｖｒｄの値は、アドレスされたメモリセル１１０をターンオンすることができないかもしれない。このような場合、ビット線ＢＬは、アドレスされたメモリセル１１０に逆バイアス接合の存在に基づく実質的に不可避な漏電効果によって放電することができるため、放電率が特に低くなるかもしれない。他方、もし閾値電圧が十分に低い場合、例えば、対応する放電率の増加によって、読み出し電圧Ｖｒｄは（少なくとも部分的には）メモリセル１１０をターンオンすることができるようになる。
【００３５】
カウンター回路５１５は、ビット線ＢＬが放電に使う時間を測定することができる。このような測定は、メモリセル１１０の閾値電圧を示すことができる。より詳細には、もしビット線の電圧Ｖｂｌが参照電圧ＶＲＥＦよりも低下した場合、電圧コンパレータ５０５は、例えば、トリガー信号ＴＲＩＧをアサートすることができる。トリガー信号のアサーションに応答して、制御ブロック５２０は、カウンター回路５１５によって生成されたシーケンスを停止させるように、ストップ信号ＳＴＯＰをアサートすることができる。そして、シーケンスによって与えられた値は、レジスタ５３０の第１セクション５３５に一時的に記憶されてもよい。レジスタ５３０に記憶された値は、アドレスされたメモリセル１１０の閾値電圧について比較的正確な方法で量を測る機会を与えることができる。もし値が“００００００”とは異なる場合、ＮＯＲゲート５４５によって生成された信号ＮＯ  ＤＡＴＡは、閾値電圧が正しく検出されたことを信号で通信しながら、論理的に低い値にスイッチすることができる。
【００３６】
ビット線ＢＬの放電率が非常に低い場合、カウンター回路５１５によって生成されたシーケンスは、例えば、ビット線の電圧Ｖｂｌが参照電圧ＶＲＥＦに到達する前に、値“１１１１１１”に到達することができる。この場合、カウンター回路５１５は、オーバーフロー信号ＯＦＬをアサートすることができるとともに、制御ブロック５２０は、カウンター回路５１５を停止するストップ信号ＳＴＯＰをアサートすることができる。この点において、カウンター回路５１５と予充電電圧ＰＶに戻されるビット線ＢＬとをリセットするリセット信号ＲＥＳＥＴを再びアサートしている制御ブロック５２０で、第１の相（ＲＮ＝０１）が開始されてもよい。検出回路５００は、読み出し電圧Ｖｒｄの値を増加させるものの、前述の動作を再び実行することができる。さらに、ビット配線ＢＬの放電率が非常に低い場合、続いて、例えば、増加した読み出し電圧を用いて、第３の相（ＲＮ＝１０）または第４の相（ＲＮ＝１１）でさえ実行されてもよい。それゆえ、検出回路５００によって実行された動作の検出結果は、デジタル文字列から構成されてもよい。特定の実装例において、このような文字列は、レジスタ５３０に記憶された８ビットのデジタル文字列から構成されてもよく、その値は、アドレスされたメモリセル１１０の閾値電圧を表すことができる。勿論、このような文字列及び上に記載した他の詳細な説明は単なる例示であって、請求項の内容はそのように制限されるものではない。
【００３７】
図５Ｂに示した例において、ビット線の電圧Ｖｂｌは、第４の相の間にのみ参照電圧ＶＲＥＦより低下してもよく、それによって、比較的高いプログラム分布に対応することができる高い閾値電圧を示すことができる。例えば、レジスタ５３０に記憶されたそのような電圧は、メモリセル１１０がどのプログラム分布にプログラムされたかを判定することができないかもしれない。図３を参照して上に記載したように、１６個のプログラム分布Ｄ０，Ｄ１，…，Ｄ１５は、互いにオーバーラップしてもよく、それゆえ、検出回路５００を用いて検出された具体的な閾値電圧は、２つの異なる隣接プログラム分布の１つに属していてもよい。この目的のために、以下に記載するように、更に動作が実行されてもよい。
【００３８】
閾値電圧が正しく検出された場合、レジスタ５３０に記憶された８ビットのデジタル文字列は復号化ユニット１６０に与えられる符号化された出力信号ＤＣＯＵＴを表すことができる。メモリセル１１０は、符号化ユニット１３０によって定義された符号によって具体的なプログラム分布にプログラムされていてもよく、それによって、前記８ビットの文字列によって与えられる情報（例えば、検出された閾値電圧の値）は、（復号化された）出力信号ＤＯＵＴを得るように復号化されてもよい。検出回路５００は、上に記載したように、アドレスされたメモリセル１１０の閾値電圧を、例えば、４つの手順を用いた８ビットの解像度で検出することができる。より詳細には、検出回路５００は、２ビットの文字列ＲＮによって識別された４つの別個の読み出しることを、それぞれ６ビットの解像度で実行することができるが、請求項の内容はこの点に限定されるものではない。各４つの読み出しることは、ビット線ＢＬが再び予充電電圧ＰＶになった後に行われることができる。
【００３９】
メモリセル１１０ごとに予充電している１つのビット線より多く含む必要がない閾値電圧を検出する代わりのアプローチは、上に記載した４つの読み出し動作の１つに実質的に類似する単独の読み出し動作を含むことができるが、例えば、８ビット解像度のように改良された解像度で行ってもよい。しかしながら、このような場合、このような単独の読み出し動作が実行される時間がより長くかかるので、検出することは、メモリセルの漏電効果によって妨げられる虞があり、それゆえ、ビット線ＢＬの放電率は、主としてこのような漏電に基づくものである虞がある。
【００４０】
図６は、本発明の実施形態に係る復号化ユニット１６０を概略的に示すブロック図である。先に記載したように、復号化ユニット１６０は、対応する（復号化された）出力信号ＤＯＵＴを得るように、符号化された出力信号ＤＣＯＵＴに対して復号化動作をすることを実行することができる。復号化ユニット１６０は、例えば、検出された閾値電圧を示している符号化された出力信号ＤＣＯＵＴを受信する計量ユニット６０５を含むことができる。復号化ユニット１６０は、検知された閾値電圧がそれぞれ部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３に属するプログラム分布に属する確率を測ることができる、４つの対応する計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３をそれらに応じて生成することができる。メモリセル１１０が与えることができる閾値電圧のために（例えば、符号化された出力信号ＤＣＯＵＴの値のために）計量ユニット６０５は、例えば、少なくとも一部において、プログラム分布を区分した部分集合Ｄ０，Ｄ１，…，Ｄ１５に基づいて、計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３を計算することができる。勿論、このような復号化ユニットの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００４１】
本発明の実施形態によれば、どのように様々な計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３が計量ユニット６０５によって計算されることができるかについて記載するために、以下に（どのようにプログラム分布Ｄ０，Ｄ１，…，Ｄ１５が部分集合Ｂ０，Ｂ１，Ｂ２，Ｂ３に区分されたかについて説明した）図３と共に図７を参照する。図７Ａは、各部分集合Ｂｉ（ｉ＝０，１，２，３）について、対応する計量関数ＦＢｉを示すものであり、ＦＢｉの傾向は、閾値電圧が部分集合Ｂｉに対応する確率に相関していてもよい。ＦＢｉの傾向は、少なくとも一部において、例えば、メモリセル１１０の閾値電圧１１０に依存してもよい。計量関数ＦＢｉは、プログラム分布の数と、プログラム分布が部分集合に分類された方法とを考慮して確立されてもよい。本発明の実施形態によれば、図７Ａに説明した計量関数ＦＢｉは、部分集合Ｂｉに属する各プログラム分布の中央ピークに対応する最大値を表す周期関数から構成されてもよい。このような周期関数は、ピークに対応する値とは別に、閾値電圧として減少してもよい。例えば、計量関数ＦＢ０は、分布Ｄ０，Ｄ４，Ｄ８，及びＤ１２の中央ピークに対応する４つの閾値電圧の最大値を表してもよい。それゆえ、これらの値が部分集合Ｂ０自身を形成するプログラム分布Ｄ０，Ｄ４，Ｄ８，Ｄ１２の中央に対応することができるため、４つの閾値電圧は部分集合Ｂ０に属する最も高い確率を持つものであってもよい。更に、計量関数ＦＢ０は、プログラム分布Ｄ０，Ｄ４，Ｄ８，Ｄ１２の中央から最も離れたそれらの閾値電圧に対して０に等しくてもよい。例えば、分布Ｄ２のピークに対応する閾値電圧は、部分集合Ｂ０に属する最も近いプログラム分布（例えば、Ｄ０及びＤ４）のピークから最も離れたところに配置されてもよく、それゆえ、０に近い部分集合Ｂ０に含まれたプログラム分布に属する確率を持つ。
【００４２】
本発明の実施形態によれば、計量関数ＦＢ０，ＦＢ１，ＦＢ２，ＦＢ３は、図７Ｂに示すルックアップテーブル７１０等のルックアップテーブルを用いて実装されてもよい。より詳細には、もし符号化された出力信号ＤＣＯＵＴが検出回路５００を用いて（単に例示として、８ビットの解像度で）生成された場合、ルックアップテーブル７１０は、２８＝２５６行を含むことができ、各行はそれぞれの閾値電圧に対応していてもよい。ルックアップテーブル７１０の各行は、行に対応する閾値電圧に関係した４つの計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３を含むことができる。例えば、特定の実装例によれば、４つの計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３は、４つの対応する６ビットのデジタル文字列によって表すことができる。４つの６ビットデジタル文字列の値は、ルックアップテーブル７１０の行に含まれた閾値電圧における計量関数ＦＢ０，ＦＢ１，ＦＢ２，ＦＢ３によって与えられた値に比例してもよい。ルックアップテーブル７１０において、分布Ｄ０のピークに対応する閾値電圧は、ＤＣＯＵＴ＝“８”に対応するように生成されてもよい。その結果、ルックアップテーブル７１０の８行に含まれた計量値ＭＲ０は、“１１１１１１”に等しくてもよく、（プログラム分布Ｄ０から構成される）部分集合Ｂ０に属する閾値電圧が最も高い値である確率を示すことができる。ルックアップテーブル７１０は、対応する読み出し専用メモリ（ＲＯＭ）に記憶されてもよく、または、例えば、計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３のそれぞれ１つに専用の４つの異なるＲＯＭに記憶されてもよい。勿論、このような解像度のビット数は単なる例示であって、請求項の内容はそのように限定されるものではない。
【００４３】
図７Ｃを参照して説明する。図７Ｃは、本発明の実施形態による、読み出し‐プログラムユニット１１５によって生成された、４つの特定の符号化された出力信号ＤＣＯＵＴに応答して、計量ユニット６０５によって生成された計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３について示す。受信された第１の値ＤＣＯＵＴは、値“１３５”から構成されてもよい。例えば、この値は、図４に示した例においてプログラムされた第１のメモリセル１１０によって与えられた閾値電圧に対応することができる。それゆえ、ＤＣＯＵＴ＝“１３５”は、部分集合Ｂ０に属することができるプログラム分布Ｄ８の中央ピークの近傍に位置する閾値電圧に対応することができる。この符号化された特定の出力信号ＤＣＯＵＴを用いて、最も高い計量値は（明確にするために、本明細書において計量値は１０進数で表される）“６０”に等しくすることができるＭＲ０であってもよい。
【００４４】
受信された第２のＤＣＯＵＴ値は、代わりに値“１５７”を持つことができる。この値は、例えば、図４に示した例においてプログラムされた第２のメモリセル１１０によって与えられた閾値電圧に対応することができる。それゆえ、ＤＣＯＵＴ＝“１５７”は、部分集合Ｂ１に属することができるプログラム分布Ｄ９と、部分集合Ｂ２に属することができるプログラム分布Ｄ１０との間の中央値の近くに位置した閾値電圧に対応することができる。実際に、このような特定のＤＣＯＵＴ値を用いて、ＭＲ２＝“３１”であることができる最も高い計量値は、実質的に計量値ＭＲ２＝“３１”に等しくてもよい。
【００４５】
受信した第３のＤＣＯＵＴ値は、代わりに値“８４”から構成されてもよい。例えば、値は図４に示した例においてプログラムされた第３のメモリセル１１０によって与えられた閾値電圧に対応することができる。それゆえ、ＤＣＯＵＴ＝“８４”は、部分集合Ｂ０に属することができるプログラム分布Ｄ４の中央ピークに実質的に近いが、部分集合Ｂ１に属することができるプログラム分布Ｄ５に対してわずかにシフトした位置の閾値電圧に対応することができる。その結果として、ＭＲ０＝“４０”から構成されることができる最も高い計量値は、ＭＲ１＝“２５”から構成されることができる２番目に高い計量値よりも相当に高くてもよい。
【００４６】
最後に、４番目のＤＣＯＵＴ値は、“６１”を持つことができる。この値は、例えば、図４に示した例においてプログラムされた４番目のメモリセル１１０によって与えられた閾値電圧に対応することができる。それゆえ、ＤＣＯＵＴ＝“６１”は、部分集合Ｂ３に属することができるプログラム分布Ｄ３の中央ピークに実質的に近いが、部分集合Ｂ２に属することができるプログラム分布Ｄ２に対してわずかにシフトした位置の閾値電圧に対応することができる。その結果として、ＭＲ３＝“４８”から構成されることができる最も高い計量値は、ＭＲ２＝“２０”から構成されることができる２番目に高い計量値よりも相当に高くてもよい。したがって、第１のメモリセルが部分集合Ｂ０に属するプログラム分布にプログラムされたことを判定してもよい。同様に、第３のメモリセルは、部分集合Ｂ０に属するプログラム分布にプログラムされていてもよく、一方、第４のメモリセルは、部分集合Ｂ３に属するプログラム分布にプログラムされていてもよい。しかしながら、部分集合Ｂ１及びＢ２は近似的に同じ確率を持つことができるので、第２のメモリセルがプログラムされることができた部分集合を決定することは相対的に困難になる虞がある。
【００４７】
そして、以下に更に記載するように、実施形態において復号化ユニット１６０は、符号化ユニット１３０によって符号化されたビット情報を取り出すことができるとともに、ｎ個のメモリセル１１０のグループにこのような情報を記憶することができる。例えば、復号化ユニット１６０は、ｎ個のメモリセル１１０から読み出したＤＣＯＵＴによって計算された計量値に対してソフトディシジョン復号化動作を実行することによって、ビット情報を取り出すことができる。図６に戻って、計量ユニット６０５は、ｎ個のメモリセル１１０から読み出されたＤＣＯＵＴの計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３を累積することができる加算‐比較‐選択（ＡＣＳ）ユニット６１０に結合されてもよい。この方式において、ｉ＝０〜７（例えば、状態Ｓｉ（ｋ）の数）であるパス計量値ＰＭＶｉ（ｋ）は、符号化ユニット１３０によって組み込まれた符号を定義する格子図を形成し、各メモリセルに対して生成されてもよい。このようなパス計量値は、ｎ個のメモリセル１１０に記憶されたビット情報を符号化することに続いた最も確率の高い符号化パスを決定することができる。ｎ個の各メモリセル１１０に対応するパス計量値ＰＭＶｉ（ｋ）は、例えば、パス計量レジスタ６１５に一時的に記憶されてもよい。
【００４８】
復号化ユニット１６０は更に、ｎ個のメモリセル１１０から読み出したＤＣＯＵＴを一時的に記憶する符号化情報レジスタ６１７と、パス計量値ＰＭＶｉ（ｋ）を受信するパス計量レジスタ６１５に結合したトレースバックユニット６２０とから構成されてもよい。少なくとも一部において、受信されたパス計量値ＰＭＶｉ（ｋ）に基づいて、トレースバックユニット６２０は、ｎ個の各メモリセル１１０に対して、特定のメモリセル１１０がプログラムされたプログラム分布を含む部分集合を取り出すために、ソフトディシジョン動作を実行することができる。トレースバックユニット６２０は、特定のメモリセル１１０に予め記憶される線形結合ユニット２０５を介して符号化された信号ＤＩＮの部分から構成されてもよい出力信号ＤＯＵＴの第１の部分を取り出す機能を持つことができる。図２Ｃに示した格子符号２３０によって定義されたＥＣＣを参照すると、トレースバックユニット６２０によって取り出された信号ＤＩＮの部分は、３ビットの文字列ａ１（ｋ），ａ２（ｋ），ａ３（ｋ）のビットａ３（ｋ）を含むことができる。ビットａ３（ｋ）は、ＤＣＩＮのビットｂ３（ｋ），ｂ４（ｋ）を生成するように用いられてもよい。
【００４９】
信号ＤＩＮの符号化されていない（例えば、２ビットａ１（ｋ），ａ２（ｋ））部分に対応する信号ＤＯＵＴの残りの部分を取り出すために、復号化ユニット１６０は、トレースバックユニット６２０及び符号化情報レジスタ６１７に結合したディスクリミネータユニット６２５を更に含むことができる。特に、以下に記載するように、信号ＤＯＵＴの残りの部分は、少なくとも一部において、トレースバックユニット６２０及びＤＣＯＵＴによって取り出された特定の部分集合に基づいて計算されてもよい。
【００５０】
例を記載すると、復号化ユニット１６０は、図４に参照された例において与えられた、符号化された信号ＤＣＩＮによってプログラムされた４つのメモリセル１１０から検出された、符号化された出力信号ＤＣＯＵＴのシーケンスを復号化することができる。それゆえ、第１のメモリセル１１０は、文字列ａ１（ｋ）＝０，ａ２（ｋ）＝１，ａ３（ｋ）＝０によってプログラムされてもよく、第２のメモリセル１１０は、文字列ａ１（ｋ＋１）＝０，ａ２（ｋ＋１）＝１，ａ３（ｋ＋１）＝１によってプログラムされてもよく、第３のメモリセル１１０は、文字列ａ１（ｋ＋２）＝１，ａ２（ｋ＋２）＝０，ａ３（ｋ＋２）＝１によってプログラムされてもよく、第４のメモリセル１１０は、文字列ａ１（ｋ＋３）＝０，ａ２（ｋ＋３）＝０，ａ３（ｋ＋３）＝０によってプログラムされてもよい。復号化ユニット１６０によって実行された動作についての記載は、上記の４つのメモリセルに対応する格子図４０５，４１０，４１５，４２０を含む図８を参照して記載される。
【００５１】
最初のｋ番目の動作サイクルにおいて、計量ユニット６０５は、検出回路５００から、第１のメモリセルの閾値電圧に対応する符号化された第１の出力信号ＤＣＯＵＴを受信することができる。この場合、符号化された出力信号ＤＣＯＵＴは“１３５”に等しくてもよい。既に記載したように、計量ユニット６０５は、この場合、それぞれ“６０”，“１０”，“２”，及び“１２”に等しくすることができる対応する計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３を計算してもよい。
【００５２】
ＡＣＳユニット６１０は、以下に記載するような処理によって、計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３からパス計量値ＰＭＶｉ（ｋ）を生成することができる。上記で説明したように、符号化ユニット１３０によって実行される符号化動作の間、格子図における遷移は対応する部分集合の選択に関連してもよい。したがって、ＡＣＳユニット６１０は、状態Ｓｉ（ｋ）と状態Ｓｉ（ｋ＋１）の間で生じる格子図４０５において可能な各遷移に、その遷移に関連する部分集合の計量値を割り当てることができる。例えば、遷移矢線ｔ００によって特定されることができる、状態Ｓ０（ｋ）から状態Ｓ０（ｋ＋１）への遷移は、部分集合Ｂ０の選択に関連することができるため、ＡＣＳユニット６１０は、この場合、“６０”に等しくすることができる遷移に計量値ＭＲ０を割り当ててもよい。遷移矢線ｔ’０４によって特定される状態Ｓ０（ｋ）から状態Ｓ４（ｋ＋１）への遷移は、代わりに、部分集合Ｂ２の選択に関連してもよい。それゆえ、ＡＣＳユニット６１０は、この場合、“２”に等しくすることができる遷移に計量値ＭＲ２を割り当てることができる。さらに、このような格子図は単なる例示であって、請求項の内容はそのように制限されるものではない。
【００５３】
実施形態において、計量値が格子図４０５の様々な遷移に割り当てられる処理は、対応する「分岐計量集合」を定義することができる。格子図４０５の各状態Ｓｉ（ｋ）に対して、「分岐計量値」として引用される２つの計量値は、それ自身の状態Ｓｉ（ｋ）から分岐する２つの遷移に割り当てられてもよい。このような分岐計量値は、例えば、分岐計量レジスタ６３０に一時的に記憶されてもよい。
【００５４】
そして、格子図４０５の各状態Ｓｉ（ｋ）に対して、ＡＣＳユニット６１０は、２つの対応する計量値を比較してもよく、最も高い値を選択してもよく、選択した計量値にパス計量値ＰＭＶｉ（ｋ）をセットしてもよく、かつ、選択した計量値をパス計量レジスタ６１５に記憶してもよい。この場合、第１のメモリセルに対応するｋ番目の動作サイクルの間に生成されたパス計量値ＰＭＶｉ（ｋ）は、ＰＭＶ０（ｋ）＝“６０”，ＰＭＶ１（ｋ）＝“１２”，ＰＭＶ２（ｋ）＝“６０”，ＰＭＶ３（ｋ）＝“１２”，ＰＭＶ４（ｋ）＝“６０”，ＰＭＶ５（ｋ）＝“１２”，ＰＭＶ６（ｋ）＝“６０”，ＰＭＶ７（ｋ）＝“１２”から構成されてもよい。
【００５５】
後続の（ｋ＋１）番目の動作サイクルの間に、計量ユニット６０５は、検出回路５００から、第２のメモリセルの閾値電圧に対応することができる符号化された第２の出力信号ＤＣＯＵＴを受信することができる。この場合、例えば、ＤＣＯＵＴは、“１５７”に等しくてもよく、対応する計量値ＭＲ０，ＭＲ１，ＭＲ２，ＭＲ３は、それぞれ“８”，“２９”，“３１”，及び“１１”に等しくてもよい。先に記載したように、このような新しい計量値を用いることによって、ＡＣＳユニット１６０は、格子図４１０に対応する新しい分岐計量集合を生成することができるとともに、分岐計量集合を分岐計量レジスタ６３０に記憶することができる。
【００５６】
実施形態において、格子図４１０の各状態Ｓｉ（ｋ＋１）に対して、ＡＣＳユニット６１０は、２つの対応する計量値を比較し、最も高い値を選択し、かつ、選択した計量値と、パス計量レジスタ６１５に既に記憶された先行のｋ番目の動作サイクルにおいて計算されたパス計量値ＰＭＶｉ（ｋ）との間の計量値の和に対して、パス計量値ＰＭＶｉ（ｋ＋１）を設定することができる。ＡＣＳユニット６１０は、パス計量レジスタ６１５にパス計量値を記憶することができる。この場合、第２のメモリセルに対応するパス計量値ＰＭＶｉ（ｋ＋１）の結果は、ＰＭＶ０（ｋ＋１）＝“６８”，ＰＭＶ１（ｋ＋１）＝“８９”，ＰＭＶ２（ｋ＋１）＝“９１”，ＰＭＶ３（ｋ＋１）＝“７１”，ＰＭＶ４（ｋ＋１）＝“９１”，ＰＭＶ５（ｋ＋１）＝“７１”，ＰＭＶ６（ｋ＋１）＝“６８”，ＰＭＶ７（ｋ＋１）＝“８９”から構成されてもよい。勿論、このような計量値を割り当てることの詳細は単なる例示であって、請求項の内容はそのように限定されるものではない。（ｋ＋２）番目の動作サイクルの間に生成され、かつ、第３のメモリセルに対応するパス計量値ＰＭＶｉ（ｋ＋２）は、ＰＭＶ０（ｋ＋２）＝“１０８”，ＰＭＶ１（ｋ＋２）＝“１１６”，ＰＭＶ２（ｋ＋２）＝“１１１”，ＰＭＶ３（ｋ＋２）＝“１１１”，ＰＭＶ４（ｋ＋２）＝“１２９”，ＰＭＶ５（ｋ＋２）＝“９９”，ＰＭＶ６（ｋ＋２）＝“１３１”，ＰＭＶ７（ｋ＋２）＝“９７”から構成されてもよい。更に、（ｋ＋３）番目の動作サイクルの間に生成され、かつ、第４のメモリセルに対応するパス計量値ＰＭＶｉ（ｋ＋３）は、ＰＭＶ０（ｋ＋３）＝“１３６”，ＰＭＶ１（ｋ＋３）＝“１５９”，ＰＭＶ２（ｋ＋３）＝“１４９”，ＰＭＶ３（ｋ＋３）＝“１７９”，ＰＭＶ４（ｋ＋３）＝“１２８”，ＰＭＶ５（ｋ＋３）＝“１５９”，ＰＭＶ６（ｋ＋３）＝“１４０”，ＰＭＶ７（ｋ＋３）＝“１４５”から構成されてもよい。
【００５７】
実施形態において、パス計量値ＰＭＶｉ（ｋ），ＰＭＶｉ（ｋ＋１），ＰＭＶｉ（ｋ＋２），ＰＭＶｉ（ｋ＋３）は、各動作サイクルにおいて、かつ、格子図の各状態に対して、最も高い計量値を持つ遷移を選択することによって生成されてもよい。したがって、線形結合ユニット２０５に与えられた信号ＤＩＮの部分を符号化する符号化ユニット１３０が後続する符号化パスを取り出すことがここで可能になる。特に、トレースバックユニット６２０は、パス計量レジスタ６１５にアクセスし、読み出す最後のメモリセル１１０に対応するパス計量値ＰＭＶｉ（ｋ＋３）をスキャンすることができ、かつ、例えば、最も高い計量値ＰＭＶｉ（ｋ＋３）持つ状態Ｓｉ（ｋ＋４）を選択することができる。ソフトディシジョンを用いて、この状態は、取り出される符号化パスの最終状態の最も確率の高い候補とすることができる。現在の例において、この状態は、“１７９”に等しいパス計量ＰＭＶｉ（ｋ＋３）を持つ状態Ｓ3（ｋ＋４）から構成されてもよい。
【００５８】
この点において、符号化パスの先行の状態（この場合、（ｋ＋３）状態）をトレースバックするために、トレースバックユニット６２０は、状態Ｓｉ（ｋ＋３）から、選択した状態Ｓｉ（ｋ＋４）までチェックすることができる。この場合、このような遷移は、状態Ｓ６（ｋ＋３）から始まる遷移と、状態Ｓ７（ｋ＋３）から始まる遷移とを含むことができる。そして、トレースバックユニット６２０は、最も高いパス計量ＰＭＶｉ（ｋ＋２）を持つ状態Ｓｉ（ｋ＋３）から始まる遷移を選択することができる。選択した状態は、取り出された符号化パスの最後から２番目の状態を表すことができる。この例において、選択した状態は、“１３１”に等しいパス計量値ＰＭＶｉ（ｋ＋２）を持つ状態Ｓ６（ｋ＋３）から構成されてもよい。符号化パスの最後の２つの状態に結び付く遷移を決定すると、格子図の各遷移が、例えば、特定の部分集合（この場合、部分集合Ｂ３）の選択に関連することができるので、第４のメモリセル１１０の閾値電圧がプログラムされる部分集合を取り出すことが可能になる。
【００５９】
先に記載したように、格子図において、状態の対の間での各遷移は、符号化された信号ＤＩＮの部分の対応する値にも関連することができる。すなわち、符号化パスの最後の２つの状態に結び付ける遷移を決定すると、第４のメモリセル１１０に記憶されたビットａ３（ｋ＋３）を取り出すことが可能になる。この例において、選択した遷移は状態Ｓ６（ｋ＋３）から始まるとともに状態Ｓ６（ｋ＋４）で終わることができ、ａ３（ｋ＋３）＝“０”に対応することができる。この点において、処理は、最も高いパス計量値を持つそれらの遷移を選択することによって、符号化パスの他の先行の状態をトレースバックするために繰り返されてもよい。
【００６０】
図８を参照して、上に記載した処理で取り出された符号化パスは、太線で示されるとともに、（最初から最後までの）状態シーケンスＳ０（ｋ）‐Ｓ０（ｋ＋１）‐Ｓ４（ｋ＋２）‐Ｓ６（ｋ＋３）‐Ｓ３（ｋ＋４）を含む。符号化されていない信号ＤＩＮの部分に対応する信号ＤＯＵＴの残りの部分（例えば、ビットａ１（ｋ），ａ２（ｋ），ａ１（ｋ＋１），ａ２（ｋ＋１），ａ１（ｋ＋２），ａ２（ｋ＋２），ａ１（ｋ＋３），及びａ２（ｋ＋３））は、代わりにディスクリミネータユニット６２５によって取り出されてもよい。特に、各メモリセル１１０に対して、ディスクリミネータユニット６２５は、少なくとも一部において、メモリセル１１０の閾値電圧がプログラムされた部分集合に基づくとともに、少なくとも一部において、そのメモリセル１１０の閾値電圧を表すＤＣＯＵＴに基づいた信号ＤＯＵＴの部分を取り出すことが可能になる。閾値電圧は、トレースバックユニット６２０によって決定されてもよい。ＤＣＯＵＴは符号化情報レジスタ６１７に記憶されてもよい。
【００６１】
実施形態において、部分集合に属するプログラム分布は、互いにオーバーラップすることはなく、部分集合内の各プログラム分布は、信号ＤＩＮの決定部分（例えば、符号化されなかった部分）に関連することができる。したがって、メモリセル１１０の閾値電圧がプログラムされた部分集合及び閾値電圧それ自体を知ることにより、閾値電圧がプログラムされた特定のプログラム分布及び信号ＤＩＮの関連部分を識別することができるようになる。例えば、先の例の第４のメモリセル１１０を参照すると、トレースバックユニット６２０は、その閾値電圧がプログラムされた部分集合が部分集合Ｂ３であると決定することができる。図３を参照すると、部分集合Ｂ３は、プログラム分布Ｄ３，Ｄ７，Ｄ１１，及びＤ１５を含むことができる。関連したＤＣＯＵＴは、部分集合Ｂ３に属するプログラム分布Ｄ３の中央ピーク付近に位置し、かつ、部分集合Ｂ２に順次属するプログラム分布Ｄ２にわずかにシフトした閾値電圧に対応することができる（図７Ｃ参照）。したがって、その閾値電圧がプログラムされた部分集合が部分集合Ｂ３から構成されることを知ることにより、閾値電圧がプログラム分布Ｄ３にプログラムされたかどうかを判定する方法を可能にする。例えば、各部分集合Ｄ０，Ｄ１，Ｄ２，Ｄ３のプログラム分布は、ｂ１（ｋ＋３）＝０及びｂ２（ｋ＋３）＝０に関連してもよく、各部分集合Ｄ４，Ｄ５，Ｄ６，Ｄ７のプログラム分布は、ｂ１（ｋ＋３）＝１及びｂ２（ｋ＋３）＝０に関連してもよく、各部分集合Ｄ８，Ｄ９，Ｄ１０，Ｄ１１のプログラム分布は、ｂ１（ｋ＋３）＝０及びｂ２（ｋ＋３）＝１に関連してもよく、各部分集合Ｄ１２，Ｄ１３，Ｄ１４，Ｄ１５のプログラム分布は、ｂ１（ｋ＋３）＝１及びｂ２（ｋ＋３）＝１に関連してもよい。Ｂ１（ｋ＋３）＝ａ１（ｋ＋３），ｂ２（ｋ＋３）＝ａ２（ｋ＋３）であるから、第４のメモリセル１１０に対応する信号ＤＣＯＵＴの残りの部分は、ａ１（ｋ＋３）＝０，ａ２（ｋ＋３）＝０から構成されてもよい。このような４つのメモリセルの動作例を繰り返すことによって、信号ＤＯＵＴが取り出されてもよい。例えば、第１のメモリセル１１０に対して、ａ１（ｋ）＝０，ａ２（ｋ）＝１，ａ３（ｋ）＝０であり、第２のメモリセル１１０に対して、ａ１（ｋ＋１）＝０，ａ２（ｋ＋１）＝１，ａ３（ｋ＋１）＝１であり、第３のメモリセル１１０に対して、ａ１（ｋ＋２）＝１，ａ２（ｋ＋２）＝０，ａ３（ｋ＋２）＝１であり、第４のメモリセル１１０に対して、ａ１（ｋ＋３）＝０，ａ２（ｋ＋３）＝０，ａ３（ｋ＋３）＝０である。
【００６２】
先に記載した符号化‐復号化ユニット１２０によって実行された動作は、線形結合ユニット２０５の構造によって定義された特定の畳み込み符号と、特定の部分集合区分とを用いることができる。しかしながら、部分集合と、メモリセルに記憶された情報を符号化することに用いた符合とが異なる場合、同様の考慮が適用されてもよい。例えば、上に記載した実施形態において、各メモリセル１１０に（例えば、ビットａ１（ｋ），ａ２（ｋ），ａ３（ｋ）によって形成された符号化されていない文字列等の）３ビットの情報を記憶するために、各メモリセル１１０は、対応する（符号化された）文字列ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）に対応して与えられた値に基づいて、１６個のプログラム分布Ｄ０，Ｄ１，…，Ｄ１５に対応する１６個の異なる状態の中から対応する１つの状態にプログラムされてもよい。プログラム分布の数は、文字列ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）を形成するビットの数によって定義されてもよい。この文字列は、文字列を生成するために用いた符号によって導入された冗長性によって順次定義されてもよい。
【００６３】
メモリセルに固有の許容誤差によって導入された限界のために、上の例において記載したように、例えば、１６個等のプログラム分布の数は過大になるかもしれず、隣接するプログラム分布において過剰のオーバーラップを生じるかもしれない。少な目の数のプログラム分布を用いて同数のビット情報を記憶するアプローチは、１以上のメモリセルに対応するブロックに記憶される情報を符号化することを含んでもよい。このようにして、符号によって定義された冗長性は、ブロックに対応するメモリセルへと細分化されてもよい。その結果、各メモリセルがプログラムされることができるプログラム分布の数は低減されてもよい。このような解決の仕方がどのように実装されることができるかを示す例について、図９Ａ、図９Ｂ、及び図９Ｃを参照して説明する。特定の例において、メモリに記憶される情報は、１６ビットの各ブロックがアドレスされたメモリセル１１０の対応する対に記憶されることができる、６ビットの情報のブロックから構成されてもよい。この目的のために、符号化ユニット１３０は、結果として、例えば、符号化ユニット９１０に変更されてもよい。特定の実装例において、アドレスされたメモリセル１１０の対に記憶される信号ＤＩＮは、６ビットの文字列ａ１（ｋ），ａ２（ｋ），ａ３（ｋ），ａ４（ｋ），ａ５（ｋ），ａ６（ｋ）によって表されてもよい。符号化ユニット９１０は、符号化された信号ＤＣＩＮを得るように信号ＤＩＮを形成する６ビットの文字列を符号化してもよい。符号化ユニット９１０は、信号ＤＩＮに冗長性を加える線形符号化スキームを用いる畳み込み符号化器から構成されてもよい。この場合、しかしながら、符号化ユニット９１０によって導入された冗長性は、メモリセル１１０の対あたり１ビットから構成されてもよい。信号ＤＩＮを形成する６ビットの各文字列ａ１（ｋ），ａ２（ｋ），ａ３（ｋ），ａ４（ｋ），ａ５（ｋ），ａ６（ｋ）は、符号化された信号ＤＣＩＮを形成する、対応する７ビットの記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ），ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）に符号化されてもよい。そして、このような７ビットの記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ），ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）は、アドレス符号ＡＤＲによってアドレスされたメモリセル１１０の対に記憶される読み出し‐プログラムユニット１１５に与えられてもよい。本発明の実施形態によれば、ビットｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ）は、ビットａ１（ｋ），ａ２（ｋ），ａ３（ｋ），ａ４（ｋ）に同期することができ、一方、ビットｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）は、図９Ｂに示すように、線形結合ユニット９２０によって、ビットａ５（ｋ），ａ６（ｋ）から生成されてもよい。６ビットの文字列ａ１（ｋ），ａ２（ｋ），ａ３（ｋ），ａ４（ｋ），ａ５（ｋ），ａ６（ｋ）は、対応する７ビットの記号ｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ），ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）に符号化されることができるので、メモリセル１１０の各対は、２７＝１２８個の異なる状態にプログラムされてもよい。
【００６４】
したがって、アドレスされた対の各メモリセル１１０は、（第１のメモリセル対の）それぞれ１２個のプログラム分布Ｅ０，Ｅ１，…，Ｅ１１と、（第２のメモリセル対の）それぞれ１２個のプログラム分布Ｆ０，Ｆ１，…，Ｆ１１に対応して、１２個の異なる状態の中の対応する１つの状態にプログラムされてもよい。この方法において、メモリセルの各対１１０がプログラムされることが可能である１２８個の異なる状態において各状態は、プログラム対Ｅｉ，Ｅｊ（ｉ＝１〜１１，ｊ＝１〜１１）によって定義された１２＊１２＝１４４個の状態の中の対応する状態に関連してもよい。したがって、このような値で、１４４−１２８＝１６個の分布対Ｅｉ，Ｅｊを用いる必要がない。
【００６５】
ビットｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ），ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）の値と、プログラム分布対Ｅｉ，Ｅｊとによって特定された１２８個の状態の間の関係は、符号化ユニット９１０または読み出し‐プログラムユニット１１５に含まれたマッピングユニット（図示せず）によって定義されてもよい。この場合においてさえ、ビットｂ１（ｋ），ｂ２（ｋ），ｂ３（ｋ），ｂ４（ｋ），ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）によって定義された１２８個の状態と、様々なプログラム分布対Ｅｉ，Ｅｊとの間の関係は、部分集合を区分することを含んでもよい。より詳細には、図９Ｃに示すように、１２８個の状態は、２３＝８個の異なる部分集合ＳＢ０，ＳＢ１，ＳＢ２，ＳＢ３，ＳＢ４，ＳＢ５，ＳＢ６，ＳＢ７に区分されてもよく、各部分集合は２４＝１６個のプログラム分布対Ｅｉ，Ｅｊを含んでいる。各部分集合は、線形結合ユニット９２０によって生成された対応する文字列ｂ５（ｋ），ｂ６（ｋ），ｂ７（ｋ）の値によって特定されてもよい。さらに、各部分集合ＳＢ０，ＳＢ１，ＳＢ２，ＳＢ３，ＳＢ４，ＳＢ５，ＳＢ６，ＳＢ７によって、様々なプログラム分布の対Ｅｉ，Ｅｊ間の「距離」は、このようにして同一のプログラム分布間のオーバーラップを避けるように増加されてもよい。
【００６６】
図１０は、本発明の実施形態に係るコンピュータシステム及びメモリデバイスを概略的に示す図である。このようなコンピュータシステムは、例えば、アプリケーション及び／または他のコードを実行するように、１以上のプロセッサから構成されてもよい。例えば、メモリデバイス８１０は、図１に示したメモリ１００から構成されてもよい。コンピュータデバイス８０４は、メモリデバイス８１０を管理するように設定可能な任意の典型的なデバイス、器具、または装置であってもよい。メモリデバイス８１０は、メモリコントローラ８１５及びメモリ８２２を含んでもよい。例示であって制限されるものではないが、コンピュータデバイス８０４は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス、またはこれらに類似するような、１以上のコンピュータデバイス及び／またはプラットフォームと、例えば、パーソナルデジタルアシスタント（ＰＤＡ）、モバイル通信デバイス、またはこれらに類似するような、１以上のパーソナルコンピュータまたは通信デバイスまたは通信器具と、例えば、データベースまたはデータストレージサービスプロバイダ／システム等の、コンピュータシステム、及び／または提携サービスプロバイダ機能と、及び／またはこれらの任意の組み合わせとを具備することができる。
【００６７】
システム８００に示した様々なデバイスの全部または一部は、ハードウェア、ファームウェア、ソフトウェア、または、これらの任意の組み合わせを用いて、あるいは、それらを含むことによって組み込まれてもよいと認識されるものである。それゆえ、例示であって限定されるものではないが、コンピュータデバイス８０４は、バス８４０と、ホストまたはメモリコントローラ８１５を通してメモリ８２２に機能的に連結されている少なくとも１つの処理装置８２０を含むことができる。処理装置８２０は、データ計算手続きまたはデータ計算処理の少なくとも一部を実行するように設定可能な１以上の典型的な回路である。例示であって限定されるものではないが、処理装置８２０は、１以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、アプリケーション特化集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイ、及び類似物、またはこれらの任意の組み合わせを含むことができる。処理装置８２０は、メモリコントローラ８１５と通信するように設定されたオペレーティングシステムを含むことができる。このようなオペレーティングシステムは、例えば、バス８４０によってメモリコントローラ８１５に送信されるコマンドを生成することができる。このようなコマンドは、読み出しコマンド及び／または書き込みコマンドを含むことができる。書き込みコマンドに応答して、例えば、メモリコントローラ８１５は、例えば、メモリパーティションへのコマンド書き込みに関連した情報を書き込みセットパルスまたはリセットパルス等のバイアス信号を与えることができる。実施形態において、メモリコントローラ８１５はメモリデバイス８１０を動作することができ、処理装置８２０は、１以上のアプリケーションをホストすることができ、かつ／または、例えば、ホストがメモリデバイス８１０内のメモリセルにアクセスするようにメモリコントローラに対してコマンドの書き込みを開始することができる。
【００６８】
一実施形態において、システムは、１以上のマルチレベルメモリセルに渡って情報を記憶するメモリアレイと、情報の値を決定するメモリアレイにソフトディシジョン及び畳み込み符号化を適用するコントローラと、メモリデバイスを動作させるメモリデバイスコントローラとを含むメモリデバイスから構成されてもよい。システムは更に、１以上のアプリケーションをホストするとともに、ホストがメモリセルアレイ内のメモリセルにアクセスするように、メモリデバイスコントローラに対して書き込みコマンド及び／または読み出しコマンドを開始させるプロセッサを含んでもよい。
【００６９】
メモリ８２２は、典型的な任意のデータ記憶機構である。メモリ８２２は、例えば、プライマリストレージユニット８２４、及び／またはセカンダリストレージユニット８２６を含むことができる。プライマリストレージユニット８２４は、例えば、ランダムアクセスメモリ、読出し専用メモリなどを含み得る。この例では、処理装置８２０とは別のものであるとして示されているが、プライマリストレージユニット８２４の全部または一部は、処理装置８２０内に設けられているか、あるいは処理装置８２０と同じ場所に設置されているか、または処理装置８２０に結合していると理解されるべきものである。
【００７０】
セカンダリストレージユニット８２６は、例えば、プライマリストレージユニットと同型または類似型のメモリ、及び／または、例えば、ディスクドライブ、光学ディスクドライブ、テープドライブ、固体状態記憶ドライブなどの１以上のデータ記憶デバイスまたはシステムを含むことができる。いくらかの実施形態において、セカンダリストレージユニット８２６はコンピュータ読み取り可能メディア８２８を動作的に受信可能であってもよく、またはコンピュータ読み取り可能メディア８２８に結合するように設定可能であってもよい。コンピュータ読み取り可能メディア８２８は、例えば、システム８００内の１以上のデバイスに、アクセス可能なデータ、コード、及び／または命令を伝送でき、かつ／または、アクセス可能なデータ、コード、及び／または命令を生成できる、任意のメディアを含んでもよい。
【００７１】
コンピュータデバイス８０４は、例えば、入力／出力８３２を含むことができる。入力／出力８３２は、人及び／または機械入力を受け入れるように、あるいは人及び／または機械入力を導入するように設定することができる１以上の典型的なデバイスまたは機構であるとともに／あるいは、人または機械出力に伝えるように、または人または機械出力に与えるように設定可能な１以上のデバイスまたは機構である。例示であって限定されるものではないが、入力／出力デバイス８３２は、動作的に設定されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポートなどを含むことができる。
【００７２】
本発明の実施形態であると現時点で考えられることについて説明するとともに記載してきたが、請求項の内容から逸脱することなく他の様々に変更されてもよく、かつ均等なものに置換されてもよいと当業者に認識されるべきものである。更に、本発明の精神から逸脱することなく、請求項の内容の教示に対して特定の状況を適用するように多くの変更がなされてもよい。それゆえ、は、開示した前の実施形態に制限されるものではないと意図されるとともに、そのような請求項の内容はまた、添付の特許請求の範囲内及びその均等物にある全ての実施形態を包含することができると意図される。
【図１】
0005555840.tif 000002
【図２Ａ】
0005555840.tif 000003
【図２Ｂ】
0005555840.tif 000004
【図２Ｃ】
0005555840.tif 000005
【図３】
0005555840.tif 000006
【図４】
0005555840.tif 000007
【図５Ａ】
0005555840.tif 000008
【図５Ｂ】
0005555840.tif 000009
【図６】
0005555840.tif 000010
【図７Ａ】
0005555840.tif 000011
【図７Ｂ】
0005555840.tif 000012
【図７Ｃ】
0005555840.tif 000013
【図８】
0005555840.tif 000014
【図９Ａ】
0005555840.tif 000015
【図９Ｂ】
0005555840.tif 000016
【図９Ｃ】
0005555840.tif 000017
【図１０】
0005555840.tif 000018