Laquelle est la meilleure ?
Chaque architecture a ses avantages : Toutes choses égales par ailleurs, le modèle Harvard a l’avantage en termes de performances. Le modèle Von Neumann est plus flexible.
Hybrides modernes
De nos jours, la plupart des ordinateurs à usage général (PC, Mac, etc.) sont des conceptions hybrides qui vous donnent le meilleur des deux architectures. Au cœur de l’unité centrale, ils fonctionnent sur le modèle Harvard en utilisant des caches séparés pour les instructions et les données afin de maximiser les performances. Mais les caches d’instructions et de données sont tous deux chargés automatiquement à partir d’un espace mémoire commun. Du point de vue de la programmation, ces ordinateurs semblent être de pures machines de Von Neumann avec plusieurs gigaoctets de stockage virtuel.
Microcontrôleurs
Les microcontrôleurs tels que ceux qui alimentent les Arduinos sont conçus pour les applications embarquées. Contrairement aux ordinateurs à usage général, un processeur embarqué a généralement une tâche bien définie qu’il doit accomplir de manière fiable et efficace – et à un coût minimal, les conceptions de microcontrôleurs ont tendance à être plutôt spartiates. Ils renoncent aux luxes de la mise en cache multicouche et des systèmes de mémoire virtuelle sur disque et s’en tiennent à ce qui est essentiel à la tâche.
Le modèle Harvard s’avère être une bonne correspondance pour les applications embarquées et les Atmega 328 utilisés dans l’Arduino UNO utilisent une architecture Harvard relativement pure. Les programmes sont stockés dans la mémoire Flash et les données sont stockées dans la SRAM.
Pour la plupart, le compilateur et les systèmes d’exécution se chargent de les gérer pour vous, mais lorsque les choses commencent à devenir serrées, il est utile de savoir comment les choses fonctionnent sous le capot. Et les choses commencent à devenir serrées beaucoup plus rapidement sur ces minuscules machines !
Une échelle complètement différente
La plus grande différence entre ces microcontrôleurs et votre ordinateur général est la quantité de mémoire disponible. L’Arduino UNO ne possède que 32K octets de mémoire Flash et 2K octets de SRAM. Cela représente plus de 100 000 fois MOINS de mémoire physique qu’un PC bas de gamme ! Et c’est sans compter le lecteur de disque !