KR20060098269A - 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기 - Google Patents

파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기 Download PDF

Info

Publication number
KR20060098269A
KR20060098269A KR1020050020439A KR20050020439A KR20060098269A KR 20060098269 A KR20060098269 A KR 20060098269A KR 1020050020439 A KR1020050020439 A KR 1020050020439A KR 20050020439 A KR20050020439 A KR 20050020439A KR 20060098269 A KR20060098269 A KR 20060098269A
Authority
KR
South Korea
Prior art keywords
error
polynomial
block
syndrome
decoder
Prior art date
Application number
KR1020050020439A
Other languages
English (en)
Other versions
KR100756424B1 (ko
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 KR1020050020439A priority Critical patent/KR100756424B1/ko
Publication of KR20060098269A publication Critical patent/KR20060098269A/ko
Application granted granted Critical
Publication of KR100756424B1 publication Critical patent/KR100756424B1/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/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • 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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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/1555Pipelined decoder implementations
    • 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/6502Reduction of hardware complexity or efficient processing

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)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 (Reed-Solomon, RS)복호기에 관한 것으로, 잡음이 있는 채널을 통해 전송된 심볼들을 입력받아, 신드롬 다항식
Figure 112005012945561-PAT00001
을 발생시키고, RS코드의 유효한 코드워드 인지를 감지하여 잡음에 의한 에러를 검출하여 신드롬 심벌들을 출력하는 신드롬 계산(SC) 블록; 신드롬 값들을 병렬에서 직렬로 컨버팅하는 PS converter; 키등식 솔버(Key euqaiton solver, KES) 블록의 값들을 직렬에서 병렬로 컨버팅하는 SP converter; RS 코드의 오류위치 다항식
Figure 112005012945561-PAT00002
와 오류값 다항식
Figure 112005012945561-PAT00003
에 따라 Chien Search 및 Forney 알고리즘에 의해 RS 복호 과정에서 오류 위치에 대응하는 오류들의 크기값을 구하여 오류가 정정된 코드워드를 출력하는 Chien Search, Forney 알고리즘 및 오류 정정 블록; RS 복호기 주 제어기, 및 FIFO를 포함하는 RS 복호기에 있어서, 신드롬 심벌들을 입력받아 Pipelined recursive Modified Euclidean(PrME) 알고리즘을 사용하여 잡음에 따른 에러를 정정하기 위해 키 등식
Figure 112005012945561-PAT00004
Figure 112005012945561-PAT00005
을 계산하여 오류위치 다항식
Figure 112005012945561-PAT00006
와 오류값 다항식
Figure 112005012945561-PAT00007
을 출력하는 KES 블록을 포함한다.
파이프라인, 재귀적, 리드솔로몬, 복호기,

Description

파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기{An Area-Efficient Reed-Solomon Decoder using Pipelined Recursive Technique }
도 1은 본 발명에 의한 PrME 구조를 이용한 RS 복호기의 구성도.
도 2는 RS 복호기에서 신드롬 계산(SC) 블록의 (a) 신드롬 셀 Si, (b) 신드롬 계산 블록.
도 3은 RS 복호기의 (a) Chien search cell Ci, (b) Chien search block, (c) Forney 알고리즘 및 에러 정정 블록도.
도 4는 Systolic-array ME 구조를 이용한 RS 복호기의 타이밍도.
도 5는 KES블록의 Piplelined recursive Modified Euclidean(PrME) 구조의 블록도.
도 6은 PrME 구조를 사용한 RS 복호기의 타이밍도.
<도면의 주요 부분에 대한 부호의 설명>
10: 신드롬 계산(Syndrome Computation) 블록 11: PS converter
20: PrME구조를 이용한 키 등식 솔버(Key Equation Solver) 블록
21: SP converter 31: Chien Search 블록
32: Forney 알고리즘 블록 33: 에러 정정 블록
37: RS 복호기 주 제어기 39: FIFO(지연 버퍼)
본 발명은 리드 솔로몬 복호기(Reed-Solomon (RS) Decoder)에 관한 것으로서, 특히 무선 및 초고속 광통신등 다양한 통신 시스템에서 사용되는 고속 RS 복호기의 하드웨어 면적을 줄인 새로운 구조를 제시하고, folding 기술을 이용하여 높은 처리율(throughput)과 적은 하드웨어 복잡도(hardware complexity)를 가지고 있는 새로운 PrME(Pipelined recursive Modified Euclidean) 구조를 제공하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기에 관한 것이다.
일반적으로, 리드솔로몬 코드는 마그네틱, 광 저장매체, 유선 및 위성 통신 등 다양한 응용분야에 널리 쓰이는 Forward Error Correction (FEC) 기술이다. 8 바이트 오류정정(error correction) RS(255,239) 코드는 해저 광섬유 시스템을 위해 국제통신연합(ITU)에 의해 채택되었다. 현재 가장 일반적으로 사용되는 RS 복호기(RS decoder) 구조는 오류 t(RS 코드에 의해 정정될 수 있는 최대 오류 갯수)를 감지하고 정정하는 3 개의 주요한 부분으로 구성된다. 첫 번째 부분은 신드롬 계산(Syndrome Computation:SC)블록이다. 상기 SC블록에서는 신드롬 다항식(syndrome polynomial)
Figure 112005012945561-PAT00008
을 발생시키고, 수신된 코드워드(code word)의 오류패턴을 표현한다. 다항식
Figure 112005012945561-PAT00009
는 RS 복호기의 두 번째 부분인 키등식 솔버(Key equation solver, KES)블록에서 사용되어진 다. KES블록에서는 키 등식(key equation)
Figure 112005012945561-PAT00010
Figure 112005012945561-PAT00011
을 해결하기 위해 Euclidean 알고리즘(EA), modified Euclidean 알고리즘(MEA), 또는 Berlecamp-Massay 알고리즘(BMA) 등이 오류위치 다항식(error-locator polynomial)
Figure 112005012945561-PAT00012
와 오류값 다항식(error-value polynomial)
Figure 112005012945561-PAT00013
을 위하여 사용될 수 있다.
Figure 112005012945561-PAT00014
Figure 112005012945561-PAT00015
의 두 다항식은 Chien Search 그리고 Forney 알고리즘을 이용하여 오류의 위치에 대응하는 오류들의 크기값을 구하기 위하여 사용된다. KES 블록의 출력은 RS 복호기로부터 읽혀져 나온 오류 정정된 수신된 코드워드(code word)이다. 추가로 RS 복호기가 오류를 감지하고 정정하는 과정을 실행하는 동안 FIFO 메모리가 버퍼(buffer)로 사용된다. FIFO 메모리의 깊이(depth)는 RS 복호기의 총 지연성(latency)과 관련이 있다.
광통신 네트워크 시스템 구축을 위한 초고속 데이터 전송 기술은 높은 데이터율을 얻기 위한 요구와 맞물려 초고속 FEC 구조의 구현을 필요로 하게 되었다. DWDM(Dense Wavelength Division Multiplexing)의 출현과 함께 광전송 시스템은 지난 십년간 급속도로 발전되어 왔으며 8바이트 오류정정능력에 기인한 RS(255,239)코드가 고속(10-Gbits/s 이상) 광전송 시스템에 일반적으로 사용되고 있다. 그러나, 광전송 시스템이 급속도로 발전함에 따라 40-Gbits/s 이상의 고속 데이터 전송 율을 필요로 하게 되었고, 이에 따라 하드웨어 복잡도(hardware complexity)와 전력소모가 매우 큰 현존하는 대부분의 RS복호기는 시스템 레벨 통합의 어려움을 가지는 문제점이 있다.
본 발명은 종래 기술의 문제점을 해결하기 위해 제안된 것으로써, 본 발명의 목 적은 무선 및 초고속 광통신등 다양한 통신 시스템에서 사용되는 고속 리드솔로몬(Reed-Solomon:RS) 복호기의 하드웨어 면적을 줄이고 folding 기술을 이용하여 높은 처리율(throughput)과 적은 하드웨어 복잡도를 가지고 있는 새로운 면적 효율적인 PrME(Pipelined recursive Modified Euclidean) 구조를 제공하여 일반적으로 사용되는 systolic-array 그리고 완전한 병렬(fully-parallel) 구조와 비교하여 하드웨어 복잡도를 약 80%정도 줄임으로써 초고속 광통신뿐만 아니라 무선통신을 위한 차세대 FEC구조 등에 바로 적용될 수 있는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기를 제공하는 것이다.
상기 본 발명의 목적을 달성하기 위하여, 본 발명은 잡음이 있는 채널을 통해 전송된 심볼들을 입력받아, 신드롬 다항식
Figure 112005012945561-PAT00016
을 발생시키고, RS코드의 유효한 코드워드 인지를 감지하여 잡음에 의한 에러를 검출하여 신드롬 심벌들을 출력하는 신드롬 계산(SC) 블록(10)과, 상기 신드롬 값들을 병렬에서 직렬로 컨버팅하는 PS converter(11)와, 상기 KES 블록의 값들을 직렬에서 병렬로 컨버팅하는 SP converter(21); RS 코드의 상기 오류위치 다항식
Figure 112005012945561-PAT00017
와 상기 오류값 다항식
Figure 112005012945561-PAT00018
에 따라 Chien Search 및 Forney 알고리즘에 의해 RS 복호 과정에서 상기 오류 위치에 대응하는 오류들의 크기값을 구하여 오류가 정정된 코드워드를 출력하는 Chien Search, Forney 알고리즘 및 오류 정정 블록(30); 상기 PS converter(11), 상기 키 등식 솔버 블록(20), 상기 SP converter(21), 상기 Chien Search 알고리즘 블록(31)에 제어 신호를 발생시키는 RS 복 호기 주 제어기(37); 및 상기 RS 복호기에서 수신된 심벌의 에러를 검출하고 에러를 정정하는 동안, 상기 수신된 코드워드의 심벌들을 FIFO 방식으로 지연시켜 버퍼에 저장하는 FIFO(지연버퍼)(39)를 포함하는 RS 복호기에 있어서,
상기 신드롬 심벌들을 입력받아 Pipelined recursive Modified Euclidean(PrME) 알고리즘을 사용하여 잡음에 따른 에러를 정정하기 위해 키 등식(key equation)
Figure 112005012945561-PAT00019
Figure 112005012945561-PAT00020
을 계산하여 오류위치 다항식
Figure 112005012945561-PAT00021
와 오류값 다항식
Figure 112005012945561-PAT00022
을 출력하는 키 등식 솔버(Key Equation Solver:KES) 블록(20);
를 포함하여 이루어지는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기를 제공한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 보다 상세하게 설명한다. 단, 하기 실시예는 본 발명을 예시하는 것일 뿐 본 발명의 내용이 하기 실시예에 한정되는 것은 아니다.
도 1은 본 발명에 의한 Pipelined recursive modified Euclidean(PrME) 구조를 이용한 RS 복호기의 구성도를 나타낸다.
본 발명은 도 1에 도시된 바와 같이 하드웨어 복잡도와 클락 주파수가 상당히 향상된 PrME구조에 기인한 면적 효율성과 고속처리를 위한 RS(255,239) 복호기의 종합적인 구조를 제시한다.
Ⅰ. Reed-Solomon 복호기 구조
1. Syndrome Computation 블록
Figure 112005012945561-PAT00023
Figure 112005012945561-PAT00024
을 각각 코드워드 다항식 그리고 수신된 다항식이라고 두자. 전송된 다항식은 전송도중 채널 잡음(channel noise)에 의해 손상되어질 수 있다. 그러므로 수신된 코드워드 다항식은 다음과 같이 표현되어진다.
Figure 112005012945561-PAT00025
수학식1에서
Figure 112005012945561-PAT00026
는 오류 다항식이다.
RS 복호 (decoding) 알고리즘의 첫 번째 단계는 정정 가능한 오류들을 정정할 수 있는 2t syndrome
Figure 112005012945561-PAT00027
, (
Figure 112005012945561-PAT00028
)를 계산하는 것이다(t는 RS 코드에 의해 정정될 수 있는 최대 오류 개수). 만약 모든 2t syndrome
Figure 112005012945561-PAT00029
, (
Figure 112005012945561-PAT00030
)가 0이라는 것은 오류가 발생하지 않았다는 것이며 수신된 다항식
Figure 112005012945561-PAT00031
Figure 112005012945561-PAT00032
로서 유효한 코드워드(code word)라는 것을 의미한다. 신드롬 다항식
Figure 112005012945561-PAT00033
는 다음과 같이 정의될 수 있다.
Figure 112005012945561-PAT00034
여기서
Figure 112005012945561-PAT00035
는 원시 다항식(primitive polynomial)
Figure 112005012945561-PAT00036
, t=8,의 근(root)이고
Figure 112005012945561-PAT00037
에서의 원시 원소(primitive element)이다. RS(255,239)코드에서
Figure 112005012945561-PAT00038
는 가능한 오류위치를 의미한다. 도 2에 도시된 RS 복호기의 신드롬 계산(Syndrome Computation:SC)블록은 잡음이 있는 채널을 통해 전송된 심벌들을 입력받아, 상기 전송된 심벌 값들을 다항식 계수(coefficient)로 간주한다. 데이터 블록에 포함된 심벌들이 선택된 RS 코드의 데이터 블록에 대하여 유효한 코드워드를 형성하고 있는지 결정한다. 이것은 2t 신드롬 값들에 대한 다항식을 평가해서 그 값이 0인지 아닌지 감지한다(즉 감지된 값이 0이면 데이터 블록이 코드워드이고, 0이 아니면 코드워드가 아니다). 코드워드가 아닌 블록은 채널잡음에 의하여 오류가 발생한 것이다.
도 2(a)에서 도시된 바와 같이 RS복호기의 신드롬 계산(SC) 블록에서 한부분의 신드롬은 각 사이클마다 오류 위치
Figure 112005012945561-PAT00039
와 곱해지고 수신된 심벌과 누적된다. 도 2(b)는 16개의 신드롬 셀(syndrome cell)들로 구성된 신드롬 계산(SC) 블록(10)을 나타낸다. 상기 SC 블록(10)은 n개의 심벌구간 안에서 신드롬들이 계산되도록 한다. 신드롬 심벌들
Figure 112005012945561-PAT00040
는 PS converter(11)를 통해 직렬로 상기 KES 블록(20)으로 출력된다.
2. Key Equation Solver 블록
신드롬 다항식
Figure 112005012945561-PAT00041
는 KES(Key Equation Solver) 블록(20)에서 키등식
Figure 112005012945561-PAT00042
을 계산하기 위하여 사용된다. 상기 키 등식을 풀기 위해서 오류위치 다항식
Figure 112005012945561-PAT00043
와 오류값 다항식
Figure 112005012945561-PAT00044
을 계산한다.
RS 복호기에서의 KES 블록은 EA(Euclidean Algorithm), ME(Mofified Euclidean) 또는 BM(Berlecamp-Massay) 알고리즘들을 이용하여 구현할 수 있으며, division-free ME 그리고 고속 ME 구조들이 각각 제안되었다.
일반적인 ME(Modified Euclidean) 구조는 2t(정정 가능한 최대오류의 2배수)의 Processing Elements(PEs)로 구성되어 있고 systolic-array 구조로 연결되어 있다. 일 반적인 systolic-array ME구조의 하드웨어 크기는 총 RS 복호기 크기의 약 60%를 차지한다. 그러므로 RS 복호기 설계에 있어서 중요한 점은 임계 경로 지연(critical path delay)과 총 전력소모를 줄이기 위하여 ME(modified Euclidean) 구조의 하드웨어 복잡도(hardware complexity)를 최소화하는 것이다. 작은 하드웨어 면적을 가지고 있는 상기 KES블록(20)을 설계하기 위하여, folding 기술을 이용한 PrME(Pipelined recursive Modified Euclidean) 구조를 이용하여 하드웨어 복잡도를 줄이고 클락 주파수를 향상시킬 수 있다. 본 발명에서 제안한 PrME 구조는 II장에서 자세하게 설명한다.
3. Chien Search, Forney 알고리즘 및 오류정정 블록
ME(Mofified Euclidean) 알고리즘이 수행된 후, 상기 오류위치 다항식과 상기 오류값 다항식이 double buffered SP converter(21)로 전송된다. 이 값들은 Chien Search 알고리즘 블록(31)에 전달되고, 여기서 오류 위치 다항식의 근이 계산된다. Forney 알고리즘 블록(32)과 Chien Search 알고리즘(31)은 병렬로 동작하고 각각의 오류 위치에 대응하는 오류들의 크기를 계산한다. RS 복호 과정의 마지막 단계는 오류들을 정정하기 위하여 이진 XOR 연산을 통해 FIFO buffered 입력 코드워드에 오류 값들을 합하는 것이다.
Figure 112005012945561-PAT00045
에 대한 degree t차 오류위치 다항식이
Figure 112005012945561-PAT00046
,
Figure 112005012945561-PAT00047
,
Figure 112005012945561-PAT00048
에 의하여 정의된다. 그러면 이런 다항식의 근을 구하는 것은 RS 복호기의 광범위한 연산에 의하여 이루어진다. Chien Search 알고리즘은
Figure 112005012945561-PAT00049
상의 t차 오류위치 다항식의 근을 구하는데 사용될 수 있다. 그러나 Chien Search 알고리즘은 각각 계수
Figure 112005012945561-PAT00050
Figure 112005012945561-PAT00051
의 거듭제곱과의 곱셈연산을 필요로 한다(
Figure 112005012945561-PAT00052
는 더 이상 약분될 수 없는
Figure 112005012945561-PAT00053
상의 t차 다항식의 근). 오류위치와 오류값을 계산하기 위하여 Chien Search 알고리즘과 Forney 알고리즘을 실행한다. 도 3(b)는 8개의 Chien Search 셀로 구성된 Chien Search 블록도를 보여주고 있다. Finite-field 덧셈기(adder)는 도 3(a)에서 도시된 두 개의 Chien Search 셀의 합의 결과를 다음번 덧셈기로 보낸다.
도 3(c)는 Forney 알고리즘과 오류정정 블록을 보여주고 있고 여기서 오류값을 구한 뒤 심벌들을 정정한다. Galois-field의 나눗셈에 대해서는 제수(divisor)의 역원(inverse element)이 유도된 후 파이프라인 fully-parallel 곱셈기에 의하여 피제수(dividend)의 원소와 곱해진다.
Figure 112005012945561-PAT00054
에서의 non-zero 원소의 역계산을 위한 직접적인 방법은 field 원소들의 역수를 저장할 수 있는 8비트의 255워드들로 이루어진 간단한 look-up 테이블을 사용하는 것이다. 결과적으로 look-up 테이블은 static ROM에 의하여 실현되고, 파이프라인된 곱셈기보다도 더 적은 경로 지연(path delay)을 가지고 있다.
4. FIFO 메모리 Buffer 및 Control Logic
각각의 오류 값들이 계산될 때, 이에 대응되는 수신된 심벌이 FIFO 메모리(39)로부터 호출되며, FIFO 메모리는 복호 과정동안의 완충역할을 한다. 각각의 오류 값은 정정된 심벌을 만들기 위해 단순히 수신된 심벌에 합해진다. 오류가 발생하지 않은 위치에서 오류 값들은 0이 되므로 합해져도 이 위치에서 수신된 다항식은 바뀌지 않는다.
RS 복호기로 수신된 데이터들은 연속적으로 들어오므로 RS 복호기의 제어기(controller)는 각 복호 과정을 위한 제어신호를 발생시키는 것이 필요하다. 제어기 시 스템의 설계는 주제어기(master controller)(37)로 전달되기 위한 특수한 신호 변경 규약을 갖는 각각의 부제어기(local slave controller)를 구현함으로써 이루어진다.
Ⅱ. Pipelined recursive Modified Euclidean(PrME) 구조
면적 효율성 및 고속 처리 KES블록의 구현을 위한 folding 방법을 이용한 pipelined recursive modified Euclidean(PrME)구조가 자세하게 소개된다. 기존의 systolic-array ME 구조는 2t의 처리요소들(PEs)로 구성되어 있고 systolic-array 구조로 연결되어 있다. 이와 같은 2t PEs의 systolic-array 구조는 오류위치 다항식과 오류 값 다항식을 계산하고, ME 알고리즘을 연속적으로 실행한다. ME알고리즘의 systolic-array 구조는 2t 주기의 지연성을 가지고 있다. 도 4는 systolic-array ME 구조를 가지고 있는 RS 복호기의 타이밍도(timing chart)를 보여주고 있다. 그러나, 이 방법은 고속연산에서 매우 큰 하드웨어 비용을 요구하므로 향후 공간 비용(space cost)을 대신한 시간주기(time cycle)를 이용한 면적 효율적인 PrME 구조를 제안한다. systolic-array ME 구조에서 한 개의 PE를 규칙적으로 16번 사용하면 이상적으로 중첩된 키 등식을 해결할 수 있는데 이 구조는 단지 1/16의 하드웨어 비용만을 필요로 한다.
1. Modified Euclidean(ME) Algorithm
ME알고리즘은 키등식
Figure 112005012945561-PAT00055
을 계산함으로써 오류위치 다항식
Figure 112005012945561-PAT00056
와 오류값 다항식
Figure 112005012945561-PAT00057
을 구하기 위하여 사용된다. ME 알고리즘을 요약하면 다음과 같다.
Figure 112005012945561-PAT00058
i 번째 반복에서
Figure 112005012945561-PAT00059
Figure 112005012945561-PAT00060
Figure 112005012945561-PAT00061
Figure 112005012945561-PAT00062
의 각각의 계수가 되고, 알고리즘은
Figure 112005012945561-PAT00063
, (
Figure 112005012945561-PAT00064
은 다항식의 차수)일 때 멈추게 된다.
2. Pipelined recursive Modified Euclidean(PrME) 구조
Finite-field 원소의 곱셈연산은 RS 복호기의 VLSI 구현에서 매우 중요한 역할을 한다. 칩의 복잡도와 연산시간은 finite-field 곱셈기를 어떻게 구현하는가에 많이 의존한다. PrME 구조의 구현에 쓰이는
Figure 112005012945561-PAT00065
상의 파이프라인 fully-parallel 곱셈기 구조는 임계 경로 지연(critical path delay)의 상당한 감소를 제공한다.
ME 알고리즘에서 하나의 신드롬 다항식이 하나의 코드워드만큼의 시간차를 가지고 계산되며, 그 결과 상당한 부분의 systolic-array가 유휴 상태에 있게 된다. 이러한 사실은 데이터 처리율의 감소 없이 좀 더 효율적인 설계가 가능하다는 것을 의미한다. 도 5는 제안된 PrME(Piplelined recursive modified Euclidean) 구조의 KES 블록도를 보여주고 있으며, Degree Computation(DC) unit, Polynomial Arithmetic(PA) unit, Parallel Degree Detection(PDD) unit 그리고 Shift-Registers(SRs)들이 재귀적인 반복(recursive loop)으로 연결되어 있다. 이러한 PrME구조는 오류위치 다항식과 오류값 다항식을 계산한다.
가. 차수 계산 유닛(Degree Computation Unit)
DC unit은 다음의 두 가지 주요 기능을 수행한다. 첫 번째는 5비트 비교기(comparator)를 이용하여
Figure 112005012945561-PAT00066
두 다항식의 차수를 비교하는 것이다. 여기서 등식 1(a,b)와 2(a,b)에서의
Figure 112005012945561-PAT00067
Figure 112005012945561-PAT00068
, 그리고 등식3(a,b) 와 4(a,b)에서의
Figure 112005012945561-PAT00069
Figure 112005012945561-PAT00070
의 다항식들이 교환될 필요가 있는지를 결정한다. 그래서 제어회로(control circuit)는 등식(5)에서처럼
Figure 112005012945561-PAT00071
를 계산한다. 만약,
Figure 112005012945561-PAT00072
이면 신호 "sw"는 1 (high)이 되고, 그렇지 않으면 0 (low)가 된다. DC unit에서의 두 번째 기능은 다음번 ME 연산을 위해 다항식
Figure 112005012945561-PAT00073
Figure 112005012945561-PAT00074
의 차수를 계산하는 것이다. 이 다항식 차수 값은 각 반복단계의 마지막에 등록되고 다음 반복단계까지 shift-register에 상수로 저장된다. PrME 구조에서 높게 파이프라인된 한 개의 PE가 재귀적으로 사용되기 때문에 두개의 연속적인 반복 사이의 의존성을 피하기 위해서 이러한 shift-register의 사용은 매우 중요하다.
나. 다항식 산술 유닛(Polynomial Arithmetic Unit)
PA unit은
Figure 112005012945561-PAT00075
의 finite-field 연산을 수행하고 각 다항식의 계수를 연속으로(serial) 생성하고 PA unit에 보내진 순서대로 피드백(feed-back)되어 입력된다. 첫 번째 반복에서 병렬-직렬(PS) converter는 신드롬 블록과 PrME 구조 사이에서 신드롬 다항식을 직렬화하기 위해서 사용된다. PA unit에서 "start" 신호는 다항식들의 시작을 알리기 위해서 사용된다. 다시 말하면, "start" 신호는 항상 다항식
Figure 112005012945561-PAT00076
Figure 112005012945561-PAT00077
의 leading 계수
Figure 112005012945561-PAT00078
Figure 112005012945561-PAT00079
를 정렬한다. ME알고리즘의 첫 번째 단계에서 "start"신호에 의해 각 다항식의 leading 계수들이 적절히 유도되는 것과 같은 방법으로
Figure 112005012945561-PAT00080
,
Figure 112005012945561-PAT00081
뿐만 아니라 "start"신호도 한 time unit 만큼 지연된다. 신호 "
Figure 112005012945561-PAT00082
"는 DC unit에서 다항식
Figure 112005012945561-PAT00083
의 유도된 계수가 0인지 아닌지를 나타내기 위해서 발생된다. PA unit은 finite-field 곱셈과 덧셈을 처리한다. 하나의 PA unit은 등식 (1)-(4)를 계산하기 위해서 4개의 파이프라인 Galois-field 곱셈기와 두개의 Galois-field 덧셈기 그리고 10개의 MUX를 가지고 있다. ME알고리즘에서 첫 반복단계에서
Figure 112005012945561-PAT00084
는 각각
Figure 112005012945561-PAT00085
Figure 112005012945561-PAT00086
는 각각 0과 1로 초기화 된다.
PA unit은 파이프라인 fully-parallel 곱셈기를 사용하고, 클락 주파수의 두드러진 향상을 제공하기 위해 5단의 파이프라이닝 단계(pipelining stage)를 가지고 있다. 각각의 재귀적인 반복단계를 위하여 11단의 shift-register가 각 반복단계의 출력된 값을 저장하기 위해 사용된다. 그러므로 PrME구조는 총 16단의 파이프라이닝 레지스터(register)를 PA unit안에 가지고 있다.
다. 병렬 차수 검출 유닛(Parallel Degree Detection Unit)
DC unit에서 다항식
Figure 112005012945561-PAT00087
또는
Figure 112005012945561-PAT00088
의 차수는 제어신호
Figure 112005012945561-PAT00089
에 따라 각 반복단계마다 1씩 감소한다. 그래서 알고리즘을 멈추기 위한 조건
Figure 112005012945561-PAT00090
또는
Figure 112005012945561-PAT00091
을 만족하는지를 감지하기 위해 각 반복단계마다 알고리즘 stop 플래그 발생부(Algorithm Stop-flag Generation Unit)은
Figure 112005012945561-PAT00092
의 현재 차수 값들을 요구한다. PrME구조의 각 반복 단계에서 계산되는 각 다항식 차수가 다항식의 실제 차수와 분명히 다를 수 있다. 그러므로, 수신된 코드워드의 오류의 수가 t보다 작다면 멈추기 위한 조건이 감지되기 전까지 많은 반복단계의 초과계산을 초래할 수 있다. 이러한 상태는 각 반복단계에서 다항식
Figure 112005012945561-PAT00093
또는
Figure 112005012945561-PAT00094
의 차수가 적어도 한번은 감소하였다는 가정 하에 systolic-array ME구조로부터 이어 받은 것이다. 그러나, 수신된 코드워드에서 오류의 개수가 t보다 작다면 오류 값과 오류위치 다항식은 적은 반복단계를 거쳐서 계산될 수 있을 것이다. Systolic-array ME구조에는 2t PE unit이 사용되고 있기 때문에 알고리즘을 완료하는데 2t의 주기가 필요하다. 그러나, 재귀적으로 사용하는 단일 PE unit을 갖는 PrME 구조인 경우에는 알고리즘을 완료하는데 n주기가 걸린다.
PrME구조에서 전력소모를 최소화하기 위하여 stop조건이 만족될 때 알고리즘을 멈추고 불필요한 신호들의 toggle을 즉시 중지시킴으로써 저전력 상태로 블록을 유지시키는 것이 중요하다. 그러므로, 현재 상태에서 두 다항식
Figure 112005012945561-PAT00095
의 차수를 확인하기위해 병렬로 비교해 보는 것이 필요하다. 이런 방법을 이용하면, 각 반복단계의 끝에서 두 다항식중 하나의 차수가 t이하로 떨어지는지 즉 조건
Figure 112005012945561-PAT00096
또는
Figure 112005012945561-PAT00097
를 만족하는지 감지할 수 있다. 제안된 PDD구조는 "stop"신호를 발생시키기 위해 두 다항식
Figure 112005012945561-PAT00098
Figure 112005012945561-PAT00099
의 차수를 병렬로 비교하고 감지한다. 병렬 차수 검출 유닛(PDD unit)에는 중요한 4 부분이 있다. 첫 부분에서는 병렬 shift-register를 이용하여 두 다항식이 직렬에서 병렬로 전환된다. 각 반복단계의 끝에서
Figure 112005012945561-PAT00100
다항식의 차수를 계산한 5비트 값이 MUX의 선택을 위한 값으로 지정된다. 이 Polynomial
Figure 112005012945561-PAT00101
&
Figure 112005012945561-PAT00102
Selection MUX들은 두 다항식
Figure 112005012945561-PAT00103
의 계수를 정렬하는데 사용한다.
Figure 112005012945561-PAT00104
Figure 112005012945561-PAT00105
다항식의 차수 값 5비트 중에서 하위 4비트가
Figure 112005012945561-PAT00106
Figure 112005012945561-PAT00107
다항식의 MUX를 지정하기 위한 값으로 사용된다. 8비트 비교기(8 bit comparator)에서 일단 정렬이 되면 상위 8개의 계수들이 0이 아닌 값에 대하여 감지되고 이 값들은 서로 비교된다. 만약, 두 다항식의 상위8개의 계수들이 0이라면 하위8개의 계수들이 비교되고 알고리즘 stop 플래그 발생부에 의해 stop 신호가 발생한다. 상기 stop 신호(stop_flag)는 두 번째 단계를 위한 PrME구조의 모든 레지스터의 동기 리셋(reset)신호로 사용되고, 저전력 상태의 상기 다항식 산 술 유닛(PA unit)과 차수 계산 유닛(DC unit)에 입력된다. 다항식
Figure 112005012945561-PAT00108
또는
Figure 112005012945561-PAT00109
의 차수가 t이하이면
Figure 112005012945561-PAT00110
인지 조건을 검사하고 비교한다. 즉 이 경우에는 오류위치 다항식
Figure 112005012945561-PAT00111
Figure 112005012945561-PAT00112
가 되고, 오류 값 다항식
Figure 112005012945561-PAT00113
Figure 112005012945561-PAT00114
가 된다. 다시 말하면
Figure 112005012945561-PAT00115
이면 상기 오류위치 다항식
Figure 112005012945561-PAT00116
Figure 112005012945561-PAT00117
, 그리고 상기 오류값 다항식
Figure 112005012945561-PAT00118
Figure 112005012945561-PAT00119
가 되어 오류위치 및 오류값 다항식 버퍼에 버퍼링되어 출력된다.
좀 더 신중한 설계는 PDD unit안의 shift-register를 중복 사용하는 대신에 PrME구조 안에 이미 저장되어 있는 shift-register로부터의 값들을 사용하여 구현하는 것이다. 그러므로 PDD unit를 이용하여 저전력 상태로 유지시켜 줌으로써 저전력 소비에 있어서 더 많은 이득을 얻을 수 있다.
PrME구조에서 임계 경로(critical path)는 상기 차수 계산 유닛(DC unit)내의 5비트 비교기에 있으므로
Figure 112005012945561-PAT00120
로 critical path delay를 정의할 수 있다. 이 같은 설계는 일반적인 systolic-array 구조와 병렬 ME구조와 비교하여 훨씬 감소된 하드웨어 복잡도과 높은 클락 주파수의 이득을 얻을 수 있다.
Ⅲ. 결과 및 비교
본 발명에서 제안된 PrME구조를 이용한 면적효율성 및 고속처리 RS복호기는 Verilog-HDL로 설계하였고, ModelSim 시뮬레이터(simulator)로 검증하였다. Verilog-HDL로 설계한 RS 복호기의 결과는 C언어로 설계한 모델과 정확히 일치하였다. 이런 검증 단계 후에는 SYNOPSYS Design Compiler(DC)를 이용하여 적절한 time 및 area constraint와 1.2 V의 공급전압과 0.13-㎛ CMOS 기술을 이용하여 합성(synthesize)하고 구현하였다.
표 1에서는 다양한 KES블록의 임계 경로 지연(critical path delay)과 지연성(latency)을 비교한 결과를 보여주고 있다. 제안된 PrME구조는 이전의 systolic-array ME구조와 비교하여서는 거의 비슷한 임계경로 지연(critical path delay)을 보여주고 있고, Euclidean과 BM(Berlecamp-Massay)구조 보다는 훨씬 감소한 임계 경로 지연(critical path delay)을 보여주고 있다.
KES블록에서의 Critical path delay 와 latency의 비교
Architecture Critical path delay Latency
Proposed PrME 3T or2 +T xnor2 +T mux +T ff 2n+12
Systolic ME 3T or2 +T xnor2 +T mux +T ff 10t
Parallel ME T mult +T add +T ff 2t+2
EA T rom +T and2 +2T mult +T add +2T mux2 +T ff 2t
RiBM T mult +t add +T ff 2t
KES블록에서의 하드웨어 복잡도(Hardware complexity) 비교.
Architecture Multipliers Adders D-FFs MUXes
Proposed PrME 4 2 170 30
Systolic ME 8t 8t 78t+4 40t+2
Parallel ME 6t+2 3t+1 6t+4 N/A
EA 3t+1 4t+1 14t+6 11t+4
RiBM 6t+2 3t+1 6t+2 3t+1
RS(255,239) 복호기의 구현 결과
Design Proposed PrME Systolic ME Parallel ME EA
Syndrome 3,000 3,000 10,000 3,000
KES 17,000 117,500 84,000 44,700
Chien, Forney, Error 4,600 4,600 24,000 4,600
Total # of Gates 24,600 124,600 118,000 55,600
Clock Rate( MHz ) 625 625 112 300
Latency (Clock cycle) 522 (n+(2t) 2 +12) (0.83㎲) 355 (n+12t+20) (0.57㎲) 271 (n+16) (1.5㎲) 287 (n+32) (0.96㎲)
Throughput ( Gbit/s ) 5 5 2.5 2.4
Efficiency 203.25 40.13 21.19 43.17
Tech.(㎛) 0.13 0.13 0.25 0.13
표 2에서는 다양한 KES블록의 하드웨어 복잡도(hardware complexity)를 보여주고 있다. 일반적으로 사용되는 KES 블록들과 비교한 결과 본 발명에서 제안한 PrME구조는 단지 4개의 finite-field 곱셈기와 2개의 finite-field 덧셈기, 170개의 D-FF(D-플립플롭)만이 필요하다는 것을 보여주고 있다.
결론적으로 일반적인 ME(modified Euclidean) 구조, Euclidean 그리고 BM(Berlecamp-Massay) 구조 보다는 현저히 감소한 하드웨어 복잡도를 보여주고 있다.
표 3은 몇 종류의 RS 복호기의 게이트 수, clock rate, 지연성(latency), 처리율(throughput)들을 비교한 결과들을 보여주고 있다.
RS 복호기에서 FIFO 메모리를 제외한 하드웨어 복잡도를 비교한 결과 본 발명에서 제안한 RS 복호기는 이전의 systolic-array ME 및 Euclidean 구조와 비교하여 각각 20%, 44%의 게이트 수만 필요로 한다는 것을 보여주고 있다. 또한, parallel ME 구조와 비교하면 제안된 RS 복호기는 20%의 게이트 수를 필요로 한다. 본 발명에서 제안된 RS 복호기는 625 MHz에서 동작하고 0.83 ㎲의 latency, 5-GBits/s의 처리속도를 갖는다. 이 비교표들로부터 본 발명에서 제안된 RS 복호기가 최근 발표된 복호기들보다 면적과 속도를 고려한 효율성(Efficiency)면에서 4-5배정도 우수하다 것을 볼 수 있다.
도 6은 PrME구조를 이용한 RS 복호기의 타이밍도를 보여주고 있다. Syndrome Computation(SC)블록(10)은 신드롬 다항식을 계산하기 위하여 n클락 주기만큼의 처리 지연 후 2t 신드롬들을 출력한다. PrME구조는 각 반복단계마다 신드롬들을 받아들이고, 출력을 피드백(feed-back)한다. n주기 후에, PrME구조는 오류 위치 다항식
Figure 112005012945561-PAT00121
와 오류값 다항식
Figure 112005012945561-PAT00122
을 출력하고 Chien Search 알고리즘 블록(31)으로 병렬로 입력된다. 본 발명에서 제안된 RS 복호기는 코드 블록을 연속적으로 생성하는데, 고정된 지연 2n+12 클락 주기를 가지고 연산하고 결과를 출력한다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 또는 변형하여 실시할 수 있다.
이상에서 설명한 바와 같이, 본 발명에 따른 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기(RS decoder)는 면적효율성 및 고속처리를 위하여 folding 방법을 이용한 면적효율성 PrME(Piplelined recursive Modified Euclidean)구조를 제안하고 RS 복호기 설계에 적용하였다. 파이프라인 재귀적인(pipelined recursive) 구조는 단 하나의 처리요소(Processing Element)를 가짐으로써 면적효율적인 PrME 구조의 구현을 가능하게 하였다. 제안된 PrME구조는 일반적인 systolic-array 및 fully-parallel 구조와 비교하여 약 80% 정도 하드웨어 복잡도를 줄일 수 있다. 제안된 RS 복호기는 총 393 K의 게이트 수, 5-Gbit/s의 데이터 처리율과 클락 주파수 625 MHz에서 동작하는 결과를 보여주고 있다. 결론적으로 본 발명에서 제안한 RS 복호기는 현재까지 발표된 복호기중 가장 높은 면적 효율성을 가지고 있는 것 중에 하나이며, 초고속 광통신뿐 아니라 마그네틱(magnetic) 및 광저장 장치, 무선통신장비를 위한 차세대 FEC 장치 등에 바로 적용할 수 있는 효과가 있다.

Claims (5)

  1. 잡음이 있는 채널을 통해 전송된 심벌들을 입력받아, 신드롬 다항식
    Figure 112005012945561-PAT00123
    을 발생시키고, RS코드의 유효한 코드워드 인지를 감지하여 잡음에 의한 에러를 검출하여 신드롬 심벌들을 출력하는 신드롬 계산(SC) 블록(10)과, 상기 신드롬 값들을 병렬에서 직렬로 컨버팅하는 PS converter(11)과, 상기 KES 블록의 값들을 직렬에서 병렬로 컨버팅하는 SP converter (21); RS 코드의 상기 오류위치 다항식
    Figure 112005012945561-PAT00124
    와 상기 오류값 다항식
    Figure 112005012945561-PAT00125
    에 따라 Chien Search 및 Forney 알고리즘에 의해 RS 복호 과정에서 상기 오류 위치에 대응하는 오류들의 크기값을 구하여 오류가 정정된 코드워드를 출력하는 Chien Search, Forney 알고리즘 및 오류 정정 블록(30); 상기 PS converter(11), 상기 키 등식 솔버 블록(20), 상기 SP converter (21), 상기 Chien Search 알고리즘 블록(31)에 제어 신호를 발생시키는 RS 복호기 주 제어기(37); 및 상기 RS 복호기에서 수신된 심벌의 에러를 검출하고 에러를 정정하는 동안, 상기 수신된 코드워드의 심벌들을 FIFO 방식으로 지연시켜 버퍼에 저장하는 FIFO(지연버퍼)(39)를 포함하는 RS 복호기에 있어서,
    상기 신드롬 심벌들을 입력받아 Pipelined recursive Modified Euclidean(PrME) 알고리즘을 사용하여 잡음에 따른 에러를 정정하기 위해 키 등식(key equation)
    Figure 112005012945561-PAT00126
    Figure 112005012945561-PAT00127
    을 계산하여 오류위치 다항식
    Figure 112005012945561-PAT00128
    와 오류값 다항식
    Figure 112005012945561-PAT00129
    을 출력하는 키 등식 솔버(Key Equation Solver:KES) 블록(20);
    를 포함하여 이루어지는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기.
  2. 제 1 항에 있어서,
    상기 Chien Search, Forney 알고리즘 및 오류 정정 블록(30)에서
    Chien Search 알고리즘은
    Figure 112005012945561-PAT00130
    상의 t차 오류위치 다항식(t는 정정 가능한 최대개수의 오류)의 근을 구하는데 사용되고, 각각 계수
    Figure 112005012945561-PAT00131
    Figure 112005012945561-PAT00132
    (
    Figure 112005012945561-PAT00133
    는 더 이상 약분될 수 없는
    Figure 112005012945561-PAT00134
    상의 t차 다항식의 근)의 거듭제곱과의 곱셈연산을 통해 수신된 코드워드의 심벌들의 오류위치
    Figure 112005012945561-PAT00135
    (
    Figure 112005012945561-PAT00136
    ')를 계산하기 위한 Chien Search 알고리즘 블록(31);
    수신된 코드워드의 심벌들의 오류 위치값과 오류들의 크기값을 입력받아 Forney 알고리즘에 의해 오류값을 계산하기 위한 Forney 알고리즘 블록(32); 및
    상기 수신된 코드워드의 심벌들의 상기 RS 코드에서 오류 위치(
    Figure 112005012945561-PAT00137
    )에 대응하는 오류들의 크기값을 구하여 오류를 정정하여 상기 RS 복호 과정에서 상기 오류가 정정된 코드워드를 출력하는 에러 정정 블록(33);을 포함하는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기.
  3. 제 1 항 또는 제 2 항 중 어느 한 항에 있어서,
    상기 KES 블록(20)의 PrME(Pipelined recursive Modified Euclidean) 구조는 첫 번째는 5비트 비교기를 이용하여
    Figure 112005012945561-PAT00138
    두 다항식의 차수를 비교하고,
    Figure 112005012945561-PAT00139
    이면 신호 "sw"는 1 (high)이 되고, 그렇지 않으면 0 (low)가 되며, 두 번째 기능은 다음번 ME(Modified Euclidean) 연산을 위해 다항식
    Figure 112005012945561-PAT00140
    Figure 112005012945561-PAT00141
    의 차 수를 계산하며, 이 다항식 차수 값은 각 반복단계의 마지막에 등록되고 다음 반복단계까지 병렬 shift-register에 상수로 저장되는 차수 계산 유닛(Degree Computation Unit); 및
    파이프라인 fully-parallel 곱셈기를 사용하고, 클락 주파수의 두드러진 향상을 제공하기 위해 5단의 파이프라이닝 단계(pipelining stage)를 가지며 각각의 재귀적인 반복단계를 위하여 11단의 shift-register가 각 반복단계의 출력된 값을 저장하도록 4개의 파이프라인 Galois-field 곱셈기와 2개의 Galois-field 덧셈기 및, 다수개의 MUX, 다수개의 D-FF을 포함하고, PrME 제어기에 의한 "start" 신호에 따라 다항식의 시작을 알리도록 신드롬 다항식을 직렬화하여 다항식
    Figure 112005012945561-PAT00142
    Figure 112005012945561-PAT00143
    의 leading 계수
    Figure 112005012945561-PAT00144
    Figure 112005012945561-PAT00145
    를 정렬하고,
    Figure 112005012945561-PAT00146
    의 finite-field 곱셈과 덧셈 연산을 수행하고 각 다항식의 계수를 연속으로(serial) 생성하고 PA unit에 보내진 순서대로 피드백되어 입력되며, 첫 번째 반복에서 병렬-직렬 (PS) 컨버터에 의해 신드롬 블록과 PrME 구조 사이에서 신드롬 다항식을 직렬화시키는 다항식 산술 유닛(Polynomial Arithmetic Unit); 및
    ME 연산을 위해 다항식
    Figure 112005012945561-PAT00147
    Figure 112005012945561-PAT00148
    의 차수(degree)와, 두 다항식의
    Figure 112005012945561-PAT00149
    와 st_out 신호를 입력받아 신드롬 다항식의 병렬 차수를 검출하여 상기 오류위치 다항식
    Figure 112005012945561-PAT00150
    와 상기 오류값 다항식
    Figure 112005012945561-PAT00151
    을 출력하는 병렬 차수 검출 유닛(Parallel Degree Detection unit):을 포함하는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기.
  4. 제 3 항에 있어서,
    상기 병렬 차수 검출 유닛(Parallel Degree Detection unit)은
    두 다항식이
    Figure 112005012945561-PAT00152
    을 직렬에서 병렬로 전환되는 병렬 쉬프트 레지스터(parallel shift-register);
    각 반복단계의 끝에서
    Figure 112005012945561-PAT00153
    다항식의 차수를 계산한 5비트 값 중에 하위 4비트를
    Figure 112005012945561-PAT00154
    Figure 112005012945561-PAT00155
    다항식의 MUX의 선택을 위한 값으로 지정되고, 두 다항식
    Figure 112005012945561-PAT00156
    의 계수를 정렬하는데 사용되는 Polynomial
    Figure 112005012945561-PAT00157
    &
    Figure 112005012945561-PAT00158
    Selection MUX;
    일단 정렬이 되면 상위 8개의 계수들이 0이 아닌 값에 대하여 감지되고 이 값들은 서로 비교된다. 만약 두 다항식의 상위8개의 계수들이 0이라면 하위8개의 계수들이 비교되어 다항식
    Figure 112005012945561-PAT00159
    또는
    Figure 112005012945561-PAT00160
    의 차수가 t이하이면
    Figure 112005012945561-PAT00161
    인지 조건을 비교하여 오류위치 다항식
    Figure 112005012945561-PAT00162
    Figure 112005012945561-PAT00163
    가 되고, 오류 값 다항식
    Figure 112005012945561-PAT00164
    Figure 112005012945561-PAT00165
    되며
    Figure 112005012945561-PAT00166
    이면 상기 오류위치 다항식
    Figure 112005012945561-PAT00167
    Figure 112005012945561-PAT00168
    , 상기 오류값 다항식
    Figure 112005012945561-PAT00169
    Figure 112005012945561-PAT00170
    가 되는 8비트 비교기;
    상기 st_out 신호를 입력받아 stop신호(stop-flag)가 발생하고, 상기 stop 신호는 두 번째 단계를 위한 PrME구조의 모든 레지스터의 동기 리셋 신호로 사용되고, 저전력 상태의 PA unit과 DC unit에 입력되는 알고리즘 stop 플래그 발생부; 및
    PDD unit안에서 다항식의 데이터를 버퍼링하여 상기 오류위치 다항식
    Figure 112005012945561-PAT00171
    과 상기 오류값 다항식
    Figure 112005012945561-PAT00172
    을 출력하는 오류 위치 및 오류값 다항식 버퍼를 포함하는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기.
  5. 제 1 항에 있어서,
    상기 신드롬 계산(SC)블록(10)은 PrME구조의 각 반복단계마다 신드롬들을 받아들이고, 출력을 피드백하여 n주기 후에, RS복호과정에서 채널의 잡음에 따른 오류 정정을 위해 오류 위치 다항식
    Figure 112005012945561-PAT00173
    와 오류값 다항식
    Figure 112005012945561-PAT00174
    을 출력하고 Chien Search 알고리즘 블록(31)으로 병렬로 입력되므로 RS 복호기는 코드 블록을 연속적으로 생성하는데, 고정된 지연 2n+12 클락 주기를 가지고 연산하고 결과 신드롬들을 출력하는 것을 특징으로 하는 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드 솔로몬 복호기.
KR1020050020439A 2005-03-11 2005-03-11 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기 KR100756424B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050020439A KR100756424B1 (ko) 2005-03-11 2005-03-11 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050020439A KR100756424B1 (ko) 2005-03-11 2005-03-11 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기

Publications (2)

Publication Number Publication Date
KR20060098269A true KR20060098269A (ko) 2006-09-18
KR100756424B1 KR100756424B1 (ko) 2007-09-07

Family

ID=37629763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050020439A KR100756424B1 (ko) 2005-03-11 2005-03-11 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기

Country Status (1)

Country Link
KR (1) KR100756424B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101115088B1 (ko) * 2010-11-05 2012-02-28 인하대학교 산학협력단 절단된 RiBM 구조를 이용한 고속 저면적 리드-솔로몬 복호 장치
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
CN108471315A (zh) * 2017-02-23 2018-08-31 杭州海康威视数字技术股份有限公司 一种纠删译码方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100875928B1 (ko) 2007-05-09 2008-12-26 한국전자통신연구원 고속 리드-솔로몬 복호기의 수정 유클리드 알고리즘 연산회로 및 그 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4567594A (en) 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
KR100594002B1 (ko) * 1999-04-23 2006-06-28 삼성전자주식회사 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
KR101115088B1 (ko) * 2010-11-05 2012-02-28 인하대학교 산학협력단 절단된 RiBM 구조를 이용한 고속 저면적 리드-솔로몬 복호 장치
CN108471315A (zh) * 2017-02-23 2018-08-31 杭州海康威视数字技术股份有限公司 一种纠删译码方法及装置
CN108471315B (zh) * 2017-02-23 2021-08-20 杭州海康威视数字技术股份有限公司 一种纠删译码方法及装置

Also Published As

Publication number Publication date
KR100756424B1 (ko) 2007-09-07

Similar Documents

Publication Publication Date Title
Lee High-speed VLSI architecture for parallel Reed-Solomon decoder
Lee A high-speed low-complexity Reed-Solomon decoder for optical communications
US20060059409A1 (en) Reed-solomon decoder systems for high speed communication and data storage applications
US6990624B2 (en) High speed syndrome-based FEC encoder and decoder and system using same
Song et al. 10-and 40-Gb/s forward error correction devices for optical communications
US4868828A (en) Architecture for time or transform domain decoding of reed-solomon codes
US6374383B1 (en) Determining error locations using error correction codes
Lee et al. A high-speed pipelined degree-computationless modified Euclidean algorithm architecture for Reed-Solomon decoders
US7716562B1 (en) Reduced processing in high-speed reed-solomon decoding
US8700971B2 (en) Parallel residue arithmetic operation unit and parallel residue arithmetic operating method
JP2004032737A (ja) リード−ソロモン復号器
KR100756424B1 (ko) 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기
Yuan et al. Area-efficient Reed-Solomon decoder design for optical communications
JP2002335167A (ja) 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス
JP2002335165A (ja) 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス
WO2006120691A1 (en) Galois field arithmetic unit for error detection and correction in processors
KR20060065452A (ko) 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로
US6691277B1 (en) High speed pre-computing circuit and method for finding the error-locator polynomial roots in a Reed-Solomon decoder
Perrone et al. High-throughput one-channel RS (255,239) decoder
Lee et al. Pipelined recursive modified Euclidean algorithm block for low-complexity, high-speed Reed–Solomon decoder
US20070011592A1 (en) Decoder architecture for Reed Solomon codes
Lee A VLSI design of a high-speed Reed-Solomon decoder
Lee An ultra high-speed Reed-Solomon decoder
US9032277B1 (en) Parallel low and asymmetric rate Reed Solomon coding
KR100437845B1 (ko) 리드-솔로몬 복호기의 고속 수정 유클리드 알고리즘 연산방법 및 연산회로

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160602

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee