ARM의 저전력 기술 빅리틀이란 무엇인가?ARM의 저전력 기술 빅리틀이란 무엇인가?

Posted at 2013. 5. 3. 10:00 | Posted in Moblie/Etc

커플로 등장하는 ARM의 CPU 마이크로 아키텍처

 ARM은 차세대 64-bit 마이크로 아키텍처 "Cortex-A57 (Atlas)"와 "Cortex-A53 (Apollo) '을 발표했다. 왜 ARM은 2 개의 다른 마이크로 아키텍처의 CPU 코어를 동시에 발표했는지. 그것은 ARM이 다른 특성의 코어를 결합하여 시스템 전력 소비를 낮추려고하고 있기 때문이다.


 Cortex-A57는 퍼포먼스를 중시하는 대형 코어, Cortex-A53은 저전력의 소형 코어. ARM은이 두 가지 CPU 코어로드에 따라 전환하여 전력을 억제하려하고있다. 

ARM은이 아키텍처에 "big.LITTLE Processing"(빅리틀 프로세싱)이라는 이름을 붙혔다. 부하가 높은 작업을 수행 할 때 큰 big 코어로 전환 신속하게 처리를 끝낸다. 

부하가 낮은 작업이되면 소형 LITTLE 코어에 다시 전력을 억제한다.


▲빅리틀의 간단한 개요


▲Cortex-A57 특징

  ▲Cortex-A53 특징


 ARM은 현재 big.LITTLE을 자사의 저전력 기술의 기둥으로 내세우고있다. 따라서 향후에도 동사의 플래그쉽 CPU 코어는 대형 코어와 소형 코어 쌍으로 등장하게 될 것이다. 사실, Cortex-A57와 Cortex-A53는 big.LITTLE의 2세대이다. 1 세대에서는 big은 Cortex-A15, LITTLE는 Cortex-A7된다. big.LITTLE의 1 세대는 이미 모바일 용 SoC (System on a Chip)으로 구현 한 제품이 개발되고, 소프트웨어가 준비 될 때 2013 년 상반기에서 드디어 big.LITTLE이 현실로 제공되기 시작 . big.LITTLE은 시작 직전 단계에 도달 해있다.







▲성능과 에너지 효율의 양립



 ARM이 big.LITTLE 아키텍처를 도입하는 이유는 모바일 CPU에 요구되는 성능 범위가 넓어졌기 떄문이다. 사용자는보다 쾌적한 응답 및 고급 응용 프로그램을 요구한다. 반면에, 배터리 구동 시간이 줄어드는 것은 불편하여. 따라서 스마트폰과 태블릿 등의 SoC는 고성능과 초 저전력 모두로 성능 범위를 늘릴 필요에 사로 잡혀있다.


 단일 CPU 아키텍처는 고성능과 초 저전력 모두의 요구를 충족 어렵다. 그러나 고성능 CPU와 초 저전력 CPU의 2종류를 싣고 작업에서 전환하면 모두의 요구를 충족시킬 수있게된다. big.LITTLE은 이러한 구상에서 낳은 프로젝트이다.





1세대 big.LITTLE는 Cortex-A15와 Cortex-A7




 1 세대 big.LITTLE에서는 big의 Cortex-A15와 LITTLE의 Cortex-A7 두 종류의 CPU 코어를 싣는다. 명령어 세트는 완벽하게 호환 구현된 마이크로 아키텍처가 다른 2 종 코어 의한 이기종 (Heterogeneous : 이종 혼합)이다. 기존의 말투로 고치면 비대칭 멀티코어 구성이된다. 덧붙여서, ARM은 이기종 컴퓨팅에 적극적으로 임하고 있지만, 그것은 big와 LITTLE 같은 아키텍처 코어 2 종과 GPU 형의 처리량 코어, 그리고 특정 용도 가속기의 4타입의 코어의 조합을 상정 하고있다. 그리고 CPU와 GPU 사이는 LLVM (Low Level Virtual Machine)에서 추상화하는 방식을 취하려고하고있다.


 ARM은 big.LITTLE의 이점을 입증하기 위해 내부 테스트 칩을 개발하고 big.LITTLE의 실증 실험을 실시해왔다. 이것은 Cortex-A15가 2코어, Cortex-A7이 3코어 구성에서 성능과 전력의 실증 시험 등을 실시했다. 지난해 단계에서 구상 이었지만 현재는 실증도 끝나고 제품화를 목전에두고있다.


 


▲ big.LITTLE 하드웨어는 2+2구조로 이미 입증이 되었다.

 

 ARM의 구상은 big.LITTLE에 따른 모바일 컴퓨팅 장치의 SoC는 Cortex-A15/57을 2 ~ 4 코어, Cortex-A7/53을 2 ~ 4 코어 구성된다. 즉 2+2 또는 4+4 구조로

총 최대 8코어 스마트폰이나 태블릿에 탑재하게된다. 사실, 삼성전자의 SoC '엑시노스5410'의 제품은 4개의 Cortex-A15와 4개의 Cortex-A7을 탑재하여 옥타코어 구성이된다.


 big.LITTLE의 첫 단계는 기본적으로 big 코어와 LITTLE 코어는 동수 구성이 바람직하다. 동수의 CPU 코어 사이에서만 빠르고 신속한 작업을 전환 할 수 없기 때문이다. 또한 하드웨어적으로는 인터럽트 컨트롤러를 공유하여 인터럽트를 전환 할 수 있도록 할 필요가있다. 또한 big와 LITTLE 모두 CPU 클러스터간에 일관된 버스로 연결하는 것으로, CPU 코어의 아키텍처를 캐시공유를 통해 전달할 수 있도록한다.






▲1세대 big.LITTLE 시스템 아키텍처 



 후자의 구조 때문에, CPU 코어 간의 작업 전환시에 데이터를 외부 메모리로 내보낼 필요가 없다. 따라서 스위칭에 걸리는 시간은 최소화된다. 


 CPU 코어간의 작업 스위치에 의해 처리가 멈추는 블랙아웃 기간은 해제 CPU 코어 아키텍처를 데이터를 캐시에 옮겨 한 CPU 코어로 복원하는 데 걸리는 시간만이다. 스테이트의 저장에 걸리는 시간은 CPU 코어의 주파수에 따라서 다르지만 600MHz로 전환하면 8.3us. 스테이트 복원은 동일한 주파수라면 같은 시간. 전환 주파수를 낮게하면할수록 보존과 복원에 걸리는 시간은 길어진다. ARM의 설명에 따르면, 최소는 블랙 아웃은 20us 정도까지 억제한다.



big.LITTLE의 실장:내부 접속 IP

big.LITTLE의 스위칭

▲big.LITTLE의 실장:GIC

 


 덧붙여서, ARM의 big.LITTLE 구성에서는 L2까지 캐시클러스터에 포함하고 있으며, big와 LITTLE간에 공유되지 않는다. 이것은 LITTLE 코어의 캐시를 작게 저전력으로 할 수 있도록했기 때문이다. 따라서 작업을 전환하는 경우에는 캐시 플러시 및 워밍업 지연도 발생한다. 그래서 big.LITTLE은 그 시간을 은폐하는 구조도 통합했다.


 해제 된 CPU 코어의 캐시를 플러시하여 DRAM에 다시 사이가 활성화 된 CPU 코어가 스눕 수 있도록한다. 이러한 노력으로 작업 전환 시간을 단축하고있다.


클러스터 기반에서 CPU 코어 기반으로 발전

 작년 가을에 big.LITTLE을 ARM이 발표 한 때는 big와 LITTLE 스위치는 클러스터 단위로 밖에 할 수 없었다. 예를 들어, 4CPU 코어 Cortex-A15 클러스터와 4CPU 코어 Cortex-A7 클러스터에서 스위치한다. 클러스터 마이그레이션 모델은 부하가 높은 작업에 이끌려 모든 코어가 고성능 코어로 전환 해 버리기 때문에 효율이 나빴다.


 그래서 이번에는 CPU 코어 단위로 전환하는 CPU 이주 모델이 마련됐다. 사실,이 CPU 이주 모델 big.LITTLE를 시작한다. 

첫 번째 개념의 클러스터 이주 모델은 2011 년에 프로토 타입 소프트웨어가 제공되었지만 현재는 정식 모델로 제공되지 않습니다.


 CPU 이주 모델은 big 클러스터의 CPU 코어는 LITTLE 클러스터의 CPU 코어와 1대 1로 페어입니다 스위치한다. 따라서 부하가 높은 작업을 수행하는 경우 필요한 수의 CPU 코어 만 big 코어 스위치하고 그렇지 코어 LITTLE 코어 채 작동시킬 수있다. 보다 효율적이고 전력을 효과적으로 억제 할 수있다.

big.LITTLE의 이용 모델 







 

 클러스터 이주도 CPU 이주도 모두 소프트웨어 측면의 변화가 작고 끝난다. 

응용 프로그램과 시스템 아키텍처는 변경이 전혀 필요 없다. 작업 이주의 트리거는 가상화를 사용하는 경우 Hypervisor가 발행 한 OS 측에서 추상화된다.


 작업이 전환되는 포인트 자체는 CPU의 전압과 동작 주파수를 전환 "DVFS (Dynamic Voltage and Frequency Scaling) '단계에 통합된다. big 코어가 일정한 주파수로 내려 가면 LITTLE 코어로 전환 트리거가 발행된다. LITTLE에서 big의 경우는 반대로 특정 주파수에 올라가면 바뀐다. OS에 이미있는 DVFS 방식을 사용하기 때문에 구현이 용이하다.


 또한 ARM은 완전히 이기종 동작하는 멀티 프로세싱 모델 "big.LITTLE MP '도 제공한다. 이 경우 OS가 작업을 예약하여 부하가 높은 작업을 big 코어에 부하가 낮은 작업을 LITTLE 코어에 할당 필요가있다. 이쪽도 하드웨어 측면을 변경할 필요없이 소프트웨어 측만의 대응이지만, OS의 지원이 필요하기 때문에 시간이 걸린다. 

현재 개발중인 표명되고있다.



big.LITTLE 소프트웨어 아키텍처 







 

big.LITTLE 시스템이 마음에 드는 삼성

 10월에 미국에서 개최된 ARM 기술 컨퍼런스 "ARM Techcon 2012 '에서는 Samsung이 big.LITTLE 관련 세션을 진행했다. Samsung에 따르면, 이미 Cortex-A15 기반의 Exynos에 Cortex-A7을 통합한 big.LITTLE의 검증을 행하고 있다고한다. 실제 칩 기반이기 때문에 Samsung의 발표는 구체적이다.


 Samsung의 검증에 쓰인 테스트시스템은 big의 Cortex-A15는 800MHz에서 1.7GHz로 동작, LITTLE의 Cortex-A7은 200MHz에서 1GHz로 작동했으며. 전압은 0.9에서 1.2V로 전환한다. Cortex-A15에서 Cortex-A7로 전환하려면 아래의 임계 값은 Cortex-A15에서 800MHz로 설정했다고한다. 반대로 Cortex-A7에서 Cortex-A15의 임계 값은 Cortex-A7에서 1GHz이다.


 



▲엑시노스5에 빅리틀을 적용한 결과


 그 시스템의 검증결과 성능은 Cortex-A15 만의 시스템과 거의 동일한 전력은 반대로 최대 68% 나 줄일 수 있었다고한다. 전력 절감 효과가 극적인 것은 실제로는 작업의 대부분이 LITTLE 코어에서 처리 할 수​​있는 정도의 부하로 차지하고 있기 때문이다. 아래의 차트는 Cortex-A9의 부하를 나타낸 것이지만, big 코어가 필요한 빨간 부분은 극히 제한되어 있는지 알 수있다.





 big.LITTLE 아키텍처는 발표된 2011년 가을 단계에서는 과연 라이센스 SoC 업체들이 실제로 적용하는지는 미지수였다. 

ARM은 "OEM의 반응은 좋다"고 설명했지만, 실제 제품 계획은 증명되지 않았다. 그러나 현재는 Samsung이 적극적으로 대응하고, 전망이 좋다.



x86로 big.LITTLE를 목표로 한 Montalvo

 이대로 ARM의 의도대로 진행된다면, ARM 기반 모바일 기기에서는 big.LITTLE에서 크고 작은 코어를 갖추는 것이 당연하게 갈 수있다. 

ARM은 Cortex-A7/53의 핵심은 매우 작기 때문에 구현이 진행될 것으로보고있다.


 big.LITTLE은 ARM 만의 특권인가. 이 방법은 PC의 세계에 가져올 수는없는 것일까. 물론 PC에서도 할 수있다.


 원래, big.LITTLE뿐만 아니라 아이디어는 이전부터 여러번 등장했다. 그리고 x86 호환 CPU의 세계에서, big.LITTLE 인 아이디어를 실현하려는 움직임이 있었다. 

가장 두드러진 예는 실리콘 밸리의 CPU 벤처 Montalvo Systems이었다.


Montalvo는, NexGen의 Vinod Dham씨나 원Transmeta CEO의 Matt Perry씨, Microprocessor Report의 어널리스트들 등 다채로운 멤버가 모인 기업이었다. 

그리고, 동사는 x86 호환의 대형 CPU 코어와 소형 CPU 코어를 조합한, 비대칭의 멀티 코어 구성의 CPU를 개발하려고 하고 있었다. 부하의 높은 어플리는 대형 코어로, 부하의 낮은 어플리는 소형 코어로 실행하는 구조다.


 Montalvo의 원래 계획 자세한 내용은 모르겠지만, 기본 아이디어는 big.LITTLE과 비슷한 것으로 보인다. 당시 Montalvo의 관계자는 2009 년경에는 제품 설명을 미디어에 행할 것이라고 말하고 있었다. 그러나 Montalvo는 Sun Microsystems에 인수되면서 Sun 자체도 Oracle에 인수되어 그 어수선한 가운데 Montalvo의 x86도 사라져 버렸다. 덧붙여서, Montalvo의 개발 팀은 산산조각했지만, 일부는 NVIDIA에 갔다고 말해지고있다. ARM이 big.LITTLE을 발표하기 전에 NVIDIA가 Tegra 3에서 Cortex-A9의 성능 최적화 쿼드코어와 전력 최적화 싱글 코어로 전환하는 아키텍처를 도입하고있다.


 Montalvo은 사라졌지만, 회사의 시도는 x86에서도 같은 생각이 가능하다는 것을 보여주고있다. 그리고 Intel도 AMD도 고성능의 x86 CPU 코어와 저전력 x86 CPU 코어의 2 종류가있다. Intel라면 22nm 세대 "Haswell (하즈웰) '와 22nm의 Atom 코어"Silvermont (실버몬트) "의 조합이있을 것 같다. AMD라면 28nm에서 Bulldozer 계의 "Steamroller (스팀롤러)"고 Bobcat 계의 "Jaguar (재규어) '에서 비슷한 접근 방식은 수있을 것이다.


 또한 Intel은 항상 연구도하고있다. 예를 들어, 컴퓨터 아키텍처 학회 "International Symposium on Computer Architecture (ISCA '12)"에서 "Scheduling Heterogeneous Multi-Cores through Performance Impact Estimation (PIE)'라는 제목의 공동 연구 논문에서 big.LITTLE 형 CPU 구성 에서의 성능 예측 연구를하고있다. Intel은 이전부터 HPC (High Performance Computing) 분야에서 동일한 명령어 세트 아키텍처의 big와 LITTLE 조합의 연구를하고 있으며,이 접근법의 가능성에 대해서도 경계하고있다.



Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

free counters