KR20000022714A - Error correction system, error correction method, and data memory with error correction function - Google Patents

Error correction system, error correction method, and data memory with error correction function Download PDF

Info

Publication number
KR20000022714A
KR20000022714A KR1019990033468A KR19990033468A KR20000022714A KR 20000022714 A KR20000022714 A KR 20000022714A KR 1019990033468 A KR1019990033468 A KR 1019990033468A KR 19990033468 A KR19990033468 A KR 19990033468A KR 20000022714 A KR20000022714 A KR 20000022714A
Authority
KR
South Korea
Prior art keywords
ecc block
error correction
row
syndrome
byte
Prior art date
Application number
KR1019990033468A
Other languages
Korean (ko)
Other versions
KR100339452B1 (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 포만 제프리 엘
Publication of KR20000022714A publication Critical patent/KR20000022714A/en
Application granted granted Critical
Publication of KR100339452B1 publication Critical patent/KR100339452B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

PURPOSE: A data memorizing system is provided to manage the error correction in a high speed by reducing the time required at transmitting the data and to effectively improve usage of the first buffer memory device by memorizing the syndrome in the area which is not used. CONSTITUTION: A system comprises a DVD(11), a motor(12), a reading head(13), a reading circuit(16), a digital server processor(18), a formator(20), a DRAM buffer(22), SRAM buffer(24), a decoder(26), a syndrome former(28, 38), an error correcting circuit(30), an MPU(32), and a data bus(36). The syndrome former is placed between the former and the DRAM buffer(22). The syndrome former receives ECC block sequentially from the former(20) and sends the received ECC block to the DRAM buffer(22) and forms the syndrome corresponding to the ECC block. The DRAM buffer sends only the syndrome to the SRAM buffer(24). The SRAM buffer sends the syndrome received from the DRAM buffer to the decoder(26). The error correction circuit inside the decoder manages the error in direction on the basis of received syndrome from the SRAM buffer.

Description

오류 정정 시스템, 오류 정정 방법 및 오류 정정 기능을 갖는 데이타 기억 시스템{ERROR CORRECTION SYSTEM, ERROR CORRECTION METHOD, AND DATA MEMORY WITH ERROR CORRECTION FUNCTION}ERROR CORRECTION SYSTEM, ERROR CORRECTION METHOD, AND DATA MEMORY WITH ERROR CORRECTION FUNCTION}

본 발명은 오류 정정 시스템 및 오류 정정 기능을 갖는 데이타 기억 시스템에 관한 것으로, 더욱 상세히 말하면, DVD(Digital Versatile Disk)에서 보여지는 바와 같은 곱셈 부호 형식의 오류 정정 부호를 이용한 오류 정정 시스템에 있어서의 데이타 전송 효율을 높임으로써, 오류 정정 처리에 요하는 시간을 단축하기 위한 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an error correction system and a data storage system having an error correction function. More specifically, the present invention relates to data in an error correction system using an error correction code in the form of a multiplication code as shown in a digital versatile disk (DVD). The present invention relates to a technique for shortening the time required for an error correction process by increasing transmission efficiency.

광 디스크에 대표되는 DVD는 일반적으로, 곱셈 부호 형식의 오류 정정 부호를 이용한 오류 정정 기술을 이용하고 있고, 오류 정정 부호로서는 리드 솔로몬 부호(reed-solomon code)가 이용된다. 도 1은, 곱셈 부호 형식의 오류 정정 부호를 이용한 기본의 데이타 포맷을 나타내고 있다. 데이타 바이트는, k1행×k2열에 배열된다. 알려져 있는 바와 같이, 행(수평) 방향으로는 PI 부호(Parity-Inner Code) 또는 내 부호라 불리는 행 오류 정정 부호가 붙여지고, 열(수직) 방향으로는, PO 부호(Parity-Outer Code) 또는 외부호라 불리는 열 오류 정정 부호가 붙여진다. PI 부호 및 PO 부호가 붙여진 데이타 바이트의 배열 1은 ECC 블럭이라 불린다. 알려져 있는 바와 같이, PI 부호 및 PO 부호는 행 데이타 및 열 데이타에 기초하여 부호 생성 다항식에 의해 만들어진다.A DVD represented by an optical disc generally uses an error correction technique using an error correction code in the form of a multiplication code, and a reed-solomon code is used as the error correction code. Fig. 1 shows a basic data format using an error correcting code in a multiplication code format. The data bytes are arranged in k1 rows x k2 columns. As is known, a row error correction code called a PI code (Parity-Inner Code) or an inner code is given in the row (horizontal) direction, and a PO code (Parity-Outer Code) or in the column (vertical) direction. A column error correction code called an outer code is assigned. The array 1 of data bytes with PI code and PO code is called an ECC block. As is known, PI and PO codes are generated by sign generation polynomials based on row data and column data.

ECC 블럭의 포맷은 DVD의 표준에 의해 정해져 있고, k1은 192행, k2는 172바이트, 각 행의 PI는 10바이트, PO는 16행이다. 따라서, ECC 블럭의 행 방향의 길이 Y는 182바이트이고, ECC 블럭의 열 방향의 길이 Z는 208행이다. 즉, ECC 블럭의 208행의 각각은 182개의 바이트를 포함하고, ECC 블럭의 182열의 각각은 208개의 바이트를 포함한다. ECC 블럭은 16개의 섹터 S1-S16을 포함하며, 각 섹터는 12개의 바이트 행 L1-L12를 포함한다. 바이트 행 L1-L12의 각각은, 172개의 데이타 바이트 및 10개의 PI 바이트를 포함한다. PO는 16개의 PO 바이트 행 PO1-PO16을 포함한다.The format of the ECC block is determined by the DVD standard, where k1 is 192 rows, k2 is 172 bytes, PI of each row is 10 bytes, and PO is 16 rows. Therefore, the length Y in the row direction of the ECC block is 182 bytes, and the length Z in the column direction of the ECC block is 208 rows. That is, each of the 208 rows of the ECC block contains 182 bytes, and each of the 182 columns of the ECC block contains 208 bytes. The ECC block contains sixteen sectors S1-S16, each sector comprising twelve byte rows L1-L12. Each of the byte rows L1-L12 contains 172 data bytes and 10 PI bytes. The PO contains 16 PO byte lines PO1-PO16.

도 2는 DVD의 데이타 트랙에 기록되는 ECC 블럭 기록 포맷을 개략적으로 나타내고 있다. 도 1의 16개의 PO 바이트 행 PO1-PO16은 16개의 섹터로 각각 분배된다. 예를 들면, 섹터 S1은 12개의 바이트 행 L1-L12와, 관련하는 1개의 PO 바이트 행 PO1과의 조합을 포함하고, 섹터 S16은 12개의 바이트 행 L1-L12와, 관련하는 1개의 PO 바이트 행 P16(도시하지 않음)과의 조합을 포함한다.2 schematically shows an ECC block recording format recorded on a data track of a DVD. The 16 PO byte rows PO1-PO16 of FIG. 1 are divided into 16 sectors each. For example, sector S1 includes a combination of twelve byte rows L1-L12 and one PO byte row PO1 associated therewith, and sector S16 includes twelve byte rows L1-L12 and one PO byte row associated therewith. Combination with P16 (not shown).

도 1의 ECC 블럭은 도 2의 기록 포맷으로 변환되어 DVD에 기록된다. 일반적으로는, 도 1의 ECC 블럭은 도 2의 기록 포맷으로 변환되고, 프레임 동기 신호가 부가되어, 8/16 변조(EFM plus 변조)되어 DVD에 기록된다. 판독 시에는, DVD로부터 판독된 신호가 8/16 복조되고, 프레임 동기 신호가 제거되어, 도 2의 ECC 블럭 포맷에 조립된다.The ECC block of FIG. 1 is converted to the recording format of FIG. 2 and recorded on the DVD. Generally, the ECC block of FIG. 1 is converted to the recording format of FIG. 2, a frame synchronizing signal is added, and 8/16 modulation (EFM plus modulation) is recorded on DVD. At the time of reading, the signal read out from the DVD is 8/16 demodulated, the frame synchronizing signal is removed, and assembled in the ECC block format of FIG.

오류 정정 처리는, 일반적으로, 우선 행 방향에서 오류 정정을 행하고, 행 방향에서 소정수를 넘는 오류 바이트가 검출되었을 때, 열 방향에서 소실(이레이저) 정정을 행한다. DVD의 경우, 행 방향의 리드 솔로몬 부호의 해밍(hamming) 거리는 11, 열 방향의 리드 솔로몬 부호의 해밍 거리는 17이다. 행 방향의 최대 오류 정정수는 5바이트이고, 열 방향의 최대 오류 정정수는 8바이트이다. 그러나, 행 방향의 최대오류 정정수는 통상, 5보다도 적은 수, 예를 들면 3바이트로 제한되고, 3바이트를 넘는 오류가 검출되었을 때에는 열 방향에서 소실 정정을 행한다.In general, the error correction process first performs error correction in the row direction, and performs loss (eraser) correction in the column direction when more than a predetermined number of error bytes are detected in the row direction. In the case of a DVD, the Hamming distance of the Reed Solomon code in the row direction is 11 and the Hamming distance of the Reed Solomon code in the column direction is 17. The maximum error correction number in the row direction is 5 bytes, and the maximum error correction number in the column direction is 8 bytes. However, the maximum error correction number in the row direction is usually limited to less than five, for example, three bytes, and when an error exceeding three bytes is detected, the loss correction is performed in the column direction.

다음에, 도 3을 참조하여 종래의 DVD 시스템에 있어서의 오류 정정 순서에 대해 설명한다. ECC 블럭 데이타는 도 2에 대해 설명한 기록 포맷으로, 광 디스크와 같은 DVD(11)에 기억된다. 디스크(11)는 스핀들 모터(12)에 의해 회전된다. 안내봉(14) 상에서 이동하는 판독 헤드(13)는 DVD(11)로부터 기록 데이타 및 서보 정보을 판독하고, 이들을 판독 회로(16)로 보낸다. 판독 회로(16)는 판독된 기록 데이타 및 서보 정보를 포맷터(20)로 보낸다. 스핀들 모터(12)의 회전 및 안내봉(14) 상에서의 판독 헤드(13)의 이동은 서보 정보에 응답하는 디지탈 서보 프로세서(18)에 의해 제어된다.Next, an error correction procedure in the conventional DVD system will be described with reference to FIG. The ECC block data is stored in the DVD 11, such as an optical disc, in the recording format described with reference to FIG. The disk 11 is rotated by the spindle motor 12. The read head 13 moving on the guide rod 14 reads the write data and the servo information from the DVD 11 and sends them to the read circuit 16. The read circuit 16 sends the read write data and the servo information to the formatter 20. The rotation of the spindle motor 12 and the movement of the read head 13 on the guide rod 14 are controlled by the digital servo processor 18 in response to servo information.

도 3에 있어서, 파선 및 그 파선으로 도시된 괄호 안의 숫자는, 데이타 전송및 처리의 순서를 나타내고 있다.In FIG. 3, the broken line and the number in parentheses shown by the broken line show the procedure of data transfer and processing.

(1) 포맷터(20)는 판독된 신호를 8/16 복조하고, 프레임 동기 신호를 제거하여, 도 1의 포맷의 ECC 블럭을 생성한다. 포맷터(20)는 도 1의 ECC 블럭의 바이트 행(이하, ECC 블럭 행) L1, L2, L3… PO15, PO16을, 제1 버퍼 기억 장치로서 작동하는 DRAM(22)으로 순차 전송한다. DRAM(22)은 ECC 블럭을 유지하고, 오류가 있는 경우에는 정정된 ECC 블럭을 기억하고, 정정된 ECC 블럭을 호스트 PC(퍼스널 컴퓨터)로 전송하기 위한 작업용 메모리로서 이용된다.(1) The formatter 20 demodulates the read signal by 8/16, removes the frame synchronization signal, and generates an ECC block in the format of FIG. The formatter 20 stores the byte rows (hereinafter ECC block rows) L1, L2, L3... Of the ECC block of FIG. PO15 and PO16 are sequentially transferred to the DRAM 22 operating as the first buffer memory device. The DRAM 22 is used as a working memory for holding an ECC block, storing a corrected ECC block when there is an error, and transferring the corrected ECC block to a host PC (personal computer).

(2) 1개 이상의 ECC 블럭 행이 DRAM(22)으로 전송될 때, 최초의 ECC 블럭 행이, 제2 버퍼 기억 장치로서 작동하는 SRAM(24)으로 전송된다. SRAM(24)은 비교적 소용량의 고속 버퍼이고, 오류 정정 처리를 효율적으로 행하기 위한 것이다. SRAM(24)으로 전송되는 ECC 블럭 행은 172개의 데이타 바이트와 10개의 PI 바이트를 포함한다.(2) When one or more ECC block rows are transferred to the DRAM 22, the first ECC block rows are transferred to the SRAM 24 operating as the second buffer storage device. The SRAM 24 is a relatively small high speed buffer and is for efficiently performing error correction processing. The ECC block row sent to SRAM 24 contains 172 data bytes and 10 PI bytes.

(3) SRAM(24)으로 전송된 ECC 블럭 행은 다음에, 오류 정정 부호 디코더(26)로 전송된다. 디코더(26)는 신드롬 생성기(28) 및 오류 정정 회로(30)를 포함한다. 신드롬 생성기(28)는 SRAM(24)으로부터의 ECC 블럭 행의 데이타에 기초하여 10바이트의 신드롬을 생성한다. 오류 정정 회로(30)는 생성된 신드롬에 기초하여, ECC 블럭 행의 오류 위치 및 오류 수치를 구하고, 오류 바이트수가 3 이하일 때에는, 오류 바이트를 정정한다.(3) The ECC block rows sent to the SRAM 24 are then sent to the error correction code decoder 26. Decoder 26 includes a syndrome generator 28 and an error correction circuit 30. The syndrome generator 28 generates a syndrome of 10 bytes based on the data of the ECC block row from the SRAM 24. The error correction circuit 30 obtains an error position and an error value of the ECC block row based on the generated syndrome, and corrects an error byte when the number of error bytes is three or less.

(4) 디코더(26)는 이어서, 오류 정정된 바이트를 MPU(32)로 보낸다.(4) The decoder 26 then sends an error corrected byte to the MPU 32.

(5) MPU(32)는 디코더(26)로부터 보내진 정정이 완료된 바이트를 DRAM(22)으로 보내고, DRAM(22) 내의 대응 ECC 블럭 행의 오류 바이트를 정정이 완료된 바이트로 재기록한다.(5) The MPU 32 sends the corrected byte sent from the decoder 26 to the DRAM 22, and rewrites the error byte of the corresponding ECC block row in the DRAM 22 as the corrected byte.

상기한 순서는 모든 ECC 블럭 행에 대해 순차 행해진다. 만일 디코더(26)에서 3개보다도 많은 오류 바이트가 검출되었을 경우에는 소실 포인터가 셋트된다. 소실 포인터가 셋트되었을 때에는, 행 방향의 오류 정정 처리의 종료후, DRAM(22) 내의 ECC 블럭의 바이트 열(이하 ECC 블럭 열)이 순차 SRAM(24)으로 전송된다. 열 방향에서는 16바이트의 신드롬이 신드롬 생성기(28)로 생성되고, 행 오류 정정과 마찬가지로, 열 방향에 있어서 오류 정정 처리가 행해진다. 열 방향의 오류 정정 처리를 하기 위해서는, 그 전에, DRAM(22) 내에 ECC 블럭 전체가 기억되어 있을 필요가 있다.The above order is performed sequentially for all ECC block rows. If more than three error bytes are detected in the decoder 26, the missing pointer is set. When the missing pointer is set, after completion of the error correction processing in the row direction, byte strings (hereinafter referred to as ECC block columns) of ECC blocks in the DRAM 22 are sequentially transferred to the SRAM 24. A syndrome of 16 bytes is generated by the syndrome generator 28 in the column direction, and error correction processing is performed in the column direction similarly to row error correction. In order to perform the error correction processing in the column direction, the entire ECC block must be stored in the DRAM 22 before that.

(6) 모든 오류 정정 처리가 종료할 때, DRAM(22) 내에는, 오류를 포함하지 않는 ECC 블럭이 존재하게 된다. DRAM(22) 내의 ECC 블럭의 데이타는 선(23)을 통해 호스트 PC(퍼스널 컴퓨터)로 보내진다.(6) When all the error correction processing ends, there is an ECC block in the DRAM 22 that does not contain an error. Data of the ECC block in the DRAM 22 is sent to the host PC (personal computer) via the line 23.

행 방향의 오류 정정을 위한 신드롬은 172개의 데이타 바이트 및 10개의 PI 바이트를 포함하는 182바이트의 ECC 블럭 행에 기초하여 발생된다. 상술한 종래의 시스템은 SRAM(24)의 하류에 신드롬 생성기(28)를 갖기 때문에, 182바이트의 ECC 블럭 행 전체를 DRAM(22)으로부터 SRAM(24)으로, 계속해서 디코더(28)로 전송할 필요가 있다. 따라서, 데이타의 전송에 시간이 걸려, 오류 정정 처리를 효율적으로 행할 수 없다고 하는 문제가 있었다.Syndrome for row direction error correction is generated based on a 182 byte ECC block row containing 172 data bytes and 10 PI bytes. Since the conventional system described above has a syndrome generator 28 downstream of the SRAM 24, it is necessary to transfer the entire 182 bytes of ECC block rows from the DRAM 22 to the SRAM 24 and subsequently to the decoder 28. There is. Therefore, there has been a problem that data transmission takes a long time and error correction processing cannot be performed efficiently.

오류 정정 처리는 온 더 플라이(on-the-fly) 양식으로, 즉, 호스트에의 데이타 전송을 기다리지 않고 리얼 타임 양식으로, 실행할 수 있는 것이 바람직하다. 상기한 종래의 방식에서도, 예를 들면, 파이프 라인 방식의 병행 처리를 이용하여 처리 효율을 높임으로써, 온 더 플라이가 실현 가능하지만, 보다 본질적으로 처리 시간을 단축할 수 있는 것이 바람직하다. DRAM(22)과 디코더(26) 사이의 데이타 전송 시간을 단축할 수 있으면, 데이타 전송에 의한 내부 버스(36)의 점유 시간을 단축하여, MPU(32) 등의 내부 버스(36)를 이용할 수 있는 시간을 늘려 데이타 기억 시스템 전체의 처리 효율을 높일 수 있다.It is desirable that the error correction process can be executed on-the-fly, ie in real time without waiting for data to be sent to the host. Also in the above-described conventional system, on-the-fly can be realized by increasing the processing efficiency by using parallel pipeline processing, for example, but it is preferable that the processing time can be shortened more essentially. If the data transfer time between the DRAM 22 and the decoder 26 can be shortened, the occupancy time of the internal bus 36 due to the data transfer can be shortened, and an internal bus 36 such as the MPU 32 can be used. By increasing the amount of time you spend, you can increase the efficiency of the entire data storage system.

또한, ECC 블럭 포맷은 고정되어 있고, ECC 블럭 행의 길이 (182바이트)가 2의 거듭제곱 수가 아니기 때문에, 종래의 시스템에서는 DRAM 버퍼(22) 내에, 불사용영역이 남게 되어, 버퍼 기억 장치의 이용 효율이 낮다고 하는 문제가 있었다.In addition, since the ECC block format is fixed and the length (182 bytes) of the ECC block row is not a power of two, in the conventional system, an unused area remains in the DRAM buffer 22, and thus the There was a problem that the utilization efficiency was low.

따라서, 본 발명의 목적은 데이타 전송 효율을 높임으로써, 오류 정정 처리에 요하는 시간을 단축할 수 있는 오류 정정 시스템 및 오류 정정 방법을 제공하는 것이다.Accordingly, it is an object of the present invention to provide an error correction system and an error correction method that can shorten the time required for error correction processing by increasing data transmission efficiency.

본 발명의 또 하나의 목적은, 오류 정정 처리에 요하는 시간을 단축할 수 있고, 더구나 버퍼 기억 장치의 사용 효율을 높일 수 있는 오류 정정 시스템을 제공하는 것이다.It is still another object of the present invention to provide an error correction system that can shorten the time required for error correction processing and can further increase the use efficiency of the buffer storage device.

본 발명의 다른 목적은, 곱셈 부호 형식의 오류 정정 부호를 이용한 오류 정정 기능을 가지고, 오류 정정 처리에 요하는 시간을 단축할 수 있는 데이타 기억 시스템을 제공하는 것이다.Another object of the present invention is to provide a data storage system which has an error correction function using an error correction code in the form of a multiplication code and can shorten the time required for error correction processing.

본 발명의 한 형태에 따르면, 본 발명의 오류 정정 시스템은 행렬로 배열된 데이타 및 각 행에 대한 행 오류 정정용 부호를 적어도 포함하는 ECC 블럭을 생성하는 포맷터와, 상기 포맷터로부터의 각 ECC 블럭 행에 기초하여 신드롬을 생성하는 신드롬 생성기와, 상기 신드롬 생성기로부터 ECC 블럭 행 및 관련하는 신드롬을 수신하여 기억하는 제1 버퍼 기억 장치와, 상기 제1 버퍼 기억 장치로부터 신드롬을 수신하여, 상기 제1 버퍼 기억 장치 내의 ECC 블럭 행에 대해 오류 정정 처리를 행하는 오류 정정 부호 디코더를 포함한다.According to one aspect of the present invention, an error correction system of the present invention includes a formatter for generating an ECC block including at least data arranged in a matrix and a code for correcting row errors for each row, and in each ECC block row from the formatter. A syndrome generator for generating a syndrome based on the first memory; a first buffer storage device for receiving and storing ECC block rows and associated syndromes from the syndrome generator; and receiving a syndrome from the first buffer memory device; And an error correction code decoder for performing error correction processing on ECC block rows in the apparatus.

상기 제1 버퍼 기억 장치는 제1 및 제2 뱅크를 가지고, 상기 뱅크의 각 행은 2n×(2m+1) (여기서, n 및 m은 양의 정수)의 바이트 길이를 가지고 또한 (2m+1)개의 바이트 블럭으로 분할된다. 상기 ECC 블럭 행의 바이트 길이 Y는, 2n×2m<Y<2n×(2m+1)이고, 각 상기 ECC 블럭 행은 2n의 바이트 길이의 블럭 단위로 상기 제1 및 제2 뱅크의 상기 바이트 블럭에 교대로 인터리브 양식으로 기억된다. 각 상기 ECC 블럭 행에 대한 신드롬은 상기 ECC 블럭 행의 (2m+1)번째의 블럭이 기억된 뱅크 바이트 블럭의, 바이트 길이 [2n×(2m+1)-k]의 빈 영역에 기억된다.The first buffer memory has a first and a second bank, each row of the bank has a byte length of 2 n x (2m + 1), where n and m are positive integers, and (2m + It is divided into 1) byte blocks. Byte length Y of the ECC block row, 2n × 2m <Y <2 n × (2m + 1) , and wherein the first and second banks in units of blocks of each of the ECC block row of bytes in the second n-length The byte blocks are alternately stored in an interleaved fashion. The syndrome for each ECC block row is stored in an empty area of byte length [ 2n × (2m + 1) -k] of the bank byte block in which the (2m + 1) th block of the ECC block row is stored. .

본 발명의 또 하나의 형태에 따르면, 본 발명의 데이타 기억 시스템은 데이타 및 곱셈 부호 형식의 오류 정정 부호를 포함하는 섹터 데이타를 기억한 기억 매체와, 상기 기억 매체로부터 판독된 섹터 데이타를 포맷하고, 행렬로 배열된 데이타, 각 행에 대한 행 오류 정정용 내부호 및 각 열에 대한 열 오류 정정용 외부호를 포함하는 ECC 블럭을 생성하는 포맷터와, 상기 포맷터로부터 ECC 블럭 행을 순차적으로 수신하고, 각 ECC 블럭 행에 기초하여 신드롬을 발생하는 신드롬 생성기와, 상기 신드롬 생성기로부터 ECC 블럭 행 및 관련하는 신드롬을 수신하는 제1 버퍼 기억 장치와, 상기 제1 기억 장치로부터 상기 신드롬을 수신하는 제2 버퍼 기억 장치와, 상기 제2 버퍼 기억 장치로부터 상기 신드롬을 수신하고, 상기 제1 버퍼에 기억된 ECC 블럭 행에 대해 오류 정정 처리를 행하는 디코더를 포함한다.According to yet another aspect of the present invention, a data storage system of the present invention formats a storage medium storing sector data including data and an error correction code in multiplication code format, and sector data read from the storage medium, A formatter for generating an ECC block including data arranged in a matrix, an inner code for row error correction for each row, and an outer code for column error correction for each column, and sequentially receiving ECC block rows from the formatter, and receiving each ECC block A syndrome generator for generating a syndrome based on the row, a first buffer storage device for receiving an ECC block row and an associated syndrome from the syndrome generator, a second buffer memory device for receiving the syndrome from the first memory device; Receive the syndrome from the second buffer memory, and error an ECC block row stored in the first buffer. And a decoder that performs correction processing.

도 1은 DVD에서 사용되는 ECC 블럭의 데이타 포맷을 나타낸 도면.1 is a diagram showing the data format of an ECC block used in a DVD.

도 2는 DVD에 기록되는 섹터 데이타의 기록 포맷을 나타낸 도면.2 is a diagram showing a recording format of sector data recorded on a DVD.

도 3은 종래의 DVD 기억 시스템의 개략 구성을 나타낸 도면.3 is a diagram showing a schematic configuration of a conventional DVD storage system.

도 4는 본 발명의 실시예에 따른 DVD 기억 시스템의 개략 구성을 나타낸 도면.4 is a diagram showing a schematic configuration of a DVD storage system according to an embodiment of the present invention;

도 5는 DRAM 버퍼에의 데이타 맵핑을 나타낸 도면.5 illustrates data mapping to a DRAM buffer.

〈도면의 주요 부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>

1 : ECC 블럭1: ECC block

11 : DVD11: DVD

12 : 모터12: motor

13 : 판독 헤드13: readhead

16 : 판독 회로16: readout circuit

18 : 디지탈 서보 프로세서18: digital servo processor

20 : 포맷터20: formatter

22 : DRAM 버퍼 (제1 버퍼 기억 장치)22: DRAM buffer (first buffer storage)

24 : SRAM 버퍼 (제2 버퍼 기억 장치)24: SRAM buffer (second buffer storage)

26 : 디코더26: decoder

28 : 신드롬 생성기28: syndrome generator

30 : 오류 정정 회로30: error correction circuit

32 : MPU32: MPU

36 : 데이타 버스36 data bus

38 : 신드롬 생성기38: syndrome generator

다음에 도 4를 참조하여 본 발명을 설명한다. 도 4의 구성 요소 중, 도 3의 것과 대응하는 구성 요소는 동일한 참조 번호로 도시되어 있다. 본 발명의 특징은, 도 3의 종래의 시스템의 디코더(26)에 포함되어 있는 신드롬 생성기(28)와 마찬가지의 신드롬 생성기(38)를 포맷터(20)와 DRAM 버퍼(22) 사이에 배치하도록 변경한 것이다. 신드롬 생성기(38)는 포맷터(20)로부터 ECC 블럭 행을 순차적으로 수신하고, 수신한 ECC 블럭 행을 DRAM 버퍼(22)로 전송함과 함께, 그 ECC 블럭 행에 대한 신드롬을 생성한다. 각 ECC 블럭 행 및 관련하는 신드롬은 모두 DRAM(22)에 기억된다. DRAM(22)은 신드롬만을 SRAM(24)으로 전송한다. SRAM(24)은 DRAM(22)으로부터 수신한 신드롬을 디코더(26)로 전송한다. 디코더(26) 내의 오류 정정 회로(30)는 SRAM(24)으로부터 수신한 신드롬에 기초하여 행 방향의 오류 정정 처리를 행한다. 디코더(26) 내의 신드롬 생성기(28)는 열 방향의 신드롬을 발생하기 위해서 이용되고, 행 방향의 신드롬을 생성하기 위해서는 이용되지 않는다.Next, the present invention will be described with reference to FIG. Of the components of FIG. 4, the components corresponding to those of FIG. 3 are shown with the same reference numerals. A feature of the present invention is that the same syndrome generator 38 as the syndrome generator 28 included in the decoder 26 of the conventional system of FIG. 3 is arranged between the formatter 20 and the DRAM buffer 22. It is. The syndrome generator 38 sequentially receives ECC block rows from the formatter 20, transfers the received ECC block rows to the DRAM buffer 22, and generates syndromes for the ECC block rows. Each ECC block row and associated syndromes are all stored in the DRAM 22. The DRAM 22 transfers only syndromes to the SRAM 24. The SRAM 24 transfers the syndrome received from the DRAM 22 to the decoder 26. The error correction circuit 30 in the decoder 26 performs the error correction processing in the row direction based on the syndrome received from the SRAM 24. The syndrome generator 28 in the decoder 26 is used to generate syndromes in the column direction, and is not used to generate syndromes in the row direction.

도 4에 있어서의 파선 및 그 파선에 도시된 괄호 안의 숫자는, 데이타 전송 및 처리의 순서를 나타내고 있다.The broken line in FIG. 4 and the number in parentheses shown by the broken line show the procedure of data transfer and processing.

(1) 포맷터(20)는 종래와 마찬가지로, 도 1의 포맷의 ECC 블럭을 생성한다. 포맷터(20)는 ECC 블럭 행 L1, L2, L3… PO15, PO16을 신드롬 생성기(38)로 순차 전송한다.(1) The formatter 20 generates an ECC block in the format of FIG. 1 as in the prior art. The formatter 20 executes ECC block rows L1, L2, L3... PO15 and PO16 are sequentially transmitted to the syndrome generator 38.

(2) 신드롬 생성기(38)는 포맷터(20)로부터 ECC 블럭 행을 수신할 때마다, 그 ECC 블럭 행에 대한 10바이트의 신드롬을 생성한다. 신드롬 생성기(38)는 수신한 ECC 블럭 행을, 제1 버퍼 기억 장치로서 작동하는 DRAM 버퍼(22)로 전송하는 동안에, 그 ECC 블럭 행에 대한 신드롬을 생성한다. 생성된 신드롬은 관련하는 ECC 블럭 행과 함께, DRAM(22)에 기억된다.(2) Each time the syndrome generator 38 receives an ECC block row from the formatter 20, it generates a 10-byte syndrome for the ECC block row. The syndrome generator 38 generates a syndrome for the ECC block row while transferring the received ECC block row to the DRAM buffer 22 serving as the first buffer storage device. The generated syndrome is stored in the DRAM 22 along with the associated ECC block row.

(3) DRAM(22)은 신드롬만을 제2 버퍼 기억 장치로서 작동하는 SRAM(24)으로 순차 전송한다.(3) The DRAM 22 sequentially transfers only syndromes to the SRAM 24 operating as the second buffer memory device.

(4) SRAM(24)은 DRAM(22)으로부터 수신한 신드롬을 오류 정정 부호 디코더(26)로 전송한다. 디코더(26)의 오류 정정 회로(30)는 수신한 신드롬에 기초하여, 관련하는 ECC 블럭 행의 오류 위치 및 오류 수치를 구하고, 오류 바이트 수가 3 이하일 때에는, 오류 바이트를 정정한다.(4) The SRAM 24 transmits the syndrome received from the DRAM 22 to the error correction code decoder 26. The error correction circuit 30 of the decoder 26 obtains an error position and an error value of an associated ECC block row based on the received syndrome, and corrects an error byte when the number of error bytes is 3 or less.

(5) 디코더(26)는 이어서, 오류 정정된 바이트를 MPU(32)로 보낸다.(5) The decoder 26 then sends an error corrected byte to the MPU 32.

(6) MPU(32)는 디코더(26)로부터 보내진 정정이 완료된 바이트를 DRAM(22)로 보내고, DRAM(22) 내의 대응 ECC 블럭 행의 오류 바이트를 정정이 완료된 바이트로 재기록한다.(6) The MPU 32 sends the corrected byte sent from the decoder 26 to the DRAM 22, and rewrites the error byte of the corresponding ECC block row in the DRAM 22 as the corrected byte.

디코더(26)에서 3개 보다도 다수의 오류 바이트가 검출된 경우의 소실 정정 처리는 도 3의 종래의 경우와 동일하다. 즉, 소실 포인터가 셋트될 때에는, 행 방향의 오류 정정 처리의 종료 후, DRAM(22) 내의 ECC 블럭의 바이트열이 순차 SRAM(24)로 전송된다. 열 방향에서는 16바이트의 신드롬이 신드롬 생성기(28)로 생성되고, 행 방향의 오류 정정 처리와 마찬가지로, 열 방향의 오류 정정 처리가 행해진다.The loss correction processing in the case where more than three error bytes are detected in the decoder 26 is the same as in the conventional case of FIG. That is, when the missing pointer is set, after completion of the error correction processing in the row direction, the byte strings of the ECC blocks in the DRAM 22 are sequentially transferred to the SRAM 24. In the column direction, a 16-byte syndrome is generated by the syndrome generator 28, and error correction processing in the column direction is performed similarly to error correction processing in the row direction.

