공부

ARM

기동3 2023. 6. 13. 17:28

Fetch: 메모리에서 명령어를 불러온다

Decode: 명령어 사용

Excute: ALU 연산 결과 저장

Interrupt: 비정기적으로 발생하는 이벤트. ARM에서는 Exception과 interrupt를 구별하지 않음


Operating Mode

 

1. Normal user : 모드 전환이 자유롭지 않다.

  (1) USR (User)

Task/Application 수행 동작 모드

시스템 리소스와 메모리에 권한 없는 액세스 가능

SVC 모드로 이동하기 위해 SWI (소프트웨어 인터럽트) 발생

 

2. Privileged Mode : 모드 전환이 자유롭다.

  (1). SVC (Supervisor)

시스템에 전원 공급되면 가장 먼저 진입하는 모드

시스템 자원 관리 동작 모드

커널이나 디바이스 드라이버 처리 사용

SWI로 진입 가능

USR과 같은 스택 사용

 

  (2) SYS (System)

USR과 같은 레지스터 -> USR과 다른 점은 Privileged

OS 커널작업 실행.

시스템 자원에 접근 가능

 

  (3) IRQ (Interrupt request)

외부 HW IRQ에 의해 진입, 인터럽트에 대한 후속 처리 수행

데이터 처리를 위한 정상적인 프로그램 흐름 끊음.

 

  (4) FIQ (Fast IRQ)

별도 레지스터 사용

IRQ보다 우선순위가 높고 Interrupt latency를 줄이기 위해 사용

 

  (5) ABT (Abort)

메모리 접근 등 오류 발생시 전환

스택 내용이 전달됨

비정상적인 동작으로 인한 프로그램 흐름 끊음

 

  (6) UND (Undefined instruction)

정의되지 않은 명령이 사용될 때 전환

 

 

내용 도움: https://duty-c.tistory.com/25