Processeur
La processeur, (ou en anglais, CPU, acronyme de
Central Processing Unit pour Unité centrale [de Traitement]) est le composant essentiel d'un ordinateur, où sont effectués les principaux calculs.
Il ne s'agit pas nécessairement d'un circuit isolé, même si les progrès techniques depuis les premiers emplois du terme le
permettent aujourd'hui. Dans ce cas, on a maintenant tendance à préférer le terme de microprocesseur.
Néanmoins, la distinction entre Central Processing Unit, CPU, processeur et
microprocesseur est souvent abandonnée au profit d'une banalisation de ces termes.
Principe de fonctionnement
Le CPU est l'unité de traitement de données principale d'un ordinateur, ce qui veut dire qu'il va exécuter les programmes, ce
qui peut inclure de déléguer une partie du traitement à d'autres processeurs périphériques, grâce à des instructions
d'entrée-sortie. En plus de sa capacité de traitement, il a donc également une fonction de contrôle et de coordination de
l'action de l'ensemble des composants d'un ordinateur. Un programme est un
ensemble d'instruction situé dans la mémoire centrale de l'ordinateur, que le processeur va lire puis exécuter séquentiellement, à moins d'un
saut dans le programme. Le temps d'exécution propre à chaque instruction, est exprimé en cycles de l'horloge interne qui cadence
l'activité du processeur.
Structure
Les parties essentielles d'un processeur sont :
- L' Unité Arithmétique et Logique (UAL, en anglais Aritmetic and Logical Unit - ALU), qui prend en
charge les calculs arithmétiques élémentaires et les tests.
- L'Unité de Contrôle.
- Les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que UAL puisse manipuler leur contenu à chaque cycle de l'horloge. Un certains
nombre de registres sont communs à la plupart des processeurs :
- Compteur d'instructions : Ce registre contient l'adresse mémoire de l'instruction en cours
d'exécution.
- Accumulateur : Ce registre est utilisé pour stocker les données en cours de traitement par l'UAL.
- Registre d'adresses : Il contient toujours l'adresse de la prochaine information à lire par l'UAL, soit
la suite de l'instruction en cours, soit la prochaine instruction.
- Registre d'instructions : Il contient l'instruction en cours de traitement.
- Registre d'état : Il sert à stocker le contexte du processeur, ce qui veut dire que les différents
bits de ce registre sont des drapeaux (flags) servant à stocker des informations
concernant le résultat de la dernière instruction exécutée.
- Pointeurs de pile : Ce type de registre, dont le nombre varie en fonction du type de processeur,
contient l'adresse du somment de la pile (ou des piles).
- Registres généraux : Ces registres sont disponibles pour les calculs.
- Le séquenceur, qui permet de synchroniser les différents éléments du processeur. En particulier, il
initialise les registres lors du démarrage de la machine et il gère les interruptions.
- L'unité d'entrée-sortie, qui prend en charge la communication avec la mémoire de l'ordinateur ou la
transmission des ordres destinés à piloter ses processeurs spécialisés, permettant au processeur d'accéder aux périphériques de l'ordinateur.
Les processeurs actuels intègrent également des éléments plus complexes :
- Plusieurs UAL, ce qui permet 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 de son coté.
- L'architecture superpipeline permet de découper temporellement les traitements à effectuer. C'est une
technique qui vient du monde des supercalculateurs.
- Une unité de prédiction de saut, qui permet au processeur d'anticiper un saut dans le déroulement d'un
programme, permettant d'éviter d'attendre la valeur définitive d'adresse du saut. Cela permet de mieux remplir le pipeline.
- Une unité de
calcul en virgule flottante (en anglais Floating Point Unit - FPU), qui permet d'accélérer les calculs sur
des nombres réels codés en virgule flottante.
- La mémoire cache, qui permet d'accélérer les traitements, en diminuant les accès à la RAM. Ces mémoires tampons sont en effet beaucoup plus rapides que la RAM et
ralentissent moins la CPU. Le cache instruction reçoit les prochaines instructions à exécuter, le cache donné manipule les
données. Parfois, un autre cache unifié est utilisé. Dans les microprocesseurs é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 en mémoire centrale.
Langage
Les instructions données au processeur sont exprimées en binaire (code machine). Elles sont généralement stockées dans la mémoire. Elles sont lues et
l'UAL les interprète. L'ensemble de ces instructions constitue un programme.
Le langage le plus proche du code machine tout en restant lisible par des humains est le langage d'assemblage, aussi appelé
langage assembleur (forme francisée du mot anglais
« assembler »). Toutefois, l'informatique a développé toute une série de langages, dits de haut
niveau, destinés à simplifier l'écriture des programmes.
Caractéristiques
Un processeur est caractérisé par la cadence de son horloge exprimée en GHz (giga hertz) et la taille de ses registres (8, 16,
32, 64 bits), son jeu d'instruction (ISA en anglais, Instructions Set Architecture) et sa microarchitecture interne.
Multi-processeur
Les architectures multi-processeurs permettent à une machine d'utiliser de façon concurrente, plusieurs processeurs qui
fonctionnent en parallèle. On peut ainsi partager les tâches et obtenir une puissance de calcul plus importante qu'avec un seul
processeur. Il existe deux types d'architecture multi-processeurs :
- l'architecture symétrique, en anglais Symmetric multiprocessing (SMP), qui utilise plusieurs processeurs identiques afin
d'augmenter la puissance de calcul brute de la machine
- l'architecture asymétrique, en anglais Asymetric multiprocessing (AMP), qui adjoint au processeur central des processeurs souvent
spécialisés, tels qu'on en trouve dans tous les ordinateurs modernes, par exemple pour contrôler les périphériques ou traiter les
images et les sons
Voir l'article détaillé : Multi-processeur.
Voir aussi
Articles connexes

