4 diapos par page - Sylvain Tisserant

publicité
Systèmes embarqués
Cours 4
DSP
Systèmes embarqués
Sylvain Tisserant - ESIL
Expression des besoins
Expression des besoins (2)
Traitement numérique du signal :
Transformée de Fourier discrète, produit de
convolution et filtres numériques
Sommes de produits
Flux de données élevés
Arithmétique rapide
Optimisation :
Manipulation de données (transferts, tris, stockage,
etc.)
Calculs mathématiques
Systèmes embarqués - S. Tisserant - ESIL - 2009
Facile à comprendre : à adapter aux flux entrant et sortant
des données et à l’algorithme de traitement
Arrivée des données : interruptions
Précision étendue
Produit de 2 fois 16 bits ⇒ 32 bits
Accumulation au moins 40 bits pour éviter les débordements
Accès mémoires rapides et efficaces
Bus souvent le goulot d’étranglement des architectures
Données consécutives ⇒ génération des adresses
Transferts simultanés des deux opérandes d’un produit
Deux bus de données
Adaptation des cycles instruction et mémoire
Données suivantes disponibles à la fin de l’instruction
Systèmes embarqués - S. Tisserant - ESIL - 2009
1
Expression des besoins (3)
Tampon circulaire
Tampon circulaire :
Filtre à réponse impulsionnelle finie (RIF)
M
y(n) = ∑ h(k ) x(n − k )
k =0
Les M+1 coefficients ak = h(k) sont périodiques
Toujours M+1 termes dans la somme : pour chaque nouvel
échantillon il faut éliminer le plus ancien
⇒ écrire le nouveau à la place du plus ancien
Gestion circulaire des indices
Tampon circulaire : gestion par matériel des pointeurs
Boucle sans "frais additionnel" :
Boucle gérée par le matériel
Systèmes embarqués - S. Tisserant - ESIL - 2009
Arithmétique
Systèmes embarqués - S. Tisserant - ESIL - 2009
Barrel shifter
Unités MAC
Multiplication et accumulation
a7
Barrel Shifter
Décalages de n bits en un seul cycle
Utilisé pour multiplications (et divisions)
Utilisé en virgule flottante pour recadrer les mantisses
a5
Décalage donné par différence des exposants
Virgule fixe ou flottante ?
Virgule fixe : moins cher et plus rapide
Virgule flottante : pour grande gamme dynamique et
meilleure précision
Systèmes embarqués - S. Tisserant - ESIL - 2009
b7
a6
b6
b5
a4
b4
a3
b3
a2
b2
a1
b1
a0
b0
"0"
c0
c1
c2
Systèmes embarqués - S. Tisserant - ESIL - 2009
2
Barrel shifter (2)
Virgule fixe & flottante
a7
Virgule fixe :
b7
a6
Poids 2-m pour le bit de poids le plus faible
n −1
b6
a5
b5
a4
Exemple : C = 5
F
b3
a2
b2
b7 b6 b5 b4 b3 b2 b1 b0 =
a2 a1 a0 0 0 0 0 0
a1
b1
a0
b0
Norme IEEE 754
k =0
2m
=
A
2m
m bits de poids faible : partie fractionnaire
n-m bits de poids fort : partie entière
Virgule flottante
A = ± M 2E
Systèmes embarqués - S. Tisserant - ESIL - 2009
=
Décalage vers la gauche de 5
"0"
c0
c1
c2
∑ ak 2 k − m
∑ ak 2k
k =0
b4
a3
=
n−1
avec
2-1 ≤ M < 1
M : mantisse normalisée
E : exposant
Systèmes embarqués - S. Tisserant - ESIL - 2009
Norme IEEE 754
32 bits
1 bit de signe
0 ≡ 32 bits à 0
8 bits pour exposant en représentation biaisée
(pas de confusion entre 0 et 0,5)
23 bits pour la mantisse à bit caché
Mantisse dénormalisée pour v < 0.1 2-127
-127
Par ex : 0.001 2
Si 8 bits de l’exposant à 1 :
M = 0 ⇔ ±∞
M ≠ 0 ⇔ NaN
S
exposant
mantisse
Systèmes embarqués - S. Tisserant
- ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
3
Circuits de logique programmable
I3
I2
I1
I0
I3
I2
I1
I0
FPGA
Systèmes embarqués - S. Tisserant - ESIL - 2009
Y3 Y2 Y1 Y0
Circuits de logique programmable
I1
I0
Horlorge
OE
Q
ClK
Q
sortie
Bloc Logique
Bloc Logique
D
Systèmes embarqués - S. Tisserant - ESIL - 2009
Y3 Y2 Y1 Y0
Macrocellule
Bloc Logique
I2
Circuits de logique programmable
Matrice de connection
I3
Y3 Y2 Y1 Y0
Systèmes embarqués - S. Tisserant - ESIL - 2009
4
Circuits de logique programmable
Bloc d'entrée/sortie
FPGA
Field Programmable Gate Array
Configuration des connexions dans une mémoire
vive (chargée à l’initialisation du système) ou dans
une EEPROM ou mémoire flash
Réseau de connexion
programmable
Bloc logique
Systèmes embarqués - S. Tisserant - ESIL - 2009
Chaque bit commande une connexion
Programmation
VHDL, Verilog, AHDL, etc.
Environnement de développement
Editeur, compilateur, simulateur, chargeur, moniteur
Bibliothèque de composants
Microcontrôleur intégré
Systèmes embarqués - S. Tisserant - ESIL - 2009
Outils de développement
Environnement de
développement
Outre l’environnement classique de développement de code
(éditeur, assembleur, compilateur, gestion de projet, etc.), on
peut trouver pour un microcontrôleur :
Simulateur
Emulateur
Moniteur
Chargeur résident
Application résidente
en ROM, EPROM, EEPROM ou mémoire flash
Au démarrage, ou après réinitialisation, le microcontrôleur
lance automatiquement l’exécution du programme à une
adresse fixe
Aide au débogage
Systèmes embarqués - S. Tisserant - ESIL - 2009
5
Simulateur
Emulateur
Logiciel exécuté sur plateforme de développement
Dispositif matériel qui remplace physiquement le
(PC)
Emule le fonctionnement du microcontrôleur
Permet de valider la logique du programme avec les
accès aux registres et à la mémoire
Par contre, ne permet pas les accès aux
entrées/sorties
Ne fonctionne évidemment pas aussi vite que le
microcontrôleur et ne permet donc pas de tester les
aspects temporels
Systèmes embarqués - S. Tisserant - ESIL - 2009
microcontrôleur connecté à la plateforme de
développement (RS232, JTAG, etc.)
Permet l’accès aux entrées/sorties
Emulateur temps-réel : si respecte les contraintes
temporelles du microcontrôleur
Evolution de la complexité des microcontrôleurs et
grande variété des gammes ⇒ émulateurs de plus
en plus couteux
Possibilité de charger les EEPROM ou mémoire flash
in situ ⇒ émulateurs ont disparu
Systèmes embarqués - S. Tisserant - ESIL - 2009
Moniteur
Moniteur (2)
Programme résident en ROM du microcontrôleur
Fonction désassembleur (code machine →
S’exécute automatiquement en l’absence de toute autre
application
Activation spécifique (une des broches)
Permet le dialogue avec la plateforme de développement
RS232, JTAG, etc.
Chargement de l’application en cours de développement en
mémoire (vive ou flash)
Lancement de celle-ci
Débogage avec insertion de points d’arrêt et examen du
contenu de registres et de la mémoire
Débogage en mode pas à pas
assembleur)
Dialogue avec un simple terminal via une liaison
RS232
Peut jouer le rôle d’un micronoyau avec une
bibliothèque de sous-programmes
Systèmes embarqués - S. Tisserant - ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
6
Chargeur résident
Les langages
On trouve de plus en plus dans les microcontrôleurs
Assembleur
un programme résident permettant la mise à jour à
distance, sur le site d’utilisation, de l’application, en
général en mémoire flash
La communication se fait via une liaison spécialisée
du type JTAG, mais on verra de plus en plus
l’utilisation d’Ethernet filaire, WiFi ou même GSM
Forth
Java
C
Contraintes de programmation
Limiter l’utilisation de la mémoire
Performances et sûreté
⇒ programmation différente de vos habitudes
Systèmes embarqués - S. Tisserant - ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
Assembleur
Assembleur (2)
Code machine
Registres
Compteur Ordinal (CO) ou Program Counter (PC)
Registre Instruction
Instructions en format binaire (un ou plusieurs mots)
Constituées de plusieurs champs (action et opérandes)
Décrites par la documentation du microcontrôleur (champs
et timing)
Impossible de programmer en langage machine
Assembleur
Syntaxe compréhensible à base de mnémoniques simples
(add, ldr, mov, push, mul, etc.)
Chaque mnémonique correspond à un type d’instruction
machine
Souvent chaque terme d’une instruction correspond à un
champ du code machine
Permet un code compact et d’exécution rapide (calculable)
Très proche de l’architecture du microcontrôleur
Systèmes embarqués - S. Tisserant - ESIL - 2009
Accumulateur
Registres généraux
Registres d’index
Registres de base
Registre d’état (RE), Status Register (SR) ou
Processor Status Word
Pointeur de pile
Systèmes embarqués - S. Tisserant - ESIL - 2009
7
Jeu d’instructions
Jeu d’instructions (2)
Instructions de transfert ou déplacement
Instructions du contrôle du déroulement
en fait copie (intégrité de la source préservée)
entre mémoire et registre
entre registres
entre cases mémoires (pas toujours disponible)
Instructions arithmétiques
addition, soustraction, multiplication, division, MAC
Instructions logiques et de manipulations de bits
jouent un rôle très important
logiques : et, ou, xou, non
décalages et rotations
échange d’octets
manipulations de bits (set, clr, tst, etc.)
comparaisons
sauts conditionnels (selon bits du registre d’état) ou non
boucles
appels à une routine (sous-programme ou fonction)
Instructions d’entrée-sortie
vers ou en provenance d’un périphérique
en général transfert via registre ou mémoire
parfois instructions spécifiques
Instructions diverses
gestions des interruptions
contrôle du mode de fonctionnement du microcontrôleur
(passage en mode basse consommation, etc.)
Macros
remplacent des groupes d’instructions (code source plus
court, pas le code machine)
Systèmes embarqués - S. Tisserant - ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
Exemple : une boucle
Modes d’adressage
Address
00FF
0100
0101
Implicite
Opcodes Assembly
...
86 0F
LDAA #$0F
...
again . . .
Immédiat
Registre
Direct
Indirect
01F2
01F3
01F5
4A
26 101
...
DECA
BNE again
Systèmes embarqués - S. Tisserant - ESIL - 2009
Indexé
Relatif
Basé
Systèmes embarqués - S. Tisserant - ESIL - 2009
8
Java Micro Edition
Java Micro Edition (2)
Depuis 1999, après un essai infructueux en 1998
Intérêts de Java pour l’embarqué
Portabilité
Homogénéité
Nombreux développeurs formés : réduction des coûts
Un sous-ensemble de J2SE
Moins de classes
Par exemple pas de classe Float ⇒ faire sans ou émuler
Moins de fonctionnalités (sécurité, etc.)
Parties spécifiques
Modulaires
Choisir ses composants
Systèmes embarqués - S. Tisserant - ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
Architecture J2ME
Configurations
OS : Windows CE, Palm OS, SavaJe, Android, etc.
Machine virtuelle :
Spécifique aux équipements et configurations
empreinte adaptée au matériel (KVM : Kilobyte Virtual
Machine)
CLDC : Connected Limited Device Configuration
Petits équipements : téléphones portables, Palm Pilot
Spécifiée par Sun et 18 entreprises
Basée sur KVM à faible empreinte mémoire (Sun et
propriétaires) – 160 ko
CDC : Connected Device Configuration
Equipements embarqués plus puissants : PDA haut de
gamme, lecteur DVD, décodeurs, etc.
VM classique – 32 bits – 2 Mo de RAM
Pas fournie par Sun
Implémentations propriétaires spectifiques et
coûteuses
Systèmes embarqués - S. Tisserant - ESIL - 2009
Systèmes embarqués - S. Tisserant - ESIL - 2009
9
Profil CLDC
Profils CDC
MIDP : Mobile Information Device Profile
Foundation Profile
Profil de base (gestion réseau, authentification, etc.)
Profil CLDC, le plus utilisé
Interface utilisateur en deux couches
Haut niveau
Portabilité
Composants d’interface utilisateur simples
Bas niveau
Exploitation de toutes les fonctionnalités du terminal
Ecran et événements associés aux touches et système de
pointage
Utilisation des deux niveaux possible mais pas
simultanément
Cycle de vie des applications
Accès aux données et stockage persistant
Systèmes embarqués - S. Tisserant - ESIL - 2009
Personal Basis Profile
Interfaces graphiques de base
Personal Profile
Interfaces graphiques évoluées
CDC encore confidentiel
Qu’en sera-t-il dans l’avenir ?
Systèmes embarqués - S. Tisserant - ESIL - 2009
10
Téléchargement