2.4.5 Computersysteme II, Datenkonflikte und Lösungen

Description

Informatik (Computersysteme II) Flashcards on 2.4.5 Computersysteme II, Datenkonflikte und Lösungen, created by David Bratschke on 02/01/2018.
David Bratschke
Flashcards by David Bratschke, updated more than 1 year ago
David Bratschke
Created by David Bratschke over 6 years ago
20
1

Resource summary

Question Answer
Wann 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.
Wovon 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
Welche drei Arten von Datenabhängigkeiten gibt es? - echte Datenabhängigkeiten (RAW) - Gegenabhängigkeiten (WAR) - Ausgabeabhängigkeiten (WAW)
Was 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
Aus welcher Abhängigkeit entsteht ein "Read After Write"-Konflikt? Aus einer echten Datenabhängigkeit
Was 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
Aus welcher Datenabhängigkeit entsteht ein "Write-After-Read"-Konflikt? Aus einer Gegenabhängigkeit
Wann besteht eine Ausgabeabhängigkeit zwischen zwei Befehlen? Diese besteht zwischen zwei Befehlen wenn beide Befehle in das gleiche Register zurückschreiben
Bei welcher Datenabhängigkeit treten "Write-After-Write"-Konflikte auf? Bei den Ausgabeabhängigkeiten
Was ist ein Abhängigkeitsgraph? Eine graphische Darstellung von Datenabhängigkeiten zwischen Befehlen
Wie 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.
Mit was werden die Kanten in einem Abhängigsgraph bezeichnet? Mit einer Abkürzung für die entsprechende Art der Datenabhängigkeit: ED / GA / AA
Was 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
Wie werden scheinbare Datenabhängigkeiten noch genannt? Namensabhängigkeiten
Wie werden echte Datenabhängigkeiten noch genannt? einfache Datenabhängigkeiten
Welche Datenabhängigkeit repräsentiert den eigentlichen Datenfluss durch ein Programm? die echte Datenabhängigkeit
Wovon hängt es ab, wie weit zwei Befehle auseinander liegen müssen, damit kein Datenkonflikt auftritt? Von der Pipelinestruktur, insbes. der Anzahl der Stufen
Warum 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
Bei welcher Art von Prozessoren müssen WAR-Konflikte beachtet werden? Bei moderner Superskalarprozessoren
Warum 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
Welche 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
Welche Arten der Datenabhängigkeiten müssen bei Superskalarprozessoren beachtet werden? Alle drei Arten: Echte Datenabhängigkeiten, Gegenabhängigkeiten, Ausgabeabhängikeiten
Warum 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
Welche zwei Möglichkeiten gibt es Datenkonflikte auf Software-Ebene aufzulösen? Das Einfügen von Leerbefehlen und Die statische Befehlsumordnung
Wie 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
Durch das Einfügen von welchem Befehl kann der Compiler bzw. Assemblerprogrammierer einen Datenkonflikt innerhalb einer Pipeline verhindern? Durch eine Nullanweisung oder "No Operation" (nop)
Was 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
Wie 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
Warum 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
Welchen Nachteil haben Hardwarelösungen von Datenabhängigkeiten? Diese erhöhen die Komplexität der Pipeline-Organisation
Welche Art der Lösung von Datenkonflikten funktioniert zur Laufzeit? Die Hardwarelösungen
Welche unterschiedlichen Hardwarelösungen gibt es zur Lösung von Datenkonflikten? - Leerlauf der Pipeline - Forwarding - Forwarding mit Interlocking - Dynamische Befehlsumordnung
Wie wird das Anhalten bzw. der Leerlauf der Pipeline bei einem Datenkonflikt noch genannt? Interlocking(Sperrung) bzw. Stalling (Anhalten)
Für wieviele Takte wird die MIPS-Pipeline beim Interlocking angehalten? Für zwei Takte
Wie 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
Fü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
Warum 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
Wie können Datenkonflikte bei Lade-/Speicherbefehlen gelöst werden? Durch Forwarding mit Interlocking
Wie 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
Was muss bei Lade- /Speicherbefehlen zwingend hinzugefügt werden, um Datenkonflikte zu verhindern? Mind. ein Leerbefehl
Was ist der Nachteil von Forwarding? Viel Hardwareaufwand
Wie 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.
Wie 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)
Warum funktioniert eine dynamische Befehlsumordnung nicht bei der MIPS-Pipeline? weil bei dieser Befehle immer einzeln geholt und dekodiert werden
Bei 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
Was ist der Nachteil einer dynamischen Befehlsumordnung? ein erheblicher Hardwareaufwand
Show full summary Hide full summary

Similar

ein kleines Informatik Quiz
AntonS
Informatik
Tom Kühling
PHP Grundlagen
chrisi.0605
Wirtschaftsinformatik Teil 2
Sabrina Heckler
Informatik 1 - Einführung
Svenja
Codierung
Tom Kühling
Wirtschaftsinformatik Teil 1
Sabrina Heckler
Einführung in das Studium Informatik
Daniel Doe
Lernplan
Sandra K
Datenstrukturen
Ann-Kathrine Buchmakowsky