n processeur (ou unité centrale de calcul, UCC ; en anglais central processing unit,
CPU) ou unité centrale de traitement est un composant électronique présent dans de
nombreux dispositifs électroniques qui exécute les instructions
machine des programmes informatiques, c’est le « cerveau » de l’ordinateur. Avec
la mémoire, c'est notamment l'une des fonctions qui existent depuis les
premiers ordinateurs. Un processeur construit en un seul circuit intégré est
un microprocesseur.
L'invention du transistor, en 1947, ouvrit la voie à la miniaturisation des composants
électroniques. Car, auparavant, les ordinateurs prenaient la taille d'une pièce entière
du fait de l'utilisation de tubes à vide volumineux1,2, gros consommateurs d'énergie et
[ ] [ ]
générant beaucoup de chaleur : chaque transistor était un tube cathodique.
Les processeurs des débuts étaient conçus spécifiquement pour un ordinateur d'un
type donné. Cette méthode coûteuse de conception des processeurs pour une
application spécifique a conduit au développement de la production de masse de
processeurs qui conviennent pour un ou plusieurs usages. Cette tendance à la
standardisation qui débuta dans le domaine des ordinateurs centraux (mainframes à
transistors discrets et mini-ordinateurs) a connu une accélération rapide avec
l'avènement des circuits intégrés. Les circuits intégrés ont permis la miniaturisation
des processeurs. La miniaturisation et la standardisation des processeurs ont conduit
à leur diffusion dans la vie moderne bien au-delà des usages des machines
programmables dédiées.
Histoire
Article détaillé : Histoire des processeurs.
Les premiers processeurs nécessitaient un espace important, puisqu'ils étaient
construits à base de tubes électroniques ou de relais électromécaniques.
Leur création a pour origine les travaux de John von Neumann, qui répondaient aux
difficultés liées à la reprogrammation de calculateurs comme l'ENIAC où il était
nécessaire de recâbler le système pour faire fonctionner un nouveau programme 3. [ ]
Dans cette architecture, une unité de contrôle se charge de coordonner un
processeur (ayant accès aux entrées/sorties) et la mémoire.
Tout cela a été décrit par un document intitulé « première ébauche d'un rapport sur
l'EDVAC »4.[ ]
Microprocesseurs
Articles détaillés : Microprocesseur et Gravure (microfabrication).
Le microprocesseur 6502 en technologie MOS dans un
boîtier dual in-line une conception très répandue dans les années 1970/1980.
Intel 80486DX2 microprocesseur en boîtier céramique PGA.
L'introduction du microprocesseur dans les années 1970 a marqué de manière
significative la conception et l'implémentation des unités centrales de traitement.
Depuis l'introduction du premier microprocesseur (Intel 4004) en 1971 et du premier
microprocesseur employé couramment (Intel 8080) en 19745, cette classe de
[ ]
processeurs a presque totalement dépassé toutes les autres méthodes
d'implémentation d'unité centrale de traitement. Les fabricants d'ordinateurs centraux
(mainframe et miniordinateurs) de l'époque ont lancé leurs propres programmes de
développement de circuits intégrés pour mettre à niveau les architectures anciennes
de leurs ordinateurs et ont par la suite produit des microprocesseurs à jeu
d'instructions compatible en assurant la compatibilité ascendante avec leurs anciens
modèles. Les générations précédentes des unités centrales de traitement
comportaient un assemblage de composants discrets et de nombreux circuits
faiblement intégrés sur une ou plusieurs cartes électroniques. Les microprocesseurs
sont construits avec un très petit nombre de circuits très fortement intégrés (ULSI)6, [ ]
habituellement un seul. Les microprocesseurs sont implémentés sur une seule puce
électronique, donc de dimensions réduites, ce qui veut dire des temps de
commutation plus courts liés à des facteurs physiques comme la diminution de
la capacité parasite des portes. Ceci a permis aux microprocesseurs synchrones
d'augmenter leur fréquence de base de quelques mégahertz a à plusieurs gigahertzb.
[ ] [ ]
De plus, à mesure que la capacité à fabriquer des transistors extrêmement petits sur
un circuit intégré a augmenté, la complexité et le nombre de transistors dans un seul
processeur ont considérablement crû. Cette tendance largement observée est
décrite par la loi de Moore7, qui s'est avérée être jusqu'ici un facteur prédictif assez
[ ]
précis de la croissance de la complexité des processeurs (et de tout autre circuit
intégré)8.
[ ]
Les processeurs multi cœurs (multicores) récents comportent maintenant plusieurs
cœurs dans un seul circuit intégré. Leur efficacité dépend grandement de la
topologie d'interconnexion entre les cœurs. De nouvelles approches, comme la
superposition de la mémoire et du cœur de processeur (memory stacking), sont à
l'étude, et devraient conduire à un nouvel accroissement des performances[réf. nécessaire].
Celles des processeurs ont atteint 2 pétaFLOPS en 2010 pour les serveurs9. Selon [ ]
les projections, les PC devraient eux aussi atteindre le pétaFLOPS à l'horizon 2030.
[réf. nécessaire]
En juin 2008, le supercalculateur militaire IBM Roadrunner est le premier à franchir
cette barre symbolique du pétaFLOPS9. Puis, en novembre 2008, c'est au tour du
[ ]
supercalculateur Jaguar de Cray9. En avril 2009, ce sont les deux seuls
[ ]
supercalculateurs à avoir dépassé le pétaFLOPS.
En novembre 2015, pour la sixième fois consécutive, le supercalculateur
chinois Tianhe-2 "milky way-2", développé par l'université nationale chinoise pour les
technologies de défense, atteint la première place du classement semestriel mondial
TOP50010 des supercalculateurs avec 33,86 pétaFLOPS.
[ ]
En 2022 et en l’absence de chiffres officiels pour les Sunway Oceanlite et Tianhe-3
chinois, le Frontiera été déclaré le premier supercalculateur à franchir la barre de
l’ExaFLOPS11. En matière de record de performance, la tendance est à un léger au
[ ]
ralentissement de 2014 à 202411.[ ]
Tandis que la complexité, la taille, la construction, et la forme générale des
processeurs ont fortement évolué au cours des soixante dernières années, la
conception et la fonction de base n'ont pas beaucoup changé. Presque tous les
processeurs communs d'aujourd'hui peuvent être décrits très précisément
comme machines à programme enregistré de von Neumann. Alors que la loi de
Moore, mentionnée ci-dessus, continue de se vérifier, des questions ont surgi au
sujet des limites de la technologie des circuits intégrés à transistors. La
miniaturisation des portes électroniques est si importante que les effets de
phénomènes comme l'électromigration (dégradation progressive des interconnexions
métalliques entraînant une diminution de la fiabilité des circuits intégrés) et les
courants de fuite (leur importance augmente avec la réduction des dimensions des
circuits intégrés ; ils sont à l'origine d'une consommation d'énergie électrique
pénalisante), auparavant négligeables, deviennent de plus en plus significatifs. Ces
nouveaux problèmes sont parmi les nombreux facteurs conduisant les chercheurs à
étudier, d'une part, de nouvelles technologies de traitement telles que l'ordinateur
quantique ou l'usage du calcul parallèle et, d'autre part, d'autres méthodes
d'utilisation du modèle classique de von Neumann.
Fonctionnement
Définition d'un processeur
Un processeur est un dispositif qui exécute une série de fonctions nécessaires à la
réalisation d'un processus donné12. Cet élément repose sur la programmation et doit,
[ ]
au minimum, assurer les fonctions suivantes 13 : [ ]
Composition d'un processeur
Schéma de principe d'un processeur 32 bits.
Un processeur n'est pas qu'une unité de calcul. Cette dernière est incluse dans le
processeur mais il fait aussi appel à une unité de contrôle, une unité d'entrée-sortie,
à une horloge et à des registres.
Le séquenceur, ou unité de contrôle, se charge de gérer le processeur. Il peut
décoder les instructions, choisir les registres à utiliser, gérer les interruptions ou
initialiser les registres au démarrage. Il fait appel à l'unité d'entrée-sortie pour
communiquer avec la mémoire ou les périphériques.
L'horloge doit fournir un signal régulier pour synchroniser tout le fonctionnement du
processeur. Elle est présente dans les processeurs synchrones mais absente
des processeurs asynchrones et des processeurs auto-synchrones.
Les registres sont des petites mémoires internes très rapides, pouvant être
accédées facilement. Un plus grand nombre de registres permettra au processeur
d'être plus indépendant de la mémoire. La taille des registres dépend de
l'architecture, mais est généralement de quelques octets et correspond au nombre
de bit de l'architecture (un processeur 8 bits aura des registres d'un octet). Il existe
plusieurs registres, dont l'accumulateur et le compteur ordinal qui constituent la
structure de base du processeur. Le premier sert à stocker les données traitées par
l'UAL (l'unité de calcul arithmétique et logique), et le second donne l'adresse
mémoire de l'instruction en cours d'exécution ou de la suivante (en fonction de
l'architecture). D'autres registres ont été ajoutés au fil du temps :
le pointeur de pile : il sert à stocker l'adresse du sommet des piles, qui sont en fait des
structures de données généralement utilisées pour gérer des appels de sous-
programmes ;
le registre d'instruction : il permet quant à lui de stocker l'instruction en cours de
traitement ;
le registre d'état : il est composé de plusieurs bits, appelés drapeaux (flags), servant à
stocker des informations concernant le résultat de la dernière instruction exécutée ;
les registres généraux, qui servent à stocker les données allant être utilisées (ce qui
permet d'économiser des allers-retours avec la mémoire).
Les processeurs actuels intègrent également des éléments plus complexes :
plusieurs unités arithmétiques et logiques, qui permettent de traiter plusieurs instructions
en même temps. L'architecture superscalaire, en particulier, permet de disposer des UAL
en parallèle, chaque UAL pouvant exécuter une instruction indépendamment de l'autre ;
unité de calcul en virgule flottante (en anglais floating-point unit, FPU), qui permet
d'accélérer les calculs sur les nombres réels codés en virgule flottante ;
unité de prédiction de branchement, qui permet au processeur d'anticiper
un branchement dans le déroulement d'un programme afin d'éviter d'attendre la valeur
définitive de l'adresse du saut. Il permet de mieux remplir le pipeline ;
pipeline, qui permet de découper temporellement les traitements à effectuer ;
mémoire cache, qui permet d'accélérer les traitements en diminuant les accès à
la mémoire vive. Le cache d'instructions reçoit les prochaines instructions à exécuter, le
cache de données manipule les données. Parfois un cache unifié est utilisé pour les
instructions et les données. Plusieurs niveaux (levels) de caches peuvent coexister, on
les désigne souvent sous les noms de L1, L2, L3 ou L4. Dans les processeurs évolués,
des unités spéciales du processeur sont dévolues à la recherche, par des moyens
statistiques et/ou prédictifs, des prochains accès à la mémoire vive.
Un processeur possède aussi trois types de bus :
bus de données, qui définit la taille des données pour les entrées–sorties, dont les accès
à la mémoire (indépendamment de la taille des registres internes) ;
bus d'adresse, qui permet, lors d'une lecture ou d'une écriture, d'envoyer l'adresse où
elle s'effectue, et donc définit le nombre de cases mémoire accessibles ;
bus de contrôle, qui permet la gestion du matériel, via les interruptions.
Classification des processeurs