Différences entre versions de « Arduino Memoire Architecture »
(Page créée avec « {{Arduino-Memoire-NAV}} == Harvard vs Princeton == In the early days of electronic computing, two different processor/memory architectures emerged: {{ADFImage|Arduino-Memoi... ») |
|||
(7 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
== Harvard vs Princeton == | == Harvard vs Princeton == | ||
− | + | Deux architectures processeur/mémoire différentes émergèrent aux tout premiers jours de l'électronique informatisée. | |
{{ADFImage|Arduino-Memoire-10.jpg}} | {{ADFImage|Arduino-Memoire-10.jpg}} | ||
− | + | [http://en.wikipedia.org/wiki/Von_Neumann_architecture L'architecture Von Neumann (eq: Princeton)] (''wikipedia, anglais) fut développée pour pour l'[http://en.wikipedia.org/wiki/ENIAC 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. | |
{{ADFImage|Arduino-Memoire-11.jpg}} | {{ADFImage|Arduino-Memoire-11.jpg}} | ||
− | + | [http://en.wikipedia.org/wiki/Harvard_architecture L'architecture Harvard] (''wikipedia, anglais'') utilisée par le [http://en.wikipedia.org/wiki/Harvard_Mark_I 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. | |
{{ADFImage|Arduino-Memoire-12.jpg}} | {{ADFImage|Arduino-Memoire-12.jpg}} | ||
− | == | + | == 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'''. | ||
{{Arduino-Memoire-TRAILER}} | {{Arduino-Memoire-TRAILER}} |
Version actuelle datée du 30 août 2013 à 11:22
Harvard vs Princeton
Deux architectures processeur/mémoire différentes émergèrent aux tout premiers jours de l'électronique informatisée.
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.
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.
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.