Diskussion:Tomasulo-Algorithmus

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 9 Jahren von GiftBot in Abschnitt Defekter Weblink
Zur Navigation springen Zur Suche springen

Na, wieviel Punkte gibt das wohl in der Übung für diesen Text?


Das kann ich dir auch nicht sagen, das entscheiden die Tutoren... sieht aber gut aus. Stephan Hagemann


15 von 15 Punkten ;-)

Der ursprüngliche Absatz lautete:

Wenn nun Teile der Pipeline oder die gesamte Pipeline mehrfach vorkommen, spricht man von Superskalarität. Da sich mehrere Befehle gleichzeitig in der Pipeline befinden kann es durch Abhängigkeiten zwischen den auszuführenden Befehlen zu Problemen kommen. Eine naive Lösung ist es, mit der Abarbeitung der nächsten Befehle zu warten. [...]


Allerdings wird Scoreboarding und Tomasulo nicht zum Scheduling in superskalaren Architekturen verwendet. Superskalarität bedeutet, dass mehrere Befehle gleichzeitig in mehreren Pipelines abgearbeitet werden und zwischen ihnen bereits keinerlei Abhängigkeiten mehr bestehen. Diese Befehle werden dann out-of-order ausgeführt und stehen nicht zueinander in Konflikt.

Bei den dynamischen Scheduling Verfahren handelt es sich um single issue Problemstellungen, bei denen jeweils der folgende Befehl sequentiell in die Pipeline geschickt wird. Die Verfahren zielen darauf ab, die Befehle möglichst früh freien Funktionseinheiten zuzuordnen und überlappt auszuführen. In dieser Situation kann es demnach zu Abhängigkeiten und somit zu Konflikten kommen, welche dynamisch durch Wartezeiten (Scoreboard) bzw. Forwarding und Registerumbenennung (Tomasulo) aufgelöst werden müssen.

Nicht sicher, ob ich dich richtig verstanden habe: Superskalarität = mehrere Befehle pro Takt "issuen". Tomasulo/Scoreboarding = lediglich Abhängigkeiten auflösen. Aber gerade wenn ich mehrere Behfehle pro Takt issue, bekomme ich doch umso mehr Abhängigkeiten. Wenn ich diese mit den o.g. Algorithmen auflöse, hilft mir das doch, tatsächlich im Endeffekt mehr als 1 Befehl pro Takt zu bearbeiten... Es ist also keines Falls zwingend, dass der Tomasulo Algorithmus nur einen neuen Befehl pro Takt bearbeitet. Des Weiteren habe ich im Web diverse Pages gefunden, wo der Tomasulo-Algorithmus direkt im Zusammenhang mit Superskalarität genannt wird. --Jdiemer 21:48, 17. Feb 2006 (CET)

Du hast Recht... folgende Zusammenfassung zum Thema RA bestätigt deine Angaben: [1] In meinen Unterlagen werden die dynamischen Scheduling Verfahren eben als nicht superskalar ausgezeichnet, was ich auch an Beispielen und durch Erläuterungen nachvollziehen konnte. Auf welche Art und Weise diese Algorithmen nun doch in superskalaren Architekturen zum Einsatz kommen, weiß ich nicht. Anscheinend warten Befehle in den Reservation Stations so lange, bis die notwendigen Operanden alle verfügbar sind. Um dies zu bestimmen, setzt man wohl die genannten Algorithmen ein. Wie gesagt: in der Variante, in der ich z.B. Tomasulo kennengelernt habe, handelt es sich um ein single-issue & in-order Verfahren zur dynamischen Zuweisung von Operationen zu freien Funktionseinheiten. Chano 18:26, 20. Feb 2006 (CET)

Ok. Tomasulo lässt sich, wie du bereits gesagt hast, nutzen, indem pro Takt mehrere Befehle gleichzeitig in mehrere Reservation Stations geladen werden. Es kann ja auch durchaus mehrere Funktionseinheiten desselben Typs geben, sodass pro Takt auch mehrere Befehle die Reservation Stations verlassen können. Hierbei kann der Common Data Bus frühzeitig Ergebnisse zurückliefern, also quasi fürs Forwarding genutzt werden. In der Write-Back Phase passiert dann die out of order execution. Dort wird überprüft, ob eine Instruktion zurückschreiben darf oder ob dadure Hasards entstehen. --Jdiemer 07:53, 21. Feb 2006 (CET)
Was leider nirgendwo erläutert wird - weder hier, noch auf sonst einer Seite, die ich gefunden habe - ist, wie denn konkret WAW Hazards erkannt werden. Diese Diskussion liefert den ersten Hinweis: Die Writeback Einheit soll die korrekte Schreibreihenfolge erkennen. Und wie soll sie das anstellen? Sie bekommt out-of-order Schreibaufträge von allen möglichen reservation stations. Diese Aufträge beziehen sich auf konkrete Register - ein regeister renaming für die rechten Seiten einer Zuordnung sieht, wenn ich das alles richtig verstehe, Herr Tomasulo nicht vor. Nur mit Registeradresse und einem Wert kann die Writeback Einheit keinen Hazards erkennen. Oder?


[Quelltext bearbeiten]

GiftBot (Diskussion) 23:51, 21. Dez. 2015 (CET)Beantworten