제조 공정과 코어 아키텍처가 바뀐 신세대 APU

 

AMD APU의 세대가 교체됐습니다. AMD는 저전력 APU의 2세대 제품인 카비나와 테마쉬를 발표, APU를 28나노로 바꿔 CPU 코어와 GPU 코어 아키텍처를 교체함과 동시에 원칩으로 통갑했습니다.

 

CPU 코어는 새로운 설계인 재규어, GPU 코어는 외장 그래픽과 같은 GCN이 되었고, 사우스브릿지 FCH-퓨전 컨트롤러 허브- 칩도 다이로 통합됐습니다. AMD는 카비니/테마쉬로 저전력/저가형 노트북과 태블릿을 공략하려 합니다.

 

AMD는 2011년에 저전력 CPU 코어인 밥캣을 바탕으로 한 APU 자카테와 온타리오를 출시했습니다.밥캣은 TSMC 40나노 공정으로 제조한 코어로, AMD를 이를 통해 하이엔드용 불도저와 저전력 밥캣의 2가지로 CPU 마이크로 아키텍처를 분화시켰습니다. 카비니/테마쉬는 TSMC 28나노의 공정으로 제조되며 저전력 계열 2세대에 해당되는데 AMD는 이번 세대에서 아키텍처를 크게 진화했습니다.

 

1.jpg

 

카비니와 테마쉬의 개요

 

2.jpg

 

AMD CPU 아키텍처

 

카비니와 테마쉬의 아키텍처를 살펴보면 이 APU의 특징을 잘 알 수 있습니다.

 

우선 CPU 코어는 밥캣에서 재규어로 바뀌었습니다. 밥캣은 싱글 코어 단위로 설계되지만 재규어는 4코어를 기본으로 설계되어 있습니다. 기존 AMD의 저전력 CPU 코어는 각각 독립된 L2 캐시를 갖추고 배타적인 제어를 했습니다. 재규어는 4코어가 2MB L2 캐시를 공유하는 구조입니다. 4코어가 L2 캐시와 조합하 CU(컴퓨트 유닛)이라 불리는 모듈을 구성합니다. 카비니/테마쉬는 이 CU가 한개 들어간 구성입니다. 같은 재규어를 쓴 PS4의 APU는 재규어 CU를 2개 써서 8코어가 나옵니다.

 

3.jpg

 

4.jpg

 

재규어의 L2 캐시

 

5.jpg

 

재규어의 다이

 

6.jpg

 

재규어의 메모리 계층

 

재규어는 이전 세대인 밥캣을 확장한 마이크로 아키텍처입니다. 따라서 기본 블럭 구성은 밥캣과 재규어가 비슷합니다. 그러나 재규어에선 성능 향상과 명령 집합의 확장, 전력 절약이 들어갔으며 밥캣과 비교하면 성능/전력이 크게 향상합니다. 또 제조 공정 개선도 빼놓을 수 없습니다.

 

7.jpg

 

밥캣의 다이어그램

 

8.jpg

 

재규어의 다이어그램

 

9.jpg

 

아키텍처 개선

 

 

밥캣보다 성능/절전이 뛰어난 재규어

 

명령어 셋트는 256-bit SIMD(Single Instruction Stream, Multiple Data Stream)명령이 포함된 새 명령 AVX를 지원합니다. 아래가 추가된 새 명령입니다. 

 

·SSE4.1, SSE4.2
·Advanced Vector Extensions(AVX)
·AES, CLMUL
·MOVBE
·XSAVE/XSAVEOPT
·F16C, BMI1

 

또 밥캣에서 부동소수점/SIMD 연산 파이프의 실행 유닛은 64비트였지만 재규어에선 128비트가 됐습니다. 단정밀도 32비트 연산이면 4 곱하기와 4 덧셈을 1사이클에 같이 처리할 수 있습니다. 256비트 AVX 명령을 실행할 때는 2사이클 더블 펌프로 실행합니다. 여기에 맞춰 데이터 패스도 확장됩니다.

 

10.jpg

 

부동소수점 연산 유닛의 확장

 

11.jpg

 

데이터패스의 확장

 

명령 인출&디코딩은 명령 캐시에서 프리패처를 개량하고 4x32KB의 루프 버퍼를 더해 명령 인출의 전력 효율을 높였습니다. 또 x86/x64 명령의 딬코더는 1스테이지를 더해 보다 파이프라인을 깊게 만들어 클럭도 10% 이상 향상시켰습니다. 정수 연산에선 스케줄러의 항목의 늘려 아웃 오브 오더의 윈도우를 확대했습니다. 이런 개선을 통해 재규어는 밥캣보다 IPC-클럭 당 명령어 처리-도 15% 이상 향상됐다고 합니다.

 

12.jpg

 

코어의 파이프라인을 깊게 설계

 

13.jpg

 

프리패처의 개량

 

14.jpg

 

정수 연산의 개량

 

15.jpg

 

캐시의 개량

 

물리적인 설계의 경우 재규어는 고밀도 9트랙 라이브러리로 설계됐으며 다이 에어리어는 1코어 당 3.1제곱mm로 ARM 프로세서와 비슷한 수준입니다. 밥캣은 참고로 4.9제곱mm였지요. AMD의 퍼포먼스급 CPU와 비교하면 32나노 불도저 2코어 모듈이 28나노 재규어 4코어 CU와 크기가 비슷합니다. 같은 28나노 공정의 AMD 차세대 퍼포먼스 CPU 코어 스팀롤러와 비교해도 면적은 같은데 코어 수가 2배가 됩니다.

 

16.jpg

 

재규어 플로어 플랜

 

17.jpg

 

밥캣과 다이 비교

 

18.jpg

 

스팀롤러와 비교

 

재규어에선 프로세스 사이에 이식성을 높이면서 사용자 지정 매크로를 통해 성능 향상을 꾀했습니다. 재규어와 밥캣을 비교하면 같은 전압에서도 지속해서 높은 클럭을 달성할 수 있습니다. 재규어는 밥캣보다 높은 클럭으로 동작해 성능을 향상시킬 뿐만 아니라 밥캣과 같은 클럭으로 작동하지만 구동 전압을 낮춰 전력 사용량을 줄이는 것도 가능합니다.

 

19.jpg

 

구동 전압과 클럭의 관계

 

 

GPU 컴퓨팅 기능을 대폭 강화한 GPU 코어

 

카비니/테마쉬는 APU로선 처음으로 GCN 아키텍처를 쓴 제품입니다. 원래대로라면 GCN을 넣은 메인스트림 APU 카베리가 올해 전반기에 나올 계획이었으나 카베리가 늦어졌기 때문에 올해 중반기엔 카비니/테마쉬만이 GCN 기반 APU가 될 것입니다.

 

카비니 계열의 GCN은 외장 그래픽 GPU의 GCN과 기본 설계는 같습니다. 스펙을 보면 128개 부동소수점 연산 유닛이 있으니 저가형 GPU에 해당됩니다. 그러나 외장 GPU와 비교하면 큰 차이가 하나 있는데 그건 GPU에서 범용 프로그램을 실행하는 GPU 컴퓨팅을 위한 ACEs(Asynchronous Compute Engines)라 불리는 유닛 강화입니다.

 

20.jpg

 

카비니/테마쉬의 GPU 코어 개요

 

21.jpg

 

카비니/테마쉬의 GPU 코어 개관

 

카비니엔 ACE 엔진이 총 4유닛, 외장 GPU와 비교하면 연산 유닛에 비해 그 비율이 상당히 높습니다. ACE는 컴퓨트 태스크의 제어를 하는 단위입니다. 그래픽 작업을 발송하는 그래픽 파이프 라인과 독립되어 그래픽과 동시에 컴퓨트 태스크의 생성과 발행이 가능합니다.

 

GCN 아키텍처에선 각각의 ACE가 컴퓨트 태스크의 명령을 메모리(나 캐시)에서 인출하고 작업 큐를 생성합니다. 작업 큐는 실제로 온 메모리에 있으며 최대 8큐를 지원합니다. ACE가 이 작업 큐에서 컴퓨트 태스크를 GPU 코어의 실행 유닛인 CU로 발행합니다.

 

22.jpg

 

GCN의 컴퓨트 아키텍처

 

구체적으로는 1 사이클마다 각각의 ACE가 1개의 컴퓨트 워크 그룹을 작성할 수 있습니다. 도 사이클마다 워크 그룹 중 1개의 웨이브프론트를 CU에 발행할 수 있습니다. 웨이브프론트는 AMD GPU의 실행 단위로 64스레드로 묶여 있습니다. 일반적으로 1개의 작업 그룹은 여러 웨이브프론트로 이루어집니다. ACE는 같은 작업 그룹에서 생성한 웨이브프론트를 같은 1개의 CU에 발행합니다. 작업군은 완전한 아웃 오브 오더로 ACE가 작업을 추적하여 정합성을 유지합니다.

 

