CEG4566/CSI4541 – Conception de systèmes temps...

40
1 CEG4566/CSI4531 – SIGE – Hiver 2013 RNM CEG4566/CSI4541 – Conception de systèmes temps réel SIGE – U. Ottawa – Hiver 2013 Chapitre II - Structure des systèmes en temps réel

Transcript of CEG4566/CSI4541 – Conception de systèmes temps...

1 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

CEG4566/CSI4541 – Conception de systèmes temps réelSIGE – U. Ottawa – Hiver 2013

Chapitre II - Structure des systèmes en temps réel

2 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

Chapitre II - Structure des systèmes en temps réel

2.1. Rappels: Les différentes couches d’un système informatique.

2.2. Architecture: Systèmes classiques vs système en temps réel.

2.3. Structures matérielles du système temps réel.

2.4. Conversions analogique/numérique et numérique analogique.

2.5 Notion de temps dans les systèmes temps réel.

3 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

Couche physique (niveau 0): circuits logiques qui représentent le fondement matériel de l'ordinateur.

Couche microprogrammée (niveau 1): l'architecture de la couche microprogrammée constitue l'architecture de base de la machine (micro-architecture ou micromachine). La programmation au niveau 1 est souvent complexe (contraintes temporelles, particularités des composants logiques, synchronisation, décomposition d'instructions machine en microinstructions, etc...), souvent le microprogramme est écrit en ROM.

Couche machine conventionnelle ou traditionnelle (niveau 2): souvent c'est l'architecture du microprocesseur (registres internes, modes d'adressage, types d'instructions, etc...), ça évite au programmeur d'aller toucher à la couche microprogrammée.

Couche système d'exploitation (niveau 3): de la même façon qu'un interpréteur tournant au niveau 1 exécute des programmes de niveau 2, un interpréteur tournant au niveau 2 peut exécuter des programmes écrits en langage de niveau 3. Cet interpréteur est appelé systèmes d'exploitation ce qui a conduit à appeler "couche système d'exploitation" le niveau 3.

Couche langage d'assemblage (niveau 4): contrairement aux couche 1, 2 et 3 cette couche est réalisée par traduction et non par interprétation (traduire un programme en langage sourcevers un programme en langage cible, ou programme objet). Le traducteur peut être soit un assembleur soit un compilateur.

Couche des langages d'application (niveau 5) : des applications souvent écrites en langages évolués.

2.1. Rappels: Les différentes couches d’un système informatique

4 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.1. Rappels: Les différentes couches d’un système informatique (suite)

5 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2. Architecture: Systèmes classiques vs système en temps réel

Note: Certains des mécanismes de l’interaction avec le monde extérieur utilisés dans les systèmes ‘classiques’ peuvent être utilisés dans les systèmes en temps réel, d’autres ne permettent pas de prendre en compte les contraintes du temps réel.

6 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2.1. Interaction avec le monde extérieur dans les systèmes ‘classiques’

a) Interaction par scrutation cyclique (mode scrutation ou programmé)

Non

Non

Le périphérique 1 a-t-il quelque chose à communiquer ?

Sauvegarde du contexte

Passage au sous-programme de

service

Restitution du contexte

Le périphérique 2 a-t-il quelque chose à communiquer ?

Le périphérique 3 a-t-il quelque chose à communiquer ?

Oui

Oui

Oui

Non

Non

A

A

A

Mode programmé

Avantages ? Inconvénients ?

7 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2.1. Interaction avec le monde extérieur dans les systèmes ‘classiques’

b) Mode Interruption (cas d’urgence)

CPU E/SDemande d'interruption

Int. autorisée

BUS

Vers périphérique

Avantages ? Inconvénients ?

8 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

Relier directement le périphérique à la mémoire sans intervention de la CPU

Très grande vitesse de transfert de données

Trois techniques : - DMA par arrêt du microprocesseur- DMA par vol de cycle

- DMA multiplexé

Avantages ? Inconvénients ?

2.2.1. Interaction avec le monde extérieur dans les systèmes ‘classiques’

c) Accès direct à la mémoire

E/SE/S CPUCPU MémoireMémoire

CPUCPU MémoireMémoire E/SE/S

9 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2.1. Interaction avec le monde extérieur dans les systèmes ‘classiques’

Conclusions

• Dans les interactions précédentes, une grande partie du temps processeur est consacrée à autre chose qu’à l’application.

• C’est pour mieux utiliser le processeur qu’on a introduit la notion de tâche.

• Le traitement d’un événement externe est partagé entre un événement immédiat, effectué par le gestionnaire des interruptions et un traitement différé confié à une tâche (un code séquentiel dédié à un seul traitement).

• Plusieurs tâches peuvent s’exécuter concurremment, ce qui permet de récupérer les temps morts.

• D’où l’importance de prendre en compte tous les aspects d’ordonnancement et de synchronisation

10 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2.2. Entrées/sorties spécialisées et entrées/sorties projetées en mémoire

CPUMemoryMemory DevicesDevices

Data

Address

Entrées/sorties spécialisées

11 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.2.2. Entrées/sorties spécialisées et entrées/sorties projetées en mémoire

MemoryMemoryCPU DevicesDevices

Data

Address

Entrées/sorties projetées en mémoire

12 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielles du système temps réel

Chaîne d'acquisition et de restitution de données

Exemple typique d'un système de contrôle-commande industriel

13 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielles du système temps réel

Exemple d'un signal électrique tout ou rien fourni par un capteur ou reçu par un actionneur pour le contrôle de l'éclairement d'une lampe (cellule photoélectrique fonctionne en tout ou rien (bloquée/saturée))

Exemple d'un signal électrique analogique fourni par un capteur ou reçu par un actionneur pour le contrôle de l'éclairement d'une lampe(Cellule photoélectrique fonctionne en régime linéaire)

14 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielles du système temps réel

2.3.1 Mise en situation #1

Badge depéage

Audio & vidéo

Lumières

Vitesses

Surveillance

Tableaude bord Détecteur

de sommeil

GPS

Airbag

SiègeAnticollision

ABS

Suspension

Contrôle moteur

Direction

15 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.1 Mise en situation #1 - Anatomie des organes embarquésLes organes embarqués seront classés en 4 catégories : CC, FSM, CALC et WEB.

• CC : Contrôle continu, traitement du signal

Lois de pilotages équations différentielles, filtrage numérique, Matlab / Scilab

• FSM : Automates finis, graphes de transition

IHM, contrôle discret, protocoles, sécurité, etc.

Simulation visuelle, vérification formelle

• CALC : Calcul intensif

Navigation, cryptage, traitement d’images (TVHD = 1 Gops)

Langages classiques, circuits dédiés, machines VLIW, etc.

• WEB : Navigation, audio/vidéo, jeux

Interaction graphique / audio / vidéo

Réseaux flots de données, Java

Par exemple, dans l’exemple précédent :

GPS = CALC + FSM

Airbag = CC + FSM

Contrôle moteur = CC + FSM+ CALC

Audio/Vidéo = WEB + CALC + FSM

Direction, suspension = CC

Lumière = FSM

16 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

Trop compliqué pour nous!

(pour l’instant)

2.3. Structures matérielle du système temps réel

2.3.1 Mise en situation #1 - Anatomie des organes embarqués

17 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.2 Mise en situation #2 - Architecture

Un système embarqué simple de contrôle de température et de pression qui doivent être maintenues dans un certain intervalle.

T

S

PSwitch

ADC

ADC

DACÉcran

Chauffage

Thermocouples TransducteurDe pression

Pompe/Valve

À noter que la température T et la pression P sont deux systèmes indépendant (et concurrent).

18 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

L’implémentation logicielle peut prendre l’une des formes suivantes:

Un programme unique est utilisé, il ignore la concurrence logique entre T, P et S; On n’a pas besoin d’un OS spécifique.

T, P et S sont écrits dans un langage de programmation séquentiel, soit comme des programmes séparés ou comme des procédures distinctes dans un même programme. On utilisera l’OS pour la création et l’interaction entre les programmes/processus.

Un programme concurrent unique qui prend en compte la structure logique de T, P et S. On n’a pas besoin d’OS sauf pour les aspects run-time.

Question: Quelle est la meilleure approche? Donner les avantages et les inconvénients de chacune d’elle.

Travail personnel à faire : Écrire un programme qui implémente l’une de ces solutions. Choisir le langage approprié.

2.3. Structures matérielle du système temps réel

2.3.2 Mise en situation #2 - Programmation

19 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur(Extrait du livre "traitement des signaux et acquisition de données", Francis Cottet, DUNOD)

Afin de donner un exemple sur la diversité des problèmes rencontrés dans la mise en place des systèmes de mesure et de commande en temps réel, étudions un système qui doit commander une enceinte thermostatée.

Opérations à réaliser :

régulation en température de l'enceinte (chauffage par résistance électrique)

mesure de la température intérieure (thermocouple)

vérification de la fermeture de la porte de l'enceinte (simple contact électrique)

allumage d'une lampe témoin (lorsque la température de consigne est atteinte)

20 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

4 interfaces nécessitant toutes des adaptations

21 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

