Université du Québec enabitibi-témiscamingue SOLUTIONNAIRE DE L EXAMEN INTRA COURS: MICROPROCESSEURS I SIGLE: SESSION: CENTRE: INF-3215 HIVER 2002 - CONTRÔLE PÉRIODIQUE ROUYN-NORANDA 1) 1,00 2) 2,00 3) 2,50 4) 1,50 5) 1,50 6) 1,50 7) 3,00 8) 1,00 9) 1,00 10) 1,00 11) 3,00 12) 1,00 Total) 20,00 DÉPARTEMENT DES SCIENCES APPLIQUÉES
1) L architecture de bus utilisée pour les processeurs 218x est de type: (1pts) Harvard. Harward modifié. Von Neuman. 2) Afin d accéder à la mémoire d amorçage (Boot Memory) externe, le processeur ADSP-2181 (réponses multiples - toute mauvaise case cochée donne un pointage négatif). (2pts) Se sert de 24 fils de données Se sert de 24 fils d adresse Se sert de 8 fils de données Se sert de 14 fils de données Le 2181 peut être configuré pour une mémoire Boot de 16 bits de large Accède à 4 Megaoctets maximum de mémoire de Boot Accède à 2 Gigaoctets maximum de mémoire de Boot Pour vous aider, consultez la figure 1 qui suit: Fig ure 1. Page 1
3) Parmi la liste des éléments suivants qui constituent le processeur ADSP2181, déterminer ce qui fait partie du coeur, et ce qui fait partie des périphériques.(2,5pts) Coeur Périphérique SPORT0 et SPORT1. MAC. Mémoire PM. Mémoire DM. BDMA ALU DAG1 et DAG2 SHIFTER PROGRAM SEQUENCER TIMER 4) L instruction suivante renverse tous les bits du registre (complément à 1): AR = NOT AX0; On peut obtenir le même résultat dans le registre AR en utilisant un masque dans AY0 et une des fonctions logiques. Complétez les lignes suivantes pour réaliser cette opération de renversement de tous les bits: (1,5pts) AY0 = 0xFFFF; AR = AX0 XOR AY0; // dresser le masque dans A0 // renverser tous les bits 5) Dans le projet du robot Hexapode, les 16 bits du registre AR correspondent à l état de chacun des 12 moteurs (les 4 bits de poids fort sont ignorés). On veut dresser les bits correspondants aux moteurs 3 et 7, sans en changer l état des autres moteurs. Complétez alors les instructions qui suivent: (1,5pts) AX0 = 0x???; AY0 = 0x0044; // contient l état actuel des moteurs // dresser le masque AR = AX0 OR AY0; //activer les moteurs 3 et 7. Page 2
6) Dans le même projet robot Hexapode, on veut maintenant remettre à zéro l état des moteurs 4 et 6, encore une fois sans changer l état des autres moteurs. Complétez alors les instructions qui suivent: (1,5pts) AX0 = 0x????; AY0 = 0xFFD7; // contient l état actuel des moteurs // dresser le masque AR = AX0 AND AY0; //mettre à zéro les moteurs 4 et 6 7) Quelle est la valeur du nombre mis dans le registre ax0, selon que l on considère ce nombre dans le format: (3pts) ax0=0xdbca; Entier pur. 56266 Entier signé (complément_à_2) -9270 Valeur (notation décimale) Virgule fixe 1.15-0,28289794921875 Virgule fixe 3.13-1,131591796875 Signe + valeur absolue -23498 XS32767 (excédent 2 15-1) +23499 8) Voici le prototype pour la soustraction en double précicion (sur 32 bits), compléter les instructions pour réaliser cette soustraction: (1pts) /*------------------------------------------------- Dou ble-pre ci sion Sub trac tion Z = X - Y Call ing Parameters AX0 = LSW of X AX1 = MSW of X AY0 = LSW of Y AY1 = MSW of Y Re turn Values SR0 = LSW of Z SR1 = MSW of Z Al tered Reg is ters AR, SR Page 3
Com pu ta tion Time 4 cy cles ---------------------------------------------------*/.global double_sub; double_sub: AR=AX0-AY0; /* Subtract LSWs */ SR0=AR, AR=AX1-AY1+C-1; /* Subtract MSWs */ SR1=AR; rts; /*--------------------------------------------------*/ 9) Donnez le résultat en hexadécimal dans sr0 et sr1 après les instructions suivantes: (1pts) mr1=0x3df1; mr2=0xabcd; sr=ashift mr1 by 3 (lo); sr0 = sr1 = 0xEF88 0x0001 10) Quelle différence faites-vous entre ces 2 instructions: (1pts) Ligne 1: AR=0; Ligne 2: AX0=-1; Ligne 3: AR = AX0; ou AR = PASS AX0; Ligne 4: IF LT JUMP toto_label; Laquelle des 2 instructions à la ligne 3 permet le saut lors du test à la ligne 4. AR = PASS AX0; 11) Donnez l état des indicateurs concernés AZ, AN, AV, AS, MV pour que le test réussisse dans chacun des test suivants: (3pts) Exemple: GE équivaut à NE EQ AZ=1 ET AN=0 AZ=0 AZ=1 Page 4
LT (AN XOR AV)=1 Exemple: LE équivaut à (AN XOR AV) OR AZ=1 GT (AN XOR AV) OR AZ=0 NOT AC NOT MV AC NEG POS NOT AV AC=0 MV=0 AC=1 AS=1 AS=0 AV=0 12) Voici le format pour l instruction d addition avec retenue: Page 5
Et voici les codes pour les différents champs dans cette instruction: Z: Destination register 0 AR 1 AF Xop: X operand 000 AX0 001 AX1 010 AR 011 MR0 100 MR1 101 MR2 110 SR0 111 SR1 Yop: Y operand 00 AY0 01 AY1 10 AF 11 ZERO COND: condition 0000 EQ 0001 NE 0010 GT 0011 LE 0100 LT 0101 GE 0110 AV 0111 NOT AV 1000 AC 1001 NOT AC 1010 NEG 1011 POS 1100 MV 1101 NOT MV 1110 NOT CE (Aucune condition) 1111 Always TRUE Page 6
Sachant que vous devez réaliser le compilateur assembleur qui doit transférer le texte assembleur en mot machine, donner alors le mot de 24 bits qui corresponde à l instruction suivante: (1pts) AR = AX0+AY1+C; 0x22480F Fin de l examen! Page 7