벤치리뷰·뉴스·정보/고전 스페셜 정보

[고전 2005.11.10] 보이는 인텔의 5~10년 후 CPU 아키텍처

tware 2005. 12. 23. 04:30

 

 

호모지니어스 형의 명령 세트 아키텍처에 초점

 Intel의 "Many-core (매니 코어)" 프로세서는 "Cell" 프로세서와 마찬가지로 "헤테로지니어스 (Heterogeneous : 이종 혼합) "멀티 코어로 향하고 있다. CPU 코어 내부의 마이크로 아키텍쳐가 다른 복수의 CPU 코어가 혼재된 형태다. 그러나 Cell과 큰 차이도 있다. Cell은 CPU 코어의 명령 세트 아키텍처 (ISA : Instruction Set Architecture)도 다르지만, Intel은 다른 선택을 한다. 매니코어는 CPU 코어 간의 명령어 세트 아키텍처는 "호모 지니 아스"(Homogeneous : 균질)가 될 것 같다. 명령 세트는 같지만, 싱글 스레드 성능을 추구하는 대형 CPU 코어와 멀티 스레드 성능을 중시하는 소형의 CPU 코어. 동일한 코드를 실행할 수 있지만, 성격이 다른 유형의 코어가 혼재할 가능성이 높다.

 

Intel의 매니 코어 구상과 Cell의 차이

 


 Intel의 연구 부문을 총괄하는 Justin R. Rattner (저스틴 R · 래트너) 씨 (Intel Senior Fellow, Director, Corporate Technology Group)는 도쿄에서 11월 8일에 행한 기자 회견에서 매니 코어 연구 방향에 대해 밝혔다.

 

 

Justin R. Rattner (저스틴 R · 래트너)

(Intel Senior Fellow, Director, Corporate Technology Group)

 

 

 

Intel이 2004 년에 나타낸 매니 코어의 비전 슬라이드

 Intel은 현재 수십 개의 CPU 코어를 탑재하는 차 차세대 아키텍처 매니 코어의 연구를 진행하고 있다. Intel이 이전에 보여준 간단한 그림에서는 매니 코어는 수소의 대형 CPU 코어와 다수의 소형 CPU 코어를 결합 되는 것을 시사했다. 분명히 다른 종류의 마이크로 아키텍처의 CPU 코어의 혼재를 상정한 것이다. 실제로 다른 Intel 관계자도 헤테로지니어스형 아키텍처를 Intel도 검토하고 있다고 말했다. 다만 명령어 세트 수준에서 다른 아키텍처를 혼재할 것인가 여부는 알려져 있지 않았다.

 이번 Rattner 씨는 매니 코어 세대에서는 CPU 코어의 마이크로 아키텍처는 다른 종류를 결합하지만 ISA는 한 종류로 유지하는 방향으로 연구하고 있다고 말했다.

 "우리는 호모지니어스인 ISA에 포커스하고 있다. 혼합 명령 세트 아키텍처는 이미 병렬 프로그램화를 위해 복잡한 상황이 되어 있는 프로그램 측에 더 불필요한 복잡성을 추가 할 것이다 라고 생각하고 있다. 다만 호모지니어스 프레임 워크에서 특수화와 최적화를 한다. 아마도 단일 명령어 세트 아키텍처의 혼합 프로세서 코어가 될 것이다"

 같은 이기종 형에서도 Cell은 분명 방향성이 다르다. 소니 컴퓨터 엔터테인먼트 (SCE)가 IBM, 도시바와 공동 개발한 Cell은 "PPE (Power Processor ​​Element)"와 "SPE (Synergistic Processor ​​Element)"의 두 가지 코어로 명령어 세트가 다른 혼합 명령 세트 프로세서다. 제어계 태스크 중심의 PPE는 기존 소프트웨어의 이식을 용이하게 하기 위해 Power 아키텍처의 명령어 세트, 신호 처리 태스크 중심의 SPE는 성능을 최대화 하기 위한 새로운 명령어 세트를 채택했다. 반면, Intel은 명령 세트 자체는 하나로 고정하면서 CPU 코어 마이크로 아키텍처는 변형을 가하려 한다.

 

 

싱글 쓰레드와 멀티 쓰레드 양쪽 성능을 향상

 Intel이 매니 코어로 여러 종류의 CPU 코어를 탑재하려는 것은, 멀티 스레드와 단일 스레드 양쪽의 성능을 동시에 높이려 하기 때문이다. Rattner 씨는 다음과 같이 설명한다.

 "(매니 코어에서) 복수의 코어 타입을 혼재 시키면, 일부 (코어)는 단일 쓰레드에 최적화 다른 일부 (코어)는 멀티 쓰레드에 최적화 한다. 싱글 쓰레드 성능에 최적화 된 코어는 일반적으로 큰 코어가 될 것이다. 한편, 멀티 쓰레드 성능에 최적화된 설계는 아주 작아, 아주 전력 효율이 높은 코어가 되는 것이다. 더해서, (코어 크기) 그것 이외 전문화도 있을 수 있다. 보다 큰 고속 부동 소수점 연산 유닛을 가지는 코어와 부동 소수점 연산 리소스가 보다 작은 코어 등 "

 지금까지의 Intel CPU는 싱글 쓰레드 성능을 추구했기 때문에 보다 복잡하고 대형의 CPU 코어가 됐다. 그에 따라 CPU 코어 크기가 비대화로, 1개의 CPU에 다수의 CPU 코어를 탑재하는 것이 어려워지고 있었다. 같은 90nm 공정에서 동일한 정도의 다이 (반도체 본체)를 비교하면, Intel의 NetBurst 계는 2코어 (Smithfield)에 머무는 반면, 멀티 쓰레드 성능에 최적화된 Cell은 9 여개의 CPU 코어를 싣고 있다. 싱글 쓰레드 성능을 추구한 코어를 계속하는 한, 매니코어를 조기에 실현 할 수 없다.

 그러나 멀티 쓰레드 성능을 추구해 Cell처럼 간단한 CPU 코어를 다수 탑재하면, 이번은 싱글 쓰레드 성능이 저하되어 버린다. 싱글 쓰레드 성능이 중요한, 기존의 소프트웨어 자산을 안고있는 Intel에게는 선택할 수 없는 길이다. 그래서 매니 코어는 싱글 쓰레드 성능을 추구하는 대형 코어와 멀티 쓰레드 성능을 추구하는 소형 코어의 조합으로 향하게 되는 것이다. (x86 CPU라서 이런게 아니라, PC라는 호환성을 갖는 시스템에 쓰이기 때문 입니다. 이거 만들었다, 저거 만들었다 호환성 신경 안쓰는 대표적으로 게임기 라던가 이런데에 쓰이면 x86이라도 이런게 없겠죠. 다른 RISC도 마찬가지가 됩니다. 그간 RISC는 각각의 기기에 쓰이는 경우가 많았죠. RISC도 주류가 되고, 이제는 절대 호환성이 필수가 되면 마찬가지가 됩니다. 그렇기 때문에 AMD의 저성능 CPU를 8개 넣은 게임기가 나올 수 있는 거구요. 만약 기존에 고성능 4코어 CPU로 게임기를 만들었는데, 후속기가 저성능 8코어가 된다면, 그 게임기는 전세대 게임이 제 성능으로 돌지 않겠죠 (저성능 8코어 CPU의  코어 전체 합 총 성능이 고성능 4코어 보다 좋다고 해도 그렇죠. 기존 게임은 최대 4스레드 게임일 테니까요). 당연히 무조건 기존보다는 코어 성능이 좋아야 합니다. 그러나 호환성이 없다면, 그냥 저성능 8코어로 해도 기존 게임이 돌던 안돌던 관계가 없으면, 신형 소프트는 8코어에 최대한 쥐어짜서 만들어 나올테니.. 상관 없어지죠. 이걸 그대로 RISC로 게임기에 대입해도 마찬가지가 되죠. 강력한 4코어 RISC를 쓴 전세대 게임기에서  저성능 8코어 RISC로 만든다? 호환성이 있게 만들면, 당연히 최소 전세대 보다 절대 떨어지지 않는 성능의 코어로 만들어야 할테고 (이렇게 되면 다이 사이즈상 6코어쯤으로 타협을 본다던가), 없어도 된다면, 적당한 성능의 작은 8코어로 만들어도 되죠. 당장 PC에서 아톰 16코어가 (아톰은 저전력용 이라 럭도 낮은것 감안) 4코어 8스레드 CPU보다 총 성능이 약간 높다고 해도, 쓸 사람이 별로 없겠죠. 기존 소프트가 전부 느리게 돌아갈 테니까요. (불도저 시리즈가 망한 이유기도 하죠. 총 성능도 낮기도 하고) 그래서 제온 파이도 HPC용도로 쓰이는 거구요. 그쪽은 병렬화가 보다 쉬운 작업이고, 거기에 맞춰서 만드니까요.)

 "큰 아웃 오브 오더 (out-of-order) 형 코어는 싱글 쓰레드 성능을 위해, 멀티 쓰레드 성능 트레이드 오프가 된다. 매니코어 설계에서는 (대형 코어와 소형 코어) 두 가지 유형의 균형을 맞추는 것이 중요하다 "라고 Rattner 씨는 말한다.

 Rattner 씨에 따르면, Intel 내부에서는 현재 응용 프로그램의 종류마다, 멀티코어화에 의해 얻어지는 확장성에 대해 연구하고 있다고 한다. 병렬화가 용이한 태스크에서는 CPU에 탑재하는 코어 수를 늘리는 것에 따라 선형적으로 성능이 올라간다. 그러나 순서대로 처리 밖에 할 수 없는 작업이 많으면 CPU 코어 수를 늘려도 선형으로 성능은 올라가지 않는다. 이것은 "Amdahl의 법칙"의 제약이라 부르고 있으며, 멀티 코어 / 멀티 쓰레드화의 벽으로 인식되고 있다. 그리고 Intel은 암달의 법칙 때문에 단일 쓰레드 성능도 계속 향상시켜 나갈 생각이다.

 "(애플리케이션 성능을) 규정하고 있는 요소 중 하나가 시리얼 (직렬) 워크다. 병렬로 처리 가능한 병렬 워크와 순차적으로 처리해야 하는 시리얼 워크의 비율, 이 적정 균형을 도모 하는 것이 잠재적으로 최대 스피드 업을 실현하게 된다. 그래서 우리는 고성능의 단일 쓰레드 프로세서 대 고성능의 멀티 쓰레드 프로세서의 장점을 검증하고 있다 "(Rattner 씨)

 아마 Intel은 중기적으로는 단일 쓰레드 성능을 추구하는 대형 CPU 코어의 발전도 계속. 동시에 Cell처럼 CPU 코어를 단순화해서 다수 탑재로 멀티 쓰레드 성능을 높이는 방안을 택하는 것으로 보인다. 소수의 대형 코어를 배치해 단일 쓰레드 성능이 중요한 프로그램을 돌리고, 다수의 소형 코어에서 멀티 쓰레드화 된 프로그램을 실행시킬 것이다.

 


런타임 환경으로 은폐

 Intel이 명령 세트의 일관성 유지를 지향하는 것은 Intel 프로세서의 역사를 생각하면 이상한 것이 없다. Intel의 현재의 번영은 IA-32 명령어 세트 아키텍처를 굳건히 하는 것으로 세웠기 때문이다. IA-32에 의존하는 방대한 소프트웨어 자산이 Intel의 입장을 견고히 해왔다.

 그에 따라 Intel은 Pentium Pro (P6) 이후 취해 온 IA-32 전략은 명령 세트의 기반은 유지한 채로 마이크로 아키텍처의 개선으로 성능 향상을 도모하는 것이었다. 예를 들어, 물리 레지스터 수를 늘려도 아키텍처 상의 레지스터 수는 늘리지 않는 등 (EM64T 간신히 늘었다). Intel은 매니 코어 시대도 이 노선을 지속하는 것으로 보인다. 다만, Intel은 매니 코어에 채용하는 명령 세트가 IA-32인가? IA-64인가? 아직 밝히고 있지 않다.

 재미있는 것으로, Cell도 초기 계획에서는 호모지니어스 형의 명령 세트 아키텍처를 생각하고 있었다고 한다. CPU 코어의 마이크로 아키텍처는 헤테로지니어스로해도, 명령 세트는 균일하게 하려고 했다. Cell이 헤테로지니어스 명령 세트를 취한 것은, 명령 세트의 제약을 제외하는 것에서, 또한 성능 향상을 도모했기 때문이다. (게임기는 호환성을  생각 안하면 얼마든지 획기적인 방식을 도입하는 것이 가능. 아주 최근에는 아키텍처가 전혀 달라도 고성능으로 과거 게임기를 에뮬레이션 해서 호환성 확보가 되지만, 예전에는 그렇지 않죠. 예전과 같은 성능 향상 추세로는 에뮬레이션으로 안되고, 하드웨어적으로 호환성을 갖는 CPU와 GPU를 쓰거나, 호환성을 위해서 과거의 CPU를 추가로 장착해서 호환성 확보.)

 반면, Intel은 반대의 선택을 하고 있다. 명령 세트가 발목잡지 않는다고 생각하는지? 명령 세트의 제약이 있어도 명령 세트의 일관성을 유지하는 쪽이 유리한 계책이라고 생각하는지? 지금은 알 수 없다. 한때 IA-32가 제약된다고 RISC 진영 측에서 공격한 것을 마이크로 아키텍처의 개량으로 뒤집은 자부심도 있을지도 모른다.

 재미있는 것은, Intel의 이 선택이 회사는 소프트웨어 측의 런타임 환경으로의 이행을 그렇게 급격하게 보지 않는 것도 시사하는 것이다.

 소프트웨어 측의 트렌드는, 프로그래밍 프레임워크 런타임 환경으로의 전환이다. 중장기적으로는 소프트웨어의 대부분은 Java와 .NET처럼 중간 코드 프로그램을 런타임 환경에서 실시간 컴파일하고 실행하는 스타일로 옮겨 갈 것으로 보여진다.

 이러한 모델에서는 CPU의 명령 세트 아키텍처의 중요성은 희미해진다. 런타임 엔진이 네이티브 명령어 세트를 은폐하기 때문이다. 그에 따라 헤테로지니어스형의 명령 세트 아키텍처를 취해도 소프트웨어 측은 전혀 의식하지 않아도 된다. 예를 들어, 바이트 코드를 서브 CPU 코어의 명령 세트로 변환하는 Java 런타임이 있으면, Java 애플릿은 그대로 이종 명령 세트의 CPU 코어에서 움직이게 된다. 아마 Cell의 다음의 수는 이것이다. 뛰어난 리얼타임 컴파일러 기술을 가진 Transmeta와 제휴한 이유 중 하나는 거기에 있다고 추측된다.

 그러나 Intel은 어디 까지나 명령어 세트 수준에서 공통성을 중시한다. 그것은 소프트웨어 계층의 추상화가 향후 5 ~ 10 년에서는 거기까지 진행된지 않는다고 생각하고 있기 때문으로 보인다.

 무엇보다, Intel은 스스로 멀티 코어 환경에 최적화한 새로운 소프트웨어 계층도 연구하고 있다. 이것은 "컨커런트 런타임 (Concurrent Run-time)" 이라 부르는 엔진에서 코어에 대한 작업 할당 등 매니 코어에 대한 다양한 관리를 행하는 것으로 추측된다. Intel의 다음 다음의 비전인 "투기 멀티 스레딩 (Speculative Multitheading)"도 이러한 레이어에서 핸들 하는 것으로 생각된다.

 

2005년 11월 10일 기사

 

 

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

 

 

[고전 2001.02.07] 인텔 폴락의 법칙이 등장 Intel 겔싱어 CTO의 ISSCC 강연

 

 

[고전 2003.10.18] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향

 

 

[분석정보] 폴락의 법칙을 깨뜨리기 위한 멀티 코어

 

 

[분석정보] Many-Core CPU로 향하는 Intel. CTO Gelsinger 인터뷰 1/2부

 

 

[분석정보] 5W 이하의 저전력 프로세서의 개발로 향하는 Intel

 

 

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

 

 

[분석정보] 2015년 컴퓨터 플랫폼 IDF Spring 2005

 

 

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

 

 

[분석정보] 래트너 CTO 기조 강연 보고서 차세대 데이터 센터 기술을 소개

 

 

[분석정보] SSE4 명령어와 가속기에서 보이는 Intel CPU의 방향성

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

[분석정보] x86을 고속화하는 조커기술 명령변환 구조

 

 

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

 

 

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

 

 

리눅스 478소켓 펜티엄4,셀러론에서 현대 CPU 비교

 

 

[분석정보] 2010년 Intel 아키텍처가 보였다