Ce site utilise des animations réalisées avec la technologie Flash. Si vous ne possédez pas le petit programme permettant de lire ce format, les animations de cette page seront inactives et ce sera bien dommage. Vous pouvez néanmoins télécharger ce petit logiciel en vous connectant ici. La procédure est indolore, rapide et gratuite. Pourquoi s'en priver, je vous le demande ? |
Dernière mise à jour
- 30 septembre 2004 |
![]() |
||||
![]() |
Bon ! Assez tourner autour du pot ! Quels que soient vos desseins en informatique, il vous faudra bien, un jour ou l'autre, faire plus ample connaissance avec l'autre animal domestique caché au bout de la queue de votre souris, à savoir votre puce. Nous en voyons qui blémissent, qui flageolent, et nous avons
même entendu appeler Maman ! Mais rassurons tout le monde
d'un geste paternel. Même s'il est vrai que le mot "processeur"
peut causer un certain malaise chez les indécrottables technophobes,
le rôle et la nature de ses différents composants
restent tout-à-fait à portée
de compréhension, même pour un non-ingénieur comme
l'auteur de cette page. Allez, allez ! Ne faites pas votre timide ! Essuyez bien vos pieds
et entrez d'un pas franc et décidé à l'intérieur
de la bête; nous allons vous présenter les tout petits
acteurs qui occupent la scène de cette Scala miniature qu'est
un processeur en état de marche. |
Accumulateur |
||
|
Bon ! Il est fort possible que le grand néophyte découvre ça ou là sur ce schéma naïf un ou deux termes dont il ignorait jusque là tranquillement l'existence... mais qu'il se rassure prestement, car l'unique but de cette page est justement de nous bâtir quelques solides connaissances de base à partir de quasi rien. Impossible ? On va voir ça...
|
||||
|
Métabolisme de base Pour bien comprendre ce qui va suivre, rappelons juste quelques petites notions très, mais alors très générales sur la nature et le mode de fonctionnement d'un processeur standard:
Et voilà ! Même pas mal ! Ces trois phrases,
simplissimes, vont suffire à nous
faire comprendre le rôle et
la nature de tous les composants fondamentaux présents à l'intérieur
de n'importe quel processeur vivant sur cette planète.
|
Peut-on faire plus simple, je vous le demande ? | |||
|
Les organes d'une puce Avant d'attaquer bille en tête le processeur proprement
dit, attardons-nous un instant à ses tumultueuses frontières.... |
||||
|
La conclusion est évidente: un processeur entretient avec son
environnement des relations très intenses, et, tout comme la moëlle épinière
relie le cerveau au reste du corps, le processeur
est relié à ses collègues
de bureau via un axe de communication essentiel appelé bus
processeur. |
||||
|
Plus précisément, ce bus processeur met en rapport la puce avec ses deux interlocuteurs privilégiés:
|
||||
|
Nous allons à cette occasion découvrir que le bus processeur est en fait la réunion de deux bus élémentaires chargés chacun d'un rôle bien déterminé.
|
...transport en commun de l'information... |
|||
|
Pour bien comprendre le principe du bus processeur, servons-nous
sans vergogne d'une métaphore éculée et facile: la métaphore de la lettre. |
Pour nos plus jeunes lecteurs, précisons que cette métaphore postale reste toute à faite pertinente avec l'email moderne (le facteur étant remplacé par un obscur serveur de courrier) | |||
|
Dans le cas où l'interlocuteur est la mémoire centrale de
l'ordinateur, cette adresse renseigne la "case-mémoire" concernée par
l'échange d'information. Si l'interlocuteur est un périphérique de l'ordinateur,
cette adresse identifie ce périphérique sous la forme d'un port
d'entrée/sortie.
|
||||
|
Une fois l'adresse de son interlocuteur renseignée, le processeur
place le contenu du message proprement dit sur un autre sous-ensemble
du
bus processeur appelé bus
de donnée. Les moins néophytes ne seront pas surpris d'apprendre que toutes les valeurs véhiculées sur ce bus processeur sont au format binaire, à vrai dire seul format compréhensible par une puce, si sophistiquée soit-elle.
|
||||
|
Attention, formule magique ! Réunis dans le même
titre, deux des termes préférés de la grande Guilde des
informaticiens ténébreux ! Insérez nonchalamment
l'un de ces deux mots dans une phrase bien insipide, et, immédiatement,
constatez l'effet produit sur un informaticien normalement constitué:
clignotement des mirettes, accélération du rythme cardiaque,
regain d'intérêt dans le regard, voire, pour les plus sensibles,
petite érection fugace... |
||||
|
Un
processeur manipule des informations; ça, nous le savons ! Des
informations binaires; oui, c'est possible... Une chose est sûre: ces
informations ont besoin d'être stockées dans le processeur le temps de
leur exploitation. Et où sont-elles stockées, ces informations ?
Dans des registres, bien sûr ! Un registre, ce n'est donc que ça: une petite zone mémoire chargée de stocker temporairement une valeur binaire. |
||||
| La
notion de tampon est un peu plus vague,
jugez plutôt: on appelle tampon
une zone de "transit" située à l'interface
de deux composants afin de faciliter ou optimiser leur communication. Bref, contentons-nous pour le moment de considérer un tampon comme un simple dispositif intermédiaire. On ne fera pas plus flou... |
...quelque chose comme une salle d'attente électronique, quoi ! | |||
|
Ceci
dit, la définition des registres tampon du
processeur devient élémentaire: ce sont de simples registres
situés à l'interface
entre le processeur et le bus processeur.
...Ca suit derrière ?
|
||||
|
Registres généraux: Garages a bits en tous genres Maintenant définie la notion de registre, ce paragraphe va ressembler à une promenade de santé !
Alors que les registres tampon se contentent de stocker les valeurs
sur le point de sortir ou d'entrer dans le processeur, les registres
généraux constituent la véritable mémoire
de travail de l'ordinateur, celle qui "retient" les données en cours
d'exploitation par le processeur.
|
Attention ! Tout rire à ce stade trahirait un esprit foncièrement déviant... | |||
|
Registres de travail: mémoires d'une puce
|
Le langage machine est la seule "langue" que comprend le processeur: c'est dans ce dialecte très aride que sont codées les instructions élémentaires qui constituent, comme nous l'avons dit, tout logiciel informatique | |||
|
Compteur ordinal: le pense-bit Comme nous l'avons précisé en introduction de cette page,
tout programme est constitué d'une longue suite d'instructions élémentaires,
celles-ci attendant patiemment en mémoire
centrale leur tour d'être appelées au sein du processeur pour
être mises en oeuvre. |
||||
|
Ceci assimilé, le rôle du compteur ordinal devient aisé à comprendre: il s'agit d'un registre particulier dont la seule fonction est de contenir en permanence l'adresse mémoire de la prochaine donnée à importer dans le processeur. De cette définition très limpide, nous pouvons d'ores-et-déjà supputer deux caractéristiques fondamentales de ce registre pense-bête:
Bref ! Ce compteur ordinal peut être raisonnablement comparé à un "marque-page" électronique chargé d'indiquer en permanence au processeur où il en est dans l'exécution de son programme.
|
Vos amis Anglais appellent d'ailleurs "Program Counter" ce pense-bête pour puce électronique | |||
|
Nous avons longuement hésité avant de mentionner ce compteur
très particulier sur notre schéma naïf. Difficile en effet de saisir
le rôle
de ce registre
sans se lancer dans des explications un peu hors-sujet quant à la gestion
de la mémoire. |
|
|||
|
Nous avons vu que le processeur disposait toutes les valeurs nécessaires à sa bonne marche dans des registres généraux. Or, ceux-ci sont en nombre limité alors que la puce nécessite de jongler avec de très nombreuses données, de par la structure même des logiciels (et en particulier des appels de sous-programmes) et de par le fonctionnement interne du processeur (et notamment le processus des interruptions). Bref, les registres généraux, seuls, si nombreux soient-ils,
ne suffisent pas à stocker toutes les informations utiles à la
bonne marche de la machine. |
||||
|
Afin de sauvegarder toutes les données utiles à l'exécution de son programme, et ce, quel que soit leur nombre, le processeur recourt à la mémoire centrale de l'ordinateur par l'intermédiaire d'un registre particulier appelé pointeur de pile. Nul besoin d'en dire plus pour le moment...
|
Vos amis (les mêmes) appellent "stack pointer" ce registre d'appoint | |||
|
Unité de contrôle: le centre de décision Pour l'instant, avouons-le, nous n'avons croisé dans
notre processeur qu'une technologie somme toute assez sommaire: des registres,
simples
entrepôts à données,
et des bus, bêtes lignes électriques de transport de bits.
|
||||
|
Nous avons vu ensemble que, d'une part, le processeur lisait
au fur et
à mesure de l'exécution du programme ses instructions
depuis la mémoire
centrale et que, d'autre part, il ne savait manipuler que des valeurs
binaires. D'où votre supputation, géniale: ces fameuses
instructions qui constituent
le logiciel doivent donc être codées en mémoire
au format binaire ! |
Vous êtes
formidable ! Si, si... |
|||
|
Ainsi donc, prêt à travailler, le processeur commence par réclamer en mémoire la prochaine instruction à exécuter et réceptionne en réponse dans le tampon de donnée une valeur binaire. Celle-ci transite alors benoîtement jusqu'à un nouveau registre baptisé registre d'instruction. Et là, tout s'accélère... |
||||
|
A ce stade se trouve donc dans le registre d'instruction une valeur
binaire sans grande signification. Il est temps pour le décodeur de
se mettre au travail en se chargeant
de décoder cette valeur et de la traduire
en une instruction compréhensible par le processeur. |
||||
|
Nous abordons ici un élément un tantinet plus
complexe. Sans pénétrer plus avant dans le sujet (pour
l'instant !),
retenons simplement que ce décodeur lit une valeur binaire et
convertit celle-ci en une instruction plus ou moins élémentaire.
|
On peut donc dire du jeu d'instructions d'un processeur qu'il constitue en quelque sorte son "vocabulaire de base" | |||
|
Chef d'orchestre pour musique électronique Le rôle du séquenceur est essentiel et pourtant plus délicat
à appréhender. Pour nous y aider, il faut bien comprendre que tous
les éléments que nous avons vu jusqu'ici (comme tous ceux que nous verront
ensuite) sont des composants pour ainsi dire "bêtes et dociles" car sans
aucune vision d'ensemble sur la marche globale du processeur. |
Et si vous préférez une métaphore moins martiale, disons qu'il faut à ces solistes un talentueux chef d'orchestre |
|||
|
Une fois l'instruction décodée, le séquenceur prend
la main et distribue à tous les composants concernés par l'instruction
son plan de travail. |
C'est vrai que vu comme ça, le séquenceur fout un peu la pétoche quand même... | |||
|
Comme toujours, tout s'illumine à l'aide d'un bon
vieux exemple. Imaginons donc que l'instruction décodée
soit un ordre d'addition entre deux valeurs situées dans les registres
généraux. Dans ce cas, le séquenceur
pilote l'acheminement des deux valeurs jusqu'à l'unité arithmétique
(que nous allons voir tantôt), ordonne à celle-ci d'exécuter
l'addition, puis replace le résultat obtenu dans le registre approprié.
|
||||
|
Unité d'exécution: le centre de calcul Il nous reste à découvrir le saint du saint, le coeur de la puce, le creuset de l'intelligence artificielle, l'atelier à calculs. Bref, l'unité d'exécution du processeur.
|
||||
|
Avouez que vous commenciez à désespérer. La grande caractéristique
d'un processeur n'est-elle pas, quand même, une fabuleuse aptitude à
calculer dont nous n'avons encore pipé mot ?
En présentant l'Unité Arithmétique
et Logique (UAL en français,
ALU en anglais), tout est dit, ou presque.
Comme vous vous en doutiez un peu, parmi
toutes les instructions constituant le "vocabulaire de base" du processeur,
il s'en trouve quelques unes impliquant des calculs ou des comparaisons
de valeurs. |
||||
|
Malgré
le rôle tout en "intelligence" de l'UAL et son inévitable complexité,
cet élément, comme tous les autres composants du processeur, ne fait
qu'obéir aux impulsions coordinatrices du séquenceur.
|
Cela me rappelle les tendres rapports patiemment tissés entre ma femme et moi... | |||
|
Registres de calculs: les champs opératoires Bien évidemment, ces calculs arithmétiques
et logiques ont besoin de supports matériels pour se réaliser.
S'il vous plaît, dites-nous
que vous avez une petite idée sur la nature de ces micro-mémoires
ultra-temporaires... L'accumulateur est le registre de calcul
par excellence. C'est par lui en effet que transitent
toutes les données devant faire l'objet d'une opération ainsi que tous
les résultats
produits par calcul arithmétique. Comme ces opérations mettent généralement en jeu plusieurs termes et/ou états intermédiaires, l'accumulateur est secondé par un nombre variable de registres temporaires destinés à la réalisation matérielle des calculs.
|
||||
|
Le fait est que l'exécution de certaines instructions peut conduire à des résultats surprenants, voire mathématiquement insondables. Prenons par exemple le cas d'une tentative de division par zéro, ou, plus difficile à saisir pour le profane, un cas d'"overflow" consécutif à une opération arithmétique. Pour faire simple, disons qu'un overflow (ou dépassement
de capacité en bon français) se produit lorsqu'une valeur est attribuée
à un registre
trop petit pour pouvoir l'accueillir. Cette situation, plutôt rare mais
relativement fâcheuse, est inévitable de par le fait que les registres
ont une taille fixe, définie à la conception de la puce. |
Pour faire un peu moins simple: l'overflow expliqué aux plus jeunes | |||
|
Ainsi donc, certains "événements" survenant à l'intérieur de la puce sont suceptibles de devoir interrompre la marche normale du processeur afin que celui-ci y réagisse de manière impérative.
L'ensemble de tous ces événements "extraordinaires" est
connu. A chaque fois que l'un d'entre eux se produit, un bit particulier
d'un registre dédié à cette tâche se positionne sur la valeur "1". |
Vous aviez bien sûr compris que le drapeau (flag en anglais) est "hissé" quand son bit est positionné à "1" | |||
|
Ce registre-alarme, appelé registre d'état, est scruté très régulièrement par le processeur afin de se tenir informé de la survenue d'une éventuelle alerte. L'alerte assignée à chaque bit du registre d'état varie selon
le type de processeur, tout comme la taille même de ce registre. De même,
certains bits du registre sont généralement inutilisés et n'ont donc
aucune valeur informative. |
Outre-Manche,
on l'appelle plutôt "Program Status Word" (PSW). Curieuse quand même cette manie anglaise de ne jamais parler comme nous... |
|||
|
Notez que tous les événements consignés
dans le registre d'état ne sont pas aussi fatals que nos deux
exemples cités plus haut.
Ainsi, certaines instructions peuvent directement intéragir avec
le registre d'état, pour le lire voire même pour le modifier,
permettant ainsi à
tout programme de gérer et anticiper la survenue
de la
plupart
de ces alertes.
|
||||
|
Coprocesseur: quand y'a du flottement dans l'air... Le processeur que nous avons très naïvement schématisé plus
haut est, vous vous en doutiez, un modèle assez "primitif".
Il est néanmoins
doté d'un petit raffinement dont étaient dépourvus
les premiers processeurs plus ou moins grand public: une unité de
calcul flottant ! |
||||
|
Contrairement à ce que nous vous avons laissé entendre,
l'Unité Arithmétique et Logique ne se charge pas de la
totalité des calculs réclamés au processeur car
celle-ci se cantonne aux opérations mettant en jeu des
valeurs entières. Ce coprocesseur, optionnel chez les premières générations de processeurs, est très vite devenu un composant essentiel de la CPU de par l'importance grandissante des nombres à virgule flottante dans les applications multimédias. Vous savez: le son, l'image... tout ça quoi ! |
La
virgule flottante... Vous étiez au courant ? |
|||
|
PAR-FAIT ! Nous venons de planter là un fabuleux décor, tout prêt à servir de cadre aux aventures effrénées et informatiques de nos électrons préférés. Retournez donc un instant zyeuter la première photo de cette page puis, fier(e) et tout(e) gonflé(e) d'orgueil, savourez ce délicieux moment en repensant au petit oeil fébrile que vous posiez il y a peu encore sur cet effrayant labyrinthe de semi-conducteurs... Bon ! Vous tripotez pas non plus... Nous avons encore deux ou trois trucs à voir avant de pouvoir parader dans le rayon "INFORMATIQUE" de notre grande surface préférée, voire même renseigner les vendeurs dudit rayon lorsque ceux-ci, étrange coutume de la grande distribution, viendront en catastrophe du rayon "APPAREILS MENAGERS" porter main forte à leurs collègues débordés. Et en premier lieu, attachons-nous à comprendre comment tout ces très jolis composants peuvent bien fonctionner de concert.
|
||||
Cette page, comme toutes les pages de Arcana Percipio,
est destinée à aider le plus grand nombre. Tous droits réservés. © Arcana Percipio. 2004 |