| 9 | L'objectif de ce TP est d'analyser en détail le modèle SystemC CABA d'un ''vrai'' composant matériel complexe. |
| 10 | On va analyser le composant '''!VciXcacheWrapper''', dont l'architecture interne a été présentée dans le |
| 11 | cours MPSOC. Ce composant contient quatre automates fonctionnant en parallèle (DCACHE_FSM, ICACHE_FSM, |
| 12 | CMD_FSM et RSP_FSM). Ces automates communiquent entre eux par des registres protégés par des bascules de type SET/RESET. |
| 13 | |
| 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. |
| 16 | |
| 17 | On souhaite modifier le composant '''!VciXcacheWrapper''' pour qu'il utilise un tampon d'écritures postées |
| 18 | plus évolué, supportant plusieurs transactions VCI simultanées, et on veut évaluer le gain en performance obtenu. |
| 19 | |
| 20 | = 2 Analyse du composant !VciXcacheWrapper = |
| 21 | |
| 22 | Créez un répertoire de travail TP6, et décompressez l'archive [attachment:soclib_tp6.tgz soclib_tp6.tgz]. |
| 23 | Cette 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, |
| 25 | un contrôleur de disque IOC, un contrôleur d'écran graphique FBF, un coprocesseur GCD, un contrôleur DMA et |
| 26 | un concentrateur d'interruptions ICU. |
| 27 | |
| 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). |
| 31 | |
| 32 | L'application logicielle qui se trouve dans le répertoire '''soft''' est l'application d'affichage d'images sur le terminal |
| 33 | graphique du TP4. Vous devez donc re-utiliser le fichier '''images.raw''' que vous avez utilisé dans le TP4. |
| 34 | |
| 35 | Compilez l'application logicielle dans le répertoire '''soft''' . Générez le simulateur du prototype virtuel en utilisant |
| 36 | le Makefile qui vous est fourni. Lancez l'éxécution de l'application logicielle sur le prototype virtuel: |
| 37 | {{{ |
| 38 | $ ./simulator.x -IOCFILE path_to_images.raw |
| 39 | }}} |
| 40 | |
| 41 | '''Question''' Combien de cycles faut-il pour lire sur disque et afficher une image de 128*128 pixels? |
| 42 | |
| 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 |