KR100215807B1 - Error correcting apparatus and method for digital signal - Google Patents

Error correcting apparatus and method for digital signal Download PDF

Info

Publication number
KR100215807B1
KR100215807B1 KR1019970025233A KR19970025233A KR100215807B1 KR 100215807 B1 KR100215807 B1 KR 100215807B1 KR 1019970025233 A KR1019970025233 A KR 1019970025233A KR 19970025233 A KR19970025233 A KR 19970025233A KR 100215807 B1 KR100215807 B1 KR 100215807B1
Authority
KR
South Korea
Prior art keywords
error
codeword
correction
data
pointer
Prior art date
Application number
KR1019970025233A
Other languages
Korean (ko)
Other versions
KR19990001787A (en
Inventor
구본호
Original Assignee
구자홍
엘지전자주식회사
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 구자홍, 엘지전자주식회사 filed Critical 구자홍
Priority to KR1019970025233A priority Critical patent/KR100215807B1/en
Publication of KR19990001787A publication Critical patent/KR19990001787A/en
Application granted granted Critical
Publication of KR100215807B1 publication Critical patent/KR100215807B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10481Improvement or modification of read or write signals optimisation methods
    • G11B20/10509Improvement or modification of read or write signals optimisation methods iterative methods, e.g. trial-and-error, interval search, gradient descent or feedback loops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs

Abstract

에러 포인터를 이용한 이레이저 방법을 개선하여 메모리 사용을 줄이고 이레이저 정정 능력을 향상시키는 디지탈 신호의 에러 정정 장치 및 방법에 관한 것으로서, 특히 한개의 어드레스에 8비트 또는 16비트의 데이터 폭을 갖는 메모리를 데이터 저장 영역과 C2 에러 포인터 영역으로 나누어 데이터 및 C2 에러 포인터를 독립된 어드레스에 각각 저장한 후 에러 정정시 및 호스트 컴퓨터에 전송시에 각각의 어드레스 공간에서 억세스함으로써, 실용성을 높이고 메모리의 낭비를 없애며, 또한 Q 코드워드 처리시 에러 위치가 Q 코드워드내에 위치하지 않으면서 P 에러 포인터수가 2가 아니면 현재 처리되는 Q 코드워드에 해당하는 Q 계열 에러 포인터를 설정하고, Q 코드워드의 처리가 끝나고 P 코드워드의 처리시 에러위치가 P 코드워드내에 위치하지 않으면서 Q 에러 포인터수가 2가 아니면 현재 처리되는 P 코드워드에 해당하는 P 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 행하는 과정을 지정된 반복 횟수만큼 반복함으로써, 이레이저 정정 능력을 향상시킨다.The present invention relates to an error correction apparatus and method for a digital signal that improves an erasure method using an error pointer, thereby reducing memory usage and improving an erasure correction capability. In particular, a memory having an 8-bit or 16-bit data width in one address is provided. By dividing the data storage area and the C2 error pointer area and storing the data and the C2 error pointer in separate addresses, respectively, and accessing them in their respective address spaces for error correction and transmission to the host computer, it improves practicality and eliminates waste of memory. If the error position is not located within the Q codeword and the number of P error pointers is not 2, the Q series error pointer corresponding to the currently processed Q codeword is set. While processing the word, the error position is not located within the P code word. If the number of Q error pointers is not 2, the P series error pointer corresponding to the currently processed P codeword is set, and then the process of processing the next codeword is repeated by a specified number of repetitions, thereby improving the eraser correcting ability.

Description

디지탈 신호의 에러 정정 장치 및 방법Device and method for error correction of digital signals

본 발명은 디지탈 신호의 에러정정에 관한 것으로서, 특히 에러 포인터를 이용한 이레이저 방법을 개선하여 메모리 사용을 줄이고 이레이저 정정 능률을 향상시키는 디지탈 신호의 에러 정정 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to error correction of digital signals, and more particularly, to an apparatus and method for error correction of digital signals that improves an eraser method using an error pointer, thereby reducing memory usage and improving efficiency of erasure correction.

통상 컴팩트 디스크(CD) 재생 장치용의 디스크에 디지탈 데이터를 기록하는 CD-ROM에서는 비트 에러율이 10-12이하로서 고신뢰성이 요구된다.In a CD-ROM which records digital data on a disc for a compact disc (CD) reproducing apparatus, high reliability is required as the bit error rate is 10 -12 or less.

이때, CD 자체의 비트 에러율은 10-9정도이므로, CD-ROM에서는 CD 자체의 에러 정정 기능외에 CD의 98개분의 프레임으로 되는 블럭 단위로서 완결하는 다른 에러정정 부호를 갖추고 있다. 이 다른 에러 정정 부호는 P 계열 및 Q 계열로 되는 적 부호이다.At this time, since the bit error rate of the CD itself is about 10 -9 , the CD-ROM has another error correction code which is completed in block units of 98 frames of the CD in addition to the error correction function of the CD itself. This other error correction code is an enemy code consisting of the P series and the Q series.

이러한 종래의 디지탈 신호의 에러정정은 도 1 내지 도 4에 도시된 바와 같이 일본국 공개특허 출원번호 90-413508호(국내 출원번호 : 91-23287호)에 개시되어 있다.Error correction of such a conventional digital signal is disclosed in Japanese Laid-Open Patent Application No. 90-413508 (Domestic Application No. 91-23287) as shown in Figs.

도 1은 CD-ROM 드라이브 장치의 일예를 나타낸 것으로, 각 블럭 데이터에 CD 자체의 C1 계열 및 C2 계열로 이루어지는 적부호가 부가되고, 이 결과에 EFM 변조등을 실시한 신호가 CD 재생장치(10)의 디스크(11)에 기록되어 있다.Fig. 1 shows an example of a CD-ROM drive device, in which an appropriate code consisting of C1 series and C2 series of CD itself is added to each block data, and as a result, a signal subjected to EFM modulation or the like is transmitted to the CD reproducing apparatus 10. FIG. Is recorded on the disc 11 of FIG.

디스크(11)에 기록된 신호는 광학식 헤더(13)에 의해 RF 신호로 재생되고, 재생되는 RF 신호는 RF 증폭기(15)를 거쳐 각각 서보 회로(14) 및 CD용 디코더(17)로 출력된다.The signal recorded on the disc 11 is reproduced as an RF signal by the optical header 13, and the reproduced RF signal is output to the servo circuit 14 and the CD decoder 17 via the RF amplifier 15, respectively. .

상기 CD용 디코더(17)는 C1 부호와 C2 부호로 되는 CIRC를 사용하여 CD 자체의 에러정정을 행하고, 에러가 정정되지 않았다고 추정되는 데이터에 대응하는 C2 포인터를 '1'로 셋트시켜 CD-ROM용 디코더(21)로 출력한다.The CD decoder 17 performs error correction of the CD itself by using the CIRC formed of the C1 code and the C2 code, and sets the C2 pointer corresponding to the data estimated that the error is not corrected to '1', thereby setting the CD-ROM. Output to the decoder 21 is for.

상기 CD-ROM용 디코더(21)는 CD용 디코더(17)에서 출력되는 1차 정정된 데이터 및 C2 에러 포인터와 P 계열의 패리티 및 Q 계열의 패리티를 이용하여 '층(Layered) ECC'로 불리우는 2차 에러정정을 한 후 에러 정정을 할 수 없다고 추정되는 데이터에 대하여는 포인터를 '1'로 셋트하고 최후에 CRC 부호를 사용하여 에러 검출을 행한다.The CD-ROM decoder 21 is called 'Layered ECC' using the first corrected data and the C2 error pointer, the P series parity and the Q series parity outputted from the CD decoder 17. After the second error correction, the data estimated that the error cannot be corrected is set to '1' and the error detection is finally performed using the CRC code.

그리고나서, 에러정정 후의 데이터, 포인터 정보 및 CRC 부호에 의한 에러 검출 결과는 인터페이스(Interface ; I/F) 회로(26)를 통해 외부의 호스트 컴퓨터로 전송한다.Then, the data after error correction, the pointer information, and the error detection result by the CRC code are transmitted to the external host computer through the interface (I / F) circuit 26.

여기서, 버퍼 메모리(22)는 1바이트의 데이터와 그에 대응하는 1비트의 C2 에러 포인터를 저장하는 외부 메모리이다.Here, the buffer memory 22 is an external memory that stores one byte of data and a one-bit C2 error pointer corresponding thereto.

도 2는 도 1에서 언급된 CD용 디코더(17), CD-ROM 디코더(21) 그리고, I/F 회로(26) 사이에서 수행되는 일련의 에러정정 동작들을 순서도로 나타낸 것으로서, CD용 디코더(17)에서는 C1 계열 정정(단계 201, 202) 후에 C2 계열 정정을 하고(단계 203, 204), 이때 생기는 C2 에러 포인터(정정후에도 에러가 있는 것으로 판단된 바이트에 대해 표시하는 비트)와 데이터를 CD-ROM용 디코더(21)에 공급한다(단계 205).FIG. 2 is a flowchart showing a series of error correction operations performed between the decoder 17 for CD, the CD-ROM decoder 21, and the I / F circuit 26 mentioned in FIG. In step 17), the C2 series correction is made after the C1 series correction (steps 201 and 202) (steps 203 and 204), and the C2 error pointer (bits indicating the byte determined to have an error after the correction) and data are generated. -Supply to ROM decoder 21 (step 205).

상기 CD-ROM용 디코더(21)에서는 C2 에러 포인터를 바탕으로 Q 계열 및 P 계열의 에러정정을 한 후(단계 206 내지 단계 209), 그 결과에 따라 다시 C2 에러 포인터를 최종적으로 변경한다음 에러검출 동작을 수행한다(단계 210). 그리고, 그 결과 데이터를 C2 에러 포인터와 함께 호스트 컴퓨터로 전송한다(단계 211).The CD-ROM decoder 21 corrects the Q series and the P series based on the C2 error pointer (steps 206 to 209), and finally changes the C2 error pointer again according to the result. A detection operation is performed (step 210). The result is then transferred to the host computer with the C2 error pointer (step 211).

도 3은 종래의 Q 계열의 에러정정 방법을 나타낸 흐름도이고, 도 4는 P 계열의 에러정정 방법을 나타낸 흐름도로서, 두 방법 모두 에러정정 단계에서 계산해낸 에러의 위치와 그전 단계의 에러정정 결과인 에러 포인터의 위치를 이용하여 최종적으로 정정될 에러 바이트를 결정하는 방법으로 되어 있다.3 is a flowchart illustrating a conventional error correction method of the Q series, and FIG. 4 is a flowchart illustrating an error correction method of the P series, both of which are positions of the error calculated in the error correction step and an error correction result of the previous step. The error byte to be finally corrected is determined by using the position of the error pointer.

특히, Q 계열의 에러정정에서는 계산해낸 에러의 위치와 CD-ROM용 디코더(21)에서 공급한 C2 에러 포인터의 위치를 엄격히 비교하여 그 두개의 위치가 일치하거나 다른 데이터에는 C2 에러 포인터가 없을 경우에만 1 바이트의 에러정정을 하도록 하고, 나머지 경우에는 P 계열의 에러정정시에 최대 2바이트를 정정할 수 있도록 에러포인터를 설정한다. 결국, Q 계열에선 에러검출 위주로 동작하고 P 계열에선 에러정정 위주로 동작하도록 하는 것이 특징이다.In particular, the Q series error correction strictly compares the position of the calculated error with the position of the C2 error pointer supplied by the CD-ROM decoder 21, and when the two positions coincide or there is no C2 error pointer in other data. Only 1 byte of error correction is required. In other cases, an error pointer is set so that a maximum of 2 bytes can be corrected during error correction of the P series. As a result, the Q series operates mainly on error detection and the P series operates on error correction.

또한, CD용 디코더(17)에서 공급된 C2 에러 포인터를 Q 계열 및 P 계열의 에러정정 과정에서 이용함은 물론이고 에러정정 결과에 따라 본래의 에러 포인터 값을 변경한다.In addition, the C2 error pointer supplied from the CD decoder 17 is used in the error correction process of the Q series and the P series, and the original error pointer value is changed according to the error correction result.

그러나, 상기된 종래의 에러정정 장치는 버퍼 메모리(22)가 9비트(8비트 데이터 + 1비트 C2 에러 포인터)의 데이터 폭을 갖을때 최적의 정정 효율을 갖는다.However, the conventional error correction apparatus described above has an optimum correction efficiency when the buffer memory 22 has a data width of 9 bits (8 bits data + 1 bit C2 error pointer).

즉, 상기 C2 에러 포인터는 1 바이트의 데이터에 대해 1 비트가 할당되므로 9비트의 데이터 폭을 갖는 메모리를 사용하여 한개의 어드레스 공간에 데이터와 그에 따른 C2 에러 포인터가 저장되면 에러정정 회로를 구성하기는 편리하지만, 요즘과 같은 대용량의 데이터 버퍼 메모리(통상 256K 바이트 이상)를 사용하는 CD-ROM 드라이버에서는 9비트의 데이터 폭을 갖는 256K 바이트 정도의 메모리를 구하는 것은 가격적인 면은 물론이고 이런 타입의 메모리를 생산하는 반도체 업체도 드문 상태여서 실용성이 없다.That is, since the C2 error pointer is allocated 1 bit for 1 byte of data, when the data and the corresponding C2 error pointer are stored in one address space using a memory having a 9-bit data width, an error correction circuit is constructed. Is convenient, but in today's CD-ROM drivers that use a large amount of data buffer memory (typically 256K bytes or more), obtaining 256K bytes of memory with 9 bits of data width is of course costly and of this type. Semiconductor companies that produce memory are also rare and therefore not practical.

