Hauptmenü öffnen
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Angaben ohne ausreichenden Beleg könnten demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst.

Der Begriff Mikroarchitektur (auch µarch) bezeichnet die Implementierung eines Befehlssatzes innerhalb eines Rechners. Hierzu zählt man:

  1. die Rechnerstruktur, also den Aufbau eines Rechners aus Funktionseinheiten (z. B. die ALU, Register) und deren Verbindungstruktur (z. B. durch Busse),
  2. sowie die Rechnerorganisation, d. h. die Organisation des Zusammenwirkens der Funktionseinheiten, so dass Arbeitsabläufe entstehen, welche Befehle ausführen.

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.

RechnerstrukturBearbeiten

 
Intel-Mikroarchitekturen, die den x86 bzw. x86_64 Befehlssatz Implementieren

Die Rechnerstruktur beinhaltet alle Funktionseinheiten und deren Verbindungsstruktur. Ein Beispiel für eine einfache Rechnerstruktur stellen die Komponenten des Von-Neumann-Rechners dar.

RechnerorganisationBearbeiten

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:

  1. Das Befehlszähler-Register, es enthält die (Arbeits-)Speicheradresse des aktuell ausgeführten Befehls
  2. Der Befehlsdecoder:
    1. Bei RISC-Architekturen besteht dieser aus Schaltnetzen.
    2. Bei CISC-Architekturen werden die Befehle vom Befehlsdecoder in einen oder mehrere Mikrobefehle (oder auch Mikrooperationen, µops) übersetzt. Diese Mikrobefehle werden in der Warteschlangeneinheit[1] gespeichert. Die Warteschlangeneinheit beinhaltet einen L0-Cache (die Warteschlange) und das Mikroprogrammsteuerwerk. Die Mikrobefehle des Mikrocodes sind RISC ähnlich.
  3. RISC-Architekturen verwenden eine Operationensteuerung, welche aus endlichen Automaten besteht. CISC-Architekturen verwenden ein Mikroprogrammsteuerwerk, welches auch aus endlichen Automaten besteht. Aufgabe beider Einheiten ist es Befehle (Befehle des Befehlssatzes bei RISC, Mikrobefehle aus der Warteschlangeneinheit bei CISC) in Steuersignale für die Funktionseinheiten zu überführen. Hier wird auch, falls vorhanden, das dynamische Scheduling der Befehle realisiert.

Entwurf einer MikroarchitekturBearbeiten

Zum Entwurf einer Mikroarchitektur ist es nützlich eine Hardwarebeschreibungssprache zu verwenden.

Leistungsmerkmale von MikroarchitekturenBearbeiten

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 diesem Themenkomplexes gibt es Leistungseigenschaften, die alleine von der Mikroarchitektur abhängen, Beispiele sind:

SkalaritätBearbeiten

Sie legt fest, wie viele Befehle des Befehlssatzes ein Prozessorkern maximal pro Taktzyklus abarbeiten kann. Man unterscheidet:

  1. nicht skalare Prozessoren, die kein Pipelining benutzen. Diese Rechner arbeiten in jedem Fall weniger als einen Maschinenbefehl pro Taktzyklus ab.
  2. skalare Prozessoren, die Pipelining benutzen. Diese Rechner arbeiten im Optimalfall genau einen Befehl pro Taktzyklus ab.
  3. superskalare Prozessoren, die weiterentwickeltes Pipelining benutzen. Diese Rechner arbeiten im Optimalfall mehr als einen Befehl pro Taktzyklus ab. Alle modernen Desktoprechner (2018) sind Superskalar.

CacheBearbeiten

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.

ParallelisierungBearbeiten

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, Gustafson's Gesetz).

WeblinksBearbeiten

  Commons: Microarchitectures – Sammlung von Bildern, Videos und Audiodateien

EinzelnachweiseBearbeiten

  1. Austin, Todd.: Rechnerarchitektur Von der digitalen Logik zum Parallelrechner. 6., aktualisierte Auflage. Pearson Studium ein Imprint von Pearson Deutschland, Hallbergmoos 2014, ISBN 978-3-86894-238-5, S. 320.