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

[정보분석] 같은 무렵에 시작된 Nehalem과 Larrabee와 Atom

tware 2010. 5. 28. 22:03

 

Pentium 4를 기반으로 하는 계획도 있었던 Nehalem


 Intel은 Core i = Nehalem (네할렘) 마이크로 아키텍처의 개발에 5 년이 걸렸다. 시작은 2003 년에 먼저 서버와 모바일 (노트북 PC)을 우선으로 하는 것이 결정되었다. 그리고 CPU 코어는 어느 아키텍쳐를 기반으로 하는지 검토 되었다 한다. 이 시점에서는 "Northwood (노스우드 : 130nm 판 Pentium 4)"를 기반으로 하는 계획과 제로부터 에서 마이크로 아키텍처를 새로하는 개발 계획도 있었지만 결국 "Core Microarchitecture ( Core MA) "와 같은"Pentium Pro / II / III (P6) "파이프 라인을 확장 할 계획으로 자리 잡았다.

 이어 2004 년에는 CPU 코어 수와 벡터 명령 확장, SMT (Simultaneous Multithreading = 하이퍼스레딩. 인텔은 도입한 기술의 범용적인 용어를 그대로 잘 쓰지 않고, 이름을 붙입니다.)의 구현에 대해 어떤 조합이 최적인가가 검토 되었다. 검토 끝에, 벡터 명령 확장은 떨어졌다. (기존의 128bit SSE 보다 더 확장된 256bit 명령. 256bit 명령은 샌디브리지에서 AVX 라는 이름으로 구현. AVX 유닛을 구현하면, 그만큼 1코어의 크기가 커짐. 이 때문인지.. 또 AMD 에서 SSE5 라는 이름이 나와서 더 그런지, 일부 네할렘 보드 바이오스 안 시스템 정보란에(CPU, 클럭, 바이오스버전, 램용량, 캐시, 명령/기술 등이 나열 된) SSE5 가 있습니다 (제가 가지고 있는 MSI 보드가 그렇습니다). 물론 지원 안한다 이죠. 결국 인텔은 AVX를, AMD는 SSE5를 얘기하다가 결국 AMD가 AVX로 갑니다. AMD 최초의 AVX 지원 CPU는 그 유명한 불도저...... (AVX와 함께 인텔의 SSE4.1/SSE4.2도 지원. 불도저 이전의 AMD CPU는 인텔 SSE4 시리즈를 지원하지 않습니다. FMA 부분은 인텔이 최초 FMA4를 AMD는 FMA3를 얘기했는데.. 결과적으로 둘이 바꿔서 각자의 CPU에 도입 했습니다.)

 

인텔은 코어당 2개의 AVX 유닛을, 불도저는 2코어(1모듈당) 1개의 AVX 유닛을 올렸고 대신 FMA (이중 FMA4 지원)가 가능. 때문에, 샌디브릿지 4코어 vs 불도저 8코어(4모듈)의 AVX 처리능력은 이론상 동급 (실제는 다르지만..). 하스웰에서는 FMA3를 지원하기에 4코어 8 AVX유닛 + FMA3 vs 8코어 4 AVX유닛 + FMA4로 2배의 차이. 인텔이 FMA3 를 지원하면서 2세대 불도저인 파일드라이버는 FMA3를 지원 (FMA4는 후에 폐기 됨). CPU 점유율상 따라가지 않을 수 없었겠죠. 예전 SSE 때도 인텔의 MMX/SSE/SSE2 vs AMD의 3Dnow 시리즈. 인텔의 SSE4.1 SSE4.2  vs  AMD의 SSE4a 로 나눠봤던 기억도 있을테구요. 결과적으로 과거부터 최근까지 대규모로 AMD가 도입한 독자적 확장명령 세트들은 전부 폐기 됨. 일부 소수 명령만 살아 남음.)

 

