Außer-der-Reihe-Ausführung

Außer-der-Reihe-Ausführung
Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Bitte entferne erst danach diese Warnmarkierung.

Out-of-order Execution (kurz OOO) bzw. Außer-der-Reihe-Ausführung (AdR-A) bezeichnet die Möglichkeit, Befehle in den Ausführungseinheiten eines (meist) superskalaren Prozessors außerhalb der Programmreihenfolge auszuführen, mit dem Ziel, die Pipelines möglichst gut auszulasten.

Grundidee

Aufgrund der Forderung, dass das Ergebnis dieser Operationen das gleiche sein muss wie bei Ausführung in Programmreihenfolge, ist OOO-Ausführung nur bei Befehlsfolgen möglich, die nicht voneinander abhängig sind.

Das Gegenteil von Out-of-order Execution ist In-Order Execution, bei der die Befehle strikt nach Programmreihenfolge abgearbeitet werden.

Motivation

Ein superskalarer Prozessor besitzt mehrere Funktionseinheiten (wie ALU, FPU, Load/Store-Einheit oder spezielle Vektoreinheiten), mit dem Ziel, möglichst viel Befehlsparallelität auszunutzen und damit die Ausführungsgeschwindigkeit zu erhöhen. Wegen Datenabhängigkeiten zwischen den Befehlen ist die parallele Ausführung aber nicht immer möglich. Hinzu kommt die Einschränkung, dass einige Befehle zwar parallel voneinander ausgeführt werden könnten, diese aber nicht direkt hintereinander im Programmcode stehen, so dass ein Prozessor ohne OOO diese nicht parallel ausführen kann, weil er sich streng an die Ausführungsreihenfolge hält, die im Programm vorgegeben ist.

Eine Umordnung der Befehle im Programm per Hand oder durch den Compiler kann auf einem In-Order-Prozessor zwar zu besseren Ergebnissen führen, aber niemals optimal sein, weil die Ausführungszeit von Speicherzugriffen nicht vorhersagbar ist. Diese hängt davon ab, ob der Cache die geforderten Daten oder der TLB die geforderte Seitenübersetzung liefern kann. Das kann man meist nicht oder nur schwer zur Compilier-Zeit voraussagen.

Ein dynamisches Verfahren wie die OOO-Ausführung kann zur Ausführungszeit entsprechend reagieren und so mehr Befehle parallel ausführen und damit die Bearbeitung beschleunigen.

Implementierung

Implementiert wird meist Scoreboarding oder der Tomasulo-Algorithmus.

Beim Scoreboarding werden belegte Ressourcen auf einem zentralen Scoreboard markiert und nach ihrer Verwendung wieder freigegeben.

Der Tomasulo-Algorithmus implementiert Dynamisches Scheduling. So werden mehrere Befehle gleichzeitig ausgeführt, solange die Operanden unabhängig sind. Verhindert werden Read-After-Write-Hazards, in dem der Befehl verzögert wird, und Write-After-Read-Hazards, indem ein neuer Wert zwischengespeichert wird. Zur Reduzierung der Datenabhängigkeiten wird zusätzlich Registerumbenennung verwendet.

Fast alle modernen x86-Prozessoren ab dem Intel Pentium Pro bzw. AMD K6 besitzen die Möglichkeit, Befehle „out-of-order” auszuführen. Bekannte Ausnahmen sind die IDT WinChip und VIA C3/VIA C7 Serien, die von Centaur Technologies entwickelt wurden, und die Intel Atom Serie.

Siehe auch: Multithreading (hardwareseitig)


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Der Traum der heiligen Ursula (Carpaccio) — Der Traum der heiligen Ursula Vittore Carpaccio, 1495 Öl auf Leinwand, 267 cm × 274 cm Accademia, Venedig Der Traum d …   Deutsch Wikipedia

  • Der Trendsport —   Trendsport als freizeitsportliches Vergnügen auch Funsport genannt umfasst die in jüngster Zeit entstandenen Sportarten bzw. disziplinen, die sich zunehmender Beliebtheit erfreuen. Trendsportarten sind vor allem dadurch gekennzeichnet, dass sie …   Universal-Lexikon

  • Der Schakal (1973) — Filmdaten Deutscher Titel Der Schakal Originaltitel The Day of the Jackal …   Deutsch Wikipedia

  • Karte der Rumtreiber — In diesem Artikel werden wichtige Begriffe aus den sieben Bänden der Harry Potter Romanreihe von Joanne K. Rowling beschrieben. Inhaltsverzeichnis 1 Menschen 1.1 Zauberer und Hexen 1.1.1 Reinblut 1.1.2 Halbblut …   Deutsch Wikipedia

  • Ägypten zur Zeit der Pharaonen —   Den Beginn ihrer Geschichte führten die Alten Ägypter auf die »Reichseinigung«, die »Vereinigung der Beiden Länder« (Ober und Unterägypten), zurück und schrieben diese Tat dem König Menes zu. Davor lag eine Zeit, in der die Götter als Könige… …   Universal-Lexikon

  • Begriffe der Harry-Potter-Romane — In diesem Artikel werden wichtige Begriffe aus den sieben Bänden der Harry Potter Romanreihe von Joanne K. Rowling beschrieben. Inhaltsverzeichnis 1 Menschen 1.1 Zauberer und Hexen 1.1.1 Reinblut …   Deutsch Wikipedia

  • Oberbau der Eisenbahnen — ist das Gleis samt der Bettung, die auf dem Bahnkörper, dem Unterbau, ruht. Das Gleis besteht aus zwei auf Unterlagen befestigten Schienensträngen. Seine einzelnen Bestandteile sind: die Schienen mit den zu ihrer Längs oder Stoßverbindung… …   Lexikon der gesamten Technik

  • Figuren der Harry-Potter-Romane — In diesem Artikel werden wichtige Figuren aus den sieben Bänden der Harry Potter Romanreihe von Joanne K. Rowling beschrieben. Inhaltsverzeichnis 1 Hauptpersonen 1.1 Harry Potter 1.2 Hermine Granger …   Deutsch Wikipedia

  • Begriffe der Dune-Zyklen — Dieser Artikel befasst sich mit Begriffen aus den Dune Zyklen von Frank Herbert, Frank Herberts Sohn Brian und Kevin J. Anderson. Inhaltsverzeichnis 1 Gruppierungen/Organisationen/Völker 1.1 Atreides 1.2 Harkonnen …   Deutsch Wikipedia

  • Liste von Radfahrzeugen der Bundeswehr — Das Logo der Bundeswehr Diese Liste behandelt die Radfahrzeuge der Bundeswehr. Unterschieden wird zwischen militärischen (mil), teilmilitärischen (tmil) und handelsüblichen (hl) Fahrzeugen. Die Liste ist nach Fahrzeuggenerationen sortiert. Diese… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”