Aller au contenu

Numérique et sciences informatiques (spécialité) · Première

Modèle de von Neumann : exercices corrigés de Première NSI

Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur

L'essentiel

  • Dans le modèle de von Neumann, une seule mémoire contient à la fois les instructions du programme et les données 5.
  • L'unité arithmétique et logique effectue les opérations de base ; les dispositifs d'entrée-sortie font communiquer la machine avec l'extérieur 5.
  • Exécuter un programme revient à dérouler une séquence d'instructions simples, une par une, en suivant l'adresse de la prochaine instruction 2.
  • Mémoire unifiée : implémentation plus simple, mais performance limitée par le goulot d'étranglement de von Neumann 5.
  • Comme instructions et données sont traitées de la même façon, un programme peut modifier ses propres instructions 5.

Comment utiliser ces exercices

Cette page t'entraîne à dérouler l'exécution d'un programme sur une machine simple et à raisonner sur le modèle d'architecture de von Neumann. Le programme de Première demande justement de savoir dérouler l'exécution d'une séquence d'instructions simples 2. Les exercices vont du plus simple (reconnaître les idées) au plus délicat (suivre une boucle, comprendre une instruction qui en modifie une autre).

Fais chaque exercice sur papier, sans regarder les indices au départ. Ouvre un indice seulement si tu es bloqué depuis plusieurs minutes, puis compare ta démarche à la correction, étape par étape. Si ton résultat diffère, cherche l'étape où vos chemins se séparent : c'est presque toujours là que se cache l'erreur de raisonnement.

Rappel du modèle et de la machine fictive

Pour s'entraîner, on utilise une machine fictive très simple, inventée pour cette page. Sa mémoire est une suite de cases numérotées par leur adresse : chaque case contient soit une instruction, soit un nombre. Un accumulateur noté R garde le résultat courant. Les instructions sont :

Instruction Effet
LOAD a R reçoit le contenu de la case d'adresse a
LOADI n R reçoit le nombre n
ADD a R reçoit R plus le contenu de la case a
SUBI n R reçoit R moins n
STORE a la case a reçoit la valeur de R
JNZ a si R n'est pas nul, la prochaine instruction est celle de l'adresse a
HALT arrêt du programme

Sauf saut, on passe à l'instruction de l'adresse suivante. Les instructions et les données vivent dans la même mémoire, comme dans le modèle de von Neumann.

Les exercices

Exercice 1 Vrai ou faux : reconnaître le modèle

★☆☆Environ 5 min

Pour chaque affirmation, dis si elle est vraie ou fausse, puis justifie en une phrase.

a. Dans le modèle de von Neumann, le programme et les données sont rangés dans deux mémoires distinctes.

b. Le modèle de von Neumann décrit un ordinateur dont le programme est enregistré dans sa mémoire.

c. L'unité arithmétique et logique sert à communiquer avec l'utilisateur, par exemple via l'écran.

d. Le nom du modèle vient d'un mathématicien qui en a rédigé la première description en 1945.

Indice 1

Relis le rappel : combien de mémoires le modèle prévoit-il pour les instructions et les données ?

Indice 2

Distingue le rôle de l'UAL de celui des dispositifs d'entrée-sortie.

Voir la correction pas à pas
  1. Affirmation a : fausse. Le modèle utilise une structure de stockage unique, la mémoire unifiée, pour les instructions et les données 5. Deux mémoires séparées, c'est l'idée de l'architecture de Harvard.

  2. Affirmation b : vraie. On parle d'ordinateur à programme enregistré 5.

  3. Affirmation c : fausse. L'UAL effectue les opérations de base ; ce sont les dispositifs d'entrée-sortie qui permettent de communiquer avec l'extérieur 5.

  4. Affirmation d : vraie. John von Neumann a élaboré en juin 1945 la première description d'un ordinateur à programme stocké en mémoire 5.

Retiens le triplet : mémoire unique, UAL pour calculer, entrées-sorties pour communiquer.

Exercice 2 Une addition en trois instructions

★☆☆Environ 8 min

Sur la machine fictive, la mémoire contient :

Adresse Contenu
0 LOAD 10
1 ADD 11
2 STORE 12
3 HALT
10 7
11 5
12 0

Le programme démarre à l'adresse 0. Quelle valeur contient la case d'adresse 12 à l'arrêt ?

Indice 1

Écris la valeur de R après chaque instruction.

Indice 2

STORE 12 recopie R dans la case 12 : elle ne la modifie pas.

Voir la correction pas à pas
  1. Adresse 0, LOAD 10 : R reçoit le contenu de la case 10, donc R = 7.

  2. Adresse 1, ADD 11 : R reçoit R plus le contenu de la case 11, donc R = 7 + 5 = 12.

  3. Adresse 2, STORE 12 : la case 12 reçoit R, donc elle contient 12.

  4. Adresse 3, HALT : le programme s'arrête avec 12 dans la case 12.

La case 12 contient 12. Remarque que programme et données occupent la même mémoire : les adresses 0 à 3 pour les instructions, 10 à 12 pour les nombres.

Exercice 3 Compter les cases d'une mémoire

★☆☆Environ 7 min

Dans une machine fictive, une adresse s'écrit sur 8 bits. Combien de cases mémoire différentes peut-on désigner ? Si le programme et ses données occupent à eux deux toutes ces cases, que peut-on dire de leur répartition dans le modèle de von Neumann ?

Indice 1

Avec n bits, on peut écrire 2 puissance n motifs différents.

Indice 2

Dans une mémoire unique, rien n'impose de réserver une zone fixe aux instructions.

Voir la correction pas à pas
  1. Une adresse de 8 bits peut prendre autant de valeurs que de motifs de 8 bits : 28=2562^8 = 256 valeurs, donc 256 cases désignables.

  2. Dans le modèle de von Neumann, instructions et données partagent la même mémoire 1 : les 256 cases forment un seul espace.

  3. Si le programme occupe plus de cases, il reste moins de place pour les données, et inversement : c'est le même stock de cases qu'on se partage.

On peut désigner 256 cases, partagées entre instructions et données. Une mémoire séparée pour chacun fixerait la répartition à l'avance.

Exercice 4 Combien d'instructions sont exécutées ?

★★☆Environ 10 min

Voici un programme de la machine fictive.

Adresse Contenu
0 LOADI 10
1 SUBI 1
2 JNZ 1
3 HALT

Le programme démarre à l'adresse 0. Combien d'instructions sont exécutées en tout, HALT compris ?

Indice 1

Suis la valeur de R : quand le saut JNZ 1 est-il pris, et quand ne l'est-il plus ?

Indice 2

La boucle est formée des adresses 1 et 2. Compte combien de fois on la parcourt.

Voir la correction pas à pas
  1. Adresse 0, LOADI 10 : R = 10. C'est 1 instruction exécutée, avant la boucle.

  2. Premier passage dans la boucle : SUBI 1 donne R = 9, puis JNZ 1 saute car R n'est pas nul. Ce passage coûte 2 instructions.

  3. On répète : R vaut successivement 9, 8, … jusqu'à 0. Il y a 10 soustractions, donc 10 passages dans la boucle, soit 10×2=2010 \times 2 = 20 instructions.

  4. Au dixième passage R = 0 : JNZ 1 ne saute pas, on passe à l'adresse 3.

  5. Adresse 3, HALT : 1 instruction de plus.

  6. Total : 1+20+1=221 + 20 + 1 = 22 instructions.

Le programme exécute 22 instructions alors qu'il n'en contient que 4 : une boucle fait réutiliser les mêmes instructions.

Exercice 5 Goulot d'étranglement : compter les accès

★★☆Environ 10 min

On modélise de façon simplifiée un processeur qui ne peut faire qu'un accès à la mémoire par cycle. Chaque instruction exige un accès pour être lue ; de plus, les instructions LOAD, ADD et STORE exigent un accès supplémentaire pour lire ou écrire une donnée. Un programme linéaire (sans boucle) comporte 12 instructions, dont 8 sont des LOAD, ADD ou STORE.

a. Combien de cycles faut-il avec une mémoire unique, comme dans le modèle de von Neumann ?

b. Avec deux mémoires indépendantes, une pour les instructions et une pour les données, accessibles en même temps, combien de cycles au minimum ?

Indice 1

Avec une mémoire unique, les accès aux instructions et aux données se font à la file.

Indice 2

Avec deux mémoires, la lecture de l'instruction suivante peut se faire pendant l'accès à une donnée.

Voir la correction pas à pas
  1. Mémoire unique : 12 accès pour lire les instructions et 8 pour les données, tous séquentiels : 12+8=2012 + 8 = 20 cycles.

  2. Deux mémoires indépendantes : les accès aux données se superposent à ceux des instructions. Les 12 lectures d'instructions imposent le minimum : 12 cycles.

  3. Écart : 20−12=820 - 12 = 8 cycles, soit un gain de 40 pour cent environ dans ce modèle jouet.

  4. Lien avec le cours : avoir une seule mémoire simplifie et allège le matériel mais limite en théorie la performance, ce que l'on nomme le goulot d'étranglement de von Neumann 5.

La réponse à la question a est 20 cycles, contre 12 avec deux mémoires. Ce modèle est très simplifié : les processeurs réels ajoutent des caches pour atténuer ce goulot 5.

Exercice 6 Multiplier par additions répétées

★★★Environ 15 min

Voici un programme de la machine fictive.

Adresse Contenu
0 LOAD 12
1 ADD 10
2 STORE 12
3 LOAD 11
4 SUBI 1
5 STORE 11
6 JNZ 0
7 HALT
10 7
11 6
12 0

Le programme démarre à l'adresse 0. Combien d'instructions sont exécutées en tout, HALT compris ? Quelle valeur la case 12 contient-elle à la fin ?

Indice 1

La case 11 sert de compteur de tours ; la case 12 accumule la somme.

Indice 2

Une fois STORE 11 exécutée, R contient encore la valeur du compteur : c'est elle que teste JNZ 0.

