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)

Beson­der­hei­ten des HyperThreading
Wie zu Beginn des SMT-Tei­les die­ses Arti­kels bereits erwähnt, war eines der Zie­le für die Imple­men­tie­rung von Hyper-Thre­a­ding, die im Ver­gleich zu einem gleich­schnell getak­te­ten Pro­zes­sor ohne Hyper-Thre­a­ding, iden­ti­sche Aus­führ­ge­schwin­dig­keit von nicht Mul­ti-Threa­ded Anwendungen.

Jedoch ist dies rech­ne­risch mit halb so gro­ßen Cache, halb so schnel­lem Deco­der und den wei­te­ren beschrie­be­nen Begren­zun­gen und Beschän­kun­gen durch gemein­sa­me Nut­zung der Res­sour­cen nicht mög­lich. Des­halb kann der Pro­zes­sor — im lau­fen­den Betrieb — in den sog. Sin­gle-Task Modus geschal­tet wer­den. Im ST0/ST1 Mode (ST0 = logi­scher Pro­zes­sor 1 ist über HALT inak­tiv gesetzt wor­den, ST1 = logi­scher Pro­zes­sor 0 ist über HALT inak­tiv gesetzt wor­den) wer­den alle zuvor par­ti­tio­nier­ten oder gemein­sam benutz­ten Res­sour­cen ver­eint und ste­hen einem ein­zi­gen logi­schen Pro­zes­sor zur Ver­fü­gung. Der ande­re logi­sche Pro­zes­sor ruht wäh­rend die­ser Zeit.

Erreicht wird dies durch Anwen­dung des HALT-Befehls auf einen logi­schen Pro­zes­sor. Wird bei­spiels­wei­se HALT auf den logi­schen Pro­zes­sor 0 ange­wandt, so geht die­ser in den Schlaf­mo­dus über und alle Res­sour­cen kön­nen vom logi­schen Pro­zes­sor 1 ver­wen­det wer­den. Wird auch die­ser per HALT in den Schlaf­mo­dus geschickt, so geht der gesam­te Pro­zes­sor in den C1-Mode über und schlum­mert vor sich hin. Der Über­gang vom ST0/ST1 Mode in den MT Mode (Mul­ti-Task, zwei logi­sche Pro­zes­so­ren ver­füg­bar) geschieht auf einen Inter­rupt an einen logi­schen Pro­zes­sor hin.

Die Kon­trol­le unter­liegt dem Betriebs­sys­tem, wes­halb Intel auch expli­zit dar­auf hin­weist, dass even­tu­ell Ände­run­gen in den bestehen­den Betriebs­sys­te­men nötig sein könn­ten. Zum einen muss logi­scher­wei­se SMP unter­stützt wer­den, schließ­lich ist ein Mikro­pro­zes­sor mit Hyper-Thre­a­ding Tech­no­lo­gie von Sicht des Betriebs­sys­tems aus ein her­kömm­li­ches SMP-System.
Wei­ter­hin soll­te das Betriebs­sys­tem den HALT-Befehl expli­zit nut­zen, wenn nur ein Pro­zes­sor benö­tigt wird. Denn ist dies nicht der Fall, führt das Betriebs­sys­tem einen sog. Idle-Loop durch, der jedoch einen signi­fi­kan­ten Teil der ver­füg­ba­ren Res­sour­cen auf­braucht und den Pro­zes­sor dadurch aus­las­tet. Die­se Res­sour­cen ste­hen dann logi­scher­wei­se dem reel­len Code aus­führ­ba­ren Pro­zes­sor nicht mehr zur Ver­fü­gung und sind somit verschwendet.

Eine letz­te Opti­mie­rung betrifft den Ein­satz von HT-fähi­gen Pro­zes­so­ren in SMP-Sys­te­men. Hier­bei soll­te das Betriebs­sys­tem Auf­ga­ben zunächst an phy­sisch vor­han­de­ne Pro­zes­so­ren zutei­len und anschlie­ßend erst auf die logi­schen zurück­grei­fen. So wird letzt­end­lich eine opti­ma­le Aus­las­tung aller vor­han­de­nen — irrele­vant ob logisch oder phy­sisch — sichergestellt.