Changes between Version 70 and Version 71 of SoclibCourseTp4


Ignore:
Timestamp:
Dec 9, 2010, 10:30:27 AM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v70 v71  
    176176= 5. Architecture multi-processeurs générique =
    177177
    178 On veut maintenant modéliser une architecture matérielle multi-processeur générique.
     178On veut maintenant modéliser une architecture matérielle multi-processeur générique, où le nombre de processeurs est défini par un paramètre NPROCS sur le ligne de commande.
    179179
    180180== 5.1 architecture matérielle ==
     
    182182Modifiez le fichier '''tp3_top.cpp''' et renommez-le '''tp3_top_multi.cpp''' .
    183183Chaque processeur aura son propre concentrateur d'interruption (un composant ICU par processeur).
    184 Le nombre de processeurs NPROCS sera défini comme un paramètre supplémentaire -NPROCS sur la ligne de commande au lancement du simulateur. Le GIET ne pouvant supporter que 8 processeurs, on vérifiera que le paramètre NPROCS est inférieur ou égal à 8.
    185 
    186  * Pour SRCID, on utilisera les valeurs 0 à (NPROCS-1) pour les processeurs, et les valeurs NPROCS et (NPROCS+1) pour le composant IOC et pour le composant DMA respectivement.
    187 
    188  * Il faut définir des tableaux de pointeurs pour les composants PROC[i] et ICU[i], ainsi que pour les signaux associés, et introduire des boucles indexées par l'index du processeur chaque fois que ces composants sont concernés.
    189 
    190  * il faut définir NPROCS segments pour les NPROCS ICU[i]. L'adresse de base du segment associé au composant ICU[i] est définie comme : seg_icu_base + 0x00100000 * proc_id (cette contrainte imposée par le GIET).
    191 
    192 '''Question''' : Modifiez le fichier '''tp3_top.desc''' pour créer un fichier '''tp3_tp_multi.desc''', et modifiez le fichier '''Makefile'''
    193 en conséquence pour  générer un simulateur générique '''simulator_multi.x'''.
     184Comme chaque processeur peut - en principe - exécuter plusieurs tâches en pseudo-parallélisme, et que chaque tâche
     185possède un terminal privé, on peut avoir un grand nombre de terminaux. On aura donc un contrôleur TTY indépendant
     186pour chaque processeur.
     187
     188 * Le GIET ne pouvant supporter que 8 processeurs, on vérifiera que le paramètre NPROCS est inférieur ou égal à 8.
     189
     190 * Il faut définir des tableaux de pointeurs pour les composants répliqués PROC[i], TTY[i] et ICU[i], ainsi que pour les signaux associés, et introduire des boucles indexées par l'index du processeur chaque fois que ces composants sont concernés.
     191
     192 * Pour l'index des initiateurs (SRCID), on utilisera les valeurs 0 à (NPROCS-1) pour les processeurs, et les valeurs NPROCS et (NPROCS+1) pour le composant IOC et pour le composant DMA respectivement.
     193
     194 * pour l'index des cibles (TGTID), on utilisera les valeurs (0) à (6) pour les composants matériels non répliqués (ROM, RAM GCD, TIMER, IOC, DMA, FBF). On utilisera les valeurs (7) à ( 7 + NPROCS -1) pour les composants TTY[i]. On utilisera les valeurs (7 + NPROCS) à (7 + 2*NPROCS -1) pour les composants ICU[i].
     195
     196 * il faut définir NPROCS segments pour les composants ICU[i]. L'adresse de base du segment associé au composant ICU[i] est définie comme : seg_icu_base + 0x00100000 * proc_id (cette contrainte est imposée par le GIET).
     197
     198 * il faut définir NPROCS segments pour les NPROCS TTY[i]. L'adresse de base du segment associé au composant ICU[i] est définie comme : seg_tty_base + 0x00100000 * proc_id (cette contrainte est imposée par le GIET).
     199
     200'''Question''' : Modifiez le fichier '''tp4_top.cpp''' pour rendre l'architecture générique, conformément aux recommandations ci-dessus.
     201
     202'''Question''' : Modifiez le fichier '''tp4_top.desc''' pour créer un fichier '''tp4_top_multi.desc''', et modifiez le fichier '''Makefile''' en conséquence pour  générer un simulateur générique '''simulator_multi.x'''.
    194203
    195204== 5.2 Code de boot ==