ARM Cortex Family에 대한 기본 이해


ARM Core라는 용어에 대해 임베디드를 하시는 분이면 많이 들어보셨을 것입니다. 그런데 ARM이 어떤 것의 약자인지 알고 계셨나요? 이번 글에서는 ARM이 의미하는 것이 무엇인지에 대해 알아보겠습니다.


ARM 로고

출처: 위키백과

먼저 Cortex Family는 다음 3가지로 분류합니다.


Cortex-A (Application)

Cortex-R (Real-time)

Cortex-M (MCU)


 위에 파란색으로 표시해 보았는데요. Cortex-A, Cortex-R, Cortex-M Family의 맨 뒤에 글자를 따서 ARM이라는 단어가 탄생했다고 합니다.

 각각의 Family는 위의 분류와 같이 'A'는 Application, 'B'는 Real-time, 'M'은 MCU를 위한 제품군입니다. 이제 ARM Core의 제품 분류만 보셔도 사용하고 있는 제품군이 어떠한 것을 Target 하여 만들어졌는지 한 번에 확인할 수 있겠죠?


조금 더 자세하게 알아볼까요?


Cortex-A (Application)

 리눅스(Linux)와 같은 OS(Operating System)사용이 가능한 제품군입니다. 이 제품군은 디바이스에 Flash memory나 RAM을 별도로 추가하여 사용하는 것이 일반적입니다. 주로 큰 시스템에 사용됩니다. 스마트폰과 같은 것을 만드는데 사용됩니다.


Cortex-R (Real-time)

 Cortex-R은 Cortex-A 와 비슷한 기능으로 사용되지만 Device 내부에 Flash memory나 RAM을 모두 내장하고 있습니다. Cortex-A보다 Flash memory와 RAM의 size를 사용자가 선택하여 설계하는 측면에서는 유연성이 떨어질 수 있지만 한 칩에서 모두 구현할 수 있다는 장점이 있습니다. 주로 하드디스크나 오토모티브 제품군 안에서 빠른 실시간 처리를 하는데 사용됩니다.


Cortex-M (MCU)

Cortex-M MCU 제품군입니다. Cortex-M은 여러 시리즈를 가지고 있습니다. 

M0나 M0+는 32비트 저가형 마이크로컨트롤러 애플리케이션 용도입니다.

M0+는 M0에 비하여 더 빠릅니다. 그리고 M0에 비하여 저전력으로 구동할 수 있습니다. M0 이후버전이라고 생각하셔도 됩니다.

M3는 HW divide와 연산을 위한 파이프라인이 더 추가됩니다.

M4는 floating point(FPU)와 디지털 시그널 프로세싱을 위한 DSP가 포함되어 있습니다.

M7은 멀티로 연산을 하기 위한 daul-precision FPU와 superscalar pipelining 기능을 가지고 있습니다.

Posted by KennyShin
,