Rocket Chip
Awesome RISC-V

Rocket Chip

Écosystème RISC-V

Rocket Chip génère des cœurs RISC-V in-order et des systèmes sur puce complets à partir du code source Chisel. SiFive a basé ses premiers cœurs commerciaux dessus, et Chipyard l'utilise comme base pour ses conceptions.

Aperçu

Rocket Chip est un générateur de systèmes sur puce RISC-V. Un système sur puce est une puce unique qui regroupe des cœurs de processeur ainsi que des caches, des contrôleurs mémoire et des connexions vers d'autres dispositifs. Un générateur est un programme qui produit une conception matérielle à partir d'un ensemble de paramètres, de sorte que le même code peut produire une petite conception monocœur ou une grande conception multicœur.

Son cœur principal, Rocket, est à exécution dans l'ordre, ce qui signifie qu'il exécute les instructions dans l'ordre où le programme les liste. Rocket dispose d'un pipeline à cinq étages, une organisation dans laquelle chaque instruction passe par cinq étapes et plusieurs instructions sont en cours en même temps. Il implémente le jeu d'instructions RISC-V 64 bits avec une unité de gestion mémoire, le matériel derrière la mémoire virtuelle, ce qui lui permet d'amorcer Linux. La conception est écrite en Chisel, un langage de construction matérielle construit sur le langage de programmation Scala.

Historique

Rocket Chip vient de l'UC Berkeley, du groupe qui a conçu le jeu d'instructions RISC-V. Krste Asanović et ses collègues l'ont décrit dans le rapport technique de 2016 « The Rocket Chip Generator », et Berkeley a construit de nombreuses puces de recherche avec.

SiFive, une entreprise fondée par les créateurs de RISC-V, a basé ses premiers cœurs commerciaux sur Rocket. CHIPS Alliance, un groupe de matériel ouvert de la Linux Foundation, héberge désormais le projet.

Où il est utilisé

La plupart des utilisateurs accèdent à Rocket via Chipyard, un framework qui combine Rocket, BOOM et d'autres blocs en puces complètes. Chipyard exécute ces puces en simulation logicielle, sur des FPGA ou via des outils de fabrication. Un FPGA est une puce qui peut être reconfigurée pour se comporter comme un circuit différent, et les chercheurs l'utilisent pour tester une conception à vitesse réelle avant la fabrication.

Sources

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