Changes between Version 107 and Version 108 of SoclibCourseTp4


Ignore:
Timestamp:
Dec 12, 2013, 1:38:58 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v107 v108  
    250250 
    251251On commence par générer le code binaire pour une architecture comportant seulement 2 processeurs,
    252 de façon à exécuter en parallèle des deux programmes ''main'' et ''main_display'' utilisés au début de ce TP sur deux processeurs P0 et P1.
    253 On s'efforcera cependant que ce code de boot soit facilement extensible pour s'adapter à des architectures contenant plus de 2 processeurs
    254 
    255 Créez un nouveau répertoire '''soft_multi''', et recopiez dans ce répertoire les fichiers contenus dans le répertoire '''soft''', car beaucoup de fichiers doivent être modifiés.
     252de façon à exécuter en parallèle les deux programmes définis par les deux fonctions ''main()'' et ''main_display()'' (utilisées au début de ce TP) sur les deux processeurs P0 et P1.
     253
     254Créez un nouveau répertoire '''soft_multi''', et recopiez dans ce répertoire les fichiers contenus dans le répertoire '''soft''', car plusieurs fichiers doivent être modifiés.
    256255
    257256'''Question''' : Modifiez le fichier '''reset.s''' pour initialiser le pointeur de pile ($29 dans le cas du MIPS32) à une valeur dépendant du ''proc_id''. Chaque tâche disposera d'une pile de 64 Koctets. Quelle doit être la longueur du segment de pile défini dans la table des segments de la top-cell pour 2 processeurs? Pour 4 processeurs?
    258257
    259 '''Question''' : Modifiez le fichier '''reset.s''' pour que chaque processor PROC[i] initialize le registre de masque du composant ICU[i] qui lui est associé. Attention: les adresses des registres dépendent du canaL...
     258'''Question''' : Modifiez le fichier '''reset.s''' pour que chaque processor PROC[i] initialize le registre de masque du composant ICU[i] qui lui est associé. Attention: à la fois la valeur du masque, et les adresses des registres dépendent du canaL...
    260259
    261260'''Question''' : Modifiez le fichier '''reset.s''' pour initialiser le registre EPC à une valeur dépendant du ''proc_id''.
    262261 
    263 '''Question''' : Modifiez le fichier '''Makefile''' du répertoire '''soft''' pour que soient compilés (en plus du code système et du code de boot '''reset.s''') les deux programmes '''main.c''' et '''main_display.c'''.
     262'''Question''' : Modifiez le fichier '''Makefile''' du répertoire '''soft''' pour que le code des deux fonctions ''main()'' et main_display() soient intégré dans le même fichier '''app.bin'''. Vérifiez dans le fichier '''app.bin.txt'''
     263que les adresses des deux fonctions ''main()'' et ''main_display()'' sont bien rangées au début du segment seg_data.
    264264
    265265'''Question''' : Modifiez dans le fichier '''config.h''' la valeur de la variable qui informe le système d'exploitation du nombre de processeurs présents dans l'architecture matérielle.
    266266
    267 '''Question''' : Compilez le logiciel embarqué, puis lancez l'exécution sur le simulateur  '''simulator_multi.x''', avec NPROCS = 2 processeurs. 
     267'''Question''' : Compilez le logiciel embarqué, puis lancez l'exécution sur le simulateur  '''simulator_multi.x''', avec -NPROCS = 2 processeurs. 
    268268
    269269== 5.4 Exécution parallèle sur architecture quadri-processeurs ==