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

[분석정보] 심플 코어로 향하는 차세대 CPU 아키텍처

tware 2006. 8. 21. 21:00

 

CPU 코어의 복잡화에 제동이 걸렸다.


 Intel의 "Tejas (테하스,테자스)"와 "Nehalem (네할렘)", AMD의"K9 " "K10 " x86 계열의 두 CPU 제조사는 지난 몇년 동안 잇따라 차세대 CPU 마이크로 아키텍처의 계획을 취소하거나 검토 / 연기했다. 두 CPU 제조사의 CPU 아키텍처의 방향 전환을 이처럼 여실히 말해주는 것은 없다. (위의 네할렘은 취소된 최초의 네할렘을 말합니다.)

 새로운 방향은 "심플 코어"다. CPU 코어를 지금처럼 복잡하게 해 나가는 것이 아니라 코어는 심플하게 고정.

 CPU 탄생 이​​래 지금까지 컴퓨터용 CPU 메이커는 몇년 간격으로 더 복잡한 새로운 디자인의 CPU 코어를 투입하여 성능을 향상시켜왔다. 그러나 현재 Intel과 AMD 모두 CPU 코어를 더 복잡하게 하는 것 보다 CPU 코어의 복잡함의 증가는 억제하고, 코어를 복수 탑재하는 방향으로 향하고 있다. Intel과 AMD의 경우 이미 복잡한 CPU 코어를 단순화하는 것은 아닐 것이다. 그러나 향후의 성능은 CPU 코어를 복잡하게 하는 것보다 멀티코어화로 얻으려고 하고 있다. 즉, "상대적으로" 심플 코어로 향하고 있다.

 예를 들면, AMD는 "K8 (Athlon 64/Opteron 계)"마이크로 아키텍쳐의 후속으로 'K9'을 개발했지만 이를 취소했다. K9는 아마 아키텍처를 확장한 풍부한 CPU 코어였다고 추정되지만 그보다 K8 계열 코어를 소폭 확장하는 것을 선택했다. 실제로 AMD는 2007 년 K8 "Revision Hound (하운드)"에서 CPU 코어를 확장하지만, CPU 코어의 복잡함은 꽤 억제하고 있다. CPU 코어의 확장은 최소화 하고 이를 통해 쿼드 코어 화를 가능하게 한 것이 Hound 제품군의 특징이다.

 AMD는 다음의 "K10"의 개발도 분명히 후퇴하고 있다. 즉, AMD도 CPU 코어 자체를 점점 확장해 나가는 방향은 아니다. 그리고 그 대신 AMD가 쏟는 것이 CPU에 GPU 코어를 탑재하는 이기종 (Heterogeneous : 이종 혼합) 멀티 코어화다.

 GPU 코어의 실태는 심플 코어인 "Programmable Shader"의 집합체이다. AMD의 범용 (General Purpose) CPU 코어보다 훨씬 간단한 Shader 코어를 융합시키는 것으로,보다 많은 코어를 CPU에 싣는다. 즉, 이기종화로 심플 코어 멀티 코어화를 가속시킨다.

 

CPU Architecture Trends

 


