안드로이드 플랫폼에 무수한 하드웨어가 난립한 것이, 어떤 때는 짜증이 날 수도 있을 것입니다. 하지만 이것만은 말해 둘 필요가 있겠군요. 구글이 안드로이드의 발전 방향을 잡고 전략을 조절하기 전에, 하드웨어 스펙을 평가하는 것은 안드로이드 기기의 좋고 나쁨을 평가하는 중요한 표준이며, 일부 사용자들에게 있어서는 유일한 표준이라는 것을 말입니다. 지금까지 잘 팔렸던 안드로이드 기기를 돌이켜 보면, 어느 시대건 간에 항상 뛰어난 하드웨어 스펙을 갖춘 제품 뿐이었습니다. 경쟁 상대긴 하지만 아이폰과 아이패드를 보면 최고의 체험을 위해 제일 크고 방대한 GPU를 넣고 있지요. 그럼 이렇게 말할 수 있을 것입니다. 하드웨어 스펙이 뛰어난 스마트폰이 꼭 좋은 안드로이드 기기는 아니겠지만, 좋은 안드로이드 기기가 되려면, 반드시 하드웨어 스펙이 뛰어나야 한다구요.

 

1.jpg

 

과학기술의 발전에 따라 새로운 것을이 속속 나오고 있습니다. 1년 반 정도밖에 안됐지만 스마트폰은 4코어에서 8코어 시대로 움직이고 있지요. 인터넷에 돌고 있는 수많은 속설과 오해를 풀기 위해, 여기선 쿼드코어 플랫폼을 돌이켜보고 분석하며, 앞으로의 전망은 또 어떠할지를 알아 보도록 하겠습니다.

 

 

군웅할거. 쿼드코어 플랫폼 아키텍처

 

 여러가지 원인 때문에, 텍사스 인스트루먼트가 듀얼코어에서 쿼드코어로 건너가던 시기 쯤, 모바일 SoC의 경쟁에서 발을 빼겠다고 선언했습니다. 오래된 역사를 지닌 이 기업의 행보가 이상해 보이긴 하지만, 결과만 놓고 보면 모바일 SoC의 사대천왕이 3개로 줄었습니다. 2012년에부터 삼성, 퀄컴, NVIDIA의 삼국지가 시작된 것이지요. 물론 미디어텍을 잊을 순 없습니다. 이 회사는 올해 초에 저가형 쿼드코어 Cortex-A7을 발표해서 괜찮은 성적을 거두고 있거든요. 하지만 여기선 플래그쉽 플랫폼 위주로 정리하는거라, 미디어텍에 많은 지면을 할애하긴 힘들겠네요. 미디어텍의 아키텍처에 대해선 다음번에 봅시다.

 

2.jpg

 

텍사스 인스트루먼트의 로드맵. OMAP5가 보입니다.

 

 

강렬한 인상을 준 NVIDIA 테그라 3

 

작년까지 NVIDIA의 행보는 거침이 없었습니다. 심지어 2011년 말까지만 하더라도, 테그라 3를 탑재한 제품이 출시되기 시작했고, 작년 초에는 쿼드코어 프로세서를 쓴 스마트폰은 오직 테그라 3밖에 없었으니까요. 테그라 2와 비교하면 아키텍처는 그리 많이 바뀌지 않았습니다. CPU 서브시스템에서 듀얼코어 Cortex A9를 쿼드코어 Cortex A9로 바꾸고, 내장 GPU 역시 여전히 오래된 지포스 ULP 시리즈며, 버텍스 부분은 변하지 않은 채로 픽셀과 ROP 등을 개선했을 뿐이니까요. 그냥 쿼드코어 CPU로 만들었을 뿐입니다. 싱글채널 LPDDR2 설계를 유지하면서요. 좀 이상해 보이긴 합니다만.

 

3.jpg

 

지금 봤을 때 테그라 3가 제일 성능이 떨어지는 쿼드코어 프로세서가 된 원인은 역시 뒤떨어진 제조 공정이 아닐까 생각됩니다. 그러나 이것은 NVIDIA를 탓할 건 아닙니다. NVIDIA는 TSMC와 오랬동안 거래를 하면서 TSMC의 특징을 잘 파았했고, 그래서 28나노 공정을 포기한 것이지요. 사실상 TSMC는 2012년 하반기에 들어서야 28나노 칩을 제대로 양산하게 됐으니 NVIDIA의 선택이 맞았음을 증명한 셈입니다. 그러나 40나노 공정의 전력 사용량은 전력 사용량 문제를 피해갈 수 없었고, 그래서 NVIDIA는 4+1 코어라는 매우 특이한 아키텍처를 도입했습니다. 이는 NVIDIA 제품 설계의 특징 중 하나로, 올해 출시된 테그라 4와 테그라 4i에도 계속 사용되었으며, ARM의 big.LITTLE의 비교대상이 됩니다.

 

4.jpg

 

여러분들이 잘 알고 있는 대로, 테그라 2는 NEON 코프로세서가 없기 때문에 듀얼코어 프로세서가 담당해야 하는 부담이 결코 적지 않습니다. 테그라 3는 같은 실수를 반복하지 않았습니다. 그러나 테그라 3가 채택한 4+1 아키텍처는 새로운 문제를 가져왔는데, 그건 바로 메인 코어와 컴패니언 코어가 1MB L2 캐시를 공유하지만, 두 코어의 클럭 차이는 최대 3배까지 난다는 것이지요. 테그라 3의 L2 캐시는 고정된 시간 안에 코어가 요청된 데이터를 되돌려 주도록 설계됐는데, 메인 코어 입장에선 L2 캐시의 반응을 몇 사이클 기다려야 하고 컴패니언 코어에선 그보다 좀 덜 기다려야 되겠지요. 이런 설계는 L2 캐시의 동작이 비교적 느리다는 문제를 피해지 못했으며, 그 때문에 프로세서 전체의 성능에 영향을 받게 됩니다. 실제로 컴패니언 코어가 작동하는 조건은 비교적 한정되어 있고, 마음대로 작업 전환이 되는 것은 아닙니다. 따라서 상당수 경우 테그라 3는 어쩔 수 없이 전기를 많이 먹는 메인코어가 나서서 부하가 낮은 작업을 처리하게 되는데, 이것은 전력 사용량에 영향을 줄 수밖에 없습니다. 그리고 이런 것들이 모두 합쳐져서 테그라 3에 대한 사용자의 평가를 결정하게 된 것이지요.

 

 

조금씩 조금씩 전진 중. 삼성 엑시노스 4 쿼드

 

엑시노스 4 쿼드라는 이름은 엑시노스 4412보다 덜 익숙한 편입니다. 이 프로세서는 갤럭시 S3와 갤럭시 노트 2에 쓰였으며, 2012년에 가장 인기가 좋았던 쿼드코어 SoC였습니다. 보는 관점에 따라서는 엑시노스 4412의 스펙은 상당히 소박한 편입니다. 기본적으로, 오리온 프로세서의 공정을 업그레이드하고 쿼드코어 버전으로 만들었다고 보면 됩니다. 하지만 그렇다 하더라도 이 제품의 표현은 상당히 괜찮은 편이었는데요. 그 원인은 이전 세대인 오리온의 스펙과 성능이 이미 훌륭한 편이었다는 것 외에, 선진 공정이 뒷받침됐다는 것이 있습니다(그리고 이게 더 중요하겠지요). 지금 봐도 엑시노스 4412는 크게 부족할 것이 없는 균형잡힌 SoC입니다.

 

5.jpg

 

-라고 말하는 건 별로 정확하진 않겠지요. 엑시노스 4 쿼드는 사소한 개선점이 있습니다. 예를 들어 쿼드코어의 클럭과 전압을 독립적으로 조절할 수 있다던가(퀄컴의 비동기 아키텍처와 비슷해 보이지만 실제로는 같은 클럭으로 작동할 수밖에 없음), 메모리 컨트롤러와 CPU 코어의 연결 방식을 개선했다던가, 코덱을 업그레이드해 영상 재생이 더욱 매끄럽다던가, 뛰어난 온도 컨트롤로 과열 보호 기능을 넣었다던가. 모두 큰 것은 아니지만, 빼놓을 수 없는 변화들입니다.

 

퀄컴과 비교했을 때, 삼성은 제조 공정 선전에 그리 열성적이지 않습니다. 참 이상한 일이지요. 퀄컴 마케팅의 위력으로 많은 사람들이 28나노는 제일 뛰어난 공정이라고 생각하고 있는데 말입니다. 어떤 의미에선 이게 완전히 틀린 말은 아니지만, 엑시노스 4412의 제조 공정- 32나노 HKMG는 퀄컴이 쓴 28나노 공정보다 뛰어난 점이 여럿 있습니다. 심지어 세대가 다른데도 불구하고 말입니다. 여기에 대해서 설명하는 건힘드니까 나중에.

 

제조 공정의 진보 덕분에 엑시노스 4412의 클럭은 1.4/1.6GHz로 정해져 있습니다. GPU 클럭은 오리온의 200MHz보다 440MHz로 크게 개선됐습니다. 유일하게 아쉬운 점이라면 GPU가 Mali400 MP4라는 것. 바뀌진 않았다는 이야기죠. 이 점은 당시에 별 문제가 되지 않았으나, 지금은 엑시노스 4412의 제일 큰 단점이 되고 있습니다.

 

 

아키텍처의 왕. 퀄컴 스냅드래곤 S4 프로 APQ8064

 

NVIDIA와 다르게, 퀄컴은 28나노 공정을 선택했습니다. 그 결과 APQ8064는 제품 발표 후 출시까지 거의 1년이나 되는 긴 시간을 필요로 했습니다. 또 초기 제품은 수율이 매우 낮았던지라 듀얼코어 버전을 먼저 내놓을 수밖에 없었지요. 물론 퀄컴도 자신의 고충을 잘 알고 있습니다. APQ8064는 상당히 큰 칩이라서 28나노 공정을 써야만 코어 크기를 100제곱mm 이하로 줄일 수 있거든요. 이렇게 크기가 커진 이유는 퀄컴이 CPU와 GPU의 코어 아키텍처를 한번에 업그레이드해서 그렇습니다. 스콜피온에서 krait로 바뀌면서, 퀄컴은 ARM v7-A 명령어 셋트에 자체 개발한 코어 설계를 넣었습니다. ARM 공식 Cortex-A 코어 설계처럼 말이지요. 초기 광고에서 퀄컴은 줄곧 소비자들에게 Krait와 Cortex-A15가 동급 제품이라고 주장했는데, 시간이 지나자 그 말을 믿는 사람들은 갈수록 줄어들고 있습니다. 퀄컴조차도 그 이야기를 다시 꺼내고 있지 않지요. 이게 무슨 상황인지 왜 그런지는 글 뒤에서 분석을 하고 결론을 내리겠습니다.

 

