L’architettura RISC‑V definisce tre modalità di privilegio hardware, una in più rispetto ad allo standard. Le modalità definite da RISC-V sono:
MACHINE MODE (M-MODE)
È la modalità con massimo privilegio, in cui opera il firmware.
Responsabilità:
- inizializzazione dell’hardware
- configurazione delle trap e delega verso S‑mode
- gestione dei timer e interrupt a livello macchina
- gestione dei CSR di livello Machine
- passaggio al Supervisor mode
Accesso:
- a tutti i registri CSR
- alla memoria fisica senza restrizioni
- a tutte le istruzioni privilegiate
SUPERVISOR MODE (S-MODE)
È la modalità in cui opera il kernel del sistema operativo.
Responsabilità:
- gestione della memoria virtuale
- gestione delle trap tramite
stvec,sepc,scause,stval - gestione dei processi in U‑mode
- gestione delle system call (
ecallda U‑mode) - gestione dei driver
Accesso:
- ai CSR di livello Supervisor
- alle istruzioni privilegiate necessarie al kernel
- alla memoria virtuale del kernel
USER MODE (U-MODE)
È la modalità con minimo privilegio.
Caratteristiche:
- esecuzione delle applicazioni utente
- accesso limitato ai registri generali (
x0–x31) - accesso alla propria memoria virtuale
- nessun accesso diretto all’hardware
- nessuna istruzione privilegiata
Può generare trap tramite:
ecall→ richiesta di system callebreak→ breakpoint per debugger