ARM Cortex-A15 아키텍처의 특징과 성능

 

올해의 안드로이드 스마트폰 시장은 쿼드코어가 대세를 이루었습니다. 하지만 같은 쿼드코어라 해도 실제 성능은 천차만별입니다. 저가형과 메인스트림 시장의 쿼드코어 스마트폰은 대부분 Cortex-A7이나 Cortex-A9 급의 CPU 코어를 쓰는데, 이들 코어는 성능, 제조 원가, 발열이 모두 낮은 편입니다. 그래서 보급형 시장에서 널리 쓰이고 있지요.

 

고급형 스마트폰 시장에선 새로운 변화가 일어나고 있습니다. 작년에 발표된 퀄컴의 Krait 시리즈 쿼드코어 외에, ARM의 정통 아키텍처인 Cortex-A15가 쿼드코어 스마트폰 시장에 등장한 것입니다. 삼성 엑시노스 5 옥타, NVIDIA의 테그라 4가 있겠네요.

 

Cortex-A15는 ARM Cortex-A 시리즈 중 제일 성능이 뛰어난 CPU 코어 아키텍처입니다. 발표는 2010년으로, 텍사스 인스트루먼트는 가장 빨리(2011년) 해당 아키텍처의 프로세서 라이센스(OMAP5)를 받은 회사입니다.

 

ARM 의 Cortex-A7, Cortex-A9 등의 아키텍처와 비교하면 Cortex-A15은 상당히 큰 차이점을 갖고 있습니다.

 

A15와 A9은 모두 아웃 오브 오더 실행 방식입니다. 그러나 Cortex-A15는 두배의 명령어 발사 포트와 실행 리소스를 가지고 있고, 명령어 디코딩 능력 역시 50% 높습니다. 동적 분기 예측 능력은 더 뛰어나며(다층 분기 지원 캐시를 사용함), 명령어 프리페치 대역도 더 강합니다(128비트와 64비트). 이런 요소들은 A15의 파이프라인 실행이 더 높은 효율을 낼 수 있게 해줍니다. 이것 외에도 A15는 VFPv4 부동소수점 유닛 설계를 사용해 FMA 명령과 하드웨어 나눗셈 명령을 실행할 수 있습니다. 그러다보니 A9의 최고 부동소수점 성능은 A15의 절반 정도밖에 안됩니다.

 

현실에서 A15의 경쟁자는 퀄컴이 직접 설계한 ARMv7A 호환 프로세서인 Krait라고 봐야 할 것입니다. 퀄컴은 Krait의 세부 아키텍처를 자세히 공개하지 않았습니다. 대체적으로 3개의 명령 디코딩 포트(A15와 같음), 7개의 명령 발사 포트(A15는 8개), 4개의 발사 포트(A15는 8개), 4KB+4KB의 1사이클 딜레이 L0 캐시 설계를 갖췄다는 것 정도.

 

구닥다리 Dhrystone DMIPS/MHz를 써서 성능을 비교해 보면, Krait는 3.3, A9는 2.5, A15는 3.5가 나옵니다. 표기 스펙만 보면 Krait는 딱 A15의 경쟁 상대가 되네요.

 

하지만 Dhrystone의 단점은 매우 쉽게 드러납니다. 이는 CPU의 L1 캐시를 꽉 채워 실행하는데, 이것은 L2 캐시(A15는 일체형 캐시 설계를 쓰고 Krait는 분리형 설계를 씁니다. 일체형 설계는 메모리 교환 레이턴시를 대폭 낮춰줍니다), 아웃 오브 오더 실행의 하드웨어 효율/복잡성, 메모리 시스템 유닛(A15의 메모리 유닛은 일정 조건에서 한 개의 명령을 더해 실행이 가능하지만, Krait는 이얼 능력이 있는지 알려지지 않았습니다) 등의 다양한 시스템의 실제 성능 차이를 평가해 낼 수가 없습니다.

 

당연히 ARM이 쓰는 DMIPS 성능 지표는 28년 전에 쓰인 Dhrystone와는 다릅니다. EEBMC Coremark(코어마크는 Dhrystone의 개선판이지만 최적화를 줄이고 엄격한 기준에서 테스트되게 함) 하지만 코어마크 역시 대다수 프로세서의 L1 캐시를 꽉 채운다는 문제를 가지고 있습니다. Dhrystone이 가지고 있는 문제, 실제 모바일 프로세서의 성능을 제대로 측정하지 못한다는 건 코어마크 역시 마찬가지입니다.

 

애플리케이션의 환경이 갈수록 복잡해지면서, 모바일 프로세서의 성능을 정확하게 평가하는 것 역시 점점 더 복잡해지고 있습니다. 왜냐하면 현재 모바일 디바이스는 웹서핑, 3D 게임, 멀티미디어, 인공지능 등을 실행할 때 L1 캐시를 완전히 채우진 않거든요. 이들 앱은 처리 과정 중 대량의 데이터를 쓰는 것들입니다.

 

그러자 사람들은 데스크탑 컴퓨터의 성능을 측정할 때 얻은 경험과 테스트 방법을 모바일 기기에서 쓰게 됩니다. CPU 테스트의 경우 제일 합리적인 테스트 방법은, 여러 종의 계산 규모를 지닌 진짜 앱 소스 코드를, 실행 기기에 맞춰 컴파일한 후 테스트하는 것입니다. 이런 상황에서는 모바일 기기의 계산 유닛, 메모리 유닛 등을 모두 충분히 활용할 수 있고, 테스트 결과로서 가장 가치가 높을 것입니다.

 

컴퓨터나 학술 과학 연구 업계의 공식 인증을 받은 CPU 테스트는 SPEC.org의 SPEC CPU가 있습니다. 이 테스트는 소스 코드를 사용해, 테스트를 하는 사람이 자신의 기기에 맞춰 컴파일해 테스트를 하는 방식입니다. 여러 프로세서의 연구 개발을 할 때 SPEC CPU를 가장 중요한 성능 지표로 삼고 있지요.

 

SPEC CPU의 최신 버전은 CPU2006입니다. CPU2006은 원래 데스크탑, 워크스테이션, 서버 프로세서의 애플리케이션 환경에 맞춰 만든 것으로, 메모리 용량(CPU2006은 멀티스레드 테스트를 지원해, 상당히 높은 메모리 용량을 필요로 합니다. 8스레드 프로세서는 16GB 메모리를 차지하니까 비교적 많은 평이지요)과 스토리지 공간(컴파일을 하지 않은 데이터가 몇 기가바이트를 차지하고, 컴파일 후에는 십 기가바이트가 넘습니다)을 많이 필요로 하는지라, 모바일 기기를 테스트할 때 CPU2006을 쓰는 건 그리 현실적이지 못했습니다.

 

SPEC CPU 몇 년의 간격을 두고 업데이트됩니다. CPU2006의 이전 버전은 CPU2000이었지요. speed 정수 성능 테스트는 1GB 급믜 모바일 기기에서도 실행할 수 있을 정도이며, 심지어는 일부 CPU2000의 테스트를 이식해 GPU의 가속 성능을 테스트하기도 했습니다.

 

ARM은 진영은 SPEC CPU의 테스트 결과를 잘 발표하지 않습니다. 여기엔 물론 원인이 있습니다. 적잖은 시간 동안 ARM의 기기는 대부분이 몇백MB의 메모리 공간을 가지고 있어, 운영체제롤 로딩한 후에는 애플리케이션을 실행할만한 공간이 매우 부족했습니다. 그 밖에, 전력 사용량을 줄이기 위해 ARM 프로세서의 성능 자체가 별로 뛰어나지 못했다는 점도 있지요.

 

하지만 재밌는 건, 올해 ARM 진영의 NVIDIA가 발표한 테그라 4는 CPU2000INT의 테스트 결과를 발표했다는 것입니다. 1.9GHz로 작동하는 NVIDIA 레퍼런스 플랫폼에서 테그라 4의 SPEC CPU2000int_base는 1168점이 나왔습니다. 이 테스트 결과는 2003년 4분기에 SPEC.org에서 발표한 AMD K8 슬랫지해머 2GHz의 결과에 해당하는 수준입니다.

 

NVIDIA는 샤오미 2(퀄컴 스냅드래곤 S4 프로, 즉 APQ8064 1.7GHz)의 CPU2000 테스트 결과도 발표했습니다. 또 퀄컴이 발표한 스냅드래곤 800과 스냅드래곤 600의 IPC와 클럭 변화를 통해, 스냅드래곤 800의 CPU2000 결과도 계산해 냈습니다.

 

1.png

 

위 이미지를 보면 스냅드래곤 600의 CPUINT2000_base 테스트 결과는 테그라 4의 절반에도 미치지 못합니다. 이것은 Cortex-A15와 Krait 아키텍처의 차이를 반영하고 있다 볼 수 있겠네요.

 

