JP4825874B2 - マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正 - Google Patents

マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正 Download PDF

Info

Publication number
JP4825874B2
JP4825874B2 JP2008535184A JP2008535184A JP4825874B2 JP 4825874 B2 JP4825874 B2 JP 4825874B2 JP 2008535184 A JP2008535184 A JP 2008535184A JP 2008535184 A JP2008535184 A JP 2008535184A JP 4825874 B2 JP4825874 B2 JP 4825874B2
Authority
JP
Japan
Prior art keywords
bits
bit
read
cell
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008535184A
Other languages
English (en)
Other versions
JP2009512112A (ja
Inventor
リツィン、シモン
アルロド、イダン
シャロン、エラン
ムリン、マーク
ラッセル、メナケム
Original Assignee
ラマト アット テル アビブ ユニバーシティ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/339,571 external-priority patent/US7526715B2/en
Application filed by ラマト アット テル アビブ ユニバーシティ リミテッド filed Critical ラマト アット テル アビブ ユニバーシティ リミテッド
Publication of JP2009512112A publication Critical patent/JP2009512112A/ja
Application granted granted Critical
Publication of JP4825874B2 publication Critical patent/JP4825874B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、デジタルデータのエラー訂正に関し、より詳しくは、セルにつき複数のビットを記憶するフラッシュメモリ・デバイスのためのエラー訂正方法に関する。
フラッシュメモリ・デバイスは、長年知られている。フラッシュメモリ内の各セルは、典型的に、一ビットの情報を記憶する。セルの二つの状態をサポートすることによってビットを記憶するのが、伝統的な方法であり、一方の状態が論理「0」を表し、他方の状態が論理「1」を表す。フラッシュメモリ・セル内の二つの状態は、セルのチャネル(セルのトランジスタのソースおよびドレイン素子を結合する領域)上方にフローティングゲートを設け、そしてフローティングゲート内に蓄えられる充電量に二つの有効な状態を設けることによって具現している。典型的に、一方の状態が、フローティングゲート内にゼロ電荷を持ち、消去後の、セルに書き込みがない初期状態を表す(一般的に、状態「1」を表すと定義する)。そして、他方の状態が、フローティングゲート内にいくらかの量の陰電荷を持つ(一般的に、状態「0」を表すと定義する)。ゲート内に陰電荷を持たせることによって、セルのトランジスタのスレショルド電圧(すなわち、トランジスタを導通状態にするためにトランジスタの制御ゲートへ適用しなければならない電圧)が上昇する。このため、セルのスレショルド電圧をチェックすることによって、記憶ビットを読み取ることが可能である。スレショルド電圧が高い状態であれば、ビット値は「0」であり、また、スレショルド電圧が低い状態であれば、ビット値は「1」である。実際には、セルのスレショルド電圧を正確に読み取る必要はない。必要なすべては、現在セルが二つの状態のいずれにあるのかを、正しく識別することである。この目的では、これら二つの状態の中央に位置する基準電圧値に対して比較し、セルのスレショルド電圧がこの基準値よりも低いか、あるいは高いかを判定するだけで十分である。
図1Aは、これがどのように機能するのかを視覚的に示す。詳しくは、図1Aは、かなりの数のセルにおけるスレショルド電圧の分布を表す。フラッシュメモリのセルは、(不純物濃度における小さな相違、または、けい素構造における欠陥から)それらの特徴および作用が必ずしも同一ではないため、すべてのセルに対して同じプログラミング・オペレーションを適用しても、セルのすべてが必ずしも同じスレショルド電圧を持つようになるわけではない。(なお、歴史的理由により、データをフラッシュメモリに書き込むことは、一般的に、フラッシュメモリを「プログラムする」と呼ぶ。)それよりも、スレショルド電圧は、図1Aに示すように分布する。値「1」を記憶しているセルは、典型的に負のスレッショルド電圧を持ち、ほとんどのセルが、図1Aの左側ピークで示す値の近くにスレショルド電圧を持つ。そして少数のセルが、より低い、あるいはより高いスレショルド電圧を持つ。同様に、値「0」を記憶しているセルは、典型的に正のスレッショルド電圧を持ち、ほとんどのセルが、図1Aの右側のピークで示す値の近くにスレショルド電圧を持つ。そして少数のセルが、より低い、あるいはより高いスレショルド電圧を持つ。
近年、因習的に略して「マルチ・レベル・セル」またはMLCと呼ぶ技術を用いた、新しい種類のフラッシュメモリが市場に出回ってきている。(以前の種類のフラッシュ・セルも、上述のように二つのレベル、すなわち複数レベルを持つので、この命名はまぎらわしいものである。したがって、本文では、これらフラッシュ・セルの二つの種類を、「シングルビット・セル」(SBC)、そして「マルチビット・セル」(MBC)と呼ぶ。)MBCフラッシュがもたらした改善は、各セルに2ビット以上を記憶できることである。単一セルが2ビットの情報を記憶するためには、セルは、四つの異なる状態のうちの一つになることが可能でなければならない。セルの「状態」を、そのスレショルド電圧によって表すことから、2ビットMBCセルが、そのスレショルド電圧に対して、四つの異なる有効な範囲をサポートするべきであることは明らかである。図1Bは、典型的な2ビットMBCセルに対するスレショルド電圧分布を示す。予想通り、図1Bには、各々が一つの状態に対応する四つのピークがある。SBCの場合と同様、各々の状態は、実際には範囲であり、単一数ではない。セルの内容を読み取るときに保証すべきすべては、セルのスレショルド電圧が位置する範囲を正しく識別することである。MBCフラッシュメモリの従来の技術による例については、ハラリ氏の米国特許第5,434,825号を参照する。
同様に、単一セルが3ビットの情報を記憶するためには、セルは、8つの異なる状態のうちの一つになることが可能でなければならない。したがって、3ビットMBCセルは、そのスレショルド電圧に対して、8つの異なる有効な範囲をサポートすべきである。図1Cは、典型的な3ビットMBCセルに対するスレショルド電圧分布を示す。予想通り、図1Cには、各々が一つの状態に対応する8つのピークがある。図1Dは、4ビットMBCセルに対するスレショルド電圧分布を示す。この場合、16の状態を、16のスレショルド電圧範囲によって表す必要がある。
MBCセルに2ビットを、四つの状態を介してコード化するとき、図1Bの(典型的に、負のスレショルド電圧を持つ)左端の状態が、両ビットが値「1」であるケースを表すのが一般的である。(下記の考察において、以下の表記を用いる。セルの二つのビットを「下位ビット」および「上位ビット」と呼ぶ。ビットの明示値は、下位ビット値を右側にして、[「上位ビット」「下位ビット」]の形式で書き表す。したがって、下位ビットが「0」で、上位ビットが「1」であるケースは、「10」と記述する。この用語および表記の選択は任意であり、他の名称や符号化も可能であることは理解すべきである。)この表記を用いると、左端の状態は、「11」のケースを表す。他の三つの状態には、典型的に、左から右へ次のように割り当てる。「10」、「00」、「01」。この符号化を用いたMBC−NANDフラッシュメモリの実施例については、チェン氏の米国特許第6,522,580号を参照できる。この特許は、すべての目的において参照によって本文に完全に記述したように含むものとする。チェン特許の、特に 図8を参照のこと。タナカ氏の米国特許第6,643,188号にも、MBC−NANDフラッシュメモリの類似実施例がある。しかし、図7を見ると、状態のビット・エンコーディングへの割り当てが、次のように異なることが分かる。「11」、「10」、「01」、「00」。チェン・エンコーディングは、図1Bに図解したものである。
上記の用語および表記を、以下のように、1セルにつき2ビットを超えるケースへ拡張する。左端の書き込みのない状態は、「オール1」(「1...1」)を表し、ストリング「1...10」は、セルの最下位ビットのみが「0」に書き込まれたケースを表し、そして、ストリング「01...1」は、セルの最上位ビットのみが「0」に書き込まれたケースを表す。
MBCセルの内容を読み取るときは、セルのスレショルド電圧が位置する範囲を正しく識別しなければならない。しかし、この場合、単に一つの基準電圧に比較することによっては、必ずしもこのことを達成できるとは限らない。したがって、複数の比較が必要となる。例えば、図1Bに図解したケースでは、下位ビットを読み取るのに、セルのスレショルド電圧を、まず、参照比較電圧V1に比較し、その比較結果に応じて、次に、ゼロ参照比較電圧あるいは参照比較電圧V2に比較する。択一的に、スレショルド電圧を、ゼロ基準電圧および参照比較電圧V2に無条件に比較することによって、下位ビットを読み取ることもできるが、この場合も、2回の比較が必要である。1セルにつき2ビットを超えるケースでは、より多くの比較が必要となる。
単一のMBCセルのビットのすべては、同じフラッシュ・ページに属する場合もあるし、あるいは、異なるページへ割り当てられることもある。その結果、例えば、4ビット・セルにおいて、最下位ビットが0ページにあり、次のビットが1ページにあり、その次のビットが2ページにあり、そして最上位ビットが3ページにある、ということも起こる。(ページは、フラッシュメモリ内に別々に書き込むことができるデータの最小塊である)。
ラッサー氏の米国特許出願第11/035,807号は、セルにつき複数ビットを記憶するフラッシュメモリ・セルのビットをエンコーディングする方法を扱っている。ラッサー氏の米国特許出願第11/061,634号およびムリン氏の米国特許出願第11/078,478号は、マルチビット・フラッシュ・セルの異なる論理ページに亘るエラー分布の問題に関して、それらビット・エンコーディング方法による影響を扱っている。詳しくは、ラッサー’634は、ビット・エンコーディングの、論理から物理へのマッピングを用いることによって、データのユーザから見たときに、また、エラー訂正コード(ECC)回路で処理する際に、異なる論理ページに亘って均一なエラー分布を得るための方法を開示している。そして、ムリンは、物理ビット・ページ間での論理ページのインターリービングを用いることによって、データのユーザから見たときに、また、ECC回路で処理する際に、異なる論理ページに亘って均一なエラー分布を達成するための方法を開示している。従来の技術によるこれら三つの特許出願は、すべての目的に対して、参照により本文に完全に記述したものとする。
ラッサー’634およびムリンの両方は、ECC回路の設計目的であるエラー率の減少という同じゴールを目指している。両出願に示された例では、15,000の4ビットMBCフラッシュ・メモリ・セルのグループが、各々15,000ビットの、4論理ページのデータを記憶するために使用されている。推定セル・エラー率は、1,000分の1である。その結果、ビット・エラーの最適数は15であり、論理ページ内の最適平均ビット・エラーは、3.75である。この例は、提案の新考案を用いない限り、特定の論理ページが非常に高いビット・エラー率を持つ可能性があることを示す。この例では、6ビットエラーである。これは、セル内に記憶したすべてのビットに亘る全体的な平均ビット・エラーが、(60,000分の15、または4,000分の1と)比較的に低くても、特別な処置を取らない限り、論理ページ内のエラーを訂正する処理を行うECC回路を、比較的高い平均ビット・エラー率(その例では、15,000分の6、または2,500分の1)を処理できるよう設計しなければならないことを意味する。
本出願の発明者による、「MBCフラッシュメモリにおけるエラー訂正の方法」という名称の、(本文において「リツィン氏ら」として言及する)最近の米国特許出願は、同じゴールに対して、異なるアプローチを開示している。この特許出願は、すべての目的に対して、参照により本文に完全に記述したものと見なす。エラー訂正の目的で論理ページの各々に対して別々に対処する代わりに、リツィン氏らは、同じグループのセルを共有するすべての論理ページに同時に対処し、それらすべての複数の論理ページのすべてのビットを一つのECCコード・ワードとして処理している。これは、ECC回路が対処しなければならない平均ビット・エラー率を減少させる。上記の例では、僅か4,000分の1となる。
ほとんどのECC実施例では、すべてのビットが同じに扱われ、どのビットも、平均よりも信頼性が高い、あるいは信頼性が低いと見なされることはない。しかし、上記から明白であるように、一グループのMBCフラッシュ・メモリ・セルから複数の論理ページを読み取るとき、異なるビット・ページ内に記憶したビットは、異なるエラー確率を持つ。上記で考察した、エラー分布を平均化するための、従来の技術による方法のいくつか(ラッサー’634、ムリン)は、すべての論理ページに対して平均で同数のビット・エラーを持たせるという点では成功であるが、異なる個々のビットは、なお、異なる信頼性を持つ。
エラー訂正すべきコード・ワードの個々のビットのビット・エラー率に関する情報は、エラー訂正モジュールにとって非常に有用である。これを、非常に簡略化した例を用いて説明する。パリティ・ビットによって,4ビットの一グループがシングルエラーに対して保護されており、エラーが見つかれば、ECCが、反転すべきビットの一つを選んで、これを訂正結果として提供する、と仮定する。コード・ワードの全5ビット(四つのデータ・ビットと、一つのパリティ・ビット)に、同程度の確率でエラーが起こり得るなら、エラーを検出したときにどのビットを反転させるべきかの決定は、ランダムに行うのみである。これは、20%の正しい決定に至る。しかし、ビットの一つが、コード・ワード内の他の4ビットのどれよりも、6倍信頼できないことが分かっているならば、エラーを検出したときにそのビットを反転するよう選択することは、60%の正しい決定に至る。この例は、極度に単純化したものであり、現実のECC実施例における計算および決定処理の方法はかなり複雑であるが、エラー訂正スキームの性能を改善するための、個々のビットに対する信頼性データの有用性を示すという目的を果たしている。
追加の信頼性情報が、ECC回路の、異なるビットの処理方法に影響を及ぼす、従来の技術によるシステムがある。例えば、2004年6月16日出願の、「フラッシュメモリの信頼性を向上させる方法」と名称がある、バン氏の米国特許出願第10/867,645号を参照のこと。バン氏らは、フラッシュ・セル内に記憶したデータを、セルの状態をその可能な値へ分別するのに必要な能力よりも高い分解能を用いて読み取る。例えば、セルが、16の状態の一つに書き込まれる(すなわち、セルが4ビットを記憶する)場合、あたかも5ビットを持つかのように、セルを読み取る。これを、バン氏らは「分別レベル」を用いる、と呼ぶが、他の人々は、「ソフト・ビット」等の、異なる用語を用いる。他の人々は、また、複数ビットの追加の読み取りを用いて、さらに高い分解能を提供する。その高分解能の読み取りが提供する追加のビットは、その状態を近隣の状態から分離する境界に比べた(実際に読み取った)セルの正確な状態に関する証拠を提供するため、他の「真の」データ・ビットの信頼性を推定するのに、ECCモジュールによって用いる。境界の近くに位置するセルは、帯域の中央に位置し、かつ境界から遠隔にあるセルよりも、エラーを発生しやすい。また、このアプローチを利用する従来の技術による通信システムも存在する。この場合、多くの追加の高分解能ビットは、ときどき、チャネルのエラー訂正性能を改善するために用いられる。
すべてのこれら従来の技術によるシステムでは、追加の信頼性情報は、記憶ビット自体にのみ固有な情報への、追加情報である。そのようなECCは、記憶ビット自体に固有なことのみに基づくなら、単純化が可能である。例えば、追加の信頼性情報に基づくECCは、セル内に記憶したビットを読み取るのに必要な分解能を超える高分解能でMBCフラッシュメモリのセルを読み取ることなく、具現可能である。
本発明の範囲は、記憶データにのみ固有である追加の信頼性情報に基づいて、MBCメモリ内に記憶されたデータをエラー訂正して読み取る三つの方法を含む。第一の方法では、追加の信頼性情報は、明示的に、読み取りビットの信頼性の演繹的な推定値である。第二の方法では、追加の情報は、暗示的に、読み取りビットの信頼性の演繹的な推定値である。第三の方法では、読み取りビットの少なくともいくつかの信頼性は、読み取りビットの値から推論される。
本発明のECCは、体系的でも、あるいは非体系的でもよい。体系的なECCにおいては、エラー訂正は、本来のデータ・ビットを取り上げ、それらにいくつかのパリティ・ビットを追加し、本来のデータ・ビットとパリティ・ビットの両方を記憶する。したがって、本来のデータ・ビットは、エンコーディング・プロセスによって維持されるため、記憶ビット間で確認することができる。後に、記憶ビットを読み取るとき、データ・ビットとパリティ・ビットとの両方が読み出されるため、パリティ・ビットによって、読み出したデータ・ビットにおけるエラーの訂正が可能である。非体系的なECCにおいては、本来のデータ・ビットは維持されず、また、記憶されない。その代わり、エンコーディング・プロセスは、本来のデータ・ビットを、実際に記憶されるビットである(本文において「保護ビット」と呼ぶ)ビットのより大きなグループへ変換する。記憶ビットを読み取るときは、記憶ビットから本来のビットが再生される。特定な本来のデータ・ビットと特定な記憶ビットとの間には、直接的な一致は全くない。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するステップ。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行される。また、少なくとも一つの推定値は、少なくとも一つの他の推定値とは異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するためのプログラム・コード。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行される。また、少なくとも一つの推定値は、少なくとも一つの他の推定値とは異なる。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ。そして(b)読み取り保護ビットからデータ・ビットを回復させるステップ。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行される。また、少なくとも一つの推定値は、少なくとも一つの他の推定値とは異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード。そして(b)読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コード。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行される。また、少なくとも一つの推定値は、少なくとも一つの他の推定値とは異なる。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するステップ。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという、読み取りビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行される。この少なくとも一つの局面は、読み取りビットの各々の有効位、そして読み取りビットの各々のビット・ページからなるグループから選択される一つの局面を含む。この場合、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するためのプログラム・コード。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという、読み取りビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行される。この少なくとも一つの局面は、読み取りビットの各々の有効位、そして読み取りビットの各々のビット・ページからなるグループから選択される一つの局面を含む。この場合、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ。そして(b)読み取り保護ビットからデータ・ビットを回復させるステップ。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという、読み取り保護ビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行される。この少なくとも一つの局面は、読み取り保護ビットの各々の有効位、そして読み取り保護ビットの各々のビット・ページからなるグループから選択される一つの局面を含む。この場合、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード。そして(b)読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コード。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという、読み取り保護ビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行される。この少なくとも一つの局面は、読み取り保護ビットの各々の有効位、そして読み取り保護ビットの各々のビット・ページからなるグループから選択される一つの局面を含む。この場合、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するステップ。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという、読み取りビットの各々の値にのみ基づく各々の確率に従って実行される。この場合、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード。そして(b)パリティ・ビットに対応する読み取りビットに従って、データ・ビットに対応する読み取りビットを訂正するためのプログラム・コード。この場合、訂正は、読み取りビットの少なくとも二つにエラーがあるという、読み取りビットの各々の値にのみ基づく各々の確率に従って実行される。また、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、複数のマルチビット・セルを含むメモリ内に記憶された複数のデータ・ビットを読み取る方法が提供される。データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、この方法は、以下のステップを含む。(a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ。そして(b)読み取り保護ビットからデータ・ビットを回復させるステップ。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという、読み取り保護ビットの各々の値にのみ基づく各々の確率により実行される。また、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明によれば、コンピュータで読み取り可能なコードを持つ、コンピュータで読み取り可能な記憶メディアが提供される。コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、データ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードは、以下を含む。(a)セルを読むことによって、各セルに対する各々の複数の読み取り保護ビットを得るためのプログラム・コード。そして、(d)読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コード。この場合、回復は、読み取り保護ビットの少なくとも二つにエラーがあるという、読み取り保護ビットの各々の値にのみ基づく各々の確率により実行される。また、少なくとも一つの確率は、少なくとも一つの他の確率と異なる。
本発明の方法の第一の実施例は、MBCメモリ内に記憶したデータを、体系的なECCを用いて訂正することに向けられる。本発明の方法の第二の実施例は、MBCメモリ内に記憶したデータを、非体系的なECCを用いて訂正することに向けられる。両方の方法の両実施例における第一のステップは、記憶ビットを読み出すことによって、関連したビットが記憶された各セルに対する各々の複数の「読み取り」ビットを得る。セルを読み取る際のエラーにより、セルの「読み取り」ビットは、セル内に記憶したビットと同一ではない可能性がある。まさに、読み取りビットと記憶ビットとの間のこの相違の可能性こそが、ECCが克服すべきことである。
本発明による第一の方法の第一の実施例では、データ・ビットに対応する読み取りビットが、パリティ・ビットに対応する読み取りビットに従って訂正される。この訂正は、読み取りビットの二つ以上にエラーがあるという確率の演繹的な推定値を考慮する。この場合、すべての推定値が等しいというわけではない。
本発明による第一の方法の第二の実施例では、読み取り保護ビットからデータ・ビットを回復する。この回復は、読み取りビットの二つ以上にエラーがあるという確率の演繹的な推定値を考慮する。この場合、すべての推定値が等しいというわけではない。
本発明による第二の方法の第一の実施例では、データ・ビットに対応する読み取りビットが、パリティ・ビットに対応する読み取りビットに従って訂正される。この訂正は、読み取りビットの二つ以上にエラーがあるという、読み取りビットの少なくとも一つの局面にのみ基づく確率を考慮する。この場合、すべての確率が等しいというわけではない。これらの確率を推定するために用いる読み取りビットの局面は、読み取りビットの有効位、あるいは読み取りビットのビット・ページ、または両方を含まなければならない。
本発明による第二の方法の第二の実施例では、読み取り保護ビットからデータ・ビットを回復する。この回復は、読み取り保護ビットの二つ以上にエラーがあるという、読み取り保護ビットの少なくとも一つの局面にのみ基づく確率を考慮する。この場合、すべての確率が等しいというわけではない。これらの確率を推定するために用いる読み取り保護ビットの局面は、読み取りビットの有効位、あるいは読み取りビットのビット・ページ、または両方を含まなければならない。
本発明による第三の方法の第一の実施例では、データ・ビットに対応する読み取りビットが、パリティ・ビットに対応する読み取りビットに従って訂正される。この訂正は、読み取りビットの二つ以上にエラーがあるという、読み取りビットの値にのみ基づく確率を考慮する。この場合、すべての確率が等しいというわけではない。
本発明による第三の方法の第二の実施例では、読み取り保護ビットからデータ・ビットを回復する。この回復は、読み取り保護ビットの二つ以上にエラーがあるという、読み取り保護ビットの値にのみ基づく確率を考慮する。この場合、すべての確率が等しいというわけではない。
本発明による第一の方法では、演繹的な推定値の少なくとも二つが、複数のセルのうちの一つの共通セルの読み取りビットに対するもの、あるいは読み取り保護ビットに対するものであることが好ましい。代替的に、演繹的な推定値の少なくとも二つが、異なるセルの読み取りビットに対するもの、あるいは読み取り保護ビットに対するものである。
本発明による第一の方法においては、演繹的な確率が、関連ビットの有効位に依存することが好ましい。MBCセル内に記憶されたビットの「有効位」は、そのMBCセル内に記憶された二進数におけるビットの位置である。例えば、4ビットを記憶するMBCセルは、0から15までの二進数を記憶する。すなわち、4ビット、最下位ビット、下位ビット、上位ビット、そして最上位ビットを持つ。代替的に、演繹的な確率は、関連ビットのビット・ページに依存する。MBCフラッシュメモリにおいては、共通有効位にあるすべてのビットを、同じ論理ビット・ページ内に集めるのが一般的である。この場合、演繹的な確率のこれらの二つの依存関係は同等である。
本発明の範囲は、また、メモリ内に記憶したデータを、本発明による方法の一つを用いて回復させる、MBCメモリのためのコントローラ、MBCメモリと本発明によるコントローラとを含むメモリ・デバイス、そして、本発明の方法の一つに従ってメモリを管理するための、コンピュータで読み取り可能なコードを実装させた、コンピュータで読み取り可能な記憶メディアを含む。
本発明は、エラーが起こっている各セル内に記憶された種々のビットの確率についての知識を利用する、マルチビット・パー・セル・メモリのためのエラー訂正方法に関する。
本発明によるエラー訂正の原理および作用は、図面およびその説明を参照することによって、より良く理解することができる。
本発明の最初の二つの方法は、MBCフラッシュメモリ・デバイスから読み出したデータにおけるエラーを、個々のビットがデバイスのセル内に保存される位置に由来する信頼性情報(例えば、各セルのビットが、異なるページに属するMBCフラッシュメモリ・デバイスの場合、個々のビットが、どのビット・ページ内に保存されるのか)を利用して訂正するための、改善された方法である。本発明の第三の方法は、MBCフラッシュメモリ・デバイスから読み出したデータにおけるエラーを、共通セルを共有する異なるビット間の相関に由来する信頼性情報を用いて訂正するための、改善された方法である。提案の方法は、訂正プロセスに用いられるECCコード・ワードが、共用セル内に存在する複数のビットを含むケースに適用できる。これは、リツィン氏らの方法が、MBCフラッシュ・デバイスから読み出したデータにおけるエラーを訂正するために採用されるときに、常に適用できる。
本発明の最初の二つの方法においては、各ビットの物理記憶位置が既知であり、その結果として、その予想エラー率も分かっているという事実を利用する。(本文では、用語「ビットのエラー率」および「ビットの信頼性」を、同じ特徴に関する二つの対向局面として用いる。したがって、同じ特性に言及するのに、これら用語が置換可能に用いられることに注意が必要である)。したがって、ECCモジュールは、ECC計算および決定への出発点として機能するエラーの初期演繹的な確率を各々のビットに割り当てることによって、この情報を利用する。本発明は、特定なECCスキームまたはアルゴリズムに限定されることはない。そのような初期出発点を利用でき、成功確率、収束時間または他の成功要因に関して、より良いエラー訂正を提供できる、従来の技術による多くのECCアルゴリズムが存在する。
特に、本発明の最初の二つの方法は、「ソフト」デコーディング・アルゴリズムと共に用いることを意図している。そのようなアルゴリズムは、例えば、ジョージC.クラーク、Jr.およびJ.ビブ・カインの、デジタル通信のためのエラー訂正コーディング(スプリンガー、1981)、S.リンおよびD.J.コステロの、エラー制御コーディング:基礎および応用(プレンティス・ホール、1983)、そしてブランカ・ヴセチックおよびジンホン・ユエンの、ターボ・コード:原理および応用(クリュウバー、2000)に記述がある。これらの参照は、通信でのソフトECCアルゴリズムの使用を目的としているが、当業者には、それらのアルゴリズムを、マルチビット・パー・セル・メモリのエラー訂正にどのように適応できるかは明らかである。
これらの方法は、セルを高分解能で読み取ることにより追加の情報を得る、上記の従来の技術による方法とは異なる。本発明においては、異なる信頼値が、データを読み取る前に決定されるが、これらは、読み取られるデータの実効値には依存しない。この点が、上記の従来の技術による方法とは異なる。別の言葉で言えば、本発明は、個々のビット位置に対するエラーの演繹的な確率を用いることが可能である。そのような確率を実際のデータから得ることができないとしても可能である。他方、従来の技術によるシステムは、そのような確率を実際データから抽出する機能に依存している。本発明は、例えば、フラッシュの販売業者が提供できる確率を利用する。この演繹的な確率の一つの利点は、本発明が、従来の技術による方法よりも簡単に実行できることである。それらの方法とは異なり、本発明は、記憶ビットに加えた追加ビットを抽出したり、操作したりする必要がない。
例えば、ラッサー’634およびムリンで議論されている、セルにつき4ビットのビット配列{15、14、12、13、9、8、10、11、3、2、0、4、6、7、5、1}を考察する。(これは、図1Dに図解したビット配列である。)それらの特許出願に示されているように、最下位ビットは、最高位ビットの6倍エラーを発生しやすい。第二下位ビットは、最高位ビットの5倍エラーを発生しやすい。そして第二高位ビットは、最高位ビットの3倍エラーを発生しやすい。4論理ページのデータを記憶するのに用いられる、1,000分の1の推定セル・エラー率を持つ、セルにつき4ビットの15,000MBCセルのグループにおいて、各セルの最下位ビットは、6/15,000=2/5,000の演繹的エラー確率を持ち、各セルの第二下位ビットは、5/15,000=1/3,000の演繹的エラー確率を持ち、各セルの第二高位ビットは、3/15,000=1/5,000の演繹的エラー確率を持ち、そして各セルの最高位ビットは、1/15,000の演繹的エラー確率を持つ。
この例においては、ビットの演繹的エラー確率は、ビットの有効係数のみの関数である。同じビット・ページ内のすべてのビットは、エラー発生に関して同じ演繹的な確率を持つ。より一般的には、ビット・ページの若干のビットが、同じビット・ページの他のビットとは異なる演繹的エラー確率を持つことも可能である。
本発明の第三の方法では、MBCセルの物理ページ・ビット内のビットの位置に由来する信頼情報に加えて、ECCモジュールが利用可能なもう一つの情報源があるという事実を利用する。ECCコード・ワードの各ビットが異なるセルに由来するケースに反して、異なるビットのエラーの間に相関が全くなく、コード・ワード内に同じセルに由来する複数のビットが存在するケースでは(リツィン氏らの方法のケースように)、1ビットの値から、同じセル内の他のビットについて値を推測してもよい。フラッシュ・セル内でのすべての誤った状態遷移が、等しい確率で起こるわけではないため、一つのビットからもう一つのビットへと推測を行う。
例えば、セルにつき4ビットのビット配列{15,14,12,13,9,8,10,11,3,2,0,4,6,7,5,1}を考察する。セルのデコーディングを、最上位ビットから最下位ビットへ連続的に行うと仮定する。セルの三つの最上位ビットが「100」として読み取られ、ECCアルゴリズムによって「101」へ訂正されたと仮定する。一つのスレショルド電圧範囲のみのシフトでこれが起こってしまう唯一の経路は、セルが10(二進数1010)として書き込まれて、8(二進数1000)として読み取られた場合である。他の可能な経路は、次のものである。
セルが10(二進数1010)として書き込まれて、9(二進数1001)として読み取られた(二つのスレショルド電圧範囲のシフト)。
セルが11(二進数1011)として書き込まれて、8(二進数1000)として読み取られた(二つのスレショルド電圧範囲のシフト)。
セルが11(二進数1011)として書き込まれて、9(二進数1001)として読み取られた(三つのスレショルド電圧範囲のシフト)。
これは、最下位ビットが「0」である可能性が、最下位ビットが「1」である可能性よりも非常に高いことを暗示する。
この方法は、また、セルを高分解能で読み取ることによって追加の情報を得る、上記の従来の技術による方法とは異なる。本発明においては、ECCモジュールに入力されるビットは、データ・ビットと、それらの対応パリティ・ビットのみである。ECCモジュールが訂正プロセスを実行するために、ECCモジュールへの(予め定めたデータ非依存入力とは対照的に)他データに依存する入力が提供されることは全くない。上記の従来の技術による方法では、そうではなく、高精度な追加ビットが、セルから算出されて、補助入力としてECCモジュールへ提供される。
本発明の範囲は、また、コード・ワード内のビットのすべてではないいくつかのみに、平均とは異なる初期確率を割り当てる、より一般的なケースを含む。また、セルを共有するビット間の相関効果のみを、セルのすべてではないいくつかに対して考慮する、より一般的なケースを含む。
これまで、本発明を、「体系的な」エラー訂正スキームに関連させて提示した。上記のように、体系的なエラー訂正コーディングにおいては、本来のデータ・ビットは、エンコーディング・プロセスによって維持されるため、記憶されたビット内に確認可能である。換言すれば、エラー訂正メカニズムは、本来のデータ・ビットを取り上げ、それらに若干のパリティ・ビットを付加して、データ・ビットおよびパリティ・ビットを記憶する。後に、記憶ビットを読み取るとき、データ・ビットおよびパリティ・ビットを読み取るが、パリティ・ビットによって、読み出したデータ・ビットにおけるエラーの訂正が可能であるため、本来のデータ・ビットを生成できる。
しかしながら、本発明は、非体系的なエラー訂正コードに対しても等しく適用できる。上述したように、そのようなコードにおいては、本来のデータ・ビットは維持されず、また記憶されることもない。その代わり、エンコーディング・プロセスは、本来のデータ・ビットを、実際に記憶されるビットである、より大きなグループのビットへ変換する。記憶された保護データ・ビットを読み取るときは、たとえ保護データ・ビットにエラーがあるとしても、本来のデータ・ビットを再生する。非体系的なコードを定義する特性は、特定な本来のデータ・ビットと特定な記憶ビットとの間に、直接的な一致が全くないということである。本来のデータ・ビットは、複数の記憶ビットに「点在する」ため、それら複数の記憶ビットを組み合わせることによってのみ、本来のビット値が明らかになる。
本発明の範囲は、上述のように、MBCフラッシュメモリ・デバイスからデータ・ビットを読み取るための方法を含む。本発明の範囲は、また、上記の方法に従って、MBCフラッシュ・メモリ・セルのアレイから読み取るフラッシュメモリ・コントローラを含む。発明の範囲は、また、MBCフラッシュ・メモリ・セルのアレイと、上記の方法に従ってアレイから読み取るフラッシュメモリ・コントローラとを結合するフラッシュメモリ・デバイスを含む。
再び図面を参照する。図2は、ホスト30に接続した、本発明によるフラッシュメモリ・デバイス20の高度なブロック図である。図2は、バン氏の米国特許第5,404,485号を示す図1を適応させたものである。なお、この特許は、すべての目的において、参照により本文に完全に記述したものとする。フラッシュメモリ・デバイス20は、フラッシュメモリ24、コントローラ22およびランダムアクセスメモリ(RAM)26を含む。米国特許第5,404,485号に記述があるように、米国特許第5,404,485号の「フラッシュコントロール14」に対応するコントローラ22は、RAM26の助けを借りて、フラッシュメモリ24を管理する。フラッシュメモリ24は、米国特許第6,522,580号あるいは米国特許第6,643,188号に説明されているように、データを、フラッシュメモリ24のセルにつき2ビット以上でエンコードする。データを読み取るときは、コントローラ22が、上述のようにエラー訂正を適用する。
図3は、本発明による代替的なデータ記憶システム50を表す、高度な部分ブロック図である。データ記憶システム50は、プロセッサー52と、四つのメモリ・デバイス、すなわちRAM54、ブートROM56、大容量記憶デバイス(ハードディスク)58およびフラッシュメモリ・デバイス40を含む。これらは、すべて、共通バス60を介して通信する。フラッシュメモリ・デバイス20のように、フラッシュメモリ・デバイス40は、フラッシュメモリ42を含む。しかし、フラッシュメモリ・デバイス20とは異なり、フラッシュメモリ・デバイス40は、それ自身のコントローラおよびRAMが欠けている。その代わり、プロセッサー52は、例えば、イスラエル、クファル・サバにあるMシステムズ・フラッシュディスク・パイオニア社のTrueFFSドライバの方式で、米国特許第5,404,485号の方法を具現するソフトウェア・ドライバを実行することによって、コントローラ22をエミュレートする。フラッシュメモリ42は、米国特許第6,522,580号あるいは米国特許第6,643,188号に説明があるように、データを、フラッシュメモリ42のセルにつき2ビット以上でエンコードする。データを読み取るときは、プロセッサー52が、上述のようにエラー訂正を適用する。フラッシュメモリ・デバイス40は、また、プロセッサー52がフラッシュメモリ42と通信することを可能にするためのバス・インターフェイス44を含む。
フラッシュメモリ42を管理するためにプロセッサー52が実行するソフトウェア・ドライバのコードは、大容量記憶デバイス58内に記憶され、実行の際にRAM54へ移される。このように大容量記憶デバイス58は、本発明の原理に従ってフラッシュメモリ42を管理するための、コンピュータで読み込み可能なコードが埋め込まれた、コンピュータで読み取り可能なコード記憶メディアの例である。
本発明を限られた数の実施例に関して説明したが、本発明の多くの変形、修正、そして他の応用が可能であることは明らかである。
本発明を、例としてのみ、添付の図面を参照して説明する。
1ビット・フラッシュ・セル、2ビット・フラッシュ・セル、3ビット・フラッシュ・セルおよび4ビット・フラッシュ・セルにおけるスレショルド電圧分布を示す。 1ビット・フラッシュ・セル、2ビット・フラッシュ・セル、3ビット・フラッシュ・セルおよび4ビット・フラッシュ・セルにおけるスレショルド電圧分布を示す。 1ビット・フラッシュ・セル、2ビット・フラッシュ・セル、3ビット・フラッシュ・セルおよび4ビット・フラッシュ・セルにおけるスレショルド電圧分布を示す。 1ビット・フラッシュ・セル、2ビット・フラッシュ・セル、3ビット・フラッシュ・セルおよび4ビット・フラッシュ・セルにおけるスレショルド電圧分布を示す。 本発明によるフラッシュメモリ・デバイスの、高度なブロック図である。 本発明によるデータ記憶システムの、高度な部分ブロック図である。

Claims (40)

  1. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するステップからなり、前記訂正が、少なくとも部分的に、前記読み取りビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行され、少なくとも一つの前記推定値が、少なくとも一つの他の前記推定値とは異なることを特徴とする、方法。
  2. 前記演繹的な推定値の少なくとも二つが、セルのうちの一つの共通セルの前記読み取りビットのためのものである、請求項1の方法。
  3. 前記演繹的な推定値の少なくとも二つが、異なるセルの前記読み取りビットのためのものである、請求項1の方法。
  4. 前記演繹的な確率が、前記読み取りビットの各々の有効位に依存する、請求項1の方法。
  5. 前記演繹的な確率が、前記読み取りビットの各々のビット・ページに依存する、請求項1の方法。
  6. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項1の方法を用いて読み取るコントローラ。
  7. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための請求項6のコントローラからなる、メモリ・デバイス。
  8. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するためのプログラム・コードからなり、前記訂正が、少なくとも部分的に、前記読み取りビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行され、そのとき、少なくとも一つの前記推定値が、少なくとも一つの他の前記推定値とは異なる、コンピュータで読み取り可能な記憶メディア。
  9. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ、そして
    (b)読み取り保護ビットからデータ・ビットを回復させるステップからなり、前記回復が、少なくとも部分的に、前記読み取り保護ビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行され、このとき、少なくとも一つの前記推定値が、少なくとも一つの他の前記推定値とは異なる、方法。
  10. 前記演繹的な推定値の少なくとも二つが、セルのうちの一つの共通セルの前記読み取り保護ビットのためのものである、請求項9の方法。
  11. 前記演繹的な推定値の少なくとも二つが、異なるセルの前記読み取り保護ビットのためのものである、請求項9の方法。
  12. 前記演繹的な確率が、前記読み取り保護ビットの各々の有効位に依存する、請求項9の方法。
  13. 前記演繹的な確率が、前記読み取り保護ビットの各々のビット・ページに依存する、請求項9の方法。
  14. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項9の方法を用いて読み取るコントローラ。
  15. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項14のコントローラからなる、メモリ・デバイス。
  16. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード、そして
    (b)読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コードからなり、前記回復が、少なくとも部分的に、前記読み取り保護ビットの少なくとも二つにエラーがあるという各々の確率の演繹的な推定値に従って実行され、このとき、少なくとも一つの前記推定値が、少なくとも一つの他の前記推定値とは異なる、コンピュータで読み取り可能な記憶メディア。
  17. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するステップからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行され、前記少なくとも一つの局面が、前記読み取りビットの各々の有効位と、前記読み取りビットの各々のビット・ページとからなるグループから選択される局面を含み、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  18. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項17の方法を用いて読み取るコントローラ。
  19. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項18のコントローラからなる、メモリ・デバイス。
  20. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するためのプログラム・コードからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行され、前記少なくとも一つの局面が、前記読み取りビットの各々の有効位と、前記読み取りビットの各々のビット・ページとからなるグループから選択される局面を含み、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
  21. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ、そして
    (b)読み取り保護ビットからデータ・ビットを回復させるステップからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取り保護ビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行され、前記少なくとも一つの局面が、前記読み取り保護ビットの各々の有効位と、前記読み取り保護ビットの各々のビット・ページとからなるグループから選択される局面を含み、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  22. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項21の方法を用いて読み取るコントローラ。
  23. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項22のコントローラからなる、メモリ・デバイス。
  24. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取り保護ビットを得るためのプログラム・コード、そして
    (d)前記読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コードからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取り保護ビットの少なくとも一つの局面にのみ基づく各々の確率に従って実行され、前記少なくとも一つの局面が、前記読み取り保護ビットの各々の有効位と、前記読み取り保護ビットの各々のビット・ページとからなるグループから選択される局面を含み、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
  25. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するステップからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りビットの各々の値にのみ基づく各々の確率に従って実行され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  26. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項25の方法を用いて読み取るコントローラ。
  27. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項26のコントローラからなる、メモリ・デバイス。
  28. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するためのプログラム・コードからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りビットの各々の値にのみ基づく各々の確率に従って実行され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
  29. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ、そして
    (b)読み取り保護ビットからデータ・ビットを回復させるステップからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取り保護ビットの各々の値にのみ基づく各々の確率に従って実行され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  30. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項29の方法を用いて読み取るコントローラ。
  31. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項30のコントローラからなる、メモリ・デバイス。
  32. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取り保護ビットを得るためのプログラム・コード、そして
    (d)前記読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コードからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取り保護ビットの各々の値にのみ基づく各々の確率に従って実行され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
  33. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによって記憶が実行されて、記憶ビットの各複数がセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取りビットを得るステップ、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するステップからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りの結果として得られる情報に少なくとも部分的に基づく各々の確率に従って実行され、前記情報が前記読み取りビットの各々の値に制限されており、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  34. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項33の方法を用いて読み取るコントローラ。
  35. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項34のコントローラからなる、メモリ・デバイス。
  36. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数のパリティ・ビットを計算し、それから、データ・ビットおよびパリティ・ビットをメモリのセル内の記憶ビットとして記憶することによってデータ・ビットを記憶するため、記憶ビットの各複数がセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取りビットを得るためのプログラム・コード、そして
    (b)パリティ・ビットに対応する前記読み取りビットに従って、データ・ビットに対応する前記読み取りビットを訂正するためのプログラム・コードからなり、前記訂正が、前記読み取りビットの少なくとも二つにエラーがあるという、前記読み取りの結果として得られる情報に少なくとも部分的に基づく各々の確率に従って実行され、前記情報が前記読み取りビットの各々の値に制限されており、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
  37. 複数のマルチビット・セルを含むメモリ内に記憶される複数のデータ・ビットを読み取る方法であって、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによって記憶が実行されて、各複数の保護ビットがセルの各々に記憶されているとき、
    (a)セルを読むことによって、各セルに対する各複数の読み取り保護ビットを得るステップ、そして
    (b)読み取り保護ビットからデータ・ビットを回復させるステップからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取りの結果として得られる情報に少なくとも部分的に基づく各々の確率に従って実行され、前記情報が前記読み取り保護ビットの各々の値に制限され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、方法。
  38. 複数のマルチビット・セルを含むメモリのための、メモリ内に記憶されたデータを、請求項37の方法を用いて読み取るコントローラ。
  39. (a)複数のマルチビット・セルを含むメモリ、そして
    (b)前記メモリを制御するための、請求項38のコントローラからなる、メモリ・デバイス。
  40. コンピュータで読み取り可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、コンピュータで読み取り可能なコードは、コンピュータで読み取り可能な記憶メディア上に具現化され、複数のマルチビット・セルを含んで複数のデータ・ビットを記憶するメモリを管理するためのものであり、単一グループとしてまとめられているデータ・ビットに対応する複数の保護ビットを計算し、それから、メモリのセル内に保護ビットを記憶することによってデータ・ビットが記憶されて、各複数の保護ビットがセルの各々に記憶されているとき、コンピュータで読み取り可能なコードが、
    (a)セルを読むことによって、各セルに対する各々の複数の読み取り保護ビットを得るためのプログラム・コード、そして
    (d)前記読み取り保護ビットからデータ・ビットを回復させるためのプログラム・コードからなり、前記回復が、前記読み取り保護ビットの少なくとも二つにエラーがあるという、前記読み取りの結果として得られる情報に少なくとも部分的に基づく各々の確率に従って実行され、前記情報が前記読み取り保護ビットの各々の値に制限され、少なくとも一つの前記確率が、少なくとも一つの他の前記確率と異なる、コンピュータで読み取り可能な記憶メディア。
JP2008535184A 2005-10-17 2006-10-15 マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正 Expired - Fee Related JP4825874B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US72681705P 2005-10-17 2005-10-17
US60/726,817 2005-10-17
US11/339,571 US7526715B2 (en) 2005-10-17 2006-01-26 Probabilistic error correction in multi-bit-per-cell flash memory
US11/339,571 2006-01-26
PCT/IL2006/001175 WO2007046084A2 (en) 2005-10-17 2006-10-15 Probabilistic error correction in multi-bit-per-cell flash memory

Publications (2)

Publication Number Publication Date
JP2009512112A JP2009512112A (ja) 2009-03-19
JP4825874B2 true JP4825874B2 (ja) 2011-11-30

Family

ID=45217842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008535184A Expired - Fee Related JP4825874B2 (ja) 2005-10-17 2006-10-15 マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正

Country Status (6)

Country Link
EP (1) EP1952290B1 (ja)
JP (1) JP4825874B2 (ja)
KR (1) KR100943340B1 (ja)
CN (1) CN101529525B (ja)
AT (1) ATE534999T1 (ja)
WO (1) WO2007046084A2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7697326B2 (en) 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7706182B2 (en) 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
JP5150245B2 (ja) 2007-12-27 2013-02-20 株式会社東芝 半導体記憶装置
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
KR101378365B1 (ko) * 2008-03-12 2014-03-28 삼성전자주식회사 하이브리드 메모리 데이터 검출 장치 및 방법
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
WO2009139115A1 (ja) * 2008-05-12 2009-11-19 パナソニック株式会社 半導体記録装置
US8464131B2 (en) 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US8458563B2 (en) 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8787079B2 (en) * 2012-05-07 2014-07-22 Sandisk Technologies Inc. Reading data from multi-level cell memory
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
US8854079B2 (en) * 2013-01-30 2014-10-07 Texas Instruments Incorporated Error detection in nonvolatile logic arrays using parity
CN104916330B (zh) * 2014-03-10 2019-04-12 东芝存储器株式会社 存储装置、存储器控制器及存储器控制方法
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1166887A (ja) * 1997-08-12 1999-03-09 Nippon Steel Corp 半導体記憶装置及び読み出し方法並びに読み出し方法が記憶された記憶媒体
JPH11154394A (ja) * 1997-09-08 1999-06-08 Invox Technol 誤り検出及び訂正を備えた多値レベル不揮発性メモリ
JPH11232898A (ja) * 1997-12-09 1999-08-27 Nippon Steel Corp 半導体記憶装置及びその使用方法並びに使用方法が記憶された記憶媒体
JPH11250695A (ja) * 1998-03-05 1999-09-17 Nec Ic Microcomput Syst Ltd 多値式半導体メモリ装置およびその不良救済方法
JPH11283396A (ja) * 1998-03-27 1999-10-15 Sony Corp メモリ装置
JPH11317095A (ja) * 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
JP2000149592A (ja) * 1998-11-11 2000-05-30 Nec Ic Microcomput Syst Ltd 不良救済用メモリセル及びそれを用いた記憶装置
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP2003036693A (ja) * 2001-05-16 2003-02-07 Fujitsu Ltd 多値半導体メモリの誤り検出・訂正方法および誤り検出・訂正機能を有する多値半導体メモリ
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP2010534361A (ja) * 2007-07-02 2010-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム
JP4638224B2 (ja) * 2002-05-20 2011-02-23 サンディスク コーポレイション 格納されたデータの品質についての情報を用いることによる誤り訂正符号の効率向上およびマルチレベルメモリシステムの操作

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US6029264A (en) * 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
US6212654B1 (en) * 1997-07-22 2001-04-03 Lucent Technologies Inc. Coded modulation for digital storage in analog memory devices
KR100371022B1 (ko) * 1998-11-26 2003-07-16 주식회사 하이닉스반도체 다중비트 메모리셀의 데이터 센싱장치
EP1157473B1 (en) * 1999-12-20 2010-02-24 Koninklijke Philips Electronics N.V. Receiver with improved decoder
US6625236B1 (en) * 2000-02-08 2003-09-23 Ericsson Inc. Methods and systems for decoding symbols by combining matched-filtered samples with hard symbol decisions
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
JP3917563B2 (ja) * 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度のパリティチェック(ldpc)コードをデコードする方法およびシステム
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11317095A (ja) * 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
JPH1166887A (ja) * 1997-08-12 1999-03-09 Nippon Steel Corp 半導体記憶装置及び読み出し方法並びに読み出し方法が記憶された記憶媒体
JPH11154394A (ja) * 1997-09-08 1999-06-08 Invox Technol 誤り検出及び訂正を備えた多値レベル不揮発性メモリ
JPH11232898A (ja) * 1997-12-09 1999-08-27 Nippon Steel Corp 半導体記憶装置及びその使用方法並びに使用方法が記憶された記憶媒体
JPH11250695A (ja) * 1998-03-05 1999-09-17 Nec Ic Microcomput Syst Ltd 多値式半導体メモリ装置およびその不良救済方法
JPH11283396A (ja) * 1998-03-27 1999-10-15 Sony Corp メモリ装置
JP2000149592A (ja) * 1998-11-11 2000-05-30 Nec Ic Microcomput Syst Ltd 不良救済用メモリセル及びそれを用いた記憶装置
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP2003036693A (ja) * 2001-05-16 2003-02-07 Fujitsu Ltd 多値半導体メモリの誤り検出・訂正方法および誤り検出・訂正機能を有する多値半導体メモリ
JP4638224B2 (ja) * 2002-05-20 2011-02-23 サンディスク コーポレイション 格納されたデータの品質についての情報を用いることによる誤り訂正符号の効率向上およびマルチレベルメモリシステムの操作
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP2010534361A (ja) * 2007-07-02 2010-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム

Also Published As

Publication number Publication date
EP1952290A2 (en) 2008-08-06
WO2007046084A2 (en) 2007-04-26
EP1952290A4 (en) 2009-11-25
ATE534999T1 (de) 2011-12-15
KR20080077604A (ko) 2008-08-25
CN101529525A (zh) 2009-09-09
JP2009512112A (ja) 2009-03-19
EP1952290B1 (en) 2011-11-23
WO2007046084A3 (en) 2009-04-09
KR100943340B1 (ko) 2010-02-19
CN101529525B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
JP4825874B2 (ja) マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正
US8990658B2 (en) Probabilistic error correction in multi-bit-per-cell flash memory
JP5113066B2 (ja) Mbcフラッシュメモリにおけるエラー訂正の方法
US7533328B2 (en) Method of error correction in a multi-bit-per-cell flash memory
JP5658128B2 (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US8254167B2 (en) Joint encoding of logical pages in multi-page memory architecture
US8621334B1 (en) Log-likelihood-ratio (LLR) table calibration
JP4856110B2 (ja) チェンサーチ装置およびチェンサーチ方法
US7818653B2 (en) Methods of soft-input soft-output decoding for nonvolatile memory
US20110041040A1 (en) Error Correction Method for a Memory Device
JP2011197957A (ja) 誤り訂正符号復号装置及び誤り訂正符号復号方法
JP2009211742A (ja) 誤り訂正装置および誤り訂正方法
KR20090086523A (ko) 에러가 발생할 수 있는 확률을 기초로 하여 에러가 보정된 비휘발성 메모리
KR20090099265A (ko) 메모리 장치 및 데이터 판정 방법
US8406051B2 (en) Iterative demodulation and decoding for multi-page memory architecture
US10210042B2 (en) Memory system
IL196239A (en) Method of error correction in a multi-bit-per-cell flash memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110506

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110801

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110912

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees