Changes between Version 12 and Version 13 of SoclibCourseTp5


Ignore:
Timestamp:
Oct 20, 2009, 8:21:35 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp5

    v12 v13  
    186186}}}
    187187
    188 == 4.1 Utilisation de GDB ==
     188== 4.1 GDB Server ==
    189189
    190190On va dans un premier temps réutiliser la même architecture mono-processeur que celle modélisée dans le TP4, et on cherche
    191191à exécuter la même application logicielle embarquée. Mais deux ''bugs'' ont été volontairement introduit dans le logiciel, et l'objet de cette première partie est de localiser et de corriger ces deux ''bugs'', en utilisant l'outil '''GDB Server'''.
     192
     193[[Image(soclib_tp4_cluster.png)]]
    192194
    193195Commencer par vous placer dans le répertoire '''soft''', et lancez le Makefile pour générer le fichier '''bin.soft''', ainsi que le
     
    209211== 4.2 architecture à 4 clusters ==
    210212
    211 On souhaite maintenant modéliser une architecture quadri-processeurs structurée en quatre clusters identiques,
    212 ressemblant fortement à l'architecture du TP4. Chaque cluster contient donc un processeur MIPS32, un composant ICU, un timer,
    213 un contrôleur de terminal TTY, et une mémoire. On utilisera un composant '''vci_local_crossbar''' comme interconnect local dans chaque
    214 cluster, et le composant '''vci_vgmn''' comme interconnect global.
    215 
    216 Il faut donc écrire les deux fichiers tp5_top.cpp et TP5.desc correspondant à cette architecture.
     213On souhaite maintenant modéliser une architecture quadri-processeurs structurée en quatre clusters presque identiques,
     214Chaque cluster contiendra un processeur MIPS32, un composant ICU, un timer, et une mémoire. On se dispensera d'instancier le coprocesseur GCD dans cette architecture. On instanciera un seul contrôleur de TTY (contrôlant 4 terminaux numérotés de 0 à3),
     215et une seule ROM de boot qu'on placera respectivement dans le cluster 0 et dans le cluster 3. On utilisera un composant '''vci_local_crossbar''' comme interconnect local ( voir documentation [https://www.soclib.fr/trac/dev/wiki/Component/VciXcacheWrapper ici]) , et on utilisera le composant '''vci_vgmn''' comme interconnect global ( voir documentation [https://www.soclib.fr/trac/dev/wiki/Component/VciXcacheWrapper ici]) .
     216
     217Il faut donc écrire les deux fichiers tp5_top.cpp et TP5.desc correspondant à cette architecture,
     218en veillant à donner des valeurs croissantes (de 0 à 3) à l'argument ''processor-id'' des 4 processeurs.
     219
     220Il faut définir de nouveaux segments pour les nouveaux périphériques. Il faut également définir 4 segments distincts
     221pour les piles d'exécution des 4 processeurs. En revanche, les segment seg_reset, seg_kernel et seg_code qui ne contiennent que des instructions peuvent être partagés par les 4 processeurs.
     222
     223Le code de boot doit également être modifié. Lors du démarrage, les quatre processeurs vont  exécuter le même code,
     224mais les actions réalisées peuvvent dépendre du processor_id : En particulier, les pointeur de pile des quatre processeurs
     225doivent être initialisés à des valeurs différentes puisque chaque processeur travaille dans son propre segment de pile.
     226
     227En sortie de la séquence de boot, les quatre processeurs peuvent se brancher au même programme main().
     228
     229Si tout se passe normalement, les quatre processeurs doivent exécuter le même programme interactif ''Hello World'', chacun
     230sur son propre terminal.
     231
     232Si ce n'est pas le cas, il vous reste le '''GDB Server'''...
    217233
    218234= 5 Compte_rendu =
     235
     236Il ne vous est pas demandé de compte-rendu pour ce TP, mais on vous demandera une démonstration de votre simulateur au début du TP de la semaine suivante...