Le premier microprocesseur (Intel 4004) a été inventé en 1971.
Depuis, la puissance des microprocesseurs augmente exponentiellement. Quels sont donc ces petits morceaux de silicium qui dirigent nos ordinateurs?
Le processeur (CPU, pour Central Processing Unit) 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.
Pour effectuer ces traitements, 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 semi-conducteurs, « 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é à la porte, les charges
positives du substrat sont repoussées et il s'établit un canal de communication, chargée 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 fermé.
Assemblés ensemble, les transistors peuvent constituer des circuits logiques,
qui, assemblés à leur tour, constituent des processeurs.
Les transistors MOS sont ainsi réalisés dans des tranches de silicium
(appelées wafer, traduisez gauffres), obtenues après des traitements successifs.
Ces tranches de silicium sont alors découpées en éléments
rectangulaires, constituant ce que l'on appelle un « circuit ». Les circuits
sont ensuite placés dans des boîtiers comportant des connecteurs d'entrèe-sortie,
le tout constituant un « circuit intégré ».
Dans la mesure où le boitier rectangulaire possède des broches d'entrée-sortie
ressemblant à des pattes, le terme de « puce électronique » est
couramment employé pour désigner les circuits intégrés.
Il peut exister jusqu'à plusieurs millions de transistors sur un seul processeur !
Chaque type de processeur possède son propre jeu d'instruction. On distingue
ainsi les familles de processeurs suivants, possédant chacun un jeu d'instruction qui leur est
propre :
- 80x86 : le « x » représente la famille. On parle ainsi de
386, 486, 586, 686, etc.
- ARM
- IA-64
- MIPS
- Motorola 6800
- PowerPC
- SPARC
Cela explique qu'un programme réalisé pour un type de processeur ne puisse fonctionner directement sur un système
possédant un autre type de processeur, à moins d'une traduction des instructions, appelée
émulation. Le terme
d'«émulateur» est utilisé pour désigner le programme réalisant cette traduction.
Les éléments principaux d'un microprocesseur sont:
- Une horloge qui rythme le processeur. Entre deux tops d'horloge le processeur effectue une action. Une instruction nécessite une ou plusieurs actions du processeur.
Ainsi plus l'horloge a une fréquence élevée, plus le processeur effectue d'instructions par seconde (l'unité
retenue pour caractériser le nombre d'instructions traitées par unité de temps
est généralement le MIPS, Millions d'instructions par seconde).
Par exemple un ordinateur ayant une fréquence de 100 Mhz effectue 100 000 000 d'actions par seconde. Certaines instructions utiliseront plusieurs cycles d'horloge pour être réalisées.
- Une unité de gestion des bus qui gère les flux d'informations entrant et sortant
- Une unité d'instruction qui lit les données arrivant, les décode puis les envoie à l'unité
d'exécution.
- Une unité d'exécution qui accomplit les tâches que lui a données l'unité d'instruction.
Le processeur travaille en fait grâce à un nombre très limité de fonctions (ET logique, Ou logique, addition ...),
celles-ci sont directement câblées sur les circuits électroniques. Il est impossible de mettre toutes les instructions sur
un processeur car celui-ci est limité par la taille de la gravure, ainsi pour mettre plus d'instructions il faudrait un processeur
ayant une très grande surface, or le processeur est constitué de silicium et le silicium coûte cher, d'autre part il chauffe
beaucoup. Le processeur traite donc les informations compliquées à l'aide d'instructions simples.
Le parallélisme consiste à exécuter simultanément sur des processeurs
différents des instructions relatives à un même programme. Cela se traduit par
le découpage d'un programme en plusieurs processus qui seront traités par des processeurs
différents dans le but de gagner en temps d'exécution. Cela nécessite toutefois
une communication entre les différents processus. C'est le même principe de fonctionnement
que dans une entreprise: le travail est divisé en petits processus traités par des services
différents et qui ne servent à rien si la communication entre les services ne fonctionne pas
(ce qui est généralement le cas dans les entreprises...).
Le pipeline (ou pipelining) est une technologie visant à
permettre une exécution rapideme des instructions en parallélisant des
étapes.
Pour se faire, il est nécessaire de comprendre les phases
d'exécution d'une instruction. Les phases d'exécution d'une instruction pour un processeur contenant un pipeline « classique » à 5 étages
sont les suivantes :
LI : Lecture de l'Instruction depuis le cache ;
DI : Décodage de l'Instruction et recherche des opérandes (Registre ou valeurs immédiate);
EX : Exécution de l'Instruction (si ADD, on fait la somme, si SUB, on fait la soustraction, etc.);
MEM : Accès mémoire, écriture dans la mémoire si nécéssaire ou chargement depuis la mémoire ;
ER : Ecriture de la valeur calculée dans les registres.
Les instructions sont organisées en file d'attente dans la mémoire, et sont chargées les unes après les autres.
Grâce au pipeline, le traitement des instructions nécessite au maximum les cinq étapes précédentes.
De plus, ces étapes se font dans l'ordre présenté ci-dessus, c'est-à-dire LI, DI, EX, MEM, ER.
Or, puisqu'aucun autre ordre que celui-ci n'est possible, et que le processeur est conçu pour fonctionner de cette manière,
il existe dans le processeur un certain nombre de circuits spécialisés pour chacune de ces phases.
L'objectif de cette organisation est de pouvoir lire une instruction (LI) lorsque la précédente
est en cours de décodage (DI), que celle d'avant est en cours d'exécution (EX), que celle située encore précédemment nécessite un accès mémoire (MEM) et enfin que la dernière est en cours d'écriture dans les registres (ER).
Il faut compter 1 à 2 cycle d'horloges (rarement plus) pour chaque phase du pipeline, soit 10 cycles d'horloges maximum
par instruction.
Pour deux instructions, 12 cycles d'horloge maximum seront nécessaires (10+2=12 au lieu de 10*2=20),
car la précédente instruction était déjà dans le pipeline.
Les deux instructions sont donc en traitement dans le processeur, avec un décalage d'un ou deux cycles d'horloge).
Pour 3 instructions, 14 cycles d'horloges seront ainsi nécessaires, etc.
Le principe du pipeline est ainsi comparable avec une chaîne de production de voitures.
La voiture passe d'un poste de travail à un autre en traversant l'entrepôt et sort complétement
montée à la sortie du bâtiment.
Pour bien comprendre le principe, il est nécessaire de regarder la chaîce dans son ensemble,
et non pas véhicule par véhicule. Il faut ainsi 3 heures pour faire une voiture, mais pourtant
une voiture est produite toute les minutes !
Il faut noter toutefois qu'il existe différents types de pipelines, de 2 à 40 étages,
mais le principe reste le même.
L'architecture CISC (Complex Instruction Set Computer, ce qui signifie "ordinateur avec jeu
d'instructions complexes") est utilisée en particulier par les processeurs de type 80x86.
Les processeurs basés sur l'architecture CISC peuvent traiter des instructions complexes, qui sont
directement câblées sur leurs circuits électroniques, c'est-à-dire que certaines
instructions difficiles à créer à partir des instructions de base sont directement imprimées
sur le silicium de la puce afin de gagner en rapidité d'exécution sur ces commandes.
Ce type d'architecture possède un coût élevé du fait que
des fonctions évoluées sont imprimées sur le silicium.
D'autre part, les instructions sont de longueurs variables et peuvent parfois nécessiter plus d'un cycle
d'horloge.
Or un processeur basé sur l'architecture CISC ne peut traîter qu'une instruction à la fois,
d'où un temps d'exécution plus conséquent.
Contrairement à l'architecture CISC, un processeur utilisant la technologie RISC (Reduced
Instruction Set Computer, dont la traduction est « ordinateur à jeu d'instructions réduit ») n'a
pas de fonctions supplémentaires câblées. Les programmes doivent ainsi être traduits
en instructions simples, ce qui entraîne un développement plus difficile et/ou un compilateur plus puissant.
L'avantage d'une telle architecture est bien évidemment le coût de fabrication réduit.
De plus, les instructions, simples par nature, sont exécutées en un seul cycle d'horloge, ce qui rend l'exécution des programmes plus rapide qu'avec des processeurs
basés sur une architecture CISC.
De plus, de tels processeurs sont capables de traîter plusieurs instructions simultanément en les traitant en parallèle.
A comparer les spécificités des deux types d'architecture on pourrait conclure
que les processeurs basé sur une architecture de type RISC sont les plus utilisés.
Cela n'est pas le cas dans la mesure où les ordinateurs construits autour d'une architecture RISC
nécessitent une quantité de mémoire plus importante que les ordinateurs de type CISC.
|