Mais comment fonctionne un microprocesseur !

Mais comment fonctionne un microprocesseur : il lit des instructions et les exécute à toute vitesse1. Par exemple pour faire une addition il est nécessaire de lire dans un des registres comme l'accumulateur une donnée de la mémoire vers le microprocesseur puis de l'additionner et enfin de l'écrire dans sa mémoire.

Pour cela le microprocesseur dispose d'un bus de communication connecté à des bancs de mémoires avec deux bus celui des adresses et celui des données. Il envoie sur le bus d'adresse une combinaison de bits pour accéder à une valeur particulière émet un signal de lecture ou d'écriture puis reçoit ou envoie sur le bus de données une valeur à écrire ou à lire.

Le microprocesseur dispose de plusieurs registres, vous connaissez l'accumulateur qui pourraît être celui qui s'affiche sur une calculatrice. Mais un autre se nomme le compteur de programmation (program counter en anglais) c'est celui qui pointe vers les instructions à décoder. Et le bus d'adresse communique aussi bien la lecture des instructions que des données et ce bus oscille entre les différentes fonctions qui lui sont nécessaires.

Lire une instruction ou envoyer une donnée, il semble utile de préciser que le bus d'adresse est unidirectionnelle alors que celui des données est bidirectionnelle. Donc les différentes étape sont celle-ci, lire une instruction en positionnant sur le bus d'adresse les coordonnés du compteur de programmation, puis décoder cette fonction pour interpréter ce qu'elle fait, par exemple lire une donnée, qui doit se trouver elle aussi dans la mémoire de votre ordinateur. Tout ceci, est bien sur synchronisé en fonction de l'état de ces instructions.

En lisant ceci je pense que vous avez compris, néanmoins l'algèbre booléenne se doit aussi d'étre exliquée comment faire de fils qui laissent passer un courant ou pas des nombres ? Ceci s'explique très bien : on groupe des bits par valeur de puissance de deux successives 20=1, 21=2, 22=4, 23=8 et ainsi de suite pour les fils successifs qui donnent la série suivante 16,32,64,128,256,512,1024,2048,4096... Il suffit alors d'additionner ceux qui sont positionnés à un, qui est allumé comme le premier avec le troisième pour obtenir 1+4=5 par exemple.

Puis comme vous le savez, on classe les processeurs selon la faculté qu'ils ont d'adresser un nombre plus ou moins important de bits *2 à la fois dans ses bus de communication.

Et le langage d'assemblage est nécessaire pour comprendre le fonctionnement d'un ordinateur. En effet, c'est celui qui avec ces OP-codes (les codes opérationnelles) permet d'instruire votre processeur et principalement de lire depuis la mémoire dans un des registres (comme l'accumulateur par exemple) ou des transférer son contenue vers la mémoire. Puis d'ajouter ou de multiplier avec une fonction spécifique (ADD OU MUL) pour effectuer des opérations de calculs.

Pour constituer un microprocesseur, il faut au préalable, utiliser des transistors et mémoriser des informations binaires. Celles-ci sont stockées dans la mémoire de votre ordinateur, ou bien dans les registres du microprocesseur. Et deux fonctions bien utile, vont lire dans cette mémoire ou bien écrire. En adressant sur le bus des adresses la position que vous voulez mémoriser ce qui est situé sur le bus des données. En effet, votre microprocesseur dispose de deux bus un pour les adresses, un pour les données.

Une fois dans un de vos registre ou plusieurs, mais notament l'accumulateur. vous pouvez effectuer des opérations de calcul avec les valeurs qui sont stockés dans chacun de ces registres. Mais qui corresponde aussi par exemple aux différentes mémoires de votre calculatrice.

Imaginez-vous faire une addition avec deux bits seulement, et comment faire allez vous me demander - tout simplement en plaçant deux interrupteurs l'un derrière l'autre en série dise les électriciens. Pour positionner la retenue du champ suivant.

 

  1. Un microprocesseur qui possède une horloge à quartz de 2 Giga-Hertz effectue 2 milliards (2*109) d'instructions par seconde.
  2. Bits pour Binary Element

(c) beelog dessiné et écrit par denis BeeLog