[기술] 모바일 CPU Architecture: Arm big.LITTLE
최근 하이엔드 스마트폰에서 대부분 채택 되고 있는 big.LITTLE CPU architecture에 대해서 얘기하려고 합니다. 모바일 관련 업무를 하시는 분에세 도움이 되고, 무관한 분이라도 상식적으로 알아두면 좋은 내용 위주로 정리하였습니다.
모바일의 요구사항: High Performance & Low Power
스마트폰의 성능은 2007년 애플의 아이폰 출시 이후로 2017년의 비트코인 상승세 만큼이나 매년 급격한 발전을 거듭하였습니다. 그리고 배터리를 사용하기에 성능 뿐만 아니라 전력 소모도 중요합니다. 이를 위해서 반도체 자체 특성 뿐만 아니아 칩 내부의 아키텍쳐도 같이 발전하였습니다. 오늘 설명 드릴 내용은 반도체 칩 중에서 가장 중요한 역할을 수행하는 CPU의 새로운 아키텍처에 대한 내용입니다.
체굴기를 hash rate은 높으면서 전기는 조금 먹게 만들면 좋겠지만, 이것은 상당한 기술과 비용이 요구 됩니다. 메인 칩을 최신 제조 공정에서 생산하거나 칩 내부 로직을 드라마틱하게 설계하면 개선은 가능하겠지만, 결국 성능은 전기요금과 비례할 수밖에 없습니다.
체굴기가 항상 최대 성능으로 동작하는데 비해 스마트폰은 요구 되는 성능이 가변적입니다. 웹페이지의 정지 화면을 보거나 동영상 정도는 낮은 성능으로 가능하고, 화려한 게임이나 웹페이지를 초기에 파싱할 경우에는 높은 성능이 필요합니다. 고성능 CPU는 CPU 아키텍처 관점에서 보면 여러 기술들을 사용하여 많게는 1 클럭에 5~6개의 명령어를 동시에 수행하며, 내부가 매우 복잡하기에 전력소모도 많을 수밖에 없습니다. 그리고 저성능의 CPU는 상대적으로 성능은 낮지만 전력 소모도 낮아서 성능/전력 효율이 고성능 CPU 보다 x2배 이상 우수합니다.
고성과 저성능 CPU를 조합한 것이 바로 Arm의 big.LITLE 아키텍처입니다. big.LITTLE은 Arm의 브랜드이며, 고성능 CPU를 소문자 big, 저성능 CPU를 대문자 LITTLE로 표기합니다. (역시 서구의 작명 실력, 마케팅 능력은 대단합니다.)
Arm big.LITTLE 아키텍처
Arm의 64bit CPU인 Cortex-A57/A53 기반의 bit.LITTLE 아키텍처 블록 다이어그램은 아래와 같습니다.
source: https://developer.arm.com/technologies/big-little
(Arm은 CPU 뿐만 아니라 GPU 등을 같이 패키지로 팔려고해서 CPU 이외도 나와 있음)
- 위 예는 big CPU cluster에 Cortex-A57 2개, LITTLE CPU cluster에 Cortex-A53 4개의 2 x 4 core 구조임
- 인터럽트를 CPU core에 분배해주는 GIC (Generic Interrupt Controller)
- L1 cache는 CPU core 내에, L2 cache는 cluster 별 있음
- 다수 CPU core가 동일한 메모리를 공유하므로 메모리 sync가 필수적이고 매우 중요함. 이 기능을 CCI (cache coherent interconnect)가 수행
big.LITTLE에 필요한 HW는 big/LITTLE CPU core, GIC와 CCI입니다. 그리고 CPU load에 맞춰 job을 분배하고 사용하지 않는 CPU는 아예 전원을 OFF 하는 것이 전력소모를 줄일 수 있습니다. 이러한 제어를 수행하는 SW가 필요하며 kernel의 scheduler가 이를 담당합니다. 즉, big.LITTLE를 위해서는 HW 뿐만 아니라 이를 효율적으로 운용하는 SW도 중요합니다.
etc.
Arm의 big.LITTLE 방식은 big과 LITTLE CPU 각각이 별개입니다. 이것을 하나의 CPU core에서 모두 지원하게 하는 configurable micro-architecture 방식도 물론 가능은 하지만 현재 기술로는 효율적이지 못 합니다. 향후 기술이 더 발전하면 가능할 수도 있습니다. 이러한 내용을 포함한 2004년 Intel에 작성한 big.LITTLE의 원조 쯤 되는 논문입니다. https://pdfs.semanticscholar.org/905f/94e616877848b032d51ee81848e4cb2357bc.pdf
big.LITTLE 기술이 처음 적용 된 스마트폰은 2013년 삼성 Galaxy S4 (Exynos 5 Octa, 5410) 입니다. 이 때는 SW kernel scheduler가 아직 완성 되지 않아서 4 x 4 8core를 모두 사용 못하고 big 4개 or LITTLE 4개만 사용 가능한 cluster migration 방식이었습니다. 이후에 모든 core를 선택적으로 사용 가능한 heterogeneous multi-processing 방식이 일반화 되었습니다. (https://en.wikipedia.org/wiki/ARM_big.LITTLE)
CPU의 성능과 전력소모는 제조 공정과 CPU 내부 아키텍처에 달려 있으며, 이를 변경하기 위해서는 많은 리소스가 필요합니다. 인텔은 틱-톡 방식 (tick–tock model)으로 한 해는 제조공정을 향상하고 (틱), 다음 해에는 CPU 아키텍처를 개선하는 (톡) 방식을 취하고 있습니다. 최근에는 제조공정의 한계로 틱-톡톡이 되가고 있습니다. (https://en.wikipedia.org/wiki/Tick%E2%80%93tock_model)
Arm은 반도체 칩을 직접 제조하지 않고 칩에 필요한 IP (intellectual property)를 공급하는 회사입니다. 1990년 창립 후 망할뻔하다가 2000년대 모바일 시장이 열리면서 회사 가치가 거의 2017년 이더리움 처럼 성장한 회사입니다. 지금까지 Arm CPU IP는 지구 인구 76억보다 7배나 많은 500억개나 적용 되었습니다 (2016년 기준). 2000년 초만 해도 MIPS, Power PC를 포함한 반도체 회사마다 제각각 CPU IP를 사용하였는데, 이제는 서버나 PC에만 Intel x86이 사용 되고 이외는 Arm이 대세입니다. PC나 서버도 Arm으로 변경하려는 시도들은 이미 진행 중입니다.
2016년에 일본 소프트뱅크가 Arm (이 때는 ARM)을 £24.3B ($32.1B, 한화 약 35조원)에 인수했습니다. 기존 주주들한테 자그마치 43% 프리미엄으로 아도쳐서 사버리고 상장폐지해서 방해 받지 않고 회사 운영할수 있게 되었습니다. 소프트뱅크 손사장이 이걸 사서 좀 남기고 중국에 팔아버리나 했는데, 역시 손사장 스케일은 그 이상인거 같습니다. 앞으로 어떤 그림을 그리고 실현 시킬지가 기대 됩니다.
Arm 본사가 있는 영국 캠브리지는 도심에 캠브리지 대학교 산하 여러 대학들이 있습니다. 도심을 가로지르는 강에서 하는 뱃놀이 (punting)가 인상적이었습니다.
짱짱맨 호출에 출동했습니다!!
짱짱맨 짱~