2017년의 차세대 CPU와 GPU가 컴퓨텍스에서 발표


ARM은 10nm 프로세스를 대상으로 한 차세대 CPU 코어인 Cortex-A73과 새로운 GPU 아키텍처인 바이프로스트(Bifrost) 기반 GPU 코어인 Mali-G71을 발표했으며, Mali-G71은 작년에 발표한 내부 버스 CoreLink CCI-550로 양방향 캐쉬 일관성을 지원한다고 밝혔습니다.

 

또한 big.LITTLE을 지원하는 리눅스 스케줄러 기반으로 Energy Aware Scheduling'이 도입돼 발전할 것임을 제시했습니다. 이러한 기술을 결합해 2017년에는 프리미엄 스마트폰의 CPU 성능이 2016년의 1.3배, GPU는 1.5배 증가하며, VR까지 대응하는 디바이스가 나올 것이라고 전망했습니다.

 

01.png

 

Cortex-A73

 

02.jpg

 

03.jpg

 

10nm 프로세스 세대의 프리미엄 스마트 폰의 성능
 

04.jpg

 

Cortex-A73와 Mali-G71 파트너의 일부

 

Cortex-A73는 코드네임 아르테미스(Artemis)의 CPU 코어 IP입니다. ARM의 분류에 따르면 최상위 성능의 프리미엄 CPU 코어로서 big.LITTLE 구성에선 big 코어에 해당됩니다. 포지셔닝을 보면 현재의 프리미엄 CPU 코어인 Cortex-A72'의 후속작입니다. 16nm의 Cortex-A72와 비교해서 10nm의 Cortex-A73는 30% 높은 성능(전력 기준으로), 30%의 전력 효율, 크기는 0.65제곱mm로 매우 작은 크기를 실현했습니다.

 

05.png

 

ARM의 CPU 라인업
 

이렇게 보면 단순히 성능과 효율을 올린 것처럼 보이지만 실제로는 이야기가 좀 더 복잡합니다. Cortex-A72가 상대적으로 성능을 중시한 설계인 반면, Cortex-A73는 상대적으로 전력 효율을 중시했기 때문입니다. 그래서 A72과 A73는 포지션이 좀 다른 CPU 코어가 됩니다.

 

 

2명령 디코드 파이프 라인을 쓴 Cortex-A73


Cortex-A73의 가장 큰 특징은 2명령 디코드 슈퍼 스칼라 파이프 라인입니다. 현재의 하이엔드 CPU 코어인 Cortex-A72가 3명령 디코딩이니 명령 디코딩 대역이 2/3으로 줄어든 것이지요. ARM의 다른 CPU 코어와 비교하자면 Cortex-A9가 2명령 디코드 슈퍼 스칼라였으니, Cortex-A73는 Cortex-A72보다 좁은 명령 디코딩 대역을 지녔으며, 아키텍쳐는 Cortex-A9 수준입니다.

 

06.png

 

ARM의 Cortex-A 제품군의 아키텍처 변천


더 많은 명령을 동시에 디코딩할 수 있으면 더 많은 명령을 병렬 실행할 수 있습니다. 명령 디코드 수는 클럭 당 성능에 크게 영향을 줍니다. 일반적으로 성능이 높은 CPU는 더 많은 명령을 디코딩 할 수 있는 구조인 것이 보통입니다. 그런데 ARM은 Cortex-A73에서 명령 디코드 대역을 거꾸로 좁혔습니다.

 

이것은 스마트폰에 최적화해 지속 성능을 높일 수 있도록 설계했기 때문입니다. 결과적으로 Cortex-A73는 ARM의 프리미엄 CPU 코어 중에선 가장 다이 크기가 작고 성능 효율이 높은 CPU가 됐습니다. 또한 마이크로 아키텍처를 구체화해 클럭 당 성능도 3명령 디코딩의 Cortex-A72보다 떨어지지 않습니다. 

 

07.jpg

 
Nandan Nayampally(Vice President of Marketing and Strategy)

 

ARM의 Nandan Nayampally는 아래의 슬라이드를 제시하며 Cortex-A73의 성능을 설명했습니다. ARM의 최근 3세대 동안의 프리미엄 CPU 코어 지속 성능을 스마트폰이 사용하는 전력 범위에 두고 비교한 것인데요. Cortex-A73, A72, A57는 각각 다른 공정 기술이을 씁니. 이 비교에선 A73이 Cortex-A72보다 30%, A57보다 110% 정도 성능이 높아집니다.

 

08.png

 

750mW의 전력 범위에서 지속 성능을 비교


코어 당 750mW에서 최대의 성능을 발휘할 수있는 CPU 코어 설계


여기서 중요한 건 이것이 스마트폰 CPU 코어의 전력 범위인 코어 당 750mW에서의 지속 성능을 비교했다는 점입니다. 750mW라면 10nm의 Cortex-A73은 거의 지속적으로 2.8GHz에서 작동이 가능하기에 제 성능을 낼 수 있습니다. 저전력 기술이 적용되면서 표기 성능을 제대로 내지 못하는 경우도 별로 없지요.

 

반면 16nm의 Cortex-A72는 2.5GHz에서의 최대 성능은 10nm의 A73과 크게 다르지 않습니다. 그런데 16nm A72은 750mW의 전력 범위에서 지속적으로 최고 성능을 내지 못합니다. 따라서 시간이 지날수록 성능이 떨어집니다. 결과적으로 지속 성능은 A72보다 A73 쪽이 30 % 높아집니다.

 

이것이 20nm의 Cortex-A57에선 평면 트랜지스터를 썼기에 전력 소비에서 더 차이가 커집니다. 20nm A57은 1.9GHz로 동작할 수 있지만 지속 성능은 더 떨어집니다. A73 쪽이 2배 이상 성능이 높습니다.

 

정리하면 스마트폰이라는 전력의 제한을 감안하면 Cortex-A73가 실제 성능이 높은 CPU 코어가 됩니다. 물론 그 범위가 750mW가 아니라 서버에 맞춘 2W라면 이야기는 달라집니다. 같은 10nm 공정에서 성능을 더 추구한 물리적 설계를 하면 Cortex-A72가 높은 성능을 발휘하게 됩니다. 따라서 서버처럼 전력 제약이 적은 분야에선 Cortex-A72가, 스마트폰 같은 모바일 분야에선 Cortex-A73로 나뉘어질 것으로 보입니다.

 

09.jpg

 

녹색이 성능, 보라색이 제조 공정, 하늘색은 새로운 코어가 새로운 공정을 사용했을 경우의 전력 사용량

 

 

마이크로 아키텍처를 최적화

 

Cortex-A73는 이처럼 스마트폰에 최적화하기 위해, 마이크로 아키텍처를 전력 효율 중시로 전환하고 모바일 워크로드에 최적화했습니다. 분기 예측 매커니즘을 보다 효율적으로 개선하고 프리페치, 메모리 경로 캐시 등을 향상시켰습니다.

 

프론트엔드에선 L1 명령 캐시를 확장해 64KB(4-way, 64B 캐시 라인)의 구성을 취할 수 있도록 했습니다. 또한 RAM 자체도 저전력에 최적화했습니다. 파이프라인의 거품을 빼고 높은 IPC (Instruction-per-Clock)를 실현하는 데 초점을 맞췄습니다. 분기 예측은 Branch Target Address Cache (BTAC)을 크게 늘렸습니다(MicroBTAC 64개 스테이트).


10.png

 

11.png

 

명령 디코드는 2명령/주기로 줄인 대신 Micro-OPs로 분할하는 명령을 낮췄습니다. 명령 발행과 리네이밍 로직을 개량해 32-bit (AArch32)와 64-bit (AArch64)의 두 모드에서 자원을 공유(ARM에서는 두가지 명령어 세트가 크게 다릅니다), 효율을 향상시켰습니다.


12.png

 

13.png

 

NEON / FPU 엔진은 데이터 경로를 확장하고 실행 지연 시간도 일부 단축했습니다. L1 데이터 캐쉬도 기존의 2배인 64KB 구성이 가능하며, 데이터 프리 페치 알고리즘이 더욱 스마트해졌습니다. 또한 데이터 캐시는 가상 주소 그대로 캐시 액세스 할 수 있는 VIPT (Virtually Indexed, Physically Tagged)로 액세스를 고속화시켰습니다.

 

메모리 액세스인 Translation Lookaside Buffer (TLB)도 향상된 메모리 페이지 워커도 2배가 됐습니다. 여러 CPU 코어에서 공유 L2 캐시는 병렬 액세스의 성능 손실을 없애고 멀티 코어 성능을 향상시켰습니다.


14.png

 

15.png

 

이러한 섬세한 개량 끝에 ARM은 Cortex-A73에서 2 명령 디코드를 사용하지만 높은 성능을 제공할 수 있는 코어로 만들었습니다. ARM의 첫 2 명령 디코딩 기반의 아웃 오브 오더 실행 코어였던 Cortex-A9 프로세서보다도 훨씬 더 성숙됐습니다.

 

16.png

 


Cortex-A72보다 성능이 향상된 부분도 많습니다

 

 

0.65제곱mm로 가장 작은 프리미엄 CPU 코어


2 명령 디코드 파이프 라인을 쓰면서 Cortex-A73는 칩의 CPU 코어가 차지하는 면적이 줄었습니다. ARM에 따르면 10nm 프로세스의 Cortex-A73 코어가 차지하는 다이 면적은 0.65제곱mm 이하라고 합니다. 16nm 프로세스의 Cortex-A72와 비교하면 코어 영역은 46% 감소, 20nm의 Cortex-A57와 비교하면 70% 줄었습니다.

 

17.png

 


다이 면적이 대폭 축소하는 Cortex-A73

 

이를 가지고 계산하면 16nm A72 다이는 1.2제곱mm, 20nm A57는 2.2제곱mm가 됩니다. 지금까지 발표된 자료에선 20nm의 A57은 1.93제곱mm였으니 숫자는 크게 다르지 않습니다. 20nm → 16nm에서 프로세스의 백엔드 스펙은 상당히 비슷하기에 A57에서 A72로 오면서 설계 개선으로 다이를 줄인 부분이 큽니다.

 

Cortex-A73 코어가 0.65제곱mm인데 이는 기존 ARM의 프리미엄 CPU 코어와 비교하면 상당히 작습니다. 코어 크기가 명확하게 나뉘었던 28nm 프로세스에서는 프리미엄 Cortex-A15가 2.x제곱mm의 다이 영역이었고, 중급형인 Cortex-A9가 1.x제곱mm의 다이 면적, 고효율 코어 Cortex- A7이 0.45제곱mm의 다이 면적을 지녔습니다. 10nm 세대에서는 프리미엄 코어 Cortex-A73가 고효율 코어의 다이 영역의 범위가 딥니다.

 

Cortex-A73의 디자인은 스마트폰의 CPU 코어가 그만큼 작아지고 효율적으로 만들어지기를 바라는 수요가 크다는 이야기이기도 합니다. ARM의 CPU IP를 사용하는 스마트폰의 CPU 코어는 big.LITTLE 구성에서 6 ~ 8 코어가 일반적입니다. 또한 스마트폰은 높은 그래픽 성능이 요구되고, 모바일 SoC에서 GPU 코어가 차지하는 비율이 증가하고 있습니다. 따라서 CPU 코어는 더욱 작고 전력 사용량이 낮은 것을 필요로 하고 있습니다.

 

18.png

 


Cortex-A53의 옥타 코어와 같은 크기의 다이를 유지하면서 성능은 큰 폭으로 향상된 Cortex-A73x2 + Cortex-A53x4의 big.LITTLE 구성

 
19.png

 


Cortex-A72와 비교해도 성능 효율이 크게 향상

 

 

Mali-G71에서 아키텍처를 대변혁

 

ARM은 GPU 아키텍처를 지금까지의 미드가르드('Midgard)에서 바이프로스트(Bifrost (바이프로스트)로 바꿨습니다. 이번 ARM의 GPU 발표에서 가장 중요한 점은 ARM GPU의 핵심인 실행 모델을 변경한 것입니다.

 

20.png

 


ARM GPU 아키텍처의 변천


21.jpg

 

22.png

 

ARM GPU 아키텍처의 변천


23.jpg

 

ARM의 새로운 GPU 코어 Mali-G71

 

GPU의 실행 모델은 크게 두 종류가 있습니다. 하나는 Array of Structures (AOS), Packed), SIMD (Single Instruction, Multiple Data)라는 방식이고 다른 하나는 Structure of Arrays (SOA), Scalar, SIMT (Single Instruction, Multiple Thread)라는 방식입니다.

 

