Zum Inhalt springen

Informatik · Klasse 10–13 · aktualisiert

Pipelining: Durchsatz, Hazards und Speedup

Du lernst, wie eine Befehlspipeline arbeitet, wie du ihren Zeitgewinn berechnest und wie Konflikte entstehen und gemindert werden.

0 von 9 Aufgaben gelöst

Pipelining: Durchsatz, Hazards und Speedup

Kurz gesagt

Pipelining überlappt die Bearbeitung mehrerer Befehle im Prozessor, der Recheneinheit eines Computers. Das kann den Durchsatz erhöhen, also die Zahl fertiger Befehle pro Zeit. Konflikte heißen Hazards; der Speedup ist der Zeitbedarf ohne Pipeline geteilt durch den mit Pipeline im erklärten Vergleich.

Ein Maschinenbefehl ist eine einzelne Arbeitsanweisung für den Prozessor. Eine Befehlspipeline zerlegt ihre Bearbeitung in Stufen, ähnlich wie ein Fließband. Du untersuchst zuerst einen vereinfachten Ablauf ohne Wartezeiten und danach mögliche Konflikte.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Eine Befehlspipeline teilt die Bearbeitung eines Befehls in aufeinanderfolgende Teilaufgaben. Jede Teilaufgabe gehört zu einer Stufe. Ein Takt ist hier ein gleich langer Zeitschritt. In unserem vereinfachten Modell benötigt jede Stufe einen Takt. Ein Befehl durchläuft die Stufen nacheinander und befindet sich in jedem Takt in einer Stufe.

Verschiedene Stufen können gleichzeitig verschiedene Befehle bearbeiten. Während ein Befehl die zweite Stufe nutzt, kann der nächste schon in der ersten Stufe beginnen. Die Arbeitsschritte eines einzelnen Befehls bleiben dabei erhalten.

Der Durchsatz beschreibt die Zahl fertig bearbeiteter Befehle pro Zeit. Im Idealmodell ohne Wartezeiten beginnt in jedem Takt ein neuer Befehl. Nachdem die Pipeline gefüllt ist, wird in jedem Takt ein Befehl fertig. Ein einzelner Befehl braucht trotzdem so viele Takte, wie die Pipeline Stufen hat. Seine Zeit vom Eintritt bis zum Abschluss heißt Latenz. Mehr Durchsatz bedeutet daher keine entsprechend kürzere Latenz eines einzelnen Befehls.

Definition

Pipelining

Mehrere Befehle werden zeitlich überlappend bearbeitet. Sie nutzen dabei verschiedene Stufen derselben Befehlspipeline.

Beispiel: Drei Befehle in einem ausgedachten Modell

  1. 1Das Modell hat die drei Stufen A, B und C. Jede Stufe braucht einen Takt; Wartezeiten treten nicht auf.
  2. 2Takt 1: Befehl U ist in A.
  3. 3Takt 2: U ist in B, V ist in A.
  4. 4Takt 3: U ist in C und endet danach; V ist in B, W ist in A.
  5. 5Takt 4: V ist in C und endet danach; W ist in B.
  6. 6Takt 5: W ist in C und endet danach. Jeder Befehl hat drei Takte gebraucht.

Teste dich

LeichtWarum kann eine Befehlspipeline den Durchsatz erhöhen?

Alles auf einen Blick

Pipelining

  • Prinzip

    Eine Pipeline überlappt die Bearbeitung verschiedener Befehle in verschiedenen Stufen.

  • Durchsatz

    Im gefüllten Idealmodell endet ein Befehl pro Takt; ein einzelner Befehl braucht weiterhin einen Takt je Stufe.

  • Idealrechnung

    Bei anfangs leerer Pipeline, gleich langen Stufen und ohne zusätzliche Zeiten gilt mit Stufenzahl k, Befehlszahl n und Taktzeit \tau die Laufzeit T_{\mathrm{P}}=(k+n-1)\cdot\tau.

  • Speedup

    Gegenüber der festgelegten Vergleichslaufzeit n\cdot k\cdot\tau beträgt der ideale Beschleunigungsfaktor S=\frac{n\cdot k}{k+n-1}.

  • Konflikte

    Eine belegte Ressource, ein fehlender Datenwert oder eine unklare Fortsetzung können Wartezeiten verursachen.

  • Gegenmaßnahmen

    Zusätzliche Bausteine können Ressourcenengpässe beheben, Forwarding kann verfügbare Werte weiterreichen und Sprungvorhersage kann Wartezeit mindern. Keine Maßnahme löst jedes Problem.

Musteraufgabe · Schritt für Schritt

Laufzeit und Speedup für zehn Befehle berechnen

  1. 1Ausgedachte Aufgabe im erklärten Idealmodell: Die anfangs leere Pipeline hat k=3 Stufen. Sie verarbeitet n=10 Befehle mit der Taktzeit \tau=4\,\mathrm{ns}.
  2. 2Zähle die Takte: Der erste Befehl braucht drei Takte, die übrigen neun brauchen jeweils einen weiteren. Insgesamt sind das 3+10-1=12 Takte.
  3. 3Berechne die Pipeline-Laufzeit: T_{\mathrm{P}}=12\cdot4\,\mathrm{ns}=48\,\mathrm{ns}.
  4. 4Berechne die festgelegte Vergleichslaufzeit ohne Pipeline: T_{\mathrm{ohne}}=10\cdot3\cdot4\,\mathrm{ns}=120\,\mathrm{ns}.
  5. 5Teile die Vergleichslaufzeit durch die Pipeline-Laufzeit: S=\frac{120}{48}=2{,}5. Der ideale Beschleunigungsfaktor ist hier kleiner als die Stufenzahl.

Fehler finden

Prüfe die Rechnung für neun Befehle In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Nach dem Füllen liefert die Pipeline unseres Idealmodells pro Takt . Alle benötigten Bausteine sind frei, aber ein Folgebefehl braucht den noch nicht berechneten Ergebniswert seines Vorgängers. Das beschriebene Problem ist ein . Bei einem einzigen Befehl und vier Stufen beträgt der Speedup im erklärten idealen Vergleich .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Pipelining

LeichtEine anfangs leere ideale Pipeline hat fünf Stufen. Jede Stufe benötigt einen Takt. Wie viele Takte braucht der erste Befehl vom Eintritt bis zum Abschluss?
MittelIn einem ausgedachten Ablauf sind Werte und Rechenbausteine verfügbar. Unklar ist, ob es nach einer Prüfung bei Befehl R oder bei Befehl Z weitergeht. Welcher Konflikt ist beschrieben?
SchwerIm erklärten Idealmodell werden n=16 Befehle durch k=5 Stufen verarbeitet. Welcher Speedup ergibt sich gegenüber dem festgelegten Vergleich ohne Pipeline?

Weiterlesen in Informatik