|
병목현상 해결을 위해 변하는 버스 프로토콜

초기 컴퓨터는 단일 버스 구조였으나 CPU나 메모리 등을 비롯한 주변장치들의 속도 차이가 커지면서 이들 간의 데이터 교환시 병목현상이 나타나게 되고 이를 해결하기 위해 컴퓨터에 사용되는 버스는 점차 세분화가 진행되었다. 여기에서 말하는 버스 (Bus)는 컴퓨터 내부와 외부의 각 장치 사이에 정보나 신호를 주고 받을 수 있도록 사용되는 전기적 통로를 말한다.
이러한 세분화 덕분에 부족한 대역폭을 확보하게 되면서 성능 저하를 개선해왔으나 그 덕분에 다양한 버스 프로토콜이 등장하게 되어 이들에 대해 이해해야 각 장치에 사용되는 기술의 특징들을 서로 비교할 수 있고 장점이나 단점을 파악할 수 있게 되었다. 여기에서 말하는 버스 프로토콜은 각 버스 사이에 어떤 자료를 어떤 방식을 언제 주고 받을지 등을 정해놓은 규약이라고 할 수 있다.
오늘 살펴볼 버스 프로토콜은 AMD와 인텔이 사용하고 있는 버스 프로토콜의 종류와 이에 대한 내용이다. 최근에 사용되고 있는 버스 프로토콜은 CPU와 CPU, CPU와 칩셋 간의 상호연결을 위한 FSB (Front Side Bus)와 QPI (QuickPath Interconnect), 하이퍼트랜스포트 (HyperTransport, HT) 등이 사용된다. 칩셋과 그래픽카드 간의 연결에는 PCI와 AGP, PCI-Express 등의 다양한 연결 방법들이 도입되고 있다.
FSB (Front Side Bus) : 프론트 사이드 버스
인텔이 오랫동안 사용해와 일반 사용자들에게도 잘 알려진 버스 프로토콜이 바로 FSB (Front Side Bus)다. CPU 버스 프로토콜의 특성상 FSB도 CPU와 CPU 사이, CPU와 칩셋 사이에 모두 사용될 수 있는 기술이다.
인텔 FSB 버스 프로토콜은 데스크탑용에서는 주로 CPU와 칩셋 (노스브릿지) 사이의 연결 및 칩셋에 내장된 메모리 컨트롤러의 데이터를 교환하는 역할을 한다.

[FSB가 사용된 P45 칩셋]
FSB는 높은 유연성과 낮은 비용으로 만들 수 있어 과거에는 많이 사용되었지만, 최근 등장하고 있는 버스 프로토콜 기술들보다 CPU 연결의 수 제한 및 CPU의 클럭 및 메모리 클럭 향상, 다른 장치들의 처리속도 향상 등에 따른 데이터 병목현상을 가져오고 있어 최근에 인텔은 FSB를 다른 기술로 대체하고 있다.
인텔의 FSB는 데스트탑 CPU에는 45nm 공정이 적용된 코어2 시리즈까지 적용되어오다 새로운 네할렘 마이크로아키텍처가 적용되면서 점대점 (Point-to-Point) 방식을 지원하는 QPI (QuickPath Interconnect)로 대체되고 있다. 하지만, 아직까지 코어2 시리즈 CPU나 셀러론, 아톰 프로세서 등에도 여전히 사용되고 있으며, 이들도 시간이 지나면 QPI로 대체될 것으로 예상된다.
QPI (QuickPath Interconnect)
QPI (QuickPath Interconnect)는 AMD CPU에 적용된 하이퍼트랜스포트 (HyperTransport, HT)와 같이 점대점 (Point-to-Point) 링크 방식을 사용하는 기술로 CPU와 CPU, CPU와 칩셋 (노스브릿지) 연결을 위해 인텔에서 개발한 버스 프로토콜이다. 초기 공개명은 CSI (Common System Interface)로 알려져 있다.

[QPI를 적용한 X58 IOH (I/O Hub)]
인텔 QPI (QuickPath Interconnect)는 FSB보다 높은 대역폭 확보 및 고속, 고효율 등의 장점을 갖게 된다.
QPI는 CPU와 CPU, CPU와 I/O Hub 간에 방향당 16Bit (2Byte) 폭의 상하용 20bit 점대점 링크 (20 쌍의 데이터 링크)로 연결되며, 분리된 쌍은 각 방향으로 전체 42개의 신호를 제공한다. 각 신호는 서로 다른 쌍으로 연결되어 전체 포인트 수는 84개다. 20 쌍의 데이터 링크는 4개의 5 데이터 링크로 각각 나뉠 수 있다.
QPI는 또 대역폭 확보 및 대기시간 감소, CRC 핀 내장으로 오류 확인 및 전체 패킷 크기를 줄여 데이터 전송의 효율을 높이고 있다. (8/10bit
표준 인코딩에 의해 4bit는 클럭 신호와 에러 정정 신호 포함)
데이터 입출력 (GB/s)은 각 80bit flit 당 64bit 데이터 처리 (8bits는 에러 감지, 8bits는 link-layer header, 64bits는 데이터)가 가능하며, QPI는 양방향성을 가져 대역폭 계산에 더블 즉, 2를 곱해준다. Bit 전송은 상승과 하락의 주파수 (클럭)로 사인곡선 한 주기를 연상하면 쉬우며, 실질적인 초당 전송수 계산에는 DDR (Double Data Rate 즉, 2를 곱함, 2bit/Hz)이 적용된다.
하이퍼트랜스포트 (HyperTransport, HT)

[하이퍼트랜스포트 (HT)가 사용된 페넘 X4 CPU]
하이퍼트랜스포트 (HyperTransport, 이하 HT)는 초기에는 LDT (Lightning Data Transport)라는 용어가 사용되기도 했지만, 현재는 하이퍼트랜스포트라는 이름이 사용된다.
초기 애슬론64 CPU에 적용된 하이퍼트랜스포트의 CPU 대역폭 계산에 등장하는 CPU와 칩셋간 버스 클럭의 하이퍼트랜스포트 LDT 배수가 바로 이 LDT 즉, 하이퍼트랜스포트 이전에 사용된 용어를 말한다. 하이퍼트랜스포트는 양방향성 시리얼 방식을 사용하며, 높은 대역폭과 낮은 레이턴시의 장점을 가지고 있으며, 인텔 QPI처럼 점대점 (Point-to-Point) 링크 방식이 사용된다.
하이퍼트랜스포트 기술은 AMD x86 CPU 뿐만 아니라 NVIDIA, VIA, SIS 등의 칩셋들을 비롯하여 서버, 임베디드 시스템, 네트워킹 및 통신 장비 내 집적 회로 간의 통신 등에 적용되고 있다.
하이퍼트랜스포트 기술은 현재 3.1 규격까지 공개되 상태이며, 버전별 적용된 HT 주파수와 링크 폭, 이에 따른 대역폭은 아래와 같다.

현재 45nm 공정으로 등장한 페넘2 X2/ X3/ X4, 애슬론2 X2/ X4 등은 하이퍼트랜스포트 3.0 규격을 지원하고 있다. 그러나, 이들은 하이퍼트랜스포트 3.0을 지원하고 있기는 하지만 HT 주파수는 1.8GHz/ 2.0GHz를 사용하고 있어 하이퍼트랜스포트 3.0의 2.6GHz를 그대로 사용하지는 않고 있다.
하이퍼트랜스포트 기술은 비트 대역을 자동으로 교체하며, 2-32링크 연결 범위를 갖는다. 풀 대역, 풀 스피드, 32bit 상호 연결되며, CPU 간의 넓은 상호연결, 저속 패러럴 상호연결도 가능하다. 링크 분할은 싱글 16링크 연결은 2개의 8링크 상호연결로 나눌 수 있다.
또, 하이퍼트랜스포트는 높은 대역폭 제공, 짧은 대기 시간 및 적은 핀수, 기존 PC 버스와 호환성 유지 및 SNA (System Network Architecture) 버스로의 확장, OS에 대한 투명성 보장 및 주변 장치 드라이버로 인한 영향 최소화 등의 특징을 가진다.
또, CPU와 칩셋 (노스브릿지)간의 버스 클럭에는 DDR (Double Data Rate) 방식을 적용해 애슬론64 초기 CPU의 특징을 그대로 사용하고 있다. 실질적인 초당 전송수는 클럭 당 얼마 만큼의 데이터를 실질적으로 보낼 수 있느냐를 의미하는데 증감되는 클럭 신호로 사인곡선 한 주기의 곡선 모양을 연상하면 쉽다. (한 주기가 2bit/Hz를 의미) 하이퍼트랜스포트의 실질적인 최대 데이터 전송률은 3.1규격의 최대인 3.2GHz 동작시 6.4GT/s (6400MT/s)다.
|