오늘 ARM Processor Mode에 대해 알아보겠습니다.
ARM 프로세스는 7개의 동작 모드가 있고, 동작 모드는 프로세서가 어떠한 권한을 가지고 어떠한 일을 처리하고 있는지 나타내는 Processor의 동작 상태를 말합니다.
각각의 8개의 모드는 따로 SP를 갖고 있고 아래와 같습니다.
위 표에 표시된 우측의 5bit 데이터는 CPSR이라는 SR내에 저장된 데이터입니다. CPSR은 현재 MODE의 상태를 저장하고 있는데, 그중 우측 5bit가 각 모드의 정보를 갖고 있습니다.
또한 System, USER, SVC Mode가 상호 모드 전환 간의 명확한 정의가 필요합니다.
USER Mode는 os상에 올라가는 Application의 수행 시, OS는 기본적으로
System Mode이며, OS나 Application이 시스템 자원(I/O 등의 장치)을 사용할때에는 SVC MODE로 전환 후 사용합니다.
이떄, SVC Mode로 전환되어 시스템 자원을 사용할 권한을 얻는 것을 OS에서는 System call이라 말합니다. OS에서 Application에 필요한 메모리 공간과 OS의 실행에 따른 메모리 공간을 분리시켜 관리합니다. Application에서 접근 권한이 없는 시스템 자원에 접근하게 허용하기 위해 운영체제는 프로세서가 제공하는 Mode 전환을 System call Function으로 정의하여 개발자에게 제공합니다.
ARM Core의 default Mode는 SVC Mode이며, SVC에서 출발하여 Boot up시 ARM Core에 대한 모든 권한을 행사할 수 있어야 하기 때문입니다.