Le fonctionnement interne de l'ordinateur

CPU : Central Processing Unit (unité centrale de traitement), on l'appelle "processeur" en français. Quand on réussit à mettre tous ses composants dans un seul circuit intégré, on le nomme "micro processeur".

ALU : Unité Arithmétique et Logique : c'est ce composant qui sait faire les calculs. C'est à dire que pour chaque combinaison de 0 et de 1 en entrée, il sait quelle combinaison de 0 et de 1 il doit donner en sortie. La sortie ne dépend que des entrées, le problème est donc combinatoire. C'est donc un ensemble de portes logiques. Par exemple, le schéma de l'additionneur (voir /autom/tr-autom/transp3.htm). Une caractéristique est importante d'un processeur est le nombre de chiffres binaires (bits) sur lesquels l'ALU sait faire les calculs. Notons le N, il vaut suivant les cas 8 bits (les anciens ordinateurs personnels comme l'Apple II, Commodore,... aujourd'hui les micro-contrôleurs qui gèrent une télé, une machine à laver...), 16 bits, 32 bits (le Pentium), 64 bits voire 128 bits dans les gros ordinateurs.

Registres : mémoires internes du processeur. Un registre est capable de stocker N 0 ou 1, par exemple le résultat de la dernière opération de l'ALU. Il est en fait composé de N bascules (voi r /autom/autom08.htm). Dans un processeur, le nombre de registres est très limité (3 à 8). L'un de ces registres est plus important que les autres, il est appelé accumulateur (accu). Sur une calculatrice, l'accu est le registre constamment relié à l'affichage : c'est ici qu'est stocké le résultat de l'opération précédente, ou la donnée du calcul suivant.

PC (Partie Commande) : la PC commande le processeur. Par exemple, si elle veut additionner deux registres, elle va brancher ces deux registres à l'entrée de l'ALU, demander une addition, et brancher la sortie de l'ALU sur le registre devant récupérer le résultat. Mais il n'est pas possible de changer les branchements. En fait, tout est branché ensemble, sur un ensemble de N fils appelé "bus de données", et devant chaque composant un ensemble de N portes peut être ouvert ou fermé par ordre de la PC. A un instant donné deux portes sont ouvertes, donc deux composants sont reliés, ils monopolisent le bus, les autres composants doivent attendre leur tour. C'est pourquoi un processeur ne peut faire qu'une chose à la fois. Chaque réservation du bus se fait durant une durée déterminée, la même quelle que soit l'opération effectuée. Une horloge (notée Ø ) envoie des "tops" à intervalles réguliers, à chaque top deux nouveaux composants sont reliées au bus, et peuvent y transmettre une valeur jusqu'au prochain top. Le nombre de tops envoyés en une seconde est la seconde caractéristique importante d'un processeur, c'est sa "fréquence". Les tout premiers ordinateurs fonctionnaient à quelques dizaines de Hertz, le premier PC tournait à 4,77 MHz, aujourd'hui on dépasse les 2 GHz.

Les programmes requièrent bien plus de mémoires que les quelques registres du CPU. On regroupe donc un ensemble de mémoires à l'extérieur du CPU. Chaque mémoire est désignée par un numéro : son "adresse". Pour lire (ou écrire) un nombre en mémoire, le processeur doit donner l'adresse désirée (un nombre binaire sur N' bits), qu'il fournit sur le bus d'adresse, puis la valeur peut transiter sur le bus de données. N' n'est pas nécessairement égal à N, il détermine le nombre maximal de mémoires accessibles par le CPU. Pour un processeur 8 bits, si N' valait 8 on ne pourrait avoir que 256 mémoires. En fait N' valait 16 sur les ordinateurs 8 bits (limitant la mémoire à 64ko), N'=20 alors que N=16 sur le 8086 utilisé sur les premiers PC, limitant la mémoire à 1Mo dont 640ko pour l'utilisateur (le 8088 était quand à lui un "faux 16bits" avec des registres 16 bits mais un bus de données 8 bits). Avant de pouvoir envoyer une adresse sur le bus d'adresse, le CPU doit la former dans le registre d'adresse (si N'>N il lui faudra deux opérations pour former une adresse).

Comment commande-t-on la PC ? Chaque action qu'elle sait faire est numérotée (en binaire), ce numéro est appelé "code opération" ou code-op. Le choix de la codification est évidement fait par le fabriquant du processeur, c'est le langage machine. On commande l'ordinateur à l'aide d'un programme, qui est une suite de code-ops. Le programme est lui aussi stocké en mémoire, à la queue-leu-leu. C'est le registre d'adresse de programme (RAP) qui sait à tout moment où on en est dans le programme. Le CPU va y lire l'instruction suivante, la mémorise dans le registre d'instruction (RI) et l'effectue, ajoute 1 au RAP (sauf si c'était un goto) et recommence, indéfiniment. Le registre d'adresse de données (RAD) quand à lui sert pour stoker l'adresse de la prochaine donnée à lire ou écrire en mémoire. Pour un exemple de petit programme en langage machine, voir /internet/technoinfo

P. TRAU, ULP - IPST, novembre 2002