또한, 9비트짜리 메모리대신 16비트의 데이터 폭을 갖는 메모리를 사용하면 메모리의 낭비와 가격 상승의 요인이 된다.In addition, using a memory having a data width of 16 bits instead of a 9-bit memory causes a waste of memory and a price increase.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 한개의 어드레스에 8비트 또는 2개의 바이트를 한번에 억세스하도록 16 비트의 데이터 폭을 갖는 메모리를 사용하면서도 Q 계열 및 P 계열 에러 포인터를 이용하여 효과적으로 이레이저 정정 및 반복정정을 수행할 수 있도록 하는 에러정정 장치 및 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to use a Q series and P series error pointer while using a memory having a data width of 16 bits to access 8 or 2 bytes at a time in one address at a time. An error correction apparatus and method for effectively performing erasure correction and iterative correction by using

상기와 같은 목적을 달성하기 위한 본 발명에 따른 에러정정 장치의 특징은, 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 상기 정정 데이터와 C2 에러 포인터를 각각의 어드레스에 저장하는 외부의 버퍼 메모리와,A feature of an error correction apparatus according to the present invention for achieving the above object is that the address of the data storage area and the C2 error point storage area is divided into an external buffer for storing the correction data and the C2 error pointer at each address. With memory,

상기 버퍼 메모리에 리드/라이트 신호 및 해당 어드레스를 제공하기 위한 메모리 인터페이스와, 상기 메모리 인터페이스로 리드/라이트 신호를 출력하고 어드레스 생성에 필요한 코드워드의 종류(codeid)와 각 코드워드내의 순서를 의미하는 인덱스를 출력하는 제어기와, 상기 버퍼 메모리의 데이터 저장 영역과 C2 에러포인터 저장 영역의 선두 어드레스와 제어기로부터 코드워드의 종류와 인덱스를 제공받아 버퍼 메모리에 필요한 어드레스를 생성하여 메모리 인터페이스를 통해 출력하는 메모리 어드레스 생성기와, 상기 메모리 인터페이스를 통해 한 코드워드내의 모든 데이터 바이트가 버퍼 메모리로부터 리드되면 신드롬을 계산하는 신드롬 계산부와, 상기 신드롬 계산기의 출력을 이용하여 1 에러 위치를 판별하는 1 에러위치 판별기와, 상기 신드롬 계산기의 출력을 이용하여 에러값을 생성하는 에러값 생성기와, C2 에러 포인터가 설정되어 있는 데이터가 해당하는 P 코드워드에 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행한 후 에러 포인터수를 합산하고 2 에러 위치를 판별하여 Q 코드워드의 이레이저 정정에 이용하도록 하는 P 계열 에러 판별부와, Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 P 계열 에러 판별부에서 구해진 에러 포인터수가 2가 넘으면 Q 코드워드의 codeid에 따른 Q 계열 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행한 후 에러 포인터수를 합산하고 2 에러 위치를 판별하여 P 코드워드의 이레이저 정정에 이용하도록 하는 Q 계열 에러 판별부와, 상기 제어기가 에러 위치를 인덱스 정보로 하여 메모리 어드레스 생성기로 출력함에 의해 버퍼 메모리로부터 해당 어드레스의 데이터가 리드되면 상기 에러값과 배타적 논리합하여 에러를 정정한 후 다시 버퍼 메모리의 해당 어드레스에 저장하는 에러 정정기로 구성되어, Q 코드워드에 대해 에러정정이 완료되면 P 코드워드에 대해 같은 동작을 반복하는 과정을 지정된 횟수만큼 반복 수행하는데 있다.A memory interface for providing a read / write signal and a corresponding address to the buffer memory, a codeword for outputting a read / write signal to the memory interface and generating an address, and an order within each codeword. A controller for outputting an index, a memory address for receiving a codeword type and an index from the controller of the data storage area and the C2 error pointer storage area of the buffer memory, and generating an address required for the buffer memory and outputting it through a memory interface; An address generator, a syndrome calculation unit for calculating a syndrome when all data bytes in a codeword are read from a buffer memory through the memory interface, and a one error position discriminator for determining one error position using an output of the syndrome calculator. , The sind The error value generator that generates the error value using the output of the calculator, and the process of setting and storing the error pointer in the P codeword corresponding to the data for which the C2 error pointer is set is performed for all the codeids. The P series error discrimination unit for summing the 2 error positions and determining the 2 error positions to use for erasure correction of the Q codeword, and the error positions obtained by the 1 error position discriminator at the time of Q codeword error correction are not present in the codeword. If the number of error pointers obtained by the P series error discriminating unit is greater than 2, the process of setting and storing the Q series error pointers according to the codeids of the Q codewords is performed for all the codeids, and then the number of the error pointers is summed and 2 error positions A Q series error discrimination unit for discriminating the P codeword by erasing the P codeword, and If the data of the corresponding address is read from the buffer memory by outputting the information to the memory address generator using the index information, the error corrector performs an exclusive OR with the error value, corrects the error, and stores the data in the corresponding address of the buffer memory. When error correction is completed for the codeword, the process of repeating the same operation for the P codeword is repeatedly performed a specified number of times.

또한, Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 P 계열 에러 판별부에서 구해진 에러 포인터수가 2이면 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 이레이저 정정을 수행하는데 있다.In addition, when the number of error pointers obtained by the P series error discriminating unit does not exist in the codeword when the error position determined by the first error position discriminator is present in the Q codeword error correction, two errors corresponding to two error positions. After each value is obtained from the error value generator, an exclusive laser OR is sequentially performed on the data of the corresponding address stored in the buffer memory to perform erasure correction.

또한, P 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 Q 계열 에러 판별부에서 구해진 에러 포인터수가 2이면 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 이레이저 정정을 수행하는데 있다.In addition, when the error position determined by the first error position discriminator does not exist in the codeword at error correction of the P codeword, if the number of error pointers obtained by the Q series error discrimination unit is 2, two errors corresponding to two error positions are obtained. After each value is obtained from the error value generator, an exclusive laser OR is sequentially performed on the data of the corresponding address stored in the buffer memory to perform erasure correction.

본 발명에 따른 디지탈 데이터의 에러정정 방법의 특징은, 광 디스크로부터 데이터를 독출하여 C1 계열과 C2 계열에 대해 에러정정을 수행한 후 정정 데이터와 C2 에러 포인터를 출력하는 디지탈 데이터의 에러 정정방법에 있어서, Q 코드워드내의 모든 데이터 바이트가 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 있는 외부의 버퍼 메모리로부터 리드되면 신드롬을 계산하여 에러를 판별하는 단계와, 에러가 없다고 판별되면 다음 Q 코드워드에 대한 처리로 진행되고 에러가 있다고 판별되면 에러 위치를 구하는 단계와, 상기 단계에서 구한 에러 위치가 코드워드내의 위치에 속하는지를 판별하는 단계와, 상기 단계에서 에러 위치가 Q 코드워드내에 존재한다고 판별되면 1 에러 위치와 에러값을 구하여 1 에러를 정정한 후 버퍼 메모리에 저장하는 단계와, 상기 단계에서 에러 위치가 Q 코드워드내에 존재하지 않는다고 판별되면 P 에러 포인터수가 2개인지를 판별하는 단계와, 상기 단계에서 P 에러 포인터의 수가 2개라면 2개의 에러 위치와 에러값을 구하여 2 에러를 정정한 후 버퍼 메모리에 저장하는 단계와, 상기 단계에서 P 에러 포인터의 수가 2가 아니라고 판별되면 현재 처리되는 Q 코드워드에 해당하는 Q 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 수행하는 단계를 포함하여 이루어져, Q 코드워드에 대해 에러정정이 완료되면 P 코드워드에 대해 같은 동작을 반복하는데 있다.A feature of the error correction method of digital data according to the present invention is a method of error correction of digital data which reads data from an optical disk, performs error correction on C1 series and C2 series, and outputs correction data and a C2 error pointer. If all data bytes in the Q codeword are read from an external buffer memory in which the addresses of the data storage area and the C2 error point storage area are separated, calculating a syndrome to determine an error, and if there is no error, the next Q Proceeding with the codeword and determining that there is an error, obtaining an error position; determining whether the error position obtained in the step belongs to a position in the codeword; and in this step, the error position exists in the Q codeword. If it is determined that 1 error location and error value are obtained, correct 1 error and Storing in the memory; determining whether the number of P error pointers is two if the error position is not present in the Q code word; and if the number of P error pointers is two, Obtaining an error value, correcting 2 errors and storing them in a buffer memory, and if it is determined in the above step that the number of P error pointers is not 2, sets a Q series error pointer corresponding to the Q codeword currently being processed, and then It includes the step of performing a word processing, if the error correction is completed for the Q code word is to repeat the same operation for the P code word.

본 발명에 따른 디지탈 데이터의 에러정정 방법의 특징은, 광 디스크로부터 데이터를 독출하여 C1 계열과 C2 계열에 대해 에러정정을 수행한 후 정정 데이터와 C2 에러 포인터를 출력하는 디지탈 데이터의 에러 정정방법에 있어서, P 코드워드내의 모든 데이터 바이트가 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 있는 외부의 버퍼 메모리로부터 리드되면 신드롬을 계산하여 에러를 판별하는 단계와, 에러가 없다고 판별되면 다음 P 코드워드에 대한 처리로 진행되고 에러가 있다고 판별되면 에러 위치를 구하는 단계와, 상기 단계에서 구한 에러 위치가 코드워드내에 속하는지를 판별하는 단계와, 상기 단계에서 에러 위치가 P 코드워드내에 존재한다고 판별되면 1 에러 위치와 에러값을 구하여 1 에러를 정정한 후 버퍼 메모리에 저장하는 단계와, 상기 단계에서 에러 위치가 P 코드워드내에 존재하지 않는다고 판별되면 Q 에러 포인터수가 2개인지를 판별하는 단계와, 상기 단계에서 Q 에러 포인터의 수가 2개라면 2개의 에러 위치와 에러값을 구하여 2 에러를 정정한 후 버퍼 메모리에 저장하는 단계와, 상기 단계에서 Q 에러 포인터의 수가 2개가 아니라고 판별되면 현재 처리되는 P 코드워드에 해당하는 P 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 수행하는 단계를 포함하여 이루어지는데 있다.A feature of the error correction method of digital data according to the present invention is a method of error correction of digital data which reads data from an optical disk, performs error correction on C1 series and C2 series, and outputs correction data and a C2 error pointer. If all data bytes in the P codeword are read from an external buffer memory in which the addresses of the data storage area and the C2 error point storage area are separated, calculating a syndrome to determine an error, and if there is no error, the next P Proceeding to the codeword and determining that there is an error, obtaining an error position, determining whether the error position obtained in the step belongs to the codeword, and determining that the error position exists in the P codeword in the step. 1 error position and error value is calculated, 1 error is corrected and then stored in the buffer memory. Storing; if determining that the error position does not exist in the P codeword, determining whether the number of Q error pointers is two; and if the number of Q error pointers is two in this step, two error positions and error values. Obtain a 2 error, correct the error, and store it in the buffer memory; and if it is determined in the step that the number of Q error pointers is not 2, the P series error pointer corresponding to the currently processed P codeword is set, and then It comprises a step of performing a process.

도 1은 종래의 디지탈 신호의 에러정정 장치를 나타낸 구성 블럭도1 is a block diagram showing a conventional error correction device for digital signals

도 2는 종래의 디지탈 신호의 에러정정 방법의 전체적인 동작을 나타낸 흐름도2 is a flowchart showing the overall operation of the conventional method for error correction of digital signals.

도 3은 종래의 디지탈 신호의 Q 계열 코드워드의 에러정정 과정을 나타낸 흐름도3 is a flowchart illustrating an error correction process of a Q series codeword of a conventional digital signal.

도 4는 종래의 디지탈 신호의 P 계열 코드워드의 에러정정 과정을 나타낸 흐름도4 is a flowchart illustrating an error correction process of a P series codeword of a conventional digital signal.

도 5는 본 발명에 따른 디지탈 신호의 에러정정 장치를 나타낸 구성 블럭도5 is a block diagram illustrating an error correction apparatus of a digital signal according to the present invention.

도 6은 CD-ROM용 데이터 형식중 에러정정용 데이터 구조를 나타낸 도면Fig. 6 is a diagram showing an error correction data structure in the data format for CD-ROM.

도 7은 CD-ROM 경우의 코드워드와 어드레스와의 관계를 나타낸 도면Fig. 7 shows the relationship between codewords and addresses in the case of a CD-ROM;

도 8a는 codeid=0인 경우에 Q 코드워드의 구조를 나타낸 도면8A shows the structure of a Q codeword when codeid = 0

도 8b는 codeid=0인 경우에 P 코드워드의 구조를 나타낸 도면8B shows the structure of a P codeword when codeid = 0

도 9는 도 5의 CD-ROM용 디코더의 상세 블럭도9 is a detailed block diagram of the decoder for CD-ROM of FIG.

도 10은 도 9의 버퍼 메모리의 맵 구조의 일예를 보인 도면FIG. 10 is a diagram illustrating an example of a map structure of a buffer memory of FIG. 9.

도 11은 본 발명에 따른 디지탈 신호의 Q 계열 코드워드의 에러정정 과정을 나타낸 흐름도11 is a flowchart illustrating an error correction process of a Q series codeword of a digital signal according to the present invention.

도 12는 본 발명에 따른 디지탈 신호의 P 계열 코드워드의 에러정정 과정을 나타낸 흐름도12 is a flowchart illustrating an error correction process of a P series codeword of a digital signal according to the present invention.

도 13은 본 발명에 따른 디지탈 신호의 에러정정 방법의 전체적인 동작을 나타낸 흐름도13 is a flowchart showing the overall operation of the error correction method of a digital signal according to the present invention.

도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings

50 : 호스트 인터페이스 51 : 광 디스크50: host interface 51: optical disk

52 : 광 픽업 53 : RF 증폭기52: optical pickup 53: RF amplifier

54 : CD용 디코더 55 : D/A 변환기54: CD decoder 55: D / A converter

56 : 스핀들 모터 57 : 서보 회로56: spindle motor 57: servo circuit

58 : 제어용 마이콤 59 : CD-ROM용 디코더58: control microcomputer 59: CD-ROM decoder

60 : 버퍼 메모리 61 : 메모리 인터페이스60: buffer memory 61: memory interface

