Architecture des ordinateurs I Examen Final Automne 2004 JP David IFT 1226 Examen Final /40 Nom : ______________________________ Login : ______________________________ Signature :___________________________ Code Perm : __________________________ Directives pédagogiques : • • • Durée de l’examen : 3 heures. Documentation permise : les acétates vus au cours, éventuellement annotés. Les datasheets du PIC18F452 (ou des extraits) Répondre directement sur le questionnaire Question 1 (5 points, 15 minutes, soit 9H45) Expliquez le fonctionnement de l’architecture Mic4, étage par étage en donnant chaque fois le type de données qui entrent dans l’étage, le traitement qui est fait dans l’étage et le type de données qui sortent de l’étage. Étage 1 Étage 2 Étage 3 1 Architecture des ordinateurs I Examen Final Automne 2004 JP David Étage 4 Étage 5 Étage 6 Étage 7 Question 2 (10 points, 40 minutes, soit 10H25) Écrire un programme en langage d’assemblage pour le robot pico-board qui reçoit des octets (x) par le port infra-rouge, les encrypte (voir algorithme ci-dessous) et renvoie le résultat (y) par le port infrarouge utilisez les labels n0..n6 qui doivent impérativement se retrouver dans votre code : char crypto(char x) { char y,i; n0: y=255-x; n1: n2: n3: n4: n5 : for (i=0; i<16;i++) { if (y%2==0) y=y + 0xAE; else y=y ^ 0x58; y=perm (y); } return y; // ^ signifie un xor n6 : } Considérez que la routine perm est déjà écrite pour vous. Elle prend son paramètre dans WREG et retourne son résultat dans WREG également. 2 Architecture des ordinateurs I Examen Final Automne 2004 JP David 3 Architecture des ordinateurs I Examen Final Automne 2004 JP David Question 3 (5 points, 15 minutes, soit 10H40) Le jeu d’instructions d’un processeur 16 bits nécessite au minimum : • 10 instructions à 3 opérandes (4 bits par opérande) • 2 instructions à 2 opérandes (6 bits par opérande) • 6 instructions à 1 opérande (11 bits par opérande) • 500 instructions sans opérande 3.1) Proposez un format d’instruction compatible avec ces exigences. 3.2) Combien d’instructions sans opérande restent disponibles ? Quel est leur format ? 3.3) On voudrait ajouter 16 instructions à 3 opérandes de 4 bits sans changer la taille du bus de donnée (16 bits). Comment faire ? Inspirez-vous du PIC18F452. 4 Architecture des ordinateurs I Examen Final Automne 2004 JP David Question 4 (10 points, 40 minutes, soit 11H20) Sur l’architecture MIC3 (celle avec 3 bus, l’unité de recherche d’instructions et les registres A, B et C supplémentaires), les temps de propagation sont les suivants : 4 ns entre les registres et les bus A et B 10 ns dans l’ALU 3 ns dans l’unité de décalage 3 ns entre le registre C et l’entrée des registres. Dans l’ALU, on se rend compte que les opérations logiques et arithmétiques prennent effectivement 10 ns tandis que les simples transferts prennent seulement 5 ns. On décide alors d’utiliser deux cycles d’horloge pour les opérations logiques et arithmétiques et un seul cycle d’horloge pour les transferts. Ainsi, le programme suivant est valide : N0 : N1 : N2 : N3 : A=CPP; B=TOS // on attend un cycle avant de récupérer le résultat de l’addition sans changer A et B C=A+B; A=LV; C=A; // la donnée est déjà disponible car il s’agit d’un simple transfert. 4.1) Quelle était la fréquence maximale avant d’utiliser ce stratagème ? 4.2) Quelle est la fréquence maximale avec ce stratagème ? 4.3) Décrivez, cycle après cycle, l’exécution de l’instruction IADD parallélisée au maximum sur cette nouvelle architecture. 5 Architecture des ordinateurs I Cycle MAR=SP=SP-1; rd; 1 B=SP; Examen Final Automne 2004 H=TOS; JP David MDR=TOS=MDR-H;wr; goto (MBR1) 2 3 4 5 6 7 4.4) Cette modification va-t-elle augmenter ou diminuer les performances ? Justifiez. Question 5 (10 points, 40 minutes, soit 12H00) Un ordinateur dispose d’une mémoire physique de 64 Mo avec une cache « 2-associative » de 8Ko (soient 2 blocs de 4Ko chacun). La taille des lignes est de 32 octets. 5.1) Faites un dessin de la mémoire cache en indiquant le nombre et la taille des cellules mémoires (par cellule on entend le plus petit groupe de bits contenant une information significative). Indiquez également la correspondance entre l’adresse physique et la position dans la mémoire cache. 6 Architecture des ordinateurs I 5.2) Examen Final Automne 2004 JP David Pour la séquence d’accès suivante, indiquez chaque fois si la donnée est en cache, le numéro du bloc et de la ligne, et les éventuelles opérations de transfert de données entre cache et mémoire principale : Adresse Hit/Miss Bloc Ligne Transferts : De mémoire[x..y] vers cache De cache vers mémoire[x...y] 0 0x8 0x10 0x48 0x60 0x1050 0x3040 0x2050 0x2070 Il vous reste normalement 30 minutes pour relire Bon travail ! 7