Interface 1 (liaison thermocouple – calculateur)C'est une entrée analogique, d'un signal faible (quelques dizaines de mV) nécessite un montage du type ampli+CAN

Remarque: T=f(V) caractéristique non-linéaire, fournie par le fabricant, donc à prendre en compte au niveau des calculs.

22 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

Interface 2 (liaison contact électrique – calculateur)Interrupteur à deux positions : +15V (porte ouverte)

0V (porte fermée)

Adaptation (+15V, 0V TTL)e' = e[R2/(R1+R2)] avec R2=10KΩ et R1=20KΩ

23 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

Interface 3 (liaison lampe – calculateur)Lampe alimentée en 110V alternatif, utilisation d'un relais permettant de commuter le secteur sur la lampe tout en réalisant l'isolement électrique.

24 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

Interface 4 (liaison calculateur – résistance électrique)La résistance électrique nécessite une puissance de commande importante, solution= CNA + ampli.puissance.

25 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.3. Structures matérielle du système temps réel

2.3.3 Mise en situation #3 – Description d'un exemple de chaîne industrielle commandée par calculateur

Conclusion :

Pour un exemple simple comme celui ci, on observe la diversité des types d'interfaces à mettre en œuvre.

À noter qu’on a pas abordé la partie programmation pour cet exemple.

Travail personnel: Revoir les notes du cours architecture des ordinateurs.

26 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.4. Conversions analogique/numérique et numérique analogique

Il existe deux catégories de convertisseurs :

-les Convertisseurs Analogique Numérique (CAN) qui vont transformer les tensions analogiques en signaux logiques aptes à être traités par calculateur (numérisation des signaux).

- les Convertisseurs Numérique Analogique (CNA) qui vont convertir les signaux logiques en tension analogique. Plusieurs types de convertisseurs sont disponibles dans chaque catégorie, qui se différencient par leur précision, leur vitesse de traitement de l'information, leur prix...

Remarque : Il n'y a pas ‘le convertisseur à tout faire’ qui soit bon partout : on devra faire un choix en fonction de ses besoins.

Convertisseurs A/N et N/A

27 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.4. Conversions analogique/numérique et numérique analogique

Les signaux porteurs d'informations sont pratiquement toujours de type analogique.Si l'on veut traiter un signal par voie numérique, il faut le représenter au préalable par une suite de valeurs ponctuelles prélevées régulièrement (à pas constant) ou irrégulièrement (à pas variable). Un tel prélèvement est appelé échantillonnage.

Figure: (a) L’échantillonneur-Bloqueur (à voir plus bas) (b) Signal d’entrée analogique. (c) Échantillonnage du signal analogique (d) Signal de sortie qui va aller au CAN.

28 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

1. Transformation Réversible ou irréversible

Question : Doit-on pouvoir reconstituer le signal analogique de départ à partir des échantillons prélevés ou non ?

Note : Histogramme du signal, valeur moyenne, puissance, etc. ne permettent pas la reconstitution du signal.

2.4. Conversions analogique/numérique et numérique analogique

2 notions importantes:

29 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.4. Conversions analogique/numérique et numérique analogique

On voit donc que l'effet de l'échantillonnage est de périodiser le spectre du signal analogique de départ. Cette périodisation se fait à un rythme 1/T en fréquence ou 2π/T, en pulsation.

Figure : Effet de l'échantillonnage sur le spectre du signal d'entrée

Lorsque la fréquence d'échantillonnage n'est pas suffisante, les spectres répétés se chevauchent. On parle de repli spectral Ce phénomène est illustré par la figure suivante :

Figure: Répétition spectrale lorsque la cadence d'échantillonnage n'est pas

suffisante

2 notions importantes: 2. Repli spectral

30 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.1 Système temps réel mou• Application typiques : Vidéo/jeux, Communication (modem, GSM, etc.)…• Caractéristiques :

Pas de besoin critique de ressources.Généralement la puissance CPU est suffisante.Allocation dynamique des ressources.Dégradation de la qualité de service quand le système atteint sa limite de charge.

2.5.2 Système temps réel dur• Application typiques : Contrôle- commande, systèmes critiques, etc.• Caractéristiques :

Précision temporelle très élevée.E/S précises, retard minimum.Ressources souvent limités (CPU, mémoire, batterie).Les performances au maximum de la charges sont prédictibles.

31 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.3 Modèle d’interaction avec les événements

• Avantages :Architecture pipeline.Supporte les systèmes apériodiques.Utilise peu la CPU.

• Inconvénients :Concurrence imprédictible.L’inertie du système introduit des retards dans la réponse.Difficilement décomposable.Aucun avantage pour les événements périodiques.

2.5.4 Modèle d’interaction avec le temps

• Avantages :Architecture pipeline.Supporte les systèmes périodiques. Concurrence prédictible.Comportement déterministe.Retard en E/S minimal.Décomposable.Peut être distribué.

• Inconvénients :Grande utilisation de la CPU.Émulation des systèmes apériodiques.

32 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.5 Échelle de temps et temps de réponse

• Le rythme d’évolution de l’environnement détermine l’échelle de temps relative à une contrainte temps réel.

• Le temps de réponse d’un système en temps réel est la durée entre la présentation des entrées à un système et l’apparition des sorties suite aux traitements effectués sur ces entrées par le système.

• Le temps de réponse permet d’exprimer la contrainte et est lié àl’échelle de temps d’évolution de l’environnement.

2.5.6 Sévérité des contraintes et échelle de temps

• La sévérité et l’échelle de temps d’une contrainte ne sont pas nécessairement liées.

• Combinaison possible de niveaux de sévérité et d’échelles de temps différentes dans un même système.

• La sévérité des contraintes est généralement une caractéristique prédominante dans un système temps réel.

• Le temps de réponse est plus souvent liéà la technologie et aux ressources matérielles utilisées.

33 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.7 Expression des contraintes temps réel

• Répondre à un événement en un temps donné:

- temps de réponse borné de façon absolue- temps de réponse moyen

• Effectuer certaines opérations à un instant donné

• Traiter un nombre donné d'événements par unité de temps (producteurs ou consommateurs d'événements à un rythme donné)

2.5.8 Conception d’un système temps réel

• Description et expression des contraintes temps réel

• Représentation simultanée de l’évolution logique et temporelle du système

• Prédiction et estimation des temps de réponse

• Sélection de l’architecture, du matériel et du logiciel

• Le matériel conditionne les coûts de production

• Le logiciel conditionne les coûts de développement

• Compromis et équilibre matériel-logiciel

34 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5.9Temps environnement vs temps logiciel

Environnement → Temps continu.Logiciel → Temps discret

2.5. Notion de temps dans les systèmes temps réel

Solution :

35 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.10 Interaction entre le logiciel et l’environnement:

Réponse du logiciel à un événement provenant de l’environnement.

2.5.11 Notion de latence et de retard :

36 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5.12 Communication logiciel à logiciel :

-Peut être enclenché par le même événement ou utiliser le même modèle de temps.

-Comportement prédictible souhaité (ou requis).

-La décision d’ordonnancement devient très importante.

2.5. Notion de temps dans les systèmes temps réel

37 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.13 Le noyau temps réel

La notion de temps réel correspond à la façon dont les tâches sont exécutées dans le temps : le temps d'exécution des tâches étant déterminant pour la commutation des tâches, le noyau temps réel exécute en premier les tâches dont le temps d'exécution est critique.

Le fonctionnement du noyau préemptif est illustré à la figure suivante :

Illustration d’un noyau préemptif

38 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.13 Le noyau temps réel (suite)

Une tâche de faible priorité est exécutée en (1) alors qu’une interruption asynchrone intervient en (2).

Le microprocesseur exécute alors une tâche prête de degré plus important que la tâche précédente (3).

À la fin de la routine d'interruption, l'ISR invoque un service du noyau (4) qui décide de retourner à la tâche de plus haute priorité et non à la tâche précédente de plus basse priorité.

La tâche de plus haut degré s'exécute dans (5) de manière normale à moins qu'une nouvelle interruption n'arrive.

À la fin de la tâche de haute priorité, le noyau reprend l'exécution de la tâche de plus faible priorité qui est prête depuis son interruption (6).

Le noyau garantit que les tâches dont le temps d'exécution est critique sont effectuées en premier (noyau préemptif).

39 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

2.5. Notion de temps dans les systèmes temps réel

2.5.13 Le noyau temps réel (suite)

Remarque : Un noyau temps réel assure principalement deux fonctions, l'ordonnancement et le changement de contexte. L'ordonnancement permet de déterminer quelle tâche prête a le plus haut degré de priorité.

Quand une tâche de plus haute priorité doit être exécutée, le noyau doit sauvegarder toutes les informations nécessaires de la tâche en cours d'exécution afin de permettre une éventuelle continuation. Les informations sauvegardées (appelées contexte de la tâche) sont généralement les registres, la pile et le pointeur de pile de la tâche qui va être suspendue.

Lors de l'exécution d'une nouvelle tâche à un plus haut degré de priorité, le contexte de la nouvelle tâche est chargé puis l'exécution reprend là où elle s'était interrompue.

40 CEG4566/CSI4531 – SIGE – Hiver 2013RNM

Question?