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

[아키텍처] Intel의 차기 CPU "Nehalem"의 설계 개념은 "1 for 1"

tware 2008. 4. 24. 11:32

 

 

Nehalem CPU 코어 자체의 확장은 증분

 Intel이 올해 (2008 년) 4 분기에 투입하는 것이, 차기 CPU 마이크로 아키텍쳐 "Nehalem (네할렘)" 이다. Intel은 4월 2 ~ 3 일에 중국 상하이에서 개최한 기술 컨퍼런스 "Intel Developer Forum (IDF)" 에서 Nehalem 마이크로 아키텍처의 개요를 밝혔다. 거기서 여준 것은, 현재의 Core Microarchitecture (Core MA)의 전력 효율성을 유지하면서, 하이 엔드 시스템용으로 성능의 상한을 높인 마이크로 아키텍처 였다.

 Nehalem은 완전히 새로운 마이크로 아키텍처라는 뜻은 아니다. 현행 Core MA를 기반​​으로 확장하고 있다. 그것도 Core MA의 골격 부분에는 거의 손을 대지 않고 계승했다. 바궈 말하면, 그만큼 Core MA의 높은 전력 효율을 크게 여기고 있다. Core MA의 베이스라인은 개혁하지 않고, 멀티 스레딩 기술 SMT (Simultaneous Multithreading)를 시작으로 한, 성능을 올리는 다양한 테크닉을 더해, 새로운 캐시 계층과 노스 브릿지 (MCH / GMCH) 기능을 통합한 것이 Nehalem 이라고 말해도 좋다.

 

 이것은 AMD의 "K7 (Athlon 계)"에서 "K8 (Athlon 64 계)"의 진화와 매우 비슷하다. K7 ->  K8의 경우도, CPU 코어 자체는 동일한 베이스라인의 마이크로 아키텍처를 개량. 성능은 마이크로 아키텍처의 개량에 플러스로, 메모리 인터페이스와 고속 I / O 통합에 의해서 얻었다. 같은 것이 Core MA에서 Nehalem으로의 진화에서도 진행된다.

 

 

Core MA와 Nehalem의 차이

 

아래쪽의 차트는 IDF의 설명과 인터뷰를 바탕으로 한 Nehalem의 블록도다. 일부 추정이 들어가 있다. 이것을 Nehalem의 그림에 맞게 고쳐 쓴 Core MA의 블록 다이어그램 (일부 추정)과 비교하면 기본적인 부분에서 Nehalem이 Core MA를 계승하고 있는 것을 잘 알수 있다.

 

 

Nehalem Architecture Block Diagram

 

 

 

Core Architecture Block Diagram

 

 

1 대 1의 철학에서 확장 된 Nehalem

 

Nehalem는 Core MA에서의 진화계이기 때문에, 현재의 CPU 코어에서도 가장 중요해 진, 성능/소비 전력의 높이는 계승되고 있다. Nehalem에서 더해진 확장도, 전력 효율을 악화시키지 않도록 신중하게 선택했다고 한다. Nehalem의 개발 디렉터인 Jim Brayton 씨 (Director, Enterprise Microprocessor ​​Group and Design Manager, Nehalem Family CPU Development, Intel)는 다음과 같이 설명했다.

 

 

Jim Brayton


 "Nehalem 설계에 있어서는, 우리는 자사의 컴퓨터 아키텍트로 부터 제안 된 수백개의 아이디어를 조사했다. 우리가 Nehalem의 설계에 더해져도 좋다고 생각한 것은, 그 중에서도 가장 효율적인 것 뿐이다.

 우리는 Silverthorne (Atom 프로세서)에서는 "일대일 전력 효율 (1 for 1 power efficiency)"의 원칙으로 기능을 더했다. 1%의 성능 향상을 1%의 전력 범위 내에서 실현한다는 것이다. 같은 효율을 Nehalem에 편입할 기능에 대해서도 추구했다. 즉, 1%의 전력과 (트랜지스터) 비용마다, 적어도 1%의 성능 향상을 얻을 수 있는 눈부시게 전력 효율이 좋은 기능만을 Nehalem에 선택했다 "

 

 

Nehalem 개발을 담당한 Digital Enterprise Group을 지휘하는 Intel의 Patrick (Pat) P. Gelsinger (팻 · P · 겔싱어) 씨 (Senior Vice President and General Manager, Digital Enterprise Group)도 다음과 같이 요약한다.

 

 

Patrick P. Gelsinger


 "우리가 마이크로 아키텍처에 더한 것은, 모두 1%의 (비용, 즉 회로) 추가로, 1% 이상의 성능을 실현 가능한 것 뿐이다. 마이크로 아키텍처 수준에서 일일이 장단점을 검토했다"

 1 대 1 이상의 효율로 확장했다고 하면, Nehalem은 Core MA에 비해서 성능/소비 전력의 비율이 조금이라도 나빠질 기능은 구현하지 않은 것이 된다. Intel은 NetBurst (Pentium 4)에 비하면 Pentium M에서는, 성능/소비 전력의 비율을 1 이상으로 올리는 것을 테마로 했다. 그러나 전력효율을 향상한 Core MA에 비해서, Nehalem은 그 효율을 유지하는 데 초점을 두고 있다.

 

 

하이엔드 성향으로 조정된 Nehalem

 이 1 대 1의 전력 효율 원칙은 Nehalem의 설명에서 각 레벨의 담당자로 부터 종종 인용되고 있어, Nehalem의 중요한 설계 지침이 되고 있는 것이 엿 보인다. 따라서 원칙적으로는 Nehalem에서 Core MA보다 전력 효율이 나빠지지 않을 것이다.

 다만 Nehalem의 확장에는 어느 지향성이 있어, 따라서 Core MA와는 성격이 약간 다른 부분도 있다. Nehalem 쪽이 더 서버 & 하이 엔드 PC에 최적화 되어 있다. 멀티 스레드 화가 진행되면서, 메모리 대역으로의 압박이 커지고, 프로그램 크기가 커지고, 미디어 데이터 등의 처리나 반복이 많은 소프트웨어 환경에 적합하다. 또 멀티 프로세서로의 확장성은 Nehalem 쪽이 Core MA보다 훨씬 높다.

 따라서 Core MA -> Nehalem에서 얻게되는 성능 향상은, 하이 엔드 데스크톱 PC나 서버 & 워크스테이션 쪽이, 메인 스트림으로 부터 아래의 PC 또는 노트북 보다 훨씬 커질 것이다. 즉, 1 대 1의 효율로 늘린 성능이, 하이엔드 시스템에서 살리는 부분으로 약간 치우쳐 있는 것으로 보인다. 이것을 대 AMD 시점에서 보면, 성능과 확장성의 이점이 있던, AMD에 일시 침식된 서버 시장을 회수하고 다진다는 점에서 유리하다 (서버 시장이 침식됐다고 하지만, 점유율은 인텔이 훨씬 큽니다. 일부 빼았겼다는 겁니다.).

 이 부분에는, Nehalem 개발을 담당한 것이, Intel의 Digital Enterprise Group 이라는 사정이 관계되어 있다고 추측된다. 모바일에도 적용 가능한 전력효율을 유지하고 있지만, 어느쪽인가 라고 말하면, 하이엔드 데스크톱 PC나 서버에서의 이점이 크다. Nehalem은 그러한 CPU일 가능성이 높다. 짐작해 보면, Core MA로 Intel 내부에서의 지위를 높인 Intel Mobility Group에 대한 "Digital Enterprise Group의 역습"인지도 모른다.

 특히 성능면에서 영향이 큰 것은, Nehalem 패밀리의 상위 및 하위에서 구현에 큰 차이가 있는 점이다. 상위의 Nehalem은 CPU에 온다이 (On-Die)로 노스 브릿지 (MCH) 기능을 통합하고 있으며, 따라서 저 레이턴시 메모리 액세스나 광대역 메모리를 실현할 수 있다. 반면 하위의 GPU 코어 통합판의 듀얼 코어 CPU "Havendale / Auburndale (헤븐데일 / 오번데일)"은 현재 판명된 바로는, 패키지상에 CPU 코어와 노스 브릿지 (GMCH) 코어를 QuickPath Interconnect (QPI)로 접속되어 있다. 온 패키지의 접속이므로 광대역 액세스가 가능하지만, 온다이 통합에 비하면 레이턴시나 소비 전력에서는 불리하다. Nehalem의 성능 업의 어느정도의 부분이, 노스 브릿지 (MCH)의 통합에 의한 것이라고 하면, 하위 Nehalem에서는 그 혜택은 옅어지게 된다.

 

Havendale과 Auburndale의 System Architecture

 

 

 

Nehalem 패밀리의 내부 구성

 

 

 하지만, Core MA의 전력 효율은 유지되고, 한층 Nehalem에서는 회로 설계 등의 개량에 의해서, Core MA보다 저전압 화가 가능하게 되어 있다. 따라서 Intel이 Nehalem을 모바일에도 전면적으로 투입한다는 설명도 설득력이 있다. Intel의 모바일 부문 책임자인 David (Dadi) Perlmutter 씨 (Executive Vice President, General Manager, Mobility Group)는 다음과 같이 말했다.

 

 

David Perlmutter


 "Nehalem은 현재와 같은 열 설계 범위를 유지한다. 현재 위는 쿼드코어판의 Core 2 Quad가 약 90W로 아래는 Core 2 Duo가 10W로 미니 노트북 PC에 들어있다. 이것 처럼 될 것이다 " Nehalem은 10W 범위의 ULV (초저전압) 듀얼 코어까지 커버하는 것 같다.

 

Nehalem, 유연성을 위한 모듈 디자인

 

 

 

효율성과 확장성을 위한 코어 디자인

 

 

명령어 페치로부터 디코드까지의 기본적인 구조는 Core MA와 동일

 

 

 

Ronak Singha

 

 Nehalem 마이크로 아키텍처의 골격 부분은, Core MA의 구조를 거의 그대로 사용하고 있다. 아래는 파이프 라인의 선두에 위치하는, 명령 페치로부터 명령 디코드까지의 "프론트 엔드" 부분의 차트이다. Nehalem의 리드 아키텍트의 한명인 Ronak Singhal 씨 (Principal Engineer, Oregon CPU Architecture, Intel)에게 명령 페치, 프리 디코드, 디코드의 각 스테이지의 구조에 대해서, 아래의 그림을 보여서 각각 확인했다. 어느 부분도 그림처럼 "Core MA와 같은 모양이다"(Singhal 씨)라고 한다.

 

 프론트엔드는, 다양한 성능 확장 테크닉은 더해졌지만, 기본적인 구조는 Core MA의 그대로인 것이 판명된다. Core MA는 프런트엔드에 몇 가지 약점을 안고 있지만, Nehalem도 다수를 계승한다. 약점을 포함해서, Core MA의 프런트 엔드를 거의 답습한 설계로 되어있다. 이 점이 중요한 것은 x86 계 CPU에서는 프런트 엔드의 설계가 열쇠가 되기 때문이다.

 

 

Nehalem의 페치와 디코드의 흐름

 

 x86 명령의 실행에서 가장 성가신 것은 명령 디코더 부분이라고 말한다. RISC나 IA-64의 경우 명령는, 명령 길이가 고정 또는 적은 종류에 한정되어 있어, 명령 포맷도 일정하다. 따라서 명령 디코드의 로직은 간단히 끝난다. 그러나 x86 계 명령의 경우, 명령 길이는 변화가 많다, 한층 오피코드의 앞에 접두사가 붙는 경우가 있기 때문에, 명령 포맷도 복잡하다.

 x86 CPU 메이커의 Centaur Technology를 이끄는 Glenn Henry (글렌 헨리) 씨 (President and Founder)는 "재미있는 접두사 (Funny Prefixs)가 x86 명령의 디코드를 매우 어렵게 하고 있다"고 말했다. 따라서 x86 아키텍처에서는 명령 디코드는 매우 복잡해서, 시간이 많이드는 처리다.

 파이프 라인 전체를 보면, x86계 CPU의 경우는, 명령 실행 수준에서 명령어 병렬성을 늘리는 것은 상대적으로 간단하다. 보다 많은 실행 유닛을 병렬화하고, 스케쥴링 가능한 명령 윈도우를 넓혀, 리네임 레지스터나 버퍼를 깊게하면, 어느정도 까지는 병렬성을 높이는 것이 가능하다.

 

그런데 스케줄러로 보내는 명령을 반출해 디코드 하는 단계에서, 병렬성을 늘리는 것은 x86 명령어의 경우는 어렵다고 한다.

 따라서 x86 CPU의 경우는, 명령어 캐시부터 x86계 명령을 효율좋게 반출해서, 내부 명령 (uOPs)으로 효율 좋게 변환하는 것이, 성능 향상에 중요한 과제가 된다. 특히 CPU 내부의 실행 파이프 라인의 병렬도를 높이려고, 하면 프론트엔드 병목이 되기 쉽다. 최대 4명령 병렬과 내부 병렬도가 높은 Core MA / Nehalem에서는, 이 문제는 특히 크다. AMD의 CTO에서 사직을 전한 Phil Hester (필 헤스터)씨도 "4 명령을 실행하기 보다, 4명령을 디코드 하는 쪽이 어려울 것이다"라고 말했다.

 


 프런트 엔드의 근본적인 확장은 진행하지 않은 Nehalem

 이러한 배경이 있기 때문에, Nehalem 마이크로 아키텍처에는, 프론트엔드가 어떻게 확장되어 있는지가 하나의 포인트가 된다. 작년 (2007년) 가을, 프론트 엔드의 개량은 어느 시점에서 할 것인지 라고 Intel의 Shmuel (Mooly) Eden 씨 (Vice President, General Manager, Mobile Platforms Group, Intel)에게 질문한 때에는 다음과 같이 대답했다.

 "Penryn의 개량은 훌륭하지만, 그것은 어디까지나 제한된 "성형 수술 "과 같은 것이다."심장 수술 "처럼, 모두를 재 아키텍처화 하는 큰 것은 아니다. 큰 변경은 Nehalem에서 진행된다 "

 그러나 결론부터 말하면, Nehalem의 명령 디코더 부분은, 64bits 모드에서 Macro-Fusion이 가능하게 된것 이외에는, 본질적으로 거의 개량되지 않았다. 정확하게 말하면, 문제의 본질적인 부분에는 손을 대지 않고, 문제를 회피하는 테크닉 (uOPs 기반 루프 스트림 디텍터)이나 그 이외의 부분에서 성능을 끌어 올리는 테크닉이 담긴 정도였다.

 Intel은 x86 계 CPU의 명령 패처 & 프리 디코더 & 디코더를 근본적으로 개혁하려고 하면, 방대한 로직 (= 트랜지스터)이 필요하기 때문이라고 한다. 즉, 1 대 1의 전력 효율의 원칙에 비춰 합당하면, 프론트 엔드의 근본적인 확장은 수지에 맞지 않는 것이 됐다는 것이다. x86 CPU의 프론트 엔드의 약점이, x86계 명령셋트 자체의 복잡성에 기인하는 것을 생각하면, 이것은 매우 중요하다. 전력 효율을 높이려고 하면, 프론트 엔드에 보다 많은 명령 & 패치& 디코드 하는 것이 어려운 것을 의미하기 때문이다.

 이렇게 보면 Nehalem은 성능을 끌어올렸지만, x86 명령 실행의 근본적인 곤란함도 부각시킨걸 알 수 있다. x86 명령을 실행하는 것 자체가, 전력 효율을 높이기 어려운 원인이 되고 있다. 그리고 x86 명령의 페치 & 디코드 부분에는 손을 대기 어렵다. Nehalem처럼, 트랜지스터 예산이 있어도, 넘겨야 할 정도로 성가시다는 것이다. Intel은 x86 소프트웨어 자산에 의지한 이상, 차후 이 도전에 계속 직면할 수 밖에 없게 된다.

 논리적으로 이 문제의 최종적인 해결 수단은 " 가능한 페치 & 디코드하지 않게" 하면 될 것 같다. 즉, uOPs로 변환한 후에 버퍼링을 충실히 시켜, uOPs의 재사용을 높이는 것이다. 실제, Nehalem의 루프 스트림 디텍터는, 이 방침으로 uOPs를 버퍼한다. 또 NetBurst (Pentium 4) 마이크로 아키텍처에서는, 방대한 트레이스 캐시로 uOPs를 캐쉬했다. Core MA를 개발한 Intel 이스라엘에 소속된 연구자가 몇 년 전에 발표한 "Power AwaReness thRough selective dynamically Optimized Traces (PARROT) "아키텍처의 논문도, uOPs 수준에서의 최적화와 재이용을 한다는 아이디어 였다.

 이러한 아이디어를 추구해 가면, 코드의 국소성이 높으면 높을수록 성능이 오르게 된다. 루프가 많은, 예를들면 멀티미디어 처리와 같은 경우에서, 보다 성능이 오를 것이다. 이 문제는 CPU의 진화와 성능 향상의 방향도 규정해 갈 것으로 보인다.

 

 

캐쉬메모리 변화

 

 

 

캐쉬메모리 계층 및 레이턴시

 

 

pc.watch

 

 

 

[정보분석] Penryn의 1.5 배 CPU 코어를 가지는 차세대 CPU "Nehalem"

 

 

[아키텍처] Nehalem(네할렘)으로 볼 수 있는 인텔 CPU 마이크로 아키텍처의 미래

 

 

[분석정보] 인텔이 목표하는 네할렘 에서의 GPU와 CPU의 통합

 

 

 

[분석정보] 인텔 네할렘과 AMD 퓨전 양사의 CPU + GPU 통합의 차이

 

 

[분석정보] 계층화가 Nehalem MA의 특징

 


[01년02월06일] 2010년 CPU 소비 전력은 600W?

 

 


메가화 노선을 유지하는 인텔과 팹리스를 목표한 AMD

 

 

[벤치리뷰] 코어 i7 860 리뷰

 

 

[분석정보] IDF에서 공개된 "Nehalem"의 내부 구조