Changes between Version 8 and Version 9 of MjpegCourse/Coproc


Ignore:
Timestamp:
Mar 4, 2007, 11:20:15 AM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MjpegCourse/Coproc

    v8 v9  
    1919de communication entre le coprocesseur et le reste de l'application.
    2020
    21 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 cette tâche
     21La tâche {{{idct}}} étant la plus gourmande en temps de calcul, nous allons
     22analyser les gains de performance apportés par l'implantation de la tâche {{{idct}}}
    2323comme un processeur matériel spécialisé.
    2424
     
    2828MWMR à 5 étapes:
    2929 * prise du verrou,
    30  * consultation de l'éta de la FIFO logicielle,
     30 * consultation de l'état de la FIFO logicielle,
    3131 * transfert des données,
    3232 * mise à jour de l'état de la FIFO logicielle,
     
    4141Nous repartirons de la plateforme du [MjpegCourse/Multipro TP3]: !VgmnNoirqMulti.
    4242Nous modifierons cette plateforme comportant deux processeurs Mips, pour ajouter
    43 un coprocesseur matériel dédié au traitement de l'`Idct`.
     43un coprocesseur matériel dédié à la transformation IDCT.
    4444
    45 Reprenez les fichiers du TP2:
     45Reprenez les fichiers du TP3:
    4646 * La description de la plateforme
    4747 * La description de l'application
    4848 * Le code des tâches (`Libu` ne gère qu'un seul pipeline et `Split` n'existe pas)
    4949
    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
     51nécessaire pour décoder 25 images, dans le cas d'une implantation logicielle
     52utilisant deux processeurs.
    5253
    5354= 1. Modification du TCG =
    5455
    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:
     56Pour introduire un coprocesseur matériel,
     57il faut commencer par modifier le modèle de la tâche {{{idct}}},
     58en définissant une implémentation matériellel:
    5859{{{
    5960idct = TaskModel(
     
    7172= 2. Coprocesseur virtuel =
    7273
    73 Il existe plusieurs solutions micro-architecturales pour la synthèse
     74Il existe plusieurs solutions micro-architecturales pour la réalisation
    7475d'un coprocesseur matériel spécialisé. Dans le cas d'une transformation IDCT,
    7576on peut, suivant le nombre d'opérateurs arithmétiques utilisés, effectuer le calcul d'un bloc de 64 pixels
     
    9394exécute une boucle infinie dans laquelle if effectue successivement les actions suivantes:
    9495 * 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,
    9697 * recopie de ces 64 pixels de la mémoire locale BUFOUT vers le canal MWMR de sortie.
    9798
     99Il n'existe aucune référence au temps de calcul dans le code C de la tâche {{{idct}}} logicielle.
    98100Pour modéliser le temps de traitement la tâche matérielle virtuelle plus exacte en temps de simulation, on peut ajouter des directives
    99101dans 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: