Grundlagen der RISC-Architektur

Analyse der Befehlssätze

Um die Reduzierung eines Befehlssatzes möglichst effektiv vornehmen zu können, formulierten die ersten Universitätsprojekte RISC I/II (Patterson, University of California at Berkeley, 1980) entsprechende Entwurfsziele. Im Anschluss daran konnten diverse Programme, in den Hochsprachen C und Pascal geschrieben, analysiert werden. Dabei bestand natürlich die Schwierigkeit, dass Compiler die Programme übersetzten, die für die herkömmlichen Architekturen optimiert waren. Die Entwurfsziele waren wie folgt definiert:

  • Ein-Zyklus-Befehle: Pro Takt sollte ein Maschinenbefehl ausgeführt werden. Der Komplexitätsgrad und die Ausführungsgeschwindigkeit eines RISC-Maschinenbefehls sollte in etwa zur VAX-II/780 (Mikroprogramm!) äquivalent sein.

  • Verzicht auf Mikroprogrammierung: Die Mikroprogrammierung sollte durch ein fest verdrahtetes Steuerwerk ersetzt werden. Hierdurch sollte neben der Schnelligkeit auch Chipfläche eingespart werden.

  • Einheitliches Befehlsformat: Sämtliche Befehle sollten das gleiche Format und insbesondere die gleiche Länge besitzen. Hierdurch sollte eine einfachere Dekodierung und eine einheitlichere Behandlung der Befehle auf Kosten der Programmlänge geschaffen werden.

  • Load-Store-Architektur: Das Interface zwischen Speicher und CPU sollte ausschließlich auf Load- und Store-Befehlen basieren, während alle anderen Befehle wie Arithmetik nur auf den Registern arbeiten durften. Dies implizierte eine größere Anzahl von Registern.

  • Unterstützung höherer Programmiersprachen: Um den Vorteil der Assembler-Programmierung, schnelleren Code zu erzeugen, zu relativieren, sollten Maschinenbefehle in der CPU so angeboten werden, dass Compiler sehr gut optimierten Code erzeugen könnten. Dies betraf insbesondere Verzweigungsbefehle und ist weiterhin ein aktuelles Thema (siehe nachfolgende Kapitel).

  • Keine Unterstützung für Gleitkomma-Arithmetik und Betriebssystem: Die Gleitkomma-Arithmetik hat man bewusst weggelassen. Sie ist in experimentellen Projekten meist hinderlich und prinzipiell ähnlich gestaltbar wie die Festkomma-Arithmetik. Interessanter ist hier der Verzicht auf Betriebssystembefehle wie etwa Supervisor-Calls, der prinzipieller Natur war.

  • 32-Bit-Architektur: Projekte waren auf die (1980 avantgardistische) Datenbreite von 32 Bit ausgelegt; 8-, 16- und 32-Bit-Daten sollten bearbeitbar sein.