In RISC-V, i CSR (Control and Status Registers) sono registri speciali interni alla CPU, usati per: controllare il comportamento del processore (status, interrupt, ecc.), gestire il passaggio tra modalità di privilegio (U/S/M), osservare o configurare lo stato della CPU.


CLASSIFICAZIONE PER FUNZIONE

CategoriaDescrizioneEsempi principali
Status RegistersStato generale della CPU e privilegimstatus, sstatus, ustatus
Trap HandlingGestione di trap e ritornimepc, sepc, mcause, scause, stvec, mtvec, mret, sret
Interrupt ControlAbilitazione e gestione interruptmie, mip, sie, sip
Exception InfoDiagnostica di eccezionimtval, stval
Memory/VM ConfigConfigurazione della memoria virtualesatp, medeleg, medeleg
Timer & PerformanceTimer, contatori e benchmarkingcycle, time, instret, mtimecmp
Debug & MiscDebug, identificazione core, versionidcsr, mhartid, mvendorid

CLASSIFICAZIONE PER PRIVILEGIO

LivelloChi può accedereCSR tipici
M-modeSolo firmware/hypervisormstatus, mepc, mcause, mtvec, mie, mip, misa, mhartid, satp
S-modeOS Kernelsstatus, sepc, scause, stvec, sie, sip, stval, satp
U-modeProgrammi utenteSolo CSR limitati (se supportati), es. ustatus, cycle

TRAP/EXCEPTION HANDLING

CSRModalitàContenutoScopo principale
mepcMPC al momento della trapRipresa esecuzione (mret)
mcauseMCodice della causa della trapIdentificare tipo di trap (eccezione o int)
mtvecMIndirizzo di routine trap (direct/vect)Salto al gestore trap
mtvalMValore legato alla trap (indirizzo/istr.)Diagnostica
sepcSPC dell’istruzione che ha causato la trapRipresa esecuzione (sret)
scauseSCodice della causa della trapIdentificazione e routing
stvecSRoutine trap per trap gestite in S-modeSalto gestore kernel
stvalSValore legato alla trapDiagnostica

SOTTOSISTEMA INTERRUPT

CSRDescrizioneModalità
mieAbilitazione interrupt in M-modeM
mipInterrupt pendenti in M-modeM
sieAbilitazione interrupt in S-modeS
sipInterrupt pendenti in S-modeS

MEMORIA E VIRTUALIZZAZIONE

CSRDescrizioneModalità
satpPaginazione e configurazione memoria virtualeS (o M)
medelegDelegazione eccezioni da M a SM
midelegDelegazione interrupt da M a SM

CONTATORI TEMPORALI E PERFORMANCE

CSRDescrizioneModalità
cycleConta i cicli della CPUTutte*
timeTimer (può essere delegato da M)Tutte*
instretConta le istruzioni ritirateTutte*
mtime, mtimecmpTimer per interrupt temporizzatiM

ISTRUZIONI PER ACCESSO AI CSR

IstruzioneEffetto
csrr rd, csrLegge il CSR
csrw csr, rs1Scrive nel CSR
csrrwLegge e scrive (scambia)
csrs, csrcSet / clear bit specifici