PrésentationLe
processeur (
CPU, pour
Central Processing Unit, soit
Unité Centrale de Traitement) est le cerveau de l'ordinateur.
Il permet de manipuler des informations
numériques,
c'est-à-dire des informations codées sous forme
binaire,
et d'exécuter les instructions stockées en mémoire.
Le premier
microprocesseur (Intel 4004) a
été inventé en 1971. Il
s'agissait d'une unité de calcul de 4 bits, cadencé à 108 kHz.
Depuis, la puissance des microprocesseurs augmente exponentiellement.
Quels sont donc ces petits morceaux de silicium qui dirigent nos
ordinateurs?
FonctionnementLe
processeur (noté
CPU, pour
Central Processing Unit)
est un circuit électronique cadencé au rythme d'une horloge interne,
grâce à un cristal de quartz qui, soumis à un courant électrique,
envoie des impulsions, appelées «
top ».
La
fréquence d'horloge (appelée également
cycle, correspondant au nombre d'impulsions par seconde, s'exprime en Hertz (Hz).
Ainsi, un ordinateur à 200 MHz possède une horloge envoyant 200 000 000 de battements par seconde.
La fréquence d'horloge est généralement un multiple de la fréquence du système (
FSB,
Front-Side Bus), c'est-à-dire un multiple de la fréquence de la
carte mèreA chaque top d'horloge le processeur exécute une action, correspondant à une
instruction ou une partie d'instruction. L'indicateur appelé
CPI (
Cycles Par Instruction)
permet de représenter le nombre moyen de cycles d’horloge
nécessaire à l’exécution d’une instruction sur un microprocesseur. La puissance du processeur peut ainsi
être caractérisée par le nombre d'instructions qu'il est capable de traiter par seconde.
L'unité utilisée est le
MIPS (Millions d'Instructions Par Seconde) correspondant
à la fréquence du processeur que divise le
CPI.
InstructionUne
instruction est l'opération élémentaire que le processeur peut accomplir.
Les instructions sont stockées dans la mémoire principale, en vue d'être traitée par le processeur.
Une instruction est composée de deux champs :
- le code opération, représentant l'action que le processeur doit accomplir ;
- le code opérande, définissant les paramètres de l'action.
Le code opérande dépend de l'opération. Il peut s'agir d'une donnée ou bien d'une adresse mémoire.
Code opération | Champ opérande |
Le nombre d'octets d'une instruction est variable selon le type de donnée (l'ordre de grandeur est de 1 à 4 octets).
Les instructions peuvent être classées en catégories
dont les principales sont :
- Accès à la mémoire : des accès à la mémoire ou
transferts de données entre registres.
- Opérations arithmétiques : opérations telles que
les additions, soustractions, divisions ou multiplication.
- Opérations logiques : opérations ET, OU, NON, NON exclusif, etc.
- Contrôle : contrôles de séquence, branchements conditionnels, etc.
RegistresLorsque le processeur exécute des instructions, les
données sont temporairement stockées dans de petites mémoires rapides
de 8, 16, 32 ou 64 bits que l'on appelle
registres.
Suivant le type de processeur le nombre global de registres peut varier d'une dizaine à plusieurs centaines.
Les registres principaux sont :
- le registre accumulateur (ACC), stockant les résultats des opérations arithmétiques et logiques ;
- le registre d'état (PSW, Processor Status Word), permettant de stocker des indicateurs sur l'état du système (retenue, dépassement, etc.) ;
- le registre instruction (RI), contenant l'instruction en cours de traitement ;
- le compteur ordinal (CO ou PC pour Program Counter), contenant l'adresse de la prochaine instruction à traiter ;
- le registre tampon, stockant temporairement une donnée provenant de la mémoire.
Mémoire cacheLa
mémoire cache (également appelée
antémémoire ou
mémoire tampon) est une mémoire rapide
permettant de réduire les délais d'attente des informations stockées en mémoire vive.
En effet, la
mémoire centrale de l'ordinateur possède une vitesse bien moins importante que le processeur.
Il existe néanmoins des mémoires beaucoup plus rapides, mais dont le coût est très élevé.
La solution consiste donc à
inclure ce type de mémoire rapide à proximité du processeur et d'y stocker temporairement
les principales données devant être traitées par le processeur.
Les ordinateurs récents possèdent plusieurs niveaux de mémoire cache :
- La mémoire cache de premier niveau (appelée L1 Cache, pour Level 1 Cache) est directement intégrée dans le processeur.
Elle se subdivise en 2 parties :
- La première est le cache d'instructions, qui contient les
instructions issues de la mémoire vive décodées lors de passage dans
les pipelines.
- La seconde est le cache de données, qui contient des données
issues de la mémoire vive et les données récement utilisées lors des
opérations du processeur.
Les caches du premier niveau sont très rapides d'accés. Leur
délai d'accès tend à s'approcher de celui des registres internes aux
processeurs.
</li>
La mémoire cache de second niveau (appelée L2 Cache, pour Level 2 Cache)
est située au niveau du boîtier contenant le processeur (dans la puce).
Le cache de second niveau vient s'intercaler entre le processeur avec
son cache interne et la mémoire vive. Il est plus rapide d'accès que
cette dernière mais moins rapide que le cache de premier niveau.
La mémoire cache de troisième niveau (appelée L3 Cache, pour Level 3 Cache) est située au niveau de la carte mère.
Tous ces niveaux de cache permettent de réduire les temps de latence des différentes mémoires
lors du traitement et du transfert des informations.
Pendant que le processeur travaille, le contrôleur de cache de premier niveau peut
s'interfacer avec celui de second niveau pour faire des transferts d'informations sans bloquer le processeur.
De même, le cache de second niveau est interfacé avec celui de la
mémoire vive (cache de troisième niveau),
pour permettre des transferts sans bloquer le fonctionnement normal du processeur.
Signaux de commandeLes
signaux de commande sont des signaux électriques permettant d'orchestrer les différentes
unités du processeur participant à l'exécution d'une instruction.
Les signaux de commandes sont distribués grâce à un élément appelé
séquenceur.
Le signal
Read / Write, en français
lecture / écriture, permet
par exemple de signaler à la mémoire que le processeur désire lire ou écrire une information.
Unités fonctionnellesLe processeur est constitué d'un ensemble d'unités fonctionnelles reliées
entre elles. L'architecture d'un microprocesseur est très variable d'une architecture à une autre, cependant les principaux
éléments d'un microprocesseur sont les suivants :
- Une unité d'instruction (ou unité de commande, en anglais control unit) qui lit les données arrivant, les décode puis les envoie à l'unité d'exécution ;
L'unité d'instruction est notamment constituée des éléments suivants :
- séquenceur (ou bloc logique de commande) chargé de synchroniser l'exécution
des instructions au rythme d'une horloge. Il est ainsi chargé de l'envoi des signaux de commande ;
- compteur ordinal contenant l'adresse de l'instruction en cours ;
- registre d'instruction contenant l'instruction suivante.
Une unité d'exécution (ou unité de traitement), qui accomplit les tâches que lui a données l'unité d'instruction.
L'unité d'exécution est notamment composée des éléments suivants :
L'unité arithmétique et logique (notée UAL ou en anglais ALU pour Arithmetical and Logical Unit).
L'UAL assure les fonctions basiques de calcul arithmétique et les opérations logiques (ET, OU, Ou exclusif, etc.) ;
L'unité de virgule flottante (notée FPU, pour Floating Point Unit), qui accomplit les calculs complexes non entiers que ne peut réaliser l'unité arithmétique et logique.
Le registre d'état ;
Le registre accumulateur.
</li>
Une unité de gestion des bus (ou unité d'entrées-sorties), qui gère les flux d'informations entrant et sortant, en interface avec la mémoire vive du système ;
Le schéma ci-dessous donne une représentation simplifiée des éléments constituant le processeur
(l'organisation physique des éléments ne correspond pas à la réalité) :
TransistorPour effectuer le traitement de l'information, le microprocesseur possède un ensemble d'instructions, appelé
«
jeu d'instructions », réalisées grâce à des circuits électroniques.
Plus exactement, le jeu d'instructions est réalisé à l'aide de semiconducteurs, « petits interrupteurs »
utilisant l'
effet transistor, découvert en 1947 par
John Barden,
Walter H. Brattain et
William Shockley qui reçurent le prix Nobel en 1956 pour cette découverte.
Un
transistor (contraction de
transfer resistor, en français
résistance de transfert)
est un composant électronique semi-conducteur, possédant trois
électrodes,
capable de modifier le courant qui le traverse à l'aide d'une de ses
électrodes (appelée électrode de commande).
On parle ainsi de «composant actif», par opposition aux « composants
passifs », tels que la résistance ou le condensateur, ne possédant que
deux électrodes
(on parle de « bipolaire »).
Le transistor MOS (
métal, oxyde, silicium) est le type de transistor majoritairement utilisé pour la conception de
circuits intégrés. Le transistor MOS est composé de deux zones chargées négativement, appelées
respectivement
source (possédant un potentiel quasi-nul) et
drain (possédant un potentiel de 5V), séparées par une région chargée positivement,
appelée
substrat (en anglais
substrate).
Le substrat est surmonté d'une électrode de commande, appelée
porte (en anglais
gate, parfois également appelée
grille), permettant d'appliquer une tension sur le
substrat.
Lorsqu'aucune tension n'est appliquée à
l'électrode de commande, le substrat chargé positivement agit telle une
barrière et
empêche les électrons d'aller de la source vers le drain. En revanche,
lorsqu'une tension est appliquée à la porte, les charges
positives du substrat sont repoussées et il s'établit un canal de
communication, chargé négativement, reliant la source au drain.
Le transistor agit donc globalement comme un interrupteur programmable grâce à l'électrode de commande.
Lorsqu'une tension est appliquée à l'électrode de commande, il agit comme un interrupteur fermé, dans le cas contraire
comme un interrupteur ouvert.