Information Technology Reference
In-Depth Information
verwendeten Zielregister die Datenspeicheradresse sowie das Zugriffsformat zu pro-
tokollieren 1 . Mit jedem nachfolgenden Speicherezugriff wird die ALAT entspre-
chend der für den Schreibzugriff verwendeten realen Adresse und des Zugriffsfor-
mats durchsucht. Falls sich dabei ein passender Eintrag findet, bedeutet dies, dass
die zum Eintrag gehörende spekulativ ausgeführte Ladeoperation eine Datenabhän-
gigkeit zur Speichereoperation aufweist, das gelesene Datum also ungültig ist. Als
Folge wird der entsprechende Eintrag aus der ALAT gelöscht.
In Zeile 3 kommt es wegen der Load-Check-Operation (ld8.c) erneut zu einer
Durchsuchung der ALAT, diesmal jedoch nach dem verwendeten Zielregister. Falls
ein Eintrag gefunden wird, ist dies ein Beleg dafür, dass keine Speichereoperation
ausgeführt wurde, die das spekulativ gelesene Datum hätte verändern können. Die
Ladeoperation in Zeile 3 lässt sich daher, ohne erneut auf den Datenspeicher zugrei-
fen zu müssen, abschliessen. Sollte jedoch kein passender Eintrag in der ALAT
identifiziert werden, so wurde dieser entweder durch eine Speichereoperation ent-
fernt oder der verfügbare Platz in der Tabelle hat nicht ausgereicht. In beiden Fällen
wird der Lesezugriff auf den Datenspeicher wiederholt.
Bemerkt sei, dass das in Zeile 3 zusätzlich angegebene Attribut „.clr“ das Löschen
des in der ALAT stehenden Eintrags bewirkt. Dies ist sinnvoll, wenn sich nicht meh-
rere Zugriffe auf denselben spekulativ gelandenen Operanden beziehen. Ohne die-
ses Attribut wird der bestehende Eintrag ggf. automatisch gelöscht, sobald die
ALAT vollständig gefüllt ist und, wegen einer spekulativ auszuführenden Ladeope-
ration, ein neuer Eintrag reserviert werden soll. Natürlich hat dies zur Konsequenz,
dass möglicherweise ein Lesezugriff auf den Datenspeicher zu wiederholen ist, auf
dessen Zugriffsadresse zwischenzeitlich nicht zugegriffen wurde, für den diese Wie-
derholung also unnötig ist. Die Semantik des Programms bleibt dabei in jedem Fall
sicher erhalten.
Sprungoperationen und bedingte Operationsausführung
Die durch Sprungoperationen in Fließbandprozessoren verursachten Probleme sind
bereits in Abschnitt 2.2.4 eingehend erläutert worden. Im Folgenden seien jedoch
noch einige im Zusammenhang mit VLIW-Prozessoren stehende Besonderheiten
behandelt: Genau wie bei skalaren Fließbandprozessoren können Sprungoperatio-
nen Konflikte verursachen, bei deren Auftreten bereits in Bearbeitung befindliche
Operationen abgebrochen werden müssen. Wegen der Parallelverarbeitung ist
jedoch die Anzahl der in einem VLIW-Prozessor zu verwerfenden Operationen um
ein Vielfaches höher als in einem bezüglich der Fließbandaufteilung ähnlich reali-
sierten skalaren Prozessor.
Aus diesem Grund ist die Sprungvermeidung durch bedingte Operationsausführung,
also die Prädikation, im Programmiermodell der meisten VLIW-Prozessoren defi-
niert, so z.B. im TriMedia TM-1300 von Philips [141], im TMS320C62x von Texas
1.
Tatsächlich wird im ersten Takt zunächst nur die aus der virtuellen Adresse extrahierbare Byte-
nummer gespeichert. Sie wird jedoch um die Rahmennummer ergänzt, sobald die Adressumset-
zung der Speicherverwaltungseinheit vollständig durchlaufen wurde.
Search WWH ::




Custom Search