여기서 알아둬야 할 것은, 두 테스트 플랫폼 자체가 어느 정도 영향을 준다는 것입니다. 예를 들어 샤오미2에서 이 테스트를 실행했을 때, CPU 클럭이 변화했는지 NVIDIA는 설명하지 않았습니다.

 

일반적으로, APQ8065의 4개 코어가 풀 스피드로 작동할 경우, 어느 정도 시간이 지나면 과열 때문에 클럭이 최고 1.7GHz에서 점점 줄어들게 됩니다. 당연히 NVIDIA가 여기서 발표한 speed 모드에서의 CPU2000INT 테스트 결과에선, 싱글 스레드 테스트만 했으며 1개의 CPU 코어만 써서 테스트를 했습니다.

 

유감인 것은 퀄컴이 이 테스트 결과에 이의를 제기하지 않았다는 것입니다. (퀄컴은 자사 프로세서의 성능을 과시하는 데에 집중하기보다는, 베이스밴드에 CPU를 묶어서 파는 게 주 업무지요) CPU2000의 설정은 일반인에게 있어 상당히 복잡해, 이 테스트를 제 3자가 사용해서 똑같은 플랫폼에서 테스트한 경우는 없습니다.

 

비아가 나노 X2 프로세서를 발표했을 때 배포했던 파일을 보면, CPU2000을 써서 나노 X2 1.2+GHz와 아톰 D525를 비교한 테스트가 있습니다. 그 중 gcc 컴파일러에서 CPU2000 INT의 성적은 각각 799와 582점이며, 인텔 컴파일러를 써서 나온 점수는 955와 725점이었습니다.

 

NVIDIA의 테그라 4 CPU는 ARMv7 명령어 셋트에 속합니다. 따라서 컴파일러는 armcc나 gcc일 것입니다. NVIDIA가 인수한 PGI는 오래된 컴파일러 회사로, NVIDIA에 내부 테스트 버전을 제공하고 있습니다. 다만 PGI가 ARM 계열 컴파일러를 발표한 적이 없을 뿐입니다.

 

여기까지 보면, 여러분들은 Cortex-A15의 아키텍처 특징과 그 경쟁상대를 비교했을 때 성능에서 어떤 차이가 있었는지를 알았을 것입니다. 그러나 이런 플래그쉽 프로세서를 장착한 스마트폰 기기의 실제 성능은 과연 어떨까요.

 

 

쿼드코어 Cortex-A15를 쓴 스마트폰이 있는가?

 

이 문제는 사실 일부 사람들의 추측에서 나온 것으로, 여러 글들을 보면 Cortex-A15의 성능은 강력하지만 전력 사용량 역시 매우 높은 것으로 나타나 있습니다. 그래서 스마트폰에서 쓰기가 쉽지 않다는 의견도 나왔었지요.

 

이 문제를 1년 전에 물었다면 정말 다양한 답이 나왔겠지만 지금은 2013년도 절반이 지나갔고, 그 답은 매우 확실해졌습니다. 현재 Cortex-A15 쿼드코어 스마트폰이 시장에 여럿 출시되어 있고, 더 많은 Cortex-A15 기반 스마트폰이 출시될 것입니다. 이것은 Cortex-A15가 스마트폰에서 쓰기 힘들다는 의문에 마침표를 찍은 것입니다. 현재 Cortex-A15 아키텍처의 쿼드코어를 쓴 모바일 프로세서는 크게 두 가지가 있는데, 하나는 삼성 엑시노스 옥타이고, 다른 하나는 NVIDIA 테그라 4입니다.

 

삼성은 4월 27일에 갤럭시 S4의 여러 버전을 발표했습니다. 하지만 프로세서는 딱 두가지였지요. 퀄컴 스냅드래곤 600과 삼성 엑시노스 5410.

 

스냅드래곤 600은 사실 작년에 큰 붐을 일으켰던 APQ8064에 속합니다. CPU 마이크로 아키텍처는 Krait 300이지요. APQ8064의 Krait 아키텍처를 보면 하드웨어 데이터 프리 패처를 늘려, 데이터를 미리 메모리에서 L2 캐시고 가져옵니다. 그 밖에 Krait 300은 분기 예측의 정확도를 개선했는데, 그 변화는 Krait 300의 IPC를 대략 15% 늘렸고, 최고 클럭을 1.9GHz까지 높였습니다(HTC 같은 스마트폰 제조사는 APQ8064와 같은 1.7GHz를 쓰지만요). 따라서 스냅드래곤 600 CPU의 성능은 스냅드래곤 S4 프로보다 대략 28.5% 정도 앞서, Cortex-A15의 성능이 더욱 가까워졌습니다. 하지만 제조 공정은스냅드래곤 S4 프로와 같은 28나노 LP이며, 이 공정은 누설 전류 최적화가 되어 있지 않아, 누설 전류만 따지면 스냅드래곤 600이 스냅드래곤 S4 프로보다 더 큽니다.

 

