www.wikidata.de-de.nina.az
Teilweise ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Pipeline Hazards sind Konflikte in der Pipeline von Prozessoren die wahrend der Programmlaufzeit auftreten konnen Alle modernen Prozessoren sind in Pipeline Architektur ausgefuhrt Die einzelnen Instruktionen durchlaufen eine mehrstufige Pipeline in der sie bei jedem Taktzyklus die nachste Stufe erreichen In jeder Stufe wird ein Teil der Bearbeitung der Instruktion vollzogen Jeder Teilschritt benotigt gewisse Ressourcen des Prozessors z B Datenwege und Rechenwerke und moglicherweise Ergebnisse einer vorhergegangenen Instruktion Falls eine dieser Ressourcen von einer anderen Instruktion blockiert ist oder Ergebnisse noch nicht zur Verfugung stehen muss diese Instruktion und alle in der Pipeline folgenden vorubergehend angehalten stalled werden 1 114 132Man unterscheidet drei Arten von Pipeline Konflikten Inhaltsverzeichnis 1 Datenkonflikte 2 Steuerkonflikte 3 Strukturkonflikte 4 EinzelnachweiseDatenkonflikte BearbeitenDatenkonflikte ergeben sich aus Datenabhangigkeiten zwischen Befehlen im Programm Hierbei gibt es drei Arten der Datenkonflikte 1 Read after Write RAW oder Echte Abhangigkeit Ein Operand wurde verandert und kurz darauf gelesen Da der erste Befehl den Operanden evtl noch nicht fertiggeschrieben hat Pipeline Stufe store ist weit hinten wurde der zweite Befehl falsche Daten verwenden Ein Shortcut im Datenweg der Pipeline kann den Hazard vermeiden Bei problematischeren Situationen wenn beispielsweise ein Rechenergebnis zur Adressierung verwendet wird oder bei berechneten und bedingten Sprungen ist ein Anhalten der Pipeline aber unumganglich 1 114 115Beispiel R1 R2 R3 R4 R1 1 2 Write after Read WAR oder Gegenabhangigkeit Ein Operand wird gelesen und kurz danach uberschrieben Da das Schreiben bereits vor dem Lesen vollendet sein konnte konnte der Lese Befehl die neu geschriebenen Werte erhalten Dies stellt ein potentielles Problem bei Out of order execution dar nicht bei In order execution 1 114 115Beispiel R1 R2 R3 R2 2 3 Write after Write WAW oder Ausgabeabhangigkeit Zwei Befehle schreiben auf denselben Operanden Der zweite konnte vor dem ersten Befehl beendet werden und somit den Operanden mit einem falschen Wert belassen Auch dies stellt ein potentielles Problem bei Out of order execution dar nicht bei In order execution 1 114 115Beispiel R1 R2 R3 R1 2Steuerkonflikte BearbeitenSteuerkonflikte treten bei Instruktionen auf die den Befehlszahler verandern z B bei bedingten Sprungbefehlen Diese Art von Konflikten kann durch folgende Vorgehensweisen vermieden werden Sprungvorhersage Eine zusatzliche Hardware Einheit berechnet die Wahrscheinlichkeit mit der es zu einem Sprung kommt Delayed Branching In der Zeit in der das Sprungziel berechnet wird kann man die CPU dazu nutzen andere von dem Sprung unabhangige Instruktionen zu berechnen Delayed Branching ist nicht mehr aktuell es wird heute durch dynamische Branch Voraussage Algorithmen ersetzt Strukturkonflikte BearbeitenStrukturkonflikte treten auf wenn Ressourcenkonflikte innerhalb von Befehlen in der Pipeline vorhanden sind z B ein synchroner Zugriff auf einen Registerspeicher mit nur einem Eingang In diesem einfachen Fall konnen alle Prozessoren durch einen Shortcut im Datenweg der Pipeline den Hazard vermeiden bei problematischeren Situationen wenn beispielsweise ein Rechenergebnis zur Adressierung verwendet wird oder bei berechneten und bedingten Sprungen ist ein Anhalten der Pipeline aber unumganglich Das Beispiel zeigt dass es sinnvoll ist voneinander abhangige Befehle moglichst nicht direkt hintereinander auszufuhren Moderne Prozessoren konnen deshalb durch Out of order execution oder hardwareseitiges Multithreading in vielen Fallen Hazards und Ressourcen Konflikte vermeiden Einzelnachweise Bearbeiten a b c d Kai Uwe Mrkor CPU Design Entwurf eines RISC Prozessors in VHDL epubli GmbH 2013 ISBN 978 3 8442 6666 5 Abgerufen von https de wikipedia org w index php title Pipeline Hazard amp oldid 215359963