Chapitre 8.1 : Architecture de von Neumann⚓︎
I. Un peu d'histoire⚓︎
A savoir
1. En résumé ....⚓︎
L'architecture des ordinateurs définit la manière dont les différents composants d'un système informatique travaillent ensemble pour exécuter des programmes.
Les premières machines de calcul mécaniques, comme la machine analytique de Charles Babbage au 19ème siècle, ont posé les bases de l'informatique moderne. Babbage a conçu une machine capable de réaliser des calculs complexes en utilisant des cartes perforées pour entrer les instructions. babbage.svg
L'ENIAC (Electronic Numerical Integrator and Computer), construit en 1946, est souvent considéré comme le premier ordinateur électronique généraliste. Il utilisait des tubes à vide et pouvait être reprogrammé pour différentes tâches, bien que cette reprogrammation soit complexe et nécessite des modifications physiques.
En 1945, John von Neumann a proposé un modèle d'architecture d'ordinateur qui est devenu la base de la plupart des ordinateurs modernes. Ce modèle, connu sous le nom d'architecture de von Neumann, repose sur quatre composants principaux.
Au fil des décennies, les architectures d'ordinateurs ont évolué pour inclure des améliorations telles que les architectures multiprocesseurs, les architectures parallèles, et les architectures distribuées. Ces évolutions ont permis d'augmenter la puissance de calcul, la vitesse, et l'efficacité des ordinateurs.
2. Chronologie de l'Architecture des Ordinateurs de l'Antiquité à Nos Jours⚓︎
Antiquité : Abaque et Bouliers⚓︎
Les premiers dispositifs de calcul, comme l'abaque et les bouliers, sont utilisés pour effectuer des opérations arithmétiques simples.
1623 : La Règle à Calcul de Wilhelm Schickard⚓︎
Wilhelm Schickard invente la première machine à calculer mécanique, capable d'effectuer des additions et des soustractions.
1642 : La Pascaline de Blaise Pascal⚓︎
Blaise Pascal invente la Pascaline, une machine à calculer mécanique capable d'effectuer des additions et des soustractions.
1822 : Machine à Différences de Charles Babbage⚓︎
Charles Babbage commence à développer la machine à différences, un dispositif mécanique conçu pour calculer des tables de fonctions polynomiales.
1837 : Machine Analytique de Charles Babbage⚓︎
Charles Babbage conçoit la machine analytique, une machine mécanique capable de réaliser des calculs complexes en utilisant des cartes perforées pour entrer les instructions.
1943 : Colossus⚓︎
Le Colossus, développé par Tommy Flowers, est l'un des premiers ordinateurs électroniques programmables, utilisé pour casser les codes ennemis pendant la Seconde Guerre mondiale.
1946 : ENIAC (Electronic Numerical Integrator and Computer)⚓︎
L'ENIAC est construit et est souvent considéré comme le premier ordinateur électronique généraliste. Il utilise des tubes à vide et peut être reprogrammé pour différentes tâches.
1945 : Architecture de von Neumann⚓︎
John von Neumann propose un modèle d'architecture d'ordinateur qui devient la base de la plupart des ordinateurs modernes. Ce modèle repose sur quatre composants principaux : l'Unité Centrale de Traitement (CPU), la mémoire, les périphériques d'Entrée/Sortie (I/O), et les bus.
Années 1960 : Contrôle des Entrées/Sorties par Processeurs Autonomes⚓︎
Les entrées-sorties, initialement commandées par le CPU, sont désormais sous le contrôle de processeurs autonomes, améliorant l'efficacité et la performance des ordinateurs.
Années 1970-1980 : Évolution vers les Architectures Multiprocesseurs⚓︎
Les ordinateurs commencent à intégrer plusieurs processeurs, permettant des performances accrues pour les tâches parallélisables. Cette évolution nécessite une coordination plus complexe des processeurs.
Années 1990-2000 : Miniaturisation et Performance⚓︎
Les composants des ordinateurs deviennent de plus en plus miniaturisés et performants, permettant des capacités de calcul et de stockage sans précédent.
Aujourd'hui : Ordinateurs Multiprocesseurs et Distribués⚓︎
Les ordinateurs actuels utilisent toujours le modèle de von Neumann mais avec des améliorations significatives, notamment les architectures multiprocesseurs et distribuées, permettant une puissance de calcul élevée et une efficacité accrue.
II. Le modèle d'architecture de von Neumann⚓︎
A savoir
L'architecture de von Neumann est un modèle de conception d'ordinateur proposé par John von Neumann en 1945. Elle repose sur quatre composants principaux :
- L'Unité Centrale de Traitement (CPU) : Le cerveau de l'ordinateur qui exécute les instructions.
- La mémoire principale : Stocke les données et les instructions.
- Les périphériques d'Entrée/Sortie (I/O) : Permettent de communiquer avec le monde extérieur.
- Les bus : Système de communication qui relie les différents composants.
1. L'unité centrale de traitement (CPU) ou processeur⚓︎
Le processeur (CPU) exécute les instructions et effectue les calculs et se compose :
- De l'unité de commande (UC) qui décode les instructions provenant de la mémoire et coordonne l'exécution des opérations en activant les différents circuits.
- De l'unité arithmétique et logique (UAL) qui effectue les opérations arithmétiques (addition, soustraction, etc.) et réalise des opérations logiques (ET, OU, NON, etc.).
- De registres, mémoires ultra-rapides qui stockent temporairement les données et les résultats intermédiaires pouvant être utilisés pour les instructions ultérieures.
Les composants de la CPU (cela évite les allers-retours en mémoire principale. (Exemples : Le registre accumulateur qui garde le résultat des opérations, les registres de données, dans lesquels sont chargés les données sur lesquelles portent les instructions, le registre d'instruction (IR) stocke l'instruction en cours d'exécution ...)
On distingue 2 types d'architectures processeur :
-
L'architecture monoprocesseur : un seul processeur exécute toutes les instructions, ce qui est plus simple à concevoir et à programmer et est adapté aux tâches séquentielles.
-
L'architecture multiprocesseur: plusieurs processeurs travaillent en parallèle, ce qui améliore les performances pour les tâches parallélisables mais nécessite une coordination des processeurs nécessitant une architecture et une programmation plus complexe.
2. La mémoire⚓︎
Elle sert à stocker les instructions et les données nécessaires à l'exécution d'un programme. Il existe plusieurs types de mémoire :
-
RAM (Random Access Memory) : mémoire volatile utilisée pour stocker temporairement les données et les instructions en cours d'utilisation. Elle perd ses données lorsque l'ordinateur est éteint.
-
ROM (Read-Only Memory) : Mémoire non volatile utilisée pour stocker des instructions permanentes, comme le BIOS.
La mémoire de l'ordinateur est composée de milliards de circuits mémoires organisés en groupes de 8, 16, 32, 64 bits ... appelés cases mémoires : leur nombre définit la taille mémoire de l'ordinateur. Chaque case est accessible par une adresse mémoire unique.
Les registres du processeur sont également des cases mémoires, dont l'accès (lecture/écriture) est très rapide. Lorsque l'on parle de processeurs 32 bits, 64 bits, on fait en faire référence à la taille de ces registres.
3. Les périphériques⚓︎
Ils permettent la communication avec l'extérieur (entrées/sorties) et peuvent être de différents types :
- Périphériques d'entrée : Permettent à l'utilisateur d'envoyer des informations à l'ordinateur (ex : clavier, souris).
- Périphériques de sortie : Restituent les informations à l'utilisateur (ex : écran, imprimante).
- Périphériques de stockage : Assurent la sauvegarde des données (ex : clé USB, disque dur externe).
4. Les bus⚓︎
Pour que les données circulent entre les différentes parties d'un ordinateur (mémoire, CPU et les entrées/sorties), il existe des systèmes de communication appelés bus. Il en existe de 3 grands types :
- Le bus d'adresse permet de faire circuler des adresses : par exemple l'adresse d'une donnée lire ou écrire en mémoire (par exemple de la mémoire vers la CPU).
- Le bus de données permet de faire circuler des données.
- Le bus de contrôle permet de spécifier le type d'instruction comme l'écriture ou la lecture d'une donnée en mémoire. Il coordonne les opérations entre les composants.
III. L'architecture aujourd'hui⚓︎
A savoir
Le modèle de von Neumann défini en 1945 est toujours celui utilisé dans les ordinateurs actuels avec des composants de plus en plus miniaturisés et performants. On peut néanmoins noter deux évolutions importantes par rapport au modèle initial :
- les entrées-sorties, initialement commandées par le CPU, sont depuis les années 1960 sous le contrôle de processeurs autonomes.
- les ordinateurs sont multiprocesseurs : ils possèdent plusieurs processeurs (unités séparées ou cœurs multiples à l'intérieur d'une même puce). Cela permet d'atteindre une puissance de calculs élevée sans augmenter la vitesse des processeurs individuels, limitée par les capacités d'évacuation de la chaleur dans des circuits de plus en plus denses.