JPH0241057B2 - - Google Patents

Info

Publication number
JPH0241057B2
JPH0241057B2 JP58006947A JP694783A JPH0241057B2 JP H0241057 B2 JPH0241057 B2 JP H0241057B2 JP 58006947 A JP58006947 A JP 58006947A JP 694783 A JP694783 A JP 694783A JP H0241057 B2 JPH0241057 B2 JP H0241057B2
Authority
JP
Japan
Prior art keywords
syndrome
data
bits
bit
error
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
JP58006947A
Other languages
English (en)
Other versions
JPS59132500A (ja
Inventor
Hidehiko Kobayashi
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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP58006947A priority Critical patent/JPS59132500A/ja
Publication of JPS59132500A publication Critical patent/JPS59132500A/ja
Publication of JPH0241057B2 publication Critical patent/JPH0241057B2/ja
Granted 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】 本発明は情報処理システム等の記憶装置におけ
る誤り訂正方式に関する。
1ビツトエラー訂正2ビツトエラー検出符号
(SEC―DED符号:Single Error Correction
Double Error Detection―シングルエラーコレ
クシヨンダブルエラーデイテクシヨン―符号)を
用いてハードエラー(固定エラー)を含む2ビツ
トまでのエラーを訂正する方式として、従来、下
記のものが知られている。
その一つは、特開昭51―137335号公報記載の欠
陥メモリ許容制御方式に開示されており、他の一
つは、特開昭56―68997号公報記載のエラー訂正
方式に開示されている。
しかしながら前者は、後述するように、チエツ
クビツトを発生するためのパリテイ発生マトリツ
クスに特別の制約があり、情報ビツトおよびチエ
ツクビツトをすべて反転してもシンドロームが変
らないような種類のパリテイ発生マトリツクスし
か用いることができないという欠点がある。
また後者は、SEC―DED符号を用いて情報ビ
ツトとチエツクビツトとをメモリに書込み、読出
し時に2ビツトエラーが発見されると、読出した
この情報ビツトおよびチエツクビツトをすべて反
転して再び同じメモリに書込みこれを再び読出し
た後、更に情報ビツトおよびチエツクビツトをも
う一度反転し、この再反転した情報ビツトおよび
チエツクビツトを用いてシンドロームを発生し、
ハードエラーを含む2ビツトまでのエラー訂正を
可能にしているが、このため処理ステツプがやや
多くなるという欠点がある。
本発明の目的は、上述の従来の欠点を除去した
方式を提供するにある。
本発明の方式は、1ビツトエラー訂正2ビツト
エラー検出符号を用いた記憶装置の誤り訂正方式
であつて、アドレス信号により指定された前記記
憶装置のアドレスから読み出され複数の情報ビツ
トおよびチエツクビツトからなるデータに対する
2ビツトエラーの検出に応答してこの読み出され
たデータのビツトを反転して読み出したアドレス
と同じアドレスに書込んだあとこのデータを再読
出しする反転書込再読出し手段と、この再読出し
されたデータから特定のシンドロームを発生させ
るシンドローム発生手段と、前記再読出しされた
データの情報ビツトのうちの前記シンドロームに
より指定されるビツト以外の情報ビツトを反転す
る訂正実行手段とを備えている。
次に図面を参照して本発明を詳細に説明する。
最初に、SEC―DED符号を用いてハードウエ
アエラーを含む2ビツトまでのエラーを訂正する
ための原理について説明する。
第1図A,BおよびCはバリテイ発生マトリツ
クスを説明するための図である。すなわち、情報
ビツトをD0〜D15の16ビツトとし、チエツクビツ
トをC0〜C5の6ビツトとすると、チエツクビツ
トC0〜C5は情報ビツトD0〜D15に基づいて第1図
Bで示した各式によつて生成される。
また、シンドロームをS0〜S5の6ビツトとする
と、これらの各ビツトS0〜S5は情報ビツトD0
D15およびチエツクビツトC0〜C5に基づいて第1
図Cで示した各式によつて生成される。
第1図Aはこれらの関係を見易くするためにマ
トリツクスの形で示したものである。例えばチエ
ツクビツトC3を第1図Bに示した式で求めるに
は、マトリツクスのC3の縦列を“1”が出る点
まで下に辿り、その点の横列(今の場合上から数
えて第4番目の横列)のデータビツトD0〜D15
うちの“1”が立つているビツトが上式に従つて
C3を作るときに排他的論理和をとるべき情報ビ
ツトとなる。また、例えば、シンドロームS3を求
めるには、S3で示した横列(第4番目の横列)の
データビツトD0〜D15およびチエツクビツトC0
C5のうちの“1”が立つているビツトが第1図
Cに示した式に従つてシンドロームS3を作るとき
に排他的論理和をとるべき情報ビツトおよびチエ
ツクビツトとなる。
第1図Aのように表示したマトリツクスを以後
パリテイ発生マトリツクスまたは単にマトリツク
スと称することにする。
次に、この第1図Aに示すパリテイ発生マトリ
ツクスを用いたエラー訂正について説明する。例
えば、書込むべき情報ビツトD0〜D15がすべて
“0”と仮定すると、第1図Aのマトリツクスを
用いた場合には、チエツクビツトC0〜C5はすべ
て“1”になる。従つて、メモリに書込むべきデ
ータは第2図の書込みデータのようになる。
この書込みデータに対して、第1図Aのマトリ
ツクスを用いてシンドロームS0〜S5を生成する
と、すべてのS0〜S5のビツトが“0”になること
が分かる。
この事実は情報ビツトD0〜D15が任意の値をと
る場合にも成立する。すなわち、ある情報ビツト
D0〜D16に対し、第1図Aのマトリツクスにより
チエツクビツトC0〜C5を生成し、これをもとの
情報ビツトD0〜D15に付加して書込みデータD0
D15C0…C5(以後D0〜C5)を生成すると、この書
込みデータD0〜D5に対するシンドロームは、常
にすべてのビツトが“0”になる(こうなるよう
に第1図Cのシンドロームの式は構成されてい
る)。
さて、第1図Aのマトリツクスを見るとさらに
次のことが分る。
例えば、情報ビツトD0だけにエラーが発生す
ると、上述のようにして今まですべて“0”であ
つたシンドロームS0〜S5は、マトリツクスのD0
の下の縦行をみてその中にある“1”に対応する
シンドロームビツトの値だけが反転する。つまり
この場合はシンドロームビツトS0,S1,S2だけが
反転して“1”となり、結局、シンドロームS0
S5は111000になることが分る。同様にして、情報
ビツトD8にエラーが生ずるとシンドロームは
001101になり、またチエツクビツトC3にエラー
が生ずるとシンドロームは00100になることが分
る。
一方、第1図AのマトリツクスはD0〜C5のい
ずれの縦行の“1”の和もすべて奇数になるよう
に構成されている。従つて、1ビツトエラーに対
して生ずるシンドロームはシンドローム中の
“1”の総数が必らず奇数になる。
このため、書込みデータ中に発生するエラーの
ビツト数を2ビツトまたはそれ以下の場合に限る
ことにすると(これ以上のエラーを発生する確率
は非常に少ない)、シンドロームを調べることに
より、エラーが全くない場合(すべてのシンドロ
ームビツトが“0”になる)、1ビツトエラーが
ある場合(シンドローム中の“1”の和が奇数に
なる)、2ビツトエラーがある場合(シンドロー
ム中の“1”の和が偶数になる)の3つの場合に
容易に識別することが可能となる。
しかも、このうちの1ビツトエラーの場合に
は、生じたシンドロームと第1図のマトリツクス
とを比較することによりD0〜D15のうちのどのビ
ツトがエラーを起したかを容易に見出すことがで
きる。例えば、シンドロームが001101になつた場
合には“1”の総数が3で奇数であるため1ビツ
トエラーであることが分かり、かつ、第1図Aの
マトリツクスのD0〜D15の下の各縦行を次々に調
べると001101のシンドロームを生ずるのはD8
エラーを起した場合にかぎられることが分る。こ
のようにして1ビツトエラーの場合には第1図A
のマトリツクスを用いて、生ずるシンドロームか
ら容易に1ビツトエラーを識別し、また訂正すべ
きエラービツトを指定することができるので1ビ
ツトエラーの訂正が可能である。
しかし、2ビツトのエラーがある場合には、こ
れを検出することはできるがどのビツトにエラー
があるかを指定できないために訂正はできない。
こうして、第1図Aのマトリツクスを用いると、
上述のようにしてこれがSEC―DED符号になつ
ていることが分る。
さて、次にこれを用いてハードエラーを含む2
ビツトエラーがある場合の誤り訂正方式について
説明する。
一例として、書込みデータが、第2図に示すよ
うにすべての情報ビツトD0〜D15が“0”で、そ
のため上述のようにすべてのチエツクビツトC0
〜C5が“1”になる場合について説明する。こ
のような書込みデータをメモリに書込み、これを
メモリから読出したときに、第2図の読出しデー
タに示すように、情報ビツトD0およびD8にエラ
ーが生じていたと仮定する。この読出しデータか
ら第1図Aのマトリクスによりシンドロームを作
ると、第2図の読出しデータシンドロームで示す
ように110101を発生する。このシンドロームは
“1”の個数が偶数であるため、上述のように、
2ビツトエラーを表わしている。従つて、これを
用いてそのままエラー訂正を行なうことはできな
い。そこで、シンドロームからこのように2ビツ
トエラーであることを検知すると、この読出しデ
ータのすべてのビツトD0〜D15を反転して第2図
に示す再書込みデータを作り、これを同じメモリ
に再書込みし、この再書込みしたデータを再読出
しする。
このような、反転、再書込み、再読出しの一連
の処理はハードエラーとソフトエラーに対して異
なつた影響を与える。今、上述のD0およびD8
2ビツトエラーの中で、D0がハードエラー(2
本のアンダーラインで示す)でD8がソフトエラ
ー(1本のアンダーラインで示す)であつたと仮
定する。こうすると、再読出ししたデータは第2
図の再読出しデータに示すように、D0に対して
は“0”を書込んだにもかゝわらず固定値“1”
として再読出しデータ中に現われる。従つて、再
読出しデータをもとの書込みデータのすべてのビ
ツトを反転したデータと見なすと、ハードエラー
のD0に関するかぎりすでに訂正されたことにな
つている。これに対してソフトエラーのD8は再
読出しデータ中に“0”として現われ、依然とし
てD8のソフトエラーだけが残つていることにな
る。
さて、第1図Aのマトリクスを用いて、この再
読出しデータに対するシンドロームを作ると、第
2図の再読出しデータシンドロームのように、
001101になるが、このシンドロームは第1図Aの
マトリツクスを参照すると、まさにD8に誤りが
あるのを指示している。従つてこの場合には、再
読出しデータによりシンドロームを作り、このシ
ンドロームの指定するビツトだけをそのままにし
て、残りのすべての再読出しデータ(但し情報ビ
ツトのみでよい)を反転すると第2図の訂正デー
タに示すようにもとの正しいデータに訂正するこ
とができる。
以上はハードエラーが1個の場合であるが、2
個ともハードエラーである場合には、再読出しデ
ータの段階で、これをもとの書込みデータのすべ
てのビツトを反転したデータと見なすと、すでに
すべてのエラーが訂正されたデータとなつている
ため、これによるシンドロームはすべて“0”に
なる。従つて上述と同様の処理を行なうとこの再
読出しデータはすべて反転され、正し訂正された
データが得られる。
さて、以上に示した方法により、反転した再読
出しデータのシンドロームを用いて、1ビツトエ
ラーのエラービツトの位置を正しく指定できるの
は、これに使用した第1図Aのパリテイ発生マト
リクスに特別の制約があるからである。
すなわち、第1図Aのマトリクスの各シンドロ
ームS0〜S5に対応する各横列中に含まれる“1”
の数はすべて偶数になつているため、ある書込み
データに対するシンドロームは、その書込みデー
タをすべて反転しても変らないという特徴をもつ
ている。このため、もとの読出しデータ中に1個
のソフトエラーしか含まれない場合には、この読
出しデータのシンドロームをとることでこのソフ
トエラーのエラービツトを指定できるが、この他
に1個のハードエラーを含む場合にも、上述のよ
うな反転処理した再読出しデータのシンドローム
をとることで1個のソフトエラーしか含まないも
との読出しデータのシンドロームと全く同じにで
きる。従つてこの再読出しデータのシンドローム
を用いて直接もとのソフトエラーのエラービツト
を指定でき、上述のような手続きによりハードエ
ラーを含む場合の2ビツトエラーの訂正が可能に
なるのである。
以上のような制約をもつ特別なパリテイ発生マ
トリツクスを使用するのが、前述の特開昭51―
137335号公報記載の方式の特徴である。
しかしながら、SEC―DEDE符号を構成でき、
しかも上述の制約条件を満足しないようなパリテ
イ発生マトリツクスを使用する必要が生ずる場合
が起る。これらのパリテイ発生マトリクスに対し
ては上述の方式すなわち再読出しデータの段階で
シンドロームを作りこれにより訂正ビツトを決定
するという方式を適用することはできない。
例えば、第3図は第1図と同様な形で1つの
SEC―DECパリテイ発生マトリクスを示すが、
第3図Aのマトリクスは各シンドロームS0〜S5
対する各横列の“1”の和が奇数であるため、
SEC―DEDパリテイ発生マトリクスとしての条
件を具えてはいるが、上述の方式を用いてエラー
訂正を行なうことはできない。
このようなマトリクスに対しても適用できる方
式として特開昭56―68997号公報記載のエラー訂
正方式がある。
これは次の如きものである。一例として前と同
様に、情報ビツトD0〜D15がすべて“0”のデー
タを用い、このデータから第3図Aのマトリクス
によりチエツクビツトC0〜C5を生成するとチエ
ツクビツトはすべて“1”になり、この結果、書
込みデータは第4図の書込みデータの如くなる。
前述と同様に、情報ビツトD0にハードエラー
が、また、D8にソフトエラーがあつたと仮定す
ると、読出しデータおよびこれより求められた読
出しデータシンドロームは、それぞれ第4図に示
すようになる。この読出しデータシンドロームの
“1”の数は偶数であるため、これより2ビツト
エラーであることが識別される。
そこで、読出しデータのすべてのビツトを反転
して再書込みデータを作り、これにより同じメモ
リに再書込みを行ない、これを再読出しする。こ
の再読出しデータのすべてのビツトをもう一度反
転して再読出し反転データを作ると、第4図に示
すように、この反転データは、ハードエラーが除
かれてソフトエラーだけがそのまま残つた形のデ
ータとなる。従つて、この反転データからシンド
ロームを作ると、第4図の再読出し反転データシ
ンドロームで示すように011010となり、第3図A
のマトリツクスを参照することにより、このシン
ドロームを発生するのは情報ビツトD8がビツト
エラーであるときであることが識別され、このビ
ツトD8を反転することで2ビツトエラーの訂正
が完了する。
この方式は、前述の方式とちがつてすべての
SEC―DEDパリテイ発生マトリクスに対して適
用できるが、一方、上述のように、再読出しデー
タの段階でシンドロームをとることができず、こ
れをもう一度反転し、ハンドエラーを除去した無
反転のデータとしてからシンドロームを取らなけ
ればならないという欠点を有している。
これに対して、本発明の方式は、すべてSEC―
DEDパリテイ発生マトリクスに対して適用可能
であり、しかも、再読出しデータの段階でシンド
ロームをとり、この再読出しデータの反転とシン
ドロームによる誤り訂正とを並行に行なうことが
可能にするものである。
次に、本発明の原理を、一例として第3図Aの
パリテイ発生マトリクスを使つた場合について説
明する。
上述の場合と同様に、一例として情報ビツト
D0〜D15がすべて“0”のデータを用い、これか
ら第3図Aのマトリクスによりチエツクビツト
C0〜C5を生成すると、上述の場合と同様にチエ
ツクビツトはすべて“1”になりこの結果、書込
みデータは第5図の書込みデータの如くなる。
上述と同様に、情報ビツトD0にハードエラー
が、また、D8にソフトエラーがあつたと仮定す
ると、読出しデータおよびこれより求められたシ
ンドロームは第5図に示す読出しデータおよび読
出しデータシンドロームのようになる。
このシンドロームの“1”の個数が偶数である
ため、これより2ビツトエラーであることが識別
される。
そこで、読出したデータのすべてのビツトを反
転して再書込みデータを作り、これにより同じメ
モリに再書込みを行ないこれを再読出しする。こ
こまでの処理は上述の場合と全く同様である。
さて、この再読出しデータは、第5図に示すよ
うに、エラーを含まないものと書込みデータを反
転したデータと比較すると、ソフトエラーのあつ
たD8のビツトだけが異なつている。
一方、この再読出しデータから第3図Aのマト
リクスを用いてシンドロームS0〜S5を作ると、第
5図の再読出しデータシンドロームで示すように
100101となる。このシンドロームを用いて第3図
Aのマトリクスから、前述と同様な方法により、
このシンドロームの指定するエラービツトを求め
ると、D9となり、上述のD8を指示しない。
これは次の理由による。
第3図Aのマトリクスの各シンドロームに対す
る横列の“1”の和はすべて奇数の9個になつて
いる。このため、D0〜C5のすべてのデータを反
転するとシンドロームも反転してしまうのであ
る。
実際に、上述の再読出しデータシンドローム
100101を反転した第5図に示す修正シンドローム
011010を作ると、これは正にD8のビツトを指定
する所望のシンドロームとなつていることが分
る。
以上のことから次の点が明らかである。
すなわち、第3図に示すような各シンドローム
S0〜S5に対する横列の“1”の個数がすべて奇数
であるようなパリテイ発生マトリツクスを用い
て、再読出しデータ(反転データ)に対するエラ
ービツトを指定するシンドロームを作るには、再
読出しデータに対する通常のシンドロームを作
り、これを反転すればよい。
こうして、第5図に示すように、再読出しデー
タシンドローム100101から、これを反転した修正
シンドローム011010を作り、この修正シンドロー
ムが指定するデータビツト(現在の場合情報ビツ
トD8)以外の各ビツトをすべて反転することに
より正しくソフトエラーを訂正できる。
以上のように、本方法を用いると再読出しデー
タ(反転データ)から直接シンドローム(修正シ
ンドローム)を作り、これを用いて、このシンド
ロームの指定するビツトだけをそのままとし、他
の再読出しデータの情報ビツトをすべて反転する
ことにより正しくエラー訂正された情報ビツトを
得ることができる。
本方式を更に一般化した場合例として、次に、
第6図に示すパリテイ発生マトリクスを用いる場
合について説明する。
上述の場合と同様に、一例として情報ビツト
D0〜D15をすべて“0”とすると、第6図Aに示
すパリテイ発生マトリクスから求めたチエツクビ
ツトC0〜C5はすべて“1”になり、書込みデー
タは第7図の書込みデータのようになる。前記と
同様に、D0にハードエラー、D8にソフトエラー
があつたと仮定すると、読出しデータは同図のよ
うになり、これより求めた読出しデータシンドロ
ームは110101となる。この“1”の個数が偶数で
あることから、2ビツトエラーであることが識別
される。そこで、前述と同様に、読出しデータを
反転して再書込みデータとし、同じメモリに書き
込む。これを再読出しして再読出しデータを作る
と、第7図のように、もとの正しい書込みデータ
を反転したものと較べてソフトエラービツトの位
置D8だけが異なるデータとなる。
この再読出しデータから第6図Aのマトリツク
スを用いて再読出しデータシンドロームを作ると
100011になる。これは第6図Aのマトリクスによ
るとD4のビツトを指示するシンドロームとなり
エラービツトD8を正しく指示しない。
このマトリクスの場合の修正シンドロームは次
のようにして求められる。
すなわち、第6図Aに示すマトリクスのシンド
ロームS0〜S5の各横列の“1”の個数はそれぞ
れ、S0に対応する列は9(奇数)、S1に対応する列
は10(偶数)、S2に対応する列は9(奇数)、S3に対
応する列は9(奇数)、S4に対応する列は9(奇
数)、S5に対応する列は8(偶数)となつている。
前述のように、この横列の“1”の和が偶数にな
るシンドロームについては、すべてのデータを反
転してもシンドロームビツトは不変であり、一方
奇数になるシンドロームビツトはデータの反転と
ともに反転する。従つて、第6図Aに示すマトリ
クスの場合には、データが反転すると、S0,S2
S3,S4のビツトが反転するので、反転データから
作つたシンドロームS0〜S5(100011)の中のS0
S2,S3,S4のビツトだけを反転して修正シンドロ
ーム001101を作ると、第6図Aのマトリクスから
明らかなように、この修正シンドロームは正しく
エラービツトD8を指定する。
従つて、上述と同様に、この修正シンドローム
の指示するビツト(現在の場合D8)だけをその
ままとし、他の再読出しデータを反転すれば正し
いものと書込みデータが得られる。勿論これは情
報ビツトD0〜D15だけに適用し修正シンドローム
の指示する情報ビツトだけをそのままとし、他の
再読出しデータの情報ビツトを反転すればよい。
以上に述べた方式は、SEC―DEDパリテイ発
生マトリクスの構成に関係なく一般的に適用でき
ることは明らかである。こうして、SEC―DED
パリテイ発生マトリクスに何等制約を加えること
なく、しかも再読出しデータ(反転データ)の段
階でシンドロームを求めエラー訂正を行なえる誤
り訂正方式が得られることになる。
なお、第7図において書込みデータの情報ビツ
トD0〜D15としてすべてが“0”の場合について
説明したが、これがすべて“1”の場合を第8図
に、また“1010…10”で2個ハードエラーを含む
場合を第9図に、さらに“0101…01”の場合を第
10図に示す。これらに用いたパリテイ発生マト
リクスは第6図Aに示したものであり、従つて上
述と同様に再読出しデータシンドロームS0〜S5
中のS0,S2,S3およびS4のビツトだけを反転して
修正シンドロームを作つている。また、ハードエ
ラー(2本のアンダーラインで示す)およびソフ
トエラー(1本のアンダーラインで示す)のビツ
ト位置はそれぞれの図について変えてあるが、こ
れらの図から以上に述べた方式の原理により所望
のエラー訂正を行えるのが明らかに理解できるで
あろう。
なお、本方式で通常シンドロームから修正シン
ドロームを作るには、上述のように、パリテイ発
生マトリクスの各シンドロームビツトに対する横
列の“1”の和が奇数になるビツトについてだけ
通常シンドロームのビツトを反転すればよい。
以上で本方式の原理は明らかとなつたので、次
に、本発明の一実施例を図面に参照して詳述す
る。
第11図は本発明の一実施例を示すブロツク図
である。
本実施例は、書込みレジスタ1、SEC―DED
符号発生回路2、選択回路3、メモリ回路4、読
出しレジスタ5、シンドローム発生回路6、デコ
ード回路7、訂正実行回路8および制御回路9を
含んでいる。
さて、本実施例の動作は下記の通りである。
書込みデータは第7図〜第10図で説明したよ
うにD0〜D15の情報ビツトからなるものとしてこ
れらの情報ビツトD0〜D15はライン1000を介
してレジスタ1に格納される。
SEC―DED符号発生回路2は、第6図に示し
たSEC―DEDパリテイ発生マトリクスに従つて、
レジスタ1に格納された情報ビツトD0〜D15から
チエツクビツトC0〜C5を生成し(つまり第6図
Bで示す式に基づいてチエツクビツトC0〜C5
生成し)、これを情報ビツトD0〜D15に付加して
書込みデータD0〜C5とし、ライン2000から
選択回路3に出力する。
選択回路3は、制御回路9からライン9003
を介して供給される制御信号により、通常の書込
みの場合にはライン2000の側の入力を選択
し、上述の書込みデータD0〜C5をライン300
0を介してメモリ回路4に書込データ入力として
供給する。
一方、メモリ回路4には、書込むべきメモリア
ドレスを指定する信号がライン9000を介して
制御回路9に供給され、さらに回路9からライン
9004を介してメモリアドレス指定信号として
供給される。また制御回路9はライ9005を介
してメモリ回路4を書込状態に制御する。
この結果、情報ビツトD0〜D15にチエツクビツ
トC0〜C5が付加された書込みデータD0〜D5はメ
モリ回路4の中の指定されたメモリアドレスに書
込まれる。
次に、メモリ回路4から書込んだデータを読出
す場合には以下のようになる。
読出すべきメモリアドレスを指定する信号をラ
イン9000を介し、また読出しを指定する信号
をライン9001を介して制御回路9に供給し、
さらにライン9002を介して制御回路9に起動
パルスを供給する。
この結果、制御回路9は以下に示す読出しシー
ケンスを開始する。
まず、指定されたメモリアドレスをライン90
04を介して回路4に供給するとともに、ライン
9005を介して回路4を読出し状態にセツトす
る。この結果、指定されたメモリアドレスの内容
が前述の第7図〜第10図で示した読出しデータ
としてライン4000を介して読出され、制御回
路9からライン9006を介して供給される制御
信号により読出しレジスタ5に格納される。
レジスタ5の内容は読出しデータとしてライン
5000を介してシンドローム発生回路6に供給
される。
回路6は、供給された読出しデータにより第6
図に示したSEC―DEDパリテイ発生マトリクス
に基づいてシンドロームS0〜S5を発生する。すな
わち、供給されたレジスタ5の出力である読出し
データD0〜C5を用いて第6図Cに示した各式に
よりシンドロームの各ビツトS0〜S5を発生する。
もし、シンドロームS0〜S5の中に“1”が含ま
れておりその個数が偶数の場合には、前述のよう
に供給されたデータに2ビツトエラーがあること
を表わし、この情報はライン6000を介して制
御回路9に通報される。
最初に、上述のシンドロームS0〜S5の中に
“1”が全く含まれていないか、または含まれる
“1”の個数が奇数である場合について説明する。
この場合には読出しデータにはエラーが全くな
いか、または、1個のエラーしかない場合なので
通常のSEC―DED符号方式を適用して容易にエ
ラー訂正を行なうことができる。すなわち、上述
のようにして発生したシンドロームS0〜S5はライ
ン6001を介してデコード回路7に供給され、
ここでシンドロームS0〜S5はデコードされて、エ
ラーした場合に該シンドロームを発生するような
ビツト位置に“1”を有する訂正信号となり、ラ
イン7000を介して出力される。すなわち、ラ
イン6001から供給されたシンドロームS0〜S5
が例えば100110の場合には、第6図Aのマトリク
スより、このようなシンドロームを発生するのは
情報ビツトD9にエラーがある場合であり、この
場合の訂正信号出力はD9の位置だけが“1”で
他の情報ビツトD0〜D8およびD10〜D15にはすべ
て“0”を有する出力が訂正信号となりライン7
000を介して訂正実行回路8に供給される。一
方、訂正実行回路8には、読出しレジスタ5から
読出しデータの各情報ビツトD0〜D15がライン5
000を介して供給されており、この各情報ビツ
トとこれに対応する前記訂正信号の各ビツトと
は、回路8において排他的論理和によつて合成さ
れる。この結果、情報ビツトの中のシンドローム
S0〜S5によつて指定されたビツト位置にあるビツ
トだけが反転され、訂正が行なわれてライン80
00を介して読出されたデータとして出力され
る。
シンドロームS0〜S5がすべて“0”の場合に
は、デコード回路7の出力の各ビツトもすべて
“0”になり、読出しレジスタ5の出力の中の情
報ビツトがそのまま回路8およびライン8000
を介して読出されたデータとして出力される。
以上に用いるデコード回路7は、シンドローム
S0〜S5の6ビツトの必要な各組合せに対し、第6
図Aのマトリクスから出力すべき16ビツトの各信
号が定まるので、例えば26=64個のメモリアドレ
スをもち、各各メモリアドレスごとに16ビツトの
容量を有するROMの、S0〜S5の6ビツトで定ま
る各メモリアドレスごとに、この出力すべき16ビ
ツトの信号を書き込むことにより容易にROMに
よるデコード回路として実現できる。
さて、以上は、最初に読出された読出しデータ
D0〜C5によるシンドロームS0〜S5の中に含まれ
る“1”の個数が0か奇数であるため、読出しデ
ータD0〜C5の中には1ビツト以下のエラーしか
含まれないと判定された場合の動作であるが、上
述の“1”の個数が偶数(0を含まない)である
場合には2ビツトのエラーを含むと判定され、こ
の情報は前述のようにライン6000を介して制
御回路9に通報され、これが2ビツトエラーに対
する制御回路9の処理について起動する。
以下、この場合の処理について詳述する。
読出しレジスタ5の現在の内容、すなわち、第
7図〜第10図で読出しデータとして表示された
データD0〜C5に対し、そのすべてのビツトが反
転された反転出力が、レジスタ5からライン50
01を介して取り出され、選択回路3の一方の入
力として供給されているが、制御回路9は、2ビ
ツトエラーに対する処理が起動されると、ライン
9003を介して制御信号を選択回路3に供給
し、ライン5001側のこの反転出力を入力とし
て選択するように切替え、また、ライン9005
を介してメモリ回路4に対して書込みを指定す
る。なお、ライン9004のメモリ回路4に対す
るアドレス指定信号は前と同じアドレスを指定す
る。
この結果、読出しデータD0〜C5のすべてのビ
ツトを反転したデータが、再書込みデータとして
メモリ回路4の同じメモリアドレスに再書込みさ
れる。
制御回路9は、この再書込みがすむと、直ちに
ライン9005を介してメモリ回路4を読出し状
態に制御し、再書込みしたデータを直ちに再読出
しして読出しレジスタ5に格納する。これが第7
図〜第10図で示した再読出しデータとなる。
この再読出しデータは、第7図〜第10図で説
明したように、読出しデータ中に含まれていたエ
ラーの中のハードエラーだけを訂正した反転デー
タとなつている。従つて、もとの読出しデータの
中にハードエラーが含まれている場合には、必ら
ず1ビツト以下のエラーしか含まれないデータを
反転したものとなつている。このため、現在読出
しレジスタ5の中に含まれている再読出しデータ
は、これを用いて前述の修正シンドロームを生成
し、これにより指定されるビツト位置のビツトだ
けをそのままとし、残りの他のビツトをすべて反
転すればエラー訂正された出力を得ることが可能
なデータである。
さて、修正シンドロームを作るには、前述のよ
うに通常のシンドロームの特定のビツト位置だけ
を反転すればよいので、容易に実現可能である。
第12図は本実施例のシンドローム発生回路6
に含まれるシンドローム修正回路部の詳細を示し
た回路図である。
回路6は、通常シンドローム発生回路60とシ
ンドローム修正回路61とを含む。
通常シンドローム発生回路60は、現在の例で
は第6図Cに示す式により入力データD0〜C5
らシンドロームS0〜S5を発生する公知のシンドロ
ーム発生回路であり、こうして発生された通常の
シンドロームS0〜S5の各ビツトはそれぞれライン
S―0,S―1,S―2…S―5を介して出力さ
れる。
SEC―DEDパリテイ発生マトリクスとして第
6図Aを用いる場合に修正シンドロームを作るに
は、前述したように、S0,S2,S3およびS4の各ビ
ツトを反転すればよい。これは第12図に示すよ
うにシンドロームの反転すべきビツトに対応する
各ラインに排他的論理和回路を挿入し、これら排
他的論理和回路の一方の入力として、回路60の
対応する出力を接続し、他方の入力として制御回
路9からの再読出し制御線9007を接続する。
制御線9007は回路9により通常の読出し時に
は論理値“0”をとり、再読出し時には論理値
“1”をとるように制御される。
この結果、前述の通常の読出し時には回路6は
回路60で発生した通常のシンドロームをそのま
ま出力し、前述したような通常データに対するエ
ラービツト位置を指定するシンドロームとしてデ
コード回路7に供給される。
また、現在のように、再読出し時には、回路6
は回路60で発生した通常のシンドロームを、そ
の中のS0,S2,S3およびS4の各ビツトを反転する
ことにより修正シンドロームに変換し、デコード
回路7に供給する。この結果、現在、読出しレジ
スタ5に格納されている反転データ(再読出しデ
ータ)から、エラービツト位置を正しく指定する
シンドロームが得られ、それが回路7に供給され
ることになる。従つて、回路7の出力には、前述
と同様に、エラービツト位置のビツトだけが
“1”で他は“0”であるような出力が発生する。
次に、本実施例における訂正実行回路8の回路
例を第13図に示す。
各情報ビツトD0〜D15対応に、3入力排他的論
理和回路が設けられていて、該回路のそれぞれ3
個の入力には、デコード回路7の対応するビツト
出力(ライン7000)と読出しレジスタ5の対
応するビツト出力(ライン5000)と、前記再
読出し制御線9007とがそれぞれ供給されてい
る。
この結果、通常の読出し時には、誤り訂正回路
8は、読出しレジスタ5の情報ビツトD0〜D15
中の、デコード回路7で“1”を出力したビツト
位置のビツトだけが反転されて前述の訂正が行な
われる。
また、現在の再読出し時には、読出しレジスタ
5に格納された情報ビツトD0〜D15の中の、デコ
ード回路7で“1”を出力したビツト位置のビツ
トだけが反転されず、他のすべての情報ビツトが
反転されるので、回路8の出力8000には、前
述したように、正しくエラー訂正された出力が現
れることになる。
以上述べたように、本実施例に従うと、パリテ
イ発生マトリクスに制約なく、再読出しデータを
用いてシンドロームを発生させ、ハードエラーを
含む2ビツトまでのエラーを訂正できる。しかも
再読出しデータの反転はシンドロームにより誤り
訂正と並行して行なうことができる。また再書込
みデータは読出しレジスタ5のフリツプフロツプ
回路の反転出力をそのまま使用して行なえるので
特別の反転回路は不要である。
次に、上述の実施例と一部が異なる別の実施例
を第14図にブロツク図として示す。
上述の実施例と異なる点は、新たに選択回路1
0を設けたこと、および、それにともなつて訂正
実行回路8′として3入力ではなく2入力の排他
的論理和回路を用いこれを簡単化したことの2点
である。
選択回路10は再読出し制御線9007の制御
により、正常読出し時にはライン5000を介し
て供給される読出しレジスタ5の正常出力を選択
して誤り訂正回路8′に供給し、また再読出し時
にはライン5001を介して供給される読出レジ
スタ5の反転出力を選択して誤り訂正回路8′に
供給する。従つて、正常読出し時には、レジスタ
5の中の情報ビツトD0〜D15のうちデコード回路
7で“1”を出力したビツト位置に相当するビツ
トだけが反転して訂正され、また再読出し時に
は、レジスタ5の中の情報ビツトD0〜D15のうち
のデコード回路7で“1”を出力したビツト位置
に相当するビツトだけが反転せず(2回反転され
てもとに戻り)、他のすべての情報ビツトは反転
されるので同様に正しく訂正が行なわれる。
なお、以上のいずれかの実施例においてもSEC
―DEDパリテイ発生マトリクスとして第6図A
を用いる場合について説明したが、これは一例を
示したもので本発明は何もこれに限定されるもの
ではない。
また、第12図のシンドローム発生回路6およ
び第13図の訂正実行回路8もその一回路例を示
すもので本発明は何もこれに限定されるものでは
ない。
以上述べたように、本発明を用いると、SEC―
DED符号を用いて2ビツトまでの誤り訂正(2
ビツトのハードエラーまたは、1ビツトのハード
エラー+1ビツトのソフトエラーまたは、1ビツ
トのソフトエラーの訂正)が可能となる。本発明
に用いるSEC―DEDパリテイ発生マトリクスに
は制約がなく、しかも反転したままの再読出しデ
ータを用いて直接シンドロームを発生し、この再
読出しデータの再反転はシンドロームによる誤り
訂正と並行して行なうことを可能にする。
これにより柔軟性に富んだ高効率の誤り訂正方
式を提供できる。
【図面の簡単な説明】
第1図A,B,Cはパリテイ発生マトリクスを
説明するための図、第2図はハードエラーを含む
2ビツトエラーがある場合の誤り訂正方式を説明
するための図、第3図A,B,Cは第2のパリテ
イ発生マトリクスを説明するための図、第4図は
第3図のパリテイ発生マトリクスを用いる従来例
の誤り訂正方式を説明するための図、第5図,第
7図,第8図,第9図,第10図は本発明の誤り
訂正方式の原理を説明するための図、第6図A,
B,Cは第3のパリテイ発生マトリクスを説明す
るための図、第11図は本発明の一実施例を示す
ブロツク図、第12図は前記実施例で用いるシン
ドローム発生回路に含まれるシンドローム修正回
路部の回路例を示す図、第13図は前記実施例に
用いる訂正実行回路の回路例を示す図、および第
14図は本発明の別の実施例を示すブロツク図で
ある。 図において、1…書込みレジスタ、2…SEC―
DED符号発生回路、3…選択回路、4…メモリ
回路、5…読出しレジスタ、6…シンドローム発
生回路、7…デコード回路、8,8′…訂正実行
回路、9…制御部、10…選択回路、60…通常
シンドローム発生回路、61…シンドローム修正
回路。

Claims (1)

  1. 【特許請求の範囲】 1 1ビツトエラー訂正2ビツトエラー検出符号
    を用いた記憶装置の誤り訂正方式において、 アドレス信号により指定された前記記憶装置の
    アドレスから読み出され複数の情報ビツトおよび
    チエツクビツトとからなるデータに対する2ビツ
    トエラーの検出に応答してこの読み出されたデー
    タのビツトを反転して読み出したアドレスと同じ
    アドレスに書込んだあとこのデータを再読出しす
    る反転書込再読出し手段と、 シンドローム発生に使用されるデータおよびチ
    エツクビツトの合計がそれぞれ奇数の場合はシン
    ドロームを反転させて、偶数の場合にはそのまま
    にしてシンドロームを発生させるシンドローム発
    生手段と、 前記再読出しされたデータの情報ビツトのうち
    の前記シンドロームにより指定されるビツト以外
    の情報ビツトを反転する訂正実行手段とを備えた
    ことを特徴とする2ビツト誤り訂正方式。
JP58006947A 1983-01-19 1983-01-19 2ビツト誤り訂正方式 Granted JPS59132500A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58006947A JPS59132500A (ja) 1983-01-19 1983-01-19 2ビツト誤り訂正方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58006947A JPS59132500A (ja) 1983-01-19 1983-01-19 2ビツト誤り訂正方式

Publications (2)

Publication Number Publication Date
JPS59132500A JPS59132500A (ja) 1984-07-30
JPH0241057B2 true JPH0241057B2 (ja) 1990-09-14

Family

ID=11652420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58006947A Granted JPS59132500A (ja) 1983-01-19 1983-01-19 2ビツト誤り訂正方式

Country Status (1)

Country Link
JP (1) JPS59132500A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167596A (ja) * 1999-12-09 2001-06-22 Toshiba Corp 不揮発性半導体記憶装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058115A (en) * 1989-03-10 1991-10-15 International Business Machines Corp. Fault tolerant computer memory systems and components employing dual level error correction and detection with lock-up feature
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167596A (ja) * 1999-12-09 2001-06-22 Toshiba Corp 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
JPS59132500A (ja) 1984-07-30

Similar Documents

Publication Publication Date Title
EP0332662B1 (en) Byte write error code method and apparatus
EP0569716A2 (en) De-interleave circuit for regenerating digital data
JP2001351398A (ja) 記憶装置
JP3272903B2 (ja) 誤り訂正検出回路と半導体記憶装置
JPS63197123A (ja) エラ−訂正及びチエツク装置
US6408417B1 (en) Method and apparatus for correcting soft errors in digital data
JPH10207726A (ja) 半導体ディスク装置
JPH0260013B2 (ja)
JPH0421944B2 (ja)
JPH0241057B2 (ja)
JP3313056B2 (ja) Cd−romドライブのデコーディング装置における誤り訂正のためのメモリ読出し方法及び回路
JPS6129024B2 (ja)
KR930000994B1 (ko) Cd-rom 데이타 버퍼링 및 독출용 어드레스 발생방법 및 회로
US6038692A (en) Error correcting memory system
JP3813337B2 (ja) 消失誤り訂正方法とその装置
KR0140382B1 (ko) Dat의 오류정정을 위한 어드레스 발생회로
US20050055622A1 (en) Device and method for generating error correction code
JP3123855B2 (ja) メモリ装置のパトロール制御回路
JPH0816488A (ja) 電子ディスク装置
JPH0746517B2 (ja) 半導体メモリ及びそのテスト方法
JPH043525A (ja) 符号誤り訂正装置
JP2518333B2 (ja) 記憶装置
JPH08129510A (ja) メモリデータ訂正装置
JPS63231553A (ja) 部分書込み方式
JPH0555926A (ja) 誤り訂正装置