Doping für CPUs — Möglichkeiten der Leistungssteigerung

Artikel-Index:

Ansätze der Optimierung per Hardware (SMT)

Simul­ta­neous Multi-Threading
Ein letz­ter Ansatz der Leis­tungs­stei­ge­rung stellt das sog. Simul­ta­neous Mul­ti-Thre­a­ding (kurz SMT) dar. Mit Hil­fe die­ses Ver­fah­rens ist es mög­lich, mul­ti­ple Threads par­al­lel auf einem ein­zi­gen phy­si­ka­li­schen Pro­zes­sor aus­zu­füh­ren, ohne, wie bei TSMT oder SoEMT, zwi­schen den ein­zel­nen Threads hin- und her sprin­gen zu müssen.

Das Prin­zip und die Phi­lo­so­phie hin­ter SMT beruht dar­auf, mit mög­lichst wenig Mehr­kos­ten und Auf­wand einen zwei­ten logi­schen Pro­zes­sor auf ein phy­si­ka­li­sches Die zu packen. Dies wird erreicht, indem eini­ge Bestand­tei­le des Pro­zes­sors ver­dop­pelt wer­den, ande­re wie­der­um par­ti­tio­niert oder gemein­sam genutzt. Die bis­her ein­zi­ge erhält­li­che Imple­men­tie­rung von SMT im x86-Bereich stellt der Intel Xeon MP dar, sowie der in kürz­lich von Intel vor­ge­stell­te Pen­ti­um 4 mit 3.06 GHz und Hyper-Thre­a­ding. Ob es einen Pro­zes­sor von AMD mit Imple­men­tie­rung von Simul­ta­neous Mul­ti-Thre­a­ding geben wird ist noch offen, jedoch wird man Intel lang­fris­tig gewiß nicht nach­ste­hen wollen.
Die fol­gen­den Aus­füh­run­gen sind aus­schließ­lich für den Intel Xeon MP und Intel Pen­ti­um 4 HT zutref­fend, da die Imple­men­tie­rung von SMT von jedem Her­stel­ler anders gelöst wer­den kann. Es kann dem­zu­fol­ge auch kei­ne gene­rel­le Aus­sa­ge über die Effek­ti­vi­tät von SMT gemacht wer­den. Um klar­zu­stel­len, dass mei­ne Aus­füh­run­gen ledig­lich auf die genann­ten Pro­zes­so­ren zutref­fen, wer­de ich im fol­gen­den den Begriff ver­wen­den, mit dem Intel sei­ne Pro­zes­so­ren auch seg­net: Hyper-Thre­a­ding, oder kurz HT.

Die Hyper-Thre­a­ding Tech­no­lo­gie macht, wie bereits erwähnt, aus einem phy­si­ka­li­schen Pro­zes­sor zwei logi­sche. Anga­ben von Intel zufol­ge wur­de dies mit ledig­lich 5% mehr Die-Flä­che erreicht und soll signi­fi­kan­te Per­for­mance­vor­tei­le bie­ten. Jeder logi­sche Pro­zes­sor besteht aus den acht x86 GPRs, den Kon­troll­re­gis­tern, einem APIC (inkl. APIC Regis­tern) und eini­gen Maschi­nen­sta­tus-Regis­tern. Alle rest­li­chen, für den Betrieb benö­tig­ten Res­sour­cen wie Caches, Rechen­ein­hei­ten, die Pipe­line oder die Sprung­vor­her­sa­ge-Logik, müs­sen von den bei­den Pro­zes­so­ren geteilt und somit gemein­sam genutzt werden.
Das — Intel zufol­ge — höchs­te Ziel bei der Imple­men­tie­rung von HT in den Intel Xeon MP war es zum einen, die Aus­füh­rung von ent­spre­chend opti­mier­ter Soft­ware zu beschleu­ni­gen, jedoch gleich­zei­tig die Aus­füh­rung nicht-opti­mier­ter Soft­ware nicht zu ver­lang­sa­men. Somit muss­te zum einen sicher­ge­stellt wer­den, dass ein logi­scher Pro­zes­sor den ande­ren nicht zum Still­stand brin­gen kann und zum ande­ren, dass die geteil­ten Res­sour­cen wie­der ver­eint wer­den, wenn nur ein ein­zel­ner Thread aus­ge­führt wer­den soll. Somit ist auch gleich ein wei­te­res Fea­ture eines Pro­zes­sors mit Hyper-Thre­a­ding klar: Der Pro­zes­sor muss im lau­fen­den Betrieb zwi­schen Mul­ti-Threa­ded Betriebs­mo­dus und Sin­gle-Threa­ded Betriebs­mo­dus hin- und her­schal­ten können.