Changes between Version 15 and Version 16 of SoclibCourseTp2


Ignore:
Timestamp:
Sep 9, 2009, 12:39:14 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp2

    v15 v16  
    126126
    127127Dans une architecture à mémoire partagée, l'adresse VCI est décodée à différents endroits :
    128 les bits de poids faibles sont décodés par les périphériques adressables pour déterminer l'action à réaliser, et les bits de poids fort sont décodés par le sous-système d'interconnexion pour déterminer l'index de la cible concernée. Pour faciliter ce décodage, la plate-forme SoCLib définit la classe C++ ''!AddressDecodingTable'' (voir fichier ''address_decoding_table.h'').
     128les bits de poids faibles sont décodés par les périphériques adressables pour déterminer l'action à réaliser, et les bits de poids fort sont décodés par le sous-système d'interconnexion pour déterminer l'index de la cible concernée. Pour faciliter ce décodage, la plate-forme SoCLib définit les classe C++ ''!AddressDecodingTable'' (voir fichier ''address_decoding_table.h'') et
     129''!AddressMaskingTable'' (voir fichier ''address_masking_table.h'')
    129130
    130131== 4.4 Allocation de tableaux ==
     
    240241
    241242En vous inspirant de ce que vous avez fait dans le TP1, complétez le fichier ''tp2_simple_top.cpp'' qui vous est fourni,
    242 en précisant
    243  * les valeurs des paramètres VCI.
     243en précisant :
    244244 * les caractéristiques du segment mémoire associé au coprocesseur LCD.
     245 * les valeurs des paramètres VCI (largeurs des champs) dans l'objet vci_param.
    245246 * les valeurs des arguments des constructeurs des deux composants.
     247On prendra pour valeurs des paramètres VCI les valeurs définies en commentaire dans le fichier ''tp2_simple_top.cpp''.
    246248
    247249== 5.4 Compilation et génération du simulateur ==
    248250
    249 Il faut ensuite compiler les différents fichiers pour générer le simulateur.
     251Il faut ensuite compiler les différents fichiers pour générer le simulateur.
     252On va utiliser la même méthode que dans le TP1, mais il y a une difficulté supplémentaire, à cause
     253du paramètre template ''vci_param'' des composants''!VciLcdMaster'', ''!VciLcdCoprocessor''.
     254Dans un contexte de compilation séparée, il est nécessaire de définir explicitement la valeur de ce paramètre
     255dans chacun des fichiers source avant de lancer la génération du fichier objet associé.
     256Pour cela, il faut rajouter la ligne suivante à la fin du fichier ''vci_lcd_master.cpp'' :
     257{{{
     258template class VciLcdMaster<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >;
     259}}}
     260Il faut évidemment modifier également le fichier ''vci_lcd_coprocessor.cpp''.
     261
     262Ceci étant fait, écrivez le Makefile permettant la génération du fichier exécutable ''simple_simulator.x''.
     263N'oubliez pas d'inclure dans la liste des fichiers objets les fichiers ''mapping_table.o'', ''segment.o'', ''address_decoding_table.o'',
     264''address_masking_table.o'' (en plus des fichiers objet correspondant aux deux composants matériels
     265
     266Le lancement du simulateur doit vous fournir la même trace d'exécution que celle que obtenue dans le TP1, puisque
     267les calculs effectués sont les mêmes (seul le protocole de communication a changé.
    250268
    251269== 5.5 Architecture multi-maitres ==
     
    255273avec le coprocesseur (i). N'oubliez pas de définir 3 segments différents pour les trois coprocesseurs.
    256274
     275Il faut également ajouter à la fin du fichier ''vci_vgsb.cpp'' la ligne permettant de défénir la valeur du paramètre template
     276''vci_param'' :
     277{{{
     278template class VciVgsb<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >;
     279}}}
     280
     281Modifiez le makefile pour générer le fichier exécutable ''multi_simulator.x'', en n'oubliant pas d'inclure le fichier ''vci_vgsb.o''
     282dans l'ensemble des fichiers objet.
     283Le lancement du simulateur doit vous fournir une trace d'exécution qui entrelace les compte-rendus des trois initiateurs
     284qui s'exécutent en parallèle. Chaque initiateur commande un seul coprocesseur, et la seule ressource partagée est le
     285bus de communication.
     286
    257287= 6. Compte-rendu =
    258288