(7) 모든 오류 정정 처리가 종료되었을 때, DRAM(22) 내에는, 오류를 포함하지 않은 ECC 블럭이 존재하게 된다. DRAM(22) 내의 ECC 블럭의 데이타는 선(23)을 통해 호스트 PC(퍼스널 컴퓨터)로 보내진다.(7) When all the error correction processing is completed, there is an ECC block in the DRAM 22 that does not contain an error. Data of the ECC block in the DRAM 22 is sent to the host PC (personal computer) via the line 23.

이상으로부터 명백한 바와 같이, 본 발명에 있어서는, 행 방향의 신드롬은 포맷터(20)와 DRAM 버퍼(22) 사이의 위치에서 생성된다. 신드롬은 각 ECC 블럭 행과 함께 DRAM(22)에 기억된다. DRAM(22)으로부터 SRAM(24) 및 디코더(26)로 전송되는 것은, 10바이트의 신드롬만이고, 따라서, 182바이트의 ECC 블럭 행 전체를 DRAM(22)으로부터 SDRAM(24) 및 디코더(26)로 전송하는 종래에 비교하여, 데이타 전송 시간을 대폭 단축하는 것이 가능하다. 또, 열 방향의 소실 정정 처리는 종래와 동일한 순서로 행해지기 때문에, 소실 정정에 요하는 시간은 기본적으로는, 종래와 마찬가지이다.As is apparent from the above, in the present invention, the syndrome in the row direction is generated at a position between the formatter 20 and the DRAM buffer 22. The syndrome is stored in the DRAM 22 along with each ECC block row. Only the 10-byte syndrome is transmitted from the DRAM 22 to the SRAM 24 and the decoder 26, so that the entire 182-byte ECC block row is transferred from the DRAM 22 to the SDRAM 24 and the decoder 26. Compared with the conventional transmission by the above, it is possible to significantly shorten the data transfer time. In addition, since the loss correction processing in the column direction is performed in the same order as in the prior art, the time required for the loss correction is basically the same as in the prior art.

본 발명에서는, ECC 블럭 및 신드롬의 양쪽이 DRAM 버퍼(22)에 기억된다. 본 발명에 따르면, DRAM 버퍼(22)의 이용 효율을 높일 수 있다. 이것은 본 발명의 부가적 특징이다. 다음에, 본 발명에 있어서 ECC 블럭 및 신드롬을 DRAM 버퍼(22)에 어떻게 기억할지에 대해 설명한다.In the present invention, both the ECC block and the syndrome are stored in the DRAM buffer 22. According to the present invention, the utilization efficiency of the DRAM buffer 22 can be improved. This is an additional feature of the present invention. Next, how to store the ECC block and syndrome in the DRAM buffer 22 in the present invention will be described.

ECC 블럭은 표준에 의해 정해진 고정 데이타 포맷을 가지고, 각 ECC 블럭 행은 182바이트의 길이를 갖는다. 한편, DRAM에서는 행 방향의 길이를 2의 누승 수로 하는 것이 일반적이다. 따라서, DRAM의 각 행에 1ECC 블럭 행을 기억한 경우에는, 빈 영역이 남게 되어, 메모리의 이용 효율이 저하한다고 하는 문제가 있다. 또한, DRAM의 어드레스는 행 방향에서는 연속하지만, 열 방향에서는 불연속이 된다. 따라서, 열 방향에서는 억세스 속도를 올릴 수 없다고 하는 문제가 있다.ECC blocks have a fixed data format defined by the standard, and each ECC block row has a length of 182 bytes. On the other hand, in DRAM, the length in the row direction is a power of two. Therefore, when one ECC block row is stored in each row of the DRAM, there is a problem that a free area remains and the memory utilization efficiency is lowered. The address of the DRAM is continuous in the row direction but discontinuous in the column direction. Therefore, there is a problem that the access speed cannot be increased in the column direction.

본 출원인에 의한 특원평10-15740호는, DRA 버퍼의 이용 효율을 높임과 함께 행렬 양방향에서 연속적으로 억세스할 수 있도록 하기 위해서, ECC 블럭을 2개의 메모리 뱅크에 인터리브 방식으로 기억하도록 한 기술을 제안하고 있다. 2개의 뱅크로서는, 2개의 SDRAM(동기 DRAM) 칩이 이용된다. 도 5는 이 특허 출원에 개시된 메모리 데이타 맵핑을 나타내고 있다. 도 5의 상측 부분은 도 1의 ECC 블럭의 논리 맵핑을 나타내며, 하측 부분은 2개의 메모리 뱅크 (뱅크 0 및 뱅크 1)에의 물리적 맵핑을 나타내고 있다. 도 5의 L1, L2, L3…은 도 1 및 도 2의 섹터 S1의 ECC 블럭 행 L0, L1, L3…에 대응한다. 설명을 간략화하기 위해서, ECC 블럭 행 L1-L4만이 나타나 있다.Korean Patent Application Publication No. 10-15740 by the present applicant proposes a technique for interleaving ECC blocks in two memory banks in order to improve the efficiency of use of the DRA buffer and to allow continuous access in both directions of the matrix. Doing. As two banks, two SDRAM (synchronous DRAM) chips are used. 5 shows the memory data mapping disclosed in this patent application. The upper part of FIG. 5 shows the logical mapping of the ECC block of FIG. 1, and the lower part shows the physical mapping to two memory banks (bank 0 and bank 1). L1, L2, L3... Are the ECC block rows L0, L1, L3... Of sector S1 in FIGS. Corresponds to. For simplicity, only ECC block rows L1-L4 are shown.

뱅크 0 및 1의 바이트 행은 각각, 홀수개의 바이트 블럭으로 나누어진다. 각 바이트 블럭은 행 방향으로 동일한 길이를 갖는다. 뱅크 0 및 1의 행 방향의 길이(바이트수)는 2n× (2m+1)에 의해 나타난다. 여기서, n 및 m은 양의 정수이다. 2n은 1바이트 블럭의 바이트 수이고, 이 예에서는 64(n=6)이다. 2m+1은 바이트 블럭의 수이고, 이 예에서는 3(m=1)이다. 뱅크 0 및 1의 행 방향의 길이는 192바이트이다. 1ECC 블럭 행의 바이트 수(이 예에서는, 182 바이트)를 Y로 할 때,다음 관계가 성립한다.The byte rows of banks 0 and 1 are divided into odd byte blocks, respectively. Each byte block has the same length in the row direction. The length (number of bytes) in the row direction of the banks 0 and 1 is represented by 2n × (2m + 1). Where n and m are positive integers. 2 n is the number of bytes in a one-byte block, which in this example is 64 (n = 6). 2m + 1 is the number of byte blocks, which in this example is 3 (m = 1). The length in the row direction of the banks 0 and 1 is 192 bytes. When the number of bytes (1182 bytes in this example) of 1 ECC block row is Y, the following relationship is established.

2n×2m<Y<2n×(2m+1)2 n × 2m <Y <2 n × (2m + 1)

ECC 블럭의 각 행 L1, L2, L3…도 각각 64바이트의 3개의 바이트 블럭으로 나누어진다. ECC 블럭 행 L1의 제1 바이트 블럭 A0은 뱅크 0의 바이트 블럭 A0에 기억되고, ECC 블럭 행 L1의 제2 바이트 블럭 B0은 뱅크 1의 바이트 블럭 B0에 기억되고, L1의 제3 바이트 블럭 A1은 뱅크 0의 바이트 블럭 A1에 기억된다. ECC 블럭 행 L2의 제1 바이트 블럭 B1은 뱅크1의 바이트 블럭 B1에 기억되고, L2의 제2 바이트 블럭 A2는 뱅크 0의 바이트 블럭 A2에 기억되고, L2의 제3 바이트 블럭 B2는 뱅크 1의 바이트 블럭 B2에 기억된다. 이하 마찬가지로, 각 ECC 블럭 행은 뱅크 0 및 1의 바이트 블럭에 인터리브 양식으로 기억된다.Each row L1, L2, L3... Of the ECC block. Also divided into three byte blocks of 64 bytes each. The first byte block A0 of the ECC block row L1 is stored in the byte block A0 of bank 0, the second byte block B0 of the ECC block row L1 is stored in the byte block B0 of bank 1, and the third byte block A1 of L1 is It is stored in the byte block A1 of bank 0. The first byte block B1 of the ECC block row L2 is stored in the byte block B1 of bank1, the second byte block A2 of L2 is stored in the byte block A2 of bank 0, and the third byte block B2 of L2 is stored in the bank 1 It is stored in the byte block B2. Likewise below, each ECC block row is stored in the interleaved format in the byte blocks of banks 0 and 1.

