Durch Einsatz von Matrix-Speichertechnologie ist es möglich Steuersignalkombinationen in je einer Zeile dieser Speichermatrix abzulegen. Somit können Zeile für Zeile Maschinenzustande auf dem Prozessor hinterlegt werden. Das sogenannte Mikroprogramm. Die interne Logik ist eher zufällig optimiert. Daher der Begriff "Random Logic".
Durch Einführung von mnemonischen Kodierungen von Mikrobefehlen, welche von Mikrobefehls-Assemblern verarbeitet werden, sind weitaus komplexere Befehle möglich. CISC bietet einen sehr großen Befehlssatz mit sich start unterscheidenden Befehlen in Ausführungszeit und Parameterliste.
Eigenschaften | CISC | RISC (z. B. LC2) |
Register | Wenige Register( ca. 20) | Viele Register (bis zu 200) und Registerfenster |
Befehlssatz | ca. 300 Befehle und mehr als 50 Befehlstypen | Nur rund 100 meist registerorientierte Befehle (außer LOAD / STORE) |
Adressierungsarten | ca. 12 verschiedene | Nur 3 bis 5 Arten und nur LOAD/STORE zum Speicher |
Caches | Gemeinsame Caches, aber später auch Getrennte | Getrennte Daten- und Befehlscaches nach Harvard |
CPI | 1 bis 20 - Durchschnittlich 4 | 1 bei Basisoperationen - im Schnitt 1,5 |
Befehlssteuerung | Mikrocode im Speicher, aber auch hartverdrahtet | Meistens hartverdrahtete Mikroprogramme ohne Mikroprogrammspeicher |
Beispielprozessoren | Intel x86, AMD, Cyrix | Sun UltraSparc, PowerPC |
Befehlssatz-Architekturen
Stack-Architektur | Akkumulator-Architektur | Universalregister-Architektur |
Diese Form benötigt keine Adressen für Operanden und ist somit eine Nulladreßmaschine. Quell und Ergebnisoperanden liegen auf einem Operanden-Stack. Vorteil dieser Architektur ist daher die Speicherplatzeinsparung durch die nicht notwendigen Adressen. | Um Verknüpfungs -operationen durchzuführen, liegt ein Operand in einem Register und ein Operand typischerweise im Hauptspeicher (Einadressmaschine) . Vorteil ist die einfache Implementierung, da nur ein internes Register benötigt wird. Nachteil ist aber die hohe Speicherlast. | Ein Satz von gleichberechtigten Registern kann zum Ablegen von Daten genutzt werden. Deshalb sind im Op-Code mehrere Operanden anzugeben (Zwei-, Dreiadressmaschine etc.) Vorteil ist die freie Benutzbarkeit durch Compiler. Ausdrucksberechnungen können somit in beliebiger Reihenfolge erfolgen, was Pipelining möglich macht. Dazu kommt, daß die Speichertransferlast sinkt, die Geschwindigkeit steigt und Superskalartechniken sind effizient einsetzbar. Der Nachteil dieser Architektur sind die teilweise großen Registersets, welche bei jedem Kontextwechsel auszutauschen sind. Außerdem müssen die Operanden Adressiert werden, was zu langen Befehlen führt. |
Register-Register ohne Speicheradressen (Sparc,Mips) | Register-Speicher mit der Möglichkeit von Speicheradressen (Motorola 68000) | Speicher-Speicher mit nur Speicheradressen (DEC-VAX) | |
Verknüpfungsoperationen verwenden nur Register. Nur in Lade- und Speicherbefehlen werden Adressen verwendet. (Load / Store - Architektur). Vorteil ist, dass die Verknüpfungen immer mit Registern geschehen und somit eine Befehlsdekodierung mit fester Länge möglich ist. | |||
Vorteile: |
|
|
Der Programmierer braucht sich nicht um Register kümmern. Deshalb wird die Programmierung transparenter. |
Nachteile: | Code wird größer, da Speichertransfers nur durch zusätzliche Befehle | Durch die variierenden Adressierungen variieren Befehlslänge und Taktzyklen pro Befehl, was äußerst negativ für Verfahren wie Pipelining ist. | Es entsteht ein hoher Speicherverkehr, was sich Nachteilig auf die Performance
auswirkt. Falls doch Register erlaubt werden (Orthogonaler Befehlssatz / CISC),
variieren auch hier Befehlslänge und Taktanzahl pro Befehl. Orthogonale Befehlssätze sind solche, welche eine beliebige Kombination von Befehlscode, Adressierungsart und Datentyp zulassen. |
Alle konventionellen Rechner sind Byte-Adressiert. D.h. das Worte (egal ob 8,
16 oder mehr Bit) bestehen aus einer Folge (aufsteigender) Bytes. Dabei gilt das
erste Byte als die Adresse des Wortes. Nimmt die Wertigkeit mit aufsteigender
Adresse zu, ist es das Litte-Endian-Format, umgekehrt das Big-Endian-Format.
Falls Worte so in den Speicher passen, das keine Verschiebungen auftreten, heißt
der Speicher aligned. Prüfen kann man dies durch die Formel
Adresse mod Wortlänge = 0?