JP3999822B2 - 記憶システム - Google Patents
記憶システム Download PDFInfo
- Publication number
- JP3999822B2 JP3999822B2 JP32634494A JP32634494A JP3999822B2 JP 3999822 B2 JP3999822 B2 JP 3999822B2 JP 32634494 A JP32634494 A JP 32634494A JP 32634494 A JP32634494 A JP 32634494A JP 3999822 B2 JP3999822 B2 JP 3999822B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- binary code
- error
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Dram (AREA)
- Detection And Correction Of Errors (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Description
【産業上の利用分野】
本発明は、記憶システム、特に電気的書替え可能な不揮発性半導体メモリを用いた多値の記憶システムに関する。
【0002】
【従来の技術】
近年、記憶システムとして、半導体メモリを用いた半導体記憶装置が広く使用されている。半導体記憶装置では、高集積度化、高密度化に伴う種々な影響による信頼性低下を防ぐことが重要な課題である。
【0003】
このため、誤り検出/訂正を行う誤り検出/訂正符号が、半導体記憶装置へしばしば適応される。実用上、この誤り検出/訂正符号は次の全てを満足しなければならない。
【0004】
(1) エラー頻度が、半導体記憶装置に固有な許容エラー頻度以下であること。
【0005】
(2) 高速な読み書き動作に伴い、高速な符号化及び復号化が可能なものであること。
【0006】
(3) 符号構成に当たって、符号の冗長度はできるだけ小さいこと。
【0007】
上記のような実用的な観点から、今日まで、1ビット誤りを訂正し、かつ、2ビット誤りを検出するSEC−DED符号が広く採用されている。
【0008】
一層の高信頼度を狙いとして、2ビット誤りを訂正するDEC符号が応用されている。特に、メモリパッケージ単位、或いは複数ビット出力記憶素子単位の誤り検出/訂正を目的としたバイト誤り検出/訂正符号が重要である。このようなバイト単位でデータを扱う装置を具体的に実用化する観点から言えば、単一バイト誤りを訂正するだけでなく、2バイト誤り検出能力の高いSbEC−DbED符号が要求される。
【0009】
電気的書替え可能な不揮発性半導体記憶装置(EEPROM)では、半導体基板上に積層形成された電荷蓄積層及び制御ゲートからなるメモリセルを用いて、電荷蓄積層に蓄えられた複数の電荷量の大きさを離散的に設定する(すなわち、制御ゲートから見た複数のしきい電圧Vtを離散的に設定する)ことによって、複数の情報を記憶することができる。
【0010】
また、単位面積当たり格納できるデータ量を増やすために、多値記憶の方法が考えられている。例えば、3値セルを2個のセルで3ビットとする多値ROMが知られている。
【0011】
多値メモリは、3つ以上の異なる電圧Vt分布をとることが可能なメモリセルによって構成される。電荷蓄積層に蓄えられた電荷量の大きさが0である時の電圧Vtを中性電圧Vt0 とすれば、長時間放置後に、メモリセルに書き込まれた情報を示すしきい電圧Vtの分布が、中性電圧Vt0 を含むような電圧分布に変わる場合がある。
【0012】
そのため、多値メモリに対する誤り訂正方法が考えられている。
【0013】
例えば、
(1) 多値ダイナミック型半導体メモリの場合には、1ソフトエラーで1セルデータは完全に破壊されるので、1セル当たりのビット数が救済できる訂正符号が必要である。
【0014】
(2) フラッシュメモリの場合には、読み出された多値データと書き込まれた多値データとの大きさは1だけしか変わり得ないので、隣接状態の対応する情報が1ビットだけ異なるように対応付けしておけば、状態が隣へ遷移した場合に、パリティ検出ができる。
【0015】
3値メモリの場合には、例えば制御ゲートを共有する隣合うメモリセルで構成されるセル群がその基本要素である。この場合、1メモリセルは3値を有するので、1セル群は3×3=9値を有する。そのうちの8値を使うことにより、2セル(すなわち1セル群)当たり3ビット情報を記憶できる。
【0016】
高集積化可能な3値NAND型EEPROMの構造とその動作を簡単に述べる。図24は、NANDセル構造例を示す断面図であり、NANDセルは、p基板11と、浮遊ゲート14と、制御ゲート16と、層間絶縁膜17と、ビット線18と、n型拡散層19とを有する。
【0017】
複数のメモリセルのうち隣接するメモリセルのソース及びドレインを共有する形で直列接続し、これを一単位としてビット線に接続して、NANDセルを構成する。メモリセルアレイは、p型基板又はn型基板に形成されたp型ウェル内に集積形成される。NANDセルのドレイン側は選択ゲートを介してビット線に接続され、ソース側もドレイン側と同様に選択ゲートを介してソース線に接続される。メモリセルの制御ゲートは、行方向に連続的に配設されてワード線となる。
【0018】
上記の3値NAND型EEPROMの動作は次の通りである。
【0019】
データの書き込みの動作は、ビット線から最も離れた位置のメモリセルから順に行われる。選択メモリセルの制御ゲートには高電圧Vpp(=20V程度)が印加され、選択メモリセルよりビット線側にあるメモリセルの制御ゲート及び選択ゲートに中間電圧Vm (=10V程度)が印加され、ビット線にデータに応じて0V、低電圧Vdd(=2V程度)又は中間電圧が与えられる。ビット線に0V又は低電圧Vdd(=2V程度)が与えられた時に、ビット線の電位は選択メモリセルのドレインまで伝達されて、ドレインから浮遊ゲートに電子注入が生じる。これにより、選択メモリセルのしきい電圧は正方向にシフトする。しかし、ビット線に低電圧Vddが与えられた時のシフト量はビット線に0Vが与えられた時のシフト量より小さくなる。ビット線に中間電圧が与えられた時は電子注入が起こらないので、しきい電圧は変化しない。
【0020】
データ消去動作は、NANDセル内の全てのメモリセルに対して同時に行われる。すなわち、全ての制御ゲート、選択ゲートを0Vとし、ビット線及びソース線を浮遊状態として、p型ウェル及びn型基板に高電圧Vpp(=20V程度)が印加される。これにより、全てのメモリセル浮遊ゲートの電子がp型ウェルに放出され、しきい電圧は負方向にシフトする。
【0021】
データ読み出し動作は、2サイクルで行われる。第1のサイクルでは、選択メモリセルの制御ゲートを0V、それ以外のメモリセルの制御ゲート及び選択ゲートを電源電圧Vcc(=5V程度)として、選択メモリセルで電流が流れるか否かを検出する。第2のサイクルでは、選択メモリセルの制御ゲートを低電圧Vdd(=2V程度)とし、それ以外のメモリセルの制御ゲート及び選択ゲートを電源電圧Vcc(=5V程度)として、選択メモリセルで電流が流れるか否かを検出する。ここで、3つのしきい電圧分布Vtは、それぞれVt<0V、0V=<Vt<Vdd、Vdd=<Vt<Vccである。
【0022】
多値の値を決める物理量(例えば、EEPROMのメモリセルのしきい電圧)の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1だけ変わる場合を考慮する。その時、読み出される出力データが書き込まれた入力データと大きさが2以上異なる場合が存在する。その結果、入出力データを情報データとする誤り訂正/検出符号として、少なくともSbEC符号が必要となる。更に、信頼度を2値記憶素子の場合のSEC−DED符号と同程度にするには、SbEC−DbED符号が要求される。しかし、このSbEC−DbED符号はSEC−DED符号に比べ、高い冗長度、すなわち複雑な復号化回路を必要とする。
【0023】
上記の大きさが2以上異なる場合を簡単に説明する。
【0024】
表1は、3値セルの状態を”0”、”1”、”2”とした場合における2つのセルの状態の9通りの組合せのうち、”2””2”を除いた8通りを用いて3ビットとする多値メモリの情報と状態の対応関係を表す。3ビット情報と状態の組合せは、隣合う2つが1ビットだけ、又は、大きさ”1”だけ、それぞれ異なるように並べられて対応している。この時、状態が大きさ”1”だけ変わり得る場合を想定すると、状態の組合せでは入出力データ”4”に対応する状態”1””1”は、”1””2”、”1””0”、”0””1”及び”2””1”の4通りに変わり得るのに対して、3ビット情報の方は3ビットのうち1ビット異なる3通り(すなわち、入出力データ”3”、”5”及び”7”)にしか変わらない。従って、このような誤りのある場合に、情報ビットを訂正しようとすると、2ビット訂正可能な誤り訂正符号を用いなければならない。
【0025】
また、記憶データのカラム不良等のバースト誤りがある場合に、正味の誤り訂正/検出能力は低下する。このようなバースト誤りがある場合に、例えばバースト誤りのあるアドレス以外の1つの記憶データに誤りがある時にこれらを訂正したければ、少なくとも2ビット誤り訂正符号を適用しなければならない。
【0026】
例えば、電気的書替え可能な不揮発性半導体記憶装置(EEPROM)では、特有なカラム不良が生ずることがある。このカラム不良は、ビット線にリークがある場合、或いはブロック内の共通カラム中のメモリセルが過剰書き込み又は過剰消去された場合に起こる。このようなカラム不良がある場合に、更に別のカラムアドレスのメモリセルに誤りがある時には、SbEC符号などの単一bビットバイト誤り訂正符号によって誤りが訂正できず、例えば二重bビットバイト誤り訂正符号が必要である。しかし、この符号はSbEC符号に比べ、高い冗長度、すなわち複雑な復号化回路を必要とする。
【0027】
【発明が解決しようとする課題】
上記のように従来の記憶システムは、下記のような問題を有する。
【0028】
多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1だけ変わる場合に、読み出される出力データが書き込まれた入力データと大きさが2以上異なる場合が存在する。その結果、入出力データを情報データとする誤り訂正/検出符号として、少なくともSbEC符号が必要である。更に、信頼度を2値記憶素子の場合のSEC−DED符号と同程度にするには、SbEC−DbED符号が要求される。しかし、このSbEC−DbED符号はSEC−DED符号に比べ、高い冗長度、すなわち複雑な復号化回路を必要とする。
【0029】
EEPROMは、特有なカラム不良が生ずることがあり、このようなカラム不良がある場合に更に別のカラムアドレスのメモリセルに誤りがある時に、SbEC符号などの単一bビットバイト誤り訂正符号によっては訂正できず、例えば二重bビットバイト誤り訂正符号が必要である。この符号はSbEC符号に比べ、高い冗長度、すなわち複雑な復号化回路を必要とする。
【0030】
本発明の目的は、多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1しか変わらない場合に適した誤り検出/訂正手段を用いることによって、比較的低い冗長度、すなわち簡単な複合化回路を用いること及び2ビット誤り検出を完全に行い得る記憶システムを提供することである。
【0031】
本発明の他の目的は、バースト誤りが生じて1符号語中に2ビット誤りが発生した場合でも、1ビット誤りを訂正し、更に、2ビット誤りを検出する符号を用いて2ビット誤りを訂正する可能性を有する記憶システムを提供することである。
【0032】
【課題を解決するための手段】
本発明は、上記の課題を解決するために次のような手段を講じた。
【0033】
本発明の第1の記憶システム(請求項1)は、[請求項1]特徴とする。また、また、上記のn値の記憶は、複数の記憶素子の組み合わせにより行われるようにしている。
【0034】
本発明の第1の記憶システムの望ましい実施態様は、次のものがある。
【0035】
(1) 情報データ記憶手段が、記憶すべきデータに対応するバイナリ・コードを用いて、誤り検出データ/訂正データ記憶手段の記憶素子に記憶すべきデータに対応する中間バイナリ・コードを発生させる手段と、中間バイナリ・コードに基づいて、記憶素子にn値記憶させる書き込み手段を備えたこと。
【0036】
(2) 記憶素子の記憶データを、1ビットが“0”と“1”で構成される複数ビットのバイナリ・コードに変換して、情報データと誤り検出データ又は誤り訂正データから誤りを検出又は訂正し、バイナリ・コードから複数の記憶素子のデータの組み合わせで表されるデータ・コードを出力すること。
【0037】
(3) (2)において、データ・コードから変換された情報データ記憶手段の記憶素子が記憶すべきデータに対応するバイナリ・コードから、誤り検出データ/訂正データ記憶手段の記憶素子に記憶すべきデータに対応するバイナリ・コードを発生させ、このバイナリ・コードに基づいて、記憶素子にn値記憶させる書き込み手段を備えたこと。
【0038】
(4) 記憶素子のデータ“i”(i=0、1、…、n−2)に対応するバイナリ・コードとデータ“i+1”に対応するバイナリ・コードは、バイナリ・コード中の1ビットのみ異なるようにされ、且つ記憶素子のデータ“i”(i=1、…、n−1)に対応する前記バイナリ・コードとデータ“i−1”に対応するバイナリ・コードは、バイナリ・コード中の1ビットのみ異なるようにされること。
【0039】
(5) 記憶素子は蓄えられた電荷量でn値記憶し、電荷量の大きさの順に、データ“0”、“1”、…、“n−1”が対応していること。
【0040】
(6) 記憶システムは不揮発性半導体記憶システムであり、記憶素子は半導体層上に電荷蓄積層と制御ゲートが積層形成され構成されたメモリセルであること。
【0041】
(7) 前記記憶素子の記憶状態の遷移は1以下であること。
【0042】
(8) 前記記憶手段は、N値(Nは3以上の整数)かつM個(Mは2以上の整数)の記憶素子の組合せで、n<2M の関係を有するnビット(2n <NM < 2n+1 )情報を記憶すること。
【0044】
【作用】
本発明の第1の記憶システム(請求項1)によれば、次のような作用が生じる。
【0045】
多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1しか変わらない場合に、多値データの大きさが1だけ異なるとき対応するコードが1ビット異なる(すなわちハミング距離1となる)ような中間バイナリ・コードを導入することによって、1ビット誤り訂正符号の適用が可能となる。これにより、比較的低い冗長度、すなわち簡単な復号化回路を用いることができ、更に2ビット誤り検出能力を持つ2ビット誤り検出符号に拡張することによって2ビット誤り検出を完全に行うことができる。
【0046】
例えば、電気的書替え可能な不揮発性半導体記憶装置(EEPROM)では、図25に示すように、半導体基板(n基板11′上のpウェル11)上に積層形成された電荷蓄積層14及び制御ゲート16からなるメモリセルを用いて、電荷蓄積層14に蓄えられた電荷量の大きさを離散的にすることによって、すなわち制御ゲート16から見たしきい電圧Vtを離散的にすることによって、情報を記憶することができる。多値メモリは、このVt分布を3つ以上持たせたメモリセルによって構成される。
【0047】
図26は、3値メモリの場合のセルのしきい電圧レベルと多値“0”、“1”、“2”の対応例を示す。電荷蓄積層に蓄えられた電荷量の大きさが0である時の電圧Vtを中性電圧Vt0 と呼び、この中性電圧Vt0 が“1”の電圧Vt分布内であれば、メモリセルに書き込まれた情報は、長時間放置後中性電圧Vt0 を含むVt分布の対応する情報に変わってしまうことがある。この場合の情報の誤りの大きさは、高々“1”である。すなわち、情報の誤りは、“0”と“1”の間又は“1”と“2”の間のみに起こる。
【0048】
図27及び図28は、それぞれNOR型EEPROM、NAND型EEPROMのセルアレイ部分を示す図である。3値メモリでは、例えば制御ゲートを共有した隣合うメモリセルで構成されるセル群をその基本要素とする。1メモリセルは3値を有するので、1セル群は9値を有する。そのうちの8値を使って、2セル当たり3ビットの情報を記憶できる。
【0049】
3値データと中間バイナリ・コードとの対応関係を、例えば、表2のように多値データが大きさ1だけ異なる時に対応するバイナリ・コードがハミング距離1となるようにすることによって、誤りは1ビット誤り訂正符号の適用によって訂正できる。
【0050】
更に、4値、5値、8値の場合も同様に、多値データとバイナリ・コードの対応関係を、例えば下記の表3、表4、表5のようにすることによって達成できる。
【0051】
【0052】
【実施例】
以下、本発明の実施例を図面を参照して説明する。
【0053】
図1は、本発明の第1実施例に係る記憶システムの概略構成図である。第1実施例の記憶システムは、データ変換器10と、検査データ演算器20と、セルアレイ30と、誤り検出器40と、誤り訂正器50と、データ逆変換器60とを具備する。
【0054】
データの書き込みは、次のように行われる。
【0055】
データ変換器10は、書き込みデータである入力データD10を、多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1だけ異なる場合にハミング距離1となるようなバイナリ・コードに変換する。その後、検査データ演算器20は、バイナリ・コードから検査データD30を生成する。この時、データ変換器10で変換されたバイナリ・コードを情報データD20として、情報データD20と検査データD30とが、書込データD40として、書込データD40がセルアレイ30に書き込まれる。
【0056】
データの読み出しは、次のように行われる。
【0057】
セルアレイ30から読み出された読出データD50は、誤り検出器40と誤り訂正器50に入力される。セルアレイ30から読み出されたデータに誤りがあった時に、誤り検出器40は、誤りの数が許容能力の範囲であれば誤りを検出して、検出した誤りの位置を誤り訂正器50に出力する。誤り訂正器50は、誤り検出器40で検出された誤りの数が許容能力の範囲であれば、セルアレイ30から読み出された読出データD50の誤りを訂正する。この時、誤り訂正器50の出力はバイナリ・コードの多値情報データである。データ逆変換器60は、この情報データを、セルアレイ30からの読み出しデータである出力データD60に逆変換して出力する。
【0058】
上記のように第1実施例によれば、多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1しか変わらないことを前提として、多値の情報データをバイナリ・コードに変換し、多値データとバイナリ・コードの対応を多値データの大きさが1だけ異なる時にハミング距離1になるバイナリ・コードに変換する。このため、1ビット誤り訂正符号の適用が可能となり、比較的低い冗長度、すなわち簡単な復号化回路を用いることができる。更に、2ビット誤り検出能力を持つ2ビット誤り検出符号に拡張することによって2ビット誤り検出を完全に行うことができる。
【0059】
図2は、本発明の第2実施例に係る記憶システムの概略構成図である。図2において、図1と同一部分には同一符号を付して、その詳しい説明は省略する。第2実施例は、第1実施例における各構成要素が、CPU100とEEPROM200のいずれに含まれるかを示す。
【0060】
第2実施例において、CPU100は、データ変換器10と、検査データ演算器20と、誤り訂正器50と、誤り検出器40と、データ逆変換器60と、を有し、EEPROM200はセルアレイ30のみを有する。本第2実施例では、CPU100とEEPROM200とでやりとりされるデータはバイナリ・コードである。
【0061】
図3は、本発明の第3実施例に係る記憶システムの概略構成図である。図3において、図1と同一部分には同一符号を付して、その詳しい説明は省略する。
【0062】
第3実施例は、第2実施例において、EEPROM200が、CPU100と同様に、データ変換器10と、データ逆変換器60とを有する構成であり、この場合には、CPU100とEEPROM200とでやりとりされるデータはバイナリ・コードでなく、通常の情報データである。但し、第3実施例の場合には、読出データD50に誤りが生じ、使用されないバイナリ・コードに変わった時に、その誤りを検出して、EEPROM200の外部に出力するために(例えばEEPROM200の出力バッファを高いインピーダンス状態にするために)、EEPROM200内に禁止データ検出器70が設けられる。
【0063】
図4は、本発明の第4実施例に係る記憶システムの概略構成図である。図4において、図1と同一部分には同一符号を付して、その詳しい説明は省略する。
【0064】
第4実施例は、本発明の第1実施例におけるデータ変換器10とデータ逆変換器60を一体化したもので、基本的な動作は本発明の第1実施例と同様である。但し、本実施例は2n 値(nは2以上の整数)の場合に限定される。
【0065】
書き込みは、次のように行われる。
【0066】
入出力データ−多値データ変換器80は、書き込みデータである入力データD10を、多値の値を決める物理量の大きさを大きい順に並べた時のi番目のデータを多値データ“i”として、読み出された多値データと書き込まれた多値データとの大きさが1しか変わらないことを前提として、多値の情報データをバイナリ・コードに変換し、多値データとバイナリ・コードの対応を多値データの大きさが1だけ異なる時にハミング距離1になるバイナリ・コードに変換する。その後、検査データ演算器20は、バイナリ・コードから検査データD30を生成する。この時、データ変換器10で変換されたバイナリ・コードを情報データD20として、情報データD20と検査データD30とが書込データD40として、書込データD40がセルアレイ30に書き込まれる。
【0067】
データの読み出しは、次のように行われる。
【0068】
セルアレイ30から読み出された読出データD50は、誤り検出器40と誤り訂正器50に導入される。セルアレイ30から読み出されたデータに誤りがあった時に、誤り検出器40は、誤りの数が許容能力の範囲であれば誤りを検出して、検出した誤りのビット位置情報を誤り訂正器50に出力する。誤り訂正器50は、誤り検出器40で検出された誤りの数が許容能力の範囲であれば、セルアレイ30から読み出された読出データD50の誤りを訂正する。誤り訂正器50の出力はバイナリ・コードの多値情報データである。入出力データ−多値データ変換器80は、この情報データを、読み出しデータである出力データD60に逆変換して出力する。
【0069】
図5は、本発明の第5実施例に係る記憶システムの概略構成図である。図5において、図1と同一部分には同一符号を付して、その詳しい説明は省略する。
【0070】
第5実施例は、本発明の第2実施例において、CPU100とEEPROM200とでやりとりされるデータを多元多値データとした構成例を示し、基本的な動作は本発明の第2実施例と同様である。
【0071】
書き込み時には、書き込みデータである入力データD10は、データ変換器10によって、多値の値を決める物理量をその大きさ順に並べた時にi番目のものを多値データ“i”とする時に、多値データが大きさ1だけ異なる時ハミング距離1となるようなバイナリ・データに変換される。その後、検査データ演算器20は、バイナリ・コードから検査データD30を生成する。更に、バイナリ・コードを情報データD20とし、これらのデータは多元多値データ変換器90に導入される。多元多値データ変換器90は、入力データを多元多値データに変換して出力する。
【0072】
上記の構成により、CPU100とEEPROM200でやりとりされるデータは、多元多値データとなる。EEPROM200に入力された多元多値データは、書込データD40として、セルアレイ30に書き込まれる。
【0073】
読み出し時には、セルアレイ30から読み出された多元多値の読出データD50はCPU100の多元多値データ変換器90に入力される。多元多値データ変換器90は、入力された多元多値データをバイナリ・コードに変換する。その後、このデータは誤り検出器40と誤り訂正器50に入力される。セルアレイ30から読み出されたデータに誤りがあった時に、誤り検出器40は、誤りの数が許容能力の範囲であれば誤りを検出して、検出した誤りの位置情報を誤り訂正器50に出力する。誤り訂正器50は、誤り検出器40で検出された誤りの数が許容能力の範囲であれば、セルアレイ30から読み出された読出データD50の誤りを訂正する。誤り訂正器50の出力はバイナリ・コードの多値情報データである。データ逆変換器60は、この情報データを、読み出しデータである出力データD60に逆変換して出力する。
【0074】
第6実施例は、2つの3値メモリセルの状態の9通りの組合せのうち、8通りを用いて3ビットとする多値メモリを使った多値記憶システムの誤り訂正検出の具体例を示す。上記各実施例は、記憶情報をバイナリ・コード(中間バイナリ・コードを含む)へ変換の後に、誤り訂正を行う実施例を示したが、第6実施例は、上記各実施例において、バイナリ・コードとして、中間バイナリ・コードを用いて誤り訂正を行う具体的な実施例を下記に示す。
【0075】
図6は、3値セルのしきい電圧Vtの分布(”0”、”1”及び”2”)が、それぞれ中間バイナリ・コード00、01及び11に対応する示す。図6において、各分布のしきい電圧Vtは、それぞれVt=<−1V、0V=<Vt=<1V、2V=<Vt=<3Vである。組み合わされる2つのメモリセルであるセル1とセル2の中間バイナリ・コードの8通りの組合せを中間バイナリ・コードと呼ぶことにし、入出力データとそれぞれに対応する8ビットの中間バイナリ・コードの関係を、表6のようにする。表6から、状態が大きさ”1”だけ変わり得る場合に、3ビット情報でなく、セルの情報から変換される中間バイナリ・コードに対して誤り訂正を行うことによって、1ビット誤り訂正符号が導入できることがわかる。
【0076】
図7は、21ビットの中間バイナリ・コードの1ビット誤りを訂正し、6ビットの検査ビットを合わせた27ビット中の2ビット誤りを検出する誤り訂正検出のための検査行列である。
【0077】
図8は、情報データの中間バイナリ・コードへの変換とその逆変換を行うデータ変換回路110の回路図である。信号WEは書き込み時にハイ、、信号REは読み出し時にハイになる。図8(a)において、バーのついた信号(例えば、/WE)は、その反転信号を示す。このデータ変換回路110により、書き込み時には情報データから中間バイナリ・コードへ変換が行われ、読み出し時には中間バイナリ・コードから情報データへの逆変換が行われる。16ビットの情報データIOl (l=1〜15)の15ビット分のデータは、図8(a)に示すように3ビット毎に4ビットの中間バイナリ・コードIOOk (k=1〜20)に変換される。残りの情報データIO16は、図8(b)のようにそのままIOO21に変換される。そして、16ビット情報そのものでなく、データ変換回路110によって変換された中間バイナリ・コードIOOの21ビットのデータが、誤り訂正符号の情報データとして扱われる。
【0078】
上記のデータ変換回路110と、EEPROM200のデータ入出力ピンであるIOパッド120と、IOバッファ130と、誤り訂正検出回路(ECC)140と、書込/読出回路150との接続関係を図9に示す。
【0079】
図9(a)では、データ変換回路110がCPU100側にあり、EEPROM200は16ビットの中間バイナリ・コードを入力する。図9(b)では、EEPROM200が、データ変換回路110と、ECC140と、読み書き回路159とを有し、EEPROM200は16ビットの情報データを入出力する。図9(c)では、CPU100がECC140を有し、EEPROM200は、21ビットの中間バイナリ・コードと6ビットの検査ビットを入出力する。
【0080】
図10〜図12は、16ビットの中間バイナリ・コードの1ビット誤りを訂正し、6ビットの検査ビットを合わせた22ビット中の2ビット誤りを検出するECC140の構成例を示す図である。このECC140による誤り検出及び訂正は、図7の検査行列を用いて実現される。図10(a)の回路によって、書き込み時に書き込み情報データIk (k=1〜21)は、入力Ok とされる。図10(b)の回路は、書き込み時に検査データを発生させ、読み出し時にシンドロームを発生させる回路である。この回路は6組あり、入力A(i)及び入力B(i)は、それぞれ表7及び表8で与えられる。
【0081】
図11は、誤り訂正/検出回路の構成例を示す図である。図11に示す誤り訂正回路は、読み出し時にシンドロームが図7のパターンで誤りビットを知らせる信号CRCTk がハイになる場合に読み出し情報データIk を反転させて、誤り訂正を行い、出力Ok を出力する。さもなければ、この誤り訂正回路は、読み出し情報データIk をそのまま出力Ok とする。
【0082】
図12の回路は、シンドロームSi (i=1〜6)のうち1つでも1(ハイ)となる場合に信号ERDETを1として、誤りがあったことを知らせる回路である。この時、1となるシンドロームの数が偶数であるとき、信号EVENERが1となり、偶数個の誤りが発生したことを知らせる。また、誤りが発生したが、誤りの訂正はされなかった場合には、信号NOTCRCTが1となる。
【0083】
図13は、I、Pと書込/読出回路150とビット線との接続関係を示し、図14及び図15は、それぞれ2入力及び1入力書込/読出回路150を表す。図16は、カラムデコーダを示す。
【0084】
図13において、I1 とI2 は同一の書込/読出回路150aに入出力され、それを介して1ビット線に接続される。図13に示すように、図14に示される2入力書込/読出回路150aは、20個のIに対して10個設けられる。I21とPi (i=1〜6)はそれぞれ図15に示す1入力書込/読出回路150bに入出力され、それを介して1ビット線に接続される。従って、図15に示される1入力書込/読出回路150bは7個設けられる。図16は、カラムデコーダであり、信号CSLn は選択されたアドレスに対してハイ、非選択のアドレスに対してローとなる。
【0085】
図17〜図20を用いて、図13〜図16に示す回路の各制御信号とデータのタイミングを説明する。
【0086】
はじめに、書き込み時の動作を説明する。
【0087】
図17は、書き込みデータの入力時のタイミングを示す図である。
【0088】
書き込み信号WEがハイになり、書き込み情報データがIOl (l=1〜16)に出力されると、データ変換回路110が、書き込み中間バイナリ・コードIOOk =IOIk =Ok =Ik (k=1〜21)を出力する。それと同時に、検査データが発生されて、Pi (i=1〜6)として出力される。これらの書き込みデータIk 及びPi は選択されたカラムアドレスの書込/読出回路150に入力される。
【0089】
図18は、書き込み時における、書込/読出回路150の制御信号とセルの選択ゲートSG1、SG2と制御ゲートCG1〜CG8のタイミング図である。
【0090】
2入力書込/読出回路150aでは、書き込みデータが”0”の時、I2l、 I2l-1は共に0であるので、内部ノードN1 及びN2 が0にラッチされる。信号φa1、φa2、φpa、PBa及びVRFYaがローのままで、VBHaが8V、VBMaが2V、VBLaが0Vになる。従って、”0”書き込み時には、ビット線BLには、8Vが印加される。書き込みデータが”1”の時には、N1 =1、N2 =0、”2”の時、N1 =N2 =1がそれぞれラッチされるので、”1”及び”2”書き込み時にはビット線BLにはそれぞれ2V及び0Vが印加される。
【0091】
一方、データを書き込むメモリセルがワード線CG4に接続されている時、ワード線CG4には20V、それ以外のワード線CG1〜CG3、CG5〜CG8及び選択線SG2には10V、選択線SG1には0Vがぞれぞれ印加されるので、”0”、”1”、”2”書き込みのメモリセルには、ゲートとチャネル間にそれぞれVg =12V、18V、20Vが印加される。Vg =12Vでは、トンネル電流は流れず、メモリセルのしきい電圧は変わらない。Vg =18Vでは、トンネル電流が流れ、メモリセルのしきい電圧は正の方向に移動し、しきい電圧は0V以上1V以下になる。Vg =20Vの時はVg =18Vの時よりもトンネル電流は大きく、しきい電圧は2V以上3V以下になる。
【0092】
上記のようにして、3値の中間バイナリ・コード00、01、11をメモリセルに書き込むことができる。一方、1入力書込/読出回路150bは、2入力書込/読出回路150aの第2センスアンプを除いたものである。書き込み時には、データの”0”、”1”に応じてそれぞれ8V、2Vが印加される。
【0093】
次に、図19及び図20を参照して、読み出し動作を説明する。
【0094】
2入力書込/読出回路150aでは、読み出しは、2ステップで行われる。
【0095】
第1のステップでは、”0”か否かの判定を行う。
【0096】
はじめにビット線BLを1.8V、ダミービット線BLBを1.5Vに充電しておく。その後で、ワード線CG4以外のワード線CG1〜CG3、CG5〜CG8及び選択線SG1及びSG1を4Vにする。読み出されるデータが”0”ならば、ビット線BLに充電された電荷は放電され、ビット線の電位は1.5V以下になり、そうでなければ、1.8Vを保つ。最後に、これらの電圧は、QP13、QP14、QP15、QN57、QN58、QN59で構成される第1のセンスアンプに入力され、それらの電位差が増幅される。読み出されるデータが”0”ならば内部ノードN1 =0が、読み出されるデータが”1”又は”2”ならば内部ノードN1 =1がラッチされる。
【0097】
第2のステップでは、”2”か否かの判定を行う。第2のステップと第1のステップとの唯一の違いは、読み出すメモリセルのワード線CG4を2Vにすることである。今回は、QP16、QP17、QP18、QN62、QN63、QN64で構成される第2のセンスアンプが使用され、読み出されるデータが”2”ならば、内部ノードN2 =1が、読み出されるデータ”0”又は”1”ならば内部ノードN2 =0がラッチされる。
【0098】
上記のようにして、3値の中間バイナリ・コード00、01、11をメモリセルから読み出すことができる。1入力書込/読出回路150bでは、第1ステップのみ活性化し、ビット線電位のロー、ハイがそれぞれ”0”、”1”に対応する。
【0099】
図20は、読み出しデータの出力時のタイミングを示す図である。
【0100】
読み出しデータは選択されたカラムアドレスの書込/読出回路150からIk (k=1〜21)、Pi (i=1〜6)に出力される。これらの27ビットデータからシンドロームSiが計算され、誤りがあれば訂正して読み出し出力データ(中間バイナリ・コード)がOk =IOIk =IOOk (k=1〜21)に出される。最後に、読み出しデータIOOk は、データの逆変換によって読み出し情報データIOl (l=1〜16)とされる。
【0101】
上記のように、本発明は、情報データをバイナリ・コード(中間バイナリ・コードを含む)に変換した後に、誤り検出及び誤り訂正を行っているので、1ビット誤り訂正符号を適用できる。
【0102】
上記の第1〜第6実施例において、2個のメモリセルによる3値メモリを考慮したが、N値メモリセルのM個の組合せも同様に適用可能である。この場合には、NM 個の状態ができるので、この中の2n (<NM )個の状態を使用して、nビットデータと1対1に対応させる。
【0103】
以下、本発明がN値メモリセルのM個の組合せに適用できる理由を説明する。
【0104】
各メモリセルのどの状態にも両端を除き2つの隣接状態がある。M個のセルの状態の組合せは、2M 通りである。
【0105】
もし、n<2M であれば、状態の組合せが隣の状態に遷移したときに、対応する情報が必ず1ビット変わるような状態の組合せと情報との対応関係はない。従って、上記の誤りに対して、少なくとも2ビット誤り訂正符号が必要となる。
【0106】
一方、2m >N>2m-1 を満たすmビット(m>=2)で、N個の状態を、隣の状態に遷移したとき対応するmビット表現(すなわち、中間バイナリ・コード)が必ず1ビットだけ変わるようなN状態と中間バイナリ・コードと対応関係は必ず存在する。これは、各セルのどの状態も高々2つの隣の状態があり、1ビットだけ異なる中間バイナリ・コードはm(>=2)個あることによる。
【0107】
従って、誤り検出/訂正は、中間バイナリ・コードに対して行えば、1ビット誤り訂正符号で充分である。
【0108】
図21は、本発明の第7実施例に係る記憶システムの概略構成図である。本実施例において、第1実施例と同じものには同じ符号を付し、詳細な説明は省略する。
【0109】
第7実施例の記憶システムは、情報データ記憶部210と、検査データ記憶部220と、誤り検出器40と、誤り訂正器50と、バースト破壊位置検出部160と、データ再設定部170と、を具備する。情報データ記憶部210は、情報データD20を記憶する。検査データ記憶部220は、誤り検出データ及び誤り訂正データを記憶する。バースト破壊位置検出部160は、前記各記憶部の記憶データのバースト破壊位置を検出する。データ再設定部170は、前記バースト破壊位置検出部160によって検出されるバースト破壊位置のデータを仮定して再設定する。上記の構成において、第1〜第6実施例のように、セルアレイ30が、情報データ記憶部210と、検査データ記憶部220とを有する構成としても良い。
【0110】
上記のように構成された第7実施例の係る記憶システムの動作を図22を参照して説明する。図22は、本発明の第7実施例における誤り検出/訂正のアルゴリズムを示すフローチャートである。
【0111】
各ステップ毎の動作の詳細を説明する前に、動作の概略を説明する。
【0112】
記憶されたデータの読み出しが始まると、カラム不良番地が検索される。カラム不良がなければ情報データD20と検査データD30が読み出され、これらのデータは誤り検出器40と誤り訂正器50にそれぞれ入力される。誤りがあった時、誤り検出器40によってその許容能力範囲の数の誤りであれば誤りの検出が行われ、この時誤り訂正器50によってその許容能力範囲の数の誤りであれば誤りの訂正が行われる。誤り数が誤り検出器40の許容能力範囲より大きければ、確率的に誤りの検出を行う。これで読み出しが終了される。
【0113】
カラム不良が生じた場合には、不良カラムのアドレスにポインタが立てられる。その後、情報データD20と検査データD30が読み出され、これらのデータは誤り検出器40に入力される。誤りの数が誤り検出器40の許容能力範囲内にあれば、先の実施例と同様に誤り検出/訂正が実行される。誤りの数が誤り検出器40の許容能力範囲内になければ、不良カラムのアドレスにあるデータを変更し、このデータを再度誤り検出器40に入力する。
【0114】
誤りの数と誤り検出器40の検出可能な誤り数の大小関係に応じて、不良カラムのアドレスにあるデータの変更を考えられる全てのパターンに対して行われるまで、上述のアルゴリズムを繰り返す。これらのどのパターンに対しても誤りの数が誤り検出器40の許容能力範囲内にあり、誤りの数が誤り訂正器50の許容能力範囲内になければ、誤りがあったことを知らせるエラーフラグを出力する。
【0115】
図22示す各ステップの内容を、以下に簡単に説明する。
【0116】
読み出し開始する(ステップS1)。カラム不良のあるアドレスを検索する(ステップS2)。ここで、カラム不良の数をnとする。
【0117】
nが0か否か、すなわちカラム不良があるか否かを判断し(ステップS3)、カラム不良がある時にはステップS11に進み、カラム不良がない時にはステップS4に進む。
【0118】
情報データD20及び検査データD30の読み出しを行う(ステップS4)。そして、誤り検出を行い、この時誤りの数をmとする(ステップS5)。
【0119】
ステップS5で得られた誤りの数が訂正できる誤りの数以下であるか否かを判断し(ステップS6)、誤りの数が訂正できる誤りの数以下である場合にはステップS7に進み、誤りの数が訂正できる誤りの数以下でない場合にはステップS9へ進む。
【0120】
誤りの数が0であるか否かを判断し(ステップS7)、誤りの数が0である場合にはステップS10に進み、読み出しを終了する(ステップS10)。誤りの数が0でない場合にはステップS8に進み、誤りの訂正を行う(ステップS8)。
【0121】
ステップS6で誤りの数が訂正できる誤りの数以下でない判断された場合に訂正できない誤りがあったことを知らせるエラーフラグを出力し(ステップS9)、読み出しを終了する(ステップS10)。
【0122】
ステップS3でカラム不良があると判断されたとき、その数が許容するカラム不良の数N以下であるか否かを判断し(ステップS11)、カラム不良の数が許容するカラム不良の数以下である場合にはステップS12に進み、その不良カラムのアドレスai (i=1、…、n)を出力し(ステップS12)、そうでない場合にはステップS20に進み、訂正できない誤りがあったことを知らせるエラーフラグを出力して(ステップS20)、読み出しを終了する(ステップS21)。
【0123】
情報データD20及び検査データD30の読み出しを行い(ステップS13)、次に、誤り検出を行い、この時誤りの数をmとする(ステップS14)。
【0124】
ステップS14で得られた誤りの数が完全に検出できる誤りの数L以下であるか否かを判断し(ステップS15)、誤りの数が完全に検出できる誤りの数以下である場合にはステップS16へ進み、更に誤りの数が訂正できる誤りの数以下であるか否かを判断する(ステップS16)。ステップS15において、誤りの数が完全に検出できる誤りの数以下でない場合にはステップS19へ進み、訂正できない誤りがあったことを知らせるエラーフラグを出力して(ステップS19)、読み出しを終了する(ステップS21)。
【0125】
ステップS16において、誤りの数が訂正できる誤りの数以下である場合にはステップS7へ進み、誤りの数が訂正できる誤りの数以下でない場合にはステップS17へ進み、不良カラムアドレスのデータを変更する(ステップS17)。
【0126】
そして、ステップS17の不良カラムアドレスのデータ変更を考えられる全ての場合を行ったか否かを判断し(ステップS18)、不良カラムアドレスのデータ変更を考えられる全ての場合を行ったと判断された場合ステップS5に進み、そうでない場合にはステップS14に戻る。
【0127】
上記のフローチャートにおいて、、許容する不良カラムの数Nは、望ましくは完全に検出できる誤りの数L以下にする。通常は、N=L−M又はN=1である。
【0128】
図23は、第7実施例における不良例を示すブロック図である。図中の斜線部は、それが位置するメモリセルに誤りが生じたことを示し、その数字はそれぞれの誤りの大きさを示している。以下では例として、1ビット誤り訂正2ビット誤り検出符号を適応した場合を述べる。
【0129】
a行が読み出された場合、誤りは一つもないので、そのまま正しく読み出される。
【0130】
b行又はd行が読み出された場合、誤りは一つだけなので、誤り訂正器50により訂正される。
【0131】
c行が読み出された場合、誤りは二つであるので、誤り検出器40により検出される。
【0132】
e行が読み出された場合、誤りは不良カラム上に一つ、不良カラム外に一つであるので、まず誤り検出器40により検出される。その後、不良カラム上のデータは取り得る可能なデータに変換され、もとの書き込みデータとされる誤りは不良カラム外の一つになる。ここで、このデータは誤り訂正器50により訂正される。
【0133】
f行が読み出された場合、誤りは不良カラム上に大きさ2の誤りであるので、誤り検出器40により検出される。その後、上と同様にこのデータは誤り訂正器50により訂正される。
【0134】
g行が読み出された場合、誤りは不良カラム上に大きさ2の誤りが一つ、不良カラム外に一つである。この場合には、確率的に誤り検出器40により検出される。検出された場合は、その後に上と同様にこのデータは誤り訂正器50により訂正される。
【0135】
h行が読み出された場合、誤りは不良カラム上に大きさ2の誤りが一つ、不良カラム外に二つ以上である。この場合は、確率的に誤り検出器40により検出されるが、誤りは訂正され得ない。
【0136】
表9は、3値の場合における情報ビット数に対する検査ビット数の関係を示すものである。
【0137】
バイナリ・コードにおいて単一2ビットバイト誤り訂正二重2ビットバイト誤り検出符号を適応する場合、真の情報データにおいて単一3ビットバイト誤り訂正二重3ビットバイト誤り検出符号を適応する場合、本発明によるバイナリ・コードにおいて1ビット誤り訂正2ビット誤り検出符号を適応する場合、を示している。表9から、本発明によるバイナリ・コードにおいて1ビット誤り訂正2ビット誤り検出符号を適応する場合に情報データ数に対する検査データ数を最小にすることが分かる。なお、表9中の括弧内の数字は、検査データ数に対応するメモリセルの数を表す。
【0138】
本発明は、上記実施例に限定されるものではなく、本発明の要旨を変更しない範囲で種々変形して実施できる。
【0139】
【発明の効果】
本発明によれば次のような効果が得られる。
【0140】
上記のように、本発明によれば、多値を決める物理量をその大きさ順に並べた時にi番目のものを多値データ“i”とするとき、読み出された多値データが書き込まれた多値データと高々大きさ1だけ変わり得る場合、多値データとバイナリ・コードの対応を多値データ大きさ1だけ異なるとき対応するバイナリ・コードがハミング距離1となるようにする手段を用いることによって、1ビット誤り訂正符号の適用が可能となる。これにより、比較的低い冗長度、すなわち簡単な復号化回路を用いることができ、更に2ビット誤り検出能力を持つ2ビット誤り検出符号に拡張することによって2ビット誤り検出を完全に行うことができる。
【0141】
また、バースト誤りが生じ、その結果として1符号語中に2ビット誤りが発生しても、1ビット誤りを訂正し、かつ、2ビット誤りを検出する符号を用いて2ビット誤りを訂正する可能性を持たせることができる。
【図面の簡単な説明】
【図1】 本発明の第1実施例に係る記憶システムの概略構成図。
【図2】 本発明の第2実施例に係る記憶システムの概略構成図。
【図3】 本発明の第3実施例に係る記憶システムの概略構成図。
【図4】 本発明の第4実施例に係る記憶システムの概略構成図。
【図5】 本発明の第5実施例に係る記憶システムの概略構成図。
【図6】 3値セルのしきい電圧Vtの分布と中間バイナリ・コードとの対応を示す図。
【図7】 誤り訂正検出のための検査行列の例を示す図。
【図8】 データ変換回路の回路図例を示す図。
【図9】 データ変換回路と、IOパッドと、IOバッファと、誤り訂正検出回路(ECC)と、書込/読出回路との接続関係を示す図。
【図10】 ECCの構成例を示す図。
【図11】 誤り訂正回路の構成例を示す図。
【図12】 誤り報知回路例を示す図。
【図13】 I、Pと書込/読出回路150とビット線との接続関係を示す図。
【図14】 2入力書込/読出回路例を示す図。
【図15】 1入力書込/読出回路例を示す図。
【図16】 カラムデコーダ例を示す図。
【図17】 書き込みデータの入力時のタイミングを示す図。
【図18】 書き込み時における、書込/読出回路の制御信号と、セルの選択ゲートSG1、SG2と、制御ゲートCG1〜CG8のタイミング図。
【図19】 読み出し時における、書込/読出回路の制御信号と、セルの選択ゲートSG1、SG2と、制御ゲートCG1〜CG8のタイミング図。
【図20】 読み出しデータの出力時のタイミングを示す図。
【図21】 本発明の第7実施例に係る記憶システムの概略構成図。
【図22】 本発明の第7実施例における誤り検出/訂正のアルゴリズムを示すフローチャート。
【図23】 本発明の第7実施例における不良例を示すブロック図。
【図24】 NANDセルの断面構造例を示す図。
【図25】 EEPROMのメモリセル構造を示す図。
【図26】 3値の場合のメモリセルのしきい電圧と“0”、“1”、“2”との対応関係を示す図。
【図27】 3値NOR型EEPROMの回路構成を示す図。
【図28】 3値NAND型EEPROMの回路構成を示す図。
【符号の説明】
10…データ変換器、20…検査データ演算器、30…セルアレイ、
11…p型ウェル、14…浮遊ゲート(電荷蓄積層)、16…制御ゲート、
17…層間絶縁膜、18…ビット線、19…n型拡散層、40…誤り検出器、
50…誤り訂正器、60…データ逆変換器、70…禁止データ検出器、
80…入出力データ−多値データ変換器、90…多元多値データ変換器、
100…CPU、110…データ変換回路、120…IOパッド、
130…IOバッファ、140…ECC、150…書込/読出回路、
160…バースト破壊位置検出部、170…データ再設定部、
200…EEPROM、210…情報データ記憶部、
220…検査データ記憶部、
D10…入力データ、D20…情報データ、D30…検査データ、
D40…書込データ、D50…読出データ、D60…出力データ。
Claims (10)
- それぞれがデータ"0"、"1"、・・・、"n−1"に対応するn値の記憶状態のいずれか1つの状態を記憶する複数の記憶素子を有し、Kビット(Kは自然数)からなるn値情報データを記憶する情報データ記憶手段と、Kビット(Kは自然数)からなるn値検査データを記憶する検査データ記憶手段とを備えた記憶手段と、
前記n値情報データからMビット(MはKより大きい自然数)からなる第1の中間バイナリ・コードに変換する第1の変換手段と、
前記n値情報データからMビット(MはKより大きい自然数)からなる第2の中間バイナリ・コードに変換する第2の変換手段と、
前記第1の中間バイナリ・コードに対して前記第2の中間バイナリ・コードを用いて前記第1の中間バイナリ・コードの誤りを検出し、前記第1の中間バイナリ・コード中の誤りを訂正する検出/訂正手段と、
を具備することを特徴とする記憶システム。 - 前記記憶手段は、前記n値の記憶を、複数の記憶素子の組み合わせにより行うことを特徴とする請求項1記載の記憶システム。
- 前記第1及び第2の変換手段は、記憶素子の記憶データを、1ビットが0と1で構成される複数ビットのバイナリ・コードに変換し、
前記検出/訂正手段は、前記情報データと前記検査データとから誤りを検出/訂正して、前記バイナリ・コードから複数の記憶素子のデータの組み合わせで表されるデータ・コードを出力することを特徴とする請求項1記載の記憶システム。 - 前記データ・コードから変換された情報データ記憶手段の記憶素子が記憶すべきデータに対応するバイナリ・コードから、前記検査データ記憶手段の記憶素子に記憶すべきデータに対応するバイナリ・コードを発生させ、前記バイナリ・コードに基づいて、記憶素子にn値記憶させる書き込み手段を更に具備することを特徴とする請求項3記載の記憶システム。
- 少なくとも前記第1の変換手段は、前記記憶素子のデータの大きさが1だけ変化した場合に、そのバイナリ・コードがハミング距離1となるように、データを変換することを特徴とする請求項1記載の記憶システム。
- 前記記憶素子は、蓄えられた電荷量でn値記憶を行い、電荷量の大きさの順に、n個のデータ " 0 " 、 " 1 " 、…、 " n−1 " が対応することを特徴とする請求項1記載の記憶システム。
- 前記記憶素子は、半導体層上に電荷蓄積層と制御ゲートが積層形成された不揮発性メモリセルであることを特徴とする請求項1記載の記憶システム。
- 前記記憶素子の記憶状態の遷移が1の時に、そのバイナリ・コードのハミング距離が1であることを特徴とする請求項1記載の記憶システム。
- 前記記憶手段は、N値(Nは3以上の整数)かつM個(Mは2以上の整数)の前記記憶素子の組み合わせで、n<2 M の関係を有するnビット(2 n <N M <2 n+1 )情報を記憶することを特徴とする請求項1記載の記憶システム。
- 少なくとも3つの記憶状態から選択されたKビット(Kは自然数)からなる情報をそれぞれ記憶する複数の第1の記憶手段と、少なくとも3つの記憶状態から選択されたKビット(Kは自然数)からなる検査データをそれぞれ記憶する複数の第2の記憶手段とを含むEEPROMと、
前記第1の記憶手段に記憶された前記情報データと前記第2の記憶手段に記憶された前記検査データとを、それぞれ、1ビットが " 0 " 又は " 1 " で構成されるMビット(MはKより大きい自然数)からなる第1と第2の中間バイナリ・コードに変換する変換手段と、
前記第1の中間バイナリ・コードと前記第2の中間バイナリ・コードを用いて、前記第1の中間バイナリ・コードの誤りを検出し、訂正する検出/訂正手段と、
を具備することを特徴とする記憶システム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32634494A JP3999822B2 (ja) | 1993-12-28 | 1994-12-27 | 記憶システム |
US08/364,997 US5621682A (en) | 1993-12-28 | 1994-12-28 | Memory system |
KR1019940037753A KR0142277B1 (ko) | 1993-12-28 | 1994-12-28 | 메모리 시스템 |
US08/786,142 US5719888A (en) | 1993-12-28 | 1997-01-21 | Memory system |
US08/874,405 US5996108A (en) | 1993-12-28 | 1997-06-13 | Memory system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5-354152 | 1993-12-28 | ||
JP35415293 | 1993-12-28 | ||
JP32634494A JP3999822B2 (ja) | 1993-12-28 | 1994-12-27 | 記憶システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003095677A Division JP3866674B2 (ja) | 1993-12-28 | 2003-03-31 | 記憶システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07234823A JPH07234823A (ja) | 1995-09-05 |
JP3999822B2 true JP3999822B2 (ja) | 2007-10-31 |
Family
ID=26572158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32634494A Expired - Fee Related JP3999822B2 (ja) | 1993-12-28 | 1994-12-27 | 記憶システム |
Country Status (3)
Country | Link |
---|---|
US (3) | US5621682A (ja) |
JP (1) | JP3999822B2 (ja) |
KR (1) | KR0142277B1 (ja) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
KR100566465B1 (ko) * | 1995-01-31 | 2006-03-31 | 가부시끼가이샤 히다치 세이사꾸쇼 | 반도체 메모리 장치 |
JPH09102190A (ja) * | 1995-08-02 | 1997-04-15 | Sanyo Electric Co Ltd | 信号記録装置、及び信号読出装置、並びに信号記録・読出装置 |
DE69526789T2 (de) * | 1995-09-29 | 2002-11-21 | St Microelectronics Srl | Speicheranordnung mit verbessertem Ergebnis und verbesserter Zuverlässigkeit |
JP3392604B2 (ja) * | 1995-11-14 | 2003-03-31 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JPH09288895A (ja) * | 1996-04-19 | 1997-11-04 | Toshiba Corp | 3値記憶半導体記憶システム |
JP3740212B2 (ja) * | 1996-05-01 | 2006-02-01 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US6320785B1 (en) | 1996-07-10 | 2001-11-20 | Hitachi, Ltd. | Nonvolatile semiconductor memory device and data writing method therefor |
JP3062730B2 (ja) | 1996-07-10 | 2000-07-12 | 株式会社日立製作所 | 不揮発性半導体記憶装置および書込み方法 |
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 |
US6839875B2 (en) | 1996-10-18 | 2005-01-04 | Micron Technology, Inc. | Method and apparatus for performing error correction on data read from a multistate memory |
US5859858A (en) * | 1996-10-25 | 1999-01-12 | Intel Corporation | Method and apparatus for correcting a multilevel cell memory by using error locating codes |
JPH10222992A (ja) * | 1997-02-06 | 1998-08-21 | Fujitsu Ltd | 多値メモリ及び多値メモリに対するデータアクセス方法 |
US5909449A (en) * | 1997-09-08 | 1999-06-01 | Invox Technology | Multibit-per-cell non-volatile memory with error detection and correction |
JP3165101B2 (ja) * | 1998-03-05 | 2001-05-14 | 日本電気アイシーマイコンシステム株式会社 | 多値式半導体メモリ装置およびその不良救済方法 |
JP2000173289A (ja) * | 1998-12-10 | 2000-06-23 | Toshiba Corp | エラー訂正可能なフラッシュメモリシステム |
JP4036552B2 (ja) * | 1998-12-17 | 2008-01-23 | 富士通株式会社 | 不揮発性半導体記憶装置 |
EP1028379B1 (en) * | 1999-02-10 | 2003-05-07 | STMicroelectronics S.r.l. | Method for correction of errors in a binary word stored in multi-level memory cells, with minimum number of correction bits |
DE69905237T2 (de) * | 1999-02-25 | 2003-10-30 | St Microelectronics Srl | Verfahren um Fehler eines Mehrpegelspeichers zu korrigieren |
JP4074029B2 (ja) | 1999-06-28 | 2008-04-09 | 株式会社東芝 | フラッシュメモリ |
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 |
US6990623B2 (en) * | 2001-05-16 | 2006-01-24 | Fujitsu Limited | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function |
US20020174397A1 (en) * | 2001-05-16 | 2002-11-21 | Fujitsu Limited | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function |
JP2002351689A (ja) * | 2001-05-30 | 2002-12-06 | Nec Corp | データ転送システム |
DE10128903C2 (de) * | 2001-06-15 | 2003-04-24 | Infineon Technologies Ag | Schaltungsanordnung zur Speicherung digitaler Daten |
US7283048B2 (en) * | 2003-02-03 | 2007-10-16 | Ingrid, Inc. | Multi-level meshed security network |
JP4314057B2 (ja) * | 2003-04-18 | 2009-08-12 | サンディスク コーポレイション | 不揮発性半導体記憶装置および電子装置 |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7057931B2 (en) * | 2003-11-07 | 2006-06-06 | Sandisk Corporation | Flash memory programming using gate induced junction leakage current |
US7844879B2 (en) * | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
JP4846384B2 (ja) * | 2006-02-20 | 2011-12-28 | 株式会社東芝 | 半導体記憶装置 |
US7453723B2 (en) | 2006-03-01 | 2008-11-18 | Micron Technology, Inc. | Memory with weighted multi-page read |
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 |
US7369434B2 (en) * | 2006-08-14 | 2008-05-06 | Micron Technology, Inc. | Flash memory with multi-bit read |
US7716538B2 (en) * | 2006-09-27 | 2010-05-11 | Sandisk Corporation | Memory with cell population distribution assisted read margining |
US7886204B2 (en) * | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of cell population distribution assisted read margining |
KR100856129B1 (ko) * | 2006-12-29 | 2008-09-03 | 삼성전자주식회사 | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 |
KR100845529B1 (ko) * | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
US7460397B2 (en) * | 2007-03-28 | 2008-12-02 | Skymedi Corporation | Method for reading multiple-value memory cells |
US7971123B2 (en) * | 2007-07-02 | 2011-06-28 | International Business Machines Corporation | Multi-bit error correction scheme in multi-level memory storage system |
US7747903B2 (en) * | 2007-07-09 | 2010-06-29 | Micron Technology, Inc. | Error correction for memory |
US7937647B2 (en) * | 2007-07-27 | 2011-05-03 | Actel Corporation | Error-detecting and correcting FPGA architecture |
JP2009146555A (ja) * | 2007-11-20 | 2009-07-02 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2009134799A (ja) * | 2007-11-29 | 2009-06-18 | Toshiba Corp | メモリシステム |
JP4746658B2 (ja) * | 2008-09-29 | 2011-08-10 | 株式会社東芝 | 半導体記憶システム |
US8245111B2 (en) * | 2008-12-09 | 2012-08-14 | Intel Corporation | Performing multi-bit error correction on a cache line |
US8799747B2 (en) * | 2010-06-03 | 2014-08-05 | Seagate Technology Llc | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory |
US8429495B2 (en) * | 2010-10-19 | 2013-04-23 | Mosaid Technologies Incorporated | Error detection and correction codes for channels and memories with incomplete error characteristics |
JP5581969B2 (ja) * | 2010-10-27 | 2014-09-03 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US8935590B2 (en) * | 2012-10-31 | 2015-01-13 | Infineon Technologies Ag | Circuitry and method for multi-bit correction |
US9286158B2 (en) * | 2014-02-06 | 2016-03-15 | Macronix International Co., Ltd. | Programming method, reading method and operating system for memory |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
US9978456B2 (en) | 2014-11-17 | 2018-05-22 | Sandisk Technologies Llc | Techniques for reducing read disturb in partially written blocks of non-volatile memory |
US9349479B1 (en) | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US9449700B2 (en) | 2015-02-13 | 2016-09-20 | Sandisk Technologies Llc | Boundary word line search and open block read methods with reduced read disturb |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
US10061691B2 (en) | 2016-09-08 | 2018-08-28 | Toshiba Memory Corporation | Write data optimization methods for non-volatile semiconductor memory devices |
JP7128183B2 (ja) * | 2017-06-16 | 2022-08-30 | 株式会社半導体エネルギー研究所 | 半導体装置、動作方法 |
US11860733B2 (en) * | 2021-12-08 | 2024-01-02 | Western Digital Technologies, Inc. | Memory matched low density parity check coding schemes |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2685770B2 (ja) * | 1987-12-28 | 1997-12-03 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US5043940A (en) * | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US5268870A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
US5179560A (en) * | 1989-05-15 | 1993-01-12 | Mitsubishi Denki Kabushiki Kaisha | Apparatus for decoding bch code for correcting complex error |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
DE69223099T2 (de) * | 1991-08-09 | 1998-06-10 | Toshiba Kawasaki Kk | Aufzeichnungsgerät für eine Speicherkarte |
US5424898A (en) * | 1991-08-16 | 1995-06-13 | Donnelly Corporation | Fault tolerant drive circuit for electrochromic mirror system |
JPH0560199A (ja) * | 1991-09-02 | 1993-03-09 | Hiroshi Horie | 駆動力増強機構 |
JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
JP3485938B2 (ja) * | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5280447A (en) * | 1992-06-19 | 1994-01-18 | Intel Corporation | Floating gate nonvolatile memory with configurable erasure blocks |
US5509134A (en) * | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
US5457702A (en) * | 1993-11-05 | 1995-10-10 | The United States Of America As Represented By The Secretary Of The Navy | Check bit code circuit for simultaneous single bit error correction and burst error detection |
US5450363A (en) * | 1994-06-02 | 1995-09-12 | Intel Corporation | Gray coding for a multilevel cell memory system |
-
1994
- 1994-12-27 JP JP32634494A patent/JP3999822B2/ja not_active Expired - Fee Related
- 1994-12-28 US US08/364,997 patent/US5621682A/en not_active Expired - Lifetime
- 1994-12-28 KR KR1019940037753A patent/KR0142277B1/ko not_active IP Right Cessation
-
1997
- 1997-01-21 US US08/786,142 patent/US5719888A/en not_active Expired - Lifetime
- 1997-06-13 US US08/874,405 patent/US5996108A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5621682A (en) | 1997-04-15 |
US5719888A (en) | 1998-02-17 |
JPH07234823A (ja) | 1995-09-05 |
US5996108A (en) | 1999-11-30 |
KR0142277B1 (ko) | 1998-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3999822B2 (ja) | 記憶システム | |
US8136014B2 (en) | Non-volatile semiconductor memory device | |
US6233717B1 (en) | Multi-bit memory device having error check and correction circuit and method for checking and correcting data errors therein | |
US8020081B2 (en) | Multi-level cell memory devices using trellis coded modulation and methods of storing data in and reading data from the memory devices | |
US9454414B2 (en) | System and method for accumulating soft information in LDPC decoding | |
US8797795B2 (en) | Methods and apparatus for intercell interference mitigation using modulation coding | |
US7096406B2 (en) | Memory controller for multilevel cell memory | |
KR100822030B1 (ko) | 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치 | |
US11269721B2 (en) | Memory system for preventing write error | |
US8635508B2 (en) | Systems and methods for performing concatenated error correction | |
TW417110B (en) | Multi-value type semiconductor memory device and its defect removal method | |
US9348694B1 (en) | Detecting and managing bad columns | |
US20210211142A1 (en) | Decoding device and decoding method | |
US8699269B1 (en) | Systems and methods for improving error distributions in multi-level cell memory systems | |
US20110066922A1 (en) | Error correction for multilevel flash memory | |
US7017099B2 (en) | Method for error control in multilevel cells with configurable number of stored bits | |
US10741212B2 (en) | Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders | |
US6990623B2 (en) | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function | |
US9786388B1 (en) | Detecting and managing bad columns | |
JP3866674B2 (ja) | 記憶システム | |
US20020174397A1 (en) | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function | |
JPH11339496A (ja) | 多値セルのecc回路 | |
US20240086277A1 (en) | Nand fast cyclic redundancy check | |
JPH10334697A (ja) | 半導体記憶装置およびその誤り訂正方法 | |
JPH0743959B2 (ja) | 誤り訂正機能付半導体メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070810 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100817 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100817 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110817 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110817 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120817 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120817 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130817 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |