JP3139499B2 - Error correction processor - Google Patents

Error correction processor

Info

Publication number
JP3139499B2
JP3139499B2 JP01034790A JP3479089A JP3139499B2 JP 3139499 B2 JP3139499 B2 JP 3139499B2 JP 01034790 A JP01034790 A JP 01034790A JP 3479089 A JP3479089 A JP 3479089A JP 3139499 B2 JP3139499 B2 JP 3139499B2
Authority
JP
Japan
Prior art keywords
error
circuit
data
syndrome
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01034790A
Other languages
Japanese (ja)
Other versions
JPH02214073A (en
Inventor
幸美 木下
雅之 石黒
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP01034790A priority Critical patent/JP3139499B2/en
Publication of JPH02214073A publication Critical patent/JPH02214073A/en
Application granted granted Critical
Publication of JP3139499B2 publication Critical patent/JP3139499B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術(第4〜14図) 発明が解決しようとする課題 課題を解決するための手段 作用 実施例 本発明の一実施例(第1〜3図) 発明の効果 〔概要〕 誤り訂正処理装置に関し、 ハードウエア量を増やすことなく、誤り位置・数値が
求められるのと同時にCRCによるチェックを行うことが
でき、処理時間を格段に短縮することができる誤り訂正
処理装置を提供することを目的とし、データ列を同一デ
ータ長からなる複数のインタリーブに分割し、該複数の
インタリーブ毎の誤り訂正を行うための誤り訂正符号
と、訂正結果を検証するためのCRCとを備えたデータの
誤り訂正処理装置であって、クロック毎に動作して誤り
訂正符号により誤り位置および誤り数値を検出し、出力
するエラー検出回路と、クロック毎に動作してクロック
毎に前記エラー検出回路からの誤り数値を入力され、CR
C計算に用いる訂正結果シンドロームを順次生成する訂
正結果検証用シンドローム生成回路と、を設け、前記エ
ラー検出回路と前記訂正結果検証用シンドローム生成回
路に同時にクロックを与えることにより、誤り位置およ
び誤り数値の検出処理と訂正結果検証用シンドロームの
生成処理を同時に行うことを特徴とする。
Detailed Description of the Invention [Table of Contents] Outline Industrial application field Conventional technology (FIGS. 4 to 14) Problems to be solved by the invention Means for solving the problem Actions Embodiment One embodiment of the present invention ( (Figs. 1 to 3) Effects of the Invention [Outline] Regarding the error correction processing device, it is possible to check the error position and numerical value at the same time as the error position and the numerical value are obtained without increasing the amount of hardware, so that the processing time can be significantly reduced. In order to provide an error correction processing device that can be shortened, the data sequence is divided into a plurality of interleaves having the same data length, and an error correction code for performing error correction for each of the plurality of interleaves, An error correction processor for data provided with a CRC for verifying a result, which operates at each clock, detects an error position and an error value by an error correction code, and outputs the error. It is input and the circuit operates at each clock the error value from the error detection circuit for each clock, CR
A correction result verification syndrome generation circuit for sequentially generating correction result syndromes used for the C calculation, and by simultaneously providing clocks to the error detection circuit and the correction result verification syndrome generation circuit, an error position and an error value can be calculated. The detection processing and the generation processing of the correction result verification syndrome are performed simultaneously.

〔産業上の利用分野〕[Industrial applications]

本発明は、誤り訂正処理装置に係り、特に、光ディス
クRead処理の際のCRCチェック装置の高速化を図った誤
り訂正処理装置に関する。
The present invention relates to an error correction processing device, and more particularly, to an error correction processing device that speeds up a CRC check device during an optical disk read process.

光ディスクのビット誤り発生率は、磁気ディスクの2
〜3桁も多い10-3〜10-5であり、また、誤りの性質もこ
となっているので新しい方式の設計が必要である。磁気
ディスクではS/Nが悪いための読み誤りが多く、もう一
度再生を繰り返して誤りを回復するという手段が有効で
ある。これに対し、光ディスクは記録媒体上の欠陥が誤
りの主原因となっているので再・再生の手段は利用され
ない。信号処理による誤り訂正と、記録直後の再生誤り
状況をチェックし、問題があれば別の場所に記録する交
替処理(または、記録直前に再生光ビームで媒体の欠陥
を調べ、結果が多すぎる場合は、記録する場所を変え
る)などが併用される。
The bit error rate of the optical disk is 2% of the magnetic disk.
It is 10 -3 to 10 -5, which is up to 3 digits, and the nature of the error is also different, so a new scheme needs to be designed. A magnetic disk has many reading errors due to poor S / N, and it is effective to repeat the reproduction again to recover the error. On the other hand, in the case of an optical disk, a defect on a recording medium is a main cause of an error, so that means for re-reproduction is not used. Error correction by signal processing and the status of reproduction error immediately after recording are checked. If there is a problem, replacement processing to record at another location (or, just before recording, check the medium for defects using a reproduction light beam. Changes the recording location).

背景説明 光ディスクでは、ランダム誤りとバーストの誤りの両
者が発生する。また、光ディスク媒体の誤り率が比較的
高いため、強力な訂正符号が必要となる。そのため、光
ディスクでは、リード・ソロモン符号で多量に符号化す
る方式に交錯法(インターリーブ法)を組み合わせた方
式が採用されている。光ディスクの誤り訂正符号ECC(e
rror correction code、以下、単にECCという)はリー
ド・ソロモン符号といい、複雑でエラー訂正処理時間は
かかるものの、エラー訂正能力は非常に高い。処理時間
がかかるために、通常、1セクタのデータを読む場合、
読み込んだデータをデータバッファに一旦蓄え、同時
に、ECCプロセッサで読み込んだデータを基にして誤り
の症状を示すシンドロームを作り、そのシンドロームを
基にしてどこがどのように誤っているかということを検
出する。その処理に非常に時間がかかる。
BACKGROUND ART In an optical disc, both random errors and burst errors occur. Further, since the error rate of the optical disk medium is relatively high, a strong correction code is required. Therefore, the optical disc employs a method in which a large amount of coding is performed by the Reed-Solomon code in combination with an interleaving method (interleave method). Error correction code ECC (e
The rror correction code (hereinafter simply referred to as ECC) is called a Reed-Solomon code and has a very high error correction capability although it is complicated and requires a long error correction processing time. Because of the processing time, usually when reading one sector of data,
The read data is temporarily stored in a data buffer, and at the same time, a syndrome showing a symptom of an error is created based on the data read by the ECC processor, and based on the syndrome, it is detected where and how it is wrong. The process takes a very long time.

磁気ディスクなどで通常用いられるECCがビット訂正
符号であるのに対し、光ディスクで用いられるリード・
ソロモン符号はバイト訂正符号である。ビット訂正符号
はデータの1ビットを符号語の要素して扱いどこのビッ
トが誤っているかを検出する。そして、どこのビットが
誤っているかが分かればそのビットの値を反転すれば良
い。これに対して、バイト訂正符号はデータ8ビット、
すなわち1バイトを符号語の要素として扱い、どのバイ
トがどのように誤っているかを検出する。光ディスクの
リード・ソロモン符号は、符号語の各要素をガロア体
(有限体)GF(28)の元として扱うことによってバイト
訂正を実現するものである。
The ECC commonly used for magnetic disks and the like is a bit correction code, whereas the read / write
Solomon codes are byte correction codes. The bit correction code treats one bit of data as a codeword element and detects which bit is wrong. Then, if it is known which bit is wrong, the value of the bit may be inverted. On the other hand, the byte correction code is 8-bit data,
That is, one byte is treated as an element of a code word, and which byte is detected and how wrong is detected. Reed-Solomon code of the optical disc is to realize a byte corrected by treating each element of the code word as the original Galois field (finite) GF (2 8).

ガロア体GF(2r)というのは元の数が2r個のガロア体
であり、ガロア体の元を表すときにはαを用いる。例え
ば、ガロア体GF(28)の元は、28=256個あり、1(=
α=α255)、α、α、α、〜、α254で表わさ
れる。ガロア体GF(28)の元は、8次元2元ベクトル、
すなわち1バイトのデータと考えることができるので、
これをバイド誤り訂正に利用している。また、ガロア体
はその中で乗除算をはじめとする四則演算が全て完結す
る。一例を挙げると、 というように必ず計算の結果がガロア体の元になる。
The Galois field GF (2 r ) is a Galois field having 2 r elements, and α is used to represent an element of the Galois field. For example, the element of the Galois field GF (2 8 ) has 2 8 = 256, and 1 (=
α 0 = α 255 ), α 1 , α 2 , α 3 ,..., α 254 . The element of the Galois field GF (2 8 ) is an 8-dimensional binary vector,
That is, since it can be considered as 1-byte data,
This is used for byte error correction. In the Galois field, all four arithmetic operations including multiplication and division are completed. For example, The result of the calculation is always the source of the Galois field.

光ディスクの誤り訂正の場合は1バイトのデータをガ
ロア体GF(28)の元として扱い、ある元、つまりある1
バイトのデータがどのように誤っているかを検出する。
例えば本来ならαが書かれているデータが誤ってα
に化けているとき、 α+α=α となり、αが誤り数値となる。ガロア体の元の加算・
減算は、具体的には元のベクトル表現のEOR(イクスク
ルーシブ・オア)で行うことができる。
In the case of error correction of an optical disk, one byte of data is treated as an element of the Galois field GF (2 8 ), and a certain element,
Detects how bad the byte data is.
For example, incorrectly data that would otherwise α 2 is written α 5
Α 2 + α X = α 5 , and α X is an error value. Addition of element of Galois field
More specifically, the subtraction can be performed by EOR (exclusive or) of the original vector expression.

第4図(a)は、ガロア体GF(28)を用いたリード・
ソロモン符号の符号語の例である。ガロア体GF(28)を
用いたリード・ソロモン符号の符号長(符号語の長さ)
は、2r−1となる。この例では符号長=28−1=255バ
イトである。
Figure 4 (a) is read using a Galois field GF (2 8)
It is an example of a code word of a Solomon code. Code length (codeword length) of Reed-Solomon code using Galois field GF (2 8 )
Is 2 r -1. In this example a code length = 2 8 -1 = 255 bytes.

また、検査記号数(ECC部分の長さ)は、ECCの生成多
項式によって決まる。この例では、検査記号数が16バイ
トになるような生成多項式であるものとし、図中の位置
15〜位置0がECC部分である。ECC部分を除いた、239バ
イト(位置254〜位置16)がデータ部分である。データ
部分の長さを情報記号数と呼ぶ。
The number of check symbols (the length of the ECC part) is determined by the ECC generator polynomial. In this example, it is assumed that the generator polynomial is such that the number of check symbols is 16 bytes.
From 15 to position 0 is the ECC part. Excluding the ECC part, 239 bytes (position 254 to position 16) are the data part. The length of the data portion is called the number of information symbols.

ECCの語り訂正能力もまた、その生成多項式によって
決まり、第4図(a)の例では、誤り訂正能力は8バイ
トである。すなわち、255バイトのうち8バイトまでの
誤りを訂正することができる。
The narration correction capability of the ECC is also determined by the generator polynomial, and in the example of FIG. 4A, the error correction capability is 8 bytes. That is, an error of up to 8 bytes out of 255 bytes can be corrected.

第4図(b)は、光ディスクで使用する符号語の例で
あり、第4図(a)の符号語の情報記号数を、104バイ
トにしたものである。第4図(a)の符号語と、第4図
(b)の符号語の誤り検出手順は同じである。この符号
の誤り訂正を行う手順を説明する。
FIG. 4B shows an example of a code word used in the optical disc, in which the number of information symbols of the code word in FIG. 4A is set to 104 bytes. The error detection procedure of the code word of FIG. 4A and the code word of FIG. 4B are the same. A procedure for correcting the error of this code will be described.

まず、符号語全体からシンドロームを求める。シンド
ロームもやはり多項式(シンドローム多項式)である。
誤りがないときは、シンドロームがゼロになる。次に、
シンドロームを元に、誤りの位置多項式と数値多項式を
求める。このときの方法としてはユークリッド互除アル
ゴリズムを用いるのが一般的である。
First, a syndrome is obtained from the entire codeword. The syndrome is also a polynomial (syndrome polynomial).
If there are no errors, the syndrome will be zero. next,
An error position polynomial and a numerical polynomial are obtained based on the syndrome. In this case, the Euclidean algorithm is generally used.

次に、誤り位置多項式および誤り数値多項式を基に、
誤り位置および誤り数値を求める。すなわち、何番めの
バイトがどのように誤っているかを求める。このときの
方法としてはチェンのアルゴリズム(チェンサーチ)が
一般的である。
Next, based on the error locator polynomial and the error numerical polynomial,
Find the error location and error value. In other words, what number byte is wrong and how is it determined. As a method at this time, a Chen algorithm (Chen search) is generally used.

第5図(a)は、光ディスクの1セクタ分のデータを
配列で表わした図であり、第4図(b)の符号語を10個
並べたものとなっている。配列の一行、すなわち1つの
符号語を1インタリーブという。誤り訂正処理は、イン
タリーブ毎に行う。配列のうち、データ部分は104バイ
ト×10=1040バイトであるが、インタリーブ6〜9の位
置16には、CRC(Cyclic Redundancy Check)コードが入
っているので、実際のデータとして使えるのは1036バイ
トである。このCRCは、第5図(b)に示す符号語の要
素である。まず、第5図(a)のデータ部分だけから成
る配列を作り、その配列のCRC部分には0を入れる。次
に配列の各列の要素をEORして、CRC生成用の情報多項式
の要素とする。例えば、インタリーブ0〜9の位置119
のデータを、すべてEORしたものがD119となる。そし
て、D119〜D16から成る情報多項式をCRCの生成多項式で
割った剰余多項式がCRC(C3〜C0)である。
FIG. 5 (a) is a diagram showing an array of data for one sector of the optical disk, in which ten codewords of FIG. 4 (b) are arranged. One row of the array, that is, one codeword is called one interleave. The error correction processing is performed for each interleave. The data portion of the array is 104 bytes x 10 = 1040 bytes, but the position 16 of interleave 6 to 9 contains a CRC (Cyclic Redundancy Check) code, so that 1036 bytes can be used as actual data. It is. This CRC is an element of the code word shown in FIG. 5 (b). First, an array consisting only of the data portion shown in FIG. 5A is created, and 0 is inserted in the CRC portion of the array. Next, the elements of each column of the array are EORed to make the elements of the information polynomial for CRC generation. For example, positions 119 of interleaves 0-9
The data, obtained by EOR all the D 119. Then, the remainder polynomial obtained by dividing the information polynomial composed of D 119 to D 16 by the CRC generation polynomial is CRC (C3 to C0).

CRCは、第5図(a)に示すように、データの配列に
組み込まれる。このCRCはエラー訂正に使用するのでは
なく、ECCを基にエラー訂正を行った結果の検証に使用
する。すなわち、ECCを基にしたエラー訂正が終了した
後、第5図(b)のD119〜D0の108バイトの符号語か
ら、訂正結果検証用のCRCを求め、訂正結果検証用CRCが
0であれば、エラー訂正結果が正しいと判定する。も
し、訂正結果検証用CRCが0でなければ、エラー訂正結
果は正しくない。これにより、該訂正(ミスコレクショ
ン)を防止することができる。
The CRC is incorporated in the data array as shown in FIG. This CRC is not used for error correction but for verifying the result of error correction based on the ECC. That is, after error correction based on the ECC is completed, a CRC for verifying the correction result is obtained from the 108-byte code words D 119 to D 0 in FIG. If so, it is determined that the error correction result is correct. If the CRC for verifying the correction result is not 0, the error correction result is incorrect. Thereby, the correction (miscorrection) can be prevented.

光ディスクからのRead処理のとき、ECCを基にしたエ
ラー訂正ではCRCもデータの一部としエラー訂正を行
い、その後、訂正結果検証用シンドロームを求める。
In the process of reading from an optical disk, in error correction based on ECC, CRC is also used as a part of data to perform error correction, and then a correction result verification syndrome is obtained.

〔従来の技術〕[Conventional technology]

◆原理 チェンサーチは誤り位置多項式σ(X)と、誤り数値多
項式ω(X)から誤り位置jlと誤り数値ejlを求めるもので
ある。
◆ Principle The Chien search finds an error position jl and an error value e jl from an error position polynomial σ (X) and an error value polynomial ω (X) .

σ(X)(X)は次式で表される。σ (X) and ω (X) are represented by the following equations.

σ(X)=σ+σ1x+σ2X2+……σlxl …… ω(X)=ω+ω1x+ω2x2……+ωl-1xl-1 …… 但し、 l:誤りデータの数 σi(0≦i≦l,0≦j≦l-1):ガロア体GF(28
の元 ここで、ガロア体GF(28)とは、 0,1(=β=β255),β1,……,β254という有限
な数の集合であって、以下に述べる性質を有する。
σ (X) = σ 0 + σ 1 x + σ 2 X 2 +… σ l x l … ω (X) = ω 0 + ω 1 x + ω 2 x 2 … + ω l-1 x l-1 …, where l : Number of error data σ i , ω j (0 ≦ i ≦ l, 0 ≦ j ≦ l −1 ): Galois field GF (2 8 )
Here, the Galois field GF (2 8 ) is a finite set of 0,1 (= β 0 = β 255 ), β 1 ,..., Β 254. Have.

・G(X)を多項式とすると(G(X)を原始多項式とい
う)、 全ての値を8次元の2元ベクトルで表すことができる。
・ If G (X) is a polynomial (G (X) is a primitive polynomial), All values can be represented by an 8-dimensional binary vector.

例えば、β=HEX(02) ・四則演算に閉じている。For example, β 1 = HEX (02).

和・差ベクトルのEOR 積・商指数演算 (β×β=β(m+n)mod255 但し、ここで使用するガロア体の元としては、α=β
88を利用している。
EOR product / quotient exponentiation of sum / difference vector (β m × β n = β (m + n) mod 255 where the element of Galois field used is α = β
I'm using 88 .

σ(X)=0の回が誤り位置を示す。位置jl(0≦jl≦2
54)のデータが誤っているとき、 σ(α-jl)=0 …… となる。例えば第4図(b)の位置19に誤りがあれば、
jl=19であるから、 σ(α-19)=0 となる。
The times of σ (X) = 0 indicate an error position. Position jl (0 ≦ jl ≦ 2
When the data of 54) is incorrect, σ (α −jl ) = 0. For example, if there is an error at position 19 in FIG.
Since jl = 19, σ (α -19 ) = 0.

そのとき、誤り数値ejlは、 により求まる。但し、α′(X)はσ(X)の形式微分で、例
えば σ(X)=σ+σ1x+σ2x2+σ2x3+σ4x4+σ5x5 …… のとき、 α′(X)=σ+σ3x3+σ5x4 …… となる。
Then the error value e jl is Is determined by However, α '(X) is sigma format derivative of (X), for example, σ (X) = σ 0 + σ 1 when x + σ 2 x 2 + σ 2 x 3 + σ 4 x 4 + σ 5 x 5 ......, α' (X) = σ 1 + σ 3 x 3 + σ 5 x 4 .

◆動作 基本回路は第6図で示され、この回路の動作は次のよ
うになる。図中 は入力値にαを掛けるためのEORのマトリクスによる
乗算回路、 はフリップフロップである。
Operation The basic circuit is shown in FIG. 6, and the operation of this circuit is as follows. In the figure Is a multiplication circuit using an EOR matrix for multiplying the input value by α n , Is a flip-flop.

また、誤り位置多項式σ(X)の回路1は第7図に示す
ように で表される乗算回路11〜18と、 で表される8bitのフリップフロップ(以下、FFと略記す
る)20〜28と、EOR回路19と、により構成されている。
同図実線は演算ルートを示し、破線は初期値設定ルート
を示している。この回路1の動作は次のようになる。
The circuit 1 of the error locator polynomial σ (X) is as shown in FIG. Multiplication circuits 11 to 18 represented by FFs (hereinafter abbreviated as FFs) 20 to 28 and an EOR circuit 19.
The solid line in the figure shows the calculation route, and the broken line shows the initial value setting route. The operation of the circuit 1 is as follows.

(FFの初期値) 表示してあるようにσ(X)の係数を入
力する。例えば、FF には、σ(x)の8次の項の係数を設定する。
(Initial value of FF ) Enter the coefficient of σ (X) as shown. For example, FF , The coefficient of the eighth-order term of σ (x) is set.

(tクロック後の各FFの値) σ×σi×t (tクロック後のEOR回路の出力の値) σσ×α1×tσ×α2×t σα3×t……σ×α8×t =σσ×(ασ× (ασ×(α ……σ×(α =σ(α) …… このEOR回路の出力が0になった時のtより、誤り位
置jlが求まる。すなわち、 σ(α)=0のとき、σ(α-jl)=0、 したがって、 α=α-jl=α255-jl ゆえに、 t=255−jl よって、 jl=255−t 例えば、t=236のとき、 jl=255−236=19であり、 位置19のデータが誤っているということになる。
(The value of the output of the EOR circuit after t clock) (the value of FF after t clock) σ i × σ i × t σ 0 σ 1 × α 1 × t σ 2 × α 2 × t σ 3 α 3 × t σ 8 × α 8 × t = σ 0 σ 1 × (α t ) 1 σ 2 × (α t ) 2 σ 3 × (α t ) 3 …… σ 8 × (α t ) 8 = σ ( α t ) An error position jl is obtained from t when the output of the EOR circuit becomes 0. That is, when σ (α t ) = 0, σ (α -jl ) = 0, and therefore α t = α -jl = α 255- jl, so that t = 255- jl and jl = 255-t For example, When t = 236, jl = 255−236 = 19, which means that the data at position 19 is incorrect.

FFの初期設定を行うときは、セレクタで初期値設定ル
ートを選択し、 のFFをシフトレジスタとして接続する。そして、初期設
定入力から1バイトづつ順番にセットするとどんどんこ
れがシフトして最終的にはFF28までつまる。初期設定が
全て終わったらセレクタを巡回する演算ルートに切り換
える。初期設定ルートは単なるシフトレジスタとして働
き、1バイト設定する毎に最初にセットしたデータがど
んどん下にずれていく。一旦、係数を全部セットし終わ
ったら後はプロセッサから何もセットすることはなく、
クロック毎にこの回路が動くだけになる。
When performing the initial setting of FF, select the initial value setting route with the selector, Are connected as shift registers. Then, when the byte is set one byte at a time from the initial setting input, this shifts more and more and finally ends up with FF28. When all the initial settings are completed, the operation route is switched to the operation route that goes around the selector. The initial setting route functions as a simple shift register, and the data set first shifts downward every time one byte is set. Once all the coefficients have been set, there is no need to set anything from the processor,
Only this circuit runs every clock.

同様に、誤り数値多項式ω(X)の回路31は第8図に示
すように、 で表される乗算回路32〜39と、 で表される8bitのFF40〜47と、EOR回路48と、により構
成されている。この回路31の動作は次のようになる。
Similarly, the circuit 31 of the error numerical polynomial ω (X) , as shown in FIG. Multiplication circuits 32-39 represented by FFs 40 to 47 of 8 bits and an EOR circuit 48. The operation of this circuit 31 is as follows.

(tクロック後のEOR回路の出力) ω×α119×tω×α120×tω×α
121×t ω×α122×t……ω×α126×t =α119×t×(ωω×αω×α2t ω×α3t…………ω×α7t) =α119×t×ω(α) …… これは、ejlの式の分子の値そのものである。
(Output of EOR circuit after t clock) ω 0 × α 119 × t ω 1 × α 120 × t ω 2 × α
121 × t ω 3 × α 122 × t ... Ω 7 × α 126 × t = α 119 × t × (ω 0 ω 1 × α t ω 2 × α 2t ω 3 × α 3t ……… ω × α 7t ) = α 119 × t × ω (α t ) This is the value of the numerator of the expression of ejl .

また、σ(x)の形式微分σ(x)の回路53は、第9図に示
すように、 で表わされる乗算回路62〜64と、 で表われる8bitのFF65〜68と、EOR回路69とにより構成
されている。この回路53は、動作を開始してからtクロ
ック後に、EOR回路69から、σ(α)の形式微分σ′
(α)を出力する。σ′(α)はejlの式の分母で
ある。
The circuit 53 of sigma (x) form a differential sigma of (x), as shown in FIG. 9, Multiplication circuits 62 to 64 represented by And an EOR circuit 69. The circuit 53 outputs the formal differential σ ′ of σ (α t ) from the EOR circuit 69 t clocks after the operation starts.
t ) is output. σ ′ (α t ) is the denominator of the expression of e jl .

したがって、ω(x)の回路31の出力値を、σ′(x)の回
路53の出力値で割り算した値が誤り数値ejlとなる。
Therefore, the value obtained by dividing the output value of the circuit 31 of ω (x) by the output value of the circuit 53 of σ ′ (x) is the error value e jl .

このように、t=255になるまで、すなわち255クロッ
クの間これらの回路を動作させれば、位置254〜位置0
の誤りをすべて検出することができる。但し、第4図
(b)に示す符号語の例では、位置254〜位置120は存在
しないから、誤り位置として位置254〜位置120を検出し
た場合は、その符号語は訂正できない。
Thus, if these circuits are operated until t = 255, that is, for 255 clocks, the positions 254 to 0
Can be detected. However, in the example of the code word shown in FIG. 4 (b), since the positions 254 to 120 do not exist, if the positions 254 to 120 are detected as error positions, the code word cannot be corrected.

以上で、チェンサーチの動作説明を終え、以下チェン
サーチを用いた具体的な誤り位置・数値検出回路につい
て説明する。第14図はチェンサーチを用いた誤りの位置
・数値検出回路を示す図であり、第7〜9図に示す回路
と同一構成部分には同一番号・符号を付して重複部分の
説明を省略する。第14図において、51は誤り位置・数値
検出回路であり、誤り位置・数値検出回路51は誤り位置
多項式σ(X)の回路1を含んで構成される誤り位置検出
回路52と、誤り数値多項式ω(X)の回路31と、σ(x)の形
式微分σ′(x)の回路53と、誤り数値算出回路58と、誤
り検出結果記憶回路70と、により構成されている。誤り
位置検出回路52は誤り位置多項式σ(X)の回路1およびZ
ero検出回路57により構成されている。誤り数値算出回
路58はガロア体逆数ROM(256Byte)59、ガロア体乗算器
60により構成されている。
The operation of the Chien search has been described above, and a specific error position / numeric value detection circuit using the Chien search will be described below. FIG. 14 is a diagram showing an error position / numeric value detection circuit using Chien search. The same components as those in the circuits shown in FIGS. I do. In FIG. 14, reference numeral 51 denotes an error position / numerical value detection circuit. The error position / numerical value detection circuit 51 includes an error position detection circuit 52 including the circuit 1 of the error position polynomial σ (X) , and an error numerical value polynomial. the circuit 31 of the omega (X), the form differential sigma 'circuit 53 (x) of the sigma (x), and error value calculating circuit 58 is constituted by an error detection result storage circuit 70,. The error position detection circuit 52 is a circuit for the error position polynomial σ (X) 1 and Z
An ero detection circuit 57 is provided. Error value calculation circuit 58 is Galois field reciprocal ROM (256 bytes) 59, Galois field multiplier
It is composed of 60.

このような構成において、まず位置多項式σ(x)の係
数をFF20〜FF28に、σ′(x)の係数をFF56〜68に、ω(x)
の係数をFF40〜47にそれぞれ設定する。そして、セレク
タおよび演算ルートに切り換えた後、回路51全体に1ク
ロックずつ順次与える。例えば、FF23に、σ(x)の3次
の項の係数としてα10が設定されたとする。そして、1
クロックを与えると、α10にαが乗算された値、すな
わちα13がFF23にセットされる。さらに、2クロックめ
を与えると、α13+3=α16がFF23にセットされる。同様
にtクロックめを与えると、FF23にはα10+3×tがセ
ットされる。このように、回路全体にtクロックを与え
るということは、各多項式にαを代入したことにな
る。回路全体にクロックを与えると同時に、σ(x)=0
となったかどうかを検出する。それにはσ(x)の全次数
の値を加算する。すなわち、FF20〜FF28の出力のすべて
EORして、その結果(EOR回路19の出力)が0になったか
どうかを見る。その結果が全ビット“0"になったところ
はσ(x)=0の解、すなわち誤り位置が求まったところ
になる。
In such a configuration, first, the coefficient of the position polynomial σ (x) is set to FF20 to FF28, the coefficient of σ ′ (x) is set to FF56 to 68, and ω (x)
Are set to FF40 to 47, respectively. Then, after switching to the selector and the operation route, one clock is sequentially applied to the entire circuit 51. For example, the in FF 23, alpha 10 is set as the coefficients of the third order terms of the sigma (x). And 1
Given a clock, the alpha 3 in alpha 10 multiplied values, i.e. alpha 13 is set to the FF 23. Further, when the second clock is given, α 13 + 3 = α 16 is set to FF23. Similarly, when the t-th clock is given, α10 + 3 × t is set in FF23. Thus, giving t clocks to the entire circuit means that α t is substituted for each polynomial. At the same time as applying a clock to the entire circuit, σ (x) = 0
Is detected. To that end, the values of all orders of σ (x) are added. That is, all of the outputs of FF20 to FF28
EOR is performed, and it is checked whether or not the result (the output of the EOR circuit 19) becomes 0. The result where all the bits are "0" is the solution of σ (x) = 0, that is, the position where the error position is obtained.

誤りの位置は“0"を検出したときのそれまで乗算を繰
り返した回数すなわち、与えたクロックの数により知る
ことができる。上述したように、1回クロックを与える
と、多項式にαが代入され、2回クロックを与えると
αが代入されるというように与えたクロックの数が代
入したαの乗数と同じであり、代入したαの乗数は誤り
の位置を表している。したがって、初期値が0で、クロ
ックを1回与える毎に1づつカウントアップするカウン
タを設けておけば、σ(x)=0を検出したときのカウン
タの値が誤りの位置を表すことになる。Locationカウン
タ55はこの目的のためのものである。
The position of the error can be known from the number of repeated multiplications up to that point when "0" is detected, that is, the number of given clocks. As described above, given a single clock, the alpha 1 is substituted into the polynomial, the same as the two multipliers alpha number of given clock is substituted as that given a clock alpha 2 is substituted , The substituted multiplier of α indicates the position of the error. Therefore, if a counter is provided which has an initial value of 0 and counts up by one each time a clock is applied, the value of the counter when σ (x) = 0 is detected indicates the position of the error. . Location counter 55 is for this purpose.

Zero検出回路57はσ(x)=0を検出する回路である。Z
ero検出回路57から、Zero検出信号が出されると、その
ときのLocationカウンタ55の値をレジスタファイル56に
記憶することになるが、エラーの数は最大8個であるか
らレジスタファイル56は8wordの容量を持っている。
The Zero detection circuit 57 is a circuit that detects σ (x) = 0. Z
When the Zero detection signal is output from the ero detection circuit 57, the value of the Location counter 55 at that time is stored in the register file 56. However, since the number of errors is eight at the maximum, the register file 56 has 8 words. Have the capacity.

回路51では、回路全体に同時にクロックを与えるので
σ(x)にαを代入すると同時にσ′(x)とω(x)にもα
を代入していることになる。したがって、誤り位置を
検出したときには、ω(x)の回路31からejlの式の分子が
出されており、σ′(x)の回路53からejlの式の分母が出
力されている。このときのω(x)の回路31の出力をσ′
(x)の回路の出力で割れば、誤り数値ejlを求めることが
できる。誤り数値算出回路58は、その割り算を行う回路
である。誤り数値算出回路58は、ω(x)の回路31の出力
にσ′(x)の回路53の出力の逆数を乗算することで割り
算を実現している。そのための回路として、ガロア体GF
(28)の逆数ROM59とガロア体GF(28)の乗算器60を備
えている。
In the circuit 51, also at the same time substituting the alpha t because it gives at the same time the clock throughout the circuit to σ (x) σ '(x ) and ω (x) α
This means that t is substituted. Therefore, when detecting an error position has been issued expression of the numerator of e jl from the circuit 31 of omega (x), sigma 'denominator from the circuit 53 of the formula e jl of (x) is output. The output of the circuit 31 of ω (x) at this time is σ ′
By dividing by the output of the circuit (x) , the error value e jl can be obtained. The error value calculation circuit 58 is a circuit that performs the division. The error value calculation circuit 58 realizes division by multiplying the output of the circuit 31 of ω (x) by the reciprocal of the output of the circuit 53 of σ ′ (x) . For that purpose, Galois field GF
And a multiplier 60 for reciprocal ROM59 and the Galois field GF (2 8) (2 8).

例えば、α200÷α30の場合にはα200-30となり、割
り算をこのように求めるためには、これを掛け算に直す
必要があるから、α200×α255-30とすれば、α
200+255-30=α170となる。ガロア体逆数ROM59にα30
入力されるとガロア体逆数ROM59からはα255-30=α225
が出力される。誤り位置を検出したとき、カウンタ55の
値とともに、誤り数値算出回路58の出力ejlもレジスタ
ファイル56へ記憶する。
For example, the alpha 200-30 becomes the case of alpha 200 ÷ alpha 30, the in order to obtain in this way division, it is necessary to fix it to the multiplication, if α 200 × α 255-30, α
The 200 + 255-30 = α 170. When α 30 is input to the Galois field reciprocal ROM 59, α 255-30 = α 225 from the Galois field reciprocal ROM 59
Is output. When the error position is detected, the output e jl of the error value calculation circuit 58 is stored in the register file 56 together with the value of the counter 55.

以上で、チェンサーチを用いた誤り位置・数値検出回
路(第14図)の説明を終える。
This concludes the description of the error position / numeric value detection circuit (FIG. 14) using the Chien search.

次に、CRCチェックの方法について説明する。まず、
その前提として、シンドロームの考え方およびシンドロ
ームジェネレータの動作原理を述べる。
Next, a method of the CRC check will be described. First,
As a premise, the concept of the syndrome and the operating principle of the syndrome generator will be described.

シンドロームの考え方 第10図(a)に示すような、CRCを含むデータ列を、
多項式A(x)とみなし、CRCの生成多項式G(x)
が、 G(x)=(X−α136)(X−α137)(X−α138) (X−α139) …… であるとする。
Syndrome concept As shown in Fig. 10 (a),
Considering polynomial A (x), CRC generating polynomial G (x)
It is assumed that G (x) = (X-α 136 ) (X-α 137 ) (X-α 138 ) (X-α 139 )

このときの多項式A(x)のシンドロームは、多項式
A(x)にα136、α137、α138、α139、をそれぞれ代
入した多項式で表わす。すなわち、A(α)(但し、
i=136、137、138、139)となる。
The syndrome of the polynomial A (x) at this time is represented by a polynomial in which α 136 , α 137 , α 138 , and α 139 are substituted for the polynomial A (x). That is, A (α i ) (however,
i = 136, 137, 138, 139).

A(x)=A107・X107+A106・X106+ ……+A2・X2+A1・X+A0 …… であるから、A(x)に例えばα136を代入すると、 A(α136)=A107・α136×107+A106・α136×106 +……+A2・α136×2+A1・α136+A0 …… である。Because it is A (x) = A 107 · X 107 + A 106 · X 106 + ...... + A 2 · X 2 + A 1 · X + A 0 ......, and substituting example alpha 136 to A (x), A (α 136 ) = A 107 · α 136 × 107 + A 106 · α 136 × 106 +... + A 2 · α 136 × 2 + A 1 · α 136 + A 0 .

A(x)が誤りを含むと仮定した場合、 A(x)=I(x)+E(x)と表わす。 Assuming that A (x) contains an error, A (x) = I (x) + E (x).

ここで、 I(x):正しいデータから成る多項式 E(x):誤り成分(誤り数値)から成る多項式 である。 Here, I (x): a polynomial composed of correct data E (x): a polynomial composed of error components (error numerical values).

正しいデータから求めたシンドロームは0になる。す
なわち、I(α)であれば、A(x)には誤りがない
と判定する。もし、A(x)が誤りを含んでいれば、A
(α)=I(α)+E(α)であるが、I
(α)=0であるので、A(α)=E(α)とな
り、A(x)のシンドロームは、誤り数値から成る多項
式E(x)によって決まることがわかる。第10図(a)
に示す多項式A(x)が、誤り成分として、多項式E
(x)を含んでいるとすると、 A(α)=E(α)=E130・αi×103 +E6・αi×6+E1・α …… である。
The syndrome obtained from the correct data is 0. That is, if I (α i ), it is determined that A (x) has no error. If A (x) contains an error, A
i ) = I (α i ) + E (α i )
Since (α i ) = 0, A (α i ) = E (α i ), and it can be seen that the syndrome of A (x) is determined by the polynomial E (x) including the error value. Fig. 10 (a)
Is a polynomial E (x) as an error component.
If (x) is included, A (α i ) = E (α i ) = E 130 · α i × 103 + E 6 · α i × 6 + E 1 · α i ...

シンドロームジェネレータの動作原理 第11図はシンドロームジェネレータの動作原理を示す
図である。図中 は入力値にαを掛けるためのEORのマトリクスによる
乗算回路、 は8ビットのフリップフロップである。
FIG. 11 is a diagram showing the operation principle of the syndrome generator. In the figure Is a multiplication circuit by an EOR matrix for multiplying the input value by α i , Is an 8-bit flip-flop.

(FFの初期値) 0 (入力値) FFの1クロック毎にAn-1、An-2、……、
A1、A0をAn-1から順に入力する。
(Initial value of FF) 0 (Input value) An 1 , An 2 ,.
A 1 and A 0 are input in order from An-1 .

(1クロック後のFFの値) An-1 (2クロック後のFFの値) An-1×αAn-2 (3クロック後のFFの値) (An-1×αAn-2)×αAn-3 =An-1×(αAn-2×(α)An-3 (4クロック後のFFの値) {An-1×(αAn-2×(α)An-3} ×αAn-4 =An-1×(αAn-2 ×(αAn-3×(α)An-4 (nクロック後のFFの値) An-1×(αn-1An-2×(αn-2 ……A1(α)A0 入力データを多項式A(x)、 A(x)=An-1Xn-1An-2Xn-2……A1XA0 …… とおくと、nクロック′のFFの値は、A(x)にα
代入したもの、すなわち A(α) …… となっている。
(The value of the FF after one clock) A n-1 (The value of the FF after two clocks) A n-1 × α i An n-2 (The value of the FF after three clocks) (A n-1 × α i A n−2 ) × α i An −3 = A n−1 × (α i ) 2 An −2 × (α i ) A n−3 (FF value after 4 clocks) {A n−1 × (α i ) 2 An −2 × (α i ) A n−3 } × α i An −4 = A n−1 × (α i ) 3 An −2 × (α i ) 2 An −3 × (α i ) A n−4 (value of FF after n clocks) A n−1 × (α i ) n−1 A n−2 × (α i ) n−2 ... A 1i ) If A0 input data is given by polynomial A (x), A (x) = A n-1 X n-1 A n-2 X n-2 ... A 1 XA 0 . the value of FF is, those obtained by substituting α i to a (x), that is, become the a (α i) .......

前述のようにA(α)はシンドロームである。As described above, A (α i ) is a syndrome.

CRCチェックの方法 第5図(a)に示すような光ディスクの1セクタ分の
ディスクを処理する場合、まず0〜9の各インタリーブ
毎に、ECCによるエラー訂正を行う。次にエラー訂正の
終了したデータからECC部分を除いたデータを基に第5
図(b)のデータ列A(x)を作成する。A(x)の各
バイトはデータ配列の各列のデータ10個をすべてEORし
たものである。例えば、A107はインタリーブ0〜9の位
置119のデータをすべてEORしたものである。但し、CRC
(A3〜A0)は、データ配列中のC3〜C0をそのまま使用す
る。そして、A(x)のシンドロームA(α)を計算
し、A(α)=0となれば、エラー訂正が正しく行わ
れたと判定する。
CRC Check Method When processing one sector of the optical disk as shown in FIG. 5 (a), first, error correction by ECC is performed for each of the interleaves 0-9. Next, based on the data obtained by removing the ECC part from the data for which error correction has been completed, a fifth
A data string A (x) shown in FIG. Each byte of A (x) is obtained by EORing all 10 data in each column of the data array. For example, A107 is obtained by EORing all the data at positions 119 of interleaves 0 to 9. However, CRC
(A 3 ~A 0) is used as a C3~C0 in the data array. Then, the syndrome A (α i ) of A (x) is calculated. If A (α i ) = 0, it is determined that the error correction has been correctly performed.

しかし、この方法では、1セクタ分のエラー訂正がす
べて終了してからでないと訂正結果の検証ができないた
め、1セクタの処理時間が長くなることと、訂正結果の
検証にデータを必要とするため、データバッファからエ
ラー訂正後のデータを読み出す操作が必要になり面倒で
ある。そのため、一般的には、シンドロームが誤り成分
だけで決まることを利用して、エラー訂正前のデータを
基に作成したシンドロームと、エラー訂正処理で求めた
誤り成分だけから作成すしたシンドロームとを比較して
両者が一致していれば、エラー訂正が正しく行われたと
判定する方法が用いられている。具体的には以下の手順
で行う。
However, in this method, the correction result cannot be verified until all error corrections for one sector have been completed. Therefore, the processing time for one sector is lengthened, and data is required for verification of the correction result. In addition, an operation of reading data after error correction from the data buffer is required, which is troublesome. Therefore, in general, using the fact that the syndrome is determined only by the error component, the syndrome created based on the data before error correction is compared with the syndrome created only from the error component obtained by the error correction processing. If they match, a method of determining that error correction has been correctly performed is used. Specifically, the following procedure is performed.

まず、エラー訂正前のデータを基に第5図(b)のデ
ータ列A(x)を作成し、A(x)のシンドロームA
(α)を計算して記憶しておく。A(α)の計算
は、データとECCを基にしたエラー訂正シンドロームの
計算と同時に行えばよい。次に、各インタリーブのエラ
ー訂正処理を行い、誤り位置と誤り数値を求める。
First, a data string A (x) shown in FIG. 5 (b) is created based on the data before error correction, and the syndrome A of A (x) is created.
i ) is calculated and stored. The calculation of A (α i ) may be performed simultaneously with the calculation of the error correction syndrome based on the data and the ECC. Next, error correction processing of each interleave is performed, and an error position and an error value are obtained.

ここで、第12図のようなデータ列を考える。第12図の
データ列E0(x)〜E9(x)は、第5図(a)のインタ
リーブ0〜9のデータ部分の誤り成分から成るものであ
り、例えば、E0(x)は、インタリーブ0のデータ部分
の誤り数値から成る。誤りのない位置の値は0である。
インタリーブ0〜5のデータ部分にはCRCが含まれてい
ないので、E0(x)〜E5(x)のCRC部分は必ず0であ
る。また、インタリーブ6では位置16にCRC(C3)が含
まれてるが、第5図(b)のA(x)に示すように、C3
は多項式A(x)の係数A3に相当するので、位置16に誤
りがあった場合、E6(x)では位置C3に誤りがあるもの
としなければならない。そのかわり位置16値は必ず0と
なる。インタリーブ7〜9も位置16にCRCを含むので、E
7(x)〜E9(x)でも同様の操作が必要である。E
(x)はE0(x)〜E9(x)をすべてEORしたものであ
り、これは第5図(b)のA(x)の誤り成分と同じに
なる。
Here, consider a data string as shown in FIG. The data sequences E0 (x) to E9 (x) in FIG. 12 are composed of error components of the data portions of interleaves 0 to 9 in FIG. 5 (a). For example, E0 (x) Of the data part of The value of the position without error is 0.
Since the CRC is not included in the data portion of interleaving 0-5, the CRC portion of E0 (x) -E5 (x) is always 0. In interleave 6, CRC (C3) is included at position 16, but as shown in A (x) of FIG.
Because corresponds to the coefficient A 3 of the polynomial A (x), when there is an error in the position 16 must be assumed that there is an error in E6 (x) at the position C3. Instead, the value at position 16 is always 0. Since interleaves 7-9 also include a CRC at position 16, E
The same operation is required for 7 (x) to E9 (x). E
(X) is obtained by EORing all of E0 (x) to E9 (x), which is the same as the error component of A (x) in FIG. 5 (b).

インタリーブ0のエラー訂正処理を行った結果、位置
19のデータにαが加算されている誤り位置19、誤り数
値α)ことを検出したとする。位置19はE0(x)の7
次の項に相当し、その係数がαであるから、E0(x)
から求めたシンドロームE0(α)は、 E0(α)=α×(α …… このように、インタリーブ0の誤り位置と誤り数値が
求まればそれを基にソフトウエア(プログラム)でE0
(α)の計算を行い、それと同時にインタリーブ1の
誤り位置・数値の検出を行う。誤り位置と誤り数値は先
述のチェンサーチ回路によって求める。これをインタリ
ーブ9まで同様に繰り返してインタリーブ0〜9のシン
ドロームE0(α)〜E9(α)が得られたら、E0(α
)〜E9(α)をすべてEOR(加算)すれば、E
(x)のシンドロームE(α)となる。そして、この
E(α)と先に求めき記憶しているA(α)とを比
較し、一致していればエラー訂正が正しくできたと判定
する。
As a result of the error correction processing of interleave 0, the position
It is assumed that an error position 19 where α E is added to the data of 19, and an error value α E ) is detected. Position 19 is 7 of E0 (x)
Corresponds to the next section, because its coefficient is α E, E0 (x)
The syndrome E0 (α i ) obtained from the above equation is expressed as follows: E0 (α i ) = α E × (α i ) 7 ... In this way, if the error position and error value of the interleave 0 are obtained, the software ( E0 in the program)
i ) is calculated, and at the same time, an error position and a numerical value of interleave 1 are detected. The error position and error value are obtained by the aforementioned Chien search circuit. This is similarly repeated until interleave 9, and when syndromes E0 (α i ) to E9 (α i ) of interleaves 0 to 9 are obtained, E0 (α
i ) to E9 (α i ) are all EOR (added), then E
The syndrome E (α i ) of (x) is obtained. This E (α i ) is compared with the previously obtained and stored A (α i ), and if they match, it is determined that error correction has been correctly performed.

また、第12図を応用して、第13図に示すようなデータ
列を用いることもできる。第13図のデータ列EC(x)
は、第12図のE6(x)〜E9(x)のCRC部分だけをすべ
て加算したものであり、データ部分には誤りがないとし
たデータ列である。したがって、例えば、インタリーブ
6の位置16に誤りがあった場合は、EC(x)の位置C3に
誤りがあるものとする。同様に、インタリーブ7の位置
16がEC(x)の位置C2に、インタリーブ8の位置16がEC
(x)の位置C1に、インタリーブ9の位置16がEC(x)
の位置C0にそれぞれ対応する。
Further, a data sequence as shown in FIG. 13 can be used by applying FIG. Data string EC (x) in FIG.
Is a data sequence obtained by adding only the CRC portions of E6 (x) to E9 (x) in FIG. 12, and assuming that the data portion has no error. Therefore, for example, if there is an error at the position 16 of the interleave 6, it is assumed that there is an error at the position C3 of EC (x). Similarly, the position of interleave 7
16 is at position C2 of EC (x), position 16 of interleave 8 is at EC
In position C1 of (x), position 16 of interleave 9 is EC (x)
Respectively correspond to the position C0.

EC(x)を設けた結果、第13図のE6(x)〜E9(x)
のCRC部分はすべて0となる。また、シンドロームE
(α)は、E0(α)〜E9(α)とEC(α)を加
算(EOR)することにより求まる。
As a result of providing EC (x), E6 (x) to E9 (x) in FIG.
Are all zero. Also, Syndrome E
i ) is obtained by adding (EOR) E0 (α i ) to E9 (α i ) and EC (α i ).

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

しかしながら、このような従来の誤り訂正符号処理装
置にあっては、CRCチェック(エラー訂正結果の検証)
のためのシンドロームをエラー検出回路(チェンサーチ
で求めた)誤り位置・数値に基づいてソフトウェアにて
算出する構成となっていたため、シリアルな処理手順の
ため時間がかかり、また、ソフトウェアの負担も重くな
るといった問題点を生じていた。
However, in such a conventional error correction code processing apparatus, a CRC check (verification of an error correction result) is performed.
Is calculated by software based on the error position and numerical value of the error detection circuit (determined by the Chien search), which takes time because of the serial processing procedure, and the software burden is heavy. The problem that it became.

例えば、ソフトウエアでやるためには、ガロア体のベ
キ乗計算を行わなければならないが、例えば、α
10×136を求める場合、まず、10×136を計算し、その結
果が1360となる。ところが、α1360はないので(すなわ
ち、(αはα(n×m)mod255なので)1360を25
5で割った余りを計算し、その結果は85となり、ようや
くα85が求められる。さらに、チェンサーチ回路で求ま
る誤り位置・数値はガロア体の元のベクトル表現であ
り、αのnの値を示すのではなくαの値そのものを
示している。αの値からnを求める計算またはその逆
の計算は非常に複雑であるため、通常この変換にはROM
などを用いた変換テーブルを使用する。何れにしてもメ
モリとかテーブルとかを多く必要とするし、計算も複雑
で時間がかかる。なおかつ、1インタリーブあたり誤り
が8個あり得るとすればそれらの計算を各インタリーブ
の処理毎に最大8回行わなければならないということ
で、誤りの位置と数値が求まってからシンドロームが求
まるまでにかなり時間がかかる。メモリなどを設けた場
合は、ハードウエアも増えるという問題点があった。
For example, in order to use software, it is necessary to perform a Galois field exponentiation calculation.
When calculating 10 × 136, first, 10 × 136 is calculated, and the result is 1360. However, since there is no α 1360 (that is, (α n ) m is α (n × m) mod 255 ), 1360 is 25
The modulo 5 calculates, the result is 85, and the last alpha 85 is determined. Furthermore, error position and numbers determined by the Chien search circuit is the original vector representation of the Galois field, rather than indicating the value of n in alpha n represents the value itself of alpha n. Since the calculation of n from the value of α n or vice versa is very complicated, usually this conversion
Use a conversion table using In any case, many memories and tables are required, and the calculation is complicated and time-consuming. In addition, if there are eight errors per interleave, the calculation must be performed up to eight times for each interleave processing. This means that a considerable amount of time is required from when the position and numerical value of the error are obtained to when the syndrome is obtained. take time. When a memory or the like is provided, there is a problem in that the hardware increases.

そこで本発明は、ハードウエア量を増やすことなく、
誤り位置・数値が求められてから、ごく短時間でエラー
訂正結果の検証を行うことができ、処理時間を格段に短
縮することができる誤り訂正処理装置を提供することを
目的としている。
Therefore, the present invention does not increase the amount of hardware,
An object of the present invention is to provide an error correction processing device that can verify an error correction result in a very short time after an error position and a numerical value are obtained, and can significantly reduce processing time.

〔課題を解決するための手段〕[Means for solving the problem]

本発明による誤り訂正処理装置は上記目的達成のた
め、データ列を同一データ長からなる複数のインタリー
ブに分割し、該複数のインタリーブ毎の誤り訂正を行う
ための誤り訂正符号と、訂正結果を検証するためのCRC
とを備えたデータの誤り訂正処理装置であって、クロッ
ク毎に動作して誤り訂正符号により誤り位置および誤り
数値を検出し、出力するエラー検出回路と、クロック毎
に動作してクロック毎に前記エラー検出回路からの誤り
数値を入力され、CRC計算に用いる訂正結果シンドロー
ムを順次生成する訂正結果検証用シンドローム生成回路
と、を設け、前記エラー検出回路と前記訂正結果検証用
シンドローム生成回路に同時にクロックを与えることに
より、誤り位置および誤り数値の検出処理と訂正結果検
証用シンドロームの生成処理を同時に行うようにしてい
る。
In order to achieve the above object, an error correction processing device according to the present invention divides a data string into a plurality of interleaves having the same data length, and verifies an error correction code for performing error correction for each of the plurality of interleaves and a correction result. CRC to do
An error correction processing device for data comprising: an error detection circuit that operates at each clock, detects an error position and an error value by an error correction code, and outputs the error position and an error. An error value input from the error detection circuit, a correction result verification syndrome generation circuit for sequentially generating a correction result syndrome used for CRC calculation, and a clock for the error detection circuit and the correction result verification syndrome generation circuit simultaneously. , The error position and error value detection processing and the correction result verification syndrome generation processing are performed simultaneously.

〔作用〕[Action]

本発明では、誤り位置多項式、数値多項式に値を代入
しながら解を求める誤り位置・数値検出回路の出力が入
力されるシンドローム生成回路が設けられ、該シンドロ
ーム生成回路は誤り位置・数値検出回路と同期して動作
させる。
In the present invention, there is provided a syndrome generation circuit to which an output of an error position / numerical value detection circuit for obtaining a solution while substituting a value into an error position polynomial and a numerical value polynomial is provided. Operate synchronously.

したがって、誤り位置・数値の検出が終わるとほぼ同
時にCRCチェック(エラー訂正結果の検証)が終了し、
処理時間の大幅な短縮が図られる。
Therefore, the CRC check (verification of the error correction result) is completed almost at the same time when the detection of the error position and the numerical value is completed.
The processing time can be greatly reduced.

〔実施例〕〔Example〕

以下、本発明を図面に基づいて説明する。 Hereinafter, the present invention will be described with reference to the drawings.

第1〜3図は本発明に係る誤り訂正処理装置の一実施
例を示す図であり、本発明を情報処理等に用いられる光
ディスク制御装置内の光ディスク制御LSIに適用した例
である。
1 to 3 show an embodiment of an error correction processing device according to the present invention, in which the present invention is applied to an optical disk control LSI in an optical disk control device used for information processing and the like.

まず、構成を説明する。第1図は光ディスク制御装置
の全体構成例を示す図である。同図において、111は光
ディスク制御装置、112は光ディスク制御装置111とイン
ターフェースSCSI(Small Computer System Interfac
e)を介して接続されたコンピュータ、113,114はインタ
ーフェースModifiedESDI(Enhanced Small Drive Inter
face)を介して接続された光ディスク装置であり、光デ
ィスク制御装置111は光ディスク制御LSIとして光ディス
クコントローラ115およびECCプロセッサ116と、マイク
ロプロセッサ117と、DRAMからなるデータバッファ118
と、SCSI制御LSI119と、ドライバレシーバ120と、によ
り構成され、2つのチップからなる光ディスクコントロ
ーラ115、ECCプロセッサ116は以下の処理を行う。
First, the configuration will be described. FIG. 1 is a diagram showing an example of the overall configuration of an optical disk control device. In the figure, reference numeral 111 denotes an optical disk control device; 112, an optical disk control device 111 and an interface SCSI (Small Computer System Interface);
e) Computers connected via 113), 114, 114 are interfaces ModifiedESDI (Enhanced Small Drive Inter
The optical disk device 111 is connected via an optical disk controller 115 and an ECC processor 116 as an optical disk control LSI, a microprocessor 117, and a data buffer 118 composed of DRAM.
, A SCSI control LSI 119, and a driver receiver 120, and the optical disk controller 115 composed of two chips and the ECC processor 116 perform the following processing.

・光ディスク装置113,114への命令送信とステータス受
領 ・光ディスクへの書込みデータのフォーマット形成 ・光ディスクからの読出しデータのフォーマット解読と
エラー訂正 ・光ディスク装置113,114とデータバッファ118との間の
データ転送 ・SCSI制御LSI119とデータバッファ118との間のデータ
転送 コンピュータ112と周辺装置をつなぐインターフェー
スとしてSCSIが用いられ、SCSIを通して光ディスク制御
装置111にコンピュータシステムが接続される。また、
光ディスク制御装置111はESDIを介して光ディスク装置1
13,114に接続され、光ディスク制御装置111が光ディス
クを制御する。
-Sending commands to optical disk devices 113 and 114 and receiving status-Formatting data to be written to optical disk-Decoding data read from optical disk and correcting errors-Data transfer between optical disk devices 113 and 114 and data buffer 118-SCSI control LSI 119 Is used as an interface between the computer 112 and peripheral devices, and a computer system is connected to the optical disk control device 111 through the SCSI. Also,
The optical disk control device 111 controls the optical disk device 1 via ESDI.
The optical disc control device 111 controls the optical disc.

第2図は光ディスク制御LSIのブロックダイヤグラム
であり、図中破線で囲んだ部分は光ディスク制御LSIを
示している。同図において、光ディスクコントローラ11
5はホストMPU(マイクロプロセッサ117)とMPUインター
フェースを介してコマンド等の送受信を行うMPUインタ
ーフェース回路121と、SCSI制御LSI119とDMAインターフ
ェースを介してDMA転送の制御を行うDMA制御回路122
と、データバッファ118およびECCプロセッサ116とデー
タバッファ/ECCPインターフェースを介してデータの送
受信制御を行うデータバッファ/ECCP制御回路123と、デ
ータのエンコード/デコード回路124と、ESDI制御回路1
25と、内部プロセッサ126と、FIFOメモリ127,128とによ
り構成され、これらは所定の内部バスにより接続されて
いる。
FIG. 2 is a block diagram of the optical disk control LSI, and a portion surrounded by a broken line in the figure shows the optical disk control LSI. In the figure, the optical disk controller 11
Reference numeral 5 denotes an MPU interface circuit 121 for transmitting and receiving commands and the like to and from a host MPU (microprocessor 117) via an MPU interface, and a SCSI control LSI 119 and a DMA control circuit 122 for controlling DMA transfer via a DMA interface.
A data buffer / ECCP control circuit 123 for controlling data transmission / reception via a data buffer / ECCP interface with the data buffer 118 and the ECC processor 116; a data encoding / decoding circuit 124;
25, an internal processor 126, and FIFO memories 127 and 128, which are connected by a predetermined internal bus.

MPUインターフェース回路121はホストMPU(マイクロ
プロセッサ117)との間でコマンド・処理結果の送受信
を行うとともに、コマンドの実行に必要なラメータを記
憶するメモリを内蔵し、ホストMPUからデータバッファ
をRead/Writeする場合は、データは本インターフェース
回路121を経由して転送される。DMA制御回路122はDMAバ
スマスタとして、DMA転送のハンドシェーク制御、バイ
トカウント制御を行うものである。データバッファ/ECC
P制御回路123はデータバッファ用DRAMのRead/Write、リ
フレッシュの制御およびECCプロセッサ116との間のデー
タ送受信制御を行うとともに、ホストMPU、DMA制御回路
122、フォーマットエンコード/デコード回路124および
内部プロセッサ126からのデータバッファ/ECCプロセッ
サアクセス要求のアービトレーションを行い、データバ
ッファバスの時分割を制御する。フォーマットエンコー
ド/デコード回路124は光ディスクへの書込み時には、
書込みデータのパラレル−シリアル変換、RLL(2.7)コ
ードへの変調を行い、Sync.Resyncなど同期パターンを
付加して、ESDIへ送出する。また、光ディスクからの読
出し時には、データパターンを解読して、同期パターン
とデータとの分離、データの復調、シリアル−パラレル
変換を行う。ESDI制御回路125はESDI制御信号の送出、
受領用レジスタとインターフェース異常検出回路などを
備え、光ディスク装置へのコード送信とステータスなど
の受領の制御は本制御回路125を経由して内部プロセッ
サ126が行う。内部プロセッサ126はホストMPUから与え
られたコマンドの解読、処理結果の報告を行うととも
に、複数セクタの連続処理および単一処理の制御をも行
う。また、ECCプロセッサ116へのコマンド発行、処理結
果の受領、解析とデータバッファ内のデータのエラー訂
正をも行う。
The MPU interface circuit 121 transmits and receives commands and processing results to and from the host MPU (microprocessor 117), has a built-in memory for storing parameters required for executing commands, and reads / writes a data buffer from the host MPU. In this case, the data is transferred via the interface circuit 121. The DMA control circuit 122 performs a handshake control and a byte count control of the DMA transfer as a DMA bus master. Data buffer / ECC
The P control circuit 123 controls the read / write and refresh of the data buffer DRAM and controls the data transmission / reception with the ECC processor 116.
122, arbitrates data buffer / ECC processor access requests from the format encode / decode circuit 124 and the internal processor 126, and controls time division of the data buffer bus. When writing to the optical disc, the format encode / decode circuit 124
It performs parallel-serial conversion of write data and modulates it into RLL (2.7) code, adds a synchronization pattern such as Sync.Resync, and sends it out to ESDI. When reading from the optical disk, the data pattern is decoded to separate the synchronization pattern from the data, to demodulate the data, and to perform serial-parallel conversion. The ESDI control circuit 125 sends an ESDI control signal,
The internal processor 126 includes a reception register and an interface abnormality detection circuit, and controls transmission of codes to the optical disk device and reception of status and the like via the control circuit 125. The internal processor 126 decodes a command given from the host MPU, reports a processing result, and controls continuous processing of a plurality of sectors and single processing. It also issues commands to the ECC processor 116, receives and analyzes processing results, and performs error correction of data in the data buffer.

一方、ECCプロセッサ116は光ディスクコントローラ11
5と光ディスクコントローラインターフェースを介して
コマンド等の送受信を行うデータ転送制御回路131と、E
CCおよびシンドロームを生成するECC/シンドローム生成
回路132と、ECC/シンドローム生成回路132で生成したEC
C/シンドロームを一時的に格納するECC/シンドロームバ
ッファ133と、誤りの位置・数値を検出する誤り位置・
数値検出回路134と、内部プロセッサ135と、FIFOメモリ
136と、により構成され、これらは所定の内部バスによ
り接続されている。データ転送制御回路131は光ディス
クコントローラの間のコマンド・処理結果の送受信を行
うとともにECC/シンドローム生成回路132と外部のデー
タバッファとの間のデータ転送制御を行う。ECC/シンド
ローム生成回路132は光ディスクの書き込み時にはCRC
(Cyclic Redundancy Check)、ECC生成を行い、光ディ
スクからの読み出し時にはエラーシンドローム生成、CR
Cチェックデータ生成を行う。ECC/シンドロームバッフ
ァ133はECC/シンドローム生成回路132で生成したECC/シ
ンドロームを一時的に格納するバッファメモリであり、
2セクタ分のECCまたはシンドロームを格納することが
できる。誤り位置・数値検出回路134は光ディスクから
の読出し時にシンドロームを基にして誤り位置と誤り数
値を検出するもので、ユークリッド互除法に基づいて誤
り位置の多項式と数値の多項式の係数を求める多項式係
数算出回路134aと、誤り位置・数値検出回路134bとから
なる。内部プロセッサ135は光ディスクコントローラ115
から与えられたコマンドの解読、処理結果の報告を行う
とともに、ECCプロセッサ116内部での処理データの移動
を行う。
On the other hand, the ECC processor 116
5, a data transfer control circuit 131 for transmitting and receiving commands and the like via the optical disk controller interface,
ECC / syndrome generation circuit 132 for generating CC and syndrome, and EC generated by ECC / syndrome generation circuit 132
An ECC / syndrome buffer 133 for temporarily storing C / syndromes, and an error location /
Numerical value detection circuit 134, internal processor 135, FIFO memory
136, and these are connected by a predetermined internal bus. The data transfer control circuit 131 performs transmission and reception of commands and processing results between the optical disk controllers, and controls data transfer between the ECC / syndrome generation circuit 132 and an external data buffer. The ECC / syndrome generation circuit 132 uses a CRC
(Cyclic Redundancy Check), ECC generation, error syndrome generation when reading from optical disc, CR
Generate C check data. The ECC / syndrome buffer 133 is a buffer memory that temporarily stores the ECC / syndrome generated by the ECC / syndrome generation circuit 132,
ECC or syndrome for two sectors can be stored. The error position / numerical value detection circuit 134 detects an error position and an error value on the basis of the syndrome at the time of reading from the optical disk, and calculates a polynomial coefficient for calculating a polynomial of an error position and a coefficient of a numerical polynomial based on the Euclidean algorithm. It comprises a circuit 134a and an error position / numerical value detection circuit 134b. The internal processor 135 is an optical disk controller 115
In addition to decoding the command given from, and reporting the processing result, the processing data is moved inside the ECC processor.

このような構成において、光ディスクに書くべきデー
タがコンピュータ112からSCSI制御LSI119を経由して光
ディスクコントローラ115に送られてくると、このデー
タを一旦データバッファ118に蓄えて必要なデータ分を
取り出して光ディスクコントローラ115で加工しながら
光ディスク装置113,114に書く。読み出すときには光デ
ィスク装置113,114から読んだデータを一旦データバッ
ファ118に蓄えてある程度データがたまったところで一
括してSCSI制御LSI119に送る。光ディスクは非常に誤り
率が高いので、ECCプロセッサ116は書き込むときに後々
誤り訂正ができるようにエラー・チェック・コードECC
を追加して、読みだすときはそのECCを基にして誤りの
位置およびどのように誤っているかを検出してデータバ
ッファ118上でその誤り部分を訂正する。第2図に示す
ように光ディスクコントローラ115およびECCプロセッサ
116共その内部にプロセッサ126、135を持っており、内
部は全てプログラム制御により動作する。また、光ディ
スクコントローラ115およびECCプロセッサ116をはじめ
として光ディスク制御装置111全体はマイクロプロセッ
サ117によりプログラム制御される。そのため、マイク
ロプロセッサ117との間で命令あるいは処理結果を通知
するものとしてMPUインターフェース回路121が設けられ
ており、内部プロセッサ126はMPUインターフェース121
から命令をもらうと該命令を解読して、例えばデータバ
ッファ/ECCP制御回路123を動作させたりあるいはECCプ
ロセッサ116を起動したりする。また、ECCプロセッサ11
6は光ディスクコントローラ115の指令により動作すると
ともに、ECCプロセッサ116はデータバッファ/ECCP制御
回路123とデータバッファ118とをつないだバス上で転送
されるデータを傍受してそのデータに基づいてECCを生
成したり、読み出すのときにはその誤り位置・数値を求
めるためのシンドロームを生成する。
In such a configuration, when data to be written to the optical disk is sent from the computer 112 to the optical disk controller 115 via the SCSI control LSI 119, the data is temporarily stored in the data buffer 118, and the necessary data is taken out and the optical disk The data is written in the optical disk devices 113 and 114 while being processed by the controller 115. At the time of reading, the data read from the optical disk devices 113 and 114 is temporarily stored in the data buffer 118, and is sent to the SCSI control LSI 119 at once when the data is accumulated to some extent. Since the optical disk has a very high error rate, the ECC processor 116 uses an error check code ECC so that errors can be corrected later when writing.
When reading, the position of the error and how it is erroneous are detected based on the ECC, and the error portion is corrected on the data buffer 118. As shown in FIG. 2, the optical disk controller 115 and the ECC processor
Both 116 have processors 126 and 135 inside, all of which operate under program control. The entire optical disk control device 111 including the optical disk controller 115 and the ECC processor 116 is program-controlled by the microprocessor 117. Therefore, an MPU interface circuit 121 is provided for notifying an instruction or a processing result with the microprocessor 117, and the internal processor 126 is connected to the MPU interface 121.
When the instruction is received from the CPU, the instruction is decoded and, for example, the data buffer / ECCP control circuit 123 is operated or the ECC processor 116 is activated. Also, ECC processor 11
6 operates according to a command from the optical disk controller 115, and the ECC processor 116 intercepts data transferred on the bus connecting the data buffer / ECCP control circuit 123 and the data buffer 118 and generates an ECC based on the data. When reading or reading, a syndrome for calculating the error position and numerical value is generated.

次に、本発明のポイントである誤りの位置・数値検出
回路について説明する。本発明は以下のような基本的考
え方に基づいている。既に、チェンサーチにより誤りの
位置・数値を求めながら回路が動作しているのだからそ
れと一緒に訂正結果検証用シンドロームの生成回路を動
かすようにすればよい。例えば、誤り位置・数値検出回
路が第4図(b)のデジタルの誤り位置・数値の検出処
理を行なっている途中で、位置19で誤りを検出したとす
ると、誤り位置jl=19である。また、このとき誤り数値
ejl=e19も同時に判明している。ここで検出した誤り
を、第13図のE0(x)にあてはめると、位置19に誤り数
値e19=αがあることになる。
Next, a description will be given of an error position / numerical value detection circuit which is a point of the present invention. The present invention is based on the following basic concept. Since the circuit is already operating while finding the position and numerical value of the error by the Chien search, the circuit for generating the correction result verification syndrome may be operated together therewith. For example, if an error is detected at the position 19 while the error position / numerical value detection circuit is performing the digital error position / numerical value detection processing of FIG. 4B, the error position jl = 19. At this time, the error value
e jl = e 19 is also known at the same time. Errors detected here, when fitted to E0 (x) of FIG. 13, so that the position 19 there is a error value e 19 = alpha E.

シンドロームE0(α)を計算するためには、前記シ
ンドロームジェネレータにαを入力するとともにクロ
ックを与え、位置18〜16に誤りがないとすれば、続いて
0を入力しながらクロックを7回あたえればよい。
In order to calculate the syndrome E0 (α i ), α E is input to the syndrome generator and a clock is given. If there is no error in the positions 18 to 16, the clock is input seven times while inputting 0 continuously. Just give it.

また、誤り位置・数値検出回路は位置0まで、すなわ
ちjl=0になるまでチェンサーチを続けるため、クロッ
クをあと19回与えなければないない。シンドロームジェ
ネレータと誤り位置・数値検出回路に、同時にクロック
を与えるとすると、jl=11になったとき、E0(α)の
計算が終了する。
Further, the error position / numerical value detection circuit continues the Chien search until the position 0, that is, jl = 0, so that the clock must be supplied 19 more times. Assuming that a clock is simultaneously supplied to the syndrome generator and the error position / numerical value detection circuit, the calculation of E0 (α i ) is completed when jl = 11.

このことから、誤り位置・数値検出回路の誤り数値出
力を、訂正結果検証用シンドロームの生成回路に入力し
ながら両方の回路に同時にクロックを与えjl=11になっ
たら、訂正結果検証用シンドロームの生成回路にクロッ
クを与えるのをやめるようにすれば誤り位置・数値の検
出が終了したときには、訂正結果検証用シンドロームの
計算も終了していることになる。但し、第4図(b)位
置15〜0はECC部分であり、ECCは第5図(b)に示すよ
うに、CRC計算には含まれない。また、第13図のE0
(x)〜E9(x)では位置C3〜C0が必ず0であるので、
jl<16のときは訂正結果検証用シンドロームの生成回路
に、誤り数値ejlではなく0を入力する。さらにE6
(x)〜E9(x)では位置16も必ず0であるので、イン
タリーブ6〜9の処理ではjl<17のとき、同様に0を入
力する。
From this, when the error value output of the error position / numerical value detection circuit is input to the correction result verification syndrome generation circuit while a clock is simultaneously applied to both circuits and jl = 11, the correction result verification syndrome generation is performed. If the application of the clock to the circuit is stopped, when the detection of the error position and the numerical value is completed, the calculation of the correction result verification syndrome is also completed. However, positions 15 to 0 in FIG. 4 (b) are the ECC part, and the ECC is not included in the CRC calculation as shown in FIG. 5 (b). Also, E0 in FIG.
Since the positions C3 to C0 are always 0 in (x) to E9 (x),
When jl <16, 0 is input to the correction result verification syndrome generation circuit instead of the error value e jl . E6
Since the position 16 is always 0 in (x) to E9 (x), 0 is similarly input when jl <17 in the processing of interleaving 6 to 9.

このようにして、例えばE0(α)の計算が終了した
ら、内部プロセッサが結果を読み出し、記憶する。次に
E1(α)の計算が終了したら、同様に読み出し、記憶
しているE0(α)と加算(EOR)し,その加算した結
果を憶えておく。E2(α)〜E9(α)の計算が終了
したときも、同様に加算し、記憶する。
Thus, for example, when the calculation of E0 (α i ) is completed, the internal processor reads and stores the result. next
When the calculation of E1 (α i ) is completed, the E0 (α i ) is read out and added (EOR) to the stored E0 (α i ), and the result of the addition is stored. Even when the calculation of E2 (α i ) to E9 (α i ) is completed, the same is added and stored.

次に、EC(α)を計算する。インタリーブ6〜9の
誤り位置・数値検出処理で、位置16に誤りがあったと
き、内部プロセッサでこのときの誤り数値を記憶してお
く。そして、インタリーブ9の処理が終了した後で、訂
正結果検証用シンドロームの生成回路に、記憶している
位置16の誤り数値をインタリーブ6のものから順次入力
するともにクロックを与える。この操作は内部プロセッ
サが行う。EC(x)の位置119〜16は0なので計算する
必要はなく、EC(α)の計算は、クロックを4回与え
るだけで終了する。EC(α)の計算が終了したら、前
記のE0(α)〜E9(α)を加算した結果にEC
(α)を加算すれば、その結果がE(α)である。
そして、E(α)とエラー訂正前のデータから計算し
て記憶しているシンドロームA(α)とを比較し、一
致していればエラー訂正結果が正しいと判定する。すな
わち、 E(α)=E0(α)+E1(α)+…… +E9(α)+EC(α) 訂正結果が正しければ、 E(α)=A(α)である。
Next, EC (α i ) is calculated. When an error is detected at the position 16 in the error position / numerical value detection processing of the interleaving 6 to 9, the internal error value is stored in the internal processor. Then, after the processing of the interleave 9 is completed, the stored error value at the position 16 is sequentially input from the interleave 6 and a clock is applied to the correction result verification syndrome generation circuit. This operation is performed by the internal processor. Since the positions 119 to 16 of EC (x) are 0, there is no need to calculate them, and the calculation of EC (α i ) is completed only by giving four clocks. When the calculation of EC (α i ) is completed, EC (α i ) to E9 (α i ) are added to the result obtained by adding E0 (α i ) to E9 (α i ).
If (α i ) is added, the result is E (α i ).
Then, E (α i ) is compared with the syndrome A (α i ) calculated and stored from the data before error correction, and if they match, it is determined that the error correction result is correct. That is, if correct E (α i) = E0 ( α i) + E1 (α i) + ...... + E9 (α i) + EC (α i) correction result is the E (α i) = A ( α i) .

また、 A(α)−E(α)=0 とおけることから、 A(α)−E0(α)−E1(α)−…… −E9(α)−EC(α)=0 したがって、E0(α)〜EC(α)の計算が終了する
毎に、A(α)から順次減算(EOR)してゆき、EC
(α)まで減算した結果が0であることを判定するよ
うにもできる。
In addition, since A (α i ) −E (α i ) = 0, A (α i ) −E0 (α i ) −E1 (α i ) −... −E9 (α i ) −EC (α i ) = 0 Therefore, every time the calculation of E0 (α i ) to EC (α i ) is completed, subtraction (EOR) is sequentially performed from A (α i ) to obtain EC
It is also possible to determine that the result of subtraction to (α i ) is 0.

このようにすべてのインタリーブの誤り位置・数値の
検出が終了してから、ごくわずかの処理を行うだけで訂
正結果の検証が終了する。また、内部プロセッサで、ガ
ロア体の乗除算およびべき乗算を扱う必要がなく、内部
プロセッサ(ソフトウェア)には殆ど負担がかからな
い。
After the detection of the error positions and numerical values of all the interleaves is completed, the verification of the correction result is completed by performing a very small amount of processing. In addition, there is no need to handle multiplication / division and exponentiation in Galois fields in the internal processor, so that the internal processor (software) is hardly burdened.

なお、チェンサーチを行わないインタリーブ、すなわ
ちデータとECCから作成したエラー訂正用シンドローム
が0で誤りがないと判断したインタリーブでは、誤り数
値がすべて0なので、そのインタリーブの訂正結果検証
用シンドロームも0として扱う。0の加算は意味がない
ので、そのインタリーブはシンドロームの加算処理も行
わない。
In the interleave that does not perform the chain search, that is, in the interleave in which the error correction syndrome created from the data and the ECC is 0 and there is no error, the error value is all 0, so the correction result verification syndrome of the interleave is also set to 0. deal with. Since the addition of 0 is meaningless, the interleaving does not perform the syndrome addition processing.

また、インタリーブ6〜9の位置16に誤りがなかった
ときも同様にEC(α)の計算は行わない。
Similarly, when there is no error in the position 16 of the interleaves 6 to 9, the calculation of EC (α i ) is not performed.

以下、上記基本的な考え方に従って誤りの位置・数値
検出回路の具体的な構成を述べる。第3図はチェンサー
チを用いた誤りの位置・数値検出回路を示す図であり、
第14図に示す従来例と同一構成部分には同一番号、符号
を付して再度の説明は省略する。第3図において、151
は誤り位置・数値検出回路(誤り訂正処理装置)であ
り、誤り位置・数値検出回路151は誤り位置検出回路5
2、誤り位置多項式ω(x)の回路31、σ′(x)の回
路(形式微分の回路)53、誤り数値算出回路58、誤り検
出結果記憶回路70および訂正結果検証用シンドローム生
成回路152により構成されている。訂正結果検証用シン
ドローム生成回路152は で表される乗算回路153〜156と、8ビットのフリップフ
ロップFF157〜160と、EOR(ガロア体加算)回路161〜16
4と、セレクタ165と、AND回路166と、により構成され、
誤り数値算出回路58から出力された誤り数値ejlはAND回
路166およびセレクタ165を介してEOR回路161〜164に入
力されている。
Hereinafter, a specific configuration of the error position / numerical value detection circuit will be described in accordance with the above basic concept. FIG. 3 is a diagram showing an error position / numeric value detection circuit using Chien search;
The same components as those of the conventional example shown in FIG. 14 are denoted by the same reference numerals and symbols, and the description will not be repeated. In FIG. 3, 151
Is an error position / numerical value detection circuit (error correction processing device).
2. A circuit 31 of the error locator polynomial ω (x), a circuit of σ ′ (x) (formal differentiation circuit) 53, an error value calculation circuit 58, an error detection result storage circuit 70, and a correction result verification syndrome generation circuit 152 It is configured. Correction result verification syndrome generation circuit 152 Multiplication circuits 153 to 156, 8-bit flip-flops FF157 to 160, and EOR (Galois field addition) circuits 161 to 16
4, a selector 165, and an AND circuit 166,
Error values e jl output from the error value calculation circuit 58 is input to the EOR circuit 161 to 164 through the AND circuit 166 and the selector 165.

1セクタの処理を行うとき、まずセレクタ165、AND回
路166の出力を選択した後回路全体にクロックを与え、
最初のインタリーブのチェンサーチを行う。前述のよう
に誤り位置でないときはシンドロームジェネレータの入
力を0としなければならないが、誤り数値算出回路58の
出力ejlはこのとき意味のない値が出力されている。そ
のため、Zero検出回路57の出力が“1"でなかった(すな
わち、0を見つけなかった、あるいは誤りの位置を見つ
けなかった)というサイクルではAND回路166の出力が0
になるようにしている。なお、図示していないが、AND
回路166の出力は、インタリーブ0〜5の処理においてj
l<16のときおよびインタリーブ6〜9の処理においてj
l<17のときも0になるようにしている。したがって、
誤り位置を見つけたときだけ誤り数値ejlがセレクタ165
に入力される。このように、訂正結果検証用シンドロー
ム生成回路152に誤り数値を入力しながら、チェンサー
チを行う。そして、jl=11になったところで訂正結果検
証用シンドローム生成回路152にクロックを与えるのを
やめ、jl=0になるまでチェンサーチのみを行う。jlは
Locationカウンタ55の出力からわかる。Locationカウン
タ55は回路にクロック与えた回数tをカウントし、出力
している。前述のようにt=255−jlであるから、例え
ばjl=11のとき、Locationカウンタ55の出力値は、 t=255−jl=255−11=244 したがって、Locationカウンタ55の出力値が244にな
ったところで、訂正結果検証用シンドローム生成回路15
2にクロックを与えるのをやめるようにしている。フリ
ップフロップ157〜160は、1インタリーブを処理する前
にリセットして値を0にしている。1インタリーブのチ
ェンサーチが終了した、すなわちLocationカウンタの出
力値が255(jl=0)になったら、内部プロセッサがエ
ラー数カウンタ54、レジスタファイル56およびフリップ
フロップ157〜160の内容を読み出す。
When performing processing of one sector, first, the output of the selector 165 and the AND circuit 166 are selected, and then a clock is applied to the entire circuit.
Perform the first interleaved chain search. As described above, when the error position is not at the error position, the input of the syndrome generator must be set to 0, but the output e jl of the error value calculation circuit 58 outputs a meaningless value at this time. Therefore, in a cycle in which the output of the Zero detection circuit 57 is not “1” (that is, no 0 is found or an error position is not found), the output of the AND circuit 166 becomes 0.
I am trying to be. Although not shown, AND
The output of circuit 166 is j in the processing of interleaves 0-5.
When l <16 and in the processing of interleaves 6 to 9, j
It is also set to 0 when l <17. Therefore,
Only when an error position is found, the error value e jl is
Is input to In this way, a Chien search is performed while inputting an error value to the correction result verification syndrome generation circuit 152. Then, when jl = 11, the supply of the clock to the correction result verification syndrome generation circuit 152 is stopped, and only the chien search is performed until jl = 0. jl
It can be seen from the output of the location counter 55. The location counter 55 counts and outputs the number t of clocks applied to the circuit. As described above, since t = 255−jl, for example, when jl = 11, the output value of the location counter 55 is t = 255−jl = 255−11 = 244. Therefore, the output value of the location counter 55 is 244. At this point, the correction result verification syndrome generation circuit 15
I try to stop giving the clock to 2. The flip-flops 157 to 160 are reset to 0 before processing one interleave. When the chain search of one interleave is completed, that is, when the output value of the location counter becomes 255 (jl = 0), the internal processor reads the contents of the error number counter 54, the register file 56, and the flip-flops 157 to 160.

インタリーブ9まで終了したら、内部プロセッサは、
インタリーブ6〜9の位置16にエラーがあったかどうか
を判定し、エラーがあった場合は、セレクタ165でEC
(x)入力を選択し、フリップフロップ157〜160をリセ
ットした後、EC(x)入力からインタリーブ6〜9の位
置16の誤り数値を順次入力するとともに、訂正結果検証
用シンドローム生成回路152にクロックを与える。4つ
の誤り数値をすべて入力したら、フリップフロップ157
〜160の内容を読み出す。これにより、すべてのシンド
ローム計算が終了する。
After completing interleave 9, the internal processor
It is determined whether or not there is an error at the position 16 of the interleave 6 to 9.
(X) After selecting the input and resetting the flip-flops 157 to 160, the error values at the positions 16 of the interleaves 6 to 9 are sequentially input from the EC (x) input, and the clock is sent to the correction result verification syndrome generation circuit 152. give. After entering all four error values, flip-flop 157
Read the contents of ~ 160. Thus, all syndrome calculations are completed.

シンドローム計算を行うのに従来例のようにソフトウ
ェアで行おうとすると変換ROMが必要になったり、複雑
な計算が必要になったりしてしまうのに対して、本実施
例ではチェンサーチを行うためにハードウェアを動かす
のと一緒に訂正結果検証用シンドローム生成回路152を
動かしてやれば誤り位置・数値の検出終了と殆ど同時に
CRCチェック(訂正結果の検証)が終わってしまうこと
になる。
In contrast to the conventional example, if software was used to perform the syndrome calculation, a conversion ROM would be required or complicated calculations would be required. If the syndrome generation circuit 152 for verifying the correction result is operated together with the operation of the hardware, the detection of the error position and the numerical value is almost completed at the same time.
The CRC check (verification of the correction result) ends.

このように、本実施例では従来の誤り位置・数値検出
回路に、訂正結果検証用シンドローム生成回路152を付
加することにより誤り位置・数値の計算が終わるのと殆
ど同時にCRCチェックが終わることになり、処理時間が
大幅に短縮される。すなわち、いままでソフトウェアで
やっていて大きなハードで処理時間がかかっていたもの
が、せっかくチェンサーチで誤りの位置・数値を求める
のであるからそこでついでに動作させれば少ない回路で
非常に高速で、かつ、CRCチェックの見かけ上の処理時
間が殆どゼロに近い形で実現できる。
As described above, in this embodiment, the CRC check is completed almost at the same time when the calculation of the error position and the numerical value is completed by adding the correction result verification syndrome generating circuit 152 to the conventional error position and numerical value detecting circuit. , Processing time is greatly reduced. In other words, what used to be software and it took a long time to process with large hardware, but since the position and numerical value of the error were found by the Chien search, if it was operated there, it would be very fast with a small number of circuits, and Thus, the apparent processing time of the CRC check can be realized with almost zero.

なお、1セクタのデータのインタリーブ数は必ずしも
10である必要はなく、また、1インタリーブの長さも12
0バイト以外であっても良い。
Note that the number of interleaves for one sector of data is not necessarily
It does not need to be 10 and the length of one interleave is 12
It may be other than 0 bytes.

〔発明の効果〕〔The invention's effect〕

本発明によれば、ハードウェア量を大幅に増やすこと
なく、誤り位置・数値が求められるのと同時に訂正結果
の検証を行うことができ、処理時間を格段に短縮するこ
とができる。
According to the present invention, a correction result can be verified at the same time when an error position and a numerical value are obtained without significantly increasing the amount of hardware, and processing time can be significantly reduced.

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

第1〜3図は本発明に係る誤り訂正処理装置の一実施例
を示す図であり、 第1図はその光ディスク制御装置の全体構成図、 第2図はその光ディスク制御LSIのブロック構成図、 第3図はその誤り位置・数値検出回路を示す回路図、 第4〜14図は従来の誤り訂正処理装置を示す図であり、 第4図はそのリード・ソロモン符号の符号語の図、 第5図はそのデータ配列を説明するための図、 第6図はその誤り位置多項式と誤り数値多項式の基本回
路図、 第7図はその誤り位置多項式の回路を示す回路図、 第8図はその誤り数値多項式の回路を示す回路図、 第9図はその形式微分の回路を示す回路図、 第10図はそのCRCを含むデータ列を示す図、 第11図はそのシンドロームジェネレータの動作原理を説
明するための図、 第12図はその誤り数値と誤り位置を基にしたシンドロー
ム計算を説明するための図、 第13図はその誤り数値と誤り位置を基にしたシンドロー
ム計算の応用を説明するための図、 第14図はその誤り位置・数値検出回路を示す回路図であ
る。 1……誤り位置多項式σ(X)の回路、 11〜18、32〜39、62〜64、153〜156……乗算回路、 20〜28、40〜47、65〜68、157〜160……フリップフロッ
プ、 19、48、69……EOR回路、 31……誤り数値多項式ω(X)の回路、 51……誤り位置・数値検出回路、 52……誤り位置検出回路、 53……形式微分の回路、 54……エラー数タウンタ、 55……Locationカウンタ、 56……レジスタファイル、 57……Zero検出回路、 58……誤り数値算出回路、 59……ガロア体逆数ROM、 60……ガロア体乗算器、 61……レジスタ、 70……誤り検出結果記憶回路、 111……光ディスク制御装置、 112……コンピュータ、 113、114……光ディスク装置、 115……光ディスクコントローラ、 116……ELLプロセッサ、 117……マイクロプロセッサ、 118……データバッファ、 119……SCSI制御LSI、 120……ドライバレシーバ、 121……MPUインターフェース、 122……DAM制御回路、 123……データバッファECCP制御回路、 124……フォーマットエンコード/デコード回路、 125……ESDI制御回路、 126……内部プロセッサ、 127、128、136……FIFOメモリ、 131……データ転送制御回路、 132……ECC/シンドローム生成回路、 133……ECC/シンドロームバッファ、 134……誤り位置・数値検出回路、 134a……多項式係数算出回路、 134b……誤り位置・数値検出回路、 135……内部プロセッサ、 151……誤り位置・数値検出回路(誤り訂正処理装
置)、 152……訂正結果検証用シンドローム生成回路、 161〜164……EOR(ガロア体加算)回路、 165……セレクタ、 166……AND回路。
1 to 3 are diagrams showing an embodiment of an error correction processing device according to the present invention, FIG. 1 is an overall configuration diagram of the optical disk control device, FIG. 2 is a block configuration diagram of the optical disk control LSI, FIG. 3 is a circuit diagram showing the error position / numerical value detection circuit, FIGS. 4 to 14 are diagrams showing a conventional error correction processing device, FIG. 4 is a diagram of a code word of the Reed-Solomon code, FIG. FIG. 5 is a diagram for explaining the data arrangement, FIG. 6 is a basic circuit diagram of the error locator polynomial and the error numerical polynomial, FIG. 7 is a circuit diagram showing a circuit of the error locator polynomial, and FIG. A circuit diagram showing a circuit of an error numerical polynomial, FIG. 9 is a circuit diagram showing a circuit of the formal differentiation, FIG. 10 is a diagram showing a data sequence including the CRC, and FIG. 11 explains an operation principle of the syndrome generator. Figure 12 shows the error values and errors Fig. 13 is a diagram for explaining the syndrome calculation based on the error position, Fig. 13 is a diagram for explaining the application of the syndrome calculation based on the error value and the error position, and Fig. 14 is the error position / value detection circuit. FIG. 1 ... Error locator polynomial σ (X) circuit, 11-18, 32-39, 62-64, 153-156… Multiplication circuit, 20-28, 40-47, 65-68, 157-160… Flip-flop, 19, 48, 69… EOR circuit, 31… Circuit of error numerical polynomial ω (X) , 51… Error position / numerical value detection circuit, 52… Error position detection circuit, 53… Formal differentiation Circuit, 54: Error number taunter, 55: Location counter, 56: Register file, 57: Zero detection circuit, 58: Error value calculation circuit, 59: Galois field reciprocal ROM, 60: Galois field multiplication 61, register, 70, error detection result storage circuit, 111 optical disk control device, 112 computer, 113, 114 optical disk device, 115 optical disk controller, 116 ELL processor, 117 … Microprocessor, 118… Data buffer, 119… SCSI control LSI, 120… Driver receiver, 121: MPU interface, 122: DAM control circuit, 123: Data buffer ECCP control circuit, 124: Format encode / decode circuit, 125: ESDI control circuit, 126: Internal processor, 127, 128, 136 ... … FIFO memory, 131… Data transfer control circuit, 132 …… ECC / syndrome generation circuit, 133 …… ECC / syndrome buffer, 134 …… Error position / numerical value detection circuit, 134a …… Polynomial coefficient calculation circuit, 134b …… Error position / numerical value detection circuit, 135: Internal processor, 151: Error position / numerical value detection circuit (error correction processor), 152: Correction result verification syndrome generation circuit, 161 to 164: EOR (Galois field addition) ) Circuit, 165: Selector, 166: AND circuit.

フロントページの続き (72)発明者 石黒 雅之 愛知県春日井市高蔵寺町2丁目1844番2 富士通ヴィエルエスアイ株式会社内 (56)参考文献 特開 昭63−257966(JP,A) 特開 昭62−117424(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 - 13/53 Continuation of front page (72) Inventor Masayuki Ishiguro 2-1844-2 Kozoji-cho, Kasugai-shi, Aichi Fujitsu VSI Co., Ltd. (56) References JP-A-63-257966 (JP, A) JP-A-62-117424 (JP, A) (58) Field surveyed (Int. Cl. 7 , DB name) H03M 13/00-13/53

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】データ列を同一データ長からなる複数のイ
ンタリーブに分割し、該複数のインタリーブ毎の誤り訂
正を行うための誤り訂正符号と、 訂正結果を検証するためのCRCとを備えたデータの誤り
訂正処理装置であって、 クロック毎に動作して誤り訂正符号により誤り位置およ
び誤り数値を検出し、出力するエラー検出回路と、 クロック毎に動作してクロック毎に前記エラー検出回路
からの誤り数値を入力され、CRC計算に用いる訂正結果
シンドロームを順次生成する訂正結果検証用シンドロー
ム生成回路と、 を設け、 前記エラー検出回路と前記訂正結果検証用シンドローム
生成回路に同時にクロックを与えることにより、誤り位
置および誤り数値の検出処理と訂正結果検証用シンドロ
ームの生成処理を同時に行うことを特徴とする誤り訂正
処理装置。
1. A data sequence comprising: dividing a data string into a plurality of interleaves having the same data length; providing an error correction code for performing error correction for each of the plurality of interleaves; and a CRC for verifying a correction result. An error correction processing device comprising: an error detection circuit that operates for each clock to detect an error position and an error value by an error correction code and outputs the error position; and an error detection circuit that operates for each clock and outputs from the error detection circuit for each clock. An error value is input, and a correction result syndrome generation circuit for sequentially generating a correction result syndrome used for CRC calculation is provided.By simultaneously providing a clock to the error detection circuit and the correction result verification syndrome generation circuit, An error characterized by simultaneous detection of an error position and error value and generation of a correction result verification syndrome Positive processing apparatus.
JP01034790A 1989-02-14 1989-02-14 Error correction processor Expired - Fee Related JP3139499B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01034790A JP3139499B2 (en) 1989-02-14 1989-02-14 Error correction processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01034790A JP3139499B2 (en) 1989-02-14 1989-02-14 Error correction processor

Publications (2)

Publication Number Publication Date
JPH02214073A JPH02214073A (en) 1990-08-27
JP3139499B2 true JP3139499B2 (en) 2001-02-26

Family

ID=12424071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01034790A Expired - Fee Related JP3139499B2 (en) 1989-02-14 1989-02-14 Error correction processor

Country Status (1)

Country Link
JP (1) JP3139499B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992013344A1 (en) * 1991-01-22 1992-08-06 Fujitsu Limited Error correction processing device and error correction method
KR100594241B1 (en) * 2004-01-29 2006-06-30 삼성전자주식회사 RS decoder circuit having forward Chien search type
CN104539356B (en) * 2014-11-28 2017-08-11 武汉电信器件有限公司 A kind of 10G multifunctional test systems

Also Published As

Publication number Publication date
JPH02214073A (en) 1990-08-27

Similar Documents

Publication Publication Date Title
US5563896A (en) Error correction processor and an error correcting method
US5680340A (en) Low order first bit serial finite field multiplier
US8086941B2 (en) Computing an error detection code syndrome based on a correction pattern
US5805799A (en) Data integrity and cross-check code with logical block address
US5602857A (en) Error correction method and apparatus
KR920000828B1 (en) Galois field arithmetimetic logic unit
JPH0444447B2 (en)
KR20010033954A (en) A physical block address recovery apparatus, system and method for cyclic error correction codes
JPH02211723A (en) Device and method for sending signal of unconnectable error geberation in sector
JPH11507754A (en) Dedicated ALU architecture for 10-bit read-Solomon error correction module
JPH0267825A (en) Error correcting circuit
JPH0464211B2 (en)
EP0836285B1 (en) Reed-Solomon decoder with general-purpose processing unit and dedicated circuits
US5978954A (en) On-the-fly error detection and correction buffer processor
Sobolewski Cyclic redundancy check
JP3139499B2 (en) Error correction processor
JP2004206798A (en) Encoding data encoding circuit of optical disk device
US5974582A (en) High-speed chien search logic
US20080140740A1 (en) Systems and methods for processing data sets in parallel
US5943348A (en) Method to check for burst limiting in error correcting systems
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
US7475329B2 (en) Techniques for performing Galois field logarithms for detecting error locations that require less storage space
JP3170920B2 (en) Error correction method and correction circuit
JP2004080762A (en) Method and equipment performing cross interleave reed-solomon code correction
JP2553565B2 (en) Galois field arithmetic unit

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees