Verloren im Labyrinth der IT-Begriffe? Hier finden Sie Definitionen und Basiswissen zu Rechenzentrums-IT und -Infrastruktur.

Die Hardware als Software Was ist die Instruction Set Architecture - ISA?

Von Jürgen Höfling |

Anbieter zum Thema

Der Mikroprozessor als elektrotechnisches oder auch (neuerdings) quantenphysikalisches Konstrukt benötigt für den effizienten Einsatz eine „menschliche Seite“. Die Befehlssatz-Architektur oder auch Instruction Set Architecture , ISA, ist so zusagen die Sicht der Programmierer auf den Prozessor.

Auch Mikroprozessoren muss das Buchstabieren beigebracht werden, um sie komfortabel nutzen zu können.
Auch Mikroprozessoren muss das Buchstabieren beigebracht werden, um sie komfortabel nutzen zu können.
(Bild: Dieter_Schütz_pixelio.de)

Das Herz eines Mikroprozessors oder Mikrocontrollers sind elektrische Ströme, die durch Milliarden verschalteter Bauelemente laufen oder im Falle eines Quantencomputers Lichtteilchen, die sich nach quantenphysikalischen Gesetzen verhalten und rechentechnisch „domestiziert“ werden. Aber um effizient betrieben werden zu können, müssen diese Gebilde „versprachlicht“ werden, damit sie von Menschen mit Aufgabenstellungen gefüttert und die Ergebnisse sinnvoll interpretiert werden können.

Boolesche Logik in der Mikroelektronik und oder lineare Algebra in der Quantenrechnerei sind erste solche Versprachlichungen physikalischer Prozesse, sind aber als „User Experience“ für Normal-Programmierer zu artifiziell. Basale Programmiersprachen wie Assembler oder auch Basic sind da dem Alltagsleben näher und als Computer-Esperanto ausreichend akzeptiert.

Parameter einer Befehlssatz-Architektur

Die Versprachlichung der Prozessor- oder Controller-Hardware mit ihren Rechenwerken, Registern, Stacks und Speichereinheiten ist der Befehlssatz (Instruction Set) eines Prozessors. Und das Vokabular aus Transferanweisungen (MOVE etc), arithmetischen und logischen Befehlen (ADD, SUB etc.), Ein- und Ausgabe-Anweisungen (GET, PUT), Registeroperationen (LOAD/STORE) sowie Sprungbefehlen (GOTO) bildet die Befehlssatz-Architektur (Instruction Set Architecture, ISA).

Der Befehlssatz stellt das Vokabular eines Prozessors dar, aus dem die Programmierer und Programmierinnen syntaktische Befehlsketten, also beispielsweise den Assembler- oder Basic-Code bilden.

Typische Parameter der Befehlssatz-Architektur sind die

  • Anzahl der Operanden (1,2, oder 3),
  • die Befehlsbreite (variabel, fest (beispielsweise 32 Bit)
  • die Anzahl der Register, also der Speicherbereiche, auf
  • die das Rechenwerk besonders schnell zugreifen kann,
  • die Adressierungsmodi, also die Art und Weise, wie aus einer Programmadresse die tatsächliche Adresse im Speicher berechnet wird
  • die Art des Speicherzugriffs (Register-Speicher, Register-Register)
  • die Byte-Reihenfolge, sprich, ob das kleinstwertige oder das höchstwertige Byte an der niedrigsten Adresse im Speicher platziert wird („Little Endian“ oder „Big-Endian“) oder ob die Byte-Reihenfolge variabel einstellbar ist
  • wie viele Befehle pro Takt erlaubt sind.
  • das Verhalten der Prozessorsteuerung bei Interrupt-Signalen

Für alle genannten Parameter gibt es nicht unbedingt einen Königsweg als Lösung, vieles ist von der jeweiligen Aufgabe abhängig, die rechentechnisch gelöst werden soll. Nur ein Beispiel: Bei Register-Register-Befehlssätzen kann das Rechenwerk nur Operanden verknüpfen, die direkt im Zwischenspeicher vorliegen. Falls sich ein Operand im Arbeitsspeicher befindet, muss er erst mit einem weiteren Befehl in ein Register geladen werden.

Als Konsequenz aus dieser Konstellation wird man eine größere Zahl an Registern vorhalten als bei einer Architektur, bei der ein Operand direkt aus dem Speicher geholt werden kann. Schließlich soll es schnell gehen. Die höhere Geschwindigkeit muss aber durch eine komplexere (und teurere) Architektur bezahlt werden.

Andererseits erhält man durch diese aufwendigere Konstruktion mehr Sicherheit, indem man durch den Verzicht auf den direkten Speicherzugriff bei (quasi-)parallelen Operationen Blockaden vermeidet. In der Register-Register-Variante ist es nämlich ausgeschlossen, dass sich Operatoren um einen Operanden „streiten“ müssen, da dieser ja exklusiv im Register vorhanden ist.

CISC oder RISC ?

Vor einigen Jahrzehnten war die grobe Unterscheidung in CISC- und RISC-Befehlssätze üblich. Unter die Kategorie CISC (Complex Instruction Set Computer) fielen Prozessoren, die mit vielen mächtigen Befehlen ausgestattet waren, welche dadurch aber oft mehr als einen Taktzyklus benötigten, um eine Rechenoperation auszuführen. Unter die Kategorie RISC (Reduced Instruction Set Computer) fielen Prozessoren, die mit sehr wenigen einfachen Befehlen arbeiteten, bei denen aber (fast) jeder Befehl nur einen Taktzyklus benötigte.

Die RISC-Architektur mit dem Akronym „MIPS“ - um ein RISC-Beispiel einmal näher zu betrachten - betont die Einfachheit sogar ausdrücklich im Namen. MIPS bedeutet ausgeschrieben „Microprocessor without Interlocked Pipeline-Stages, also „Mikroprozessor ohne verschränkte Fließband-Stufen“). Die Entwickler dieser Register-Register-Architektur hatten sich zum Ziel gesetzt, dass alle Basis-Operationen (Daten holen, Daten speichern, neues Datum berechnen etc.) in einen einzigen Taktzyklus passen und sich gleichzeitig nicht blockieren. Damit das funktioniert, waren die Assembler-Programmierer gehalten, bei Bedarf Leerlauf-Operationen einzubauen, was zwar verhinderte, dass es „Verschränkungen“ gab, andererseits aber den Code aufblähte.

Die MIPS-Architektur war zu ihrer Zeit absolut „in“ (inclusive Varianten wie beispielsweise „Sun SPARC“) und wird seither vielfach in Rechner-Architekturen eingesetzt, mittlerweile wird sie von dem KI- und Deep-Learning-Spezialisten Wave Computing genutzt und weiterentwickelt. Zweifellos gibt es Anwendungen, die mit der MIPS-Philosophie beziehungsweise entsprechenden Varianten gut bis ausgezeichnet funktionieren. MIPS wird heute vorzugsweise für Chips in der Telekommunikations-Infrastruktur und im Bereich Maschinelles Lernen eingesetzt, beispielsweise für Fahrzeug-Assistenzsysteme.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

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.

Aufklappen für Details zu Ihrer Einwilligung

Generell kann man feststellen, dass die Unterscheidung zwischen CISC und RISC, wegen der vor drei Jahrzehnten noch regelrechte Glaubenskriege geführt wurden, heute „der Schnee von gestern“ ist. Die x86-Architektur als prominenteste Befehlssatz-Architektur der Branche ist längst eine Mischung aus CISC und RISC.

Tatsächlich handelt sich „oberflächlich“ um eine CISC-Architektur, deren komplexe Befehle intern in möglichst schlanke RISC-Befehle transformiert werden. Wenn man so will, hat sich letzten Enden heute eine intelligent und praxisorientiert gehandhabte RISC-Architektur durchgesetzt.

Die heute weltweit am meisten genutzte lizenzfreie Befehlssatz-Architektur heißt denn auch RISC-V. Da RISC-V frei von Patentansprüchen ist, kann jeder auf der Basis dieser Befehlssatz-Architektur Mikroprozessor entwickeln und vermarkten. In einigen EU-Projekten ist RISC-V beispielsweise als Basis für Hochleistungsrechner-Konzepte vorgesehen.

Befehlssatz-Erweiterungen und mögliche neue Ansätze

Typisch für heutige Befehlsätze sind die vielen Erweiterungen, die sich aus den rechenintensiven Anwendungen der letzten Jahrzehnte, vor allem bei der Video- und Audio-Verarbeitung, ergeben haben. Ein prominentes Beispiel für solche Erweiterungen sind die so genannten SIMD-Befehle, bei denen ein bestimmter Befehl mehrmals auf einen Datensatz ausgeführt wird. SIMD steht für „Simple Instruction, Multiple Data“.

Eine Befehlssatz-Architektur als Schnittstelle der Maschine zum menschlichen Programmierer wird sich immer im Spannungsfeld zwischen den Anwendungsproblemen, die programmtechnisch umzusetzen sind, der Benutzerfreundlichkeit der jeweils verwendeten (formal-)sprachlichen Transliteration und der optimalen Gestaltung des Maschinencodes, der aus dem Assembler generiert wird, bewegen.

Mag sein, dass sich demnächst in reinen Maschine-Maschine-Kommunikationen und einem womöglich komplett maschinell erstellten Programm andere Techniken herausbilden. Unter Umständen sieht eine lernfähige Maschine als „Master“ vollkommen neue Lösungswege der Programmierung ihrer „Slaves“.

(ID:47238964)