
Le "Simultaneous Multi-Threading" (ou SMT) pour Multi-Threading simultané, est une forme plus avancée, plus complexe, mais aussi souvent plus efficace de multi-threading que le CMT et le FMT. C'est l'option choisie par Intel pour le Pentium 4. Il s'agit cette fois d'exécuter plusieurs threads réellement simultanément, i.e. pendant le même cycle, ce qui nécessite bien entendu une architecture super-scalaire.

On remarque sur ce schéma que le rendement d'un CPU SMT est supérieur à celui d'un CPU CMT/FMT, et largement supérieur à celui d'une architecture super-scalaire basique. Cependant, ce schéma est théorique et néglige certains facteurs. En effet, dans la pratique, les threads devront tous deux avoir recours au cache pour les instructions et les données. Or, si on ne double pas la taille du cache, on se retrouve avec deux fois moins de cache disponible par thread, lesquels deviennent donc concurrents, ce qui peut parfois mener à des effacements de données ou instructions relatives à l'autre thread. Cette concurrence ne manque pas de causer des défauts de cache, et donc une baisse de performances. Pour prendre l'exemple des Pentium 4C HT (ou du Pentium 4B 3.06 GHz) qui étaient les premiers processeurs Intel dotés de SMT, on mesure en moyenne un gain de 30% par rapport aux Pentium 4 dépourvus d'HyperThreading, ce qui représente bien moins que l'augmentation théorique. La taille du cache n'est certainement pas étrangère à ce problème. Le core "Prescott" corrige partiellement ce défaut en doublant la taille des caches L2 et L1 instructions les portant respectivement à 1 Mo et 16 Ko, contre 512 Ko et 8 Ko pour le "Northwood". En contrepartie, les latences des caches sont pratiquement doublées aussi, mais c'est un autre problème.
Officiellement, Intel n'a pas augmenté la taille du Trace-Cache qui fait, pour rappel, office de cache L1 instructions, sauf qu'il stocke lesdites instructions sous forme de micro opérations, notées µops. Intel indique que le nombre de µops n'a pas augmenté, mais on observe une augmentation du nombre de transistors du Trace-Cache. Ceci dit, cette augmentation pourrait être imputable à une augmentation de la taille des µops, elle-même due au support (activé ou non) de l'EMT64 par exemple.
Le SMT présente un inconvénient supplémentaire, à savoir qu'il implique de multiplier par x le nombre de registres (GPR et renaming registers) où x représente le nombre de threads que le processeur peut exécuter simultanément. C'est probablement la raison pour laquelle aucun processeur AMD n'est doté de SMT. En effet, il s'agit d'une technique relativement récente qui n'aurait pu être intégrée au noyau du K7 (Athlon), dont le K8 (Athlon 64/FX & Opteron) hérite presque entièrement, à quelques détails près. Au contraire, l'architecture NetBurst (celle du Pentium 4) est plus récente et a donc pu être conçue en vue de mettre en œuvre ce que nous appelons maintenant l'HyperThreading.
Bien qu'évolué et potentiellement très efficace, le SMT pose de nombreuses contraintes qui peuvent parfois aller jusqu'à ralentir l'exécution globale du ou des programmes, comme on a parfois pu l'observer sur le Pentium 4 ou son pendant du marché serveurs/stations de travail, le Xeon.