Information Technology Reference
In-Depth Information
Adressbereiche anschließt. (Zur Klärung: Zwar handelt es sich hier um virtuelle
Adressen, die von der Speicherverwaltungseinheit umgesetzt werden, diese bezie-
hen sich jedoch auf das reale VLIW-Programm.)
Ein kurioser Effekt hierbei ist, dass der Trace-Buffer den virtuellen Adressraum bis
zu einer beliebig festlegbaren Schranke nach und nach durchwandert, wie Bild 4.14
a bis d in zeitlicher Abfolge zeigt. Mit dem Nemesis X ist dies jedoch unproblema-
tisch, weil (1.) jedem Prozess ein eigener virtueller Adressraum zugeordnet ist und
somit die durch die Trace-Buffer-Einträge belegten Adressbereiche der verschiede-
nen Prozesse keine Überschneidungen aufweisen und weil (2.) das Durchwandern
des virtuellen Adressraums keine Auswirkungen auf den realen Adressraum hat, der
Trace-Buffer sich daher im realen Speicher (nach der Adressumsetzung durch die
Speicherverwaltungseinheit) auf einen eng umgrenzten Bereich beschränken lässt.
Falls der für die Trace-Buffer-Einträge reservierte Adressbereich vollständig durch-
laufen ist, muss man natürlich trotzdem einen neuen Eintrag reservieren können.
Die sehr einfache Vorgehensweise hier ist, den gesamten Trace-Buffer in diesem
Fall einmal zu löschen.
a
b
c
d
Bild 4.14. Der im Nemesis X realisierte Trace-Buffer, der den virtuellen Adressraum durchwandert.
Dies ist schrittweise in den Teilbildern angedeutet, wobei die grau unterlegten Einträge des Trace-
Buffers jeweils freigegeben und die hervorgehoben umrahmten Einträge neu reserviert werden
Bemerkung. Eine Speicherbereinigung wird nicht nur durchgeführt, wenn man Platz im Trace-
Cache benötigt oder das binärübersetzte Programm neu laufzeitoptimieren möchte, sondern auch,
wenn sich das virtuelle Programm ändert, d.h. selbstmodifizierender Code ausgeführt wird. Die zu
Daisy beschriebene Vorgehensweise in einem solchen Fall ist, dass Schreibzugriffe auf das virtuelle
Programm von der Speicherverwaltungseinheit erkannt und im Seitendeskriptor zum korrespondie-
renden Trace-Buffer-Eintrag vermerkt werden [34, 35]. Beim Versucht die binärübersetzte Befehls-
folge auszuführen, wird schließlich eine Ausnahmebehandlung angestoßen und die erneute Binärü-
bersetzung der veränderten virtuellen Befehlsfolge initiiert. Es sei darauf hingewiesen, dass ein ent-
sprechendes Verfahren zum Nemesis X nicht realisiert werden musste, da selbstmodifizierender
Code hier nicht erlaubt ist.
4.2.7 Ausnahmeverarbeitung
Bei Verarbeitung von Ausnahmeanforderungen muss, genau wie bei anderen nach
dem Kontrollflussprinzip arbeitende Prozessoren auch, die Adresse des Befehls
Search WWH ::




Custom Search