Département de génie électrique Professeur : Jean-Marc Beaulieu ELE542 Systèmes ordinés en temps réel Exercice du Chapitre 4 Aspects matériels Numéro 1 Révision Questions de révision Vrai ou faux a) Le coût est un facteur qui a très peu d importance dans la sélection d un processeur pour un système en temps réel. b) Le «principe de localité» dit que : lors de deux (2) accès successifs en mémoire, les valeurs des données lues sont proches l une de l autre. c) Pour évaluer la performance d un processeur, il est préférable d effectuer les tests avec un banc d essai utilisant notre application cible. d) Un des avantages des ordinateurs RISC est de produire des programmes exécutables qui occupent moins d espace mémoire. e) L architecture du Pentium III est une architecture CISC. f) Pour les processeurs avec arithmétique entière, les opérations avec des nombres réels sont moins longues parce qu elles sont effectuées à l extérieur du processeur. g) Le mode d adressage indirect demande quatre (4) cycles d accès mémoire. Numéro 2 Architecture La conception de processeurs à «N-adresses» avec N > 3 est improbable. Pourquoi? Numéro 3 Temps d exécution Vous concevez un système en temps réel qui exécute un programme de traitement de données de façon périodique. Après compilation de votre programme, vous faites une analyse statistique de la fréquence des instructions selon le type d instructions. Les résultats sont donnés dans le tableau suivant avec le nombre de cycles nécessaires pour chaque type d instructions : Type d instructions Fréquence Cycles par instruction Opérations ALU 43 % 1 Chargements (Load) 21 % 2 Enregistrements (Store) 12 % 2 Branchements 24 % 2 La fréquence d opération de votre processeur est de 500 MHz et votre programme comprend 10 000 instructions. a) Quelle est la valeur moyenne du nombre de cycles par instructions? b) Donnez une estimation du temps d exécution de votre programme. c) Vous recevez une nouvelle version de votre compilateur avec une fonction d optimisation améliorée. Cette optimisation élimine 50 % des instructions ALU sans modifier les autres parties du programme. Donnez une nouvelle estimation du temps d exécution de votre programme.
Numéro 4 Pipeline Nommez deux (2) difficultés posées par l architecture en pipeline pour le concepteur de systèmes en temps réel. Numéro 5 Pipeline Nous considérons deux (2) processeurs différents provenant de la même famille pour un système en temps réel. Le premier processeur ne possède pas de pipeline. Le temps d un cycle d opération est de dix (10) ns. Le nombre de cycles par instruction et la fréquence relative des instructions sont donnés dans la tableau suivant : Type d instructions Fréquence Cycles par instruction Opérations ALU 40 % 4 Opérations mémoire 20 % 5 Branchements 40 % 4 Le second processeur (plus cher) possède un pipeline suffisamment profond pour supporter la complétion d une instruction par cycle. Cependant, son cycle est plus long de 10 %, soit zone (11) ns. a) Quel est le temps d exécution moyen d une instruction dans les deux (2) cas? b) On définit l accélération provenant du pipeline comme le rapport des temps d exécution moyens par instruction. Dans ce cas, quelle est l accélération provenant du pipeline? Numéro 6 Mémoire Quelle sorte de circuits mémoire utiliseriez-vous pour sauvegarder les informations suivantes? a) Le programme d une enregistreuse vidéo (VCR) destinée au grand public. b) Le nom d une imprimante réseau qui doit être conservé même lorsqu il y a perte de courant. Note : L usager doit pouvoir modifier le nom. c) Le programme de la version Beta d une machine à rayon X que votre compagnie va expédier à plusieurs hôpitaux pour expérimentation. d) Un tampon de données reçues du réseau et en attente de traitement par votre programme. Numéro 7 Mémoire Discuter des avantages et des inconvénients reliés à l utilisation des techniques suivantes pour la réalisation des entrées/sorties : accès programmé, accès projeté en mémoire et accès direct en mémoire (DMA). Numéro 8 Mémoire Dans la plupart des systèmes ordinés, le contrôleur des accès directs en mémoire (DMA) a une priorité supérieure au processeur pour obtenir l accès à la mémoire et aux bus de communication. Pourquoi? Numéro 9 Mémoire Quelles sont les différences entre les mémoires volatiles, dynamiques et statiques? 2
Numéro 10 Mémoire Si le registre d adresses d une mémoire comporte 32 bits, calculer : a) Le nombre de mots adressables si 1 mot = 1 octet. b) La plus haute adresse possible pour ces mots de 1 octet. c) Le nombre de mots adressables si 1 mot = 32 bits. d) La plus haute adresse possible pour ces mots de 32 bits. Numéro 11 Mémoire Combien de bits sont nécessaires sur le bus d adresses pour accéder à une mémoire contenant : a) 4 096 espaces mémoire. b) 65 536 espaces mémoire. c) 16 777 216 espaces mémoire. Numéro 12 Mémoire Quel est le plus grand programme possible pour un microcontrôleur avec : a) 16 lignes d adresse. b) 20 lignes d adresse. c) 24 lignes d adresse. d) 32 lignes d adresse. Numéro 13 Bus Quelle est la plage d adresses accessible (en hexadécimal) et le nombre de lignes d adresse nécessaire pour utiliser une mémoire de 1 M octets? Numéro 14 Bus Qu est-ce qu un bus? Numéro 15 Interruption Est-ce que le processeur arrête immédiatement son travail (pour exécuter la fonction d interruption) lors de l interruption? Numéro 16 Interruption En général, est-ce que la fonction de traitement d une interruption peut être interrompue? Numéro 17 Interruption En quoi consiste la sauvegarde de l état de la machine? 3
Numéro 18 Comptage d instructions Une méthode pour estimer le temps d exécution d une partie de code est de compter le nombre d instructions. Considérer la fonction suivante : void test_code (int *b, int *a, int c) { int i; for (i = 0; i < 100; i++) { a[i] = b[i] + c ; } } À l aide du compilateur de Microsoft, vous trouvez la fonction en assembleur correspondante. Vous devriez obtenir un morceau de code similaire au suivant : _TEXT SEGMENT _b$ = 8 _a$ = 12 _c$ = 16 _test_code PROC NEAR ; Étiquette pour b[] ; Étiquette pour a[] ; Étiquette pour c[] ; COMDAT ; 3 : int i; ; 4 : for (i = 0; i < 100; i++) eax, DWORD PTR _a$[esp-4] ; Copie adresse de a dans EAX ecx, DWORD PTR _b$[esp-4] ; Copie adresse de b dans EBX push esi ; Mettre ESI sur la pile esi, DWORD PTR _c$[esp] ; Copie adresse de c dans ESI push edi ; Mettre EDI sur la pile sub ecx, eax : EAX ECX -> ECX edx, 100 ; 00000064H $L530: ; 5 : { ; 6 : a[i] = b[i] + c ; edi, DWORD PTR [ecx+eax] ; Adresse de b dans EBX (&a-&b+&a) add eax, 4 ; Addresse de a + 4 add edi, esi ; c + b dec edx DWORD PTR [eax-4], edi jne SHORT $L530 ; Branchement pop edi pop esi ; 7 : } ; 8 : } ret 0 _test_code ENDP _TEXT ENDS ;{ 4
a) Estimer le nombre d instructions nécessaire à chaque itération de la boucle et celui pour l exécution totale de la fonction. b) Estimer le temps d exécution (en cycles) de chaque itération de la boucle. Note : Le temps d exécution des instructions sont : MOV 1 cycle DEC 1 cycle ADD 1 cycle JNE avec saut = 3 cycles sans saut = 1 cycle c) Vous regardez maintenant la version compilée avec l option «Debug». Le code, qui suit, montre une section du code assembleur obtenu. Estimer le temps d exécution (en cycles) de chaque itération de la boucle. ; 3 : int i; ; 4 : for (i = 0; i < 100; i++) DWORD PTR _i$[ebp], 0 jmp SHORT $L473 $L474: eax, DWORD PTR _i$[ebp] add eax, 1 DWORD PTR _i$[ebp], eax $L473: cmp DWORD PTR _i$[ebp], 100 ; 00000064H jge SHORT $L475 ; 6 : a[i] = b[i] + c ; add ecx, DWORD PTR _i$[ebp] edx, DWORD PTR _b$[ebp] eax, DWORD PTR [edx+ecx*4] eax, DWORD PTR _c$[ebp] ecx, DWORD PTR _i$[ebp] edx, DWORD PTR _a$[ebp] DWORD PTR [edx+ecx*4], eax ; 7 : } jmp SHORT $L474 $L475: Numéro 19 Communication Quelle est la différence entre une transmission synchrone et une transmission asynchrone? 5
Numéro 20 Communication Parmi les affirmations suivantes, indiquer celles qui sont vraies et celles qui sont fausses. Justifier brièvement vos réponses. Dans une transmission asynchrone en mode caractère par caractère (exemple : communication du SCI) : a) L intervalle de temps entre deux (2) caractères est fixe. b) L intervalle de temps entre deux (2) bits d un même caractère est fixe. c) L émetteur et le récepteur doivent toujours être parfaitement synchronisés. d) Les bits sont transmis à la cadence d un cycle de l horloge par bit. e) Le débit est en général supérieur à celui que l on peut avoir dans une transmission synchrone. 6