Arduino Memoire Architecture

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Harvard vs Princeton

Deux architectures processeur/mémoire différentes émergèrent aux tout premiers jours de l'électronique informatisée.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

L'architecture Von Neumann (eq: Princeton) (wikipedia, anglais) fut développée pour pour l'ENIAC et utilisait la même méthode d'accès données et programme pour le stockage du programme et stockage des données.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

L'architecture Harvard (wikipedia, anglais) utilisée par le Harvard Mark 1 utilisait des mémoires physiques distinctes (et méthode d'accès distinctes) pour stockage du programme et le stockage des données.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Quelle est la meilleure architecture?

Chacune des architecture présente des avantages, rendant ces modèle "équivalent".

Le modèle Harvard (deux mémoires mémoires distinctes) offre une meilleure performance.

Le modèle de Von Neumann (une seule mémoire physique) est plus flexible.

Les hybrides modernes

De nos jours, la plupart des ordinateurs (PCs MACs etc.) utilisent une conception hybride qui vous offre le meilleurs des deux architectures. Au tréfond de la machine, près du processeurs, c'est le modèle de Harvard qui est utilisé. Aunsi en utilisant des mémoires caches séparées pour les instructions et les données, le CPU maximise les performances grâce à cette architecture. Mais les caches d'instruction et de donnée sont tous les deux automatiques chargés à partir d'un espace mémoire commun. D'un point de vue programmation, ces ordinateurs apparaissent comme de pure modèles "Von Neumann" (un seul espace mémoire massif) avec plusieurs GigaOctects de stockage virtuel. L

La réalité est plus subtile.

Microcontrôleurs

Un microcontrôleurs, tel que celui qui propulse votre Arduino, est conçu pour réaliser des applications intégrées. A l'opposé des ordinateurs conçu pour des tâches diverses, un processus embarqué a une tâche bien définie qu'il doit exécuté efficacement et de façon fiable - et avec un coût minimum. Par leurs conceptions, les microcontrôleur tendent à être plutôt spartiate. Ils renoncent au luxe du cache multi niveau, mémoire à base de disque virtuel, stockage de masse USB pour se concentrer sur ce qui est essentiel pour la tâche.

Le modèle Harvard semble être un bon choix pour les application embarquées et l'Atmega 328 utilisé par un Arduino UNO utilise un architecture Harvard relativement "pure". Le programme est stocké dans la mémoire Flash tandis que les données sont stockées dans la SRAM.

Dans la plupart des cas, le compilateur et le système run-time en prennent soin pour vous, mais lorsque les choses deviennent délicates (qu'il manque de mémoire), cela devient utile de savoir comment les choses fonctionnent sous le capot. Et comme vous vous en doutez, plus ces "machine" sont petites, plus vite vous risquez d'être confrontez à ce type de problèmes!

Une échelle totalement différente

La plus grande différence existant entre votre microcontrôleur et votre ordinateur c'est la quantité de mémoire vraiment disponible. Sur un Arduino UNO cela se résume à seulement 32Kb (Kilo octets) de mémoire Flash et 2Kb de SRAM. C'est 100,000 fois MOINS de mémoire physique que le PC le plus bas gamme! et sans compter que vous n'avez même pas de lecteur disque!

Pour travailler dans un environnement aussi minimaliste, il vous faut utiliser vos ressources à bon escient.


Source: Memories of an Arduino. Crédit AdaFruit Industries.

Créé par Bill Earl pour AdaFruit Industries.

Traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.