JP2000298625A - 多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法 - Google Patents

多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法

Info

Publication number
JP2000298625A
JP2000298625A JP2000038187A JP2000038187A JP2000298625A JP 2000298625 A JP2000298625 A JP 2000298625A JP 2000038187 A JP2000038187 A JP 2000038187A JP 2000038187 A JP2000038187 A JP 2000038187A JP 2000298625 A JP2000298625 A JP 2000298625A
Authority
JP
Japan
Prior art keywords
error
bits
assigned
bit
word
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.)
Pending
Application number
JP2000038187A
Other languages
English (en)
Inventor
Alberto Modelli
モデーリ アルベルト
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.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
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 STMicroelectronics SRL filed Critical STMicroelectronics SRL
Publication of JP2000298625A publication Critical patent/JP2000298625A/ja
Pending legal-status Critical Current

Links

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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

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

Abstract

(57)【要約】 【課題】 多重レベルメモリセルの2進ワードの誤りの
訂正方法に関し、最小数の訂正ビットにて単一または複
数の誤りビットを訂正することを目的とする。 【解決手段】 2進ワードのビットの集合毎に、a)他の
誤りに割り当てられない誤りコードを単一誤りに割り当
て、b)多重の誤りの部分集合の各々毎に、b1)部分集合
自体の個々の誤りに割り当てられる誤りコードに依存す
る誤りコードを部分集合に割り当て、b2)部分集合に割
り当てられる誤りコードが他の誤りに割り当て済みであ
るかをチェックし、b3)割り当て済みの場合、b31)部分
集合に割り当てられる誤りコードと、部分集合自体の単
一誤りに割り当てられる誤りコードの一つを拒否し、b3
2)他の誤りに割り当てられない新たな誤りコードを、拒
否された誤りコードに関係する単一誤りに割り当て、b3
3)部分集合に割り当てられる誤りコードが他の誤りに割
り当てられなくなるまで、b1)〜b3)を繰り返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、最小数の訂正ビッ
トを使用することによって、多重レベルメモリセル内に
記憶される2進ワードの誤りを訂正するための方法に関
する。
【0002】
【従来の技術】以下ではソースワードとして示されると
共にm個のビットを含む2進ワードの誤りを検出して訂
正するために、ソースワードに「冗長性」を付加するこ
とに基づいている手法が公知である。換言すれば、この
手法は、ソースワード内のm個のビットから適切に選択
されるk個のサブグループに対してk回のパリティチェ
ックを行うことによってk個のビットが得られる2進ワ
ードであって、k個のビットを含みかつ以下で訂正ワー
ドと呼ばれている2進ワードを、ソースワードに対して
割り当てることと、この結果としての上記2進ワードを
記憶することとに基づいている手法である。
【0003】この割り当ては、いわゆる「符号化プロセ
ス」にて遂行される。この符号化プロセスでは、m個の
ビットによって規定されることが可能な2m個の使用可
能なソースワードが、(m+k)個のビットからなる同
数の2進ワードの集合体の中にマップ(map )される。
これらの2進ワードは、以下ではコードワードとして示
され、このコードワードの各々は、ソースワードとそれ
に対応する訂正ワードとを交互に配置することによって
得られることが可能であり、その後にメモリ内に記憶さ
れる。
【0004】上記符号化プロセスの期間中に割り当てら
れるk個の訂正ビットの各々の値は、行われるパリティ
チェックのタイプに依存している。例えば、k個の訂正
ビットの値は、いわゆる「偶数パリティチェック基準」
に従って割り当てられることが可能であり、すなわち、
i番目のサブグループ内に偶数個の論理値“1”が存在
する場合には、論理値“0”が訂正ワード内のi番目の
位置のビットに割り当てられ、また一方で、i番目のサ
ブグループ内に奇数個の論理値“1”が存在する場合に
は、論理値“1”が訂正ワード内のi番目の位置のビッ
トに割り当てられることが可能である。あるいは、k個
の訂正ビットの値は、いわゆる「奇数パリティチェック
基準」に従って割り当てられることが可能であり、すな
わち、i番目のサブグループ内に奇数個の論理値“1”
が存在する場合には、論理値“0”が訂正ワード内のi
番目の位置のビットに割り当てられ、また一方で、i番
目のサブグループ内に偶数個の論理値“1”が存在する
場合には、論理値“1”が訂正ワード内のi番目の位置
のビットに割り当てられる。
【0005】復号化プロセスにおいては、記憶された
(m+k)個のビットを含むコードワードに基づいて、
記憶期間中に上記コードワードの中で発生した任意の誤
りの検出および訂正を伴うような、m個のビットを有す
る対応ソースワードの決定が行われる。このような復号
化プロセスは、同様に2進タイプであり、かつ、ソース
ワード内に存在する単一または複数の誤りの位置を示す
チェックワードを生成するために、ソースワード中のビ
ットに対してk回のパリティチェックを再度実行するこ
と、および、このようにして得られる訂正ワードを、メ
モリにより読み取られる訂正ワードと比較することによ
って行われる。
【0006】詳細に述べると、上記復号化プロセスで
は、2進ソースワードのi番目のサブグループに対して
i番目のパリティチェックを実行することによって得ら
れる訂正ワード中のi番目のビットが、メモリにより読
み取られる訂正ワード中のi番目の位置に存在している
ビットと比較される。さらに、このようにして比較され
た2つのビットの値が互いに同じである場合には、論理
値“0”がチェックワード中のi番目のビットに割り当
てられ、また一方で、これらのビットの値が互いに異な
っている場合には、論理値“1”がチェックワード中の
i番目のビットに割り当てられる。
【0007】ついで、チェックワードが複数の誤りコー
ドと比較される。これらの誤りコードの各々は、チェッ
クワードと同じ長さを有する2進ワードにより構成され
ており、かつ、ソースワードおよび訂正ワードの中の一
つのビット、またはビット群に割り当てられている。し
たがって、上記誤りコードの各々は、このビットまたは
ビット群の位置を表示している。誤りが存在する場合に
は、チェックワードが上記誤りコードの一つと同一であ
り、それゆえに、上記割り当てによって、単一の正しく
ないビット(または複数の正しくないビット)(incorr
ect bit(s))を識別することが可能である。
【0008】論理値“1”を有する誤りコードに対し
て、そのパリティがチェックされなければならないソー
スワード内のサブグループの構成に連係している意味が
関連付けられる。特に、誤りコード中のi番目の位置で
論理値“1”であるビットが、この誤りコードに関連付
けられている位置に位置しているソースワード内のビッ
トが、i番目のパリティチェックが行われるソースワー
ド内の複数のビットのi番目のサブグループの一部分で
あるという事実を表している。
【0009】例えば、誤りコードが「0101」である
場合、この誤りコードが2進ソースワード中の1番目の
ビットにおける誤りに割り当てられると仮定したとき
に、この誤りコードは、上記2進ソースワード内の1番
目のビットが、1番目と3番目のパリティチェックが行
われる複数のビットのサブグループの一部分を形成しな
ければならないという事実を表している。
【0010】実際に、これによって、ソースワード中の
1番目のビットが正しくない場合には、(1番目と3番
目のパリティチェックから得られる)復号化の期間中に
生成される訂正ワード中の1番目のビットと3番目のビ
ットの両方が、符号化の期間中に生成された訂正ワード
中の対応するビットとは相違しており(この符号化の期
間中は、これらの1番目および3番目のビットが互いに
異なっていた)、それゆえに、上記2つの訂正ワードを
比較することによって得られる誤りコードが、論理値
“1”に設定された1番目のビットと3番目のビットの
両方を有する。
【0011】k回のパリティチェックが行われることに
なっているソースワード内のk個のサブグループが適切
に選択される場合には、誤りコードが、単一の正しくな
いビット(または複数の正しくないビット)のコードワ
ード内の位置と二重一義的対応関係(bi-univocal corr
espondence)にあり、それゆえに、この二重一義的対応
関係が認められるときには、正しくないビットが訂正さ
れ得る。
【0012】単一のビットが各々のメモリセル内に記憶
される従来のメモリが使用される場合には、メモリセル
の誤動作が、単一のビットの劣化を生じさせる。このタ
イプのメモリでは一般的であるように、メモリセルの故
障の確率が比較的低い場合には、ソースワード内の単一
誤りを検出して訂正することが可能であるような訂正コ
ードを使用することで充分である。実際に、ソースワー
ド内で複数の誤りが発生する確率は無視できるほど低
い。
【0013】また一方で、複数のビットが各メモリセル
内に記憶される多重レベルメモリにおいては、単一のメ
モリセルの故障さえも、多重の誤りを発生させる可能性
があり、すなわち、複数のビットにおける誤りを同時に
発生させる可能性がある。実際に、よく知られているよ
うに、フローティングゲート式の多重レベルメモリセル
においては、記憶されるべきデータが、(メモリセルの
スレッショールド電圧の値を規定する)フローティング
ゲート領域内に記憶されている電荷の量に関連付けられ
る。それゆえに、コードワードを記憶するために使用さ
れる複数のメモリセル中の一つのメモリセルにおけるフ
ローティングゲート領域内の電荷の損失または利得が、
コードワード内に、電荷の減少が既に生じているメモリ
セル内に記憶されているビットの個数nと同じであるよ
うな最大個数の誤りを発生させる可能性がある。
【0014】したがって、多重レベルメモリ内の誤りを
訂正するための方法が効率的であるためには、この方法
は、多重の誤りを検出して訂正することが可能であるこ
とを必要とする。多重の誤りの訂正のための公知の方法
を使用することにより、同じ長さのソースワードの場合
に単一誤りの訂正に必要とされるビット個数に比較し
て、訂正ワードのビットの個数が著しく増大することに
なり、それゆえに、同一のデータ記憶容量を得るために
は記憶領域が増大することになるであろう。
【0015】しかしながら、多重レベルメモリセルのフ
ローティングゲート領域内に蓄積された電荷が減少する
ことは、この電荷の減少によってコードワード内で発生
する可能性があるn個の誤りが、メモリ設計段階で演繹
的に(a priori)決定されたた割り当ての規則に基づ
き、相互に関連付けられかつ予め知られている位置に存
在しているということを意味することに留意されたい。
この割り当ての規則に従って、コードワード内の複数の
ビットがメモリセル内に記憶されている。
【0016】例えば、各メモリセル内にn個のビットが
記憶されており、かつ、これらのn個のビットが2進ワ
ード内で互いに隣接した位置に配置されている場合に
は、このメモリセルの故障によって発生する可能性があ
るn個の誤りもまた、2進ワード内の互いに隣接した位
置にだけ位置している可能性がある記憶されるべきm個
のビットを有する2進ワードの場合、一般的なメモリ内
に記憶されているコードワード中の単一誤りや、相互に
関連付けがなされていないような任意の位置に存在する
二重誤りを訂正するために、次の〔数1〕に示す不等式
(1)が満たされるように、k個の訂正ビットが必要と
される。
【0017】
【数1】 上記不等式(1)は、k個のビットによって生成され得
るような2k 個の使用可能な訂正ワードを、単一誤りが
取り得る(m+k)箇所の位置に対する二重一義的対応
関係の形で関連付けると共に、上記訂正ワードを、2つ
の誤りが取り得る((m+k)・(m+k−1)/2)
通りの組み合せに対して二重一義的対応関係の形で関係
付けることが可能でなければならないということと、誤
りがないという条件を考慮に入れることも必要であると
いう事実から追加の「1」が導出されるということと
を、単純に表現している。
【0018】コードワード中の単一誤りを訂正するため
には、次の〔数2〕に示す不等式(2)が満たされなけ
ればならないということが、上記不等式(1)から容易
に導出可能である。
【0019】
【数2】 また一方で、m個のビットを有するソースワードの場合
には、一つのメモリセル内に2つのビットが記憶されて
いるような多重レベルメモリ内に記憶されるコードワー
ド中の相互に関連付けられた位置にある2つの誤りを訂
正するために、次の〔数3〕に示す不等式(3)が満た
されるように、k個の訂正ビットが必要とされる。
【0020】
【数3】 上記不等式(3)は、相互に関連付けられた位置にある
2つの誤りの位置が取り得る組合せが(m+k)/2通
りだけであるという事実を考慮に入れて、上記不等式
(1)から導出可能である。
【0021】一般的に、m個のビットを有する2進ワー
ドが記憶される場合には、2個のビットが1個のメモリ
セル内に記憶されるような多重レベルメモリセル内に記
憶されるコードワード中の相互に関連付けられた位置に
あるr個の誤りを訂正するために、次の〔数4〕に示す
不等式(4)が満たされるように、k個の訂正ビットが
必要とされる。
【0022】
【数4】 図1は、単一誤りまたは二重誤りを訂正するために必要
である最小数の訂正ビットを含むテーブルを示す図であ
る。図1のテーブルは、mの最上位の値に関して、各メ
モリセル内に2つのビットが記憶される場合に、任意の
位置(非相関位置)にある2つの誤りを訂正するために
必要とされるkの最小値と、互いに隣接した位置(相関
位置)にある2つの誤りを訂正するために必要とされる
kの最小値と、単一誤りを訂正するために必要とされる
kの最小値とを示す。
【0023】このテーブルを考察すると、少なくとも、
8ビットよりも長い長さを有する2進ワードの場合に、
相互に関連付けられた位置(相関位置)にある2つの誤
りの訂正が、単一誤りの訂正のために必要な追加のセル
の個数と同じ個数の追加のセルを使用して行われること
が可能であることが示されている。特に、32ビット2
進ワード(16個のセル)の場合には、相互に関連付け
られた位置にある2つの誤りの訂正を行うために、メモ
リ行列領域の19%の増大を伴う形で、6個の訂正ビッ
ト(3個のセル)を使用することが必要であり、また一
方で、64ビット2進ワード(32個のセル)の場合に
は、相関位置にある2つの誤りの訂正を行うために、メ
モリ行列領域の12.5%の増大だけを伴う形で、7個
の訂正ビット(4個のセル)を使用することが必要であ
ることが、上記テーブルにおける最後の2つの行の分析
によって明らかである。
【0024】相互に関連付けられた位置にある2つの誤
りの場合に関して示されている前述の情報は、相互に関
連付けられた位置にあるn個の誤りといったような一般
的な場合にも有効である。このことによって、ソースワ
ード内の誤りの位置の間の相互的関係(相関関係)が、
一般的に、必要とする訂正ビットの個数(したがって、
追加の訂正セルの個数)を最小化する条件であることが
わかる。この場合、必要とする訂正ビットの個数は、任
意のnの場合には、前述の不等式(3)を使用して計算
することが可能であり、あるいは、n=2の場合には、
不等式(4)を使用して計算することが可能である。
【0025】
【発明が解決しようとする課題】しかしながら、相互に
関連付けられた位置にある多重の誤りを訂正する場合
に、誤りコードと、単一誤りビットまたはn個の誤りビ
ットの位置との間の対応関係に関して二重一義性(bi-u
nivocality)という条件が満たされるような、k回のパ
リティチェック演算を行うことが可能であるソースワー
ド内のk個のサブグループの規定の基準が、文献上では
これまでの知られていない。このため、従来は、相互に
関連付けられた位置にある多重の誤りを訂正する場合
に、ソースワード内のk個のサブグループを適切に選択
することが難しいという不都合が生じていた。
【0026】本発明は上記問題点に鑑みてなされたもの
であり、最小個数の訂正ビットしか必要としないという
条件と、誤りコードと、単一誤りビットまたはn個の誤
りビットの位置との間の対応関係に関して二重一義性と
いう条件とを満たすような、多重レベルメモリセル内に
記憶される2進ワード中の誤りを訂正するための方法を
提供することを目的とするものである。
【0027】
【課題を解決するための手段】上記問題点を解決するた
めに、本発明では、特許請求の範囲の請求項1に記載さ
れているような、最小数の訂正ビットを使用して、多重
レベルメモリセル内に記憶される2進ワードの誤りを訂
正するための方法が提供される。すなわち、本発明は、
最小数の訂正ビットによって、n個のビットを各々が含
む多重レベルメモリセル内に記憶される2進ワードの誤
りを訂正する場合に、単一のメモリセル内に記憶される
上記2進ワード中の各々のビットの集合毎に、 a)上記2進ワード中の他の誤りに割り当てられておら
ず、かつ、上記2進ワード中の誤りビットの位置を表す
個別の誤りコードを、上記ビットの集合中の各ビットの
単一誤りに対して割り当てるステップと、 b)上記ビットの集合中の複数のビットにおける多重の
誤りの部分集合(sub-sets)の各々毎に、次のb1)〜
b3)のサブステップを行うステップとを有しており、
これらのサブステップは、 b1)上記部分集合中の複数のビットにおける個別の誤
りに対して割り当てられる誤りコードに依存している別
々の誤りコードを、上記多重の誤りの部分集合に対して
それぞれ割り当てるサブステップと、 b2)上記多重の誤りの部分集合に割り当てられる誤り
コードが、上記2進ワード中の他の誤りに既に割り当て
済みであるかどうかをチェックするサブステップと、 b3)上記多重の誤りの部分集合に割り当てられる誤り
コードが、上記2進ワード中の他の誤りに既に割り当て
済みである場合に、次のb31)〜b33)のさらなる
サブステップを行うサブステップとを有しており、これ
らのさらなるサブステップは、 b31)上記多重の誤りの部分集合に割り当てられる誤
りコードと、上記部分集合中のビットにおける単一誤り
に割り当てられる誤りコードの少なくとも一つとを拒否
するサブステップと、 b32)上記2進ワード中の他の誤りに対して割り当て
られていない新たな誤りコードを、上記のb31)のサ
ブステップにて拒否された誤りコードに割り当てられる
上記単一誤りに割り当てるサブステップと、 b33)上記多重の誤りの部分集合に割り当てられる誤
りコードが、上記2進ワード中の他の誤りに割り当てら
れることがなくなるまで、上記のb1)〜b3)のサブ
ステップを繰り返すサブステップとを含むような方法を
提供する。
【0028】
【発明の実施の形態】以下では、本発明の理解を容易に
するために、添付図面(図2〜図7)に基づいて、本発
明の好ましい実施の形態を単なる非限定的な具体例とし
て説明する。ここでは、n=2、m=6およびk=4で
ある特定の例に関して、すなわち、セル1個当り2個の
ビットと、最初の6個のビット(3個のセル)がソース
ワードを規定しかつ最後の4個のビット(2個のセル)
が符号化プロセス中に生成される訂正ワードを規定する
ような10ビットのコードワードとを記憶するメモリセ
ルの場合に関して、本発明の方法の一般的な適用可能性
を制限することなしに、図2のフローチャートを参照し
ながら本発明の誤り訂正方法を説明する。
【0029】さらに、次には、コードワード内の相互に
関連付けられた位置が、各メモリセルに記憶される2個
のビットに割り当てられる場合に、互いに隣接した位置
に位置している2個のビットに関して後述するようなあ
らゆる事柄が、相互に関連付けられた位置に位置してい
る2個のビットにも適用されるということが明らかなの
で、コードワード内の互いに隣接した位置が、各メモリ
セル内に記憶されている2つのビットに割り当てられる
ということを前提として、本発明の方法の一般的な適用
可能性を制限することなしに、本発明の誤り訂正方法を
説明する。
【0030】本発明の方法がそのために立案されている
特定の用途、すなわち、相互に関連付けられた位置に存
在する誤りの訂正が、本発明の方法によって、単一誤り
の訂正が可能であるばかりでなく、一対の誤りの訂正も
可能であることを意味するという事実が強調される。こ
こで、上記一対の誤りは、単一のメモリセルの欠陥によ
って生成されるが、2個の別々のメモリセルの各々が単
一誤りを生成する場合には、これらの2つの誤りが相互
に関係付けられることがないので、単一誤りを各々が生
成するような2個の別々のメモリセルの欠陥によっては
上記一対の誤りが生成されることがない。
【0031】本発明の第1の実施態様によれば、メモリ
によって読み取られる訂正ワード内に誤りが存在する可
能性を最初に考慮に入れることによって、k回のパリテ
ィチェックがそれに対して行われなければならないソー
スワード中のk個のサブグループが規定される。この理
由として、上記訂正ワード内に誤りが存在する可能性
が、さらに詳細に後述される仕方でk個のサブグループ
自体を規定することを必要条件とすることが挙げられ
る。
【0032】図2は、本発明に係る誤りコードの割り当
てに関連した動作の流れを説明するためのフローチャー
トである。図2のフローチャートに示されているよう
に、最初にブロック10に進む。このブロック10で
は、個々の誤りコードが、単一誤りの各々に対して割り
当てられると共に、訂正ワード中の相互に関係付けられ
た位置にある二重誤りの各々に対して割り当てられる。
【0033】メモリにより読み取られる訂正ワードの中
の誤りの位置に誤りコードを割り当てるために使用され
る基準が、上記訂正ワード中の誤りの事象(event )に
おいて復号化プロセスの期間中に実際に生じる状態を監
視することによって導き出されることが可能である。特
に、今回の説明で考察されている例では、ソースワード
のビットと訂正ワードのビットとが記憶されるメモリセ
ルに全く欠陥が無い場合に、復号化プロセスの期間中に
生成される訂正ワードが、メモリによって読み取られる
訂正ワードと同一であり、それゆえに、対応するチェッ
クワードがゼロになるであろう(すなわち、チェックワ
ードが全てゼロだけから構成されるであろう)。この場
合は、上記チェックワードが、誤りがないことを示して
いるので、割り当てのために使用されることは不可能で
ある。
【0034】また一方で、訂正ワード中の最初の2つの
ビットが記憶されるメモリセルに欠陥がある場合には、
次のような事態が生じる可能性がある。 ・記憶された4個の訂正ビットの第1の訂正ビット中に
単一誤りが存在し、したがって、第1のパリティチェッ
クから得られ、かつ、復号化プロセスの期間中に生成さ
れた訂正ワード中の第1のビットが、符号化プロセスの
期間中に生成されて記憶される訂正ワード中の第1のビ
ットとは等しくないであろう。それゆえに、第1のパリ
ティチェックが失敗に終わっているであろうし、また一
方で、その後の連続したチェックが適正であり肯定的結
果を与えるであろう。この結果、誤りコード「000
1」(10進法の“1”を表す)が、記憶されている訂
正ワード中の第1のビットにおける上記単一誤りに対し
て有利に割り当てられる。この誤りコード「0001」
は、第1のチェックの結果が否定的であった(第1のビ
ットが論理レベル“1”であった)という事実と、後続
の3つのチェックの結果が肯定的であった(後続の3つ
のビットが論理レベル“0”であった)という事実とを
示す。
【0035】・記憶されている4個の訂正ビットの第2
の訂正ビットに単一誤りが存在し、したがって、第2の
パリティチェックが失敗に終わり、また一方で、その後
の連続したチェックが適正であろう。こうして、誤りコ
ード「0010」(10進法の「2」を表す)が、上記
誤りに対して有利に割り当てられる。 ・記憶されている第1および第2の訂正ビット内に二重
誤りが存在し、それゆえに、第1および第2のパリティ
チェックの両方が失敗に終わるであろう。こうして、誤
りコード「0011」(10進法の「3」を表す)が、
上記二重誤りに対して有利に割り当てられる。
【0036】同様に、第3および第4の訂正ビットが記
憶されるメモリセルに欠陥がある場合には、次のような
事態が生じる可能性がある。 ・記憶される第3の訂正ビットに単一誤りが存在し、そ
れゆえに、第3のパリティチェックが失敗に終わるであ
ろう。こうして、誤りコード「0100」(10進法の
「4」を表す)が、上記誤りに対して有利に割り当てら
れる。
【0037】・記憶される第4の訂正ビットに単一誤り
が存在し、それゆえに、第4のパリティチェックが失敗
に終わるであろう。こうして、誤りコード「1000」
(10進法の「8」を表す)が、上記誤りに対して有利
に割り当てられる。 ・記憶される第3および第4の訂正ビットに二重誤りが
存在し、それゆえに、第3および第4のパリティチェッ
クの両方が失敗に終わるであろう。こうして、誤りコー
ド「1100」(10進法の「12」を表す)が、上記
二重誤りに対して有利に割り当てられる。
【0038】したがって、上記の説明から理解できるよ
うに、一般的に、図2のブロック10において、論理値
“1”に設定されたi番目のビットを有する誤りコード
が、記憶されている訂正ワード中のi番目のビットにお
ける単一誤りに割り当てられ、また一方で、記憶されて
いる訂正ワード中のi番目のビットとその後続のビット
における二重誤りに対して、i番目のビットにおける単
一誤りに割り当てられた誤りコードにおける対応位置
と、その後続のビットにおける単一誤りに割り当てられ
た誤りコードにおける対応位置にある各々のビット対の
ビット間で排他的論理和演算、すなわち、EX−OR
(または、EXCLUSIVE−ORと記す)演算を行
うことによって得られる誤りコードが割り当てられる。
こうして、i番目のビットとその後続のビットとが論理
値“1”に設定される。
【0039】パリティチェックが行われることになって
いるソースワード中のサブグループの選択において、記
憶されている訂正ワードの中の誤りに対して既に誤りコ
ード1、2、3、4、8および12が割り当てられると
いうことを考慮することが必要なので、訂正ワード中の
単一誤りと二重誤りとに対する誤りコードの割り当て
が、ソースワード中の単一誤りと二重誤りとに対する誤
りコードの割り当てを条件付ける。
【0040】こうして、ブロック10から一連のブロッ
クへの移行が生じる。これらの一連のブロックでは、ソ
ースワード中の連続した別々の隣接ビット対の各々が1
回毎に一つずつ考慮され(すなわち、上記の説明に従え
ば、単一のメモリセルの中に記憶されている一連のn個
のビットが1回毎に一つずつ考慮され)、これらの隣接
ビット対の各々について、上記単一誤りビット、およ
び、両方のビットにおける二重誤りに対して割り当てら
れるべき誤りコードが決定される。
【0041】今回の説明で考察されている例では、最初
に、ソースワード中の第1および第2のビットによって
形成されている対と、その次に、ソースワード中の第3
および第4のビットによって形成されている対と、最後
にソースワード中の第5および第6のビットによって形
成されている対とが考慮される。詳細に述べると、ブロ
ック10からブロック20への移行が生じる。このブロ
ック20では、誤りコードの割り当てのために考慮され
るべきである、ソースワード中の互いに隣接したビット
の対(隣接ビット対)が選択される。
【0042】その次に、ブロック20からブロック30
への移行が生じる。このブロック30では、他の誤りに
対してまだ割り当てられたことがない誤りコードの中の
最小の誤りコードが、選択されたビット対の第1のビッ
トにおける単一誤りに対して割り当てられる。その次
に、ブロック30からブロック40への移行が生じる。
このブロック40では、その他の誤りにはまだ割り当て
られていない複数の誤りコードの中で、対象となってい
るビット対の中の第1のビットに割り当てられた誤りコ
ードに後続する最小の誤りコードが、選択されたビット
対の第2のビットにおける単一誤りコードに対して割り
当てられる。
【0043】その次に、ブロック40からブロック50
への移行が生じる。このブロック50では、上記単一誤
りに対して割り当てられる誤りコードの各々の対応ビッ
ト対に対しEX−OR演算を行うことによって得られる
誤りコードが、選択されたビット対の両ビットにおける
二重誤りに割り当てられる。その次に、ブロック50か
らブロック60への移行が生じる。このブロック60で
は、ブロック50で決定された誤りコードが、ソースワ
ードまたは訂正ワードの中の他の誤りに対して既に割り
当て済みであるかどうかがチェックされる。
【0044】誤りコードが他の誤りに対して既に割り当
て済みである場合には(ブロック60からのYES出
力)、このことが、誤りコードと誤り位置との間の二重
一義性の基準に従うことを可能にせず、それゆえに、ブ
ロック60からブロック70への移行が行われる。また
一方で、誤りコードが他の誤りに対してまだ割り当てら
れたことがない場合には(ブロック60からのNO出
力)、このことが、誤りコードと誤り位置との間の二重
一義性の基準に従うことを可能にし、それゆえに、ブロ
ック60からブロック80への移行が生じる。
【0045】ブロック70では、必要とされるビット対
の両ビットにおける二重誤りに対して割り当てられた誤
りコードが、上記二重一義性の条件を満たさないので拒
否されると共に、選択されたビット対における第2のビ
ットの誤りに対して割り当てられた誤りコードが拒否さ
れる。対象となっているビット対における第2のビット
の誤りに対して割り当てられるべき新たな誤りコードを
決定するために、ブロック70から再びブロック40へ
の移行が生じる。
【0046】その次に、上記二重一義性の条件を満たす
両ビットにおける二重誤りに対して割り当てられる誤り
コードを得ることを可能にする誤りコードが、選択され
たビット対における第2のビットの誤りに対して割り当
てられるまで、ブロック40〜70に関して説明した動
作が繰り返される。この誤りコードが決定された後に、
ブロック80への移行が生じ、ブロック80では、二重
誤りに割り当てられた誤りコードと、2つの単一誤りに
割り当てられた2つの誤りコードとが記憶される。
【0047】その次に、ブロック80からブロック90
への移行が生じる。このブロック90では、ソースワー
ド中の後続の隣接ビット対が、誤りコードの割り当ての
ために考慮されるべきかどうかがチェックされる。考慮
されるべき後続の隣接ビット対がソースワード中に存在
する場合(ブロック90からのYES出力)には、ソー
スワード中の後続ビット対に関して説明した上記動作を
繰り返すために、ブロック20への移行が再び生じる。
また一方で、ソースワード中の全ての隣接ビット対が考
慮されることがなかった(ブロック90からのNO出
力)場合には、ブロック90から、後述のブロック10
0への移行が生じる。
【0048】今回の説明で考察されている例に関してい
えば、上記動作によって、誤りコード「0101」(1
0進法の「5」を表す)が、ソースワード中の第1のビ
ットにおける誤りに対して割り当てられ、誤りコード
「0110」(10進法の「6」を表す)がソースワー
ド中の第2のビットにおける誤りに対して割り当てられ
る。
【0049】したがって、上記第1および第2のビット
の両方における二重誤りに対して割り当てられる誤りコ
ードが「0011」(10進法の「3」を表す)である
ことになるが、しかしながら、この誤りコード「001
1」は上記訂正ワード中の誤りに既に割り当てられてお
り、それゆえに、関係するビット対内の第2のビットに
おける誤りに対する誤りコード「0110」の割り当て
が拒否され、誤りコード「0111」(10進法の
「7」を表す)が第2のビットにおける誤りに対して割
り当てられる。
【0050】しかしながら、これも、上記二重一義性の
条件を満たすことを可能にしないので、上記動作が繰り
返される。ソースワード中の第2のビットにおける誤り
に対して割り当てられることが可能であり、かつ、曖昧
性を生じさせない最小の誤りコードが、「1010」
(10進法の「10」を表す)であり、ソースワード中
の第1のビットにおける誤りに対して割り当てられる誤
りコード「0101」と共に、ソースワード中の第1お
よび第2のビットにおける二重誤りに関して、誤りコー
ド「1111」(10進法の「15」を表す)を生じさ
せることをチェックすることは容易である。
【0051】図3のテーブルは、本説明で考察されてい
る例における単一誤りと二重誤りとに割り当てられる誤
りコードを示している。ソースワード中のビット誤りに
対して誤りコードを割り当てる方法が、任意のmとkの
値に適用されることが可能であり、かつ、単純な計算プ
ログラムによって実行可能である。
【0052】例えば、図4のテーブルは、n=2、m=
64およびk=8である再帰的アプリケーション(recu
rrent application )の場合の、すなわち、32個のメ
モリセルがソースワード用でありかつ4個のメモリセル
が訂正ワード用である合計36個のメモリセルの場合
の、上記の仕方で決定された誤りコードを示している。
ソースワード中のビットエラーに対する誤りコードの割
り当てのための方法が、2よりも大きい値nに適用され
ることも可能である。
【0053】任意のnの値において、コードワード中の
n個の互いに隣接したビットの集合(すなわち、単一の
メモリセル内に記憶されているビット)が1回に1個ず
つ選択され、その各々に関して、誤りコードがn個の単
一誤りの各々に割り当てられる。多重の誤り(すなわ
ち、多重の誤りの部分集合)に対する誤りコードの割り
当てに関しては、2よりも大きいnの値の場合に、その
n個のビット全てにおける多重の誤りに対して割り当て
られるべき誤りコードを決定することだけでなく、1<
r<nであるときにr個のビットに関する多重の誤りの
各々に対して割り当てられるべき誤りコードの全てを決
定することも必要であるという事実が考慮されなければ
ならない。
【0054】こうして、n個のビットに関する多重の誤
りに対して割り当てられるべき誤りコードと、r個のビ
ットに関する多重の誤りに対して割り当てられるべき誤
りコードとが、n=2に関して前述したような仕方で決
定される。換言すれば、これらの誤りコードは、上記コ
ード中の他の誤りに対してその誤りコードが既に割り当
て済みであるかどうかをチェックすることと、他の誤り
に対してその誤りコードが既に割り当て済みである場合
には、個々の誤りに割り当てられる1個以上の誤りコー
ドを拒否することと、その次に、多重の誤りに割り当て
られる誤りコードが他の誤りに割り当てられていないこ
とが見い出されるまで、これらの単一誤りに割り当てら
れるべき他の誤りコードを繰り返し探索することとによ
って決定される。
【0055】例えば、n=4である場合に、4個の単一
誤りの各々に誤りコードが割り当て済みであるときに
は、4個のビット全てにおける多重の誤りに割り当てら
れるべき誤りコードだけでなく、3個のビットにおける
多重の誤りの各々と2個のビットにおける多重の誤りの
各々とに対して割り当てられるべき誤りコードをも決定
することが必要である。
【0056】図2のフローチャートを再び参照すると、
ソースワード中の全てのビット対が既に選択されてお
り、かつ、3個の誤りコードが上記多重の誤りの各々に
割り当て済みである(2個が単一誤りに対して割り当て
済みであり、かつ、1個が二重誤りに対して割り当て済
みである)場合に、ブロック100への移行が生じる。
このブロック100においては、パリティ行列として一
般的に知られているような下記の第1の行列すなわち
「マスク」、および、第2の行列すなわち「マスク」と
が規定される。
【0057】第1の行列は、第2の符号化プロセスおよ
び復号化プロセスの期間中にチェック動作が行われるべ
きソースワード中のビットのk個のサブグループを決定
するために使用されると共に、復号化プロセスの期間中
にソースワード中の単一誤りの位置を決定するために使
用され、かつ、ソースワードと訂正ワードの両方におけ
る単一誤りに対して割り当てられた誤りコードを、後述
する仕方で行列の形で記録することによって構成されて
いる。
【0058】第2の行列は、ソースワード中の二重誤り
の位置を決定するために復号化プロセスの期間中にだけ
使用されることになっており、かつ、後述する仕方で、
ソースワードと訂正ワードの両方における二重誤りに対
して割り当てられた誤りコードを行列の形で記録するこ
とによって規定される。図5および図6は、今回の説明
で示される例に関連した第1および第2の行列を別々に
含む2つのテーブルを示す。
【0059】特に、第1の行列の列には、ソースコード
中の単一誤りビットの位置に割り当てられる誤りコード
と、その次に、記憶される訂正ワード中の単一誤りビッ
トの位置に割り当てられる誤りコードとが順次に記録さ
れ、一番上の行には最下位ビットが配置され。また一方
で、第2の行列の列には、ソースワード中と訂正ワード
中の相互に関連付けられた位置にある二重誤りに割り当
てられた誤りコードが順次に記録され、一番上の行には
最下位ビットが配置されている。
【0060】ソースワード中の個々の誤りに対して割り
当てられる誤りコードが、第1の行列内において、ソー
スワードに関する第1の部分行列を規定し、また一方
で、訂正ワード中の個々の誤りに対して割り当てられる
誤りコードが、第1の行列において、訂正ワードに関す
る第2の部分行列を規定する。図5および図6におい
て、ソースワードに関する第1の部分行列は、誤りコー
ド中の論理値“1”を有するビットと、符号化および復
号化プロセスの期間中にチェック動作が行われるべきソ
ースワード中のビットのサブグループとの間に存在する
上記比率をグラフとして示すものである。
【0061】特に、第1の部分行列のi番目の行が、i
番目のチェック動作がそれに対して行われるべきi番目
のビットサブグループを形成するソースワード中のビッ
トの位置を表している。さらに詳細に述べると、i番目
のチェック動作において、i番目の行内でj番目のビッ
トが論理値“1”をとる場合にだけ、ソースワード中の
j番目のビットがi番目のサブグループに属する。
【0062】また一方で、訂正ワードに関する第2の部
分行列は、符号化プロセスの期間中は、パリティチェッ
クの結果がロードされなければならない訂正ワード中の
位置を示し、復号化プロセスの期間中は、パリティチェ
ックの結果が比較されなければならない訂正ワード中の
ビットの位置を示す。特に、符号化プロセスでは、i番
目の行の論理値“1”が、ソースワード中のi番目のサ
ブグループに対して行われるi番目のチェック動作の結
果がロードされなければならない訂正ワード中の位置を
表している。また一方で、復号化プロセスでは、ソース
ワード中のi番目のサブグループに対して行われるi番
目のチェック動作の結果が比較されなければならない訂
正ワード中のビットの位置を表している。第1および第
2の行列が、ソースワード中またはソースワードに関連
している訂正ワード中に存在する誤りを見い出すため
に、復号化プロセスにおいても使用される。
【0063】実際に、復号化プロセスでは、個々のビッ
トサブグループのチェック動作と、メモリ内で読み取ら
れた訂正ワードと復号化の訂正ワードとの間の比較動作
とが行われたときに、チェックワードが生成され、第1
および第2の行列の列の中に含まれている誤りコードと
比較される。したがって、ソースワード中もしくは訂正
ワード中に単一誤りが存在するか、または、相互に関連
付けられた位置にある二重誤りが存在する場合には、復
号化プロセスで得られたチェックワードが、第1または
第2の行列の列内に含まれている誤りコードの一つに等
しく、かつ、特に、この単一誤りまたは二重誤りに対し
て割り当てられている誤りコードに等しくなるであろ
う。
【0064】この誤りコードが既知であるときには、
(誤りコードが含まれている列に対応する、図5または
図6のテーブルの各々における「誤り位置(Error posi
tion)」の行で読み取られることが可能である)単一誤
りまたは二重誤りの位置が、直ちに判明し、したがって
訂正されることが可能である。図5の行列を参照する
と、この図に示されているように、符号化プロセスと復
号化プロセスとの両方において、第1のパリティチェッ
クが、ソースワード中の1番目と4番目と5番目と6番
目のビットから形成されているビットのサブグループに
対して行われ、第2のパリティチェックが、2番目と3
番目と4番目と6番目のビットから形成されているビッ
トのサブグループに対して行われ、第3のパリティチェ
ックが、1番目と3番目と5番目のビットから形成され
ているビットのサブグループに対して行われ、第4のパ
リティチェックが、2番目と4番目と6番目のビットか
ら形成されているビットのサブグループに対して行われ
る。
【0065】これに加えて、符号化プロセスにおいて、
第1のチェック動作の結果が訂正ワード中の第1のビッ
トにロードされ、第2のチェック動作の結果が訂正ワー
ド中の第2のビットにロードされ、第3のチェック動作
の結果が訂正ワード中の第3のビットにロードされ、第
4のチェック動作の結果が訂正ワード中の第4のビット
にロードされる。
【0066】また一方で、復号化プロセスにおいて、第
1のチェック動作の結果が訂正ワード中の第1の位置に
あるビットと比較され、第2のチェック動作の結果が訂
正ワード中の第2の位置にあるビットと比較され、第3
のチェック動作の結果が訂正ワード中の第3の位置にあ
るビットと比較され、第4のチェック動作の結果が訂正
ワード中の第4の位置にあるビットと比較される。
【0067】これに加えて、復号化プロセスの期間中に
おいて、チェックワードがゼロでない場合に、このチェ
ックワードが、上記チェックワードと同一である誤りコ
ードを識別するために、図5および図6の行列の列の中
に含まれている誤りコードと比較され、その次に、ソー
スワード中または訂正ワード中の上記単一誤りまたは二
重誤りの位置を表している上記誤りコードの10進法表
現が、上記行列の一番下の行の中に読み込まれる。こう
して、この時点で、単一誤りまたは二重誤りが訂正され
ることが可能である。
【0068】図7は、この図にPSMとして示されてい
る使用ソースワード中の誤りの訂正のために使用される
訂正回路を示す。この図に示されているように、全体と
して参照番号110で示されている訂正回路が、復号化
プロセスで得られるチェックワード(図にPCとして示
されている)を入力として受け取り、図4および図5に
示されているタイプの復号化行列に基づいて2進訂正ス
トリング(binary correction string)を出力として供
給する復号器段112を備える。ここで、上記2進訂正
ストリングは、3m/2ビットの長さを有し、かつ、複
数の三つ組のビット(a plurality of triads of bits
)から構成される。これらの三つ組のビットの各々
は、記憶されているソースワードPSM中の各々のビッ
ト対に関連付けられている。さらに、これらの三つ組の
ビットは、単一の多重レベルメモリセル内に記憶されて
おり、ここで考察されている例では互いに隣接したビッ
トの対である。
【0069】特に、上記三つ組のビットの各々では、第
1のビットが、その三つ組が関連付けられている使用ソ
ースワードPSM中の隣り合う2つのビットの一方のビ
ットにおける単一誤りに関連付けられており、第3のビ
ットが、記憶された使用ソースワードPSM中の隣り合
う2つのビットの他方のビットにおける単一誤りに関連
付けられており、かつ、これらの間に挿置されている第
2のビットが、ソースワードPSM中の隣り合うビット
の両方における二重誤りに関連付けられている。
【0070】換言すれば、図7に示されているように、
2進訂正ストリング内の第1のビットがソースワードP
SM内の第1のビットにおける誤りに関連付けられてお
り、2進訂正ストリング内の第2のビットがソースワー
ドPSM中の第1および第2のビットにおける誤りに関
連付けられており、2進訂正ストリング内の第3のビッ
トがソースワードPSM中の第2のビットにおける誤り
に関連付けられており、2進訂正ストリング内の第4の
ビットがソースワードPSM中の第3のビットにおける
誤りに関連付けられており、以下同様である。
【0071】2進訂正ストリングに関連付けられている
ソースワードPSMの1個または複数のビットが誤って
いるならば、その2進訂正ストリング中のビットの各々
も論理値“1”をとる。それゆえに、本発明の方法が、
単一誤り、または相互に関連付けられた位置にある二重
誤りを訂正することが可能なので、2進訂正ストリング
は、論理値“1”に設定されている1個のビットだけし
か持たないであろう。
【0072】これに加えて、最初に強調したように、ソ
ースワードPSM中の互いに隣り合うビットの対が単一
のメモリセル内に記憶され、2進訂正ストリング中のビ
ットとソースワードPSM中のビットとの間の一致があ
るために、複数のOR論理ゲート(論理和ゲート)の各
々の対が、単一セル内に記憶されているビット対におけ
る誤りに関連付けられている2進訂正ストリング中のビ
ット対に対して作用する。
【0073】訂正回路110は、さらに、奇数の位置に
集合されている2進訂正ストリング中の各ビット毎に一
つずつの形で、m個のOR論理ゲート114.1、11
4.2、...を含む。特に、OR論理ゲート114.
1、114.2、...が対の形に構成され、この各々
の対は、2進訂正ストリング中の各々の三つ組のビット
に対して作用する。換言すれば、OR論理ゲートの第1
の対が、2進訂正ストリングの第1のビットと第2のビ
ットと第3のビットによって形成される三つ組のビット
に対して作用し、OR論理ゲートの第2の対が、2進訂
正ストリング中の第5のビットと第6のビットと第7の
ビットによって形成される三つ組のビットに対して作用
し、以下、その他のOR論理ゲートの対に関しても同様
のことがいえる。
【0074】詳細に述べると、OR論理ゲート114.
1、114.2、...の各々の対において、第1のO
R論理ゲートが、奇数位置に置かれている対応する三つ
組のビット中の第1のビットと、偶数位置に置かれてい
るビットとの間のOR論理演算(論理和演算)を行い、
第2のOR論理ゲートが、偶数位置に置かれているビッ
トと、奇数位置に置かれているビットとの間のOR論理
演算を行う。
【0075】訂正回路110は、さらに、OR論理ゲー
ト114.1、114.2、...の各々に別々に関連
付けられているm個のEX−OR論理ゲート(排他的論
理和ゲート)116.1、116.2、...を含む。
このEX−OR論理ゲート116.1、116.
2、...は、それぞれのOR論理ゲートによって出力
として供給されるビットと、奇数位置に置かれている2
進訂正ストリング中のビットに関連付けられているソー
スワードPSM内のビットとの間でのEX−OR演算を
行う。この奇数位置に置かれている2進訂正ストリング
中のビットに対しては、OR論理ゲート自体が作用する
ようになっている。
【0076】換言すれば、第1のEX−OR論理ゲート
116.1は、第1のOR論理ゲートから出力として供
給されるビットと、ソースワードPSM中の第1のビッ
トとの間でEX−OR演算を行い、第2のEX−OR論
理ゲート116.2は、第2のOR論理ゲートから出力
として供給されるビットと、ソースワードPSM中の第
2のビットとの間でEX−OR演算を行い、以下同様の
演算を行う。
【0077】したがって、m個のEX−OR論理ゲート
116.1、116.2、...が、正しいソースワー
ドを規定し、このソースワードが図にPSCとして示さ
れている。訂正回路110の機能が上記説明から明らか
になるであろう。実際には、チェックワードPCの復号
化が、ソースワードPSM内の単一誤りの位置に対応す
る位置、または、隣り合う2つのビットにおける誤りの
位置に対応する位置において、論理値“1”に設定され
ているビットを2進訂正ストリングが有することを確実
なものにする。
【0078】したがって、OR論理ゲート114.1、
114.2、...の中の一つのOR論理ゲートの出
力、特に、2進訂正ストリング中の論理レベル“1”に
設定されているビットに対して作用する出力が、論理レ
ベル“1”に設定され、したがって、これに関連付けら
れているEX−OR論理ゲート116.1、116.
2、...が、その論理ゲートに供給されるソースワー
ドPSM中のビットの補数を出力として供給し、このよ
うにして、このビットにおける誤りを訂正することにな
る。
【0079】本発明の訂正方法の利点が、上記説明から
明らかになるであろう。最後に、本発明の保護範囲から
逸脱することなしに、本明細書で説明され例示されてい
る訂正方法に対して変更と変形とが行われることが可能
であることが明らかである。
【図面の簡単な説明】
【図1】単一誤りまたは二重誤りを訂正するために必要
である最小数の訂正ビットを含むテーブルを示す図であ
る。
【図2】本発明に係る誤りコードの割り当てに関連した
動作の流れを説明するためのフローチャートである。
【図3】本発明の方法に係る第1の使用形態に関連した
誤りコードを含むテーブルを示す図である。
【図4】本発明に係る第2の使用形態に関連した誤りコ
ードを含むテーブルを示す図である。
【図5】本発明の方法によって得られる第1の訂正行列
を示す図である。
【図6】本発明の方法によって得られる第2の訂正行列
を示す図である。
【図7】ソースワード中の誤りの訂正のために使用され
る誤り訂正回路の論理図である。

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 最小数の訂正ビットによって、n個のビ
    ットを各々が含む多重レベルメモリセル内に記憶される
    2進ワードの誤りを訂正する方法において、前記方法
    が、単一のメモリセル内に記憶される前記2進ワード中
    の各々のビットの集合毎に、 a)前記2進ワード中の他の誤りに割り当てられておら
    ず、かつ、前記2進ワード中の誤りビットの位置を表す
    個別の誤りコードを、前記ビットの集合中の各ビットの
    単一誤りに対して割り当てるステップと、 b)前記ビットの集合中の複数のビットにおける多重の
    誤りの部分集合の各々毎に、次のb1)〜b3)のサブ
    ステップを行うステップとを有しており、当該サブステ
    ップは、 b1)前記部分集合中の複数のビットにおける個別の誤
    りに対して割り当てられる誤りコードに依存している別
    々の誤りコードを、前記多重の誤りの部分集合に対して
    それぞれ割り当てるサブステップと、 b2)前記多重の誤りの部分集合に割り当てられる誤り
    コードが、前記2進ワード中の他の誤りに既に割り当て
    済みであるかどうかをチェックするサブステップと、 b3)前記多重の誤りの部分集合に割り当てられる誤り
    コードが、前記2進ワード中の他の誤りに既に割り当て
    済みである場合に、次のb31)〜b33)のさらなる
    サブステップを行うサブステップとを有しており、当該
    さらなるサブステップは、 b31)前記多重の誤りの部分集合に割り当てられる誤
    りコードと、前記部分集合中のビットにおける単一誤り
    に割り当てられる誤りコードの少なくとも一つとを拒否
    するサブステップと、 b32)前記2進ワード中の他の誤りに対して割り当て
    られていない新たな誤りコードを、前記のb31)のサ
    ブステップにて拒否された誤りコードに割り当てられる
    前記単一誤りに割り当てるサブステップと、 b33)前記多重の誤りの部分集合に割り当てられる誤
    りコードが、前記2進ワード中の他の誤りに割り当てら
    れることがなくなるまで、前記のb1)〜b3)のサブ
    ステップを繰り返すサブステップとを含むことを特徴と
    する、多重レベルメモリセル内に記憶される2進ワード
    の誤りを訂正する方法。
  2. 【請求項2】 前記のa)のステップが、 a1)他の誤りに割り当てられていない最小の誤りコー
    ドを、前記ビットの集合内で複数のビットの最初のビッ
    トにおける単一誤りに割り当てるサブステップと、 a2)他の誤りに割り当てられていない誤りコードの中
    で最小である別々の誤りコードであって、互いに連続し
    ておりかつ前記第1のビットに割り当てられる誤りコー
    ドに対して連続している別々の誤りコードを、前記ビッ
    トの集合中のその他のビットにおける単一誤りに対して
    それぞれ割り当てるサブステップとを含む請求項1記載
    の方法。
  3. 【請求項3】 前記のb1)のサブステップが、さら
    に、 b11)前記部分集合中の単一誤りの各々に割り当てら
    れる誤りコードの相互間で排他的論理和演算を行うこと
    によって得られる一つの誤りコードを、前記多重の誤り
    の部分集合に割り当てるサブステップを含む請求項1ま
    たは2記載の方法。
  4. 【請求項4】 前記のb32)のサブステップが、さら
    に、 b321)前記のb31)のサブステップにて拒否され
    た誤りコードに割り当てられる単一誤りに対して、他の
    誤りに割り当てられていない誤りコードの中の最小の誤
    りコードである新たな誤りコードを割り当てるサブステ
    ップを含む請求項1から3のいずれか一項に記載の方
    法。
  5. 【請求項5】 前記のb321)のサブステップにおい
    て、前記単一誤りに対して割り当てられる前記新たな誤
    りコードが、前記のb31)のサブステップにて拒否さ
    れた誤りコードに後続している請求項4記載の方法。
  6. 【請求項6】 前記のb)のステップが、さらに、 b4)前記多重の誤りの部分集合に割り当てられる誤り
    コードが他の誤りにまだ割り当てられていない場合に、
    前記多重の誤りの部分集合に割り当てられる前記誤りコ
    ードと、前記部分集合中の単一誤りの各々に割り当てら
    れる前記誤りコードとを記憶するサブステップを含む請
    求項1から5のいずれか一項に記載の方法。
  7. 【請求項7】 前記2進ワードが、k個のビットが割り
    当てられる訂正ワードと共にコードワードを形成するた
    めのm個のビットを有するソースワードであり、 前記訂正ワード中の前記k個のビットが、前記ソースワ
    ード中のk個のビットの部分集合に対してk回のパリテ
    ィチェックを行うことによって得られる請求項1から6
    のいずれか一項に記載の方法。
  8. 【請求項8】 前記訂正ワードに関して、前記2進ワー
    ド中の誤りビットの位置を表す個別の誤りコードを、前
    記ビットの集合中の各ビットの単一誤りに対して割り当
    てるステップが、単一のメモリセル内に記憶される前記
    訂正ワード中の各々のビットの集合毎に、 c)他の誤りに対して割り当てられていない誤りコード
    を、前記ビットの集合中の単一誤りの各々に対して割り
    当てるステップと、 d)前記ビットの集合中の各々における多重の誤りの部
    分集合毎に、前記部分集合自体の中の単一誤りの各々に
    割り当てられる誤りコードに依存している誤りコード
    を、前記多重の誤りの部分集合に対して割り当てるステ
    ップとを実行するステップを有する請求項7記載の方
    法。
  9. 【請求項9】 前記のc)のステップが、 c1)第1の論理値に設定されているi番目のビット
    と、第2の論理値に設定されているその他のビットとを
    有する誤りコードを、前記訂正ワード中のi番目のビッ
    トにおける単一誤りに割り当てるサブステップを含む請
    求項8記載の方法。
  10. 【請求項10】 前記第1の論理値が、論理値“1”で
    ある請求項9記載の方法。
  11. 【請求項11】 前記のd)のステップが、 d1)前記ビットの集合内で多重の誤りの部分集合自体
    内の単一誤りの各々に割り当てられる誤りコードの相互
    間で排他的論理和演算を行うことによって得られる誤り
    コードを、前記ビットの集合内で多重の誤りの部分集合
    の各々に割り当てるサブステップを含む請求項8から1
    0のいずれか一項に記載の方法。
  12. 【請求項12】 前記方法が、さらに、 e)前記ソースワード中のビットと前記訂正ワード中の
    ビットにおける単一誤りに対して割り当てられる誤りコ
    ードが、その列の中に順次に記録される第1の行列を規
    定すると共に、前記ソースワード中のビットにおける単
    一誤りに対して割り当てられる誤りコードが、第1の部
    分行列を規定し、かつ、前記訂正ワード中のビットにお
    ける単一誤りに対して割り当てられる誤りコードが、第
    2の部分行列を規定するステップを有し、 前記第1の部分行列の行は、前記多重の誤りの部分集合
    に割り当てられる誤りコードが、前記2進ワード中の他
    の誤りに既に割り当て済みであるかどうかをチェックす
    るためのチェック動作が行われるべき前記ソースワード
    中の前記ビットの部分集合の構成を表しており、 前記第2の部分行列の行は、前記チェック動作から得ら
    れるビットが配置されなければならない前記訂正ワード
    中の位置を表している請求項7から11のいずれか一項
    に記載の方法。
  13. 【請求項13】 前記第1の部分行列のi番目の行が、
    i番目の前記チェック動作が行われるべきi番目のビッ
    トの部分集合を形成する前記ソースワード中のビットの
    位置を表している請求項12記載の方法。
  14. 【請求項14】 前記i番目のチェック動作時に、前記
    第1の部分行列のi番目の行において、j番目のビット
    が第3の論理値をとる場合に、前記ソースワード中のj
    番目のビットがi番目の部分集合に属する請求項13記
    載の方法。
  15. 【請求項15】 前記第3の論理値が、論理値“1”で
    ある請求項14記載の方法。
  16. 【請求項16】 前記第2の部分行列のi番目の行に、
    第4の論理値に設定されている単一のビットが存在する
    ことと、前記第4の論理値に設定されている前記単一ビ
    ットの位置が、符号化プロセスにおいては、前記ソース
    ワード中のi番目の部分集合に対して行われるi番目の
    前記チェック動作から得られるビットがロードされなけ
    ればならない訂正ワード中の位置を表しており、また一
    方で、復号化プロセスにおいては、前記ソースワード中
    のi番目の部分集合に対して行われるi番目の前記チェ
    ック動作の結果がそのビットに対して比較されなければ
    ならないビットに関する、前記訂正ワード中での位置を
    表している請求項14または15記載の方法。
  17. 【請求項17】 前記第4の論理値が、論理値“1”で
    ある請求項16記載の方法。
  18. 【請求項18】 前記方法が、さらに、 f)前記ソースワード中のビットと前記訂正ワード中の
    ビットにおける前記多重の誤りに対して割り当てられる
    誤りコードが、その列の中に順次に記録される第2の行
    列を規定するステップを有する請求項12から17のい
    ずれか一項に記載の方法。
JP2000038187A 1999-02-10 2000-02-10 多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法 Pending JP2000298625A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99830070:1 1999-02-10
EP99830070A EP1028379B1 (en) 1999-02-10 1999-02-10 Method for correction of errors in a binary word stored in multi-level memory cells, with minimum number of correction bits

Publications (1)

Publication Number Publication Date
JP2000298625A true JP2000298625A (ja) 2000-10-24

Family

ID=8243272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000038187A Pending JP2000298625A (ja) 1999-02-10 2000-02-10 多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法

Country Status (4)

Country Link
US (1) US6557138B1 (ja)
EP (1) EP1028379B1 (ja)
JP (1) JP2000298625A (ja)
DE (1) DE69907622T2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785860B1 (en) * 2000-05-31 2004-08-31 Robert Patti Error-correcting code adapted for memories that store multiple bits per storage cell
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
ITMI20022669A1 (it) 2002-12-18 2004-06-19 Simicroelectronics S R L Struttura e metodo di rilevamento errori in un dispositivo
JP4647951B2 (ja) * 2004-07-29 2011-03-09 株式会社ジェイテクト 安全制御装置、安全制御システム及び通信エラー検出方法
US8458562B1 (en) * 2008-12-30 2013-06-04 Micron Technology, Inc. Secondary memory element for non-volatile memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589112A (en) * 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main 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
EP0709776B1 (en) 1994-10-31 2000-02-23 STMicroelectronics S.r.l. Method for detecting and correcting an error in a multilevel memory and memory device implementing the method
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US5745508A (en) * 1995-11-13 1998-04-28 Tricord Systems, Inc. Error-detection code
US5754566A (en) 1996-09-06 1998-05-19 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using interleaving
US5956351A (en) * 1997-04-07 1999-09-21 International Business Machines Corporation Dual error correction code
KR100266748B1 (ko) * 1997-12-31 2000-10-02 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법

