Vous êtes sur la page 1sur 20

République Algérienne Démocratique et Populaire

Ministère de l’enseignement Supérieur et de la Recherche Scientifique


Université de Batna2 Mostapha Benbou laid

Faculté des Mathématiques et d’Informatique

Département d’Informatique

Exposé
Option : RSD

Thème

Architecture multi-cœurs

Présenté par :

Noms et Prénoms des étudiants

Necer sara

Groupe :1
Promotion : 2020/2021

Plan
1
1_ Introduction
2_ Origines

3_ Architecture multi-cœurs

4_ avantages

5_Désavantages

6_Effets logiciels

7_Exemple de Architecture multi-cœurs

8_Principe du multi- cœurs

9 _Architecture du premier processeur multi cœurs

10_Les limites de la technologie

11_ Inconvénient d'un processeur multi- cœurs

12_ Multi-cœurs (CMP)

13_ Conclusion

14_ Références

2
Introduction :
INTRODUCTION Cet article examine les caractéristiques principales des processeurs super
scalaires multi-pipelines, souvent appelés super scalaires dans l'ordre. Un processeur super
scalaire utilise le parallélisme d'instructions existant dans un programme séquentiel pour
démarrer à chaque cycle d'horloge l'exécution de plusieurs instructions. C'est le matériel qui
détermine les instructions indépendantes qui peuvent démarrer simultanément dans différents
pipelines parce que les opérateurs nécessaires sont disponibles et les opérandes sont prêts.
L'utilisation de plusieurs pipelines d'exécution existe déjà dans les processeurs scalaires ne
pouvant démarrer qu'une seule instruction par cycle à cause des différences de temps
d'exécution entre la majorité des instructions sur des données entières et celles des
instructions flottantes. Le problème du contrôle des dépendances de données est donc déjà
traité dans les processeurs scalaires et ce traitement est rappelé. Avec des processeurs super
scalaires, les problèmes matériels sont accentués sur de nombreux points : banc de registres,
accès cache, prédiction de branchement, acquisition des instructions. Dans le modèle multi-
pipeline, le matériel rassemble les instructions par groupe de 2 ou 4 instructions, et toutes les
instructions d'un groupe doivent avoir été lancées avant que les instructions d'un groupe
suivant ne le soient. Des exemples des techniques utilisées sont donnés avec les Pentium et
Atome d'Intel, les 21064 et 21164 de Digital, le Cortex A8 d'ARM et le cœur Power 6 d'IBM.
Des techniques utilisées pour dépasser les limitations d'un strict démarrage groupe par groupe
sont détaillées. D'un point de vue performance brute, les super scalaires « dans l'ordre » sont
moins performants que les super scalaires à « flot de données restreint » souvent appelés super
scalaires « non ordonnés » qui recherchent les instructions exécutables dans une fenêtre
beaucoup plus grande qu'un groupe de 2 ou 4 instructions. Il est possible de comparer, pour
un même constructeur et une même technologie CMOS, les deux approches du point de vue
temps de calcul, surface de puce et puissance dissipée. La comparaison est présentée pour
deux processeurs MIPS, deux cœurs IBM et des cœurs ARM. À fréquence d'horloge
équivalente, la version « non ordonnée » est toujours plus performante, mais la version « dans
l'ordre » consomme moins, utilise moins de surface de puce et a généralement la meilleure
performance par watt ou par GHz. Les super scalaires « dans l'ordre » sont donc une bonne
solution pour les applications embarquées nécessitant plus que les performances des
processeurs scalaires, mais avec une surface moindre et une consommation énergétique
moindre par rapport à la solution la plus performante.

3
Origines  :
Le terme « multi-cœur » est employé pour décrire un processeur composé d’au moins deux
cœurs (ou unités de calcul) gravés au sein de la même puce.
On doit à IBM le premier processeur multi-cœur à avoir été commercialisé : il s'agit du POWER4,
en 2001. En 2003, Sun lance l’Ultra SPARC IV composé de 2 cœurs Ultra SPARC III. En
2004, HP lance le PA-8800 composé de 2 cœurs PA-8700.
Les premiers exemplaires de processeurs multi-cœurs d’Intel et d’AMD sont arrivés sur le
marché des ordinateurs personnels en 20051. Il s’agissait de cœurs homogènes, c’est-à-dire
identiques. Le cas de cœurs différents et spécialisés dans des domaines bien précis (audio,
affichage, calcul pur, etc) a été exploité pour le processeur Cell conçu par IBM, Sony et Toshiba.
Ce type d’architecture permet d’augmenter la puissance de calcul sans augmenter la fréquence
d’horloge, et donc de réduire la quantité de chaleur dissipée par effet Joule (comme pour les
systèmes multiprocesseur).
Les premiers puces double cœurs basés sur l’architecture x86 sont apparues en 2005 sur le
marché des serveurs (Opterons d’AMD). Elles sont apparues parce qu’en pratique la course
au GHz devenait onéreuse et compliquée. La génération de processeurs de cette époque ne
possédait qu’un seul cœur et avait une consommation qui pouvait dépasser largement les
100 W (notamment sur les processeurs Intel Pentium 4). Elle devait donc faire face à de graves
problèmes de refroidissement des circuits2. La solution qui a semblé la plus évidente a été de
privilégier non plus la fréquence, mais d'accroître la puissance grâce à une architecture parallèle,
de façon à pouvoir augmenter le nombre d’opérations exécutées simultanément en un cycle
d’horloge.

4
L’Intel Core 2 Duo E6600 est un processeur double cœur Un processeur quad-core AMD Opteron.

Architecture multi-cœurs
Définition
Un processeur multi-core est une simple calcul composant avec deux ou plus indépendante
des unités de traitement dits noyaux, qui lire et exécuter des instructions de programme . Les
instructions sont ordinaires instructions de la CPU ( par exemple ajouter, déplacer des données,
et la branche) mais le seul processeur peut exécuter plusieurs instructions sur des noyaux
séparés en même temps, l' augmentation de la vitesse globale des programmes se prêtant
à calcul parallèle . Les fabricants intègrent typiquement des noyaux sur un seul circuit
intégré filière (connue sous le nom d' un multiprocesseur à puce ou CMP) ou sur plusieurs
matrices dans un seul boîtier de puce . Les microprocesseurs actuellement utilisés dans presque
tous les ordinateurs personnels sont multi-core.
Un processeur à plusieurs noyaux implémente multitraitement dans un seul paquet physique. Les
concepteurs peuvent noyaux de couple dans un dispositif multi-coeur serré ou lâche. Par
exemple, les noyaux peuvent ou peuvent ne pas partager les caches , et ils peuvent mettre en
œuvre le passage de messages ou de mémoire partagée méthodes de communication inter-
core. Common topologies de réseau d'interconnexion comprennent des noyaux bus , anneau , à
deux dimensions mesh , et la barre transversale . Les systèmes multi-coeurs homogènes
comprennent des noyaux identiques seulement; hétérogènes systèmes multi-core ont des
noyaux qui ne sont pas identiques (par exemple big.LITTLE ont des noyaux hétérogènes qui
partagent le même jeu d'instructions, tandis que AMD accélérée des unités de traitement ont des
noyaux qui ne partagent même pas le même jeu d'instructions). Tout comme avec les systèmes
à processeur unique, des noyaux dans les systèmes multi-coeurs peuvent mettre en œuvre des
architectures telles que VLIW , superscalaire , vecteur , ou multithread .
Les processeurs multi-core sont largement utilisés dans de nombreux domaines d'application, y
compris à usage général , embarqué , réseau , traitement numérique du signal (DSP)
et graphiques (GPU).
L'amélioration de la performance acquise par l'utilisation d'un processeur multi-core dépend
beaucoup des logiciels algorithmes utilisés et leur mise en œuvre. En particulier, les gains

5
possibles sont limités par la fraction du logiciel qui peut exécuter en parallèle simultanément sur
plusieurs noyaux; cet effet est décrit par la loi d'Amdahl . Dans le meilleur des cas, ce qu'on
appelle honteusement parallèles les problèmes peuvent se rendre compte des facteurs de
SpeedUp près du nombre de cœurs, ou encore plus si le problème est divisé assez pour se loger
dans le cache de chaque noyau (s), ce qui évite l' utilisation de la mémoire principale du système
beaucoup plus lent . La plupart des applications, ne sont toutefois pas accéléré tant à moins que
les programmeurs investissent un montant prohibitif des efforts pour réusinage le problème. La
parallélisation du logiciel est un sujet important et continu de la recherche

● Un processeur composé de plusieurs unités de calcul sur une même puce.


● Permet d'augmenter la puissance de calcul sans augmenter la fréquence d'horloge.
● Et donc réduire la dissipation thermique.
● Et augmenter la densité : les cœurs sont sur le même support, la connectique qui relie le
processeur à la carte mère ne change pas par rapport à un monoprocesseur
• Un système d’exploitation exécute une grande
Variété de travail :
– Batch system – jobs
– Time-shared systems – user programs or tasks
• Dans les livres, on utilise souvent de manière
interchangeable les termes job (travail) et
procès (processus)
• Un processus c’est concrètement :
– Program conter (compteur de programme)
– Stack (une pile)
– Data section (une zone de donnée)

UNIX, la mémoire lorsqu’on tourne plusieurs processus

Schéma d'un processeur double cœur Un AMD Athlon X2 6400+ de processeur


double cœur
Générique avec des caches de niveau 1 CPU local
et d'un partage, sur puce mémoire cache de niveau 2.

6
Un Intel Core 2 Duo E6750 processeur double cœur

7
8
9
Multi-cœurs (CMP)
• De nombreux niveaux de parallélisme
→ ILP
→ SIMD
→ SMT
→CPUs Multiple
• Hiérarchie mémoire complexe
→Mémoires caches partagées
→Mémoire partagées cohérentes
• Unités de calcul homogènes ou hétérogènes
→Cœurs de différents types
→Accélérateurs matériels
• De nombreuses variantes architecturales
→ Pas de consensus Multi-cœurs
• Nombreux goulots d’étranglement
t → Limitation de la bande passante mémoire
→ Latence de l’accès mémoire
• Instabilités des performances
→ Nombreuses interactions entre composants
→ Faux partages Exemples de multi
Avantages

10
La proximité de plusieurs cœurs de processeurs sur la même matrice permet la cohérence
cache des circuits de fonctionner à une fréquence d'horloge beaucoup plus élevé que ce qui est
possible si les signaux doivent se déplacer hors puce. La combinaison de processeurs
équivalents sur une seule puce améliore considérablement les performances de scoop cache :
(alternative Espionne Bus opérations). Plus simplement, cela signifie que les signaux entre les
différents processeurs parcourent des distances plus courtes, et par conséquent ces signaux
se dégradent moins. Ces signaux de qualité supérieure permettent davantage de données à
envoyer dans une période de temps donnée, car les signaux individuels peuvent être plus courts
et ne doivent pas être répétées aussi souvent.
En supposant que la filière peut forme physique dans le paquet, des dessins CPU multi-cœur
nécessitent beaucoup moins carte de circuit imprimé (PCB) d’espace que faire des dessins SMP
multi-puces. En outre, un processeur dual-coré utilise un peu moins d’énergie que les deux
processeurs simple cœur couplés, principalement en raison de la puissance nécessaire pour
entraîner une diminution des signaux externes à la puce. En outre, les noyaux partagent certains
circuits, comme le cache L2 et l'interface avec le bus face avant (FSB). En termes de
technologies concurrentes pour la zone de la filière de silicium disponible, la conception multi-
coré peut utiliser des modèles de bibliothèque de base de CPU éprouvées et produire un produit
à moindre risque d'erreur de conception que l’élaboration d' une nouvelle conception plus large-
coré. En outre, l’ajout de plus cache souffre de rendements décroissants.
Puces multi-coré permettent également une meilleure performance à faible énergie. Cela peut
être un facteur important dans les appareils mobiles qui fonctionnent sur piles. Étant donné que
chaque noyau dans une CPU multi-cœur est généralement plus économe en énergie, la puce
devient plus efficace que d'avoir un seul gros noyau monolithique. Cela permet de meilleures
performances avec moins d'énergie. Un défi dans ce domaine, cependant, est le coût
supplémentaire de l'écriture de code parallèle.

Désavantages
Maximiser l'utilisation des ressources informatiques fournies par les processeurs multi-coré
nécessite des ajustements à la fois au système d'exploitation (OS) de support et de logiciels
d'application existants. En outre, la capacité des processeurs multi-cœurs pour augmenter les
performances de l’application dépend de l'utilisation de plusieurs threads dans les applications.
L’intégration d'une puce multi-coré peut réduire les rendements de production de puces. Ils sont
aussi plus difficiles à gérer la chaleur que les modèles single-coré à faible densité. Intel a
partiellement contré ce premier problème en créant ses modèles quad-coré en combinant deux
les dual-coré sur une seule puce avec un cache unifié, donc tout deux dual-coré de travail des
matrices peuvent être utilisées, par opposition à la production de quatre cœurs sur un seule puce
et nécessitant tous les quatre à travailler pour produire un CPU quad-coré. D'un point de vue
architectural, en fin de compte, conceptions CPU simples peuvent faire une meilleure utilisation
de la surface de silicium que des noyaux de multitraitement, donc un engagement de
développement à cette architecture peut porter le risque d'obsolescence. Enfin, la puissance de
traitement brute n'est pas la seule contrainte sur les performances du système. Deux cœurs de
traitement partageant le même bus système et la bande passante mémoire limite les
performances du monde réel avantage. Dans un rapport de 2009, le Dr Ni juin a montré que si un
seul noyau est proche d'être la mémoire à bande passante limitée, puis aller dual-coré pourrait
donner 30% à 70% d' amélioration; si la bande passante mémoire n'est pas un problème, alors
une amélioration de 90% peut être prévu; Cependant, la loi d'Am Dahl rend cette affirmation
douteuse. Il serait possible pour une application qui utilise deux processeurs pour finir par courir
plus vite sur un single-coré une si la communication entre les unités centrales était le facteur
limitant, ce qui compterait comme plus de 100% d' amélioration.

11
Effets logiciels :
Une ancienne version d'une application anti-virus peut créer un nouveau fil à un processus de
balayage, tandis que son interface graphique fil attend des commandes de l'utilisateur (par
exemple , annuler le balayage). Dans de tels cas, une architecture multi-coré est de peu d'
avantages pour l'application elle - même en raison du seul fil qui fait tout le levage de charges
lourdes et l'incapacité d'équilibrer le travail également sur plusieurs cœurs. Programmation du
code multithread vraiment nécessite souvent une coordination complexe de fils et peut
facilement introduire subtile et difficile à trouver des bogues en raison de l'imbrication de
traitement des données partagées entre les threads (voir fil de sécurité ). Par conséquent, un tel
code est beaucoup plus difficile à déboguer que le code seul thread quand il se casse. Il y a eu
un manque perçu de motivation pour l’écriture d' applications taraudés niveau de
consommation en raison de la rareté relative de la demande au niveau des consommateurs
pour une utilisation maximale du matériel informatique. Bien que les applications threads
encourent la peine peu de performances supplémentaires sur les machines monoprocesseur, la
charge supplémentaire du développement a été difficile à justifier en raison de la
prépondérance des machines monoprocesseur. En outre, les tâches de série comme le
décodage de codage entropique algorithmes utilisés dans les codecs vidéo sont impossibles à
paralléliser parce que chaque résultat généré est utilisé pour aider à créer le prochain résultat
de l'algorithme de décodage d'entropie.
Compte tenu de l'importance croissante accordée à la conception de puces à plusieurs noyaux,
qui découle des graves problèmes thermiques et de consommation d'énergie posés par toute
augmentation significative de la vitesse d'horloge du processeur, la mesure dans laquelle le
logiciel peut être multithread pour tirer parti de ces nouvelles puces est susceptible d'être la
contrainte la plus importante sur les performances de l'ordinateur à l'avenir. Si les développeurs
sont incapables de concevoir des logiciels pour exploiter pleinement les ressources fournies par
plusieurs noyaux, ils finiront par atteindre un plafond de performance insurmontable.
Le marché des télécommunications a été l' un des premiers qui avait besoin d' une nouvelle
conception de traitement parallèle des paquets détapât parce qu'il y avait une adoption très
rapide de ces processeurs multicoques pour le chemin de données et le plan de contrôle. Ces
MPU vont remplacer les processeurs de réseau traditionnels qui étaient basés sur
propriétaire microcode ou picocode .
La programmation parallèle techniques peuvent bénéficier de plusieurs noyaux directement.
Certains existants des modèles de programmation parallèles tels que Cilk
Plus , OpenMP , OpenHMPP , FastFlow , Skandium, MPI et Erlang peuvent être utilisés sur des
plates - formes multi-core. Intel a introduit une nouvelle abstraction pour le parallélisme C ++
appelé TBB . D' autres efforts de recherche comprennent le système Sieve Codeplay ,
Cray Chapelle , Sun Forteresse et IBM X10 .
Traitement multicœur a également affecté la capacité de développement de logiciels de calcul
moderne. Les développeurs de programmation dans les langues les plus récents pourraient
trouver que leurs langues modernes ne prennent pas en charge la fonctionnalité multi-core. Cela
nécessite alors l'utilisation de bibliothèques numériques pour accéder au code écrit dans des
langues comme C et Fortran , qui effectuent des calculs mathématiques plus rapidement que les
langues nouvelles comme C # . Le MKL et AMD Intel ACML sont écrits dans ces langues
autochtones et bénéficier d' un traitement multi-core. Équilibrer la charge de travail des
applications sur des processeurs peut être problématique, surtout si elles ont des caractéristiques
de performance. Il existe différents modèles conceptuels pour faire face au problème, par
exemple en utilisant un langage de coordination et les blocs de construction de programmes
(bibliothèques de programmation ou des fonctions d'ordre supérieur). Chaque bloc peut avoir une
implémentation native différente pour chaque type de processeur. Les utilisateurs programment
tout simplement en utilisant ces abstractions et un compilateur intelligente choisit la meilleure
mise en œuvre en fonction du contexte.

12
La gestion concurrency acquiert un rôle central dans le développement d' applications parallèles.
Les étapes de base dans la conception d' applications parallèles sont les suivantes :

Exemples de matériel
Commercial

 Adapteva Épiphanie, une architecture de processeur GPGPU qui permet jusqu'à 4096


processeurs sur puce, bien que seule une version 16 de base a été produit
commercialement.
 Aeroflex Gaisler LEON3 , un multi-core SPARC qui existe aussi dans une version à
tolérance de pannes .
 Ageia PhysX , un multi-coeur unité de traitement physique .
 Ambric Am2045, un 336-core réseau de processeurs massivement parallèles (MPPA)
 AMD
 A-Series , à double, triple et quadruple cœur d'unités de traitement accéléré
(APU).
 Athlon 64 , Athlon 64 FX et Athlon 64 X2 famille, processeurs de bureau dual-
core.
 Athlon II , à double, triple, et les processeurs de bureau quad-core.
 FX-Series , quad-, 6, et les processeurs de bureau 8-core.
 Opteron , intermédiaire , prolongée,, 6 QUAD-, 8, 12 et processeurs serveur /
station de travail 16-core.
 Phenom , à double, triple et processeurs quad-core.
 Phenom II , à double, triple, quad, et les processeurs de bureau 6-core.
 Sempron X2 , les processeurs d'entrée de gamme dual-core.
 Turion 64 X2 , les processeurs d'ordinateur portable à double coeur.
 Ryzen , quad-, 6, 8, 12, 16-, 24-, et les processeurs de bureau 32-core.
 EPYC , 8-, 16-, 24-, et les processeurs du serveur 32 cœurs.
 Radeon et FireStream multi-core GPU / GPGPU (10 coeurs, 16 5-émission
large superscalaires processeurs de flux par noyau)
 Analog Devices Blackfin BF561, un processeur double cœur symétrique
 ARM MPCore est un conteneur multi-noyau entièrement synthétisable pour ARM11
MPCore et ARM MPCore Cortex-A9 coeurs de processeur, destinés à des applications de
haute performance embarqué et de divertissement.
 Asocs ModemX, jusqu'à 128 cœurs, les applications sans fil.
 Azul Systems
 Vega 1, un processeur 24-core, publié en 2005.
 Vega 2, un processeur 48-core, publié en 2006.
 Vega 3, un processeur 54-core, publié en 2008.
 Broadcom SiByte SB1250, SB1255, SB1455; BCM 2836 quad-core ARM SoC (conçu
pour le Raspberry Pi 2)
 Cadence Design Systems Tensilica Xtensa LX6, disponible dans une configuration dual-
core dans Espressif systèmes de ESP32
 ClearSpeed
 CSX700, le processeur 192-core, publié en 2008 (32 / à virgule flottante de 64
bits; Integer ALU)
 Cradle Technologies CT3400 et CT3600, les deux DSP multi-core.
 Cavium Networks Octeon, un 32 noyau MIPS MPU .
 Coherent Logix hx3100 processeur , un DSP 100-core / processeur GPP

13
 Freescale Semiconductor processeurs de la série QorIQ, jusqu'à 8 cœurs, Power
Architecture MPU .
 Hewlett-Packard PA-8800 et PA-8900 , dual core PA-RISC processeurs.
 IBM
 POWER4 , un dual-core PowerPC processeur, sorti en 2001.
 POWER5 , un processeur PowerPC dual-core, publié en 2004.
 POWER6 , un processeur PowerPC dual-core, publié en 2007.
 POWER7 , un processeur PowerPC 4,6,8-core, sorti en 2010.
 POWER8 , un processeur PowerPC 12-core, publié en 2013.
 PowerPC 970 MP, un processeur PowerPC dual-core, utilisé dans l'Apple Power
Mac G5 .
 Xenon , un triple-core, SMT -Capable, microprocesseur PowerPC utilisé dans
la Microsoft Xbox 360 console de jeu.
 z10 , un quad-core z / Architecture processeur, publié en 2008
 z196 , un z / Architecture processeur quad-core, publié en 2010
 zEC12 , un processeur z / Architecture six-core, publié en 2012
 z13 , un processeur z / Architecture huit-core, publié en 2015
 Infineon
 Aurix
 Danube, un double noyau, à base MIPS, passerelle domestique processeur.
 Intel
 Atom , processeurs dual-core unique et quad-core pour netbooks, tablettes et
systèmes de smartphones.
 Celeron Dual-Core , le premier processeur dual-core pour le budget / marché
entrée de gamme.
 Core Duo , un processeur double cœur.
 Core 2 Duo , un processeur double cœur.
 Core 2 Quad , 2 double coeur meurt emballé dans un module multi-puce.
 Core i3 , Core i5 , Core i7 et noyau i9 une famille de dual, quad-, 6, 8, 10, 12, 16
et 18 processeurs-core, le successeur du Core 2 Duo et la core 2 Quad .
 Itanium 2 , un processeur double cœur.
 Pentium D , 2 single-core meurt emballé dans un module multi-puce.
 Pentium Extreme Edition , 2 single-core meurt emballé dans un module multi-
puce.
 Pentium Dual-Core , un processeur double cœur.
 Téraflops Chip Research (Polaris), un 3,16 GHz, 80-core prototype de
processeur, dont la société serait à l' origine déclaré être libéré d' ici 2011.
 Xeon à double, quad-, 6, 8, 10, 12, 14, 15, 16-, 18-, 22- et 24- processeurs de
base.
 Intel MIC 57-core, 60-core et les processeurs 61-core.
 IntellaSys
 SEAFORTH 40C18, un processeur 40-core
 SEAforth24, un processeur 24-core conçu par Charles H. Moore
 Kalray
 MPPA-256 , le processeur 256-core, publié 2012 (256 noyaux de VLIW
utilisables, réseau sur puce (NoC), 32/64-bit IEEE 754 FPU conforme)
 NetLogic Microsystems
 XLP, un 32-core, processeur MIPS64 quad-thread
 XLR, un huit-core, processeur MIPS64 quad-thread
 XLS, un huit-core, processeur MIPS64 quad-thread
 Nvidia

14
 GeForce 9 multi-core GPU (8 noyaux, 16 scalaires processeurs de flux par
noyau)
 GeForce 200 multi-core GPU (10 coeurs, 24 scalaires processeurs de flux par
noyau)
 Tesla multi-core GPGPU (10 coeurs, 24 scalaires processeurs de flux par noyau)
 Parallaxe hélice P8X32 , un microcontrôleur huit-core.
 picoChip série PC200 200-300 cœurs par dispositif pour DSP et sans fil
 Pluralité série HAL étroitement couplé 16-256 noyaux, L1 mémoire partagée, le
processeur synchrone du matériel.
 Rapport Kilocore KC256, un microcontrôleur 257-noyau avec un noyau PowerPC et 256
"éléments de traitement" 8 bits.
 Si Cortex « nœud Si Cortex » a six MIPS64 cœurs sur une seule puce.
 Sony / IBM / Toshiba de cellule processeur, un processeur de neuf noyau avec un usage
général PowerPC noyau et huit SPU spécialisés (synergiques Procession Unit) optimisé pour
des opérations de vecteur utilisé dans la Sony PS3
 Sun Microsystems
 MAJC 5200, le processeur VLIW à deux conducteurs
 Ultra SPARC IV et Ultra SPARC IV +, processeurs double cœur.
 Ultra SPARC T1 , un noyau de huit, le processeur 32-fil.
 Ultra SPARC T2 , un huit-coré, le processeur-fil 64 en même temps.
 T3 Ultra SPARC , un seize-coré, le processeur-fil 128 en même temps.
 SPARC T4 , un huit-coré, le processeur-fil 64 en même temps.
 SPARC T5 , un seize-coré, le processeur 128-fil simultané.
 Texas Instruments
 TMS320C80 MVP , un processeur vidéo multimédia cinq conducteurs.
 TMS320TMS320C66, 2,4,8 dsp de base.
 Tillera
 TILE64 , un 64 noyau processeur 32 bits
 TILE-Gx , un processeur 64 bits 72-core
 XMOS Software Defined Silicon quad-core XS1-G4

Principe des multi-corés


Un microprocesseur encore appelé CPU comprend différentes entités parmi lesquelles le coré.
Ce dernier se trouve à un endroit du processeur qu'on appelle, en terme technique, die. Le
core ou cœur est l'élément le plus important du processeur. Il comprend entre autres les blocs
de mémoire cache, les unités de calculs, les Schedule. Le principe des processeurs multi-corés
consiste à réunir sur un même die deux à plusieurs processeurs.

Bien avant l'arrivée des premiers processeurs double-cœurs, certains ordinateurs étaient déjà
équipés de plusieurs CPU. Seulement, ces CPU ne se trouvaient pas sur le même die. Les
processeurs multi-corés sont donc une innovation de taille. La technologie qui a permis d'y
arriver présente plus d'avantages. Pour commencer, les cartes mères équipées de tels
processeurs reviennent moins cher aux fabricants. En outre, les corés peuvent communiquer
plus vite parce qu'ils sont sur le même die, ce qui permet d'accroitre la vitesse du
microprocesseur.

15
Architecture du premier processeur multi-corés
Le premier processeur bifore a été conçu par la firme Sunnyvale. Ce processeur bi-coré
comprend deux corés Opéron qui sont liés par une interface du nom de SRI (System Requeté
Interface). Le SRI est, en outre, relié aux liens Hyper Transport et au contrôleur mémoire
situé sur le die. Pour rappel, les liens Hyper Transport sont les composants qui permettent de
communiquer rapidement avec les CPU et les différents composants d'un ordinateur. AMD, à
qui appartient ce processeur, a ajouté à son processeur un composant nommé Cross bar.

Avantages de la technologie
La course à la puissance a d'abord emmené les constructeurs à concevoir des ordinateurs
équipés de plusieurs processeurs. De tels ordinateurs utilisaient le multitraitement asymétrique
(SMP) pour effectuer plus rapidement les différentes tâches. Cependant, cette technologie
obligeait les fabricants à trouver des solutions pour mieux refroidir les PC. En outre, la
demande en ordinateur de petite taille se faisait de plus en plus pressante. Les processeurs
multi-corés permettent aujourd'hui de résoudre ces problèmes et de concevoir des ordinateurs
plus petits à la grande satisfaction des professionnels. Par ailleurs, la nouvelle technologie a
permis d'augmenter la puissance des ordinateurs ainsi que leurs performances. On peut ainsi
effectuer les tâches plus rapidement et exécuter simultanément plusieurs programmes
complexes.

La technologie multi-core permet de mieux faire face aux nouvelles demandes du monde
numérique. Ces demandes concernent entre autres les simulations 3D complexes et la gestion
de base de données volumineuses et de fichiers multimédias en continu. Les processeurs
multi-coré permettent aussi d'offrir des interfaces utilisateurs plus sophistiquées et plus
sécurisées. Par ailleurs, ils permettent aux ordinateurs de fonctionner pleinement en
multitâches.

Les limites de la technologie


Les processeurs multi-corés peuvent causer quelques désagréments. En effet, beaucoup
d'anciens programmes n'ont pas été élaborés pour fonctionner avec des processeurs à plusieurs
cœurs. Ces programmes, qui ne peuvent pas exploiter toute la puissance du processeur,
utilisent seulement l'un des cœurs. Ce fonctionnement induit une baisse de performance des
applications en question. Pour que les utilisateurs puissent vraiment profiter des processeurs
multi-corés, il faut qu'il y ait plus de logiciels conçus pour fonctionner avec l'architecture de
ces processeurs. Pour le moment, les applications du GNU/Linux, conçus pour fonctionner
sous plusieurs architectures, sont celles qui peuvent tirer le meilleur profit de cette
technologie.

16
+

Inconvénient d'un processeur multi-coré


Inconvénient d'un processeur multi-coré
Un processeur multi-cœur est une matrice de processeurs qui contient plusieurs
noyaux de processeur câblés ensemble en une seule unité. C'est différent que
d'avoir plusieurs processeurs installés dans un système. Dans ce dernier scénario,
chaque CPU séparée dispose de son propre socket du CPU et l'accès à ses propres
ressources. Dans un système de processeur multi-coré , le processeur se trouve
dans une prise de courant, et les ressources - telles que les sociétés à responsabilité
limitée , les contrôleurs de mémoire et de matériel pré chargement - sont partagés
entre les noyaux . Remarques sur l'alimentation
Un processeur multi-coré est plus rapide que d'un seul processeur, par conséquent,
il faut plus de puissance électrique. Il en résulte d’alimentation supplémentaire en
chaleur supplémentaire, ce qui augmente la demande sur l'architecture de
refroidissement de l'ordinateur. Une autre considération d'énergie est la condition de
batterie pour les ordinateurs portables multi- coré. Une ordinatrice portable multi-coré
besoin d'une batterie plus puissante pour soutenir la puce plus rapide pour une plus
longue période de temps.
Speed
Un processeur multi-coré n'est pas égal à le même nombre de processeurs distincts.
Par exemple, un processeur quad-coré n'est pas quatre fois plus rapide qu'un seul
processeur. La vitesse de rotation réelle d'un processeur multi-cœur se situe quelque
part entre un processeur simple cœur du même type , et plusieurs processeurs égal
au nombre de base. Exactement là où le processeur multi-coré tombe dans cette
fourchette dépend de la vitesse de chaque noyau et le nombre total de cœurs.
Coût
multi -coré processeurs coûtent plus cher que leurs homologues single-coré .
Cependant, parce qu'ils partagent certaines ressources matérielles , les processeurs
multi-coré ont tendance à coûter moins cher que le coût total du même chef
d'accusation de plusieurs processeurs .
Disponible Software
régulier applications logicielles qui seront exécutées sur un processeur multi-coré ,
en fait , ils vont fonctionner plus efficacement , en particulier dans le multitâche
scénarios. L'inconvénient majeur est que dès 2010 il n'y a pas beaucoup de logiciels
écrit de prendre un véritable avantage de l'environnement de traitement multi-coré.
Pour exploiter la puissance d'un système multi-coré, le système d'exploitation doit
reconnaître multithreading, et le logiciel doit être écrit en utilisant la technologie
multithreading simultané (SMT) .
Configuration matérielle
Photos

Un processeur multi-coré doit avoir le matériel adéquat pour reconnaître et soutenir.


Systèmes informatiques plus anciens peuvent ne pas être compatibles avec les

17
nouveaux technologie multi -coré , dans ces cas, une nouvelle carte mère est
nécessaire, celui qui est compatible avec le processeur multi-coré. Achat d' une
nouvelle carte mère peut également nécessiter l'achat de nouveau matériel autre , en
fonction de la configuration de la carte mère.
Multi-coeurs (CMP)
• De nombreux niveaux de
parallélisme
→ILP
→SIMD
→SMT
→CPUs Multiple
• Hiérarchie mémoire complexe
→Mémoires caches partagées
→Mémoire partagées cohérentes
• Unités de calcul homogènes ou
hétérogènes
→Cœurs de différents types
→Accélérateurs matériels
• De nombreuses variantes
architecturales
→Pas de consensus

18
Conclusion

L'élaboration d'un système temps réel requiert des dates d'échéance pour chacune
des tâches à effectuer. L'ordonnancement nécessite de connaître parmi tous les
scénarios possibles d'exécution, la plus longue durée entre l'activation de la tâche et
l'instant de sa terminaison. Pour répondre aux besoins accrus de performance, les
fondeurs ont enrichi leurs architectures en fonctionnalités matérielles complexes. La
réduction de la moyenne des temps d'exécution, la prise en compte matérielle du
domaine d'application, et ce, en maintenant une rétrocompatibilité peuvent expliquer
cette évolution qui rend difficile l'estimation des pires temps d'exécution.
L'introduction des processeurs multi-cœurs en avionique soulève des interrogations
notamment quant à la manière dont les instructions sont exécutées. Nous proposons
une procédure d'évaluation d'architectures multi-cœurs permettant d'identifier des
situations où les transactions présentent des latences anormalement élevées
uniquement dues à la concurrence des accès au niveau de l'interconnexion. Nous
appliquons ce protocole de test à une architecture PowerPC(c) oct. Cœur citée par
de nombreuses études avioniques, le P4080 du fabricant Fr escale(c). Nous mettons
en évidence les étapes clés de configuration pour la maîtrise des échanges et des
moyens de mesure du temps jusqu'à la mise en évidence de situations présentant
ces altérations temporelles. Nous proposons également une interconnexion dont le
principe consiste à maîtriser le comportement transactionnel de tout type d'initiateur,
à garantir le partitionnement spatial/ temporel et la politique de partage aux
ressources. Une caractérisation temporelle est également présentée.
Consulter en bibliothèque
Accéder en ligne

Références

https://fr.wikipedia.org/wiki/Microprocesseur_multi-cœu

lipn.univ-paris13.fr/~cerin/SE/IUTprocess.pdf

https://fr.wikipedia.org/.../Optimisation_des_performances_des_architectures _multi-cœurs

dictionnaire.sensagent.leparisien.fr/Microprocesseur%20multi-cœur/fr-fr/

www.theses.fr/2014TOU3024

videos.rennes.inria.fr/irisatech/.../bodin/IRISA_François%20Bodin.pdf

www.theses.fr/2014TOU30247

19
20