Simultaneous multithreading

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le simultaneous multithreading (SMT) est une technique informatique datant des années 1960. Il s'agit d'une forme de multithreading, une technique qui consiste, comme le symmetric multiprocessing (SMP), à augmenter le TLP (thread level parallelism), c’est-à-dire le parallélisme des threads.

Description[modifier | modifier le code]

Le SMT est le partage d'un cœur de processeur superscalaire (les pipelines, les unités de calcul et les caches) entre plusieurs threads. Les processeurs non SMT passent alternativement d'un thread à l'autre pour l'exécution des instructions, alors que des processeurs SMT peuvent allouer des unités de calcul à des threads différents simultanément. Le but est d'améliorer l'utilisation des ressources.

Si deux threads peuvent se partager les ressources, on parle de SMT à deux voies (comme pour l'Hyperthreading d'Intel), de SMT à 4 voies pour 4 threads (comme pour le DEC Alpha EV8).

Le POWER5 d'IBM intègre un SMT deux voies complexe, puisqu'il peut attribuer des priorités aux threads et activer/désactiver le SMT de manière dynamique pour les cas où la méthode n'augmente pas les performances. Le processeur multi-cœur POWER7 intègre un SMT quatre voies permettant de désactiver un ou deux threads inactifs sur chaque cœur afin d'augmenter les performances des threads actifs[1].

Références[modifier | modifier le code]

  1. Le noyau Linux 2.6.36 est disponible - Optimisations pour POWER7, linuxfr.org le 21 octobre 2010