Temporales Multithreading

Temporales Multithreading ist eine der beiden Hauptformen von Multithreading das kann auf Computerprozessor -Hardware implementiert werden, das andere Wesen Simultanes Multithreading. Der Unterschied zwischen den beiden Formen ist die maximale Anzahl der gleichzeitigen Themen das kann in jeder gegebenen Ausführung ausgeführt werden Pipeline Bühne in einem gegebenen Kreislauf. Beim zeitlichen Multithreading ist die Zahl eins, während bei gleichzeitiger Multithreading die Zahl größer als eins ist. Einige Autoren verwenden den Begriff Super-Threading synonym.[1]

Variationen

Es gibt viele mögliche Variationen des zeitlichen Multithreading, aber die meisten können in zwei Unterformulare eingeteilt werden:

Grobkörnig
Die Hauptprozessor -Pipeline enthält jeweils nur einen Faden. Der Prozessor muss effektiv einen schnellen Durchführen durchführen Kontextschalter Vor dem Ausführen eines anderen Threads. Dieser schnelle Kontextschalter wird manchmal als als bezeichnet Gewindeschalter. Es kann beim Wechsel zusätzliche Strafzyklen geben oder nicht.
Es gibt viele mögliche Variationen des grobkörnigen temporalen Multithreading, hauptsächlich in Bezug auf den Algorithmus, der bestimmt, wann das Gewindeschalter auftritt. Dieser Algorithmus kann auf einem oder mehreren von vielen verschiedenen Faktoren basieren, einschließlich Zykluszahlen, Cache Fehler, und Gerechtigkeit.
Feinkörnig (oder verschachtelt)
Die Hauptprozessor -Pipeline kann mehrere Gewinde enthalten, wobei Kontextschalter zwischen Rohrstufen effektiv auftreten (z. B. in der Fassprozessor). Diese Form des Multithreading kann teurer sein als die grobkörnigen Formulare, da Ausführungsressourcen, die mehrere Rohrstufen umfassen, möglicherweise mit mehreren Threads zu tun haben. Auch zu Kosten beiträgt die Tatsache, dass dieses Design nicht im Konzept eines "Hintergrund" -Threads optimiert werden kann - eines der von der Hardware implementierten gleichzeitigen Threads erfordert möglicherweise die ITS. Zustand in einem beliebigen Zyklus gelesen oder geschrieben werden.[2]

Vergleich zum gleichzeitigen Multithreading

In einer seiner Formen ist das zeitliche Multithreading in vielerlei Hinsicht ähnlich wie das gleichzeitige Multithreading. Wie im gleichzeitigen Prozess die Hardware- Muss einen vollständigen Satz von Zuständen pro gleichzeitiger implementierter Thread speichern. Die Hardware muss auch die Illusion bewahren, dass ein bestimmter Thread die Prozessorressourcen für sich selbst enthält. Fairness -Algorithmen müssen in beiden Arten von Multithreading -Situationen aufgenommen werden, um zu verhindern, dass ein Faden die Prozessorzeit und/oder die Ressourcen dominiert.

Das zeitliche Multithreading hat einen Vorteil gegenüber dem gleichzeitigen Multithreading, da es einen geringeren Prozessorwärmeausgang verursacht. Es ermöglicht jedoch, dass nur ein Thread gleichzeitig ausgeführt wird.

Siehe auch

Verweise

  1. ^ Überthreadend mit einem Multithread -Prozessor
  2. ^ Silberschatz, Abraham (2012). Betriebssystemkonzepte. Wiley, 9. Ausgabe. p. 283. ISBN 978-1118063330.