Les processeurs multicoeurs
Les processeurs multi-cœurs
Les processeurs sont tout d'abord des assemblages de transistors d'une certaines façon (en passant par les portes booléennes). A une échelle plus grande, les anciens processeurs étaient des unités de calcul ne pouvant alors exécuter qu'une instruction à la fois (en tout cas n'émettre le résultat que d'une instruction à la fois). Mais le multi-cœur a constitué une révolution dans ce concept.
Les processeur multi-core possèdent plusieurs unités de calcul appelé cœur ou core sur la même puce. Doté d'une consommation électrique basse, plusieurs instructions peuvent s'exécuter en même temps. L'augmentation de la fréquence commençant à devenir impossible à cause de l'effet Joule mais aussi de la plus grand miniaturisation plus difficile, l'ajout de cœurs devient la seule solution viable à moyen terme d'améliorer la puissance de calculs des processeurs.
Cependant, il faut des programmes adaptés pour ces puces : les anciens programment ne savaient pas gérer des instructions qui s'exécutaient simultanément). Pour cela, il est possible de parler de a notion de thread : un entité logique qui exécute des calculs de manière autonome. Si un programmes partagent, dans sa conception, ses instructions entre plusieurs, thread, il peut vraiment profiter des différents cœurs. Mais toutes les situations ne sont pas adaptables à la programmation parallèle : une limite arrivera donc tôt ou tard en matière de temps d'exécutions sur nos programmes avec les processeurs actuels.
Pour finir les cœurs d'un même CPU peuvent partager une mémoire en commun, moins rapide que les registres mais plus grand (qqes Mo) et plus rapide que la RAM. Cela permet à un programme s'exécutant sur plusieurs thread de ne pas trop être ralenti par les échanges mémoire.
Aujourd'hui les ordinateurs utilisent des processeurs Intel core i9 (de 10 à 18 cœurs) et les téléphones ont un processeur à 8 cœurs.