Ansätze der Optimierung per
Hardware (Fortsetzung)
Simultaneous Multi-Threading
(Fortsetzung)
IA-32 Decoder
IA-32 Instruktionen sind vom Standpunkt des Decoders her extrem mühselig,
verfügen sie doch über eine variable Instrunktionslänge, sowohl
in Länge als auch in möglichen Parametern/Optionen. Daher ist der
Decoder sehr komplex und aus einer hohen Anzahl von Transistoren aufgebaut,
weshalb mal sich bei Intel dafür entschieden hat, den Decoder gemeinsam
zu nutzen.
Der Decoder holt sich die
IA-32 Instruktionen aus dem Streaming Puffer und decodiert diese, so dass handliche
und RISC-ähnliche µOps entstehen, die anschließend in den L1
Trace Cache geschrieben werden. Im Gegensatz zu seinen Vorgängern (686)
und Konkurrenten (K7) arbeitet der - oftmals zurecht - als "verkrüppelt" (Darek Mihocka, Pentium 4 in Depth)
beschimpfte Decoder des Pentium 4 lediglich einfach, oder anders ausgedrückt:
Der Decoder des Pentium 4 kann lediglich eine Instruktion pro Taktzyklus decodieren,
wohingegen der Pentium III sowie Athlon bis zu drei Instruktionen pro Taktzyklus
decodieren können.
Im Grunde genommen alles halb so wild, kommen doch ohnehin die meisten Instruktionen
aus dem Trace-Cache und benötigen deutlich länger als einen Tyktzyklus
zum Ausführen. Der Decoder mag zwar langsam erscheinen, die Auswirkungen
sind jedoch nicht so gravieren wie man zu Beginn meint.
Kommt nun jedoch ein zweiter
logischer Prozessor mit hinzu, so stellt der Decoder plötzlich doch eine
massive Beschränkung dar. Bei parallelen Zugriffen muss ergo zwischen den
beiden logischen Prozessoren alterniert werden. Hierbei zogen es die Ingenieure
vor, erst mehrere Instruktionen für einen logischen Prozessor zu decodieren
und anschließend mehrere für den anderen. Bei ungeschicktem Timing
kann es hier also durchaus zu längeren Wartezeiten kommen, während
denen ein logischer Prozessor zum Nichtstun verdammt ist.
Den Grund für die Entscheidung, den Decoder gemeinsam nutzen zu müssen,
gibt Intel mit der enormen Einsparung an DIE-Größe an. Eine Entscheidung,
die dem Xeon MP und Pentium 4 HT letztlich signifikant Performance kostet.
Diesen Artikel bookmarken oder senden an ...