스마트폰 프로세서의 클럭에 대해서

 

시작하기 전에 간단한 설명을 보고 갑시다. 핸드폰의 프로세서는 오직 1개의 클럭만 표기합니다. 예를 들면 쿼드코어 1.6GHz 이런 식으로요. 하지만 그렇다고 해서 이 프로세서가 시종일관 1.6GHz로 동작한다는 건 아닙니다. 얼마나 많은 부하가 걸렸는지, 그리고 지금 온도가 어떤지에 다라서 클럭은 바귑니다. 예를 들어 아이들 시 200Mhz, 동영상 재생 시 600Mhz, 게임을 할 때 1.6GHz가 되는 식입니다.

 

1.jpg

 

부하가 높을 때도 계속 최고 클럭으로 동작하는 건 아닙니다. 이 때는 온도가 중요한데요. 온도가 설정해 둔 값까지 올라가면 강제로 클럭을 낮춥니다. 그리고 온도가 줄어들면 다시 클럭을 높이지요. 이 과정을 멈추지 않고 반복합니다. 이런 시스템을 삼성이나 NVIDIA는 DVFS-동적 전압/클럭 조절-이라 부릅니다.

 

삼성 엑시노스 4412 프로세서를 예로 들면, 이 프로세서는 내부에 온도 센서를 갖췄습니다. SoC의 온도를 측정해 이를 TMU-열/전력 컨트롤 유닛에 보내지요. 만약 온도가 너무 높으면 인터럽트 컨트롤러가 전원 관리 유닛을 조절해 클럭 컨트롤러와 CPU의 클럭을 낮춰, 시스템 온도가 적당한 범위를 지키도록 합니다. 온도가 너무 높으면 강제로 시스템을 종료하기도 하지요. DVFS는 CPU 코어, L2 캐시, GPU, 메모리 포트, 기타 외부 회로의 전압과 클럭을 단독 조절 가능합니다.

 

2.jpg

 

당연히, 엑시노스 5410 같은 시스템은 더욱 복잡합니다. big.LITTLE A15+A7 혼합 아키텍처를 사용했기 때문에, 클럭 조절 외에도 A15와 A7의 코어 전환이 들어갑니다.

 

이 글의 목적은 시스템의 테스트를 통해, 몇 가지 주류 스마트폰용 SoC가 주로 작동하는 클럭 범위가 어느 정도나 되는지를 알아보는 것입니다. 여기에는 삼성 엑시노스 4412/5410, 퀄컴 스냅드래곤 800/600, NVIDIA 테그라 4, 미디어텍 MT6589T, 인텔 아톰 Z2580이 들어갑니다. 엑시노스 5410, 아톰 Z2580을 빼면 모두 쿼드코어인데요. 삼성의 이 8코어 프로세서는 최대 4개의 코어만 작동하며, 인텔 아톰은 하이퍼스레딩이 있으니 어쨌건 스레드가 4개라는 건 모두 같습니다.

 

테스트는 Stablity Test 2.7의 Classic Stablity Test를 통해 CPU에 부하를 줘서 풀로드가 되도록 했습니다. 그리고 안드로이드 튜너에서 클럭과 온도를 모니터링했습니다.

 

 

삼성 엑시노스 4412

 

먼저 중국 메이주의 MX2를 테스트합시다. 삼성 엑시노스 4412 프로세서를 쓰는 스마트폰이죠. Cortex-A9 쿼드코어, 최고 클럭은 1.6GHz입니다.

 

3.jpg

 

MX2의 아이들 시 클럭은 200Mhz, 아이들 시 온도는 43도, 최고 클럭은 1.6GHz였습니다. 풀로드 상황으로 들어가고 40초 후엔 온도가 84도까지 상승, 클럭은 1.6GHz와 1.4Ghz 사이를 움직였고, 60초 후엔 1.4GHz로 떨어졌습니다. 6분 후에 온도는 88도, 이 때 클럭은 1.2Ghz와 1.4GHz 사이에서 움직였고, 10분 후엔 1.2Ghz에서 1.4Ghz가 됐습니다.

 

MX2의 온도 설정은 괜찮은 편입니다. 높은 온도에서도 클럭이 비교적 높은 수준을 유지하고 있으며, 덕분에 우수한 성능을 낼 수 있습니다. 하지만 이것은 반대로 핸드폰의 온도를 높이는 원인이 되기도 합니다. MX2 유저들은 폰이 뜨겁다고 항상 불평을 늘어놓거든요.

 

 

삼성 엑시노스 5410

 

다음 테스트는 삼성 엑시노스 5410을 쓴 갤럭시 S4입니다. big.LITTLE A15+A7 아키텍처를 씁니다.

 

5.jpg

 

갤럭시 S4의 아이들 시 클럭은 250Mhz며, 이 때 코어는 A7을 씁니다. 따라서 전력 사용량과 온도 역시 매우 낮은 편인데요. 아이들 시 온도는 35도에 불과했습니다. 풀로드 시 클럭은 1.73Ghz, 이 상태에서 20초가 지나자 온도는 78도까지 올라갔고 곧 클럭이 떨어지기 시작했습니다. 1.6Ghz와 1.2Ghz 사이를 오갔네요. 클럭이 일단 떨어지자 온도도 바로 줄어들었습니다. 10초 정도가 지나자 온도가 회복되면서 클럭은 1.6GHz가 됐지만, 그 상태에서 몇 초 지나자 다시 1.2GHz가 됐습니다. (사실 이것은 A15에서 A7 1.2GHz로 바꾼 것입니다. 1.6GHz는 A15, 1.2GHz는 A7) 이런 변화가 2번 정도 반복되자 클럭은 1GHz와 0.6Ghz 사이로 떨어졌고, 10초 정도 이 상태를 유지하다가 또 클럭이 오르락내리락거렸습니다. 이 때 최고 온도는 91도.

 

6.jpg

 

CPU와 GPU에 동시에 부하를 주면 어떨지 알아보기 위해, CPU+GPU Stablity Test를 골라 테스트했습니다. 프로세서의 총 TDP는 고정되어 있으며, 엑시노스 5410에 탑재된 533MHz SGX544MP3 역시 일부분의 TDP를 차지하고 있습니다. CPU+GPU의 총량이 TDP를 넘지 않도록 하기 위해, CPU와 GPU에 같이 부하를 줬을 때 CPU 클럭은 상당한 제한을 받았습니다. 최고 1.2Ghz까지만 올라갔지요.

 

 

퀄컴 스냅드래곤 600

 

다음 테스트는 스냅드래곤 600을 탑재한 VIVO Xplay입니다. Krait 300 쿼드코어 아키텍처, 최고 클럭은 1.73GHz입니다.

 4.jpg

 

Xplay의 아이들 시 클럭은 384MHz, 최고 클럭은 1.73GHz입니다. 풀로드에서 20초가 지나자 온도가 75도까지 올라가고 클럭은 1.73GHz와 1.13GHz 사이를 오갔습니다. 3분이 지나자 클럭은 0.81GHz, 1.13GHz, 1.72GHz 사이를 오갔습니다. 최고 온도는 75도.

 

VIVO는 Xplay의 온도를 상당히 보수적으로 책정했습니다. 75도부터 클럭이 떨어지기 시작하거든요. 동시에 Xplay의 쿨링 성능은 나쁘지 않은 편입니다. 온도가 메이주 MX2나 갤럭시 S4보다 낮거든요. 물론 이건 제조사가 설정을 바꿀 수도 있지요. ZTE 그랜드 S나 누비아 Z5 같은 제품은 더 안정적이고, 온도를 더 빡빡하게 잡아서 다운 클럭이 빠르게 진행됩니다. Xiaomi 2S같은 '발열 핸드폰'이 성능을 추구하면서 온도가 높더라도 클럭을 높이는 것과 대조적이지요.

 

 

퀄컴 스냅드래곤 800

 

스냅드래곤 800은 퀄컴츼 플래그쉽 모델로, 4개의 Krait 400 코어와 Adreno 330 GPU를 통해 성능이 매우 강력합니다. 스냅드래곤 800을 쓴 스마트폰으론 소니 L39h를 골라 테스트했습니다.

 

7.jpg  

 

스냅드래곤 800은 성능을 추구하는 프로세서이기 때문에, TSMC는 고클럭에 최적화되고 누설전류가 조금 높은 HPm 공정을 써서 이 프로세서를 만들었습니다. 스냅드래곤 800은 풀로드 시 온도 상승이 매우 빠르며, 풀로드에 2.15GHz까지 클럭이 올라가면 온도는 73도가 됩니다. 그리고 온도 정책도 상당히 안전을 추구하는 편이라, 일단 2.15Ghz에 도달함과 동시에 바로 다운클럭이 시작됩니다. 온도가 순식간에 1GHz 아래로 떨어지지요. 도 삼성 엑시노스 5410이 높은 클럭과 낮은 클럭 사이를 계속 오가는 것과 달리, 스냅드래곤 800의 클럭은 그렇게 자주 움직이지 않습니다.

 

2.15Ghz로 작동할 수 있는 프로세서지만, 안정적으로 작동하는 클럭은 1Ghz가 안됩니다. 삼성 엑시노스 5410보다 못하군요.

 

 

NVIDIA 테그라 4

 

테그라 4는 NVIDIA의 A15 아키텍처 플래그쉽으로, 4+1 코어를 씁니다. 여기선 테그라 4를 쓴 쉴드를 테스트 기기로 썼습니다. 테그라 4는 비록 1.9GHz까지 올라가지만, 인텔의 터보 부스트와 비슷한 방식으로 작동하는데요. 코어 한 개의 클럭은 1.9GHz까지 올라갑니다. 그러나 4개의 코어가 동시에 풀로드가 걸린다면 1.3~1.4GHz가 한계입니다. 하지만 클럭이 안정적으로 작동하는 건 괜찮은 편입니다. 최고 온도는 68도밖에 안됐는데, 이건 누설 전류가 낮은 TSMC HPI 공정의 혜택을 입은 것이겠지요...라고 분문에서 썼으나, 사실은 쿨링팬 덕을 본 거겠죠.

 

여기선 메모리와 CPU를 같이 테스트했는데, 만약 테그라 4를 스마트폰이나 태블릿에서 쓴다면 공간 문제 때문에 메모리를 SoC에 POP로 같이 패키징할 것입니다. 그럼 열 전도 성능이 대폭 떨어지면서 온도가 크게 오르고, 클럭도 줄어들겠지요. 그리고 스마트폰이나 태블릿엔 쉴드에 들어간 쿨링팬을 쓰기도 힘들거고. 따라서 테그라 4의 클럭은 그냥 참고만 하세요.

 

8.jpg

 

 

미디어텍 MT6589T

 

4코어 A7 아키텍처 1.5Ghz인 MT6589T. 여기선 중국 Gionee의 X817 스마트폰으로 테스트했습니다. CPU 풀로드가 10분 정도 되자 클럭은 1.5GHz 정도에서 안정적으로 작동했지만, MT6589T 프로세서 내부에 온도 센서가 없는 관계로 프로세서 온도가 어떤지 정확히 알 수 없었습니다. 기기 표면을 만져봤을 땐 긴 시간 동안의 풀로드 동작에도 불구하고 온도가 그리 높다는 생각은 들지 않았는데요. 이건 A7 코어가 저전력 제품이라서 그런 점이 있겠지요. 심지어 상당수 상황에선 1.5Ghz로 안정적으로 작동하는 A7 프로세서의 성능이 더 최신 프로세서보다 성능이 좋게 나오기도 합니다.

 

9.jpg

 

 

인텔 아톰 Z2580

 

인텔 Z258 테스트를 위해 ZTE의 Geek을 골랐습니다. 아톰 Z2580 프로세서는 2코어 4스레드, SGX544MP2 GPU를 내장했지요.

 

아이들 시 온도는 31도, CPU가 풀로드로 10분 정도 지났음에도 최고 클럭은 여전히 2GHz에서 변하지 않았습니다. 클럭이 상당히 안정적으로 유지되는데요. 이 때 온도는 43도밖에 안됐습니다. ARM 프로세서완 비교가 안되는군요.

 

10.jpg

 

CPU와 GPU에 같이 풀로드를 걸었을 때, Z2580의 CPU 클럭은 800~2GHz 사이에서 움직였습니다. 이것은 CPU와 GPU가 최고 TDP를 공유해서 그런 것이지요. 원래 3W의 전력 사용량은 CPU에서 내는 것이지만, 이런 공동 테스트를 할 때는 GPU가 대다수의 TDP를 가져가게 되면서 CPU의 클럭이 자연히 떨어지게 됩니다. 또 이 상황에선 SoC의 온도가 더 높았습니다. 45도였지요. 80~90도를 찍는 ARM과 비교할 건 아니지만.

 

11.jpg  

 

 

성능 분석

 

마지막으로 평균 효율이라는 걸 가져와 봅시다. 먼저 평균 클럭을 구해야 하는데요. 각각 클럭의 작동 시간과 변화량을 측정하면 나오게 됩니다. 더음은 코어 효율입니다. 이건 DMIPS로 측정할 수 있구요. 1Mhz 당 명령어 처리 능력을 나타냅니다. A9는 2.2, Krait는 3.3, A15는 3.5인데, 여기에 클럭을 곱하면 해당 프로세서의 최고 성능과 평균 성능이 나오게 됩니다.

 

12.jpg

 

표 위에서부터 아래로 갈수록 최고 클럭, 최저 클럭, 안정적으로 작동하는/평균 클럭, 아키텍처, DMIPS/MHz, 최대 성능 DMIPS, 평균 성능 DMIPS.

 

당연히, 여기서 나온 성능은 이론적인 이야기고, 실제 성능과는 차이가 있습니다. 하지만 한 가지 문제를 설명할 순 있습니다. krait와 A15의 이론 성능은 높지만 칩의 크기가 크고 전력 사용량이 높아, 클럭이 동작하는 차이가 크고, 평균 클럭이 낮아, 작업 시간이 길어진다는 것. 그러다보니 성능이 이전 세대인 A9와 비교해서 별로 낫지도 않고 심지어 떨어지는 부분도 있습니다.

 

간단히 예를 들어 보면, 삼성 엑시노스 5410이 장시간 동작한다면 클럭은 0.6~1GHz 정도가 고작입니다. 같은 상황에서 삼성 엑시노스 4412는 1.2~1.4GHz 정도로 안정적인 작동이 가능합니다. 엑시노스 5410이 아무리 뛰어나다 해도 다운클럭이 많이 되니까 장시간 쓸 경우 4412만 못한 성능이 나오는 것입니다.

 

이런 상황이 발생하게 된 원인은 SoC의 규모가 커졌지만 제조 공정의 발전은 부족하다는 데 있습니다. 지금의 28나노 LP/HKMG 공정은 A15나 Krait 정도의 큰 칩을 감당하기 버거워 보입니다. 그래서 A15와 krait의 효율이 떨어지는 것이지요.

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