Voir la correction pas à pas
  1. Un tour de boucle exécute les adresses 0 à 6, soit 7 instructions : il ajoute 7 à la case 12 (adresses 0 à 2), puis diminue le compteur de 1 (adresses 3 à 5), puis teste (adresse 6).

  2. Compteur initial : 6. Après chaque tour il vaut 5, 4, 3, 2, 1, puis 0. Le saut est pris tant que R n'est pas nul, donc après les tours 1 à 5, et ne l'est pas au sixième.

  3. Il y a donc 6 tours complets : 6×7=426 \times 7 = 42 instructions.

  4. L'adresse 7, HALT, ajoute 1 instruction : total 42+1=4342 + 1 = 43.

  5. Valeur finale de la case 12 : on a ajouté 7 six fois, donc 6×7=426 \times 7 = 42.

Le programme exécute 43 instructions et laisse 42 dans la case 12 : il calcule le produit de 7 par 6 par additions répétées. Remarque que les cases 10 à 12 (données) et 0 à 7 (instructions) sont dans la même mémoire.

Exercice 7 Un programme qui modifie une instruction

★★★Environ 15 min

Les instructions étant stockées comme des données, un programme peut modifier le champ adresse d'une de ses instructions. On ajoute à la machine fictive l'instruction INCADR a : elle augmente de 1 l'adresse écrite dans l'instruction située à l'adresse a.

La mémoire contient, à l'adresse 1, l'instruction ADD 20, et aux adresses 20, 21, 22 et 23 les nombres 3, 5, 2 et 6. R vaut 0 au départ. Une boucle exécute quatre fois la suite : « instruction de l'adresse 1, puis INCADR 1 ».

a. Quelle valeur contient R à la fin ?

b. Que contient alors l'instruction de l'adresse 1 ?

c. Pourquoi cette technique est-elle possible dans le modèle de von Neumann ?

Indice 1

Écris, pour chaque tour, l'instruction de l'adresse 1 telle qu'elle est au moment de son exécution.

Indice 2

Pense à ce que le modèle dit de la manière de traiter instructions et données.

Voir la correction pas à pas
  1. Tour 1 : l'adresse 1 contient ADD 20, donc R = 0 + 3 = 3 ; puis INCADR 1 la transforme en ADD 21.

  2. Tour 2 : ADD 21 donne R = 3 + 5 = 8 ; l'instruction devient ADD 22.

  3. Tour 3 : ADD 22 donne R = 8 + 2 = 10 ; l'instruction devient ADD 23.

  4. Tour 4 : ADD 23 donne R = 10 + 6 = 16 ; l'instruction devient ADD 24.

  5. Réponse a : R = 16, somme des quatre nombres. Réponse b : l'adresse 1 contient ADD 24, qui désigne désormais une case hors du tableau.

  6. Réponse c : le modèle gère les instructions de la même façon que les données, donc un programme stocké en mémoire peut facilement modifier ses instructions, notamment le champ adresse pour créer des boucles 5.

Le résultat est 16. Cette astuce parcourt un tableau avec une seule instruction réécrite à chaque tour. Les processeurs modernes ont plutôt recours aux registres d'index et à l'adressage indirect 5, et prennent des précautions contre l'injection d'instructions 5.

Les questions qu'on se pose

Les ordinateurs actuels respectent-ils encore l'architecture de von Neumann ?

Oui, en grande partie : elle est à la base de la plupart des ordinateurs modernes 5. On y ajoute toutefois des éléments, notamment plusieurs niveaux de mémoire avec des caches 5. Comme certains caches sont séparés pour les instructions et les données, on peut aussi voir ces machines comme des architectures de Harvard modifiées 5.

Que faut-il savoir faire à l'examen sur ce chapitre ?

Le programme de Première porte sur le modèle d'architecture et demande de dérouler l'exécution d'une séquence d'instructions simples 2. Entraîne-toi donc à tenir un tableau d'état (accumulateur, mémoire, adresse de l'instruction en cours) comme dans les exercices 2, 4 et 6 : c'est la compétence la plus souvent testée.

Pourquoi parle-t-on de goulot d'étranglement ?

Parce que la mémoire est unique : instructions et données doivent passer par le même chemin, ce qui limite en théorie la vitesse de la machine 5. L'exercice 5 en donne une image chiffrée, avec un modèle volontairement simplifié.

Sources

  1. Modèle d'architecture de von Neumann - Ressources pédagogiques NSI Première, Éduscol / Ministère de l'Éducation nationale. Consulté le 6 novembre 2026.
  2. Vademecum - Sciences numériques et technologie, Numérique et Sciences Informatiques, Éduscol / Ministère de l'Éducation nationale. Consulté le 6 novembre 2026.
  3. Calcul Haute Performance - Architectures et modèles de programmation, CNRS - Groupe Calcul. Consulté le 6 novembre 2026.
  4. Introduction à l'Informatique - Cours 2 : Architecture, CNRS - Laboratoire de Mathématiques Fondamentales. Consulté le 6 novembre 2026.
  5. Architecture de von Neumann, Wikipédia. Consulté le 6 novembre 2026.
  6. John von Neumann, Wikipédia. Consulté le 6 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page