Tech●●●●●Difficulty 3 of 5

Pourquoi les programmes vivent-ils dans la même mémoire que les données qu'ils traitent ?

Reconfigurer l'ENIAC pour un nouveau problème pouvait prendre trois semaines. La solution a été d'arrêter de le recâbler, et de stocker le programme comme une donnée.

▶ Lancer l'histoire

Les premiers ordinateurs comme l'ENIAC n'étaient pas vraiment programmés, mais reconstruits : pour changer ce qu'il calculait, des ingénieurs déplaçaient des interrupteurs et rebranchaient des câbles à la main. Installer et déboguer un seul programme pouvait prendre trois semaines. La solution a été radicale : arrêter de traiter le programme comme du câblage, et le stocker en mémoire comme une donnée, dans la même mémoire que les nombres qu'il traite.

Cette idée s'appelle l'ordinateur à programme enregistré, et l'architecture construite autour d'elle porte le nom du mathématicien John von Neumann, qui en 1945 a diffusé un rapport la décrivant. Mais le mérite est mal réparti. Eckert et Mauchly, qui construisaient l'EDVAC, avaient pratiquement fini de concevoir une machine à programme enregistré avant même d'en discuter avec von Neumann ; un collègue de von Neumann a dit plus tard qu'il pouvait « bien être appelé la sage-femme », pas l'inventeur, de l'idée.

La première machine à vraiment exécuter un programme enregistré était petite et volontairement simple : le Manchester Baby, construit en 1948 par Frederic Williams, Tom Kilburn et Geoff Tootill. Son tout premier programme, long de seulement 17 instructions, a tourné pendant 52 minutes et effectué environ 3,5 millions d'opérations pour trouver un seul nombre, à une vitesse d'environ 1 100 instructions par seconde, prouvant que stocker un programme en mémoire fonctionnait réellement.

Une grande armoire métallique couverte de rangées de lampes à vide et de câblage, une reconstitution du Manchester Baby, avec un écran à tube cathodique visible.
Une reconstitution en état de marche du Manchester Baby, qui a fait tourner le premier programme enregistré le 21 juin 1948.Photo: Parrot of Doom · CC BY-SA 3.0

Stocker instructions et données ensemble avait toutefois un coût. Comme elles partagent la même mémoire et le même chemin vers le processeur, la machine ne peut pas aller chercher une instruction et une donnée au même instant. Cet embouteillage est devenu ce qu'on appelle le goulot d'étranglement de von Neumann, et il façonne encore la conception de tous les ordinateurs modernes.

Quiz

0/3

  1. 1.Quel problème le fait de stocker un programme en mémoire, plutôt que de le câbler dans la machine, a-t-il vraiment résolu ?
  2. 2.Pourquoi attribuer l'« architecture de von Neumann » à von Neumann seul est-il considéré comme inexact ?
  3. 3.Pourquoi un ordinateur de von Neumann ne peut-il pas aller chercher une instruction et une donnée au même instant ?

Récap

Stocker instructions et données dans la même mémoire rend un ordinateur reprogrammable en réécrivant la mémoire, mais comme instructions et données partagent un seul chemin vers le processeur, elles ne peuvent pas circuler en même temps : c'est le goulot d'étranglement de von Neumann.

Le fait surprenant · Bien que l'architecture porte le nom de John von Neumann, Eckert et Mauchly avaient pratiquement fini de concevoir un ordinateur à programme enregistré avant même d'en discuter avec lui.

Sources (2)

Pas de source, pas d'affirmation. Chacun des 14 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]Von Neumann architecture · Wikipedia
  2. [2]Manchester Baby · Wikipedia
D'autres leçons · 💻 Tech (3) Toutes les leçons « Tech » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