Hyper-Threading – Wikipedia

before-content-x4

Technologie d’hyper-threading (court Htt , généralement seulement Hyper-Threading et puis HT Appelé) est une implémentation spéciale du multithreading côté matériel dans les processeurs Intel, qui a également été repris par AMD. Grâce à plusieurs ensembles de registres complets et à un travail fiscal complexe, deux flux de commande et de données parallèles sont attribués en interne en parallèle. Hyper Threading correspond conceptuellement au multithreading simultané (SMT). [d’abord]

after-content-x4

Veuillez noter: le noyau du processeur peut modifier à la fois un seul thread (deuxième thread éteint) et deux threads différents en parallèle, dans ce dernier cas, il nécessite ses propres tables latérales. Ces fils peuvent également provenir d’un seul processus et ainsi compter dans le même contexte de processus.

Schéma hyper file dans les processeurs Intel

Derrière l’hyper-threading se trouve l’idée de mieux utiliser les usines informatiques d’un processeur, en ce sens que deux threads partagent les ressources qui seraient nécessaires pour un noyau complet. Un thread peut utiliser les ressources que l’autre n’occupe pas au moment – en particulier les composants en aluminium et FPU; Des écarts de pipeline qui peuvent être créés, par exemple, si un processus ou un thread doit attendre le RAM par un cache. Ici, le deuxième processus ou thread peut alors être attendu en utilisant un hyper-threading et ainsi exécuté en parallèle. Sur le logiciel du logiciel, un processeur avec hyper-threading se comporte similaire à un système multiprocesseur symétrique (SMP) – La distribution des données entrant dans l’espace ouvert crée deux processeurs logiques (en jargon HT frères et sœurs nommé), qui peut être géré par le système d’exploitation à l’aide de méthodes de multiprocessement classiques. Même si un système d’exploitation compatible SMP peut théoriquement gérer HT sans s’adapter, un système d’exploitation adapté est logique, sinon les performances complètes ne peuvent pas être exploitées et il peut même y avoir une réduction des performances dans des cas individuels. [2]

En particulier, un thread typique ne charge qu’environ 35% des ressources d’exécution dans la microarchitecture nette en rafale. L’hyper-threading peut augmenter cette utilisation: alors qu’une seule application optimisée (non optée) des performances n’est que marginale et à peine perceptible par l’utilisateur, l’utilisateur bénéficie de plusieurs applications ou threads simultanés de l’hyper-threading. Le gain de performance est relativement faible dans la logique du processeur: seule la logique de thread et des taux de registre supplémentaires pour les autres threads doivent être présents, mais aucune fonction arithmétique supplémentaire.

Les processeurs logiques sont équivalents; [d’abord] En raison des unités informatiques à utiliser ensemble, vous pouvez se gêner mutuellement, ce qui signifie que la puissance de calcul totale est nettement inférieure à la double performance individuelle. Si l’une des deux unités d’exécution de threads est éteinte, l’autre peut s’attendre à complètement non perturbé à pleine vitesse. Le système d’exploitation doit donc affecter explicitement les threads informatiques à un noyau qui ne traite pas un autre thread (et désactiver la deuxième unité d’exécution). La puissance de calcul possible d’un processeur

n {displaystyle n}

Les noyaux compatibles HT (avec deux processeurs logiques chacun) sont généralement considérablement inférieurs à celui d’un processeur

2 n {DisplayStyle 2N}

Cœurs “pleins”.

after-content-x4

L’hyper filetage peut également apporter des gains de performances significatifs pour les architectures en ordre telles que le processeur nucléaire. Étant donné qu’une architecture en ordre ne peut pas préférer les opérations dans un fil et que tout est traité dans le fil à tour à tour, il y a souvent des “lacunes” dans le pipeline, qui peuvent ensuite être remplies d’opérations d’un autre fil. Hyper-Threading agit similaire à l’exécution hors service ici, mais uniquement au niveau du fil. En raison de la version dans l’ordre, les threads individuels ne sont encore réalisés que lentement, donc l’hyper-threading n’augmente pas le thread unique, mais les performances multi-thread.

Mais même avec les microarchitectures modernes des «latitudes» (quadruples Scalar) telles que Neherem, l’hyper-lancement peut accélérer jusqu’à 33% en fonctionnement multitâche de 10 à 20% en fonctionnement multitâche.

Dans Hyper-Threading, les ressources du CPU sont divisées en trois catégories:

  • Ressources reproduites (Resources de réponses): Celles-ci sont conservées sur leur propre copie par chaque frère. Dans tous les cas, cela comprend l’ensemble de registre complet, y compris le pointeur de pile et le compteur de programmes.
  • Ressources partitionnées (Ressources distribuées): Celles-ci sont divisées par subdivision entre les frères et sœurs, ce qui signifie qu’ils ne sont disponibles qu’une seule fois, mais des parties individuelles des ressources peuvent être attribuées exactement un frère. Il s’agit notamment des files d’attente d’instructs, du tampon de réorganisation et du tampon de charge / magasin.
  • ressources partagées (Ressources partagées): Toutes les autres ressources sont des ressources partagées et sont utilisées par les deux frères et sœurs, généralement de telle manière qu’ils ne peuvent être utilisés que par l’un des frères et sœurs en même temps. Cela comprend actuellement l’unité arithmétique-logique (aluminium) et l’unité de virgule coulissante (FPU).

Matériel [ Modifier | Modifier le texte source ]]

L’hyper filetage peut être trouvée dans les processeurs Intel dans les nouveaux modèles de la série Pentium 4 et leurs dérivés, à Xeon de la famille Netburst, de nombreux modèles Core-I et certains processeurs nucléaires. Les processeurs multicœurs d’AMD tels que Athlon 64 X2, Opterone et Neuer font également valoir un hyper-threading capable par Flag, bien qu’ils ne soient pas ou sont quelque peu différents (plus près de SMT).
Selon l’exécution, l’hyper-threading n’est pas disponible pour divers processeurs multi-cœurs d’Intel tels que Pentium D ou Core 2 Duo, mais l’indicateur de processeur correspondant est toujours défini.

L’hyperthreading peut généralement être éteint dans le BIOS ou l’UEFI, qui est principalement utilisé dans la zone de travail et le serveur afin que les noyaux CPU restants fournissent également une puissance de calcul complète. Bien que cela réduit généralement la puissance de calcul du système global pour de nombreux threads, il l’augmente dans les constellations de logiciels qui utilisent moins ou autant de threads que le nombre restant de noyau.

Logiciel [ Modifier | Modifier le texte source ]]

L’avantage de vitesse de l’hyper-threading par rapport au filetage de chant classique ne peut être utilisé que si vous utilisez un système d’exploitation compatible SMP et des applications qui sont idéalement optimisées sur l’hyper-threading ou généralement sur le multithreading. Par rapport aux systèmes multi-processeurs classiques, l’hyper-threading est désavantagé dans les performances pures, car les deux threads d’un noyau de processeur sont partagés les ressources disponibles et donc effectués plus lentement qu’un seul thread sur le noyau. La vitesse d’exécution d’un thread sur un processeur logique dépend considérablement de la favorable que son exigence de ressources correspond aux besoins de l’autre fil. Par conséquent, par ex. B. Les threads avec des exigences en temps réel dur sont fermement affectés à un noyau sans deuxième thread, ou l’hyperthreading doit être éteint.
Dans l’introduction de la technologie d’hyperthreading, Intel a annoncé une augmentation des performances par processeur logique supplémentaire jusqu’à 33%. C’est probablement le cas idéal, dans la vie quotidienne, un noyau de processeur composé de deux frères et sœurs HT apporte des valeurs de performance d’environ 120 à 125% par rapport à un simple noyau de processeur à part entière.

L’hyper filetage est considérablement moins cher à réaliser que deux noyaux complets. Si la mise en œuvre est correcte, elle augmente l’efficacité du processeur dans les environnements logiciels, que de nombreux threads effectuent en même temps, et préserve néanmoins la possibilité d’atteindre une performance de thread unique élevée dans quelques threads. Les noyaux de processus peuvent être assez “larges” – il est conseillé d’installer réellement des unités informatiques qui sont souvent nécessaires dans le cas d’une paire de frères HT dans les moyens statistiques en même temps pour réellement installer deux fois dans le noyau du processeur afin de réduire le gardien mutuel. Cela augmente les performances par fil. Si le logiciel crée plus de threads que les noyaux, la puissance de calcul diminue généralement, car le système d’exploitation doit souvent recharger le contexte du thread. Les systèmes d’exploitation modernes essaient à nouveau d’attribuer un thread au même noyau de processeur après une interruption, sur laquelle il a été précédemment effectué. Cela peut avoir un fort effet d’accélération si les zones de mémoire nécessaires sont toujours dans le cache du processeur associé pour effectuer ce fil et n’ont donc pas à être rechargé.

Les systèmes d’exploitation avec la prise en charge de l’hyper-threading incluent les systèmes d’exploitation Windows à partir de Windows XP, MacOS, des versions plus récentes de FreeBSD et d’autres BSD ainsi que Linux. Windows 2000 est compatible avec l’hyper-threading, mais en profite rarement car il ne fait pas la différence entre les processeurs physiques et logiques (pas soi-disant «conscience SMT»). Les performances peuvent même baisser en raison d’effets tels que la battement de cache. Le système d’exploitation Windows n’est recommandé que pour six cœurs avec hyper-threading de Windows 7, car le planificateur de Windows Vista et plus ne peut pas gérer de manière optimale avec douze threads qui peuvent être générés par hyper-threading. [3]

Le compilateur qui peut créer du code convivial hyper-threading est les compilateurs Intel et la collection de compilateurs GNU. Cependant, l’hyper-threading n’apporte qu’un avantage de vitesse pour les applications, dont les calculs peuvent être parallélisés, c’est-à-dire que le calcul d’un fil ne dépend pas du résultat d’une autre.

Que les jeux informatiques bénéficient ou non de l’hyper-threading ou non, dépend principalement du nombre de fils exigeants qui peuvent rendre les jeux en question à la disposition du processeur et combien d’entre eux peuvent traiter en même temps. Alors que les processeurs à double cœur avec les jeux actuels bénéficient très bien de l’hyper-threading, car la plupart des jeux actuels offrent au processeur plus de deux fils exigeants, [4] Si la majorité des jeux ont même légèrement perdu au début de 2011 lorsque le thread hyper est activé sur un processeur à quatre cœurs, car ils n’offrent pas le processeur à peine plus de quatre threads, mais en même temps, l’effort administratif au sein du processeur augmente en raison de l’hyper-threading. [5] Depuis 2009 au plus tard, cependant, il y a également eu des exceptions telles que Anno 1404, qui offrent au processeur plus de quatre fils exigeants, de sorte que les quatre cœurs ont également bénéficié de l’hyper-threading. [6]

  1. un b Deborah T. Marr, Frank Binns, David L. Hill, Glenn Hinton, David A. Koufaty, J. Alan Miller, Michael Upton: Architecture et microarchitecture de la technologie hyper-lancinante. Dans: Intel Technology Journal, vol. 06, numéro 01. Intel, 14 février 2002, Consulté le 3 février 2017 (Anglais).
  2. ComputerBase.de: Intel Hyper-Threading: Windows XP et Windows 2000 en comparaison
  3. Nico Ernst, Golem.de: Test: Core i7 980x – Six grains, mais rarement plus rapide, les freins hyperthreading sous Vista. 11 mars 2010, Récupéré le 24 octobre 2011 .
  4. Volker Rißka: Test: Intel Core i3-2100 / 2120 – Astuce d’initié pour les joueurs. Computerbase, 22. avril 2011, Récupéré le 24 octobre 2011 .
  5. Volker Rißka: Test: Intel «Sandy Bridge». Base d’ordinateur, 3 janvier 2011, Récupéré le 24 octobre 2011 .
  6. Marc Sauter, PC Games Hardware: Lynnfield dans le test: Benchmarks de l’Intel Core i5-750 et Core i7-860 dans Anno 1404. 31 juillet 2009, consulté le 5 novembre 2009 : “Basé sur le i7-920 avec un filetage multiple simultané activé ou désactivé, nous vérifions qu’Anno 1404 est le premier jeu qui se déroule plus vite grâce à SMT – plus 8%.”
after-content-x4