본문 바로가기
Moblie/H/W

인텔은 22나노 아톰 실버몬트에서 아키텍쳐를 쇄신

by 에비뉴엘 2013. 12. 16.
반응형


인텔 아톰제품군에선 처음으로 아키텍처 풀체인지를 실시

 

인텔이 아톰 프로세서의 마이크로 아키텍쳐를 쇄신한다. 22nm 프로세스 세대의 아톰 "Silvermont (실버몬트)"는 공정 기술뿐만 아니라 마이크로 아키텍처 자체가 전적으로 풀체인지된다. 이것은 인텔이 아톰을 출시한이후로 처음있는일이 된다. FinFET 3D 트랜지스터와 높은 성능의 효율 아키텍처의 조합으로 모바일뿐만 아니라 임베디드에서 서버까지 폭 넓은 시장을 커버한다. 이것이 인텔이 노리는 2단계 아톰 전략이다.


  


▲실버몬트 아키텍쳐는 아톰에선 처음으로 아웃오브오더 처리방식을 채택했으며 멀티코어 구성이다.

▲22nm 실버몬트는 넷북에 한정되지않고 데이터센터,울트라북,타블렛,스마트폰, 자동차 모든 분야에 침투한다.


▲22nm 실버몬트 아톰은은 탑재분야에 따라 Avoton(아보톤), Rangely(랭글리), Baytrail(베이트레일), Merrifield(메리필드)로 구성된다.

▲아톰 22나노의 실버몬트, 14나노는 에어몬트가 출시된다.

  

 

인텔의 기존의 아톰은 45nm 프로세스의 「Bonnell (본넬)」계 아키텍처를 기반으로하고있다. 그 후, CPU 코어에 사소한 개선은 추가했지만 완전히 새로운 아키텍처가 일신 된 것은 이번이 처음이다. 인텔은 PC & 서버 전용 CPU는 2년 간격으로 CPU 마이크로 아키텍쳐를 쇄신하고 있지만, 이전에는 아톰계열은 뉴 아키텍처가 지연되고 있었다. 인텔은 향후 매년마다 아톰을 쇄신한다고 설명하고 Silvermont는 패스트 러너가된다.


 Silvermont(실버몬트) 마이크로 아키텍처의 핵심포인트는 아래와 같다.


(1) 아웃 오브 오더 실행 파이프 라인 

(2) "매크로"실행 유형의 명령 제어 

(3) 분기 예측의 강화와 분기 예측 패널티 감소 

(4) 실행 지연 시간 및 처리량 개선 

(5) 아웃 오브 오더 메모리 트랜잭션 

(6) 낮은 지연하고 광대역 캐시 

(7) 하드웨어 프리 페처를 계층화 및 강화 

(8) 효율적인 멀티 코어 화를 실현하는 모듈 구성 

(9) 멀티 코어를 전제로한 상호 연결



▲실버몬트 특징


 지금까지의 아톰은 말하자면 10여년전의 구형 펜티엄수준이었다. x86의 2명령 디코드에서 인 오더 실행의 2-way 스칼라 파이프 라인 구성과 러프 볼 경우 실행 파이프 라인의 구성은 Pentium 비슷했다. 그러나 Silvermont(실버몬트)는 다르다. 명령 디코드 폭은 2 명령어 채이지만, 아웃 오브 오더로 실행된다. 하지만 CPU 코어 내부에서 명령어 일정은 기본은 "매크로 작업"라고 인텔이 부르는, CISC (Complex Instruction Set Computer) 스타일로 행해, 명령 스케줄링 합병증을 최대한 억제한다.


 또한 투기 실행의 손실을 줄이기 위해 분기 예측을 향상시킬뿐만 아니라, 잘못된 분기 예측시 파이프 라인 패널티를 감소시킨다. 또한, 메모리 액세스에서도 아웃 오브 오더 형의 트랜잭션을 허용한다. 이러한 기능을 넣는 대신 Intel은 Silvermont에서 SMT (Simultaneous Multithreading) 기능이다 Hyper-Threading을 옮겼다. 또한 인텔은 아톰의 단점 중 하나 인 내부 버스를 지점 간 상호 연결로 대체한다.


싱글스레드 성능을 끌어 올리는 실버몬트 아키텍처


Silvermont(실버몬트)에서는 마이크로 아키텍처으로  무엇이 향상된 것인가? 먼저 일목요연는 스레드당 성능의 향상이다. 단일 스레드 성능은 구조적만으로도 Silvermont에서 현저하게 향상된다. 원리적으로, CISC이다 x86/x64 명령은 아웃 오브 오더 실행은 듣는.



▲이전 아톰과 비교시 실버몬트의 성능



 또한 잘못된 분기 예측 자체와 분기 예측의 로스 사이클이 줄어드는 것은 성능뿐만 아니라 전력의 저감에도 효과가있다. 메모리 액세스 데이터 종속성 해결도 할 수있게되었다고 추측되므로 메모리 액세스 처벌도 줄일 수있다. 전체 말해서, 동일한 주파수로 기존의 아톰보다 IPC (Instruction-per-Clock)이 향상된다. 또한, Silvermont는 22nm SoC 공정으로 제조되기 때문에 동작 주파수 자체의 향상을 전망 할 수있다.


 덧붙여서, ARM의 Cortex-A15와 비교하면, Cortex-A15은 3명령 디코딩 아웃 오브 오더 실행이므로, Cortex-A15 쪽이 명령 병렬성은 높은 것으로 보인다. 그러나 ARM 명령어 세트 아키텍처는 RISC (Reduced Instruction Set Computer) 계 (ARM은 RISC 바람이 아니라는 의견도있다)이므로 명령이 상대적으로 단순하다. 따라서 복합 명령어 CISC 계 x86의 2 명령어 디코딩이다 Silvermont도 내부 명령어 대역으로 변환한다면 Cortex-A15에 손색이 없을 것이다.


 그래서 멀티 스레드 성능은 어떤가. Silvermont는 HT를 제거해 일반적인 단일 스레드 코어로했다. 대신 최대 8코어까지 멀티 코어 구성을 가능하게한다. 즉, SMT 의한 코어에서 스레드 병렬화가 아닌 실제 CPU 코어를 늘리는 것으로 멀티 스레드 성능을 올린다. 이것이 현실 인 것은 Intel이 Silvermont 확장을 비교적 점잖게 억제했기 때문이다.


 Atom 코어는 지금까지 ARM 코어보다 코어의 다이 영역이 크고, 그것이 코어 수를 늘리는 경우의 걸림돌이되고 있었다. Silvermont은 상대적으로 다이 영역을 억제하고 멀티 코어 화를 촉진하려고하고 있다고 볼 수있다. 


 실제로 Silvermont 확장은 상당히 억제되어있다. 프런트 엔드는 3 명령 디코딩이 아니라 종래대로 최대 2 명령어 디코딩. 실행 유닛 수도 사실 인 주문 때와 변함 없다.


 물론, 아웃 오브 오더 형 명령 스케줄링을 위해 CPU가 비대하지만, SMT 지원 자원 감소 분, 다소 상쇄된다. 예를 들어, 기존의 Bonnell과 Saltwell (32nm 코어)는 2 스레드 분의 레지스터를 갖추고 있었지만, Silvermont는 단일 스레드 레지스터 리 네이밍을하기위한 레지스터 리소스를 갖춘다. 어떤 의미에서 멀티 스레드를위한 레지스터 자원을 아웃 오브 오더의 자원으로 대체 한 것 같은 이미지 다. Silvermont 쪽이 CPU 코어가 대형화하는 것은 틀림없지만, 여전히 프로세스의 수축에 의해 상당히 코어 크기는 억제되는 것이다.



아웃 오브 오더 실행 파이프 라인을 매크로 작업 실현

 

마이크로 아키텍처의 자세한 내용은 다른 기사에서 소개로 하이라이트를 들면 먼저 Silvermont는 아웃 오브 오더 실행이 눈에 띈다. 기존의 Atom은 인 오더 실행, 즉 명령을 프로그램 순서에 따라 실행하는 구조였다. 대조적으로, Silvermont에서 명령어를 순서에 관계없이 수행 할 수있는 아웃 오브 오더 실행된다. 이에 따라 레지스터의 충돌을 피하기 위해 레지스터 리네이밍도 구현했다.


 아웃 오브 오더 실행은 하드웨어 명령어 간의 종속성을 확인 해저드가 해결된다. 하드에서 제어하기 때문에 실수한 명령을 실행하여 결과를 파기해야하는일은 발생하지 않지만, 종속을 확인하고 스케줄링하는기구가 트랜지스터를 먹는다. 여기서 Silvermont의 아웃 오브 오더 실행에서 중요한 포인트는 Intel이 매크로 오퍼레이션을 유지하면서 실현하고 있다고 설명하고있는 것이다.


 Intel의 x86/x64 명령어 세트는 CISC이며, 1 명령 안에 메모리 작업과 연산을 모두 포함 할 수있다. Intel은이 CISC 형의 복합 명령어 스타일을 좀 까다롭게 "매크로 오퍼레이션 (MacroOP)"또는 "매크로 지침」라고 부를 수있다. 대조적으로, Pentium 4를 비롯한 많은 고속 CISC CPU는 CISC 명령어를 간단한 조작의 내부 명령으로 변환하고 실행 해왔다. 이 간단한 명령을, Intel은 uOP (마이크로 오퍼레이션)이라고 부르고있다.


 Saltwell까지의 Atom 코어는 인 오더 실행에서 x86 명령을 거의 그대로 1 대 1로 내부 명령으로 대체하면 있었다. 즉, 여러 작업을 포함 매크로 작업을 그대로 수행했다. 따라서 내부 파이프 라인도 CISC 명령어 (매크로)에 맞춘 「로드 - 오퍼레이션 - 상점 (Load-Op-Store) '형식의 긴 파이프 라인을 제공했다.


 구체적으로는 실행 파이프 라인 전반에 "Memory Execution Cluster」이 주소 생성과 데이터 L1 캐시 액세스를 행한다. 이 스테이지 군에서 캐시에 액세스하여 정수 연산 실행 유닛 부이다 "Integer Execution Cluster"를 따라 설계가되어 있었다. 이것은 인 오더로 CISC 명령어를 직접 고속으로 실행하는 데 필요한 구조로 인 주문 x86에서는 잘 사용되고있다. 아래는 초대 Atom의 Silverthorne의 블록 다이어그램이다.




1세대 아톰, Silverthorne의 블록 다이어그램 



 대조적으로, 아웃 오브 오더 실행에서 실행 파이프는 연산과 메모리 액세스에 분리된다. CISC 명령어 중로드 작업은 메모리 파이프에 먼저 발행 된 데이터가로드되면 연산 파이프 측의 연산 작업이 수행된다. 그리고 연산 결과를 이번에는 저장소 작업이 메모리 파이프로 되 돌린다. 이것을 RISC 풍으로 실행하는 경우 1 개의 CISC 명령어에 포함 된 여러 작업을 uOPs로 분해하여 각 파이프에 흘려 실행한다. 따라서 복수의 uOPs가 생성되고 그것이 스케줄러 트럭된다.


 그러나 Silvermont은 기존의 x86 명령을 거의 그대로 실행했다 Bonnell 아키텍처와 마찬가지로 여러 마이크로 오퍼레이션 (uOP)를 포함하는 매크로 오퍼레이션 (MicroOP)를 취급하고 Intel은 설명한다. 즉, uOPs로 분해하는 것이 전제의 아웃 오브 오더 실행을 매크로 작업에서 담당한다.


 이 경우 매크로 작업은 실행 층층 처음 uOP으로 분해되어 실행되고 매크로 작업이 모두 끝난 단계에서 매크로 작업으로 명령 리타이어하는 것으로 보인다. 아래 그림은 Intel이 Pentium M / Core 계에서 처음으로 구현 한 매크로 오퍼레이션 (MacroOP)의 아웃 오브 오더 코어에서 실행 아키텍처 "Micro-OPs Fusion '의 개념도이다. 이 방식의 장점은 아웃 오브 오더 실행의 자원을 어느 정도 절약 할 수. 원래, MicroOP에 포함 된 uOPs는 서로 진정한 의존성이있는 것을 알고 있기 때문에, 순서에 발송하기 위하여된다.


이 방식은 특별히 새로운 것이 아니라 AMD와 Intel도, 지금까지도 사용해왔다. Intel라면 10년 전 Pentium M (Banias : 바니아스)에서이 방식이다. Intel은 이러한 방식을 채택하기 시작했을 때, "CISC의 아름다움"을 이용한다고 설명했다. Silvermont에서 Intel이이 점을 각별히 강조하는 이상 매크로 오퍼레이션의 구현이 Core 계의 아키텍처와 다를 수 있지만, 디자인 철학은 공통되고있는 것으로 보인다.


분기 예측과 예측 미스시 처벌 등을 개선

 


CPU는 성능을 높이기 위해 조건 분기 명령의 조건 확정을 기다리지 않고 처리를 행하는 투기 실행을 행한다. 분기의 방향을 예측하고 그 방향 경로의 명령어 스트림을 실행한다. 그러나 예측이 빗나 갔을 경우에는 그때까지 수행했다 명령을 파이프 라인에서 플래시해야하고, 그만큼 성능과 전력의 낭비가 생겨 버린다.


 분기 예측은 아웃 오브 오더 형뿐만 아니라 인 오더 형 CPU에서도 중요하다. 특히 CISC의 경우는 인 오더 파이프 라인이 길어지는 경향이 있기 때문에, 미스뿌레디쿠토의 패널티가 크다. 따라서 기존의 Atom 없음 분기 예측을 중시하고 있었다. Silvermont는 또한이 부분이 강화되었다. 분기 예측 미스의 손실을 적게하는 해결책은 먼저 분기 예측의 정확도가 높아, 잘못된 분기 예측시 로스 사이클을 줄이고, 복구를 빠르게하는 것.


 Intel이 Silvermont에서 주장하고있는 것은 바로이 부​​분에서 예언자는 최근 수요도가 증가하는 간접 분기 예언자가 들어간다. 잘못된 분기 예측 사이클도 짧아 지지만, 이것은 실행 아키텍처의 변화에​​ 의한 다. 지금까지 CISC의 인 오더 실행에 최적화 된로드 - 오퍼레이션 (Load-Op) 형 파이프 라인 이었기 때문에 실행 단계까지가 길고, 그만큼 미스뿌레디쿠토의 패널티가 컸다. 아웃 오브 오더 실행 된 Silvermont는 물론로드 분의 파이프 라인 스테이지가 없어 그만큼 잘못된 분기 예측시의 사이클이 짧아진다.



 기존의 Atom은 인 오더 실행하더라도, CPU는 파이프 라인화되어 있기 때문에 명령이 파이프 리라인 중에서 계단식 형태로 병렬로 실행되고있다. 비 파이프 라인 CPU처럼 선행 명령이 완료 될 때까지 다음 명령어를 실행할 수없고 CPU가 낭비 놀이 같은 것은 없다. 그러나 긴 지연 시간 메모리 액세스가 들어간 경우 파이프 라인 스톨 (정지) 해 버린다.


 기존의 Atom은 이러한 경우에는 Hyper-Threading에서 다른 스레드를 달리게하는 것으로, CPU 리소스를 어느 정도 유효하게 사용하고 있었다. 하지만 아웃 오브 오더 된 Silvermont에서는로드 명령을 미리 실행하여 대기 시간을 어느 정도 은폐 할 수있게했다. 그런 의미에서도 Hyper-Threading의 의미는 줄어들어이다.


 Silvermont 메모리 액세스 방향에 관해서는, 아웃 오브 오더 형의 메모리 트랜잭션을 Intel은 언급했다. 이것은 메모리의 데이터 종속성의 모호함 (ambiguity)을 해결하려면 "Memory Disambiguation (메모리 디스 앰비 규 에이션) '의 구현을 나타내고 있다고 볼 수있다. 프로그램 순서에서 선행하는로드 / 저장 명령어에 대한 종속성이 메모리 주소가 해결 될 때까지 모르는 메모리 액세스 명령을 무시하고 내세울 수 있도록 동적으로 종속성을 판정하는 메커니즘을 갖추는 기술 그리고, Intel도 AMD도 성능 CPU가 채용하고있다. 아래는 Merom에서 Disambiguation을 구현했을 때의 슬라이드 다.





아톰의 내부 상호 연결을 쇄신

 

Intel은 Silvermont 멀티코어 지원의 특징은 2코어를 1모듈로 정리한 점이 독특하다라고 설명하고있다. 2코어에서 L2 캐시와 내부 상호 연결을 공유한다. 

사실,이 구성은 독특하고도 무엇도 아닌, ARM도 포함한 많은 CPU에서 살펴볼 수있다. 2코어 1모듈 조립 정도가 설계 자유도와 공유 리소스의 효과도 바로 때문이다.



▲실버몬트는 최대 8코어까지 지원한다.


 또한 Intel은 Silvermont 새로운 내부 버스의 특징으로 "지점 간"인터페이스임을 언급했다. IDI라는 지점 간 버스로 2 코어 Silvermont 모듈이 시스템 에이전트 (SA)와 연결되어있다. 이 구성은 일반적인 SoC에 익숙한 인터커넥트이며, 특별히 새로운 것은 아니다 보인다. .


 Atom은 개별 CPU에서 시작하여 첫 번째 Atom 온보드 FSB (Front Side Bus)를 구현했다. 이 버스 아키텍처는 Atom을 SoC 화 후에도 끌려 나머지 내부 버스로 FSB와 유사한 구조 그대로였다. 공유형으로 자유도가없이 Atom 병목 현상이라고도했다. Intel은 Silvermont에서 간신히 상호 연결로 전환했다.


 이렇게 개관하면 Silvermont의 정체가 보인다. 물론, 마이크로 아키텍처가 강화되고 있지만, 놀라운 아니다. 또한 캡처하는 기술도 저전력 CPU 전용으로 새롭게 개발했다기보다는 지금까지 단계적으로 최고의 성능 CPU에 활용 해왔다 기능처럼 보인다. 그런 의미에서 Intel 가지는 뛰어난 마이크로 아키텍처를 다이의 대형화를 최대한 억제하면서 가져온 CPU 아키텍처 보인다. 사실,이 위에 공정 기술과 회로 설계 기술이 어우러져 Silvermont 기반의 SoC가 완성된다.



다음편 계속




반응형

댓글