ARM도 예측 불가능한 ARMv8의 보급 속도

 

1.jpg

 

Noel Hurley(GM CPU Product Group, ARM)

 

ARM은 Cortex-A72에서 2세대 ARMv8(ARM Version 8) 명령 세트 아키텍처(ISA:Instruction Set Architecture) CPU에 뛰어들었습니다. 1세대 Cortex-A57/53은 이미 등장하기 시작했지만 바로 그 뒤에 Cortex-A72이 이어집니다. ARMv8의 가장 큰 특징은 64비트 스테이트인 AArch64의 추가로서 64비트의 명령어 세트가 새로 바뀌는 것입니다. 말하자면 ARM 명령 세트의 리셋이 ARMv8이며 명령어 집합으로 볼 때 ARM 역사상 가장 큰 변경점인 것입니다.

 

ARMv8은 애플이 아이폰 5s를 통해 모바일 최초로 도달했습니다. 또 ARM 서버도 ARMv8로 올라왔습니다. 그러나 iOS 이외의 OS를 쓰는 모바일 기기는 ARMv8로 보급이 이제 막 시작됐다고 할 수 있습니다. 앞으로 모바일 SoC(System on a Chip)ARM CPU 코어가 ARMv8로 급속히 이동할 것인지는 ARM 자신도 아직 확인이 안 되는 상황입니다.

 

"64비트는 (모바일에서) 프라임 세그먼트에 잠시 머무르며 32비트가 오랬동안 쓰일지, 아니면 점점 아래 단계로 내려와 전체 시장에 퍼질 것인지 시장의 움직임을 예측하기가 어렵습니다. 안드로이드 L에서 어떻게 되는지를 주시하며 기다리지 않으면 안 됩니다. 다만 ARMv8 아키텍처는 32비트의 레거시 애플리케이션도 같이 작동합니다. 시장에서 64비트와 32비트가 공존하는 건 가능합니다."라고 ARM의 Noel Hurley(GM CPU Product Group, ARM)는 말합니다.

 

2.jpg

 

ARMv8 명령 세트 아키텍처

 

3.jpg

 

ARM이 발표한 Cortex-A72

 

중급형 이하 모바일 시장이 ARMv8에 어떻게 대응할 것인지는 ARM 자신도 아직 파악하지 못한 듯 합니다. 제조 비용에 민감한 중급형 이하 시장에서 일부 업체는 28nm 공정에 머무를 것이며 제조 비용을 높일 ARMv8로의 이행은 소극적인 편입니다. 또 보급형 모바일과 이어질 하이엔드 웨어러블 시장의 동향에도 영향을 받게 됩니다. 

 

"ARMv8에 있어서 웨어러블 시장이 어떻게 되는지도 중요합니다. 웨어러블도 모바일과 같은 OS 커널을 사용하고 소프트웨어 관리를 쉽게 하기 위해 64비트로 이행할 것인지, 아니면 웨어러블은 장기적으로 32비트를 유지할 것인지. 이것도 주시하며 기다려야 하는 움직임입니다"(Hurley).

 

여기서 나오는 의문은 ARMv8 프로세서의 코드 효율이나 소비 전력에 있습니다. 32비트 코드를 어드레싱 외에 다른 건 그대로 두고 64비트로 전환하면 코드 효율이 떨어집니다. 그러나 실제로는 ARMv8 64비트 모드에서 새로운 기능이 더해져 일률적으로 변환할 수 없다고 ARM의 Hurley는 지적합니다.

 

"ARMv8에 의한 컴파일러 기술의 발전도 고려해야 합니다. ARMv8 64비트에서는 기존보다 훨씬 평면적인 레지스터에서 더 많은 레지스터를 컴파일러의 표적으로 삼아 컴파일러 효율을 높일 수 있습니다. 그 외에도 가상화와 암호화를 비롯한 다양한 기능이 개선됩니다".

 

ARM은 원래 32비트 명령 세트에서 레지스터는 16개로, 프로그램 카운터와 스택 포인터는 범용 레지스터를 사용했습니다. 그에 비해 ARMv8 64비트에서 명령 형식 속의 레지스터 스페이스는 5비트 길이이며 범용 레지스터는 31개+0레지스터 구성이 됐습니다. 레지스터 수가 단순히 배로 늘었을 뿐만 아니라 보다 효과적으로 쓸 수 있게 됐습니다. 그래서 ARMv8에서는 컴파일러의 효율이 향상됩니다.

 

4.jpg

 

ARMv8 64비트 모드 레지스터

 

또 레지스터의 증가와 컴파일러를 생성하는 코드 효율의 향상에 따라 전력 효율도 높아집니다. 애플리케이션이 복잡하게 늘어나면서 레지스터 내용을 캐시로 보관할 때 효율을 높일 수 있기 때문입니다. 결과적으로 캐시 액세스와 전력 소비를 줄일 수 있다고 ARM은 설명합니다.

 

 

센서 노드를 위해 Cortex-M을 강화

 

웨어러블이나 IoT(The Internet of Things)에서는 Cortex-A의 하위인 마이크로 컨트롤러 클래스의 Cortex-M시리즈가 중요합니다. 웨어러블 시장은 고성능 제품의 Cortex-A 계열과 저전력 제품의 Cortex-M 계열로 나뉘어 있습니다. ARM은 2014년에 웨어러블 등을 의식한 Cortex-M 시리즈의 최고급인 Cortex-M7을 발표했습니다. ARM은 Cortex-M4에서 MCU에 DSP 기능을 더했습니다. Cortex-M7는 그 발전형으로 DSP 성능을 대폭 강화했습니다.

 

"부동 소수점 연산을 강화한 이유는 센서 노드와 기능 때문입니다. 예를 들어 오디오 프로세싱 같은 게 있겠지요. 마이크가 항상 명령을 대기하는 상태가 필요한데요. 명령을 감지하려면 막대한 양의 부동 소수점 연산이 필요합니다"(ARM의 Hurley).

 

웨어러블과 일부 IoT에서는 각종 센서에서 데이터를 받아 사전 처리할 필요가 있습니다. Hurley가 지적한 음성 명령어 인식이나 화상 인식이 바로 그런 경우입니다. 이러한 처리를 위해서 기존에는 MCU와 DSP의 조합을 사용하는 것이 많았습니다. Cortex-M7는 그것을 하나의 코어에서 처리할 수 있도록 했습니다. 웨어러블이나 IoT의 인기가 높아지면서 거기에 맞춘 IP 제품인 것입니다.

 

5.jpg

 

6.jpg

 

7.jpg

 

이러한 Cortex-M의 강화 노선은 로우엔드 Cortex-A와 어떻게 구분하는지 의문이 들게 됩니다. 현재 두 계열의 아키텍처를 구분하는 건 매우 간단합니다. Cortex-A는 MMU(Memory Management Unit)을 갖추고 Cortex-M은 MMU가 없습니다. 메모리 아키텍처의 차이가 두 계열의 결정적인 차이입니다.

 

"Cortex-M은 MMU과 캐시가 없습니다. 그것이 Cortex-M을 매우 반응성이 좋은 프로세서로 만들었습니다. 그러나 일정한 성능까지 도달하려면 캐시가 필요합니다. 그 결과 그 CPU는 스몰 코어 수준의 응답성이 사라지게 됩니다. 성능과 응답성의 균형을 고려할 필요가 있습니다. 그것이 MMU을 가진 Cortex-A의 구분입니다"라고 ARM의 Hurley는 말합니다.

 

8.jpg

 

 

새로운 비휘발성 메모리 때문에 무너진 MMU와 메모리의 경계

 

기본 라인은 Cortex-A는 MMU에서 외장 DRAM 등을 메인 메모리로 사용하고, Cortex-M은 MMU 없이 임베디드 메모리을 워킹 메모리로 사용하는 형태입니다. MMU의 유무로 인해 메모리에서 OS도 나뉩니다. Cortex-A는 안드로이드 등의 MMU와 대용량 메모리를 필요로 하는 복합 OS를 실행할 수 있습니다. 그에 비해 MMU도 없고 메모리도 한정된 Cortex-M은 임베디드/리얼타임 OS만 실행할 수 있습니다. 두 CPU 패밀리의 차이는 OS와 소프트웨어 기반의 차이로 연결돼 있습니다.

 

"MMU에 없는 빠른 응답성과 복잡한 OS를 실행할 수 있다는 건 서로 상반된 요소입니다. 이러한 트레이드 오프가 있기에 현재(다기능 웨어러블)은 (MMU가 있는) 큰 코어와 (MMU가 없는) 작은 코어 조합이 됩니다. 계속 동작할 필요가 있는 센서 노드 유형의 애플리케이션에서는 작은 코어. 그러나 모은 데이터를 보다 잘 처리하려면 상당한 수준의 코어가 필요합니다. 즉 이 2개의 코어를 하나로 코어로 합쳐서 장점이 있느냐는 의문이 들게 되는 것이지요"(Hurley).

 

9.jpg

 

ARM이 상정하는 웨어러블 SoC. Cortex-A 계열과 Cortex-M 계열이 공존

 

그러나 이 구분은 현재의 임베디드 SRAM과 임베디드 플래시의 모델을 전제로 한 것입니다. 예를 들어 앞으로 새로운 비휘발성 메모리가 대용량이면서 빠른 임베디드 메모리를 가능하게 한다면, 앞에서 전제하는 메모리 용량의 문제가 달라집니다. 그 경우 Cortex-M 계열에 MMU을 넣을 가능성은 없는 것인까요.

 

"결코 아니라고 말하고 싶지 않습니다. 그러나 당장은 MMU이 없는 것이 균형을 맞춘 것이라 생각합니다. 새로운 비휘발성 메모리는 분명 유망 기술이며 매우 흥미롭습니다. 그러나 우리는 라이센스 비즈니스를 하고 있습니다. 그래서 속도가 느린 임베디드 플래시에서도 충분히 작동하는 걸 보증할 필요가 있습니다. 고객이 어떤 것을 원하는지를 살펴보고 갈 필요가 있습니다"라고 Hurley는 사업적인 이유를 설명합니다.

 

ARM은 CPU 설계 센터를 전 세계에 분산시키고 있습니다. 영국 케임브리지가 Cortex-R이나 Cortex-A5/7/53을 설계, 프랑스 소피아 안티포리스가 Cortex-A9/12/17을 설계, 미국 오스틴이 Cortex-A8/15/57/72를 설계했습니다. 그리고 새로운 대만 CPU 설계 센터가 앞으로 Cortex-M 패밀리를 설계합니다. ARM이 Cortex-M의 설계를 대만에 둔 것은 Cortex-M에서 파운드리와 임베디드 계열의 고객과 밀접한 관계가 필요하다고 판단했기 때문이라 합니다.

 

10.jpg

 

ARM의 개발 거점

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.