Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

59
INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES 1 UMR 6164 Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles RAULET Mickaël 18 mai 2005 Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image INRIA – Groupe AOSTE

description

Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles. RAULET Mickaël 18 mai 2005 Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image INRIA – Groupe AOSTE. Plan. Introduction Objectifs Problématique SynDEx Minimisation mémoire - PowerPoint PPT Presentation

Transcript of Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

Page 1: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

1UMR6164

Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures

Parallèles

RAULET Mickaël18 mai 2005

Mitsubishi ITE - Equipe Software Radio IETR/INSA - Groupe Image

INRIA – Groupe AOSTE

Page 2: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

2

Plan

• Introduction– Objectifs– Problématique

• SynDEx

• Minimisation mémoire

• Applications

• Conclusions perspectives

Page 3: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

3

Introduction : Objectifs

• Développement d’une méthodologie de prototypage rapide pour architectures complexes– Diminution du temps de développement pour

le portage sur une cible multi-composants (PC, DSP et/ou FPGA)

• Développement d’applications dans le domaine de l’embarqué (téléphonie mobile, décodeurs de salons) – Réalisation de démonstrateurs

Page 4: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

4

Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes

– Méthodologies pour passer rapidement (automatiquement) d’une description de haut niveau de l’application à une implantation exécutable

– Méthodologie AAA (Adéquation Algorithme Architecture)

Introduction : Problématique

Page 5: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

5

Introduction : Problématique

Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes

– Applications fortement orientées données

Page 6: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

6

Introduction : Problématique

Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes

– Minimisation des ressources et exécution “suffisamment” rapide

Page 7: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

7

Introduction : Problématique

Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes

– Distribution/ordonnancement des traitements

Page 8: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

8

Introduction : Problématique

Prototypage rapide d’applications de traitement du signal et images pour systèmes embarqués temps réelsur architectures distribuées hétérogènes

– Mise en oeuvre conjointe de composants cible variés– Travaux essentiellement sur cibles multi-composants

Page 9: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

9

Introduction : Problématique

• Systèmes multi-composants• Systèmes embarqués

– Limitation mémoire

• Traitement du signal, télécommunications et vidéo– Consommation mémoire importante

Nécessité d’une optimisation mémoireNécessité d’une méthodologie adaptée

Page 10: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

10

SynDEx : Présentation

• SynDEx : Synchronized Distributed Executives– Logiciel de CAO niveau système pour applications

distribuées temps réel et embarquées– INRIA Rocquencourt projet AOSTE (Y. Sorel)

• 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

Page 11: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

11

SynDEx : Caractéristiques

• 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

Page 12: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

12

SynDEx : Caractéristiques

Graphe d’Architecture

Graphe d’ Algorithme

Adéquation

root DSP1FIFOs

Opéra-

tionsOpér

a-tions

Graphe Temporel

- Niveaux hiérarchiques

- Conditionnement- Répétition

www.syndex.org

Page 13: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

13

SynDEx : Caractéristiques

• Exécutif supporte : – l’exécution de l’algorithme sur l’architecture– l’ordonnancement, les communications et les synchronisations

• Taillé sur mesure : – Minimisation du surcoût spatial et temporel – Implantation optimisée (latence)– Sans inter-blocage, garantie ordre total du graphe d’algorithme

• Basé sur macro-code– Indépendant du processeur– Supportant des architectures hétérogènes, portabilité

• Basé sur des bibliothèques génériques dépendantes – des processeurs (DSP, PC, FPGA…)– des communicateurs (SAM=FIFO, RAM)

Page 14: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

14

Plan

• Introduction

• SynDEx– Présentation– Caractéristiques– Chaîne de développement

• Minimisation mémoire

• Applications

• Conclusions perspectives

Page 15: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

15

SynDEx : Chaîne de développement

Algorithme Architecture

ExécutifsSpécifiques

ExécutifsGénériques

Adéquation

• Télécommunication – UMTS

– MC-CDMA

• Vidéo– LAR

– MPEG4

• Plate-formes– Sundance– Pentek

• Composant– DSP– FPGA

Bibliothèques

• Prototypage rapide et domaine d’applications

Page 16: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

16

FPGA1 (Virtex)

SDBaSDBbCP0CP1CP2CP3

PALtoYUV (BT829)

VID_IN

DSP2 (TMS320C6416)

SDBaSDBbCP0CP1PCI

YUVtoPAL (BT864a)

VID_OUT

DSP3 (TMS320C6414)

SDBaSDBb

VID_INVID_OUT

PC (Pentium)

PCI

PCI (BUS_PCI)

Bus_6 (CP)

Bus_3 (SDB)

IN (VID_IN)

OUT (VID_OUT)

Bus_1 (SDB)

Embedded Motherboard: SMT320

SMT361

SMT319

SMT358

Personal Computer

SynDEx : Chaîne de développement

• Exemple de topologie : Sundance

Plusieurs types de processeurs et de communicateurs

Framegrabber

Module FPGA

Module DSP

Page 17: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

17

SynDEx : Chaîne de développement

Génération de code

Génériquel’architectureDépendant de

l’applicationDépendant de

Type de mediaDépendant du

Type de processeur

Dépendant du

SynDEx.m4x

C62x.m4x

C64x.m4x

Pentium.m4x

Fpga.m4x

SDB.m4x (C62x , C64x, Fpga)

CP.m4x (C62x , C64x, Fpga)

BUS_PCI_RAM.m4x ( Pentium, C62x, C64x)

BUS_PCI_SAM.m4x ( Pentium, C62x , C64x)

TCP.m4x (Pentium, C62x)

Bifo.m4x (C62x, Fpga)

Bifo_DMA.m4x (C62x, Fpga)

ApplicationName.m4x

• Arborescence des bibliothèques

Page 18: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

18

SynDEx : Chaîne de développement

• Développements de nombreuses bibliothèques• Vérification fonctionnelle

– Ajout de fonction d’affichage de l’image directement sous SynDEx

• Display générique• Webcam

• Vérification et exploration architecturale TCP– facilitant la vérification fonctionnelle de l’application

• séparation de codeur-décodeur

– possibilité de décrire des architectures complexes (multi-PC)

• plateformes de test et de vérification

Page 19: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

19

Plan

• Introduction

• SynDEx

• Minimisation mémoire– Objectifs– Principes d’allocation– Mono-composant– Multi-composants

• Applications

• Conclusions perspectives

Page 20: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

20

Minimisation mémoire : Objectifs

Algorithme Architecture

Adéquation

Génération de

Code

Minimisationdes allocations

de buffers

Page 21: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

21

allocD

allocD allocD

allocD

Minimisation mémoire : Principes d’allocation

Une allocation (buffer) allouée pour chaque sortie

Page 22: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

22

o2

opr1RamD/P

o1

o4

o3

all.Po1

all.Po2

all.Po4

all.Po3

all.D_o1o2

all.D_o2o3al

l.D_o

1o2

all.D

_o2o

3

all.D_o3o4al

l.D_o

3o4 al

l.Po1

all.P

o2

all.P

o4

all.P

o3

all.Dlo1

all.Dlo2

all.Dlo4

all.Dlo3

all.D

lo1

all.D

l2al

l.Dlo

4al

l.Dlo

3

all.D

_o3o

4

ESPACE MEMOIRE RAM données données communiquées locales programmes

Minimisation mémoire : Mono-composant

Page 23: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

23

b

a

c e

df

Graphe d ’intervalles

Minimisation mémoire : Mono-composant

• Coloriage de graphe– Approche classique– minimisation des buffers (« registre »)

Tri par ordre croissant des dates de début

• Méthode gloutonne• Minimum de couleur• Buffers de même type et de même taille

3 couleurs = 3 buffers

TfTd

Durée d ’allocation du registre

Légende

ac

b

d

e

f

Graphe d’intervalles

Page 24: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

24

Minimisation mémoire : 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

TfTd

Durée d ’allocation du registre

Légende

taille

TfTd

Durée d ’allocation du registre

Légende

taill

a(3)

c(1)

b(2)

d(1)

e(2)

f (1)

minimum global = 6

Ordretotalop1 op2 op3 op4 op5 op6

Tri par ordre décroissant des dates de finTri par ordre décroissant des dates de fin (f,e,d, c,b ,a)

Tri par ordre croissant des dates de débutTri par ordre croissant des dates de début (a,b,c,d,e,f)

Tri par ordre décroissant des taillesTri par ordre décroissant des tailles ( b,a ,e,c,d,f)

étape 1

a

étape 2

a b

étape 3

(a,e) b

étape 4

(a,e) b c

étape 5

(a,e,d) b c

étape 6

(a,e,d) (b,f) c

Minimum 6 couleurs =

6 registres

Page 25: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

25

Plan

• Introduction

• SynDEx

• Minimisation mémoire– Objectifs– Principes d’allocation– Mono-composant– Multi-composants

• Applications

• Conclusions perspectives

Page 26: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

26

Minimisation mémoire : Multi-composants

• Considération des buffers communiqués inter-processeurs– Diminution accrue de l’espace mémoire

• Durée de vie des buffers communiqués liée au modèle de synchronisation de SynDEx

Page 27: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

27

Opr1 Com1a Com2a Opr2

processeur1 processeur2

RAMD/P SAM

RAMD/P

send receive

send receive

in out

calc1

calc2

incalc1

outcalc2

allocD

allocD

allocD

allocDallocD

allocDallocD

allocD

allocPallocDl

allocPallocDl

allocPallocDl

allocPallocDl

Minimisation mémoire : Multi-composants

• Distribution/ordonnancement

Page 28: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

28

in

calc

out

send receive

Opr1 Comr1a Comr2a Opr2

processeur1 processeur2

RAMD/P SAM

RAMD/P

all.Pin

all.Dlinall.Pcalc

all.Dlcalc

all.Poutall.Dlout

all.Din/calc

all.Din/calc

all.Dcalc/out

all.Din/calc

loop loop loop loop

endloop endloop endloop endloop

in_ini

in_end

out_ini

out_end

Minimisation mémoire : Multi-composants

Page 29: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

29

in

send

Opr1 Comr1a

processeur1

RAMD/P

loop loop

endloop endloop

in

sendPre-E

Pre-F

Suc-E

Suc-F

in

sendPre-E

Pre-F

Suc-E

Suc-Fs_full

Pre-F Suc-F

Suc-E

Pre-E

s_empty

Minimisation mémoire : Multi-composants

• Schéma de principe dans SynDEx

Dur

ée d

e vi

e du

buf

fer

sur

un c

ycle

Pas de réutilisation possibledes buffers communiquésinter-processeurs

Page 30: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

30

Minimisation mémoire : Multi-composants

send

Opr1 Comr1a

processeur1

RAMD/P

loop loop

endloop endloop

in1

Suc-E

Pre-E

s_empty

s_full

Pre-F

Suc-F Dur

ée d

e vi

e du

buf

fer

min

imal

eCalcul

in1

send

loop loop

endloop endloop

Calcul

Pre-FSuc-F

Pre-ESuc-E

Communications bloquantesModèle SynDEx

Page 31: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

31

Minimisation mémoire : Multi-composants

send

Opr1 Comr1a

processeur1

RAMD/P

loop loop

endloop endloop

in1

Suc-E

Pre-E

s_empty

s_full

Pre-F

Suc-F

Dur

ée d

e vi

e du

buf

fer

= a

déqu

atio

nCalcul

in1

send

loop loop

endloop endloop

Calcul2

Calcul1

Pre-FSuc-F

Pre-E

Suc-E

Communications comme sur le graphe temporel

Page 32: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

32

Minimisation mémoire : 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

Page 33: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

33

o2

o1

o4

o3

o5

c1

c2

sp

meT

Minimisation mémoire : Multi-composants

• Principe de la réutilisationopr1 opr2Com1a

all.D_c1o5

all.D_o5c2

all.D_o1o2

all.D_o2o3

all.D_o3o4

all.D_o1o2

all.D_c2o4

Opr1RAM

Opr2RAM

sp

meT

all.

Dc

2o

4

all.

D_c

1o5

all.D

_o5c

2all.D

_o1

o2

all.D

_o2o

3

all.

Do3

o4

Page 34: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

34

Minimisation mémoire :Conclusion

• Minimisation mémoire mono-composant efficace– Minimisation « registre »– Minimisation « tétris »

• Minimisation mémoire multi-composants– Prise en compte des buffers communiqués inter-processeurs

• Optimisation supplémentaire de la génération de code– Opérations implicites générant des « recopies » de buffers à

buffers :• Explode – implode• Conditionnement • Retard ou mémoire

Page 35: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

35

Plan

• Introduction

• SynDEx

• Minimisation mémoire

• Applications– UMTS– MPEG-4– LAR

• Conclusions perspectives

Page 36: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

36

Applications : UMTS FDD

• Troisième génération de téléphone portable

• Caractéristiques– Débits maximum 2 Mbits/sec– Temps réel 10ms par trame– 1 trame = 15 slots

Page 37: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

37

init

Applications : UMTS (Tx)

• inittrame

slot

• trame par trame• slot par slot

Page 38: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

38

Applications : UMTS

• Minimisation UMTS

• Portage sur un C6203 à 512 ko de RAM• Automatique Mieux que manuellement• Gain de 7 Très proche d’un gain attendu de 7.5• Minimisation de toutes les recopies Diminution du temps

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

Page 39: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

39

Applications : MPEG-4

• 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– …

Page 40: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

40

Application : Décodeur MPEG-4

• Décodeur images I (Intra) existant :– Description bas niveau Granularité fine

• 3 niveaux d’abstraction de description– Niveau image haut niveau

• Image I, P et B

– Niveau macrobloc niveau intermédiaire• 16 * 16 pixels

– Niveau bloc bas niveau• 6 blocs dans un macrobloc

– 4 blocs de luminance– 2 blocs de chrominance

Page 41: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

41

Application : Décodeur MPEG-4 Description gros grain

• Description niveau Image– Images I– Images P– Images B

• Base des descriptions plus détaillées – Description niveau intermédiaire– Description bas niveau

Séquence Vidéo

Image BImage I

Affichage Image

Image P

Page 42: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

42

Application : Décodeur MPEG-4Description gros grain

affichage

Récupération de l’image dans le flux

Mémorisation image

Choix du type

de décodaged’image

Vop_coding_type = 0 Vop_coding_type = 1 Vop_coding_type = 4

Image I Image BImage P

Page 43: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

43

Application : Décodeur MPEG-4Description gros grain

• Description de haut niveau– Gros grain– Résultats sur DSP (C6416 à 400 MHz)

Extension de ces résultats sur DSP à 1GHz Temps moyen avec communications

• QCIF : 5 ms

• CIF : 12 ms

• 640*480 : 30 ms

temps moyen temps moyenmax I max P du décodage avec comm.

176*144 (QCIF) - 2048 kbps 6,3 ms 7 ms 5,6 ms 12,2 ms352*288 (CIF) - 2048 kbps 22,5 ms 23,3 ms 14,3 ms 30,4 ms640*480 - 2048 kbps 50,5 ms 50,7 ms 34,2 ms 75 ms

temps de décodage

Page 44: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

44

Application : Décodeur MPEG-4Description grain fin

• Décodeur bas niveau grain fin– Granularité du décodeur :

• VLC inverse (VLC = codage à longueur variable) • Scan inverse (scan = balayage)• DCT inverse (DCT = transformée discrète en cosinus)• …

– Possibilité de parallélisme

• Basée sur– Description haut niveau– Description images I bas niveau

Page 45: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

45

Application : Décodeur MPEG-4Description grain fin

• Schéma hiérachiques : Séquence Vidéo

Image PImage I

Description haut niveau

Niveau macrobloc

Niveau bloc

Macrobloc I

MB INTRA I

VLC inverse MBBlocs Luminance

I Bloc Cb I Bloc Cr I

X1 I X2 I X3 I X4 I XCb I XCr I

Description Images I bas niveau

Macrobloc P

MB non codé

Blocs Luminance non codés

Bloc CbNon codé

Bloc CrNon codé

MB Codé

MB INTER MB INTERQ MB INTER4V

Interpolation MBBlocs Luminance

PBloc Cb P Bloc Cr P

X1P X2 P X3 P X4 P XCb P XCr P

cbp Xn = 0 cbp Xn = 1

MB INTRA P MB INTRAQ P

Description Images P bas niveau

Page 46: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

46

• Complexité SynDEx du décodeur bas niveau– Nombre d’opérations proportionnel au nombre de macroblocs

– Temps pour générer l’exécutif Temps pour générer l’exécutif (QCIF > 12 h !)(QCIF > 12 h !)

– Longueur de l’exécutif Longueur de l’exécutif Nombre d’opérations Nombre d’opérations

taille de la vidéo(1) nombre d'opérations

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

Description intermédiaire niveau macroblocDescription intermédiaire niveau macrobloc

Application : Décodeur MPEG-4Description grain fin

Page 47: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

47

Application : Décodeur MPEG-4Description gros grain

• Décodeur MPEG-4 sur 2 processeurs : – description de haut niveau (352*288)

• Gain de 54 recopies• Minimisation mémoire :

– Gain de 1,6 (Granularité de l’application trop forte)

Decodeur MPEG4 processeur 1 processeur 2

SynDEx 253 452 3 323 292

Registre 253 452 3 020 000

Tétris multi-composants 152 076 2 030 000

Gain maximum 1,6 1,6

Page 48: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

48

Application : Décodeur MPEG-4Description gros grain

• Haut niveau

taille 80*64 haut niveau

sans optimisation Tétris

436 316 409 392

gain : 1,07

taille 80*64 niveau intermédiaire

sans optimisation Tétris

3 350 224 291 416

gain : 11

taille 176*144 niveau intermédiaire

sans optimisation Tétris

40 480 416 780 276

gain : 52

taille 80*64 bas niveau

sans optimisation Tétris

7 876 428 768 012

gain : 10

• Niveau intermédiaire

• Bas niveau

Page 49: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

49

Applications : LAR

• Méthode développé au sein du laboratoire Image

• Méthode basée contenu

• Méthode hiérarchique – Images fixes– Fort taux de compression

Page 50: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

50

Codeur_contours

xsc_coder

im_sommets

im_tailles

im_i

CoefQuant_AC2x2

stream_AC2x2

Decodeur_contours

xsc_decoder

stream_AC_reconst2x2

im_org

im_tailles

im_sommets

im_reconst

Post_traitement

im_quant_i

im_tailles

im_sommets

temp

imQuant_o

Display_2

xsc_client

Y

U

V

Imagedécodée

post-traitée

Codeur de contour

Post-traitement

Application : CODEC LAR

Recup_Param

xsc_coder

CoefQuant_AC2x2

seuil_grad

CoefQuant

CoefQuantcr

seuil_gradcr

Read_pic

xsc_server

Y

U

V

Display_3

xsc_coder

Y

U

V

Codeur_Y

xsc_coder

im_i

seuil_grad

CoefQuant_i

stream_ErPred

Taille_flux_ErPred

stream_quad

Taille_flux_quad

im_Quant

im_sommets

im_tailles_o

Decodeur_Y

xsc_decoder

stream_ErPred

stream_quad

Y

im_tailles

im_sommets

Image d’origne

Lecture del’image

Paramétrage

Codeur de luminance

Codeur_UV

xsc_coder

seuil_grad

CoefQuant_i

u_im_i

v_im_i

u_im_Quant

v_im_Quant

u_stream_ErPred

u_Taille_flux_ErPred

uv_stream_quad

uv_Taille_flux_quad

v_stream_ErPred

v_Taille_flux_ErPred

Display_1

xsc_coder

Y

U

V

Decodeur_UV

xsc_decoder

u_stream_ErPred

uv_stream_quad

v_stream_ErPred

U

V

Display

xsc_client

Y

U

V

Imagereconstruiteau codeur

Imagedécodée

Codeur de chrominance Décodeur de chr

Image décodée

Page 51: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

51

Application : CODEC LAR Slice

Recup_Param

xsc_coder

CoefQuant_AC2x2

seuil_grad

CoefQuant

CoefQuantcr

seuil_gradcr

Read_Pic

xsc_server

Y

U

V

Fork

x pixels

x pixels

x pixels

y p

ixe

ls

y/m

pix

els

y/m

pix

els

Div

isio

n par

m (i

ci m

=2)

Image originale

1/2 imageoriginale

1/2 imageoriginale

Paramét

Codeur_Y

xsc_coder

im_i

seuil_grad

CoefQuant_i

stream_ErPred

Taille_flux_ErPred

stream_quad

Taille_flux_quad

im_Quant

im_sommets

im_tailles_o

Codeur_Y

xsc_coder

im_i

seuil_grad

CoefQuant_i

stream_ErPred

Taille_flux_ErPred

stream_quad

Taille_flux_quad

im_Quant

im_sommets

im_tailles_o

Join

Joinx pixels

x pixels

x pixels

x pixels

x pixels

y/m

pix

els

y/m

pix

els

y/m

pix

els

y/m

pix

els

y p

ixe

lsy

pix

els

Codeur de luminance

Codeur de luminance

1/2 imagedes sommets

1/2 imagedes sommets

1/2 imagereconstruite

1/2 imagereconstruite

Imagereconstruite

Imagedes sommets

Decodeur_Y

xsc_decoder

stream_ErPred

stream_quad

Y

im_tailles

im_sommets

Decodeur_Y

xsc_decoder

stream_ErPred

stream_quad

Y

im_tailles

im_sommets

Join

x pixels

x pixelsx pixels

y p

ixe

ls

y/m

pix

els

y/m

pix

els

Décodeur de luminance

Décodeur de luminance 1/2 imagedécodée

1/2 imagedécodée

Imagedécodée

Reco

mp

Page 52: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

52

• Codec LAR sur 2 Processeurs

– Div_pic = 1– 117 opérations– 352*288

CODEC LAR processeur 1 processeur 2

SynDEx sans optimisation

2 514 000 1 926 000

optimisation 1 1 788 000 1 686 000

Tétris multi-composants 931 000 874 000

Gain 3 2,1

• Codec LAR sur 2 processeurs

– Div_pic = 2– 239 opérations– 352*288

CODEC LAR processeur 1 processeur 2

SynDEx sans optimisation

2 980 000 2 342 000

Registre 1 959 000 1 759 000

Tétris multi-composants 777 000 785 000

Gain 3,9 3

Application : CODEC LAR

Page 53: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

53

Plan

• Introduction

• SynDEx

• Minimisation mémoire

• Applications

• Conclusions perspectives

Page 54: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

54

Conclusions perspectives :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

Page 55: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

55

Conclusions perspectives :Optimisation mémoire

Algorithme Architecture

Adéquation

Génération de

Code

Mise en place d’une

heuristiquemulti-critère :Algorithme Génétique

Page 56: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

56

Conclusions perspectives :Applications

• Conclusion– Diversité des applications– Complexité des applications

• Niveau de granularité différent

• Perspectives– Intégration d’un décodeur MPEG4-AVC dans un terminal (projet Mobim@ge)– Extension du LAR (LAR vidéo)– Extension de la méthodologie AAA pour des systèmes multi-couches (G.

Roquier)• Alliant vidéo et télécommunications

Page 57: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

57

Page 58: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

58

• Utiliser intelligemment les mémoires suivant l’application– Traitement sur des données en mémoire interne :

Plus rapide qu’avec des données en mémoire externe

• Pour le décodeur MPEG-4 :– Objectif : placement mémoire optimal sur les DSP Objectif : placement mémoire optimal sur les DSP

• Buffers touchant au flux mémoire interne• Buffers image mémoire externe : temps de décodage

Utilisation du QDMAUtilisation du QDMA(accélération des transferts mémoires)(accélération des transferts mémoires)

Application : Décodeur MPEG-4Minimisation mémoire

Page 59: Optimisations Mémoire dans la Méthodologie AAA pour Code Embarqué sur Architectures Parallèles

RAULET Mickaël – 18 mai 2005

INSTITUT D’ÉLECTRONIQUE ET DE TÉLÉCOMMUNICATIONS DE RENNES

59

• Utilisation du QDMA pour le décodeur :– Transferts mémoires externe-interne et externe-externe

• Mémorisation de l’image, recopie dans les buffers de sortie de l’image

Image

Bloc 8x8

Transfert du bloc 8x8dans l’image

Transfert du bloc 8x8 de l’image dans le bloc

Bloc 8x8

Image

Isolement d’un macrobloc dans une image Stockage d’un bloc dans l’image

Application : Décodeur MPEG-4Minimisation mémoire