Changes between Version 12 and Version 13 of MjpegCourse/Coproc
- Timestamp:
- Mar 5, 2007, 8:32:04 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MjpegCourse/Coproc
v12 v13 34 34 * libération du verrou. 35 35 36 Pour simplifier le travail de s outils de synthèse, et séparer clairement les fonctions de calcul et les36 Pour simplifier le travail de l'outil de synthèse de coprocesseur, et séparer clairement les fonctions de calcul et les 37 37 fonctions de communication, ce n'est pas le coprocesseur matériel synthétisé qui implémente le 38 38 protocole MWMR. On utilise pour accéder aux canaux MWMR un composant matériel générique, appelé contrôleur MWMR. … … 41 41 puisqu'il doit être configuré par le logiciel. C'est ce même 42 42 contrô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 44 Vous repartirez de la plateforme du [MjpegCourse/Multipro TP3]: !VgmnNoirqMulti, pour une architecture comportant 3 processeurs, 45 et vous modifierez cette architecture, pour remplacer 45 46 un des processeurs programmable par un coprocesseur matériel dédié à la transformation IDCT. 46 47 … … 63 64 d'un coprocesseur matériel spécialisé. Dans le cas d'une transformation IDCT, 64 65 on 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. 66 en u1 cycle, en 8 cycles, ou en 64 cycles, ou plus. En première approximation, 67 le coût matériel est proportionnel au le nombre d'opérateurs arithmétiques travaillant en parallèle, 68 et ce nombre est inversement proportionnel au temps de calcul. 67 69 68 70 Pour éviter de gaspiller du silicium, il faut donc - avant de se lancer dans la synthèse - évaluer précisément … … 118 120 En revanche, le nombre de cycles nécessaires pour exécuter l'étape 2 ci-dessus (temps de calcul "interne" à la tâche logicielle) 119 121 n'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 les122 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, 123 entre les deux primitives ''srl_mwmr_read()'' et ''srl_mwmr_write()'', 124 un appel à la la fonction bloquante ''srl_busy_cycles(ncycles)''. L'argument ''ncycles'' est le nombre de cycles d'attente entre les 123 125 deux primitives de communication, et il modélise donc le temps de calcul (voir SrlApi). 124 126 {{{ 125 ...126 127 srl_mwmr_read(); 127 128 ... … … 129 130 ... 130 131 srl_mwmr_write(); 131 ...132 132 }}} 133 133 134 134 [[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? 135 qu'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? 137 136 138 137 Modifier la description DSX pour déployer l'application MJPEG sur une architecture comportant 2 processeurs MIPS et un coprocesseur