Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
Année 2009~2010
Architecture des Systèmes EPITA
InfoSPE
DUJARDIN Anne-Sophie
Architecture des Systèmes Anne-Sophie DUJARDIN
2
Architecture des Systèmes Anne-Sophie DUJARDIN
3
Sommaire
Chap.1. Les nombres à virgule flottante ...................................................................................... 4
I. Introduction ................................................................................................................................. 4
II. Conversions ................................................................................................................................. 5
Chap.2. Les Compteurs ...................................................................................................................... 8
I. Principe ........................................................................................................................................ 8
II. Les compteurs/décompteurs asynchrones ................................................................................. 9
III. Compteurs / Décompteurs synchrones ................................................................................. 11
Chap.3. Les Systèmes Numériques ............................................................................................... 15
I. Introduction : Définition ............................................................................................................ 15
II. Les mémoires : Constitution de plans mémoire ........................................................................ 15
III. L’adressage des mémoires et périphériques. ........................................................................ 20
Chap.4. Microprocesseur 68000 .................................................................................................. 26
I. Structure d'un microprocesseur ................................................................................................ 26
II. Le microprocesseur 68000 : Structure et généralités ............................................................... 27
III. Utilisation des registres et de la mémoire ............................................................................ 29
IV. Exécution d'une instruction ................................................................................................... 31
V. Techniques d'adressage ............................................................................................................ 32
VI. Branchements ....................................................................................................................... 40
VII. Les sous programmes ............................................................................................................ 46
VIII. Les exceptions ....................................................................................................................... 50
Chap.5. Introduction aux Microcontrôleurs .............................................................................. 61
I. Généralités – Présentation du composant ................................................................................ 61
II. PIC 16F8X (Annexe 2) ................................................................................................................ 62
Architecture des Systèmes Anne-Sophie DUJARDIN
4
Chap.1. Les nombres à virgule flottante
I. Introduction
1.
Les nombres à virgule flottante sont des approximations rationnelles des nombres réels. &·HVW�� G·DLOOHXUV�� XQH� GHV� UHSUpVHQWDWLRQV� OHV� SOXV� XWLOLVpHV� GDQV� OHV� V\VWqPHV�informatiques.
Les nombres à virgules flottante possèdent un VLJQH�V��XQH�mantisse entière m (parfois DXVVL�DSSHOpH�VLJQLILFDQGH��HW�XQ�H[SRVDQW�H��8Q�WHO�WULSOHW�UHSUpVHQWH�XQ�UpHO�V�P�EH��R��E�HVW� OD�EDVH�GH�UHSUpVHQWDWLRQ��VRXYHQW���PDLV�DXVVL������(Q�IDLVDQW�YDULHU�H��RQ�IDLW�« flotter » la virgule. m est généralement de taille fixée�� &HWWH� QRWLRQ� V·RSSRVH� j� OD�UHSUpVHQWDWLRQ�GLWH�HQ�YLUJXOH�IL[H�R��F·HVW�O·H[SRVDQW�H�TXL�HVW�IL[p�
/HV�GLIIpUHQFHV�GH�UHSUpVHQWDWLRQ� LQWHUQH�GHV�QRPEUHV�IORWWDQWV�G·XQ�RUGLQDWHXU�j�XQ�autre obligeait à reprendre finement les programmes de calculs scientifiques pour les SRUWHU� G·XQH� PDFKLQH� j� XQH� DXWUH� MXVTX·j� FH� TX·XQ� IRUPDW� QRUPDOLVp� VRLW� SURSRVp� SDU�O·,QVWLWXWH�RI Electrical and Electronics Engineers (IEEE).
Définition
2.
La norme IEEE Standard for binary Floating-Point Arithmetic (ANSI/IEEE Standard 754 - 1985) a été définie dans le but d'améliorer la qualité du calcul flottant et la portabilité des applications. Ce standard est maintenant utilisé et respecté par tous les acteurs principaux du calcul scientifique�� $LQVL�� OD� TXDVL-totalité des architectures DFWXHOOHV� LQFOXHQW� XQH� LPSOpPHQWDWLRQ� PDWpULHOOH� GHV� FDOFXOV� VXU� OHV� IORWWDQWV� ,(((��GLUHFWHPHQW�GDQV�OH�PLFURSURFHVVHXU��JDUDQWLVVDQW�XQH�H[pFXWLRQ�UDSLGH��
Cette norme spécifie 2 formats de nombre en virgule flottant (aussi appelés flottants) et les opérations associées. Ces flottants peuvent être codés sur 32 bits (flottants simple précision) ou 64 bits (double précision). Ils sont définis par 3 champs : un signe 6��XQH�PDQWLVVH�0�HW�XQ�H[SRVDQW�(��8Q�QRPEUH�DLQVL�FRGp�HVW�GRQné par :
(െ1) . (ܯ,1)2. 2
ݏܤെܧ
Norme IEEE 754
Architecture des Systèmes Anne-Sophie DUJARDIN
5
La répartition des bits et la valeur du biais pour chacun des formats est donnée par le tableau suivant :
Signe(S) Exposant (E) Mantisse (M) Biais Simple Précision 1 8 23 127 Double Précision 1 11 52 1023
II. Conversions
1.
3RXU�FRQYHUWLU�XQ�QRPEUH�UpHO�U�HQ�IORWWDQW�,(((��LO�IDXW :
Décimal -> IEEE 754
9 Déterminer le bit de signe S : - si ݎ > , = 0 - si ݎ < , = 1
9 Convertir la valeur absolue en binaire fractionnaire avec le maximum de précision possible selon le format utilisé
Rappel ��&RQYHUVLRQ�G·XQ�UpHO�HQ�ELQDLUH�IUDFWLRQQDLUH : - Partie entière : méthode des divisions successives par 2 - Partie Fractionnaire : méthode des multiplications successives par 2
3RXU�SOXV�GH�SUpFLVLRQ��VH�UHSRUWHU�DX�FRXUV�GH�683� 9 Normaliser OH�QRPEUH�ELQDLUH�IUDFWLRQQDLUH�REWHQX��F·HVW-à-dire le
mettre sous la forme (1, M). 2e
9 Déterminer E en fonction de e et du biais 9 (FULUH�OH�UpVXOWDW�VRXV�IRUPH�ELQDLUH�HQ�MX[WDSRVDQW�OHV�GLIIpUHQWV�
champs de la façon suivante : SEM
2.
3RXU�FRQYHUWLU�XQ�IORWWDQW�,(((�HQ�GpFLPDO��LO�IDXW :
IEEE 754 -> Décimal
9 Déterminer le signe en fonction de S 9 Déterminer e en fonction de E et du Biais 9 Déterminer m2 = (1, M)2 sous forme binaire fractionnaire 9 Ecrire le résultat sous la forme ±m2. 2
e 9 Simplifier si nécessaire (en déplaçant la virgule suivant la puissance
de 2) et convertir le nombre binaire obtenu en décimal (cf. cours de SUP)
Architecture des Systèmes Anne-Sophie DUJARDIN
6
3.
a.
Représentation des valeurs particulières
3RXU�FRGHU�OD�YDOHXU�GpFLPDOH����OHV�FKDPSV�M et E sont à 0. Seul S peut (éventuellement) être à 1
Le Zéro
b.
9 S = 6LJQH�GH�O·,QILQL
Les Infinis
9 E = Que des 1
9 M = 0
c.
/H�SOXV�SHWLW�QRPEUH��HQ�YDOHXU�DEVROXH��DGPHWWDQW�XQH�UHSUpVHQWDWLRQ�GLWH�QRUPDOLVpH�en format IEEE 754 est 2
1െBiais (puisque 2
െBiais ՞ 0��� 2U�� OD� QRUPH� IEEE 754 permet également de représenter des nombre plus petits en acceptant que leur représentation ne soit pas normalisée.
Une représentation dénormalisée se reconnait à :
Formats Dénormalisés
E = 0 et M 0
/D�YDOHXU�DLQVL�UHSUpVHQWpH�HVW�DORUV�GRQQpH�SDU�O·H[SUHVVLRQ�VXLYDQWH : (െ1)S
. m2. 21െBiais .
/D�FRQYHUVLRQ�VH�IDLW�GRQF�TXDVLPHQW�GH�OD�PrPH�PDQLqUH�TX·HQ�IRUPDW�QRUPDOLVp�
d.
Certains codes sont prévus pour représenter les « erreurs ª�RX�Q·LPSRUWH�TXHOOH�HQWLWp�qui ne serait pas un nombre. Ce sont les Not A Number (NaN).
Les codes réservés à cet effet sont de la forme :
Not A Number
E = Que des 1 et M 0
/HV�1D1�VHUYHQW��SDU�H[HPSOH��j�SURSDJHU�FRQYHQDEOHPHQW�OHV�HUUHXUV�ORUV�GHV�FDOFXOV�
Architecture des Systèmes Anne-Sophie DUJARDIN
7
4.
ܧ
Synthèse
Correspondance ܯ0 0 0 0 0 (െ1)
.2. 2
1െݏܤ 0 mais pas que des 1 quelconque (െ1)
. .2(ܯ,1) 2
ݏܤെܧ Que des 1 0 (െ1)
.�
Que des 1 0 NaN
Architecture des Systèmes Anne-Sophie DUJARDIN
8
Chap.2. Les Compteurs
I. Principe
Un compteur est un circuit séquentiel qui permet de dénombrer des impulsions appliquées sur son entrée d'horloge (clk ou H) et de restituer sur ses sorties des informations sous forme binaire. A chaque impulsion l'état du compteur est modifié et entre deux impulsions son état reste stable.
Ex ��2Q�YHXW�FRPSWHU����������2Q�D�GRQF�EHVRLQ�GH���YDULDEOHV�4��HW�4��
H Q1 Q0
1er front 0 0 2ème front 0 1 3ème front 1 0 4ème front 1 1 5ème front 0 0
Il y a deux types de comptage :
9 Le comptage asynchrone,O�V·DJLW�G·XQH�DVVRFLDWLRQ�GH�EDVFXOHV�HQ�VpULH��&KDTXH�EDVFXOH�IDLW�FRPPXWHU�la suivante par liaison sortie~horloge. Chaque bascule possède donc une horloge différente.
:
9 Le comptage synchrone,O�V·DJLW�G·XQH�DVVRFLDWLRQ�GH�EDVFXOHV�HQ�SDUDOOqOH��&KDTXH�EDVFXOH�FRPPXWH�HQ�IRQFWLRQ� GH� O·pWDW� GHV� VRUWLHV� SUpFpGHQWHV�� ,FL�� WRXWHV� OHV� EDVFXOHV� RQW� OD�même horloge.
:
H
Q0
Q1
Architecture des Systèmes Anne-Sophie DUJARDIN
9
Il y a deux types de cycles :
9 Les cycles completsLe compteur passe par tous les 2
états définis par les sorties des bascules.
:
9 Le comptage synchroneLe compteur parcourt une partie seulement des 2
états définis par les sorties des bascules.
'DQV�WRXV�OH�UHVWH�GX�FRXUV��RQ�Q·XWLOLVHUD�GHV�bascules D ou JK synchronisées sur front (montant ou descendant).
:
II. Les compteurs/décompteurs asynchrones
1.
8QH� EDVFXOH� FkEOpH� HQ� FRPPXWDWLRQ� SHUPDQHQWH� FKDQJH� G·pWDW� j� FKDTXH� QLYHDX� DFWLI�G·KRUORJH�
Bascules câblées en commutation permanente
Notation générale
: Bascule D ou JK câblée en commutation permanente :
2.
a.
Comptage asynchrone à cycle complet : Exemple avec 3 bascules
Avec bascules synchronisées sur front montant
H
Q0
Q1
Q2
ܪ
ത
Architecture des Systèmes Anne-Sophie DUJARDIN
10
b.
Avec bascules synchronisées sur front descendant
3.
a.
Comptage/Décomptage asynchrone à cycle complet : Synthèse
9 Liaison aux 1+ܪ : Décomptage sur les
Bascules synchronisées sur front montant
Comptage sur les ഥ 9 Liaison Qi
തതത aux Hi+1 : Comptage sur les Qi Décomptage sur les ഥ
b.
9 Liaison aux 1+ܪ : Décomptage sur les
Bascules synchronisées sur front descendant
Comptage sur les ഥ 9 Liaison ഥ aux 1+ܪ : Comptage sur les
Décomptage sur les ഥ
1
1തതത
2
ത2
ܪ
0
ത0
H
Q0
Q1
Q2
1
1തതത
2
ത2
ܪ
0
ത0
Architecture des Systèmes Anne-Sophie DUJARDIN
11
4.
Exemple : Comptage de 0 à 4 avec des bascules synchronisées sur front descendant.
On veut réaliser le cycle suivant :
2Q�YD�SDUWLU�GH�OD�EDVH�G·XQ�FRPSWHXU�DV\QFKURQH�j�F\FOH�FRPSOHW�HW�RQ�YD�DJLU�VXU�OHV�entrées asynchrones de forçage à 0 et à 1.
2Q� UHPDUTXH� TXH� OH� FRPSWHXU� FRPSWH� GDQV� O·RUGUH� MXVTX·j� �� HW� TXH� FKDTXH� pWDW� GRLW�GXUHU�SHQGDQW�XQH�SpULRGH�G·KRUORJH��,O�IDXW�HQVXLWH�OH�UHPHWWUH�j����
A quel moment faut-il faire ce forçage à 0 "�6L�RQ�IRUFH�j���ORUVTXH�OH�FRPSWHXU�HVW�j����O·pWDW� �� QH� GXUHUD� SDV� SHQGDQW� XQH� SpULRGH� G·KRUORJH�� OHV� HQWUpHV� GH� IRUoDJH� pWDQW�DV\QFKURQHV«� ,O� IDXW� GRQF� ODLVVHU� SDVVHU� OH� FRPSWHXU� j� �� HW� F·HVW� VHXOHPHQW� j� FH�PRPHQW�Oj�TX·RQ�GRLW�DJLU�VXU�OHV�HQWUpHV�6HW�HW�5HVHW�SRXU�UHPHWWUH�OH�FRPSWHXU�j���
3RXU�FHW�H[HPSOH��VXSSRVRQV�OHV�HQWUpHV�6HW�HW�5HVHW�DFWLYHV�DX�QLYHDX�KDXW��
Comptage/Décomptage asynchrone à cycle incomplet
2 1 0 2,2,0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 X 1 1 1 X
Traduisons cette table de vérité en tableau de Karnaugh :
2 \10 00 01 11 10 0 1 1 1 1 1 1 0 X X
On trouve alors : R2 = R2 = R0 = Q2തതതത + Q0
തതതത = Q2. Q0തതതതതതതത
III. Compteurs / Décompteurs synchrones
Architecture des Systèmes Anne-Sophie DUJARDIN
12
1.
Principe
But
2.
: Déterminer le système combinatoire qui définit les entrées synchrones pour obtenir le cycle désiré.
Réalisation avec des bascules D.
Exempl
2
e : Compteur Modulo 8.
0ܦ 1ܦ 2ܦ 0 10 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0
La table de vérité ci-dessus permet de déterminer les équations des entrées D des bascules afin de décrire le cycle désiré. Cherchons maintenant les équations.
Solution évidente : D0 = Q0തതതത
Système Combinatoire
0
0തതതത
ܪ
D Q
QH
0
D Q
QH
1
D Q
QH
Architecture des Systèmes Anne-Sophie DUJARDIN
13
2\10 00 01 11 10 0 0 1 0 1 1 0 1 0 1
1ܦ = 1തതത0 + 10
തതതത = 1 0
2\10 00 01 11 10 0 0 0 1 0 1 1 1 0 1
2ܦ = 2
തതതത.10 + 21തതത + 20
തതതത = 2
തതതത10 + 2(1തതത + 0
തതതത) = 2തതതത10 + 2(1.0
തതതതതതതത) = 2 (10)
Le principe reste le même pour construire un compteur à cycle incomplet.
3.
a.
Réalisation avec des bascules JK.
Afin de GpWHUPLQHU�OHV�pTXDWLRQV�GHV�HQWUpHV�-�HW�.�GH�FHV�EDVFXOHV��établissons la table des transitions
��IURQW�G·KRUORJH
Table des transitions :
Q(t) Q(t+1) J K
0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0
1ière ligne : Q passe de 0 à 0 ї état mémoire ��-� ����.� �� ї mise à 0 ��-� ����.� �� 2ième ligne : Q passe de 0 à 1 ї Mise à 1 : J = 1 et K = 0 ї Commutation : J = 1 et K = 1 3ième ligne : Q passe de 1 à 0 ї mise à 0 : J = 0 et K = 1 ї Commutation J = 1 et K = 1 4ième ligne
b.
: Q passe de 1 à 1 ї Etat mémoire: J = 0 et K = 0 ї Commutation J = 1 et K = 0
Compteurs à cycles complets et incomplets
Architecture des Systèmes Anne-Sophie DUJARDIN
14
Exempl
2
e : Compteur Modulo 8.
0ܭ 0ܬ 1ܭ 1ܬ 2ܭ 2ܬ 0 10 0 0 0 X 0 X 1 X 0 0 1 0 X 1 X X 1 0 1 0 0 X X 0 1 X 0 1 1 1 X X 1 X 1 1 0 0 X 0 0 X 1 X 1 0 1 X 0 1 X X 1 1 1 0 X 0 X 0 1 X 1 1 1 X 1 X 1 X 1
La table de vérité ci-dessus permet de déterminer les équations des entrées D des bascules afin de décrire le cycle désiré. Cherchons maintenant les équations.
Solution évidentes
0 = 0 = 1 1ܬ = 1ܭ = 0
Pour J2
2\10 00 01 11 10 0 0 0 1 0 1 X X X X
Pour K2
Q2\Q1Q0 00 01 11 10 0 X X X X 1 0 0 1 0
On obtient alors : 2ܬ = 2ܭ = 10
Le principe reste le même pour construire un compteur à cycle incomplet.
1 front
Architecture des Systèmes Anne-Sophie DUJARDIN
15
Chap.3. Les Systèmes Numériques
I. Introduction : Définition
Un système numérique est un ensemble de composants numériques autonome comportant au moins un microprocesseur (µP).
Le rôle du microprocesseur est de gérer l'ensemble. Il communique avec les autres FRPSRVDQWV� VRLW� GLUHFWHPHQW� YLD� OH� EXV�� VRLW� SDU� OH� ELDLV� GH� OXQLWp� GpFKDQJH�(traducteur de protocole)
II. Les mémoires : Constitution de plans mémoire
1.
Une mémoire est un composant numérique capable de stocker des informations (instruction et/ou données).
Introduction
Les systèmes utilisent souvent l'architecture de Von Neumann1
1 5T���3DU�RSSRVLWLRQ��O·DUFKLWHFWXUH�GH�W\SH�+DUYDUG�HVW�XQH�FRQFHSWLRQ�GH�
: la mémoire contient donc à la fois les instructions ET les données.
microprocesseurs qui VpSDUH� SK\VLTXHPHQW� OD� PpPRLUH� GH� GRQQpHV� HW� OD� PpPRLUH� SURJUDPPH�� /·DFFqV� j� FKDFune des GHX[� PpPRLUHV� V·HIIHFWXH� YLD� GHX[� EXV� GLVWLQFWV�� &HVW� OH� FDV� GHV� PLFURFRQWU{OHXUV� 3,&�� SDU�exemple.
µP
Mémoire
Unité d'échange
µP
Mémoire
Moniteur
Bus
Architecture des Systèmes Anne-Sophie DUJARDIN
16
Les instructions sont donc exécutées de façon séquentielles et dans l'ordre de stockage. Il n'y a donc pas de calculs complexes à faire pour connaître l'adresse de la prochaine instruction.
2.
Organisation externe
9 Bus de données
9
: il contient la donnée à lire ou à écrire. Il est bidirectionnel
%XV�G·DGUHVVH
9
: Il cRQWLHQW�O·DGUHVVH�GH�OD�FDVH�PpPRLUH�FRQFHUQpH�SDU�OD�OHFWXUH�RX�O·pFULWXUH. C'est une entrée
Bus de commandes
o
:
AS
o
: (Address Strobe) ��YDOLGDWLRQ�GX�%XV�G·adresse. C'est une entrée
DTACK
o
(Data Acknowledge) : validation du bus dus de données. C'est une sortie.
CS (Chip Select) ou CE
o Rഥ/W R/Wഥ (Read/Write) : Signal de lecture/écriture. C'est une entrée.
(Chip Enable) : sélection de boitier. C'est une entrée.
MEMOIRE
Bus de Données
Bus D'Adresses
AS
CS
R/W
DTACK
Bus De
Commande
Architecture des Systèmes Anne-Sophie DUJARDIN
17
3.
Une mémoire est caractérisée par les informations suivantes :
Caractéristiques
9 /DUJHXU� G·XQH� PpPRLUH
9
�� &HVW� OD� WDLOOH� GXQ� PRW�� FHVW-à-dire la taille d'une information transférable en un seul cycle de lecture/écriture. La largeur est donc égale à la taille du bus de donnée.
Profondeur d'une mémoire
Rq : On parle souvent de lDUJHXU�G·XQ�EXV�pour définir le nombre de fils du bus.
: C'est le nombre GH�PRWV�TX·RQ�SHXW�VWRFNHU dans la mémoire�� (OOH� GpILQLW� OD� WDLOOH� GX� EXV� G·#� Par exHPSOH�� Vi le bus d'adresses FRPSUHQG� N� ILOV�� OD� SURIRQGHXU� VHUD� GH� 2
(= nombre d'adresses différentes qu'on peut générer avec k bits)
9 Capacité
Le tableau suivant définis les multiples des unités utilisées pour définir les grandeurs relatives aux mémoires.
: Largeur * profondeur.
Symbole Préfixe Correspondance
K Kilo(binaire) 210
M Méga(binaire) 220
G Giga(binaire) 230
T Tera(binaire) 240
4.
On a parfois besoin de constituer des mémoires avec des largeurs et des profondeurs GLIIpUHQWHV� GH� FHOOHV� GHV� ERLWLHUV� j� QRWUH� GLVSRVLWLRQ�� SRXU� OHV� UHQGUH�� SDU� H[HPSOH��compatibles avec les microprocesseurs.
Constitution de plans mémoire
Exemple : un microprocesseur 16 bits (taille du bus de données) utilise des mémoires de 16 kmots. On a à notre disposition des blocs mémoire de capacité égale à 16 Ko.
Architecture des Systèmes Anne-Sophie DUJARDIN
18
Deux cas de figure principaux se présentent alors : 9 Soit on dispose de mémoires de largeur 8 bits.
Ă3 Mem.
7DLOOH�EXV�# 14 14
Taille bus données 16 8
La mémoire et le processeur sont non compatibles en largeur. On va donc associer des mémoires de façon à les rendre compatible en largeur en réalisant un montage parallèle.
9 Soit on dispose de mémoires de largeur 16 bits.
Ă3 Mem.
7DLOOH�EXV�# 14 13
Taille bus données 16 16
La mémoire et le processeur sont non compatibles en profondeur. On va donc associer des mémoires de façon à les rendre compatible en profondeur en réalisant un montage série.
6L�OHV�PpPRLUHV�HW�OH�SURFHVVHXU�VRQW�QRQ�FRPSDWLEOHV�HQ�ODUJHXU�(7�HQ�SURIRQGHXU��RQ�réalisera un montage série/parallèle.
a.
/REMHFWLI�GH�FHWWH�association est d'augmenter la largeur de la mémoire.
Reprenons l'exemple précédent : on veut construire une mémoire - appelons-la Mem 1 - de largeur égale à 16 bits et de profondeur égale à 16kmots
On dispose de boitiers – appelons-les Mem 2 – tels que :
Association en parallèle
9 largeur = 8 bits
9 profondeur = 16 Kmots
Architecture des Systèmes Anne-Sophie DUJARDIN
19
Nous devons doubler la largeur des boitiers Mem2. On utilisera donc deux boitiers de ce type de mémoire.
'DQV�FH�FDV��OHV�LQIRV�VXU�OH�EXV�GH�FRPPDQGH�VRQW�OHV�PrPH�SRXU�WRXWHV�OHV�PpPRLUHV�
b.
/REMHFWLI�GH�FHWWH�association est d'augmenter la profondeur de la mémoire.
Reprenons l'exemple précédent : on veut construire une mémoire - appelons-la Mem 1 - de largeur égale à 16 bits et de profondeur égale à 16kmots
On dispose de boitiers – appelons-les Mem 3 – tels que :
Association en série :
9 largeur = 16 bits
9 profondeur = 8 Kmots
Mem 2
MSB
Mem 2
LSB
14
14 14
8 8
16
16
Commande
Mem 1
@ @
Architecture des Systèmes Anne-Sophie DUJARDIN
20
Nous devons doubler la profondeur des boitiers Mem 3. On utilisera donc deux boitiers de ce type de mémoire.
Les infos du bus de commande (sauf CS) sont les mêmes pour toutes les mémoires.
III. /·DGUHVVDJH�GHV�PpPRLUHV�HW�SpULSKpULTXHV�
1.
'DQV�OHV�V\VWqPHV�j��S��O·HVSDFH�PpPRLUH�DGUHVVDEOH�HVW�SDUWDJp�HQ�SOXVLHXUV�]RQHV�TXL�SHUPHWWHQW� OD� ORFDOLVDWLRQ�� GRQF� OD� VpOHFWLRQ� H[FOXVLYH� GH� FLUFXLWV� PpPRLUHV ou de circuits périphériques.
7RXV� FHV� FLUFXLWV� GRLYHQW� rWUH� DFFHVVLEOHV� j� GHV� DGUHVVHV� SUpGpILQLHV� VDQV� TX·LO� \� DLW�UHFRXYUHPHQW�GH�]RQH��FH�TXL�HQWUDLQHUDLW�GHV�FRQIOLWV�G·DFFqV�
3RXU� UpDOLVHU� FHOD�� RQ� SURFqGH� j� GHV� WHFKQLTXHV� GH� GpFRGDJH� GX� EXV� G·DGUHVse qui V·RSqUHQW�HQ�GHX[�SKDVHV :
Introduction
9 La sélection des adresses physique
9 La sélection des adresses de base
Mem 3
A
CS
13
13
@
@
A12:0
14
&
&
Mem 3
B
CS
A13
Commande.
Mem 1
8
8 8 CS
Architecture des Systèmes Anne-Sophie DUJARDIN
21
2.
Une mémoire de 2n mots ou un circuit périphérique de 2
n registres adressables nécessitent n fils G·DGUHVVH�SRXU�OD�VpOHFWLRQ�GH�O·XQ�GH�Ves mots ou registres. Ces n fils G·HQWUpH�VRQW�VLPSOHPHQW�UpXQLV�DX[�Q�ELWV�GH�SOXV�IDLEOH�SRLGV�GX�EXV�DGUHVVH�
Décodage d'adresse : Sélection des adresses physiques :
$LQVL��XQH�PpPRLre de 4Kmots (soit 212��QpFHVVLWH����ILOV�G·HQWUpH�UpXQLV�DX[�ELWV�A11 à A0 GX�EXV�G·adresse. Un circuit périphérique de 4 registres internes (RI) (2
2) nécessite ��ILOV�G·HQWUpH�UpXQLV�DX[�ELWV��A1 . A0 GX�EXV�G·DGUHVVH��G·XQ��S��
Nous obtenons le schéma suivant :
&HWWH�SUHPLqUH�SKDVH�G·DGUHVVDJH�V·HIIHFWXH��VDXI�FDV�SDUWLFXOLHUV��WRXMRXUV�GH�OD�PrPH�façon.
3.
Si un système à �S�FRQWLHQW�SOXVLHXUV�PpPRLUHV�HW�SpULSKpULTXHV��RQ�GRLW�SURFpGHU�j�OD�VpOHFWLRQ�G·XQ�VHXO�FLUFXLW�j�FKDTXH�DFFqV��DIIHFWDWLRQ�H[FOXVLYH���&·HVW�OD�SKDVH�GLWH�GH�“décodage adresse”.
7RXW� FLUFXLW� pOHFWURQLTXH� DGUHVVDEOH� GLVSRVH� GH� VLJQDX[� G·HQWUpH� GH� YDOLGDtion de boitier. Ce sont ces signaux (CS ou CE) qui seront exploités par la fonction de décodage GH�O·DGUHVVH�GH�EDVH�G·XQ�FLUFXLW�
&HWWH� VpOHFWLRQ� V·HIIHFWXH� SDU� OD� JHVWLRQ� GH� WRXW� RX� SDUWLH� GHV�ELWV� GX�EXV� G·DGUHVVH�(bits de poids fort) qui ne sont pas uWLOLVpV� SDU� OD� �qUH� SKDVH�G·DGUHVVDJH� �DGUHVVDJH�physique).
(Q� UHSUHQDQW� QRWUH� H[HPSOH� SUpFpGHQW�� RQ� SHXW� V·DWWHQGUH� j� O·RUJDQLVDWLRQ� VXLYDQWH : �EXV�#�VXU���ELWV�
Décodage d'adresse : 6pOHFWLRQ�GH�O·DGUHVVH�GH�EDVH :
µp
MEMOIRE 4KMots
Périphérique 4RI
ܣ 0ܣ.
0ܣ. 11ܣ
0ܣ. 1ܣ
BUS @
Architecture des Systèmes Anne-Sophie DUJARDIN
22
3RXU�UpDOLVHU�OD�IRQFWLRQ�GH�´GpFRGDJH�DGUHVVH�GH�EDVHµ��RQ�D�UHFRXUV�j�GHX[�PRGHV�de sélection d'adresses :
9 L'adressage par sélection linéaire
9 L'adressage SDU�VpOHFWLRQ�GH�]RQHV��
Ces deux modes se combinent souvent entre eux et entrainent à des équations logiques ± complexes mises en pratique par des techniques de logique câblée ou programmée (circuits programmables).
Remarque :
3RXU� TX·XQ� GpFRGDJH� DGUHVVH� VRLW� RSpUDWLRQQHO�� LO� IDXW� LPSpUDWLYHPHQW� UDMRXWHU� DX�PpFDQLVPH� GH� GpFRGDJH� GHV� DGUHVVHV�� GHV� VLJQDX[� GH� YDOLGDWLRQV� GH� OD� IRQFWLRQ� GH�GpFRGDJH��&HV�VLJQDX[�GH�FRQGLWLRQ�YDOLGHQW�O·pFKDQWLOORQQDJH�GX�EXV�adresse et le sens des transferts (ex : AS_RD_WR�� HW�SDUIRLV��LQKLEHQW�OD�Ionction de décodage pour des cycles particuliers du processeur (ex: it��=bus�����
Nous obtenons le schéma suivant :
Fonction de décodage @
de base
՜ éݐ
BUS ADRESSE
՜ ݐ
BUS de COMMANDE
Sélection des Boitiers
15:0ܣ
11:0ܣ 1:0ܣ 9:0ܣ
RAM CS
µP
Fonction décodage
@ de base
ROM CS
Périph CS
15ܣ
14ܣ
13ܣ
12ܣ
Architecture des Systèmes Anne-Sophie DUJARDIN
23
&HUWDLQV� SURFHVVHXUV� RIIUHQW� OD� SRVVLELOLWp� G·DFFpGHU� GLUHFWHPHQW� j� GHV� FLUFXLWV�SpULSKpULTXHV��'DQV�FHWWH�VWUXFWXUH��OHV�WUDQVIHUWV�G·(QWUpH�6RUWLHV�VRQW�LPSOpPHQWpV�par des instructions spécifiques aux périphériques et font intervenir des signaux particuliers pour les échanges.
'DQV� FH� FDV�� OH� GpFRGDJH� d'adresses devra intégrer la gestion de ces signaux (par exemple : signaux VMA et VPA du 68K)
a.
'DQV� FH� PRGH�� OD� PpWKRGH� FRQVLVWH� j� UHOLHU� GHV� OLJQHV� G·DGUHVVHV� LQGLYLGXHOOHV�� DX[�boîtiers mémoires ou périphériques.
Exemple sur un bus d'adresses de 16 bits:
Soit un système utilisant une RAM de 2KPRWV�� XQH� 520� GH� �.PRWV� HW� XQ� FLUFXLW�G·(QWUpH�6RUWie “PERIPH1” utilisant 16 mots. Nous DOORQV�HIIHFWXHU��DUELWUDLUHPHQW�� OD�sélection suivant :
Adressage par sélection linéaire.
6pOHFWLRQ�GHV�#�SK\VLTXHV: RAM 2KM 11 fils sont nécessaires �#A10 . A0) ROM 1KM 10 fils sont nécessaires �#A9 . A0) PERIPH1 16Mots 4 fils sont nécessaires �#A3 . A0)
Il nous reste alors de disponible pour la sélection des adresses de base:
o 15ܣ ՜ Séléction RAM : ܯܣܥ = 15ܣ.ܣo 14ܣ ՜ Sélection ROM : ݎܥ = 14ܣ.ܣo 13ܣ ՜ Sélection PERIPH : ݎܥ = 13ܣ.ܣo 12ܣ (non utilisé) o 11ܣ (non utilisé)
On obtient la sélection suivante :
15ܣ 14ܣ 13ܣ 12ܣ ܣ 1ܣ 0ܣ 2
RAM ROM PERIPH1
Architecture des Systèmes Anne-Sophie DUJARDIN
24
([SORLWDWLRQ�GH�O·HVSDFH�PpPRLUH :
@ de sélection
RAM @ 8000 à 87FF @ 8000 = adresse de base
ROM @ 4000 à 43FF @ 4000 = adresse de base
PERIPH1 @ 2000 à 200F @ 2000 = adresse de base
5HSUpVHQWDWLRQ�GH�O·HVSDFH�mémoire.
Avantages de ce mode
6LPSOLFLWp��SDV�GH�ORJLTXH�VSpFLDOH�
:
Inconvénients de ce mode
9 $XFXQH� SURWHFWLRQ� FRQWUH� OHV� FRQIOLWV� G·DFFqV� (ex:
:
adressage de la RAM en C000). Si on veut éviter ces conflits�� LO� IDXdrait UDMRXWHU�GHV�RSpUDWHXUV�ORJLTXHV��FH�TXL�DMRXWH�GH�OD�FRPSOH[LWp�DX�PRGH (ex : RAM : A15 ����A14 = 0 et A13 = 0)
9 ([SORLWDWLRQ�OLPLWpH�GH�O·HVSDFH�PpPRLUH
9 Evolution du système tUqV� OLPLWpH� �SRXU� UDMRXWHU� GHV� FLUFXLWV�supplémentaires).
Cl
…
: Ce mode convient parfaitement pour des petits systèmes à base de µp (système dédié).
RAM
…
ROM
…
PERIPH1
…
FFFF
87FF
8000
43FF
4000
200F
2000
0000
Architecture des Systèmes Anne-Sophie DUJARDIN
25
b.
'DQV� FH� PRGH�� RQ� GpFRXSH� O·HVSDFH� PpPRLUH� HQ� ]RQHV� �RX� EORFV��� &KDTXH� ]RQH se caractérise par une profondeur mémoire fixe (appelée BANK).
$GUHVVDJH�SDU�VpOHFWLRQ�GH�]RQHV�
/H�SULQFLSH�SUHQG�HQ�FRPSWH�GHX[�pOpPHQWV���OD�]RQH�PD[LPDOH�DGUHVVDEOH�HW�OH�QRPEUH�GH�]RQHV�GpILQL�GDQV�O·HVSDFH�PpPRLUH� La méthode consiste à prendre les n bits de poids fort du bus adresse qui permettent de créer les 2n ]RQHV�VpOHFWDEOHV�
Exemple
9
: 6RLW�XQ�EXV�G·DGUHVVH�GH����ELWV��2Q�VRXKDLWH�GpFRXSHU�O·HVSDFH�DGUHVVDEOH�HQ�blocs de 8Kmots.
Adressage physique
9 ,O�UHVWH�GRQF���ILOV�SRXU�O·DGUHVVDJH�GH�base. On pRXUUD�GRQF�FUpHU���]RQHV�GH�8Kmots chacune.
: 8Kmots = 213��soit 13 fils reliés aux 13 bits de poids IDLEOH�GX�EXV�G·DGUHVVH��12:0ܣ)
Remarques
9 Risques de redondance pour les blocs partiellement exploités (sinon place sur Y2 XQH�PpPRLUH�GH��.��HOOH est accessible de 2000 à 2FFF et de 3000 à 3FFF).
:
9 Possibilité de construire une mémoire FRQWLJ�H�TXL�H[SORLWH�O·HQVHPEOH�GH�O·HVSDFH�adressable.
Fonction de décodage @
de base
15ܣ 14ܣ 13ܣ
AS
0
1
2
7
Architecture des Systèmes Anne-Sophie DUJARDIN
26
Chap.4. Microprocesseur 68000
Document lié : Annexe 1 – Documentation Motorola 68000
I. Structure d'un microprocesseur
Un microprocesseur comprend les éléments suivants :
9 Une unité de calcul
9 Une unité de décodage et de séquencement des instructions
9 Des unités "mémoire"
9 Des compteurs
1.
C'est l'organe capable de faire des calculs arithmétiques et logiques. La réponse fournie par l'ALU comprend non VHXOHPHQW� OD�YDOHXU�GX�UpVXOWDW��PDLV�DXVVL�GHV� LQGLFDWHXUV�GH�condition (les flags).
L'unité de calcul : Unité Arithmétique et Logique (UAL ou ALU)
2.
C'est l'organe chargé de décoder les instructions pour déterminer l'opération à réaliser et l'adresse des opérandes.
Le séquenceur peut être câblé (tout en matériel) ou microprogrammé. L'avantage de FHWWH�VHFRQGH�VROXWLRQ�UpVLGH�SULQFLSDOHPHQW�GDQV�OH�IDLW�TXRQ�SHXW�DORUV�FKDQJHU�OH�MHX�d'instructions uniquement en changeant le microprogramme.
L'unité de décodage et de séquencement : le séquenceur
3.
Il existe deux types de registres :
Les unités "mémoire" : les Registres
9 Registres non adressables : Ils sont non accessibles par l'utilisateur et à usage interne au microprocesseur. Les deux registres non adressables principaux sont OH�UHJLVWUH�GLQVWUXFWLRQ��,5���TXL�FRQWLHQW� OLQVWUXFWLRQ�HQ�FRXUV�GH[pFXWLRQ�HW�le registre d'état (SR) qui contient l'état du microprocesseur à chaque instant.
Architecture des Systèmes Anne-Sophie DUJARDIN
27
9 Registres adressables : Ils sont accessibles par l'utilisateur en lecture et en écriture. On les appelle aussi Registres Généraux
&H�VRQW�GHV��FDVHV�PpPRLUH��LQWHUQHV�DX�SURFHVVHXU��LOV�VRQW�GRQF�GDFFqV�UDSLGH� On privilégiera leur utilisation autant que possible.
.
4.
Ce sont des registres ayant la capacité de s'incrémenter ou de se décrémenter automatiquement. On trouve généralement 2 compteurs dans les processeurs : le FRPSWHXU�GH�SURJUDPPH��RX�FRPSWeur ordinal (PC) qui contient l'adresse de la prochaine LQVWUXFWLRQ��HW�OH�SRLQWHXU�GH�SLOH��63��TXL�FRQWLHQW�ODGUHVVH�GX�VRPPHW�GH�OD�SLOH�
Les compteurs
II. Le microprocesseur 68000 : Structure et généralités
3RXU�SRXYRLU�SURJUDPPHU�FRQYHQDEOHPHQW�XQ�PLFURSURFHVVHXU�� Outilisateur a besoin de FRQQDvWUH�XQ�FHUWDLQ�QRPEUH�GH�FDUDFWpULVWLTXHV�VSpFLILTXHV�DX�FRPSRVDQW��WHOOHV�TXH��
9 La définition des registres généraux (nombre et taille) 9 /H�MHX�GLQVWUXFWLRQ 9 La définition des flags 9 Les types de données utilisées 9 La définition des registres 9 Les modes d'adressages 9 La gestion de la mémoire et des registres 9 La taille des bus
/H�������HVW�XQ�PLFURSURFHVVHXU����ELWV��FH�TXL�VLJQLILH�TXH�OH�EXV�GH�GRQQpHV�HVW�VXU����ELWV��/H�EXV�GDGUHVVH�FRPSUHQG��TXDQW�j�OXL�����ILOV�
1.
a.
Les registres
/H�������SRVVqGH����UHJLVWUHV�JpQpUDX[�����UHJLVWUHV�GH�GRQQpHV��QRWpV�'��j�'��HW���UHJLVWUHV�GDGUHVVH��QRWp�$��j�$���&KDTXH�UHJLVWUH�FRQWLHQW����ELWV�
Registres généraux
b.
Le registre d'état du 68000 est le seul registre codé sur 16 bits du 68000. Sa structure est donnée par la figure suivante :
Registre d'état
Architecture des Systèmes Anne-Sophie DUJARDIN
28
Registre de condition 0ܫ 1ܫ 2ܫ
: Bit Trace (voir chapitre Exception)
��'pILQLW�OH�PRGH�GH�IRQFWLRQQHPHQW�GX�SURFHVVHXU��6LO�HVW�j����RQ�WUDYDLOOH�HQ�PRGH�VXSHUYLVHXU��VLQRQ��RQ�HVW�HQ�PRGH�XWLOLVDWHXU�
Définit le masque d'interruption (voir chapitre Exception) : 0ܫ1ܫ2ܫ
Registre de condition : Contient les flags
2.
Le 68000 comprend 2 compteurs :
Les compteurs
9 PC : Compteur ordinal 9 63� ��3RLQWHXU�GH�SLOH�� 3RXU� OH�������� LO� \� D�GHX[�SRLQWHXUV�GH�SLOH� �� OH� SRLQWHXU�
�XWLOLVDWHXU��� TXL� HVW�� SDU� GpIDXW� HVW� OH� UHJLVWUH�GDGUHVVHV�$��� HW� XQ� SRLQWHXU�"système" ou "superviseur" qui est un registre non adressable A7'. La sélection du pointeur SP se fait automatiquement en fonction de l'état du bit S du registre d'état.
3.
Il comprend environ 80 instructions. Il est disponible dans la documentation du composant.
Le format général d'une instruction est le suivant :
Opération.type_de_donnée #BVRXUFH�#GHVWLQDWLRQ
/H�MHX�GLQVWUXFWLRQ
4.
Le 68000 peut gérer les 5 types de données suivantes :
Le type de données
9 Octet (.B) sur 8 bits
9 Mot (.W) sur 16 bits
9 Double Mot (.L) sur 32 bits
9 Bit
9 BCD
Octet superviseur Octet utilisateur
Masque d'interruption
Architecture des Systèmes Anne-Sophie DUJARDIN
29
3RXU� OHV� RSpUDWLRQV� VXU� OHV� ELWV� RX� VXU� OHV� GRQQpHV� FRGpHV� HQ� %&'�� LO� H[LVWH� GHV�instructions spécifiques.
5.
/H�������FRPSUHQG���IODJV��;=1&9��TXL�VH�WURXYHQW�GDQV�OHV���ELWV�GH�SRLGV�IDLEOH�GX�registre d'état. On y trouve :
Le registre de conditions
9 Flag Z : Indique si le résultat est nul
9 Flag N : Indique si le résultat est négatif
9 Flag C : Indique si l'opération a généré une retenue (arithmétique non signée)
9 Flag V : Indique si l'opération a généré un dépassement de capacité (arithmétique signée)
9 )ODJ�;���8WLOLVp�SRXU� OH�WUDYDLO�HQ�PRGH�pWHQGX��FHVW-à-dire sur des opérations traitant de nombres de taille supérieure à 32 bits.
Les autres éléments dont la connaissance est nécessaire à la programmation du processeur seront abordés dans les parties suivantes.
III. Utilisation des registres et de la mémoire
1.
,O� H[LVWH� SOXVLHXUV� W\SHV�GH�GRQQpHV�� FRGpHV� VXU� GHV� WDLOOHV� GLIIpUHQWHV��2U�� WRXV� OHV�registres généraux sont codés sur 32 bits. La règle veut que les données occupent les SRLGV�IDLEOHV�GH�FHV�UHJLVWUHV��$LQVL��XQH�GRQQpH�GH�W\SH�RFWHW�VH�WURXYHUD�GDQV�ORFWHW�GH�SRLGV�IDLEOH�GX�UHJLVWUH�JpQpUDO��XQH�GRQQpH�GH�W\SH�PRW�RFFXSera les deux octets de poids faibles du registre. Quant aux données de type double-PRW�� HOOHV� RFFXSHURQW�l'intégralité des registres.
Les registres
2.
Le 68000 est un processeur 16 bits. La largeur de son bus de données est donc de 16 bits. La mémoire doit donc avoir elle aussi un bus de données de 16 bits.
La mémoire
Architecture des Systèmes Anne-Sophie DUJARDIN
30
2U�� OH� ������ GRLW� rWUH� FDSDEOH� GH� JpUHU� GHV� GRQQpHV� FRGpHV� VXU� �� ELWV� �RFWHW��� ,O�faudra donc utiliser une mémoire adressable par octet. On utilise donc 2 mémoires de ODUJHXU���ELWV��OXQH�FRUUHVSRQGDQW�DX[�DGUHVVHV�SDLUHV��ODXWUH��DX[�DGUHVVHV�LPSDLUHV��Le schéma de principe d'une telle mémoire est donné ci-dessous.
a.
L'octet correspondra au contenu de la case correspondant à l'adresse indiquée. Son adresse peut donc être paire ou impaire.
Données type octet
b.
Un mot est formé de 2 octets. Il occupera donc 2 cases mémoire. Ces deux cases GRLYHQW�VH�WURXYHU�VXU�XQH�PrPH�OLJQH��'H�SOXV��ODGUHVVH�GXQ�PRW�FRUUHVSRQG�WRXMRXUV�à celle de son octet de poids fort.
Données type mot
L'adresse d'un mot est WRXMRXUV�SDLUH
c.
Un double-mot est formé de 2 mots. Il occupera donc 4 cases mémoire. Ces quatre FDVHV�RFFXSHQW�GHX[� OLJQHV��'H�SOXV�� ODGUHVVH�GXQ�GRXEOH-PRW�FRUUHVSRQG� WRXMRXUV� j�celle de son octet de poids fort.
Données type double-mot
L'adresse d'un double-PRW�HVW�WRXMRXUV�SDLUH
Bus de données sur 16 bits
@ paires @ impaires
Architecture des Systèmes Anne-Sophie DUJARDIN
31
IV. Exécution d'une instruction
Une instruction contient les informations suivantes :
9 L'opération à réaliser 9 Les adresses des opérandes 9 Le type des données manipulées
L'exécution d'une instruction se passe en deux cycles consécutifs :
9 une phase de recherche (fetch) 9 une phase d'exécution (execute)
C'est le séquenceur qui gère ces deux phases.
1.
L'instruction dont l'adresse se trouve dans le registre PC est routée de la mémoire vers le registre d'instruction IR. Elle est alors décodée par le séquenceur qui en extrait les LQIRUPDWLRQV�XWLOHV��RSpUDWLRQ��DGUHVVHV�GHV�RSpUDQGHV��W\SH�GH�GRQQpHV��
$SUqV�FH�GpFRGDJH��OH�3&�HVW�LQFUpPHQWp�SRXU�SRLQWHU�VXU�OLQVWUXFWLRQ�VXLYDQWH�
Phase de recherche
2.
Le séquenceur envoie les commandes nécessaires à l'ALU pour qu'elle réalise l'opération demandée. Il procède aussi au routage des données vers l'unité de calcul.
L'ALU exécute l'opération demandée sur les données et retourne le résultat (valeur + flags). La valeuU�HVW�VDXYHJDUGpH�HW�OH�UHJLVWUH�GH�FRQGLWLRQV�HVW�PLV�j�MRXU�
Phase d'exécution
Rq
3.
: L'enchainement de ces deux phases est automatique.
On parle de Rupture de séquence lorsque l·LQVWUXFWLRQ� VXLYDQWH� QH� VH� WURXYH� SDV�LPPpGLDWHPHQW�DSUqV�O·LQVWUXFWLRQ�HQ cours.
Exemple : Structure conditionnelles : appels sous-programme
On utilisera alors des instructions qui modifient le contenu de PC.
Rupture de séquence.
Architecture des Systèmes Anne-Sophie DUJARDIN
32
4.
/D�SXLVVDQFH�G·XQ�MHX�G·LQVWUXFWLRQV�GpSHQG�:
/H�MHX�G·LQVWUXFWLRQ�
9 'H�VD�ULFKHVVH��FHVW-à-dire du QRPEUH�G·LQVWUXFWLons � CISC = Complex Instruction Set Computer � RISC = Reduced Instruction Set Computer
9 De sa diversité c'est-à-dire du QRPEUH�G·RSpUDWLRQV�GLIIpUHQWHV� 9 Des types de données utilisables. 9 DHV�PRGHV�G·adressage.
6WUXFWXUH�JpQpUDOH�G·XQH�LQVWUXFWLRQ :
OP T Source 1 Source 2 Destination
Les instruction transitent de la mémoire vers le Ă3�YLD� OH�EXV�GH�GRQQées. La taille de O·LQVWUXFWLRQ� GRLW� rWUH� XQ� PXOWLSOH� GH� OD� WDLOOH� GX� EXV� GH� GRQQpHV� 'H� SOXV�� Les instructions les plus utilisées doivent être les plus courtes.
V. Techniques d'adressage
La structure générale d'une instruction en mémoire est donnée ci-dessous :
OP T Source 1 Source 2 Destination
Le champ OP représente le code opération. Il occupe de 5 à 8 bits.
Le champ T représente le type de données. Il occupe de 2 à 3 bits.
Le champ d'adresses contient les adresses des différentes opérandes. Comme le bus GDGUHVVH�GX�������FRQWLHQW����ILOV��FH�FKDPS�FRQWLHQW��[����VRLW����ELWV��
6L�RQ�ODLVVDLW�OH�FRGDJH�VRXV�FHWWH�IRUPH��FKDTXH�LQVtruction occuperait au maximum 83 ELWV��&RPPH�RQ�SHXW� OLUH����ELWV�j�FKDTXH�F\FOH�GH� OHFWXUH� �WDLOOH�GX�EXV�GH�GRQQpHV���l'exécution d'une instruction prendrait beaucoup trop de temps. Il faut donc essayer de UpGXLUH�OD�WDLOOH�GHV�LQVWUXFWLRQV��3RXU�FHOD��on va diminuer la taille du champ d'adresses (le plus volumineux).
Champ d'adresses
Architecture des Systèmes Anne-Sophie DUJARDIN
33
1.
2Q�YD�UpGXLUH�OH�QRPEUH�GRSpUDQGHV�HQ�SDVVDQW�GH���j����3RXU�FHOD��RQ�DFFHSWH�TXXQH�des deux sources fasse aussi office de destination.
Réduction du nombre d'opérandes
$LQVL��RQ�QDXUD�SOXV��� ՚ + ��PDLV�� ՚ + .
2.
2Q�VDLW�TXH�OHV�GRQQpHV�SHXYHQW�VH�WURXYHU�VRLW�GDQV�XQ�UHJLVWUH�JpQpUDO�GX�SURFHVVHXU��VRLW�GDQV�OD�PpPRLUH��VRLW�GDQV�XQ�UHJLVWUH�LQWHUQH�GXQ�SpULSKpULTXH��
Espace d'adressage
a.
Si on utilise XQ�HVSDFH�GDGUHVVDJH�XQLTXH��VHXOH� ODGUHVVH�GLIIpUHQFLHUD� OHV�UHJLVWUHV�JpQpUDX[�� OHV� UHJLVWUHV� GHV� SpULSKpULTXHV� HW� OD� PpPRLUH�� /DYDQWDJH� GXQH� WHOOH�PpWKRGH��FHVW�TXH�OD�IDoRQ�GH�SUpFLVHU�ODGUHVVH�HVW�OD�PrPH�TXHOTXH�VRLW�OHQGURLW�R��se trouve la GRQQpH�� /LQFRQYpQLHQW�� FHVW� TXH� ODGUHVVH� VHUD� WRXMRXUV� ORQJXH�� TXHOTXH�VRLW�OHQGURLW�R��HOOH�VH�WURXYH�
Espace Unique
b.
On a vu que les données pouvaient se trouver dans 3 espaces différents :
Espace multiple
9 L'espace des registres généraux 9 L'espace des registres des périphériques 9 L'espace mémoire
Il suffira alors de préciser l'espace dans lequel l'adresse doit être interprétée.
On va chercher à profiter ici du nombre limité GH�UHJLVWUHV�GX�Ă3�
Pour le 68�����RQ�GLVSRVH�GH�16 registres généraux : 8 de données et 8 d'adresses. Si RQ�VDLW�TXH�OD�GRQQpH�VH�WURXYH�GDQV�XQ�UHJLVWUH�GX�SURFHVVHXU��HW�TXRQ�VDLW�DXVVL�GDQV�TXHO�W\SH�GH�UHJLVWUH�LO�VH�WURXYH��� bits seulement seront néecssaires pour la localiser.
6L�OD�GRQQpH�VH�WURXYH�GDQV�XQ�UHJLVWUH�JpQpUDO��RQ�DXUD�XQH�DGUHVVH�FRXUWH��HW�GRQF��XQH�instruction courte.
Rq
��/·XWLOLVDWLRQ�RSWLPDOH�G·XQ�processeur SDVVH�SDU�O·XWLOLVDWLRQ�LQWHQVLYH�GHV�UHJLVWUHV�généraux��(Q�HIIHW��FHV�UHJLVWUHV�VRQW�UDSLGHV�GDFFqV��FDU� LQWHUQHV�DX�SURFHVVHXU��HW�les instructions qui les utiOLVHQW�VRQW�FRXUWHV��GRQF�UDSLGHPHQW�LQWHUSUpWDEOHV�
Architecture des Systèmes Anne-Sophie DUJARDIN
34
3. Modes d'adressage
OP
Codage d'une instruction (68000)
T 5HI��G#�VRXUFH 5HI�G#�GHVWLQDWLRQ �����RX���PRWV�SRXU�SUpFLVHU�XQH�YDOHXU�LPPpGLDWH �����RX���PRWV�GH[WHQVLRQ�SRXU�ODGUHVVH�VRXUFH �����RX���PRWV�GH[WHQVLRQ�SRXU�ODGUHVVH�GH�GHVWLQDWLRQ
Une instruction comprend :
9 Une instruction de base qui est codée sur 1 mot 9 (YHQWXHOOHPHQW�� VL� QpFHVVDLUH�� GH� �� j� ��PRWV�GH[WHQVLRQ� TXL� VHUYHQW� j�
apporter des précisions sur la donnée (valeur ou adresse)
'DQV�OLQVWUXFWLRQ�GH�EDVH��OHV�FKDPSV��5HI��G#��VRQW�FKDFXQ�FRGpV�VXU���ELWV���
9 3 bits pour préciser le mode d'adressage 9 ��ELWV� SRXU� VSpFLILHU� VRLW� OH� QXPpUR�GX� UHJLVWUH� JpQpUDO� XWLOLVp�� VRLW� OH�
numéro de sous-mode.
Le 68000 possède 13 modes d'adressage.
¾
'DQV�FH�W\SH�GDGUHVVDJH��OD�GRQQpH�VH�WURXYH�GLUHFWHPHQW�GDQV�OH�UHJLVWUH�LQGLTXp�GDQV�l'instruction. On distingue :
Adressages directs
a.
Rq : C'est le seul mode d'adressage qui concerne les registres de données
L'adressage direct par registre de données
Syntaxe ��'Q��R��Q�HVW�OH�QXPpUR�GX�UHJLVWUH�
Ex
b.
: MOVE.B D0,D1 : L'octet de poids faible contenu dans D0 est copié dans l'octet de poids faible de D1.
L'adressage direct par registre d'adresse
Syntaxe ��$Q��R��Q�HVW�OH�QXPpUR�GX�UHJLVWUH�
Ex : MOVE.L D0,A1 : Le contenu de D0 est copié dans A1.
Instruction de base
Mots d'extension
Architecture des Systèmes Anne-Sophie DUJARDIN
35
¾
'DQV�FH�W\SH�GDGUHVVDJH��OH�UHJLVWUH�GDGUHVVH�MRXH�OH�U{OH�GH�SRLQWHXU�VXU�OD�GRQQpH��On reconnait les modes d'adressage indirects aux parenthèses présentes dans la syntaxe. On distingue :
Adressages indirects
c. L'adressage indirect par registre d'adresse
Syntaxe : (An)��R��Q�HVW�OH�QXPpUR�GX�UHJLVWUH�
Principe
9 /·adresse de la donnée se trouve dans le registre An (An = pointeur)
:
9 &·HVW�O·adresse G·XQ�UHJLVWUH�TXL�HVW�codée GDQV�O·LQVWUXFWLRQ�GH�EDVH��LQVWUXFWLRQ�courte)
Ex
d.
: MOVE.L D0,(A1) : Le contenu de D0 est copié dans la case mémoire dont l'adresse est contnue dans A1.
L'adressage indirect avec post-incrémentation
Syntaxe : (An)+��R��Q�HVW�OH�QXPpUR�GX�UHJLVWUH�
Principe
9 /·adresse de la donnée se trouve dans le registre An (An = pointeur)
:
9 &·HVW�O·adresse G·XQ�UHJLVWUH�TXL�HVW�codée GDQV�O·LQVWUXFWLRQ�GH�EDVH��LQVWUXFWLRQ�courte)
9 Le contenu du registre An est ensuite incrémenté de façon à ce que An pointe ensuite sur la donnée suivante. On incrémente donc de :
o +1 si on travaille en .B o +2 si on travaille en .W o +4 si on travaille en .L
Ex : MOVE.L D0,(A1)+ : Le contenu de D0 est copié dans la case mémoire dont l'adresse HVW�FRQWQXH�GDQV�$���3XLV��$��HVW�LQFUpPHQWp�GH���
Rq : A1 est modifié à l'issue de l'exécution de l'instruction
Architecture des Systèmes Anne-Sophie DUJARDIN
36
!
e. L'adressage indirect avec pré-décrémentation
Syntaxe : -(An)��R��Q�HVW�OH�QXméro du registre
Principe
9 Le contenu du registre An est d'abord incrémenté de façon à ce que An pointe ensuite sur la donnée précédente. On décrémente donc de :
:
o -1 si on travaille en .B o -2 si on travaille en .W o -4 si on travaille en .L
9 /·adresse de la donnée se trouve dans le registre An décrémenté (An = pointeur) 9 &·HVW�O·adresse G·XQ�UHJLVWUH�TXL�HVW�codée GDQV�O·LQVWUXFWLRQ�GH�EDVH��LQVWUXFWLRQ�
courte)
Ex : MOVE.W D0,-(A1) ��$�� HVW� GpFUpPHQWp� GH� ��� 3XLV�� OHV� GHX[� RFWHWV� GH� SRLGV�faible de D0 sont copiés dans la case mémoire dont l'adresse est contnue dans A1.
Rq
f.
: A1 est modifié à l'issue de l'exécution de l'instruction.
L'adressage indirect avec base et déplacement
Syntaxe : d16(An)�� R�� Q� HVW� OH� QXPpUR� GX� UHJLVWUH�� HW� G16 UHSUpVHQWH� OH� GpSODFHPHQW��FRGp�VXU����ELWV��,O�SHXW�rWUH� LQGLTXp�HQ�GpFLPDO��HQ�ELQDLUH� ��G16) ou en héxadécimal ($d16)
Principe
9 /·adresse effective de la donnée est égale à An+d16.
:
7RXV�OHV�FDOFXOV�GDGUHVVH�VH�IRQW�HQ�DULWKPpWLTXH�VLJQpH��VXU 32 bits. Il faudra donc amener d16 sur 32 bits par extension de signe
9 &·HVW�O·adresse G·XQ�UHJLVWUH�TXL�HVW�codée GDQV�O·LQVWUXFWLRQ�GH�EDVH��LQVWUXFWLRQ�
.
courte) 9 ,O�IDXW�SUpFLVHU��HQ�SOXV�GX�UHJLVWUH�GH�EDVH��OD�YDOHXU�GX�GpSODFHPHQW��&H�PRGH�
d'adressage nécessite donc 1 mot d'extension.
Ex : MOVE.W -(A4), $84(A3): On donne : A4 = $0013443A A3 = $00138412
Architecture des Systèmes Anne-Sophie DUJARDIN
37
!
Détermination des adresses effectives :
9 Adresse source :A4 – 4 = $00134436 = A4 9 Adresse destination : $ 00138412
+ $ 00000084
g.
$ 00138496
Rq :/H�FRQWHQX�GH�$��Q·HVW�SDV�PRGLILp.
L'adressage indirect indexé avec base et déplacement
Syntaxe : d8($Q�5P�<)��R����$Q�HVW�OH�UHJLVWUH�GH�EDVH�� d8 UHSUpVHQWH�OH�GpSODFHPHQW��FRGp�VXU���ELWV��,O�SHXW�rWUH�LQGLTXp� HQ� GpFLPDO�� HQ� ELQDLUH� ��G8) ou en héxadécimal ($d8) Rm.Y est le registre d'index. Il peut s'agir d'un registre GDGUHVVH� RX� GH� GRQQpHV�� HW� <� LQGLTXH� VL� RQ� FRQVLGqUH�seulement les 16 bits de poids faible (.W) ou l'intégralité du registre (.L).
Principe
9 /·adresse effective de la donnée est égale à An+d8+ Rm.Y.
:
7RXV�OHV�FDOFXOV�GDGUHVVH�VH�IRQW�HQ�DULWKPpWLTXH�VLJQpH��VXU����ELWV��,O�IDXGUD�donc amener d8 et Rm.W sur 32 bits par extension de signe
9 &·HVW�O·adresse G·XQ�UHJLVWUH�TXL�HVW�codée GDQV�O·LQVWUXFWLRQ�GH�EDVH��LQVWUXFWLRQ�
.
courte) 9 ,O� IDXW� SUpFLVHU�� HQ� SOXV� GX� UHJLVWUH� GH� EDVH�� OD� YDOHXU� GX� GpSODFHPHQW� HW� OHV�
informations concernant le registre d'index. Ce mode d'adressage nécessite donc 1 mot d'extension dont la structure est donnés ci-dessous :
D/A N° Reg d'index (3 bits) W/L 0 0 0 Déplacement sur 8 bits '�$� �VHUW�j�LQGLTXHU�VL�5L�HVW�XQ�UHJLVWUH�G·#�RX�GH�GRQQpHV�
= 1 si R = A = 0 si R = D
W/L = 1 si Rm.L = 0 si Rm.W
Architecture des Systèmes Anne-Sophie DUJARDIN
38
Ex : MOVE.W %11010 (A4, D2.W), 66(A3). On donne : A4 = $00132410 D2 = $ACDFAC24 A3 = $0013B330
Détermination des adresses effectives :
9 Adresse source :
+ $00132410 + $0000001A (Déplacement) + $FFFFAC24
9 Adresse destination : $ 0013B330
(Registre d'index amené sur 32 bits par extension de signe) $0012D04E
+ $ 00000042
¾
$ 0013B372
Rq :Les contenus de A4 et de A3 ne sont pas modifiés.
h.
Autres modes d'adressage
Adressage absolu court
Syntaxe ��#�:�R��#�UHSUpVHQWH�OD�YDOHXU�GH�ODGUHVVH�HIIHFWLYH�FRGpH�VXU����ELWV�
Rq : On a besoin d'un mot d'extension pour préciser la valeur de l'adresse
Ex
i.
: MOVE.W $1234.W, 66(A3).
Adressage absolu long
Syntaxe ��#��/��R��#�UHSUpVHQWH�OD�YDOHXU�GH�ODGUHVVH�HIIHFWLYH�FRGpH�VXU����ELWV�
Rq1 : On a besoin de deux mots d'extension pour préciser la valeur de l'adresse
Rq2 : Le .L est facultatif
Ex
: MOVE.W $12345678, 66(A3).
Architecture des Systèmes Anne-Sophie DUJARDIN
39
M� Adressage relatif
Syntaxe : EA(PC)
Rq : ($�UHSUpVHQWH�ODGUHVVH�HIIHFWLYH�GH�OD�GRQQpH��PDLV��FHVW�OH�GpSODFHPHQW�UHODWLI�
entre la donnée et l'aGUHVVH� GH� OLQVWUXFWLRQ� TXL� HVW� FRGp�� VXU� ��� ELWV� GDQV� OH� PRW�
d'extension.
Ex
k.
: MOVE.W $1234(PC), 66(A3).
Adressage relatif indexé
Syntaxe ��($�3&�5P�<�
Rq : /DGUHVVH� HIIHFWLYH� HVW� FDOFXOpH� HQ� DGGLWLRQQDQW� ($�5P�<�� PDLV�� FHVW� OH�
déplacement relatif HQWUH�($�HW�ODGUHVVH�GH�OLQVWUXFWLRQ�TXL�HVW�FRGp��VXU���ELWV�GDQV�
le mot d'extension. Rm.Y représente le registre d'index (cf. adressage indirect indexé
avec base et déplacement)
Ex
l.
: MOVE.W $14(PC,D0.L), 66(A3).
Adressage immédiat
Syntaxe ���GDWD�R��GDWD�UHSUpVHQWH� OD�YDOHXU�GH� OD�GRQQpH��(OOH�SHXW�rWUH�SUpFLVpH�HQ�
GpFLPDO��������HQ�ELQDLUH�����������RX�HQ�KH[DGpFLPDO�������
Rq : /D�GRQQpH�GRLW�rWUH�FRGpH�GDQV�XQ�PRW�GH[WHQVLRQ��GRQW�OD�WDLOOH�GpSHQG�GX�W\SH�GH�
données utilisé.
Ex : MOVE.W #42, 66(A3).
Architecture des Systèmes Anne-Sophie DUJARDIN
40
VI. Branchements
1.
Deux instructions permmettent de réaliser un branchement inconditionnel :
Branchements inconditionnels
9 BRA <label> : déplacement relatif
PC ĸ PC+dn Code relogeable
9 JMP <label> ї déplacement absolu
PC ĸ <label> Code non relogeable
Rq
Etiquette
��VWUXFWXUH�G·XQ�SURJUDPPH
Opération.Typedonnés &KDPS�G·# commentaire
2.
a.
Branchement conditionnels
Il contient les flags qui vont permettre les tests. Il correspond au poids faible du
registre G·(WDW��65�� On trouve :
Rappel : Registre de condition
9 X ĺ extend
9 Z ĺ ]HUR
9 N ĺ négatif
9 V ĺ overflow (arithmétique signée)
9 C ĺ Retenue (arithmétique non signée).
b.
1.
Instruction de comparaison et de tests.
Elle permet de comparer 2 données.
Instruction CMP
Syntaxe : CMP.<format> <source>, <destination>
/HV� IODJV� VRQW� PLV� j� MRXU� HQ� IRQFWLRQ� GX� UpVXOWDW� GH� ORSpUDWLRQ� VXLYDQWH� ��
<destination> - <source>. Le valeur de cette différence Q·HVW�SDV�VDXYHJDUGpe.
Remarque : La destination doit être un registre de données. = Dn
Architecture des Systèmes Anne-Sophie DUJARDIN
41
9 -CMPA <destination> = An
Variantes
9 CMPI <source> = Valeur immédiate.
9 CMPN <source> = (ݕ ����<destination> =(ݔ) +
2.
9
Instructions de test
Elle permet GH�FRPSDUHU�XQH�GRQQpH�j����$�OLVVXH�GH�FHWWH�LQVWUXFWLRQ��VHXOV�OHV�IODJV�
VRQW�PLV�j�MRXU�
TST
Syntaxe : TST.<format> <e.a>
9 TAS : Test And Set (que pr les octets)
Variante
9
Elle permet de comparer 1 bit d'une donnée à 0
BTST
Syntaxe
ቚ# ݐܦ ቚ permettent de préciser le numéro (la position) GX�ELW�j�WHVWHU��VDFKDQW�
que cette valeur est précisée modulo 32 et que le bit de poids le plus faible correspond au numéro 0.
: BTST.<format> #data,<e.a>
BTST.<format> Dn,<ea>
Variantes
9 BCLR : Teste et met le bit à 0
:
9 BCHG : Teste et complémente le bit
9 BSET : Teste et met à 1 le bit.
Architecture des Systèmes Anne-Sophie DUJARDIN
42
c.
(OOHV�SHUPHWWHQW�G·HIIHFWXHU�un branchement en fonction des valeurs des flags.
Les instructions de branchement conditionnel :
1. Instruction Bcc
Syntaxe
CC
: Bcc Etiquette
C·HVW�XQ�Eranchement relatif��FHVW-à-dire que F·HVW�OD�GLVWDQFe de déplacement qui est
FRGpH�GDQV�OLQVWUXFWLRQ��6HORQ�OD�FRQGLWLRQ�GpVLUpH��FF�SHXW�SUHQGUH�SOXVLHXUV�IRUPH���
pas de retenue ܥҧ CS retenue à 1 C VC V à 0 ത VS V à 1 V HI plus grand ܥҧ. ҧ binaire non signé GE Supérieur ou égal . + ഥ. ത binaire signé GT Supérieur ҧ + ഥ. ത . ҧ binaire signé LS plus petit ou égal C + Z binaire non signé LE Inférieur ou égal + . ത + ഥ. binaire signé LT inférieur . ത + ഥ. binaire signé EQ Egal Z NE Non Egal ҧ MI négatif N PL positif ഥ
2. Instruction DBcc
Syntaxe
9 6L� HOOH� HVW� IDXVVH�� RQ� GpFUpPHQWH� OH� UHJLVWUH� GH� �� HW� RQ� FRPSDUH� OD� YDOHXU�
obtenue à -��� 6LO� \� D� pJDOLWp�� RQ� FRQWLQXH� OH[pFXWLRQ� GX� SURJUDPPH� DYHF�
OLQVWUXFWLRQ� VXLYDQWH�� 6LQRQ�� RQ� VH� EUDQFKH� j� OpWLTXHWWH� LQGLTXpH� GDQV�
l'instruction.
: dBcc Dn,etiquette
Il s'agit d'une opération dite de débranchement. On commence par regarder la
"condition" (i.e. le "cc" de l'instruction DBcc).
9 6L� HOOH� HVW� YUDLH� on continue l'exécution du programme avec l'instruction
suivante.
Architecture des Systèmes Anne-Sophie DUJARDIN
43
3.
a.
Structures de choix �
Si <condition>
{traitement}
Fin Si
Exécution conditionnelle.
Si [ inst. qui positionne les flags ]
Bcc FinSi
{traitement}
FinSi
Remarque
9 /·LQVWUXFWLRQ�GH�EUDQFKHPHQW�HIIHFWXH�OH�WHVW�GH�OD�
:
condition complémentée
9 /·pWLTXHWWH�)LQ6,�GRLW-être externe à la structure.
.
Exemple
Type de données : Binaire Signé sur 32 bits.
Si D1 > D0
{echange le contenu}
: 3URFpGHU� j� O·pFKDQJH� FRQGLWLRQQHO� GH0ܦ� et 1ܦ de façon à disposer du plus
grand contenu D0
Si CMP.L D0, D1 BLE FSI EXG.L D0, D1 FSI
b.
Si <condition> {traitement 1} sinon {traitement 2}
/·DOWHUQDWLYH�
fin-si
Si [inst.positionnant les flags] Bcc SINON
{traitement 1} BRA FSI SINON
{traitement 2} FSI
Remarque
9 /·LQVWUXFWLRQ�GH�EUDQFKHPHQW�HIIHFWXH�OH�WHVW�GH�OD�
:
condition complémentée
9 /·pWLTXHWWH�)LQ6,�GRLW-être externe à la structure.
.
Architecture des Systèmes Anne-Sophie DUJARDIN
44
Exemple
c.
: 0HWWUH�'��j���V·LO�HVW�QpJDWLI�HW�OH�FRPSOpPHQWHU�VLQRQ�
SI TST.W D0 BGE SINON CLR.W D0 BRA FSI
SINON NOT.W D0 FSI
Cas Ou <variable> Cas A = Traitement A Cas B = Traitement B … Cas N = Traitement N Cas Autre = Traitement Autre Fin Cas Ou
Cas multiples
Cas ou Cas A CMP… BNE Cas B {traitement A} BRA Fcas Cas B CMP… BNE Cas C {traitement B} BRA Fcas … Cas N CMP… BNE CasAu {traitement N} Bra Fcas Cas Autre {traitement autre} Fcas
d.
1.
Structures Itératives.
TantQue <condition> {traitement} FinTantQue
Boucle avec test en entrée
Tque [instruction qui positionne les flags] Bcc FTQue {traitement} BRA Tque FTQue
Architecture des Systèmes Anne-Sophie DUJARDIN
45
Exemple
2.
: 0HWWUH�j���XQH�]RQH�PpPRLUH�SRLQWpH�SDU�$���/H�QRPEre de mots de cette
]RQH est codé sur 16 bits et est contenu dans D0
Tque TST.W D0 BEQ Ftque CLR.W (A0)+ SUBQ.W #1, D0 BRA Tque Ftque
Répeter {traitement} Tant-que <condition>
Boucle avec test en sortie
Rep {traitement} [instruction qui positionne les flags] Bcc Rep
Exemple
3.
:Une chaine de caractères pointée par A1 et qui se termine par NULL (00).
Donner le nombre de caractères de la chaine et le mettre dans D1 (on compte le
caractère NULL)
CLR.L D1 Rep ADDQ.L #1, D1 TST.B (A1)+ BNE Rep
Répeter {traitement} sortir si A : <condition> sortir si B : <condition>
Boucle avec test en sortie et contrôle de limite
Rep {traitement} dbcc 'Q��5HS fin Rep
Exemple1 : Rechercher O·DGUHVVH�GX�SUHPLHU�RFWHW�QXO�G·XQ�EORF�PpPRLUH�GH�����RFWHWV�
pointé parA1
MOVE.W #255, D1 REP TST.B (A1)+ dBEQ D1, REP FREP SUBA.L #1, A1
Architecture des Systèmes Anne-Sophie DUJARDIN
46
Exemple2
REP ___
: Traitement répétitif: on veux effectuer N fois le même traitement
MOVE.W #N-1, D0
___ ___ DBRA D0, REP
VII. Les sous programmes
1.
La mise en oeuvre des sous programme nécéssite:
Généralités:
9 /H� WUDQVIHUW� G·p[HFXWLRQ� GX� SURJUDPPH� DSSHODQW� DX� VRXV-programme et inversement
9 Le passage de paramètres (entrée/sortie)
/H�SRLQW�G·HQWUpH�GX�VRXV�SURJUDPPH�HVW�IL[p��/D�YDOHXU�Seut-être implanté dans le code
exécutable
/·DGUHVVH� GH� UHWRXU� HVW� YDULDEOH�� HOOH� QH� SHXW� GRQF� SDV� rWUH�PpPRULVpH� GDQV� OH� FRGH�
H[pFXWDEOH��PDLV�GDQV�OD�SLOH��PpPRLUH�YLYH��
2.
Deux instructions permettent d'appeler un sous –programme :
Appel et retour de sous programme
9 BSR : Branch to SubRoutine (branchement relatif) 9 JSR : Jump to SubRoutine (branchement absolu)
La rupture de séquence se déroule en deux étapes :
9 6DXYHJDUGH� GDQV� OD� SLOH� GH� O·DGUHVVH� GH� UHWRXU� �DYHF� SUpGpFUpPHQWDWLRQ�automatique de A7).
9 Branchement inconditionnel
Traitement
Architecture des Systèmes Anne-Sophie DUJARDIN
47
Deux instructions permettent de revenir d'un sous –programme :
9 RTS : ReTurn from Subroutine. Cette instruction récupère un double mot depuis la pile et le transfère à PC (avec post-incrémentation automatique de A7).
9 RTR : ReTurn and Restor condition codes. Cette instruction récupère un mot
depuis la pile. Les 5 bits de poids faible de ce mot redéfinissent XNZVC. A7
HVW�LQFUpPHQWp��SXLV��WRXW�VH�SDVVH�FRPPH�XQ�576�
Rq : Rien ne sauvegarde les flags ��LO�IDXW�VDXYHJDGHU�OH�UHJLVWUH�G·pWDW�
Exemple
TOTO ___
:
___ ___ RTS ___ ___ ___ 012100 BSR TOTO ___
Avant bsr
Etat de la pile
Juste après bsr Après Rts
A7 ĺ 0001 0001
2104 2104
A7 ĺ//////// ////// A7 ĺ//////
//////// ////// //////
Remarque : A7 peut évoluer pendant O·H[pFXWLRQ� GH� OD� SURFpGXUH�� ,l faut donc bien
V·DVVXUHU�TXH�$��SRLQWH�ELHQ�VXU�O·DGUHVVH�GH�UHWRXU�DYDQW�OH�576�
Module appelant
Sous-Programme
Architecture des Systèmes Anne-Sophie DUJARDIN
48
3.
a.
Elaboration des sous-programmes
On peut noter 3 caractéristiques principale pour chaque paramètre :
Passage de paramètres :
9 Sens de la comunication : paramètre-entrant (appel) ou sortant (retour)
9 Nature : GRQQpH�RX�#
9 Emplacement : registre ou mémoire ?
3OXVLHXUV� VROXWLRQV� VRQW� WRXMRXUV� SRVVLEOHV��2Q� SHXW� FHSHQGDQW� VDSSX\HU� VXU� Tuelques
idées générales :
9 Le sens est imposé par la définition du sous programme
9 La nature est OLpH�j�O·HVSDFH�RFFXSp�SDU�O·LQIRUPDWLRQ�D�WUDQVPHWWUH�
o Passage par valeur pour les infos occupant peu de place
o Passage par adresse pour les variables de type structuré �WDEOHDX��FKDLQH�
de caractères…).
9 L·HPSODFHPHQW�GH�VWRFNDJH�GpSHQG�GX�QLPEUH�HW�GH�la taille des paramètres
o Passage par registre si le nombre et taille des paramètres sont faibles
o Passage par la pile sinon
Exemple :SRXV�SURJUDPPH�HIIHFWXDQW�OD�UHFKHUFKH�GX�PD[�GDQV�XQ�WDEOHDX�G·RFWHWV�
Paramètres entrants
x $�� �#�GX�WDEOHDX��SRLQWHXU�VXU�WDEOHDX��SDVVp�SDU�UHJLVWUH��
:
x D4 = taille du tableau (passage par valeur et par registre).
x $�� �#�GX�PD[��SRLQWHXU�VXU�PD[��SDVVp�SDU�UHJLVWUH��
Paramètres-sortants
Architecture des Systèmes Anne-Sophie DUJARDIN
49
b.
1.
Localisation des variables
Un SRLQWHXU�VXU� OD�]RQH�GH�VWRFNDJH�GHV�YDULDEOHV�SHXW�rWUH�XWLOLVp�SDU� O·HQVHPEOH�GHV�
modules. On peux réserver un registre d'adresses An à cet usage.
Variables globales
2.
La durée de vie de ces variables étant limitée à la durée d'exécution du sous-
SURJUDPPH��Outilisation de la pile est donc bien adaptée à leur stockage. Il faut dans le
sous-programme :
Variables locales
9 UpVHUYHU�XQH�]RQH�GH�VWRFNDJH
9 GLVSRVHU�G·XQ�SRLQWHXU�VXU�FHWWH�]RQH
9 OLEpUHU�OD�]RQH�GH�VWRFNDJH�HQ�ILQ�GH�VV-programme.
Instructions
9 LINK An, #<d16>
:
L'exécution de cette instruction comprend 3 étapes :
1. sauvegarde de An dans la pile
2. pointage sur la pile par An
3. UpVHUYDWLRQ�G·XQH�]RQH�GH�SLOH� (d16<0)
9 UNLINK An
L'exécution de cette instruction comprend 2 étapes :
1. /LEpUDWLRQ�GH�OD�]RQH�de pile. (A7 revient sur An)
2. Restauration du contenu de An (An est dépilé).
Exemple
9 2 paramètres-entrants utilisés par la pile :PARAM1.L ($42)
: Sous-programme TOTO utilisant :
PARAM2.W ($10)
9 3 variables locales : 1 double-mot : VAR1.L
2 doubles mots : VAR2.W ; VAR3.W
Architecture des Systèmes Anne-Sophie DUJARDIN
50
___
Module appelant :
MOVE.L #$42, -(A7) MOVE .W #$10, -(sp) BSR TOTO ___ UNLNK A5
Sous-programme TOTO
LINK A5, #-8 ___ ___
VIII. Les exceptions
1.
Le 68000 (comme tout microprocesseur) HVW�GRWp�G·XQ�PpFDQLVPH�TXL�SHUPHW�O·DSSDULWLRQ�G·XQ�pYpQHPHQW�IRUWXLW��G·XQH�VLWXDWLRQ�G·H[FHSWLRQ��G·DEDQGRQQHU�OH�WUDLWHPHQW�HQ�FRXUV�HW�GH�WUDQVIpUHU�O·H[pFXWLRQ�j�XQ�DXWUH�WUDLWHPHQW�DVVRFLp�j�FHW�pYpQHPHQW�
'DQV� OD� SOXSDUW� GHV� FDV�� OH� SUHPLHU� WUDLWHPHQW� GRLW� rWUH� HQVXLWH� SRXUVXLYL�� FH� TXL�implique une sauvegarde du contexte lors du transfert.
/·pYpQHPHQW�IRUWXLW�SHXW�DYRLU�GHX[�RULJLQHV :
Généralités
9 Interne au système ��LO�WUDGXLW�XQH�DQRPDOLH�G·H[pFXWLRQ 9 Externe ; une condition materielle particulière doit être prise en compte (par
H[HPSOH��XQ�SpULSKpULTXH�FKHUFKH�j�© DWWLUHU�O·DWWHQWLRQ »)
Il est aussi intéressant que ce même mécanisme puisse être utilisé dans des conditions YRLVLQHV�G·XQ�DSSHO�GH�VRXV-programme (en particulier pour effectuer des appels à des fonctions système). Il faut être en mesure de « SURJUDPPHU�OD�VLWXDWLRQ�G·H[FHSWLRQ » ��OD�GpFOHQFKHU�SDU�O·H[pFXWLRQ�G·XQH�LQVWUXFWLRQ�
Plusieurs événements exceptionnels pouvant se présenter simultanément ; leur prise en compte doit être hiérarchisée��&HFL�FRXYUH� O·RUGUH�GDQV� OHTXHO�V·HIIHFWXH� OH� ODQFHPHQW�GHV� WUDLWHPHQWV� G·H[FHSWLRQ�� PDLV� DXVVL� OD� SRVVLELOLWp� GH� VXVSHQGUH� O·H[pFXWLRQ� GH� O·XQ�G·HX[�DX�SURILW�G·XQ�DXWUH�FRQVLGpUp�GH�SULRULWp�SOXV�pOHYpH�
Un microprocesseur peut distinguer un nombre donQp� G·H[FHSWLRQV� GH� QDWXUHV�GLIIpUHQWV��,O�IDLW�FRUUHVSRQGUH�j�FKDFXQH�G·HOOH�XQ�WUDLWHPHQW�SDUWLFXOLHU�HQ�H[SORLWDQW�XQH�WDEOH�G·DGUHVVHV�GH�ODQFHPHQW�GH�FHV�WUDLWHPHQWV��/D�ORFDOLVDWLRQ�GH�FHWWH�WDEOH�HVW�IL[H�� LPSOLFLWHPHQW� FRQQXH�� PDLV� VRQ� FRQWHQX� HVW� Srogrammable et va être adapté à O·application développée. Ce procédé est nommé vectorisation des exceptions.
Architecture des Systèmes Anne-Sophie DUJARDIN
51
/H�������SUpVHQWH�GHX[�PRGHV�G·H[pFXWLRQ�G·XQ�SURJUDPPH��OH�PRGH�VXSHUYLVHXU�HW�OH�PRGH� XWLOLVDWHXU�� &HFL� FRUUHVSRQG� j� O·LGpH� G·XWLOLVHU� OH� V\VWqPH microprocesseur à 2 QLYHDX[�� XQ� QLYHDX� VXSHUYLVHXU� SRXU� OHTXHO� WRXWH� DFWLRQ� HVW� SHUPLVH� HW� XQ� QLYHDX�XWLOLVDWHXU� VXELVVDQW� TXHOTXHV� UHVWULFWLRQV� �MHX� G·LQVWUXFWLRQV� UpGXLW� «��� /·LQWpUrW� GH�FHWWH� GLVWLQFWLRQ� HVW� WUqV� OLp� DX[� H[FHSWLRQV� HW� SHUPHW� G·DPpOLRUHr la sécurité de IRQFWLRQQHPHQW�GHV�V\VWqPHV�G·H[SORLWDWLRQ�
2.
/HV�SDUDJUDSKHV�VXLYDQW�GpFULYHQW� OHV�GLIIpUHQWV�FRQWH[WHV� ORJLFLHOV�G·H[pFXWLRQ�G·XQH�LQVWUXFWLRQ�TXL�FRQGXLVHQW�j�XQ�WUDLWHPHQW�G·H[FHSWLRQ�
([FHSWLRQV�G·RULJLQH�LQWHUQH�DX�V\VWqPH�
a.
Cette catégorie correspond essentiellement à des erreurs de programmation.
Exceptions OLpHV�j�XQH�DQRPDOLH�G·H[pFXWLRQ�
1.
,O�V·DJLW�GX�QRQ�UHVSHFW�GH�OD�FRQWUDLQWH�G·DOLJQHPHQW�GX�IDLW�G·XQH�WHQWDWLYH�G·DFFqV�j�XQ�PRW��XQ�PRW�ORQJ�RX�XQH�LQVWUXFWLRQ à une adresse impaire.
/H� F\FOH� EXV� HVW� DORUV� DYRUWp� HW� OH� WUDLWHPHQW� GH� O·H[FHSWLRQ� (UUHXU� G·DGUHVVDJH� HVW�enchaîné.
6L� XQH� HUUHXU� G·DGUHVVDJH� VH� SUpVHQWH� SHQGDQW� XQH� H[FHSWLRQ� (UUHXU� EXV�� (UUHXU�G·DGUHVVDJH�RX�5HVHW��OH�SURFHVVHXU�V·DUUrWH�
(UUHXU�G·DGUHVVDJH�
2.
8Q�SURJUDPPH�V·H[pFXWDQW�HQ�PRGH�XWLOLVDWHXU� �ELW�6�GX�UHJLVWUH�65�j���� QH�GRLW� SDV�
Violation de privilège.
faire usage des instructions privilégiées : Andi ��G��!�65 Ori ��G��!�65 Eori ��G��!�65 Move �$�(�!�65 Move 863�$Q
Move $Q�863 Reset Stop #<d16> Rte
Une infraction à cette règle conduit à une exception Violation de privilège.
Architecture des Systèmes Anne-Sophie DUJARDIN
52
3.
/H� SUHPLHU�PRW� GH� FRGDJH� G·XQH� LQVWUXFWLRQ� SHXW� SUHQGUH�216 IRUPHV�� /·HQVHPEOH� GHV�
combinaisonV� SRVVLEOHV� Q·HVW� SDV� HIIHFWLYHPHQW� XWLOLVp� SDU� OH� MHX� G·LQVWUXFWLRQV� GX�68000.
6L�OD�SKDVH�GH�UHFKHUFKH�G·XQH�LQVWUXFWLRQ�FRQGXLW�j�XQ�SUHPLHU�PRW�GLIIpUHQW�GH�FHX[�UpSHUWRULpV��XQH�H[FHSWLRQ�,QVWUXFWLRQ�LOOpJDOH�HVW�JpQpUpH�
Codes opération illégaux.
4.
3DUPL�OHV�PRWV�QH�FRUUHVSRQG�SDV�DX�GpEXW�G·XQH�LQVWUXFWLRQ�OpJDOH��FHX[�GRQW�OHV�ELWV����à 12 son égaux à 1010 ou 1111 (mots $Axxx ou $Fxxx) forment une catégorie particulière ��LOV�VRQW�FRQVLGpUpV�FRPPH�GHV�FRGHV�RSpUDWLRQ�LQGpILQLV�SOXW{W�TX·LOOpJDX[�
'HX[� H[FHSWLRQV� �GLVWLQFWHV� GH� O·H[FHSWLRQ� ,QVWUXFWLRQ� LOOpJDOH�� OHXU� VRQW� DVVRFLpHV : exception Emulateur ligne 1010 et exception Emulateur ligne 1111. Un traitement propre à chacun des deux cas est exécuté à la rencontre de ces codes.
La vocation de ces H[FHSWLRQV� HVW� O·pPXODWLRQ� ORJLFLHOOH� G·LQVWUXFWLRQV� QRXYHOOHV��/·XWLOLVDWHXU�GpILQLW�SDU� O·pFULWXUH�GX�WUDLWHPHQW�G·H[FHSWLRQ� OHXU�QDWXUH�HW� OHXU�HIIHW��Les bits 11 à 0 constituent un moyen de distinguer plusieurs opérations ainsi que GLIIpUHQWV�PRGHV�G·Ddressage.
/·XVDJH�GH�FHV�FRGHV�HVW�GRQF�GpOLEpUp�HW�QH�SHXW�SDV�rWUH�FRQVLGpUp�FRPPH�XQH�HUUHXU�de programmation.
Codes opération inexistants.
b.
Certaines instructions ont pour conséquence de leur exécution le déclenchement G·H[FHSWLRQV��&HV�GHUQLqUHV�QH�présentent donc pas le caractère fortuit rencontré en général.
Exceptions programmées.
D� Instruction TRAP.
Syntaxe : Trap #numéro
/H� QXPpUR�� GH� YDOHXU� �� j� ���� IDLW� SDUWLH� GX� FRGH� GH� O·LQVWUXFWLRQ�� ,O� VpOHFWLRQQH� XQ�WUDLWHPHQW�SDUPL�XQ�HQVHPEOH�GH�����DVVRFLpV�j�FHWWH�LQVWUXFWLRQ�
Architecture des Systèmes Anne-Sophie DUJARDIN
53
La fonction habituelle de TRAP est de permettre à des programmes utilisateurs G·HIIHFWXHU�GHV�DSSHOV�V\VWqPH�
E� Instruction TRAPV.
Syntaxe
F�
: TRAPV
/H�ODQFHPHQW�GX�WUDLWHPHQW�GH�O·H[FHSWLRQ�75$39�HVW�FRQGLWLRQQp�j�OD�YDOHXU�GH�9�ORUV�GH�O·H[pFXWLRQ�GH�O·LQVWUXFWLRQ :
6L��9� ����O·H[pFXWLRQ�GX�SURJUDPPH�VH�SRXUVXLW�HQ�VpTXHQFH
6L�9� ����O·H[pFXWLRQ�HVW�WUDQVIpUpH�DX�WUDLWHPHQW�G·H[FHSWLRQ�
8QH�PrPH�H[FHSWLRQ�HVW�JpQpUpH�VL�O·RQ�FKHUFKH�j�HIIHFWXHU�XQH�GLYLVLRQ�VLJQpH�RX�QRQ�avec XQ�GLYLVHXU�GH�YDOHXU����RSpUDQGH�RULJLQH��SRLQWp�SDU��$�(!��
,QVWUXFWLRQV�',96��',98�
G� Instruction CHK.
Syntaxe
Si (Dn)א intervalle��RQ�FRQWLQXH�OH programme��Vinon��H[pFXWLRQ�G·XQH�H[FHSWLRQ�&+.
: CHK Dn
/·LQVWUXFWLRQ�FRPSDUH� OH� FRQWHQX�GX�UHJLVWUH�GH�GRQQpHV�Dn j� O·LQWHUYDOOH� >��RSpUDQGH@��O·RSpUDQGH�HVW�GpILQL�SDU��$�(!��
La comparaison est effectuée en arithmétique signée.
c.
/H�ELW�7�GX�UHJLVWUH�65��PLV�j����SODFH�OH�������HQ�PRGH�WUDFH�
'DQV�FH�PRGH��XQH�H[FHSWLRQ�HVW�IRUFpH�DSUqV�H[pFXWLRQ�GH�FKDTXH�LQstruction.
La fonction de cette exception est une aide au développement. Le traitement correspondant est habituellement un programme de mise au point permettant de YLVXDOLVHU�O·H[pFXWLRQ�HQ�SDV�j�SDV�
Exception du mode trace.
Cas particuliers
9 6L�O·LQVWUXFWLRQ�Q·HVW�SDV�H[pFXWpH�SDUFH�TXH�SULYLOpJLpH��LOOpJDOH��RX�GX�IDLW�G·XQH�LQWHUUXSWLRQ��O·H[FHSWLRQ�7UDFH�QH�VH�SURGXLW�SDV�
:
Architecture des Systèmes Anne-Sophie DUJARDIN
54
9 'H�PrPH��VL� O·H[pFXWLRQ�GH�O·LQVWUXFWLRQ�QH�V·DFKqYH�SDV�GX�IDLW�G·XQ�UHVHW��G·XQH�HUUHXU�EXV�RX�G·XQH�HUUHXU�G·DGUHVVDJH��O·H[FHSWLRQ�7UDFH�QH�VH�SURGXLW�pas.
9 Une exception lancée par une instruction (ex �� WUDS��HVW�G·DERUG�H[pFXWpH��SXLV�HVW�VXLYLH�GH�O·H[FHSWLRQ�7UDFH��
3.
/H�GpFOHQFKHPHQW�G·H[FHSWLRQV�SHXW�DXVVL�QH�SDV�DYRLU�SRXU�RULJLQH�GLUHFWH�OH��������HW�résulter dans ce cDV�G·XQH�DFWLRQ�PDWpULHOOH�H[WHUQH�
([FHSWLRQV�G·RULJLQH�H[WHUQH�
a.
8QH� LQLWLDOLVDWLRQ� GX� V\VWqPH� HVW� HIIHFWXpH� HQ� SODoDQW� j� O·pWDW� EDV� SHQGDQW� DX� PRLQV����PV� OD�EURFKH�5HVHW�GX�PLFURSURFHVVHXU� �GDQV�XQ�PrPH�WHPSV�� OD�EURFKH�+DOW�GRLW�pJDOHPHQW�rWUH�IRUFpH�j�O·pWDW�EDV��
Cette action provoque une exception Reset :
Reset
9 /H� WUDLWHPHQW� HQ� FRXUV� HVW� DEDQGRQQp�� VDQV� LQWHQWLRQ� GH� OH� SRXUVXLYUH�XOWpULHXUHPHQW��DXFXQH�VDXYHJDUGH�GH�FRQWH[WH�Q·HVW�HIIHFWXpH��
9 Le pointeur de pile système (SSP) puis le compteur de programme (PC) sont initialisés.
9 L·H[pFXWLRQ� UHSUHQG� DX� SRLQW� GH� GpPDUUDJH� GX� V\VWqPH� HQ� PRGH� VXSHUYLVHXU��trace inhibée et interruptions masquées.
La broche Reset est bidirectionnelle.
/·XVDJH�SUpFpGHQW�OD�FRQVLGqUH�FRPPH�XQH�HQWUpH�
/·LQVWUXFWLRQ�5HVHW�SHUPHW�GH�FRPPDQGHU�HQ�VRUWLH : ellH� OD�SODFH�j� O·pWDW�EDV�SHQGDQW����� F\FOHV� G·KRUORJH�� &HFL� QH� SURYRTXH� SDV� G·H[FHSWLRQ� PDLV� SHUPHW� XQH� LQLWLDOLVDWLRQ�programmée de périphériques.
b.
/HV�WUDQVIHUWV�HQWUH�������HW�PpPRLUH�RX�SpULSKpULTXHV�PHWWHQW�HQ�MHX�XQ�GLDORJXH��6L�dans certaiQHV�FLUFRQVWDQFHV�� FH�GLDORJXH�Q·HVW�SDV�PHQp�j�ELHQ�� OH� IRQFWLRQQHPHQW�GX�V\VWqPH�ULVTXH�G·rWUH�EORTXp�
Erreur bus.
8QH�ORJLTXH�H[WHUQH��FKLHQ�GH�JDUGH��ZDWFKGRJ��GRLW�DORUV�GpWHFWHU�OH�GpSDVVHPHQW�G·XQ�temps limite de réponse et demander au microprocesseur (par le bLDLV� G·XQH� EURFKH�BERR) le traitement par exception de ce qui est considéré comme erreur bus.
Architecture des Systèmes Anne-Sophie DUJARDIN
55
/H�F\FOH�EXV�FRXUDQW�HVW�DYRUWp�HW� O·H[FHSWLRQ�(UUHXU�%XV�GpEXWH�LPPpGLDWHPHQW��8QH�sauvegarde détaillée du contexte est effectuée.
Une erreur bus intervenant penGDQW�XQH�H[FHSWLRQ�(UUHXU�EXV�RX�5HVHW�SURYRTXH�O·DUUrW�du processeur.
c.
8QH�GHPDQGH�G·LQWHUUXSWLRQ�GX�WUDLWHPHQW�HQ�FRXUV�SHXW�pPDQHU�GH�SpULSKpULTXHV��,OV�GRLYHQW�SRXU�FHOD�JpUHU�O·pWDW�GH���EURFKHV�GX�PLFURSURFHVVHXU ��,3/��,3/��,3/��
Le PpFDQLVPH�G·LQWHUUXSWLRQ�RIIUH���QLYHDX[�GH�SULRULWp����j����
La combinaison appliquée sur les entrées IPL définit le niveau de la demande :
Interruptions.
9 ��HVW�OH�QLYHDX�GH�SOXV�KDXWH�SULRULWp����OH�SOXV�IDLEOH� 9 0 traduit une absence de demande.
Les demandes sont détecWpHV�HQWUH�O·H[pFXWLRQ�GHV�LQVWUXFWLRQV�HW�OHXU�SULVH�HQ�FRPSWH�GpSHQG� GH� O·pWDW� G·XQ� PDVTXH� G·LQWHUUXSWLRQ� IRUPp� SDU� OHV� ELWV� ,��,��,�� GX� UHJLVWUH�G·pWDW :
9 Les niveaux 1 à 6 sont masquables : o 6L� OH� QLYHDX� GH� OD� GHPDQGH� HVW� VXSpULHXU� j� OD� YDOHXU� GX� PDVTXH� le
WUDLWHPHQW�GH�O·LQWHUUXSWLRQ�GpEXWH o 6LQRQ�� OH� WUDLWHPHQW� HVW� GLIIpUp� MXVTX·j� FH� TXH� OH� PDVTXH� GHYLHQQH�
inférieur au niveau (le programme en cours se poursuit en séquence) 9 Le niveau 7 est non masquable : Il est sensible à des fronts ; la séquence de
traLWHPHQW�GH�O·H[FHSWLRQ�HVW�LQFRQGLWLRQQHOOHPHQW�ODQFpH�
/H� ������ SHUPHW� O·DVVRFLDWLRQ� GLUHFWH� GH� ���� WUDLWHPHQWV� GLVWLQFWV� DX[� GHPDQGHV�G·LQWHUUXSWLRQ��VHORQ���PRGHV :
9 Par vectorisation automatique ��OH�WUDLWHPHQW�HVW�FKRLVL�SDUPL�XQ�JURXSH�GH����HQ�fonction du niveau de la demande
9 Par vectorisation utilisateur ��OH�WUDLWHPHQW�HVW�FKRLVL�SDUPL�XQ�HQVHPEOH�GH������par une logique externe au 68000.
Architecture des Systèmes Anne-Sophie DUJARDIN
56
4.
a.
Mécanisme.
/HV� H[FHSWLRQV� VRQW� FODVVpHV� SDU� JURXSH�� j� SULRULWp� GpFURLVVDQWH� HQWUH groupes et à O·LQWpULHXU�GH�FKDTXH�JURXSH :
Hiérarchie des priorités.
9 Groupe 0 �O·LQVWUXFWLRQ� HQ� FRXUV� HVW� DEDQGRQQpH ; le lancement de O·H[ception débute GDQV�OHV�GHX[�F\FOHV�G·KRUORJH�VXLYDQWV��: UHVHW��HUUHXU�G·DGUHVVDJH��HUUHXU�EXV
9 Groupe 1 �O·LQVWUXFWLRQ�HVW�ODQFpH�j�O·LVVXH�GH�O·LQVWUXFWLRQ�HQ�FRXUV��: WUDFH��LQWHUUXSWLRQ��LQVWUXFWLRQ�LOOpJDOH��YLRODWLRQ�GH�SULYLOqJH�
9 Groupe 2 �O·H[pFXWLRQ�GH�O·LQVWUXFWLRQ�FRQGXLW�j�O·H[FHSWLRQ� : 7UDS��7UDS9��&KN��GLYLVLRQ�SDU�� (Rq : SULRULWp�VDQV�REMHW ici)
/·H[pFXWLRQ� GX� WUDLWHPHQW� G·XQH� H[FHSWLRQ� HVW� LQWHUURPSXH� SDU� OH� ODQFHPHQW� G·XQH�exception de plus grande priorité.
/RUV�GH�O·DSSDULWLRQ�VLPXOWDQpH�GH�GHX[�H[FHSWLRQV��OH�WUDLWHPHQW�GH�FHOOH�GH�SOXV�IDLEOH�priorité est lancé en premier (mais abandonné immédiatement au profit de celui correspondant à une priorité plus élevée).
b.
/H�VpTXHQoDJH�GX�ODQFHPHQW�G·XQH�H[FHSWLRQ�FRPSRUWH���SKDVHV :
/DQFHPHQW�G·XQH�H[FHSWLRQ�
9
1/ LH�FRQWHQX�GX�65�IDLW�O·REMHW�G·XQH�VDXYHJDUGH�WHPSRUDLUH�LQWHUQH�DX������
2/ Le bit S est PLV� j� �� �OH� WUDLWHPHQW� GH� O·H[FHSWLRQ� YD� rWUH� H[pFXWp� HQ� PRGH�superviseur)
3/ LH�ELW�7�HVW�PLV�j����OH�PRGH�WUDFH�HVW�LQDFWLYH�SHQGDQW�O·H[FHSWLRQ�
&HV� �� DFWLRQV� VRQW� HIIHFWXpHV� TXHOOH� TXH� VRLW� O·H[FHSWLRQ�� 'DQV� OH� FDV� GHV� H[FHSWLRQV�Reset et InterruptionV��OH�PDVTXH�GH�SULRULWp�G·LQWHUUXSWLRQ�HVW�HQ�RXWUH�DFWXDOLVp :
4/ repositionnement du masque au niveau 7 pour Reset ou au niveau de la demande pour Interruption.
Redéfinition du contenu de SR :
Architecture des Systèmes Anne-Sophie DUJARDIN
57
9
8Q� YHFWHXU� HVW� XQH� SRVLWLRQ� PpPRLUH� R�� OH� PLFURSURFHVVHXU� UHFKHUFKH� O·DGUHVVH� GX���WUDLWHPHQW�GH�O·H[FHSWLRQ�
Chaque vecteur est identifié par un numéro codé sur 8 bits (256 vecteurs peuvent être distingués). /·DGUHVVH� DEVROXH� G·XQ� YHFWHXU� HVW� GpWHUPLQpH� HQ� PXOWLSOLDQW� SDU� �� VRQ�numéro. Ce calcul HVW�HIIHFWXp�SDU�OH�PLFURSURFHVVHXU�HW�Q·HVW�SDV�PRGLILDEOH��/·DGUHVVH�G·XQ� YHFWHXU� GRQQp� HVW� GRQF� FRQVWDQWH� Le contenu du vecteur doit être défini en IRQFWLRQ�GH�O·LPSODQWDWLRQ�HQ�PpPRLUH�GHV�WUDLWHPHQWV�G·H[FHSWLRQ��,O�HVW�SURJUDPPp�SDU�O·XWLOLVDWHXU�
Le numéro est généré de façon interne et automatique par le 68000 pour toutes les H[FHSWLRQV�� VDXI� OHV� LQWHUUXSWLRQV� La détermination du numéro associé à une interruption requiert un dialogue avec cette logique externe :
'pWHUPLQDWLRQ�GX�QXPpUR�GX�YHFWHXU�G·H[FHSWLRQ :
o le 68000 exécute un cycle de UHFRQQDLVVDQFH�G·LQWHUUXSWLRQ�DX�FRXUV�GXTXHO�LO�SODFH� VXU� OHV� OLJQHV� $��$��$�� GX� EXV� G·DGUHVVHV� OH� QLYHDX� GH� O·LQWHUUXSWLRQ�reconnue.
o une logique externe choisit une vectorisation automatique ou une vectorisation utilisateur :
o vectorisation automatique
o vectorisation utilisateur : la logique délivre le numéro du vecteur VXU� OH� EXV� GH� GRQQpHV� HW� WHUPLQH� O·pFKDQJH� SDU� '7$&.� �XQ�périphérique de la famille 68000 non initialisé pour cette YHFWRULVDWLRQ� UpSRQG� SDU� OH� QXPpUR� ���� YHFWHXU� ,QWHUUXSWLRQ� QRQ�initialisée).
: OD� ORJLTXH� UpSRQG� SDU� OD� OLJQH� 93$�� OH�68000 détermine le numéro du vecteur en fonction du niveau.
o une absence de réponse par VPA ou DTACK doit être détectée par une logique G·HUUHXU�EXV�TXL�DFWLYH�DORUV� OD� OLJQH�%(55��/H�PLFURSURFHVVHXU�DVVRFLH�j�FH cas le vecteur numéro 24 (Interruption parasite).
La table des vecteurs occupe les adresses 0 à 1023 (0 à $3FF).
&KDTXH�YHFWHXU�FRQWLHQW�XQ�PRW� ORQJ��H[FHSWp� OH�YHFWHXU�5HVHW�TXL�GpILQLW�SDU���PRWV�longs les contenus initiaux du pointeur de pile système et du compteur de programme.
Architecture des Systèmes Anne-Sophie DUJARDIN
58
Numéro Adresse Exception 0 000 Reset (SSP) initial 004 Reset (PC) initial
2 008 Erreur bus 3 00C (UUHXU�G·DGUHVVDJH 4 010 Instruction illégale 5 014 Division par 0 6 018 Instruction CHK 7 01C Instruction TRAPV 8 020 Violation de privilège 9 024 Trace 10 028 Emulateur ligne 1010 11 02C Emulateur ligne 1111 12 030 Réservé 13 034 Réservé 14 038 Réservé 15 03C Interruption non initialisée
16-23 040 Réservé 05C -
24 060 Interruption parasite 25 064 Auto-vecteur interruption niveau 1 26 068 Auto-vecteur interruption niveau 2 27 06C Auto-vecteur interruption niveau 3 28 070 Auto-vecteur interruption niveau 4 29 074 Auto-vecteur interruption niveau 5 30 078 Auto-vecteur interruption niveau 6 31 07C Auto-vecteur interruption niveau 7
32-47 080 Vecteurs instruction TRAP 0BC -
48-63 0C0 Réservé 0FF -
64-255 100 – 3FC Vecteurs interruptions utilisateur
9
/·H[FHSWLRQ�5HVHW�FRQVWLWXH�XQ�FDV�SDUWLFXOLHU�GX�IDLW�GH�O·DEVHQFH�GH�VDXYHJDUGH�
3RXU�O·HQVHPEOH�GHV�DXWUHV�H[FHSWLRQV��XQH�VDXYHJDUGH�GH��3&��HW��65��HVW�HIIHFWXpH�HQ�pile superviseur.
/HV� H[FHSWLRQV� (UUHXU� EXV� HW� (UUHXU� G·DGUHVVDJH� SURYRTXHQW� HQ� RXWUH� OH� UDQJHPHQW�G·DXWUHV�LQIRUPDWLRQV�HQ�SLOH�
Sauvegarde du contexte :
Architecture des Systèmes Anne-Sophie DUJARDIN
59
9
/H� FRQWHQX� GX� YHFWHXU� G·H[FHSWLRQ� HVW� WUDQVIpUp� GDQV� OH� 3&�� SXLV� O·H[pFXWLRQ� UHSUHQG�normalement.
Redéfinition du contenu de PC :
c.
/·LQVWUXFWLRQ�SULYLOpJLpH�57(��H[pFXWpH�HQ�PRGH�VXSHUYLVHXU��WUDQVIHUW�GHSXLV�OD�SLOH�XQ�PRW�YHUV�OH�UHJLVWUH�G·pWDW�65 et un mot long vers le compteur de programme PC.
&HFL� HQWUDLQH� OD� UHSULVH� G·H[pFXWLRQ� GX� WUDLWHPHQW� LQWHUURPSX�� VRXV� UpVHUYH� TXH� OH�SRLQWHXU� GH� SLOH� VRLW� UHVWp� FRUUHFWHPHQW� SRVLWLRQQp� �j� O·LGHQWLTXH� GHV� FRQGLWLRQV� GH�UHWRXU�G·XQ�VRXV-programme par RTS).
EQ�PRGH�XWLOLVDWHXU��57(�FRQGXLW�j�XQH�H[FHSWLRQ�9LRODWLRQ�GH�SULYLOqJH�
5HWRXU�G·H[FHSWLRQ�
5.
/D�GLVWLQFWLRQ�HQWUH� OHV�GHX[�PRGHV�G·H[pFXWLRQ�GHV�SURJUDPPHV�HVW�HIIHFWXpH�SDU� OH�bLW�6�GX�UHJLVWUH�G·pWDW�65 :
Modes
9 S = 1 mode superviseur 9 S = 0 mode utilisateur
Mode superviseur
9 le niveau de privilège est le plus élevé
:
9 toutes les instructions sont autorisées 9 les cycles bus sont classés en référence superviseur 9 le pointeur de pile est SSP
Mode utilisateur
9 Les instructions "privilégiées" ne peuvent pas être utilisées
:
o UHVHW��VWRS��UWH o O·LQVWUXFWLRQ� GH� WUDQVIHUW� DYHF� OH� SRLQWHXU� GH� SLOH� XWLOLVDWHXU : PRYH�863�$Q��
RX�PRYH�$Q�863 o -OHV�LQVWUXFWLRQV�PRGLILDQW�O·RFWHW�V\VWqPH�GX�UHJLVWUH�G·pWDW�65�
9 Les cycles bus sont classés en référence utilisateur 9 Le pointeur de pile est USP
Architecture des Systèmes Anne-Sophie DUJARDIN
60
Remarque : EQ�PRGH�XWLOLVDWHXU��$��HVW�LPSOLFLWHPHQW�OH�SRLQWHXU�863��6D�PRGLILFDWLRQ�HVW�QDWXUHOOHPHQW�SHUPLVH��/·DFFqV�j�663�GDQV�FH�PRGH�HVW�LPSRVVLEOH�
EQ� PRGH� VXSHUYLVHXU�� $�� FRUUHVSRQG� j� 663�� pYLGHPPHQW� PRGLILDEOH��/·LQVWUXFWLRQ� © move USP » a pour but G·DXWRULVHU� pJDOHPHQW� O·DFFqV� DX�pointeur utilisateur.
Changement de mode
9 passage utilisateur ĺ superviseur : par exception exclusivement
:
9 -passage superviseur ĺ utilisateur �� 57(�029(� WR�65 �� $1',� WR� 65�� (25,� WR�SR.
Architecture des Systèmes Anne-Sophie DUJARDIN
61
Chap.5. Introduction aux Microcontrôleurs
I. Généralités – Présentation du composant
Un microcontrôleur est un circuit intégré rassemblant dans un même boitier un PLFURSURFHVVHXU�� SOXVLHXUV� W\SHV� GH�PpPRLUHV� HW� GHV� SpULSKpULTXHV�GH� FRPPXQLFDWLRQ�(Entrées/Sorties). La définition donnée dans l'Arrêté du 14 septembre 1990 relatif à la terminologie des composants électroniques (parue au BO) est la suivante : "Microprocesseur comprenant des éléments fixes et des éléments personalisés selon l'application".
Un microcontrôleur est donc une unité de traitement de l'information programmable SHUPHWWDQW�GH�UpDOLVHU�GHV�PRQWDJHV�VDQV�QpFHVVLWHU�ODMRXW�GH�FRPSRVDQWV�H[WpULHXUV��8QH�IRLV�SURJUDPPp��LO�SHXW�IRQFWLRQQHU�GH�IDoRQ�DXWRQRPH�
/H�3,&�HVW�XQ�PLFURFRQWUROHXU�FRQVWUXLW�SDU�0LFUR&KLS��2IILFLHOOHPHQW��FH�QHVW pas un DFURQ\PH�� PDLV�� OD� WUDGXFWLRQ� JpQpUDOHPHQW� DGPLVH� HVW� 3HULSKHULFDO� ,QWHUIDFH�Controller.
La structure interne (simplifiée) d'un tel composant est donné par le diagramme suivant:
Mémoires
Unité de calcul
Registre temporaire
Modules
Port E/S
Architecture des Systèmes Anne-Sophie DUJARDIN
62
Les PICS sont des composants de type RISC (Reduced Instruction Set Computer). Les LQVWUXFWLRQV� VRQW� FRGpHV� VXU� XQ� VHXO� PRW� GH� SURJUDPPH� HW� VRQW�� VDXI� SRXU� OHV�instructionV�GH�EUDQFKHPHQW��H[pFXWpHV�HQ�XQ�VHXO�F\FOH��2Q�GLIIpUHQFLH�OHV�3,&�JUkFH�j�la taille de leurs mots d'instruction.
La dénomination des PIC donne un certain nombre d'informations :
9 Le premier nombre permet de déterminer la famille (et donc la taille des mots d'instructions) du PIC
9 La lettre qui suit indique le type de mémoire programme incluse dans le composant (F : Mémoire Flash ; CR : Mémoire ROM ; C = Mémoire EPROM ou EEPROM)
9 Le nombre de 2 à 4 chiffres qui termine le nom indique le modèle du PIC au sein de la famille.
II. PIC 16F8X (Annexe 2)
Exercice : Déterminer les éléments caractéristiques du PIC pour pouvoir le programmer.
2EMHFWLI : Savoir lire une documentation technique