28 | | La seule différence par rapport au TP4 est qu'on utilise un micro-réseau (composant '''VciVgmn''') au lieu d'un bus |
29 | | (composant '''VciVgsb'''). Le micro-réseau supporte plusieurs transactions simultanées, mais possède une latence |
30 | | importante (20 cycles minimum pour acheminer la commande VCI, et autant pour acheminer la réponse VCI). |
| 28 | La seule différence par rapport au TP4 est qu'on utilise un micro-réseau (composant '''!VciVgmn''') au lieu d'un bus |
| 29 | (composant '''!VciVgsb'''). Le micro-réseau supporte plusieurs transactions simultanées, mais possède une latence |
| 30 | importante: 20 cycles minimum pour acheminer la commande VCI, et autant pour acheminer la réponse VCI. |
43 | | Vous pouvez consulter le code du composant !VciXcacheWrapper [https://www.soclib.fr/trac/dev/wiki/Component/VciXcacheWrapper ici]. |
44 | | Ce composant !VciXcacheWrapper''' contient un certains nombres de compteurs d'activité permettant d'afficher des statistiques sur le comportement du processeur et du cache |
45 | | Pour mieux comprendre ces résultats pous pouvez activez comprendre |
46 | | = 3 Modification du composant VciXcacheWrapper = |
47 | | pour est accédé par les trois automates DCACHE_FSM, CMD_FSM et RSP_FSM. |
48 | | de facon à introduire de nouvelles fonctionnalités. |
49 | | Le composant |
| 43 | Vous pouvez consulter le code du composant !VciXcacheWrapper [https://www.soclib.fr/trac/dev/wiki/Component/VciXcacheWrapper ici], en cliquant sur les liens définis dans la |
| 44 | section 2 (CABA implementation). |
| 45 | Ce composant utilise deux objets C++ pour représenter le tampon d'écritures postées |
| 46 | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/write_buffer write_buffer] et les deux caches |
| 47 | ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/generic_cache generic_cache]. |
| 48 | |
| 49 | Il faut vraiment aller regarder dans le code pour répondre aux questions suivantes: |
| 50 | |
| 51 | '''Question''' : Comment est implémenté l'interface entre le cache et le processeur? |
| 52 | |
| 53 | '''Question''' : En analysant le code de la fonction de transition (et en vous appuyant sur le cours MPSOC, représenter graphiquement les graphes de transition des 4 automates ICACHE_FSM, DCACHE_FSM, CMD_FSM, RSP_FSM. |
| 54 | |
| 55 | '''Question''' : Quelles sont les 5 types de transactions VCI qui peuvent être émises par ce contrôleur de cache ? |
| 56 | Puisque ce contrôleur de cache possède un seul port VCI initiateur, l'automate CMD_FSM doit respecter une priorité en cas de requêtes simultanées. Quelle est la politique de priorité implémentée par ce contrôleur ? |
| 57 | |
| 58 | '''Question''' : En consultant le code de l'objet write_buffer, expliquez le fonctionnement du tampon d'écritures postées. |
| 59 | A quelle condition une transaction d'écriture VCI aura-t-elle une longueur supérieure à un flit? |
| 60 | |
| 61 | '''Question''' : Donner l'expression de la condition ''irsp.valid'' (réponse valide à une requête de lecture instruction en provenance du processeu)? |
| 62 | |
| 63 | '''Question''' : Donner l'expression de la condition ''drsp.valid'' (réponse valide à une requête de lecture ou d'écriture de donnée en provenance du processeu)? |
| 64 | |
| 65 | Le composant !VciXcacheWrapper contient un certains nombres de compteurs d'activité permettant d'afficher des statistiques sur le comportement du processeur et du cache. Ces compteurs sont les variables membre de la |
| 66 | classe !VciXcacheWrapper qui sont préfixées par '''m_'''. Ces compteurs d'instrumentation se comportent |
| 67 | comme des registres: ils sont donc initialisés lors du reset et sont incrémentés dans la fonction de transition. |
| 68 | |
| 69 | '''Question''' : Comment est calculé le nombre moyen de cycles par instruction (CPI) ? |
| 70 | |
| 71 | '''Question''' : Comment sont calculés le ''miss_rate'' (taux de miss) et le ''miss_cost'' (coût moyen du miss) pour chacun des deux caches ? |
| 72 | |
| 73 | '''Question''' : A quoi correspond le ''write_cost" (cout moyen d'écriture) pour le tampon d'écritures postées ? comment est-il calculé? |
| 74 | |
| 75 | Relancez la simulation en activant la génération des statistiques (avec une période de 100000 cycles) avec la commande suivante: |
| 76 | {{{ |
| 77 | $ ./simulator.x -IOCFILE path_to_images.raw -STATS 100000 |
| 78 | }}} |
| 79 | |
| 80 | '''Question''' : Qelles valeurs obtenez-vous à la fin de l'affichage de la première image pour le CPI, pour les différentes caractéristiques définies ci-dessus ? Comment interprêtez-vous ces résultats ? |
| 81 | |
| 82 | = 3 Modification du composant !VciXcacheWrapper = |
| 83 | |
| 84 | L'archive '''soclib_tp6.tgz''' qui vous est fournie comporte |