JPH0153940B2 - - Google Patents

Info

Publication number
JPH0153940B2
JPH0153940B2 JP58186105A JP18610583A JPH0153940B2 JP H0153940 B2 JPH0153940 B2 JP H0153940B2 JP 58186105 A JP58186105 A JP 58186105A JP 18610583 A JP18610583 A JP 18610583A JP H0153940 B2 JPH0153940 B2 JP H0153940B2
Authority
JP
Japan
Prior art keywords
data
output
timing
error
signal
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
Application number
JP58186105A
Other languages
Japanese (ja)
Other versions
JPS6077529A (en
Inventor
Sadayuki Narisawa
Norio Tomizawa
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP58186105A priority Critical patent/JPS6077529A/en
Priority to US06/643,951 priority patent/US4646303A/en
Priority to EP84306086A priority patent/EP0139443B1/en
Priority to DE8484306086T priority patent/DE3483938D1/en
Publication of JPS6077529A publication Critical patent/JPS6077529A/en
Publication of JPH0153940B2 publication Critical patent/JPH0153940B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1806Pulse code modulation systems for audio signals
    • G11B20/1813Pulse code modulation systems for audio signals by adding special bits or symbols to the coded information

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

この発明はデイジタルオーデイオデイスク
(DAD)プレーヤにおいて用いられるデータ誤り
検出・訂正回路に関する。 〔背景技術〕 DADシステムにおいては、デイスクに最初か
らある欠陥、取扱い中に生じたデイスクの欠陥、
再生メカニズムの変動の乱れ等の原因で、データ
誤りが発生する。このデータ誤りを放置しておく
ことは、音楽信号再生上極めて好ましくなく、し
たがつて、DADプレーヤにおいては、このデー
タ誤りを検出し、訂正する回路が不可欠である。 さて、このデータ誤りを検出する方法として、
リードソロモン符号による方法が知られている。
以下、この方法について説明する。まず、デイス
クには音楽信号データと共に、予め誤り訂正用デ
ータを記録する。第1図はデイスクに各データが
記録されているところを示す概略図であり、この
図に示す例においては、1フレームFr(誤り訂正
のためのデータ単位)が信号データW0〜W27(各
8ビツト)と、誤り訂正用データP0〜P3(各8ビ
ツト)と、同期パターンSYNCとから構成されて
いる。(なお、実際のデイスクでは、これらに加
えてコントロールデータ、前記誤り訂正用データ
PO〜P3とは更に別の誤り訂正用データが、記録
されているが、ここでは説明を簡略化するために
省略している。また、これら各データはEFM
(Eight to Fourteen Modulation)方式により変
調されてデイスクに記録されている。)そして、
誤り訂正用データP0〜P3の各値は各々次の式を
満足するように設定されている。 なお、この(1)式におけるαはF(X)=X8+X4
+X3+X2+1を法とする原始元である。 次に、再生時においては第1図に示す各データ
W0〜W27およびP0〜P3を各々読出し、この読出
した各データに基づいて次の演算によつてシンド
ロームS0〜S3を求める。 そして、このシンドロームS0〜S3の各値に基
づいて、以下のようにしてデータW0〜W27、P0
〜P3の誤りの有無の判定、検出および訂正を行
う。 なお、このリードソロモン符号法においては信
号データW0〜W27と、誤り訂正用データP0〜P3
とを全く区別しない。すなわち、誤り訂正用デー
タP0〜P3は、実質的には信号データW0〜W27に
続く仮想的な信号データW28〜W31と見倣すこと
ができ、したがつて誤り訂正用データP0〜P3の
誤りも検出することができる。そして、データ
P0〜P3の誤りは各々、データW28〜W31の誤り
として認識し得る。例えば、30番目のデータW29
が誤りであると検出された場合は、誤り訂正用デ
ータP1が誤つていることを意味する。 誤りの有無の判定 なる式が成立するか否かを調べる。成立すれ
ばデータW0〜W27、P0〜P3のいずれにも誤り
がなく、成立しなければデータW0〜W27、P0
〜P3の内の1つあるいは複数に誤りがある。 単一誤り検出 いま板の第j番目のデータWjのみに誤りが
あるとすると、 なる式が成立する。ただし、この式においてEj
は正しいデータWj(以下、この正しいデータ
Wjを<Wj>と記す)とデイスクから読み出さ
れたデータWjとの差(すなわち、データ誤差
であり、誤りパターンともいう)である。この
(4)式から、次の式が得られる。 S12=S0・S2 ……(5) S22=S1・S3 ……(6) また、データWjの誤りがあれば、 S0≠0 ……(7) S1≠0 ……(8) S2≠0 ……(9) S3≠0 ……(10) なる式が成立する。したがつて、上記(5)〜(10)式
が成立するか否かを調べ、いずれも成立すれ
ば、データWjのみに誤りがあることが検出さ
れる。この場合、そのデータ誤差Ejはシンドロ
ームS0である。 単一誤りの訂正 前記(4)式から、 S1/S0=αj ……(11) なる式が導かれる。したがつて、この(11)式左辺
の演算を行い、その演算結果を数値変換するこ
とにより、誤りデータの位置jが検出される。
そこで、デイスクから読み出されたデータWj
にデータ誤差Ej=S0を加算し、正しいデータ
<Wj>を得る。 Wj+Ej=<Wj> ……(12) 二重誤りの検出 いま仮にデータWkとWlとに誤りがあるとす
ると、 なる式が成立する。ただし、この(13)式にお
いて、Ek、Elは各々データWk、Wlのデータ
誤差である。この(13)式から次の式が得られ
る。 αk+αk=S1・S2+S0・S3/S12+S0・S2 ……(14) αk・αl=S22+S1・S3/S12+S0・S2 ……(15) また、この例の場合、 0≦k、l≦31 ……(16) k≠l ……(17) なる式が成立する。なおここで、k、l=28〜
31は前述したように誤り訂正用データP0〜P3
に誤りがある場合である。 しかして、上記第(14)式、第(15)式の右
辺の値をシンドロームS0〜S3から求め、次い
で上記(14)〜(17)式を満足するk、lの組
を求める。このk、lの組が求まれば、データ
Wk、Wlに各々誤りがあることになり、一方、
求まらず、かつ誤りがあり、しかもそれが単一
誤りでないならば、データW0〜W27、P0〜P3
に3個以上であることになる。なお、シンドロ
ームS0〜S3によつては、三重誤り以上の誤り
データ位置の検出は不可能である。 二重誤りの訂正 データWk、Wlに各々誤りがある場合、各デ
ータ電気Ek、Elを各々次式に基づいて求める。 Ek El=1/αk+αlS1+αl・SO S1+αk・SO ……(18) 次に、上記の過程によつて検出されたK、l
の値に対応するデータWk、Wlに各々、データ誤
差Ek、Elを加算し、 Wk+Ek=<Wk> ……(19) Wl+El=<Wl> ……(20) これにより、正しいデータ<Wk>、<Wl>を得
る。 以上がリードソロモン符号によるデータ誤りの
検出および訂正方法である。 (発明の目的) この発明は上述したリードソロモン符号による
データ誤り、等に二重誤りの検出および訂正を短
時間で、かつ、最小限のハードウエア構成によつ
て実行することができるデータ誤り検出・訂正回
路を提供することを目的としている。 〔発明の特徴〕 この発明は、次の各構成要件に備えたことを特
徴としている。 (a) データ誤りを含むデータが出力されるデータ
バスと、 (b) データ誤り検出・訂正のための内部バスと、 (c) データバスに出力されたデータから前記リー
ドソロモン符号のシンドロームを演算し所定タ
イミングで前記内部バスへ出力するシンドロー
ム演算手段と、 (d) 前記内部バスに生じたシンドロームを含むデ
ータを前記リードソロモン符号のガロア体GF
の元αXに対応させてαX→Xに数値変換する数
値変換手段と、 (e) この数値変換手段から得られる所定タイミン
グの数値同志を加減算する加減算手段と、 (f) この加減算手段の出力を前記ガロア体GFの
元αXに対応させてX→αXに逆変換し元の形の
データに戻す逆変換手段と、 (g) この逆変換手段から得られる所定タイミング
のデータ同志を加算して前記内部バスに出力す
る加算手段と、 (h) 前記加減算手段の出力に基づいてデータ二重
誤りの有無および二重誤り位置を検出するデー
タ誤り検出手段と、 (i) データの二重誤り位置に基づき前記数値変換
手段、加減算手段、逆変換手段、および加算手
段からなる循環系を介して前記内部バスに誤差
データを出力させこの内部バス上の誤差データ
で前記データバス上の誤りデータを訂正するデ
ータ訂正手段と、 (j) 前記シンドローム演算手段と前記内部バスと
の間、前記数値変換手段と前記加減算数手段と
の間、前記加減算手段と前記逆変手段との間、
前記逆変換手段と前記加算手段との間、前記加
算手段と前記内部バスとの間、および前記デー
タ誤り検出手段と前記加減手段との間を各々接
続する複数の接続手段と、 (k) これら各接続手段を制御するタイミング信号
を発生するタイミング信号発生手段。 〔実施例の説明〕 第2図はこの発明の一実施例によるデータ誤り
検出・訂正回路1を適用したCD(コンパクトデイ
スク)プレーヤの要部の構成を示すブロツク図で
ある。なお、以下の説明においては、デイスクに
記録されているデータのフオーマツトを第1図に
示すものであるとする。第2図において、信号
INPはデイスクから光学系を介して読み出された
信号(EFM変調された信号)であり、この信号
INPは受信回路2へ入力される。受信回路2は信
号INPに含まれるデータビツトをEFM復調回路
3へ供給すると共に、信号INPに含まれている同
期パターンSYNCに基づいてフレーム同期信号
VFSYNCを作成し、アドレス制御回路8へ出力
する。EFM復調回路3は、EFM変調された1シ
ンボル=14ビツトのデータをもとの1シンボル=
8ビツトのデータに復調し、バツフアレジスタ4
へ順次直列に供給する。バツフアレジスタ4は
EFM復調回路3から供給されるデータを一時記
憶するレジスタであり、EFM復調回路3から出
力される直列データを並列データに変換する直一
並変換回路および複数のレジスタを有して構成さ
れ、その出力がゲート回路7へ供給される。書込
み制御回路5は、バツフアレジスタ4の書込みお
よび読出しを制御する回路であり、アドレス制御
回路8から出力指令EFMDが供給された場合に、
制御信号WEをRAM(ランダムアクセスメモリ)
6のリード/ライト制御端子R/Wおよびゲート
回路7の制御端子へ各々出力する。これにより、
RAM6が書込み可能状態となると共に、ゲート
回路7が開状態となり、バツフアレジスタ4内の
データがゲート回路7およびRAM6の書込み用
データバスDABS1を介してRAM6へ供給さ
れ、アドレス制御回路8から出力されているアド
レスに書込まれる。また、この書込み制御回路5
はバツフアレジスタ4内のデータがRAM6へ出
力された時点で制御信号VSYMBをアドレス制
御回路8へ出力する。RAM6はデイスクから読
み出された各データ、すなわち、信号データWO
〜W27および誤り訂正用データP0〜P3が記憶さ
れるメモリであり、アドレス制御回路8から端子
ADへ供給されるアドレス信号によつて、アドレ
スが制御され、また、読み出されたデータは出力
用データバスDABS2へ出力される。アドレス制
御回路8は、フレーム同期信号VFSYNC、制御
信号VSYMBおよび制御信号EFMDに基づいて
書込みアドレスを作成したり、書込まれたデータ
のうち、誤り処理に要するデータ(W0〜W27、
P0〜P3)を読み出すのに必要なアドレスを作成
したり、また、データ誤り検出・訂正回路1から
出力される。誤りデータの位置に示すデータj、
k、lに基づいて誤りデータが記憶されているア
ドレスを指示するアドレス信号を作成し、RAM
6へ入出力する等、各種のアドレス制御を行う。 データ誤り検出・訂正回路1はアドレス制御回
路8の制御の下にRAM6から順次出力されるデ
ータを読込み、リードソロモン復号法によつて誤
りがあるか否かのチエツクを行い、誤りが検出さ
れた場合はその訂正を行う回路である。 なお、9はタイミング制御回路であり、これは
データ誤り検出訂正回路1、アドレス制御回路8
等を含む装置全体を制御するための各種タイミン
グ信号を発生するものである。(特に、データ誤
り検出、訂正に関係する部分は第4図にタイミン
グ信号発生回路27として抜き出して示してあ
る。)また、図に示す構成要素10〜14につい
ては最後に説明する。 以下、この発明に係るデータ誤り検出・訂正回
路1について詳述する。 〔データ誤り検出・訂正回路1の詳細〕 〔1〕 各部も構成およよび機能 第3図および第4図は共にデータ誤り検出・
訂正回路1の構成を示すブロツク図である。 最初に、第3図における各記号について説明
する。 ROM( ):リードオンリーメモリ FAD( ):フルアダー INV( ):インバータ SEL( ):セレクタ R( ):8ビツトレジスタ DL( ):デイレイレジスタ(8ビツト) EXOR( ):イクスクルーシブオアゲート SW( ):スイツチ回路 HAD( ):ハーフアダー COMR:比較器 Ra( ):1ビツトレジスタ AND:アンドゲート OR( ):オアゲート NOR( ):ノアゲート 以下、これらの記号を用いて説明を行う。 次に、第3図および第4図の各部の構成を説
明する。 このデータ誤り検出・訂正回路1は大きく分
けると、シンドローム演算部21と、乗除算部
22と、加減算部23と、二重誤り検出部24
と、単一誤り検出部25と、データ訂正部26
と、これに加えて第2図に示したタイミング信
号制御回路9の一部であるタイミング信号発生
回路27(第4図)とから構成されている。 (1) シンドローム演算部21 このシドローム演算部21は前記第(2)式に
示すシンドロームS0〜S3を算出する回路で
あり、シンドローム演算回路21−1〜21
−4から構成される。シンドローム演算回路
21−1はデータバスDABS2(第2図参
照)を介して供給される、1フレームFr内
の各データW0〜W27、P0〜P3を順次累算す
ることによりシンドロームS0(8ビツト)を
算出し、この算出結果を記憶すると共に、
SW(5)へ出力する。同様に、シンドロー
ム演算回路21−2は、各データW0〜W27、
P0〜P3に各々αn(n=0〜31)を乗算して累
算することにより、シンドロームS1を算出
し、この算出結果を記憶すると共に、SW
(6)へ出力する。シンドローム演算回路2
1−3,21−4も同様にしてシンドローム
S2、S3を各々算出し、SW(7)、SW(8)へ
出力する。 (2) 乗降算部22 この乗除算部22は、例えば前記第(5)、(6)
式のシンドローム乗算、第(11)式のシドローム
除算、あるいは第(18)式の乗除算等を行う
回路であり、主要部の構成および機能は次の
通りである。 (2‐1) ROM(1) このROM(1)は、内部バスINBSを介
してアドレス端子ADへ供給されるデータ
(Dとする)を数値変換する回路であり、
8ビツトデータDをGF(28)の元αXに対
応させてαx→Xの変換を行う。(以下、こ
の変換をlg〔D〕と表記する。)そして、
RAM(1)にはアドレスD内に予め値lg
〔D〕が記録されている。ここで、この
ROM(1)を設けた理由は乗除算を加減
算によつて処理するため、および、前記第
(11)式の演算結果からjを求める時にこの数
値変換が必要となるためである。 (2‐2) DL(1) 8ビツトのレジスタa,bから構成され
るデイレイジスタであり、クロツクパルス
φ(第4図参照)に基づきて入力データが
転送される。 (2‐3) INV(1) 制御信号TDIVが“1”信号の時にイン
バータとなり、“0”信号の時にはスルー
となる。二重誤り検出部24内のINV
(2)も全く同一構成である。 (2‐4) FAD(1) 数値変換されたデータの加減算を行う。
すなわち、INV(1)がスルーとして動作
する場合は加算器として動作し、INV
(1)がインバータとして動作する場合は
減算器として動作する。このFAD(1)は
実質的にデータの乗除算を行う。 (3) 加減算部23 この加減算部23は、例えば前記第(5)式が
成立するか否かを調べる際必要となる「S12
−S0・S2」の減算、前記第(14)式、第
(15)式の各右辺の加算等を行う回路である。
なおここで、シンドロームS0〜S3の演算は
モジユロ2の演算によつて行われる。すなわ
ち、加算は各対応ビツトのイクスクルーシブ
オアをとることによつて行われ、したがつて
桁上げがなく、また、減算は加算と同一演算
となる。以下、主要部の構成および機能を説
明する。 (3‐1) ROM(2) このROP(2)は数値変換されたデータ
lg〔D〕を逆変換し、データDに戻すため
のROMであり、そのアドレス端子ADへ
データlg〔D〕が供給されると、データD
をDL(2)へ出力する。 (3‐2) DL(2) 8ビツトのレジスタa,b,cから構成
されるデイレイレジスタであり、クロツク
パルスφに基づいて入力データが転送され
る。 (3‐3) EXOR(1) モジユロ2の加減算を行うイクスクール
シブオアゲートである。 (3‐3) スイツチ30 このスイツチ30は制御信号PLSCAL
が“1”信号の時、端子CとAとが接続さ
れ、“0”信号の時、端子CとBとが接続
されるスイツチである。 (4) 二重誤り検出部24 データW0〜27、P0〜P3に二重誤りがある
か否かを検出する回路である。 (4‐1) HAD このHADは制御信号TLDLAに基づい
て8ビツトのレジスタR(B)の出力の1/2に
「1」を加算してR(L)の初期設定をしたり、
R(L)からフイードバツクされた値に、
AND(1)の出力をキヤリイとして入力
し、「1」を加算したりする回路である。
すなわちR(B)の下位第2ビツト(LSBの
次のビツト)から第6ビツトまで、あるい
はR(L)の出力がHADの入力データとして
供給され、TADは制御信号TLDLAは
“1”の時は、R(B)の値の1/2に、また
“1”の時は、R(L)の値に「1」を加算し
て出力する。なお、R(B)の出力の内の5ビ
ツトのみをHADの入力としている理由は、
R(B)の上位2ビツトが実際上は、“0、0”
であるからである。 (4‐2) R(L) HADの出力を一時的に保持する5ビツ
トレジスタである。 (4‐3) COMP レジスタR(L)の出力と予め内部設定され
ている定数「31」とを比較し、R(L)の出力
が「31」以上の場合に“0”信号を、「31」
未満の場合に“1”信号を各々出力する比
較器である。 (4‐4) FAD(2) 入力端子A,Bへ各々入力されるデータ
を加算し、加算結果を出力端子Sから出力
するフルアダであるが、他に特別の比較機
能を有している。すなわち、このFAD
(2)は入力端子Bののデータが入力端子
Aのデータより小の場合に端子Cから
“1”信号を出力し、また、大または等し
い場合には“0”信号を出力する。 (4‐5) ROM(3) ROM(2)と同様に、数値変換された
データの逆変換を行うためのROMであ
る。 (4‐6) Ra(E2) 1ビツトのフラグレジスタであり、二重
誤りが検出された場合に“1”信号が書込
まれる。この“1”信号はE2フラグとし
て、端子T4を介しエラーフラグ判定回路
10(第2図)へ出力される。 (5) 単一誤り検出部25 データW0〜W27、P0〜P3に単一誤りがあ
るか否かを検出する回路である。 (5‐1) 0検出回路29 この回路29は入力されるデータが
「0」であるか否かを検出する回路であり、
「0」であつた場合に“1”信号を、「0」
でなかつた場合に“0”信号を各々出力す
る。 (5‐2) Ra(E0) 1ビツトのフラグレジスタであり、前記
第(3)式が成立する場合に“1”信号が書込
まれる。この“1”信号はE0フラグとし
て、端子T6を介してエラーフラグ判定回
路10へ出力される。 (5‐3) Ra(E1) 1ビツトのフラグレジスタであり、単一
誤りが検出された場合に“1”信号が書込
まれる。この“1”信号はE1フラグとし
て、端子T5を介してエヤーフラグ判定回
路10へ供給される。 (6) データ訂正部26 データ訂正部26は、前記第(12)式、第
(19)式、第(20)式の各演算を行うもので、
データバスDABS2を介して供給されるデー
タWj、Wk、Wlに各々内部バスINBSを介し
て供給される誤差データEj、Ek、Elを
EXOR(3)において加算し、この加算結果
<Wj>、<Wk>、<Wl>を各々DL(5)お
よび端子T2を介してRAM6(第2図)へ
出力する。 (7) タイミング信号発生回路27 このタイミング信号発生回路27は、実際
には第1図に示したタイミング制御回路9の
一部であり、これは水晶振動子27aの固有
振動数に対応するクロツクパルスφを発生す
ると共に、さらに、このクロツクパススφを
タイムベースとした各制御信号S0E,S1
E…(第5図〜第7図参照)を各々発生する
回路であり、クロツクパルスφおよび各制御
信号S0E,S1E…は各々第3図の回路各
部へ出力される。 〔2〕 動作 次に、上述したデータ誤り検出・訂正回路1
の動作を第5図〜第7図に示すタイミングチヤ
ートを参照して説明する。 最初に、第5図〜第7図について説明する。
まず、このデータ誤り検出・訂正回路1は1フ
レームFr内の各データW0〜W27、P0〜P3誤り
チエツクおよび訂正を第5図〜第7図に示すタ
イミング1〜93の間において行う。ここで、タ
イミング1の立上がり(左端)はシンドローム
演算部21の各演算回路21−1〜21−4に
おいてシンドロームS0〜S3の算出が終了した
時刻である。また、各タイミング1〜93はクロ
ツクパルスφをベースとしている。すなわち、
クロツクパルスφは各タイミング1〜93の境界
において立上る。また、波形図は第4図の各制
御信号S0E、S1E…の波形があり、Hレベルが
“1”信号を、Lレベルが“0”信号を表わし
ている。ここで、この波形図の見方を一例を挙
げて説明する。例えば、、第5図において制御
信号S0Eはタイミング2および11において
“1”信号となる。したがつて、第3図におけ
るSW(5)(第3図左上部)はタイミング2お
よび11において開状態となり、シンドローム
S0が内部バスINBSへ出力される。また、例え
ば信号PLSCALはタイミング2、11、15にお
いて“1”信号となる。したがつて、スイツチ
30(第3図中央部)はタイミング8、11、11
においてその端子Cと端子Aとが接続され、そ
の他のタイミング1〜21(除8、11、15)にお
いては端子Cと端子Bとが接続される。 また、第5図〜第7図は各形波図の下には第
3図各部の入力端のデータ、出力端のデータあ
るいはバスライン上のデータをタイミング1〜
93に対応して示している。例えば、第5図にお
いてINBSに欄は、内部バスINBS上のデータ
を示し、FAD(1)−Bの欄はフルアダFAD
(1)(第3図)の入力端子Bのデータを示し、
また、R(M)の欄はレジスタR(M)の出力デ
ータを示している。また、第5図および第6図
においては、タイミング18〜21が重複して示さ
れている。 また、第5図〜第7図には各種の省略信号が
用いられており、以下、これらについて説明す
る。まず、( )は数値変換されたデータを示
す。例えば(S1)はシンドロームS1の値を
ROM(1)(第3図)によつて数値変換した値
lg(S1)を示している。また、S01、S02、S11、
S12、S22の意味は各々第5図の四角の枠内に
示す。なお、ここに示されていないもの
(S03、S34等)も同様な法則で略記されたもの
である。また、S4、S5、S6の意味についても
第5図の四角の枠内に示す。 次に、誤り検出・訂正の過程を順次説明す
る。 (1) 誤り有無の判定(前記項参照) この判定はタイミング9〜13の間(第5図
に示す期間TM1参照)において行われる。
すなわち、まず、タイミング9においては、
内部バスINBSにシンドロールムS2が出力さ
れ、したがつて、単一誤り検出回路25の0
検出回路29から、シンドロームS2が「0」
であるか否かの判別結果が力される。この判
別結果は次のタイミング10において、第8
図に示すようにRa(1)から出力される。次
にタイミング10においては内部バスINBS
にシンドロームS1が出力され、したがつて
0検出回路29からシンドロームSが「0」
であるか否かの判別結果が出力される。この
判別結果は次のタイミング11においてRa
(1)から出力され、また、この時同時にRa
(1)内からシンドロームS2の判別結果がRa
(2)から出力される。これにより、AND
(2)からシンドロームS2、S1の各判別結果
の論理積が出力される(第8図参照)。以下、
同様の動作により、タイミング13において
は、AND(2)の出力が、第8図に示すよう
にシンドロームS0、S3の各判別結果の論理
積となり、また、Ra(8)の出力がシンドロ
ームS1、S2の各判別結果の論理積となり、
したがつて、AND(3)の出力がシンドロー
ムS0〜S3の各判別結果の論理積となる。こ
の結果、シンドロームS0〜S3が全て「0」
の場合(データ誤りがない場合)は、タイミ
ング13においてAND(3)の出力が“1”信
号となり、一方、シンドロームS0〜S3の中
に「0」以外の値が含まれている場合(誤り
がある場合)は、AND(3)の出力が“0”
信号となる。このAND(3)の出力はタイミ
ング13において“1”信号となる制御信号
TLDEOによつてRa(E0)に読込まれ、E0
フラグとして端子T6へ出力される。しかし
て、このE0フラグによつて誤りの有無の判
別が可能となる。 (2) 単一誤りの検出(前記項参照) この検出はタイミング2〜15の間において
行われる(第5図の期間TM2参照)。まず、
タイミング2において内部バスINBSにシン
ドロームS0が出力されると、周タイミング
2においてROM(1)から(S0)が出力さ
れる。この(S0)は次のタイミング3にお
いてDL(1)−aから出力される(第5図に
おけるDL(1)−aの欄参照)。また、タイミ
ング3において内部バスINBSにシンドロー
ムS2が出力されると、同タイミング3にお
いてROM(1)から(S2)が出力される。
したがつて、次のタイミング4においては、
DL(1)−a、DL(1)−bに各々(S2)、
(S0)が出力される。このタイミング4にお
いて、SEL(1)へ供給される制御信号
TAJKL、INV(1)へ供給れる制御信号
TAIVは共に“0”信号にある。したがつ
て、DL(1)−bの出力がSEL(1)を介して
INV(1)へ供給され、また、INV(1)は
単なるスルーとして動作し、この結果、タイ
ミング4においてDL(1)−aの出力がFAD
(1)の入力端子Aへ、DL(1)−bの出力が
FAD(1)の入力端子Bへ各々供給され、
FAD(1)から(S2)+(S0)、すなわち、
(SO2)が出力される。そして、この(SO2)
が次のタイミング5においてR(M)から出
力される(第5図R(M)の欄参照)。このタ
イミング5において、SEL(2)の制御信号
TOUTAは“0”信号にあり、したがつて、
同タイミング5においてR(M)の出力は
(S02)がSEL(2)を介してROM(2)のア
ドレス端子ADへ供給され、ROM(2)から
SO2が出力される。このSO2は次のタイミン
グ6においてDL(2)−aから、タイミング
7においてDL(2)−bから、タイミング8
においてD(2)−cから順次出力され、この
タイミング8においてEXOF(1)の入力端
子Bへ供給される。同様に、タイミング6に
おいてDL(1)−a、bから各々(S1)が出
力され、したがつてFAD(1)から(S11)
が出力され、タイミング7において、この
(S11)がR(M)から出力され、したがつ
て、ROM(2)かららS11が出力され、タイ
ミング8において、このS11がDL(2)−a
から出力される。このタイミング8において
SW(3)の制御信号DBSW3は“1”信号
にあり、したがつてSW(3)が開状態にあ
る。以上の結果、タイミング8において
EXOR(1)の入力端子A、Bに各々S11、
S02が供給され、しがたつて、EXOR(1)
からS11+S02=S4が出力される。また、こ
のタイミング8においてスイツチ30の制御
信号PLSALが“1”信号にあり、スイツチ
30の端子Cと端子Aとが接続されている。
したがつて、タイミング8においてDL(3)
−aの入力端子へS4が供給され、次のタイ
ミング9においてこのS4がDL(3)−aから
出力される(第5図参照)。次にタイミング
10においてS4がDL(3)−bから出力され
る。この時信号PLSCALは“0”信号にあ
り、したがつて、S4がDL(3)−aの入力端
へ供給される。次に、タイミング11におい
てS4が再びDL(3)−aから出力され、タイ
ミング12においてDL(3)−bから出力され、
タイミング13において再びDL(3)−aから
出力される。このタイミング13においてSW
(1)の制御信号DBSW1が“1”信号とな
り、DL(3)−aから出力されたS4がSW
(1)を介して内部バスINBSへ出力される
(第5図のINBSの欄参照)。以上が、タイミ
ング13においてS4が内部バスINBSへ出力さ
れる過程である。上記と同様の過程によつ
て、タイミング14においてS5が内部バス
INBSへ出力される。 ところで、前記第(5)式、第(6)式は、モジユ
ロ2の演算においては次の様に変換すること
が出来る。 S12−S0・S2=S12+S0・S2=S4=0
……(21) S22−S1・S3=S23+S1・S3=S5=0
……(22) そこで、このデータ誤り検出・訂正回路に
おいては、前記(7)〜(10)式とこの(21)、(22)
式とが共に成立するか否かを単一誤り検出部
25がタイミング9〜15の間においてチエツ
クする。すなわち、まずタイミング9、10に
おいては0検出回路29からシンドローム
S2、S1が「0」か否かの判断結果が各々出
力され、したがつて、第8図に示すように、
タイミング11においてRa(2)、Ra(1)か
ら各々S2、S1が「0」か否かの判断結果が
出力される。この結果、同タイミング11にお
いてOR(1)からS2、S1の判断結果の論理
和が出力される。そして、この論理和はタイ
ミング12においてRa(3)から出力される。
以下、同様に考察すれば明らかなように、タ
イミング11、12、13、14、15におけるOR
(1)、Ra(3)、Ra(4)、Ra(5)、Ra(6)
の各出力は各々第8図は示す通りとなり、こ
の結果、タイミング15において、Ra(4)か
らシンドロームS3が0か否かの判断結果と、
シンドロームS0が0否かの判断結果の論理
和が出力され、また、Ra(6)からシンドロ
ームS1、S2の各判断結果の論理和が出力さ
れる。したがつて、タイミング15における
NOR(1)の出力は、シンドロームS0〜S3
の各判断結果の論理和と否定となり、シンド
ロームS0〜S3が全て「0」でない場合、す
なわち、シンドロームS0〜S3が「0」であ
るか否かの判断結果が全て“0”の場合の
み、“1”信号を出力する。すなわち、タイ
ミング15におけるNOR(1)の出力は前記(7)
〜(10)式をいずれも満足する場合にのみ、“1”
信号となる。 他方、タイミング15におけるAND(2)の
出力は、第8図から明らかなように、S4、
S5が「0」か否かの各判断結果の論理積で
あり、したがつて、S4、S5が共に「0」の
場合にのみ“1”信号となる。すなわち、前
記(5)、(6)式が共に成立すりる場合にのみ、
“1”信号となる。 以上の結果、タイミング15におけるAND
(4)の出力は前記(5)〜(10)式がいずれも成立
する場合にのみ“1”信号となり、1つでも
成立しない場合“0”信号となる。そして、
このAND(4)の出力が制御信号TLDE1に
よつてRa(E1)に読込まれ、E1フラグとし
て端子T5へ出力される。しかして、この
E1フラグに基づいて単一誤りの有無を検出
することができる。 (3) 二重量誤りの検出(前記項参照) この二重誤りの検出は、前記項において
説明したように、前記(14)式〜(17)式を
満足するk、lの組を求めることにある。こ
こで、前記(14)、(15)式を各々第5図に示
す省略記号を用いて表せば、 αk+αl=S6/S4 ……(23) αk・αl=S5/S4 ……(24) となる。これら(23)、(24)式の各右辺を
各々αA、αBと置く。 αk+αl=S6/S4=αA ……(25) αk・αl=S5/S4=αB ……(26) 上記(25)式から次の式が得られる。 αK+αl+αA=0 ……(27) また、上記(26)式から次の式が得られ
る。 B=k+l ……(28) しかして、前記(14)〜(17)式を満足す
るk、lを求めるということは、前記(16)、
(17)式および上記(27)式、(28)式を満足
するk、lを求めることになる。 なお、上記値A、Bが各々シンドローム
S0〜S3から算出し得る値であることは勿論
である。 次に、二重誤り検出の過程を第9図に示す
フローチヤートを参照して説明する。 まず、lとしてB/2+1と置く(ステツ
プSP1)。次に、mを0とする(ステツプ
SP2)。なお、このmは仮想上のカウンタで
ある。次に、mをインクリメントする(ステ
ツプSP3)。次に、第(28)式に基づいてk
の値を算出する(ステツプSP4)。次に、上
記lおよびkの値を各々第(27)式の左辺に
代入して同左辺の演算を行い、その演算結果
CAを求める。(ステツプSP5)。次に、CA=
0か否かを判断し、この判断結果が「NO」
の場合はステツプSP7へ、「YES」の場合は
ステツプSP8へ進む。ステツプSP7ではl値
がBより大あるいはイコールであるか否かが
判断され、この判断結果が「NO」の場合は
ステツプSP9へ、「YES」の場合はステツプ
SP8へ進む。ステツプSP9では、lが値
「31」より大あるいはイコールであるか否か
が判断される。そして、この判断結果が
「NO」の場合はステツプSP10へ、また、
「YES」の場合はステツプSP8へ進む。ステ
ツプSP10では、lの値がインクリメントさ
れる。次いで、ステツプSP8では、mの値が
16より小あるいはイコールであるか否か判断
され、この判断結果が「YES」の場合はス
テツプSP3へ戻り、また「NO」の場合は、
ステツプSPP11へ進む。ステツプSP11では、
再びCAの値が「0」であるか否かがチエツ
クされる。そして、このチエツク結果が
「NO」の場合は「二重誤りなし」(ステツプ
SP12)と判断され、また、「YES」の場合は
「データWk、Wlに誤りあり」と判断される。 このように、上述した二重誤り検出におい
ては、まず、lををB/2+1と仮定してこ
の場合のkの値を前記(28)式から求め、次
いで得られろたk、lの組を(27)式に代入
して同(27)式を満足するか否かをチエツク
し、以下、同様のことをl=B/2+2、
B/2+3、…の各値について行うことによ
り、(27)式、(28)式を共に満足するk、l
の組を求めている。この場合、求められた
k、lの組は、lがl>B/2であり、一
方、kがk<B/2であるところから、前記
(17)式を満足している。また、上述したチ
エツクはlの値がl<B(ステツプSP7参照)
であり、かつ、l<31(ステツプSP9参照)
の場合のみ行うようになつており、したがつ
て、求められたk、lの組は前記(16)式を
満足している。また、データWO〜P3の合計
が32であるところから、lを16回変化させれ
ば必ず、k、lの組があるか否かが判定さ
れ、したがつて、ステツプSP3、SP4…SP8
なる試行程を16回繰返すようになつている。
(ステツプSP8参照)。 しかして、上述した過程によつて、二重誤
りの検出を行う回路が第3図における二重誤
り検出部24であり、以下、この検出部24
の動作を説明する。 まず、前述したように、第5図に示すタイ
ミング13、14において内部バスINBSにS4、
S5が各々出力される。また、タイミング15
においてはS4が、タイミング16においては
S6が各々内部バスINBSに出力される。な
お、上記タイミング13、14、15、16において
S4、S5、S4、S6が順次内部バスINBSへ出
力される理由は、前述した説明および第5図
に示すタイミングチヤートから明らかなよう
に、タイミング13から制御信号DBGW1が
“1”となり、かつタイミング15で信号
PLSCALが1度“1”に立ち上がることに
よる。タイミング13においてS4が内部バス
INBSへ出力されると、ROM(1)から
(S4)が出力され、この(S4)がタイミング
14においてDL(1)−aから出力される。ま
た、タイミング14においてS5が内部バス
INBSへ出力されると、ROM(1)から
(S5)がタイミング15においてDL(1)−a
から出力される。またこのタイミング15にお
いて、(S4)がDL(1)−bから出力される。
このタイミング15において、制御信号
TAJKLは“0”信号に、制御信号TDIVは
“1”信号にあり、したがつて、DL(1)−b
内の(S4)はSEL(1)を通過し、INV(1)
によつて反転されて、FAD(1)の入力端子
Bへ供給される。この結果、タイミング15に
おいてFAD(1)の出力は(S5)−(S4)、す
なわち、(S5/S4)となり、この(S5/S4)
がタイミング16においてR(M)から出力さ
れる。このタイミング16において、制御信号
TOUTAは“0”信号にあり、したがつて、
R(M)内の(S5/S4)がSEL(2)を介し
てR(B)へ供給される。この時、制御信号
TLDBは“1”信号にあり、したがつて、
タイミング16においてR(M)から出力され
た(S5/S4)は、同タイミング16において
R(B)に読込まれる。以後、このデータ
(S5/S4)は全処理が終了するまで(タイミ
ング93まで)R(B)に保持される。ここで、デ
ータ(S5/S4)は、前記(26)式から明ら
かなようにデータBのことである。 次に、上記と同様の過程によりタイミング
18においてデータ(S6/S4)がR(A)に読込
まれる。そして、このデータ(S6/S4)は、
以後、タイミング93までR(A)に保持される。
ここで、データ(S6/S4)は、前記(25)
式から明らかなようにデータAのことであ
る。 このようにして、タイミング18においてR
(A)、R(B)に各々データA、Bが用意される。
そして、このタイミング18からタイミング66
の間において二重誤りの検出が行われる(第
6図参照)。 すなわち、まずタイミング18において
HADの入力端へデータBが供給されること
から、制御信号TLDLAによりHADから
B/2+1が出力され、このデータB/2+
1が同タイミング18において、R(L)に読込ま
れる。次のタイミング19においては、R/(L)
からデータB/2+1(以下、l0とする)が
出力される。また、この時制御信号TKCAL
が“1”信号にあり、したがつて、AND
(5)が開状態にあると共に、INV(2)が
インバータとして動作する。この結果、タイ
ミング19においてFAD(2)の入力端子Aに
データBが、入力端子Bにデータ0(l0の否
定)が各々供給され、FAD(2)からB−l0
すなわち、k0が出力される(第9図ステツプ
SP4参照)。このデータk0は次のタイミング
20においてR(KL)から出力され、ROM
(3)へ供給される。これにより、タイミン
グ20においてROM(3)からαKoが出力され、
EXOR(2)の入力端子Bへ供給される。 一方、タイミング19において、制御信号
TOUTAが“1”信号となり、R(A)内のデ
ータAがSEL(2)を介してROM(2)の入
力端へ供給され、ROM(2)からデータαA
が出力される。このデータαAは次のタイミ
ング20においてDL(2)−aから出力され、
SW(3)を介してSEL(4)へ供給される。
この時、SEL(4)の制御信号TALPAは
“1”信号にあり、したがつて、タイミング
20においてデータαAがSEL(4)を介して
EXOR(2)の入力端子Aへ供給される。以
上の結果、タイミング20において、EXOR
(2)の出力がαA+αKpとなり、このデータαA
+αKpが次のタイミング21においてDL(4)
から出力される。 また、タイミング20において、制御信号
TKCALは“0”信号にあり、したがつて、
ADN(5)が閉状態になると共に、INV
(2)が単なるスルーとして動作する。この
結果、タイミング20においてFAD(2)の入
力端子Aへデータ「0」が、入力端子Bへデ
ータl0が各々供給され、FAD(2)からデー
タl0が出力される。このデータl0は次のタイ
ミング21においてR(KL)から出力され、
ROM(3)へ供給される。これにより、
ROM(3)からαl 0が出力され、EXOR(2)
の入力端子Bへ供給される。 一方、こタイミング21において、制御信号
TARAは“0”信号にあり、したがつて、
DL(4)の内容αA+αK0がSEL(4)を介して
EXOR(2)の入力端子Aへ供給される。こ
の結果、タイミング21においてEXOR(2)
の出力はαA+αK0+αl0(第9図におけるステ
ツプSP5参照)となり、このデータαA+αK0
+αl0が0検出回路32の入力端へ供給される。
0検出回路32はEXOR(2)の出力が「0」
の時“0”信号を出力し、「0」以外の時は
“1”信号を出力する(第9図SP参照)。こ
こで、データαA+αK0+αl0が「0」でないと
すると、タイミング21において0検出回路23
から“1”信号が出力され、AND(1)の入
力端へ供給される。 また、タイミング21においては、制御信号
TADLが“”信号となり、この“1”信号
がAND(1)の入力端へ供給される。また、
このタイミング21においては、l0≦31かつl0
≦Bであり、したがつて、COMPおよび
FAD(2)の端子Cから各々“1”信号が出
力されている。この結果、タイミング21にお
いてAND(1)の出力が“1”信号となり、
この“1”信号がR(L)へ供給される。これに
より、HADへキヤリイ信号として供給され
る。これによりR(L)の出力の値に「1」が加
算され、HADの出力がl0+1(以下、l1とす
る)となり、このデータl1が次のタイミング
22においてR(L)から出力される。 以下、タイミング22〜24、25〜27、…64〜
66において同様の動作が繰り返され、これに
より、タイミング24、27、……66において
各々、EXOR(2)から、αA+αK1+αl1、αA
+αK2+αl2、…、αA+αK15+αl15が各々出力
され、また、0検出回路32からこれらの各デ
ータが「0」か否かの判断結果が出力され
る。 ところで、上記説明および第6図に示す各
データl1、k1…等はいずれもタイミング66ま
でEXOR(2)の出力が「0」にならなかつ
た場合であり、途中の過程においてEXOF
(2)の出力が「0」となつた場合、すなわ
ち、前記(16)、(17)、(27)、(28)式をいず
れも満足するk、lの組があつた場合には次
の様になる。すなわち、例えばタイミング24
においてEXOR(2)から出力されたデータ
αA+αK1+αl1が「0」であつた場合は、同タ
イミング24において0検出回路32から“0”
信号が出力され、AND(1)の入力端へ供給
される。この結果、タイミング24において制
御信号TADLが“1”信号に立上つても
AND(1)の出力は“0”信号を続け、した
がつて、R(L)の内容がインクリメントされる
ことはない。この結果、タイミング27におい
て再びEXOR(2)からデータαA+αK1+αl1
が出力され、0検出回路32から“0”信号
が出力され、以下、同び動作が繰り返され
る。すなわち、タイミング24において
EXOR(2)から出力されたデータαA+αK1
+αl1が「0」であつた場合は、以後、R(L)
の内容はl1に保持され、R(KL)からはタイ
ミング26、29、…65においてk1が、タイミン
グ27、30…66においてl1が各々出力され、
EXOR(2)からはタイミング27、30、…66
においてαA+αK1+αl1出力され、また、0検
出回路32からは、タイミング27、30、…66
において“0”信号が出力される。そして、
タイミング60において0検出回路32から
“0”信号が出力されると、インバータ33
の出力が“1””信号となり、この“1”信
号がタイミング66において“1”となる制御
信号TLDE2によりRa(E2)読込まれる。そ
して、このRa(E2)の内容がE2フラグとし
て端子T4へ出力される。しかして、この
E2フラグにより二重誤りがあるか否かを検
出することができる。 なお、タイミング66までの間にR(L)の内容
が31に達した場合、あるいは、l≧Bとなつ
た場合はCOMPあるいはFAD(2)の端子C
から“0”信号が出力され、したがつて、そ
の時点以降R(L)がインクリメントされること
はない(第9図のSP7、SP9参照)。 (4) 二重誤りの訂正(前記項参照) 前記(18)式は、前記(25)式を用いれ
ば、 Ek={S1+αl・S0}/αA ……(30) El={S1+αk・S0}/αA ……(31) と表すことができる。そして、これらの値
Ek、El求まれば、前記(19)式に基づいて
データWk、Wlの誤りを訂正することができ
る。 この二重誤りの訂正はタイミング71〜88
(第7図)の間において行われる。最初に、
データWlの訂正がタイミング71〜80の間
(第7図に示す期間TM3参照)において行わ
れる。すなわち、まず、タイミング71におい
てシンドロームS0が内部バスINBSへ出力さ
れると、ROM(1)から(S0)が出力され
る。この(S0)は次のタイミング72におい
てDL(1)−aから出力され、FAD(1)の
入力端子Aへ供給される。一方、このタイミ
ング72において、R(KL)の出力は誤りデー
タWkの位置を示すデータとなつている。こ
の理由は次の通りである。 制御信号TKCALはタイミング65において
“0”信号となり、以後、タイミング70まで
“0”信号を続ける。制御信号TKCALが
“0”信号になると、AND(5)の出力が
「0」となり、したがつて、FAD(2)入力
端子Aへ「0」が供給され、また、INV
(2)がスルーとして動作し、したがつて、
FAD(2)入力端子BへR(L)の出力、すなわ
ち、誤りデータWlの位置を示すデータlが
供給され、この結果、FAD(2)の出力が、
lとなる。そして、このlがタイミング66に
おいてR(KL)から出力される。以後、
FAD(2)の出力はタイミング70までlを続
け、したがつてR(KL)の出力がタイミング
71までlを続ける。次に、タイミング71にお
いて制御信号TKCALが“1”信号となる。
これにより、同タイミング71においてFAD
(2)の出力がB−l=kとなり、このデー
タkが次のタイミング72においてR(KL)か
ら出力される。なお、このR(KL)の出力の
タイミング72以降の変化は次の通りである。
まず、タイミング72において制御信号
TKCALが“0”になり、したがつて、同タ
イミング72においてFAD(2)の出力がlと
なり、次のタイミング73においてR(KL)か
ら再びlが出力される。以降、タイミング
84、87において制御信号TKCLが“1”信号
となることから、タイミング85、88において
(KL)の出力kとなり、他のタイミングにお
いてlとなる(第7図参照)。 このように、タイミング72においてR
(KL)の出力はkとなつている。また、この
タイミング72においてSEL(3)へ供給され
る制御信号TAJが“0”信号、SEL(1)へ
供給される制御信号TAJKLが“1”信号、
INV(1)へ供給される制御信号TDIVが
“0”信号にある。この結果、タイミング72
においてFAD(1)の入力端子Aに前述した
{S0)が、入力端子Bにkが各々供給され、
FAD(1)からk+(S0)、すなわち(αk
S0)が出力される。そして、この(αk・S0)
が次のタイミング73においてR(M)から出
力される。このタイミング73においてSEL
(2)へは制御信号TOUTAとして“0”信
号が供給されている。したがつて、R(M)
に読込まれ(αk・S0)はSEL(2)を介して
ROM(2)供給され、ROM(2)から、
αk・SOが出力される。このαk・S0は次のタ
イミング74においてD(2)−aから出力さ
れ、次いで、タイミング76においてDL(2)
−cから出力され、EXOR(1)の入力端子
Bへ供給される。 他方、タイミング76において内部バス
INBSにシンドロームS1が出力され、また、
この時同時にSW(2)へ供給されている制
御信号DBSW2が“1”信号に立上る。こ
の結果、タイミング76においてシンドローム
S1がSW(2)を介してEXOR(1)の入力端
子Aへ供給され、EXOR(1)からα1k・S0
+S1(以下、と記す:第7図四角枠内参
照)が出力される。そして、このはタイミ
ング76において制御信号PLSCALが“1”
信号にあることから、スイツチ30を介し
DL(3)へ供給され、次のタイミング77にお
いてDL(3)−aから出力され、SW(1)を
介して内部バスINBSへ出力される。 タイミング77においてが内部バスINBS
へ出力されると、ROM(1)から()が
出力される。この()は、タイミング78に
おいてDL(1)−aから出力されFAD(1)
の入力端子Aへ供給される。一方、このタイ
ミング78において、SEL(2)の制御信号
TOUTA、SEL(3)の制御信号TAJ、SEL
(1)の制御信号TAJKL、INV(1)の制御
信号TDIVがいずれも“1”信号となり、こ
の結果、R(A)に記憶されているデータAが
SEL(2)、SEL(3)、SEL(1)を介して
INV(1)へ供給され、ここで反転されて
FAD(1)の入力端子Bへ供給される。これ
により、タイミング78においてFAD(1)か
ら()−A、すなわち、(/αA)が出力
される。ここで、 /αA={S1+αk・S0}/αA=El
……(32) であり(第(31)式参照)、したがつてタイ
ミング78におけるFAD(1)の出力は(El)
となる。そして、この(El)が次のタイミン
グ79におけるR(M)から出力され、SEL
(2)を介してROM(2)へ供給され、
ROM(2)からElが出力される。このElは
次のタイミング80においてDL(2)−aから
出力される。この時(タイミング80)、SW
(3)、SW(2)はいずれも開状態であり、
したがつて、DL(2)−aから出力されたEl
は、SW(3)、SW(2)を介して内部バス
INBSへ出力され、この内部バスINBSを介
してEXOR(3)の入力端子Bへ供給され
る。 他方、タイミング77においてSEL(3)の
制御信号TAJが“0”信号にあり、したが
つて同タイミング77においてR(KL)の出力
lがSEL(3)および端子T3を介してアドレ
ス制御回路8(第2図)へ供給される。アド
レス制御回路8は、同タイミング77において
このデータlを入力し、3タイミング後のタ
イミング80においてデータWlが記憶されて
いるRAM6のアドレスを出力する。これに
より、同タイミング80においてRAM6から
データWlが出力され、データバスDABS2
を介してEXOR(3)の入力端Aへ供給され
る。この結果、タイミング80において
EXOR(3)からWl+El、すなわち、正しい
データ<Wl>が出力される。この時、SW
(4)の制御信号DOSWは“1”信号にあ
り、したがつてデータ<Wl>はSW(4)を
介してDL(5)へ供給され、このDL(5)に
よつて3タイミング遅延され、タイミング83
においてデータバスDABS1(第2図)へ出
力される。一方、タイミング80において、R
(KL)の出力lがSEL(3)を介してアドレ
ス制御回路8へ供給される。アドレス制御回
路8は同タイミング80においてこのデータl
を入力し、3タイミング後のタイミング83に
おいてデータWlのアドレスをRAM6へ出力
する。これにより、データ<Wl>がRAM6
に書込まれる。 以上がデータWlの訂正の過的程である。
以上の過程と全く同様にして、タイミング79
〜88(期間TM4参照)においてデータWkの
訂正が行われる。なお、このデータWkの訂
正過程の説明は省略する。第7図のタイミン
グチヤートを参照されたい。 (5) 単一誤り訂正(前記項参照) この訂正はタイミング86〜92の間において
行われる。すなわち、まず、タイミング86に
おいて内部バスINBSへシンドロームS0が出
力され、次いでタイミング87において内部バ
スINBSへシンドロームS1が出力される。こ
の結果、タイミング87において(S0)が、
タイミング88において(S1)が各々DL(1)
−aから出力され、同タイミング88において
DL(1)−aから(S1)が、DL(1)−bから
(S0)が各々出力される。一方、このタイミ
ング88において、SEL(1)の制御信号
TAJKLが“0”信号、INV(1)の制御信
号TDIVが“1”信号にあり、したがつて、
FAD(1)の入力端子Bへ(S0)の各ビツト
を反転したデータが供給される。この結果、
タイミング88においてFAD(1)から(S1)
−(S0)、すなわち、(S1/S0)が出力され、
このデータ(S1/S0)が次のタイミング89
においてR(M)から出力される。ここで、
データ(S1/S0)は、前記(11)式から明
らかなように誤りデータWjの位置を示すデ
ータjである。そして、このデータjは、タ
イミング89においてSEL(2)の制御信号
TOUTA、SEL(3)の制御信号TAJが各々
“0”、“1”で、あることから、SEL(2)、
SEL(3)を介してアドレス制御回路8へ供
給される。アドレス制御回路8はこのデータ
jを入力し、3タイミング後のタイミング92
において、データWjのアドレスRAM6へ出
力する。これにより、タイミング92において
RAM6からデータWjが読み出され、データ
バスDABS2を介してEXVR(3)の入力端
子Aへ供給される。また、このタイミング92
においてシンドロームS0(=Ej)が内部ス
INBSへ出力され、同内部バスINBSを介し
てEXOR(3)の入力端子Bへ供給される。
この結果、タイミング92においてEXOR
(3)からWj+S0〕<Wj>が出力され、SW
(4)を介してDL(5)へ供給され、3タイ
ミング後のタイミング95においてデータバス
DABS1へ出力される。 他方、タイミング90,91において、内部バ
スINBSへシンドロームS0、S1が各々出力さ
れ、この結果、上記と同様の過程により、タ
イミング92においてデータjがアドレス制御
回路8へ出力される。アドレス制御回路8は
このデータjを受け、3タイミング後のタイ
ミング95においてデータWjjのアドレスを
RAM6へ出力する。これにより、データ<
Wj>がRAM6に読込まれる。 以上がデータ誤り検出・訂正回路1の詳細であ
る。 次に、第2図に示す構成要素10〜14につい
て説明する。 (i) エラーフラグ判定回路10 上述した説明においては、説明を簡略化する
ため、デイスク記録されるデータのフオーマツ
トを第1図に示すものとし、誤り訂正用データ
やP0〜P3の4データとしたが、実際には、1
フレームFr内に更に別の4つに誤り訂正用デ
ータQ0〜Q3が付加され、また、データの記録
順序もバラバラにされている(クロスインタリ
ーブ)。なお、この点に関しては、例えば特開
昭57−4629号公報に詳しい。そして、データ誤
り検出・訂正回路1は、まず誤り訂正用データ
P0〜P3に基づいて、前述した過程によりデー
タ誤りの検出・訂正を行い(C1デコードと称
される)、また、この際フラグE0〜E2を各々エ
ラーフラグ判定回路10へ出力する。エラーフ
ラグ判定回路10はC1デコード時に供給され
るフラグE0〜E2に基づいてC1フラグを作成
し、RAM6に書込む。ここで、C1フラグと
は、C1デコードにおいてチエツクされたデー
タに未訂正のデータが含まれているか否かを示
すフラグである。次に、データ誤り検出・訂正
回路1は誤り訂正用データQ0〜Q3に基づい
て、再びC1デコードと略同様にしそて誤りの
検出および訂正を行う(C2デコードと称され
る)と共に、フラグE0〜E2を各々エラーフラ
グ判定回路10へ出力する。またこの時、C1
フラグがエラーフラグ判定回路10へ供給され
る。エラーフラグ判定回路10はC2デコード
時のフラグE0〜E2およびC1フラグに基づいて
C2フラグを作成し、RAM6に書込む。このC2
フラグは各データW0〜W23が訂正済か否かを
示す(厳密には、データ誤りの確率が考慮して
いるレベルより高いか否かを示す)フラグであ
り、未訂正(すなわち誤りの確率が高い)のデ
ータに対応して“1”が書込まれる。 このように、エラーフラグ判定回路10は、
C1、C2フラグのの作成および書込みを行う回
路である。 なお、C1デコード時には、C2デコード時に
用いられる誤り訂正用データQ0〜Q3も信号デ
ータと同様に扱われる。すなわち、C2デコー
ド時においては、シンドローム演算時の全デー
タ数が28となる(音楽信号データ=24、誤り訂
正用データ=4。 (ii) フラグ検出回路11等 上述したC1デコード、C2デコードが終了す
ると、RAM6内の音楽信号データが、C2フラ
グと共に制御回路8の制御の下に順次読み出さ
れ、データバスDABS2に出力され、パラレ
ル/シリアル変換回路12へ供給される。この
時、フラグ検出回路11は、データに各々付加
されたC2フラグをチエツクし、そのデータが
訂正済か否かの判断を行い、未訂正の場合に制
御信号TEIを補正回路13へ出力する。補正回
路13はパラレル/シリアル変換回路12から
出力されるデータが未訂正データであるか否か
を制御信号TEIに基づいて検知し、未訂正でな
ければそのまま出力し、未訂正であつた場合
は、直線補間あるいは前置保持の手法でデータ
補正を行い、シリアル/パラレル変換回路14
へ出力する。シリアル/パラレル変換回路14
は、補正回路13から出力されるシリアルデー
タをパラレルデータに変換し、DAC(図示略)
へ出力する。このDACの出力がスピーカへ供
給されて、音楽が発生する。 以上説明したように、この発明によればシンド
ローム等を含む内部バス上のデータを数値変換手
段、加減算手段、逆変換手段、および加算出段か
らなる単一の循環系を介して効率的かつ迅速に処
理するとともに、この循環系の加減算手段の出力
を用い二重誤り状況を正確に判定した後、再び循
環系を利用して誤差データを内部バス上へ出力さ
せこれによりデータ訂正を行うことができ、リー
ドソロモン符号によるデータ二重誤りの検出およ
び短時間で、かつ、最小限のハードウエア構成に
よつて実行することができる効果が得られる。
The present invention relates to a data error detection and correction circuit used in a digital audio disc (DAD) player. [Background Art] In a DAD system, defects that are present in the disk from the beginning, defects that occur during handling,
Data errors occur due to disturbances in fluctuations in the reproduction mechanism, etc. Leaving this data error unattended is extremely undesirable in terms of music signal reproduction, and therefore, a circuit for detecting and correcting this data error is essential in a DAD player. Now, as a method to detect this data error,
A method using Reed-Solomon codes is known.
This method will be explained below. First, error correction data is recorded in advance on a disk together with music signal data. FIG. 1 is a schematic diagram showing how each data is recorded on a disk. In the example shown in this figure, one frame Fr (data unit for error correction) is signal data W0 to W27 (each 8 (bit), error correction data P0 to P3 (8 bits each), and a synchronization pattern SYNC. (In addition, in an actual disk, in addition to these, control data and the error correction data mentioned above are
Although error correction data other than PO to P3 is recorded, it is omitted here to simplify the explanation. In addition, each of these data is EFM
(Eight to Fourteen Modulation) method and recorded on the disk. )and,
Each value of the error correction data P0 to P3 is set to satisfy the following formula. In addition, α in this formula (1) is F(X)=X 8 +X 4
+X 3 +X 2 It is a primitive element modulo +1. Next, during playback, each data shown in Figure 1
W0 to W27 and P0 to P3 are each read out, and based on the read data, syndromes S0 to S3 are determined by the following calculation. Then, based on each value of this syndrome S0 to S3, data W0 to W27, P0 are
~Determine, detect, and correct the presence or absence of errors in P3. In addition, in this Reed-Solomon coding method, signal data W0 to W27 and error correction data P0 to P3
There is no distinction between In other words, the error correction data P0 to P3 can be considered as virtual signal data W28 to W31 following the signal data W0 to W27, and therefore the error correction data P0 to P3 can be considered as virtual signal data W28 to W31 following the signal data W0 to W27. can also be detected. And data
Errors in P0 to P3 can be recognized as errors in data W28 to W31, respectively. For example, the 30th data W29
If it is detected that the error correction data P1 is incorrect, it means that the error correction data P1 is incorrect. Determining whether there is an error Check whether the following formula holds true. If it holds, there is no error in any of the data W0 to W27 and P0 to P3, and if it does not hold, the data W0 to W27 and P0
There is an error in one or more of ~P3. Single error detection If only the j-th data Wj on the current board has an error, The following formula holds true. However, in this equation, Ej
is the correct data Wj (hereinafter, this correct data
Wj is written as <Wj>) and the data Wj read from the disk (that is, a data error, also referred to as an error pattern). this
From equation (4), the following equation can be obtained. S1 2 = S0・S2 ...(5) S2 2 =S1・S3 ...(6) Also, if there is an error in data Wj, S0≠0 ...(7) S1≠0 ...(8) S2≠ 0...(9) S3≠0...(10) The following formula holds true. Therefore, it is checked whether the above equations (5) to (10) hold true, and if all hold true, it is detected that there is an error only in the data Wj. In this case, the data error Ej is the syndrome S0. Correction of a single error From the above equation (4), the following equation is derived: S1/S0=α j (11). Therefore, by performing the calculation on the left side of equation (11) and converting the calculation result into a numerical value, the position j of the error data can be detected.
Therefore, the data Wj read from the disk
Add the data error Ej = S0 to obtain the correct data <Wj>. Wj + Ej = <Wj> ...(12) Detection of double error Now suppose that there is an error in data Wk and Wl, The following formula holds true. However, in this equation (13), Ek and El are data errors of data Wk and Wl, respectively. From this equation (13), the following equation can be obtained. α k + α k = S1・S2+S0・S3/S1 2 +S0・S2 ……(14) α k・α l =S2 2 +S1・S3/S1 2 +S0・S2 ……(15) Also, in this example, The following formulas hold true: 0≦k, l≦31...(16) k≠l...(17) Note that here, k, l=28~
31 is error correction data P0 to P3 as mentioned above.
This is the case when there is an error. Therefore, the values on the right sides of equations (14) and (15) are found from the syndromes S0 to S3, and then a set of k and l that satisfies equations (14) to (17) is found. Once this pair of k and l is found, the data
There are errors in Wk and Wl, and on the other hand,
If it cannot be determined and there is an error, and it is not a single error, the data W0~W27, P0~P3
There must be 3 or more of them. Note that, depending on the syndromes S0 to S3, it is impossible to detect the error data position of triple error or more. Correction of double error If data Wk and Wl each have an error, calculate each data electric power Ek and El based on the following equations. E k E l = 1/α k + α l S1 + α l・SO S1 + α k・SO ... (18) Next, K, l detected by the above process
Add the data errors Ek and El to the data Wk and Wl corresponding to the values, respectively, Wk + Ek = <Wk> ... (19) Wl + El = <Wl> ... (20) As a result, the correct data <Wk>, Get <Wl>. The above is the data error detection and correction method using Reed-Solomon codes. (Objective of the Invention) The present invention is a data error detection system capable of detecting and correcting double errors such as data errors caused by the above-mentioned Reed-Solomon code in a short time and with a minimum hardware configuration.・The purpose is to provide a correction circuit. [Features of the Invention] This invention is characterized by having the following constituent requirements. (a) A data bus that outputs data containing data errors; (b) an internal bus for data error detection and correction; and (c) calculating the syndrome of the Reed-Solomon code from the data output to the data bus. (d) syndrome calculation means for outputting the syndrome to the internal bus at a predetermined timing;
(e) an addition / subtraction means for adding and subtracting the numerical values at a predetermined timing obtained from this numerical conversion means; (g) an inverse transformation means that corresponds the output to the element α X of the Galois field GF and inversely transforms it from X → α (h) data error detection means for detecting the presence or absence of a data double error and the location of a double error based on the output of the addition/subtraction means; Based on the location of the heavy error, error data is output to the internal bus through a circulation system consisting of the numerical value conversion means, addition/subtraction means, inverse conversion means, and addition means, and the error data on the internal bus is used to eliminate the error on the data bus. (j) between the syndrome calculation means and the internal bus, between the numerical value conversion means and the addition/subtraction number means, between the addition/subtraction means and the inverse variation means;
(k) a plurality of connection means respectively connecting between the inverse conversion means and the addition means, between the addition means and the internal bus, and between the data error detection means and the addition/subtraction means; Timing signal generation means for generating timing signals for controlling each connection means. [Description of Embodiment] FIG. 2 is a block diagram showing the configuration of the main parts of a CD (compact disc) player to which a data error detection/correction circuit 1 according to an embodiment of the present invention is applied. In the following explanation, it is assumed that the format of data recorded on the disk is as shown in FIG. In Figure 2, the signal
INP is a signal (EFM modulated signal) read out from the disk via the optical system, and this signal
INP is input to the receiving circuit 2. The receiving circuit 2 supplies the data bits included in the signal INP to the EFM demodulation circuit 3, and also generates a frame synchronization signal based on the synchronization pattern SYNC included in the signal INP.
Create VFSYNC and output to address control circuit 8. The EFM demodulation circuit 3 converts 1 symbol of EFM modulation = 14 bits of data into 1 original symbol =
Demodulates to 8-bit data and stores it in buffer register 4.
sequentially in series. Buffer register 4 is
This is a register that temporarily stores data supplied from the EFM demodulation circuit 3, and is composed of a serial/parallel conversion circuit that converts the serial data output from the EFM demodulation circuit 3 into parallel data and a plurality of registers. The output is supplied to gate circuit 7. The write control circuit 5 is a circuit that controls writing and reading of the buffer register 4, and when an output command EFMD is supplied from the address control circuit 8,
Control signal WE to RAM (Random Access Memory)
6 and the control terminal of gate circuit 7, respectively. This results in
When the RAM 6 is enabled for writing, the gate circuit 7 is opened, and the data in the buffer register 4 is supplied to the RAM 6 via the gate circuit 7 and the write data bus DABS1 of the RAM 6, and is output from the address control circuit 8. is written to the specified address. In addition, this write control circuit 5
outputs the control signal VSYMB to the address control circuit 8 at the time when the data in the buffer register 4 is output to the RAM 6. RAM6 stores each data read from the disk, that is, signal data WO.
~W27 and error correction data P0 to P3 are stored, and the terminals are connected from the address control circuit 8.
The address is controlled by the address signal supplied to AD, and the read data is output to the output data bus DABS2. The address control circuit 8 creates a write address based on the frame synchronization signal VFSYNC, the control signal VSYMB, and the control signal EFMD, and also generates data (W0 to W27,
P0 to P3) are used to create addresses necessary for reading out the data, and are also output from the data error detection/correction circuit 1. Data j shown at the position of the error data,
Create an address signal indicating the address where the error data is stored based on k and l, and
Performs various address controls such as input/output to 6. The data error detection/correction circuit 1 reads the data sequentially output from the RAM 6 under the control of the address control circuit 8, checks whether there is an error using the Reed-Solomon decoding method, and detects an error. If so, this is the circuit that corrects it. Note that 9 is a timing control circuit, which is connected to the data error detection and correction circuit 1 and the address control circuit 8.
It generates various timing signals for controlling the entire device including the following. (In particular, the parts related to data error detection and correction are extracted and shown in FIG. 4 as the timing signal generation circuit 27.) Also, the components 10 to 14 shown in the figure will be explained last. The data error detection/correction circuit 1 according to the present invention will be described in detail below. [Details of data error detection/correction circuit 1] [1] Configuration and functions of each part Figures 3 and 4 both show data error detection/correction circuit 1.
1 is a block diagram showing the configuration of a correction circuit 1. FIG. First, each symbol in FIG. 3 will be explained. ROM ( ): Read-only memory FAD ( ): Full adder INV ( ): Inverter SEL ( ): Selector R ( ): 8-bit register DL ( ): Delay register (8 bits) EXOR ( ): Exclusive-or gate SW ( ): Switch circuit HAD ( ): Half adder COMR: Comparator Ra ( ): 1-bit register AND: AND gate OR ( ): OR gate NOR ( ): NOR gate Below, explanation will be given using these symbols. Next, the configuration of each part in FIGS. 3 and 4 will be explained. This data error detection/correction circuit 1 is roughly divided into a syndrome calculation section 21, a multiplication/division section 22, an addition/subtraction section 23, and a double error detection section 24.
, a single error detection section 25, and a data correction section 26
In addition to this, the timing signal generating circuit 27 (FIG. 4) is a part of the timing signal control circuit 9 shown in FIG. (1) Syndrome calculation unit 21 This syndrome calculation unit 21 is a circuit that calculates syndromes S0 to S3 shown in the above equation (2), and syndrome calculation circuits 21-1 to 21
- Consists of 4. The syndrome calculation circuit 21-1 calculates the syndrome S0 (8 bits) by sequentially accumulating each data W0 to W27 and P0 to P3 within one frame Fr, which is supplied via the data bus DABS2 (see Fig. 2). Calculate and store this calculation result, as well as
Output to SW (5). Similarly, the syndrome calculation circuit 21-2 performs each data W0 to W27,
Syndrome S1 is calculated by multiplying P0 to P3 by α n (n = 0 to 31) and accumulating them. This calculation result is stored, and SW
Output to (6). Syndrome calculation circuit 2
1-3 and 21-4 are also syndrome
Calculate S2 and S3, respectively, and output to SW(7) and SW(8). (2) Multiplication/subtraction unit 22 This multiplication/division unit 22, for example,
This circuit performs syndrome multiplication in equation (11), syndrome division in equation (11), multiplication and division in equation (18), etc. The configuration and functions of the main parts are as follows. (2-1) ROM (1) This ROM (1) is a circuit that numerically converts the data (denoted as D) supplied to the address terminal AD via the internal bus INBS,
The 8-bit data D is made to correspond to the element α X of GF(2 8 ), and the transformation α x →X is performed. (Hereinafter, this conversion will be referred to as lg [D].) And,
RAM (1) has a value lg in address D in advance.
[D] is recorded. Here, this
The reason for providing ROM (1) is to process multiplication and division by addition and subtraction, and
This is because this numerical conversion is necessary when determining j from the calculation result of equation (11). (2-2) DL (1) This is a delay register consisting of 8-bit registers a and b, and input data is transferred based on the clock pulse φ (see FIG. 4). (2-3) INV (1) When the control signal TDIV is a “1” signal, it becomes an inverter, and when it is a “0” signal, it becomes a through. INV in double error detection unit 24
(2) also has exactly the same configuration. (2-4) FAD (1) Adds and subtracts numerically converted data.
In other words, when INV (1) operates as a through, it operates as an adder and INV
When (1) operates as an inverter, it operates as a subtracter. This FAD (1) essentially performs multiplication and division of data. (3) Addition/subtraction section 23 This addition/subtraction section 23 performs the "S1 2
-S0·S2'', addition of the right-hand sides of equations (14) and (15), etc.
Note that the calculations of the syndromes S0 to S3 are performed by modulo 2 calculations. That is, addition is performed by taking the exclusive OR of each corresponding bit, so there is no carry, and subtraction is the same operation as addition. The configuration and functions of the main parts will be explained below. (3-1) ROM (2) This ROP (2) is numerically converted data
This is a ROM for inversely converting lg[D] and returning it to data D. When data lg[D] is supplied to its address terminal AD, data D
Output to DL (2). (3-2) DL (2) This is a delay register consisting of 8-bit registers a, b, and c, and input data is transferred based on the clock pulse φ. (3-3) EXOR (1) This is an equal school or gate that performs modulus 2 addition and subtraction. (3-3) Switch 30 This switch 30 uses the control signal PLSCAL
This is a switch in which terminals C and A are connected when the signal is "1", and terminals C and B are connected when the signal is "0". (4) Double error detection unit 24 This is a circuit that detects whether there is a double error in the data W0 to 27 and P0 to P3. (4-1) HAD This HAD initializes R(L) by adding "1" to 1/2 of the output of the 8-bit register R(B) based on the control signal TLDLA.
The value fed back from R(L),
This is a circuit that inputs the output of AND (1) as a carry and adds "1".
That is, the lower second bit (the next bit after LSB) to the sixth bit of R(B) or the output of R(L) is supplied as input data to HAD, and TAD is input when the control signal TLDLA is "1". outputs 1/2 of the value of R(B), and when it is "1", adds "1" to the value of R(L) and outputs the result. The reason why only 5 bits of the output of R(B) are used as input to HAD is as follows.
The upper 2 bits of R(B) are actually “0, 0”
This is because. (4-2) R(L) A 5-bit register that temporarily holds the HAD output. (4-3) Compare the output of the COMP register R(L) with the preset internal constant "31", and if the output of R(L) is "31" or higher, set the "0" signal to "0". 31"
These comparators each output a "1" signal when the voltage is less than the current value. (4-4) FAD (2) This is a full adder that adds the data input to input terminals A and B, and outputs the addition result from output terminal S, but it also has a special comparison function. That is, this FAD
(2) outputs a "1" signal from the terminal C when the data at the input terminal B is smaller than the data at the input terminal A, and outputs a "0" signal when the data is greater than or equal to the data at the input terminal A. (4-5) ROM (3) Similar to ROM (2), this is a ROM for performing inverse conversion of numerically converted data. (4-6) Ra (E2) This is a 1-bit flag register, and a “1” signal is written when a double error is detected. This "1" signal is output as the E2 flag to the error flag determination circuit 10 (FIG. 2) via the terminal T4. (5) Single error detection unit 25 This is a circuit that detects whether there is a single error in the data W0 to W27 and P0 to P3. (5-1) 0 detection circuit 29 This circuit 29 is a circuit that detects whether the input data is "0" or not.
If it is “0”, the “1” signal is changed to “0”
If not, a "0" signal is output. (5-2) Ra (E0) This is a 1-bit flag register, and a "1" signal is written when the above equation (3) is satisfied. This "1" signal is output as the E0 flag to the error flag determination circuit 10 via the terminal T6. (5-3) Ra (E1) This is a 1-bit flag register, and a “1” signal is written when a single error is detected. This "1" signal is supplied as the E1 flag to the air flag determination circuit 10 via the terminal T5. (6) Data correction section 26 The data correction section 26 performs the calculations of equations (12), (19), and (20).
Error data Ej, Ek, El supplied via the internal bus INBS are added to the data Wj, Wk, Wl supplied via the data bus DABS2, respectively.
EXOR (3) performs addition, and the addition results <Wj>, <Wk>, and <Wl> are output to RAM 6 (FIG. 2) via DL (5) and terminal T2, respectively. (7) Timing signal generation circuit 27 This timing signal generation circuit 27 is actually a part of the timing control circuit 9 shown in FIG. In addition, each control signal S0E, S1 is generated using this clock path φ as a time base.
The clock pulse φ and each control signal S0E, S1E, . . . are output to each part of the circuit shown in FIG. 3. [2] Operation Next, the data error detection/correction circuit 1 described above
The operation will be explained with reference to timing charts shown in FIGS. 5 to 7. First, FIGS. 5 to 7 will be explained.
First, this data error detection/correction circuit 1 performs error checking and correction of each data W0 to W27 and P0 to P3 within one frame Fr between timings 1 to 93 shown in FIGS. 5 to 7. Here, the rising edge of timing 1 (left end) is the time when calculation of syndromes S0 to S3 is completed in each calculation circuit 21-1 to 21-4 of syndrome calculation unit 21. Further, each timing 1 to 93 is based on the clock pulse φ. That is,
The clock pulse φ rises at each boundary between timings 1 to 93. The waveform diagram includes the waveforms of each control signal S0E, S1E, etc. shown in FIG. 4, and the H level represents a "1" signal and the L level represents a "0" signal. Here, how to view this waveform diagram will be explained using an example. For example, in FIG. 5, the control signal S0E becomes a "1" signal at timings 2 and 11. Therefore, SW (5) in Figure 3 (top left in Figure 3) is open at timings 2 and 11, causing the syndrome.
S0 is output to internal bus INBS. Further, for example, the signal PLSCAL becomes a "1" signal at timings 2, 11, and 15. Therefore, switch 30 (center part in Figure 3) is set to timing 8, 11, 11.
Terminal C and terminal A are connected, and at other timings 1 to 21 (divided by 8, 11, and 15), terminal C and terminal B are connected. In addition, in Figures 5 to 7, below each wave diagram, data at the input end, data at the output end, or data on the bus line of each part in Figure 3 are shown at timings 1 to 7.
93 is shown correspondingly. For example, in FIG. 5, the INBS column shows the data on the internal bus INBS, and the FAD(1)-B column shows the full adder FAD.
(1) (Figure 3) shows the data of input terminal B,
Moreover, the column R(M) shows the output data of register R(M). Furthermore, in FIGS. 5 and 6, timings 18 to 21 are shown overlappingly. Further, various omitted signals are used in FIGS. 5 to 7, and these will be explained below. First, () indicates numerically converted data. For example, (S1) is the value of syndrome S1.
Value converted by ROM(1) (Figure 3)
lg (S1) is shown. Also, S01, S02, S11,
The meanings of S12 and S22 are shown within the square frames in FIG. 5, respectively. Note that items not shown here (S03, S34, etc.) are also abbreviated according to the same rules. Furthermore, the meanings of S4, S5, and S6 are also shown within the square frames in FIG. Next, the process of error detection and correction will be sequentially explained. (1) Determination of the presence or absence of an error (see the previous section) This determination is performed between timings 9 and 13 (see period TM1 shown in FIG. 5).
That is, first, at timing 9,
The syndrome S2 is output to the internal bus INBS, and therefore the single error detection circuit 25 outputs 0.
From the detection circuit 29, syndrome S2 is “0”
The result of the determination as to whether or not this is the case is output. This determination result is determined at the next timing 10 at the 8th point.
As shown in the figure, it is output from Ra(1). Next, at timing 10, the internal bus INBS
Syndrome S1 is output in
The determination result as to whether or not it is is output. This discrimination result is Ra at the next timing 11.
(1), and at the same time Ra
(1) From within, the discrimination result of syndrome S2 is Ra
Output from (2). This allows AND
From (2), the logical product of the discrimination results of syndromes S2 and S1 is output (see FIG. 8). below,
Through a similar operation, at timing 13, the output of AND(2) becomes the logical product of the discrimination results of syndromes S0 and S3, as shown in FIG. It becomes the logical product of each discrimination result of S2,
Therefore, the output of AND(3) is the logical product of the determination results of syndromes S0 to S3. As a result, syndromes S0 to S3 are all “0”
In this case (when there is no data error), the output of AND (3) becomes a “1” signal at timing 13. On the other hand, when syndromes S0 to S3 contain a value other than “0” (when there is no error) ), the output of AND(3) is “0”
It becomes a signal. The output of this AND (3) is a control signal that becomes a “1” signal at timing 13.
Read into Ra (E0) by TLDEO, E0
It is output to terminal T6 as a flag. Therefore, it is possible to determine whether there is an error or not using this E0 flag. (2) Single error detection (see above) This detection is performed between timings 2 and 15 (see period TM2 in FIG. 5). first,
When syndrome S0 is output to the internal bus INBS at timing 2, (S0) is output from ROM (1) at cycle timing 2. This (S0) is output from DL(1)-a at the next timing 3 (see column DL(1)-a in FIG. 5). Further, when syndrome S2 is output to the internal bus INBS at timing 3, (S2) is output from ROM (1) at the same timing 3.
Therefore, at the next timing 4,
DL(1)-a and DL(1)-b (S2),
(S0) is output. At this timing 4, the control signal supplied to SEL (1)
Control signal supplied to TAJKL, INV (1)
TAIV are both at "0" signal. Therefore, the output of DL(1)-b passes through SEL(1)
Also, INV(1) operates as a simple through, and as a result, at timing 4, the output of DL(1)-a is FAD
The output of DL(1)-b goes to the input terminal A of (1).
are respectively supplied to input terminal B of FAD (1),
FAD (1) to (S2) + (S0), i.e.
(SO2) is output. And this (SO2)
is output from R(M) at the next timing 5 (see the column R(M) in FIG. 5). At this timing 5, the control signal of SEL (2)
TOUTA is at the “0” signal, so
At the same timing 5, the output of R (M) (S02) is supplied to the address terminal AD of ROM (2) via SEL (2), and from ROM (2)
SO2 is output. This SO2 is transmitted from DL(2)-a at the next timing 6, from DL(2)-b at timing 7, and from DL(2)-b at timing 8.
The signal is sequentially outputted from D(2)-c at the timing 8, and is supplied to the input terminal B of EXOF(1) at timing 8. Similarly, at timing 6, (S1) is output from DL (1)-a and b, and therefore (S11) is output from FAD (1).
is output, and at timing 7, this (S11) is output from R(M). Therefore, S11 is output from ROM (2), and at timing 8, this S11 is DL (2) - a
is output from. At this timing 8
The control signal DBSW3 of SW(3) is at the "1" signal, so SW(3) is in the open state. As a result of the above, at timing 8
S11 to input terminals A and B of EXOR (1), respectively.
S02 is supplied, and then EXOR (1)
From this, S11+S02=S4 is output. Further, at this timing 8, the control signal PLSAL of the switch 30 is at the "1" signal, and the terminals C and A of the switch 30 are connected.
Therefore, at timing 8, DL(3)
S4 is supplied to the input terminal of -a, and at the next timing 9, this S4 is output from DL(3)-a (see FIG. 5). Then the timing
At 10, S4 is output from DL(3)-b. At this time, the signal PLSCAL is at the "0" signal, so S4 is supplied to the input of DL(3)-a. Next, at timing 11, S4 is outputted from DL(3)-a again, and at timing 12, S4 is outputted from DL(3)-b,
At timing 13, it is output again from DL(3)-a. At this timing 13, SW
The control signal DBSW1 in (1) becomes a “1” signal, and S4 output from DL (3)-a becomes SW
(1) to the internal bus INBS (see the INBS column in FIG. 5). The above is the process by which S4 is output to the internal bus INBS at timing 13. Through the same process as above, S5 connects to the internal bus at timing 14.
Output to INBS. By the way, the above equations (5) and (6) can be converted as follows in modulo 2 calculation. S1 2 −S0・S2=S1 2 +S0・S2=S4=0
...(21) S2 2 −S1・S3=S2 3 +S1・S3=S5=0
...(22) Therefore, in this data error detection/correction circuit, the above equations (7) to (10) and these (21) and (22)
The single error detection unit 25 checks between timings 9 and 15 whether or not both of the equations hold true. That is, first, at timings 9 and 10, the syndrome is detected from the 0 detection circuit 29.
The judgment results as to whether S2 and S1 are "0" are respectively output, and therefore, as shown in Fig. 8,
At timing 11, Ra(2) and Ra(1) output the determination results as to whether S2 and S1 are "0", respectively. As a result, at the same timing 11, the logical sum of the judgment results of S2 and S1 is output from OR(1). Then, this logical sum is output from Ra(3) at timing 12.
Below, as is clear from the same consideration, OR at timings 11, 12, 13, 14, and 15
(1), Ra (3), Ra (4), Ra (5), Ra (6)
The respective outputs are as shown in FIG. 8, and as a result, at timing 15, the result of determining whether syndrome S3 is 0 or not from Ra (4),
The logical sum of the judgment results as to whether the syndrome S0 is 0 or not is output, and the logical sum of the judgment results of the syndromes S1 and S2 is output from Ra (6). Therefore, at timing 15
The output of NOR (1) is the syndrome S0 to S3
It is the logical sum and negation of each judgment result, and only when syndromes S0 to S3 are not all "0", that is, only when the judgment results of whether syndromes S0 to S3 are "0" are all "0", Outputs “1” signal. In other words, the output of NOR (1) at timing 15 is the above (7)
~ “1” only if all equations (10) are satisfied
It becomes a signal. On the other hand, as is clear from FIG. 8, the output of AND(2) at timing 15 is S4,
This is the AND of the results of each determination as to whether S5 is "0" or not, and therefore becomes a "1" signal only when both S4 and S5 are "0". In other words, only if equations (5) and (6) above both hold true,
It becomes a “1” signal. As a result of the above, AND at timing 15
The output of (4) becomes a "1" signal only when all of the above equations (5) to (10) hold true, and becomes a "0" signal when even one of them does not hold true. and,
The output of this AND(4) is read into Ra(E1) by the control signal TLDE1, and outputted to the terminal T5 as the E1 flag. However, this
The presence or absence of a single error can be detected based on the E1 flag. (3) Detection of double weight error (see above section) As explained in the above section, this double error detection involves finding a set of k and l that satisfy equations (14) to (17) above. It is in. Here, if the above equations (14) and (15) are expressed using the abbreviations shown in FIG. 5, α k + α l = S6/S4 ... (23) α k・α l = S5/S4 ... …(24) becomes. Let the right sides of equations (23) and (24) be α A and α B , respectively. α kl =S6/S4=α A (25) α k・α l =S5/S4=α B (26) The following equation is obtained from the above equation (25). α KlA =0 (27) Moreover, the following formula can be obtained from the above formula (26). B=k+l...(28) Therefore, finding k and l that satisfy the above equations (14) to (17) means the above (16),
k and l that satisfy equation (17) and the above equations (27) and (28) are found. In addition, the above values A and B are respectively syndromes.
Of course, it is a value that can be calculated from S0 to S3. Next, the process of double error detection will be explained with reference to the flowchart shown in FIG. First, set B/2+1 as l (step SP1). Next, set m to 0 (step
SP2). Note that this m is a virtual counter. Next, m is incremented (step SP3). Next, based on equation (28), k
Calculate the value of (Step SP4). Next, substitute the values of l and k above into the left-hand side of equation (27), perform the calculation on the left-hand side, and the calculation result is
Ask for CA. (Step SP5). Next, CA=
Judge whether it is 0 or not, and this judgment result is "NO"
If YES, proceed to step SP7; if YES, proceed to step SP8. In step SP7, it is determined whether the l value is greater than or equal to B. If the result of this determination is "NO", proceed to step SP9; if the result is "YES", proceed to step SP9.
Proceed to SP8. At step SP9, it is determined whether l is greater than or equal to the value "31". If the result of this judgment is "NO", proceed to step SP10.
If “YES”, proceed to step SP8. At step SP10, the value of l is incremented. Next, in step SP8, the value of m is
It is judged whether or not it is less than or equal to 16. If the judgment result is "YES", return to step SP3, and if "NO",
Proceed to step SPP11. In step SP11,
It is checked again whether the value of CA is "0". If the result of this check is "NO", "no double error" (step
SP12), and if it is "YES", it is determined that "there is an error in data Wk and Wl". In this way, in the above-mentioned double error detection, first, assuming that l is B/2+1, the value of k in this case is obtained from the above equation (28), and then the obtained set of k and l is calculated. Substitute into equation (27) and check whether equation (27) is satisfied.
By performing this for each value of B/2+3,..., k and l that satisfy both equations (27) and (28) are obtained.
I'm looking for a pair of In this case, the obtained pair of k and l satisfies the above equation (17) because l is l>B/2 and k is k<B/2. Also, in the above check, the value of l is l<B (see step SP7).
and l<31 (see step SP9)
Therefore, the set of k and l that has been found satisfies the above equation (16). Also, since the total of data WO to P3 is 32, if l is changed 16 times, it is always determined whether or not there is a set of k and l, and therefore steps SP3, SP4...SP8
The trial process is repeated 16 times.
(See step SP8). The circuit that detects double errors through the above-described process is the double error detection section 24 in FIG.
Explain the operation. First, as mentioned above, at timings 13 and 14 shown in FIG.
S5 is output respectively. Also, timing 15
At timing 16, S4 is
S6 are each output to the internal bus INBS. In addition, at the above timings 13, 14, 15, and 16
The reason why S4, S5, S4, and S6 are sequentially output to the internal bus INBS is that, as is clear from the above explanation and the timing chart shown in FIG. 5, the control signal DBGW1 becomes "1" from timing 13, and Signal at 15
This is due to PLSCAL rising to “1” once. At timing 13, S4 becomes the internal bus
When output to INBS, (S4) is output from ROM (1), and this (S4) is the timing
14, it is output from DL(1)-a. Also, at timing 14, S5 connects to the internal bus.
When output to INBS, ROM (1) to (S5) is DL (1) - a at timing 15.
is output from. Also, at this timing 15, (S4) is output from DL(1)-b.
At this timing 15, the control signal
TAJKL is at “0” signal and control signal TDIV is at “1” signal, therefore DL(1)-b
(S4) passes through SEL (1) and INV (1)
The signal is inverted and supplied to input terminal B of FAD (1). As a result, the output of FAD (1) at timing 15 is (S5) - (S4), that is, (S5/S4), and this (S5/S4)
is output from R(M) at timing 16. At this timing 16, the control signal
TOUTA is at the “0” signal, so
(S5/S4) in R(M) is supplied to R(B) via SEL(2). At this time, the control signal
TLDB is on the “1” signal, so
(S5/S4) outputted from R(M) at timing 16 is read into R(B) at the same timing 16. Thereafter, this data (S5/S4) is held at R(B) until all processing is completed (until timing 93). Here, data (S5/S4) is data B, as is clear from equation (26) above. Next, the timing is set using the same process as above.
At 18, data (S6/S4) is read into R(A). And this data (S6/S4) is
Thereafter, it is held at R(A) until timing 93.
Here, data (S6/S4) is the above (25)
As is clear from the equation, this refers to data A. In this way, at timing 18, R
Data A and B are prepared for (A) and R(B), respectively.
And from this timing 18 to timing 66
Detection of double errors takes place between (see FIG. 6). That is, first at timing 18
Since data B is supplied to the input terminal of HAD, B/2+1 is output from HAD by control signal TLDLA, and this data B/2+
1 is read into R(L) at the same timing 18. At the next timing 19, R/(L)
Data B/2+1 (hereinafter referred to as l 0 ) is output from. Also, at this time, the control signal TKCAL
is at the “1” signal, therefore, AND
(5) is in the open state, and INV (2) operates as an inverter. As a result, at timing 19, data B is supplied to input terminal A of FAD (2), data 0 (negation of l 0 ) is supplied to input terminal B, and B-l 0 ,
In other words, k 0 is output (step 9 in Figure 9).
(See SP4). This data k 0 is the next timing
Output from R (KL) at 20, ROM
(3). As a result, α Ko is output from ROM (3) at timing 20,
It is supplied to input terminal B of EXOR(2). On the other hand, at timing 19, the control signal
TOUTA becomes a “1” signal, data A in R(A) is supplied to the input terminal of ROM(2) via SEL(2), and data α A from ROM(2)
is output. This data α A is output from DL(2)-a at the next timing 20,
It is supplied to SEL (4) via SW (3).
At this time, the control signal TALPA of SEL (4) is at the “1” signal, so the timing
At 20, data α A passes through SEL (4)
It is supplied to input terminal A of EXOR(2). As a result of the above, at timing 20, EXOR
The output of (2) becomes α A + α Kp , and this data α A
Kp is DL (4) at the next timing 21
is output from. Also, at timing 20, the control signal
TKCAL is at the “0” signal, so
As ADN (5) becomes closed, INV
(2) operates as a simple through. As a result, at timing 20, data "0" is supplied to input terminal A of FAD (2), data l 0 is supplied to input terminal B, and data l 0 is output from FAD (2). This data l 0 is output from R (KL) at the next timing 21,
Supplied to ROM (3). This results in
α l 0 is output from ROM (3) and EXOR (2)
is supplied to input terminal B of. On the other hand, at this timing 21, the control signal
TARA is at “0” signal, therefore,
The content of DL (4) α A + α K0 is passed through SEL (4)
It is supplied to input terminal A of EXOR(2). As a result, EXOR (2) at timing 21
The output of is α A + α K0 + α l0 (see step SP5 in Figure 9), and this data α A + α K0
l0 is supplied to the input terminal of the 0 detection circuit 32.
The 0 detection circuit 32 detects that the output of EXOR (2) is “0”
When it is, it outputs a "0" signal, and when it is other than "0", it outputs a "1" signal (see SP in Figure 9). Here, if the data α A + α K0 + α l0 is not “0”, the 0 detection circuit 23 at timing 21
A “1” signal is output from the AND(1) input terminal. Also, at timing 21, the control signal
TADL becomes a "" signal, and this "1" signal is supplied to the input terminal of AND (1). Also,
At this timing 21, l 0 ≦ 31 and l 0
≦B, so COMP and
A "1" signal is output from each terminal C of FAD (2). As a result, the output of AND(1) becomes a “1” signal at timing 21,
This "1" signal is supplied to R(L). As a result, it is supplied to HAD as a carry signal. As a result, "1" is added to the value of the output of R(L), the output of HAD becomes l 0 + 1 (hereinafter referred to as l 1 ), and this data l 1 is used as the next timing.
It is output from R(L) at 22. Below, timings 22~24, 25~27,...64~
The same operation is repeated at 66, and as a result, α A + α K1 + α l1 , α A are obtained from EXOR (2) at timings 24, 27, ... 66, respectively.
K2 + α l2 , . By the way, each data l 1 , k 1 . . . etc. shown in the above explanation and FIG.
If the output of (2) becomes "0", that is, if there is a pair of k and l that satisfy all of the above equations (16), (17), (27), and (28), then It will look like this. i.e. timing 24 for example
If the data α A + α K1 + α l1 output from EXOR (2) is “0” at the same time, the 0 detection circuit 32 outputs “0” at the same timing 24.
A signal is output and fed to the input end of AND(1). As a result, even if the control signal TADL rises to a “1” signal at timing 24,
The output of AND(1) continues to be a "0" signal, so the contents of R(L) are never incremented. As a result, at timing 27, data α A + α K1 + α l1 is transferred again from EXOR (2).
is output, a "0" signal is output from the 0 detection circuit 32, and the same operation is repeated thereafter. That is, at timing 24
Data output from EXOR (2) α A + α K1
If +α l1 is “0”, then R(L)
The contents of are held in l 1 , and R (KL) outputs k 1 at timings 26, 29,...65, and l 1 at timings 27, 30...66, respectively.
From EXOR (2) timing 27, 30,...66
α A + α K1 + α l1 is output at the timing 27, 30, ...66 from the 0 detection circuit 32.
A “0” signal is output at this point. and,
When the “0” signal is output from the 0 detection circuit 32 at timing 60, the inverter 33
The output of ``1'' becomes a ``1'' signal, and this ``1'' signal is read into Ra (E2) by the control signal TLDE2 which becomes ``1'' at timing 66.Then, the contents of this Ra (E2) are sent to the terminal as the E2 flag. It is output to T4.
It is possible to detect whether there is a double error using the E2 flag. In addition, if the content of R(L) reaches 31 before timing 66, or if l≧B, the terminal C of COMP or FAD (2)
A "0" signal is outputted from , and therefore R(L) is not incremented from that point on (see SP7 and SP9 in FIG. 9). (4) Correction of double error (see above) Equation (18) can be converted to Ek = {S1 + α l・S0} / α A ... (30) El = {S1 + α k・S0}/α A ...(31) It can be expressed as follows. And these values
Once Ek and El are found, errors in data Wk and Wl can be corrected based on equation (19). This double error is corrected at timings 71 to 88.
(Figure 7). At first,
Correction of data Wl is performed between timings 71 and 80 (see period TM3 shown in FIG. 7). That is, first, when syndrome S0 is output to the internal bus INBS at timing 71, (S0) is output from ROM (1). This (S0) is outputted from DL(1)-a at the next timing 72 and supplied to input terminal A of FAD(1). On the other hand, at this timing 72, the output of R(KL) is data indicating the position of the error data Wk. The reason for this is as follows. The control signal TKCAL becomes a "0" signal at timing 65, and thereafter continues to be a "0" signal until timing 70. When the control signal TKCAL becomes a "0" signal, the output of AND (5) becomes "0", and therefore "0" is supplied to the FAD (2) input terminal A, and the INV
(2) operates as a through, and therefore,
The output of R(L), that is, the data l indicating the position of the error data Wl is supplied to the FAD(2) input terminal B, and as a result, the output of the FAD(2) becomes
It becomes l. Then, this l is output from R (KL) at timing 66. From then on,
The output of FAD (2) continues l until timing 70, so the output of R (KL) is at timing
Continue l until 71. Next, at timing 71, the control signal TKCAL becomes a "1" signal.
As a result, at the same timing 71, FAD
The output of (2) becomes B-l=k, and this data k is output from R(KL) at the next timing 72. The changes in the output of R(KL) after timing 72 are as follows.
First, at timing 72, the control signal
TKCAL becomes "0", and therefore, at the same timing 72, the output of FAD (2) becomes l, and at the next timing 73, l is output again from R (KL). From then on, the timing
Since the control signal TKCL becomes a "1" signal at timings 84 and 87, the output of (KL) becomes k at timings 85 and 88, and becomes l at other timings (see FIG. 7). In this way, at timing 72, R
The output of (KL) is k. Also, at this timing 72, the control signal TAJ supplied to SEL (3) is a "0" signal, the control signal TAJKL supplied to SEL (1) is a "1" signal,
The control signal TDIV supplied to INV(1) is at the "0" signal. As a result, timing 72
, the above-mentioned {S0) is supplied to the input terminal A of FAD (1), k is supplied to the input terminal B, and
From FAD(1) to k+(S0), i.e. (α k
S0) is output. And this (α k・S0)
is output from R(M) at the next timing 73. At this timing 73, SEL
(2) is supplied with a "0" signal as the control signal TOUTA. Therefore, R(M)
k・S0) is read through SEL (2)
ROM(2) is supplied, and from ROM(2),
α k・SO is output. This α k・S0 is output from D(2)-a at the next timing 74, and then, at timing 76, DL(2)
-c and is supplied to input terminal B of EXOR(1). On the other hand, at timing 76, the internal bus
Syndrome S1 is output to INBS, and
At the same time, the control signal DBSW2 supplied to SW(2) rises to a "1" signal. As a result, the syndrome occurs at timing 76.
S1 is supplied to input terminal A of EXOR (1) via SW (2), and from EXOR (1) α1 k・S0
+S1 (hereinafter referred to as: see inside the rectangular frame in Figure 7) is output. Then, at timing 76, the control signal PLSCAL becomes “1”
Because it is at the signal, through switch 30
It is supplied to DL(3), outputted from DL(3)-a at the next timing 77, and outputted to the internal bus INBS via SW(1). Internal bus INBS at timing 77
When output to ROM(1), () is output from ROM(1). This () is output from DL(1)-a at timing 78 and FAD(1)
is supplied to input terminal A of. On the other hand, at this timing 78, the control signal of SEL (2)
TOUTA, SEL (3) control signals TAJ, SEL
The control signal TAJKL of (1) and the control signal TDIV of INV (1) both become “1” signals, and as a result, data A stored in R(A)
Via SEL(2), SEL(3), SEL(1)
Supplied to INV (1), where it is inverted
It is supplied to input terminal B of FAD (1). As a result, at timing 78, FAD(1) outputs ()-A, that is, (/α A ). Here, /α A = {S1 + α k・S0} / α A = El
...(32) (see equation (31)), so the output of FAD (1) at timing 78 is (El)
becomes. Then, this (El) is output from R (M) at the next timing 79, and SEL
(2) is supplied to ROM (2),
El is output from ROM (2). This El is output from DL(2)-a at the next timing 80. At this time (timing 80), SW
(3) and SW (2) are both open,
Therefore, El output from DL(2)-a
is the internal bus via SW(3) and SW(2).
It is output to INBS and supplied to input terminal B of EXOR (3) via this internal bus INBS. On the other hand, at timing 77, the control signal TAJ of SEL (3) is at the "0" signal, so at the same timing 77, the output l of R (KL) is sent to the address control circuit 8 via SEL (3) and terminal T3. (Figure 2). The address control circuit 8 inputs this data I at the same timing 77, and outputs the address of the RAM 6 where the data Wl is stored at a timing 80 three timings later. As a result, data Wl is output from RAM6 at the same timing 80, and data bus DABS2
It is supplied to input terminal A of EXOR (3) via. As a result, at timing 80
Wl+El, that is, correct data <Wl> is output from EXOR(3). At this time, SW
The control signal DOSW in (4) is a “1” signal, so the data <Wl> is supplied to DL (5) via SW (4) and is delayed by 3 timings by this DL (5). , timing 83
The signal is output to the data bus DABS1 (FIG. 2). On the other hand, at timing 80, R
The output l of (KL) is supplied to the address control circuit 8 via SEL (3). The address control circuit 8 receives this data l at the same timing 80.
is input, and the address of data Wl is output to the RAM 6 at timing 83 three timings later. As a result, data <Wl> is transferred to RAM6
written to. The above is the process of correcting data Wl.
Using exactly the same process as above, timing 79
~88 (see period TM4), data Wk is corrected. Note that a description of the process of correcting this data Wk will be omitted. Please refer to the timing chart in FIG. (5) Single error correction (see above) This correction is performed between timings 86 and 92. That is, first, at timing 86, syndrome S0 is output to the internal bus INBS, and then at timing 87, syndrome S1 is output to the internal bus INBS. As a result, at timing 87, (S0) becomes
At timing 88, (S1) is each DL (1)
-a, and at the same timing 88
(S1) is output from DL(1)-a, and (S0) is output from DL(1)-b. On the other hand, at this timing 88, the control signal of SEL (1)
TAJKL is a “0” signal, and the control signal TDIV of INV (1) is a “1” signal, therefore,
Data with each bit of (S0) inverted is supplied to input terminal B of FAD (1). As a result,
From FAD (1) to (S1) at timing 88
−(S0), that is, (S1/S0) is output,
This data (S1/S0) is the next timing89
is output from R(M) at here,
Data (S1/S0) is data j indicating the position of error data Wj, as is clear from equation (11). This data j is then applied to the control signal of SEL (2) at timing 89.
Since the control signals TAJ of TOUTA and SEL(3) are "0" and "1", respectively, SEL(2),
It is supplied to the address control circuit 8 via SEL(3). The address control circuit 8 inputs this data j, and at timing 92 after three timings.
At this point, the data Wj is output to the address RAM6. This causes at timing 92
Data Wj is read from RAM6 and supplied to input terminal A of EXVR (3) via data bus DABS2. Also, this timing 92
The syndrome S0 (=Ej) is
It is output to INBS and supplied to input terminal B of EXOR (3) via the same internal bus INBS.
As a result, EXOR at timing 92
From (3), Wj+S0〕<Wj> is output, and SW
(4) to DL (5), and at timing 95 three timings later, the data bus
Output to DABS1. On the other hand, syndromes S0 and S1 are output to the internal bus INBS at timings 90 and 91, respectively, and as a result, data j is output to the address control circuit 8 at timing 92 through the same process as described above. Address control circuit 8 receives this data j, and at timing 95, three timings later, sets the address of data Wjj.
Output to RAM6. This allows data <
Wj> is read into RAM6. The details of the data error detection/correction circuit 1 have been described above. Next, the components 10 to 14 shown in FIG. 2 will be explained. (i) Error flag determination circuit 10 In the above explanation, in order to simplify the explanation, the format of the data recorded on the disk is shown in Fig. 1, and the error correction data and the four data P0 to P3 are used. However, in reality, 1
Error correction data Q0 to Q3 are added to four other pieces of data within the frame Fr, and the data recording order is also varied (cross interleaving). Regarding this point, details can be found in, for example, Japanese Patent Application Laid-Open No. 57-4629. Then, the data error detection/correction circuit 1 first detects the error correction data.
Based on P0 to P3, data errors are detected and corrected through the process described above (referred to as C1 decoding), and at this time flags E0 to E2 are output to the error flag determination circuit 10, respectively. The error flag determination circuit 10 creates a C1 flag based on the flags E0 to E2 supplied at the time of C1 decoding, and writes it into the RAM 6. Here, the C1 flag is a flag indicating whether uncorrected data is included in the data checked in C1 decoding. Next, the data error detection/correction circuit 1 performs error detection and correction again in substantially the same manner as C1 decoding (referred to as C2 decoding) based on the error correction data Q0 to Q3, and flags E0 ~E2 are each output to the error flag determination circuit 10. At this time, C1
The flag is supplied to the error flag determination circuit 10. The error flag determination circuit 10 determines the error flag based on the flags E0 to E2 and the C1 flag during C2 decoding.
Create a C2 flag and write it to RAM6. This C2
The flag indicates whether each data W0 to W23 has been corrected (strictly speaking, it indicates whether the probability of data error is higher than the level being considered), and indicates whether the data W0 to W23 is uncorrected (that is, the probability of error is higher than the level being considered). "1" is written corresponding to the data of "high". In this way, the error flag determination circuit 10
This circuit creates and writes the C1 and C2 flags. Note that during C1 decoding, error correction data Q0 to Q3 used during C2 decoding are also handled in the same way as signal data. That is, during C2 decoding, the total number of data during syndrome calculation is 28 (music signal data = 24, error correction data = 4. (ii) Flag detection circuit 11, etc. The above-mentioned C1 decoding and C2 decoding are completed. Then, the music signal data in the RAM 6 is sequentially read out together with the C2 flag under the control of the control circuit 8, output to the data bus DABS2, and supplied to the parallel/serial conversion circuit 12. At this time, the flag detection circuit 11 checks the C2 flag added to each data, determines whether the data has been corrected or not, and outputs a control signal TEI to the correction circuit 13 if the data has not been corrected.The correction circuit 13 is a parallel/ It is detected based on the control signal TEI whether the data output from the serial conversion circuit 12 is uncorrected data, and if it is not corrected, it is output as is, and if it is uncorrected, linear interpolation or prefixing is performed. Data is corrected using a retention method, and the serial/parallel conversion circuit 14
Output to. Serial/parallel conversion circuit 14
converts the serial data output from the correction circuit 13 into parallel data, and converts the serial data output from the correction circuit 13 into parallel data, and converts it into parallel data.
Output to. The output of this DAC is fed to a speaker to generate music. As explained above, according to the present invention, data on the internal bus including syndromes etc. can be efficiently and quickly transferred through a single circulation system consisting of a numerical conversion means, an addition/subtraction means, an inverse conversion means, and an addition stage. At the same time, after accurately determining the double error situation using the output of the addition/subtraction means of this circulation system, the error data is outputted onto the internal bus using the circulation system again, thereby correcting the data. It is possible to detect double data errors using a Reed-Solomon code, and the effect can be achieved in a short time and with a minimum hardware configuration.

【図面の簡単な説明】[Brief explanation of drawings]

第1図はデイジタルオーデイオデイスクに信号
データW0〜W27および誤り訂正用データP0〜P3
が各々記録されている状態を示す概略図、第2図
はこの発明の一実施例によるデータ誤り検出・訂
正回路1を適用したCDプレーヤの構成を示すブ
ロツク図、第3図は同データ誤り検出・訂正回路
1の構成を示すブロツク図、第4図は第2図に示
したタイミング制御回路のうちデータ誤り検出・
訂正回路に関係するタイミング信号を発生する部
分のみを抜き出したタイミング信号発生回路27
の構成を示す図、第5図〜第7図は各々同データ
誤り検出・訂正回路1の動作を説明するためのタ
イミングチヤート、第8図は同データ誤り検出・
訂正回路1において、「誤りなし」および「単一
誤り」を各々検出する際のタイミング図、第9図
は同データ誤り検出・訂正回路1において「二重
誤り」を検出する場合の動作フローチヤートであ
る。 1……データ誤り検出・訂正回路、INBS……
内部バス、ROM(1)……数値変換手段(リー
ドオンリメモリ)、FAD(1)……加減算手段
(フルアダー)、ROM(2)……逆変換手段(リ
ードオンリメモリ)、DL(2)……レジスタ(デ
イレイレジスタ)、EXOR(1)……加算手段
(イクスクルーシブオアゲート)、24……データ
誤り検出手段(二重誤り検出部)、26……デー
タ訂正部、27……タイミング信号発生回路。
Figure 1 shows signal data W0 to W27 and error correction data P0 to P3 on the digital audio disk.
FIG. 2 is a block diagram showing the configuration of a CD player to which a data error detection/correction circuit 1 according to an embodiment of the present invention is applied, and FIG.・A block diagram showing the configuration of the correction circuit 1. FIG. 4 is a block diagram showing the configuration of the correction circuit 1.
Timing signal generation circuit 27 from which only the portion that generates timing signals related to the correction circuit is extracted
5 to 7 are timing charts for explaining the operation of the data error detection/correction circuit 1, and FIG. 8 is a timing chart for explaining the operation of the data error detection/correction circuit 1.
A timing diagram when the correction circuit 1 detects "no error" and a "single error," and FIG. 9 is an operation flowchart when the data error detection/correction circuit 1 detects a "double error." It is. 1...Data error detection/correction circuit, INBS...
Internal bus, ROM (1)... Numeric value conversion means (read-only memory), FAD (1)... Addition/subtraction means (full adder), ROM (2)... Inverse conversion means (read-only memory), DL (2)... ...Register (delay register), EXOR (1)...Addition means (exclusive OR gate), 24...Data error detection means (double error detection unit), 26...Data correction unit, 27...Timing signal generation circuit.

Claims (1)

【特許請求の範囲】 1 リードソロモン符号に基づいてデータ誤りを
検出し、検出した誤りデータを自動的に訂正する
データ誤り検出・訂正回路において、 (a) データ誤りを含むデータが出力されるデータ
バスと、 (b) データ誤り検出・訂正のための内部バスと、 (c) データバスに出力されたデータから前記リー
ドソロモン符号のシンドロームを演算し所定タ
イミングで前記内部バスへ出力するシンドロー
ム演算手段と、 (d) 前記内部バスに生じたシンドロームを含むデ
ータを前記リードソロモン符号のガロア体GF
の元αXに対応させてαX→Xに数値変換する数
値変換手段と、 (e) この数値変換手段から得られる所定タイミン
グの数値同志を加減算する加減算手段と、 (f) この加減算手段の出力を前記ガロア体GFの
元αXに対応させてX→αXに逆変換し元の形の
データに戻す逆変換手段と、 (g) この逆変換手段から得られる所定タイミング
のデータ同志を加算して前記内部バスに出力す
る加算手段と、 (h) 前記加減算手段の出力に基づいてデータ二重
誤りの有無および二重誤り位置を検出するデー
タ誤り検出手段と、 (i) データの二重誤り位置に基づき前記数値変換
手段、加減算手段、逆変換手段、および加算手
段からなる循環系を介して前記内部バスに誤差
データを出力させこの内部バス上の誤差データ
で前記データバス上の誤りデータを訂正するデ
ータ訂正手段と、 (j) 前記シンドローム演算手段と前記内部バスと
の間、前記数値変換手段と前記加減算数手段と
の間、前記加減算手段と前記逆変換手段との
間、前記逆変換手段と前記加算手段との間、前
記加算手段と前記内部バスとの間、および前記
データ誤り検出手段と前記加減算手段との間を
各々接続する複数の接続手段と、 (k) これら各接続手段を制御するタイミング信号
を発生するタイミング信号発生手段と を具備してなるデータ誤り検出・訂正回路。
[Claims] 1. In a data error detection/correction circuit that detects data errors based on a Reed-Solomon code and automatically corrects the detected error data, (a) data including data errors is output; (b) an internal bus for data error detection and correction; and (c) syndrome calculation means for calculating the syndrome of the Reed-Solomon code from the data output to the data bus and outputting it to the internal bus at a predetermined timing. (d) The data including the syndrome occurring on the internal bus is converted into a Galois field GF of the Reed-Solomon code.
(e) an addition / subtraction means for adding and subtracting the numerical values at a predetermined timing obtained from this numerical conversion means; (g) an inverse transformation means that corresponds the output to the element α X of the Galois field GF and inversely transforms it from X → α (h) data error detection means for detecting the presence or absence of a data double error and the location of a double error based on the output of the addition/subtraction means; Based on the location of the heavy error, error data is output to the internal bus through a circulation system consisting of the numerical value conversion means, addition/subtraction means, inverse conversion means, and addition means, and the error data on the internal bus is used to eliminate the error on the data bus. (j) between the syndrome calculation means and the internal bus, between the numerical value conversion means and the addition/subtraction number means, between the addition/subtraction means and the inverse conversion means; (k) a plurality of connection means respectively connecting between the inverse conversion means and the addition means, between the addition means and the internal bus, and between the data error detection means and the addition/subtraction means; A data error detection/correction circuit comprising timing signal generation means for generating a timing signal for controlling the connection means.
JP58186105A 1983-10-05 1983-10-05 Data error detection and correction circuit Granted JPS6077529A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58186105A JPS6077529A (en) 1983-10-05 1983-10-05 Data error detection and correction circuit
US06/643,951 US4646303A (en) 1983-10-05 1984-08-24 Data error detection and correction circuit
EP84306086A EP0139443B1 (en) 1983-10-05 1984-09-06 Data error detection and correction circuit
DE8484306086T DE3483938D1 (en) 1983-10-05 1984-09-06 DATA ERROR DETECTION AND CORRECTION.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58186105A JPS6077529A (en) 1983-10-05 1983-10-05 Data error detection and correction circuit

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP22178983A Division JPS6094538A (en) 1983-10-05 1983-11-25 Method for detecting data double error

Publications (2)

Publication Number Publication Date
JPS6077529A JPS6077529A (en) 1985-05-02
JPH0153940B2 true JPH0153940B2 (en) 1989-11-16

Family

ID=16182445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58186105A Granted JPS6077529A (en) 1983-10-05 1983-10-05 Data error detection and correction circuit

Country Status (1)

Country Link
JP (1) JPS6077529A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63317837A (en) * 1987-10-09 1988-12-26 Sanyo Electric Co Ltd Data processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58123144A (en) * 1982-01-18 1983-07-22 Nec Home Electronics Ltd Decoding system of read solomon code
JPS58125175A (en) * 1982-01-21 1983-07-26 Sony Corp Multiplying circuit of galois field

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58123144A (en) * 1982-01-18 1983-07-22 Nec Home Electronics Ltd Decoding system of read solomon code
JPS58125175A (en) * 1982-01-21 1983-07-26 Sony Corp Multiplying circuit of galois field

Also Published As

Publication number Publication date
JPS6077529A (en) 1985-05-02

Similar Documents

Publication Publication Date Title
US4646303A (en) Data error detection and correction circuit
EP0129849A2 (en) Error correction method and system
US4800515A (en) Circuit for operating finite fields
US4868827A (en) Digital data processing system
US5068856A (en) Method and circuit for detecting data error
JPH0153940B2 (en)
JPH0151095B2 (en)
JPH0828052B2 (en) Frame generation method for PCM data
KR920010184B1 (en) Circuit for calculating finite fields
JPS638648B2 (en)
JP2612423B2 (en) Frame generation method for PCM data
JPH0793913A (en) Error corrector
JPS6390225A (en) Encoder for abbreviated cyclic code
JPH0414529B2 (en)
KR950011290B1 (en) Address generating circuit
JPS605478A (en) Method and device for correction of error
JPH10107648A (en) Error correction processing circuit
KR100242320B1 (en) Error correction signal synchronizing method for examining error correction of compact disc rewritable disc drive
JPH01158828A (en) Error detection/correction device
JPH07106985A (en) Error correcting device
JPS61242425A (en) Correcting and decoding method for absence of reed-solomon code
JPH07123013A (en) Error correction device
JPH0518490B2 (en)
JPH0766632B2 (en) Digital audio player
JPH0518487B2 (en)