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