Changes between Version 15 and Version 16 of SoclibCourseTp2
- Timestamp:
- Sep 9, 2009, 12:39:14 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp2
v15 v16 126 126 127 127 Dans 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''). 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 les classe C++ ''!AddressDecodingTable'' (voir fichier ''address_decoding_table.h'') et 129 ''!AddressMaskingTable'' (voir fichier ''address_masking_table.h'') 129 130 130 131 == 4.4 Allocation de tableaux == … … 240 241 241 242 En 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. 243 en précisant : 244 244 * 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. 245 246 * les valeurs des arguments des constructeurs des deux composants. 247 On prendra pour valeurs des paramètres VCI les valeurs définies en commentaire dans le fichier ''tp2_simple_top.cpp''. 246 248 247 249 == 5.4 Compilation et génération du simulateur == 248 250 249 Il faut ensuite compiler les différents fichiers pour générer le simulateur. 251 Il faut ensuite compiler les différents fichiers pour générer le simulateur. 252 On va utiliser la même méthode que dans le TP1, mais il y a une difficulté supplémentaire, à cause 253 du paramètre template ''vci_param'' des composants''!VciLcdMaster'', ''!VciLcdCoprocessor''. 254 Dans un contexte de compilation séparée, il est nécessaire de définir explicitement la valeur de ce paramètre 255 dans chacun des fichiers source avant de lancer la génération du fichier objet associé. 256 Pour cela, il faut rajouter la ligne suivante à la fin du fichier ''vci_lcd_master.cpp'' : 257 {{{ 258 template class VciLcdMaster<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >; 259 }}} 260 Il faut évidemment modifier également le fichier ''vci_lcd_coprocessor.cpp''. 261 262 Ceci étant fait, écrivez le Makefile permettant la génération du fichier exécutable ''simple_simulator.x''. 263 N'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 266 Le lancement du simulateur doit vous fournir la même trace d'exécution que celle que obtenue dans le TP1, puisque 267 les calculs effectués sont les mêmes (seul le protocole de communication a changé. 250 268 251 269 == 5.5 Architecture multi-maitres == … … 255 273 avec le coprocesseur (i). N'oubliez pas de définir 3 segments différents pour les trois coprocesseurs. 256 274 275 Il 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 {{{ 278 template class VciVgsb<soclib::caba::VciParams<4, 8, 32, 1, 1, 1, 12, 1, 1, 1> >; 279 }}} 280 281 Modifiez le makefile pour générer le fichier exécutable ''multi_simulator.x'', en n'oubliant pas d'inclure le fichier ''vci_vgsb.o'' 282 dans l'ensemble des fichiers objet. 283 Le lancement du simulateur doit vous fournir une trace d'exécution qui entrelace les compte-rendus des trois initiateurs 284 qui s'exécutent en parallèle. Chaque initiateur commande un seul coprocesseur, et la seule ressource partagée est le 285 bus de communication. 286 257 287 = 6. Compte-rendu = 258 288