임베디드

ARM Exception Level(EL) 알아보기(1): EL의 개념과 EL0~EL1 분석

embeddedworld 2025. 3. 18. 12:32

ARM 아키텍처를 다룰 때 Exception Level(EL) 개념을 이해하는 것은 필수적이다. EL은 CPU의 실행 권한을 계층적으로 나누는 설계 방식으로, 운영체제(OS), 하이퍼바이저, 보안 펌웨어 등이 각자의 역할에 맞게 동작할 수 있도록 한다.

이번 글에서는 ARM의 EL 구조를 개괄적으로 살펴보고, EL0(사용자 모드)와 EL1(커널 모드)에 집중하여 설명하겠다.



1. Exception Level(EL) 개요


ARM 아키텍처(AArch64)에서는 총 4개의 Exception Level(EL0~EL3)을 제공하며, 숫자가 클수록 높은 권한을 갖는다.






2. EL0 – 사용자 모드 (User Mode)


EL0는 애플리케이션이 실행되는 공간으로, 직접 하드웨어 리소스에 접근할 수 없다.
운영체제(OS)가 제공하는 시스템 호출(System Call, SVC)을 통해 EL1 커널과 통신해야 한다.
예시: Android/iOS 앱, 웹 브라우저, 터미널 프로세스 등

<EL0에서 EL1으로 시스템 호출하는 과정>
1. 애플리케이션이 read() 같은 시스템 호출을 실행
2. SVC(Supervisor Call) 명령어를 사용하여 EL1으로 진입
3. EL1(커널)이 요청을 처리한 후 EL0로 다시 반환

<EL0에서 EL1로의 전환 예제 (Assembly)>

mov x8, #64  // 시스템 호출 번호 (예: getpid)
svc #0       // EL1으로 진입

svc #0 명령어를 실행하면 EL0 → EL1으로 전환되어 커널에서 시스템 호출을 처리함



3. EL1 – 커널 모드 (Kernel Mode)


EL1은 운영체제 커널이 실행되는 공간으로, EL0의 요청을 처리하며 메모리 관리, 스케줄링, 인터럽트 처리를 수행한다.
예시: Linux, FreeBSD, RTOS 등

<EL1의 주요 역할>
• 가상 메모리(Virtual Memory) 관리
• 스케줄링 및 프로세스 격리
• 인터럽트 및 예외(Exception) 처리

EL1은 EL0 프로세스를 보호하고 제어하는 역할을 하므로, EL0가 허용되지 않은 동작(예: 메모리 침범)을 시도하면 이를 감지하고 종료할 수 있다.



4. 결론


ARM 시스템에서는 EL0(사용자 모드)와 EL1(커널 모드)가 핵심적인 역할을 수행하며,
• EL0는 애플리케이션이 실행되는 공간
• EL1은 OS 커널이 실행되며 EL0 프로세스를 관리

다음 글에서는 EL2(하이퍼바이저 모드)와 EL3(보안 모드)를 살펴보겠다.