본문 바로가기
IT/Hardware/CPU/MB

인텔 48코어 CPU기술을 공개

by 에비뉴엘 2010. 4. 18.
반응형
 Intel 는, 48개의 CPU코어를 원칩에 실은, 제2세대의 매니코어(Many-core) 리서치 칩의 개요를 분명히 했다.작년(2009년) 12월에 (Single-chip Cloud Computer=SCC)」로서 발표한 칩이다.미 샌프란시스코에서 지난 주 개최된 ISSCC(IEEE International Solid-State Circuits Conference)에서는, 부분적인 상세한 정보가 밝혀졌다.


제2세대의 매니코어리서치칩 Single-chip Cloud Computer의 개요
 Intel는, 장래의 매니코어 CPU 시대를 향한 리서치 프로젝트로서 매니코어 CPU를 시작하고 검증을 행하고 있다. 에뮬레이션이 아니고, 실제 실리콘으로 시작을 해 버리는 곳은, 연구비의 풍부한 Intel인것 같다.

  리서치의 제1탄으로서 2006년에 Intel는, 1 칩으로 테라플롭스(TFLOPS)의 연산 퍼포먼스를 실현하는 실험 칩「Network-on-Chip(NoC)」을 발표했다.이 때의 NoC는, 지극히 심플한 VLIW(Very Long Instruction Word) 형 CPU 코어를 80 코어 탑재하고, 온 다이의 메쉬 네트워크로 연결했다. 리서치의 테마는, on-chip 네트워크나 코어의 제어 등이었다.

  이번, Intel는 CPU 코어수를 48개로 줄인 제2세대의 리서치 칩으로서 SCC를 냈다.이 칩의 목적은, 프로그래밍 모델이나 전원 관리의 검증이며, 전회의 리서치보다 한 걸음 진행되었다.덧붙여서, Intel는 제3세대의 칩의 설계를 진행하고 있어, 벌써 에뮬레이션으로 진행중에 있다고 한다.



  제2세대의 SCC 칩은, 프로그래밍 모델의 검증이 큰 목적이기 위해, CPU 코어도 바뀌었다.전회와 같은 VLIW의 특수한 FP(부동 소수점 연산) 코어가 아니고, IA-32(x86) 계의 명령 세트의 코어를 Intel는 선택했다.코어수가 줄어 든 이유의 하나는, CPU 코어 사이즈가 커졌기 때문에라고 추측된다.프로그래밍 모델로 진행된 것으로, 전회의 제1세대 칩(NoC)보다, 이번 제2세대가, Intel의 장래의 CPU의 모습이 보이기 쉽다.즉, 장래의 Larrabee등이, 어떤 방향을 향해 가는지, 점칠 수 있다.




●거대한 몬스터 칩 
 Intel 의 48 코어 SCC의 CPU 코어 자체는 Pentium(P54C) 클래스.명령을 그대로의 순서로 실행하는 In-Order(인 오더) 실행으로, 최대 2 명령을 병렬 실행할 수 있는 2-way superscalar의 코어다.Pentium와의 큰 차이는, L1캐쉬가 8 KB에서 16 KB로 증가된 것이라고 한다.덧붙여서, Intel는, 시든 코어라고 하면 Pentium 세대의 코어를 가져오는 경향이 강하다.그래픽스매니코어 CPU「Larrabee」의 제1세대는, Pentium계 코어였다.

 제조 프로세스는 45 nm Hi-K프로세스로, 제1세대의 65nm에서 한세대 진보되었다.아마, Intel는 1 프로세스 세대에 1개씩 리서치 칩을 개발하고 있다고 생각된다.라고 하면 2년 뒤에 리서치 칩이 나오게 된다.

  리서치 칩으로는, 48개의 코어는 2 코어씩 쌍으로 되어, 1개의 클러스터를 형성하고 있다.클러스터는「타일(Tile)」이라고 불리고 있어 P54C계의 CPU 코어가 2개 외에, 각각 256 KB의 L2캐쉬, 라우터등이 포함되어 있다.다이 사진으로 밝혀지듯이, 칩 전체로 24 타일이 4×6의 구성으로 전면에 깔 수 있고 있다.


  타일끼리는 2D메쉬형의 네트워크로 접속되고 있어 타일안에 온 다이 라우터가 갖춰져 있다.이 구조는, 제1세대의 리서치 칩 NoC와 공통되고 있다.다른 타일이나 메모리, 시스템 인터페이스에의 액세스는, 모두 이 온 다이 라우터를 경유해 2D메쉬 네트워크로 행한다.

  또, 4 채널의 DDR3 메모리인터페이스가 칩 양단에 있어, 시스템 인터페이스와 각종 I/O가 아래쪽 면에 배치되어 있다. 개개의 타일의 트랜지스터 카운트는 4,800만(48 M)으로, 면적은 18.7평방 mm.칩 전체로의 트랜지스터 카운트는 13억(1.3 B)으로, die size는 567평방 mm.die size에서는, 서버 CPU 클래스의 몬스터 칩이다.



