Présentation

Article

1 - INTRODUCTION AU MULTITHREADING

2 - DIFFÉRENTES APPROCHES MULTITHREADS

3 - PROCESSEURS MULTICŒURS

4 - REMARQUES POUR CONCLURE

5 - ANNEXE : LES RÉSEAUX D’INTERCONNEXION

6 - ACRONYMES

Article de référence | Réf : H1090 v1

Introduction au multithreading
Processeurs multithreads et multicœurs

Auteur(s) : Daniel ETIEMBLE

Date de publication : 10 mai 2018

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉ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’article

ABSTRACT

Multithreaded and multi-core CPUs

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.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

KEYWORDS

task parallelism   |   multithreading   |   multi-core processor   |   cache hierarchy   |   interconnection network

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1090


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 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

ABONNEZ-VOUS

Lecture en cours
Présentation

1. Introduction au multithreading

1.1 Processus et thread

Avant d’aborder la technique du multithreading et ses implantations matérielles, il est nécessaire de définir les notions de processus et de thread. La terminologie française pour thread, qui est processus léger ou fil d’exécution, est rarement utilisée.

Un processus fournit les ressources nécessaires pour exécuter un programme. Il dispose d’un espace d’adressage virtuel, du code exécutable, des accès aux objets système, un contexte de sécurité, un identificateur de processus unique, des variables d’environnement, une classe de priorité, des tailles minimales et maximales de travail, et au moins un thread d’exécution. Chaque processus est démarré avec un seul thread, souvent appelé le thread principal, mais peut créer des threads supplémentaires à partir de l’un de ses threads.

Un thread est une entité dans un processus qui peut être ordonnancée pour l’exécution. Tous les threads d’un processus partagent son espace d’adressage virtuel et les ressources système. En outre, chaque thread tient à jour les gestionnaires d’exception, une priorité de planification, une pile locale, un identifiant de thread unique et un ensemble de structures que l’environnement d’exécution utilisera pour sauvegarder le contexte du thread jusqu’à son utilisation. Le contexte du thread inclut les registres processeur qui lui sont propres, un bloc d’environnement de thread et une pile utilisateur dans l’espace d’adressage du processus du thread, comme le montre la figure 1 avec un processus à un seul thread (partie gauche) et un processus à plusieurs threads (partie droite).

HAUT DE PAGE

1.2 Utilisation du multithreading

Un ancêtre du multithreading est la multiprogrammation qui n’implique pas le support d’une architecture parallèle. La multiprogrammation a été utilisée dès les années 1960, avec le support de la mémoire virtuelle, pour tolérer la latence vers les mémoires secondaires (disques, bandes…).

Par exemple, sur un défaut de page, le système d’exploitation réalise une commutation de contexte pour lancer un autre...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 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

ABONNEZ-VOUS

Lecture en cours
Introduction au multithreading
Sommaire
Sommaire

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 est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 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

ABONNEZ-VOUS