Sep 11, 2007

하이퍼트랜스포트


통합된 고속 I/O 버스의 필요성과 3세대 I/O


이 강좌는 I/O 버스 관련 강좌 중 두번째 강좌입니다. 여기서는 차세대 I/O로 주목받고 있는 하이퍼트랜스포트에 대해서 자세히 다루게 됩니다. I/O 버스 관련 강좌 1회 및 칩셋 오딧세이 강좌를 먼저 읽어보실 것을 권해드립니다.

관련강좌
칩셋 오딧세이 - 새로운 세대의 칩셋들
제 8화. I/O 버스. (1) 과거와 현재의 I/O 버스


표준의 필요성


시스템 내부에서 사용되는 데이터는 점점 거대화되고, 점점 더 큰 데이터 전송 대역폭을 필요로 하고 있다. 그래서 이를 극복하고자 3세대 칩셋부터는 사우스브릿지에 PCI 컨트롤러를 탑재하고 노스브릿지-사우스브릿지 사이에는 IHA(Intel Hub Architecture)나 V.Link, MuTIOL 등의 고속 인터페이스로 연결되었다. 하지만 업계표준이 아닌 상태에서 각사들이 별도로 기술을 만들어나가다보니 중복투자 등이 발생하는 것은 물론이며, 사용자 입장에서는 상당한 혼란이 만들어진다.


그래서 컨소시움 형태를 구성하여 공통적으로 표준제정을 함으로써, 각 업체들이 만드는 하드웨어들간의 호환성을 높이고 투자비용을 줄여서 낮은 가격에 높은 성능과 탁월한 호환성을 보장하기 위한 업계표준의 필요성이 부각되었다.


2세대 I/O의 한계


1. 태생적 한계


2.5세대라고 부를 수 있는 IHA(Intel Hub Architecture)나 V.Link, MuTIOL 등은 그 태생적 한계로 인해서 광범위하게 사용되기 어려웠다. 바로, 각 사에서 독자적으로 만든것이기 때문이다.


인텔의 허브 아키텍쳐는 인텔의 800계열 칩셋의 등장과 함께 허브의 개념을 처음으로 도입한 아키텍쳐로써 그 가치를 높게 평가할 수 있다. 이것은 현재 1GB/s까지의 넓은 대역폭을 갖는 버스로 발전하였다. 이름은 다르지만 동일한 목적과, 동일한 토폴로지를 가지는 것이 바로 VIA의 V.Link이다. V.Link는 VIA의 Apollo Pro266A 칩셋 및 Apollo KT266 칩셋과 함께 등장하였다. 이것은 노스브릿지와 사우스브릿지의 이름을 그대로 유지하고 있으며, 버스의 명칭이 V.Link라는 것만 다를 뿐 기본적으로는 인텔의 IHA와 거의 동일했다. 또한 같은 세대의 버스로써 SiS의 MuTIOL을 들 수 있다. 이것은 이론적으로는 앞서의 IHA 및 V.Link에 비해서 월등한 우위를 가진다. 단일 칩 솔루션으로써 가질 수 있는 특징을 최대한 이용한 노스브릿지/사우스브릿지간의 1GB/s의 대역폭은(당시로써는 획기적인 것이었다.) 최대 6개까지의 PCI 버스마스터링을 지원함으로써 다수의 PCI 버스를 사용하는 환경에서는 대단히 높은 성능을 구현해 줄 수 있었다. 하지만 이것은 이후 분리형 칩셋에서는 내부적 한계로 인해서 전송률이 533MB/s로 제한되어서 다른 버스 방식들과 유사하게 되었다.



이름은 갖가지지만 이들 버스구조가 갖는 특징은 PCI 버스 컨트롤러가 사우스브릿지, 혹은 ICH에 통합되었고, 노스브릿지와 사우스브릿지 사이에는 더욱 빠른 속도의 버스를 둠으로써, PCI 버스에서의 병목현상을 줄였다는 것이다.