●멀티 코어와는 크게 다른 매니코아 

 48 코어 SCC의 큰 특징은 2개.

  하나는, 코어간의 캐쉬 coherency를 위한 하드웨어를 실장하지 않았던 것.보통 PC&서버를 위한 멀티 코어 CPU와 같은, CPU 코어간으로의 캐쉬 coherency의 보관 유지는 행해지지 않다.이것은, 같은 매니코어에서도 하드웨어로 캐쉬 coherency를 취하는 Larrabee와는 컨셉이 다르다. 하드웨어 coherency가 없는 아키텍쳐로의 프로그래밍 모델의 탐구가 테마의 하나라고 볼 수 있다.

  이제 하나는, 동작 주파수&전압의 동적 변환에 의한 전력 절약 제어(Dynamic Voltage and Frequency Scaling:DVFS)를 실장한 것.즉, Intel의 PC&서버 CPU에 실장되고 있는, SpeedStep 테크놀러지를 매니코아에도 가져왔다.덧붙여서, 초대 Larrabee에는, 코어 단위의 SpeedStep는 실장되어 있지 않았다고 한다. CPU 코어수가 증가하면, 코어 단위의 전압&주파수 제어는 복잡하게 된다.이것도 중요한 리서치 테마다.

 Intel 에 의하면, 캐쉬  coherency 하드웨어를 실장하지 않았던 것은, 설계의 복잡화를 피해 코어수를 늘렸을 경우의 스케일러빌리티를 확보해, 전력 당의 퍼포먼스의 효율을 올리기 위해라고 한다.캐쉬 coherency는, coherency를 취하는 노드수가 증가하면 증가할수록 무거워진다.바스트라힉크를 먹어, 전력 효율을 악화시켜, CPU 코어수를 늘리는 경우의 병목현상이 된다.

  거기서, 48 CPU 코어 SCC로 Intel는, 과감히 coherency는 제외했다.48개의 코어는, 뿔뿔이 흩어지게 연결되어 있는 상태다. 이것은, SSC처럼, 각각의 노드가 네트워크로 접속되고 있는 상태에 가깝다.거기서, Intel는 이 칩에, 캐치-호칭으로서 (Single-chip Cloud Computer=SCC)라고 붙였다.

●메세지 패싱에 최적화된 하드웨어 

  그렇다고는 해도, 어플리케이션을 분산해 동작하게 하려면 , 노드간에 어떠한 데이터 쉐어를 할 수 없으면 안 된다.거기서, Intel는 2개의 수법을 옵션으로서 상정했다.하나는, 메세지 패싱(Message Passing), 이제(벌써) 하나는, (Shared Virtual Memory)다. 노드간에 메세지를 송수신 하는 통신과 각 노드의 프라이베이트메모리스페이스의 사이에 버추얼에 공유메모리 스페이스를 설정해 데이터를 공유한다.

  어느쪽이나, 이전부터 있는 수법이지만, 48 코어 SCC에서는, 메세지 패싱에 대해서는, 궁리를 베풀었다.메세지 패싱을 하드웨어 액셀러레이트 하는 기구를 싣는 것으로, 지극히 저지연시간으로 메세지 패싱을 실현할 수 있게 되었다고 한다.즉, 메세지 패싱에 대해서 최적화되고 있는 것이다.ISSCC로의 논문 타이틀도「A 48-Core IA-32 Message-Passing Processor with DVFS in 45 nm CMOS」라고, 메세지 패싱과 전력 절약 기구가 구가해지고 있었다.


코어간의 데이터의 공유 방법
 메세지 패싱의 하드웨어 지원화는, 48 코어 SCC의 설계와 밀접하게 결합되고 있다.

  타일내의 2개의 CPU 코어의 사이에는, 16 KB의「메세지 패싱 버퍼(Message Passing Buffer=MPB)」이 끼고 있다.이 MPB가, 메세지 패싱을 위한 하드웨어 기구로, 2개의 CPU 코어와 라우터를 접속하고 있다.덧붙여서, 이 메세지 패싱 버퍼는, Intel의 특허「US Patent 7210022 Apparatus and method for interconnecting a processor to co-processors using a shared memory as the communication interface」에 기술되고 있던 것과 잘 비슷하다.

 MPB 로 버퍼 한 메세지는, 타일안의 코어간 뿐만이 아니라, 2 D메쉬 네트워크를 경유해 다른 타일의 코어에도 전송 할 수 있다.메모리를 경유하지 않고 , 코어간에 다이렉트에 메세지 패싱이 행해지기 위해, 지극히 단지연시간이 된다.


●L1캐쉬로부터 L1캐쉬로 메세지를 전송 
 MPB 는, 아키텍쳐상은 분산 공유메모리로서 사용된다.각 타일에 16 KB로, 이것은 각 코어의 L1캐쉬와 동사이즈, 칩 전체로 384 KB가 된다.어느 코어의 L1캐쉬로부터 MPB에 격납된 메세지가, 별도인 코어의 L1캐쉬로 전송 된다.

 Intel는, 메세지 패싱을 위한 소프트웨어 라이브러리를 준비한다.ISSCC로 강연한 Jason Howard씨는, 공유메모리 라이브러리의 프로토콜은 Cray의 SHMEM에 인스파이어 되었다고 설명하고 있었다.

 48 코어 SCC에서는, 새로운 멧세이지팟싱메모리타이프(Message-Passing Memory Type:MPMT)가 도입되었다.이것은, 실제의 강연 슬라이드에서는 메세지 패싱 데이터 타입(MPDT)이 되고 있어 최종적으로 어느 쪽의 용어가 사용될지 모른다.메세지를 전송 하는 경우는, 우선, 데이터를 쓰는 MPMT 캐쉬 엔트리를 무효화한다.캐쉬 엔트리를 싱글 클락으로 무효화할 수 있는, 새로운 명령 MBINV가 더해지고 있다.

  다음에 L1캐쉬의 캐쉬 라인의 데이터를, L1상의 MPMT 캐쉬 라인으로 쓴다.이것은 실제로는, MPB에 써진다.메세지의 전송처의 코어에서는 반대의 프로세스로, MPB나 데이터가 L1에 읽어내진다.덧붙여서, LookUp Table (LUT)도 확장되어 256 엔트리안에 MPB가 맵 되어 주소 트랜슬레이션과 라우팅인포메이션도 격납할 수 있게 되어 있다.

  이러한 구조 때문에, 메세지는 마치 있는 코어의 L1캐쉬로부터 별도인 코어의 L1캐쉬에 다이렉트에 전송 된 것처럼 보인다.Intel에 의하면, 외부 메모리를 경유했을 경우에 비해, 지연시간은1/15이 된다고 한다.지연시간이 단축될 뿐만 아니라, 칩메모리에의 액세스도 줄일 수 있다.



●버추얼 공유메모리로 입도의 큰 데이터 전송을 

  메세지 패싱을 하드웨어로 서포트하는 한편, 쉐어드바체르메모리는 소프트웨어로 서포트한다.회로설계 컨퍼런스인 ISSCC에서는, 소프트웨어 실장의 쉐어드바체르메모리에 대한 설명은 없었다.그러나, 각 코어가 프라이베이트메모리스페이스를 가지는 메모리 메니지먼트의 구조에 대해서는 언급이 있었다.

  프라이베이트메모리스페이스 중(안)에서의 코어내의 캐쉬의 coherency는 하드웨어로 유지되지만, 코어간에는 하드웨어 지원은 없다고 한다.Intel는, 48 코어 SCC에서는, 쉐어드바체르메모리를 페이지 레벨로 coherency를 취하면 작년 12월에 설명하고 있다.Intel는 최근, Larrabee와 메인 CPU의 사이에 쉐어드바체르메모리를 적용하는 설명을 하고 있다.거기에 따르면, 아마 다음과 같이 된다.

  각 CPU 코어는 각각 프라이베이트메모리 공간을 가지지만, 일부의 주소를 바체르메모리메카니즘 위에서 공유한다.쉐어드바체르메모리상의 데이터는, 복수의 CPU 코어간에 쉐어 되지만, coherency가 소프트웨어로 유지된다.그러나, 작은 캐쉬 라인 단위가 아니고, 큰 메모리페이지 단위로 관리하는 것으로 오버헤드를 줄인다.

●SpeedStep의 전압과 주파수의 제어를 매니코어에 적용 
 48 코어 SCC의 이제(벌써) 1개의 큰 특징은, 전력 절약 기능이다.매니코어로 SpeedStep 좋아하는 동적 전압&주파수 변환(Dynamic Voltage and Frequency Scaling:DVFS)을 서포트하기 위해서, 몇개의 궁리가 더해지고 있다.

  우선, CPU 전체는 8개의 볼티지 아일랜드(Voltage Islands:VI) 로 분리되고 있다.4개의 타일(8개의 코어)을 1개의 아일랜드로 해 정리하고 있어 그 외에, 2 D메쉬 네트워크와 인터페이스 회전에, 각각의 아일랜드가 있다.메쉬 네트워크의 아일랜드가 VI0, 타일의 아일랜드군이 VI1~VI6, 인터페이스 회전이 VI7가 되고 있다.각각의 볼티지 아일랜드는, 개별의 전압으로 동작시키는 것이 가능하고, 이 중, VI0~VI6는 동적으로 스케일 할 수 있다.




8개의 볼티지 아일랜드
 48 코어 SCC에서는, 전압의 동적인 스케일을 원활히 행하기 위해서「Voltage-Regulator Controller :VRC)」을 온 다이로 실장했다.즉, 칩상에, 볼티지 레귤레이터를 제어하는 콘트롤러를 탑재했다.또, 코어측으로부터 VRC에 발행하는 볼티지 체인지 커멘드(Voltage-Change Command)도 준비했다.

  어플리케이션이 네트워크를 통해서 VRC에 커멘드를 발행한다.그러자(면) VRC가 볼티지 레귤레이터를 제어해 전압을 변동시킨다.아이돌 상태에서는 전압은 CPU 코어의 스테이트를 보관 유지할 수 있는 한계의 700 mV에 내린다.게다가 CPU 코아스테이트를 유지하지 않는 완전한 오프 상태로 하는 경우에는 0 V에 내릴 수도 있다.최고는 1.3 V로, 6.25 mV조각으로 스케일 할 수 있다고 한다.전압의 변환은 밀리 세컨드 이하로 행해진다고 한다.

  한편, 동작 주파수는 주파수 아일랜드(Frequency Island :FI) 단위로 교체된다.이쪽은, 쭉 입도가 작고, 1개의 타일이 1개의 주파수 아일랜드가 되고 있다.24 타일로 24의 아일랜드와 메쉬 네트워크, 메모리인타페이스, 시스템 인터페이스, VRC 각각의 아일랜드에서 합계 28의 아일랜드가 된다.20 ns이하로 주파수의 변환이 생긴다고 한다.

 동작 주파수는 개별적으로 바꾸어 할 수 있지만, 전압은 8 코어(4 타일)가 1 세트로 같은 전압으로 동작한다.필연적으로, 소프트웨어는 코어의 물리적인 배치에 배려하고 태스크를 배분할 필요가 나온다.

  이러한 전력 절약화의 결과, 코어 1GHz 동작시(1.14 V)에 125 W와 몬스터 칩이면서, 일정한 소비 전력의 범위내에 넣는 것에 성공하고 있다.
코어의 주파수를 125 MHz에까지 떨어뜨리면 0.7 V로 25 W가 된다.즉, 동작시에는, 25 W에서 125 W의 사이에 추이하게 된다.





반응형

댓글