KR910009094B1 - Galois field arithmetic unit - Google Patents
Galois field arithmetic unit Download PDFInfo
- Publication number
- KR910009094B1 KR910009094B1 KR1019890700370A KR897000310A KR910009094B1 KR 910009094 B1 KR910009094 B1 KR 910009094B1 KR 1019890700370 A KR1019890700370 A KR 1019890700370A KR 897000310 A KR897000310 A KR 897000310A KR 910009094 B1 KR910009094 B1 KR 910009094B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- syndrome
- polynomial
- calculation
- calculating
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
내용 없음.No content.
Description
[발명의 명칭][Name of invention]
갈로이계 연산장치Galois Computing Equipment
[도면의 간단한 설명][Brief Description of Drawings]
제1a도는 본 발명에 따른 제1실시예를 도시한 블록도이고,Figure 1a is a block diagram showing a first embodiment according to the present invention,
제1b도는 제1a도의 제1실시예에 활용된 제1연산수단의 동작을 도시한 흐름도이며,FIG. 1B is a flowchart showing the operation of the first computing means utilized in the first embodiment of FIG. 1A,
제1c도는 제1a도의 제1실시예에 채택된 제2연산수단, 제3연산수단, 제4연산수단의 동작을 도시한 흐름도이고,FIG. 1C is a flowchart showing the operation of the second computing means, the third computing means and the fourth computing means adopted in the first embodiment of FIG. 1A,
제1d도와 제1e도는 제1a도의 제1실시예에 채택된 제5연산수단과 제6연산수단에 동작을 도시하는 흐름도들이며,1d and 1e are flow charts showing the operations of the fifth and sixth computing means adopted in the first embodiment of FIG. 1a,
제2a도는 본 발명에 따른 제2실시예를 도시한 블록도이고,Figure 2a is a block diagram showing a second embodiment according to the present invention,
제2b도는 제2a도의 제2실시예에 채택된 제1연산수단 및 제7연산수단의 동작을 도시한 흐름도이며,FIG. 2B is a flowchart showing the operation of the first computing means and the seventh computing means adopted in the second embodiment of FIG. 2A,
제2c도는 제2a도의 제2실시예에 채택된 제2연산수단, 제3연산수단 및 제4연산수단의 동작을 도시하는 흐름도이고,FIG. 2C is a flowchart showing the operation of the second computing means, the third computing means and the fourth computing means adopted in the second embodiment of FIG. 2A,
제2d도는 제2a도의 제2실시예에 채택된 제5연산수단과 제8연산수단의 동작을 도시한 흐름도이며,FIG. 2D is a flowchart showing the operation of the fifth and eighth calculation means adopted in the second embodiment of FIG. 2A,
제3도는 신드롬 발생회로를 도시한 회로도이다.3 is a circuit diagram showing a syndrome generating circuit.
[발명의 상세한 설명]Detailed description of the invention
[기술분야][Technical Field]
본 발명은 광디스크(optical disk)같은 매체를 통하여 데이타를 기록(recording)과 재생하는데 활용되는 것으로, 큰치의 최소거리 또는 헤밍거리(hamming distance)를 갖는 코우드시스템(code system)에 대해서도, 예컨데 외부 포인터(external pointer)를 사용하여 에러위치를 모르는 에러에 대한 통상적 교정과, 에러위치를 알고 있는 에러에 대한 소거 교정을 고속으로 효과적으로 완수할 수 있는 코우드에러 검출 및 교정장치에 관한 것이다.The present invention is used to record and reproduce data through a medium such as an optical disk, and even for a code system having a large minimum distance or a hamming distance, for example, The present invention relates to a common error detection and correction device that can efficiently perform an accurate correction for an error whose location is not known using an external pointer and an erasure correction for an error whose location is known.
[배경기술][Background]
최근, 광디스크를 활용한 데이타 기록 및 재생장치가 왕성하게 발전되고 있다. 자기디스크와 비교했을때, 광디스크 메모리는 더 많은 양의 데이타를 기억할 수 있으나, 이러한 기록 매체에는 높은 생에러율(raw error rate)이 수반된다는 문제점을 지니고 있다.In recent years, data recording and reproducing apparatuses utilizing optical discs have been actively developed. Compared with a magnetic disk, an optical disk memory can store a larger amount of data, but such a recording medium has a problem that a high raw error rate is involved.
따라서, 이러한 광디스크 메모리가 수반하는 문제점을 해소하려는 의도에서, 기록동작시에 데이타로서의 정보코우드에 체크코우드(check code)를 부가하여, 광디스크상에 에러검출 및 교정코우드로서 기록되는 코우드워드(code word)를 형성시킴으로써, 재생동작시에 부가된 체크코우드를 사용하여 정보코우드의 에러를 검출하고, 교정하도록한 방법이 일반적으로 알려져 있다.Therefore, in order to solve the problems associated with such an optical disc memory, a check code is added to the information code as data at the time of a recording operation, and the codeword recorded as an error detection and correction code on the optical disc. It is generally known to form a code word so that an error in the information code is detected and corrected using a check code added during the reproduction operation.
그러한 에러검출 및 교정코우드로서, 현재 해밍거리(또는 최소거리)가 약 17, 즉 d=17로 설정되는 리이드-솔로몬 코우드(Reed solomon code)가 주목을 받고 있다.As such error detection and correction code, Reed solomon code, which has a hamming distance (or minimum distance) set to about 17, that is, d = 17, is drawing attention.
상기 리이드-솔로몬 코우드를 사용하는 경우, 엔코우딩 동작으로서 데이타를 엔코우딩(encoding)함으로써 패리티연산(parity computation)을 실행한후, 데이타를 패리티와 함께 매체에 라이트(write)시키므로, 매체로부터 데이타를 돌출한후, 그 데이타에 대하여 디코우딩(decoding) 동작을 시행할때는 신드롬연산(syndrome computation)와, 에러갯수 산정과, 에러위치 다항식용 계수들의 연산과, 에러위치 연산과, 에러치 연산을 순차적 방식으로 실행한다.In the case of using the lead-solomon code, since parity computation is performed by encoding data as an encoding operation, data is written to the medium together with parity, and thus the data from the medium is used. After decompressing, perform decoding operation on the data, such as syndrome computation, error number calculation, error location polynomial coefficient calculation, error location operation, and error value operation. Run in a sequential manner.
이러한 경우에, 위치를 모르는 에러에 대한 통상적 교정의 경우, 교정가능한 에러의 갯수는 (d-1)/2이고, 위치를 알고 있는 에러에 대한 소거 교정의 경우에 교정가능한 에러의 갯수는 d-1이다. 또, 에러위치 중 L개는 알고 있는데, 위치를 모르는 에러도 존재하는 경우, 모르는 에러위치의 최대 갯수(t)가 t=(d-L-1)2+L인 에러들은 에러위치를 알고 있는 L개의 에러들과 함께 교정될 수 있다.In this case, for a typical correction for a position unknown error, the number of correctable errors is (d-1) / 2, and in the case of an erase correction for a position known error, the number of correctable errors is d- 1 In addition, if L error positions are known and an unknown position exists, errors where the maximum number (t) of unknown error positions (t) is t = (dL-1) 2 + L are known to L error positions. Can be corrected with errors.
한편, 지. 데이빗 폰 2세(G. David Forne Jr.)는 그의 저서(″On Deceding BHC Codes″, IEEE Trans. IT-11, 페이지 549 내지 페이지 557, 1965)에서 변형된 신드롬(Tk)를 얻기 위해 활용되는 i, L의 연산방법을 소개하였으나, 에러치를 얻기 위한 알고리듬이 상당히 복잡하였다. 상기 저서중 페이지 553의 A항에는 알고리듬의 한예가 기술되었는데, 여기서는 변형된 신드롬을 근거로하여, 모르고 있던 에러위치를 얻음으로써, 포인터를 활용하여 얻은 에러위치와 함께 에러위치 다항식의 계수들을 연산한 다음, 모르고 있던 에러위치에 대한 에러치를 얻음으로써, 포인터가 지정하는 에러위치에 대응한 에러치를 얻는다.Meanwhile, Ji. G. David Forne Jr. is used to obtain a modified syndrome (Tk) in his book `` On Deceding BHC Codes '', IEEE Trans.IT-11, pages 549 to 557, 1965. Introduced the calculation method of i and L, but the algorithm to get the error value is quite complicated. An example of an algorithm is described in section A of page 553, which calculates the coefficients of an error location polynomial along with an error location obtained by using a pointer by obtaining an unknown error location based on a modified syndrome. Next, by obtaining an error value for an unknown error position, an error value corresponding to the error position specified by the pointer is obtained.
일반적으로, 소거 알고리듬에는 재귀동작 또는 반복동작이 편이하게 적용되므로, 곱코우드(product cod)를 빈번히 사용하는 경우, 짧은 거리를 갖는 코우드들을 결합시켜서 에러검출은 결합된 코우드들중 하나를 사용하여 달성하고, 소거교정은 결합된 코우드들중 다른 하나를 사용하여 시행하며, 긴 거리를 갖는 코우드에 대해서도 에러위치를 얻은 후에 소거교정을 시행하는 것이 더 용이하다. 상기한 바와 같이, 에러위치를 알고 있는 에러와, 에러위치를 모르는 에러가 존재했을때, 에러치를 얻는 방법은 서적으로 제시된바 있다. 그러나, 코우드의 최소 거리 또는 해밍거리가 커지면 연산량이 크게 증가하므로, 실제로 리얼타임(realtime) 교정이 시행될 수 없다는 사실이 알려져 있다. 또, 연산속도를 증가시키는 하드웨어를 설치한다 하더라도, 회로량이 너무 많이 증가되므로, 실용성이 저하되는 문제점을 야기하게 된다.In general, since recursive or repetitive operations are easily applied to the erasing algorithm, when frequent product cods are used, error detection is performed by combining codes having short distances using one of the combined codes. Erase correction is performed using the other of the combined codes, and it is easier to perform the erase correction after obtaining the error position even for long distances. As described above, a method of obtaining an error value when an error in which an error location is known and an error in which an error location is unknown has been presented in a book. However, it is known that since the minimum distance or hamming distance of the code increases, the amount of calculation greatly increases, so that realtime correction cannot be performed in practice. In addition, even if hardware for increasing the operation speed is provided, the circuit amount is increased too much, which causes a problem that the practicality is lowered.
[발명에 대한 상세한 설명][Detailed Description of the Invention]
그러므로, 본 발명은 고속처리로 연산을 시행하고, 하드웨어량을 최소화함으로써 상기의 문제점을 해소한 갈로이계 연산장치를 제공하는 것을 목적으로 한다.Therefore, an object of the present invention is to provide a galoi-based computing device which solves the above problems by performing the calculation at high speed and minimizing the amount of hardware.
상기 목적을 달성하기 위하여, 본 발명에 따르면, 갈로이계(GF(2r))에 속한 요소(element)들로 구성되고, 해밍거리(d)를 갖는 선형코우드의 에러교정용으로써, S0내지 Sd-2로된 신드롬과 L개의 알고 있는 에러위치(X0내지 XL-1)를 활용하여 변형된 신드롬 Tk(T0…Dd-20L)을 얻은 다음, 상기한 지. 데이빗 폰 2세의 저서중의 절차를 활용하여 모르는 에러위치가 연산되는 지점까지 연산한다.In order to achieve the above object, according to the present invention, S 0 consists of elements belonging to the galoi system GF (2 r ), and for error correction of a linear code having a hamming distance d, S 0. To a modified syndrome T k (T 0 ... D d-20L ) by using the syndrome of S d-2 and L known error positions (X 0 to X L-1 ). Use the procedure in David von II's book to calculate the point of unknown error.
변형된 신드롬을 얻을때 연산된 σi,j로부터 pj=σi,j×Si를 활용하여 중간결과 pj를 얻고, 통상적 교정시와 같은 교정 신드롬을 활용하여 에러치를 연산함으로써 중간치(YL,L…YL+t-1,L)를 얻으며, 이러한 에러치의 중간치와, 포인터가 지정하는 에러위치(Xi)와, 중간결과(Pj)를 활용하여, Yi,j=Yi,j+1/(Xi+Xj)를 연산한다.From the calculated σ i, j , p j = The intermediate result p j is obtained by using σ i, j × S i, and the intermediate value (Y L, L … Y L + t-1, L ) is obtained by calculating an error value by using the same calibration syndrome as in the case of normal calibration. Using the intermediate value of these error values, the error position (X i ) specified by the pointer, and the intermediate result (P j ), Y i, j = Calculate Y i, j + 1 / (X i + X j ).
또, 후속하여, j-1일때의 Yj-1,j-1을 얻기 위한 식에, 상기 식중Yi,j+1/(Xi+Xj)=Yi,j로 가정함으로써, 얻은 우변의 연산결과와 좌변의 연산결과(Yj,j)를 대입함으로써, 최종적으로 에러치 Y0…YL-1…YL-1+j를 얻는다.Subsequently, obtained by assuming that Y i, j + 1 / (X i + X j ) = Y i, j in the equation for obtaining Y j-1, j-1 when j-1 . By substituting the operation result of the right side and the operation result (Y j, j ) of the left side, the error value Y 0 . Y L-1 ... Obtain Y L-1 + j .
본 발명에 따라서, 상기 절차를 활용하여 리이드-솔로몬 코우드를 엔코우딩 또는 디코우딩 동작시키는 경우 코우드웨드에 대한 신드롬은 연산한후, 일 에러에 대하여 가정한 일정 에러위치와 포인터가 지시하는 알고 있는 에러위치를 갈로이계의 순차적 곱셈, 나눗셈 및 덧셈을 포함하는 반복 연산처리하여, 체크코우드의 엔코우딩 또는 소거를 포함한 에러교정을 실행한다.According to the present invention, when encoding or decoding the Reed-Solomon code by using the above procedure, the syndrome for the codeword is calculated, and then a predetermined error position and pointer indicated by one point for one error are calculated. Iterative arithmetic operations including sequential multiplication, division, and addition of the Galois system are performed on the known error positions, and error corrections including encoding or erasing of check codes are performed.
이러한 절차의 연산횟수는 종래의 방법과 비교했을때 현저히 감소되므로, 이러한 절차는 리얼타임 연산처리를 필요로 하는 경우에 활용될 수 있고, 또한, 상기의 연산처리 실행을 가능케 해주는 회로의 양도 상당히 감출된다Since the number of operations of such a procedure is significantly reduced compared with the conventional method, such a procedure can be utilized when real-time arithmetic processing is required, and the amount of circuit which enables the arithmetic processing can be considerably hidden. do
[본 발명을 실시하기 위한 최상의 방식]Best Mode for Carrying Out the Invention
이제 도면을 참조하여, 본 발명에 따른 일실시예의 갈로이계 연산장치를 설명하기로 한다.Referring now to the drawings, a gallon based computing device according to an embodiment of the present invention will be described.
제1a도는 본 발명의 제1실시예에 대한 블록도이다. 제1b도는 제1a도의 제1실시예에 활용된 제1연산수단의 동작을 도시하는 흐름도이다. 또, 제1c도는 제1a도에 제1실시예에 채택된 제2연산수단, 제3연산수단, 제4연산수단의 동작을 도시하는 흐름도이다. 또한, 제1d도와 제1e도는 제1a도의 제1실시예에 채택된 제5연산수단의 동작을 도시하는 흐름도이다. 제1a도에 있어서, 부호(52)는 신드롬 발생회로를 표시하고, 부호(53)는 코우드워드 메모리회로를 표시한다.1A is a block diagram of a first embodiment of the present invention. FIG. 1B is a flowchart showing the operation of the first computing means utilized in the first embodiment of FIG. 1A. 1C is a flowchart showing the operation of the second computing means, the third computing means and the fourth computing means adopted in the first embodiment in FIG. 1A. 1D and 1E are flowcharts showing the operation of the fifth calculating means adopted in the first embodiment of FIG. 1A. In Fig. 1A,
부호(54)는 마이크로프로그램을 활용하여 고속으로 갈로이계의 연산을 실행하는 갈로이계 연산회로를 표시한다. 또, 광디스크 드라이브(optical disk drive)에 내재된 신호검출회로는 포인터가 지정하는 에러위치에 대한 드롭아웃(drop out)을 검출한다. 에러위치는, 디코우딩시의 코우드 기록형식에 따라 동작하는 에러위치 계수기의 값이 벡터대응치(vector representation)로 입력/출력버스로 통하여 코우드워드 메모리회로(54)로 라이트된다.
제3도는 신드롬 발생회로를 상세히 도시한 회로도이다.3 is a circuit diagram showing the syndrome generating circuit in detail.
제3도의 회로는 총 8비트의 출력신호를 방출하는 논리곱게이트회로(1)와, 입력전환스위치논리회로(2)와, 0-번째 8-비트 기록회로 내지 5-번째 8-비트 기록회로(3 내지 8)와, 15-번째 8-비트 기록회로(18)와, 0-번째 전환스위치논리회로 내지 5번째 전환스위치 논리회로(19 내지 24)와, 15번째 스위치논리회로(34)와, α0내지 α5갈로이계 곱셈회로(35 내지 40)을 포함한다. 또 부호(51)는 갈로이계 덧셈회로(익스클루시브 OR 논리합게이트회로)를 표시한다.The circuit of FIG. 3 includes a logical multiplication circuit (1), an input switching switch logic circuit (2), and a 0-th 8-bit recording circuit to a 5-th 8-bit recording circuit that emit a total 8-bit output signal. (3 to 8), the 15-th 8-
제3도에 있어서, 6번째 내지 14번째 회로부품들은 생략하였다. 다음, 신드롬 발생회로의 동작에 대하여 설명하기로 한다.In FIG. 3, the sixth to fourteenth circuit components are omitted. Next, the operation of the syndrome generating circuit will be described.
본 실시예에서, 연산은 GF(28) 범위내에서 실행된다. 제일 먼저, 디코우드회로로부터 보내진 수신워드는 디코우딩 동작을 위해서 코우드워드 메모리회로(53)로 보내져서 기억된다.In this embodiment, the operation is performed within the range of
다음, 수신워드는 코우드워드 메모리회로(53)로부터 신드롬 발생회로(52)로 보내진다. 이보다 먼저, 논리곱게이트회로(1)과 입력전환스위치논리회로(2)에 의한 초기치 설정작업이 실행되므로, 8-비트 기록회로(3 내지 18)의 내용은 0이 된다.The received word is then sent from the
다음, 코우드워드 메모리회로(53)에 누적된 디코우드회로로부터의 n개의 기호로 된 수신워드는 데이타단자를 경유하여 논리곱게이트회로(1)에 입력된다.Next, the received word of n symbols from the decode circuit accumulated in the
논리곱게이트회로(1)는 데이타단자로부터 데이타가 공급될때 동작하게 되어 있다. 논리곱게이트회로(1)의 출력신호들은 갈로이계 덧셈회로(51)(익스클루시브 OR 논리장치)로 보내지고, 동시에 입력전환스위치회로(2)가 전환되어, 논리곱게이트회로(1)로부터의 출력신호들이 갈오이계 곱셈회로(35 내지 50)로부터 궤환된 곱셈결과치에 가산됨으로써, n개의 기호에 대한 입력동작이 완료된다.The AND
다음, 신드롬(S0내지 S15)을 얻기 위해서 전환스위치논리회로(19 내지 34)를 통하여 8-비트 기록회로(3 내지 18)의 내용을 선택한다.Next, the contents of the 8-
본 실시예에서는, 해밍거리(d)가 d=17인 리이드-솔로몬 코우드를 채택했기 때문에, 신드롬의 갯수는 d-2, 즉, 15개의 기호이다. 신드롬(S0내지 S15)들은 갈로이계 연산회로(54)로 공급된다. 갈로이계 연산회로(54)는 제1연산수단 내지 제6연산수단을 포함한다. 제1연산수단에서는, 기지의 에러위치수(X0내지 XL-1)를 포인터로서의 코우드워드 메모리회로(53)으로부터 수신하여, σi,j를 연산한후 이 연산결과를 기억시킨다.σi,j의 값은 연산처리중 변형된 신드롬(Tk)과 에러치(Yj,o)를 얻는데 활용된다.In the present embodiment, since the lead-solomon code whose hamming distance d is d = 17 is adopted, the number of syndromes is d-2, that is, 15 symbols. The syndromes S 0 to S 15 are supplied to the gallo-based
제1연산수단의 동작은 제1b도의 흐름도로서 상세히 도시되었다.The operation of the first computing means is shown in detail as the flowchart of FIG. 1b.
제2연산수단에서는 제1연산수단으로부터 얻는 σi,j의 값과 신드롬 발생회로(52)로부터 돌출한 신드롬에 근거하여, 변형된 신드롬(Tk)을 연산한다. 이 제2연산수단의 동작은 제1c도의 흐름도중 부분(55)에 상세히 도시되었다.In the second calculating means, the modified syndrome T k is calculated based on the value of σ i, j obtained from the first calculating means and the syndrome protruding from the
제3연산수단에서는 제2연산수단에서 결정한 교정 신드롬으로부터 에러위치 다항식 σt(z)과 에러산정 다항식 ηt(z)를 얻는다. 이러한 제3연산수단의 동작은 제1c도의 흐름도(56)에 도시되었다. 또, 제4연산수단은 제3연산수단에 의하여 결정된 에러위치 다항식 σt(z)으로부터 미지의 에러위치수(XL…XL+t-1)를 얻는데 활용되고, 이러한 동작은 제1b도의 흐름도중 부분(57)에 해당한다.In the third calculation means, the error position polynomial σ t (z) and the error calculation polynomial η t (z) are obtained from the calibration syndrome determined by the second calculation means. The operation of this third calculating means is shown in the
제5연산수단은 제4연산수단에 의해서 얻은 에러위치들을 에러산정 다항식 ηt(z)에 대입하여, 에러치 중간치(YL,L…YL,L+t-1)를 얻는 부분으로서, 동작은 제1b도의 흐름도중 부분(58)에 해당한다.The fifth calculating means substitutes the error positions obtained by the fourth calculating means into the error calculation polynomial η t (z) to obtain an intermediate value of the error values (Y L, L ... Y L, L + t-1 ). Operation corresponds to
제6연산수단은 제5연산수단에 의해서 결정을 에러치 중간치와 제1연산수단에 의해 얻는 σi,j로부터 에러치(Yi,o)의 연산하는데 활용되고, 제6연산수단의 동작은 제1d도와 제1e도에 도시되었다.The sixth calculating means is used to calculate the error value Y i, o from the intermediate value of the error value and σ i, j obtained by the first calculating means by the fifth calculating means, and the operation of the sixth calculating means 1d and 1e are shown.
제1e도의 흐름도중 부분(59)과 제1d도의 흐름도중 부분(59)는 에러치(Yi,o)의 연산처리과정을 각각 1/2씩 도시하고 있다. 부호(60)는 최종 에러교정을 실행하는 흐름도 부분을 표시하고 있는 것이다. 이러한 연산처리중, 에러위치수들은 벡터대응치로부터 파워치로 변환되고, 코우드워드 메모리회로(53)내에 내재한 어드레스는 에러기호를 판독하기 위해서 연산된 에러치에 부가되었다가, 다시 코우드워드 메모리회로(53)의 동일위치에 라이트된다.
상기와 같이 구성된 본 갈로이계 연산장치의 제1실시예의 동작을 제1a도 내지 제1e도 및 제3도를 참조하여 상세히 설명하기로 한다. 여기서, 미지의 에러위치에 대한 J=8 내지 6의 에러와, 기지의 에러위치에 대한 j=5 내지 0의 에러로서, 목적하는 에러치 Yj,o에 대한 총 9개의 에러치가 존재한다고 가정하기로 하자.The operation of the first embodiment of the present Galois computing device configured as described above will be described in detail with reference to FIGS. 1A to 1E and 3. Here, it is assumed that there are a total of nine error values for a desired error value Y j, o as errors of J = 8 to 6 for an unknown error position and j = 5 to 0 errors for a known error position. Let's do it.
J에 대하여0jL이고, ji0이며, 하기식의 우변상 아래에 쓴 기호가 다르지 않으면 이에 대응하는 변수는 0이라는 조건하에서, σi,j=1라고 가정하면, σi,j=σi,j-1×Xj-1+σi-1,j-1에서j는 0부터 L까지 가변하고, 각각의 j 및 i값이 상기 조건하에서 가변할때, 순차적으로 연산처리를 실행함으로써, 결과 σi,j를 기억시킨다.About J0 j L, j i Assuming that σ i, j = 1, σ i, j = σ i, j-1 × X j- J in 1 + σ i-1, j-1 varies from 0 to L, and when the respective j and i values vary under the above conditions, the operation is executed sequentially to store the result σ i, j .
이러한 이유는 σi,j의 연산시에 이전의 연산처리에서 얻은 σij-1과 σi-1D,j-1의 값을 채택하는 것이 필요하고, 이러한σi,j가 에러값을 연산할때 필요하기 때문이다.For this reason , when calculating σ i, j , it is necessary to adopt the values of σ ij-1 and σ i-1D, j-1 obtained in the previous calculation process, and these sigma i, j cannot calculate the error value. Because it is necessary.
다음, 위와 같이 하여 얻은 σi,j와 신드롬을 근거로 하여, 0부터 d-2-L까지의 범위의 k값에 대하여 Tk=σi,j×Sk+1의 변형된 신드롬에 대한 연산을 실시하고, 변형된 신드롬(Tk)를 미지의 에러위치수에 대한 에러의 통상적 에러교정시의 신드롬과 동일하게 취급함으로써, 유클리드디코딩알고리듬(Euclid decoding algorithm)을 통하여 미지의 에러위치수들에 대응되는 t개의 에러들용 에러위치 다항식 σt(z)과 에러치중 중간치의 에러산정 다항식 ηt(z)을 얻는다.Next, T k = for k values in the range of 0 to d-2-L, based on σ i, j and syndrome obtained as above. By performing the operation on the modified syndrome of sigma i, j × S k + 1 and treating the modified syndrome T k in the same way as the syndrome at the time of normal error correction of the error for the unknown error position number, Euclid Through the decoding decoding algorithm, the error position polynomial σ t (z) for t errors corresponding to the unknown error position numbers and the error estimation polynomial η t (z) of the intermediate values are obtained.
다음, 치엔의 알고리듬(chien′s algorithm)을 통하여 에러위치를 얻은 다음, 에러위치 다항식으로부터의 에러위치수들을 에러위치 다항식 σt(z)과 에러치중 중간치의 에러산정 다항식 ηt(z)에 대입하여 연산함으로써, 에리치 중간치(YL+t-1,L…YL,L)를 얻음으로써, 흐름도(59)로부터 에러치를 결정한다.Next, the error position is obtained through the Chien's algorithm, and then the number of error positions from the error position polynomial is added to the error position polynomial σ t (z) and the error estimation polynomial η t (z). By assigning and calculating, the error value is determined from the
상기 연산중, 각각의 값에 대한 연산식은 다음의 것을 활용한다.Of the above calculations, the expression for each value utilizes the following.
여기서,here,
여기서,here,
여기서here
여기서,here,
여기서,here,
여기서,here,
여기서 0-번째 에러치(Y0,0)의 중간치를 얻고, 다른 에러치들, 즉, 1-번째 에러치 내지 8-번째 에러치들은 동시에 다음식과 같이 하여 얻는다.Here, the intermediate value of the 0-th error value (Y 0,0 ) is obtained, and other error values, that is, the 1-th error value to the 8-th error value are obtained simultaneously as in the following equation.
이러한 연산에서는 흔히, Pj=σi,j×Si라고 가정한다. 상기한 바와 같이, Yj,0를 얻기 위해서, L-1로부터 0까지의 j범위에서 Yj,j의 연산을 실행한다.Often in these operations, P j = Assume σ i, j × S i . As described above, in order to obtain Y j, 0 , the calculation of Y j, j is performed in the j range from L-1 to 0.
또, 에러치를 얻기 위해서, Yj,j연산을 σi,j의 연산에서와 동일하게 다음식, 즉,Yi,j=Yi,j+1/(Xi+Xj)+×σi,j×Si에 따라 실행하는 경우, Yi,j+1의 연산결과, 즉 최대치 L-1에서 0까지의 j범위에서 Yj,j에 대한 이전의 연산처리중 j+1에 대응한 Yi,j=Yi,j+1/(Xi+Yj)를 활용해야 한다.In order to obtain an error value, the Y j, j operation is performed in the same manner as in the operation of sigma i, j , that is, Y i, j = Y i, j + 1 / (X i + X j ) + When executing according to × σ i, j × S i , the result of the calculation of Y i, j + 1 , i.e., j + 1 during the previous calculation process for Y j, j in the j range from the maximum value L-1 to 0 Corresponding to Y i, j = Y i, j + 1 / (X i + Y j ).
다음 Yi,j+1/(Xi+Yj)를 연산한 후, 결과를 어떤 경우에도 메모리에 기억시켜서 후속 연산처리시에 갱신치를 다시 라이트할때 그 메모리의 내용을 돌출할 수 있도록 한다.After calculating the next Y i, j + 1 / (X i + Y j ), the result is stored in memory in any case so that the contents of that memory can be protruded when the update value is rewritten during subsequent processing. .
상기의 연산처리는 순차적 연산으로 하는 것이 편리하다. 위와 같이 하여 얻은 Yj,j의 새로운 결과치도 메모리에 라이트시킨다.It is convenient for the above calculation process to be a sequential operation. The new result of Y j, j obtained as above is also written to memory.
상기와 같은 반복적 연산의 결과로 얻는 j=0일때의 에러치, 즉 Yj, ±를 메모리에 기억시킨다.The error value when j = 0 obtained as a result of the above repetitive operation, that is, Y j, ± is stored in the memory.
또, 에러치를 얻기 위한 연산시에는 이미 결정된 σi,j를 다시 돌출하여 연산에 활용한다.In the operation for obtaining an error value, the previously determined sigma i, j are again projected and used for the calculation.
Yj,j의 연산시에는 흔히 재생 ROM(reprocical ROM)을 활용하여 1/(Xi+Yj)의 곱을 얻는 것이 효과적이다. 다음 도면을 참조하여, 본 발명에 따른 제2실시예로서 갈로이계 연산장치에 대하여 설명하기로 한다. 제2a도는 본 발명에 따른 제2실시예의 블록도이다. 제2b도는 제2실시예중 제1연산수단과 제7연산수단의 동작을 도시하는 흐름도이고, 제2c도는 제2실시예중 제2연산수단, 제3연산수단, 제4연산수단의 동작을 도시하는 흐름도로서 원리상 제1c도의 흐름도와 동일하나, 제2c도의 흐름도중 부분(55)에서는 교정 신드롬(T0)에 대한 연산이 이미 완료되어 있기 때문에 실행하지 않는다. 또, 제2d도는 제2실시예중 제5연산수단과 제8연산수단의 동작을 도시하는 흐름도이다.In the calculation of Y j, j , it is often effective to obtain a product of 1 / (X i + Y j ) by utilizing a reproduction ROM. With reference to the following drawings, a galoi system as a second embodiment according to the present invention will be described. Figure 2a is a block diagram of a second embodiment according to the present invention. FIG. 2B is a flowchart showing operations of the first and seventh computing means in the second embodiment, and FIG. 2C is a flowchart showing the operations of the second computing means, the third computing means and the fourth computing means in the second embodiment. As a flowchart, in principle, it is the same as the flowchart of FIG. 1C, but the
제2a도에 있어서, 부호(52)는 신드롬 발생회로로서, 제3도에 도시된 것과 동일하고, 부호(53)는 코우드워드 메모리회로를 표시한다. 또, 부호(62)는 마이크로프로그램을 활용하여 고속으로 갈로이계의 연산을 실행하는 갈로이계 연산회로를 표시한다.In Fig. 2A,
제2b도에 있어서, 제1연산수단과, 제7연산수단은 결합활용되어 제1연산수단에서 σi,j가 연산되고 기록기에서 보유되다가, Si를 곱함으로써, 중간치(Pj)와 교정신드롬(T0)를 연산하여 기억시킨다.In FIG. 2B, the first calculation means and the seventh calculation means are combined to utilize σ i, j in the first calculation means and are held in the recorder, and then multiply by S i to correct for the intermediate value P j . Compute and store the syndrome T 0 .
또, 제2c도에 있어서, 제1c도에 활용된 것과 유사한 방법으로 교정 신드롬(T1,…,Td-L-2)을 얻은 다음, 부호(56)으로 표시된 유클리드디코우딩 방법을 실행하여 미지의 에러위치수에 대한 t개의 에러에 대응한 에러위치 다항식 (σt(Z))과, 에러치의 중간치에 대한 에러산점 다항식(ηt(Z))을 얻는다.Also, in FIG. 2C, a calibration syndrome (T 1 ,..., T dL-2 ) is obtained by a method similar to that utilized in FIG. 1C, and then an Euclidean decoding method indicated by
다음, 제2d도중 흐름도의 부분(58)을 실행하여, 치엔의 알고리듬(57)을 통해 결정된 에러위치들을 에러위치 다항식 (σt(Z))과 에러치의 중간치에 대한 에러산정 다항식(ηt(Z))에 대입하여, 에러치에 대한 중간치(YL+t-1,L…YL,L)를 얻고, 흐름도의 부분(61)을 활용하여 에러치를 결정한다.Next, by executing
제2도의 부분(61)에서는 제1b도의 제7연산수단으로 활용하여 기억된 에러위치수들과 중간치(Pj)로부터 최종적으로 에러치(Yj,o)를 연산한다.In
제2a도 내지 제2d도 및 제3도를 참조하여, 상기와 같이 구성된 갈로이계 연산장치의 제2실시예에 활용된 연산방법을 설명하기로 한다. 에러치(Yj,o)에 대해서, 에러위치를 모르는 J=8 내지 6인 경우의 에러들과 에러위치를 알고 있는 J=5 내지 0인 경우의 에러들에 대응한 9개의 에러치가 존재한다고 가정하기로 한다. Yj,o를 얻기 위한, 제1실시예와 동일한 각각의 에러치에 대한 연산식에서, L-1부터 0까지의 j의 범위에 대한 Yj,j의 연산이 실행되지만, 이러한 연산에 앞서, 중간치(P0)로부터 Pj-1치를 얻는 것이 효과적이다.With reference to FIGS. 2A to 2D and FIG. 3, the calculation method utilized in the second embodiment of the galoi-based computing device configured as described above will be described. For the error values Y j, o , there are nine error values corresponding to errors in the case of J = 8 to 6, which do not know the error position, and errors in the case of J = 5 to 0, which knows the error position. Let's assume. In the equation for each error value as in the first embodiment for obtaining Y j, o , the calculation of Y j, j for the range of j from L-1 to 0 is executed, but before this operation, It is effective to obtain the P j-1 value from the intermediate value P 0 .
즉, Pj를 얻을 때는 σi,j의 연산식을 σi,j=σi,j-1×Xj-1+σi-,1-1로 설정하여, σi,j과 신드롬(Si)를 얻음과 동시에 다음 연산을 실행한다.That is, when the obtained P j by setting the operational expression of the σ i, j to the σ i, j = σ i, j-1 × X j-1 + σ i-, 1-1, σ i, j , and a syndrome ( S i ) is obtained and the following operation is executed.
즉, Pj=σi,j×SI That is, P j = σ i, j × S I
위와 같은 식으로서 얻은 중간치 (Pj)는 메모리중 다른 위치에 기억시킨다. 여기서, L-번째 중간치는 다음과 같이하여 결정된다.The intermediate value (P j ) obtained as above is stored in another location in memory. Here, the L-th intermediate value is determined as follows.
후속하여, 제1실시예의 경우와 동일하게 남은 변형된 신드롬들과 에러치의 중간치(YL+t-1,L…YL,L)를 얻어서 다음식을 연산한다.Subsequently, the following equations are calculated by obtaining the intermediate values Y L + t-1, L ... Y L, L of the modified syndromes and the error values remaining in the same manner as in the first embodiment.
또, 이 경우에, 제1실시예의 방식과 동일하게, 다음과 같은 최대치 L-1부터 0까지의 j범위에 있는 Yj,j에 있어서, Yi,j+1즉 선행 연산처리의 연산결과를 활용한다.In this case, similarly to the method of the first embodiment, Y i, j + 1, i.e., arithmetic result of the preceding arithmetic operation , in Y j, j in the j range from the maximum value L-1 to 0 as follows. To utilize.
상기의 순차적 연산에 의해서, j=0일때의 연산결과가 나오면, 목적한 에러치, 즉 Yj,o를 메모리에 기억시킨다. 에러위치수들을 상기한 것과 다른 수단을 활용하여 알게된 경우, 연산식중에 그러한 에러위치수들은 대입함으로써 소거교정은 효과적으로 실행될 수 있으며, 코우드 거리가 허용될 수 있는 범위내에서 에러교정은 상기한 절차를 통하여 조직적으로 수행될 수 있다. 이러한 절차중의 연산으로서, 1.5×L2+t2를 곱셈하는 연산이 필요하다.By the sequential arithmetic operation, when a calculation result when j = 0 is obtained, the target error value, that is, Y j, o is stored in the memory. If the error position numbers are known by using a means other than the above, erasure correction can be effectively performed by substituting such error position numbers in the calculation, and the error correction can be performed within the range where the code distance can be tolerated. This can be done systematically through. As an operation during this procedure, an operation of multiplying 1.5 × L 2 + t 2 is required.
본 발명에 따른 제1실시예에 있어서, 0요소의 곱은 결과가 0요소인 것으로 가정함으로써, 생략될 수 있고, 1의 곱셈경우도 마찬가지이다. 또, 예컨데 초기치 설정동작 대신에 연산의 중간점에 0요소를 채택하는 것같이 조건판정을 실행하는 값을 대입하는 것도 자연스럽게 생각할 수 있다. 또한, 순차적으로 연산을 실행할때, 예컨데 레지스터와 같은 장치에 보유되어 있는 몇개의 결과치를 활용하여 연산을 실행할 수도 있다. 또한, 이러한 연산은 통상적 마이크로프로세서를 활용하여 실행될 수 있고, 갈로이계의 곱셈은 통상 로그표를 활용하여 실행되므로, 본 발명에 따른 알고리등은 특히 그러한 연산에 있어 효과적이다.In the first embodiment according to the present invention, the product of 0 elements can be omitted by assuming that the result is 0 elements, and the case of multiplication of 1 is the same. It is also natural to substitute a value for performing condition determination, for example, adopting a zero element at the midpoint of the operation instead of the initial value setting operation. In addition, when executing operations sequentially, the operation may be executed by using some result values held in a device such as a register. Further, such an operation can be performed using a conventional microprocessor, and since the multiplication of the galoi system is usually performed using a log table, the algorithm according to the present invention is particularly effective in such an operation.
엔코우딩 동작시의 패리터연산의 경우와 신드롬 연산의 경우, 상당히 고속연산처리가 요구되므로, 그러한 연산처리를 소프트웨어로 실행하는 경우에서도 많은 경우의 연산을 병행실행할 수 있는 하드웨어가 채용된다. 고속처리가 필요한 경우라 하더라도, 마이크로프로그래밍스킴(microprogramming scheme)을 활용하여 하드웨어의 속도에 육박하는 속도로 소프트웨어 방식으로 에러교정을 비롯한 연산처리 동작을 실행하는 것, 즉, 순전한 하드웨어 방식만의 연산처리를 실행하지 않는 것도 가능하다.In the case of the parity operation during the encoding operation and the syndrome operation, a considerably high speed operation process is required. Therefore, even in the case where such an operation process is executed by software, hardware capable of performing many cases of operations in parallel is employed. Even if high-speed processing is required, using a microprogramming scheme to perform arithmetic operations including error correction in software at a speed that is close to the speed of hardware, that is, pure hardware-based operations. It is also possible not to execute the process.
수신한 정보워드가 c′n-1, c′n-2, …, c′d-1까지 정확하고, 발생되었지만, 결국 소거될d-1 패리터워드에 대응한 c′d-1, c′d-3…c′0에서 0요소에러가 발생했다면, 에러위치수들이 패리터위치를 지시한다는 가정하에 0요소를 입력함으로써 실행되는 디코우딩 동작은 정보워드에 대한 엔코우딩 동작을 실행하는 동작과 똑같다. 즉, 소거교정을 마이크로프로그램을 활용하여 고속으로 실행할 수 있다면, 엔코우딩 동작도 동일속도로 실행할 수 있다는 것이다.The received information word is c ′ n-1 , c ′ n-2 ,... , C 'd-1 accurate, but to generate, after a c corresponding to d-1 parity words to be erased' d-1, c '... d-3 If a zero element error occurs at c ′ 0 , the decoding operation performed by inputting the zero element under the assumption that the error position numbers indicate the parity position is the same as that of performing the encoding operation on the information word. In other words, if the erasure correction can be performed at high speed using a microprogram, the encoding operation can be executed at the same speed.
이러한 경우에, 제3도에 신드롬 발생회로에 체크워드를 공급하고자할 때 논리곱게이트회로(1)를 동작상태로 설정한 후, 0요소만 입력시키면 된다. 또, 이때 미지의 에러수(t)는 0 그리고, 기지의 에러수(L)는 d-1로 가정한다. 이러한 방법으로, 신드롬 연산회로만 상응한 하드웨어로 보완할 수 있다면, 엔코우딩회로를 생략할 수 있다.In this case, when the checkword is to be supplied to the syndrome generating circuit in FIG. 3, only the zero element is required after setting the
[산업적 활용성][Industry utilization]
상기한 바와 같이, 본 발명에 따라서, 코우드에러검출 및 교정장치에 부설된 신드롬 발생회로와 코우드워드 메모리회로를 활용하여 통상적인 교정과 소거교정을 고속으로 실행할 수가 있다. 결과적으로, 고속연산과 고성능을 필요로 하는 광디스크장치와 같은 생에러율이 높은 기록매체를 통한 디코우딩 동작이 실제적으로 실행될 수 있으므로, 유리한 효과를 거둘 수 있게 되었다.As described above, according to the present invention, by utilizing the syndrome generating circuit and the codeword memory circuit attached to the code error detecting and correcting apparatus, it is possible to execute normal calibration and erase calibration at high speed. As a result, since the decoding operation through a recording medium with a high error rate such as an optical disk device requiring high speed operation and high performance can be actually executed, an advantageous effect can be achieved.
Claims (2)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62162763A JP2553565B2 (en) | 1987-06-30 | 1987-06-30 | Galois field arithmetic unit |
JP87-162763 | 1987-06-30 | ||
JP87-176167 | 1987-07-15 | ||
JP62176167A JP2553571B2 (en) | 1987-07-15 | 1987-07-15 | Galois field arithmetic unit |
PCT/JP1988/000646 WO1989000363A1 (en) | 1987-06-30 | 1988-06-28 | Galois field arithmetic unit |
Publications (1)
Publication Number | Publication Date |
---|---|
KR910009094B1 true KR910009094B1 (en) | 1991-10-28 |
Family
ID=27305676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019890700370A KR910009094B1 (en) | 1987-06-30 | 1988-06-28 | Galois field arithmetic unit |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR910009094B1 (en) |
-
1988
- 1988-06-28 KR KR1019890700370A patent/KR910009094B1/en active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5020060A (en) | Error code correction device having a galois arithmetic unit | |
US5680340A (en) | Low order first bit serial finite field multiplier | |
US5068857A (en) | Error correction circuit | |
US4142174A (en) | High speed decoding of Reed-Solomon codes | |
US4099160A (en) | Error location apparatus and methods | |
US6141786A (en) | Method and apparatus for performing arithmetic operations on Galois fields and their extensions | |
KR930003997B1 (en) | Method and apparatus for decoding error correction code | |
US6560747B1 (en) | Error counting mechanism | |
US4763332A (en) | Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code | |
EP0316063B1 (en) | Error correction using look-up tables | |
US4504948A (en) | Syndrome processing unit for multibyte error correcting systems | |
EP0096109B1 (en) | Error correcting system | |
US6725416B2 (en) | Forward error correction apparatus and methods | |
US6148430A (en) | Encoding apparatus for RAID-6 system and tape drives | |
US5905740A (en) | Apparatus and method for error correction | |
JPH11507754A (en) | Dedicated ALU architecture for 10-bit read-Solomon error correction module | |
EP0836285B1 (en) | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits | |
JPH0653842A (en) | Method and circuit for decoding of rs code data signal | |
US6175941B1 (en) | Error correction apparatus and associated method utilizing parellel processing | |
US5107506A (en) | Error trapping decoding method and apparatus | |
US5541937A (en) | Apparatus for uniformly correcting erasure and error of received word by using a common polynomial | |
KR910009094B1 (en) | Galois field arithmetic unit | |
JP2553565B2 (en) | Galois field arithmetic unit | |
JP2553571B2 (en) | Galois field arithmetic unit | |
JPH10322226A (en) | Reed solomon decoding method |