Rocket Chip
Awesome RISC-V

Rocket Chip

Ecosistema RISC-V

Rocket Chip genera core RISC-V in-order e sistemi completi su chip dal codice sorgente Chisel. SiFive ha basato i suoi primi core commerciali su di esso, e Chipyard lo utilizza come base per i suoi progetti.

Panoramica

Rocket Chip è un generatore di sistemi su chip RISC-V. Un sistema su chip è un singolo chip che contiene core del processore insieme a cache, controller di memoria e connessioni ad altri dispositivi. Un generatore è un programma che produce un progetto hardware a partire da un insieme di parametri, così lo stesso codice può produrre un piccolo progetto single-core o un grande progetto multi-core.

Il suo core principale, Rocket, è in-order, il che significa che esegue le istruzioni nell'ordine in cui il programma le elenca. Rocket ha una pipeline a cinque stadi, una disposizione in cui ogni istruzione passa attraverso cinque passaggi e più istruzioni sono in corso contemporaneamente. Implementa il set di istruzioni RISC-V a 64 bit con un'unità di gestione della memoria, l'hardware alla base della memoria virtuale, così può avviare Linux. Il progetto è scritto in Chisel, un linguaggio di costruzione hardware basato sul linguaggio di programmazione Scala.

Cronologia

Rocket Chip proviene dalla UC Berkeley, dal gruppo che ha progettato il set di istruzioni RISC-V. Krste Asanović e colleghi lo hanno descritto nel rapporto tecnico del 2016 "The Rocket Chip Generator", e Berkeley ha realizzato con esso molti chip di ricerca.

SiFive, un'azienda fondata dai creatori di RISC-V, ha basato i suoi primi core commerciali su Rocket. CHIPS Alliance, un gruppo di hardware aperto della Linux Foundation, ora ospita il progetto.

Dove viene utilizzato

La maggior parte degli utenti raggiunge Rocket tramite Chipyard, un framework che combina Rocket, BOOM e altri blocchi in chip completi. Chipyard esegue questi chip in simulazione software, su FPGA o tramite strumenti di produzione. Un FPGA è un chip che può essere riconfigurato per comportarsi come un circuito diverso, e i ricercatori lo usano per testare un progetto a velocità reale prima della produzione.

Fonti

  1. rocket-chip README
  2. The Rocket Chip Generator, UCB/EECS-2016-17