Co-Conception de Systèmes Spécialisés sur

Transcription

Co-Conception de Systèmes Spécialisés sur
Co-Conception de Systèmes Spécialisés sur Composant
Michel Auguin
Les Algorithmes / Bâtiment Euclide B
2000 route des Lucioles, BP 121, 06903 Sophia-Antipolis Cedex
1
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
2
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Nombre moyen de processeurs enfouis
POURQUOI LA CO-CONCEPTION DE SYSTEMES ENFOUIS (CODESIGN)
98% des processeurs vendus en 1998 équipent des systèmes enfouis
Applications
domestiques
250
Applications
domestiques
200
150
100
Bureau
50
Automobile
1970
1980
1990
2000
[G. De Micheli]
Estimations pour l’année 2003
Téléphone/Fax
Répondeurs
Sécurité
Téléphone mobile
Portes garage
TV, set top box
Jeux vieo
Camescopes
Magnetoscopes
Instruments musique
Jouets
Réfrigérateurs/Fours
Bureau
Automobile
Téléphones
PC
Fax
Sécurité
Imprimantes
Photocopieurs
PDA
Calculateur de bord
Airbags
ABS
Sécurité
Transmission
Climatisation
GPS
Injection
1 milliard de téléphones portables
3
200 millions de PC
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Divergence entre Possibilités d’Intégration et Coûts de Conception
A ce rythme on ne
pourra plus exploiter
les possibilités
de la technologie
coûts trop élevés
4
International Technology Roadmap for Semiconductors (1999)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Spécificités des architectures enfouies
Les systèmes enfouis imposent des contraintes qui conditionnent leur conception :
❏ Faibles marges de coûts (1$ sur un portable)
❏ Contraintes de temps sévères
❏ Consommation d’énergie (portables, PDA ...)
❏ Sécurité (automobile, aviation)
❏ Poids, taille (UMTS vs GSM)
La technologie permet des évolutions rapides des produits
❏ Architecture plus intégrée :
performances augmentées,
coûts de fabrication réduits
❏ Le coût global en vaut-il la peine ?
Vaste choix possibles offrant divers compromis performances/coûts
❏ RISC, DSP, ASIP, ASSP, IP, ASIC, FPGA, Analogique, MEMS
5
DSP 16, 20, 24, 32, 64 bits, Mono/MultiMac, supersclaires, VLIW
❏ Superscalaires & instructions SIMD (stations de base UMTS ?)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Les architectures des systèmes enfouis évoluent
A320
A340
1992
1982
1987
Composants numériques
77
102
115
Taille du code embarqué
4 Mo
10 Mo
20 Mo
60 MIPS
160 MIPS
250 MIPS
Puissance de calcul
20
106 dollars
DSP
16 bits
8 bits
Les solutions architecturales évoluent 10
2
1990
Dilemme du concepteur :
Architecture Généraliste ou Spécialisée ?
Spécialisation
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
4 bits
µcontrôleurs
Exemple : Avions Airbus
A310
2000
Meilleur rapport coûts/performances
Energie, poids, taille optimisés
Coût de conception augmentés
Flexibilité réduite
Réutilisation réduite
Correction d’erreurs coûteuse
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
6
Application,Technologie et Architecture évoluent,... et les Méthodes de Conception ?
Evolution des méthodes et outils de conception :
❏ Systèmes hétérogènes (RISC, DSP, ASIC, ASIP, IP)
❏ Réutilisation
❏ Exploration de solutions architecturales
SANS OUTIL DE CO-CONCEPTION
❏ Vérification et test
Effort de Conception ($)
Time to Market
AVEC OUTIL DE CO-CONCEPTION
Réduction de l’effort
de conception ($).
Effort de Conception ($)
Time to Market
Construction de
plusieurs solutions.
Coût (mm2)
Coût (mm2)
7
Performances (µs)
Performances (µs)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Méthode d’aide à la conception : Quelle architecture, Quelles caractéristiques ?
Quel type de bus ?
Dédié, standard ?
I/Os
MPEG
DSP
Bus de données
Existe t-il un IP
MPEG2 ?
DSP VLIW ?
Quel type de DSP ?
Choix dépend des traitements
Traitements dépendent du choix du DSP
RAM
Off-core
RAM
Taille de RAM On-core / Off-core
Répartition données/code
Contrôle
Décodeur
Audio
Cache
Faut-il un décodeur spécifique ?
Exécution sur DSP ? Contrôleur ?
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
RAM
Quel processeur : ARM7, SH4 ?
Vitesse de l’IHM ?
Cache ? Quelle taille/gestion ?
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
8
Méthode d’aide à la conception : Quelle répartition des traitements
Tuner
QAM
Demod
Cond.
Access
MPEG2
Demux
Decrypt
Channel
QPSK
Tuner
QPSK
Demod
TV
MPEG2
Video
Decod
NTSC
Encod
AC3
Audio
Decod
Audio
Interf.
Control
Transport
Processing
User
Interface
Applis.
QPSK
Mod
I/Os
Dépendance Architecture/Traitements
Bus de données
MPEG
DSP
RAM
Off-core
RAM
Contrôle
Décodeur
Audio
Cache
RAM
9
Les contraintes sont vérifées ?
Les objectifs sont atteints ?
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Flot classique de co-conception
Sélection types et nombres des
unités de traitement Hw & Sw
Partitionnement
Allocation des fonctionnalités
sur les unités
Ordonnancement
Sélection et synthèse des
supports de communication
SW
Génération
de code
temps réel
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Synthèse des interfaces
Hw et Sw
HW
Synthèse VHDL
Contraintes temporelles, consommation, surface
VERIFICATION
Spécification
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
10
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
11
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
MODÉLISATION DES APPLICATIONS
Spécification initiale
Avant tout : Modéliser
Validation
Transformations
Raffinements
Spécification
Langage ?
Modèle ?
Validation
Transformations
Raffinements
Spécification
Processus Top-Down de Conception
Spécification d’implémentation
Validation
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
12
Les applications sont hétérogènes : Approche pragmatique
❏ Utiliser un langage adapté en fonction du niveau de spécification
(e.g. VHDL pour décrire un système matériel niveau RTL)
❏ Mais changer de modèle dans le processus de conception peut poser des difficultes.
Exemple :
Modèle réactif synchrone
Temps implicite (événements)
Modèle abstrait
Preuves de
propriétés
Sémantique ?
Synthèse
Temps explicite
Evénements estampilliés
Modèle de description
du processus physique
Modèle VHDL
Simulation
Placement/Routage
13
Modèle d’implémentation
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Les applications sont hétérogènes et parallèles. Comment les prendre en compte ?
Sous-système 1
Langage 1
Transformations
Représentation
interne
Sous-système 2
Langage 2
Transformations
Représentation
interne
Optimisation - Validation
La spécification est décomposée en sous-systèmes (manuellement)
Optimisation - Validation
Optimisation - Validation
Approche “langage”
Sous-système n
Langage n
Transformations
Représentation
interne
Environnement de validation : cosimulation
Cosimulation C - VHDL
Cosimulation Assembleur (ISS) - VHDL
❏ Aucune optimisation globale : optimisations par sous-système (dépendant langage)
❏ Nécessite de décrire précisément les communications et les interfaces
❏ Les migrations éventuelles entre sous-systèmes ne sont pas aisées
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
14
Approche “modèle”
Sous-système 1
Modèle 1
Optimisations
Optimisations
Validations
Sous-système 2
Modèle 2
Optimisations
Sous-système n
Modèle n
Optimisations
Environnement d’acceuil (modèle)
Outils de conception
Transformations
par modèle
Cosimulation
❏ Optimisations locales et globale
15
❏ Exploration de l’espace de conception plus aisée
❏ Les communications et interfaces sont décrites de manière plus abstraite
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Modélisation d’une application hétérogène
❏ Quel(s) modèle(s) pour décrire la spécification initiale ?
Ce choix est guidé par plusieurs considérations, par exemple :
• Type de traitements dans l’application
• Possibilité d’exécuter ou d’animer le modèle
• Disponibilité et efficacité des outils d’analyse et de synthèse
Preuve formelle de propriétés - Simulation - Synthèse/Compilation
• Possibilité de décrire des spécifications non-fonctionnelles
• Intégration dans un processus complet de conception (sans rupture)
Verticale
Les raffinements par transformations
ne nessécitent pas de changements
de modèles qui impliquent le concepteur
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Horizontale
Possibilité d’effectuer des vérifications
entre plusieurs modèles décrivant
différentes parties du système
(par exemple temps continu et temps discret)
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
16
Choix du modèle de spécification en fonction du type de l’application
Classiquement les concepteurs considèrent qu’un système est dominé :
Par le contrôle
Réactions à des événements discrets :
Pas d’hypothèse sur l’occurence des événements
Tous les événements doivent être pris en compte
Systèmes à événements discrets
Systèmes réactifs synchrones
Machine d’Etats Finis
Réseaux de Petri
Processus concurrents
Contrôle/Commande de processus
Par les données
Les sorties sont fonctionnellement dépendantes des entrées :
Kahn Process Networks
Dataflow Process Networks
Les occurences des valeurs sur les entrées sont périodiques
17
Traitement du signal et des images
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Langages associés aux modèles
Systèmes réactifs synchrones
Esterel, Lustre, Signal, ECL
Systèmes à événements discrets
VHDL, Verilog
Machine d’Etats Finis
*Charts (StateCharts, ...)
Processus concurrents
CSP, Occam, Lotos
Dataflow Process Networks
Kahn Process Networks
Dynamic Data Flow
Synchronous Data Flow
Approche objet
Java, C++, OO-VHDL
Codesign Finite State Machine
SDL (Standart de l’ITU)
Exemple d’outils associés:
VCC de Cadence : asynchronisme des CFSM, C, C++, ECL
CoCentric de Synopsis : SystemC - Classes C++ pour décrire réactivité, processus concurrents
CoWare : Classes C++ pour décrire des processus concurrents (RPC)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
18
Environnements pour applications hétérogènes
Un seul modèle de calcul est insuffisant pour décrire toute l’application
Deux approches proposées :
Langage et sémantique pour
accueuillir différents
modèles de calcul
Plusieurs modèles de calcul intégrés
dans un même environnement
ROSETTA
Projet de l’initiative SLDL
System Level Description Language
http://www.inmet.com/SLDL/
PTOLEMY
VHDL-AMS
Systèmes réactifs synchrones
Machines d’Etats Finis hiérarchisées
Processus communicants
Dataflow Process Networks
Systèmes à événements discrets
SPW, COSSAP, CoWare, Matlab
19
Hormis les techniques à base de cosimulation, il n’existe pas actuellement
de méthodes de conception unifées qui opèrent sur une description hétérogène.
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conception verticale par domaine (modèle de calcul)
Approche traditionnelle :
Décomposition en sous-systèmes et conception verticale
Processus
de conception
Niveaux d’abstraction
Vérification des erreurs intra-domaine
Implémentation
Intégration
Domaine
1
Domaine
2
Domaine
3
Domaine
4
Vérification des erreurs inter-domaine :
❏ Intégration explicite : communications inter-domaine
❏ Cosimulation
[www.vptinc.com]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
20
Evolution souhaitée des méthodes de conception
Approche intégrée :
L’environnement permet des raffinements “sans coutures”
Processus
de conception
Niveaux d’abstraction
Vérification des erreurs intra-domaine
Implémentation
Intégration
Domaine
1
Domaine
2
Domaine
3
Domaine
4
Vérification des erreurs inter-domaine :
❏ Communications inter-domaine : types prédéfinis
❏ Vérifications sémantiques
21
[www.vptinc.com]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Représentation d’informations non-fonctionnelles.
La description d’un système : comportement + informations non fonctionnelles
par exemple des contraintes : temps, surface, consommation, time-to-market...
Exemple dans la norme de communication Bluetooth
❏ Temps d’exécution global à considérer = 312,5 µs,
c.a.d. une demi-fenêtre : 2 paquets peuvent être produits
par fenêtre de 625 µs.
❏ Contrainte sur la partie bande de base :
321,5 - (Tvco + Tpower_up + Tuncertainty_window + Taccess_code)
❏ Consommation et surface minimum, coût réduit
Plusieurs modèles ou langages sont étendus pour décrire des contraintes
Exemple 1 : Langage ROSETTA (SLDL)
Types physiques et opérations associées : spécification des contraintes
Un système = composition de facettes : contraintes du système
22
Exemple 2 : Modéle SPI, Single Model with Intervals (Université de Braunschweig)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
En SPI un système est un ensemble de processus communicants
Communications par :
FIFO : lecture destructive, écriture non-destructive
Registre : lecture non-destructive, écriture destructive
latp1
r1
P1
Ap1
latc1
s1
C1, C2
latp2
r2
C1
dc1,init dc1
P2
latx : temps de latence
s2
dx : nombre de jetons
Ap2
sx : jetons produits
C2
Ax : règle d’exécution
rx : jetons consommés
P1 : Si m1,1 ^ C2.tag = y
Les jetons peuvent être étiquetés (tag)
Les processus : différents modes (mi,j)
alors m1,2 ; s1= 2; C1.tag = z ; latp1=3ms
P2 : Si m2,1 ^ C.tag = z
alors m2,2 ; s2= 1; C2.tag=y; r2=1; latp2 = 1,5ms
23
Contraintes temporelles : LC (C1,C2) = [latmin,latmax]
Analyse statique des séquences possibles d’exécution (recherche de cas pire)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
24
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
ARCHITECTURES ENFOUIES
Les méthodes de codesign ciblent généralement des systèmes embarqués/enfouis (SOC)
Ces systèmes impliquent des contraintes :
Mais il faut aussi privilégier :
produits largement diffusés : coûts réduits
la réutilisation
contraintes temporelles strictes
la flexibilité : modifications tardives,
corrections d’erreurs
consommation d’énergie
taille, poids
sûreté de fonctionnement (e.g. aéronautique)
MOPS/mm2
MOPS/mW
MOPS/kg
Flexibilité
Performance
Architecture
complètement
spécialisée
Architecture
usage général
25
Recherche de compromis
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Très grande diversité des composants
❏ Les systèmes embarqués deviennent de plus en plus complexes.
Le nombre de cœurs de processeurs dans un SOC de 1996 à 1998 chez IBM :
1996 : 2 en moyenne, 3 max
1998 : 9 en moyenne, 30 max
❏ Grande variété de composants disponibles :
Cœurs de processeurs
Fonctions logicielles
Fonctions matérielles (ASIC)
Bus standardisés
IP: Intellectual Property
ASIP : Application Specific Instruction-set Processor
ASSP : Application Specific Standard Product
Microcontroleurs
RISC
DSP : Digital Signal Processors
26
Composants reconfigurables
SPGA : System Programmable Gate Array - FPGA + IP)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
ASIP et ASSP
ASIP : Application Specific Instruction set Processor
❏ Processeur spécialisé à l’exécution d’une (ou quelques) application (par exemple Modem)
❏ Jeu d’instruction et ensemble des ressources adaptés à l’application
❏ Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP
❏ Mais compilateur plus délicat, time-to-market plus long qu’avec des processeurs standards
ASSP : Application Specific Standard Product
❏ Composant complexe qui réalise une fonction spécifique (compression vidéo, modem)
❏ ASSP et interface standardisée : IP
27
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Les Processeurs embarqués RISC
Grande variété de processeurs RISC disponibles sous forme d’IP (ARM, Hitachi, MIPS, LSI Logic)
Exemple : RISC 32 bits de Advanced Risc Machines (ARM) : Famille ARM7 : 3 étages de pipeline
Surface
ARM7TDMI
0,54
ARM7TDMI-S
synthétisable
ARM7720T
0,8
mm2
Puissance
Horloge
MIPS
Cache
0,25mW/MHz
110 MHz
59 MIPS
-
-
-
-
8k unifié
mm2
2,9 mm2
0,65 mW/MHz
75 MHz
ARM7TDMI : Thumb Instruction Set
Compression sur 8 ou 16 bits d’une partie des instructions 32 bits
Décompression à l’exécution
Espace mémoire
réduit de 30%
Famille ARM9 : 5 étages de pipeline
2,7 mm2, 1,8 mW/MHz, 160MHz, 176 MIPS en 0,25 µm
28
Processeurs disponibles sur le Web : OpenCore, Leon
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Processeurs embarqués RISC et mémoire cache : recherche de compromis
Choix des vitesses relatives
cache/mémoire
Performance des caches
Surface
Taux de “hit”
Mémoire rapide
Cache
Taille de cache
Temps
accès
DRAM
Mémoire lente
Taille de blocs
surface du cœur
Surface totale
solution avec mémoire rapide
et cache petite taille
Taille mémoire
Application
Taille
Quelle taille et quelle gestion de cache pour optimiser :
Performances
Performances
mm2
mW
29
2
Surface cœur ARM720T : 0,54 mm
Surface cache 8K octets : 2,3 mm2
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Les processeurs de traitement du signal DSP
Il existe de nombreux constructeurs : nombreux DSP et leurs variantes chez chacun d’eux
DSP virgule fixe 16
bits
DSP568xx, C54x, ADSP21xx, OakDSP,
DSP16xx, Carmel, PalmDSP
Les plus communs.
(Télécom. embarqué)
DSP virgule fixe 20
bits ou 24 bits
DSP563xx, PalmDSP
Applications audio
DSP virgule fixe et
flottante
TigerSharc
Calcul intensif, précision
DSP flottant
ADSP2106x, C30,C40
Précision
DSP superscalaire
TigerSharc (4) , StarCore (6)
Calcul intensif
DSP VLIW
C62xx, C67xx (8), TriMedia (5), REAL (instructions ASI), Carmel (instructions CLIW)
Calcul intensif. Traitement //
sur octets
DSP flexible
REAL (unités AXU)
Unités fonct. dédiées
DSP hybride
Tricore, ST100
Applications diverses
Un DSP peut étre particulièrement adapté à un type d’application (exemple : DSP56009, TMS320C54x)
Les performances des DSP peuvent varier significativement :
exemple : localisation des données en mémoire, localisation du code
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
30
Les performances des DSP sont très variables
Mesure de performance
des DSP : BDTImark™
Source:
Berkeley Design Technology, Inc.
Temps exécution de 12
applications test
(pas de compilation)
Mesure de performance
Performances très variables
Choix DSP important
31
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Un système : ensemble d’unités interconnectées
L’interconnexion devient un problème crucial dans la conception de circuits complexes
“Interconnect performance bottleneck”
Les constructeurs de SOC s’orientent depuis quelques années vers l’utilisation
de bus génériques : protocoles de transferts de données bien définis.
Exemple la proposition AMBA de ARM : Advanced Microcontroller Bus Architecture
Bus Système : AHB ou ASB
bus rapide, multi-maître, transferts pipelines ou en mode burst,
priorité sur les transferts
Bus Périphérique : APB
bus adapté à la connexion de périphériques “lents”,
non-pipeline, pas de priorité, optimisé en consommation
Interfaces entre bus : Bridges
La conception d’interface de communication est réduite
32
Les temps de communication dépendent des bus et des modes de transfert utilisés.
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Système d’exploitation temps réel embarqué
Cond.
Access
QAM
Demod
MPEG2
Demux
Decrypt
Channel
QPSK
Demod
AC3
Audio
Decod
Audio
Interf.
Control
Transport
Processing
User
Interface
Applis.
τ2
QPSK
Mod
on/
Autentification
Set-top-box
s1
F
τ3
τ6
Alert
a/c
Tmax(τ5)
T
T
τ1
Select
QPSK
Tuner
NTSC
Encod
Switch
Tuner
TV
MPEG2
Video
Decod
τ4
τ5
F
c
of/
s2
a/c,b
a/c
¬a
a
s2
s2
¬a/b
s1
Start Menu Message
¬a/c
s2
¬a
Stop
Hétérogénéité des traitements :
Ensemble de tâches ayant leurs propres
caractérisitques et leurs propres contraintes temporelles
33
Pay
Interactive
Services
Play
FFw
Rw
Video
on Demand
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Pause
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Gestion des tâches par exécutif temps réel (RTOS)
Le comportement du système dépend des caractéristiques du RTOS
Non préemptif
p1
ou préemptif ?
p2
p1
p2
t
t
Ordonnancement statique ou dynamique ?
❏ ordonnancement dynamique : actuellement peu ou pas d’analyse du comportement global
❏ ordonnancement statique : quel politique ? Rate monotonic, Earliest Deadline First, ...
Pb de l’nversion de priorité
Priorité (p1) > Priorité (p2)
p1 & p2 : ressource commune R
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
p1
34
p2
t
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Changement de contexte entre deux tâches : consomme du temps
Choix de la granularité des tâches, choix des événements
Ordonnancement avec réduction de la consommation d’énergie
Passer de actif <-> mise en veille d’un processeur nécessite du temps
on
Processeur1
Processeur2
1
on
off
2
3
on
off
4
5
on
Processeur1
1
on
off
2
3
Processeur2
5
4
Ordonnancement monoprocesseur ou distribué ?
Analyse comportement global avec ordonnancement distribué : plus délicat
Peu de vérification de propriétés : exemple toutes les tâches vérifient elles leur deadline ?
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
35
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conclusion sur les architectures
❏ Concevoir les architectures embarquées à partir des composants les mieux adaptés
vis à vis des traitements à éxécuter
❏ Objectifs : globalement performances, consommation, time-to-market,... sont optimisés
❏ Hétérogénéité et évolution des composants : microcontroleur, DSP, ASSP, ASIP
Stations de base UMTS : DSP VLIW ou multi-MAC ou superscalaire + SIMD ?
Portable UMTS : RISC + DSP basse consommation + reconfigurable + accélerateurs HW
Migration progressive des accélérateurs dans le chemin de données du DSP
❏ Des constructeurs proposent des architectures mixtes
Philips/VLSI Technology VVS3771 : ARM7TDMI + OakDSPCore
Motorola DSP56651 : RISC M-CORE + DSP56600
❏ Optimiser l’organisation et l’utilisation de la mémoire des composants
La mémoire sur le composant : rapide mais coûteuse en surface
Accès en mémoire externe au composant : moins cher mais plus lent et plus coûteux en énergie
Défaut de cache : consomme environ 6 fois plus d’énergie qu’une opération ALU
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
36
❏ Manque d’efficacité des compilateurs pour les processeurs DSP, ASIP
Evolutions ? architecture plus régulière, progrès en compilation
Spécialisation diminue : performances/mm2 diminue aussi
❏ Le comportement global dépend de l’exécutif temps réel (RMS, EDF, ...)
❏ Adéquation Algorithme/Architecture
Choix des couples <fonctions, composants>
Algorithme plus rapide sur composant plus lent ?
❏ Devant la diversité des solutions, choisir les composants d’un système est délicat
❏ Est-ce que le système va satisfaire les contraintes temporelles de l’application ?
❏ Peut-on trouver une solution plus optimisée en surface, en consommation ?
❏ Le time-to-market est-il allongé ?
❏ L’architecture est-elle aisément testable ?
❏ Est-elle flexible pour supporter des corrections d’erreurs, des évolutions ?
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
37
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
38
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
ESTIMATION LOGICIELLE ET MATÉRIELLE
Pour guider le choix des composants et l’allocation des traitements il faut connaître les
caractéristiques de mise en œuvre des traitements sur ces composants.
Traitement
Composant
Temps exécution
Modèle d’implantation
Surface, Taille mémoire
Consommation
Deux cas :
❏ Modèles d’implantation connus :
IP précisément caractérisés
Code optimisé disponible
Cas pire identifié
❏ Modèles d’implantation non disponibles:
On fait le pari que cela va marcher
On utilise des techniques d’estimation
performances, consommation, surface
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Estimation Logicielle
39
Estimation Matérielle
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimation logicielle
L’estimation logicielle est très utile pour les DSP :
❏ Les taux d’expansion des compilateurs pour DSP sont très variables (de 1 à 50 )
❏ Il existe une grande variété de DSP, le choix du DSP est sensible
Estimation par compilation/exécution-simulation
Code source
Compilation
Séquence
de test
❏ Temps d’exécution :
Tailles code, variables
Exécution
Mesures
Simulateur
niveau instruction
Processeur hôte
avec annotation
CFG - code source
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Temps exécution
Cas pire ?
❑ thérorique
❑ pratique
❏ Mesure en simulation :
plusieurs heures/jours
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
40
Estimation du temps d’exécution maximum : Approche par programmation linéaire
[Malik 95]
Flux entrant = Flux sortant
d1
x1 = d1 = d2
x2 = d2 + d3 = d4 + d5
x3 = d5 = d6
x1
i=0
d3
d2
While i<nb_pass x2
d5
j=0
d4
x3
d7
d6
While j<nb_grp x4
d8
x1.c1 + x2.c2 + ... + x9.c9 Maximum
d9
x5 nb_grp=nb_grp*2
i++
Contraintes
structurelles
x8 = d12 = d7
x9 = d13 = d11
x2 = nb_pass * x1
x4 = nb_grp * x3
x7 = nb_btfl * x6
k=0
(ci = nb cycles pour exécuter le bloc i)
x6
d11
Surestimation de 500% pour N = 1024
d10
x7 While k<nb_btfl
d12
d13
x8
nb_btfl=nb_btfl/2
j++
Ajout de 2 contraintes :
nb_grp * nb_btfl = N/2
x6 = N * x1
x9 k++
nb_pass = log2(N)-1
nb_grp = N/2 -1
nb_btfl = 1
Contraintes
fonctionnelles
On obtient les valeurs des xi correctes
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
41
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimation avec cache d’instruction
[Malik 95]
Exemple avec 3 blocs de base
Bloc
B1
B1,1
B1,2
B1,3
B2,1
B2,1
Lignes de
cache
Ligne de
cache
Bloc
B2
Blocs de base
0
B1,1
B3,1
1
B1,2
B3,2
2
B1,3
Conflits
B2,1
B2,1
3
Contraintes supplémentaires
Bloc
B3
hit
B3,1
pi,j;i,j = xi,j
s
B3,2
p1,3;1,3
ps;1,3
ps;2,1
p2,1;1,3
B1,3
p1,3;e
B2,1
p1,3;2,1
e
p2,1;e
p2,1;2,1
xi = Σ pu,v;i,j = Σ pi,j;u,v
u,v
pi,j;u,v ≤ min(xi,xu)
Σ ps;u,v = 1
u,v
42
La méthode suppose les valeurs des ci connues.
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimation logicielle : Estimateur reciblable
Code source
[Malik 95]
Séquence
de test
Valeurs des xi
Compilation
+ exécution
des contraintes
fonctionnelles
“constantes”
Analyse
statique
ILP Solver
Valeurs
des ci
Estimateur
Recyblable
des ci
Description
Processeur
Estimations
[Ernst 97]
[Pegatoquet 99]
[Ghazal 00]
43
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimateur reciblable: VESTIM (I3S - Philips Semicondutors Sophia)
Code C
Compilateur pour DSP basé sur GNU C
Génération
Représentation intermédiaire
(RTL)
Traitements générés
inutiles
Optimisation des boucles
Opérations arithmétiques
sur adresses dans
boucles régulières
Analyse flots de données
Décalage de 1 après
multiplication
Décalage pour accéder
partie haute d’un mot
Allocation des registres
Spilling : cause d’environ 30%
du taux d’expansion.
Ordonnancement instructions
44
Code Assembleur
[Pegatoquet 99]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimateur reciblable : VESTIM
Description RTL du code
Représentation par CFG / DAG
Orientée “RISC”
Règles de réécriture
suppression traitements inutiles
Représentation DAG
Orientée “DSP”
Description
processeur cible
List Scheduling
Annotation par priorité
Opérations exécutables en //
➪ même priorité
Ordonnancement
Allocation
Description macroscopique
Estimation
xi*ci
Seules les ressources utiles
à l’estimation
e.g. registres abstraits
45
Ordonnancement au niveau opération (adapté aussi aux DSP VLIW, multi-MAC)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Estimateur reciblable : VESTIM
Demi-papillon de la FFT
MAC
Val
XRam
Const
5
CG
@indirect
5
Val
XRam
Align
4
Mpy
3
4
P
Val
YRam
Val
XRam
Mpy
Shft
Add
ALU
3
MAC
1
Shift
3
Bit
Op.
ACC
2
Y
MPY
P
Add
3
X
@indirect
@indirect
Add
Const
Bus Y
Bus X
4
4
5
ACC
3
Val
YRam
3
Mux
A0
A1
Sub
Assign
XRam
1 Assign
YRam
ACC : A0 ou A1
OakDSPCore
46
List-scheduling avec insertion en-tête
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Résultats d’estimation
Nb lignes de code
C
(x 1000)
Code ASM
optimisé
(MIPS)
Code ASM
généré
(MIPS)
Code estimé
(MIPS)
Durée
Encodeur G728
1,1
23
62,3
26,7
2s
G729
5,6
12,2
21
15,7
1,5 mn
G723.1
2,7
23,5
32
22
2 mn
Décodeur audio AC3
4
39,5
75
32
1 mn
Modem V22bis
19
4
10
5,2
1s
Les estimations d’un code assembleur optimisé sont précises
L’architecture reste assez simple (pas de cache, parallélisme ILP intra-bloc de base)
47
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conclusion sur l’estimation
La complexité des architectures rend difficile le problème de l’estimation
Estimation logicielle :
Aléas de pipeline, lancement dynamique des instructions, superscalaire
Hiérarchie mémoire : caches, répartition des données
Système d’exploitation, communications (DMA)
Des approches existent pour des cas simples
Approche pratique : mesures sur l’architecture elle-même : développer le code
Estimation matérielle :
Estimation temps à opérateurs connus ou estimation opérateurs à temps fixé
Influence du placement/routage, influence de la technologie
Approche IP caractérisé avec précision : disponibilité ? (e.g. rake receiver UMTS)
Et pourtant avec des estimations précises, la conception devient plus simple et rapide
Au LESTER : Estimation hiérarchisée
48
Estimations systèmes : caractérisation macroscopique
Estimation architecturale : caractérisation détaillée
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
49
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
PARTITIONNEMENT
Sélection types et nombres des
unités de traitement Hw & Sw
Partitionnement
manuel/interactif
automatique
Allocation des fonctionnalités
sur les unités
Ordonnancement
Sélection et synthèse des
supports de communication
Réduction difficulté
par utilisation d’IP
Synthèse des interfaces
Hw et Sw
HW
Synthèse VHDL
SW
Génération
de code
temps réel
Contraintes temporelles, consommation, surface
VERIFICATION
Spécification
ESTIMATIONS
Flot classique de conception
Problème peu abordé
(temps vs surface vs consommation)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
50
Partitionnement manuel : CoWare
Conception de SOC par partitionnement manuel : utilise généralement la cosimulation
Exemple : l’environnement CoWare
Spécification
Simulation fonctionnelle
Processus concurrents (RPC)
C/C++
Architecture
Partitionnement
Manuel
Code C
Connexions point à point
Synthèse
Interfaces
Code VHDL
Cosimulation
51
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement manuel : Tima/Arexsys
Environnement de conception à partir de SDL : Specification & Description Language
❏ Standard ITU-T
❏ Langage graphique : Processus communicants, par passage de messages
❏ Description de protocoles
Spécification SDL
Partitionnement Manuel
Architecture
Cosimulation VHDL-C
VHDL
C
C
vhdl2c
Simulateur
Codes C
Allocation HW/SW Manuelle
ASIC
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
µcontrôleur 1
µcontrôleur 2
Cosimulation “cycle true”
Connections de simulateurs
Communications, estampillage
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
52
Partitionnement manuel : exemple l’environnement POLIS (Berkeley)
❏ POLIS : environnement de codesign pour des applications orientées contrôle/commande
Spécification : CFSM
FSM, Esterel
Ptolemy
Co-simulation
Estimations
Partitionnement
manuel
Vérification formelle
VIS, [Balarin-99]
Spécification partitionnée
Synthèse Hw
Synthèse Sw
Synthèse
interfaces
Représentation
interne
S-graph
Synthèse OS
FSM
Code C des tâches
Hw optmisé
53
Code C global
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Modèle CFSM de POLIS
1) Un module : Machine d’état étendue
événement = <valeur,instant d’occurence>
2) réseau de modules (avec partitionnement)
localement synchrone, globalement asynchrone
Wait
Key =On =>
Start
End = 5 =>
Alarm = On
M2
Key =Off or
Belt = On
Alarm
OFF
End = 10 or
Belt = On or
Key = Off =>
Alarm = Off
M1
Synchrone
HW
M3
Comportement réactif synchrone
Vivant
3) Analyse de l’ordonnançabilité
Etimations temps exécution
Politique d’ordonnancement
Ensemble de contraintes temporelles
Aucun événement perdu ? [F. Balarin]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Polling
IRQ
Gelé
SW
RTOS : RMS, EDF
54
Réseau de Modules : outil VCC de Cadence
Description d’un Module : C, C++ ou ECL
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conception manuelle vs cosimulation vs partitionnement
SANS OUTIL
Effort de Conception ($)
COSIMULATION
PARTITIONNEMENT AUTOMATIQUE
EXPLORATION ESPACE CONCEPTION
Effort de
Conception ($)
Effort de
Conception ($)
Coût (mm2)
Performances
Performances
Performances
Effort de conception
Réduit ($).
Construction de
plusieurs solutions.
Effort de conception
Réduit ($).
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
55
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement automatique : nombreuses techniques proposées
Comparaisons de quelques techniques
Modèle/Granularité
Architecture
Objectif
Technique
Contrôle
Nombre
solutions
COSYMA [Ernts 93]
C étendu/Instruction
Figée: 1 proc. 1
Asic
Temps
Recuit Simulé,
SW -> HW
nonpréemptif
compile time
1
Vulcan [De Micheli 94]
C/Instruction
Figée: 1 proc. 1
Asic
Temps
HW -> SW Glouton
nonpréemptif
1
GCLP [Kalavade 94]
DFG/Tâche
Figée: 1 proc. 1
Asic
Temps/Surface
List scheduling
modifié
nonpréemptif
compile time
1
[Vahid 97]
C/Fonction
Figée: 1 proc. 1 Temps/Surface/
Asic
IO
Min Cut
nonpréemptif
compile time
Exploration
[Teich 97]
C/Fonction
Algorithme génétique
?
Exploration
COSYN [Dave 97]
Graphe de tâches
Clustering
préemptif/nonpréemtif
1
[Karkowski 98]
[Kuchcinski 99]]
C/boucles
multi-ASIP
Temps/nb proc.
Enumération
séquentiel
Exploration
DFG/Tâche
SOC
Temps/Surface
Prog. par contraintes
compile time
Exploration
[Li 00]
SynDEx [Sorel]
C/boucles
1 proc. 1 FPGA
Temps
Clustering
compile time
1
DFG/Tâche
multiprocesseur
Temps
List Scheduling
modifé
nonpréemptif
compile time
1
[Oh 99]
[Wolf 95]
SOC
Temps
Multiprocesseur Temps/Consommation
56
Graphe de Tâches
multiprocesseur Temps/Surface Ordonnançabilité
préemptif
1
Graphe de Tâches
multiprocesseur Temps/Surface Ordonnançabilité
préemptif
1
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Méthode développée dans CODEF (I3S - Philips Semiconductors Sophia)
Description de l’application
Graphe de flots de données conditionnels
♦ Architectures candidates
♦ Librairies unités Hw & Sw
♦ Allocation tâches sur architecture
Partitionnement
♦ Contraintes
♦ Ordonnancement des tâches
♦ Paramètres exploration
♦ Architecture prédéfinie
optionnelle
Synthèse
Communications
Spécification
partie matérielle
Spécification
Interconnexion
Spécification
partie logicielle
CODEF opère en deux étapes
♦ Partitionnement/Ordonnancement : exploration de l’espace de conception
♦ Synthèse des Communications : ressources, protocoles pour réaliser les transferts
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
57
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Problèmes : sélection architecture/partitionnement/ordonnancement
Graphe flots de données
A
Allocation et ordonnancement ?
C
D
B
P1
Quelle Architecture ?
coprocesseur
coprocesseur
1
4
5
MPU
P1
B
P2
A
D
C
2
P1
B
P2
A
3
DSP
Eléments architecturaux dans un SOC :
♦ RISC, DSP, coprocesseurs, accélérateurs Hw
♦ Mémoires locales/externes : data & programme
♦ Caches
♦ Ports I/O, caractéristiques des bus ...
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
❷
MPU
MPU
DSP
DSP
D
B
P2
2
1
3
C
MPU
DSP
❶
A
0
C
D
Temps
Contrainte
de Temps
Ordonnancement statique non préemptif
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
58
Modèle de l’application dans CODEF
Graphe de flots de données conditionnels (C-DFG)
c2
B
e0
c3
a,b
A
FSM (node A):
a/c0
e0
¬b^a/c1c2
1
a^¬b/c1c3
a/c3
s1
s2
c4
s3
E
Tmax=1000
F
Tmax=1000
K
Tmax=1000
L
c6
¬a^b/
s1
1
e1
¬a^¬b/c0
2
c3
0
Switch
input
D
C
Switch
s0
¬a/c2
b/c2
1
c1
c0
0
Switch
♦ Exemple :
Select
0
s0
Switch
c1
Tmax=1000
a,b,c4,c5 ,c6: external signals
(c4,c5) ≠ (1,1)
G
s2
Application de traitement du signal
(SPW, Ptolemy)
1
H
s3
J
Switch
e1
Select
Switch
0
2
59
I
Les nœuds des FSM ont la sémantique DFG :
une seule transition à chaque activation du FSM.
c4
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
c5
c6
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Librairies des modèles d’implantation
A
input
b/c2
a^¬b/c1c3
a/c3
2
¬a^¬b/c0
Switch
Tmax=1000
G
1
E
C
0
K
0
Switch
1
D
1
H
J
Switch
¬b^a/c1c2
1
Select
a/c0
0
Switch
FSM (nœud A):
B
Select
Switch
0
¬a/c2
Tmax=1000
c3
c1
c0
2
Switch
a,b
F
Tmax=1000
Tmax=1000
Tmax
L
Contraintes
temporelles
I
c4
¬a^b/
c5
c6
a,b,c4,c5 ,c6: signaux externes
(c4,c5) ≠ (1,1)
♦ Librairies:
Surfaces des cœurs
Sw1
6.66
Sw2
6.35
HwA HwD HwE HwF HwK HwL
2.31 0.59 1.82 1.89 1.91 1.83
Caractéristiques des modèles d’implantation.
Nodes
A
B
C
D
E
F
G
H
I
J
K
L
Sw1
329/1.16
410/1.55
324/0.21
328/1.17
385/0.97
402/0.77
379/0.67
357/1.15
435/0.94
292/0.11
300/1.13
339/0.90
Sw2
409/1.09
250/1.10
188/0.42
458/1.40
346/1.33
318/1.04
283/0.84
432/0.93
407/1.17
264/1.02
371/0.87
257/1.06
HwA
38
HwD
HwE
HwF
HwK
HwL
44
53
74
60
70
69
Temps exécution/surface mémoire. Temps exécution des accélérateurs
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Principe de partitionnement d’un C-DFG
Objectif : Simplifier le problème
C-DFG
Analyse des comportements
Analyse des états et sorties
des FSM
Identification
comportements “critiques”
(DFG)
Quels états doivent être
considérés
Partitionnement des
comportements “critiques”
On se ramène au cas du
partitionnement de graphes
de flots de données
61
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement de graphes de flots de données statiques (DFG)
♦ On considère une heuristique basée sur le List Scheduling
Phase d’Analyse
Analyse
DFG
Phase de Synthèse
Tâches
ordonnançables
• Chemins longueur Minimum et Maximum *
Sélection tâche
la plus critique
Allocation et
Ordonnancement
Mesures globales
• Urgence temporelles des tâches
• Surfaces pondérées des unités
Path Analysis Partitoning Algorithm (PA2)
[Bianco-99]
* Extension de [P. Bjørn-Jørgensen, J. Madsen - 1997]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
62
Phase d’analyse de PA2
♦ Evaluation récursive des longueurs des chemins
∀τi une tâche et ∀ uk une unité (HW ou SW)
pl
 tc
(τ , u ) = t
( τ , u ) + Max  Min
( τ , τ ) + pl
( τ , u ) 

min i k
exe i k
τ j ∈ succ ( τ i ), u l  u k, u l i j
min j l  
Exemple simplifié
1
τ1
Temps d’exécution des
tâches sur 3 unités
1
τ2
τ5
2
5
τ3
Temps de communication
si τ1 et τ5 sont allouées
sur différentes unités
2
τ7
τ6
Chemin depuis τ5
10
τ4
Tâche
τ1
τ2
τ3
τ4
τ5
τ6
τ7
U1
U2
U3
2
4
6
5
3
6
3
1
1
2
3
3
2
1
2
3
3
4
2
3
1
63
plmin(τ5,U1) = 3 + Max(Min((0+6,2+2,2+3),Min(0+3,2+1,2+1)) = 7
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Phase de synthèse de PA2 : Urgence temporelle
♦ Allocation de τ4 sur U3
plmax
τ1
τ2
τ3
τ5
τ4
plmin
Disponibilité
des données
τ6
τ7
U1
τ1
1->3
U2
τ2
2->3 2->4
U3 ..................... τ3
Disponibilité
de U3
Contrainte
Temporelle
Temps disponible
de τ4 sur U3
τ4
Ta(τ4,U3)
plmin(τ4,U3)
Ta(τi,uk) = Max (Disponibilité data, Disponibilité uk)
plmax(τ4,U3)
• Comparaison de Ta(τi,uk) avec plmin et plmax ➱ Mesure de l’urgence de τi sur uk
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
64
Phase de synthèse de PA2 : Surface pondérée
♦ Unités logicielles
Tâche τi allouée sur unité logicielle uk :
Surface fonctionnelle σ(τi,uk)
= Σ des tailles RAM et ROM
Variables de τi
τ3
τ2
τ1
Surface ROM
∑
τ3
τ2
τ1
Code + constantes de τi
σ ( τ i, u k )
tâche τ sur u
i
k
Surface RAM
Surface Pondérée
s ( u ) + Σσ ( τ , u )
k
i k
S ( τ , u ) = ---------------------------------------------i k
β(τ , u )
i k
Surface du cœur s(uk)
65
Facteur de pondération pour tenir compte de la
réutilisation potentielle de uk dans l’intervalle Ta(τi,uk)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Phase de synthèse de PA2 : Algorithme de partitionnement
Ensemble des (τi,uk) / τi ordonnançable
uk existe dans l’architecture
Pas d’urgence
Liste L1reuse
urgence < Treuse
uk est une nouvelle instance
urgence ≥ Treuse urgence < Tnew urgence ≥ Tnew
Liste L2reuse
Listes triées par ordre décroissant de l’urgence
Liste Lnew
Liste Lothers
Listes triées par ordre décroissant de Ω
Selection dans les listes de la meilleure implantation de la tâche la plus critique
66
Ω = α(urgence relative) + (1-α)(surface pndérée relative)
Tnew, Treuse, α: trois paramètre définis par l’utilisateur
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Phase de synthèse de PA2 : Exploration automatique de l’espace de conception
♦ L’algorithme de partitionnement/ordonnancement est récursif
A l’exécution N les variations minimum sur Tnew and Treuse sont calculées
telles qu’à l’exécution N+1 une allocation différente soit réalisée
♦ L’algorithme construit un ensemble de solutions qui correspondent à différentes
répartitions des tâches dans le temps (ordonnancement) et/ou dans l’espace (allocation)
Effort de Conception ($)
Construction de
plusieurs solutions.
Coût (mm2)
67
Performances (s)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement statique : Exemple d’un décodeur audio AC3 (3 canaux)
mantissas (16 bits)
256
256
5 bits
C1
256
4 bits
C2
256
7 bits
Left
256
256
L0
256
L1
R0
256
R1
256
256
18 bits
Coupling
216 G0
216
Exp: Exponent
BA: BitAlloc
G1
3
512
18 bits
R2
216
216
G2
216
18 bits
DM : Decode
Mantissas
C5
256
18 bits
256
L2 18 bits
256
256
Right
256
256
18 bits
4
RX: Rematrixing
C0
DC: Decoupling
Center
256
18 bits
L5
256
18 bits
R5
256
18 bits
256
18 bits
Contrainte temporelle : 1,5 ms
256
18 bits
ITDAC
Temps d’execution(µs), ROM (octets), RAM (octets) des tâches
Unités:
2 processeurs P1, P2
1 accelérateur HW
Unité
Surface Cœur
P1
11 mm2
P2
mm2
HW
5
3.5 mm2
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Processeur P1
Processeur P2
Exp
Sw: 69 / 774 / 258
Sw: 81 / 920 / 258
accelérateur HW
-
BA
Sw:532 / 1092 / 200
Sw: 589 /1680 /200
Hw: 73 / 0 / 0
Sw+coprocessor: 197/800/200
DM
Sw: 237 / 274 / 150
Sw: 213 / 392 / 150
-
DC
Sw: 47 / 120 / 48
Sw: 52 / 190 / 48
-
RX
Sw:10 / 20 / 0
Sw: 13 / 42 / 0
-
ITDAC
Sw: 130 / 776 / 384
-
-
Sw+coprocessor: 31 /311/384
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
68
Résultats de l’exploration de l’espace de conception
Temps
Exécution
Contrainte temporelle
50 solutions générées en 3 s
(Sun Ultra 5)
Area
P1 + itdac copro. + HW
P2 + P1 + itdac copro. + BA copro.
P1
P1
2xP1 + itdac copro. + BA copro.
P1#1
69
HW
P1#2
P2
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Exemple d’optimisation interactive
Tâche DM
Rom: 512 octets
copro.
Itdac
off-core
Ram: 256 octets
P1
HW
P2
Mémoire de
communication
256 octet
Input
Application
Architecture
Prédéfinie
CODEF
Architecture
Suppression P2
Output
P1 + P2 + itdac copro. + HW
P1 + HW + itdac copro.
P1
P1
P2
HW
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
70
HW
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conclusions sur le partitionnement statique
♦ L’algorithme de partitionnement prend en compte :
❏ Unités logicielles, matérielles, Coprocesseurs, Accelerateurs matériels
❏ Mémoire cache (L1) des processeurs (modèle simple)
❏ Mémoires RAM/ROM locales ou externes des processeurs
❏ Répartition des données et programmes dans les hiérarchies mémoires (glouton)
❏ L’architecture prédéfinie optionnelle peut contenir :
- Instances d’unités HW & SW
- Allocations de tâches à ces instances
- Hiérarchie mémoire des processeurs,
- Interconnexion
♦ Mais partitionner un C-DFG avec PA2 peut être inefficace (surface, consommation)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
71
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Exemple d’inefficacité : le C-DFG considéré comme un DFG
A
E
F
Sw2#2
C
0
G
1
Switch
D
Switch
Select
B
1
Tmax=1000
Select
1
Tmax=1000
G
B
Sw2#1
H
Sw2#0
I
E
J
C
L
F
K
0
Switch
input
Switch
Switch
0
Tmax
Unit
Tmax=1000
c3
c1
c0
H
Tmax=1000
J
Switch
a,b
2
HwA
L
HwD
I
c4
c5
c6
HwK
200
400
600
800
1000
Temps
♦ Architecture résultat : Sw2, Sw2, Sw2, HwA, HwD, HwK.
♦ L’exécution systèmatique de tous les nœuds n’est pas nécessaire à chaque itération
72
Architecture surdimensionnée
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement de graphes de flots de données conditionnels (C-DFG)
♦ Par rapport à un DFG, seuls les nœuds autorisés par les contrôles
doivent être exécutés dans un C-DFG
♦ On considère une approche incrémentale de partitionnement :
Détermination des états de l’application
Réduction aux états premiers
Analysis globale des états premiers
urgence temporelle : ordre
sélection d’une architecture initiale
73
Partitionnement incrémental des états premiers
[Capella-00]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Analyse des états de l’application
♦ De l’analyse des états et des sorties des FSM on déduit :
E6:
Etats
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
E0:
c0,...,c6
1---000
1---001
1---010
1---011
1---100
1---101
0000--0001--0010--0101--0110---
a,b
sous-graphes
AGJK
AGJKL
AHJK
AHJKL
AIJK
AIJKL
ABDEF
ABDE
ABDF
ACDE
ACDF
E2:
G
J
E1:
H
J
A
Tmax=1000
E3:
a,b
input
Tmax=1000
A
B
D
E
K
input
H
Tmax=1000
J
a,b
E8:
E9:
A
II
A
Tmax=1000
input
J
a,b
B
D
F
A
Tmax=1000
Tmax=1000
input
K
a,b
L
c4, c5, c6
Tmax=1000
E5:
a,b
input
C
D
K
E
Tmax=1000
A
J
Tmax=1000
L
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
74
K
input
c4, c5, c6
a,b
c4, c5, c6
A
G
Tmax=1000
D
F
E7:
K
input
B
K
c4, c5, c6
c4, c5, c6
a,b
Tmax=1000
A
E
input
input
Tmax=1000
input
a,b
A
Tmax=1000
E4:
A
a,b
II
c4, c5, c6
J
Tmax=1000
E10:
a,b
A
Tmax=1000
L
input
C
D
F
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Réduction des états de l’application : les états premiers
Remarque :
♦ Si une architecture respecte les contraintes temporelles pour un DFG,
elle les respecte aussi pour tout sous-graphe de ce DFG.
L’approche statique est basée sur cette remarque.
♦ On ne considère que les états premiers pour déduire l’architecture finale :
Un état premier est un état non inclus dans tout autre état de l’application.
Etat inclus
E0:
Etat premier
.
E1:
a,b
a,b
A
Tmax=1000
A
K
Tmax=1000
input
G
J
input
K
G
Tmax=1000
J
L
c4, c5, c6
c4, c5, c6
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
75
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Etats premiers de l’exemple
Etats
c0,...,c6
Sousgraphes
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
1---000
1---001
1---010
1---011
1---100
1---101
0000--0001--0010--0101--0110---
GJK
GJKL
HJK
HJKL
IJK
IJKL
BDEF
BDE
BDF
CDE
CDF
E0:
a,b
Etat
englobant
E1
E6:
E2:
A
input
E3
H
a,b
K
E7:
c4, c5, c6
A
input
Tmax=1000
A
B
D
E
K
input
E6
E6
H
Tmax=1000
J
a,b
J
E8:
Tmax=1000
E9:
A
II
A
input
J
B
a,b
D
F
A
Tmax=1000
Tmax=1000
input
K
a,b
L
c4, c5, c6
E4:
input
C
D
K
E
c 4, c 5, c 6
Tmax=1000
A
G
a,b
Tmax=1000
E3:
a,b
E5:
a,b
Tmax=1000
A
K
input
Tmax=1000
D
F
J
c4, c5, c6
E5
c4, c5, c6
E1:
B
Tmax=1000
input
A
G
Tmax=1000
A
E
a,b
Tmax=1000
input
a,b
J
Tmax=1000
L
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
K
input
II
c4, c5, c6
J
E10:
a,b
76
A
Tmax=1000
L
Tmax=1000
input
C
D
F
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Partitionnement incrémental
♦ Choix d’une approche incrémentale : contexte industriel
Nombre d’états et taille du graphe d’applications industrielles
Compromis qualité des solutions/ temps exécution du partitionnement
Utilisation de l’entrée architecture prédéfinie de CODEF
Architecture
prédéfinie
Architecture
résultat
CODEF
PA2
DFG
♦ Conception incrémentale :
Architecture
Prédéfinie
CODEF
CODEF
CODEF
CODEF
CODEF
CODEF
PA2
PA2
PA2
PA2
PA2
PA2
DFG E9
DFG E5
DFG E1
DFG E3
DFG E6
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Architecture
Finale
77
DFG E10
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Le partitionnement incrémental est sous-optimal
♦ Exemple :
Ex:
Ey:
Surface
Cœurs
A
B
A
B
P1
100
40
110
P2
100
100
30
P3
100
60
40
250
230
200
Surface Mémoire
♦ Partitionner Ex avant Ey ➱ P1 est sélectionné ➩ 250 unités de surface
♦ Partitionner Ey avant Ex ➱ P2 est sélectionné ➩ 230 unités de surface
Ey->Ex meilleur ordre que Ex->Ey
Les résultats dépendent de l’ordre d’analyse des états premiers
Mais la solution avec 200 unités de surface (i.e. P3) ne peut être trouvée
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
78
Amélioration du partitionnement incrémental
Dans l’architecture prédéfinie initiale on place l’unité avec le meilleur compromis
surface/réutilisation potentielle, en fonction des contraintes temporelles.
s ( u ) + Σσ ( τ , u )
k
i k
S ( τ , u ) = ----------------------------------------------i k
β(τ , u )
i k
∀ état premier
∀ uk
Les états premiers sont partitionnés dans l’ordre décroissant de leur criticité
Min
 Min  Max ( T ( τ , u ) – pl
( τ , u ) ) 
états 
τi 
uk a i k
min i k  
Sur l’exemple à 6 états premiers
Unité avec
meilleur HwD
compromis
CODEF
CODEF
CODEF
CODEF
CODEF
CODEF
PA2
PA2
PA2
PA2
PA2
PA2
E5
E3
E6
E1
Ordre suivant
criticité
E10
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Architecture
Finale
79
E9
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Résultats
♦ On obtient une architecture composée de
E1:
Unités
Sw2
❹
HwA
E3:
❷
E5:
❶
❸
E9:
➏
♦ Sur les 720 ordres on a :
Surface solutions
avec HwD dans A0.
≤
surface solutions
partitionnée A0 vide
Sw2
H
J
L
I
J
L
HwA
Sw2
HwA
HwK
E6:
♦ L’architecture obtenue n’a pas la plus
petite surface. Seulement 20% des 720
ordres possibles ont une surface
plus petite (la meilleure : - 10%)
E10:
➎
Sw2
B
F
E
HwD
HwA
Sw2
C
E
HwD
HwA
Sw2
C
F
80
HwA
HwD
Temps
200
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
L
HwK
Sw2, Sw2, Sw2, HwA, HwD, HwK
Deux processeurs en moins
J
HwK
Sw2, HwA, HwD, HwK
♦ Partitionnement du DFG complet
G
400
600
800
1000
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Etapes de la conception système avec CODEF
❶
❶
Modèle application
& contraintes
Graphe Flots de
Données Conditionnels
❶
Contraintes
Systèmes
des
❷ Contenu
librairies
Réalisations
précédentes
Estimateurs
(Debugger,VESTIM)
Expérience
du concepteur
❸
❷
espace
❸ Exploration
de conception
Libraries:
❐ Unités Hw & Sw
❐ Modèles de
réalisation des
tâches
Mise à jour ➎
caractéristiques des
Modèles de réalisation
des
➍ Implémentation
tâches SW & HW
➎
CODEF
Spécification Système
Implémentation des tâches (Hw,Sw)
➍
Mise à jour des
➎ modèles, vérification
contraintes avec
CODEF
81
CODEF : Vérification des contraintes pendant les étapes de raffinement système (❸,➎)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Plan de l’exposé
1 - Pourquoi la co-conception (codesign)
2 - Modélisation des applications
3 - Les architectures enfouies
4 - Estimation logicielle et matérielle
5 - Partitionnement
Partitionnement manuel
Partitionnement automatique
6 - Synthèse des communications
7 - Conclusion
82
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
SYNTHÈSE DES COMMUNICATIONS
La spécification d’une architecture
spécialisée inclut l’interconnexion
❏ Déterminer une interconnexion implique :
❏ Choisir les ressources de communication : types et nombres de bus, FIFO, Dual-Port, Arbitre de bus ...
❏ Allouer les communications de l’application sur les ressources sélectionnées
protocole de transfert : mode burst, pipeline, ...
❏ Choisir des modes de transfert :
transfert synchrone ou asynchrone
priorités allouées aux transferts
❏ Classiquement la synthèse des communications est réalisée :
83
❏ Pendant le partitionnement (modèle simplifié utilisé)
❏ Après partitionnement
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
La réalisation des communications conditionne le comportement global
Maître
Esclave1
Esclave3
Exemple :
Maître1
Maître2
Contrainte Temporelle
Esclave2
Maître3
Maître4
84
Respecter les contraintes temporelles et minimiser surface de silicium/Consommation
FIFO, Dual-Port, Drivers,...
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Synthèse des communications pendant le partitionnement
Partitionnement HW/SW
Problèmes d’allocation/ordonnancement
Sythèse des communications
P1
1
2
Allocation/Ordonnancement
1,2,3
2
P2
3
1
3
P1
1
2
Allocation/Ordonnancement
1,3,2
P2
3
2
1
❏ Parcours exhaustif de toutes les solutions [Freund 98]
❏ Détermination de protocoles dans PACE [Knudsen 99]
3
85
Programmation dynamique - 1 processeur + 1 ASIC ( blocs de base)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Synthèse des communications intégrée au partitionnement
[Knudsen 99]
Architecture Cible :
canal
SW
Partitionnement
(Programmation dynamique)
HW
Driver HW
Driver SW
Transferts en mode “Burst”
B1
Communications
données
données
données
B2
B3
SW
B4
❏ Prise en compte des communications :
Nombre de burst
Nombre de données par burst
Débit sur le canal
B5
HW
B6
Horloge des drivers
Overhead d’appel des drivers
Cycles d’overhead du contrôle des transferts
Objectif : Meilleure accélération
Taille des mots transférés
Largeur du canal
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
86
Synthèse des communications aprés partitionnement (CODEF)
2
Mémoire de communication
émission
1
P1
4
3
1
2
3
P2
P2
Bus
réception
Transfert Asynchrone (A)
Le plus coûteux
surface, consommation
Attente
P1
Transfert Synchrone (B)
Le moins coûteux
P1
4
émission
1
2
P1
3
P2
P2
Bus
4
réception
émission
Transfert Synchrone
par interruption (C)
P1
1
P2
3
2
3
P1
4
P2
Bus
87
réception
Privilégier B puis C puis A
[Cuesta-00]
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Synchronisation par utilisation des mobilités
Après partitionnement :
1
2
3
5
7
6
SW
SW
1
2
3
4
7
Synchronisation 7 -> 4 et 6 -> 7
Transfert 5 -> 3 asynchrone
6
SW
Contrainte temporelle
1
HW
U2
Volume données arcs asynchrones
-----------------------------------------------------------------------------------Volume données arcs synchrones
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
2
3
4
synchrones
5
7
asynchrone
6
Synchronisation 5->3 et 7->4
Transfert 6 -> 7 asynchrone
1) Synchronisation des arcs qui ne provoquent pas de transferts asynchrones
2) Synchronisation des arcs
Mobilités des tâches
7
U1
synchrones
6
4
5
U1
U2
HW
3
HW
ei,j
1
2
asynchrone
5
U1
U2
4
Volume données transférées e i, j
------------------------------------------------------------------------------Mobilité de e i, j
[Gogniat-97]
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
88
Synchronisation par interruptions
2
émission
1
P1
1
P2
3
2
Interruption provoquée par l’émetteur
4
3
3
4
réception
Durée de vie
données transférées
Mémoire RAM du récepteur P2 de taille suffisante ?
Profiter de la mémoire “scratch” des tâches
P1
P2
Bus
Nécessite un
réordonnancement
émission
P1
1
P2
3
2
2
Interruption provoquée par le récepteur
4
89
réception
Durée de vie
données transférées
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Synthése des supports de communication
COMMUNICATION SYNCHRONE
ÉMETTEUR
COMMUNICATION ASYNCHRONE
RÉCEPTEUR
ÉMETTEUR
➊
➊
RÉCEPTEUR
➋
➌
Buse
Bus
DURÉE DE VIE DU buse
DURÉE DE VIE
Vi
Vj
➊
RÉCEPTEUR
ÉMETTEUR
tdebutbus
Busr
tfinbus
Vi
ÉMETTEUR
tdebutbuse
Vj
tfinbusr
Mémoire
ALGORITHME DE BIPARTITE
MATCHING PONDÉRÉ
DURÉE DANS LA MÉMOIRE
tdebutmémoire
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
RÉCEPTEUR
tdebutbusr
➋
Vi
Vj
➌
tri,j
➊
tei,j
tfinbuse
ei,j
DURÉE DE VIE DU busr
tfinmémoire
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
90
Exemple de résultats avec CODEF
Application considérée :
Sous-ensemble d’un set-top-box : décodeur audio AC3 5.1 et un modem.
Contraintes de temps :
1er décodeur AC3
0
5
5 ms
253 nœuds
335 arcs
2ème décodeur AC3
5 ms
10 ms
Contrainte Temporelle
Unités de la librairie :
❐ ARM7TDMI (100 MHz),
❐ OAKDspCore (80 MHz),
❐ coprocesseurs & accélérateurs matériels
Problème : Architecture, Allocation, Ordonnancement ?
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
91
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Surface
Exploration de l’espace de conception
ARM + OAK
+ Accelerateur
+ 2 coprocesseurs
Utilisation moyenne
30%!
Solution la plus
rapide
Temps
1er AC3 & modem
2ème AC3
Surface la
plus petite
92
ARM + OAK + 1 coprocesseur
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
ARM + OAK + 2 coprocesseurs
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Optimisation et synthèse des communications
Temps d’exécution de la solution avec la plus petite surface : 8.3 ms.
Optimizations possibles : contrainte = 10 ms
On modifie cette solution qui est réutilisée dans CODEF.
Modifications :
OAKDspCore : 40 MHz au lieu de 80 MHz
Mémoires RAM et ROM Off-core : 50 ns de temps d’accès
ARM7TDMI : 80 MHz au lieu de 100 MHz
Meilleure exploitation
parallélisme entre
les 2 processors.
On obtient
DFG
Conditionnel
Contraintes
Librarie :
CODEF
❐ Unités Hw & Sw
❐ Modèles
d’mplantation
3 bus, 1 mémoire :
Modifications
Architecture
à améliorer !
93
Architecture Système
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Conclusion sur la synthèse des communications
❏ Peu d’études sur la synthèse des communications
U2
Protocole p2
❏ Plusieurs travaux abordent la synthèse d’interface
U1
Protocole p1
U2
❏ Les modèles considérés dans le partitionnement sont en général simples
[Knudsen 99]
❏ Avancées basées sur des bus standardardisés (AMBA, Bus Core)
94
❏ Travaux sur les composants virtuels (IP)
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
CONCLUSION
Le processus de conception d’un système embarqué est complexe
❏ Grande variété de réalisation des traitements
Microcontrolleurs, RISC, DSP, ASIP, ASIC, algorithmes, RTOS
Hiérarchie et structure mémoire, ressources de communication (DMA, bus...)
❏ Hétérogénéité des traitements
Flots de données
signal : pression sur traitement/mémoire
image : pression sur mémoire
Contrôle : pression sur réactivité, temps de réponse
❏ Contraintes fortes (différentes pour chaque produit)
temps, surface, consommation, time-to-market, flexibilité, coûts, poids...
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
95
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
Privilégier la réutilisation
Problèmes importants d’actualité en co-conception
❏ Environnement de modélisation unique : éviter de fractionner la spécification/conception
❏ Partitionnement des fonctionnalités de l’application
❏ Vérification/preuve plutôt que (co-) simulation (ordonnançabilité, réactivité, comportement)
❏ Estimations de caractéristiques SW, HW : performances, surface, consommation...
❏ Définition d’interfaces standardisées des composants virtuels (IP)
❏ La synthèse des communications (Bus Core)
❏ Intégration avec d’autres technologies : optique, analogique ...
Michel Auguin - I3S, Université de Nice Sophia Antipolis - CNRS
Ecole Thématique sur les Systèmes Enfouis, novembre 2000
96

Documents pareils