Elegantes RISC-V-Design

Die dritte große Prozessorarchitektur kommt • • Autor: Michal Rybka

Die Eleganz des RISC-V-Designs liegt nicht nur darin, dass es sich um eine offene Architektur handelt, sondern dass von Anfang an mit Modularität geplant wurde. Wer sich fragt, was ist ein Prozessor oder was ist CPU, findet hier ein gutes Beispiel dafür, wie unterschiedlich moderne Prozessorarchitekturen aufgebaut sein können. Während x86 mehr als tausend Befehle und ARM Hunderte davon hat, umfasst das minimale RISC-V-Design insgesamt nur 40 Befehle, wobei der Hersteller, falls er mehr benötigt, Befehlserweiterungen (Extensions) verwendet. Ein CPU Vergleich zeigt deshalb nicht nur Unterschiede bei der Leistung, sondern auch bei Aufbau, Befehlssatz und Flexibilität.

Skizze eines Mainboards

Minimale Befehlsbasis

Der minimale Befehlskern (die Befehlsbasis) selbst ist winzig und unterstützt Mathematik nur in ganzzahliger Form (Integer). Für einen modernen Prozessor beziehungsweise eine CPU ist diese Reduktion ein grundlegender Bestandteil des RISC-V-Konzepts. Die Spezifikation unterscheidet vier verschiedene Befehlsbasen: RV32I, RV32E, RV64I und RV128I, wobei das „I“ genau für die ganzzahlige Mathematik (Integer) steht und die Zahl die Breite des Adressbusses angibt, die 32, 64 oder in Zukunft auch 128 Bit betragen kann (die Notwendigkeit, Speicherbusse mit einer Breite von mehr als 64 Bit zu verwenden, wird um das Jahr 2030 erwartet). RV32E ist ein speziell für Mikrocontroller (Embedded) entwickeltes Design, das noch weiter verkleinert ist und statt 32 Arbeitsregistern nur 16 besitzt und auch keine Timer unterstützen muss: Das Ziel ist wirklich nur das absolute Minimum, damit die Entwickler von Controllern nur die Funktionen hinzufügen können, die sie wirklich benötigen. 

System der Erweiterungen und Flexibilität

Die Basen verleihen den Prozessoren wirklich nur absolute Grundfunktionen, die durch Erweiterungen (Extensions) ergänzt werden sollen. In einem Prozessor Vergleich ist genau diese Erweiterbarkeit ein wichtiges Unterscheidungsmerkmal gegenüber anderen Architekturen. Die Erweiterungen werden durch Buchstaben spezifiziert, die ihre Bedeutung ausdrücken: F steht für Befehle zur Arbeit mit Gleitkommazahlen (Floating Point), D für Berechnungen mit doppelter Genauigkeit (Double-precision Floating Point) und Q für die Arbeit mit vierfacher Genauigkeit (Quad-precision Floating Point). Einige dieser Erweiterungen sind bereits abgeschlossen (frozen), über andere wird noch verhandelt und einige Erweiterungen sind für zukünftige Ausbauten vorbereitet, beispielsweise ist die Erweiterung J für die zukünftige Unterstützung dynamisch kompilierter Sprachen vorgesehen. Neben diesen offen spezifizierten Erweiterungen (Standard Extensions) kann ein konkretes Prozessormodell noch seine eigenen atypischen Befehle (Non-Standard Extensions) haben, die „hochspezialisiert sein und mit anderen Erweiterungen kollidieren können“. Diese Erweiterungen kann sich jeder Hersteller für seine eigene Nutzung maßschneidern.

Jeder RISC-V-Prozessor ist in der Lage, dem Programm mitzuteilen, welche Erweiterungen er unterstützt. Im Falle bereits abgeschlossener (frozen) Erweiterungen bedeutet die Unterstützung für die jeweilige Erweiterung, dass der Prozessor alle Befehle aus dieser Klasse unterstützen muss. Falls das Programm dem Prozessor einen Befehl sendet, den dieser nicht verarbeiten kann (Illegal Instruction, Unsupported Instruction), tritt eine Ausnahme (Trap) auf, die das Betriebssystem lösen kann, indem es das inkompatible Programm beendet, es kann den betreffenden nicht unterstützten Befehl aber auch in Software emulieren. Die Emulation fehlender Befehle ist zwar langsam, kann aber in vielen Anwendungen sinnvoll sein. Für einen CPU Vergleich oder Prozessor Vergleich sollte deshalb nicht nur die reine Taktfrequenz betrachtet werden, sondern auch, welche Befehlserweiterungen eine CPU tatsächlich unterstützt.

Philosophie „von unten nach oben“

Die Spezifikation ist also „von unten nach oben“ entworfen und „ist flexibel erweiterbar“, was das genaue Gegenteil der Philosophie anderer Architekturen ist, bei denen typischerweise nur immer mehr Befehle hinzugefügt und wirklich nur selten Befehle entfernt werden. Ein weiterer Unterschied besteht darin, dass bei aktuellen Systemen der Prozessorarchitekt die Befehle bestimmt und der Hersteller die Architektur meistens so anpasst, dass er seine eigenen weiteren Dinge hinzufügt. Bei RISC-V kann der Hersteller eines konkreten Prozessors oder Mikrocontrollers die gesamte Architektur von Grund auf komplett selbst entwerfen – und muss niemanden um Erlaubnis bitten. Damit unterscheidet sich ein RISC-V-Prozessor deutlich von vielen klassischen CPU-Designs.

Die gesamte Spezifikation des Befehlssatzes (User Level ISA) steht kostenlos auf der Website risc.org zum Download zur Verfügung. Wer verstehen möchte, was ein Prozessor technisch ausmacht oder worauf es bei einem CPU Vergleich ankommt, findet in der RISC-V-Spezifikation zahlreiche Details zu Befehlen, Registern und Erweiterungen.

i

Spezifikation des Befehlssatzes

Michal Rybka

Michal Rybka

Michal Rybka ist Publizist und Enthusiast mit 20 Jahren Erfahrung in den Bereichen IT und Gaming. Er ist Kurator des AlzaMuseums und des YouTube-Kanals AlzaTech. Er hat mehrere Fantasy- und Science-Fiction-Kurzgeschichten verfasst, die in Buchform erschienen sind, und berichtet regelmäßig freitags für das Online-Magazin PCTuning.