https://support.ubi.com/ko-KR/Faqs/000034615/AMD-processors-and-SSE4-X-support   AMD가 SSE4a라는 요상한 이름으로 짓다보니 SSE4를 기본 지원하면서 AMD의 추가 확장인줄 잘못 아시는 분들이 종종 있죠. AMD 페넘2에서는 SSE4가 안돌아게 만들어 놨다 인텔이 농간 부려서 그런거다 라는 분도 계시고 (게임 개발사에 어떤, 컴파일러에 어떤 음모론)... 그러다 보니 게임 제작사에서도 직접 FAQ를 작성하게 되고...

 
 다음 초기 목표로 "멀티 코어의 세금 "을 제거 하는 것이 결정 되었다. 이것은 CPU 코어 수가 많은 CPU의 동작 주파수가 낮아, 싱글 스레드 성능이 낮아진다는 세금(부담)이다. 그 해소를 위해 터보 모드의 채용이 정해진다.

(코어도 많고 클럭도 높으면 TDP때문에)

 이러한 단계를 거쳐 Nehalem은 지금의 모습이 되었다.

 

Tejas 취소 발표 이전에 Nehalem은 다시 결말을 내기로


 Intel은 Nehalem의 개발이 2003 년부터 시작했었다는 것을 밝혔다. 이것은 Intel이 Pentium 4의 확장으로 개발했던 "Tejas (테하스, 테자스)"의 취소를 발표한 2004년 봄 이전 단계로 이미 Intel이 CPU 개발의 방향을 변경하고 있었다는 것을 보였다.

 Intel은 원래 Tejas 개발과 병행하여 단일 코어의 성능을 추구했던 걸로 보인다. 초대 Nehalem의 개발을 2001 년에 시작했다. 이것은 Intel이 2002 년에 자사 Web 사이트에서 공개한 당시의 Nehalem의 설계자 Doug Carmean 씨의 인터뷰 기사 "Oral History Interview With Doug Carmean"에서 제시 되었다.

 그러나 Intel은 Tejas 취소 공개 이전 2003 년에는 방향을 전환, 이전 Nehalem을 취소 한 것 같다. 그리고 새로운 Nehalem에서는 멀티코어화를 전제로 더 전력 효율적인 CPU 코어의 선택에 들어갔다. 아마도 Tejas 캔슬도 2004 년 봄부터 이르게 정해져 있었을 가능성이 높다. Intel은 이당시 x86 (IA-32) 계 CPU에 IA-64 명령어 디코더도 내장하고 IA-32/IA-64 두 호환 듀얼 디코딩 CPU (IA-64 VLIW 명령도 분해하여 작업 단위에서 Out -of-Order 실행)을 소개하는 것을 계획하고 있었다고 말한다. 그러나 그 계획도 방향 전환에서 사라져 간걸로 보인다.

 그렇지만 Nehalem의 작업을 바로 잡아 다시 실시한 것이 2003년 그리 이른 시기에는 없었던 것 같다. 왜냐하면 2003 년에 아키텍처 팀은 Nehalem의 CPU 코어 기반 아키텍처의 방향을 결정만으로 끝나 있었기 때문이다.

 

 

 

 

 

CPU 이전 계획의 변천

 

 

다수의 프로젝트가 Nehalem 때 서다


 2003 년에 Intel의 오리건 주 힐스보로의 개발 팀은 수정 버전 Nehalem의 CPU 코어 "선정"을 실시했다. 이 시점에서 CPU 코어의 선택은 세 가지 였다고 한다.

(1) Northwood 파이프 라인의 확장, (2) P6 파이프 라인 확장 (Core MA와 같음) (3) 처음부터 파이프 라인 개발. 즉 처음부터 만드는가? Pentium 4 기반인가? Pentium III 기반 인가? 3가지 선택을 가려냈다.

 

 

 

마이크로 아키텍처의 선정

 

 

또한 CPU 코어 아키텍처의 선정에 앞서 서버와 모바일 (노트북 PC)에 초점을 맞춤도 정해져 있었다. 따라서 CPU 코어는 단일 스레드 성능이면서 저비용 저전력인 것이 요구되었다. 서버에서도 멀티코어 화를 전제로 코어 당 전력 및 구현 비용을 낮추는 것이 요구 되었다.

 또한 개발 팀은 개발에 소요되는 엔지니어링 비용을 최소화 하도록 요구받고 있었다고 한다. 지금 돌이켜 보면 그 이유도 명확하게 알 수 있다. Intel은 CPU 개발의 전환점이 된 2003 ~ 2004 년 전후에 지금에 이르러 다수의 프로젝트를 시작하고 있기 때문이다. 따라서 거인 Intel조차 개발 자원이 허술하게 된 것으로 추정된다.

 구체적으로 구 Nehalem 개발팀은 새로운 Nehalem 개발팀과 "Larrabee (라라비)"개발 팀으로 나누어진 걸로(구 Nehalem의 설계자 Carmean 씨는 Larrabee의 리드 아키텍트) 알려져 있다. 그리고 취소된 Tejas 개발 팀은 Atom (Silverthorne : 실버손) 개발팀이 되었다고 추측 된다. Atom의 개발 팀은 이전 Motorola를 떠난 PowerPC 개발 팀이 주체가 되어, 이 팀의 리더였던 Mark McDermott 씨는 Tejas 담당자로 보도 되었다. 역산하면 Silverthorne은 개발 시작부터 제품 출하까지 4년에서 4년 반 걸린 것을 알 수 있다.

 

 

 

 

CPU 아키텍처 개발 주기 (그림 클릭)

(그림에 추가하지 못했는데, 아는 분들은 다 알겠지만 모르는 분들도 있을테니 설명을 추가하면, 메롬이(노트북용 코드네임) 콘로이고, 하이파 팀의 샌디브릿지 다음은 스카이레이크 입니다. 추가하면 스카이레이크는 약간 늦게 나왔죠.)

 

 

깊은 파이프 라인 Prescott은 선택에서 떨어지는


 Intel은 Nehalem의 핵심으로 Northwood는 검토했지만 동일한 Pentium 4에서도 90nm 버전의 Prescott (프레스콧)은 후보로 거론하지 않았다. 올해 (2010 년) 2 월 미국 스탠포드 대학 공개 강의 EE380에서 "Key Nehalem Choices '라는 제목의 강연을 행한 Intel의 설계자 Glenn J. Hinton 씨 (Intel Fellow, Intel Architecture Group, Director, IA-32 Microarchitecture Development, Intel)는 Prescott와 Northwood는 (전력) 효율이 크게 달랐다 고 설명했다. Hinton 씨에 따르면, Northwood는 P6와 마찬가지로 효율이 좋았고 파이프 라인을 변경한 Prescott의 효율성은 나빴다고 말한다.

 Northwood와 Prescott의 가장 큰 차이점은 파이프 라인의 깊이이다. Northwood는 20 스테이지 (분기 예측 미스파이프 / x86 명령 디코드 스테이지도 포함하지 않는다). 반면 Prescott은 31 단계로 50 % 파이프 라인이 깊어져 있다. (IPC를 높일 수 있는 파이프 라인의 숫자가 아닙니다. 파이프 라인이 길이. 길면 래치 오버헤드, 스테이지가 많기 (긴)  때문에 지연시간이 생깁니다. 다만 명령 1개 실행할 것도 아니고, 프로그램을 돌리면 연속적으로 들어오기 때문에 이런 지연 문제는 프론트 엔드에서 정확하게 제대로만 공급해 준다면 문제는 안됩니다. 파이프 라인에는 1명령이 들어가서 나올때 까지 기다리는게 아니라, 각 스테이별로 연속적으로 명령이 들어가니까요. 즉 적당히 길면 프론트 엔드를 잘 만들어서 충분히 커버도 되고, 클럭도 올리고 좋은데, 너무 길어지면 (프레스컷 처럼) 이러면 여러가지로 문제가 생기겠죠. 프론트 엔드쪽도 한계가 있으니....)

 파이프 라인이 깊어지면 각 단계의 데이터를 유지하는 래치 회로가 상대적으로 증가 래치 오버 헤드가 커진다. 아래는 IBM이 2005 년의 "Hot Chips 17"에서 연습 세션 "Power-Aware Microarchitectures Design, Modeling and Metrics"에서 설명한 차트이다. 고성능 CPU는 래치 부분의 전력 소비 비율이 매우 크다는 것을 알 수 있다. 그리고 파이프 라인이 깊어지면 아래 차트 빨간색으로 표시된 래치 부분이 상대적으로 부풀어 간다. 즉, 래치 오버 헤드가 커진다.

 

 

 

 

 

 

 

고성능 CPU는 래치 오버헤드가 커진다.

 

 

이 외에도 성능 효율에 대한 영향은 크다. 파이프 라인의 지연 시간이 늘어나기 때문에 CPI (Clock per Instruction)도 내려 간다. 또한 명령 스케줄링에 의해 자원이 필요하게 되는 등 효율이 나빠진다. 이러한 효율성의 문제에서 Prescott은 떨어진 것으로 보인다.

 

 

코어 당 전력과 비용이 가장 작은 P6 파이프 라인


 Hinton 씨 팀은 3 가지 옵션 모두를 살펴 보았다. 각각 장점이 있었다고 한다.

 먼저 성능면에서는 처음부터 무에서 개발할 경우가 가장 높을 가능성이 있었다. 또한 Northwood는 P6 확장 코어보다 파이프 라인이 깊은만큼 동일한 트랜지스터 스피드에서도 높은 주파수에 있다 (Core MA는 14 단계). 단일 스레드 성능면에서는 P6 파이프 라인은 그다지 유리하지 않다고 볼 수 있었다. (파이프 라인이 길면 위의 문제가 생기지만, 반면에 클럭을 높이기 쉬움, 파이프 라인이 짧으면 클럭을 높이기 어려움. 즉 클럭에 의한 실글 스레드 (1코어) 성능 차이가 발생. 고클럭을 지향한 인텔 프레스컷, AMD 불도저 시리즈가 모두 이전 세대에 비해서 훨씬 긴 파이프 라인으로 이전 세대보다 상대적인 고 클럭 달성.)

 그러나 결국 Intel은 P6 파이프 라인 확장을 선택했다. 그 이유는 코어 당 전력 소비가 다른 대안보다 작고, 또한 코어 크기도 다른 대안보다 작았기 때문 이라고 한다. 서버는 CPU 코어가 더 낮은 전력이 되어야 하기 때문에 , 8 코어에서도 상대적으로 작은 전력으로 끝나는 점이 매력이었던 것 같다. 또한 처음부터 개발과 비교하면, 전체의 엔지니어링 노력도 적다. 또한 새로운 파이프 라인을 개발하는 경우와 비교하면, 소프트웨어의 최적화에 대해서도 지금까지와 일관성을 유지 하는 점에서 장점이 있다고 한다.

 Intel은 맨땅개발로 CPU 아키텍처를 크게 바꾸면, 싱글 스레드 성능을 더 급격히 올리기도 가능하다고 생각했다. 그러나 대규모 설계 엔지니어링에는 시간이 걸린다. 또한 개발 및 수정에 쫓겨 디자인을 튜닝하고 연마하는 시간이 없다고.

 

 

불룸필드 다이

 

 

복잡한 x86 계 CPU의 설계 위험을 줄이기


 이것은 중요한 포인트다. x86 CPU의 경우는 복잡하기 때문에, 최종 단의 성능 튜닝 및 연마에 시간이 걸리기 때문이다. 2004 년에 동일 스탠포드의 공개 강의에서 "Things CPU Architects Need To Think About "라는 강연을 행한 P6의 설계자 Bob Colwell (밥 콜웰) 씨가 그 사정을 설명했다. 그에 따르면, IA-32의 성능 향상은 "코끼리를 가파른 언덕위로 들어 올리는 것 같은 것(Pushing Elephants up Steep Hills) '으로, 무리한 가속으로 구조적 취약성이 증가하고 있다고 지적했다 .

 또한 Carmean 씨도 Pentium 4의 개발은 테이프 아웃 1 년 전이라는 디자인의 후반에 성능에 큰 문제가있는 것을 발견. 20 명의 개발자가 6 개월간 박혀 문제 해결에 집중했다고 설명했다.

 Colwell 씨에 따르면, CPU 개발은 정확한 성능 분석을 가능한(정도) 설계 단계가 되어서 문제가 발견되는 경우가 많다고 한다. 이 경우 설계가 많이 진행되서 본질적인 수정이 가능하지 않아, 손재주 수정을 추가 하게 된다. 그러나 그 결과 복잡함에 복잡함을 거듭하게 되고 다른 문제가 생겨 버린다. 예를 들어, 하나의 문제 부분을 고치면 두 가지 문제가 발생하는 일이 된다고 한다.

 이것은 x86 계 CPU를 설계하려고 하면 기존의 파이프 라인을 기반으로 하는 것이 안전하다는 것을 보여준다. 고성능 x86 계 CPU는 그만큼 복잡하고 골치 아프다. Hinton 씨도 Nehalem에 대해 P6 기반의 보다 간단한 디자인을 선택할 장점으로 그 점을 지적했다. P6 기반으로하는 경우에는 성능으로 효율적이지 않은 부분도 있다. 그러나 설계에 소요되는 노력이 상대적으로 적기 때문에 엔지니어링 단계의 조율에 시간을 쓸수 있다고 한다.

 이러한 균형을 고려하여 (프롬 스크래치 설계에서) 어느 정도 (10 ~ 20%)의 싱글 스레드 성능 향상을 얻을 수 있는 가능성을 포기하기로 결정했다고 한다.

 

 

네할렘 아키텍처의 블럭다이어그램

 

 

pc watch

 

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2013년 6월

 

 

[분석정보] 4만 8000개의 제온파이로 중국 톈허2 세계에서 가장 빠른 슈퍼 컴퓨터

 

 

[제품뉴스] Intel Xeon Phi 새로운 폼 팩터 채용 포함 5모델 추가

 

 

[정보분석] 인텔 60코어 매니코어 "Xeon Phi" 정식발표

 

 

[분석정보] 인텔 슈퍼컴퓨터용 가속기 Xeon Phi 5110P 발표

 

 

[분석정보] Intel, HPC 전용 보조 프로세서 Xeon Phi 2013년 1월부터 일반용으로 출시

 

 

[분석정보] IDF 2012에서 주목한 한가지, 매니 코어 "Knights Corner"

 

 

[정보분석] 엔비디아 세계 최다 트렌지스터 칩 GK 110 공개

 

 

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

 

 

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

 

 

[분석정보] Intel은 Larrabee 계획과 아키텍처를 어떻게 바꾸나?

 

 

[분석정보] 다시 처음부터 시작된 라라비 무엇이 문제였나?

 

 

[분석정보] 라라비 (Larrabee)의 비장의 카드 공유 가상 메모리

 

 

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

 

 

[분석정보] Larrabee는 SIMD와 MIMD의 균형 - Intel CTO가 말한다.

 

 

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

 

 

[분석정보] GDC 2009 드디어 소프트 개발자 정보도 나온 "Larrabee"

 

 

[분석정보] 그래픽 및 DirectX 로드맵을 정리

 

 

[정보분석] Intel 힐스보로가 개발하는 CPU 아키텍처의 방향성

 

 

[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀

 

 

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

 

 

[아키텍처] 베일을 벗은 인텔 CPU & GPU 하이브리드 라라비(Larrabee)

 

 

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

 

 

[정보분석] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향

 

 

2개의 CPU 개발팀이 경쟁하는 Intel의 사내 전략

 

 

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


 

[아키텍처] 왜 Sandy Bridge는 성능이 높은가?

 

 

[분석정보] Intel의 개발 책임자에게 듣는, Skylake 개발 비화