IT

갤럭시S4 옥타코어의 진실을 파헤치자.

마곡동 2013. 5. 14.
728x90
반응형

 

갤럭시S4 옥타코어의 진실을 파헤치자.

 

갤럭시S4는 '세계최초 옥타코어'라는 타이틀을 가지고 출시 전부터 국내·외 언론으로부터 관심을 받고 사용자들은 기대하며 출시일을 손꼽아 기다렸습니다. 이러한 기대에 부응하듯이 갤럭시S4는 출시 닷새 만에 400만대가 팔리는 기염을 토했습니다.

 

하지만 기대가 큰 만큼 실망도 큰 것일까요? 출시 이후 옥타코어의 발열과 성능에 대한 의문점을 제기하는 사용기들이 많이 보이고 있습니다. 그렇다면 세계최초라는 타이틀을 가진 옥타코어는 도대체 어떤 것이며 어떠한 원리로 작동되는 것일까요? 찐빵이와 함께 갤럭시S4에 탑재된 옥타코어에 대해 알아보고 그 성능의 진실을 알아보도록 하겠습니다.

 

 

빅리틀 이라는 신기술이 접목된 옥타코어

빅리틀 이라는 기술은 갤럭시S4에 최초로 적용되었습니다. 쉽게 말하면 위의 그림과 같이 낮은 성능 + 저전력의 쿼드코어 CPU와 고성능의 쿼드코어 CPU가 결합한 형태로 4 + 4 형태의 CPU를 말합니다. 데스크톱에 사용되는 옥타코어와는 다른 형태이지만 이러한 4 + 4 형태의 CPU를 옥타코어라고 부릅니다. 

 

스마트폰을 사용하면서 가장 많은 비중을 차지하는 일반적인 상황(SNS, 메신저, 문자, 전화, 웹서핑 등)에서는 낮은 성능의 쿼드코어가 작동하고 높은 사양을 요구하는 게임 등에서는 고성능의 쿼드코어가 작동합니다. 이처럼 CPU의 사용량에 따라 변화하는 기술을 빅리틀 기술이며 간단한 원리입니다.

 

빅리틀 기술은 ARM이 구상하였다고 합니다. 찐빵이가 위에서는 간단하게 설명을 하여 간단한 기술로 생각할 수 있지만, 이 기술이론을 실제로 접목하는 기업은 없었다고 합니다. 하지만 삼성이 기술을 개발하였고 상용화에 성공하였다고 합니다. 실제로 삼성이 개발하지 않았다면 빅리틀 기술은 페이퍼 기술로 남아있었을 것이라고 합니다.

 

빅리틀에 대한 원리와 기술적인 구체적인 내용은 생략하기로 하고 간단히 특징을 살펴보겠습니다.

 

 

위의 그림은 삼성이 빅리틀 기술을 자사의 엑시노스 AP에 적용해 검증한 자료로 결과를 보면 소비전력이 최대 68% 줄어드는 효과가 나타났습니다.

 

 

위의 그림은 갤럭시S3에 탑재된 CPU와 비교한 것으로 갤럭시S3 대비 전력소모가 26% 감소되었음을 알 수 있습니다.

 

 

 

마지막으로 갤럭시S4에 탑재된 옥타코어의 구체적인 성능표를 살펴보겠습니다. 1st 쿼드코어는 고성능, 2st 쿼드코어는 저성능 입니다.

 

하지만 위의 성능표를 보면서 과연 옥타코어라는 이름이 맞는지, 4 + 4코어 라는 이름이 맞는지에 대한 의문점이 생깁니다.

 

 

갤럭시S4 옥타코어의 진실은?

의문점을 가졌으니 이제 진실을 알아봐야겠지요? 빅리틀은 쉽게 말해 고성능 코어와 저전력 코어의 결합형태로 부하가 높은 작업에서는 빅코어로 빠르게 처리를 하며 부하가 낮은 작업에서는 리틀코어로 전력소모를 줄이는 기술입니다.

빅리틀의 구현방식은 위 그림과 같이 3가지로 나누어 질 수 있습니다. 각 구현방식에 대한 설명은 이 포스팅 마지막에 서술하도록 하겠습니다.

 

 

바로 위의 그림은 CPU Migration이라는 구현방식입니다. 그림과 같이 부하에 따라 자유롭게 A15 Cluster와 A7 Cluster를 각각 활성화 시킬 수 있는 방식으로 낮은 부하의 작업에서 높은 부하의 작업으로 전환시에도 버벅임을 느낄 수 없으며 그 반대의 상황에서도 버벅임을 느낄 수 없어야 합니다.

 

그러나 XDA 포럼에서는 갤럭시S4에 탑재된 엑시노스 옥타코어는 CPU Migration이 아니라고 제기하였습니다.

 

 

분석결과 갤럭시S4에 탑재된 옥타코어는 Cluster Migration으로 각각의 Cluster를 자유롭게 사용하지 못하며 빅코어나 리틀코어 중 하나만 사용이 가능합니다.

간단하게 예를 들자면 홈화면에서는 리틀코어가 작동하고 약간의 부하가 있는 카카오톡이나 웹서핑에서는 리틀코어의 Cluster 일부와 빅코어의 Cluster가 유연하게 작동해야 되지만 Cluster Migration은 빅코어나 리틀코어 하나만 강제로 작동하게 됩니다.

이는 빅코어와 리틀코어를 같이 쓰는 중간단계가 제외된다는 뜻으로 중간의 부하에서는 빅코어 2개, 리틀코어 2개와 같이 작동해야 되지만 갤럭시S4는 불가능 하다는 것입니다. ARM이 설계한 빅리틀 이론과는 조금 다른면이 있다는 것을 알 수 있으신가요?

 

 

그렇다면 Cluster Migration으로 작동하는 갤럭시S4 옥타코어의 문제점은 무엇일까요?

부하가 낮은 작업을 할 때는 리틀코어가 작동하여 배터리를 절약하고 부하가 높은 작업을 할 때는 빅코어가 작동하여 높은 성능을 보여줍니다. 하지만 그 중간의 부하가 걸리면 즉, 리틀코어와 빅코어의 중간단계 부하가 걸리게 되면 두개의 코어 중 한쪽만 작동을 하게 되고 리틀코어가 작동을 하게 되면 버벅임이 생기게 되고 빅코어가 작동을 하면 발열과 배터리 소모가 심해지게 됩니다.

 

하지만 가장 큰 문제점은 CPU Migration은 하드웨어의 문제가 아닌 OS의 문제입니다. 다른 의미로 해석하자면 갤럭시S4의 문제가 아닌 안드로이드가 문제라는 것입니다.

안드로이드에서 지원하지 않는다면 CPU Migration은 불가능하며 다음 버전인 키라임파이에서 지원을 한다는 루머는 돌고 있습니다.

 

세계최초 옥타코어 탑재라는 타이틀을 가지고 출시된 갤럭시S4의 배터리 광탈과 발열에 대한 문제점은 하드웨어가 아닌 소프트웨어적인 문제점이었습니다. 찐빵이가 이 포스팅을 준비하기 전에는 갤럭시S4에 대한 부정적인 시각이 있었지만 포스팅을 준비하면서 그 오해가 풀렸습니다. 여러분들도 오해가 풀리셨나요?

 

옥타코어의 진실은 CPU Migration을 지원하지 않는 안드로이드의 문제였습니다.

 

 

번외 : 옥타코어의 빅리틀 구현방식

1) Cluster Migration

이름에서도 알 수 있듯이 Cluster 단위로 전환되는 방식입니다. 클러스터는 부하에 따라 전압과 클럭이 변화되는 DVFS 포인트를 기준으로 빅코어와 리틀코어에서 스위칭이 발생하는데 그 단위를 말합니다. 빅 클러스터와 리틀 클러스터 간의 스위칭만 가능하며 빅코어나 리틀코어 한쪽만 사용이 가능합니다.

 

2) CPU Migration

코어 단위로 전환되는 방식입니다. DVFS 포인트를 기준으로 빅코어와 리틀코어 간에 스위칭이 일어나며 빅코어 하나와 리틀코어 하나로 구성된 단위로 작동됩니다. 갤럭시S4 옥타코어로 예를 들자면 A15 1코어, A7 3코어를 사용하여 작동되며 코어이용에 가변성이 있습니다. 이는 최적화된 소비전력의 구현이 가능합니다.

다만 빅코어와 리틀코어가 하나씩 묶인 것이 하나의 단위가 되므로 빅코어와 리틀코어의 수가 같아야 하며 DVFS 드라이버의 수정이 필요합니다.

 

3) Multi-Processing

가장 이상적인 구현방식으로 빅코어와 리틀코어를 동시에 사용하며 CPU Migration과 다르게 빅코어와 리틀코어의 수가 달라도 상관이 없습니다. 성능에 대한 장점을 가지고 있는 반면 각 작업의 부하에 따라 최적의 코어에 작업을 분배해야 하기 때문에 하드웨어가 아닌 소프트웨어인 OS에서 태스크 스케줄링을 최적화 해야 한다는 단점을 가지고 있습니다.

 

삼성이 개발한 옥타코어(4 + 4코어)는 위의 3가지 방식을 모두 구현할 수 있다고 합니다. 루머에 의하면 삼성은 ARM과 협의를 통해 커널업데이트를 실시하여 하반기에 Multi-Processing을 지원한다고 하는데 이렇게 되면 스냅600보다 효율도 좋아지고 성능에서도 격차가 벌어지게 됩니다. 이럴 경우 스냅600과 형평성 문제가 생기기 때문에 갤럭시S4에는 지원을 하지 않을 수도 있다고 합니다.

 

 

갤럭시S4에 탑재된 옥타코어의 DVFS 포인트를 조금이나마 엿볼 수 있는 슬라이드 입니다.

Cortex A15를 기반으로 제작된 빅코어는 0.8 ~ 1.7GHz로 작동하며 0.9 ~ 1.2V의 전압이 적용되고, Cortex A7를 기반으로 제작된 리틀코어는 0.2 ~ 1.0GHz로 작동하며 0.9 ~ 1.2V의 전압이 적용됩니다. 빅코어가 800MHz 이며 70%이하의 사용률을 보일 때 리틀코어로 전환되며 리틀코어가 1.0GHz 이며 95%이상의 사용률을 보일 때 빅코어로 전환됩니다. 이 코어의 부하를 체크하는 간격은 100ms 입니다.

 

728x90
반응형

댓글

💲 추천 글