Cela vous intéressera aussi

Les threads sont de petites tâches que l'ordinateurordinateur doit effectuer simultanément, c'est-à-dire des opérations qu'un ou plusieurs programmes ouverts doivent éxécuter et qui se disputent l'attention du processeur. Celui ci administre ces demandes à l'aide d'une ressource appelée ordonnancement, où il réalise certaines opérations du programme 1, puis du programme 2, et ainsi de suite, en assistant à toutes les tâches à la fois.


Comme le processeurprocesseur est capable de procéder des milliards de calculs par seconde, cet ordonnancement est très rapide. Tous les programmes représentent ainsi une unité de traitement indépendante.


Cette aptitude du processeur à gérer plusieurs threads en même temps est appelée multithreading. C'est grâce à cette technologie, présente dans la plupart des processeurs modernes, que nous pouvons exécuter plusieurs applicationsapplications à la fois, en ne nécessitant qu'un seul système d'exploitationsystème d'exploitation multitâche, comme Windows, LinuxLinux ou UNIXUNIX.

Qu'est ce que l’hyperthreading ?


Intel a lancé son premier modèle doté de la technologie hyper-threading en 2002 dans le Xeon MP Foster, un processeur axé sur la gamme de serveursserveurs, puis l'incorporant dans le Pentium 4 et tous les modèles qui sont venus par la suite.

Bien que le système d'exploitation semble voir deux fois plus de cœurs de traitement présents, ce n'est pas le cas en pratique. En réalité, chaque noyau physiquephysique possède deux unités logiques indépendantes, chacune ayant son propre contrôleur d'interruption programmable (PIC) et son propre ensemble de registres.


Ces modifications architecturales ont permis un gain de productivité dans certaines tâches spécifiques. L'hyperthreading ne remplace pas les modèles multicœurs, mais les complète, leur permettant de mieux exploiter les ressources disponibles.


Les processeurs double cœur peuvent exécuter plusieurs threads parallèles dans un seul programme. En revanche, l'hyper-threading ne profite qu'à des applications avec des instructions segmentées utilisant un pipelinepipeline.