ECC 블럭 행 L1을 페치(fetch)할 때에는, 바이트 블럭 A0, B0, A1이 뱅크 0 및 1 사이에서 교대로 억세스되고, ECC 블럭 행 L2를 페치할 때에는, 바이트 블럭 B1, A2, B2가 뱅크1 및 0 사이에서 교대로 억세스된다. 좌측의 ECC 블럭 열을 페치할 때에는, 바이트 블럭 A0, B1, A3, B4…가 뱅크 0 및 1 사이에서 교대로 억세스되고, 중앙의 ECC 블럭 열을 페치할 때에는, 바이트 블럭 B0, A2, B3, A5…가 뱅크 1 및 0 사이에서 교대로 억세스된다. 또, 실제의 열 방향의 오류 정정 처리에서는 ECC 블럭이 바이트 열 단위로 처리되므로, ECC 블럭의 가장 좌측의 바이트열은 바이트 블럭 열 A0, B1, A3, B4…의 가장 좌측의 바이트를 선택함으로써 페치된다.When fetching ECC block row L1, byte blocks A0, B0, A1 are alternately accessed between banks 0 and 1, and when fetching ECC block row L2, byte blocks B1, A2, B2 are bank1. And alternately between zero. When fetching the left ECC block string, the byte blocks A0, B1, A3, B4... Are alternately accessed between banks 0 and 1, and when fetching the central ECC block string, byte blocks B0, A2, B3, A5... Are alternately accessed between banks 1 and 0. Also, in the error correction processing in the column direction, the ECC block is processed in units of byte strings, so the leftmost byte string of the ECC block is the byte block strings A0, B1, A3, B4. It is fetched by selecting the leftmost byte of.

도 5의 메모리 데이타 맵핑에서는, 각 뱅크는 행 방향으로 연속 어드레스를 갖는다. 또한, 인접하는 행은 다른 뱅크에 기억되고, 각 뱅크는 프리차지 등에 요하는 내부 회로 지연이 외관 상, 외부로부터 보이지 않도록 뱅크 인터리브 방식으로 억세스할 수 있기 때문에, 열 방향으로 어드레스를 바꾼 경우에서도(192를 가산한다), 열 데이타를 연속적으로 페치할 수 있다. 따라서, 이 방식에 따르면, 행렬의 양 방향에서 고속 억세스를 실현할 수 있다.In the memory data mapping of Fig. 5, each bank has a continuous address in the row direction. In addition, adjacent rows are stored in different banks, and each bank can be accessed in a bank interleaved manner so that internal circuit delays required for precharge and the like are not visible from the outside. Add 192) to continually fetch thermal data. Therefore, according to this method, fast access can be realized in both directions of the matrix.

또한, 각 뱅크의 행 방향의 길이는 192바이트인데 대해, ECC 블럭 행은 182바이트의 길이이다. 따라서, ECC 블럭의 우측의 바이트 블럭열 A1, B2, A4, B5…를 기억하는 뱅크 블럭만이 54바이트의 데이타를 기억한다. 이 때의 기억 영역 사용 효율은 182/192=0.948로 되어, 높은 사용 효율이 얻어진다.In addition, the length of each bank in the row direction is 192 bytes, whereas the ECC block row is 182 bytes in length. Therefore, the byte block strings A1, B2, A4, B5, ... on the right side of the ECC block. Only the bank block that stores the data stores 54 bytes of data. The storage area use efficiency at this time is 182/192 = 0.948, and high use efficiency is obtained.

따라서, 도 5의 뱅크 인터리브 방식에 따르면, 고속 억세스와 높은 기억 영 역 사용 효율을 얻을 수 있다. 그러나, 각 뱅크 행당, 2n×(2m+1)-Y=192-182=10바이트의 빈 영역을 포함한다.Therefore, according to the bank interleave method of FIG. 5, fast access and high storage area use efficiency can be obtained. However, each bank row contains an empty area of 2n × (2m + 1) -Y = 192-182 = 10 bytes.

본 발명은, 도 4의 DRAM 버퍼(22)에 도5의 뱅크 인터리브 방식을 사용함과 함께, 뱅크 행당 10바이트의 불사용 영역에 신드롬을 기억하는 것이다. 신드롬 생성기(38)는 각 ECC 블럭 행마다 10바이트의 신드롬을 생성하기 때문에, ECC 블럭 행을 뱅크에 인터리브 기억함과 함께, 관련하는 10바이트의 신드롬을, 10바이트의 불사용 영역에 기억함으로써, DRAM 버퍼(22)의 사용 효율을 100%로 높일 수 있다.According to the present invention, the bank interleaving method of FIG. 5 is used for the DRAM buffer 22 of FIG. 4 and the syndrome is stored in an unused area of 10 bytes per bank row. Since the syndrome generator 38 generates a 10-byte syndrome for each ECC block row, the interleaved ECC block rows are stored in the bank, and the associated 10-byte syndrome is stored in a 10-byte unused area. The use efficiency of the buffer 22 can be increased to 100%.

이상, 특정한 실시예에 대해 설명하였지만, 본 발명의 범위 내에서 여러가지 변경을 할 수 있는 것은 당업자에게 명백할 것이다. 예를 들면, 실시예에서는, 행 방향의 오류 정정 처리 후에 열 방향의 오류 정정 처리를 행하였지만, 먼저 열 방향의 오류 정정을 행하는 경우에도, 본 발명을 적용할 수 있다. 단, 이 경우에는 ECC 블럭 전체가 DRAM 버퍼(22)에 기억될 때까지는, 오류 정정 처리를 개시할 수 없다. 먼저 행 방향의 오류 정정 처리를 행하는 경우에는, 1개 이상의 ECC 블럭 행이 DRAM 버퍼에 기억될 때 오류 정정 처리를 개시할 수 있으므로, 이 방법이 유리하다. 또한, 실시예에서는, 특정한 구조의 데이타 포맷이 이용되었지만, 다른 데이타 포맷을 사용하는 것도 가능하다.While specific embodiments have been described above, it will be apparent to those skilled in the art that various changes may be made within the scope of the present invention. For example, in the embodiment, the error correction processing in the column direction is performed after the error correction processing in the row direction, but the present invention can be applied even when the error correction in the column direction is performed first. In this case, however, the error correction process cannot be started until the entire ECC block is stored in the DRAM buffer 22. When the error correction processing in the row direction is first performed, this method is advantageous because the error correction processing can be started when one or more ECC block rows are stored in the DRAM buffer. In addition, although the data structure of a specific structure was used in embodiment, it is also possible to use another data format.

본 발명에서는, 포맷터와 제1 버퍼 기억 장치 사이에 신드롬 생성기를 배치하고, 신드롬만을 오류 정정용의 제2 버퍼 기억 장치 및 디코더로 전송한다. 따라서, 데이타 전송에 요하는 시간을 대폭 단축할 수 있어, 오류 정정 처리를 고속화할 수 있다.In the present invention, a syndrome generator is disposed between the formatter and the first buffer memory, and only the syndrome is transmitted to the second buffer memory and the decoder for error correction. Therefore, the time required for data transfer can be greatly shortened, and the error correction process can be speeded up.

또한, 제1 버퍼 기억 장치에 뱅크 인터리브 기억 방식을 사용하고, 신드롬을 각 뱅크의 불사용 행 영역에 기억함으로써, 제1 버퍼 기억 장치의 사용 효율을 개선할 수 있다.In addition, by using the bank interleaved storage method for the first buffer storage device and storing the syndrome in the unused row area of each bank, the use efficiency of the first buffer storage device can be improved.

또한, 신드롬을 기억하는데 부가적인 기억 장치를 필요로 하지 않고, 특별한 기억 제어도 필요 없기 때문에 경제적이다. 포맷터와 제1 버퍼 기억 장치 사이에 신드롬 생성기를 추가할 필요가 있지만, 신드롬 생성기는 비교적 간단한 게이트로 구성되어 염가이기 때문에, 신드롬 생성기의 추가는 시스템 전체의 비용에는 거의 영향을 주지 않을 정도이다.It is also economical because no additional storage device is required for storing the syndrome and no special memory control is required. Although it is necessary to add a syndrome generator between the formatter and the first buffer memory device, the addition of the syndrome generator has little effect on the overall system cost since the syndrome generator is inexpensive because of the relatively simple gate.

Claims (16)

