KR101149110B1 - 디지털 통신 시스템의 rs 복호기 - Google Patents

디지털 통신 시스템의 rs 복호기 Download PDF

Info

Publication number
KR101149110B1
KR101149110B1 KR1020060017460A KR20060017460A KR101149110B1 KR 101149110 B1 KR101149110 B1 KR 101149110B1 KR 1020060017460 A KR1020060017460 A KR 1020060017460A KR 20060017460 A KR20060017460 A KR 20060017460A KR 101149110 B1 KR101149110 B1 KR 101149110B1
Authority
KR
South Korea
Prior art keywords
polynomial
error
syndrome
processor
modified
Prior art date
Application number
KR1020060017460A
Other languages
English (en)
Other versions
KR20070084983A (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 KR1020060017460A priority Critical patent/KR101149110B1/ko
Publication of KR20070084983A publication Critical patent/KR20070084983A/ko
Application granted granted Critical
Publication of KR101149110B1 publication Critical patent/KR101149110B1/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/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/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)

Abstract

본 발명은 전송 데이터의 오류 검출과 정정을 수행하는 디지털 통신 시스템의 수신기에 구비되는 리드 솔로몬(RS) 복호 장치에 대한 것으로서, 이는 수신된 데이터의 부호어를 입력받아 오류 위치를 찾기 위한 신드롬을 계산하고, 외부로부터 입력된 소거 정보를 근거로 소거 심볼의 위치를 찾기 위한 소거 위치 다항식을 생성하며, 상기 신드롬에 상기 소거 위치 다항식을 곱하여 변형된 신드롬을 출력하고, 상기 변형된 신드롬을 근거로 입력되는 오류 위치 다항식과 오류 평가 다항식을 이용하여 상기 수신된 데이터의 오류 위치와 크기를 계산하는 리드 솔로몬(RS) 다항식 평가 처리기와, 상기 변형된 신드롬을 이용하여 상기 오류 위치 다항식과 오류 평가 다항식을 구하여 상기 RS 다항식 평가 처리기로 전달하는 변형 유클리드 처리기와, 상기 RS 다항식 평가 처리기로부터 상기 수신 데이터의 오류 위치와 크기 정보를 전달받아 상기 수신 데이터의 오류를 정정하는 오류 정정기를 포함함을 특징으로 한다. 따라서 본 발명은 별도의 변형 신드롬 생성기를 구비하지 않고도 사이즈를 간소화시킨 RS 복호기를 제공할 수 있다.
Figure R1020060017460
RS, 리드 솔로몬, 복호기, modified syndrome, 신드롬, 사이즈

Description

디지털 통신 시스템의 RS 복호기{REED SOLOMON DECODER IN A DIGITAL COMMUNICATION SYSTEM}
도 1은 본 발명의 실시 예에 따른 디지털 통신 시스템의 수신기에 구비되는 RS 복호기의 구성을 나타낸 블록도
도 2는 도 1에 도시된 RS 다항식 평가 처리기(110)의 구성을 나타낸 블록도
도 3은 도 2에 도시된 신드롬 생성기(210)의 일 구성 예를 나타낸 회로도
도 4는 도 2에 도시된 소거 위치 다항식 생성기(230)의 일 구성 예를 나타낸 회로도
도 5는 도 2에 도시된 치엔 서치/포니 처리기(250)의 일 구성 예를 나타낸 회로도
본 발명은 디지털 통신 시스템에서 원래 신호를 복원하는 복호 장치에 대한 것으로서, 특히 전송 데이터의 오류 검출과 정정을 수행하는 디지털 통신 시스템의 복호 장치에 대한 것이다.
일반적으로 디지털 통신 시스템은 전송 데이터의 오류를 검출하고 정정하고자 전송 데이터에 패리티(Parity) 정보와 같은 리던던시(redundancy)를 부가하는 오류 정정 부호 방식을 사용한다. 이러한 오류 정정 부호 방식은 선형 부호와 비선형 부호로 구분되며, 이중에서 선형 부호는 순회 부호와 비순회 부호로 구분된다. 그리고 상기 순회 부호 중에서 심볼 단위로 부호어를 구성한 것이 잘 알려진 리드 솔로몬(Reed-Solomon : RS) 부호이다.
상기 RS 부호는 일련의 연산 과정을 통해 전송 데이터로부터 오류가 발생된 위치와 오류값을 검출하는 오류 정정 부호로 전송 채널에서 발생되는 연집(burst) 오류의 정정에 우수한 성능을 보인다. 상기 RS 부호는 위성 통신, 이동 통신, 디지털 저장 장치, ATM 망, 디지털 방송 시스템 등 고속 데이터 전송이 요구되는 통신 시스템에 주로 적용되며, 오류 위치와 오류값을 찾는 다항식의 연산을 수행하여야 하므로 비교적 복잡한 알고리즘과 연산 회로가 요구된다.
일반적으로 RS 부호기는 전송하고자 하는 데이타를 생성 다항식을 이용하여 나누어 그 나머지를 부가하여 부호어를 형성하여 전송하는 역할을 담당한다. 그리고 RS 복호기는 수신된 데이타로부터 신드롬(syndrome)을 계산하고, 계산된 신드롬과 변형 유클리드(modified Euclid) 알고리듬을 이용하여 오류 위치 다항식을 찾아낸다. 그리고 RS 복호기는 상기 오류 위치 다항식에서 오류 위치를 찾아내고, 그 오류위치로부터 발생된 오류의 크기를 계산한 후, 전송 데이터로부터 해당 오류를 정정한다.
상기 전송 데이터로부터 오류(error)와 소거(erasure)를 모두 정정하는 RS 복호기는 전송 과정에서 오류가 발생한 부호어(code word)와 소거 심볼에 대한 소거 정보를 입력받고, 그 오류와 소거를 모두 정정한 부호어를 출력한다. 상기 소거 심볼은 오류 위치는 알고 있지만 그 크기는 알 수 없는 심볼을 의미한다. 이를 위해 RS 복호기는 오류 위치를 찾기 위한 신드롬을 계산하는 신드롬 생성기(syndrome generator), 상기 소거 정보를 근거로 소거 심볼의 위치를 찾기 위한 소거 위치 다항식을 생성하는 소거 위치 다항식 생성기(erasure location polynomial generator) 그리고 상기 신드롬에 소거 위치 다항식을 곱하여 변형된 신드롬을 출력하는 변형 신드롬 생성기(Modified syndrome generator)를 구비한다.
또한 상기 RS 복호기는 상기 변형된 신드롬을 이용하여 오류의 위치와 크기를 찾기 위한 오류 위치 다항식과 오류 평가 다항식의 계수를 구하여 출력하는 변형 유클리드 알고리즘(Modified Euclidean Algorithm Processor) 처리기와, 상기 오류 위치 다항식과 오류 평가 다항식으로부터 오류의 위치를 계산하고 그 위치에서의 오류의 크기를 계산하는 치엔 서치(Chien search) 및 포니 알고리즘(Forney Algorithm) 처리기와 수신된 데이터로부터 오류의 크기를 빼냄으로써 오류를 정정하는 오류 정정기(error correction)를 구비한다.
상기와 같이 RS 복호기를 구성하는 각 구성 요소들은 레지스터와 갈로아 필드 상의 곱셈 및 덧셈기로 구성된 단위 블록이 수정 가능한 소거 심볼의 개수 만큼 존재하는 구조로 서로 유사한 동작을 수행하는 블록들이면서도 각각 독립적으로 구현되어 있어 RS 복호기의 하드웨어를 복잡하게 하고, 점유 용적을 크게 차지하는 문제점이 있다. 따라서 최근 고속 멀티미디어 서비스를 이용하면서도 사이즈는 소 형화되고 있는 통신 단말기를 고려하였을 때 RS 복호기의 하드웨어 구성을 간소화시킬 필요성이 요구된다.
본 발명은 간소화된 하드웨어 구성으로 점유 용적을 줄일 수 있는 디지털 통신 시스템의 수신기에 구비되는 RS 복호 장치를 제공한다.
본 발명에 따른 디지털 통신 시스템의 수신기에 구비되는 리드 솔로몬(RS) 복호 장치는 수신된 데이터의 부호어를 입력받아 오류 위치를 찾기 위한 신드롬을 계산하고, 외부로부터 입력된 소거 정보를 근거로 소거 심볼의 위치를 찾기 위한 소거 위치 다항식을 생성하며, 상기 신드롬에 상기 소거 위치 다항식을 곱하여 변형된 신드롬을 출력하고, 상기 변형된 신드롬을 근거로 입력되는 오류 위치 다항식과 오류 평가 다항식을 이용하여 상기 수신된 데이터의 오류 위치와 크기를 계산하는 리드 솔로몬(RS) 다항식 평가 처리기와, 상기 변형된 신드롬을 이용하여 상기 오류 위치 다항식과 오류 평가 다항식을 구하여 상기 RS 다항식 평가 처리기로 전달하는 변형 유클리드 처리기와, 상기 RS 다항식 평가 처리기로부터 상기 수신 데이터의 오류 위치와 크기 정보를 전달받아 상기 수신 데이터의 오류를 정정하는 오류 정정기를 포함함을 특징으로 한다.
이하 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설 명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1은 본 발명의 실시 예에 따른 디지털 통신 시스템의 수신기에 구비되는 RS 복호기의 구성을 나타낸 블록도이다.
도 1에 도시된 RS 복호기는 수신된 데이터의 부호어(received codeword)를 입력받아 오류 위치를 찾기 위한 신드롬(syndrome)(101)을 계산하고, 소거 정보(erasure information)를 근거로 소거 심볼의 위치를 찾기 위한 소거 위치 다항식(erasure location polynomial)(102)을 생성하며, 상기 신드롬(101)에 상기 소거 위치 다항식(102)을 곱하여 변형된 신드롬(modified syndrome)(103)을 출력함과 아울러 변형 유클리드 처리기(Modified Euclidean Algorithm Processor)(130)로부터 전달된 오류 위치 다항식(error location polynomial)(105)과 오류 평가 다항식(error evaluator polynomial)(104)을 이용하여 수신된 데이터의 오류 위치와 크기를 계산하는 RS 다항식 평가 처리기(RS polynomial evaluation)(110)와, 상기 변형된 신드롬(103)을 이용하여 오류 위치 다항식(105)과 오류 평가 다항식(104)을 구하여 상기 RS 다항식 평가 처리기(110)로 전달하는 변형 유클리드(modified Euclidean) 처리기(130) 그리고 상기 RS 다항식 평가 처리기(110)로부터 수신 데이터의 오류 위치(error location)(106)와 크기(error weight)(107) 정보를 전달받아 수신 데이터로부터 오류의 크기를 빼내어 오류를 정정하는 오류 정정기(150)를 포함한다.
본 발명에서 상기 RS 다항식 평가 처리기(110)는 종래 RS 복호기에서 개개의 블록들을 통해 처리되던 신드롬(101)과 소거 위치 다항식(102) 그리고 변형 신드롬(103)의 생성 동작을 하나의 하드웨어 블록을 통해 수행하도록 RS 복호기의 내부 구성을 간소화시킨 것이다. 그리고 상기 변형 유클리드 처리기(130)와 오류 정정기(150)는 종래 RS 복호기와 동일한 구성을 가지므로 그 상세한 설명은 생략하기로 한다.
도 2는 도 1에 도시된 RS 다항식 평가 처리기(110)의 구성을 나타낸 블록도이다.
도 2에서 상기 RS 다항식 평가 처리기(110)는 부호어(code word)를 입력받아 오류 위치를 찾기 위한 신드롬은 물론 본 발명의 RS 복호 장치가 동작하는 갈로아 필드의 원시근(primitive element)인 α의 거듭 제곱들(syndrome_out)의 값을 생성하는 신드롬 생성기(210)와, 외부로부터 입력된 소거 정보(erasure information)를 근거로 소거 위치 다항식(102)을 생성하고, 상기 생성된 소거 위치 다항식(102)과 상기 신드롬을 이용하여 생성되는 변형된 신드롬(103)을 상기 변형 유클리드 처리기(130)로 전달하며, 상기 변형 유클리드 처리기(130)로부터 전달받은 오류 평가 다항식(104)의 계수(error_evaluator_out)와 상기 신드롬 생성기(210)로부터 전달받은 α의 거듭 제곱들(syndrome_out)의 값을 이용하여 상기 오류 평가 다항식(104)의 각 차수항(error_evaluator_term)의 값을 치엔 서치/포니 처리기(250)로 전달하는 소거 위치 다항식 생성기(230)와, 상기 변형 유클리드 처리기(130)로부터 오류 위치 다항식(105)과 오류 평가 다항식(104)의 계수들(error_location_out, error_evaluator_out)을 전달받아 수신 데이터의 오류 위치와 크기(106, 107)를 계산하는 치엔 서치/포니(Chien search/Forney) 처리기(250)를 포함한다.
상기 갈로아 필드는 원시근을 가지며, 상기 원시근이라 함은 잘 알려진 것처럼 갈로아 필드 내의 0이 아닌 어떤 한 원소가 있어서, 0을 제외한 모든 갈로아 필드의 원소들을 그 원소의 거듭제곱의 형태로 표현한 것으로 이 원소를 원시근이라고 칭한다.
도 3은 도 2에 도시된 신드롬 생성기(210)의 일 구성 예를 나타낸 회로도이다.
도 3에서 본 발명의 신드롬 생성기(210)는 신드롬 값을 계산하는 연산 이외에 α의 거듭제곱들의 값을 계산하고 신드롬 값을 쉬프트하여 전달도 할 수 있도록 각 레지스터(3010~3012t-1 : 301)의 입력을 제어하기 위한 다수의 4 입력 1출력 구조의 다중화기(MUX1)(3030~3032t-1 : 303)를 추가하고, 각 덧셈기(3070~3072t-1 : 307)의 입력을 제어하기 위한 다수의 다중화기(MUX2)(3050~3052t-1 : 305)를 추가한 구조를 가짐을 특징으로 한다. 여기서 변수 t는 RS 복호 장치가 수정 가능한 에러의 최대 개수이고, 2t는 수정 가능한 소거 심볼의 최대 개수이다.
한편 하나의 부호어를 디코딩하는 데 도 3의 신드롬 생성기(210)는 신드롬 값 계산 시와, 변형된 신드롬 계산 시 및 치엔 서치/포니 처리기(250)의 오류 위치와 오류값의 크기 계산 시 총 3번에 걸쳐 동작한다. 도 3의 신드롬 생성기(210)에서 신드롬 값을 생성하는 경우에는 "SEL1" 신호는 첫 번째 클럭에서 부호어의 최초 심볼이 레지스터(301)로 입력되도록 다중화기(303)의 출력을 제어하고, 이후 클럭에서 "SEL1" 신호는 레지스터(301)값이 피드백되어 다시 레지스터(301)로 입력되도 록 다중화기(303)의 출력을 제어한다. 또한 다중화기(305)로부터 수신된 부호어(received codeword)가 출력되도록 "SEL2" 신호가 선택되면, 도 3의 신드롬 생성기(210)는 후술할 동작 단계에 따라 신드롬(syndrome[0],…,syndrome[2t-1]) 또는 α의 거듭제곱들(syndrome_out[0],…,syndrome_out[2t-1])의 값을 선택적으로 출력하여 소거 위치 다항식 생성기(230)로 전달한다. 변형된 신드롬을 계산하는 경우와 오류 위치 및 오류값을 계산하는 경우의 신드롬 생성기(210)의 동작은 뒤에서 설명한다. 한편 도 3에서 선택 신호 "SEL1", "SEL2"는 도시되지 않은 제어기로부터 인가되는 것으로 가정한다.
본 발명에서 상기 신드롬 생성기(210)는 종래 신드롬 생성기와 변형 신드롬 생성기(Modified syndrome generator)를 분리하여 구성하던 것을 하기와 같이 소거 위치 다항식 생성기(230)와 연동하여 변형된 신드롬을 단일의 블록을 통해 생성함을 특징으로 하는 것이다. 그리고 상기 α의 거듭제곱(αi)들에 대해 설명하면, RS 복호 장치가 복호하고자 하는 RS 코드의 갈로아 필드의 원시근을 α라 하면, 갈로아 필드의 모든 원소들은 α의 거듭 제곱 형태로 표현된다. 즉 도 3에서 α0,…,α2t-1은 갈로아 필드의 원소들 중에서 복호하고자 하는 RS 코드의 근이다.
그리고 상기 신드롬 값의 계산을 위한 신드롬 다항식을 S(x) = c0x0 + c1x1 + … + c63x63 이라고 가정하면 신드롬 생성기(210)의 동작 완료 후, 레지스터(301)로 부터 출력되는 신드롬 값은 각각 S(α0),…,S(α63)로 나타낼 수 있다. 상기 출력되는 신드롬 값 중에서 예컨대, S(α2)을 구하는 경우 S(α2)= c02)0 + c12)1 + … + c632)63와 같이 계산할 수 있으며, 도 3에서 레지스터(301)의 초기값으로 α2를 입력하고 매 클럭마다 레지스터(301)값을 피드백하여 곱셈기(3091~3092t-1 : 309)에서 α2을 곱하면 (α2)2,…, (α2)63을 얻을 수 있다. 즉 곱셈기(309)는 상기 신드롬 다항식에서 α의 거듭 제곱 값을 구하기 위해 사용된다.
도 4는 도 2에 도시된 소거 위치 다항식 생성기(230)의 일 구성 예를 나타낸 회로도이다.
도 4에서 소거 위치 다항식 생성기(230)는 기존의 소거 위치 다항식 생성기의 구조에서 곱셈기(4130~4132t-1 : 413)의 입력을 제어하기 위한 다중화기(MUX4, MUX5)(4030~4032t-1, 4050~4052t-1)(403, 405)를 추가하고, 레지스터(4110~4112t-1 : 411)의 초기값 제어를 위한 다중화기(MUX6)(4070~4072t-1 : 407)가 추가된 것을 특징으로 한다.
하나의 부호어를 복호하는 과정에서 도 4의 소거 위치 다항식 생성기(230)는 소거 위치 다항식(102)의 계수 계산 시와, 변형된 신드롬(103) 계산 시 및 오류 위치와 오류값(106, 107) 계산 시 총 3번에 걸쳐 동작된다. 상기 소거 위치 다항식(102)의 계수는 신드롬 생성기(210)가 수신된 부호어를 이용하여 신드롬 값을 계산하는 동안에 소거 위치 다항식 생성기(230)에서 각 심볼에 대한 소거 정보(erasure information)을 이용하여 동시에 계산된다.
도 4의 소거 위치 다항식 생성기(230)가 소거 위치 다항식(102)의 계수를 계산하는 경우 다중화기(MUX7)(409)를 통해 소거 정보(erasure information)가 출력되도록 "SEL4" 신호가 선택된다. 그리고 다중화기(MUX7)(409)로부터 출력된 소거 정보가 다중화기(MUX5)(405)를 통해 그대로 출력되도록 "SEL5" 신호가 선택된다. 또한 상기 "SEL4" 신호에 따라 다중화기(MUX4)(4030)는 1을 출력하고, 각 다중화기(MUX4)(403)에서는 앞단의 레지스터(411) 값이 출력된다. 곱셈기(413)는 다중화기(MUX5)(405)와 다중화기(MUX4)(403)의 출력을 곱해 덧셈기(415)로 전달한다.
그리고 다중화기(MUX6)(407)는 레지스터(411)의 초기값을 입력하기 위한 것이다. 소거 위치 다항식의 계수를 구하는 경우 레지스터(411)의 초기값을 0으로 설정하기 위해 상기 다중화기(MUX6)(407)의 출력이 0이 되도록 "SEL4" 신호가 입력된다. 다중화기(MUX3)(401)는 첫 번째 클럭에서는 다중화기(MUX6)(407)의 출력이 레지스터(411)로 입력되고 그 이후에는 덧셈기(415)의 출력이 레지스터(411)에 입력되도록 "SEL3" 신호가 주어진다. 상기한 동작에 따라 소거 위치 다항식 생성기(230)의 출력(erasure_location_out[0],…,erasure_location_out[2t-1])(S3[0]~S3[2t-1])은 소거 위치 다항식(Erasure location polynomial)의 계수값으로 변형 유클리드 처리기(130)로 전달된다. 상기 소거 위치 다항식의 계수들은 이어지는 변형 신드롬 계산에 사용되도록 다중화기(MUX7)(409)의 다른 입력(erasure location polynomial)으로 차례로 입력된다. 한편 도 4에서 선택 신호 "SEL3" 내지 "SEL5"는 도시되지 않은 제어기로부터 인가되는 것으로 가정한다. 또한 참조 부호 S2[0],…,S2[2t-1]의 신호는 오류 평가 다항식(error evaluator polynomial)의 각 차수별 항(error_evaluator_term[0],…,error_evaluator_term[2t-1])의 값을 의미하고, 참조 부호 S1[0],…,S1[2t-1]의 신호는 변형 유클리드 처리기(130)에서 생성되어 소거 위치 다항식 생성기(230)로 입력되는 오류 평가 다항식의 계수(error_evaluator_out[0],…,error_evaluator_term[out])를 의미한다.
이하 도 3의 신드롬 생성기(210)와 도 4의 소거 위치 다항식 생성기(230)가 연동하여 변형 신드롬을 계산하는 동작을 설명하기로 한다.
본 발명에서 변형 신드롬은 신드롬 생성기(210)와 소거 위치 다항식 생성기(230)를 동시에 이용하여 계산된다. 상기 신드롬 생성기(210)의 레지스터(301)에는 신드롬 생성 시 계산된 신드롬 값들이 저장된다. 이후 변형 신드롬의 계산 시에는 신드롬 생성기(210)에서 "SEL1" 신호는 매 클럭마다 레지스터(301)에 저장된 신드롬 값들이 오른쪽으로 이동되도록 다중화기(MUX1)(303)의 출력을 선택하고, "SEL2" 신호는 덧셈기(307)의 계산이 레지스터(301)로부터 출력되는 신드롬 값에 영향을 미치지 않도록 다중화기(MUX2)(305)의 출력이 0이 되도록 선택한다. 그러면 도 4에서 신드롬 생성기(210)의 출력(syndorme_out[0],…,syndrome_out[2t-1])은 신드롬값(syndrome[0],…,syndrome[2t-1])이 차례로 오른쪽으로 이동된 값으로 소거 위치 다항식 생성기(230)로 전달된다.
그리고 도 4의 소거 위치 다항식 생성기(230)에서 매 클럭 오른쪽으로 이동되어 다중화기(MUX4)(403)로 입력되는 신드롬 값을 곱셈기(413)로 전달함과 아울러 신드롬 생성기(210)의 출력(syndrome_out[0],…,syndrome_out[2t-1])을 곱셈기(413)로 전달하도록 "SEL4" 신호가 선택된다. 상기 "SEL4" 신호에 따라 다중화기(MUX7)(409)로는 이전 단계에서 계산해 놓은 소거 위치 다항식(erasure location polynomial)의 계수값들이 입력된다. 다중화기(MUX5)(405)는 다중화기(MUX7)(409)의 출력을 곱셈기(413)로 전달한다. 다중화기(MUX6)(407)에서는 "SEL4" 신호에 따라 이전 단계에서 신드롬생성기(210)에서 계산된 신드롬값을 전달해 레지스터(411)의 초기값으로 설정한다. 그리고 다중화기(MUX3)(401)는 첫 번째 클럭에서 다중화기(MUX6)(407)의 출력을 전달하고 이후 덧셈기(415)의 출력을 레지스터(411)로 전달한다.
상기한 소거 위치 다항식 생성기(230)의 동작이 완료 후, 레지스터(411)의 출력(erasure_location_out[0],…,erasure_location_out[2t-1])(S3[0]~S3[2t-1])은 변형된 신드롬(modified syndrome)(103) 값이 된다. 상기 변형된 신드롬(103) 값은 이전 단계에서 계산된 소거 위치 다항식(erasure location polynomial)의 계수값과 함께 변형 유클리드 처리기(130)로 전달된다. 그리고 도 4에서 마지막 단의 레지스터(4112t-1)를 제외한 나머지 레지스터들(4110~4112t-2)의 출력단과 연결된 신호선의 화살표가 양방향 화살표인 이유는 소거 위치 다항식 생성기(230)의 동작 중에는 해당 레지스터들(4110~4112t-2)의 출력이 덧셈기(4150~4152t-2)로 입력되지만 동작 완료 후에는 해당 레지스터들(4110~4112t-2)의 출력(erasure_location_out[0], …, erasure_location_out[2t-1])이 결과값으로 출력되기 때문에 양방향으로 표시한 것이다.
한편 도 1의 변형 유클리드 처리기(130)는 RS 다항식 평가 처리기(110)로부터 소거 위치 다항식(102) 그리고 변형 신드롬(103)을 입력받아 변형된 유클리드 알고리즘에 따라 구해진 오류 평가 다항식(104)의 계수들과 오류 위치 다항식(105)의 계수들을 다시 RS 다항식 평가 처리기(110)로 출력한다. 상기 오류 평가 다항식(104)의 계수들과 오류 위치 다항식(105)의 계수들에 의한 오류 평가 다항식과 오류 위치 다항식은 오류 심볼과 소거 심볼 모두에 대한 위치 정보와 소거 정보를 포함한다.
도 5는 도 2에 도시된 치엔 서치/포니 처리기(250)의 일 구성 예를 나타낸 회로도이다.
도 5에 도시된 본 발명의 치엔 서치 및 포니 처리기(250)는 갈로아 필드의 원시근의 거듭제곱의 값을 구하는 계산은 신드롬 생성기(210)을 이용하고, 원시근의 거듭제곱과 오류 평가 다항식의 계수와의 곱은 소거 위치 다항식 생성기(230)을 이용하도록 구성된 것이다. 따라서 종래 RS 복호기의 치엔 서치 및 포니 처리기에서 대응되는 구성을 제거할 수 있다. 따라서 본 발명의 치엔 서치 및 포니 처리기(250)는 도 5와 같이 원시근의 거듭제곱(syndrome[0],…,syndrome[2t-1])과 오류 위치 다항식의 계수(error_location_out[0],…,error_location_out[2t])와의 곱과 이외 간단한 연산만을 수행하도록 구성을 단순화시킬 수 있다. 또한 오류 위치 다항식 계수의 곱셈을 소거 위치 다항식 생성기(230)에서 수행하고, 오류 평가 다항식 계수의 곱셈을 포니 알고리즘 처리기(250b)에서 수행하도록 하는 것도 가능하다.
오류 위치와 오류값을 계산하는 경우의 RS 다항식 평가 처리기(110)의 동작은 다음과 같다. 도 3에서 신드롬 생성기(210)는 다중화기(MUX1)(303)이 첫 번째 클럭에서 레지스터(301)에 α0,…,α2t-1의 값이 입력되고 이후에는 레지스터(301) 출력이 그대로 레지스터(301)로 입력되도록 "SEL1" 신호를 선택한다. 이때 레지스터(301)의 출력이 덧셈기(307)의 영향 없이 그대로 레지스터(301)로 피드백되도록 하기 위해 다중화기(MUX2)(305)의 출력이 0이 되도록 "SEL2" 신호를 선택하면, 신드롬 생성기(210)의 출력(syndrome_out[0],…,syndrome_out[2t-1])은 α의 거듭제곱들의 값이 되고 이 값들이 차례로 소거 위치 다항식 생성기(230)와 치엔 서치/포니처리기(250)로 전달된다.
도 4에서 소거 위치 다항식 생성기(230)는 원시근 α의 거듭제곱들의 값인 신드롬 생성기(210)의 출력(syndrome_out[0],…,syndrome_out[2t-1])을 곱셈기(413)로 전달하도록 다중화기(403)의 "SEL4" 신호를 선택한다. 그리고 다중화기(MUX5)(405)에서는 변형 유클리드 처리기(130)의 출력인 오류 평가 다항식의 계수들(error_evaluator_out[0],…,error_evaluator_out[2t-1])이 곱셈기(413)로 전달 되도록 "SEL5" 신호를 선택한다. 그러면 곱셈기(413)의 출력인 오류 평가 다항식의 각 차수항(error_evaluator_term[0],…,error_evaluator_term[2t- 1])은 치엔 서치/포니처리기(250)로 입력되어 오류값(error weight)을 구하는데 사용된다. 소거 위치 다항식 생성기(230)의 덧셈기(415), 레지스터(411), 다중화기(MUX3) (401) 및 다중화기(MUX6)(407)는 이 경우 사용되지 않는다.
도 5는 도 2에 도시된 치엔 서치/포니 처리기(250)의 일 구성 예를 나타낸 회로도이다.
도 5에서 치엔 서치/포니처리기(250)의 구성 블록 중 먼저 치엔 서치(250a)의 동작을 설명하면, 치엔 서치(250a)는 원시근 α의 거듭제곱들의 값인 신드롬 생성기(210)의 출력(syndrome_out[0],…,syndrome_out[2t-1])을 곱셈기(501)로 전달한다. 상기 α2t의 거듭제곱 값은 따로 생성시켜 역시 곱셈기(501)로 전달한다. 상기 α의 거듭제곱들의 값과 변형 유클리드 처리기(130)로부터 전달받은 오류 위치 다항식의 계수들(error_location_out[0],…,error_location_out[2t-1])은 곱셈기(501)에서 곱해진 후 덧셈기에서 더해진 후 인버터를 통과하면 오류 위치(106)를 얻을 수 있다. 그리고 포니 처리기(250b)는 소거 위치 다항식 생성기(230)에서 생성된 오류 평가 다항식의 각 차수항(error_evaluator_term[0],…,error_evaluator_term[2t- 1])들을 전부 더한 후, 치엔 서치(250a)에서 입력된 값의 역수와 곱하여 오류값(107)을 구한다.
그리고 도 1의 오류 정정기(150)는 치엔 서치 및 포니 처리기(250)로부터 수 신 데이터의 오류 위치와 오류값을 전달받아 오류와 소거를 정정한 부호어를 출력한다.
이하에서는 하기 <표 1>을 참조하여 본 발명에 따른 RS 복호 장치의 동작을 설명하기로 한다.
Figure 112006013109611-pat00001
본 발명의 RS 복호 장치의 동작은 다음과 같이 5 단계로 구분되며, 이에 따라 RS 다항식 평가 처리기(110)의 동작 역시 5단계로 구분된다.
첫 번째 단계에서 신드롬 생성기(210)는 부호어(codeword)를 입력받아 신드롬을 생성하고, 소거 위치 다항식 생성기(230)는 외부로부터 입력된 소거 정보를 근거로 소거위치 다항식을 생성한다. 이 단계에서 치엔 서치/포니 처리기(250)는 동작하지 않는다. 두 번째 단계에서 신드롬 생성기(110)는 첫 번째 단계에서 생성한 신드롬 값을 소거 위치 다항식 생성기(230)로 전달하고, 소거 위치 다항식 생성기(230)는 첫 번째 단계에서 생성한 소거 위치 다항식과 신드롬 값을 이용하여 변형된 신드롬을 생성하여 소거위치 다항식과 함께 출력한다. 이 단계에서도 치엔 서치/포니 처리기(250)는 동작하지 않는다. 세 번째 단계에서 변형 유클리드 처리기(130)가 소거 위치 다항식과 변형된 신드롬을 이용해 오류 위치 다항식과 오류 평가 다항식을 계산하고, 그 결과를 RS 다항식 평가 처리기(110)로 전달한다. 이 단계에서 RS 다항식 평가 처리기(110)는 전부 동작하지 않는다.
네 번째 단계에서 신드롬 생성기(210)는 오류 위치 및 오류값 계산에 필요한 RS 복호 장치가 동작하는 갈로아 필드 상의 원시근, α의 거듭제곱들의 값을 차례로 소거 위치 다항식 및 치엔 서치/포니 처리기(250)로 전달한다. 그리고 소거 위치 다항식 생성기(230)는 차례로 입력되는 α의 거듭제곱들의 값과 오류 평가 다항식의 값을 이용해 오류 평가 다항식의 각 차수항의 값을 차례로 계산해 치엔 서치/포니 처리기(250)로 전달한다. 치엔 서치/포니 처리기(250)는 차례로 입력되는 α의 거듭제곱들의 값과 오류 평가 다항식의 각 차수항의 값 및 오류 위치 다항식 값을 이용해 오류 위치와 값을 계산한다. 마지막으로 다섯 번째 단계에서 오류 정정기(150)는 오류 위치와 값을 이용해 부호어에 포함된 오류 및 소거를 수정한 부호어를 출력한다.
이상 설명한 바와 같이 본 발명에 의하면, 신드롬 생성기와 소거 위치 다항식 생성기의 구성을 변형하여 변형 신드롬을 구하므로, 별도의 변형 신드롬 생성기가 요구되지 않고, 치엔 서치 및 포니 알고리즘 처리 과정에서 필요한 레지스터들과 그에 연결된 곱셈기를 제거하여 사이즈를 간소화시킨 RS 복호기를 제공할 수 있다.

Claims (3)

  1. 디지털 통신 시스템의 수신기에 구비되는 리드 솔로몬(RS) 복호 장치에 있어서,
    수신된 데이터의 부호어를 입력받아 오류 위치를 찾기 위한 신드롬을 계산하고, 외부로부터 입력된 소거 정보를 근거로 소거 심볼의 위치를 찾기 위한 소거 위치 다항식을 생성하며, 상기 신드롬에 상기 소거 위치 다항식을 곱하여 변형된 신드롬을 출력하고, 상기 변형된 신드롬을 근거로 입력되는 오류 위치 다항식과 오류 평가 다항식을 이용하여 상기 수신된 데이터의 오류 위치와 크기를 계산하는 리드 솔로몬(RS) 다항식 평가 처리기와,
    상기 변형된 신드롬을 이용하여 상기 오류 위치 다항식과 오류 평가 다항식을 구하여 상기 RS 다항식 평가 처리기로 전달하는 변형 유클리드 처리기와,
    상기 RS 다항식 평가 처리기로부터 상기 수신 데이터의 오류 위치와 크기 정보를 전달받아 상기 수신 데이터의 오류를 정정하는 오류 정정기를 포함함을 특징으로 하는 리드 솔로몬 복호 장치.
  2. 제 1 항에 있어서,
    상기 RS 다항식 평가 처리기는
    상기 부호어를 입력받아 상기 신드롬을 생성하는 신드롬 생성기와,
    상기 소거 위치 다항식을 생성하고 상기 변형된 신드롬을 생성하여 상기 변형 유클리드 처리기로 전달하는 소거 위치 다항식 생성기와,
    상기 변형 유클리드 처리기로부터 상기 오류 위치 다항식과 오류 평가 다항식의 계수들을 전달받아 상기 오류 위치와 크기를 출력하는 치엔 서치/포니(Chien search/Forney) 처리기를 포함함을 특징으로 하는 리드 솔로몬 복호 장치.
  3. 제 2 항에 있어서,
    상기 치엔 서치/포니 처리기는 상기 신드롬 생성기를 통해 원시근(primitive element)의 지수승(power)을 구하고, 상기 소거 위치 다항식 생성기를 통해 상기 원시근의 지수승과 상기 오류 평가 다항식의 계수와의 곱을 구함을 특징으로 하는 리드 솔로몬 복호 장치.
KR1020060017460A 2006-02-22 2006-02-22 디지털 통신 시스템의 rs 복호기 KR101149110B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060017460A KR101149110B1 (ko) 2006-02-22 2006-02-22 디지털 통신 시스템의 rs 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060017460A KR101149110B1 (ko) 2006-02-22 2006-02-22 디지털 통신 시스템의 rs 복호기

Publications (2)

Publication Number Publication Date
KR20070084983A KR20070084983A (ko) 2007-08-27
KR101149110B1 true KR101149110B1 (ko) 2012-05-25

Family

ID=38613125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060017460A KR101149110B1 (ko) 2006-02-22 2006-02-22 디지털 통신 시스템의 rs 복호기

Country Status (1)

Country Link
KR (1) KR101149110B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048586B2 (en) 2019-07-17 2021-06-29 SK Hynix Inc. Memory systems and methods of correcting errors in the memory systems

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8418041B2 (en) 2008-12-03 2013-04-09 Electronics And Telecommunications Research Institute MPE-FEC RS decoder and decoding method thereof
KR101146563B1 (ko) * 2010-07-28 2012-05-25 국방과학연구소 부호 추정 장치 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100225032B1 (ko) 1996-10-17 1999-10-15 윤종용 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치
KR20030095249A (ko) * 2002-06-07 2003-12-18 톰슨 라이센싱 소시에떼 아노님 리드-솔로몬 디코더
KR100510503B1 (ko) 2002-12-10 2005-08-26 삼성전자주식회사 하드웨어 효율을 극대화한 새로운 파이프라인 리드 솔로몬디코딩 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100225032B1 (ko) 1996-10-17 1999-10-15 윤종용 이레이져 정정 능력을 갖는 리드-솔로몬 부호의 복호 장치
KR20030095249A (ko) * 2002-06-07 2003-12-18 톰슨 라이센싱 소시에떼 아노님 리드-솔로몬 디코더
KR100510503B1 (ko) 2002-12-10 2005-08-26 삼성전자주식회사 하드웨어 효율을 극대화한 새로운 파이프라인 리드 솔로몬디코딩 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048586B2 (en) 2019-07-17 2021-06-29 SK Hynix Inc. Memory systems and methods of correcting errors in the memory systems
US11392457B2 (en) 2019-07-17 2022-07-19 SK Hynix Inc. Error correction method of a memory system

