Microprocesseur multi cœur 387170 31319511 2008-07-05T11:46:32Z Overkilled 108306 /* Origines */ interwiki {{Voir homonymes|Cœur (homonymie)|Dual|Quad|Tetra|Core}} Un '''microprocesseur multi-cœurs''' (''multicore'' en [[anglais]]) est un [[processeur]] à plusieurs cœurs physiques. ==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. C'est une évolution des processeurs bi-cœurs. Les premiers exemplaires de processeurs multi-cœurs d'[[Intel]] et d'[[Advanced Micro Devices|AMD]] sont arrivés sur le marché des ordinateurs personnels en [[2005]]<ref>[http://www.pcinpact.com/actu/news/Intel_presente_son_premier_dual_core_cette_semaine.htm Intel présente son premier dual core cette semaine], article rédigé le 7 février 2005</ref>. Il s'agissait de cœurs homogènes, c'est-à-dire identiques entre eux. 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 (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]] (au pair des systèmes bi-cœurs et plus généralement des systèmes [[biprocesseur]]s et [[multiprocesseur]]s). Les premières puces bi-cœurs basées sur l'architecture x86 sont apparues en [[2005]] sur le marché des serveurs (''[[Opteron|Opterons]]'' d'AMD). Elles sont apparues parce qu'en pratique la course au [[Hertz|GHz]] est devenue trop onéreuse et compliquée. La génération des processeurs actuels a des consommations qui dépassent largement les 100 W (notamment sur les processeurs [[Intel]] [[Pentium]]) et doit faire face aux graves problèmes du refroidissement des circuits. La solution qui a semblé la plus évidente a été de privilégier non plus la fréquence, mais de démultiplier la puissance grâce à une architecture parallèle, de façon à pouvoir augmenter le nombre d'opérations simultanées en un cycle d'horloge. ==Évolution de la technologie == Depuis le lancement du premier ordinateur sur le marché, les demandes en capacité de calcul sont devenues de plus en plus importantes. Le multitraitement symétrique ([[Symmetric multiprocessing|SMP]]) a longtemps été utilisé pour améliorer les performances et l'efficacité informatiques en répartissant les charges sur plusieurs processeurs. Le SMP est particulièrement efficace dans les environnements multiprocessus où plusieurs tâches (processus) doivent être gérées simultanément. Avec l'évolution des demandes de performances applicatives, les concepteurs de processeurs sont confrontés à un problème : L'augmentation des capacités informatiques est tributaire de la puissance, et le fait d'augmenter la puissance nécessite de gérer aussi les niveaux de dissipation. À cela s'ajoutent les demandes des industriels qui souhaitent des ordinateurs moins encombrants, à savoir plus de [[serveur informatique|serveur]]s par baie, des ordinateurs portables plus fins et plus légers, et un encombrement réduit pour les systèmes de bureau. Le traitement multi-cœurs aidera à relever ces défis. Cette évolution technologique augmentera les performances et la [[productivité]] dans des ordinateurs de plus petite taille capables d'exécuter simultanément plusieurs applications complexes et de compléter davantage de tâches en moins de temps. ==Atout principal == Dans le monde numérique actuel, la demande en matière de [[simulation]]s 3D complexes, fichiers [[multimédia]]s en continu, niveaux supplémentaires de sécurité, [[interface]]s utilisateur plus sophistiquées, [[base de donnée|bases de données]] plus volumineuses et nombre plus important d'utilisateurs en ligne commence à dépasser les capacités des processeurs mono-cœurs. Les processeurs multi-cœurs favorisent un véritable fonctionnement multitâche. Sur les systèmes mono-cœurs, le fonctionnement multitâche peut dépasser les capacités de l'[[Unité centrale|UC]], entraînant une baisse des performances liée à la mise en attente des opérations à traiter. Sur les systèmes multi-cœurs, dans la mesure où chaque cœur dispose de sa propre [[mémoire cache]], le [[système d'exploitation]] dispose de suffisamment de ressources pour traiter en parallèle les tâches les plus exigeantes en calculs. La technologie multi-cœurs peut améliorer l'efficacité du système et augmenter les performances applicatives des ordinateurs qui exécutent plusieurs applications en même temps. ==Les contraintes logicielles == Malheureusement, cette approche comporte quelques désavantages, puisque les programmes doivent être repensés pour pouvoir exploiter pleinement les caractéristiques de ces processeurs. Dans le cas contraire, ils utilisent seulement un des cœurs, engendrant une baisse de performance ''par rapport aux attentes''. En 2006, très peu de logiciels gèrent le bi-cœurs, et globalement les [[logiciel]]s ne sont pas conçus pour tirer le maximum de cette technologie. Une fois effectuée une mise à niveau de tous les programmes vers la nouvelle architecture, les performances se détacheront nettement dans les applications gourmandes comme les [[jeu vidéo|jeux vidéos]]. À terme, les quadri-cœurs, formés de 4 cœurs, remplaceront les bi-cœurs, car le passage à cette architecture ne demande quasiment pas de modification logicielle. Le marché des télécommunications a été l'un des premiers à adopter les processeurs multi cœurs, aussi bien pour la couche d'acheminement des données que pour la couche de commande. Depuis, ces MPU sont en train de remplacer rapidement les processeurs réseaux (NP) qui étaient basés sur des architectures propriétaires à base de microcode et picocode. [http://www.6wind.com 6WIND] a été la première société à fournir du logiciel réseau embarqué optimisé pour ces architectures multi-cœurs. La programmation parallèle bénéficie également directement de plusieurs cœurs. Des modèles de programmation comme OpenMP and MPI peuvent être utilisés sur ces plateformes multi-cœurs. D'autres efforts de recherche sont également menés, par exemple le système ''Codeplay Sieve'', les langages [[Chapel (langage)|Chapel]] de Cray, [[Fortress (langage)|Fortress]] de Sun et [[X10 (langage)|X10]] de IBM. == Processeurs multi-cœurs existants == Il existe actuellement plusieurs achitectures de processeurs multi-cœurs. Outre les modèles d'[[Intel]] et [[Advanced Micro Devices|AMD]] déjà cités, [[Sun Microsystems]] a développé sa gamme ''[[UltraSPARC T1|Niagara]]'' et ''[[UltraSPARC T2|Niagara II]]''; [[International Business Machines Corporation|IBM]] a développé sa gamme de [[PowerPC]] et sa ligne [[Cell (processeur)|CellBE]], commercialisée par [[International Business Machines Corporation|IBM]] sous forme de serveur lame, par Mercury sous forme de châssis renforcé. L'industrie cherche dans le même temps à multiplier le nombre de cœurs présents sur un processeur, comme par exemple [[Intel]] dans son projet [[Intel Tera-Scale| Tera-Scale]]. ==Exemples commerciaux== *[http://www.6wind.com/6WINDGate-software.html 6WINDGate], Plan donnée et plan de contrôle embarqué parallèle de 6WIND pour les processeur réseaux multi-cœurs *[http://zone.ni.com/devzone/cda/tut/p/id/6745 National Instruments], Tutorial sur les principes fondamentaux de la programmation multicoeur ==Articles connexes== * [[Processeur]] * [[Processeur double cœur]] == Notes == <references /> {{Portail informatique}} [[Catégorie:Microprocesseur|*]] [[de:Mehrkernprozessor]] [[en:Multicore]] [[es:Multi núcleo]] [[it:Multi core]] [[ja:マルチコア]] [[nl:Multikernprocessor]] [[pt:Multicore]]