(58)【調査した分野】(Int.Cl.,DB名)
前記計算するステップは、可能な2つの2進値のそれぞれに関して、前記可能な2つの2進値に関連するすべてのデータ・レベルについて、所与のデータ・レベル、sに関して読み取り値、rを測定する前記確率を総計するステップをさらに備える請求項1に記載の方法。
【発明を実施するための形態】
【0021】
本発明の様々な態様は、シングルレベル・セルNANDフラッシュ・メモリ・デバイスまたはMLC(マルチレベル・セル)NANDフラッシュ・メモリ・デバイスなどのメモリ・デバイスにおいてICIを軽減するための信号処理技術を対象とする。本明細書で使用される、マルチレベル・セル・フラッシュ・メモリは、各メモリ・セルが2ビット以上を格納するメモリを備える。通常、1つのフラッシュ・セルの中に格納された複数のビットは、異なるページに属する。本発明は、アナログ値を電圧として格納するメモリ・セルを使用して本明細書で説明されるが、本発明は、当業者には明白なとおり、格納されたデータを表すのに電圧、または電流を使用するなどの、フラッシュ・メモリに関する任意の格納機構と共に使用され得る。
【0022】
図1は、従来のフラッシュ・メモリ・システム100の概略ブロック図である。
図1に示されるとおり、例示的なフラッシュ・メモリ・システム100は、フラッシュ制御システム110と、フラッシュ・メモリ・ブロック160とを備える。例示的なフラッシュ制御システム110は、フラッシュ・コントローラ120と、符号器/復号器ブロック140と、1つまたは複数のバッファ145とを備える。代替の実施形態において、符号器/復号器ブロック140およびいくつかのバッファ145は、フラッシュ・コントローラ120内部に実装されてもよい。符号器/復号器ブロック140およびバッファ145は、例えば、よく知られた市販の技術および/または製品を使用して実施されることが可能である。
【0023】
例示的なフラッシュ・メモリ・ブロック160は、よく知られた市販の技術および/または製品を使用して、それぞれ実施されることが可能なメモリ・アレイ170と、1つまたは複数のバッファ180とを備える。メモリ・アレイ170は、NANDフラッシュ・メモリ、PCM(相変化メモリ)、MRAMメモリ、NORフラッシュ・メモリ、または別の不揮発性フラッシュ・メモリなどのシングルレベル・セル・フラッシュ・メモリまたはマルチレベル・セル・フラッシュ・メモリとして実施されることが可能である。本発明は、主に、マルチレベル・セルNANDフラッシュ・メモリのコンテキストにおいて例示されるが、本発明は、当業者には明白なとおり、シングルレベル・セル・フラッシュ・メモリおよびその他の不揮発性メモリにも適用され得る。
【0024】
(マルチレベル・セル・フラッシュ・メモリ)
マルチレベル・セルNANDフラッシュ・メモリにおいて、しきい値検出器が、或る特定のセルに関連する電圧値を、事前定義されたメモリ状態に変換するのに通常、使用される。
図2は、参照により本明細書に組み込まれている米国特許第6,522,580号の教示に基づく、
図1の例示的なマルチレベル・セル・フラッシュ・メモリ170に関する例示的なしきい値電圧分布を示す。一般に、セルのしきい値電圧は、セルが或る量の電流を伝導するようにセルに印加される必要がある電圧である。しきい値電圧は、セルの中に格納されたデータに関する測度である。
【0025】
図2に示される例示的な実施形態において、各格納要素は、可能な4つのデータ状態を使用して、各メモリ・セルの中に2ビットのデータを格納する。
図2は、4つのピーク210〜213を示し、各ピークは、1つの状態に対応する。マルチレベル・セル・フラッシュ・デバイスにおいて、しきい値電圧分布グラフ200の異なるピーク210〜213が、セルの中に2ビットを格納するために使用される。
【0026】
しきい値電圧分布グラフ200のピーク210〜213には、対応する2進値でラベルが付けられる。このため、セルが第1の状態210にある場合、セルは、低い方のビット(最下位ビット、LSBとしても知られる)に関して「1」を表し、高い方のビット(最上位ビット、MSBとしても知られる)に関して「1」を表す。状態210は、一般に、セルの初期の未だにプログラミングされていない状態、または消去された状態である。同様に、セルが第2の状態211にある場合、セルは、低い方のビットに関して「0」を表し、高い方のビットに関して「1」を表す。セルが第3の状態212にある場合、セルは、低い方のビットに関して「0」を表し、高い方のビットに関して「0」を表す。最後に、セルが第4の状態213にある場合、セルは、低い方のビットに関して「1」を表し、高い方のビットに関して「0」を表す。
【0027】
しきい値電圧分布210は、0ボルトを下回る負のしきい値電圧レベルで、消去された状態(「11」データ状態)にあるアレイ内のセルのしきい値電圧V
tの分布を表す。「10」ユーザ・データを格納するメモリ・セルのしきい値電圧分布211が、0ボルトから1ボルトまでの範囲内にあるように示され、「00」ユーザ・データを格納するメモリ・セルのしきい値電圧分布212が、1ボルトから2ボルトまでの範囲内にあるように示される。しきい値電圧分布213は、しきい値電圧レベルが2ボルトから4.5ボルトまでの範囲内の読み取り走査電圧に設定された、「01」データ状態にプログラミングされているセルの分布を示す。
【0028】
このように、
図2の例示的な実施形態において、0ボルト、1ボルト、および2ボルトが、各レベルまたは各状態の間の電圧レベルしきい値として使用され得る。これらの電圧レベルしきい値は、フラッシュ・メモリ160(例えば、フラッシュ・メモリ160における感知回路)によって、所与のセルの電圧レベルまたは電圧状態を判定するのに使用される。フラッシュ・メモリ160は、測定された電圧を電圧レベルしきい値と比較することに基づいて、各セルに1つまたは複数のビットを割り当て、これらの割当ては、次に、ハード判定としてフラッシュ制御システム110に伝送される。さらに、または代替として、ソフト情報を使用する実施例において、フラッシュ・メモリ160は、メモリ・セルの中に格納されたビットの数より多くのビットが、測定された電圧を表すのに使用される場合に、測定された電圧、または測定された電圧の量子化されたバージョンをソフト情報としてフラッシュ制御システム110に伝送することが可能である。
【0029】
セルは、通常、よく知られたプログラミング/検証技術を使用してプログラミングされることにさらに留意されたい。一般に、プログラミング/検証サイクル中、フラッシュ・メモリ160は、最小限のターゲットしきい値電圧を超えるまで、高まる電圧を徐々に印加して、セル・トランジスタの中に電荷を格納する。例えば、
図2の例における「10」データ状態をプログラミングする際、フラッシュ・メモリ160は、0.4ボルトという最小限のターゲットしきい値電圧を超えるまで、高まる電圧を徐々に印加して、セル・トランジスタの中に電荷を格納する。
【0030】
後段でさらに説明するとおり、シングル・メモリ・セルの中に格納される2ビットのそれぞれは、異なるページからである。つまり、各メモリ・セルの中に格納された2ビットの各ビットには、異なるページ・アドレスが付いている。
図2に示される右側のビットは、下位のページ・アドレスが入力されると、アクセスされる。左側のビットは、上位のページ・アドレスが入力されると、アクセスされる。
【0031】
図3は、MLC(マルチレベル・セル)フラッシュ・メモリ・デバイス160における例示的なフラッシュ・セル・アレイ300のアーキテクチャを示し、それぞれの例示的なセルは、通常、2ビットを格納する浮動ゲート・トランジスタに対応する。
図3で、各セルは、その2ビットが属する2つのページに関する2つの番号に関連する。例示的なセル・アレイ・セクション300は、ワード線n乃至n+2、および4つのビット線を示す。例示的なフラッシュ・セル・アレイ300は、偶ページと奇ページに分割され、ただし、例えば、偶数番号を有するセル(番号0および2を有するセルなどの)は、偶ページに対応し、奇数番号を有するセル(番号1および3を有するセルなどの)は、奇ページに対応する。ワード線nは、例えば、偶ビット線の中に偶ページ0および2を格納し、奇ビット線の中に奇ページ1および3を格納する。
【0032】
さらに、
図3は、偶ビット線または奇ビット線が、示された順序で順次に(ボトムアップで)選択され、プログラミングされる例示的なプログラミング・シーケンスを示す。番号は、それらのページがプログラミングされる順序を示す。例えば、ページ0は、ページ1より前にプログラミングされる。偶ページおよび奇ページのプログラミングのさらなる説明に関しては、例えば、参照により本明細書に組み込まれている、Ki−Tae Park他、「A Zeroing Cell−to−Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories」、IEEE Journal of Solid−State Circuits、Vol.43、No.4、919〜928頁、(2008年4月)を参照されたい。
【0033】
図4は、
図2の電圧割当てスキームに関する例示的な2段階MLCプログラミング・スキーム400を示す。
図4に示されるとおり、LSBプログラミング段階中、消去された状態410にある選択されたセルの状態は、LSBがゼロである場合、プログラミングされた最低の状態411に移る。このため、LSBプログラミング段階で、メモリ・セルは、消去された状態「11」から「10」にプログラミングされる。次に、MSBプログラミング段階中、2つの状態、状態「00」(412)および状態「10」(413)が、前のLSBデータに依存して順次に形成される。一般に、MSBプログラミング段階中、「10」状態は、「00」にプログラミングされ、状態「11」は、「01」にプログラミングされる。
【0034】
図4のプログラミング・スキーム400は、状態410から状態413への状態の変化に関連する最大電圧シフトを例示することが注目される。状態の変化に関連する最大電圧シフトを低減し、その結果、電圧シフトによって生じるICIを低減する、いくつかのプログラミング・スキームが提案または示唆されている。
【0035】
図5Aおよび
図5Bは一緒になって、隣接セルに加えられるICIを低減する代替のMLCプログラミング・スキーム500を示す。
図5Aに示されるとおり、LSBプログラミング段階中、メモリ・セルが、SLCプログラミングと同様の仕方で、状態「11」から、一時的(または中間)状態として状態「x0」にプログラミングされる。同一のワード線における隣接セルもLSBプログラミングされた後、分布は、ICIに起因して、
図5Aにおけるピーク510によって示されるとおり、場合により、広くなっている。その後、
図5Bに示されるMSBプログラミング段階で、「x0」状態が、入力データに対応する最終段階として「00」または「10」にプログラミングされ、さもなければ、「11」状態が、最終の「01」状態にプログラミングされる。一般に、「11」セルを除くすべてのメモリは、隣接セルによって生じるICIが大きく低減され得るように、LSBデータに関する一時的にプログラミングされた状態から、MSBプログラミング状態における最終状態に再プログラミングされる。最終状態におけるセルは、最終状態に再プログラミングされているので、中間状態にある間にセルが経験したICIを被らない。最終状態におけるセルは、最終状態になってからセルが経験したICIだけしか被らない。前述したとおり、中間プログラミング段階を使用する
図5Aおよび
図5Bのマルチステップ・プログラミング・シーケンスは、最大電圧変化を低減し、したがって、これらの電圧変化によって生じるICIを低減する。
図5Bで、例えば、MSBプログラミング段階中の最大電圧シフトは、状態「11」から「01」への遷移、および状態「x0」から「10」への遷移にそれぞれ関連することを見て取ることができる。これらの電圧シフトは、
図4における状態「11」から「01」への最大電圧シフトと比べて、相当に小さい。
【0036】
図6は、MLC(マルチレベル・セル)フラッシュ・メモリ・デバイス130における例示的なフラッシュ・セル・アレイ600をさらに詳細に示す。
図6に示されるとおり、フラッシュ・セル・アレイ600は、1フラッシュ・セル、c
i当り3ビットを格納する。
図6は、1ブロックに関するフラッシュ・セル・アレイ・アーキテクチャを示し、ただし、それぞれの例示的なセルは、3ビットを格納する浮動ゲート・トランジスタに通常、対応する。例示的なセル・アレイ600は、m個のワード線と、n個のビット線とから成る。通常、現行のマルチページ・セル・フラッシュ・メモリにおいて、単一のセル内の複数のビットは、異なるページに属する。
図6の例において、各セルに関する3ビットは、異なる3つのページに対応し、各ワード線が、3つのページを格納する。以下の説明において、ページ0、1、および2は、ワード線内で低ページ・レベル、中ページ・レベル、および高ページ・レベルと呼ばれる。
【0037】
前述したとおり、フラッシュ・セル・アレイは、偶ページと奇ページにさらに分割されることが可能であり、ただし、例えば、偶数番号を有するセル(
図6のセル2および4などの)は、偶ページに対応し、奇数番号を有するセル(
図6のセル1および3などの)は、奇ページに対応する。この場合、或るページ(ページ0などの)は、偶セルにおいて偶ページ(偶ページ0)を含み、奇セルにおいて奇ページ(奇ページ0)を含む。
【0038】
(セル間干渉)
前述したとおり、ICIは、セル間の寄生静電容量の結果であり、一般に、歪みの最も顕著な原因の1つであると考えられる。
図7は、いくつかの例示的なアグレッサ・セル720からの寄生静電容量に起因してターゲット・セル710に関して存在するICIを示す。以下の表記が
図7において使用される。
WL:ワード線
BL:ビット線
BLo:奇ビット線
BLe:偶ビット線、および
C:静電容量。
【0039】
本発明は、ICIが、ターゲット・セル710がプログラミングされた後にプログラミングされるアグレッサ・セル720によってもたらされることを認識する。ICIは、ターゲット・セル710の電圧、V
tを変化させる。例示的な実施形態において、「ボトムアップ」プログラミング・スキームが想定され、ワード線iおよびi+1における隣接するアグレッサ・セルが、ターゲット・セル710に関するICIを生じさせる。ブロックのそのようなボトムアップ・プログラミングでは、下位のワード線i−1からのICIは、除去され、5つまでの隣接セルが、
図7に示されるとおり、アグレッサ・セル720としてICIに寄与する。しかし、本明細書で開示される技術は、当業者には明白なとおり、ワード線i−1などの他のワード線からのアグレッサ・セルもICIに寄与する事例にまで一般化され得ることが注目される。ワード線i−1、i、およびi+1からのアグレッサ・セルがICIに寄与する場合、最も近い8つまでの隣接セルが考慮される必要がある。ターゲット・セルからより離れている他のセルは、それらのセルの、ICIへの寄与がごくわずかである場合、無視され得る。一般に、アグレッサ・セル720は、プログラミング・シーケンス・スキーム(ボトムアップ技術または偶/奇技術などの)を分析して、所与のターゲット・セル710の後にプログラミングされるアグレッサ・セル720を識別することによって、識別される。
【0040】
ターゲット・セル710上にアグレッサ・セル720によってもたらされるICIは、以下のとおり、例示的な実施形態においてモデル化され得る。すなわち、
【0042】
【数2】
は、アグレッサ・セル(w,b)のV
t電圧の変化であり、
【0043】
【数3】
は、ICIに起因するターゲット・セル(i,j)のV
t電圧の変化であり、k
x、k
yおよびk
xyは、x方向、y方向、およびxy方向に関する静電容量結合係数である。
【0044】
一般に、V
tは、セル上に格納され、読み取り動作中に獲得されるデータを表す電圧である。V
tは、例えば、1セル当り格納されたビットの数より高い精度でソフト電圧値として、または1セル当り格納されたビットの数(例えば、1セル当り3ビットのフラッシュの場合、3ビット)と同一の分解能でハード電圧レベルに量子化された値として、読み取り動作によって獲得され得る。
【0045】
(デマッピングおよびICI軽減)
本発明は、確率密度関数を使用する、フラッシュ・メモリに関する改良されたデマッピング機能を提供する。本明細書で使用される「確率密度関数」という用語は、確率密度関数、ならびにヒストグラムやガウス近似などの、確率密度関数の近似を含むものとする。
図12〜
図13に関連して後段で説明される本発明の一態様によれば、開示されるICI軽減機能は、オプションとして、デマッピング機能を使用して実施されて、合併デマッピング−ICI軽減ソリューションがもたらされる。さらなる
図10に関連して後段で説明される変種において、フラッシュ・メモリからデータを読み取り、検出する、1つまたは複数の確率密度関数を使用する反復デマッピング−復号技術が説明される。後段で説明されるさらなる変種において、開示されるデマッピング・ソリューションは、隣接セルの中に格納されたデータ・パターンに依存するpdf(確率密度関数)を、このデータ依存関係を有さないpdfの代わりに考慮する。1つの例示的な実施形態において、各確率密度関数は、フラッシュ・メモリ・アレイにおける少なくとも1つのターゲット・セル上の、1つまたは複数のアグレッサ・セルのパターン依存の妨害を特徴付ける。
【0046】
1つの例示的な実施例において、合併デマッピング−ICI軽減ソリューションは、確率密度関数が、ガウス確率密度関数を使用して近似され得るものと想定する。さらなる、より高い複雑度の実施例は、ヒストグラムに基づいて説明される。また、原則として、より高い複雑度という犠牲を払って、より良好なパフォーマンスをもたらす、ビタビ・アルゴリズム、SOVA(ソフト出力ビタビ)アルゴリズム、およびBCJRアルゴリズムなどの、確率密度関数、または確率密度関数の近似に基づいて、読み取りデータを検出するトレリス・ベースの検出アルゴリズムも説明される。
【0047】
図8は、本発明によるコントローラ・ベースのソフト・デマッパ技術を組み込む例示的なフラッシュ・メモリ・システム800の概略ブロック図である。さらなる実施形態において、フラッシュ・メモリ・システム800は、本発明によるコントローラ・ベースの合併デマッピング−ICI軽減技術を組み込む。
図8に示されるとおり、例示的なフラッシュ・メモリ・システム800は、インタフェース850によって接続された、フラッシュ制御システム810と、フラッシュ・メモリ・ブロック860とを備える。例示的なフラッシュ制御システム810は、通常、1つまたは複数の集積回路上に、フラッシュ・コントローラ820と、読み取りチャネル825とを備える。
【0048】
例示的な読み取りチャネル825は、信号処理ユニット830と、符号器/復号器ブロック840と、1つまたは複数のバッファ845とを備える。「読み取りチャネル」という用語は、書き込みチャネルも包含し得ることが注目される。代替の実施形態において、符号器/復号器ブロック840およびいくつかのバッファ845は、フラッシュ・コントローラ820内部に実装されてもよい。符号器/復号器ブロック840およびバッファ845は、本発明の特徴および機能を提供するようにこの場合、変形される、例えば、よく知られた市販の技術および/または製品を使用して実施されることが可能である。
【0049】
例示的な信号処理ユニット830は、例えば、
図10〜
図11に関連して後段でさらに説明される、1つまたは複数のソフト・デマッピング・プロセス835を実施する1つまたは複数のプロセッサを備える。さらなる実施形態において、ソフト・デマッパ835は、例えば、
図12〜
図13に関連して後段でさらに説明される、1つまたは複数の合併デマッピング−ICI軽減プロセスを実施する。例示的なフラッシュ・メモリ・ブロック860は、メモリ・アレイ870と、よく知られた市販の技術および/または製品を使用してそれぞれ実施されることが可能な1つまたは複数のバッファ880とを備える。
【0050】
開示されるICI軽減技術の様々な実施形態において、例示的なインタフェース850は、アグレッサ・セルに関連する情報を表す値などの、従来のフラッシュ・メモリ・システムと関係するさらなる情報を伝える必要がある可能性がある。このため、インタフェース850は、従来のフラッシュ・メモリ・システムにおけるインタフェースと比べて、より大きい容量、またはより高速のレートを有する必要がある可能性がある。インタフェース850は、オプションとして、例えば、DDR(ダブル・データレート)技術を使用して、インタフェース850の情報伝送容量を増加させる、本出願と同時に出願し、参照により本明細書に組み込まれている「Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array」という名称の国際特許出願第 号(整理番号08−0769)の教示に、例えば、従って実施されることが可能である。
【0051】
書き込み動作中、インタフェース850は、ページ・レベル・アクセス技術またはワード線レベル・アクセス技術を通常、使用して、ターゲット・セルの中に格納されるようにプログラム値を転送する。例示的なページ・レベル・アクセス技術またはワード線レベル・アクセス技術のより詳細な説明に関しては、例えば、参照により本明細書に組み込まれている、2009年3月11日に出願した、「Methods and Apparatus for Storing Data in a Multi−Level Cell Flash Memory Device with Cross−Page Sectors,Multi−Page Coding and Per−Page Coding」という名称の国際特許出願第PCT/US09/36810号を参照されたい。
【0052】
読み取り動作中、インタフェース850は、ターゲット・セルおよびアグレッサ・セルに関してメモリ・アレイ870から獲得されたハード読み取り値および/またはソフト読み取り値を転送する。例えば、ターゲット・セルを伴うページの読み取り値に加えて、上位/下位のワード線、あるいは隣接する偶ビット線または奇ビット線における1つまたは複数の隣接ページの読み取り値が、インタフェース・バスを介して転送される。
図8の実施形態において、開示されるICI軽減技術は、通常、最小の面積を実現するように論理回路に合わせて最適化されたプロセス技術で、フラッシュ・メモリの外部に実装される。しかし、このことは、インタフェース850上でさらなるアグレッサ・セル・データが転送されなければならないという犠牲を払う。
【0053】
図9は、本発明の代替の実施形態による、メモリ・ベースのソフト・デマッピング技術を組み込む例示的なフラッシュ・メモリ・システム900の概略ブロック図である。さらなる実施形態において、フラッシュ・メモリ・システム900は、合併デマッピング−ICI軽減技術を組み込む。
図9に示されるとおり、例示的なフラッシュ・メモリ・システム900は、インタフェース950によって接続された、フラッシュ制御システム910と、フラッシュ・メモリ・ブロック960とを備える。
【0054】
例示的なフラッシュ制御システム910は、通常、1つまたは複数の集積回路上に、フラッシュ・コントローラ920と、オプションの読み取りチャネル925とを備える。代替の実施形態において、符号器/復号器ブロック940およびいくつかのバッファ945は、フラッシュ・コントローラ920内部に実装されてもよい。例示的なフラッシュ・コントローラ920は、本発明の特徴および機能をサポートするようにこの場合、変形される、例えば、よく知られた市販の技術および/または製品を使用して実施されることが可能である。例示的な読み取りチャネル925は、符号器/復号器ブロック940と、1つまたは複数のバッファ945とを備える。符号器/復号器ブロック940およびバッファ945は、よく知られた市販の技術および/または製品を使用して実施されることが可能である。
【0055】
例示的なフラッシュ・メモリ・ブロック960は、メモリ・アレイ970と、よく知られた市販の技術および/または製品を使用してそれぞれ実施されることが可能な1つまたは複数のバッファ980とを備える。さらに、例示的なフラッシュ・メモリ・ブロック960は、例えば、
図11〜
図13に関連して後段でさらに説明される、1つまたは複数のソフト・デマッピング・プロセスまたは合併デマッピング−ICI軽減プロセス990を実施する1つまたは複数のプロセッサを備える例示的な信号処理ユニット985を備える。
【0056】
開示されるICI軽減技術の様々な実施形態において、例示的なインタフェース950は、アグレッサ・セルに関連する情報を表す値などの、従来のフラッシュ・メモリ・システムと関係するさらなる情報を伝える必要がある可能性がある。このため、インタフェース950は、従来のフラッシュ・メモリ・システムにおけるインタフェースと比べて、より大きい容量、またはより高速のレートを有する必要がある可能性がある。インタフェース950は、オプションとして、例えば、DDR(ダブル・データレート)技術を使用して、インタフェース950の情報伝送容量を増加させる、本出願と同時に出願し、参照により本明細書に組み込まれている「Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array」という名称の国際PCT特許出願第 号(整理番号08−0769)の教示に、例えば、従って実施されることが可能である。
【0057】
書き込み動作中、インタフェース950は、ターゲット・セルおよびアグレッサ・セルの中に格納されるようにプログラム・データを転送する。読み取り動作中、インタフェース950は、ターゲット・セルに関して、ならびにオプションとしてアグレッサ・セルに関して合併デマッピング−ICI軽減プロセス990によって計算された新たなハード読み取り値もしくはハード読み取りデータ、または新たなソフト読み取り値もしくはソフト読み取りデータを転送する。通常、単一回の読み取りアクセスに関して伝えられる情報は、データのページまたはワード線である。論理回路にではなく、メモリに合わせて通常、最適化されるフラッシュ・メモリを製造するのに使用されるメモリ・プロセス技術を使用して、メモリ内部にICI軽減プロセスを実装するという犠牲を払って、ターゲット・セルに関するデータだけを送ることは、インタフェース950の帯域幅要件を小さくすることが注目される。
【0058】
図8および
図9のICI軽減技術の様々な実施形態において使用される静電容量結合係数k
x、k
yおよびk
xyは、フラッシュ制御システム810、910および/またはフラッシュ・メモリ・ブロック860、960において計算され得ることが注目される。静電容量結合係数k
x、k
yおよびk
xyは、それぞれのインタフェース850、950上で転送されることが必要である可能性がある。静電容量結合係数は、適応性であることが可能であり、絶えず、時々、または定期的に更新されることが可能であることが注目される。
【0059】
(ソフト・デマッパ)
図10は、本発明による反復されるデマッピングおよび復号、ならびにオプションのインターリービングを伴う例示的なフラッシュ読み取りチャネル・アーキテクチャ1000を示す。
図10に示されるとおり、例示的な書き込みパスは、符号器1010と、オプションのインターリーバ1020と、シリアル−パラレル変換器1030と、マッパ1040とを備える。データは、知られている仕方でメモリ1050に書き込まれ、メモリ1050から読み取られる。例示的な読み取りパスは、ソフト・デマッパ1060と、パラレル−シリアル変換器1070と、デインターリーバ1080と、復号器1090と、インターリーバ1095とを備える。一般に、後段でさらに説明されるとおり、ソフト・デマッパ1060は、反復プロセスが最終判定に収束するまで、新たなソフト情報を生成するように復号器1090によって処理されて、ソフト・デマッパにフィードバックされるソフト情報を繰り返し生成する。
【0060】
1つの例示的な実施形態において、ソフト・デマッパ1060は、以下の式を使用してソフト情報(LLR)を生成する。すなわち、
【0061】
【数4】
ただし、p(r|s)は、フラッシュ・チャネルを特徴付ける確率密度関数であり、rは、通常、測定されたしきい値電圧を表す測定された読み取り値(任意の精度を有する)であり、sは、データ・レベルもしくは電圧レベル、または電圧状態であり(例えば、1セル当り2ビットのMLC NANDフラッシュにおいて4つの電圧レベルが存在する)、c
qは、位置qにおける符号化されたビットであり、mは、1セル当りのビットの数であり、
【0062】
【数5】
は、位置tにおけるビットC
tに関する事前対数尤度比であり、L
e(C
t)は、ビットC
tに関する外因性対数尤度比であり、さらに
【0063】
【数6】
は、ビット・ラベルが位置t上で値C
t=c
tを有するシンボルのサブセットである。事前対数尤度比L
a(C
t)は、例示的な実施形態において、低密度パリティ検査復号器などの復号器によって生成され、さらにオプションとして、インターリーバを通過していることが可能である。計算された外因性対数尤度比L
e(C
t)は、例示的な実施形態において、低密度パリティ検査復号器などの復号器に供給されることが可能であり、あるいは復号前にデインターリーバに送られることが可能である。また、計算された外因性対数尤度比L
e(C
t)は、読み取り値に対する最終判定を行うのに使用されることも可能である。
【0064】
一般に、式(2)によれば、可能な各2進値に関して、可能な2進値に関連するすべてのデータ・レベルについて、所与のデータ・レベル、sに関して読み取り値、rを測定する確率が総計される(例えば、加算または乗算される)。次に、その可能な2つの2進値のそれぞれに関する総計された確率に基づく比が形成される。その可能な2つの2進値のそれぞれに関する総計された確率に、外因性対数尤度比が計算されているビット以外のセル内のすべてのビットに関する1つまたは複数の事前確率値に基づく式が掛けられる。
【0065】
図10に示されるとおり、デマッパ1060によって生成されるソフト情報は、フィードバック・パスにおいてソフト・デマッパ1060、デインターリーバ1080、復号器1090、およびインターリーバ1095の間で、反復されるデマッピングおよび復号のために使用され得る。
【0066】
さらなる変種において、デマッパ1060は、以下のとおり、確率密度関数のガウス近似を使用することができる。すなわち、
【0067】
【数7】
ただし、σ
2は、しきい値電圧に関する確率密度関数の分散である(例えば、ガウスpdfの二次モーメントとして計算される)。この式におけるその他の項の説明については、式(2)の説明を参照されたい。
【0068】
図11は、本発明の特徴を組み込んだ例示的なデマッピング・プロセス1100を説明する流れ図である。
図11に示されるとおり、例示的なデマッピング・プロセス1100は最初、ステップ1110中に、ターゲット・セル710に関する測定された値、rを獲得する。その後、ステップ1120中に、ターゲット・セル710に関する測定された値、rを使用して確率密度関数、または確率密度関数の近似を評価することによって、pが獲得される。
【0069】
ステップ1130中に、LLRが、ステップ1120中に確率密度関数から獲得されたp値を使用して、式(2)または(2a)(前出)、あるいは式(2)または(2a)の近似を使用して計算される。最後に、ステップ1140中に、計算されたLLRが復号器に供給され、あるいはオプションとして、デインターリーバに供給される。代替の実施形態において、計算されたLLRは、例えば、LLRの符号に基づいて、読み取りデータに対する最終判定を行うのに使用される。
【0070】
(合併デマッピング−セル間干渉軽減)
前述したとおり、本発明の一態様は、合併デマッピング−ICI軽減ソリューションを提供する。開示される合併デマッピング−ICI軽減ソリューションは、周囲のセルのデータ・パターンを条件とするpdf(確率密度関数)を考慮する。
図12は、例示的なマルチレベル・セル・フラッシュ・メモリ600の所与のターゲット・セル710に関する確率密度関数1210の例示的なコレクション1200を示す。例示的なマルチレベル・セル・フラッシュ・メモリ600は、1セル当り4つのレベル(2ビット)を有し、1つのアグレッサ・セル720が、データ依存pdfに関して考慮される。
【0071】
図12は、各アグレッサ・セル720の可能なすべての値に基づいて、所与のターゲット・セル710上の可能なICI効果を示す確率密度関数のコレクション1200を示す。このため、所与のターゲット・セル710の可能な各レベルに適用可能な確率密度関数の数は、各アグレッサ・セル720に関する可能なレベルの数の、所与のターゲット・セル710に影響を及ぼすアグレッサ・セル720の数の累乗である。前述したとおり、例示的な実施形態において、各セルは、可能な4つの値の1つを有することが可能であり、1つのターゲット・セル710当り1つのアグレッサ・セル720が存在し、さらに各アグレッサ・セル720は、可能な4つのレベルの1つを有することが可能である。したがって、例示のため、確率密度関数のコレクション1200は、アグレッサ・セルの或るパターンに帰せられることが可能なデータ・レベル0、または電圧レベル0に関して、4つの確率密度関数1210−1乃至1210−4を備える。また、その他のデータ・レベル1、2、および3のそれぞれに関して、やはり4つの確率密度関数が存在する。本発明は、当業者には明白なとおり、1セル当り任意の数のレベルを有し、さらに任意の数のアグレッサ・セル720を有するマルチレベル・セル・フラッシュ・メモリ600に拡張され得る。
【0072】
一般に、
図12の各確率密度関数は、他の雑音効果および妨害効果もある中でとりわけ、所与のターゲット・セル710上の、対応するアグレッサ・セル720の所与の値に関するICI効果を表現する。本発明のさらなる実施形態において、データ依存の確率密度関数は、ICIの代わりに、またはICIに加えて、他のデータ依存の歪みを表現することが可能である。後段で説明されるとおり、様々な実施形態において、これらの確率密度関数は、事前定義され、静的であること、リアルタイムの観測に基づいて適応されること、あるいはガウス関数の場合のように、アグレッサ・セル720に関する測定された、または検出された値、hに応じて表現されることが可能である。
【0073】
図13は、本発明の特徴を組み込んだ例示的な合併デマッピング−ICI軽減プロセス1300を説明する流れ図である。
図13に示されるとおり、例示的な合併デマッピング−ICI軽減プロセス1300は最初、ステップ1310中に、ターゲット・セル710に関する測定された値、rを獲得する。その後、ステップ1320中に、ターゲット・セル710に関連する少なくとも1つのアグレッサ・セル720の中に格納されたデータを表す値、hが獲得される。値、hは、ハード判定および/またはソフト値、あるいは検出されたデータであることが可能である。
【0074】
各アグレッサ・セルに関して、hが、ステップ1330中に、ターゲット・セル710の対応するレベルに関する確率密度関数を選択するのに使用される。確率密度関数は、オプションとして、ターゲット・セル710の可能な1つまたは複数のレベルに関して選択され得る。確率密度関数は、例えば、メモリの中に格納されたテーブルから獲得される、または確率密度関数を記述する関数を使用して評価されることが可能である。その後、ステップ1340中に、ターゲット・セル710に関するrという測定された値を使用して、ステップ1330中に獲得された各確率密度関数から、pが獲得される。
【0075】
ステップ1350中に、LLRが、ステップ1340中に各確率密度関数から獲得されたp値を使用して、式(3)(後出)を使用して計算される。最後に、ステップ1360中に、計算されたLLRが、復号器に供給され、さらにオプションのデインターリーバに供給され、あるいは読み取り値に対する最終判定を行うのに使用される。
【0076】
1つの例示的な実施形態において、合併デマッピング−ICI軽減プロセス1300は、以下のセル・パターン依存の確率密度関数を実施する。すなわち、
【0077】
【数8】
ただし、h
(i,j)は、チャネルのハード出力またはソフト出力に基づく、アグレッサ・セル720の電圧レベルである。
【0078】
本発明の別の態様によれば、フラッシュ・メモリ・デバイスにおける妨害が、少なくとも1つのターゲット・セル上の、1つまたは複数のアグレッサ・セルのパターン依存の妨害を表現する1つまたは複数の確率密度関数を獲得すること、およびフラッシュ・メモリの少なくとも一部分の中に格納された値のパターンに基づいて、確率密度関数の1つまたは複数を選択することによって特徴付けられることが可能である。この妨害は、例えば、バック・パターン依存、セル間干渉、プログラム妨害、読み取り妨害、および/またはさらなる雑音を備えることが可能である。この確率密度関数は、1つまたは複数のデータ判定に基づいて更新され得る。この確率密度関数は、格納されたテーブルおよび/または式として表されることが可能である。
【0079】
これらの確率密度関数のテーブル・エントリまたは関数パラメータは、オプションとして、例えば、受け取られたデータ判定に基づいて、適応的に更新されてもよいことがさらに注目される。例えば、前述したとおり、確率密度関数は、受け取られたアグレッサ・パターン、hに基づいて選択される。その後、選択された確率密度関数は、知られている技術を使用して、受け取られたターゲット・セル値、rに基づいて、最新の実現値で更新される(例えば、対応するカウンタを増加させることによって)。
【0080】
前述したとおり、所与のターゲット・セル710に影響を及ぼすアグレッサ・セル720の数は、いくつかの要因に基づいて減らされる、または無視されることが可能である。このようにして、考慮される必要がある確率密度関数の数が減らされ得る。例えば、対角結合係数、k
xyが、他の結合係数よりはるかに小さい場合(しばしば、そうであるように)、対角線上に位置するセルからのICIは、無視され得る。さらに、プログラミング・シーケンスが、考慮される必要があるアグレッサ・セル720の数に影響を与える。例えば、ワード線が、ボトムアップ・アプローチの場合のように、常に固定の順序で書き込まれる場合、より下位のワード線におけるセルからのICI寄与は全く存在しない。さらに、ICIが、ターゲット・セル710の左右の隣接セルに対して対称的である場合、特徴付けられる必要がある確率密度関数の数は、半分に減らされる。
【0081】
前述したとおり、1つの例示的な実施例において、合併デマッピング−ICI軽減ソリューションは、確率密度関数が、ガウス確率密度関数を使用して近似され得るものと想定する。
【0082】
さらなる変種において、確率密度関数が、例えば、ヒストグラムに基づく場合、複雑度が増すという犠牲を払って、向上したパフォーマンスが得られることが可能である。確率密度関数がヒストグラムを使用して実施される場合、確率密度関数は、ヒストグラムを訓練するように復号されることに成功したワード線を使用して、適応的に更新され得る。
【0083】
さらなる実施形態において、これらの確率密度関数、および確率密度関数の近似は、後段で説明されるとおり、読み取りデータを検出するようにビタビ・アルゴリズム、SOVA(ソフト出力ビタビ)アルゴリズム、およびBCJRアルゴリズムによって使用されることが可能である。
【0084】
ビタビ実施例において、セルは、連続してデマップされ、現在、デマップされるセルに関するハード出力は、前にデマップされたレベルに基づく。ビタビ実施例は、当業者には明白なとおり、フラッシュ・チャネルからのソフト情報、およびデマッパ・ノード間の接続を要求する。ビタビ・アルゴリズム、SOVA(ソフト出力ビタビ)アルゴリズム、およびBCJRアルゴリズムに基づく実施例において、ブランチ・メトリクスは、確率密度関数、p(r|s,h
(i±1,j),h
(i,j±1),h
(i±1,j±1))によって与えられる。
【0085】
ビタビ実施例において、トレリス方向は、プログラミング・スケジュールとは逆に構成される、すなわち、より後期にプログラミングされるセルは、トレリスにおいて、より早期である(新たな(隣接)セルをプログラミングすることは、それまでにプログラミングされたセルに影響を及ぼすので)ことが注目される。SOVAアルゴリズムおよびBCJRアルゴリズムの定義も同様である。ブランチ・メトリクスは、パターン依存の確率密度関数、p(r|s,h
(i±1,j),h
(i,j±1),h
(i±1,j±1))、またはそのような確率分布の近似に基づいて計算される。標準のトレリス・ベースのアルゴリズムとの1つの違いは、フラッシュ・メモリの場合、トレリスが、ICIが隣接するビット線およびワード線から来るという事実を反映して、2次元であることである。
【0086】
(プロセス、システム、および製造品の詳細)
本明細書のいくつかの流れ図は、ステップの例示的な順序を説明するが、その順序が変更され得ることも本発明の実施形態である。本発明の代替の実施形態として、アルゴリズムの様々な置換が企図される。本発明の例示的な実施形態は、ソフトウェア・プログラムにおける処理ステップに関連して説明されてきたが、当業者には明白なとおり、様々な機能が、デジタル領域で、ソフトウェア・プログラムにおいて、回路要素もしくは状態マシンによってハードウェアにおいて、またはソフトウェアとハードウェアの両方の組合せにおいて、処理ステップとして実施されることが可能である。そのようなソフトウェアは、例えば、デジタルシグナルプロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータにおいて使用されることが可能である。そのようなハードウェアおよびソフトウェアは、集積回路内で実施される回路内で実施されることが可能である。
【0087】
このため、本発明の機能は、方法の形態、およびそれらの方法を実施するための装置の形態で実施されることが可能である。本発明の1つまたは複数の態様は、例えば、記憶媒体の中に格納され、マシンにロードされ、さらに/またはマシンによって実行されるか、何らかの伝送媒体を介して伝送されるかにかかわらず、プログラム・コードの形態で実施されることが可能であり、このプログラム・コードが、コンピュータなどのマシンにロードされ、マシンによって実行されると、そのマシンが、本発明を実施するための装置となる。汎用プロセッサ上で実施される場合、それらのプログラム・コード・セグメントは、プロセッサと一緒になって、特定の論理回路と同様に動作するデバイスを提供する。また、本発明は、集積回路、デジタルシグナルプロセッサ、マイクロプロセッサ、およびマイクロコントローラの1つまたは複数において実施されることも可能である。
【0088】
当技術分野で知られているとおり、本明細書で説明される方法および装置は、コンピュータ可読媒体を自ら備え、その媒体上にコンピュータ可読コード手段が実現されている製造品として配布されることが可能である。このコンピュータ可読プログラム・コード手段は、コンピュータ・システムと連携して、本明細書で説明される方法を実行する、または本明細書で説明される装置を作成するステップのすべて、または一部を実行するように動作可能である。このコンピュータ可読媒体は、記録可能な媒体(例えば、フロッピー・ディスク、ハードドライブ、コンパクト・ディスク、メモリ・カード、半導体デバイス、チップ、ASIC(特定用途向け集積回路))であっても、伝送媒体(例えば、光ファイバ、ワールド・ワイド・ウェブ、ケーブル、あるいは時分割多元接続チャネル、符号分割多元接続チャネル、または他の無線周波数チャネルを使用する無線チャネルを備えるネットワーク)であってもよい。コンピュータ・システムで使用するのに適した、情報を格納することができる、知られている、または開発される任意の媒体が、使用されることが可能である。コンピュータ可読コード手段は、磁気媒体上の磁気変化、またはコンパクト・ディスクの表面上の高さ変化などの、命令およびデータをコンピュータが読み取ることを許すための任意の機構である。
【0089】
本明細書で説明されるコンピュータ・システムおよびサーバはそれぞれ、本明細書で開示される方法、ステップ、および機能を実施するように関連するプロセッサを構成するメモリを含む。これらのメモリは、分散型であることも、ローカル型であることも可能であり、これらのプロセッサは、分散型であることも、単体であることも可能である。これらのメモリは、電気メモリ、磁気メモリ、または光メモリとして、あるいは以上のタイプまたは他のタイプの格納デバイスの任意の組合せとして実施されることが可能である。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス指定可能な空間内のアドレスから読み取られる、またはそのようなアドレスに書き込まれることが可能な任意の情報を包含するように十分に広く解釈されなければならない。この定義で、ネットワーク上の情報は、関連するプロセッサが、ネットワークからその情報を取得することができるため、やはりメモリの範囲内にある。
【0090】
本明細書で示され、説明される実施形態および変形形態は、本発明の原理を単に例示するに過ぎないこと、ならびに様々な変形が、本発明の趣旨および範囲を逸脱することなく、当業者によって実施されることが可能であることを理解されたい。