Also Published As

Publication number Publication date
KR20070084983A (ko) 2007-08-27

Similar Documents

Publication Publication Date Title
US6374383B1 (en) Determining error locations using error correction codes
US7028247B2 (en) Error correction code circuit with reduced hardware complexity
EP0567148B1 (en) Operating circuit for galois field
EP0729611B1 (en) Reed-solomon decoder
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
KR19980033139A (ko) 리드솔로몬 복호기
US5805617A (en) Apparatus for computing error correction syndromes
KR970004515B1 (ko) 리드-솔로몬 복호기의 오류위치다항식 연산방법 및 장치
JP4134029B2 (ja) リードソロモン符号の軟判定復号方法
KR101149110B1 (ko) 디지털 통신 시스템의 rs 복호기
EP0660535B1 (en) Apparatus for uniformly correcting erasure and error of received word by using a common polynomial
US5805616A (en) Circuit of calculating errata locator and evaluator polynomial, calculating method thereof and reed-solomon decoder using the same
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
CN101908894B (zh) 一种多编码模式的编码实现系统及方法
KR100747487B1 (ko) 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로
US5971607A (en) Polynomial evaluator for use in a Reed-Solomon decoder
JP3812983B2 (ja) エラー評価多項式係数計算装置
US9459836B2 (en) Simplified inversionless berlekamp-massey algorithm for binary BCH code and circuit implementing therefor
JP2000020333A (ja) 復号装置、演算装置およびこれらの方法
KR100226837B1 (ko) 디지털 티브이의 에러 정정 장치
KR100979366B1 (ko) 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기
KR940011659B1 (ko) 유클리드 알고리즘 연산장치
Lee et al. An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes
JP3268926B2 (ja) 誤り訂正回路
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치

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: 20150429

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee