Structure du processeur
Ce qui distingue un microcontôleur d'un microprocesseur est que le microcontrôleur intègre, en plus de l'unité centrale (CPU : Central Processing Unit), également des structures périphériques :
- mémoires
- structures d'interfaçage parallèle
- structure d'interfaçage série
- structures de conversions analogique et numériques
- circuits temporisateurs
- etc...
Reprenons l'exemple du 68HC11F1.
- Son unité arithmétique et logique (UAL) permet de réaliser des opérations sur 8 bits et certaines opérations sur 16 bits. On dit qu'il s'agit d'un processeur 8/16 bits.
- Les accumulateurs A et B sont des registres de 8 bits qui contiennent les opérandes d'une opération. Certaines instructions associent ces deux accumulateurs pour réaliser des opérations sur 16 bits : A (8bits) +B (8bits) = D (16bits).
- Le Program Counter (PC) ou compteur ordinale est un registre de 16bits qui contient en permanence l'adresse de la prochaine instruction à exécuter
- Le Stack Pointer (S) est un registre de 16 bits qui contient l'adresse de la pile mémoire. Cette dernière est nécessaire pour faciliter la sauvegarde des données temporaires.
- Lié à l'UAL le Code Condition Register (CCR) ou drapeau donne des indications sur un résultat : valeur nulle, valeur négative, résultat avec retenu, etc...
Voir ci-dessous. - X et Y sont des registres de 16 bits qui permettent de manipuler les adresses. Cette CPU est donc capable d'adresser 216 adresses différentes.
L'unité de contrôle qui n'est pas représentée sur la figure ci contre permet de cadencer et d'organiser l'exécution des instructions.
Selon le résultat d'une opération les bits du registre CCR sont positionnés à "1" ou "1". Ces bits sont utilisés par le microprocesseur pour effectuer par la suite des tests conditionnels de type SI... ALORS.. SINON... FINSI
Les bits les plus courants sont :
- C : Carry : positionné à "1" si le résultat d'une opération possède une retenue.
- Z : Zero : Positionné à "1" si le résultat d'une opération est nulle.
- N : Negative : Positionné à "1" si le résultat d'une opération est négatif. Plus précisement si le bit de poids fort est mis à "1".
Exemples d'opérations élémentaires sur 4 bits entre une donnée stockée dans l'accumulateur et un opérande.
Les opérations entrainent une modification du registre CCR.