5

Es gibt zwei Ausdrücke:Was ist der Unterschied zwischen temporalem Multithreading und Super-Threading?

  • Temporal multithreading: In feinkörnigen temporal multithreading, die Hauptprozessorpipeline mehr Threads enthalten kann, Switches mit Zusammenhang zwischen den Rohrstufen effektiv auftritt (beispielsweise in den barrel processor). Ein Barrel-Prozessor ist eine CPU, die bei jedem Zyklus zwischen Ausführungs-Threads wechselt.

  • Super-threading: ist eine Art von Multithreading, die es ermöglicht, dass verschiedene Threads von einem einzigen Prozessor ausgeführt werden, ohne sie gleichzeitig auszuführen. 1 Dies qualifiziert es als Time-Sliced ​​oder temporales Multithreading anstatt simultanes Multithreading (SMT). Dies wird durch die Beobachtung motiviert, dass die Funktionseinheiten des Prozessors während der Ausführung von Befehlen aus einem Thread aufgrund von Ereignissen mit langer Latenzzeit gelegentlich inaktiv bleiben. Super-Threading versucht, die ansonsten ungenutzten Prozessorzyklen zu nutzen, indem Befehle aus einem anderen Thread ausgeführt werden, bis der vorherige Thread wieder zur Ausführung bereit ist.

ist der Hauptunterschied zwischen TM und ST, dass Temporal Multithreading (feinkörnig) verwendet C-slowing und schaltet zwischen Ausführungs-Threads bei jedem Zyklus, aber super-Threading-Schalter zwischen Threads nicht in jedem Zyklus, und nur wenn Prozessor Funktionelle Einheiten werden während der Ausführung von Befehlen aus einem Thread aufgrund von Ereignissen mit langer Latenz inaktiv gelassen?

Was ist der Unterschied zwischen dem temporalen Multithreading (feinkörnig) und Super-Threading?

+3

Aus einer * sehr kurzen * Suche (und * einiger * Vertrautheit mit der Computerarchitektur) scheint Super-threading zuerst in Shuichi Sakai et al. "Super-threading: Architektur- und Softwaremechanismen zur Optimierung der Parallelberechnung "mit einem viel breiteren Sinn für Hardware-Unterstützung für Threading. Der Begriff wird (so weit ich weiß) in der Computerarchitektur-Community nicht allgemein verwendet. Temporales Multithreading umfasst grobkörnige (typischerweise einschaltbares Ereignis-MT) und feinkörnige (einschließlich Trommelverarbeitung und flexiblere Zyklus-für-Zyklus-Planung) MT. –

+0

@ Paul A. Clayton Der Begriff ST wird selten verwendet. Ist es möglich, weil Super-Threading (ST) Anweisungen nur für eine Pipeline (ALU) bereitstellt, aber gleichzeitiges Multithreading (SMT) für mehrere Pipelines (ALUs)? I.e. ST nutzt nur Vorteile für Blockierungen (Cache-Miss, Verzweigungsfehlvorhersage oder Datenabhängigkeit), aber moderne CPUs sind auch Superskalararchitektur, und anstelle von ST verwendete SMT, um Vorteile der Superskalar-Architektur zu nutzen. Zum Beispiel Hyper-Threading - ist Intels proprietäres simultanes Multithreading (SMT). – Alex

Antwort

2

Zeitliches Multithreading könnte in Form von feinkörnigem oder grobkörnigem Multithreading vorliegen. Feinkörniges Multithreading schaltet Kontexte bei einem festen Feinkörnigkeitsintervall um (z. B. bei jedem Zyklus). Grobkörniges Multithreading schaltet Kontexte auf Ereignisse mit langer Latenz um (z. B. LLC-Cache-Misses).

Gleichzeitigen Multithreading, auf der anderen Seite, hat keine Ahnung von Thread-Switching. Mehrere Threads können gleichzeitig ausgeführt werden.

Ein Bild sagt mehr als tausend Worte. Schauen Sie sich die Folien 5 bis 7 here an. Es hat Bilder für alle 3 Methoden und vergleicht sie gut.

Wie andere Leute gesagt haben, Super-Threading ist kein gebräuchlicher Ausdruck und es scheint mir grobkörnigen TM ähnlich zu sein.

+0

Danke, ja das sind gute Folien. Wir können das Super-Threading als zeitliches Multithreading (grobkörnig) betrachten. I.e.Arten von Multithreading variieren wie folgt - von freigegebenen alles zu Shared nichts in CPU-Core zwischen Threads: ** None ** (vollständige Software Multithreading), ** TM (feinkörnig) ** in Barrel-Prozessoren, ** TM (grobkörnig) - Super Threading **, ** SMT ** - Hyperthreading, ** CMT ** (Chip Multithreading) - Multicore mit gemeinsamer teurer Ressource (einzelne FPU auf einigen Kernen), ** CMP ** (Chip Multiprozessoren) - Multicore mit gemeinsamem Last Level Cache & Interconnect. – Alex

+0

Können wir sagen, dass moderne Intel-CPUs, zum Beispiel, Intel Core i7 ist sowohl CMP als auch SMT? – Alex

+1

@Alex, soweit ich weiß, ja. Fast alle x86-Prozessoren sind heutzutage CMP (ich kann mir keine Single-Core-x86-CPU vorstellen). Das Gleiche gilt für SMT. Einige sind 2-Wege-SMT, einige sind 4-Wege-SMT. Beachten Sie, dass Intel den Begriff Hyperthreading für SMT verwendet. BTW, werfen Sie einen Blick auf Stanford CPU-Datenbank für Ihre Referenz. http://cpudb.stanford.edu/ – aminfar