Flashcards
2.4.6 Computersysteme II, Steuerflusskonflikte und Lösungen
Flashcards do conjunto (31)
- 1Welche Befehle können Steuerflusskonflikte verursachen?Programmsteuerbefehle
- 2Warum verursachen Programmsteuerbefehle Steuerflusskonflikte?weil der Programmsteuerbefehl erst in der ID-Stufe als solcher erkannt wird und im Falle eines genommenen Sprungs ein Befehl des falschen (linearen) Programmpfades in die Pipeline geladen wurde
- 3Warum steht bei Sprungbefehlen erst mehrere Takte nach Eintritt in die Pipeline fest, ob dem linearen Programmpfad gefolgt werden kann oder nicht?Weil dazu erst die Sprungzieladresse in der ALU berechnet werden muss
- 4Warum stellen bedingte Sprungbefehle eine Besonderheit innerhalb der Programmsteuerbefehle dar?weil bei diesen die Änderung des Programmusses zusätzlich noch von der Auswertung einer Sprungbedingung abhängt
- 5Wann steht bei einem Programmsteuerbefehl frühestens fest, ob dem linearen Programmverlauf weiter gefolgt werden kann oder nicht?In der MEM-Phase
- 6Wieviele nachfolgende Befehle sind bereits in die Pipeline geladen bevor festgestellt wird, ob die Pipeline aufgrund eines Steuerflusskonfliktes wieder geleert werden muss?3 Befehle
also eine Verzögerung von 3 Takten - 7Was wäre eine Möglichkeit die Verzögerungzeit aufgrund von Steuerflusskonflikten zu reduzieren? Warum ist diese nicht umsetzbar?die Sprungrichtung und die Sprungzieladresse in der Pipeline so früh wie möglich zu berechnen
( z.B. bereits in der ID-Stufe)
, führt allerdings zu weiteren nicht behebbaren Konflikten - 8Welche Softwarelösungen von Steuerflusskonflikten gibt es?- Verzögerte Sprungtechnik
- Statische Befehlsumordnung
- Statische Sprungvorhersage - 9Wie funktioniert die "verzögerte Sprungtechnik" als Softwarelösung für Steuerflusskonflikte?Nach jedem Programmsteuerbefehl werden die Delayslots mit Leerbefehlen aufgefüllt
(Bei MIPS 3) - 10Was sind die sog. "Verzögerungsschlitze" (Delayslots) ?die nächsten n (bei MIPS 3) Befehle, die auf einen Sprungbefehl folgen und bei einem Steuerflusskonflikt wieder entfernt werden müssten
- 11Wie funktioniert die statische Befehlsumordnung zur Lösung von Steuerflusskonflikten?Der Compiler füllt die Delayslots mit Befehlen, die vor dem Sprung liegen und keinen Einfluss auf die Auswertung der Sprungrichtung haben
- 12Welche Prämisse wird für die statische Befehlsumordnung vorausgesetzt?Es wird angenommen, dass die Sprungadresse nicht auf einen der Befehle in den Verzögerungszeitschlitzen zeigt
- 13Was passiert bei der statischen Befehlsumordnung, wenn es keine Befehle gibt, mit denen die Verzögerungszeitschlitze aufgefüllt werden können?Dann müssen dafür wiederum Leerbefehle eingefügt werden.
- 14Wie funktioniert die statische Sprungvorhersage zur Lösung von Steuerflusskonflikten?Dabei kann der Compiler dem Prozessor bereits vorab Informationen dazu geben, wie er bei Erkennen eines Jumps fortfahren soll, sodass der Sprungbefehl entweder spekulativ auszuführt bzw. nicht auszuführt ausgeführt wird
- 15Welche zwei grundlegenden bzw. einfachen Möglichkeiten für die statische Sprungvorhersage erweisen sich für Schleifen am sinnvollsten?Vorwärtssprünge werden nie genommen, Rückwärtssprünge werden immer genommen
- 16Warum ist die statische Sprungvorhersage keine reine Softwarelösung?Weil diese bereits Anpassungen in der Hardware erfordert.
- 17Was muss bei der statischen Sprungvorhersage bei einer Fehlspekulation auf einen nicht-genommenen Sprung durch die Hardware vollzogen werden?Dann müssen die nachfolgenden drei Befehle aus der Pipeline entfernt werden.
- 18Was muss bei der statischen Sprungvorhersage bei einer Spekulation auf einen genommenen Sprung durch die Hardware vollzogen werden?Dann muss bis zur MEM-Phase gewartet werden, d.h. bis die Sprungzieladresse berechnet wurde. Die nachfolgenden Zeitschlitze werden bis zum Ende dieser Berechnung dynamisch durch Leerbefehle aufgefüllt
- 19Wodurch kann die Behandlung von Steuerflusskonflikten mittels statischer Sprungvorhersage noch beschleunigt werden?Durch einen Sprungzieladress-Cache, der die zuletzt verwendeten Sprung- und Sprungzieladressen aufnimmt
- 20Wie groß ist die Wahrscheinlichkeit, dass ein einzelner Befehl in einen Delay-Slot verschoben werden kann?größer als 60%
- 21Warum ist eine reine Software-Lösung von Steuerflusskonflikten in der Regel weder sinnvoll noch sonderlich effizient?Weil mit zunehmender Anzahl von Delay-Slots die Wahrscheinlichkeit, diese durch andere Befehle auffüllen zu können, rapide abnimmt.
- 22Wie groß ist die Wahrscheinlichkeit, dass zwei (bzw. drei) Befehle in einen Delay-Slot verschoben werden können?für zwei Befehle ca. 20%
für drei Befehle < 10% - 23Bei welchen Prozessoren wurde die verzögerte Sprungtechnik angewendet?Bei den ersten Generationen
skalarer RISC-Prozessoren, wie z.B.:
IBM801, Stanford MIPS, Berkeley RISC I. - 24Warum wird die verzögerte Sprungtechnik i.d.R. nicht bei superskalaren Prozessoren, die mehr als einen Befehl holen und gleichzeitig ausführen können, angewendet?Weil bei diesen die verzögerte Sprungtechnik die Befehlszuordnungslogik und die Implementierung präziser Unterbrechungen erschwert
- 25Was versteht man unter einer "präzisen Unterbrechnung"?ein Verfahren, bei dem die Resultate aller Befehle, die in der Programmreihenfolge vor dem Unterbrechungsereignis stehen, gültig sind und diejenigen aller nachfolgenden Befehle verworfen werden
- 26Welche Lösungsvariante für Steuerflusskonflikte wird heutzutage vorwiegend verwendet? Software- oder Hardwarelösungen?Hardwarelösungen
- 27Welche zwei Möglichkeiten zur Implementation einer Hardwarelösung von Steuerflusskonflikten gibt es?Pipeline-Leerlauf
und
Dynamische Sprungvorhersage - 28Wie funktioniert die Hardwarelösung: "Pipeline-Leerlauf" zur Lösung von Steuerflusskonflikten?Die Hardware erkennt in der ID-Stufe, dass der Befehl ein bedingter Sprung ist und lädt keine weiteren Befehle in die Pipeline, bis die Sprungzieladresse berechnet und im Falle eines bedingten Sprungbefehls die Sprungentscheidung getroffen ist
- 29Was geschieht bei der Hardwarelösung "Pipeline-Leerlauf" mit dem nachfolgenden Befehl der durch die IF-Stufe bereits in den Befehlspuffer geladen wurde?Diese wird wieder gelöscht
- 30Was sind Vor- und Nachteile der Hardwarelösung "Pipeline-Leerlauf"?Einfach zu implementieren,
dafür aber ineffizient - 31Wie funktioniert die "dynamische Sprungvorhersage" als Hardwarelösung von Steuerflusskonflikten?Dabei entscheidet die Hardware zur Laufzeit selbst, wie mit einem Sprungbefehl umgegangen werden soll. Dazu werden die Sprungrichtung und die Zieladresse vergangener Sprünge in einem Cache gespeichert zur Vorhersage genutzt
Informações
- Descrição
- Informatik (Computersysteme II) FlashCards sobre 2.4.6 Computersysteme II, Steuerflusskonflikte und Lösungen, criado por David Bratschke em 02-02-2018.
- Criado por
- David Bratschke
- Visualizações
- 39
- Avaliação