Spike
Awesome RISC-V

Spike

Ecosistema RISC-V

Spike è il simulatore di riferimento per il set di istruzioni RISC-V, mantenuto da RISC-V International.

Panoramica

Spike è il simulatore di riferimento per il set di istruzioni RISC-V. Un simulatore è un programma che imita un processore. Altre implementazioni confrontano il proprio comportamento con un simulatore di riferimento, quindi un team che sviluppa un nuovo chip RISC-V esegue lo stesso programma sul proprio design e su Spike e verifica che entrambi terminino con gli stessi registri e la stessa memoria.

Spike modella gli hart, abbreviazione di thread hardware. Un hart è un'unità all'interno di un processore che esegue il proprio flusso di istruzioni. Spike copre i set di istruzioni di base a 32 bit e 64 bit e le estensioni standard, inclusi i vettori. Copre inoltre le modalità di privilegio machine, supervisor e user su cui si basano i sistemi operativi.

Cronologia

Spike è stato scritto alla UC Berkeley, dove il set di istruzioni RISC-V è stato progettato a partire dal 2010, e il suo repository pubblico risale al 2011. Il nome deriva dal golden spike conficcato nel 1869 per segnare il completamento della prima ferrovia attraverso gli Stati Uniti.

RISC-V International ora mantiene Spike nella sua organizzazione software su GitHub. Le nuove estensioni di solito raggiungono Spike presto, spesso mentre le loro specifiche sono ancora bozze, così gli sviluppatori di hardware e di compilatori hanno un modello su cui testare.

Dove viene utilizzato

Spike è uno strumento da riga di comando per gli ingegneri. I team hardware lo usano per verificare i loro progetti, e gli sviluppatori di compilatori lo usano per testare il codice generato. Esegue normali programmi C compilati per RISC-V, con l'aiuto del proxy kernel, un piccolo programma che inoltra le chiamate di sistema dal programma simulato al computer host.

Fonti

  1. riscv-isa-sim README