Changes between Version 16 and Version 17 of SoclibCourseTp6


Ignore:
Timestamp:
Jan 9, 2011, 8:04:52 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp6

    v16 v17  
    1212CMD_FSM et RSP_FSM). Ces automates communiquent entre eux par des registres protégés par des bascules de type SET/RESET.
    1313
    14 Il contient de plus un tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois,
    15 et qui est accédé par les trois automates DCACHE_FSM, CMD_FSM et RSP_FSM.
     14Il contient de plus un tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois.
     15Ce tampon est accédé par les trois automates DCACHE_FSM, CMD_FSM et RSP_FSM.
    1616
    1717On souhaite modifier le composant '''!VciXcacheWrapper''' pour qu'il utilise un tampon d'écritures postées
     
    2222Créez un répertoire de travail TP6, et décompressez l'archive [attachment:soclib_tp6.tgz soclib_tp6.tgz].
    2323Cette archive contient en particulier les deux fichiers '''tp6_top.cpp''' et '''tp6_top.desc''', qui définissent une architecture
    24 monoprocesseur très semblable à celle du TP4. Elle contient une ROM, une RAM, un TIMER, un contrôleur TTY,
     24monoprocesseur presque identique à celle du TP4. Elle contient une ROM, une RAM, un TIMER, un contrôleur TTY,
    2525un contrôleur de disque  IOC, un contrôleur d'écran graphique FBF, un coprocesseur GCD, un contrôleur DMA et
    2626un concentrateur d'interruptions ICU.
    2727
    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).
     28La 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
     30importante: 20 cycles minimum pour acheminer la commande VCI, et autant pour acheminer la réponse VCI.
    3131
    3232L'application logicielle qui se trouve dans le répertoire '''soft''' est l'application d'affichage d'images sur le terminal
     
    3939}}}
    4040
    41 '''Question''' Combien de cycles faut-il pour lire sur disque et afficher une image de 128*128 pixels?
     41'''Question''' : Combien de cycles faut-il pour lire sur disque et afficher une image? Combien cela représente-t-il de cycles par pixel?
    4242
    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
     43Vous 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
     44section 2 (CABA implementation).
     45Ce 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
     49Il 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 ?
     56Puisque 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.
     59A 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
     65Le 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
     66classe !VciXcacheWrapper qui sont préfixées par '''m_'''. Ces compteurs d'instrumentation se comportent
     67comme 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
     75Relancez 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
     84L'archive '''soclib_tp6.tgz''' qui vous est fournie comporte