JP4588806B2 - マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム - Google Patents

マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム Download PDF

Info

Publication number
JP4588806B2
JP4588806B2 JP2010513963A JP2010513963A JP4588806B2 JP 4588806 B2 JP4588806 B2 JP 4588806B2 JP 2010513963 A JP2010513963 A JP 2010513963A JP 2010513963 A JP2010513963 A JP 2010513963A JP 4588806 B2 JP4588806 B2 JP 4588806B2
Authority
JP
Japan
Prior art keywords
value
memory cell
characteristic parameter
binary
bit
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
JP2010513963A
Other languages
English (en)
Other versions
JP2010534361A (ja
Inventor
ラム、チャン、ホン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010534361A publication Critical patent/JP2010534361A/ja
Application granted granted Critical
Publication of JP4588806B2 publication Critical patent/JP4588806B2/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/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

Landscapes

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

Description

本発明は、メモリ・ストレージ・システムの動作に関し、より詳細には、高密度ストレージ・システムにおいて統計的方法、パリティ検査及び2進割り当て方式を用いた、メモリ・ストレージ・システムにおけるエラー検出及び訂正に関する。
典型的な半導体コンピュータ・メモリは、多数の物理メモリ・セルのアレイから成る半導体基板上に製造される。一般に、2進データの1ビットは、メモリ・セルに関連付けられた物理パラメータの変化として表される。一般的に使用される物理パラメータには、不揮発性の電気的消去可能プログラマブル読出し専用メモリ(EEPROM:Electrically Erasable Programmable Read Only Memory)におけるフローティング・ゲート又はトラップ層内に貯蔵された電荷量に起因する金属酸化物電界効果トランジスタ(MOSFET: Metal Oxide Field Effect Transistor)の閾値電圧変化、相変化ランダム・アクセス・メモリ(PRAM: Phase-change Random Access Memory)又はオボニック・ユニファイド・メモリ(OUM: Ovonic Unified Memory)における相変化メモリ素子の抵抗変化、及び揮発性ダイナミック・ランダム・アクセス・メモリ(DRAM:Dynamic Random Access Memory)における電荷蓄積変化が含まれる。
単一の物理半導体メモリ・セル内に格納されるビットの数を増大させることは、1ビットあたりの製造コストを下げるための効果的な方法である。物理パラメータの変化を複数のビット値に関連付けることができる場合には、多重ビットのデータも単一のメモリ・セル内に格納することができる。この多重ビットのストレージ・メモリ・セルは、マルチレベル・セル(MLC)として一般に知られている。コンピュータ・メモリ・デバイス及び回路の設計における努力のかなりの量が、単一の物理メモリ・セル内に格納されるビットの数を最大化することに向けて傾注されている。これは、大容量ストレージ・デバイスとして一般に使用されている普及型の不揮発性フラッシュ・メモリのようなストレージ・クラスのメモリの場合には特に当てはまる。
半導体メモリ・セルにおける多重ビット・ストレージのための基本的な必要条件は、複数の重なり合わない値の帯域を収容する、物理パラメータ変化のスペクトルを有することである。nビット・セルに必要とされる帯域の数は、2である。2ビット・セルは4帯域を必要とし、3ビット・セルは8帯域を必要とし、以下同様である。従って、半導体メモリ・セル内で利用可能な物理パラメータのスペクトルが、多重ビット・メモリ・ストレージにとっての制限因子である。
制限的なスペクトル幅に加えて、温度、電力及び時間のような環境変数の変動が、典型的な半導体ストレージ・デバイスのすべての動作及びデータ保全性に影響を及ぼす。データ保全性は、環境変数の変動に起因するデータ・ストレージ・システムにとっての主要な問題である。半導体ストレージ・システムにおいて格納されたデータの保全性を保つための、費用効果が高い方法を考案することが望ましい。
本発明の1つの例示的な実施形態は、メモリ・セル集合体を動作させる方法である。メモリ・セル集合体は、メモリ・セルのグループごとに少なくとも1つのパリティ・セルに関連付けられたメモリ・セル・グループとして組織化された、複数のメモリ・セルを含む。メモリ・セル・グループ内のメモリ・セルの各々は、1つの特性パラメータの特性パラメータ帯域によって境界を定められた2進マルチビット値を格納し、隣接する特性パラメータ帯域同士は、1ビットだけ異なる割当てられた2進マルチビット値を有する。パリティ・セルは、マルチビット・パリティ値を格納する。さらに、特性パラメータは、経時的にシフトする。
メモリ・コントローラの動作のための方法は、メモリ・セルの集合体における特性パラメータを複数の特性パラメータ帯域に分割することを伴う。2つの隣接する特性パラメータ帯域同士が1ビットだけ異なる割り当てられた2進マルチビット値を有するように、2進マルチビット値が特性パラメータ帯域の各々に割り当てられる。関連付け動作が、メモリ・セル集合体内のメモリ・セル・グループを少なくとも1つのパリティ・セルに関連付ける。パリティ・セルは、マルチビット・パリティ値を格納し、マルチビット・パリティ値は、そのメモリ・セル・グループについて、格納された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示すので、メモリ・セル・グループ及びパリティ・セルにおける各ビット位置は、期待パリティ検査値(expected parity check value)を有するようになっている。
変換動作が、2進マルチビット値及びマルチビット・パリティ値を特性パラメータ値に変換する。特性パラメータ値は、その2進マルチビット値に対応する割り当てられた2進マルチビット値に関連付けられた特性パラメータ帯域内にある。格納動作が、メモリ・セル・グループ及びパリティ・セル内に2進マルチビット値及びマルチビット・パリティ値を格納する。
その後の時点で、抽出(retrieving)動作が、メモリ・セル・グループ及びパリティ・セルから、格納された特性パラメータ値を抽出する。変換動作が、割り当てられた2進マルチビット値に従って、格納された特性パラメータ値を抽出された2進マルチビット値に変換する。計算動作が、実パリティ検査値(actual parity check value)を計算する。実パリティ検査値は、メモリ・セル・グループについて、抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示す。
実パリティ検査値が期待パリティ検査値に等しくない場合には、方法は、計算動作、識別動作及び割り当て動作をさらに含む。計算動作は、メモリ・セル・グループ内の各メモリ・セル及びパリティ・セルについて、格納された特性パラメータ値がその2進マルチビット値に割り当てられた特性パラメータ帯域に属する帯域確率を計算する。識別動作は、低い帯域確率を有する少なくとも1つのエラー・メモリ・セルを識別する。エラー・メモリ・セルは、メモリ・セル・グループ内のメモリ・セル及びパリティ・セルのうちの少なくとも1つに対応する。割り当て動作は、第2の実パリティ検査値が、メモリ・セルのグループについて、抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、エラー・メモリ・セルに、抽出された2進マルチビット値に関連付けられた特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値を割り当てる。
本発明の別の例示的な実施形態は、メモリ・デバイスである。メモリ・デバイスは、複数のメモリ・セルを含む少なくとも1つのメモリ・セル集合体を含む。複数のメモリ・セルは、メモリ・セル・グループとして組織化される。グループ内の各メモリ・セルは、1つの特性パラメータの特性パラメータ帯域によって境界を定められた2進マルチビット値を格納するように構成され、隣接する特性パラメータ帯域同士は1ビットだけ異なる割り当てられた2進マルチビット値を有する。少なくとも1つのパリティ・セルが、メモリ・セル・グループに関連付けられる。パリティ・セルは、マルチビット・パリティ値を格納するように構成され、マルチビット・パリティ値は、そのメモリ・セルのグループについて、格納された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示すので、メモリ・セル・グループ及びパリティ・セルにおける各ビット位置は、期待パリティ検査値を有することになる。
メモリ・デバイス内の受信ユニットは、メモリ・セル・グループ内の各メモリ・セル及びパリティ・セルについて、格納された特性パラメータ値を受信するように構成される。検知ユニットは、メモリ・セル集合体内の各メモリ・セルについて、特性パラメータにおけるシフトした値を検知するように構成される。生成ユニットは、メモリ・セル集合体内の各メモリ・セルについて、特性パラメータのシフトした値から、格納された2進マルチビット値の各々について特性パラメータ値の確率分布関数を生成するように構成される。確率決定ユニットは、メモリ・セル・グループ及びパリティ・セル由来の格納された特性パラメータ値が格納された2進マルチビット値についての確率分布関数内にある帯域確率を決定するように構成される。変換ユニットは、メモリ・セル・グループ及びパリティ・セル由来の格納された特性パラメータ値を、確率が最も高い、抽出された2進マルチビット値に変換するように構成される。エラー訂正ユニットは、実パリティ検査値を計算するように構成される。実パリティ検査値は、メモリ・セル・グループについて、抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示す。実パリティ検査値が期待パリティ検査値に等しくない場合には、エラー訂正ユニットは、格納された特性パラメータ値がその2進マルチビット値に割り当てられた特性パラメータ帯域に属する帯域確率を受信するように構成される。さらに、エラー訂正ユニットは、低い帯域確率を有する少なくとも1つのエラー・メモリ・セルを識別するように構成される。エラー・メモリ・セルは、メモリ・セル・グループ内のメモリ・セル及びパリティ・セルのうちの少なくとも1つに対応する。エラー訂正ユニットはまた、第2の実パリティ検査値を計算することで、メモリ・セル・グループについて、抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、エラー・メモリ・セルに、抽出された2進マルチビット値に関連付けられた特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値を割り当てる。
本発明のさらに別の例示的な実施形態は、複数のメモリ・セルを含むメモリ・セル集合体を動作させるためのコンピュータ・プログラム・コードを実体化した有形のコンピュータ可読媒体を含むコンピュータ・プログラムである。複数のメモリ・セルは、メモリ・セル・グループとして組織化される。各メモリ・セル・グループは、少なくとも1つのパリティ・セルに関連付けられる。メモリ・セル・グループ内の各メモリ・セルは、1つの特性パラメータの特性パラメータ帯域によって境界を定められる2進マルチビット値を格納するように構成され、隣接する特性パラメータ帯域同士は1ビットだけ異なる割り当てられた2進マルチビット値を有するようになっている。パリティ・セルは、マルチビット・パリティ値を格納するように構成され、マルチビット・パリティ値は、そのメモリ・セルのグループについて、格納されたマルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示すので、メモリ・セル・グループ及びパリティ・セルにおける各ビット位置は、期待パリティ検査値を有することになる。
コンピュータ・プログラムは、メモリ・セル・グループから、及び関連したパリティ・セルから、格納された特性パラメータ値を受信するように構成された、コンピュータ実行可能命令を含む。コンピュータ実行可能命令は、割り当てられた2進マルチビット値に従って、格納された特性パラメータ値を抽出された2進マルチビット値に変換するように構成される。コンピュータ実行可能命令はまた、実パリティ検査値を計算するように構成される。実パリティ検査値は、メモリ・セル・グループについて、抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示す。実パリティ検査値が期待パリティ検査値に等しくない場合には、コンピュータ実行可能命令は、格納された特性パラメータ値がその2進マルチビット値に割り当てられた特性パラメータ帯域に属する帯域確率を計算するように、さらに構成される。コンピュータ実行可能命令はまた、低い帯域確率をもつ少なくとも1つのエラー・メモリ・セルを識別するように構成される。エラー・メモリ・セルは、メモリ・セル・グループ内の少なくとも1つのメモリ・セル又はパリティ・セルに対応する。さらに、コンピュータ実行可能命令は、第2の実パリティ検査値を計算することで、メモリ・セル・グループについて、抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、エラー・メモリ・セルに、抽出された2進マルチビット値に関連付けられた特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値を割り当てる。
本発明として考えられる対象は、本明細書の結論部にある特許請求の範囲において詳細に指示され、かつ明確に特許請求される。本発明の前述及びその他の目的、特徴及び利点は、添付の図面と併せて解釈される以下の詳細な説明から明らかである。
本発明によるメモリ・システムの特定の実施形態を示す。 メモリ・システムの動作に対する環境の影響を示す。 本発明の例示的なメモリ・セル集合体における特性パラメータ分布を示す。 本発明の1つの実施形態による、(A)パリティ検査動作、(B)帯域への2進値の割り当て、及び(C)パリティ検査によるエラー表示を示す。 本発明の1つの実施形態によるエラー検出動作を示す。 本発明の1つの実施形態によるエラー検出及び訂正動作のフローを示す。 本発明の1つの実施形態によるエラー検出及び訂正メモリ・デバイスを示す。
詳細な説明は、図面を参照して、例として本発明の好ましい実施形態を利点及び特徴と共に説明する。
本発明を、図1−図7を参照して説明する。図面を参照する場合に、全体を通して図示されている同様の要素は、同様の参照数字で示される。
図1は、本発明の1つの実施形態によるメモリ・システム102の例示的な実施形態を例示する。システムは、メモリ・バス108を介して1つ又は複数のメモリ・ユニット106に結合されたメモリ・コントローラ104を含む。
メモリ・ユニット106は、個別にパッケージされたメモリチップとすることもでき、又はメモリ・ユニット106は、互いに多重化された単一のパッケージ内に存在することもできる。さらに、メモリ・コントローラ104は別個にパッケージされることもでき、又はメモリ・ユニット106と共に組み込まれることもできる。
メモリ・ユニット106は特定のメモリ・ストレージ技術に限定されない。当業者であれば、異なるメモリ技術はデータを格納するために異なる特性パラメータを用いることを認識する。例えば、動的ランダム・アクセス・メモリ(DRAM)技術は、2進データを保持するための特性パラメータとして電荷蓄積の変化を用いる。相変化メモリ(PCM)及び抵抗変化ランダム・アクセス・メモリ(RRAM:Resistive Random Access Memory)技術は、2進データを格納するための特性パラメータとして抵抗変化を用いる。メモリ・セル・システム102は、全てのメモリ・セル114について共通の特性パラメータであるということに拘束されることを必要とするのみである。
図示されるように、各メモリ・ユニット106は、複数のメモリ・セル集合体110に分割される。各メモリ・セル集合体110は、複数のメモリ・セル・グループ112から構成される。各メモリ・セル・グループ112は、複数のメモリ・セル114及び少なくとも1つのパリティ・セル116を含む。さらに、個別のメモリ・セル114及びパリティ・セル116の各々は、2進値をメモリ・セル内の特性パラメータ帯域に関連付けることによって、少なくとも1つの可能な2進値を含む。特性パラメータ帯域は、図2でさらに説明される格納動作の間に、プリセットされた特性パラメータの値の範囲によって境界を定められる。本発明のエラー検出及び訂正方式の実施形態において、メモリ・セル集合体110内のメモリ・セル114は、互いに物理的に近接して位置し、ほぼ同時に書き込み及び読み出しされ、従って、同様の特性パラメータの摂動及び劣化を受けることになる。
1つの実施形態において、メモリ・コントローラ104は、命令/データ・バス118を通して中央処理ユニット(CPU)から指令及び対応するデータを受信して、メモリ・セル集合体110をプログラムする。データを受信すると、メモリ・コントローラ104は、プログラムされるメモリ・セル集合体110にデータを送信する前に、データをグループに細分し、計算し、各グループに少なくとも1つのパリティ・セル116でタグを付ける。
パリティ・セル116をメモリ・セル・グループ112に組み込む利点は、データのエラー訂正方式において明らかである。パリティ・セル116のデータは、ビット位置における2進「真」値の数が奇数又は偶数のどちらであるかを示す。これにより、メモリ・セル・システム102が、抽出された各ビット・カラム内の2進「真」値の奇数又は偶数の数を、プリセットされた期待される2進「真」値の奇数又は偶数の数と比較することによって、抽出されたデータを、後述する環境因子の結果として変化する可能性がある値について検査することが可能になる。値が等しくない場合には、メモリ・セル・システム102は訂正行動をとることができる。
図2に移ると、本発明によるメモリ・セル動作手順202が示される。ステップ204において、格納されるべきデータが取得される。データは、中央処理ユニット(CPU)、又はメモリ・セルを含むメモリ・ユニットに結合された周辺デバイスのような、種々のソースからもたらされることができる。
プログラミング動作206において、取得されたデータはメモリ・セルに書き込まれる。使用されるストレージ技術に応じて、データを書き込むことは、電荷蓄積のためにキャパシタ内に電荷を格納すること、閾値電圧の変化のためのフローティング・ゲート・トランジスタ内のソース、ドレイン又は制御ゲートに電圧を印加すること、光屈折率を変化させるために相変化材料を溶融及び冷却すること、又は抵抗を変化させるために相変化材料を溶融及び冷却することから構成されることができる。データは、メモリ内に書き込まれた後、格納動作208において、ある期間にわたって格納される。
格納動作208後のさらにあとの時点で、読み出し動作210の間にデータがメモリ・セルから抽出される。データを抽出するための厳密なプロセスもまた使用される技術に依存する。例えば、DRAMメモリを読み出す場合には、トランジスタが駆動され、メモリ・セルのキャパシタを読み出し線(sense line)に接続する。PCMメモリ・セルを読み出す場合には、電流がセルの相変化材料に通される。データはステップ212で最終的に抽出される。
環境214(メモリ・セルの内部及び外部の両方)は、メモリ・セル動作手順202のプログラミング動作206、格納動作208及び読み出し動作210に影響を及ぼす。それらに限定されないが、湿度、時間、温度、磁界及び電界のような環境因子は、例えば、DRAMにおける電荷の漏れ、EEPROMにおける閾値電圧のシフト、光メモリの相変化材料における光屈折率の変化を引き起こし、又はPCM及びRRAMにおける抵抗レベルを変化させることがある。より一般的には、メモリ・セル内に2進値を描く(delineate)ために使用される特性パラメータは、環境条件によって経時的にシフトすることがある。環境因子214はデータの歪みを引き起こし、その結果、メモリ・セルから引き出されるデータがメモリ・セルへ入力されたデータと同じではないことがある。後述のように、本発明の実施形態は、統計的演算及びパリティ検査を用いたエラー検出及び訂正方法を用いて特性パラメータにおける経時的なシフトを補償する、動作手順である。
図3は、3ビットの2進値を有するメモリ・セル集合体分布302のための割り当て方式、及びメモリ・セル集合体内での特性パラメータ値のシフトを示す。各メモリ・セルにおける特性パラメータは、複数の特性パラメータ帯域(値の範囲とも呼ばれる)に分割される。各々の初期特性パラメータ帯域310は、割り当てられた2進マルチビット値304に関連づけられ、隣接する2つの初期特性パラメータ帯域310は1ビットだけ異なる割り当てられた2進マルチビット値304を有する。グレイコードは、この例示的な実施形態のために実施することができる割り当て方式の例である。さらに、初期特性パラメータ帯域310は各々、プリセットされた特性パラメータ基準値306(例えば、パラメータPref0−Pref7として指定される)を中心とする。メモリ・セルをプログラムする場合、そのメモリ・セルについての特性パラメータ値は、プリセットされた特性パラメータ基準値306に対してプログラムされる。
理想的には、メモリ・セル集合体内に格納された2進マルチビット値は、プリセットされた特性パラメータ基準値306に厳密に等しい正確な特性パラメータ値により表される。しかし実際には、特性パラメータ値は、プリセットされた特性パラメータ基準値306を中心にして値の範囲/帯域(典型的にはガウス分布曲線)を形成する。これは、典型的には、メモリ・セル製造の際の固有の変動に起因する。従って、プリセットされた特性パラメータ基準値306(Pref0−Pref7)は、データがメモリ・セル集合体において最初にプログラムされたときの特性パラメータの平均値である。さらに、特性パラメータ値は、上述のように、環境因子の結果として経時的にシフトする。各メモリ・セル集合体の初期特性パラメータ帯域310は、最初は一様であり、プリセットされた特性パラメータ基準値Pref0−Pref7を中心とする。一般性を失うことなく、ここで、各初期特性パラメータ帯域310内にあるメモリ・セルの数は同一であると仮定されるが、しかしながら、実際には、メモリ・セルの数は異なっていてもよい。
図3はまた、環境因子の結果としての特性パラメータ値のシフトを、その値が形成する特性パラメータ値の範囲/帯域の形態で図示する。図示されているように、シフトした特性パラメータ帯域312は、もはやプリセットされた特性パラメータ基準値306を中心とはせず、シフトした特性パラメータ基準値308を中心とする。特性パラメータ値は、初期特性パラメータ帯域310から、ストレージ環境又は動作環境におけるメモリ・セル・パラメータのポテンシャル・エネルギーがより低い構成を表す、左方向にシフトする。一般に、最低ポテンシャル・エネルギーの構成から離れるほど、シフトはより著しくなり、分散はより広くなる。例えば、図3における特性パラメータは、フラッシュEEPROMのメモリ・セル集合体の見掛けの閾値電圧を表すことができ、この場合、見掛けの閾値電圧はフローティング・ゲート内に格納された電子の数の増加関数であり、最低ポテンシャル・エネルギーの構成は格納された電子が存在しないことであり、これは最も低い見掛けの閾値電圧に対応する。
メモリ・コントローラは、メモリ・セル集合体内の目標とするメモリ・セルの特性パラメータ値だけでなく、メモリ・セル集合体内の全てのメモリ・セルの特性パラメータ値を読み出すことによって、特性パラメータ値の減衰を有利に補償する。データ抽出動作において、メモリ・コントローラは、メモリ・セル集合体内の各メモリ・セルについて高精度の特性パラメータ値を受信し、統計的方法によって、分散し、かつシフトした特性パラメータ帯域を確からしい分布曲線にあてはめる。
目標メモリ・セルの特性パラメータ値は、構築された、シフトした特性パラメータ帯域312に対して求められ、目標メモリ・セルについての最も尤もらしい2進値は、最も高い確率値をもつ帯域を選択することによって決定される。メモリ・セル集合体内のいかなるメモリ・セルを目標メモリ・セルとすることもできる。この方式で、メモリ・セル集合体内の全てのメモリ・セルの2進値を抽出することができる。本発明の1つの実施形態において、メモリ・セル集合体のシフトした特性パラメータ帯域312は、目標メモリ・セル又はメモリ・セル・グループ又はメモリ・セル集合体全体が読み出されるたびに、再構築される。メモリ・セルのデータは、閾値の時間間隔の後、及び/又はメモリ・セルがプログラム又は再プログラムされたときに、再書き込み又は再格納することができる。
1つの実施形態において、特性パラメータ帯域は、確率分布関数
Figure 0004588806

によって作成され、ここで、nはk番目の帯域内の特性パラメータをもつメモリ・セルの数であり、mは1メモリ・セルあたりのビット・ストレージ値の数であり、xは、特定の帯域に付随するメモリ・セルから読み出される特性パラメータ値の値であって、xのk乗ではなく、従って、x は、メモリ・セル集合体110における第1の特性パラメータ帯域からの第1の特性パラメータを示すことになる。帯域の数(k)、及び読み出される特性パラメータ値の平均
Figure 0004588806

は、
Figure 0004588806

によって定義される。さらに、μはk番目の帯域の平均であり、基準点Prefとしても用いられ、σ はk番目の帯域の分散である。
最尤推定量は、
Figure 0004588806

で与えられ、ここで、
Figure 0004588806

はk番目の帯域の平均推定量であり、
Figure 0004588806

はk番目の帯域の分散推定量である。最尤推定量を用いて、特定の値が属する帯域と、そして次にメモリ・セルが格納する2進データとが、最小二乗法を使用して求められる。メモリ・セルから検知された値は、メモリ・セル集合体の個別の各帯域内に置かれ、その値と帯域の平均値に対するその関係とに基づいて、確率が各帯域に割り当てられる。
個別の各メモリ・セルが別個にプログラムされた場合には、シフトした分布帯域の構築における問題が生じる。各メモリ・セルは、プログラミング間で異なる持続時間にわたって環境因子にさらされることがあるので、各々の特性パラメータのシフトが互いに異なることになる。例えば、EEPROMにおいて、フローティング・ゲート内に格納された電子は、時間の経過に応じて、及び熱によって漏れることがある。異なる回数プログラムされたメモリ・セルは、その最初のプログラミングからどれくらいの期間にわたって熱にさらされたかに応じて、異なる量の電子の漏れを有することになる。さらに、特性パラメータ帯域はメモリ・セル集合体ごとに大きく異なることになる。
あるデータを変更する必要があるかどうかにかかわらずセルを全て同時にプログラムした場合には、一貫したデータシフトが引き起こされる。電子の漏れがメモリ・セル集合体にわたって一貫しているので、これにより、さまざまな程度のシフトにともなう前述の問題が防止される。ここで、確率分布関数及び最尤推定量を用いて、新規の分布帯域を一貫してシフトしたデータにより作り出すことができる。
時間、熱及び他の環境因子が特性パラメータ値及びその帯域をシフトさせるので、ある期間が経つと、値の範囲が1つの連続した帯域になり始めるほどシフトすることがある。図3を再度参照すると、例えば、2進データ「110」及び「111」に対応するシフトした特性パラメータ帯域312は、ポイント314で重なり始める。最尤推定量を用いて、重なり領域中に位置する値についての良好な推定値を生成することができるが、重なりが増大するにつれて最尤推定量の精度は低下する。最尤推定におけるこの不確実性の克服を補助するために、以下に詳述されるように、エラー訂正方式が利用される。
図4(A)は、8つのメモリ・セル114のグループについて3ビットの2進ストレージ値を用いた本発明の例示的な実施形態を例示する。サンプルデータは、例証の目的で入れられている。ビット位置を示す3つのビット・カラム402は、2進「真」値又は2進「偽」値のいずれかを含む。メモリ・セル114のグループに関連付けられたパリティ・セル116のデータ・ビットは、メモリ・セル114及びパリティ・セル116を含むデータ・ビットの各ビット・カラム402の値を求めて、偶数の2進「真」値の総数となるようにすることによって得られる。他のパリティ方式も同様に利用することができることに留意されたい。
図4(B)は、3ビット・メモリ・システムにおける特性パラメータ帯域に関連付けられる割り当てられた2進マルチビット値についての表を示す。図4(C)は、例示的な3ビット・メモリ・システムについての8つの可能な実パリティ検査値412を示す。図4(C)に示されるように、実パリティ検査値412を求めて「000」414となる場合には、検出されたエラーは存在しない。
ビット位置において実パリティ検査値412から求められた全ての2進「真」値は、特性パラメータ値の帯域間のシフトに対応するエラーに帰着する。「001」、「010」及び「100」のような1つの2進「真」値をもつ実パリティ検査値412は、メモリ・セル・グループ112における1ビット・エラー416を示す。「001」の実パリティ検査値412は、典型的には、全て右端のビット・カラム406(最下位ビット)で発生する、2進値における4つの可能なシフトの結果である。「010」の実パリティ検査値412は、典型的には、両方とも中間のビット・カラム408で発生する、2進値におけるシフトの結果である。最後の1ビット・エラー416は「100」の実パリティ検査値412によって示され、この場合、左端のビット・カラム410において発生した2進値のシフトが存在する。
「011」、「101」及び「110」のような2ビット・エラー418、及び実パリティ検査値「111」によって示される3ビット・エラー420もまた、1ビット・エラー416の組み合わせとして識別及び訂正することができる。例えば、「011」の実パリティ検査値412は、中間のビット・カラム及び右端のビット・カラムにエラーがあることを示しているので、408及び406の2進値シフトが発生している。
このパリティ及び割り当て方式における全ての検出可能なエラーは、訂正することができる。しかしながら、同じビット・カラム内の偶数のエラーは、検出不可能なエラーをもたらすことになるので、従って訂正することができない。この一例は、帯域1と0との間でシフトした値、及び帯域3と2との間でシフトした値である。両方とも右端のビット・カラムのエラー406であるので、実パリティ検査412は右端のビット・カラムにおいて2進「偽」値となり、エラーは検出されない。
以下を例として、エラー検出及び訂正方式を説明する。各メモリ・セルが3ビットのデータを格納する上記のメモリ・セル集合体を参照して、図5は、8つのメモリ・セル114のメモリ・セルのグループ中に格納された2進データの例を、偶数の期待パリティ検査値に対してコード化されたパリティ・セル116と共に示す。後の読み取り操作の際に、メモリ・セル・グループ112の抽出された2進マルチビット値502は誤りデータを含む。抽出されたデータから求められた実パリティ検査値412は「001」であり、これはエラーが検出されたことを示す(データ・セル2は、ここでは、図4(A)における「100」の代わりに「101」と読める)。メモリ・セル・グループ112内の各メモリ・セル114及びパリティ・セル116から抽出された2進データと共に、帯域確率504は、抽出されたデータがプログラミング操作の間に各メモリ・セル内に格納された尤度を示す。各メモリ・セルについての帯域確率504は、上述のような統計的方法を用いて求められる。メモリ・セル・グループ112の帯域確率504を比較すると、データ・セル2について抽出されたデータ「101」は、正しいものである確率がメモリ・セル・グループ内で最も低く、よって最も確からしいエラー・メモリ・セルである。
図4(B)及び図4(C)を再度参照すると、実パリティ検査値「001」は416エラーを示し、これは4つの可能な2進値シフトのみを有する。さらに、データ・セル2は、帯域6に関連付けられた抽出された2進マルチビット値を有する。帯域6のエラーが実パリティ検査値「001」と共に生じる唯一の可能な状況は、帯域7に関連付けられた特性パラメータ値が、誤って帯域6に関連付けられたデータとして識別されるほど左側にシフトした場合である。データ・セル2は、ここで、シフトした特性パラメータ基準値308(図3)を中心とする新規な特性パラメータ値を用いて再プログラムされる。
実パリティ検査値506は、ここで、期待パリティ検査値404に従って偶数パリティ(「000」)に戻されるべきである。実パリティ検査値506が偶数パリティを示さない場合には、エラーを訂正することができず、エラー状態が示される。
図6に移ると、本発明の実施形態によるエラー検出及び訂正のフローチャートが示される。フローチャートの各ブロック、及びフローチャートにおけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施できることが理解される。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、又は他の機械製造用プログラマブル・データ処理装置のプロセッサに与えることができ、コンピュータ又は他のプログラマブル・データ処理装置のプロセッサを通じて実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックの中で指定された関数/動作を実施するための手段を生成するようになっている。これらのコンピュータ・プログラム命令はまた、コンピュータ又は他のプログラマブル・データ処理装置が特定の方式で機能するように命ずることができるコンピュータ可読メモリに格納することができ、コンピュータ可読メモリに格納された命令が、フローチャートにおいて指定された関数/動作を実施する命令手段を含む製品を製造するようになっている。
コンピュータ・プログラム命令はまた、コンピュータで実施されるプロセスを生成するためにコンピュータ又は他のプログラマブル装置上で実行される一連の動作ステップを生じさせるために、コンピュータ又は他のプログラマブル・データ処理装置にロードすることもでき、コンピュータ又は他のプログラマブル装置上で実行する命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックの中で指定された関数/動作を実施するためのステップを提供するようになっている。
当業者に理解されるように、本発明は、方法、システム、又はコンピュータ・プログラム製品として実体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又はソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態をとることができ、これらは全て、本明細書において概略的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明は、媒体内で具体化されたコンピュータ使用可能プログラム・コードを有する、コンピュータ使用可能ストレージ媒体上のコンピュータ・プログラム製品の形態をとることができる。
いかなる好適なコンピュータ使用可能媒体又はコンピュータ可読媒体を利用することもできる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的又は半導体のシステム、装置又はデバイスとすることができるが、それらに限定されない。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)は、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プロブラマブル読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光学ストレージ・デバイス又は磁気ストレージ・デバイスを含む。
図示されるように、プロセスフローは抽出動作610で開始する。抽出動作610の間に、2進マルチビット値及びマルチビット・パリティ値を格納する特性パラメータ値がメモリ・セル・グループから抽出される。上述のように、本発明は、特定のメモリ・ストレージ技術に限定されず、本発明に従ってデータを格納するために種々の特性パラメータを使用することができる。本発明の1つの実施形態において、アナログ・センス増幅器及びアナログ−デジタル変換器回路が抽出動作610を実行する。抽出動作610が完了した後、制御は変換動作620へと移る。
変換動作620において、格納された特性パラメータ値は、2進マルチビット値及び1つ又は複数のマルチビット・パリティ値に変換される。特性パラメータ値を2進マルチビット値に変換するために、当該技術分野で公知のグレイコードのような種々の2進コード化方式を用いることができる。
本発明の特定の実施形態において、特性パラメータ値をマルチビット・データ値及びマルチビット・パリティ値に変換することは、メモリ・セル集合体内の各メモリ・セルについて特性パラメータのシフトした値を検知することを含む。次に、各メモリ・セルについての特性パラメータのシフトした値から、可能な2進マルチビット値の各々について、確率分布関数が生成される。メモリ・セル・グループ及びパリティ・セル由来の格納された特性パラメータ値が確率分布関数内にある確率が、可能な2進マルチビット値の各々について決定される。さらに、メモリ・セル・グループ及びパリティ・セル由来の格納された特性パラメータ値は、確率が最も高い、抽出された2進マルチビット値及びマルチビット・パリティ値に変換される。変換動作620が完了した後、プロセスフローは計算動作630へと移る。
計算動作630において、マルチビット・データ値が調べられ、実パリティ検査値が計算される。実パリティ検査値は、抽出されたパリティ検査値と同様に、抽出された2進マルチビット値の各ビット位置における2進「真」値の出現回数が奇数であるか又は偶数であるかを示す。計算動作630が完了した後、制御は決定動作640へと移る。
判定動作640において、実パリティ検査値は、パリティ・セルから抽出された期待パリティ検査値に対して比較される。実パリティ検査値が期待パリティ検査値と等しい場合には、このことは抽出された2進マルチビット値がエラーを含まないことを示し、プロセスフローは判定動作690へと進む。しかしながら、実パリティ検査値と期待パリティ検査値との間に不一致が存在する場合には、制御は識別動作650へと移る。
識別動作650において、格納された特性パラメータ値がその2進マルチビット値に割り当てられた特性パラメータ帯域に属する帯域確率が、メモリ・セル・グループ内の各メモリ・セル及びパリティ・セルについて計算される。各メモリ・セルについての帯域確率は、上述のような統計的方法を用いて求められる。識別動作650はさらに、低い帯域確率を有する、メモリ・セル・グループ及び/又はパリティ・セルに属する少なくとも1つのエラー・メモリ・セルを識別する。本発明の特定の実施形態において、エラー・メモリ・セルの帯域確率は確率の閾値に対して比較され、確率の閾値を上回る帯域確率を有するメモリ・セルは、エラー・メモリ・セルとはみなされない。識別動作650が完了した後、制御は比較動作660へと移る。
比較動作660において、エラー・メモリ・セルの帯域確率が、確率の閾値に対して比較される。エラー・メモリ・セルの帯域確率が閾値より低くない場合には、エラー指標(error indication)がエラー動作662で送信される。比較動作660はまた、エラー・メモリ・セルが属していた確率が最も高い隣接帯域である、最も近い又は近接した隣接帯域を探す。特に、この動作は、エラー・メモリ・セルの現在の特定パラメータ帯域に隣接する帯域内に実パリティ検査値を訂正し得るマルチビットの2進値があるかどうかを検査する。エラー・メモリ・セルが、それが属する、尤もらしい近接した隣接帯域を有さない場合には、ステップは失敗し、エラー動作662へと進む。エラー・メモリ・セルの帯域確率が閾値を満たし、かつ、エラー・メモリ・セルが、それが属する尤もらしい近接した隣接帯域を有する場合には、制御は再書き込み動作670へと移る。
再書き込み動作670において、訂正されたデータがエラー・メモリ・セルに再書き込みされる。このステップの間に、第2の実パリティ検査値が、メモリ・セル・グループについて、抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現の数が奇数であるか又は偶数であるかを正しく示すように、エラー・メモリ・セルに、抽出された2進マルチビット値に関連付けられた特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値が割り当てられる。再書き込み動作670が完了した後、制御は判定動作680へと移る。
判定動作680において、第2の実パリティ検査値を用いた第2のパリティ検査から得られる結果が調べられる。第2の実パリティ検査値が、メモリ・セル・グループについて、抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現の数が奇数であるか又は偶数であるかを、期待パリティ検査値に従って、正しく示さない場合には、エラー動作682においてエラー指標が伝送される。第2のパリティ検査値がメモリ・セル・グループについてパリティを正しく示す場合には、制御は判定動作690へと移る。
判定動作690において、メモリ・セル集合体内にエラー検出及び訂正を必要とするさらなるメモリ・セル・グループが存在するかどうかについて判定がなされる。メモリ・セル集合体内にエラー検出及び訂正を必要とするメモリ・セル・グループがさらに存在する場合には、システムは次のメモリ・セル・グループに移動し、制御フローは抽出動作610に戻る。メモリ・セル集合体内のメモリ・セル・グループがエラー検出及び訂正を必要とする最後の又は唯一のメモリ・セル・グループである場合には、プロセスは終了する。
図7を参照すると、1つの例示的な実施形態において、メモリ・コントローラは、受信ユニット704、検知ユニット710、生成ユニット712、確率決定ユニット714、変換ユニット716及びエラー訂正ユニット718を含む。
受信ユニット704は、メモリ・アレイ702内の各メモリ・セルについて特性パラメータの値を受信する。受信ユニット704によって調べられるメモリ・セルは、例えば、メモリ・アレイ702へのブロック・アドレス入力を用いてアドレス指定することができる。より具体的は、データは、所望のデータを含むメモリ・アレイ702のブロック・アドレスの位置を特定することによりアクセスされる。生データは、アナログ・センス増幅器706によってアナログ信号として読み出される。アナログ・センス増幅器706は、信号を増幅し、その信号をアナログ−デジタル変換器708に送信する。アナログ−デジタル変換器708は、アナログ信号を、検知ユニット710によって読み取り、処理することが可能なデジタルデータへと変換する。1つの実施形態において、アナログ−デジタル変換器708の分解能は、各メモリ・セル内に格納されるビット数の倍数である。例えば、アナログ−デジタル変換器708の分解能は、1メモリ・セルあたりに格納されるビット数の3倍の分解能を有することができる。従って、2ビットを格納しているメモリ・セルの場合、解像度は6ビットに等しくなる。
検知ユニット710は、受信ユニット704からデジタルデータを受信し、メモリブロック内のメモリ・セルの各々について特性パラメータにおけるシフトした値を検知する。上述のように、特性パラメータ値は、それらに限定されないが、湿度、時間、温度、磁界及び電界のような多数の因子によってシフトすることがある。
生成ユニット712は、シフトした特性パラメータ値を受信し、メモリブロック由来の格納された2進マルチビット値の各々について、特性パラメータ値の確率分布関数を生成する。さらに、生成ユニット712は、確率分布関数を用いてメモリブロックについての正規分布曲線を作り出す。これらの分布曲線/帯域の平均及び分散もまた、生成ユニット712によって計算される。
確率決定ユニット714は、メモリブロック由来の格納された特性パラメータ値が、格納された2進マルチビット値の各々について確率分布関数内にある帯域確率を決定する。帯域確率は、確率決定ユニット714から導き出される。
変換ユニット716は、目標メモリ・セルについての特性パラメータの値を、確率が最も高い2進マルチビット値に変換する。
エラー訂正ユニット718は、変換ユニット716から受信した2進データ上でパリティ検査を実行することによって、エラー・セルを識別する。帯域確率は、上述の処理によって、確率決定ユニット714から各メモリ・セルに割り当てられる。エラー訂正ユニット718は、エラー・メモリ・セルを識別及び訂正するために、パリティ検査におけるエラーのビット位置及び帯域確率を併用して用いる。システムの1つの実施形態において、エラー・メモリ・セルについての確率決定ユニット714からの帯域確率が閾値を下回る場合には、エラー訂正ユニット718によってエラー指標が伝送される。訂正されたデータがエラー・メモリ・セルに書き込まれた後で、さらなるパリティ検査が期待パリティ検査値に帰着しなかった場合には、エラー訂正ユニット718によってエラー指標が伝送される。
メモリ・セル・システムを動作させるための前述の方法は、この方法のためにプログラムされ、構成された構造デバイス、及びこの方法のために構成されたコンピュータ実行可能命令を用いて書かれたコンピュータ・ソフトウェアの両方と互換性がある。
マルチレベル・メモリのエラー検出及び訂正システム並びに方法のための好ましい実施形態(例示的であることが意図され、限定的であることを意図しない)を説明してきたが、当業者によれば、上記の教示を考慮して改変及び変形を行うことができることに留意されたい。従って、開示された特定の実施形態における変更を行うことができ、それらは添付の特許請求の範囲によって概説される本発明の範囲及び精神の範囲内にあることが理解される。このように、特許法によって要求される詳細及び具体性をもって本発明の態様を説明してきたが、権利を請求し、特許によって保護されることを所望する事柄は、添付の特許請求の範囲において述べられる。
102:メモリ・セル・システム
104:メモリ・コントローラ
106:メモリ・ユニット
108:メモリ・バス
112:メモリ・セル・グループ
114:メモリ・セル
116:パリティ・セル
118:命令/データ・バス
302:メモリ・セル集合体分布
304:2進マルチビット値
310:初期特性パラメータ帯域
312:シフトした特性パラメータ帯域
306:プリセットされた特性パラメータ基準値
308:シフトした特性パラメータ基準値

Claims (12)

  1. 2進データを格納するメモリ・セル集合体を動作させるための方法であって、前記方法は、
    前記メモリ・セル・集合体における特性パラメータを複数の特性パラメータ帯域に分割するステップと、
    隣接する特性パラメータ帯域同士が1ビットだけ異なる割り当てられた2進マルチビット値を有するように、2進マルチビット値を前記複数の特性パラメータ帯域の各々に割り当てるステップと、
    前記メモリ・セル集合体内のメモリ・セル・グループを少なくとも1つのパリティ・セルに関連付けるステップであって、前記パリティ・セルはマルチビット・パリティ値を格納し、前記マルチビット・パリティ値は、前記メモリ・セル・グループについて、格納された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示すので、前記メモリ・セル・グループ及び前記パリティ・セルにおける各ビット位置は期待パリティ検査値を有するようになっている、ステップと、
    前記2進マルチビット値及び前記マルチビット・パリティ値を特性パラメータ値に変換するステップであって、前記特性パラメータ値は、前記2進マルチビット値に対応する前記割り当てられたマルチビット値に関連付けられた特性パラメータ帯域内にある、ステップと、
    前記メモリ・セル・グループ及び前記パリティ・セル内に前記2進マルチビット値及び前記マルチビット・パリティ値を格納するステップと、
    前記メモリ・セル・グループ及び前記パリティ・セルから前記格納された特性パラメータを抽出するステップと、
    前記割り当てられた2進マルチビット値に従って、前記格納された特性パラメータ値を抽出された2進マルチビット値に変換するステップと
    実パリティ検査値を計算するステップであって、前記実パリティ検査値は、前記メモリ・セル・グループについて、前記抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示す、ステップとを含み、
    前記実パリティ検査値が前記期待パリティ検査値に等しくない場合には、前記方法はさらに、
    a)前記メモリ・セル・グループ内の各メモリ・セル及び前記パリティ・セルについて、前記格納された特性パラメータ値が前記2進マルチビット値に割り当てられた前記特性パラメータ帯域に属する帯域確率を計算するステップと、
    b)低い帯域確率を有する少なくとも1つのエラー・メモリ・セルを識別するステップであって、前記少なくとも1つのエラー・メモリ・セルは、前記メモリ・セル・グループ内の前記メモリ・セル及び前記パリティ・セルのうちの少なくとも1つに対応する、ステップと、
    c)第2の実パリティ検査値が、前記メモリ・セル・グループについて、前記抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、前記エラー・メモリ・セルに、前記抽出された2進マルチビット値に関連付けられた前記特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値を割り当てるステップとを含む、方法。
  2. 前記格納された特性パラメータ値を前記抽出された2進マルチビット値に変換するステップが、
    前記メモリ・セル集合体内の前記メモリ・セルの各々について、前記特性パラメータのシフトした値を検知するステップと、
    前記メモリ・セル集合体内の前記メモリ・セルの各々について、前記特性パラメータの前記シフトした値から、前記可能な2進マルチビット値の各々について前記特性パラメータ値の確率分布関数を生成するステップと、
    前記メモリ・セル・グループ及び前記パリティ・セル由来の前記格納された特性パラメータ値が前記可能な2進マルチビット値の各々についての前記確率分布関数内にある確率を決定するステップと、
    前記メモリ・セル・グループ及び前記パリティ・セル由来の前記格納された特性パラメータ値を、前記確率が最も高い、前記抽出された2進マルチビット値及び前記マルチビット・パリティ値に変換するステップと
    を含む、請求項1に記載の方法。
  3. 第2の実パリティ検査値を計算するステップが、前記メモリ・セル・グループについて、前記抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すような、前記抽出された2進マルチビット値に関連付けられた前記特性パラメータ帯域に隣接する前記特性パラメータ帯域に関連付けられた前記訂正された2進マルチビット値を有するエラー・メモリ・セルが識別されない場合には、エラー指標を伝送するステップをさらに含む、請求項1に記載の方法。
  4. 前記エラー・メモリ・セルの前記帯域確率が最大確率値を上回る場合に、エラー指標を伝送するステップをさらに含む、請求項1に記載の方法。
  5. 前記少なくとも1つのエラー・メモリ・セルを識別するステップは、前記帯域確率と確率の閾値とを比較して、前記確率の閾値を上回る前記帯域確率を有するメモリ・セルは前記エラー・メモリ・セルではないものとするステップを含む、請求項1に記載の方法。
  6. 前記メモリ・セルに前記訂正された2進マルチビット値を割り当てるステップは、前記訂正された2進マルチビット値を、前記エラー・メモリ・セルに対応する前記メモリ・セル内に格納するステップを含む、請求項1に記載の方法。
  7. メモリ・デバイスであって、
    メモリ・セル・グループとして組織化されたメモリ・セルであって、前記グループ内の各メモリ・セルは、隣接する特性パラメータ帯域同士が1ビットだけ異なる割り当てられた2進マルチビット値を有するように、1つの特性パラメータの特性パラメータ帯域によって境界を定められた2進マルチビット値を格納するように構成された、メモリ・セルと、
    前記メモリ・セル・グループに関連付けられた少なくとも1つのパリティ・セルであって、前記パリティ・セルは、マルチビット・パリティ値を格納するように構成され、前記マルチビット・パリティ値は、前記メモリ・セル・グループについて、前記格納された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示し、各ビット位置において期待パリティ検査値が計算される、少なくとも1つのパリティ・セルと、
    前記メモリ・セル・グループ内の各メモリ・セル及び前記パリティ・セルについて、格納された特性パラメータ値を受信するための受信ユニットと、
    前記メモリ・セル集合体内の各メモリ・セルについて、前記特性パラメータにおけるシフトした値を検知するための検知ユニットと、
    前記メモリ・セル集合体内の各メモリ・セルについて、前記特性パラメータの前記シフトした値から前記格納された2進マルチビット値の各々について前記特性パラメータ値の確率分布関数を生成するための生成ユニットと、
    前記メモリ・セル・グループ及び前記パリティ・セル由来の前記格納された特性パラメータ値が前記格納された2進マルチビット値の各々についての前記確率分布関数内にある帯域確率を決定するための確率決定ユニットと、
    前記メモリ・セルの前記グループ及び前記パリティ・セル由来の前記格納された特性パラメータ値を、前記確率が最も高い、前記抽出された2進マルチビット値に変換するための変換ユニットと、
    実パリティ検査値を計算するためのエラー訂正ユニットであって、前記実パリティ検査値は、前記メモリ・セル・グループについて、抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示し、前記実パリティ検査値が前記期待パリティ検査値に等しくない場合には、前記エラー訂正ユニットは、
    a)前記格納された特性パラメータ値が前記2進マルチビット値に割り当てられた前記特性パラメータ帯域に属する前記帯域確率を受信し、
    b)低い帯域確率を有する少なくとも1つのエラー・メモリ・セルを識別し、前記少なくとも1つのエラー・メモリ・セルは、前記メモリ・セル・グループ内の前記メモリ・セル及び前記パリティ・セルのうちの少なくとも1つに対応し、
    c)第2の実パリティ検査値を計算することで、前記メモリ・セル・グループについて、前記抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、前記エラー・メモリ・セルに、前記抽出された2進マルチビット値に関連付けられた前記特性パラメータ帯域に隣接する前記特性パラメータ帯域内の前記特性パラメータ値をもつ訂正された2進マルチビット値を割り当てるように構成された、エラー訂正ユニットと
    を含む、メモリ・デバイス。
  8. 前記エラー訂正ユニットは、前記第2の実パリティ検査値が、前記メモリ・セル・グループについて、前記抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかどうかを正しく示すような、前記抽出された2進マルチビット値をもつ前記特性パラメータ帯域に隣接する前記特性パラメータ帯域に関連付けられた前記訂正された2進マルチビット値を有するエラー・メモリ・セルが識別されない場合には、エラー指標を伝送するようにさらに構成された、請求項7に記載のメモリ・デバイス。
  9. 前記エラー訂正ユニットは、前記エラー・メモリ・セルの前記帯域確率が最大確率値を上回る場合にエラー指標を伝送するようにさらに構成された、請求項7に記載のメモリ・デバイス。
  10. 前記エラー訂正ユニットは、前記帯域確率と確率の閾値とを比較して、前記確率の閾値を上回る前記帯域確率を有するメモリ・セルは前記エラー・メモリ・セルではないものとするようにさらに構成された、請求項7に記載のメモリ・デバイス。
  11. 前記エラー訂正ユニットは、前記訂正された2進マルチビット値を、前記エラー・メモリ・セルに対応する前記メモリ・セル内に格納するようにさらに構成された、請求項7に記載のメモリ・デバイス。
  12. 少なくとも1つのパリティ・セルに関連付けられた少なくとも1つのメモリ・セル・グループを動作させるためのプログラムであって、
    前記メモリ・セル・集合体における特性パラメータを複数の特性パラメータ帯域に分割するステップと、
    隣接する特性パラメータ帯域同士が1ビットだけ異なる割り当てられた2進マルチビット値を有するように、2進マルチビット値を前記複数の特性パラメータ帯域の各々に割り当てるステップと、
    前記メモリ・セル集合体内のメモリ・セル・グループを少なくとも1つのパリティ・セルに関連付けるステップであって、前記パリティ・セルはマルチビット・パリティ値を格納し、前記マルチビット・パリティ値は、前記メモリ・セル・グループについて、格納された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示すので、前記メモリ・セル・グループ及び前記パリティ・セルにおける各ビット位置は期待パリティ検査値を有するようになっている、ステップと、
    前記2進マルチビット値及び前記マルチビット・パリティ値を特性パラメータ値に変換するステップであって、前記特性パラメータ値は、前記2進マルチビット値に対応する前記割り当てられたマルチビット値に関連付けられた特性パラメータ帯域内にある、ステップと、
    前記メモリ・セル・グループ及び前記パリティ・セル内に前記2進マルチビット値及び前記マルチビット・パリティ値を格納するステップと、
    前記メモリ・セル・グループ及び前記パリティ・セルから前記格納された特性パラメータを抽出するステップと、
    前記割り当てられた2進マルチビット値に従って、前記格納された特性パラメータ値を抽出された2進マルチビット値に変換するステップと
    実パリティ検査値を計算するステップであって、前記実パリティ検査値は、前記メモリ・セル・グループについて、前記抽出された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを示す、ステップとを含み、
    前記実パリティ検査値が前記期待パリティ検査値に等しくない場合には、前記方法はさらに、
    a)前記メモリ・セル・グループ内の各メモリ・セル及び前記パリティ・セルについて、前記格納された特性パラメータ値が前記2進マルチビット値に割り当てられた前記特性パラメータ帯域に属する帯域確率を計算するステップと、
    b)低い帯域確率を有する少なくとも1つのエラー・メモリ・セルを識別するステップであって、前記少なくとも1つのエラー・メモリ・セルは、前記メモリ・セル・グループ内の前記メモリ・セル及び前記パリティ・セルのうちの少なくとも1つに対応する、ステップと、
    c)第2の実パリティ検査値が、前記メモリ・セル・グループについて、前記抽出され訂正された2進マルチビット値の各ビット位置における2進「真」値の出現数が奇数であるか又は偶数であるかを正しく示すように、前記エラー・メモリ・セルに、前記抽出された2進マルチビット値に関連付けられた前記特性パラメータ帯域に隣接する特性パラメータ帯域内の特性パラメータ値をもつ訂正された2進マルチビット値を割り当てるステップと、
    をコンピュータに実行させるプログラム。
