RISC-V Instruction Set

RISC-V sta per Reduced Instruction Set Computer, l'obiettivo di RISC è:

  • costruire un hardware semplice
  • compilatori efficienti
  • massimizzare le prestazioni
  • minimizzare i costi
  • minimizzare il consumo energetico
    Caratteristica fondamentale è il fatto che RISC è uno standard aperto: open source.
    L'ISA (instruction set di RISC) è semplice e può essere esteso. Le specifiche di RISC possono essere adattate a diversi dispositivi.

RISC-V non è:

  • UNA CPU
  • UN'AZIENDA

RISC-V ha:

  • 32 registri per gli interi
  • 32 registri per i numeri in virgola mobile
  • Program Counter
  • 4096 control status registers
  • Memoria centrale
    Pasted image 20230312172340.png

I registri per gli interi sono indicati con x0, x1, ..., x31. Ogni registro ha una dimensione di 64 bit.
Il registro x0 contiene sempre il valore 0.
Gli altri registri hanno delle funzioni prestabilite:
Pasted image 20230312172512.png

Tipologie di istruzioni:

Il linguaggio macchina assembler fornisce una rappresentazione comprensibile dagli esseri umani. Tuttavia, il calcolatore può eseguire istruzioni rappresentate come sequenze di bit. RISC-V definisce diversi formati di istruzioni che consentono di codificare in binario ogni istruzione assembler. Ogni istruzione RISC-V richiede esattamente 32 bit per la sua rappresentazione in binario. Una sequenza di istruzioni in linguaggio macchina viene chiamata codice macchina.

Le istruzioni RISC-V possono avere diversi formati in base al tipo di istruzione che rappresentano:

  • Formato di tipo R (registro): usato per rappresentare le operazioni effettuate sui registri, come la somma, la sottrazione, l'and, l'or, lo xor, ...
  • Formato di tipo I (immediate): usato per rappresentare le operazioni che richiedono il caricamento dalla memoria o una costante, come load, addi, andi, ori, ...
  • Formato di tipo S (store): usato per rappresentare le operazioni che richiedono il salvataggio in memoria o una costante come store

Ecco una panoramica sulle istruzioni del RISC-V:
Pasted image 20230318182306.png

Premesse queste nozioni adesso possono essere affrontate le argomentazioni che riguardano le Istruzioni logiche e le istruzioni condizionali. Avere, in RISC-V, istruzioni a 32 bit semplifica l'hardware, tuttavia ci sono casi in cui sarebbe utile avere una costante o un indirizzo a 32 bit. Sebbene le costanti molto spesso sono piccole e possono trovare spazio all'interno del campo a 12 bit a loro assegnato (campo immediate nei formati I e S), qualche volta possono essere più grandi. La soluzione che adotta RISC-V è data dal funzionamento di una particolare istruzione lui.

In assembly è possibile anche scrivere delle procedure che non sono altro che le funzioni/metodi dei linguaggi di programmazione ad alto livello.