Was ist der Unterschied zwischen CISC und RISC?


Antwort 1:

RISC ist im Allgemeinen ein "Ladespeicher" für / von Registern. Im Allgemeinen werden drei Register verwendet, wie z. B. ADD R1 = R2 + R3, Laden und Speichern können eine Ausnahme sein oder nicht, wobei nur zwei Register in einem Befehl verwendet werden.

CISC ermöglicht im Allgemeinen die Berechnung mit Werten aus Speicheradressen, ohne dass diese zuerst in Register eingegeben werden müssen. Es könnte auch mehr (komplexe) Adressierungsmodi haben, die ein bis mehrere Register zur Adressgenerierung ermöglichen.

CISC ist im Allgemeinen ein Zwei-Operand, wobei z. B. ADD dasselbe Register (oder dieselbe Speicheradresse) hat, das für das Ziel verwendet wird, aber auch dasselbe für eine der Quellen.

Dies war früher eine große Sache, und RISC war fest verdrahtet und CISC verwendete Mikrocode.

Die Mikroarchitektur für CISC, mindestens x86 (wenn nicht alle CISC verwendet werden, was bedeutet, dass IBM Mainframes die einzige andere überlebende CISC sind; Mikrocontroller können eine Ausnahme sein), unterteilt Anweisungen in Mikroops (Mikro- / RISC-ähnliche Vorgänge), die außerhalb des Zeitplans geplant werden können -Bestellung anders als beim Original-Mikrocode.

RISC kann das sogar tun, z. B. neueres ARM (zunächst nicht), sodass die Unterschiede geringer sind als früher.

Das ursprüngliche ARM hatte keine Anweisung zur Ganzzahldivision, da es zu komplex war, geschweige denn für Gleitkomma. Jetzt gilt die reduzierte [Komplexität] für R in RISC weniger, da Gleitkomma von Natur aus komplex ist und alle wichtigen RISC-CPUs sogar bis zu Quadratwurzel- und Trigonometrie-Anweisungen unterstützen.


Antwort 2:

CISC ist optimiert, um ab einer bestimmten Befehlsgröße so viel Arbeit wie möglich zu erledigen. Dies liegt daran, dass CPUs damals keinen Cache hatten und das Lesen der Anweisungen aus dem Speicher mehrere Zyklen dauern würde. Daher war eine komplexe Anweisung mit vielen Statusänderungen kein Problem, solange sie kompakt war.

RISC ist für CPUs optimiert, die * einen * Befehls-Cache haben und den Engpass ändern: Caches können Ihnen problemlos 64 und 128 Datenbits pro Zyklus liefern - solange sie ausgerichtet sind. Plötzlich können Sie 1 oder sogar 2 Anweisungen pro Zyklus ausführen, solange keine Abhängigkeit besteht, sodass saubere Anweisungen, die nur eine einzelne Statusänderung verursachen, viel schneller werden.


Antwort 3:

CISC ist optimiert, um ab einer bestimmten Befehlsgröße so viel Arbeit wie möglich zu erledigen. Dies liegt daran, dass CPUs damals keinen Cache hatten und das Lesen der Anweisungen aus dem Speicher mehrere Zyklen dauern würde. Daher war eine komplexe Anweisung mit vielen Statusänderungen kein Problem, solange sie kompakt war.

RISC ist für CPUs optimiert, die * einen * Befehls-Cache haben und den Engpass ändern: Caches können Ihnen problemlos 64 und 128 Datenbits pro Zyklus liefern - solange sie ausgerichtet sind. Plötzlich können Sie 1 oder sogar 2 Anweisungen pro Zyklus ausführen, solange keine Abhängigkeit besteht, sodass saubere Anweisungen, die nur eine einzelne Statusänderung verursachen, viel schneller werden.