AOS/팩/SIMD 형태에선 데이터를 일정 크기로 압축된 형태로 처맇바니다. 반면 SOA/스칼라/SIMT에선 일정한 처리를 여러개로 묶어 처리합니다. 전통적인 GPU는 전자지만 NVIDIA가 지포스 8800에서 스칼라 형태로 바꾼 것을 시작으로 점점 스칼라 형으로 바뀌었습니다. 그 와중에 ARM GPU는 계속해서 SIMD 방식을 유지했으나 바이프로스트 아키텍처인 Mali-G71에서 SOA / 스칼라 형 모델이 됐습니다.

 

24.png

 


기존 ARM GPU 코어의 SIMD 형

 

25.png

 

이번에 도입 한 스칼라 형

 

26.png

 

바이프로스트는 프레디케이션으로 저건 분기를 처리

 

27.png

 

16 개의 연산 유닛을 AOS와 SOA 실행 모델에서 동작시킨 경우

 

두 방식은 저마다 장단점이 있습니다. 데이터가 3~4개 등으로 정해진 수가 있다면 AOS가 효율이 좋습니다. 그러나 데이터 유형이 다양할 경우 스칼라 방식이 유연하게 대처합니다. 또 컴파일러 최적화도 쉽고 실행 효율을 높이기도 쉽지요. 화면 해상도가 높을 경우에도 이쪽이 좋아집니다.

 

ARM은 바이프로스트로 전환하면서 GPU 코어의 에너지 효율을 높였습니다. 현 세대의 Mali-T880에 비해 Mali-G71의 성능은 16 코어 구성으로 1.5배, 전력 효율은 20% 향상, 확장성은 32 코어 (128 32-bit 단위)가 됐습니다.

 

28.png

 

30.png

 

 

31.png

 


성능을 확장하는 Mali-G71

 

32.png

 

Mali-G71는 32 코어 구성까지 가능
 


모바일에 최적화된 연산 코어

 

ARM의 바이프로스트 아키텍처는 같은 SOA / 스칼라 형 모델이라 해도 NVIDIA 나 AMD, PowerVR의 Imagination Technologies는 실행 유닛의 구성이 크게 다릅니다. 많은 업체들은 연산 유닛을 16 ~ 32 유닛의 와이드 구성으로 하지만, ARM의 바이프로스트는 4 유닛의 좁은 구성입니다. 이런 구성은 인텔의 GPU 코어와 비슷하지요.

 

33.png

 


4-way의 FMA와 ADD으로 구성된 ALU


34.png

 

35.png

 

바이프로스트 코어의 구조

 

각각의 연산 유닛이 SIMD (Single Instruction, Multiple Data)를 계승한다는 점이 바이프로스트의 특징입니다. 32비트 연산 파이프는 FP32 (32-bit) 단정밀도 부동 소수점 연산과 int32 (32-bit 정수 연산)을 실행할 수 있을 뿐만 아니라 FP16 (16-bit 부동 소수점) 및 int16 (16-bit 정수) 는 각각 2-way 및 int8 (8-bit 정수)는 4-way 실행이 가능합니다.

 

36.png

 

Mali-G71의 쉐이더 APU

 

이러한 작은 데이터 유형 지원은 모바일에서 GPU 코어에 다양한 데이터 처리를 진행할 수 있기 때문입니다. 또한 바이프로스트 아키텍처는 임시 레지스터를 갖추고 연산 도중에 값을 레지스터에 돌려줌으로서 성능과 전력 효율을 높여줍니다. 렌더링 방식은 타일 기반입니다.

 

37.png

 

38.png

 

임시 레지스터를 이용해 범용 레지스터 액세스를 줄임

 

39.png

 

바이프로스트 아키텍처의 묵표는 모바일부터 고급 VR까지

 


모바일로 되돌아온 ARM의 발표

 

이번 ARM 발표는 모바일로 돌아온 것 같은 내용이기도 합니다. 지난 몇 년 동안은 모바일을 떠나 서버나 고성능, 혹은 더 작은 IoT (The Internet of Things)에 초점을 맞춰 왔지만, 이번에는 모바일에서 성능 효율을 어떻게 높일 것인지에 초점을 맞추고, 다시 모바일 기반을 굳히려는 데 노력한 것으로 보입니다.


40.png

 

41.jpg

 

ARM의 Rene Haas(Executive Vice President and Chief Commercial Officer)

 

그 배경에는 멈추지 않는 모바일 시장의 발전이 있습니다. ARM의 Rene Haas(Executive Vice President and Chief Commercial Officer)는 30 억의 ARM 기반 스마트폰이 쓰이고 있으며, 올해 (2016 년) 중에 추가로 15 억개의 스마트폰이 판매 될 것이라고 설명했습니다. 스마트폰은 어디에나 쓸 수 있는 맥가이버 칼 같은 물건이 됐다고 강조했습니다. 또 스마트폰이 앞으로 컨슈머 IoT과 머신 러닝, VR (Virtual Reality) 등의 중요한 포털이 된다고 설명했으며, 이러한 요구에 맞추는 모바일 SoC의 IP가 필요하다고도 했습니다.

 

42.jpg

 

43.jpg

 

44.jpg

 

애플리케이션에서 필요로 하는 성능이 점점 높아지고 있습니다. 120FPS의 높은 프레임과 4K 고해상도 그래픽 표시의 지연 시간 단축, CPU와 GPU의 밀접한 연계 및 실시간 응답성이 요구됩니다. ARM은 이러한 애플리케이션의 요구에 부응하기 위해 스마트폰에 최적화된 효율적인 IP를 제공하려고 합니다.

 

45.jpg

 

46.jpg

 

47.jpg

 

48.jpg

 

49.jpg

 

50.jpg

 

51.jpg

 

이 Cortex-A73에 대해서 ARM 모바일 솔루션 부장인 제임스 브루스는 "모바일 시장이란 점에서 Cortex-A73은 Cortex-A72의 후속작입니다. 그러나 엔터프라이즈란 점에선 Cortex-A73은 Cortex-A72의 후속작이 아닙니다."라고 했습니다. A73은 모바일, 구체적으로는 스마트폰, 태블릿, IoT, 디지털 TV를 위한 것이니 A72의 후속작이라 할 수 있으나, 서버/네트워크 장비에선 후속작이 아니란 것이지요.

 

그 이유에 대해서 ARM CPU 사업부 마케팅 프로그램 부장인 이안 스마일스는 "서버와 네트워크 기기에 필요한 안정성, ECC의 지원은 생략했습니다. 이런 기능은 모바일에선 필요가 없고 전력 효율을 낮추는 요인이 될 수 있습니다."라고 설명합니다. 그럼 A73에서 서버 기능을 빼버렸으니 ARM이 서버를 포기한 것일까요? 그건 또 아니라고 합니다.

 

"우리는 서버 사업을 위해 노력하고, ARM ISA를 서버용 SoC는 이미 어플라이드 마이크로에서 출시하고 있으나, 아직까지는 소프트웨어 에코시스템이 완성되기를 기다리고 있는 상황입니다. 이번 Cortex-A73는 모바일 시장에 초점을 맞춘 제품으로, 모바일 시장의 업데이트 주기는 서버용 제품에 비해 빠른 편입니다. 서버는 더 긴 텀을 두고 갱신되지요."라며 ARM의 서버 사업은 아직 아무런 영향을 받지 않는다고 강조했습니다.

 

제조 공정의 경우ARM 수석 세그먼트 마케팅 관리자 이반 린은 "TSMC는 지난주의 기술 심포지엄에서 10nm 공정의 조기 출시를 밝혔으며 2017년 쯤에 나올 전망입니다. ARM은 Cortex-A57의 프리미엄 세그먼트를 위한 제품을 10nm 프로세스로 내놓을 것이라 생각합니다."라고 말했습니다. 따라서 처음부터 프리미엄 시정을 공략하니 10nm 공정이 우선 나오고, 빅 리틀 구성을 위해 A53도 섞어 쓸 가능성이 있습니다. A73 4코어에 A53 4코어나 A73 2코어에 A53 4코어가 반반 정도로 나올 듯.

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