Systèmes ordinés en temps réel

publicité
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
Téléchargement