Mikroarchitektur
aus Wikipedia, der freien Enzyklopädie
Der Begriff Mikroarchitektur bezeichnet die konkrete, prozessorinterne Realisierung einer CPU mit vorgegebener Instruction Set Architecture (ISA). Er bezieht sich ausdrücklich nicht auf die fertigungstechnische Realisierung einer CPU, sondern auf die internen Abläufe bei der Verarbeitung von Befehlen auf Register-Transfer-Ebene oder auf logischer Ebene. So ist beispielsweise die superskalare Implementierung einer CPU nur eine Art der Realisierung ihrer Mikroarchitektur, wohingegen Begriffe wie VLIW und EPIC verschiedene Paradigmen beim Entwurf einer ISA bezeichnen.
Die bei einem Prozessor implementierte ISA lässt nicht zwangsweise Rückschlüsse auf die verwendete Mikroarchitektur zu. In der Praxis werden Mikroarchitekturen oft mit Blick auf eine vorgegebene ISA entworfen, etwa um die Kompatiblität zu Vorgängermodellen einer CPU zu wahren. Die Unterschiede zur Mikroarchitektur des Vorgängermodells können dabei mitunter erheblich sein. Als Beispiel seien die x86-CPUs Pentium und Pentium Pro genannt, deren Befehlssätze sich – von ein paar Erweiterungen beim Pentium Pro abgesehen – kaum unterscheiden, deren Mikroarchitekturen aber grundverschieden sind.
Die Ziele beim Entwurf einer neuen oder bei der Weiterentwicklung einer bestehenden Mikroarchitektur können vielfältig sein. Sie sind in der Regel abhängig vom späteren Einsatzzweck der CPU, manchmal auch vom Marketting. Im Vordergrund steht meist die möglichst schnelle Ausführung eines Programms. Aber auch Aspekte wie kostengünstige Fertigung, Energieverbrauch, Skalierbarkeit, Erweiterbarkeit und Wartbarkeit können Entwurfsziele sein. Besonders deutlich wird dies wiederum am Beispiel x86-kompatibler CPUs: Während die Marktführer Intel und AMD ihre x86-Mikroarchitekturen primär auf hohe Ausführungsgeschwindigkeiten trimmen, versuchen Hersteller wie Transmeta und VIA im weitaus höheren Maße, Fertigungskosten und Stromverbrauch zu minimieren. So ist die Mikroarchitektur des in der Tradition des WinChip stehenden VIA C3 zu diesem Zweck besonders einfach gehalten, wohingegen Transmeta beim Crusoe und beim Efficeon eine Mikroarchitektur mit einer Art hochspezialisierter VLIW-CPU verwendet, die eine so genannte Code-Morphing-Software ausführt, welche letztendlich für die Ausführung des eigentlichen x86-Code verantwortlich zeichnet.
Ein ganz anderer Ansatz ist, die ISA von vornherein so zu entwerfen, dass Designziele bei der Implementierung einer passenden Mikroarchitektur besonders einfach umzusetzen sind. Derartige Ansätze sind natürlich nur bei CPU-Neuentwicklungen möglich, deren ISA keine Rückwärtskompatiblität erfordert. Intel ist diesen Weg bei der Entwicklung der Itanium-CPU gegangen, bei deren Entwurf eine möglichst einfache In-Order-Befehlsausführung im Vordergrund stand, was Energie und Chipfläche sparen und nicht zuletzt auch die Ausführungsgeschwindigkeit erhöhen kann. Der Preis, den der Itanium für diese vereinfachte Befehlsausführung zahlen muss, ist der aufwendige Compiler.