Spécifications des produits AVR32 UC3

publicité
Conception d’une librairie de
traitement du signal
optimisée pour l’AVR32 UC3
Atmel Nantes S.A.
Blaise LENGRAND – 2007
AVR32 UC3000 Introduction
Stage de fin d’études – Blaise LENGRAND
Sommaire
 Présentation de l’entreprise
 Spécifications des produits AVR32 UC3
 Présentation de la « Software Framework »
 Cahier des charges
 Spécifications de la DSPLib
 Gestion de projet
 Développement
 Benchmarks
 Documentation
 Apports
Juin 2007
2
Stage de fin d’études – Blaise LENGRAND
Spécifications des produits AVR32 UC3 (1)
 Faible consommation
 Dispose de mémoire FLASH
 Lecture/Ecriture de la SRAM interne en 1 cycle
 De nombreuses fonctionnalités dont
 Full speed USB 2.0 OTG
 Ethernet 10/100 Mbits (*)
 Multiples canaux DMA
 Jeu d’instructions DSP
 1.3 Dhrystone MIPS/MHz
(*) Pour la série A uniquement
Juin 2007
3
Stage de fin d’études – Blaise LENGRAND
Spécifications des produits AVR32 UC3 (2)
 3 étages de pipeline.
 Prefetch
- Pré-chargement d’une instruction 32 bits ou de deux de 16 bits
tous les cycles d’horloge.
 Decode
- Décodage de l’instruction.
 Execute
- 3 sous-sections: ALU, Multiplication, Lecture/Ecriture.
Juin 2007
4
Stage de fin d’études – Blaise LENGRAND
Spécifications des produits AVR32 UC3 (3)
 Instructions:
 Lecture/Ecriture
- accès aux données de 8, 16, 32 ou 64 bits avec différents
modes d’adressage.
 Instructions DSPs
- MAC, MUL, ADD/SUB avec décalages et arrondis.
 Modes:
 Mécanismes de protection de la mémoire (MPU).
 Faible densité du code:
 20% plus performant que l’ARM7 (Thumb) ou le Cortex M3
(Thumb2).
Juin 2007
5
Stage de fin d’études – Blaise LENGRAND
Présentation de la « Software Framework »
 Une librairie comportant:
 Des drivers
- Fournissant une interface
permettant de faire
abstraction des périphériques
du microcontrôleur.
 Des services
- Un ensemble de souslibrairies haut niveau (c’est
dans ce module qu’intervient
la DSPLib).
 Des applications
- Des exemples complets
utilisant les services et les
drivers.
Juin 2007
6
Stage de fin d’études – Blaise LENGRAND
Cahier des charges
 Conception d’une librairie de traitement du signal
optimisée pour l’AVR32 UC3
 Identifier et spécifier les principales fonctions de traitement du
signal à intégrer dans la librairie.
 Développer la librairie et l’intégrer dans un environnement déjà
existant.
 Optimiser au mieux les fonctions en exploitant toutes les
ressources du microcontrôleur.
 Effectuer des tests de performances sur les différentes fonctions
de la librairie et les comparer avec la concurrence.
Juin 2007
7
Stage de fin d’études – Blaise LENGRAND
Prise en main
 Développement du driver RTC
 Prise en main des logiciels - AVR32-GNU tool chain, IAR,
Tortoise SVN.
 Prise en main du matériel – JTAG ICE mkII, EVK1100.
Juin 2007
8
Stage de fin d’études – Blaise LENGRAND
Spécifications de la DSPLib (1)
 Méthode
 Recherche auprès de la concurrence directe (1)
- STMicroelectronics  « STR91x DSP library »
- Microchip  « dsPIC DSC DSP Algorithm library »
 Recherche auprès de la concurrence indirecte (2)
-
Texas Instrument  « TMS320C64x DSP library »
 Recherche auprès des librairies disponibles sur Internet
- Numerix  « SigLib DSP library »
 Recherche auprès des clients
- Par l’intermédiaire de Régis Latawiec (marketeur du produit).
(1)
Des concurrents dont le produit est équivalent à l’AVR32 UC3.
(2)
Des concurrents mais dont le produit concerné n’est pas comparable avec l’AVR32
UC3 mais qui fournissent eux aussi une librairie DSP.
Juin 2007
9
Stage de fin d’études – Blaise LENGRAND
Spécifications de la DSPLib (2)
 Fonctions – séparées en 2 librairies
 Librairie basique
- Operateurs
- Vecteurs
- Filtres
- Transformées
- Fenêtrages
- Génération de signaux
- Débogages
 Librairie avancée
- Compression (ADPCM)
- Téléphonie (CallerId, CAG, …)
- Régulateur (PID)
Juin 2007
10
Stage de fin d’études – Blaise LENGRAND
Spécifications de la DSPLib (3)
 Types
 Nombres à virgule-fixe sur 16 et 32 bits.
 Nombres complexes (16 et 32 bits).
 Vecteurs réels et complexes (16 et 32 bits).
 Compatibilité
 Code compilable sous AVR32-GCC et IAR.
 Chaque fonction a une version générique (codée en C).
 Les algorithmes sont compatibles avec les types 16 bits et 32 bits.
 Optimisation
 Chaque fonction a une version optimisée pour l’AVR32 UC3.
 Options d’optimisation de l’algorithmique.
- en vitesse, en taille et en précision.
Juin 2007
11
Stage de fin d’études – Blaise LENGRAND
Gestion de projet
 Planning prévisionnel
 Diagramme de GANTT
 Mises à jours régulières
 Planning effectif
 Rapport hebdomadaire
(Weekly).
 Cycle en V
Juin 2007
12
Stage de fin d’études – Blaise LENGRAND
Développement (1)
 Architecture de la librairie
Juin 2007
13
Stage de fin d’études – Blaise LENGRAND
Développement (2)
Juin 2007
14
Stage de fin d’études – Blaise LENGRAND
Développement (3) - 1ère phase - Conception
 Recherche de documentations sur les algorithmes utilisés.
 Conception et validation des algorithmes avec l’outil Scilab.
Juin 2007
15
Stage de fin d’études – Blaise LENGRAND
Développement (3) - 2ème phase - Développement
 Développement des versions génériques (16 et 32 bits).
 Codage de l’algorithme en C.
 Tests et débogages
- Comparaisons des résultats avec ceux de la conception (Scilab).
- Utilisation d’outils personnalisés.
- Petits programmes codés en C sous Windows pour récupérer,
extraire et afficher les résultats afin d’en faciliter l’analyse.
 Développement des versions optimisées.
 Codage de l’algorithme en C et en
assembleur.
 Tests et débogages
- De même que pour les versions
génériques.
Juin 2007
16
Stage de fin d’études – Blaise LENGRAND
Développement (4) - 2ème phase - Développement
 Identification de bugs (liés aux outils principalement).
 Bugzilla.
 Proposition d’une nouvelle instruction à rajouter au jeu
d’instruction de l’AVR32 UC3.
 adddiv2hh.w et subdiv2hh.w
- Sur l’exemple de la FFT, cette instruction ferait gagner jusqu’à 20% de
temps d’exécution de l’algorithme.
 Résultats:
 48 fonctions codés.
Lignes de codes
Lignes de commentaires
Librairie basique
3797
2432
Librairie avancée
197
138
Exemples
5203
1889
Total
9197
4459

Environ 60/jour
Environ 30/jour
Juin 2007
17
Stage de fin d’études – Blaise LENGRAND
Benchmarks (1)
 Intérêts
 Se positionner par rapport à la concurrence.
 Valider la conception et le développement.
 Outils
 Utilisation d’un script pour automatiser le processus.
- Création d’un fichier de configuration.
- Compilation du benchmark.
- Lancement du benchmark.
- Récupération des données.
- Exploitation des données.
- Extractions des données importantes.
- Calcul du taux d’erreur avec un résultat de référence.
- Enregistrement des résultats du benchmark.
Juin 2007
18
Stage de fin d’études – Blaise LENGRAND
Benchmarks (2)
 Comparaison entre les versions génériques (codées en C)
et optimisées des fonctions de la DSPLib.
En pourcentage du temps mis pour exécuter la version
générique de la fonction concernée.
IIR (32 bits)
IIR (16 bits)
100%
33%
FIR (32 bits)
FIR (16 bits)
FFT (16 bits)
100%
46%
100%
30%
Convolution (32 bits)
Convolution (16 bits)
100%
59%
100%
46%
100%
33%
100%
41%
Optimisée
Générique (codée en C)
Juin 2007
19
Stage de fin d’études – Blaise LENGRAND
Benchmarks (3) – FFT
64-point FFT
 Comparaison des performances avec la concurrence.
256-point FFT
2500
1024-point FFT
13000
67200
3739
2701
2611
2700
²
2900
3100
3300
3500
3700
3900
19055
13740
13661
14000
15000
16000
17000
18000
19000
20000
Aucune donnée disponible pour dsPIC
68534
67671
67400
67600
67800
68000
68200
68400
68600
Nombre de cycles
AVR32 UC3
STR91X
dsPIC
Juin 2007
20
Stage de fin d’études – Blaise LENGRAND
Benchmarks (4) – Filtres IIR
 Comparaison des performances avec la concurrence.
3567
72
6544
2487
N-Tap 48
24
4396
1407
2248
STR91X
AVR32 UC3
Juin 2007
21
Stage de fin d’études – Blaise LENGRAND
Benchmarks (5) – Filtres IIR
 Comparaison des performances avec la concurrence.
180000
160000
140000
Cycles
120000
100000
80000
60000
40000
20000
0
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 16 17 18 19 20
Filter's order
dsPic
AVR32 UC3
Juin 2007
22
Stage de fin d’études – Blaise LENGRAND
Benchmarks (6) – « TI Bench »
 Benchmark proposant de multiples code sources
permettant d’évaluer globalement les performances d’un
microcontrôleur.
 T.I. fournit aussi les résultats du « TI Bench » exécuté sur
de nombreux microcontrôleurs: dsPIC, ARM7, …
 Exploitation des résultats
 Bien placé par rapport à la concurrence dans l’ensemble.
 Mauvaise gestion des nombres à virgules-flottantes.
Juin 2007
23
Stage de fin d’études – Blaise LENGRAND
Documentation
 Tout le code est documenté en Doxygen, de même pour
chacun des exemples.
 Réalisation d’une documentation complète appelée
« profile » pour les fonctions importantes.
 Création de « readme.html » permettant de naviguer
rapidement dans l’architecture de la librairie et d’en
ressortir les fonctionnalités principales.
Juin 2007
24
Stage de fin d’études – Blaise LENGRAND
Apports
 Pour l’entreprise
 Développement d’une librairie complète de traitement du signal
optimisée pour l’AVR32 UC3.
 Référencement de différents bugs (Bugzilla).
 Proposition d’amélioration du cœur AVR32 UC3.
 Réalisation de petits travaux: TI Bench, présentation…
 Pour moi
 Progrès en optimisation d’algorithme et de code (assembleur et C).
 Progrès en traitement du signal.
 Rédaction de documentations techniques destinées aux clients et
aux usages internes.
 Collaboration avec d’autres ingénieurs.
 Conduite d’un projet complet.
Juin 2007
25
Téléchargement