ScholarGate
Assistent

Prozessor-Mikroarchitektur

Die Prozessor-Mikroarchitektur ist die interne Hardware-Organisation, die eine Befehlssatzarchitektur implementiert. Sie umfasst die Pipeline, Ausführungseinheiten, Registerumbenennung und Steuerlogik, die einen Befehlsstrom so schnell wie möglich in berechnete Ergebnisse umwandeln.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Mikroarchitektur ist die konkrete logische Organisation eines Prozessors – seine Pipeline-Stufen, Funktionseinheiten, Puffer und Steuerung –, die das Verhalten, das durch eine Befehlssatzarchitektur spezifiziert ist, realisiert, während sie gleichzeitig hohe Leistung und Effizienz anstrebt.

Scope

Dieser Bereich behandelt den Aufbau eines Prozessors unterhalb der ISA-Schnittstelle: den Datenpfad und die Steuerung, die Pipelining und die diese begrenzenden Hazards, Techniken zur Extraktion von Befehlsebene-Parallelität, Sprungvorhersage, spekulative und Out-of-Order-Ausführung sowie die Scheduling-Strukturen, die die Ausführungseinheiten auslasten. Ausgeschlossen sind der sichtbare Befehlssatz selbst (Befehlssatzarchitektur) und das Speichersubsystem jenseits der ersten Cache-Ebenen (Speicherhierarchie und Caches) sowie die Multi-Core-Organisation (parallele und Multicore-Architektur).

Sub-topics

Core questions

  • Wie überlappt Pipelining die Befehlsausführung, und welche strukturellen, Daten- und Steuer-Hazards begrenzen sie?
  • Wie viel Befehlsebene-Parallelität existiert in einem Programm, und wie kann Hardware diese extrahieren?
  • Wie reduziert die Sprungvorhersage die Kosten von Steuer-Hazards in tiefen Pipelines?
  • Wie ermöglichen Out-of-Order-Ausführung und Registerumbenennung Parallelität, während die Programmsemantik erhalten bleibt?
  • Wie werden Leistung, Energieverbrauch und Komplexität im mikroarchitektonischen Design abgewogen?

Key concepts

  • Datenpfad und Steuerung
  • Befehlspipeline
  • strukturelle, Daten- und Steuer-Hazards
  • Weiterleitung und Umgehung (forwarding and bypassing)
  • Befehlsebene-Parallelität
  • Sprungvorhersage
  • spekulative Ausführung
  • Out-of-Order-Ausführung
  • Registerumbenennung
  • superskalare Ausgabe

Key theories

Pipelining
Die Überlappung der Ausführung mehrerer Befehle in Stufen erhöht den Befehlsdurchsatz; die erreichbare Beschleunigung wird durch die Pipelinetiefe und die durch Hazards und Abhängigkeiten verursachten Stalls begrenzt.
Dynamische Planung und Registerumbenennung
Tomasulos Algorithmus plant Befehle dynamisch auf Ausführungseinheiten und benennt Register über Reservierungsstationen und einen gemeinsamen Datenbus um, wodurch Befehle außerhalb der Programmreihenfolge ausgeführt werden können, während echte Datenabhängigkeiten respektiert werden – die Grundlage moderner Out-of-Order-Prozessoren.

Mechanisms

Ein Pipelined-Prozessor unterteilt die Befehlsverarbeitung in Stufen (Fetch, Decode, Execute, Memory, Writeback), sodass mehrere Befehle gleichzeitig in Bearbeitung sind. Hazards – ein benötigtes Ergebnis ist noch nicht verfügbar, eine umstrittene Ressource oder ein unaufgelöster Sprung – werden durch Weiterleitung (forwarding), Anhalten (stalling), Vorhersage und Spekulation behandelt. Superskalare Out-of-Order-Kerne fügen Reservierungsstationen, Reorder-Puffer und Umbenennung hinzu, sodass unabhängige Befehle ausgeführt werden, sobald ihre Operanden bereit sind, und Ergebnisse in Programmreihenfolge festgeschrieben werden.

Clinical relevance

Die Mikroarchitektur bestimmt die reale Geschwindigkeit und Energieeffizienz von Prozessoren: Pipelining, superskalare Ausgabe und Out-of-Order-Ausführung sind die Grundlage der Leistung nahezu jeder modernen CPU. Das mikroarchitektonische Design hat auch Sicherheitskonsequenzen – Seitenkanäle bei spekulativer Ausführung wie Spectre und Meltdown entstehen direkt aus Leistungsmerkmalen.

History

Pipelining und multiple Funktionseinheiten erschienen in den 1960er Jahren im IBM System/360 Model 91 und CDC 6600, wo Tomasulo die dynamische Planung einführte. RISC-Mikroarchitekturen der 1980er Jahre machten tiefe Pipelines zum Mainstream, und superskalare Out-of-Order-Designs wurden in Hochleistungs-CPUs in den 1990er und 2000er Jahren dominant. Aggressive Spekulation legte später die 2018 bekannt gewordenen mikroarchitektonischen Seitenkanäle offen.

Debates

Aggressive Spekulation versus Sicherheit und Effizienz
Tiefe spekulative Out-of-Order-Ausführung steigert die Single-Thread-Leistung, erhöht aber den Energieverbrauch und hat Sicherheitsangriffe durch transiente Ausführung ermöglicht, was eine Debatte darüber ausgelöst hat, wie viel Spekulation im Vergleich zu einfacheren, effizienteren oder vorhersehbareren Designs sinnvoll ist.

Key figures

  • Robert Tomasulo
  • John L. Hennessy
  • David A. Patterson
  • Yale Patt
  • James E. Smith

Related topics

Seminal works

  • hennessy2019
  • tomasulo1967
  • patterson2020

Frequently asked questions

Was ist der Unterschied zwischen In-Order- und Out-of-Order-Ausführung?
Ein In-Order-Prozessor führt Befehle streng in Programmreihenfolge aus und stoppt, wenn die Operanden eines Befehls nicht bereit sind. Ein Out-of-Order-Prozessor führt jeden Befehl aus, dessen Operanden verfügbar sind, wobei er Puffer und Umbenennung verwendet, um die Ausführung neu zu ordnen, während die Ergebnisse weiterhin in Programmreihenfolge festgeschrieben werden.
Warum ist die Sprungvorhersage wichtig?
Tiefe Pipelines holen Befehle ab und beginnen mit deren Ausführung, bevor die Richtung eines Sprungs bekannt ist. Eine genaue Sprungvorhersage ermöglicht es dem Prozessor, die Pipeline entlang des wahrscheinlichen Pfades voll zu halten; eine Fehlvorhersage verschwendet die spekulative Arbeit und verursacht eine Strafe von mehreren Zyklen.

Methods for this concept

Related concepts