6.jpg

 

Adreno 320 GPU는 또 다른 장점입니다. 이전 세대인 Adreno 22x와 비교해서 Adreno 320의 마이크로 아키텍처는 상당한 최적화가 이루어졌는데요. 내부 캐시 연결 방식을 개선하고, EDRAM 고속 캐시를 늘렸으며(실제 출시되는 제품 중에 이게 있는 건 거의 찾아보기 힘들지만), 가장 중요한 건 Adreno 320의 규모가 두배로 늘어났다는 것입니다. 16개의 4+1D SIMD 통합 쉐이더가 됐지요. 만약 규모만 따지자면 모바일 GPU 중에서 SGX554MP4만 빼고 제일 크며, 성능도 뛰어나고, 전력도 덜 먹는 GPU가 됩니다. 안드로이드 업계에선 대적할 게 없는 셈이죠.

 

7.jpg

 

간단히 현 상황을 봤으니, 다음부턴 지난 세대 플래그쉽 SoC의 기술적인 사항을 좀 더 깊게 들여다 봅시다.

 

 

여러 제조 공정 중 무엇이 가장 뛰어난 것인가?

 

굳이 과장해서 말할 것도 없이, 제조 공정은 IT 산업의 기초입니다. 재밌는 건, 지난 세대 제품들, 퀄컴, 삼성, NVIDIA가 모두 다른 공정을 골랐다는 것입니다. 테그라 3는 TSMC 40나노 Fast G, APQ8064는 TSMC 28나노 LP, 엑시노스 4 쿼드는 삼성의 32나노 LP HKMG입니다. 벌써부터 헷갈리실지 모르겠지만, 지레 겁부터 먹을 필요는 없습니다. 이런 공정의 이름은 확실히 헷갈리지만, 공정의 중요 특징만 파악하면 반도체 공정의 관련 지식을 쉽게 알 수 있습니다. 비록 이게 모두 2012년에 나온 제품이라 해도, 앞으로 나올 새 제품을 이해하는데 분명 도움이 될 것입니다.

 

8.jpg

 

먼저 45, 28 이런 숫자는 회로의 선폭을 의미합니다. 칩 내부의 트랜지스터 크기라고 간단하게 말할 수도 있겠네요. 이는 반도체 제조 공정에서 제일 사기성이 짙은 숫자이기도 합니다. 여러분들은 숫자가 작을수록 선진 공정이라 알고 있을 것인데, 사실 그렇게 간단한 문제가 아닙니다.

 

엄격하게 말해서 회로 선폭을 가리키는 숫자 자체에 어느 정도의 거짓말이 숨어 있습니다. 반도체 기업은 2가지 종류로 나뉘는데요. 하나는 인텔이나 삼성처럼 자신의 칩을 직접 제조할 능력이 있는 곳이고, 다른 하나는 NVIDIA나 퀄컴처럼 Fabless, 다른 공장에 대리 생산을 맡기는 기업입니다. 후자에 해당하는 기업들은 칩의 생산을 TSMC나 UMC 같은 업체에 맡기는데요. 정상적인 상황에서, 칩의 제조 공정이 1 세대 개선될 때마다 선폭이 70%로 줄어들게 됩니다. 인텔을 예로 들면 최근 몇 년 동안 90나노, 65나노, 45나노, 32나노를 거쳐 최신은 22나노까지 왔지요.

 

9.jpg

 

기업이 판매하는 제품에 따라서 제조 공정도 다릅니다. 기술과 공정 모두 말입니다. 자신이 직접 쓸 공정을 개발하는 회사들은 이런 점을 알리는 데 주력할 필요가 없습니다. 하지만 TSMC는 대리 생산을 업으로 삼은 곳이지요. 따라서 이 회사는 제조 공정을 상세하게 알려야 할 필요가 있습니다. 자신의 기술이 어느 부분에서 어떻게 더 뛰어난지를 어필해야 하니까요. TSMC는 130나노 노드부터 시작해서 각 세대 공정의 선폭을 인텔보다 잘게 나눠서 개선해 왔습니다. 110나노, 80나노, 65나노, 40나노, 28나노, 20나노로요. 이것은 다분히 광고를 위한 의도가 큽니다. 기술적으로 차이는 그리 크지 않거든요. 심지어 TSMC의 110나노 공정으로 제조한 칩의 경우, 전자 현미경으로 관찰해 보면 실제 선폭은 120~130나노 사이를 오가는 경우가 있습니다. 따라서 이 경우 단순하게 선폭만 갖고 이야기하면 같은 세대가 되는 셈입니다. 28나노건 32나노건, 별다른 차이가 없다고 말할 수도 있겠네요.

 

그러니까, 테그라 3가 40나노 공정과 45나노 공정을 모두 지원하는 것도 이 두가지가 같은 세대에 해당되는 공정이라 그렇고, 엑시노스 4 쿼드와 APQ8064는 각각 32나노와 28나노 공정을 썼지만 둘 다 최신 노드입니다. 테그라 3는 지난 세대의 공정까지 선택할 수 있도록 해서, 생산 능력을 늘리려 한 것입니다. 생산에 얼마나 영향을 줄지는 모르겠지만.

 

TSMC의 로드맵을 돌이켜 보면, 원래 계획대로라면 28나노 공정은 원래 2011년 9월에 양산을 시작했어야 합니다. 오타 아닙니다. 2011년입니다. 하지만 실제로는 2012년 6월이 되도록 대규모 양산이라 부를 수 있는 수준에까진 이르지 못했고, 심지어 지금도 사람들을 100% 만족시키진 못하고 있습니다. 실제로 퀄컴은 일부 28나노 주문을 빼서 UMC와 삼성에 주고 있지요. 삼성 역시 비슷한 문제를 가지고 있습니다. 엑시노스 4412의 생산은 원래 계획보다 반년 정도 늦었습니다. 10개월이나 늦었으니, 업계에서 기다리 못해 지칠 수밖에 없었고, 테그라 3보다 반응이 뜨뜨미지근했던 것도 이상할 건 아닙니다.

 

10.jpg

 

TSMC의 로드맵. 2013년엔 16나노 생산으로 나와 있지만 실제로는 CLN28HPL도 보기 힘듭니다.

 

앞으로 새로운 공정 노드가 나올수록 연구 개발의 어려움은 더욱 커지게 됩니다. 위에서 수 차례 언급했던 '연기'가 점점 더 늘어나고 보편화된 현상이 될 것입니다. 교체 주기 역시 점점 더 길어질 것이구요. 원래 AMD의 반도체 공장이었으며 지금은 대리 생산 업체인 글로벌 파운드리의 28나노 공정은 원래 예측보다 무려 1년이나 늦었습니다. 지금은 2013년 안에 22/20나노 공정을 내놓을 수 있는 회사는 인텔밖에 없고, 이것은 16/14나노 공정으로 넘어가면 더욱 심해질 것입니다. 이것은 반도체 업계의 시한폭탄과도 같습니다. 머지 않은 미리에 그 영향이 널리 퍼지겠지요. 이제 선폭이란 숫자가 무엇을 구분하는지 아셨을테니-한줄요약하면 회로의 배선 간격 외에도 그 외 다른 기술까지 때려 넣어서 어느 정도의 선폭과 같은 효과를 낸다- 다음 이야기를 해봅시다. 선폭 이외에 뭐가 있는지를 말입니다.

 

11.jpg

 

선폭 말고 또 뭐가 있냐구요? 당연히 있습니다. 인텔의 프로세서를 놓고 보면 같은 세대의 공정을 쓴 제품에도(22나노 아이비브릿지를 예로 들어 봅시다) 데스크탑 버전은 77W, 모바일 버전은 17W밖에 안됩니다. 물론 클럭 차이도 있지만, 여기서 더 중요한 건 제조 공정의 '방향'입니다. 대체적으로 봤을 때, 특정 세대의 공정 선폭은 3개의 방향으로 나뉩니다. 고성능, 통용, 저전력으로 말입니다. 그러니까 전력 사용량과 성능 사이에 무엇을 선택하느냐에 따라 달라지는 것이지요. 같은 선폭인데도, 제조 공정 방향이 달라지면, 그 차이가 몇 배에 달합니다. 따라서 선폭만 이야기하는 건 별 의미가 없지요. 퀄컴과 삼성의 칩은 모두 저전력 LP 공정을 쓰며, NVIDIA만 컴패니언 코어는 LP 공정, 나머지는 통용 Fast G 공정을 써서 만듭니다. 그렇게 해서 부하가 낮을 때 전력 사용량을 줄이는 것이지요.

 

그럼 퀄컴과 삼성이 전력은 아낄 수 있어도 속도는 느리겠다는 결론이 나오는데요. 사실 사정이 그렇게 간단하지가 않습니다. 선폭과 제조 공정 방향이 제조 공정의 전부가 아니니까요. 이 분야에는 그 외에도 여러 고급 기술이 들어 있는데, 그 기술들이 어떻게 적용되느냐에 따라 모든 것들이 달라집니다. 주의 깊게 살펴봐야 할 부분이지요. 여기서는 HKMG라는 글자부터 보도록 하겠습니다. 이것은 제조 공정에 적용되는 고급 기술을 가리키는 것으로, 고유전율을 지닌 금속 게이트, High-K Metal Gate를 가리킵니다. 매우 선진적인 기술이미지만 매우 복잡한 기술이라서, 여기서는 간단하게 말하겠습니다. HKMG는 고유전율 금속 산화물(산화 하프늄이나 산화 알루미늄)을 써서 전통적인 산화 규소를 대체해 게이트 절연층을 만들어, 게이트의 전자 수용 능력과 컨트롤 컨트롤 능력을 높이고, 전류 유출을 줄이며, 높은 클럭에서의 전력 사용량을 낮춥니다. 효과가 얼마나 좋냐구요? 삼성의 데이터에 의하면 HKMG는 SiON/Poly-Si 공정과 똑같은 레이턴시-클럭이라 이해합시다-일 때 유출 전류가 최대 1/10까지 줄어듭니다. 누설 전류가 똑같은 상황에서라면 클럭을 최대 40%까지 높일 수 있지요. 엑시노스 4 쿼드가 이런 선진 공정을 썼기 때문에, 코어 수가 배로 늘어났는데도 전력 사용량은 20%를 줄일 수 있었던 것입니다.

 

12.jpg

 

엑시노스 4412는 당연히 HKMG 공정을 씁니다. 하지만 퀄컴은 좀 실망스러운데요. 비록 TSMC가 28나노 HPL HKMG 공정을 준비했긴 하지만, 퀄컴은 SiON/Poly-Si의 28나노 LP 공정을 골랐기 때문입니다. APQ8064 뿐만 아니라, 최신 스냅드래곤 600 APQ8065T조차도 여전히 28나노 LP 공정입니다. 이것은 HKMG가 제조 원가가 비싸고, 그보다 더 중요한 건 TSMC의 28나노 HPL HKMG 공정이 아직 양산 단계가 아니라서 그렇습니다. 2013년 말에서 2014년 초에 양산할 예정입니다. 이런 요소들을 종합해 봤을 때, 28나노 LP는 사실상 APQ8064의 전력 사용량에 상당한 영향을 주는 요소라는 결론이 나오며, 그 영향은 갈수록 더 두드러지고 있습니다.

 

 

마이크로 아키텍처 설계는 무엇이 좋을까

 

일찌기 2011년에, 스콜피온과 Cortex-A9 중 뭐가 더 좋은가를 둘러싸고 한 차례 논쟁이 벌어졌던 적이 있었습니다. 시간이 지나고, 사실은 천천히 증명됐습니다. Cortex-A9가 확실히 더 낫다는 것입니다. 그 대신 스콜피온은 불행히도 고클럭 저성능이라는 이미지의 대표주자가 됐지요. 앞에서 말한대로, 스냅드래곤 S4에 들어가는 코어는 퀄컴이 자체 개발한 것입니다. 퀄컴은 이 프로세서의 기초 아키텍처가 Cortex-A9보다 선진적인 것이라 설명합니다. 그럼 ARM의 차세대 아키텍처인 Cortex-A15는 어떨까요? 이것은 또 다른 뜨거운 논쟁거리가 될 것이 뻔합니다. 최소한 그때보다는 말이지요. 이 문제를 분석하기 위해, 우리는 아키텍처 내부를 들여다 볼 필요가 있습니다.

 

13.jpg

 

먼저 스펙을 봅시다. 3개의 명령 발행, 아웃 오브 오더 실행 파이프라인, 3300DMIPS/MHz, 확실히 Cortex-A15와 매우 가깝습니다. 하지만 실제로 Krait 코어는 대다수 경우 Cortex-A9와 비슷한 성능을 냅니다. 이것은 왜일까요? 답은 아키텍처에 있습니다. 비록 퀄컴은 Krait의 자세한 구조를 밝히진 않았지만, 성능과 몇몇 숫자를 들여다보면 우리는 어느 정도의 추측이 가능합니다.

 

시작하기 전에, 먼저 Cortex-A9의 아키텍처를 봅시다.

 

14.jpg

 

로직이라는 각도에서 보면, 프로세서의 동작 원리는 명령어를 읽어->명령어를 해독하고->실행 기구로 이를 나눠 보낸 다음->연산을 진행하고->그 결과를 메모리에 쓰고-> 다음 명령을 읽어내는 과정의 순환입니다. 위 구조도에서, 명령어는 왼쪽 아래의 프리페치 스테이치에 들어가 위에 있는 디코드 스테이지로 옮겨가고, 필요한 처리-레지스터 리네임-를 거친 후, 아웃 오브 오더 명령 디스패치에 진입 후, 각각의 실행기(ALU/NEON)이 보내져, 마지막에는 Write back 부분으로 들어갑니다. 이 과정이 바로 파이프라인이라 부르는 것으로, 아래 그림에 나온 대로입니다.

 

15.jpg

 

프로세서의 동작은, 끊임 없이 메모리의 명령어들을 읽어들이게 됩니다. 그리고 이것을 빠르게 실행 파이프라인에 채워넣게 되지요. 따라서 명령어 처리량-스루풋-은 CPU 아키텍처에서 매우 중요한 지표가 되며, 명령어 처리량을 알면 IPC, 즉 사이클 당 처리하는 명령어 수를 측정할 수 있습니다. Cortex-A9의 명령어 디코더(그림에선 De라 표시)는 1 사이클 당 2개의 명령어를 해석하는 능력을 갖췄는데, 그래서 2발행 코어라고 부르며, 최대 IPC는 2가 됩니다. 하지만 디코더만 가지고선 쓸데가 없습니다. 디코딩한 후에 명령어를 실행 파이프라인에 보내야만 진짜로 기능을 실현한 것이며, 이것은 아웃 오브 오더 명령 분배기(그림에선 Iss)에서 실현하게 됩니다. Cortex-A9에서 이 부분은 3+1개의 포트를 갖추고 있는데, 이것은 총 4개의 실행기를 이어 붙였다고도 말할 수 있을 것입니다. 하지만 동시에 분배 가능한 건 3개 뿐이지요(나머지 한개의 포트는 복수 활용을 위한 것). 실행 유닛 부분은 2개의 통용 실행기(그 중 한개는 나눗셈/뻴셈 정수 연산 이외에도 하드웨어 곱셈 연산을 지원), 컴퓨트 엔진이라 이름붙은 연산 코프로세서가 있습니다. 우리가 VFP와 NEON이라 알고 있는 것들이지요.

 

16.jpg

 

Cortex-A15에 이르러, 명령어를 가져오는 대역은 128비트로 상승했고(Cortex-A9는 64비트밖에 안됏습니다. 나중에 설명할께요), 1사이클 당 디코딩 능력은 3개가 됐습니다. 이 말은 명령어를 가져오는 IPC가 2에서 3이 됐다는 소리지요. 이것이 실제로 능력을 발휘하기 위해, ARM은 Cortex-A15의 명령어 파견과 실행 파이프라인을 크게 강화시켰습니다. 이것은 아키텍처에서 제일 변화가 큰 부분이기도 합니다.

 

17.jpg

 

Cortex-A9의 3+1 파견과 다르게, Cortex-A15의 명령어 파견은 8개로 늘었습니다. 실행은 3종류 4묶음에서 5종류 8묶음으로 확충됐으며, 추가로 분기 예측 유닛과 하드웨어 곱셈/나눗셈 유닛이 더해졌습니다. 각각의 실행기는 명령어 발행 포트에서 저마다 독립된 대열을 갖고 있습니다. Cortex-A9에서 VFP와 NEON은 한개의 발행 포트를 공유해야 했지만, A15에서는 각자 독립된 포트를 갖게 되어 처리량이 대폭 늘었습니다.

 

그래서 결론이 뭐냐구요? 최소한 아키텍처만 따지면, Cortex-A15는 Cortex-A9와 비교도 안 될 정도로 뛰어나다는 것입니다. 두 아키텍처의 설계는 무려 5년이 차이납니다. Cortex-A9 아키텍처는 구닥다리 방식에 가깝습니다. 지난세기 90년대의 인 오더 아키텍처 프로세서, 즉 명령어 발행 대열을 줄이고, 다용도 실행 파이프라인과 아주 간단한 명령어 발행 말입니다. 당연히, ARM은 Cortex-A9가 처음으로 아웃 오브 오더를 실행한 코어라고 설명하지만, 최소한 아키텍처적으로 볼 때, 결과는 그저 지원만 하는 수준이라는 것입니다. 하지만 Cortex-A15는 다릅니다. Cortex-A15에서 진정한 아웃 오브 오더 아키텍처의 장점을 활용한 설계를 볼 수 있습니다. 원인은 간단합니다. 아웃 오브 오더는 원래 명령어의 디코더 순서를 바꿔버리는 것에서 출발할 것이기 때문입니다. 그래서 프로세서의 하드웨어 자원 이용율을 늘릴 수 있지요. 그럼 자연스럽게 CPU의 명령 발행 유닛은 더욱 강한 처리 능력과 하드웨어 자원을 필요로 하게 되고, 모든 실행 부분을 명령어로 가득 채우게 됩니다. 따라서 크기는 필연적으로 커질 수밖에 없습니다. 가장 이상적인 상황은 각각의 실행기에 모두 전용 큐와 포트를 갖추도록 하는 것입니다.

 

이것을 Cortex-A15는 해냈습니다. 그리고 Cortex-A9는 하지 못했습니다. 물론 이것은 아무 댓가 없이 이뤄진 것은 아닙니다. 아웃 오브 오더가 필요로 하는 자원은 인 오더와 비교할 수준이 아닙니다. 컴퓨터 프로그램의 명령어 사이에 원래 존재하던 로직의 앞 뒤 순서를, 뒤죽박죽으로 바꿔놓고, 그러니까 실행할 때만 순서를 바꿔놓고, 마지막으로는 다시 순서를 맞춰야 합니다. 이 과정은 별도의 하드웨어 자원이 필요합니다. 명령어 사이의 관련성과 시간을 기록하는 데 필요한 자원 말입니다. 이 밖에도 먼저 요청이 들어온 명령어를 건너 뛰고, 나중에 들어온 명령어를 처리하면서, 앞서 요청했던 명령어를 기다리게 하려면 충분한 용량의 저장 공간이 있어야 합니다. 여기네는 상당히 많은 기술적인 디테일이 필요하고, 이것은 전력 사용량을 늘어나게 합니다. 아웃 오브 오더 코어를 도입해서 장점이 생기겠지만 동시에 전력 사용량이 크게 늘어날 수도 있습니다. 이를 피하려면 매우 수준 높은 설계가 필요합니다. 심지어 기술과 운이 필요하기도 합니다. 인텔은 아키텍처를 깊게 파서 이 어려움을 헤처 나갔고, ARM도 아웃 오브 오더의 장점을 거져 먹지는 못했습니다. Cortex-A15는 그에 상응하는 댓가를 치룬 것이지요. 그리고 그 값은 매우 비쌌습니다. 이건 나중에 설명하지요.

 

