(57)【要約】      （修正有）【課題】ソリッドステート記憶媒体の読出しきい値電圧を調整する。【解決手段】メモリにおける読出リトライ動作は、複数の読出リトライ動作のための異なる読出電圧で符号が変化する尤度値割当を用いる。メモリの複数回の読出リトライは、第１の読出電圧を用いてコード語を読出すことにより、第１の読出値を取得し、第１の読出値を、実質的に第１の読出電圧で符号が変化する第１の尤度値割当に基づいて、第１の尤度値にマッピングし、第２の読出電圧を用いてコード語を読出すことにより、第２の読出値を取得する。第２の読出電圧は、第１の読出電圧からシフトされることにより、アナログ電圧の予測される変化を補償し、さらに、第２の読出値を、実質的に第２の読出電圧で符号が変化する第２の尤度値割当に基づいて、第２の尤度値にマッピングする。読出データは第１の尤度値および／または第２の尤度値に基づくコード語の反復復号を用いて生成される。【選択図】図５
2017168089.tif 000002
【特許請求の範囲】
【請求項１】
メモリの複数回の読出リトライの方法であって、
第１の読出電圧を用いて前記メモリからコード語を読出すことにより、第１の読出値を取得するステップと、
前記第１の読出値を、第１の尤度値割当に基づいて１つ以上の第１の尤度値にマッピングするステップとを含み、前記第１の尤度値割当は、実質的に前記第１の読出電圧で符号が変化し、
第２の読出電圧を用いて前記メモリのコード語を読出すことにより、第２の読出値を取得するステップを含み、前記第２の読出電圧は、前記第１の読出電圧からシフトされることにより、前記メモリの１つ以上のメモリセルの１つ以上のアナログ電圧の予測される変化を補償し、
前記第２の読出値を、第２の尤度値割当に基づいて１つ以上の第２の尤度値にマッピングするステップを含み、前記第２の尤度値割当は、実質的に前記第２の読出電圧で符号が変化する、方法。
【請求項２】
前記第１の尤度値および前記第２の尤度値のうちの１つ以上に基づいて前記コード語の反復復号を用いることで、読出データを生成するステップをさらに含む、請求項１に記載の方法。
【請求項３】
復号を成功させる所与の読出電圧を記憶するステップをさらに含み、
前記所与の読出電圧は、
前記第１の読出電圧、および、
前記コード語のページタイプのページに対する将来の読出動作のための優先度の高いリトライ読出電圧、
のうちの１つ以上として使用される、請求項２に記載の方法。
【請求項４】
前記ページタイプは、
実質的にほぼ同じ時間に書込まれたページ、
メモリブロック内におけるページ位置が実質的にほぼ同じであるページ、および、
実質的にほぼ同じ時間にバースト誤りがあるページ、
のうちの１つ以上を含む、請求項３に記載の方法。
【請求項５】
電荷の漏れ、プログラム／消去サイクル、読出ディスターブ、消去ディスターブのうちの１つ以上を原因とする前記メモリセルのアナログ電圧の予測される変化を補償する方向に、前記第２の読出電圧は前記第１の読出電圧からシフトされている、請求項１に記載の方法。
【請求項６】
前記メモリは不揮発性メモリを含む、請求項１に記載の方法。
【請求項７】
成功した読出電圧の履歴を記録し、前記成功した読出電圧を、回復に成功したページと同様のチャネル状態および同様の局所性のうちの１つ以上を有するその他のページの読出リトライのために使用するステップをさらに含み、
前記同様のチャネル状態および同様の局所性のうちの１つ以上は、１つ以上の予め定められた類似条件に基づく、請求項１に記載の方法。
【請求項８】
有形の機械可読記録可能記憶媒体であって、１つ以上のソフトウェアプログラムが１つ以上の処理装置によって実行されたときに請求項１に記載の方法のステップを実現する、記憶媒体。
【請求項９】
デバイスであって、
メモリの複数回の読出リトライを以下のステップを実現することによって実行するように構成されたコントローラを備え、前記ステップは、
第１の読出電圧を用いて前記メモリからコード語を読出すことにより、第１の読出値を取得するステップと、
前記第１の読出値を、第１の尤度値割当に基づいて１つ以上の第１の尤度値にマッピングするステップとを含み、前記第１の尤度値割当は、実質的に前記第１の読出電圧で符号が変化し、
第２の読出電圧を用いて前記メモリのコード語を読出すことにより、第２の読出値を取得するステップを含み、前記第２の読出電圧は、前記第１の読出電圧からシフトされることにより、前記メモリの１つ以上のメモリセルの１つ以上のアナログ電圧の予測される変化を補償し、
前記第２の読出値を、第２の尤度値割当に基づいて１つ以上の第２の尤度値にマッピングするステップを含み、前記第２の尤度値割当は、実質的に前記第２の読出電圧で符号が変化する、デバイス。
【請求項１０】
前記第１の尤度値および前記第２の尤度値のうちの１つ以上に基づいて前記コード語の反復復号を用いることで、読出データを生成するステップをさらに含む、請求項９に記載のデバイス。
【請求項１１】
復号を成功させる所与の読出電圧を記憶するステップをさらに含み、
前記所与の読出電圧は、
前記第１の読出電圧、および、
前記コード語のページタイプのページに対する将来の読出動作のための優先度の高いリトライ読出電圧、
のうちの１つ以上として使用される、請求項１０に記載のデバイス。
【請求項１２】
前記ページタイプは、
実質的にほぼ同じ時間に書込まれたページ、
メモリブロック内におけるページ位置が実質的にほぼ同じであるページ、および、
実質的にほぼ同じ時間にバースト誤りがあるページ、
のうちの１つ以上を含む、請求項１１に記載のデバイス。
【請求項１３】
電荷の漏れ、プログラム／消去サイクル、読出ディスターブ、消去ディスターブのうちの１つ以上を原因とする前記メモリセルのアナログ電圧の予測される変化を補償する方向に、前記第２の読出電圧は前記第１の読出電圧からシフトされている、請求項９に記載のデバイス。
【請求項１４】
前記メモリは不揮発性メモリを含む、請求項９に記載のデバイス。
【請求項１５】
成功した読出電圧の履歴を記録し、前記成功した読出電圧を、回復に成功したページと同様のチャネル状態および同様の局所性のうちの１つ以上を有するその他のページの読出リトライのために使用するステップをさらに含み、
前記同様のチャネル状態および同様の局所性のうちの１つ以上は、１つ以上の予め定められた類似条件に基づく、請求項９に記載のデバイス。
【請求項１６】
メモリの複数回の読出リトライのための装置であって、
メモリと、
前記メモリに結合され以下のステップを実現するように動作可能な少なくとも１つの処理装置とを備え、前記ステップは、
第１の読出電圧を用いて前記メモリからコード語を読出すことにより、第１の読出値を取得するステップと、
前記第１の読出値を、第１の尤度値割当に基づいて１つ以上の第１の尤度値にマッピングするステップとを含み、前記第１の尤度値割当は、実質的に前記第１の読出電圧で符号が変化し、
第２の読出電圧を用いて前記メモリのコード語を読出すことにより、第２の読出値を取得するステップを含み、前記第２の読出電圧は、前記第１の読出電圧からシフトされることにより、前記メモリの１つ以上のメモリセルの１つ以上のアナログ電圧の予測される変化を補償し、
前記第２の読出値を、第２の尤度値割当に基づいて１つ以上の第２の尤度値にマッピングするステップを含み、前記第２の尤度値割当は、実質的に前記第２の読出電圧で符号が変化する、装置。
【請求項１７】
前記第１の尤度値および前記第２の尤度値のうちの１つ以上に基づいて前記コード語の反復復号を用いることで、読出データを生成するステップをさらに含む、請求項１６に記載の装置。
【請求項１８】
復号を成功させる所与の読出電圧を記憶するステップをさらに含み、
前記所与の読出電圧は、
前記第１の読出電圧、および、
前記コード語のページタイプのページに対する将来の読出動作のための優先度の高いリトライ読出電圧、
のうちの１つ以上として使用される、請求項１７に記載の装置。
【請求項１９】
電荷の漏れ、プログラム／消去サイクル、読出ディスターブ、消去ディスターブのうちの１つ以上を原因とする前記メモリセルのアナログ電圧の予測される変化を補償する方向に、前記第２の読出電圧は前記第１の読出電圧からシフトされている、請求項１６に記載の装置。
【請求項２０】
成功した読出電圧の履歴を記録し、前記成功した読出電圧を、回復に成功したページと同様のチャネル状態および同様の局所性のうちの１つ以上を有するその他のページの読出リトライのために使用するステップをさらに含み、
前記同様のチャネル状態および同様の局所性のうちの１つ以上は、１つ以上の予め定められた類似条件に基づく、請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の詳細な説明
関連出願の相互参照
本願は、２０１３年１２月２０日に出願され「Read Retry For Non-Volatile Memories」と題された米国特許出願公開第２０１５／０１４９８４０号および２０１３年１２月２０日に出願され「Multiple Read Retries in a Read Channel of a Memory」と題された米国特許出願公開第２０１５／０１６２０５７号に関連し、各々の全体を本明細書に引用により援用する。
【０００２】
分野
本分野は、概してソリッドステート記憶媒体に関し、より具体的にはこのようなソリッドステート記憶媒体の読出しきい値電圧の調整に関する。
【背景技術】
【０００３】
背景
ソリッドステート記憶装置は、アナログメモリセルを用いてデータを記憶する。各メモリセルは、電圧等の記憶値を記憶する。記憶値は、メモリセルに記憶されている情報を表わす。多くのソリッドステート記憶装置は、メモリセルが記憶しているであろう異なる二進数値を、そのメモリセルの読出電圧レベルに基づいて区別する。各メモリセルの可能な記憶値の範囲は、通常はしきい値領域に分割され、各領域は、読出しきい値電圧によって区切られ、１つ以上のデータビット値に対応する。理想的なのは、所与のソリッドステート記憶装置内のメモリセルすべてが、記憶している論理ビット値に対して同一の読出しきい値電圧を有することである。しかしながら実際は、ガウス分布と同様の、読出しきい値電圧軸に沿う確率分布（たとえば「読出しきい値電圧分布」）において、読出しきい値電圧はセルによって異なる。
【０００４】
加えて、ソリッドステート記憶装置は、時間の経過に伴いシフトする可能性がある。たとえば、メモリセルの漏れ、メモリセルの損傷、およびメモリセルに対するその他の妨害が原因で、メモリセルの読出電圧レベルが変化する可能性がある。このようにして読出しきい値電圧は時間の経過に伴いシフトする可能性がある。漏れ率およびその他の妨害も、メモリセルが一定期間使用されると、時間とともに増す可能性がある。メモリセルの読出電圧レベルがシフトして読出しきい値電圧を超えると、メモリセルから読出されたデータの値はメモリセルに書込まれたデータの値とは異なる可能性があり、そうするとデータ誤りが発生する。
【０００５】
不揮発性メモリのデータは、本明細書では「読出単位」または「コード語」と呼ばれるブロック単位で読出される。これは通常、低密度パリティ検査（low density parity check：ＬＤＰＣ）符号化等の誤り訂正アルゴリズムを用いて生成された、パリティビット等の誤り訂正が含まれていることで、誤りから保護されている。ソリッドステートディスクコントローラによる制御下で、ビットは不揮発性メモリセルから読出される。たとえばＬＤＰＣデコーダにおいて、得られたデータは復号され、誤り訂正アルゴリズムが適用される。ＬＤＰＣデコーダにおいてデータが収束しない場合は、読出リトライ動作を用いてデータを再度読出して再び誤り訂正アルゴリズムを適用することができる。セル電圧は連続的であるが、一般的に不揮発性メモリセルが読出動作後に提供するのは、二進数の硬判定のみである。ＬＤＰＣ復号アルゴリズム等のソフト反復復号アルゴリズムを誤り訂正に用いる場合は、不揮発性メモリによって生成された硬判定を軟判定に変換することが望ましい。これは誤り訂正に役立つより多くの情報をデコーダに与える。１回の読出から変換された軟判定は、復号を成功させるのに十分な品質ではない場合がある。この場合、読出電圧を変化させた複数回の読出を用いると、十分な品質の軟判定が得られる。このため、読出基準電圧の位置および頻度は、軟判定の品質に直接影響し、ひいてはチャネル読出の理論情報内容に直接影響する。
【０００６】
今もなお、読出リトライ動作を実行するための改善された技術が必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
概要
本発明を説明する実施形態は、読出リトライ動作のための方法および装置を提供し、尤度値割当は、複数の読出リトライ動作のための異なる読出電圧で符号が変化する。ある実施形態において、メモリの複数回の読出リトライの方法は、第１の読出電圧を用いて当該メモリからコード語を読出すことにより、第１の読出値を取得するステップと、第１の読出値を、第１の尤度値割当に基づいて１つ以上の第１の尤度値にマッピングするステップとを含み、第１の尤度値割当は、実質的に第１の読出電圧で符号が変化し、さらに、第２の読出電圧を用いて当該メモリのコード語を読出すことにより、第２の読出値を取得するステップを含み、第２の読出電圧は、第１の読出電圧からシフトされることにより、当該メモリの１つ以上のメモリセルの１つ以上のアナログ電圧の予測される変化を補償し、さらに、第２の読出値を、第２の尤度値割当に基づいて１つ以上の第２の尤度値にマッピングするステップを含み、第２の尤度値割当は、実質的に第２の読出電圧で符号が変化する。
【０００８】
少なくとも１つの実施形態において、第１の尤度値および第２の尤度値のうちの１つ以上に基づいてコード語の反復復号を用いることで、読出データは生成される。任意で、復号を成功させる所与の読出電圧を記憶し、所与の読出電圧は、第１の読出電圧、および、コード語のページタイプのページに対する将来の読出動作のための優先度の高いリトライ読出電圧、のうちの１つ以上として使用される。ページタイプは、たとえば、実質的にほぼ同じ時間に書込まれたページ、メモリブロック内におけるページ位置が実質的にほぼ同じであるページ、および、実質的にほぼ同じ時間にバースト誤りがあるページ、のうちの１つ以上を含む。
【０００９】
１つ以上の実施形態において、電荷の漏れ、プログラム／消去サイクル、読出ディスターブ、消去ディスターブのうちの１つ以上を原因とするメモリセルのアナログ電圧の予測される変化を補償する方向に、第２の読出電圧は第１の読出電圧からシフトされている。
【００１０】
複数の読出リトライ動作のための異なる読出電圧で、尤度値割当の符号が変化する、読出リトライ動作のための開示された技術は、先に述べた従来技術に関連する問題のうちの１つ以上を克服する。本発明のこれらおよびその他の特徴および利点は、添付の図面および以下の詳細な説明から直ちに明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の１つ以上の実施形態に従う不揮発性メモリチャネルのモデルを示し、チャネルトラッキングを用いて読出リトライ基準電圧を調整することができる。
【図２】本発明のいくつかの実施形態に従う通常の硬判定読出のためのセル電圧分布のグラフである。
【図３】本発明のいくつかの実施形態に従うリトライ軟判定読出のための、異なる状態におけるセル電圧のセル電圧分布のグラフである。
【図４】本発明のいくつかの実施形態に従うチャネルトラッキングに基づく読出リトライ電圧調整が適用されるフラッシュチャネル読出経路を示す。
【図５】ある実施形態に従う軟判定復号プロセスのフロー図である。
【図６】複数回の読出リトライ動作のためのデフォルト対数尤度比の値のルックアップテーブルである。
【図７】本発明の実施形態に従い、図６のルックアップテーブルのＬＬＲ値割当を用いて実行される多数の連続する読出動作を示す。
【図８】本発明の実施形態に従う読出リトライプロセスの実現を示すフローチャートである。
【図９】本発明の実施形態に従う読出リトライプロセスの実現を示すフローチャートである。
【図１０】本発明の１つ以上の実施形態の少なくとも一部を実現するために使用し得る処理プラットフォームを示す。
【発明を実施するための形態】
【００１２】
詳細な説明
本発明の１つ以上の実施形態は、読出リトライ動作のための改善された技術に関する。以下で説明するように、チャネルトラッキングは、不揮発性メモリにおける異なるデータ状態に対する電圧分布の平均と分散を推定することを含む。１つ以上の実施形態において、取得したデータの低密度パリティ検査復号が失敗した場合、メモリコントローラはソフト低密度パリティ検査復号動作に入り、ソフトデータは低密度パリティ検査デコーダへの入力として使用される。読出リトライモードでは、メモリページの複数回の読出を異なる読出基準電圧で実行することにより、セルに記憶された電圧を量子化したものを得る。その後、各ビットの複数の読出パターンを、二進数の０または１であるビット値の信頼水準を表わす対数尤度比（log likelihood ratio：ＬＬＲ）にマッピングする。最後に、対数尤度比を、低密度パリティ検査デコーダへのソフトデータ入力として与えることにより、書込まれたデータを回復する。対数尤度比は、限定されないが４ビットの符号付き整数のように、限られた数のビットで表わされるので、対数尤度比が取り得る数は、非常に限られている（４ビット符号付き整数の場合は１６）。対数尤度比における符号は判定領域を示し（たとえば負は二進数の値０、正は二進数の値１）、大きさは判定における信頼度を示す。
【００１３】
電圧読出ステップの分解能を調整することにより、対数尤度比の限られたビット幅を有効に使用する。いくつかの実施形態において、各ビットの複数の読出パターンを、初期の読出リトライにおける低密度パリティ検査デコーダの収束の確率を高めるように設計されたルックアップテーブルを用いて、対数尤度比にマッピングする。平均して、これはシステムのスループットを改善する。そうすると、均等間隔の読出基準電圧に基づく対数尤度比のロバスト性が低い計算と比較して、確実に、マルチビットパターンが適切な固定小数点対数尤度比値にマッピングされる。特に、いくつかの実施形態では対数尤度比を用いるが、単純な対数尤度比を用いることもできる。
【００１４】
本発明のある側面に従うと、各読出リトライ領域に割当てられた対数尤度比の値は、複数回の読出リトライのための現在の読出電圧の位置で符号が変化する。このようにすると、ＬＬＲ割当の中心は、読出リトライ動作における一回目の読出の位置にも、読出リトライウィンドウの中心にも限られない。その他の利点の中でも特に、開示されている読出リトライ技術は、ポリシーに基づくリテンション（retention：保持期間）、エンデュランス（endurance：書換え回数）、および読出ディスターブ等のさまざまなシナリオを補償するＬＬＲ割当を採用する。加えて、最適な読出電圧は、読出動作をさらに実行する間に特定できる。
【００１５】
個別に考えると、各不揮発性メモリセルは、そのセルのデバイスしきい値電圧に対応しさらにそのセルに記憶されている論理ビット値に対応する特定の電荷が蓄積（プログラム）されている。不揮発性メモリ内のすべてのセルが記憶している論理ビット値に対して同一のデバイスしきい値電圧を有することが理想的であるが、実際はさまざまな理由により、デバイスしきい値電圧は確率分布、たとえばガウス分布に従う。よって、読出単位のような多数のセルの集合体として考えた場合、１セル当たりの状態の数（１セルの１記憶ビット当たり２つの状態）に等しい数のしきい値電圧分布（たとえばガウス確率曲線）がある。すなわち、１記憶セル当たりＮビットの場合、２Ｎ個の状態があり、同数のデバイスしきい値電圧分布がある。よって、不揮発性メモリの読出回路は、２Ｎ個の状態間の区別のために２Ｎ−１個の異なる読出基準電圧を必要とするであろう。
【００１６】
デバイスしきい値電圧分布は、読出ディスターブ、書込ディスターブ、およびリテンションロス等の１つ以上の要素が原因で、その初期／公称分布から変化する。より具体的には、時間の経過、温度、使用に関連するその他の要素が原因で、デバイスしきい値電圧分布各々の位置は、デバイスしきい値電圧軸に対して変化し得る。このような変化によって、先に公称デバイスしきい値電圧分布に基づいて確立された読出しきい値に対する読出基準電圧を用いて実施される読出誤りの可能性が増す。いくつかの実施形態において、不揮発性メモリから読出された読出単位において修復不能な硬判定誤りが生じたときは、一連の読出リトライ動作を実行することによって上記読出単位を回復させる。この読出リトライ動作は、コントローラが、チャネルトラッキングに基づいて調整される異なる基準電圧を用いて読出ユニットを再度読出すことを含む。
【００１７】
本明細書に開示される読出リトライ基準電圧調整は、Ｎ＝１であるシングルレベルセル（ＳＬＣ）フラッシュメモリにも、Ｎ＞１であるマルチレベルセル（ＭＬＣ）フラッシュメモリにも適用できる。シングルレベルセルメモリは、記憶セル１つ当たり１ビットを記憶し、２つのデバイスしきい値電圧分布（１つは０に対する分布、もう１つは１に対する分布）を有し、１つの読出しきい値、読出基準電圧ＶＲＥＦ０を用いる。低いデバイスしきい値電圧から高いデバイスしきい値電圧の順に、これら２つのデバイスしきい値電圧分布は、Ｅ（Erased（消去））状態とＤ１（first Data（第１データ））状態として知られている。任意であるが、いくつかの実施形態におけるマッピングまたは符号化は、論理１をＥ状態に割当て、論理０をＤ１状態に割当てる。よって、０と１の参照はＤ１状態およびＥ状態それぞれの復号のためのプロキシ参照である。マルチレベルセルメモリは、１セル当たり２つ以上のビットを記憶し、３つ以上のデバイスしきい値電圧分布を有し、これらの分布を区別するために複数の異なる読出しきい値を使用する。たとえば、４レベルセルメモリは、１セル当たり２つのビットを記憶し、４つのデバイスしきい値電圧分布を有し、一般的には３つの読出しきい値を使用する（読出電圧基準ＶＲＥＦ１、ＶＲＥＦ２、およびＶＲＥＦ３）。低いデバイスしきい値電圧から高いデバイスしきい値電圧の順に、これら４つのデバイスしきい値電圧分布は、Ｅ（Erased（消去））状態、Ｄ１（Ｄａｔａ１）状態、Ｄ２（Ｄａｔａ２）状態、およびＤ３（Ｄａｔａ３）状態として知られている。任意であるが、上記４つのデバイスしきい値電圧分布各々も、グレイコードシーケンス等の特定のバイナリシーケンスに従ってマッピング（アドレス指定）される。よって、１１、１０、００、および０１のうちの１つ以上の参照は、Ｅ状態、Ｄ１状態、Ｄ２状態、およびＤ３状態それぞれの復号のためのプロキシ参照である。
【００１８】
シングルレベルメモリセルの場合、トラッキングモジュールは、状態Ｄ１およびＥの電圧分布の平均と分散を推定し、これらの分布に基づいて読出基準電圧ＶＲＥＦ０を設定する。計算されたＶＲＥＦ０は、書込まれたデータの中で０（状態Ｅ）および１（状態Ｄ１）の可能性が等しいときには、分布の交点にあるであろう。読出制御モジュールは、フラッシュデバイスから読出バッファに対してアドレス指定されたページのＭのデータ読出を開始し、最初の読出は読出基準電圧ＶＲＥＦ０で、その後は状態Ｄ１およびＥの電圧分布の平均および分散のチャネルトラッキングによって求められたＶＲＥＦ０を中心とする周辺の異なるレベルの次の読出基準電圧で行なわれる。マルチレベルメモリセルの場合、トラッキングモジュールは、すべての状態の電圧分布の平均と分散を推定する。
【００１９】
図１は、本発明の１つ以上の実施形態に従う、チャネルトラッキングを用いて読出リトライ基準電圧を調整できる不揮発性メモリチャネル１００のモデルを示す。特に、この例では２ビット入力と４つの状態が使用されているが、本明細書に開示される読出リトライ基準電圧調整は、特定のビット幅または状態数の用途に限定されない。２つの入力データビット１０２として、２つのデータビット１０２ｂ１、ｂ２を、マッピング１０４における可能な４つの状態にマッピングすることができる。たとえば、２つのデータビット１０２の値「１１」は状態ｓ０に、値「０１」は状態ｓ１に、値「００」は状態ｓ２に、値「１０」は状態ｓ３にマッピングすることができる。マルチレベルセルの場合、セルは、２つのデータビット１０２の値に応じて４つの可能な状態から選択状態１０６にプログラムされる。選択状態１０６を表わす電圧がメモリセルに書込まれメモリセルから読出されるとき、プログラミングプロセスおよびその他の非効率性およびディスターブが原因で、ノイズ１０８が加わり、ノイズの大きいセル電圧１１０ｙが発生する。このノイズは加法性ホワイトガウスノイズ（additive white Gaussian noise：ＡＷＧＮ）とみなすことができ、ノイズ分散は送信される信号によって異なる。
【００２０】
図２は、本発明のいくつかの実施形態に従う通常の硬判定読出のためのセル電圧分布２０２、２０４、２０６、２０８のグラフ２００である。結果としてメモリセルから読出された電圧はしたがって、目標状態電圧レベル２１２、２１４、２１６、２１８の４つの状態に対応する４つの異なる離散電圧レベルではなく、図２のグラフ２００に示される分布２０２、２０４、２０６、２０８のように見える。各分布２０２、２０４、２０６、２０８は、状態の目標電圧にほぼ等しい平均を有するであろう。また、分散はノイズに応じて異なるであろう。メモリセル上の電圧は正確ではないので、電圧読戻しは、分布２０２、２０４、２０６、２０８によって変化し得る。いくつかの実施形態において、メモリセルの最初の読出中、基準電圧Ｖ０  ２２０、Ｖ１  ２２２、およびＶ２  ２２４を用いてメモリセルの状態を判断し、メモリセルの状態に関する硬判定を返す。
【００２１】
一般的に、読出電圧が基準電圧２２０未満の場合、判定（１１２、図１）は、メモリセルが状態Ｓ０  ２２６と判断されたことを示す。読出電圧が基準電圧Ｖ０  ２２０よりも大きく基準電圧Ｖ１  ２２２よりも小さい場合、判定は、メモリセルが状態Ｓ１  ２３０と判断されたことを示す。読出電圧が基準電圧Ｖ１  ２２２よりも大きく基準電圧Ｖ２  ２２４よりも小さい場合、判定は、メモリセルが状態Ｓ２  ２３２と判断されたことを示す。読出電圧が基準電圧Ｖ２  ２２４よりも大きい場合、判定は、メモリセルが状態Ｓ３  ２３４と判断されたことを示す。
【００２２】
いくつかの実施形態において、読出動作は、最下位ビット（ＬＳＢ）ページの読出と最上位ビット（ＭＳＢ）の読出のプロセスに分割される。状態Ｓ０  ２２６およびＳ１  ２３０は最下位ビット値１に対応し、状態Ｓ２  ２３２およびＳ３  ２３４は最下位ビット値０に対応する。最下位ビットを読出すとき、基準電圧Ｖ１  ２２２をメモリセルに印加し、このセル上の電圧が基準電圧Ｖ１  ２２２よりも高い場合、最下位ビットは値０を有すると解釈される。セル上の電圧が基準電圧Ｖ１  ２２２よりも低い場合、最下位ビットは値１を有すると解釈される。状態Ｓ０  ２２６およびＳ３  ２３４は、状態Ｓ１  ２３０およびＳ２  ２３２と比較すると読出誤りが発生する可能性が低い。なぜなら、これらの分布２０２および２０８は基準電圧Ｖ１  ２２２に関連する分布２０４と２０６の交点から離れているからである。最上位ビットを読出すときは、状態Ｓ０  ２２６およびＳ３  ２３４は最上位ビット値１に対応し、状態Ｓ１  ２３０およびＳ２  ２３２は最上位ビット値０に対応する。最上位ビットページを読出す場合、判定基準が異なり、一対の基準電圧Ｖ０  ２２０およびＶ２  ２２４が印加される。本発明のいくつかの実施形態において、基準電圧Ｖ０  ２２０、Ｖ１  ２２２、およびＶ２  ２２４のレベルはチャネルトラッキングモジュールから与えられる。
【００２３】
読出中に基準電圧Ｖ０  ２２０、Ｖ１  ２２２、およびＶ２  ２２４を使用する場合、結果として読出誤りになる可能性がある。近隣の分布が重なり合うからである。たとえば、実際の書込状態は目標状態電圧レベル２１２に対応するＳ０であるが読出電圧が基準電圧Ｖ０  ２２０を上回る分布２０２の上端にある場合、判定は間違って状態Ｓ１  ２３０を識別する。これらの場合において、不揮発性メモリから読出されたデータの低密度パリティ検査復号が正しい値に収束せず誤りを訂正しないのであれば、リトライ動作が開始される。
【００２４】
読出リトライ動作中、不揮発性メモリコントローラはソフト低密度パリティ検査復号動作に入り、ソフトデータは低密度パリティ検査デコーダへの入力として使用される。リトライでは、メモリページの複数回の読出を異なる読出基準電圧で実行することにより、セルに記憶された電圧を量子化したものを得る。その後、各ビットの複数の読出パターンを、０または１であるビット値の信頼水準を表わす対数尤度比（ＬＬＲ）にマッピングする。最後に、対数尤度比を、低密度パリティ検査デコーダへのソフトデータ入力として与えることにより、書込まれたデータを回復する。
【００２５】
図３は、本発明のいくつかの実施形態に従うリトライ軟判定読出のための、異なる状態におけるセル電圧のセル電圧分布３０２、３０４、３０６、３０８のグラフ３００である。読出リトライ中、軟判定データは、基準電圧Ｖ０  ３２０、Ｖ１  ３２２、およびＶ２  ３２４に加えてその他の基準電圧３４０、３４２、３４４、３４６、３４８、３５０を印加することにより、生成される。異なる基準電圧（たとえば３４４、３４６）を用いてさらに読出動作を実行することにより、主状態Ｓ０  ３２６、Ｓ１  ３３０、Ｓ２  ３３２、Ｓ３  ３３４および新たな中間状態ｅ１  ３６０、ｅ２  ３６２、ｅ３  ３６４、ｅ４  ３６６、ｅ５  ３７０、ｅ６  ３７２等の、さらに他の領域または状態が規定される。各々に状態値（たとえば｛１１１｝、｛０１１｝、｛００１｝）が割当てられる。
【００２６】
たとえば最下位ビットページを読出すときは、基準電圧３４４、３２２、３４６を一連の読出動作において印加することにより、最下位ビットが、メモリセルが状態Ｓ２  ３３２またはＳ３  ３３４である「０」であるか否か、または、最下位ビットが、メモリセルが状態Ｓ０  ３２６またはＳ１  ３３０である「１」であるか否か、判断する。３つの基準電圧３４４、３２２、３４６が与えられる場合、硬判定は３つのビット値を有するであろう。基準電圧は多数の異なる順序で印加することができるが、これは硬判定の結果に影響し、３つの基準電圧３４４、３２２、３４６をこの順序で与えた場合の硬判定値の一例は次の通りである。読出電圧が基準電圧３４４の左側の３つの基準電圧３４４、３２２、３４６すべてよりも低い場合、硬判定は｛１１１｝である。読出電圧が基準電圧３４４よりも高くかつ基準電圧３２２、３４６よりも低い場合、硬判定は｛０１１｝である。読出電圧が基準電圧３４４、３２２よりも高くかつ基準電圧３４６よりも低い場合、硬判定は｛００１｝である。読出電圧が３つの基準電圧３４４、３２２，３４６すべてよりも高い場合、硬判定は｛０００｝である。硬判定は、ビットごとに、３回の連続する読出動作において３つの基準電圧３４４、３２２、３４６各々を印加することによって生成される。
【００２７】
最上位ビットページを読出すときは、基準電圧３４０、３２０、３４２と３４８、３２４、３５０を、一連の読出動作において印加することにより、最上位ビットが、メモリセルが状態Ｓ１  ３３０またはＳ２  ３３２である「０」であるか否か、または、最上位ビットが、メモリセル状態がＳ０  ３２６またはＳ３  ３３４である「１」であるか否か、判断する。読出電圧が基準電圧３４０よりも低い場合、硬判定は｛１１１｝である。読出電圧が基準電圧３４０と３２０の間である場合、硬判定は｛０１１｝である。読出電圧が基準電圧３２０と３４２の間である場合、硬判定は｛００１｝である。読出電圧が基準電圧３４２と３４８の間である場合、硬判定は｛０００｝である。読出電圧が基準電圧３４８と３２４の間である場合、硬判定は｛１００｝である。読出電圧が基準電圧３２４と３５０の間である場合、硬判定は｛１１０｝である。読出電圧が基準電圧３５０よりも高い場合、硬判定は｛１１１｝である。
【００２８】
特に、メモリセルから読出された値が正しい可能性（尤度）は、読出された状態によって異なる。たとえば、読出リトライの結果得られた硬判定が状態Ｓ０  ３２６に対応する場合に、メモリセルが実際に目標状態電圧レベル３１２に対応する値を含む可能性は、読出リトライの結果得られた硬判定が状態ｅ１  ３６０に対応する場合よりも高い。なぜなら、状態Ｓ０  ３２６は状態ｅ１  ３６０よりも、分布３０２と３０４の交点から離れているからである。
【００２９】
読出動作の硬判定は、チャネルの知識に基づいて軟判定（対数尤度比の値）に変換することができる。状態Ｓ０  ３２６に対する硬判定はしたがって、状態ｅ１  ３６０に対する硬判定よりも高い対数尤度値を有するであろう。メモリセルに対する対数尤度比は、メモリセルの可能な値各々について、このセルがその値を含む可能性（尤度）を含む。よって、４状態メモリセルの場合、メモリセルに記憶されたデータの対応する対数尤度比は、４つの確率または尤度値を有し、これらの値は各々、取り得る４つの値のうちの１つをメモリセルが含む可能性（尤度）を与える。対数尤度比の値は、読出リトライ動作の硬判定から何らかの適切なやり方で生成される。本明細書の開示に基づいて、当業者は読出リトライ動作の硬判定から対数尤度比の値を計算するためのさまざまな技術と式を認識するであろう。いくつかの実施形態において、対数尤度比の値は、可能な読出リトライ動作の硬判定ごとに、予測されるチャネル特性に基づいて予め計算され、動作中に使用するためにルックアップテーブルに格納される。
【００３０】
いくつかの実施形態において、読出リトライ動作で得られたデータがデコーダにおいて収束しないときは、より多くの基準電圧を印加する別の読出リトライ動作をトリガし、デコーダにより高品質の軟判定が与えられるようにする。このように基準電圧の数を増やすプロセスは、リトライ数が最大数に達して読出失敗の通知があるまで、所望される限り長く続けることができる。
【００３１】
本明細書に開示される読出リトライ基準電圧調整は、基準電圧を調整することにより、より少ない読出リトライ回数で、低密度パリティ検査復号の収束性を得るように設計された所定の対数尤度比テーブルを得る。
【００３２】
最初は分布（たとえば３０２、３０４）の交点の位置はわかっていない。読出基準電圧の位置を、読出値が分布（たとえば３０２）の中心近くで得られるように定めた場合、結果として得られる対数尤度比の全範囲は用いられずハード読出ビット誤り率は最小にならないであろう。たとえば、対数尤度比を３つの符号付きビットで表わす場合、可能な対数尤度比の範囲は−７〜７である。１つ以上の実施形態において、チャネルトラッキングを実行しアルゴリズムを適用することにより、利用できる範囲の端に対数尤度比を集めるのではなく可能な対数尤度比の全分解能を用いる読出基準電圧を逆に見出す。
【００３３】
いくつかの実施形態において、チャネルトラッキングに基づく読出基準電圧の調整を読出リトライ動作に適用する。これらの実施形態では、最初にハード読出を実行して硬判定を読出すとともにこれらの硬判定を復号する。硬判定は、メモリセルの０値を０値に対応する大きな負の対数尤度比の値にマッピングしかつメモリセルの１値を１値に対応する大きな正の対数尤度比の値にマッピングすることにより、ソフト情報が入力される低密度パリティ検査デコーダのための対数尤度比の値にマッピングすることができる。
【００３４】
復号が失敗に終わった場合は、読出リトライ動作を開始し、ソフト読出を実行することにより、復号されるソフト情報または対数尤度比が得られる。ソフト読出では、ページの複数回の読出を異なる読出基準電圧で実施することにより、メモリセルに記憶された電圧を量子化したものを得る。メモリセルのマルチビット読出パターンを、ルックアップテーブルを用いて、ビット値が０または１である信頼水準を表わす対数尤度比にマッピングする。対数尤度比は、限定ではないがたとえばソフト復号を実行する低密度パリティ検査デコーダ等のデコーダに送り、書込まれたデータを回復する。アルゴリズムを実装することにより、読出電圧分布が実質的にガウス分布を有すると仮定して、ルックアップテーブルを埋める基準電圧を逆に特定する。
【００３５】
いくつかの実施形態において、ルックアップテーブルを埋めて対数尤度比にマッピングされる基準電圧を逆に特定するアルゴリズムは、貪欲法である。これは、使用する読出基準電圧の解に達する前に読出基準電圧の可能なすべての値を考慮することを意味する。これはまた逆アルゴリズムでもある。これは、このアルゴリズムが、可能な対数尤度比から初めて、その後、全分解能を用いる対数尤度比にマッピングされる量子化された電圧を得るための読出基準電圧を特定することを意味する。対数尤度比の全分解能を利用することにより、より少ない読出リトライ回数で、低密度パリティ検査復号は正しい書込値に収束することができる。読出基準電圧を適切に選択すると、対数尤度比の限定されたスペクトルは低密度パリティ検査デコーダの性能を損なわないことがわかる。いくつかの実施形態において、低密度パリティ検査復号は、ｍｉｎ−ｓｕｍ復号アルゴリズムを含むが、チャネルトラッキングに基づく読出リトライ電圧調整は、特定の種類のデコーダでの使用に限定されない。
【００３６】
図４は、本発明のいくつかの実施形態に従うチャネルトラッキングに基づく読出リトライ電圧調整が適用されるフラッシュチャネル読出経路４００を示す。読出経路４００は、メモリセルのアレイを有するフラッシュデバイスまたはその他いずれかの種類の不揮発性メモリを含む。本明細書の開示に基づいて、当業者は、本明細書に開示されるチャネルトラッキングに基づく読出リトライ電圧調整から利益を得ることができるさまざまな記憶技術を認識するであろう。
【００３７】
読出基準電圧４２６は、Ｎ回の一連の読出において、読出制御装置４２４によってフラッシュデバイス４０２に印加される。各メモリセルの読出がＮ回行なわれ、Ｎ回の読出の結果得られた読出データ４０４は、メモリセルに記憶された電圧を量子化したものとして、１メモリセル当たりＮビットを含む。読出データ４０４は読出バッファ４０６にバッファされ、読出バッファ４０６からの、バッファされた読出データ４１０は、対数尤度比生成回路４１２（または単純な尤度値にも適応できる尤度生成器）に与えられる。メモリセルのＮビットは、対数尤度比生成回路４１２においてメモリセルの対数尤度比にマッピングされる。いくつかの実施形態において、対数尤度比生成回路４１２は、バッファされた読出データ４１０における読出パターンを対数尤度比にマッピングするルックアップテーブルを含む。
【００３８】
トラッキングモジュール４３０は、読出バッファ４０６から、またはその他任意の適切なソースから、バッファされた読出データ４１０を受ける。一般的に、チャネルトラッキング技術は、読出しきい値電圧の変化に対応することにより所望の性能レベルを保つ。適応トラッキングアルゴリズムは典型的に、ソリッドステート記憶チャネルにおける変化をトラッキングし、その結果、更新された一組のチャネルパラメータを維持するのに役立つ。更新されたチャネルパラメータは、たとえば読出しきい値電圧の調整に使用される。たとえば２０１２年６月２６日に出願され「Optimization of Read Thresholds for Non-Volatile Memory」と題され本明細書にその全体を引用により援用する米国特許出願公開第２０１３／０３４３１３１号は、読出しきい値電圧を適応させるための技術を開示している。
【００３９】
トラッキングモジュール４３０は、メモリセルについて、ゼロの対数尤度比に対応する、近接する電圧分布（たとえば３０２、３０４）間の交点を識別し、この交点に対応する読出基準電圧ＶＲＥＦ０を含む読出基準電圧レベルＶＲＥＦ０  ４３２を与える。この交点に対応する読出基準電圧ＶＲＥＦ０をソフト読出動作に用いると、結果としてビット誤り率が低くなる。いくつかの実施形態ではこの読出基準電圧ＶＲＥＦ０を読出リトライ動作の第１の読出基準電圧（たとえば３２０参照）として用い、ＶＲＥＦ０近辺のその他の読出基準電圧を用いることにより、可能なすべての対数尤度比の値を得る。このように、トラッキングモジュール４３０は、読出リトライ動作で使用する読出基準電圧レベルＶＲＥＦ０  ４３２を生成する。他の実施形態では、トラッキングアルゴリズム設計、トラッキング誤り、またはピークもしくは裾のいずれかがガウスの挙動から外れている実際のチャネル分布によって、ＶＲＥＦ０が分布の交点に対応しない場合がある。それ以外の状況において、ＶＲＥＦ０は、分布の交点に一致するかもしれないが最初に印加されない場合があり、これは、４１２および４２４における計算において考慮される。
【００４０】
また、トラッキングモジュール４３０は、電圧分布（たとえば３０２、３０４）をトラッキングし、少なくともいくつかの電圧分布（たとえば３０４、３０６）について平均（たとえばμ０  ３１２、μ１  ３１４等）および分散σ０、σ１を計算する。電圧分布（たとえば３０４、３０６）がガウス分布を有すると仮定すると、電圧分布の平均および分散４３４は、近接する分布の交点を特定する。いくつかの実施形態において、トラッキングモジュール４３０は、各メモリセルの可能な各状態に対応する電圧分布ごとに、電圧分布の平均と分散４３４を計算する。その他いくつかの実施形態において、トラッキングモジュール４３０は、メモリセルのグループにおいて可能な各状態に対応する電圧分布ごとに、電圧分布の平均および分散４３４を計算する。電圧分布の平均および分散４３４は、読出データに基づいて任意の適切なやり方で計算することができる。一例として、トラッキングモジュール４３０は、２０１２年６月２６日に出願され「Fast Tracking for Flash Channels」と題されその全体を本明細書に引用により援用する米国特許出願公開第２０１３／０３４３１３１号に開示されているように動作し得る。本明細書の開示に基づいて、当業者は、ガウス分布からサンプリングしたデータに基づき平均および分散を計算するための多様な技術を認識するであろう。しかしながら、トラッキングモジュール４３０は特定のトラッキングアルゴリズムに限定されない。たとえば、その他いくつかの実施形態において、トラッキングモジュール４３０は、平均も分散も推定せずに交点をトラッキングする。平均および分散をトラッキングしないまたはできない場合であっても、いくつかの実施形態では、基準電圧を求めることを目的とした予め特徴付けられた平均および分散テーブルを使用する。尤度マップを動的に変更する場合は、基準電圧ギャップも動的に計算する。よって、本明細書における「平均および分散の計算」は、予め特徴付けられた平均および分散テーブルを使用する実施形態も指している。
【００４１】
２状態メモリセルまたはシングルレベルメモリセルの場合、トラッキングモジュール４３０は、状態「１」および「０」の電圧分布の平均および分散を推定するとともに、ビット誤り率を最も低下させ、かつ、０および１が書込データにある見込みが等しいときに上記分布の交点にある可能性が高い、読出基準電圧ＶＲＥＦ０を推定する。
【００４２】
トラッキングモジュール４３０は、電圧分布の平均および分散４３４を、対数尤度比ルックアップテーブルの更新において使用するために、対数尤度比生成回路４１２に与える。対数尤度比生成回路４１２は、復号のために尤度値を計算するのに使用される。また、対数尤度比生成回路４１２は、電圧分布の平均および分散４３４と読出基準電圧ＶＲＥＦ０  ４３２とに基づいてＶＲＥＦ０  ４３２を中心とするその他のＮ−１個の読出基準電圧をどこに設定するか判断することにより、バッファされた読出データ４１０の読出パターンをログ尤度比にマッピングするときの可能なすべての対数尤度比の値を得る。対数尤度比生成回路４１２は、ＶＲＥＦ０  ４３２を中心とするその他のＮ−１個の読出基準電圧をどこに設定するか判断し、ルックアップテーブルを更新し、Ｎ−１個の読出基準電圧レベル４２２を読出コントローラ４２４に与える。機能の分割が本明細書に開示されている代表的な実施形態に限定されないことに注意することが重要である。たとえば、その他の実施形態において、トラッキングモジュール４３０は、ＶＲＥＦ０  ４３２を中心とする読出基準電圧を計算して与え、これらの電圧を対数尤度比生成回路４１２に与えるのであって、対数尤度比生成回路４１２がＶＲＥＦ０  ４３２を中心とするその他のＮ−１個の読出基準電圧をどこに設定するか判断するのではない。このような機能分割も等価であることがわかるはずである。
【００４３】
チャネルトラッキングに基づく読出リトライ電圧調整アルゴリズムは、対数尤度比生成回路４１２において、トラッキングモジュール４３０から与えられたチャネルトラッキング情報に基づいて実装される。いくつかの実施形態において、対数尤度比生成回路４１２の対数尤度比ルックアップテーブルとトラッキングモジュール４３０からの電圧分布の平均および分散４３４とに基づいて計算された読出基準電圧は、対数尤度比生成回路４１２に格納される。
【００４４】
読出コントローラ４２４は、フラッシュデバイス４０２における読出リトライ動作を制御し、フラッシュデバイス４０２のメモリセルの読出に使用されるＮ個の読出基準電圧（ＶＲＥＦ０  ４３２を含む）各々を与える。いくつかの実施形態において、読出コントローラ４２４は、あるページのＮ回の読出を開始し、最初の読出には読出基準電圧ＶＲＥＦ０を使用、その後のＮ−１回の読出には、対数尤度比生成回路４１２が求めたＶＲＥＦ０を中心とする読出基準電圧を使用する。
【００４５】
シングルレベルメモリセルの一例において、ビットは可能な２つのしきい値電圧で記憶される。しきい値電圧レベルは、中心の交点に対して分散が等しいガウス確率密度関数に従う。論理０および論理１で示されるレベルはそれぞれ平均がμ０＝−１Ｖおよびμ１＝１Ｖであり、これはチャネルトラッキングで見出すことができる。この例において、最適読出基準電圧ＶＲＥＦ０は、チャネルトラッキングにより、０ボルトであることがわかる。低密度パリティ検査デコーダを使用することにより、ソフト復号アルゴリズムを用い、範囲が［−８，７］である４ビットの対数尤度比を用いて、最下位ビットページを復号するが、その他の固定小数点表現を用いることもできる。
【００４６】
図５は、ある実施形態に従う軟判定復号プロセス５００のフロー図である。軟判定復号プロセス５００は、たとえば図４の読出コントローラ４２４によって実現されてもよい。図５に示されるように、軟判定復号プロセス５００は最初にステップ５６０において、図６および図７との関連で以下でさらに説明するＬＬＲ  ＬＵＴ６００を用いて、取得されたパターンをＬＬＲ値にマッピングする。ステップ５６６において、テストを実行して復号が収束するか否か判断する。ステップ５６６において復号が収束すると判断された場合、プログラム制御は終了する。しかしながら、ステップ５６６において復号が収束しないと判断された場合、プロセス５００はステップ５６８において検査を実施し読出リトライパターンの最後に達したか否か判断する。このパターンのその他１つ以上の読出基準電圧がこれから使用するために残っている場合、ステップ５７０において次の基準電圧を取得し、その後、上記次の読出基準電圧に基づいてコード語を再度読出し、（プロセス５００の最初のステップであるステップ５６０における判断に応じて）プログラム制御は復号ステップ５６２、５６４に戻り、次の一組の対数尤度比の値を用いて現在のコード語を再び復号する。ステップ５６０からステップ５７０を経てステップ５６０に戻るループは一般的に、ステップ５６６で収束に達するまで、または、ステップ５６８ですべての読出基準電圧が試されるまで続く。最後の読出リトライが行なわれ復号において最後の一組の対数尤度比の値が使用された後において復号に成功しなかった場合、５７２において復号の失敗が宣言されプロセス５００は終了する。
【００４７】
いくつかの実施形態において、対数尤度比（ソフト）値は、複数の規則に基づいて設計プロセスの一部として計算される。これらの規則は一般的に以下の規則を含むがこれらに限定される訳ではない。
【００４８】
規則１：２回の読出が好ましい読出位置を囲んでいるが好ましい読出はまだ終了していない場合、判定領域に対する修正された対数尤度比の値は、二進数の判定値の等しい尤度を反映する０でなければならない。
【００４９】
規則２：最初と最後の対数尤度比の値を同一にすることによって下側のページテーブルのみの記憶ができるようにしてから、分散空間の節減が必要な場合に備えて下側のページテーブルを縫い合わせることにより上側のページテーブルを生成しなければならない。
【００５０】
規則３：好ましい読出位置の右側と左側にある対数尤度比の値の符号は互いに逆の符号である。これは、雑音分布の固有のシングルモダリティが原因である。
【００５１】
規則４：対数尤度比の値は、判定領域が好ましい読出位置から遠いほど、大きくなり、これは、二進数の判定値の信頼性がより高いことを示す。
【００５２】
規則５：対数尤度比の値の大きさは、好ましい読出位置からのデルタシフトの数にしてほぼ直線的に増し、これは、雑音分布の裾が指数的に減衰することが原因である。
【００５３】
規則６：最初と最後の対数尤度比の値の大きさを、固定小数点表現において可能な最大値からスケールダウンすることにより、低密度パリティ検査復号のエラーフロア（error floor）における性能を改善する。なぜなら、書込側の誤りが発生した場合は復号プロセスの可変ＬＬＲがより早く飽和するので、ＬＬＲ値のスケールダウンは、符号語近くでデコーダが行き詰まるのを遅らせ、結果としてエラーフロアの挙動を改善する。
【００５４】
規則７：規則６の例外は、スケールダウンする場合の対数尤度比の値を繰返す判定領域の数が多すぎたときに発生する。そこで、可能な最大の対数尤度比の値を用いることで、利用できる読出リトライを無駄にしないようにする。しかしながら、実際、規則６と７は、エラーフロアとウォーターフォール挙動のトレードオフの関係にあり、書込側の誤りがない特定のチャネルは、規則６ではなく規則７に従うことによって利益を得るであろう。
【００５５】
規則８：最初と最後の対数尤度比の値を、いずれかの読出リトライ段階において、好ましい読出位置が最も左側の読出の左または最も右側の読出の右にある場合、規則６よりもさらにスケールダウンする。この選択では判定の信頼度がより低いより多数の誤りが発生し、結果としてデコーダの収束確率を改善するであろう。
【００５６】
規則９：各読出リトライ領域に割当てられた対数尤度比（ＬＬＲ）の値は、ジーニ（genie）ビット誤り率（bit error rate）ＢＥＲ（たとえば周知のビット値を使用）またはＢＥＲに対する相関メトリックを最小にする可能性が最も高い、複数回の読出リトライのための読出電圧／複数の読出電圧の位置で、符号が変化する。
【００５７】
図６は、複数回の読出リトライ動作のための最下位ビット（ＬＳＢ）のデフォルト対数尤度比のルックアップテーブル６００である。テーブル６００は一般的に１セル２ビットタイプのメモリのためのルックアップテーブルを示す。テーブル６６０はたとえば読出コントローラ４２４に格納される。電圧スイープウィンドウの中心がリトライされるので、図３の最初の読出リトライが選択されて対応する下側のページと上側のページのビット誤り率を減じる。ビット誤り率の低減には、電荷状態の確率分布３０２、３０４、３０６、３０８の平均μおよび分散σの形態で利用できるサイド情報を使用する。しかしながら、このような特定の状態の統計に関する情報が容易に入手できない場合は、尤度計算式に入れる平均および分散を利用できないので、対応する尤度比の値は計算できない。他のシナリオにおいて、このような情報の取得は高いコストを要し、不正確であるまたはフラッシュアーキテクチャにおいて効率的にサポートされない。
【００５８】
このような状況において、デフォルトルックアップテーブル（たとえばＬＵＴ）を用いて、判定領域（たとえば複数読出パターン）を予め定められた対数尤度比の値にマッピングすることができる。１つ以上の実施形態において、異なるフラッシュタイプおよび／または異なるチャネル条件には異なるテーブルを維持することができる。たとえば、異なるプログラム／消去サイクル（たとえばＰＥＣ（program/erase cycle））ポイントまたは読出ディスターブサイクルに対して異なるルックアップテーブルが保存される。加えて、偶数−奇数アーキテクチャにおける奇数および偶数のワード線に対し、または、シングルレベルセル（たとえばＳＬＣ）ブロック、埋込まれたシングルレベルセルページ、または下側のページのみ（たとえばＬＰＯ（lower page only））のページに対し、コントローラ４２４は異なる対数尤度比の値を維持することができる。現在の測定されたチャネル状態（エンデュランス、リテンション、もしくは読出ディスターブ等）に関連するまたは現在の形状（奇数／偶数ワード線、中央／端部ワード線、もしくは中央／端部ブロック）に特有のフラッシュ部分の何らかの代表的な特徴付けに基づいてまたは何等かのメトリックに基づいて、これらのルックアップテーブルを（たとえばオンザフライで）動的に修正することができる。
【００５９】
ルックアップテーブル６００はデフォルトテーブルの一実施形態を示す。このテーブルは、最初の読出を中心として対称であるという特徴を有するが、一般的にＬＬＲは非対称である場合もある。このテーブルのＬＬＲ値は、各読出リトライ領域に割当てられ、各読出リトライの実質的に最適な読出電圧の位置で符号が正から負に変化する。このテーブルに、ゼロである対数尤度比の値はない。対数尤度比の値は、固定小数点Ｑ４．０符号付き表現から得たものである。符号付き表現の最大エントリは負（たとえば−８）または正（たとえば＋７）の可能性があるが、低密度パリティ検査ソフト復号における問題となり得る誤り位置での飽和対数尤度比の値の発生を減じるために、より小さい最大エントリを選択する。ルックアップテーブルのエントリは、フラッシュの種類が異なれば異なり得る。フラッシュの種類は、フラッシュを識別するプロセスにおいてフラッシュコントローラが本明細書の手法を用いて判断する。したがって、ルックアップテーブルは、他の種類のフラッシュの場合または永続的なチャネル障害がある場合にたとえば非対称であるおよび／またはゼロのエントリがあることで、異なって見える可能性がある。
【００６０】
図６の実施形態におけるＬＳＢのルックアップテーブル６００を、当業者は、２つ以上のセンシング基準電圧を用いてＭＳＢページまで簡単に拡張することができる。一般的に、ＴＬＣフラッシュデバイスの場合のように、フラッシュページタイプは３つ以上の複数のセンシング電圧さえ有し得る。このような場合、ＬＬＲルックアップテーブル６００のサイズはしたがって、ページ読出のための基準電圧の数の関数として拡大するであろう。各基準電圧の周囲の判定領域は、同一のワード線で他のページを余分に読出すことにより、またはマルチビット読出パターンに基づいて、区別することができる。いかなる場合でも、本明細書に開示されている概念および規則をこのようなページに拡張して、複数の基準電圧があるページのＬＬＲを計算することができる。
【００６１】
このように、各読出リトライで、さまざまなＬＬＲ群をメトリクスに基づいて呼び出す。これは、ディスパリティ、前の復号の試みのシンドロームの重みおよび／またはこのようなメトリクスの履歴等である。１つ以上の実施形態において、ＬＬＲルックアップテーブル６００は、エンデュランス、リテンション、読出ディスターブ、ダイ間のばらつきおよびページ間のばらつき等のさまざまなシナリオを対象とする。たとえば、デフォルト電圧よりも高い最適読出電圧を反映するために（たとえばエンデュランスまたは読出ディスターブが多い場合）、ＬＬＲ符号変化を、デフォルト電圧での読出よりも高い読出で選択できる。デフォルト電圧よりも低い最適電圧を反映するために（たとえば消去状態以外の状態の保持ノイズがある場合）、ＬＬＲ符号変化を、デフォルト電圧での読出よりも低い読出で選択できる。形状によるばらつきを反映するために、ブロックまたはフラッシュダイのページ局所性に基づく異なる符号変化を異なるページが有していてもよい。これらの局所性のばらつきは、オフラインで研究することができ、ＬＬＲ値と符号変化位置を選択するために使用される。
【００６２】
１つ以上の実施形態において、テーブル６００に格納されている（またはこれに代わる実装において動的に生成された）ＬＬＲ値を、図９との関連で以下でさらに説明するように、チャネル状態と復号性能に基づいて調整することができる。具体的には、リトライアルゴリズムは、成功した読出電圧の履歴を追跡し、この電圧を、回復に成功したページと同様のチャネル状態または局所性を有する他のページのリトライに使用することができる。たとえば、同時に書込まれ消去されたページ、同一回数読出されたページ、またはダイ上の位置が同じであるために同一の温度条件に晒されたページについて、チャネル状態は類似すると仮定できる。形状の類似性は、たとえば、セル間干渉（inter-cell interference：ＩＣＩ）または下にあるメモリセル上の物理特性が同様であるために同様の誤り挙動を示すダイまたはブロックの同一領域に属することに、基づき得る。一方、オープンブロック、すなわち一部しかプログラムされていないブロックでは、最近プログラムされたいくつかのページは、消去されたまたは現在のプログラミングの境界から離れているブロック内のその他のページと比較して、特殊なＩＣＩノイズを示すために、ＬＬＲルックアップテーブルも共有できる。
【００６３】
上記のように、本発明のある側面では、ＬＬＲ値を各読出リトライ領域に割当てるので、ＬＬＲ値は、読出リトライごとに、現在の読出電圧の位置で符号が正から負に変化する。このように、ＬＬＲルックアップテーブル６００の中心（ＬＬＲ＝０）は、最初の読出位置またはリトライウィンドウの中心に限定されない。よって、最適ＶＲＥＦ０を探しつつさらに読出が実行される。
【００６４】
一般的には、チャネルトラッキング／推定がイネーブルされて可能である（たとえばチャネル情報を入手できる）ときに、最初の読出動作を、生の（raw）ＢＥＲという点で最適と考えられる読出しきい値電圧を用いて実行し、読出リトライウィンドウの中心（ＬＬＲ＝０）を最初に読出す。しかしながら、チャネル情報を入手できないとき、開示されている方法は、このチャネル知識の不足を、ＬＤＰＣの失敗に続くその後の各読出動作での生のＢＥＲという点で最適な読出に関する仮定を変更することにより、埋合せる。実施するトラッキングの種類に関連する理由によるトラッキングの読出しきい値電圧の不足または不正確さを埋合せることも推奨される。たとえば、トラッキングによって収集された統計をフラッシュの異なる領域の複数ページについて平均する場合、推定された読出基準電圧は、平均ページに対してのみ良好であり、したがって、アウトライアー（outlier）ページの読出電圧は、（たとえばオンザフライで）動的に、または、読出リトライにおいてＬＬＲの符号変化を選択するときに、調整する必要がある。また、トラッキングは、そのコストのためにまたはチャネル変化を遅らせるレイテンシのために低頻度でしか実行できないので、最新トラッキング推定からのずれを考慮する必要がある。こうしたずれは、たとえば、最後の推定以来高温下で時間が経過したこと（リテンション）または最後の推定以来さらにページを読出したこと（読出ディスターブ）が原因で、発生し得る。加えて、ページは、最後のトラッキング実行以来、相当な回数消去とプログラムが行なわれた可能性があり、したがって、さらに磨耗し、上記ノイズが原因で電荷を失う／得る可能性がより高くなる。
【００６５】
より多くの読出を行なって実質的に最適な基準電圧を探す重要な動機は、さらに読出動作を行なうたびにソフトＬＤＰＣの性能が直ちに飽和すること、および、３回の読出動作に続くソフト復号の成功の利益が最小であることにある。よって、開示されている方法において、アルゴリズムは最小ＢＥＲの発見のためにさらに読出を行なうので、さらに行なう読出動作が無駄になることはない。ＢＥＲは、読出されたデータと復号されたデータとの相違に基づく、または、それに関連する別のメトリック、たとえば、復号失敗後の未飽和パリティ検査の数、もしくは、読出において他の場合であれば同じ確率で起こり得る１または０である、１と０以外の残余に基づくであろう。
【００６６】
１つ以上の実施形態において、特定の電圧シフトでＬＤＰＣ復号が成功すると、この成功した電圧シフトを、最初に、次のコード語の次の読出リトライに使用することにより、スループットを改善するとともに、バースト誤りをなくすのに役立つようにする。１つ以上の実施形態は、１ブロック内のまたは複数のダイにまたがるすべてのページについてＬＬＲ＝０の位置に関する同一のトラッキング仮定を用いるのではなく、ページごとに読出リトライを調整する。
【００６７】
図７は、本発明の実施形態に従い、図６のルックアップテーブル６００のＬＬＲ値割当７１０を用いて実行される多数の連続する読出動作７００を示す。一般的に、読出リトライモードを実装することによってチャネルトラッキングの欠陥を補償する。任意で、読出リトライモードは、図８および図９との関連で以下でさらに説明するように、成功した復号から得られた知識によって改善される。ＬＬＲ群におけるＬＬＲ値は、連続する読出動作各々に使用される、または、読出リトライモードにおける過去の読出動作のうちの１つの読出動作に使用される基準電圧の位置で符号が変化する。このように、連続する読出動作７００は、チャネルトラッキングモジュール４３０からの間違った基準電圧を補償する。他の読出と同様に、ＬＬＲの符号変化を同じ読出電圧で２回以上選択し、ソフト情報の品質は、生成されたさらに多くの判定領域によって改善される。１つ以上の実施形態において、これは２つの先行技術のハイブリッド手法である。一方の技術は、異なる読出基準電圧で硬判定を実施し過去の読出と現在の読出を集計することなく現在の符号情報のみを用いて復号を試みる。他方の技術は、複数の読出を集計するが最適読出電圧の位置に関する仮定は同じである。
【００６８】
図７に示されるように、過去の失敗した通常の読出または新たな読出リトライの読出である可能性がある、最初の読出リトライ動作７３０−１に対し、対数尤度比生成回路４１２（図４）は基準電圧７４０−１をＶＲＥＦ０に設定する。この基準電圧は、電圧分布が交差しかつ等しい中央部分にあり、そのため、読出結果は同様の確率でどちらかの状態になる（ビット誤りの確率を最小にし復号が成功する確率を最大にする）。このような読出結果においては、二進数判定が同じ確率で対数尤度比０にマッピングされる。そうすることで、その後の読出リトライにおいて読出基準電圧をＶＲＥＦ０の周囲に設定して対数尤度比の分解能と範囲を十分に利用することもできる。よって、いくつかの実施形態において、最初の読出リトライでは、基準電圧をデフォルトまたは初期電圧から０ボルトオフセットしたところに設定し、対数尤度比群、すなわち得られた２状態の読出電圧をマッピングする対象である対数尤度比の値は、｛６，−５｝である。この対数尤度比群におけるＬＬＲ値は、基準電圧７４０−１の位置で符号が変化する。
【００６９】
１つ以上の実施形態において、初期基準電圧７４０−１（ＶＲＥＦ０）は、好ましい（または計算された）読出基準電圧である。さまざまな実施形態において、好ましい読出電圧ＶＲＥＦ０は、基準電圧トラッキング技術によって提供される。いくつかの実施形態において、基準電圧ＶＲＥＦ０は、特定の最悪のプログラム／消去サイクルまたはリテンション条件に合うように選択されたデフォルト電圧である。なお、図６のデフォルトルックアップテーブル６００は、図７の読出シーケンスに合わせて調整され、変更された場合、それは、デフォルトテーブル６００のＬＬＲ値をそれに応じて変更する必要があることを意味する。
【００７０】
いくつかの実施形態において、第２の読出リトライ動作７３０−２に対し、対数尤度比群を｛５，２，−６｝に設定してエンデュランス効果を補償するリトライを実行する（たとえばプログラム／消去サイクル効果が原因でしきい値電圧が増したと仮定）。別の基準電圧７４０−２を、第１の基準電圧７４０−１から電圧オフセットΔの位置に設定する。
【００７１】
１つ以上の実施形態において、Δは、特定のフラッシュタイプ、チャネル状態、またはページ局所性に対して特定のデフォルト値を用いてプログラムできる。特定のフラッシュタイプに対するΔ電圧をオフラインで決定する場合には、いくつかの目標を達成する必要がある。たとえば、この目標は、特定の最大数の読出リトライ後のソフト復号の収束の確率を改善すること、および、１回の読出リトライ当たりのソフト復号の収束の確率を改善することを含み得る。別の目標は、限定されたスイープという問題の発生を減じることであり、この問題では、数回の読出リトライをすべて、もしスイープが好ましい読出基準電圧ＶＲＥＦ０を中心としているのであればこのスイープの境界の内側に設定することはできない。固定電圧Δが大きいほど、このようなめったにないケースの頻度が増すであろう。Δ電圧が小さいほど、読出ノイズの効果が原因で不法な読出パターン（ＬＬＲに変換されるマルチ読出ハードパターン）の頻度が高くなるであろう。また、Δの値が小さいほど、本明細書に開示されている最適基準電圧における最大および最小の電圧のずれを制限し、よって、Δが大きいほど、特にトラッキングによって発見された平均最適電圧が真の最適値から離れている場合に、最適基準電圧に達するのは容易になる。
【００７２】
このように、第２の読出リトライ動作７３０−２は、７４０−１（ＶＲＥＦ０）とＶＲＥＦ０＋Δに設定された別の基準電圧７４０−２とを用いる読出を含む。少なくとも１つの実施形態において、第２の読出リトライ動作７３０−２に対し、新たな読出動作を一度だけ基準電圧７４０−２を用いて実行し、基準電圧７４０−１を用いる過去の読出を再利用する（その後の読出リトライ動作７３０についても同様）。２つの基準電圧７４０−１および７４０−２は、結果として、可能な３つの状態を表わす読出データをもたらし、これらの状態は、３エントリの対数尤度比群｛５，２，−６｝にマッピングされる。対数尤度比群のＬＬＲ値は、基準電圧７４０−２の位置で符号が変化する。
【００７３】
復号は、第２の読出リトライ７３０−２から得られた対数尤度比に対して実行され、低密度パリティ検査復号の収束が成功した場合、読出動作は終了する。そうでなければ第３の読出リトライ７３０−３を開始すればよい。
【００７４】
いくつかの実施形態において、第３の読出リトライ動作７３０−３に対し、対数尤度比群を｛５，−１，−２，−６｝に設定してリテンション効果を補償するリトライを実行する（たとえば電荷漏れの効果が原因でしきい値電圧が低下したと仮定）。さらに他の基準電圧７４０−３を、基準電圧７４０−１からΔを減算した位置に設定する。よって、第３の読出リトライ動作７３０−３は、７４０−１（ＶＲＥＦ０）と、それぞれＶＲＥＦ０＋ΔおよびＶＲＥＦ０−Δに設定された他の基準電圧７４０−２および７４０−３とを用いる読出を含む。これら３つの基準電圧は、結果として、可能な４つの状態を表わす読出データをもたらし、これらの状態は、４エントリの対数尤度比群｛５，−１，−２，−６｝にマッピングされる。対数尤度比群のＬＬＲ値は、基準電圧７４０−３の位置で符号が変化する。
【００７５】
復号は、第３の読出リトライ動作７３０−３から得られた対数尤度比に対して実行され、低密度パリティ検査復号の収束が成功した場合、読出動作は終了する。そうでなければ第４の読出リトライ動作７３０−４を開始すればよい。
【００７６】
いくつかの実施形態において、第４の読出リトライ動作７３０−４に対し、対数尤度比群を｛５，４，２，１，−６｝に設定してエンデュランス効果を補償するリトライを実行する。さらに他の基準電圧７４０−４を、基準電圧７４０−１に２Δを加算した位置に設定する。よって、第４の読出リトライ動作７３０−４は、７４０−１（ＶＲＥＦ０）と、それぞれＶＲＥＦ０＋Δ、ＶＲＥＦ０−Δ、およびＶＲＥＦ０＋２Δに設定された他の基準電圧７４０−２、７４０−３、および７４０−４とを用いる読出を含む。これら４つの基準電圧は、結果として、可能な５つの状態を表わす読出データをもたらし、これらの状態は、５エントリの対数尤度比群｛５，４，２，１，−６｝にマッピングされる。対数尤度比群のＬＬＲ値は、基準電圧７４０−４の位置で符号が変化する。
【００７７】
いくつかの実施形態において、第５の読出リトライ動作７３０−５に対し、対数尤度比群を｛６，−１，−２，−４，−５，−６｝に設定してリテンション効果を補償するリトライを実行する。さらに他の基準電圧７４０−５を、基準電圧７４０−１から２Δを減算した位置に設定する。よって、第５の読出リトライ動作７３０−５は、７４０−１（ＶＲＥＦ０）と、それぞれＶＲＥＦ０＋Δ、ＶＲＥＦ０−Δ、ＶＲＥＦ０＋２Δ、およびＶＲＥＦ０−２Δに設定された他の基準電圧７４０−２、７４０−３、７４０−４、および７４０−５とを用いる読出を含む。これら５つの基準電圧は、結果として、可能な６つの状態を表わす読出データをもたらし、これらの状態は、６エントリの対数尤度比群｛６，−１，−２，−４，−５，−６｝にマッピングされる。対数尤度比群のＬＬＲ値は、基準電圧７４０−５の位置で符号が変化する。
【００７８】
いくつかの実施形態において、第６の読出リトライ動作７３０−６に対し、対数尤度比群を｛６，５，４，２，１，−１，−６｝に設定してエンデュランス効果を補償するリトライを実行する。さらに他の基準電圧７４０−６を、基準電圧７４０−１に３Δを加算した位置に設定する。よって、第６の読出リトライ動作７３０−６は、７４０−１（ＶＲＥＦ０）と、それぞれＶＲＥＦ０＋Δ、ＶＲＥＦ０−Δ、ＶＲＥＦ０＋２Δ、ＶＲＥＦ０−２Δ、およびＶＲＥＦ０＋３Δに設定された他の基準電圧７４０−２、７４０−３、７４０−４、７４０−５、および７４０−６とを用いる読出を含む。これら６つの基準電圧は、結果として、可能な７つの状態を表わす読出データをもたらし、これらの状態は、７エントリの対数尤度比群｛６，５，４，２，１，−１，−６｝にマッピングされる。しかしながら、対数尤度比群のＬＬＲ値は、読出位置７４０−６ではなく基準電圧７４０−４の位置で符号が変化する。リトライの試み７３０−６の固有の付加価値は、７３０−６は、７３０−４と比較して７４０−４の周辺の判定領域が多いので、７４０−４が最適読出に対応するのであれば、復号が成功する確率が高いことである。
【００７９】
いくつかの実施形態において、第７の読出リトライ動作７３０−７に対し、対数尤度比群を｛５，１，−１，−２，−４，−５，−６，−７｝に設定してリテンション効果を補償するリトライを実行する。さらに他の基準電圧７４０−７を、基準電圧７４０−１から３Δを減算した位置に設定する。よって、第７の読出リトライ動作７３０−７は、７４０−１（ＶＲＥＦ０）と、それぞれＶＲＥＦ０＋Δ、ＶＲＥＦ０−Δ、ＶＲＥＦ０＋２Δ、ＶＲＥＦ０−２Δ、ＶＲＥＦ０＋３Δ、およびＶＲＥＦ０−３Δに設定された他の基準電圧７４０−２、７４０−３、７４０−４、７４０−５、７４０−６、および７４０−７とを用いる読出を含む。これら７つの基準電圧は、結果として、可能な８つの状態を表わす読出データをもたらし、これらの状態は、６エントリの対数尤度比群｛５，１，−１，−２，−４，−５，−６，−７｝にマッピングされる。しかしながら、対数尤度比群のＬＬＲ値は、読出位置７４０−７ではなく基準電圧７４０−５の位置で符号が変化する。リトライの試み７３０−７の固有の付加価値は、７３０−７は、７３０−５と比較して７４０−５の周辺の判定領域が多いので、７４０−５が最適読出に対応するのであれば、復号が成功する確率が高いことである。
【００８０】
復号は、第７の読出リトライ動作７３０−７から得られた対数尤度比に対して実行され、低密度パリティ検査復号の収束が成功した場合、読出動作は終了する。そうでなければ、予め定められた最大リトライ数に達するまで、さらに他の読出リトライ動作を他の基準電圧７４０−７を追加するパターンに従って開始して、リテンション効果を補償するリトライとエンデュランス効果を補償するリトライを交互に実行すればよい。各リトライが用いる対数尤度比群のＬＬＲ値は、それぞれの基準電圧の位置でまたは以前に試みた過去の読出で符号が変化し、最終的に得られる対数尤度比群は、対数尤度比の範囲に含まれる可能なすべての値を含む。実行する読出リトライ動作の回数は特定の回数に限定されない。所望の回数の読出リトライ動作を、メモリセルに書込まれたデータを正確に読出し復号しようとして実行した後に、復号が成功しなかった場合は、読出誤りを表明して動作を終了すればよい、または、さらに誤り回復動作を開始すればよい。
【００８１】
要約すると、読出結果において望ましい対数尤度比の値の範囲に対応する対数尤度比群を選択し、これらの対数尤度比の値が得られる基準電圧レベルを、チャネルトラッキングを通して得た平均と分散に基づいて計算する。このように、間隔が均等である読出基準電圧から得られた読出パターンの対数尤度比を計算するのではなく、マルチビット読出パターンを、対数尤度比の範囲内で所望の間隔が置かれている予め定められた対数尤度比にマッピングする。対数尤度比群の中のＬＬＲ値は、それぞれの読出基準電圧の位置でまたは過去に失敗した復号の試みにおける過去の読出電圧の位置で符号が変化する。
【００８２】
読出リトライモードの１つ以上の実施形態において、寿命の終わり（たとえばエンデュランス効果）について最適化された最初の読出の次に、寿命の始まり（たとえばリテンション）について最適化された読出を行なう（なぜなら、最近製造されたソリッドステートメモリは一般的にビット誤り率（ＢＥＲ）が非常に低いからである）。
【００８３】
本明細書に開示されるチャネルトラッキングに基づく読出リトライ電圧の調整によって、対数尤度比の分解能をより徹底的に使用することができ、基準電圧の設定を改善し、結果として、対数尤度比範囲の比較的小さな部分に集中していない対数尤度比にマッピングされるパターンを有する読出データを得る。読出リトライ動作の基準電圧を選択することにより、早期に復号に成功する見込みが改善され、全体的なスループットが増す。読出基準電圧を動的に選択することにより、変化するチャネル状態を調整するまたはそれに適応する能力が得られる。実際、チャネルの品質に関する情報をトラッキング推定から抽出することにより、読出リトライ電圧を効果的に選択する。
【００８４】
図８は、本発明のある実施形態に従う読出リトライプロセス８００の実現を示すフローチャートである。図８に示されるように、ステップ８０５において、ハードＬＤＰＣ復号に失敗したと判断された場合、読出リトライプロセス８００は、ステップ８１０において＋Δで読出動作を実行する。＋Δは２回の読出動作の新たな中心読出（たとえばそこでＬＬＲの符号が変化する）である。ステップ８１５において｛５，２，−６｝のＬＬＲ割当が確立されソフトＬＤＰＣ復号が実行される。ステップ８２０において読出リトライに続くソフトＬＤＰＣ復号に成功したと判断された場合、ステップ８２５においてΔ（復号の成功をもたらしたオフセットに対応）が記憶される。言い換えると、Δは最適読出動作のための位置である。
【００８５】
よって、同様のページ（たとえば同じブロック、そうでなければ同様であることがわかっている）の読出の場合は、最初の読出にΔを使用する必要がある、または、このページタイプ（たとえば特徴を共有するページ）に対する優先度の高い読出リトライとしてΔを使用する必要がある。たとえば、成功をもたらす同じ電圧オフセットを、（たとえば副次的知識に基づいて）同一グループ内の他のページに、または、同様のページに（たとえばブロック１のページ１００はブロック２のページ１００に類似）、または、バースト誤りの存在下で（たとえば同時にページの失敗が生じる）、用いることができる。
【００８６】
しかしながら、ステップ８２０においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ８３０において−Δで別の読出リトライが実行される。−Δは３回の読出動作の新たな中心読出である。ステップ８３５において｛５，−１，−２，−６｝のＬＬＲ割当が確立されソフトＬＤＰＣが実行される。ステップ８４０において最新の読出リトライに続くソフトＬＤＰＣ復号が成功したと判断された場合、ステップ８４５において−Δが記憶される。
【００８７】
しかしながら、ステップ８４０においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ８５０において＋２Δで別の読出リトライが実行される。＋２Δは４回の読出動作の新たな中心読出である。ステップ８５５において｛５，４，２，１，−６｝のＬＬＲ割当が確立されソフトＬＤＰＣが実行される。ステップ８６０において最新の読出リトライに続くソフトＬＤＰＣ復号が成功したと判断された場合、ステップ８６５において＋２Δが記憶される。
【００８８】
しかしながら、ステップ８６０においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ８７０において−２Δで別の読出リトライが実行される。−２Δは５回の読出動作の新たな中心読出である。ステップ８７５において｛６，−１，−２，−４，−５，−６｝のＬＬＲ割当が確立されソフトＬＤＰＣが実行される。ステップ８８０において最新の読出リトライに続くソフトＬＤＰＣ復号が成功したと判断された場合、ステップ８８２において−２Δが記憶される。
【００８９】
しかしながら、ステップ８８０においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ８８４において＋３Δで別の読出リトライが実行される。＋２Δは６回の読出動作の中心読出である。ステップ８８６において｛６，５，４，２，１，−１，−６｝のＬＬＲ割当が確立されソフトＬＤＰＣが実行される。ステップ８８８において最新の読出リトライに続くソフトＬＤＰＣ復号が成功したと判断された場合、ステップ８９０において＋２Δが記憶される。
【００９０】
しかしながら、ステップ８８８においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ８９２において−３Δで別の読出リトライが実行される。−２Δは７回の読出動作の中心読出である。ステップ８９４において｛５，１，−１，−２，−４，−５，−６，−７｝のＬＬＲ割当が確立されソフトＬＤＰＣが実行される。ステップ８９６において最新の読出リトライに続くソフトＬＤＰＣ復号が成功したと判断された場合、ステップ８９８において−２Δが記憶される。
【００９１】
しかしながら、ステップ８９６においてソフトＬＤＰＣ復号が成功しなかったと判断された場合、任意でさらに他のリトライ方法を試みることができる。
【００９２】
図９は、本発明の別の実施形態に従う読出リトライプロセス９００の実現を示すフローチャートである。図９に示されるように、ステップ９０５においてＥＣＣページ（たとえばＥｐａｇｅ０）に対するハードＬＤＰＣ復号が失敗したと判断された場合、ステップ９１０において読出リトライプロセス９００は−Δで読出動作を実行する。−Δは２回の読出動作の新たな中心読出であり、本明細書に記載の設計規則に従ってＬＬＲ  ＬＵＴ６００が選択される。
【００９３】
ステップ９１５において現在の読出リトライにおいてＥｐａｇｅ０のソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ９２０において＋Δで別の読出リトライが実行される。＋Δは３回の読出動作の新たな中心読出であり、ＬＬＲ  ＬＵＴ６００が修正される。
【００９４】
ステップ９２５において現在の読出リトライにおいてＥｐａｇｅ０のソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ９３０において−２Δで別の読出リトライが実行される。−２Δは４回の読出動作の新たな中心読出であり、ＬＬＲ  ＬＵＴ６００が修正される。
【００９５】
ステップ９３５において現在の読出リトライにおいて符号化ページ（Ｅｐａｇｅ）０のソフトＬＤＰＣ復号が成功したと判断された場合、Ｅｐａｇｅ０の復号は終了しステップ９４０において次のページに対し−２Δ（成功した復号に対応）が記憶される。言い換えると、−２Δは最適な読出動作の位置である。同様のページを読出す場合（たとえばブロック／ダイ内の局所性が同一である、そうでければ類似するとわかっている）、−２Δを最初の読出に使用することができる、または、優先度の高い読出リトライに対して−２Δを増すことができる。
【００９６】
図９に示されるように、ステップ９５０において別のＥＣＣページ（たとえばＥｐａｇｅ１）に対するハードＬＤＰＣ復号が失敗したと判断された場合、ステップ９６０において読出リトライプロセス９００は−Δで読出動作を実行する。−Δは２回の読出動作の新たな中心読出であり、ＬＬＲ  ＬＵＴ６００が修正される。
【００９７】
ステップ９７０において現在の読出リトライにおいてＥｐａｇｅ１のソフトＬＤＰＣ復号が成功しなかったと判断された場合、ステップ９８０において別の読出リトライが−２Δで実行される。−２Δは３回の読出動作の新たな中心読出であり、ＬＬＲ  ＬＵＴ６００が修正される。−２Δが選択される理由は、同様のＥｐａｇｅ０の復号が成功したとき（ステップ９４０）に読出リトライプロセス９００が−２Δを記憶したことにある。
【００９８】
ステップ９９０において現在の読出リトライにおいてＥｐａｇｅ１のソフトＬＤＰＣ復号が成功したと判断された場合、Ｅｐａｇｅ１の復号が完了し、ステップ９９５において次のページのために−２Δ（成功した復号に対応）が記憶される。
【００９９】
１つ以上の実施形態は、リテンション補償（負の基準電圧シフトを示す）のシナリオとエンデュランス／読出ディスターブ補償（正の基準電圧シフトを示す）のシナリオの間で、読出回数のバランスを取る。これに代えて、先ずエンデュランスに対して読出動作が３回実行される場合、このエンデュランスのシナリオは、第２、第３、および第４の読出動作からソフトＬＬＲ値を得るが、リテンションのシナリオは、第５、第６、および第７の読出動作からソフトＬＬＲ値を得るであろう。エンデュランスおよびリテンションを対象とする読出動作が交互に行なわれる場合、どちらのシナリオも、同等のソフトＬＤＰＣおよび基準電圧探索トライアルを受ける。
【０１００】
１つ以上の実施形態におけるＬＬＲ符号変化の順序は、寿命全体でのスループットのバランスを取ることに基づいている。これは、必要な読出動作の平均回数を減じて、特に読出リトライモードに入る可能性が高いコード語に対する復号に成功するように設計される。たとえば、オフセット０でオンザフライ読出が実行される場合、寿命の終わりにおけるページの最適基準電圧（ＶＲＥＦ）は−２Δであり、寿命の始まりにおいてページの基準電圧（ＶＲＥＦ）は−Δである。そうすると、寿命の終わりのページがリトライに入った可能性が高いので、基準電圧−Δの前に基準電圧−２Δが使用される。
【０１０１】
リテンションまたはエンデュランスの結果、常にデフォルト電圧から負または正にずれる訳ではない。むしろ、特定のフラッシュチャネルタイプでは、ロングリテンション劣化等のノイズに対し、分布は、裾の交点の位置は顕著に変化せずに広くなる。このような場合、復号性能は、ソフトＬＬＲからより多くの利益を得る。なぜなら、分布はよりガウスに近くＬＬＲ飽和は少ないからである。結果として、頻繁にＬＬＲ符号を変化させて最適基準電圧をやみくもに探すのではなく、デフォルト読出電圧で符号を固定的に変化させることになるであろう。
【０１０２】
変形
新たなフラッシュ読出ごとに、すべてのＬＬＲ割当を、さらに他のフラッシュ読出を要求する前に複数回の復号トライアルで使い果たしてもよく、または、いくつかのＬＬＲ割当を、トラッキングから得られた最適基準電圧のリストおよびこのトライアルまでに失敗したトライアルのシンドロームの重みまたはディスパリティに基づいて、テストしてもよい。
【０１０３】
別の変形では、最初の２回または３回の読出動作においてデフォルト基準電圧が十分であると仮定してデフォルト基準電圧に関するソフト情報を導入してもよい。リトライモードが２回目の読出動作から３回目の読出動作に進むとき、デフォルト基準電圧近くのＬＬＲ値を減衰させることによってエンデュランスによる分布の広がりを考慮してもよい。デコーダがこれら２回または３回の読出動作後に収束しない場合は、リテンションイベントであると仮定することができる。したがって、デフォルト基準電圧は、１Δカウント記号分左に移動すると想定される。しかしながら、移動は、この移動したデフォルト基準電圧で読出が行なわれることを意味しない。むしろ、この想定のもとでＬＬＲテーブル６００が変更されることを意味する。２回の読出はこの新たなデフォルト基準電圧で続けることができる。
【０１０４】
この変形は、読出スクラブ等の他のシステムレベルアルゴリズムでリテンションに対処できると認識し、どの時点でも典型的なリテンションは１ヶ月または２か月以下であると想定し得る。したがって、１つ以上の実施形態において、リテンションの範囲は４回目、５回目、および６回目の読出動作に移る。典型的にエンデュランスは電圧をデフォルト基準電圧から大きく移動させないので、デフォルト基準電圧はもとのままであり、さらに読出が実行される場合はデフォルト基準電圧により近い領域で減衰したＬＬＲが使用される。
【０１０５】
結論
上述のアプリケーションおよび関連する実施形態は例示にすぎないとみなされるべきであり、本明細書に開示されている読出しきい値電圧調整技術およびＬＬＲ群割当技術を用いて多数のその他の実施形態を構成することができる。１つ以上の実施形態に従うと、本明細書に記載の方法およびプロセスは、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアを組合わせたものとしてのコントローラにおいて実現し得る。
【０１０６】
たとえば、本明細書に記載の方法およびプロセスは、ソリッドステート記憶装置のファームウェアの一部としてメモリに記憶されてもよく、本明細書に記載の方法およびプロセスを実施するためにプロセッサによって実行されてもよい。その代わりにまたはそれに加えて、本明細書に記載の方法およびプロセスは、コントローラからアクセス可能な他のコンピュータ可読媒体に記憶されていてもよい。他の実施形態において、本明細書に記載の方法およびプロセスは、たとえばインターフェイスを通して記憶装置に接続されたホストデバイスのドライバモジュール内のように、記憶装置の外にあり記憶装置に機能的に接続されている計算システム内で実現されてもよい。さらに、本明細書に記載の方法およびプロセスは、メモリにまたは計算システムからアクセス可能な他のコンピュータ可読媒体に記憶されていてもよく、計算システムのプロセッサによって実行されてもよい。
【０１０７】
また、本明細書に記載の読出しきい値電圧調整技術およびＬＬＲ群割当技術は、少なくとも一部がメモリに記憶された１つ以上のソフトウェアプログラムの形態で実現されてもよく、コンピュータ等の処理装置のプロセッサによって実行されてもよいことが、理解されるはずである。先に述べたように、このようなプログラムコードが組込まれたメモリまたはその他の記憶装置は、本明細書においてより一般的に「コンピュータプログラムプロダクト」と呼ぶものの一例である。
【０１０８】
開示されている読出しきい値電圧調整技術およびＬＬＲ群割当技術は、１つ以上の処理プラットフォームを用いて実現し得る。したがって、処理モジュールまたはその他のコンポーネントのうちの１つ以上は、各々コンピュータ、記憶装置、またはその他の処理プラットフォーム要素で実行されてもよい。このような所与の要素は、本明細書においてより一般的に「処理装置」と呼ぶものの一例とみなし得る。
【０１０９】
次に図１０を参照して、本発明の１つ以上の実施形態の少なくとも一部を実現するのに使用し得る、可能な１つの処理プラットフォームが示されている。この実施形態の処理プラットフォーム１０００は、所与のシステムの少なくとも一部を含み、かつ、ネットワーク１００４を通して通信する１００２−１、１００２−２、１００２−３、…１００２−Ｄで示された少なくとも１つの処理装置を含む。ネットワーク１００４は、ワイヤレスエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、衛星ネットワーク、電話もしくはケーブルネットワーク、セルラーネットワーク、ＷｉＦｉもしくはＷｉＭＡＸ等の無線ネットワーク、または上記およびその他の種類のネットワークのさまざまな部分または組合わせ等の、いかなる種類のネットワークも含み得る。
【０１１０】
処理プラットフォーム１０００の処理装置１００２−１は、メモリ１０１２に結合されたプロセッサ１０１０を含む。プロセッサ１０１０は、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはその他の種類の処理回路、および、このような回路要素の部分または組合わせと、メモリ１０１２とを含み得る。これは、実行可能なコンピュータプログラムコードが組込まれた「コンピュータプログラムプロダクト」の一例とみなすことができ、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、またはその他の種類のメモリの任意の組合わせを含み得る。
【０１１１】
また、処理装置１００２−１には、処理装置とネットワーク１００４およびその他のシステムコンポーネントとのインターフェイスのために使用され従来のトランシーバを含み得るネットワークインターフェイス回路１０１４も含まれている。
【０１１２】
処理プラットフォーム１０００に他の処理装置１００２がある場合、この処理装置は、図面の処理装置１００２−１について示されているのと同様のやり方で構成されるものと考えられる。
【０１１３】
ここでも、図面に示されている特定の処理プラットフォーム１０００は専ら例示のために示されており、所与のシステムは、その他のまたは代替の処理プラットフォームと、多数の異なる処理プラットフォームの任意の組合わせを含み得る。このようなプラットフォームは各々、１つ以上のコンピュータ、記憶装置、またはその他の処理装置を含む。
【０１１４】
システムの複数の要素を、図１０に示されるタイプの共通の処理プラットフォーム上に実装してもよく、または、このような要素各々を別々の処理プラットフォーム上に実装してもよい。
【０１１５】
当該技術では周知のように、本明細書に記載の方法および装置は、コンピュータ可読コード手段が実装されたコンピュータ可読媒体をそれ自身が含む製造物品として、流通し得るものである。コンピュータ可読プログラムコード手段は、コンピュータシステムとともに動作して上記ステップのうちのすべてまたは一部を実行することによって、本明細書に記載の方法を実行するまたは本明細書に記載の装置を作成する。コンピュータ可読媒体は、有形の記録可能な媒体（たとえばフロッピー（登録商標）ディスク、ハードドライブ、コンパクトディスク、メモリカード、半導体装置、チップ、特定用途向け集積回路（ＡＳＩＣ））であってもよく、または、送信媒体（たとえば、光ファイバを含むネットワーク、ワールドワイドウェブ、ケーブル、または、時分割多元接続、符号分割多元接続を用いる無線チャネルもしくはその他の無線周波数チャネル）であってもよい。コンピュータシステムで使用するのに適した情報を記憶できる周知のまたは開発済みの媒体を使用してもよい。コンピュータ可読コード手段は、命令およびデータ、たとえば磁気媒体上の磁気的な変化またはコンパクトディスクの表面上の高さの変化をコンピュータが読取ることができるようにするための機構である。
【０１１６】
上記本発明の実施形態が専ら例示を目的として示されている点を再び強調しておく必要がある。多数の変形およびその他の代替の実施形態が使用されてもよい。たとえば、上記技術は、本明細書に開示されている読出しきい値電圧調整プロセスから利益を享受し得るさまざまな他の種類のソリッドステート記憶装置に適用できる。また、本明細書に示される処理装置の要素の具体的な構成および関連する読出しきい値電圧調整技術は、他の実施形態において変形し得る。加えて、例示されている実施形態の説明において多様な単純化が想定されているが、これも、本発明の必要条件または限定ではなく代表的なものとみなされねばならない。以下の請求項の範囲に含まれるその他代替の多数の実施形態は、当業者には容易に明らかになるであろう。
【図１】
2017168089.tif 000003
【図２】
2017168089.tif 000004
【図３】
2017168089.tif 000005
【図４】
2017168089.tif 000006
【図５】
2017168089.tif 000007
【図６】
2017168089.tif 000008
【図７】
2017168089.tif 000009
【図８】
2017168089.tif 000010
【図９】
2017168089.tif 000011
【図１０】
2017168089.tif 000012
【外国語明細書】
2017168089000001.pdf