행렬로 배열된 데이타 및 각 행에 대한 행 오류 정정 부호를 적어도 포함하는 ECC 블럭을 생성하는 포맷터와,A formatter for generating an ECC block including at least data arranged in a matrix and a row error correction code for each row; 상기 포맷터로부터의 각 ECC 블럭 행에 기초하여 신드롬(syndrome)을 생성하는 신드롬 생성기와,A syndrome generator for generating a syndrome based on each ECC block row from the formatter; 상기 신드롬 생성기로부터 ECC 블럭 행 및 관련하는 신드롬을 수신하여 기억하는 제1 버퍼 기억 장치와,A first buffer storage device for receiving and storing ECC block rows and associated syndromes from the syndrome generator; 상기 제1 버퍼 기억 장치로부터 상기 신드롬을 수신하여, 상기 제1 버퍼 기억 장치 내의 ECC 블럭 행에 대해 오류 정정 처리를 행하는 오류 정정 부호 디코더An error correction code decoder that receives the syndrome from the first buffer memory device and performs an error correction process on an ECC block row in the first buffer memory device 를 포함하는 오류 정정 시스템.Error correction system comprising a. 제1항에 있어서,The method of claim 1, 상기 제1 버퍼 기억 장치는 제1 및 제2 뱅크를 가지고,The first buffer storage device has first and second banks, 상기 뱅크의 각 행은 2n× (2m+1) (여기서, n 및 m은 양의 정수)의 바이트 길이를 가지고 또한 (2m+1) 개의 바이트 블럭으로 분할되어 있고,Each row of the bank has a byte length of 2 n x (2m + 1), where n and m are positive integers, and is further divided into (2m + 1) byte blocks, 상기 ECC 블럭 행의 바이트 길이 Y는 2n×2m<Y<2n×(2m+1)이고, 각 상기 ECC 블럭 행은 2n의 바이트 길이의 블럭 단위로 상기 제1 및 제2 뱅크의 상기 바이트 블럭에 교대로 인터리브 양식으로 기억되는 것을 특징으로 하는 오류 정정 시스템.The byte length Y of the ECC block row is 2n × 2m <Y < 2n × (2m + 1), and each ECC block row is the block of the byte length of 2n in the first and second banks. Error correction system, characterized in that the byte block is alternately stored in the interleaved form. 제2항에 있어서,The method of claim 2, 각 상기 ECC 블럭 행에 대한 신드롬은 상기 ECC 블럭 행의 (2m+1)번째의 블럭이 기억된 뱅크 바이트 블럭의, 바이트 길이 [2n× (2m+1)-Y]의 빈 영역에 기억되는 것을 특징으로 하는 오류 정정 시스템.The syndrome for each ECC block row is stored in an empty area of byte length [ 2n × (2m + 1) -Y] of the bank byte block in which the (2m + 1) th block of the ECC block row is stored. Error correction system, characterized in that. 제3항에 있어서,The method of claim 3, 상기 Y는 182바이트이고, n은 6이고, m은 1이며, 상기 신드롬은 10바이트 길이인 것을 특징으로 하는 오류 정정 시스템.Wherein Y is 182 bytes, n is 6, m is 1, and the syndrome is 10 bytes long. 제1항 내지 제4항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 제1 버퍼 기억 장치로부터 상기 신드롬을 수신하는 제2 버퍼 기억 장치를 포함하고,A second buffer memory device for receiving the syndrome from the first buffer memory device, 상기 디코더는 상기 제2 버퍼 기억 장치로부터 각 ECC 블럭 행에 대한 신드롬을 수신하고, 상기 제1 버퍼 기억 장치에 기억된 ECC 블럭 행에 대해 오류 정정 처리를 행하는 것을 특징으로 하는 오류 정정 시스템.And the decoder receives a syndrome for each ECC block row from the second buffer memory, and performs an error correction process on the ECC block rows stored in the first buffer memory. 제5항에 있어서,The method of claim 5, 상기 ECC 블럭은 각 열에 대한 열 오류 정정 부호를 포함하고,The ECC block includes a column error correction code for each column, 상기 디코더는 ECC 블럭 행의 오류 정정 처리 후에, 필요에 따라서 상기 제1 버퍼 기억 장치 내의 ECC 블럭 열에 대해 오류 정정 처리를 하는 것을 특징으로 하는 오류 정정 시스템.And the decoder performs error correction processing on the ECC block strings in the first buffer storage device as necessary after error correction processing on ECC block rows. 행렬로 배열된 데이타 및 각 행에 대한 행 오류 정정용 부호를 적어도 포함하는 ECC 블럭의 각 ECC 블럭 행에 기초하여 신드롬을 생성하는 스텝과,Generating a syndrome based on each ECC block row of the ECC block including at least data arranged in a matrix and a row error correction code for each row; 상기 ECC 블럭 행 및 관련하는 신드롬을 버퍼 기억 장치에 기억하는 스텝과,Storing the ECC block row and associated syndromes in a buffer storage device; 상기 버퍼 기억 장치의 상기 신드롬을 오류 정정 부호 디코더로 전송하여, 상기 버퍼 기억 장치에 있어서의 ECC 블럭 행에 대해 오류 정정 처리를 행하는 스텝Transferring the syndrome of the buffer storage device to an error correction code decoder to perform error correction processing on an ECC block row in the buffer storage device; 을 포함하는 오류 정정 방법.Error correction method comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 버퍼 기억 장치는 제1 및 제2 뱅크를 가지고,The buffer storage device has a first bank and a second bank, 상기 뱅크의 각 행은 2n× (2m+1) (여기서, n 및 m은 양의 정수)의 바이트 길이를 가지고 또한 (2m+1) 개의 바이트 블럭으로 분할되어 있고,Each row of the bank has a byte length of 2 n x (2m + 1), where n and m are positive integers, and is further divided into (2m + 1) byte blocks, 상기 ECC 블럭 행의 바이트 길이 Y는 2n×2m<Y<2n×(2m+1)이고, 각 상기 ECC 블럭 행은 2n의 바이트 길이의 블럭 단위로 상기 제1 및 제2 뱅크의 상기 바이트 블럭에 교대로 인터리브 양식으로 기억되는 것을 특징으로 하는 오류 정정 방법.The byte length Y of the ECC block row is 2n × 2m <Y < 2n × (2m + 1), and each ECC block row is the block of the byte length of 2n in the first and second banks. An error correction method characterized in that the byte blocks are alternately stored in an interleaved form. 제8항에 있어서,The method of claim 8, 각 상기 ECC 블럭 행에 대한 신드롬은 상기 ECC 블럭 행의 (2m+1)번째의 블럭이 기억된 뱅크 바이트 블럭의, 바이트 길이 [2n× (2m+1)-Y]의 빈 영역에 기억되는 것을 특징으로 하는 오류 정정 방법.The syndrome for each ECC block row is stored in an empty area of byte length [ 2n × (2m + 1) -Y] of the bank byte block in which the (2m + 1) th block of the ECC block row is stored. Error correction method, characterized in that. 제7항 내지 제9항 중 어느 한 항에 있어서,The method according to any one of claims 7 to 9, 상기 ECC 블럭은 각 열에 대한 열 오류 정정 부호를 포함하고,The ECC block includes a column error correction code for each column, 상기 디코더는 ECC 블럭 행의 오류 정정 처리 후에, 필요에 따라서 상기 버퍼 기억 수단 내의 ECC 블럭 열에 대해 오류 정정 처리를 하는 것을 특징으로 하는 오류 정정 방법.And the decoder performs error correction processing on the ECC block string in the buffer storage means as necessary after the error correction processing on the ECC block row. 데이타 및 곱셈 부호 형식의 오류 정정 부호를 포함하는 섹터 데이타를 기억한 기억 매체와,A storage medium which stores sector data including data and an error correction code in multiplication code format; 상기 기억 매체로부터 판독된 섹터 데이타를 포맷하고, 행렬로 배열된 데이타, 각 행에 대한 행 오류 정정 부호 및 각 열에 대한 열 오류 정정 부호를 포함하는 ECC 블럭을 생성하는 포맷터와,A formatter for formatting sector data read from the storage medium and generating an ECC block including data arranged in a matrix, a row error correction code for each row, and a column error correction code for each column; 상기 포맷터로부터 ECC 블럭 행을 순차적으로 수신하고, 각 ECC 블럭 행에 기초하여 신드롬을 발생하는 신드롬 생성기와,A syndrome generator for sequentially receiving ECC block rows from the formatter and generating syndromes based on each ECC block row; 상기 신드롬 생성기로부터 ECC 블럭 행 및 관련하는 신드롬을 수신하는 제1 버퍼 기억 장치와,A first buffer memory for receiving an ECC block row and associated syndromes from the syndrome generator; 상기 제1 기억 장치로부터 상기 신드롬을 수신하는 제2 버퍼 기억 장치와,A second buffer memory device for receiving the syndrome from the first memory device; 상기 제2 버퍼 기억 장치로부터 상기 신드롬을 수신하고, 상기 제1 버퍼 기억 장치에 기억된 ECC 블럭 행에 대해 오류 정정 처리를 행하는 디코더A decoder that receives the syndrome from the second buffer memory device and performs an error correction process on the ECC block rows stored in the first buffer memory device. 를 포함하는 오류 정정 기능을 갖는 데이타 기억 시스템.Data storage system having an error correction function comprising a. 제11항에 있어서,The method of claim 11, 상기 신드롬 생성기는 상기 ECC 블럭 행을 상기 제1 버퍼 기억 장치로 전송함과 함께, 상기 ECC 블럭 행에 대한 신드롬을 생성하여 상기 제1 버퍼 기억 장치에 기억하는 것을 특징으로 하는 데이타 기억 시스템.And the syndrome generator transmits the ECC block row to the first buffer storage device, generates a syndrome for the ECC block row, and stores the syndrome in the first buffer memory device. 제12항에 있어서,The method of claim 12, 상기 제1 버퍼 기억 장치는 제1 및 제2 뱅크를 가지고,The first buffer storage device has first and second banks, 상기 뱅크의 각 행은 2n× (2m+1) (여기서, n 및 m은 양의 정수)의 바이트 길이를 가지고 또한 (2m+1)개의 바이트 블럭으로 분할되어 있고,Each row of the bank has a byte length of 2 n x (2m + 1), where n and m are positive integers, and is further divided into (2m + 1) byte blocks, 상기 ECC 블럭 행의 바이트 길이 Y는 2n×2m<Y<2n×(2m+1)이고, 각 상기 ECC 블럭 행은 2n의 바이트 길이의 블럭 단위로 상기 제1 및 제2 뱅크의 상기 바이트 블럭에 교대로 인터리브 양식으로 기억되는 것을 특징으로 하는 데이타 기억 시스템.The byte length Y of the ECC block row is 2n × 2m <Y < 2n × (2m + 1), and each ECC block row is the block of the byte length of 2n in the first and second banks. A data storage system characterized by being stored in an interleaved fashion alternately in a byte block. 제13항에 있어서,The method of claim 13, 각 상기 ECC 블럭 행에 대한 상기 신드롬은 상기 ECC 블럭 행의 (2m+1)번째의 블럭이 기억된 뱅크 바이트 블럭의, 바이트 길이 [2n×(2m+1)-Y]의 빈 영역에 기억되는 것을 특징으로 하는 데이타 기억 시스템.The syndrome for each ECC block row is stored in an empty area of byte length [ 2n × (2m + 1) -Y] of the bank byte block in which the (2m + 1) th block of the ECC block row is stored. Data storage system characterized in that. 제14항에 있어서,The method of claim 14, 상기 Y는 182바이트이고, n은 6이고, m은 1이며, 상기 신드롬은 10바이트 길이인 것을 특징으로 하는 데이타 기억 시스템.And wherein Y is 182 bytes, n is 6, m is 1, and the syndrome is 10 bytes long. 제11항 내지 제15항 중 어느 한 항에 있어서,The method according to any one of claims 11 to 15, 상기 제1 버퍼 기억 장치는 상기 포맷터로부터 ECC 블럭 행을 순차적으로 수신하여 1ECC 블럭분의 데이타를 기억하고,The first buffer storage device sequentially receives ECC block rows from the formatter, stores data for one ECC block, 상기 제2 버퍼 기억 장치는 ECC 블럭 행의 오류 정정 처리 후에, 필요에 따라서 상기 제1 버퍼 기억 장치 내의 ECC 블럭 열에 대해 오류 정정 처리를 하는 것을 특징으로 하는 데이타 기억 시스템.And the second buffer storage device performs error correction processing on the ECC block string in the first buffer storage device as necessary after the error correction processing on the ECC block row.
KR1019990033468A 1998-09-25 1999-08-14 Error correction system, error correction method, and data memory with error correction function KR100339452B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1998-271912 1998-09-25
JP27191298A JP3272308B2 (en) 1998-09-25 1998-09-25 Error correction system, error correction method, and data storage system having error correction function

Publications (2)

Publication Number Publication Date
KR20000022714A true KR20000022714A (en) 2000-04-25
KR100339452B1 KR100339452B1 (en) 2002-06-05

Family

ID=17506620

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990033468A KR100339452B1 (en) 1998-09-25 1999-08-14 Error correction system, error correction method, and data memory with error correction function

Country Status (4)

Country Link
JP (1) JP3272308B2 (en)
KR (1) KR100339452B1 (en)
SG (1) SG86356A1 (en)
TW (1) TW436767B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010081335A (en) * 2000-02-12 2001-08-29 구자홍 Coding method for correcting error of digital data in high density disc
KR100724211B1 (en) * 2006-05-09 2007-05-31 엘지전자 주식회사 Coding method for correcting error of digital data in high density disc
KR20170039804A (en) * 2015-10-01 2017-04-12 에스케이하이닉스 주식회사 Operating method of flash memory system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005006563A1 (en) * 2003-07-09 2005-01-20 Thomson Licensing Error correction method for reed-solomon product code
US7607071B2 (en) * 2005-01-28 2009-10-20 Intel Corporation Error correction using iterating generation of data syndrome
JP2008077458A (en) 2006-09-22 2008-04-03 Fujitsu Ltd Storage data processor, storage device, and storage data processing program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761220A (en) * 1994-09-19 1998-06-02 Cirrus Logic, Inc. Minimum latency asynchronous data path controller in a digital recording system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010081335A (en) * 2000-02-12 2001-08-29 구자홍 Coding method for correcting error of digital data in high density disc
US7500157B2 (en) 2000-02-12 2009-03-03 Lg Electronics Inc. Error correction coding method for a high-density storage media
KR100724211B1 (en) * 2006-05-09 2007-05-31 엘지전자 주식회사 Coding method for correcting error of digital data in high density disc
KR20170039804A (en) * 2015-10-01 2017-04-12 에스케이하이닉스 주식회사 Operating method of flash memory system

Also Published As

Publication number Publication date
JP3272308B2 (en) 2002-04-08
SG86356A1 (en) 2002-02-19
TW436767B (en) 2001-05-28
JP2000112776A (en) 2000-04-21
KR100339452B1 (en) 2002-06-05

Similar Documents

Publication Publication Date Title
JP3863252B2 (en) Error correction method, error correction device, data reading device, and data mapping method
KR100328902B1 (en) A data storage system
US5467360A (en) Storage device for reversibly storing digital data on a multitrack storage medium, a decoding device, an information reproducing apparatus for use with a storage medium, and a unitary storage medium for use with such a storage device decoding device and/o
KR100370239B1 (en) Memory device for applying to high speed block pipelined reed-solomon decoder and method of memory access and reed-solomon decoder having the memory device
US6363511B1 (en) Device and method for decoding data streams from storage media
US6158040A (en) Rotated data-aligmnent in wade embedded DRAM for page-mode column ECC in a DVD controller
US6397366B1 (en) Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code
KR100430657B1 (en) Signal processor for correcting and detecting errors
JP2009054278A (en) Circuit and device for reproducing data
US6061760A (en) Controller circuit apparatus for CD-ROM drives
US4464757A (en) Method and device for writing and reading sector-organized information into and from a record carrier body
KR100339452B1 (en) Error correction system, error correction method, and data memory with error correction function
US8181075B2 (en) Error correction device and recording and reproducing device
JPH1198462A (en) Data reproduction device
US5586127A (en) Apparatus and method for correcting error in data read from recording medium
US6697921B1 (en) Signal processor providing an increased memory access rate
KR20020075269A (en) Error correction device
JP3542943B2 (en) Data transfer device and data transfer method
US20050055622A1 (en) Device and method for generating error correction code
JP2000137651A (en) Device and method for correcting data error
US20080175137A1 (en) Method for encoding data written to optical storage media
KR20050078231A (en) Digital video disc decoding device and error correction method
KR100390120B1 (en) Signal processor
JP2001237715A (en) Decoder
JP2001117825A (en) Data recording device and data reproducing device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee