Architecture du Pentium 4 L'Hyper-threading Dernière innovation de l'architecture NetBurst, la technologie Hyper-Threading permet l'exécution simultanée de plusieurs threads avec un seul processeur physique. Pour mieux comprendre en quoi elle consiste, expliquons d'abord brièvement
ce qu'est un thread, et quel est son intérêt. L'intérêt du thread réside
dans la séparation des tâches, et un environnement multi-tâche est ainsi
capable de répartir les threads courants sur les ressources présentes.
Ce système prend tout son sens sur une machine à plusieurs processeurs
: l'OS peut ainsi affecter un ou plusieurs threads à chaque processeur,
parallélisant ainsi leur exécution. L'Hyper-Threading consiste à permettre l'exécution simultanée de deux threads sur un seul processeur. Pour cela, le Pentium 4 peut gérer deux contextes simultanés. Ces deux contextes contiennent alors chacun une représentation différente des mêmes registres. Le système d'exploitation y voit alors deux processeurs, et se comporte comme s'il en était ainsi. On ne parle alors plus de système SMP (Symmetric Multi Processing) mais de SMT (Simultaneous Multi Threading) et de processeur logique (le Prestonia possède deux processeurs logiques).
On peut se demander alors à quoi cela sert de permettre l'exécution simultanée de deux threads s'il n'y a physiquement qu'un seul processeur. En fait l'idée est simple : mixer ainsi deux flux d'instructions arrivant au processeur, permet de favoriser l'utilisation simultanée de toutes les ressources du processeur telles que les unités d'exécution, et permet de réduire certaines causes de mauvais remplissage du pipeline (les dépendances par exemple).
Selon Intel, un code classique n'utilise en moyenne que 35% des ressources
du Pentium 4, et l'utilisation de l'Hyper-Threading permettrait un gain
allant jusqu'à 30%. Pour vérifier cela, il vous faudra la version Prestonia
(Xeon) du Pentium 4, car elle est officiellement la seule version à supporter
l'Hyper-Threading.
Ainsi d'un point de vue matériel, toutes les versions de Pentium 4 supportent l'Hyper-Threading, mais un seul processeur logique est actif (ce qui revient à n'utiliser qu'un seul des deux contextes).
|