Rocket Chip
Awesome RISC-V

Rocket Chip

RISC-V-Ökosystem

Rocket Chip erzeugt In-Order-RISC-V-Kerne und vollständige Systems-on-Chip aus Chisel-Quellcode. SiFive stützte seine ersten kommerziellen Kerne darauf, und Chipyard verwendet es als Grundlage für seine Designs.

Übersicht

Rocket Chip ist ein Generator für RISC-V-Systeme auf einem Chip. Ein System auf einem Chip ist ein einzelner Chip, der Prozessorkerne zusammen mit Caches, Speichercontrollern und Verbindungen zu anderen Geräten enthält. Ein Generator ist ein Programm, das aus einer Reihe von Parametern einen Hardwareentwurf erzeugt, sodass derselbe Code einen kleinen Single-Core-Entwurf oder einen großen Multi-Core-Entwurf ausgeben kann.

Sein Hauptkern, Rocket, arbeitet in-order, was bedeutet, dass er Befehle in der Reihenfolge ausführt, in der das Programm sie auflistet. Rocket hat eine fünfstufige Pipeline, eine Anordnung, bei der jeder Befehl fünf Schritte durchläuft und mehrere Befehle gleichzeitig in Bearbeitung sind. Er implementiert den 64-Bit-RISC-V-Befehlssatz mit einer Speicherverwaltungseinheit, der Hardware hinter dem virtuellen Speicher, sodass er Linux booten kann. Der Entwurf ist in Chisel geschrieben, einer Hardware-Konstruktionssprache, die auf der Programmiersprache Scala aufbaut.

Verlauf

Rocket Chip stammt von der UC Berkeley, von der Gruppe, die den RISC-V-Befehlssatz entworfen hat. Krste Asanović und Kollegen beschrieben ihn im technischen Bericht „The Rocket Chip Generator“ von 2016, und Berkeley baute damit viele Forschungs-Chips.

SiFive, ein von den Schöpfern von RISC-V gegründetes Unternehmen, stützte seine ersten kommerziellen Kerne auf Rocket. Die CHIPS Alliance, eine Open-Hardware-Gruppe der Linux Foundation, hostet das Projekt heute.

Wo es verwendet wird

Die meisten Nutzer erreichen Rocket über Chipyard, ein Framework, das Rocket, BOOM und andere Blöcke zu vollständigen Chips kombiniert. Chipyard führt diese Chips in Softwaresimulation, auf FPGAs oder über Fertigungswerkzeuge aus. Ein FPGA ist ein Chip, der so rekonfiguriert werden kann, dass er sich wie eine andere Schaltung verhält, und Forscher nutzen ihn, um ein Design vor der Fertigung mit echter Geschwindigkeit zu testen.

Quellen

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