문제는 이들이 모두 '독자적으로 개발되었다는' 점에 있다. 기본적으로 IHA, V-Link, MuTIOL 모두 Intel, VIA, SiS이 기존의 노스브릿지-사우스브릿지의 구조에서 한계를 발견하고 이를 해결하기 위해서 각자 개발한 것이다. 그 과정에서 거의 동일한 토폴로지를 가지는 유사한 기능의 칩셋이 만들어졌지만, 이는 각사의 독자적인 기술이었기에 서로 공유한다거나 하는 것은 불가능했다. 결국, 그 이후의 기술도 각자 따로따로 개발해나가야 하는 어려움을 얻었을 뿐만 아니라 호환성에 있어서도 큰 문제를 만들어냈다.


아무리 개발목적과 그 결과가 유사하다고는 하지만 독자적으로 개발된 것이다. 완전히 동일한 호환성을 기대한다는 것은 애초부터 불가능하다. 즉, 만약 이들 버스에 직접 연결되는 무언가를 만들고자 하는 회사가 있다면 벌써부터 상당히 커다란 암초에 맞닥뜨린다. 과연 어느 표준에 맞추어서 만들어야 하는가이다. 제 3세대 I/O는 기술적인 한계 뿐만 아니라 이러한 실제 적용에 있어서의 한계도 극복한다는 목적을 가지고 있다.


2. 병렬연결기술로는 더이상 높은 클럭을 기대할 수 없다.


또한 기존의 병렬연결기술의 연장선상에 있다는 것도 더욱 높은 성능을 구현하는데에 있어서 큰 문제점으로 작용한다. 이들 2.5세대 버스는 모두 32bit/64bit의 버스폭에서 66MHz의 동작클럭과 DDR/QDR 기술을 적용하여 266MB/s나 533, 1,066MB/s의 대역폭을 만들어낸다. 그러나 이러한 대역폭의 구성에 있어서 기본적으로 기존의 병렬전송구조를 그대로 답습하고 있기 때문에 높은 클럭의 구현이 대단히 어렵다. 현재 2.5세대 버스에서 가장 높은 대역폭을 보여주는 것은 인텔의 E7000 계열 칩셋에 탑재되어 있는 IHA이다. 이는 64bit/66MHz PCI의 사용을 위해서 1GB/s의 대역폭을 가지고 있다. 하지만 64bit/66MHz의 PCI 버스가 다수 사용되는 상황에서 1GB/s의 대역폭이라는 것은 실상 큰 의미를 가지지 못한다. 그리고, 서버용 메인보드를 중심으로 점차적으로 확산되어가고 있는 PCI-X를 받아주기에는 사실상 무리가 있다.


앞으로 등장하는 10Gbit 이더넷 등을 생각한다면 현재의 버스구조로써는 미래가 암울하기만 하다.


3. 전력소모가 지나치게 많아진다


혹여, 높은 클럭을 어찌어찌해서 달성한다고 치더라도 전력소모가 천문학적이 되어버린다. 회로상에서 동작클럭이라는 것은 소모전력과 거의 비례한다. 즉, 높은 동작클럭을 가지기 위해서는 높은 전력을 필요로 하게 되는데, 안그래도 점차적으로 많아지는 전력 사용량 때문에 골머리를 앓고있는 시스템들에서 이러한 추세는 그다지 반가운 것이 아니다.


현재 I/O에 사용되는 전압은 3.3V이다. 이러한 '높은' 전압으로 고클럭을 구현하려고 할 경우 전자파간섭이 발생하게 된다던가 하는 것은 차치하고라도 당장 엄청난 전력을 필요로한다.


이상과 같은 이유에 의해서 기존의 버스구조를 완전히 탈피한 3세대 버스의 필요성이 부각되며, 그러한 배경을 바탕으로 탄생한 것이 하이퍼트랜스포트와 3GIO이다.


이번 강좌에서는 하이퍼트랜스포트의 탄생배경와 그 기술적 특징, 하이퍼트랜스포트를 적용함으로써 얻을 수 있는 이득, 그리고 하이퍼트랜스포트의 적용 등에 대해서 이야기해 볼 것이다.




하이퍼트랜스포트 컨소시움



지난 1997년, AMD는 서버 플랫폼 상의 칩간 연결구조에서 보다 높은 대역폭을 구현할 수 있는 새로운 버스 방식의 개발을 시작하였으며, 이것이 바로 하이퍼트랜스포트(HyperTransport)의 태동이다. 이 때, AMD와 함께 하이퍼트랜스포트를 개발한 주요 파트너가 API 네트웍과 선 마이크로시스템이다.


