jo trotzdem is seine frage aktuell: so wie ich es verstanden habe, wurde HT eingeführt um die pipelines besser auslasten zu können. ein P4 z.b. hatte 7 integer pipelines (ein 486 hat nur eine.. sind "quasi schon 7 cpus" in einer!) nur der p4 musste sich selbst die aufgaben auf diese 7 pipelines aufteilen, damit diese parallell genutzt werden können. das klappt nur sehr selten (alle 7 zu nutzen), irgendwann haben die intel entwickler sich gedacht, lass uns HT machen, eine virtuelle cpu mit 3 pipelines. (die dazugehörige "echte" hat dann nurnoch 4)
Das ist mir nicht ganz schlüssig, dass der echte Kern dadurch Ausführungseinheiten verliert. Intel hat SMT immer mit dem "Tetris-Prinzip" dargestellt: der virtuelle Kern füllt einfach Lücken aus, in denen einige Pipes nicht voll ausgelastet sind. Dem realen Kern gehen dadurch keine Pipes verloren. Es kann vielleicht sein dass er einen zusätzlichen Takt auf eine Pipe warten muss, weil der virtuelle Kern kurz vorher dort was eingefüllt hatte, was länger als einen Taktzyklus braucht... aber auch das tritt nur auf, wenn der virtuelle Kern tatsächlich Arbeit hat, was also unterm Strich einen Performancegewinn darstellt.
Allerdings kann es trotzdem sein, dass aktives SMT eine CPU in single-threaded Applikationen verlangsamt, da durch das sortieren der Ausführungseinheiten ein Verwaltungsoverhead entsteht. Und zusätzlich kann es sein, dass die Applikation selbst nicht gut funktioniert, wenn ihr zuviele Cores zur Verfügung stehen...
Siehe ArmA 2: läuft schnell mit 4 Kernen, jeder zusätzliche Kern (real oder virtuell) verlangsamt das Spiel, und wenn mehr als 8 Kerne existieren startet das Spiel erst gar nicht. Keine Ahnung ob sie's mittlerweile gepatcht haben, aber der Effekt ist zum Beispiel ganz massiv beim testen des 6core, 12thread i7 980X aufgefallen.
Ein weiteres Beispiel dafür, dass die Vorteile von SMT stark von der Anzahl Kerne abhängt, die eine Applikation erwartet: bei den 4core, 8thread Lynnfields waren die Zuwächse in Spielen oft nur minimal bis negativ, während gleichgetaktete 2core, 4thread Clarkdales durchweg große Performancegewinne vorzeigen konnten. Und das, obwohl sie als Dualcore eigentlich deutlich weniger brachliegende Pipes wie ein Quadcore hat, die sich SMT unter den Nagel reißen kann... schließlich ist nicht nur die Zahl der realen Kerne (und damit die Zahl der Pipes) halbiert, sondern diese zwei realen Kerne müssen auch noch dieselbe Arbeit erledigen, die beim Lynnfield auf vier verteilt werden konnten.