Nai
Lt. Commander
- Registriert
- Aug. 2012
- Beiträge
- 1.578
Das mit dem HyperThreading oder Symmetric Multi Threading heißt nun, dass die Pipeline so breit ausgeführt ist, dass das ggf. mehr als ein Befehl nebeneinander drauf passt. Es gibt Befehle, die mit kleineren Datentypen als andere, oder die nur ein Argument haben statt zwei. Deswegen passt ggf. von den "breitesten" Befehlen nur ein einziger aufs Fließband, aber von den einfachen mehrere. HyperThreading ist nichts anderes als der Versuch, "auf gut Glück" mehr als einen Befehl auf das Fließband zu packen, und dann zu hoffen, dass er bis ans andere Ende nicht runter geschmissen werden muss, weil bei allen Arbeitsschritten genug Ressourcen verfügbar sind, um alle Befehle auf einmal zu bearbeiten.
Tur mir leid aber das ist irgendwo zwischen ungenau und falsch, SMT zunächst nichts mit SIMD bzw logischer/physikalischer SIMD-breite zu tun. Die Grundidee hinter SMT eine andere: Mehrere Threads teilen sich ein und die selben Rechenwerke. Dadurch kann, sofern ein bestimmter Thread gerade keine Aufgabe für ein bestimmtes Rechenwerk hat, mit einer gewissen Wahrscheinlichkeit, ein anderer Thread dem Rechenwerk eine Aufgabe geben, wodurch sich wiederum die Auslastung der Rechenwerke erhöht. Je mehr Threads ein SMT Prozessor also gleichzeitig ausführen kann, umso größer ist auch diese Wahrscheinlichkeit bzw die darin resultierende Auslastung des Rechenwerks.