앞서의 강좌들에서도 보았듯이, 서버 플랫폼에서는 PCI-X 등의 높은 대역폭을 요구하는 인터페이스가 사용된다. 또한 앞으로 10Gbit Ethernet이나 인피니밴드 등이 등장할 것이기 때문에 이들을 수용해줄 수 있는 칩간 연결구조가 필요해졌으며, 바로 이러한 요구를 만족시키기 위해서 개발된 것이 하이퍼트랜스포트라 할 수 있다. 기본적으로는 서버 플랫폼에서의 사용을 가정하고 있지만, 서버 뿐만이 아니라 다른 분야, 즉 네트웍이나 정보통신, 임베디드 시스템, 그리고 일반 사용자용 PC에 이르기까지 높은 대역폭을 필요로 하는 분야가 점차 다양화되고 있기 때문에 하이퍼트랜스포트의 잠재적 사용영역 역시 이러한 분야로 확산되고 있다. 그래서 그러한 다양한 분야의 업체들이 하이퍼트랜스포트에 관심을 가지게 되었고, 2001년 2월 14일에(발렌타인데이군요. 외우기는 쉽습니다. -_-) 하이퍼트랜스포트의 기술이 공식적으로 발표될 때, 선과 시스코, 브로드컴, HP, ALi, NVIDIA가 이 기술의 사용을 약속하였다.







현 하이퍼트랜스포트 컨소시움 회장인 Gabriele Sartori


이후 하이퍼트랜스포트가 다양한 영역으로 확산되게 되면, 뛰어난 성능의 고집적, 저가격의 디바이스를 제조할 수 있게 된다는 점을 인지한 각 분야의 다양한 업계가 바로 공동으로 하이퍼트랜스포트의 개발과 이와 관련된 기술을 개발하고 홍보할 수 있는 조직을 만들기 위해서 협력하였고, 그 결과로써 2001년 7월 23일에 하이퍼트랜스포트 컨소시움이 탄생하였다. 초기의 하이퍼트랜스포트 컨소시움에는 AMD, API Networks, Apple, Cisco, NVIDIA, PMC-Sierra, Sun, Transmeta의 8개사가 참여하였고, 이후 여기에 SGI와 브로드컴이 참여하여서 총 10개사가 프로모터이자 실행위원회 구성원으로 참여하고 있다. 이 중에서 AMD의 컴퓨터 제품 그룹(CPG) 기술 전수 담당이사인 가브리엘 사토리가 현재 하이퍼트랜스포트 컨소시움의 회장직을 맡고 있다.


하이퍼트랜스포트 컨소시움의 구성원은 3등급으로 구분된다. 가장 높은 등급이 프로모터(Promoter)이며, 프로모터에 소속된 회사는 위의 10개사이다. 이들은 하이퍼트랜스포트 컨소시움의 사업을 관장하며, 실행위원회에서 한표씩의 투표권을 행사할 수 있다. 두번째 등급은 컨트리뷰터(Contributor)인데, 컨트리뷰터 회원사들은 하이퍼트랜스포트와 관련된 기술을 개발하고 하이퍼트랜스포트의 마케팅 이벤트 및 각종 문서에 각 회사의 이름이 등록된다. 또한 워킹그룹에서 한표씩의 투표권을 가질 수도 있다. 가장 간단한 형태의 회원사 등급은 어답터(Adopter)이다. 어답터 회원사는 투표권 등을 행사할 수는 없으나 하이퍼트랜스포트 I/O 링크에 대한 지적재산권을 무료로 라이센스 받아서 사용할 수 있다.


2002년 8월 현재, 하이퍼트랜스포트 컨소시움에는 51개사가 가입되어 있으며 그 목록은 다음과 같다.



