Die Testumgebung simuliert den Ablauf in einer Pipeline für den Prioritäten-Manager. Die einzelnen Schritte, die dafür nötig sind, werden im Folgenden kurz beschrieben. Jeder Schritt entspricht einem Takt. Abbildung 4.5 zeigt die Zusammenhänge noch einmal grafisch auf.
Dadurch, daß das Holen der Befehle erst nach der Aktivierung des Schedulers erfolgt, was in einer echten Pipeline nicht möglich wäre, erspart man sich die komplexe Verwaltung von verschiedenen Befehlsfenstern, die man zudem mit mehreren 32-Bit-Worten füllen und aus den jeweiligen Befehlen den Füllstand berechnen müßte. Für den Scheduler macht diese Änderung in der Reihenfolge aber keinen Unterschied, da er nur die Füllstände der Fenster betrachtet, jedoch nicht deren Inhalt.
Zusätzlich berechnet die Testumgebung die jeweiligen Befehlszähler der Threads und die Zieladresse, an die Debug-Informationen in den Speicher geschrieben werden.
Jedes 32-Bit-Wort, das aus dem Speicher eingelesen wird, entspricht einem Bytecode-Befehl. Die Kodierung der Eigenschaften in die Speicherworte ist in Tabelle 4.1 zusammengefaßt. Die Bits 7:4 geben die Anzahl der Mikrobefehle an, die für die Ausführung dieses Bytecode benötigt wird. Mit den Aktiv-Bits kann ein Befehl einzelne Threads suspendieren oder wieder aufwecken. Bit 24 zeigt an, daß es sich um einen Sprung handelt, also das Befehlsfenster geleert werden muß.
|