AMD. 차세대 CPU 코어 Zen을 더욱 분명하게 밝힘
AMD가 차세대 CPU 코어인 Zen을 더욱 명확하게 발표했습니다. 미국 쿠퍼티노에서 8월 21~23일에 개최된 반도체 칩 컨퍼런스 핫 칩스 28의 마지막 세션에서 AMD는 Zen에 대한 더 자세한 발표를 했습니다.
AMD Zen CPU 코어
이번이 28번째 개최인 핫 칩스는 첨단 프로세서 기술을 선보이는 장소입니다. 고성능 프로세서 세션은 마지막 날의 마지막 순서였는데, 이번에는 IBM의 새로운 CPU 파워 9과 인텔의 스카이레이크, AMD의 Zen에 대한 세션이 진행됐습니다.
Zen의 프론트엔드 알고리즘은 공개되지 않았으나 분기 예측은 크게 향상됐습니다. BTB(Branch Target Buffer) 항목마다 2분기가 지원되는 연산 파이프, 2개의 ALU가 분기 단위를 갖춥니다. 명령 Translation Lookaside Buffer (TLB)는 3레벨 8항목의 L0 TLB, 64 항목 L1 TLB, 512 항목의 L2 TLB가 있습니다.
Zen의 명령어 인출 구조
Zen의 명령 디코더
명령 디코드는 4명령/사이클로 x86 / x64 명령을 내부 명령 Micro-op로 변환합니다. AMD 아키텍처에서는 전통적으로 Micro-op를 CISC(Complex Instruction Set Computer)의 특성을 남긴 매크로 op의 Micro-op가 됩니다. Micro-op은 디스패치 스테이지에서 오프레이션 유닛을 간단한 Micro-op로 나눕니다. AMD는 이전에 복합형 Micro-op을 Macro-op라고 불렀으나 Zen에선 그렇게 분류하지 않기에 다소 이해가 어렵습니다.
내부 명령은 복합형 Micro-op과 싱글 작업 Micro-op의 2 단계
Zen에서 x86 / x64 명령은 거의 1대 1로 Micro-op로 변환됩니다. 디코더 컴플렉스와 별 차이는 없으며 디코더는 Micro-op 큐에 보내집니다. 마이크로 코드 ROM이 Micro-op 큐 아래에 있습니다. 또한 x86 스택 조작을 줄이기 위해 하드웨어 스택 엔진도 마련했습니다. AMD는 Micro-op에 Op 캐시도 갖춥니다. 가변 형식이기에 명령 디코드가 매우 무거운 x86 / x64 명령 디코드를 생략하여 성능을 높일 수 있고 전력도 절감합니다. Op 캐시는 트레이스 캐시가 아니며 명령 캐시에서 가져올 때 Micro 태그에 스트링을 부착합니다.
큐에서 Micro-op 디스패치는 최대 6Micro-op / 사이클입니다. 또 AMD는 분기 퓨전으로 명령 수를 줄입니다. 인텔 아키텍처는 퓨전 디코더 스테이지에서 수행하지만 Zen은 큐 배차 단계에서 수행합니다.
Zen의 정수 계열 실행 파이프는 6개로 스케줄러는 각 14큐. 최대 6op 발행/사이클이며, 4개의 연산 파이프(ALU), 2개의 로드/스토어 파이프로 된 AGU가 있습니다. 물리 레지스터는 168개로 SMT(Simultaneous Multithreading)의 2 스레드가 물리 레지스터를 공유합니다. ALU 중 1개는 MUL, 1개는 DIV입니다. 아웃 오브 오더 폭은 8 와이드로 넓습니다.
로드 / 스토어는 72개의 아웃 오브 오더 로드를 실시간으로 지원합니다. 스토어 큐도 44개가 있습니다. 데이터 측의 TLB는 64 항목 L1 TLB, 1.5K 항목 L2 TLB이 있으며 L1과 L2에 프리 페처를 갖춥니다.
Zen 연산 유닛
4 코어가 1 클러스터를 구성하는 Zen 프로세서
부동 소수점 연산 엔진은 4 파이프. 128-bit 폭 SIMD (Single Instruction, Multiple Data)의 곱셈(MUL)과 덧셈(ADD) 파이프 조합이 2개입니다. 사실 MUL 파이프는 MAD 파이프로 FMA 명령어를 실행할 수 있습니다. 그러나 이 경우엔 ADD 파이프 측의 레지스터 포트를 하나 사용합니다. 256-bit SIMD 명령을 실행하는 경우 2 파이프를 사용합니다. x86 / x64 계의 SIMD 명령어는 SSE / AVX1 / AVX2부터 레거시인 MMX을 망라합니다.
Zen의 FP SIMD 유닛은 인텔의 현재 아키텍처와 비교하면 처리량이 절반입니다. 그러나 AMD는 강력한 GPU 코어를 범용 컴퓨팅에 사용할 수 있습니다. 부동 소수점의 스케줄러 큐는 2 단계로 되어 있습니다.
Zen의 FP SIMD 엔진
4 CPU 코어와 L3 캐시가 조합된 Zen의 CPU 컴플렉스 구성
이번 Zen 아키텍처는 4개의 CPU 코어가 1개의 CPU 컴플렉스를 구성합니다. L3 캐시를 포함한 4 CPU 코어 유닛의 컴플렉스 2개를 써서 8코어 구성을 만듭니다. L3는 각 CPU 코어에 포함돼 4개의 조각으로 나뉘는데 평균 액세스 딜레이 시간은 꽤 깁니다.
캐시 계층은 3 단계 + op 캐시입니다. L1 명령 캐시가 64KB 4-way 및 L1 데이터 캐쉬가 32KB 8-way, L2는 512KB 16-way로 상대적으로 작습니다. 4코어가 공유하는 L3 캐시는 8MB 16-way으로 기존엔 L3가 단일 포트였지만 Zen은 각 CPU 코어마다 32바이트 읽기/쓰기 포트가 들어갑니다. Zen에서도 빅 팀 캐시 방식을 씁니다.
Zen 캐시 계층
Zen의 SMT (Simultaneous Multithreading) 구성
Zen의 SMT (Simultaneous Multithreading)은 2 스레드의 병렬 실행으로, 실행 파이프와 캐시는 스레드 사이에 완전히 공유됩니다. 정수 파이프 스레드마다 나뉘어져 있던 기존의 AMD 불도저 계열 구조와 다릅니다. Micro-op 큐와 리타이어 큐, 저장소 큐는 스레드마다 분리됩니다. 레지스터는 물리 레지스터의 풀을 두 스레드에 동적으로 할당합니다.
NVIDIA GPU와 일관된 연결이 가능한 Power9
IBM은 거대 서버 CPU의 정점인 Power 제품군의 최신 CPU Power9를 발표했습니다. 2013년 핫 칩스에서 발표한 Power 8 이후 3년만입니다. 출시는 내년입니다.
14nm FinFET 공정으로 제조되며 17층의 이례적인 스택을 자랑하는 배선층 프로세스를 사용합니다. 트랜지스터 수는 80억. 120MB의 방대한 eDRAM 캐시를 탑재하며 온칩 캐시 계층의 대역은 총 7TB/s가 됩니다.
IBM의 Power도 FinFET 프로세스를 도입
거대한 다이를 자랑하는 Power9
CPU 코어 마이크로 아키텍처도 혁신하면서 명령어 세트가 Power ISA v3.0로 바뀌었습니다.CPU 코어는 확장 가능한 모듈형 설계이며, 4 스레드 SMT(Simultaneous Multithreading)의 SMT4 Core와 8 스레드 SMT의 SMT8 Core의 두가지 구성이 제공됩니다. SMT4의 경우는 24 코어/다이고 SMT8의 경우는 12 코어가 됩니다. 또한 DDR4를 8채널로 직접 연결하거나 메모리 버퍼의 사용 여부 등의 구성에서 차이가 있습니다.
4 스레드 코어와 8 스레드 코어의 두 가지 구성이 가능
CPU 코어의 구성과 메모리 인터페이스에 따라 4종류의 파워 9가 있습니다.
IBM은 Power 8에서 보조 프로세서를 연결하는 전용 포트를 구현했습니다. Power9는 이를 발전시켜 25GHz의 속도로 전송하는 BlueLink을 갖춥니다. BlueLink PHY는 NVIDIA의 차세대 칩 인터커넥트인 NVLink 2.0을 지원해 NVIDIA GPU 코어를 연결해도 메모리 일관성을 유지합니다. 또 CPU를 강화할 뿐만 아니라 헤테로지니어스 컴퓨팅까지 노리게 됩니다.
NVIDIA와의 협력을 통한 헤테로지니어스 컴퓨팅
인텔은 스카이레이크 프론트엔드 확장을 명확히 설명
인텔은 1년 전에 발표한 스카이레이크에 대한 내용을 핫 칩스에서 발표했습니다. 스카이레이크는 2015년의 인텔 기술 컨퍼런스인 Intel Developer Forum(IDF)에서 발표됐으나, 그때 정보 공개는 지금까지와 달리 매우 제한됐습니다. 1년이 된 지금은 마침내 마이크로 아키텍처의 세부 사항이 알려졌습니다.
인텔은 CPU의 마이크로 아키텍처를 단계적으로 개선하고 있으며, 스카이레이크는 매우 복잡한 마이크로 아키텍처입니다. 스카이레이크는 CPU 파이프라인의 프론트 엔드를 크게 확장한 것이 구조적인 특징입니다. 구체적으로 보면 기존에 4명령/사이클이었던 명령 디코드를 5명령/사이클로 확장했습니다.
크게 확장된 스카이레이크 프론트엔드
인텔 아키텍처도 AMD와 마찬가지로 CISC(Complex Instruction Set Computer)의 특징을 어느 정도 남긴 채 내부 명령 Micro-op로 변환합니다. 디스패치 단계에서 운영 유닛인 Micro-op로 분해합니다. 또한 Micro-op에 uOP 캐쉬를 갖춥니다. uOP 캐시에서의 디스패치는 기존 4uOPs/사이클이던 것을 스카이레이크는 6uOPs/사이클로 확장했습니다.
2015년의 IDF는 이러한 정보를 세션에서 밝히지 않았으나, 이번 핫 칩스에선 공식적으로 프론트엔드 확장을 발표했습니다. 스카이레이크의 실행 유닛은 그만큼 확장되지 않았습니다.
스카이레이크 코어의 다이어그램
스카이레이크의 실행 유닛