ARM big.LITTLE 솔루션

arm-big-little-layout.jpg

1 개요

ARM Holdings에서 개발한 전력 소모 개선 솔루션.

ARM Holdings에서 개발하는 CPU 마이크로아키텍처ARM Cortex-A 시리즈가 시간이 지나면서 점차 고성능화되자, 전통적인 ARM CPU 설계에서의 가장 큰 특징이라 부를 수 있는 전력 대 성능비가 저하되고 CPU 대기시간동안의 누설전류 문제가 점차 증가하게 되었다. big.LITTLE는이러한 단점을 개선하고자 개발되었다.

big.LITTLE의 본격적인 도입은 서서히 ARM CPU의 전통에서 벗어나서 미칠듯한 발열자비없는 전력 소모율을 보여주기 시작하는 ARM Cortex-A15 부터이며 ARM Cortex-A7과 CCI-400 CPU간 인터커넥트 구조와 조합되면서부터이다.

2 상세

간단히 서술하면, 고성능 코어와 저전력 코어를 조합하여 전력 효율과 성능을 전부 잡겠다는 목적으로 만들어졌다. 전성비가 좋고, 전력 소모량이 적을 경우 필연적으로 성능이 떨어지는 단점을 개선한 부분.

크게 3가지 구동 방법으로 구성되어 있다. 명칭이 공개될 때마다 변경되고 있다. 굵은 글씨는 다양한 명칭 중, 정착된 명칭이다.[1]

  • 클러스터 마이그레이션 (Cluster Migration) → CPU 코어 마이그레이션 (CPU Core Migration)
  • CPU 마이그레이션 (CPU Migration) → IKS (In-Kernel Switcher)
  • big.LITTLE 멀티 프로세싱 (big.LITTLE Multi Processing / Global Task Scheduling / Heterogeneous Multi-Processing)

2.1 클러스터 마이그레이션

500px
일의 가중에 따라 리틀코어 부분의 멀티코어 혹은 빅코어 부분의 멀티코어 중 한 쪽의 코어 클러스터만 선택해서 활성화 시킨다. 이는 기존의 가버너와 크게 다르지 않으며, 내부적으로 클럭을 반토막 내거나 두 배로 뻥튀기해서, 두 클러스터 간을 조정한다.

3가지 구동 방법 중 가장 기본적이면서 가장 효율과 유연성이 상대적으로 떨어지는 기술이지만, 구현이 쉽고 절대적으로 비교하면 효율 자체는 나쁘지 않다. 당장 갤럭시 S4 WCDMA 모델이 갤럭시 S4 LTE 모델과 배터리 타임이 비슷하거나 비교 우위를 점하는 상황이 보이는 것이 증거로 들 수 있다.

2.2 IKS 모드

리눅스 커널단에서 가상 코어를 구성한 뒤, 빅코어와 리틀코어 사이를 아키텍쳐의 구분없이 이동한다. 사실, 클러스터 마이그레이션 자체도 IKS 모드의 범주에 포함되지만, IKS 모드의 진정한 목적은 빅코어와 리틀코어의 혼용이다. 최대 쿼드코어로 구성하되, 일의 경중에 따라 사용되는 아키텍쳐가 다르게 구성된다.

리눅스 커널은 첫 번째부터 네 번째 까지의 가상 코어를 구성하고, 각 가상 코어는 빅코어 싱글코어와 리틀코어 싱글코어로 이루어져있다. 리눅스 스케줄러는 4개의 코어에 일을 전담하되, 들어오는 작업량에 따라 능동적으로 빅코어와 리틀코어 구분없이 사이사이를 오고간다.[2] 아마 처음 구상한 big.LITTLE 모델에 가장 가까운 형태라고 추정된다.

이미 2013년 5월에 관련 소스가 처음으로 공개되었으며, 정식 지원은 아니지만, 엑시노스 5420기기에 기존 클러스터 마이그레이션을 대체한 커스텀 커널들이 있다.

2.3 HMP 모드

500px

Heterogeneous Multi Processing
이기종 간 다중 처리

big.LITTLE의 완전체

간단히 말해서 빅코어로 이루어진 클러스터와 리틀코어로 이루어진 클러스터를 클러스터에 무관하게 필요한 시점에서 각각 사용한다. IKS 모드와 같이 빅코어-리틀코어 한쌍으로 구성된 가상 코어를 설정하고 가상코어 내에서 부하량에 따라 일을 수동적으로 분담하는 것이 아니라, 스케줄러 자체에서 코어 각각을 통솔해 모든 코어 전체를 구동한다. 이 경우에도 전력 효율을 위해 리틀코어부터 작업이 할당되며, 리틀코어가 감당하기 어려운 작업은 빅코어에 할당하고 높은 멀티스레드 구동능력이 필요할 경우 빅코어와 리틀코어 전부를 동시에 구동시키는 것도 가능하다.
Linaro Connect 2012에서 ARM Cortex-A7 트리플+ARM Cortex-A15 듀얼 구성의 테스트 칩, 'TC2'를 시연하며 'HMP 모드가 IKS 모드 대비 약 1.4배의 전력을 소모한다'면서, 이는 'HMP 모드에서 ARM Cortex-A15가 필요없이 켜지기 때문'이라는 문제를 크게 다룬 적이 있었다. 다만 이 부분은 HMP가 적용된 커널이 본격적으로 도입되는 2014년도에는 해결된 문제[3]. IKS 모드는 구조상 빅코어와 리틀코어의 코어 수가 같아야 하는 문제가 있기에 AP 설계에 제약이 걸리지만, HMP 모드에서는 관련 문제가 없다는 이점이 있다. 이후, 삼성전자에서 기존 AP의 HMP 지원 선언을 한 이후에 유출된 삼성 엑시노스 5260의 CPU-Z 구동 스크린샷을 볼 때, 모바일 기기에서도 IKS 모드보다 HMP 모드를 전면으로 내세운 것으로 추측되고 있다.

또한 필요한 경우 8코어를 전부 동원하는 방식이 가능한 것도 IKS모드 대비 강점이다. 물론 이런 경우는 폰이 화룡마냥 불타오르긴 하겠지만 장기적으로 부하를 거는 경우가 아니라면 어느정도 활용할 부분이 있다는 점을 고려해야 한다. 어쨌든 지원을 해야 쓸지 말지 결정이라도 하는 거니까. 참고로 빅리틀 초기에 삼성의 AP 설계 결함으로 문제가 발생한 적이 있는데 이것은 삼성 엑시노스/big.LITTLE 솔루션 관련 논란 항목 참조.

3 현황

2014년 기준으로 HMP가 구현된 커널이 도입되어 안정화를 마친 후 그동안의 우려와 잡음을 불식시키고 모바일 업계에서 사실상의 표준으로 등극한 상황.

4 라이센스 취득사

4.1 ARMv7명령어셋 기반 아키텍쳐 조합

4.1.1 ARM Cortex-A15 + ARM Cortex-A7 조합

  • 르네사스
    • MP6530 : 듀얼+듀얼 조합의 쿼드코어
  • 미디어텍
    • MT8135 : 듀얼+듀얼 조합의 쿼드코어
  • 삼성전자
    • 엑시노스 5 Octa (5410 / 5420 / 5422 & 5800 / 5430) : 쿼드+쿼드 조합의 옥타코어
    • 엑시노스 5 Hexa (5260) : 듀얼+쿼드 조합의 헥사코어
  • 하이실리콘[4]
    • Kirin 920 / 925 : 쿼드+쿼드 조합의 옥타코어
  • Allwinner
    • A80 : 쿼드+쿼드 조합의 옥타코어
  • LG전자
    • Nuclun 7111 : 쿼드+쿼드 조합의 옥타코어

4.1.2 ARM Cortex-A17 + ARM Cortex-A7 조합

  • 미디어텍
    • MT6595 : 쿼드+쿼드 조합의 옥타코어

4.2 ARMv8 명령어셋 기반 아키텍쳐 조합

4.2.1 ARM Cortex-A57 + ARM Cortex-A53 조합

4.2.2 ARM Cortex-A72 + ARM Cortex-A53 조합

  • 미디어텍
    • MT8173 : 듀얼+듀얼 조합의 쿼드코어
    • Helio X20 MT6797 : 듀얼+쿼드+쿼드 조합의 데카코어. 자세한 내용은 항목 참조.
  • 퀄컴
  • 하이실리콘
    • kirin 940 / 950 : 쿼드+쿼드 조합의 옥타코어

4.2.3 ARM Cortex-A53 + ARM Cortex-A53 조합

의외로 생각될 수 있는 조합 중에 동일한 로직의 CPU코어를 사용하는 A53+A53의 조합이 있다. 보통은 빅 쪽을 담당하는 A53의 최고 클럭속도가 리틀쪽에 비해 더 빠르기 때문에 이러한 조합도 충분히 타당한 것.
이것이 가능한 이유는 단일 셀을 어떻게 구성하느냐에 따라 성능과 셀 면적간의 트레이드-오프 관계가 형성되기 때문이다. 즉 같은 로직이라고 해도 고밀도 셀을 활용하여 설계할 경우 최대클럭이 제한되는 대신 코어가 차지하는 면적이 줄어들면서 원가 측면에서 유리해지고, 반면 방열면적 확보에는 불리한 설계가 되지만 저클럭 영역에서는 더 좋은 대기전류 특성을 보이게 된다. 반대로 고성능 셀을 사용할 경우 셀 내 트랜지스터 성능의 향상 덕분에 클럭속도를 끌어올릴 수 있는 대신 구동전력과 대기전력 측면에서 불리할 수 밖에 없고 면적 등과 관련된 원가에서도 불리해진다.

4.2.4 기타

  1. 위 사진은 2012년 12월에 삼성전자프레젠테이션에서 사용된 명칭이다.
  2. 예를 들어 작업의 부담이 덜 할 경우 리틀코어를 4개로 구동하고, 리소스가 조금 더 필요할 경우엔 리틀코어 2개의 작업을 빅코어로 옮겨 리틀코어 1개+빅코어 3개 또는 리틀코어 2개+빅코어 2개로 구성을 자유자재로 변경한다.
  3. 사실 HMP를 제대로 구현했다면 빅코어가 필요없이 켜지는 문제 자체가 일어날 수 없다.
  4. 화웨이의 자회사이다.