Wie funktioniert RISC-V? Grundlagen der offenen Befehlssatzarchitektur

< zurück

Seite: 2/3

Anbieter zum Thema

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)
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)

Mit RISC-V braucht man nur die Befehle implementieren, die eine Applikation tatsächlich benötigt

RISC-V will Vieles besser machen als bisherige proprietäre 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.

Bildergalerie
Bildergalerie mit 6 Bildern

Großzügige Auslegung der Opcodes sorgt 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. Dieser Schritt 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 von RISC-V-Prozessoren

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“.

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.

RISC-V verzichtet auf komplizierte Adressierungsverfahren

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.

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.

(ID:45362701)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung