SerDes Architecture
SerDes : 약자는 Serializer , Deserializer 입니다.
당근 병렬을 직렬로, 직렬을 병렬로 전송하거나 수신하는 방식을 말합니다.
SerDes 디바이스는 어플리케이션 용도에 따라서 몇개의 아키텍쳐로 나눌 수 있습니다.
3.2 Parallel Clock SerDes
이 방식은 Data-Address Control 등이 병렬로 된 것을 직렬화 시키는데 사용된다. 예를 들면 PCI 버스나,
UTOPIA 같은 병렬 버스 규격을 직렬화 할때 사용한다.
전체 버스를 하나의 멀티 플렉서에서 직렬화시키지 않고 Parallel Clock SerDes 아키텍쳐는 n-to-1 멀티플렉서 구조로 만들어진다.
각각의 멀티플렉서는 적당수의 채널을 받아서 직렬화 시켜서 보내는 것이다.
위의 그림은 7:1 멀티플렉싱을 사용하여 Parallel Clock SerDes로 구성하는 것을 보여주는 그림입니다.
여기서 수신단은 클럭을 이용하여 데이터를 복원해야 하므로 패러럴 포트와 직렬화 구간 및 수신 구간에서 클럭 스큐등에
조심해야 합니다.
3.3 Embedded Clock (Start-Stop) Bit SerDes
클럭을 사용하지 않고 전송 데이터 시그널 선에서 특정 조건을 만족시키는 시그널을 클럭의 시작 기준점으로 보고
동조를 맞추어서 데이터를 얻는 방식입니다.
위의 그림처럼 원래 하나가 1이면 하나가 0이 되는 데이터 전송 방식에서 클럭의 시작/끝 부분에서 두개 모두 동시에 0으로 간후
1로 가면 그 시점을 클럭의 시작 시점으로 잡고 운용하는 방식입니다.
이 방식은 별도의 클럭을 위한 라인이 필요 없다는 점이 장점입니다.
또한가지 장점은 받으시 2:1 혹은 8:1 처럼 정해진 Multiplxer등이 필요 없다는 점입니다.
클럭 구간 안에서 데이터를 전송하기 떄문에 또다른 이름으로는 Start Stop bit SerDes 로 불리운다.
파워가들어오면 Deserializer는 자동적으로, 클럭을 찾아서 동기를 맞추어야 한다. 일단 동기가 맞게 클럭이 세팅되면,
입력 스트림에서 데이터를 꺼낼 수 있다. 이렇게 데이터를 락킹시키는 과정을 lock to random data 라고 부른다.
이러한 방식은 수신기가 시스템의 콘트롤 범위 내에 들어오지 않는 상황일 경우 유용하다.
리시버는 데이터 라인에서 클럭 라인을 동기를 맞추고 세팅을 맞추는 방식이므로 클럭라인과 데이터라인 사이의 지터 등을
고민할 필요가 없고, 트랜스미터에서 이러한 부분을 고려하여 전송할 필요가 없기 때문입니다.
3.3 8b/10b SerDes
이 방식은 8b의 데이터를 10b의 데이터로 전송하고 그 역으로 받아서 병렬로 8비트의 데이터를 만드는 방식입니다
10b의 코드는 IBM에서 1980년대 초기에 개발한 것이었다. 이것은 거의 매 사이클마다 Transition이 발생되도록 구성된 방식입니다.
이렇게 함으로서 가능한것은 수신단에서 데이터 스트림에서 클럭에 대한 동기를 찾아낼 수 있다는 점입니다.
수신기가 정확한 동기를 맞추기 위해서 트랜스미터는 경계를 표시하는 마커를 보냅니다. 이것을 Comma Character라고 부릅니다.
이것은 일반 데이터에서 절대 나타나지않는 비트 패턴을 가지고 있으습니다.
이 방식은 외부 레퍼런스 클럭을 가지고 있기 떄문에 지터라던가 노이즈에 좀더 신경을 써야 하는 구조입니다.
3.5 FPGA Attach SerDes
이 구조는 2가지 단계로 구성됩니다.
FPGA에서 시그널을 느린 몇개의 LVDS로 붙입니다. 그리고 두번째 단계에서 하나의 고속의 LVDS로 만듭니다.
이런 방식이 내셔널에서 제공하는 LVDS 예제 보드인 스파르탄 3에 들어있습니다.
3.6 Application
Parallel Clock SerDes
이것은 전통적인 버스를 시리얼로 바꾸어 보내는 어플리케이션을 의미합니다.
따라서 “Virtual Ribbon Cable”이라고 부르기도 합니다.
저전력, 긴 전달거리, 저가격 , 낮은 노이즈 , EMI 등등의 장점을 제공합니다.
가격대 성능비로 괜찮기 떄문에 많은 데서 사용하고 있습니다.
칩셋에 따라서 21비트 , 28비트, 48 비트 등을 사용합니다.
위의 그림은 RACK에서 RACK으로 연결하는 것에 대한 그림입니다.
Embedded Clock ( Start-Stop ) Bit SerDes
이 방식은 RAW 데이터와 컨트롤, 패리티, 프레임 , 싱크 , Status등을 동시에 보낼때 어울리는 방식입니다.
위의 그림은 그에 대한 예제로서 데이터 외에 제어에 필요한 정보 예를들어서 패리티라던가 프레임 정보등을 함께 보내는 방식입니다.
이러한 방식에 8b/10b SerDes를 쓰는 것은 좀더 복잡한 상황이 됩니다. 즉 컨트롤 정보가 8비트 (1 바이이트) 단위로 정렬되지 않을 경우
기다렸다가 채워 보내는 방식으로 구현되는데 이러한 부분이 시간이나 컨트롤을 복잡하게 하는 부분이 될 수 있기 때문이다.
{
그냥 남는 비트 영역은 0을 채워서 보내면 될텐데 굳이 이런 이유를 대는 이유는 명확치가 않네요
}
Embedded clock bits SerDes는 수신기가 자동으로 random data를 Lock 시키는 기능을 가지고 있다는 점이다.
따라서, 수신기의 제어권이 송신기에 있지 않는 경우에 아주 적합한 방식이 된다.
또한 하나의 송신기에서 복수의 수신기로 들어가는 구조에서도 유용하다.
이러한 방식을 Broadcast라고 부르고 이런 경우에 Hot Insertion이라고 하여서 통신중에 새로운 통신 모듈이 버스에 삽입되어서
동작하는 기능을 구현할 수 있다. 즉 송신 블럭은 계속 데이터를 전송하고, 수신 블럭에서 클럭 동기를 맞추어서
데이터를 수신하는데 이때 새로운 수신 블럭이 삽입된다면 보통 송신 블럭이 데이터 송신을 중지하고 새로운 수신 블럭이
완전히 자리 잡은 뒤에 송신을 재개하는데 이럴 필요가 없이 끊김이 없이 계속 송신 블럭이 송신하여도 새로운 수신 블럭은
클럭의 동기를 맞추고 데이터를 가지고 갈 수 있는 기능이되는 것이다.
Embedded clock bits SerDes는 바이트 단위로 끊어지지 않는 어플리케이션에도 잘 어울린다. 이런 방식으로는 raw data + control data를 전송하는 경우가 그에 해당한다.
8b/10b SerDes
이 방식은 바이트 단위의 데이터 전송을 하는 것에 잘 들어맞는 방식이다.
이 방식에서 최대 코드 길이는 5비트가 된다. 따라서, 1GHz의 통신방식에서 첫번째 harmonic frequency 는 1G와 1G/5 = 200MHz 이다.
또한 이 방식은 전송하는 0과 1의 총 합이 같게 설계되어 있어서 평균 DC값에 맞추도록 설계되어 있다.
이렇게 DC에 맞추어지는 코딩을 DC-balance coding이라고 하고, 이러한 방식은 광통신이나 AC-coupled 환경에서
신뢰성을 높일 수 있는 방식이다.
이것이 8b/10b SerDes의 최대 이점이다. 게다가 이런 방식은 Inter Symbol Interference를 줄이고,
cable drive capability를 높일 수 있는 방식이다.
FPGA Attach Serdes
FPGA와 연결하여서 고속 데이터 전송을 할 경우에 적합한 방식이다.
Deserializer는 드러오는 데이터에서 외부 참조 클럭이나 콤마 캐릭터가 없이도 자동적으로 락을 시킬 수 있다.
이런 기능으로 인해서 SerDes가 비 바이트 단위 시스템에서 잘 어울린다고 볼 수 있다.
각 방식의 비교 테이블은 아래와 같다.
'[통신]' 카테고리의 다른 글
MIPI Alliance Working Groups (0) | 2012.03.10 |
---|---|
Mobile 산업의 새로운 표준 MIPI (0) | 2012.03.08 |
Digital commnucation을 위한 LVDS 이해하기[2] (0) | 2012.02.21 |
Digital commnucation을 위한 LVDS 이해하기[1] (0) | 2012.02.20 |
RS-232/422/485 통신의 개요 (0) | 2012.01.04 |