Implantation Temps Réel. Martine Roux.

Transcription

Implantation Temps Réel. Martine Roux.
Implantation temps réel sur DSP
appliquée
à la radiotéléphonie
Conférence du 27/05/04
Martine Roux
Page 1
A company associated with Nortel Networks
PLAN DE LA CONFERENCE
______________________________________________________
1. Spécifications matérielles
1.1. Choix d'un processeur de radiotéléphone
1.2. Architecture matérielle
2. Spécifications logicielles
2.1. Fonctionnalités du logiciel applicatif d'un radiotéléphone
2.2. Contraintes temps réel
2.3. Définition du concept de temps réel
2.4. Notion de monotâche / multitâches
2.5. Découpage du logiciel applicatif en tâches
2.6. Tâche temps réel
2.7. Noyau (ou moniteur) temps réel
2.8. Ordonnanceur
Page 2
A company associated with Nortel Networks
PLAN DE LA CONFERENCE (suite)
______________________________________________________
2.9. Synchronisation et communication entre tâches
2.10. Primitives temps réel
2.11. Interruptions des périphériques
2.12. Diagramme des flux de données
2.13. Exemple de commutation des tâches
3. Développement et intégration
3.1. Phase de codage
3.2. Phase de tests / Intégration
3.3. Emulateur In-Circuit
3.4. Emulateur JTAG
Page 3
A company associated with Nortel Networks
1. Spécifications matérielles
________________________________
l
1.1. Choix d'un processeur de radiotéléphone
– Dans le domaine des radiotéléphones grand public, le très
court « time-to-market » doit se conjuguer avec:
• performances
• consommation réduite
• faible coût de développement et faible coût de production
• petite taille et petit poids
– Critères de sélection
• processeur à usage général, processeur numérique de
signal (DSP), ou ASIC (avec ou sans cœur DSP), ou FPGA
(avec ou sans cœur DSP), ou « Système on Chip »(SoC)
• processeur à virgule fixe ou virgule flottante, 16, 24,32 bits
• architecture: parallélisme, unités dupliquées, adressage
efficace, DMA (Direct Memory Access) pour les transferts
Page 4
A company associated with Nortel Networks
1. Spécifications matérielles
________________________________
l
1.1. Choix d'un processeur de radiotéléphone (suite)
– Critères de sélection (suite)
• performances du processeur
– évaluations en MIPS fournies par le constructeur non
représentatives des performances réelles
– grosse influence de l ’architecture et du jeu
d ’instructions, pour estimer la quantité de travail
effectuée par une instruction
– besoins de « benchmark » sur un ensemble
d ’algorithmes typiques de l ’application
• quantité et type de mémoire disponible (interne?, cache?)
• tension d ’alimentation (consommation)
Page 5
A company associated with Nortel Networks
1. Spécifications matérielles
________________________________
l
1.1. Choix d'un processeur de radiotéléphone (suite)
– Critères de sélection (suite)
• technologie, « packaging », brochage
• périphériques (intégrés?)
• critère « ergonomique »: intelligibilité de l ’assembleur
• disponibilité d’outils d’aide au développement
• performances du compilateur
• disponibilités de librairies logicielles
• documentation technique complète et exploitable facilement
• support technique
• « outsourcing » possible (marchés grand public)
• pérennité du DSP (marchés restreints, type défense)
• date de disponibilité du DSP, pénétration du marché
Page 6
A company associated with Nortel Networks
1. Spécifications matérielles
________________________________
1.2. Architecture matérielle (exemple)
In ter fa ce
A ir
B a n d e d e B a s e A n a lo g iq u e
D SP
In te rfa c e
a u d io
C o d a g e -D é c o d a g e p a ro le
C odage- D écodage canal
E g a lisa tio n
D é m o d u la tio n
C h iffre m e n t
In te rfa c e
ra d io
µ c o n tr ô le u r
In te rfa c e
H om m eM a c h in e
Page 7
ECRAN
C L A V IE R
C A R T E S IM
A company associated with Nortel Networks
E m e tte u r /
R é c e p te u r
RF
2. Spécifications logicielles
________________________________
2.1. Fonctionnalités du logiciel applicatif d'un radiotéléphone
P ro ce sseu r d e T d S
C odage
s o u rc e
C odage
canal
F o rm a tta g e
M ux
décodage
canal
D ém ux /
D é m o d u la tio n
E g a lis a tio n
In te r fa c e
A u d io
décodage
s o u rc e
In te r p r é ta tio n d e s c o m m a n d e s /
E n v o i d e c o m p te - r e n d u s
µ C o n tr ô le u r
In te rfa c e
de
com m ande
I H M
Page 8
A company associated with Nortel Networks
M o d u la tio n
E m e tte u r
/
R é c e p te u r
R a d io
2. Spécifications logicielles
________________________________
2.2. Contraintes temps réel
– interruptions audio et radio à traiter régulièrement et
fréquemment
– paquets de 20 ms, à traiter toutes les 20 ms
ètraitement global d'un paquet < 20 ms
– ordres des niveaux supérieurs à prendre en compte le plus
rapidement possible
– programmation de l ’interface radio à des instants normalisés
(ex. synthétiseurs radio émission et réception)
Page 9
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.3. Définition du concept de temps réel
– Définition d’ABRIAL-BOURGNE:
« Un système fonctionne en temps réel s’il est capable d’absorber
toutes les informations d’entrée sans qu’elles soient trop vieilles
pour l’intérêt qu’elles présentent, et par ailleurs, de réagir à celles-ci
suffisamment vite pour que cette réaction ait un sens. »
– Un système fonctionne en temps réel s’il respecte des
contraintes de temps, liées à son environnement.
Page 10
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.4. Notion de monotâche / multitâche
Deux systèmes sont possibles:
– soit un système monotâche (ou séquencé)
• Un séquenceur met en oeuvre une routine de scrutation
cyclique des entrées/sorties du système, qui déclenche un
traitement approprié en fonction de l’état des
entrées/sorties.
O ccupation
du D SP
It2
T2
T1
T1
tem ps
Page 11
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.4. Notion de monotâche / multitâche
• Ce système monotâche est plutôt réservé :
– aux petites applications
– aux applications dont les contraintes temps réel sont
très dures et prédictibles
é Déterminisme => facilité de conception et de debug
é Pas de code superflu
ê Manque de souplesse
Page 12
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.4. Notion de monotâche / multitâche
– soit un système multitâches
• Un système comportant un processeur et capable
d'exécuter, à l'échelle humaine, plusieurs tâches
simultanément, est dit multitâche / monoprocesseur.
• En réalité, à l'échelle du processeur, les tâches sont
exécutées alternativement.
O ccupation
du DSP
It2
T2 (si T2 plus prioritaire que T1)
T1
T1
tem ps
Page 13
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.4. Notion de monotâche / multitâche
• Ce système multitâche est plutôt réservé à des applications
dont certaines contraintes temps réel sont dures, pas
forcément prédictibles, et dont d ’autres contraintes sont
souples.
é Souplesse, quelque soit l ’application
ê Système réservé à des applications non critiques en taille
de code
ê Manque de déterminisme => difficulté du debug
Page 14
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.5. Découpage du logiciel applicatif en tâches
Par exemple, un radiotéléphone pourrait comporter:
• tâche de communication
• tâche de codage / décodage parole
• tâche de codage canal et formattage
• tâche de démodulation et décodage canal
• tâche de supervision
Page 15
A company associated with Nortel Networks
2. Spécifications logicielles : découpage en tâches
____________________________________________
tâche 3
cod. canal
IT ech. Radio
IT ech. Audio
tâche 4
superviseur
tâche 2
démod
décod. can
tâche 1
codec parole
tâche 5
communication
tâche 0
tâche de fond
IT microcontrôleur
Page 16
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.6. Tâche temps réel
l
Une tâche met en oeuvre de manière cyclique un ou plusieurs
programmes statiques, en vue de la réalisation d’une activité
donnée.
l
Une tâche comporte en général 3 zones:
– une zone programme
– une zone de données
– une zone de pile
l
Après initialisation, 3 états possibles:
– bloquée (ou inactive) : en attente d'une ressource ou d ’une
condition (ex. interruption externe)
– éligible : prête, mais en attente du processeur
– élue (ou active) : en cours d'exécution
Page 17
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.6. Tâche temps réel
Ressource libérée
ou condition réalisée
Eligible
Bloquée
Préemption par
l ’Ordonnanceur
Attente d ’une ressource
ou d ’une condition
Sélection
par l ’Ordonnanceur
Active
3 états d ’une tâche après initialisation
Page 18
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.6. Tâche temps réel :Exemple de corps principal d'une tâche:
Corps tâche N (non NULLE)
{
Initialisation
Début boucle infinie
{
Attente sur évènements
= réception de messages dans une des boîtes aux lettres
Si message reçu dans BAL_i
{
Lecture du message dans BAL_i
Lancement du traitement_i
Libération des ressources
prises par le message
}
} Fin boucle infinie
}Fin corps tâche N
Page 19
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.7. Noyau (ou moniteur, ou exécutif) temps réel
l
Surcouche logicielle ajoutée autour des tâches pour les gérer
l
But = satisfaire les critères temps réel
+ faciliter le travail du programmeur
(par les primitives)
• Un noyau temps réel assure une utilisation optimale du
processeur par sa capacité à donner la main à une tâche au
moment où elle est activée par une interruption externe.
l
Marché des noyaux temps réel embarqués
– noyaux disponibles "sur étagère"
– noyaux "propriétaires"
Page 20
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.7. Noyau (ou moniteur) temps réel
l
Critères de choix d ’un noyau temps réel pour DSP
(RTOS = Real Time Operating System)
–
–
–
–
–
–
–
choix limité pour un DSP donné
taille du code (compact et modulaire?)
temps de réponse aux interruptions
gestion de la mémoire (protégée?)
outils de développement, simulation, et debugger
gestion de traces
possibilité d ’un même OS pour une architecture multi-cœurs?
Page 21
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.8. Ordonnanceur
l
L’ordonnanceur (ou « scheduler ») est chargé de cadencer le
système en allouant du temps CPU pour chaque tâche à exécuter.
l
La méthode la plus courante est la préemption basée sur la priorité
des tâches.
l
La préemption se définit comme la réquisition du processeur pour
l’exécution d’une tâche et d’une seule pendant un temps donné.
Page 22
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.8. Ordonnanceur (suite)
l
L’ordonnanceur (scheduler) a deux rôles essentiels:
– assurer la gestion des commutations de tâches de l’état bloqué
à l’état éligible.
– effectuer le choix de la future tâche active dans l’ensemble des
tâches éligibles.
l
Passage d'une tâche_1 vers une tâche_2:
R e c h e r c h e d e la tâ c h e
d e p lu s h a u te p rio r ité
T âch e_ 1
T âch e_ 2
S a u v e g a rd e d u
c o n te x te d e la tâ c h e
Page 23
1
R e s titu tio n d u c o n te x te
d e la tâ c h e 2
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.9. Synchronisation et communication entre tâches
l
Afin de partager des ressources communes et de s ’échanger des
informations, les tâches doivent utiliser des techniques de
communication et de synchronisation.
l
La coopération temporelle des diverses tâches peut se faire:
– par sémaphores
– par évènements
– par messages
Page 24
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.9. Synchronisation et communication entre tâches (suite)
l
Un sémaphore joue le rôle de distributeur de tickets pour résoudre
des problèmes de partage de ressources non réentrantes.
l
Les seules opérations possibles sont:
– P (Prendre) = demander un ticket
– V (Vendre) = restituer un ticket
l
Les sémaphores peuvent être:
– soit binaires (ou booléens)
– soit n-aires (ou à compteurs)
Page 25
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.9. Synchronisation et communication entre tâches (suite)
l
Synchronisation par évènements:
– chaque tâche possède un champ de 16 bits dédiés aux
évènements
– chaque bit peut être positionné indépendamment
– la tâche est bloquée si aucun bit n ’est positionné
– la tâche devient éligible si au moins un bit est positionné
Page 26
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.9. Synchronisation et communication entre tâches (suite)
l
La communication entre tâches peut s’effectuer par échanges de
messages.
l
Un message est une zone de mémoire contenant un identifiant, les
adresses des tâches émettrice et réceptrice, ainsi que les données
envoyées.
Page 27
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.10. Primitives temps réel
l
Les primitives sont des séquences programmées grâce auxquelles
l’utilisateur peut demander au noyau temps réel l’exécution de
fonctions déterminées.
l
Exemples de primitives
ENVOI
– paramètres d’entrée : n° tâche, n° boîte aux lettres, adresse du
message.
– fonction : dépose un message dans la boîte aux lettres
correspondante de la tâche spécifiée, à la suite des messages
déjà existants.
Page 28
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.10. Primitives temps réel (suite)
RECEPTION
– paramètres d’entrée : n° tâche, liste de n° de boîtes aux lettres.
– fonction : examine le contenu de chaque boîte aux lettres, en
commençant par la plus prioritaire.
– paramètres de sortie:
• - si un message est trouvé: adresse du message, n° de boîte
aux lettres, nombre de messages restant.
• - si aucun message trouvé: « 0 » retourné.
Page 29
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.10. Primitives temps réel (suite)
RECEPTION_S (RECEPTION avec appel à l’ordonnanceur ou
scheduler)
– paramètres d’entrée : n° tâche, liste de n° de boîtes aux lettres.
– fonction :
• - si un message existe, il y a appel au scheduleur; la tâche en
cours peut perdre la main si elle n’est pas la tâche éligible la
plus prioritaire.
• - si aucun message n’existe, la tâche en cours est bloquée; il
y a appel au scheduler pour lancer la tâche éligible la plus
prioritaire du moment.
– paramètres de sortie: adresse du message, n° de boîte aux
lettres, nombre de messages restant.
Page 30
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.11. Interruptions des périphériques
– Etapes du traitement général d'une IT:
• fin du traitement en cours
• prise en compte de l’IT
• routine d’interruption (programme spécifique à l’interruption)
– Exemple de routine d’interruption liée à la réception
d’échantillons radio:
• acquitter l’interruption
• lire les échantillons dans la FIFO réception et les copier en
RAM.
• au bout de 160 échantillons: envoi d’un message contenant
ces échantillons vers la tâche n°2 pour les démoduler et les
décoder.
Page 31
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.12. Diagramme des flux de données
l
Données échangées par les différentes tâches, ainsi que les routines
d’interruptions, pour assurer les fonctionnalités en réception radio:
tâ c h e 3
cod. canal
IT e c h . R a d io
I T e c h . A u d io
tra m e
ech.
ra d io
tâ c h e 4
s u p e rv is e u r
tâ c h e 2
dém od
décod. can
tra m e b its d e c o d é s
(p h o n ie o u d o n n é e s )
tr a m e p h o n ie
vocodée
tr a m e b its
(p h o n ie )
tâ c h e 1
c o d e c p a ro le
tâ c h e 5
c o m m u n ic a tio n
IT
Page 32
m ic ro c o n trô le u r
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
2.12. Diagramme des flux de données
l
Données échangées lors de la réception d’une interruption du
microcontrôleur comportant une commande IHM de «raccroché »:
tâ ch e 3
cod. can al
tr a m e d o n n é es
codées
IT e ch . R a d io
IT e c h . A u d io
tr a m e d o n n é e s
tâ ch e 4
su p e r v ise u r
com m an d e IH M
d e « raccroch é »
tâ c h e 2
dém od
décod. can
tâ ch e 1
c o d e c p a r o le
tâ c h e 5
c o m m u n ic a tio n
com m an d e IH M
d e « raccroch é »
a u fo r m a t lia iso n
IT
Page 33
m ic r o c o n tr ô le u r
A company associated with Nortel Networks
2. Spécifications logicielles
________________________________
l
2.13. Exemple de commutation des tâches
l
Commutation des tâches qui suit une interruption émanant du
microcontrôleur pendant un traitement de démodulation:
in te r r u p tio n
m ic r o c o n tr ô le u r
tâ c h e 5
( c o m m .)
tâ c h e 4
(su p e r v .)
tâ c h e 2
tâ c h e 3
(c o d . c a n .)
(d é m o d . d é c o d .)
Page 34
tâ c h e 2
(d é m o d . d é c o d .)
A company associated with Nortel Networks
3. Développement et intégration
________________________________
3.1. Cycle de développement en V
Cahier des charges client
Recette client
Analyse des exigences
Validation système
Spécification préliminaire
Intégration sous-système
Spécifications détaillées
Tests unitaires
Implémentation
Page 35
A company associated with Nortel Networks
3. Développement et intégration
________________________________
3.2. Phase de codage
– Choix d'un ou de plusieurs langages de programmation, selon
les critères de:
• contraintes de vitesse
• quantité de code produit
• disponibilité et performances des utilitaires de
développement
– Règles de programmation
• séparation des modules, modules paramétrés
• limitation du nombre de variables globales
– Choix d'outils de génération
– Choix d'outils de gestion de versions
Page 36
A company associated with Nortel Networks
3. Développement et intégration
________________________________
3.3.Phase de tests / Intégration
l
But = vérifier la conformité du logiciel à la spécification
l
Par ordre chronologique:
– Tests fonctionnels unitaires
• Module par module
• Sur simulateur
• Sur carte d'évaluation
– Tests d'intégration matériel / logiciel
• Tests tâche par tâche, puis test d'ensemble
• Sur plate-forme matérielle,
– à l'aide d'un émulateur In-Circuit
– ou d'un émulateur JTAG
– et / ou d ’un analyseur logique
Page 37
A company associated with Nortel Networks
3. Développement et intégration
________________________________
3.4. Emulateur In-Circuit (ICE)
l
Emulateur traditionnel dont la sonde prend la place du processeur
l
Avantages
• traces performantes
• contrôle d'évènements complexes
l
Inconvénients
• coûteux
• parfois impossible à réaliser technologiquement
(processeurs trop rapides)
• inadapté au mode multi-processeurs
Page 38
A company associated with Nortel Networks
3. Développement et intégration
________________________________
3.5. Emulateur BDM/Jtag
l
Des fonctions de débogage sont intégrées sur la puce. Un
connecteur de quelques broches permet de contrôler le
fonctionnement du processeur.
l
Avantages
• réduction des coûts
• simplicité d'utilisation
• mode multi-processeurs autorisé
• pas de limitation de vitesse des DSP
l
Inconvénients
• nombre de points d'arrêt limité
• traces « temps réel » limitées (possibles uniquement sur les
DSP les plus récents)
Page 39
A company associated with Nortel Networks