Out-of-order execution

Out-of-order execution

Out-of-order Execution (in etwa: Außer-der-Reihe-Ausführung) 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.

Inhaltsverzeichnis

Grundidee

Aufgrund der Forderung, dass das Ergebnis dieser Operationen das gleiche sein muss wie bei Ausführung in Programmreihenfolge, ist OOE-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 OOE 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 OOE-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, indem 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.

Literatur

  • Oberschelp, Vossen: Rechneraufbau und Rechnerstrukturen. 9. Auflage. Oldenbourg, 2003, ISBN 3486272063.

Siehe auch


Wikimedia Foundation.

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

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

  • Out-of-order execution — In computer engineering, out of order execution (OoOE or OOE) is a paradigm used in most high performance microprocessors to make use of instruction cycles that would otherwise be wasted by a certain type of costly delay. In this paradigm, a… …   Wikipedia

  • Out-of-Order-Execution — 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… …   Deutsch Wikipedia

  • Out of Order — may refer to: Out of Order (novel), a novel by Phoebe Atwood Taylor Out of Order (Nuclear Assault album) Out of Order (Rod Stewart album) Out of Order (TV series), a miniseries starring Eric Stoltz and Felicity Huffman Out of Order (Curious… …   Wikipedia

  • Out-of-order — 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… …   Deutsch Wikipedia

  • Exécution out-of-order — L exécution out of order (« dans le désordre » en anglais) d instructions par un processeur consiste à réorganiser l ordre dans lequel les instructions d un programme vont s exécuter. Ces instructions ne sont alors pas forcément… …   Wikipédia en Français

  • In-Order Execution — (in etwa: in der Reihe Ausführung) bezeichnet die Beschränkung Befehle nur strikt nach Programmreihenfolge abarbeiten zu können. Im Gegensatz zur Out of order Execution, wo Befehle in den Ausführungseinheiten eines (meist) superskalaren… …   Deutsch Wikipedia

  • order — or·der 1 n 1: a state of peace, freedom from unruly behavior, and respect for law and proper authority maintain law and order 2: an established mode or state of procedure a call to order 3 a: a mandate from a superior authority see also …   Law dictionary

  • order — {{Roman}}I.{{/Roman}} noun 1 way in which people/things are arranged ADJECTIVE ▪ correct, proper, right ▪ wrong ▪ logical ▪ The paragraphs are not in a logical order …   Collocations dictionary

  • Exécution spéculative — En informatique, L exécution spéculative correspond au lancement anticipé d une instruction, c est à dire sans être certain que celle ci ait réellement besoin d être exécutée. Types Généralement, on peut distinguer trois type d instructions et de …   Wikipédia en Français

  • out of commission — Commission Com*mis sion, n. [F., fr. L. commissio. See {Commit}.] 1. The act of committing, doing, or performing; the act of perpetrating. [1913 Webster] Every commission of sin introduces into the soul a certain degree of hardness. South. [1913… …   The Collaborative International Dictionary of English

Share the article and excerpts

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