Tomasulo

Tomasulo

Der Tomasulo-Algorithmus ist ein Algorithmus zur Implementierung von dynamischem Scheduling in Prozessoren. Er wurde von Robert Tomasulo bei IBM entwickelt - ursprünglich für die Gleitkommaeinheit des 360/91[1].

Inhaltsverzeichnis

Einordnung

Um die Geschwindigkeit zu erhöhen, mit der ein Prozessor auszuführende Instruktionen bei konstanter Taktfrequenz durchläuft, wird die Ausführung von Instruktionen in mehrere Schritte unterteilt. Sobald eine Instruktion eine Stufe durchlaufen hat, kann die nächste Instruktion bereits diese Stufe betreten, so dass der Prozessor stets an mehreren Instruktionen gleichzeitig arbeitet. Dieses Verfahren bezeichnet man als Pipelining, die Stationen, die die Befehle durchlaufen, als Stages.

Wenn nun Teile der Pipeline oder die gesamte Pipeline mehrfach vorkommen, spricht man von Superskalarität. Da sich mehrere Befehle gleichzeitig in der Pipeline befinden, kann es durch Abhängigkeiten zwischen den auszuführenden Befehlen zu Problemen kommen. Eine naive Lösung ist es, mit der Abarbeitung der nächsten Befehle zu warten. Ein intelligenteres Verfahren, das dies umgeht, ist das dynamische Scheduling. Der Tomasulo-Algorithmus stellt eine konkrete Implementierung dieses Verfahrens dar. Ein weiteres Verfahren ist z.B. das Scoreboarding.

Strategie

Der Tomasulo-Algorithmus verfolgt das Ziel, die Ausführung von Befehlen fortzusetzen, selbst wenn Datenabhängigkeiten vorliegen. Zum einen handhabt er Read-after-write-Hazards (RAW), indem der Prozessor verfolgt, wann ein Operand zur Verfügung steht. Zum anderen handhabt er Write-after-write- (WAW) und Write-after-read-Hazards (WAR), indem relevante Registerinhalte beim Decodieren eines Befehls in speziellen Reservation Stations gesichert und so vor vorzeitigem Überschreiben geschützt werden.

Prozessoraufbau

Ein Prozessor, der den Tomasulo-Algorithmus implementiert, enthält unter anderem folgende Komponenten:

  • Functional Units (FU): Die Functional Units sind Prozessorbausteine, die logisch/arithmetische Berechnungen ausführen. Es gibt hiervon meist mehrere; sie unterscheiden sich in der Art der Operationen, welche sie ausführen können (floating point, integer, load/store, etc.). Bei modernen Prozessoren ist fünf eine typische Zahl für die Anzahl an FUs.
  • Reservation Stations (RS): Diese implementieren Register Renaming und werden wie temporäre Register behandelt. Für jede FU gibt es zwei bis acht Reservation Stations. Eine Reservation Station enthält die auszuführende Operation, zwei Felder für die Werte der Operanden und zwei Felder für die Herkunft der Operanden, falls sie zum aktuellen Zeitpunkt noch nicht zur Verfügung stehen bzw. noch nicht gültig sind.

Funktionsweise

Jeder auszuführende Befehl durchläuft drei Stationen.

  1. Issue: Die Operation des Befehls an der aktuellen Position in der Operation Queue wird inspiziert. Handelt es sich um eine arithmetische Operation, wird nur fortgefahren, wenn eine Reservation Station der entsprechenden Art frei ist. Der Befehl wird dekodiert und samt seiner Operanden in der freien Reservation Station zwischengespeichert. Dieser Vorgang wird als Register Renaming bzw. als Register Reorder bezeichnet.
  2. Execute: Sobald beide Operanden als tatsächliche Register oder als Speicheradressen zur Verfügung stehen, wird die Operation ausgeführt. Andernfalls wird der Common Data Bus auf weitere eingehende Werte beobachtet; trifft ein Wert ein, wird er übernommen, sofern die Adresse der Quelleinheit mit der benötigten Adresse übereinstimmt.
  3. Write result: Sobald das Ergebnis der Operation berechnet wurde, wird es inklusive der Adresse der sendenden Einheit an den Common Data Bus abgegeben, der es wiederum an alle Einheiten verteilt, die gerade in Stufe 2 auf ein noch ausstehendes Ergebnis warten.

Weitere Merkmale

Über die obige Logik hinaus erkennt der Tomasulo-Algorithmus sich überlappende Write-Befehle auf ein und dasselbe Register und führt nur den letzten zum Aktualisieren des Registers aus.

Einzelnachweise

  1. John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.), S. 92

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

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

  • Tomasulo algorithm — The Tomasulo algorithm is a hardware algorithm developed in 1967 by Robert Tomasulo from IBM. It allows sequential instructions that would normally be stalled due to certain dependencies to execute non sequentially (out of order execution). It… …   Wikipedia

  • Tomasulo-Algorithmus — Der Tomasulo Algorithmus ist ein Algorithmus zur Implementierung von dynamischem Scheduling in Prozessoren. Er wurde von Robert Tomasulo bei IBM entwickelt ursprünglich für die Gleitkommaeinheit des 360/91[1]. Inhaltsverzeichnis 1 Einordnung 2… …   Deutsch Wikipedia

  • Antonio Tomasulo — Tommasulo a.k.a. Bootsie (1917 June 23, 2003) was an Italian American mobster who served in the New York Bonanno crime family running a highly lucrative illegal slot machine gambling operation.BiographyBorn in Greenpoint, Brooklyn, Tomasulo… …   Wikipedia

  • Robert Tomasulo — Robert Marco Tomasulo (October 31, 1934 April 3, 2008) was the inventor of the Tomasulo algorithm. Tomasulo was the recipient of the 1997 Eckert Mauchly Award For the ingenious Tomasulo s algorithm, which enabled out of order execution processors …   Wikipedia

  • Robert Tomasulo — Robert Marco Tomasulo (31 de octubre de 1934 3 de abril de 2008) fue un científico de la computación y el inventor del algoritmo de Tomasulo. Contribuyó en el diseño del IBM 360 desarrollando una técnica para acelerar las operaciones de coma… …   Wikipedia Español

  • Algoritmo de Tomasulo — El algoritmo de Tomasulo es un algoritmo de planificación dinámica desarrollado por Robert Tomasulo, de IBM. Se diseñó para permitir a un procesador ejecutar instrucciones fuera de orden. Este algoritmo difiere del algoritmo de marcador… …   Wikipedia Español

  • Algorithme de Tomasulo — L’Algorithme de Tomasulo est un algorithme facilitant le parallélisme au sein des processeurs mis au point en 1967 par Robert Tomasulo. Cet algorithme, est l une des implémentations possibles pour l exécution out of order, il trie les… …   Wikipédia en Français

  • Frank P. Tomasulo — is an American film critic and Professor and Head of Film Studies in the College of Motion Picture, Television, and Recording Arts at Florida State University. He received his M.A. in Cinema Studies at New York University and his Ph. D. in Film… …   Wikipedia

  • Nicholas Santora — Nicholas Angelo Nicky Mouth Santora (born June 21, 1942) is the reputed underboss of the Bonanno crime family. Contents 1 Biography 1.1 The three capos murder …   Wikipedia

  • 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… …   Deutsch Wikipedia

Share the article and excerpts

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