Académique Documents
Professionnel Documents
Culture Documents
MICROPROCESSEUR
VIVE MORTE
Un microprocesseur est un circuit intégré
complexe caractérisé par une très grande
intégration et doté des facultés fonctionnelles
Bus des adresses
d'interprétation et d'exécution des
instructions d'un programme. Bus des données
Comme dans tout circuit intégré la technologie
de fabrication impose au microprocesseur des Bus des commandes
caractéristiques :
• de temps de réponse qui se traduit par
une plus ou moins grande vitesse d'exécution
des instructions du programme, INTERFACE
E/S
HORLOGE
• et de consommation.
Fig. 5-25 : Système minimal
Exemple
Le microprocesseur 6809 est fabriqué en Fig. 5-25 : Système minimal.
technologie MOS canal N.
Son fonctionnement est synchronisé par Exemple :
une horloge dont la fréquence peut être 1, Pour l'environnement du 6809 :
ou 1.5, ou 2 MHz. Sa consommation type • le bus des données communique avec le
est de 0,5 W. microprocesseur par l'intermédiaire de
huit broches bidirectionnelles (DO à D7),
2. ENVIRONNEMENT MINIMAL d'où la possibilité de traiter des mots de
huit bits ;
Le microprocesseur ne peut fonctionner sans • le bus des adresses avec sa liaison
un environnement minimal comportant (fig. établie par seize broches
5-25) : unidirectionnelles (AO à A15) permet de
• une zone de mémoire vive pour les gérer 216 emplacements mémoires soit 65
données et les résultats, 536 (65 536 = 64 kilo-octets = 64 x 1024
car 1 Ko = 2 10 octets) ;
• une zone de mémoire morte pour le • le bus de commande communique avec
programme, dix bornes (12 pour le microprocesseur
• une ou plusieurs interfaces pour les 6809 E dont l'horloge est externe).
périphériques.
Entre ces différents ensembles les liaisons
fonctionnelles sont assurées par trois groupes 3. FONCTIONS DU
de conducteurs en parallèle, ou bus, ayant MICROPROCESSEUR
chacun une fonction spécifique : Le microprocesseur :
• un bus des données : (Data bus), • organise l'enchaînement des tâches
bidirectionnel qui assure le transfert des précisées dans la mémoire programme :
informations entre le microprocesseur et son - par une exploitation séquentielle des
environnement, et inversement ; son nombre de instructions situées aux adresses successives de
lignes est égal à la capacité de traitement du la mémoire,
microprocesseur ; - avec, éventuellement, des ruptures de
• un bus des adresses : (Adress bus), séquence en fonction des sauts programmés,
unidirectionnel qui permet la sélection des • rythme et synchronise l'exécution de ces
informations à traiter dans un espace mémoire tâches,
qui peut avoir 2n emplacements, avec n = • analyse le contenu du programme,
nombre de conducteurs du bus des adresses ; sélectionne, gère et commande les circuits
nécessaires à l'exécution de chaque tâche,
• un bus de commande : (Control bus), • prend en compte les informations
constitué par quelques conducteurs qui assurent extérieures au système.
la synchronisation des flux d'informations sur
les bus des données et des adresses.
1
4. ARCHITECTURE D'UN Exemple : Instruction CLRA (avec 6809).
MICROPROCESSEUR 8 BITS Mettre à zéro le contenu de l'accumulateur A.
Code programmé : 4 F (16)
Suivant la figure 5-26 Code traité par l'unité de commande et de contrôle : 79 (10) 79
UNITÉ DE COMMANDE est le code machine décimal de l'instruction CLRA.
• COMPTEUR ORDINAL (CO) ou COMPTEUR
PROGRAMME (PC : programm counter).
0 1 0 0 1 1 1 1
Il est constitué par un registre dont le contenu est initialisé
avec l'adresse de la première instruction du programme.
Dès le lancement du programme ce compteur contient
l'adresse de la prochaine instruction à exécuter : DÉCODEUR D’INSTRUCTION
REGISTRE DONNEES
ACCU.
REGISTRE INSTRUCTION MULTIPLEXEUR
R1 Rn INDEX
Code OP. Adresse
POINTEUR DE PILE
COMPTEUR DE
INDICATEURS UAL DECODEUR PROGRAMME
REGISTRES
AUXILAIRES
HORLOGE ou
ALIMENTATION BUS DE COMMANDE BUS DES ADRESSES
QUARTZ
2
■ UNITE DE TRAITEMENT
7 A 7 B 0 Accumulateur A et B de 8
Cette partie regroupe les circuits qui assurent les bits, ou accumulateur D de
traitements nécessaires à l'exécution des instructions. 15 D 0 16 bits
15 X 0 Registre d’index X
UNITÉ ARITHMÉTIQUE ET LOGIQUE (UAL
en français, ALU en anglais). 15 Y 0 Registre d’index Y
C'est un circuit complexe qui assure les fonctions :
15 U 0 Pointeur de pile utilisateur
- ARITHMETIQUES : addition et soustraction,
- LOGIQUES : ET logique, OU logique, OU 15 S 0 Pointeur de pile système
exclusif,
- comparaison, décalage a droite ou 7 DP 0 Registre d’adressage page
décalage a gauche, incrémentation,
15 PC 0 Compteur ordinal
décrémentation, mise a un ou a zéro d'un bit, test
de bit.
7 CCR 0 Registre des codes condition
Une UAL est constituée par un certain nombre de circuits
tels que : complémenteur, additionneur, décaleur, portes
logiques,... Fig. 5-27 : Structure logicielle du 6809.
• ACCUMULATEUR
Un accumulateur est un registre de travail de 8 ou 16 - du jeu d'instructions, avec leur expression
bits qui sert : mnémonique, leur code opération, leur relation
- à stocker une opérande au début d'une fonctionnelle,...
opération arithmétique et le résultat à la fin de l'opération, - des procédures de gestion de la pile,
- à stocker temporairement des données en - des modes d'adressage,
provenance de l'extérieur du microprocesseur , - du comportement des indicateurs d'état,
avant leur reprise pour être rangées en mémoire, - du traitement des interruptions.
- à stocker des données provenant de la Si certaines de ces données sont communes à différentes
mémoire ou de l'UAL (résultat) pour les présenter vers familles de microprocesseurs, d'autres sont spécifiques à
l'extérieur du microprocesseur. une seule famille. À partir de ces données logicielles la
• REGISTRE DES INDICATEURS D'ÉTAT ou mise en œuvre du microprocesseur revient :
REGISTRE DES CODES DE CONDITION • à gérer ses échanges informationnels avec son
environnement mémoire et avec l'extérieur du système,
Les bits de ce registre de 8 bits associé à l'UAL sont à
• et à traiter les informations suivant les
considérer individuellement. Chacun de ces bits est
instructions du programme.
un indicateur dont l'état dépend du résultat de la
dernière opération effectuée. Dans un programme le Exemple : Dans un système automatisé la figure 5-28
résultat du test de leur état conditionne souvent le représente le dialogue du microprocesseur avec la partie
déroulement de la suite du programme. operative et les opérateurs.
• REGISTRE INDEX
Le contenu de ce registre de 16 bits est une adresse. Il est
utilisé dans le mode d'adressage indexé. MICROPROCESSEUR
5- STRUCTURE LOGICIELLE
l'UAL. * Clavier
* Capteurs * Clavier
Pré- * Ecran
La figure 5-27 représente la structure logicielle du * Lecteur de
actionneurs *
cassettes
6809. * Actionneurs Console
La conception et la mise en œuvre des programmes, des Fig. 5-28 : Echanges informationnels avec un microprocesseur
procédés et des règles qui permettent une bonne utilisation
d'un microprocesseur nécessitent la connaissance :
-
3
7. FORMAT D'UNE INSTRUCTION
L'écriture des instructions d'un programme doit respecter Exemple :
un certain format (fig. 5-29). Mise à zéro de l'accumulateur A
En fait une instruction se divise en deux parties ou CLeaR Accumulator A
champs qui contiennent chacun une information s'écrit en langage assembleur : CLRA
spécifique.
10. JUSTIFICATION DES MODES D’ADRESSAGE
Premier champ Deuxième champ
Le code opération précise ce qui est fait sur une opérande
CODE OPÉRATION OPÉRANDE qui peut être :
• une expression numérique en rapport avec une
grandeur,
1 octet 1 ou 2 octets
Exemples :
- Valeur initiale d'un compteur,
Fig. 5-29 : Format d’une instruction. - Valeur de consigne d'une température,
- Mot de sortie pour la commande d'un
L'expression des champs en nombre d'octets, c'est-à-dire automatisme.
en mots de 8 bits (bit : contraction de Binary Digit soit 0 • une adresse à laquelle se trouve ou se range une
ou 1) n'impose pas une programmation en binaire. valeur numérique,
Néanmoins quel que soit le langage de programmation Exemples :
utilisé, le binaire ou langage machine, représente la forme - Adresse de l'emplacement mémoire où se trouve la
dans laquelle le microprocesseur exécute les instructions. valeur numérique à charger dans un registre,
Exemple : - Adresse de l'emplacement mémoire où doit être
L'instruction : Mise à zéro de l'accumulateur A va s'écrire rangé le résultat d'un traitement arithmétique.
en binaire : • ou une adresse sur laquelle il est effectué certaines
0 1 0 0 1 1 1 1 Mot d’un octet opérations.
Aces
Deux quartets : Exemple :
- Adresse d'initialisation d'un registre d'index,
- Adresse d'initialisation du registre pile.
9. LANGAGES DE PROGRAMMATION
Le code opération doit être bien spécifié par rapport à la
nature de l'opérande et à ses conditions de traitement.
Un langage de programmation doit être facile à mettre en Cette différenciation des codes opération relève des
œuvre et se rapprocher de plus en plus d'un langage techniques ou modes d'adressage.
évolué, dont la syntaxe est proche du langage courant. Un
Exemple :
tel langage est d'ailleurs indépendant du type de
Pour la même instruction :
microprocesseur mis en œuvre. • Chargement des registres internes du microprocesseur se
Exemples : Langages PASCAL, FORTRAN,... programme sur le 6809, avec 28 codes opération
différents.
Entre le langage machine et un langage évolué il est
possible d'utiliser :
• un langage hexadécimal dans lequel chacun des
11. EXEMPLES DES PRINCIPAUX MODE
quartets du langage machine est exprimé dans un code de
D’ADRESSAGE DU 6809
numération hexadécimale (les 10 chiffres et les 6 lettres,
de A à F). MODE D'ADRESSAGE INHÉRENT
Le code opération de l'instruction renferme
Exemple :
implicitement le ou les opérandes, il contient toute
Le mot binaire : 0 1 0 0 1111
l'information nécessaire à l'exécution de l'instruction.
s'écrit : 4 F
en langage hexadécimal. Exemple :
CLRA : Mise à zéro du contenu de l'accumulateur
• un langage mnémonique ou langage assembleur
dans lequel chaque code opération est remplacé par une A a pour code opération 4 F, n'a pas d'opérande
expression abrégée anglo-saxonne, de trois lettres. car l'accumulateur A est unique et parfaitement
identifié.
4
MODE D'ADRESSAGE IMMÉDIAT MODE D'ADRESSAGE ETENDU
Au premier octet de l'instruction qui correspond au Au premier octet de l'instruction qui correspond
code opération est immédiatement associée la valeur de au code opération est associé deux octets qui
l'opérande. constituent l'adresse effective de l'opérande.
Le symbole # signifie immédiat dans la syntaxe
Exemple :
assembleur.
Charger l'accumulateur A avec la valeur F 5 qui est le
contenu de l'adresse $ 15 CD :
Exemple
LDA $ 15 CD ou LDA > $ 1 5 CD
Charger l'accumulateur A avec la valeur hexadécimale 8Ø
LDA # $ 8 0 un assembleur force à l'adressage étendu Hexadécimal
immédiat hexadécimal soit l'instruction : B6 15 CD en hexadécimal.
soit l'instruction : 86 8Ø en hexadécimal
MODE D'ADRESSAGE INDEXÉ
Ce type d'adressage permet d'initialiser les Dans ce mode d'adressage l'adresse absolue de
registres internes du microprocesseur. l'opérande est donnée par la somme :
• du déplacement (ou offset) associé au code opération,
MODE D'ADRESSAGE DIRECT
• et d'une base qui est le contenu d'un registre : -
Au premier octet de l'instruction qui correspond - index (X et Y),
au code opération est associé un second octet qui - pointeur de pile (U et S),
représente l'octet de poids faible de l'adresse de la - compteur ordinal (PC).
donnée à traiter.
Avec les possibilités d'auto-incrémentation ou de
L'octet de poids fort de cette même adresse est
décrémentation de 1 ou de 2, ce mode d'adressage
écrit dans le registre d'adressage page DP.
permet de travailler sur des emplacements mémoires
Exemple (fig. 5-30) : adjacents, possibilité intéressante pour le traitement
Charger l'accumulateur A avec la valeur hexadécimale 7 F des tables de données.
rangée à l'adresse D3 42
Exemple : Chargement successif de l'accumulateur A en
mode indexé (fig. 5-31).
LDA $ 42 ou LDA < $ 4 2
force à l'adressage direct
LDA $ 05, X <— index X.
soit l'instruction : 9642 en hexadécimal.
Hexadécimal Déplacement
MÉMOIRE
soit l'instruction : A 6 Ø 5 en hexadécimal.
Instruction 96
ACCUMULATEUR A 42 2ØØ1 2ØØ3
PC PC
7F
IX D23Ø IX D23Ø
2ØØ1
A6 D23Ø 2ØØ1
A6
2ØØ2
Ø5 =Ø5 2ØØ2
Ø5
Pour une page choisie, dont le rang figure dans le 2ØØ3 D235 2ØØ3
PC
registre DP, ce mode d'adressage permet de travailler
sur ses 256 (2 8 ) emplacements ou lignes. Par MÉMOIRE DES DONNEES MÉMOIRE DES DONNEES
réinitialisations successives du registre DP ce mode
d'adressage sur deux octets permet de traiter l'ensemble
des données de l'espace mémoire du microprocesseur.
D235 45 D235 45
Si Z = 1
Fig. 5-32 : Déplacement dans le mode d’adressage relatif Déplacement
RTS • Retour de
RTS 3B 6/15 1
sous-programme
ST • Stockage d'un registre en STA 97 4 2 B7 5 3 A7 4+ 2+
mémoire STB D7 4 2 F7 5 3 E7 4+ 2+
STD DD 5 2 FD 6 3 ED 5+ 2+
STS 10. DF 6 3 10. FF 7 4 10.EF 6+ 3+
STX 9F 5 2 BF 6 3 AF 5+ 2+
TFR • Transfert de registre en
TFR 1F 7 2
mémoire
INSTRUCTIONS RELATIF
NNEMO Co : Code opération, en hexadécimal, de l'instruction pour
DE BRANCHEMENT Co Ne No
NIQUE le mode d'adressage choisi.
BEQ • Branchement BEQ 27 3 2
si égal LBEQ 10.27 5(6) 4 Nc : Nombre de cycles de l'instruction.
BNE • Branchement BNE 26 3 2
si différent LBNE 10.26 5(6) 4 No : Nombre d'octets de l'instruction.
Fig. 5-35 : Principales instructions du 6809.
7
TRAVAUX EXPÉRIMENTAUX DECA 2 cycles
X 256 = 1 280
BNE 3 cycles
1. TEMPORISATION LOGICIELLE Total :1 282 cycles
La temporisation revient à compter ou à décompter du temps en 6
fonction d'une durée fixée comme référence : la base de Période du cycle : 10 s
temps. Base de temps : 10-6 x 1 282 = 1,282 ms.
La structure algorithmique itérative :
POUR Variable = Valeur initiale, AJUSTEMENT D'UNE TEMPORISATION
A Variable = Valeur finale,
RÉPÉTER le traitement, Pour obtenir une temporisation de 5 ms deux solutions
peuvent être envisagées :
est bien adaptée au comptage, au décomptage et à la temporisation
• soit rajouter dans la boucle des instructions NOP (Pas
(fig. 5-36). d'opération) à 2 cycles pour obtenir le temps désiré :
LDA 2 cycles x 1 = 2
DEBUT Mnemo-
Etiquette Opérande DECA 2
nique
+ 7 NOP 14 X 256 = 4 864
CHARGER DANS BNE 3
VALEUR INITIALE LDA #SFF
Total : 4 866 cycles
DECREMENTER
Soit : 4,86 ms
(FAIRE -1) BOUCLE DECA Cette valeur pourrait être une nouvelle base de temps.
• Soit d'emboîter cette première structure, base de
VALEUR =0?
Non
BNE BOUCLE
temps, par une seconde qui est le multiplicateur de
cette base de temps (fig. 5-37).
Oui
Programme en assembleur
FIN
DEBUT Mnemo-
Etiquette Opérande
Fig. : 5-36 : Structure algorithmique représentative d’une temporisation nique
logicielle, et programme en essembleur. CHARGE SØ4 DANS
ACCU. B LDA #SØ4
LDA 2 cyclesx 1 =2
8
Réaliser une liaison parallèle entre le Suivant le cas :
microprocesseur 6809 et ses périphériques. •bit 2 = 0 donne l'accessibilité à DDRA
Le circuit est relié au microprocesseur (fig. 5-38) : •bit 2 = 1 donne l'accessibilité à ORA.
•par le bus des données (8 bits), Exemples
•par le bus des adresses (5 bits), • Accès à DDRA 7 2 Ø
9
10