Fonctionnement d'un ordinateur

Dans le chapitre précédent, nous avons abouti à la création d'un processeur (CPU). Nous avons vu qu'il est constitué d'une unité de calcul (ALU) pour traiter les nombres, de registres pour stocker temporairement les résultats, et d'une horloge pour cadencer le tout.

Cependant, notre processeur est isolé. Il possède une capacité de mémoire interne extrêmement faible (quelques registres de 8 bits) et n'a aucun moyen de communiquer avec l'extérieur. Dans l'état actuel, nous ne pouvons ni lui fournir un programme complexe à exécuter, ni stocker le résultat de son travail de manière durable.

Dans ce chapitre, nous allons connecter notre processeur à d'autres composants électroniques pour construire une machine complète et fonctionnelle. Nous allons voir comment passer d'une simple puce de calcul à l'architecture d'un ordinateur moderne.


Nous avons vu deux types de mémoire jusqu'à présent :


  • La mémoire Flash (chapitre 2) : Elle conserve les données sans courant grâce à une grille flottante, mais elle est lente à l'écriture.
  • Les Registres (chapitre 4) : Ils sont extrêmement rapides car situés au cœur du processeur, mais ils sont très coûteux en transistors et prennent de la place physique sur la puce, ce qui limite leur nombre (quelques centaines d'octets tout au plus).

Il existe un fossé gigantesque entre ces deux technologies. Le processeur a besoin de stocker des millions, voire des milliards d'instructions et de données pour faire fonctionner des programmes modernes (navigateur web, jeu vidéo, etc.) Les registres ne suffisent pas, ils sont beaucoup trop petit, et la mémoire Flash est bien trop lente pour suivre la cadence de l'horloge d'un CPU.


Nous avons besoin d'un compromis : une mémoire vaste, pas nécéssairement aussi rapide que les registres, mais suffisamment rapide pour dialoguer avec le processeur.


La solution technique retenue s'appelle la RAM (Random Access Memory, ou Mémoire à Accès Aléatoire).


Contrairement à la mémoire Flash qui utilise des transistors à grille flottante, la RAM (plus précisément la DRAM - Dynamic RAM) utilise un composant électronique élémentaire différent : le condensateur.


Un condensateur est un composant capable d'accumuler une charge électrique. Imaginez deux plaques conductrices séparées par un isolant. Lorsqu'on applique une tension, des électrons s'accumulent sur l'une des plaques.


  • Si le condensateur est chargé d'électrons, nous convenons que cela représente un « 1 ».
  • S'il est déchargé, cela représente un « 0 ».

Pour créer une puce de RAM, on grave des milliards de ces condensateurs microscopiques sur du silicium, chacun étant couplé à un unique transistor qui sert de porte d'accès pour lire ou écrire les bits.


Cette technologie présente un avantage décisif : elle est très dense et rapide. Cependant, elle a une contrainte physique majeure. Les condensateurs sont imparfaits et "fuient". Les électrons s'échappent progressivement. Si on ne fait rien, l'information (la charge électrique) disparaît en quelques millisecondes.


C'est pour cela qu'on l'appelle mémoire "Dynamique" : elle nécessite un circuit de rafraîchissement qui vient lire et réécrire la charge électrique de chaque cellule des milliers de fois par seconde pour ne pas perdre l'information. C'est également pour cette raison que la RAM est une mémoire volatile : dès que vous coupez l'alimentation de l'ordinateur, le rafraîchissement s'arrête, les condensateurs se déchargent, et toutes les données sont perdues.


Le terme "Accès Aléatoire" (Random Access) signifie que l'on peut accéder à n'importe quelle cellule de mémoire directement si l'on connaît sa position, qu'on appelle une adresse, sans avoir à parcourir toutes les précédentes, ce qui garantit une vitesse d'exécution constante.


Maintenant que nous avons un processeur pour executer des calculs et des instructions, et de la mémoire RAM pour les stockers, il faut les relier physiquement pour que les électrons puissent circuler de l'un à l'autre.


On utilise pour cela un circuit imprimé principal, une plaque composée de fibre de verre et de résine sur laquelle sont gravées des pistes de cuivre conductrices : une Carte Mère.


Les pistes de cuivre qui relient les composants entre eux ne sont pas posées au hasard. Elles sont regroupées en faisceaux parallèles qu'on appelle des Bus.


En informatique, un bus est un système de communication partagé qui transfère des données entre les composants. Pour que le processeur puisse utiliser la RAM, il utilise trois types de bus distincts qui fonctionnent de concert :


  • Le Bus d'Adresse : Le processeur envoie sur ce bus la localisation précise (l'adresse binaire) de la case mémoire (des condensateurs) qu'il veut lire ou écrire. La largeur de ce bus (le nombre de fils) détermine la quantité maximale de mémoire que l'ordinateur peut gérer (ex: un bus de 32 fils permet d'adresser 2^32 cases, soit 4 Go de RAM).
  • Le Bus de Données : C'est par ici que transite l'information elle-même (les instructions ou les valeurs numériques). Il est bidirectionnel : les données peuvent aller de la RAM vers le processeur (lecture) ou l'inverse (écriture).
  • Le Bus de Contrôle : Il transporte les ordres de gestion. C'est ici que le processeur envoie un signal électrique signifiant "Je veux LIRE" ou "Je veux ÉCRIRE" des données.

Si nous nous contentions de relier directement le CPU à la RAM, nous aurions un système fonctionnel mais fermé. Or, un ordinateur doit interagir avec des périphériques très variés : clavier, souris, écran, disque dur (pour le stockage long terme), carte réseau, etc.


Ces périphériques fonctionnent à des vitesses très différentes. Le processeur vibre à plusieurs milliards de cycles par seconde (GHz), la RAM est très rapide, mais un clavier ou un disque dur sont infiniment plus lents du point de vue électronique.


On ne peut pas connecter directement un composant lent sur les bus rapides du processeur sans paralyser tout le système.


Pour gérer cette complexité, les ingénieurs ont développé un ensemble de puces intermédiaires soudées sur la carte mère, qu'on appelle des chipsets. Historiquement, un chipset est divisé en deux composants majeurs qui séparent l'ordinateur en deux zones de vitesse : le Northbridge et le Southbridge.


Le Northbridge est situé physiquement au plus près du processeur sur la carte mère pour réduire la distance que les électrons doivent parcourir. Il gère les communications à très haute vitesse. Il connecte :


  • Le Processeur (CPU).
  • La Mémoire Vive (RAM).
  • La Carte Graphique (GPU), qui nécessite un débit de données massif pour l'affichage.

C'est lui qui assure que le processeur reçoive ses données le plus vite possible.


Le Southbridge est relié au Northbridge, mais il s'occupe de tout ce qui est "lent". Il gère les contrôleurs d'entrées/sorties (I/O) :


  • Les ports USB (Clavier, Souris).
  • Les disques de stockage (Disque dur, SSD).
  • Le son et le réseau.

Lorsque vous appuyez sur une touche de votre clavier, le signal électrique part du clavier, traverse le câble USB, arrive au Southbridge, est transmis au Northbridge, qui prévient enfin le processeur qu'une donnée est disponible. Le processeur reçoit alors un signal electrique lui demandant de stoper ce qu'il est entrain de faire (par exemple un calcul via l'ALU) pour prendre en compte cette solicitation externe. Ce message qu'on lui envoi s'appelle donc une "interruption" (en l'occurence interruption matérielle si elle proviens d'un composant physique).


(NB: Dans les processeurs récents, pour gagner encore en vitesse, le Northbridge a disparu en tant que puce séparée ; ses fonctions, notamment le contrôleur mémoire, ont été intégrées directement à l'intérieur de la puce du processeur. Cependant, la logique de séparation entre les périphériques rapides et lents demeure. De plus, un autre type de stockage intermédiaire entre la RAM et les registres a été ajouté a l'intérrieur du CPU pour accélérer les échanges de données, on l'appel le cache, et il est souvent divisé en plusieurs niveaux en fonction de sa rapidité : cache L1/L2/L3/L4).


L'assemblage que nous venons de décrire (CPU + Mémoire + Entrées/Sorties reliés par des Bus) porte un nom. C'est l'Architecture de Von Neumann, décrite par le physicien et mathématicien John von Neumann en 1945.

Schéma architecture von neumannSchéma architecture von neumann

Cette architecture définit le principe fondamental sur lequel reposent la quasi-totalité des ordinateurs, smartphones et tablettes actuels :


  1. Les instructions du programme et les données sont stockées dans la même mémoire (la RAM).
  2. Le processeur va chercher (fetch) les instructions en mémoire une par une.
  3. Il les décode (multiplexeu/décodeur pour selectionner les bons circuits) et les exécute séquentiellement.

Nous avons maintenant une machine avec le matériel (hardware) minimum nécessaire pour être fonctionnelle :


  • Le CPU pour calculer et executer les ordres (instructions).
  • La RAM pour stocker la liste d'actions à exectuer.
  • Le Disque Dur/SSD (via le Southbridge) pour stocker les programmes quand la machine est éteinte (mémoire flash).
  • La Carte Mère et ses Bus pour relier tout le monde.

Cependant cet ordinateur est inerte. Tout seul, il ne fait rien. Pour qu'il s'anime, nous devons lui fournir une suite d'instructions binaires précises pour qu'il sache quoi faire de ses circuits.


Dans le prochain chapitre, nous allons quitter le monde du matériel pour entrer dans celui du logiciel (Software). Nous allons découvrir comment parler à cette machine complexe pour lui instruire quoi faire.

Conçu bénévolement avec ❤️

Vous appréciez le contenu ? N'hésitez pas à soutenir le projet.

Copyright 2025, Le guide du développeur ©, tous droits réservés.