널리 알려져 있는 웬만한 회사들은 거의 다 포함되어 있는 것을 알 수 있다. 특히 칩셋 제조사들은 인텔을 제외하면 모두 참여하고 있으며, 시스코 및 브로드컴 등으로 대표되는 네트웍/통신장비 제조사나 QLogic, LSI Logic, 마벨 등으로 대표되는 스토리지(SCSI 등) 컨트롤러 제품군 제조사들이 눈에 띈다. 웍스테이션 및 서버 제품군을 제조하는 HP 및 SGI, Sun, 도시바 등도 참여하고 있다. 트랜스메타 등은 임베디드 시스템과 관련하여 하이퍼트랜스포트 기술을 적용시키려는 것으로 해석할 수 있다.


흥미로운 것은 인텔이 하이퍼트랜스포트 컨소시움에서 빠져 있다는 것이다. 인텔은 프로세서, 칩셋, 네트웍/통신장비, 서버 등 하이퍼트랜스포트가 적용될 수 있는 모든 영역의 제품군을 모두 제조하고 있는 거대 회사이다. 즉, 하이퍼트랜스포트의 적용으로써 가장 큰 수혜를 얻을 수 있는 곳이라고도 할 수 있다. 그럼에도 불구하고 인텔은 아직까지 하이퍼트랜스포트 컨소시움에 참여하지 않고 있다.


인텔이 하이퍼트랜스포트 컨소시움에 참여하지 않는 것은 자존심 때문일 가능성이 크다.(지금까지 인텔은 타사에서 만든 규격을 사용하는 것을 상당히 꺼려왔다. PCI와 관련된 규격의 제정에는 인텔이 앞장서고 있으며, AGP는 애초에 인텔에서 만든 것이다. 그리고 그 외의 갖가지 규격의 제정에도 인텔이 앞장서고 있다. 단, 하이퍼트랜스포트는 AMD가 제창하고 중심이 되어있다.)


하이퍼트랜스포트는 기본적으로 AMD의 프로세서를 위해서 만들어졌다. AMD에서 앞으로 출시할 해머 프로세서가 기본적으로 하이퍼트랜스포트 컨트롤러를 내장하고 있으며, 또한 멀티프로세서 구성에서 프로세서간의 데이터 전송에도 하이퍼트랜스포트를 사용하는 것만 보아도 알 수 있다. 상황이 이렇다 보니 고유의 AGTL+버스를 프로세서에 사용하고, MCH 등에는 자사의 IHA에 기반한 고속 버스를 사용하고 있는 인텔로써는 하이퍼트랜스포트 컨소시움에 가입한다는 것이 AMD에 한수 접어주고 들어가는 격이 되어버린다. 프로세서 왕국의 왕좌 자리를 단 한번도 놓친적이 없는 '절대적 지배자' 인텔의 뻣뻣한 자존심으로써는 대단히 어려운 것이라는 것을 생각해볼 수 있을 것이다. 물론 인텔 역시 하이퍼트랜스포트를 적용함으로써 얻을 수 있는 이득에 대해서 모르는 바는 아닐테지만, 그러한 이득보다도 경쟁사인 AMD 앞에서 수그리고 들어간다는 것이 더욱 큰 상처가 된다고 생각하는 것일지도 모르겠다. 쪼잔하긴...


하이퍼트랜스포트 컨소시움에 관련한 자세한 내용을 알고자 하는 독자는 다음의 관련사이트를 참조하시기 바란다.


관련 URL





하이퍼트랜스포트의 목적과 잇점


하이퍼트랜스포트 기술은 아래와 같은 목적을 달성하기 위해서 만들어졌다. 기존적으로 시스템 내부에서의 I/O 연결을 위함이었는데, 이는 다음과 같이 분류될 수 있다..


1. 시스템 성능의 향상


앞서도 언급했듯이, 2.5세대 버스는 대역폭의 한계에 도달해있다. 하이퍼트랜스포트의 가장 기본적인 목적은 이러한 한계를 돌파하는 것이다. 대역폭을 늘리는 것은 병목현상의 해결과도 이어진다. 현재, 병목현상을 일으키고 있는 곳은 프로세서 버스와 PCI 버스들이다. 이러한 부분에 고속의 하이퍼트랜스포트가 적용되면서 병목현상을 제거할 수 있다.



시스템 내부에는 다양한 버스가 존재한다. 프로세서 버스부터 시작해서 2.5세대 버스들(IHA나 V.Link, MuTIOL 등), PCI도 있으며, 메모리 버스, AGP까지 다종다양한 버스가 존재한다. 이러한 버스 중 중요한 것들을 하나로 통합한다면, 결국 지연시간의 감소라는 이득을 얻게 된다. 각 버스를 이어주는 브릿지의 숫자가 감소하기 때문이다. 또한, 소비전력 역시 줄어들게 된다.


2. 시스템 디자인의 단순화


앞서의 '버스의 통일'에서 이어지는 부분이다. 버스의 종류가 통합됨으로써, 시스템에는 다양한 버스를 위한 브릿지가 존재할 필요가 없고, 통일된 버스구조 안에서는 동일한 프로토콜을 사용하기 때문에 시스템 디자인이 단순해진다.


브릿지의 감소와 프로토콜의 통일로 인해서 각 칩의 패키지 크기도 작아지며, 보다 적은 핀만을 사용할 수 있게 된다. 이것은 제조비용의 절감으로 이어진다.


3. 다양한 대역폭에의 대응


시스템 내부의 다양한 버스를 하나로 통일하기 위해서는, 그리고 앞으로 보다 많은 어플리케이션으로의 대응을 위해서라면 다양한 대역폭을 구성할 수 있어야한다. 그래서 다양한 종류의 브릿지를 통해서 다양한 대역폭을 구현할 수 있으며, 상/하위호환성을 유지할 수 있도록 디자인되었다. 다음은 하이퍼트랜스포트가 어디까지 대응할 수 있는가를 보여준다.



프로세서 속도, I/O 버스의 속도와 하이퍼트랜스포트
(LDT : 초기에는 LDT(Lightspeed Data Transfer)라고 불렸다.)의 관계


4. 기존 시스템과의 호환성 유지


기존의 버스구조와 완전한 호환성을 유지한다는 것은 새로이 만들어지는 버스 아키텍쳐에서 가장 우선적으로 요구되는 부분이다. 만약 기존의 버스구조와의 호환성을 유지할 수 없다면 시장에 부드럽게 적용될 수 없기 때문이다. 또한, 이러한 호환성을 기반으로 기존의 운영체제 및 드라이버에도 그대로 적용할 수 있어야한다.(드라이버는 약간의 수정이 필요할수도 있겠지만)


5. 새로운 시스템 네트웍 아키텍쳐로의 확장을 보장


앞으로 등장할 시스템 네트웍 아키텍쳐로 무리없이 확장할 수 있어야한다. 시스템 네트웍 아키텍쳐는 향후 시스템간의 네트웍 구성을 통해서 SAN 등을 구성하기 위한 요소이다.


6. 다양한 멀티프로세싱 시스템으로의 대응


하이퍼트랜스포트는 기본적으로 프로세서 버스까지를 포괄한다. 동시에, 프로세서간의 버스 역시 하이퍼트랜스포트로 구성하여 다수의 프로세서가 사용되는 멀티프로세서 환경에서 프로세서간의 네트웍이 구성될 수 있다.



이러한 구성에서는 프로세서의 캐시 동시성(cache coherency)을 구현하는데에 큰 잇점을 제공한다.


요약


하이퍼트랜스포트는 기존의 칩간 버스구조를 대체하면서, 단지 이를 대체하는 것을 넘어서서 시스템 내부의 칩간 연결구조를 통일하여 전체적인 구성과 프로토콜을 단순화하고, 이를 통해서 시스템 디자인의 간소화와 성능향상, 그리고 제조비용의 절감이라는 세가지 목표를 모두 달성하는 것을 노리고 있다.


기본적인 목적은 병목현상의 제거라고는 하지만, 상세히 살펴보면 해머 아키텍쳐를 바탕으로 이를 하이퍼트랜스포트와 연계하여 인텔에 비해서 우월한 아키텍쳐와 업계의 지지기반을 확보하고 보다 높은 성능을 추구하며, 동시에 서버 시장에서의 발판을 마련한다는 것이 가장 큰 목적이라고 봐야 할 것이다.


이제 다음 페이지에서는 이러한 목적을 달성하기 위한 기술적 특징에 대해서 알아보고 그에 이어서 하이퍼트랜스포트가 어떻게 사용될 것인지에 대해서 이야기할 것이다.