Also Published As

Publication number Publication date
DE69907622D1 (de) 2003-06-12
US6557138B1 (en) 2003-04-29
EP1028379A1 (en) 2000-08-16
DE69907622T2 (de) 2004-03-25
EP1028379B1 (en) 2003-05-07

Similar Documents

Publication Publication Date Title
US6453440B1 (en) System and method for detecting double-bit errors and for correcting errors due to component failures
US6473880B1 (en) System and method for protecting data and correcting bit errors due to component failures
EP0052216B1 (en) Data storage systems
US5712861A (en) Error correcting method and decoder with improved reliability
US4589112A (en) System for multiple error detection with single and double bit error correction
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US8234539B2 (en) Correction of errors in a memory array
US20030023911A1 (en) Method for error correction decoding in an MRAM device (historical erasures)
US7107507B2 (en) Magnetoresistive solid-state storage device and data storage methods for use therewith
US20120331368A1 (en) Systems and methods for performing concatenated error correction
US6393597B1 (en) Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures
JPH11283396A (ja) メモリ装置
US6539513B1 (en) Dual functioning symbol error correction code
US6990623B2 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
JPH01158698A (ja) 半導体メモリ
US5003541A (en) Method and circuit for semiconductor memory processing of video signals with Reed-Solomon error detection
JP2000298625A (ja) 多重レベルメモリセル内に記憶される2進ワードの誤りを訂正する方法
US20200389187A1 (en) Method of training artificial intelligence to execute decoding program of low density parity check code
CN106911793B (zh) I/o优化的分布式存储数据修复方法
JPH10320222A (ja) エラーを検出するための方法および装置
EP0310220A2 (en) An apparatus useful for correction of single bit errors and detection of double bit errors in the transmission of data
US9520899B2 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
US20020174397A1 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
US6718505B1 (en) Method and apparatus for error correction in a process of decoding cross-interleaved Reed-Solomon code (CIRC)
Lala A single error correcting and double error detecting coding scheme for computer memory systems