Speculative execution

Speculative execution

Bei einer Speculative execution werden untätige Prozessor-Ressourcen verwendet um für einen potentiellen zukünftigen Stand des Programmflusses Berechnung vorauszuführen und Ergebnisse bereitzuhalten.

Hintergrund

Speculative Execution ist eine Umsetzung der Eager execution (dt: eifrige Auswertung) Auswertungstrategie, dem Gegenteil der Lazy Evaluation, auf Prozessorebene. Damit wird es dem Prozessor ermöglicht dauerhaft mehrere Befehle parallel auszuführen um effektiver und schneller zu arbeiten. Diese wurde auch deshalb eingeführt um die immer paralleler vorhanden Prozessorresourcen (mehrere Pipelines etc.), effektiver auszulasten.

Technik

Bei einer Speculative execution werden, in Phasen in denen der Prozessor nicht voll ausgelastet ist, die folgenden Programmschritte (in der Programmflusszukunft) auf ihre Ausführbarkeit untersucht, mit dem Ziel den wahrscheinlichsten Weg des Programmflusses zu finden. Der wahrscheinlichste Ausführungsweg wird verfolgt und die Ergebnisse werden als "Spekulative Ergebnisse" zwischengespeichert. Wenn das Programm an der Stelle angekommen ist an dem es die Ergebnisse benötigt, stehen sie schon zur Verfügung, es muss nicht auf eine möglicherweise langwierige Berechnung gewartet werden. Die zwischengepeicherten Ergebnisse werden ausgelesen und der passende ausgeführt, die anderen werden verworfen. Durch dieses "Vordenken" des Prozessors wird dessen Leistungsfähigkeit auch in Phasen geringerer Auslastung genutzt, um ihn bei hoher Auslastung später zu entlasten.

Nachteile

Ein Nachteil dieser Technik ist, dass Berechnungen auf Ausführungswegen die sich als Fehlspekulation erweisen, ebenfalls in die Energiebilanz eingehen. Diese Berechnungen tragen nicht zu Rechenleistung bei und haben damit die Rechenleistungseffizienz pro Watt reduziert. Für mobile Rechensysteme wie Laptops kann dies für die autarke Betriebszeit relevant sein, weshalb beispielsweise der Intel Atom-Prozessor bewusst ohne diese Technologie entwickelt wurde.


Wikimedia Foundation.

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

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

  • Speculative execution — In computer science, speculative execution is the execution of code, the result of which may not be needed. In the context of functional programming, the term speculative evaluation is used instead.TypesGenerally, statements and definitions in a… …   Wikipedia

  • Speculative multithreading — (SpMT), also known as thread level speculation (TLS), is a dynamic parallelization technique that depends on out of order execution to achieve speedup on multiprocessor CPUs. It is a kind of speculative execution that occurs at the thread level… …   Wikipedia

  • 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

  • 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

  • exécution — ● n. f. ►EXEC Désigne le moment pendant lequelle le processeur travaille pour le programme, interprétant ses ordres, calculant, traitant ses données, etc. Par exemple: l exécution du programme s est très bien passée: seulement 92 % des bulletins… …   Dictionnaire d'informatique francophone

  • 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

  • exécution spéculative — ● loc. f. ►EXEC Dans les plus récents processeurs, capacité à exécuter les instructions d un programme dans le désordre, par exemple celles qui suivent un branchement conditionnel avant qu on ne connaisse le résultat du test. En d autres termes,… …   Dictionnaire d'informatique francophone

  • Comparison of CPU architectures — Contents 1 Factors 1.1 Bits 1.2 Operands 1.3 Endianess 2 Architectures …   Wikipedia

  • Instruction level parallelism — (ILP) is a measure of how many of the operations in a computer program can be performed simultaneously. Consider the following program: 1. e = a + b 2. f = c + d 3. g = e * fOperation 3 depends on the results of operations 1 and 2, so it cannot… …   Wikipedia

  • Central processing unit — CPU redirects here. For other uses, see CPU (disambiguation). An Intel 80486DX2 CPU from above An Intel 80486DX2 from below …   Wikipedia

Share the article and excerpts

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