Hallo allerseits.
Ich habe die eine oder andere Frage zum Thema "Microcode/Microprogrammierte Steuerung" im Vergleich zur "hardwired Steuerung" von Prozessoren. Ich bin auf dieses Thema bei einer Recherche bzgl. CISC und RISC CPUs gestoßen.
Vielleicht kann mich jemand in den unten stehenden Fakten bestärken oder korrigieren.
In den folgenden Ausführungen möchte ich mich nur auf die pure Befehlsabarbeitung beziehen und andere Architekturmerkmale wie Pipelining , Caches etc außen vor lassen.
1) Befehlsabarbeitung durch die CPU
Schreibt man in einem Assembler-Programm einen Befehl wird er in einen Maschinenbefehl verwandelt, denn die CPU aus dem Speicher holt, dekodiert und foglich werden entsprechende eigene Funktionsgruppen der CPU und/oder externe Bausteine (wie Speicher, ...) über Steuerleitungen angesprochen, kontrolliert und gesteuert.
Feststellung 1:
Die "Abbildung eines Maschinenbefehls auf die Steuerleitungen" bzw. "die Interpretation eines Maschinenbefehl und die anschließende Auswahl der zu aktivierenden Steuerleitungen" ist das "A und O" bei der Realisierung und Abarbeitung eines Befehls auf dieser Ebene.
2) CISC-CPUs
Geschichtlich bedingt besaßen sie komplexe Befehle, die zunächst fest-verdrahtet waren, dh. die CPU arbeitete laut Feststellung 1 und bildete ihre kmplexen Befehle auf eine Reihe von Steuerleitungen ab, die interne Funktionsgruppen der CPU als auch externe Bausteine außerhalb der CPU aktivierte und mit ihnen kommunizierte.
Später wurde die feste Verdrahtung zugunsten einer sog. Micro-Code Technik aufgegeben, welche viele offensichtliche Vorteile, wie Erweiterbarkeit des Befahlssatzes etc mit sich brachte.
Micro-Code unterteilte die komplexen Befehle in mehrere kleinere grundlegendere, folglich kürzere, folglich einfachere Befehle.
Feststellung 2:
Letztendlich müssen die grundlegenderen Befehle, aus denen die komplexen Befehle bestehen (laut Feststellung 1 und dem Link) ebenfalls auf Steuerleitungen abgebildet werden.
Frage 1:
(laut Feststellung 1,2) folgere ich, dass die komplexen CISC-Befehle, die man im Assembler-Programm eingibt tatsächlich nicht existieren können ?
Sind sind vergleichbar mit einem Makro oder einer Routine, das/die als Einzeiler eingegeben wird, dann aber von der CPU intern expandiert wird ?
Ist das soweit richtig?
Frage 2:
Da also die konkret implementierten Befehle einer CISC-CPU jene grundlegenderen Befehle sind, aus denen ein komplexer CISC-Befehl, wo ist dann tatsächlich der Vorteil der Micro-Code Technik ?
Wenn ich doch die komplexeren Befehle über Micro-Code in grundlegendere Befehe aufteile, ist diese CISC-CPU langsamer als die fest-verdrahtete CISC-Variante. Und bei CPU-Entwicklungen gehts schließlich um die Performance !?
Frage 3:
Wenn ein Hersteller auf eine Mico-Code Variante umsteigt, wieso entwicklelt er nicht gleich eine CPU mit einem dem o.g. grundlegenderen Befehls-Satz und spart sich Micro-Code und den Micro-Code-Layer und gewinnt somit mehr Performance ?
Frage 4:
Wenn also ein Hersteller den Micro-Code einspart + direkt einen grundlegenderen, kürzeren Befehlssatz sofort imlementiert, geht es doch direkt in die RISC-Richtung ?!
Somit stellt diese Micro-Code Technik genau das dar, was einem RISC-Befehlssatz entspricht, oder nicht ???
Ich habe die eine oder andere Frage zum Thema "Microcode/Microprogrammierte Steuerung" im Vergleich zur "hardwired Steuerung" von Prozessoren. Ich bin auf dieses Thema bei einer Recherche bzgl. CISC und RISC CPUs gestoßen.
Vielleicht kann mich jemand in den unten stehenden Fakten bestärken oder korrigieren.
In den folgenden Ausführungen möchte ich mich nur auf die pure Befehlsabarbeitung beziehen und andere Architekturmerkmale wie Pipelining , Caches etc außen vor lassen.
1) Befehlsabarbeitung durch die CPU
Schreibt man in einem Assembler-Programm einen Befehl wird er in einen Maschinenbefehl verwandelt, denn die CPU aus dem Speicher holt, dekodiert und foglich werden entsprechende eigene Funktionsgruppen der CPU und/oder externe Bausteine (wie Speicher, ...) über Steuerleitungen angesprochen, kontrolliert und gesteuert.
Feststellung 1:
Die "Abbildung eines Maschinenbefehls auf die Steuerleitungen" bzw. "die Interpretation eines Maschinenbefehl und die anschließende Auswahl der zu aktivierenden Steuerleitungen" ist das "A und O" bei der Realisierung und Abarbeitung eines Befehls auf dieser Ebene.
2) CISC-CPUs
Geschichtlich bedingt besaßen sie komplexe Befehle, die zunächst fest-verdrahtet waren, dh. die CPU arbeitete laut Feststellung 1 und bildete ihre kmplexen Befehle auf eine Reihe von Steuerleitungen ab, die interne Funktionsgruppen der CPU als auch externe Bausteine außerhalb der CPU aktivierte und mit ihnen kommunizierte.
Später wurde die feste Verdrahtung zugunsten einer sog. Micro-Code Technik aufgegeben, welche viele offensichtliche Vorteile, wie Erweiterbarkeit des Befahlssatzes etc mit sich brachte.
Micro-Code unterteilte die komplexen Befehle in mehrere kleinere grundlegendere, folglich kürzere, folglich einfachere Befehle.
Du hast keine Berechtigung, den Link zu sehen, bitte Anmelden oder Registrieren
Feststellung 2:
Letztendlich müssen die grundlegenderen Befehle, aus denen die komplexen Befehle bestehen (laut Feststellung 1 und dem Link) ebenfalls auf Steuerleitungen abgebildet werden.
Frage 1:
(laut Feststellung 1,2) folgere ich, dass die komplexen CISC-Befehle, die man im Assembler-Programm eingibt tatsächlich nicht existieren können ?
Sind sind vergleichbar mit einem Makro oder einer Routine, das/die als Einzeiler eingegeben wird, dann aber von der CPU intern expandiert wird ?
Ist das soweit richtig?
Frage 2:
Da also die konkret implementierten Befehle einer CISC-CPU jene grundlegenderen Befehle sind, aus denen ein komplexer CISC-Befehl, wo ist dann tatsächlich der Vorteil der Micro-Code Technik ?
Wenn ich doch die komplexeren Befehle über Micro-Code in grundlegendere Befehe aufteile, ist diese CISC-CPU langsamer als die fest-verdrahtete CISC-Variante. Und bei CPU-Entwicklungen gehts schließlich um die Performance !?
Frage 3:
Wenn ein Hersteller auf eine Mico-Code Variante umsteigt, wieso entwicklelt er nicht gleich eine CPU mit einem dem o.g. grundlegenderen Befehls-Satz und spart sich Micro-Code und den Micro-Code-Layer und gewinnt somit mehr Performance ?
Frage 4:
Wenn also ein Hersteller den Micro-Code einspart + direkt einen grundlegenderen, kürzeren Befehlssatz sofort imlementiert, geht es doch direkt in die RISC-Richtung ?!
Somit stellt diese Micro-Code Technik genau das dar, was einem RISC-Befehlssatz entspricht, oder nicht ???