}}}
[[PageOutline]]
TP Précédent: MjpegCourse/Coproc
= 0. Objectif =
Au cours des TP précédents, vous avez eu l'occasion de prendre en mains les
méthodes suivantes de paramétrage:
* Placement des ressources logicielles
* Modification des tailles de caches
* Dédoublement du flot de traitement
* Architecture multi-cluster
* Introduction de coprocesseurs matériels
Dans ce TP, on vous laisse libre de faire une exploration architecturale avec
tous ces paramètres. La contrainte sera une contrainte de coût:
* En surface de circuit
* En fréquence de travail
* En consommation
Pour faire un test plus réaliste que ceux mis en oeuvre aux TP précédents, on
utilisera une vidéo de 160x120 pixels. Elle est fournie dans `~pouillon/mjpeg_160x120.raw`.
'''Attention, la taille nécessaire en pile pour la fonction `Libu` dépend de la largeur de l'image,
redimentionnez votre pile en fonction de ce paramètre ! '''
La seule contrainte finale sur le SoC est la fréquence de la vidéo décompressée.
On cherche à lire cette vidéo à 25 fps.
Une fréquence raisonnable pour votre SoC sera entre 100 Mhz et 300 Mhz.
= 1. Première implémentation =
[[Image(MjpegCourse:q.gif)]] Que proposez-vous à priori comme architecture ? Combien de
clusters (si architecture clusterisée), combien de processeurs, quelles tailles de caches,
quelle occupation en mémoire ? ...
= 2. Prise en compte du coût =
On donne les fonctions de coût suivantes (surface):
* Cache: XXXX + YYYY * (dcache_lines*dcache_words+icache_lines*icache_words)
* !MultiRam: XXXX + YYYY * size (en octets)
* Mips: XXXX
* Contrôleur Mwmr: XXXX
* Vgmn
* sans clusters: XXXX * nb_initiateur + YYYY * nb_cible
* avec clusters: XXXX * nb_cluster
* !LocalCrossbar: XXXX * nb_initiateur + YYYY * nb_cible
* Coprocesseur IDCT matériel: XXXX + YYYY / latence
* Tg: XXXX
* Ramdac: XXXX
[[Image(MjpegCourse:q.gif)]] Evaluez le coût de votre SoC en surface.
[[Image(MjpegCourse:q.gif)]] On veut finalement évaluer la consommation du SoC, on utilise la
fonction de coût suivante: `Conso = (Qstat + fréquence) * surface` avec Qstat = XXXX.
Donnez la consommation de votre circuit.
= 3. Exploration architecturale =
[[Image(MjpegCourse:q.gif)]] Essayez de modifier votre design pour minimiser la consommation
tout en remplissant la contrainte temporelle de 25 fps.
[[Image(MjpegCourse:q.gif)]] Créez une feuille de calcul dans !OpenOffice reprenant toutes
ces contraintes et les fonctions de coût. Insérez dans chaque ligne les caractéristiques des
SoC que vous simulez.
[[Image(MjpegCourse:q.gif)]] Choisissez le meilleur SoC.
= 4. Compte-Rendu =
Vous rendrez deux fichiers (pas une archive tar):
* Un rapport nommé `binome0_binome1.pdf`
* La feuille de calcul nommée `binome0_binome1.ods`
Ces fichiers devront être livrés avant le mardi 20 mars 2007, 18h00 à [MailAsim:nipo Nicolas Pouillon]