|
Un registre mappé en mémoire (MMR) est un registre matériel au sein d'un système (comme un microcontrôleur ou un système embarqué) accessible via l'espace d'adressage mémoire du système. Au lieu d'avoir un jeu d'instructions d'entrée/sortie (E/S) dédié pour interagir avec ces registres, ils sont traités comme s'il s'agissait d'emplacements dans la RAM du système ou dans une autre mémoire.
Voici un aperçu de ce que cela signifie :
* Registre du matériel : Un registre est un petit emplacement de stockage dans un composant matériel. Ces registres contrôlent souvent le comportement des périphériques (comme les minuteries, les UART, les convertisseurs ADC, etc.) ou contiennent des informations sur l'état de ces périphériques.
* Espace d'adressage mémoire : Il s'agit de la plage d'adresses à laquelle le processeur du système peut accéder pour lire et écrire des données. Cela inclut la RAM, la ROM et d'autres périphériques de mémoire.
* Mappé en mémoire : L'aspect crucial est que les adresses de ces registres sont mappées dans ce même espace d'adressage mémoire. Le CPU peut donc lire ou écrire dans ces registres en utilisant des instructions d'accès mémoire standard (comme `LOAD` ou `STORE`). Cela contraste avec les systèmes mappés d'E/S, dans lesquels des instructions d'E/S dédiées sont utilisées.
Comment ça marche :
Lorsque le CPU souhaite interagir avec un périphérique, il utilise simplement une adresse mémoire correspondant au registre mappé en mémoire de ce périphérique. L'écriture à cette adresse modifie la valeur du registre et la lecture récupère la valeur actuelle du registre. Le matériel gère l'interaction réelle avec le périphérique en fonction de l'accès à la mémoire.
Avantages des registres mappés en mémoire :
* Simplicité : L'utilisation d'instructions de mémoire standard simplifie la programmation. Aucune instruction d’E/S spéciale n’est nécessaire.
* Flexibilité : Permet une intégration plus facile des périphériques et une gestion de la mémoire plus flexible.
* Uniformité : Fournit un espace d'adressage unifié pour la mémoire et les périphériques, ce qui simplifie la gestion des ressources.
Inconvénients des registres mappés en mémoire :
* Consommation d'espace d'adressage : Les registres consomment une partie de l'espace d'adressage mémoire limité du système.
* Potentiel de conflits : Une planification minutieuse est nécessaire pour éviter les conflits d'adresse entre la mémoire et les périphériques.
Essentiellement, les registres mappés en mémoire offrent un moyen propre et efficace d'interagir avec les périphériques matériels en utilisant un modèle d'accès mémoire cohérent, simplifiant ainsi la conception et la programmation des systèmes embarqués.
|