Architecture de von Neumann vs Harvard : les différences expliquées
Dans une architecture de von Neumann, les instructions et les données partagent une même mémoire et un même bus : le processeur ne peut donc pas lire une instruction et accéder à une donnée au même moment. Cette limite est le goulot d'étranglement de von Neumann. Dans une architecture Harvard, les instructions et les données résident dans des mémoires séparées avec des bus séparés, si bien que les deux sont accessibles simultanément. La plupart des CPU modernes combinent les deux : la mémoire principale est unifiée, mais le cache L1 est divisé en caches d'instructions et de données séparés. On parle d'architecture Harvard modifiée.
| Critère | Von Neumann | Harvard |
|---|---|---|
| Mémoire | Une seule mémoire contient à la fois les instructions et les données | Des mémoires séparées pour les instructions et pour les données |
| Bus | Un bus partagé | Des bus séparés |
| Lecture des instructions et accès aux données | En concurrence pour le même bus (goulot d'étranglement de von Neumann) | Peuvent avoir lieu simultanément |
| Débit | Plus faible pour une même vitesse de bus | Plus élevé, grâce aux accès parallèles |
| Flexibilité | Élevée : les programmes sont des données, ils peuvent donc être chargés, générés et modifiés facilement | Plus faible : le code et les données sont séparés |
| Répartition de la mémoire | Répartition souple entre code et données | Tailles fixes pour chaque mémoire |
| Complexité matérielle | Plus simple | Plus complexe : deux mémoires et deux bus |
| Composants typiques | Ordinateurs généralistes | Processeurs de signal numérique et de nombreux microcontrôleurs (comme les AVR et les PIC) |
| Dans les CPU modernes | Mémoire principale unifiée | Caches L1 d'instructions et de données séparés (Harvard modifiée) |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.