Professeur : Jean-Marc Beaulieu Département de génie électrique Systèmes ordinés en temps réel Exercices du Chapitre 5 – Réponse aux évènements Question 1 Dans un système en temps réel, on sait que l’instruction la plus longue prend 120 µs et que les interruptions ne sont jamais désarmées pour plus de 100 µs. De plus, le délai de propagation est de 100 ns pour tous les signaux. Donner une estimation de la latence d’interruption (pire cas). Question 2 Donner une caractéristique des architectures RISC qui tend à réduire la latence d’interruption par rapport au processeur CISC ? Question 3 Vous concevez un système avec un processeur dont la fréquence d’opération est de 100 MHz. En consultant les spécifications du processeur, vous obtenez les informations suivantes : Sauvegarde du contexte Récupération du contexte Traitement du vecteur d’interruption 45 cycles 21 cycles 30 cycles Votre système doit traiter des interruptions qui se produisent à intervalle régulier de dix (10) µs, sans en manquer aucune. De plus, chaque macro-instruction (assembleur) prend quatre (4) cycles. a) Quel est le nombre maximal d’instructions permis dans la fonction de traitement des interruptions ? b) Supposons qu’un programme d’arrière-plan prend 50 % du temps du processeur. Quel est le nombre maximal d’instructions permis ? c) Vous déterminez que 40 instructions sont nécessaires. Toujours avec un programme d’arrière-plan qui prend 50 % du temps du processeur, quel est le nombre maximum d’interruptions possible dans une seconde ? Question 4 Nous avons le système avec quatre (4) périphériques utilisant le traitement par interrogation décrit par le diagramme suivant : Début Initialisation Q1? Oui Q2? Q3? Q4? Non Oui Oui Oui Traitement 1 Traitement 2 Traitement 3 Traitement 4 Fini? Terminaison Fin 2 Les temps de traitement sont donnés dans le tableau suivant : Opération Initialisation Interrogation 1 (Q1) Traitement 1 Interrogation 2 (Q2) Traitement 2 Interrogation 3 (Q3) Traitement 3 Interrogation 4 (Q4) Traitement 4 Interrogation (Fin de la boucle) Terminaison Temps d’exécution 5s 4 µs 5 ms 4 µs 20 ms 4 µs 1 ms 4 µs 5 ms 4 µs 100 ms a) Donner une estimation du temps de réponse maximum pour chacun des périphériques. b) Donner le temps minimum et le temps maximum d’exécution d’une boucle. c) Si le périphérique deux (2) est désactivé (exemple : le périphérique débranché), donner une estimation du temps de réponse maximum pour chacun des périphériques encore actifs. d) On ajoute au système un mécanisme d’interruption. Il y a une seule interruption. Elle se produit de façon cyclique à chaque milliseconde. Le traitement complet d’une interruption dure dix (10) µs. Dans ce cas, donner une estimation du temps de réponse maximum pour chacun des périphériques encore actifs (le périphérique deux (2) est encore désactivé). Question 5 Votre mandat est de concevoir un système pour une application en temps réel. Le système contient deux (2) liens de communication distincts : - Lien 1 : Un lien est utilisé pour la communication entre le processeur et une unité de lecture/écriture sur disquettes amovibles. Comme cette unité de disquette ne contient pas de mémoire cache, le temps de lecture et d’écriture varie énormément selon la localisation de l’information sur la disquette. - Lien 2 : Un deuxième lien est utilisé pour la communication entre le processeur et la mémoire centrale de type SDRAM. Pour chacun des deux (2) liens de communication, indiquer quelle est la meilleure méthode de communication (synchrone ou asynchrone) et justifier votre réponse [expliquer quel est l’avantage de votre choix]. 3 Question 6 Vous avez obtenu un contrat pour concevoir un système informatique en temps réel, tel que présenté dans la figure ci-dessous. Un contrôleur d’interruption est utilisé (8259). L’interruption IRQ0 est la plus prioritaire. E/S US1 CPU 586 IRQ1 données état IRQ4 E/S US2 INT INTA INTR INTA données état Adresses + données À partir du diagramme précédent : a) On suppose que les signaux IRQ1 et IRQ4 sont activés en même temps. Supposer que le traitement associé à IRQ0, IRQ2 et IRQ3 est complété et qu’il n’y aura pas d’autre interruption à ces niveaux pour la durée des traitements associés à IRQ1 et IRQ4. Indiquer clairement toutes les étapes du traitement de ces 2 IRQs. Illustrer, pour chaque étape : - le contenu des registres IRR et ISR du 8259; - l’échange des signaux INT,INTA,INTR; - les actions du CPU; - les transferts d’informations sur le bus de données; - les numéros de vecteurs utilisés. Note : IRQ Vecteur IRQ0 0x08 IRQ1 0x09 IRQ2 0x0A IRQ3 0x0B IRQ IRQ4 IRQ5 IRQ6 IRQ7 Vecteur 0x0C 0x0D 0x0E 0x0F b) Vous avez écrit une sous-routine pour l’IRQ1 et une sous-routine pour l’IRQ4. Identifier les adresses des deux (2) cases mémoire dans lesquelles vous devrez placer les pointeurs sur vos deux (2) sous-routines lorsque le processeur Intel fonctionne en mode réel. 4 Question 7 Un programme en temps réel fonctionne de la façon suivante : sur détection d'au moins un événement, le programme principal appelle le sous-programme correspondant identifié "fonction j"; les fonctions "fonction d'interruption i" sont exécutées à chaque activation respective d'une ligne d'interruption. Les temps de traitement du tableau ci-dessous ont été mesurés par chronométrage et incluent les délais de traitement d'exception des fonctions d'interruption. Pseudo-code Temps de traitement Période minimale T 10 s - Interrogation événement 1? 2 µs - fonction 1; 2 ms 40 ms Interrogation événement 2? 2 µs - 25 ms 200 ms Interrogation événement 3? 2 µs - fonction 3; 1 ms 10 ms Interrogation événement 4? 2 µs - fonction 4; 5 ms 50 ms Interrogation sortie? 2 µs - 100 ms - 1 µs - fonction d’interruption 1; 20 µs 100 µs fonction d’interruption 2; 40 µs 125 µs fonction d’interruption 3; 50 µs 1 ms /* Programme principal */ fonction d’initialisation; /* Boucle d’interrogation */ fonction 2; sortie; Va à boucle d’interrogation % d'utilisation { /* Fin du programme principal */ Tableau – Système en temps réel fictif a) D'après les temps au tableau calculer le temps disponible (en % de CPU) qu'il reste. Conclure sur la capacité à ce système d'accommoder des fonctionnalités supplémentaires. b) Calculer le temps maximal qui s'écoulerait entre le début et la fin de la boucle d'interrogation du programme principal si toutes les fonctions d'interrogation et d'interruption sont actives. c) Dans un exercice d'optimalisation du code du logiciel du système, quelle fonction apparaît être la plus avantageuse au niveau de la réduction du temps de traitement? Expliquer. 5 Question 8 Vous concevez un système avec deux choix de modèle d’interruption différents et dix périphériques. Le premier choix est un système avec interruption vectorisée selon les spécifications suivantes à une fréquence d’opération de 84MHz : Interruption vectorisée : - Fréquence d’opération : - Sauvegarde du contexte : - Récupération du contexte : - Traitement du vecteur d’IRQ : 84 MHz 55 cycles 30 cycles 30 cycles (lecture + calcul de l’adresse de la sous-routine + saut PC) Le deuxième système à évaluer est un système utilisant une interruption avec interrogation dont les spécifications sont : Interruption avec interrogation : - Fréquence d’opération : ? - Sauvegarde du contexte : 55 cycles - Récupération du contexte : 30 cycles - Temps pour détecter le périphérique : 52 cycles/périphérique (c’est-à-dire que l’interrogation des 10 périphériques demande 520 cycles) Les spécifications suivantes sont communes aux deux systèmes : - Nombre de périphériques : 10 - Le système doit traiter des IRQ à intervalle régulier de 8us et il n’est pas permis d’en manquer. - Chaque macro-instruction prend 4 cycles. a) Calculer le nombre d’instructions permises pour le traitement de chaque interruption avec le système d’interruption vectorisée. b) Calculer la fréquence d’opération minimale du système d’interruption avec interrogation pour avoir le même nombre d’instructions dans la fonction de traitement d’interruption que précédemment [même nombre qu’au point en a) ] Question 9 Vous devez ajouter à un système en temps réel une fonction qui permettra de vérifier les températures provenant de 16 capteurs. Le bloc de capteurs génère 128 interruptions par secondes. L’ordinateur sur lequel la fonction sera installée a une fréquence d’opération de 1 MHz et un processus en arrière-plan occupe 90 % du temps du processeur. En sachant que : - Sauvegarde du contexte : 40 cycles - Récupération du contexte : 35 cycles - Traitement du vecteur d’interruption : 50 cycles - Latence d’interruption : 8 cycles Évaluez le nombre de cycles disponibles pour chaque interruption. 6