Contrôle « Architecture des microprocesseurs » ECE INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
J. FRANCOMME [email protected] - J.M. HENRI [email protected]
1/14
Éléments de correction Contrôle
Architecture des microprocesseurs
Durée 2 heures
Tous les documents personnels (cours, TD, TP) sont autorisés.
La machine à calculer est autorisée.
La qualité de la présentation sera prise en compte dans le barème de notation.
Les trois parties de ce contrôle sont totalement indépendantes.
Il vous est demandé de rédiger chacune des parties sur une copie séparée.
Pensez à rappeler le numéro des questions auxquelles vous répondez.
N’oubliez pas de joindre tous les documents réponses à votre copie.
Remarque concernant les éléments de correction :
Les éléments de correction font apparaître pour les exercices, plusieurs solutions
possibles ainsi que des rappels afin daborder ceux-ci convenablement. Il n’était pas demandé
aux étudiants d’être aussi précis dans leur démarche.
Partie A
Architecture du microprocesseur 68000 de MOTOROLA
Décodage d’adresses
Une carte micro-programmée comporte un composant RAM et un composant EPROM
câblés sur le bus d’adresse comme indiqué ci-dessous :
A.1. Etude du composant RAM (U1) (3 points / 8mn)
A.1.1) Indiquer le rôle de l’entrée E1. Quel doit être l’état actif de cette entrée E pour effectuer une
écriture d’une donnée dans la RAM (U1).
L’entrée E1 est connectée sur la broche CE (Chip Enable ou validation boîtier) du
composant RAM. Celle-ci permet au composant RAM d’être sélectionné et d’avoir son
bus de donnée connecté à celui du microprocesseur. Cette entrée est active à l’état bas.
Pour pouvoir effectuer une écriture cette entrée doit être à l’état bas ainsi que l’entrée
WE .
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
CE
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
U1
RAM: 6132
(
A
0…
A15
)
E1
0V
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
CE
VPP
D0
D1
D2
D3
D4
D5
D6
D7
EPROM: 2764
U2
E2
(
A
0…
A15
)
1
U
74LS
04
A
15
(
D
0…
D7
)
Bus d’adresse
Bus de données
Contrôle « Architecture des microprocesseurs » ECE INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
J. FRANCOMME [email protected] - J.M. HENRI [email protected]
2/14
A.1.2) Déterminer la capacité du composant U1 en Kbits et en Ko.
Afin de déterminer la capacité mémoire de la mémoire RAM (U1), il faut regarder le
nombre de ligne du bus d’adresse du microprocesseur connecté sur le boîtier mémoire.
Seules les lignes A0 ? A11
sont utilisées.
Il y a donc 12 lignes qui permettent d’avoir 212 combinaisons différentes d’adresses.
A15 A14 A13 A12 A11
A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Combinaison la plus petite 0 0 0 0 0 0 0 0 0 0 0 0 0
Combinaison la plus grande 1 1 1 1 1 1 1 1 1 1 1 1 4095
De la combinaison 0 à la combinaison 4095 il y a 4096 combinaisons soit 4096
emplacements mémoires de 8 bits (octets).
Pour la conversion en Kilo-octets, il suffit de diviser par 1024 (210) et cela donne 4Ko.
Pour obtenir la quantité en Kbits il faut considérer que dans un octet il y a huit bits
soit kbits32
1024
4096*8 = .
A.1.3) En supposant que les lignes A15, A14, A13 et A12 du bus d’adresse sont à l’état logique
bas, déterminer la plage d’adresse occupée par le composant U1.
Pour connaître la plage d’adresses occupée par le composant, il faut considérer
l’adresse de début et l’adresse de fin. Il est donné l’état des autres bits du bus
d’adresses (A12 ?A15), tous à l’état logique bas pour valider la sélection de la RAM
(U1).
A15
A14
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $0000
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 $0FFF
Soit adresse de début $0000 et adresse de fin $0FFF
$FFFF
$F000
$EFFF
$E000
$DFFF
$D000
$CFFF
$C000
$BFFF
$B000
$AFFF
$A000
$9FFF
$9000
$8FFF
$8000
$7FFF
$7000
$6FFF
$6000
$5FFF
$5000
$4FFF
$4000
$3FFF
$3000
$2FFF
$2000
$1FFF $1000
$0FFF RAM (U1) $0000 4ko
Contrôle « Architecture des microprocesseurs » ECE INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
J. FRANCOMME [email protected] - J.M. HENRI [email protected]
3/14
A.2. Etude du composant EPROM (U2) (2 points / 8mn)
A.2.1) Déterminer la capacité du composant U2 en Kbits et en Ko.
De la même manière que la question précédente :
Seules les lignes A0 ? A14
sont utilisées.
Il y a donc 15 lignes qui permettent d’avoir 215 combinaisons différentes d’adresses.
A15 A14 A13 A12 A11
A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Combinaison la
plus petite 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Combinaison la
plus grande 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 32767
De la combinaison 0 à la combinaison 32767 il y a 32768 combinaisons soit 32768
emplacements mémoires de 8 bits (octets).
Pour la conversion en Kilo-octets, il suffit de diviser par 1024 (210) et cela donne 32Ko.
Pour obtenir la quantité en Kbits il faut considérer que dans un octet il y a huit bits
soit kbits256
1024
32768*8 = .
A.2.2) Sachant que le bit A15 du bus d’adresse est inversé puis connecté à l’entrée E2 du
composant U2, déterminer la plage d’adresse occupée par le composant U2
Pour que le composant mémoire U2 (EPROM) soit sélectionné, il faut que sur l’entrée
CE soit présent un état bas ou alors que le bit d’adresse A
15 soit au niveau logique
haut.
A15
A14
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $8000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 $FFFF
$FFFF
$F000
$EFFF
$E000
$DFFF
$D000
$CFFF
$C000
$BFFF
$B000
$AFFF
$A000
$9FFF
$9000
$8FFF
EPROM (U2)
$8000
32Ko
$7FFF
$7000
$6FFF
$6000
$5FFF
$5000
$4FFF
$4000
$3FFF
$3000
$2FFF
$2000
$1FFF $1000
$0FFF RAM (U1) $0000 4ko
Contrôle « Architecture des microprocesseurs » ECE INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
J. FRANCOMME [email protected] - J.M. HENRI [email protected]
4/14
Partie B
Programmation dans le langage assembleur du microprocesseur 68000 de
MOTOROLA
B.1. Généralités (3 points / 14mn)
B.1.1) Donnez le nom d’une mémoire volatile.
R.A.M. : Random Access Memory ou mémoire à accès aléatoire. Vous pouviez donner
le nom des mémoires dérivées : SRAM, DRAM, …
B.1.2) Quels sont les différents bits du registre de code condition ?
Le registre de code condition (CCR) est constitué de 5 bits dont l’état dépend de
l’instruction ayant été exécutée. Les autres bits sont à zéro.
0 0 0 X N Z V C
B.1.3) Proposez une solution permettant de mettre à zéro le cinquième bit du registre de code
condition en partant de la droite. Décrivez convenablement votre solution.
Il s’agit de mettre à zéro le bit X du registre CCR.
Le jeu d’instructions du 68000 possède l’instruction ANDI to CCR permettant de
remettre à zéro le bit voulu du registre de code condition.
Exemple : ANDI #%1110 1111, CCR
Il est rappelé que l’opé ration logique AND a pour élément absorbant la valeur 0 et
pour élément neutre la valeur 1 ; Seul le bit X sera modifié par cette opération
de masquage.
B.1.4) Convertir la valeur $EF en binaire.
$EF ? %1110 1111 : la conversion est directe. Certains peuvent toutefois préférer
passer en décimal, puis effectuer des divisions par deux successives (c’est une
mauvaise méthode qui donne quand même le bon résultat).
B.1.5) Décrire la fonction de la ligne suivante dans un programme écrit en langage assembleur
68000.
DC.L 2
C’est une directive d’assemblage « define data constant » qui permet d’enregistrer
dans la mémoire des opérandes. Le format de l’opérande pour cette ligne est
« .L » soit 32 bits. On enregistrera donc dans la mémoire la valeur « 2 » sur 32
bits soit $00000002 ou %0000 0000 0000 0000 0000 0000 0000 0010
B.1.6) Quel est le rôle du registre PC du processeur 68000 ?
Le registre PC « program counter » contient l’adresse de la prochaine instruction
devant être exécutée. Son contenu est incrémenté en fonction du nombre
d’octets de la dernière instruction exécutée. La valeur de cette adresse est
toujours paire !
B.1.7) Montrez que l’instruction, dbf est équivalente à l’instruction dbra
Info: consulter la description de l’instruction « DBcc » dans le document annexe/jeu
d’instructions.
Il faut vous servir du polycopié « annexes » dans lequel vous avez le jeu
d’instructions (page 12 instruction DBcc) ;
« DBcc » : Cette instruction réalise trois opérations différentes : test, décrémente,
branche.
Si la condition « cc » est fausse, alors décrémenter « D » le registre indiqué
dans l’instruction et brancher « B » à l’adresse indiquée également dans l’instruction.
Si le résultat de la décrémentation donne « -1 » le rebouclage se termine et
passage à l’instruction suivante.
Dans le cas qui vous est proposé « DBF », « cc » est la condition « F », soit « jamais
égal » ou « never equal »
Contrôle « Architecture des microprocesseurs » ECE INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
J. FRANCOMME [email protected] - J.M. HENRI [email protected]
5/14
Pour la deuxième instruction DBRA, il n’y a pas de condition pour réaliser la
décrémentation du registre : elle est faite systématiquement.
On remarque donc que dans les deux cas, la condition est toujours considérée comme
fausse et que les seules actions réalisées effectivement sont :
. La décrémentation du registre
. Le branchement si le contenu du registre ? -1.
Ces deux instructions sont donc équivalentes.
Vous pouviez également justifier de la façon suivante :
Dans la documentation correspondant à l'instruction DBF, il est noté :
« Most assemblers accept DBRA for DBF...
B.1.8) Indiquer de manière simplifiée les différentes étapes pour l’enregistrement d’une donnée
dans la pile.
Lors d’une opération d’écriture dans la pile, il faut utiliser le registre A7 appelé aussi
SP « Stack pointer ». Le contenu de ce registre est systématiquement
prédécrémenté lors d’un empilage « écriture dans la pile » : le nombre de
décrémentation dépend du format de la donnée que l’on écrit dans la pile : les
seules possibilités sont le mot « W » et le long mot « L ».
Exemple : MOVE.W A0,-(A7)
Le registre A7 est décrémenté de deux unités (.W) puis les 16 bits de poids
faibles contenus dans A0 sont recopiés dans la mémoire pointée par le
registre A7. La mémoire pointée par le registre A7 s’appelle la pile.
B.1.9) Décrire les modes d’adressages mis en œuvre dans les deux instructions suivantes pour
chacun des opérande s et donner le contenu de chacun des registres 32 bits et de la mémoire
après exécution :
ü MOVEA.W #$9123, A0
Placer un opérande 16 bits « .W » dans le registre A0.
Piège : Lors d’une écriture avec un registre d’adresse, il y a
systématiquement extension d’adresse. Le bit de poids fort de
l’opérande est recopié sur les bits de poids fort du registre
d’adresse. (%1001 0001 0010 0011).
Adressage immédiat pour l’opérande source « # $9123».
Adressage direct par registre d’adresse pour l’opérande
destination « A0 ».
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1
F F F F 9 1 2 3
ü MOVE.W A0, (A0)
Placer un opérande 16 bits « .W » contenu dans le registre
d’adresse A0 dans la mémoire dont l’adresse 32 bits est donnée
dans le registre d’adresse A0.
Adressage direct par registre d’adresse pour l’opérande source
« A0 ».
Adressage indirect pour l’opérande destination « (A0).
Le registre A0 n’est pas modifié et contient toujours la valeur
précédente : $FFFF9123
A l’adresse $FFFF9123 dans la mémoire, on retrouve sur deux
octets (un mot : .W) la valeur $9123 (en espérant que ce soit de
la RAM !).
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !