Changes between Version 27 and Version 28 of SoclibCourseTp6
- Timestamp:
- Dec 26, 2013, 1:57:26 AM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp6
v27 v28 7 7 = 1 Objectifs = 8 8 9 L'objectif de ce TP est d'analyser en détail le modèle SystemC CABA d'un 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. 9 L'objectif de ce TP est d'analyser en détail le modèle du composant '''!VciXcacheWrapper''', dont l'architecture interne a été présentée dans le cours MPSOC. Ce composant contient quatre automates fonctionnant en parallèle (DCACHE_FSM, ICACHE_FSM, CMD_FSM et RSP_FSM), qui communiquent entre eux par des registres protégés par des bascules de type SET/RESET. 13 10 14 Il contient de plusun tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois.11 Il contient un tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois. 15 12 Ce tampon est accédé par les trois automates DCACHE_FSM, CMD_FSM et RSP_FSM. 16 13 … … 22 19 23 20 Créez un répertoire de travail TP6, et décompressez l'archive [attachment:soclib_tp6.tgz soclib_tp6.tgz]. 24 Cette archive contient en particulier les deux fichiers '''tp6_top.cpp''' et '''tp6_top.desc''', qui définissent une architecture 25 monoprocesseur presque identique à celle du TP4. Elle contient une ROM, une RAM, un TIMER, un contrôleur TTY, 26 un contrôleur de disque IOC, un contrôleur d'écran graphique FBF, un coprocesseur GCD, un contrôleur DMA et 27 un concentrateur d'interruptions ICU. 21 Cette archive contient en particulier les deux fichiers '''tp6_top.cpp''' et '''tp6_top.desc''', qui définissent une architecture monoprocesseur presque identique à celle du TP4. Elle contient une ROM, une RAM, un TIMER, un contrôleur TTY, un contrôleur de disque IOC, un contrôleur d'écran graphique FBF, un coprocesseur GCD, un contrôleur DMA et un concentrateur d'interruptions ICU. 28 22 29 La seule différence par rapport au TP4 est qu'on utilise un micro-réseau (composant '''!VciVgmn''') au lieu d'un bus 30 (composant '''!VciVgsb'''). Le micro-réseau supporte plusieurs transactions simultanées, mais possède une latence 31 importante: 20 cycles minimum pour acheminer la commande VCI, et autant pour acheminer la réponse VCI. 23 La seule différence par rapport au TP4 est qu'on utilise un micro-réseau (composant '''!VciVgmn''') au lieu d'un bus n(composant '''!VciVgsb'''). Le micro-réseau supporte plusieurs transactions simultanées, mais possède une latence importante: 20 cycles minimum pour acheminer la commande VCI, et autant pour acheminer la réponse VCI. 32 24 33 L'application logicielle qui se trouve dans le répertoire '''soft''' est l'application d'affichage d'images sur le terminal 34 graphique du TP4. Vous devez donc re-utiliser le fichier '''images.raw''' que vous avez utilisé dans le TP4. 25 L'application logicielle qui se trouve dans le répertoire '''soft''' est l'application d'affichage d'images sur le terminal graphique du TP4. Vous devez donc re-utiliser le fichier '''images.raw''' que vous avez utilisé dans le TP4. 35 26 36 Compilez l'application logicielle dans le répertoire '''soft''' . Générez le simulateur du prototype virtuel en utilisant 37 le Makefile qui vous est fourni. Lancez l'éxécution de l'application logicielle sur le prototype virtuel: 27 Compilez l'application logicielle dans le répertoire '''soft''' . Générez le simulateur du prototype virtuel en utilisant le Makefile qui vous est fourni. Lancez l'éxécution de l'application logicielle sur le prototype virtuel: 38 28 {{{ 39 29 $ ./simulator.x -IOCFILE path_to_images.raw … … 44 34 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 45 35 section 2 (CABA implementation). 46 Ce composant utilise deux objets C++ pour représenter d'une part le tampon d'écritures postées 36 37 Ce composant utilise deux classes C++ pour représenter d'une part le tampon d'écritures postées 47 38 ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/write_buffer/include write_buffer]), 48 et d'autre part le cache instruction et le cache dedonnées39 et d'autre part les deux caches instructions et données 49 40 ([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/generic_cache/include generic_cache]). 50 41 51 Il faut vraiment aller regarder dansle code du contrôleur de cache pour répondre aux questions suivantes:42 Il faut lire le code du contrôleur de cache pour répondre aux questions suivantes: 52 43 53 44 '''Question''' : Comment est implémenté l'interface entre le contrôleur de cache et l'ISS (Instruction Set Simulator) représentant le processeur? … … 55 46 '''Question''' : Quels sont les deux conditions de sortie de l'état IDLE de l'automate ICACHE_FSM ? 56 47 57 '''Question''' : Si la réponse VCI à une lecture d'instruction signale une erreur d'adressage, comment cette erreur est-elle 58 signalée au processeur? 48 '''Question''' : Si la réponse VCI à une lecture d'instruction signale une erreur d'adressage, comment cette erreur est-elle signalée au processeur? 59 49 60 '''Question''' : Quelles sont les six conditions de sortie de l'état IDLE de l'automate DCACHE_FSM ? Quelles sont les deux 61 requêtes spéciales (autres que des lectures ou des écritures en mémoire) qui sont acceptées par ce composant ? 50 '''Question''' : Quelles sont les six conditions de sortie de l'état IDLE de l'automate DCACHE_FSM ? Quelles sont les deux requêtes spéciales (autres que des lectures ou des écritures en mémoire) qui sont acceptées par ce composant ? 62 51 63 52 '''Question''' : Si la réponse VCI à une lecture de donnée signale une erreur d'adressage, comment cette erreur est-elle … … 69 58 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 ? 70 59 71 '''Question''' : En consultant le code de l'objet write_buffer, expliquez le fonctionnement du tampon d'écritures postées. 72 A quelle condition une transaction d'écriture VCI aura-t-elle une longueur supérieure à un flit? 60 '''Question''' : En consultant le code de l'objet write_buffer, expliquez le fonctionnement du tampon d'écritures postées. A quelle condition une transaction d'écriture VCI aura-t-elle une longueur supérieure à un flit? 73 61 74 62 '''Question''' : Donner l'expression de la condition ''irsp.valid'' (réponse valide à une requête de lecture instruction en provenance du processeu)?