2배 복잡한 CPU 코어에서 2배의 CPU 코어로

 Intel의 심플 코어의 방향성은 AMD 정도 해결은 아니지만 그래도 여기저기 있다. Intel도 K9 취소와 같은 무렵, NetBurst (Pentium 4) 아키텍처를 발전시킨 Tejas를 취소했다. Tejas은 NetBurst를 근본적으로 확장한 CPU로, 트레이스 캐쉬의 증가 또는 x86 명령 디코더의 계층화 Hyper-Threading 의 확장 (하이퍼쓰레딩을 더욱 확장), 실행 유닛의 확장과 혁신을 담고 있었다고 말한다. 따라서 Tejas 다이는 Prescott (112 제곱 mm)의 2 배 가까운 크기 213 제곱 mm가 될 예정이었다.

 그런데 Intel이 Tejas 대신 투입한 것은, 90nm 판 Pentium 4 (Prescott 프레스컷) 코어를 2개 동 다이 (반도체 본체)에 올린 Pentium D (Smithfield 스미스 필드)였다. Smithfield의 ​​다이는 206 제곱 mm로 거의 Tejas만큼. 즉, Tejas → Smithfield 변경은 동일한 다이 크기로 2배 복잡한 CPU 코어의 싱글 코어에서 두 배의 CPU 코어를 탑재한 듀얼 코어로 전환했다.

 이번 Core Microarchitecture 에서는 아키텍처 쇄신에 상당한 확장이 이루어지고 있다. 그러나 AMD와 마찬가지로 CPU 코어를 배로 부유한 걸음이 아니다. CPU의 다이는 143 제곱 mm로 Intel의 새로운 마이크로 아키텍처 CPU로서는 최소 트랜지스터 수는 2 억 9,100 만 (291M). 복잡함에 상당히 주의 깊게 억제하고 있다.

 오히려 계산에서는 CPU의 실행 코어는 NetBurst 작다. Intel에 의하면 CPU 실행 코어의 크기는 1코어 당 36 제곱 mm, 트랜지스터 수는 불과 1,900 만 (19M). 즉, 트랜지스터의 대다수는 캐시 SRAM 으로, CPU 코어 자체는 매우 간단하다는 것을 알 수있다. Core Microarchitecture 코어의 다이 영역이 작은 것은 쿼드 화에 적합하다. 그러나 온다이 쿼드 코어화 하는 "Whitefield (화이트 필드)"는 다른 이유로 취소되어 버렸지만.

 

Intel의 진로 결정


 다음의 Nehalem도 한번 아키텍처가 근본적으로 재검토 되고 있어 비슷한 변화 가능성이 높다. 다음 다음 "Gesher (게셔)"는 급진적으로 멀티 코어화가 촉진되고 또한 다이 스태킹 등의 기술도 검토되고 있는 것으로 전해진다.

 Intel과 AMD의 이러한 변화는 CPU 코어의 확장과 복잠함은 또 이전을 따르지 않는 것을 의미하고 있다.

 


이론적인 성능 효율은 멀티 코어

 "사치는 하지 말고 절약하자"

 급격하게 멀티 코어로 향하는 CPU 벤더의 현재 철학을 한마디로 설명하면 이렇게 된다. 그것은 Tejas 같은 대형 CPU 코어는 매우 사치스러운 흰색 물건(백색가전) 이었기 때문이다. 사치라는 것은 성능 효율면에서 말이다.

 CPU의 이론적인 성능은 단일 CPU 코어를 확장하는 것보다 멀티 코어화 하는 것이 오른다. 이론 값은 CPU 코어를 2개로 하면 (퍼펙트 메모리시) 성능은 2 배가 되지만, 싱글 코어를 2배로 확장해서 1.4 ~ 1.5 배 정도 밖에 성능은 업하지 않는다. 성능 효율이라는 측면에서, 복잡한 대형 싱글 코어 CPU보다 심플 코어로 멀티코어 CPU의 것이 좋다. (장단점은 큰 대형 1코어는 성능 증가가 크기 대비 적다는 것, 장점은 기존 프로그램이 그대로 성능이 바로 증가한다는 것. 멀티코어는 그 반대로 성능 증가가 큰게 장점, 단점은 프로그램이 멀티코어를 지원하게 만들어져야 된다는 것)

 또한 동일한 심플 코어에서도 응용 프로그램이나 특정 연산에 특화된 코어를 혼재 한 이기종 구성 쪽이 더 성능 효율이 높은 CPU 코어가 된다. 따라서 이론적인 성능 효율을 생각하면, CPU는 이기종 멀티 코어로 가는 것이 자연스럽다. AMD의 CPU + GPU와 Cell은 논리적으로 옳은 방향이다.

 

멀티 코어화와 이론적인 성능


 그런데 최근까지 컴퓨터용 CPU 업체들은 비효율적 방법으로 성능을 올려왔다. 여기에는 두 가지의 좋은 이유가 있었다.

 (1) 비효율적인 방법으로 성능 업이 허용되는 반도체 스케일링이 있었다. 공정이 1 세대 미세화 되면 같은 크기의 칩에 2배의 트랜지스터의 탑재, 1.4 배 이상의 주파수 업이 가능하게 되어, 그래서 소비 전력은 동일한 수준으로 유지할 수 있었다. 그래서 호화스러운 방법으로 성능을 업해도 그다지 비 효율성이 눈에 띄지 않았다.

 (2) 싱글 코어를 확장하는 것이 동일한 소프트웨어가 더 빨리 달린다는 장점도 컸다. 특히 기존의 소프트웨어 자산이 결정적으로 중요한 PC는 기존의 소프트웨어가 빠르게하는 방법이 좋다. 즉, PC에 적합한 소프트 개발 친화적인 CPU가 되려면 CPU 코어의 확장이 가장 좋았다.

 


비상 사태로 소프트웨어에 부담을 주는 방향으로

 즉, 소프트웨어 개발에 영향력을 주면서 까지 CPU 아키텍처의 방향을 바꿀 필요가 있을 정도로 성능 향상이 곤란하지 않았던 것이다. 다소 비효율도 소프트 측의 지지를 얻을 수 있는 CPU 아키텍처인 것이 좋다고 판단했다 것이다.

 그런데 그것이 여기에 와서 흐름이 갑자기 바뀌었다. 가장 큰 이유는 기존의 CPU 확장으로는 CPU 성능이 향상 되지 않기 때문에. 그 원인은 반도체 스케일링이 부분적으로 효과가 없으며 지금까지와 동일한 상태로 CPU 코어를 확장하면 소비 전력이 뛰어 버리게 된다.

 CPU 코어의 확장이 어려워진 것으로, CPU 메이커는 CPU의 진화의 방향을 다시 생각하지 않으면 안되었다. 시급한 과제는 CPU 코어의 성능 효율의 향상에 있다. 비상사태가 되어, CPU 벤더는 소프트웨어에 어느 정도 희생을 강요해도 어쩔 수 없다고 판단했다.

 멀티 코어로 향하는 CPU의 조류를 매우 간단하게 말하면 이런 스토리가 된다. 즉, 메시지는 다음과 같은 것이다.

 "회사가 기울어져 (= 반도체 스케일링이 효과가 없게되어) 모두 (CPU 제조사는) 가난하게 (= CPU 성능을 쉽게 못 올리게)되어 버렸다. 또 사치 (= 싱글 코어의 성능 향상) 은 그만두고 아껴서 (= 멀티 코어 화로) 살자. 그래서 모두 (= 소프트웨어 개발자)도 공짜로 밥은 (고생없는 성능 향상은) 못 주겠어"

 소프트웨어 측에는 민폐이지만, 당분간 이러한 흐름은 피할 수 없을 것 같다.

 덧붙여서, PC용 CPU 보다 먼저 게임 콘솔용 CPU 쪽이 더 급진적 심플 코어로 향했다는 소프트웨어 자산의 사정도 있다. 게임 콘솔은 기존의 소프트웨어 자산을 더 빨리 달리게 해야 한다는 속박은 없다. 반면 성능 요구는 높다. 따라서 빨리 심플 코어 및 멀티 코어로 향한 것이다.

 게임 콘솔은 현세대의 Xbox 360, PLAYSTATION 3 (PS3), Wii의 모두 심플 코어를 가지고 (Wii 추정). Xbox 360과 PS3를 보면 지난 15년 이어온 아웃 오브 오더 (out-of-order) 형 실행 이미 오래된 것 이라는 메시지가 떠오른다.

 


사실 비효율적인 CPU의 아웃 오브 오더 실행화

 그럼, 실제로 얼마나 기존 CPU 코어의 확장은 비효율적 이었을까?

 우선 원칙은 "폴락의 법칙 (Pollack 's Rule)"라고 Intel 부르는 경험규칙으로 나타나고있다. 이전 글에서도 언급했지만, 같은 공정 기술에서는 CPU의 die size (= 트랜지스터 수)를 2 ~ 3배로 늘려도 정수 연산 성능은 제곱근 (약 1.4 ~ 1.7 배) 정도 밖에 성장하지 않는다 라는 법칙이다.

 Intel Microprocessor ​​Research Labs (MRL)의 이사 겸 Intel Fellow 였던 프레드 폴락 (Fred Pollack) 씨가 2000 년경 프로세서 관련 컨퍼런스에서 프레젠테이션으로 발표 한 것이다. i386C → i486, i486C → P5 (Pentium), Pentium → Pentium Pro, Pentium III → Pentium 4에서 이런 현상이 반복되어 왔다고 한다.

 

폴락의 법칙 기존 프레젠테이션

 

 이 법칙을 도식화하면 아래와 같이 된다. 2배의 die size (반도체 본체의 면적)로 확장 한 마이크로 아키텍처의 CPU는 소비 전력도 단순 계산으로는 2 배가 된다. 따라서 제곱근 정도 밖에 성능이 성장하지 않으면 성능 / 와트, 성능 / 다이는 70% 로 악화 되어 버리게 된다.

 

 

폴락의 법칙


 CPU 코어의 진화에 따른 성능 효율의 악화를 CPU 아키텍처 마다 분석한 자료도 있다. 아래 그림은 ISSCC (IEEE International Solid-State Circuits Conference) 2001의 기조 연설에서 당시 Intel의 부사장 겸 CTO (Intel Architecture Group) 였던 Patrick P. Gelsinger (패트릭 · P · 겔싱어) 씨 ( 현 Senior Vice President and General Manager, Digital Enterprise Group 부사장 겸 디지탈 엔터프라이즈 그룹 수장)가 보여준 슬라이드를 바탕으로 한 것이다. 원래 슬라이드를 보기가 어렵기 때문에 차트로 만들었지만, 기본적으로는 Gelsinger 씨의 슬라이드와 변함 없다.

 

아키텍처의 성능 효율의 변화


 이 그림에서 486까지의 스칼라 CPU에서 Pentium 슈퍼 스칼라, 그리고 Pentium Pro 이상 아웃 오브 오더, 투기 실행 시스템으로 비교하고 있다. 한눈에 알 수 있는 것은, 사실은, CPU는 간단한 스칼라 CPU 인 때가 가장 효율이 좋았다는 것. 슈퍼 스칼라화하면 절대 성능이 오르는 대신 효율은 악화, 아웃 오브 오더화는 더욱 악화된다. Xbox 360과 PS3가 모두 아웃 오브 오더를 버린 이유를 잘 알 수 있다.

 이 차트에서는 성능은 폴락의 법칙 보다는 효율이 좋지만, 그래도 세대마다 성능 효율이 악화하는 것은 변함이 없다. 중요한 것은 단순 코어는 효율적, 복잡한 코어 일수록 효율이 나빠진다는 점이다. 그만큼 호화스러운 성능 향상의 방법을 취해 왔던 것이다.

 그러면 반도체 스케일링이 둔화하면 지금까지의 호화스러운 성능 향상은 어떻게 되는 것인가? 다음 회에서 그것을 보고 하고 싶다.

 

 

2006년 8월 21일 기사 입니다.

 

 

[아키텍처] 폴락의 법칙에 찢어지고 취소된 테자스(Tejas)

 

 

[분석정보] K8 이후 크게 바뀐 AMD의 CPU 개발주기

 

 

[분석정보] AMD와 ATI 프로세서는 하나로 융합한다

 

 

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

 

 

[분석정보] 결정된 헤테로지니어스 멀티코어에 대한 기류

 

 

[정보분석] IDF 2011 Jstin Rattner 기조연설 매니코어 시대가 다가옴 1/2부 보기

 

 

[아키텍처] 정수 연산 성능을 희생해서 효율성을 거둔 AMD의 "Bulldozer"

 

 

[분석정보] 인텔의 스칼라 CPU + 라라비의 이기종 CPU 비전

 

 

[정보분석] 암달의 법칙(Amdahl's law)을 둘러싼 Intel과 AMD의 싸움

 

 

[분석정보](암달의 법칙) 2010년대 100 코어 CPU 시대를 향해서 달리는 CPU 제조사