Info2go

Hier gibt ́s Videos über spannende Experimente, Aufnahmen von wissenschaftlichen Phänomenen und Reportagen über nordbord-Projekte sowie interessante Unternehmen. Das Beste: Du kannst auch deine eigenen Filme drehen und hier mit anderen nordbordern teilen.

Was ist "Out-of-order Execution"?

Was ist "Out-of-order Execution"?

Ganz abstrakt betrachtet haben Quelltexte eine große Ähnlichkeit mit Anleitungen: Sie sind zwar sehr viel detaillierter (fast so als müsste man einem sehr, sehr, sehr peniblen Menschen etwas erklären), letzten Endes handelt es sich aber immer um eine Folge von Anweisungen. Wir nähern uns daher mal von einer ganz anderen Seite und betrachten die folgende Anleitung um ein englisches Frühstück vorzubereiten:
  1. Gehe zum Kühlschrank und hol drei Eier heraus.
  2. Schlage diese Eier in eine Schale und füge ein bisschen Salz, Pfeffer und Milch hinzu.
  3. Gebe das entstandene Gemisch in eine erhitzte Bratpfanne und rühre regelmäßig um.
  4. Gehe zum Kühlschrank und hole den Speck heraus.
  5. Schneide den Speck in dünne Streifen.
  6. Lege den dünn geschnittenen Speck in eine Bratpfanne und wende den Speck regelmäßig.
  7. Richte den Speck und das Rührei auf einem Teller an.
Erfahrene Köche halten sich nicht exakt an dieses Vorgehen: Sie gehen lieber nur einmal zum Kühlschrank, bereiten dann das Rührei und den Speck nacheinander vor um danach dann beides gleichzeitig zu braten. Das setzt natürlich voraus, dass in der Küche genügend Platz ist um zwei Dinge anzurichten und auch das zwei Herdplatten und zwei Pfannen existieren. Wenn diese Voraussetzungen gegeben sind ergibt sich dann als tatsächliche Reihenfolge zum Beispiel 1, 4, 2, 5, (3 & 6), 7: Die beiden Schritte "Braten auf dem Herd" können also gleichzeitig erfolgen. Grundsätzlich macht ein Prozessor das sehr ähnlich: Er analysiert den kommenden Programmfluss und schaut schon einmal welche Aufgaben in der nächsten Zeit anliegen und welche Kapazitäten dann noch frei sind. Zum Beispiel hat ein moderner Prozessor unterschiedliche Einheiten für die Verarbeitung von ganzen Zahlen und Kommazahlen. Nehmen wir als Beispiel mal den folgenden (abstrakten Programmfluss):
  1. 3,141 + 1,23
  2. 1,618 + 4,56
  3. 2.718 + 7,89
  4. 1 + 2
  5. 3 + 4
  6. 5 + 6
Ein Blick auf die Artikelgrafik verdeutlicht, wie durch die "Out of order"-Execution hier Zeit gespart werden kann: Die Befehle werden nicht in exakt der vorliegenden Reihenfolge ausgeführt, sondern gleichzeitig. Dadurch dauert die Ausführung nur noch halb so lang und der Prozessor hat doppelt so schnell gearbeitet. Und die Probleme zu den es dabei kommen kann betrachten wir in der kommenden Woche.

Zurück