(57)【要約】      （修正有）【課題】メモリセルによって蓄積される電荷量を決定し、訂正されたデータ値を確立する装置を提供する。【解決手段】システム１００は、マイクロコード１０６及び可変記憶用の付加メモリを備えたマイクロコントローラ１０２とアドレス指定論理を含む。これによりマイクロコントローラ上で走るファームウェア１０６は、コントローラー１０２と論理部と通信を行うことができ、その動作を制御できる。ファームウェアはマイクロコントローラ命令の集合である。全てのコントローラは、マイクロコントローラ・サブシステム１０８とのインターフェースを有する。ファームウェアは読み出しフロー、書き込みフロー、較正、並びに他の全ての機能を実行する状況で各部のハードウェアを制御するためにインターフェースを用いる。【選択図】図１
2014179077.tif 000002
【特許請求の範囲】
【請求項１】
メモリにおいて、
セルアレイデバイスにアクセスして、前記セルアレイデバイス用の性能特性の値を確立するように構成され、且つ、引き続き、前記セルアレイデバイスにアクセスして、前記セルアレイデバイスに関連した前記性能特性の値に基づき、補正を行うように構成された制御配列を備え、
前記制御配列は、読み出し動作において前記セルアレイデバイスにアクセスして、前記セルアレイデバイスのメモリセルによって蓄積される電荷量を決定し、且つ、前記電荷量に関連したデータ値を決定するように構成され、
前記制御配列は、さらに、前記電荷量及び前記性能特性値に基づき、前記特定のメモリセル用の訂正されたデータ値を確立するように構成された、装置。
【請求項２】
前記制御配列は、前記性能特性値を変えてアップデートした値を創り出すように構成された、請求項１に記載の装置。
【請求項３】
前記制御配列は、前記セルアレイデバイスの１つ以上のメモリセル用の性能特性値を確立するように構成された、請求項１に記載の装置。
【請求項４】
書き込み動作及び読み出し動作において、前記セルアレイデバイスのメモリセルにアクセスするように構成された処理装置と、
前記処理装置によって実行された場合に、前記メモリセル内の複数のデータ値を定義するための目標電荷レベルを課すように構成された命令セットと、
をさらに備える、請求項１に記載の装置。
【請求項５】
前記制御配列は、書き込み動作において、前記セルアレイデバイスにアクセスして、所定のデータ値を前記セルアレイデバイスのメモリセルに書き込むように構成され、
前記所定のデータは、前記目標電荷レベルに関連付けられ、
前記制御配列は、さらに、前記所定のデータ値及び前記性能特性値に関連した前記目標電荷レベルに基づいて、訂正した目標電荷レベルを確立するように構成され、且つ、前記訂正した目標電荷レベルを前記メモリセルに適用することによって、前記書き込み動作を実行するように構成された、請求項４に記載の装置。
【請求項６】
メモリ構成において、
前記メモリセルの少なくとも１つの特性に基づく所定のメモリセルの予測応答を確立するように構成され、且つ、前記予測応答に基づき、電荷出力パラメータを調整することによって、前記所定のメモリセルに電荷を出力するための制御配列、を備える装置。
【請求項７】
メモリ構成において、較正する方法であって、
前記メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを特定する段階と、
前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記変換する段階と、
前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリセル内における既知の位置に前記メモリシンボルを書き込む段階と、
前記既知の位置における前記メモリセル内に記憶された電荷レベルを検知することによって、前記メモリセル内における前記既知の位置からメモリシンボルを読み出す段階と、
前記読み出されたメモリシンボルを比較コードデータに変換する段階と、
前記パターンコードデータを前記比較コードデータと比較して、差異値を決定する段階と、を備える方法。
【請求項８】
前記差異値を用いて性能特性を計算する段階と、
前記性能特性をデータ構造に記憶する段階と、
を更に備える、請求項７に記載の方法。
【請求項９】
前記メモリセルに書き込まれる書き込みデータを特定する段階と、
前記性能特性を前記書き込みデータに適用して、補正された書き込みデータを生成する段階と、
前記補正された書き込みデータを補正されたメモリシンボルに変換する段階であって、前記補正されたメモリシンボルは、前記メモリセルに適用される電荷レベルを特定する前記段階と、
前記補正されたメモリシンボルによって特定された前記電荷レベルを前記メモリセルに適用することによって、前記補正されたメモリシンボルを前記メモリセルに書き込む段階と、
を更に備える、請求項８に記載の方法。
【請求項１０】
前記フラッシュメモリの前記メモリセルから未補正メモリシンボルを読み出す段階であって、前記未補正メモリシンボルは、前記メモリセル内の電荷レベルを特定する前記段階と、
前記未補正メモリシンボルを未補正コードデータに変換する段階と、
前記性能特性を前記未補正コードデータに適用して、補正されたコードデータを生成する段階と、
を更に備える、請求項８に記載の方法。
【請求項１１】
データの書き込み方法であって、
バッファＲＡＭからユーザデータシンボルを読み出す段階と、
ユーザデータシンボルのブロックに加え、ＥＣＣパリティシンボルを生成するように、前記ユーザデータシンボルにＥＣＣパリティを含む追加のデータシンボルを処理して追加する段階と、
ＬＤＰＣ符号化方式を用いて、前記ユーザデータシンボル及びＥＣＣパリティシンボルを符号化する段階と、
前記ＬＤＰＣ符号化処理によって出力されたシンボルのストリームを符号化してコードシンボルのストリームを創り出す段階と、
前記コードシンボルのストリーム内の１つ以上のコードシンボルを事前補正して、１つ以上のメモリシンボルを創り出す段階と、
１つ以上のメモリシンボルを符号化する段階と、
１つ以上のメモリシンボルをメモリ構成に転送する段階と、
を含む方法。
【請求項１２】
請求項１１に記載の方法が実行された、装置。
【請求項１３】
事前補正された１つ以上のコードシンボルは、較正処理によって創り出されるデータを用いて実行される、請求項１１に記載の方法。
【請求項１４】
前記較正処理は、前記メモリ構成に関連して実行され、
前記メモリ構成は、電荷蓄積容量及び複数のデータ値を定義するための目標電荷レベルを有するメモリセルを含み、
前記較正処理は、
前記メモリセルを較正するのに用いるパターンコードデータからなる所定の情報パターンを特定する段階と、
前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記段階と、
前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリシンボルを前記メモリセル内の既知の位置に書き込む段階と、
を含む、請求項１３に記載の方法。
【請求項１５】
データを読み出す方法であって、
メモリ構成のメモリセルから１つ以上のメモリシンボルを読み出す段階と、
前記メモリシンボルをコードシンボルのストリームに変換する段階と、
前記コードシンボルのストリームの１つ以上のコードシンボルを事後補正して、事後補正コードシンボルのストリームを創り出す段階と、
前記事後補正コードシンボルのストリームを、数列デコードして、データシンボルのストリームを創り出す段階と、
前記データシンボルのストリームに、ＬＤＰＣデコード方式を適用する段階と、
前記ＬＤＰＣデコード処理から受け取る入力に、ＥＣＣデコード処理を実行する段階と、
前記ＥＣＣデコード処理の出力に応じて以下のうち１つ：
前記データシンボルのストリーム内の任意の訂正可能な誤りを検出して訂正し、次いで、前記データシンボルをバッファに転送するか；
前記データシンボルのストリームに誤りが検出されず、次いで、前記データシンボルを前記バッファに転送するか；又は、
前記データシンボルのストリーム内に、前記ＥＣＣデコード処理によって訂正できるよりも多くの誤りを検出し、次いで、中断するか；
を実行する段階と、
を含む、方法。
【請求項１６】
前記ＬＤＰＣデコード処理の出力は、汚れているユーザデータと、ＥＣＣパリティビットとの一方又は双方を含む、請求項１５に記載の方法。
【請求項１７】
請求項１５に記載の方法が実行された、装置。
【請求項１８】
事後補正は、較正処理によって創り出されるデータを用いて実行される、請求項１５に記載の方法。
【請求項１９】
前記較正処理は、前記メモリ構成に関連して実行され、
前記メモリセルは、電荷蓄積容量及び複数のデータ値を定義するための目標電荷レベルを有し、
前記較正処理は、
前記メモリセルの較正に用いるパターンコードデータからなる所定の情報パターンを特定する段階と、
前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記段階と、
前記メモリシンボルによって特定される前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリシンボルを前記メモリセル内の既知の位置に書き込む段階と、
を含む、請求項１８に記載の方法。
【請求項２０】
前記目標電荷レベルの１つは、調整可能な識別レベルに関連付けられる、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、デジタルデバイス構造に関する。特に、本発明は、固体記憶素子を含むデバイス用のデジタルシステム構成及び関連する方法に関する。
【背景技術】
【０００２】
電子デバイスの流行を認識するには、現代社会の任意の公共の場を実質的に簡単に調べるだけでよい。そのようなデバイスには、携帯電話、音楽プレーヤ、ポータブルコンピュータ、携帯情報端末、ポケベル、デジタルカメラ、デジタルカメラ一体型ビデオ、パーソナルゲームデバイス、及び電子書籍が含まれるが、これらに限定されない。少なくとも部分的にデジタル化への動きに帰するこれらのデバイスに存在する性能については、継続的な改善が見られる。
【０００３】
将来の電子デバイスに関する要請には、性能の更なる改善と結びついた更なる小型化が含まれる。特に関連する領域は、益々増大しつつある量のデジタル情報を記憶したいという要望にある。膨大な量のデジタルデータを記憶するニーズに対処しようとして、設計者は、電子メモリを、特に、フラッシュメモリの形態で次第に用いるようになっている。この解決策は、ＭＰ３プレーヤを含む最先端技術の音楽プレーヤの例で明らかである。
【０００４】
記憶装置のサイズを小さく維持しつつデータ記憶量を大きくしようする試みにおいて、現在のフラッシュメモリ技術の中には、単なる２進数の１及びゼロの記憶とは対照的に、多数のデータレベルを単一のメモリセル内に記憶できるものがある。しかしながら、多数のデータレベルを単一のメモリセル内に記憶可能な場合、フラッシュメモリは、読み出し及び書き込み動作実施時、誤りが起き易くなる。また、単一メモリセル内において多数のデータレベルを利用する従来のフラッシュ技術は、通常、２の偶数乗に対応する数のレベルの記憶に限定される。
【０００５】
本明細書で記載する内容は、何らかの不利な点を解決する実施形態や、上記したような環境でのみ機能する実施形態に限定されない。むしろ、この背景は、本明細書に述べる幾つかの実施形態を実践し得る１つの代表的な技術領域を示すためだけに提供する。
【発明の概要】
【課題を解決するための手段】
【０００６】
これらの及び他の制限は、フラッシュメモリデバイスを用いてデータを記憶し検索するためのシステム及び方法に関する本発明の実施形態によって克服される。
一実施形態例では、フラッシュメモリ構成内に装置が含まれる。本フラッシュメモリ構成には、各メモリセルがデジタル記憶の実現に用いるための電荷蓄積容量を有する複数のメモリセルが、含まれる。本装置には、書き込み動作及び読み出し動作の際にメモリセルの各々にアクセスするように構成された処理装置が含まれる。本装置には、更に、メモリセルの各々に対する複数のデータ値定義用の目標電荷レベルを付加するようプロセッサに指示するための命令セットが含まれる。目標電荷レベルは、電荷蓄積容量に対してプログラムにより可変であり、一実施形態において、目標電荷レベルによって定義された独特なデータ値の数は、２の非整数乗である。
【０００７】
この一般的なアプローチの変形版を更に示す。例えば、他の実施形態において、命令セットは、電荷蓄積容量間の電荷の量を累進的に増加させることを特徴とする複数の電荷層から構成される電荷層構造を確立する。各電荷層は、記憶値及び電荷量を定義する電荷値に関係する。電荷層構造を構成する電荷値は、プロセッサによってプログラムにより可変である。
【０００８】
本発明は、更に、誤り訂正及び補正を実施するように構成されたメモリデバイスに関する。また、例えば、本発明の一実施形態において、セルアレイデバイスを用いることが可能なフラッシュメモリ構成に関するが、この場合、セルアレイデバイスは、異なるセルアレイデバイス間で変動する性能特性に関連する。フラッシュメモリ構成には、セルアレイデバイスにアクセスして、セルアレイデバイスの性能特性の値を確立するように構成された制御配列を有する装置が含まれる。制御配列は、更に、セルアレイデバイスに引き続きアクセスし、性能特性の値に基づき、補正を行うように構成されている。補正は、例えば、上記したように、複数のデータ値を定義するための或る範囲の目標電荷レベルがメモリセルに含まれる場合に用いられる。読み出し及び書き込み動作を実施する場合、制御配列は、性能特性の値に部分的に基づき、訂正された目標電荷レベルを確立するように構成される。
【０００９】
本発明の他の実施形態は、誤り検出及び訂正を実施する際に用いられる性能特性を決定するための方法及びシステムを提供する。例えば、一実施形態において、フラッシュメモリ構成には、各メモリセルがデジタル記憶の実現に用いるための電荷蓄積容量を有する複数のメモリセルが含まれる。各メモリセルには、そこに記憶される複数のデータ値を定義するための目標電荷レベルが含まれる。メモリセルからの読み出し及びメモリセルへの書き込みの内の少なくとも一方の間に用いられる補正データを生成するための方法を開示する。本方法には、メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを識別する段階が含まれる。パターンコードデータは、メモリシンボルに変換され、この場合、メモリシンボルの各々は、目標電荷レベルの内の１つを識別する。メモリシンボルは、メモリシンボルによって特定された目標電荷レベルをメモリセルに適用することによって、メモリセル内における既知の位置に書き込まれる。
【００１０】
メモリセルを較正する場合、本発明の一実施形態では、既知の位置にあるメモリセル内に記憶された電荷レベルを検知することによって、メモリセル内における既知の位置からメモリシンボルを読み出す。メモリシンボルは、比較コードデータに変換され、比較コードデータは、既知の位置に書き込まれた元のパターンコードデータと比較される。この比較は、差異値を決定するために用いられ、差異値は、性能特性を計算するために用い得る。性能特性は、誤り検出及び訂正を実施する場合、メモリセルに対する後続の読み出し及び書き込み時、用いられる
この概要は、詳細な説明において更に以下に記載する概念の選択を簡単な形態で導入するために提供する。この概要は、権利を主張する主題の主要な特徴又は本質的な特性を特定しようとするものではなく、また、権利を主張する主題の範囲の決定の補佐として用いることも意図していない。
【００１１】
本発明の他の特徴及び利点については、以下の説明に記載するが、部分的には、説明から明らかになり、あるいは、本発明の実践によって習得される。本発明の特徴及び利点は、添付の請求項において特に示す手段及び組合せによって、実現される。本発明のこれらの及び他の特徴は、以下の説明及び添付の請求項から更に充分に明らかになるであろう。あるいは、本明細書において以下に記載する本発明の実践によって習得される。
【００１２】
本発明の上記及び他の利点及び特徴を更に明確にするために、添付図面に示したその具体的な実施形態を参照して、本発明の更に特定の説明を行う。これらの図面は、本発明の代表的な実施形態を示すだけであり、従って、その範囲を限定すると見なさないことを認識されたい。本発明について、添付図面を利用して、更に具体的に且つ詳細に説明し記述する。
【図面の簡単な説明】
【００１３】
【図１】コントローラ及びメモリデバイスを含む固体記憶素子例を示す図。
【図２】記憶媒体にデータを書き込む方法の一例を示す図。
【図３】記憶媒体からデータを読み出すための方法の一例を示す図。
【図４】記憶媒体からデータを読み出す際に補正用の根拠を形成する情報を生成するための方法の一例を示す図。
【図５】記憶媒体にデータを書き込む際に補正用の根拠を形成する情報を生成するための方法の一例を示す図。
【図６ａ】それぞれメモリシンボルエンコーダの例及びメモリシンボルデコーダの例を示す図。
【図６ｂ】それぞれメモリシンボルエンコーダの例及びメモリシンボルデコーダの例を示す図。
【図７ａ】メモリセル記録の３つの変形版のグラフの例を示す図。
【図７ｂ】メモリセル記録の３つの変形版のグラフの例を示す図。
【図７ｃ】メモリセル記録の３つの変形版のグラフの例を示す図。
【図８ａ】図１に示すコントローラに実装された数列エンコーダの例及びデコーダの例を示す図。
【図８ｂ】図１に示すコントローラに実装された数列エンコーダの例及びデコーダの例を示す図。
【図９ａ】メモリセルの様々な状態及びデータ値に関連付けられた目標電荷値を示すグラフ。
【図９ｂ】関連するメモリセルから読み出された未補正値を表すメモリセルに記憶された電荷値を示すグラフ。
【発明を実施するための形態】
【００１４】
以下の好適な実施形態の詳細な説明では、本明細書の一部を形成する添付図面を参照する。また、図面では、説明のために、本発明を実践する具体的な実施形態を示す。他の実施形態を用い得ること、及び本発明の範囲から逸脱することなく構造的な変更を行い得ることを理解されたい。
【００１５】
システム
さて、図１に着目すると、これは、全般的に１００で示したシステム及びその様々な構成要素の一実施形態例のブロック図である。このシステム１００は、本明細書において、固体記憶素子ＳＳＳＥ又はＳ３Ｅと称することがある。図１の部位は、データのプログラミング（即ち、書き込み）及び読み出し用機能の基盤であるデータ経路及び制御配列要素を示す。図示したシステム全体には、コントローラ１０２及び少なくとも１つのメモリデバイス１０４が含まれる。複数のメモリデバイス１０４を有するシステムでは、各メモリデバイスは、システム用の記憶媒体の一部を構成する別々のデバイスであってよい。一例において、各メモリデバイス１０４は、個々の半導体チップ上に形成してよい。対照的に、複数のメモリデバイス１０４は、単一の半導体チップ上に形成してもよい。
【００１６】
後で分かるように、固体記憶素子１００は、データ記憶媒体、ホスト接続性、及びデータ記憶、データ検索、及び記憶媒体の最適な使用に必要な様々な管理機能のための方法が含まれる複数の集積回路デバイス（ハードウェア）で構成される。一実施形態において、構成要素集積回路は、複数の固体記憶素子メモリデバイス（Ｓ３Ｅメモリデバイス）１０４及び単一の固体記憶素子コントローラデバイス（Ｓ３Ｅコントローラデバイス）である。記憶媒体用の１つの適切な技術は、ＮＡＮＤフラッシュである。しかしながら、他の不揮発性記憶技術も同様に適用可能である。他の選択肢としての記憶媒体の例としては、ＭＲＡＭ（磁気ランダムアクセスメモリ）、ＰＲＡＭ（相変化ランダムアクセスメモリ）、及びＭＥＭＳ（マイクロ電気機械）式媒体に基づく記憶媒体が挙げられる。他の適切な記憶媒体技術も特定し得るが、既存のものやまだ開発中のものもある。これらの様々な技術を用いるメモリセルに共通することは、アナログ形式で情報を記憶するメモリセルの能力にある。即ち、これらのデバイスは、一般的に、オン／オフ又はデジタルデバイスとしてあまり特徴付けられていない。従って、本開示の文脈での電荷レベルを使用することは、自然な例示と見なされる。
【００１７】
システム１００は、マイクロコード（ファームウェア）１０６及び可変記憶用の付加メモリを備えたマイクロコントローラ１０２を含まれる。システム１００は更に、アドレス指定論理を含み、これにより、マイクロコントローラ１０２上で走るファームウェア１０６は、コントローラ１０２論理部と通信を行うことができ、またその動作を制御できる。マイクロコードは、不揮発性記憶媒体に記憶される。本例では、マイクロコードは、コントローラ中の不揮発性メモリに記憶されるが、そのようなマイクロコードを記憶するための不揮発性記憶媒体は、コントローラ１０２及び複数のメモリデバイス双方に対して外付けであっても、１つ又は複数のメモリデバイス内にあってもよい。
【００１８】
ファームウェア１０６は、コントローラ１０２によって実施される全ての動作を連係させ制御するマイクロコントローラ命令（即ち、マイクロコード）の集合である。全てのコントローラ１０２部は、マイクロコントローラ・サブシステム１０８とのインターフェイスを有し、これらインターフェイスは、読み出しフロー、書き込みフロー、較正、並びに実施例において要求される他の全ての機能を実行する状況で、各部のハードウェアを制御するためにファームウェア１０６によって用いられる。これら個々のインターフェイスは、説明図を分かり易くするために図示していないが、当業者は認識されるように、様々な部位との通信を実現する。
【００１９】
フラッシュインターフェイス制御１１０は、コントローラ１０２と複数のメモリデバイス１０４との間のインターフェイスの非データ部を構成する制御論理及び信号１１２を生成する。この部位からの信号１１２は、例えば、チップ選択、クロック、動作コード、アドレス情報、及びメモリデバイスインターフェイスを動作させるための所定の実施例で要求されるいずれか他の特定の信号を含み、メモリデバイス１０４との１つ又は複数のインターフェイス上で物理的な制御ラインを実現する。制御論理及び信号の生成において、フラッシュインターフェイス制御１１０は、このすぐ後に記載するように、転送制御１１４と協働する。
【００２０】
転送制御１１４は、複数のメモリデバイス１０４と読み出しフロー及び書き込みフローを連係して働かせるのに必要な機能を提供する。転送制御１１４の１つ又は複数の具体例は、実際の設計において実現される。複数の転送制御１１４は、複数のメモリデバイス１０４の１つ又は複数での読み出しフロー、書き込みフロー、又は読み出しフロー及び書き込みフローの組合せの同時動作を可能にする。各転送制御１１４は、マイクロコントローラ・サブシステム・インターフェイス１１８及びファームウェア１０６によって制御され、フラッシュインターフェイス制御１１０と共に動作する。転送制御１１４は、フラッシュインターフェイス制御１１０に接続し、フラッシュインターフェイス制御のサービスを要求する。１つの転送制御１１４及びフラッシュインターフェイス制御１１０を組み合わせた機能は、メモリデバイス１０４とコントローラ１０２それ自体との間でデータブロックをブロック毎に転送することである。転送制御１１４の他の例については、説明図を分かり易くするために図示していないが、他の例は、単一の例の動作と同様に機能する。
【００２１】
読み出し処理動作
以下の節では、読み出し処理の間にコントローラ１０２によって実行されるブロック毎の処理について記載する。一実施例において、ホストとメモリデバイス１０４との間の転送は、一連の単一ブロックの転送として起こる。尚、ホストは、説明図を分かり易くするために示さないが、ホストインターフェイス１１６に接続される。
【００２２】
例示した実施形態において、複数のメモリデバイス１０４は、各々、フラッシュアレイ１１８を含む。各フラッシュアレイ１１８は、複数の記憶セルを含むが、これらは、本明細書では、個別にメモリセルと呼ぶことがある。フラッシュメモリにおいて、各メモリセルは、一般的に、電荷蓄積ゲート構造を備えたＦＥＴ（電界効果トランジスタ）である。
【００２３】
本実施形態例において、メモリデバイス１０４の各々には、更に、メモリシンボル読み出しモジュール１２２（後述）とフラッシュアレイ１１８（上述）との間のインターフェイスを提供するための１つ又は複数のセンス増幅器１２０が含まれる。ほとんどの実施例は、複数のセンス増幅器１２０を特徴とし、センス増幅器１２０の数及び配列は、メモリデバイス実施例に依存する。センス増幅器１２０の機能は、フラッシュアレイ１１８の１つのメモリセルの状態をサンプリングすること、及び検知された状態の表示をそれぞれのメモリシンボル読み出しモジュール１２２のそれぞれの入力に提示することである。
【００２４】
各メモリデバイス１０４には、フラッシュアレイ１１８に記憶された情報を検出し、また、記憶された情報を表すメモリシンボルをコントローラ１０２に送信するメモリシンボル読み出しモジュール１２２がある。例示した実施形態において、アナログ−デジタル（Ａ／Ｄ）変換器１２４は、メモリシンボルがデジタル形式でコントローラ１０２に転送されるように、メモリシンボル読み出しモジュール１２２の一部を形成する。他の実施形態では、メモリシンボル読み出しモジュール１２２及び関連するＡ／Ｄ１２４は、アナログラインがセンス増幅器１２０からコントローラ１０２を接続するように、コントローラ１０２内に配置される。尚、メモリシンボルは、手元にあるメモリ媒体用に選択された一組の値又はレベルの内の１つに対応し得る値を有する構成体である。この組の値又はレベルは、「アルファベット」と称することがある。
【００２５】
１つ又は複数の組のメモリシンボルは、更に記載するように、所定のコントローラ１０２の実施形態に含まれる。コントローラ１０２は、１つ又は複数のメモリデバイス１０４が接続されたインターフェイス１２８からメモリシンボルを受信し、これらの記号を符合シンボルに復号する。各符合シンボルは、符合シンボルアルファベットの１単位と見なされる。符合シンボルの文字列は、復号処理用の特性が与えられた符号化情報を表す。復号処理は、メモリシンボルエンコーダ１３０に対して、後に記載するそれと逆であってよい。基数ｋの数列は、符合シンボル列に変換される。メモリシンボルデコーダ１２６を離れる際、符合シンボルは、何らかの適切な方法で、例えば、２進数ビットストリーム又はバイト等の２進数ベースの数値のストリームによって、表現される。メモリシンボルデコーダ１２６は、メモリシンボルから符合シンボルへのマッピングを実現することを認識すべきである。メモリシンボルは、メモリセル用に定義される識別レベルの数に基づき、２の非整数乗を表し得る。もちろん、書き込み動作は、後記するように、符合シンボルからメモリシンボルへのこのマッピングの逆を実現する。記憶システム１００は、定義可能な又は選択可能な基数を有し得る。また、基数は、２の整数乗である必要はない。
【００２６】
メモリシンボルデコーダ１２６からの符合シンボルは、コントローラ１０２／メモリデバイスインターフェイスに取り付けられた複数のメモリデバイス１０４に対してコントローラ１０２により実施される較正ステップによって生成された情報に基づき、任意に調整される。本明細書に記載する誤り訂正方式に関しては、これらの方式は、個別に又は任意の所望の組合せで用いられることを認識すべきである。更に、同様に適用可能であって、少なくとも潜在的に、例えば、通信理論技術又はディスクドライブ技術から適合される他の方式も存在し得る。この点において提示されたこととして、不揮発性フラッシュメモリに関する最先端技術は、本明細書において明らかにされたタイプの誤り訂正の必要がないように、読み出し及び書き込み動作に関して高い精度を実現することに帰する。しかしながら、本開示は、これらに限定するものではないが、個々のメモリセルに更に大量の情報を記憶する能力を含む実質的な恩恵を提供して、そのような高い絶対的記録／再生精度を強化する必要性を無くする。
【００２７】
較正ステップの更なる詳細について、１つ又は複数の該当する点を以下に記載する。この点に関して、以下に記載する図４及び５は、それぞれ書き込み及び読み出しフローの一実施形態を表し、これによって、較正処理は、事後補正モジュール１３２によって用いられる選択されたメモリデバイス１０４の挙動に関するパラメータデータを得ることができる。較正フロー中に生成された較正情報は、引き続き、メモリシンボルデコーダ１２６から流れる受信符合シンボルストリームに適用することができる。一実施形態において、事後補正１３２記号調整は、全記号ブロックに渡って実施される。各記号の調整は、固有の記号毎調整の組合せであったり、記号ブロック全体に渡って一定の調整値であったり、予測可能に変動する調整値であってよい。事後補正１３２記号調整を決定する方法は、コントローラ１０２に取り付けられた各メモリデバイス１０４の根底にあるメモリ技術の特定の特性に従って変わり、また、カスタマイズし得る。更に、事後補正１３２調整は、デバイス毎のベースでもカスタマイズし得る。
【００２８】
本実施形態には、更に、事後補正モジュール１３２又はメモリシンボルデコーダ１２６から符合シンボルのストリームを受信するための、また、符合シンボルをデータ記号に変換するための数列検出器１３４が含まれる。符合シンボルは、数列検出器１３４を一度に１ブロック通過するが、このことは、入力符合シンボルストリームが、データブロックサイズ及びコードのレートの一次関数である既知の長さを有することを意味する。数列検出器１３４は、反復復号アルゴリズムを実現する。従って、所定のデータブロックは、後で詳細に記載するように、数列検出器１３４を２回以上通過する。数列検出器１３４によって生成されたデータ記号は、ユーザデータシンボルであるが、これらのシンボルは、部分的な誤り訂正処理のみが、この時点までにそれらに対して実施されたという観点から「汚れている」と見なされる。
【００２９】
順次相関方式の実施例の場合、一般的に、任意の所定のメモリセルの内容は、少なくとも１つの他のメモリセルの内容に基づき解釈される。従って、読み出し動作中、誤り確率は、一組の正規のデータ値の内の特定の１つに対応して読み出される値に関連付けられる。任意の適切な方式を用いて、順次相関を課してもよい。現在利用可能な方式には、例えば、ビタビ検出器、サーパー（Ｈ．Ｔｈａｐａｒ）及びパテル（Ａ．Ｐａｔｅｌ）、「磁気記録の記憶密度向上のための部分応答システムのクラス」、ＩＥＥＥ会報、磁気学、第２３巻５、３６６６−３６６８頁、１９８７年に記載された検出器が含まれ、この文献は、本明細書に参照によって組み込まれる。１つ又は複数の該当する点について、以下に更に説明を行う。
【００３０】
本例のシステム１００には、更に、パリティ情報で以前符号化されたユーザデータに誤り訂正を行うためのＬＤＰＣ（低密度パリティチェック）デコーダ１３６が含まれる。ＬＤＰＣの例は、本明細書に参照により組み込まれる、ガライア（Ｇａｌｌａｇｈｅｒ）、「低密度パリティチェックコード」、ＭＩＴ出版会、１９６３年、マッケイ（Ｄａｖｉｄ  Ｊ．Ｃ．ＭａｃＫａｙ）、「情報理論、推論、及び学習アルゴリズム」、ケンブリッジ大学出版会、２００３年に記載されている。ＬＤＰＣ符号化は、書き込み処理中に実施されるが、これについては、更に詳細に後記する。ＬＤＰＣデコーダ１３６は、反復デコーダであり、このため、デコーダによって処理される情報の各ブロックは、本実施形態で最大値として定義された反復回数まで繰り返し処理される。入力データは、ＬＤＰＣパリティが含まれる符合シンボル形態のユーザデータである。出力は、ユーザデータシンボルのみである。出力ユーザデータシンボルは、それらの誤り含有量が、入力符合シンボルのそれより小さいように、ＬＤＰＣ復号処理によって「浄化」されている。
【００３１】
書き込み処理中に、ＬＤＰＣ符号化処理には、パリティチェック行列と称される数学構造を用いた、受信ブロックの情報（例えば、データビット）に関するパリティの計算が含まれる。ＬＤＰＣ配列には、２進数情報を伴うことから、符号化される予定の各ブロックのユーザデータは、一連の２進数ビットとして処理される。パリティチェック行列をＬＤＰＣパリティ計算に適用すると、計算しなければならない各パリティビットに対してデータメッセージの中の語として選択された複数のビットを用いる一組の論理式の解が得られる。パリティチェック行列の配列によって要求される全てのパリティビットは、計算後、符号化処理への入力であったユーザデータブロックに付加される。
【００３２】
読み出し処理の間、組み合わせられたユーザデータとＬＤＰＣパリティとは、数列検出器１３４から受信される。一実施形態において、数列検出器１３４は、雑音及び歪みから生じる受信データの誤りを特定及び修正するが、数列検出器１３４から返されるユーザデータ及びＬＤＰＣパリティに残留誤りが依然として存在し得ることが予想される。ＬＤＰＣデコーダ１３６は、他の誤りを訂正するように、受信したユーザデータ及びＬＤＰＣパリティに作用する。復号化動作は、符号化処理の逆と同様であり、語としての複数のデータビット及びＬＤＰＣパリティビット双方を用いた論理式の逆の計算に基づき、データビット値の推定を伴う。この演算には確率を伴うことから、各計算の結果は、各計算に対する可能な結果の集合によって支配され、従って、復号処理は、１つの計算から次の計算へ確率を持ち越す処理である。このため、復号処理は、元来反復性のものであり、従って、ＬＤＰＣデコーダ実装により、受信ユーザデータ及びＬＤＰＣパリティのブロックにおける誤りの発見及び修正において複数の反復を実施し得る。
【００３３】
本システム１００には、更に、ＥＣＣ（誤り訂正コード）デコーダ１３８が含まれ、これは、一例の復号処理における最終ステップである。ＥＣＣデコーダ１３８への入力には、ＥＣＣパリティ記号が付加されたブロックの情報を含むユーザデータシンボルストリームを含む。ＥＣＣエンコーダ１４４の詳細については、１つ又は複数の該当する点に関して、書き込み処理の説明と共に以下に記載する。出力は、正常な復号によりエラーの無いデータになる程度に「清浄な」データである。エラーの無い状態が、ＥＣＣデコーダ１３８によって達成できない場合、エラー状態は、適切なエラー取り扱い処理を行い得るように、信号伝達される。本出願のＥＣＣ誤り検出方式の実現については、本開示の恩恵により、当業者が、ＥＣＣ及びＬＤＰＣ復号及び符号化部位に関する本明細書で参照されるような機能を提供できると考えられる。
【００３４】
本例のシステム１００には、更に、ＥＣＣ復号処理の間にＬＤＰＣデコーダ１３６から送られたユーザデータ記号を保持するために、ＥＣＣデコーダ１３８と協働して用いられるデータステージングメモリを含むＦＩＦＯ（先入れ先出し）モジュール１４０が含まれる。ＬＤＰＣデコーダ１３６がデータブロックの処理を終了すると、そのデータブロックは、ＦＩＦＯ１４０に転送される。ＦＩＦＯ１４０は、ＥＣＣデコーダ１３８がそれを処理している間、データ用の保持領域としての役割を果たす。ＥＣＣデコーダ１３８は、ＦＩＦＯ１４０の各データブロックを解放して、バッファ１４２に転送する責任を負っている。ＥＣＣ復号処理が、ＬＤＰＣデコーダから転送されたユーザデータブロックの一部としてユーザデータの誤りを特定した場合、訂正が、ＦＩＦＯ１４０に行われる。ユーザデータの各ブロックは、そのブロックのＥＣＣ復号処理が完了した後、ＦＩＦＯ１４０からバッファ１４２に転送される。
【００３５】
本システム１００には、更に、データセキュリティを保証する１つ又は複数の機能を含み得るセキュリティモジュール１４６が含まれる。読み出し処理では、その目的は、メモリデバイス１０４から読み出されるデータを復号することである。セキュリティモジュール１４６が、使用不能である又は存在しない場合、読み出しデータフローは、ＦＩＦＯ１４０から直接バッファ１４２に至る。セキュリティ機能が使用可能である場合、データフローは、ＦＩＦＯ１４０からセキュリティモジュール１４６に至り、そして、セキュリティモジュール１４６からバッファ１４２に至るが、これについては、この直ぐ後に記載する。セキュリティモジュール１４６が使用可能である場合、セキュリティモジュールへの入力データは、暗号化されたユーザデータであり、出力は、復号されたユーザデータである。任意の適切な復号処理を用いてよく、これに限定するものではないが、ＡＥＳ（高度暗号化方式）を含み、現在利用可能な又は未だ開発中のものであってもよい。この時点で他の該当する機能を実現し得ることを認識されたい。例えば、ユーザを認証し、キーを生成し、キーを保護し、他の実体とキーを交換する等のサポート機能があってもよい。
【００３６】
メモリバッファ１４２は、ホスト（図示せず）との間で受け渡されるユーザデータブロック用のステージング領域として機能する。バッファ１４２は、ホストとコントローラ１０２との間の転送用の及び複数のメモリデバイス１０４で進行中の書き込み及び読み出し処理用の速度整合及び同期メカニズムとして機能する。当業者は、この開示全体を考慮して、そのような機能を容易に提供されるであろう。
【００３７】
ユーザデータは、ホストへ送られる前に、バッファ１４２からホストインターフェイス１１６に転送される。該当する実施形態には、一般的に受け入れられたホストインターフェイス用の仕様及び規格に準拠する少なくとも１つのインターフェイスが含まれる。用い得るホストインターフェイスの例としては、ＡＴＡ、ＵＳＢ、シリアルＡＴＡ（ＳＡＴＡ）、セキュアデジタル（ＳＤ）、コンパクトフラッシュ(登録商標）（ＣＦ）等が挙げられる。
【００３８】
書き込み処理動作
以下の節では、書き込み転送中にコントローラ１０２によって実行されるブロック毎の処理について述べる。書き込みデータは、（ホストインターフェイス１１６を介したホストからバッファへの転送の結果として、バッファ１４２に書き込まれて）バッファ１４２で起こり、符号化されたデータが１つ又は複数のメモリデバイス１０４のセルに書き込まれるプログラミングステップによって、終了する。
【００３９】
メモリバッファ１４２は、ある程度詳細に上記したが、書き込み処理の場面では、ホストから渡されたユーザデータブロック用のステージング領域として、同じ様に機能する。この場合、バッファ１４２は、処理されるユーザデータの出所であり、コントローラの書き込み処理の結果として、メモリデバイス１０４に最終的に書き込まれる。
【００４０】
読み出し動作に関して上記したように、セキュリティモジュール１４６には、データセキュリティを保証するために用いられる一組の機能が含まれる。その用途は、任意であり、この点においては、図１の本例のシステム１００が配備される特定の製品の用途及び書き込み動作が実行される状況に依存する。セキュリティモジュール１４６が使用不能である又は全く存在しない場合、書き込みデータフローは、バッファ１４２からＥＣＣエンコーダ１４４に直接向かう。他方、セキュリティモジュール１４６が使用可能である場合、データは、バッファ１４２からセキュリティモジュール１４６に流れる。セキュリティモジュール１４６への入力データには、非暗号化ユーザデータのブロックを含んでよく、また、セキュリティモジュールによって出力されたデータには、暗号化されたユーザデータのブロックを含み得る。現在利用可能な又は未だ開発中の任意の適切な暗号化処理は、これに限定するものではないが、高度暗号化方式（ＡＥＳ）を含む復号化処理と協働して用いられる。
【００４１】
一実施形態において、ＥＣＣエンコーダ１４４は、第１符号化ステップを実行する。バッファ１４２から転送されたデータは、ユーザデータであり、ＥＣＣエンコーダ１４４は、ユーザデータブロックに基づき決定される一組のパリティシンボルを添付する。ＥＣＣエンコーダ１４４からの出力には、ユーザデータシンボルのブロック及び一組のＥＣＣパリティシンボルを含む。全体的な書き込みフローにおいて、ＥＣＣエンコーダ１４４によって生成されたＥＣＣパリティシンボルは、後続のステップによってユーザデータの一部と見なされる。この場面では、任意の所定のデータブロックについて、ユーザデータ記号とＥＣＣパリティシンボルとの連結は、ＬＤＰＣエンコーダ１４８（後記）及び数列エンコーダ１５０によって、単一のユーザデータ記号ストリームと見なされる。少し異なる表現をすると、ＥＣＣパリティ記号は、本実施形態では、ユーザデータそれ自体の処理と同じようなやり方で、下流の構成要素によって処理される。
【００４２】
一実施形態において、ＬＤＰＣエンコーダ１４８は、一組のＥＣＣパリティシンボルを備えたユーザ記号のブロックとして、ＥＣＣ符号化ユーザデータを受信し得る。ＬＤＰＣエンコーダ１４８は、ＬＤＰＣパリティを計算し、ＥＣＣエンコーダが用いられていると仮定すると、ＥＣＣエンコーダ１４４から受信されたユーザデータシンボル及びＥＣＣパリティシンボルのブロックに付される。ＬＤＰＣエンコーダ１４８からの出力は、一組のＬＤＰＣシンボルが付加された受信データ記号の組（ユーザデータ及びＥＣＣパリティ）である。ＬＤＰＣ符号化は、一回の通過で実施し得るため、復号処理とは対照的に、一実施形態において、ＬＤＰＣ符号化は、多数の反復の可能性を伴わない。
【００４３】
ＬＤＰＣエンコーダ１４８の符号化処理には、パリティチェック行列と称する数学構造を用いた、受信ブロックの情報（データビット）に関するパリティの計算を含む。ＬＤＰＣ配列には、２進数情報を伴うことから、符号化される予定の各ブロックのユーザデータは、２進数ビット列として処理される。パリティチェック行列をＬＤＰＣパリティ計算に適用すると、計算しなければならない各パリティビットに対してデータメッセージの中の語として選択された複数のビットを用いる一組の論理式の解が得られる。パリティチェック行列の配列によって要求される全てのパリティビットは、計算された後、符号化処理への入力であったユーザデータブロックに付加される。ユーザデータビット及びＬＤＰＣパリティビットの結果的に生じる組合せは、ＬＤＰＣエンコーダ１４８からの出力である。
【００４４】
一実施形態において、ＥＣＣエンコーダ１４４及びＬＤＰＣエンコーダ１４８からのＥＣＣ／ＬＤＰＣ符号化ユーザデータは、数列エンコーダ１５０によって、一連の符合シンボルに変換される。数列エンコーダ１５０は、用いられると、入力データシンボルを逐次相関が与えられた一組の符合シンボルにマッピングする。これによって、符号化されたデータには、限定的であるが明確な方法で、各シンボルの値が、少なくとも１つの他の記号に依存するという特性が与えられる。従って、再読み出し時、復号処理は、ＥＣＣ／ＬＤＰＣ訂正方式に加えて追加の訂正層として、メモリデバイス１０４との書き込み及び読み出し処理中に取り込み得る或る割合の雑音及び誤りを分離することが可能である。他の詳細については、図８の説明と共に以下に記載する。
【００４５】
一実施形態において、数列エンコーダ１５０から出力され（符号化ユーザデータ及びＥＣＣパリティ並びにＬＤＰＣパリティを含む）符合シンボルは、メモリシンボルエンコーダ１３０によって、メモリシンボルのストリームに変換される。メモリシンボルは、特定のメモリデバイス１０４の特定の構成に適用される一組の可能なシンボルの一員である。多種多様な組のシンボルが実現される。一実施形態において、メモリデバイス１０４の記憶セルは、有限数のレベルの１つを記憶するように構成されている。
【００４６】
従来のシステムでは、そのようなメモリセルは、２の偶数乗に対応する限定された数のレベルを記憶するように構成されている。本発明の一実施形態では、メモリセルは、２整数乗を表す場合もそうでない場合もある任意の数のレベルを記憶するように構成されている。例えば、特定のメモリデバイス１０４のセルの幾つかが、（検知し得る７つの独特な対象レベルから構成される）７つの独特なレベルを記憶するように構成されている場合、本構成中の各メモリセルは、７の基数の数値を記憶する。従って、この構成には、７つの可能なメモリシンボルがあり、各々、本構成の７つの可能な対象レベルの内の１つに対応する。これらのレベルを互いに区別するために、６つの識別境界を、所定のメモリセルにおいて利用可能な或る範囲の電荷に課すことを認識されたい。メモリセルの電荷を確立し読み出すハードウェアのアクセス解像度は、各セルの最大基数を確立することを認識されたい。アクセス解像度に依存して、対象レベルの数は、後記するように、実質的に制限なく増大し得る。
【００４７】
メモリシンボルエンコーダ１３０の機能は、メモリデバイス１０４及びメモリセル構成に対して定義された識別レベルの数と整合するやり方で、一連の符合シンボルを一連のメモリシンボルに変換することである。本処理は、ｋを現メモリデバイス構成においてサポートされる対象レベルの数とすると、２進数ビット又はバイト等の２進数ベースの記号のいずれかが含まれる入力記号のストリームを基数ｋを有する桁のストリームに変換する処理になる。尚、ｋの値は、システム実施例内において変わることがあり、従って、メモリシンボルエンコーダ１３０の１つの特性は、所定のｋの値によりメモリシンボルを生成するその性能であってよい。ｋは、所定のシステム実施形態内において、メモリデバイス１０４毎に変動することを認識すべきである。更に、ｋは、個々のメモリデバイス１４０のメモリアレイに適用される際、変動し得る。例えば、メモリアレイの異なる領域には、異なるｋの値を割り当て得る。
【００４８】
符合シンボルからメモリシンボルへ及びメモリシンボルから符合シンボルへの変換は、対象レベルの数の関数である。メモリセルに記憶される単位は、適用可能なメモリセルが構成される対象レベルの数を基数として有する実質的に単一桁の数である。
【００４９】
本システム１００において、各メモリデバイス１０４は、メモリシンボルエンコーダ１３０からメモリシンボルのストリームを受信するためのメモリシンボル書き込みモジュール１５２を含んでおり、それらの値をフラッシュアレイ１１８にプログラムするか書き込む。上記したメモリシンボル読み出しモジュール１２２と同様に、メモリシンボル書き込みモジュール１５２は、コントローラ１０２に動かすことも可能であり、何らかの適切なやり方で、コントローラ１０２とメモリシンボル書き込みモジュール１５２との間で機能的に分散してもよい。
【００５０】
図２は、データを記憶媒体に書き込む方法２００の一実施形態を示す。本例では、方法２００の結果として転送される最小量のデータが、１ブロックであり、この場合、ブロックの長さは、５１２バイトであるが、５１２バイト掛ける２の整数乗であってもよい。従って、フロー中のステップは、ブロック長単位に対して行われる処理ステップを表す。他のブロックサイズを用い得ること、及びブロック形態でデータを転送する絶対的な必要性はないことを認識されたい。
【００５１】
図１のシステム図は、コントローラ１０２と一体化されたセキュリティ機能を示すが、図２に示す本例の方法は、説明を分かり易くするためにセキュリティ機能を省略することを基に簡素化したものである。しかしながら、そのようなセキュリティモジュール１４６は、図１の図に容易に組み込まれる。以下の説明は、外の点では、示した部位に関連し、従って、図１と共に解釈されたい。
【００５２】
図１と共に、図２において、書き込み処理は、「開始」点で始まり、「終了」点で完了する。「開始」点において、ユーザデータブロックは、書き込み命令における１つのステップの結果としてバッファ１４２に置かれているが、この書き込み命令によって、書き込み命令に関連するユーザデータは、ホストインターフェイス１１６からホストによって送出されバッファ１４２に転送される。ホストインターフェイス１１６の特定の実施形態は、この処理の詳細を決定するが、この処理は、本開示の範囲を越えると思われる処理であり、また、当業者によって良く理解されている処理である。尚、データ転送を伴う様々なステップは、必要に応じて、マイクロコントローラ・サブシステム１０８によって実施し得る。
【００５３】
ステップ２０２において始まる方法２００には、バッファＲＡＭからデータシンボルを読み出す段階が含まれる。一実施形態において、データシンボルを読み出す段階には、バッファ１４２からＥＣＣエンコーダ１４４にユーザデータ記号のブロック（バイト）を転送する段階を含み得る。
【００５４】
方法２００には、更に、ステップ２０４において、バッファ１４２からユーザデータ記号を読み出し、ユーザデータシンボルを処理し、ＥＣＣパリティを含む一組の追加のデータ記号を付加する段階が含まれる。ＥＣＣ符号化実施の結果は、ユーザデータシンボルのブロック及び一組のＥＣＣパリティ記号である。従って、出力シンボルの数は、ＥＣＣパリティ記号の数だけ入力シンボルの数を超過することがある。
【００５５】
ＥＣＣ符号化ステップ２０４によって生成された一組のユーザデータ及びＥＣＣパリティシンボルは、ステップ２０６に示したように、ＬＤＰＣ符号化方式を用いて符号化される。ＬＤＰＣ計算は、一般的に、入力が、ストリームシンボルであるよりもむしろビットのストリームであるという観点によるが、シンボルは、ビットの集合として処理される。ＬＤＰＣ符号化ステップ２０６は、全組のユーザデータブロックシンボル及びＥＣＣパリティシンボルについてパリティを計算する。計算の結果は、データフローにおいて、一組の追加のシンボルとして表される追加の組のＬＤＰＣパリティビットである。従って、このステップの出力は、一組のＥＣＣパリティシンボルが付加されたユーザデータシンボルのブロックであり、このＥＣＣパリティシンボルには、更に、一組のＬＤＰＣパリティシンボルが付加される。
【００５６】
方法２００には、更に、ステップ２０８において、ＬＤＰＣ符号化ステップ２０６から出力されたシンボルのストリームが、符合シンボルに符号化すべきデータシンボルのストリームとして全体的に扱われる数列符号化段階が含まれる。従って、入力ストリームは、符合シンボルのストリームに符号化されるが、この場合、符号化処理が、逐次相関を行う。この符合シンボルのストリームは、元のユーザデータを表わしたものであり、これは、メモリデバイス１０４に記憶される。
【００５７】
数列符号化ステップ２０８によって生成された符合シンボルは、２１０に示した事前補正ステップ時、様々な性能特性に則って監視され調整される。例えば、性能特性は、例えば、センス増幅器１２０に対する物理的なセルのオフセットの関数として記憶メモリセル値に生じる抵抗効果等の、予測可能な方法で媒体に書き込まれる全てのデータに当てはまる特性及び挙動であってよい。他の選択肢として、性能特性は、フラッシュメモリにおける「最隣接」効果と関係するパターン依存効果に当てはまる特性及び挙動であってよい。
【００５８】
本例の方法において、事前補正ステップ２１０時適用される手順は、用いられる特定の種類のメモリデバイス１０４用の全ての媒体において不変である。この手順には、それらの用途用の特定の組の規則及びプロトコルを含む。他の実施形態では、ステップ２１０で適用される事前補正規則は、同じである可能性のあるメモリデバイス１０４を用いる場合でも、メモリデバイス１０４毎に可変である。この後者の場合、カスタマイズした事前補正を各メモリデバイス１０４に適用してもよい。
【００５９】
一実施形態において、ステップ２１０には、（可能性として、製造中）事前の較正処理を前提とするカスタマイズした事前補正が含まれるが、これによって、例えば、コントローラ１０２は、それが取り付けられる記憶媒体に関する関連情報を収集する。これには、非限定的な例として、既知のパターンをメモリに書き込む段階と、パターンを読み戻す段階と、既知の入力に対する応答を解析する段階と、また、その後、その差異に関する関連情報を抽出する段階を伴う。一実施形態において、事前補正機能は、メモリ中のデータの物理的及び論理的構成を予想するやり方で、補正値を計算し符合シンボルに適用する。このようにして、各メカニズムについて誤りが生成され得ることに対する具体的な理由にある原理を詳細に理解せずに、多種多様な繰り返し可能な誤り生成歪みメカニズムを事前補正に供し得る。所定のメカニズムを詳細に理解すると、追加の処理入力を提供して、更に、そのような事前補正データの読み戻し中に遭遇し得る誤りの確率を低減することができる。
【００６０】
１つ又は複数の性能特性を確立する段階を通して、性能特性に基づく所定のメモリセルの予測応答を確立する。実際の書き込み動作中、予測応答に基づき、所定のメモリセルの目標電荷値の確立に関係する電荷出力パラメータを調整することによって、一回の用量の電荷を所定のメモリセルに出力可能であり、これにより、実際の電荷値が、一回の用量の電荷によって所定のメモリセルに生成されるが、この実際の電荷値は、少なくとも近似的に目標電荷値に等しい。電荷出力パラメータは、非限定的な例として、時間間隔持続時間、電流値、又は電圧値であってよい。逆に、従来のシステムでは、ステップ毎の処理が、一般的に用いられ、これによって、セルの電荷量は、それが増大して目標値に近づくにつれて、チェック及び再チェックされる。このことは、メモリセルに正しい電荷量を確立する際、有効であるが、この技法は、元来遅く、これによって、データ処理能力に制約が生じる。
【００６１】
方法２００には、更に、２１２において、メモリシンボルを符号化する段階が含まれる。一実施形態において、メモリシンボルを符号化する段階には、ステップ２１０において事前補正を適用して又は適用することなく、数列符号化ステップ２０８によって生成された符合シンボルを入力として受信する段階が含まれる。この入力は、一組のメモリセルに直接表現し得る記号のストリームに変換される。ＮＡＮＤフラッシュを用いるシステムの一実施形態例では、ＮＲＯＭ技術に基づき、この処理は、代表的な一実施形態では、対応するビットストリームとして符合シンボルストリームを処理して、更に後記するように、そのビットストリームを離散的な電圧レベルのストリームによって表現し、その後、メモリセルに適用できる単位に構文解析する。上記したように、メモリセルにおけるレベルの数は、２の非整数乗であってよいことから、この処理は、単にビットストリーム全体を一連のより小さい多ビット単位に分割するより少なくとも若干複雑なことがあり、実際には、全ての情報を適切に効率的な方法でメモリにマッピングするように、端数のビット境界に沿って、入力ビットストリームを一組のより小さい多ビット単位に分割する必要がある。
【００６２】
方法２００には、更に、ステップ２１４において、メモリシンボルをメモリに転送する段階が含まれる。一実施形態において、メモリシンボルをメモリに転送する段階には、選択されたメモリデバイスに常駐するメモリにステップ２１２で計算されたメモリシンボルを転送する段階を含む。この処理には、コントローラ１０２とメモリデバイス１０４との間のインターフェイスを介して、選択されたメモリデバイスに一度に１つの記号を提示する段階を含む。そして、選択されたメモリデバイス１０４は、ステージング領域に情報記号を蓄積する。メモリシンボルは、メモリデバイス１０４のメモリシンボル書き込みモジュール１５２に充分な量が一旦蓄積されると、メモリデバイスそれ自体の技術及び実施形態に合致する方法でメモリに適用される。従って、具体的な詳細は、既知であり、本開示の範囲を超えるものと思われる。
【００６３】
次に、図３において、３００で指す方法例を示す。一般的に、方法３００は、記憶媒体からデータを読み出すために用いられるステップの例を示す。本例の方法３００では、転送されるデータの最小量は、１ブロックであり、この場合、ブロックの長さは、５１２バイトであってよいが、５１２バイト掛ける２の整数乗であってもよい。従って、フローステップは、ブロック長単位で実施される処理ステップを表す。方法３００は、メモリデバイスから単一ブロックのユーザデータを読み出し、それをバッファ１４２に置くために用いられるステップに対応し、この場合、それは、ホストインターフェイス１１６を介してホストに転送し得る。ｎブロックの読み出しには、このフロー図をｎ回通過する必要がある。
【００６４】
図１に示すシステム１００は、コントローラ１０２と一体化されたセキュリティモジュール１４６を示すが、図３に表すフローは、説明を分かり易くするために、セキュリティモジュールを図示していないことに基づき簡素化したものであるが、これは、図１の図に容易に組み込まれる。以下の説明は、それ以外の点では、図１と共に示し選択した部位に関する。
【００６５】
方法３００は、ステップ３０２で始まり、ある数のパラメータに基づき、記憶媒体からメモリシンボルを読み出す。例えば、読み出されるシンボルの数は、ユーザデータブロックのサイズ、他の符号化レベルにより追加されたオーバーヘッドの量、及びメモリシンボルアルファベットのサイズによって、決定される。これらのパラメータの幾つかは、本実施形態の関数として変動するが、一実施形態では、動的にも変動する。この点に関して、メモリシンボルデコーダ１２６は、一実施形態において、複数の符合シンボルアルファベットで動作するように構成され、この場合、構成それ自体は、ファームウェア１０６によって決定し選択し得る。例えば、１つの構成は、基数７アルファベットで動作するが、他の構成は、基数９アルファベットで動作する。可能な構成の数は、メモリシンボルエンコーダ１３０及びメモリシンボルデコーダ１２６を実現する設計上の特徴である。
【００６６】
方法３００は、３０４に示したように、メモリシンボルを符合シンボルに変換する。一実施形態において、メモリシンボルを符合シンボルに変換する段階には、各メモリセルから読み出されるレベルのアナログからデジタルへの変換を伴う。一実施形態では、デジタル形式への変換は、メモリデバイスからコントローラ１０２へのラインがデジタル形式になるように、メモリデバイスにおいて行うことができる。他の実施形態では、デジタル変換は、メモリデバイス１０４からコントローラ１０２に延在するラインが、センス増幅器１２０からの信号を実質的に搬送するアナログラインであるように、コントローラ１０２において行うことができる。
【００６７】
本例の方法３００には、事後補正ステップ３０６が含まれるが、これは、図２に示す書き込み処理の事前補正ステップ２１０と類似している。事後補正ステップ３０６が用いられる場合、歪みメカニズムは、例えば、事前補正ステップを実施することが実現可能又は効率的でなければ、後処理によって対応できる。訂正値又はプロトコルの原則も、上述の事前補正に類似している。例えば、既知の不変の効果又は事前の較正処理から収集される情報は、事後補正ステップ３０６時に用いてよい。
【００６８】
本例の方法３００には、更に、ステップ３０８において、事後補正ステップ３０６の結果として、事後補正された符合シンボルのストリームの数列復号処理段階、又は他の選択肢として、事後補正が用いられないステップ３０４から直接発する段階が含まれる。尚、このステップ３０８は、数列の復号には必要でなく、逐次相関を用いない一実施形態では、データストリームを直接復号し得る。一実施形態において、数列復号ステップ３０８は、符合シンボルストリームをデータ記号ストリーム（これは、メモリ書き込み／読み出し処理からの雑音及び歪み効果によって破損し得る）に変換する。一実施形態において、数列復号ステップ３０８は、反復性であり、即ち、１つ又は複数の処理ステップが、必要に応じて繰り返され、符合シンボルのストリームからデータ記号のストリームを得ることができる。方法３００は、数列復号ステップ３０８において反復ループ３１０を示すことによって、この可能性を考慮する。反復判断基準は、個々の実施形態で実現される数列コード化方法に依存する。例えば、数列復号処理が、単一の反復タイプの処理であれば、「実行される」判断基準３１０は、常に真である。
【００６９】
数列復号ステップ３０８からのデータ記号は、受信後、ステップ３１２に示すように、ＬＤＰＣ復号方式を用いて復号される。入力には、「汚れている」ユーザデータシンボル（１ブロック）、一組のＥＣＣパリティシンボル、及びＬＤＰＣパリティを表す一組のシンボルを含む。用語「汚れている」によって、現在の処理対象である情報が、現在呼び出されている訂正メカニズムによって訂正可能な誤りを含み得ることを意味する。逆に、清浄なデータは、少なくとも実際的な見地からは、もはや現在呼び出されている訂正メカニズムによって訂正可能ではない。
【００７０】
ＬＤＰＣステップ３１２は、復号処理と共に、一組のパリティビットとして扱われるＬＤＰＣパリティを用いて、「汚れている」データにある誤りを見つけて訂正する。この処理は、反復ループ３１４によって示すように、反復性であってよく、また、もう一回通過させるという各反復における判断は、幾つかの判断基準のいずれかに基づく。例えば、この判断基準は、少なくとも部分的に、処理されているデータに残っている誤りの数の間接的な目安に基づく。データが、何らかの処理動作後、清浄になると、チェックを行って、このことを検証することができる。幾つかの稀なケースでは、清浄化処理をストールする様々な種類のデッドロックが起こることがあり、これらの場合、最大反復回数を適用して、処理を異常終了してよいが、この場合、エラー処理ステップが、本フローの次のステップである。
【００７１】
本方法３００には、更に、ステップ３２０において、一組のユーザデータビット及び一組のＥＣＣパリティビットを含む入力に対してＥＣＣ復号を実施する段階が含まれる。ステップ３１２において、ＬＤＰＣ復号処理が実施された場合、ＬＤＰＣパリティシンボルは、シンボルストリームの一部ではなく、従って、ＥＣＣデコーダに到着する情報だけが、ユーザデータそれ自体（依然として汚れている）及びＥＣＣパリティビットである。ＥＣＣ復号ステップ３２０は、少なくとも潜在的に、ＬＤＰＣ復号ステップ３１２によって捕獲されないあらゆる最終的な誤りを訂正するように機能する。
【００７２】
ＥＣＣ復号ステップ３２０では、判断３２２において、３つの結果の内の１つが生じ得る。最初に、訂正可能な誤りが検出されるが、これは、３２４に示すように、方法３００が誤りを訂正するように進むことを意味する。一実施形態において、訂正を行う段階には、ＥＣＣ誤りベクトルを計算する段階と、ＥＣＣの分野において、当業者には馴染みのある方法で、ベクトルを入力データ記号に適用する段階と、が含まれる。誤り訂正を実施した後、方法３００は、ステップ３２６に示すように、データ記号がバッファに転送される所に進む。
【００７３】
次に、ＥＣＣ復号ステップ３２０では、誤りが検出されないことがあるが、これは、ＬＤＰＣ復号ステップから送られるデータシンボルが清浄であったこと、また、その時点で、そのように認定されていることを意味する。従って、方法３００は、ステップ３２６に示すように、データシンボルがバッファに転送される所に直接進む。
【００７４】
ステップ３２６では、バッファに転送されるデータシンボルは、清浄である。この理由は、ＥＣＣ復号ステップ３２０を完結する事前の復号ステップが、少なくとも誤りが検出可能である限り、結果的に生じるデータにエラーの無いことを保証しているためである。この時点では、フローの唯一の情報は、ユーザデータ記号のブロックである。事前のステップに関与する全てのオーバーヘッド情報は、もはや必要ではない。このユーザデータのブロックは、バッファ１４２に転送され、ここで、ホストインターフェイス１１６を介したホストへの後続の転送に利用可能になる。
【００７５】
第３に、ＥＣＣ復号ステップ３２０では、ＥＣＣ訂正計算が修正されるより多くの誤りが、ユーザデータ及びＥＣＣパリティにおいて検出される。この結果により、異常終了及びエラー処理ステップ３２８に抜けることが必要になる。
【００７６】
次に、図４において、後の補正用の基礎を形成する情報を生成するための方法４００の例を示す。一実施形態において、この情報の生成には、メモリセルに書き込まれ、そして、読み戻される所定のパターンを用いる。事前補正は、データ書き込みフロー（例えば、図２の方法２００）の一部であり、事後補正は、データ読み出しフロー（例えば、図３の方法３００）の一部である。いずれの場合でも、事前補正及び事後補正の一部として、書き込み及び読み出しフロー中にデータシンボルに適用された情報は、図４に示す手順等の較正手順から取得し得る。
【００７７】
方法４００は、４０２に示すように、書き込みステップが適用される特定のページのデータを選択することによって始まる。一実施形態において、メモリのページとは、１ブロックのデータのサイズに対応するメモリの物理的なレイアウトを意味する。較正は、記憶されるデータのページに対して、様々なやり方で実施される。最終的には、どのページを書き込むかという方法は、マイクロコントローラ・サブシステム１０８（図１参照）上で実行されるファームウェア１０６において実現される。個々のページは、例えば、アドレス値を確立することによって指定し得る。
【００７８】
方法４００には、更に、ステップ４０４において、較正されるメモリデバイスに既知の情報パターンを書き込みデータとして適用する段階が含まれる。特定の組のメモリパターンを用いることができ、また、それらの選択は、事前及び／又は事後補正に用いるためのデータを返すように設計された特性の選択に基づき得る。パターン符合シンボルは、ハードウェア、ファームウェア、又は両者の組合せにより、アルゴリズム的に生成し得るという事実によって、普通のデータ符合シンボルと区別し得る。
【００７９】
方法４００には、更に、ステップ４０６において、パターン符合シンボルをメモリシンボルに変換する段階が含まれる。例えば、図１の及び更に図６で詳細に記載するメモリシンボルエンコーダ１３０は、符合シンボルの変換に用い得る。一実施形態において、パターンは、一組のデータ記号から生成されるが、この場合、各記号は、目標電荷レベルによって表される（図７で更に詳際に記載する）。他の実施形態は、一組のデータ記号に対する拡張からパターンを生成するが、この場合、目標電荷レベルの総数は、一組のデータ記号のみにおける電荷レベルの数より大きい。一組のデータ記号の拡張部には、他の目標電荷レベルを含むが、これらは、データ記号に対応する所定の対象レベル間の中間値である。他の実施形態では、データに用いられる同じ組の符合シンボルから排他的にパターンを生成する。
【００８０】
方法２００には、更に、ステップ４０８において、メモリシンボルをメモリに転送する段階が含まれる。メモリシンボル書き込みモジュール１５２は、メモリセルに負荷される予定の対応する電荷レベルにメモリシンボルを変換する。
【００８１】
図５は、他の方法の一例であって、５００で指すが、後の補正用の基礎を形成する情報を生成するための方法を示す。方法５００は、図４に示す較正書き込みフロー方法４００と共に用いられる。較正読み出しフロー方法５００は、事前補正及び事後補正の実施に用いられる情報を生成するために、較正書き込みフロー方法４００によってメモリに書き込まれたパターンを調査する。事前補正は、データ書き込み方法２００（図２）の一部であってよく、事後補正は、データ読み出し方法３００（図３）の一部であってよい。
【００８２】
方法５００は、較正データが読み出される特定のページを選択することによって始まり、ステップ５０２に示す。一実施形態において、方法５００は、較正データが、選択されたページに記憶され、また、そのページから入手可能なように、選択されたページが、較正書き込み方法４００（図４）を適用することによって前に書き込まれたと想定される。
【００８３】
方法５００には、更に、ステップ５０４において、メモリからメモリシンボルを転送する段階が含まれる。例えば及び一実施形態では、メモリシンボルのページをメモリシンボルデコーダ１２６に返す選択されたメモリデバイス１０４における選択されたページの場合、コントローラ１０２が、処理を行う。
【００８４】
方法５００には、更に、ステップ５０６において、前のステップ５０４中に得られた各メモリシンボルを、コントローラ１０２の残りの部分によってそのように認識可能な符合シンボルに変換する段階が含まれる。一実施形態において、このステップ５０６は、図１のメモリシンボルデコーダ１２６を用いるが、これについては、図６において詳細に記載する。持ち込まれた誤りにより、このステップから得られる符合シンボルは、較正書き込み方法４００（図４）時に元々転送されたものと同じである場合もそうでない場合もある。
【００８５】
方法５００には、更に、ステップ５０８において、対応する読み出しパターンとの比較を実施できるように、事前の較正書き込み方法４００（図４）の間にメモリデバイス１０４へ書き込まれたコードパターンを再生する段階が含まれる。対応する読み出しパターンは、書き込まれた時と同じパターンを有すべきであることから、方法５００時にそのパターンを生成するハードウェア及びファームウェア機能は、較正書き込み方法４００の一部として、そのパターンを生成したものと同じものであってよい。
【００８６】
方法５００には、更に、５１０において、ステップ５０６で生成された一連のパターン符合シンボル（メモリに記憶されている実際のデータを表す）を、ステップ５０８で再生されたパターン符合シンボル（書き込まれたデータパターンに対応する）と比較する段階が含まれる。この比較は、データ書き込み方法２００（図２）時の事前補正及びデータ読み出し方法（図３）時の事後補正に最終的に用いられる情報源である。差異値は、各再生シンボルをメモリデバイスから受信された各対応する符合シンボルと比較することによって生成し得る。
【００８７】
そして、差異値は、ステップ５１２に示すように、補正基準を計算するために用いられる。差異データ値は、様々な方法で用いられ、最終的には、歪み及び雑音メカニズムから導出できるが、このメカニズムは、データパターンそれら自体の関数及び符合シンボルのブロック数列全体に対する符合シンボルにおけるビットの相対的な位置の関数である。即ち、これらの歪み及び雑音メカニズムは、繰り返し可能な性能特性を表し、従って、補正可能である。このように、ステップ５１２は、前のステップからの差異値と、メモリデバイスに書き込まれた元のコードパターンとのそれらの関係とを解析する。この解析の結果は、各符合シンボル位置に対応する補正量を計算することであってよい。従って、このステップでは、この結果は、各符合シンボルに付随する補正量である。
【００８８】
ステップ５１４において、補正計算からの結果は、複数のメモリデバイス１０４の１つ又は複数に存在するデータ構造に分類したり、任意の適切な位置に記憶したりしてよい。この特定のデータ構造は、較正フローが適用された各ブロックのために蓄積された基準の集団であってよい。この集団プロセスには、特定のメモリデバイス技術及び事前／事後補正判断基準により変わる幾つかのアプローチが含まれる。これらの判断基準には、（１）特定の符合シンボルに関連する補正オフセット、（２）ページ内における符合シンボル位置に関連する補正オフセット、及び（３）較正差異データから計算されるページ内での記号位置の関数としてページ全体に当てはまる符合シンボルオフセットが含まれるが、これらに限定されない。
【００８９】
上記（１）の場合、その効果は、幾つかの符合シンボルに起こり他のものには起こらない歪みの発生に関係する。例えば、メモリセルに適用される目標電荷レベルの範囲において、より高い目標電荷レベルにまで記憶すると、読み戻し時検知された際、予想より低いレベルが返されるが、これは、目標とする電荷レベルで発生する予測可能な歪みメカニズムによる。上記（２）の場合、その効果は、ページ内におけるメモリセルの位置の関数として起こる歪みに関係する。（２）の例は、センス増幅器と検知される特定のメモリセルとの間の抵抗である。上記（３）の場合、その効果は、ページの関数として適用するメモリセル差異に基づく。即ち、検知されたメモリセルに対するオフセットは、特定のページにより変わる。更に、複数の各メモリデバイス１０４間において、各メモリデバイス内におけるメモリブロック位置の関数として、補正オフセットも変動することがあり、従って、データ構造は、複数のメモリデバイス１０４をデバイス毎に区別する分断構造を有し、また、データ構造は、そのメモリデバイス内の根底にあるブロック構造により、特定のメモリデバイス内の各ブロックを区別する。一実施形態において、オフセットは、識別レベルの正しい又は基礎値を指すプラス又はマイナス値である。言い換えると、オフセットは、特定のセル又は複数のセルにおける１つ又は複数の識別レベルの電荷変動を特徴付ける。オフセットは、例えば、メモリシンボル領域において適用される。
【００９０】
較正処理は、複数のメモリデバイス１０４上で利用可能なデータページの一部に対する既知のデータパターン書き込み及び読み出しの結果として、補正情報を蓄積する。これは、メモリデバイス１０４の全ての利用可能なデータページの一部を用いて補正情報を生成することによって、また、補正情報に基づきデータページの全組に対して一般化することによって、較正フローの実行時間を最小にしようとする一実施形態を表す。このアプローチは、データページの選択されたサンプルが、データページの全体を統計的に表すのに充分である場合に効果的であることを認識されたい。しかしながら、他の実施形態は、較正を実行して、複数の各メモリデバイス１０４における全てのページに基づき、補正情報を生成する。いずれにせよ、事前／事後補正が実施されるデータは、それ自体、事前に確立することができ、そして、その後、読み出し及び／又は書き込み動作時、アサートされる。
【００９１】
一般的に、メモリセルは、与えられたアレイにおいて又はメモリデバイス毎に、互いに同じように見えることがある。しかしながら、メモリセルは、メモリセルからの読み出し及び／又はそれらへの書き込みにおいて、１つ又は複数の繰り返し可能な性能特性に関して、互いに対して変動する。本明細書で示した補正は、メモリセルの配列にアクセスして、少なくとも１つのメモリセルに関する性能特性を特徴付けて、選択されたセルアレイデバイスのメモリセルの配列の性能特性の実際の値を確立する段階に基づいてよく、また、実際の性能特性の値に基づき、選択されたセルアレイデバイスに引き続きアクセスするためであってよい。性能特性は、異なる性能特性の値を異なるメモリセルによって生成できるように、任意の所望の数のメモリセルを用いて測定及び生成される。従って、１つのメモリセルは、１つの性能特性の値に基づきアクセスされる一方で、異なるメモリセルは、異なる性能特性の値に基づきアクセスされる。
【００９２】
更に、任意の数の異なる性能特性は、補正処理に用いるために測定し得る。コントローラ１０２に複数のメモリデバイス１０４が接続される場合、異なる性能特性の値は、メモリデバイス１０４の異なるものに対応して測定され、その後、補正目的のために適用される。本明細書に記載したように、補正は、書き込み動作時の事前補正として及び／又は読み出し動作時の事後補正として、適用される。尚、上記したように、事前補正及び事後補正は、双方共、同じデータに実施される。事前補正は、データに実施されるが、これは、メモリデバイス１０４へのその書き込みに先立って実施され、事後補正は、データに実施されるが、これは、それをメモリデバイス１０４から読み出した後実施される。様々な実施形態では、事前補正だけ又は事後補正だけ、又は事前補正及び事後補正の双方を実施する。
【００９３】
事前補正の応用及び動作の例として、メモリセルの配列は、読み出し動作においてアクセスして、特定のセルによって記憶されている現電荷量を確立し、この現電荷量は、実際のデータ値に関連付けられる。性能特性が、特定のセルに適用される際、測定されたとすると、特定セルの訂正データ値は、訂正データ値が、性能特性の影響を訂正するための実際のデータ値とは異なる場合、現電荷量及び測定された性能特性の値に基づき確立される。
【００９４】
事後補正の応用及び動作の例として、セルの配列は、所定の電荷量が読み出し動作時存在する場合、任意の所定の１つのセルにおける所定の電荷量に関連付けられた所定のデータ値を特定のセルに書き込むために、書き込み動作においてアクセスする。書き込み動作は、所定のデータ値に関連する所定の値を有する書き込みパラメータの使用に基づく。有用な書き込みパラメータの例には、時間、電圧及び電流が含まれるが、このことは、これらのいずれもが、書き込み動作に応じて、メモリセルに最終的に記憶される電荷量に影響を及ぼすためである。しかしながら、特定のセルに書き込まれる実際の電荷量は、性能特性の変動に比例して変化する。従って、書き込みパラメータが調整され、また、書き込みパラメータの異なる又は調整された値が、性能特性に基づき用いられ、これにより、特定のセルに確立される実際の電荷量は、所定のデータ値に対応する所定の電荷量に更に厳密に整合する。
【００９５】
図６ａ及び６ｂに示した２つの図は、メモリシンボルエンコーダ１３０及びメモリシンボルデコーダ１２６における技法を示し、これによって、メモリ媒体に記憶されたシンボルは、それぞれ符号化及び復号される。これらの処理は、任意の所定の実施形態における目標電荷レベルの数（図７において更に詳細に記載する）に関して調整でき、これにより、メモリシンボルエンコーダ１３０によって生成され、メモリシンボルデコーダ１２６によって復号されたメモリシンボルは、図７の場合で記載するように、エンコーダ及びデコーダが適用される全ての可能なメモリデバイス構成の目標電荷レベルの数と整合する。
【００９６】
図６ａにおいて分かるように、メモリシンボルエンコーダ６０６は、符合シンボルのブロック６０２を入力として受信し、メモリシンボルのブロック６０４を出力として生成する。本質的に、図６ａは、２進数の符合シンボルドメインからメモリシンボルドメインへの変換を表す。符合シンボルのブロック６０２は、数値基数が２の整数倍であるｎ記号列の桁として処理される。実施形態は、ｍを１以上とすると、各ブロックのデータを記号当りｍビットの記号列として受信し得る。ｍ＝１の場合、各受信記号の基数は、２であり、ｍが１より大きい場合、各ｍビット記号の基数は、２ｍである。ｍ＝１以上の入力記号の全ての表現は、実際の実施形態では、同様に有効である。このステップの出力は、記号のブロック６０４であり、ここで、ｐは、基数ｑを有する記号のブロック長であり、また、ｑの有効な値は、２以上の整数である。各シンボルｓは、（最も近い整数に丸められた）ビットから構成され、あるいは、各シンボルは、ｑ個のアナログレベルの１つを有する単一の信号として表現される。即ち、各メモリシンボル６０４は、目標電荷レベルの数によって代表されるメモリセル中の電荷の固有値に対応し、必ずしも、利用可能な符合シンボル６０２の数とメモリシンボルの数との間に１対１の対応関係が存在するとは限らない。
【００９７】
図６ｂに示すように、メモリシンボルデコーダ６０８は、メモリシンボルのブロック６１０を入力として受信し、符合シンボルのブロック６１２を出力として生成する。この機能は、一連のメモリシンボル６１０を符合シンボルのストリーム６１２にマッピングする点において、メモリシンボルエンコーダ６０６によって実施される機能と逆である。メモリシンボルのブロック６１０は、数値列として表され、これによって、各々、数値基数ｑを有し、ｑ個の可能なレベルの内の１つの値を有する単一の信号によって、又は、（最も近い整数まで丸められた）２進数桁から構成される記号によって表し得る。出力は、ｎｍビット記号のブロックである。出力記号数列における各々は、図３の説明で記載したように、符合シンボル６１２であり、ｍの値は、１以上の整数である。
【００９８】
図７ａ−ｃは、３つの形態のメモリ毎セル記録を示す。各図の水平軸は、記憶された電荷の大きさに対応し、一方、垂直軸は、電荷の特定の又は目標の値を達成するための確率に対応する。図７ａ−ｃの３つの全ての形態は、電荷の目標値でメモリセルに記録される情報を記録しようとする試みから生じ得る確率パターン又は潜在的な電荷分布表現を示す。非限定的な例として、図７ａ−ｃの各々は、情報を記憶するための所定のメモリセルの全電荷範囲容量の潜在的用途を表す。情報記憶容量の具体的な量は、見て分かるように、各図で増加する。
【００９９】
図７ａにおいて、各セルは、メモリデバイスを構成するメモリセルの物理的な設計によって暗示される最大範囲内にある最小及び最大の実際の電荷レベルによって特徴付けられる。最大と最小との間の差は、メモリセル用の電荷の有用な範囲と見なされ、一組のレベルＴ１−Ｔ４を用いて適用され、破線として示す。レベルＴ１−Ｔ４の各々は、一組の識別レベルｄ１−ｄ４で分割する。本例では、各レベルＴ１−Ｔ４は、メモリセルに対して可能な最大と最小レベルとの間にあり、一般的に、目標電荷レベルは、互いに等間隔に配置し得る。メモリセルは、これら２つの両極端な値間にある任意の目標電荷レベルにプログラムし得る。即ち、各セルは、メモリセル内の目標電荷値の１つを達成するように電荷を負荷し得る。これを行う際、セル内の電荷量は、所定の１つの目標電荷レベルと相関する電荷の或る範囲内に入る。電荷確率曲線又は分布Ｐ１−Ｐ４は、各目標電荷値に関連する特定のセルにおいて達成し得る記録レベルの確率分布を表す。分布の目標電荷レベルは、少なくとも近似的に、確率分布を規定する曲線の中心にある。
【０１００】
各セルは、いずれか所定の時点で、唯１つの目標電荷レベルに達するようにプログラムされる。しかしながら、複数のレベル（本例では、４つ）の内の任意の１つを選択でき、また、複数含まれるレベルの数は、特定のメモリデバイス１０４（図１）の特性及び構成及びコントローラ１０２によって提供される一組の処理によって決定される。従って、各電荷確率分布Ｐ１−Ｐ４は、図７の電荷蓄積構成が４つの固有の値を記憶し、これによって、２進数項の２つのビットに対応することが可能なように、所定の目標電荷レベルでセルに負荷をかけようとする時、実際に生じる可能な電荷の範囲を表す。
【０１０１】
図７ａについて全般的に記載したが、次に、他の細目について、それが提供する記憶容量に関して記載する。図７ａは、４つのレベルを示すが、４より大きい又は少ない他のレベル数も異なる実施例において選択し得る。図７ａの構成において、各電荷レベル又は範囲Ｌ１−Ｌ４が、電荷バッファ差（ＣＢＭ）を示す明瞭な差だけ最も近い隣接レベルから離間されていることを観察することは興味深い。各曲線Ｐ１−Ｐ４は、目標識別レベル（ｄ１−ｄ４）に対してサンプルの予想確率分布を表す。特定のセルの記録レベルを検出する際、検知される値は、図示した曲線の内の１つに落ち着くことによって、その目標電荷値に充分に近いと予想され、隣接する電荷範囲間に存在する広い電荷バッファ差の結果として、どの電荷範囲が、実際に表されるかに関するあいまいさの可能性が除外される。従って、目標電荷値間の大きな相対的離間は、他の問題解決メカニズムを必要とせずに、記憶されたデータを取り込む際の信頼性を保証する。言い換えれば、任意の所定の値の電荷の検出は、特定の識別レベル（ｄ１−ｄ４）に一意的に関連付けられる。従来のシステムの意図は、主に、メモリセルの電荷の特定の値を読み出す処理に関連する特定のデータ値に関するあいまいさの可能性を完全に回避することである。
【０１０２】
次に、図７ｂにおいて、変更された用途のメモリセル電荷範囲を示すが、これは、図７ａの例に用いられたものと同じメモリセルが用いられる。図７ａと比較して、１つの相違点として、同じ利用可能な電荷範囲に分布した更に多くの識別レベル（ｄ１−ｄ７）が存在している。従って、電荷確率曲線Ｐ１−Ｐ７は、本質的に同じに、即ち、水平の電荷軸に沿って同じ幅で見える。しかしながら、このことにより、図７ａの図示内容より曲線が互いに近くになるように、ＣＢＭを低減する必要がある。各目標電荷値に関連付けられた確率分布は、その最隣接のもの（１つ又は複数）の確率分布と重なり合わないが、目標レベル間の差の低減により、各曲線が、その関連する識別値に極めて近く、従って、読み出し処理の精度が当然高くなることを意味する。この点に関して、事前補正及び事後補正処理は、歪みメカニズムを補正することによって、検知レベルの精度を維持するように機能する。
【０１０３】
図７ｂによって示さない効果は、エージング及び高温効果を含む様々な物理的な処理によって、識別レベルが、両軸に沿って位置を変ることである。これらの変化は、一方では、エージング及び温度に関連する処理による図７ａ−７ｃに示す分布のｘ軸に沿う左方シフトにより特徴付けられる。他の物理的な処理によって、図７ａ−７ｃの分布形状が、ｙ軸に関して平坦になることがある。これらの変化は、潜在的にデータ誤りの追加的原因であり、これは、補正及び誤り訂正の恩恵に浴し得る。
【０１０４】
引き続き図７ｂにおいて、７つの識別レベルには、関連する目標電荷値が提供される。これは、２の非整数乗に対応することを認識されたい。上記したように、本明細書に述べたコントローラ１０２は、この構成に容易に対応する。各目標電荷値が記号に関連付けられる場合、メモリセルに関する限り、これをデジタル形式で表現することに対する制約は存在しない。もちろん、記号の数が２進数形式にマッピングされる場合、充分な数のビットを用いなければならない。本例では、３ビットが必要である。
【０１０５】
次に、図７ｃにおいて、メモリ電荷セル範囲の更に変更した用途を示すが、これもまた、図７ａ及び７ｂにおいて用いられた同じメモリセルを用いる。本例には、他の２つの構成のいずれよりも更に多くの識別レベルが存在する。具体的には、１０の識別レベルｄ１−ｄ１０、目標電荷値Ｔ１−Ｔ１０、及び関連する電荷確率曲線Ｐ１−Ｐ１０を示すが、これらは、１０の記号に対応する。また、２の非整数乗が、記号の数として用いられる。重要なこととして、この時点で、確率電荷曲線は、電荷確率曲線の隣接するもの間の重なり合う範囲（ＯＬ）において読み出される電荷値が、位置ｄ１−ｄ１０の観点では、あいまいに限定された程度に重なり合う。言い換えれば、ＣＢＭは、この時点で、負の値を有する。本例では、ＯＬの指定された位置について、電荷値がＴ１又はＴ２に対応すると解釈すべきであるかどうかは、不確定である。
【０１０６】
図７ｃ構成から得られた読み出しサンプルのほとんどは、依然として、それらがどの識別レベルを表すかについて、あいまいさが存在しないように構成されているが、水平の電荷軸上の重なり合う領域の占有領域内に入る或る割合の電荷サンプルは、この時点では、それらが対応すべき電荷確率曲線に関して、不確定である。理論的な見地からは、重なり合う占有領域は、隣接目標電荷値間の距離の半分に近づき得る。このように、所定の電荷値読み出しを正確に解釈する確率は、５０％を超える正確さで可能である。
【０１０７】
実際の見地からは、考慮すべき精度と記憶容量との間には釣り合いがある。導入されたあいまいさを示す量は、一組の目標電荷値の特定の確率分布によって決定される。図７ｃに示す構成に関しては、従来のシステムは、通常、隣接する電荷確率曲線間の識別が可能である点において、ほぼ絶対的な精度を必要とする。本明細書に示した概念によれば、記憶された情報の信頼性は、確率分布における重なり合いにかかわらず、本明細書の教示内容により維持される。特に、この信頼性は、コントローラ１０２（図１）における連続符号化／復号（図８）、ＬＤＰＣ符号化／復号（図１）、及びＥＣＣ符号化／復号（図１）機能を利用して、独立に又は適切な組合せのいずれかで生成される。即ち、これらの訂正処理は、連続的に符号化及び復号処理やＬＤＰＣ及びＥＣＣ（図１）の誤り訂正処理を用いて、発生する偏差を発見し訂正する。
【０１０８】
図１及び図７ａ−ｃを全体的に参照すると、多数の恩恵が、本明細書の教示内容を実行することによって提供される。まず認識されたいことは、図７ａ−ｃの識別レベル及び目標電荷値並びにこれによりＣＢＭが、ソフトであることである。即ち、これらの値は、処理構成を制御するための図１のファームウェア１０６を用いて確立し得る。従って、これらの値は、容易に自由に変更される。隣接目標電荷値と隣接識別値との間において、本例では、図１のメモリシンボル読み出し１２２及びメモリシンボル書き込みモジュール１５２の能力によって確立される最小電荷間隔に対して、制限があってよい。隣接識別レベル間のこの最小電荷間隔は、読出しアクセス解像度（ＲＡＲ）と称され、これに対して、隣接目標電荷値間の最小電荷間隔は、書き込みアクセス解像度（ＷＡＲ）と称される。これらの２つの形態のアクセス解像度は、協働して全体的なデバイスアクセス解像度を規定するが、これは、２つの内の小さい方であってよい。従って、各メモリセルのデータ容量を確立するファームウェア命令は、プログラム可能な方法で、異なるデータ容量に容易に切り替えられる。データ容量の上限は、少なくとも部分的に、ＷＡＲ及びＲＡＲ値に基づく。特定のＷＡＲ値と特定のＲＡＲ値との間の連係は、デバイスアクセス解像度及び電荷層と称されるものになる。例えば、図７ｃによって示された構成は、１０の電荷層を表す。特定の容量及び電荷層構造を確立する際、デバイスアクセス解像度は、メモリセルの電荷範囲又はメモリセルの範囲に段階的に適用されることを認識されたい。
【０１０９】
図７ａ−ｃにおいて、所定の識別レベル又は目標電荷値は、「ソフト」であり、命令セットによって動かすことができる。図７ａ及び７ｂの比較において、Ｔ１及びｄ１は、双方共、図７ｂにおいて、電荷の低い値に移動することが分かる。それらの値は、図７ｃにおいて、更に小さい量の電荷に対応する。他の能力として、電荷層の総数は、自由に変更し得る。例えば、図７ａから図７ｃに進むと、電荷層の追加が表現される。逆方向に進むと、もちろん、電荷層の削除を表す。任意の所定のセルの電荷層構造をプログラムにより変更する能力により、注目に値する程度の柔軟性が提供される。このプログラム可能な能力を通して、所定の構成のハードウェアを用いて、多種多様な電荷層構造を実現される。一例として、このプログラム可能性は、ファームウェア１０６（図１）の動作によって、階層構造を選択し、それを、適切なパラメータ値をハードウェアレジスタに書き込むことによって、適用するアルゴリズム的処理を通して実現され。特定のメモリデバイスのメモリアレイにおける異なるグループのメモリセルは、異なる電荷層構造で同時に（上記したように、異なる基数値ｋを効果的に用いて）構成される。非限定的な例として、これらの異なる電荷層構造は、メモリセルアレイの選択領域のデータ信頼性を強化するために用いられる。
【０１１０】
図８ａ及び８ｂは、本開示のコントローラ１０２において実現された数列エンコーダ１５０及びデコーダ１３４の根底にある概念を示す。図８ａに示す符号化処理は、未符号化記号のストリームを符号化記号のストリームに変換する。図８ｂに示す復号処理は、雑音や歪みによって破損し得る符号化記号のストリームを、少なくとも雑音や歪みの部分が除去された未符号化記号のストリームに変換する。符号化されたストリームは、それが連続的に互いに関係付けられていることから、付加された雑音や歪みの除去を可能にする。言い換えると、所定の符号化された記号の値は、それが表すユーザデータの関数であるばかりでなく、ストリームにおいてそれに先行する符号化された記号の関数でもある。
【０１１１】
図８ａは、符号化関数８０２の一例を示す。この関数は、入力として、未符号化記号のストリーム（通常、ビット又はバイトのストリームの形態のユーザデータ）を取り、符号化シンボルのストリームを出力として生成する。図において、入力シンボルは、シンボルＸｉの列によって表され、Ｘｎは、エンコーダにまだある最も古い記号であり、Ｘｎ＋ｋ−１は、最新の受信記号である。従って、最新のｋ記号は、現出力記号Ｙｎを計算するために用いられることが分かる。値ｋは、特定の実施例に対して変動し得る設計パラメータである。更に、現エンコーダ出力記号Ｙｎは、エンコーダによって保持され、符号化関数８０２によって用いられ、後続のＹｉシンボルが計算される。各入力シンボルＸは、ユーザデータの単位を表し、データシンボルと称される。各Ｘは、２進数ビット又は複数の２進数ビットを含むより大きな単位であってよい。各Ｙは、更に、２進数ビット又は複数の２進数ビットによって特徴付けることができ、また、それには、各Ｘを特徴付ける数と異なる複数の２進数ビットも含む。
【０１１２】
一実施形態において、図８の符号化関数８０２によって生成された各Ｙは、メモリシンボル（図６）に直接対応する場合もそうでない場合もある。メモリシンボルの基数及び符号化シンボルの基数が、互いの偶数の倍数である場合、図６に示す符号化記号とメモリシンボルとの間の変換は、自明である。しかしながら、他の実施形態において、符号化記号及びメモリシンボルは、互いの偶数の倍数ではない基数値を有する。本実施形態では、符号化記号ストリームＹｉ（符合シンボル）からメモリシンボルストリームＳｉ（メモリシンボル）へのマッピングは、図６に示し上記した符号化ステップによって実施される。符号化処理は、基数ｎの２進数符号化数値によって表される一連の値Ｙｉが含まれる入力ストリームを、基数ｐの数値によって表される出力値のストリームに変換する。出力値は、一連の基数＝ｑ値の場合、２進数符号化値によって表すことができるが、各々、ｑ識別レベルの内の１つを伝達する一連のアナログ値として表わしてもよい。
【０１１３】
図８ｂは、復号化関数８０４の一例を示す。復号化関数８０４において、ストリームの数列符号化シンボルは、メモリデバイス読み出し処理によって得られ、数列デコーダに渡される。連続復号関数は、取り込まれた雑音や歪みを含み得るＹｉ符号化シンボルのストリームを、Ｘｉユーザデータ記号のストリームに変換し、少なくとも、取り込まれた雑音や歪みの一部が除去されている。復号化関数８０４の１つの具体化例には、ビタビ検出器を含み得る。当業者は認識されるように、他の具体例を用いてもよい。
【０１１４】
図９ａは、特定のメモリシンボルに関連する一組の目標電荷値を記憶するための１つ又は複数のメモリセルの様々な状態のグラフ図を示す。本例では、垂直軸に沿って、７つの目標値Ｔ０−Ｔ６を示し、一方、水平軸に沿って、６つの記憶された電荷状態Ｓ１−Ｓ７を示す。従って、図示するように、７つの目標電荷値がある。図９ａの水平線は、目標電荷値を、それらが最大と最小の実際の値との間で構成されているとして表す（図７ａ−ｃも参照）。これらは、所定の種類のメモリセルが現実的に実現し得る実際の最大及び最小の両極端に対して、相対的であるという点において、相対的レベルである。各水平線間の垂直距離は、隣接目標電荷値間の電荷差を区別する。図９ａに示す電荷状態は、理想的であり、任意に選択され、各メモリシンボルに関連する目標電荷値に対応する。このように、図示した電荷状態は、雑音や歪みが無い状態で、それぞれ、メモリシンボルエンコーダ６０６（図６ａ）を介した書き込み、及びメモリシンボルデコーダ６０８（図６ｂ）を介した取り込みの結果として、メモリセルに記憶されまたそこから読み出される値に対応する。記憶された値は、各値が、目標電荷値の内の意図したものに正確に配置されるという理由により、理想的であることを認識されたい。本例では、Ｓ１は、Ｔ１を記憶し、Ｓ２は、Ｔ３を記憶し、Ｓ３は、Ｔ６を記憶し、Ｓ４は、Ｔ４を記憶し、Ｓ５は、Ｔ０を記憶し、Ｓ６は、Ｔ２を記憶する。従って、図９ａは、６つの対象レベル又は値の連続を示し、その全ては、基数７のメモリシンボルを表す。
【０１１５】
次に、図９ｂにおいて、図９ａに示す状態と同じものを表すが、その代わり、記憶された電荷値は、関連するメモリセルから読み出された未補正値を表す。図９ｂは、事前補正又は事後補正によって補正し得る歪みメカニズムの影響を示すために提供されている。歪み効果は、理想的には、目標電荷値に対応する意図した電荷量と比較して、記憶される実際の電荷量に影響を及ぼす。即ち、意図した値の電荷が、常に正確に目標電荷レベルの内の意図したものに存在するとは限らず、図９ｂに示すように、垂直にオフセットされることがある。予測可能な方法で訂正されると合理的に予想し得るそれらの影響は、「補正可能である」と称される。事前補正及び事後補正計算に用いられるパラメータ情報を収集するための方法の例を、上記したように、図４及び５に表わす。
【０１１６】
補正が無い場合、図９ｂにおける記憶電荷値は、図９ａに示す理想的な値から発散し、また、隣接目標電荷値間の中間に入る値として返される。言い換えると、図９ｂのサンプルは、記憶するように意図した図９ａによって例示されるメモリシンボルを表す。しかしながら、メモリセルから読み出される実際の値は、図示するように、書き込み及び読み出し処理における補正可能な／反復可能な効果により、対象値から逸脱することが分かる。図９ｂに示す返却値と図９ａに示す目標／理想値との間の差異は、一組の補正オフセット９０２（図９ｂの下部に示す）が、それらをメモリデバイスに書き込む前に、メモリシンボルに付加される場合（事前補正）、検知されたメモリシンボルに付加される場合（事後補正）、又は事前及び事後補正の組合せにおいてアサートされる場合、除去される。
【０１１７】
このオフセットは、図９ｂ状態の各々が、隣接するメモリセルのグループによって記憶される場合、マップを表すことを認識されたい。図４及び５における方法４００及び５００は、補正可能な歪み効果の計算と共にそれぞれ用いて、実際の訂正処理時に用いるためのパラメータデータを生成する。訂正処理中、事前又は事後補正にかかわらず、それは、メモリセルのページが含まれるメモリシンボルに適用されるオフセット値９０２のマップを計算することである。複数の効果が、各効果に対して独特なオフセットを用いて、補正を受ける場合、１つのアプローチは、各効果に関連するオフセットを確立し、そして、全体的なオフセットに到達するために、各効果の個々のオフセットを合計することである。尚、オフセットは、負又は正のいずれかであってよい。読み出し／書き込みフローにおける事前補正又は後補正ステップのいずれかとして補正オフセットを加算すると、誤りの原因となり、また、補正計算が実施された歪みメカニズムの効果が相殺される。この結果、補正された歪みメカニズムに起因する誤りを除去することができる。
【０１１８】
図１に戻ると、このシステム１００は、不揮発性電子メモリシステムに関して、現在の最先端技術において分かるものより高い記憶密度及び小さい記憶単位のコストのための機能を提供すると見なされる。この恩恵の１つの理由は、代表的な従来のＮＡＮＤフラッシュデバイスと比較して、各Ｓ３Ｅメモリデバイスにおいて記憶アレイに付加される回路の複雑さ（また、これによって、シリコン領域）の低減である。従って、各メモリデバイスは、従来技術によるＮＡＮＤフラッシュデバイスにおいて利用可能な領域に対してメモリ媒体領域の相対的な増加をもたらす。即ち、メモリデバイス１０４からコントローラ１０２に機能を移すことによって、各Ｓ３Ｅメモリデバイスは、従来技術によるＮＡＮＤフラッシュデバイスよりチップのシリコン領域当りの記憶容量が大きくなる。一定のチップサイズ及びデバイスコストの場合、その効果は、単位コスト当りの記憶量の増加であり、従って、記憶単位当りのコストの低減である。この効果は、単一のコントローラ１０２を有するシステム構成において接続されるメモリデバイス１０４の数が多くなると、更に顕著になる。記憶単位当りのコストは、従来技術によるＮＡＮＤフラッシュデバイスに対して、Ｓ３Ｅメモリデバイスにおける独特な記録レベルの数を増やす能力によって更に低減される。上記教示内容に基づき、代表的な従来のメモリデバイスと比較して、任意の多数の独特なレベルを用い得る。アクセス解像度に関係するセル当り記憶容量の限界があるが、上記したように、アクセス解像度は、メモリセルにおける極めて小さい電荷差異の間を区別する点で、強化できる。
【０１１９】
セル当りに記憶される情報の量を増加させると、信頼性の低下を伴うが、本出願人は、Ｓ３Ｅコントローラデバイス１０２において、最適化された方法及び処理を用いると、従来技術によるＮＡＮＤフラッシュデバイスとオンチップのＮＡＮＤフラッシュコントローラとを組み合わせたものの信頼性を超過することが可能である点まで、固体記憶素子の信頼性を強化できることに気付き、これによって、これに関する懸念を解決した。単一のコントローラ１０２を用いて、複数のＳＥ３メモリデバイス１０４を動作させる概念を通して、コントローラ１０２の能力は、著しく強化され、所望のレベルのデータ信頼性能力を提供する。更に、これらの教示内容は、書き込み及び読み出し動作において実質的に誤りが許容されない場合、例えば、例示されるように、広い電荷バッファーマージン（図７ａ参照）を用いることによって、従来技術の制約条件を一掃すると考えられる。
【０１２０】
上記教示内容を通して、Ｓ３Ｅコントローラ１０２は、複数の各Ｓ３Ｅメモリデバイス１０４の容量の一部分を用いて、情報の正確な記憶及び取り込みに関して、前記Ｓ３Ｅメモリデバイス１０４による誤りの事例を検出及び訂正することを認識されるであろう。即ち、この一部分は、誤り訂正情報を記憶するために用い得る。
【０１２１】
本明細書に述べた実施形態には、更に詳細に後述するように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータの用途を含み得る。
【０１２２】
本発明の範囲内の実施形態には、更に、コンピュータ実行可能な命令又はデータ構造を担持又はそれに記憶しているコンピュータ判読可能媒体が含まれる。そのようなコンピュータ判読可能媒体は、汎用又は専用コンピュータによってアクセスし得る任意の入手可能な媒体であってよい。一例として、また、限定せず、そのようなコンピュータ判読可能媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、又は、磁気ディスク装置もしくは他の磁気記憶装置、又は所望のプログラムコード手段をコンピュータ実行可能な命令又はデータ構造の形態で担持又は記憶するために用いることができる他の任意の媒体であって、汎用又は専用コンピュータによってアクセスし得る媒体を含み得る。情報が、ネットワーク又は他の通信接続（有線、無線、又は有線もしくは無線の組合せのいずれか）を介して、コンピュータに転送又は提供される場合、コンピュータは、その接続をコンピュータ判読可能媒体と当然見なす。従って、そのようないずれの接続も厳密にコンピュータ判読可能媒体と称される。上記内容の組み合わせもコンピュータ判読可能媒体の範囲内に含まれる。
【０１２３】
コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置が、或る機能又はグループの機能を実施できるようにする命令及びデータが含まれる。本題について、構造的な特徴及び／又は方法論的な行為に特有の用語で記載してきたが、添付の請求項において規定された本題は、必ずしも上記した特定の特徴又は行為に限定されるとは限らないことを理解されたい。むしろ、上述した特定の特徴及び行為は、請求項を実現する形態例として開示されている。
【０１２４】
本明細書に用いる用語「モジュール」又は「構成要素」は、演算システム上で実行されるソフトウェアオブジェクト又はルーチンを意味する。本明細書に記載した異なる構成要素、モジュール、エンジン、及びサービスは、（例えば、個別のスレッドとして）演算システム上で実行されるオブジェクト又はプロセスとして実現し得る。本明細書に述べたシステム及び方法は、好適には、ソフトウェアで実現されるが、ハードウェア又はソフトウェア及びハードウェアの組合せによる実施例もまた可能であり、また、考えられる。本説明において、「演算実体」は、本明細書において前に定義したような任意の演算システム、又は任意のモジュール又は演算システム上で走る調整器の組合せであってよい。
【０１２５】
本明細書に開示された実施形態及び関連する方法は、様々な異なる構成で提供され、また、無数の異なるやり方で変形し得ること、及び本発明は、本発明の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化し得ることは明らかである。例えば、上述したように、本明細書に示した概念は、現在利用可能か又は未だ開発中かどうかにかかわらず、本質的にアナログ形式で情報を記憶するほぼあらゆる種類のメモリセルに容易に適合可能である。従って、本例及び方法は、限定的ではなく、例示的であると見なすべきものであり、また、本発明は、本明細書に述べた詳細に限定されるものではない。本発明の範囲は、従って、上記の説明によってよりもむしろ添付の請求項によって示される。請求項の等価性の意味及び範囲内で生じる全ての変更は、それらの範囲内に含まれるものである。
【０１２６】
（１）複数のメモリセルが含まれ、各メモリセルが、デジタル記憶装置の実装に用いるための電荷蓄積容量を有するフラッシュメモリ構成において、
書き込み動作及び読み出し動作において、前記メモリセルの各々にアクセスするように構成された処理装置と、
前記処理装置によって実行された場合、前記メモリセルの各々用の複数のデータ値を定義するための目標電荷レベルを課す命令セットであって、前記目標電荷レベルは、前記電荷蓄積容量を基準にして、プログラムにより可変である前記命令セットと
を備える装置。
【０１２７】
（２）上記（１）に記載の装置であって、前記命令セットは、前記複数のデータ値の各々用の電荷範囲を更に定義するために前記電荷蓄積容量全体に分散した識別レベルを課すように構成される、装置。
【０１２８】
（３）上記（２）に記載の装置であって、前記各メモリセル内への記憶に利用可能な異なるデータ値の数は２の非整数乗である、装置。
【０１２９】
（４）上記（２）に記載の装置であって、前記命令セットは各セルの最大データ記憶容量を特徴付けるデバイスアクセス解像度を課すように構成される、装置。
【０１３０】
（５）上記（４）に記載の装置であって、前記命令セットは、前記デバイスアクセス解像度を変更することによって、各メモリセルに利用可能なデータ記憶容量をプログラムにより変更するように構成される、装置。
【０１３１】
（６）上記（２）に記載の装置であって、前記命令セットは、所定の電荷レベルが前記データ値の内の１つに対応する確率を決定するために用いられる電荷確率分布を課すように構成される、装置。
【０１３２】
（７）上記（６）に記載の装置であって、前記識別レベルは、前記確率分布の重なりをもたらす大容量の態様に分散し、前記命令セットは、更に、前記メモリセルにアクセスする場合、誤り訂正を適用するように構成される、装置。
【０１３３】
（８）複数のメモリセルを含み、各メモリセルが、デジタル記憶の実現に用いるための電荷蓄積容量を有するフラッシュメモリ構成において、
書き込み動作及び読み出し動作において、前記各メモリセルにアクセスするように構成された処理装置と、
前記処理装置によって実行された場合、前記電荷蓄積容量間の電荷の量を徐々に増加させることを特徴とする複数の電荷層から構成される電荷層構造を確立する命令セットであって、各電荷層は、記憶値及び電荷量を定義する電荷値に関連付けられ、前記命令セットは、更に、前記電荷値の内の少なくとも１つをプログラムにより可変となるように構成される前記命令セットと
を備える、装置。
【０１３４】
（９）上記（８）に記載の装置であって、前記命令セットは、前記電荷層構造の電荷層の総数をプログラムにより変更するように構成される、装置。
【０１３５】
（１０）変動し得る性能特性に関連するセルアレイデバイスを用いることが可能なフラッシュメモリ構成において、
前記セルアレイデバイスにアクセスして、前記セルアレイデバイス用の前記性能特性の値を確立するように構成され、且つ、引き続き、前記セルアレイデバイスにアクセスして、前記性能特性の前記値に基づき、補正を行うように構成された制御配列
を備える装置。
【０１３６】
（１１）上記（１０）に記載の装置であって、
前記制御配列は、読み出し動作において、前記セルアレイデバイスにアクセスするように構成され、且つ、前記制御配列は、前記性能特性に対応して、前記値を変更し、更新された値を生成するように構成される、装置。
【０１３７】
（１２）上記（１０）に記載の装置であって、
前記セルアレイデバイスは、複数のメモリセルを含み、前記制御配列は、前記各メモリセル用の前記性能特性の複数の値を確立するように構成される、装置。
【０１３８】
（１３）上記（１０）に記載の装置であって、
前記セルアレイデバイスは、複数のメモリセルを含み、各メモリセルは、デジタル記憶の実現に用いるための電荷蓄積容量を有し、
書き込み動作及び読み出し動作において、前記各メモリセルにアクセスするように構成された処理装置と、
前記処理装置によって実行されると、前記各メモリセル内において、複数のデータ値を定義するための目標電荷レベルを課す命令セットと
を更に備える装置。
【０１３９】
（１４）上記（１３）に記載の装置であって、
前記制御配列は、読み出し動作において、前記セルアレイデバイスにアクセスして、前記メモリセルの内の１つによって記憶される現在の電荷量を決定し、且つ、前記現在の電荷量に関連付けられた前記データ値を決定するように構成され、前記制御配列は、更に、前記現在の電荷量及び前記性能特性の前記値に基づき、前記特定のセル用の訂正されたデータ値を確立するように構成される、装置。
【０１４０】
（１５）上記（１３）に記載の装置であって、
前記制御配列は、書き込み動作において、前記セルアレイデバイスにアクセスして、所定のデータ値を前記メモリセルの内の１つに書き込むように構成され、前記所定のデータ値は、前記目標電荷レベルの内の１つに関連し、前記制御配列は、更に、前記所定のデータ値及び前記性能特性の前記値に関連付けられた前記目標電荷レベルに基づき、訂正された目標電荷レベルを確立するように構成され、且つ、前記訂正された目標電荷レベルを前記メモリセルに適用することによって、前記書き込み動作を実施するように構成される、
装置。
【０１４１】
（１６）複数のメモリセルから構成される少なくとも１つのセルアレイデバイスを用いる不揮発性電子メモリ構成において、
前記メモリセルの少なくとも１つの特性に基づく所定のメモリセルの予測応答を確立するように構成され、且つ、前記予測応答に基づき、電荷出力パラメータを調整することによって、前記所定のメモリセルに電荷を出力するための制御配列
を備える装置。
【０１４２】
（１７）複数のメモリセルが含まれるフラッシュメモリ構成であって、各メモリセルが、デジタル記憶の実現に用いるための電荷蓄積容量を有し、且つ、各メモリセルは、複数のデータ値を定義するための目標電荷レベルを有する、前記フラッシュメモリ構成において、前記メモリセルからの読み出し及び前記メモリセルへの書き込みの内の少なくとも一方の間に用いられる補正データを生成するための方法であって、
前記メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを特定する段階と、
前記パターンコードデータをメモリシンボルに変換する段階であって、前記各メモリシンボルは、前記目標電荷レベルの内の１つを特定する、前記変換する段階と、
前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリセル内における既知の位置に前記メモリシンボルを書き込む段階と
を備える方法。
【０１４３】
（１８）上記（１７）に記載の方法であって、  前記既知の位置における前記メモリセル内に記憶された電荷レベルを検知することによって、前記メモリ内における前記既知の位置からメモリシンボルを読み出す段階と、
前記読み出されたメモリシンボルを比較コードデータに変換する段階と、
前記パターンコードデータを前記比較コードデータと比較して、差異値を決定する段階と
を更に備える方法。
【０１４４】
（１９）上記（１８）に記載の方法であって、
前記差異値を用いて性能特性を計算する段階と、
前記性能特性をデータ構造に記憶する段階と、
を更に備える方法。
【０１４５】
（２０）上記（１９）に記載の方法であって、
前記フラッシュメモリ構成の前記メモリセルに書き込まれる書き込みデータを特定する段階と、
前記性能特性を前記書き込みデータに適用して、補正された書き込みデータを生成する段階と、
前記補正された書き込みデータを補正されたメモリシンボルに変換する段階であって、各補正されたメモリシンボルは、前記メモリセルの内の１つに適用される電荷レベルを特定する前記段階と、
前記補正されたメモリシンボルによって特定された前記電荷レベルを前記メモリセルに適用することによって、前記補正されたメモリシンボルを前記フラッシュメモリ構成の前記メモリセルに書き込む段階と
を更に備える方法。
【０１４６】
（２１）上記（１９）に記載の方法であって、
前記フラッシュメモリの前記メモリセルから未補正メモリシンボルを読み出す段階であって、前記各未補正メモリシンボルは、前記メモリセルの１つの電荷レベルを特定する前記段階と、
前記未訂正メモリシンボルを未補正コードデータに変換する段階と、
前記性能特性を前記未補正コードデータに適用して、補正されたコードデータを生成する段階と、
を更に備える方法。
【図１】
2014179077.tif 000003
【図２】
2014179077.tif 000004
【図３】
2014179077.tif 000005
【図４】
2014179077.tif 000006
【図５】
2014179077.tif 000007
【図６ａ】
2014179077.tif 000008
【図６ｂ】
2014179077.tif 000009
【図７ａ】
2014179077.tif 000010
【図７ｂ】
2014179077.tif 000011
【図７ｃ】
2014179077.tif 000012
【図８ａ】
2014179077.tif 000013
【図８ｂ】
2014179077.tif 000014
【図９ａ】
2014179077.tif 000015
【図９ｂ】
2014179077.tif 000016
【外国語明細書】
2014179077000001.pdf