Différences entre versions de « Arduino Memoire Architecture »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 14 : Ligne 14 :
 
{{ADFImage|Arduino-Memoire-12.jpg}}
 
{{ADFImage|Arduino-Memoire-12.jpg}}
  
== Which is better? ==
+
== Quelle est la meilleure architecture? ==
  
Each architecture has its advantages: All else being equal, the Harvard model has the edge in performance. The Von Neumann model is more flexible.
+
Chacune des architecture présente des avantages, rendant ces modèle "équivalent".
  
== Modern Hybrids ==
+
Le modèle Harvard (deux mémoires mémoires distinctes) offre une meilleure performance.  
These days, most general purpose computers (PC's Mac's etc.) are hybrid designs that give you the best of both architectures. Deep within the CPU they operate on the Harvard model using separate caches for instructions and data to maximize performance. But the instruction and data caches are both loaded automatically from a common memory space. From a programming perspective, these computers appear to be pure Von Neumann machines with many gigabytes of virtual storage.
 
  
== Microcontrollers ==
+
Le modèle de Von Neumann (une seule mémoire physique) est plus flexible.
Microcontrollers such as the ones that power the Arduinos are designed for embedded applications. Unlike general purpose computers, an embedded processor typically has a well defined task that it must perform reliably and efficiently - and at minimal cost, Microcontroller designs tend to be rather spartan. They forego the luxuries of multi-layer caching and disk-based virtual memory systems and stick to what is essential to the task.
 
  
The Harvard model turns out to be a good match for embedded applications and the Atmega 328 used in the Arduino UNO use a relatively pure Harvard architecture. Programs are stored in Flash memory and data is stored in SRAM.
+
== 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
  
For the most part, the compiler and run-time systems take care of managing these for you, but when things start getting tight, it helps to be aware of how things work under the hood. And things start getting tight much quicker on these tiny machines!
+
La réalité est plus subtile.
  
== A completely different Scale ==
+
== Microcontrôleurs ==
The biggest difference between these microcontrollers and your general purpose computer is the sheer amount of memory available. The Arduino UNO has only 32K bytes of Flash memory and 2K bytes of SRAM. That is more than '''100,000 times LESS physical memory than a low-end PC!''' And that's not even counting the disk drive!
+
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.
  
'''Working in this minimalist environment, you must use your resources wisely'''.
+
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'''.
  
 
{{Arduino-Memoire-TRAILER}}
 
{{Arduino-Memoire-TRAILER}}

Version actuelle datée du 30 août 2013 à 11:22


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.