JP3982639B2 - マルチレベルセルを有するメモリからデータを読み取る方法 - Google Patents

マルチレベルセルを有するメモリからデータを読み取る方法 Download PDF

Info

Publication number
JP3982639B2
JP3982639B2 JP52043798A JP52043798A JP3982639B2 JP 3982639 B2 JP3982639 B2 JP 3982639B2 JP 52043798 A JP52043798 A JP 52043798A JP 52043798 A JP52043798 A JP 52043798A JP 3982639 B2 JP3982639 B2 JP 3982639B2
Authority
JP
Japan
Prior art keywords
error
bit
data
memory
charge state
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 - Lifetime
Application number
JP52043798A
Other languages
English (en)
Other versions
JP2001503181A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2001503181A publication Critical patent/JP2001503181A/ja
Application granted granted Critical
Publication of JP3982639B2 publication Critical patent/JP3982639B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • 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
    • 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
    • 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
    • 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

Description

発明の分野
本発明はメモリ装置の分野に関する。より詳細には、本発明は複数レベルセルメモリから読み取られたデータ中のエラーを訂正することに関する。
発明の背景
複数レベルセルメモリは、それぞれ複数の電荷状態すなわちレベルを記憶することのできる複数レベル・セルからなる。各電荷状態は、それぞれ1つのメモリ要素のビットパターンに関連する。
第1図に、4つの電荷状態:レベル0〜3を記憶する従来技術のマルチレベルセルの表現を示す。レベル3はレベル2より高い電荷を維持し、レベル2はレベル1より高い電荷を維持し、レベル1はレベル0より高い電荷を維持する。基準電圧によって異なる電荷状態を分離する。Vref2はレベル3とレベル2を分離する。Vref1はレベル2とレベル1を分離する。Vref0はレベル1とレベル0を分離する。
各電荷状態には、それぞれ1つのメモリ要素のビットパターンが関連付けられている。一例では、メモリ要素のビットパターン「00」はレベル3と関連付けられ、メモリ要素のビットパターン「10」はレベル2と関連付けられ、メモリ要素のビットパターン「01」はレベル1と関連付けられ、メモリ要素のビットパターン「11」はレベル0と関連付けられる。
マルチレベルセルメモリは、それが記憶できる電荷状態の数に基づいて複数のデータ・ビットを記憶することができる。例えば、4つの電荷状態を記憶できるマルチレベルセルメモリは、2データ・ビットを記憶することができ、8つの電荷状態を記憶できるマルチレベルセルメモリは3データ・ビットを記憶することができ、16個の電荷状態を記憶できるマルチレベルセルメモリは4データ・ビットを記憶することができる。nビットのマルチレベルセルメモリのそれぞれについて、様々なメモリ要素のビットパターンを異なる各電荷状態に関連させることができる。
しかし、マルチレベルセルに記憶可能な電荷状態の数は2の累乗に限られるものではない。例えば、3つの電荷状態をもつマルチレベルセルは1.5データ・ビットを記憶する。このマルチレベルセルを追加の復号論理と組み合わせ、同様の第2のマルチレベルセルに結合すると、この2個のセルの組合せの出力として3データ・ビットが生成される。他の様々なマルチセルの組合せも可能である。
マルチレベルセルメモリの一例が、本願と同じ譲受人に発行されたChristopherson他の「Gray Coding for a Multilevel Cell Memory System」という名称の米国特許第5,450,363号に記載されている。’363号特許はマルチレベルセルメモリの一例を記載している。マルチレベルセルメモリはダイナミック・ランダム・アクセス・メモリ(DRAM)や、消去可能プログラマブル読取り専用メモリ(EPROM)、電気式消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュ消去可能プログラマブル読取り専用メモリ(フラッシュEPROM)など様々のタイプの読取り専用メモリ(ROM)に使用することができる。
第2図に、従来技術によるプロセッサ100とマルチレベルセルメモリ104の図を示す。プロセッサ100はバス102およびメモリ104に結合されている。メモリ104はインターフェース制御装置105およびマルチレベルセルメモリ・アレイ150を含んでいる。プロセッサ100はバス102を介してインターフェース制御装置105に結合されている。プロセッサ100はまたバス102を介してマルチレベルセルメモリ・アレイ150にも結合されている。インターフェース制御装置105はマルチレベルセルメモリ・アレイ150の制御に必要な動作を行う。一実施形態では、インターフェース制御装置105とマルチレベルセルメモリ・アレイ150が単一の集積回路ダイ上にある。
エラー・コード
データは通常、本明細書では「データワード」と呼ぶ所定数のビットを含むユニットとして、特定のメモリ・アレイに供給され、そのメモリ・アレイから取り出される。データがメモリ・アレイに記憶されるとき、エンコーダでエラー・コードを生成することがある。このエラー・コードをそれに関連するデータワードと一緒に取り出せるように記憶することができる。データワードがメモリ・アレイから取り出されるとき、従来技術で周知の通り、エラー復号回路はそのデータワードに関連する以前にセーブされたエラー・コードを使用して、メモリ・アレイから読み取られたデータワード中で見つかったエラーを検出、位置指定、および/または訂正する。
エラー・コードには、エラー検出コード、エラー位置指定(error location)コード、エラー訂正コードを含めて様々なタイプのものがある。エラー検出コードは、エラーが発生したかどうかを検出するが、エラーを訂正することはできない。エラー位置指定コードは、エラーを検出し、そのエラーをあるビットのブロックに局限することができるが、そのビットのブロック内の誤ったビットの正確な位置を決定することはできない。エラー訂正コードは、あるデータワード中の単一ビット・エラーを検出し、そのエラーを訂正することができる。ハミング・コードと呼ばれるあるタイプのエラー訂正コードは、単一ビット・エラーを訂正できる他、さらにあるデータワード中のダブル・ビット・エラーを検出することができる(ただし、それを訂正することはできない)。
エラー位置指定コードの1グループは、E.フジワラとM.キタカミの論文「A class of Error−Locating Codes for Byte−Organized Memory Systems」,IEEE Transactions on Information Theory,Vol.40,No.6,1994年11月(「フジワラ論文」)に記載されている。フジワラ論文は、フォールト・トレラント・メモリ・システムで使用されるエラー位置指定コードを記載している。あるメモリ・ブロック中でエラーが検出されたとき、誤りのあるメモリ・カードが突き止められ、予備のカードに切り換えられる。
J.K.WolfとB.Elspasの論文「Error−Locating Codes:A New in Error Control」,IEEE Transactions on Information Theory,1963年4月にもエラー位置指定コードが記載されている。
発明の概要
方法および装置は、メモリのマルチレベルセルから読み取られたデータを訂正する。このマルチレベルセルは3個以上の電荷状態を記憶することができる。マルチレベルセルから読み取られた第1の電荷状態は誤っていると推定される。マルチレベルセルが第2の電荷状態を維持しており、その第2の電荷状態が第1の電荷状態よりも多くの電荷を有する場合に生成されるはずの出力に対応する出力が生成される。
本発明の他の特徴および利点は、添付の図面および以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
第1図は、4個の電荷状態を記憶する従来技術のマルチレベルセルを示す図である。
第2図は、従来技術によるプロセッサとマルチレベルセルメモリを示す図である。
第3図は、本発明を用いたプロセッサとマルチレベルセルメモリを示す図である。
第4図は、データをメモリ・アレイにプログラムする(すなわち書き込む)のに使用されるエラー訂正回路の一実施形態を示す図である。
第5図は、メモリ・アレイ250からデータを読み取るのに使用されるエラー訂正回路の一実施形態を示す図である。
第6図は、メモリ・アレイへの書込みとメモリ・アレイからの読取りの両方に使用できる、データ・バッファとエラー・エンコーダ/デコーダ(EED)を含むエラー訂正回路の一実施形態を示す図である。
第7図は、メモリ・アレイにデータを書き込むためのエラー訂正回路の別の実施形態を示す図である。
第8図は、メモリ・アレイからデータを読み取るためのエラー訂正回路の別の実施形態を示す図である。
第9図は、データワードがマルチレベルセルメモリに書き込まれるときにエラー訂正コードを生成するプロセスの流れ図である。
第10図は、データワードとそれに関連するエラー位置指定コードを示す図である。
第11図は、64ビットのデータワードとそれに関連する8ビットのエラー位置指定コードの一例を示す図である。
第12図は、マルチレベルセルメモリからデータワードを読み取る際にエラー位置指定コードによって検出されたエラーを訂正するプロセスの流れ図である。
詳細な説明
マルチレベルセルメモリにおけるエラーを訂正するための方法および装置を記述する。この方法は、エラー位置指定コードを利用して、1つまたは複数のマルチレベルセルから読み取られたデータワード中のエラーを訂正するものである。エラー位置指定コードは、データワード中の、エラーを含むビットのブロックを示すが、どのビットが誤っているかを識別することはしない。ビットのブロックは1つまたは複数のマルチレベルセルに対応するので、エラー位置指定コードはエラー・マルチレベルセルを識別する。本発明は、エラー・マルチレベルセルの識別を、マルチレベルセルの主な障害メカニズムが電荷損失であるとの認識と組み合わせて利用する。特定のマルチレベルセルが不正確に読み取られたものと識別されると、マルチレベルセルの正しい状態を、マルチレベルセルから読み取られた電荷状態よりも高い電荷をもつ電荷状態であると予見することができる。
フジワラ論文(「背景」内で引用)のエラー位置指定コードは、誤りのあったメモリ・ブロックを検出するのに使用され、したがってそのメモリ・ブロックを格納するメモリ・カードを使用不能にすることができたが、本発明では障害を訂正するためにマルチレベルセルの障害メカニズムを利用する。マルチレベルセルの正常障害モードは電荷損失に基づく単方向性のものなので、フジワラ論文に記載されているようにランダムではなく、本発明はエラー・マルチレベルセルの正しい状態を予見するのが可能なことを発見した。
エラー・マルチレベルセルの訂正は、エラー・マルチレベルセルから読み取られたデータを、そのエラー・マルチレベルセルが、すぐ上の電荷状態にある場合に取るはずの値を反映するように修正することによって実施される。エラー位置指定コードが、この修正によってエラーが訂正されたかどうか検査するのに使用される。エラー・マルチレベルセルからの修正済みデータが依然として正しくない場合は、この修正プロセスを繰り返すことができる。多数のマルチレベルセルが誤っている場合は、誤りが訂正されるまで、あるマルチレベルセルからのデータを一定に保って他方のデータを修正し、あるいはその逆を行う。
本発明の説明全体を通じて、フジワラ論文に記載されているエラー位置指定コードを実施例の一例として引用する。ただし、他のアルゴリズムおよび他のタイプの実施例を用いてエラー・マルチレベルセルを識別することも可能である。
第3図から第9図に、本発明の例を示す。第3図には、プロセッサ200と、マルチレベルセルメモリ204を示す。プロセッサ200はバス202に結合されている。マルチレベルセルメモリ204は、インターフェース制御装置205、マルチレベルセルメモリ・アレイ250、およびエラー訂正回路260を含んでいる。インターフェース制御装置205は、マルチレベルセルメモリ・アレイ250とエラー訂正回路260を制御するのに必要な動作を行うように結合されている。インタフェース制御装置205とエラー訂正回路260は共にバス202に結合されている。マルチレベルセルメモリ・アレイ250はエラー訂正回路260に結合されている。プロセッサ200はメモリ204にデータを書き込み、メモリ204からデータを読み取る。
一実施形態では、インターフェース制御装置205、マルチレベルセルメモリ・アレイ250およびエラー訂正回路260は単一の集積回路ダイ上にある。別の実施形態では、エラー訂正回路260はメモリ・アレイ250およびインターフェース制御装置205とは別である。たとえばエラー訂正回路を別のチップ上に配置することもできる。
第4図に、メモリ・アレイ250にデータをプログラムする(すなわち書き込む)のに使用されるエラー訂正回路260の実施形態を示す。エラー訂正回路260は、データ・バッファ302、エラー・バッファ304、およびエラー・エンコーダ300を含む。
バス202はデータ・バッファ・バス308を介してデータ・バッファ302に結合されている。データ・バッファ302はメモリ・バス312を介してメモリ・アレイ250に結合されている。データ・バッファはバス314を介してエラー・エンコーダ300に結合される。エラー・エンコーダ300はバス316を介してエラー・バッファ304に結合され、エラー・バッファ304はエラー・バス318を介してメモリ・アレイ250に結合される。
データはデータ・バッファ・バス308を介してデータ・バッファ302に書き込まれる。データ・バッファ・バス308を介するデータの各転送の幅は、通常データ・バッファ302の幅の数分の一である。例えば、データ・バッファ・バス308は幅8ビットまたは16ビットであり、データ・バッファ302は幅64ビットである。
データ・バッファ302の幅全体がバス202からのデータで書き込まれたとき、データ・バッファ302内の64ビット・データワードがメモリ・バス312を介してメモリ・アレイ250に転送される。エラー・エンコーダ300は、データ・バッファ302からバス314を介して入力されたデータを用いて、エラー訂正コードを生成し、それがエラー・バッファ304に供給される。エラー・バッファ304はエラー訂正コードをバス318を介してメモリ・アレイ250に供給する。
本発明の一実施形態では、エラー・エンコーダ300はエラー位置指定コードを生成するが、これはE.フジワラとM.キタカミがIEEEtransactions on Infomation Theory,Vol.40,No.6,1994年11月刊の「A class of error Locating Codes for Byte−Organized Memory System」に記載したようなクラスのエラー位置指定コードである。エラー位置指定コードは、データワード内の1つまたは複数のエラー・データ・ブロックを検出するが、そのブロックのうちで誤っている厳密なビットを示すことはない。その上、このエラー位置指定コードは単一ビット・エラーを検出することができる。
本発明の一態様では、データ・バッファ302から供給されるデータワードと、エラー・バッファ304から供給されるエラー・コードがメモリ・アレイ250に連結して記憶される。別の態様では、データワードがメモリ・アレイ250内にエラー・コードと別々に記憶される。さらに別の態様では、エラー・コードがそれに関連するデータワードとは別の記憶域に記憶される。
第5図に、メモリ・アレイ250からデータを読み取るのに使用されるエラー訂正回路260の一実施形態を示す。エラー訂正回路260は、データ・バッファ320、エラー・バッファ322、およびエラー・エンコーダ/デコーダ(EED)324を含む。
読み取り動作中、データワードはメモリ・アレ250からバス330を経てデータ・バッファ320に供給される。同様に、そのデータワードに関連するエラー訂正コードはエラー・バッファ322に供給される。一実施形態では、エラー訂正コードはメモリ・アレイ250からバス332を経て供給される。
データ・バッファ320はバス334を介してEED324にそのデータを供給するように結合されている。エラー・バッファ322はバス336を介してEED324にそのエラー訂正コードを供給するように結合されている。EED324は、データ・バッファ320とエラー・バッファ322の両方から入力を受け取ると、メモリ・アレイから読み取られたデータワード中に誤ったビットがあるかどうか判定する。そのデータワード中に誤ったビットがある場合、EED224は、後で第11図および第12図に関して述べるように、その誤ったビットを訂正するために適切な信号340をアサートする。信号340はデータ・バッファ320の所定のデータ・ビットを個別に変更することができる。誤ったビットを有さない最終データ値を決定するまでに、EED324がデータ・バッファ320内の様々な値を繰り返しテストする必要のあることもある。データ・バッファ320はバス338を介してバス202に結合される。
第6図に、データ・バッファ350とエラー・エンコーダ/デコーダ(EED)354とを含むエラー訂正回路260の一実施形態を示す。EED354は、メモリ・アレイ250への書込みとメモリ・アレイ250からの読取りの両方に使用することができる。EED354は、データワードからエラー位置指定コードを生成するためのエンコーダと、メモリ・アレイから読み取る際にデータワードを訂正するのに使用するデコーダとを含む。
第7図に、メモリ・アレイ250にデータを書き込むためのエラー訂正回路260の別の実施形態を示す。ただし、第7図のエラー訂正回路260は第4図のデータ・バッファまたはエラー・バッファを含んでいない。データワードはバス202からバス380を経てメモリ・アレイ250に供給される。データワードはまたバス382を介してエンコーダ384に入力として供給される。エンコーダ384はエラー位置指定コードを生成し、それをバス386を介してメモリ・アレイ250に供給する。この実施形態は、エンコーダ384への入力データが変更されるまでにエラー訂正コードを生成するのに十分な時間をエンコーダ284が持っているときに使用できる。
第8図に、メモリ・アレイ250からデータを読み取るためのエラー訂正回路260の別の実施形態を示す。第8図のエラー訂正回路260は第5図のデータ・バッファまたはエラー・バッファを含んでいない。
データワードはメモリ・アレイ250から信号線388a−zを経てエラー訂正回路260に供給される。データワードは信号線389a−zを経てエンコーダ390に供給される。エンコーダはデータワードを再コード化し、信号線393a−m上にエラー訂正コードを供給する。再コード化されたエラー訂正コードは、以前にセーブされた信号線392a−m上に供給されるエラー訂正コードと比較される。この比較は例えばXOR回路で行われる。この比較の出力はデコーダ394mに供給される。デコーダは、データワード中で検出されたエラーを訂正するために元の信号388a−zを修正することのできる信号396a−zを供給する。訂正されたデータワードは信号線398を介して202に供給される。
代替実施形態では、第7図のプログラミング回路と第8図の読取り回路を組み合わせて、エンコーダを共用することができる。
第9図に、マルチレベルセルメモリにデータワードが書き込まれるときにエラー訂正コードを生成する際に取られるステップを示す流れ図を示す。以下の説明は第4図のプログラミング回路に関して行う。流れ図はブロック400からスタートし、そこから動作はブロック402に進む。ブロック402で、データ・バッファ302が、あるデータワードを構成するデータで満たされる。データ・バッファ302への書込みには、数バス・サイクルを要することがある。データ・バス・バッファ308は通常、データ・バッファ302ほど幅が広くないからである。
動作はブロック404に進み、そこでデータワードの各ビットがエンコーダ300で処理されて、エラー位置指定コードが生成される。ブロック406でデータワードとエラー位置指定コードがマルチレベルセルメモリ204に記憶される。動作はブロック410で終了する。
第10図に、データワード420とそれに関連するエラー位置指定コード430の図を示す。データワード420中のエラー・ビット・グループすなわち誤りがある「バイト」を指定するためにエラー位置指定コード430が復号される。
一実施形態では、各バイトが厳密に単一のマルチレベルセルに対応する。すなわち各バイトは特定のマルチレベルセルに記憶されている数のビットからなり、かつ各バイトがそのマルチレベルセル境界と整列している。この場合、エラー位置指定コードがエラー・バイトを識別するとき、エラー・マルチレベルセルをも識別する。マルチレベルセルの障害メカニズムは、電荷損失に基づいて予見できるので、エラー・マルチレベルセルの正しい状態はエラー・マルチレベルセルから読み出される電荷状態よりも電荷の多い電荷状態であると予見される。
別の実施形態では、エラー・バイトが2つのマルチレベルセルとオーバーラップする。すなわちそのエラー・バイトの一部があるマルチレベルセルに記憶され、他の一部が別のマルチレベルセルに記憶される。バイト中のビット数がマルチレベルセルに記憶されるビット数と同じでないとき、あるいはバイトがマルチレベルセル境界に対して整列していないときにこのことが起こり得る。2つのマルチレベルセルのオーバーラップが生じる場合、2つのマルチレベルセルの一方または両方の高い方の電荷状態を予見することにより、誤ったバイトに関連する一方または両方のセルを訂正することができる。同様に3個以上のマルチレベルセルのオーバーラップは、1個または複数のエラー・マルチレベルセルの高い方の電荷状態を予見することによって訂正できる。
第11図に、64ビットのデータワード450の例をそれに関連する8ビットのエラー位置指定コード460と共に示す。エラー位置指定コード460はフジワラ論文に記載されているタイプのエラー位置指定コードである。これは誤りのあるnビット・バイトを検出することができる。また、単一ビット・エラーを検出することもできる。第11図には、n=4の場合の例を示す。データワードはまた2つの32ビットのブロックに分割されている。8ビットのエラー位置指定コード460が各32ビットのブロック中の1つの4ビット・バイトのエラーを検出することができる。
したがって、4ビットのマルチレベルセルメモリ(各セルが16の電荷状態をもつ)にデータワードが記憶された場合、その4ビット・バイトのそれぞれが特定のマルチレベルセルに対応する。4ビット・バイトの1つでエラーが検出された場合、その4ビット・バイトに関連するマルチレベルセルから読み取られたデータに誤りがある。エラー位置指定コードを使って、各ブロック内でエラー・マルチレベルセルを決定することができる。
第11図に示すように、データワード450の分離された2つの誤りのある4ビット・バイトを指すエラー位置指定コード460によって、同じデータワード内で複数のエラー・マルチレベルセルを決定することができる。エラー訂正の正確さは、先に引用したE.フジワラとM.キタカミのIEEE論文に記載されている通り、誤ったビットおよびビット・バイトの数に応じて変わる。所望のレベルのエラー位置指定および訂正性能を達成するために、nビット・バイトおよびmビットのブロックの様々な構成を実現することができる。
エラー位置指定コードは、実現するのに必要なビット数が少なくてよいため、エラー訂正コードに勝る利点を有する。これを使うと、メモリ・アレイのコストとサイズが減少する。比較のために示すと、エラー位置指定コード460の代りに8ビットのハミング・コード(エラー訂正コードの1種)を使用した場合、データワード450中の単一ビット・エラーしか訂正できない。データワード450中に二重ビット・エラーが発生した場合、その二重ビット・エラーはハミング・コードによって検出されるが、訂正はできない。すなわち、エラー位置指定コード460は、ハミング・エラー訂正コードよりもデータワード中のエラーを訂正するより優れた方法をもたらす。
マルチレベルセルの主な障害メカニズムはマルチレベルセルが電荷を失うことなので、エラー・マルチレベルセルが決定されると、そのエラー・マルチレベルセルが現行状態よりも高い電荷状態を持っていると予見することが可能である。
第12図に、マルチレベルセルメモリからデータワードを読み取る際にエラー位置指定コードによって検出されたエラーを訂正するプロセスの流れ図を示す。以下の説明は第5図の読取り回路に関して行う。流れ図はブロック500から始まり、ブロック502に進む。ブロック502で、データワードおよびそれに関連するエラー位置指定コードがマルチレベルセルメモリ内から読み出される。データワードはデータ・バッファ320に保持され、エラー位置指定コードはエラー・バッファ322に保持される。
ブロック504で、EED324を介してデータ・ビットとエラー位置指定ビットを処理して、そのデータワード中にエラーがあるかどうか判定する。EED324によって実施されるデータ・ビットとエラー位置指定コードの処理は周知の回路によって実現することができる。
ブロック506で、エラーが検出されなかった場合、動作はブロック560に進み、そこで動作が終了する。しかしエラーが検出された場合は、動作はブロック510に進む。
ブロック510で、EED324が単一ビット・エラーを検出した場合、動作はブロック512に進み、そこでEED324が、データ・バッファ320の適切なビット値を変更するために信号線340のうちの1本をアサートすることにより、データ・バッファ320内の単一ビット・エラーを訂正する。ブロック512から動作はブロック560に進み、そこで動作が終了する。
しかし、ブロック510でデコーダが、第11図に関して述べた4ビット・バイト・エラーのようなマルチビット・バイト・エラーを検出した場合は、動作はブロック520に進む。ブロック520で、そのデータワードの一部を記憶する1つまたは複数のエラー・マルチレベルセルが決定される。これらのエラー・マルチレベルセルはEED324によって指示される。ブロック522で、エラー・セルの現在の電荷状態が、マルチレベルセルの従来技術で周知の回路によって検出される。ブロック524で、エラー・セルに対応するメモリ素子ビット・パターンが、すぐ上の電荷状態のそれに変更される。一例では、現在の電荷状態のすぐ上の電荷状態が、最も可能性の高い訂正措置であると予見される。別の例では、すぐ上の電荷状態と異なる電荷状態が、エラーを訂正する可能性が高い。例えば、主要なエラー・モードは、マルチレベルセルの特定の電荷状態が2つの状態をスキップ・ダウンするものであることが実験的に判明しているとする。この場合、読み取られた電荷状態の2つの電荷状態が最も可能性の高い訂正措置であると予見することによって、そのエラーを訂正することができる。同様に、特定の障害モードがマルチレベルセルの唯一の障害モードであることが判明している場合、訂正アルゴリズムは、必要とされる訂正措置だけを講じるように適切に実現することができる。
ブロック526で、変更されたデータワードとエラー位置指定コードがEED324によって処理され、ブロック524で行われたデータワードの変更によってエラーが訂正されたかどうかが調べられる。
依然としてエラーがあり、エラー・マルチレベルセルに関連するビットが再度より高い電荷状態に変更できる場合、動作は、ブロック530から524に戻る。しかし、依然としてエラーがあり、かつエラー・マルチレベルセルに関連するメモリ文字ビット・パターンがより高い電荷状態に変更できないという条件が満たされる場合、動作はブロック540に進む。
ブロック540で、データワード中に依然としてエラーがある場合は、動作はブロック550に進み、そこでエラーにフラグが立てられる。そのデータワードを要求しているプロセッサ200またはその他の装置に、エラーが発生したことが通知される。
しかし、ブロック540でエラーがもはや検出されない場合、動作はブロック560に進む。
ブロック560で流れ図は終了する。データ・バッファ320はエラーが訂正されたデータワードを保持する。マルチレベルセルメモリの一実施形態では、エラー・マルチレベルセルは、データ・バッファ320に保存されている訂正されたデータワードで再書込みされる。これは、メモリ・アレイに書き戻すための追加回路を追加するのが複雑だからである。さらに、フラッシュ・メモリの実施形態では一般に、既にフラッシュ・メモリに書き込まれたデータワードを再書き込みするには、ブロック全体を消去しなければならない。
以上、本発明をその特定の例示的実施形態に関して説明してきた。しかし、添付の請求の範囲に記載の本発明のより広義な趣旨および範囲から逸脱せずに、それに様々な修正や変更を加えることができるのは明らかであろう。したがって、この明細書および図面は限定的ではなく例示的なものと見なすべきである。

Claims (2)

  1. 複数のデータ・ビットを記憶しているマルチレベルセルを有するメモリからデータを読み取る方法であって、
    (a)1組のマルチレベルセルに記憶されたデータ・ビットを読み取当該データ・ビットに関連するエラー・コード・ビットを読み取るステップを備え;
    前記エラー・コード・ビットを用いて、前記1組のマルチレベルセルから読み取られたデータビット中に、誤っていると特定されるビットが含まれていることの判定をするステップを備え前記特定されるビットに関連する特定のマルチレベルセルが識別され、前記特定されるビットはそれに関連する特定のマルチレベルセルが或る電荷状態にあることを示し
    前記特定されるビットの変更にして、前記特定のマルチレベルセルについて、前記或る電荷状態と比べてより多い電荷の保持に相当する次に高い電荷状態が示されるように、変更をするステップを備え、その変更前の前記或る電荷状態というのは、前記特定のマルチレベルセルにおける、前記次に高い電荷状態からの電荷の一部喪失に由来するものであり
    前記ステップ()で変更を受け前記特定されるビットが依然として誤っているかどうか判定し、前記特定されるビットが依然として誤っている場合、その特定されるビットを、前記次に高い電荷状態よりも多電荷保持に相当するさらに高い電荷状態が示されように変更可能か否かを判定するステップを備え、
    (e) 変更可能であればステップ(c)および(d)を繰り返し、変更可能でなければエラーのフラグを立てるステップを備える
    ことを特徴とする方法。
  2. 請求項1に記載の方法において、前記エラー・コード・ビットがエラー位置指定ビットである、ことを特徴とする方法。
JP52043798A 1996-10-25 1997-08-06 マルチレベルセルを有するメモリからデータを読み取る方法 Expired - Lifetime JP3982639B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/740,247 1996-10-25
US08/740,247 US5859858A (en) 1996-10-25 1996-10-25 Method and apparatus for correcting a multilevel cell memory by using error locating codes
PCT/US1997/013918 WO1998019241A1 (en) 1996-10-25 1997-08-06 Method and apparatus for correcting a multilevel cell memory by using error locating codes

Publications (2)

Publication Number Publication Date
JP2001503181A JP2001503181A (ja) 2001-03-06
JP3982639B2 true JP3982639B2 (ja) 2007-09-26

Family

ID=24975669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52043798A Expired - Lifetime JP3982639B2 (ja) 1996-10-25 1997-08-06 マルチレベルセルを有するメモリからデータを読み取る方法

Country Status (9)

Country Link
US (1) US5859858A (ja)
JP (1) JP3982639B2 (ja)
KR (1) KR100331139B1 (ja)
CN (1) CN1113294C (ja)
AU (1) AU3911797A (ja)
DE (2) DE19782077B4 (ja)
MY (1) MY114049A (ja)
TW (1) TW368622B (ja)
WO (1) WO1998019241A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3165101B2 (ja) * 1998-03-05 2001-05-14 日本電気アイシーマイコンシステム株式会社 多値式半導体メモリ装置およびその不良救済方法
US6532556B1 (en) 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
US6396744B1 (en) 2000-04-25 2002-05-28 Multi Level Memory Technology Flash memory with dynamic refresh
US6856568B1 (en) 2000-04-25 2005-02-15 Multi Level Memory Technology Refresh operations that change address mappings in a non-volatile memory
US7079422B1 (en) 2000-04-25 2006-07-18 Samsung Electronics Co., Ltd. Periodic refresh operations for non-volatile multiple-bit-per-cell memory
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP3935139B2 (ja) * 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
ITMI20022669A1 (it) * 2002-12-18 2004-06-19 Simicroelectronics S R L Struttura e metodo di rilevamento errori in un dispositivo
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
DE102006010820A1 (de) 2006-03-07 2007-09-13 Micronas Gmbh Fehlerkorrektur- und Fehlererfassungs-Verfahren zum Auslesen von gespeicherten Informationsdaten und Speichersteuereinrichtung dafür
US7945840B2 (en) * 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
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
KR101515122B1 (ko) * 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
KR101434405B1 (ko) 2008-02-20 2014-08-29 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
US20100016675A1 (en) * 2008-07-18 2010-01-21 Cohen Jason C Method of assessing a condition using sucking patterns
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8732557B2 (en) 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US20150067437A1 (en) * 2013-08-30 2015-03-05 Kuljit S. Bains Apparatus, method and system for reporting dynamic random access memory error information
KR102157875B1 (ko) 2013-12-19 2020-09-22 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
US9501350B2 (en) * 2014-09-22 2016-11-22 Empire Technology Development Llc Detecting unidirectional resistance drift errors in a multilevel cell of a phase change memory
US9519539B2 (en) * 2014-10-24 2016-12-13 Macronix International Co., Ltd. Monitoring data error status in a memory
US9679661B1 (en) 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
WO2022151721A1 (zh) * 2021-01-14 2022-07-21 长鑫存储技术有限公司 纠错系统
JP7343709B2 (ja) 2021-01-14 2023-09-12 チャンシン メモリー テクノロジーズ インコーポレイテッド 誤り訂正システム
EP4050608B1 (en) 2021-01-14 2023-06-28 Changxin Memory Technologies, Inc. Comparator with xor and xnor logic circuits
CN114765056A (zh) 2021-01-14 2022-07-19 长鑫存储技术有限公司 存储系统
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0600137A1 (en) * 1992-11-30 1994-06-08 International Business Machines Corporation Method and apparatus for correcting errors in a memory
US5550849A (en) * 1993-05-20 1996-08-27 Ceram Incorporated Method and apparatus for detecting single or multiple bit errors instorage devices
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5450363A (en) * 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
DE69421925T2 (de) * 1994-09-30 2000-03-16 St Microelectronics Srl Speichergerät mit Fehlerdetektion und -korrektur und Verfahren zum Schreiben und Löschen des Speichergeräts
US5555250A (en) * 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
DE69423104T2 (de) * 1994-10-31 2000-07-20 St Microelectronics Srl Fehlernachweis- und Korrekturverfahren in einem mehrstufigen Speicher und Speicher für dieses Verfahren
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays

Also Published As

Publication number Publication date
US5859858A (en) 1999-01-12
JP2001503181A (ja) 2001-03-06
CN1242088A (zh) 2000-01-19
WO1998019241A1 (en) 1998-05-07
KR20000052798A (ko) 2000-08-25
KR100331139B1 (ko) 2002-04-01
MY114049A (en) 2002-07-31
DE19782077T1 (de) 1999-09-23
CN1113294C (zh) 2003-07-02
DE19782077B4 (de) 2011-04-07
AU3911797A (en) 1998-05-22
TW368622B (en) 1999-09-01

Similar Documents

Publication Publication Date Title
JP3982639B2 (ja) マルチレベルセルを有するメモリからデータを読み取る方法
US5754566A (en) Method and apparatus for correcting a multilevel cell memory by using interleaving
US8954818B2 (en) Error detection and correction scheme for a memory device
EP1635261B1 (en) Memory with embedded error correction code circuit
US6625061B2 (en) Method of managing a defect in a flash memory
USRE40252E1 (en) Flash memory control method, flash memory system using the control method and flash memory device using the control method
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US7813187B2 (en) Multi-bit flash memory device and program method thereof
US8122303B2 (en) Data structure for flash memory and data reading/writing method thereof
US20120239866A1 (en) Non-volatile memory with error correction for page copy operation and method thereof
WO2007083303A2 (en) A method of arranging data in a multi-level cell memory device
JPH05210595A (ja) メモリシステム
JPH07191915A (ja) コンピュータ・システム、メモリ・カード、及びその操作方法
US20080072119A1 (en) Allowable bit errors per sector in memory devices
JPH0136135B2 (ja)
JPH0136134B2 (ja)
US7213191B2 (en) System and method for securely storing data in a memory
KR20030023762A (ko) 에러 보정 방법 및 에러 보정 회로 장치
JPH08203292A (ja) 不揮発性メモリ
US11914887B2 (en) Storage device and data accessing method using multi-level cell
JP2000163320A (ja) ソフトエラー対策機能付メモリ装置及びソフトエラー対策方法
JP2005011386A (ja) 誤り訂正装置
JP2006127441A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JPH11296441A (ja) 誤り訂正回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070207

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070628

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

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150