고속 시리얼 기술

개요

고속 시리얼은 장비의 설치 공간을 줄이고 데이터 통신 속도를 가속화하는 기술로 점차 널리 보급되고 있습니다. 본 문서에서는 고속 시리얼 통신 링크의 기본 개념을 소개합니다.

 

내용

고속 시리얼의 필요성

전력 소비량과 설치 공간은 적으면서 성능은 더욱 뛰어난 폼팩터에 대한 수요는 지속적으로 높아지고 있습니다. 빅 데이터의 경우, 2000년대 초반부터 디지털 통신 버스가 병렬 버스에서 시리얼 버스로 이행하는 극적인 변화를 겪었습니다.  병렬 버스에서 고속 시리얼 버스로 이행하면서, 보다 적은 공간을 차지하고, 데이터 스루풋이 많으며, 전력도 적게 소비하는 장비가 개발되었고, 이를 통해 SATA, USB 또는 PCI Express와 같이 오늘날 소비자가 사용하는 수많은 기술을 실현할 수 있었습니다.

 

그림 1. 2000년 초반부터, 일반 병렬 통신 표준이 
시리얼 표준으로 이행.

장점

병렬 버스의 클럭 속도는 약 1 GHz~2 GHz로 선에서 물리적 한계에 부닺힙니다.  개별 클럭과 데이터 라인에서 나타나는 스큐로 인해 속도가 더 빨라지면 비트 에러가 발생하기 때문입니다.  고속 시리얼 버스는 하나의 차동 신호에 데이터와 클럭 정보를 모두 포함하는 엔코딩된 데이터를 전송하므로, 병렬 버스에서 나타나는 속도의 한계가 고속 시리얼에는 존재하지 않습니다.  오늘날에는 10Gbps 속도로 실행되는 데이터 레인의 고속 시리얼 링크를 흔히 볼 수 있습니다.  또한 시리얼 링크의 다중 레인을 유기적으로 결합하여 데이터 스루풋이 더욱 높은 통신 링크를 구축할 수도 있습니다.

데이터 전송을 직렬화하고 더 빠른 속도로 전송하면 집적 회로(IC)의 핀 개수가 줄어들기 때문에 장비의 크기도 줄어듭니다.  나아가 시리얼 레인은 훨씬 더 빠른 클럭 속도로 작동하므로, 병렬 버스보다 더욱 높은 데이터 스루풋을 지원할 수 있습니다.

그림 2. 이 표는 주요 버스 표준과 회선 속도에 따른 각각의 레인 수를 보여줍니다. 
시리얼 표준은 병렬 표준보다 더 빠른 회선 속도를 지원하므로, 스루풋도 그만큼 많습니다.

 

단점

핀 개수가 줄어 설계의 복잡도는 줄었지만, 더 빠른 속도가 필요한 경우 추가적인 설계가 필요할 수도 있습니다.  RF 주파수와 관련된 설계에서는 적절한 신호 무결성을 보장하기 위해 RF에 대해서도 유사한 아날로그 고려 사항을 염두에 두어야 합니다. 따라서 이러한 신호 무결성 문제를 해결하기 위해 고속 시리얼 링크는 엔코딩, 프리엠퍼시스(pre-emphasis) 및 균등화와 같은 기술을 구현합니다.

 

고속 시리얼 링크 계층

시리얼 연결을 사용하려면 각 끝 부분은 특정 파라미터에서의 작동에 합의해야 합니다.  이 파라미터는 여러 개의 기능 계층으로 추상화할 수 있습니다.  

그림 3.  물리적 계층 및 데이터 링크 계층 위에는 추가적인 계층이 존재할 수 있습니다.  
이 계층은 프로토콜 및 어플리케이션에 따라 변하며, 보통은 가장 보편적으로 맞춤 설정하는 계층입니다.

 

