Arm 프로세서 시리즈
| 시리즈 | 특징 |
| Cortex-A | 리눅스처럼 복잡도가 높은 운영체제를 실행 높은 성능이 요구되는 스마트폰, 넷북, 디지털 TV 등의 제품에 사용 |
| Cortex-R | 실시간 요구사항을 충족하는 RTOS를 실행 실시간 응답이 요구되는 통신 모뎀, 산업용 마이크로컨트롤러 등의 제품에 사용 |
| Cortex-M | 주로 베어메탈 RTOS를 실행 낮은 전력 소모와 저렴한 가격의 마이크로컨트롤러를 제작 |
Cortex-A, Cortex-R, Cortex-M 시리즈의 접미사를 모두 합치면 ARM이다.
Cortex-A 시리즈
고성능 애플리케이션 프로세서에 탑재되는 프로세서. 주로 모바일 기기 및 서버, 자동차(인포테인먼트, 자율주행) 등 다양한 플랫폼에서 개발되는 제품을 위한 Arm의 주력 상품군. 주로 범용 운영체제인 리눅스나 윈도우가 실행된다.
Cortex-R 시리즈
실시간 처리가 가능한 RTOS 기반 제품을 위한 프로세서. Cortex-A 보다 상대적으로 성능은 낮지만 실시간 처리를 위해 높은 안정성이 요구되는 제품군을 위해 설계된 시리즈.
주요 특징은 가상 메모리를 지원하지 않는 대신 MPU(Memory Protection Units)나 TCM(Tightly-Coupled Memory)과 같은 기능을 제공.
낮은 인터럽트 레이턴시 (인터럽트 발생 시 빠른 응답 처리 시간)를 보장하기 위해 다양한 기능을 제공.
주로 로봇이나 항공 시스템을 구축하는 데 활용된다.
MPU와 TCM?
MPU는 특정 메모리 공간에 접근할 수 있는 프로세스만 해당 메모리 공간에 접근할 수 있는 권한을 부여해 메모리를 보호하는 하드웨어 유닛.
TCM은 캐시보다 더 성능을 극대화하기 위해 사용되는 하드웨어 블록으로, Arm 코어 바로 옆에 위치한 고성능의 SRM을 뜻한다.
Cortex-M 시리즈
낮은 전력 소모와 저렴한 가격이 요구되는 마이크로컨트롤러에 주로 활용.
Cortex-A vs Cortex-R
| 항목 | Cortex-A | Cortex-R |
| 주소 배치 | 가상 주소(VA) <-> 물리 주소(PA) | 물리 주소 직접 사용 |
| 하드웨어 | MMU(TLB, 페이지 테이블) | MPU (몇 ~ 수십 개의 영역, 크기/권한/속성) |
| 보호/격리 | 프로세스별 주소공간 분리, 유저/커널 분리 | 영역 단위 접근권한(RWX, 프리빌리지), 프로세스 격리는 제한 |
| 캐시/일관성 | L1/L2 캐시, 스누핑/내장 일관성, DSB/ISB 대응 | 더 단순한 캐시(없거나 작음), 소프트웨어 플러시/배리어 중심 |
| 메모리 속성 | 페이지/섹션 단위 Normal/Device/Strongly-ordered, 쉐어러블, 액세스 플래그등 | MPU 영역 단위 일관성/버퍼링/실행가능 여부(XN) 등 기본 속성 |
| 메모리 모델 | Out-of-order 고려, 메모리 배리어(DMB/DSB/ISB) 필수 | 대부분 단순, 배리어 필요성은 낮지만 DMA/주변장치 연계 시 필요 |
| 특권/레벨 | AArch64: EL0~EL3(유저/커널/하이퍼바이저/보안) | Thread/Handler 모드 + Privileged/Unprivileged, 단순 |
| 보안(TrustZone) | TrustZone-A: Secure/Non-secure 세계 분리, 가상메모리와 결합 | TrustZone-M: SAU/IDAU + MPU 로 영역 단위 보안 분리 |
| 컨텍스트 스위칭 | 페이지 테이블 전환 + TLB 관리 | MPU 재설정(영역 재프로그램) 정도 |
| 전형적 OS | 리눅스/Windows, 대형 RTOS | FreeRTOS/Zephyr/bare-metal 등 |
Arm 프로세서 관련 용어
Arm 아키텍처
하드웨어 관점에서 Arm 프로세서는 트랜지스터로 구성된 반도체이다. 이 같은 Arm 프로세서를 소프트웨어로 제어하려면 Arm 프로세서의 세부 기능을 설정할 수 있는 인터페이스를 제공해야 한다. Arm 프로세서를 소프트웨어 입장에서 분석한 주요 개념이나 기능을 Arm 아키텍처라고 하며, Arm 아키텍처는 레지스터, 메모리 구조, Arm 어셈블리 명령어, 함수 호출 규약과 같이 소프트웨어 개발자가 알아야 하는 주요 요소를 포함한다.
Arm 아키텍처를 구성하는 주요 기능 가운데 프로그래머가 알아야 할 핵심 요소(어셈블리 명령어, 레지스터, 동작 모드, 익셉션 레벨, 익셉션)를 프로그래머 모델이라고 하며, 프로그래머 모델은 Arm 아키텍처와 거의 비슷한 의미를 지닌 용어이다.
Arm 프로세서
말 그래도 Arm 아키텍처를 탑재한 프로세서이다.
| Arm 아키텍처 | Arm 코어 (디바이스) |
| Arm7-A | Cortex-A5 |
| Cortex-A7 | |
| Cortex-A9 | |
| Cortex-A15 | |
| Arm8-A | Cortex-A53 |
| Cortex-A57 | |
| Cortex-A72 |
'시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 카테고리의 다른 글
| Arm 아키텍처 학습방법 (0) | 2025.09.21 |
|---|