본문 바로가기

Hardware

GT/s는 뭘까? (B/10bit)

어제 처음으로 GT/s 라는 요상한 단위를 접하였다.

Gb/s나 GB/s는 많이 보던 것인데, T는 뭘까?

찾아보니 전송(Transfer)에 대한 단위[각주:1]였다.

이런 생소한 전송개념이 등장하게 된 이유에는 "8b/10b encoding"이라는 부호화 체계에 있다. 쉽게 이야기 하면 1바이트를 10비트로 전송하는 것.

8 비트 단위를 10 비트의 코드로 변환시키는 블록 코딩방식이라고 풀어 설명을 할 수 있는데,

256개(28)의 데이터코드로 사용하고, 나머지 788개(210-28) 중 12개를 특수코드(제어)로 할당해서 사용을 한다.
아무 코드만 쓰는 것이 아니고 그룹당 비트 변화가 많은 코드를 선정했다.
10비트의 코드 그룹당 비트 변화율이 3~8회, 평균 전압이 0으로 조정되도록 설계가 되었다. (설계는 IBM이 했다.)


어떻게 보면 25% 정도는 오버헤드로서 제어를 위해 쓰여지고 있다고 볼 수 있다.

하지만 오버헤드를 상쇄할 만한 장점이 있기에 이런 부호화를 쓰고 있을 것이다.

장점으로는 데이터 '0'과 '1' 값의 비트를 충분히 변화시켜서 수신부에서 비트열로 부터 클럭의 추출을 쉽게 할 수 있다는 점이다.
예를 들면 1->0이나 0->1로 가는 비트는 뭔가 구별이 쉽게 할수 있으나, 1->1, 0->0의 경우 클럭을 예측하기 어렵다.
여분의 코드를 이용해서 특수 코드를 이용하면 코드 그룹 간의 경계를 쉽게 판단할 수 있다.

생각보다 이런 부호화를 사용하는 곳은 많았다. (고속 직렬 데이터 전송에)

Fiber chan-nel, Gigabit Ethernet, ServerNet, Ficon, InfiniBand 등


  1. https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_(%EC%BB%B4%ED%93%A8%ED%8C%85) [본문으로]