GoConqr has a new look! Let us know what you think.

Flashcards

2.4.5 Computersysteme II, Datenkonflikte und Lösungen

David Bratschke Informatik German 46 cards

Cards in this deck (46)

  1. 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.
  2. 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
  3. 3Welche drei Arten von Datenabhängigkeiten gibt es?- echte Datenabhängigkeiten (RAW)
    - Gegenabhängigkeiten (WAR)
    - Ausgabeabhängigkeiten (WAW)
  4. 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
  5. 5Aus welcher Abhängigkeit entsteht ein "Read After Write"-Konflikt?Aus einer echten Datenabhängigkeit
  6. 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
  7. 7Aus welcher Datenabhängigkeit entsteht ein "Write-After-Read"-Konflikt?Aus einer Gegenabhängigkeit
  8. 8Wann besteht eine Ausgabeabhängigkeit zwischen zwei Befehlen?Diese besteht zwischen zwei Befehlen wenn beide Befehle in das gleiche Register zurückschreiben
  9. 9Bei welcher Datenabhängigkeit treten "Write-After-Write"-Konflikte auf?Bei den Ausgabeabhängigkeiten
  10. 10Was ist ein Abhängigkeitsgraph?Eine graphische Darstellung von Datenabhängigkeiten zwischen Befehlen
  11. 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.
  12. 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
  13. 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
  14. 14Wie werden scheinbare Datenabhängigkeiten noch genannt?Namensabhängigkeiten
  15. 15Wie werden echte Datenabhängigkeiten noch genannt?einfache Datenabhängigkeiten
  16. 16Welche Datenabhängigkeit repräsentiert den eigentlichen Datenfluss durch ein Programm?die echte Datenabhängigkeit
  17. 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
  18. 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
  19. 19Bei welcher Art von Prozessoren müssen WAR-Konflikte beachtet werden?Bei moderner Superskalarprozessoren
  20. 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
  21. 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
  22. 22Welche Arten der Datenabhängigkeiten müssen bei Superskalarprozessoren beachtet werden?Alle drei Arten:
    Echte Datenabhängigkeiten,
    Gegenabhängigkeiten,
    Ausgabeabhängikeiten
  23. 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
  24. 24Welche zwei Möglichkeiten gibt es Datenkonflikte auf Software-Ebene aufzulösen?Das Einfügen von Leerbefehlen
    und
    Die statische Befehlsumordnung
  25. 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
  26. 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)
  27. 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
  28. 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
  29. 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
  30. 30Welchen Nachteil haben Hardwarelösungen von Datenabhängigkeiten?Diese erhöhen die Komplexität der Pipeline-Organisation
  31. 31Welche Art der Lösung von Datenkonflikten funktioniert zur Laufzeit?Die Hardwarelösungen
  32. 32Welche unterschiedlichen Hardwarelösungen gibt es zur Lösung von Datenkonflikten?- Leerlauf der Pipeline
    - Forwarding
    - Forwarding mit Interlocking
    - Dynamische Befehlsumordnung
  33. 33Wie wird das Anhalten bzw. der Leerlauf der Pipeline bei einem Datenkonflikt noch genannt?Interlocking(Sperrung)
    bzw.
    Stalling (Anhalten)
  34. 34Für wieviele Takte wird die MIPS-Pipeline beim Interlocking angehalten?Für zwei Takte
  35. 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
  36. 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
  37. 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
  38. 38Wie können Datenkonflikte bei Lade-/Speicherbefehlen gelöst werden?Durch Forwarding mit Interlocking
  39. 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
  40. 40Was muss bei Lade- /Speicherbefehlen zwingend hinzugefügt werden, um Datenkonflikte zu verhindern?Mind. ein Leerbefehl
  41. 41Was ist der Nachteil von Forwarding?Viel Hardwareaufwand
  42. 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.
  43. 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)
  44. 44Warum funktioniert eine dynamische Befehlsumordnung nicht bei der MIPS-Pipeline?weil bei dieser Befehle immer einzeln geholt und dekodiert werden
  45. 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
  46. 46Was ist der Nachteil einer dynamischen Befehlsumordnung?ein erheblicher
    Hardwareaufwand

Information

Description
Informatik (Computersysteme II) Flashcards on 2.4.5 Computersysteme II, Datenkonflikte und Lösungen, created by David Bratschke on 01/02/2018.
Created by
David Bratschke
Views
27
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?