RISC-V – Befehlssatz-Architektur des 21. Jahrhunderts

| Autor / Redakteur: Richard Oed / Michael Eckstein

Teil-Menge: Mit RISC-V lassen sich Cores und Prozessoren entwickeln, die genau die Befehle enthalten, die für eine bestimmte Applikation nötig sind.
Teil-Menge: Mit RISC-V lassen sich Cores und Prozessoren entwickeln, die genau die Befehle enthalten, die für eine bestimmte Applikation nötig sind. (Bild: clipdealer)

Geringe Komplexität, leichte Programmierbarkeit und Zukunftssicherheit sprechen für RISC-V. Im zweiten Teil unserer RISC-V-Reihe erklären wir Besonderheiten beim Opcode- und Registeraufbau sowie bei der Adressierung, zeigen, welche Software-Tools die Technologie unterstützen – und verraten, welche RISC-V-Produkte bereits erhältlich sind.

RISC-V will Vieles besser machen als bisherige, primär kommerzielle Befehlssatzarchitekturen. Das ruft auch Branchengrößen wie Nvidia oder Western Digital auf den Plan. Beide haben angekündigt, Produkte auf RISC-V-Kerne zu migrieren. Nvidia plant demnach, seinen Falcon-Controller (FAst Logic CONtroller), der beispielsweise auf den GeForce-Grafikkarten zum Einsatz kommt, auf Basis von RISC-V neu zu designen. WD will in Zukunft gar komplett auf RISC-V setzen. Dadurch könnten schon in den nächsten Jahren hohe Stückzahlen an RISC-V-Kernen im Milliardenbereich auf den Markt gelangen.

Hier zeigt sich eine Stärke der Technologie: Mithilfe von RISC-V lassen sich Prozessoren gezielt für dedizierte Aufgaben auslegen, so dass sie keinen überflüssigen Befehls-Ballast schleppen müssen, der letztlich nicht benötigt wird. Hinzu kommt, dass die Architektur von Grund auf auf eine möglichst geringe Komplexität, leichte Programmierbarkeit und Zukunftssicherheit ausgelegt ist.

Wichtige Grundlagen der vielversprechenden Architektur beschreibt der erste Teil unserer Serie „Was ist RISC-V?“. Der zweite Teil erklärt Besonderheiten beim Opcode- und Registeraufbau sowie bei der Adressierung, und zeigt, welche Software-Tools die Technologie unterstützen und eigene RISC-V-Designs ermöglichen.

Kluge Opcodes sorgen für Zukunftssicherheit

Bei den Opcodes wurde auf genügend Platz für zukünftige Erweiterungen geachtet. So wird derzeit weniger als 1/8 des zur Verfügung stehenden Opcode-Felds im 32-Bit Befehlswort benutzt. Gleichzeitig wurden die Opcodes so ausgewählt, dass Befehle mit gemeinsamen Datenpfad-Operationen so viele Bitwerte wie möglich miteinander teilen. Dies vereinfacht die Dekodierlogik erheblich. Im Gegensatz zur 32-Bit ARM-Architektur sind in den meisten Opcodes keine Bits zur bedingten Ausführung von Befehlen vorhanden, was die Komplexität der Logik zusätzlich verringert.

Viele Register erleichtern die Programmierung

Mit Ausnahme des RV32E, der nur über 16 Register verfügt, besitzen alle RISC-V-ISAs 32 Register (x0 bis x31) mit einer Wortbreite entsprechend der Integer-Basis-ISA, im Falle des RV32I also 32-Bit. Gegenüber einem ARM-32-Core wurde die Anzahl also verdoppelt, gegenüber einem x86-32 Core sogar vervierfacht. Eine Besonderheit ist das Register x0, dessen Inhalt eine hartverdrahtete Null ist. Dieses Register wird bei manchen Befehlen als Operand verwendet. So ist zum Beispiel der bekannte Assemblerbefehl „NOP“ für „No Operation“ auf dem RISC-V nur ein Pseudobefehl. Die tatsächliche kodierte Instruktion ist „addi x0, x0, 0“.

Auf anspruchsvolle Adressierungsarten wird verzichtet

RISC-V ist eine Load-Store Architektur. Sie verfügt über Befehle zum Laden und Speichern von vorzeichenbehafteten Worten, Halbworten und Bytes, sowie zum Laden von vorzeichenlosen Halbworten und Bytes. Zum Adressieren der Quell- und Ziellokationen im Speicher besteht nur die Möglichkeit, einen vorzeichenerweiterten 12-Bit Offset zum Inhalt des Adressregisters zu addieren. Andere, anspruchsvollere Adressierungsarten, wie sie bei der ARM-32- oder der x86-32 Architektur verfügbar sind, sind beim RISC-V nicht vorhanden.

Peripheriegeräte werden über speichergemappte I/Os angesprochen, also mittels der normalen Lade- und Speicherbefehle. Spezielle I/O-Befehle, wie zum Beispiel die „in“ und „out“ Instruktionen bei x86-32 Cores sind nicht spezifiziert.

Zur Programmsteuerung stehen bedingte Verzweigungen und unbedingte Sprünge zur Verfügung. Als Besonderheit ist anzumerken, dass es keine „delayed branches“ wie bei den MIPS-32-Prozessoren, der Oracle SPARC oder bei vielen DSPs von Texas Instruments gibt. Zusammen mit dem Vermeiden von Verzweigungen, die auf Statusbits basieren, ergibt sich auch hier eine vereinfachte Logik. Funktionen werden über einen Jump-and-Link Befehl aufgerufen, der die Rücksprungadresse im Register x1 ablegt.

Cores und Prozessoren werden bereits entwickelt

Verschiedene Hersteller bieten bereits Cores, System on Chips (SoCs) oder Einzelprozessoren an. So sind beispielsweise von Andes Technology mit dem N25 und NX25 Implementationen der 32-Bit- beziehungsweise 64-Bit-ISA als Kern verfügbar. GreenWaves Technologies bietet mit seiner GAP8-Plattform einen Multi-Core-Prozessor mit einem Parallel-Ultra-Low-Power-(PULP-)Prozessor auf RISC-V Basis als Steuereinheit und 8 RV32IMC-Cores als Cluster-Prozessoren an. Diese sind zur Realisierung von rechenintensiven Applikationen wie Bildverarbeitung, Audio-Signalverarbeitung oder künstlicher Intelligenz vorgesehen. Für den GAP8 ist mit GAPuino ein weitgehend zum Arduino Uno kompatibles Entwicklungsboard verfügbar.

SiFive bietet verschiedene Cores, basierend auf einem RV32IMAC (E31) oder RV64IMAC (E51) zur Lizenzierung an, darunter auch den U54-MC Multi-Core-Prozessor mit einem E31 als Management-Prozessor und 4 Applikationsprozessoren mit E51 Kernen. Zusätzlich bietet SiFive mit seinen Freedom Everywhere und Freedom Unleashed Plattformen fertiges Silizium an. Der auf dem RV32IMAC basierende FE310-G000 der Everywhere-Familie ist bereits als Muster verfügbar. Für diese Plattform gibt es ebenfalls ein Arduino-kompatibles Entwicklungsboard, dessen RV32IMAC mit 320 MHz getaktet wird. Für den auf dem U54-MC-Kern basierenden FU540-C000 Multi-Core-Prozessor der Unleashed-Familie ist mit dem HiFive Unleashed ebenfalls eine Entwicklungsplattform verfügbar. Damit werden Embedded Linux-Applikationen auf einer mit über 1 GHz getakteten RISC-V CPU möglich.

Weitere Hersteller planen den Einsatz von RISC-V basierten Prozessoren: NVIDIA will mit einer Neuentwicklung den Falcon-Prozessor auf den GeForce-Grafikkarten ersetzen und Western Digital hat angekündigt, seine Produkte ebenfalls auf RISC-V Kerne zu migrieren. Die benötigten Stückzahlen sollen dabei in den nächsten Jahren bei 1-2 Milliarden Cores liegen.Einen anderen Weg geht Esperanto Technologies aus Kalifornien: Diese Firma plant einen auf der 64-Bit RISC-V ISA basierenden Multi-Core-Prozessor mit tausenden Kernen zu entwickeln, der im Bereich der Künstlichen Intelligenz eingesetzt werden soll.

Software-Unterstützung ist verfügbar

Für die RISC-V Architektur stehen mehrere Open-Source CPU-Designs zur Verfügung, darunter Cores der University of California in Berkeley oder der PULPino, der von der ETH Zürich zusammen mit der Universität von Bologna entwickelt wird. An Entwicklungswerkzeugen sind Simulatoren, Debugger, C-Compiler, Bibliotheken, Echtzeit-Kernels und integrierte Entwicklungsumgebungen (IDEs) verfügbar. Bei den Operationssystemen werden Linux, FreeBSD und NetBSD unterstützt.

Die aktuelle und vollständige Liste der Entwicklungswerkzeuge ist auf der Website der RISC-V Foundation einsehbar.

Eine große Akzeptanz ist absehbar

Zusammenfassend lässt sich sagen, dass RISC-V eine Instruction Set Architecture des 21. Jahrhunderts ist. Die Entwickler konnten aus den Fehlern der Vergangenheit lernen und einige grundlegende Mängel bestehender ISAs vermeiden. Dies, und die offene Architektur, machen den offenen RISC-V zu einer interessanten Alternative zu den geschlossenen IP-Cores anderer Hersteller. Der Verzicht auf verzögerte Verzweigungen oder Ladevorgänge und der Wegfall der Status-Codes führen ebenso zu einer schlanken Struktur der CPU, wie die stets gleiche Platzierung der Quell- und Zielregister im Befehlswort. Das große Register-Set erlaubt ebenso wie die Anwendung einer RISC-Architektur eine schnelle Abarbeitung der Programme. Zukunftssicherheit besteht durch die Möglichkeit von Erweiterungen des Befehlssatzes aufgrund des großen noch unbenutzten Opcode-Bereichs und der Festschreibung der Basis-Architekturen.

Die sich abzeichnende große Unterstützung für RISC-V lässt vermuten, dass diese ISA trotz ihrer ursprünglich akademischen Herkunft eine breite Akzeptanz in der Industrie erfahren wird. Dazu trägt auch bei, dass Designer von RISC-V basierten Prozessoren ihre Entwicklung ohne die Zahlung von Lizenzgebühren, wie sie beispielsweise von ARM gefordert werden, durchführen können.

Was ist RISC-V?

Was ist RISC-V?

02.07.18 - Die offene Befehlssatz-Architektur RISC-V unterstützt Prozessorkerne mit 32-, 64- und 128-Bit und vermeidet viele Fehler herkömmlicher Cores. Nun ist sie auf bestem Weg, den Markt zu erobern. Der erste Teil unserer RISC-V-Serie beschreibt die Grundlagen der vielversprechenden Architektur. lesen

RISC-V: Mehr Sicherheit für Open-Source-Prozessorarchitektur

RISC-V: Mehr Sicherheit für Open-Source-Prozessorarchitektur

06.07.18 - Die Stiftung hinter der lizenzfreien Prozessorarchitektur RISC-V hat einen Sicherheitsausschuss eingerichtet. Es soll Best-Practice-Security-Ansätze für Embedded Systeme und IoT-Geräte entwickeln. lesen

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45389244 / Mikrocontroller & Prozessoren)