Système à Microprocesseur
Microprocesseur MC6809
Unité centrale de
traitement Mémoire Entrées/Sorties
microprocesseur
Bus d'adresses
Bus de contrôle
1.1 Le microprocesseur :
Une unité arithmétique et logique ALU qui effectue les opérations de calcul arithmétique
et logique.
A. FAKKAR 1
Architecture des ordinateurs
Une unité de mémorisation constituée d’un ensemble de mémoires internes très rapide
appelées registre et qui peuvent avoir des fonctions spécifiques.
1.2 La mémoire :
Une mémoire est un circuit électronique capable de stocker ou restituer des informations
binaires soit de façon permanente soit de façon temporaire. Elle est organisée en des mots
d’une taille de un octet chacun ayant une adresse propre qui permet de le sélectionner.
C'est dans la mémoire que l'on retrouve les programmes exécutables et les données à traiter.
Deux familles sont à distinguer; d'une part, il y a les mémoires ROM et d'autre part, les
mémoires vives.
Mémoire morte :
Appelé aussi ROM (Read Only Memory), c'est une mémoire à lecture seule; elle contient le
programme de démarrage du système (BIOS : Basic Input Output System). La mémoire ROM est
permanente; son contenu ne disparaît pas quand le système n'est plus alimenté.
Il existe des variantes de ROM reprogrammable, on peut citer les mémoires FLASH et les
EEPROM qui sont de plus en plus utilisées étant données que leurs programmation se fait
électriquement in situ.
Mémoire vive
Appelées aussi RAM (Random Access Memory) pour mémoires à accès aléatoire. Elles sont
accessibles en lecture et en écriture. Le contenu de ce type de mémoire est perdu lorsque l'on
coupe l'alimentation (volatile). Elles peuvent être dynamiques ou statiques, servent souvent
pour le stockage des données mais aussi pour définir une pile (STACK).
A. FAKKAR 2
Architecture des ordinateurs
Généralement, les programmes sont stockés dans une mémoire de masse (disque dur par
exemple) mais sont transférés vers la RAM avant l’exécution.
Évidemment, pour que le système fonctionne, il doit y avoir une communication entre le
microprocesseur, la mémoire et les entrées/sorties. Cette communication est réalisée à l'aide de
trois bus qui regroupent les signaux, selon leur fonction. Un bus étant un ensemble homogène
de conducteurs qui véhiculent les informations binaires.
Le bus de données
C'est un bus bidirectionnel avec une logique à 3 états sur lequel transitent les données
échangées par les éléments du système. Il peut être multiplexé avec la partie basse du bus
d’adresses.
Le bus d’adresses
Il s'agit d'un bus unidirectionnel basé sur la logique trois états, permettant au
microprocesseur d’adresser les circuits mémoires ou d’interfaces. L'adresse déposée sur le bus
permet d'atteindre une case mémoire ou un registre spécifique avec laquelle une opération est
désirée.
Le bus de contrôle
A. FAKKAR 3
Architecture des ordinateurs
Le brochage du 6809 est donné dans la figure suivante. Le rôle ou la fonction de chaque
broche est décrit dans ce qui suit :
a. Alimentation :
Le microprocesseur 6809 est alimenté par une tension unique de 5 volts, ±5 % sur la broche
VCC. La broche VSS constitue la masse du boîtier ou 0 volt.
A. FAKKAR 4
Architecture des ordinateurs
b. XTAL et EXTAL :
Ce sont sur ces broches que le quartz est installé afin de stabiliser l’oscillateur interne et de
déterminer la fréquence de fonctionnement. La fréquence du quartz doit être quatre fois
supérieure à la fréquence de travail désirée. Une horloge externe TTL peut être branchée sur la
broche EXTAL; alors, la broche XTAL doit être reliée à la masse.
c. Signaux d’horloges E et Q :
E est le signal d'horloge du système pour la synchronisation avec les périphériques. Le signal
Q est un signal à la même fréquence mais déphasé de 90° par rapport au signal E de l’unité
centrale de traitement (CPU). Les adresses du CPU sont validées à partir du front montant de
Q. Les données sont mémorisées sur un front descendant de E.
début du fin du
cycle cycle
E 0.5V
adresse
valide
d. RESET :
Un niveau bas sur cette entrée entraîne une réinitialisation complète du microprocesseur.
Une RESET automatique est appliquée à chaque mise sous tension (démarrage du système).
L'adresse constitué par le contenu des cases mémoires $FFFE et $FFFF (vecteur
d’interruption associé à RESET) est chargée dans le compteur de programme (PC) puis le
processeur exécute à partir de cette adresse.
A. FAKKAR 5
Architecture des ordinateurs
e. MRDY :
f. Bus de données D0 à D7 :
Le transfert des adresses du microprocesseur vers le bus d’adresses du système se fait par
l'intermédiaire de 16 broches unidirectionnelles. Lorsque le microprocesseur exécute un cycle
de travail interne, toutes les lignes d’adresses sont à un niveau haut; donc, l’adresse à ce
moment est $FFFF. De plus, la ligne R/W est positionnée à un niveau haut (lecture) et la
ligne d’état BS est au niveau 0 (fonctionnement normal). Les lignes du bus sont en logique trois
états. Chaque broche peut piloter une charge TTL ou 4 charges TTL-LS représentant la charge
statique maximum. La charge dynamique permise par broche est de 90 pF.
Cette broche de sortie détermine la direction du transfert sur le bus des données. Si R/W = 1,
le microprocesseur est en lecture; D0 à D7 sont en entrées. Si R/W = 0, le processeur est en
écriture; D0 à D7 sont en sorties. Cette broche se place en haute impédance lorsque le
microprocesseur libère les bus.
i. /HALT :
A. FAKKAR 6
Architecture des ordinateurs
que la ligne /HALT est à 0, le processeur est à l’arrêt. L’exécution du programme reprend
lorsque la ligne remonte à 1. Aucun registre n'est affecté durant l'arrêt.
Cette entrée permet de suspendre l'utilisation des bus par la CPU pour faire un accès direct
à la mémoire DMA. Le passage à l'état bas de DMA/BREQ entraîne l'arrêt du programme à la
fin de l'instruction en cours. BA et BS passent à un niveau 1 et indiquent la disponibilité des
bus au circuit demandeur. Après 16 cycles, le CPU reprend les bus pour un rafraîchissement
interne.
k. BA et BS :
Ce sont des lignes de sorties qui indiquent l'état du processeur. BA pour Bus Available et BS
pour Bus State. Lorsque BA = 1, les lignes A0 à A15, D0 à D7 et R/W sont dans un état de
haute impédance. Les signaux BA et BS sont très utiles pour les applications possédant un
périphérique capable de gérer les bus d’adresses et de données à la place du microprocesseur
(un contrôleur DMA, par exemple). Les quatre combinaisons possibles des lignes BA et BS
permettent de connaître à chaque instant, l'état du microprocesseur. Ces indications sont
validées sur le front montant de Q.
BA BS Fonctionnement du MPU
0 0 normal
0 1 reconnaissance d'interruption
1 0 reconnaissance de synchro externe
1 1 arrêt ou bus accordé
A. FAKKAR 7
Architecture des ordinateurs
Ce sont des entrées qui permettent d'interrompre le processeur. Les interruptions ont des
niveaux de priorités différentes. L'interruption NMI est la plus prioritaire, suivie de FIRQ et, en
dernier lieu.
A. FAKKAR 8
Architecture des ordinateurs
Le traitement des données : On fait à l’aide d'une unité de traitement. Cette fonction est
dédiée à l'U.A.L. Elle concerne la manipulation des données sous formes de transfert,
opérations arithmétiques, opérations logiques...
L'unité arithmétique et logique (ALU) est utilisée pour les opérations logiques et
arithmétiques: et, ou, inversion, ou exclusif, addition, soustraction, complément à deux et
multiplication. L'ALU peut également effectuer des décalages à droite ou à gauche.
Ce circuit permet de traiter et tester les données. Toute instruction qui modifie une donnée
fait toujours appel à l'U.A.L. L'entrée de L'U.A.L est connectée au bus interne via des
registres temporaires et un registre particulier appelé accumulateur. La sortie de l'U.A.L est
connectée uniquement à l'entrée de l'accumulateur.
Pour stabiliser les données, on les place dans des mémoires tampons. On les appelle aussi
des registres tampons ou verrou. Ces registres permettent de stocker des octets aux entrées de
l'U.A.L. L'U.A.L étant constitué d'une logique combinatoire, elle est dépourvue de moyen
propre de stockage. Ce type de registre ne peut être manipulé par le programmeur. Il lui est
totalement transparent.
a. Les accumulateurs
b. Le compteur de programme ou PC
Ce registre de 16 bits agit comme un compteur binaire à seize (16) bits avec une valeur de
départ programmable. On lui spécifie la valeur de départ par l'intermédiaire d'une commande.
L'utilisateur peut aussi, à l'intérieur de son programme, changer le contenu du PC par une
instruction de branchement. Le rôle de ce registre est exclusivement de signaler au
microprocesseur à quel endroit se situe la prochaine instruction à exécuter. Dans la recherche
de l'instruction par le microprocesseur, le contenu du PC est mis sur le bus d’adresses et au
même moment, un signal de lecture est généré permettant ainsi à la donnée, contenue dans la
case mémoire adressée, de se propager à travers le bus de données vers le microprocesseur
pour être traitée. De façon automatique, le PC s'incrémente de 1 après que le CPU ait reçu la
donnée de manière à pointer la prochaine instruction.
15 8 7 0
X : Registre d'index
Y : Registre d'index
PC : Compteur de programme
A : Accumulateur B : Accumulateur
D : Accumulateur
Registre de page DP
Registre CC E F H I N Z V C
Les registres d'index sont employés avec le mode d’adressage indexé. Ils servent
généralement au traitement d'un bloc mémoire et sont utilisés pour pointer les données en
mémoire. On peut, par exemple, effacer un bloc mémoire ou déplacer le contenu d'une région
mémoire. Le MC6809 possède deux registres d’index de 16 bits nommés X et Y.
A. FAKKAR 10
Architecture des ordinateurs
Ce sont des registres de 16 bits qui servent à pointer l'adresse des données temporaires
dans une région mémoire appelée pile. Le MC6809 possède deux pointeurs de piles; le registre S
est le pointeur de pile du système tandis que le registre U, est le pointeur de pile de
l'utilisateur. Le pointeur de pile S est automatiquement utilisé pendant les appels de sous-
routines ou les interruptions alors que le pointeur U est contrôlé exclusivement par le
programmeur.
Supposons que la plage mémoire de 64K octets est répartie en 256 pages de 256 octets, ce
qui fait un total de 64K. Le registre de page permet d'indiquer quelle page parmi les 256 pages
est accessible. Ce registre peut être modifié avec une valeur désirée. Il est implicitement utilisé
lorsque le CPU exécute une instruction dans le mode d'adressage direct. Ce registre est
automatiquement remis à zéro lors d’une réactivation matérielle reset.
f. Le registre de condition
Ce registre permet de connaître les résultats d'une opération effectuée par l'ALU. Le bit Z,
mis à 1, indique que le résultat donne zéro; le bit N, mis à 1, indique que le résultat est un
nombre négatif, etc. Les bits de ce registre sont mis à jour après l'exécution de certaines
instructions. Le registre de condition est utilisé pour prendre des décisions et de réaliser des
sauts conditionnels dans un programme.
E F H I N Z V C
A. FAKKAR 11
Architecture des ordinateurs
Son rôle est de permettre à tous les éléments constitutifs du microprocesseur de travailler
ensemble et dans l'ordre et la cohérence.
La logique de contrôle est pilotée par le registre d'instruction via le décodeur d'instruction.
Cette unité génère toutes les commandes et tous les signaux nécessaires au bon déroulement de
l’exécution du programme puisqu'elle décide de la disponibilité du bus à tel ou tel élément
logique. La logique de contrôle possède une architecture complexe et très spécialisée. L'élément
central est représenté par le décodeur d'instructions qui décode les informations (premier octet)
stockées dans le registre instructions RI pour générer les signaux nécessaires à l'exécution de
l'instruction. La logique de contrôle génère sur les lignes de contrôle des niveaux logiques qui
activent les différents circuits environnant tels que mémoires et circuits d’entrées sorties.
Cette unité fournit, à partir du signal d'horloge, tous les signaux de synchronisation utiles au
bon fonctionnement de l'ensemble. Cette horloge est créée à partir d'un oscillateur interne qui
utilise un signal en provenance d'un quartz externe.
L’unité centrale se compose au moins d’un microprocesseur qui doit lire son programme,
recevoir des données, en fournir d'autres en sortie. Par conséquent, il doit communiquer avec
des mémoires centrales ainsi qu'avec des périphériques via des circuits d'entrées-sorties, ou
interfaces. En adoptant tout ce qui a précédé et en rappelant qu’un programme est composé
A. FAKKAR 12
Architecture des ordinateurs
Il l'exécute.
En une première approche, on peut considérer que le microprocesseur est doté de ces trois
groupes distincts appelés unité de recherche d'une instruction en mémoire, unité de décodage
de l'instruction, et enfin unité d'exécution.
Le code de l'instruction qui vient d'être lue dans la mémoire est ramené dans le
microprocesseur où il est enregistré dans un autre registre appelé pour registre d'instructions.
Par convention, une cellule mémoire contient un octet, donc huit bits. Cet octet est
l'octet de l'instruction, qui en un premier temps correspond au code opération, puisqu'il faut
bien commencer par le début d’une instruction.
Il convient donc non seulement de décoder l'octet d'instruction, mais encore de traduire
la sortie du décodeur en commandes électriques destinées à animer les portions du
microprocesseur qui vont être sollicitées par l'instruction. Par exemple, une commande
d'addition met en jeu l'additionneur interne. D'où la présence d'une unité de décodage.
A. FAKKAR 13
Architecture des ordinateurs
Si l'instruction procure un résultat, ce qui est le cas, par exemple, d'une instruction
d'addition, ce résultat est temporairement enregistré dans un autre registre appelé
accumulateur.
Cette séquence est pilotée par des circuits de commande et de séquencement, une sorte
d'horloge qui met chacune de ces unités en service à tour de rôle.
Selon la nature de l’instruction, après le décodage, plusieurs actions peuvent être prises. Soit,
par exemple, rechercher la donnée en mémoire en respectant les modes d’adressages utilisés
pour finaliser l’opération spécifiée par le code opération ou transformer directement le contenu
de l’accumulateur.
A. FAKKAR 14
Architecture des ordinateurs
D0-
D7
Vcc
A0-
A15 Vss
16
B
PC
IR
U
S RESET
NMI
Y FIRQ
Contrôle des
X Interruptions IRQ
DMA/BREC
A R/W
D
B
HALT
DP CC Contrôle du BA
Bus
BS
XTAL
EXTAL
ALU Horloge
MRDY
E
Q
A. FAKKAR 15