Information Technology Reference
In-Depth Information
Befehlsfolge, der als reale Operation in Zeile 2 des Trace-Buffer-Eintrags parallel
zur Sprungoperation codiert ist und ein Ergebnis im Schattenregister r1' erzeugt.
Falls die reale Sprungoperation verzweigt, muss das Ergebnis verworfen werden,
was leicht zu realisieren ist, indem man es nicht in das Register r1 kopiert. Falls es
jedoch zu keiner Verzweigung kommt, wird der Inhalt des Schattenregisters r1' in
Zeile 4 des Trace-Buffer-Eintrags mittels set-Operation in das Register r1 übertra-
gen.
Selektive Operationsauswahl
Einer besonderen Erklärung bedarf noch die mit einem Hochkomma versehene reale
Operation xor' in Zeile 2 des Trace-Buffer-Eintrags (hervorgehoben gesetzt). Nor-
malerweise lässt sich eine reale VLIW-Befehlsfolge immer nur von einer einleiten-
den Sprungmarke ausgehend verarbeiten (hier V1), und zwar deshalb, weil die rea-
len Operationen bezogen auf die Originalbefehlsfolge umgeordnet wurden und es
daher nicht ohne weiteres möglich ist, eine zweite Einsprungstelle zu identifizieren.
So ist z.B. eine Verzweigung zur virtuellen Sprungmarke L2 in Bild 4.9 nicht real
durch eine Sprungoperation zur Sprungmarke V4 nachbildbar, da hierbei sowohl die
add- als auch die beq-Operation ausgeführt werden würde. Gewöhnlich verfährt
man deshalb so, dass mit jedem bisher nicht übersetzten Sprungziel (z.B. zur
Sprungmarke L2 in der virtuellen Nemesis-Befehlsfolge) zunächst ein neuer Trace-
Buffer-Eintrag reserviert und dieser mit VLIW-Befehlen gefüllt wird.
Vorteilhaft hieran ist, dass sich abhängig von der Vorgeschichte unterschiedliche
dynamisch angepasste Befehlsfolgen generieren lassen, die kontextabhängig aufge-
rufen werden und möglicherweise zu einem optimalen Laufzeitverhalten beitragen.
Als Nachteil ist jedoch u.a. ein hoher Speicherbedarf in Kauf zu nehmen, was für
einfache Systeme, für die die Nemesis-Architektur vorrangig konzipiert wurde, ein
Problem darstellen kann. Damit Einsprünge in bereits generierte VLIW-Befehlsfol-
gen möglich sind, kommt deshalb eine an der TU Berlin für den Nemesis X entwi-
ckelte, als selektive Operationsauswahl bezeichnete Technik zum Einsatz: Jede reale
Operation eines VLIW-Befehls lässt sich durch ein Präferenzbit kennzeichnen. Falls
der sog. Präferenzmodus inaktiv ist, werden wie gewohnt gekennzeichnete und
nicht gekennzeichnete Operationen, andernfalls ausschließlich die mit dem Präfe-
renzbit markierten Operationen ausgeführt.
Der Präferenzmodus wird normalerweise durch eine verzweigende reale Sprungo-
peration aktiviert und lässt sich explizit mit jedem VLIW-Befehl deaktivieren (in
Bild 4.9 z.B. angezeigt durch den Punkt am Ende des VLIW-Befehls in Zeile 2). So
kann z.B. mit der selektiven Operationsauswahl bei einer Verzweigung zu L2 die
VLIW-Befehlsfolge ab V4 aufgerufen werden, wenn der Präferenzmodus zuvor
aktiviert wurde. Im Trace-Cache ist hierzu nur die Adresse V4 zusammen mit der
Information, beim Aufruf der realen Befehlsfolge den Präferenzmodus zu aktivie-
ren, einzutragen.
Beachtenswert ist dabei, dass Lesezugriffe auf Schattenregister , deren Inhalte mög-
licherweise noch nicht definiert sind, sich immer auf die Originalregister beziehen.
Search WWH ::




Custom Search