Skip to content

기글하드웨어기글하드웨어

가전 / 가젯 / 테크 : 가전 제품, 멀티미디어, 각종 IT 기기와 여기에 관련된 기술의 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form
참고/링크 http://pc.watch.impress.co.jp/docs/colum...28954.html

ARM의 새로운 MCU 프로세서 IP. 그 핵심은 TrustZone 통합

 

ARM은 IoT (The Internet of Things) 시대를 향한 새로운 프로세서 IP Cortex-M23과 Cortex-M33을 발표했습니다. Cortex-M23 / 33은 새로운 명령어 세트 ARMv8-M을 구현한 최초의 프로세서 IP로, 가장 큰 특징은 보안입니다. IoT 시대에 필요한 보안을 쉽게 구현할 수 있도록 아키텍처에 보안 기능을 통합했습니다.

 

임베디드 용 MCU (Microcontroller)로 폭넓게 쓰이는 Cortex-M 시리즈는 지금까지 일관된 보안 아키텍처가 제공되지 않았습니다. Cortex-M23 / 33은 TrustZone을 도입한 보안 아키텍처가 옵션으로 제공됩니다. TrustZone을 SoC(System on a Chip) 레벨에서 실현하기 위한 시스템 IP도 제공됩니다.

 

6.jpg

 

미국 산타 클라라에서 개최된 ARM 기술 컨퍼런스 ARM Techcon 2016의 첫 키노트 스피치는, ARM을 인수한 소프트뱅크 그룹의 손정의(소프트뱅크 그룹 주식회사 대표이사)가 등단해 IoT 시대의 전망에 대해 말했습니다. 대부분 앞으로의 전망을 다룬 내용이었으며, 특히 IoT의 보안에 대해서 강조했습니다.

 

1.jpg

 

2.jpg

 

2035 년에는 IoT 디바이스가 1조 개에 도달할 것으로 예상되며. 각각의 IoT 칩에서 클라우드로 데이터를 보내고 빅 데이터가 분석합니다. 이럴수록 최종 디바이스 레벨의 보안이 중요해집니다.

 

4.jpg

 

자동차를 예로 들면 현재 다수의 칩을 사용하고 있으며, IoT 시대로 흘러갈수록 그 수는 더욱 늘어나고 있습니다. 이들 칩에서 실행되는 프로그램이 해킹되면 중요한 문제가 발생합니다. 따라서 네트워크에 연결하는 IoT 디바이스에선 보안이 필수입니다.

 

3.jpg

 

5.jpg

 

보안을 중요하게 여기는 인식은 반도체 업계에서 공통된 것입니다. 기존의 임베디드 디바이스는 많은 분야에서 보안을 고려할 필요가 별로 없었습니다. 그러나 네트워크에 연결되는 IoT에서 보안은 중요합니다. ARM Techcon에선 자동차에 대한 해킹이 어떻게 이루어지는지를 설명하는 특수 키노트 스피치까지 있어 더더욱 IoT 보안을 강조했습니다. 자동차 시스템에서 해킹 사고로 이어질 수 있으며, 의료 데이터 유출은 개인 정보를 심각하게 침해합니다. IoT 보안은 필수나 다름없습니다.

 

7.jpg

 

8.jpg

 

IoT 보안에서 중요한 점은 디바이스부터 클라우드까지 모든 레벨에서 보안이 유지되는 것이라고 ARM은 설명합니다. 그리고 최종 레벨의 IoT 디바이스에 보안을 보급시키기 위해선 보안에 대한 경험이 전혀 없는 엔지니어도 처리가 가능한 1달러 미만의 저렴하고 안전한 MCU 설계가 필요하다고 주장해 왔습니다. 이번에 ARM이 발표한 ARMv8-M TrustZone은 바로 거기에 맞는 솔루션입니다.

 

9.jpg

 

트러스트 존을 사용한 ARMv8-M 시스템의 블럭 다이어그램

 

 

명령 셋트와 옵션이 다른 Cortex-M23 / 33

 

10.jpg

 

ARMv8-M 자체는 기존 Cortex-M 제품군의 명령 세트 아키텍처인 ARMv6-M, ARMv7-M의 뒤를 잇는 새로운 명령어 세트입니다. 기존에는 아주 작은 코어인 Cortex-M0/0 +가 ARMv6-M 명령어 세트, 메인 스트림 Cortex-M3/4/7이 ARMv7-M 명령어 셋트를 썼습니다. 지금은 Cortex-M23과 M33이 모두 ARMv8-M 명령을 쓰지만 프로파일은 다릅니다.

 

11.jpg

임베디드는 PC나 스마트폰처럼 명령어 세트에 대한 일관성이 강하게 요구되지 않습니다. 그보다는 용도에 따라 명령 세트를 구성하는 게 중요합니다. 예전에 열렸던 칩 컨퍼런스 Cool Chips의 패널 토론에서 "컴퓨팅에서 명령 세트는 결혼과도 깉지만, 기본적으로 명령 셋트는 데이트일 뿐"이란 발언이 나온 적도 있습니다. 데이터 상대를 바꾸는 것처럼 명령 셋트를 새로 넣는 게 임베디드 분야입니다. 기존의 Cortex-M 제품군도 명령 세트 아키텍처 자체는 Thumb / Thumb-2지만 프로세서마다 명령어 세트 옵션이 달랐습니다.

 

ARMv8-M의 명령 세트는 Thumb / Thumb-2에서 베이스라인과 메인라인의 2가지 프로파일을 갖습니다. 베이스라인은 최소한의 명령 세트고 메인라인은 부동소수점 연산을 포함해 다양한 명령 옵션이 들어갑니다. 이번에 나온 새로운 프로세서 IP는 Cortex-M23이 ARMv8-M 베이스라인이고 Cortex-M33이 ARMv8-M 메인라인입니다.

 

12.jpg

 

기존의 Cortex-M를 잇는 Cortex-M23은 Cortex-M0/0 +의 후속작이고 Cortex-M33은 Cortex-M3/4의 후속작입니다. 고성능 Cortex-M7의 후계자는 지금까지 발표되지 않았습니다. IP가 대상으로 하는 프로세스는 TSMC이 현재 55nm 프로세스나 40nm 공정으로 MCU의 주류 프로세스 노드입니다. ARM은 Cortex-M23/33의 구현 데이터로 TSMC의 40LP 프로세스에서 9 트랙 표준 셀 라이브러리의 구현 사례를 내놓았습니다. FPGA (Field-Programmable Gate Array)의 합성도 가능합니다.

 

13.jpg

 

Cortex-M 제품군의 성능 비교. Cortex-M23은 Cortex-M0 / 0 +와 거의 같고 Cortex-M33은 Cortex-M3 / 4보다 약간 위쪽이며 Cortex-M7의 성능이 가장 좋습니다.

 

14.jpg

 

15.jpg

 

ARM의 명령 세트는 원래 32비트의 ARM32 명령 세트였습니다. 그러나 16비트 고정 명령 길의 처리를 보강한 SuperH(SH) 명령 세트가 히타치(르네사스)에서 등장했고, 이후 ARM도 16비트 길이의 Thumb 명령어 세트를 추가했습니다. 또한 ARM은 Thumb 32-bit 길이 명령을 확장한 Thumb-2를 내놓았습니다. ARM은 Thumb-2에서 일단 명령 세트의 통합/재설정을 시도했다고 볼 수 있지만, 실제로는 ARM / Thumb / Thumb-2가 섞여 있습니다. Cortex-M은 이 중에서 Thumb / Thumb-2를 계승하고 있습니다.

 

16.jpg

17.jpg

 

Cortex-M33은 베이스라인 용에 주력한 Cortex-M3/4 시리즈의 후속작입니다. 이미 말한대로 ARMv8-M 메인라인 프로파일의 프로세서 IP가 됩니다. 인 오더 실행의 3단계의 단일 파이프 라인. 성능 범위는 0.98 DMIPS / MHz, 2.5 CoreMark / MHz. 기존의 Cortex-M4와 비교하면 CoreMark / MHz에서 20 %, DMIPS / MHz에서 9 %의 성능이 향상됩니다. 코어의 규모는 아직 밝혀지지 않았으나, 상대적으로 높은 성능과 학장성을 지녀 다양한 애플리케이션 지원이 기대됩니다.

 

18.jpg

 

19.jpg

 

Cortex-M33 플세서의 블럭 다이어그램

 

20.jpg

 

Cortex-M33의 명령어 세트는 Thumb / Thumb-2을 기본 제공하고 옵션으로 부동 소수점 연산과 DSP / SIMD (Single Instruction, Multiple Data) 명령어를 지원합니다. 부동 소수점 정밀도는 Cortex-M33의 구현은 IEEE754 호환 단정밀도(32비트) 형식이며 DSP 확장은 단일 사이클 16/32비트 MAX 정수와 단일 사이클 듀얼 16비트 MAC을 지원합니다. 또 8/16비트의 SIMD 연산도 지원합니다. ARMv8-M의 명령 세트 자체는 배정밀도도 지원하지만 이번에는 Cortex-M33에 구현되지 않았습니다. 물론 TrustZone 아키텍처도 지원합니다.

 

21.jpg

 

참고로 이전 세대의 Cortex-M3도 3 스테이지 파이프 라인이었으나, 파이프 라인의 구성은 다릅니다. Cortex-M33의 파이프라인은 같은 3스테이지 구성이라 해도 새로운 프로세스에 최적화됐습니다. 

 

22.jpg

 

23.jpg

 

또한 Cortex-M33는 새로운 전용 보조 프로세서 버스를 넣었습니다. 기존의 가속 장치는 AHB 버스를 통해 Cortex-M과 연결됐지만 Cortex-M33은 최대 8개의 가속기를 연결할 수 있는 보조 프로세서 버스를 마련했습니다. 임베디드에서도 가속 장치를 중시하는 방향임을 알 수 있습니다. 저성능 MCU의 고속화를 위한 솔루션이지요.

 

 

낮은 전력과 저렴한 가격을 실현하는 Cortex-M23

 

Cortex-M23은 최소한의 공간을 차지해 구현하는 걸 목표로 한 프로세서 코어입니다. 부동 소수점 연산과 SIMD(Single Instruction, Multiple Data)를 지원하지 않는 정수 연산 프로세서로, 명령어 집합은 Thumb / Thumb-2 기반이나 ARMv8-M의 일부이기도 합니다.

 

24.jpg

 

25.jpg

 

26.jpg

 

Cortex-M23은 2 단계의 인 오더 실행 단일 파이프 라인과 최소의 파이프 라인으로 구성됩니다. 성능 범위는 0.98DMIPS / MHz, 2.5CoreMark / MHz. Cortex-M0 +와 비교하면 1.6 ~ 3.2 %정도 성능이 오릅니다. 즉 구조나 성능으론 거의 변하지 않았습니다. 물론 공정 기술에 따라 성능 향상은 기대할 수 있지만 그보다는 다른 확장이 더 중요하다는 걸 분명 밝혔습니다. 아직 코어 규모는 밝혀지지 않았습니다. 참고로 Cortex-M0는 3 단계 Cortex-M0 + 2 스테이지 파이프 라인으로 구성됩니다.

 

27.jpg

 

28.jpg

 

29.jpg

 

ARM은 Cortex-M33을 하버드(Harvard) 아키텍처, Cortex-M23을 폰 노이만(von Neumann) 아키텍처라고 설명합니다. 이런 구분은 메모리 계층 구조와 페치 버스 아키텍처의 차이를 나타내고 있습니다. Cortex-M33의 경우에는 하버드 아키텍처에서 명령어와 데이터를 가져오는 경로가 분리됩니다. 따라서 명령어 인출과 데이터 액세스를 병행하여 실시할 수 있습니다.

 

하버드 아키텍처는 PC용 CPU에서 널리 쓰이고 있습니다. PC CPU는 캐시 메모리 계층이 2개로 나뉩니다. 허나 자원이 적은 임베디드 MCU는 반드시 하버드 아키텍처일 필요가 없습니다. 실제로 Cortex-M23은 하버드 아키텍처가 아니라 폰 노이만 형태의 명령과 데이터를 혼합해 단일 경로로 메모리에 액세스합니다. 명령어 인출과 데이터 액세스가 충돌하지만 경로를 단순화하고 CPU를 간단하게 만드는 효과가 있습니다.

 

 

저렴하고 낮은 전력 사용량으로 보안을 구현

 

30.jpg

 

ARM은 이번 새로운 프로세서 IP인 Cortex-M23 / 33에서 새로운 명령어 세트인 ARMv8-M으로 전환하고. 동시에 TrustZone을 옵션으로 추진해 나갑니다. 지금까지 2백억개 이상의 구현 실적이 있는 Cortex-M에서 보안을 베이스라인으로 이끌어내, 보안 IOT를 위한 Cortex-M으로 자리매김하겠다는 전략입니다. 반대로 말하면 이제서야 ARM의 Cortex-M은 IoT를 위한 준비가 갖춰졌다고 할 수 있습니다.

 

31.jpg

 

32.jpg

 

33.jpg

 

34.jpg

 

ARM은 애플리케이션 프로세서 등으로 쓰이는 Cortex-A 시리즈에서 줄곧 보안 솔루션인 TrustZone을 제공해 왔습니다. 그러나 Cortex-A를 위한 TrustZone은 구현이 무겁기에 그대로는 Cortex-M에서 쓸 수 없습니다. 경쟁사에선 MCU에 메모리 관리 장치 (MMU)를 탑재해 가상화 기반의 보안 기능을 탑재한 경우도 있지만 ARM은 그러한 선택을 하지 않았습니다. 대신 ARM은 Cortex-M 용으로 더욱 저렴하고 효율이 높은 보안 기능 옵션을 개발했습니다. 이것이 이번의 Cortex-M23 / 33에 구현된 TrustZone for ARMv8-M입니다.

 

 

Cortex-A TrustZone과는 다른 Cortex-M TrustZone

 

ARM의 프로세서 제품군 중 상위 모델인 Cortex-A TrustZone에선 하이퍼 바이저 형 모니터 모드에 따라 분리된 안전한 공간과 비보안 공간을 처리하고 있습니다. 보안 스테이트과 비보안 스테이트 사이의 전환은 모니터 소프트웨어가 제어합니다. Cortex-A 계열의 TrustZone은 일반적인 방식이지만 일정 이상의 워킹 메모리를 필요로 하기에 전환 대기 시간이 무겁고 메모리 관리 장치 (MMU)에 의한 메모리 관리도 필요로 합니다. 고속 CPU와 많은 메모리를 넣은 시스템을위한 보안 메커니즘입니다.

 

35.jpg

 

36.jpg

 

 

37.jpg

 

Cortex-A TrustZone은 Cortex-M 계열 MCU처럼 프로세서 성능이 낮고 메모리는 내장입니다. 이런 엄격한 제한 때문에 MMU를 탑재하지 않은 시스템엔 적합하지 않습니다. Cortex-A TrustZone은 다이 면적과 메모리가 증가하기 때문에 Cortex-M로 도입해도 칩 단가가 오릅니다. 또 오버헤드 때문에 성능이 떨어집니다.

 

 

현재의 ARM의 임베디드 시스템 MCU에서 보안 솔루션은 소프트웨어에 의한 제어가 주류를 이루고 있습니다. 그러나 이것도 다양한 어려움이 있어 이상적인 솔루션이라고 할 수 없습니다.

 

38.jpg

 

현재의 MCU 보안 솔루션

 

반면 ARMv8-M TrustZone은 기본적으로 하드웨어 스테이트 전이로 보안 모니터링 소프트웨어를 필요로하며 메모리 풋 프린트를 줄이고 보안을 제공합니다. 하드웨어에 의한 전환에 지연을 억제해 느린 MCU에서도 실질적인 보안 시스템을 제공할 수 있습니다.

 

39.jpg

 

40.jpg

 

Cortex-A TrustZone은 소프트웨어 제어, Cortex-M TrustZone은 하드웨어 제어

 

41.jpg

 

TrustZone for ARMv8-M 메모리 맵. 그림의 수직 메모리 주소는 정확하지 않습니다. 시스템 컨트롤 부분은 어드레스 스페이스가 매우 좁고 세분화되어 있습니다.



  • profile
    벌레쟁이      이젠 울트라뽑는 하이브 2016.11.09 20:56
    compare with branch하고 long branch 기능이 참 마음에 드네요.
    m3 칩이 v7이라 분기 코드 최적화를 위해서 가독성이 떨어지게 작성하고 있어서요.

    ...근데 FPU를 저따가 코프로세서로 넣다니 히이익?
  • profile
    이유제 2016.11.10 12:45
    m7은 해당사항이읍네요..

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. 등록된 글이 없습니다.
목록
Board Pagination Prev 1 ... 4 5 6 7 Next
/ 7

최근 코멘트 30개
카토메구미
00:59
낄낄
00:55
이유제
00:51
연금술사
00:48
노예MS호
00:47
연금술사
00:39
아스트랄로피테쿠스
00:36
Lynen
00:29
아이들링
00:20
스와마망
00:16
Kylver
00:15
포인트 팡팡!
00:14
슬렌네터
00:14
연금술사
00:14
이게뭘까
00:08
급식단
00:07
급식단
00:06
아스트랄로피테쿠스
00:04
가네샤
00:03
가네샤
00:00
가네샤
00:00
가네샤
00:00
가우스군
23:59
가네샤
23:59
가네샤
23:58
그림자
23:53
낄낄
23:50
그림자
23:42
미쿠미쿠
23:38
Colorful
23:24

한미마이크로닉스
AMD
MSI 코리아
더함

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소