wiki:MjpegCourse/Synthese

TP6: Exploration architecturale complète

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 attachment: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

Que proposez-vous à priori comme architecture ? Combien de processeurs, quelles tailles de caches, quelle occupation en mémoire, combien de clusters (si architecture clusterisée)... ?

2. Prise en compte du coût

On donne les estimateurs suivants pour l'évaluation de la surface:

  • Cache: 0.008mm2 + 0.05mm2 * size (en Ko)
  • MultiRam: 0.05mm2 * size (en Ko)
  • Mips: 0.16mm2
  • Contrôleur Mwmr: 0.013mm2 par canal MWMR
  • LocalCrossbar: 0.005mm2 * nb_initiateur * nb_cible
  • Vgmn: 0.01mm2 * nb_initiateur * nb_cible (si archi clusterisée, nb_initiateur = nb_cible = nb_clusters)
  • Coprocesseur IDCT matériel: 0.01mm2 + 70mm2 / latence (en cycles)
  • Tg: 0.3mm2
  • Ramdac: 0.01mm2 + 0.05mm2 * size ram video (en Ko, 1 pixel = 1 octet)

Ces valeurs sont données à titre indicatif, pour une technologie fictive. Elle devraient être redéfinies pour le procédé de fabrication visé.

Evaluez le coût de votre SoC en surface.

Puisqu'on veut finalement évaluer la consommation du SoC, on utilise la fonction de coût donnant consommation proportionnel à fréquence * surface. Donnez la consommation de votre circuit.

3. Exploration architecturale

Essayez de modifier votre design pour minimiser la consommation tout en remplissant la contrainte temporelle de 25 fps.

Créez une feuille de calcul dans OpenOffice (nommée mjpeg.ods) reprenant toutes ces contraintes et les fonctions de coût. Insérez dans chaque ligne les caractéristiques des SoC que vous simulez.

Choisissez le meilleur SoC.

4. Compte-Rendu

Vous rendrez une archive contenant :

$ tar tzf binome0_binome1.tar.gz
tp6/
tp6/rapport.pdf
tp6/mjpeg.ods
tp6/mjpeg.py
  • mjpeg.ods est votre feuille de calcul
  • mjpeg.py représente la description DSX de votre "meilleur" SoC

Ces fichiers devront être livrés avant le jeudi 27 janvier 2011, 18h00 à [MailAsim:joel.porquet Joël Porquet]

Last modified 14 years ago Last modified on Jan 21, 2011, 9:37:12 AM

Attachments (2)

Download all attachments as: .zip