Fondements théoriquesCe document explique le fonctionnement d'un ordinateur au niveau binaire. Bits et octetsLes ordinateurs sont des machines purement binaires. Autrement dit, les informations qu'ils traitent sont faites uniquement de bits. Un bit est une variable à deux états. Ces états peuvent être appelés vrai et faux, fermé et ouvert, 0 et 1… Dans la réalité physique, il s'agit de tensions électriques, par exemple 0 volt et 5 volts. Contrairement aux apparences, avoir à disposition uniquement des 0 et des 1
n'est pas limitatif. Tout nombre entier peut être représenté en base 2
uniquement avec des 0 et des 1. Les bits peuvent aussi représenter des
informations sans rapport avec les nombres. Par exemple la lettre `A' peut
être représentée par Les ordinateurs actuels manipulent les bits par groupes de huit, appelés
octets. Ainsi l'octet
Hors contexte, il n'est pas possible de savoir ce que l'octet
Les busLes bits circulent d'un composant à l'autre de l'ordinateur en passant par des bus. Un bus est une collection de fils électriques parallèles reliant des composants. Certains bus sont à sens unique, d'autres peuvent être utilisés dans les deux sens, mais pas en même temps afin d'éviter les collisions. Vu d'un composant, un bus par lequel les bits arrivent est une entrée ; un bus par lequel les bits sortent est une sortie ; et un bus par lequel les bits peuvent soit entrer, soit sortir, est une entrée-sortie. La figure ci-contre montre un composant A relié par un bus de 8 fils à un composant B. Les flèches indiquent que ce bus est une sortie du composant A et une entrée du composant B. Ce bus ayant 8 fils, il permet de transmettre 8 bits simultanément du
composant A au
composant B ; il s'agit d'un bus
8 bits. Avec un seul fil électrique il faudrait transmettre un bit après
l'autre en série, ce qui prendrait 8 fois plus de temps. Dans cet
exemple l'octet La mémoireUne mémoire d'ordinateur est un composant très simple. C'est une table d'octets qui peuvent être lus ou écrits. Chaque octet est rangé dans un emplacement numéroté appelé adresse. Si les octets d'une mémoire ne peuvent être que lus, alors il s'agit d'une mémoire morte. S'ils peuvent être lus et écrits alors il s'agit d'une mémoire vive. Voici le schéma d'un composant de mémoire vive :
Pour lire par exemple l'octet à l'adresse Pour écrire, il faut envoyer Le bus d'adresse de 8 bits de cette mémoire permet de sélectionner 28 = 256 adresses différentes. Cette mémoire peut donc contenir 256 octets au plus. Le microprocesseurVue matérielle du microprocesseurLe microprocesseur est relié à chaque puce mémoire par trois bus :
C'est en décodant les instructions que le microprocesseur trouve les informations qu'il doit envoyer et recevoir sur les bus. Les instructions lui indiquent également quelle opération (addition, soustraction…) il doit effectuer avec les données. Vue logicielle du microprocesseurLe travail du microprocesseur est répétitif :
Dans l'ordinateur, les instructions sont évidemment représentées par des bits dans la mémoire, c'est le langage machine. Les programmes sont formés d'instructions un peu comme les phrases sont formées de mots. Le fonctionnement de l'ordinateur est dirigé par les programmes exécutés par le microprocesseur. Les données sont aussi des octets qui peuvent représenter des nombres, du texte, une image, voire même d'autres instructions. Si par exemple une instruction demande au microprocesseur d'addionner 3 à 4, alors additionner est l'instruction tandis que 3 et 4 sont les données. Langage de programmationLe langage machine n'étant pas très lisible
( L'assembleur est le langage de programmation le plus basique. Il représente par du texte les instructions du langage machine. À chaque instruction en assembleur correspond une instruction en langage machine et réciproquement. Comprendre l'assembleur d'un microprocesseur permet donc de comprendre son langage machine et de là son fonctionnement logiciel. Périphériques de sortieUn microprocesseur et de la mémoire vive constituent déjà un ordinateur en état de marche, mais complètement inutile. Pour pouvoir faire sortir des résultats, les rendre visibles, audibles ou autre, il faut un périphérique de sortie. C'est-à-dire un appareil capable de faire sortir des informations : écran, imprimante, modem, lecteur de disquette, haut-parleur… Un périphérique très commun est l'écran. L'écran ci-contre n'a que 8×8 = 64 pixels. C'est tout de même suffisant pour afficher un chiffre ou un caractère. Nous voyons par exemple le chiffre 9. Un écran affiche des signaux électriques que ni le microprocesseur ni la mémoire ne produisent. C'est pour cela qu'un contrôleur graphique se trouve entre la mémoire et l'écran. La tâche de ce contrôleur graphique est de lire la mémoire et transformer cela en signal vidéo. Comme le microprocesseur, il est branché aux bus A et D. Il n'utilise le bus D que pour lire la mémoire. Le contrôleur envoie un signal « noir » pour les bits à 0 et un signal « blanc » pour les bits à 1. Une portion de la mémoire contient les bits correspondant à ce qui est affiché. Comme notre écran est composé de 8 lignes de 8 pixels noirs et blancs, 8×8 bits, soit 8 octets suffisent. À la première ligne correspond l'octet 11100111, ce qui donne un signal ressemblant à . Périphériques d'entréeIl ne manque qu'un seul composant important pour rendre notre ordinateur réellement utilisable : un périphérique d'entrée. En effet, l'ordinateur que nous avons construit jusqu'ici peut calculer, mémoriser des résultats et les afficher. Mais nous n'avons aucun moyen de lui donner des informations. Nous allons donc le doter d'un clavier. Pour notre schéma, doter notre ordinateur d'un clavier est presque identique à le doter d'un écran, sauf que le sens des données est inversé. On tape une touche sur le clavier, un signal est envoyé au contrôleur clavier qui génère un octet correspondant à cette touche. Finalement cet octet est enregistré en mémoire à une adresse prédéterminée qui pourra être lue par le microprocesseur. © 2003 Marc Mongenet. Ce document peut être redistribué selon les conditions de la GNU General Public License. |