Information Technology Reference
In-Depth Information
rebefehl den ältesten Eintrag aus dem verwendeten Hardware-Puffer zu entfernen.
Er darf schließlich vollständig gelöscht werden, wenn ein ungekennzeichneter Spei-
cherzugriffsbefehl zur Ausführung gelangt.
1:
ld
ld
ld.p
ld.p
st.p
st
2:
st
3:
ld
4:
ld
5:
st
Bild 4.10. Datenspekulation. Die Ladebefehle in den Zeilen 3 und 4 werden vor den Speicherebe-
fehl in Zeile 4 verschoben. Die von Nemesis X ausgeführte Befehlsfolge ist rechts dargestellt
Das Verfahren hat seine Grenzen. Insbesondere sind Zugriffe auf Peripheriekompo-
nenten immer in der richtigen Reihenfolge auszuführen. Damit sie während der
Binärübersetzung erkannt werden, sind die entsprechenden Lade- bzw. Speicherebe-
fehle deshalb ebenfalls gekennzeichnet, und zwar durch Angabe des für Peripherie-
zugriffe reservierten Adressraumkennungsregisters asi3. In diesem Merkmal unter-
scheidet sich die aus Laufzeitumgebung Genesis X und VLIW-Prozessor Nemesis X
bestehende Einheit von anderen, nach demselben Prinzip arbeitenden Umsetzungen,
wie z.B. Crusoe TM5800 von Transmeta [94, 187], Daisy und BOA von IBM [34,
35, 36, 53] sowie Dynamo von HP [12, 13]: Erkennt man bei diesen Umsetzungen
in einer binär zu übersetzenden virtuellen Befehlsfolge einen Peripheriezugriff , wer-
den sämtliche Speicherzugriffsbefehle in der im skalaren Original vorgegeben Rei-
henfolge codiert. Dass hierbei auch die nicht auf Peripheriekomponenten zugreifen-
den Lade- und Speicherebefehle in der korrekten Reihenfolge zu bearbeiten sind,
liegt daran, dass es andernfalls, wie oben beschrieben, zu einer Ausnahmebehand-
lung kommen könnte und bei der erneuten, nun interpretierten Bearbeitung des
separierten Programmpfads Peripheriezugriffe ggf. unerlaubterweise mehrfach aus-
geführt würden.
4.2.4 Codewandlung (code morphing)
Im vorangegangenen Abschnitt wurde beschrieben, wie man eine virtuelle Befehls-
folge binär übersetzen kann. Das zum Einsatz kommende, sehr einfache Verfahren
erzeugt in nur einem Durchgang eine reale operationsparallele VLIW-Befehlsfolge.
Selbstverständlich lassen sich dabei auch Optimierungen vornehmen, insbesondere
um die Ausführungsgeschwindigkeit der einzelnen separierten Programmpfade zu
verbessern. Allerdings ist eine solche Codeverbesserung umso zeitaufwendiger, je
komplizierter die dabei zum Einsatz kommenden Verfahren sind. Damit die Gesamt-
bearbeitungszeit eines virtuellen Programms nicht steigt, weil einige nur selten zur
Ausführung gelangende virtuelle Befehlsfolgen bei einer möglichen Binärüberset-
zung unnötig aufwendig optimiert werden, verwendet man z.B. bei Transmeter für
den Crusoe TM5800 bzw. den Efficeon ein mehrstufiges Verfahren zur Profilbil-
dung und Binärübersetzung, das sog. Code Morphing [94].
Search WWH ::




Custom Search