Doping für CPUs — Möglichkeiten der Leistungssteigerung

Artikel-Index:

Ansätze der Optimierung per Hardware (Fortsetzung)

Simul­ta­neous Mul­ti-Thre­a­ding (Fort­set­zung)

IA-32 Deco­der
IA-32 Instruk­tio­nen sind vom Stand­punkt des Deco­ders her extrem müh­se­lig, ver­fü­gen sie doch über eine varia­ble Instrunk­ti­ons­län­ge, sowohl in Län­ge als auch in mög­li­chen Parametern/Optionen. Daher ist der Deco­der sehr kom­plex und aus einer hohen Anzahl von Tran­sis­to­ren auf­ge­baut, wes­halb mal sich bei Intel dafür ent­schie­den hat, den Deco­der gemein­sam zu nutzen.

Der Deco­der holt sich die IA-32 Instruk­tio­nen aus dem Strea­ming Puf­fer und deco­diert die­se, so dass hand­li­che und RISC-ähn­li­che µOps ent­ste­hen, die anschlie­ßend in den L1 Trace Cache geschrie­ben wer­den. Im Gegen­satz zu sei­nen Vor­gän­gern (686) und Kon­kur­ren­ten (K7) arbei­tet der — oft­mals zurecht — als “ver­krüp­pelt” (Darek Miho­cka, Pen­ti­um 4 in Depth) beschimpf­te Deco­der des Pen­ti­um 4 ledig­lich ein­fach, oder anders aus­ge­drückt: Der Deco­der des Pen­ti­um 4 kann ledig­lich eine Instruk­ti­on pro Takt­zy­klus deco­die­ren, wohin­ge­gen der Pen­ti­um III sowie Ath­lon bis zu drei Instruk­tio­nen pro Takt­zy­klus deco­die­ren können.
Im Grun­de genom­men alles halb so wild, kom­men doch ohne­hin die meis­ten Instruk­tio­nen aus dem Trace-Cache und benö­ti­gen deut­lich län­ger als einen Tyk­t­zy­klus zum Aus­füh­ren. Der Deco­der mag zwar lang­sam erschei­nen, die Aus­wir­kun­gen sind jedoch nicht so gra­vie­ren wie man zu Beginn meint.

Kommt nun jedoch ein zwei­ter logi­scher Pro­zes­sor mit hin­zu, so stellt der Deco­der plötz­lich doch eine mas­si­ve Beschrän­kung dar. Bei par­al­le­len Zugrif­fen muss ergo zwi­schen den bei­den logi­schen Pro­zes­so­ren alter­niert wer­den. Hier­bei zogen es die Inge­nieu­re vor, erst meh­re­re Instruk­tio­nen für einen logi­schen Pro­zes­sor zu deco­die­ren und anschlie­ßend meh­re­re für den ande­ren. Bei unge­schick­tem Timing kann es hier also durch­aus zu län­ge­ren War­te­zei­ten kom­men, wäh­rend denen ein logi­scher Pro­zes­sor zum Nichts­tun ver­dammt ist.
Den Grund für die Ent­schei­dung, den Deco­der gemein­sam nut­zen zu müs­sen, gibt Intel mit der enor­men Ein­spa­rung an DIE-Grö­ße an. Eine Ent­schei­dung, die dem Xeon MP und Pen­ti­um 4 HT letzt­lich signi­fi­kant Per­for­mance kostet.