KR100493014B1 - 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서 - Google Patents

비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서 Download PDF

Info

Publication number
KR100493014B1
KR100493014B1 KR10-1999-0010078A KR19990010078A KR100493014B1 KR 100493014 B1 KR100493014 B1 KR 100493014B1 KR 19990010078 A KR19990010078 A KR 19990010078A KR 100493014 B1 KR100493014 B1 KR 100493014B1
Authority
KR
South Korea
Prior art keywords
output
order
polynomial
register
coefficient
Prior art date
Application number
KR10-1999-0010078A
Other languages
English (en)
Other versions
KR20000061196A (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 KR10-1999-0010078A priority Critical patent/KR100493014B1/ko
Priority to US09/528,676 priority patent/US6574771B1/en
Publication of KR20000061196A publication Critical patent/KR20000061196A/ko
Application granted granted Critical
Publication of KR100493014B1 publication Critical patent/KR100493014B1/ko

Links

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
    • 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/6561Parallelized 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/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
    • 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
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • 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/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/158Finite field arithmetic processing

Abstract

본 발명에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서는, 신드롬 생성블록에서 전송된 신드롬을 저장하기 위한 신드롬 레지스터 블록과, 보정 다항식 레지스터 블록과, 연결다항식 레지스터 블록과, 디스크레펀시 레지스터 블록과, 상기 신드롬 레지스터 블록, 상기 보정다항식 레지스터 블록, 상기 연결다항식 레지스터 블록 및 상기 디스크레펀시 레지스터 블록의 각 출력을 입력하여, 우수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 우수차수계수출력을 출력하는 제1데이터패스와, 기수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 기수차수계수출력을 출력하는 제2데이터패스 및 상기 우수차수의 다항식의 계수와 상기 기수차수의 다항식의 계수와 관련된 소정의 연산을 행하여 연산결과인 델타출력을 출력하는 델타출력부를 구비하는 듀얼모드 갈로아필드 데이터패스 및 제어신호에 따라 에러위치 다항식의 계수를 출력하는 출력부를 포함하여, 수행과정의 레이턴시를 최소로 할 수 있고 작은 면적과 고속동작이 가능하여 디코더의 성능을 대폭적으로 향상시킬 수 있는 이점이 있다.

Description

비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서{Galois field processor having dual parallel datapath for BCH/Reed-Solomon decoder}
본 발명은 에러정정장치에 관한 것으로, 특히 비씨에이치/리드-솔로몬 디코더에 있어서 듀얼 데이터패스를 사용함으로써 디코더의 성능을 대폭적으로 향상시킬 수 있는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서에 관한 것이다.
디지털 기술의 발달에 따라 채널이나 미디어에서 생기는 에러의 복원 기술도 함께 발달되어 왔다. 현재까지 여러가지 에러정정 기술이 보고되고 발달되어 왔으나, 그 중에서도 선형 블록 코드의 일종인 비씨에이치/리드-솔로몬 코드(Bose Chaudhuri Hocguenghem/Reed-Solomon Code, 이하 BCH/RS 코드라 함)는 강력한 에러정정 능력과 효율적인 인코딩, 디코딩 프로시져 때문에 가장 많이 쓰이고 있는 에러정정 기술이라고 할 수 있다. BCH/RS 코드의 디코딩 과정은 인코딩 과정에 비해 상대적으로 복잡하며, 고속의 디지털 데이터 프로세싱을 요구하는 시스템이 늘어감에 따라 이런 디코딩 하드웨어도 고속의 디지털 프로세싱이 가능한 아키텍쳐를 요구하고 있다.
하지만, 기존에 알려진 여러 디코딩 하드웨어 아키텍쳐로는 요구되어지는 만큼의 고속의 데이터 처리가 불가능한 단점을 보이고 있다. BCH/RS 디코더의 주요 과정은, 1) 전송된 코드로부터 에러의 유무에 대한 정보를 가지고 있는 신드롬을 계산하는 단계, 2) 계산된 신드롬으로부터의 에러위치 다항식의 계수를 계산하는 단계, 3) 에러위치 다항식의 근을 계산하는 단계, 4) 에러 값을 찾아내는 단계 및 5) 단계 3)에서의 에러 위치와 단계 4)에서의 에러 값을 가지고 에러를 복원하는 단계로 크게 나눌 수 있다. 여기서 단계 2)의 과정은 가장 복잡한 알고리듬과 하드웨어를 필요로 하고 있다.
따라서, 단계 2)의 과정이 BCH/RS 디코더의 고속 동작과 에러정정 능력을 결정하는 가장 중요한 부분으로 알려져 있다. 단계 2)의 과정을 수행하기 위해서 여러가지 알고리듬이 보고되어졌으며, 3심볼 이상의 다 에러정정에서 보편적으로 쓰이고 있는 것은 유클리디언 알고리듬(Euclidian Algorithm)과 마세이-베레캄프(Massey-Berlekamp)가 제안한 피드백 쉬프트레지스터 합성 알고리듬(FSR synthesis Algorithm: Feedback Shift Register synthesis Algorithm)이다. 하지만, 유클리디언 알고리듬을 하드웨어로 구현할 경우, 많은 승산기와 긴 레이턴시를 필요로 하기 때문에, 고속의 정정 능력이 필요한 경우에는 마세이-베레캄프의 알고리듬을 채용하는 경우가 많다.
또한, 마세이-베레캄프의 알고리듬도 그 구현 방법에 따라 승산기와 인버스 회로의 개수와, 수행과정의 레이턴시가 다르며 이는 전체 하드웨어의 사이즈와 성능에 상당한 영향을 미치게 된다.
본 발명이 이루고자하는 기술적 과제는, 수행과정의 레이턴시를 최소로 할 수 있고 작은 면적과 고속동작이 가능한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서를 제공하는 것이다.
상기 과제를 이루기 위하여 본 발명에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서는, 신드롬 생성블록에서 전송된 신드롬중 우수차수의 신드롬값을 저장하기 위한 우수차수 신드롬 레지스터 블록과 기수차수의 신드롬값을 저장하기 위한 기수차수 신드롬 레지스터 블록을 구비하는 신드롬 레지스터 블록; 우수차수계수출력을 입력하여 저장하기 위한 우수차수 보정다항식 계수 레지스터 블록과 기수차수계수출력을 입력하여 저장하기 위한 기수차수 보정다항식 계수 레지스터 블록을 구비한 보정 다항식 레지스터 블록; 상기 우수차수계수출력을 입력하여 보정 연결다항식의 우수차수의 계수를 저장하기 위한 우수차수 보정 연결다항식 계수 레지스터 블록과, 상기 기수차수계수출력을 입력하여 보정 연결다항식의 기수차수의 계수를 저장하기 위한 기수차수 보정 연결다항식 계수 레지스터 블록과, 상기 우수차수계수출력과 상기 우수차수 보정 연결다항식 계수 레지스터 블록의 출력을 입력하여 보정된 우수차수 연결다항식의 계수를 출력하는 우수차수 연결다항식 계수 레지스터 블록 및 상기 기수차수계수출력과 상기 기수차수 보정 연결다항식 계수 레지스터 블록의 출력을 입력하여 보정된 기수차수 연결다항식의 계수를 출력하는 기수차수 연결다항식 계수 레지스터 블록을 구비한 연결다항식 레지스터 블록; 델타출력을 입력하여, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 상기 연결다항식을 갱신하기 위한 디스크레펀시 값을 저장하는 디스크레펀시 레지스터 블록; 상기 신드롬 레지스터 블록, 상기 보정다항식 레지스터 블록, 상기 연결다항식 레지스터 블록 및 상기 디스크레펀시 레지스터 블록의 각 출력을 입력하여, 우수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 상기 우수차수계수출력을 출력하는 제1데이터패스와, 기수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 상기 기수차수계수출력을 출력하는 제2데이터패스 및 상기 우수차수의 다항식의 계수와 상기 기수차수의 다항식의 계수와 관련된 소정의 연산을 행하여 연산결과인 상기 델타출력을 출력하는 델타출력부를 구비하는 듀얼모드 갈로아필드 데이터패스; 및 제어신호에 따라 상기 우수차수 연결다항식 계수 레지스터 블록의 출력과 상기 기수차수 연결다항식 계수 레지스터 블록의 출력을 합성하여 에러위치 다항식의 계수로서 출력하는 출력부를 포함하는 것을 특징으로 한다.
상기 제1데이터패스는, 상기 디스크레펀시 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 제1바이패스버스의 데이터중 하나를 선택하여 저장한 후 출력하는 제1입력레지스터와, 상기 디스크레펀시 레지스터 블록의 출력과 상기 우수차수 신드롬 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제2입력레지스터 및 상기 우수차수 보정다항식 계수 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 상기 기수차수 연결다항식 계수 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제3입력레지스터를 구비하는 제1레지스터패치부; 상기 제2입력레지스터의 출력과 상기 제3입력레지스터의 출력을 승산하기 위한 제1승산기와, 상기 제1입력레지스터의 출력과 상기 제1승산기의 출력을 가산하기 위한 제1가산기를 구비하는 제1실행부; 및 상기 제1승산기의 출력과 상기 제1가산기의 출력중 하나를 선택하여 저장한 후 상기 우수차수계수출력으로서 출력하고 상기 제1바이패스버스를 통하여 상기 제1입력레지스터에 입력데이터를 제공하는 제1출력레지스터를 포함하는 것이 바람직하다.
또한, 상기 제2데이터패스는, 상기 기수차수 연결다항식 계수 레지스터 블록의 출력을 입력하여 저장한 후 출력하는 제4입력레지스터와, 상기 기수차수 보정다항식 계수 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 상기 기수차수 연결다항식 계수 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제5입력레지스터와, 상기 디스크레펀시 레지스터 블록의 출력과 상기 기수차수 신드롬 레지스터 블록의 출력 및 제2바이패스버스의 데이터중 하나를 선택하여 저장한 후 출력하는 제6입력레지스터를 구비하는 제2레지스터패치부; 상기 제5입력레지스터의 출력과 상기 제6입력레지스터의 출력을 승산하기 위한 제2승산기와, 상기 제4입력레지스터의 출력과 상기 제2승산기의 출력을 가산하기 위한 제2가산기를 구비하는 제2실행부; 및 상기 제2승산기의 출력과 상기 제2가산기의 출력중 하나를 선택하여 저장한 후 상기 기수차수계수출력으로서 출력하고 상기 제2바이패스버스를 통하여 상기 제6입력레지스터에 입력데이터를 제공하는 제2출력레지스터를 포함하는 것이 바람직하다.
또한, 상기 델타출력부는, 상기 제1가산기의 출력과 상기 제2가산기의 출력을 가산하기 위한 제3가산기 및 상기 제3가산기의 출력을 저장한 후 출력하는 제3출력레지스터를 포함하는 것이 바람직하다.
또한, 상기 우수차수 보정다항식 계수 레지스터 블록과 상기 기수차수 보정다항식 계수 레지스터 블록은 각각 복수의 레지스터를 구비하며, 하위차수 레지스터의 출력이 바로 상위차수의 레지스터에 입력되는 것이 바람직하다.
또한, 상기 디스크레펀시 레지스터 블록은, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 상기 연결다항식을 갱신하기 위한 디스크레펀시 값을 구하는 누산부와, 상기 델타출력과 상기 누산부의 출력을 선택적으로 출력하기 위한 제1멀티플렉서 및 상기 제1멀티플렉서의 출력을 저장한 후 상기 누산부에 출력하는 레지스터를 구비하는 델타레지스터 블록과, 상기 누산부의 출력을 인버스하기 위한 인버스부 및 상기 델타레지스터 블록의 출력과 상기 인버스부의 출력을 선택적으로 출력하기 위한 제2멀티플렉서를 포함하는 것이 바람직하다.
이하 첨부된 도면을 참조하여 본 발명의 실시예에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서에 대해 상세히 설명하기로 한다.
마세이-베레캄프(Massey-Berlekamp)가 제안한 피드백 쉬프트레지스터 합성 알고리듬은, 이미 알고 있는 신드롬값을 생성해낼 수 있도록 최소의 길이를 갖는 피드백 쉬프트 레지스터를 생성해내는 과정이다. 하지만, 본 발명에서는 마세이-베러캄프의 알고리듬에서와 같이 피드백 쉬프트 레지스터를 생성시키는 것이 아니라, 마세이-베레캄프의 알고리듬을 수행하기 위해 필요한 연산을 추출하여 레지스터-레지스터 레벨의 2개의 데이터패스를 갖는 듀얼모드 갈로아필드 데이터패스를 사용하여 구현함으로써, 에러 위치 다항식의 계수를 구하고 있다.
마세이-베레캄프 알고리듬을 수행하기 위해 필요한 명령을 추출하기 위해 요구되어지는 주요 연산을 정리하면 표 1과 같다.
마세이-베레캄프 알고리듬은 상기한 바와 같이 이미 알고 있는 신드롬값을 생성해낼 수 있도록 최소의 길이를 갖는 피드백 쉬피트 레지스터를 생성해 내는 과정으로, 여기서 필요한 주요 다항식은, 1) 연결다항식(C(x)), 2) 보정다항식(D(x)), 3) 디스크레펀시 값(delta) 등이다. 우선 마세이-베레캄프 알고리듬에서 디스크레펀시 값은 생성된 신드롬값과 기지의 신드롬값과의 차를 의미하는 것으로, 여기서의 차를 이용하여 보정다항식(D(x))을 갱신하고, 새로운 보정다항식(D(x))의 값을 이용해서 연결다항식(C(x))의 값을 조정함으로써, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성할 수 있도록 상기 과정을 반복하여 연결다항식(C(x))의 계수가 결국 에러 위치 다항식의 계수와 같게 되는 것을 이용한 것이다.
표 1과 같이 마세이-베레캄프 알고리듬에서는 여러가지 연산, 즉, 가산, 승산, 인버스, 누산, 쉬프트 등 다양한 연산이 사용됨을 알 수 있다.
도 1에 본 발명의 실시예에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서의 블록도를 도시하였다. 도 1에 도시된 본 발명의 실시예에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서는, 신드롬 레지스터 블록(10)과, 보정 다항식 레지스터 블록(12)과, 연결다항식 레지스터 블록(14)과, 디스크레펀시 레지스터 블록(16)과, 듀얼모드 갈로아필드 데이터패스(DMGFDP, 18) 및 출력부(20)를 구비하고 있다.
신드롬 레지스터 블록(10)은, 신드롬 생성블록(미도시)에서 전송된 신드롬중 우수차수의 신드롬값을 저장하기 위한 우수차수 신드롬 레지스터 블록(102)과 기수차수의 신드롬값을 저장하기 위한 기수차수 신드롬 레지스터 블록(100)을 구비하고 있으며, 보정 다항식 레지스터 블록(12)은, 우수차수계수출력(OUTEVEN)을 입력하여 저장하기 위한 우수차수 보정다항식 계수 레지스터 블록(106)과 기수차수계수출력(OUTODD)을 입력하여 저장하기 위한 기수차수 보정다항식 계수 레지스터 블록(104)을 구비하고 있다.
연결다항식 레지스터 블록(14)은, 우수차수계수출력(OUTEVEN)을 입력하여 보정 연결 다항식의 우수차수의 계수를 저장하기 위한 우수차수 보정 연결다항식 계수 레지스터 블록(112)과, 기수차수계수출력(OUTODD)을 입력하여 보정 연결다항식의 기수차수의 계수를 저장하기 위한 기수차수 보정 연결다항식 계수 레지스터 블록(108)과, 우수차수계수출력(OUTEVEN)과 우수차수 보정 연결다항식 계수 레지스터 블록(112)의 출력을 입력하여 보정된 우수차수 연결다항식의 계수를 출력하는 우수차수 연결다항식 계수 레지스터 블록(114) 및 기수차수계수출력(OUTODD)과 기수차수 보정 연결다항식 계수 레지스터 블록(108)의 출력을 입력하여 보정된 기수차수 연결다항식의 계수를 출력하는 기수차수 연결다항식 계수 레지스터 블록(110)을 구비하고 있다.
디스크레펀시 레지스터 블록(16)은 델타출력(OUTDELTA)을 입력하여 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 상기 연결다항식을 갱신하기 위한 디스크레펀시 값을 저장하는 것으로, 델타레지스터 블록(116)과 인버스부(118) 및 멀티플렉서(120)를 구비하고 있다.
도 1에서 CX로 명명된 레지스터 블록(108, 110, 112, 114)은 보정 연결다항식 또는 연결다항식의 계수를 저장하기 위한 레지스터 블록이고, DX로 명명된 레지스터 블록(104, 106)은 보정 다항식의 계수를 저장하기 위한 레지스터 블록이다. 또한, SYND라고 명명된 레지스터 블록(100, 102)은 이전의 과정인 신드롬 생성 블록(미도시)에서 전송되어진 신드롬값을 저장하기 위한 레지스터 블록이고, DELTA라고 명명된 레지스터 블록(116)은 연속적으로 생성되는 신드롬을 알고 있는 신드롬과 동일하게 생성할 수 있도록 연결 다항식을 갱신하기 위한 디스크레펀시 값을 저장하기 위한 레지스터 블록이다.
듀얼모드 갈로아필드 데이터패스(18)는, 신드롬 레지스터 블록(10), 보정다항식 레지스터 블록(12), 연결다항식 레지스터 블록(14) 및 디스크레펀시 레지스터 블록(16)의 각 출력을 입력하여, 우수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 우수차수계수출력(OUTEVEN)을 출력하는 제1데이터패스(도 2의 40)와, 기수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 기수차수계수출력(OUTODD)을 출력하는 제2데이터패스(도 2의 44) 및 우수차수의 다항식의 계수와 기수차수의 다항식의 계수와 관련된 소정의 연산을 행하여 연산결과인 델타출력(OUTDELTA)을 출력하는 델타출력부(도 2의 42)를 구비하고 있으며, 출력부(20)는, 제어신호(CS)에 따라 우수차수 연결다항식 계수 레지스터 블록(114)의 출력과 기수차수 연결다항식 계수 레지스터 블록(110)의 출력을 합성하여 에러위치 다항식의 계수(OUT)로서 출력한다.
한편, 도 2는 도 1에 도시된 듀얼모드 갈로아필드 데이터패스의 상세 구조를 도시한 도면으로서, 도 2에 도시된 듀얼모드 갈로아필드 데이터패스는, 제1데이터패스(40)와, 제2데이터패스(44) 및 델타출력부(42)를 구비하고 있다.
상기 제1데이터패스(40)는, 제1레지스터패치부(RF1)와 제1실행부(EXE1) 및 기입부(WB)인 제1출력레지스터블록(25)을 구비하고 있으며, 제1레지스터패치부(RF1)는, 디스크레펀시 레지스터 블록(16)의 출력(DLT)과 우수차수 연결다항식 계수 레지스터 블록(114)의 출력(CXEVEN) 및 제1바이패스버스(BYPASS1)의 데이터중 하나를 선택하여 저장한 후 출력하는 제1입력레지스터(20)와, 디스크레펀시 레지스터 블록(16)의 출력(DLT)과 우수차수 신드롬 레지스터 블록(102)의 출력(SYNDEVEN)중 하나를 선택하여 저장한 후 출력하는 제2입력레지스터(21) 및 우수차수 보정다항식 계수 레지스터 블록(106)의 출력(DXEVEN)과 우수차수 연결다항식 계수 레지스터 블록(114)의 출력(CXEVEN) 및 기수차수 연결다항식 계수 레지스터 블록(110)의 출력(CXODD)중 하나를 선택하여 저장한 후 출력하는 제3입력레지스터(22)를 구비하고 있다.
제1실행부(EXE1)는, 제2입력레지스터(21)의 출력과 제3입력레지스터(22)의 출력을 승산하기 위한 제1승산기(23)와, 제1입력레지스터(20)의 출력과 제1승산기(23)의 출력을 가산하기 위한 제1가산기(24)를 구비하고 있으며, 제1출력레지스터(25)는, 제1승산기(23)의 출력과 제1가산기(24)의 출력중 하나를 선택하여 저장한 후 우수차수계수출력(OUTEVEN)으로서 출력하고 제1바이패스버스(BYPASS1)를 통하여 제1입력레지스터(20)에 입력데이터를 제공한다.
또한, 제2데이터패스(44)는, 제2레지스터패치부(RF2)와 제2실행부(EXE2) 및 기입부(WB)인 제2출력레지스터(31)를 구비하고 있으며, 제2레지스터패치부(RF2)는, 기수차수 연결다항식 계수 레지스터 블록(110)의 출력(CXODD)을 입력하여 저장한 후 출력하는 제4입력레지스터(26)와, 기수차수 보정다항식 계수 레지스터 블록(104)의 출력(DXODD)과 우수차수 연결다항식 계수 레지스터 블록(114)의 출력(CXEVEN) 및 기수차수 연결다항식 계수 레지스터 블록(110)의 출력(CXODD)중 하나를 선택하여 저장한 후 출력하는 제5입력레지스터(27)와, 디스크레펀시 레지스터 블록(16)의 출력과 기수차수 신드롬 레지스터 블록(100)의 출력(SYNDODD) 및 제2바이패스버스(BYPASS2)의 데이터중 하나를 선택하여 저장한 후 출력하는 제6입력레지스터(28)를 구비하고 있다.
제2실행부(EXE2)는, 제5입력레지스터(27)의 출력과 제6입력레지스터(28)의 출력을 승산하기 위한 제2승산기(29)와, 제4입력레지스터(26)의 출력과 제2승산기(29)의 출력을 가산하기 위한 제2가산기(30)를 구비하고, 제2출력레지스터(31)는, 제2승산기(29)의 출력과 제2가산기(30)의 출력중 하나를 선택하여 저장한 후 기수차수계수출력(OUTODD)으로서 출력하고 제2바이패스버스(BYPASS2)를 통하여 제6입력레지스터(28)에 입력데이터를 제공한다.
또한, 델타출력부(42)는, 제1가산기(24)의 출력과 제2가산기(30)의 출력을 가산하기 위한 제3가산기(32) 및 제3가산기(32)의 출력을 저장한 후 출력하는 제3출력레지스터(33)를 구비하고 있다.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서는, 전체적으로 고속 동작을 가능하게 하기 위하여 3개의 단으로 파이프라이닝되어있다. 즉 레지스터로부터의 소스를 패치하는 레지스터 패치부(RF), 그리고 실제로 계산을 행하는 실행부(EXE), 그리고 생성된 결과를 레지스터에 기입하는 기입부(WB)로 구성되어 있다.
한편, 도 2의 듀얼모드 갈로아필드 데이터패스(18)는, 듀얼 형태의 파이프라인드 데이터패스로서, 마세이-베레캄프 알고리듬을 효율적으로 수행할 수 있도록 마세이-베레캄프 알고리듬에 특별히 튜닝한 구조이다.
도 2에 도시된 듀얼모드 갈로아필드 데이터패스의 구조는 2개의 패러랠한 데이터패스인 제1데이터패스(40)와 제2데이터패스(44)가 우수차수계수 및 기수차수계수에 관련된 연산을 각각 수행하고, 여기서 나온 결과를 마지막으로 먹싱하여 이를 각 레지스터 블록에 기입할 수 있는 구조로 되어 있다. 2개의 데이터패스는 듀얼 형태로 구성되어 있으며, 이는 마세이-베레캄프 알고리듬 수행시, 우수차수와 기수차수의 다항식의 계수들은 상호 작용이 거의 없다는 특성을 이용한 것이다. 그리고, 델타출력부(42)는, 마세이-베레캄프 알고리듬 수행에 필요한 연산중 우수차수계수와 기수차수계수가 모두 관련된 연산을 수행하기 위한 것이다.
한편, 2개 이상의 연산 유니트를 가지는 데이터패스를 구비한 아키텍쳐의 경우 소스와 데스티네이션 레지스터 등의 리소스의 충돌 등으로 인해 2개 이상의 연산 유니트의 처리량이 이상적으로 2배만큼 되지 않기 때문에, 본 발명에서는, 각각의 데이터패스의 소스와 데스티네이션이 원천적으로 충돌을 일으키지 않도록 하기 위하여, 2개의 데이터패스중 제1데이터패스(40)는 우수차수계수 프로세서로, 제2데이터패스(44)는 기수차수계수 프로세서로 동작하게 하여 단일 유니트형태의 데이터패스보다 결과적으로 전체 처리량을 2배에 가까운 성능 향상을 얻을 수 있다.
또한, 도 2에 도시된 제1바이패스버스(BYPASS1)과 제2바이패스버스(BYPASS2)는 실행부(EXE1, EXE2)로부터 레지스터 패치부(RF1, RF2)로의 직접 연결통로가 되도록 하여 레지스터 파일로의 기입동작없이 실행부(EXE1, EXE2)의 결과를 다음 연산에 사용할 수 있게 하여 전체적인 명령/사이클의 향상을 가져올 수 있게 하였다.
도 3은 2개의 연산 유니트(PEA, PEB)의 파이프라인드 동작 다이어그램을 도시한 것으로, 대기시간은 3클록 사이클이며, 처리량은 1 명령/사이클이 됨을 보이고 있다.
도 4a는 신드롬 레지스터 블록(10)의 상세 블록도로서, t개의 우수차수 신드롬 레지스터(SYND 2, SYND 4, ..., SYND 2t)와 t개의 기수차수 신드롬 레지스터(SYND 1, SYND 3, ..., SYND (2t-1))를 구비하고 있으며, 모든 레지스터들은 사용하는 유한체를 생성해내는 원시 다항식의 차수인 M 비트의 폭을 가지며, 전체 레지스터의 갯수는 2t이고, 여기서 t는 코드의 정정가능한 에러의 한계를 나타낸다. 도 4b에 도시된 바와 같이 각 레지스터는 인에이블단자(OEN)에 인가되는 출력인에이블신호 및 래치단자(LATCH)에 인가되는 래치신호에 따라 데이터단자(DATA)로 입력되는 우수차수 신드롬과 기수차수 신드롬을 래치하여 출력한다. 따라서, 신드롬 레지스터 블록(10)의 출력은, 기수차수 신드롬과 우수차수 신드롬 값들중 하나씩이 선택되어져 듀얼모드 갈로아필드 데이터패스(18)의 레지스터 패치부(RF)에 입력된다.
도 5는 연결다항식 레지스터 블록(14)의 상세 블록도로서, 우수차수 보정 연결다항식 계수 레지스터 블록(112)은, (t+1)/2 개의 레지스터(CX0*, CX2*, ..., CX t*)를 구비하고, 기수차수 보정 연결다항식 계수 레지스터 블록(108)은 (t+1)/2 개의 레지스터(CX1*, CX3*, ..., CX (t-1)*)를 구비하고 있다. 또한, 우수차수 연결다항식 계수 레지스터 블록(114)은, (t+1)/2 개의 레지스터(CX0, CX2, ..., CX t)를 구비하고, 기수차수 연결다항식 계수 레지스터 블록(110)은 (t+1)/2 개의 레지스터(CX1, CX3, ..., CX (t-1))를 구비하고 있다.
t+1개의 M비트 레지스터들(CX0*, CX1*, ..., CX t*)은 보정 연결다항식의 계수를 정정하기 위한 것으로, 각 반복실행에 의해 생성되는 디스크레펀시로부터 보정되어진 값을 가지게 된다. 뒷단의 (t+1)개의 레지스터들(CX0, CX1, ..., CX t)은 보정되어진 연결 다항식의 계수를 가지게 된다. 여기서 보정 연결다항식의 계수를 연결다항식으로 클록 사이클의 잃음없이 갱신하기 위하여 뒷단의 레지스터들(CX0, CX1, ..., CX t)은 2개의 입력포트를 가지고 있다. 하나는 듀얼모드 갈로아필드 데이터패스(18)의 출력이고 다른 하나는 앞단의 보정 연결다항식 레지스터 블록(108, 112)에 있는 t+1개의 레지스터들(CX0*, CX1*, ..., CX t*)의 출력이다. 뒷단의 연결다항식 레지스터 블록(110, 114)에 있는 (t+1)개의 레지스터들(CX0, CX1, ..., CX t)의 출력도 출력인에이블신호에 의해 듀얼모드 갈로아필드 데이터패스(18)로의 버스점유를 제어받게 된다.
도 6a는 보정 다항식 레지스터 블록(12)의 상세 블록도로서, 우수차수 보정다항식 계수 레지스터 블록(106)은, (t+1)/2 개의 레지스터(DX0, DX2, ..., DX t)를 구비하고, 기수차수 보정다항식 계수 레지스터 블록(104)은 (t+1)/2 개의 레지스터(DX1, DX3, ..., DX (t-1))를 구비하고 있다. 그리고 (t+1)개의 M비트 레지스터들(DX1, DX2, ..., DX t)은 2개의 입력포트를 가지며, 하나는 듀얼모드 갈로아필드 데이터패스(18)의 출력을 로드하기 위한 입력포트이고, 다른 하나는 하위 차수의 레지스터 출력이 입력되는 입력포트이다. 보정다항식 레지스터 블록에 있는 (t+1)개의 레지스터들(DX0, DX1, ..., DX t)의 각 출력도 도 6b에 도시된 바와 같이 출력인에이블신호에 의해 듀얼모드 갈로아필드 데이터패스(18)로의 버스점유를 제어받게 된다. 도 6b는 도 6a에 도시된 각 레지스터의 동작을 설명하기 위한 도면으로서, 참조부호 60은 멀티플렉서이고 참조부호 62는 레지스터이다. 멀티플렉서(60)의 입력중 하나가 하위 차수의 레지스터의 출력이므로, 하위 차수의 계수를 바로 상위 차수의 레지스터에 쉬프트시키면, 표 1의 연산중 D(x) = xD(x)와 같은 연산을 수행할 수 있다.
도 7은 디스크레펀시 레지스터 블록(16)의 상세 블록도로서, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 연결다항식을 갱신하기 위한 디스크레펀시 값을 구하기 위한 누산부(70)와, 델타출력(OUTDELTA)과 누산부(70)의 출력을 선택적으로 출력하기 위한 멀티플렉서(72)와 멀티플렉서(72)의 출력을 저장한 후 누산부(70)에 출력하는 레지스터(74)를 구비하는 델타레지스터 블록(116)과, 누산부(70)의 출력을 인버스하기 위한 인버스부(118) 및 레지스터(74)의 출력과 인버스부(118)의 출력을 선택적으로 출력하기 위한 멀티플렉서(120)를 구비하고 있다.
디스크레펀시 레지스터 블록(16)은 듀얼모드 갈로아필드 데이터패스(18)의 기입부(WB)에서 출력되는 데이터를 누산부(70)에서 축적하여 기지의 신드롬값과의 차이를 구하는 데 사용되며, 또한, 인버스부(118)는 표 1의 D(x) = D(x)/δ와 같이 보정을 위한 나눗셈이 요구되어지는 경우 사용하기 위한 것이다.
상기와 같이 본 발명은 요구되어지는 연산의 특성중 필요다항식들의 우수차수계수와 기수차수계수를 2개의 데이터패스를 이용하여 계산하고 분리된 소스, 데스티네이션 레지스터를 사용함으로써 리소스간의 충돌을 방지하여 2배에 가까운 처리량을 얻을 수 있도록 설계되었다. 즉, 데이터패스를 단지 2개의 승산기를 갖는 2중의 듀얼파이프라인 구조로 설계하여 단일 데이터패스를 사용할 때에 비해서 2배에 가까운 처리량을 얻을 수 있도록 하였고, 파이프라이닝에 의한 스위칭 스피드를 높일 수 있게 하여, 고속 동작에 적합하도록 설계되어여 있어, 고속과 저전력이 동시에 요구되어지는 비씨에이치/리드-솔로몬 디코더에 적용할 수 있다.
표 2는 본 발명의 성능을 단일 데이터패스를 갖는 구조와 비교한 것이다.
듀얼 데이터패스 제어부 전체 성능
< 2x 속도 (branch) > 1x 면적 = 1/2 싸이클/명령
< 2x 면적 > 1x 에너지 1<면적/명령<2
> 2x 에너지 = 클록 주파수 1>에너지/명령>1/2=> 1/2<에너지×딜레이<1
= 클록 주파수
표 2에서 알수 있는 바와 같이, 본 발명은, 우선 데이터패스가 2개의 연산유니트를 가지게 되므로 동일 동작 클록으로 2배의 속도 향상을 기대할 수 있다. 하지만, 동시에 데이터패스의 에어리어가 2배의 면적만큼 증가하게 되고, 따라서, 에너지 소모가 데이터패스 영역에서 2배만큼 늘어나게 된다. 하지만 듀얼 데이터패스를 제어하기 위한 제어부(미도시)의 하드웨어는 별다른 오버헤드를 필요하지 않기 때문에 거의 동일하므로 제어부의 에너지 소비는 거의 동일하다. 따라서, 제어부와 데이터패스를 포함한 전체 면적은 2배가 되지 않으며, 명령당 반사이클이라는 속도 향상을 얻을 수 있게 되고, 결과적으로 이것은 면적/명령이 2보다 작게되고, 이는 에너지/명령이 1보다 작게되어 전체적인 에너지-딜레이 프로덕트를 1보다 작게하여 성능향상을 얻을 수 있다. 즉, 단일 데이터패스를 사용할 때에 비해서 듀얼 구조를 갖는 본 발명은, 동일한 동작 클록 사용시에 2배에 가까운 속도 향상과, 1보다 작은 에너지-딜레이 프로덕트를 가지게 되어 고속 동작 뿐만 아니라 저전력 동작도 동시에 얻을 수 있는 장점을 갖게 된다
상술한 바와 같이 본 발명에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서는, 수행과정의 레이턴시를 최소로 할 수 있고 작은 면적과 고속동작이 가능하여 디코더의 성능을 대폭적으로 향상시킬 수 있는 이점이 있다.
도 1은 본 발명의 실시예에 의한 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서의 블록도이다.
도 2는 도 1에 도시된 듀얼모드 갈로아필드 데이터패스의 구조를 도시한 도면이다.
도 3은 도 2에 도시된 듀얼모드 갈로아필드 데이터패스의 동작 다이어그램이다.
도 4a는 도 1에 도시된 신드롬 레지스터 블록의 상세도이고, 도 4b는 도 4a에 도시된 각 레지스터의 동작을 설명하기 위한 도면이다.
도 5는 도 1에 도시된 연결다항식 레지스터 블록의 상세도이다.
도 6a는 도 1에 도시된 보정다항식 레지스터 블록의 상세도이고, 도 6b는 도 6a에 도시된 각 레지스터의 동작을 설명하기 위한 도면이다.
도 7은 디스크레펀시 레지스터 블록의 상세도이다.
<도면의 주요부분에 대한 부호의 설명>
10...신드롬 레지스터 블록, 12...보정다항식 레지스터 블록,
14...연결다항식 레지스터 블록, 16...디스크레펀시 레지스터 블록,
18...듀얼모드갈로아필드데이터패스, 20...출력부.

Claims (6)

  1. 신드롬 생성블록에서 전송된 신드롬중 우수차수의 신드롬값을 저장하기 위한 우수차수 신드롬 레지스터 블록과 기수차수의 신드롬값을 저장하기 위한 기수차수 신드롬 레지스터 블록을 구비하는 신드롬 레지스터 블록;
    우수차수계수출력을 입력하여 저장하기 위한 우수차수 보정다항식 계수 레지스터 블록과 기수차수계수출력을 입력하여 저장하기 위한 기수차수 보정다항식 계수 레지스터 블록을 구비한 보정 다항식 레지스터 블록;
    상기 우수차수계수출력을 입력하여 보정 연결다항식의 우수차수의 계수를 저장하기 위한 우수차수 보정 연결다항식 계수 레지스터 블록과, 상기 기수차수계수출력을 입력하여 보정 연결다항식의 기수차수의 계수를 저장하기 위한 기수차수 보정 연결다항식 계수 레지스터 블록과, 상기 우수차수계수출력과 상기 우수차수 보정 연결다항식 계수 레지스터 블록의 출력을 입력하여 보정된 우수차수 연결다항식의 계수를 출력하는 우수차수 연결다항식 계수 레지스터 블록 및 상기 기수차수계수출력과 상기 기수차수 보정 연결다항식 계수 레지스터 블록의 출력을 입력하여 보정된 기수차수 연결다항식의 계수를 출력하는 기수차수 연결다항식 계수 레지스터 블록을 구비한 연결다항식 레지스터 블록;
    델타출력을 입력하여, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 상기 연결다항식을 갱신하기 위한 디스크레펀시 값을 저장하는 디스크레펀시 레지스터 블록;
    상기 신드롬 레지스터 블록, 상기 보정다항식 레지스터 블록, 상기 연결다항식 레지스터 블록 및 상기 디스크레펀시 레지스터 블록의 각 출력을 입력하여, 우수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 상기 우수차수계수출력을 출력하는 제1데이터패스와, 기수차수의 다항식의 계수와 관련된 소정의 연산을 행한 후 연산결과인 상기 기수차수계수출력을 출력하는 제2데이터패스 및 상기 우수차수의 다항식의 계수와 상기 기수차수의 다항식의 계수와 관련된 소정의 연산을 행하여 연산결과인 상기 델타출력을 출력하는 델타출력부를 구비하는 듀얼모드 갈로아필드 데이터패스; 및
    제어신호에 따라 상기 우수차수 연결다항식 계수 레지스터 블록의 출력과 상기 기수차수 연결다항식 계수 레지스터 블록의 출력을 합성하여 에러위치 다항식의 계수로서 출력하는 출력부를 포함하는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
  2. 제 1 항에 있어서, 상기 제1데이터패스는, 상기 디스크레펀시 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 제1바이패스버스의 데이터중 하나를 선택하여 저장한 후 출력하는 제1입력레지스터와, 상기 디스크레펀시 레지스터 블록의 출력과 상기 우수차수 신드롬 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제2입력레지스터 및 상기 우수차수 보정다항식 계수 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 상기 기수차수 연결다항식 계수 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제3입력레지스터를 구비하는 제1레지스터패치부; 상기 제2입력레지스터의 출력과 상기 제3입력레지스터의 출력을 승산하기 위한 제1승산기와, 상기 제1입력레지스터의 출력과 상기 제1승산기의 출력을 가산하기 위한 제1가산기를 구비하는 제1실행부; 및 상기 제1승산기의 출력과 상기 제1가산기의 출력중 하나를 선택하여 저장한 후 상기 우수차수계수출력으로서 출력하고 상기 제1바이패스버스를 통하여 상기 제1입력레지스터에 입력데이터를 제공하는 제1출력레지스터를 포함하는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
  3. 제 2 항에 있어서, 상기 제2데이터패스는, 상기 기수차수 연결다항식 계수 레지스터 블록의 출력을 입력하여 저장한 후 출력하는 제4입력레지스터와, 상기 기수차수 보정다항식 계수 레지스터 블록의 출력과 상기 우수차수 연결다항식 계수 레지스터 블록의 출력 및 상기 기수차수 연결다항식 계수 레지스터 블록의 출력중 하나를 선택하여 저장한 후 출력하는 제5입력레지스터와, 상기 디스크레펀시 레지스터 블록의 출력과 상기 기수차수 신드롬 레지스터 블록의 출력 및 제2바이패스버스의 데이터중 하나를 선택하여 저장한 후 출력하는 제6입력레지스터를 구비하는 제2레지스터패치부; 상기 제5입력레지스터의 출력과 상기 제6입력레지스터의 출력을 승산하기 위한 제2승산기와, 상기 제4입력레지스터의 출력과 상기 제2승산기의 출력을 가산하기 위한 제2가산기를 구비하는 제2실행부; 및 상기 제2승산기의 출력과 상기 제2가산기의 출력중 하나를 선택하여 저장한 후 상기 기수차수계수출력으로서 출력하고 상기 제2바이패스버스를 통하여 상기 제6입력레지스터에 입력데이터를 제공하는 제2출력레지스터를 포함하는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
  4. 제 3 항에 있어서, 상기 델타출력부는, 상기 제1가산기의 출력과 상기 제2가산기의 출력을 가산하기 위한 제3가산기 및 상기 제3가산기의 출력을 저장한 후 출력하는 제3출력레지스터를 포함하는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
  5. 제 1 항에 있어서, 상기 우수차수 보정다항식 계수 레지스터 블록과 상기 기수차수 보정다항식 계수 레지스터 블록은 각각 복수의 레지스터를 구비하며, 하위차수 레지스터의 출력이 바로 상위차수의 레지스터에 입력되는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
  6. 제 1 항에 있어서, 상기 디스크레펀시 레지스터 블록은, 연속적으로 생성되는 신드롬을 기지의 신드롬과 동일하게 생성될 수 있도록 상기 연결다항식을 갱신하기 위한 디스크레펀시 값을 구하는 누산부와, 상기 델타출력과 상기 누산부의 출력을 선택적으로 출력하기 위한 제1멀티플렉서 및 상기 제1멀티플렉서의 출력을 저장한 후 상기 누산부에 출력하는 레지스터를 구비하는 델타레지스터 블록과, 상기 누산부의 출력을 인버스하기 위한 인버스부 및 상기 델타레지스터 블록의 출력과 상기 인버스부의 출력을 선택적으로 출력하기 위한 제2멀티플렉서를 포함하는 것을 특징으로 하는 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서.
KR10-1999-0010078A 1999-03-24 1999-03-24 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서 KR100493014B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-1999-0010078A KR100493014B1 (ko) 1999-03-24 1999-03-24 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서
US09/528,676 US6574771B1 (en) 1999-03-24 2000-03-20 Galios field processor having dual parallel data path for Bose Chaudhuri Hocquenghem/Reed-Solomon decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0010078A KR100493014B1 (ko) 1999-03-24 1999-03-24 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서

Publications (2)

Publication Number Publication Date
KR20000061196A KR20000061196A (ko) 2000-10-16
KR100493014B1 true KR100493014B1 (ko) 2005-06-07

Family

ID=19577564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0010078A KR100493014B1 (ko) 1999-03-24 1999-03-24 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서

Country Status (2)

Country Link
US (1) US6574771B1 (ko)
KR (1) KR100493014B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047481B2 (en) * 2001-10-26 2006-05-16 Koninklijke Philips Electronics N.V. Decoding method and decoder for Reed Solomon code
KR100733963B1 (ko) * 2005-11-09 2007-06-29 한국전자통신연구원 높은 오류 정정 능력을 가지는 리드-솔로몬 복호화 장치 및그 방법
KR101770122B1 (ko) 2010-12-30 2017-08-23 삼성전자주식회사 Simd 프로세서를 이용하는 갈로아 필드 이진 다항식 제산 장치 및 방법
US11146293B2 (en) 2020-03-10 2021-10-12 International Business Machines Corporation System and method for optimizing Reed-Solomon decoder for errors and erasures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535225A (en) * 1993-10-12 1996-07-09 Hughes Aircraft Company Time domain algebraic encoder/decoder
JPH10135848A (ja) * 1996-10-30 1998-05-22 Texas Instr Japan Ltd リードソロモン符号化装置およびその方法
WO2000028668A1 (en) * 1998-11-09 2000-05-18 Broadcom Corporation Forward error corrector

