포스트

임베디드 스터디 - ARM CPU

임베디드 스터디 - ARM CPU

이번 글 참고자료:
임베디드 레시피

ARM 아키텍처

  • Advanced RISC Machine이란 명칭으로, RISC 기반 아키텍처임

시리즈 구분

계열의미주요 용도
Cortex-MMicrocontroller저전력 장치
Cortex-AApplication리눅스 실행 가능 고성능 장치
Cortex-RRealtime실시간성 보장(Hard Realtime), 고신뢰성 장치
  • Cortex-R의 실시간성은 정해진 시간에 응답을 보장하는 결정론적(Determistic) 동작 특성을 의미함

버전 구분

  • ARMv4 : THUMB ISA 지원
    • THUMB : 32bit 아키텍처에서 사용되는 16bit ISA
    • 단순한 명령어는 16bit로 구성하여 코드 밀도(Code Density)를 보완
  • ARMv5 : Jazella, VFPv2 ISA 지원
  • ARMv6 : TrustZone 추가, THUMB-2, SIMD ISA 지원
  • ARMv7 : Advanced SIMD(NEON), VFPv3/v4 ISA 지원
  • ARMv8 : 64비트 ISA 추가, 32비트 ISA 지원
    • 레지스터 수 변화(R0~R15 → X0~X30)와 주소 공간 확장

ARM 동작 모드

  • USR(User) : Application Program을 실행하는 모드. Normal Mode라고도 함
  • Privileged mode : 관리자 모드로, 총 6개로 구분된다.
    • SYS(System) : Run privileged operating system tasks
    • SVC(Supervisor) : 보호 모드. 일반 컴퓨터의 보호 모드와 유사하다.
    • ABT(Abort) : 메모리 접근 오류가 발생할 때 사용하는 모드
    • UND(Undefined) : 잘못된 명령어가 발생할 때 사용하는 모드
    • IRQ(Interrupt Request) : Interruption 발생 시 사용하는 모드
    • FIQ(Fast Interrupt Request) : 최우선순위 Interrupt 발생 시 사용하는 모드
  • Privileged mode끼리, 그리고 Normal mode로 전환이 가능하지만, Normal mode에서 Priviledged mode으로 전환은 안된다.

AAPCS(ARM Architecture Procedure Call Standard)

  • ARM 아키텍처의 함수 호출 규약
    • 함수 호출 시 입력 인자 4개까지는 R0~R3 레지스터에 순서대로 담아 전달하고, 5번째 인자부터는 스택을 통해 전달한다
    • 함수 구현 시 입력 인자를 4개 이하로 맞추는 게 성능 면에서 유리하다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.