| 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 |