(57)【特許請求の範囲】
【請求項１】
データを書き込む方法であって、
データ蓄積装置（１２０２）で、
前記データ蓄積装置（１２０２）に蓄積されるデータページを受信するステップと、
前記受信されたデータページに相当するコードワードを生成するステップと、
前記データ蓄積装置（１２０２）の第１のメモリ部分（１２１０）の物理ページに前記コードワードを蓄積するステップであって、特定のデータページ（１２３２）に相当する特定のコードワードの第１の部分（１２４０）が前記第１のメモリ部分（１２１０）の第１の物理ページ（１２１２）に蓄積され、前記特定のコードワードの第２の部分（１２４２）が前記第１のメモリ部分（１２１０）の第２の物理ページ（１２１４）に蓄積されるステップと、
前記第１の部分（１２４０）を蓄積することを受けてホスト装置（１２３０）にメッセージ（１２４８）を送信するステップであって、前記メッセージは前記特定のデータページ（１２３２）が前記データ蓄積装置（１２０２）に正常に蓄積されたことを示し、前記メッセージ（１２４８）は、第２の部分（１２４２）の蓄積が完了するより前に送信されるステップと、
前記第１のメモリ部分（１２１０）の物理ページから前記データ蓄積装置（１２０２）の第２のメモリ部分（１２２０）の物理ページ（１２２２）に前記コードワードをコピーするステップと、
を遂行する方法。
【請求項２】
請求項１記載の方法において、
前記特定のコードワードは、複数のサブコードと前記複数のサブコードの合同パリティとを含む連結コードワードである方法。
【請求項３】
請求項２記載の方法において、
前記複数のサブコードの各々はサブコードデータ部分とサブコードパリティ部分とを含み、前記特定のコードワードの第１の部分は前記サブコードデータ部分を含み、前記特定のコードワードの第２の部分は前記合同パリティを含む方法。
【請求項４】
請求項１記載の方法において、
前記データ蓄積装置（１２０２）はフラッシュメモリ（１２０４）を含み、前記第１のメモリ部分（１２１０）は前記フラッシュメモリ（１２０４）のシングルレベルセル（ＳＬＣ）を含み、前記第２のメモリ部分（１２２０）は前記フラッシュメモリ（１２０４）のマルチレベルセル（ＭＬＣ）を含む方法。
【請求項５】
請求項４記載の方法において、
前記第２のメモリ部分（１２２０）の物理ページは、単一のＭＬＣワード線である方法。
【請求項６】
請求項４記載の方法において、
前記マルチレベルセルの各々は１セル当たり第１のビット数に従ってデータを蓄積するように構成され、第２の数は前記受信されたデータページの数に相当し、かつ第１の数に等しい方法。
【請求項７】
請求項６記載の方法において、
前記コードワードは前記第１のメモリ部分（１２１０）の第３の数の物理ページに蓄積され、第３の数は第２の数より大きい方法。
【請求項８】
請求項１記載の方法において、
ホスト装置（１２３０）から特定のデータ部分を所望する要求を受信したことに応じて、
前記要求されたデータ部分に相当するコードワードの第１の部分を単一ページ読み出しにより第１のページから読み出すステップと、
第１の復号化操作を開始して、前記第１のページから読み出されたデータと読み出されたパリティに基づき前記要求されたデータ部分を復号化するステップと、
前記第１の復号化操作の復号化失敗に応じて、
前記要求されたデータ部分に相当する前記コードワードの第２の部分を第２のページから読み出すステップと、
第２の復号化操作を開始して、前記読み出されたデータと前記読み出されたパリティに基づき、かつ前記コードワードの第２の部分から読み出された合同パリティに基づき前記要求されたデータ部分を復号化するステップと、
さらに含む方法。
【請求項９】
データ蓄積装置であって、
物理ページを備えるメモリ（１２０４）と、
コントローラ（１２０６）と、を備え、
前記コントローラ（１２０６）は、前記データ蓄積装置（１２０２）が作動可能な状態でホスト装置（１２３０）に結合されているときに前記ホスト装置（１２３０）から受信されるデータページ（１２３２）に相当するコードワードを生成し、かつ前記メモリ（１２０４）の第１の部分（１２１０）の物理ページに前記コードワードを蓄積するように構成され、特定のデータページ（１２３２）に相当する特定のコードワードの第１の部分（１２４０）が前記第１のメモリ部分（１２１０）の第１の物理ページ（１２１２）に蓄積され、前記特定のコードワードの第２の部分（１２４２）が前記第１のメモリ部分（１２１０）の第２の物理ページ（１２１４）に蓄積され、前記コントローラ（１２０６）は、第１の部分（１２４０）を蓄積することを受けてホスト装置（１２３０）にメッセージ（１２４８）を送信するように構成され、前記メッセージは前記特定のデータページ（１２３２）が前記データ蓄積装置（１２０２）に正常に蓄積されたことを示し、前記メッセージ（１２４８）は、第２の部分（１２４２）の蓄積が完了するより前に送信され、
前記データ蓄積装置（１２０２）は、前記メモリ（１２０４）の第１の部分（１２１０）から前記メモリ（１２０４）の第２の部分（１２２０）の物理ページ（１２２２）に前記コードワードをコピーするように構成されるデータ蓄積装置。
【請求項１０】
請求項９記載のデータ蓄積装置において、
サブコードの各々のマルチフェーズ復号化を可能にするため、前記特定のコードワードは、複数のサブコードと前記複数のサブコードの合同パリティとを含む連結コードワードであるデータ蓄積装置。
【請求項１１】
請求項１０記載のデータ蓄積装置において、
前記複数のサブコードの各々はサブコードデータ部分とサブコードパリティ部分とを含み、前記特定のコードワードの第１の部分は前記サブコードデータ部分を含み、前記特定のコードワードの第２の部分は前記合同パリティを含むデータ蓄積装置。
【請求項１２】
データを書き込む方法であって、
第１の物理ページ（１２１２）と第２の物理ページ（１２１４）とを含む複数の物理ページを備えるデータ蓄積装置（１２０２）で、
前記データ蓄積装置（１２０２）に蓄積されるデータページ（１２３２）を受信するステップ（１６０２）と、
第１の符号化済みデータ（１１３０）を生成する符号化操作を開始して、前記データページ（１２３２）を符号化するステップ（１６０４）と、
前記第１の符号化済みデータ（１１３０）の第１の部分（１２４０）を前記第１の物理ページ（１２１２）に蓄積するステップ（１６０６）と、
前記第１の符号化済みデータ（１１３０）の第２の部分（１２４２）を前記第２の物理ページ（１２１４）に蓄積することを開始するステップ（１６０８）と、
前記第１の部分（１２４０）を蓄積することを受けてホスト装置（１２３０）にメッセージ（１２４８）を送信するステップであって、前記メッセージは前記特定のデータページ（１２３２）が前記データ蓄積装置（１２０２）に正常に蓄積されたことを示し、前記メッセージ（１２４８）は、第２の部分（１２４２）の蓄積が完了するより前に送信されるステップと、
前記第２の物理ページ（１２１４）からのデータを使用せずに、前記第１の物理ページ（１２１２）から読み出される第１の符号化済みデータ（１１３０）の第１の部分（１２４０）の表現（１２６２）を使用する復号化操作を開始して、前記データページ（１２３２）を復元するステップ（１６１０）と、
を遂行する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にメモリにデータを蓄積することに関する。
【背景技術】
【０００２】
ユニバーサルシリアルバス（ＵＳＢ）フラッシュメモリ装置や取り外し可能なストレージカード等の不揮発性メモリ装置により、データやソフトウェアアプリケーションの可搬性は拡大している。フラッシュメモリ装置は個々のフラッシュメモリセルに複数のビットを蓄積することによって費用効率を向上させることができる。例えば、マルチレベルセル（ＭＬＣ）フラッシュメモリ装置は１セル当たり３ビット、または１セル当たり４ビット、あるいは１セル当たり５ビット以上を蓄積することによって蓄積密度の増大をもたらす。
【０００３】
単一のフラッシュメモリセルに複数の情報ビットを蓄積することは、ビット列をフラッシュメモリセルの状態にマップすることを通常含む。例えば、第１のビット列「１１０」はフラッシュメモリセルの第１の状態に相当し、第２のビット列「０１０」はフラッシュメモリセルの第２の状態に相当し得る。ある特定のフラッシュメモリセルにビット列を蓄積することが決定した後、当該フラッシュメモリセルは当該ビット列に相当する状態にプログラムされ得る。
【０００４】
フラッシュメモリ装置で使用されるビット列から状態へのマッピングは、フラッシュメモリセルに蓄積されるビットの相対的信頼度に影響を及ぼす。具体的に説明すると、あるフラッシュメモリセルが第１の状態（アナログしきい値電圧Ｖに相当し、データ「１１０」に対応付け）にプログラムされたにもかかわらず、第２の状態（アナログしきい値電圧Ｖ＋ΔＶに相当し、データ「０１０」に対応付け）として誤って読み出される場合は、最上位ビットでビット誤りが生じるが（「１」が「０」になる）、中間ビットや最下位ビットでは誤りは生じない。換言すると、最上位ビット（ＭＳＢ）では２つの状態間で遷移が起こるが、他のビットで遷移は起こらない。論理ページのデータは複数のフラッシュメモリセルにおける共通ビット位置に基づいて蓄積され得る。隣接状態間での読み出し誤り（アナログしきい値がＶである状態がアナログしきい値がＶ＋ΔＶである状態として誤って読み出される）は確率ｐを有し得る。非隣接状態（アナログしきい値電圧差がΔＶより大きい状態）間での読み出し誤りはｐに比べて非常に小さくゼロに近似する確率を有し得る。したがって、論理ページ内のデータ誤り数は、論理ページ内のビットが２つの状態で変化する１対の隣接状態の数にほぼ比例し得る。そのような対は、ある状態と隣接状態との間で符号の遷移がある場合に発生する。したがって、そのような対を多く含む（１から０への遷移と０から１への遷移が多い）論理ページは遷移数が少ないページより多くの誤りを有する。論理ページごとに信頼度のばらつきが生じ得る。論理ページの不均等な信頼度は一部のフラッシュメモリのアクセス方法および性能に影響をおよぼす可能性がある。
【発明の概要】
【０００５】
コードワードが蓄積されるページの信頼度に基づいてコードワードに提供される一定量の保護が提供され得る。信頼度が低いページの場合は、コードワードに提供される追加の冗長情報によってコードワードの長さが１ページを上回り得る。複数の物理ページにコードワードを確実に蓄積でき、ホスト装置が経験し得るプログラミング待ち時間に影響が及ぶことはない。
【０００６】
例えば、符号化されたデータページを２つの物理ページに分割でき、２つの物理ページのうちの第２の物理ページはパリティビットのみを含む。第１の物理ページの書き込みが完了した後には、第２の物理ページがまだ書き込まれていなくても、データページが無事蓄積されたことを伝える確認がホストに提供され得る。停電が発生しても第２の物理ページのパリティビットを使用せず符号化されたデータページのデータ部分を再現できるため、確認が提供され得る。
【０００７】
ＭＬＣフラッシュメモリにデータを蓄積する前には、データの指定部分に対してビット操作が行われ得る。これにより、それぞれの論理ページは概ね等しい信頼度を有する。ＭＬＣフラッシュメモリに蓄積されるデータはメモリダイにあるラッチに書き込まれ、ラッチ内のビットの宛先ＭＬＣ蓄積素子の状態へのデフォルトマッピングがデータを蓄積するのに使用される。ラッチにあるデータの指定部分はデフォルトマッピングを適用する前に操作され得る。デフォルトマッピングが適用されるときに、操作された部分は第２のマッピングに従って蓄積される。データの一部にデフォルトマッピングを使用し、データの残りの部分に第２のマッピングを使用することにより、論理ページの信頼度は概ね等しくなり得る。
【０００８】
コードワードが蓄積されるページの信頼度に基づいてコードワードに提供される一定量の保護が提供され得る。信頼度が高いページの場合は、パリティ用に用意されたページ部分がデータ成形に使用され得る。例えば、成形パリティが生成され、成形されたデータでは「１」値と「０」値の分布が不均一になり得る。この不均一分布は、記憶素子の最高状態および／または最低状態への書き込み操作数を減らすことによってメモリのウェアを軽減し得る。
【０００９】
メモリの単一論理ページを読み出す要求に応じてソフトビット情報が提供され得る。単一論理ページの読み出し中に検知操作数を減らすため、ＭＬＣワード線の各論理ページは別々に読み出すことができる。ソフトビット情報は各セルから読み出されるページデータの信頼度を示すことができるが、セルの電圧窓の中でセルのしきい値電圧が位置する正確な電圧帯域に関する情報は提供しない。検知時間が節減されるばかりでなく、１つ以上の検知されたデータをメモリコントローラへ転送することによって生じる遅延も解消され得る。このため、（連続メモリアドレスの順次読み出しとは対照的に）ランダム読み出しのときにはインターリーブ方式に比べて読み出し待ち時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】連結コードワードをワード線のページにマップする第１の実施形態の概略図であり、単一の連結コードワードのサブコードデータおよびパリティは複数のページにまたがって蓄積される。
【図２】連結コードワードをワード線のページにマップする第２の実施形態の概略図であり、連結コードワードのサブコードデータおよびパリティは単一のページに蓄積される。
【図３】連結コードワードを不均等な信頼度を有するワード線のページにマップする第３の実施形態の概略図であり、低信頼度ページにまたがる連結コードワードは高信頼度ページに蓄積される連結コードワードより多くのパリティを有し、かつ複数のページわたって延在する。
【図４】連結コードワードを不均等な信頼度を有するワード線のページにマップする第４の実施形態の概略図であり、それぞれの連結コードワードは複数のページにまたがり、高信頼度ページに蓄積されるサブコードデータより低信頼度ページに蓄積されるサブコードデータのための多くのサブコードパリティを含む。
【図５】連結コードワードを不均等な信頼度を有するワード線のページにマップする第５の実施形態の概略図であり、低信頼度ページに蓄積される連結コードワードは高信頼度ページに蓄積される連結コードワードと同数のサブコードを有する。
【図６】連結コードワードを不均等な信頼度を有するワード線のページにマップする第６の実施形態の概略図であり、低信頼度ページに蓄積される連結コードワードは高信頼度ページに蓄積される連結コードワードより少ないサブコードを有する。
【図７】第１のビット・状態ビルトインマッピングを有する蓄積装置を使用して第２のビット・状態マッピングを達成するためのビットの操作を図解したものである。
【図８】複数のビット・状態マッピングを用いてデータを蓄積する蓄積装置を含むシステムの特定の実施形態のブロック図である。
【図９】図８の蓄積装置によって指定データビットに適用され得る一連の論理演算の図である。
【図１０】複数のビット・状態マッピングを用いてデータを書き込む方法の特定の実施形態を示す流れ図である。
【図１１】フラッシュメモリのＳＬＣ部分にコードワードを蓄積し、かつＭＬＣワード線にコードワードを転送する特定の実施形態の図である。
【図１２】長いコードワードを複数の物理ページにプログラムすることによってデータを書き込むように構成されたデータ蓄積装置を含むシステムの特定の実施形態のブロック図である。
【図１３】破裂コードワードを使用してメモリの第１の部分にデータを蓄積してから、蓄積されたデータをメモリの第２の部分にコピーするシステムの特定の実施形態のブロック図である。
【図１４】メモリの第１の部分にデータを蓄積し、メモリで追加の冗長データを生成してから、メモリの第２の部分にデータを蓄積するシステムの特定の実施形態のブロック図である。
【図１５】メモリの第１の部分にキャッシュされるデータを符号化するのと、メモリの第２の部分に蓄積されるデータを符号化するのに、異なるＥＣＣ方式を使用してデータを蓄積するシステムの特定の実施形態のブロック図である。
【図１６】符号化済みデータの複数の部分を書き込むことと、複数の部分の単一の部分からデータを復元することとを含む方法の特定の実施形態を示す流れ図である。
【図１７】メモリダイの中で追加の冗長データを生成することを含む方法の特定の実施形態を示す流れ図である。
【図１８】メモリにデータを書き込む方法の特定の実施形態を示す流れ図である。
【図１９】ページ信頼度に基づき成形冗長性を用いてデータを蓄積する特定の実施形態を示す概略図である。
【図２０】ページ信頼度に基づき成形冗長性を用いてデータを蓄積するシステムの特定の実施形態のブロック図である。
【図２１】ページ信頼度に基づき成形冗長性を含むデータを取り出すシステムの特定の実施形態のブロック図である。
【図２２】成形符号化操作を開始することを含む、データを書き込む方法の特定の実施形態の流れ図である。
【図２３】成形復号化操作を開始することを含む、データを読み出す方法の特定の実施形態の流れ図である。
【図２４】各状態につき３つの信頼度区間が規定される上位論理ページマッピングの特定の実施形態を示す概略図である。
【図２５】ページ単位２ソフトビット読み出し信頼度設定の特定の実施形態を示す概略図である。
【図２６】検知方式の特定の実施形態を示す概略図であり、セル状態分布とハードビットおよび追加の検知済みビットのしきい値読み出し電圧の図式表現を含む。
【図２７】図２６に示されたしきい値読み出し電圧に基づく信頼度電圧領域の特定の実施形態を示す概略図である。
【図２８】単一のソフトビットを提供する検知方式の特定の実施形態を示す概略図である。
【図２９】図２８に示されたしきい値読み出し電圧に基づき単一のソフトビットを使用する信頼度電圧領域の特定の実施形態を示す概略図である。
【図３０】図２４〜２９の１つ以上によりデータ読み出し操作を遂行するように構成されたデータ蓄積装置を含むシステムのブロック図である。
【図３１】図３０のデータ蓄積装置によって遂行され得るデータ読み出しの特定の実施形態の流れ図である。
【発明を実施するための形態】
【００１１】
マルチフェーズ復号化連結符号構成を使用することにより、信頼度とアクセス時間と複雑性で良好なバランスをとる効率的な符号化方式をフラッシュメモリで実現できる。かかる符号構成は、短いサブワードとしてフラッシュメモリに蓄積されるサブコードを使用し、少量のデータを個別に保護することにより、少量のデータに対する効率的アクセスを可能にする。サブコードはデータとパリティビットを含むことができ、パリティビットはデータを保護する冗長性を提供する。サブコードのデータを取り出すため、サブワードは後ほどフラッシュメモリから読み出され、フラッシュメモリコントローラへ転送され、復号化され得る。サブワードだけを読み出してサブコードを復号化することにより、データにアクセスするためにコードワード全体を読み出して復号化する場合に比べて、フラッシュメモリのランダム読み出し要求の読み出し性能を高速化できる。サブワードで多数の誤りが発生したためにサブコードの復号化に失敗した場合は、フラッシュメモリから長いコードワードを読み出し、コントローラへ転送し、復号化することにより、データを復元することができる。
【００１２】
読み出し時間をさらに向上させるため、サブコードのデータと、サブコードのパリティビットの一部（または望ましくは全部）をフラッシュメモリのワード線の単一ページ内に蓄積できる。例えば、フラッシュメモリはワード線でアクセスできるように配置された蓄積素子を含み得る。フラッシュメモリセルのしきい値電圧をＭ個の規定電圧範囲の特定の電圧範囲内になるように調整することにより、それぞれの蓄積素子はＭ個の状態のうちのいずれか１つになるようにプログラムされ得る。これはそれぞれの蓄積素子でｌｏｇ2 （Ｍ）ビットを蓄積することを可能にし、Ｍ個の電圧範囲からなるセットとｌｏｇ2 （Ｍ）ビットを各々含むＭ個の列からなるセットとの対応を設定する。それぞれの特定の電圧範囲は特定の列に対応する。ワード線は複数の列を書き込むためのページとみなされ、各列の長さはｌｏｇ2 （Ｍ）であり、ワード線は論理ページに分割され、各論理ページは特定のビットの場所である。例えば、Ｍ＝８状態のＭＬＣフラッシュメモリは１セル当たり３ビットを蓄積し得る。３つのビットの各ビットはワード線に蓄積されるデータの論理ページに相当し得る。例えば、ワード線に蓄積されるデータの論理ページは上位ページ、中間ページ、および下位ページと呼ばれ得る。上位ページは、上位ビットが遷移を有する１セットの状態を識別することにより（上位ビットはある１つの状態で０、隣接する状態で１）、かつ状態間に読み出し電圧を印加して検知操作を遂行することにより、読み出される。この読み出し電圧による読み出しの結果はワード線の各蓄積素子の最上位ビットの値を判断するために使用される。ワード線の各蓄積素子の中間ビットの値を判断するために中間ページも同様に読み出され、ワード線の各蓄積素子の最下位ビットの値を判断するために下位ページも同様に読み出される。
【００１３】
論理ページの誤り率が十分に低いと仮定すると、サブコード内の符号化されたデータは単一のページを読み出すことによって取り出すことができ、検知操作の回数は平均（Ｍ−１）／ｌｏｇ2 （Ｍ）であり、読み出し待ち時間は短い。サブコードで発生する誤りの数がサブコードの誤り訂正能力を超えて復号化に失敗した場合はいくつかの処置が講じられる。これらの処置は次の組み合わせを含み得る。
１）読み出ししきい値を調整し、調整されたしきい値により単一ページのデータを再度読み出す。
２）同じページの読み出し分解能を増加させる。
３）ある種の「ノイズ」軽減手法（例えば、クロスカップリング現象やプログラムディスターブ現象の軽減）を実行する。これらの手法は隣接するワード線またはページまたはセルの追加の読み出しを遂行することを含み得る。
４）サブコードの追加のパリティビットを読み出す（場合によっては追加のパリティビットが蓄積され得る別のページから読み出す）。
５）連結コードワード全体（すなわち、連結コードワードの他のサブコードと合同パリティ）を読み出す（場合によっては他のサブコードと合同パリティが蓄積されている別のページから読み出す）。
前述した処置の１つ以上を遂行することにより、最初のサブコード復号化に失敗した後にデータを取り出せる確率は高くなる。
【００１４】
図１〜６は、連結コードワードをＭＬＣワード線のページにマップする例を示す。これらの例では、Ｍ＝８状態（１セル当たり３ビット）のＭＬＣフラッシュメモリが仮定され、ワード線は上位、中位、および下位と呼ばれる３つのページを含む。１セル当たり３ビットの例示的なＭＬＣフラッシュメモリが示されているが、別のマッピング例を使用することもできる。
【００１５】
図１は、連結コードワードをワード線のページにマップする例１００を示し、ここでサブコードは１つのページに局限されるのではなく複数のページにまたがっている。ＭＬＣワード線１０２に第１のコードワード（コードワード１）１０４と、第２のコードワード（コードワード２）１０６と、第３のコードワード（コードワード３）１０８とを蓄積する様子が示されている。ＭＬＣワード線１０２で第２のコードワード１０６を蓄積する部分の上位ページ１１０と、中間ページ１１２と、下位ページ１１４とが示されている。第２のコードワード１０６は８つのサブコード１３１〜１３８を含んでいる。それぞれのサブコード１３１〜１３８はデータ部分を含み、かつデータ部に対応するパリティ部分を含んでいる。例えば、第１のサブコード１３１は第１のデータ（データ１）１２４と第１のパリティ（パリティ１）１２６とを含んでいる。第２のコードワード１０６はまた、合同パリティ１２８を含んでいる。合同パリティ１２８は、サブコードのパリティを用いて復号化できない個々のサブコード１３１〜１３８の復号化に役立ち得るパリティデータを含む。
【００１６】
例えば、データとパリティビットを含むコードワードを生成するため、それぞれのサブコード１３１〜１３８のデータ（例えば、第１のデータ１２４）は体系的ＥＣＣ方式を用いて符号化され得る。パリティビットの部分を除去するためのコードワードは破裂(puncture)させられ、破裂されたコードワード（例えば、第１のデータ１２４と第１のパリティ１２６）はサブコード（例えば、第１のサブコード１３１）として蓄積され得る。それぞれのコードワードから除去されたパリティビットは組み合わされ、合同パリティ１２８として加えられる。例えば、それぞれのコードワードから除去されたパリティビットはビット単位排他的ＯＲ（ＸＯＲ）演算によって組み合わされる。サブコード１３１〜１３８のいずれか１つでビット誤り数がサブコードのＥＣＣ方式の訂正能力を上回って訂正できない場合は、他のサブコード１３１〜１３８の１つ以上の元の破裂パリティビットを復元するため、他のサブコード１３１〜１３８の１つ以上が読み出され、復号化される。訂正不能のサブコードに対応する完全なコードワードを再現するため、復元された破裂パリティビットは合同パリティ１２８に組み合わせることができる。
【００１７】
例えば、第１のパリティ１２６だけを用いて第１のサブコード１３１（第１のデータ１２４と第１のパリティ１２６）を訂正できない場合は、それぞれのサブコード１３２〜１３８から除去されたパリティビットを生成するため、残りのサブコード１３２〜１３８が復号化され得る。第１のサブコード１３１から除去されたパリティビットを復元するため、再生されたパリティビットは合同パリティ１２８によりＸＯＲされ得る。復元されたパリティビットを加えることにより、第１のサブコード１３１は回復(un-puncture) できる。合同パリティ１２８から復元された追加のパリティのため、回復された第１のサブコードのＥＣＣ復号化はより高度な誤り訂正能力によって遂行され得る。
【００１８】
ＭＬＣワード線１０２の各フラッシュメモリセルは３つのデータビットからなる列を蓄積するようにプログラムできる。それにはＭ＝８状態のうちの特定の物理的状態になるようにセルをプログラムする。つまり、フラッシュメモリセルのしきい値電圧をＭ＝８個の規定電圧範囲のうちの特定の電圧範囲内になるように調整する。ワード線全体には複数の列を蓄積するページ（指示された物理ページ）が対応付けられ、それぞれの列は３つのデータビットからなる。それぞれの物理状態は３つのページ（指示された論理ページ）に分割され、それぞれの論理ページは異なる位置にビットを蓄積する。上位ページ１１０はフラッシュメモリセルの最上位ビットに相当し、中間ページ１１２は中間ビットに相当し、下位ページ１１４はフラッシュメモリセルの最下位ビットに相当し得る。
【００１９】
ＭＬＣワード線１０２からデータを読み出すことは１つ以上の検知操作を遂行することを含み得る。例えば、Ｍ＝８個の電圧範囲を規定するため、Ｍ−１＝７個の読み出ししきい値（７回の検知操作）が使用され得る。検知操作はＭＬＣワード線１０２の各フラッシュメモリセルのしきい値電圧を選択された読み出ししきい値に比較することを含み得る。この比較により、選択された読み出ししきい値を上回るしきい値電圧を有するフラッシュメモリセルと、選択された読み出ししきい値を上回らないしきい値電圧を有するフラッシュメモリセルがどれなのかを判断する。各フラッシュメモリセルの全３つのビット（ＭＬＣワード線１０２の全ての３つのページ１１０、１１２、および１１４）を読み出すには、各フラッシュメモリセルの特定の状態を識別するために合計Ｍ−１＝７回の検知操作（各読み出ししきい値につき１回の検知操作）が必要となる。ただし、Ｍ−１回より少ない検知操作でＭＬＣワード線１０２から１つのページ１１０、１１２、または１１４が読み出されることもあり、場合によっては１回の検知操作で１つのページ１１０、１１２、または１１４が読み出されることもある。
【００２０】
図１の例ではそれぞれのサブコード１３１〜１３８が全ページ１１０〜１１４にわたって交互に配置されているため、全てのサブコード１３１〜１３８は同様の誤り率を呈する。それぞれのサブコード１３１〜１３８は全ページ１１０〜１１４にわたって均等に分散されているため、上位ページ１１０が中間ページ１１２および下位ページ１１４より高い予想誤り率を有する場合、それぞれのサブコード１３１〜１３８は均等に影響を受ける。ただし、サブコード１３１〜１３８のいずれか１つを読み出すには全３ページ１１０〜１１４を読み出す必要があるため、Ｍ−１＝７回の検知操作を遂行する必要がある。サブコード１３１〜１３８のいずれか１つを読み出すには、サブコードがページ１１０〜１１４のいずれか１つまたは２つに蓄積されて少ない検知操作で読み出せる場合より待ち時間が長くなる。
【００２１】
図２〜３は、連結コードワードをワード線のページにマップする種々の例を示す。サブコードのデータとサブコードの一部または全部のパリティは単一のページに局限される。図２〜３のマッピングは検知操作数を減らして効率的なデータ読み出しを可能にする。
【００２２】
図２は、ＭＬＣワード線２０２で３つの連結コードワード２０４、２０６、２０８を蓄積する例２００を示す。それぞれのコードワード２０４〜２０８はＭＬＣワード線２０２の別々のページにマップされる。第１のコードワード２０４はＭＬＣワード線２０２の上位ページ２１０に全面的に蓄積され、第２のコードワード２０６はＭＬＣワード線２０２の中間ページ２１２に全面的に蓄積され、第３のコードワード２０８はＭＬＣワード線２０２の下位ページ２１４に全面的に蓄積されている。それぞれのコードワード２０４〜２０８は８つのサブコードを含む。例えば、第１のコードワード２０４は第１のデータ２２０と第１のパリティ２２２とを有する第１のサブコードを含み、第２のコードワード２０６は第１のデータ２２４と第１のパリティ２２６とを有する第１のサブコードを含む。それぞれのコードワード２０４〜２０８はまた、合同パリティ（例えば、第２のコードワード２０４の合同パリティ２３０）を含む。図１に関して説明したように、合同パリティは、サブコードのパリティを用いて復号化できない個々のサブコードの復号化に役立つパリティデータを含む。コードワード２０４〜２０８は同じサブコード数および構成をもたらす共通の連結符号化方式を使用する。例えば、図２で、それぞれのコードワード２０４、２０６、２０８は、共通のサイズを有しかつ等量のデータを含む８つのサブコードを有する。
【００２３】
図２に示す方式は、ＭＬＣワード線２０２の各ページ２１０〜２１４で信頼度の均衡がとれている場合に効率が向上し得る。また、それぞれのサブコードは１つのページ２１０、２１２、または２１４に蓄積され、全ての３つのページ１１０〜１１４にまたがる図１のサブコードより速く読み出すことができる（必要検知操作数が少ない）。ただし、ＭＬＣワード線２０２の各ページ２１０〜２１４で信頼度（誤り率）が異なる場合は、図２のマッピング方式で達成できる誤り訂正能力は低下し得る。ワード線の各ページの信頼度を操作する方法は表１〜４と図７〜１０に関して詳述される。
【００２４】
図３は、上位ページの信頼度が下位ページおよび中間ページより低い場合に適したマッピング例３００を示す（下位ページおよび中間ページは概ね等しい信頼度を有する）。第１のコードワード３０４と、第２のコードワード３０６と、第３のコードワード３０８とを蓄積するＭＬＣワード線３０２が示されている。第１のコードワード３０４は、ＭＬＣワード線３０２の上位ページ３１０に蓄積された部分と、ＭＬＣワード線３０２の中間ページ３１２に蓄積された部分と、ＭＬＣワード線３０２の下位ページ３１４に蓄積された部分とを有する。第２のコードワード３０６は中間ページ３１２に全面的に蓄積され、第３のコードワード３０８は下位ページ３１４に全面的に蓄積されている。それぞれのコードワード３０４〜３０８は８つのサブコードを含む。例えば、第１のコードワード３０４は第１のデータ３２０と第１のパリティ３２２とを有する第１のサブコードを含み、第２のコードワード３０６は第１のデータ３２４と第１のパリティ３２６とを有する第１のサブコードを含む。それぞれのコードワード３０４〜３０８はまた、合同パリティ（例えば、第２のコードワード３０６の合同パリティ３３０）を含む。
【００２５】
図３の例では、上位ページ３１０のデータを保護するために低レートコード（多くのパリティを使用して多くの冗長性を提供するコード）が使用され、下位ページ３１４と中間ページ３１２のデータを保護するために高レートコード（少ないパリティを使用して少ない冗長性を提供するコード）が使用されている。第１のコードワード３０４の各サブコードは第２のコードワード３０６と第３のコードワード３０８の各サブコードと概ね同量のデータを有する（例えば、第１のデータ３２０のサイズは第１のデータ３２４と同じである）。ただし、第１のコードワード３０４のサブコードは他のコードワード３０６〜３０８のサブコードより多くの冗長性を有するため、上位ページ３１０の各パリティブロックは中間ページ３１２および下位ページ３１４のパリティブロックより大きい（例えば、第１のパリティ３２２は第１のパリティ３２６より大きい）。
【００２６】
上位ページ３１０のデータを保護する冗長性の一部は下位および中間ページ３１２〜３１４に蓄積されている。例えば、中間ページ３１２は第１のコードワード３０４のサブコード１〜４のための追加のパリティ３３２を含み、かつ第１のコードワード３０４のための合同パリティ３３４の第１の部分を含む。下位ページ３１４は第１のコードワード３０４のサブコード５〜８のための追加のパリティを含み、かつ第１のコードワード３０４のための合同パリティの第２の部分を含む。
異なるページ信頼度のために図３のマッピング３００に類似するマッピングを設計できる。ワード線の各ページの信頼度を操作する方法は表１〜４と図７〜１０に関して説明される。
【００２７】
図４は、上位ページの信頼度が下位および中間ページより低く、下位および中間ページが概ね同等の信頼度を有する場合に適したマッピング例４００を示す。第１のコードワード４０４と、第２のコードワード４０６と、第３のコードワード４０８とを蓄積するＭＬＣワード線４０２が示されている。それぞれのコードワード４０４〜４０８は６つのサブコードと合同パリティとを含む。それぞれのコードワード４０４〜４０８はＭＬＣワード線４０２の上位ページ４１０と、中間ページ４１２と、下位ページ４１４とに部分を有する。
【００２８】
図４の例では、コードワード４０４〜４０８は対称であり（全てのコードワード４０４〜４０８は同じコードに属する）、それぞれのコードワード４０４、４０６、４０８はＭＬＣワード線４０２の全てのページ４１０〜４１４にまたがっている。ただし、それぞれの連結コードワード４０４、４０６、４０８内のサブコードは対称ではない。例えば、低信頼度の上位ページ４１０を保護するために低レートサブコード（パリティ多量）が使用され、高信頼度の下位ページ４１４と中間ページ４１２を保護するために高レートサブコード（パリティ少量）が使用されている。具体的に説明すると、第１のコードワード４０４は上位ページ４１０に第１のサブコード（データ１およびパリティ１）と第２のサブコード（データ２およびパリティ２）とを有する。第１のコードワード４０４はまた、中間ページ４１２に第３のサブコード（データ３およびパリティ３）と、第４のサブコード（データ４およびパリティ４）と、合同パリティの第１の部分（合同パリティＡ）とを有する。中間ページ４１２は上位ページ４１０より信頼度が高いため、同量のデータを保護するにあたって、中間ページ４１２内の各サブコードは上位ページ４１０内の各サブコードより少量のパリティを有する。中間ページ４１２ではサブコードのパリティが少量であるため、上位ページ４１０内の最初の２つのサブコードと同等のスペースで第３および第４のサブコードと合同パリティの第１の部分とを蓄積できる。
【００２９】
図５および６は、上位ページの信頼度が同等の信頼度を有する下位ページおよび中間ページより低い場合に適したさらなるマッピング例を示す。図５は、第１のコードワード５０４と、第２のコードワード５０６と、第３のコードワード５０８とを蓄積するＭＬＣワード線５０２を含むマッピング例５００を示す。第１のコードワード５０４は上位ページ５１０に全面的に蓄積され、第２のコードワード５０６は中間ページ５１２に全面的に蓄積され、第３のコードワード５０８は下位ページ５１４に全面的に蓄積されている。それぞれのコードワード５０４、５０６、５０８は８つサブコードと合同パリティとを含む。ただし、第１のコードワード５０４の各サブコードは第２のコードワード５０６と第３のコードワード５０８の各サブコードより少量のデータを含む。
【００３０】
図６は、第１のコードワード６０４と、第２のコードワード６０６と、第３のコードワード６０８とを蓄積するＭＬＣワード線６０２を含むマッピング例６００を示す。第１のコードワード６０４は上位ページ６１０に全面的に蓄積され、６つのサブコードと合同パリティとを含む。第２のコードワード６０６は中間ページ６１２に全面的に蓄積され、９つのサブコードと合同パリティとを含む。第３のコードワード６０８は下位ページ６１４に全面的に蓄積され、９つのサブコードと合同パリティとを含む。
【００３１】
各ページに同量のデータを蓄積する図３および図４のマッピングとは対照的に、図５および図６のマッピングは高信頼度の下位ページ５１４、６１４および中間ページ５１２、６１２に比べて少量のデータを低信頼度の上位ページ５１０、６１０に蓄積する。図５では上位ページ５１０のサブコードが下位および中間ページ５１２、５１４のデータより少量のデータを保護し、図６では全てのサブコードが同量のデータを保護するが、上位ページのコードワード６０４は下位および中間ページのコードワード６０６、６０８より少ないサブコードを有する。
【００３２】
図２〜６に示す例では、サブコードの高速読み出しを可能にするため、サブコード（またはサブコードの大部分）がワード線の単一ページに局限されている。ただし、サブコード（またはサブコードの大部分）をワード線の単一ページに局限すると、ワード線の各ページの不均等な信頼度のため、当該サブコードがワード線全体の平均誤り率より高い誤り率を呈する可能性がある。ＥＣＣ冗長性は全ページの平均誤り率ではなく低信頼度ページの誤り率に基づいて決定され得るため、高いサブコード誤り率はワード線の有効利用を妨げ、ワード線の１セル当たりの情報密度を低下させる可能性がある。
【００３３】
ここで説明されるワード線有効利用のための種々の手法はいくつかのグループに分類できる。
１）ワード線の全ページで信頼度のバランスを改善することを含む手法
２）データの保護水準を当該データが蓄積されるページの信頼度に精密に整合させることを含む手法（コードワードまたはサブコードでの不均等冗長性配分により、誤り訂正能力を予想誤り率に整合させる）
３）ページに蓄積されるデータの量を当該ページの信頼度に精密に整合させることを含む手法
４）プログラムされるレベルにわたって確率分布を成形するために高信頼度ページの冗長ビットの一部を使用する手法（耐久性向上、および／または誤り率低減、「ノイズ」軽減）
これらの手法を任意に組み合わせること（例えば、２つ以上のグループの手法を組み合わせること）も可能である。
【００３４】
ページ信頼度を均衡化すること
図２に示す符号化方式はワード線の全てのページが均等な信頼度（均等な誤り率）を有する場合に適している。ワード線の各ページの信頼度を完全または部分的に均衡化するには数通りの方法がある。
【００３５】
一方法ではワード線の各ページで均等な（より均衡のとれた）誤り率を誘発させるため、種々の状態のベリファイレベルを調整する。例えば、表１はＭ＝４状態ＭＬＣフラッシュメモリの可能なビット・状態マッピングを示す。
【表１】
0006025844.tif 000002
【００３６】
各状態から隣接状態への誤り確率が均等になるようにベリファイレベルが設定されると、各ページの誤り率は均等でなくなる。例えば、状態ＥｒおよびＡ間の誤り（Ｅｒ状態のセルがＡ状態として読み出されるか、またはＡ状態のセルがＥｒ状態として読み出される）の確率が状態ＡおよびＢ間の誤りの確率に概ね等しくなり、かつ状態ＢおよびＣ間の誤りの確率に概ね等しくなるようにベリファイレベルが設定され得る。上位ページは１から０（またはその逆）の遷移を２つ含むため、状態間の誤りが等しく起こり得る場合、上位ページの誤り率は下位ページの誤り率の２倍になる。
【００３７】
ある１つの状態から別の状態への推移は、その推移によってページのビット値が変わらない場合、誤りにならない。具体的に説明すると、表１の状態ＥｒおよびＡ間で、または状態ＢおよびＣ間で、発生する誤りにより、上位ページでは誤りビットが読み出されるが、下位ページで誤りビットは読み出されない。状態ＡおよびＢ間の誤りにより、上位ページを読み出すときにビット誤りは生じないが、下位ページでは誤りビットが読み出される。全ての状態から隣接状態への誤り確率が等しい場合は、ページのビット値の変化に相当する状態遷移の数に基づいてページ信頼度が判断され得る。表１の上位ページは２つの遷移（ＥｒおよびＡ、ＢおよびＣ）を有するが、下位ページは１つの遷移（ＡおよびＢ）を有する。このため、全ての不正状態遷移が等しく起こり得る場合、上位ページで誤りビット値が発生する見込みは下位ページに比べて２倍になる。ベリファイレベルによって状態間の誤り確率が等しくなる場合、ページ信頼度は均衡でなくなる。
【００３８】
状態ＡおよびＢが互いに近づき状態ＥｒおよびＣから遠ざかるようにベリファイレベルを設定することにより、ページ信頼度は均衡になり得る。これにより、状態ＥｒおよびＡ間、または状態ＢおよびＣ間の誤り確率に比べて２倍の誤り確率を状態ＡおよびＢ間に誘発させることができ、上位ページと下位ページで誤り率は等しくなる。ただし、状態間で不均等な誤り率を誘発させるベリファイレベル設定は蓄積容量の点で準最適である。具体的に説明すると、一定の誤り訂正能力を満足させるにあたって必要となるＥＣＣ冗長性は、ベリファイレベルが各状態で等しい誤り率を誘発させるインターリーブ符号化方式のＥＣＣ冗長性より大きくなる。また、各状態で不均等な誤り率を誘発させるベリファイレベル設定は、ダイからダイ、ブロックからブロック、ページからページの変動効果に対してさほど堅牢でない可能性がある。
【００３９】
ページ信頼度を部分的に均衡化するもう１つの方法は、適切なビット・状態マッピングを使用することを含む。表２はＭ＝８状態ＭＬＣフラッシュメモリの例示的なマッピングを示す。
【表２】
0006025844.tif 000003
【００４０】
表２のマッピングで下位ページの誤り率が値「ｐ」である場合、中間ページの誤り率は２* ｐであり、上位ページの誤り率は４* ｐである（下位ページが１から０への１つの遷移を有し、中間ページが２つの遷移を有し、上位ページが４つの遷移を有するため）。
【００４１】
一方、表３のマッピングが使用される場合はワード線の各ページにわたってより均衡な誤り率が達成される。
【表３】
0006025844.tif 000004
【００４２】
表３のマッピングで下位ページのビット誤り率がｐである場合、中間ページのビット誤り率もｐである。下位および中間ページは０から１の２つの遷移を有し、上位ページは３つの遷移を有するため、電圧帯域にわたって均一に分散されたしきい値電圧範囲としてセル状態が判断される場合、上位ページのビット誤り率は（３／２）* ｐになる。したがって下位および中間ページは同等の信頼度を有し、上位ページは低い信頼度を有する。図２〜６に示す符号化方式は表３のマッピングによるページ信頼度配分に適している。
【００４３】
表２および表３に示すマッピングで１ページ当たりの平均検知操作数は同じである。表２のマッピングで下位ページは１回の検知操作で読み出すことができ（状態ＣおよびＤ間）、中間ページは２回の検知操作で読み出すことができ（状態ＡおよびＢ間、状態ＥおよびＦ間）、上位ページは４回の検知操作で読み出すことができる（状態ＥｒおよびＡ間、状態ＢおよびＣ間、状態ＤおよびＥ間、状態ＦおよびＧ間）。総合すると１ページを読み出すときの平均検知操作数は（１＋２＋４）／３＝２．３３３となる。同様に、表３のマッピングで下位ページは２回の検知操作で読み出すことができ（状態ＢおよびＣ間、状態ＦおよびＧ間）、中間ページは２回の検知操作で読み出すことができ（状態ＥｒおよびＡ間、状態ＤおよびＥ間）、上位ページは３回の検知操作で読み出すことができる（状態ＡおよびＢ間、状態ＣおよびＤ間、状態ＥおよびＦ間）。総合すると１ページを読み出すときの平均検知操作数は（２＋２＋３）／３＝２．３３３となる。
【００４４】
グレイマッピングは単一のビットが２つの隣接状態のビットマッピングで変更されるマッピングである。グレイマッピングは平均ビット誤り率と１ページ当たりの平均検知操作数を減らすことができる。Ｍ個の状態のグレイマッピングで１ページを読み出すときの平均検知操作数は（Ｍ−１）／ｌｏｇ2 （Ｍ）である。
【００４５】
表２および表３に記載されたマッピングは例に過ぎない。異なるマッピングを使用し異なる信頼度均衡化水準を達成できる。ただし、状態数が２のべき乗（例えば、２、４、８、１６）である場合、０から１の遷移数（Ｍ−１）をページ数（ｌｏｇ2 （Ｍ））で割ることができないため、グレイマッピングで完全な均衡化を達成することはできない。
【００４６】
信頼度均衡化を向上させるのに使用される第３の方法では１本のワード線で２つ以上のマッピングを使用する。例えば、ワード線の一部の蓄積素子はある１つのマッピングを用いてプログラムされ、ワード線の他の蓄積素子は異なるマッピングを用いてプログラムされ得る。
【００４７】
１本のワード線に複数のマッピングを使用する信頼度均衡化の一例を表４に示す。
【表４】
0006025844.tif 000005
【００４８】
表４でビットを状態に割り当てるときに、セル（例えば、ＭＬＣワード線のフラッシュメモリセル）の２／３は左側のマッピングを用いてプログラムされる。左側のマッピングで、これらのセルの下位および中間ビットが誤り率２* ｐを呈する場合、上位ビットは誤り率３* ｐを呈する（つまり、上位ページは中間ページおよび下位ページより信頼度が低い）。セルの残りの１／３は右側のマッピングでプログラムされ、これらのセルの下位および中間ビットは誤り率３* ｐを呈し、上位ビットは誤り率ｐを呈する（つまり、上位ページは中間ページおよび下位ページより信頼度が高い）。下位および中間ページの総合ビット誤り率は（２／３）* ２* ｐ＋（１／３）* ３* ｐ＝２．３３* ｐであり、上位ページの総合ビット誤り率は（２／３）* ３* ｐ＋（１／３）* ｐ＝２．３３* ｐである。したがって、上位、中間、および下位ページは等しい総合信頼度を有する。
【００４９】
マルチプレーンフラッシュメモリ装置では１ワード線当たり複数ビット・状態マッピングの代案を使用できる。１本のワード線で２つ以上のマッピング方式を組み合わせる代わりに、マルチプレーンメモリ装置の各プレーンは異なるマッピング（または異なる読み出ししきい値設定）を有し得る。蓄積されるコードワードの総合ビット誤り率を均衡化するため、マルチプレーンメモリ装置に蓄積されるコードワードの一部分は１プレーンに位置付けられ、別の部分は別のプレーンの対応する位置に位置付けられる。
【００５０】
フラッシュメモリで複数マッピングをサポートすること
フラッシュメモリ装置等の蓄積装置で複数のビット・状態マッピングがサポートされ得る。例えば、ページ信頼度を均衡化するか、あるいは他のフラッシュメモリコントローラとの後方互換性のために既存マッピングをサポートしつつ新しいマッピングを実装するため、複数のビット・状態マッピングがサポートされ得る。具体的に説明すると、一部の既存フラッシュメモリ装置は単一のビット・状態マッピングを実施するデータプログラミング手順を有し得る。かかるフラッシュメモリ装置は、内部フラッシュメモリラッチにビットを書き込み、次にラッチ内のビットにビルトインマッピングを適用してＭＬＣワード線のプログラミング状態を決定することにより、フラッシュアレイにデータをプログラムし得る。かかる既存フラッシュメモリ装置では以下に記す一連の操作を使用することによって複数のビット・状態マッピングが実施され得る。
１）内部フラッシュメモリラッチにデータを書き込む。
２）第２のマッピング（望ましいビット・状態マッピング）からフラッシュメモリがビットを状態に変換する第１のマッピングにビットのマッピングを変換するため、フラッシュメモリラッチ内の選択されたビットに対して一連の論理演算を遂行する。
３）内部フラッシュメモリラッチからＭＬＣワード線にデータをプログラムする。
【００５１】
図７は、第１のビット・状態ビルトインマッピング７３０を有する蓄積装置を使用して第２のビット・状態マッピングを達成するためにビットを操作する特定の実施形態７００を示す。データビットは、第１のラッチ７０２、第２のラッチ７０４、および第Ｐのラッチ７０６を含むものとして示されたメモリ内のＰ個のラッチに読み込まれる。それぞれのラッチ７０２、７０４、７０６はｍ個のデータビットを蓄積する。第１のラッチ７０２ではビットａ1 ・・・ａm と表示され、第２のラッチ７０４ではビットｂ1 ・・・ｂm と表示され、第Ｐのラッチ７０６ではｐ1 ・・・ｐm と表示されている。
【００５２】
指定データビット７１０はラッチ７０２〜７０６の中で操作されるデータビットとして指定され、非指定データビット７０８はラッチ７０２〜７０６の中で操作されない。指定データビット７１０（ｎ＋１〜ｍのインデックスが付いたビット）はラッチ７０２〜７０６で１つ以上の論理演算７２０を用いて操作され、ラッチ７０２〜７０６で操作済みデータビット７２２が生成される。操作済みデータビット７２２と非指定データビット７０８（１〜ｎのインデックスが付いたビット）は第１のビルトインマッピング７３０に従って蓄積素子群７４０（例えば、ＭＬＣワード線）のそれぞれの蓄積素子に蓄積される。群７４０の各蓄積素子は状態ｓ０、ｓ１・・・ｓＭにプログラムされ得る。例えば、状態ｓ０、ｓ１・・・ｓＭは表４の状態Ｅｒ、Ａ、Ｂ・・・Ｇに相当し得る。
【００５３】
非指定データビット７０８は第１のマッピングに従って状態にマップされ、指定データビット７１０は第２のマッピングに従って状態にマップされる。具体的に説明すると、第１のビットａ１、ｂ１・・・ｐ１は第１のマッピングに従って第１の素子ｃ１の状態ｓ１にマップされる。第２のビットａ２、ｂ２・・・ｐ２は第１のマッピングに従って第２の素子ｃ２の状態ｓ０にマップされ、第ｎのビットａｎ、ｂｎ・・・ｐｎは第ｎの素子ｃｎの状態ｓ２にマップされる。第（ｎ＋１）〜第ｍのビットは第２のマッピングに従って素子ｃ（ｎ＋１）〜ｃｍにマップされる。これらのビットは最初にラッチ７０２〜７０６で操作され、次に第１のビルトインマッピング７３０が適用される。
【００５４】
ラッチ７０２〜７０６で指定ビット７１０を操作し、非指定ビット７０８を操作しないことにより、蓄積素子群７４０にデータを蓄積するときには２つの（または２つ以上の）異なるマッピングを適用できる。表４に関して説明したように、複数のマッピングを使用することにより、一方のマッピングによる低信頼度は他方のマッピングによる高信頼度によって少なくとも部分的には均衡化され得る。２つのマッピングの適用はフラッシュメモリコントローラではなくフラッシュメモリダイの内部で行われる。
【００５５】
図８は、ホスト装置８３０に作動可能な状態で結合できるデータ蓄積装置８０２を含むシステム８００の特定の実施形態を示す。データ蓄積装置８０２はコントローラ８０６に結合されたメモリ８０４（例えば、ＮＡＮＤフラッシュメモリ）を含む。メモリ８０４は蓄積素子８２０と、書き込み回路８０８と、ラッチ８１０と、マッピング回路８１２とを含む。マッピング回路８１２は、データ蓄積装置８０２が複数のマッピングを適用し、ラッチ８１０内のビットをメモリ８０４にある蓄積素子の状態にマップすることを可能にする。
【００５６】
データ蓄積装置８０２はメモリカードであってよく、例えばＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ＳＤ（登録商標）カード、ｍｉｃｒｏＳＤ（登録商標）カード、ｍｉｎｉＳＤ（ＴＭ）カード（デラウェア州ウィルミントンのSD-3C LLCの商標）、ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＴＭ）（ＭＭＣ（ＴＭ））カード（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、またはＣｏｍｐａｃｔＦｌａｓｈ（登録商標）（ＣＦ）カード（カリフォルニア州ミルピタスのサンディスク  コーポレイションの商標）であってよい。別の例として、データ蓄積装置８０２はホスト装置８３０に組み込まれたメモリであってよく、例えば説明的な例として、ｅＭＭＣ（登録商標）（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、およびｅＳＤであってよい。
【００５７】
メモリ８０４は１群８２２の蓄積素子８２０を含む複数の蓄積素子８２０を含む。例えば、蓄積素子８２０はＭＬＣセルを含み得る。具体的に説明すると、メモリ８０４はマルチレベルセル（ＭＬＣ）フラッシュメモリを含むことができ、１群８２２の蓄積素子８２０はＭＬＣワード線であり得る。
【００５８】
ラッチ８１０は、１群８２２の蓄積素子８２０（例えば、ＭＬＣワード線）に蓄積されるデータ８４２をラッチする働きをする。データ８４２はコントローラ８０６からラッチ８１０にて受信され、ホスト装置８３０から受信されるユーザデータ８３２に応じてコントローラ８０６によって生成されるコードワードに相当し得る。ラッチ８１０の各ラッチはビットを蓄積し、それらのビットは１群８２２の蓄積素子に蓄積される論理ページデータに相当する。例えば、ラッチ８１０は図７のラッチ７０２〜７０６に相当し得る。
【００５９】
マッピング回路８１２は、１つ以上の論理演算を用いてラッチ８１０にある指定データビットを操作することによってラッチ８１０で操作済みデータビットを生成する働きをする。例えば、マッピング回路８１２はコントローラ８０６からの制御情報８４０に応じて図７の論理演算７２０を指定データビット７１０に適用し得る。マッピング回路８１２はコントローラ８０６からデータ８４２を受信した後にメモリ８０４で操作済みデータビットを生成するように構成され得る。
【００６０】
書き込み回路８０８はラッチ８１０からデータを受信し、かつビット列を蓄積素子８２０の状態にマップする第１のマッピングに従い１群８２２の蓄積素子８２０の各蓄積素子に第１の数のビットを蓄積する働きをし得る。書き込み回路８０８は操作済みデータビットのセットを１群８２２の蓄積素子８２０のそれぞれの蓄積素子に蓄積する働きをし得る。指定データビットはビット列を状態にマップする第２のマッピングによりそれぞれの蓄積素子の状態に対応し、第２のマッピングは第１のマッピングと異なる。
【００６１】
メモリ８０４は第１のマッピングをビルトインマッピングとして適用するように構成される。第２のマッピングは、ラッチ８１０にデータ８４２を読み込むことにより、かつ論理レジスタ演算により指定データビットを操作することにより、形成され得る。第１のマッピングにはＭＬＣワード線の第１の論理ページの第１の誤り率が対応付けられる。第２のマッピングにはＭＬＣワード線の第１の論理ページの第２の誤り率が対応付けられ、第２の誤り率は第１の誤り率より低い。
【００６２】
例えば、マッピング回路８１２はラッチ８１０の第１のラッチにある第１のグループのデータビットの各データビットに対して論理ＮＯＴ演算を遂行するように構成され得る。別の例として、マッピング回路８１２は第１のラッチにある第１のグループのデータビットとラッチ８１０の第２のラッチにある第２のグループのデータビットに対してビット単位論理演算を遂行するように構成され得る。具体的に説明すると、ビット単位論理演算はＡＮＤ演算またはＯＲ演算を含む。あるいは、ビット単位論理演算は否定排他的ＯＲ（ＮＯＴ−ＸＯＲ）演算を含む。あるいは、ビット単位論理演算はスワップ演算を含む。論理演算の例は図９に関して説明される。
【００６３】
メモリ８０４は第２のマッピングを選択的に適用するように構成できる。例えば、制御情報８４０は第２のマッピングが適用される指定データビットを指示し得る。図７の非指定データビット７０８と指定データビット７１０のように、指定データビットは各ラッチの第２の部分に位置付けられ、非指定データビットは各ラッチの第１の部分に位置付けられ得る。マッピング回路８１２は各ラッチ８１０の第２の部分で操作済みデータビットを生成し、かつ各ラッチ８１０の第１の部分で非指定データビットを操作しないように構成され得る。
【００６４】
第２のマッピングは１群８２２の蓄積素子８２０の第２の部分に蓄積される指定データビットに適用され、第１のマッピングは１群８２２の蓄積素子８２０の第１の部分に蓄積される非指定データビットに適用され得る。例えば、１群８２２の蓄積素子８２０の第１の部分と１群８２２の蓄積素子８２０の第２の部分はＭＬＣフラッシュメモリの単一のワード線にあり得る。別の例として、メモリ８０４はマルチプレーンフラッシュメモリの第１のプレーン８５０と第２のプレーン８５２とを含み、１群８２２の蓄積素子８２０の第１の部分は第１のプレーン８５０にあり、１群８２２の蓄積素子８２０の第２の部分は第２のプレーン８５２にあり得る。
【００６５】
データ蓄積装置８０２は作動中にホスト装置８３０からユーザデータ８３２を受信し得る。データ蓄積装置８０２は、例えばコントローラ８０６のＥＣＣエンジンで、ユーザデータ８３２を符号化し、データ８４２（例えば、ユーザデータ８３２を符号化したコードワード）を生成し得る。コントローラ８０６はデータ８４２をメモリ８０４に転送し、メモリ８０４はラッチ８１０にデータ８４２を蓄積し得る。
【００６６】
コントローラ８０６はまた、メモリ８０４に制御情報８４０を送信し得る。マッピング回路８１２は制御情報８４０に応じて、ラッチ８１０の中で操作すべき指定データビットを選択し得る。マッピング回路８１２はラッチ８１０の中で指定データビットを操作し、操作されたデータビット（および操作されていないデータビット）は第１のマッピングに従い書き込み回路８０８によって１群８２２の蓄積素子８２０に書き込まれる。非指定データビットに第１のマッピングを適用し、かつ指定データビットに第２のマッピングを適用した後に、１群８２２の蓄積素子８２０の各論理ページ（例えば、単一ワード線の各論理ページ）の誤り率は概ね等しくなり得る（つまり、１群８２２の蓄積素子８２０の各論理ページは１群８２２の蓄積素子８２０の他の論理ページの誤り率に概ね等しい誤り率を有する）。
【００６７】
図９は、図８のマッピング回路８１２によって指定データビットに適用される一連の論理演算９００を示す。図９の一連の論理演算は２つのグレイマッピングを変換するために遂行され得る。例えば、第２のグレイマッピングを第１のビルトイングレイマッピングに変換するために遂行され得る。第１のビルトイングレイマッピングはＭＬＣフラッシュメモリをプログラムするときに適用される。最初のマッピング９０２は状態（Ｅｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧ）を第１のデータラッチ（ＡＤＬ）と第２のデータラッチ（ＢＤＬ）と第３のデータラッチ（ＣＤＬ）にあるデータビットにマップする。データラッチＡＤＬ、ＢＤＬ、およびＣＤＬはフラッシュメモリの内部ラッチ（例えば、図８のラッチ８１０）であってよい。
【００６８】
第１の演算９０４はＡＤＬとＢＤＬにＮＯＴ−ＸＯＲ演算（〜＾）を適用し、その結果をＡＤＬに蓄積し、マッピング９０６を生成する。第２の演算９０８はＡＮＤ演算（＆）とＮＯＴ演算（〜）とＮＯＴ−ＸＯＲ演算を適用して〜（〜ＡＤＬ＆ＣＤＬ）〜＾ＢＤＬを生成し、その結果をＢＤＬに蓄積する。マッピング９１０は第２の演算９０８から生成される。
【００６９】
第３の演算９１２はＮＯＴ−ＸＯＲ演算を適用してＣＤＬ〜＾ＢＤＬを生成し、その結果をＣＤＬに蓄積する。マッピング９１４は第３の演算９１２から生成される。第４の演算９１６はＡＤＬとＣＤＬにスワップ演算（⇔）を適用し、最終的なマッピング９１８を生成する。ラッチＡＤＬ、ＢＤＬ、およびＣＤＬに蓄積された最初のデータに演算９０４、９０８、９１２、および９１６を適用することによって生成される最終的なマッピング９１８は、ラッチＡＤＬ、ＢＤＬ、およびＣＤＬの内容に適用される第１のビルトインマッピングに相当し得る。
【００７０】
図９の多演算手法は、図７の論理演算７２０に相当し得る。例えば、最終的なマッピング９１８は第１のビット・状態ビルトインマッピング７３０に相当し、第１のマッピング９０２は指定データビット７１０に適用される第２のビット・状態マッピングである。指定データビット７１０に対する論理演算９０４、９０８、９１２、および９１６とその後の第１のビルトインマッピング７３０により、指定データビットは第２のマッピングに従って蓄積され得る。
【００７１】
例えば、第２のマッピング（例えば、マッピング９０２）はビット列「１０１」を状態Ａにマップする。論理演算９０４、９０８、９１２、および９１６を適用することによりビット列「１０１」はビット列「０１１」に変化する。ビット列「０１１」は第１のビルトインマッピング（例えば、マッピング９１８）に従い状態「Ａ」として蓄積され得る。したがって、状態ｓ１（例えば、状態「Ａ」）を有する図７の蓄積素子ｃ１は第１のビルトインマッピングによりビット列「０１１」を表し、同じ状態ｓ１を有する図７の蓄積素子ｃｍは第２のマッピングによりビット列「１０１」を表し得る。図８のラッチ８１０の指定部分に蓄積されたビットに対する論理演算９０４、９０８、９１２、および９１６の適用はマッピング回路８１２によって遂行され得る。
【００７２】
図１０は、データを書き込む方法の一実施形態を示す流れ図である。この方法をコントローラとメモリとを備えるデータ蓄積装置で遂行することができ、メモリはラッチと複数の蓄積素子とを含み、メモリはビット列を蓄積素子の状態にマップする第１のマッピングに従って各蓄積素子に第１の数のビットを蓄積する働きをする。例えば、この方法は図８のデータ蓄積装置８０２で遂行され得る。
【００７３】
１００２では、データ蓄積装置のメモリ内にあるラッチにデータビットが読み込まれる。１００４では、１つ以上の論理演算を用いてラッチにある指定データビットを操作することによってラッチで操作済みデータビットが生成される。１００６では、第１のマッピングに従い蓄積素子群のそれぞれの蓄積素子に操作済みデータビットのセットが蓄積される。指定データビットはビット列を状態にマップする第２のマッピングによりそれぞれの蓄積素子の状態に対応し、第２のマッピングは第１のマッピングと異なる。例えば、指定データビットは第２のマッピングに従って蓄積されるデータビット部分を含み、表４の例に従いワード線のセルの１／３に第２のマッピングを適用することによってページ信頼度を均等化し得る。ただし、別の実施形態では、第１のマッピングを第２のマッピングに効果的に差し替えるため、指定データビットは全てのデータビットであり得る。
【００７４】
ラッチと蓄積素子は第１のマッピングをビルトインマッピングとして適用するように構成されたメモリダイ（例えば、図８のメモリ８０４）の中にあり得る。第２のマッピングは、ラッチにデータビットを読み込み、論理レジスタ演算を遂行してデータビットを操作し、操作済みデータビットのセットを蓄積することによって形成され得る。例えば、論理レジスタ演算はグレイコード間で指定データビットをマップする図９の演算９０４、９０８、９１２、および９１６であってよい。
【００７５】
メモリダイは１つ以上の論理レジスタ演算を指定データビットに適用することによって蓄積された指定データビットの状態変換を遂行する回路（例えば、図８のマッピング回路８１２）を含み得る。
メモリはフラッシュマルチレベルセル（ＭＬＣ）メモリを含み、蓄積素子群はＭＬＣワード線であり得る。第１のマッピングにはＭＬＣワード線の第１の論理ページの第１の誤り率が対応付けられ、第２のマッピングにはＭＬＣワード線の第１の論理ページの第２の誤り率が対応付けられる。第２の誤り率は第１の誤り率より低い。
【００７６】
例えば、データビットの第１のグループは第１のラッチに読み込まれ、第１のデータビットグループの各データビットに対して論理ＮＯＴ演算を遂行することにより指定データビットは操作され得る。別の例として、データビットの第１のグループは第１のラッチに読み込まれ、データビットの第２のグループは第２のラッチに読み込まれる。指定データビットを操作することは、第１のグループと第２のグループのビット単位論理演算を遂行することを含み得る。例えば、ビット単位論理演算はＡＮＤ演算とＯＲ演算のうちの少なくとも一方を含むか、あるいは否定排他的ＯＲ（ＮＯＴ−ＸＯＲ）演算を含み得る。別の例として、ビット単位論理演算はスワップ演算を含み得る。
【００７７】
メモリは、例えば図８の制御情報８４０に応じて第２のマッピングを選択的に適用するように構成できる。例えば、メモリは、図７に示すようにラッチの指定部分に第２のマッピングを適用し、かつラッチの非指定部分には第２のマッピングを適用しないように構成できる。各ラッチの第１の部分は非指定データビットを収容し、各ラッチの第２の部分は指定データビットを収容し得る。操作済みデータビットは各ラッチの第２の部分で生成され得る。蓄積素子群の第２の部分に蓄積される指定データビットには第２のマッピングが適用され、蓄積素子群の第１の部分に蓄積される非指定データビットには第１のマッピングが適用される。
【００７８】
別の例として、メモリは数通りのマッピングから第２のマッピングを選択するように構成できる。このマッピングはラッチ内でのビット操作によって適用され得る。具体的に説明すると、図８のマッピング回路８１２は複数のマッピングをサポートし、制御情報８４０に応じて演算を遂行して特定のマッピングを達成する。例えば、図８のコントローラ８０６は特定のマッピングを選択することができ、選択されたマッピングを達成するため、選択されたマッピングと操作されるべき指定ビットとを伝える制御情報８４０をマッピング回路８１２に送信し得る。制御情報８４０は指定データビットに適用される論理演算（例えば、図９の演算９０４、９０８、９１２、および９１６）の順序を指定し得る。さらに別の例として、メモリは第２のマッピングを適用しないように構成することができ、全てのビットは第１のマッピングに従って状態にマップされる。
【００７９】
一実施形態において、蓄積素子群の第１の部分と蓄積素子群の第２の部分はマルチレベルセル（ＭＬＣ）フラッシュメモリの単一ワード線にあり得る。非指定データビットに第１のマッピングを適用し、かつ指定データビットに第２のマッピングを適用した後に、単一ワード線の各論理ページの誤り率は概ね等しくなり得る。例えば、表４の左側のマッピングはワード線の蓄積素子の２／３（例えば、非指定ビットに相当）に適用される第１のマッピングであり、表４の右側のマッピングはワード線の蓄積素子の１／３（例えば、指定ビットに相当）に適用される第２のマッピングであり得、全てのページは均等な総合誤り率を有する。別の実施形態において、蓄積素子群の第１の部分はマルチプレーンフラッシュメモリの第１のプレーンにあり、蓄積素子群の第２の部分はマルチプレーンフラッシュメモリの第２のプレーン（例えば、図８のプレーン８５０および８５２）にある。
【００８０】
保護水準をページ信頼度に整合させること
不均等なページ信頼度に対処するもう１つの手法では、データの保護水準をデータが蓄積されるページの信頼度に整合させる。例えば、コードワードまたはサブコードが蓄積されるページの誤り率に基づき各コードワードまたはサブコードに異なるＥＣＣ冗長性が割り当てられる。図３には連結コードワードに異なる冗長性を割り当てる一例が示されている。図４にはサブコードに異なる冗長性を割り当てる一例が示されている。
【００８１】
図４に示す方式は、サブコードの非対称性のためにより複雑な符号化方式を有し得る。具体的に説明すると、低信頼度の上位ページ４１０にあるサブコードは高信頼度のページ４１２、４１４にあるサブコードより多くのパリティを有する。図３に示す方式は長さが異なるコードワードを使用し、コードワードはワード線の２ページ以上にまたがり得る。例えば、図３の第１のコードワード３０４は１ページより長い（したがって、ワード線３０２の２ページ以上にまたがっている）。
【００８２】
１セル当たりの状態数が多い（例えば、Ｍ＝４、８、または１６）ＭＬＣフラッシュメモリの場合は、まずは「バイナリキャッシュ」として機能するシングルレベルセル（ＳＬＣ）パーティションにデータがプログラムされ得る。ＳＬＣパーティションに蓄積されたデータはバックグラウンドプロセスによりＭＬＣパーティションにコピーされ得る。最初にデータをＳＬＣパーティションに蓄積し、次にデータをＭＬＣパーティションにコピーすると、いくつかの利点が得られる。
１）ＭＬＣプログラミングは比較的遅い場合があるため、プログラミングバーストサイズが十分に小さく、バイナリキャッシュが一杯にならない場合は、バイナリキャッシュの使用によりプログラミングのスループットとユーザエクスペリエンスが向上する。
２）一部のフラッシュメモリプロトコル（例えば、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ（ＳＤ））では、先に送信されたデータブロックがメモリにプログラムされたことをメモリコントローラが確認した後でなければ、次のデータブロックを送信できないことになっている。データブロックはＭＬＣワード線の容量より通常小さく、ＭＬＣワード線の容量は通常大きい（例えば、１６ＫＢ、２４ＫＢ、または３２ＫＢ）。このため、データブロックは最初にＳＬＣパーティションにプログラムされ、十分なデータが収集（ＭＬＣブロックを満たすだけのデータがＳＬＣバイナリキャッシュに蓄積）された後、ＳＬＣバイナリキャッシュに蓄積されたデータはＭＬＣパーティションにコピーされる。
３）ＭＬＣパーティションへのデータのプログラミングは多数のワード線を含み得る大きいブロックで遂行できる（例えば、１ワード線当たりのサイズが３２ＫＢのワード線６４本からなる２メガバイト（ＭＢ）ブロック）。ＭＬＣパーティションへのデータのプログラミングは、各ワード線につき複数の不連続プログラミング段階を含み得る一連の操作を用いて遂行され得る。複数の不連続プログラミング段階はある種のクロスカップリング現象を解消し、狭い電圧分布を誘発させるため、データ蓄積装置は低い誤り率を維持できる。データは最初にＳＬＣパーティション（例えば、バイナリキャッシュ）にプログラムされ得る。ＳＬＣパーティションへのデータのプログラミングはＭＬＣパーティションへのデータのプログラミングより簡素であり、一度に１ワード線ずつ遂行できる。ＳＬＣパーティションにデータをプログラムした後にデータはＭＬＣパーティションにコピーされ得る。したがって、一時的なデータ蓄積域としてＲＡＭを使用する代わりに、ＳＬＣパーティションが一時的なデータ蓄積域として機能することができる。
【００８３】
長いコードワード（ＳＬＣページより長いコードワード）をＳＬＣパーティションにプログラムすることを可能にする数通りの実施形態が開示される。その後、コードワードはＳＬＣパーティションからＭＬＣパーティションにコピーされる。
一実施形態は、単一ＭＬＣワード線のデータを蓄積するにあたって、ＭＬＣワード線にある論理ページの数より多いＳＬＣページを使用することを含む。長いコードワードはＳＬＣページにプログラムされ得る。ＳＬＣページにおけるデータの相対的位置は、当該データがコピーされるＭＬＣワード線のページにおける当該データの相対的位置と同じである。ＳＬＣページでＭＬＣページと同じ相対的位置にコードワードをプログラムすることにより、内部フラッシュメモリラッチを使ったＳＬＣパーティションからＭＬＣパーティションへの内部コピーが可能となる。ラッチで簡素な操作を遂行することにより、多数のＳＬＣページのデータを少数のＭＬＣページにまとめることができる。図１１には、図３に示すＭＬＣワード線でかかるプログラミング手順の一例が示されている。
【００８４】
図１１は、第１のコードワード（コードワード１）１１３０と、第２のコードワード（コードワード２）１１３２と、第３のコードワード（コードワード３）１１３４をフラッシュメモリのＳＬＣ部分に蓄積し、かつコードワード１１３０〜１１３４をＭＬＣワード線１１２０に移す特定の実施形態１１００を示す。第１のコードワード１１３０はＳＬＣ部分のページのサイズを上回る長さを有する。第１のＳＬＣページ（ＳＬＣ上位１）１１０４は第１のコードワード１１３０の一部分１１３６を蓄積し、この一部分１１３６はＭＬＣワード線１１２０の上位ページ１１２２に蓄積される。第２のＳＬＣページ（ＳＬＣ上位２）１１０６は第１のコードワード１１３０の第２の部分１１３８を蓄積し、この第２の部分１１３８はＭＬＣワード線１１２０の中間ページ１１２４に蓄積される。第２のＳＬＣページ１１０６はまた、第１のコードワード１１３０の第３の部分１１４０を蓄積し、この第３の部分１１４０はＭＬＣワード線１１２０の下位ページ１１２６に蓄積される。第３のＳＬＣページ１１０８は第２のコードワード１１３２を蓄積し、第４のＳＬＣページ１１１０は第３のコードワード１１３４を蓄積する。
【００８５】
第１のコードワード１１３０の第１の部分１１３６はＳＬＣページのサイズに概ね等しい長さを有し、第１のＳＬＣページ１１０４を概ね満たしている。第２のＳＬＣページ１１０６にある第１のコードワード１１３０の第２の部分１１３８は、第３のＳＬＣページ１１０８にある第２のコードワード１１３２によって占有されていないページ位置を占有（例えば、ワード線を基準にしてＳＬＣページ１１０６の最後のセルを占有）している。このため、ビットを上位または下位ビット位置にシフトすることなく、第２のコードワード１１３２と第１のコードワード１１３０の第２の部分１１３８を１つのラッチにまとめて書き込むことができる。例えば、１つのラッチは図８のラッチ８１０のいずれか１つであってよい。同様に、第２のＳＬＣページ１１０６にある第１のコードワード１１３０の第３の部分１１４０は、第４のＳＬＣページ１１１０にある第３のコードワード１１３４によって占有されていないページ位置を占有（例えば、ワード線を基準にしてＳＬＣページ１１０６の最初のセルを占有）している。このため、ビットシフトを遂行することなく、第３のコードワード１１３４と第１のコードワード１１３０の第３の部分１１４０を１つのラッチにまとめて書き込むことができる。
【００８６】
それぞれのＳＬＣページ１１０４、１１０６、１１０８、１１１０は各々の内部フラッシュメモリラッチにコピーされ得る。それぞれのＳＬＣページをラッチに読み込んだ後、第１のコードワード１１３０の第１の部分１１３６は第１のラッチに残り、第１のコードワード１１３０の第２の部分１１３８は第２のコードワード１１３２と組み合わされて第２のラッチに入り、第１のコードワード１１３０の第３の部分１１４０は第３のコードワード１１３４と組み合わされて第３のラッチに入り得る。ＭＬＣワード線１１２０の上位ページ１１２２、中間ページ１１２４、および下位ページ１１２６をプログラムするため、第１、第２、および第３のラッチのビット値はＭＬＣワード線１１２０の状態にマップされ得る。
【００８７】
つまり、図１１は、第１の数のＳＬＣ物理ページ（例えば、４つのＳＬＣページ１１０４〜１１１０）から単一のＭＬＣ物理ページにある第２の数の論理ページ（例えば、３つの論理ページ１１２２〜１１２６）にかけて蓄積された内容をコピーする一例を示し、ここで第２の数は第１の数より少ない。Ｂを正の数とする１セル当たりＢビット（例えば、図１１に示すように１セル当たり３ビット）のマルチレベルセル（ＭＬＣ）フラッシュメモリでバイナリキャッシュを使用する場合は、少なくとも１つのデータページが２つ以上のシングルレベルセル（ＳＬＣ）ページに分割され、ＭＬＣフラッシュメモリの単一ワード線のデータをキャッシュするためにＢ個より多いＳＬＣページが使用される。具体的に説明すると、４つのＳＬＣページ１１０４〜１１１０で単一のＭＬＣワード線１１２０のデータをキャッシュし得る。データ蓄積装置はデータ蓄積装置に蓄積されるデータページを受け取り、受け取ったデータページに相当するコードワード（例えば、コードワード１１３０、１１３２、および１１３４）を生成し得る。コードワードはデータ蓄積装置の第１のメモリ部分（例えば、ＳＬＣ部分またはバイナリキャッシュ）の物理ページ（例えば、ＳＬＣページ１１０４〜１１１０）に蓄積され得る。特定のデータページに相当する特定のコードワードの第１の部分（例えば、第１のコードワード１１３０の第１の部分１１３６）は、第１の物理ページ１１０４に蓄積され得る。特定のコードワードの第２の部分（例えば、第１のコードワード１１３０の第２の部分１１３８）は、第２の物理ページ１１０６に蓄積される。コードワード１１３０、１１３２、および１１３４は、物理ページ１１０４〜１１１０からデータ蓄積装置の第２のメモリ部分の物理ページ（例えば、メモリのＭＬＣ部分にあるＭＬＣワード線１１２０）にコピーされ得る。
【００８８】
図１１に示すように、ＭＬＣワード線１１２０で３ページ１１２２、１１２４、１１２６のデータだけを蓄積するため、バイナリキャッシュで４つのＳＬＣページ１１０４、１１０６、１１０８、１１１０を使用できる。その結果、ＭＬＣワード線１１２０の各ページにつき同数のＳＬＣページを使用する場合に比べて比較的大きいバイナリキャッシュが使用され得る。多くのＳＬＣページを使用すると、各ＭＬＣワード線につき多くのＳＬＣページがプログラムされるため、バイナリキャッシュのウェアリングが甚だしくなり得る。ただし、ＳＬＣ上位２ページ１１０６はＳＬＣ上位１ページ１１０４に収まらない第１のコードワード１１３０の「溢出」余剰部分だけを蓄積する。図に示されているように、「溢出」余剰部分がＳＬＣ上位２ページ１１０６の小さい部分を占める場合は、ＳＬＣ上位２ページ１１０６のほとんどのセルを消去状態に保つことができる。このため、プログラム／消去サイクルの繰り返しによるウェアリングは、ＳＬＣ上位２ページ１１０６の全てのセルをプログラムする場合に比べて軽減できる。それぞれのＳＬＣページ１１０４、１１０６、１１０８、１１１０に第１のコードワード１１３０の第１の部分１１３６、第１のコードワード１１３０の第２および第３の部分１１３８、１１４０、第２のコードワード１１３２、または第３のコードワード１１３４がプログラムされる確率が４分の１になるようにバイナリキャッシュを操作することにより、ＳＬＣパーティションの耐久性とウェアリングへの影響は軽減できる。
【００８９】
バイナリキャッシュの４つのページにデータをプログラムするのにかかる時間は、３つのＳＬＣページにデータをプログラムするのにかかる時間を上回り得る。ただし、データを書き込むための適切なパイプライン操作を設計することにより、プログラミング時間の増加は「隠され得る」。メモリコントローラは、ＳＬＣ上位１ページ１１０４がプログラムされた後、ＳＬＣ上位２ページ１１０６に「溢出」余剰部分がプログラムされる前に、データを送信するホストに、上位ページデータがフラッシュメモリに確かに蓄積され次のページのデータを送ってよいことを、知らせ得る。その後、ホストが次のページのデータを転送し、次のページのデータが符号化されている間に、上位ページの「溢出」余剰部分（例えば、第２および第３の部分１１３８〜１１４０）を次のＳＬＣページ（例えば、ＳＬＣ上位２ページ１１０６）にプログラムできる。
【００９０】
第１のコードワード１１３０の第２の部分１１３８と第３の部分１１４０は「溢出」余剰部分のみであり得るため、ＳＬＣ上位２ページ１１０６のデータがバイナリキャッシュにプログラムされる前に電源が切れる場合でも、コントローラは第１のコードワードのデータを復元できる。この溢出余剰部分はＳＬＣ物理ページで予想される誤り率を是正するにあたって必要ない。例えば、ＳＬＣビット誤り率はＭＬＣ上位ページ１１２２のビット誤り率よりかなり低い場合がある。その結果、上位ページデータを復元するにはＳＬＣ上位１ページ１１０４でデータワードとともに符号化される余剰情報で十分であるため、データ蓄積装置はＳＬＣ上位１ページ１１０４だけをプログラムした後に上位ページデータが確保されていることをきちんとホストに知らせ得る。図１２に関して一例が詳述される。
【００９１】
長いコードワードをＳＬＣパーティションにプログラムしてからＭＬＣパーティションにコピーする第２の実施形態は、単一のＳＬＣページに収まるコードワード部分だけをプログラムすることを含み、コードワードの溢出部分は第２のＳＬＣページにプログラムしない。その結果、ＳＬＣパーティションには「破裂した」コードワードが蓄積され、コードワードのビットの一部をＳＬＣパーティションに蓄積することはない。ＳＬＣパーティションからＭＬＣパーティションにデータをコピーする前には（ＭＬＣパーティションに書き込まれる全データがＳＬＣパーティションに用意されたときには）、ＳＬＣパーティションから破裂コードワードを読み出して復号化できる。破裂コードワードの復号化はＳＬＣパーティションに導入された誤りを訂正でき、コードワードの失われた破裂部分を再現できる。破裂コードワードを復号化して誤りを訂正し、完全なコードワードを再現した後には、ＭＬＣワード線の論理ページ内のしかるべき場所に完全なコードワードをプログラムできる。ＳＬＣパーティションのページはＭＬＣパーティションのページに比べてかなり低い誤り率を呈し得るため、ＳＬＣパーティションに蓄積された破裂コードワードの高い復号化成功確率を保証する符号化方式を設計できる。コードワードの破裂部分はデータがＭＬＣページに蓄積されるときにデータを復号化するためだけに必要であり、破裂部分はデータがＳＬＣページに蓄積されるときに省かれ得る。図１３に関して一例が詳述される。
【００９２】
破裂コードワードをＳＬＣページから読み出してコントローラに提供することができ、コントローラは破裂コードワードを復号化してコードワードの破裂部分を再現するため、ＳＬＣパーティションの破裂コードワードからＭＬＣパーティションにデータをコピーする過程にはコントローラが関与し得る。コントローラへデータを転送して転送されたデータを復号化すると、ＭＬＣパーティションへのデータ蓄積にあたって待ち時間が生じ得る。
【００９３】
コントローラで破裂部分を再現する代わりに、符号化手順によりフラッシュメモリの内部でコードワードの一部を生成することにより、フラッシュメモリのＳＬＣパーティションからフラッシュメモリのＭＬＣパーティションにデータをコピーする際のコントローラの関与は解消され得る。フラッシュメモリの中で複雑なロジックを効率的に実装できない実施形態において、この符号化手順は比較的複雑でない論理演算を含み得る。比較的簡素な符号化の一例は反復コードである。この場合は、いくつかのコードワードビットを繰り返すことによってコードワードの一部が生成され得る（例えば、生成される部分はコードワードの特定セクションのコピーであり得る）。図１４に関して一例が詳述される。
【００９４】
ＳＬＣからＭＬＣへのコピー手順におけるコントローラの関与は、コードワードの溢出部分がＭＬＣパーティションにコピーされるまで溢出部分をＲＡＭに蓄積することによって減らすこともできる。コードワードの溢出部分は小さい可能性があるため、大きいＲＡＭは必要ない場合がある。ＲＡＭに蓄積された溢出部分は電源が切れると失われ得る。電源が回復した後には、ＳＬＣパーティションから破裂コードワードを読み出して復号化することによってコードワードの失われた溢出部分は再現され得る。
【００９５】
長いコードワードをＳＬＣパーティションにプログラムしてからＭＬＣパーティションにコピーする第３の実施形態は、ＭＬＣパーティションに使用するものとは異なるＥＣＣコードを使用してＳＬＣパーティションにデータをプログラムすることを含み得る。ＳＬＣパーティションのためのＥＣＣコードはＳＬＣページに収まるコードワードを生成し得る（つまり、ＳＬＣパーティションに蓄積されるデータページのコードワードはＭＬＣパーティションに蓄積される同じデータページのコードワードより少ないパリティを有する）。ＳＬＣパーティションからＭＬＣパーティションにデータをコピーするため、該当するＳＬＣページはコントローラに読み込まれ、データはＳＬＣ  ＥＣＣを用いて復号化され、データはＭＬＣ  ＥＣＣを用いて符号化され、ＭＬＣコードワードは組み合わされてＭＬＣワード線にプログラムされる。図１５に関して一例が詳述される。
【００９６】
ＭＬＣプログラミングはプログラムされるＭＬＣの各ワード線の複数の非順次プログラミング段階を含み得る。このため、メモリコントローラによって使用されるＲＡＭは、ＭＬＣプログラミング（多数のワード線に書き込まれるデータを蓄積することを含み得る）を完了するにあたって全てのデータを蓄積するだけの十分なスペースを有さない場合がある。一例において、ＲＡＭの使用を抑えるＭＬＣプログラミングは「ＳＬＣ読み出し、ＳＬＣ復号化、ＭＬＣ符号化、ＭＬＣプログラミング」手順を数回繰り返すことによって遂行され得る（つまり、ＭＬＣワード線の各プログラミング段階につきこの手順を１回ずつ遂行する）。別の例において、ＲＡＭの使用を抑えるＭＬＣプログラミングは、ＳＬＣページを読み出し、ＳＬＣページから読み出されたデータをＳＬＣ  ＥＣＣ方式により復号化し、復号化されたデータをＭＬＣ  ＥＣＣ方式により符号化し、ＭＬＣコードワードをＳＬＣにプログラムすることによって遂行され、データはＳＬＣページでＭＬＣ形式で符号化される。
【００９７】
図１２は、長いコードワードを複数の物理ページにプログラムすることによってデータを書き込むように構成されたデータ蓄積装置１２０２を含むシステム１２００の特定の実施形態を示す。システム１２００はホスト装置１２３０に作動可能な状態で結合できるデータ蓄積装置１２０２を含む。データ蓄積装置１２０２はコントローラ１２０６に結合されたメモリ１２０４を含む。メモリ１２０４は第１の部分１２１０を含み、この第１の部分１２１０は第１の物理ページ１２１２と第２の物理ページ１２１４とを含む。メモリ１２０４は第２の部分１２２０をも含み、この第２の部分１２２０は第３の物理ページ１２２２を有する。データ蓄積装置１２０２は、長いコードワードを第１の部分１２１０の複数の物理ページにプログラムし、かつ後ほど蓄積されたデータを第２の部分１２２０にコピーするように構成される。
【００９８】
データ蓄積装置１２０２はメモリカードであってよく、例えばＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ＳＤ（登録商標）カード、ｍｉｃｒｏＳＤ（登録商標）カード、ｍｉｎｉＳＤ（ＴＭ）カード（デラウェア州ウィルミントンのSD-3C LLCの商標）、ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＴＭ）（ＭＭＣ（ＴＭ））カード（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、またはＣｏｍｐａｃｔＦｌａｓｈ（登録商標）（ＣＦ）カード（カリフォルニア州ミルピタスのサンディスク  コーポレイションの商標）であってよい。別の例として、データ蓄積装置１２０２はホスト装置１２３０に組み込まれたメモリであってよく、例えば説明的な例として、ｅＭＭＣ（登録商標）（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、およびｅＳＤであってよい。
【００９９】
ホスト装置１２３０は、データ蓄積装置１２０２に蓄積されるデータ（例えば、データページ１２３２）を提供するように構成されるか、あるいはデータ蓄積装置１２０２からデータを読み出すことを要求するように構成され得る。例えば、ホスト装置１２３０は携帯電話機、音楽または映像再生機、ゲーム機、電子書籍リーダ、個人用携帯情報端末（ＰＤＡ）、ラップトップコンピュータやノートブックコンピュータ等のコンピュータ、他の何らかの電子装置、またはこれらの組み合わせを含み得る。ホスト装置１２３０は１つ以上のプロトコルに従ってデータ蓄積装置１２０２と通信し、この１つ以上のプロトコルは、ホスト装置１２３０がデータ蓄積装置１２０２へデータを送ってからこのデータがメモリ１２０４に蓄積された確認を受け取るまで次のデータをデータ蓄積装置１２０２に送ることを禁じる。
【０１００】
メモリ１２０４はフラッシュメモリを含み、このフラッシュメモリはＳＬＣ部分またはパーティション（例えば、第１の部分１２１０）とＭＬＣ部分またはパーティション（例えば、第２の部分１２２０）とを有する。第１の物理ページ１２１２と第２の物理ページ１２１４は蓄積素子（例えば、１セル当たり１ビットを蓄積するＳＬＣセル）を各々含み得る。第３の物理ページ１２２２は蓄積素子（例えば、１セル当たり複数のビットを蓄積するＭＬＣセル）を含み得る。それぞれのＭＬＣセルは、複数の論理ページ（例えば、第３の物理ページ１２２２内の第１の論理ページ１２２４と第２の論理ページ１２２６）、対応するビット値を含むことができる。
【０１０１】
コントローラ１２０６はホスト装置１２３０からデータページ１２３２を受信するように構成され、データ蓄積装置１２０２は作動可能な状態でホスト装置１２３０に結合される。コントローラ１２０６は、データページ１２３２を符号化するため、符号化操作を開始するように構成される。この符号化操作は第１の符号化済みデータを生成し、この第１の符号化済みデータは第１の部分１２４０と第２の部分１２４２とを有する。
【０１０２】
データ蓄積装置１２０２は第１の符号化済みデータの第１の部分１２４０を第１の物理ページ１２１２に蓄積するように構成される。データ蓄積装置１２０２は、第１の部分１２４０を第１の物理ページ１２１２に蓄積した後に、第１の符号化済みデータの第２の部分１２４２を第２の物理ページ１２１４に蓄積することを開始する。例えば、第１の符号化済みデータの第１の部分１２４０は図１１の第１のコードワード１１３０の第１の部分１１３６に相当し、第１の符号化済みデータの第２の部分１２４２は第１のコードワード１１３０の第２および第３の部分１１３８、１１４０に相当し得る。
【０１０３】
データ蓄積装置１２０２は、第１の符号化済みデータを第１の部分１２１０に蓄積した後に、第１の符号化済みデータの第１の部分１２４０の表現１２６２を第１の物理ページ１２１２から第３の物理ページ１２２２内の第１の論理ページ１２２４にコピーするように構成される。データ蓄積装置１２０２はまた、第２の物理ページ１２１４から第３の物理ページ１２２２内の第２の論理ページ１２２６に表現１２６４をコピーするように構成される。例えば、メモリ１２０４の第２の部分１２２０にコピーされるデータは、メモリ１２０４の第１の部分１２１０からメモリ１２０４内にある１セットのラッチ（例えば、図８のラッチ８１０）に書き込まれる。図８〜１０に関して説明したように、ラッチに蓄積されたデータは１つ以上のビット・状態マッピングに従って第３の物理ページ１２２２に書き込まれる。メモリ１２０４の第１の部分１２１０で生じ得る１つ以上のビット誤り（例えば、代表的なビット誤り１２５２）のため、表現１２６２、１２６４は第１の符号化済みデータの部分１２４０、１２４２とは異なる。
【０１０４】
コントローラ１２０６は、第１の部分１２４０を第１の物理ページ１２１２に蓄積した後、第２の部分１２４２を第２の物理ページ１２１４に蓄積する前に、データ蓄積装置１２０２でデータページ１２３２が正常に蓄積されたことを伝えるメッセージ１２４８を、ホスト装置１２３０に送るように構成され得る。例えば、コントローラ１２０６は、第１の符号化済みデータの第１の部分１２４０が蓄積されたことを受けてホスト装置１２３０にメッセージ１２４８を送るように構成され得る。メモリ１２０４は第１の符号化済みデータの第１の部分１２４０と第１の符号化済みデータの第２の部分１２４２をパイプライン方式で蓄積し、第１のパイプライン段階で第１の物理ページ１２１２を書き込んだ後、後続のパイプライン段階で第２の物理ページ１２１４を書き込む前に、メッセージ１２４８を送り得る。追加のデータを送信する前に正常なデータ蓄積の確認を義務付けるシステムにおいて、第１の部分１２４０を蓄積した後にメッセージ１２４８を送ることにより、データ蓄積装置１２０２は、あたかも各符号化されたデータワードがメモリ１２０４の第１の部分１２１０の単一ページに蓄積されているかのように、蓄積データのスループットレートを維持できる。
【０１０５】
データ蓄積装置１２０２は作動中にホスト装置１２３０からデータページ１２３２を受信し得る。コントローラ１２０６は、第１の符号化済みデータを生成するため、ＥＣＣエンジン１２０８の入力にデータページ１２３２を提供し得る。コントローラ１２０６は第１の物理ページ１２１２に書き込まれる第１の符号化済みデータの第１の部分１２４０を送信し得る。コントローラ１２０６は第１の符号化済みデータの第１の部分１２４０を第１の物理ページ１２１２に書き込んだ後にホスト装置１２３０へメッセージ１２４８を送り、第２の物理ページ１２１４に対する第１の符号化済みデータの第２の部分１２４２の蓄積を開始し得る。
【０１０６】
第１の符号化済みデータの第１の部分１２４０が第１の物理ページ１２１２に書き込まれた後、第２の物理ページ１２１４に対する第１の符号化済みデータの第２の部分１２４２の書き込みが完了する前に、電源が切れる可能性がある。電源が切れた後に電源が回復すると、コントローラ１２０６は、第１の物理ページ１２１２から第１の符号化済みデータの第１の部分１２４０の表現１２６２を読み出すことにより、かつＥＣＣエンジン１２０８で第１の部分１２４０の表現１２６２を復号化することにより、元のデータページ１２３２を復元する。具体的に説明すると、第１の符号化済みデータの第１の部分１２４０は、第３の物理ページ１２２２の比較的高い予想誤り率に比べて第１の物理ページ１２１２の低い予想誤り率でデータページ１２３２を復元するにあたって十分な冗長情報を含み得る。（第１の符号化済みデータの第２の部分１２４２の）消失ビットの数と第１の符号化済みデータの第１の部分１２４０で生じるビット誤りの数がＥＣＣ符号化方式の誤り訂正能力を上回らなければ、コントローラ１２０６は取り出した第１の部分１２４０を復号化してデータページ１２３２を復元できる。
【０１０７】
図１３は、破裂コードワードを使用しメモリ１３０４の第１の部分１３１０にデータを蓄積してから、蓄積されたデータをメモリ１３０４の第２の部分１３２０にコピーするシステム１３００の一実施形態を示す。システム１３００はホスト装置１３３０に作動可能な状態で結合されるように構成されたデータ蓄積装置１３０２を含む。例えば、ホスト装置１３３０は図１２のホスト装置１２３０に相当し得る。
【０１０８】
データ蓄積装置１３０２はＥＣＣエンジン１３０８を備えるコントローラ１３０６を含み、かつメモリ１３０４（例えば、ＮＡＮＤフラッシュメモリ）を含む。メモリ１３０４の第１の部分１３１０（例えば、バイナリキャッシュとして機能するＳＬＣ部分）は第１の物理ページ１３１２を含み、メモリ１３０４の第２の部分１３２０（例えば、ＭＬＣ部分）は第２の物理ページ１３２２を含む。第２の物理ページ１３２２は第１の論理ページ１３２４を含み、かつ第１の論理ページ１３２４より高い信頼度を有する第２の論理ページ１３２６を含む。
【０１０９】
コントローラ１３０６は、ホスト装置１３３０から受信したデータページ１３３２を符号化するため、第１の符号化操作を開始するように構成される。例えば、コントローラ１３０６が第１の論理ページ１３２４にデータページ１３３２を蓄積することを決定した場合、コントローラ１３０６は、ＥＣＣエンジン１３０８がデータページ１３３２を符号化し、第１の論理ページ１３２４の比較的低い信頼度に対処するにあたって十分な冗長性を有する第１の符号化済みデータ（例えば、長いコードワード）を生成するように設定する。コントローラ１３０６が信頼度の高いページ（例えば、第２の論理ページ１３２６）にデータページを蓄積することを決定した場合、コントローラ１３０６は、ＥＣＣエンジン１３０８が少ない冗長ビットを有する短いコードワードを生成し得るように設定する。例えば、長いコードワードは図１１の第１のコードワード１１３０であってよく、短いコードワードは図１１の第２のコードワード１１３２であってよい。
【０１１０】
第１の符号化済みデータ（長いコードワード）は第１の論理ページ１３２４の長さを上回り、かつ第１の物理ページ１３１２の長さを上回り得る（つまり、第１の符号化済みデータはメモリ１３０４の第１の部分１３１０の複数のページにまたがる）。第１の符号化済みデータはまた、第１の物理ページ１３１２の予想誤り率を是正するために必要以上に多くの冗長ビットを含み得る。コントローラ１３０６は第１の符号化済みデータを破裂させ、第１の符号化済みデータの第１の部分１３４０を第１の物理ページ１３１２に書き込み、第１の符号化済みデータの第２の部分１３４２は破棄し得る。例えば、第１の符号化済みデータの第１の部分１３４０はユーザデータとパリティビットとを含み、第１の符号化済みデータの第２の部分１３４２はユーザデータを含まず、代わりに「溢出」パリティビットを含み得る。
【０１１１】
コントローラ１３０６は、第１の物理ページ１３１２から第１の符号化済みデータの表現１３５０を読み出すことによってメモリ１３０４の第１の部分１３１０から第１の符号化済みデータを再生するように構成される。第１の物理ページ１３１２で生じ得る誤り（例えば、代表的なビット誤り１３５２）を訂正するため、表現１３５０はＥＣＣエンジン１３０８で復号化される。コントローラ１３０６は、復元されたデータページを符号化するため、ＥＣＣエンジン１３０８で第２の符号化操作を開始するように構成される。第２の符号化操作は第２の符号化済みデータ１３６０を生成する。
【０１１２】
第２の符号化済みデータ１３６０は第１の符号化済みデータ（第１の部分１３４０と第２の部分１３４２）と同じＥＣＣ方式を用いて生成され、第１の論理ページ１３２４を概ね満たす第１の部分１３６２と、第２の論理ページ１３２６の少なくとも一部分を満たす第２の部分１３６４とを有する。したがって、第２の符号化済みデータ１３６０は単一の物理ページ１３１２にまたがる第１の符号化済みデータの第１の部分１３４０より多くのページ（つまり、第１の論理ページ１３２４と第２の論理ページ１３２６の一部分）にまたがる。
【０１１３】
図１２のシステムとは対照的に、データをメモリ１３０４の第１の部分１３１０に一時的に蓄積することができ、長いコードワードを蓄積するにあたって第１の部分１３１０の複数のページは必要ない。代わりに、１ページの長さを上回る長いコードワードはメモリ１３０４の第１の部分１３１０に蓄積するために破裂させられ、破裂されたビットは後ほど再生されて第２の物理ページ１３２２に蓄積される。
【０１１４】
図１４は、メモリ１４０４の第１の部分１４１０にデータを蓄積し、メモリ１４０４で追加の冗長データを生成してから、メモリ１４０４の第２の部分１４２０にデータを蓄積するシステム１４００の一実施形態を示す。システム１４００はホスト装置１４３０に作動可能な状態で結合されるように構成されたデータ蓄積装置１４０２を含む。例えば、ホスト装置１４３０は図１２のホスト装置１２３０に相当し得る。
【０１１５】
データ蓄積装置１４０２はＥＣＣエンジン１４０８を備えるコントローラ１４０６を含み、かつメモリ１４０４（例えば、ＮＡＮＤフラッシュメモリ）を含む。メモリ１４０４の第１の部分１４１０（例えば、バイナリキャッシュとして機能するＳＬＣ部分）は第１の物理ページ１４１２を含み、メモリ１４０４の第２の部分１４２０（例えば、ＭＬＣ部分）は第２の物理ページ１４２２を含む。第２の物理ページ１４２２は第１の論理ページ１４２４を含み、かつ第１の論理ページ１４２４より高い信頼度を有する第２の論理ページ１４２６を含む。
【０１１６】
コントローラ１４０６は、ホスト装置１４３０から受信したデータページ１４３２を符号化するため、符号化操作を開始するように構成される。この符号化操作は第１の符号化済みデータ１４４０を生成し、第１の符号化済みデータ１４４０を第１の物理ページ１４１２に蓄積する。第１の符号化済みデータ１４４０は第１の物理ページ１４１２のサイズを上回らないサイズを有する。別の実施形態において、第１の符号化済みデータ１４４０は第１の物理ページのサイズを上回るサイズを有し、コントローラ１４０６は図１３のコントローラ１３０６と同様に第１の符号化済みデータ１４４０を１ページ内に収まるように破裂させ得る。
【０１１７】
メモリ１４０４は冗長データ生成回路１４７２を含み、この冗長データ生成回路１４７２は第１の符号化済みデータ１４４０の表現１４５０を受信し（表現１４５０は１つ以上の誤り（例えば、代表的なビット誤り１４５２）を含み得る）、かつ冗長データ１４７４を生成するように構成される。例えば、冗長データ生成回路１４７２は反復符号化回路を含み、この反復符号化回路は第１の符号化済みデータ１４４０の表現１４５０の少なくとも一部分をコピーすることによって冗長データ１４７４を生成するように構成される。この代わりにあるいはこれに加えて、冗長データ生成回路１４７２は１つ以上の複雑な（反復符号化に比べて複雑な）符号化手法を実施して冗長データ１４７４を生成するように構成され得る。冗長データ１４７４が表現１４５０に加えられ、連結され、または組み合わされて第２の符号化済みデータ１４６０が生成され、第２の符号化済みデータ１４６０は第２の物理ページ１４２２に蓄積される。
【０１１８】
第２の符号化済みデータ１４６０は第１の論理ページ１４２４を概ね満たす第１の部分１４６２と、第２の論理ページ１４２６の少なくとも一部分は満たす第２の部分１４６４とを有する。したがって、第２の符号化済みデータ１４６０は単一の第１の物理ページ１４１２にまたがる第１の符号化済みデータ１４４０より多くのページ（つまり、第１の論理ページ１４２４と第２の論理ページ１４２６の一部分）にまたがる。
【０１１９】
図１２のシステムとは対照的に、システム１４００は単一の物理ページ（第１の物理ページ１４１２）を使って第１の符号化済みデータ１４４０をキャッシュする。例えば、ＥＣＣエンジン１４０８は受信したデータページ１４３２を符号化し、長さが第１の物理ページ１４１２のページサイズを超えないコードワードを得る。あるいは、ＥＣＣエンジン１４０８は受信したデータページ１４３２を符号化し、第１の物理ページ１４１２のページサイズを超える長さのコードワード（長いコードワード）を得て、コードワードを破裂させることができ、図１３のシステムと同様に第１の物理ページ１４１２には第１の部分のみが蓄積され、破裂部分は破棄される。
【０１２０】
ただし、図１３のシステムとは対照的に、メモリ１４０４の第１の部分１４１０（例えば、ＳＬＣバイナリキャッシュ）からメモリ１４０４の第２の部分１４２０（例えば、ＭＬＣパーティション）への情報のコピーは全面的にメモリ１４０４内で遂行され、コントローラ１４０６は関与しない。このため、メモリ１４０４からコントローラ１４０６へのデータ転送とコントローラ１４０６からメモリ１４０４へのデータ転送にともなう待ち時間は解消される。
【０１２１】
図１５は、メモリ１５０４の第１の部分１５１０（例えば、ＳＬＣ部分）にキャッシュされるデータを符号化するのと、メモリ１５０４の第２の部分１５２０（例えば、ＭＬＣ部分）に蓄積されるデータを符号化するのに、異なるＥＣＣ方式を使用してデータを蓄積するシステム１５００の一実施形態を示す。システム１５００はホスト装置１５３０に作動可能な状態で結合されるように構成されたデータ蓄積装置１５０２を含む。例えば、ホスト装置１５３０は図１２のホスト装置１２３０に相当し得る。
【０１２２】
データ蓄積装置１５０２はＥＣＣエンジン１５０８を備えるコントローラ１５０６を含み、かつメモリ１５０４（例えば、ＮＡＮＤフラッシュメモリ）を含む。メモリ１５０４の第１の部分１５１０（例えば、バイナリキャッシュとして機能するＳＬＣ部分）は第１の物理ページ１５１２を含み、メモリ１５０４の第２の部分１５２０（例えば、ＭＬＣ部分）は第２の物理ページ１５２２を含む。第２の物理ページ１５２２は第１の論理ページ１５２４を含み、かつ第１の論理ページ１５２４より高い信頼度を有する第２の論理ページ１５２６を含む。
【０１２３】
コントローラ１５０６は、ホスト装置１５３０から受信されメモリ１５０４の第１の部分１５１０に書き込まれるデータページ１５３２を符号化するため、第１の符号化操作を開始するように構成される。第１の符号化操作は第１のＥＣＣ方式に従って第１の符号化済みデータ１５４０を生成するようにＥＣＣエンジン１５０８を設定することを含む。第１の符号化済みデータ１５４０は第１の物理ページ１５１２の信頼度に基づきデータページ１５３２を復元するにあたって十分な冗長性を含み得る。第１の符号化済みデータ１５４０のサイズはメモリ１５０４の第１の部分１５１０の１ページにまたがるように設定される（つまり、第１の符号化済みデータ１５４０は第１の物理ページ１５１２以外のページに蓄積されない）。
【０１２４】
第１の符号化済みデータ１５４０を第１の物理ページ１５１２に蓄積した後には、第１の物理ページ１５１２から第１の符号化済みデータ１５４０の表現１５５０が読み出され、コントローラ１５０６に提供され得る。１つ以上のビット誤り（例えば、代表的なビット誤り１５５２）が存在するため、表現１５５０は第１の符号化済みデータ１５４０と異なり得る。コントローラ１５０６は、ＥＣＣエンジン１５０８で表現１５５０を復号化してデータページ１５３２を復元するように構成される。
【０１２５】
コントローラ１５０６は復元されたデータページ１５３２を第２のＥＣＣ方式に従いＥＣＣエンジン１５０８で符号化するように構成される。例えば、コントローラ１５０６が第１の論理ページ１５２４にデータページ１５３２を蓄積することを決定した場合、コントローラ１５０６は、ＥＣＣエンジン１５０８がデータページ１５３２を符号化し、第１の論理ページ１５２４の比較的低い信頼度に対処するにあたって十分な冗長性を有する第２の符号化済みデータ１５６０（例えば、長いコードワード）を生成するように設定する。
【０１２６】
第２の符号化済みデータ１５６０（長いコードワード）は第１の論理ページ１５２４の長さを上回る。第２の符号化済みデータ１５６０の第１の部分１５６２は第１の論理ページ１５２４を概ね満たし、第２の符号化済みデータの第２の部分１５６４は第２の論理ページ１５２６の少なくとも一部分を満たし得る。したがって、第２の符号化済みデータ１５６０は単一の物理ページ１５１２にまたがる第１の符号化済みデータ１５４０より多くのページ（つまり、第１の論理ページ１５２４と第２の論理ページ１５２６の一部分）にまたがる。
【０１２７】
図１６は、符号化済みデータの複数の部分を書き込むことと、複数の部分の単一の部分からデータを復元することとを含む方法の一実施形態を示す。この方法は、第１の物理ページと第２の物理ページとを含む複数の物理ページを備えるデータ蓄積装置で遂行され得る。例えば、この方法は図１２のデータ蓄積装置１２０２で遂行され得る。
【０１２８】
１６０２では、データ蓄積装置に蓄積されるデータページが受信される。データページはデータ蓄積装置が作動可能な状態でホスト装置に結合されているときにホスト装置から受信され得る。例えば、データ蓄積装置１２０２は物理的にまたは無線方式で、ホスト装置１２３０に結合され得る。データ蓄積装置１２０２はホスト装置１２３０からデータページ１２３２を受信し得る。
１６０４では、データページを符号化するために符号化操作が開始される。この符号化操作は第１の符号化済みデータを生成する。例えば、第１の符号化済みデータは図１１の第１のコードワード１１３０に相当し得る。
【０１２９】
１６０６では、第１の符号化済みデータの第１の部分が第１の物理ページに蓄積される。１６０８では、第１の符号化済みデータの第２の部分を第２の物理ページに蓄積することが開始される。第１の符号化済みデータの第２の部分はパリティビットのみを含み得る。例えば、データ蓄積装置は、シングルレベルセル（ＳＬＣ）部分とマルチレベルセル（ＭＬＣ）部分とを有するフラッシュメモリを含み得る。第１の物理ページと第２の物理ページはＳＬＣ部分（例えば、バイナリキャッシュ）にあり、受信されたデータをフラッシュメモリのマルチレベルセル（ＭＬＣ）部分にある第３の物理ページにコピーするまで蓄積する。
【０１３０】
第１の符号化済みデータの第１の部分を蓄積した後に、メッセージ（例えば、図１２のメッセージ１２４８）がホスト装置に送信され得る。このメッセージはデータ蓄積装置でデータページが正常に蓄積されたことを伝え得る。メッセージは第１の符号化済みデータの第２の部分の蓄積を完了する前に送信され得る。データページの蓄積済みの第１の部分は第１の物理ページの信頼度に基づきデータページを復元するにあたって十分な冗長性を有するため、メッセージは第２の部分が蓄積される前に送信され得る。
【０１３１】
１６１０では、データページを復元するために復号化操作が開始される。例えば、第１の符号化済みデータの第２の部分の書き込みを完了する前に電源が切れると、復号化操作は電源が回復した後に開始される。復号化操作では第１の物理ページから読み出される第１の符号化済みデータの第１の部分の表現を使用し、第２の物理ページのデータは使用しない。
【０１３２】
復号化操作によりデータページを復元した後に、データページを符号化するために第２の符号化操作が開始され得る。第２の符号化操作は第２の符号化済みデータを生成し、第２の符号化済みデータの第１の部分は第３の物理ページに蓄積され得る。例えば、第２の符号化済みデータの第１の部分は、図１２の第３の物理ページ１２２２内にある第１の論理ページ１２２４に蓄積される第１の部分１２４０の表現１２６２であり得る。例えば、図１２の第２の論理ページ１２２６に蓄積される第２の部分１２４２の表現１２６４のように、第２の符号化済みデータの第２の部分は第３の物理ページ内にある第２の論理ページに蓄積され得る。
【０１３３】
第１の符号化済みデータは第１の物理ページのサイズを上回る長さを有し、第２の符号化済みデータは第１の論理ページのサイズを上回る長さを有し得る。図１１〜１２に関して説明したように、第１の論理ページは第２の論理ページより低い信頼度を有するため、データページを符号化するために追加のパリティビットが使用され、コードワードは第１の論理ページと第１の物理ページのサイズを上回る長さを有する。
【０１３４】
図１７は、メモリダイの中で追加の冗長データを生成することを含む方法の一実施形態を示す。この方法はコントローラとメモリダイとを備えるデータ蓄積装置で遂行され、コントローラは誤り訂正符号化（ＥＣＣ）エンジンを含み、メモリダイは第１の物理ページと第２の物理ページとを含む複数の物理ページを含む。例えば、この方法は図１４のデータ蓄積装置１４０２で遂行され得る。
【０１３５】
１７０２では、データ蓄積装置に蓄積されるデータページが受信される。データページはデータ蓄積装置が作動可能な状態でホスト装置に結合されているときにホスト装置から受信される。例えば、データ蓄積装置１４０２は物理的にまたは無線方式で、ホスト装置１４３０に結合され得る。データ蓄積装置１４０２はホスト装置１４３０からデータページ１４３２を受信し得る。
１７０４では、データページを符号化するためにＥＣＣエンジンで符号化操作が開始され得る。この符号化操作は第１の符号化済みデータ（例えば、図１４の第１の符号化済みデータ１４４０）を生成する。１７０６では、第１の符号化済みデータの少なくとも一部分がメモリダイにある第１の物理ページに蓄積される。
１７０８では、メモリダイで第２の符号化済みデータが生成され得る。第２の符号化済みデータは、第１の符号化済みデータの一部分の表現（例えば、図１４の表現１４５０）を第１の物理ページから読み出すことにより、かつ第１の符号化済みデータの一部分の表現に基づきメモリダイで冗長データを生成することにより、生成され得る。
【０１３６】
例えば、冗長データは図１４の冗長データ生成回路１４７２で生成され得る。冗長データは、メモリダイで第１の符号化済みデータの一部分の表現の少なくとも一部をコピーすることによって生成され得る。１７１０では、第２の符号化済みデータが第２の物理ページに蓄積される。
例えば、コードワードの一時的な蓄積のためにＳＬＣバイナリキャッシュを使用できる。具体的に説明すると、第１の符号化済みデータは第１の物理ページのフラッシュシングルレベルセル（ＳＬＣ）ページに蓄積され、第２の符号化済みデータは第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積され得る。冗長データはメモリダイで生成されるため、コントローラの関与（およびメモリダイからコントローラへのデータ転送とコントローラからメモリダイへのデータ転送にともなう遅延）は解消され得る。
【０１３７】
図１８は、メモリにデータを書き込む方法の一実施形態を示す。この方法は複数の物理ページ（例えば、第１の物理ページと第２の物理ページ）を備えるデータ蓄積装置で遂行され得る。
【０１３８】
１８０２では、データ蓄積装置に蓄積されるデータページが受信される。データページはデータ蓄積装置が作動可能な状態でホスト装置に結合されているときにホスト装置から受信される。例えば、データページは図１３のホスト装置１３３０から受信されるデータページ１３３２であり得る。別の例として、データページは図１５のホスト装置１５３０から受信されるデータページ１５３２であり得る。
１８０４では、データページを符号化するために第１の符号化操作が開始される。第１の符号化操作は第１の符号化済みデータを生成する。例えば、第１の符号化操作は図１３のＥＣＣエンジン１３０８で遂行され得る。別の例として、第１の符号化操作は図１５のＥＣＣエンジン１５０８で遂行され得る。
【０１３９】
１８０６では、第１の符号化済みデータの少なくとも一部分が第１の物理ページに蓄積される。例えば、図１５の第１の符号化済みデータ１５４０のように、第１の符号化済みデータは第１の物理ページに全て蓄積され得る。あるいは、第１の符号化済みデータは第１の部分と第２の部分（例えば、図１２の部分１２４０〜１２４２（または図１３の部分１３４０〜１３４２））を含み得る。第１の部分は第１の物理ページに蓄積され、第２の部分は破棄され得る。
１８０８では、データページを復元するため、第１の物理ページから読み出された第１の符号化済みデータの一部分の表現が復号化され得る。例えば、図１３のＥＣＣエンジン１３０８では表現１３５０が復号化される。別の例として、図１５のＥＣＣエンジン１５０８では表現１５５０が復号化され得る。
【０１４０】
１８１０では、データページを符号化するために第２の符号化操作が開始される。第２の符号化操作は第２の符号化済みデータを生成する。例えば、図１３のＥＣＣエンジン１３０８で第２の符号化操作が遂行されることによって第２の符号化済みデータ１３６０が生成され得る。別の例として、図１５のＥＣＣエンジン１５０８で第２の符号化操作が遂行されることによって第２の符号化済みデータ１５６０が生成され得る。
【０１４１】
１８１２では、第２の符号化済みデータが第２の物理ページに蓄積される。第２の符号化済みデータは第１の符号化済みデータの一部分より多くのページにまたがる。第１の符号化済みデータの一部分は第２の物理ページより信頼度が高い第１の物理ページのフラッシュページに蓄積され得る。例えば、バイナリキャッシュの実施例において、第１の符号化済みデータの一部分は第１の物理ページのフラッシュシングルレベルセル（ＳＬＣ）ページに蓄積され、第２の符号化済みデータは第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積され得る。
【０１４２】
一部の実施形態において、第１の符号化操作は第２の符号化操作と同じ誤り訂正符号化（ＥＣＣ）方式を使用する。例えば、図１３のデータ蓄積装置１３０２は、第１の符号化済みデータ１３４０と第２の符号化済みデータ１３６０を生成するために同じＥＣＣ方式を使用する。別の実施形態において、第１の符号化操作は第１の誤り訂正符号化（ＥＣＣ）方式を使用し、第２の符号化操作は第１のＥＣＣ方式とは異なる第２のＥＣＣ方式を使用する。例えば、図１５のデータ蓄積装置１５０２は、第１の符号化済みデータ１５４０を生成するのと、第２の符号化済みデータ１５６０を生成するのに、異なるＥＣＣ方式を使用する。
【０１４３】
蓄積容量をページ信頼度に整合させること
不均等なページ信頼度に対処するもう１つの手法は、高信頼度ページに多くの情報を蓄積し、低信頼度ページに少ない情報を蓄積することを含む。同じコード長さと異なるコードレートを有する異なるコードによるマルチレベル符号化（ＭＬＣ）方式がワード線の異なるページに使用され得る。図５および６には、ワード線のページへのかかるＭＬＣ方式の連結コードワードの２通りのマッピングが示されている。かかる方式では蓄積する情報量がページによって異なるため、フラッシュメモリ管理は修正され得る。
【０１４４】
別の手法では、それぞれのページで同量（例えば、８ＫＢ）のユーザデータを蓄積するが、管理データ、制御データ、その他の副次的情報の量は異なり得る。ワード線の高信頼度ページ（ユーザデータのために使用する冗長性が少ないために高蓄積容量を有する）に蓄積できる副次的情報の一例は統計情報（例えば、蓄積データに関する統計情報やワード線のセル電圧分布に関する統計情報）である。かかる副次的情報は読み出しレベルを調整する目的、誤り訂正能力を改善する目的、データを管理する目的、１つ以上の他の目的、またはこれらの組み合わせに、役立てることができる。管理データ、制御データ、または副次的情報はユーザ情報とは別に符号化でき、同じコードワードの中でユーザ情報と共に符号化する必要はない。
【０１４５】
成形のため高信頼度ページの冗長セルの一部を利用すること
高信頼度ページの高蓄積容量（ユーザデータの符号化にあたってパリティビットが少ないために高蓄積容量）を利用してプログラム状態にわたって確率分布を成形することにより、不均等なページ信頼度に対処する。確率分布の適切な成形は耐久性向上、誤り率低減、「ノイズ」軽減、またはこれらの組み合わせに役立てることができる。ＭＬＣワード線の高信頼度ページは少ないＥＣＣ冗長性でＭＬＣワード線の低信頼度ページと同等の信頼度を提供できるため、高信頼度ページで使用されない冗長性は「成形」冗長性(shaping redundancy)として利用できる。「成形」冗長性はプログラム状態にわたって指定不均一確率分布の誘発を可能にする。例えば、ハイおよびロー状態はさほど頻繁にプログラムされないため、セルのウェアリングは緩和され、ある種のプログラムディスターブ現象は軽減され得る。
【０１４６】
図１９は、ページ信頼度に基づき成形冗長性を用いてデータを蓄積する例１９００を示す。第１のデータ（データ１）を表す第１のビットグループ１９０２と第２のデータ（データ２）を表す第２のビットグループ１９０４とを含むデータは、メモリ（例えば、フラッシュメモリ）で受信され得る。第１のグループ１９０２と第２のグループ１９０４はＭＬＣメモリの単一ワード線に蓄積されるＮ個のビットを各々含み得る。
【０１４７】
第３のビットグループ１９１６を生成するため、第２のビットグループ１９０４に対して成形符号化操作１９１０が遂行される。第２のビットグループ１９０４のビット値の均一確率分布１９１２として示されているように、第２のビットグループ１９０４は、あるビット位置で発生する「０」ビット値の確率（ｐ０）が「１」ビット値の確率（ｐ１）に概ね等しくなるように符号化され得る。この均一確率分布１９１２は棒グラフとして描かれ、「０」ビット値の確率は「ｐ０」と表示された棒の高さで表され、「１」の確率は「ｐ１」と表示された棒の高さで表されている。変換１９１３は第３のビットグループ１９１６でビット値の不均一確率分布１９１４を形成する。不均一確率分布１９１４は、第３のビットグループ１９１６で「０」ビットの確率が「１」ビットの確率より大きいことを示している。
【０１４８】
第３のビットグループ１９１６はＭ個（Ｍ＞Ｎ）のビットを有し、第２のビットグループ１９０４に追加のビット（成形パリティ）１９１８が付加されたものとして示されている。ただし、第３のビットグループ１９１６は成形パリティ１９１８が付加された第２のビットグループ１９０４を含む必要はなく、変換されたデータビットから形成されてもよいことは理解できるはずである。
【０１４９】
第１のビットグループ１９０２には第１のＥＣＣ符号化操作１９２０が遂行され、第３のビットグループ１９１６には第２のＥＣＣ符号化操作１９２２が遂行される。第１のＥＣＣパリティビット（ＥＣＣパリティ１）が付加された第１のデータ（データ１）として示された第１のＥＣＣ符号化操作１９２０から得られるデータは、蓄積操作１９２４により第１の論理ページ１９３２に蓄積される。第２のデータ（データ２）、成形パリティ１９１８、および第２のＥＣＣパリティビット（ＥＣＣパリティ２）として示された第２のＥＣＣ符号化操作１９２２から得られるデータは、蓄積操作１９２４により第２の論理ページ１９３６に蓄積される。
【０１５０】
第１の論理ページ１９３２は第２の論理ページ１９３６の第２の誤り率１９３８より大きい第１の誤り率１９３４を有するため、第１のデータは第２のデータより多くのＥＣＣパリティによって保護され得る。第１のＥＣＣパリティビットのビット数（Ｐ１）は、第２のＥＣＣパリティのビット数（Ｐ２）と成形パリティ１９１８のビット数の合計に等しい場合がある。第２のＥＣＣパリティは、第１のＥＣＣパリティが第１の誤り率１９３４に基づき第１のデータに提供する誤り保護と概ね同等の誤り保護を第２の誤り率１９３８に基づき第２のデータに提供し得る。
【０１５１】
第１の論理ページ１９３２と第２の論理ページ１９３６は蓄積素子群１９３０（例えば、ＭＬＣメモリの物理ページ）の中にある。蓄積素子群１９３０はＭ個の蓄積素子（例えば、フラッシュメモリセル（インデックスｃ１・・・ｃｍを有するセルとして示す））を含む。それぞれの蓄積素子は複数のビットに相当する状態（ｓ０、ｓ１等）を蓄積する。例えば、第１の蓄積素子ｃ１は第１の論理ページの第１のビットと第２の論理ページの第２のビットに相当する状態ｓ１を有している。
【０１５２】
「０」ビットの確率を上げて「１」ビットの確率を下げることにより、成形符号化操作１９１０は蓄積素子群１９３０の状態の分布に影響を及ぼす。図１９は２つの論理ページ１９３２、１９３６を示しているが、別の実施例では３つ以上の論理ページを含んでよい。例えば、Ｍ＝８状態セルのフラッシュメモリには表５のグレイマッピングを使用できる。
【表５】
0006025844.tif 000006
【０１５３】
それぞれのページは８ＫＢのユーザデータを蓄積し、１ＫＢの冗長性を有し得る（つまり、ワード線は８ＫＢ＋１ＫＢ＝９ＫＢセルを含み、１ＫＢ＝１，０２４バイト）。ワード線のページにユーザデータを符号化し得る方法（例えば、１ページ当たり８ＫＢ）と、冗長性を割り当てる方法の例を図１９および２０に関して説明する。図１９に示された例の上位ページ（第２の論理ページ１９３６より信頼度が低い第１の論理ページ１９３２）では冗長領域全体がＥＣＣ冗長性に利用される。図２０に関して説明するように、信頼度が高い下位および／または中間ページでは冗長領域がＥＣＣ冗長性と成形冗長性に利用される。情報理論分析によると、全３ページで同等の信頼度を達成するにあたって、誤り率が上位ページの誤り率の２／３に過ぎない下位および中間ページに必要な冗長性は（使用可能な１ＫＢのうちの）約６８３Ｂだけである。このため、冗長性の約３４１Ｂは成形に使用できる。
【０１５４】
使用できる冗長性は次の通りに利用される。まずは下位または中間ページに蓄積された８ＫＢのユーザデータが成形コードにより符号化される。これはユーザデータを８，５３３Ｂ（＝８ＫＢ＋３４１Ｂ）の「成形」されたワードにマップする。これは元のユーザデータに比べて低減された「１」の端数を有する（あるいは「０」の端数を低減するために成形が使用され得る）。次に「成形」されたワードはＥＣＣエンコーダを用いて９ＫＢのコードワード（８，５３３Ｂ＋６８３Ｂ）に符号化される。ユーザデータがランダムである場合（「０」と「１」で等しい確率）、８，１９２Ｂのユーザデータで３４１Ｂの成形冗長性はコードワードにおいて「１」の端数ｐを平均で５０％から約３８％まで低減することを可能にする（ｐ＝Ｈb-1 （８１９２／８５３３）≒０．３８、ここでＨb（ｐ）＝ｐ・ｌｏｇ2 （ｐ）−（１−ｐ）・ｌｏｇ２（１−ｐ））。「成形」されたセルのプログラム状態における確率分布は次式によって与えられる。
Ｐ＝［０．５・ｐ2 ０．５・（１−ｐ）・ｐ  ０．５・（１−ｐ）・ｐ  ０．５・（１−ｐ）・（１−ｐ）０．５・（１−ｐ）・（１−ｐ）０．５・（１−ｐ）・ｐ  ０．５・（１−ｐ）・ｐ  ０．５・ｐ2 ］
＝［０．０７２２  ０．１１７８  ０．１１７８  ０．１９２２  ０．１９２２  ０．１１７８  ０．１１７８  ０．０７２２］
【０１５５】
この例でＥＣＣ冗長セルは「成形」されないため、セルのプログラム状態における分布は概ね均一であり得る（Ｕ＝［１／８  １／８  １／８  １／８  １／８  １／８  １／８  １／８］）。したがって、ワード線沿いのプログラム状態における全体的分布は次の通りであり得る。
（８５３２／９２１６）・Ｐ＋（６８４／９２１６）・Ｕ＝［０．０７６１  ０．１１８３  ０．１１８３  ０．１８７２  ０．１８７２  ０．１１８３  ０．１１８３  ０．０７６１］
したがって、２つの極端な状態（例えば、表５の状態「Ｅｒ」および「Ｇ」）の確率は大幅に低減され得る。最極端の状態の確率低減はセルウェアリングの軽減（ならびにサイクリングおよびデータ保持性能の向上）とプログラムディスターブ現象の軽減（および誤り率低減）を可能にする。
【０１５６】
図２０は、ページ信頼度に基づき成形冗長性を用いてデータを蓄積するシステムを示す。システム２０００はホスト装置２０３０に作動可能な状態で結合されるように構成されたデータ蓄積装置２００２を含む。例えば、ホスト装置２０３０は図１２のホスト装置１２３０に相当し得る。
【０１５７】
データ蓄積装置２００２は成形エンコーダ２００８とＥＣＣエンジン２０１０とを備えるコントローラ２００６を含む。データ蓄積装置２００２はまた、メモリ２００４（例えば、フラッシュマルチレベルセル（ＭＬＣ）メモリ）を含む。メモリ２００４は、蓄積素子２０２０（例えば、フラッシュＭＬＣセル）を含み、かつ１つ以上の蓄積素子群（例えば、代表的な群２０２２）を含む。具体的に説明すると、群２０２２は、ＭＬＣワード線（例えば、代表的な３ビットＭＬＣワード線２０４０）であり得る。
【０１５８】
成形エンコーダ２００８は、「１」および「０」値の第１の分布を有する入力データを受け取り、かつ「１」および「０」値の修正済み分布を有する出力データを生成するように構成される。成形エンコーダ２００８は成形パリティビットを生成する成形操作を適用するように構成され、その出力データ（例えば、入力データに成形パリティが付加されたもの）はビット値の不均一確率分布を有する。成形符号化操作はＭＬＣメモリ２００４の物理ページの各セルが中間状態にプログラムされる尤度を増加させ、ＭＬＣメモリ２００４の物理ページの各セルが最低状態または最高状態に、あるいはその両方に、プログラムされる尤度を減少させ得る。例えば、成形エンコーダ２００８は図１９の成形符号化操作１９１０を遂行するように構成され得る。
【０１５９】
コントローラ２００６はホスト装置２０３０からユーザデータ２０３２を受信するように構成される。ユーザデータ２０３２は、ＭＬＣワード線（ＷＬ）の上位ページに蓄積される第１のビットグループ２０５０（データ１）と、ＭＬＣワード線の中間ページに蓄積される第２のビットグループ２０５２（データ２）と、ＭＬＣワード線の下位ページに蓄積される第３のビットグループ２０５４（データ３）とを含む。上位ページは中間および下位ページより高い誤り率を有する。
【０１６０】
コントローラ２００６は、第２のグループ２０５２と第３のグループ２０５４には成形符号化操作を遂行し、第１のグループ２０５０には成形符号化操作を遂行しないように構成される。第２のグループ２０５２と第３のグループ２０５４は成形エンコーダ２００８に提供され、第２の成形済みデータ２０５６と第３の成形済みデータ２０５８がそれぞれ生成される。第２の成形済みデータ２０５６は第２のグループ２０５２より多くのビットを含み、第３の成形済みデータ２０５８は第３のグループ２０５４より多くのビットを含んでいる。
【０１６１】
コントローラ２００６は、成形エンコーダ２００８を迂回して第１のグループ２０５０をＥＣＣエンジン２０１０に提供するように構成される。ＥＣＣエンジン２０１０は第１のＥＣＣ符号化操作２０１２を適用し、この第１のＥＣＣ符号化操作２０１２は第１のデータビットグループ２０５０に基づき第１のＥＣＣパリティ（ＥＣＣパリティ１）を生成して第１のＥＣＣ符号化済みデータ２０６０を形成する。コントローラ２００６は第２の成形済みグループ２０５６をＥＣＣエンジン２０１０に提供するように構成され、ＥＣＣエンジン２０１０は第２のＥＣＣ符号化操作２０１４を適用し、この第２のＥＣＣ符号化操作２０１４は第２のＥＣＣパリティ（ＥＣＣパリティ２）を生成して第２のＥＣＣ符号化済み成形済みデータ２０６２を形成する。同様に、第３の成形済みグループ２０５８はＥＣＣエンジン２０１０に提供され、第３のＥＣＣパリティ（ＥＣＣパリティ３）が生成されて第３のＥＣＣ符号化済み成形済みデータ２０６４が形成される。
【０１６２】
ＭＬＣワード線２０４０の低信頼度上位ページのための高度な誤り訂正能力を提供するため、第１のＥＣＣ符号化済みデータ２０６０の第１のＥＣＣパリティビットは第２のＥＣＣ符号化済み成形済みデータ２０６２の第２のＥＣＣパリティビットより多くのビットを含んでいる。例えば、第１のＥＣＣパリティビットは上位論理ページで第１の数までの誤りの訂正を可能にし、第２のＥＣＣパリティビットは中間論理ページで第２の数までの誤りの訂正を可能にする。上位論理ページにおける誤り数が第１の数を上回る第１の確率は、中間論理ページにおける誤り数が第２の数を上回る第２の確率に概ね等しい。上位ページと同等の誤り訂正能力で中間および下位ページに必要なパリティは少ないため、成形エンコーダ２００８によって生成される成形パリティはＭＬＣワード線２０４０のパリティ部分に含めることができる。
【０１６３】
コントローラ２００６は第１のＥＣＣ符号化済みデータ２０６０（第１のグループ２０５０と第１のグループ２０５０に対応する第１の誤り訂正符号化（ＥＣＣ）パリティビット）をＭＬＣメモリ２００４に送信するように構成され、第１のＥＣＣ符号化済みデータ２０６０はＭＬＣメモリ２００４の物理ページ内にある第１の論理ページ（例えば、上位ページ）に蓄積される。コントローラ２００６は第２のＥＣＣ符号化済み成形済みデータ２０６２と第３のＥＣＣ符号化済み成形済みデータ２０６４をＭＬＣメモリ２００４に送信するように構成され、第２のＥＣＣ符号化済み成形済みデータ２０６２と第３のＥＣＣ符号化済み成形済みデータ２０６４はＭＬＣメモリ２００４の物理ページ内にある第２の論理ページ（例えば、中間ページ）と第３の論理ページ（例えば、下位ページ）にそれぞれ蓄積される。
【０１６４】
図２１は、ページ信頼度に基づき成形冗長性を用いて成形されたデータを復元するシステムを示し、例えばシステムは図２０のシステムによって符号化され蓄積されたデータを読み出して復号化する。システム２１００はホスト装置２１３０に作動可能な状態で結合されるように構成されたデータ蓄積装置２１０２を含む。データ蓄積装置２１０２は、コントローラ２１０６に結合されたメモリ２１０４（例えば、フラッシュＭＬＣメモリ）を含む。メモリ２１０４は、蓄積素子２１２０（例えば、フラッシュＭＬＣセル）を含み、かつ１つ以上の蓄積素子群（例えば、代表的な群２１２２（例えば、ＭＬＣワード線））を含む。コントローラ２１０６はＥＣＣエンジン２１１０と成形デコーダ２１０８とを含む。データ蓄積装置２１０２とホスト装置２１３０は図２０のデータ蓄積装置２００２とホスト装置２０３０にそれぞれ相当し得る。
【０１６５】
ＭＬＣメモリ２１０４の代表的な３ビットＭＬＣワード線２１４０は、コントローラ２１０６によって読み出される上位ページ、中間ページ、および下位ページを有するものとして示されている。コントローラ２１０６は、ＭＬＣメモリ２１０４の物理ページ内にある第１の論理ページ（例えば、３ビットＭＬＣワード線２１４０の上位ページ）から、第１のデータ（データ１）の第１の表現２１６０と第１のＥＣＣパリティビット（ＥＣＣパリティ１）を取り出すように構成される。コントローラ２１０６は、ＭＬＣメモリの物理ページ内にある第２の論理ページ（例えば、３ビットＭＬＣワード線２１４０の中間ページ）から、第２の成形済みデータ（データ２および成形パリティ２）の第２の表現２１６２と第２のＥＣＣパリティビット（ＥＣＣパリティ２）を取り出すように構成される。コントローラ２１０６は、ＭＬＣメモリの物理ページ内にある第３の論理ページ（例えば、３ビットＭＬＣワード線２１４０の下位ページ）から、第３の成形済みデータ（データ３および成形パリティ３）の第３の表現２１６４と第３のＥＣＣパリティビット（ＥＣＣパリティ３）を取り出すように構成される。
【０１６６】
表現２１６０〜２１６４は、説明のために３ビットＭＬＣワード線２１４０の論理ページの斜線が引かれた部分として示された１つ以上のビット誤りを含み得る。コントローラ２１０６は、第１のデータ２１５０を復元するため、ＥＣＣエンジン２１１０で第１の表現２１６０の第１のＥＣＣ復号化操作２１１２を開始するように構成される。コントローラ２１０６は、第２の成形済みデータ２１５６を復元しかつ第３の成形済みデータ２１５８を復元するため、第２の表現２１６２と第３の表現２１６４の第２のＥＣＣ復号化操作２１１４を開始するように構成され得る。
【０１６７】
コントローラ２１０６は、第２のデータ２１５２を生成しかつ第３のデータ２１５４を生成するため、第２の成形済みデータ２１５６と第３の成形済みデータ２１５８に対して成形復号化操作を開始するように構成される。第２のデータ２１５２は第２の成形済みデータ２１５６より少ないビットを有し、第３のデータ２１５４は第３の成形済みデータ２１５４より少ないビットを有する。成形復号化操作は成形デコーダ２１０８で遂行され、第２のデータ２１５２でビット値の均一確率分布を形成し、かつ第３のデータ２１５４でビット値の均一確率分布を形成するように構成される。コントローラ２１０６は、第１のデータ２１５０と、第２のデータ２１５２と、第３のデータ２１５４をユーザデータ２１３２としてホスト装置２１３０に提供するように構成される。
【０１６８】
上位ページは中間ページおよび下位ページより高い誤り率を有するため、第１のＥＣＣパリティは第２のＥＣＣパリティより多くのビットを含み、かつ第３のＥＣＣパリティより多くのビットを含んでいる。例えば、第１のＥＣＣパリティは第１の表現２１６０で第１の数までの誤りの訂正を可能にし、第２のＥＣＣパリティは第２の表現２１６２で第２の数までの誤りの訂正を可能にし、第１の数は第２の数より大きい。低信頼度の上位ページのために多くのパリティを提供し、高信頼度の中間ページのために少ないパリティを提供することにより、第１の表現２１６０における誤り数が第１の数を上回る第１の確率は、第２の表現２１６２における誤り数が第２の数を上回る第２の確率に概ね等しい。このため、中間および下位論理ページで訂正不能の誤りが起こる見込みは上位論理ページと同じであり、パリティの低減によってできるワード線の余分なスペースはデータを成形するために使用でき、ＭＬＣメモリ２１０４でウェアリングおよび／またはプログラムディスターブ現象は軽減される。
【０１６９】
図２２は、ページ信頼度に基づき成形冗長性を用いてデータを書き込む方法の特定の実施形態を示す。データを書き込むこの方法はフラッシュマルチレベルセル（ＭＬＣ）メモリを備えるデータ蓄積装置で遂行され得る。例えば、この方法を図２０のコントローラ２００６によって遂行してもよい。
２２０２では、第１のビットグループと第２のビットグループとを含むデータが受信される。例えば、第１のビットグループは図２０の第１のデータ２０５０であり、第２のビットグループは第２のデータ２０５２であり得る。
【０１７０】
２２０４では、第３のビットグループを生成するために第２のビットグループに対して成形符号化操作が開始される。例えば、第３のビットグループは図２０の第２の成形済みデータ２０５６である。第３のビットグループは第２のビットグループより多くのビットを有する。成形符号化操作は第３のビットグループでビット値の不均一確率分布を形成するように構成される。
【０１７１】
２２０６では、第１のビットグループと第１のビットグループに対応する第１の誤り訂正符号化（ＥＣＣ）パリティビット（例えば、図２０の第１のＥＣＣ符号化済みデータ２０６０）がＭＬＣメモリの物理ページ内にある第１の論理ページに蓄積され、第３のビットグループと第３のビットグループに対応する第２のＥＣＣパリティビット（例えば、図２０の第２のＥＣＣ符号化済み成形済みデータ２０６２）はＭＬＣメモリの物理ページ内にある第２の論理ページに蓄積される。
【０１７２】
第１の論理ページには第１の誤り率が対応付けられ、第２の論理ページには第１の誤り率より低い第２の誤り率が対応付けられる。第１のＥＣＣパリティビットは第２のＥＣＣパリティビットより多くのビットを含んでいる。例えば、図２０の３ビットＭＬＣワード線２０４０の上位論理ページにあるＥＣＣパリティ１は中間論理ページにあるＥＣＣパリティ２より多くのビットを含んでいる。
【０１７３】
ＥＣＣパリティビットは、それぞれの論理ページがほぼ等しい訂正不能誤り尤度を有するよう決定される。例えば、第１のＥＣＣパリティビットは第１の論理ページで第１の数までの誤りの訂正を可能にし、第２のＥＣＣパリティビットは第２の論理ページで第２の数までの誤りの訂正を可能にする。第１の論理ページにおける誤り数が第１の数を上回る第１の確率は、第２の論理ページにおける誤り数が第２の数を上回る第２の確率に概ね等しい。
【０１７４】
一部の実施形態において、成形符号化操作はＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、ＭＬＣメモリの物理ページの各セルが最低状態にプログラムされる尤度を減少させる。一部の実施形態において、成形符号化操作はＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、ＭＬＣメモリの物理ページの各セルが最高状態にプログラムされる尤度を減少させる。ＭＬＣセルが最低状態（例えば、表５の「Ｅｒ」）および／または最高状態（例えば、表５の「Ｇ」）にプログラムされる尤度を減少させることにより、ＭＬＣセルのセルウェアリングは減り、ＭＬＣメモリの耐用寿命は延び得る。
【０１７５】
図２３は、ページ信頼度に基づき成形冗長性を用いて成形されたデータを読み出す方法の特定の実施形態を示す。データを読み出すこの方法は、フラッシュマルチレベルセル（ＭＬＣ）メモリを備えるデータ蓄積装置で遂行され得る。例えば、この方法を図２１のコントローラ２１０６によって遂行してもよい。
【０１７６】
２３０２では、ＭＬＣメモリの物理ページ内にある第１の論理ページで第１のビットグループの第１の表現と第１のＥＣＣパリティビットを取り出し、かつ第３のビットグループの第２の表現と第２のＥＣＣパリティビットを取り出すために、蓄積素子群が読み出される。取り出される第２の表現はＭＬＣメモリの物理ページ内にある第２の論理ページにある。例えば、図２１のＭＬＣメモリ２１０４から第１の表現２１６０と第２の表現２１６２が読み出される。
【０１７７】
２３０４では、第１のビットグループを復元するために第１の表現の第１のＥＣＣ復号化操作が開始される。例えば、第１のＥＣＣ復号化操作は図２１の第１の復号化操作２１１２であり得る。
２３０６では、第３のビットグループを復元するために第２の表現の第２のＥＣＣ復号化操作が開始される。例えば、第２のＥＣＣ復号化操作は図２１の第２の復号化操作２１１４であり、この第２の復号化操作２１１４はＥＣＣパリティ１を使用してデータ１を復号化する第１の復号化操作２１１２より少ないパリティビット（例えば、ＥＣＣパリティ２）を使用してより長いワード（例えば、データ２および成形パリティ２）を復号化する。
２３０８では、第２のビットグループを生成するために第３のビットグループに対して成形復号化操作が開始される。第３のビットグループは第２のビットグループより多くのビットを有する。成形復号化操作は第２のビットグループでビット値の均一確率分布を形成するように構成される。
【０１７８】
第１の論理ページには第１の誤り率が対応付けられ、第２の論理ページには第１の誤り率より低い第２の誤り率が対応付けられる。したがって、第１のＥＣＣパリティビットは第２のＥＣＣパリティビットより多くのビットを含み得る。第１のＥＣＣパリティビットは第１の表現で第１の数までの誤りの訂正を可能にし、第２のＥＣＣパリティビットは第２の表現で第２の数までの誤りの訂正を可能にする。このため、第１の表現における誤り数が第１の数を上回る第１の確率は、第２の表現における誤り数が第２の数を上回る第２の確率に概ね等しい。
【０１７９】
ソフトビット
１ページの読み出し中に検知操作数を減らすためにＭＬＣワード線の各ページを別々に読み出す方法が開示される。例えば、１つのコードワードのデータが複数のラッチに位置付けられるインターリーブ蓄積方式では複数のラッチからコントローラへデータが転送されるが、データは副生成物としてフラッシュメモリの１つのラッチからコントローラへ送信され得る。検知時間が節減されるばかりでなく、コントローラがフラッシュメモリへ「カラム変更」コマンドを送信することによって生じる遅延と、フラッシュメモリによるカラム変更コマンドの実行によって生じる遅延も解消され得る。このため、（連続メモリアドレスの順次読み出しとは対照的に）ランダム読み出しのときにはインターリーブ方式に比べて読み出し待ち時間を短縮できる。
【０１８０】
読み出し待ち時間の短縮は検知時間の短縮によって達成され得る。フラッシュメモリの信頼度がウェアによって低下する場合でも、（ＭＬＣ物理ページにある全ての論理ページを読み出す場合とは対照的に）単一の論理ページを読み出してデータを取り出す能力は維持され得る。
【０１８１】
フラッシュメモリが高い分解能で読み出される場合は、ソフト入力デコーダの訂正能力を向上させることができる。ソフトビット（ＳＢ）情報と呼ばれる高分解能データは各フラッシュメモリセルのアレイから読み出される。電圧分解能が改善される（例えば、読み出ししきい値電圧がより精密に推定される）と、読み出し分解能を表すのに必要なソフトビットの数は増える。その結果、高い読み出し分解能を利用してデコーダの訂正能力を向上させるため、より多くの検知操作が遂行され、より多くのデータバイトがフラッシュメモリのラッチからコントローラへ転送され得る。コントローラへ転送されるデータと検知操作が増えるとランダム読み出しが遅くなり、フラッシュメモリの読み出し処理能力は低下し得る。
【０１８２】
しかし、ソフトビットを使用してランダム読み出しが遂行される場合は、訂正能力に多大な影響を及ぼすことなく、検知操作数と転送時間が削減され得る。フラッシュメモリは引き続きページ単位読み出しで操作され、ソフトビットはページごとに別々に取得される。例えば、表５に示されたマッピングを使用する場合、それぞれの論理ページ（下位／中間／上位）は別々に読み出すことができ、高い読み出し分解能を利用することでソフト入力デコーダの訂正能力は高くなる。
【０１８３】
アプリケーションがランダム読み出しの合間に１セットの順次読み出し操作を要求する場合（例えば、ソリッドステートドライブ（ＳＳＤ）アプリケーションで少なくとも１ワード線全体を占める大きいファイルが読み出される場合）、ページ単位読み出しと同じ訂正能力が順次読み出しで維持されると仮定すると、セルを読み出す度にフラッシュメモリからコントローラへ送信されるソフトビットの数は減る。ソフトビット数を減らす方法は、ソフトビットが均一でない電圧領域／区間を表す場合にとりわけ有用である。特定の実施形態では順次読み出しとページ単位読み出しで同じソフトビットパターンが維持されるため、ソフト入力デコーダの初期化テーブルを簡略化でき、順次読み出しとページ単位読み出しで異なるソフトビットパターンを使用する場合に比べて、両方のモードを含むシステムの実施例を簡素化できる。
【０１８４】
ＭＬＣアレイのフラッシュメモリセルから高い分解能を読み出す従来のシステムは多くの場合、全てアレイページのデータを取得する。例えば、１セル当たり３ビット（３−ＢＰＣ）読み出し方式のＭＬＣフラッシュメモリの場合は、２つのソフトビットを取得するために７つの読み出ししきい値の各々につきさらに２つの検知操作が必要となり得る。（７つの読み出ししきい値の各々につき）第１の検知操作は読み出ししきい値より僅かに低い読み出し電圧で行われ、第２の検知操作は読み出ししきい値より僅かに高い読み出し電圧で行われる。コントローラで高分解能情報を取得するには１セット２１回の検知操作が使用され得る。３−ＢＰＣの例でデータを復号化するには合計５つのページがフラッシュメモリからコントローラへ送信され得る。５つのページはハードビット（ＨＢ）のための３ページとソフトビットのための２ページとを含む。２１のしきい値は２２の電圧区間を規定し、２２通りの区間を区別するには５ビット以上が必要であるため、５つのページが使用される。２２のオプション（図２８に示された２１のしきい値によって規定される２２の電圧区間）は各セルの電圧帯域を表す。それぞれのコードワードがただ１つの論理ページに位置付けられるようにデータを蓄積する場合、論理ページのいずれか１つだけが必要な場合でも、コントローラへ送信されるデータは全３つの論理ページを復号化するにあたって十分なビットを含む。
【０１８５】
特定の実施形態において、電圧窓の中で各セルが位置する正確な電圧帯域に関する情報は無視され、状態内における読み出ししきい値の位置に関する情報は保持される。読み出し状態の電圧帯域は電圧領域に分割され、「状態の中央」付近で電圧しきい値により読み出されるセルは信頼度が高いとみなされ、隣接する状態が重なり合う部分に近い領域で読み出されるセルは信頼度が低いとみなされる。セルの隣接する状態が重なり合う領域に電圧区間（複数の電圧帯域を含む）が近いほど、当該セルのビットの信頼度の低下は甚だしくなる。
【０１８６】
図２４は、表５に記載されたマッピングによる上位ページの一実施形態２４００を示し、ここで各状態につき３つの信頼度区間が規定されている。第１の表２４０２は論理ページの状態（Ｅｒ〜Ｇ）と、各状態に対応するハードビット（ＨＢ）と、追加の検知されるビット（Ｓ１〜Ｓ４）を示している。検知Ｓ１はハードビットを生成するために使用される読み出し電圧より僅かに低い読み出し電圧で遂行される。このため、０から１への遷移と１から０への遷移はハードビットの遷移より僅かに低い（左寄り）。検知Ｓ２はハードビットを生成するために使用される読み出し電圧より僅かに高い読み出し電圧で遂行される。このため、０から１への遷移と１から０への遷移はハードビットの遷移より僅かに高い（右寄り）。検知Ｓ３はＳ１より僅かに低い読み出し電圧で遂行される。このため、０から１への遷移と１から０への遷移はＳ１の遷移より僅かに低い（左寄り）。検知Ｓ４はＳ２より僅かに高い読み出し電圧で遂行される。このため、０から１への遷移と１から０への遷移はＳ２の遷移より僅かに高い（右寄り）。第２の表２４０４は検知されたビットＳ１〜Ｓ４を用いて生成されるソフトビットＳＢ１〜ＳＢ２を示す。２つのソフトビットＳＢ１、ＳＢ２は信頼度情報を含み、２つのソフトビットのみを使用する場合は、４つの検知Ｓ１〜Ｓ４を使用する場合に比べて、ソフト低密度パリティ検査（ＬＤＰＣ）デコーダの性能に影響を及ぼさない。また、各遷移点の周りの５つの検知は電圧範囲全体を１６のセクションに分割するため、原則として５つの検知は第１の表２４０２に示されたように５つのページではなく４つのページにマップされる。第３の表２４０６は上位ページを読み出した後にコントローラへ送信されるデータ（ＨＢ、ＳＢ１、ＳＢ２）を示す。
【０１８７】
図２４では上位ページのみが読み出され、上位ページの２つのソフトビットはフラッシュメモリのラッチで生成され、コントローラへ転送され、デコーダによって処理される。セルから読み出される５つのビット（ＨＢ、Ｓ１、Ｓ２、Ｓ３、Ｓ４）ではなく３つのページ（ＨＢ、ＳＢ１、およびＳＢ２）がフラッシュメモリからコントローラへ転送される。読み出されるセルの正確な電圧帯域に関する情報は失われる。ただし、正確な電圧帯域に関する情報が保持される方式に比べて上位ページにあるコードワードの訂正能力におよぶ影響は僅かである。ソフトビットを含む１つの論理ページを読み出す場合は、ソフトビットを含む全ての論理ページ（例えば、上位、中間、下位）を読み出す従来のシステムに比べて検知操作数を３５回から１５回に減らすことができる。例えば、ハードビットは７回の検知操作（８つの状態Ｅｒ、Ａ・・・Ｇの各々につき１回の検知操作）ではなく３回の検知操作（ＡおよびＢ間の遷移で１回、ＣおよびＤ間の遷移で１回、ＥおよびＦ間の遷移で１回の検知操作）で読み出すことができる。
【０１８８】
４つのページＳ１〜Ｓ４ではなく２つのソフトビットページＳＢ１およびＳＢ２を転送する場合、誤り訂正能力におよぶ影響は非常に小さい。例えば、上位ページでコードワードに割り当てられるパリティが１０％あたりである場合、誤り訂正能力の低下は従来の方式に比べてセル誤り率（ＣＥＲ）にして０．２％未満である。ＢＩＣＭデコーダでの理論的訂正能力（シャノン限界）はＣＥＲにして４％を上回ることがある。検知操作とデータ転送による総合遅延の低減で観た利得は比較的大きいが、システムの訂正能力の損失は比較的小さい。総合遅延の低減から得られる性能利得は、この特定の実施形態で約２倍に達する検知操作の利得と、この特定の実施形態で４０％になるフラッシュメモリからコントローラへ転送されるデータページ数の低減で観た利得を含む。ランダム読み出しが主な動作モードとなる用途向けに設計されたフラッシュメモリの場合、利得は相当なものとなる。
図２４の方式でソフトビットパターン「１０」によって示された中信頼度はある１つの電圧領域（または電圧区間グループ）からなり、この電圧領域は６通りの電圧帯域からなるため、中信頼度ソフトビットパターン「１０」を得ることで特定のセルの正確な電圧帯域は判明しない。ただし、ソフト入力デコーダが上位ページに位置付けられたコードワードを復号化するには電圧領域（または電圧区間グループ）情報で十分であり、訂正能力の損失はごく僅かである。
【０１８９】
実際の状態情報が失われる図２４に示すソフトビット方式のもう１つの利点は、フラッシュメモリアレイの内部でスクランブラ／デスクランブラを作動できることである。この場合は、論理ページから読み出されるハードビットだけにデスクランブラが適用され、ソフトビットは読み出されたままコントローラに送信される（例えば、ソフトビットはデスクランブルしない）。図２４のソフトビット方式に従ってデータを読み出すように構成されたデータ蓄積装置の一例は図３０に示されている。
【０１９０】
図２４に提示された２つのソフトビットの場合の方式に類似する方式が図２５の１つのソフトビットの場合に提供される。図２５は、上位ページのページ単位２〜ＳＢ読み出し信頼度設定の一実施形態を示す。第１の表２５０２は状態と、検知されるハードビット（ＨＢ）と、追加の検知されるビット（Ｓ１、Ｓ２）とを示す。第２の表２５０４は論理演算ＮＯＴ（Ｓ１  ＸＯＲ  Ｓ２）によって生成されるソフトビット値を示す。第３の表２５０６はコントローラへ送信されるソフトビット値とハードビット値のマッピングを示す。
【０１９１】
一部のアプリケーションコマンドではワード線全体が読み出される。図２６で詳述するように、ページ単位読み出しと同じ分解能を得るには３５の検知操作が使用され得る。ただし、ワード線全体が読み出されるため、３５の検知操作は図２４に示されているように上位ページで３つの検知操作（ならびにコントローラからの単一コマンドにつき下位および中間ページで２つの検知操作）の代わりに７つの検知操作からなるセットでシフトをともなう。
【０１９２】
検知操作セットの最初の検知操作には各コマンドにつき７つの検知操作を使用する同じコマンドで連続検知操作より時間がかかるため、検知時間の全面的削減が達成され得る。セルのコントロールゲートに印加される電圧を設定するために検知回路内のコンデンサが充電され、検知増幅回路が始動されるため、各コマンドにおける最初の検知操作には後続の検知操作より時間がかかる。
【０１９３】
図２６は、検知方式の一実施形態２６００を示し、セル状態分布（Ｅｒ、Ａ・・・Ｇ）とハードビットのしきい値読み出し電圧（例えば、電圧ＡＲ、ＢＲ・・・ＧＲ）と追加検知済みビットのしきい値読み出し電圧（例えば、電圧ＡＲ−ΔＲ、ＡＲ＋ΔＲ）の図式表現２６０２を含む。第１の表２６０４は、隣接しきい値読み出し電圧間の各電圧区間から３つのハードビット（ＨＢ１、ＨＢ２、ＨＢ３）と３つの検知済みソフトビット（Ｓ１、Ｓ２、Ｓ３）とを含む１セット６ビットへのマッピングを示す。第２の表２６０６は、各電圧区間から検知済みソフトビットに対して論理演算を遂行した後にコントローラへ送信される１セット５ビットへのマッピングを示す。
【０１９４】
図２６に示す検知方式は、セルが位置する電圧帯域を表す１セル当たり６ビットからなるパターンを含んでいる。メモリ内のラッチからコントローラへ１セル当たり６ビットを転送する代わりに、表２６０４でＳ２およびＳ３として示された最後の２つの行は１ページのソフトビットデータにまとめることができる。それには図２７に示すようにフラッシュメモリラッチの内部でＮＯＴ｛ＸＯＲ（Ｓ２、Ｓ３）｝セル単位演算を使用し、その結果をコントローラへ転送する。図２７に示すように、図２６の表２６０４のビットＳ１、Ｓ２、Ｓ３の第１の表２７０２はＮＯＴ｛ＸＯＲ（Ｓ２、Ｓ３）｝演算２７０４によってマップされ、図２６の表２６０６のソフトビットＳＢ１およびＳＢ２に対応する第２の表２７０６に示されたソフトビットＳＢ１およびＳＢ２が生成される。
【０１９５】
図２６のソフトビット生成はハードビット生成から独立させることができる。その結果、ソフトビットはハードビットを提供するために使用されるラッチと同数のラッチまたはそれよりも少ないラッチで生成され得る。例えば、図２６のソフトビット生成には従来のフラッシュメモリと同数のラッチが使用され得る。図２７は（複数の電圧帯域からなる）高信頼度、中信頼度、および低信頼度電圧領域と代表的なビットパターン１１、１０、および００を示している。これらのパターン（図２７）は図２４に示されたページ単位読み出しで得られるビットパターンに一致する。図２７のＳ２およびＳ３は図２６のＳ２およびＳ３に相当する。図２４はページ単位読み出しに相当し、図２７は順次読み出しに相当するが、図２７のＳＢ１およびＳＢ２は図２４のビットと同じ信頼度を表している。
【０１９６】
図２６のハードビットマッピング（上位ページ）は図２４の上位ページハードビットのマッピングと異なるが、ソフトビットページはハードビットページとは別に読み出されるため、ソフトビットの表現は同じままである。したがって、ソフトビットは特定のマッピング方式から独立して読み出される。
【０１９７】
図２７の方式を従来の読み出し方式に比較すると、図２７の方式では６つのページではなく５つのページがコントローラからフラッシュメモリへ転送されるため、１６％の転送時間の削減になる。ただし、ワード線全体のデータが必要とされる場合にページ単位手順が選ばれる場合、９つのページを転送（例えば、３５の検知操作を遂行、各論理ページにつき３ページ（１つのＨＢと２つのＳＢ）を転送、全部で３×３＝９ページを転送）する代わりに５つのページだけが計算され、約４４％の転送時間の削減になる。
【０１９８】
また、ソフト入力信頼度とソフトビットパターンで同じ変換を使用してコントローラでデコーダを作動させるときに、２つのソフトビットからなる同じセットは全ての３つの論理ページ（上位、中間、下位）に対応できる。このため、それぞれの論理ページを別々に復号化するように設定されたソフト入力デコーダの設計と実施例は簡素化され得る。
【０１９９】
ただ１つのソフトビットが提供される場合にも概ね同様のアプローチを使用できる（例えば、２つのソフトビットではなく１つのソフトビットによる操作が可能な信頼性の高いフラッシュメモリ状態）。図２８は、１つのソフトビットを提供する一実施形態２８００を示す。電圧区間ｖ１〜ｖ２２の図式表現２８０２は蓄積素子の状態（例えば、Ｅｒ、Ａ・・・Ｇ）と状態間の領域に対応している。第１の表２８０４は検知されるハードビット（ＨＢ１、ＨＢ２、ＨＢ３）とソフトビット（Ｓ１、Ｓ２）のマッピングを示す。第２の表２８０６はコントローラへ送信される単一のソフトビット（ＳＢ）とハードビットのマッピングを示す。図２９はＮＯＴ｛ＸＯＲ（Ｓ１，Ｓ２）｝演算２９０４によって２つの検知済みソフトビット２９０２から１つのソフトビット２９０６（例えば、図２８のＳＢ）を生成する一実施形態２９００を示す。
【０２００】
図２８〜２９は、図２６〜２７の２つのソフトビットと同様に１つのソフトビットを読み出す方式を示している。図２８〜２９の方式はページ単位読み出しと同じソフトビットマッピングを提供するほか（例えば、図２５と図２９のソフトビットは同じマッピングを有する）、ハードビットおよびソフトビット読み出しおよび生成の独立性を提供する。例えば、全てのハードビットにつき一貫性のある方法でソフトビットが読み出され、生成され得る。
【０２０１】
１つのソフトビットと２つのソフトビットを含む図２４〜２９の例は制限するものではなく、説明を容易にするために提示されている。重複領域ごとの検知操作数が奇数である場合は、１セル当たり任意の数のビットおよびソフトビットに同じ方法または類似する方法を適用できる。例えば、１セル当たり２ビットの実施例では、９回の検知操作は１つのハードビットと１つのソフトビットの生成を可能にし、１５回の検知操作は１つのハードビットと２つのソフトビットの生成を可能にし、２１回の検知操作は１つのハードビットと３つのソフトビットの生成を可能にする。１セル当たり４ビットの場合、４５回の検知操作は１つのハードビットと１つのソフトビットの生成を可能にし、７５回の検知操作は１つのハードビットと２つのソフトビットの生成を可能にする。偶数または奇数であり、均一または不均一である任意のＳＢしきい値検知を使用する一般的な場合において、開示されたページ単位ソフトビット読み出しの実施形態は引き続き有効であるが、ページ単位読み出しと順次読み出しに共通のソフトビットパターン表現を使用できる保証はない可能性がある。ソフトビットのみをページ単位で読み出すことは選択される検知操作の数から独立している場合がある。
【０２０２】
図３０は、ホスト装置３０３０に作動可能な状態で結合できるデータ蓄積装置３００２を含むシステム３０００の特定の実施形態を示す。データ蓄積装置３００２はコントローラ３００６に結合されたメモリ３００４（例えば、ＮＡＮＤフラッシュメモリ）を含む。コントローラ３００６はソフト入力誤り訂正符号化（ＥＣＣ）デコーダ３０２８を含む。メモリ３００４は蓄積素子３０２０と、読み出し回路３００８と、ラッチ３０１０と、ソフトビット回路３０１２とを含む。ソフトビット回路３０１２は、データ蓄積装置３００２が図２４〜２９に示された方式のいずれか１つ以上を適用することを可能にする。
【０２０３】
データ蓄積装置３００２はメモリカードであってよく、例えばＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ＳＤ（登録商標）カード、ｍｉｃｒｏＳＤ（登録商標）カード、ｍｉｎｉＳＤ（ＴＭ）カード（デラウェア州ウィルミントンのSD-3C LLCの商標）、ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＴＭ）（ＭＭＣ（ＴＭ））カード（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、またはＣｏｍｐａｃｔＦｌａｓｈ（登録商標）（ＣＦ）カード（カリフォルニア州ミルピタスのサンディスク  コーポレイションの商標）であってよい。別の例として、データ蓄積装置３００２はホスト装置３００２に組み込まれたメモリであってよく、例えば説明的な例として、ｅＭＭＣ（登録商標）（バージニア州アーリントンのJEDEC Solid State Technology Associationの商標）、およびｅＳＤであってよい。
【０２０４】
メモリ３００４は１群３０２２の蓄積素子３０２０を含む複数の蓄積素子３０２０を含む。例えば、蓄積素子３０２０はＭＬＣセルを含み得る。具体的に説明すると、メモリ３００４はマルチレベルセル（ＭＬＣ）フラッシュメモリを含み、１群３０２２の蓄積素子３０２０はＭＬＣワード線であり得る。
【０２０５】
ラッチ３０１０は、１群３０２２の蓄積素子３０２０（例えば、ＭＬＣワード線）から読み出されたデータをラッチする働きをする。例えば、データ蓄積装置３００２は図２６のソフトビット方式を実施し、１つのラッチ３０１０はＨＢ１のデータを蓄積し、第２のラッチ３０１０はＨＢ２のデータを蓄積し、第３のラッチ３０１０はＨＢ３のデータを蓄積し、第４のラッチ３０１０はＳ１のデータを蓄積し、第５のラッチ３０１０はＳ２のデータを蓄積し、第６のラッチはＳ３のデータを蓄積する。
【０２０６】
ソフトビット回路３０１２は、データ３０４２としてコントローラ３００６へ転送するソフトビットの合計数を減らすため、ラッチ３０１０で１つ以上の論理演算を用いてソフトデータビットを操作する働きをする。例えば、ソフトビット回路３０１２は、２つのラッチのデータに対してＸＯＲ演算を適用してソフトビットデータを生成し、例えばＮＯＴ｛ＸＯＲ（Ｓ０，Ｓ１）｝演算を適用してソフトビットＳＢ１を生成し、ＮＯＴ｛ＸＯＲ（Ｓ２，Ｓ３）｝演算を適用してソフトビットＳＢ２を生成する。ソフトビット回路３０１２はコントローラ３００６からの制御情報３０４０に応じてラッチ３０１０にあるデータに対して１つ以上の追加の論理演算を適用することができ、１つ以上の追加論理演算から得られたデータをコントローラ３００６に提供する。具体的に説明すると、群３０２２の第１の論理ページにあるデータを所望する第１の要求に応じて、読み出し回路３００８は読み出したデータをラッチ３０１０に入れ、ソフトビット回路３０１２はＳＢ１データを生成し、コントローラ３００６にはＨＢおよびＳＢ１データが送信される。（例えば、ＨＢおよびＳＢ１データを使用してＥＣＣ復号化に失敗した場合）群３０２２の同じ論理ページの追加のソフトビットデータを所望する第２の要求に応じて、ソフトビット回路３０１２はＳＢ２データを生成し、ＳＢ２データをコントローラ３００６へ送信し得る。
【０２０７】
読み出し回路３００８は、１群３０２２の蓄積素子からハードビットおよびソフトビットデータを検知するため、群３０２２に読み出ししきい値電圧を印加する働きをし得る。例えば、読み出し回路３００８は１セットの読み出し電圧を決定し、それぞれの読み出し電圧を１群３０２２の蓄積素子に印加し、ハードまたはソフトビット値を判断し得る（例えば、ＮＡＮＤフラッシュセルのゲートに読み出し電圧を印加し、読み出ししきい値がＮＡＮＤフラッシュセルのしきい値電圧を上回るか否かを判断する）。
【０２０８】
一例として、既知の割合で充電できるコンデンサを読み出し電圧を印加するために使用できる。コンデンサが充電されて初期電圧（例えば、図２６の電圧ＡＲ）に達すると、群３０２２が検知され、その後充電時間に従ってさらなる検知操作が遂行され得る。具体的に説明すると、コンデンサは既知の充電時間後に電圧ＡＲから電圧ＢＲまで充電され、かつ同じ既知の充電時間後に電圧ＢＲから電圧ＣＲまで充電され得る。ハードビットは、コンデンサが初期検知値（例えば、電圧ＡＲ）から最終検知値（例えば、電圧ＧＲ）まで充電される第１の検知操作セットのときに生成され得る。ソフトビットは１つ以上の他の検知操作セット（例えば、電圧ＡＲ−ΔＲから電圧ＧＲ−ΔＲまでの検知操作セットと、電圧ＡＲ＋ΔＲから電圧ＧＲ＋ΔＲまでの別の検知操作セット）のときに検知され得る。
【０２０９】
群３０２２で全てのハードビットを読み出す順次読み出しが行われる場合、読み出し回路３００８は図２６に示された全ての基準電圧（例えば、電圧ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、電圧ＡＲ−ΔＲ、ＢＲ−ΔＲ、ＣＲ−ΔＲ・・・ＧＲ−ΔＲ、電圧ＡＲ＋ΔＲ、ＢＲ＋ΔＲ、ＣＲ＋ΔＲ・・・ＧＲ＋ΔＲ、電圧ＡＲ−２ΔＲ、ＢＲ−２ΔＲ、ＣＲ−２ΔＲ・・・ＧＲ−２ΔＲ、および電圧ＡＲ＋２ΔＲ、ＢＲ＋２ΔＲ、ＣＲ＋２ΔＲ・・・ＧＲ＋２ΔＲ）で検知を遂行し得る。ただし、単一の論理ページ（例えば、ＨＢ２の論理ページ）を読み出す要求がメモリ３００４で受信される場合、読み出し回路３００８は全ての基準電圧より少ない基準電圧で検知を遂行し得る。例えば、ＨＢ２の読み出しには検知電圧ＢＲおよびＦＲを使用してもよいが、検知電圧ＡＲ、ＣＲ、ＤＲ、ＥＲ、およびＧＲは使用しない。
【０２１０】
通常、ハードビット読み出し電圧（ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ）は等間隔だが、ソフトビット読み出し電圧は均一に分散されず、ハードビット読み出し電圧を中心に配置される。ソフトビット読み出し電圧の配置を規定する差分電圧の値ΔＲは、ソフトビットデコーダの復号化能力を向上させるべく決定できる。
【０２１１】
メモリ３００４はスクランブラ／デスクランブラ３０５０をも含み得る。スクランブラ／デスクランブラ３０５０は、例えば線形フィードバックシフトレジスタの出力によりデータ値のＸＯＲ演算を適用することにより、蓄積素子３０２０に蓄積されるデータ値を修正するように構成された回路を含み得る。スクランブラ／デスクランブラ３０５０はまた、蓄積に先立ちスクランブルされたデータをデスクランブルするため、蓄積素子３０２０から読み出されたデータ値を修正するように構成され得る。
【０２１２】
メモリ３００４は作動中に群３０２２に蓄積されたデータを所望する要求を受信し得る。群３０２２の特定の蓄積素子３０２４（例えば、フラッシュＭＬＣワード線の代表的なメモリセル）に対応する１セットのビット３０２６がメモリ３００４で生成される。１セットのビット３０２６は特定の蓄積素子３０２４に蓄積された値に対応するビットとしてラッチ３０１０の１つ以上に蓄積できる。
【０２１３】
１セットのビット３０２６は１グループのしきい値電圧区間を指示する。例えば、１セットのビット３０２６は図２８の上位ページのハードビット（ＨＢ１）とソフトビットＳＢに相当し得る。具体的に説明すると、ビット「１１」からなるセットは図２８の電圧区間ｖ１、ｖ４、ｖ７、およびｖ１０からなるグループに相当し、ビット「１０」からなるセットは電圧区間ｖ２、ｖ３、ｖ５、ｖ６、ｖ８、ｖ９、およびｖ１１からなるグループに相当し得る。
【０２１４】
特定の蓄積素子３０２４のしきい値電圧はしきい値電圧区間グループ内のしきい値電圧区間のいずれか１つに相当する。例えば、特定の蓄積素子３０２４が図２８の電圧区間ｖ４（状態Ａ）内のしきい値電圧を有する場合、１セットのビット３０２６はしきい値電圧区間ｖ１、ｖ４、ｖ７、およびｖ１０からなるグループを指示する。しきい値電圧区間グループ内の少なくとも１つのしきい値電圧区間は、しきい値電圧区間グループ内にない介在しきい値電圧区間によってしきい値電圧区間グループ内の他のしきい値電圧区間から隔てられる。具体的に説明すると、しきい値電圧区間グループ内の区間ｖ１およびｖ４はしきい値電圧区間グループ内にない区間ｖ２およびｖ３によって隔てられている。
【０２１５】
１セットのビット３０２６は、読み出し要求に応じてラッチ３０１０内のデータを転送するときにデータ３０４２としてコントローラ３００６へ送信される。１セットのビット３０２６は、特定の蓄積素子に蓄積された値に相当する第１のハードビット（例えば、図２８のＨＢ１）と、蓄積された値の正しさを示す信頼度に相当する第１のソフトビット（例えば、図２８のＳＢ）とを含み得る。
【０２１６】
特定の蓄積素子３０２４はメモリ３００４の物理ページ内にあり、この物理ページは第１の論理ページと第２の論理ページ（例えば、図２８のＨＢ１を蓄積する論理ページとＨＢ２を蓄積する論理ページ）を含む。特定の蓄積素子３０２４の状態は複数のハードビットに相当し、この複数のハードビットは第１の論理ページに対応する第１のハードビットと第２の論理ページに対応する第２のハードビットとを含む。例えば、特定の蓄積素子３０２４は図２８に示された状態「Ａ」を有し、この状態「Ａ」は値「１」を有する第１のハードビットＨＢ１と値「１」を有する第２のハードビットＨＢ２とに相当する。
【０２１７】
１セットのビット３０２６は第１の論理ページを読み出す（例えば、図２８のＨＢ１を読み出す）要求に応じて生成され得る。具体的に説明すると、第１の論理ページを読み出す要求をメモリ３００４が受信する場合、１セットのビット３０２６は第１のハードビット（例えば、ＨＢ１）を含むが、第２のハードビット（例えば、ＨＢ２）を含まない。
【０２１８】
第１のハードビットと第１のソフトビットは、メモリ３００４から読み出されたデータのＥＣＣ復号化操作の一部としてソフト入力ＥＣＣデコーダ３０２８に提供される。第１のソフトビットはしきい値電圧がしきい値電圧区間グループのいずれかのしきい値電圧区間の中央領域内にあるか否かを指示し得る。例えば、図２８でＳＢ値「１」は、しきい値電圧が電圧範囲ｖ１、ｖ４、ｖ７、ｖ１０、ｖ１３、ｖ１６、ｖ１９、およびｖ２２のいずれか１つ内（すなわち、規定状態Ｅｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧのいずれか１つの中央領域）にあるが、隣接状態間の重複領域内にはないことを指示する。
【０２１９】
第１の蓄積済みデータを所望するコントローラ３００６からの第１の要求の受信に応じて、第１のビットセット３０２６がコントローラ３００６へ送信され得る。第１のビットセット３０２６をコントローラ３００６へ送信した後には、第１の蓄積済みデータに対応する追加の情報を所望する第２の要求がコントローラ３００６からメモリ３００４に届き得る。特定の蓄積素子３０２４に対応する第２のソフトビットがメモリ３００４で決定され得る。例えば、第１のビットセット３０２６が図２４のハードビット（ＨＢ）と最終マッピングソフトビット（ＳＢ１）に相当する場合、ＮＯＴ｛ＸＯＲ（Ｓ３，Ｓ４）｝演算を遂行することによって図２４の第２のソフトビットＳＢ２が生成され得る。
【０２２０】
第２のソフトビットは、しきい値電圧がしきい値電圧区間グループのいずれかの電圧区間の第２の領域内にあるか否かを指示する。具体的に説明すると、図２４のハードビット（ＨＢ）は状態Ｅｒ〜Ａで値「１」、状態Ｂ〜Ｃで値「０」、状態Ｄ〜Ｅで値「１」を有する。図２４のソフトビットＳＢ１は状態ＡおよびＢ間、状態ＣおよびＤ間、ならびに状態ＥおよびＦ間の遷移に最も近い電圧区間で値「０」を有する。各特定の電圧区間の第２の領域は当該電圧区間の中間点を概ね中心とし、第１の領域とは異なる。例えば、第２のソフトビットＳＢ２は、第１のソフトビットＳＢ１より状態ＡおよびＢ間の遷移から遠く、第１のソフトビットＳＢ１より状態ＣおよびＤ間の遷移から遠く、かつ第１のソフトビットＳＢ１より状態ＥおよびＦ間の遷移から遠い電圧区間内にしきい値電圧があることを指示する。復号化に役立つ追加の信頼度情報を提供するため、第２のソフトビット値はコントローラ３００６へ送信され得る。
【０２２１】
メモリ３００４は、信頼度を指示するため、順次読み出し操作のときと同じソフトビットパターンをページ単位読み出し操作のときに提供するように構成され得る。例えば、図２５のソフトビットパターンは第１のソフトビットＳＢ１を含み、この第１のソフトビットＳＢ１はページのハードビットの遷移に隣接する電圧区間で値「０」を有し（低信頼度）、他所で「１」を有する（高信頼度）。別の例として、図２７のソフトビットパターンは１セットのビットＳＢ１、ＳＢ２を含み、値「１１」は高信頼度を示し、値「１０」は中信頼度を示し、値「００」は低信頼度を示す。ソフトビットパターンは特定のビット・状態マッピング方式から独立し得る。例えば、図２５および図２７のソフトビットパターンのソフトビット値は特定のビット・状態マッピングに依存せず、状態間遷移への近接度に基づいて決定される。
【０２２２】
第１のハードビットにスクランブラ／デスクランブラ３０５０を適用することにより、かつ第１のソフトビットにスクランブラ／デスクランブラ３０５０を適用しないことにより、１セットのビットはメモリ３００４でデスクランブルされ得る。例えば、ハードビットは特定の蓄積素子３０２４の状態（または複数状態からなるグループ）を指示し、ソフトビットはハードビットの信頼度（例えば、蓄積素子３０２４がハードビット値の遷移にどれくらい近いか）を指示する。
【０２２３】
図３１は、ソフトビットを用いてデータを読み出す方法の一実施形態を示す。この方法を図３０のデータ蓄積装置３００２で遂行してもよい。３１０２では、メモリで特定の蓄積素子に対応する１セットのビットが生成される。１セットのビットは１グループのしきい値電圧区間を指示する。特定の蓄積素子のしきい値電圧はグループ内のしきい値電圧区間のいずれか１つに相当する。グループ内の少なくとも１つのしきい値電圧区間はグループ内にない介在しきい値電圧区間によってグループ内の他のしきい値電圧区間から隔てられる。
【０２２４】
３１０４では、１セットのビットがコントローラへ送信される。１セットのビットは特定の蓄積素子に蓄積された値に相当する第１のハードビットと、蓄積された値の正しさを示す信頼度に相当する第１のソフトビットとを含む。
特定の蓄積素子はメモリの物理ページ内にあり得る。物理ページは第１の論理ページと第２の論理ページとを含む。特定の蓄積素子の状態は複数のハードビットに相当し、この複数のハードビットは第１の論理ページに対応する第１のハードビットと第２の論理ページに対応する第２のハードビットとを含む。１セットのビットは第１の論理ページを読み出す要求に応じて生成され得る。具体的に説明すると、第１の論理ページを読み出す要求をメモリが受信する場合、１セットのビットは第１のハードビットを含むが、第２のハードビットを含まない。
【０２２５】
コントローラはソフト入力誤り訂正符号化（ＥＣＣ）デコーダを含み、第１のハードビットと第１のソフトビットはメモリから読み出されたデータのＥＣＣ復号化操作の一部としてソフト入力ＥＣＣデコーダに提供され得る。第１のソフトビットはしきい値電圧がしきい値電圧区間グループのいずれかのしきい値電圧区間の中央領域内にあるか否かを指示する。第１のビットセットは第１の蓄積済みデータを所望するコントローラからの第１の要求に応じてコントローラへ送信され得る。第１のビットセットをコントローラへ送信した後には、第１の蓄積済みデータに対応する追加情報を所望する第２の要求がコントローラからメモリにて受信され得る。
【０２２６】
第２の要求に応じて特定の蓄積素子に対応する第２のソフトビットがメモリで決定され得る。第２のソフトビットはしきい値電圧がしきい値電圧区間グループのいずれかの電圧区間の第２の領域内にあるか否かを指示する。各特定の電圧区間の第２の領域は当該電圧区間の中間点を概ね中心とすることができ、第２の領域は第１の領域と異なる。ソフト入力ＥＣＣ復号化に追加情報を提供するため、第２のソフトビット値はコントローラへ送信される。
【０２２７】
図に示された種々の構成品はブロック構成品として描かれ、一般的な用語で説明されているが、これらの構成品は、データ蓄積装置（例えば、図８のデータ蓄積装置８０２）がこれらの構成品またはその任意の組み合わせに関わる特定の機能を遂行することを可能にするように構成された１つ以上のマイクロプロセッサ、状態マシン、または他の回路を含んでよい。例えば、図８のコントローラ８０６は、素子群８２２でページ信頼度を修正するかまたは概ね均等化するため、ラッチ８１０にあるデータに対して論理演算を遂行することをマッピング回路８１２に命令する物理的構成品（例えば、コントローラ、状態マシン、論理回路、または他の構造）であってよい。
【０２２８】
コントローラ８０６は、マッピング回路８１２に命令する制御情報８４０を生成するようにプログラムされたマイクロプロセッサまたはマイクロコントローラを用いて実装されてよい。特定の実施形態において、コントローラ８０６はメモリ８０４に蓄積された命令を実行するプロセッサを含む。この代わりにまたはこれに加えて、プロセッサによって実行される実行可能な命令は、メモリ８０４とは別の独立したメモリ位置（例えば、読み出し専用メモリ（ＲＯＭ）（図示せず））に蓄積されてよい。
【０２２９】
特定の実施形態において、データ蓄積装置８０２は、１つ以上の外部装置に選択的に結合されるように構成された可搬型装置であってよい。ただし、別の実施形態において、データ蓄積装置８０２は、１つ以上のホスト装置（例えば、可搬型通信装置の筐体）の中に取り付けられるかまたは組み込まれてよい。例えば、データ蓄積装置８０２はパッケージされた機器（例えば、無線電話機、個人用携帯情報端末（ＰＤＡ）、ゲーム装置またはコンソール、可搬型ナビゲーション装置、または内部不揮発性メモリを使用する他の装置）の中にあってよい。特定の実施形態において、データ蓄積装置８０２は不揮発性メモリを含み、例えばフラッシュメモリ（例えば、ＮＡＮＤ、ＮＯＲ、マルチレベルセル（ＭＬＣ）、分割ビット線ＮＯＲ（ＤＩＮＯＲ）、ＡＮＤ、高容量結合比（ＨｉＣＲ）、非対称コンタクトレストランジスタ（ＡＣＴ）、または他のフラッシュメモリ）、消去可能でプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、ワンタイムプログラマブルメモリ（ＯＴＰ）、または他種のメモリを含む。
【０２３０】
ここに記載された実施形態の説明は種々の実施形態を全般的に理解するためのものである。本願明細書の開示から別の実施形態を導き出し利用することもでき、本願明細書に開示された範囲から逸脱することなく構造的および論理的に代替および変更を行うことはできる。本願明細書の開示は種々の実施形態の後続の改作または変形例を対象として含む。本願明細書の開示と図は制限的ではなく説明的とみなすべきものである。
【０２３１】
ここに開示された題材は制限的ではなく説明的とみなすべきものであり、添付の特許請
求の範囲は本願明細書に開示された範囲内にある修正、改良、および他の実施形態を対象
として含む。法律で許される最大限の範囲において、本発明の範囲は添付の特許請求の範
囲およびその同等物の最も広義な解釈によって決定され、前述した詳細な説明によって制
限または限定されない。
以下の項目は、国際出願時の特許請求の範囲に記載の要素である。
［項目１］
データを書き込む方法であって、
第１の物理ページと第２の物理ページとを含む複数の物理ページを備えるデータ蓄積装置で、
前記データ蓄積装置に蓄積されるデータページを受信するステップと、
第１の符号化済みデータを生成する符号化操作を開始して、前記データページを符号化するステップと、
前記第１の符号化済みデータの第１の部分を前記第１の物理ページに蓄積するステップと、
前記第１の符号化済みデータの第２の部分を前記第２の物理ページに蓄積することを開始するステップと、
前記第２の物理ページからのデータを使用せずに、前記第１の物理ページから読み出される第１の符号化済みデータの第１の部分の表現を使用する復号化操作を開始して、前記データページを復元するステップと、
を遂行する方法。
［項目２］
項目１記載の方法において、
前記データページは、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信される方法。
［項目３］
項目２記載の方法において、
前記第１の符号化済みデータの第１の部分を蓄積した後に前記ホスト装置へメッセージを送信するステップをさらに含み、前記メッセージは前記データ蓄積装置で前記データページが正常に蓄積されたことを伝え、かつ前記第１の符号化済みデータの第２の部分の蓄積を完了する前に送信される方法。
［項目４］
項目１記載の方法において、
前記第１の符号化済みデータの第２の部分は、パリティビットのみを含む方法。
［項目５］
項目１記載の方法において、
前記第１の符号化済みデータの第２の部分の書き込みを完了する前に電源が切れると、前記復号化操作は電源が回復した後に開始される方法。
［項目６］
項目５記載の方法において、
前記復号化操作により前記データページを復元した後に、
第２の符号化済みデータを生成する第２の符号化操作を開始して、前記データページを符号化するステップと、
前記第２の符号化済みデータの第１の部分を第３の物理ページに蓄積するステップと、
をさらに含む方法。
［項目７］
項目６記載の方法において、
前記第２の符号化済みデータの第１の部分を前記第３の物理ページ内にある第１の論理ページに蓄積し、前記第２の符号化済みデータの第２の部分を前記第３の物理ページ内にある第２の論理ページに蓄積するステップをさらに含む方法。
［項目８］
項目７記載の方法において、
前記第１の符号化済みデータは前記第１の物理ページのサイズを上回る長さを有し、前記第２の符号化済みデータは前記第１の論理ページのサイズを上回る長さを有する方法。
［項目９］
項目６記載の方法において、
前記データ蓄積装置はシングルレベルセル（ＳＬＣ）部分とマルチレベルセル（ＭＬＣ）部分とを有するフラッシュメモリを含み、前記第１の物理ページと前記第２の物理ページは前記フラッシュメモリのＳＬＣ部分にある方法。
［項目１０］
項目９記載の方法において、
前記第３の物理ページは、前記フラッシュメモリのマルチレベルセル（ＭＬＣ）部分にある方法。
［項目１１］
データを書き込む方法であって、
第１の物理ページと第２の物理ページとを含む複数の物理ページを備えるデータ蓄積装置で、
前記データ蓄積装置に蓄積されるデータページをホスト装置から受信するステップと、
第１の符号化済みデータを生成する符号化操作を開始して、前記データページを符号化するステップと、
前記第１の符号化済みデータの第１の部分を前記第１の物理ページに蓄積するステップと、
前記第１の符号化済みデータの第２の部分を前記第２の物理ページに蓄積することを開始するステップと、
前記第１の符号化済みデータの第１の部分を蓄積した後に前記ホスト装置へメッセージを送信するステップであって、前記メッセージが前記データ蓄積装置で前記データページが正常に蓄積されたことを伝え、かつ前記第１の符号化済みデータの第２の部分の蓄積を完了する前に送信されるステップと、
を遂行する方法。
［項目１２］
データを書き込む方法であって、
誤り訂正符号化（ＥＣＣ）エンジンを含むコントローラと第１の物理ページと第２の物理ページとを含む複数の物理ページを含むメモリダイとを備えるデータ蓄積装置で、
前記データ蓄積装置に蓄積されるデータページを受信するステップであって、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から前記データページを受信するステップと、
第１の符号化済みデータを生成する符号化操作を前記ＥＣＣエンジンで開始して、前記データページを符号化するステップと、
前記第１の符号化済みデータの少なくとも一部分を前記メモリダイにある第１の物理ページに蓄積するステップと、
前記メモリダイで第２の符号化済みデータを生成するステップであって、
前記第１の物理ページから前記第１の符号化済みデータの一部分の表現を読み出し、かつ
前記第１の符号化済みデータの一部分の表現に基づき前記メモリダイで冗長データを生成することによって生成するステップと、
前記第２の符号化済みデータを前記第２の物理ページに蓄積するステップと、
を遂行する方法。
［項目１３］
項目１２記載の方法において、
前記冗長データは、前記メモリダイで前記第１の符号化済みデータの一部分の表現の少なくとも一部をコピーすることによって生成される方法。
［項目１４］
項目１３記載の方法において、
前記第１の符号化済みデータは第１の部分と第２の部分とを含み、前記第１の部分は前記第１の物理ページに蓄積され、前記第２の部分は前記メモリダイに提供されず破棄される方法。
［項目１５］
項目１２記載の方法において、
前記第１の符号化済みデータの一部分は前記第１の物理ページのフラッシュシングルレベルセル（ＳＬＣ）ページに蓄積され、前記第２の符号化済みデータは前記第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積される方法。
［項目１６］
データを書き込む方法であって、
第１の物理ページと第２の物理ページとを含む複数の物理ページを備えるデータ蓄積装置で、
前記データ蓄積装置に蓄積されるデータページを受信するステップであって、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から前記データページを受信するステップと、
第１の符号化済みデータを生成する第１の符号化操作を開始して、前記データページを符号化するステップと、
前記第１の符号化済みデータの少なくとも一部分を前記第１の物理ページに蓄積するステップと、
前記第１の物理ページから読み出された前記第１の符号化済みデータの一部分の表現を復号化して、前記データページを復元するステップと、
第２の符号化済みデータを生成する第２の符号化操作を開始して、前記データページを符号化するステップと、
前記第１の符号化済みデータの一部分より多くのページにまたがる前記第２の符号化済みデータを前記第２の物理ページに蓄積するステップと、
を遂行する方法。
［項目１７］
項目１６記載の方法において、
前記第１の符号化済みデータは、前記第１の物理ページに全て蓄積される方法。
［項目１８］
項目１６記載の方法において、
前記第１の符号化済みデータは第１の部分と第２の部分とを含み、前記第１の部分は前記第１の物理ページに蓄積され、前記第２の部分は破棄される方法。
［項目１９］
項目１６記載の方法において、
前記第１の符号化操作は、前記第２の符号化操作と同じ誤り訂正符号化（ＥＣＣ）方式を使用する方法。
［項目２０］
項目１６記載の方法において、
前記第１の符号化操作は第１の誤り訂正符号化（ＥＣＣ）方式を使用し、前記第２の符号化操作は第２のＥＣＣ方式を使用し、前記第２のＥＣＣ方式は前記第１のＥＣＣ方式と異なる方法。
［項目２１］
項目１６記載の方法において、
前記第１の符号化済みデータの一部分は、前記第２の物理ページより信頼度が高い前記第１の物理ページのフラッシュページに蓄積される方法。
［項目２２］
項目２１記載の方法において、
前記第１の符号化済みデータの一部分は前記第１の物理ページのフラッシュシングルレベルセル（ＳＬＣ）ページに蓄積され、前記第２の符号化済みデータは前記第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積される方法。
［項目２３］
データ蓄積装置であって、
コントローラと、
第１の物理ページと第２の物理ページとを含むメモリと、を備え、
前記コントローラは、符号化操作を開始して受信データページを符号化し、かつ前記符号化操作によって生成された第１の符号化済みデータの蓄積を開始するように構成され、前記符号化操作によって生成された第１の符号化済みデータの第１の部分が前記第１の物理ページに蓄積され、前記第１の符号化済みデータの第２の部分が前記第２の物理ページに蓄積され、
前記コントローラは復号化操作を開始して前記データページを復元する働きをし、前記復号化操作は前記第２の物理ページからのデータは使用せずに、前記第１の物理ページから読み出される前記第１の符号化済みデータの第１の部分の表現を使用するデータ蓄積装置。
［項目２４］
項目２３記載のデータ蓄積装置において、
前記データページは、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信されるデータ蓄積装置。
［項目２５］
項目２４記載のデータ蓄積装置において、
前記コントローラは前記第１の符号化済みデータの第１の部分を蓄積した後に前記ホスト装置へメッセージを送信するようにさらに構成され、前記メッセージは前記データ蓄積装置で前記データページが正常に蓄積されたことを伝え、前記コントローラは前記第１の符号化済みデータの第２の部分の蓄積を完了する前に前記メッセージを送信するように構成されるデータ蓄積装置。
［項目２６］
項目２３記載のデータ蓄積装置において、
前記第１の符号化済みデータの第２の部分は、パリティビットのみを含むデータ蓄積装置。
［項目２７］
項目２３記載のデータ蓄積装置において、
前記コントローラは、前記第１の符号化済みデータの第２の部分の書き込みを完了する前に電源が切れると、電源が回復した後に前記復号化操作を開始するように構成されるデータ蓄積装置。
［項目２８］
項目２７記載のデータ蓄積装置において、
前記コントローラは前記復号化操作により前記データページを復元した後に第２の符号化操作を開始して前記データページを符号化する働きをし、前記第２の符号化操作は第２の符号化済みデータを生成し、前記コントローラは前記第２の符号化済みデータの第１の部分を第３の物理ページに蓄積する働きをするデータ蓄積装置。
［項目２９］
項目２８記載のデータ蓄積装置において、
前記第２の符号化済みデータの第１の部分は前記第３の物理ページ内にある第１の論理ページに蓄積され、前記第２の符号化済みデータの第２の部分は前記第３の物理ページ内にある第２の論理ページに蓄積されるデータ蓄積装置。
［項目３０］
項目２９記載のデータ蓄積装置において、
前記第１の符号化済みデータは前記第１の物理ページのサイズを上回る長さを有し、前記第２の符号化済みデータは前記第１の論理ページのサイズを上回る長さを有するデータ蓄積装置。
［項目３１］
項目２８記載のデータ蓄積装置において、
前記メモリはシングルレベルセル（ＳＬＣ）部分とマルチレベルセル（ＭＬＣ）部分とを有するフラッシュメモリを含み、前記第１の物理ページと前記第２の物理ページは前記フラッシュメモリのＳＬＣ部分にあるデータ蓄積装置。
［項目３２］
項目３１記載のデータ蓄積装置において、
前記第３の物理ページは、前記フラッシュメモリのマルチレベルセル（ＭＬＣ）部分にあるデータ蓄積装置。
［項目３３］
データ蓄積装置であって、
誤り訂正符号化（ＥＣＣ）エンジンを含むコントローラと、
第１の物理ページと第２の物理ページとを含むメモリダイと、を備え、
前記コントローラは前記ＥＣＣエンジンで符号化操作を開始して前記データ蓄積装置に蓄積されるデータページを符号化するように構成され、前記データページは前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信され、前記符号化操作は第１の符号化済みデータを生成し、前記コントローラは前記第１の符号化済みデータの少なくとも一部分を前記第１の物理ページに蓄積するように構成され、
前記メモリダイは前記第２の物理ページに蓄積される第２の符号化済みデータを生成する働きをする冗長データ生成回路を含み、前記冗長データ生成回路は、前記第１の物理ページから読み出された前記第１の符号化済みデータの一部分の表現を受信して前記第２の符号化済みデータを生成し、かつ前記第１の符号化済みデータの一部分の表現に基づき冗長データを生成するように構成されるデータ蓄積装置。
［項目３４］
項目３３記載のデータ蓄積装置において、
前記冗長データ生成回路は、前記第１の符号化済みデータの一部分の表現の少なくとも一部をコピーすることによって前記冗長データを生成するように構成されるデータ蓄積装置。
［項目３５］
項目３３記載のデータ蓄積装置において、
前記第１の符号化済みデータは第１の部分と第２の部分とを含み、前記第１の部分は前記第１の物理ページに蓄積され、前記第２の部分は前記メモリダイに提供されず破棄されるデータ蓄積装置。
［項目３６］
項目３３記載のデータ蓄積装置において、
前記第１の物理ページはフラッシュシングルレベルセル（ＳＬＣ）ページであり、前記第２の物理ページはフラッシュマルチレベルセル（ＭＬＣ）物理ページであり、前記第２の符号化済みデータは前記第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積されるデータ蓄積装置。
［項目３７］
データ蓄積装置であって
コントローラと、
第１の物理ページと第２の物理ページとを含むメモリと、を備え、
前記コントローラは、第１の符号化操作を開始して受信データページを符号化し、かつ前記符号化操作によって生成された第１の符号化済みデータの少なくとも一部分を前記第１の物理ページに蓄積するように構成され、前記データページは前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信され、前記コントローラは、前記第１の物理ページから前記第１の符号化済みデータの一部分の表現を読み出しかつ復号化して前記データページを復元するようにさらに構成され、かつ第２の符号化操作を開始して前記データページを符号化するように構成され、前記第２の符号化操作は第２の符号化済みデータを生成し、前記コントローラは前記第２の符号化済みデータを前記第２の物理ページに蓄積するように構成され、前記第２の符号化済みデータは前記第１の符号化済みデータの一部分より多くのページにまたがるデータ蓄積装置。
［項目３８］
項目３７記載のデータ蓄積装置において、
前記コントローラは、前記第１の符号化済みデータの全てを前記第１の物理ページに蓄積するように構成されるデータ蓄積装置。
［項目３９］
項目３７記載のデータ蓄積装置において、
前記第１の符号化済みデータは第１の部分と第２の部分とを含み、前記第１の部分は前記第１の物理ページに蓄積され、前記第２の部分は破棄されるデータ蓄積装置。
［項目４０］
項目３７記載のデータ蓄積装置において、
前記第１の符号化操作は、前記第２の符号化操作と同じ誤り訂正符号化（ＥＣＣ）方式を使用するデータ蓄積装置。
［項目４１］
項目３７記載のデータ蓄積装置において、
前記第１の符号化操作は第１の誤り訂正符号化（ＥＣＣ）方式を使用し、前記第２の符号化操作は第２のＥＣＣ方式を使用し、前記第２のＥＣＣ方式は前記第１のＥＣＣ方式と異なるデータ蓄積装置。
［項目４２］
項目３７記載のデータ蓄積装置において、
前記第１の符号化済みデータの一部分は、前記第２の物理ページより信頼度が高い前記第１の物理ページのフラッシュページに蓄積されるデータ蓄積装置。
［項目４３］
項目４２記載のデータ蓄積装置において、
前記第１の物理ページはフラッシュシングルレベルセル（ＳＬＣ）ページであり、前記第２の物理ページはフラッシュマルチレベルセル（ＭＬＣ）ページであり、前記第２の符号化済みデータは前記第２の物理ページの複数のフラッシュマルチレベルセル（ＭＬＣ）論理ページに蓄積されるデータ蓄積装置。
［項目４４］
データを書き込む方法であって、
ラッチと複数の蓄積素子とを含み、かつビット列を前記蓄積素子の状態にマップする第１のマッピングに従い第１の数のビットを各蓄積素子に蓄積する働きをするメモリと、コントローラとを備えるデータ蓄積装置で、
前記メモリ内のラッチにデータビットを読み込むステップと、
１つ以上の論理演算を用いて前記ラッチにある指定データビットを操作することによって前記ラッチで操作済みデータビットを生成するステップと、
前記第１のマッピングに従い１群の前記蓄積素子の各蓄積素子に前記操作済みデータビットのセットを蓄積するステップと、を遂行し、
前記指定データビットはビット列を状態にマップする第２のマッピングによりそれぞれの蓄積素子の状態に対応し、前記第２のマッピングは前記第１のマッピングとは異なる方法。
［項目４５］
項目４４記載の方法において、
前記ラッチと前記蓄積素子は前記第１のマッピングをビルトインマッピングとして適用するように構成されたメモリダイの中にあり、前記第２のマッピングは、前記ラッチに前記データビットを読み込み、論理レジスタ演算により前記データビットを操作し、前記操作済みデータビットのセットを蓄積することによって形成される方法。
［項目４６］
項目４５記載の方法において、
前記メモリダイは、前記１つ以上の論理レジスタ演算を前記指定データビットに適用することによって前記指定データビットの状態変換を遂行する回路を含む方法。
［項目４７］
項目４４記載の方法において、
前記メモリはフラッシュマルチレベルセル（ＭＬＣ）メモリを含み、前記１群の蓄積素子はＭＬＣワード線である方法。
［項目４８］
項目４７記載の方法において、
前記第１のマッピングには前記ＭＬＣワード線の第１の論理ページの第１の誤り率が対応付けられ、前記第２のマッピングには前記ＭＬＣワード線の第１の論理ページの第２の誤り率が対応付けられ、前記第２の誤り率は前記第１の誤り率より低い方法。
［項目４９］
項目４４記載の方法において、
前記データビットの第１のグループは第１のラッチに読み込まれ、前記指定データビットを操作することは前記データビットの第１のグループの各データビットに対して論理ＮＯＴ演算を遂行することを含む方法。
［項目５０］
項目４４記載の方法において、
前記データビットの第１のグループは第１のラッチに読み込まれ、前記データビットの第２のグループは第２のラッチに読み込まれ、前記指定データビットを操作することは前記第１のグループと前記第２のグループのビット単位論理演算を遂行することを含む方法。
［項目５１］
項目５０記載の方法において、
前記ビット単位論理演算は、ＡＮＤ演算とＯＲ演算のうちの少なくとも一方を含む方法。
［項目５２］
項目５０記載の方法において、
前記ビット単位論理演算は、否定排他的ＯＲ（ＮＯＴ−ＸＯＲ）演算を含む方法。
［項目５３］
項目５０記載の方法において、
前記ビット単位論理演算は、スワップ演算を含む方法。
［項目５４］
項目４４記載の方法において、
前記メモリは、前記第２のマッピングを選択的に適用するように構成できる方法。
［項目５５］
項目４４記載の方法において、
前記ラッチの第１の部分は非指定データビットを収容し、前記ラッチの第２の部分は前記指定データビットを収容し、前記操作済みデータビットは前記ラッチの第２の部分で生成され、前記１群の蓄積素子の第２の部分に蓄積される指定データビットには前記第２のマッピングが適用され、前記１群の蓄積素子の第１の部分に蓄積される非指定データビットには前記第１のマッピングが適用される方法。
［項目５６］
項目５５記載の方法において、
前記１群の蓄積素子の第１の部分と前記１群の蓄積素子の第２の部分はマルチレベルセル（ＭＬＣ）フラッシュメモリの単一ワード線にあり、前記非指定データビットに前記第１のマッピングを適用し、かつ前記指定データビットに前記第２のマッピングを適用した後に、前記単一ワード線の各論理ページの誤り率は概ね等しくなる方法。
［項目５７］
項目５５記載の方法において、
前記１群の蓄積素子の第１の部分はマルチプレーンフラッシュメモリの第１のプレーンにあり、前記１群の蓄積素子の第２の部分は前記マルチプレーンフラッシュメモリの第２のプレーンにある方法。
［項目５８］
データ蓄積装置であって、
複数の蓄積素子を含むメモリと、
１群の前記蓄積素子に蓄積されるデータをラッチする働きをするラッチと、
前記ラッチからデータを受信し、かつビット列を前記蓄積素子の状態にマップする第１のマッピングに従い前記１群の蓄積素子の各蓄積素子に第１の数のビットを蓄積する働きをする書き込み回路と、
１つ以上の論理演算を用いて前記ラッチにある指定データビットを操作することによって前記ラッチで操作済みデータビットを生成する働きをするマッピング回路と、を備え、  前記書き込み回路は、操作済みデータビットのセットを前記１群の蓄積素子の各蓄積素子に蓄積する働きをし、
前記指定データビットはビット列を状態にマップする第２のマッピングによりそれぞれの蓄積素子の状態に対応し、前記第２のマッピングは前記第１のマッピングとは異なるデータ蓄積装置。
［項目５９］
項目５８記載のデータ蓄積装置において、
前記メモリに結合されたコントローラをさらに備え、前記マッピング回路は前記コントローラからデータを受信した後に前記メモリで前記操作済みデータビットを生成するように構成されるデータ蓄積装置。
［項目６０］
項目５８記載のデータ蓄積装置において、
前記メモリは前記第１のマッピングをビルトインマッピングとして適用するように構成され、前記第２のマッピングは、前記ラッチにデータを読み込み、かつ論理レジスタ演算により前記指定データビットを操作することにより形成されるデータ蓄積装置。
［項目６１］
項目５８記載のデータ蓄積装置において、
前記メモリはフラッシュマルチレベルセル（ＭＬＣ）メモリを含み、前記１群の蓄積素子はＭＬＣワード線であるデータ蓄積装置。
［項目６２］
項目６１記載のデータ蓄積装置において、
前記第１のマッピングには前記ＭＬＣワード線の第１の論理ページの第１の誤り率が対応付けられ、前記第２のマッピングには前記ＭＬＣワード線の第１の論理ページの第２の誤り率が対応付けられ、前記第２の誤り率は前記第１の誤り率より低いデータ蓄積装置。
［項目６３］
項目５８記載のデータ蓄積装置において、
前記ラッチは第１のラッチを含み、前記マッピング回路は前記第１のラッチにある前記データビットの第１のグループの各データビットに対して論理ＮＯＴ演算を遂行するように構成されるデータ蓄積装置。
［項目６４］
項目５８記載のデータ蓄積装置において、
前記ラッチは第１のラッチと第２のラッチとを含み、前記マッピング回路は前記第１のラッチにある第１のグループのデータビットと前記第２のラッチにある第２のグループのデータビットに対してビット単位論理演算を遂行するように構成されるデータ蓄積装置。
［項目６５］
項目６４記載のデータ蓄積装置において、
前記ビット単位論理演算は、ＡＮＤ演算とＯＲ演算のうちの少なくとも一方を含むデー
タ蓄積装置。
［項目６６］
項目６４記載のデータ蓄積装置において、
前記ビット単位論理演算は、否定排他的ＯＲ（ＮＯＴ−ＸＯＲ）演算を含むデータ蓄積装置。
［項目６７］
項目６４記載のデータ蓄積装置において、
前記ビット単位論理演算は、スワップ演算を含むデータ蓄積装置。
［項目６８］
項目５８記載のデータ蓄積装置において、
前記メモリは、前記第２のマッピングを選択的に適用するように構成できるデータ蓄積装置。
［項目６９］
項目５８記載のデータ蓄積装置において、
前記指定データビットは前記ラッチの第２の部分に位置付けられ、非指定データビットは前記ラッチの第１の部分に位置付けられ、前記マッピング回路は前記ラッチの第２の部分で前記操作済みデータビットを生成し、かつ前記ラッチの第１の部分で前記非指定データビットを操作しないように構成され、前記第２のマッピングは前記１群の蓄積素子の第２の部分に蓄積される指定データビットに適用され、前記第１のマッピングは前記１群の蓄積素子の第１の部分に蓄積される非指定データビットに適用されるデータ蓄積装置。
［項目７０］
項目６９記載のデータ蓄積装置において、
前記メモリはマルチレベルセル（ＭＬＣ）フラッシュメモリを含み、前記１群の蓄積素子の第１の部分と前記１群の蓄積素子の第２の部分は前記ＭＬＣフラッシュメモリの単一ワード線にあり、前記非指定データビットに前記第１のマッピングを適用し、かつ前記指定データビットに前記第２のマッピングを適用した後に、前記単一ワード線の各論理ページの誤り率は概ね等しくなるデータ蓄積装置。
［項目７１］
項目６９記載のデータ蓄積装置において、
前記メモリはマルチプレーンフラッシュメモリの第１のプレーンと第２のプレーンとを含み、前記１群の蓄積素子の第１の部分は前記第１のプレーンにあり、前記１群の蓄積素子の第２の部分は前記第２のプレーンにあるデータ蓄積装置。
［項目７２］
データを書き込む方法であって、
フラッシュマルチレベルセル（ＭＬＣ）メモリを備えるデータ蓄積装置で、
第１のビットグループと第２のビットグループとを含むデータを受信するステップと、
前記第２のビットグループに対して成形符号化操作を開始して第３のビットグループを生成するステップであって、前記第３のビットグループが前記第２のビットグループより多くのビットを有し、前記成形符号化操作が前記第３のビットグループでビット値の不均一確率分布を形成するように構成されるステップと、
前記第１のビットグループと前記第１のビットグループに対応する第１の誤り訂正符号化（ＥＣＣ）パリティビットを前記ＭＬＣメモリの物理ページ内にある第１の論理ページに蓄積し、かつ前記第３のビットグループと前記第３のビットグループに対応する第２のＥＣＣパリティビットを前記ＭＬＣメモリの前記物理ページ内にある第２の論理ページに蓄積するステップと、
を遂行する方法。
［項目７３］
項目７２記載の方法において、
前記第１の論理ページには第１の誤り率が対応付けられ、前記第２の論理ページには第
１の誤り率より低い第２の誤り率が対応付けられる方法。
［項目７４］
項目７２記載の方法において、
前記第１のＥＣＣパリティビットは、前記第２のＥＣＣパリティビットより多くのビットを含む方法。
［項目７５］
項目７２記載の方法において、
前記第３のビットグループは前記第２のＥＣＣパリティビットと成形パリティビットとを含み、前記第１のＥＣＣパリティビットは前記第２のＥＣＣパリティビットに前記成形パリティビットを加えたものと同数のビットを含む方法。
［項目７６］
項目７２記載の方法において、
前記第１のＥＣＣパリティビットは前記第１の論理ページで第１の数までの誤りの訂正を可能にし、前記第２のＥＣＣパリティビットは前記第２の論理ページで第２の数までの誤りの訂正を可能にし、前記第１の論理ページにおける誤り数が第１の数を上回る第１の確率は、前記第２の論理ページにおける誤り数が第２の数を上回る第２の確率に概ね等しい方法。
［項目７７］
項目７２記載の方法において、
前記成形符号化操作は前記ＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、前記ＭＬＣメモリの物理ページの各セルが最低状態にプログラムされる尤度を減少させる方法。
［項目７８］
項目７２記載の方法において、
前記成形符号化操作は前記ＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、前記ＭＬＣメモリの物理ページの各セルが最高状態にプログラムされる尤度を減少させる方法。
［項目７９］
データを読み出す方法であって、
フラッシュマルチレベルセル（ＭＬＣ）メモリを備えるデータ蓄積装置で、
１群の蓄積素子を読み出して、前記ＭＬＣメモリの物理ページ内にある第１の論理ページで第１のビットグループの第１の表現と第１のＥＣＣパリティビットを取り出し、かつ前記ＭＬＣメモリの物理ページ内にある第２の論理ページで第３のビットグループの第２の表現と第２のＥＣＣパリティビットを取り出すステップと、
前記第１の表現の第１のＥＣＣ復号化操作を開始して、前記第１のビットグループを復元するステップと、
前記第２の表現の第２のＥＣＣ復号化操作を開始して、前記第３のビットグループを復元するステップと、
前記第３のビットグループに対して成形復号化操作を開始して、第２のビットグループを生成するステップであって、前記第３のビットグループが前記第２のビットグループより多くのビットを有し、前記成形復号化操作が前記第２のビットグループでビット値の均一確率分布を形成するように構成されるステップと、
を遂行する方法。
［項目８０］
項目７９記載の方法において、
前記第１のＥＣＣパリティビットは、前記第２のＥＣＣパリティビットより多くのビットを含む方法。
［項目８１］
項目７９記載の方法において、
前記第１のＥＣＣパリティビットは前記第１の表現で第１の数までの誤りの訂正を可能にし、前記第２のＥＣＣパリティビットは前記第２の表現で第２の数までの誤りの訂正を可能にし、前記第１の表現における誤り数が第１の数を上回る第１の確率は、前記第２の表現における誤り数が第２の数を上回る第２の確率に概ね等しい方法。
［項目８２］
項目７９記載の方法において、
前記第１の論理ページには第１の誤り率が対応付けられ、前記第２の論理ページには第１の誤り率より低い第２の誤り率が対応付けられる方法。
［項目８３］
データ蓄積装置であって、
フラッシュマルチレベルセル（ＭＬＣ）メモリと、
コントローラであって、
第１のビットグループと第２のビットグループとを含むデータを受信し、
前記第２のビットグループに対して成形符号化操作を開始して第３のビットグループを生成し、前記第３のビットグループが前記第２のビットグループより多くのビットを有し、前記成形符号化操作が前記第３のビットグループでビット値の不均一確率分布を形成し、
前記ＭＬＣメモリの物理ページ内にある第１の論理ページに蓄積される前記第１のビットグループと前記第１のビットグループに対応する第１の誤り訂正符号化（ＥＣＣ）パリティビットとを前記メモリへ送信し、かつ
前記ＭＬＣメモリの物理ページ内にある第２の論理ページに蓄積される第３のビットグループと前記第３のビットグループに対応する第２のＥＣＣパリティビットとを前記メモリへ送信するように構成されるコントローラと、
を備えるデータ蓄積装置。
［項目８４］
項目８３記載のデータ蓄積装置において、
前記第１の論理ページには第１の誤り率が対応付けられ、前記第２の論理ページには第１の誤り率より低い第２の誤り率が対応付けられるデータ蓄積装置。
［項目８５］
項目８３記載のデータ蓄積装置において、
前記第１のＥＣＣパリティビットは、前記第２のＥＣＣパリティビットより多くのビットを含むデータ蓄積装置。
［項目８６］
項目８３記載のデータ蓄積装置において、
前記第１のＥＣＣパリティビットは前記第１の論理ページで第１の数までの誤りの訂正を可能にし、前記第２のＥＣＣパリティビットは前記第２の論理ページで第２の数までの誤りの訂正を可能にし、前記第１の論理ページにおける誤り数が第１の数を上回る第１の確率は、前記第２の論理ページにおける誤り数が第２の数を上回る第２の確率に概ね等しいデータ蓄積装置。
［項目８７］
項目８３記載のデータ蓄積装置において、
前記成形符号化操作は前記ＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、前記ＭＬＣメモリの物理ページの各セルが最低状態にプログラムされる尤度を減少させるデータ蓄積装置。
［項目８８］
項目８３記載のデータ蓄積装置において、
前記成形符号化操作は前記ＭＬＣメモリの物理ページの各セルが中間状態にプログラムされる尤度を増加させ、前記ＭＬＣメモリの物理ページの各セルが最高状態にプログラムされる尤度を減少させるデータ蓄積装置。
［項目８９］
データ蓄積装置であって、
フラッシュマルチレベルセル（ＭＬＣ）メモリと、
コントローラであって、
前記ＭＬＣメモリの物理ページ内にある第１の論理ページから第１のビットグループの第１の表現と第１のＥＣＣパリティビットを取り出し、
前記ＭＬＣメモリの物理ページ内にある第２の論理ページから第３のビットグループの第２の表現と第２のＥＣＣパリティビットを取り出し、
前記第１の表現の第１のＥＣＣ復号化操作を開始して、前記第１のビットグループを復元し、
前記第２の表現の第２のＥＣＣ復号化操作を開始して前記第３のビットグループを復元し、かつ
前記第３のビットグループに対して成形復号化操作を開始して第２のビットグループを生成するように構成されるコントローラと、を備え、
前記第３のビットグループは前記第２のビットグループより多くのビットを有し、前記成形復号化操作は前記第２のビットグループでビット値の均一確率分布を形成するように構成されるデータ蓄積装置。
［項目９０］
項目８９記載のデータ蓄積装置において、
前記第１のＥＣＣパリティビットは、前記第２のＥＣＣパリティビットより多くのビットを含むデータ蓄積装置。
［項目９１］
項目８９記載のデータ蓄積装置において、
前記第１のＥＣＣパリティビットは、前記第１の表現で第１の数までの誤りの訂正を可能にし、前記第２のＥＣＣパリティビットは前記第２の表現で第２の数までの誤りの訂正を可能にし、第１の数は第２の数より大きいデータ蓄積装置。
［項目９２］
項目９１記載のデータ蓄積装置において、
前記第１の表現における誤り数が第１の数を上回る第１の確率は、前記第２の表現における誤り数が第２の数を上回る第２の確率に概ね等しいデータ蓄積装置。
［項目９３］
データを読み出す方法であって、
コントローラと、複数の蓄積素子を含むメモリとを備えるデータ蓄積装置であって、
前記メモリで特定の蓄積素子に対応する１セットのビットを生成するステップであって、前記１セットのビットが１グループのしきい値電圧区間を指示し、前記特定の蓄積素子のしきい値電圧が前記１グループ内のしきい値電圧区間のいずれか１つに相当し、前記１グループ内の少なくとも１つのしきい値電圧区間が前記１グループ内にない介在しきい値電圧区間によって前記１グループ内の他のしきい値電圧区間から隔てられるステップと、  前記１セットのビットを前記コントローラへ送信するステップであって、前記１セットのビットが前記特定の蓄積素子から読み出される値に相当する第１のハードビットと、信頼度尺度に相当する第１のソフトビットとを含むステップと、
を遂行する方法。
［項目９４］
項目９３記載の方法において、
前記特定の蓄積素子は前記メモリの物理ページ内にあり、前記物理ページは第１の論理ページと第２の論理ページとを含み、前記特定の蓄積素子の状態は複数のハードビットに相当し、前記複数のハードビットは前記第１の論理ページに対応する前記第１のハードビットと前記第２の論理ページに対応する第２のハードビットとを含む方法。
［項目９５］
項目９４記載の方法において、
前記１セットのビットは、前記第１の論理ページを読み出す要求に応じて生成され、かつ前記第２のハードビットを含まない方法。
［項目９６］
項目９３記載の方法において、
前記コントローラはソフト入力誤り訂正符号化（ＥＣＣ）デコーダを含み、前記第１のハードビットと前記第１のソフトビットは前記メモリから読み出されたデータのＥＣＣ復号化操作の一部として前記ソフト入力ＥＣＣデコーダに提供される方法。
［項目９７］
項目９３記載の方法において、
前記第１のソフトビットは前記しきい値電圧が前記１グループのしきい値電圧区間のいずれかのしきい値電圧区間の中央領域内にあるか否かを指示する方法。
［項目９８］
項目９７記載の方法において、
前記第１のビットセットは第１の蓄積済みデータを所望する前記コントローラからの第１の要求に応じて前記コントローラへ送信され、
前記第１のビットセットを前記コントローラへ送信した後に、
前記第１の蓄積済みデータに対応する追加情報を所望する第２の要求を前記コントローラから前記メモリにて受信するステップと、
前記特定の蓄積素子に対応する第２のソフトビットを前記メモリで決定するステップであって、前記第２のソフトビットが前記しきい値電圧が前記１グループのしきい値電圧区間のいずれかの電圧区間の第２の領域内にあるか否かを指示し、特定の電圧区間の第２の領域が状態に対応するセル電圧分布の中間点を概ね中心とし、かつ前記第１の領域とは異なるステップと、
前記コントローラへ前記第２のソフトビット値を送信するステップと、をさらに含む方法。
［項目９９］
項目９３記載の方法において、
前記メモリは、信頼度を指示するため、順次読み出し操作のときと同じソフトビットパターンをページ単位読み出し操作のときに提供するように構成される方法。
［項目１００］
項目９３記載の方法において、
前記ソフトビットパターンは、特定のビット・状態マッピング方式から独立している方法。
［項目１０１］
項目９３記載の方法において、
前記１セットのビットのソフトビットにデスクランブラを適用せずに、前記１セットのビットの全てのハードビットにデスクランブラを適用することにより、前記１セットのビットは前記メモリでデスクランブルされる方法。
［項目１０２］
項目９３記載の方法において、
前記メモリはフラッシュメモリを含み、前記特定の蓄積素子は前記フラッシュメモリのマルチレベルセル（ＭＬＣ）である方法。
［項目１０３］
項目９３記載の方法において、
前記１セットのビットを生成するステップは、不均一電圧区間で一連の検知操作を使用して遂行される方法。
［項目１０４］
データ蓄積装置であって、
コントローラと、
複数の蓄積素子を含むメモリであって、前記メモリが特定の蓄積素子に対応する１セットのビットを生成し、かつ前記１セットのビットを前記コントローラへ送信するように構成され、前記１セットのビットが１グループのしきい値電圧区間を指示し、前記特定の蓄積素子のしきい値電圧が前記１グループ内の前記しきい値電圧区間のいずれか１つに相当し、前記１グループ内の少なくとも１つのしきい値電圧区間が前記１グループ内にない介在しきい値電圧区間によって前記１グループ内の他のしきい値電圧区間から隔てられる、メモリと、を備え、
前記１セットのビットは、前記特定の蓄積素子から読み出される値に相当する第１のハードビットと、信頼度尺度に相当する第１のソフトビットとを含むデータ蓄積装置。
［項目１０５］
項目１０４記載のデータ蓄積装置において、
前記特定の蓄積素子は前記メモリの物理ページ内にあり、前記物理ページは第１の論理ページと第２の論理ページとを含み、前記特定の蓄積素子の状態は複数のハードビットに相当し、前記複数のハードビットは前記第１の論理ページに対応する前記第１のハードビットと前記第２の論理ページに対応する第２のハードビットとを含むデータ蓄積装置。
［項目１０６］
項目１０５記載のデータ蓄積装置において、
前記１セットのビットは前記第１の論理ページを読み出す前記コントローラからの要求に応じて生成され、前記１セットのビットは前記第２のハードビットを含まないデータ蓄積装置。
［項目１０７］
項目１０４記載のデータ蓄積装置において、
前記コントローラはソフト入力誤り訂正符号化（ＥＣＣ）デコーダを含み、かつＥＣＣ復号化操作の一部として前記第１のハードビットと前記第１のソフトビットを前記ソフト入力ＥＣＣデコーダに提供するように構成されるデータ蓄積装置。
［項目１０８］
項目１０４記載のデータ蓄積装置において、
前記第１のソフトビットは、前記しきい値電圧が前記１グループのしきい値電圧区間のいずれかのしきい値電圧区間の中央領域内にあるか否かを指示するデータ蓄積装置。
［項目１０９］
項目１０４記載のデータ蓄積装置において、
前記第１のソフトビットは前記しきい値電圧が状態にプログラムされているセルのセル電圧分布の中央領域にあるか否かを指示し、最終読み出ししきい値電圧は前記セル電圧分布を示し、前記領域は前記１グループの電圧区間のしきい値電圧区間に属するデータ蓄積装置。
［項目１１０］
項目１０８記載のデータ蓄積装置において、
前記メモリは第１の蓄積済みデータを所望する前記コントローラからの第１の要求に応じて前記第１のビットセットを前記コントローラへ送信するように構成され、また前記メモリは、前記第１の蓄積済みデータに対応する追加情報を所望する前記コントローラからの第２の要求を受信したことに応じて第２のソフトビットを決定し、かつ前記第２のソフトビットを前記コントローラへ送信するようにさらに構成され、前記第２のソフトビットは前記特定の蓄積素子に対応し、かつ前記しきい値電圧が前記しきい値電圧区間グループのいずれかの電圧区間の第２の領域内にあるか否かを指示し、前記特定の電圧区間の第２の領域は前記特定の電圧区間の中間点を概ね中心とし、かつ前記第１の領域とは異なるデータ蓄積装置。
［項目１１１］
項目１０４記載のデータ蓄積装置において、
前記メモリは、信頼度を指示するため、順次読み出し操作のときと同じソフトビットパターンをページ単位読み出し操作のときに提供するように構成されるデータ蓄積装置。
［項目１１２］
項目１０４記載のデータ蓄積装置において、
前記ソフトビットパターンは、ビットをメモリセルの状態にマップする特定のマッピング方式から独立しているデータ蓄積装置。
［項目１１３］
項目１０４記載のデータ蓄積装置において、
前記メモリはデスクランブラを含み、かつ前記１セットのビットのソフトビットに前記デスクランブラを適用せずに、前記１セットのビットの全てのハードビットに前記デスクランブラを適用するように構成されるデータ蓄積装置。
［項目１１４］
項目１０４記載のデータ蓄積装置において、
前記メモリはフラッシュメモリを含み、前記特定の蓄積素子は前記フラッシュメモリのマルチレベルセル（ＭＬＣ）であるデータ蓄積装置。
［項目１１５］
データを書き込む方法であって、
データ蓄積装置で、
前記データ蓄積装置に蓄積されるデータページを受信するステップと、
前記受信されたデータページに相当するコードワードを生成するステップと、
前記データ蓄積装置の第１のメモリ部分の物理ページに前記コードワードを蓄積するステップであって、特定のデータページに相当する特定のコードワードの第１の部分が前記第１のメモリ部分の第１の物理ページに蓄積され、前記特定のコードワードの第２の部分が前記第１のメモリ部分の第２の物理ページに蓄積されるステップと、
前記第１のメモリ部分の物理ページから前記データ蓄積装置の第２のメモリ部分の物理ページに前記コードワードをコピーするステップと、
を遂行する方法。
［項目１１６］
項目１１５記載の方法において、
前記特定のコードワードは、複数のサブコードと前記複数のサブコードの合同パリティとを含む連結コードワードである方法。
［項目１１７］
項目１１６記載の方法において、
前記複数のサブコードの各々はサブコードデータ部分とサブコードパリティ部分とを含み、前記特定のコードワードの第１の部分は前記サブコードデータ部分を含み、前記特定のコードワードの第２の部分は前記合同パリティを含む方法。
［項目１１８］
項目１１７記載の方法において、
前記複数のサブコードと前記合同パリティを生成しかつ蓄積することは、前記サブコードの各々のマルチフェーズ復号化を可能にする方法。
［項目１１９］
項目１１５記載の方法において、
前記メモリ装置はフラッシュメモリを含み、前記第１のメモリ部分は前記フラッシュメモリのシングルレベルセル（ＳＬＣ）を含み、前記第２のメモリ部分は前記フラッシュメモリのマルチレベルセル（ＭＬＣ）を含む方法。
［項目１２０］
項目１１９記載の方法において、
前記第２のメモリ部分の物理ページは、単一のＭＬＣワード線である方法。
［項目１２１］
項目１１９記載の方法において、
前記マルチレベルセルの各々は１セル当たり第１のビット数に従ってデータを蓄積するように構成され、第２の数は前記受信されたデータページの数に相当し、かつ第１の数に等しい方法。
［項目１２２］
項目１２１記載の方法において、
前記コードワードは前記第１のメモリ部分の第３の数の物理ページに蓄積され、第３の数は第２の数より大きい方法。
［項目１２３］
項目１１５記載の方法において、
前記特定のコードワードは、ユーザデータと、第１のパリティビットと、第２のパリティビットとを含み、前記ユーザデータと前記第１のパリティビットは前記特定のコードワードの第１の部分に含められ、前記第２のパリティビットは前記特定のコードワードの第２の部分に含められる方法。
［項目１２４］
項目１２３記載の方法において、
前記第２のメモリ部分の物理ページは、第１の論理ページと、第２の論理ページと、第３の論理ページとを含み、前記特定のコードワードの第１の部分は前記第１の論理ページにコピーされ、前記特定のコードワードの第２の部分は前記第２の論理ページにコピーされ、前記特定のコードワードの第３の部分は前記第３の論理ページにコピーされる方法。［項目１２５］
項目１１５記載の方法において、
前記データページは、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信される方法。
［項目１２６］
項目１１５記載の方法において、
前記第１のメモリ部分の各物理ページは、前記特定のコードワードの第１の部分または前記特定のコードワードの第２の部分がプログラムされる概ね等しい確率を有する方法。［項目１２７］
項目１１５記載の方法において、
前記メモリの第１の部分の物理ページにおけるコードワード部分の相対的位置は、前記第１のメモリ部分から前記第２のメモリ部分の物理ページの論理ページに前記コードワード部分がコピーされるときに維持される方法。
［項目１２８］
項目１１５記載の方法において、
前記ホスト装置から特定のデータ部分を所望する要求を受信したことに応じて、
前記要求されたデータ部分に相当するコードワードの第１の部分を単一ページ読み出しにより第１のページから読み出すステップと、
第１の復号化操作を開始して、前記第１のページから読み出されたデータと読み出されたパリティに基づき前記要求されたデータ部分を復号化するステップと、
前記第１の復号化操作の復号化失敗に応じて、
前記要求されたデータ部分に相当する前記コードワードの第２の部分を第２のページから読み出すステップと、
第２の復号化操作を開始して、前記読み出されたデータと前記読み出されたパリティに基づき、かつ前記コードワードの第２の部分から読み出された合同パリティに基づき前記要求されたデータ部分を復号化するステップと、
さらに含む方法。
［項目１２９］
データ蓄積装置であって、
物理ページを備えるメモリと、
コントローラと、を備え、
前記コントローラは、前記データ蓄積装置が作動可能な状態でホスト装置に結合されているときに前記ホスト装置から受信されるデータページに相当するコードワードを生成し、かつ前記メモリの第１の部分の物理ページに前記コードワードを蓄積するように構成され、特定のデータページに相当する特定のコードワードの第１の部分が前記第１のメモリ部分の第１の物理ページに蓄積され、前記特定のコードワードの第２の部分が前記第１のメモリ部分の第２の物理ページに蓄積され、
前記データ蓄積装置は、前記メモリの第１の部分から前記メモリの第２の部分の物理ページに前記コードワードをコピーするように構成されるデータ蓄積装置。
［項目１３０］
項目１２９記載のデータ蓄積装置において、
サブコードの各々のマルチフェーズ復号化を可能にするため、前記特定のコードワードは、複数のサブコードと前記複数のサブコードの合同パリティとを含む連結コードワードであるデータ蓄積装置。
［項目１３１］
項目１３０記載のデータ蓄積装置において、
前記複数のサブコードの各々はサブコードデータ部分とサブコードパリティ部分とを含み、前記特定のコードワードの第１の部分は前記サブコードデータ部分を含み、前記特定のコードワードの第２の部分は前記合同パリティを含むデータ蓄積装置。
［項目１３２］
項目１２９記載のデータ蓄積装置において、
前記メモリはフラッシュメモリを含み、前記メモリの第１の部分は前記フラッシュメモリのシングルレベルセル（ＳＬＣ）部分であり、前記メモリの第２の部分は前記フラッシュメモリのマルチレベルセル（ＭＬＣ）部分であるデータ蓄積装置。
［項目１３３］
項目１３２記載のデータ蓄積装置において、
前記メモリの第２の部分の物理ページは、単一のＭＬＣワード線であるデータ蓄積装置。
［項目１３４］
項目１３２記載のデータ蓄積装置において、
前記ＭＬＣ部分は１セル当たり第１のビット数に従ってデータを蓄積するように構成され、前記コントローラは受信される第２の数のデータページに相当するコードワードを生成するように構成され、第２の数は第１の数に等しいデータ蓄積装置。
［項目１３５］
項目１３４記載のデータ蓄積装置において、
誤り訂正符号化（ＥＣＣ）エンジンをさらに備え、前記コントローラは前記ＥＣＣエンジンに前記データページを提供して前記コードワードを生成するように構成されるデータ蓄積装置。
［項目１３６］
項目１３４記載のデータ蓄積装置において、
前記コードワードは前記第１のメモリ部分の第３の数の物理ページに蓄積され、第３の数は第２の数より大きいデータ蓄積装置。
［項目１３７］
項目１２９記載のデータ蓄積装置において、
前記特定のコードワードは、ユーザデータと、第１のパリティビットと、第２のパリティビットとを含み、前記ユーザデータと前記第１のパリティビットは前記特定のコードワードの第１の部分に含められ、前記第２のパリティビットは前記特定のコードワードの第２の部分に含められるデータ蓄積装置。
［項目１３８］
項目１３７記載のデータ蓄積装置において、
前記メモリの第２の部分の物理ページは、第１の論理ページと、第２の論理ページと、第３の論理ページとを含み、前記特定のコードワードの第１の部分は前記第１の論理ページにコピーされ、前記特定のコードワードの第２の部分は前記第２の論理ページにコピーされ、前記特定のコードワードの第３の部分は前記第３の論理ページにコピーされるデータ蓄積装置。
［項目１３９］
項目１２９記載のデータ蓄積装置において、
前記コントローラは、前記第１のメモリ部分の各物理ページに、前記特定のコードワードの第１の部分または前記特定のコードワードの第２の部分がプログラムされる概ね等しい確率を提供するように構成されるデータ蓄積装置。
［項目１４０］
項目１２９記載のデータ蓄積装置において、
前記第１のメモリ部分の物理ページにおけるコードワード部分の相対的位置は、前記第２のメモリ部分の物理ページの論理ページに前記コードワード部分がコピーされるときに維持されるデータ蓄積装置。
［項目１４１］
項目１２９記載のデータ蓄積装置において、
前記コントローラは、前記ホスト装置から特定のデータ部分を所望する要求を受信したことに応じて、前記要求されたデータ部分に相当するコードワードの第１の部分を単一ページ読み出しにより第１のページから読み出し、かつ第１の復号化操作を開始して前記第１のページから読み出されたデータと読み出されたパリティに基づき前記要求されたデータ部分を復号化するように構成され、また前記第１の復号化操作の復号化失敗に応じて、前記要求されたデータ部分に相当するコードワードの第２の部分を第２のページから読み出し、かつ第２の復号化操作を開始して前記読み出されたデータと前記読み出されたパリティに基づき、かつ前記第２のページから読み出された合同パリティに基づき、前記要求されたデータ部分を復号化するように構成されるデータ蓄積装置。
［項目１４２］
方法であって、
Ｂを正の数とする１セル当たりＢビットのマルチレベルセル（ＭＬＣ）フラッシュメモリでバイナリキャッシュを使用する場合に、少なくとも１つのデータページを２つ以上のシングルレベルセル（ＳＬＣ）ページに分割するステップと、
Ｂ個より多いＳＬＣページを使用して前記ＭＬＣフラッシュメモリの単一ワード線のデータをキャッシュするステップと、
を含む方法。
［項目１４３］
データ蓄積装置であって、
Ｂを正の数とする１セル当たりＢビットのマルチレベルセル（ＭＬＣ）フラッシュメモリと、
シングルレベルセル（ＳＬＣ）バイナリキャッシュと、を備え、
前記データ蓄積装置は、少なくとも１つのデータページを２つ以上のシングルレベルセル（ＳＬＣ）ページに分割し、かつＢ個より多いＳＬＣページを使用して前記ＭＬＣフラッシュメモリの単一ワード線のデータをキャッシュするように構成されるデータ蓄積装置。
［項目１４４］
Ｂを正の数とする１セル当たりＢビットのマルチレベルセル（ＭＬＣ）フラッシュメモリ装置にデータを書き込む方法であって、
前記ＭＬＣフラッシュメモリ装置に蓄積されるＢ個のデータページを受信するステップと、
前記Ｂ個のデータページの各々を対応する１つ以上のコードワードに符号化するステップと、
前記Ｂ個のデータページの各々につき対応する１つ以上のコードワードを前記ＭＬＣフラッシュメモリ装置のシングルレベルセル（ＳＬＣ）セルに蓄積するステップであって、前記Ｂ個のデータページのうちの少なくとも１つのデータページに関して、対応する１つ以上のコードワードが２つ以上のＳＬＣページに蓄積されるステップと、
前記Ｂ個のデータページに対応するコードワードの全てを前記ＳＬＣセルからＭＬＣセルのワード線にコピーするステップと、
を含む方法。
［項目１４５］
データ蓄積装置であって、
Ｂを正の数とする１セル当たりＢビットのマルチレベルセル（ＭＬＣ）フラッシュメモリ装置と、
前記ＭＬＣフラッシュメモリ装置に結合され、前記ＭＬＣフラッシュメモリ装置に蓄積されるＢ個のデータページを受信し、かつ前記Ｂ個のデータページの各々を対応する１つ以上のコードワードに符号化するように構成されたコントローラと、を備え、
前記データ蓄積装置は、前記Ｂ個のデータページの各々につき対応する１つ以上のコードワードを前記ＭＬＣフラッシュメモリ装置のシングルレベルセル（ＳＬＣ）セルに蓄積するように構成され、前記Ｂ個のデータページのうちの少なくとも１つのデータページに関して、対応する１つ以上のコードワードが２つ以上のＳＬＣページに蓄積され、
前記データ蓄積装置は、前記Ｂ個のデータページに対応するコードワードの全てを前記ＳＬＣセルからＭＬＣセルのワード線にコピーするようにさらに構成されるデータ蓄積装置。
【図１】
0006025844.tif 000007
【図２】
0006025844.tif 000008
【図３】
0006025844.tif 000009
【図４】
0006025844.tif 000010
【図５】
0006025844.tif 000011
【図６】
0006025844.tif 000012
【図７】
0006025844.tif 000013
【図８】
0006025844.tif 000014
【図９】
0006025844.tif 000015
【図１０】
0006025844.tif 000016
【図１１】
0006025844.tif 000017
【図１２】
0006025844.tif 000018
【図１３】
0006025844.tif 000019
【図１４】
0006025844.tif 000020
【図１５】
0006025844.tif 000021
【図１６】
0006025844.tif 000022
【図１７】
0006025844.tif 000023
【図１８】
0006025844.tif 000024
【図１９】
0006025844.tif 000025
【図２０】
0006025844.tif 000026
【図２１】
0006025844.tif 000027
【図２２】
0006025844.tif 000028
【図２３】
0006025844.tif 000029
【図２４】
0006025844.tif 000030
【図２５】
0006025844.tif 000031
【図２６】
0006025844.tif 000032
【図２７】
0006025844.tif 000033
【図２８】
0006025844.tif 000034
【図２９】
0006025844.tif 000035
【図３０】
0006025844.tif 000036
【図３１】
0006025844.tif 000037