KR20080058890A - 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법 - Google Patents

리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법 Download PDF

Info

Publication number
KR20080058890A
KR20080058890A KR1020060133086A KR20060133086A KR20080058890A KR 20080058890 A KR20080058890 A KR 20080058890A KR 1020060133086 A KR1020060133086 A KR 1020060133086A KR 20060133086 A KR20060133086 A KR 20060133086A KR 20080058890 A KR20080058890 A KR 20080058890A
Authority
KR
South Korea
Prior art keywords
syndrome
error
value
detected
correction
Prior art date
Application number
KR1020060133086A
Other languages
English (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 KR1020060133086A priority Critical patent/KR20080058890A/ko
Publication of KR20080058890A publication Critical patent/KR20080058890A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 리드-솔로몬 오류 검출/정정 장치 및 방법에 관한 것으로서, 본 발명에 따른 리드-솔로몬 오류 검출/정정 장치에 있어서, 복조된 신호를 입력받아 저장하는 버퍼 메모리부; 부호어 단위로 PI 및 PO 신드롬을 계산하는 신드롬 계산부; 계산된 PI 신드롬 및 PO 신드롬을 저장하기 위한 신드롬 메모리부; 신드롬 메모리부에 저장된 신드롬에 기초하여, PI 신드롬 또는 PO 신드롬에 대한 오류의 값 및 위치를 검출하고 이를 정정하는 오류 검출/정정부; 및 검출된 오류의 값 및 위치에 기초하여 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신하고, 갱신된 신드롬을 신드롬 메모리부에 전달하는 신드롬 갱신부를 포함하되, 신드롬 갱신부는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 오류 검출/정정부에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신함으로써, 반복적으로 오류 검출/정정을 수행하여, 정확하고 빠른 오류 정정을 가능하게 해준다.
리드 솔로몬, 오류 정정

Description

리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법 {Apparatus and method for error detection/correction using Reed-solomon Product Codes}
도 1은 리드-솔로몬 곱 부호의 구성을 도시한 도면이다.
도 2는 기존의 광 기록 매체에서의 오류 검출/정정 장치를 도시한 도면이다.
도 3은 본 발명에 따른 리드-솔로몬 오류 검출/정정 장치를 도시한 블록 다이어 그램이다.
도 4는 본 발명의 일 실시예에 따라 PI 신드롬 검출에 따른 PO 신드롬 갱신 과정을 도시한 참고도이다.
도 5는 본 발명의 일 실시예에 따른 리드-솔로몬 오류 검출/정정 방법을 도시한 플로우차트이다.
도 6은 본 발명의 다른 실시예에 따른 리드-솔로몬 오류 검출/정정 방법을 도시한 플로우차트이다.
본 발명은 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법에 관한 것이다.
리드-솔로몬 부호는 BCH(Bose-Chaudhuri-Hocquenghem) 부호의 일종으로서 선형 블럭 부호이다. 리드-솔로몬 부호(RS code)는 통상 심벌(symbol)의 비트 크기(s)와 함께 RS(n,k)로 표시된다. 이 리드-솔로몬 부호는 디지털 통신 및 데이터 저장의 응용 분야, 예를 들면, 테이프, CD, DVD, 바-코드(barcode), 무선 및 이동 통신, 위성 통신, 디지털 텔레비전 등에서 널리 사용되고 있는 블럭 오류 정정 부호이다.
일반적으로, 잡음, CD 등의 손상 등과 같은 여러 가지 이유들로 인해 데이터의 전송 또는 저장 동안에 오류가 발생될 수 있는데, 리드-솔로몬 인코더(encoder)는 일정 블럭의 데이터를 취하고 거기에다 여분의 부가 데이터를 부가해서 발생된 오류의 정정이 가능하도록 한다. 리드-솔로몬 디코더(decoder)는 각 부가 데이터가 포함된 블럭 데이터를 처리하고 오류 발생 시 원래의 데이터로 복원하는 기능을 한다.
도 1은 리드-솔로몬 곱 부호의 구성을 도시한 도면이다.
DVD와 같은 광 기록 매체에서는 오류 정정을 위해 리드 솔로몬 부호가 사용된다. 광 기록 매체에 저장되어 있는 정보 데이터 프레임은 행마다 그리고 열마다 오류를 정정하기 위한 수평 및 수직 부가 데이터를 포함한다. 프레임의 데이터 행 및 열은 소위 곱-부호를 구성하기 때문에, 리드 솔로몬 부호는 리드 솔로몬 곱 부호라고도 할 수 있다.
행 방향의 172 바이트의 정보 데이터는 10바이트의 PI 부가 데이터를 부가함으로써 PI 부호어화되고, 192개의 PI 부호어는 다시 열 방향으로 16 바이트의 PO 부가 데이터를 부가함으로써 PO 부호어화된다. 이와 같이 이중 부호화된 182*208 바이트의 데이터는 하나의 데이터 프레임을 형성한다. 이에 따라 하나의 데이터 프레임은 172*192 바이트 크기의 정보 영역, 10*192 바이트 크기의 PI(Parity on Inner code) 부가 데이터 영역, 172*16 바이트 크기의 PO(Parity on Outer code) 부가 데이터 영역을 포함한다.
위와 같이 리드-솔로몬 곱 부호에 의해 부호화된 데이터 프레임은 디코더에 의해 오류 정정 정정을 하게 된다. 도 1에서와 같이 수평방향의 복호화는 PI 방향 복호화, 수직 방향의 복호화는 PO 방향 복호화라고 한다. 즉 PI 방향의 정정은 208개의 행을 (182,172) RS 부호를 이용하여 하는 정정이고, PO 방향의 정정은 182개의 열을 (208,192) RS 부호를 이용하여 하는 정정이며, 이 두 방향의 오류 정정은 동시에 이루어지는 것이 아니라 차례대로 이루어진다.
도 2는 기존의 광 기록 매체에서의 오류 정정 장치를 도시한 도면이다.
복조된 신호는 버퍼 메모리(5)에 저장됨과 동시에 PI 방향의 정정을 위하여 1차 오류 정정 회로(9)에 입력된 후, 이에 기초하여 오류의 특성을 수학적으로 표현하는 신드롬을 생성한다(12). 생성된 신드롬에 따라 오류 위치와 값을 찾는 다양한 알고리즘을 적용하게 되는데, 도시된 특허는 Euclidean 알고리즘과 Chien 검색을 이용한다(55,56). 이렇게 찾아진 오류 위치와 값은 버퍼 메모리(5)에 저장된 값에 갱신된다. PO 방향의 정정을 위하여 2차 오류 정정 회로(10)은 복조 신호가 버퍼 메모리에 모두 저장된 후에 PO 방향으로 데이터를 읽어 들여 신드롬을 생성하고 임시 저장한다(13). PI 방향의 정정으로 생성된 오류 값이 전달되면 해당되는 PO 방향의 데이터만을 다시 읽어 들여 신드롬을 다시 생성한다. PI 방향의 마지막 정정이 완료되면 그에 따른 PO 방향의 최종 신드롬 계산이 거의 동시에 완료된다. 곧 이어, 이 최종 신드롬에 기초하여 PO 방향의 정정이 수행되고 찾아진 오류 위치와 값은 버퍼 메모리에 갱신된다.
본 구조는 PI 방향 정정과 거의 동시에 정정된 값을 반영한 PO 신드롬을 얻을 수 있고, PO 방향 정정을 수행할 수 있어서 시간 절약이 가능하다. 더 나아가 반복 정정을 위하여 동일한 방식으로 PO 방향으로 정정된 값을 PI 신드롬에 반영하여 동일한 구조로 확장할 수 있으나, 매번 정정 값과 관련된 데이터를 다시 읽어 들여 신드롬을 다시 생성해야 하므로 데이터 버스(11)의 대역폭이 증가하게 된다. 그러므로 대역폭으로 제한으로 전체 시스템 성능이 제한되므로 고속 구조를 실현하기 어렵다.
따라서, 전술한 문제점을 해결하기 위한 본 발명의 목적은, 신드롬을 효과적으로 갱신하기 위한 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법을 제공하는 데 있다.
또한 본 발명은 반복적으로 오류 검출/정정을 수행하여, 정확하고 빠른 오류 검출/정정을 가능하게 해주는 것을 목적으로 한다.
상기 기술적 과제는, 본 발명에 따른 리드-솔로몬 곱 부호의 오류 검출 장치에 있어서, 복조된 신호를 입력받아 저장하는 버퍼 메모리부, 상기 복조된 신호에 대해서 부호어 단위로 PI 및 PO 신드롬을 계산하는 신드롬 계산부; 상기 계산된 PI 신드롬 및 PO 신드롬을 저장하기 위한 신드롬 메모리부; 상기 신드롬 메모리부에 저장된 신드롬에 기초하여, PI 신드롬 또는 PO 신드롬에 대한 오류의 값 및 위치를 검출/정정하는 오류 검출/정정부; 및 상기 검출된 오류의 값 및 위치에 기초하여 상기 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신하고, 상기 갱신된 신드롬을 신드롬 메모리부에 전달하는 신드롬 갱신부를 포함하되, 상기 신드롬 갱신부는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신하는 것을 특징으로 하는 오류 검출/정정 장치에 의해 달성된다.
상기 오류 검출부는 PI 신드롬 또는 PO 신드롬 중 어느 하나에 대해서 오류 값 및 위치를 검출/정정하고, 상기 검출된 오류 값 및 위치에 기초하여 신드롬이 갱신되면, 상기 갱신된 PI 신드롬 또는 PO 신드롬 중 다른 하나에 대해서 오류값 및 위치를 검출/정정하는 것을 반복하는 것이 바람직하다.
상기 신드롬 갱신부는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는
Figure 112006095719236-PAT00001
값으로 갱신하되,
Figure 112006095719236-PAT00002
Figure 112006095719236-PAT00003
Figure 112006095719236-PAT00004
는 갱신 전의 신드롬 값이며,
Figure 112006095719236-PAT00005
는 오류 검출부에서 검출된 오류값이며,
Figure 112006095719236-PAT00006
는 RS 부호의 최소 거리,
Figure 112006095719236-PAT00007
는 RS 곱 부호가 사용하는 유한체 상의 원시 원소(primitive element)인 것이 바람직하다.
한편, 상기 기술적 과제는 본 발명에 따른 리드-솔로몬 곱 부호의 오류 검출/정정 방법에 있어서, 복조된 신호를 입력받아 저장하는 단계; 상기 복조된 신호에 대해서 부호어 단위로 PI 및 PO 신드롬을 계산하는 신드롬 계산하는 단계; 상기 계산된 PI 신드롬 및 PO 신드롬을 저장하는 단계; 상기 신드롬 메모리부에 저장된 신드롬에 기초하여, PI 신드롬 또는 PO 신드롬에 대한 오류의 값 및 위치를 검출/정정하는 단계; 및 상기 검출된 오류의 값 및 위치에 기초하여 상기 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신하고, 상기 갱신된 신드롬 값을 신드롬 메모리부에 전달하는 단계를 포함하되, 상기 신드롬 갱신 단계는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬의 위치에 의해 결정되는 상수값과 상기 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신하는 것을 특징으로 하는 오류 검출/정정 방법에 의해서도 달성된다.
상기 오류 검출/정정 단계는 PI 신드롬 또는 PO 신드롬 중 어느 하나에 대해서 오류 값 및 위치를 검출/정정하고, 상기 검출된 오류 값 및 위치에 기초하여 신드롬이 갱신되면, 상기 갱신된 PI 신드롬 또는 PO 신드롬 중 다른 하나에 대해서 오류값 및 위치를 검출/정정하는 것을 반복하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 3은 본 발명에 따른 리드-솔로몬 곱 부호의 오류 검출 장치를 도시한 블록 다이어 그램이다.
본 발명에 따른 리드-솔로몬 오류 검출/정정 장치는 신드롬 계산부(310), 신드롬 메모리부(320), 오류 검출/정정부(330), 신드롬 갱신부(340) 및 버퍼 메모리부(350)를 포함한다.
신드롬 계산부(310)는 복조된 신호를 입력받아, 부호어 단위로 PI 신드롬 및 PO 신드롬을 계산한다. 신드롬은 신호에 포함된 오류 특성을 수학적으로 표현한 것으로서, 오류의 유무 뿐만 아니라 오류의 위치 및 값을 나타낸다. 신드롬은 리드-솔로몬 곱 부호의 PI 방향(수평 방향) 또는 PO 방향(수직 방향)으로 계산될 수 있다. 신드롬 계산부(310)에서는 PI 방향으로 PI 신드롬을 계산하고, PO 방향으로 PO 신드롬을 계산한 다음, 신드롬 메모리부(320)로 계산된 신드롬을 전달한다.
신드롬 메모리부(320)는 PI 신드롬 메모리(322)와 PO 신드롬 메모리(324)를 포함하며, 각각 PI 신드롬과 PO 신드롬이 저장된다. 신드롬 메모리부(330)에 저장된 PI 신드롬 및 PO 신드롬에 기초하여, 오류 검출/정정부(330)에서는 PI 신드롬 또는 PO 신드롬에 대한 오류의 값(value) 및 위치(position)를 검출/정정한다. 오류값 및 위치 검출에는 유클리드 알고리즘(Euclidean Algorithm) 또는 바러캠프 알고리즘(Barlekamp Algorithm) 등이 사용될 수 있다.
버퍼 메모리부(350)는 복조된 신호를 입력 받아 저장한다. 에러 검출/정정부(340)에서 검출된 오류의 대상이 되는 데이터를 읽어서 정정 후 다시 저장하는 공간이다.
신드롬 갱신부(340)는 검출된 오류의 값 및 위치에 기초하여 신드롬 메모리부(320)에 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신한다. 신드롬 갱신부(340)는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬의 위치에 의해 결정되는 상수값과 상기 오류 검출/정정부에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신한다.
예를 들어, RS 곱 부호가 PI 라고 불리는
Figure 112006095719236-PAT00008
RS 부호와 PO 라고 불리는
Figure 112006095719236-PAT00009
RS 부호로 구성된다고 가정하자.
Figure 112006095719236-PAT00010
번째 PI 부호어의 오류가
Figure 112006095719236-PAT00011
이라면, 이 오류로 갱신되는
Figure 112006095719236-PAT00012
번째 PO 신드롬
Figure 112006095719236-PAT00013
는 수학식 1과 같다.
Figure 112006095719236-PAT00014
Figure 112006095719236-PAT00015
Figure 112006095719236-PAT00016
는 갱신 전의 신드롬 값이며,
Figure 112006095719236-PAT00017
는 오류 검출/정정부(330)에서 검출된 오류값이며,
Figure 112006095719236-PAT00018
는 PO 방향의 RS 부호의 최소 거리,
Figure 112006095719236-PAT00019
는 RS 곱 부호가 사용하는 유한체 상의 원시 원소(primitive element)를 나타낸다.
수학식 1에서 나타난 바와 같이, PI 신드롬에 기초하여 갱신될 PO 신드롬은 오류 값
Figure 112006095719236-PAT00020
와 PI 신드롬을 통한 오류 정정 전에 계산된
Figure 112006095719236-PAT00021
에 의해서 결정된다.
Figure 112006095719236-PAT00022
는 RS 곱 부호에 사용되는 RS 부호의 규격과 더불어 정정에 사용되는 PI 신드롬의 위치, 즉
Figure 112006095719236-PAT00023
에 영향을 받는다. 따라서 첫 번째 신드롬(
Figure 112006095719236-PAT00024
)인 상수를 기초로
Figure 112006095719236-PAT00025
가 증가하면서
Figure 112006095719236-PAT00026
을 곱해가며 결과를 얻는다. 이때,
Figure 112006095719236-PAT00027
Figure 112006095719236-PAT00028
의 초기값은
Figure 112006095719236-PAT00029
이다. 이후에, PI 부호어의 신드롬에부터 얻어진 정정 값
Figure 112006095719236-PAT00030
의 각각
Figure 112006095719236-PAT00031
에 대해서 해당되는 PO 부호어의 신드롬을 갱신한다. 즉, 정정 값이
Figure 112006095719236-PAT00032
이면 이와
Figure 112006095719236-PAT00033
의 유한체 상의 곱의 결과를 해당되는 PO 부호의 신드롬과 유한체 상의 덧셈을 수행하게 된다.
동일 종류의 신드롬의 갱신 방법은 간단하다. PI 신드롬의 오류 값 및 위치 검출에 기초한 PI 신드롬의 갱신은 오류 검출이 성공하면, PI 신드롬을 0으로 채우고, 오류 검출이 실패하면 PI 신드롬을 그대로 유지하면 된다.
오류 검출/정정부(330)에서 PI 신드롬에 대한 오류 값 및 위치를 검출/정정한 다음, 신드롬 갱신부(340)에서 이에 기초하여 PI 신드롬 및 PO 신드롬이 갱신된 다음에는, 이번에는 PO 신드롬에 대해 오류 값 및 위치 검출이 진행되고, 신드롬이 갱신되는 과정이 반복된다. 즉, PI 방향의 오류 검출/정정-> PO 방향의 오류 검출/정정->PI 방향의 오류 검출/정정->PO 방향의 오류 검출/정정이 반복되며, 모든 오류가 검출될 때까지 반복이 지속된다. PO 신드롬 오류 검출/정정이 먼저 이루어지고 다음으로 PI 신드롬 오류 검출/정정이 이루어지는 반복 오류 검출/정정도 가능하다.
도 4는 본 발명의 일 실시예에 따라 PI 신드롬 검출에 따른 신드롬 갱신 과정을 도시한 참고도이다.
도 4는 i 번째 신드롬에 대한 오류 검출에 의해서 신드롬이 갱신되는 과정을 나타낸다. 우선 i 번째 이전인 i-1번째에 계산된
Figure 112006095719236-PAT00034
Figure 112006095719236-PAT00035
의 GF(유한체) 상의 곱으로
Figure 112006095719236-PAT00036
를 계산하고 저장한다. 다음으로 i 번째 PI 신드롬에 대한 오류를 검출/정정하게 된다. 오류 검출/정정부(330)에서 오류 검출/정정이 성공하게 되면, 오류 값
Figure 112006095719236-PAT00037
를 얻게 되고, PI 신드롬은 0으로 갱신한다. 오류 값 중에서
Figure 112006095719236-PAT00038
의 영향을 받는 PO 신드롬을 PO 신드롬 메모리(324)로부터 얻고,
Figure 112006095719236-PAT00039
Figure 112006095719236-PAT00040
의 곱의 결과로 얻어진 PO 신드롬과 이전 단계에서의 PO 신드롬을 합하여 PO 신드롬 메모리(322)에 저장한다.
도 5는 본 발명의 일 실시예에 따른 리드-솔로몬 곱 부호의 오류 검출/정정 방법을 도시한 플로우차트이다. 도 5는 PI 방향으로 오류가 먼저 검출/정정되고, 다음으로 PO 방향, 다시 PI 방향으로 반복되는 오류 검출 /정정 방법을 도시한 것이다.
단계 510에서는 복조된 신호를 입력받아, 버퍼 메모리에 저장하고, PI 신드롬 및 PO 신드롬을 계산한다. 신드롬은 리드-솔로몬 곱 부호의 PI 방향(수평 방향) 또는 PO 방향(수직 방향)으로 계산될 수 있다.
단계 520에서는 계산된 PI 신드롬 및 PO 신드롬을 신드롬 메모리부(320)에 저장한다. 신드롬 메모리부(320)에는 PI 신드롬을 저장할 수 있는 PI 신드롬 메모리(322)와 PO 신드롬을 저장할 수 있는 PO 신드롬 메모리(324)가 있어, PI 신드롬 및 PO 신드롬이 각각 저장된다. 신드롬 메모리부(320)는 신드롬을 임시적으로 저장하는 곳으로, 신드롬이 갱신되면 저장된 신드롬은 새로운 값의 신드롬으로 대체될 수 있다.
단계 530에서는 저장된 PI 신드롬에 기초하여, PI 신드롬에 대한 오류 값 및 위치를 검출/정정한다. 도 5는 저장된 PI 신드롬 및 PO 신드롬 중에서 먼저 PI 신드롬에 대해 오류 값 및 위치를 검출하는 방법에 대한 것이다.
단계 540에서는 검출된 오류의 값 및 위치에 기초하여 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신한다. 이때, 동일 종류의 신드롬 즉, 저장된 PI 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신한다. 다른 종류의 신드롬, 즉 PO 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오 류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부(330)에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신한다. 본 발명의 일 실시예에 따른 PO 신드롬 갱신 방법은 수학식 1과 같이, 오류 값
Figure 112006095719236-PAT00041
와 PI 신드롬을 통한 오류 정정 전에 계산된
Figure 112006095719236-PAT00042
에 의해서 결정된다.
단계 550에서는 저장된 PO 신드롬에 기초하여, PO 신드롬에 대한 오류 값 및 위치를 검출/정정한다. 여기서 저장된 PO 신드롬은, 단계 530에서 PI 신드롬에 대해 오류가 검출/정정되어 PO 신드롬이 갱신된 경우, 갱신된 PO 신드롬을 의미한다.
단계 560에서는 검출된 오류의 값 및 위치에 기초하여 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신한다. 동일 종류의 신드롬 즉, 저장된 PO 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신한다. 다른 종류의 신드롬, 즉 PI 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부(330)에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신한다.
예를 들어, PI 신드롬을 이용한 오류 검출/정정으로 PO 신드롬이
Figure 112006095719236-PAT00043
값으로 갱신된다고 할 때, 수학식 1
Figure 112006095719236-PAT00044
을 따른다. 이때
Figure 112006095719236-PAT00045
로 주어진다. 여기서
Figure 112006095719236-PAT00046
는 갱신 전의 신드롬 값이며,
Figure 112006095719236-PAT00047
는 오류 검출/정정부(330)에서 검출된 오류값이며,
Figure 112006095719236-PAT00048
는 PO 방향의 RS 부호의 최소 거리,
Figure 112006095719236-PAT00049
는 RS 곱 부호가 사용하는 유한체 상의 원시 원소을 나타낸다.
단계 570에서는 오류가 모두 검출되었는지를 판단하며, 오류가 모두 검출된 경우에는 오류 검출을 종료하며, 그렇지 않은 경우에는, 단계 530으로 가서 다시 PI 신드롬에 대해서 오류 값 및 위치를 검출/정정한다.
도 6은 본 발명의 다른 실시예에 따른 리드-솔로몬 오류 검출/정정 방법을 도시한 플로우차트이다. 도 6은 PO 방향으로 오류가 먼저 검출/정정되고, 다음으로 PI 방향, 다시 PO 방향으로 반복되는 오류 검출/정정 방법을 나타낸다. 즉, 도 5의 실시예와 오류를 검출/정정하는 순서를 제외하고는 동일한 과정의 오류 검출/정정 방법이다.
단계 610에서는 복조된 신호를 입력받아, 버퍼 메모리부(350)에 저장하고, 복조된 신호에 대해서 PI 신드롬 및 PO 신드롬을 계산한다. 단계 620에서는 계산된 PI 신드롬 및 PO 신드롬을 신드롬 메모리부(320)에 저장한다. 신드롬 메모리부(320)는 신드롬을 임시적으로 저장하는 곳으로, 신드롬이 갱신되면 저장된 신드롬은 새로운 값의 신드롬으로 대체될 수 있다.
단계 630에서는 저장된 PO 신드롬에 기초하여, 우선 PO 신드롬에 대한 오류 값 및 위치를 검출/정정하고, 단계 640에서는 검출된 오류의 값 및 위치에 기초하여 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신한다. 이때, 동일 종류의 신드롬 즉, 저장된 PO 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신한다. 오류가 검출되지 않은 경우에는, 저장된 PO 신드롬을 그대로 유지 한다. 다른 종류의 신드롬, 즉 PI 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부(330)에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신한다. 즉, 수학식 1에 나타난 방식으로 갱신이 이루어질 수 있다.
단계 650에서는 저장된 PI 신드롬에 기초하여, PI 신드롬에 대한 오류 값 및 위치를 검출/정정한다. 여기서 저장된 PI 신드롬은, 단계 630에서 PO 신드롬에 대해 오류가 검출되어 PI 신드롬이 갱신된 경우, 갱신된 PI 신드롬을 의미한다.
단계 660에서는 검출된 오류의 값 및 위치에 기초하여 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신한다. 동일 종류의 신드롬 즉, 저장된 PI 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신한다. 다른 종류의 신드롬, 즉 PO 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부(330)에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신한다.
단계 670에서는 오류가 모두 검출/정정되었는지를 판단하며, 오류가 모두 검출/정정된 경우에는 오류 검출/정정을 종료하며, 그렇지 않은 경우에는, 단계 630으로 가서 다시 PI 신드롬에 대해서 오류 값 및 위치를 검출/정정한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
전술한 바와 같이 본 발명에 따르면, 신드롬을 효과적으로 갱신하기 위한 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법이 제공된다.
또한 본 발명은 반복적으로 오류 검출 및 정정을 수행하여, 정확하고 빠른 오류 정정을 가능하게 해준다.

Claims (5)

  1. 리드-솔로몬 곱 부호의 오류 검출/정정 장치에 있어서,
    복조된 신호를 입력받아, 저장하는 버퍼 메모리부;
    상기 복조된 신호에 대해서 부호어 단위로 PI 및 PO 신드롬을 계산하는 신드롬 계산부;
    상기 계산된 PI 신드롬 및 PO 신드롬을 저장하기 위한 신드롬 메모리부;
    상기 신드롬 메모리부에 저장된 신드롬에 기초하여, PI 신드롬 또는 PO 신드롬에 대한 오류의 값 및 위치를 검출하고 이를 정정하는 오류 검출/정정부; 및
    상기 검출된 오류의 값 및 위치에 기초하여 상기 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신하고, 상기 갱신된 신드롬을 신드롬 메모리부에 전달하는 신드롬 갱신부를 포함하되,
    상기 신드롬 갱신부는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬에 의해 결정되는 상수값과 상기 오류 검출/정정부에서 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신하는 것을 특징으로 하는 오류 검출/정정 장치.
  2. 제1항에 있어서,
    상기 오류 검출/정정부는 PI 신드롬 또는 PO 신드롬 중 어느 하나에 대해서 오류 값 및 위치를 검출/정정하고, 상기 검출된 오류 값 및 위치에 기초하여 신드롬이 갱신되면, 상기 갱신된 PI 신드롬 또는 PO 신드롬 중 다른 하나에 대해서 오류값 및 위치를 검출/정정하는 것을 반복하는 것을 특징으로 하는 오류 검출/정정 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 신드롬 갱신부는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는
    Figure 112006095719236-PAT00050
    값으로 갱신하되,
    Figure 112006095719236-PAT00051
    Figure 112006095719236-PAT00052
    Figure 112006095719236-PAT00053
    는 갱신 전의 신드롬 값이며,
    Figure 112006095719236-PAT00054
    는 오류 검출/정정부에서 검출된 오류값이며,
    Figure 112006095719236-PAT00055
    는 RS 부호의 최소 거리,
    Figure 112006095719236-PAT00056
    는 RS 곱 부호가 사용하는 유한체 상의 원시 원소(primitive element)인 것을 특징으로 하는 오류 검출/정정 장치.
  4. 리드-솔로몬 곱 부호의 오류 검출/정정 방법에 있어서,
    복조된 신호를 입력받아 저장하는 단계;
    상기 복조된 신호에 대해서 부호어 단위로 PI 및 PO 신드롬을 계산하는 신드롬 계산하는 단계;
    상기 계산된 PI 신드롬 및 PO 신드롬을 저장하는 단계;
    상기 신드롬 메모리부에 저장된 신드롬에 기초하여, PI 신드롬 또는 PO 신드롬에 대한 오류의 값 및 위치를 검출/정정하는 단계; 및
    상기 검출된 오류의 값 및 위치에 기초하여 상기 저장된 PI 신드롬 및 PO 신드롬을 새로운 값의 신드롬으로 갱신하고, 상기 갱신된 신드롬 값을 신드롬 메모리부에 전달하는 단계를 포함하되,
    상기 신드롬 갱신 단계는 동일 종류의 신드롬에 대해서는 오류가 검출된 위치의 값을 0으로 갱신하고, 다른 종류의 신드롬에 대해서는 RS 곱 부호에 사용되는 RS 부호규격 및 오류가 검출된 신드롬의 위치에 의해 결정되는 상수값과 상기 검출된 오류값을 곱한 값에 갱신 전의 신드롬 값을 더한 값으로 갱신하는 것을 특징으로 하는 오류 검출/정정 방법.
  5. 제4항에 있어서,
    상기 오류 검출 단계는 PI 신드롬 또는 PO 신드롬 중 어느 하나에 대해서 오류 값 및 위치를 검출/정정하고, 상기 검출된 오류 값 및 위치에 기초하여 신드롬이 갱신되면, 상기 갱신된 PI 신드롬 또는 PO 신드롬 중 다른 하나에 대해서 오류값 및 위치를 검출/정정하는 것을 반복하는 것을 특징으로 하는 오류 검출/정정 방법.
KR1020060133086A 2006-12-22 2006-12-22 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법 KR20080058890A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060133086A KR20080058890A (ko) 2006-12-22 2006-12-22 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060133086A KR20080058890A (ko) 2006-12-22 2006-12-22 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20080058890A true KR20080058890A (ko) 2008-06-26

Family

ID=39804189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060133086A KR20080058890A (ko) 2006-12-22 2006-12-22 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20080058890A (ko)

Similar Documents

Publication Publication Date Title
US7406651B2 (en) Forward Chien search type Reed-Solomon decoder circuit
KR100848614B1 (ko) 오류 정정 장치
KR101433620B1 (ko) 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
US6725416B2 (en) Forward error correction apparatus and methods
US9419651B2 (en) Non-polynomial processing unit for soft-decision error correction coding
US8583982B2 (en) Concatenated decoder and concatenated decoding method
US8671325B1 (en) Forward error correcting code decoder method and apparatus
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US8683293B2 (en) Method and system for fast two bit error correction
US20130318423A1 (en) Mis-correction and no-correction rates for error control
US8370727B2 (en) Method and circuit for decoding an error correction code
CN107800439B (zh) 用于里德索罗门码的低延迟解码器
US20210218419A1 (en) Method, device and apparatus for storing data, computer readable storage medium
US7810015B2 (en) Decoding with a concatenated error correcting code
TWI397811B (zh) 錯誤修正碼之編碼及解碼方法以及編碼解碼器
US8694850B1 (en) Fast erasure decoding for product code columns
US7716556B2 (en) Method for calculating an error detecting code
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
JP2002230918A (ja) 誤り訂正符号エンティティのための消失訂正のコンピュータ実現化方法
KR100594002B1 (ko) 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기
KR20080058890A (ko) 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법
EP1523100A1 (en) Correcting data having more data blocks with errors than redundancy blocks
KR19980027713A (ko) 이레이저 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치 및 방법
JPH1117557A (ja) 誤り訂正方法及び誤り訂正装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination