인텔 네할렘 마이크로아키텍처의 QuickPath Interconnect로 구성한 NUMA 구조.
1. 개요
QuickPath Interconnect(QPI)는 인텔이 코어 i 시리즈 1세대부터 5세대까지 사용했던 인터페이스 장치이며 주로 프로세서간 버스로 사용한다. 코어2 시리즈까지 사용했던 Front-side Bus를 대체했다.2017년 인텔은 Mesh Interconnect Architecture와 Ultra Path Interconnect(UPI)를 개발해 스카이레이크 마이크로아키텍처에 반영하면서 QuickPath Interconnect를 대체했다.
2. 상세
서버 같은 다중 소켓 시스템들의 x86 CPU들은 데스크탑과 같이 Front-side Bus로 노스 브릿지 칩셋을 통해 메모리와 연결되어 있었다. 그러나 Front-side Bus는 Gunning Transceiver Logic(GTL)이라는 원시적인 방식으로 데이터를 주고 받고 있었으며 프로세서간 버스를 공유한다는 단점이 있었다. 게다가 프로세서간 캐시 메모리와 지역 메모리의 데이터가 일관성이 없었기 때문에 병목 현상이 심했다.인텔은 이 문제를 해결하기 위해 클럭을 올리기도 하고 GTL+와 AGTL+(Advanced GTL+)를 개발하기도 했으며, 쿼드펌핑(Quad-pumping)[1] 기술도 개발했을 뿐만 아니라, 제온의 플랫폼 허브 컨트롤러 칩셋(노스 브릿지 칩셋)에 Snoop Filter를 넣어 프로세서의 요청이 들어올 때마다 버스를 스위칭하기도 하는 등 Front-side Bus를 지속적으로 개량해 왔으나 결국 한계에 봉착했다.
AMD는 이를 해결하기 위해 1999년 Digital Equipment Corporation에게 EV6 버스 인터페이스를 라이선스 받아 버스 공유 문제를 해결했으며, 2001년 하이퍼트랜스포트(HyperTransport) 기술을 개발해 Cache-Coherent NUMA 아키텍처를 개발하는데 성공했다. 이덕에 AMD는 옵테론으로 서버 시장에서 선전할 수 있었다.
인텔도 이를 보고 2001년에 컴팩에게서 인수한 알파 프로세서 사업 부문이었던 알파 개발 그룹(Alpha Development Group, 現 Intel Massachusetts Microprocessor Design Center)을 통해 2004년부터 Cache-Coherent NUMA 아키텍처 개발에 들어갔다. 2008년에 완성했는데, 개발 완성 이전에는 Common System Interface로 알려졌으나, 완성 후 인텔은 QuickPath Interconnect로 이름을 지었다. 인텔 네할렘 마이크로아키텍처에 반영되었다.
QuickPath Interconnect의 대역폭은 기존 Front-side Bus에 비하면 넓을 뿐만 아니라 ccNUMA를 구현했기 때문에 다중 소켓 제온 시스템 서버의 병목 현상을 크게 개선했다. 네할렘에서는 2.4GHz 클럭부터 시작했으나, 하스웰에서는 4.8GHz까지 지원했다. Double Date Rate였고, 버스폭은 16~20비트이며 전이중 통신(full-duplex) 방식이었다.
한편 CPU간 연결이 필요 없는 플랫폼에서는 네할렘 마이크로아키텍처의 경우 QuickPath Interconnect를 CPU와 X58 칩셋간 통신으로 사용했다. X58 칩셋의 역할은 PCI Express 컨트롤러간 라우팅이었으며, 이마저도 일반 데스크톱용 프로세서였던 린필드 인텔 코어 i 시리즈 CPU들은 PCI express 컨트롤러가 CPU 내부로 들어갔기 때문에 쓰이지 않았다.
QuickPath Interconnect 때문에 AMD는 그나마 앞서던 대역폭에서까지 인텔에 밀리다가 2017년 ZEN 마이크로아키텍처에서 Infinity Fabric을 도입하면서 다시 경쟁할 수 있게 되었다.
참고로 인텔은 플랫폼 허브 컨트롤러 칩셋(노스브릿지 칩셋) 또는 CPU와 I/O 허브 컨트롤러 칩셋(사우스 브릿지 칩셋)간 통신은 2004년 인텔 펜티엄4 시리즈부터 지금까지 Direct Media Interface(DMI)를 사용한다.
[1] 한 클럭 주기 동안 4번의 데이터를 주고 받는 것.