Université du Québec en Abitibi-Témiscamingue SOLUTIONNAIRE DE L’EXAMEN INTRA COURS: SIGLE: MICROPROCESSEURS I INF-3215 SESSION: HIVER 99 - CONTRÔLE PÉRIODIQUE CENTRE: Rouyn-Noranda 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) Total: DÉPARTEMENT DES SCIENCES APPLIQUÉES SOLUTIONNAIRE DE L’EXAMEN INTRA 1) Parmi les unités suivantes, indiquez celles qui feraient partie du noyau du processeur, et celles qui feraient partie des périphériques: (1 point) Partie du noyau Partie périphérique MAC þ r ALU þ r SHIFTER þ r SPORT0 r þ TIMER r þ Mémoire DM r þ Mémoire PM r þ 2) Qu’est ce que l’architecture Harvard (cochez la bonne case) (1 point) C’est celle qui permet un accès, soit à une instruction, soit à une donnée dans un cycle. r C’est celle qui permet un accès simultané à une instruction et à une donnée dans un même cycle. þ C’est celle qui permet un accès simultané à une instruction et à 2 données dans un même cycle. r 3) À quoi sert le générateur d’adresse DAG2 sur le ADSP21xx (cochez toutes les possibilités sensées): (1 point) À générer une donnée en mémoire DM r À générer une adresse en mémoire DM þ À générer une adresse en mémoire PM þ À générer une adresse pour le séquencement des instructions r À générer une adresse sur le bus de données r Permet l’adressag indirect par pointeur þ Page 1 SOLUTIONNAIRE DE L’EXAMEN INTRA 4) Combien de fils d’adresses sont nécessaires pour adresser une zone mémoire de 48 Kmots. (1 point) 16 (48 K = 2 10 x 26 = K x 64) fils sont nécessaires 5) Quels bus sont bi-directionnelles. (1 point) Les bus d’adresses r Les bus de données þ Les bus d’adresses et les bus de données r 6) Donnez le nom du précompilateur assembleur du adsp21xx: (1 point) asm21.exe r asm2.exe r asmpp.exe þ bld21.exe r 7) Donnez la directive qui crée un tampon circulaire de 14 mots dans la mémoire PM et dont le nom est “note_freq”: (attention à la ponctuation, c’est une vrai directive, pas d’à-peu-près) .var/pm/circ note_freq[14]; 8) L’instruction suivante utilise le mode d’adressage (cochez tous les modes pertinents): (1 point) ax0=dm(i0,m2); Mode d’adressage direct þ Mode d’adressage indirect þ Mode d’adressage absolu r Mode d’adressage immédiat r 9) Donnez le résultat en hexadécimal dans sr0 et sr1 après les instructions suivantes: (1 point) Page 2 SOLUTIONNAIRE DE L’EXAMEN INTRA mr1=0xd716; mr2=0xc308; {seuls les 8 bits LSB seront dans mr2} sr=ashift mr2 by 15 (hi); sr0 = 0x0000 sr1 = 0x0000 10) Donnez le résultat après les instructions suivantes: (1 point) ax0=0xd716; ay0=0xc308; ar = ax0 and ay0; ar = 0xc300 11) Donnez le résultat après les instructions suivantes: (1 point) ax0=0xc308; ay0=0xd308; ar = ax0 or ay0; ar = 0xd308 12) Donnez le résultat après les instructions suivantes: (1 point) ax0=0xe408 ay0=0xd316; ar = ax0 xor ay0; ar = 0x371e 13) Quelle est la valeur décimale du nombre mis dans le registre suivant: ax0=0xd416; Si l’on considère que ce nombre est en format: (2 points) Valeur en décimale Entier pur. 54294 Entier signé (en complément_à_2) -11242 Page 3 SOLUTIONNAIRE DE L’EXAMEN INTRA Virgule fixe 1.15 -0,34307861328125 14) Soit la séquence d’instructions suivantes en assembleur du ADSP2181: ax0=0xd416; ay0=0xd000; ar=ax0-ay0; if eq jump get_freq; Est-ce que le saut vers “get_freq:” a eu lieu? (1 point) Le saut vers “get_freq:” a eu lieu r Il n’y a pas de saut vers “get_freq:” þ 15) Voici le prototype pour l’addition en double précicion (sur 32 bits) , compléter les instructions qui manquent pour réaliser cette addition: (1 point) .MODULE Double_Precision_Add; { Double-Precision Addition Z = X + Y Calling Parameters AX0 = LSW of AX1 = MSW of AY0 = LSW of AY1 = MSW of X X Y Y Return Values SR0 = LSW of Z SR1 = MSW of Z Altered Registers AR,SR Computation Time 4 cycles } .ENTRY dpa; dpa: AR=AX0+AY0; SR0=AR, AR=AX1+AY1+C; {Add LSWs} {Add MSWs} Page 4 SOLUTIONNAIRE DE L’EXAMEN INTRA SR1=AR; RTS; .ENDMOD; 16) Voici le prototype pour la soustraction en double précicion (sur 32 bits) , compléter les instructions qui manquent pour réaliser cette soustraction: (1 point) .MODULE Double_Precision_Subtract; { Double-Precision Subtraction Z = X - Y Calling Parameters AX0 = LSW of AX1 = MSW of AY0 = LSW of AY1 = MSW of X X Y Y Return Values SR0 = LSW of Z SR1 = MSW of Z Altered Registers AR, SR Computation Time 4 cycles } .ENTRY dps; dps: AR=AX0-AY0; SR0=AR, AR=AX1-AY1+C-1; SR1=AR; {Subtract LSWs} {Subtract MSWs} RTS; .ENDMOD; 17) Afin d’utiliser les registres i2 et m2 de façon à accéder à tous les 2 éléments du tampon circulaire “note_freq”, donnez les codes d’initialisation nécessaires des registres i2, m2 et certains registres associés: (1 point) i2=^note_freq; Page 5 SOLUTIONNAIRE DE L’EXAMEN INTRA l2=%note_freq; m2=2; 18) On veut tester si les 4 bits les plus à gauche de ax0 contiennent la valeur hexadécimale 0xC. Si oui, on saute au label “toto”. Donnez les instructions nécessaires en utilisant uniquement les registres ax0, ay0 et ar de l’ALU pour effectuer ce test et le saut éventuel. (2 points) ax0=dm(i2,m2); ay0=0xf000; ar=ax0 and ay0; ax0=ar; ay0=0xc000; ar=ax0-ay0; if eq jump toto; Page 6