59

40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 2: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

공학석사학 청구논문

통신용 40Gb/s Forward Error Correction 아키텍처

40Gb/s Forward Error Correction Architecture for

Optical Communications

2008년 2월

인하 학교 학원

정보통신공학과

이 승 범

Page 3: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

지도교수 이 한 호

이 논문을 석사학 논문으로 제출함

Page 4: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

이 논문을 이승범의 석사학 논문으로 인정함

2008년 2월

주심

부심

Page 5: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

I

국문요약

본 논문은 ME 알고리즘의 차수 연산 블록 신에 다항식의 차수의 편차를

이용하여 제어 신호를 생성하는 pDCME 알고리즘 블록과 새로운 16 채 RS

FEC 구조들을 제시한다. pDCME 알고리즘 블록은 차수 연산 블록을 제거하여

기존의 ME 알고리즘 블록에 비해 17%의 하드웨어 복잡도를 일 수 있다. 기

존의 직렬 FEC 구조는 4개의 신드롬 계산 블록이 1개의 KES 블록과 연결되는

4채 FEC구조 2개로 구성되어 있지만 새로운 16채 직렬 FEC 구조는 8개의

신드롬 계산 블록이 하나의 KES 블록과 연결되는 8채 FEC 구조 2개로 구성

된다. 4개의 KES 블록을 2개로 임으로서 새로운 직렬 FEC 구조는 기존의

FEC 구조에 비해 하드웨어 복잡도를 약 30% 일 수 있다. 제안된 직렬 FEC

구조는 3.3V의 공 압과 0.18-㎛ CMOS 기술을 사용하여 구 하 고 총

223K개의 게이트수와 400MHz의 클럭 주 수에서 51Gb/s의 데이터 처리율을

가지고 동작함을 보여 다. 기존의 2-병렬 FEC 구조는 RS(255,239)에서 255개

의 코드워드는 2로 나 수 없기 때문에 더미 제로 심벌이 추가되어 역 손

실을 가진다. 제안된 2-병렬 FEC 구조는 더미 제로 심벌이 필요 없는 신드롬

계산 블록과 Chien Search 블록 Forney 알고리즘 블록을 제시한다. 2-병렬

FEC 구조는 Xilinx Virtex4 FPGA에서 180MHz의 클럭 주 수와 46Gb/s의 데

이터 처리율을 가진다. 제안된 FEC 구조들은 고속 통신뿐만 아니라 무선통

신을 한 차세 FEC 구조 등에 바로 용될 수 있을 것이다.

Page 6: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

II

Abstract

This paper presents pDCME algorithm block, which is generating it’s

control signal using degree difference of polynomials instead of degree

computation block and novel 16 channel FEC architectures. pDCME

algorithm block can reduce the hardware complexity about 17% compared to

the ME algorithm block by removing degree computation block. The

conventional 16-Ch. serial FEC architecture consists of four 4-Ch. serial

FEC architectures and each 4-Ch. serial FEC architecture has four syndrome

computation blocks and a shared 1 KES block. But the proposed 16-Ch.

serial FEC architecture consists of two 8-Ch. serial FEC architecture and

each 8-Ch. serial FEC architecture has 8 syndrome computation block and a

shared 1 KES block. The novel serial FEC architecture can reduce the

hardware complexity about 30% compared to the conventional FEC

architecture by using 2 KES block not 4 KES block. The proposed FEC

architecture has been designed and implemented with 0.18-㎛ CMOS

technology in a supply voltage of 3.3V. The result shows that the total

number of gate is 223K and it has a data processing rate of 51Gb/s at clock

frequency of 400MHz. The conventional 2-parallel FEC has bandloss by

adding dummy zero symbol because codeword of 255 symbols can’t divide

by 2. The 16-Ch. 2-parallel FEC architecture presents syndrome computation

block, Chien search block and Forney algorithm block without dummy zero

symbol. The 16-Ch. 2-parallel FEC architecture has a data processing rate

of 46Gb/s at clock frequency of 180MHz in Xilinx Virtex4 FPGA. The

proposed architectures can be readily applied to the next generation FEC

devices for high-speed optical communications as well as wireless

communications.

Page 7: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

III

목 차

국문요약 I

Abstract II

목 차 III

그림 목차 V

표 목차 VI

1. 론 1

2. 리드- 로몬 코드 3

2.1. 리드- 로몬 4

2.2. 리드- 로몬 복 5

3. 하드웨어 계 11

3.1. 신드롬 계산 블록 11

3.2. Chien Search 블록, Forney 알고리즘 블록 류 정정 블록 13

3.3. Key Equation Solver (KES) 블록 16

4. 정정 가능한 블록 감지 27

5. 40Gb/s 직렬 리드- 로몬 FEC 조 28

5.1 존 40Gb/s 리드- 로몬 FEC 조 28

5.2. 제안하는 40Gb/s 리드- 로몬 FEC 조 28

6. 40Gb/s 병렬 리드- 로몬 FEC 조 33

6.1. 40Gb/s 3-병렬 FEC 조 34

6.2. 40Gb/s 2-병렬 FEC 조 36

7. 결과 비 41

Page 8: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

IV

8. 능 검증 43

8.1. 시험 경 43

8.2. 시험 절차 44

8.3. 검증 45

9. 결론 47

10. 참고 헌 48

Page 9: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

V

그림 목차

그림 1. (a) 신드롬 , (b) 신드롬 다항식 하는 신드롬 계산 블록. 12

그림 2. (a) 본 , (b) Chien Search 블록, (c) Forney 알고리즘

류 정정 블록. 15

그림 3. 차수 연산 포함 (a) Processing Element 블록, (b) KES 블록. 18

그림 4. 제안하는 pDCME 알고리즘 한 KES 블록. 20

그림 5. (a) 다항식 연산에 른 PE 조, (b) 지연 연산에 른 PE 조 21

그림 6. (a) 수식 (51), (b) 수식 (52), (c) 수식 (53), (d) 수식 (54)에 한

로 다른 PE 연산. 25

그림 7. (a) 제어 신 생 에 한, (b) stop 신 생 에 한

Finite State Machine (FSM). 25

그림 8. 존 40Gb/s RS FEC 조. 29

그림 9. 8 채널 직렬 RS FEC 조. 30

그림 10. 8채널 RS FEC 조 타 도. 31

그림 11. 8채널 RS FEC칩 다 포 그래프. 31

그림 12. 16채널 직렬 RS FEC 조. 32

그림 13. 4채널 3-병렬 RS FEC 조. 34

그림 14. (a) 신드롬 , (b) 신드롬 계산 블록. 35

그림 15. (a) 류 정정 , (b) Chien Search 블록, (c) Forney 알고리즘 블록

류 정정 블록. 35

그림 17. (a) 신드롬 , (b) 신드롬 계산 블록. 37

그림 19. (a) 류 정정 , (b) Chien Search 블록, (c) Forney 알고리즘 블록

류 정정 블록. 39

그림 20. 제안하는 2-병렬 류 정정 티플렉 신 타 차트. 40

그림 21. FPGA 보드 스트 경. 43

그림 22. 시험 절차. 44

그림 23. FPGA design flow. 44

그림 24. ModelSim 한 8 채널 직렬 RS 복 시뮬레 도. 45

그림 25. ChipScope Pro를 한 8-채널 직렬 RS 복 시뮬레 도. 46

Page 10: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

VI

표 목차

1. KES 블록 비 . 26

2. 미없는 신드롬 계산 블록 력 . 37

3. 16채널 RS 복 FEC 결과. 42

Page 11: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 1 -

1. 서론

리드-솔로몬(Reed-Solomon: RS) 코드는 마그네틱, 장매체, 유선

성 통신 등 다양한 응용분야에 리 쓰이는 Forward Error Correction (FEC)

기술이다. 8 바이트 오류정정(error correction) RS(255,239) 코드는 해 섬유

시스템을 해 국제통신연합(ITU)에 의해 채택되었다 [1]. 재 가장 일반 으

로 사용되는 RS 복호기(decoder) 구조는 오류를 감지하고 정정하는 세 개의 주

요한 부분으로 구성되어있다. 첫 번째 부분은 신드롬 계산 (Syndrome

Computation: SC)블록이다. 신드롬 계산 블록에서는 신드롬 다항식 (Syndrome

polynomial) 를 발생시키고, 수신된 코드워드(Codeword)의 오류패턴을 표

한다. 신드롬 다항식 는 RS 복호기의 두 번째 부분인 Key-Equation

Solver (KES)블록에서 입력으로 사용되어진다. KES 블록에서는 키 등식 (Key

equation) ⋅ 을 해결하기 해 유클리디안 알고리즘

(Euclidean Algorithm (EA)), 수정 유클리디안 알고리즘(modified Euclidean

Algorithm (MEA)), 는 벌리캄 -마시 알고리즘(Berlecamp- Massay

Algorithm (BMA)) 등이 오류 치 다항식(error-locator polynomial) 와 오

류 추정 다항식(error-evaluator polynomial) 을 구하기 하여 사용될 수

있다 [2]. 와 의 두 다항식은 Chien Search 블록과 Forney 알고리즘

블록에서 오류의 치와 오류 값을 구하기 하여 사용된다. 복호기가 오류를

감지하고 정정하는 과정을 실행하는 동안 FIFO 메모리가 버퍼(buffer)로 사용

된다. FIFO 메모리의 깊이(depth)는 복호기의 총 지연성(latency)과 련이 있

고 FIFO 메모리의 출력과 Forney 알고리즘 블록의 출력이 XOR 연산을 거쳐

오류 정정된 코드워드가 출력이 된다.

통신 네트워크 시스템 구축을 한 고속 데이터 송 기술은 높은 데이

터율을 얻기 한 요구와 맞물려 고속 FEC 구조의 구 을 필요로 하게 되었

다. Dense Wavelength Division Multiplexing (DWDM)의 출 과 함께 송

시스템은 지난 십년간 속도로 발 되어 왔으며 8 바이트 오류정정능력에 기

인한 RS(255,239)코드가 고속(10Gb/s 이상) 송 시스템에 일반 으로 사용되

고 있다. 그러나 송 시스템이 속도로 발 함에 따라 40Gb/s 이상의 고속

Page 12: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 2 -

데이터 송률을 필요로 하게 되었고, 이에 따라 하드웨어 복잡도와 력소모가

매우 큰 존하는 부분의 RS 복호기는 시스템 벨 통합의 어려움을 가져왔

다.

본 논문에서는 차수의 직 인 연산을 제거하고 다항식의 차수의 편차를 이

용하여 제어 신호를 생성하는 pDCME 알고리즘 블록과 16 채 직렬 FEC 구

조를 제시한다. 차수 연산 블록이 제거되어 기존의 ME 알고리즘 블록에 비해

하드웨어 복잡도가 어들었고 8개의 채 의 신드롬 계산 블록이 하나의 KES

블록과 연결되는 8 채 FEC 구조를 병렬로 연결하여 16 채 직렬 FEC 구조

를 구 하 다. 한 2-병렬 는 3-병렬 FEC 구조를 살펴보고 기존의 2-병렬

구조에 포함되는 더미 제로 심벌을 제거하여 역 손실 없는 2-병렬 FEC 구조

를 제안한다. 직렬 FEC 구조, 2-병렬 FEC 구조 그리고 3-병렬 FEC 구조의 장

단 을 알아보고 시스템의 요구사항에 따라 선택 으로 사용할 수 있는 방향을

제시한다.

Page 13: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 3 -

2. 리드-솔로몬 코드

리드-솔로몬 부호(Code)는 이 2보다 큰 양의 정수일 때, 비트 열로 만든

심벌(Symbol)로 이루어진 비2진 순환 부호(nonbinary cyclic code)이다. 비트

심벌에 한 RS 부호는 다음 조건을 만족시키는 모든 과 값에 존재한

다 [10].

(1)

여기서 는 부호화될 데이터 심벌의 수이고, 은 부호화된 블록에 있는 부호

심벌의 수이다. 부분의 기존 RS 부호는 다음과 같다.

(2)

여기서 는 부호의 심벌 오류 정정 능력이고, 는 패리티 심벌의 수이

다. RS 부호는 동일한 부호기 입력 출력 길이를 가진 어느 선형부호보다 최

소거리가 가능한 최 가 되는 부호이다. 비2진 부호에서, 두 부호어 사이의 거

리는 (해 거리(Hamming distance)와 마찬가지로) 부호어 열에서 서로 다른

심벌의 수로 정의한다. RS 부호의 최소 거리는 다음과 같이 주어진다.

(3)

부호는 어느 개나 그 이하의 오류를 정정할 수 있는데, 는 다음과 같이 표

할 수 있다.

⌋⌊

⌋ (4)

여기서 ⌊⌋는 보다 크지 않은 가장 큰 정수를 뜻한다. 수식 (4)에 의하면

RS 부호의 경우, 개의 심벌 오류를 정정하는 데 개의 패리티 심벌만 있으

면 충분하다. 수식 (4)에 의해 다음과 같은 직 인 논리가 가능하다. 복호

(decoding)에는 ‘쓸 수 있는’ 개의 여유분 심벌이 있는데 그것은 정정 가능

한 오류 수의 두 배이다. 각 오류에 해 하나의 여유분 심벌은 오류의 치를

찾는데 사용되고, 나머지 여유분 심벌은 그 오류의 올바른 값을 찾는데 사용된

Page 14: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 4 -

다고 말할 수 있다.

부호의 소거(erasure) 정정 능력은 다음과 같다.

(5)

동시에 오류와 소거를 정정할 수 있는 능력은 다음과 같은 요구조건으로 표시

할 수 있다.

(6)

여기서 는 정정할 수 있는 심벌 오류 패턴의 수이고, 는 정정할 수 있는 심

벌 소거 패턴의 수이다. RS 부호와 같은 비2진 부호의 장 은 다음과 같은 비

교를 통해 알 수 있다. 2진 부호를 보자. 체 튜 (Tuple) 공간

에는 개의 튜 이 있고, 그 개(즉 튜 의 1/16)가

부호어다. 다음에 각 심벌이 비트로 이루어진 비2진 부호를 보

자. n튜 공간에는 모두 개의 튜 이 있고, 그

개 (즉, 튜 의1/4096)가 부호어이다. 개의 비트로 만든 비2진

심벌을 다룰 때는, 가능한 튜 에서 아주 작은 비율(즉 )만이

부호어이다. 이 비율은 이 증가할수록 더욱 감소한다. 여기서 요한 은

튜 공간의 아주 작은 비율만이 부호어로 사용되면, 더 큰 이 가능하다는

것이다 [10].

어떤 선형 부호도 만약 개의 소거 심벌이 모두 패리티 심벌의 치에

발생한다면 심벌 소거 패턴을 정정할 수 있다. 그러나 RS 부호는 블록 내

의 어떤 치에 있는 개의 심벌 소거 집합도 정정할 수 있는 획기 인 특

성을 가지고 있다. RS 부호는 여유분의 수에 계없이 설계할 수 있으며, 가장

바람직한 RS 부호는 높은 부호율( 은 여유분)을 가진다.

2.1. 리드-솔로몬 부호화

수식 (7)은 라미터 , , 와 임의의 양의 정수 으로 RS 부호를 나타

낸 가장 형 인 형태이다. 여기에 반복하면 다음과 같다.

Page 15: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 5 -

(7)

여기서 는 패리티 심벌의 수이고, 는 부호의 심벌 오류 정정 능력이

다. RS 부호의 생성 다항식은 다음의 형태를 취한다.

(8)

생성 다항식의 차수는 패리티 심벌의 수와 같다. 생성다항식의 차수가 이므

로, 다항식의 근은 정확히 개의 연속 인 의 거듭제곱이어야 한다 [10].

ITU-T G.975에서는 의 값을 부터 으로 권장하고 있고 다음과 같은

형태가 된다 [1].

⋯ (9)

RS 부호는 순환 부호이므로 조직 인(systematic) 형태의 부호화는 메시지 다

항식 에 를 곱하고 패리티 다항식 를 더하는 형태가 된다. 는

⋅ 를 로 나 나머지이다.

(10)

(11)

부호화된 다항식 는 다음과 같다.

(12)

수식 (10)의 를 수식 (12)에 입하면 부호화된 다항식 는

가 되고 이는 부호화된 다항식에 의 근을 입하면 0이 됨을 의미

한다.

2.2. 리드-솔로몬 복호화

부호화를 통해 얻은 부호어 다항식은 송하는 동안 잡음에 의해 오염되어

심벌의 오류로 수신되었다고 가정하면 오류 패턴은 다음과 같이 다항식으로 나

Page 16: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 6 -

타낼 수 있다.

(13)

그러면 오염되어 수신된 부호어 다항식 는 다음과 같이 송신 부호어 다항

식과 오류 패턴 다항식의 합으로 나타낼 수 있다.

(14)

2.2.1. 신드롬 계산

신드롬 계산은 수신된 다항식 가 오류에 오염되었는지 아닌지를 단하

고 오류에 의해 오염되었을 때 오류 패턴을 찾을 수 있는 값이 된다. 신드롬 계

산은 수신된 다항식 에 의 모든 근을 입하는 형태로 이루어진다.

가 합법 인 부호어라면 는 가 되고 에 로 나 어지므로

신드롬 계산의 결과는 0이 된다. 신드롬의 계산 결과가 0이 아니면 수신된 다항

식이 오류로부터 오염되었음을 나타낸다. 신드롬 는 개의 심벌

⋯로 구성되었고 신드롬 심벌의 계산은 다음과 같이 표 할

수 있다.

⋯ (15)

에 한 신드롬 심벌의 계산 결과는 0이므로 신드롬 심벌은 다음의 형태로

표 할 수 있다.

⋯ (16)

채 에서 개의 오류가 발생하 고 ⋯는 오류의 치를 나타내고 ⋯

는 오류의 값을 나타낸다고 가정하면 는 다음과 같이 표 할 수 있다.

(17)

Page 17: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 7 -

수식 (17)에서 ,

이라고 하면 는 다음과 같이 표 할 수 있다.

(18)

이 때 은 오류의 치를 나타내고 은 오류의 값이 된다.

2.2.2. 유클리디안 알고리즘

신드롬 계산을 통해 구한 신드롬 다항식을 이용하여 오류의 치를 나타내는

오류 치 다항식을 구하기 해 유클리디안 알고리즘이 이용된다. 유클리디안

알고리즘을 정리하면 다음과 같다.

[정리 1] 상의 두 다항식 와 가 주어졌을 때 이들의 최 공약

수(GCD)는 다음과 같은 나눗셈을 반복 으로 수행하여 구할 수 있다. 즉

≥ 인 계를 만족할 때

⋅⋅⋅

(19)

으로 나머지가 0일 때 는 이다 [9].

[증명] , 라고 할 때 수식 (19)는

≤≤로 표 될 수 있다. 마지막 식에서 는

와 를 모두 나 수 있고 는 와 항의 합으로

이루어져 있으므로 로 나 어진다. 그러므로

는 이 되고

가 된다.

Page 18: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 8 -

[정리 2] 이다. 여기서 와 는

상의 다항식이다.

[증명] 정리 1에서 이므로 수식 (19)로부터

라 할 수 있다. 한편

로부터 가 되고

가 된다. 따라서 앞의 식들을 이용하여 와 를 차례로 제거해 가

면 가 된다.

정리 1과 정리 2를 이용하여 유클리디안 알고리즘은 다음과 같이 요약될 수

있다. 임의의 다항식 , 의 GCD를 라 하면 정리 2에 의해 다음의

계식을 만족한다.

(20)

≥라 할 때 와 는

, , (21)

, , (22)

을 기 조건으로 하여

(23)

(24)

(25)

에서 일 때까지 반복계산을 수행한 후 그 때의 와 가 된다.

여기서 는 를 로 나 때의 몫이며 , , 와의

계는 다음을 만족한다.

(26)

Page 19: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 9 -

이 알고리즘의 반복 계산 횟수는 모든 에 해 이므로

유한하다 [9].

앞에서 기술한 유클리디안 알고리즘을 이용하여 신드롬 다항식으로부터 오

류 치다항식 를 구하는 방법은 아래와 같다. RS 부호의 신드롬 값

⋯로부터 다음과 같은 신드롬 다항식을 정의하자.

(27)

수식 (27)에 수식 (18)을 입하면 다음과 같다.

(28)

오류 치다항식 는 오류 치의 역수 값을 근으로 가지는 다항식이라고 정

의하면 다음과 같이 표 할 수 있다.

(29)

한 ⋅라고 정의하면

⋅ ⋅

⋅ ≠

⋅ ≠

(30)

수식 (20)에 를 취하면 가 되고, 여기서

, 라 하고 , 라 하면 수식 (20)는 수

식 (30)이 된다. 가 이고 가 이므로 유클리디안 알고리

Page 20: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 10 -

즘에 용하여 오류 치 다항식을 구할 수 있다.

2.2.3. 오류 치 오류의 값 검출

유클리디안 알고리즘을 이용하여 오류 치 다항식을 구하 고 오류 치다

항식은 정의에 따라 오류 치의 역수를 근으로 가진다. 이 근을 알면 오류 치

도 알게 된다. 그러므로 의 유한체(Galois Field) 모든 원소들로 검사함으로

써 그 근을 구할 수 있다. RS 부호의 첫 심벌은 치에 해당하고 이 치

에서 오류가 발생했는지 확인하기 해 의 역수 을 의 근으로 입하

고 , , ⋯, 순으로 검사한다.

오류의 값은 오류 추정 다항식과 오류 치 다항식의 미분 다항식으로 얻을

수 있다. 오류 치 다항식 의 미분 다항식 ′는 다음과 같이 표 할 수

있다.

(31)

′와 를 이용하여 오류 값 을 구할 수 있다.

(32)

Page 21: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 11 -

3. 하드웨어 설계

3.1. 신드롬 계산 블록

신드롬 계산 블록은 신드롬 값 를 구하고 이를 다항식 의 형태로 출력

으로 내보내는 역할을 한다. 수신된 코드워드 의 계수 값들이 1 클럭 사이

클마다 하나씩 입력되므로 수식 (15)을 수식 (33)의 반복 인 형태로 변형하고

이를 이용하여 신드롬 계산 블록을 구 할 수 있다.

(33)

16개의 신드롬 값은 수신된 다항식 에 입되는 입력 의 차수만 다르

기 때문에 신드롬 값을 구하는 그림 1(a)의 신드롬 셀 블록은 같은 구조가 된

다. 먼 수신된 다항식 의 최고차항의 계수 는 지스터 (1)과 지스

터 (2)의 값에 계없이 지스터에 장이 되어야 하므로 멀티 서 (3)의 셀

트(Select) 신호 은 1이 되고 지스터 (1)에는 가 장이 된다. 이후

부터 까지의 계수 값은 클럭 사이클 마다 차례로 신드롬 블록의 입력이

되고 지스터 (1)에 장된 값에 를 곱한 것과 입력 계수를 더하고 다시

지스터 (1)에 장하는 반복 인 연산이 수행된다. 이 때 신호는 0이 되어

야 된 값이 지스터 (1)에 장이 된다. 255 클럭 동안 연산을 수행하면

16개의 신드롬 셀의 지스터 (1)에는 가 장이 되고 멀티 서 (4)의 셀

트 신호 에 의해서 지스터 (2)로 보내진다. 블록의 첫 데이터가 입력으로

들어오는 시기와 255클럭 동안의 연산으로 구해진 가 지스터 (2)로 달되

는 시기가 같기 때문에 멀티 서 (3)과 멀티 서 (4)는 같은 셀 트 신호를

사용한다. 신드롬 계산 블록은 신드롬 다항식의 최고차항을 계수부터 순차 으

로 출력으로 내보내기 때문에 16개의 신드롬 셀은 그림 1(b)와 같이 연결된다.

신드롬 셀의 지스터 (2)는 쉬 트 지스터의 역할을 하며 멀티 서 (5)의

셀 트 신호 에 의해서 쉬 트를 할지 재 값을 유지할지를 결정한다.

신호가 1이 되면 신드롬 다항식이 신드롬 계산 블록의 출력으로 나오게 된다.

Page 22: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 12 -

(a)

(b)

그림 1. (a) 신드롬 셀, (b) 신드롬 다항식을 구하는 신드롬 계산 블록.

Page 23: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 13 -

3.2. Chien Search 블록, Forney 알고리즘 블록 오류 정정 블록

수신된 다항식의 계수 값이 부터 입력이 된 것과 마찬가지로 오류가 정

정된 후의 오류 정정된 다항식 도 높은 차수의 계수부터 출력되어야 한다.

에 해당하는 치는 로 표 되었고 오류 치 다항식은 오류 치의 역

수를 근으로 가지기 때문에 에 오류가 발생했는지 여부를 확인하기 해 오

류 치 다항식의 근으로 을 입하여야 한다. 그러므로 오류 치 다항식에

는 부터 이 차례로 입된다. 오류 치에 해당하는 오류 값을 구하

기 해 수식 (32)에서 보는 바와 같이 오류 추정 다항식 와 오류 치 다

항식의 미분 다항식 ′에도 부터 을 차례로 입하여야 한다. 오

류 치 다항식 와 오류 치 다항식의 미분 다항식 ′는 각각 다음과

같이 표 될 수 있다.

(34)

에서의 연산에서 이므로 오류 치 다항식의 짝수차수의

항은 미분 후 모두 0이 된다. 그러므로 오류 치 다항식의 미분 다항식 ′

를 다시 표 하면 다음과 같다

⋯ (35)

수식 (35)을 이용하여 수식 (34)을 다시 표 하면 다음과 같게 되고 ′는

오류 값을 구할 때도 사용된다.

⋯′

(36)

오류 치 다항식의 근은 부터 까지 클럭 사이클마다 배 커지는 형

태로 입된다. 항을 보면 근이 일 때

가 되고 근이 일 때

가 된다. 즉, 매 클럭 사이클마다

에 이 곱해지는 구조가 된다.

Page 24: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 14 -

그림 2(a)의 기본 셀은 오류 치 다항식의 각 항을 구하는 블록이고 각 항의

차수에 따라 곱해지는 값만 달라진다. 기본 셀을 차수 별로 용하여 수식

(36)을 구 한 것은 그림 2(b)에 나타나 있고 오류 치의 값을 구하는 Chien

Search 블록이다.

Forney 알고리즘 블록은 오류 추정 다항식 를 ′나 는 연산을 수

행하는데 ′는 Chien Search 블록으로부터 입력 받고 를 구하는 블록

은 오류 치 다항식과 마찬가지로 기본 셀을 이용하여 구 할 수 있다.

Forney 알고리즘 블록은 나 기 연산이 포함되어 있지만 ′의 역수를 구하

면 나 기를 곱하기로 구 할 수 있으므로 그림 2(c)와 같이 역수를 구하는

ROM과 곱셈기를 이용하 다. 오류 치 다항식에서 해당 치의 오류가 발생

했는지 아닌지 여부를 그 값이 0인지 아닌지로 단하고 0이면 추정한 오류 값

과 FIFO를 거쳐서 나온 오류가 포함된 심벌을 XOR연산을 통해서 오류를 정정

하고 최종 출력을 얻을 수 있다.

Page 25: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 15 -

(a)

(b)

(c)

그림 2. (a) 기본 셀, (b) Chien Search 블록, (c) Forney 알고리즘 오류

정정 블록.

Page 26: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 16 -

3.3. Key Equation Solver (KES) 블록

신드롬 다항식과 유클리디안 알고리즘을 이용하여 오류 치 다항식과 오류

추정 다항식을 구할 수 있다. KES 블록은 유클리디안 알고리즘, 수정 유클리디

안 알고리즘 는 벌리캄 -마시 알고리즘들을 이용하여 구 할 수 있으며,

division-free 유클리디안 알고리즘과 그리고 고속 유클리디안 구조들이 각각 제

안되었다 [3]-[5]. 유클리디안 알고리즘은 몫 를 계산하기 해 많은 나눗

셈이 필요하므로 나눗셈을 구 하기 해 ROM을 사용하여야 한다.

반면에 수정 유클리디안 알고리즘은 두 다항식의 최고차항의 계수를 교 로

곱함으로써 차수를 여나가는 방식이며 기존의 유클리디안 알고리즘에서 필요

로 한 나눗셈을 제거한 형태이다.

3.3.1. 기존의 수정 유클리디안 알고리즘 블록

수정 유클리디안 알고리즘은 최고차항을 소거하여 반복 으로 차수를 이

는 방식으로 오류 치 오류 값 다항식을 구하기 해 수식 (37)과 같이

기 값을 정한다. 는 앞서 언 한 신드롬 다항식이다.

, , , (37)

(38)

(39)

(40)

(41)

수식 (38)~(41)은 반복 으로 번 수행될 , , , 에 해

Page 27: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 17 -

나타낸 것이다. 와 는 각각 와 의 최고차항의 계수이고 다항식

, , , 의 값은 다항식 , 의 차수에 따라 값이

결정된다. 와 는 각각 다항식 , 의 차수를 나타낸

다. 가 되면 반복 연산을 멈추게 되고 그 때의 와

가 각각 오류 값 다항식과 오류 치 다항식이 된다.

(42)

≥ (43)

그림 3(a)는 기존의 ME 알고리즘 구 한 Processing Element(PE) 블록이며

그림 3(b)와 같이 개의 PE 블록들이 시스톨릭 어 이(Systolic Array) 방식으

로 연결되어 번 째 PE블록의 연산으로 오류 치 다항식과 오류 추정 다항식

을 구할 수 있다. PE의 입력 , , , 는 각 다항식의

최고차항의 계수부터 클럭 사이클마다 차례로 들어가고 각 다항식의 최고차항

의 계수가 PE의 입력으로 동시에 들어갔다면 그 다항식들의 차수는 같다고

단한다. 그러므로 다항식의 차수를 같게 하기 해서 낮은 차수의 다항식에

를 곱하는 것은 높은 차수의 다항식을 지연(delay)시키는 방식으로 구 할 수

있다. 수식 (38)의 를 곱하는 것도 높은 차수의 다항식을 번 반복 으로

지연시켜 구 한 것이다.

수정 유클리디안 알고리즘은 의 수식 (38)~(41)까지 반복 으로 연산을 하

는 것이고 기존의 방식은 수식 (42)의 두 다항식 와 의 차수를

계산하고 을 구하여 수식 (38)~(41)이 바르게 연산될 수 있도록 제어 신호를

만들어 주었다. 제어 신호는 반복 연산의 종료 조건인 에

따른 정지() 신호도 포함하고 있다. 즉, 기존의 ME 알고리즘 블록은 차수

계산에 따라 제어 신호를 생성하고 제어 신호에 따라 연산을 수행하는 것이다.

Page 28: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 18 -

(a)

(b)

그림 3. 차수 연산이 포함된 (a) Processing Element 블록, (b) KES 블록.

Page 29: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 19 -

3.3.2. 제안하는 Pipelined Degree Computationless Modified Euclidean (pDCME)

알고리즘 블록

수식 (38)은 의 값이 정해지면 수식 (44) 는 (45)의 형태가 된다.

(44)

(45)

와 의 값을 서로 바꾸면 과 의 값이 함께 바 기 때문에

수식 (45)은 다시 수식 (44)의 형태로 표 할 수 있다. 같은 방법으로 수식

(39)~(41)을 바꾸면 ME 알고리즘은 다음과 같이 표 될 수 있다.

(46)

(47)

(48)

(49)

(50)

수식 (47)와 (49)에 나타나 있는 는 기존의 PE와 마찬가지로 높은 차수

의 다항식을 번 반복 으로 지연시켜 구 한다. 수식 (46)~(50)를 구 한 PE

블록은 그림 4에 나타나 있다.

수식 (47)~(50)의 , , , 를 구하는 다항식 연산은 그림

5(a)에 나타나있다. 입력단 C에 를 입하고 입력단 D에 를

입하고 첫 번째 클럭 사이클에만 신호가 1이면 지스터 (1)에는 이

장되고 지스터 (2)에는 이 장된다. 에 를 곱한 것과

에 를 곱한 것을 더하여 를 얻을 수 있고 출력단 C를 통해

Page 30: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 20 -

그림 4. 제안하는 pDCME 알고리즘을 이용한 KES 블록.

Page 31: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 21 -

서 출력된다. 같은 방법으로 를 구할 수 있다. 두 다항식의 차수를 같게 하

는 지연 연산은 그림 5(b)과 같은 구조로 구 할 수 있다. 입력단 C와 E에

를 곱할 다항식을 넣고 입력단 D와 F에 지연 시킬 다항식을 넣으면 입력단 C

의 다항식과 1이 곱해지고 입력단 D의 다항식과 0이 곱해지므로 입력단 C이

다항식은 그 로 출력으로 나오지만 입력단 D의 다항식은 1 클럭 사이클만큼

지연되므로 입력단 C의 다항식에 를 곱한 결과를 얻을 수 있다. 같은 방법으

로 입력단 E의 다항식 한 를 곱한 결과를 얻을 수 있다.

(a)

(b)

그림 5. (a) 다항식 연산에 따른 PE의 구조, (b) 지연 연산에 따른 PE의 구조.

Page 32: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 22 -

pDCME 알고리즘 블록은 와 의 차수를 계산하고 비교하는

연산 없이 수정 유클리디안 알고리즘의 연산을 수행할 수 있도록 구 한 것이

다. 하지만 PE 블록에서 필요로 하는 `', `', `' 제어 신호는 다항식

의 차수를 기 으로 생성된다. pDCME 알고리즘은 기 입력이 정해져 있고 입

력 다항식을 알 때 연산 결과의 범 를 어느 정도 유추할 수 있다. 그러므로 수

식 (42)의 직 인 차수 비교 연산 신에 입력 패턴과 그 결과에 따른 상

인 차수 가감을 통해 차수 비교를 할 수 있다. 즉, 차수의 비교 연산 없이 앞서

언 한 세 개의 제어 신호를 생성할 수 있다. 각 PE의 입력은 다음의 네 가지

패턴을 벗어나지 않는다.

≠ ≤≤ (51)

≤≤ ≥≠

(52)

≤ ≥≠

(53)

≤ ≥

≤≤ ≥

(54)

의 차수는 항상 이고 의 차수는 이하이므로 두 입력 다항

식의 차수를 같게 하는 지연 연산을 이기 해 에 를 곱한 다항식이

와 함께 PE1의 입력이 된다. 의 차수가 이하이므로 의

차수는 이하가 된다. 의 차수가 미만일 때 다항식 연산을 하기 에

지연 연산을 수행해야 하므로 PE1의 입력단 C에는 가 들어가고 입력단

D에는 가 들어간다. PE1의 스타트(Start) 신호와 동기하여 들어오는 C와

