Karteikarten
2.4.5 Computersysteme II, Datenkonflikte und Lösungen
Karten in diesem Stapel (46)
- 1Wann kann eine Datenabhängigkeit zu einem Datenkonflikt in einer Befehlspipeline führen?wenn es durch die Pipeline zu einer falschen Zugriffsreihenfolge auf Register und damit einem fehlerhaften Ablauf des Programms kommt.
- 2Wovon hängt es grundsätzlich ab, ob aus einer Datenabhängigkeit auch ein Datenkonflikt in der Pipeline wird?Davon wie dicht die Befehle beieinander liegen und ob es genügend viele Stufen in der
Pipeline gibt - 3Welche drei Arten von Datenabhängigkeiten gibt es?- echte Datenabhängigkeiten (RAW)
- Gegenabhängigkeiten (WAR)
- Ausgabeabhängigkeiten (WAW) - 4Was ist eine "echte Datenabhängigkeit"?Diese besteht wenn ein Befehl \(I_1\)
seine Ausgabe in ein Register schreibt, welches von einem Befehl \(I_2\) als
Eingaberegister verwendet wird - 5Aus welcher Abhängigkeit entsteht ein "Read After Write"-Konflikt?Aus einer echten Datenabhängigkeit
- 6Was ist eine Gegenabhängigkeit?Diese besteht zwischen zwei Befehlen bei dem ein Befehl \(I_1\) Daten aus einem Register liest, welches anschließend von dem anderen Befehl \(I_2\) überschrieben wird
- 7Aus welcher Datenabhängigkeit entsteht ein "Write-After-Read"-Konflikt?Aus einer Gegenabhängigkeit
- 8Wann besteht eine Ausgabeabhängigkeit zwischen zwei Befehlen?Diese besteht zwischen zwei Befehlen wenn beide Befehle in das gleiche Register zurückschreiben
- 9Bei welcher Datenabhängigkeit treten "Write-After-Write"-Konflikte auf?Bei den Ausgabeabhängigkeiten
- 10Was ist ein Abhängigkeitsgraph?Eine graphische Darstellung von Datenabhängigkeiten zwischen Befehlen
- 11Wie stellt ein Abhängigkeitsgraph die Abhängigkeiten zwischen Befehlen dar?Ein Graph dessen Knoten aus den Befehlen des Programms bestehen. Zwischen datenabhängigen Befehlen werden dann gerichtete Kanten vom abhängigen zum vorherigen Befehl eingezeichnet.
- 12Mit was werden die Kanten in einem Abhängigsgraph bezeichnet?Mit einer Abkürzung für die entsprechende Art der Datenabhängigkeit:
ED / GA / AA - 13Was sind "scheinbare" bzw. "falsche" Datenabhängigkeiten?So werden Gegen- und
Ausgabeabhängigkeiten bezeichnet, weil sie z.B. durch Variablenumbenennungen bzw. -umordnungen relativ einfach aufzulösen sind - 14Wie werden scheinbare Datenabhängigkeiten noch genannt?Namensabhängigkeiten
- 15Wie werden echte Datenabhängigkeiten noch genannt?einfache Datenabhängigkeiten
- 16Welche Datenabhängigkeit repräsentiert den eigentlichen Datenfluss durch ein Programm?die echte Datenabhängigkeit
- 17Wovon hängt es ab, wie weit zwei Befehle auseinander liegen müssen, damit kein Datenkonflikt auftritt?Von der Pipelinestruktur,
insbes. der Anzahl der Stufen - 18Warum sind WAR-Konflikte bei der MIPS-Pipeline ausgeschlossen?Weil diese nur auftreten können, wenn ein nachfolgender Befehl sein Resultat bereits in ein Register schreibt, bevor der vorherige Befehl
den Registerinhalt als Operanden liest.
Das ist bei der MIPS Pipeline ausgeschlossen - 19Bei welcher Art von Prozessoren müssen WAR-Konflikte beachtet werden?Bei moderner Superskalarprozessoren
- 20Warum treten in der MIPS-Pipeline keine WAW-Konflikte auf?Weil bei der MIPS-Pipeline das Schreiben
in die Register nur in der WB-Stufe möglich
und das „Überholen“ von Befehlen ausgeschlossen ist - 21Welche Datenabhängigkeiten sind bei einfachen skalaren Pipelines wie der MIPS-Pipeline einzig und allein von Bedeutung und warum?Nur die echten Datenabhängigkeiten, da die Befehle stehts "in-order" ausgeführt werden
- 22Welche Arten der Datenabhängigkeiten müssen bei Superskalarprozessoren beachtet werden?Alle drei Arten:
Echte Datenabhängigkeiten,
Gegenabhängigkeiten,
Ausgabeabhängikeiten - 23Warum kommt es bei einer Single-Cycle-Architektur nicht zu einem Konflikt bei einer echten Datenabhängigkeit?Weil ein Befehl
erst dann in die IF-Stufe eintritt,
wenn der vorherige Befehl die WB-Stufe
bereits verlassen hat - 24Welche zwei Möglichkeiten gibt es Datenkonflikte auf Software-Ebene aufzulösen?Das Einfügen von Leerbefehlen
und
Die statische Befehlsumordnung - 25Wie funktioniert das Einfügen von Leerbefehlen als Softwarelösung für einen Datenkonflikt?Der Compiler untersucht den Programmcode
auf (echte) Datenabhängigkeiten und fügt entsprechend Leerbefehle ein, bis der Abstand zwischen zwei datenabhängigen
Befehlen groß genug ist - 26Durch das Einfügen von welchem Befehl kann der Compiler bzw. Assemblerprogrammierer einen Datenkonflikt innerhalb einer Pipeline verhindern?Durch eine
Nullanweisung oder "No Operation"
(nop) - 27Was ist der Nachteil der Lösung von Datenkonflikten durch Eimfügen von Leerbefehlen?Es verringert den effektiven Durchsatz ded Pipeline, da das Programm um zusätzliche (eigentlich nicht benötigte) Befehle erweitert wird
- 28Wie funktioniert die statische Befehlsumordnung?Wird eine Datenabhängigkeit erkannt, so wird der Abstand zwischen den beiden Befehlen statt durch neue Leerbefehle durch bereits im Programmcode vorhandene Befehle erweitert
- 29Warum muss der Compiler in der Regel auf das Einfügen von Leerbefehlen als Softwarelösung für Datenkonflikte zurückgreifen?Weil in der Realität aufgrund
häufig vorkommender Datenabhängigkeiten die statische Befehlsumordnung kaum genutzt werden kann - 30Welchen Nachteil haben Hardwarelösungen von Datenabhängigkeiten?Diese erhöhen die Komplexität der Pipeline-Organisation
- 31Welche Art der Lösung von Datenkonflikten funktioniert zur Laufzeit?Die Hardwarelösungen
- 32Welche unterschiedlichen Hardwarelösungen gibt es zur Lösung von Datenkonflikten?- Leerlauf der Pipeline
- Forwarding
- Forwarding mit Interlocking
- Dynamische Befehlsumordnung - 33Wie wird das Anhalten bzw. der Leerlauf der Pipeline bei einem Datenkonflikt noch genannt?Interlocking(Sperrung)
bzw.
Stalling (Anhalten) - 34Für wieviele Takte wird die MIPS-Pipeline beim Interlocking angehalten?Für zwei Takte
- 35Wie funktioniert das sogenannte "Forwarding" als Hardwarelösung von Datenkonflikten?Wenn ein Datenkonflikt erkannt wird, sorgt eine Hardwareschaltung dafür, dass der entsprechende Operand nicht aus dem Architekturregister, sondern direkt aus dem ALU-Ausgaberegister geladen wird
- 36Für welche Befehle funktioniert Forwarding als Hardwarelösung von Datenkonflikten und für welche nicht?Für Register-Register-Befehle,
aber nicht für
Lade-/Speicherbefehle - 37Warum funktioniert Forwarding bei Lade-/Speicherbefehlen nicht?Weil bei diesen in der EX-Phase Stufe nicht der zu ladende (speichernde) Wert berechnet somdern lediglich die effektive Adresse berechnet wird
- 38Wie können Datenkonflikte bei Lade-/Speicherbefehlen gelöst werden?Durch Forwarding mit Interlocking
- 39Wie funktioniert Forwarding mit Interlocking zur Lösung von Datenkonflikten von Lade/Speicherbefehlen?die Pipeline wird so lange angehalten, bis das Ergebnis des Lade(Speicher)befehls am Ende der MEM-Stufe bereit steht. Danach kann Forwarding genutzt werden, um das Ergebnis bereits vor der WB-Stufe zur Verfügung zu stellen
- 40Was muss bei Lade- /Speicherbefehlen zwingend hinzugefügt werden, um Datenkonflikte zu verhindern?Mind. ein Leerbefehl
- 41Was ist der Nachteil von Forwarding?Viel Hardwareaufwand
- 42Wie kann in der MIPS-Pipeline Forwarding implementiert werden?- Vergleichen der Register-Zieladressen der beiden Befehle,
die sich in EX-und MEM-Phase befinden
mit den Register-Quelladressen des Befehls in der ID-Stufe.
- Bei Übereinstimmung, entsprechenden Pfad schalten, der den Wert des ALU-Ausgaberegisters (EX-Stufe) bzw. des Ladewertregisters (MEM-Stufe) in das ALU-Eingaberegister (ID-Stufe) übernimmt. - 43Wie funktioniert die dynamische Befehlsumordnung zur Auflösung von Datenkonflikten?Grds. genauso wie die statische Befehlsumordnung durch den Compiler, nur durch Hardware zur Laufzeit
(also einfach eine Änderung der Befehlsreihenfolge) - 44Warum funktioniert eine dynamische Befehlsumordnung nicht bei der MIPS-Pipeline?weil bei dieser Befehle immer einzeln geholt und dekodiert werden
- 45Bei welcher Art von Prozessoren kann eine dynamische Befehlsumordnung als Hardwarelösung von Datenkonflikten umgesetzt werden?Bei Prozessoren bei den mehrere Befehle gleichzeitig geholt werden, wie z.B. Superskalarprozessoren
- 46Was ist der Nachteil einer dynamischen Befehlsumordnung?ein erheblicher
Hardwareaufwand
Informationen
- Beschreibung
- Informatik (Computersysteme II) Karteikarten am 2.4.5 Computersysteme II, Datenkonflikte und Lösungen, erstellt von David Bratschke am 01/02/2018.
- Erstellt von
- David Bratschke
- Aufrufe
- 27
- Bewertung