RISC-V è un’architettura modulare, il che significa che è costituita da un set base di istruzioni a cui si possono aggiungere estensioni opzionali per supportare funzionalità specifiche.


SET DI BASE

Ogni implementazione RISC-V deve supportare almeno uno dei seguenti set base:

  • RV32I → Set di istruzioni Intero a 32 bit.
  • RV64I → Set di istruzioni Intero a 64 bit.
  • RV128I → Set di istruzioni Intero a 128 bit (sperimentale).

Le versioni base (I = Integer) includono operazioni aritmetiche, logiche, di controllo di flusso, load/store e gestione del salto.


ESTENSIONI STANDARD

Le estensioni standard sono definite dalla RISC-V Foundation e aggiungono funzionalità specializzate.

EstensioneDescrizione
M (Multiplication)Aggiunge istruzioni per la moltiplicazione e divisione intera (MUL, DIV, REM).
**A **(Atomic)Introduce istruzioni atomiche (LR/SC, AMOSWAP, AMOADD…) utili per la sincronizzazione nei sistemi multiprocessore.
F (Floating-Point)Supporto per numeri in virgola mobile a precisione singola (32 bit, IEEE 754).
D (Double Floating-Point)Supporto per numeri in virgola mobile a doppia precisione (64 bit, IEEE 754).
C (Compressed)Aggiunge istruzioni compatte a 16 bit, riducendo il consumo di memoria e migliorando l’efficienza energetica.
Zicsr (Control and Status Register)Gestione dei registri CSR (usati per configurazione e gestione delle eccezioni).
Zifencei (Instruction-Fetch Fence)Sincronizzazione tra accessi alla memoria e fetch delle istruzioni (importante per la coerenza nei processori con pipeline).
L’estensione G (General purpose) include tutte le estensioni standard.