Note/임베디드 노트

ARM 프로세서 개요

유니_ 2020. 11. 25. 23:10

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-2ARMv7 부터 완벽히 지원된다. 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제조사 마다 다를 수도 있다.)