Eléments de Base d'un Microcontrôleur
Unité Arithmétique et Logique
Le rôle d’un processeur est soit de faire des calculs, soit de faire des transferts de données avec la mémoire ou les périphériques.
Les calculs sont réalisés au sein de l’Unité Arithmétique et Logique ( UAL ou ALU ) , afin de traiter des opérations :
- Arithmétiques : addition / soustraction / multiplication / division
- Logiques : and / or / nand / nor / xor / …
L’UAL regroupe donc des composants réalisant ces opérations en permanence.
La sélection de l’opération souhaitée se fait avec un multiplexeur, pour aiguiller le résultat du bon opérateur.
Les bits d’état NZVC indique comment s’est passé l’opération :
- N : résultat Négatif
- Z : résultat égal à Zéro
- C : Débordement non signé ( retenue ) : Carry
- V : Débordement signé : oVerflow
l’analyse de ces bits d’état permet de réaliser des tests pour comparer des valeurs dans le cas des instructions de branchement.
La porte 3 états
Problématique
Dans un système à processeur, l’échange de données avec la mémoire se fait via des bus ( fils en parallèle ).
Le processeur comme la mémoire doivent pouvoir écrire ou lire sur ce bus.
Un même fil serait donc susceptible d’être forcé par 2 états contradictoires, d’où un conflit.
Lorsqu’un élément connecté à un fil force la valeur logique de ce fil, les autres éléments doivent être transparents ( déconnectés ), on appelle cela l’état haute impédance.
Une porte 3 états permet de réaliser la connexion à un bus :
Mémoire
Architecture et Fonctionnement
Nous considérons une mémoire de type RAM constituée de bascules RS afin de mémoriser une donnée.
La mémoire se compose de 4 mots de 4 bits.
Le bus d’adresse permet de sélectionner le mot que l’on souhaite lire ou modifier.
Dans l’exemple ci-dessous, le bus d’adresse a la valeur 1, le décodeur 2 vers 4 permet d’activer la ligne .
- Si les signaux CS = 1 et , le registre buffer de lecture est chargé avec le mot de 4 bits pointé par , et le bus de données est forcé avec cette valeur.
- Si les signaux CS = 1 et , le registre buffer d’écriture est chargé avec le mot de 4 bits présent sur le bus de Données, et les bascules pointées par enregistrent cette valeur .
Association de plusieurs composants mémoire
Afin de disposer d’une mémoire plus étendue, on peut associer plusieurs composants mémoire.
Le signal CS ( Chip Select ) permet d’activer l’utilisation d’une mémoire.
Si je considère 4 fils d’adresse , je peux utiliser (poids forts) afin de sélectionner et activer une mémoire parmi 4.
Les fils (poids faibles) me servent alors à choisir une case dans la mémoire sélectionnée.
Caractéristiques d’une mémoire
Une mémoire est volatile si elle perd l’information mémorisée lorsque l’alimentation électrique est coupée.
Mémoires à semiconducteurs (accès direct) - Temps d’accès < 100ns
-
Mémoire Morte : non volatile - ex : EEPROM/Flash
-
Mémoire RAM / Mémoire Vive : volatile
- SRAM ( Static RAM ) : à base de bascules. Temps d’accès 6 à 15 ns
- DRAM ( Dynamic RAM ) : à base de transistor et condensateur (plus compact). Temps d’accès # 70ns
Mémoires de Masse - Non volatile - ex : Disque Dur / CD / DVD
Capacité ( taille ) d’une mémoire
Lors d’un accès mémoire, je peux lire ou modifier un mot mémoire.
Si ma mémoire contient 1024 cases mémoires ( sélectionnables via le bus d’adresse ), et que chaque case ou mot est de taille 8 bits :
Capacité = 1024 x 8 = 8192 bits = 1024 octets = 1ko
( )