|
FSB, QPI, HT의 차이점


CPU와 칩셋간 버스 클럭의 향상을 통해 대역폭을 높일 수 있고 이는 결과적으로 시스템의 전반적인 성능 향상이 가능해진다. 이를 위해 제조사들은 서로 다른 버스 방식을 도입하고 자사에 최적화시키고 있다.
FSB는 64bit 병렬 버스를 사용하고 현재의 코어2 CPU에 최대 적용된 FSB 1600 (400 x 4 (QDR, 한클럭에 4개의 데이터 전송))MHz에서 12.8GB/s (현재 DDR2-800MHz 듀얼채널 구성 대역폭과 같음, 400MHz x 2 (DDR) x 16 (128bit/8 (byte 변환)) = 12.8GB/s)의 대역폭을 제공한다.
그러나, 현재 적용된 FSB 구조에서는 높아지는 메모리 클럭에 적합한 메모리 대역폭을 제공하기도 힘들며, 이를 비롯하여 I/O 등의 데이터 처리를 위한 충분한 대역폭을 확보하기 힘든 구조를 갖는다. 또한, FSB에 높은 동작 클럭을 적용할 경우 PCB 층 수 증가 등이 필요하며 이로 인한 비용 상승의 문제가 있어 비효율적이다. 이러한 결과 인텔은 새로운 네할렘 마이크로아키텍처에서는 메모리 컨트롤러의 CPU 내장 및 QPI로 불리는 새로운 인터페이스를 도입하게 된다.
QPI는 저전압 차동신호 (LVDS) 기반으로 1:1 연결되는 단방향 점대점 (Point-to-Point) 방식으로 FSB가 양방향 전송이 가능한 것과 차이가 있다. 데이터 전송 폭은 FSB가 더 높지만, 동작속도에 큰 차이를 보이므로 실제 데이터 전송은 QPI가 더 유리하다. 또한, QPI는 25.6GB/s의 대역폭을 제공해 FSB의 2배에 이르는 대역폭을 제공하여 메모리 대역폭 및 I/O 등의 데이터 교환에서 더 유리해진다.
하이퍼트랜스포트 역시 QPI처럼 1:1 연결되는 단방향 점대점 (Point-to-Point) 방식이며, FSB의 절반의 데이터 전송폭을 가지나 HT 3.1 규격에서는 QPI와 같은 3200MHz로 동작하여 실제 데이터 전송에서는 더 유리하다. QPI와 같이 DDR 방식으로 한클럭에 2개의 데이터를 실제 전송할 수 있는 구조를 가진다.
HT 3.1 규격의 32bit/ 32bit 3.2GHz 동작시 싱글 QPI 링크의 2배인 51.2GB/s의 대역폭을 제공한다. 그러나, 현재의 45nm 페넘2 및 애슬론2 CPU들은 HT 3.1 규격과 32bit 링크를 사용하지 않고 16bit 링크를 사용하여 QPI보다 낮은 16GB/s의 대역폭을 제공하는 구조가 사용되고 있다.
왜 지속적으로 변화하는가?
버스는 장치들 간의 속도 차이가 발생하게 되면서 필요한 데이터를 교환할 때 처리 속도 및 성능 차이 (병목현상)를 줄이기 위해 도입된 것이라고 언급하였다. 버스에 속하는 FSB도 기본적으로 CPU와 메인보드 간의 처리 속도 및 성능 차이를 극복하기 위해 만들어졌다. 버스 프로토콜은 기존 방식의 문제를 해결하면서 계속 개선되고 있다.
또한, 버스에서는 처리 속도 및 성능 차이를 극복하기 위해서 중요하게 작용되는 대역폭을 늘리기 위한 방법들이 고안되고 있다. 인텔 FSB나 QPI, AMD 하이퍼트랜스포트 모두 버스 클럭을 높임으로써 더 높은 대역폭을 만들고 이를 통해 처리 성능을 향상시키고 있다.
FSB는 배수개념이 적용되기 시작한 486 시절부터 코어의 동작클럭과 외부에서 전달하는 클럭을 분리하고 배율 개념을 적용하여 CPU의 내부 클럭을 만든 것에서부터 시작된다. 이로 인해 FSB는 외부클럭이라는 의미와 CPU 대역폭의 의미 (CPU와 칩셋 (노스브릿지)간 버스 클럭 즉, 버스 클럭)라는 2가지로 현재 사용되고 있다.
하이퍼트랜스포트는 현재 200MHz, 인텔 FSB는 200/ 333/ 400MHz, QPI는 133MHz의 외부클럭을 가지며, 이 클럭들은 AMD 하이퍼트랜스포트에 적용된 200MHz, 인텔 QPI는 133MHz, FSB는 200/ 333/ 400MHz의 기본클럭과 같다. 이들은 클럭제너레이터를 통해 생성되는 클럭이다.
AMD는 CPU와 칩셋간 하이퍼트랜스포트를 채용하고 CPU와 칩셋간 버스 클럭을 높이기 위해 DDR (Double Data Rate) 방식을, 인텔은 FSB와 QPI를 채용하고 CPU와 칩셋간 버스 클럭을 높이기 위해 FSB는 QDR (Quad Data Rate), QPI는 DDR (Double Data Rate)를 적용한다.
CPU 대역폭의 의미로 본 버스 클럭은 외부클럭에 일정 배율을 곱한 값으로 만들어진다. 하이퍼트랜스포트가 적용되는 페넘2 시리즈는 200MHz x 9/ 10 (LDT 배수) = 1800/ 2000MHz, QPI는 133MHz x 18/ 24 = 2400/ 3200MHz, FSB는 200/ 333/ 400MHz x 4 = 800/ 1333/ 1600MHz)의 버스 클럭이 적용된다.
현재는 이 CPU 대역폭의 의미인 버스 클럭이 클럭 (주파수) 단위가 아닌 실질적인 초당 전송수로 전송속도를 표기하는 방법으로 바뀌고 있다.
실질적인 전송수 (전송속도)로 표기가 바뀐 인텔 QPI, AMD HT 버스 클럭
인텔의 FSB 버스 프로토콜은 CPU 대역폭 표기에 필요한 버스 클럭의 표기법이 클럭의 MHz/ GHz (주파수) 단위를 사용해왔지만, QPI로 바뀌면서 GT/s (Gigatransfer, GT)로 변경되었다.
하이퍼트랜스포트 역시 인텔 x86 호환 CPU라는 점과 사용자들의 이해를 위해 인텔의 FSB에 맞추어 MHz/ GHz (주파수) 단위를 사용해왔다. 즉, 일반 사용자들이 FSB에 익숙해진 만큼 AMD도 MHz/ GHz (주파수) 단위를 사용하여 비교가 쉽도록 표기해왔다. 그러나, 하이퍼트랜스포트는 데이터 시그널링 속도는 MHz, 동작 주파수는 QPI처럼 전송속도 표기인 MT/s (Megatransfer, MT)의 표기법도 이미 사용해왔다.
하지만, 인텔이 FSB에서 QPI로 넘어오면서 GT/s (초당 기가전송)로 표기법을 바꾸었는데 QPI에 사용된 초당 기가전송은 실제 전송속도가 클럭 (주파수) 뿐만아니라 각 클럭 사이클에 얼마나 많은 데이터의 전송을 수행할 수 있는지에 의해 성능이 결정되고 있는 상황을 고려한 단위다.
보통 전송 (Transfer)은 기가전송 (Gigatransfer, GT)과 메가전송 (Megatransfer, MT)이 단위로 사용되며, 전송되거나 동작되는 정보의 수로 정의된다. 전송은 초당 전송수와 같이 전송속도를 의미한다. 1GT/s는 초당 109 개의 전송수, 1MT/s는 초당 106 개의 전송수이며, 시스템 또는 장치의 정보가 외부로부터 이동되는 전송수 또는 실질적인 전송 수를 말한다.
DDR SDRAM과 AMD 하이퍼트랜스포트, 인텔 QPI는 같은 DDR (Double Date Rate) 방식의 데이터 처리를, FSB는 현재 QDR (Quad Pumping, Quad Data Rate) 방식을 도입하고 있다. 즉, DDR SDRAM과 AMD 하이퍼트랜스포트와 인텔 QPI는 클럭 당 한 번에 2개의 데이터를 처리, FSB는 한 번에 4개의 데이터를 처리한다는 의미다.
실질적인 초당 전송수로 전송속도를 표기할 때는 증감되는 사인곡선 한 주기 또는 두 주기의 곡선 모양을 연상 (한 주기가 2bit/Hz (HT, QPI), 두 주기는 4bit/Hz (FSB)를 의미, 2 또는 4 곱하기)하면 되며, 반대로 클럭 (주파수, MHz/ GHz)으로 전송속도를 표기할 때는 해당 버스 프로토콜의 데이터 처리 방식에 따라 나누기 2 (AMD 하이퍼트랜스포트와 인텔 QPI)를 해주면 된다.
예를들어 200MHz로 동작하는 DDR SDRAM은 DDR (Double Data Rate) 방식을 사용하므로 실제 초당 전송수 즉, 전송속도는 400MT/s (200MHz x 2 (DDR))이다. QPI를 적용한 코어 i7 블룸필드 920/ 940/ 950은 2400MHz (133MHz x 18), 코어 i7 블룸필드 965/ 975 Extreme Edition은 3200MHz (133MHz x 24)가 버스 클럭으로 실제 초당 전송수인 전송속도를 구해보면, 2400MHz x 2 (DDR)/ 3200MHz x 2 (DDR) = 4800MT/s (4.8GT/s), 6400MT/s (6.4GT/s)가 나온다. FSB는 400MHz일 경우 400MHz x 4 (QDR) = 1600MT/s (1.6GT/s)이며,
버스 클럭은 1600MHz (400MHz x 4)다.
하지만, 실질적인 초당 전송수로 전송속도를 표기하더라도 실제 대역폭 계산에서는 클럭 (주파수)로 버스 클럭을 바꿔 계산해야 정확한 대역폭을 비교할 수 있게 된다.
|