JPH041530B2 - - Google Patents
Info
- Publication number
- JPH041530B2 JPH041530B2 JP60153183A JP15318385A JPH041530B2 JP H041530 B2 JPH041530 B2 JP H041530B2 JP 60153183 A JP60153183 A JP 60153183A JP 15318385 A JP15318385 A JP 15318385A JP H041530 B2 JPH041530 B2 JP H041530B2
- Authority
- JP
- Japan
- Prior art keywords
- error
- data
- error flag
- output
- correction
- 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
Links
- 238000012937 correction Methods 0.000 claims description 111
- 238000000034 method Methods 0.000 claims description 19
- 208000011580 syndromic disease Diseases 0.000 claims description 6
- 238000001514 detection method Methods 0.000 description 37
- 238000004364 calculation method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
技術分野
本発明はエラー・フラグの付加されたデータの
誤り訂正と訂正後にエラー・フラグの更新を行な
う方式に関するものであり、特に複数の符号によ
り多重に誤り検出及び誤り訂正符号化されたデー
タの誤り訂正を繰り返し行なうような方式に関す
る。
背景技術
まず本発明における誤り訂正方式の説明におい
て用いられる誤り訂正符号について説明する。こ
こで用いるのはリード・ソロモン符号であり、符
号長をnとして情報データWi(i=1、2…、n
−2)に2つの検査データP、Qを付加して符号
語を構成する。P、Qは次式を満たすように生成
される。o-2
〓i=1
Wi+P+Q=0、o-2
〓i=1
αn-iWi+αP+Q=0
すなわち、
Technical Field The present invention relates to a method for error correction of data to which an error flag has been added and for updating the error flag after the correction, and particularly relates to a method for performing error correction on data to which an error flag has been added and for updating the error flag after the correction. It relates to a method that repeatedly performs error correction. BACKGROUND ART First, an error correction code used in explaining an error correction method in the present invention will be explained. The Reed-Solomon code used here is information data W i (i=1, 2..., n
-2) and two test data P and Q are added to form a code word. P and Q are generated to satisfy the following equation. o-2 〓 i=1 W i +P+Q=0, o-2 〓 i=1 α ni W i +αP+Q=0 That is,
【式】【formula】
【式】
但し加算は2を法とするものとし、各データは
mビツトからなり、αはガロア体GF(2αm)上の
原始元とする。符号語中に誤りが発生した場合は
以下のようにして訂正される。
誤りを含んだ情報データ及び検査データに対し
て、下記の様に定義されるシンドロームSP、SQを
算出する。
SP=o-2
〓i=1
Wi+P+Q
SQ=o-2
〓i=1
αn-iWi+αP+Q
誤つたデータが1つもなければSP=SQ=0とな
る。
2つの情報データの誤りがj、kの位置(1≦
j≦k≦n−2)に発生し、その結果Wj、Wkが
それぞれW′j=Wj+ej、W′k=Wk+ekになつたも
のとする。但し、ej、ekはWj、Wkの誤りパター
ンである。このときSP、SQは以下のようになる。
SP=o-2
〓i=1
Wi+P+Q+ej+ek=ej+ek
SQ=o-2
〓i=1
αn-iWi+αP+Q+αn-jej+αn-kek=αn-j
ej+αn-kek
これよりej、ekを求めると
ej=αn-kSP+SQ/αn-j+αn-k=SP+αn-jSP+SQ/α
n-j+αn-k=SP+ek
ek=αn-jSP+SQ/αn-j+αn-k=SP+αj-nSQ/1+α
j-k
但し、加算は2を法としているので減算と同じ
になる。
したがつて、あらかじめ他の手段により誤り位
置j、kが求まつていれば、上式によりej、ekが
求まり誤り訂正が可能となる。また1つの情報デ
ータの誤りがjの位置に発生し、誤りパターンを
ejとすると上式においてek=0として
SP=ej
SQ=αn-jej
これより
αj=αn・SP/SQ
このとき位置jがあらかじめ求まつていなくて
もSP、SQよりαjを求めることによりjが求められ
ejはSPそのものなので、誤り訂正が可能となる。
以上説明したように、2つの検査データを持つ
リード・ソロモン符号においては、符号語中のデ
ータ誤りに対し、誤りの位置が既知であれば2つ
のデータ、既知でなければ1つのデータの訂正が
可能である。また、情報データWiの誤りについ
てのみ説明したが、P、Qの誤りについても同様
であり、Pをn−1番目、Qをn番目のデータと
して取り扱えばよい。
従来において、誤り訂正符号としてリード・ソ
ロモン符号を用いたものには、PCM録音機など
がありまた家庭用VTRを利用したPCM録音アダ
プタはリード・ソロモン符号と類似したb隣接符
号を用いている。
このようなPCM音声データの誤り訂正装置で
は音声データを一定の音声サンプリング周波数の
周期でD/A変換に供給しながら誤り訂正を行な
うため、シンドロームの計算などの訂正前の処理
は訂正よりも速いタイミングで行なう必要があ
る。またPCM音声データは前後のデータと相関
が強く訂正不能の場合には誤りの検出さえできれ
ば平均値補間などの処理により誤りの影響が軽減
できるため、必ずしも誤り訂正符号の訂正能力の
限界まで訂正を行なう必要がなく、誤り訂正方法
及びエラー・フラグ処理も簡単な方法を用い、ま
た誤り訂正を繰り返し行なうこともあまりない。
しかしこのような誤り訂正装置は、PCM音声
以外の一般のコンピユータプログラム等のデイジ
タル・データの誤り訂正には適さない。なぜなら
ば、上記デイジタル・データでは誤ちの検出より
も訂正が重要であり、複数の符号により多重に誤
り検出符号化、誤り訂正符号化して誤り訂正を繰
り返し行ない、各誤り訂正符号の能力の限界近く
まで訂正するために複雑な訂正方法とエラー・フ
ラグ処理を行なわなければならないからである。
また、かかるデイジタル・データの場合は必ずし
もデータを送出しながら誤り訂正を行なう必要が
ないので、動作タイミングの制限はPCM音声デ
ータの場合よりも緩やかである。
発明の概要
本発明は上記のようなPCM音声データの誤り
訂正装置では対応できないような、特に、多重に
誤り検出符号化、誤り訂正符号化された一般のデ
イジタル・データの複雑な誤り訂正とエラー・フ
ラグ処理を比較的簡単な回路構成で実行すること
を可能にした誤り訂正方式を提供することを目的
としている。
本発明による誤り訂正方式は、あらかじめ求め
られた誤りの状態を示すために少なくとも1ビツ
トからなるエラー・フラグを各データに対応せし
め、メモリに記憶された誤り訂正を行なうべきデ
ータ及び各データに対応したエラー・フラグに対
して符号語毎に2回連続してアクセスして1つの
符号語を構成するデータの誤り訂正を行なうと同
時にエラー・フラグの更新をエラー・フラグの値
決定の直前及び直後において前記メモリ以外の第
1及び第2記憶手段にそれぞれ一時記憶保持して
行なうことを特徴としている。
実施例
以下、本発明の一実施例を添付図面に基づいて
説明する。第1図は本発明方式を実行する誤り訂
正装置の1例を示し、1はデータ入力端子、2は
データ・バス、3は誤り訂正前及び訂正後のデー
タが記憶されるデータRAM、4はデータにα1-n
を乗じるα1-n乗算器、5は2つの入力信号A,B
に対してA+αBを出力する5aのA+αB演算回
路と5aの出力を入力としその出力が5aのB入
力となら第1のDフリツプ・フロツプ5bとから
なるSQ算出回路、6は6aの第1加算器と6aの
出力を入力としその出力が6aの一方の入力とな
る第2Dフリツプ・フロツプ6bとからなるSP算
出回路、7は5,6の出力を加算する第2加算
器、8は7の出力を1+αj-k除算する1−αj-k除
算器、9は6の出力と20の制御信号のアンド論
理を出力するアンド・ゲート、10は8と9の出
力を加算する第3加算器、11は3の出力データ
と10の出力を加算する第4加算器、12は11
の出力をラツチし、その出力が3に書き込まれる
ときにのみ有効状態となるように23によつて制
御される3ステートDフリツプ・フロツプ、13
は5,6の出力のすべてのビツトが“0”である
ことを検出する第一0検出回路、14は7の出力
のすべてのビツトが“0”であることを検出する
第二0検出回路、15はエラー・フラグ入出力端
子、16はエラー・フラグバス、17は誤り訂正
前及び訂正後のエラー・フラグを記憶するエラ
ー・フラグRAM、18は符号語中の各データに
対応したエラー・フラグのうち誤り存在を示して
いるものの数を求めるエラー・カウンタ、19は
符号語中のj番目とk番目(j<k)の2つのデ
ータのエラー・フラグが誤り存在を示していた場
合にk−jの値を求めるk−jカウンタ、20は
エラー・フラグ・バス16上に送出されたエラ
ー・フラグをラツチするエラ・フラグ・レジス
タ、21は13,14,18の出力と各データの
エラー・フラグを参照することにより訂正すべき
データを決定して27に知らせると共に必要に応
じて27に5bへタイミング信号を送ることを停
止させ、更に9の制御を行なう訂正コントロール
回路、22は13,14,18の出力と各データ
のエラー・フラグを参照することにより訂正後に
更新して17に書き込むべきエラー・フラグの値
を決定するエラー・フラグ決定回路、23はエラ
ー・フラグ決定回路22から出力されたエラー・
フラグをラツチするエラー・フラグ・レジスタ、
24は3,17,27に各データ及びエラー・フ
ラグに対応したアドレスを出力するアドレス・カ
ウンタ、25はアドレス・カウンタ24から出力
されたアドレスをラツチするアドレス・ラツチ、
26はアドレス・カウンタ24の出力及びアドレ
ス・ラツチ25の出力のうちの一方を選択的に出
力するセレクタ、27は21,24,28の出力
及びクロツクを入力とし、クロツクを基に各種タ
イミング信号、制御信号を発生して24,28を
制御するとともに同図中の各回路にタイミング信
号、制御信号を送出するタイミングコントロール
回路、28は1つの符号語の訂正において現在が
何回目のアクセスであるかを示すアクセス・カウ
ンタ、29はクロツク入力端子である。
同図においてデータRAM3から読み出された
データは4〜12で構成される訂正回路で訂正さ
れるが、この訂正回路の構成自体は従来から使用
されているものである。本発明の特徴はむしろ誤
り訂正装置全体の動作及びそのタイミングと制御
にある。
次に第1図の装置の動作について説明する。第
2図は第1図の動作が示すタイミング図である。
初期状態において第1図のタイミングコントロー
ル回路27は、5b,6b,18,19の内容を
“0”にリセツトし、アドレス・カウンタ24を
訂正しようとする符号語の先頭データのアドレス
にセツトし、アクセス・カウンタ28を第1のア
クセス状態にする。なお、データRAM3及びエ
ラー・フラグRAM17にはそれぞれデータ入力
端子1とエラー・フラグ入出力端子15から入力
されたデータ及びエラー・フラグがあらかじめ書
き込まれているものとする。また、エラー・フラ
グ・レジスタ23に1つ前のサブブロツクでのエ
ラー・フラグをラツチする。以後、このエラー・
フラグ・レジスタ23の内容は第2のアクセス終
了まで保持される。
第1のアクセスにおいて、アドレス・カウンタ
24はタイミング・コントロール回路27からの
タイミング信号により先頭データのアドレスから
1つずつカウント・アツプして行き、データ
RAM3は先頭データW1から最後のデータQまで
を順に出力する。出力されたデータはα1-n乗算器
4でα1-nが乗じられた後にA+αB演算回路5a
を通つて第1Dフリツプ・フロツプ5bにタイミ
ング・コントロール回路27からのタイミング信
号によりラツチされる。入力信号Bは初期状態に
おいて“0”であるから、第1Dフリツプ・フロ
ツプ5bの内容は、W1、W2…P、Qがデータ
RAM3から出力されると、α1-nW1、α1-n(αW1
+W2)、…
α1-n(o-2
〓i=1
αn-i-1Wi+P)、α1-n(o-2
〓i=1
αn-iWi+αP+
Q)となる。したがつて最終的にはα1-nSQがDフ
リツプ・フロツプ5bの内容となる。データ
RAM3から出力されたデータは第1加算器6a
を通つて第2Dフリツプ・フロツプ6bにも同様
にラツチされる。6a,6bからなる回路は入力
されたデータを順次加算してラツチするので、第
2Dフリツプ・フロツプ6bの内容は最終的には
o-2
〓i=1
Wi+P+Q=SP
となる。SQ算出回路5とSP算出回路6の内容がそ
れぞれα1-nSQ及びSPになると第一0検出回路13
はSQ=SP=0か否か、すなわちシンドロームSQ、
SPにより誤りが検出されないかされたかを判断し
て結果をタイミング・コントロール回路27から
のタイミング信号によりラツチする。アドレス・
カウンタ24の出力はセレクタ26を介してエラ
ー・フラグRAM17にも接続されており、エラ
ー・フラグRAM17はデータRAM3の出力デ
ータに対応したエラー・フラグをデータと同時に
出力する。このエラー・フラグRAM17から出
力されたエラー・フラグはエラー・フラグ・レジ
スタ20にラツチされると同時にエラー・カウン
タ18に入力され、エラー・カウンタ18はタイ
ミング・コントロール回路27からのタイミング
信号によりデータが誤りであることを示している
エラー・フラグの数をカウントする。このときk
−jカウンタ19はエラー・カウンタ18の出力
が“1”から“2”へ変わるまでのデータ数をタ
イミング・コントロール回路27からのタイミン
グ信号によりカウントする。j、k(j<k)の
位置のデータに対応したエラー・フラグが誤りを
示しているとすればその出力はk−jとなる。第
1のアクセス終了時点でエラー・カウンタ18と
k−jカウンタ19はその出力が確定し、組合せ
論理回路で構成される訂正コントロール回路21
は、第一0検出回路13とエラー・カウンタ18
の出力により誤りパターン及び位置を求める方法
を決定する。この決定の論理は例えば以下のよう
にする。
1 エラー・カウンタ18の出力が“0”のとき
は第一0検出回路13の出力が誤りを示してい
れば第二0検出回路14により求められた位置
を誤り位置とし、SP算出回路6の出力を誤りパ
ターンとする。第二0検出回路14は後述する
ようにシンドロームSP、SQより求めた1つの誤
りデータの位置を示す。
2 エラー・カウンタ18の出力が“1”または
“3”以上のときは第二0検出回路14により
求められた位置のデータに対応したエラー・フ
ラグが誤りを示していればその位置を誤り位置
とし、SP算出回路6の出力を誤りパターンとす
る。
3 エラー・カウンタ18の出力が“2”のとき
は対応したエラー・フラグが誤りを示している
2つのデータの位置を誤り位置とし、2つの誤
りパターンをSQ算出回路6とSP算出回路5の出
力により求める。
尚、第1のアクセス中はエラー・フラグRAM
17は読み出し状態である。
第1のアクセスが終了するとタイミング・コン
トロール回路27は直ちにアクセス・カウンタ2
8を第2のアクセス状態とすると同時にアドレ
ス・カウンタ24を再び先頭データのアドレスに
セツトし、引き続き第2のアクセスを開始する。
第2のアクセスでは、タイミング・コントロール
回路27は、α1-n乗算器4にはその出力Aを
“0”にするような制御信号を送出し、第2Dフリ
ツプ・フロツプ6b、エラー・カウンタ18、k
−jカウンタ19へのタイミング信号送出を停止
する。前述のように誤りパターン及び誤り位置を
求める方法はエラー・カウンタ18の値によつて
異なるので、出力の値が“1”の場合の“2”の
場合について第2のアクセス期間中の動作を以下
に説明する。なお、エラー・カウンタ18の出力
の値が“0”または“3”以上の場合は基本的に
“1”の場合と同様である。
第2図aはエラー・カウンタ18の出力の値が
“1”の場合である。第2のアクセス開始時点で
SQ算出回路5の出力はα1-nSQとなつており、以後
入力信号Aは常に“0”であるので、SQ算出回路
5の出力はタイミング・コントロール回路27か
らタイミング信号が入力されるたびにαが乗ぜら
れる。このタイミング信号は、データRAM3か
ら出力されるデータと同期しているので、データ
RAM3がW1、W2…P、Qを出力して行くとSQ
算出回路5の出力はα1-nSQ、α2-nSQ、…αSQ、SQ
と変化する。エラー・カウンタ18の出力の値が
“1”の場合は、データRAM3がデータを読み
出している間にシンドロームSP、SQより誤りデー
タの位置を1つ求める。すなわちWiが誤つてW′i
=Wi+eiとなつているとすると、SP=ei、SQ=
αn-ieiであり、データRAM3がW′iを出力してい
るとき、SQ算出回路5の出力がαi-nSQであるから
第2加算回路7の出力SP+αi-nSQは“0”とな
り、第二0検出回路14がこの“0”を検出する
ことにより、データRAM3が現在出力している
データW′iが誤りであることがわかる。誤りデー
タが1つであればW′i以外の場合は“0”が検出
されない。訂正コントロール回路21は第二0検
出回路14が“0”を検出したときエラー・フラ
グ・レジスタ20の出力を参照してW′iに対応し
たエラー・フラグが誤りを示していれば符号中の
誤りデータがただ1つW′iであると判断してアン
ド・ゲート9を開いてSP=eiを第3加算器10に
入力するとともに、タイミング・コントロール回
路27に訂正を指令する信号を送出する。このと
き1+αj-k除算器8の入力が“0”であるのでそ
の出力も“0”となり、第3加算器10の出力は
eiとなる。この出力は第4加算器11でデータ
RAM3の出力W′iと加算され、Wi+ei=Wi+ei+
ei=Wiとなり、第4加算器11の出力は誤り訂正
されたWiとなり、3ステートDフリツプフロツ
プ12にラツチされる。ラツチのためのタイミン
グ信号は常にタイミング・コントロール回路27
から供給されているものとする。タイミング・コ
ントロール回路27は訂正を指令する信号を受け
ると、3ステートDフリツプ・フロツプ12が
Wiをラツチした後に、これに出力を有効にする
制御信号を送出するとともにデータRAM3に書
き込み状態にする制御信号を送出し、データ
RAM3においてW′iが記憶されていたアドレス
に訂正されたWiが書き込まれる。以上の動作に
おいて第二0検出回路14での“0”の検出から
データRAMへのWiの書き込みまでの処理はW′i
に対応した1つのアドレス期間内に行なわれる。
第2図bはエラー・カウンタ18の出力の値が
“2”の場合であり、このときはエラー・フラ
グ・レジスタ20から読み出されるエラー・フラ
グのうち誤りを示している2つのエラー・フラグ
に対応したデータの位置を誤り位置とする。この
誤り位置をj、k(j<k)とし、Wj、Wkが誤
つてそれぞれW′j=Wj+ej、Wk=W′k+ekとなつ
ているとすると、SP=ej+ek、SQ=αn-jej+αn-kek
となる。データRAM3がW′jを出力していると
き、SQ算出回路5の出力はαj-nSQ=ej+αj-kekで
あるから、第2加算器7の出力SP+αj-nSQはej+
ek+ej+αj-kek=(1+αj-k)ekとなり1+αj-k除
算器18に入力される。一方、同除算器には第1
のアクセスで求められたk−jの値がk−jカウ
ンタ19より入力されており、これに従つて除算
を施すとその出力は(1+αj-k)ek/(1+αj-k)
=ekとなる。第2のアクセスにおいて訂正コント
ロール回路21はエラー・フラグ・レジスタ20
から入力されるエラー・フラグを観測しており、
最初に誤りを示すエラー・フラグ、すなわちW′j
のエラー・フラグが入力されると、同回路はアン
ド・ゲート9を開いてSP=ej+ekを第3加算器1
0に入力するとともに、タイミング・コントロー
ル回路27に訂正と第1Dフリツプ・フロツプ5
bへのタイミング信号の送出の停止を指令する。
このとき第3加算器10の出力はek+SP=ejとな
り、これが第4加算器11でW′jと加算されて
W′j+ej=Wj+ej+ej=Wjとなり誤り訂正された
Wjが得られ、これが3ステートDフリツプ・フ
ロツプ12にラツチされた後、データRAM3に
W′jに置き換えて書き込まれる。タイミング・コ
ントロール回路27は訂正の指令に従い3ステー
ト・Dフリツプ・フロツプ12の出力を有効にし
データRAM3を書き込み状態にすると共に、以
後第1Dフリツプ・フロツプ5bへのタイミング
信号の送出を停止する。したがつてSQ算出回路5
の出力はαj-nSQのまま保持され、1+αj-k除算器
8の出力もekのままとなる。訂正コントロール回
路21は2番目の誤りを示すエラー・フラグ、す
なわちW′kのエラー・フラグが入力されると、ア
ンド・ゲート9を閉じた状態にしてタイミング・
コントロール回路27に訂正を指令する。このと
き第3加算器10から1+αj-k除算器の出力ekが
そのまま出力された第4加算器11はデータ
RAM3の出力W′kにekを加算してW′k+ek=Wk
+ek+ek=Wkを得る。この誤り訂正されたWkは
Wjと同様にしてデータRAM3にW′kに置き換え
て書き込まれる。第2のアクセス終了時点で、エ
ラー・フラグ決定回路22の出力が決定される。
この決定の論理は例えば以下のようにする。
1 エラー・カウンタ18の出力が“0”のとき
は第一0検出回路13の出力が誤りを示しかつ
第2のアクセス期間中に第二0検出回路14が
“0”を検出しなかつた場合はエラー・フラグ
を誤りを示す値にし、それ以外は誤りを示さな
い値にする。
2 エラー・カウンタ18の出力が“1”のとき
は、第一0検出回路13の出力が誤りを示しか
つ誤りを示しているエラー・フラグがエラー・
フラグ・レジスタ20から出力されているとき
に第二0検出回路14が“0”を検出しなかつ
た場合はエラー・フラグを誤りを示す値にし、
それ以外は誤りを示さない値にする。
3 エラー・カウンタ18の出力が“2”のとき
は、第一0検出回路13の出力が誤りを示して
いなければエラー・フラグを誤りを示さない値
とし、それ以外は判断不能に対応した値とす
る。
4 エラー・カウンタ18の出力が“3”以上の
ときは、エラー・フラグを判断不能に対応した
値とする。
エラー・フラグは符号語中のすべてのデータに
ついて同じ値に決定するものとする。エラー・フ
ラグを誤りを示す値にするのは第2のアクセス終
了後において符号中に誤つたデータが存在する場
合であり、誤りを示さない値にするのは誤つたデ
ータが存在する確率が低い場合であり、判断不能
に対した値とするのは、誤つたデータが存在する
確率が無視できない場合である。判断不能となつ
た場合は後で別の手段、例えば他の誤り検出符号
によつてエラー・フラグを誤りを示すか示さない
かのいずれか一方の値に決定する。なお上記の例
では3つの値を割り当てるために、エラー・フラ
グは少なくとも2ビツト要する。
第2のアクセス期間中、エラー・フラグRAM
17は書き込み状態であるから上記エラー・フラ
グの演算が行なわれると同時にエラー・フラグ・
レジスタ23から出力されたエラー・フラグがエ
ラー・フラグRAM17に書き込まれる。尚、エ
ラー・フラグRAM17のアドレスは第1のアク
セスでは誤り訂正を行なつているサブブロツクの
アドレスとなり、第2のアクセスでは1つ前のサ
ブブロツクのアドレスをアドレス・ラツチ25に
記憶してこのアドレス・ラツチ25に記憶された
1つ前のサブブロツクのアドレスとなるように訂
正コントロール21からの指令によつてセレクタ
26における信号切換がなされている。
以上で1つの符号語に対する誤り訂正とエラ
ー・フラグの更新が終了し、第2のアクセスが終
了すると、タイミング・コントロール回路27は
第1Dフリツプ・フロツプ5b、第2Dフリツプ・
フロツプ6b、エラー・カウンタ18、k−jカ
ウンタ19の内容を“0”にリセツトし、アドレ
ス・カウンタ24を次の符号語の先頭データのア
ドレスにセツトし、アクセス・カウンタ28を第
1のアクセス状態にして次の符号語の誤り訂正を
開始する。以後同様にしてデータRAM3中の全
ての符号語についての誤り訂正と対応したエラ
ー・フラグRAM17中のエラー・フラグの更新
を行ない、終了語にはデータはデータ入出力端子
1より出力され、エラー・フラグはエラー・フラ
グ入出力端子15から取り出される。
なお、上記実施例では誤り訂正符号が検査デー
タ数2のリード・ソロモン符号の場合について説
明したが他の符号についても同様に本発明が適用
できる。第1図の回路構成は上記リード・ソロモ
ン符号を用いた場合の実施例であるが、種々の変
形が可能である。例えば同図の信号の流れ及び第
2図はデータ及びエラー・フラグを構成する各ビ
ツトを並列処理する形式で描かれているが、直列
処理も可能であり、エラー・フラグRAM3とデ
ータ・フラグRAM17を同一のRAMとして入
出力端子をデータとエラー・フラグで分割しても
よい。訂正コントロール回路21とエラー・フラ
グ決定回路22の論理についても種々の変形が可
能であり、例えば訂正コントロール回路21では
第一0検出回路13の出力を無視してもよいし、
エラー・フラグ決定回路22では1つの符号語中
の各データに対して同じエラー・フラグの更新値
を決定したが、各データ毎に更新値を決定しても
よい。これは例えば、1つの符号語中において訂
正されたデータとされなかつたデータを区別する
ことなどにより可能となるが、エラー・フラグ決
定回路22は複雑になる。
また上記実施例では、1つの誤り訂正符号に対
する誤り訂正装置として説明したが、本発明は複
数の符号により多重に誤り検出及び誤り訂正符号
化されたデータに対して繰り返し訂正を行なう場
合に特に効果を発揮するので、これについて以下
に説明する。
複数の誤り検出符号、訂正符号により符号化さ
れたデータ・ブロツクの誤り訂正を本発明による
誤り訂正装置を用いて行なう場合の基本構成を第
3図aに示す。同図において、各誤り訂正装置は
各誤り訂正符号毎に構成された第1図の如き装置
であり、誤り検出装置も含めた全ての装置間で、
これらのデータ入出力端子同士およびエラー・フ
ラグ入出力端子同士がそれぞれ3ステートの入出
力バツフアを介して接続されている。但し誤り検
出装置では誤りの検出とエラー・フラグの更新の
みを行なうものとする。第3図bのように、各符
号における誤りの検出あるいは訂正が縦続に行な
われるように各装置間のデータ及びエラー・フラ
グの転送をバツフアにより制御すると、データは
各誤り訂正装置を通過しながら途々に訂正されて
いくので、データに対する全誤り訂正システムの
処理速度をあげることができる。また、各隣接装
置間でのみ接続されるようにバスを切り離すと更
に速度は上がる。各誤り訂正において本発明によ
る装置は、入力されたエラー・フラグを参照して
符号の持つ訂正能力を十分発揮させるような誤り
訂正を行なうとともに訂正後にエラー・フラグの
更新を行なうので、どの誤り訂正でも同様に強力
な誤り訂正を行なうことができる。各符号による
誤り検出あるいは誤り訂正をそれぞれ1度ずつで
はなく複数回行なう場合には、誤り検出、誤り訂
正の各回に対応してそれぞれ別の装置を用いて上
記のように縦続に動作させると、処理速度は速い
がシステム全体の装置規模が大きくなる。第3図
cのように装置は各符号に対してそれぞれ1つだ
け用い、装置間のデータ及びエラー・フラグの転
送を全て同一のバス上で行ない、これを制御する
ことによつて誤り検出及び誤り訂正を複数回行な
うようにするとシステム全体の装置規模は増加し
ない。データ及びエラー・フラグは
の経路を任意回数通つた後34から出力されるもの
とする。但し、全誤り訂正システムの処理速度は
遅くなる。尚、誤り検出や訂正を各符号で複数回
行なうと1度ずつ行なつた場合よりも全体の訂正
能力が更に向上する。また、誤り検出符号及び誤
り訂正符号に全て同種類の符号(例えば、検査デ
ータが2つのリード・ソロモン符号)を用いた場
合には、全ての誤り検出と誤り訂正をただ1つの
第1図の如き誤り訂正装置によつて行なうことが
できる。すなわち、各誤り訂正ではそれぞれ訂正
に用いる符号について前述したような誤り訂正エ
ラー・フラグの更新を符号語毎に行なう。また各
誤り検出では、誤り訂正装置の動作を一部省略、
変更することによつて誤りの検出とエラー・フラ
グの更新のみを行なうようにする。通常各符号に
よつて1つの符号語を構成するデータが異つてい
るため、符号ごとにアドレス・カウンタ24の動
作を制御する必要があるが、これはタイミング・
コントロール回路27によつて容易に行なわれ
る。したがつて、この場合は、非常に小さな装置
規模で複数の符号による誤り検出及び誤り訂正を
それぞれ任意回数繰り返して行なうことができ、
また各誤り訂正においては前述のような強力な誤
り訂正を行なうことができる。また、第1図の装
置におけるエラー・フラグ・レジスタ20及び2
3はDフリツプフロツプのような回路でもシフト
レジスタのような回路でもいずれによつても容易
に実現できる。
発明の効果
以上のように、本発明によれば、プログラム・
データ等の一般のデイジタル・データが必ずしも
データを送出しながら誤り訂正を行なう必要がな
いことを考慮して、1つの符号語に対する誤り訂
正とエラー・フラグの更新を2段階の動作に分割
して行なうようにしたので、複雑な訂正方法とエ
ラー・フラグ処理が可能となり、誤り訂正符号の
訂正能力を十分に発揮させることができると共に
訂正後の誤りの状態を正確に知らせることができ
る。また、エラー・フラグの更新時エラー・フラ
グの値決定の直前及び直後においてエラー・フラ
グをエラー・フラグRAM以外の第1及び第2記
憶手段に一時記憶保持するようにしたので、第2
のアクセスにおいてエラー・フラグのエラー・フ
ラグRAMへの書き込みと同時に訂正方法の決定
又は2ワードエラー(エラー・フラグ・カウンタ
が“2”であるエラー)の訂正が行なえかつエラ
ー・フラグRAMの読み出しアクセスを1回にす
ることができ、1つの符号語を構成するデータの
誤り訂正に要する時間を短縮することができるこ
ととなる。また、本発明の装置は比較的容易に実
現できる。第1図を例にとると、加算器、Dフリ
ツプ・フロツプ、カウンタなどには汎用のICが
使用でき、α1-n乗算器はROMあるいはゲートの
組み合わせ、1+αj-k除算器はROMまたはROM
とゲートの組み合せなどにより容易に実現でき、
2段階の各動作も同一符号語への規則的な2回の
アクセスによつて行なわれるため装置内のタイミ
ング制御も容易である。本発明の装置によつて複
数の符号により多重符号化されたデータの誤り訂
正を行なえば、各誤り訂正において、前段の誤り
訂正後に更新されたエラー・フラグを参照して十
分な訂正を行なうので全体として非常に強力な誤
り訂正を行なうことができる。特に、複数の符号
がすべて同種類の符号であるならば、通常符号毎
に必要な誤り訂正装置が、1つの本発明の誤り訂
正装置で済み、非常に小さな装置規模で、多重符
号化されたデータに対して各符号による誤り検出
あるいは誤り訂正をそれぞれ任意回数行なうこと
ができる。また、このとき装置内のタイミング制
御を符号毎に切り換える必要があるがこれも容易
に行なえる。[Equation] However, the addition is modulo 2, each data consists of m bits, and α is a primitive element on the Galois field GF (2α m ). If an error occurs in the codeword, it is corrected as follows. Syndromes S P and S Q defined as below are calculated for information data and inspection data containing errors. S P = o-2 〓 i=1 W i +P+Q S Q = o-2 〓 i=1 α ni W i +αP+Q If there is no erroneous data, S P =S Q =0. The error in the two information data is at position j, k (1≦
j≦k≦n−2), and as a result, W j and W k become W′ j =W j +e j and W′ k =W k +e k , respectively. However, e j and e k are error patterns of W j and W k . At this time, S P and S Q are as follows. S P = o-2 〓 i=1 W i +P+Q+e j +e k =e j +e k S Q = o-2 〓 i=1 α ni W i +αP+Q+α nj e j +α nk e k =α nj e j +α nk e k From this, e j and e k are calculated as e j = α nk S P + S Q / α nj + α nk = S P + α nj S P + S Q / α
nj +α nk =S P +e k e k =α nj S P +S Q /α nj +α nk =S P +α jn S Q /1+α
jkHowever , since addition is modulo 2, it is the same as subtraction. Therefore, if the error positions j and k are determined in advance by other means, e j and e k can be determined using the above equations and error correction becomes possible. Also, one information data error occurs at position j, and the error pattern is
If e j , then in the above equation, e k = 0, S P = e j S Q = α nj e jFrom this, α j = α n・S P /S QIn this case, even if the position j is not determined in advance, S j can be found by finding α j from P and S Q.
Since e j is SP itself, error correction is possible. As explained above, in a Reed-Solomon code that has two check data, for a data error in a code word, two data are corrected if the error position is known, and one data is corrected if the error position is known. It is possible. Moreover, although only the error in the information data W i has been described, the same applies to the errors in P and Q, and it is sufficient to treat P as the (n-1)th data and Q as the nth data. Conventionally, there are PCM recorders that use Reed-Solomon codes as error correction codes, and PCM recording adapters for home VTRs use b-adjacent codes similar to Reed-Solomon codes. In such a PCM audio data error correction device, error correction is performed while supplying audio data to D/A conversion at a constant audio sampling frequency cycle, so pre-correction processing such as syndrome calculation is faster than correction. It needs to be done in good time. In addition, PCM audio data has a strong correlation with the data before and after it, and if it cannot be corrected, the effect of the error can be reduced by processing such as average value interpolation as long as the error can be detected. A simple error correction method and error flag processing are used, and error correction is rarely repeated. However, such an error correction device is not suitable for error correction of digital data such as general computer programs other than PCM audio. This is because error correction is more important than error detection in the digital data mentioned above, and error correction is repeatedly performed by multiplexing error detection encoding and error correction encoding using multiple codes, and each error correction code is close to its capacity limit. This is because a complicated correction method and error flag processing must be performed in order to correct the error.
Further, in the case of such digital data, it is not necessarily necessary to perform error correction while transmitting the data, so the restrictions on operation timing are more relaxed than in the case of PCM audio data. Summary of the Invention The present invention is particularly suited to complex error correction and error processing of general digital data that has been subjected to multiple error detection encoding and error correction encoding, which cannot be handled by the error correction apparatus for PCM audio data as described above. - The purpose is to provide an error correction method that makes it possible to execute flag processing with a relatively simple circuit configuration. In the error correction method according to the present invention, an error flag consisting of at least one bit is associated with each data to indicate a predetermined error state, and an error flag is associated with each data and the data to be error-corrected stored in the memory. The error flag is accessed twice for each code word in succession to correct errors in the data that constitutes one code word, and at the same time the error flag is updated immediately before and after determining the value of the error flag. It is characterized in that the information is temporarily stored and held in first and second storage means other than the memory. Embodiment Hereinafter, an embodiment of the present invention will be described based on the accompanying drawings. FIG. 1 shows an example of an error correction device that implements the method of the present invention, in which 1 is a data input terminal, 2 is a data bus, 3 is a data RAM in which data before and after error correction is stored, and 4 is a data RAM. α 1-n to the data
α 1-n multiplier, 5 is the two input signals A, B
6 is the first D flip-flop 5b, and 6 is the first D flip-flop 5b. An S P calculation circuit consisting of an adder and a 2D flip-flop 6b which receives the output of 6a and whose output becomes one input of 6a; 7 is a second adder that adds the outputs of 5 and 6; 8 is a second adder that adds the outputs of 5 and 6; 1-α jk divider that divides the output of 7 by 1 + α jk ; 9 is an AND gate that outputs the AND logic of the output of 6 and the control signal of 20; 10 is a third adder that adds the outputs of 8 and 9; 11 is the fourth adder that adds the output data of 3 and the output of 10; 12 is the 11
a three-state D flip-flop, controlled by 23, to latch the output of and become valid only when its output is written to 3;
14 is the first 0 detection circuit that detects that all bits of the output of 5 and 6 are "0", and 14 is the 20th detection circuit that detects that all the bits of the output of 7 are "0". , 15 is an error flag input/output terminal, 16 is an error flag bus, 17 is an error flag RAM that stores error flags before and after error correction, and 18 is an error flag corresponding to each data in the code word. 19 is an error counter that calculates the number of data that indicates the presence of an error, and 19 is an error counter that calculates the number of data that indicates the presence of an error. 20 is an error flag register that latches the error flag sent on the error flag bus 16, 21 is the output of 13, 14, 18 and the error of each data.・Correction control circuit which determines the data to be corrected by referring to the flag and notifies it to 27, and also causes 27 to stop sending the timing signal to 5b as necessary, and further controls 9; An error flag determination circuit determines the value of the error flag to be updated and written in 17 after correction by referring to the outputs of 14 and 18 and the error flag of each data; 23 is an output from the error flag determination circuit 22; error/
error flag register that latches the flag;
24 is an address counter that outputs addresses corresponding to each data and error flag to 3, 17, and 27; 25 is an address latch that latches the address output from address counter 24;
26 is a selector that selectively outputs one of the output of address counter 24 and the output of address latch 25; 27 receives the outputs of 21, 24, and 28 as well as a clock; and, based on the clock, outputs various timing signals. A timing control circuit generates a control signal to control 24 and 28, and also sends a timing signal and a control signal to each circuit in the figure. 28 indicates how many times the current access is in the correction of one code word. 29 is a clock input terminal. In the figure, the data read from the data RAM 3 is corrected by a correction circuit consisting of circuits 4 to 12, and the structure of this correction circuit itself has been conventionally used. Rather, the feature of the present invention lies in the operation of the entire error correction device and its timing and control. Next, the operation of the apparatus shown in FIG. 1 will be explained. FIG. 2 is a timing diagram showing the operation of FIG. 1.
In the initial state, the timing control circuit 27 of FIG. 1 resets the contents of 5b, 6b, 18, and 19 to "0", sets the address counter 24 to the address of the first data of the code word to be corrected, The access counter 28 is placed in the first access state. It is assumed that data and error flags input from the data input terminal 1 and the error flag input/output terminal 15 are written in advance in the data RAM 3 and the error flag RAM 17, respectively. Also, the error flag of the previous subblock is latched in the error flag register 23. From now on, this error
The contents of flag register 23 are held until the end of the second access. In the first access, the address counter 24 counts up one by one starting from the address of the first data in response to a timing signal from the timing control circuit 27.
The RAM 3 sequentially outputs data from the first data W1 to the last data Q. The output data is multiplied by α 1-n in the α 1- n multiplier 4, and then sent to the A+αB calculation circuit 5a.
It is latched by the timing signal from the timing control circuit 27 through the first D flip-flop 5b. Since the input signal B is "0" in the initial state, the contents of the first D flip-flop 5b are as follows: W 1 , W 2 . . . P, Q are data.
When output from RAM3, α 1-n W 1 , α 1-n (αW 1
+W 2 ), ... α 1-n ( o-2 〓 i=1 α ni-1 W i +P), α 1-n ( o-2 〓 i=1 α ni W i +αP+
Q). Therefore, finally α 1-n S Q becomes the content of the D flip-flop 5b. data
The data output from RAM3 is sent to the first adder 6a.
It is similarly latched to the second D flip-flop 6b through the gate. The circuit consisting of 6a and 6b sequentially adds and latches the input data, so the
The contents of the 2D flip-flop 6b are finally o-2 〓 i=1 W i +P+Q=S P. When the contents of the S Q calculation circuit 5 and the S P calculation circuit 6 become α 1-n S Q and S P , respectively, the first 0 detection circuit 13
is S Q = S P = 0 or not, that is, the syndrome S Q ,
It is determined by SP whether an error is detected or not, and the result is latched by the timing signal from the timing control circuit 27. address·
The output of the counter 24 is also connected to the error flag RAM 17 via the selector 26, and the error flag RAM 17 outputs an error flag corresponding to the output data of the data RAM 3 simultaneously with the data. The error flag output from the error flag RAM 17 is latched into the error flag register 20 and simultaneously input into the error counter 18. Count the number of error flags indicating that they are incorrect. At this time k
-j counter 19 counts the number of data until the output of error counter 18 changes from "1" to "2" using a timing signal from timing control circuit 27. If the error flag corresponding to the data at positions j and k (j<k) indicates an error, the output will be k-j. At the end of the first access, the outputs of the error counter 18 and the k-j counter 19 are determined, and the correction control circuit 21 consisting of a combinational logic circuit
The first 0 detection circuit 13 and the error counter 18
The method for determining the error pattern and position is determined based on the output. The logic of this decision is, for example, as follows. 1 When the output of the error counter 18 is "0" and the output of the first 0 detection circuit 13 indicates an error, the position determined by the second 0 detection circuit 14 is set as the error position, and the S P calculation circuit 6 Let the output of be the error pattern. The 20th detection circuit 14 indicates the position of one error data obtained from the syndromes SP and SQ , as will be described later. 2. When the output of the error counter 18 is "1" or "3" or more, if the error flag corresponding to the data at the position determined by the 20th detection circuit 14 indicates an error, the position is set as the error position. Let the output of the S P calculation circuit 6 be an error pattern. 3 When the output of the error counter 18 is "2", the positions of the two data whose corresponding error flags indicate an error are set as the error positions, and the two error patterns are calculated by the S Q calculation circuit 6 and the S P calculation circuit. Determine from the output of 5. Note that during the first access, the error flag RAM
17 is a read state. Immediately after the first access is completed, the timing control circuit 27 starts the access counter 2.
At the same time, the address counter 24 is set again to the address of the first data, and the second access is subsequently started.
In the second access, the timing control circuit 27 sends a control signal to the α 1-n multiplier 4 to set its output A to "0", and the second D flip-flop 6b and the error counter 18 ,k
- Stop sending the timing signal to the j counter 19. As mentioned above, the method of determining the error pattern and error position differs depending on the value of the error counter 18, so the operation during the second access period will be described for the case where the output value is "1" and "2". This will be explained below. Note that when the output value of the error counter 18 is "0" or "3" or more, it is basically the same as when it is "1". FIG. 2a shows a case where the output value of the error counter 18 is "1". At the start of the second access
The output of the S Q calculation circuit 5 is α 1-n S Q , and since the input signal A is always “0”, the output of the S Q calculation circuit 5 is the timing signal input from the timing control circuit 27. is multiplied by α each time. This timing signal is synchronized with the data output from data RAM3, so the data
When RAM3 outputs W 1 , W 2 ...P, Q, S Q
The outputs of the calculation circuit 5 are α 1-n S Q , α 2-n S Q , ... αS Q , S Q
and changes. If the output value of the error counter 18 is "1", the position of one error data is determined from the syndromes SP and SQ while the data RAM 3 is reading data. In other words, W i is incorrectly written as W′ i
=W i +e i , then S P =e i , S Q =
α ni e i and when the data RAM 3 is outputting W′ i , the output of the S Q calculation circuit 5 is α in S Q , so the output of the second addition circuit 7 is S P +α in S Q “ 0", and the second 0 detection circuit 14 detects this "0", thereby indicating that the data W' i currently output from the data RAM 3 is erroneous. If there is only one error data, "0" will not be detected in cases other than W' i . When the second 0th detection circuit 14 detects "0", the correction control circuit 21 refers to the output of the error flag register 20, and if the error flag corresponding to W' i indicates an error, the error flag in the code is changed. It is determined that there is only one erroneous data W′ i , and the AND gate 9 is opened to input S P =e i to the third adder 10, and at the same time, a signal instructing the timing control circuit 27 to perform correction is sent. Send. At this time, since the input of the 1+α jk divider 8 is "0", its output is also "0", and the output of the third adder 10 is
e i becomes. This output is processed as data by the fourth adder 11.
It is added to the output W′ i of RAM3, and W i +e i =W i +e i +
Since e i =W i , the output of the fourth adder 11 becomes the error-corrected W i , which is latched into the three-state D flip-flop 12. The timing signal for the latch is always provided by the timing control circuit 27.
It is assumed that it is supplied from When the timing control circuit 27 receives a signal instructing correction, the three-state D flip-flop 12 operates.
After latching W i , it sends a control signal to enable the output, and also sends a control signal to put the data RAM 3 into the write state, and then
In the RAM 3, the corrected W i is written to the address where W' i was stored. In the above operation, the processing from the detection of “0” in the second 0th detection circuit 14 to the writing of W i to the data RAM is W′ i
This is done within one address period corresponding to . FIG. 2b shows a case where the output value of the error counter 18 is "2", and in this case, among the error flags read from the error flag register 20, two error flags indicating an error are detected. The position of the corresponding data is set as the error position. Let these error positions be j and k (j<k), and suppose that W j and W k are incorrectly written as W' j = W j + e j and W k = W' k + e k , respectively, then S P = e j + e k , S Q = α nj e j + α nk e k
becomes. When the data RAM 3 is outputting W' j , the output of the S Q calculation circuit 5 is α jn S Q = e j + α jk e k , so the output of the second adder 7 is S P + α jn S Q e j +
e k +e j +α jk e k =(1+α jk )e k and is input to the 1+α jk divider 18. On the other hand, the divider has the first
The value of k-j obtained by accessing is input from the k-j counter 19, and when division is performed according to this, the output is (1+α jk )e k /(1+α jk )
= e k . In the second access, the correction control circuit 21 inputs the error flag register 20
We are observing the error flag input from
The first error flag indicating an error, i.e. W′ j
When the error flag of
0, and the timing control circuit 27 receives a correction and the first D flip-flop 5.
command to stop sending timing signals to b.
At this time, the output of the third adder 10 becomes e k +S P = e j , which is added to W' j in the fourth adder 11.
W′ j +e j =W j +e j +e j =W j and the error is corrected.
W j is obtained, which is latched into the 3-state D flip-flop 12 and then stored in the data RAM 3.
It is written replacing W′ j . In accordance with the correction command, the timing control circuit 27 enables the output of the 3-state D flip-flop 12, puts the data RAM 3 in the writing state, and thereafter stops sending timing signals to the first D flip-flop 5b. Therefore, S Q calculation circuit 5
The output of is kept as α jn S Q , and the output of the 1+α jk divider 8 also remains as e k . When the error flag indicating the second error, that is, the error flag of W′ k , is input, the correction control circuit 21 closes the AND gate 9 and adjusts the timing.
The control circuit 27 is commanded to make a correction. At this time, the fourth adder 11 to which the output e k of the 1+α jk divider is directly outputted from the third adder 10 receives data.
Add e k to the output W′ k of RAM3 to get W′ k + e k = W k
+e k +e k =W k is obtained. This error-corrected W k is
Similarly to W j , it is written to the data RAM 3 by replacing it with W' k . At the end of the second access, the output of the error flag determination circuit 22 is determined.
The logic of this decision is, for example, as follows. 1 When the output of the error counter 18 is "0", the output of the first 0 detection circuit 13 indicates an error, and the second 0 detection circuit 14 does not detect "0" during the second access period. sets the error flag to a value that indicates an error, and sets the error flag to a value that does not indicate an error. 2 When the output of the error counter 18 is "1", the output of the first 0 detection circuit 13 indicates an error, and the error flag indicating the error indicates an error.
If the second 0th detection circuit 14 does not detect "0" when the flag register 20 is outputting it, the error flag is set to a value indicating an error;
For other values, set values that do not indicate errors. 3 When the output of the error counter 18 is "2", if the output of the first 0 detection circuit 13 does not indicate an error, the error flag is set to a value that does not indicate an error, otherwise it is set to a value corresponding to undeterminable. shall be. 4. When the output of the error counter 18 is "3" or more, the error flag is set to a value corresponding to undetermined. It is assumed that the error flag is determined to be the same value for all data in the code word. The error flag is set to a value that indicates an error when there is erroneous data in the code after the second access is completed, and the error flag is set to a value that does not indicate an error because there is a low probability that erroneous data exists. The value for indeterminability is set when the probability of the existence of erroneous data cannot be ignored. If it cannot be determined, the error flag is later determined to either indicate an error or not by another means, such as another error detection code. Note that in the above example, the error flag requires at least 2 bits in order to assign three values. During the second access period, the error flag RAM
Since 17 is in the write state, the error flag is set at the same time as the above error flag calculation is performed.
The error flag output from the register 23 is written into the error flag RAM 17. In the first access, the address of the error flag RAM 17 becomes the address of the sub-block undergoing error correction, and in the second access, the address of the previous sub-block is stored in the address latch 25 and this address is used. The signal at the selector 26 is switched in response to a command from the correction control 21 so that the address of the previous subblock stored in the latch 25 is used. When error correction and error flag updating for one code word are completed and the second access is completed, the timing control circuit 27 controls the first D flip-flop 5b, the second D flip-flop 5b, and the second D flip-flop 5b.
The contents of the flop 6b, error counter 18, and kj counter 19 are reset to "0", the address counter 24 is set to the address of the first data of the next code word, and the access counter 28 is set to the first access point. state and starts error correction of the next code word. Thereafter, error correction for all code words in the data RAM 3 and corresponding error flags in the error flag RAM 17 are performed in the same manner, and data is output from the data input/output terminal 1 for the end word, and the error The flag is taken out from error flag input/output terminal 15. In the above embodiment, the case where the error correction code is a Reed-Solomon code with two pieces of check data is described, but the present invention can be similarly applied to other codes. Although the circuit configuration shown in FIG. 1 is an embodiment using the above-mentioned Reed-Solomon code, various modifications are possible. For example, although the signal flow in the figure and Figure 2 are drawn in a format in which each bit constituting the data and error flag is processed in parallel, serial processing is also possible, and the error flag RAM 3 and data flag RAM 17 are processed in parallel. It is also possible to use the same RAM and divide the input/output terminals into data and error flags. Various modifications can be made to the logic of the correction control circuit 21 and the error flag determination circuit 22; for example, the output of the first 0 detection circuit 13 may be ignored in the correction control circuit 21;
Although the error flag determination circuit 22 determines the same error flag update value for each data in one code word, the update value may be determined for each data. This is possible, for example, by distinguishing between corrected data and uncorrected data in one code word, but the error flag determination circuit 22 becomes complex. Furthermore, although the above embodiment has been described as an error correction device for one error correction code, the present invention is particularly effective when repeatedly correcting data that has been subjected to multiple error detection and error correction codes using a plurality of codes. This will be explained below. FIG. 3a shows a basic configuration in which error correction of a data block encoded with a plurality of error detection codes and correction codes is performed using an error correction apparatus according to the present invention. In the figure, each error correction device is configured for each error correction code as shown in FIG. 1, and among all the devices including the error detection device,
These data input/output terminals and error flag input/output terminals are connected to each other via three-state input/output buffers. However, the error detection device only detects errors and updates error flags. As shown in Fig. 3b, if the transfer of data and error flags between each device is controlled by a buffer so that error detection or correction in each code is performed in cascade, data passes through each error correction device. Since the data is corrected step by step, the processing speed of the total error correction system for data can be increased. Also, if the bus is separated so that only connections are made between adjacent devices, the speed will be further increased. In each error correction, the device according to the present invention refers to the input error flag and performs error correction to fully utilize the correction ability of the code, and also updates the error flag after the correction. However, it can also perform powerful error correction. When error detection or error correction for each code is performed multiple times rather than once each time, separate devices are used for each time of error detection and error correction, and the operations are performed in cascade as described above. Although the processing speed is fast, the equipment scale of the entire system becomes large. As shown in Figure 3c, only one device is used for each code, data and error flags are transferred between devices on the same bus, and by controlling this, error detection and If error correction is performed multiple times, the device scale of the entire system will not increase. data and error flags are It is assumed that the output is output from 34 after passing through the route an arbitrary number of times. However, the processing speed of the full error correction system is slow. Note that if error detection and correction are performed multiple times for each code, the overall correction ability is further improved than when error detection and correction are performed once each time. Furthermore, if the same type of code is used as the error detection code and the error correction code (for example, a Reed-Solomon code with two check data), all the error detection and error correction can be performed using only one code in Figure 1. This can be done by an error correction device such as the following. That is, in each error correction, the above-mentioned error correction error flag is updated for each code word for each code used for correction. In addition, in each error detection, some operations of the error correction device are omitted.
By changing this, only errors are detected and error flags are updated. Normally, the data constituting one code word is different depending on each code, so it is necessary to control the operation of the address counter 24 for each code, but this is due to the timing.
This is easily done by the control circuit 27. Therefore, in this case, error detection and error correction using a plurality of codes can be performed repeatedly an arbitrary number of times with a very small device scale.
Moreover, in each error correction, powerful error correction as described above can be performed. Also, error flag registers 20 and 2 in the device of FIG.
3 can be easily realized by a circuit such as a D flip-flop or a circuit such as a shift register. Effects of the Invention As described above, according to the present invention, the program
Considering that general digital data such as data does not necessarily require error correction while transmitting the data, error correction for one code word and updating of the error flag are divided into two steps. This makes it possible to perform a complicated correction method and process error flags, to fully utilize the correction ability of the error correction code, and to accurately notify the error status after correction. Furthermore, since the error flag is temporarily stored and held in the first and second storage means other than the error flag RAM immediately before and after the determination of the value of the error flag when updating the error flag, the second
When accessing, the correction method can be determined at the same time as the error flag is written to the error flag RAM, or a 2-word error (an error where the error flag counter is "2") can be corrected, and the error flag RAM is read out. This means that the time required for error correction of data constituting one code word can be reduced. Furthermore, the device of the present invention can be realized relatively easily. Taking Figure 1 as an example, general-purpose ICs can be used for adders, D flip-flops, counters, etc., the α 1-n multiplier is a ROM or a combination of gates, and the 1+α jk divider is a ROM or ROM.
This can be easily achieved by combining gates and
Since each of the two-stage operations is performed by regularly accessing the same code word twice, timing control within the device is also easy. If the apparatus of the present invention performs error correction on data that has been multiplex encoded using a plurality of codes, sufficient correction can be performed in each error correction by referring to the error flag updated after the previous error correction. Overall, very powerful error correction can be performed. In particular, if multiple codes are all of the same type, the error correction device normally required for each code can be replaced by one error correction device of the present invention, and multiple coding can be performed with a very small device scale. Error detection or error correction using each code can be performed on data an arbitrary number of times. Further, at this time, it is necessary to switch the timing control within the device for each code, but this can be easily done.
第1図は本発明の一実施例を示す図、第2図は
実施例の動作を示すタイミング図、第3図は本発
明の誤り訂正装置を用いて構成した多重符号化さ
れたデータ・ブロツクの全誤り訂正処理システム
の例を示す図である。
FIG. 1 is a diagram showing an embodiment of the present invention, FIG. 2 is a timing diagram showing the operation of the embodiment, and FIG. 3 is a diagram showing a multiple encoded data block configured using the error correction device of the present invention. 1 is a diagram illustrating an example of a total error correction processing system.
Claims (1)
符号の符号語の誤り訂正をなすに当たつて、予め
求められた誤りの状態を示すために少なくとも1
ビツトのエラー・フラグを各データに対応せし
め、データ・メモリ及びエラー・フラグ・メモリ
にそれぞれ記憶された誤り訂正を行うべきデータ
及び各データに対応したエラー・フラグに対して
前記符号語毎に2回連続してアクセスを行つて1
つの符号語を構成するデータの誤り訂正を行う誤
り訂正方式であつて、前記2回のアクセスのうち
の1回目のアクセスでは、符号語を構成する各デ
ータとデータに対応したエラー・フラグを前記デ
ータ・メモリ及びエラー・フラグ・メモリから読
み出し、誤りのパターン及び位置を求めるもとと
なるシンドロームを算出して誤りのパターン及び
位置を求める方法を決定し、前記エラー・フラ
グ・メモリから読み出されたエラー・フラグを第
1記憶手段に一時記憶し、前記2回のアクセスの
うちの2回目のアクセスでは、再び符号語を構成
する各データを読み出しかつデータに対応したエ
ラー・フラグを前記第1記憶手段から得て、前記
1回目のアクセスで決定された方法に従い誤りの
パターン及び位置を求めて誤つたデータがアクセ
スされている期間中にそのデータの訂正を行つた
のち直ちに前記データ・メモリの同じアドレスに
書き込み、前記2回目のアクセスが終了した時点
でエラー・フラグの更新値を決定して第2記憶手
段に一時記憶し、前記第2記憶手段の記憶内容を
次の符号語の誤り訂正をなすときの2回目のアク
セス期間中に前記エラー・フラグ・メモリへ書き
込むことを特徴とする誤り訂正方式。1. When correcting errors in code words of error correction codes consisting of information data and check data, at least one
A bit error flag is made to correspond to each data, and two bit error flags are assigned for each code word to the data to be subjected to error correction and the error flag corresponding to each data stored in the data memory and error flag memory, respectively. 1 consecutive access
This is an error correction method that corrects errors in data constituting one code word, and in the first of the two accesses, each data constituting the code word and the error flag corresponding to the data are A syndrome is read from the data memory and the error flag memory to determine the error pattern and position, a method for determining the error pattern and position is determined, and the error flag memory is read from the error flag memory. The error flags corresponding to the data are temporarily stored in the first storage means, and in the second of the two accesses, each data constituting the code word is read out again and the error flag corresponding to the data is stored in the first storage means. Immediately after correcting the erroneous data during the period in which the erroneous data is being accessed by determining the error pattern and position from the storage means according to the method determined in the first access, Write to the same address, and when the second access is completed, determine the updated value of the error flag and temporarily store it in the second storage means, and correct the error of the next code word by using the stored contents of the second storage means. An error correction method characterized in that writing to the error flag memory is performed during a second access period when performing the error correction method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60153183A JPS6213128A (en) | 1985-07-10 | 1985-07-10 | Error correction system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60153183A JPS6213128A (en) | 1985-07-10 | 1985-07-10 | Error correction system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6213128A JPS6213128A (en) | 1987-01-21 |
JPH041530B2 true JPH041530B2 (en) | 1992-01-13 |
Family
ID=15556857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60153183A Granted JPS6213128A (en) | 1985-07-10 | 1985-07-10 | Error correction system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6213128A (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5665310A (en) * | 1979-10-31 | 1981-06-03 | Sony Corp | Transmitting method for pcm data |
JPS57137948A (en) * | 1981-02-19 | 1982-08-25 | Fujitsu Ltd | Automatic error correction system |
-
1985
- 1985-07-10 JP JP60153183A patent/JPS6213128A/en active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5665310A (en) * | 1979-10-31 | 1981-06-03 | Sony Corp | Transmitting method for pcm data |
JPS57137948A (en) * | 1981-02-19 | 1982-08-25 | Fujitsu Ltd | Automatic error correction system |
Also Published As
Publication number | Publication date |
---|---|
JPS6213128A (en) | 1987-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0812612B2 (en) | Error correction method and apparatus | |
JPH09507118A (en) | Cyclic redundancy check method and apparatus | |
JPH08330975A (en) | Error correction code decoding method and circuit adopting this method | |
JPH0681058B2 (en) | Data transmission / reception method | |
JPH10107650A (en) | Error detection circuit and error correction circuit | |
JPH0421944B2 (en) | ||
US4498178A (en) | Data error correction circuit | |
JP2005086683A (en) | Error decoding circuit, data bus control method, and data bus system | |
JP2627581B2 (en) | Electronic circuit for generating error detection codes in digital signals | |
EP0262944A2 (en) | Error correction apparatus | |
US5588010A (en) | Parallel architecture error correction and conversion system | |
JPH041530B2 (en) | ||
JPH1083356A (en) | Method and device for hiding error in stored digital data | |
JPH05225717A (en) | Address generation circuit for error correction of dat | |
RU1810909C (en) | Error corrector | |
KR100246342B1 (en) | Reed solomon error correction apparatus | |
JP2858538B2 (en) | Re-syndrome check method | |
JP2570369B2 (en) | Error correction decoding device | |
JPH05151007A (en) | Crc arithmetic unit | |
JPH0636286B2 (en) | Error correction method and apparatus | |
JPS60206228A (en) | Error correction system | |
KR930005439B1 (en) | Reed solomon encoding circuit of optical recording and reproducing system | |
CN112540866A (en) | Memory device and data access method thereof | |
JPS6234243A (en) | Error correcting system | |
JP2500141B2 (en) | Error correction method and apparatus |