Befehlssatzarchitektur RISC-V erklärt
RISC-V ist eine Befehlssatzarchitektur (engl. Instruction Set Architecture, ISA) für einen Prozessor. Im Gegensatz zu anderen weit verbreiteten ISA x86 und ARM ist diese ein offener Standard. Sie kann von jedem frei verwendet und weiterentwickelt werden.
Verbreitung
Die Idee zu RISC-V entstand 2010 an der University of California Berkeley. Diese ISA war zunächst für den Einsatz in Ausbildung und Forschung gedacht. Der ISA wird jetzt von der RISC-V Foundation weiterentwickelt, die z.Z. über 3000 Mitglieder hat. Darunter Unternehmen wie Intel, NVIDIA, Western Digital, Qualcomm, Infineon oder Sony.
Anwendung findet RISC-V in verschiedenen Produkten. Von Single Board Computern, über Laptops bis hin zu Supercomputern. So gab Tesla in ihrer Hot Chips 34 Präsentation an, für einen Teil der Prozessorarchitektur ihres Supercomputers Dojo RISC-V genutzt zu haben.
Apple portiert derzeit angeblich Teile des A15 von ARM zu RISC-V.
Seagate und Western Digital entwickeln Controller für SSDs auf Basis von RISC-V.
Dennoch ist der Marktanteil von RISC-V zur Zeit noch gering. Der Großteil der PCs und Server nutzen Prozessoren auf Basis von x86. Smartphones und Embedded Systems verwenden dagegen vor allem ARM. In den letzten Jahren ist ARM auch im Bereich der Server angekommen. Siehe zum Beispiel Amazons Graviton und Ampere Altra.
x86 CPUs werden von Intel und AMD entwickelt. ARM CPUs werden von ARM selbst, Apple, Qualcomm, Mediatek, Google, Samsung, Amazon oder Ampere.
Abgrenzung des Begriffs Befehlssatzarchitektur
Jede Datenverarbeitung die ein Prozessor ausführt basiert auf einem Befehl. Es existieren Befehle für das Addieren zweier Register, das Kopieren von Daten, das Lesen aus dem Speicher, das Schreiben in den Speicher, den Sprung zu einer bestimmten Adresse usw. Alle Befehle die ein Prozessor ausführen kann werden zu einer sogenannten Befehlssatzarchitektur zusammengefasst.
Der Befehlssatz definiert die Art und Syntax der Befehle. Über die Performance entscheidet anschließend die Implementierung, die Mikroarchitektur. Hier ist es Aufgabe des Designer die richtigen Kompromisse im Hinblick auf Auswahl eines Fertigungsprozesses, Anzahl der Kerne, Einsatz des Transistor-Budgets, Anordnung der Transistoren zu finden. Seit der ersten x86-Mikroarchitektur 1978 im Intel 8086 haben Intel und AMD diese vielfach überarbeitet.
Eine Befehlssatzarchitektur ermöglicht das die selbe Software auf unterschiedlichen Mikroarchitekturen lauffähig ist. So ist es möglich das das selbe Programm sowohl auf einer Intel CPU aus dem Jahr 2002, 2022 oder einer AMD CPU läuft.
Eigenschaften von RISC-V
Prozessorarchitekturen lassen sich auf einem hohen Level in Complex Instrcution Set Computing (CISC) und Reduced Instruction Set Computing unterteilen. CISC Prozessoren versuchen die performance zu steigern in dem sie spezialisierte Befehle verwenden. RISC Prozessoren dagegen konzentrieren sich darauf allgemeine Befehle möglichst schnell abzuarbeiten.
RISC-V beschreibt in seiner Basis (RV32I) einen 32-bit auf 47 Befehle und Ganzzahlen beschränkten Prozessor. Typisch für RISC, implementiert auch RISC-V eine Load/Store Architektur. Alle Operationen, z.B. Addition, Vergleiche, werden immer auf Registern innerhalb des CPU-Kerns ausgeführt. In den Registern werden die Operanden der jeweiligen Operation gespeichert. Für eine Addition werden zwei Werte aus dem RAM geladen und in je ein Register geschrieben. Die Arithmetisch und Logische Einheit (ALU) liest diese Werte als Summanden ein und schreibt die Summe in ein Register zurück.
Über standardisierte Erweiterungen lässt sich der Befehlssatz für verschiedene Anwendungsbereiche wie Embedded Systems, Personal Computer, High Performance Compute, Server, ASICs u.a. anpassen.
- die Architektur kann auf 64-bit verbreitert werden (RV64I)
- Erweiterung 'F' (floating point) fügt Befehle für die Verarbeitung von Gleitkommazahlen sowie 32 dedizierte 32-bit Register hinzu
- Erweiterung 'M' (multiplication and divison) fügt Befehle für das Multiplizieren und Dividieren von Zahlen aus zwei beliebigen Registern gespeichert hinzu
- Erweiterung 'C' (compressed) komprimiert häufige verwendete Befehle von 32 bit auf 16 bit um Speicherplatz einzusparen
x86, als Vertreter einer CISC Architektur, enthält etwa 1000 Befehle, von denen viele in mehreren Varianten zur Verfügen stehen. Siehe Intel.
Gleitkommazahlen und Multiplikation/Division werden immer unterstützt.
Die komplexen Befehle werden durch die Decode-Logik in micro-Operations (µOps) zerlegt, die RISC-V Befehlen ähnlich sind. Diese Umwandlungen innerhalb des Prozessores bedeuten zusätzlichen Flächen und Energieverbrauch im Vergleich zu RISC Prozessoren. Einer der Gründe warum x86 z.B. nicht in Smartphones verwendet wird.