Changes between Version 33 and Version 34 of SoclibCourseTp6


Ignore:
Timestamp:
Dec 27, 2013, 10:32:05 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp6

    v33 v34  
    106106Relancez la simulation en activant la génération des statistiques (avec une période de 100000 cycles) avec la commande suivante:
    107107{{{
    108 $  ./simulator.x -IOCFILE path_to_images.raw -STATS 100000
     108$  ./simulator.x -IOCFILE path_to_images.raw -STATS 1000000
    109109}}}
    110110
     
    113113= 4 Modification du composant !VciXcacheWrapper =
    114114
    115 On a vu dans la section précédente que - lorsque la latence des transactions est importante - le processeur est souvent gelé en raison de requêtes d'écriture qui ne peuvent être satisfaites car le tampon d'écritures est plein.
    116 On souhaite donc modifier le contrôleur de cache pour qu'il utilise
    117 un tampon d'écritures plus évolués, permettant de ne pas attendre la réponse à une transaction d'écriture (n) pour envoyer la commande de la transaction (n+1). On souhaite également que les transactions de lecture - qui entraînent un gel du processeur - soient prioritaires par rapport aux transactions d'écriture (si les adresses sont différentes)
     115Lorsque la latence des transactions est importante, le processeur est souvent gelé en raison de requêtes d'écriture qui ne peuvent être satisfaites car le tampon d'écritures est plein. Lorsque le tampon d'écriture est plein, le coût des miss augmente, si les écritures sont prioritaires par rapport aux lectures.
     116 
     117On souhaite donc modifier le contrôleur de cache pour qu'il utilise un tampon d'écritures plus évolué, permettant de ne pas attendre la réponse à une transaction d'écriture (n) pour envoyer la commande de la transaction (n+1). On souhaite également que les transactions de lecture - qui entraînent un gel du processeur - soient prioritaires par rapport aux transactions d'écriture, quand les adresses sont différentes
    118118
    119 L'objet C++ [https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/multi_write_buffer/include multi_write_buffer] modélise un tampon d'écritures postées plus évolué, permettant de stocker plusieurs requêtes d'écriture indépendantes. Chacune de ces requêtes peut avoir une longueur supérieure à un flit.
     119La classe C++ [https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/multi_write_buffer/include multi_write_buffer] modélise un tampon d'écritures postées plus évolué, permettant de stocker plusieurs requêtes d'écriture indépendantes. Chacune de ces requêtes peut avoir une longueur supérieure à un flit.
    120120
    121121Il faut commencer par analyser le code du multi_write_buffer pour répondre aux questions suivantes:
     
    133133'''Question''' : A quoi sert la méthode ''update()'' ? Pourquoi doit-elle être appelée à chaque cycle ?
    134134
    135 L'archive '''soclib_tp6.tgz''' qui vous est fournie contient un répertoire '''vci_xcache_wrapper_new''', qui contient
    136 lui_même les 3 fichiers '''vci_xcache_wrapper_new.h''', '''vci_xcache_wrapper_new.cpp''', et '''vci_xcache_wrapper_new.sd''', décrivant une version modifiée du contrôleur de cache L1. Certains fichiers sont incomplets, et
    137 vous devez les compléter.
     135L'archive '''soclib_tp6.tgz''' qui vous est fournie contient un répertoire '''vci_xcache_wrapper_advanced''', qui contient lui_même les 3 fichiers '''vci_xcache_wrapper_advanced.cpp''', '''vci_xcache_wrapper_advanced.h''', et '''vci_xcache_wrapper_advanced.sd''', décrivant une version modifiée du contrôleur de cache L1. Le premier fichier est incomplet.
    138136
    139 '''Question''' : En comparant les fichiers d'interface '''vci_xcache_wrapper.h''' et '''vci_xcache_wrapper_new.h''', identifiez les modifications qui ont été introduites.
     137'''Question''' : En comparant les fichiers d'interface '''vci_xcache_wrapper.h''' et '''vci_xcache_wrapper_advanced.h''', identifiez les modifications qui ont été introduites.
    140138
    141139'''Question''' : Complêtez le fichier d'implémentation '''vci_xcache_wrapper_new.cpp''' pour que ce composant 
     
    149147
    150148'''Question''' : Modifiez les fichier '''tp6_top.cpp''' et '''tp6_top.desc''' décrivant l'architecture globale, pour instancier
    151 le composant !VciXcacheWrapperNew à la place du composant !VciXcacheWrapper, et renommez ces fichiers '''tp6_top_new.cpp''' et '''tp6_top_new.desc'''.
     149le composant !VciXcacheWrapperNew à la place du composant !VciXcacheWrapper, et renommez ces fichiers '''tp6_top_advanced.cpp''' et '''tp6_top_advanced.desc'''.
    152150
    153 Générez le prototype virtuel pour l'architecture ainsi modifiée avec la commande ci-dessous. L'argument ( -I vci_xcache_wrappe_new ) indique
    154 à l'outil de compilation '''soclib-cc''' qu'il doit utiliser le répertoire local ''vci_xcache_wrapper_new''.
     151Générez le prototype virtuel pour l'architecture ainsi modifiée avec la commande ci-dessous. L'argument ( -I vci_xcache_wrapper_advanced ) indique à l'outil de compilation '''soclib-cc''' qu'il faut utiliser le répertoire local ''vci_xcache_wrapper_advanced''.
    155152{{{
    156153$ soclib-cc -P -p tp6_top_new.desc -o simulator_new.x -I vci_xcache_wrapper_new
     
    160157commencer un gros tampon contenant 8 lignes de 4 mots de 32 bits, et on activera l'affichage des statistiques :
    161158{{{
    162 $ ./simulator_new.x -IOCFILE path_to_images.raw -WBUFW 4 -WBUFL 8 -STATS 100000
     159$ ./simulator_new.x -IOCFILE path_to_images.raw -WBUFW 4 -WBUFL 8 -STATS 1000000
    163160}}}
    164161
    165 '''Question''' : Combien faut_il de cycles pour afficher une image? Quel est le gain en performance apporté par l'utilisation du composant '''multi_write_buffer'''? Comment interprêtez-vous ce résultat ?
     162'''Question''' : Combien faut_il de cycles pour charger et afficher une image en utilisant le composant '''multi_write_buffer'''? Comment interprêtez-vous ce résultat ?
    166163
    167164'''Question''' : Est-il possible de diminuer la taille du tampon d'écriture postées sans dégrader trop fortement