KR19980033277A - 리드-솔로몬 디코더용 갈로아 필드 승산기 - Google Patents

리드-솔로몬 디코더용 갈로아 필드 승산기 Download PDF

Info

Publication number
KR19980033277A
KR19980033277A KR1019970055933A KR19970055933A KR19980033277A KR 19980033277 A KR19980033277 A KR 19980033277A KR 1019970055933 A KR1019970055933 A KR 1019970055933A KR 19970055933 A KR19970055933 A KR 19970055933A KR 19980033277 A KR19980033277 A KR 19980033277A
Authority
KR
South Korea
Prior art keywords
multiplier
decoder
circuit
multipliers
multiplicand
Prior art date
Application number
KR1019970055933A
Other languages
English (en)
Inventor
토마스팍스크로프트
Original Assignee
데니스피셸
디스커비젼어소우쉬에이트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 데니스피셸, 디스커비젼어소우쉬에이트 filed Critical 데니스피셸
Publication of KR19980033277A publication Critical patent/KR19980033277A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

리드-솔로몬 디코더는 최적화된 갈로아 필드 승산 회로를 포함한다. 상기 회로는 선형 체인으로 연결된 복수개의 승산기를 가지고 있으며, 제1 승산기의 제1 피승수는 크기 A이고, 제2 피승수는 상수이다. 상기 회로는 αj로 합산되는 알파 값들의 선형 결합에서 동작되며, 상기 체인에서의 각 승산기들은 연속하는(succeeding) 알파 값을 생성한다. 복수개의 선택기들은 크기 αj에 따른 멀티플라이어들의 출력을 사용 가능하게 한다. 바람직하게는 XOR 게이트의 논리 네트워크로서 구현되는 가산 회로는, 사용 가능한 승산기의 출력들을 가산하기 위한 선택기들에 최종값을 형성하기 위하여 결합되어 있다.

Description

리드-솔로몬 디코더용 갈로아 필드 승산기
본 발명은 순방향 에러 정정 코드(forward error correction code)의 디코더(decorder)에 관한 것이다. 보다 구체적으로는 본 발명은 리드-솔로몬 디코딩(Reed-Solomon decoding)동안 갈로아 필드 연산(Galois field arithmetic)에서 승산 연산을 수행하기 위한 구성에 관한 것이다.
리드-솔로몬 인코딩은 디지털 기술에 의한 이미지 및 오디오 데이터의 현재의 전송에서 전송된 데이터를 보호하기 위한 에러 정정 코드로서 지금 현재 잘 확립되어 있으며, 이를 위한 다양한 수단들이 알려져 있다. 예를 들어 애플리케이션(application) EP 96301862.2는 디지털 수신기 내에서 리드-솔로몬 디코더의 초 대규모 집적 회로(VLSI)의 구현을 나타낸다.
리드-솔로몬 코딩의 현대적인 애플리케이션은 부호화된 직교 주파수 분할 다중 방식(COFDM)을 이용하는 유럽 텔레커뮤니케이션 표준 초안(European Telecommunication Standard Draft) pr ETS 300 744(1996년 5월)에서 제안되었다. 상기 표준은 디지털 지상 텔레비젼을 위한 틀 구성, 채널 코딩, 및 변조들을 명시한다. 상기 표준은 현재의 아날로그 전송용 스펙트럼 할당내에서 디지털 지상 텔레비젼을 조정하면서도 높은 수준의 동일-채널 간섭(co-channel interference)과 인접 채널 간섭(adjacent channel interference)에 대하여 충분한 보호를 제공하기 위하여 개발되었다. 상기 유명한 표준은 내부 구분 회선 코드(inner punctured convolutional code)와 연결된 외부 리드-솔로몬 코드를 필요로 한다. 이것은 MPEG-2 전송 스트림 포맷(transport stream format)상에서의 비트-방식(bit-wise) 및 부호(symbol) 인터리빙(interleaving)과 결합되어 있다. RS (204,188,t=8) 코드는 코드 생성 다항식을 가지는 외부 코드로서 지정되어 있다.
g(x) = (x+λ0)(x+λ1)(x+λ2)...(x+λ15)
여기에서 λ=02HEX이며, 필드 생성 다항식은
p(x) = x8+ x4+ x3+ x2+ 1
이다.
기존의 리드-솔로몬 디코더에서의 상기 갈로아 필드의 하드웨어 구현은 상당한 자원(resource)을 필요로 하고, 제조 환경에서 새로운 기술과 새로운 애플리케이션에 대해 쉽게 적응될 수 없었다.
본 발명의 중요한 목적은 디지털 데이터에 대해 폭 넓은 승산 연산을 수행하는 개선된 에러 검출 정정과 정정 회로를 제공하는 것이다.
본 발명의 또 다른 목적은 하드웨어 자원을 축소하여 VLSI 실현에서 개선된 갈로아 필드 승산기를 제공하는 것이다.
본 발명의 또 다른 목적은 텔레커뮤니케이션과 유사한 목적들에서의 사용을 위해 다양한 VLSI 회로에 쉽게 적응될 수 있는 리드-솔로몬 디코더를 제공하는 것이다.
본 발명의 이들 및 다른 목적들은 생성 다항식 g(x)에 의해 지정되고, 기본 요소 α를 가지는 BCH 코드에 따라 부호화된 전자기 신호용 디코더에 의해 달성될 수 있다. 상기 디코더는 갈로아 필드 승산에 의하여 형성되는 항 xiαj에서 동작한다. 상기 디코더는*”이 갈로아 필드 연산자인 곱 A*B를 형성하기 위한 갈로아 필드 승산 회로를 포함한다. 각 갈로아 필드 승산 회로는 제1 피승수가 크기(magnitude) A이고, 제2 피승수가 상수 αK인 복수개의 승산기들(multipliers)을 가진다. 상기 승산기들은, 바람직하게는 선형 체인(linear chain)으로 상호 접속되어 있어, 하나의 승산기의 출력은 다른 승산기의 제1 입력과 접속되어 있다. 복수개의 선택기(selector)는 상기 승산기의 출력을 가능하게 한다. 상기 선택기들은 크기 B의 표시에 따라 설정된 선택 회선들(select lines)을 가진다. 가산 회로(addition circuit)는, 바람직하게는 XOR 게이트의 논리 망(logical network)으로 알려진, 최종 곱 A*B를 형성하기 위하여 사용 가능한 승산기 출력들을 더하기 위한 선택기들에 연결되어 있다. 회로는 자리 올림(carry)없이 가산 회로에 의해 수행된다.
본 발명의 관점에 따르면 상기 승산기들은 상수 계수 승수들(multipliers)을 포함한다.
본 발명의 또 다른 관점에 따르면, 크기 B의 표시에 따르도록 설정된 선택 선에 접속된 복수개의 회선들이 있다.
본 발명은 디코더에 생성 다항식 g(x)에 의해서 지정되고, 기본 요소 α를 가지는 BCH 코드에 따라 부호화된 전자기 신호를 제공하며, 상기 디코더는 항 xiαj에서 작동하는 형이며, 여기에서의 개량된 점은 복수개의 상수 계수 승수를 가지는 갈로아 필드 승산기를 포함하는 것이다. 각 상수 계수 승산기의 입력은 제1 피승수 A이고, 상수 계수 승산기의 제2 피승수는 상수 αK이며, 여기에서 상수 계수 승산기의 출력은 계속되는 상수 계수 승산기의 입력에 접속되어 있다. 복수개의 비트 선(bit line)들은 복수개의 스위치를 제어하는 크기 B의 2진수 표시를 운반하며, 각 스위치는 상수 계수 승수들 각각의 하나의 출력에 접속되어 있다. 모듈로(modulo) 2 가산을 수행하는 가산 회로가 상수 계수 승산기들의 출력을 합하기 위한 스위치들에 접속되어 있고, 여기에서의 합산된 출력들은 크기 A*B의 2진수 표시 출력이다.
본 발명은 α가 리드-솔로몬 코드의 기본 요소인 리드-솔로몬 디코딩을 수행하는 방법을 제공한다. 상기 디코딩은 리드-솔로몬 디코더를 가지는 VLSI 회로를 제공하고, (1)n이 정수인 각 αn값에 있어서, αj에 동등한 합을 가지는 αn값의 선형 결합을 식별하는 단계, (2)αn에 k가 정수인 αn-k를 곱함으로써 각 αn값을 생성하는 단계,(3)곱 αnxi를 산출하기 위하여 각각의 αn값에 xi를 곱하는 단계, 및 (4) 곱 xiαj를 산출하기 위하여 곱 αnxi를 합하는 단계들에 의해, 곱 xiαj를 얻기 위한 회로에서 갈로아 필드 곱을 수행함으로써 이루어진다.
도 1은 리드-솔로몬 디코더의 기능 블록도.
도 2는 도 1의 블록도에 따라 동작하는 리드-솔로몬 디코더의 다른 블록도.
도 3은 갈로아 필드에서 항목의 생성을 도시하는 도표.
도 4는 도 1에 도시된 디코더 내에서 구체화된 FIFO의 블록도.
도 5는 도 1에 도시된 디코더 내에서 신드롬(syndromes)을 생성하기 위한 탭 피드백 시프트 레지스터(tapped feedback shift register).
도 6은 종래 기술에서 리드-솔로몬 디코더에 사용되는 벨르캄프 알고리즘(Berlekamp algorithm)의 흐름도.
도 7은 도 1에 도시된 디코더에서 사용되는 벨르캄프 알고리즘을 수행하기 위해 사용되는 장치의 블록도.
도 8은 도 1에 도시된 디코더에서 치엔 검색(Chien search)을 수행하기 위한 배치의 블록도.
도 9는 본 발명에 따른 갈로아 필드 승산기의 바람직한 실시예의 도해.
도 10은 본 발명에 따른 갈로아 필드 승산기의 다른 바람직한 실시예의 도해.
도 11은 도 9 및 도 10의 실시예에서 발견되는 가산 회로의 보다 상세한 도해.
도면의 주요 부분에 대한 부호의 설명
4 : FIFO
8 : 리드-솔로몬 디코더
28 : 램
36 : 신드롬 계산 블록
42 : 탭 피드백 시프트 레지스터
44 : 플립-플롭
46 : 가산기
48 : 벨르캄프 연산기 블록
68 : 제어 블록
80 : 치엔 검색 블록
102 : 상수 계수 승산기
116 : 갈로아 필드 승산기
리드-솔로몬 디코딩의 접근은 도 1과 도 2를 참조하여 설명되어진다. 본 발명은 이 디코더와 갈로아 필드 연산을 사용하는 다른 리드-솔로몬 디코더를 사용하여 실행될 수 있다. 208 바이트 패킷(packet) R(x)(2)는 448 바이트를 저장할 수 있는 RAM으로 구현되는 FIFO(4)로 입력된다. FIFO(4)는 디코딩이 진행되는 동안 지연(delay)으로서만 동작한다. 단지 188 정보 바이트가 저장되는 것이 필요하다. 20개의 패리티 바이트들은 신드롬 S(x)(6)의 계산후 사용되지 않기 때문에 버려질 수 있다. 디코더(8)은 패킷 R(x)(2)에서 인터리브되지 않은 데이터(deinterleav ed data)를 수신한다. VALID 표식(flag)(10)은 패킷 R(x)(2)의 현재 바이트가 현재 패킷에서 유효한 바이트인지를 표시한다. 유효 표식(10)이 패킷의 마지막 바이트가 수신되었음을 지시하는 것과 동시에 패킷-종료 표식(end-of-packet flag: EOP)(12)이 표시된다. 오류 표식(error flag: OS)은 패킷이 디인터리버(deinter leaver)에 의해 일찍 종료되는 경우에 표시된다. 이는 전체 디코더에 대한 동작의 재설정을 초래한다. 버스(bus) CORRECT(16)는 정정된 데이터를 가진다. 회선 RS-VALID(18)는 데이터가 버스 CORRECT(16)상에 있다는 것을 나타낸다. 상기 회선은 데이터 바이트들이 회선상에 있을 때만 표시된다. 회선 RS_EOP(20)는 패킷의 종료가 검출되었음을 나타내는 회선이다. 회선 PACK_ERR(22)은 회선 RS_EOP(20)가 표시될 때 하이(high)로 된다. 이는 디코더(8)는 전에 릴리스된 패킷의 정정이 불가능함을 나타낸다. 회선 RS_OS(24)는 상기 패킷 내에서 중요한 에러 조건이 발생되는 것을 표시한다. 이 신호는 시스템을 통하여 전파되며, 현재의 블록이 더 이상의 유효한 데이터를 공급하지 않음을 나타낸다.
도 4를 참조하면, 패킷 R(x)(2)의 제1 188 바이트는 FIFO (4)의 회선 WD(26)에 나타나고, 카운터(30)의 상태에 따라 RAM(28)의 어드레스에 기록된다. 유사하게, 패킷 R(x)(2)의 지연된 버전(delayed version)은 카운터(34)의 상태에 따라 선택된 어드레스들로부터 회선 RD(32)상에서 판독된다.
신드롬들은 아래 방정식에 의하여 신드롬 계산 블록(36)(도 1)에서 계산된다.
여기에서
Sj는 j번째 신드롬,
n은 패킷에서의 바이트 수,
m0는 임의의 정수(영과 동등한), 및
αx는 갈로아 필드에서 x번째 α.
도 1 내지 7을 참조하면, 상기 신드롬은 병렬로 동작하는 세 개의 유니트들 (38), (40), 및 (41)(도 5)에 의해 생성된다. 가산기(46)를 가지는 복수개의 플립-플롭들(44)을 포함하는 탭 피드백 시프트 레지스터(42)(도 3)에 의해 갈로아 필드 항목들 αj가 제공되며, 가산기의 위치는 상기에서 주어진 생성 다항식에 의해 결정된다. 편의상 24개의 신드롬이 결정되는 반면, S0 -S19만이 디코더(8)의 나머지 부분에 의해 실질적으로 사용된다.
블록(48)(도 1)에서 수행되는 벨르캄프 알고리즘은 로케이터 다항식(locator polynomial) Λ(x)(50)과 평가 다항식(evaluator polynomial) Ω(x)(52)을 유도하기 위하여 사용되는 공지된 방법이다. 그 방법의 흐름도는 도 6에 도시되어 있다. 기호는 아래와 같이 사용된다.
R1은 이전의 신드롬 블록에서 제공된 신드롬 바이트들을 포함하는 시프트 레지스터이다.
R2는 Λ0= 1을 가지는 로케이터(locator) 다항식 Λ(x)를 포함한다.
R3은 D 다항식을 포함한다.
R4는 Ω10= 0을 가지는 평가 다항식 Ω(x)를 포함한다.
R5은 A 다항식에 대한 임시 기억 장치이다.
dn은 델타이다.
I는 R1에서의 다항식 순서이다.
n은 카운터이다.
STOP(54)에서, I는 알고리즘에 의해 발견되는 에러의 수를 나타내며, 레지스터(56)(도 7)에 의해 유지된다. 블록 (58)에서, 뒤이어 일어나는 알고리즘의 반복을 위해 레지스터 R2(60)의 내용을 레지스터 R3(62)와 반복적으로 교환하는 것이 필요하다.
값 dn은 다음 공식에 따라 계산된다.
도 7에 도시된 장치에서 수행되는 절차는 도 6의 알고리즘과 차이가 있다. 레지스터R2(60)의 내용을 레지스터R3(62)와 교환하고, 레지스터R4(64)의 내용을 레지스터R5(66)과 교환하는 대신에, 어느 레지스터가 반복적인 다항식을 포함하는지를 기억하기 위하여 토글 스위치(toggle switch)가 사용된다. 이러한 방식의 접근은 임시 저장 장소가 요구되지 않으므로 경제적이다. 제어 블록(68)은 5 비트 상태 기계이며, (a)다음 상태, (b)시프트 레지스트들 (60) 내지 (66), 및 (70) 각각의 사용 가능, (c)블록(58)에서 R1 내지 R5에 대응하는 레지스터들 (60) 내지 (66), 및 (70)으로의 입력을 선택하기 위하여 멀티플렉서들 (72),(74),(76),(78)에 대해서 선택하는 멀티플렉서, (d)각각의 상태가 가동중인 동안의 시간 제어, (e)필요한 때 변수들 n과 I의 재계산, 및 (f)어느 레지스터들이 Λ(x)와 Ω(x)를 포함하는지에 대한 지시의 계속을 결정하는 것을 각 상태로부터 디코딩한다.
치엔 검색 블록(80)(도 1)은 위치가 Λ(x)의 근(root)인지를 결정하기 위하여 모든 가능한 기억 위치를 철저하게 평가한다. 기억 위치에서의 평가는 아래 방정식에 따라 수행된다.
단지 208개의 기억 위치들만 수신되었다 하더라도, x=α255에서 시작해서, 검사는 255개의 모든 가능한 기억 위치들에 대해 행해진다. 예를 들면,
Λ(α-254)=Λ(αi)=Λ10i0)`+`Λ99)`+`...`+`Λ11)`+`1
Λ(α-253)=Λ(α2)=Λ1020)`+`Λ918)`+`...`+`Λ12)`+`1
Λ(α-252)=Λ(α3)=Λ1030)`+`Λ927)`+`...`+`Λ13)`+`1
상기 치엔 검색 블록(80)(도 1)은 도 8에서 보다 더 상세하게 도시되어 있다. Λ(x)의 두 항들은 두 개의 병렬 유니트를 사용하여 계산된다. 승산기(88)로 들어가는 한 쌍의 시프트 레지스터(84),(86)를 가지는 톱 유니트(top unit)(82)는 아래에서 기술될 계수들 α1내지 α5에 관계한다. 다른 유니트들 (90),(92), 및 (94)도 동일하게 동작한다. 도 8에서의 두 톱 유니트들 (82), 및 (90)은 Λ(x)를 계산하기 위하여 사용된다.
각각의 반복 연산에서, 곱들(products)은 회전 연산의 대상이되며, 그 곱들은 시프트 레지스터들을 통하여 리사이클(recycle)된다. 이와 같이, 여섯 번째 반복 연산시에 다음 위치가 평가되고, 시프트 레지스터의 우단 셀(cell)은 곱 Λ55)를 포함한다. 곱 Λ55)은 즉시 필요하게 되고, 그 곱은 α5에 의해 제1 반복 곱을 곱하기 위하여 단지 지금 필요하다.
카운터(96)는 Λ(x)=0인 경우마다 감지된 에러 위치들의 수를 카운터하기 위하여 증분된다. 만약 수신된 패킷이 최대 10 보다 더 큰 틀린 바이트를 포함하는지를 결정하기 위해 수행되는 두 개의 검사가 있다. 첫 번째로 카운터(96)에서의 값은 레지스터(56)(도 7)에서의 값과 비교된다. 이들 두 값들의 차는 패킷이 10 개 보다 많은 수의 에러를 가지는 것을 나타낸다. 두 번째로 치엔 검색에서 감지된 254 내지 208의 바이트들에서의 에러는 상기 블록을 무효화 시킨다. 이들은 수신되는 바이트들이 아니라 단지 치엔 검색 블록(80)을 간단하게 하기 위해 사용된다.
에러의 크기를 계산하기 위해 사용되는 방정식은 아래와 같이 주어진다.
E(x) = Ω(α-ii/Λ'(α-i)
이 결과는 만약 그 위치에서 Λ(x)의 계산이 영이면 수신된 바이트에 단지 더해진다. Ω(x)과 Λ`(x)의 계산은 낮은 쪽의 두 유니트(92),(94)를 사용하여 Λ(x)의 경우와 유사하게 이행된다. 유니트(94)는 Λ`(x)를 제공하고, 그 역수(reciprocal)는 ROM (도시되지 않음)상에서 참조 테이블을 사용하여 얻어질 수 있다.
당 기술 분야에서 숙련된 기술을 가진자는 갈로아 필드 연산:
(a * b) = (αa+ αb) = αa+b
의 가치를 인정할 것이다.
αa+b의 실제값은 필드 생성 다항식, 예를 들어 수학식 2에서 주어진 필드 생성 다항식에 의하여 결정된다. 더 나아가서, 분배 법칙에 따르면,
a = b + c
이면
d·a = d·b + d·c
이다.
승산기의 기능은 아래 방정식을 참조하여 이해될 수 있다.
a(x)=a7x7+ a6x6+ a5x5+ a4x4+ a3x3+ a2x2+ a1x1+ a0
b(x)=b7x7+ b6x6+ b5x5+ b4x4+ b3x3+ b2x2+ b1x1+ b0이면
a(x) * b(x) = c(x)
여기에서, *는 갈로아 필드 승산을 표시한다.
c'0= a0b0
c'1= a0b1+ a1b0
c'1= a0b2+ a1b1+ a2b0
.
.
.
c'13= a6b7+ a7b6
c'14= a7b7
수학식 2에서와 같이 p(x)에 대해
c0= c'0+ c'8+ c'21+ c'13+ c'14
c1= c'1+ c'9+ c'13+ c'14
c2= c'2+ c'8+ c'10+ c'12+ c'13
등.
상기 승산의 직접적인 실행은 하드웨어에서 일반적인 승산기를 사용하여 실행되어 왔다. 어떤 경우에 있어서, 일반적인 승산기는 연관된 알파-생성기(alpha- generator)로부터 입력을 가져온다. 그러나 일반적인 승산기는 집적 회로상에서 상당한 영역을 필요로 한다. 피승수 중 하나가 알려져 있기 때문에, 일반적인 승산기를 복수개의 상수 계수 승산기로 교체함으로써 상당한 공간을 절약할 수 있다. 신드롬 Sj(수학식 3)의 생성에 관련된 것과 같은 승산 연산에 있어서, 예시적인 항들 rxiα3, rxiα4, rxiα5을 만들어 내기 위한 뒤따르는 주기에서의 승산은 도 9에 도시된 승산기 구조(multiplier structure)(98)에 의해 수행될 수 있다. 아래 기술에서, r은 단지 상수이며, 데이터 패킷내의 i 번째 바이트에 반드시 관련되어 있지는 않다. 상기 예에서는 표현의 명료를 위해 단지 3항의 생성이 도시되어 있으며, 보다 더 많은 수의 항들이 계산될 수 있다. 승산기 구조(98)로의 입력은 상수 계수 승산기(constant coefficient multiplier)(102)내에서 알파 계수 α5(104)가 곱해지는 제1 피승수 rxi(100)이다. 곱 rxiα5은 노드(node)(106)에서 나타나며, 뒤따르는 상수 계수 승산기(108)로의 입력 항이 된다. 노드(110)에서 곱 rxiα4을 생성할 때, 상수 계수 승산기(108)는
αn= α1·αn-1
의 관계를 이용한다.
상기 곱들은 멀티플렉서(112)내에서 다중화되고, 전형적으로 다음 처리를 위해 가산기(114)에 의해 다른 값에 가산된다. 당 기술 분야의 숙련된 기술자는 상기 상수 계수 승산기(108)가 세 개의 배타적 논리합(XOR) 게이트만을 이용해서 구현될 수 있다는 것을 인식할 것이다.
발명자들은 수학식 2에서 표현된 승산의 분배 법칙과 알파 값이 다른 알파 값들의 선형 결합으로 표현될 수 있다는 사실을 이용하여 경제적이면서도, 보다 더 편리하게 구성되고, 보다 더 실용적인 갈로아 필드 승산기가 구현될 수 있다는 것을 발견하였다.
몇 개의 대표적인 알파 값들이 이진 수로서 표 1에 도시되어 있다.
갈로아 필드의 알파 값 이진 값
α0 1
α1 10
α2 100
α3 1000
α4 10000
α8 11101
캐리 비트(carry bit)의 생성없이 모듈로(modulo) 2 첨가에 의하여 알파 값들이 가산될 수 있다는 것이 주목할 만하다. 예를 들어
α8= α4+ α3+ α2+ α0
*가 갈로아 필드 연산에서 승산 연산자를 나타내는 곱 α8*rxi의 형성은 승산 분배 법칙을 사용하여 제2 피승수 α8을 입력함으로써 이루어질 수 있다.
rxiα8= rxiα4+ rxiα3+ rxiα2+ rxiα0
도 10은 포괄적으로 (116)으로 참조되는 갈로아 필드 승산기의 바람직한 실시예를 도시한다. 8 개의 상수 계수 승산기의 배열(array)(118)은 도 9에 도시된 것과 동일한 방식으로 배치된다. 8 비트의 데이터 경로가 도시되어 있다. 하지만 상기 회로는 다른 버스 폭으로 구성될 수 있다. n=0, α0인 특별한 경우에, 제1 상수 계수 승산기(120)로의 입력이 1이라는 점이 주목된다. 그러한 경우에, 상수 계수 승산기(120)는 제거될 수 있다. 도 9의 예에서는 j=1로 곱하는 것처럼, 상수 계수 승산기(118)의 배열에서 모든 다른 승산기들은 αj로 곱한다. 상수 계수 승산기 어레이(array)에 의하여 형성된 곱들은 버스들(122) 상에서 8개의 셀렉터들(selector)(124)의 제1입력들로 전달된다. 셀렉터들(124)의 제2 입력은 버스(128)상에서 나타나는 제2 피승수 B 각각의 비트 회선들(126)이다. 셀렉터(124)는 복수개의 AND 게이트로 실현될 수 있으며, 각 버스(122)의 비트 회선들은 각각의 비트 회선(126)에 따라 공동으로 실현될 수 있다. 현재의 예에서, 버스(128)의 비트들 0, 2, 3, 및 4가 설정되고, 버스들(130) 상에서 셀렉터들(124)의 출력들은 {0,0,0,A[4],A[3],A[2],0,A[0]}의 시퀀스로서 나타내어 질 수 있다. 이 시퀀스의 요소들은 가산기 블록(132)에서 합산되고, 그 합은 출력 버스(134)에서 나타난다. 캐리가 생성되지 않은때에, 상기 8개 요소의 각각의 합들은 XOR 게이트(138)의 트리로서 배열된 논리 네트워크(136)내에서 모듈로 2 가산으로 간단히 수행된다. 도 11은 가산기 블록(132)내에서 사용되는 8개의 동일한 네트워크들을 도시하며, 그 논리는 상기 버스들(130) 각각의 최하위 비트(least significant bit)에 적용된다. 다른 기지의 가산기 회로들도 가산기 블록(132)내에서 또한 적절하게 사용된다.
이 실시예의 초기 하드웨어 구현은 수학식 13 내지 20에 따른 승산의 간단한 실행과 비교하면 게이트 수에 있어서 20%의 감소를 가져온다. 앞서의 실시예들이 리드-솔로몬 디코딩에 관해서 논의되었더라도, 이는 다른 (N,K)코드들, 일반적인 보스, 레이-샤우드후리, 호퀭헴(Bose, Ray-Chaudhuri, Hocquenghem)(BCH) 코드들, 및 갈로아 필드 승산이 수행되는 다른 장치들에 동일하게 적용될 수 있다.
갈로아 필드 승산기(116)는 일반적인 갈로아 필드 승산기(140)로서 디코더(8)(도 2)를 통하여 치엔 검색 블록(80)(도 8)에서 효과적으로 사용될 수 있다.
바람직한 실시예에서, 디코더(8)과 갈로아 필드 승산기(116)는 VLSI 회로에서 구현된다.
예:
이 예에서 IEEE 표준 1364-1995에 적합한 표준 하드웨어 기술 언어가 하드웨어 구현을 기술하기 위해 사용되어 왔다.
아래에서의 기술에 따라, 최초의 종래의 일반적인 갈로아 필드 승산기가 개발되었다.
다음의 갈로아 필드 승산기(116)는 아래와 같이 기술된다.
상기 모듈들은 종래 일반적인 갈로아 필드 승산기과 갈로아 필드 승산기(116) 각각에 대해 아래 영역 보고서들(area reports)을 생성하는 종합 프로그램, 컴퍼스(compass) ASICSyn (상표)에 의해 처리되었다.
이와 같이, 본 발명에 따른 하드웨어 구현은 종래의 승산 방법과 비교하면 게이트 수에 있어서의 감소를 가져오며, 앞서의 실시예들이 리드-솔로몬 디코딩에 관해서 논의되었더라도, 이는 다른 (N,K)코드들, 및 갈로아 필드 승산이 수행되는 다른 장치들에 동일하게 적용될 수 있다.
비록 본 발명이 여기에서 개시된 구조를 참조하여 설명되었지만, 본 발명은 상기 기술된 상세한 설명에 한정되지 아니하며, 본 발명의 응용은 특허청구범위 범위내에서 있을 수 있는 임의의 수정이나 변경을 포함한다.

Claims (11)

  1. 발생기 다항식(generator polynomial) g(x)로 규정되며 기본 요소(primitive element) α를 가지는 BCH 코드에 따라 부호화된(encoded) 전자기 신호용의, 항 xiαj에 대해 연산을 수행하는 형(type)의 디코더(decoder)에 있어서,
    곱 A*B를 만들기 위한 회로 -연산자*이 갈로아 필드 승산 연산자(Galois Field multiplication operator)임- 로서,
    복수개의 승산기들(multipliers) -상기 승산기의 제1 입력은 제1 피승수(multiplicand) A를 정의하며, 상기 승산기의 제2 입력은 제2 피승수를 정의하고, 상기 제2 피승수는 상수 αk이며, 상기 승산기의 출력은 다른 상기 승산기의 제1 입력에 결합되어 있음-,
    상기 승산기의 출력을 인에이블(enable)시키기 위한 복수개의 선택기(selectors)들 -상기 선택기들은 크기(magnitude) B의 표시에 따라 설정되는 선택 회선(select lines)을 가짐-, 및
    상기 선택기들과 접속되어 상기 승산기들의 상기 인에이블된 출력들(enabled outputs)을 가산하기 위한 가산회로
    를 포함하는 회로를 구비하는 것을 특징으로 하는 디코더.
  2. 제1항에 있어서, 상기 승산기들은 상수 계수 승산기들(constant coefficient multipliers)을 포함하는 디코더.
  3. 제1항에 있어서, 상기 선택 회선에 결합되어 있는 복수개의 회선들 -상기 회선들은 상기 크기 B의 상기 표시에 따라 설정됨- 을 더 포함하는 디코더.
  4. 제1항에 있어서, 상기 가산 회로(addition circuit)는 캐리(carry)없이 가산을 수행하는 디코더.
  5. 제4항에 있어서, 상기 가산 회로는 XOR 게이트(XOR gate)로 된 논리 네트워크(logical network)를 포함하는 디코더.
  6. 집적 회로내에서, 발생기 다항식 g(x)로 규정되며 기본 요소 α를 가지는 BCH 코드에 따라 부호화된 전자기 신호용의, 항 xiαj에 대해 연산을 수행하는 형의 디코더에 있어서,
    곱 A*B를 만들기 위한 회로 -연산자*은 갈로아 필드 승산 연산자임- 로서,
    복수개의 상수 계수 승산기들 -상기 승산기들 중 제1 승산기의 제1 입력은 제1 피승수 A를 정의하며, 상기 승산기의 제2 입력은 제2 피승수를 정의하고, 상기 제2 피승수는 상수 αk이며, 상기 제1 승산기의 출력은 상기 승산기들 중 제2 승산기의 제1 입력에 결합되어 있음-, 및
    크기 B의 표시에 따라 상기 승산기의 선택된 출력을 인에이블시키기 위한 선택기 회로(selector circuit)
    를 포함하는 회로를 구비하는 것을 개량된 특징으로 하는 디코더.
  7. 발생기 다항식 g(x)에 의해 특정되고 기본 요소 α를 가지는 BCH 코드에 따라 부호화된 전자기 신호용의, 항 xiαj에대해 연산을 수행하는 형의, 갈로아 필드 승산기를 가지는 디코더에 있어서
    복수개의 상수 계수 승산기들 -상기 복수개의 상기 상수 계수 승산기의 제1 입력은 제1 피승수 A를 정의하며, 상기 상수 계수 승산기의 제2 피승수는 상수 αK이며, 상기 상수 계수 승산기의 출력은 뒤따르는(succeeding) 상수 계수 승산기의 입력에 접속되어 있음-,
    크기 B의 2진 표시를 형성하는 상태를 가지는 복수개의 비트 회선들(bit lines),
    복수개의 스위치들 -각 상기 스위치는 상기 상수 계수 승산기들의 각각의 하나의 출력에 접속되어 있고, 상기 비트 회선들 각각의 하나에 접속되어 있는 제어 회선(control line)을 가짐-, 및
    상기 상수 계수 승산기들의 출력들을 가산하기 위해 상기 스위치들에 접속된 모듈로 2 가산(modulo 2 addition)을 수행하기 위한 가산 회로 -상기 가산된 출력들은*이 갈로아 필드 승산 연산자인 크기 A*B의 2진 표시로서의 출력임-
    를 특징으로 하는 디코더.
  8. 제7항에 있어서, 상기 가산 회로는 논리 네트워크를 포함하는 디코더.
  9. 발생기 다항식 g(x)로 규정되고 기본 요소 α를 가지는 리드-솔로몬 코드에 따라 부호화된 전자기 신호용의, 항 xiαj에대해 연산을 수행하는 형의 디코더에 있어서,
    곱 A*B를 만들기 위한 회로 -연산자*”이 갈로아 필드 승산 연산자(Galois Field multiplication operator)임- 로서
    상수 계수 승산기들의 상수 계수 선형 체인(chain) -상기 체인에서 제1 상기 승산기의 입력은 제1 피승수 A를 정의하며, 상기 승산기의 제2 피승수는 상수 αk이며, 상기 승산기의 출력은 뒤따르는 승산기의 입력에 결합되어 있음-,
    출력이 인에이블링하도록 상기 승산기의 출력에 결합되어 있는 제1 입력들을 가지는 복수개의 AND 게이트들, 및
    상기 승산기의 상기 인에이블링한 출력들을 가산하기 위하여 상기 선택기들과 접속된 가산 회로
    를 포함하는 회로를 구비하는 것을 개량된 특징으로 하는 디코더.
  10. 제9항에 있어서, 상기 가산 회로가 모듈 2 가산을 수행하기 위한 트리(tree)로서 배열된 XOR 게이트의 논리 네트워크를 포함하는 디코더.
  11. 리드-솔로몬 코드에서 α가 기본 요소인 리드-솔로몬 디코딩을 수행하는 방법에 있어서,
    리드-솔로몬 디코더를 가지는 VLSI 회로를 제공하는 단계와,
    상기 회로에서 곱 xiαj를 얻기위한 갈로아 필드 승산의 수행은
    값 αn각각에 대해, n이 정수인 경우, αj와 동등한 합을 가지는 값들 αn의 선형 결합을 확인하는 단계,
    k가 정수인 경우, αn에 αn-k을 곱함으로써 값 αn각각을 생성하는 단 계,
    곱 αnxi를 산출하기 위하여 값 αn에 xi를 각각을 곱하는 단계, 및
    곱 αnxi를 가산하는 단계
    에 의해 갈로아 필드 승산이 수행되는 단계
    를 포함하는 방법.
KR1019970055933A 1996-10-30 1997-10-29 리드-솔로몬 디코더용 갈로아 필드 승산기 KR19980033277A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9622539.6 1996-10-30
GBGB9622539.6A GB9622539D0 (en) 1996-10-30 1996-10-30 Galois field multiplier for reed-solomon decoder

Publications (1)

Publication Number Publication Date
KR19980033277A true KR19980033277A (ko) 1998-07-25

Family

ID=10802135

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970055933A KR19980033277A (ko) 1996-10-30 1997-10-29 리드-솔로몬 디코더용 갈로아 필드 승산기

Country Status (13)

Country Link
US (1) US5818855A (ko)
EP (1) EP0840461A3 (ko)
JP (1) JPH10177497A (ko)
KR (1) KR19980033277A (ko)
CN (1) CN1181664A (ko)
AR (1) AR008905A1 (ko)
AU (1) AU699253B2 (ko)
CA (1) CA2199114A1 (ko)
GB (1) GB9622539D0 (ko)
ID (1) ID18695A (ko)
IL (1) IL122018A0 (ko)
SG (1) SG65026A1 (ko)
TW (1) TW375853B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3233860B2 (ja) * 1996-10-25 2001-12-04 松下電器産業株式会社 リードソロモン復号器
US5905664A (en) * 1997-04-04 1999-05-18 National Semiconductor Corp. Circuit for determining, in parallel, the terms of a remainder that results from dividing two binary polynomials
US6044390A (en) * 1998-04-16 2000-03-28 V L S I Technology, Inc. Recursive lookahead-based 2n -bit serial multipliers over Galois Field GF (2m)
US6378105B1 (en) 1999-05-24 2002-04-23 Oak Technology, Inc. Reed-Solomon multiplication method
US6446233B1 (en) 1999-09-10 2002-09-03 Lsi Logic Corporation Forward error correction apparatus and methods
US6760742B1 (en) 2000-02-18 2004-07-06 Texas Instruments Incorporated Multi-dimensional galois field multiplier
US6996133B2 (en) * 2000-04-18 2006-02-07 Zenith Electronics Corporation Digital communication system for transmitting and receiving robustly encoded data
US6701478B1 (en) * 2000-12-22 2004-03-02 Nortel Networks Limited System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel
US7187698B2 (en) * 2001-03-13 2007-03-06 Zenith Electronics Corporation Robust digital communication system
US7003715B1 (en) 2001-03-30 2006-02-21 Cisco Technology, Inc. Galois field multiply accumulator
US7124064B1 (en) * 2001-03-30 2006-10-17 Cisco Technology, Inc. Automatic generation of hardware description language code for complex polynomial functions
US7447982B1 (en) 2001-03-30 2008-11-04 Cisco Technology, Inc. BCH forward error correction decoder
US6983414B1 (en) 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
FR2854747A1 (fr) * 2003-05-09 2004-11-12 St Microelectronics Sa Dispositif et procede d'addition-comparaison-selection- ajustement dans un decodeur
US7995667B2 (en) * 2004-02-13 2011-08-09 Broadcom Corporation Reduced latency concatenated reed solomon-convolutional coding for MIMO wireless LAN
US7228490B2 (en) * 2004-02-19 2007-06-05 Quantum Corporation Error correction decoder using cells with partial syndrome generation
CN1561005B (zh) * 2004-02-20 2010-12-08 汇智系统股份有限公司 快速纠双错bch码译码器
US7366969B2 (en) * 2004-10-07 2008-04-29 Cisco Technology, Inc. System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
US7209070B2 (en) * 2004-10-07 2007-04-24 Honeywell International, Inc. System and method for enhanced situational awareness of terrain in a vertical situation display
CN100440738C (zh) * 2005-12-16 2008-12-03 北京中星微电子有限公司 BCH编码中Galois扩域运算的快速实现方法
CN101567696B (zh) * 2009-05-22 2013-01-23 北京大学 一种参数可变的bch码编码器及译码器
CN103138770B (zh) * 2010-01-12 2016-09-28 北京忆恒创源科技有限公司 有限域平方计算电路
EP2434650A1 (en) * 2010-09-23 2012-03-28 Panasonic Corporation Reed-Solomon encoder with simplified Galois field multipliers
CN103345379B (zh) * 2013-06-09 2016-09-07 暨南大学 一种复数乘法器及其实现方法
US9954553B1 (en) * 2015-06-05 2018-04-24 Altera Corporation Circuitry and methods for continuous parallel decoder operation
US11012094B2 (en) 2018-12-13 2021-05-18 Ati Technologies Ulc Encoder with mask based galois multipliers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3872430A (en) * 1973-11-23 1975-03-18 Paul Emile Boudreau Method and apparatus of error detection for variable length words using a polynomial code
US4162480A (en) * 1977-01-28 1979-07-24 Cyclotomics, Inc. Galois field computer
US4559625A (en) * 1983-07-28 1985-12-17 Cyclotomics, Inc. Interleavers for digital communications
US4633470A (en) * 1983-09-27 1986-12-30 Cyclotomics, Inc. Error correction for algebraic block codes
JPS60186942A (ja) * 1984-02-24 1985-09-24 Victor Co Of Japan Ltd デイジタル乗算回路
US4797848A (en) * 1986-04-18 1989-01-10 Hughes Aircraft Company Pipelined bit-serial Galois Field multiplier
US4833678A (en) * 1987-07-22 1989-05-23 Cyclotomics, Inc. Hard-wired serial Galois field decoder
US4847801A (en) * 1987-10-26 1989-07-11 Cyclotomics, Inc. Compact galois field multiplier
US4928280A (en) * 1988-04-29 1990-05-22 International Business Machines Corporation Fast processor for multi-bit error correction codes
SE466822B (sv) * 1990-06-15 1992-04-06 Mastrovito Edoardo Anordning foer multiplikation av tvaa element i en galoiskropp
GB9301704D0 (en) * 1993-01-28 1993-03-17 Signal Processors Ltd New digital modem design techniques
US5465261A (en) * 1993-08-03 1995-11-07 National Semiconductor Corporation RAM based architecture for ECC circuits
US5668831A (en) * 1995-06-07 1997-09-16 Discovision Associates Signal processing apparatus and method

Also Published As

Publication number Publication date
SG65026A1 (en) 1999-05-25
EP0840461A2 (en) 1998-05-06
AU699253B2 (en) 1998-11-26
EP0840461A3 (en) 2000-03-08
GB9622539D0 (en) 1997-01-08
CA2199114A1 (en) 1998-04-30
CN1181664A (zh) 1998-05-13
TW375853B (en) 1999-12-01
AU3991897A (en) 1998-05-07
US5818855A (en) 1998-10-06
IL122018A0 (en) 1998-03-10
JPH10177497A (ja) 1998-06-30
AR008905A1 (es) 2000-02-23
ID18695A (id) 1998-04-30

Similar Documents

Publication Publication Date Title
KR19980033277A (ko) 리드-솔로몬 디코더용 갈로아 필드 승산기
US5440570A (en) Real-time binary BCH decoder
US8176396B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
US20060123325A1 (en) Condensed galois field computing system
US20040078411A1 (en) Galois field arithmetic unit for use within a processor
JP2005218098A (ja) 順方向のチェンサーチ方式のリードソロモンデコーダ回路
US20050204268A1 (en) Decoding and error correction for algebraic geometric codes
US20040078555A1 (en) Processor having a finite field arithmetic unit
US7403964B2 (en) Galois field multiplier array for use within a finite field arithmetic unit
Truong et al. Algebraic decoding of (103, 52, 19) and (113, 57, 15) quadratic residue codes
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
US6263471B1 (en) Method and apparatus for decoding an error correction code
Shayan et al. A versatile time-domain Reed-Solomon decoder
KR100731985B1 (ko) 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법
US7181671B2 (en) Parallelized CRC calculation method and system
JP3241851B2 (ja) 誤り訂正復号装置
US7281196B2 (en) Single error Reed-Solomon decoder
US20100031126A1 (en) System and method for using the universal multipole for the implementation of a configurable binary bose-chaudhuri-hocquenghem (BCH) encoder with variable number of errors
Kamar et al. Fpga implementation of rs codec with interleaver in dvb-t using vhdl
Flocke et al. Implementation and modeling of parametrizable high-speed Reed Solomon decoders on FPGAs
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR0137354B1 (ko) 무선 데이타 통신에서의 에러검출 및 정정방법
MXPA97008135A (en) Galois field multiplier for reed-solo decoder
KR100220694B1 (ko) 확장된 신드롬 다항식 전개 장치
KR100192792B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application