GCN 아키텍처에서는 작업 관리의 파이프라인이 그래픽과 컴퓨트로 분리되어 있습니다. ACE는 컴퓨트 태스크만 생성하고 관리합니다. 그래픽 파이프도 컴퓨트 태스크를 발행할 수는 있지만 기본적으로는 ACE가 실시합니다. ACE의 수가 많은 건 카비니/테마쉬의 GPU 코어는 잘게 나뉘어진 컴퓨트 태스크를 다수의 인플라이트에서 관리 실행할 수 있다는 것을 의미합니다. GPU의 경우 GPU 코어에 실행하는 범용 컴퓨트 태스크의 규모가 크지 않을 경우 효율이 떨어지는 경우가 있는데 카비니/테마쉬 계열에선 상대적으로 세밀한 작업에서도 효율이 떨어지지 않습니다. 이 구조는 사실 PS4 APU의 GPU 코어와 비슷합니다. PS4도 ACE를 다수 갖춰 64개의 컴퓨트 태스크 큐를 관리할 수 있습니다.

 

 

GCN 아키텍처의 첫번째 APU

 

카비니/테마쉬의  GPU 코어는 기존 APU에 탑재된 VLIW(Very Long Instruction Word)4/5계의 GPU 코어와 코어 아키텍처가 판이하게 다른 새 GPU 코어입니다. GCN 계열의 GPU 코어는 기존의 AMD GPU 아키텍처보다 다양한 새로운 종류의 쉐이더나 범용 컴퓨팅 프로그램 성능을 잘 뽑아낼 수 있다는 장점이 있습니다.

 

GCN에서 GPU는 컴퓨트 유닛(CU)라 불리는 프로세서 클러스터로구성됩니다. 카비니/테마쉬에서 CU 수는 2개니 매우 규모가 작습니다. 그러나 각각의 CU는 총 64개의 부동소수점 연산 유닛(FMAD)를 갖춰 총 128개의 FMAD가 있습니다.

 

CU는 연산 유닛, 로드/스토어, 텍스처 유닛, 캐시&로컬 스크래치 패드 메모리 명령 유닛을 갖춘 프로세서입니다. 외장 GPU에선 CU가 최대 4개로 구성되어 큰 클러스터를 구성하지만 카비니/테마쉬에선 2CU에 L1 명령 캐시와 L1 스칼라 데이터 캐시를 공유합니다.

 

23.jpg

 

GCN의 핵심

 

24.jpg

 

GCN 컴퓨트 유닛의 개요

 

25.jpg

 

GCN의 아키텍처

 

GCN의 CU에는 4개의 벡터 유닛이 있습니다. 벡터 유닛은 16웨이 SIMD(Single Instruction, Multiple Data) 단위로 마스크 레지스터를 사용한 프레디케이션 컨트롤이 가능합니다. 즉 벡터의 각각 레인은 프로그램 쪽에서 조건 분기가 된다는 것. 각각의 벡터 유닛은 다른 웨이브프론트를 동시에 실행합니다. 웨이브프론트는 64스레드며 벡터 유닛은 4사이클마다 1개의 웨이브프론트를 실행합니다. 벡터 유닛은 각각 64KB의 벡터 레지스터를 갖추고 있습니다. 레지스터가 상대적으로 큰 건 GPU에서 레지스터를 크게 취해 멀티스레딩을 하는 것으로 메모리 엑세스의 레이턴시를 감추기 때문입니다.

 

벡터 유닛의 FMAD는 배정밀도 작업도 지원하지만 단정밀도가 풀스피드라면 배정말도는 덧셈 ADD에서 1/8, 곱셈에선 1/16 정도의 속도로 처리할 수 있습니다.

 

26.jpg

 

27.jpg

 

GCN CU의 주요 스펙

 

CU는 16KB의 L1 데이터 캐시와 64KB의 로컬 데이터 공유 메모리(Local Data Share Memory)로 불리는 스크래치 패드 메모리를 공유합니다. 이 밖에도 로드/스토어와 텍스처 유닛이 있고 1개의 스칼라 유닛이 있습니다.

 

픽셀의 백엔드 처리를 하는 ROP(Rendering Output Pipeline)는 최소의 구성으로 4픽셀을 산출해 낼 수 있습니다. 외장형 GPU에선 ROP가 메모리 컨트롤러에 바로 연결되지만 APU 내부의 GPU 코어는 크로스바 스위치에 연결되어 온 칩 인터커넥트를 통해 CPU와 공유 DRAM 컨트롤러에 연결됩니다.

 

메모리 계층은 GPU 코어의 CU 사이에 공유 범용 L2 캐시가 있습니다. 또 CU 사이에 데이터 교환을 위한 글로벌 데이터 공유 메모리(Global data sahre memory)가 4KB 있습니다. 디스플레이 출력 파이프 라인은 2계통으로 4K를 지원합니다. 디스플레이 출력 계열에서는 VGA도 지원합니다.

 

28.jpg

 

29.jpg

 

GCN의 읽기/쓰기 캐시

 

30.jpg

 

디스플레이 출력과 비디오 기능

 

 

내부 버스 아키텍처는 기존의 APU를 답습

 

카비니/테마쉬 전체의 구조는 기존 AMD APU를 답습하고 있습니다. AMD의 APU는 메인스트림 라노/트리니티, 저전력 자카테/온타리오의 구조가 같습니다. CPU와 GPU의 메모리를 통일하는 hUMA(heterogeneous Uniform Memory Access)를 지원하는 카베리에선 내부 아키텍처도 변해 단일 계통의 인터커넥트로 통합되지만 카비니는 기존 구조를 유지합니다.

 

현재 AMD APU 내부 인터 커넥트 아키텍처의 큰 특징은 GPU 코어에서 DRAM 컨트롤러로 가는 버스가 2계통으로 나뉘어져 있다는 것입니다. 하나는 라데온 메모리 버스(코드네임 갈릭)으로 GPU 코어에서 메모리 컨트롤러에 광대역 접속을 실현합니다. 갈릭은 GPU 코어아 메모리 컨트롤러에 광대역으로 직려되는 외장 GPU에 가까운 액세스를 실현하는 버스입니다. 단방향 256비트를 양방향으로 연결하며 트리니티에선 2 DRAM 컨트롤러를 써서 2개의 갈릭이 있고, 자카테/온타리오는 1개의 DRAM 컨트롤러와 1개의 갈릭이 있습니다.

 

31.jpg

 

트리니티의 아키텍처

 

32.jpg

 

자카테 아키텍처

 

또 다른 버스는 퓨전 컴퓨트 링크(어니언)으로 CPU의 일관성을 지키는 버스입니다. 외장 GPU가 I/O 컨트롤러를 통해 CPU와 연결되던 버스를 온 다이에 내장한 것입니다. 이 버스를 이요하면 GPU 코어에서 CPU 캐시에 스누핑을 할 수 있게 됩니다. 어니언 버스를 이요해 GPU에서 범용 컴퓨팅을 할 때 CPU와 GPU 사이에 메모리 복사본을 둘 필요가 없게 됩니다.

 

카비니/테마쉬에서도 갈릭/어니언 버스의 기본은 같습니다. 그러나 카비니/테마쉬는 기존에 UMI 버스를 통해 외부에 달려 있던 FCH(Fusion Controller Hub)를 온 다이로 내장하면서 그 부분이 바뀌었습니다.

 

33.jpg

 

카비니의 아키텍처

 

34.jpg

 

카비니의 버스

 

I/O 부분에선 USB 3.0을 지원하면 메모리 인터페이스는 하드웨어적으로 DDR3L을 지원합니다. 원 칩으로 통합되면서 칩 사이의 인터페이스 만큼 전력 사용량이 줄어들고 메인보드의 회로 차지도 줄어들게 됩니다.

 

35.jpg

 

카비니의 I/O

 

카비니/테마쉬는 AMD의 APU에서 중요한 이정표입니다. CPU와 GPU의 기능과 성능을 확장하면서 AMD의 저전력 제품은 더욱 매력적이 되었습니다. 하지만 제품 뿐만 아니라 GCN를 탑재해 GPU 코어를 활용하는 헤테로지니어스 컴퓨팅을 한단계 더 발전했다는 점도 큰 의미입니다. 카비니/테마쉬는 앞으로 등장하게 될 APU의 완성형, 카베리 아키텍처의 기본을 구축하게 됩니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.