
Cortex-M23 및 Cortex-M33의 Armv8-M 아키텍처 소개
임베디드 산업은 빠르게 진화하고 있으며, 이에 따라 강력하고 안전하며 효율적인 마이크로컨트롤러에 대한 필요성도 커지고 있습니다. Cortex-M 제품군의 최신 도약인 Armv8-M 아키텍처를 소개합니다.
3부로 구성된 블로그 시리즈에서는 임베디드 시스템의 최신 과제를 해결하기 위해 설계된 Cortex-M23 및 Cortex-M33 마이크로컨트롤러에 도입된 새로운 기능과 개선 사항을 살펴볼 것입니다.
여기서 다룰 내용은 다음과 같습니다:
1부: 1부: 새로운 C11 언어 지원과 중요한 MPU(메모리 보호 장치) 업데이트를 살펴보는 것으로 시작하겠습니다. 이러한 개선 사항은 강력한 임베디드 시스템의 핵심 구성 요소인 데이터 무결성과 메모리 보안을 보장하는 데 매우 중요합니다.
2부: 다음으로 하드웨어 분할, 긴 분기 명령어 추가, 보다 효율적인 MOV 작업 등 Cortex-M0/M0+의 성능 향상에 초점을 맞춰 살펴봅니다. 이러한 업데이트를 통해 개발자는 낮은 전력 소비를 유지하면서 성능 우위를 확보할 수 있습니다.
3부: 마지막으로 보안 개선 사항을 자세히 살펴보며 마무리합니다. 임베디드 디바이스가 네트워크에 점점 더 많이 연결됨에 따라 TrustZone 기술과 스택 보호는 위협으로부터 시스템을 보호하는 데 필수적인 요소가 되었습니다. 이러한 기능이 어떻게 보안을 강화하는지 살펴보겠습니다.
산업 자동화, IoT 또는 안전이 중요한 애플리케이션을 설계하는 경우 이 시리즈를 통해 Armv8-M이 임베디드 시스템의 미래를 어떻게 형성하는지에 대한 귀중한 통찰력을 얻을 수 있습니다. 각 주제를 자세히 살펴보면서 계속 지켜봐 주세요!
블로그 1: Cortex-M23 및 Cortex-M33의 Armv8-M 아키텍처 소개
C11 언어 표준 및 MPU 업데이트 지원
Cortex-M 마이크로컨트롤러는 임베디드 산업에서 핵심적인 역할을 해왔으며, 그럴 만한 이유가 있습니다. 지난 10년 동안 저전력 디바이스 및 임베디드 시스템의 환경을 변화시켰기 때문입니다. Cortex-M이 인기를 얻은 이유를 자세히 살펴보고 Armv8-M 아키텍처의 새로운 개선 사항, 특히 Cortex-M23 및 Cortex-M33 코어에 대해 알아보세요.
Cortex-M이 뛰어난 이유
1. 낮은 전력 소비: 기존 Arm CPU는 휴대폰, 게임보이 어드밴스 같은 휴대용 게임 콘솔 등 전력 효율성이 중요한 디바이스를 위해 설계되었습니다. 이러한 전력 소비를 고려한 설계가 Cortex-M 라인에 적용되어 최신 임베디드 시스템에 적합합니다.
2. 광범위한 제품 범위: Cortex-M 제품군에는 Cortex-M0+, Cortex-M3, Cortex-M4 및 Cortex-M7과 같은 모델이 포함되며, 각각 수십에서 수백 MHz에 이르는 다양한 성능 수준을 제공합니다. 오늘날에는 성능을 더욱 향상시키는 멀티코어 옵션도 있습니다.
3. 표준화되고 라이선스가 가능한 마이크로컨트롤러 코어: Arm CPU의 주요 장점 중 하나는 다양한 반도체 공급업체에서 채택된다는 점입니다. 따라서 개발자는 모든 것을 처음부터 다시 빌드하지 않고도 마이크로컨트롤러 간에 쉽게 전환할 수 있습니다. 또한 통합 아키텍처는 인터럽트 컨트롤러 및 타이머와 같은 요소를 표준화하여 여러 프로젝트에서 소프트웨어를 재사용할 수 있습니다.
요컨대, Cortex-M은 임베디드 시스템용으로 다재다능하고 안정적이며 널리 채택된 마이크로컨트롤러 제품군이 되었습니다.
Armv8-M: 다음 단계의 진화
임베디드 세계가 발전함에 따라 Cortex-M 제품군도 발전하고 있습니다. Cortex-M 시리즈의 최신 아키텍처인 Armv8-M을 소개합니다. Cortex-M23(Cortex-M0/M0+ 대체)과 Cortex-M33(Cortex-M3/M4 대체)은 이전 제품의 강점을 계승하는 동시에 새롭고 강력한 기능을 도입했습니다.
CPU 코어 아키텍처
Cortex-M0 Armv6-M
Cortex-M0+ Armv6-M
Cortex-M3 Armv7-M
Cortex-M4 ARMv7E-M
Cortex-M7 ARMv7E-M
Cortex-M23 Armv8-M 기준선
Cortex-M33 Armv8-M 메인라인
Armv8-M의 주요 업데이트
이 블로그에서는 C11 언어 표준 지원 및 MPU 업데이트에 대해 중점적으로 설명합니다.
- C11 지원: 최신 버전의 C 프로그래밍 언어인 C11에서는 멀티스레딩 및 _Atomic 유형 수정자와 같은 새로운 기능이 추가되어 독점성 제어를 관리할 수 있습니다. 이를 통해 메모리 액세스를 안전하고 질서 있게 처리할 수 있습니다. 이러한 C11 기능을 지원하기 위해 Armv8-M은 로드 획득 및 저장소 해제 명령어를 도입하여 임베디드 시스템에 더욱 강력한 메모리 처리 기능을 제공합니다.
- MPU 업데이트: Armv8-M의 메모리 보호 장치(MPU)는 또 다른 중요한 업그레이드입니다. 이전 Cortex-M 버전에서는 MPU의 유연성이 제한적이었지만 Armv8-M에서는 이제 개발자가 읽기/쓰기 권한 및 캐시 설정과 같은 메모리 속성을 더 잘 제어할 수 있습니다. 또한 TrustZone 지원을 통해 보안 및 비보안이라는 두 가지 MPU 구성이 가능하므로 최신 임베디드 시스템의 보안이 더욱 강화됩니다.
C11 지원 자세히 살펴보기
Armv8-M에 C11 표준이 도입되면서 멀티스레딩 및 원자 연산을 개선하기 위한 새로운 기능이 통합되어 전용 메모리 액세스 관리와 프로세스 동기화가 더 쉬워졌습니다. C11의 주요 기능 중 하나는 동시 환경에서 변수를 안전하게 처리할 수 있도록 하는 _Atomic 유형 수정자입니다.
Armv8-M 아키텍처 (예: Cortex-M23 및 Cortex-M33 코어)에서는 이러한 원자 연산을 지원하기 위해 로드 획득(LDA) 및 스토어 릴리스(STL )와 같은 하드웨어 명령어가 도입되었습니다. 이러한 명령어는 메모리 연산이 올바른 순서로 이루어지도록 하여 경합 상태를 방지하고 데이터의 무결성을 보장합니다.
아래 그림은 LDA와 STL이 메모리 작업 중 중요한 코드 섹션을 보호하는 방법을 보여줍니다. 이러한 명령어는 이전 메모리 액세스가 다음 액세스가 시작되기 전에 완료되도록 보장하여 시스템이 데이터 액세스 충돌 없이 의도한 대로 작동하도록 보장합니다.
또한 Armv8-M은 원자 연산을 처리하는 데 중추적인 역할을 하는 LDAEX와 STLEX로 대표되는 전용 로드 및 저장 연산을 도입했습니다. 이러한 명령어는 여러 스레드가 동일한 메모리 주소에 동시에 쓰는 것을 방지하여 데이터 일관성을 보장합니다.
이에 비해 Armv7-M ( Cortex-M3와 같은 코어에 사용됨)은 비슷한 기능을 구현하기 위해 LDREX 및 STREX 명령어와 데이터 메모리 배리어(DMB) 명령어에 의존합니다. 그러나 다음 그림에서 볼 수 있듯이 Armv8-M은 이 프로세스를 단순화하고 개선했습니다:
예제 코드에서는 Armv7-M의 이전 LDREX 및 STREX와 비교하여 Armv8-M의 LDAEX 및 STLEX를 사용하여 _Atomic int ai가 어떻게 증가되는지 확인할 수 있습니다. 이는 원자 연산 처리에서 분명한 진화를 보여주며, 안정적인 데이터 액세스가 필요한 임베디드 시스템에서 Armv8-M이 더욱 효율적이고 안전해졌습니다.
Armv8-M의 MPU 업데이트
Armv8-M의 메모리 보호 장치(MPU)도 중요한 변화를 가져와 개발자에게 메모리 액세스 및 보안에 대한 더 큰 제어를 제공합니다. 이전 아키텍처와 달리 Armv8-M MPU는 보다 유연한 영역 정의와 권한을 허용하여 보안 및 비보안 상태에서 향상된 메모리 관리를 제공합니다.
한 가지 중요한 개선 사항은 보안 및 비보안 MPU를 개별적으로 구성할 수 있다는 점입니다. 이렇게 하면 보안 영역의 중요한 데이터가 비보안 영역의 무단 액세스로부터 보호됩니다. 또한 수집(G), 재정렬(R), 조기 쓰기 승인(E)과 같은 새로운 메모리 속성을 통해 시스템에서 데이터가 처리되는 방식을 더욱 정밀하게 제어할 수 있습니다.
이전 버전인 Armv7-M에서는 메모리 영역이 허용되었지만 현재 Armv8-M에서 제공되는 고급 유연성 및 보안 기능이 부족했습니다. 이제 개발자는 성능과 보안을 최적화하는 메모리 영역을 정의할 수 있으므로 복잡한 임베디드 시스템을 더 쉽게 관리할 수 있습니다.
이러한 MPU 업데이트와 TrustZone 기술이 결합된 Armv8-M은 보안과 성능이 중요한 임베디드 애플리케이션을 위한 강력한 선택이 될 것입니다.
요약
임베디드 시스템이 더욱 복잡해짐에 따라 Armv8-M과 같은 강력하고 유연한 아키텍처에 대한 필요성이 커지고 있습니다. C11 지원 및 MPU 업데이트를 통해 Cortex-M23 및 Cortex-M33은 IoT에서 산업 자동화에 이르는 최신 임베디드 애플리케이션의 요구 사항을 처리할 수 있는 유리한 위치에 있습니다. Arm용 IAR 임베디드 워크벤치는 전체 Cortex-M 제품군을 지원하여 Armv8-M으로 쉽게 전환할 수 있는 통합 개발 환경을 제공합니다.
이 시리즈의 다음 파트에서는 Cortex-M0/M0+의 성능 개선 사항을 살펴보고 하드웨어 분할, 새로운 명령어 등이 임베디드 시스템 성능의 한계를 뛰어넘는 방법에 대해 알아보겠습니다.
다음 단계로 나아가기
이러한 기능을 실제로 살펴볼 준비가 되셨나요? IAR 임베디드 워크벤치를 통해 Armv8-M을 살펴보세요. 직접 체험해보고 Armv8-M 기능이 임베디드 프로젝트를 어떻게 향상시킬 수 있는지 알아보세요. Arm용 IAR 임베디드 워크벤치 평가판을 다운로드하고 Cortex-M23 및 Cortex-M33 코어에 대한 지원을 테스트해 보세요.
참고 자료
[1] 초보자를 위한 Arm Cortex-M: Arm Cortex-M 프로세서 제품군 개요 및 비교
[2] Armv8-M 메모리 모델 및 메모리 보호 버전 1.1 사용자 가이드