Changes between Version 8 and Version 9 of MjpegCourse/Coproc
- Timestamp:
- Mar 4, 2007, 11:20:15 AM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MjpegCourse/Coproc
v8 v9 19 19 de communication entre le coprocesseur et le reste de l'application. 20 20 21 La tâche IDCTétant la plus gourmande en temps de calcul, nous allons22 analyser les gains de performance apportés par l'implantation de cette tâche21 La tâche {{{idct}}} étant la plus gourmande en temps de calcul, nous allons 22 analyser les gains de performance apportés par l'implantation de la tâche {{{idct}}} 23 23 comme un processeur matériel spécialisé. 24 24 … … 28 28 MWMR à 5 étapes: 29 29 * prise du verrou, 30 * consultation de l'éta de la FIFO logicielle,30 * consultation de l'état de la FIFO logicielle, 31 31 * transfert des données, 32 32 * mise à jour de l'état de la FIFO logicielle, … … 41 41 Nous repartirons de la plateforme du [MjpegCourse/Multipro TP3]: !VgmnNoirqMulti. 42 42 Nous modifierons cette plateforme comportant deux processeurs Mips, pour ajouter 43 un coprocesseur matériel dédié au traitement de l'`Idct`.43 un coprocesseur matériel dédié à la transformation IDCT. 44 44 45 Reprenez les fichiers du TP 2:45 Reprenez les fichiers du TP3: 46 46 * La description de la plateforme 47 47 * La description de l'application 48 48 * Le code des tâches (`Libu` ne gère qu'un seul pipeline et `Split` n'existe pas) 49 49 50 [[Image(MjpegCourse:q.gif)]] Pour un déploiement entièrement logiciel, rappelez le temps 51 nécessaire pour décoder 25 images. 50 [[Image(MjpegCourse:q.gif)]] Q1. Rappelez le temps 51 nécessaire pour décoder 25 images, dans le cas d'une implantation logicielle 52 utilisant deux processeurs. 52 53 53 54 = 1. Modification du TCG = 54 55 55 Il faut commencer par modifier le modèle de la tâche {{{idct}}}, 56 en définissant une implémentation matérielle,57 sous forme d'un coprocesseur matériel:56 Pour introduire un coprocesseur matériel, 57 il faut commencer par modifier le modèle de la tâche {{{idct}}}, 58 en définissant une implémentation matériellel: 58 59 {{{ 59 60 idct = TaskModel( … … 71 72 = 2. Coprocesseur virtuel = 72 73 73 Il existe plusieurs solutions micro-architecturales pour la synthèse74 Il existe plusieurs solutions micro-architecturales pour la réalisation 74 75 d'un coprocesseur matériel spécialisé. Dans le cas d'une transformation IDCT, 75 76 on peut, suivant le nombre d'opérateurs arithmétiques utilisés, effectuer le calcul d'un bloc de 64 pixels … … 93 94 exécute une boucle infinie dans laquelle if effectue successivement les actions suivantes: 94 95 * recopie d'un bloc de 64 coefficients du canal MWMR d'entrée vers une mémoire locale BUFIN, 95 * calcul d'un bloc de 64 pixels, et stockage de ces pixels dans une seconde mémoire locale BUFOUT 96 * calcul d'un bloc de 64 pixels, et stockage de ces pixels dans une seconde mémoire locale BUFOUT, 96 97 * recopie de ces 64 pixels de la mémoire locale BUFOUT vers le canal MWMR de sortie. 97 98 99 Il n'existe aucune référence au temps de calcul dans le code C de la tâche {{{idct}}} logicielle. 98 100 Pour modéliser le temps de traitement la tâche matérielle virtuelle plus exacte en temps de simulation, on peut ajouter des directives 99 101 dans le code source C des tâches pour préciser le temps qu'il faudrait pour réaliser la même action en matériel: