Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 2.3 Einfache Prozessoren und Prozessorkerne Grundkonzept des von- Neumann-Prinzips.

Ähnliche Präsentationen


Präsentation zum Thema: "1 2.3 Einfache Prozessoren und Prozessorkerne Grundkonzept des von- Neumann-Prinzips."—  Präsentation transkript:

1 1 2.3 Einfache Prozessoren und Prozessorkerne Grundkonzept des von- Neumann-Prinzips

2 2 von-Neumann-Prinzip Der Rechner ist zentral gesteuert und aus Funktionseinheiten aufgebaut. (Zentraleinheit, Speicher, Ein-/Ausgabeeinheit, Verbindungseinrichtung) Der Rechner ist nicht speziell auf ein zu bearbeitendes Problem zugeschnitten. Zur Lösung eines Problems wird ein eigenes Programm im Speicher ablegt. ("programmgesteuerter Universalrechner") Programme und Daten (und Ergebnisse) liegen im selben Speicher. Der Speicher besteht aus Plätzen fester Wortlänge, die über eine bestimmte Adresse einzeln angesprochen werden können.

3 3 Funktionseinheiten der von-Neumann-Architektur Prozessor, Zentraleinheit (CPU: "central processing unit") übernimmt die Ablaufsteuerung und Ausführung der Befehle Steuerwerk ("control unit") interpretiert die Maschinenbefehle erzeugt Steuerkommandos für andere Komponenten Rechenwerk (ALU: "arithmetic logical unit") führt alle Befehle aus, bis auf Ein-/Ausgabe- und Speicherbefehle Ein-/Ausgabesystem Schnittstelle des Rechners nach außen Ein- und Ausgabe von Programmen und Daten Speicher Ablage der Daten und Programme in Form von Bitfolgen Verbindungseinrichtung

4 4 Charakteristika des Operationsprinzips Zu jedem Zeitpunkt führt die CPU nur einen einzigen Befehl aus, und dieser kann (höchstens) einen Datenwert bearbeiten (SISD). Code und Daten stehen ohne Unterscheidung im selben Speicher. Es existieren keine speichertechnischen Maßnahmen, um sie vor ungerechtfertigtem Zugriff zu schützen. Der Speicher ist unstrukturiert und wird linear adressiert. Die Interpretation eines Speicherinhalts hängt nur vom aktuellen Kontext des laufenden Programms ab. Zwei-Phasen-Konzept der Befehlsverarbeitung: In der Interpretations-Phase wird aufgrund der durch den Befehlszähler angezeigten Adresse der Inhalt einer Speicherzelle geholt und als Befehl interpretiert. In der Ausführungs-Phase wird aufgrund der im Befehl enthaltenen Adresse der Inhalt einer weiteren Speicherzelle geholt und als Datenwert verarbeitet. Der Befehlsablauf folgt einer sequentiellen Befehlsfolge und ist streng seriell.

5 5 Vor- und Nachteile der von-Neumann-Architektur Vorteile Prinzip des minimalen Hardwareaufwandes Prinzip des minimalen Speicheraufwandes

6 6 Nachteile der von-Neumann-Architektur Die Verbindungseinrichtung (Hauptspeicher CPU) stellt einen Engpass dar: von-Neumann-Flaschenhals Die Programmierung muss den sequentiellen Verkehr durch den von-Neumann-Flaschenhals planen Auswirkungen auf höhere Programmiersprachen ("intellektueller Flaschenhals") geringe Strukturierung der Daten Maschinenbefehl bestimmt Operandentyp semantische Lücke Maschinendaten- strukturen und Maschinenoperationen Datenstrukturen und Operationen einer höheren Programmiersprache Compiler

7 7 Harvard-Architektur Variante des von-Neumann-Rechner Für Code und Daten gibt es getrennte Speicher und getrennte Zugriffwege zum Prozessorkern. Engpass durch die zentrale Verbindungseinrichtung beim von-Neumann- Rechner wird vermieden oder zumindestens erweitert. heute insbesondere bei digitalen Signalprozessoren (DSPs) Bei fast allen heutigen Mikroprozessoren ist der auf dem Prozessor-Chip befindlichen Primär-Cache-Speicher als Harvard-Cache-Architektur organisiert. Code- und Daten-Cache-Speicher sind getrennt und mit eigenen Speicherverwaltungseinheiten und Zugriffspfaden versehen. Ansonsten wird das Operationsprinzip der von-Neumann-Architektur beibehalten.

8 2.3.2 Grundlegender Aufbau eines Mikroprozessors

9 9 Überlappende Befehlsausführung Befehl n: Bereitstellung u. Decodierung Befehl n: Ausführung Befehl n: Bereitstellung u. Decodierung Befehl n: Ausführung Befehl n+1: Bereitstellung u. Decodierung

10 Grundlegende Pipeline-Stufen Pipelining Fließband-Bearbeitung Pipelines beschleunigen die Ausführungsgeschwindigkeit eines Rechners in gleicher Weise wie Henry Ford die Autoproduktion mit der Einführung des Fließbandes revolutionierte. (Peter Wayner 1992) Befehlspipeline eines Rechners: Die Befehlsbearbeitung wird in n funktionelle Einheiten gegliedert. Ausführung geschieht überlappt.

11 11 Pipelining Unter dem Begriff Pipelining versteht man die Zerlegung einer Maschinenoperation in mehrere Phasen, die dann von hintereinander geschalteten Verarbeitungseinheiten taktsynchron bearbeitet werden, wobei jede Verarbeitungseinheit genau eine spezielle Teiloperation ausführt. Die Gesamtheit dieser Verarbeitungseinheiten nennt man eine Pipeline. Bei einer Befehlspipeline (Instruction Pipeline) wird die Ausführung eines Maschinenbefehls in verschiedene Phasen unterteilt, aufeinanderfolgende Maschinenbefehle werden jeweils um einen Taktzyklus versetzt ausgeführt.

12 12 Pipelining Jede Stufe der Pipeline heißt Pipeline-Stufe oder Pipeline- Segment. Pipeline-Stufen werden durch getaktete Pipeline-Register (auch latches genannt) getrennt. Ein Pipeline-Maschinentakt ist die Zeit, die benötigt wird, um einen Befehl eine Stufe weiter durch die Pipeline zu schieben. Idealerweise wird ein Befehl in einer k-stufigen Pipeline in k Takten von k Stufen ausgeführt. Wird in jedem Takt ein neuer Befehl geladen, dann werden zu jedem Zeitpunkt unter idealen Bedingungen k Befehle gleichzeitig behandelt und jeder Befehl benötigt k Takte, bis zum Verlassen der Pipeline.

13 13 Pipeline-Stufen und Pipeline-Register

14 14 Pipelining Man definiert die Latenz als die Zeit, die ein Befehl benötigt, um alle k Pipeline-Stufen zu durchlaufen. Der Durchsatz einer Pipeline wird definiert als die Anzahl der Befehle, die eine Pipeline pro Takt verlassen können. Dieser Wert spiegelt die Rechenleistung einer Pipeline wider.

15 15 Befehlsausführung (n = Anzahl Befehlsausführungen, k = Anzahl der Pipeline-Stufen) hypothetischen Prozessors ohne Pipeline: n*k Takte Pipeline-Prozessor mit einer k-stufigen Pipeline: k+n-1 Takte (unter der Annahme idealer Bedingungen mit einer Latenz von k Takten und einem Durchsatz von 1) Daraus ergibt sich eine Beschleunigung (speedup) von S = n*k / (k + n - 1) = k / (k/n /n). Ist die Anzahl der in die Pipeline gegebenen Befehle unendlich, so ist die Beschleunigung gleich der Anzahl Pipeline-Stufen k

16 Phasen der Befehlsausführung einer fünfstufigen Befehlspipeline Befehl bereitstellen, Befehl decodieren, Operanden (in den Pipeline-Registern) vor der ALU bereitstellen, Operation auf der ALU ausführen und das Resultat zurückschreiben

17 Grundlegendes Befehlspipelining

18 18 Phasen der Befehlsausführung einer fünfstufigen Befehlspipeline Befehlsbereitstellungsphase (Instruction Fetch): Der Befehl, der durch den Befehlszähler adressiert ist, wird aus dem Hauptspeicher oder dem Cache-Speicher in einen Befehlspuffer geladen. Der Befehlszähler wird weitergeschaltet. Decodier- und Operandenbereitstellungsphase (Decode/Operand fetch): Aus dem Operationscode des Maschinenbefehls werden prozessorinterne Steuersignale erzeugt (1. Takthälfte). Die Operanden werden aus Registern bereitgestellt (2. Takthälfte). Ausführungsphase (ALU Operation): Die Operation wird auf den Operanden ausgeführt. Bei Lade-/Speicherbefehlen wird die effektive Adresse berechnet. Speicherzugriffsphase (memory access): Der Speicherzugriff wird durchgeführt. Resultatspeicherphase (Write Back): Das Ergebnis wird in ein Register geschrieben (1. Takthälfte).

19 19 Pipeline (Übersicht)

20 20 Pipeline (Instruction fetch) I-cache Add IF/ID Registers Instruction fetch (IF) MUX PC Instruction Register

21 21 Pipeline (Instruction Decode) Register File Register Addressing Result Register Selector ID/EX Registers IF/ID Registers Instruction decode/ register fetch (ID) PC ALU Input Register 1 ALU Input Register 2 Immediate Register Instruction Register Sign Extended Registers Write Value

22 22 Pipeline (Execute) EX/MEM Registers ID/EX Registers Execution/effective address calculation (EX) MUX ALU PC ALU Input Register 1 ALU Input Register 2 Immediate Register True/False Conditional Register 32 ALU Output Register 1 Zero ? Store Value Register True/False

23 23 Pipeline (MEM&WB) D-cache MUX Write back (WB) MEM/WB Registers EX/MEM Registers Memory access/branch completion (MEM) Load Memory Data Register ALU Result Register Store Value Register ALU Output Register True/False Conditional Register Load/Store Address Jump/Branch Target Address ALU Result Value

24 24 Diskussion Die Zykluszeit der Pipeline wird vom kritischen Pfad diktiert: der langsamsten Pipeline-Stufe. Alle Stufen nutzen verschiedene Ressourcen. Im Idealfall wird in jedem Takt ein Befehl in die Pipeline eingefüttert. (CPI=1).

25 Pipeline-Konflikte - drei Arten von Pipeline-Konflikten Pipeline-Konflikt: die Unterbrechung des taktsynchronen Durchlaufs der Befehle durch die einzelnen Stufen einer Befehls- Pipeline. Datenkonflikte: ein Operand ist in der Pipeline (noch) nicht verfügbar. Datenkonflikte werden durch Datenabhängigkeiten im Befehlsstrom erzeugt Struktur- oder Ressourcenkonflikte treten auf, wenn zwei Pipeline- Stufen dieselbe Ressource benötigen, auf diese aber nur einmal zugegriffen werden kann. Steuerflusskonflikte treten bei Programmsteuerbefehlen auf, wenn in der Befehlsbereitstellungsphase die Zieladresse des als nächstes auszuführenden Befehls noch nicht berechnet ist bzw. Wenn im Falle eines bedingten Sprunges noch nicht klar ist, ob überhaupt gesprungen wird.

26 Datenkonflikte und deren Lösungsmöglichkeiten Man betrachte zwei aufeinander folgende Befehle Inst 1 und Inst 2 Es besteht eine echte Datenabhängigkeit (true dependence) t von Inst 1 zu Inst 2, wenn Inst 1 seine Ausgabe in ein Register Reg (oder in den Speicher) schreibt, das von Inst 2 als Eingabe gelesen wird. Es besteht eine Gegenabhängigkeit (antidependence) a von Inst 1 zu Inst 2, falls Inst 1 Daten von einem Register Reg (oder einer Speicherstelle) liest, das anschließend von Inst 2 überschrieben wird. Es besteht eine Ausgabeabhängigkeit (output dependence) o von Inst 2 zu Inst 1, wenn beide in das gleiche Register Reg (oder eine Speicherstelle) schreiben und Inst 2 sein Ergebnis nach Inst 1 schreibt. Gegenabhängigkeiten und Ausgabeabhängigkeiten werden häufig auch fal­sche Datenabhängigkeiten oder entsprechend dem englischen Begriff Name Dependency Namensabhängigkeiten genannt.

27 Abhängigkeitsgraph S1:ADD R1,R2,2; R1 = R2+2 S2:ADD R4,R1,R3; R4 = R1+R3 S3:MULT R3,R5,3; R3 = R5*3 S4:MULT R3,R6,3; R3 = R6*3

28 28 Datenkonflikte Datenabhängigkeiten zwischen zwei Befehlen können Datenkonflikte verursachen, wenn die beiden Befehle so nahe beieinander sind, dass ihre Überlappung innerhalb der Pipeline ihre Zugriffsreihenfolge auf ein Register oder einen Speicherplatz im Hauptspeicher verändern würde. drei Arten von Datenkonflikten : Ein Lese-nach-Schreibe-Konflikt (Read After Write, RAW) wird durch eine echte Datenab­hän­gigkeit verursacht Ein Schreibe-nach-Lese-Konflikt (Write After Read, WAR) wird durch eine Gegenab­hän­gigkeit verursacht Ein Schreibe-nach-Schreibe-Konflikt (Write After Write, WAW) wird durch eine Aus­gabe­abhängigkeit verursacht

29 29 IFIDEXMEM load Reg1,A load Reg2,B add Reg2,Reg1,Reg2 mul Reg1,Reg2,Reg1 IFIDEXMEM IFIDEXMEM IFIDEXMEMWB timecycle time Datenkonflikte in einer Befehls-Pipeline

30 30 WAR and WAW: can they happen in our pipeline? WAR and WAW cant happen in DLX 5 stage pipeline because: All instructions take 5 stages, Register reads are always in stage 2, and Register writes are always in stage 5. WAR and WAW may happen in more complicated pipes.

31 31 add Reg2,Reg1,Reg2 mul Reg1,Reg2,Reg1 IFIDEXMEM IFIDEXMEMWB time cycle time Reg2 oldReg2 new wrong register read! Pipeline conflict due to a data hazard

32 32 Lösungen für Datenkonflikte Software-Lösungen (Compiler scheduling) no-op Befehle einfügen Befehlsanordnung (instruction scheduling oder pipeline scheduling): Befehlsumordnungen, um no-ops zu entfernen Hardware-Lösungen: Konflikt muss per HW entdeckt werden!! Leerlauf der Pipeline: Die einfachste Art, mit solchen Datenkonflikten umzugehen ist es, Inst 2 in der Pipeline für zwei Takte anzuhalten. Auch als Pipeline-Sperrung (interlocking) oder Pipeline-Leerlauf (stalling) bezeichnet. Forwarding: Wenn ein Datenkonflikt erkannt wird, so sorgt eine Hardware- Schaltung dafür, dass der betreffende Operand nicht aus dem Universalregister, sondern direkt aus dem ALU-Ausgaberegister der vorherigen Operation in das ALU-Eingaberegister übertragen wird. Forwarding with interlocking: Forwarding löst nicht alle möglichen Datenkonflikte auf.

33 33 add Reg2,Reg1,Reg2 mul Reg1,Reg2,Reg1 IFIDEXMEM IFIDEXMEMWB time Register Reg2 bubbles Data hazard: Hardware solution by interlocking

34 34 add Reg2,Reg1,Reg2 mul Reg1,Reg2,Reg1 IFIDEXMEM IFIDEXMEMWB time Data hazard: Hardware solution by forwarding

35 35 load Reg2,B add Reg2,Reg1,Reg2 IFIDEXMEM IFIDEXMEM WB not possible! time cycle time Pipeline hazard due to data dependence unresolvable by forwarding

36 36 load Reg2,B add Reg2,Reg1,Reg2 IFIDEXMEM IFIDEXMEM WB time bubble Unremovable pipeline bubble due to data dependence

37 Steuerflusskonflikte und deren Lösungsmöglichkeiten Steuerflussabhängigkeiten verursachen Steuerflusskonflikte in der DLX-Pipeline, da der Programmsteuerbefehl erst in der ID-Stufe als solcher erkannt und damit bereits ein Befehl des falschen Programmpfades in die Pipeline geladen wurde. Zu den Programmsteuerbefehlen gehören: die bedingten und die unbedingten Sprungbefehle, die Unterprogrammaufruf- und -rückkehrbefehle sowie die Unterbrechungsbefehle Nach bedingten Sprüngen, die genommen werden, startet die befehlsfolge mit drei Takten Latenz. Allerdings sind schon drei Befehle des falschen Pfads in der Pipeline.

38 38 branch instruction branch target instruction IFIDEXMEM IFIDEXMEMWB time PC three bubbles Leertakte nach einem genommenen bedingten Sprung

39 39 Lösung: Sprungrichtung schneller eintscheiden Sprungrichtung so schnell als möglich entscheiden und Zieladresse so schnell als möglich berechnen. Am besten bereits in der ID-Stufe nur noch ein Takt Latenz

40 40 Solution: Calculation of the branch direction and of the branch target address in ID stage However, then the ALU can no more be used for calculating the branch target address a structural hazard, which can be avoided by an additional ALU for the branch target address calculation in ID stage. And a new unremovable pipeline hazard arises: An ALU instruction followed by an (indirect) branch on the result of the instruction will incur a data hazard stall even when the result value is forwarded from the EX to the ID stage (similar to the data hazard from a load with a succeeding ALU operation that needs the loaded value). The main problem with this pipeline reorganization: decode, branch target address calculation, and PC write back within a single pipeline stage a critical path in the decode stage that reduces the cycle rate of the whole pipeline. Assuming an additional ALU and a write back of the branch target address to the PC already in the ID stage, if the branch is taken, only a one cycle delay slot arises

41 41 Software-Lösungen Verzögerte Sprungtechnik (delayed branch technique): Der Compiler füllt die Verzögerungszeitschlitze (delay slots). Ausfüllen der Verzögerungszeitschlitze mit Leerbefehlen. Statische Befehlsanordnung: Füllen mit Befehlen, die in der logischen Programmreihenfolge vor dem Sprung liegen Angewandt in der ersten Generation von RISC-Prozessoren, z.B. IBM 801, MIPS, RISC I, SPARC. In superskalaren Prozessoren, die mehr als einen Befehl holen und gleichzeitig verarbeiten können, erschwert die verzögerte Sprungtechnik die Befehlszuordnungslogik und die Implementierung präziser Unterbrechungen.

42 42 Hardware-Lösungen Pipeline-Leerlauf (Interlocking): einfachste, aber ineffizienteste Methode Spekulation auf nicht genommene bedingte Sprünge: die direkt nach dem Sprungbefehl stehenden drei Befehle in die Pipeline werden geladen Falls die Sprungbedingung zu genommen ausgewertet wird, müssen die drei Befehle wieder gelöscht werden und wir erhalten die üblichen drei Pipeline-Blasen. Falls der Sprung nicht genommen wird, so können die drei Befehle als Befehle auf dem gültigen Pfad weiterverarbeitet werden, ohne dass ein Leertakt entsteht. Diese Technik stellt die einfachste der sogenannten statischen Sprungvorhersagen dar.

43 43 Branch prediction Branch prediction foretells the outcome of conditional branch instructions. Excellent branch handling techniques are essential for today's and for future microprocessors.

44 44 Hardware solution (Branch Prediction) IF stage finds a branch instruction predict branch direction (Branch Target Buffer necessary!) The branch delay slots are speculatively filled with instruction of the consecutively following path of the path at the target address After resolving of the branch direction decide upon correctness of prediction In case of misprediction discard wrongly fetched instructions

45 45 Two Basic Techniques of Branch Prediction Static Branch Prediction: The prediction direction for an individual branch remains always the same! Dynamic Prediction: The prediction direction depends upon previous (the history of) branch executions.

46 46 Static Branch Prediction The prediction direction for an individual branch remains always the same! the machine cannot dynamically alter the branch prediction (in contrast to dynamic branch prediction which is based on previous branch executions). So static branch prediction comprises: machine-fixed prediction (e.g. always predict taken) and compiler-driven prediction. If the prediction followed the wrong instruction path, then the wrongly fetched instructions must be squashed from the pipeline.

47 47 Static Branch Prediction - machine-fixed wired taken/not-taken prediction: The static branch prediction can be wired into the processor by predicting that all branches will be taken (or all not taken). direction based prediction, backward branches are predicted to be taken and forward branches are predicted to be not taken ==> helps for loops

48 48 Static Branch Prediction - compiler-based Opcode bit in branch instruction allows the compiler to reverse the hardware prediction. There are two approaches the compiler can use to statically predict which way a branch will go: it can examine the program code, or it can use profile information (collected from earlier runs)

49 Sprungzieladress-Cache Der Sprungzieladress-Cache (Branch-target Address Cache, BTAC) oder Sprungzielpuffer (Branch-target Buffer, BTB) ist ein kleiner Cache-Speicher, auf den in der IF-Stufe der Pipeline zugegriffen wird. Er enthält Paare von Spungbefehls- und Sprungzieladressen.

50 50 Sprungzieladress-Cache

51 51 Hardware solutions: BTAC The BTAC functions as follows: The IF stage compares PC against the addresses of jump and branch instructions in BTAC (Field 1) Suppose a match: If the instruction is a jump, then the target address is used as new PC. If the instruction is a branch, a prediction is made based on information from BTAC (Field 3) as to whether the branch is to be taken or not. If predict taken, the most recent branch target address is read from BTAC (Field 2) and used to fetch the target instruction. Of course, a misprediction may occur. Therefore, when the branch direction is actually known in the MEM stage, the BTAC can be updated with the corrected prediction information and the branch target address.

52 52 BTAC (continued) To keep the size of BTAC small, only predicted taken branch addresses may be stored. Effective with static prediction! If the hardware alters the prediction direction due to the history of the branch, this kind of branch prediction is a dynamic branch prediction. Now the branch target address (of "taken") is stored also if the prediction direction may be "not taken". If the branch target address is removed for branches that are not taken ==> BTAC is better utilized however branch target address must be newly computed if the prediction direction changes to "predict taken"

53 Strukturkonflikte und deren Lösungsmöglichkeiten Struktur- oder Ressourcenkonflikte treten in unserer einfachen DLX- Pipeline nicht auf. Einen Strukturkonflikt kann man demonstrieren, wenn man unsere DLX- Pipeline leicht verändert: Wir nehmen an, die Pipeline sei so konstruiert, dass die MEM-Stufe in der Lage ist ebenfalls auf den Registersatz zurückzuschreiben.

54 54 load Reg2,A mul Reg3,Reg4,Reg5 IFIDEX MEM IFIDEX MEM WB time cycle time Register file WB Ein Strukturkonflikt, der durch eine veränderte Pipeline-Organisation verursacht wird

55 55 Hardware-Lösungen zur Vermeidung von Strukturkonflikten Arbitrierung mit Interlocking: Die Arbitrierungslogik erkennt den Strukturkonflikt und hält den im Programmfluss späteren der beiden um die Ressource konkurrierenden Befehle an. Übertaktung: die Ressource, die den Strukturkonflikt hervorruft, schneller zu takten als die übrigen Pipeline-Stufen. In diesem Fall könnte die Arbitrierungslogik zweimal auf die Ressource zugreifen und die Ressourcenanforderungen in der Ausführungsreihenfolge erfüllen Ressourcenreplizierung: Vervielfachen von Hardware-Ressourcen.

56 Ausführung in mehreren Takten Problem Mehrtaktbefehle mögliche Lösungen: Pipeline anhalten: Die einfachste Weise, mit einem solchen Strukturkonflikt umzugehen, ist es, Inst 2 in der Pipeline anzuhalten, bis Inst 1 die EX-Stufe verlässt Ressourcen-Pipelining: EX-Stufe selbst als Pipeline implementieren - die EX-Stufe kann in jedem Takt einen neuen Befehl entgegen nehmen (der Durchsatz ist 1). Ressourcenreplizierung: z. B. mehrere Ausführungseinheiten

57 57 Example of a WAW Hazard Caused by a Long-latency Operation and Out-of-order Completion div Reg3,Reg11,Reg12 mul Reg3,Reg1,Reg2 IFIDEX... IFIDEXMEMWB EX time Register Reg3 MEMWB several cycles later

58 58 Solutions to the Problem of Multiple-cycle Operations Interlocking: stall Inst2 in the pipeline until Inst1 leaves the EX stage pipeline bubbles, slow down a single pipelined FU: general-purpose FU for all kind of instructions slows down execution of simple operations multiple FUs: Inst2 may proceed to some other FU and overlap its EX stage with the EX stage of Inst1 out-of-order execution! instructions complete out of the original program order WAW hazard caused by output dependence may occur delaying write back of second operation solves WAW hazard further solutions: scoreboarding, Tomasulo, reorder buffer in superscalar

59 59 WAR possible?? WAR may occur if instruction can complete before a previous instruction reads its operand extreme case of o-o-o execution superscalar processors, not our simple RISC processor which issues and starts execution in-order)

60 60 Pipelining basics: summary Hazards limit performance Structural hazards: need more HW resources Data hazards: need detection and forwarding Control hazards: early evaluation, delayed branch, prediction Compilers may reduce cost of data and control hazards Compiler Scheduling Branch delay slots Static branch prediction Increasing length of pipe increases impact of hazards; pipelining helps instruction bandwidth, not latency Multi-cycle operations (floating-point) and interrupts make pipelining harder


Herunterladen ppt "1 2.3 Einfache Prozessoren und Prozessorkerne Grundkonzept des von- Neumann-Prinzips."

Ähnliche Präsentationen


Google-Anzeigen