Out-of-order

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 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:

  • out of order — {adv.} or {adj. phr.} 1. In the wrong order; not coming after one another in the right way. * /Peter wrote the words of the sentence out of order./ * /Don t get out of order, children. Stay in your places in line./ Contrast: IN ORDER. 2. In poor… …   Dictionary of American idioms

  • out of order — {adv.} or {adj. phr.} 1. In the wrong order; not coming after one another in the right way. * /Peter wrote the words of the sentence out of order./ * /Don t get out of order, children. Stay in your places in line./ Contrast: IN ORDER. 2. In poor… …   Dictionary of American idioms

  • out of order — ➔ order1 * * * Ⅰ. out of order ► not acceptable according to a law or rule, or according to what people think is correct or suitable: »Her comments were ruled out of order by the chairperson. »The Press Complaints Commission acknowledged that… …   Financial and business terms

  • 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 — Out Out (out), adv. [OE. out, ut, oute, ute, AS. [=u]t, and [=u]te, [=u]tan, fr. [=u]t; akin to D. uit, OS. [=u]t, G. aus, OHG. [=u]z, Icel. [=u]t, Sw. ut, Dan. ud, Goth. ut, Skr. ud. [root]198. Cf. {About}, {But}, prep., {Carouse}, {Utter}, a.]… …   The Collaborative International Dictionary of English

  • out of order — ► out of order 1) not working properly or at all. 2) Brit. informal unacceptable or wrong. Main Entry: ↑order …   English terms dictionary

  • out of order — index anomalous, defective, deviant, disjointed, disordered, disorderly, faulty, imperfect, irregular ( …   Law dictionary

  • out\ of\ order — adv or adj. phr. 1. In the wrong order; not coming after one another in the right way. Peter wrote the words of the sentence out of order. Don t get out of order, children. Stay in your places in line. Contrast: in order 2. In poor condition; not …   Словарь американских идиом

  • out of order — 1 the lift s out of order: NOT WORKING, not in working order, not functioning, broken, broken down, out of service, out of commission, faulty, defective, inoperative; down; informal conked out, bust, ( …   Useful english dictionary

  • out of order — 1) a machine or piece of equipment that is out of order is not working correctly 2) British behaviour that is out of order is annoying because it is not suitable for a particular situation. 3) formal remarks or actions that are out of order do… …   English dictionary

Share the article and excerpts

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