D입력의 값이 0인지 아닌지를 찰하면 기 입력 다항식과 계하여 두 입력

Page 33: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 23 -

다항식 와 의 차수가 같은지 아닌지 여부를 알 수 있다.

수식 (51)의 패턴은 는 이고 는 이며 은 0이 아니라

고 가정하고 있다. 이 경우 PE1의 스타트 신호와 동기하여 들어온 두 입력 C와

D는 0이 아니므로 와 의 차수를 16( )이라고 단할 수 있고

PE1은 그림 6(a)와 같이 스왑 연산과 다항식 연산이 수행된다. PE1의 D 출력

은 1 클럭만큼 데이터를 지연시키므로 PE1의 D 출력단()의 다항식의 차

수는 15가 되고 PE1이 다항식 연산을 수행하 으므로 C 출력단()의 다항

식의 차수는 15가 된다. PE2에서 와 의 차수가 15로 같으므로 스타

트 신호와 동기하여 들어온 C와 D의 입력 값이 둘 다 0이 아니다. PE2는 두

입력 다항식이 같은 차수이기 때문에 다항식 연산을 수행한다. PE2의 D 출력단

()은 1 클럭만큼 지연되지만 이 경우 의 차수가 감소되지 않고 C 출

력단()에 를 곱하는 효과를 가진다. 따라서 PE2의 C와 D 출력 다항식의

차수는 15가 된다. 입력 패턴에 따라 D 출력단의 지연은 C 출력단에 를 곱하

거나 D출력단을 로 나 는 역할을 한다. PE3의 두 입력 다항식의 차수는 15

로 같지만 에 가 곱해진 것을 알고 있기 때문에 실제 의 차수가

보다 작다. 그러므로 스왑연산이 PE3의 다항식 연산 에 이루어진다.

수식 (52)의 경우에 스타트 신호와 동기하여 들어오는 C와 D의 입력 값

C의 값이 0이므로 의 차수가 15이하임을 알게 된다. 그러므로 PE1은 지

연 연산을 수행하여 다항식 연산이 가능한 형태로 만들어야한다. 그림 6(b)와

같이 PE1은 지연 연산을 수행하기 해 D 출력단을 1 클럭만큼 지연시키고 이

것은 에 를 곱하는 것과 같다. PE1의 C 출력단의 다항식의 차수는 16

이하이고 PE2의 스타트 신호와 동기하여 C와 D의 입력 다항식이 모두 0이 아

니라면 C 입력 다항식의 차수가 16이 되고 다항식 연산을 해 스왑 연산을 먼

수행한다.

수식 (53)의 경우에는 PE1은 수식 (51)와 같이 동작하지만 C 출력 다항식의

차수가 14이하가 되기 때문에 PE2가 그림 6(b) PE1과 같은 연산을 수행하여

그림 6(c)와 같이 된다.

수식 (54)에서 과 의 값이 1인 경우의 PE의 연산이 그림 6(d)에 나타나 있

Page 34: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 24 -

다. 의 차수가 16이 아니므로 PE1은 수식 (52)의 PE1과 같은 연산을 수

행하지만 PE2의 출력 다항식의 차수가 같지 않으므로 PE3은 지연 연산을 수행

하여 두 다항식의 차수를 같게 한다.

의 네 가지 패턴에 따른 PE의 연산은 스타트 신호와 동기하여 들어오는 C

와 D의 입력 값에 의존하여 선택 으로 수행하 다. 그림 7(a)는 C와 D의 입력

값이 동시에 들어오는지 아닌지를 나타내는 SI (Simultaneously Input) 신호를

입력으로 하고 세 가지의 PE 연산을 결정하는 두 개의 제어 신호 Sw(Swap)과

Sht(Shift)를 출력으로 하는 FSM(Finite State Machine)을 나타낸다. S0 상태

(State)는 기 상태이며 S16 상태는 의 최고차항의 계수부터 연속 으로 8

개의 계수가 0일 때 도달하는 상태이므로 채 에서 오류가 발생하지 않았음을

나타내는 상태이다.

오류가 개 발생한 경우 개의 PE 블록을 거친 후에 오류 치 다항식과

오류 값 다항식을 얻을 수 있다. 하지만 발생한 오류의 개수가 개이면

개의 PE 블록의 연산 후에 오류 치 다항식과 오류 값 다항식을 구하게 되고

남은 PE 블록은 ME 알고리즘 연산을 단하고 오류 치 다항식과 오류 값

다항식을 PE16의 출력으로 나오도록 쉬 트 연산을 수행한다. 앞서 언 한 바

와 같이 ME 알고리즘의 연산 수행 에 의 차수가 이하이거나 의

차수보다 작을 때 연산의 종료 조건은 만족시킨다. 즉, PE의 C보다 E의 입력이

먼 0이 아닌 값이 들어오는지 여부를 찰하여 종료 조건을 만족하는지 아닌

지를 신호를 통해 알 수 있다. 그림 7(b)는 신호에 한 FSM이며

신호에 의해 상태가 기화된다. 기의 상태는 S0 상태이고 ME 알

고리즘의 연산 종료 조건이 만족되면 S2 상태가 된다. 종료 조건이 만족되면

그림 4의 stop 신호가 1이 되고 PE의 입력은 각각 4 클럭만큼의 지연 후 PE의

출력으로 나온다. 하지만 종료 조건이 PE16 이 에 만족된 경우 C와 E의 입력

은 2개의 PE 동안 8 클럭이 아닌 7 클럭만큼 지연되어야 PE16에서의 결과 값

이 Chien Search 블록과 Forney 알고리즘 블록으로 달되기 때문에, 그림 4에

서 짝수 PE의 지스터 (2)는 제거된다. 기존의 KES 블록과 제안하는 pDCME

알고리즘을 비교한 것은 표 1에 나타나 있다. 기존의 블록과 클럭 주기는 비슷

하지만 면 이 약 17% 어든 것을 볼 수 있다.

Page 35: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 25 -

(a)

(b)

(c)

(d)

그림 6. (a) 수식 (51), (b) 수식 (52), (c) 수식 (53), (d) 수식 (54)에 한 서로

다른 PE의 연산.

(a)

(b)

그림 7. (a) 제어 신호 생성에 한, (b) stop 신호 생성에 한 Finite State

Machine (FSM).

Page 36: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 26 -

표 1. KES 블록 비교

Design MEA [5] Proposed pDCME

(5 stage)Multipliers 8t 8t

Adders 8t 4t

D-FFs 78t+4 54t

Mux 40t+2 20t

# of Gates 55,500 46,200

Clock Rat (MHz) 625 660

Critical Path Tff+3Tor2+Txnor2+Tmux2 Tff+Tinv+Tand2+3Tmux2

Page 37: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 27 -

4. 정정 불가능한 블록의 감지

RS(255,239) 복호기는 8개의 심벌 오류를 정정할 수 있다. 즉, 9개 이상의 오

류가 발생한 경우 복호기는 코드워드의 오류를 정정할 수 없을 뿐만 아니라 정

정 과정에서 오류가 추가되기도 한다. 그러므로 오류 정정이 불가능할 경우 이

를 알려주는 신호가 필요하다. 블록의 오류의 정정 가능 여부를 확인하기 해

두 가지 방법을 이용할 수 있다. 하나는 신드롬 계산 블록을 복호기의 출력단에

추가하여 신드롬 값이 0인지 아닌지를 확인하는 것이다. 다른 하나는 KES 블록

의 출력인 오류 치 다항식을 찰하는 것이다. 오류가 9개 이상일 때와 8개

일 때의 KES 블록의 출력으로 나오는 오류 치 다항식의 차수는 둘 다 8이므

로 실제 오류가 8개가 발생했는지 아닌지를 확인하기 해 실제 근을 입한다.

오류가 8개인 경우 그 근이 8개가 나오고 그 지 않은 경우 오류 치 다항식

의 근이 8개 미만이거나 과하여 나오게 된다. 그러므로 오류 치 다항식에

근을 입함으로써 정정 가능한 근의 개수와 정정 가능 여부를 알 수 있게 된

다. 자의 방법은 신드롬 계산 블록을 추가하여야 하므로 면 이 증가하는 단

이 있고 정정 가능한 블록일 때 정정한 오류의 수를 나타내는 블록을 추가하

여야 한다. 후자의 방법은 오류 치 다항식의 차수를 확인하고 오류 치 다항

식의 근의 개수를 카운트(count)하면 되므로 후자의 방법이 면 인 측면에서

효율을 가진다.

Page 38: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 28 -

5. 40Gb/s 직렬 리드-솔로몬 FEC 구조

5.1 기존의 40Gb/s 리드-솔로몬 FEC구조

8 바이트 오류정정 (error correction) RS(255,239) 부호는 해 섬유 시스

템을 해 국제통신연합(ITU)에 의해 채택되었다 [1]. 여기서 RS 부호는

의 BER에서 략 5.5dB 네트 코딩게인(net coding gain)을 제공한다. 이는

의 입력 BER에 해 의 출력 BER를 가지는 것을 의미한다. 특히 RS

부호는 연집 오류(burst errors)를 수정할 수 있으며, 하나의 RS(255, 239) 부호

는 최 64비트의 오류를 정정할 수 있다. 이것은 16개의 채 이 인터리빙

(Interleaving)되는 RS 부호에서는 더 긴 길이의 연집 오류를 정정할 수 있다는

것을 보여 다. 16개의 채 에서 각각의 채 이 코드워드를 생성하고 각 코드워

드의 심벌이 순차 으로 한 개씩 송되면 16 채 RS 부호는 최 1024비트의

오류를 정정할 수 있게 된다. ITU-T G.975에서 이와 같이 1024비트의 오류를

정정할 수 있는 16 채 RS 부호를 권장하고 있다. 1채 RS 복호기는 신드롬

계산 블록, KES 블록, Chien Search 블록과 Forney 알고리즘 블록이 연결되어

있고 16채 RS 복호기는 1채 RS 복호기 16개를 병렬로 연결하는 형태가 된

다. 하지만 RS 복호기에서 KES 블록이 차지하는 면 은 체 RS 복호기의 약

80%이므로 기존의 40Gb/s RS기반 FEC구조는 4개의 신드롬 계산 블록과 1

개의 KES 블록을 연결하고 이를 다시 4개의 Chien Search 블록, Forney 알고

리즘 블록과 연결하는 형태로 구 되었다. 그림 8은 기존의 40Gb/s RS기반

FEC구조를 나타낸다.

5.2. 제안하는 40Gb/s 리드-솔로몬 FEC 구조

제안하는 40Gb/s RS기반 FEC 구조 한 기존의 것과 마찬가지로 16채

로 구성되어 있지만 각 채 은 1 클럭 사이클에 1개의 심벌을 처리하는 직렬

구조로 되어있다. 제안하는 FEC 구조에 사용된 KES 블록은 앞서 언 한

pDCME 알고리즘 블록으로 구성되며 16개의 신드롬 값을 순차 으로 받아서

Page 39: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 29 -

그림 8. 기존의 40Gb/s RS기반 FEC 구조.

처리하는 시스톨릭 어 이 형태로 구성되어 있다. 즉, 16개의 신드롬 계산 값이

순차 으로 PE1의 입력이 되고 이 값이 PE2와 PE3로 거쳐 가는 구조이다. 이

구조의 장 은 출력이 다시 입력이 되는 궤한(Recursive) 구조가 아니기 때문에

간에 립 롭을 추가하여 쉽게 클럭 주 수를 높일 수 있다. 그러나 KES 블

록의 깊이가 16개의 신드롬 값보다 크기 때문에 KES 블록을 구성하는 16개의

PE 동시에 입력에 한 처리를 하는 PE는 4개 정도이고 나머지는 아무런

동작을 하지 않게 된다. 수신된 다항식 의 계수 값은 차례로 신드롬 계산

블록의 입력이 되고 RS(255,239)에서의 신드롬 계산 블록은 255 클럭동안 255

개의 계수값을 연산하여 출력으로 16개의 신드롬 다항식의 값을 차례로 내보낸

다. 즉, KES 블록의 PE들은 16 클럭의 연산을 해 255 클럭을 기다리는 형태

가 된다. 기존의 구조와 마찬가지로 이 라인 형태의 KES 블록은 서로 다른

입력들을 처리하는 것이 가능하고 하나의 PE 블록에서 서로 다른 입력이 2 클

럭 이상의 간격을 가지면 데이터의 충돌 없이 연산을 수행할 수 있다. 즉, 본

논문의 KES 블록은 18 클럭 사이클마다 새로운 신드롬 계산 블록의 입력을 처

리하며, 하나의 KES 블록이 여러 개의 신드롬 계산 블록의 출력을 처리하면

Page 40: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 30 -

그림 9. 8 채 직렬 RS기반 FEC 구조.

PE가 연산을 수행하기 해 입력을 기다리는 기 시간을 일 수 있다. KES

블록은 18 클럭 사이클에 하나의 신드롬 계산 블록을 처리하므로 신드롬 계산

블록이 새 출력 값을 생성하기까지 14개의 신드롬 계산 블록의 출력을 처리할

수 있다. 본 논문에서 그림 9는 한 개의 KES 블록이 8개의 신드롬 계산 블록의

출력을 처리하는 형태를 가진 8채 RS 복호기를 나타낸 것이다. 그림 9와 같

이 8개의 신드롬 계산 블록이 한 개의 KES 블록을 공유함으로써, 기존의 4개의

신드롬 계산 블록이 1개의 KES 블록과 연결되는 구조와 비교하여 17%의 지연

성이 늘어나는데 반해 30%의 면 을 일 수 있다. 그림 10에 제안하는 8채

FEC구조의 타이 도가 나타나 있다. 각각의 채 에서 신드롬 계산 블록은 동시

에 연산이 이루어지고 그 결과 값은 버퍼에 장되었다가 차례로 KES 블록의

입력으로 들어간다. 각 채 의 신드롬 값은 2 클럭 사이클 이상의 간격을 가지

면 서로 독립 으로 KES 블록에서 연산되므로 여러 채 의 신드롬 값이 동시

에 KES 블록에서 처리되며 먼 계산된 KES 블록의 결과는 버퍼에 다시 장

이 되고 8번 째 채 의 KES 블록의 결과가 출력이 되면 동시에 Chien Search

블록과 Forney 알고리즘 블록에서 연산이 되고 오류가 정정된 코드워드가 동시

에 채 로 나오게 된다. 그림 11은 제안한 8채 RS기반 FEC구조를 0.18-㎛

CMOS 기술을 이용하여 합성(Synthesize)하고 구 한 FEC칩의 다이 포토그래

이다. 3.3V의 공 압을 가지고 칩 코어 사이즈는 1.4⨯1.4 ㎛2이다. 그림 12

는 8채 FEC 구조 두 개를 병렬로 연결한 16채 FEC 구조를 나타낸다.

Page 41: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 31 -

그림 10. 8채 RS기반 FEC 구조의 타이 도.

그림 11. 8채 RS기반 FEC칩의 다이 포토그래 .

Page 42: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 32 -

그림 12. 16채 직렬 RS기반 FEC 구조.

Page 43: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 33 -

6. 40Gb/s 병렬 리드-솔로몬 FEC 구조

앞서 살펴본 바와 같이 직렬 RS기반 FEC 구조는 하나의 신드롬 계산 블록

이 매 클럭 사이클마다 하나의 심벌(1바이트)를 처리하는 구조이고 255 클럭이

지나면 16개의 신드롬 값을 얻게 된다. 반면에 병렬 구조는 하나의 신드롬 계산

블록이 매 클럭 사이클마다 처리하는 심벌의 수가 여러 개인 형태이다. 직렬 구

조에서 크리티컬 패스는 KES 블록에 존재하고 병렬 구조로 바 더라도 KES

블록은 변화가 없으므로 병렬 FEC 구조도 KES 블록이 크리티컬 패스를 가지

게 된다. N-병렬 FEC 구조는 직렬 FEC구조와 클럭 주기가 같다면 클럭 사이

클마다 처리하는 심벌의 수가 N배가 되므로 체 FEC의 처리율을 비약 으로

증가 시킬 수 있다. 시스템의 요구사항에 따라 병렬 FEC 구조 한 선택 으로

사용할 수 있다.

제안한 8개의 신드롬 계산 블록과 1개의 KES 블록을 연결하는 직렬 FEC

구조는 KES 블록이 신드롬 값을 처리하고 새로운 신드롬 값을 처리하기 해

최소 144 클럭 사이클의 기 시간이 필요하다. 왜냐하면 하나의 신드롬 계산

블록의 결과는 16개의 심벌이고 서로 다른 채 의 신드롬 값은 최소 2 클럭 사

이클의 거리를 가져야 하기 때문이다. 그러므로 병렬 FEC 구조는 8개의 신드롬

계산 블록과 1개의 KES 블록을 연결하는 구조를 사용할 수 없다. 데이터 처리

율이 늘어났기 때문에 신드롬 값을 구하는데 걸리는 클럭 사이클이 어들기

때문이다. 2-병렬 FEC 구조에서 신드롬 값을 구하는데 128 클럭이 소요되고

3-병렬 FEC 구조에서 신드롬 값을 구하는데 85 클럭이 소요된다. 2-병렬과 3-

병렬 FEC 구조에서 pDCME 방식의 KES 블록과 연결되는 신드롬 계산 블록은

각각 최 7개와 4개가 되므로 따라서 4-병렬 이상의 FEC 구조는 여러 개의

신드롬 계산 블록과 1개의 KES 블록을 연결하는 것이 힘들게 된다. 즉, 2-병렬

FEC 구조와 3-병렬 FEC 구조는 4개의 신드롬 계산 블록과 1개의 KES 블록이

연결된 구조를 가진다. 그림 13은 3-병렬 FEC 구조를 나타낸다.

Page 44: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 34 -

그림 13. 4 채 3-병렬 RS기반 FEC 구조.

6.1. 40Gb/s 3-병렬 FEC 구조

RS(255,239)의 블록 단 가 255이고 255는 3으로 나 어지므로 3-병렬 구조

는 역폭의 손실 없이 구 할 수 있다. 아래의 그림 14은 3-병렬 신드롬 계산

블록이다. , , 를 1 클럭 사이클에 처리하고 , , 를 다음 클

럭 사이클에 처리하기 때문에 85 클럭 사이클에 하나의 블록(255개의 심벌)에

한 신드롬 다항식을 출력으로 내보낼 수 있다. 마찬가지로 Chien Search 블

록과 Forney 알고리즘 블록도 1 클럭 사이클에 근의 치 , , 에 해 연

산한다. 그림 14은 3-병렬 FEC 구조에서의 신드롬 계산 블록을 나타내고 그림

15는 3-병렬 Chien Search 블록과 Forney 알고리즘 블록을 나타낸다.

(a)

Page 45: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 35 -

(b)

그림 14. (a) 신드롬 셀, (b) 신드롬 계산 블록.

(a) (b)

(c)

그림 15. (a) 오류 정정 셀, (b) Chien Search 블록, (c) Forney 알고리즘 블록

오류 정정 블록.

Page 46: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 36 -

(a)

(b)

그림 16. 더미 제로 심벌이 포함된 2-병렬 (a) 신드롬 셀, (b)오류 정정 셀.

6.2. 40Gb/s 2-병렬 FEC 구조

6.2.1 기존의 2-병렬 FEC 구조

기존의 2-병렬 FEC 구조는 255 블록 단 를 처리하기 해 더미 제로

(dummy zero) 심벌을 추가하 다. 255가 2로 나 어지지 않기 때문이다. 그림

16은 더미 제로 심벌이 추가된 신드롬 계산 블록과 오류 정정 셀을 나타낸다.

Chien Search 블록에서는 오류 치 다항식의 근으로 ~을 차례로 입하

는 것 이외에 임의의 심벌을 근으로 입하는데 이 값은 출력에서 무시된다.

Page 47: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 37 -

6.2.2. 제안하는 2-병렬 FEC 구조

제안하는 2-병렬 FEC 구조는 표 2와 같은 입력 패턴을 처리한다. 더미 제로

심불을 없애기 해 128 클럭 사이클에 두 개의 서로 다른 블록의 심벌이 동시

에 신드롬 계산 블록으로 들어가고 2개의 블록을 255 클럭 사이클에 처리하게

된다. 그림 17은 제안하는 2-병렬 신드롬 계산 블록이고 그림 18은 신드롬 계산

블록의 멀티 서의 제어 신호를 나타낸다.

표 2. 더미없는 신드롬 계산 블록의 입력 패턴.

clock 1st 2nd ... 128th 129th ... 255th 1st

inputA r254 r252 ... r0 r253 ... r1 r254

inputB r253 r251 ... r254 r252 ... r0 r253

(a)

(b)

그림 17. (a) 신드롬 셀, (b) 신드롬 계산 블록.

Page 48: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 38 -

그림 18. 제안하는 2-병렬 신드롬 셀의 멀티 서 신호의 타이 차트.

첫 번째 클럭 사이클에 멀티 서 (2)의 셀 트 신호가 1이 되면서 동시에

들어오는 두 입력 는 지스터 (5)에 장이 되고 은 지스터 (4)에

장이 된다. 두 번째 클럭 사이클에 지스터 (4)에 장된 과 는 멀티

서 (1)을 지나 와 함께

의 형태로 더해진다. 연산을

반복하면 128번째 클럭 사이클에 첫 블록에 한 신드롬 값을 얻게 되고 이 때

새로운 록의 는 지스터 (4)에 장이 된다. 129번째 클럭 사이클에 멀티

서 (3)의 제어신호가 1이 되면서 지스터 (4)에 장된 는 과 곱해지

고 멀티 서 (1)의 제어신호가 1이기 때문에 는

와 더해

진다. 연산을 반복하면 255번째 클럭 사이클에 두 번째 블록에 한 신드롬 값

을 얻게 된다. 신드롬 값을 얻을 때마다 멀티 서 (7)의 제어 신호가 1이 되

고 신드롬 값은 지스터 (8)에 장이 되며 멀티 서 (6)의 제어신호가 1이

되면 신드롬 계산 블록의 출력으로 신드롬 값이 차례로 나가게 된다.

그림 19는 제안하는 2-병렬 Chien Search 블록, Forney 알고리즘 블록과 오

류 정정 블록이다. 그림 20은 Chien Search 블록, Forney 알고리즘 블록과 오류

정정 블록에 들어가는 오류정정 셀의 멀티 서 제어 신호를 나타낸 것이다.

Page 49: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 39 -

(a)

(b)

(c)

그림 19. (a) 오류 정정 셀, (b) Chien Search 블록, (c) Forney 알고리즘 블록

오류 정정 블록.

Page 50: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 40 -

그림 20. 제안하는 2-병렬 오류 정정 셀의 멀티 서 신호의 타이 차트.

제안한 2-병렬 신드롬 계산 블록은 더미 제로 심벌 없이 연산을 수행하기

해 더미 제로 심벌을 포함하는 신드롬 계산 블록에 비해 하드웨어 복잡도가

높아진 반면 제안한 2-병렬 오류 정정 셀은 더미 제로 심벌을 포함하는 오류

정정 셀에 비해 단지 멀티 서 두 개가 추가되었다. 첫 번째 클럭 사이클에

지스터에 와 에 과 를 근으로 입하여 얻은 값이 장이 된다.

128번째 클럭 사이클에 과 을 근으로 입하여 얻은 값이 지스터에

장이 되는데 멀티 서 (3)의 제어 신호가 1이 되므로 새로 얻은 와

에 , 즉 을 근으로 입하여 새로운 블록의 첫 번째 심벌에 한 오

류 값을 얻게 된다. 129번째 클럭 사이클에 멀티 서 (2)의 제어 신호가 1이

므로 129번째 클럭 사이클부터 255번째 클럭 사이클까지 새로운 블록에 한

오류 값을 얻게 된다.

Page 51: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 41 -

7. 결과 비교

본 논문에서 제안된 16채 40Gb/s RS 복호기와 RS기반 FEC 구조들은

Verilog-HDL로 설계하 고 Mentor Model Sim으로 검증하 다. Verilog-HDL

로 설계한 RS 복호기의 결과는 C언어로 설계한 모델과 정확히 일치하 다. 이

런 검증 단계 후에는 SYNOPSYS Design Compiler(DC)를 이용하여 한

time area constraint를 이용하여 합성(synthesize)하고 구 하 다. 표 3은

몇 종류의 40Gb/s FEC 구조의 게이트 수, clock rate, latency, throughput들

을 비교한 결과들을 보여주고 있다. RS 복호기에서 FIFO 메모리를 제외한 하

드웨어 복잡도를 비교한 결과 본 논문에서 제안한 직렬 FEC 구조는 병렬 복호

기보다 낮은 하드웨어 복잡도를 가지는 것을 볼 수 있다. 본 논문에서 제안된

RS 복호기들은 4 stage 이 라인 pDCME 알고리즘 블록을 사용하 고 합성

(Synthesis)후에 Pre-Simulation을 수행하면 400MHz의 클럭 속도를 얻을 수 있

다. 3-병렬 구조의 Area efficient ME구조와 입력을 처리하는 방식이 다르기 때

문에 직렬 구조의 신드롬 계산 블록이 3-병렬 구조보다 면 을 좀 더 많이 차

지하지만 3-병렬 구조도 pDCME 알고리즘 블록을 채택하면 3-병렬 구조의 신

드롬 계산 블록이 직렬 구조보다 높은 하드웨어 복잡도를 가지게 된다. 즉

40Gb/s FEC 구조에서 제안한 직렬 FEC 구조는 쉽게 40Gb/s의 처리율을

가질 수 있고 가장 낮은 하드웨어 복잡도를 가진다. 반면에 3-병렬 구조가

pDCME 알고리즘 블록을 채택하면 가장 높은 처리율을 가지게 된다. 타겟보드

(Target Board)로 FPGA를 사용하는 경우 Xilinx Virtex4 FPGA를 기 으로

pDCME 알고리즘 블록이 300MHz에 못 미치는 클럭 속도를 가지게 되므로 병

렬 구조의 FEC가 40Gb/s FEC로 사용된다. 제안한 2-병렬 구조는 더미 제

로 심벌을 처리하기 해 하드웨어 복잡도가 증가하여 3-병렬 구조에 비해 하

드웨어 복잡도가 높아지지만 시스템이 요구하는 입력이 2-병렬 구조일 때 더미

심벌의 추가 없이 사용될 수 있다.

Page 52: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 42 -

표 3. 16채 RS기반 FEC의 구 결과

Design 제안하는 직렬

FEC 구조

제안하는 2-병렬

FEC 구조

3-병렬

FEC 구조 [8]

Syndrome 48,800 100,800 40,000

KES 80,200

(pDCME 4stage)

156,000

(pDCME 4stage)

84,000

Chien+EC 100,700 178,000 240,000

Total # of

Gates

229,700 434,800 364,000

Clock Rate

(MHz)

400 400 180 112

Latency

(Clocks)

473 260 260 168

Throughput

(Gb/s)

51 102 46 43

Technology

0.18 ㎛

CMOS

0.18 ㎛

CMOS

Xilinx

Virtex4

FPGA

0.13 ㎛

CMOS

Page 53: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 43 -

8. 기능 검증

8.1. 시험 환경

구조의 기능 검증을 하여 필요한 시험 환경인 CAD 툴 시험장비 등은

다음과 같다.

- RTL code simulation: Mentor Graphics ModelSim simulator

- Synthesys, Place & Route: Xilinx ISE 9.2

- FPGA 보드테스트: ChipScope Pro

- Xilinx Virtex-4 LX100 FPGA evaluation board

그림 21은 Xilinx Virtex-4 LX100 FPGA evaluation board를 이용한 테스트환

경을 보여 다.

그림 21. FPGA 보드 테스트 환경.

Page 54: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 44 -

8.2. 시험 차

그림 22 와 같이 RS 부호기와 복호기를 C-language로 구 하고 각각의 입

출력을 텍스트 일로 장한다. 그 후 Verilog-HDL로 RS 부호기와 복호기를

설계하고 ModelSim 시뮬 이터를 통해 출력을 확인하고 그 출력을 텍스트

일로 장한다. C-language로 얻은 텍스트 일과 ModelSim을 통해 얻은 텍스

트 일을 비교하여 동일한지 검증하고, FPGA 구 을 해 Xilinx ISE9.2 툴을

이용하여 그림 23과 같이 Verilog 일을 합성하고 비트 일을 만든다.

RS Encoder

Channel Modeling

RS Decoder

RS Decoder

C language

Verilog

ComparisonMessage

C language

RS Encoder

Verilog

Comparison

그림 22. 시험 차.

그림 23. FPGA design flow.

Page 55: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 45 -

8.3. 검증

8.3.1. ModelSim을 이용한 기능 검증

16채 RS 복호기는 8채 복호기 2개를 병렬로 배열한 것이므로 그림 24는

8 채 에 한 시뮬 이션 형을 보여 다. 그림 24는 직렬 RS 복호기 입출력

의 일부분을 나타낸 형이다. 사각형의 값이 오류를 가진 값이고 아래의 형

에서 오류가 정정되었다.

그림 24. ModelSim을 이용한 8채 직렬 RS 복호기의 시뮬 이션도.

Page 56: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 46 -

8.3.2. ChipScope Pro를 이용한 기능 검증

FEC구조들을 Xilinx Virtex4 LX100 테스트보드에 구 한 후 그림 24의 시

뮬 이션의 입력 다항식을 같이 용하여 ChipScope Pro.를 이용하여 검증하

다. 그림 25에서 RCode는 복호기로 수신된 다항식을 의미하며 CCode는 오류

정정된 다항식을 나타낸다.

그림 25. ChipScope Pro를 이용한 8-채 직렬 RS 복호기의 시뮬 이션도.

Page 57: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 47 -

9. 결론

본 논문은 새로운 16채 RS기반의 FEC 구조들을 제안하 다. 차수 연산

블록을 제거한 pDCME 알고리즘 블록은 기존의 KES 블록에 비해 약 17%정도

면 을 다. 신드롬 계산 블록, KES 블록, Chien Search 오류 정정 블록

에서 KES 블록이 차지하는 면 이 80%정도이므로 다 채 RS 복호기는 여러

개의 신드롬 계산 블록이 1 개의 KES 블록을 공유하는 구조를 가졌다. 16 채

FEC 구조로 40Gb/s 이상의 처리율을 가지기 해 각 채 은 312MHz이상의

클럭 주 수를 가져야 한다. 즉 체 시스템의 크리티컬 패스를 포함하고 있는

KES 블록이 312MHz 이상에서 동작하여야 한다. 기존의 4개의 신드롬이 1개의

KES를 공유하는 FEC 구조[5]는 KES 블록를 5 단계로 이 라인하여

625MHz의 클럭 주 수를 만족하 다. 그러나 KES 블록의 하드웨어 복잡도는

상 으로 커지게 되었다. 신드롬 계산 블록이 한번에 3개의 심벌을 처리하는

16채 , 3-병렬 구조는 KES 블록의 클럭 주 수 112MHz만 만족하면 40Gb/s

이상을 처리율을 가진다 [8]. 그러나 이 구조는 신드롬 계산 블록과 오류 정정

블록의 하드웨어 복잡도가 커진다. 직렬 구조를 유지함으로써 신드롬 계산 블록

과 오류 정정 블록의 하드웨어 복잡도는 유지시키고 pDCME 알고리즘을 이용

한 면 KES 블록, 8개 신드롬 계산 블록과 1개의 KES 블록이 공유하는 제

안된 구조는 앞서 언 한 두 구조와 비교하여 면 과 데이터처리율의 종합 인

측면에서 좋은 성능을 보이고 있다. 한 제한한 2-병렬 FEC 구조는 하드웨어

복잡도는 증가하지만 더미 제로 심벌을 제거함으로써 역폭의 손실 없이 2-병

렬 FEC를 이용할 수 있게 된다. 제안된 RS 기반 FEC 구조들은 향후 고속

통신뿐만 아니라 무선 통신장비를 한 차세 FEC 장치 등에 바로 용될

수 있다.

Page 58: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 48 -

10. 참고문헌

[1] Forward Error Correction for Submarine System

Telecommunication Standardization Section, International Telecom. Union,

ITU-T Recommendation G.975, Oct. 2000.

[2] S. B. Wicker, Error Control Systems for Digital Communication

and Storage, Prentice Hall, 1995.

[3] H. M. Shao, T. K. Truong, L. J. Deutsch, J. H. Yuen and I. S. Reed,

A VLSI Design of Pipeline Reed-Solomon Decoder, IEEE Trans. on

Computers, Vol. C-34, No.5, pp.393-403, May.1985.

[4] W. Wilhelm, A New Scalable VLSI Architecture for Reed-Solomon

Decoders IEEE Jour. of Solid-state Circuits, Vol34, No.3, Mar. 1999.

[5] H. Lee, High-Speed VLSI Architecture for Parallel Reed-Solomon

Decoder, IEEE Trans. on VLSI Systems, Vol. 11, No. 2, pp. 288-294,

April. 2003.

[6] H. Lee, An Area-Efficient Euclidean Algorithm Block for

Reed-Solomon Decoder, IEEE computer society Annual Symposium on

VLSI, pp. 209-210, Feb. 2003.

[7] D. V. Sarwate and N. R. Shanbhag, High-Speed Architecture for

Reed-Solomon Decoders, IEEE Trans. on VLSI Systems, Vol 9, No.5,

pp.641-655, Oct. 2001.

[8] L. Song, M-L. Yu and M. S. Shaffer, 10 and 40-Gb/s Forward

Error Correction Devices for Optical Communications, IEEE Journal of

Solid-State Circuits, Vol. 37, No. 11, pp. 1565-1573, Nov. 2002.

[9] 이만 , 부호 이론, 희 당, pp. 152-154, 1984.

[10] Bernard Sklar, 디지털 통신공학: 기본과 응용, 박상규외 역, 교보문고, pp.

516-544, 2003.

[11] T. K. Matsushima, T. Matsushima, S.Hirasawa, “Parallel Encoder and

Decoder Architecture for Cyclic Codes,” IEICE Trans. on Fundamentals of

Page 59: 40Gb/sForwardErrorCorrectionArchitecturefor ... · 성통신등다양한응용분야에널리쓰이는ForwardErrorCorrection(FEC) 기술이다.8바이트오류정정(errorcorrection)RS(255,239)코드는해저광섬유

- 49 -

Electronics, Communications and Computer Sciences, Vol.E79-A, no.9

pp.1313-1323, Sept. 1996.

[12] S. Lee, Hanho Lee, J. Shin, J-S. Ko, "A High-Speed Pipelined

Degree-Computationless Modified Euclidean Algorithm Architecture for

Reed-Solomon Decoders," IEEE International Symposium on Circuits and

Systems (ISCAS 2007), pp. 901-904, May 2007.