Fichas
4.2.3 Computersysteme II, In-Order-Execution-Pipeline
Fichas del conjunto (43)
- 1Welche vier Funktionseinheiten sind bei einer superskalaren Pipeline den Ausführungseinheiten vorgeschaltet?- Befehls-Cache
- Befehlsholeeinheit
- Dekodiereinheit
- Befehlsfenster (Warteschlange) - 2Welchen Aufgabe hat die Befehlsholeeinheit in einer IOE-Pipeline?Diese holt ständig Befehle aus dem Befehls-Cache, speichert sie in einem internen Befehls-Puffer und leitet sie an die Dekodiereinheit weiter
- 3Welche Funktion hat die Dekodiereinheit innerhalb einer IOE-Pipeline?Das parallele dekodieren der Befehle,
welche aus dem Befehlspuffer
der Befehlsholeeinheit an
sie weitergeleitet wurden - 4Wohin werden die dekodierten Befehle bei einer IOE-Pipeline eingespeist?In ein so genanntes Befehlsfenster (Warteschlange)
- 5Was passiert mit den Befehlen in einer IOE-Pipeline nachdem sie in das Befehlsfenster eingespeist wurden?Das Befehlsfenster wird vom Befehls-Scheduler ausgewertet und ablaufbereite Befehle werden den Ausführungseinheiten zugeordnet
- 6Bei einer IOE-Pipeline mit n Ausführungseinheiten werden im Idealfall die jeweils nächsten n Befehle parallel ausgeführt. Warum wird dieser Idealfall kaum erreicht?aufgrund von Daten- und Strukturkonflikten
- 7Wieviele Befehle müssen bei einer IOE-Pipeline pro Takt geholt werden?Soviele wie der superskalare Prozessor maximal parallel ausführen könnte.
- 8Warum stellt eine IOE-Pipeline erhöhte Anforderungen an die Cache-Organisation?wegen der häufigen Sprungbefehle,
deshalb können die Befehle über mehrere Cache-Blöcke verteilt sein - 9Warum ist es für die IOE-Pipeline problematisch, wenn die Befehle im Befehlscache über mehrere Blöcke verteilt sind?Weil dadurch zusätzliche Cache-Zugriffe notwendig sind und daher die Ausführungseinheiten nicht immer mit genügend Befehlen versorgt werden
- 10Wozu dient ein sogenannter "Trace Cache"?Zum Speichern dynamischer Befehlssequenzen
- 11Was wird im "Trace Cache" genau gespeichert?ein gewisser Vorrat an (aufeinander folgenden) Befehlsblöcken mit linearen Befehlssequenzen, die durch Sprünge miteinander verbunden sind
- 12Wie werden die Blöcke, die im Trace Cache gespeichert werden noch genannt?Basic Blocks
- 13Wie erfolgt die Befüllung des Trace Caches?Parallel zum Befehlscache (I-Cache)
- 14Welchen Vorteil bietet der "Trace Cache" bei einer IOE-Pipeline?Wird eine bestimmte Befehlssequenz später erneut ausgeführt, so steht im Trace Cache bereits die komplette Befehlssequenz zu Verfügung und kann somit schneller bereitgestellt werden
- 15Was ist die Aufgabe des Befehls-Scheduler in einer IOE-Pipeline?die Koordination der Befehlsausführung
- 16Wlche zwei Teilaufgaben erfüllt der Befehls-Scheduler in einer IOE-Pipeline um die Befehlsausführung zu koordinieren?das Befehlsfenster auf ablaufbereite Befehle prüfen
und
ob für diese auch Ausführungseinheiten bereitstehen - 17Wann gilt ein Befehl in einer IOE-Pipeline als "ablaufbereit" für den Befehls-Scheduler?wenn es zwischen dem gerade untersuchten Befehl und seinen Vorgängern keine echte Datenabhängigkeiten gibt
- 18Welcher Befehl aus dem Befehlsfenster einer IOE-Pipeline ist stets "ablaufbereit"?Immer der erste Befehl im Befehlsfenster
- 19Was muss der Befehls-Scheduler noch zusätzlich für alle ablaufbereiten Befehle prüfen?ob für sie eine passende Ausführungseinheit verfügbar ist
- 20Was passiert mit ablaufbereiten Befehlen, denen der Befehls-Scheduler eine passende Ausführungseinheit zuordnen konnte?Diese werden dann an diese Ausführungseinheit ausgegeben
- 21Welcher IPC-Wert könnte bei einer IOE-Pipeline mit n Ausführungseinheiten im Idealfall erreicht werdenein IPC von n
- 22Warum liegt bei einer IOE-Pipeline der IPC-Wert i.d.R. deutlich unter dem Optimum?Weil bereits ein Datenkonflikt zwischen den Befehlen im Befehlsfenster ausreicht, um alle nachfolgenden Befehle an der Ausführung zu hindern
- 23Warum würden bei einer IOE-Pipeline ohne Reorder-Buffer die Befehle in der Regel nicht in der gleichen Reihenfolge fertiggestellt werden?weil einige Ausführungseinheiten selbst auch als Pipeline implementiert sind und daher mehrere Takte
(Latenz > 1) zur Fertigstellung (completion) benötigen. - 24Welche Aufgabe hat der Reorder-Buffer in einer IOE-Pipeline?Diese hat die Aufgabe, die Ergebnisse der Ausführungseinheiten in der korrekten Programmreihenfolge in den Architekturregistern gültig zu machen.
- 25Warum ist der Rückordnungspuffer innerhalb einer IOE-Pipeline notwendig?Weil die Programmausführung auf einer superskalaren Mikroarchitektur die gleichen Ergebnisse wie auf einer beliebigen anderen Mikroarchitektur liefern soll
- 26Woraus besteht der Reorder-Buffer einer IOE-Pipeline?aus einer Warteschlange
(FIFO-Speicher), in die die Befehle bei der Zuordnung (issue) in Programmreihenfolge eingereiht werden - 27Durch welche zwei Einträge wird jeder zugeordnete Befehl im Reorderbuffer beschrieben?- Befehlsetikett (Instruction Tag, IT)
- Ergebnisadresse (Result Address, RA) - 28Was dient als "Befehlsetikett" für den Reorderbuffer in einer IOE-Pipeline?die Befehlsadresse im Speicher oder
eine äquivalente, kompaktere Kodierung - 29Was wird in der Regel als Ergebnisadresse im RoB verwendet?das jeweilige Zielregister
oder
eine Speicheradresse im Hauptspeicher - 30Was versteht man unter dem sogenannten "dispatch" bei einer IOE-Pipeline?die Ausgabe des Befehls an eine Ausführungseinheit
- 31Wie gelangt das Befehlsetikett zu dem Reorder-Buffer(RoB)?Dieses wird vom "dispatch" an durch die einzelnen Pipeline-Stufen bis zum letzten Pipeline-Register der jeweiligen Ausführungseinheit weitergereicht
- 32Wie wird dem RoB die Fertigstellung eines Befehls signalisiert?Indem das Ergebnis im letzten Pipeline-Register der Ausführungseinheit vorliegt
- 33Welche Aufgabe hat der Vergleicher am vorderen Ende des Reorder-Buffers?dieser vergleicht ständig die Befehlsetiketten der n Befehle am Kopf der Warteschlange mit allen Befehlsetiketten aus den letzten
Pipeline-Stufen der Ausführungseinheiten - 34Wann kann ein Befehl durch den Reorderbuffer gültig gemacht werden?Sobald bei dem Vergleicher des RoB eine Übereinstimmung mit den vorderen n Befehlsetiketten im RoB vorliegt
- 35Was versteht man unter dem sogenannten "commitment" bei einer IOE-Pipeline?Das "Gültig-Machen" eines Befehls durch den RoB
- 36Welche Voraussetzungen muss ein Befehl erfüllen, um durch den RoB gültig gemacht werden zu können?Dazu muss er entweder am Kopf der Warteschlange stehen oder er folgt unmittelbar auf einem anderen ebenfalls gültig zu machenden Befehl
- 37Worin besteht bei einer IOE-Pipeline das "Gültig-Machen" eines Befehls durch den RoB?darin, dass die Ergebnisse der betreffenden Befehle in die jeweiligen Architekturregister zurückgeschrieben werden
(write back, WB) - 38Was passiert mit den Einträgen im RoB nachdem die zugehörigen Befehle gültig gemacht wurden? Wie nennt man diesen Vorgang (engl.)?die gültig gemachten Befehle werden vom Kopf des Rückordnungspuffers entfernt.
(retirement) - 39Warum muss bei Verwendung eines Rückordnungspuffers ebenfalls der Befehlsscheduler einer IOE-Pipeline angepasst werden?Weil es vorkommen kann, dass Ergebnisadressen im RA-Teil der Einträge des RoB auch Quelloperanden der gerade zuzuordnenden Befehle im Befehlsfenster sind
- 40Wie wird ein RAW-Konflikt vom Befehls-Scheduler in einer IOE-Pipeline mit Reorder-Buffer gelöst?Es muss die Befehlszuordnung solange angehalten werden, bis der den Datenkonflikt erzeugende Vorgänger-Befehl gültig gemacht wurde
- 41Warum ist i.d.R. bereits vorhandener Maschinencode nicht für einen IOE-Prozessor geeignet?Weil der Code grds. durch den Compiler für die IOE-Pipeline so optimiert werden sollte,
dass er auf die konkrete Struktur der Ausführungseinheiten abgestimmt ist - 42Was kann bei nicht optimierten Maschinencode der auf einem superskalaren Prozessor mit IOE-Pipeline ausgeführt wird im Extremfall bzgl. der Geschwindigkeit passieren?Dass dieser aufgrund der fehlenden Optimierung zu einem skalaren RISC-Prozessor degradiert wird
- 43Wie probiert man, das Problem zu lösen, dass für VLIW- und auch IOE-Prozessoren grds. das Programm neu compiliert werden muss?Durch eine neue
Architektur: OOE-Prozessoren, die mit dynamischem Befehls-Scheduling auf Hardware-Ebene arbeiten
Información
- Descripción
- (Computersysteme II) Informatik Fichas sobre 4.2.3 Computersysteme II, In-Order-Execution-Pipeline, creado por David Bratschke el 24/02/2018.
- Creado por
- David Bratschke · feb 2018
- Actualizado
- 26 feb 2018
- Visitas
- 6
- Valoración