18.jpg

 

Krait의 자료는 그리 많지 않습니다. 퀄컴은 줄곧 보안을 지켜오고 있거든요. 따라서 지금 알 수 있는 건 1 사이클 딩 3개의 명령을 디코딩하고, 명령 발행은 4, 실행 유닛은 총 7이라는 것 정도입니다. 하지만 우리는 Krait의 설계를 추측할 수는 있습니다. 관어는 명령어 발행이 4라는 것. 이것은 Krait의 구체적인 아키텍처가 Cortex-A9랑 비슷하다는 것입니다. 여기서 실행 규모를 강화한 것이지요. 바꿔 말하면, Krait는 Cortex-A15의 처리량을 대폭 줄였습니다. 다른 식으로 말하면 엄청 뚱뚱해진 Cortex-A9라고도 할 수 있겠네요. 원인은 길게 말할 것도 없습니다. 전력 사용량 때문입니다. 따라서 Krait는 Cortex-A15에 접근한 3300DMIPS/Mhz의 연산 능력과 3 IPC를 갖췄지만, 이를 잘 발휘하진 못합니다. 원인 역시 여기 있지요. 단순히 코드 처리 용량과 작업 용량을 늘렸지만, 그것이 지나갈 길을 늘리지 않은 것입니다. 그래서 노력이 무용지물이 된 겁니다.

 

명령어가 파견된 후에는 실행을 하게 됩니다. 실행은 연산과 로직 유닛으로 구성되어 있지요. Cortex-A9와 비교하면 Cortex-A15는 하드웨어 곱셈기와 분기 처리를 전담하는 Branch ALU를 늘렸습니다. 또 로드/스토어의 성능을 크게 늘렸다는 흔적도 찾아볼 수 있지요. 이런 것들은 일부 상황에선 애플리케이션 처리 성능을 상당히 크게 개선하지만, 더 명확한 변화는 사실 NEON과 VFP에 있습니다. Cortex-A15의 2개 SIMD ALU는 독립된 포트를 쓸 뿐만 아니라, 그 내부에서도 듀얼 발행 아웃 오브 오더 스트림 파이프라인을 갖추고 있습니다.

 

19.jpg

 

위 그림은 Cortex-A9의 부동소수점 유닛입니다. 그 내부에는 파이프라인 아키텍처 설계를 실현했으며, 각자 독립된 명령 대기 큐와 명령 발행을 갖추고 있습니다. 하지만 각 사이클마다 오직 하나의 명령만 발행할 수 있고, 실행 파이프라인 역시 싱글 발행 인 오더입니다. 비록 위 그림에는 나타나지 않았지만, VFP/NEON 명령어의 구체적인 디코딩은 Cortex-A9의 부동소수점 연산 유닛에서 실현됩니다. 따라서 상대적으로 다른 실행 파이프라인보다 독립성이 현저히 드러난다 말할 수 있습니다.

 

20.jpg

 

Cortex-A15에선 부동소수점 연산 유닛이 다른 연산기와 마찬가지로 프로세서 내부의 메인 파이프라인 중에서 작동하도록 바뀌었습니다. 구체적으로 말하면 VFP와 NEON의 명령어 디코딩과 기타 유형의 명령어는 똑같이 프론트엔드 명령어디코딩 부분에서 직접 실현합니다. 따로 나눈 것이 아니라 하나로 통일한 것이지요. 여기에 내부에 2발행 아웃 오브 오더를 더해, Cortex-A15의 VFP/Neon은 동시에 2개의 SIMD 명령, 4개의 복합 MAC 연산을 실행할 수 있으니 연산 능력이 Cortex-A9를 크게 앞서는 것입니다. 현재 공개된 자료와 실제 연산 결과에 따르면 퀄컴 역시 2발행 VFPv4를 실현했습니다. 하지만 Neon이 아웃 오브 오더를 지원하는지는 판단할 수 없습니다. 추측해보건데, Krait의 SIMD 부분 성능은 Cortex-A15보다 약할 것입니다.

 

결론을 냅시다. 한장의 그림으로 비교한 Cortex-A9, Krait, Cortex-A15 파이프라인입니다.

 

21.jpg

 

중국어지만 구구절절히 토는 안 달래요. 그림만 봐도 위에서 아래로 갈수록 구조가 점점 더 복잡해졌다는 걸 알 수 있습니다.

 

코어에 데이터가 도착하지 않으면 멈추게 됩니다. 따라서 캐시는 현대 프로세서에서 매우 중요한 부분입니다. 여러 프로세서 시스템의 캐시는 2가지 설계 사상을 갖고 있습니다. 하나는 각각의 코어가 따로 쓰는 독립된 캐시로, 외부 시스템 버스를 통해 캐시 일관성을 지킵니다. 펜티엄 D와 아톰이 그렇습니다. 다른 하나는 모든 코어가 공유하는 대형 캐시입니다. 버스를 통해 엑세스하지요. Cortex-A9, A15, Krait가 이 설계를 쓰지만(그리고 x86도 요새는 다들 공유 캐시를 쓰지만), 구체적인 방법은 다릅니다.

 

22.jpg

 

Cortex-A9의 L2 캐시는 외부 시스템 버스를 통해 프로세서와 연결됩니다. 보면 알겠지만, 2개의 Cortex-A9 프로세서는 PL310이라 표기된 L2 캐시 컨트롤러를 통해 1MB 캐시와 연결됩니다. PL310의 내부 구조는 이렇습니다.

 

23.jpg

 

Pl310은 2개의 AMBA3 AXI 포트가 있고, 대역폭은 모두 64비트입니다. 앞서 봤던 아키텍처 구조도와 결합하면, 이 두개의 포트 중 하나는 명령어를 읽어들이는 데 쓰고, 다른 하나는 L2 캐시에 액세스하는 데 쓰는 것으로 보입니다. 아마 80, 90%는 맞을거에요.

 

이 설계가 좋을까요 나쁠까요? 딱 봐도 나빠 보입니다. ARM이 Cortex-A15의 L2 캐시 컨트롤러를 직접 A15 멀티코어 컨트롤러의 SCU에 넣지 않았다면 말입니다. 이건 Cortex-A15의 큰 업그레이드이기도 합니다. 이 프로세서의 L2 캐시는 더 이상 따로 떨어지지 않고, 모든 코어와 하나로 긴밀히 연합된 존재가 되었습니다. 그 장점은 나중에 자세히 설명할께요. 단점 역시 나중에.

 

24.jpg

 

그뿐만이 아니라 Cotex-A15의 l2 캐시는 멀티코어 액세스에 맞춰 설계해 4개의 독립된 TAG 어레이를 갖췄습니다. 데이터의 읽기/쓰기는 2개의 서로 다른 포트를 통해 실현합니다(확정적인 건 아니지만). 또 직접 CPU에서 CPU로 데이터를 전송하는 것도 지원하는데, 이 모든 것이 멀티코어에서 캐시 액세스 성능을 높이기 위해서입니다. 인텔은 Cortex-A9의 형편없는 L2 캐시 성능이 프로세서 전체의 성능을 제한한다고 말했지만, 보면 알 수 있는대로, ARM은 작정하고 Cortex-A15에서 그 단점을 고쳤습니다.

 

퀄컴 스냅드래곤 S4 플랫폼에서, 퀄컴은 자사의 코어 다이어그램을 보여줬는데, 하나의 L2 캐시를 모든 코어가 공유하는 것처럼 나타나 있습니다. 그러나 NVIDIA가 발표한 테그라 4의 슬라이드에서 Krait의 L2 캐시를 자세히 설명하고 있지요.

 

Krait는 일체형 L2 캐시 설계를 쓰지 않았습니다 초기 스콜피온 코어가 그랬던 것처럼 코어마다 독립된 캐시를 쓰는 아키텍처를 여전히 유지하고 있습니다. 이것은 비동기 아키텍처만의 문제와 설계입니다. 캐시 사이에 일관성을 유지하려면 외부 포트를 통해야만 하며, 각 코어가 쓸 수 있는 캐시 용량은 해당 코어에 할당된 것 뿐입니다. Krait에게 있어 코어가 몇 개가 있건 간에, 쓸 수 있는 L2 캐시는 512KB뿐인 것입니다. 당연히 이런 설계는 대역을 높이고 레이턴시를 낮춘다는 장점이 있지만, 캐시를 코어가 따로 소유한다는 점은 변하지 않습니다. 이것은 Cortex-A9와 비교할 때는 장점이 되겠지만, .Cortex-A15와 비교하면 딱히 장점이라 말할 수 없습니다.

 

여기까지 말하면 모든 것이 확실해집니다. Krait가 Cotex-A15 아키텍처와 비슷하다는 주장은 정확하지 않다는 게 말입니다. 사실상 스냅드래곤 S4의 Krait 아키텍처와 지난 세대 스콜피온을 비교하면 큰 개선이 있었지만, Cortex-A15와는 여전히 어느 정도 거리가 벌려진 셈입니다. 심지어 Cortex-A9와 더 가깝다고 말하는 게 맞을 겁니다. Cortex-A9를 개선했다. 정도로요. 이런 아키텍처는 그 이론적인 성능을 발휘하기가 매우 어렵습니다.

 

25.jpg

 

 

동기와 비동기

 

 매번 퀄컴에 대해 이야기를 할 때마다, '비동기 멀티코어' 심지어 '본드로 이어붙인 멀티코어'같은 이야기를 피할 수 없습니다. 이 기술에 대해서 찬성하는 사람과 반대하는 사람이 모두 많습니다. 그러니 어느 정도 소개가 필요하겠네요. 이 비동기 멀티코어가 처음으로 나왔을 때 소개는 정확하지 않은 부분이 있었습니다. 핸드폰에서 비동기 아키텍처는 단점이 장점보다 더 많습니다. 이거는 비교적 쉽게 이해할 수 있을 것입니다.

 

비동기 아키텍처의 장점은 무엇일까요? 당연히 전력 사용량 절감입니다. 비동기 아키텍처에서 CPU는 같은 클럭을 유지할 필요가 없습니다. 오직 필요할 때만 특정 코어를 1.5GHz의 풀스피드로 작동하게 하고, 다른 코어는 384Mhz의 최저 클럭으로 작동하게 할 수 있는 것입니다. 이렇게 보면 부하가 높을 때, 예를 들면 포그라운드의 경우 고부하 코어에서 작동을 시킬 수 있고, 백그라운드 서비스 같은 저부하 스레드는 저클럭 코어에서 작동시킬 수 있습니다. 시스템의 전력 사용량 최적화를 상당히 잘 해낼 수 있는 것입니다.

 

26.jpg

 

이를 실현하기 위해 퀄컴은 반드시 리눅스 커널에 손을 대야만 했습니다. 왜냐하면 전통적인 커널에선 이런 비대칭 구조를 지원하지 않았거든요. 기본값에선 모든 CPU 코어가 전부 같은 성능을 내도록 되어 있었습니다. 이렇게 하면 저클럭 코어는 심각한 적체 상태에 빠지게 되며, 시스템 성능에 영향을 주게 됩니다. 이것은 퀄컴이 모바일 프로세서 영역에서 역시 퀄컴밖에 없다는 인식을 심어준 원인이기도 합니다.

 

그럼 비동기 아키텍처의 단점은 또 무엇일까요? 자연스럽게 성능이란 결론이 나옵니다. 비동기 아키텍처가 성능에 미치는 영향은 2가지 부분이 있습니다. 하나는 비동기 회로가 동기화에 지출하는 부분이고, 다른 하나는 비대칭 조절에 지출해야 하는 부분입니다.

 

아무리 복잡한 하드웨어라 할지라도, 끝까지 가다보면 최하층이 나옵니다. 모두 기능 회로와 버스의 결합이지요. 버스는 프로토콜을 필요로 합니다. 프로토콜의 기초는 순서입니다. 따라서 어떤 버스로 두개의 디바이스 사이를 연결하려 한다면, 그 두 개의 순서를 똑같이 맞춰야 합니다. 바꿔 말하면 똑같은 클럭으로 움직여야 하는 것이지요. 이게 바로 동기 회로입니다. 30년 동안 동기 회로는 설계 분야의 주류였습니다. 이를 둘러싼 EDA 기술 역시 가장 성숙된 것이었지요. 비동기 회로가 다른 점은 한 가지 특수한 '악수 프로토콜'이 있다는 점입니다. 정식으로 신호를 전달하기 전에, 먼저 몇 사이클을 이용해서 '악수'를 청합니다. 그래서 두 디바이스 사이의 순서를 하나로 맞추는 것이지요. 실제 실현에서는, 고정 하드웨어를 통해 악수 프로토콜에 소모하는 순서를 실현했는데, 설계에 따라서 2~4 사이클 정도 걸립니다. 그러면 비동기 회로가 동기화되는 것이지요. 그럼 최극단의 상황을 가정해 봅시다. 실제 데이터를 전송하는 데 3 사이클 정도가 걸린다고 치면 비동기 회로의 버스 이용율은 50%를 넘지 못합니다. 왜냐하면 그 중 절반은 비동기 회로 사이에 동기화를 위해 소모하기 때문입니다.

 

여기까지 보면 이런 문제를 발견했을 것입니다. 비동기 회로라 할지라도 데이터를 전송할 때는 여전히 작동 순서-시기-사이클-클럭을 맞춰야 한다는 것을 말입니다. 비동기 회로에선 '악수 프로토콜'을 더해 둘 사이의 작동 타이밍을 맞추고 있지요. 따라서 이런 결론도 나옵니다. 비동기 버스는 한번에 오직 한 개의 기기와 동기화할 수 있습니다. 그럼 이런 상황을 생각해 봅시다. 만약 2개의 CPU가 동시에 버스를 통해 동기화 요청을 보냈고, 두 CPU의 클럭이 서로 다르다면, 결론은 뻔합니다. 작동 순서가 다르니까, 충돌 방지 프로토콜도 효과가 없습니다. 왜냐하면 로직 회로의 최소 동작 사이클이 바로 클럭 사이클이거든요.그래서 비동기 시스템에서 동기화를 진행하는 주체는 오직 버스 자신일 수밖에 없습니다. 이것은 비동기 시스템에선 실제로 버스가 끊이지 않고 CPU에 액세스를 할 것인지를 문의한다는 것이지, CPU가 버스에게 엑세스를 요청하는 건 아니란 겁니다.

 

27.jpg

 

비동기 시스템은 일종의 폴링 시스템(http://krdic.naver.com/detail.nhn?docid=40739500)이며, 이것은 또 다른 하드웨어 소모이기도 합니다. 특히 코어 수가 2개 이상인 시스템에서, 폴링은 반드시 순서대로 이루어집니다. 그럼 이런 상황이 생길 수도 있습니다. 버스가 폴링한 것은 CPU0인데, 그 때 악수 프로토콜을 필요로 하는 건 CPU3이라던가. 그럼 CPU1과 CPU2는 모두 아이들 상태일테고, CPU3은 3개 버스 사이클을 기다린 후에야 버스와 동기화를 할 수 있을 것입니다. 동기화에 3 사이클이 걸린다고 가정하면 데이터를 전송하는 데도 3사이클이 필요한데, 이것은 동기 시스템 내부에선 4 사이클만 있으면 데이터 요청을 실현할 수 있지만, 비동기 시스템에선 9사이클을 소모한다는 이야기가 됩니다.

 

당연히 여기서 토론하는 것은 모두 제일 기초적인 상황입니다. 실제 설계에선 많은 기술을 써서 이런 한계를 해결할 수 있지요. 하지만 잊지 마세요. 만약 버스 프로토콜과 포트 실현이 지나치게 복잡하다면, 그 자체만으로도 소모하는 전력 사용량이 늘어나기에, 실제 설계에서는 너무 복잡한 고급 설계는 잘 쓰지 않기에, 여기서 말한 것들은 실제로도 존재할 수 있다는 것을.

 

하드웨어 설계 비동기에 걸리는 부하 외에도, 비동기 시스템이 정상 작동하는 운영체제 배치 기기와 배합되려면, 여기서 또 별도의 지출을 필요로 합니다. 동기 시스템의 배치 기기를 놓고 보면, 모든 CPU가 똑같은 연산 능력을 낸다고 가정하기 때문에, 배치 계산의 실현도 매우 간단합니다. 그냥 작동하는 CPU에 부하를 똑같이 나누면 됩니다. 하지만 각각 CPU 사이에 클럭의 차이가 존재한다면, 배치 기기가 나눠줘야 하는 데이터 구조가 매우 복잡해집니다. 따라서 시스템은 비동기 시스템의 비동기 상태를 반드시 파악해야 하며, 그렇지 않으면 비동기 시스템의 장점-전력 사용량이 적다-을 누릴 수가 없게 됩니다. 특히 실제 모바일 기기에서는 각각의 CPU 코어 클럭이 모두 동적으로 변화하기 때문에, 비동기 시스템의 배치 기기가 연산해야 하는 내용은 복잡해질 수밖에 없습니다. 배치 기기는 시스템 안에서 작업과 작업을 처리하는 시간 사이에 위치하게 되는데, 현대 시스템에서 이런 시간은 일반적으로 10~100ms고, 리눅스 커널에선 대체적으로 100ms 정도 됩니다. 작업의 우선 순위에 따라서 짧으면 5ms까지 되지요. 동기화 시스템의 배치 기기 실행에 10us가 걸린다고 가정하면 5ms의 시간에서 시스템이 소비하는 성능은 0.2%밖에 안됩니다. 하지만 조절기기가 쓰는 시간은 1ms로 성능 손실은 17%에 달합니다. 상당히 크지요. 당연히 실제 시스템에서는 5ms라는 시간을 쓸 일은 없을 것입니다. 비동기 시스템의 조절 기기도 1ms나 걸려서 조절 작업을 끝낼 리는 없을 테구요. 하지만 비동기 조절 기기가 시스템에서 적잖은 시간을 차지해, 성능 하락을 가져온다는 건 분명합니다.

 

여기까지 비동기 시스템의 장단점이 무엇인지를 설명했습니다. 그럼 마지막 문제는 비동기 시스템을 동기 시스템과 비교했을 때, 도대체 장점이 많은가 단점이 많은가입니다. 이 문제는 두가지 방면에서 볼 수 있습니다.

 

먼저 성능을 추구할 경우입니다. 비동기 시스템의 절전 특징은 성능을 제한함으로서 비롯된 것입니다. 동기 작업에 자원을 소모하기 때문에, 비동기 시스템은 제법 무거운 계산을 할 때만 최적의 효율을 낼 수 있습니다. 이런 상황에서 CPU의 파이프라인은 풀로드 상태로 동작하게 되고, 명령어의 프리패치외 디코딩 이후 백엔드 파이프라인이 꽉 막혀 멈추게 됩니다. 이때 버스 사용율은 크게 떨어지고, 동기화에 소모하는 리소스 역시 티가 덜 나게 되지요. 하지만 사용자가 가벼운 멀티 스레드를 실행할 때, 동기화에 필요한 리소스 소모는 존재하며, 시스템 성능에 큰 영향을 줍니다. 멀티 스레드를 전환할 때는 끊기는 현상까지도 발생하지요. 이게 퀄컴 시스템의 특징입니다.

 

다음은 동기 시스템이 각종 방법으로 동기화에 필요한 높은 전력 사용량은 낮추고 있다는 것입니다. 그 중 하나는 명령어 파이프라인에 복잡하고 정밀한 클럭 게이팅을 넣어, 명령어 입력이 없을 때 파이프라인은 전체를 끌 수 있고, 이걸 통해 전력 사용량을 낮춥니다. 이것은 이미 상당히 발전된 기술이며, 현재 대부분의 CPU 설계에 도입된 것이기도 합니다. 따라서 동기 시스템과 비동기 시스템의 차이는 겉으로 보는 것만큼 그리 크지 않을 수도 있습니다.

 

전체적으로 말해서, 핸드폰의 비동기 시스템은 전력 사용량을 줄이기 위한 절충방안이며, 성능과 전력 사용량을 해결하는 유일한 길은 아닙니다. 많은 경우 퀄컴 MSM 플랫폼의 절전 효과는 CPU, 베이스밴드, 모뎀 등 서브시스템의 공동 작용에서 나오게 됩니다. 비동기 시스템이 전력 사용량 절감에 큰 공헌을 한다는 것은 오해입니다.

 

 

 메모리 대역폭. 얼마나 중요한지를 모르는.

 

2012년의 SoC에서 메모리 시스템은 상당히 큰 차이가 있었습니다. 그땐 어땠는지 한번 볼까요.

 

28.jpg

 

메모리의 영향이 정말 클까요? 당연합니다. 이 문제는 몇 년 전부터 있었지만 그때는 별로 중요하게 여기지 않았습니다. 하지만 지금 스마트폰의 해상도는 갈수록 높아지고 있고, 옵션도 점점 늘어나고 있으며, 성능도 계속 높아지고 있습니다. 모든 내장 기기는 메모리에 자주 데이터를 액세스합니다. PC와 다르게, 핸드폰의 GPU는 독립된 메모리를 갖추고 있지 않습니다. 그래서 비디오 메모리 역시 메모리 버스를 점유하며, 이는 메모리 시스템에 상당한 압력이 됩니다. 이 문제를 해결하는 방법은 메모리 대역을 늘리는 것입니다. 심지어 그 방법도 일치합니다. 듀얼채널로 가는 것이지요. 사실상 듀얼코어 시대가 온 이후, 거의 모든 SoC는 듀얼채널 설계를 쓰게 됐습니다.

 

왜 거의 모든이라고 했냐 하면, 예외가 있기 때문입니다. 모두 세개지요. 하나는 테그라 2, 두번째는 퀄컴 S3, 세번재는 테그라 3입니다. NVIDIA가 두개나 있군요.

 

메모리 대역은 모든 것의 기초입니다. 과거에도 그랬고, 현재도 그렇고, 앞으로도 메모리 대역폭이 크면 클수록 좋을 것입니다. 테그라 3는 비록 싱글 채널 메모리를 쓰지만 메모리 컨트롤러의 작동 클럭이 매우 높습니다. 공식 스펙에선 LPDDR2 1066MHz로 표기되어 있지요. 32비트 싱글 채널이라면 단방향 대역이 4.2GB/s가 나옵니다. 하지만 테그라 3 시스템의 실제 클럭은 알려지지 않았지요. 테스트 결과를 보면 1066Mhz보다는 낮을 것입니다.

 

29.jpg

 

공식 데이터를 보면 퀄컴 APQ8064는 비록 듀얼채널 LPDDR2 메모리를 쓰지만, 메모리 클럭은 533Mhz입니다. 그럼 메모리 시스템 전체를 봤을 때 대역폭은 테그라 3와 똑같은 4.2GB/s가 됩니다.

 

30.jpg

 

듀얼채널을 쓰면 메모리 대역폭을 높이는 것과 동시에 딜레이도 늘어나게 됩니다. 만약 듀얼채널 시스템의 클럭이 매우 낮다면-APQ8064처럼- 그 시스템은 오히려 성능에 부정적인 영향을 주게 됩니다. 필요로 하는 데이터가 항상 두개의 서로 다른 메모리 컨트롤러 휘하에 있다고 보장할 수 없으니, 저클럭 듀얼채널의 전체 레이턴시는 고클럭 싱글채널보다 높을 수밖에 없습니다. 한 20% 정도 말입니다.

 

엑시노스 4 쿼드의 경우 메모리 서브시스템이 듀얼채널 LPDDR2 800MHz입니다. 그래서 최대 대역폭이 6.4GB/s에 달하지요. 평균 레이턴시도 테그라 4에 근접했습니다. 따라서 이 3가지 CPU 중 엑시노스 4 쿼드의 메모리 성능이 제일 좋습니다.

 

31.jpg

 

하지만 성능이 상승해서 최신 제품에 이르자, 그러니까 스냅드래곤 600/800, 엑시노스 옥타, 테그라 4 등등, 듀얼채널 메모리 컨트롤러를 쓸 뿐만 아니라 지원 메모리도 LPDDR3로 업그레이드됐습니다. 이건 나중에 다시 설명할게요.

  

 

전력 사용량 설계, 누가 사나이인가

 

안드로이드폰을 쓰는 사람들은 매일 밤마다 집에서 충전을 해야 합니다. 이건 모든 스마트폰이 다 그렇겠지만. 강한 성능은 배터리 사용 시간이 줄어든다는 부작용을 가지고 있고, 이는 많은 사용자들에게 있어 매우 머리 아픈 문제입니다. 배터리 기술에서 혁명적인 변화가 생기길 바라는 건 무리고, 유일한 방법은 전기 사용량을 줄이는 것 뿐입니다. 아까 제조 공정을 설명했을 때, 엑시노스 4 쿼드, 테그라 4, APQ8064가 서로 다른 공정을 쓴다고 말했지요. 당연히 전력 사용량도 다릅니다. 다들 자신이 전기를 제일 덜 먹는다고 하지요. 따라서 뭐가 좋은지 비교해 봅시다.

 

32.jpg

 

여기서 전력 사용량 테스트의 주요 소스는 인터넷에서 찾았습니다. 따라서 데이터가 정확하거나 공평하지 못할 수 있으니 너무 진지하게 받아들이지 마시고, 연구의 참고자료로만 받아들입시다.

 

먼저 테그라 3를 봅시다. NVIDIA는 정직한 편이라 테그라 3의 백서에 전력 사용량에 대해 밝혀 놨습니다. 테그라 3의 모든 CPU가 1Ghz로 작동할 때 전력 사용량은 1.26W지만, 테그라 3의 실제 작동 클럭은 1.5Ghz입니다. NVIDIA는 이 때 전력 사용량이 얼마인지는 밝히지 않았지요. 그저 우리는 추측할 수 있을 뿐입니다. Fast G 공정의 누설 전류는 비교적 큽니다. 따라서 테그라 3가 1.5GHz에서 전력 사용량은 2.5~3W 정도 될 것입니다. 테그라 3의 거의 모든 칩이 40나노 Fast G 공정으로 만들어졌다는 점을 고려해서 다른 기기의 전력 사용량도 추측할 수 있습니다. 테그라 3의 전력 사용량은 상대적으로 큰 편입니다. 여기에 NVIDIA의 오랜 습관, 표기 값보다 낮았으면 낮았지 높진 않은 정직한 전통이 있으니, 이 추측 값이 그렇게 차이가 나진 않을 것입니다.

 

33.jpg

 

물론 테그라 3는 LP 공정으로 제조한 컴패니언 코어가 있습니다. 하지만 이 컴패니언 코어는 아이들 모드에서 Fast G 공정의 누설 전류를 피하기 위해 쓸 뿐이며, 정상적인 상황에선 그리 많이 등장하지 않습니다.

 

GPU 부분의 경우 참고할만한 재료가 전혀 없습니다. 그래서 전기를 얼마나 먹는지 정확히 알 수 없으며 오직 실제 사용 시간을 토대로 추측만 가능합니다. 사람들의 실제 사용 소감에 의하면 테그라 3 핸드폰에서 게임을 할 때 배터리 시간은 그렇게 길진 않습니다. 그래서 테그라 3의 GPU 부분은 1W 정도 정기를 먹는 것으로 보이는데요. 이 말은 테그라 3 칩의 CPU와 GPU가 전부 풀로드로 작동한다면 3.5W 정도 나온다는 이야기입니다. 다시 한 번 말하지만 정확하진 않습니다.

 

34.jpg

 

테그라 3를 봤으니 다음은 엑시노스 4 쿼드입니다. 이 칩의 상세 정보를 삼성은 공개하지 않았습니다. 하지만 듀얼코어 엑시노스 4 듀얼 32나노와 같은 공정을 썼다는 걸로 알고 있는데, 이것은 삼성 홈페이지에서 확인 가능합니다. http://www.samsung.com/global/business/semiconductor/minisite/Exynos/movie/Tech_Edit.mp4

 

위 이미지에 나온대로, 1.5GHz 듀얼코어 엑시노스 4 듀얼 32나노의 CPU 부분은 대략 1W 정도 전기를 씁니다. 각 코어 당 500mW인 셈이지요. 엑시노스 4 쿼드의 작동 클럭은 1.4Ghz입니다. 따라서 전력 사용량은 430mW 정도 될 것으로 보입니다. 이 말은 쿼드코어 전체의 전력 사용량은 1.7W 정도이며, 테그라 3보다 최소 30%는 낮다는 이야기입니다.

 

오리온의 GPU 부분이 얼마나 전기를 먹는지는 역시 경험에 의해 알 수 있습니다. 45나노 공정에서 266Mhz로 작동하는 Mali400 MP4의 전력 사용량은 대략 105mW 정도입니다. 엑시노스 4 쿼드의 GPU 클럭은 대략 400MHz입니다. 따라서 그 점을 고려한 전력 사용량은 160mW 정도 됩니다. 그러니까 엑시노스 4 쿼드의 CPU+GPU의 최대 전력 사용량은 대충 1.9W 정도가 됩니다.

 

마지막으로 APQ8064입니다. 앞서 소개했던 두 칩과 다르게, 퀄컴은 MSM8960(APQ8064와 똑같은 코어)의 개발 플랫폼을 제공하며, 각 부분의 전력 사용량을 간단하게 측정할 수 있습니다. 비록 전력 사용량은 클럭과 부하에 따라서 변화가 크지만, 1.5GHz로 작동할 때 krait CPU의 전력 사용량은 700~7500mW입니다. 따라서 APQ8064가 만약 쿼드코어 풀로드라면 소비 전력은 3W 정도가 나온다는 이야기입니다. 테그라 3랑 비슷하군요.

 

35.png

 

MSM8960의 GPU는 Areno225입니다. 따라서 GPU 전력 사용량을 APQ8064와 직접 비교할 수 없습니다. 하지만 MSM8960의 GPU 전력 사용량은 상당히 높은 편입니다. 최고 1.6W가 되며 평균으로 따져도 1.1W 정도지요. 엑시노스 4 쿼드의 7배에 달합니다. 칩 규모로 따진다면 ADreno 320과 ADreno 225는 제조 공정이 완전히 같으면서 크기는 두배로 늘었습니다. 비록 마이크로아키텍처의 향상이 어느 정도의 절전 효과를 가져왔겠지만, 이런 점을 미루어 볼 때 Adreno 320의 전력 사용량이 2W보다 낮을 것으로 보이진 않습니다.

 

36.png

 

글 앞부분에서 퀄컴은 선진 공정인 28나노 HPL HKMG 공정을 쓰지 않았다고 말했습니다. 제품의 전력 사용량이 어느 정도 부정적인 영향을 줄 것이라고도 했지요. 여기서는 그 결과를 이미 눈으로 확인한 듯 합니다. HKMG 기술을 더한 엑시노스 4 쿼드는 3개의 프로세서 중 전력 사용량은 제일 낮습니다. 테그라 3는 컴패니언 코어가 존재하기에 실제 전력 사용량을 직접 비교하기가 매우 어렵습니다. 하지만 극한 상황에서는 그리 낙관적일 순 없습니다. APQ8064의 풀로드 전력 사용량은 지난 세대 쿼드코어 프로세서 중 최고입니다. 하지만 실제 제품 중에선 제조사들이 클럭을 대부분 낮춰 쓰기 때문에-특히 GPU- 실제 제품의 전력 사용량은 그렇게까진 높지 않을 것으로 보입니다.

 

37.png

 

이론적으로 계산한 최대 전력 사용량

 

 

스펙 비교 말고 성능

 

평범한 사람들에게 있어서, 이론적으로 분선한 긴 글은 별로 재미가 없습니다. 여기까지 보느라 분명 피곤하셨을 거에요. 비록 이론이 어쩌구 저쩌구 해도 결국은 실제 성능이 중요합니다. 2012년의 플래그쉽 프로세서 3개가 장점도 단점도 모두 있다 했지만 실제 테스트를 해야 어떤지 와 닿겠지요. 그래서 여기선 아난드텍, GSM아레나 등의 테스트 결과를 정리해서, 이론 분석 부분과 결합해 결론을 내도록 하겠습니다. 당연히, 이들 테스트는 환경이 통일되어 있지 않았다는 점은 유의하시길.

 

또 하나, 여러 원인으로 몇몇 테스트는 참고 가치가 매우 떨어졌습니다. 네오마크, 네나마크 V1, 벨라모 등이 그렇습니다. 그래서 이런 테스트들은 뺐습니다.

 

먼저 순수 성능 테스트부터 볼까요. 1.2GHz 엑시노스 4210, 1.5GHz MSM8260을 넣었습니다. 린팩은 효율이 상당히 높은 테스트 중 하나로, 시스템의 부동소수점 연산 성능을 테스트합니다.

 

38.png

 

빨간색은 멀티스레드, 파란색은 싱글스레드.

 

APQ8064는 압도적인 1위를 기록했습니다. 이것은 VFPv4에서 비롯된 것이며, A9와 스콜피언은 VFPv3를 씁니다. 부동소수점 연산 성능은 실제 애플리케이션에서 주는 영향이 제한적이니, 이 테스트의 실제 의의는 그렇게 큰 편은 아닙니다. 재밌는 건, 엑시노스 4 쿼드가 비록 클럭은 높아도 싱글 스레드 성능은 엑시노스 4210만 못하다는 것입니다. 이것은 앞서 이야기한 프로세서 서비스시스템의 대역폭 문제에서 영향을 받은게 아닐까 생각됩니다.

 

이어서 안드로이드 테스트에선 빠지는 적이 없는 안투투입니다. 종합 성능 테스트만 비교해 보겠습니다.

 

39.png

 

APQ8064는 3종 쿼드코어 플랫폼 중 최고 점수를 기록했습니다. 그 다음은 엑시노스 4412, 그리고 테그라 3였습니다. 2코어와 4코어는 여기서 상당한 차이를 보였는데요. 이 점은 다음 점수 분석에서 자세히 보도록 합시다.

 

40.png

 

안투투 벤치마크의 점수 분석. 녹색은 부동소수점, 빨간색은 정수, 파란색은 메모리

 

메모리 부분의 결과는 재밌습니다. 비록 엑시노스 4210과 엑시노스 4 쿼드가 같은 메모리를 쓴다고 하지만, 점수는 엑시노스 4210이 절반도 안됩니다. 엑시노스 4 쿼드의 메모리에서 CPU까지 연결하는 효율이 확실히 높은 걸로 보이네요. 쿼드코어로 한정하면 역시 퀄컴 플랫폼은 부동소수점과 정수 성능이 Cortex-A9보다 크게 떨어집니다. 이것은 비동기 아키텍처의 소모에 안투투 벤치마크의 부동소수점 부분이 VFP 가속을 지원하지 않아서 그런 것도 있습니다.

 

정수 부분의 차이는 듀얼코어와 쿼드코어가 제법 많이 납니다. 비록 Krait의 아키텍처가 뒤어난다고는 해도 앞서 아키텍처 분석을 할 때 찾았던 원인대로, Krait건, Cortex-A9건, Cortex-A15건 정수 연산이 모두 2개 조합이라 실행 성능은 그렇게 큰 차이가 나진 않습니다.

 

다음은 이론 성능 테스트 프로그램인 CF-벤치입니다.

 

41.png

 

녹색은 총점. 빨간색은 네이티브, 파란색은 자바

 

마찬가지 이유로 해서 정수 연산 위주인 네이티브 성능은 1개 코어의 동일 클럭 성능이라고 봐도 무방할 것입니다. 그저 APQ8064의 성능이 테그라 3와 엑시노스 4412보다 많이 떨어지는데, 이는 비동기 방식에서 비롯된 것이겠지요. 하지만 놀라운 건 Krait의 자바 성능이 다른 2개 쿼드코어 플랫폼다 상당히 뛰어나다는 것입니다. 이전 세대 제품인 스콜피온의 두배를 넘어서는데다, 모든 쿼드코어 Cortex-A9보다도 우수합니다. 이 결과는 상당히 의외인데, Krait가 도입한 별도의 실행 부분에서 비롯된 것으로 보입니다. 어찌됐던 간에 이런 결과는 순수 자바 애플리케이션에선 APQ8064가 뛰어난 성능을 낸다는 이야기가 되겠습니다. 심지어 쿼드코어 A9보다도 뛰어나지요. 유일한 문제라면 연산 밀집형 순수 자바 애플리케이션이 갈수록 줄어들고 있다는 것입니다. 물론 아예 없는 건 아닙니다. 바로 아래에서 하나 보시게 되겠지만요.

 

쿼드란트는 자주 쓰는 벤치마크 프로그램으로, 순수한 자바 테스트입니다. Krait의 높은 자바 성능 효과를 측정할 수 있지요. 여기서 쓴 건 멀티코어를 지원하는 V2 버전인데, 총점은 I/O 부분의 영향이 매우 큰 관계로, 여기선 CPU와 메모리 성능만 보도록 하겠습니다.

 

42.png

 

매우 높은 자바 성능 덕분에 APQ8064는 이 테스트에서 압도적인 선두를 차지하고 있습니다.

 

이론 성능 테스트는 여기까지로 하고, 다음은 실제 환경을 상정해서 테스트를 해 보도록 하겠습니다. 먼저 스마트폰 벤치마크 2012의 CPU 성능입니다.

 

43.png

 

APQ8064를 테스트한 건 찾지 못했지만 MSM8960의 테스트 결과는 쿼드코어 Cortex-A9와 동일한 수준입니다. 테그라 3는 여기서 예상 외로 1위를 기록했습니다. 1.5GHz의 높은 클럭 덕분이지 싶네요.

 

브라우저 테스트는 애플리케이션에서 상당히 자주 보는 항목입니다. 선스파이더부터 봅시다.

 

44.png

 

테스트에 걸린 시간이 작을수록 좋습니다. 듀얼코어 A9, 듀얼코어 Krait, 쿼드코어 A9의 순이지만 그 차이가 그리 크진 않습니다. 왜냐하면 선스파이더 테스트는 브라우저 자바스크립트 엔진의 영향을 주로 받기 때문에, 시스템 로우레벨 최적화와 밀접한 연관이 있습니다. 따라서 차이가 그리 크지 않은 것도 이해는 됩니다.

 

다음은 브라우저마크입니다.

 

45.png

 

브라우저마크의 결과는 매우 재밌습니다. 엑시노스 4412만 앞서 있고, 그 뒤를 APQ8064가 쫓고 있습니다. 이 외에 다른 플랫폼은 비슷비슷한 수준입니다. 더 재밌는 건 테그라 3와 MSM8960이 엑시노스 4210만 못하다는 것입니다. 이것은 삼성이 브라우저에 최적화한 효과가 다른 회사보다 크다는 것을 설명합니다.

 

마지막으로 3D 성능을 봅시다. 제일 먼저 쓴 건 명성이 아주 높은 GL벤치마크. 2.1 버전의 이집트 테스트는 대량의 쉐이더, 특히 픽셀 쉐이더를 쓰기에 GPU의 픽셀 처리 성능이 어떤지를 볼 수 있습니다. 해상도가 테스트에 주는 영향을 피하기 위해 여기선 720p Offxcreen의 데이터를 뽑아 봤습니다.

 

46.png

 

Adreno 320은 상당히 큰 하드웨어 규모를 지니고 있어 이 테스트에서 1위를 기록했습니다.

 

47.png

 

GL벤치마크 2.5에서는 모든 보델과 효과를 새로 설계했기 때문에 변화가 큽니다. 특히 모델의 경우 세밀한 부분까지 묘사가 되어 있고 폴리곤도 늘어났지요. 이 테스트에서 Adreno 320은 여전히 1등을 차지했으며 2등과 차이도 33%가 납니다. 물론 1등이라고 해도 2.1 버전에서 100fps이 넘던 성적이 여기선 20fps 정도로 떨어졌다는 걸 빼놓을 수 없긴 하지만요.

 

48.png

 

안투투 벤치마크의 3D 테스트 부분은 3.0 이전 버전까지 줄곧 간단한 수준을 유지했기에 GPU 수준을 제대로 테스트할 수 없었습니다. 3.0부터는 새로운 3D 테스트를 넣어 테스트 변별력이 높아졌지요.

 

일단 테스트의 복잡도가 상승하자 Mali400 MP4의 성능은 대폭 떨어지고, 동시에 Adreno 시리즈는 대폭 상승했음을 알 수 있습니다. 안투투 V3에서 APQ8064를 쓴 스마트폰은 다른 기기보다 점수가 월등히 높았는데, 거의 대부분이 GPU의 공로입니다.

 

마지막은 3D 마크입니다. 모바일 기기 지원을 발표한 이후 상대적으로 공평하다고 평가받는 테스트로 꼽히고 있습니다. 데스크탑에선 다이렉트 X 9 수준의 테스트라 평가가 그리 좋진 않지만, 아직까진 이보다 더 좋은 테스트를 찾지 못했습니다. 지금까지 테스트에선 퀄컴이 GPU빨을 내세워 1등을 놓치지 않았는데, 3D마크에선 어떨까요?

 

49.png

 

엑시노스는 처참하고 APQ8064는 압도적입니다. Adreno320의 폭발적인 성능은 다른 쿼드코어 플랫폼의 3배에 달합니다. 이 정도면 2007년에 나온 저가형 그래픽카드인 지포스 8400M GT 급은 됩니다.

 

 

전력, 클럭, 성능의 탐구

 

이번 테스트엔 2 가지의 아키텍처와 2 종류의 코어 수가 있습니다. 그럼 여기선 좀 더 깊게 들어가 보지요. 3대 플랫폼에서 성능 대 전력 사용량을 따져보는 것입니다. 린팩을 제외하고, 우리는 각 테스트에서 해당 플랫폼의 최대 전력 사용량을 산출해 그 데이터를 정리했습니다. MSM8260의 전력 사용량은 알려지지 않았으니 650mW 정도로 추측하고 있습니다. 먼저 CPU 부분의 성능 대 전력 사용량 비교입니다. MSM8960의 성능을 1로 잡았을 경우 비교하면 이렇습니다.

 

50.png

 

성능 대 전력 사용량. 안투투 정수, 안투투 부동소수점부터 시작하는 테스트 결과입니다.

 

다음은 GPU 부분입니다.

 

51.png

 

단위 성능 대 전력 사용량 비교

 

종합해서 보면 엑시노스 4412는 쿼드코어 플랫폼 중 성능 대 전력 사용량이 제일 뛰어납니다. 그 다음은 MSM8960인데 듀얼코어 SoC니 어찌보면 당연하지요. APQ8064는 절대 대부분의 상황에서 효율이 엑시노스 4412보다 떨어지지만 성능 차이는 크지 않습니다. 이것은 두 제품의 사용자 체험이 비슷하다는 이야기지요. 단 APQ8064의 발열은 엑시노스 4412보다 훨씬 높습니다. 제조사는 클럭을 낮추고 엄격한 온도 컨트롤을 통해 전력 사용량을 조절할 수 있습니다. 하지만 이렇게 하면 성능에 큰 영향을 주게 됩니다. 종합해서 보면 APQ8064는 성능은 높지만 전력 사용량이나 발열 등의 문제를 이를 제대로 발휘하진 못합니다.

 

GPU에선 퀄컴에 대해 말할 건 없습니다. 차이가 워낙 크다보니까요. 테그라 3는 뒤얼어진 40나노 공정을 쓰기 때문에 성능 대 전력 사용량의 효율이 뛰어나지 못한 건 이해가 됩니다. 다만 S4는 이미 28나노 공정을 썼으면서(비록 공정 세부 디테일은 떨어지지만) 아키텍처에서 큰 장점이 있으면서도 성능 대 전력 사용량 효율은 크게 떨어집니다. 최신 성능 테스트에서 Adreno 320의 성능은 절대적인 우세를 보이고 있지만, 전력 사용량은 2W가 넘어갑니다. 실제 애플리케이션을 사용하는 상황에서, Adreno 320 정도는 되야 게임을 원활하게 도릴 수 있겠지만, Aereno 320은 전력 사용량이 많아 실제 사용 가치는 떨어집니다. 퀄컴은 이 점을 빨리 해경해야 할 것입니다.

 

52.jpg

 

위에서부터 버텍스 프로세서, 픽셀 프로세서, ROP, 연산 성능. Adreno 320은 통합 쉐이더를 씁니다.

 

Adreno 320처럼 대형 칩을 쓰는 경우는 모바일 업계에서 흔한 경우는 아닙니다. 이쪽 동네에서 나온 소식에 의하면 Adreno 320이 칩에서 차지하는 크기는 30제곱mm 정도 된다네요. 로드맵에 따르면 연말에 출시된 스냅드래곤 800은 이보다 크기가 더 큰 Adreno 330을 씁니다. 성능은 50% 향상되지요. 하지만 퀄컴이 자사 GPU의 효율과 전력 사용량을 개선하지 못했다면 업그레이드의 의의가 그리 크진 않을 것입니다. 성능이 아무리 강하다고 해도 오래 쓰질 못한다면 효과가 없지요. 스마트폰 속에 3W에 달하는 GPU가 들어있다면 어떤 느낌일까요. 확실한 건, 정말 그런 GPU를 넣는다면 99%의 상황에선 제 성능의 반도 내지 못할 것이란 점입니다.

 

성능 대 전력 사용량을 따졌으니 이제 클럭이 같을 땐 성능이 어떤지 봅시다. Cortex-A9, 퀄컴의 Krait와 스콜피온입니다. 

 

53.png

 

3종 코어의 동클럭 성능. 린팩 싱글 스레드, 린팩 멀티 스레드, 안투투 정수, 안투투 부동소수점으로 시작합니다.

 

이 결과에서 스냅드래곤 S4의 krait 코어는 정수 실행 성능이 Cortex-A9와 비슷하다는 것을 알 수 있습니다. 일부에서 말하는 것처럼 Cortex-A9을 뛰어넘어 Cortex-A15와 동급이라 말할 정도는 아니라는 거지요. Krait의 성능이 크게 앞선 세 항목 중에서, 린팩은 Krait의 최신 VFP 프로세서 덕분에 높은 성능이 나왔고, 실제로는 자바 성능이 좋다고 이야기해야 맞을 것입니다. 그러니 이 부분은 실제 사용에서 체감하는 것과는 차이가 큽니다. 하지만 비동기 아키텍처가 성능에 부정적인 영향을 줬다고 할 수도 있겠지요. 그러니까 종합하자면 krait와 Cotex-A9는 상당수 테스트에서 동급인거지, 큰 차이가 나는 건 아닙니다. 이 결과에 퀄컴은 만족하지 못할 수도 있겠으나, 퀄컴은 2년에 한 번 프로세서를 업그레이드합니다. 스냅드래곤 S4는 막 출시됐을 때만 해도 지난 세대 아키텍처를 완벽하게 물리치진 못했습니다. Cortex-A15를 쓴 제품이 이제 나오고 있으니 Krait 코어는 그 때 더 큰 영향을 받겠지요.

 

 

끝. 정신나간 시대의 마지막 연출

 

이 글을 통해서, 우리는 지난 2012년에 큰 활약을 벌였던 쿼드코어 모바일 프로세서가 과연 어떤 것인지를 알 수 있었습니다. 당시에 모바일 프로세서만의 아키텍처와 기술에 대해서도 돌아 봤지요. 2013년이 이미 절반이 지나갔고, 퀄컴은 최신 프로세서인 스냅드래곤 600을 발표했으며, NVIDIA의 테그라 4도 실용화를 서두르고 있습니다. 삼성은 이미 사상 최초의 옥타코어 모바일 프로세서인 엑시노스 옥타를 발표했지요. 앞으로 남은 반년 동안, ARM 진영에는 스냅드래곤 800과 테그라 4가 속속 등장할 것이고, 인텔은 새 실버몬트 아키텍처 아톰으로 솔트웰을 대체할 것입니다. 여전히 Cortex-A15는 고성능을, Cortex-A9는 저전력을 내세울 것이구요. 또 모바일 시장에서 보기 힘든 AMD도 있습니다. TDP가 3.9W밖에 안되는 재규어 코어의 테마쉬 임베디드 프로세서가 있거든요. 앞으로 모바일 프로세서 시장의 경쟁은 더욱 격렬해질 것입니다. 2013년은 끝이 아닙니다.

 

54.jpg

 

하지만 그 후엔 어떨까요? 갈수록 성능, 전력 사용량, 발열, 배터리 유지 시간에 존재하는 모순이 심해질 것입니다. 2007년쯤에 우리는 핸드폰 배터리를 삼일에 한번 충전했지만 지금은 하루에 세번 충전하고 있지요. 지금 최고급 스마트폰은 뭔 수를 써도 프로세서가 풀스피드로 작동하질 못합니다. 전력 사용량 때문에요. 이런 상황을 맞이한 지금, 핸드폰 제조사는 여전히 새 하드웨어로 업그레이드를 하고 있으며, 소비자들도 맹목적으로 더 많은 코어, 그리고 최고 클럭을 추구하고 있습니다. 이런 상황이 과연 정상일까요. 이런 정신나간 시대는 별이 죽기 전에 마지막으로 크게 한번 빛을 내는 것이라고 봅니다. 이런 상황이 앞으로 또 있을 것 같진 않네요.

 

그럼 막 출시된 최신 스마트폰은 어떻게 발전해야 할까요? 최신 하드웨어는 도대체 우리에게 무엇을 가져다 줄까요? 앞으로 이 업계는 어떻게 될까요? 이런 문제에 대해서는 하편에서 계속 알아보도록 하겠습니다. 우리는 과학 기술의 발전을 누리고 있지만, 이것은 부작용도 가져오고 있습니다. 소비자들은 시장을 무에서 유로, 합리적인 소비에서 정신나간 지름으로 끌어나가고 있고, 욕망은 끝이 없지만 정신줄을 붙잡는 데엔 한계가 있습니다. 모바일 사업은 앞으로 어떻게 될까요? PC 사업처럼 바뀌진 않으려나요.

 

소스: http://www.evolife.cn/html/2013/70975.html

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