62 : 메모리 어드레스 생성기 63 : P 계열 에러포인터 설정기62: memory address generator 63: P series error pointer setter

64 : P 계열 에러포인터 레지스터64: P series error pointer register

65 : Q 계열 에러포인터 설정기65: Q series error pointer setter

66 : Q 계열 에러포인터 레지스터66: Q series error pointer register

67,70 : 2 에러위치 판별기67,70: 2 Error position discriminator

68,69 : 에러 포인터수 합산기 72 : 신드롬 계산기68,69: error pointer adder 72: syndrome calculator

73 : 1 에러위치 판별기 74 : 에러값 생성기73: 1 error position discriminator 74: error value generator

75 : 배타적 논리합 회로 76 : 제어기75: exclusive OR circuit 76: controller

이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 5는 본 발명에 따른 CD-ROM 드라이브 시스템의 개략도로서, 광 디스크(51), 상기 광 디스크(51)에 광빔을 조사하고 반사되는 빔을 RF 신호로 변환하는 광 픽업(52), 상기 광 픽업(52)에서 출력되는 RF 신호를 증폭하는 RF 증폭기(53), 상기 RF 증폭기(53)에서 증폭된 신호를 입력받아 C1 부호와 C2 부호로 되는 CIRC(Cross Interleaved Reed Solomon Code)를 사용하여 CD 자체의 에러 정정을 수행하고, 에러가 정정되어 있지 않다고 추정되는 데이터에 대응하는 C2 에러 포인터를 '1'로 셋트시키는 CD용 디코더(54), 상기 CD용 디코더(54)에서 정정된 데이터를 아날로그 로 변환하여 오디오 출력단자로 공급하는 디지탈/아날로그(Digital/Analog ; D/A) 변환기(55), 상기 디스크(51)를 회전시키는 스핀들 모터(56), 상기 스핀들 모터(56)를 제어하여 광 디스크(51)를 회전시키고 동시에 광 픽업(52)를 제어하여 RF 증폭기(53)에 필요한 신호를 공급하도록 하는 서보회로(57), 서보 및 에러정정을 제어하는 제어용 마이콤(58), 상기 CD용 디코더(54)에서 출력되는 데이터와 C2 에러 포인터를 입력받아 '층 ECC'라는 에러정정을 수행하는 CD-ROM용 디코더(59), 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 상기 CD-ROM용 디코더(59)를 통해 제공되는 데이터와 C2 에러 포인터를 저장하는 버퍼 메모리(60), 및 상기 CD-ROM용 디코더(59)에서 정정된 데이터를 호스트 컴퓨터로 전송하는 호스트 인터페이스(50)를 포함하여 구성된다.5 is a schematic diagram of a CD-ROM drive system according to the present invention, including an optical disk 51, an optical pickup 52 for irradiating a light beam to the optical disk 51 and converting the reflected beam into an RF signal; An RF amplifier 53 for amplifying the RF signal output from the pickup 52, a CD using a Cross Interleaved Reed Solomon Code (CIRC), which receives the signal amplified by the RF amplifier 53 and becomes a C1 code and a C2 code. The decoder for CD 54 which performs its own error correction and sets the C2 error pointer corresponding to the data estimated that the error is not corrected to '1', and the data corrected by the CD decoder 54 are analog. Digital / analog (D / A) converter 55 for converting the power to an audio output terminal and supplying it to the audio output terminal, the spindle motor 56 for rotating the disk 51, and the spindle motor 56 for controlling optical Rotate the disk 51 and remove the optical pickup 52 at the same time. For example, a servo circuit 57 for supplying a necessary signal to the RF amplifier 53, a control microcomputer 58 for controlling servo and error correction, data output from the CD decoder 54, and a C2 error pointer are input. CD-ROM decoder 59 for performing error correction called 'layer ECC', data storage area and address of C2 error point storage area are distinguished, and data provided through the CD-ROM decoder 59 and C2. A buffer memory 60 for storing an error pointer, and a host interface 50 for transmitting the data corrected by the CD-ROM decoder 59 to a host computer.

이와같이 구성된 도 5에서 광 디스크(51)에는 CD 자체의 C1 계열 및 C2 계열로 이루어지는 적부호가 부가되고, 이 결과에 EFM 변조등을 실시한 신호가 기록되어 있다.In FIG. 5 configured as described above, an appropriate code consisting of the C1 series and the C2 series of the CD itself is added to the optical disk 51, and as a result, a signal subjected to EFM modulation or the like is recorded.

상기 디스크(51)에 기록된 신호는 광 픽업(52)에 의해 RF 신호로 재생되고, 재생되는 RF 신호는 RF 증폭기(53)에서 증폭된 후 CD용 디코더(54)로 출력된다.The signal recorded on the disc 51 is reproduced as an RF signal by the optical pickup 52, and the reproduced RF signal is amplified by the RF amplifier 53 and then output to the CD decoder 54.

상기 CD용 디코더(54)는 C1 부호와 C2 부호로 되는 CIRC(Cross Interleaved Reed Solomon Code)를 사용하여 CD 자체의 에러정정을 행하고, 에러가 정정되지 않았다고 추정되는 데이터에 대응하는 C2 포인터를 '1'로 셋트시켜 D/A 변환기(55)와 CD-ROM용 디코더(59)로 출력한다.The CD decoder 54 performs error correction of the CD itself by using a CIRC (Cross Interleaved Reed Solomon Code) consisting of a C1 code and a C2 code, and sets a C2 pointer corresponding to data estimated to have not been corrected. ', And output to the D / A converter 55 and the CD-ROM decoder 59.

상기 D/A 변환기(55)는 상기 CD용 디코더(54)에서 에러 정정된 데이터를 아날로그로 변환하여 오디오 출력단자로 공급하고, CD-ROM용 디코더(59)는 CD용 디코더(54)에서는 1차 정정된 데이터 및 C2 에러 포인터와 P 계열의 패리티 및 Q 계열의 패리티를 이용하여 '층(Layered) ECC'로 불리우는 2차 에러정정을 수행한다.The D / A converter 55 converts the error-corrected data from the CD decoder 54 into an analog output to an audio output terminal, and the CD-ROM decoder 59 is 1 in the CD decoder 54. Second-order error correction, called 'Layered ECC', is performed using the second corrected data, the C2 error pointer, the P series parity, and the Q series parity.

이때, 상기 CD-ROM용 디코더(59)는 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 있는 외부의 버퍼 메모리(60)에 CD용 디코더(54)가 공급하는 데이터와 C2 에러 포인터를 저장하였다가 에러정정에 이용한 후 그 결과를 호스트 인터페이스(50)를 통해 호스트 컴퓨터로 전송한다.At this time, the CD-ROM decoder 59 stores the data and the C2 error pointer supplied by the CD decoder 54 to an external buffer memory 60 in which the addresses of the data storage area and the C2 error point storage area are separated. The data is stored and used for error correction, and the result is transmitted to the host computer through the host interface 50.

상기 버퍼 메모리(60)의 맵 구조는 도 10에 도시된 바와같다.The map structure of the buffer memory 60 is as shown in FIG.

즉, 메모리 맵을 크게 2개의 영역으로 나누어, 하나는 데이터 저장영역으로 다른 하나는 C2 에러포인트 저장영역으로 한다.That is, the memory map is largely divided into two areas, one as a data storage area and the other as a C2 error point storage area.

상기 데이터 저장영역에는 2352바이트 단위로(CD-ROM에서는 광 디스크에 기록되어 있는 1 섹터의 단위가 2352바이트이다.)저장하며, 저장되는 선두 어드레스를 SECBASE로 가리킨다.The data storage area is stored in units of 2352 bytes (the unit of one sector recorded on the optical disc is 2352 bytes in the CD-ROM). The first address to be stored is indicated by SECBASE.

그리고, C2 에러포인트 저장영역에는 294 바이트 단위로(1바이트의 데이터당 1개의 C2 에러포인터가 입력되므로 2352바이트의 데이터에 대해서는 294 바이트의 저장영역이 필요하다.)저장하며, 저장되는 선두 어드레스를 C2POBASE로 가리킨다.The C2 error point storage area is stored in units of 294 bytes (one C2 error pointer is input per 1 byte of data, so 294 bytes of data are required for 2352 bytes of data). Point to C2POBASE.

이때, 상기 SECBASE 및 C2POBASE는 제어용 마이콤(58)등에서 공급가능하다.At this time, the SECBASE and C2POBASE can be supplied from the control microcomputer 58 or the like.

따라서, 에러정정시 및 호스트 컴퓨터에 전송시에 필요한 데이터 및 C2 에러 포인터를 버퍼 메모리(60)의 각각의 어드레스 공간에서 억세스할 수 있게된다.Thus, data and C2 error pointers necessary for error correction and transfer to the host computer can be accessed in the respective address spaces of the buffer memory 60.

한편, 서보회로(57)는 스핀들 모터(56)를 제어하여 광 디스크(51)를 회전시키고 동시에 광 픽업(52)를 제어하여 RF 증폭기(53)에 필요한 신호를 공급하도록 하며, 제어용 마이콤(58)은 서보 및 에러정정을 제어한다.On the other hand, the servo circuit 57 controls the spindle motor 56 to rotate the optical disk 51 and at the same time to control the optical pickup 52 to supply the necessary signal to the RF amplifier 53, the control microcomputer 58 ) Controls servo and error correction.

이때, 상기 CD-ROM용 디코더(59)가 처리하는 데이터의 구성은 도 6과 같다. 즉, CD-ROM의 1 블럭은 2352 바이트의 데이터로 구성되고, 이 데이터의 내역은 처음에 12바이트의 싱크 데이터(어드레스 0에서 11까지)를 제외한 나머지 부분 예컨대, 어드레스 12부터 어드레스 2351까지의 데이터에는 본래의 데이터 및 에러정정용 Q, P 패리티가 포함되어 있다.At this time, the configuration of data processed by the CD-ROM decoder 59 is as shown in FIG. That is, one block of the CD-ROM is composed of 2352 bytes of data, and the details of the data are initially except for 12 bytes of sync data (addresses 0 to 11), for example, data from addresses 12 to addresses 2351. Contains the original data and Q and P parity for error correction.

이때, P 패리티는 어드레스 12부터 어드레스 2075까지의 데이터에 대한 패리티가 어드레스 2076부터 어드레스 2247까지 기록되고, Q 패리티는 어드레스 12부터 P 패리티를 포함한 어드레스 2247까지의 데이터에 대한 패리티가 어드레스 2248부터 어드레스 2351까지 기록된다.At this time, the parity of the data from the address 12 to the address 2075 is recorded from the address 2076 to the address 2247, and the parity of the data from the address 12 to the address 2247 including the P parity is from the address 2248 to the address 2351. Is recorded until.

이러한 구성은 CD-ROM 데이터의 유형중에 모드 1 및 모드 2 폼 1에 해당되며, 이러한 유형의 데이터가 에러정정이 가능한 데이터이다.This configuration corresponds to Mode 1 and Mode 2 Form 1 of the type of CD-ROM data, and this type of data is error correctable data.

도 7은 CD-ROM의 경우에, 싱크 12 바이트의 공간을 제외한 나머지의 어드레스 공간과 에러정정용 코드워드의 구성에 대한 상관관계를 보이고 있다.FIG. 7 shows a correlation between the structure of the error correction codeword and the remaining address space except for the sync 12 byte space in the case of the CD-ROM.

싱크 12 바이트를 제외하므로 어드레스 12부터 시작하여 짝수만의 어드레스 공간과 홀수만의 어드레스 공간의 두가지로 나누어 각각에 대해 같은 형태의 알고리즘으로 P 및 Q 패리티를 생성한다.Since the sync 12 bytes are excluded, P and Q parity are generated using the same type of algorithm for each, starting with address 12 and divided into even-numbered address space and odd-numbered address space.

이때, P 코드워드는 도 7에서와 같이 위에서 아래방향으로 어드레싱되고, Q 코드워드는 사선방향(좌측 상단에서 우측 하단으로)으로 어드레싱되며, 도 8에 P 코드워드 및 Q 코드워드에 대한 일예를 보이고 있다.In this case, the P codeword is addressed from top to bottom as shown in FIG. 7, the Q codeword is addressed in an oblique direction (from the upper left to the lower right), and FIG. 8 shows an example of the P codeword and the Q codeword. It is showing.

이 경우, P 코드워드는 24행 × 43열의 각 열이고, Q 코드워드는 24행 × 43열의 배열을 경사로 횡절하는 계열이다. 즉, 그들의 43열의 각 열에 대한 24바이트의 통상 데이터에 각각 2바이트의 P 패리티가 부가되고, 경사방향의 43바이트의 데이터(2바이트의 P 패리티를 포함한다.)에 각각 2바이트의 Q 패리티가 부가된다.In this case, the P codewords are each column of 24 rows x 43 columns, and the Q code words are sequences that diagonally transverse the array of 24 rows x 43 columns. That is, two bytes of P parity are added to 24 bytes of normal data for each of those 43 columns, and two bytes of Q parity to 43 bytes of data (including two bytes of P parity) in the oblique direction. Is added.

이렇게 코드워드를 만들면 다음과 같은 결과를 얻게된다.This codeword produces the following result:

Q 코드워드 : 모두 26개(codeid=0,..,25), 코드워드의 길이는 45(인덱스=0,..,44)Q codewords: 26 in all (codeid = 0, .., 25), length of codeword is 45 (index = 0, .., 44)

P 코드워드 : 모두 43개(codeid=0,..,42), 코드워드의 길이는 26(인덱스=0,..,25)P codewords: all 43 (codeid = 0, .., 42), codeword length 26 (index = 0, .., 25)

이때, 상기 Q 코드워드 및 P 코드워드는 각각 2바이트의 Q 및 P 패리티가 포함되므로 1 바이트의 에러는 정확하게 정정할 수 있고, 2바이트의 에러에 대해서도 미리 포인터에 의하여 그 에러의 위치가 알려져 있을때에는 그들 에러를 정확하게 정정할 수 있다.In this case, since the Q codeword and the P codeword include two bytes of Q and P parity, respectively, an error of one byte can be corrected correctly, and the position of the error is known in advance by a pointer even for an error of two bytes. Can correct these errors accurately.

