Changes between Version 7 and Version 8 of MjpegCourse/Coproc


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

--

Legend:

Unmodified
Added
Removed
Modified
  • MjpegCourse/Coproc

    v7 v8  
    1414
    1515L'introduction d'un ''accélérateur'' matériel n'est pas toujours justifiée.
    16 La loi d'Amdhal précise qu'il est inutile d'accélérer un traitement
     16La loi d'Amdhal précise qu'il est inefficace d'accélérer un traitement
    1717qui ne représente qu'une petite partie du temps de calcul total
    1818de l'application. De plus, il faut prendre en compte les temps
     
    2020
    2121La tâche IDCT étant la plus gourmande en temps de calcul, nous allons
    22 analyser l'implantation de cette tâche comme un processeur matériel spécialisé.
     22analyser les gains de performance apportés par l'implantation de cette tâche
     23comme un processeur matériel spécialisé.
    2324
    2425Pour éviter de re-écrire toute l'application logicielle, on s'impose que le coprocesseur
     
    3435Pour simplifier le travail des outils de synthèse, on utilise pour cela un composant
    3536matériel générique, appelé contrôleur MWMR qui est un initiateur VCI, capable
    36 de lire ou d'écrire dans différentes FIFO MWMR, et qui fournit au coprocesseur
     37de lire ou d'écrire en mémoire, dans des FIFO MWMR, et qui fournit au coprocesseur
    3738autant de canaux de communications que celui-ci en a besoin. C'est ce même
    3839composant matériel qui est utilisé par les composants RAMDAC et TG.
     
    5253= 1. Modification du TCG =
    5354
    54 Il faut commencer par modifier le modèle de la tâche {{{idct}}}, en lui ajoutant une implémentation matérielle,
     55Il faut commencer par modifier le modèle de la tâche {{{idct}}},
     56en définissant une implémentation matérielle,
    5557sous forme d'un coprocesseur matériel:
    5658{{{
     
    7678
    7779Avant de se lancer dans la synthèse, il faut donc évaluer précisément
    78 les temps de calcul requis pour le coprocesseur, une fois celui-ci placé
     80la puissance de calcul requise pour le coprocesseur, une fois celui-ci placé
    7981dans son environnement de travail. On commence donc par ''encapsuler''
    8082la tâche matérielle {{{idct}}} dans un composant matériel générique appelé ''threader''.
     
    8890elle était matérielle, son comportement est simulé.
    8991
    90 [[Image(MjpegCourse:q.gif)]] Avec cette tâche déployée en coprocesseur virtuel, quel est le temps
    91 nécessaire pour décoder 25 images ? Quel rapport à la simulation avec un vrai coprocesseur matériel ?
     92Le coprocesseur matériel IDCT, comme beaucoup de coprocesseurs matériels de type ''flot de données'')
     93exécute une boucle infinie dans laquelle if effectue successivement les actions suivantes:
     94 * 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 * recopie de ces 64 pixels de la mémoire locale BUFOUT vers le canal MWMR de sortie.
    9297
    93 Pour rendre la tâche matérielle virtuelle plus exacte en temps de simulation, on peut ajouter des directives
     98Pour modéliser le temps de traitement la tâche matérielle virtuelle plus exacte en temps de simulation, on peut ajouter des directives
    9499dans 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:
    95100`srl_busy_cycles` (voir SrlApi).
     
    97102En lisant le code de l'implémentation matérielle du coprocesseur `Idct`, déduisez les temps
    98103nécessaires aux différentes parties du traitement.
     104
     105[[Image(MjpegCourse:q.gif)]] En utilisant un coprocesseur virtuel, pour la tâche {{{idct}}},
     106détermidez quel est le gain en performances apporté par le coprocesseur, pour
     107différents temps de traitement (1cycle, 8 cycles, 64 cycles, 512 cycles ou 2048 cycles
     108pour traiter un bloc de 64 pixels).quel est le temps
     109nécessaire pour décoder 25 images ? Quel rapport à la simulation avec un vrai coprocesseur matériel ?
    99110
    100111= 3. Coprocesseur matériel =