스마트폰/ARM Holdings

ARM big.LITTLE Processing (빅리틀)

gamma0burst 2012. 12. 15. 20:16
반응형

http://pc.watch.impress.co.jp/docs/column/kaigai/20121205_577351.html




big.LITTLE(이하 빅리틀) 에 대해 알아보겠습니다.
고성능 코어와 저전력 코어의 이종결합인 빅리틀은, 부하가 높은 작업은 빅코어로 빠르게 처리하고,
부하가 낮을 때는 리틀코어로 전력 소비를 억제하는 컨셉입니다.

최초는 Cortex-A15, Cortex-A7 의 결합이고, 다음 세대는 Cortex-A57, Cortex-A53 의 결합입니다.

구현 방식이 크게 3가지입니다.



(1) Cluster Migration
클러스터 단위로 전환하는겁니다.
그런데 이렇게 말하면 뭔 말인지 이해하기 어렵지요.
특정 DVFS포인트 기점으로 빅코어와 리틀코어 간에 스위칭이 일어나는데, 그 단위가 각 CPU 클러스터인겁니다. (DVFS : Dynamic Voltage and Frequency Scaling, 부하에 따라 전압과 클럭이 변화.)
빅 클러스터와 리틀 클러스터 간의 전환만 가능합니다.
Cortex-A15 4코어 + Cortex-A7 4코어 구성이라면,
Cortex-A15 4코어만으로 쓰거나, Cortex-A7 4코어만으로 쓸 수 있을뿐, 각각 2개씩 쓴다거나 하는 조합은 불가능합니다.

장점으로는 구조가 간단합니다.
단점으로는, 가변성이 적은 탓에 필요 이상의 성능이 제공되고, 그로 인해 소비전력 이득이 작아집니다.
필요 이상으로 전력을 사용할 수 밖에 없는거지요.
또한 클러스터 단위로 전환되기때문에 빅클러스터와 리틀클러스터의 코어 수가 같아야하고, 이는 다이 사이즈를 증가시킵니다.

(2) CPU Migration
코어 단위로 전환하는겁니다.
특정 DVFS 포인트(전압, 클럭)을 기점으로 빅코어와 리틀코어 간에 스위칭이 일어나는데,
빅코어 하나와 리틀코어 하나로 구성된 단위 내에서 이루어집니다.
Cortex-A15 4코어 + Cortex-A7 4코어 구성이라면,
상황에 따라 Cortex-A15 1코어, Cortex-A7 3코어를 사용하는 식으로, 코어 이용에 가변성이 있습니다.

장점은 최적화된 소비전력의 구현이 가능합니다.
빅코어와 리틀코어가 하나씩 묶인 것인 한 단위이기때문에 여기서도 빅코어와 리틀코어의 수가 같아야하지만, 이렇게 효율적으로 사용된다면 문제가 되지 않습니다.
단점으로는 DVFS 드라이버 수정 필요.

(3) MP (Multi-Processing)
빅코어, 리틀코어 동시에 다 쓰는겁니다.
빅코어와 리틀코어의 수가 달라도 상관없습니다.

장점으로는 단연 성능.
단점은, 각 작업의 부하에 따라 최적의 코어에 작업을 분배해야하기때문에 OS 수준에서 태스크 스케줄링을 최적화해줘야합니다.


슬라이드 상에는 엑시노스가 3가지 모두 지원 가능하다고 밝히고 있지만,
실제로 MP는 아직까지 개발 중인듯 합니다.


 

ARM의 빅리틀 테스트 칩은 빅코어와 리틀코어 개수가 달랐습니다.
(Cortex-A15 x2 + Cortex-A7 x3)


CPU Migration 과 Cluster Migration 의 작업 전환을 보여줍니다.

Cluster Migration 의 경우, 빅코어와 리틀코어가 일괄적으로 전환이 일어나지만,
CPU Migration 의 경우, 코어마다 각각 전환이 일어나는 것을 확인할 수 있습니다.

(각 방식별 개발 상황)



MP의 경우 전환이 필요없지만, CPU Migration 과 Cluster Migration 의 경우에는 전환 과정이 필요합니다.


코어 클러스터들은 GIC-400 이라는 인터럽트 컨트롤러를 공유하여, 인터럽트를 전환합니다.
전환에는 하이퍼바이저(Hypervisor)를 통한 가상화를 통해서 이루어집니다.


코어 클러스터의 L2 캐시는 CCI-400 라는 cache coherency를 통해서 스테이트를 이동시킵니다.
DRAM을 거치지 않고 캐시 사이에서만 이루어지기때문에 전환 시간은 짧습니다.


스테이트의 저장, 복원은 동작 클럭이 높을수록 빠릅니다.
전환을 위해 CPU가 처리를 멈추는 시간(블랙 아웃)은 30us~50us(마이크로초) 이고, 최소 20us 까지 가능합니다.
실제 사용 중에 지연을 느낄 수 없습니다.


삼성은 이미 실제 칩 기반으로 검증을 실시했습니다.
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

(검증 결과, 최대 68% 의 소비전력 절감)



 

반응형