이러한 코드워드에 대해서 다음의 수학식 1과 같은 연산을 하면 신드롬 S0와 S1을 구할 수 있다.Syndrome S0 and S1 can be obtained by performing the same operation as the following Equation 1 on the codeword.

Figure kpo00002
Figure kpo00002

상기 수학식 1에서 r은 각 코드워드내의 바이트 데이터를 의미하며 데이터의 순서를 나타내는 i는 도 8의 코드워드 구조에서 인덱스와 같은 것으로, i=0은 인덱스가 0인 경우와, 그리고 i=n-1은 도 8에서 인덱스가 44인경우(Q 코드워드 경우), 또는 인덱스가 25인 경우(P 코드워드 경우)에 각각 해당된다.In Equation 1, r denotes byte data in each codeword, and i, which indicates the order of data, is the same as an index in the codeword structure of FIG. 8, i = 0 is equal to the case where the index is 0, and i = n -1 corresponds to the case where the index is 44 (Q codeword case) or the index is 25 (P codeword case) in FIG.

이와같이 신드롬 S0,S1이 구해지면 다음과 같이 에러정정을 행할 수 있다.In this way, when the syndromes S0 and S1 are obtained, error correction can be performed as follows.

S0와 S1이 모두 0일때 : 에러가 없는 경우When both S0 and S1 are 0: no error

S0가 0이 아니거나 S1이 0이 아닐때 : 에러가 있는 경우When S0 is not 0 or S1 is not 0: If there is an error

상기에서 에러가 있는 경우에는 다음의 수학식 2와 같이 에러값 및 에러 위치를 구할 수 있다.If there is an error in the above, an error value and an error position can be obtained as in Equation 2 below.

에러값 = S0, 에러위치 = S1/S0Error value = S0, error location = S1 / S0

이때, 구해진 에러의 위치가 코드워드내에 존재하지 않을때는 정정불가능의 상태이나 만일 C2 에러 포인터등에 의해 코드워드내의 에러 위치 2개를 알고 있을 경우에는 에러 위치를 X1, X2라 할때 다음의 수학식 3을 이용하면 에러값을 구할 수 있다.At this time, if the obtained error position does not exist in the codeword, the state cannot be corrected, or if two error positions in the codeword are known by the C2 error pointer, the error equation is X1 and X2. Use 3 to get the error value.

Figure kpo00003
Figure kpo00003

이와같이 에러위치와 에러값을 알 수 있으므로 에러정정을 수행할 수 있는데 지금까지의 사칙연산은 모두 갈로아필드(Galois Field)라고 하는 수학적으로 정의된 집합체에서 정의되는 사칙연산이다.In this way, the error location and error value can be known, and error correction can be performed. All the four arithmetic operations so far are arithmetic operations defined in a mathematically defined aggregate called Galois Field.

여기서 기술한 에러정정에 대한 사항은 기본적으로 CD-ROM의 국제규격인 옐로우 북(Yellow Book)(ISO/IEC 10149) 및 에러정정에 관한 일반적인 텍스트 북에 자세히 기술되어 있으므로 상세한 설명은 생략한다.The error correction described here is basically described in detail in the Yellow Book (ISO / IEC 10149), which is an international standard of the CD-ROM, and a general textbook on error correction, and thus a detailed description thereof will be omitted.

도 9는 본 발명에 따른 CD-ROM용 디코더의 상세 블럭도이다.9 is a detailed block diagram of a decoder for a CD-ROM according to the present invention.

도 9를 보면, 상기 버퍼 메모리(60)에 리드/라이트 신호 및 해당 어드레스를 제공하기 위한 메모리 인터페이스(61)와, 상기 메모리 인터페이스(61)로 리드/라이트 신호를 출력하고 어드레스 생성에 필요한 코드워드의 종류(codeid)와 각 코드워드내의 순서를 의미하는 인덱스를 출력하는 제어기(76)와, 상기 제어용 마이콤(58)으로부터 출력되는 버퍼 메모리(60)의 데이터 저장 영역과 C2 에러포인터 저장 영역의 선두 어드레스와 제어기(76)로부터 코드워드의 종류와 인덱스를 제공받아 버퍼 메모리(60)에 필요한 어드레스를 생성하여 메모리 인터페이스(61)를 통해 출력하는 메모리 어드레스 생성기(62)와, 상기 메모리 인터페이스(61)를 통해 한 코드워드내의 모든 데이터 바이트가 버퍼 메모리(60)로부터 리드되면 신드롬을 계산하는 신드롬 계산부(72)와, 상기 신드롬 계산기(72)의 출력을 이용하여 1 에러 위치를 판별하는 1 에러위치 판별기(73)와, 상기 신드롬 계산기(72)의 출력을 이용하여 에러값을 생성하는 에러값 생성기(74)와, C2 에러 포인터가 설정되어 있는 데이터가 해당하는 P 코드워드에 에러 포인터를 설정하는 P 계열 에러 포인터 설정기(63)와, 상기 P 계열 에러 포인터 설정기에서 설정된 에러 포인터를 해당 비트에 저장하는 P 계열 에러 포인터 레지스터(64)와, 상기 P 계열 에러 포인터 레지스터(64)에 저장된 P 계열 에러 포인터를 이용하여 2 에러 위치를 판별하여 제어기(76)로 출력하는 2 에러 위치 판별기(67)와, 상기 P 계열 에러 포인터 레지스터(64)에 저장된 P 계열 에러 포인터수를 합하여 제어기(76)로 출력하는 에러 포인터수 합산기(68)와, Q 코드워드 에러정정시에 상기 1 에러 위치 판별기(73)에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 에러 포인터수 합산기(68)에서 구해진 에러 포인터수가 2가 넘으면 Q 코드워드의 codeid에 따른 Q 계열 에러 포인터를 설정하는 Q 계열 에러 포인터 설정기(65)와, 상기 Q 계열 에러 포인터 설정기(65)에서 설정된 에러 포인터를 해당 비트에 저장하는 Q 계열 에러 포인터 레지스터(66)와, 상기 Q 계열 에러 포인터 레지스터(66)에 저장된 Q 계열 에러 포인터를 이용하여 2 에러 위치를 판별하여 제어기(76)로 출력하는 2 에러 위치 판별기(70)와, 상기 Q 계열 에러 포인터 레지스터(66)에 저장된 Q 계열 에러 포인터수를 합하여 제어기(76)로 출력하는 에러 포인터수 합산기(69)를 포함하여 구성된다.9, a memory interface 61 for providing a read / write signal and a corresponding address to the buffer memory 60, and a codeword for outputting a read / write signal to the memory interface 61 and generating an address. A controller 76 for outputting an index indicating the type of codeid and an order within each codeword, and a head of a data storage area and a C2 error pointer storage area of the buffer memory 60 output from the control microcomputer 58; A memory address generator 62 which receives the type and the index of the codeword from the address and the controller 76 and generates an address necessary for the buffer memory 60 and outputs it through the memory interface 61; A syndrome calculation unit 72 for calculating a syndrome when all data bytes in one codeword are read from the buffer memory 60 through 1 error position discriminator 73 for determining 1 error position using the output of the calculator 72, an error value generator 74 for generating an error value using the output of the syndrome calculator 72, and C2. A P series error pointer setter 63 for setting an error pointer to a P codeword corresponding to data in which the error pointer is set, and a P series error for storing the error pointer set in the P series error pointer setter in a corresponding bit. A two error position discriminator 67 for discriminating two error positions by using a pointer register 64, a P series error pointer stored in the P series error pointer register 64, and outputting the two error positions to the controller 76; An error pointer number adder 68 that adds the number of P series error pointers stored in the series error pointer register 64 to the controller 76, and the first error position discriminator 73 at the time of Q codeword error correction;Q series error pointer setter which sets the Q series error pointer according to the codeid of the Q code word if the number of error pointers obtained by the error pointer number adder 68 exceeds 2 when the position is not present in the code word. ), A Q series error pointer register 66 for storing the error pointer set in the Q series error pointer setter 65 in a corresponding bit, and a Q series error pointer stored in the Q series error pointer register 66. 2 error position discriminator 70 for determining the 2 error positions and outputting the result to the controller 76 and the number of Q series error pointers stored in the Q series error pointer register 66 and outputting the result to the controller 76. The pointer number summer 69 is comprised.

이와같이 구성된 도 9에서 메모리 인터페이스(61)는 제어용 마이콤(58)으로부터 공급되는 입력 타이밍 신호 BCLK, LATCH에 따라 CD용 디코더(54)로부터 공급되는 신호 즉, 데이터와 C2 에러 포인터를 외부의 버퍼 메모리(60)에 저장한다.In this configuration shown in Fig. 9, the memory interface 61 receives signals supplied from the decoder 54 for CD according to the input timing signals BCLK and LATCH supplied from the control microcomputer 58, that is, data and C2 error pointers. 60).

이때, 제어기(76)는 상기 메모리 인터페이스(61)를 통해 라이트 신호를 요청하고, 메모리 어드레스 생성기(62)는 버퍼 메모리(60)의 저장 어드레스를 메모리 인터페이스(61)를 통해 공급한다.In this case, the controller 76 requests a write signal through the memory interface 61, and the memory address generator 62 supplies a storage address of the buffer memory 60 through the memory interface 61.

상기 버퍼 메모리(60)에 데이터 및 C2 에러 포인터를 저장하는데 필요한 선두 어드레스는 제어용 마이콤(58)으로부터 공급되는데, 데이터 저장 영역은 SECBASE부터 데이타를, C2 에러 포인터 저장 영역은 C2POBASE부터 C2 에러 포인터를 연속적으로 저장한다.The head address necessary for storing data and the C2 error pointer in the buffer memory 60 is supplied from the controlling microcomputer 58, where the data storage area is data from SECBASE, and the C2 error pointer storage area is C2POBASE to C2 error pointers. Save as.

그리고나서, 제어기(76)는 상기 제어용 마이콤(58)으로부터 정정시작명령(ECCSTART)을 입력받아 정정 처리하려는 코드워드의 종류를 나타내는 codeid와 각 코드워드내의 순서를 의미하는 인덱스를 메모리 어드레스 생성기(62)에 순차적으로 출력하고, 메모리 어드레스 생성기(62)는 제어기(76)에서 출력되는 codeid와 인덱스를 이용하여 버퍼 메모리(60)의 어드레스를 생성한 후 메모리 인터페이스(61)를 통해 버퍼 메모리(60)에 공급한다.Then, the controller 76 receives the correction start command (ECCSTART) from the control microcomputer 58, stores a codeid indicating the type of codeword to be corrected, and an index indicating an order within each codeword. ), The memory address generator 62 generates the address of the buffer memory 60 using the codeid and the index output from the controller 76 and then the buffer memory 60 through the memory interface 61. To feed.

이와동시에 제어기(76)로부터 메모리 인터페이스(61)로 리드 요청신호가 출력되고, 메모리 인터페이스(61)는 상기 메모리 어드레스 생성기(62)에서 제공되는 어드레스에 저장된 데이터를 버퍼 메모리(60)로부터 읽어내어 신드롬 계산기(72)로 출력한다.At the same time, a read request signal is output from the controller 76 to the memory interface 61, and the memory interface 61 reads the data stored at the address provided by the memory address generator 62 from the buffer memory 60 to the syndrome. Output to calculator 72.

상기 신드롬 계산기(72)는 한 코드워드내의 모든 데이터 바이트가 읽어지면 신드롬 S0, S1을 계산하여 1 에러 위치 판별기(73)와 에러값 생성기(74)에 공급하여 각각 에러 위치와 에러값을 구한다.The syndrome calculator 72 calculates syndromes S0 and S1 when all data bytes in one codeword are read and supplies them to one error position discriminator 73 and error value generator 74 to obtain the error position and error value, respectively. .

이때, 상기 에러값 생성기(74)에서 구해진 에러값은 배타적 논리합 회로(75)에 입력되어 정정 동작이 수행되고, 1 에러 위치 판별기(73)에서 구해진 에러 위치는 제어기(76)로 입력되어 구해진 에러의 위치가 그 코드워내에 속하는지의 여부를 판단하게 된다.At this time, the error value obtained by the error value generator 74 is input to the exclusive OR circuit 75 to perform a corrective operation, and the error position obtained by the one error position discriminator 73 is input to the controller 76 to obtain It determines whether the location of the error belongs to the codeword.

만일, 구해진 에러의 위치가 그 코드워드내에 속한다면 제어기(76)는 구해진 에러위치를 인덱스 정보로 하여 메모리 어드레스 생성기(62)로 출력시켜, 메모리 어드레스 생성기(62)가 정정하려고 하는 어드레스를 메모리 인터페이스(61)로 출력시키게하고, 이와동시에 리드 요청신호를 메모리 인터페이스(61)로 출력한다.If the location of the obtained error is within the codeword, the controller 76 outputs the address to the memory address generator 62 using the obtained error location as index information, and outputs the address that the memory address generator 62 attempts to correct. And a read request signal to the memory interface 61 at the same time.

상기 메모리 인터페이스(61)는 버퍼 메모리(60)의 해당 어드레스로부터 데이터를 읽어와 배타적 논리합 회로(75)로 출력한다.The memory interface 61 reads data from the corresponding address of the buffer memory 60 and outputs the data to the exclusive OR circuit 75.

상기 배타적 논리합 회로(75)는 상기 에러값 생성기(74)로부터 출력되는 에러값과 버퍼 메모리(60)로부터 읽어지는 데이터를 배타적 논리합하여 데이터를 정정하고, 정정된 데이터는 메모리 인터페이스(61)를 통해 버퍼 메모리(60)에 다시 저장된다.The exclusive OR circuit 75 corrects the data by performing an exclusive OR on the error value output from the error value generator 74 and the data read from the buffer memory 60, and the corrected data is stored through the memory interface 61. It is stored in the buffer memory 60 again.

즉, 상기 배타적 논리합 회로(75)에서 배타적 논리합이 구해지면 제어기(37)는 메모리 인터페이스(61)로 라이트 요청 신호를 출력하고, 메모리 인터페이스(61)를 통해 버퍼 메모리(60)에는 메모리 어드레스 생성기(62)로부터 출력되는 어드레스에 배타적 논리합 회로(75)에서 출력되는 정정 데이터가 저장된다.That is, when the exclusive OR is obtained from the exclusive OR circuit 75, the controller 37 outputs a write request signal to the memory interface 61, and a memory address generator (B) through the memory interface 61 to the buffer memory 60. The correction data output from the exclusive OR circuit 75 is stored in the address output from 62.

이와같은 동작을 모든 Q 코드워드에 대해서 행하면 다음엔 P 코드워드에 대해서 같은 동작을 반복하며, 반복 정정모드가 설정되어 있지 않다면 전체 에러 정정동작을 끝내고, 반복 정정 모드라면 지정된 반복횟수만큼 에러정정 동작을 수행한다.If the above operation is performed for all Q codewords, the same operation is repeated for the P codeword. If the repeat correction mode is not set, the entire error correction operation is terminated. If the repeat correction mode is used, the error correction operation is performed for a specified number of repetitions. Perform.

이때, 제어기(37)로 입력되는 RPTON 신호는 반복정정모드 유무를 나타내고, RPTCNT 신호는 반복정정횟수를 나타내며, 상기 제어용 마이콤(58)으로부터 제공된다.At this time, the RPTON signal input to the controller 37 indicates the presence or absence of the repeat correction mode, the RPTCNT signal indicates the number of repeat correction times, and is provided from the control micom 58.

따라서, 상기 제어기(37)는 반복정정모드(RPTON)가 액티브되어 있다면 지정하는 반복정정횟수(RPTCNT)만큼 상기된 에러정정동작을 수행하도록 제어신호들을 출력한다.Accordingly, the controller 37 outputs control signals to perform the above-described error correction operation by the specified repetition correction number RPTCNT if the repetition correction mode RPTON is active.

한편, CD용 디코더(54)로부터 데이터와 C2 에러 포인터가 입력될때에 P 계열 에러 포인터 설정기(63)는 C2 에러 포인터가 설정되어 있는 데이터가 해당하는 P 코드워드에 1개의 에러 포인터를 설정하도록 하는데, 이것을 기억하는 것이 P 계열 에러 포인터 레지스터(64)이다.On the other hand, when data and a C2 error pointer are input from the CD decoder 54, the P series error pointer setter 63 sets one error pointer to the P codeword to which the data to which the C2 error pointer is set corresponds. The P series error pointer register 64 stores this.

예를들어, 도 6과 같은 데이터중에서 12 바이트 싱크후의 첫번째 데이터(1 섹터내의 어드레스 12에 해당)와 세번째 어드레스(1 섹터내의 어드레스 14에 해당)에 C2 에러 포인터가 설정된채로 CD용 디코더(54)로부터 P 계열 에러 포인터 설정기(63)로 입력된다면, P 계열 에러 포인터 설정기(63)는 첫번째 데이터가 codeid=0인 P 코드워드에 해당함을 판단하여 P 계열 에러 포인터 레지스터(64)의 첫번째 비트에 에러 포인터를 설정하고, 또한 세번째 데이터가 codeid=1인 P 코드워드에 해당함을 판단하여 P 계열 에러 포인터 레지스터(64)의 두번째 비트에 에러 포인터를 설정하도록 한다.For example, in the data shown in Fig. 6, the CD decoder 54 with the C2 error pointer set at the first data (corresponding to address 12 in one sector) and the third address (corresponding to address 14 in one sector) after 12-byte sync. Input from the P series error pointer setter 63, the P series error pointer setter 63 determines that the first data corresponds to a P codeword with codeid = 0, so that the first bit of the P series error pointer register 64 An error pointer is set at, and it is determined that the third data corresponds to a P codeword having codeid = 1, so that the error pointer is set at the second bit of the P series error pointer register 64.

여기서, 세번째 데이터가 codeid=1인 것은 패리티를 포함한 데이터가 짝수와 홀수층으로 분리되어 각각에 대해 같은 형태의 알고리즘으로 P 및 Q 패리티를 생성하고 있기 때문이다.Here, the third data is codeid = 1 because data including parity is divided into even and odd layers to generate P and Q parity using the same algorithm for each.

따라서, 계속하여 입력되는 데이터에 대해서도 입력되는 C2 에러 포인터를 검사하여 C2 에러 포인터가 설정되어 있을때는 C2 에러 포인터가 가리키는 데이터가 속하는 P 코드워드의 codeid를 판단하여 해당하는 P 계열 에러 포인터 레지스터(64)의 비트에 에러 포인터를 설정하도록 한다.Therefore, when the C2 error pointer is set and the C2 error pointer is also set, the codeid of the P codeword to which the data pointed to by the C2 error pointer belongs is determined, and the corresponding P series error pointer register 64 is determined. Set an error pointer to the bit of).

이렇게 하면, 상기된 Q 코드워드의 에러정정시에 1 에러 위치 판별기(73)의 출력인 에러위치가 코드워드내에 존재하지 않는다고 판단된 경우, P 계열 에러 포인터 레지스터(64)에 설정되어 있는 비트 수를 합산하는 에러 포인터수 합산기(68)의 출력이 2일때 2개의 에러 바이트를 정정하는 이레이저 정정을 할 수 있게된다.In this case, when it is determined that the error position, which is the output of the one error position discriminator 73, does not exist in the codeword at the time of error correction of the above described Q codeword, the number of bits set in the P series error pointer register 64 When the output of the error pointer number adder 68 that sums up is 2, it is possible to perform erasure correction to correct two error bytes.

즉, 에러 포인터 수 합산기(68)의 출력이 2일때는 2개의 에러 위치 X1 및 X2를 2 에러 위치 판별기(67)로부터 알 수 있으므로, 제어기(76)는 상기된 에러정정 방법을 적용하여 2개의 에러 위치에 해당하는 2개의 에러 값을 구한 후 에러 위치는 인덱스 정보로서 메모리 어드레스 생성기(62)로 공급하여 메모리 어드레스 생성기(62)가 수정하려는 버퍼 메모리(60)의 어드레스를 생성하도록 한다.That is, when the output of the error pointer number adder 68 is 2, two error positions X1 and X2 can be known from the 2 error position discriminator 67, so that the controller 76 applies the error correction method described above. After obtaining two error values corresponding to the two error positions, the error positions are supplied to the memory address generator 62 as index information so that the memory address generator 62 generates the address of the buffer memory 60 to be corrected.

또한, 구해진 에러 값은 에러값 생성기(74)를 통해 배타적 논리합 회로(75)로 출력하고, 이러한 과정을 2개의 에러 위치 및 2개의 에러값에 대해 순차적으로 적용하면 상기된 1개의 에러정정 방법과 같은 과정으로 2 에러 정정을 할 수 있다.In addition, the obtained error value is output to the exclusive OR circuit 75 through the error value generator 74, and the process is sequentially applied to the two error positions and the two error values. 2 error correction can be performed in the same process.

한편, 1 에러 위치 판별기(73)의 출력인 에러위치가 코드워드내에 존재하지 않으면서 동시에 에러 포인터수 합산기(68)의 출력도 2가 아닌 경우에는 에러 정정을 할 수 없다고 판단하여 해당하는 Q 코드워드의 codeid에 따른 Q 계열 에러 포인터 레지스터(66)의 비트에 에러 포인터를 설정하도록 Q 계열 에러 포인터 설정기(65)를 통해 제어한다.On the other hand, if the error position that is the output of the one error position discriminator 73 does not exist in the codeword and the output of the error pointer number adder 68 is also not 2, it is determined that error correction cannot be performed. The Q series error pointer setter 65 controls the error pointer to be set in the bits of the Q series error pointer register 66 according to the codeid of the Q code word.

그 결과는 모든 Q 코드워드의 정정 동작이 완료된 후 P 코드워드의 이레이저 정정을 할 때 이용하도록 한다.The result is used for erasure correction of the P codeword after all Q codeword correction operations are completed.

P 코드워드의 에러정정 처리도 마찬가지 방법으로 진행된다.The error correction processing of the P code word is also performed in the same manner.

즉, P 코드워드의 에러정정시에 1 에러 위치 판별기(73)의 출력인 에러위치가 코드워드내에 존재하지 않는다고 판단된 경우, Q 계열 에러 포인터 레지스터(66)에 설정되어 있는 비트 수를 합산하는 에러 포인터수 합산기(69)의 출력이 2일때는 2개의 에러 바이트를 정정하는 이레이저 정정을 할 수 있게된다.That is, when it is determined that the error position that is the output of the one error position discriminator 73 does not exist in the codeword at the time of error correction of the P codeword, the number of bits set in the Q series error pointer register 66 is added up. When the output of the error pointer number adder 69 is two, it is possible to perform erasure correction for correcting two error bytes.

다른점은 상기된 Q 코드워드의 에러정정에서는 이레이저 정정 단계에서 이용하는 P 코드워드의 에러 포인터 수가 모두 43개(편의상 짝수 어드레스에 대한 에러정정 만을 가정한 경우이며 홀수 어드레스에 대한 에러정정까지 모두 포함하면 이것의 2배인 86개이고 에러정정 방법은 짝수 어드레스 경우의 처리와 완전히 동일하여 에러정정 방법의 구체적인 설명에는 필요없으므로 도 9의 회로 구성예에서는 별도로 도시하지 않음.)이므로 P 계열 에러 포인터 레지스터(64)가 43 비트의 레지스터로 구성되나, P 코드워드의 에러정정에서는 Q 코드워드의 수가 모두 26개(마찬가지로 홀수 어드레스 경우를 생각하면 52)이므로 Q 계열 에러 포인터 레지스터(66)가 26 비트의 레지스터로 구성된다.The difference is that in the error correction of the above Q codewords, the number of error pointers of the P codewords used in the erasure correction step is 43 (assuming that only error corrections for even addresses are assumed for convenience and all error corrections for odd addresses are included. The error correction method is 86 times that of 2 times, and the error correction method is exactly the same as that of the even address case, and is not necessary for the detailed description of the error correction method. Is composed of 43 bit registers. However, in error correction of P codewords, the total number of Q codewords is 26 (as is 52 in the case of odd address cases), so that the Q series error pointer register 66 is a 26 bit register. It is composed.

또한, 에러를 정정할 수 없는 상황이 발생하면 P 계열 에러 포인터 설정기(63)를 통해 P 계열 에러 포인터 레지스터(64)에서 처리되는 P 코드워드의 codeid에 해당하는 비트에 에러 포인터를 설정하는 것이다.If an error cannot be corrected, the error pointer is set to a bit corresponding to the codeid of the P codeword processed by the P series error pointer register 64 through the P series error pointer setter 63. .

이렇게 설정된 에러 포인터는 반복정정의 경우에 다시 Q 코드워드의 정정을 행할때 이레이저로서 이용되게 된다.The error pointer thus set is used as an eraser when the Q codeword is corrected again in the case of repeat correction.

지금까지 설명한 에러정정 방법은 결국 이레이저 정정을 할 때 외부 버퍼 메모리(60)로부터 C2 에러 포인터를 읽어들이지 않는 대신에 내부에 각 코드워드(Q 코드워드는 45개 바이트, P 코드워드는 26개 바이트)마다 대응되는 1 비트의 에러 포인터를 두어 매번 외부의 버퍼 메모리(60)를 억세스하지 않고 이레이저 정정 효과를 가질 수 있도록 한 것이다.The error correction method described so far does not read the C2 error pointer from the external buffer memory 60 when erasing the error. Instead, each codeword (45 bytes for the Q codeword and 26 for the P codeword) is used. By providing an error pointer of 1 bit corresponding to each byte), it is possible to have an erasure correction effect without accessing the external buffer memory 60 each time.

도 11은 본 발명에 따른 Q계열 코드워드의 에러정정방법을 나타낸 흐름도로서, 도 9의 회로 구성을 흐름도로 나타낸 것이다.11 is a flowchart illustrating an error correction method of a Q-series codeword according to the present invention, and shows a circuit configuration of FIG.

처음에 1개의 Q 코드워드내의 모든 데이터 바이트 즉, 45개의 바이트가 읽어지면(단계 501), 신드롬 S0, S1을 계산한다(단계 502).First, when all data bytes in one Q codeword, i.e. 45 bytes, are read (step 501), syndromes S0 and S1 are calculated (step 502).

상기 단계 502에서 구해진 신드롬 S0=S1=0인지를 판별하여 0이면 에러가 없다고 판단하고 다음 Q 코드워드에 대한 처리로 진행된다.If it is determined in step 502 that the syndrome S0 = S1 = 0, it is determined that there is no error, and the process proceeds to the next Q codeword.

즉, 단계 504에서 모든 Q 코드워드에 대해서 처리가 되었는지를 판별하여 모든 Q 코드워드에 대해 처리가 되었다고 판별되면 Q 코드워드에 대한 에러정정을 마치고, 모든 Q 코드워드에 대해 처리가 끝나지 않았다고 판별되면 상기 단계 501로 되돌아가 다음 Q 코드워드의 데이터 바이트를 읽어들어 신드롬 S0, S1을 계산한다.That is, if it is determined in step 504 that all Q codewords have been processed, and if it has been determined that all Q codewords have been processed, the error correction for the Q codeword is finished, and if it is determined that the processing is not finished for all Q codewords. Returning to step 501, the data bytes of the next Q codeword are read to calculate syndromes S0 and S1.

한편, 상기 단계 503에서 신드롬 S0=S1=0이 아니라고 판별되면 1 에러 위치 판별기(73)를 동작시켜 에러 위치를 구한다(단계 505).On the other hand, if it is determined in step 503 that syndrome S0 = S1 = 0, 1 error position discriminator 73 is operated to obtain an error position (step 505).

이때, 에러 위치는 상기 단계 502에서 계산된 신드롬 S1/S0 하면 구할 수 있다.In this case, the error position may be obtained by the syndrome S1 / S0 calculated in step 502.

