Definition

goulot d'étranglement de von Neumann

Le goulot d'étranglement de von Neumann est une restriction de capacité liée à l'architecture standard des ordinateurs personnels.

Il vient du nom de John von Neumann, qui a formulé la théorie sur laquelle repose l'architecture des ordinateurs modernes. Les premiers ordinateurs recevaient les programmes et données à traiter pendant qu'ils étaient en fonctionnement. Von Neumann a eu une idée qui allait donner naissance à nos ordinateurs standard actuels, à programme enregistré, dont l'architecture est dite « de von Neumann ». Selon cette architecture, programmes et données sont stockés en mémoire ; le processeur et la mémoire sont distincts et les données se déplacent entre les deux. Dans cette configuration, la latence est inévitable.

Par ailleurs, ces dernières années, la vitesse des processeurs s'est considérablement accrue. Les améliorations de la mémoire ont, quant à elles, surtout touché la densité, c'est-à-dire la capacité à stocker davantage de données dans un espace plus restreint, plutôt que le débit de transfert. Plus les vitesses augmentaient, plus le processeur restait inactif dans l'attente des données en provenance de la mémoire. Même un processeur qui fonctionne très bien à haute vitesse reste limité par le débit dans le goulot d'étranglement. Souvent, un processeur plus rapide n'a pour effet que d'augmenter le temps d'inactivité.

On considère souvent le goulot d'étranglement de von Neumann comme un problème ne pouvant être résolu qu'en apportant des modifications significatives aux architectures des ordinateurs ou des processeurs.

Il existe plusieurs moyens de remédier au goulot d'étranglement de von Neumann :

  • Mise en cache : stockage des données d'usage fréquent dans une zone spéciale, généralement la mémoire vive (RAM), afin de les rendre plus facilement accessibles que si elles résidaient dans la mémoire principale.
  • Prélecture : déplacement de certaines données en cache avant même qu'elles soient demandées, de façon à en accélérer l'accès le moment voulu.
  • Multithreading : gestion simultanée de plusieurs demandes dans des threads distincts.
  • Nouveaux types de mémoire vive (RAM, Random Access Memory) : par exemple la DDR SDRAM, qui permet le transfert des données sur les deux fronts, montant et descendant, de l'horloge système et pas uniquement sur le front montant, pour potentiellement doubler le débit.
  • RAMBUS : sous-système de mémoire composé d'une mémoire vive (RAM), d'un contrôleur de RAM et du bus (chemin) de connexion entre d'une part la RAM et d'autre part le microprocesseur et les périphériques, dans l'ordinateur qui l'utilise.
  • Traitement en mémoire (PIM, Processing In Memory) : intégration d'un processeur et d'une mémoire dans un même microcircuit.
Cette définition a été mise à jour en avril 2018

Pour approfondir sur Serveurs et Hardware