그럼 왜 삼성은 한가지 프로세서를 쓰지 않은 것일까요? 먼저 삼성은 프로세서를 자체 연구 개발해서 쓸 수 있습니다. 이건 의심할 여지가 없으며, 그래서 Cortex-A15의 엑시노스 5410을 쓰게 됐지요. 그리고 삼성은 한국 기업이면서, 동시에 전 세게를 대상으로 영업을 하는 회사입니다. 제품을 세계 각국에 판매하고 있고, 특히 4G LTE로 가는 분위기가 뚜렸하며, 일부는 여전히 3G 제품을 공급하고 있습니다. 전세계 각지의 다양한 통신사에 맞춰서 공급하는 제품을 공급해야 하다본 퀄컴의 프로세서를 쓰지 않을 수가 없는 것입니다. 스냅드래곤 600은 스펙이 비슷하면서 LTE 지원도 하니까요.

 

2.jpg

 

삼성 갤럭시 S4 GT-I9500의 메인 회로 기판 정면 사진

 

3.jpg

 

삼성 엑시노스 5410. 짙은 색이 쿼드코어 A15 구역이고 분홍색은 쿼드코어 A7 구역

 

GT-I9500은 삼성 엑시노스 5 옥타를 씁니다. 내부 코드는 엑시노스 5410이고, CPU는 쿼드코어 Cortex-A15에 쿼드코어 Cortex-A7을 조합한 것입니다. 하지만 엑시노스 5410은 big.LITTLE 모드 중 IKS-코어 내부 전환-만 지원하며 GTS-글로벌 태스크 스위칭-은 지원하지 않습니다. 그래서 비록 물리적으로는 8개의 코어가 있지만, 그 본질을 보면 동시에 작동하는 코어가 최대 4개의 A15나 4개의 A7밖에 안 됩니다. 코어 전환은 현재 어떤 작업을 하느냐에 따라서 달라지지요.

 

NVIDIA 테그라 4가 나온지도 여러 달이 지났고, NVIDIA의 쉴드 외에 HP, ASUS, 도시바 등의 제품에도 테그라 4가 들어가고 있습니다. 중국 업체 중에서는 ZTE가 U88S를 내놨는데, 스마트폰에 테그라 4가 들어간 경우는 아직까진 그리 많지 않습니다.

 

4.png

 

NVIDIA 테그라 4. 오렌지색이 4+1 Cortex-A15. 녹색은 GPU

 

테그라 4와 섬성 엑시노스 5410의 메인 CPU는 모두 쿼드코어 Cortex-A15입니다. 하지만 NVIDIA는 ARM의 big.LITTLE 아키텍처를 쓰지 않고, 직접 개발한 4+1 코어 구조를 씁니다. 4+1에서 1은 컴패니언 코어라 부르지요.

 

컴패니언 코어는 절전 설계를 위한 것으로, 비교적 낮은 클럭으로 작동하는 Cortex-A15입니다. 부하가 가벼운 작업을 처리해 전력 사용량을 줄이는 것이 목표이며, 무거운 작업을 실행하면 메인 CPU로 작업을 옮깁니다.

 

Cortex-A15+Cortex-A7의 big.LITTLE과 비교해서 4+1의 컴패니언 코어를 쓰는 건 2가지 장점이 있습니다.

 

먼저 컴패니언 코어와 메인 CPU 코어는 아키텍처가 완전히 같아, CPU 작업 전환에 필요한 시간이, Cortex-A15에서 Cortex-A7로 옮기는 것보다 훨씬 빠릅니다. 복잡한 처리를 할 필요가 없지요.

 

두번째로 Cortex-A15의 싱글 코어 성능은 Cortex-A7보다 훨씬 높습니다. 그래서 다수의 평범한 앱은 메인 CPU를 쓸 필요가 없어 절전이라는 목적과 잘 어울립니다. 구체적인 전력 사용에 대해서는 나중에 보게 될 테스트에서 자세히 다루도록 하겠습니다.

 

어떤 제품의 성공 여부를 따질 때 제일 중요한 건은 당연히 판매량입니다. Digitimes가 TrendForce의 올해 7월 말에 발표한 연구 내역을 인용한데 따르면, 삼성 갤럭시 S4의 출하량은 2300만 대에 달했습니다.

 

만약 브랜드와 메이커가 받춰주지 못했다면, 그 어떤 제품도 이렇게 빠른 기간 안에 많은 양을 내놓진 못했을 테지요. 갤럭시 S4는 플래그쉽 제품으로 그 스펙은 고객들을 끌어당기기에 충분합니다. 쿼드코어 Cortex-A15나 쿼드코어 스냅드래곤 600은 그 성공의 핵심 요소 중 하나입니다.

 

5.jpg

 

위 그림은 스마트폰 제조사의 판매/예상치입니다. 삼성이 갤럭시 S4를 1분기에 발표하고 2분기에도 계속 상승세를 유지하고 있지만, 애플은 계속해서 떨어지고 있습니다.

 

그래서 이 단락에선 이렇게 마무리를 짓겠습니다. 시장에 이미 쿼드코어 Cortex-A15 스마트폰이 출시됐고, 이런 제품들은 이미 시장에서 눈여겨 볼만한 변화를 일으키고 있다고.

 

 

서로 다른 Cortex-A15 칩의 설계

 

6.jpg

 

ARM의 실험실에선 비록 자신이 개발한 프로세서가 있겠지만, 이들 프로세서는 연구 개발을 위한 것이지 최종 소비자에게 판매하기 위한 것은 아닙니다. 시장에 나온 'ARM' 프로세서는 모두 ARM의 아키텍처 라이센서나 코어 라이센서 등의 방식으로 제 삼자가 개발해서 판매하는 것이니까요.

 

따라서 시장에서 우린 각양각색의 ARM 프로세서를 볼 수 있습니다. 이들 프로세서의 칩 설계 회사, 제조 회사, 설계 기술 수준, 경험과 제조 공정 등이 모두 다릅니다. 다라서 이들 칩의 스펙이나 기능 등에는 절대로 무시할 수 없는 차이가 존재하게 됩니다.

 

여기서 우리는 삼성 엑시노스 5410과 NVIDIA 테그라 4를 이야기했지요. CPU는 모두 쿼드코어 Cortex-A15가 메인이지만, 두 제품의 차이는 상당히 큽니다. 예를 들면-

 

1. 엑시노스 5410은 삼성의 28나노 LP HKMG 공정을 씁니다. 최고 클럭은 1.6GHz. 테그라 4는 TSMC의 28나노 HPL 공정을 씁니다. 최고 클럭은 1.9GHz.

 

2. 엑시노스 5410은 A15 4코어, A7 4코어 설계입니다. 테그라 4는 고클럭 A15 4코어와 저클럭(700~800MHz) 저전력 A15 1코어를 씁니다.

 

3. 두 제품의 GPU는 다릅니다. 엑시노스 5410은 PowerVR SGX544MP3 트리플코어 480Mhz, 테그라 4는 NVIDIA가 직접 개발한 GPU 아키텍처를 씁니다. 지오메트리 유닛은 단정밀도 부동소수점, 픽셀 유닛은 20비트 부동소수점으로 이는 예전의 지포스 fX 시대에 쌓았던 경험과 특별히 균형을 맞춰서 설계한 것입니다.

 

4. 두 제품의 다이 크기도 다릅니다. 엑시노스 5410은 122제곱mm로 알려졌고 테그라 4는 80제곱mm 정도 됩니다. 후자가 33% 정도 작네요. 테그라 4의 설계 목표는 성능, 누설 전류, 제조 원가의 균형을 맞추는 것이고, 삼성이 쓴 PoserVR은 TBDR-타일 기반 렌더링을 씁니다. 그래서 TBDR만의 회로가 적지 않은 면적을 차지하고 있습니다

 

여기서 우리는 똑같은 쿼드코어 A15 프로세서라 하더라도, 많은 부분에서 완전히 같은 건 아니란 걸 알 수 있습니다. 이들 프로세서의 기능, 성능, 누설 전류 등은 제각각이며, 이는 최종 사용자의 손에 들어가는 기기- 스마트폰이나 태블릿에서도 어느 정도 차이를 보여주게 됩니다.

 

 

같은 프로세서, 다른 버전이라면 누설 전류는 같을까?

 

NVIDIA가 꽤 전에 발표했던 쉴드는 테그라 4 프로세서를 씁니다. NVIDIA의 네번째 테그라 프로세서로, 스마트폰용 SoC 제조사와 다른 점이 있다면, NVIDIA는 최근 몇 년 동안 하나의 칩으로 여러 모델을 내놓는 전략을 쓴다는 것입니다. 단순히 클럭을 조절하거나 GPU의 프로세서 수를 조절해 여러 모델을 내놓아 고객들에게 선택을 제시한다는 겁니다.

 

7.jpg

 

쉴드에 쓰인 테그라 4는 T40입니다. 테그라 4의 최고급 성능 버전이며 최고 클럭은 1.9GHz입니다. GPU는 72코어지만 클럭은 알려지지 않았습니다. 테그라 4 GPU의 문서에는 672Mhz라 나와 있는데, 이것은 R40의 GPU가 딱 그 클럭이라는 이야기는 아닙니다.

 

하지만 스마트폰에선 이런 스펙의 테그라 4를 볼 수 없습니다. 왜냐하면 실드는 덩치가 크다보면 쿨링팬을 넣어 열을 식힐 수 있고, 배터리 용량도 제법 되니까 10시간 가까이 고클럭으로 게임을 즐길 수 있거든요. 하지만 스마트폰에서 3D 게임을 할 수 있는 시간은 그 1/3 정도일 뿐입니다.

 

NVIDIA가 스마트폰을 위해 내놓은 테그라 4는 AP40입니다. 이 제품은 여러 부분에서 다운그레이드가 됐는데요. 예를 들자면 T40은 상당히 많은 I/O 포트가 있지만 AP40은 필요한 것만 남기고 다 빼버렸습니다. 온도 모니터링 기준도 다르지요.

 

일부 제조사들에 따르면 이런 스펙 간소화를 거쳐 AP40의 TDP는 T40의 8~10W에서 3W 수준으로 떨어졌다고 합니다. 1/3이 안 되게 줄어든 것이니 그 변화가 상당히 큰 편입니다.

 

그럼 클럭은 얼마나 줄었을까요. 성능에 너무 심한 영향을 주진 않았을까요? 이것은 괘 재미있는 문제입니다. 제조사마다 제각각 전력 사용량을 컨트롤하는 전략이 다르지요. 일반적으로 멀티코어에 고부하 작업을 할 경우 스마트폰의 프로세서 작동 속도는 온도의 상승과 하강에 따라 조절됩니다. 그렇게 해서 전체 전력 사용량을 맞추는 것이지요.

 

하지만 싱글 코어로 작동할 때는 클럭의 하강 속도가 비교적 느립니다. 또 대부분의 상황에서 CPU가 고부하로 작동하는 것은 간헐적인 현상이며, 대부분의 애플리케이션에서 실제 성능에 심각한 영향을 미치는 건 아닙니다.

 

 

CPU 성능의 중요성

 

Cortex-A15는 스냅드래곤 600, 스냅드래곤 800, Cortex-A9, Cortex-A7 등의 경쟁자들과 비교해서 싱글 코어 성능이 뛰어나다는 장점이 있습니다. 멀티스레드 애플리케이션이 많이 보급되지 않은 지금, 싱글 코어 성능이 중요하다는 건 더 말할 필요가 없겠지요?

 

사실 스마트폰이건 데스크탑이건 노트북이건, 일상에서 사용하는 앱은 상당수가 싱글 스레드입니다. 멀티스레드로 애플리케이션을 개발하는 건 비교적 복잡한 코드를 써야 하고, 충분한 테스크를 거치고 벨런스를 조절해야 합니다. 그리고 병렬 실행이 쉽지 않거나 알맞지 않은 태스크도 다수 존재하지요. 그래서 멀티코어가 보급된 지도 상당한 시간이 흘렀지만, 진정한 멀티스레드 애플리케이션은 PC에서도 그렇게 많은 편은 아닙니다. 모바일에선 더 적을 수밖에요.

 

일부 전문 테스트용 프로그램을 제외하면, 멀티코어-특히 쿼드코어 스마트폰을 풀로드 상태로 유지하는 애플리케이션은 매우 적습니다. 대부분의 상황에서 높은 부하로 작동하는 프로그램은 4개의 코어를 돌아가면서 작업을 하지요.

 

간단한 예를 들어봅시다. 마이크로 블로그나 웹서핑을 할 때, 컨텐츠 안에는 많은 그림과 글이 포함되어 있습니다. 새로 고침을 하는 속도는 프로세서가 얼마나 빠르게 내용을 받아 출력하는지에 따라서 달라지겠지요. 새로고침이 된 후 CPU의 전체 점유율은 급속히 낮아질 것입니다.

 

정말 CPU에서 고부하가 치자하는 시간은 총 사용시간에 비해서 그 비율이 매우 낮습니다. 1%도 안 되는 경우가 많지요. 하지만 이 시간은 매우 짧아도, 사용자 체험에서 아주 중요한 요소가 됩니다.

 

따라서 CPU의 최고 성능이 가진 중요성은 의심할 여지가 없습니다. 또 지금은 모바일 기기에서 스크린 해상도가 노트북을 넘어서다 보니, 인터페이스를 처리하는 데 더 많은 성능을 필요로 하기도 합니다.

 

인터페이스의 리프레시와 웹사이트의 리프레시는 비슷한 점이 있습니다. 비록 시간은 짧지만, 상당히 높은 성능을 필요로 하며, 사용자 체험에 직접적인 연관이 있다는 것이지요.

 

따라서 앞으로 하드웨어에선 더 빠른 프로세서 속도를 필요로 하게 될 것입니다. 있어도 그만 없어도 그만인 것이 아니라요. 하지만 성능과 전력 사용량을 이성적으로 분석해 보면, 강제로 풀로드 테스트 프로그램을 돌려서 CPU 클럭을 강제로 끌어올리고 다시 과열 때문에 클럭이 줄어들도록 해서 테스트하는 건, 스마트폰 사용자들에게 어느 정도 오해를 줄 수도 있습니다. 실제 애플리케이션의 사용 환경과 거리가 있으니까요.

 

8.jpg

 

멀티코어 프로세서는 여러 태스크를 동시에 처리할 수 있다는 데 의미가 있습니다. 안드로이드와 윈도우는 전형적인 멀티 태스크 운영체제로, 멀티코어 프로세서가 여러 태스크를 처리할 때, 여러 애플리케이션이 동시에 실행되는 건 물론이고 처리 속도와 응답속도도 빨라지게 됩니다.

 

하지만 멀티 태스크와 코어의 수요는 한정되어 있을 수밖에 없습니다. PC나 모바일 기기 모두 메인스트림 제품의 코어는 2개에서 4개 정도인데, 이것은 우연이 아닙니다.

 

비록 시스템에 여러 스레드와 태스크가 동시에 존재한다고 해도, 활성화 상태에 있는 건 몇 개 안됩니다. 따라서 CPU 코어가 아주 많다고 해도 그리 큰 의미는 없는 거지요. 현재 일부 제조사들이 8코어 Cortex-A7 프로세서를 출시하고 있지만, 절대 대부분의 상황에서 성능은 듀얼코어 Cortex-A15만 못합니다.

 

 

ARM Cortex-A12의 출시는 A15를 부정하는 것인가?

 

9.jpg

 

ARM은  매우 단순한 설계 회사입니다. 그들은 최종 소비자나 제조사에 프로세서를 판매하는 것이 아니라, 다른 회사에게 라이센스를 주고, 그 회사가 직접 설계를 해서 자신만의 프로세서를 판매하게 합니다.

 

이런 방식의 장점은 판매에 들어가는 자원을 대폭 절약할 수 있다는 것입니다. ARM이 설계한 프로세서 코어는 재고의 압박을 주는 일도 없고, 그냥 프로세서 제조사에게 이 제품을 어떻게 해서 만들라고 말해주는 것만으로 끝입니다. 그리고 돈을 버는 것이지요.

 

이런 상황에서 ARM은 매우 민첩하고도 변화무쌍한 시도를 할 수 있습니다. 시장에 어떤 틈이 보인다 싶으면 거기에 맞는 제품을 설계하는 것이지요. 발표 시기를 놓고 보면 Cortex-A12는 사실 Cortex-A7/A53과 Cortex-A57 사이에 위치한 공백을 메꾸기 위한 것으로, 1년 후에 중저가형 시장을 공략하는 주력이 될 것입니다.

 

Cortex-A12가 발표되지 일부 사람들은 ARM이 Cortex-A15를 부정하는 것이 아니냐는 평가를 내리기도 했습니다.

 

만약 big.LITTLE에서 Cortex-A12가 ARM 제품 중의 big에 속한다면, 성능을 우선으로 해서 코어를 만들어야 합니다. 현재 확정된 제조공정은 글로벌 파운드리의 SLP-28과 TSMC의 28 HPM이 있습니다. Cortex-A12는 Cortex-A9와 똑같이 2발행 아웃 오브 오더 실행이지만, A9와 비교하면 A12의 아웃 오브 오더 실행은 정수 파이프라인 뿐만 아니라 부동소수점 파이프라인과 메모리 조작에도 적용된 것이 특징이빈다.

 

그 밖에도 A12는 VFPv4 부동소수점 유닛과 Neon 벡터 유닛을 표준으로 갖췄습니다. Coremark 테스트에서 싱글 코어 3.0 DMIPS/MHz의 성능이 나오며, A9는 2.5, A15는 3.5가 나옵니다.

 

이렇게 보면 매우 명확해집니다. A12의 성능은 A9와 A15 사이에 위치해 있다는 것을. 사실 ARM은 A12을 발표하면서 A9의 업데이트도 단행했습니다. A9 r4 버전은 분기 예측과 메모리 서브시스템 등이 개선되어 IPC가 초기 버전 A9이 1.4배 정도에 달합니다.

 

10.png

 

Cortex-A9는 여러 버전이 있습니다. 위 그림은 r1부터 r4를 설명.

 

IPC만 따져볼까요. A9 r4만 해도 A12에 필적하는 결과입니다. 그럼 A9 r4가 나왔으니 ARM이 Cortex-A15를 포기한 것이라 봐야 할까요?

 

현재 A9 r4는 NVIDIA 테그라 4i에 쓰이고 있습니다. NVIDIA의 데이터에 따르면 BBench에서 A9 r1에 비해 25%의 성능 향상이 있고, SPECint 2000에서는 15%의 성능 향상이 있다고 합니다. 테그라 4i 기반 기기는 내년 1분기에나 나올 예정이며, A12는 아직 어떤 회사도 채용 여부를 발표하지 않았습니다. A15의 은퇴는 A12의 출현과 관련이 있는 건 아닙니다. A15의 뒤를 이을 건 ARMv8의 A57이니까요.

 

 

결론과 후기

 

11.jpg

 

이렇게 보면 Cortex-A15의 아키텍처, 성능, 시장 위치, 4코어 Cortex-A15의 삼성 갤럭시 S4의 성공 등을 대충이나마 파악할 수 있을 것입니다.

 

 제조사와 모델에 따라 같은 Cortex-A15 프로세서라 하더라도 여러 방면에서 적잖은 차이가 있습니다. 이런 차이는 설계 방침, 경험, 특정 분야의 장점, 제품의 시장 위치, 제조 공정 등에 따라 정해집니다. 이런 차이는 간단하게 비교할 수 있는 것이 아닙니다.

 

스마트폰에서 성능 테스트는 비교적 특수한 편입니다. 폐쇄된 환경의 물건이기에, 하드웨어적으로 봤을 때는 절대 다수의 상황에서 서로 다른 스마트폰의 다양한 하드웨어 조합이 미치는 영향을 제대로 평가하기가 어렵습니다. 소프트웨어적으로 봤을 때는 경험이 부족한 툴이 많아 어디서 어떤 문제가 나는지 파악이 부족한 경우도 있고, 최적화가 사용에 영향을 주는 경우도 상당히 많습니다.

 

스마트폰에서 싱글스레드 성능은 절대로 간과할 수 없습니다. 이는 멀티스레드에 맞춰 프로그래밍을 하기가 어렵다는 것과 직접적인 연관이 있으며, 현재 상당수의 프로그램들이 싱글스레드 기반입니다. 그러니 Cortex-A15의 싱글스레드 성능이 사용자 체험에 큰 영향을 줄 수밖에 없습니다.

 

일상적으로 쓰는 애플리케이션에서 풀로드 테스트처럼 장시간 동안 4개의 코어 전부를 풀로드로 돌리는 경우는 극소수일 뿐입니다. 특히 스마트폰에서 이런 종류의 테스트는 실제 사용 환경과 동떨어진 편이지요. 사용자 체험을 측정하는 것과 안정성 테스트 중에 어떤 것이 필요할까요.

 

Cortex-A12의 출시 시기는 내년 하반기 이후가 될 것입니다. 그 성능은 Cortex-A9를 대체할 만 하며, Cortex-A15의 후속작은 Cortex-A57입니다. Cortex-A12는 그 때(A57이 나왔을 때) 중저가 제품이 될 것입니다.

 

앞으로 1년 동안 Cortex-A15 쿼드코어 스마트폰이 더욱 늘어날 것이라 믿습니다. 그 중에는 성공하지 못한 제품도 분명 있겠지요.

 

소스: http://news.mydrivers.com/1/274/274386_all.htm#2

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