상기 단계 505에서 구한 에러 위치가 코드워드내의 위치 즉, 에러 위치가 Q 코드워드의 인덱스 범위인 0부터 44까지에 속하는지를 판별한다(단계 506).It is discriminated whether or not the error position obtained in the step 505 falls within a position in the codeword, that is, the error position falls from 0 to 44, which is the index range of the Q codeword (step 506).

상기 단계 506에서 에러 위치가 Q 코드워드내에 존재한다고 판별되면 상기된 1 에러정정 방법에 따라 에러값을 구하여 1 에러를 정정한다(단계 507).If it is determined in step 506 that the error position exists in the Q codeword, an error value is obtained according to the above-described one error correction method, and one error is corrected (step 507).

즉, 에러 위치가 Q 코드워드내에 존재한다고 판별되면 에러값 생성기(74)에서는 상기된 수학식 3을 적용하여 에러값을 생성한 후, 배타적 논리합 회로(75)에서 원래의 데이터와 배타적 논리합시켜 에러를 정정한다.That is, if it is determined that the error position exists in the Q code word, the error value generator 74 generates the error value by applying the above equation (3), and then performs an exclusive OR on the original data in the exclusive OR circuit 75 to determine the error. Correct it.

이렇게 정정된 데이터는 제어기(76)의 제어에 따라 메모리 인터페이스(61)를 통해 다시 외부의 버퍼 메모리(60)에 저장된다.The data thus corrected is stored in the external buffer memory 60 through the memory interface 61 under the control of the controller 76.

한편, 상기 단계 506에서 에러 위치가 Q 코드워드내에 존재하지 않는다고 판별되면 즉, 에러위치가 45이상인 경우에는 P 에러 포인터수를 판별한다(단계 508).On the other hand, if it is determined in step 506 that the error position does not exist in the Q codeword, that is, if the error position is 45 or more, the number of P error pointers is determined (step 508).

상기 단계 508에서 P 에러 포인터의 수가 2개라면 상기된 2 에러정정 방법에 따라 2개의 에러 위치 및 2 에러값을 구하여 2 이레이저 정정을 수행한다(단계 509).If the number of P error pointers is two in step 508, two error positions and two error values are obtained according to the two error correction methods described above (step 509).

즉, 에러 포인터수 합산기(68)의 출력이 2이면 2 에러 위치 판별기(67)로부터 2개의 에러 위치 X1, X2를 알 수 있으므로 상기된 수학식 3을 이용하여 2개의 에러위치에 해당하는 2개의 에러 값을 구한 후 에러 위치는 인덱스 정보로서 메모리 어드레스 생성기(62)로 제공하여 수정하려는 어드레스를 생성토록 하고, 구해진 에러값은 에러값 생성기(74)를 통해 배타적 논리합 회로(75)로 출력한다.That is, when the output of the error pointer number adder 68 is 2, two error positions X1 and X2 can be known from the 2 error position discriminator 67, so that the two error positions correspond to the two error positions using Equation 3 described above. After obtaining two error values, the error position is provided as index information to the memory address generator 62 to generate an address to be corrected, and the obtained error value is output to the exclusive OR circuit 75 through the error value generator 74. do.

이와같은 과정을 2개의 에러 위치 및 2개의 에러값에 대해 순차적으로 적용하면 2개의 에러정정을 수행할 수 있다.Applying this process sequentially to two error locations and two error values allows two error corrections to be performed.

정정된 데이터는 다시 메모리 인터페이스(61)를 통해 외부의 버퍼 메모리(60)에 저장된다.The corrected data is again stored in the external buffer memory 60 via the memory interface 61.

한편, 상기 단계 508에서 P 에러 포인터의 수가 2개가 아니면 에러 정정을 할 수 없는 경우로 판단하여 현재 처리되는 Q 코드워드에 해당하는 Q 계열 에러 포인터를 설정한 후(단계 510), 다음 코드워드의 처리를 행한다(단계 504).On the other hand, in step 508, if the number of P error pointers is not two, it is determined that error correction cannot be performed, and after setting the Q sequence error pointer corresponding to the currently processed Q code word (step 510), Processing is performed (step 504).

상기 Q 코드워드에 설정되는 Q 에러 포인터는 Q 코드워드의 정정 동작이 완료된 후 P 코드워드의 이레이저 정정을 할 때 이용된다.The Q error pointer set in the Q codeword is used for erasure correction of the P codeword after the Q codeword correction operation is completed.

즉, 도 12는 본 발명에 따른 P 계열 코드워드의 에러정정방법을 나타낸 흐름도로서, 처음에 1개의 P 코드워드내의 모든 데이터 바이트 즉, 26개의 바이트가 읽어지면(단계 601), 신드롬 S0, S1을 계산한다(단계 602).That is, Fig. 12 is a flowchart showing an error correction method of a P series code word according to the present invention. When all data bytes, that is, 26 bytes in one P code word are first read (step 601), syndromes S0 and S1 are shown. Is calculated (step 602).

상기 단계 602에서 구해진 신드롬 S0=S1=0인지를 판별하여 0이면 에러가 없다고 판단하고 다음 P 코드워드에 대한 처리로 진행된다.If it is determined in step 602 whether the syndrome S0 = S1 = 0, it is determined that there is no error, and the process proceeds to the next P codeword.

즉, 단계 604에서 모든 P 코드워드에 대해서 처리가 되었는지를 판별하여 모든 P 코드워드에 대해 처리가 되었다고 판별되면 P 코드워드에 대한 에러정정을 마치고, 모든 P 코드워드에 대해 처리가 끝나지 않았다고 판별되면 상기 단계 601로 되돌아가 다음 P 코드워드의 데이터 바이트를 읽어들어 신드롬 S0, S1을 계산한다.That is, if it is determined in step 604 that all the P codewords have been processed, and if it has been determined that all of the P codewords have been processed, the error correction for the P codeword is finished, and if it is determined that the processing has not been completed for all the P codewords Returning to step 601, the data bytes of the next P codeword are read to calculate syndromes S0 and S1.

한편, 상기 단계 603에서 신드롬 S0=S1=0이 아니라고 판별되면 에러가 있다고 판단하고 1 에러 위치 판별기(73)를 동작시켜 에러 위치를 구한다(단계 605).On the other hand, if it is determined in step 603 that the syndrome S0 = S1 = 0, it is determined that there is an error, and 1 error position discriminator 73 is operated to obtain an error position (step 605).

이때, 상기 단계 605에서 에러 위치는 상기 단계 602에서 계산된 신드롬 S0, S1을 S1/S0 하면 구할 수 있다.In this case, the error position in step 605 may be obtained by S1 / S0 of syndromes S0 and S1 calculated in step 602.

상기 단계 605에서 구한 에러 위치가 코드워드내의 위치 즉, 에러 위치가 P 코드워드의 인덱스 범위인 0부터 25까지에 속하는지를 판별한다(단계 606).It is discriminated whether or not the error position obtained in step 605 belongs to a position in the codeword, that is, the error position falls from 0 to 25, which is the index range of the P codeword (step 606).

상기 단계 606에서 에러 위치가 P 코드워드내에 존재한다고 판별되면 상기된 1 에러정정 방법에 따라 에러값을 구하여 1 에러를 정정한다(단계 607).If it is determined in step 606 that the error position exists in the P codeword, an error value is obtained according to the one error correction method described above, and one error is corrected (step 607).

즉, 에러 위치가 P 코드워드내에 존재한다고 판별되면 에러값 생성기(74)에서는 상기된 수학식 3을 적용하여 에러값을 생성한 후, 배타적 논리합 회로(75)에서 원래의 데이터와 배타적 논리합시켜 에러를 정정한다.That is, if it is determined that the error position exists in the P codeword, the error value generator 74 generates the error value by applying the above equation (3), and then performs an exclusive OR on the original data in the exclusive OR circuit 75 to determine the error. Correct it.

이렇게 정정된 데이터는 제어기(76)의 제어에 따라 메모리 인터페이스(61)를 통해 다시 외부의 버퍼 메모리(60)에 저장된다.The data thus corrected is stored in the external buffer memory 60 through the memory interface 61 under the control of the controller 76.

한편, 상기 단계 606에서 에러 위치가 P 코드워드내에 존재하지 않는다고 판별되면 즉, 에러위치가 26이상인 경우에는 Q 에러 포인터수를 판별한다(단계 608).On the other hand, if it is determined in step 606 that the error position does not exist in the P codeword, that is, if the error position is 26 or more, the number of Q error pointers is determined (step 608).

상기 단계 608에서 Q 에러 포인터의 수가 2개라면 상기된 2 에러정정 방법에 따라 에러값을 구하여 2개 에러저정을 수행한다(단계 609).If the number of Q error pointers is two in step 608, two error corrections are performed by calculating an error value according to the two error correction methods described above (step 609).

즉, 에러 포인터수 합산기(69)의 출력이 2이면 2 에러 위치 판별기(70)로부터 2개의 에러 위치 X1, X2를 알 수 있으므로 상기된 수학식 3을 이용하여 2개의 에러위치에 해당하는 2개의 에러 값을 구한 후, 에러 위치는 인덱스 정보로서 메모리 어드레스 생성기(62)로 제공하여 정정하려는 어드레스를 생성토록 하고, 구해진 에러값은 에러값 생성기(74)를 통해 배타적 논리합 회로(75)로 출력한다.That is, when the output of the error pointer number adder 69 is 2, the two error positions X1 and X2 can be known from the 2 error position discriminator 70 and thus correspond to the two error positions using Equation 3 described above. After obtaining two error values, the error position is provided as index information to the memory address generator 62 to generate an address to be corrected, and the obtained error value is passed to the exclusive OR circuit 75 through the error value generator 74. Output

이와같은 과정을 2개의 에러 위치 및 2개의 에러값에 대해 순차적으로 적용하면 2개의 에러정정을 수행할 수 있다.Applying this process sequentially to two error locations and two error values allows two error corrections to be performed.

정정된 데이터는 다시 메모리 인터페이스(61)를 통해 외부의 버퍼 메모리(60)에 저장된다.The corrected data is again stored in the external buffer memory 60 via the memory interface 61.

한편, 상기 단계 608에서 Q 에러 포인터의 수가 2개가 아니면 에러 정정을 할 수 없는 경우로 판단하여 현재 처리되는 P 코드워드에 해당하는 P 계열 에러 포인터를 설정한 후(단계 610), 다음 코드워드의 처리를 행한다(단계 604).On the other hand, in step 608, if it is determined that error correction cannot be performed when the number of Q error pointers is not two, the P series error pointer corresponding to the currently processed P code word is set (step 610), and then Processing is performed (step 604).

상기 P 코드워드에 설정되는 P 에러 포인터는 반복 정정시 P 코드워드의 정정 동작이 완료된 후 Q 코드워드의 이레이저 정정을 할 때 이용된다.The P error pointer set in the P codeword is used for erasure correction of the Q codeword after the P codeword correction operation is completed.

도 13은 본 발명에 따른 에러정정 방법의 전체 동작을 간략하게 나타낸 흐름도로서, 제어용 마이콤(58)등의 외부 제어장치로부터 에러정정 시작신호(ECCSTART)가 제어기(76)로 입력되면 Q 계열 에러 포인터가 설정된 Q 계열 에러 포인터 레지스터(66)를 모두 클리어시킨 후(단계 701), 상기된 도 11에서와 같이 Q 코드워드 처리를 행한다(단계 702).Fig. 13 is a flow chart briefly showing the overall operation of the error correction method according to the present invention. When the error correction start signal ECCSTART is input to the controller 76 from an external control device such as a control microcomputer 58, the Q series error pointer. After all of the set Q series error pointer registers 66 are cleared (step 701), Q codeword processing is performed as shown in Fig. 11 (step 702).

여기서, 현재 설정되어 있는 Q 계열 에러 포인터를 모두 클리어시키는 이유는 반복정정을 하는 경우, 반복정정에 따라 정정되어진 코드워드에 대한 에러 포인터를 없애기 위함이다.Here, the reason for clearing all currently set Q series error pointers is to eliminate the error pointers for the codewords that are corrected according to the iteration correction.

이렇게 Q 코드워드에 대한 모든 처리가 끝나면 마찬가지로 P 계열 에러 포인터가 설정된 P 계열 에러 포인터 레지스터(64)를 모두 클리어시킨 후(단계 703), 상기된 도 12에서와 같이 P 코드워드 처리를 행한다(단계 704).After all processing for the Q codeword is completed, the P series error pointer register 64 in which the P series error pointer is set is similarly cleared (step 703), and then P code word processing is performed as shown in FIG. 704).

이후, 모든 P 코드워드에 대한 처리가 끝나면 에러 검출을 행하여(단계 705), 에러가 존재하는지를 판별한다(단계 706).Then, when the processing for all P codewords is finished, error detection is performed (step 705) to determine whether an error exists (step 706).

상기 단계 706에서 에러가 존재하지 않는다고 판별되면 에러정정 과정을 모두 끝내고, 에러가 존재한다고 판별되면 반복 정정 모드인지를 판별한다(단계 707).If it is determined in step 706 that no error exists, all error correction processes are terminated. If it is determined that an error exists, it is determined whether the error is in the repeat correction mode (step 707).

상기 단계 707에서 반복 정정 모드가 아니라고 판별되면 에러가 존재하여도 에러정정 과정을 모두 끝내고 반복 정정 모드라고 판별되면 반복 횟수만큼 에러정정이 수행되었는지를 판별하여 반복 횟수만큼 반복되었으면 에러정정을 모두 마치고 반복 횟수만큼 반복되지 않았으면 상기 단계 701로 되돌아간다(단계 708).If it is determined in step 707 that the process is not in the repeat correction mode, if all errors are present, the process of error correction is completed. If it is determined that the repeat correction mode is performed, it is determined whether the error correction has been performed by the number of iterations. If the number of times has not been repeated, the process returns to the step 701 (step 708).

즉, Q 계열 코드워드의 에러 정정과 P 계열 코드워드의 에러 정정이 모두 수행되어야 반복 횟수가 1 증가한다.That is, the number of repetitions increases by one when both error correction of the Q series codeword and error correction of the P series codeword are performed.

