Mikroarchitektur ist ein Thema, das die Aufmerksamkeit von Menschen jeden Alters und aller Interessen erregt hat. Von seinen Auswirkungen auf die heutige Gesellschaft bis hin zu seiner historischen Relevanz hat Mikroarchitektur leidenschaftliche Diskussionen und Debatten unter Experten und Fans gleichermaßen ausgelöst. Mit einer breiten Palette an Standpunkten und Meinungen ist Mikroarchitektur ein Thema, das niemanden gleichgültig lässt. In diesem Artikel werden wir verschiedene Aspekte im Zusammenhang mit Mikroarchitektur untersuchen und uns mit seinem Einfluss in der heutigen Welt und seiner Bedeutung in verschiedenen Kontexten befassen.
Der Begriff Mikroarchitektur (auch µarch) bezeichnet die Implementierung eines Befehlssatzes innerhalb eines Rechners. Hierzu zählt man:
Die Mikroarchitektur bezieht sich nicht auf die konkrete physikalische und fertigungstechnische Realisierung einer CPU. Die Mikroarchitektur ist ein Teilgebiet der Rechnerarchitektur und somit auch der technischen Informatik.
Die Rechnerstruktur beinhaltet alle Funktionseinheiten und deren Verbindungsstruktur. Ein Beispiel für eine einfache Rechnerstruktur stellen die Komponenten des Von-Neumann-Rechners dar.
Die Rechnerorganisation ist die Organisation des Zusammenwirkens aller Funktionseinheiten, so dass Arbeitsabläufe entstehen, welche die Befehle des Befehlssatzes ausführen. Die Rechnerorganisation wird durch das Leitwerk realisiert. Wesentliche Funktionseinheiten des Leitwerks sind dabei:
Zum Entwurf einer Mikroarchitektur ist es nützlich eine Hardwarebeschreibungssprache zu verwenden.
Bei der Optimierung auf verschiedene Leistungsziele müssen die auszuführenden Programme, der Befehlssatz, die Mikroarchitektur, die Fertigung und deren Zusammenspiel berücksichtigt werden. Trotz dieses Themenkomplexes gibt es Leistungseigenschaften, die alleine von der Mikroarchitektur abhängen. Beispiele sind:
Sie legt fest, wie viele Befehle des Befehlssatzes ein Prozessorkern maximal pro Taktzyklus abarbeiten kann. Man unterscheidet:
Zur Beschleunigung der Ausführung von Maschinenbefehlen werden ein oder mehrere Caches genutzt. Caches sind notwendig, um die mittlerweile 2 Größenordnungen an Geschwindigkeitsunterschied zwischen Prozessorkernen (0,2–0,8 ns/Takt) und Hauptspeicher (45–70 ns) abfangen zu können und um mehrere Kerne innerhalb einer CPU zu ermöglichen. Mittlerweile sind mindestens 2 Cache-Level (ARM) üblich, bei Intel/AMD sind 3 Cache-Level üblich. Zur Wahrung der Konsistenz der Caches bei Mehrkernprozessoren werden zusätzlich Cache-Kohärenz-Protokolle verwendet.
Es werden Mehrkernrechner, Mehrprozessorsysteme und Parallelrechner zur gleichzeitigen Abarbeitung mehrerer sequentieller Programme genutzt. Auch unterstützen moderne Rechner paralleles Rechnen auf einem Kern durch Erweiterungen in der Befehlssatzarchitektur, wie Multi Media Extension. Es gibt jedoch Grenzen, wie weit eine Anwendung parallelisiert werden kann (siehe Amdahlsches Gesetz, Gustafsons Gesetz).