Académique Documents
Professionnel Documents
Culture Documents
RAULET Mickaël
18 mai 2006
UMR
6164 1
Plan
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
• Introduction
– Objectifs
– Problématique
• SynDEx
• Minimisation mémoire
• Applications
• Conclusions perspectives
Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes
Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes
Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes
Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes
Prototypage rapide
d’applications de traitement du signal et images
pour systèmes embarqués temps réel
sur architectures distribuées
hétérogènes
• Systèmes multi-composants
• Systèmes embarqués
– Limitation mémoire
• Traitement du signal, télécommunications et
vidéo
– Consommation mémoire importante
• Fonctionnalités
– Partitionnement/ordonnancement automatiques
d’une application sur une architecture cible
– Algorithme glouton basée sur une minimisation de la
latence (optimisation orientée vitesse)
– Génération d’un exécutif distribué indépendant de la
cible
• Approche globale
• Modèle unifié de graphes
– Algorithme : parallélisme potentiel
– Architecture : parallélisme disponible
– Implantations : transformations de graphes
• Adéquation
– Choix d’une implantation optimisée
• But
– Génération automatique d’exécutifs
• taillés sur mesure aux applications,
• basés sur un ordonnancement hors-ligne des calculs et des
communications
Graphe Temporel
Graphe d’Architecture
Graphe d’ Algorithme
Adéquation
Opéra
-tions Opéra
-tions
- Niveaux hiérarchiques
- Conditionnement
- Répétition
www.syndex.org
RAULET Mickaël – 18 mai 2006 12
SynDEx : Caractéristiques
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
• Exécutif supporte :
– l’exécution de l’algorithme sur l’architecture
– l’ordonnancement, les communications et les synchronisations
• Introduction
• SynDEx
– Présentation
– Caractéristiques
– Chaîne de développement
• Minimisation mémoire
• Applications
• Conclusions perspectives
• Télécommunication
• Plate-formes
– UMTS – Sundance
– MC-CDMA – Pentek
• Vidéo Exécutifs • Composant
– LAR Génériques – DSP
– MPEG4 – FPGA
Bibliothèques
Exécutifs
Spécifiques
RAULET Mickaël – 18 mai 2006 15
SynDEx : Chaîne de
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES développement
• Exemple de topologie : Sundance
PC (Pentium)
Personal Computer
PCI
Dépendant du Dépendant du
Type de processeur Type de media
C62x.m4x SDB.m4x (C6 2x , C64x , Fpga )
C64x.m4x CP.m4x (C 62x , C64x , Fpga )
Pentium.m4x BUS_PCI_RAM.m4x ( Pentium , C62x , C64x )
Fpga.m4x BUS_PCI_SAM.m4x ( Pentium , C62x , C64x )
TCP.m4x ( Pentium , C62x )
Bifo.m4x (C62x, Fpga )
Bifo_DMA.m4x (C62x, Fpga )
• Introduction
• SynDEx
• Minimisation mémoire
– Objectifs
– Principes d’allocation
– Mono-composant
– Multi-composants
• Applications
• Conclusions perspectives
Algorithme Architecture
Adéquation
Génération Minimisation
de des allocations
Code de buffers
allocD
allocD allocD
all.Dlo1
o1 all.Dlo1
all.D_o1o2
all.D_o1o2
all.Po2
all.Dl2
all.D_o2o3
o2 all.Dlo2
all.Po4
all.Po2
all.Po3
all.Po1
all.D_o2o3
all.D_o3o4
all.D_o3o4
all.Dlo4 all.Dlo3
o3
all.Po3
all.Dlo3
all.D_o3o4
o4 all.Po4
all.Dlo4
RAULET Mickaël – 18 mai 2006 22
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Mono-composant
• Coloriage de graphe Légende
– Approche classique Td Tf
f
b
a e
c Graphe d’intervalles
d
Tri par ordre croissant des dates de début
b
d
a f
c e
3 couleurs = 3 buffers
Graphe d ’intervalles
• Méthode gloutonne
• Minimum de couleur
• Buffers de même type et de même taille
RAULET Mickaël – 18 mai 2006 23
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Mono-composant
• Autre Méthode mono-composant
– Minimisation « tétris »
• Basée également sur la durée de vie des buffers
• Basée uniquement sur des buffers de même type
Légende Tri par ordre croissant des dates de début (a,b,c,d,e,f)
Td Tf
Tri par ordre décroissant des dates de fin (f,e,d, b, c,a)
taille
taill
Durée d ’allocation du registre
Tri par ordre décroissant des tailles (a,b,e,c,d,f)
a
Ordre total étape 1
a b
op1 op2 op3 op4 op5 op6
étape 2
(a,e) b
=
étape 4
a(3) e(2) (a,e,d) b c
c(1) étape 5
d(1) 6 registres étape 6
(a,e,d) (b,f) c
minimum global = 6
• Introduction
• SynDEx
• Minimisation mémoire
– Objectifs
– Principes d’allocation
– Mono-composant
– Multi-composants
• Applications
• Conclusions perspectives
RAM RAM
Opr1 Com1a SAM Com2a Opr2
D/P D/P
allocP
allocDl
allocP
allocDl
allocD allocD
allocD
calc1 send receive
allocD calc1
in in out out
allocD calc2
allocD
RAM RAM
Opr1 Comr1a SAM Comr2a Opr2
D/P D/P
in_ini out_ini
out
all.Pout
endloop endloop endloop all.Dlout
endloop
in_end
out_end
RAULET Mickaël – 18 mai 2006 28
Minimisation mémoire :
Multi-composants
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES
Opr1
RAM
Comr1a
Suc-E
D/P
in
sur un cycle
Suc-E s_empty
Pre-E
in
Suc-E
Pre-F Suc-F
in
send Pas dePre-F
réutilisation possible
Suc-F
s_full
des buffers communiqués
Pre-E send
inter-processeurs Pre-E
endloop endloop RAULET Mickaël – 18 mai 2006 29
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
processeur1 loop loop
RAM
Opr1 Comr1a
D/P
in1
Durée de vie
loop loop
minimale
du buffer
Suc-E Pre-F
s_empty Suc-F
in1 Suc-F send
Pre-E
Pre-F send Suc-E
s_full Pre-E
Calcul
Calcul
Communications
Modèle SynDEx bloquantes
endloop endloop endloop endloop
RAULET Mickaël – 18 mai 2006 30
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
processeur1 loop loop
RAM
Opr1 Comr1a
D/P
= adéquation
Suc-E Pre-F
s_empty Suc-F
in1 Suc-F send
Pre-F send Calcul1 Pre-E
s_full Pre-E
Suc-E
Calcul
Communications
Calcul2
comme sur le
endloop
graphe temporel
endloop
endloop endloop
RAULET Mickaël – 18 mai 2006 31
Minimisation mémoire :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Multi-composants
• Solution :
– Modifications du modèle SynDEx
– Sans changement de l’ordre total
– Avec prise en compte des temps de
communications
• Sans changement de la latence
– Optimisations de la mémoire avec un gain
important
• Principe de la réutilisation
opr1 Com1a opr2 Opr1 Opr2
RAM RAM
o1
all.D_o1o2
all.D_o1o2 all.D_c1o5
all.D_o1o2
c1
all.D_c1o5
Temps
o2
all.D_o2o3
o5
all.D_o5c2
all.D_o2o3
Temps
all.D c2o4
all.D o3o4
o3 c2 all.D_o5c2
all.D_o3o4
o4 all.D_c2o4
• Introduction
• SynDEx
• Minimisation mémoire
• Applications
– UMTS
– MPEG-4
– LAR
• Conclusions perspectives
• init
• trame par trame trame
• slot par slot
slot
init
• Minimisation UMTS
Modulation Démodulation
SynDEx 1 435 348 2 185 612
Registre 792 460 920 596
Tétris 727 128 808 140
Tétris multi-composant 274 220 376 284
Gain maximum 7 7
• Successeur de MPEG-2
• Norme composée de sous-parties
– Partie 2 = Vidéo
• Norme complexe (boîte à outils)
– Scène composée d’objets
– Images de synthèse
– Images naturelles
–…
Affichage Image
Récupération de l’image
dans le flux
Choix affichage
du type
de décodage
d’image
Mémorisation
Vop_coding_type = 0 Vop_coding_type = 1 imageVop_coding_type = 4
• Basée sur
– Description haut niveau
– Description images I bas niveau
• Schéma hiérachiques :
Séquence Vidéo
Macrobloc I Macrobloc P
Niveau macrobloc
1 MB 493
5 MB 2 385
10 MB 4 720
20 MB 9 390
50 MB 23 400
99 MB 32 273
(1)
en nombre de macroblocs MB
– Temps pour générer l’exécutif
(QCIF > 12 h !)
Nombre d’opérations
– Longueur de l’exécutif
• Gain de 54 recopies
• Minimisation mémoire :
– Gain de 1,6 (Granularité de l’application trop forte)
• Niveau intermédiaire
taille 80*64 niveau intermédiaire taille 176*144 niveau intermédiaire
sans optimisation Tétris sans optimisation Tétris
3 350 224 291 416 40 480 416 780 276
gain : 11 gain : 52
• Bas niveau
taille 80*64 bas niveau
sans optimisation Tétris
7 876 428 768 012
gain : 10
Codeur de contour
Paramétrage Codeur_contours
xsc_coder
Recup_Param
im_sommets stream_AC2x2
xsc_coder
im_tailles
CoefQuant_AC2x2
im_i
seuil_grad
CoefQuant_AC2x2
Codeur de luminance
CoefQuant
CoefQuantcr
Image décodée
seuil_gradcr Codeur_Y
Decodeur_Y Decodeur_contours Post-traitement
xsc_coder
xsc_decoder xsc_decoder
Post_traitement
im_i stream_ErPred
stream_ErPred Y stream_AC_reconst2x2 im_reconst
seuil_grad Taille_flux_ErPred
stream_quad im_tailles im_org
CoefQuant_i stream_quad im_quant_i temp
im_sommets im_tailles
Taille_flux_quad im_tailles imQuant_o
im_sommets
im_Quant im_sommets
im_sommets
im_tailles_o
Display_1
Image
Read_pic xsc_coder
xsc_server Y
Y
Codeur_UV reconstruite U
Display
xsc_client
au codeur
xsc_coder
U V
seuil_grad u_im_Quant Y
V
CoefQuant_i v_im_Quant U Display_2
xsc_client
Lecture de u_im_i u_stream_ErPred V
v_im_i u_Taille_flux_ErPred Y
l’image
Decodeur_UV
uv_stream_quad xsc_decoder U
uv_Taille_flux_quad V
u_stream_ErPred U
v_stream_ErPred
uv_stream_quad V Image
v_Taille_flux_ErPred
v_stream_ErPred
décodée
Codeur de chrominance Image
Décodeur de chr décodée
post-traitée
Display_3
xsc_coder
Y
U
V
Image d’origne
Codeur de luminance
Codeur_Y
xsc_coder Décodeur de luminance
im_i stream_ErPred Decodeur_Y
seuil_grad Taille_flux_ErPred xsc_decoder
CoefQuant_i stream_quad
stream_ErPred Y
Taille_flux_quad
stream_quad im_tailles
im_Quant
1/2 image im_sommets
y/m pixels
originale Image
y/m pixels
des sommets 1/2 image
1/2 image décodée
y/m pixels
Paramét reconstruite x pixels
x pixels
y/m pixels
y pixels
Recup_Param
xsc_coder
CoefQuant_AC2x2
Join x pixels Image
seuil_grad
Image originale x pixels décodée
Division par m (ici m=2)
CoefQuant
x pixels
CoefQuantcr Read_Pic 1/2 image
seuil_gradcr xsc_server
des sommets
y pixels
y pixels
Y
Fork y/m pixels Join Join
y pixels
Recom p
U
V
1/2 image
originale
1/2 image
y/m pixels
x pixels x pixels
reconstruite x pixels
Image
y/m pixels
x pixels
y/m pixels
reconstruite
x pixels
Codeur de luminance
Codeur_Y x pixels
xsc_coder
Décodeur de luminance 1/2 image
im_i stream_ErPred Decodeur_Y décodée
seuil_grad Taille_flux_ErPred xsc_decoder
CoefQuant_i stream_quad
stream_ErPred Y
Taille_flux_quad
stream_quad im_tailles
im_Quant
im_sommets
im_sommets
im_tailles_o
• Introduction
• SynDEx
• Minimisation mémoire
• Applications
• Conclusions perspectives
RAULET Mickaël – 18 mai 2006 53
Conclusions perspectives :
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES Optimisation mémoire
• Conclusion
– Génération de code automatique embarquée
– Post-traitement mémoire efficace
– Codage dans l’outil SynDEx
• Temps de minimisation efficace pour trouver la solution
• Perspectives
– Mise en place de la cache
• Travaux de F. Urban
– Mise en place des algorithmes génétiques
• Minimisation multi-critères
Algorithme Architecture
Adéquation
Mise en place
d’une
heuristique
Génération multi-critère :
de Algorithme
Code Génétique
Utilisation du QDMA
(accélération des transferts mémoires)
Image Image
Isolement d’un macrobloc dans une image Stockage d’un bloc dans l’image