Changes between Version 12 and Version 13 of MjpegCourse/Coproc


Ignore:
Timestamp:
Mar 5, 2007, 8:32:04 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MjpegCourse/Coproc

    v12 v13  
    3434 * libération du verrou.
    3535
    36 Pour simplifier le travail des outils de synthèse, et séparer clairement les fonctions de calcul et les
     36Pour simplifier le travail de l'outil de synthèse de coprocesseur, et séparer clairement les fonctions de calcul et les
    3737fonctions de communication, ce n'est pas le coprocesseur matériel synthétisé qui implémente le
    3838protocole MWMR. On utilise pour accéder aux canaux MWMR un composant matériel générique, appelé contrôleur MWMR.
     
    4141puisqu'il doit être configuré par le logiciel. C'est ce même
    4242contrôleur MWMR qui a déjà été utilisé pour interfacer les composants matériels RAMDAC et TG.
    43 Nous repartirons de la plateforme du [MjpegCourse/Multipro TP3]: !VgmnNoirqMulti, pour une architecture comportant 3 processeurs.
    44 Nous modifierons cette architecture, pour remplacer
     43
     44Vous repartirez de la plateforme du [MjpegCourse/Multipro TP3]: !VgmnNoirqMulti, pour une architecture comportant 3 processeurs,
     45et vous modifierez cette architecture, pour remplacer
    4546un des processeurs programmable par un coprocesseur matériel dédié à la transformation IDCT.
    4647
     
    6364d'un coprocesseur matériel spécialisé. Dans le cas d'une transformation IDCT,
    6465on peut, suivant le nombre d'opérateurs arithmétiques utilisés, effectuer le calcul d'un bloc de 64 pixels
    65 en un cycle, en 8 cycles, en 64 cycles, en 512 cycles ou plus. En première approxiation,
    66 le coût matériel est inversement proportionnel au temps de calcul.
     66en u1 cycle, en 8 cycles, ou en 64 cycles,  ou plus. En première approximation,
     67le coût matériel  est proportionnel au le nombre d'opérateurs arithmétiques travaillant en parallèle,
     68et ce nombre est inversement proportionnel au temps de calcul.
    6769
    6870Pour éviter de gaspiller du silicium, il faut donc - avant de se lancer dans la synthèse - évaluer précisément
     
    118120En revanche, le nombre de cycles nécessaires pour exécuter l'étape 2 ci-dessus (temps de calcul "interne" à la tâche logicielle)
    119121n'est pas défini par le code de la tâche logicielle. Si on ne précise rien, cela correspond à un temps d'exécution du calcul
    120 en ""zéro" cycles. Pour préciser un nombre de cycles d'exécution, il faut modifier le code C de la tâche {{{idct}}}, et insérer,
    121 entre les deux primitives ''srl_mwmr_read()'' et '''srl_mwmr_write()'',
    122 un appel à la  la fonction bloquante srl_busy_cycles( ncycles ). L'argument ''ncycles'' est le nombre de cycles d'attente entre les
     122en "zéro" cycles. Pour préciser un nombre de cycles d'exécution, il faut modifier le code C de la tâche {{{idct}}}, et insérer,
     123entre les deux primitives ''srl_mwmr_read()'' et ''srl_mwmr_write()'',
     124un appel à la  la fonction bloquante ''srl_busy_cycles(ncycles)''. L'argument ''ncycles'' est le nombre de cycles d'attente entre les
    123125deux primitives de communication, et il modélise donc le temps de calcul (voir SrlApi).
    124126{{{
    125 ...
    126127srl_mwmr_read();
    127128...
     
    129130...
    130131srl_mwmr_write();
    131 ...
    132132}}}
    133133
    134134[[Image(MjpegCourse:q.gif)]] Q3. pour quelle raison peut-on affirmer sans aucune expérimentation (c'est à dire sans aucune simulation),
    135 qu'il est sans intérêt de synthétiser un coprocesseur matériel dont le temps de calcul pour traiter un bloc de
    136 64 pixels soit inférieur à 64 cycles?
     135qu'il est sans intérêt de synthétiser un coprocesseur matériel dont le temps de calcul soit inférieur à une centaine de cycles?
    137136
    138137Modifier la description DSX pour déployer l'application MJPEG sur une architecture comportant 2 processeurs MIPS et un coprocesseur