Also Published As

Publication number Publication date
US6574771B1 (en) 2003-06-03
KR20000061196A (ko) 2000-10-16

Similar Documents

Publication Publication Date Title
US5323402A (en) Programmable systolic BCH decoder
US6374383B1 (en) Determining error locations using error correction codes
Lee High-speed VLSI architecture for parallel Reed-Solomon decoder
US6836869B1 (en) Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
KR920000828B1 (ko) 가로아체(Galois field)연산장치
US20030192007A1 (en) Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method
US5367478A (en) Mutual division circuit
US7089276B2 (en) Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
GB2391769A (en) Reed-solomon decoder and decoding method for errors and erasures decoding
US20030101406A1 (en) Low complexity and low power FEC supporting high speed parallel decoding of syndrome-based FEC codes
US6327690B1 (en) Integrated reed-solomon error correction code encoder and syndrome generator
US7870468B1 (en) Reed-solomon decoder using a configurable arithmetic processor
US6978415B1 (en) Variable redundancy cyclic code encoders
KR100493014B1 (ko) 비씨에이치/리드-솔로몬 디코더용 2중 패러랠 데이터패스를 갖는 갈로아필드 프로세서
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
JP3447053B2 (ja) 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス
JP2002335167A (ja) 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス
KR100756424B1 (ko) 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기
KR101805073B1 (ko) 폴딩된 곱셈기가 적용된 bch 디코더
JP3614978B2 (ja) ガロア体の除算方法および除算装置
WO2006120691A1 (en) Galois field arithmetic unit for error detection and correction in processors
US20070011592A1 (en) Decoder architecture for Reed Solomon codes
Tang et al. An efficient parallel architecture for resource-shareable Reed-Solomon encoder
JP3310186B2 (ja) リード・ソロモン符号の復号回路

Legal Events

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

Payment date: 20120430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130430

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee