[특집-MCU] 보안 기능 추가한 ARMv8-M 아키텍처로 Next MCU 준비

지속 발전하는 MCU의 무한도전 ②
  • 2016-09-02
  • 김영학 기자, yhk@elec4.co.kr

약 208억 개에 달하는 사물이 연결되는 세상이 되기까지 남은 시간 3년 4개월. 2020년이면 세상은 여전히 사람중심이긴 하겠으나 기기들이 연결되고 커뮤니케이션하는 본격적인 IoT 세상이 열린다. ARM은 저전력 설계와 라이선스 비즈니스, 에코시스템으로 이러한 IoT나 가전, 자동차 등에 반드시 필요한 마이크로컨트롤러(Microcontroller), 즉 MCU(Micro Controller Unit) 시장을 주도하고 있다. 김태용 ARM Senior FAE(부장)는 “곧 도래할 IoT 세상을 대비해 ARM은 보안 기능을 추가한 새로운 ARMv8-M을 발표, 개발 중”이라고 말했다. 


임베디드 기기 대부분에는 MCU가 내장되어 있다. 그리고 이 MCU 중 대부분은 ARM 코어 기반으로 설계되어 있다. 1990년에 설립된 이후 끊임없이 저전력 반도체 개발에 집중했으며, 다른 반도체 회사와는 달리 IP 라이선스 비즈니스로 시장에서 승부를 걸어온 ARM이 IoT 시대를 맞아 그 진가를 발휘하고 있다. 

RM의 비즈니스 모델은 반도체를 설계해 반도체 제조사들에게 그 설계 자산을 라이선스하는 형태다. 과거 반도체 제조사들은 자체적으로 아키텍처를 설계하고 이를 기반으로 반도체를 생산해 왔다. 하지만 차세대 제품을 개발할때 제조사 입장에서는 소프트웨어와 제품을 모두 준비해야 했다. 이에 수반되는 것은 바로 비용이다.

ARM은 전 세계 반도체 회사들에게 자체 개발 대비 저렴한 비용으로 전력효율성 개선이 가능한 아키텍처를 판매한다면 시장 발전 측면에서도 큰 도움이 될 것이라고 판단했고, 이 전략은 주효했다. 경쟁사들이 전력 소비량을 늘리며 클록 속도를 높이는 가운데서도 저전력을 추구했기 때문에 ARM은 스마트폰의 폭발적인 성장, IoT의 등장에 힘입어 성장 발판을 마련할 수 있었다.

임베디드 기기들은 외부 전원이나 자체 배터리로부터 전력을 공급받는다.그리고 빠른 기술 발전 속도로 인해 제품 라인업 역시 그 속도를 따라갈 수 밖에 없다. 이때 발생하는 문제는 전력소모와 비용 그리고 호환성이다. 최근 MCU를 비롯해 다양한 반도체 제조사들이 저전력과 저비용, 호환성이라는 이슈에 포커스를 맞추고 있는 이유도 이 때문이다.

그리고 또 하나의 이슈가 등장하고 있는데, 바로 보안(Security)이다. 모든 것이 연결되는 세상에서는 개인의 다양한 정보, 예를 들어 계좌번호, 의료 정보등의 유출과 해킹에 대한 안전성 문제를 수반할 수밖에 없다. 이 문제를 해결하기 위해 ARM은 CPU와 MCU 단계에서부터 보안 이슈를 다룬 새로운 로드맵을 준비하고 있으며, 이는 2015년 11월에 ARMv8-M 아키텍처를 발표하면서 알려지기 시작했다.

ARM의 김태용 Senior FAE(이하 김태용 부장)는 ARM의 MCU 관련 아키텍처인 Cortex-M 시리즈의 가치와 기존의 ARMv6-M, ARMv7-M에 차세대 MCU를 위한 보안 등 새로운 기능을 적용한 ARMv8-M 아키텍처에 대해 말했다.

애플리케이션이 연결되는 모든 시장이 타깃 

Cortex-M 시리즈는 기본적으로 MCU가 탑재되어야 할 모든 애플리케이션 시장을 타깃으로 한다. 즉 사물들이 연결되는 시대에 에너지 그리드, 오토모티브, 홈 오토메이션, 헬스케어, 스마트 시티, 웨어러블, 스마트 팜, VR/AR, 로봇, 센서, 산업 등 전반에 걸친 시장에 Cortex-M이 적용될 수 있다.
이에 대해 김태용 부장은 “기존의 MCU 트렌드는 가전 안에서 단순한 기능을 실행하는 수준이었지만, 앞으로는 제품들이 집 안에서 서로 연결되어 유기적으로 정보를 주고받으며 다양한 기능을 하는 형태로 발전할 것”이라고 말했다.

“가전뿐만 아니라 자동차 시장도 마찬가지입니다. 기존에도 자동차에는 MCU가 탑재됐습니다. 하지만 최근 추세인 커넥티드 카, 자율주행 또는 전기자동차 등이 등장하면서 더 많은 것을 컨트롤할 수 있는 MCU가 필요하며, 단일 MCU 역시 더 많은 역할을 해야 합니다. 달리 말하면 시장에서 요구하는 성능이 훨씬 다양해진 것이죠. 마찬가지로 과거의 시계에서 MCU는 4비트나 8비트만으로 충분했지만, 스마트워치용 MCU는 더 많은 퍼포먼스를 실행해야 합니다. 결국 전체적으로 MCU는 더많은 퍼포먼스를 수행해야 하며, 전력효율성도 보장되어야 하고 호환성도 뛰어나야 합니다.”

김태용 부장은 호환성과 전력 효율성이 뛰어난 Cortex-M 시리즈를 찾는 MCU 제조사들이 늘어나고 있으며, Cortex-M 시리즈의 2007년 ~ 2015년까지 누적 출하량은 총 189억 개에 달한다고 말한다. 2015년에만 64억개가 출하됐으며, Cortex-M 시리즈를 기반으로 MCU를 만드는 라이선스도 378개에 달한다(그림 1). 

  

“다양한 퍼포먼스가 요구되고 있는 상황이 지속됨에 따라 최근 8비트나 16비트보다 32비트 MCU를 위한 Cortex-M6, M7을 찾는 경우가 증가하고 있습니다. 2015년 출하량 기준으로 32비트용 Cortex-M이 4/8비트용을 넘어섰으며, 이러한 추세는 앞으로도 지속될 것으로 전망됩니다.”

퍼포먼스 vs 전력 

그렇다면 왜 Cortex-M일까? 서두에 언급했듯이 ARM은 설립 초기부터 지금까지 꾸준히 전력 효율성을 연구하고 있다. 그리고 어떻게 하면 제조사들이 MCU 제조 비용을 절감할 수 있을 지를 고민한다. 이는 앞서 설명한 MCU 타깃 시장에서 가장 많이 요구하는 사항이기도 하다.

 

“MCU를 설계할 때 가능한 적은 전력으로 만드는 것이 중요합니다. 예를 들어, 기기를 사용하지 않을 때에는 대기모드에서 빠르게 슬립 모드로 전환되는 기술이 필요하죠. 또 사용자 입장에서 편리해야 합니다. 또 다른 중요한 요소는 바로 퍼포먼스입니다. 아무리 저전력이라 해도 퍼포먼스가 떨어져서는 안됩니다. 그러기 위해서는 명령어 집합(Instruction set)을 잘 정의하고 인터럽트(interrupt) 처리를 잘 할 수 있도록 해야 합니다. MCU 시장이 저전력과 퍼포먼스 향상뿐만 아니라 비용에도 민감하기 때문에 ARM의 아키텍처 설계를 통한 MCU 라이선스 판매 방식은 MCU 제조사 입장에서 비용 절감 효과를 거둘 수 있어 큰 이점이 됩니다.”

 

전력과 퍼포먼스는 밀접한 관계가 있다. 퍼포먼스를 높이려면 파이프 라인(pipeline)이 복잡해질 수밖에 없다. 정해진 시간 안에 몇 개의 명령어를 처리하느냐는 MCU의 성능과 직결된다. 따라서 고사양의 MCU일수록 많은 명령어를 처리할 수 있도록 설계한다. ARM은 Cortex-M7을 설계할 때 퍼포먼스를 올리기 위해 슈퍼스칼라(superscalar) 파이프 라인(pipeline)으로 설계한다.

Cortex-M0나 Cortex-M0+는 퍼포먼스보다 전력 효율성이 더욱 강조되기 때문에 패치, 디코드, 실행하는 파이프라인의 명령어 자체를 효율적으로 설계하는 것이 중요했다. 즉 명령어 집합을 잘 설계해 두면 연산에 필요한 명령어 개수가 줄게 되고 파이프라인의 동작 역시 줄어 들어 그만큼 전력 소모도 줄일 수 있다.

인터럽트 측면에서도 이를 효율적으로 빠르게 처리할수록 그만큼 전력 소모를 줄일 수 있다. 어떤 인터럽트가 들어오게 되면, 하드웨어적으로 어떤 인터럽트를 먼저 처리해야 하는 지를 찾아 빨리 해당 인터럽트를 빠르게 처리하고 저전력 모드로 들어갈 수 있도록 설계해야 한다.

“Cortex-M 시리즈가 지원하는 IRQs의 수는 Cortex-M0와 Cortex-M0+가 32개, Cortex-M3~M7까지는 240개까지 가능합니다. 시리즈의 숫자가 높아질수록 성능이 올라갑니다.

Cortex-M 시리즈는 하이엔드용으로 올라갈수록 더 다양한 성능을 구현할 수 있는 대신 전력 소모량은 다소 증가하게 됩니다. 다만 전력 효율성을 위해 어느 아키텍처이든 간에 빠르게 슬립모드로의 전환이 이뤄지도록 구성했습니다.”

전력 소모 측면에서 본다면, Cortex-M0나 Cortex-M0+를 사용하는 것이 효율적이라고 생각하기 쉽다. 하지만 반드시 그런 것은 아니다. 중요한 것은 원하는 퍼포먼스가 무엇이냐에 달렸다.

복잡한 연산에서 Cortex-M0를 사용해 제약된 명령어를 여러 번 돌리는 것보다는 Cortex-M7을 이용해 빠르게 처리하는 것이 더 효율적일 수 있기 때문이다. 이러한 다양한 측면을 고려해 명령어 집합부터 마이크로 아키텍처 구현까지 타깃에 맞게 잘 설계하는 것이 중요하다.

“예를 들어, 모터를 컨트롤하거나 코덱을 돌려야 하는 오디오와 같은 DSP관련 컨트롤에서는 Cortex-M3보다 Cortex-M4가 효율 측면에서 유리할 수 있습니다. 물론 이를 구현하기 위한 사이즈 차이가 있지만, 효율적인 MCU를 구현한다는 측면에서는 장점입니다. 따라서 Cortex-M0냐 Cortex-M7이냐 보다 제품이 요구하는 성능을 만족시키기 위해 적합한 MCU는 무엇이냐가 더 중요합니다.”



ARM은 아키텍처를 정의하는 일부터 시작한다

흔히 ARM은 Cortex-A, Cortex-R, Cortex-M 등 Cortex라는 CPU 브랜드를 지닌 기업이자, CPU를 디자인하는 회사라고 알고 있다. 그런데 ARM의 전체 업무 측면에서 볼 때, ARM의 업무 첫 단계는 디자인이 아니라, 시장의 요구에 맞는 아키텍처를 정의하는 일이다.

“먼저 Cortex-M이라는 아키텍처를 정의하면서 아키텍처를 구성하는 명령어 집합(Instruction Set), 프로그래머 모델(Programmer’s Model), 메모리 모델(Memory Model), 익셉션 모델(Exception Model), 디버그 아키텍처(Debug Architecture) 등에 대해 설계합니다. 저전력, 저비용에 대한 고려 역시 아키텍처 정의 단계부터 시작됩니다.”

아키텍처 정의 단계를 거쳐 생산되는 마이크로 아키텍처는 같은 Cortex라해도 어느 애플리케이션에 적용해야 할 MCU냐에 따라 Cortex-M0일 수도 있고 Cortex-M7일 수도 있다. ARM은 이렇게 마이크로 아키텍처를 기반으로 PPA(최적 전력, 성능, 면적)를 최적화한다.

여기에 또 하나, ARM은 에코시스템을 통해 전 세계 개발자들과 함께 Cortex 아키텍처를 개발하고 있다. 즉 ARM은 아키텍처를 정의하고 그 아키텍처에 맞는 마이크로 아키텍처와 아키텍처 기반의 에코시스템을 파트너와 함께 만들어 나간다.

 

제품을 개발하게 되면 이를 뒷받침할 소프트웨어도 개발해야 한다. 문제는 차세대 제품을 개발할 때 소프트웨어도 처음부터 다시 개발하게 될 경우 발생하는 비용적 측면이다. 김태용 부장은 마이크로 아키텍처를 디자인할때 구조를 공유하게 되므로 MCU 벤더들 입장에서 소프트웨어의 업그레이드와 개발이 아주 용이하다고 설명한다.

즉 소프트웨어의 호환성을 확보했다.

예를 들어 명령어 집합을 구성할 때, 테이블 형태로 비교가 가능하며 베이스라인 프로그램 모델과 인터럽트 컨트롤러(Interrupt controller) 구조 등을 공유하게 된다. 소프트웨어 자체를 놓고 보면, Cortex-M0와 Cortex-M0+에 적용된 인터럽트 핸들러(Interrupt Handler)를 Cortex-M4, Cortex-M6, Cortex-M7에서도 그대로 사용할 수 있다는 의미다. 이는 MCU 벤더, 즉 유저 입장에서 차세대 MCU를 개발할 때 기존의 아키텍처를 기반으로 업그레이드가 가능함을 의미한다.

보안에 최적화된 ARMv8 아키텍처 

IoT 시장이 급성장함에 따라 떠오르고 있는 이슈는 바로 보안이다. 지금까지 Cortex-M 시리즈를 ARMv6와 ARMv7 아키텍처 기반으로 구현해온 ARM은 앞으로 중요해질 보안 이슈에 대응하기 위해 ‘ARM 트러스트존(TrustZone)’ 기능을 구현한 ARMv8-M 아키텍처를 발표했다. 현재 개발 중인 이 아카텍처는 기존 버전의 이점을 그대로 유지·발전시키는 것과 함께 보안 이슈를 추가했으며 디버그를 좀더 효율적으로 사용할 수 있도록 개선했다.

 

ARMv8-M 아키텍처는 보안 및 확장성 강화, 디버그 기능에 대한 개선을 통해 개발자들이 차세대 임베디드 디바이스의 요구에 훨씬 더 쉽게 대응할 수 있도록 한다. 현재 보안이 매우 중요해지고 있음에도 불구하고, 소형 임베디드 디바이스는 제한적인 보호 상태이거나, 개발자에게 높은 전문 기술 지식을 요구하는 소프트웨어 관리 보안 시스템에만 의존하고 있는 상황이다.

 

“ARMv8-M 아키텍처에서 가장 중점적으로 바뀐 부분은 바로 보안입니다. 엔드 노드의 정보가 상호 유기적으로 오가는 형태로 시장이 흘러가고 있는데, 여기서 발생할 수 있는 해킹과 같은 이슈에 대응할 필요가 있습니다. ARM은 MCU 아키텍처부터 개인 정보를 보호할 수 있도록 하고자 했습니다. ARMv8-M 아키텍처는 신뢰(Trusted)와 비신뢰(non-trusted) 상태를 식별함으로써 데이터, 펌웨어 및 주변기기들이 안전하게 보호될 수 있도록 합니다.”

 

김태용 부장은 ARMv8-M 아키텍처에 적용될 보안 요소를 커뮤니케이션보호, 데이터 보호, 펌웨어 보호, 운영보호, 조작방지 보호로 설명했다.
개인의 계좌 정보, 의료 정보 등이 다른 사람이 볼 수 없도록 하기 위해서는 유무선 커넥터를 통해 데이터가 전송될 때 암호화하고 이 정보를 받을 수 있는 사람인지를 증명할 수 있어야 한다. 그리고 이를 위해 데이터를 보호해야 한다. 특히 키 정보나 개인 정보를 어떻게 잘 숨기느냐는 해킹으로부터 얼마나 안전할 수 있느냐와 일맥상통한다.

 

“ARMv8-M 아키텍처는 별도의 보안모드인 ‘신뢰 모드’를 만들어 ‘비신뢰 모드’에서는 ‘신뢰 모드’를 볼 수 없도록 합니다. 신뢰 모드는 별도의 소프트웨어와 하드웨어로 구성해 구분된 공간에서 실행됩니다. 즉 이 아키텍처의 가장 큰 핵심은 별도의 보안 구역(trusted)을 만들어 이 안에서 작업을 한 후 정보를 박스에 넣고 열쇠를 채워 비신뢰 모드로 넘기게 되는데, 이 비신뢰 모드에서는 이 박스가 어떻게 생겼고 열쇠가 어떻게 잠겨졌으며 그 안에 어떤 내용이 채워져 있는지 볼 수 없게 한다는 것 입니다.”

 

ARMv8-M 아키텍처는 현재 개발 단계이며, ARM은 에코시스템을 통해 파트너들과 함께 API부터 부팅 알고리즘, OS 등을 개발하고 있다. 김태용 부장은 Cortex-M3급 제품을 예로 들어 사이즈나 전력 소모도 개선될 것이라고 말했다.  

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>

본 기사의 전문은 PDF문서로 제공합니다. (로그인필요)
다운로드한 PDF문서를 웹사이트, 카페, 블로그등을 통해 재배포하는 것을 금합니다. (비상업적 용도 포함)
 PDF 원문보기

  • 100자평 쓰기
  • 로그인

태그 검색
본문 검색
TOP