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
Categoria Descrizione Esempi principali Status Registers Stato generale della CPU e privilegi mstatus, sstatus, ustatusTrap Handling Gestione di trap e ritorni mepc, sepc, mcause, scause, stvec, mtvec, mret, sretInterrupt Control Abilitazione e gestione interrupt mie, mip, sie, sipException Info Diagnostica di eccezioni mtval, stvalMemory/VM Config Configurazione della memoria virtuale satp, medeleg, medelegTimer & Performance Timer, contatori e benchmarking cycle, time, instret, mtimecmpDebug & Misc Debug, identificazione core, versioni dcsr, mhartid, mvendorid
CLASSIFICAZIONE PER PRIVILEGIO
Livello Chi può accedere CSR tipici M-mode Solo firmware/hypervisor mstatus, mepc, mcause, mtvec, mie, mip, misa, mhartid, satpS-mode OS Kernel sstatus, sepc, scause, stvec, sie, sip, stval, satpU-mode Programmi utente Solo CSR limitati (se supportati), es. ustatus, cycle
TRAP/EXCEPTION HANDLING
CSR Modalità Contenuto Scopo principale mepcM PC al momento della trap Ripresa esecuzione (mret) mcauseM Codice della causa della trap Identificare tipo di trap (eccezione o int) mtvecM Indirizzo di routine trap (direct/vect) Salto al gestore trap mtvalM Valore legato alla trap (indirizzo/istr.) Diagnostica sepcS PC dell’istruzione che ha causato la trap Ripresa esecuzione (sret) scauseS Codice della causa della trap Identificazione e routing stvecS Routine trap per trap gestite in S-mode Salto gestore kernel stvalS Valore legato alla trap Diagnostica
SOTTOSISTEMA INTERRUPT
CSR Descrizione Modalità mieAbilitazione interrupt in M-mode M mipInterrupt pendenti in M-mode M sieAbilitazione interrupt in S-mode S sipInterrupt pendenti in S-mode S
MEMORIA E VIRTUALIZZAZIONE
CSR Descrizione Modalità satpPaginazione e configurazione memoria virtuale S (o M) medelegDelegazione eccezioni da M a S M midelegDelegazione interrupt da M a S M
CSR Descrizione Modalità cycleConta i cicli della CPU Tutte* timeTimer (può essere delegato da M) Tutte* instretConta le istruzioni ritirate Tutte* mtime, mtimecmpTimer per interrupt temporizzati M
ISTRUZIONI PER ACCESSO AI CSR
Istruzione Effetto csrr rd, csrLegge il CSR csrw csr, rs1Scrive nel CSR csrrwLegge e scrive (scambia) csrs, csrcSet / clear bit specifici