Archive 07/10/2020.

Mémoire, microcontrôleurs, micro-processeurs

snarkturne

Bonjour,

2.1.2.a indique :

Le microprocesseur se compose :

  • d’un processeur dont registres
  • de mémoires (RAM/ROM)
  • d’entrées sorties

Plus loin :
Un processeur seul ne suffit pas à construire un système embarqué. Les composants supplémentaires tels que par exemple la mémoire RAM, ROM sont indispensables pour obtenir un objet fonctionnel.

Je comprends que le microcontrôleur contient donc un microprocessuer, et aussi de la RAM, ROM etc…
Or il est indiqué que le microprocesseur contient aussi de la RAM/ROM.

Quelle est la différence entre ces 2 types de RAM/ROM ?

Merci.

Cedric_Px

Bonjour,
La RAM est volatile, c 'est à dire que si tu n’alimentes pas ton MCU les données sont perdues.
La ROM garde les données en mémoire même si le processeur n’est pas alimenté. Ton code SW est donc dans la ROM. les variables qui seront nécessaires pendant l exécution du programme seront dans la RAM

snarkturne

Merci pour ta réponse.
Mais ma question ne porte pas sur la différence entre la RAM et la ROM. Mais entre les 2 types de RAM dont l’existence est suggérée dans le cours (voir mon message) : celle du microcontrôleur, et celle du microprocesseur.

Jusqu’à lors, je pensais que les microprocesseurs ne contenaient ni RAM ni ROM, mais simplement des registres (en fait, je pensais que processeur et microprocesseurs c’était pareil à la taille près).
Et que par contre, les microcontrôleurs étaitent composés de microprocesseurs + de la mémoire (RAM et ROM).

L’extrait du cours que j’ai repris dans mon premier message semble dire tout autre chose…

lebardix

Bonjour,

Je pense que tu as lu un peu vite ce paragraphe

il précise finalement qu’un microcontroleur doit comprendre un processeur, de la Ram et Rom et des entrées sorties.
Un processeur n’a pas de ram ni de rom, c’est une unité de calcul avec un bus d’adressage et de données permettant d’accéder à des composants externes (mémoire, asic, controleur réseau, etc )

Tout ou partie de ces externes peuvent etre inclus avec le processeur ce qui en fait un microprocesseur.

Et ainsi on trouve toute sorte de microprocesseur sur le marché, certains avec de la mémoire ou pas, d’autres embarquent des bus de haut niveau (i2c, …) et c’est pourquoi le projet libre RIOT est indispensable… :slight_smile:

snarkturne

Bonjour et merci.

Le cours indique (je copie colle) :
Le micro-processeur est la pièce maitresse du micro-contrôleur. Il se compose :
* d’un processeur (CPU) …
* de mémoires (RAM/ROM) …
* d’entrées sorties …

Le “Il” de “Il se compose” est donc le micro-contrôleur ?
Si oui, alors tout va bien, c’est ce que je connaissais. Mais la phrase est tournée de telle sorte que je comprends, en la lisant que “il” est le micro-processeur. D’où ma question sur ce forum…
Si c’est effectivement une erreur de lecture (ou d’écriture… c’est selon… je veux bien croire qu c’est une erreur de lecture si je suis le seul à m’être posé la question :slight_smile:) c’est bien plus clair (je voyais mal pourquoi un microprocesseur serait composé d’un processeur…)

Tu indiques dans ton message :
Tout ou partie de ces externes peuvent etre inclus avec le processeur ce qui en fait un microprocesseur.

Tu veux dire microcontrôleur ? :slight_smile:

lebardix

Non, non je veux bien dire microprocesseur,
Il embarque TOUT ou PARTIE (par exemple celui de l’ARDUINO, ou ceux de la famille 16F)
mais parfois/souvent, ils n’ont meme pas de mémoire et donc il faut completer dans une carte microcontroleur les autres composants (ex rapsberry le microprocesseur n’a pas de mémoire RAM et elle est rajoutée sur la carte microcontroleur)

snarkturne

OK. Donc j’ai bien lu dans le cours et c’est nouveau pour moi. Je pensais que les microprocesseurs n’étaient pas dotés de RAM. Je me trompais.
J’ai donc bien fait de poser la question.
Merci pour ta réponse.

EDIT : L’ ATmega328 de l’Arduino est a priori un microcontroleur plutôt qu’un microprocesseur
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

GiLe

J’ai eu le même problème! Et c’est certainement une coquille… Pour en être sur je suis allé sur internet pour trouver un document ou un site afin d’obtenir des informations complémentaires:


Pour résumer, il suffit de garder en tête l’architecture d’un PC: une carte mère + un microprocesseur + RAM (IC indépendant) + ROM (IC indépendant)

Microcontrolleur: Tout est miniaturisé sur un seul chip (RAM+ROM+CPU+BUS) d’ou gain de place sur la carte support.

Si tu veux aller plus loin: Les micro processeurs modernes incluent une mémoire cache de 1° niveau sur le processeur même (voir http://imss-www.upmf-grenoble.fr/prevert/SpecialiteIHS/Documents/6-GestionMemoire-4dpp.pdf)
Mais je pense que tu le sais déjà ! :wink:

snarkturne

Merci pour cette nouvelle réponse. Nouveau revirement de situation :).
Effectivement, lorsqu’il est fait mention de RAM, je ne crois pas que ce soit de la mémoire cache qu’il est question.
Quoi qu’il en soit, le texte ne doit pas être super clair pour qu’on soit au moins 2 à se poser des questions :slight_smile:
Bon courage pour la suite du MOOC.

schreiner

Bonjour,

effectivement, je fais référence à la RAM/ROM standard, qui est externe au CPU. Pour ne pas confondre avec le MCU, je vais l’enlever de ce paragraphe. Merci pour votre remarque :smiley: