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)

Micro­code ROM
Im Micro­code ROM lie­gen bereits deco­dier­te Instruk­tio­nen vor, deren Deco­die­rung auf­grund ihrer Kom­ple­xi­tät (zur Erin­ne­rung: CISC = Com­plex Ins­truc­tion Set Com­pu­ter) den Pro­zes­sor unnö­tig lan­ge auf­hal­ten wür­de. Das Micro­code ROM ist also nichts wei­ter, als eine Tabel­le mit allen kom­ple­xen Ein­trä­gen, auf die bei Bedarf zurück­ge­grif­fen wird.
Wie beim L1 Trace Cache auch, gibt es hier zwei unab­hän­gig von­ein­an­der ope­rie­ren­de Zei­ger, pro logi­schen Pro­zes­sor einen. Die Ein­trä­ge sind geteilt, bei gleich­zei­ti­gen Zugrif­fen wird auch hier takt­wei­se abwech­selnd zugegriffen.

ITLB
Der ITLB (Ins­truc­tion Trans­la­ti­on Loo­ka­s­i­de Buf­fer, schnel­ler Puf­fer­spei­cher für Instruk­tio­nen) kommt ins Spiel, wenn eine Instruk­ti­on benö­tigt wird die sich nicht im L1 Trace Cache befin­det. Der ITLB emp­fängt die Anwei­sung vom Trace Cache bestimm­te Daten zu lie­fern und setzt den Ins­truc­tion Poin­ter auf die phy­si­ka­lisch anzu­sprin­gen­de Adresse.
Jeder logi­sche Pro­zes­sor ver­fügt hier über einen eige­nen, unab­hän­gi­gen ITLB inkl. aller benö­tig­ten Zei­ger, sowie einen eige­nen 64 Byte Strea­ming Puf­fer, aus dem die Daten anschlie­ßend in den L1 Trace Cache geschrie­ben werden.

Sprung­vor­her­sa­ge
Die Sprung­vor­her­sa­ge ist geteilt, ein Teil wur­de ver­dop­pelt, ein ande­rer muss gemein­sam benutzt wer­den. Der Return Stack Puf­fer wur­de auf­grund sei­ner gerin­gen Tran­sis­to­ren­zahl ver­dop­pelt, sowie der Tat­sa­che, dass Rück­sprung­vor­her­sa­gen deut­lich effek­ti­ver und effi­zi­en­ter sind, wenn sie für jeden logi­schen Pro­zes­sor sepa­rat ver­füg­bar sind.

Das gro­ße Glo­bal Histo­ry Array hin­ge­gen muss gemein­sam genutzt wer­den, die ein­zel­nen Ein­trä­ge ver­fü­gen jedoch über eine ein­deu­ti­ge CPU-ID und ver­ur­sa­chen somit kei­ner­lei Konflikte.