Professeur : Jean-Marc Beaulieu Département de génie électrique Systèmes en temps réel Réponses – Exercices # 2 Numéro 1 – Vrai ou Faux a) b) c) d) e) f) g) Faux Faux Vrai Faux Vrai Faux Vrai Numéro 2 – Architecture En mathématique, et particulièrement en algèbre, les opérations (logiques/arithmétiques) sont unitaires ou binaires. Une opération binaire de la forme (opérant 1) [opération] (opérant 2) Æ résultat possède 2 opérants et un résultat, donc nous avons un maximum de 3 adresses à spécifier. Pour n > 3, il faudrait : • Plusieurs destination pour le résultat ou • Plus de 2 opérants Dans les deux cas, ces configurations augmente la complexité du processeur (aspect matériel). Numéro 3 – Temps d’exécution a) 1.57 cycles/instruction b) 31.4 µs c) 27.16 µs Numéro 4 – Pipeline Les difficultés posées sont : • Le temps de réponse aux interruptions est plus long parce qu’il faut vider le pipeline avant les branchements; • Il est très difficile de déterminer le temps d’exécution. Numéro 5 – Pipeline a) Sans pipeline Æ 42 ns Avec pipeline Æ 11 ns b) Accélération = 3.82 1 Numéro 6 – Mémoire a) Mémoire ROM parce que le programme ne changera pas. Le coût est un facteur important (nombre d’unité élevé) donc PROM (ou EEPROM) b) Mémoire SRAM avec batterie de réserve (« Battery backup RAM ») c) Mémoire ROM programmable Æ EEPROM ou UVPROM d) Mémoire volatile RAM Æ Dynamique RAM (DRAM ou SDRAM) Numéro 7 – Mémoire Type d’accès mémoire Accès programmé Accès projeté en mémoire Accès direct en mémoire (DMA) Avantage Désavantages • Ne requiert pas de circuit • Requiert des instructions spécial spécifiques Æ moins portable • Plage mémoire disponible • Facile à programmer • Requiert des circuits spéciaux • Transfert de données sans • Requiert des circuits l’intervention du CPU spéciaux • Possibilité de « vol de cycles » au CPU Æ donc le CPU attends Numéro 8 – Mémoire Le contrôleur des accès directs (DMA) à la priorité parce que : 1) Les entrées/sorties par transferts DMA impliquent généralement des blocs de données. Le fonctionnement (et la performance) des périphériques est grandement perturbé par l’interruption du transfert d’un bloc par le processeur. 2) Les entrées/sorties sont généralement « lentes » par rapport au traitement du processeur. On augmente la performance des entrées/sorties en donnant la priorité aux transferts DMA. Numéro 9 – Mémoire • • • Une mémoire volatile est une mémoire qui perd son contenu lorsqu’elle n’est plus sous tension (exemple : RAM). Une mémoire dynamique est une mémoire volatile qui en plus doit être rafraîchie plusieurs fois par seconde pour ne pas perdre son contenu. Une mémoire statique est aussi une mémoire volatile mais elle n’a pas besoin de rafraîchissements. 2 Numéro 10 – Mémoire Avec un registre d’adresse de 32 bits, on a : a) 232 mots de 1 octet Æ 4 Gigaoctets b) la plus haute adresse est 232 – 1 = 4 294 967 295 c) 232 mots de 32 bits Æ 4 Gigaoctets d) même réponse qu’en b) Note : Le nombre de mots adressables est le même puisqu’il ne dépend que du nombre de bits de l’adresse. Cependant, la taille de la mémoire est différente dans les 2 cas. Numéro 11 – Mémoire Le nombre de bits nécessaires sont: a) 12 bits b) 16 bits c) 24 bits Numéro 12 – Mémoire La taille maximale d’un programme est : a) 65 536 (216) b) 1 048 576 (220) c) 16 777 216 (224) d) 4 294 967 296 (232) Numéro 13 – Bus Il faut 20 lignes d’adresse pour utiliser une mémoire de 1 Méga octets. La plage d’adresse accessible est 0x00000 à 0xFFFFF. Numéro 14 – Bus Un bus est un ensemble de lignes assurant la connexion des dispositifs qui y sont rattachés. Dans un bus, on distingue des lignes affectées au transport des adresses, des lignes pour le transport des données et des lignes pour les signaux de contrôle. Numéro 15 – Interruption Non. Le processeur termine l’instruction en cours avant d’entreprendre le traitement de l’interruption. Numéro 16 – Interruption De façon générale, la réponse est oui. Une interruption de basse priorité peut être interrompue par une interruption de plus haute priorité. Numéro 17 – Interruption La sauvegarde de l’état du processeur consiste à copier le contenu des registres nécessaires à la poursuite de l’exécution du programme interrompu. 3 Numéro 18 - Assembleur a) À chaque itération, la portion suivante du code est exécutée : mov add add dec mov jne edi, DWORD PTR [ecx+eax] eax, 4 edi, esi edx DWORD PTR [eax-4], edi SHORT $L530 ; Adresse de b dans EBX (&a-&b+&a) ; Addresse de a + 4 ; c + b ; Branchement Il y a donc 6 instructions exécutées à chaque itération. Pour l’exécution de la fonction totale, nous avons - initialisation Æ 7 instructions - Boucle Æ 100 x 6 instructions = 600 instructions - Terminaison Æ 3 instruction (2 pop et ret ) Donc, au total, nous avons 610 instructions pour l’exécution de la fonction. b) Nous devons estimer le temps de chacune des 6 instructions de la boucle. Nous obtenons 2 MOV Æ 2 cycles 2 ADD Æ 2 cycles 1 DEC Æ 1 cycle 1 JNE Æ 3 cycles TOTAL 8 cycles c) Nous devons répéter l’estimation : 8 MOV Æ 8 cycles 2 ADD Æ 2 cycles 1 CMP Æ 1 cycle 1 JGE Æ 1 cycles (pas de saut) 1 JMP Æ 3 cycles TOTAL 15 cycles Numéro 19 – Communication Dans une transmission synchrone, les informations (ex. : les caractères) sont émis de manière régulière. Les délais entre chaque transmission sont directement reliés au signal d’horloge utilisé par le lien de communication. Dans une transmission asynchrone, l’intervalle entre les transmissions est variable. Dans ce cas, il faut donc utiliser des lignes de contrôle ou des bits de transmission additionnels (ex. : start bit, stop bit) pour déterminer le début et la fin des transmissions. Numéro 20 – Communication a) Faux – Cet intervalle est variable, c’est ce qui caractérise ce type de transmission. b) Vrai – C’est vrai pour les bits d’un même caractère. 4 c) Faux – Sur un lien RS-233, il y a synchronisation que pendant la transmission d’un caractère d) Vrai – C’est ce qui détermine le « Baud Rate » e) Faux – En général, il faut transmettre des informations supplémentaires pour contrôler la communication (ex. : start bit, stop bit) 5