Présentation
En anglaisRÉSUMÉ
Les processeurs multithreads et les processeurs multicœurs permettent l’utilisation des trois types de parallélisme (instructions, données et threads). Après un rappel des notions de processus et de thread, cet article aborde les processeurs multithreads, qui dotent un processeur physique de plusieurs contextes d’exécution se partageant les unités fonctionnelles, les caches et la mémoire. A un processeur physique correspondent plusieurs processeurs logiques exécutant chacun un thread. Les trois types de multithreading sont présentés: le multithread gros grain, le multithread grain fin et le multithread simultané.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
Multi-threaded processors and multi-core processors use the three types of parallelism (instructions, data and threads). After introducing the notions of process and thread, we present multi-threaded processors, which provide a physical processor with several execution contexts that share the functional units, caches and memory. A physical processor corresponds to several logical processors, each one executing one thread. The three types of multithreading are presented: coarse multithreading, fine grain multithreading and simultaneous multithreading.
Auteur(s)
-
Daniel ETIEMBLE : Ingénieur de l’INSA de Lyon - Professeur émérite à l’université Paris Sud
INTRODUCTION
Du parallélisme d’instructions au parallélisme de threads
Jusqu’au début des années 2000, l’augmentation des performances des monoprocesseurs a résulté de l’augmentation des fréquences d’horloge d’une part, de l’utilisation du parallélisme d’instructions d’autre part. L’article [H 1 058] décrit en détail cette évolution. Le « mur de la chaleur » n’a pas permis l’augmentation des fréquences d’horloge au-delà de 4 GHz. L’utilisation du parallélisme d’instructions dans les processeurs superscalaires à exécution des instructions dans l’ordre [H 1 010] et non ordonnée [H 1 011] a également atteint ses limites, même si l’utilisation du parallélisme de données avec les instructions SIMD [H 1 200] a permis d’augmenter les performances. Pour continuer à améliorer ces dernières, l’utilisation du parallélisme de threads dans les processeurs multithreads et multicœurs a permis de combiner les trois types de parallélisme : parallélisme d’instructions, parallélisme de données via les instructions SIMD et parallélisme de threads. Ce dernier type implique l’utilisation de la programmation parallèle. Cet article introduit les supports matériels pour le multithreading (processeurs multithreads) et les multicœurs. La plupart des processeurs d’usage général utilisés en 2017 (PC et serveurs) sont des multicœurs dont les cœurs sont multithreads.
MOTS-CLÉS
parallélisme de tâches multithreading processeur multicoeur hiérarchie de caches réseau d'interconnexion
KEYWORDS
task parallelism | multithreading | multi-core processor | cache hierarchy | interconnection network
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
3. Processeurs multicœurs
3.1 Multiprocesseurs dans une seule puce
Un processeur multicœur est fondamentalement l’implémentation sur une seule puce de circuit intégré d’un multiprocesseur symétrique (SMP), ou plus généralement une architecture parallèle avec plusieurs processeurs. La figure 9 illustre la différence entre un processeur multithread d’ordre 2, un biprocesseur et un bicœur.
Le premier processeur à 2 cœurs est le Power4 d’IBM (2001) dont le schéma simplifié est présenté en figure 10. Les deux cœurs partagent le cache L2. L’aiguillage distribué permet la connexion avec le cache L3 externe et la liaison permettant de connecter 4 processeurs dans un module multicircuits (MCM).
Les premiers bicœurs x86 sont l’AMD Athlon64 X2 (2005) et l’Intel Core2 Duo (2006). Dès 2005, des processeurs à 8 cœurs ont été développés, comme l’UltraSparc Niagara T1.
La tendance est à l’augmentation du nombre de cœurs. Le tableau 2 donne une liste non exhaustive du nombre de cœurs pour un certain nombre de processeurs d’usage général et serveurs avec leur année d’introduction (jusqu’en 2017). Ne sont pas pris en compte les many-cores, avec un beaucoup plus grand nombre de cœurs et qui relèvent d’un autre article.
HAUT DE PAGE3.2 Des monoprocesseurs aux multicœurs
Le virage vers les multicœurs commencé au début des années 2000 résulte de deux phénomènes :
-
les limites du parallélisme d’instructions pouvant être exploitées dans les versions les plus évoluées des monoprocesseurs (voir [H 1 011] sur les processeurs superscalaires « flot de données ») ;
-
le « mur de la chaleur » (voir ...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Processeurs multicœurs
BIBLIOGRAPHIE
-
(1) - BORKENHAGEN (A.) et al - « A Multithreaded Power PC Processor for Commercial Servers, » IBM J. - Research and Development, vol. 44, no. 6, Nov. 2000, pp. 885-898.
-
(2) - THORNTON (J.) - Design of a Computer – The Control Data 6600. - http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/cdc/cyber/books/DesignOfAComputer_CDC6600.pdf
-
(3) - SNELLING (D.F.), SMITH (B.J.) - « MIMD Processing and the Denelcor HEP », Workshop on Using Multiprocessors in Meteorological Models, 3-6 December 1984, - https://www.ecmwf.int/sites/default/files/elibrary/1984/12351-mimd-processing-and-denelcor-hep.pdf
-
(4) - ALVERSON (G.) et al - « The Tera Computer System, » - Proc. 1990 ACM Int’l Conf. Supercomputing (Supercomputing 90), IEEE CS Press, pp. 1-6 (1990).
-
(5) - JOHNSON (K.), RATHBONE (M.) - « Sun’s Niagara Processor, A Multithread & Multi-core CPU », - http://www.cs.nyu.edu/~lerner/spring10/projects/multicore-niagara.pdf
- ...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive