본문 바로가기

RISC-V/Privilege Mode

[RISC-V] Privilege Mode(권한 모드)를 왜 잘 알아야 할까

RISC-V 프로세서와 관련된 세미나를 진행할 때 입문자들은 종종 다음과 같은 질문을 합니다.

 

RISC-V 아키텍처에서 가장 중요한 기능이 무엇인가요?

 


이 질문에 저는 "RISC-V 아키텍처에서 정의된 권한 모드(Privilege Mode)가 가장 중요하다"라고 답합니다. 그 이유는 무엇일까요? 다음과 같이 요약할 수 있습니다.

  • 익셉션이 유발되면 권한 모드가 바뀌므로 익셉션의 동작 원리를 이해하려면 권한 모드를 알아야 한다.
  • CSR(Control Status Regiser) 레지스터를 제대로 이해하려면 권한 모드를 알아야 한다.
  • 어셈블리 명령어의 동작 원리를 파악하려면 권한 모드를 알아야 한다.

익셉션과 레지스터를 비롯한 RISC-V 아키텍처의 많은 기능은 권한 모드 기반 위에서 설계돼 있어 권한 모드를 이해하는 것이 중요합니다.

 

이 의견을 듣고 입문자들이 권한 모드를 공부하기 시작합니다. 그런데 기계적으로 스펙의 내용을 제대로 이해하지 못한 채 억지로 암기하는 모습을 많이 봤습니다. RISC-V에서 정의된 권한 모드를 효과적으로 배우는 방법은 무엇일까요? 다음과 같은 질문을 던지고 답을 찾는 과정을 거치면 공부한 내용이 머릿속에 더 오랫동안 남을 것입니다.

  • 권한 모드는 어떻게 바뀔까?
  • 권한 모드가 바뀌면 이전 권한 모드는 어떻게 확인할까?
  • 이전 권한 모드로는 어떻게 복귀할까?
  • 권한 모드를 활용해 운영체제 커널은 어떻게 구현돼 있을까?

 

위와 같은 질문을 스스로 던지면서 프로그래밍하고 관련 코드를 분석하면 여러분이 작성한 코드가 어떤 권한 모드로 실행되는지 더 잘 이해할 수 있을 것입니다.

 



앞으로 업데이트할 포스트에서는 RISC-V 아키텍처의 권한 모드를 소개하고 권한 모드와 관련된 레지스터를 소개합니다.

'RISC-V > Privilege Mode' 카테고리의 다른 글

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