이때, Q 코드워드는 이레이저 정정시 P 계열 에러 포인터를 참조하고, P 코드워드는 이레이저 정정시 Q 계열 에러 포인터를 참조하여 수행하며, 반복 횟수만큼 에러 정정 및 P, Q 계열 에러 포인터의 클리어와 설정을 반복한다.At this time, the Q codeword refers to the P series error pointer when erasing the eraser, and the P codeword refers to the Q series error pointer when erasing the eraser, and the number of repetitions corrects the error and clears the P and Q series error pointers. Repeat the setting.

이상에서와 같이 본 발명에 따른 디지탈 데이터의 에러정정 장치 및 방법에 의하면, 한개의 어드레스에 8비트, 또는 2개의 바이트를 한번에 억세스하도록 16비트의 데이터 폭을 갖는 메모리를 사용하고, 상기 메모리 맵은 데이터 저장 영역과 C2 에러 포인터 영역으로 나누어 데이터 저장 영역에는 2352 바이트 단위로 데이터를 저장하고, C2 에러 포인터 영역에는 294 바이트 단위로 C2 에러 포인터를 저장한 후 에러 정정시 및 호스트 컴퓨터에 전송시에 필요한 데이터 및 C2 에러 포인터를 버퍼 메모리의 각각의 어드레스 공간에서 억세스함으로써, 요즘과 같은 대용량의 데이터 버퍼 메모리(통상 256K 바이트 이상)를 사용하는 CD-ROM 드라이버에서 실용성을 높임과 동시에 메모리의 낭비를 없애 비용을 절감시킨다.As described above, according to the error correction apparatus and method for digital data according to the present invention, a memory having a data width of 16 bits is used to access 8 bits or 2 bytes at a time in one address. The data is divided into a data storage area and a C2 error pointer area, and data is stored in a 2352 byte unit in the data storage area, and a C2 error pointer is stored in a 294 byte unit in the C2 error pointer area. By accessing data and C2 error pointers from each address space of the buffer memory, the CD-ROM driver using a large data buffer memory (typically 256K bytes or more) increases the practicality and eliminates the waste of memory. Saves.

또한, Q 코드워드의 처리시 1 코드워드를 읽어와 신드롬을 계산하여 에러 위치를 판별하고 에러 위치가 코드워드내에 위치하면 1 에러정정 방법에 따라 1 에러를 정정하고, 코드워드내에 위치하지 않으면서 P 에러 포인터수가 2이면 2 에러정정 방법에 따라 2개 에러 정정을 수행하며 코드워드내에 위치하지 않으면서 P 에러 포인터수가 2가 아니면 현재 처리되는 Q 코드워드에 해당하는 Q 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 행하고, Q 코드워드의 처리가 끝나면 P 코드워드의 처리시 1 코드워드를 읽어와 신드롬을 계산하여 에러 위치를 판별하고 에러 위치가 코드워드내에 위치하면 1 에러정정 방법에 따라 1 에러를 정정하고, 코드워드내에 위치하지 않으면서 Q 에러 포인터수가 2이면 2 에러정정 방법에 따라 2개 에러 정정을 수행하며 코드워드내에 위치하지 않으면서 Q 에러 포인터수가 2가 아니면 현재 처리되는 P 코드워드에 해당하는 P 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 행하는 과정을 지정된 반복 횟수만큼 반복하여 에러를 정정함으로써, 이레이저 정정 능력을 향상시킨다.In processing Q codewords, one codeword is read and a syndrome is calculated to determine an error position. If the error position is located within the codeword, one error is corrected according to the one error correction method, and the error code is not located within the codeword. If the number of P error pointers is 2, two error corrections are performed according to the 2 error correction method.If the number of P error pointers is not 2 and the number of P error pointers is not 2, after setting the Q series error pointers corresponding to the currently processed Q codewords, After the processing of the Q codeword, when the processing of the P codeword is completed, one codeword is read and the syndrome is calculated to determine the error position. 1 Correct the error, and if the number of Q error pointers is not 2 within the codeword, perform 2 error corrections according to the 2 error correction method. If the number of Q error pointers is not 2 and not located within the word, the P series error pointer corresponding to the P codeword currently being processed is set, and the process of processing the next codeword is repeated by a specified number of repetitions to correct the error. Improve the eraser correction ability.

Claims (14)

