ARM 프로세서 개요
ARM 코어텍스의 종류
- ARM Cortex-A (ARMv7-A)
- ARM Cortex-R (ARMv7-R)
- ARM Cortex-M (ARMv7-M)
1. Cortex Serie A (Application).
32bit, 64bit RISC의 ARM 프로세서 코어 그룹.
+ The cores are intended for application use.
다른 시리즈와 구별되는 특징은 memory management unit (MMU)이 존재한다는 것이다.
2. Cortex Serie R (Real time)
The Cortex-R series has an ARMv7-R, or ARMv8-R architecture and uses a Thumb/Thumb-2.
Thumb/Thumb-2 모드를 주로 사용하여, Real Time환경에서 사용하기 적합한 것 같다.
* Thumb : 16bit 로 동작하는 모드. 16bit의 intsruction set을 사용한다.
* Thumb-2 : ARMv7 부터 완벽히 지원된다. Thumb-2는 THUMB 16bit Instruction Set을 포함하여, ARM 32bit Instruction Subset, New 16/32 Instructions set 을 제공한다. 그래서 결국 ARM 명령어와 거의 비슷한 기능을 제공하고, 32bit와 16bit 명령어를 포함하여 성능은 ARM 명령어와 유사하지만 THUMB처럼 코드 사이즈가 매우 적게 만들어져 고밀도 코드를 만들어 낸다.
3. Cortex Serie M (Microcontroller )
They are intended for microcontroller use
32bit, 64bit로 구성된다.
* Cortex-M0, Cortex M0+, and Cortex-M23 for applications requiring minimal cost, power and area
* Cortex-M3, Cortex-M4, and Cortex-M33 for all applications where a balance between 32-bit performance and energy efficiency is desirable
* Cortex-M7 is designed for embedded applications requiring high performance
Coretext M3프로세서에는 메모리에 대한 접근 권한을 제어할 수 있는 MPU(Memory Protection Unit이 있다.)
+) ARM은 프로서를 제작할 뿐, MCU를 직접 제작하지 않기 때문에 제조 회사별로 주변장치가 달라질 수 있다.
12개의 범용레지스터와 나머지 특수 레지스터가 있다.
M3/M4는 3단 파이프 라인구조를 갖는다.
비트밴딩의 예시이다.
아래는 M3/M4의 메모리 맵이다.
32bit이므로 4GB에 해당하는 표준 메모리 맵이 존재한다.
내부 SRAM은 500MB까지 인식할 수 있도록 맵이 구성되어있다.
(흔히 쓰는 STM32는 10KB가 탑재 되어있는것으로 안다. 메모리 맵은 MCU제조사 마다 다를 수도 있다.)