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

 Généralités sur les Processeurs
 Le Binaire

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.
Après tout, une voiture, si perfectionnée soit-elle, n'est que l'habile assemblage d'un moteur, de quatre roues et d'un volant !

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
Bus d'adresse
Bus de donnée
Bus processeur
Compteur ordinal
Coprocesseur (FPU)
CPU
Décodeur
Pointeur de pile
Registre d'état
Registre d'instruction
Registres de travail
Registres généraux
Registres tampon
Registres temporaires
Unité Arithmétique et Logique (UAL ou ALU)
Unité centrale de calcul
Unité d'exécution
Unité de controle

 

Biologie de la puce

Anatomie

Non ! En fait d'anatomie, on parle plutôt d'architecture matérielle pour décrire l'ensemble des "organes" fonctionnels d'un processeur ainsi que leurs interconnexions.
Après tout, même très complexe, la structure d'une puce n'arrive pas à la cheville de la merveilleuse contexture d'une amibe, même primitive.

Sans doute n'avez-vous jamais poussé la curiosité jusqu'à dévêtir complètement votre processeur de sa coque protectrice.
La pudeur, sans doute...
 

 

 

 

 

La preuve: un processeur, même très haut-de-gamme, ne sait pas se reproduire !

 

Remarquez, vous avez bien fait car la pauvre bête en serait sûrement morte !

 
Circuit imprimé de CPU

Vous auriez eu la chance d'apercevoir quelque chose comme ceci: un inextricable réseau de circuits imprimés soigneusement ordonnés en entrelacs métalliques, une dentelle de silicium, un labyrinthe de semi-conducteur... bref, un sacré foutoir !

Cette merveille de technologie, communément appelée processeur, est également baptisée Unité Centrale de Calcul ou, pour parler dans l'argot de la Silicon Valley, "Central Processing Unit" (CPU).
 

 

 Un processeur, pour ainsi dire nu...

 

Evaluant à "nulle" la lisibilité de cette photo aérienne, nous avons pris la liberté de schématiser les tripes de ce processeur de façon un peu plus métaphorique, voire peut-être un peu naïve:
 

   
 
 

 

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:

  • L'unique fonction d'un processeur est d'exécuter des programmes (ou logiciels)
     
  • Ces programmes, quelle que soit leur complexité, sont constitués d'une succession d'instructions élémentaires stockées dans la mémoire de l'ordinateur
     
  • Le processeur, très docile, se contente d'exécuter ces instructions rudimentaires, au fur et à mesure du déroulement du programme

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.
Rien de moins !

 

 

  Peut-on faire plus simple, je vous le demande ?  

Les organes d'une puce

Canal bus

Avant d'attaquer bille en tête le processeur proprement dit, attardons-nous un instant à ses tumultueuses frontières....
En effet, comme nous venons de le rappeler, un processeur exécute des instructions, des instructions situées dans la mémoire de l'ordinateur, c'est-à-dire "au dehors". Par ailleurs, nous savons que l'activité d'un processeur se traduit parfois hors de ses bases: lorsqu'il pilote l'impression d'un document ou lorsqu'il charge le modem de se connecter à cette superbe page Internet, par exemple.
 

   

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.
 

   Le bus processeur: vous montez ?  

Plus précisément, ce bus processeur met en rapport la puce avec ses deux interlocuteurs privilégiés:

  • La mémoire centrale de l'ordinateur, où sont stockées les instructions constituant le programme en cours d'utilisation
     
  • Les périphériques de l'ordinateur, c'est-à-dire tous les dispositifs reliés à lui et destinés à interagir avec le monde extérieur: souris, imprimante, carte graphique, modem, disque dur et tutti quanti

 

   

Le bus processeurAinsi donc, à chaque fois qu'elle réclame une donnée en provenance de l'extérieur ou à chaque fois qu'elle veut adresser un ordre à destination d'un périphérique, la puce recourt au bus processeur selon une procédure désarmante d'évidence.

 

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

 

 

  Le bus processeur

...transport en commun de l'information...

 

Bus d'adresse

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.
Lorsque vous désirez envoyer des nouvelles à un être cher ou à votre percepteur, vous écrivez votre texte puis confiez votre missive à la poste. Auparavant, vous avez pris soin de bien mentionner l'adresse de votre destinataire sur l'enveloppe, de manière à faciliter un tantinet la tâche du facteur qui se chargera de l'acheminement physique de votre message.
Et bien votre processeur procède exactement de la même manière.

 
Avant tout envoi de données vers l'extérieur, le processeur place auparavant sur certaines lignes du bus processeur l'adresse de leur destinataire
.
Ces lignes particulières, dédiées à l'identification de l'interlocuteur de la puce, forment un "sous-bus" du bus processeur appelé fort à propos bus d'adresse.
 

  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.
Bref, dans tous les cas, le bus d'adresse permet au processeur de cibler précisément le récepteur de son message.

 

   

Bus de donnée

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.
Notez toutefois qu'à la différence du bus d'adresse, le bus de donnée est un canal de communication "à double sens" puisque des données entrent et sortent du processeur.

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.


 

   Le binaire: le monde vu par une puce...  

Registres tampon

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...
Vous êtes des leurs !
 

   
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.
 
   Les registres ont une capacité de stockage limitée définie par leur "largeur", qui s'exprime en nombre de bits  
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.
Et si vous êtes un tant soit peu concentré(e) sur votre lecture, vous ne serez pas étonné(e) d'apprendre qu'il en existe deux fondamentaux:

  • Le tampon d'adresse, par lequel transite toute adresse réclamée par le processeur
     
  • Le tampon de donnée, qui réceptionne toute donnée en provenance de l'extérieur ou toute donnée sur le point d'être émise par le processeur

...Ca suit derrière ?


 

   Les registres stockent toujours des valeurs binaires, mais dans le seul but de faciliter leur lecture, celles-ci sont très souvent exprimées en hexadécimal (comme sur les animations de cette page, d'ailleurs)  

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.
Bien évidemment, tous ces registres ne sont pas interchangeables car chacun dispose de sa propre fonction.

 

  Attention ! Tout rire à ce stade trahirait un esprit foncièrement déviant...  

Registres de travail: mémoires d'une puce

 
Les registres de travail sont les registres qui stockent les différentes données en cours de traitement par le processeur.
Tout processeur dispose d'un nombre variable de ces registres. La plupart d'entre eux portent un nom qui leur est propre et qui permet, pour un programmeur en langage machine, de les manipuler et d'y accéder comme de véritables "variables matérielles".

 

  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.
Bien évidemment, ces instructions ne sont pas entassées pêle-mêle dans la mémoire de la machine mais au contraire soigneusement rangées dans un ordre précis, chacune occupant une case mémoire identifiée par une adresse unique.
 

   

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:

  • Alors que les registres de travail seraient plutôt destinés à stocker des données, le compteur ordinal abrite toujours une adresse (binaire, bien sûr)
     
  • Les valeurs contenues dans le compteur ordinal ont vocation à être envoyées vers le tampon d'adresse afin d'être déposées sur le bus du même nom

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  

Pile appoint

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.
Après un long brainstorming, nous avons néanmoins décidé de l'évoquer, au moins très rapidement, car l'immense majorité des processeurs dispose d'un registre de ce type.
 

 

 

 

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.
Il serait peut-être temps de passer aux choses sérieuses...

 

   

Décodeur numérique

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.
Notons d'ores-et-déjà que l'ensemble de toutes les instructions compréhensibles par un type donné de processeur est appelé jeu d'instructions.
Ca pourrait reservir...

 

  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.
Bref, il faudrait à ces unités un commandant à poigne !
 

 
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.
En d'autres termes, le séquenceur traduit l'instruction reçue en une séquence très minutieusement synchronisée d'ordres simples à destination des différentes unités actives.
Ceci explique qu'on attribue souvent le nom d'unité de contrôle à l'ensemble formé par le décodeur et le séquenceur.
 

  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é.
Un véritable chef d'orchestre qu'on vous disait !


 

   

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.

 

   

UAL: le boulier électronique

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 ?
Réjouissez-vous, petits impatients: l'ALU va vous emballer...

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.
Nul besoin de vous faire un dessin: l'UAL se charge "simplement" de réaliser ces opérations arithmétiques et logiques.
 

   

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.
En d'autres mots, le séquenceur ordonne, l'UAL exécute...

 

  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...
S'iouplait...

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.
Bref, le passage obligé pour toute action réalisée par l'UAL.

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.

 

 
 

L'état, c'est lui !

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".
Chaque bit de ce registre très spécial agit donc comme une sorte d'interrupteur, ou, plus informatiquement parlant, comme un drapeau, hissé à chaque fois que l'événement auquel il est assigné se produit.
 

  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.
Néanmoins, certains bits du registre d'état demeurent réservés au fonctionnement interne du processeur. Ces derniers ne sont alors bien évidemment pas accessibles par programmation.

 

   

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 !
Explications...
 

   

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.
Les nombres rationnels, également appelés nombres à virgule flottante, sont "sous-traités" par une unité spécialisement entraînée pour ce genre de mission et baptisée coprocesseur arithmétique, ou, plus poétiquement, "Floating Point Unit" (FPU).

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.

 Fonctionnement Standard d'un Processeur

 

 

 

Cette page, comme toutes les pages de Arcana Percipio, est destinée à aider le plus grand nombre.
Pour cela, vos commentaires, vos réflexions et vos remarques sur son contenu sont indispensables à la qualité générale de ce site. Nous tiendrons donc le plus haut intérêt à votre jugement, à vos éventuelles questions et à l'appréciation que vous donnerez à ce document par l'intermédiaire du petit formulaire situé au début de cette page.
Merci par avance de prendre quelques secondes pour le renseigner...

Tous droits réservés. © Arcana Percipio. 2004