본문 바로가기

RISC-V/Privilege Mode

[RISC-V] Privilege level(PL) 이란

Privilege Mode를 이해하려면 Privilege level(PL)의 개념을 먼저 알아야 합니다. Privilege Mode는 PL의 기반 위에서 정의했기 때문입니다. 

Privilege level(PL)

사실 대부분 CPU 아키텍처에서 Privilege level(PL)를 정의합니다. Arm 아키텍처를 비롯한 인텔의 x86 아키텍처에서도 Privilege level이란 용어를 볼 수 있습니다. 그렇다면 Privilege level의 실체는 무엇일까요? 그 실체는 3가지로 분류할 수 있습니다:

 

  • 메모리 공간 접근 권한
  • 레지스터 접근 권한
  • 명령어 접근 권한

위에서 언급된 메모리 공간, 레지스터 및 명령어를 접근할 수 있는 권한 레벨을 부여할 수 있는데, 이것이 바로 Privilege level입니다. Privilege level에 대한 예시를 들겠습니다. Privilege level이 가장 높으면 아래와 같은 상황을 그릴 수 있네요.

 

  • 모든 메모리 공간에 접근할 수 있다. 
  • 모든 레지스터에 접근할 수 있다. 
  • 모든 명령어를 실행할 수 있다. 

 

Privilege level이 낮으면 낮을 수록 아래와 같은 조건으로 소프트웨어가 실행됩니다.

 

  • 메모리 공간을 접근하는데 제약이 있다.  
  • 특정 모든 레지스터에 접근할 수 없다. 
  • 특정 명령어를 실행할 수 없다. 

RISC-V 아키텍처에서도 Privilege level(PL)을 정의합니다. 가장 높은 privilege level은 PL3이고 가장 낮은 privilege level은 PL0로 정의합니다.

Privilege level(PL)의 개념을 알아봤으니 이제 Privilege 모드에 대해서 알아봐야 겠네요.