Befehlssatz und Assembler

Welche Erklärung, wie heutige leistungsfähige x86-CPUs komplexe Befehle intern ausführen, ist richtig?

  1. AAlle Befehle werden Befehl für Befehl von einem Software-Emulator ausgeführt
  2. BBefehle werden dekodiert und in einfache, RISC-ähnliche Mikrooperationen zerlegt, die in der Pipeline ausgeführt werden
  3. CKomplexe Befehle sind nicht ausführbar, und das Betriebssystem bricht sie als Fehler ab
Antwort und Erläuterung anzeigen

Antwort: B. Befehle werden dekodiert und in einfache, RISC-ähnliche Mikrooperationen zerlegt, die in der Pipeline ausgeführt werden

x86-CPUs zerlegen die komplexen Befehle variabler Länge im vorderen Dekoder in einfache Operationen, sogenannte Mikrooperationen (μops), und führen diese im hinteren Teil Out-of-Order aus. Manche CPUs besitzen einen μop-Cache, der einmal zerlegte μops speichert und erneutes Dekodieren erspart. So wird die Kompatibilität mit alter Software gewahrt und zugleich dieselbe schnelle Ausführungstechnik wie bei RISC genutzt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Befehlssatz und Assembler

  1. Welche Befehle fügt die M-Erweiterung von RISC-V dem Basis-Ganzzahlbefehlssatz hinzu?
  2. Was ist der Hauptzweck der C-Erweiterung (komprimierte Befehle) von RISC-V?
  3. Was geschieht im Allgemeinen, wenn „a * b“ (Multiplikation zweier int) in C für eine RV32I-CPU ohne M-Erweiterung kompiliert wird?
  4. Welche Aussage zum Branch Delay Slot (Regel, dass der Befehl unmittelbar nach einem Verzweigungsbefehl unabhängig davon ausgeführt wird, ob verzweigt wird), wie er beim früheren MIPS u. a. bestand, ist richtig?
  5. Wie wird der gelesene 32-Bit-Wert in das 64-Bit-Register eingetragen, wenn bei RV64I der Befehl lw ausgeführt wird?