Changes between Version 76 and Version 77 of SoclibCourseTp5
- Timestamp:
- Dec 25, 2013, 3:00:11 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp5
v76 v77 304 304 '''Question''' : Proposez des adresses de base pour ces 16 segments, en tenant compte du fait que le crossbar local ne doit décoder que les bits (LADR) de l'adresse, et que le réseau global ne doit décoder que les bits (GADR) de l'adresse. Recommandation : on utilisera les 4 bits A[31:28] pour le champs GADR, en considérant que seuls les 2 bits A[29:28] sont réellement discriminants pour désigner le cluster visé. On utilisera les 4 bits A[27:24] pour le champs LADR. 305 305 306 '''Question''' : Sur combien de bits doi t être codéles sous-champs GID et LID du champs VCI SRCID ?306 '''Question''' : Sur combien de bits doivent être codés les sous-champs GID et LID du champs VCI SRCID ? 307 307 308 308 '''Question''' : Quelle critique peut-on formuler contre cette architecture, pour ce qui concerne le cablage des lignes d'interruption ? … … 315 315 commencez par exécuter le programme d'affichage interactif du message ''hello world'', en parallèle sur chacun des 4 processeurs. 316 316 317 Le routage des interruptions vers chacun des 4 processeurs est contrôlé par logiciel grâce aux registres de masque du composant ICU : on fera en sorte que le processeur P[i] recoive les interruptions IRQ_TTY[i], IRQ_TIM[i], et IRQ_DMA[i]. L'interruption IRQ_IOC sera routée vers le processeur P[0].317 Le routage des interruptions vers chacun des 4 processeurs est contrôlé par logiciel grâce aux registres de masque du composant ICU, qui sont définis dans le code de boot. On fera en sorte que le processeur P[i] recoive les interruptions IRQ_TTY[i], IRQ_TIM[i], et IRQ_DMA[i]. L'interruption IRQ_IOC sera routée vers le processeur P[0]. 318 318 319 319 Le code de boot, contenu dans le fichier '''reset.s''', doit supporter des applications logicielles où les 4 processeurs exécutent 4 programmes différents. Les 4 processeurs exécutent le même code de boot (puisqu'ils se branchent à la même adresse 0xBFC00000), mais certaines actions dépendent du proc_id : … … 324 324 * En sortie du code de boot, chaque processeur se branche à une adresse différente dans le code utilisateur, dépendante du proc_id. 325 325 326 '''Question''': Pourquoi utilise-t-on une technique redondante où les 4 processeurs écrivent les mêmes valeurs dansle vecteur d'interruption?327 328 '''Question''': Complétez le code de boot dans le fichier '''reset.s'''. Modifiez le fichier '''seg _ld''' pour définir les adresses de bases des 16 segments. Modifiez le fichier '''config.h''' pour définir le nombre de processeurs.326 '''Question''': Pourquoi utilise-t-on une technique redondante où les 4 processeurs écrivent les mêmes valeurs pour initialiser le vecteur d'interruption? 327 328 '''Question''': Complétez le code de boot dans le fichier '''reset.s'''. Modifiez le fichier '''seg.ld''' pour définir les adresses de bases des 16 segments. Modifiez le fichier '''config.h''' pour définir le nombre de processeurs. 329 329 330 330 '''Question''' : lancez la simulation: Les quatre processeurs doivent exécuter le même programme interactif, chacun sur son propre terminal TTY. Si ce n'est pas le cas, vous pouvez soit activer la trace cycle par cycle, soit utiliser le '''GDB Server''', suivant que vous soupçonnez une erreur dans le matériel ou dans le logiciel... … … 336 336 On utilisera le même flux d'image que dans le TP4, c'est à dire le fichier '''images.raw''', qui contiennt une vingtaine d'images de 128 lignes de 128 pixels codées en 256 niveaux de gris. 337 337 338 L'application logicielle contenue dans le fichier '''main.c''' du répertoire '''soft_transpose''' est découpée en trois tâches logicielles, qui doivvent s'exécuter en parallèle sur trois proces eurs différents. Elles communiquent entre elles à travers deux tampons de communication en mémoire appelés'''buf_in''' et '''buf_out'''. Chaque tampon peut stocker une image complête338 L'application logicielle contenue dans le fichier '''main.c''' du répertoire '''soft_transpose''' est découpée en trois tâches logicielles, qui doivvent s'exécuter en parallèle sur trois processeurs différents, le quatrième processeur étant non utilisé. Les trois tâches communiquent entre elles à travers deux tampons de communication en mémoire appelés'''buf_in''' et '''buf_out'''. Chaque tampon peut stocker une image complête 339 339 340 340 [[Image(soclib_tp5_transpose.png)]] … … 343 343 * La tâche '''transpose''' lit l'image présente dans le tampon buf_in, effectue la transposition et écrit l'image résultante dans le tampon buf_out. 344 344 * La tâche '''display''' lit l'image présente dans le tampon buf_out, et affiche cette image sur l'écran graphique. en l'écrivant dans le frame buffer. 345 Les deux tampons de communication buf_in et buf_out sont protégés par les deux variables de synchronisation '''buf_in_empty''' et '''buf_out_empty''', qui supportent un protocole de synchronisation de type SET/RESET en mode utilisateur: 345 Les deux tampons de communication buf_in et buf_out sont protégés par les deux variables de synchronisation '''buf_in_empty''' et '''buf_out_empty''', 346 qui supportent un protocole de synchronisation de type SET/RESET en mode utilisateur: 346 347 * La tâche productrice attend que la variable de synchronisation passe à 0 avant d'écrire, et force cette variable à 1 quand elle a fini de remplir le tampon. 347 348 * La tâche consommatrice attend que la variable de synchronisation passe à 1 avant de lire, et force cette variable à 0 quand elle a fini de vider le tampon. … … 357 358 '''Question''' : L'inconvénient du mécanisme de synchronisation par bascule SET/RESET est que les deux tâches productrice et consommatrice ne peuvent s'exécuter en parallèle. Dans l'application logicielle proposée, quelles tâches s'exécutent effectivement en parallèle? 358 359 359 '''Question''' : Comment p eut-on modifier l'application logicielle pour augmenter le parallélisme et augmenter ainsi la fréquence d'affichage des images, sans augmenter le nombre de processeurs utilisés?360 '''Question''' : Comment pourrait-on modifier l'application logicielle pour augmenter le parallélisme et augmenter ainsi la fréquence d'affichage des images, sans augmenter le nombre de processeurs utilisés? 360 361 361 362 = 4 Compte_rendu =