728x90
Reference : The Benefits of Multiple CPU Cores in Mobile Devices (from NVIDIA)
http://www.nvidia.com/content/PDF/tegra_white_papers/Benefits-of-Multi-core-CPUs-in-Mobile-Devices_Ver1.2.pdf

LG에서 최근에 출시한 수퍼 스마트폰 "2X"는 NVIDIA에서 만든 Tegra2 프로세서를 사용하고 있다. 이 프로세서는 1GHz 듀얼코어 CPU로 최초의 모바일용 듀얼코어 프로세서이다. 최근 뉴스에는 올 연말까지 총 5개의 업체가 쿼드코어 스마트폰을 준비하고 있다는 소식을 전한바있다. 물론 이들 업체가 주력으로 쿼드코어 스마트폰을 미는 것은 아니고 주력은 듀얼코어 스마트폰이라고 한다. 그렇다는 것은 올 상반기엔 LG 뿐만이 아니라 다른 제조사들도 듀얼코어 CPU를 채택한 고성능 스마트폰이 줄줄이 나오게 될 것을 암시한다.

현재 싱글코어에서 듀얼코어 혹은 그 이상의 멀티코어 스마트폰으로 옮겨가는 것이 옳은 결정인걸까? 

PC 시장에서는 이견이 없다. 이미 널리 알려진바와 같이 싱글코어의 속도(Clock Frequency)를 높이는 것은 파워 문제로 인해서 포기한지 오래다. 사실 10여년전만해도 지금쯤 10GHz CPU가 등장할거라 예측했었다. 하지만 파워문제로 클럭을 올리는 것보다는 코어수를 늘리는 방향으로 전환되었다. 그렇다면 스마트폰은?

현재 갤럭시S를 포함하여 많은 고급형 스마트폰들이 Arm Cortex A8 기반의 1GHz CPU를 사용하고 있다. 모바일 환경에서 1GHz라는 것은 크게 문제되지 않을 수 있으나 점차 고성능을 요구하는 게임이나 다양한 어플리케이션의 멀티태스킹 환경 그리고 웹브라우징의 속도 개선 등을 위해서 1GHz는 약간 부족함이 없지 않다. 사실 현재 갤럭시S 등에서 프로그램을 설치하거나 프로그램을 사용하다보면 간혹 끊김현상이 발생하는 것을 어렵지않게 볼 수 있다.

만약 이러한 문제를 해결하기 위해서 클럭 속도를 높이게 되면 어떻게 될까? 1GHz 모바일 CPU를 통 크게 전압을 두배 올려서 2GHz 모바일 CPU를 사용한다고 가정을 해보자. (대략적인 값으로 실제와는 약간의 차이가 있다.)

Dynamic Power = CV2F

위의 Dynamic Power 공식에 따라서 V가 2배 F가 2배 증가하였으므로 총 8배의 전력소비가 발생하게 된다. 단순히 말하면 1GHz로 8시간가는 배터리일 경우에 2GHz로 1시간밖에 동작을 안한다는 의미이다. 전력 공급을 지속적으로 받는 PC에서는 큰 문제가 아닐지 몰라도 모바일 환경에서 배터리의 급격한 소모는 큰일이 아닐 수 없다. 따라서 배터리의 획기적인 발전이 없는 이상 클럭을 올리는 것은 무모하다. 즉, 스마트폰 환경에서도 성능 향상을 꾀하기 위해서는 멀티코어 전략을 사용할 수 밖에 없다는 것이다.

그래서 LG는 지난해말 옵티머스 마하를 출시하였는데 옵티머스 마하는 어플리케이션 코어로 OMAP 3630 1GHz를 사용하고 통신을 담당하는 모뎀칩셋 MDM6600을 더불어 사용함으로써 성능향상을 꾀했다. 그러나 얼마지나지않아 듀얼코어 2X가 출시되는 바람에 묻혀버리게 되었다. 그럼 2X가 사용하는 Tegra2 프로세서에 대한 성능을 좀 살펴보자.



대충봐도(헐.. 이런식으로 발표하면 교수님께 엄청 혼나는디 ㅋㅋ) Tegra2가 다른 Cortex A8 기반의 프로세서에 비해서 1.5~2배 정도의 성능 향상이 있는 것을 알 수 있다. 그리고 코어의 수에 따른 성능 향상을 정확히 보기 위해서는 Architecture가 다른 프로세서와의 비교는 큰 의미는 없고 Tegra2의 single core 성능과 비교해보는 것이 더 바람직하다. 여기에 첨부하지는 않지만 single core와 dual core의 성능 차이는 대략 1.4 ~ 2배의 성능향상을 보이고 있다. 성능 향상은 어떻게 보면 너무나 당연하기 때문에 간략히 넘어가고 가장 큰 문제인 파워에 대해서 살펴보자.


NVIDIA는 코어 수의 증가로 인해서 파워 소비가 더 커질 것이란 우려에 대해 그것은 기우에 지나지 않는다며 위의 그림을 제시하고 있다. 이는 앞서 Dynamic Power 계산한 것과 동일한 이론이다. single core로 1.1V에서 1GHz로 동작하는 경우 소비되는 파워를 P라고 했을 때 dual core에서 두개의 코어가 작업을 분산하여 약 50%씩 나눠서 작업을 하게 되면 Dynamic Power 공식에 의해서 약 0.58P 정도의 전력이 소모된다. single core를 사용하는 것보다 dual core를 사용하는 것이 오히려 약 40%의 전력소비가 줄어든다는 말이다.

빠르고 전력소모까지 적으니 오~ 그렇다면 듀얼코어가 훨씬 좋은건가?

그러나 이는 가장 좋은 예일뿐 실제와는 다소 차이가 있지 않을까 생각된다. 성능에서의 문제가 아니라 파워 측면에서 전력소비가 더 적다는 것은 약간 의심스럽다. Single Core의 경우에는 1GHz에 대한 성능 제한이 있다. 오버클럭킹을 하지 않는 이상 (실제 1GHz Arm CPU들을 1.2GHz 정도까지 오버클럭킹해서 사용하는 경우도 있다.) 1GHz 이상의 컴퓨팅 파워가 필요한 프로그램에 대해서도 1GHz로 동작하게 된다. 그렇기때문에 다소 처리가 늦어질 수 있다. 그러나 1GHz Core 두개를 가진 Tegra2의 경우 컴퓨팅 파워가 1GHz 이상 필요한 프로그램에 대해서 (만약 이 프로그램이 멀티쓰레딩이 적절히 이루어지고 있다고 했을 때) 최악의 경우 두 core 모두 1GHz로 동작할 수 있다. 물론 성능 측면에서는 끊김없이 빠르게 수행이 가능하겠지만 두 Core가 모두 1GHz로 동작하게 되면서 파워소비는 2배로 증가할 수 밖에 없게 된다. 한 Core가 1GHz로 동작하고 다른 Core가 400MHz로 동작하게 되어도 400MHz로 동작하는 Core의 파워 소비만큼은 Single Core에 비해서 더 소비되는 것은 어쩔 수가 없다.

작업(Workload)이 두개의 Core에서 비슷한 비율로 적절히 분산된다고 가정하고 "발 계산"(매우 중요! 정말 대충 계산했음)을 해보면 대략적으로 두개의 Core가 약 700MHz로 동작할때까지는 single core에서 1GHz로 동작하는 전력소비와 비슷하다고 볼 수 있다. 따라서 듀얼 코어 스마트폰의 성패는 얼마나 잘 작업(Workload)을 분산시키느냐가 관건이라고 볼 수 있다. 하지만 대부분의 앱 개발자들은 싱글코어를 감안하고 멀티코어를 고려하지 않기 때문에 작업이 얼마나 잘 분산될지는 미지수이다. 

2X의 경우도 이러한 문제로 고민이 많았을 것으로 생각된다. 사실 전력소비 문제 뿐만이 아니라 발열 문제도 큰 이슈이니 정말 엔지니어들의 고생 시나리오는 안봐도 비디오다. NVIDIA의 이상적인 설명에 대한 진위는 2X 실 사용자들이 몸소 체험하게 될 것이니 여기서 멈추도록 하자. (관계자의 말이 사실이라면 2X는 성능 이득을 조금 줄여서 파워 소모를 줄였다고 한다. 하지만 single core에 비해선 파워 소모가 더 크다고... 믿거나 말거나 ㅋㅋ)
728x90
복사했습니다!