Changes between Version 103 and Version 104 of SoclibCourseTp4


Ignore:
Timestamp:
Dec 12, 2013, 12:31:09 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v103 v104  
    242242 * Tous les processeurs exécutent le même code de boot, mais l'exécution de ce code dépend de l'index du processeur. L'index du processeur (''proc_id'') étant stocké dans le registre système ($15, 1) du processeur MIPS32, sa valeur peut être testée par le logiciel. Remarquez que la valeur de ce registre est initialisée par le constructeur C++, ce qui modélise une valeur ''cablée'' lors de la fabrication de la puce.
    243243 * Les tâches s'exécutant en parallèle, chaque tâche (et donc chaque processeur) doit disposer de sa propre pile d'exécution. On définit un seul segment pour les différentes piles d'exécution, mais les pointeurs de pile des différents processeurs doivent  être initialisés à des  valeurs différentes en fonction du ''proc_id''.
    244  * Chaque processeur exécutant un programme utilisateur différent, le points d'entrée du programme  (registre EPC dans le cas du MIPS32) doit être initialisé à une valeur dépendant du ''proc_id''.
    245 Pour cela, on demande à GCC de construire une table de sauts au début du segment ''seg_data'', contenant les adresses
    246 des 4 points d'entrée dans les 4 tâches allouées aux 4 processeurs.
     244 * Chaque processeur exécutant un programme utilisateur différent, le points d'entrée du programme  (registre EPC) doit être initialisé à une valeur dépendant du ''proc_id''.
     245Pour cela, on demande à GCC de construire une table de sauts au début du segment ''seg_data'', contenant les adressesdes 4 points d'entrée dans les 4 tâches allouées aux 4 processeurs.
    247246
    248247== 5.3 Exécution parallèle sur architecture bi-processeurs ==
     
    252251On s'efforcera cependant que ce code de boot soit facilement extensible pour s'adapter à des architectures contenant plus de 2 processeurs
    253252
    254 Créez un nouveau répertoire '''soft_multi''', et recopiez dans ce répertoire les fichiers contenus dans le répertoire '''soft''', car tous les fichiers doivent être modifiés.
     253Cré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.
    255254
    256255'''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'''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...
    259258
    260 
    261259'''Question''' : Modifiez le fichier '''reset.s''' pour initialiser le registre EPC à une valeur dépendant du ''proc_id''.
    262260 
     
    273271'''Question''' : Ecrivez deux autres petits programmes qui s'exécuteront sur les deux autres processeurs. Si vous manquez d'imagination, vous pouvez vous contenter de répliquer le code du programme ''main.c''. Si ces programmes utilisent les interruptions générées par le timer, n'oubliez pas que chaque processeur ne doit configurer que le timer qui lui appartient.
    274272
    275 '''Question''' : Modifiez les fichiers '''reset.s''', '''ldscript''', et '''Makefile''' du répertoire '''soft''' pour les adapter au cas de 8 processeurs, compilez le logiciel embarqué puis lancez l'exécution sur le simulateur  '''simulator_multi.x''', avec 8 processeurs. 
    276 
    277 '''Question''' : Le GIET supporte des architectures contenant jusque 8 processeurs, et chaque processeur peut exécuter jusque 4 tâches en multiplexage temporel. Nous avons cependant limité l'architecture générique à 4 processeurs. Quel est le facteur qui justifie cette limitation?
     273'''Question''' : Modifiez les fichiers '''reset.s''', '''config.h''', et '''Makefile''' du répertoire pour les adapter au cas de 4 processeurs, compilez le logiciel embarqué puis lancez l'exécution sur le simulateur  '''simulator_multi.x''', avec 4 processeurs. 
     274
     275'''Question''' : Le GIET supporte des architectures contenant jusque 8 processeurs. Nous avons cependant limité l'architecture générique à 4 processeurs. Quel est le facteur limitant qui justifie cette restricttion?
    278276
    279277= 6 Compte-rendu =