Département de génie électrique
Professeur : Jean-Marc Beaulieu
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 45 cycles
Récupération du contexte 21 cycles
Traitement du vecteur d’interruption 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 ?
2
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
Fin
Q1?
Traitement 1
Oui
Q2?
Traitement 2
Oui
Q3?
Traitement 3
Oui
Q4?
Traitement 4
Oui
Fini?
Initialisation
N
on
Terminaison
3
Les temps de traitement sont donnés dans le tableau suivant :
Opération Temps d’exécution
Initialisation 5 s
Interrogation 1 (Q1) 4 µs
Traitement 1 5 ms
Interrogation 2 (Q2) 4 µs
Traitement 2 20 ms
Interrogation 3 (Q3) 4 µs
Traitement 3 1 ms
Interrogation 4 (Q4) 4 µs
Traitement 4 5 ms
Interrogation (Fin de la boucle) 4 µs
Terminaison 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].
4
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.
À 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 IRQ Vecteur
IRQ0 0x08 IRQ4 0x0C
IRQ1 0x09 IRQ5 0x0D
IRQ2 0x0A IRQ6 0x0E
IRQ3 0x0B IRQ7 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.
Adresses + données
E / S
US1
données
état
CPU
586
INTR
INTA
INT
INTA
E / S
US2
données
état
IRQ1
IRQ4
5
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
%
d'utilisation
/* Programme principal */
fonction d’initialisation;
10 s -
/* Boucle d’interrogation */ {
Interrogation événement 1? 2 µs -
fonction 1; 2 ms 40 ms
Interrogation événement 2? 2 µs -
fonction 2; 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 -
sortie; 100 ms -
Va à boucle d’interrogation 1 µs -
/* Fin du programme principal */
fonction d’interruption 1; 20 µs 100 µs
fonction d’interruption 2; 40 µs 125 µs
fonction d’interruption 3; 50 µs 1 ms
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.
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !