next up previous contents
Next: Ereignisse Up: Implementierung in Hardware Previous: Einordnung in die Pipeline   Inhalt

Schnittstellen

Abbildung 4.3 zeigt die Schnittstelle der Fetch-Logik. Eingangssignale sind neben dem Takt und einem Reset-Signal nur noch die Füllstände der Befehlsfenster. Auf der Ausgangsseite gibt IfThreadTag die Nummer des Fensters mit dem geringsten Füllstand an, IfInvalid zeigt an, daß gar keine Befehle aus dem Speicher nachgeladen werden können, weil in das Fenster keine 32 Bits mehr hineinpassen.

Abbildung 4.3: Schnittstelle der Fetch-Logik, n ist die Anzahl der Threads.

Abbildung 4.4 zeigt die Schnittstelle des Schedulers. In diesem Teil wird die Entscheidung getroffen, welcher Thread als nächstes von der Decode-Stufe bearbeitet wird. Der Ausgang IdThreadTag gibt die Nummer dieses Thread an. Auch hier zeigt IdInvalid an, daß im folgenden Takt gar kein Befehl ausgeführt werden darf.

Als Eingangssignale benötigt der Scheduler neben dem Takt und dem Reset-Signal die Füllstände der Befehlsfenster (Fill), die Parameter (Parameter) der Threads und die Latenztakte des zuletzt ausgeführten Befehls. Für jeden Thread ist zudem die Information nötig, ob er gerade Mikrobefehle ausführen kann (OpsExecution), ob er blockiert ist (HWActive, SWActive), ob er auf eine atomare Sperre wartet (LockNeeded) und ob ein Hardwareereignis aufgetreten ist, das er bearbeiten soll (SignalArrived).

Abbildung 4.4: Schnittstelle des Schedulers, n ist die Anzahl der Threads.

Da der Prioritäten-Manager nicht mehr auf den zur Verfügung stehenden FPGA passen würde, und um unabhängige Tests durchführen zu können, werden die Fetch-Logik und der Scheduler in eine Testumgebung eingesetzt, die die Funktionalität der Pipeline simuliert.

Die Schnittstelle der Testumgebung besteht zum einen aus allen Signalen, die für die Verbindung mit dem Scheduler und der Fetch-Logik benötigt werden, zum anderen aus denjenigen Signalen, die die Außenanbindung der Schaltung ermöglichen. Dies sind zwei 32 Bit breite Datenbusse - einer zum Lesen der Befehle aus dem Speicher und einer zum Zurückschreiben der Simulationsergebnisse - ein Adreßbus und drei Steuerleitungen, die dem Speicher einen Lese- bzw. Schreibwunsch signalisieren. Dazu ein Resetsignal und der Takt.

Die Anordnung wird dann in eine Schaltung eingebettet, die den Speicherzugriff von der Testumgebung aus, aber auch vom ISA-Bus des PC aus erlaubt, in dem die Prototypenkarte mit dem FPGA installiert ist. Dadurch können ohne ein Neuladen des FPGA neue Programme in den Speicher der Karte geschrieben und Simulationsergebnisse daraus gelesen werden.

Die vollständigen Quellen des Prioritäten-Managers sind im Anhang A gegeben.


next up previous contents
Next: Ereignisse Up: Implementierung in Hardware Previous: Einordnung in die Pipeline   Inhalt
Alexander Schulz
2000-06-18