최하위 계층은 물리적 계층으로, 0 및 1의 전송 및 복구를 담당합니다.  그 위에는 데이터 링크 계층이 있는데, 물리적 계층에서 성공적인 데이터의 송수신을 지원하면서 원시 비트를 유의미한 데이터에 맵핑하는 작업도 담당합니다. 마지막으로 물리적 계층과 데이터 링크 계층 위의 계층은 에러 수정, 패킷 묶음 또는 데이터 라우팅 정보와 같은 기능의 추가적인 기능을 제공할 수 있습니다.

 

물리적 계층

물리적 계층은 장비 간 전기적 호환성을 보장하고 동기화되어 클러킹된 비트를 데이터 링크 계층에 제시하는 기능을 수행합니다.

 

전기적 인터페이스

고속 시리얼 프로토콜마다 트랜스미터 및 리시버의 전기적 인터페이스에 대해 서로 다른 요구 사항을 정의하고 있습니다.  그리고 이러한 정의를 통해 트랜스미터 장치와 리시버를 연결하는 전기적 호환성이 보장됩니다.  고속 시리얼 링크의 전기적 신호는 1 Gbps가 넘는 속도로 통신하기 위해 필요한 극도로 빠른 상승 및 하강 시간에 대한 차동이 있고, 전자파 방출을 최소화하며, 동위상 노이즈를 제거하여 노이즈 내성을 강화하는 데 뛰어난 성능을 보입니다. 또한 이 속도에서는 피크-피크 (peak-to-peak) 전압도 이 속도에서 1V를 초과하는 일이 매우 드물며, 전기 표준으로는 보통 LVDS (저전압 차동 신호), ECL (이미터 결합 논리) 또는 CML(전류 모드 논리)이 적용됩니다.  

 

클럭 및 데이터 복구(CDR)

고속 시리얼 링크의 물리적 계층이 지닌 또 다른 중요한 기능은 바로 클럭 및 데이터 복구(CDR)입니다.  CDR은 실제 클럭 신호 없이도 수신 장치에서 수신 데이터 스트림을 클러킹하는 기능입니다.  이 작업은 데이터 링크 계층의 도움을 받아, 엔코딩을 통해 잦은 비트 변환을 지원하여 수행됩니다. 그러면, PLL (위상 잠금 루프) 및 PI (위상 보간기) 회로에서 전송하는 클럭 신호를 재현하고, 이를 사용하여 타이밍 에러를 최소화하며 수신 데이터 스트림을 캡처할 수 있습니다.

그림 4.  데이터 링크 계층에서 엔코딩은 0과 1 사이의 잦은 비트 변환을 보장하므로 CDR 회로는 수신 비트 스트림의 PLL을 수행하는 동시에 엔코딩된 데이터 비트를 샘플링할 수 있습니다.

 

신호 무결성 고려 사항

5 GHz 이상의 비트 변환 속도로 데이터를 전송하는 경우, 아날로그 설계가 상당히 까다로워집니다.  이제 전송 속도는 RF 설계의 일반적인 주파수 범위에 속하므로, 신호 무결성 문제가 발생할 수 밖에 없습니다.  이렇게 빠른 데이터 속도로 통신하려면 고품질 PCB, 커넥터 및 케이블을 사용해야 합니다.  또한 PCB 설계자는 고속 시리얼 링크를 설계할 때 전송선 이론을 이해하고, 스터브, 임피던스 부정합, 트레이스(trace) 길이 불일치를 피하고, 신호 왜곡을 최소화 하기 위해 적절한 기술을 사용해야 합니다.  

 

균등화

균등화는 채널의 주파수 응답을 늘리기 위해 채널의 전기적 동작에 대응하는 프로세스입니다.  균등화는 통신 링크의 트랜스미터나 리시버에서 링크 마진을 향상시키기 위해서도 수행하지만, 보통 균등화라는 용어는 리시버에 대해 설명할 때 사용됩니다.  고속 시리얼 신호가 커넥터 및 케이블을 통해 PCB 트레이스에서 이동해 리시버로 수신되면, 신호의 일부 주파수 요소에는 동일하게 감쇠가 일어나지 않으면서 신호 왜곡이 발생합니다. 멀티기가비트 트랜시버(MGT)에서 균등화 설정은 신호 및 링크 마진을 향상시키기 위해 샘플링하기 전에 신호의 서로 다른 주파수에 게인이나 감쇠를 적용할 수 있습니다.  많은 MGT가 이퀄라이저를 자동으로 감지하고 최적화된 설정으로 이퀄라이저를 업데이트할 수 있는 자동 균등화 기능을 보유하고 있습니다.   

 

프리엠퍼시스

프리엠퍼시스는 일반적으로 고속 시리얼 링크의 트랜스미터 측에서 수행되는 균등화를 가리킬 때 사용되는 용어로,  주로 부호 간 간섭(ISI)으로 대표되는 아날로그 문제를 해결하는 데 사용됩니다.  빠른 회선 속도에서는 데이터 비트가 전송 시 다른 비트에 영향을 줍니다.  예를 들어, 한 행으로 전송되는 3개의 1 뒤에 1개의 0이 있으면, 회선은 정 바이어스 기법을 사용하므로 0을 신속하게 하위로 유도하기 어렵습니다.

 

   

그림 5. 부호 간 간섭(ISI)으로 인해 신호 저하 현상이 나타납니다. 비트 변환이 부족하면 회선에서 바이어스가 발생하여 반대 비트로의 첫 번째 변환을 빠르게 수행하기 어렵기 때문에 이러한 현상이 나타납니다.

 

ISI를 해결하는 방법은 두 가지입니다.  높은 쪽에서 낮은 쪽으로 또는 그 반대로 변환한 후에 첫 번째 비트에만 문제가 있으면 변환 후 첫 번째 비트만 증폭할 수 있습니다. 그러면 그림 6의 신호가 발생합니다.

 

그림 6. 프리엠퍼시스는 신호 변환 후 첫 번째 비트를 강조하도록 설계됩니다.  
그러면 부호 간 간섭과 같은 문제를 완화할 수 있습니다.

 

그림 6과 유사한 파형을 얻는 보다 일반적인 방법은, 첫 번째 비트를 증폭하는 대신 첫 번째 변환 후 비트를 감쇠하는 것입니다.  변환 비트(더 높은 주파수)가 변환되지 않은 비트보다 더 낮게 감쇠될 때 고역 필터링을 수행하면 됩니다.

 

데이터 링크 계층

데이터 링크 계층은 데이터 변조를 통해 신호 무결성을 향상시키며, 이를 통해 원활한 통신을 확보하고 물리적 비트를 데이터에 맵핑합니다.  그리고 이러한 기능을 수행하기 위해 정렬, 클럭 수정 및 채널 본딩에 대한 엔코딩 구조와 제어 문자를 활용합니다.   

 

엔코딩 구조

엔코딩하는 목적은, CDR 및 데이터의 DC 균형을 유지하도록 잦은 비트 변환을 보장하기 위함입니다.  성공적인 CDR을 보장하려면 CDR 회로가 데이터 스트림으로 고정된 위상을 유지할 수 있도록 엔코딩 구조에서 충분한 변환을 수행해야 합니다.  CDR 회로 내부의 PLL로는 변환이 충분하지 않기 때문에 고정된 상태를 유지할 수 없으므로 리시버는 데이터 비트의 동기화된 클러킹을 보장할 수 없으며, 비트 에러나 링크 장애가 발생합니다. CDR은 잦은 비트 변환의 부호를 전송하여 수행되며, 이후에 데이터에 오버헤드 비트가 추가됩니다.
또한 시리얼 링크의 작동을 유지하려면 DC 균형도 중요합니다.  DC 균형 수치를 규제하지 않으면 신호는 이상적인 논리의 고역 및 저역 수준을 이탈하고, 비트 에러가 발생할 수 있습니다.  DC 균형은 전송된 부호에서 1과 0의 통계 수치 균형을 조정하여 맞춥니다.  DC 균형을 맞춘 신호에서 일정 시간 전송된 0과 1의 개수는 통계적으로 시간의 경과에 따라 일정합니다.   

 

8b/10b 엔코딩

널리 사용하는 엔코딩 구조로는 8b/10b가 있습니다.  이 구조에서는 데이터의 8비트마다 엔코딩 오버헤드로 두 개의 추가적인 비트가 더해집니다.  이 두 개의 추가적인 비트는 8비트의 데이터에서 사용 가능한 것보다 4배 더 많은 비트 표현(부호)을 제공합니다.  이제부터 여러 부호 옵션을 고려하여, 8b/10b 표준에서는 특정 데이터 워드와 제어 부호에 맵핑할 최상의 DC 균형과 가장 많은 변환을 보유하는 미리 정의된 부호를 선택합니다.  그리고 데이터를 엔코딩 및 디코딩할 때 사용하는 룩업 테이블에 이 부호를 저장합니다.
8비트 데이터 워드를 엔코딩할 준비가 되면 엔코더는 데이터 워드를 5비트 및 3비트로 구분하고, 데이터 워드에서 별도로 5b/6b 및 3b/4b 엔코딩을 수행합니다.  5b/6b 테이블에는 5개의 최하위 비트를 전송하며, 3b/4b 테이블에는 3개의 최상위 비트를 전송합니다. 

 

3b 데이터 워드

4b 엔코딩된 부호

 

5b 데이터 워

6b 엔코딩된 부호

000

0100 또는 1011

 

00000

100111 또는 011000

001

1001

 

00001

011101 또는 100010

010

0101

 

00010

101101 또는 010010

011

0011 또는 1100

 

00011

110001

100

0010 또는 1101

 

00100

110101 또는 001010

101

1010

 

00101

101001

110

0110

 

00110

011001

111

0001 또는 1110

 

00111

111000 또는 000111

 

 

 

01000

111001 또는 000101

 

 

 

01001

100101

 

 

 

01010

010101

 

 

 

01011

110100

 

 

 

01100

001101

 

 

 

01101

101100

 

 

 

01110

011100

 

 

 

01111

010111 또는 101000

 

 

 

10000

011011 또는 100100

 

 

 

10001

100011

 

 

 

10010

010011

 

 

 

10011

110010

 

 

 

10100

001011

 

 

 

10101

101010

 

 

 

10110

011010

 

 

 

10111

111010 또는 000101

 

 

 

11000

110011 또는 001100

 

 

 

11001

100110

 

 

 

11010

010110

 

 

 

11011

110110 또는 001001

 

 

 

11100

001110

 

 

 

11101

101110 또는 010001

 

 

 

11110

011110 또는 100001

 

 

 

11111

101011 또는 010100

표 1.  8b 데이터 워드는 3개 MSB를 3b/4b 테이블로 전송하고 5개 LSB를 5b/6b 테이블로 전송하여 엔코딩됩니다.  그런 다음, 현재 러닝 디스패러티에 기반하여 결합해 CDR 회로에서 잦은 변환의 10b 부호를 구성합니다.

 

DC 균형을 유지하기 위해 모든 부호에서 0과 1의 개수가 동일한 조건이 이상적인 상황입니다.  5b/6b 및 3b/4b에서는 이상적인 상황을 지원할 충분할 부호가 없으므로, “러닝 디스패러티 (running disparity)”라고 하는 개념에 따라 결정을 내리도록 구현되었습니다. 러닝 디스패러티는 전송되는 1의 개수와 0의 개수 사이에서 누적된 차이입니다. 8비트를 표현하기에 0과 1의 개수가 같은 부호가 충분하지 않으므로, 일부 데이터 워드는 1의 개수가 0의 개수보다 많은 부호, 반대로 0의 개수보다 1의 개수가 많은 부호, 즉, 2개 부호로 표시됩니다. 예를 들어, 3b/4b 테이블에서 1101은 0010으로도 표시할 수도 있습니다.  사용할 부호의 버전을 선택할 때 엔코더는 항상 러닝 디스패러티의 균형을 맞춥니다.  전체 8b/10b 부호의 디스패러티는 항상 0, +2 또는 -2입니다.  다음 표에서는 사용해야 하는 부호를 결정하는 과정을 보여줍니다.

 

러닝 디스패러티 규칙

이전 RD

부호의 디스패러티 선택

선택한 디스패러티

다음 RD

-1

0

0

-1

-1

+2, -2

+2

+1

+1

0

0

+1

+1

+2,-2

-2

-1


표 2. 이 표는 DC 균형을 맞추기 위해 사용하는 코드 워드 버전을 결정하는 러닝 디스패러티 규칙을 보여줍니다.

 

이제 데이터 워드 10010001을 엔코딩하여 규칙을 설명합니다.  3b/4b 테이블에는 3개의 최상위 비트(100)를 전송하며, 5b/6b 테이블에는 5개의 최하위 비트(10001)를 전송합니다. 이 코드가 회선에서 전송하는 첫 번째 워드인 경우 엔코더는 디스패러티를 -1로 가정하므로, 이 예에서 러닝 디스패러티는 -1이라고 가정합니다.  5b/6b 부분에서는 선택하지 않으므로 3b/4b는 디스패러티를 +2 또는 -2로 결정합니다.  러닝 디스패러티가 -1이므로, 디스패러티가 +2인 3b/4b 코드(1101)가 선택됩니다.  3b/4b 및 5b/6b 코드를 결합하면 엔코딩된 전체 부호는 1101100011입니다. 이 부호를 전송한 후, 러닝 디스패러티는 이제 +1 = -1 + 2입니다.  

 

64b/66b 엔코딩

64b/66b는 유사한 결과를 얻기 위해 8b/10b와는 다른 방식을 택합니다. 코드 테이블 대신, 스크램블링(scrambling)을 사용합니다.  스크램블하려면 여러 개의 0과 1이 다소 균등하게 배치될 가능성이 높은 하드웨어 회로가 필요합니다.  스크램블링을 수행하면 엔코딩된 데이터가 임의로 나타나며 잦은 변환이 일어나지만, 리시버 측에서는 복호화가 가능합니다.

그림 7.  스크램블링 회로는 출력 데이터가 DC 균형을 맞추어 임의로 나타나지만, 리시버에서는 계속 복호화할 수 있습니다. 스크램블링은 룩업 테이블로 데이터를 엔코딩하는 방식의 대안이 됩니다.

 

66비트의 처음 두 비트는 프리앰블(preamble)로 처리되며, 여기에서는 나머지 64비트에 대한 정보를 제공합니다.   

 

프리앰블(처음 2개 비트)

나머지 64비트

00

사용되지 않음, 에러로 간주됨

01

데이터

10

8비트 유형, 56비트 제어 및/또는 데이터

11

사용되지 않음, 에러로 간주됨


표 3.  64b/66b 부호의 처음 2개 비트는 프리앰블로 처리됩니다. 프리앰블은 프리앰블 뒤에 나오는 64비트에 대한 정보를 디코더에 제공합니다. 상위 유효 프리앰블은 10 기가비트 이더넷에 적용됩니다.

 

8b/10b와 비교했을 때 64b/66b의 가장 큰 장점은 오버헤드의 감소입니다.  8b/10b의 경우 오버헤드는 20%지만, 64b/66b의 경우 오버헤드는 3% 정도에 불과합니다.  단, 64b/66b의 한 가지 단점은, 8b/10b와 같이 DC 균형에 대한 제한이 없다는 점입니다.  스크램블링 회로는 통계적으로 중요하지 않은 DC 불균형과 랜덤 표시에 특히 효과적인 것으로 입증되었으며, 8b/10b와 같이 제한을 받지 않습니다.

 

64b/67b

일부 전자제품은 시간의 경과에 따른 DC 오프셋에 매우 민감하기 때문에, 설계자는 DC 오프셋을 제한할 수 없다는 점에서 64b/66b 엔코딩 구조를 선호하지 않을 수도 있습니다.  이러한 상황에서 엔지니어는 8b/10b 구조의 높은 오버헤드(20%)라는 문제에 부딪힙니다.  64b/67b에서는 추가적인 1개의 오버헤드 비트를 더하여, 엔코딩 구조가 러닝 디스패러티를 ±96으로 제한시킬 수 있습니다.
트랜스미터는 러닝 디스패러티를 모니터링하고, 새로 스크램블된 코드 워드 디스패러티를 계산합니다.  새 코드 워드가 디스패러티 수치를 낮출 수 있으면 그 부호를 전송합니다.  새 코드 워드가 디스패러티 수치를 높이면 엔코더는 스크램블된 64 비트를 플립합니다. (단, 디스패러티가 0이면 프리앰블을 플립하지 않아도 됩니다.)  추가적인 비트는 반전 비트라고도 하며, 디코더가 데이터를 반전시켜야 하는지 여부를 디코더에 알립니다.  이를 통해 DC 오프셋에 민감한 칩-칩 기반 전자제품은 제한된 DC 오프셋도 지원하고, 오버헤드가 낮은 엔코딩 구조를 이용할 수 있습니다.

 

128b/130b

PCIe 1.0 및 2.0은 모두 8b/10b를 사용하지만, PCIe 3.0 및 4.0은 도달 가능한 회선 속도에서 데이터 스루풋을 향상시키기 위해 128b/130b로 이전했습니다.  128b/130b는 전송량이 2배지만, 여전히 프리앰블 2비트만 보유하는 64b/66b라고 생각하면 됩니다.  다음 표에서는 PCIe 사양을 보여줍니다.

 

PCIe 버전

엔코딩

회선 속도

스루풋(x16)

1.0

8b/10b

2.5 Gbps

4 GB/s

2.0

8b/10b

5 Gbps

8 GB/s

3.0

128b/130b

8 Gbps

15.8 GB/s

4.0

128b/130b

16 Gbps

31.5 GB/s


표 4.  4개의 PCI Express 버전에 대한 사양입니다. 128b/130b로 이전한 PCIe 3.0 및 4.0은 회선 속도를 관리 가능한 수준으로 유지하면서 데이터 스루풋을 높일 수 있습니다.

 

제어 부호(K-문자)

8b/10b 엔코딩을 언급할 때 k-문자라고도 하는 제어 부호는 고속 시리얼 링크의 중요한 기능을 담당합니다.  데이터와는 구분되는 부호인데, 리시버는 이 부호를 디코딩 전에 바이트 경계 정렬, 클럭 수정 기능, 여러 레인에서 채널 본딩을 통한 데이터 일관성 유지와 같은 다양한 제어 기능에 활용할 수 있습니다.  

 

정렬 및 쉼표 감지

리시버는 디코딩을 올바르게 수행하기 위해 엔코딩된 데이터의 올바른 워드 경계를 알아야 합니다. 리시버는 엔코딩된 데이터의 경계를 정의하는 제어 문자의 수신 데이터를 스캔합니다. 이 부호는 8b/10b에서 정렬에 사용할 때 쉼표로도 표시됩니다.  리시버가 정렬 문자를 식별하면, 엔코딩된 데이터의 워드 경계를 인지하므로, 엔코딩된 데이터를 디코딩 논리로 전송할 수 있습니다.

 

클럭 수정 문자

클럭 수정은 송신 클럭이 수신 클럭과 동일한 소스에 고정되지 않은 경우 항상 필요합니다.  공칭 주파수가 서로 같아도 클럭 주파수가 조금이라도 부정확하면 이 때문에 천천히 차이가 벌어질 수 있습니다.  탄성 버퍼라고 불리기도 하는 FIFO (First In First Out) 메모리 버퍼를 통해 리시버는 트랜스미터와 리시버 사이의 미묘한 클러킹 차이를 고려하고 클럭 수정을 구현합니다.

그림 8.  클럭 수정을 구현하려면 디코더와 리시버 상위 계층 사이에 RX 탄성 버퍼가 필요합니다. 
이 버퍼에서는 서로 차이가 벌어지는, 고정되지 않은 클럭 때문에 에러가 발생하지 않도록 데이터를 버퍼링하며, 참조 클럭을 공유하지 않고도 두 장치 사이에서 통신할 수 있습니다.

 

클럭 수정 논리는 탄성 버퍼가 언더플로 또는 오버플로되지 않도록 합니다.  수신 클럭이 탄성 버퍼에서 읽는 속도보다 송신 클럭이 약간 더 빠르게 실행 중이면 클럭 수정을 적용하지 않은 상태에서 오버플로가 발생할 수 있습니다.  반대로, 송신 클럭이 리시버의 읽기 논리보다 약간 더 느린 경우 클럭 수정을 하지 않으면 언더플로가 발생할 수 있습니다.

제어 문자는 클럭 수정 문자로 선택됩니다. 트랜스미터는 실제 데이터에 삽입된 이 클럭 수정 문자를 주기적으로 전송해야 하며, 전송되는 클럭 수정 문자의 주파수는 어플리케이션 및 하드웨어 설계의 클럭 수정 요구에 따라 달라집니다.  리시버에서 클럭 수정 논리가 리시버의 탄성 버퍼에서 언더플로 발생을 감지하면 리시버 수정 논리는 언더플로가 발생하지 않도록 추가적인 클럭 수정 문자를 삽입할 수 있습니다. 반대로, 탄성 버퍼가 가득 차서 오버플로될 수 있음을 감지하면, 클럭 수정 논리는 데이터의 추가적인 공간을 확보하기 위해 버퍼에 있는 클럭 수정 시퀀스를 버릴 수 있습니다.

 

채널 본딩

회선 속도 및 엔코딩 구조가 단일 시리얼 레인에서 필요한 수준의 데이터 스루풋을 지원할 수 없는 경우 여러 레인을 사용할 수 있습니다.  예를 들어, HDMI 표준은 3개의 시리얼 데이터 레인을 사용하여 전체 데이터 대역폭을 지원합니다.  여러 레인에서 데이터를 전송할 때 전파가 지연되면 리시버에 있는 각 수신 레인에서 데이터가 서로 다른 시간에 도달하게 됩니다.  그러면 어플리케이션에 따라 리시버의 모든 레인에서 데이터를 정렬해야 할 수도 있습니다. 이 프로세스를 채널 본딩이라고 합니다.  리시버의 각 수신 레인에서 클럭 수정에 사용되는 탄성 버퍼 역시 채널 본딩 기능에도 활용됩니다.

채널 본딩을 수행하려면 특수 제어 문자를 선택해 채널 본딩에 사용하도록 예약해야 합니다.  시리얼 링크는 하나의 마스터 레인을 보유하며, 나머지는 슬레이브로 간주됩니다.  마스터 레인과 나머지 슬레이브 레인은 모두 동시에 트랜스미터에서 채널 본딩 문자를 전송합니다.  마스터 리시버가 탄성 버퍼의 특정 위치에서 채널 본딩 시퀀스를 확인하면 모든 슬레이브에 해당 본딩 시퀀스를 찾도록 지시하며, 모든 탄성 버퍼의 읽기 포인터는 채널 본딩 시퀀스 위치의 오프셋에 맞게 모두 조정됩니다.  각 데이터 레인에서 탄성 버퍼마다 고유한 오프셋을 가지므로, 리시버는 각 탄성 버퍼의 서로 다른 위치에서 데이터를 읽기 때문에 정렬된 데이터를 읽을 수 있습니다.

 

그림 9.  채널 본딩은 각 수신 레인에서 탄성 버퍼의 읽기 포인터를 변경하여 
리시버가 여러 데이터 레인에서 데이터를 동시에 읽을 수 있도록 지원합니다.

 

유휴 문자

제어 문자의 또 다른 중요한 사용 사례로, 유휴 문자가 있습니다.  클럭 및 데이터 복구에서 지속적으로 위상을 고정시키려면 트랜스미터가 항상 비트를 전송해야 합니다.  전송할 데이터가 없으면 유휴 문자를 전송해야 합니다.  이 문자는 프로토콜이 정하는 또 다른 제어 문자로, 리시버는 이 문자가 실제 데이터가 아님을 인식합니다.

 

추가적인 상위 계층

데이터 링크 계층 위에는 추가적인 상위 계층이 있으며, 엔지니어는 이 계층을 통해 요구 사항에 따라 통신을 조정할 수 있습니다.  일부 프로토콜은 상위 계층 기능에 대한 특정 표준을 보유하는 반면, 표준은 설계자가 처리해야 하는 프로토콜도 있습니다.  몇 가지 공통 기능으로, 에러 검사/수정, 패킷 기반 통신의 헤더 정보 또는 링크 상태 정보가 포함될 수 있습니다.

데이터 링크 계층 및 물리적 계층 위의 계층은 어플리케이션의 특정 요구에 맞게 가장 보편적으로 맞춤 설정되는 계층으로, 이를 통해 엔지니어는 표준 물리적 계층 및 데이터 링크 계층의 기존 구현을 활용할 수 있습니다.  
예를 들어, 공통된 상위 계층 기능으로는, CRC (주기적 중복 확인) 및 FEC(전방 오류 정정)를 활용한 에러 감지 및 수정 기능이 있습니다.  데이터 전송에서 효율성을 절충하여 에러 감지나 수정에 이 CRC 구조를 사용할 수 있습니다.  CRC는 전송에 비트 에러가 있는지 확인하는 규칙을 구현하지만, 에러를 수정하지는 못합니다.  어플리케이션은 CRC에서 데이터의 재요청을 지원하는지 여부를 결정할 수 있습니다.  반면, FEC는 송신된 데이터에 추가적인 에러 감지 정보를 보유하고 있어서, 리시버는 제한된 수의 비트 에러에서 복구 가능합니다.  FEC는 노이즈가 발생하는 채널이나 통신 속도가 너무 높아서 신호 무결성 때문에 비트 에러가 더 흔히 발생하는 경우에 유용합니다.  신호 무결성 요구 사항을 완화한 경우 데이터 속도의 효율성을 절충하는 설계에서는 FEC를 포함시킵니다.  

 

결론

통신을 성공적으로 수행하려면 고속 시리얼 링크의 여러 계층에서 다양한 문제에 부딪히게 됩니다.  따라서 관련 개념을 이해하면 여러 계층을 구현하고 테스트하는 데 큰 도움이 됩니다.  계층이 올바르게 작동하려면 하위의 계층이 올바르게 기능해야 합니다.  물리적 계층과 데이터 링크 계층에 대해서는 여러 가지가 정의되어 있으며, 표준 구현 중 하나를 사용하면 엔지니어가 항상 세부적인 항목까지 세세히 결정하지 않아도 됩니다.  표준 물리적 계층 및 데이터 링크 계층을 사용할 경우 일반적으로 이러한 낮은 수준의 항목을 자동으로 구현하는 IP를 사용할 수 있다는 장점이 있습니다.  한 가지 대표적인 예로는, Xilinx Aurora Protocol이 있습니다. 이는 점대점 시리얼 통신에 대한 경량 데이터 링크 계층 프로토콜을 구현하는 무료 IP입니다.  이 프로토콜을 사용하면, 사용자는 클럭 수정, 채널 본딩, 유휴 문자, 엔코딩/디코딩과 같은 사소한 작업에서 해방될 수 있고, 엔지니어는 보다 상위의 어플리케이션별 계층에 역량을 집중할 수 있습니다.  

크기가 작고 사용 전력량이 낮으며 성능은 향상된 고속 시리얼 링크는 점점 더 많은 인기를 얻고 있습니다.  또한 업계에서는 더욱 빨라진 회선 속도와 빅 데이터 환경을 지원하는 고속 시리얼 기술을 지속적으로 향상시키고자 노력합니다.