JP2010513963A 2007-07-02 2008-07-01 マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム Expired - Fee Related JP4588806B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/772,356 US7966547B2 (en) 2007-07-02 2007-07-02 Multi-bit error correction scheme in multi-level memory storage system
PCT/EP2008/058426 WO2009003995A1 (en) 2007-07-02 2008-07-01 Multi-bit error correction scheme in multi-level memory storage system

Publications (2)

Publication Number Publication Date
JP2010534361A JP2010534361A (ja) 2010-11-04
JP4588806B2 true JP4588806B2 (ja) 2010-12-01

Family

ID=39967757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010513963A Expired - Fee Related JP4588806B2 (ja) 2007-07-02 2008-07-01 マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム

Country Status (7)

Country Link
US (1) US7966547B2 (ja)
EP (1) EP2186005B1 (ja)
JP (1) JP4588806B2 (ja)
KR (1) KR20100033517A (ja)
AT (1) ATE490503T1 (ja)
DE (1) DE602008003843D1 (ja)
WO (1) WO2009003995A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007046084A2 (en) * 2005-10-17 2007-04-26 Ramot At Tel-Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US7769856B2 (en) * 2007-11-15 2010-08-03 Intel Corporation Automatic tuning of communication protocol performance
US8370709B2 (en) * 2009-04-16 2013-02-05 Micron Technology, Inc. Multiple-level memory cells and error detection
US8839076B2 (en) 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9043683B2 (en) 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
WO2014175877A1 (en) * 2013-04-24 2014-10-30 Hewlett-Packard Development Company, L.P. Representing data using a group of multilevel memory cells
CN104252317B (zh) * 2013-06-26 2017-06-06 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
US9690640B2 (en) 2013-09-26 2017-06-27 Intel Corporation Recovery from multiple data errors
US10162702B2 (en) 2016-02-01 2018-12-25 Lattice Semiconductor Corporation Segmented error coding for block-based memory
US10318378B2 (en) * 2016-02-25 2019-06-11 Micron Technology, Inc Redundant array of independent NAND for a three-dimensional memory array
US10402165B2 (en) * 2017-08-30 2019-09-03 Gsi Technology Inc. Concurrent multi-bit adder
DE102019120801B3 (de) * 2019-08-01 2020-12-03 Infineon Technologies Ag Vorrichtungen und Verfahren zur Datenspeicherung
US11916570B1 (en) * 2022-11-11 2024-02-27 Texas Instruments Incorporated Codeword format for data storage

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0709776A1 (en) * 1994-10-31 1996-05-01 STMicroelectronics S.r.l. Method for detecting and correcting an error in a multilevel memory and memory device implementing the method
JPH11339496A (ja) * 1998-05-22 1999-12-10 Nec Corp 多値セルのecc回路
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
US20070086239A1 (en) * 2005-10-17 2007-04-19 M-Systems Flash Disk Pioneers, Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
JP2007157239A (ja) * 2005-12-05 2007-06-21 Toshiba Corp 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3485595D1 (de) * 1983-12-23 1992-04-23 Hitachi Ltd Halbleiterspeicher mit einer speicherstruktur mit vielfachen pegeln.
US4701884A (en) * 1985-08-16 1987-10-20 Hitachi, Ltd. Semiconductor memory for serial data access
JP2573416B2 (ja) * 1990-11-28 1997-01-22 株式会社東芝 半導体記憶装置
US5440505A (en) * 1994-01-21 1995-08-08 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US5450363A (en) * 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US6023781A (en) * 1996-09-18 2000-02-08 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5864569A (en) * 1996-10-18 1999-01-26 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
US6279135B1 (en) * 1998-07-29 2001-08-21 Lsi Logic Corporation On-the-fly row-syndrome generation for DVD controller ECC
US7333364B2 (en) * 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US6331948B2 (en) * 1999-12-09 2001-12-18 Kabushiki Kaisha Toshiba Error correcting circuit for making efficient error correction, and involatile semiconductor memory device incorporating the same error correcting circuit
DE60045073D1 (de) * 2000-10-13 2010-11-18 St Microelectronics Srl Verfahren zum Speichern und Lesen von Daten eines nichtflüchtigen Multibitspeichers mit einer nichtbinären Anzahl von Bits pro Zelle
EP1211812B1 (en) * 2000-10-31 2006-11-15 STMicroelectronics S.r.l. A/D conversion method in high density multilevel non-volatile memory devices and corresponding converter device
EP1355234B1 (en) * 2002-04-15 2016-06-29 Micron Technology, Inc. Use of an error correction circuit in program and erase verify procedures
JP4398750B2 (ja) * 2004-02-17 2010-01-13 株式会社東芝 Nand型フラッシュメモリ
US7330370B2 (en) * 2004-07-20 2008-02-12 Unity Semiconductor Corporation Enhanced functionality in a two-terminal memory array
JP2006048783A (ja) * 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
WO2008026203A2 (en) * 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7450425B2 (en) * 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7876621B2 (en) * 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US7747903B2 (en) * 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0709776A1 (en) * 1994-10-31 1996-05-01 STMicroelectronics S.r.l. Method for detecting and correcting an error in a multilevel memory and memory device implementing the method
JPH11339496A (ja) * 1998-05-22 1999-12-10 Nec Corp 多値セルのecc回路
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
US20070086239A1 (en) * 2005-10-17 2007-04-19 M-Systems Flash Disk Pioneers, Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
JP2007157239A (ja) * 2005-12-05 2007-06-21 Toshiba Corp 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム

Also Published As

Publication number Publication date
DE602008003843D1 (de) 2011-01-13
EP2186005B1 (en) 2010-12-01
EP2186005A1 (en) 2010-05-19
JP2010534361A (ja) 2010-11-04
ATE490503T1 (de) 2010-12-15
KR20100033517A (ko) 2010-03-30
US20090013223A1 (en) 2009-01-08
US7966547B2 (en) 2011-06-21
WO2009003995A1 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
JP4588806B2 (ja) マルチレベル・メモリ・ストレージ・システムにおけるマルチビット・エラー訂正の方法およびプログラム
US11139032B2 (en) Method and apparatus for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US8055988B2 (en) Multi-bit memory error detection and correction system and method
CN109637576B (zh) 一种基于支持向量回归的闪存寿命预测方法
US9697905B2 (en) Updating read voltages using syndrome weight comparisons
US9122626B2 (en) Linearly related threshold voltage offsets
JP5203693B2 (ja) メモリ・セル集合体を操作するための方法、メモリ・コントローラ、メモリ・チップ、およびコンピュータ・プログラム
CN109599143B (zh) 具有读阈值机制的存储系统及其操作方法
US8938665B2 (en) Read-detection in solid-state storage devices
WO2013070368A1 (en) Soft information generation for memory systems
US12045132B2 (en) Non-volatile memory device, controller for controlling the same, storage device having the same, and reading method thereof
US9594615B2 (en) Estimating flash quality using selective error emphasis
US20200202938A1 (en) Dynamic memory programming voltage step for strenuous device conditions
US7971123B2 (en) Multi-bit error correction scheme in multi-level memory storage system
US10691536B2 (en) Method to select flash memory blocks for refresh after read operations
US7639539B2 (en) Method and apparatus for programming data of memory cells considering floating poly coupling
JP2010108029A (ja) 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
CN108257642B (zh) 读阈值设置方法与装置
KR101540795B1 (ko) 임계 전압 분포에 따라 플래시 메모리에 저장된 데이터를 판독하는 방법과, 이를 위한 메모리 컨트롤러 및 시스템
US9971646B2 (en) Reading-threshold setting based on data encoded with a multi-component code
US7606067B2 (en) Method to create a uniformly distributed multi-level cell (MLC) bitstream from a non-uniform MLC bitstream
US9202580B2 (en) Level-estimation in multi-level cell memory
US20240355405A1 (en) Appratus and method for changing a read voltage applied for reading data from a non-volatile memory cell
KR20240154290A (ko) 비휘발성 메모리 셀에 저장된 데이터를 읽기 위해 인가되는 읽기 전압을 변경하는 방법 및 장치

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100817

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: 20100831

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: 20100908

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: 20130917

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