Title: Implantation d'algorithmes sp
1- Implantation d'algorithmes spécifiés en virgule
flottante dans les processeurs programmables
virgule fixe
Daniel MENARD Groupe Signal/Architecture LASTI
Juin 2001
2Plan
- 1. Présentation du problème
- Problématique
- Méthodes existantes - Nos objectifs
- 2. Architecture des PTS et génération de code
- Architecture des PTS et influence sur la
précision - Génération de code et influence sur le codage des
données et la précision - 3. Notre approche
- Vue générale
- Outil de détermination du RSBQ
3Présentation du problème
4Du besoin au produit
Besoin
Spécifications
Conception de l'algorithme TNS
Simulation virgule flottante
Partitionnement
Implantation Matérielle
Implantation Logicielle
5Codage en virgule fixe
- Codage des données en virgule fixe
- Objectifs du codage
- Respecter lintégrité de lalgorithme en
garantissant labsence de débordement - Maximiser la précision (Rapport Signal à Bruit de
Quantification RSBQ)
S
bm-1
bm-1
b1
b0
b-1
b-2
b-n2
b-n
b-n1
b m n 1 bits format (b,m,n)
Partie entière m bits
Partie fractionnaire n bits
6Problématique
Précision
Algorithme virgule flottante
Architecture virgule fixe
Méthodologie
Intégrité de lalgorithme
? ?
Conception logicielle (DSP) ? Optimiser le
mapping de lalgorithme sur une
architecture figée ??
Conception matérielle (ASIC-FPGA) ? Optimiser la
largeur des données ? Minimiser la surface du
circuit
Minimiser le temps dexécution et la taille du
code
Maximiser la précision
7Les différentes phases
- Détermination du domaine de définition
- méthode analytique
- garantie labsence de débordements - estimation
conservatrice - méthode statistique
- estimation plus précise mais dépendante du signal
dentrée - Codage et Optimisation des données
- Calcul du RSBQ
- méthode statistique
- simulation en virgule fixe
- méthode analytique
- détermination de lexpression analytique du bruit
8Méthodes existantes - Nos objectifs
- Méthodes existantes
- FRIDGE / CoCentric Fixed Point Designer
(Synopsys) - Autoscaler for C (Université de SEOUL)
- Transformation du code C-ANSI virgule flottante
en un code C-ANSI virgule fixe - Nos objectifs
- Implantation dalgorithmes spécifiés en virgule
flottante au sein de processeurs programmables
virgule fixe sous contrainte de RSBQ - prise en compte de larchitecture du processeur
pour optimiser le codage des données - optimisation du temps dexécution du code
(minimisation des recadrages) sous contrainte du
RSBQ minimal
9Architecture des PTS et génération de code
10Architecture des PTS (1)
- Largeur naturelle du processeur (bnat)
- DSP largeur fixe 16 ou 24 bits
- possibilité de coder les données en double
précision be 2.bnat - Cœur de DSP et ASIP paramétrable
- CD2450 (Clakspur) 16 à 24 bits EPICS (philips)
12, 16, 18, 20, 24 bits PalmCore (VLSI / DSP
Group) 16, 20, 24 bits - Largeur des données au sein de lunité de
traitement - double précision
- bits de garde au niveau de laccumulateur
- précision réduite
- multiplieur réduit (bmult lt 2.bnat) Z893xx
(Zilog) bmult 24 bits
bs
Unité de traitement.
be
11Architecture des PTS (2)
- instructions SIMD simple précision
- TigerSharc (A.D.) traitement de données sur 8,
16, 32 ou 64 bits - C64x (T.I.) traitement de données sur 8, 16,
32, 40 ou 48 bits - Capacités de recadrage
- registres à décalage en sortie du multiplieur
- décalages spécialisés (C50 -6, 0, 1, 4)
- registre à décalage en barillet
- Loi de quantification
- troncature
- arrondi conventionnel (C54x)
- arrondi convergent (DSP56000, ADSP21xx)
12Expérimentations filtre FIR et IIR
- Mesure du RSBQ pour différents processeurs
13Génération de code
- Partie frontale transformation du code source
en une représentation intermédiaire - Partie finale génération dun code cible à
partir de la représentation intermédiaire - Sélection dinstructions
- Allocation et assignation de registres
- Ordonnancement
- Optimisations dépendantes de larchitecture
14Influence de la génération de code
- Sélection dinstructions
- le choix de linstruction est lié à la taille des
données - la largeur des données est fixée avant la
sélection d instructions - Allocation et assignation de registres
- spilling renvoi de données intermédiaires en
mémoire - le RSBQ réel ne peut être connu quaprès
génération de code - Ordonnancement
- le coût dun recadrage est lié à la phase
dordonnancement - la minimisation des recadrages est réalisée au
cours de lordonnancement.
15Une nouvelle approche ...
16Vers une nouvelle approche
Code C DSP
Détermination domaine définition
RSBQcontrainte
Front End
Détermination du codage
Représentation Intermédiaire
RSBQmesuré
Sélection dinstructions
Mesure RSBQ
Modèle de larchitecture
Allocations de registres
Optimisation du codage
Ordonnancement
Code assembleur
17Méthode de détermination du RSBQ (1)
- Principe modélisation du bruit en sortie de
lalgorithme par une somme de sources de bruit
filtrées
...
?Hj(z)
bhj(n)
xj(n)
Hj(z)
y(n)
bej(n)
Hj(z)
bej(n)
bg1(n)
Hb1(z)
bg1(n)
bgi(n)
Hbi(z)
bgi(n)
...
18Méthode de détermination du RSBQ (2)
- Algorithmes cibles
- structures linéaires récursives et non récursives
- structures non linéaires et non récursives
propagation des moments du bruit au sein du GFD. - Modèle de bruit des opérateurs
- Addition
- Multiplication
19Méthode de détermination du RSBQ (3)
- Modèle du bruit généré lors dun changement de
format - Troncature
- Arrondi
20Outil de détermination du RSBQ
Code C, VHDL, assembleur
Génération GFD Signal
Front End
Représentation intermédiaire
GFD Signal
Méthode Analytique
Back End
RSBQ
21Outil de détermination du RSBQ (back end)
- Transformation T1
- Insertion des sources de bruit générées
- Substitution du modèle de bruit des variables et
des opérateurs
GFD Signal
T1
- Transformation T3
- Calcul de la réponse impulsionnelle des Hi(z)
- Calcul du bruit global
GFD Bruit
Modèles de bruit
T2
GFD Hi(z)
- Transformation T2
- Détection et démantèlement des circuits du
GFDbruit - Détermination des équations récurrentes par
parcours des arbres - Élimination de certaines variables
intermédiaires - Détermination de la fonction de transfert globale
T3
Pbruit
22Perspectives de travail
23Perspectives de travail
- Outil de détermination du RSBQ
- Développement des front-end
- Extension de la méthode à la conception dASIC
avec GAUT - Détermination et optimisation du codage
- Choix dun compilateur
- Développement de loutil
- Applications systèmes de radiocommunication 3G
(UMTS)