고속 시리얼 설명

개요

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

내용

고속 시리얼의 필요성

소비자는 전력이 적게 필요한 더 작은 폼 팩터에서 더 나은 성능을 얻게 되기를 지속적으로 바라고 있습니다. 2000년대 초 빅 데이터 시대에 이러한 바람은 병렬에서 고속 시리얼 디지털 통신 버스로의 급격한 전환을 촉발했습니다. 그 결과 훨씬 더 작은 설치 공간, 훨씬 더 높은 데이터 처리량, 더 낮은 전력으로 구동되는 디바이스가 탄생했습니다. 이러한 기능은 오늘날 소비자가 사용하는 SATA, USB 및 PCI Express와 같은 많은 기술을 가능하게 만들었습니다.

그림 1: 2000년대 초 시장은 일반적인 병렬 통신 표준에서 시리얼 표준으로 전환되기 시작했습니다.

장점

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

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

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

단점

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

고속 시리얼 링크 계층

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

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

물리적 계층

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

전기 인터페이스 

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

클럭 및 데이터 복구  

고속 시리얼 링크의 물리적 계층이 지닌 또 다른 중요한 기능은 바로 클럭 및 데이터 복구(CDR)입니다. CDR은 실제 클럭 신호 없이도 수신 장치에서 수신 데이터 스트림을 클러킹하는 기능입니다. 데이터 링크 계층은 인코딩으로 빈번하게 비트를 전환하여 이를 달성하는 데 도움을 줍니다. 이를 통해 PLL(Phase-Locked Loop)과 PI(Phase Interpolator) 회로가 전송 클럭을 다시 생성하고 이를 사용하여 타이밍 에러를 최소화하면서 수신 데이터 스트림을 캡처할 수 있습니다.

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

신호 무결성 고려 사항 

5GHz 이상의 속도로 변환되는 비트를 사용하여 데이터를 전송하면 아날로그 설계 문제가 발생합니다. 이제 전송 속도가 RF 설계의 일반적인 주파수 범위에 있기 때문에 신호 무결성 문제가 발생합니다. 이렇게 높은 데이터 속도로 성공적으로 통신하려면 고품질 PCB, 커넥터, 케이블을 사용해야 합니다. 또한 PCB 설계자는 고속 시리얼 링크를 설계할 때 전송 회선 이론을 이해해야 합니다. 표시자, 임피던스 불일치, 트레이스 길이 불일치를 방지하고 신호 왜곡을 최소화하기 위한 적절한 기술을 사용할 수 있어야 합니다. 

균등화

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

프리엠퍼시스

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

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

ISI를 극복하는 두 가지 방법이 있습니다. 높은 쪽에서 낮은 쪽으로 또는 그 반대로 변환한 후에 첫 번째 비트에만 문제가 있으면 변환 후 첫 번째 비트만 증폭할 수 있습니다. 그 결과 그림 6과 같은 신호가 생성됩니다.

그림 6: 프리엠퍼시스는 신호 변환 후 첫 번째 비트를 강조하도록 설계됩니다. 이는 ISI와 같은 문제를 완화하는 데 도움이 됩니다. 

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

데이터 링크 계층

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

인코딩 구조

인코딩하는 목적은 CDR 및 데이터의 DC 균형을 유지하도록 잦은 비트 변환을 보장하기 위함입니다. 성공적인 CDR을 보장하려면 CDR 회로가 데이터 스트림으로 고정된 위상을 유지할 수 있도록 인코딩 구조에서 충분한 변환을 수행해야 합니다. CDR 회로 내부의 PLL로는 변환이 충분하지 않기 때문에 고정된 상태를 유지할 수 없으므로 리시버는 데이터 비트의 동기화된 클러킹을 보장할 수 없으며, 비트 에러나 링크 장애가 발생합니다. CDR은 잦은 비트 변환의 부호를 전송하여 달성되며 이후에 데이터에 오버헤드 비트가 추가됩니다.

또한 시리얼 링크의 작동을 유지하려면 DC 균형도 중요합니다. DC 균형 수치를 규제하지 않으면 신호는 이상적인 논리의 고역 및 저역 수준을 이탈하고, 비트 에러가 발생할 수 있습니다. DC 균형은 전송된 부호에서 1과 0의 통계 수치 균형을 조정하여 맞춥니다. DC 균형을 맞춘 신호에서 일정 시간 전송된 0과 1의 개수는 통계적으로 시간의 경과에 따라 일정합니다. 

8b/10b 인코딩

널리 사용하는 인코딩 구조로는 8b/10b가 있습니다. 이 구조에서는 데이터의 8비트마다 인코딩 오버헤드로 두 개의 추가적인 비트가 더해집니다. 이 2개의 추가 비트는 8비트의 데이터보다 4배 많은 비트 표현(부호)을 제공합니다. 8b/10b 엔코더는 특정 데이터 워드와 제어 부호에 매핑할 가장 많은 변환과 최상의 DC 균형을 보유한 미리 정의된 부호를 선택하여 많은 부호 옵션의 범위를 좁힙니다. 그리고 데이터를 인코딩 및 디코딩할 때 사용하는 룩업 테이블에 이 부호를 저장합니다.

8비트 데이터 워드를 인코딩할 준비가 되면 엔코더는 데이터 워드를 5비트 및 3비트로 구분하고 데이터 워드에서 별도로 5b/6b 및 3b/4b 인코딩을 수행합니다. 5b/6b 테이블에 5개의 최하위 비트를 전송하며 3b/4b 테이블에는 3개의 최상위 비트를 전송합니다.

테이블 1: 엔코더는 3개의 최상위 비트를 3b/4b 테이블에 보내고 5개의 최하위 비트를 5b/6b 테이블에 보내 8b 데이터 워드를 인코딩합니다. 그런 다음 러닝 디스패러티에 기반하여 결합해 CDR 회로에서 잦은 변환의 10b 부호를 구성합니다.

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

테이블 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 인코딩

8b/10b 인코딩과 다른 접근 방식을 사용하는 64b/66b 인코딩은 유사한 작업을 수행할 수 있습니다. 코드 테이블 대신 스크램블링을 사용합니다. 스크램블링을 수행하려면 여러 개의 0과 1이 다소 균등하게 배치될 가능성이 높은 하드웨어 회로가 필요합니다. 스크램블링을 수행하면 인코딩된 데이터가 임의로 나타나며 잦은 변환이 일어나지만 리시버 측에서는 복호화가 가능합니다.

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

66비트의 처음 두 비트는 프리앰블로 처리되며, 여기에서는 나머지 64비트에 대한 정보를 제공합니다. 8b/10b와 비교했을 때 64b/66b의 가장 큰 장점은 오버헤드의 감소입니다. 64b/66b는 3%가 약간 넘는 오버헤드가 특징인 반면 8b/10b의 오버헤드는 20%입니다. 64b/66b 인코딩의 한 가지 단점은 8b/10b 인코딩처럼 DC 밸런스에 경계가 없다는 것입니다. 스크램블링 회로는 통계적으로 중요하지 않은 DC 불균형과 랜덤 표시에 특히 효과적인 것으로 입증되었으며 64b/66b 인코딩은 8b/10b와 같이 제한을 받지 않습니다.

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

64b/67b

특정 전자 장치는 시간이 지남에 따라 DC 오프셋에 매우 민감하게 반응합니다. 이것은 64b/66b 인코딩 방식의 경우일 수 있습니다. DC 오프셋이 제한되지 않기 때문에 설계자에게 매력적이지 않을 수 있습니다. 이러한 상황에서 엔지니어는 8b/10b 구조의 높은 오버헤드(20%)라는 문제에 부딪힙니다. 64b/67b 방식에서는 추가적인 1개의 오버헤드 비트를 더하여 러닝 디스패러티를 ±96으로 제한시킬 수 있습니다.

트랜스미터는 러닝 디스패러티를 모니터링하고, 새로 스크램블링된 코드 워드 디스패러티를 계산합니다. 새 코드 워드가 디스패러티 수치를 낮출 수 있으면 그 부호를 전송합니다. 새 코드 워드가 디스패러티 수치를 높이면 엔코더는 스크램블링된 64 비트를 플립합니다.(단, 디스패러티가 0이면 프리앰블을 플립하지 않아도 됨) 추가적인 비트는 반전 비트라고도 하며 디코더가 데이터를 반전시켜야 하는지 여부를 디코더에 알립니다. 이를 통해 DC 오프셋에 민감한 칩 기반 전자제품은 제한된 DC 오프셋도 지원하고 오버헤드가 낮은 인코딩 구조를 이용할 수 있습니다.

128b/130b

PCI Express 1.0 및 2.0은 모두 8b/10b를 사용하지만 PCI Express 3.0 및 4.0은 도달 가능한 회선 속도에서 데이터 스루풋을 향상시키기 위해 128b/130b로 이전했습니다. 128b/130b 방식은 2배의 페이로드와 2개의 프리앰블 비트만 있는 64b/66b로 생각하면 됩니다. 테이블 4는 PCI Express의 사양을 보여줍니다.

테이블 4: 이 테이블은 4세대 PCI Express의 사양을 보여줍니다. 128b/130b로 이전한 PCI Express 3.0 및 4.0은 회선 속도를 관리 가능한 수준으로 유지하면서 데이터 스루풋을 높일 수 있습니다.

컨트롤 부호(K-문자) 

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

정렬 및 쉼표 감지

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

클럭 수정 문자

클럭 수정은 송신 클럭이 수신 클럭과 동일한 소스에 고정되지 않은 경우 항상 필요합니다. 이러한 클럭이 동일한 공칭 주파수에 있더라도 클럭 주파수가 조금만 부정확해도 천천히 떨어져 나갑니다. 탄성 버퍼라고 불리기도 하는 FIFO(선입선출) 메모리 버퍼를 통해 리시버는 트랜스미터와 리시버 사이의 미묘한 클러킹 차이를 고려하고 클럭 수정을 구현합니다.

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

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

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

채널 본딩

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

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

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

유휴 문자

제어 문자의 또 다른 중요한 사용 사례로, 유휴 문자가 있습니다. 클럭과 데이터 복구가 위상 고정 상태를 유지하려면 트랜스미터가 계속 비트를 보내야 합니다. 보낼 데이터가 없으면 유휴 문자를 보내야 합니다. 이 문자는 프로토콜이 정하는 또 다른 제어 문자로, 리시버는 이 문자가 실제 데이터가 아님을 인식합니다.

추가 상위 계층

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

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

결론

통신을 성공적으로 수행하려면 고속 시리얼 링크의 여러 계층에서 다양한 문제를 극복해야 합니다. 따라서 여러 개념을 이해하면 여러 계층을 구현하고 테스트하는 데 큰 도움이 됩니다. 계층이 올바르게 작동하려면 하위의 계층이 올바르게 기능해야 합니다. 물리적 및 데이터 링크 계층에 정의된 많은 사양 중 하나를 사용하면 하위 레벨의 세부 사항을 스스로 결정할 필요가 없습니다. 표준 물리적 계층 및 데이터 링크 계층을 사용할 때의 또 다른 이점은 이러한 모든 하위 레벨 세부 정보를 구현하는 IP(인터넷 프로토콜)입니다. 한 가지 대표적인 예로는, Xilinx Aurora Protocol이 있습니다. 이는 점대점 시리얼 통신에 대한 경량 데이터 링크 계층 프로토콜을 구현하는 무료 IP입니다. 이를 통해 클럭 수정, 채널 본딩, 유휴 문자, 인코딩/디코딩 등과 같은 세부 사항을 추상화할 수 있어 상위 어플리케이션별 계층에 집중할 수 있습니다.

크기가 작고 사용 전력량이 낮으며 성능은 향상된 고속 시리얼 링크는 점점 더 많은 인기를 얻고 있습니다. 통신 산업은 더 빠른 회선 속도를 달성하고 빅 데이터의 세계를 구현하기 위해 고속 시리얼 기술을 지속적으로 개선하고 있습니다.