광 디스크와,With optical disc, 상기 광 디스크에 광을 조사하고 반사되는 광을 검출하여 데이터를 독출하는 광 픽업과,An optical pickup for irradiating the optical disk with light and detecting reflected light to read data; 상기 광 픽업으로부터 독출된 데이터의 C1 계열과 C2 계열에 대해 에러정정을 수행하여 정정 데이터와 C2 에러 포인터를 출력하는 CD용 디코더와,A CD decoder for performing error correction on the C1 series and the C2 series of data read out from the optical pickup to output correction data and a C2 error pointer; 상기 광 디스크 회전 및 에러정정을 제어하는 제어용 마이콤과,A control microcomputer for controlling the optical disk rotation and error correction; 상기 CD용 디코더로부터 데이터와 C2 에러 포인터를 제공받아 P 코드워드와 Q 코드워드에 대해 에러정정을 수행하는 CD-ROM용 디코더와,A CD-ROM decoder which receives data and a C2 error pointer from the CD decoder and performs error correction on a P codeword and a Q codeword; 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 상기 CD-ROM용 디코더를 통해 제공되는 데이터와 C2 에러 포인터를 각각의 어드레스에 저장하는 외부의 버퍼 메모리를 포함하여 구성됨을 특징으로 하는 디지탈 신호의 에러정정 장치.A digital signal comprising an external buffer memory for storing the data provided through the CD-ROM decoder and the C2 error pointers at respective addresses, the addresses of which are stored in the data storage area and the C2 error point storage area. Error correction device. 제 1 항에 있어서, 상기 CD-ROM용 디코더는The decoder of claim 1, wherein the decoder for CD-ROM is 상기 버퍼 메모리에 리드/라이트 신호 및 해당 어드레스를 제공하기 위한 메모리 인터페이스와,A memory interface for providing a read / write signal and a corresponding address to the buffer memory; 상기 메모리 인터페이스로 리드/라이트 신호를 출력하고 어드레스 생성에 필요한 코드워드의 종류(codeid)와 각 코드워드내의 순서를 의미하는 인덱스를 출력하는 제어기와,A controller for outputting a read / write signal to the memory interface and outputting a codeid required for address generation and an index representing an order within each codeword; 상기 제어용 마이콤으로부터 데이터 저장 영역과 C2 에러포인터 저장 영역의 선두 어드레스를 제공받고 제어기로부터 코드워드의 종류(codeid)와 인덱스를 제공받아 버퍼 메모리에 필요한 어드레스를 생성하여 메모리 인터페이스로 출력하는 메모리 어드레스 생성기와,A memory address generator that receives a head address of a data storage area and a C2 error pointer storage area from the control micom, receives a codeword type and an index from a controller, and generates an address required for a buffer memory and outputs the address to a memory interface; , 상기 메모리 인터페이스를 통해 한 코드워드내의 모든 데이터 바이트가 버퍼 메모리로부터 리드되면 신드롬을 계산하는 신드롬 계산부와,A syndrome calculation unit for calculating a syndrome when all data bytes in one codeword are read from the buffer memory through the memory interface; 상기 신드롬 계산기의 출력을 이용하여 1 에러 위치를 판별하는 1 에러위치 판별기와,A 1 error position discriminator for discriminating 1 error position using an output of the syndrome calculator, 상기 신드롬 계산기의 출력을 이용하여 에러값을 생성하는 에러값 생성기와,An error value generator for generating an error value using an output of the syndrome calculator; 상기 1 에러위치 판별기에서 판별된 에러위치가 그 코드워드내에 속하면 제어기에서 에러 위치를 인덱스 정보로 하여 메모리 어드레스 생성기로 출력함에 의해 버퍼 메모리로부터 해당 어드레스의 데이터가 리드되면 상기 에러값과 배타적 논리합하여 에러를 정정한 후 다시 버퍼 메모리의 해당 어드레스에 저장하는 에러 정정기로 구성되어,If the error position determined by the first error position discriminator belongs to the codeword, the controller outputs the error position as index information to the memory address generator. When data of the corresponding address is read from the buffer memory, an exclusive logical sum is performed with the error value. An error corrector for correcting the error and storing the error at a corresponding address in the buffer memory. Q 코드워드에 대해 에러정정이 완료되면 P 코드워드에 대해 같은 동작을 반복함을 특징으로 하는 디지탈 신호의 에러정정 장치.And error correction for the Q codeword is repeated for the P codeword. 제 2 항에 있어서,The method of claim 2, C2 에러 포인터가 설정되어 있는 데이터가 해당하는 P 코드워드에 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행하는 P 계열 에러 포인터부와,A P series error pointer which performs the process of setting and storing an error pointer in the P codeword corresponding to the data in which the C2 error pointer is set, for all codeids; 상기 P 계열 에러 포인터부에서 기억된 에러 포인터의 수를 합산하여 제어기로 출력하는 에러 포인터수 합산기와,An error pointer number adder for adding up the number of error pointers stored in the P series error pointer unit and outputting the sum to the controller; 상기 신드롬 계산기의 출력을 이용하여 2 에러 위치를 판별하여 제어기로 출력하는 2 에러 위치 판별기가 더 구비되어,It is further provided with a 2 error position discriminator for determining the 2 error position using the output of the syndrome calculator to output to the controller, Q 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면 상기 에러 포인터수 합산기의 출력에 따라 이레이저 정정을 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.An error correction apparatus for digital signals characterized in that an error is corrected according to the output of the error pointer number adder if the error position obtained by the one error position discriminator does not exist in the codeword during error correction of a Q codeword; . 제 3 항에 있어서,The method of claim 3, wherein Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 에러 포인터수 합산기의 출력이 2이면 상기 2 에러 위치 판별기에서 구해진 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 이레이저 정정을 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.If the error position obtained by the first error position discriminator at the time of Q codeword error correction is not present in the codeword and the output of the error pointer number adder is 2, it corresponds to the two error positions obtained by the second error position discriminator. And calculating two error values from the error value generator and sequentially performing exclusive OR with the data of the corresponding address stored in the buffer memory to perform erasure correction. 제 3 항에 있어서,The method of claim 3, wherein Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 에러 포인터수 합산기의 출력이 2가 아니면 Q 코드워드의 codeid에 따른 Q 계열 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행하는 Q 계열 에러 포인터부와,If the error position obtained by the 1 error position discriminator does not exist in the codeword when correcting the Q codeword error, and the output of the error pointer number adder is not 2, the Q series error pointer according to the codeid of the Q codeword is set. Q series error pointer section which performs the memorization process for all codeids, 상기 Q 계열 에러 포인터부에 기억된 에러 포인터의 수를 합산하여 제어기로 출력하는 에러 포인터수 합산기와,An error pointer number adder for adding up the number of error pointers stored in the Q series error pointer unit and outputting the sum to the controller; 상기 신드롬 계산기의 출력을 이용하여 2 에러 위치를 판별하여 제어기로 출력하는 2 에러 위치 판별기가 더 구비되어,It is further provided with a 2 error position discriminator for determining the 2 error position using the output of the syndrome calculator to output to the controller, P 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면 에러 포인터수 합산기의 출력에 따라 이레이저 정정을 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.And an error correction operation is performed according to the output of the error pointer number adder if the error position obtained by the one error position discriminator does not exist in the codeword at the time of error correction of the P code word. 제 5 항에 있어서,The method of claim 5, P 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 에러 포인터수 합산기의 출력이 2이면 상기 2 에러 위치 판별기에서 구해진 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 에러를 정정함을 특징으로 하는 디지탈 신호의 에러정정 장치.If the error position obtained by the first error position discriminator at the time of error correction of the P codeword does not exist in the codeword and the output of the error pointer number adder is 2, it corresponds to the two error positions obtained by the second error position discriminator. And obtaining two error values from the error value generator, and correcting the error by sequentially ORing the data with the corresponding address stored in the buffer memory. 제 5 항에 있어서,The method of claim 5, P 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 에러 포인터수 합산기의 출력이 2가 아니면 정정 불능으로 판별하여 P 계열 에러 포인터부는 P 코드워드의 codeid에 따른 P 계열 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행하여 다음 Q 코드워드 이레이저 정정시에 이용함을 특징으로 하는 디지탈 신호의 에러정정 장치.When the error correction of the P codeword does not exist in the codeword, the error position obtained by the 1 error position discriminator does not exist in the codeword, and the output of the error pointer number adder is not 2. And setting and storing the P series error pointers according to the codeids for all the codeids to be used for the next Q codeword erasure correction. 제 2 항에 있어서, 상기 제어기는The method of claim 2, wherein the controller 반복 정정 모드이면 지정된 반복 횟수만큼 Q 코드워드 및 P 코드워드에 대해 에러정정을 수행하도록 제어 신호를 출력함을 특징으로 하는 디지탈 신호의 에러정정 장치.And a control signal is output to perform error correction on the Q codeword and the P codeword by the specified number of repetitions in the repetitive correction mode. 광 디스크로부터 데이터를 독출하여 C1 계열과 C2 계열에 대해 에러정정을 수행한 후 정정 데이터와 C2 에러 포인터를 출력하는 디지탈 데이터의 에러 정정장치에 있어서,An error correction apparatus for digital data that reads data from an optical disk, performs error correction on the C1 series and C2 series, and outputs correction data and a C2 error pointer. 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 상기 정정 데이터와 C2 에러 포인터를 각각의 어드레스에 저장하는 외부의 버퍼 메모리와,An external buffer memory in which the addresses of the data storage area and the C2 error point storage area are divided to store the correction data and the C2 error pointer at respective addresses; 상기 버퍼 메모리에 리드/라이트 신호 및 해당 어드레스를 제공하기 위한 메모리 인터페이스와,A memory interface for providing a read / write signal and a corresponding address to the buffer memory; 상기 메모리 인터페이스로 리드/라이트 신호를 출력하고 어드레스 생성에 필요한 코드워드의 종류(codeid)와 각 코드워드내의 순서를 의미하는 인덱스를 출력하는 제어기와,A controller for outputting a read / write signal to the memory interface and outputting a codeid required for address generation and an index representing an order within each codeword; 상기 버퍼 메모리의 데이터 저장 영역의 선두 어드레스, C2 에러포인터 저장 영역의 선두 어드레스와 제어기로부터 코드워드의 종류와 인덱스를 제공받아 버퍼 메모리에 필요한 어드레스를 생성하여 메모리 인터페이스를 통해 출력하는 메모리 어드레스 생성기와,A memory address generator for generating an address required for a buffer memory by receiving a head address of a data storage area of the buffer memory, a head address of a C2 error pointer storage area, and a codeword type and an index from a controller, and outputting an address required through a memory interface; 상기 메모리 인터페이스를 통해 한 코드워드내의 모든 데이터 바이트가 버퍼 메모리로부터 리드되면 신드롬을 계산하는 신드롬 계산부와,A syndrome calculation unit for calculating a syndrome when all data bytes in one codeword are read from the buffer memory through the memory interface; 상기 신드롬 계산기의 출력을 이용하여 1 에러 위치를 판별하는 1 에러위치 판별기와,A 1 error position discriminator for discriminating 1 error position using an output of the syndrome calculator, 상기 신드롬 계산기의 출력을 이용하여 에러값을 생성하는 에러값 생성기와,An error value generator for generating an error value using an output of the syndrome calculator; C2 에러 포인터가 설정되어 있는 데이터가 해당하는 P 코드워드에 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행한 후 에러 포인터수를 합산하고 2 에러 위치를 판별하여 Q 코드워드의 이레이저 정정에 이용하도록 하는 P 계열 에러 판별부와,After setting the C2 error pointer and setting the error pointer to the corresponding P codeword for all codeids, add the number of error pointers and determine the 2 error positions to correct the erasure of the Q codeword. P series error discrimination unit to be used for, Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 P 계열 에러 판별부에서 구해진 에러 포인터수가 2가 아니면 Q 코드워드의 codeid에 따른 Q 계열 에러 포인터를 설정하고 기억하는 과정을 모든 codeid에 대해 수행한 후 에러 포인터수를 합산하고 2 에러 위치를 판별하여 P 코드워드의 이레이저 정정에 이용하도록 하는 Q 계열 에러 판별부와,Q sequence error pointer according to the codeid of the Q codeword if the error position obtained by the 1 error position discriminator at the time of Q codeword error correction does not exist in the codeword and the number of error pointers obtained by the P sequence error discriminating unit is not 2. A Q series error discriminating unit for performing the process of setting and storing the memory for all codeids, summing the number of error pointers and determining 2 error positions to use for erasure correction of P code words; 상기 제어기가 에러 위치를 인덱스 정보로 하여 메모리 어드레스 생성기로 출력함에 의해 버퍼 메모리로부터 해당 어드레스의 데이터가 리드되면 상기 에러값과 배타적 논리합하여 에러를 정정한 후 다시 버퍼 메모리의 해당 어드레스에 저장하는 에러 정정기로 구성되어,If the controller reads the address of the corresponding address from the buffer memory by outputting the error location as index information to the memory address generator, the controller corrects the error by exclusive OR with the error value and stores the data in the corresponding address of the buffer memory. Consist of Q 코드워드에 대해 에러정정이 완료되면 P 코드워드에 대해 같은 동작을 반복하는 과정을 지정된 횟수만큼 반복 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.When the error correction is completed for the Q codeword, the error correction apparatus for a digital signal, characterized in that for repeating the process of repeating the same operation for the P codeword a specified number of times. 제 9 항에 있어서,The method of claim 9, Q 코드워드 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 상기 P 계열 에러 판별부에서 구해진 에러 포인터수가 2이면 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 이레이저 정정을 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.If the error position obtained by the first error position discriminator at the time of Q codeword error correction does not exist in the codeword and the number of error pointers obtained by the P series error discriminating unit is 2, two error values corresponding to two error positions are returned. And erasing correction by sequentially exclusive ORing the data of the corresponding address stored in the buffer memory after obtaining each of the error value generators. 제 9 항에 있어서,The method of claim 9, P 코드워드의 에러정정시에 상기 1 에러 위치 판별기에서 구해진 에러위치가 그 코드워드내에 존재하지 않으면서 Q 계열 에러 판별부에서 구해진 에러 포인터수가 2이면 2개의 에러 위치에 해당하는 2개의 에러값을 상기 에러값 생성기에서 각각 구한 후 버퍼 메모리에 저장된 해당 어드레스의 데이터와 순차적으로 배타적 논리합하여 이레이저 정정을 수행함을 특징으로 하는 디지탈 신호의 에러정정 장치.If the error position obtained by the 1 error position discriminator at the time of error correction of the P code word does not exist in the code word and the number of error pointers obtained by the Q series error discriminating unit is 2, two error values corresponding to the two error positions are returned. And erasing correction by sequentially exclusive ORing the data of the corresponding address stored in the buffer memory after obtaining each of the error value generators. 광 디스크로부터 데이터를 독출하여 C1 계열과 C2 계열에 대해 에러정정을 수행한 후 정정 데이터와 C2 에러 포인터를 출력하는 디지탈 데이터의 에러 정정방법에 있어서,In the error correction method of digital data which reads data from an optical disk, performs error correction on the C1 series and C2 series, and then outputs the correction data and the C2 error pointer. Q 코드워드내의 모든 데이터 바이트가 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 있는 외부의 버퍼 메모리로부터 리드되면 신드롬을 계산하여 에러를 판별하는 제 1 단계와,A first step of determining an error by calculating a syndrome when all data bytes in the Q codeword are read from an external buffer memory in which the addresses of the data storage area and the C2 error point storage area are separated; 상기 제 1 단계에서 에러가 없다고 판별되면 다음 Q 코드워드에 대한 처리로 진행되고 에러가 있다고 판별되면 에러 위치를 구하는 제 2 단계와,A second step of processing the next Q codeword when it is determined that there is no error in the first step and obtaining an error position when it is determined that there is an error; 상기 제 2 단계에서 구한 에러 위치가 코드워드내의 위치에 속하는지를 판별하는 제 3 단계와,A third step of determining whether the error position obtained in the second step belongs to a position in a codeword, 상기 제 3 단계에서 에러 위치가 Q 코드워드내에 존재한다고 판별되면 1 에러 위치와 에러값을 구하여 1 에러를 정정한 후 버퍼 메모리에 저장하는 제 4 단계와,In the third step, if it is determined that the error location exists in the Q codeword, a fourth step of obtaining one error location and an error value, correcting the one error, and storing the result in a buffer memory; 상기 제 3 단계에서 에러 위치가 Q 코드워드내에 존재하지 않는다고 판별되면 P 에러 포인터수가 2개인지를 판별하는 제 5 단계와,A fifth step of determining whether the number of P error pointers is two, if it is determined in the third step that the error position does not exist in the Q codeword; 상기 제 5 단계에서 P 에러 포인터의 수가 2개라면 2개의 에러 위치와 에러값을 구하여 2 에러를 정정한 후 버퍼 메모리에 저장하는 제 6 단계와,In the fifth step, if the number of P error pointers is two, a sixth step of obtaining two error positions and error values, correcting the two errors, and storing them in the buffer memory; 상기 제 5 단계에서 P 에러 포인터의 수가 2개가 아니라고 판별되면 현재 처리되는 Q 코드워드에 해당하는 Q 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 수행하는 제 7 단계를 포함하여 이루어져,In the fifth step, if it is determined that the number of P error pointers is not two, a seventh step of setting a Q sequence error pointer corresponding to the currently processed Q codeword and then performing the next codeword processing is performed. Q 코드워드에 대해 에러정정이 완료되면 P 코드워드에 대해 같은 동작을 반복함을 특징으로 하는 디지탈 신호의 에러정정 방법.When the error correction is completed for the Q code word, the same operation for the P code word is repeated, the error correction method of a digital signal. 제 12 항에 있어서,The method of claim 12, 반복정정 모드이면 Q 코드워드의 에러정정과 P 코드워드의 에러정정을 1회로 하여 지정된 횟수만큼 반복 수행함을 특징으로 하는 디지탈 신호의 에러정정 방법.The method of error correction of a digital signal, characterized in that in the iterative correction mode, the error correction of the Q codeword and the error correction of the P codeword are repeated once a specified number of times. 광 디스크로부터 데이터를 독출하여 C1 계열과 C2 계열에 대해 에러정정을 수행한 후 정정 데이터와 C2 에러 포인터를 출력하는 디지탈 데이터의 에러 정정방법에 있어서,In the error correction method of digital data which reads data from an optical disk, performs error correction on the C1 series and C2 series, and then outputs the correction data and the C2 error pointer. P 코드워드내의 모든 데이터 바이트가 데이터 저장 영역과 C2 에러 포인트 저장 영역의 어드레스가 구분되어 있는 외부의 버퍼 메모리로부터 리드되면 신드롬을 계산하여 에러를 판별하는 제 1 단계와,A first step of determining an error by calculating a syndrome when all data bytes in the P codeword are read from an external buffer memory in which the addresses of the data storage area and the C2 error point storage area are separated; 상기 제 1 단계에서 에러가 없다고 판별되면 다음 P 코드워드에 대한 처리로 진행되고 에러가 있다고 판별되면 에러 위치를 구하는 제 2 단계와,A second step of, if it is determined in the first step that there is no error, proceeds to processing for the next P codeword, and if there is an error, obtaining an error position; 상기 제 2 단계에서 구한 에러 위치가 코드워드내에 속하는지를 판별하는 제 3 단계와,A third step of determining whether the error position obtained in the second step belongs to a codeword, 상기 제 3 단계에서 에러 위치가 P 코드워드내에 존재한다고 판별되면 1 에러 위치와 에러값을 구하여 1 에러를 정정한 후 버퍼 메모리에 저장하는 제 4 단계와,In the third step, if it is determined that the error location exists in the P codeword, a fourth step of obtaining one error location and an error value, correcting the one error, and storing the same in the buffer memory; 상기 제 3 단계에서 에러 위치가 P 코드워드내에 존재하지 않는다고 판별되면 Q 에러 포인터수가 2개인지를 판별하는 제 5 단계와,A fifth step of determining whether the number of Q error pointers is two, if it is determined in the third step that the error position does not exist in the P codeword; 상기 제 5 단계에서 Q 에러 포인터의 수가 2개라면 2개의 에러 위치와 에러값을 구하여 2 에러를 정정한 후 버퍼 메모리에 저장하는 제 6 단계와,In the fifth step, if the number of Q error pointers is two, a sixth step of obtaining two error positions and error values, correcting the two errors, and storing them in the buffer memory; 상기 제 5 단계에서 Q 에러 포인터의 수가 2개가 아니라고 판별되면 현재 처리되는 P 코드워드에 해당하는 P 계열 에러 포인터를 설정한 후 다음 코드워드의 처리를 수행하는 제 7 단계를 포함하여 이루어짐을 특징으로 하는 디지탈 신호의 에러정정 방법.And if it is determined in step 5 that the number of Q error pointers is not two, a seventh step of setting a P sequence error pointer corresponding to a P codeword currently being processed and performing processing of the next codeword may be performed. Error correction method of digital signal to perform.
KR1019970025233A 1997-06-17 1997-06-17 Error correcting apparatus and method for digital signal KR100215807B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970025233A KR100215807B1 (en) 1997-06-17 1997-06-17 Error correcting apparatus and method for digital signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970025233A KR100215807B1 (en) 1997-06-17 1997-06-17 Error correcting apparatus and method for digital signal

Publications (2)

Publication Number Publication Date
KR19990001787A KR19990001787A (en) 1999-01-15
KR100215807B1 true KR100215807B1 (en) 1999-08-16

Family

ID=19509896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970025233A KR100215807B1 (en) 1997-06-17 1997-06-17 Error correcting apparatus and method for digital signal

Country Status (1)

Country Link
KR (1) KR100215807B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100385409B1 (en) * 1999-10-21 2003-05-23 산요 덴키 가부시키가이샤 Apparatus for detecting code error correction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100385409B1 (en) * 1999-10-21 2003-05-23 산요 덴키 가부시키가이샤 Apparatus for detecting code error correction

Also Published As

Publication number Publication date
KR19990001787A (en) 1999-01-15

Similar Documents

Publication Publication Date Title
US4949342A (en) Code error detecting method
JP2605271B2 (en) Error correction and checking device
US6158038A (en) Method and apparatus for correcting data errors
KR100517482B1 (en) Concurrent row/column syndrome generator for a product code
US6003151A (en) Error correction and detection system for mass storage controller
US6363511B1 (en) Device and method for decoding data streams from storage media
US7454691B2 (en) Method and system for encoding digital data for optical recording system
US20040257900A1 (en) Data recording method, recording medium and reproduction apparatus
JPH0267825A (en) Error correcting circuit
JP2004348824A (en) Ecc encoding method and ecc encoding device
US7007222B2 (en) Apparatus for accessing data stored on an optical disc
KR100215807B1 (en) Error correcting apparatus and method for digital signal
KR100361947B1 (en) Error detection circuit applied to disk reproducing apparatus
US7127657B2 (en) System and method for processing digital data while buffering digital data in a buffer memory
JP3993921B2 (en) Storage device
JP2605270B2 (en) Error correction and checking device
US5440571A (en) Circuit of addressing a memory buffer for error correction in a digital audio tape recorder
JP2000010807A (en) Digital data reproducing device
JP3773740B2 (en) Decoding device
JP3279501B2 (en) Error correction and error detection method for mass storage controller
JPH0824269B2 (en) Error correction method
JP3259688B2 (en) Data processing circuit
JP3384402B2 (en) Information reproducing method and information reproducing apparatus
JPH10154941A (en) Error correction circuit
JPS63298776A (en) Error correction processing system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060502

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee