09 - Architecture

Mise en situation

Quand vous lancez un programme Python, que se passe-t-il concrètement dans la machine ? Le code est stocké quelque part, des calculs sont effectués, des résultats sont affichés à l’écran. Pour comprendre ce cheminement, il faut connaître l’architecture interne d’un ordinateur, c’est-à-dire les composants qui le constituent et la façon dont ils communiquent entre eux.

Le modèle de Von Neumann

En 1945, le mathématicien John von Neumann publie un rapport décrivant l’architecture que devrait avoir tout calculateur universel. Cette architecture, connue sous le nom de modèle de Von Neumann, reste le fondement de la quasi-totalité des ordinateurs actuels.

L’idée centrale est que le programme et les données sont stockés ensemble dans la mémoire. Avant Von Neumann, les programmes étaient câblés physiquement (cartes perforées, tableaux de connexions). L’innovation décisive est de les enregistrer en mémoire sous forme de nombres, au même titre que les données. Cela permet de changer de programme sans modifier le matériel.

Le modèle décompose l’ordinateur en quatre parties reliées par des bus (canaux de communication) :

Schéma du modèle de Von Neumann (source : Interstices.info)

Schéma du modèle de Von Neumann (source : Interstices.info)

Les quatre composants

Le processeur (CPU) contient deux sous-unités :

  • l’unité arithmétique et logique (UAL) effectue les calculs (additions, comparaisons, opérations logiques ET, OU, NON) ;
  • l’unité de commande lit les instructions en mémoire, les décode et coordonne les autres composants pour les exécuter.

La mémoire stocke les instructions du programme et les données qu’il manipule. On distingue la mémoire vive (rapide, volatile) et la mémoire de masse (lente, persistante). Cette distinction est détaillée plus bas.

Les entrées-sorties permettent à l’ordinateur de communiquer avec l’extérieur : clavier, souris, écran, imprimante, réseau.

Les bus relient ces composants entre eux. Il en existe trois types : le bus de données (transporte les valeurs), le bus d’adresse (indique l’emplacement mémoire visé) et le bus de commande (transmet les ordres : lire, écrire, etc.).

Communication entre les composants par les trois types de bus

Communication entre les composants par les trois types de bus

Évolutions du modèle

Le modèle original a évolué sur deux points :

  • les entrées-sorties sont désormais gérées par des contrôleurs autonomes, ce qui permet au processeur de ne pas attendre la fin d’une opération d’écriture sur disque, par exemple ;
  • les processeurs modernes contiennent plusieurs cœurs capables d’exécuter des instructions en parallèle, ce qui augmente la puissance sans augmenter la fréquence.
Le modèle de Von Neumann aujourd’hui (source : Interstices.info)

Le modèle de Von Neumann aujourd’hui (source : Interstices.info)

Le processeur

Le processeur (CPU, Central Processing Unit) est le composant qui exécute les instructions. C’est le « cerveau » de l’ordinateur.

Structure interne

Un processeur contient :

  • des registres : petites mémoires ultrarapides (quelques dizaines) qui stockent temporairement les données en cours de traitement. Parmi les registres importants :
    • le compteur ordinal (PC, Program Counter) contient l’adresse de la prochaine instruction à exécuter ;
    • le registre d’instruction (IR) contient l’instruction en cours de décodage ;
    • l’accumulateur stocke les résultats intermédiaires des calculs ;
  • l’UAL qui effectue les opérations arithmétiques et logiques ;
  • le séquenceur qui coordonne l’exécution des instructions au rythme d’une horloge.
Représentation simplifiée des éléments constituant le processeur

Représentation simplifiée des éléments constituant le processeur

Le cycle fetch-decode-execute

Le processeur exécute chaque instruction en trois étapes qui se répètent indéfiniment tant que le programme tourne :

Étape 1 : Fetch (charger). Le processeur lit en mémoire l’instruction dont l’adresse est contenue dans le compteur ordinal (PC). Cette instruction est copiée dans le registre d’instruction (IR). Le compteur ordinal est incrémenté pour pointer vers l’instruction suivante.

Étape 2 : Decode (décoder). Le séquenceur analyse l’instruction contenue dans IR et détermine l’opération à effectuer et les données concernées.

Étape 3 : Execute (exécuter). L’UAL exécute l’opération (calcul, comparaison, transfert de données). Le résultat est placé dans un registre ou écrit en mémoire.

Prenons un exemple concret. Supposons que la mémoire contient l’instruction « additionner le contenu de l’adresse 100 avec le contenu de l’adresse 104 et stocker le résultat à l’adresse 108 » :

Cycle 1 :
  Fetch   → Le PC vaut 0. On lit l'instruction à l'adresse 0 → IR = "LOAD 100"
  Decode  → Il faut charger la valeur à l'adresse 100 dans l'accumulateur
  Execute → Accumulateur ← contenu de l'adresse 100 (par exemple, 42)

Cycle 2 :
  Fetch   → Le PC vaut 1. On lit l'instruction à l'adresse 1 → IR = "ADD 104"
  Decode  → Il faut additionner la valeur à l'adresse 104 à l'accumulateur
  Execute → Accumulateur ← 42 + contenu de l'adresse 104 (par exemple, 42 + 15 = 57)

Cycle 3 :
  Fetch   → Le PC vaut 2. On lit l'instruction à l'adresse 2 → IR = "STORE 108"
  Decode  → Il faut écrire l'accumulateur à l'adresse 108
  Execute → Contenu de l'adresse 108 ← 57

Ce cycle se répète des milliards de fois par seconde. Un processeur cadencé à 3 GHz exécute environ trois milliards de cycles par seconde.

La fréquence d’horloge

Le processeur est cadencé par une horloge interne : un cristal de quartz qui émet des impulsions régulières. La fréquence mesure le nombre d’impulsions par seconde, exprimée en hertz. Un processeur à 3 GHz reçoit 3 milliards d’impulsions par seconde. À chaque impulsion, le processeur avance d’une étape dans le cycle fetch-decode-execute.

Informations système montrant la fréquence du processeur et la quantité de RAM

Informations système montrant la fréquence du processeur et la quantité de RAM

Les catégories d’instructions

Les instructions que le processeur sait exécuter se regroupent en quatre familles :

CatégorieExemples
Transfert de donnéesCharger une valeur depuis la mémoire, stocker un résultat
ArithmétiqueAddition, soustraction, multiplication, division
LogiqueET, OU, NON, OU exclusif, comparaisons
ContrôleSaut conditionnel (si… alors aller à…), appel de fonction

La mémoire

La mémoire stocke les programmes et les données. Il existe plusieurs types de mémoire, qui se distinguent par leur vitesse, leur capacité et leur persistance.

La hiérarchie des mémoires

Plus une mémoire est rapide, plus elle est coûteuse et donc petite. Cela conduit à une organisation en couches :

TypeVitesseCapacité typiqueVolatile ?Rôle
RegistresUltrarapide (< 1 ns)Quelques dizainesOuiDonnées en cours de calcul
Cache L1Très rapide (~1 ns)64 KoOuiInstructions et données fréquentes
Cache L2Rapide (~5 ns)256 Ko à 1 MoOuiTampon entre L1 et RAM
Cache L3Rapide (~10 ns)4 à 32 MoOuiPartagé entre les cœurs
RAMMoyenne (~50 ns)8 à 32 GoOuiProgramme en cours d’exécution
SSDLent (~100 µs)256 Go à 2 ToNonStockage permanent
Disque durTrès lent (~10 ms)1 à 4 ToNonStockage de masse

Principe. Le processeur cherche d’abord la donnée dans le cache L1. Si elle n’y est pas, il la cherche en L2, puis en L3, puis en RAM. Plus on descend dans la hiérarchie, plus l’accès est lent mais plus la capacité est grande.

Mémoire vive (RAM)

La RAM (Random Access Memory) est la mémoire de travail de l’ordinateur. Elle stocke les programmes en cours d’exécution et leurs données. Elle est volatile : son contenu disparaît dès que l’ordinateur est éteint.

Une barrette de RAM (à gauche) et des éléments de ROM (à droite)

Une barrette de RAM (à gauche) et des éléments de ROM (à droite)

Mémoire de masse

La mémoire de masse est persistante : elle conserve les données même sans alimentation électrique. Les principaux supports sont :

  • le disque dur (HDD), qui utilise des plateaux magnétiques rotatifs. Les accès sont lents car le bras de lecture doit se déplacer physiquement ;
  • le SSD (Solid State Drive), qui utilise de la mémoire flash (sans pièce mobile). Il est plus rapide, plus silencieux et plus résistant aux chocs qu’un disque dur.
Circuit électronique d’un SSD

Circuit électronique d’un SSD

La carte mère

La carte mère est le circuit imprimé principal de l’ordinateur. Elle accueille le processeur (dans un socket), la RAM (dans des slots), et relie tous les composants entre eux par des bus. Elle intègre aussi un chipset qui coordonne les échanges de données, ainsi que des connecteurs pour les périphériques (USB, réseau, écran).

Les composants d’un ordinateur

Les composants d’un ordinateur

La loi de Moore

En 1965, Gordon Moore observe que le nombre de transistors sur une puce double environ tous les deux ans. Cette observation empirique, connue sous le nom de loi de Moore, s’est vérifiée pendant plus de cinquante ans : le premier microprocesseur (Intel 4004, 1971) contenait 2 300 transistors ; un processeur actuel en contient plusieurs milliards.

Évolution du nombre de transistors par processeur (source : education.mrsec.wisc.edu)

Évolution du nombre de transistors par processeur (source : education.mrsec.wisc.edu)

Cette croissance exponentielle a permis de fabriquer des ordinateurs toujours plus puissants et moins coûteux. Cependant, la miniaturisation approche des limites physiques (taille des atomes, dissipation thermique), ce qui a conduit les fabricants à multiplier les cœurs plutôt qu’à augmenter la fréquence.

Résumé

ConceptCe qu’il faut retenir
Modèle de Von NeumannProcesseur + mémoire + E/S + bus ; programme enregistré en mémoire
Processeur (CPU)Composé de l’UAL, de l’unité de commande, de registres
Cycle fetch-decode-executeCharger l’instruction, la décoder, l’exécuter ; se répète indéfiniment
Compteur ordinal (PC)Registre contenant l’adresse de la prochaine instruction
RAMMémoire rapide, volatile, pour les programmes en cours
Mémoire de masseStockage persistant (SSD, disque dur)
Mémoire cache (L1, L2, L3)Mémoire rapide intégrée au processeur, accélère les accès
BusCanaux de données, d’adresse et de commande reliant les composants
Loi de MooreLe nombre de transistors double environ tous les deux ans

Activité

Faire l’activité suivante : https://quizlet.com/fr/413749500/quels-sont-les-composants-de-mon-ordinateur-flash-cards/

On fera dans l’ordre :