Telechargé par Rachida Mebarki

ARCHITECTURE DU MICROPROCESSEUR 6809 DE MOTOROLA

publicité
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
ARCHITECTURE DU MICROPROCESSEUR
6809 DE MOTOROLA
Définition: Le microprocesseur noté aussi M.P.U. (Microprocessor unit) ou encore C.P.U. (Central
I.
Processing Unit) est un circuit intègre complexe caractérisé par une très grande intégration, c’est un
circuit LSI (Large Scale Integration) large échelle d’intégration de plusieurs milliers de transistors sur un
carrée de quelques millimètres de coté appelé « puce », il est doté de facultés fonctionnelles
d’interprétation et d’exécutions d’un programme.
FIG 01 : Exemples de Microprocesseurs
II.
Rôle du microprocesseur : Le microprocesseur remplit deux fonctions essentielles :

le traitement des données : On parle d'unité de traitement. Cette fonction est dédiée à l'U.A.L (Unité
Arithmétique et Logique). Elle concerne la manipulation des données sous formes de transfert,
opérations arithmétiques, opérations logiques....

le contrôle du système : Cette fonction se traduit par des opérations de décodage et d'exécution des
ordres exprimés sous forme d'instruction.
III.
Puissance d’un microprocesseur : La notion de puissance est la capacité de traiter un grand nombre
d'opérations par seconde sur de grands nombres et en grande quantité.
Intrinsèquement la puissance se joue donc sur les trois critères suivants:

La longueur des mots : données et instructions (on parle de largeur du bus des données).

Le nombre d'octets que le microprocesseur peut adressé (on parle de largeur du bus des adresses).

La vitesse d'exécution des instructions liée à la fréquence de fonctionnement de l'horloge de
synchronisation exprimée en MHZ.
MR : HALAILI MED
Page 1
INSFP SBA
IV.
MICROPROCESSUER MOTOROLA 6809
Présentation du processeur 6809
Le microprocesseur 6809 de chez Motorola est un microprocesseur 8 bits grand successeur du 6800 dont
l'organisation interne est orientée 16 bits.
Il possède 59 instructions (plus de 1460 instructions avec toutes les combinaisons) et il comprend:
 Un bus Data (de données) sur 8 bits;
 Un bus d'adresse sur 16 bits permettant un adressage mémoire de 64 KiloOctets;
 Deux accumulateurs de 8 bits "A" et "B" transformables en 1 accumulateur de 16 bits "D".
 Deux registres d'index de 16 bits "X" et "Y" pour la gestion des piles utilisateur et système.
 Deux registres pointeur de pile de 16 bits "U" et "S";
 Un pointeur de page "DP" de 8 bits servant à l'adressage direct de la mémoire.
 Un registre d'état "CC" sur 8 bits;
 Le compteur de programme sur 16 bits "PC" pointant toujours sur l'adresse que le
microprocesseur doit exécuter.
Il existe deux versions de ce processeur, le 6809 et le 6809E. Leur brochage diffère ainsi que leurs
signaux mais leur jeu d'instruction est identique.
1. Le 6809 possède une horloge interne.
2. Le 6809E à besoin d'une horloge externe.
Le 6809 de Motorola fut au départ produit en versions 1 MHz et 2 MHz, mais des versions plus rapides
furent produites par la suite.
Le 6809 possède 9 modes d'adressage:
 L'adressage inhérent
 L'adressage immédiat
 L'adressage direct
 L'adressage étendu
 L'adressage étendu indirect
 L'adressage relatif court
 L'adressage relatif long
 L'adressage indexé
 L'adressage indexé indirect
MR : HALAILI MED
Page 2
INSFP SBA
V.
MICROPROCESSUER MOTOROLA 6809
Architecture interne du 6809 de Motorola : Voir Figure 02
Le 6809 de Motorola comprend essentiellement :
1. Unité Arithmétique et Logique (UAL) : C’est un circuit complexe qui assure les fonctions :

Arithmétique (addition et soustraction)

Logiques (AND, OR ….)

Comparaison, décalage a droite ou a gauche, incrémentation, décrémentation, mise à 1 ou a 0
d’un bit, test de bit …..
2. Unité de commande (UC) : Elle va chercher dans la mémoire RAM chaque instruction a exécuté, la
décode et généré en conséquence tous les signaux nécessaire pour l’exécution correcte de
l’instruction.
3. Les Registre : Ils sont souvent utilisés pour les stockages provisoires des données, certains ont une
tâche bien précise.
Nous n’étudierons que les registres accessibles à l’utilisateur par la programmation.
A
B
D
7
0
Accumulateur A et B de 8 bits, ou
accumulateur D de 16 bits
15
x
0
Registre d’index
X
15
Y
0
Registre d’index
Y
15
U
0
Pointeur de pile utilisateur
U
15
S
0
Pointeur de pile système S
0
Registre d’adressage de page
DP
0
Compteur ordinal
PC
0
Registre de code condition
CCR
7
15
0 0
7
15
DP
PC
7
CCR
FIG 03 : Les registres du 6809 de Motorola
MR : HALAILI MED
Page 3
Registre
Pointeur
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
A. L’accumulateur :
Deux accumulateurs de 8 bits A et B transformables en 1 accumulateur de 16 bits, D. Ils sont
utilisés pour les instructions arithmétiques, logiques et de chargement de données 8 bits (ou 16 bits) en
mémoire. Ils sont pour cela entièrement identiques.
L'accumulateur D est en fait la concaténation de A et B, le registre A représentant les poids forts (bits 8
à 15) et B les poids faibles (bits 0 à 7).
L’accumulateur :
 Servira pour toutes les opérations arithmétiques et la plupart des opérations logiques, il contiendra une
opérande au début de l’opération puis le résultat a la fin de cette dernière.
 Recevra les données en prévenance de l’extérieure, ces données étant ensuite reprise de
l’accumulateur pour être rangées en mémoire
 Recevra les données en prévenance de la RAM et destinées a être dirigé vers un périphérique
 D’une manière générale toute opération ou tout transfert d’E/S nécessité un
passage par
l’accumulateur
B. Registres d’index X, Y : Ces deux pointeurs de 16 bits chacun d’utilisation parfaitement identique sont
utilisés dans les modes d’adressage indexé, le contenu de ces registres permet de pointer des données, il
est modifiable par addition d’une constante optionnelle ou d’un déplacement codé sur 8 ou 16bits.
C. Registre de Page DP : Un registre de "page mémoire" DP (Direct Page), sur 8 bits, est utilisé pour
adresser des pages en mémoire. Une page est un bloc de 256 mots. Aussi les emplacements mémoire 0 à
255 forment la page 0 de la mémoire. Le 6809 possède un bus d'adresse de 16 bits, cela donne 256 pages.
Le registre DP spécifie le numéro de page, c'est à dire les 8 bits de poids fort d'une adresse (A8-A15). Les
8 autres bits sont indiqués par l'instruction à exécuter. Le registre DP permet une exécution plus rapide
des programmes. Il est automatiquement remis à 00 par un RESET.
D. Registre compteur programme PC : Le contenue de ce registre (16bits) détermine l’adresse de
l’instruction que doit exécuter le processeur, il pointe en permanence l’adresse de la prochaine instruction
a exécuter. L’exécution d’une instruction incrémente automatiquement le compteur programme PC, toute
fois il peut être chargé par une adresse afin d’allé cherché directement une opérande ou faire un saut vert
un sous programme
E. Registres auxiliaires : Ils permettent de limiter les accès à la mémoire, ce qui accélère l’exécution d’un
programme .ils peuvent conserver des informations utilisées fréquemment, des résultats intermédiaires,
ils sont accessibles au programmeur.
MR : HALAILI MED
Page 4
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
F. Registres d’instruction RI : C’est le registre de destination dans le quel le µP transfert l’instruction a
exécuté a partir de la mémoire, et qui sera ensuite décodé. Le décodage permettra de reconnaître
l’opération a exécuté et des signaux de commande seront envoyer on conséquence pour permettre
l’exécution de l’instruction.
G. Registres pointeurs de pile U, S : Le 6809 possède 2 pointeurs de pile (16bits).
Le pointeur de pile S (système) est utilisé pour les opérations de sauvegarde en cas d'interruption
ou de saut à un sous-programme (Adresse de retour). La pile est un emplacement ou le microprocesseur
sauvegarde le contenu de ses registres internes pendant un certain temps. Elles opèrent en mode dernier
entré-premier sorti (LIFO : Last In - First Out). Le pointeur de pile pointe vers la dernière entée effective
de la pile.
Le pointeur de pile U (User : utilisateur) est utilisé uniquement par le programmeur pour réaliser
des passages d’arguments de ou vers des sous-programmes. La figure3 nous montre le travail du
pointeur S, dans le cas d’une sauvegarde des Registres internes du µP dans la pile système
MR : HALAILI MED
Page 5
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
H. Registre de codes condition CCR : Ce registre (8bits) définit à tout instant des indicateurs du µP. les
bits de ce registre sont :
7
6
5
4
3
2
1
0
CCR E
F
H
I
N
Z
V
C
FIG 05 : Registre de codes condition CCR
Ces indicateurs peuvent se diviser en deux parties indépendantes : d’une part les bits 0, 1, 2,3 et 5
positionnés en fonction du résultat des instructions qui manipulent les données. Et d’autre part les bits
4 ,6 et 7 dont le rôle est lié au fonctionnement en interruptions.
H-1/ Rôle des interruptions arithmétiques :
H-1-1/ Rôle du bit C (b0) : Carry ou Retenue :
Ce bit indicateur de retenue est positionné lors d’une opération arithmétique, les manipulations de
données et opérations logiques n’affectent pas C, suivant les opérations effectuées : C peut jouer
différents rôles.
Exemple 1 :
ADCA # $2C
1
(Addition avec retenue du contenu de l’accumulateur A et de la valeur
Hexadécimale 2C)
« A= $2C »
1110 0010
+0010 1100
0000 1110
C= 1 et
H=0
N=0
Z=0
V=0
C indique ici un débordement non signé.
Exemple 2 :
SUBA # $22
(Soustraction de la valeur $ 22 au contenu de l’accumulateur A.)
« A= $C3»
Complément à deux de $22
1
1100 0011
+1101 1110
1010 0001
C= 0 et
H
N
Z
V
non défini
=0
=0
=0
Dans le cas d’une soustraction (CMP.NEG.SUB.SBC) l’indicateur Carry est le complément de la
retenue de l’opération effectuée.
MR : HALAILI MED
Page 6
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
Exemple 3 :
MUL
(Multiplication du contenu de l’Acc A par celui de l’Acc. B. le résultat est dans D)
« A= $C1»………………………………………………….. 1 1 0 0
« B= $45» ………………………………………………….. 0 1 0 0
1100
11
0000
0011
0000
01
0 0 11
0100
0000
Résultat
«A= $34»
«B= $05»
C=0
et
0001
0101
0001
01
0101
H non défini
N non défini
Z =0
V non défini
Le bit C représente ici le bit 7 du résultat. Il est utile lorsque l’utilisation n e veut prendre en compte
que les poids forts (Acc A), on peut de cette façon arrondir le résultat.
H-1-2/ Rôle du bit V (b1)- Overflow : Débordement en complément à deux :
Ce bit est l’indicateur de débordement. Il est à mis à un si le résultat (en complément à deux) d’une
opération arithmétique déborde. Les instructions de chargements, stockages, et opération logique
positionnent V à zéro. Les opérations arithmétiques positionnent V dans l’état approprié.
Exemple 1 :
LDA # $12
(Chargement de l’Acc A avec valeur $ 12)
$ 12
A
V= 0
Ici V est forcé à 0
MR : HALAILI MED
Page 7
et
H non défini
N=0
Z =0
C non défini
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
Exemple 2 :
ADDA # $ A0
(adition du contenu du registre A et de la valeur $ A0.)
« A= $ 9E»
1001 1110
+ 1010 0000
1
0011 1110
1
- 98
- 96
débordement
0
Les retenues entre b6-b7 et au –delà de b7 sont
Différentes il y a débordement V = 1
H=0
N=0
Z=0
C=1
et
Exemple 3:
ADDA # $ 96
(adition du contenu du registre A et de la valeur $ 96.)
« A= $ 82»
+
1
0
1000 0010
0110 0000
1110 0010
- 126
+ 96
- 30
Pas de
débordement
0
Les retenues entre b6-b7 et au –delà de b7 sont
Identiques (il n’y a pas débordement) V= 0 et
MR : HALAILI MED
Page 8
H=0
N=0
Z=0
C=1
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
H-1-3/ Rôle de Z(b2)- Zéro (résultat nul ):
Le bit n° 2 est l’indicateur de 0, il est mis à un si le résultat de l’opération précédente est nul. Les
instructions de chargements. De stockages, les opérations logiques est arithmétique positionnent Z
dans l’état approprié.
Exemple 1:
ANDA # $ C4
« et logique » (entre le contenu de l’Acc. A et la valeur Hexadécimale C4. Le
« A= $ 3 B»
résultat est dans A.)
0 0 1 1
1 0 1 1
1 1 0 0
0 1 0 0
0 0 0 0
0 0 0 0
Z = 1 et
H = non défini
N=0
Z=0
C = non défini
Exemple 2:
ANDA # $ C3
« et logique » (entre A et C3. Le résultat est dans A.)
« A= $ 3B»
MR : HALAILI MED
0 0 1 1
1 0 1 1
1 1 0 0
0 0 1 1
0 0 0 0
0 0 1 1
Page 9
Z = 0 et
H = non défini
N=0
Z=0
C = non défini
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
H-1-4/ Rôle de N(b3) - Négative (résultat négatif) :
Le bit n° 3indique un résultat négatif. Il contient exactement le bit de poids fort de l’octet
résultat de l’opération précédente. Un résultat négatif pour une opération en complément à deux
positionne N à un. Les instructions de chargements, stockages, les opérations arithmétiques et
logiques positionnent toutes N à l’état approprié.
Exemple :
LDA # $ C1
(Chargement de l’accumulateur A avec la valeur hexadécimal $C1)
1100 0001
A
b7 =1
N=1
et
H = non défini
Z=0
V=0
C = non défini
H-1-5/ Rôle de H (b5)- Half –Carry (demi retenue) :
Le bit 5 est le bit de demi-retenue. Il est utilisé dans l’ALU comme indicateur de retenu du bit
3 pour l’addition 8 bits seulement. Dans l’opération d’ajustement décimal.
L’instruction DAA utilise le bit indicateur de demi retenue pour les instructions de
soustraction ou équivalentes.
Les instructions du microprocesseur 6809 s’exécutent en fonction de ces indicateurs, et les
positionnent. Certaines instructions de branchement (en complément à deux) utilisent deux
indicateurs (N et V) pour s’assurer de la validité des résultats. En effet, en complément à deux, le bit
N pourra être incorrect. Si l’opération a engendré un déroulement (V = 1).
MR : HALAILI MED
Page 10
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
ADDA # $ 19
C’est-à-dire que l’opération est une opération en
Binaire
27
+ 19
46
0001 1011
+ 0001 0011
0010 1110
ADDA # $ 19
DAA (Ajustement décimal) c'est-à-dire que l’opération
précédente est une opération en DCB
27
+ 19
46
0010 0111
+ 0001 1001
0100 0000
DAA (Ajustement décimal)
0010 0111
+ 0001 1001
0100 0000
+
0110
0 1 0 0 0 1 1 0 = 46
H-2/ Rôle des indicateur d’interruption :
Il existe dans le 6809 trois types d’interruptions matérielles
H-2-1/ Rôle du bit I (b4) ( interrupt mask : masque d’interruption) :
Ce bit lorsqu’il est mis à un masque les interruptions IRQ, seules les interruptions les plus
prioritaires seront alors prises en compte.
H-2-2/ Rôle du bit F (b6) (Fast Interrupt mask : masque d’interruption rapide) :
Ce bit lorsqu’il est à un masque les interruptions FIRQ, seules les interruptions les plus
prioritaires seront alors prises en compte.
H-2-3/ Rôle du bit E (b7) (sauvegarde des registre dans la pile) :
Le bit 7 est l’indicateur de sauvegarde des registres dans la pile. Si E est à un, tout le contexte
du processeur est sauvegarde dans la pile. Si E est à zéro une partie des registres internes est
sauvegardée (PC et CCR).
MR : HALAILI MED
Page 11
INSFP SBA
VI.
MICROPROCESSUER MOTOROLA 6809
Architecture externe du 6809 de Motorola : Voir Figure 06
Le microprocesseur 6809 est un processeur 8 bits dont l'organisation interne est orientée 16 bits. Il se
présente sous la forme d'un boîtier DIP (Dual Inline Package : double rangés de lignes) de 40 broches. Il
est mono tension (5V).
Figure 06 : Brochage du MC 6809
VI.1/ Présentation du brochage :
1. L’alimentation (Vss ,Vcc) : Le microprocesseur est alimenté en 5V uniquement. (Broche Vss c'est le
GND soit 0V, Vcc c'est le 5V)
2. Le bus des données 8 bits (Do à D7) : Ces huit broches sont bidirectionnelles. Elles permettent la
communication avec le bus des données interne du microprocesseur. Bus en logique 3 états.
3. Le bus des adresses 16 bits (A0 à A15) : Ces broches unidirectionnelles transfèrent l'adresse 16 bits
fournie par le microprocesseur au bus d'adresse du système. Bus en logique 3 états.
Remarque : les adresses sont validées sur le front montant de Q.
MR : HALAILI MED
Page 12
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
4. Le bus de contrôle :
La broche Read/Write : Cette broche indique le sens de transfert des données sur le bus des données.
Ligne à logique 3 états.
R/W = 1 lecture en cours (D0 - D7 sont des entrées)
R/W = 0 écriture en cours (D0 - D7 sont des sorties)
Remarque : cette ligne est validée sur le front montant de Q
5. Les lignes d'état du bus :
Les lignes d'état du bus BA (Bus Available : disponible) et BS (Bus State) renseignent les
périphériques du 6809 sur la disponibilité des bus de données et d'adresse.

BA = BS = 0 : les bus de données et d'adresse sont disponible

BA = 0, BS = 1 : le 6809 vient de recevoir une interruption.

BA = 1, BS = 0 : Ce signal apparaît lorsque le microprocesseur rencontre l'instruction de
synchronisation externe (niveau bas sur SYNC). Il attend alors cette synchronisation sur une
des lignes d'interruption. Les bus sont en haute impédance pendant ce temps.

BA = BS = 1 : Signal HALT sur 6809 => Les bus sont à haute impédance. Le microprocesseur
laisse la gestion des bus des données et des adresses à un circuit annexe (contrôleur de DMA).
Les bus sont en haute impédance.
La ligne BA au niveau haut indique que les bus sont en haute impédance.
6. Broche d'initialisation RESET :
Un niveau bas sur cette broche entraîne une réinitialisation complète du circuit.
Conséquences :
 l'instruction en cours est arrêtée
 le registre de pagination (DP) est mis à zéro
 les interruptions IRQ et FIRQ sont masquées
 l'interruption non masquable NMI est désarmée
Pour être active cette ligne doit être maintenue à un niveau bas durant un temps suffisamment long
(plusieurs cycles d'horloge).
Figure 07 : Initialisation RESET MC 6809
MR : HALAILI MED
Page 13
INSFP SBA
MICROPROCESSUER MOTOROLA 6809
7. La broche : HALT (Arrêt du microprocesseur).
Un niveau bas sur cette broche provoque l'arrêt du microprocesseur (mais à la fin de l'exécution de
l'instruction en cours). Il n'y a pas perte des données. (BA = BS = 1). Le déroulement reprend dès que
la broche HALT est à 1.
8. La ligne NMI (Non Masquable Interrupt) : est une ligne d'interruption non masquable. Elle permet
d'exécuter une routine d'interruption dont l'adresse est contenue dans le vecteur FFFC-FFFD. Le
contenu de la totalité des registres du 6809 est sauvegardé dans la pile système.
9. La ligne FIRQ ( Fast Interrupt Request :demande d’interruption rapide) : à son vecteur situé en
FFFA-FFFB, elle est masquée ou non suivant l'état du bit F du registre CC. Les registres du 6809 ne
sont sauvegardés que partiellement (PCL, PCH, CCR).
10. La ligne IRQ (Interrupt Request : demande d’interruption) a son vecteur en FFF8-FFF9. Elle est
conditionnée par le bit I de CC et tous les registres sont sauvegardés. Le déroulement de la routine
peut être interrompu par FIRQ ou NMI.
11. Les sorties E et Q sont des horloges destinées aux
périphériques du processeur. Elles sont en quadrature de
phase.
Figure 08 : Signal en quadrature de phase
12. Entrées d'horloge XTAL et EXTAL :
La fréquence du quartz (horloge) est quatre fois
la fréquence du microprocesseur.
Figure 09 : Entrées d'horloge
13. L’entrée MRDY (Memory ready) : Cette broche de commande permet d'allonger la durée de Eout
pour utiliser des mémoires à temps d'accès long. Active sur un niveau bas.
14. L'entrée accès direct mémoire DMA / BREQ suspend le fonctionnement du 6809, permettant ainsi la
libération des bus pour des périphériques intelligents ou un rafraîchissement de mémoires
dynamiques
MR : HALAILI MED
Page 14
Téléchargement