벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] Intel 48코어 매니코어 연구 칩 기술 공개

tware 2010. 2. 16. 21:00

 

매니 코어 리서치 칩 제 2세대


 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 코어 탑재하고, 온다이 메쉬 네트워크로 묶었다. 리서치 테마는 온칩 네트워크와 코어의 제어 등이었다.

 이번에 Intel은 CPU 코어 수를 48개로 줄인 2세대 리서치 칩으로 싱글 칩 클라우드 컴퓨터 (SCC)를 내놨다. 이 칩의 목적은 프로그래밍 모델이나 전력 관리 검증이며, 지난번 연구보다 한걸음 나아갔다. 참고로, Intel는 3세대 칩의 설계를 진행하고 있으며, 이미 에뮬레이션으로 달리고 있다고 한다.

 

 

1세대 "Network-on-Chip (NoC)"

 

 

 

1 칩으로 테라 플롭스 (TFLOPS)의 연산 성능을 실현한 실험 칩

 


 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 슈퍼 스칼라 코어이다. Pentium과 큰 차이는 L1 캐시가 8KB에서 1​​6KB로 배로 늘어난 것이다. 참고로, Intel은 원숙한 코어라 말하는 Pentium 세대의 코어를 가져오는 경향이 강하다. 그래픽 매니코어 CPU "Larrabee"의 제 1세대도, Pentium 계 코어였다.

 제조 공정은 45nm Hi-K 공정으로 제 1세대 65nm에서 1세대 진보됐다. 아마 Intel은 1 공정 세대에 1개씩 리서치 칩을 개발하고 있는 것으로 보인다. 그렇다면 2년 간격으로 리서치 칩이 나오게 된다.

 리서치 칩에서 48개의 코어는 2코어씩 짝이되어, 하나의 클러스터를 형성하고 있다. 클러스터는 "타일 (Tile)" 이라 부르며, P54C 계의 CPU 코어가 2개 이외에, 각각 256KB의 L2 캐시, 라우터 등이 포함되어 있다. 다이 사진에서 알 수 있듯이, 전체 칩은 24 타일이 4 × 6의 구성으로 펼쳐져 있다.

 

다이 사진

 

 

 타일​​ 끼리는 2D 메쉬 형의 네트워크로 연결되어 있고, 타일 안에 온 다이 라우터가 갖춰져 있다. 이 구조는 제 1세대 리서치 칩 NoC와 공통이다. 다른 타일이나 메모리, 시스템 인터페이스에 대한 액세스는 모두 이 온 다이 라우터를 통해 2D 메쉬 네트워크로 행한다. (라라비나 1세대 제온파이와 다름. 라라비 ~ 나이츠코너는 링버스 방식)

 또 4 채널의 DDR3 메모리 인터페이스가 칩 양단에 있고, 시스템 인터페이스와 각종 I / O가 하단에 배치되어 있다. 각각의 타일 트랜지스터 수는 4800만 (48M)으로, 면적은 18.7 제곱 mm. 칩 전체의 트랜지스터 수는 13억 (1.3B)으로, 다이 크기는 567 제곱 mm. 다이 사이즈로는 서버 CPU 클래스의 몬스터 칩이다.

 

SCC 구조

 

 

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

 

48코어 SCC의 큰 특징은 2가지.


 하나는 코어 간의 캐시 코히런시를(일관성) 위한 하드웨어를 구현하지 않은 것. 일반 PC & 서버용 멀티 코어 CPU 같은, CPU 코어 간의 캐시 코히런시의 유지는 하지 않는다. 이것은 같은 매니코어로도 하드웨어 캐시 코히런시를 갖는 Larrabee와는 개념이 다르다. 하드웨어 코히렌시 없는 아키텍처에서의 프로그래밍 모델의 탐구가 테마 중 하나로 보인다.

 또 하나는 동작 주파수 및 전압의 동적 변환에 의한 절전력 제어 (Dynamic Voltage and Frequency Scaling : DVFS)를 구현 한 것. 즉, Intel의 PC & 서버 CPU에 구현된 Speed​​Step 기술을 매니 코어로도 가지고 왔다. 참고로, 초대 Larrabee는 코어 단위의 Speed​​Step은 구현되어 있지 않았다고 한다. CPU 코어 수가 늘어나면 코어 단위의 전압 및 주파수 제어는 복잡해진다. 이것도 중요한 리서치 테마다.

 Intel에 따르면, 캐시 코히런트 하드웨어를 구현하지 않은 것은 설계의 복잡성을 피하고 코어 수를 늘린 경우의 스케러빌리티를 확보하고, 전력 당 성능 효율을 업하기 때문이라 한다. 캐시 코히런시는 코히런시를 취하는 노드 수가 늘어나면 늘어날수록 무거워진다. 버스 트래픽을 먹고, 전력 효율을 악화시키고, CPU 코어 수를 늘리는 경우 병목 현상이 된다.

 그래서 48 CPU 코어 SCC에서 Intel은 과감히 코히런시는 제외했다. 48개의 코어는 제각각 연결된 상태다. 이는 클라우드 컴퓨팅에서, 각각의 노드가 네트워크에 연결되어 있는 상태에 가깝다. 그래서 Intel은 이 칩에 익숙한 호칭으로 싱글 칩 클라우드 컴퓨터 (Single-chip Cloud Computer = SCC)라고 붙였다.

 


메시지 전달에 최적화 된 하드웨어

 

 이렇게 말하지만, 응용 프로그램을 분산하고 달리게 하려면 노드간에 어떠한 데이터 공유가 가능해야 한다. 그래서 Intel은 두 가지 기술을 옵션으로 상정했다. 하나는 메시지 패싱 (Message Passing), 다른 하나는 공유 가상 메모리 (Shared Virtual Memory)이다. 노드간에 메시지를 송수신하는 통신과 각 노드의 전용 메모리 공간 사이에서 가상의 공유 메모리 공간을 설정하고 데이터를 공유한다.

 모두 이전부터 있는 수법이지만, 48코어 SCC에서는 메시지 전달에 대해서는 연구를 했다. 메시지 패싱을 하드웨어 가속하는 기구를 올리는 것으로, 매우 낮은 레이턴시(지연 시간)로 메시지 패싱을 실현할 수 있게 되었다 한다. 즉, 메시지 전달에 최적화 했다는 뜻이다. ISSCC에서 논문 제목도 " A 48-Core IA-32 Message-Passing Processor ​​with DVFS in 45nm CMOS "로, 메시지 패싱과 및 절전력 기구가 강조되고 있었다.

 

코어 간의 데이터 공유 방법

 


메시지 패싱의 하드웨어 지원화는 48코어 SCC의 설계와 밀접한 관계가 있다.

 타일​​내의 2개의 CPU 코어 사이에는 16KB의 "메시지 패싱 버퍼 (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에서 버퍼된 메시지는 타일 안의 코어간 뿐만 아니라 2D 메쉬 네트워크를 경유해 다른 타일의 코어에도 전송 가능하다. 메모리를 경유하지 않고 코어간에 직접 메시지 패싱이 처리되기 때문에 매우 짧은 레이턴시가 된다.

 

MPB를 갖춘 구조

 


L1 캐시에서 L1 캐시로 메시지를 전송


 MPB는 아키텍처상 분산 공유 메모리로 사용된다. 각 타일에 16KB로, 이것은 각 코어의 L1 캐시와 같은 사이즈, 칩 전체로 384KB 이다. 어떤 코어의 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에서는 소프트웨어 구현의 공유 가상 메모리에 대한 설명은 없었다. 그러나 각 코어가 전용 메모리 공간을 가져 메모리 관리 구조에 대해서는 언급이 있었다.

 전용 메모리 공간에서의 코어의 캐시 코히런시는 하드웨어로 유지되지만, 코어 간에는 하드웨어 지원은 없다고 한다. Intel은 48코어 SCC에서는 공유 가상 메모리 페이지 수준에서 코히런시를 취한다고 작년 12월에 설명했다. Intel은 최근 Larrabee와 메인 CPU 사이에 공유 가상 메모리를 적용하는 설명을 하고 있다. 그것에 따르면, 아마도 다음과 같다.

 각 CPU 코어는 각각 전용 메모리 공간을 가지지만, 일부의 주소를 가상 메모리 메커니즘상에서 공유한다. 공유 가상 메모리의 데이터는 복수의 CPU 코어간에 공유되는데, 코히런시가 소프트웨어로 유지된다. 그러나 작은 캐시 라인 단위가 아닌 큰 메모리 페이지 단위로 관리하는 것으로 오버 헤드를 줄인다.

 


Speed​​Step의 전압과 주파수 제어를 매니 코어에 적용


 48 코어 SCC의 또 하나의 큰 특징은 절전 기능이다. 매니 코어에 Speed​​Step 비슷한 동적 전압 및 주파수 전환 (Dynamic Voltage and Frequency Scaling : DVFS)을 지원하기 위해 몇가지 연구가 더해지고 있다.

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

 

각각 전압이 조절 가능한 블록

 

 

 

8 개의 볼테지 아일랜드

 


 48 코어 SCC에서는 전압의 동적 스케일을 원활히 하기 위해 "Voltage-Regulator Controller : VRC) "를 온 다이로 구현했다. 즉, 칩상에 볼테지 레귤레이터를 제어하는​​ 컨트롤러를 탑재했다. 또 코어 측으로부터 VRC로 발행하는 전압 변경 명령​​ (Voltage-Change Command)도 준비했다.

 어플리케이션이 네트워크를 통해 VRC에 명령을 발행한다. 그러면 VRC가 전압 레귤레이터를 제어하고 전압을 변화시킨다. 아이들 상태에서의 전압은 CPU 코어의 스테이트를 유지 가능한 한계 700mV로 낮춘다. 여기에 CPU 코어 스테이트를 유지하지 않는 완전한 오프 상태로 하는 경우에는 0V로 낮출 수 있다. 최고는 1.3V에서 6.25mV 단위로 스케일 가능하다 한다. 전압 전환은 밀리 초 이하로 이뤄진다.

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

 동작 주파수는 개별적으로 바꿀수 있지만, 전압은 8코어 (4타일)가 1 세트로 같은 전압으로 동작한다. 필연적으로 소프트웨어는 코어의 물리적인 배치에 배려해 작업을 배분할 필요성이 생긴다.

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

 

SCC의 전압과 동작 클럭

 

 

 

SCC의 특징

 

2010년 2월 16일 기사

 

 

[분석정보] Intel 48 코어 IA 프로세서를 개발

 

 

[분석정보] Intel CPU의 미래가 보이는 80코어 TFLOPS 칩

 

 

[분석정보] Intel의 Larrabee에 대항하는 AMD와 NVIDIA

 

 

[분석정보] 정식 발표된 라라비(Larrabee) 아키텍처

 

 

[분석정보] Intel CTO 래트너 Tera-Scale Computing에 대해 설명

 

 

[분석정보] 고속화를 가져오는 Radix-16 Divider와 shuffle Engine