- ARM Cortex?

ARM Cortex란 ARM사에서 제공하는 Architecture Core IP이다.

즉, ARM은 이러한 Core에 대한 IP를 제공하고 이를 제공받는 기업은 주변에 다른 IP를 추가하여 SoC를 만들어 판매/사용 하는 것이다. 

추가적으로 ARM Cortex에는 Cortex-A, Cortex-R, Cortex-M 시리즈가 존재하는데 각각의 A,R,M은 Application, Real-time, Microcontroller를 뜻한다.

Cortex-A의 경우, 복잡한 OS 및 사용자 응용 프로그램에 사용되고

Cortex-R의 경우, 실시간 시스템(Real-time)을 위한 임베디드 프로세서

Cortex-M의 경우, 저가형 응용 프로그램에 최적화된 임베디드 프로세서라고 한다. 

필자는 이 중에서 Cortex-M7에 대해서 공부하면서 기록하려고 한다 :)

 

 

ARM(Advanced RISC Machine)의 이름에서도 알 수 있듯이 ARM사는 RISC(Reduced Instruction Set Computer) 컨셉을 추구해왔다. 그렇다면 RISC란 무엇일까?

먼저, 컴퓨터가 어떠한 명령을 처리할 때에는 Instruction(명령어)을 Fetch하고 Decode, Execute 등의 과정이 필요하다.
여기서 Instruction을 어떻게 표현할 것인가에 대한 개념이 RISC, CISC이다.

 

- RISC(Reduced Instruction Set Computer) vs CISC(Complex Instruction Set Computer)

먼저 약자부터 살펴보면 RISC는 Reduced, CISC는 Complex이다.

말 그대로 RISC는 감소된 명령어 Set, CISC는 복잡한 명령어 Set을 사용한다는 뜻이다.

이에 대해 좀 더 생각해보면,

RISC를 사용해 복잡한 명령을 수행하려면 감소된(Reduced) 명령어를 여러개 Fetch해와야하지만

CISC를 사용한다면 복잡한 명령이라도 한번의 복잡한(Complex) 명령어 Fetch로 수행할 수 있다는 뜻이된다.

이렇게만 본다면 CISC가 RISC보다 유리해보이는데 ARM사는 왜 RISC를 채택했고 위와 같이 불리한점을 어떻게 극복했을까?

다음을 살펴보자.

 

- RISC의 장점

먼저, CISC는 복잡한 명령어를 처리해야하기에 그만큼 Decode 과정에서 하드웨어적으로 복잡한 구조가 요구되며 시간 소모가 크다. 반면 RISC는 간단한 명령어 Set을 처리하면 되기에 하드웨어적으로 간단한 구조를 가져가며 전력소모를 감소시킬 수 있는 장점이 있는 것이다.

(그림1) Non-Pipelining
(그림2) Pipelining

하지만 CISC가 아무리 Decode에 시간이 오래걸린다 해도 복잡한 명령을 수행하는데 있어  (그림1)과 같이 명령어를 여러번 Fetch해야하는 RISC보다는 빠르지 않을까? 

이러한 RISC의 속도 문제를 해결하기 위해 적용된 개념이 바로 (그림2)와 같은 Pipelining이다.

앞선 명령의 완료를 기다리지 않고 여러개의 명령 처리 과정을 겹치게끔 구현하여 복잡한 명령 수행에 걸리는 시간을 CISC에 꿀리지 않게 할 수 있게 한 것이다. 

 

정리하자면 RISC를 채택함으로써 하드웨어적으로 간단한 구조를 통해 전력소모를 줄이고, Pipelining으로 처리속도를 개선했다고 볼 수 있을 것 같다.

 

- Cortex-M7 Features

Cortex-M7의 Techincal Reference Manual에 소개된 주요 특징은 다음과 같다.

 

•        An in-order issue, super-scalar pipeline with dynamic branch prediction.
•        The ARMv7-M Thumb instruction set, defined in the ARM®v7-M Architecture Reference Manual.
•        Banked Stack Pointer (SP).
•        Handler and Thread modes.
•        Thumb and Debug states.
•        Automatic processor state saving and restoration for low-latency Interrupt Service Routine (ISR) entry and exit.
•        Low-latency interrupt processing achieved by:
—      A Nested Vectored Interrupt Controller (NVIC) closely integrated with the processor.
—     Supporting exception continuable instructions, such as LDM, LDMDB, STM, STMDB, PUSH, POP and VLDM,                   VSTM, VPUSH, VPOP if the processor has the Floating Point Unit (FPU).
•        A low-cost debug solution with the optional ability to: 

—     Implement breakpoints.
—     Implement watchpoints, tracing, and system profiling.
—     Support printf() style debugging through an Instrumentation Trace Macrocell (ITM).
—     Bridge to an off-chip Trace Port Analyzer (TPA).
•        Support for an optional ETM. See the ARM® CoreSight™ ETM-
•        A memory system, which includes an optional MPU and Harvard data and instruction cache with ECC.
•        An optional Floating Point Unit (FPU).

 

정말 많은 특징들이 존재한다... 아직은 대부분이 이해되지 않지만 앞으로 공부해가며 기록해보겠다 :)

 


출처 : ARM Cortex-M7 Processor Technical Reference Manual 문서, ARM

        http://www.jkelec.co.kr/img/lecture/arm_arch/arm_arch_2.html#1 , JK electronics

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기