Architecture des ordinateurs et modèle de von Neumann
Première · NSI · Architectures matérielles et systèmes
Architectures matérielles et systèmes
Le modèle de von Neumann
Une idée de 1945, toujours valable
Avant 1945, une machine à calculer était câblée pour une tâche : changer de calcul signifiait rebrancher physiquement des fils. En 1945, John von Neumann formalise une architecture révolutionnaire dans laquelle le programme est stocké en mémoire, exactement comme les données. Changer de tâche ne demande plus de tournevis : il suffit de charger un autre programme.
Du smartphone au superordinateur, l'écrasante majorité des machines d'aujourd'hui suivent encore ce modèle, dit architecture séquentielle : les instructions sont exécutées les unes après les autres, dans l'ordre.
| Composant | Rôle | Exemples / détails |
|---|---|---|
| Unité arithmétique et logique (UAL) | Effectue les calculs : additions, comparaisons, opérations logiques | C'est le « bras » de la machine, construit à partir de portes logiques |
| Unité de commande (ou de contrôle) | Lit les instructions, les décode et pilote les autres composants | Elle contient le compteur ordinal, qui mémorise l'adresse de la prochaine instruction |
| Mémoire | Stocke à la fois le programme et les données | Mémoire vive (RAM) : rapide, modifiable, VOLATILE. Mémoire morte (ROM) : persistante, non modifiable |
| Dispositifs d'entrée / sortie | Font communiquer la machine avec le monde extérieur | Entrées : clavier, souris, capteurs. Sorties : écran, imprimante. Le disque dur fait les deux |
| Bus | Transportent l'information entre les composants | Bus d'adresses (où ?), bus de données (quoi ?), bus de commande (quelle opération ?) |
Le cycle d'exécution d'une instruction
Le processeur répète inlassablement le même cycle en trois temps :
1. Charger (fetch) — l'unité de commande lit en mémoire l'instruction située à l'adresse indiquée par le compteur ordinal, et la place dans le registre d'instruction.
2. Décoder (decode) — elle analyse cette suite de bits pour identifier l'opération demandée et ses opérandes.
3. Exécuter (execute) — l'UAL réalise l'opération ; le compteur ordinal est incrémenté pour désigner l'instruction suivante.
Le processeur ne comprend que le langage machine : des suites de bits. Comme les écrire à la main serait inhumain, on utilise le langage assembleur, qui remplace chaque instruction binaire par un mot-clé lisible (ADD, LOAD, JMP). C'est une simple traduction, instruction par instruction : l'assembleur reste très éloigné de Python et dépend du modèle de processeur.
Architectures matérielles et systèmes
Portes logiques et circuits
Du transistor à la porte logique
Tout en bas de l'édifice, il n'y a que des transistors : de minuscules interrupteurs commandés par une tension électrique. Fermé ou ouvert, courant ou pas de courant — d'où les deux seules valeurs manipulées, 0 et 1.
En assemblant quelques transistors, on construit des portes logiques, briques élémentaires de tous les circuits. Un processeur moderne en contient des milliards, mais elles se ramènent toutes à une poignée de types différents.
| A | B | NON A | A ET B | A OU B | A OU-EXCLUSIF B |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
Combiner les portes : le demi-additionneur
Additionnons deux bits A et B. En binaire : 0+0 = 0 ; 0+1 = 1 ; 1+0 = 1 ; et 1+1 = 10, c'est-à-dire un résultat de 0 avec une retenue de 1.
Compare cette colonne des sommes avec la table ci-dessus : elle est exactement celle du OU-EXCLUSIF. Et la retenue ne vaut 1 que dans le seul cas où A et B valent tous les deux 1 : c'est la table du ET. D'où le circuit, appelé demi-additionneur :
Somme = A OU-EXCLUSIF B
Retenue = A ET B
Deux portes, et la machine sait additionner. En les mettant bout à bout, on additionne des nombres de 8, 32 ou 64 bits : c'est ainsi qu'est bâtie l'UAL.
Exercices corrigés
À quoi servent les bus dans un ordinateur ?
- A.À stocker durablement les programmes et les données de l'utilisateur
- B.À convertir le langage Python en instructions du langage machine
- C.À transporter les informations entre le processeur, la mémoire et les périphériquesBonne réponse
- D.À refroidir activement le processeur pour éviter toute surchauffe
Réponse : C — À transporter les informations entre le processeur, la mémoire et les périphériques
Un bus est un ensemble de conducteurs qui véhiculent l'information entre les composants. On en distingue trois : le bus d'adresses (à quel endroit de la mémoire ?), le bus de données (quelle information ?) et le bus de commande (lecture ou écriture ?). Le stockage est le rôle de la mémoire, et la traduction celui de l'interpréteur ou du compilateur.
Dans quel ordre se déroulent les trois phases du cycle d'exécution d'une instruction ?
- A.Décoder, charger, exécuter
- B.Exécuter, charger, décoder
- C.Charger, décoder, exécuterBonne réponse
- D.Charger, exécuter, décoder
Réponse : C — Charger, décoder, exécuter
Le processeur commence forcément par CHARGER l'instruction depuis la mémoire (à l'adresse contenue dans le compteur ordinal), puis la DÉCODE pour identifier l'opération demandée, et enfin l'EXÉCUTE. L'ordre est logique : on ne peut pas décoder une instruction qu'on n'a pas encore lue, ni exécuter une instruction qu'on n'a pas encore comprise. Ce cycle se répète pour chaque instruction du programme.
Que contient le compteur ordinal (compteur de programme) ?
- A.Le nombre d'instructions déjà exécutées depuis le démarrage
- B.Le résultat du dernier calcul effectué
- C.Le nombre de cycles d'horloge par seconde
- D.L'adresse mémoire de la prochaine instruction à exécuterBonne réponse
Réponse : D — L'adresse mémoire de la prochaine instruction à exécuter
Le compteur ordinal est un registre qui mémorise OÙ se trouve la prochaine instruction : c'est une adresse mémoire, pas un décompte. Il est incrémenté à chaque instruction, et les instructions de saut (JMP) fonctionnent justement en y écrivant directement une nouvelle adresse. Le résultat du dernier calcul est dans l'accumulateur, et le nombre de cycles par seconde est la fréquence d'horloge.
Une fréquence d'horloge de 3 GHz signifie que le processeur effectue :
- A.3 milliers de cycles par seconde
- B.3 milliards de cycles par secondeBonne réponse
- C.3 millions d'instructions par seconde
- D.3 cycles par milliseconde
Réponse : B — 3 milliards de cycles par seconde
Le préfixe giga vaut un milliard : 3 GHz correspond donc à 3 milliards de cycles d'horloge par seconde. Attention à la nuance de vocabulaire : un cycle n'est pas une instruction. Certaines instructions demandent plusieurs cycles, et les processeurs modernes en traitent plusieurs en parallèle. Le kilo vaut mille et le méga un million.
Quelle affirmation sur le langage assembleur est correcte ?
- A.C'est un langage de haut niveau, aussi portable que Python
- B.Il est exécuté directement par le processeur, sans aucune traduction
- C.Il permet d'écrire des programmes sans se soucier du modèle de processeur
- D.C'est une transcription lisible du langage machine, propre à une famille de processeursBonne réponse
Réponse : D — C'est une transcription lisible du langage machine, propre à une famille de processeurs
L'assembleur remplace chaque instruction binaire par un mot-clé mnémonique (ADD, LOAD, JMP), le plus souvent une instruction assembleur pour une instruction machine. Il reste donc de très bas niveau et dépend étroitement du jeu d'instructions du processeur visé : un programme assembleur écrit pour une famille de processeurs ne tourne pas sur une autre. Il doit en outre être traduit en binaire avant exécution.
Pourquoi les registres du processeur sont-ils utilisés pour les calculs plutôt que la mémoire vive ?
- A.Parce qu'ils sont situés dans le processeur et sont donc bien plus rapides d'accèsBonne réponse
- B.Parce qu'ils peuvent contenir beaucoup plus de données que la RAM
- C.Parce qu'ils conservent leur contenu même hors tension
- D.Parce qu'ils sont les seuls à pouvoir stocker des nombres négatifs
Réponse : A — Parce qu'ils sont situés dans le processeur et sont donc bien plus rapides d'accès
Les registres sont gravés directement sur la puce du processeur : y accéder ne demande aucun trajet sur les bus, ce qui les rend bien plus rapides que la mémoire vive. Leur inconvénient est leur nombre, très réduit — quelques dizaines tout au plus, contre des milliards d'octets en RAM. Ils sont eux aussi volatils, et le codage des nombres négatifs n'a rien à voir avec l'endroit où on les range.
Dans un demi-additionneur, que valent la somme et la retenue pour A = 1 et B = 1 ?
- A.Somme = 1, retenue = 0
- B.Somme = 2, retenue = 0
- C.Somme = 0, retenue = 1Bonne réponse
- D.Somme = 1, retenue = 1
Réponse : C — Somme = 0, retenue = 1
En binaire, 1 + 1 s'écrit 10 : le bit de poids faible (la somme) vaut 0 et le bit de poids fort (la retenue) vaut 1 — exactement comme lorsque tu poses 7 + 5 en base 10 et que tu écris 2 en retenant 1. Le circuit le réalise avec deux portes : Somme = A XOR B (qui vaut bien 0 ici, les entrées étant identiques) et Retenue = A ET B (qui vaut 1, les deux entrées étant à 1). Une somme ne peut jamais valoir 2 : c'est un seul bit.
Combien de lignes comporte la table de vérité d'un circuit à 3 entrées ?
- A.3
- B.6
- C.9
- D.8Bonne réponse
Réponse : D — 8
Chaque entrée peut prendre 2 valeurs indépendamment des autres : le nombre de combinaisons est donc 2 × 2 × 2 = 2 puissance 3 = 8 lignes (000, 001, 010, 011, 100, 101, 110, 111). Répondre 6 revient à multiplier 3 par 2 au lieu d'élever 2 à la puissance 3. Retiens la formule générale : n entrées donnent 2 puissance n lignes — 4 entrées en donneraient déjà 16.
Un programme assembleur exécute : LOAD #7, puis ADD #5, puis SUB #4, puis STORE 100, puis HALT. Que contient la case mémoire d'adresse 100 à la fin, et combien de cycles charger-décoder-exécuter ont été réalisés ?
- A.16 et 4 cycles
- B.8 et 4 cycles
- C.12 et 5 cycles
- D.8 et 5 cyclesBonne réponse
Réponse : D — 8 et 5 cycles
Suis l'accumulateur pas à pas : LOAD #7 y place 7 ; ADD #5 donne 7 + 5 = 12 ; SUB #4 donne 12 − 4 = 8 ; STORE 100 recopie cette valeur 8 dans la case mémoire 100. Le contenu final est donc 8, et non 12 (qui serait la valeur avant la soustraction) ni 16 (7 + 5 + 4, en oubliant que SUB soustrait). Pour les cycles, compte bien TOUTES les instructions du programme : HALT en est une, qu'il faut charger, décoder et exécuter comme les autres. Cinq instructions, donc cinq cycles.
Dans le modèle de von Neumann, quel composant effectue les calculs ?
- A.L'unité arithmétique et logique (UAL)Bonne réponse
- B.L'unité de commande
- C.La mémoire vive
- D.Le bus de données
Réponse : A — L'unité arithmétique et logique (UAL)
L'UAL est le « bras » de la machine : c'est elle qui additionne, compare et réalise les opérations logiques. L'unité de commande, elle, ne calcule rien : elle lit les instructions, les décode et pilote les autres composants — c'est le chef d'orchestre, pas le musicien. La mémoire stocke, les bus transportent.
Quelle affirmation décrit correctement la mémoire vive (RAM) ?
- A.Elle conserve les données même après l'extinction de l'ordinateur
- B.Elle est rapide mais volatile : son contenu disparaît quand l'alimentation est coupéeBonne réponse
- C.Elle ne peut être que lue, jamais écrite
- D.Elle est située à l'intérieur du processeur, comme les registres
Réponse : B — Elle est rapide mais volatile : son contenu disparaît quand l'alimentation est coupée
La RAM est une mémoire de travail : rapide, accessible en lecture ET en écriture, mais volatile — tout son contenu s'efface dès qu'elle n'est plus alimentée. C'est pourquoi il faut enregistrer son travail sur un support de stockage persistant (disque, mémoire flash). La mémoire en lecture seule est la ROM, et les registres, eux, se trouvent bien dans le processeur.
Que vaut la sortie de la porte ET pour les entrées A = 1 et B = 1 ?
- A.0
- B.2
- C.Indéterminé
- D.1Bonne réponse
Réponse : D — 1
La porte ET renvoie 1 uniquement lorsque ses deux entrées valent 1 : c'est exactement le cas ici, la sortie vaut donc 1. Répondre 2 revient à faire une addition arithmétique : une porte logique ne produit jamais autre chose qu'un 0 ou un 1. Attention à ne pas confondre avec le OU-EXCLUSIF, qui vaudrait 0 dans cette situation.
S'entraîner sur ce chapitre
Ce chapitre compte 36 exercices corrigés dans l'application, avec le suivi de ta progression.
Commencer les exercices