vignette|Processeur Intel Core i7-12700KF.

Un processeur numerique (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 volumineux, gros consommateurs d'énergie et générant beaucoup de chaleur.

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

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.

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 ».

Microprocesseurs

thumb|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. thumb|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 1974, 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), 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 pour le Zilog Z80 en 1976 pour l'Intel 8088 sur le premier IBM-PC en 1981 à plusieurs gigahertz pour l'Intel Core i7 6700K en 2015. 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 Moore, 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é).

Les processeurs multi cœurs (multicores) comportent plusieurs cœurs dans un seul circuit intégré. Leur efficacité dépend grandement de la topologie d'interconnexion entre les cœurs. Celles des processeurs ont atteint 2 pétaFLOPS en 2010 pour les serveurs.

En , le supercalculateur militaire IBM Roadrunner est le premier à franchir cette barre symbolique du pétaFLOPS. Puis, en , c'est au tour du supercalculateur Jaguar de Cray. En , ce sont les deux seuls supercalculateurs à avoir dépassé le pétaFLOPS.

En , 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 TOP500 des supercalculateurs avec .

En et en l’absence de chiffres officiels pour les Sunway Oceanlite et Tianhe-3 chinois, le Frontier a été déclaré le premier supercalculateur à franchir la barre de l’ExaFLOPS. En matière de record de performance, la tendance est à un léger au ralentissement de 2014 à 2024.

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é. Cet élément repose sur la programmation et doit, au minimum, assurer les fonctions suivantes :

Composition d'un processeur thumb|Schéma de principe d'un processeur . 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

Un processeur est défini par : son architecture, c'est-à-dire son comportement vu par le programmeur, liée à : son jeu d'instructions (en anglais instruction set architecture, ISA), la largeur de ses registres internes de manipulation de données (8, 16, 32, 64, 128) bits et leur utilisation, les spécifications des entrées–sorties, de l'accès à la mémoire, etc. ;

ses caractéristiques, variables même entre processeurs compatibles : sa microarchitecture, la cadence de son horloge exprimée en mégahertz (MHz) ou gigahertz (GHz), sa finesse de gravure exprimée en nanomètres (nm), son nombre de cœurs de calcul.

On classe les architectures en plusieurs grandes familles : CISC (complex instruction set computer), choix d'instructions aussi proches que possible d'un langage de haut niveau ;