25
AVR32 UC3000 Introduction Conception d’une librairie de traitement du signal optimisée pour l’AVR32 UC3 Atmel Nantes S.A. Blaise LENGRAND – 2007

Conception d’une librairie de traitement du signal optimisée pour l’AVR32 UC3

  • Upload
    ayasha

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Conception d’une librairie de traitement du signal optimisée pour l’AVR32 UC3. Atmel Nantes S.A. Blaise LENGRAND – 2007. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

AVR32 UC3000 Introduction

Conception d’une librairie de traitement du signal

optimisée pour l’AVR32 UC3

Atmel Nantes S.A.

Blaise LENGRAND – 2007

Page 2: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 2

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

Page 3: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 3

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

Page 4: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 4

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.

Page 5: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 5

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).

Page 6: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 6

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 sous-

librairies haut niveau (c’est dans ce module qu’intervient la DSPLib).

Des applications- Des exemples complets

utilisant les services et les drivers.

Page 7: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 7

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.

Page 8: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 8

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.

Page 9: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 9

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.

Page 10: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 10

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)

Page 11: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 11

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.

Page 12: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 12

Stage de fin d’études – Blaise LENGRAND

Gestion de projet

Planning prévisionnel Diagramme de GANTT

Mises à jours régulières

Cycle en V

Planning effectif Rapport hebdomadaire

(Weekly).

Page 13: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 13

Stage de fin d’études – Blaise LENGRAND

Développement (1)

Architecture de la librairie

Page 14: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 14

Stage de fin d’études – Blaise LENGRAND

Développement (2)

Page 15: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 15

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.

Page 16: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 16

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.

Codage de l’algorithme en C et en assembleur.

Tests et débogages- De même que pour les versions

génériques.

Développement des versions optimisées.

Page 17: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 17

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

Page 18: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 18

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.

Page 19: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 19

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.

41%

33%

46%

30%

46%

33%

59%

100%

100%

100%

100%

100%

100%

100%

FFT (16 bits)

Convolution (16 bits)

Convolution (32 bits)

FIR (16 bits)

FIR (32 bits)

IIR (16 bits)

IIR (32 bits)

Optimisée Générique (codée en C)

Page 20: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 20

Stage de fin d’études – Blaise LENGRAND

Benchmarks (3) – FFT

Comparaison des performances avec la concurrence.

26112701

3739

2500 2700 2900 3100 3300 3500 3700 3900

64-p

oin

t F

FT

²

13661

13740

19055

13000 14000 15000 16000 17000 18000 19000 20000

256-

po

int

FF

T

6767168534

67200 67400 67600 67800 68000 68200 68400 68600

1024-p

oin

t F

FT

Nombre de cycles

AVR32 UC3 STR91X dsPIC

Aucune donnée disponible pour dsPIC

Page 21: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 21

Stage de fin d’études – Blaise LENGRAND

Benchmarks (4) – Filtres IIR

2248

4396

6544

1407

2487

3567

24

48

72

N-Tap

STR91X AVR32 UC3

Comparaison des performances avec la concurrence.

Page 22: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 22

Stage de fin d’études – Blaise LENGRAND

Benchmarks (5) – Filtres IIR

Comparaison des performances avec la concurrence.

0

20000

40000

60000

80000

100000

120000

140000

160000

180000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Filter's order

Cyc

les

dsPic AVR32 UC3

Page 23: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 23

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.

Page 24: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 24

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.

Page 25: Conception d’une librairie de traitement du signal  optimisée pour l’AVR32 UC3

Juin 2007 25

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.