Informatik

RISC einfach erklärt: Befehle und Pipelining

RISC einfach erklärt: Befehle und Pipelining
RISC einfach erklärt: Befehle und Pipelining
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

RISC bezeichnet eine Prozessorarchitektur mit einem begrenzten, einfach aufgebauten Befehlssatz. Komplexe Aufgaben werden in mehrere einfache Schritte zerlegt. Das erleichtert häufig das Dekodieren der Befehle und ihre Verarbeitung in einer Pipeline.

Auf dieser Seite lernst du, wie das Load/Store-Prinzip funktioniert, warum RISC gut zum Pipelining passt und weshalb RISC nicht automatisch schneller oder sparsamer als CISC ist.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Was macht einen RISC-Prozessor aus?

RISC steht für Reduced Instruction Set Computer. „Reduziert“ bedeutet nicht, dass der Prozessor nur wenige Aufgaben bewältigen kann. Es bedeutet, dass sein Befehlssatz aus vergleichsweise einfachen und regelmäßig aufgebauten Maschinenbefehlen besteht.

Definition

Maschinenbefehl

Ein Maschinenbefehl ist eine elementare Anweisung, die ein Prozessor direkt verarbeiten kann. Er kann zum Beispiel einen Wert laden, zwei Registerinhalte verknüpfen oder ein Ergebnis speichern.

Typische RISC-Merkmale sind:

  • ein begrenzter, möglichst einheitlicher Befehlssatz,
  • einfache Befehlsformate,
  • getrennte Befehle für Speicherzugriffe und Berechnungen,
  • eine vergleichsweise einfache Dekodierung,
  • gute Voraussetzungen für die Verarbeitung in einer Pipeline,
  • eine wichtige Rolle des Compilers bei der Auswahl und Anordnung der Befehle.

Ein Compiler übersetzt ein Programm aus einer höheren Programmiersprache in Maschinenbefehle. Bei RISC setzt er eine komplexe Aufgabe meist aus mehreren einfachen Befehlen zusammen.

Merke

RISC reduziert die Komplexität einzelner Befehle, nicht die möglichen Aufgaben des Computers.

Teste dich
Frage 1 von 1LeichtWelche Aussage beschreibt RISC am besten?
Lösung: Komplexe Aufgaben werden aus einfachen Maschinenbefehlen zusammengesetzt. — Bei RISC sind die einzelnen Befehle einfach. Erst ihre Folge bildet eine komplexe Verarbeitung.
Wie funktioniert das Load/Store-Prinzip?

Viele RISC-Architekturen trennen Speicherzugriffe klar von Berechnungen. Load lädt einen Wert aus dem Speicher in ein Register. Store schreibt einen Wert aus einem Register in den Speicher zurück.

Definition

Register

Ein Register ist ein kleiner, direkt im Prozessor liegender Speicherplatz. Die Recheneinheit arbeitet normalerweise mit Werten in solchen Registern.

Eine Multiplikation zweier gespeicherter Werte lässt sich schematisch in vier Schritte zerlegen:

  1. Ersten Wert mit LOAD aus dem Speicher in ein Register laden.
  2. Zweiten Wert mit LOAD in ein weiteres Register laden.
  3. Die beiden Registerwerte mit MULT multiplizieren.
  4. Das Ergebnis mit STORE in den Speicher schreiben.
Beispiel

Im Speicher stehen die Werte 6 und 7. Der Prozessor lädt beide Werte zunächst in Register. Danach berechnet er dort das Produkt 42. Erst der abschließende Store-Schritt schreibt 42 in den vorgesehenen Speicherplatz.

Der entscheidende Gedanke lautet: Die Multiplikation selbst greift nicht gleichzeitig auf die gespeicherten Operanden zu. Laden, Rechnen und Speichern sind getrennte Befehle.

Ein CISC-Befehl kann solche Teilschritte stärker in einem komplexen Befehl bündeln. Das bedeutet jedoch nicht, dass jeder reale CISC-Prozessor genau einen Befehl für diese Beispielaufgabe besitzt. Das Beispiel zeigt die unterschiedlichen Architekturideen.

Du bist dran

Zwei Zahlen liegen an den Speicherstellen A und B. Ihre Summe soll an der Speicherstelle C abgelegt werden. Zerlege die Aufgabe in Load-, Rechen- und Store-Schritte.

Lösung zur Zerlegung

  1. Lade den Wert aus A in ein Register.
  2. Lade den Wert aus B in ein zweites Register.
  3. Addiere die beiden Registerwerte.
  4. Speichere das Ergebnis aus dem Ergebnisregister an der Speicherstelle C.

Die konkrete Schreibweise der Befehle hängt von der jeweiligen Architektur ab. Entscheidend ist die Reihenfolge: laden, in Registern rechnen, speichern.

Teste dich
Frage 1 von 1MittelWelche Befehlsfolge entspricht dem Load/Store-Prinzip?
Lösung: Werte laden, in Registern rechnen, Ergebnis speichern — Zuerst gelangen die Operanden durch Load-Befehle in Register. Nach der Berechnung schreibt ein Store-Befehl das Ergebnis zurück.
Warum passt RISC gut zum Pipelining?

Eine Pipeline zerlegt die Befehlsverarbeitung in Stufen. Ein einfaches Modell besitzt beispielsweise diese vier Stufen:

  1. Befehl abrufen,
  2. Befehl dekodieren,
  3. Befehl ausführen,
  4. Ergebnis zurückschreiben.

Sobald ein Befehl die erste Stufe verlassen hat, kann dort bereits der nächste Befehl beginnen. So befinden sich mehrere Befehle gleichzeitig in verschiedenen Stufen.

Definition

Durchsatz

Der Durchsatz gibt an, wie viele Befehle in einer bestimmten Zeit fertig werden. Pipelining soll vor allem diesen Durchsatz erhöhen.

Regelmäßig aufgebaute und einfach zu dekodierende Befehle erleichtern es, die Pipeline-Stufen gleichmäßig auszulasten. Deshalb passt die RISC-Idee gut zum Pipelining.

Beispiel

Befehl A wird gerade ausgeführt. Gleichzeitig kann Befehl B dekodiert und Befehl C abgerufen werden. Die Befehle werden nicht zu einem einzigen Befehl verschmolzen; ihre Verarbeitungsschritte überlappen sich.

Pipelining macht die Verarbeitung jedoch nicht automatisch verzögerungsfrei. Benötigt ein Befehl das noch nicht fertige Ergebnis seines Vorgängers, muss die Pipeline möglicherweise warten oder das Ergebnis direkt weiterleiten. Solche Konflikte heißen Hazards.

Auch die Register zwischen den Pipeline-Stufen benötigen Zeit und Energie. Immer mehr Stufen sind deshalb nicht unbegrenzt sinnvoll.

Merke

Eine Pipeline erhöht vor allem die Zahl fertiggestellter Befehle pro Zeit. Ein einzelner Befehl muss dadurch nicht schneller werden.

Teste dich
Frage 1 von 1MittelWas ist der wichtigste Nutzen einer Pipeline?
Lösung: Verarbeitungsschritte mehrerer Befehle können sich überlappen. — Pipelining steigert den möglichen Durchsatz durch Überlappung. Datenabhängigkeiten und gemeinsam benötigte Ressourcen können trotzdem Wartezeiten verursachen.
Worin unterscheiden sich RISC und CISC?

CISC steht für Complex Instruction Set Computing. Die Architekturidee besteht darin, auch komplexe oder spezialisierte Abläufe in mächtigeren Maschinenbefehlen auszudrücken.

MerkmalRISCCISC
Befehleeher einfach und regelmäßigauch komplex und spezialisiert
Komplexe Aufgabemehrere einfache Befehlemöglicherweise weniger, mächtigere Befehle
Speicherzugrifftypischerweise über Load und Storevielfältigere Zugriffs- und Adressierungsarten
Dekodierungtendenziell einfachertendenziell aufwendiger
Maschinencodekann mehr Befehle benötigenkann kompakter sein
Pipelinedurch regelmäßige Befehle leichter planbarkomplexe Befehle können die Verarbeitung erschweren

Diese Gegenüberstellung beschreibt Entwurfsrichtungen, keine sichere Rangliste. Die tatsächliche Leistung und Energieeffizienz hängen unter anderem vom konkreten Prozessor, vom Compiler, vom Programm und vom Speichersystem ab.

ARM, MIPS, SPARC und RISC-V stehen für RISC-orientierte Architekturen. Die verbreitete x86-Familie wird CISC zugeordnet. Moderne x86-Prozessoren können komplexe Befehle intern in einfachere, RISC-artige Operationen zerlegen. Die praktische Grenze zwischen beiden Ansätzen ist daher weniger scharf als die Grundmodelle vermuten lassen.

Gut zu wissen

Einfache Dekodierung kann günstige Voraussetzungen für hohen Durchsatz und geringe Leistungsaufnahme schaffen. Daraus folgt aber nicht, dass jedes RISC-System jedem CISC-System überlegen ist. Für einen fairen Vergleich müssen konkrete Prozessoren und dieselbe Arbeitslast betrachtet werden.

Teste dich
Frage 1 von 1SchwerEin RISC- und ein CISC-Prozessor führen dasselbe Programm aus. Welche Folgerung ist ohne Messdaten zulässig?
Lösung: Die Architekturideen unterscheiden sich, aber der schnellere Prozessor lässt sich daraus allein nicht bestimmen. — Die Anzahl und Komplexität der Befehle sind nur Teile des Gesamtsystems. Eine allgemeine Siegerarchitektur lässt sich daraus nicht ableiten.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • RISC
    • einfache und regelmäßige Befehle
    • Load und Store für Speicherzugriffe
    • Berechnungen mit Registerwerten
    • Compiler bildet Befehlsfolgen
    • Pipelining erhöht möglichen Durchsatz
    • Hazards und Stufenregister setzen Grenzen
    • CISC bündelt eher komplexe Abläufe
    • reale Leistung hängt vom Gesamtsystem ab
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWas bezeichnet STORE im Load/Store-Prinzip?
Lösung: Das Schreiben eines Registerwerts in den Speicher — Store schreibt einen Wert aus einem Register zurück in den Speicher.
Frage 2 von 3MittelWarum können einfache, regelmäßige Befehle das Pipelining erleichtern?
Lösung: Ihre Verarbeitung lässt sich leichter in gleichmäßige Stufen einordnen. — Regelmäßige Abläufe erleichtern die Planung der Stufen. Pipeline-Register und der Umgang mit Abhängigkeiten bleiben trotzdem notwendig.
Frage 3 von 3SchwerEin Programm benötigt auf einer RISC-Architektur mehr Maschinenbefehle als auf einer CISC-Architektur. Was folgt daraus?
Lösung: Allein daraus lässt sich die schnellere oder sparsamere Ausführung nicht bestimmen. — Die Befehlszahl ist nur eine Einflussgröße. Entscheidend sind auch Befehlsdauer, Pipeline, Speicherzugriffe, Compiler und konkrete Prozessorimplementierung.

Du hast die Kernidee verstanden, wenn du eine Aufgabe in einfache Load-, Rechen- und Store-Schritte zerlegen und zugleich erklären kannst, warum daraus kein pauschaler Leistungssieg für RISC folgt.

Passend dazu