ARM에서 지원하는 7가지 동작모드

 

1. User 모드

태스크나 애플리케이션을 실행할 때의 동작모드이다.
비특권모드(Unprivileged)
메모리, I/O 장치와 같은 시스템 자원을 사용하는데 제한이 있다.

 

2. IRQ(Interrupt Request) 모드
인터럽트 요청에 대한 동작모드이다.
하 드웨어적인 외부장치의 요청에 의해 IRQ가 발생하면 IRQ 모드로 전환하고
인터럽트를 처리한다.

 

3. FIQ( Fast Interrupt Request) 모드
빠른 인터럽트 처리를 하는 모드이다.
하드웨어적인 외부장치의 요청에 FIQ가 발생하고 FIQ 모드로 전환하고
인터럽트를 처리한다.

 

4. SVC(Supervisor) 모드
대부분의 시스템 자원을 자유롭게 관리할 수 있는 동작모드이다.
운영체제의 커널이나 디바이스 드라이버를 처리할 때 사용되는 동작모드다.
ARM은 리셋신호가 입력되거나 소프트웨어 인터럽트(SWI)가 사용되면
SVC모드로 전환된다.

 

5. Abort 모드
메모리에서 명령을 읽거나 데이터를 읽고 쓸때 오류가 발생하면 Abort 모드로
전환하여 메모리 오류를 처리한다. MMU나 MPU, 기타 외부 메모리 제어기로부터
발생하는 Abort신호에서 동작한다.

 

6. Undefined 모드
명령어를 읽어 처리할 때 디코더에 정의되어 있지 않을 경우 발생하는 오류를
처리하기 위한 동작모드이다.

 

7. System 모드
특권(privilege) 모드라는 점을 제외하고는 User모드와 동일한 동작모드이다.

 


ARM은 User 모드와 System 모드는 소프트웨어적인 요청에 의해서만 전환이 되며
그외 다른 동작모드는 소프트웨어적인 요청이나 외부의 요청 혹은
오류에 의해 모드가 전환된다.

출처 : http://blog.naver.com/serimo/50091036891

+ Recent posts