Changes between Version 27 and Version 28 of SoclibCourseTp6


Ignore:
Timestamp:
Dec 26, 2013, 1:57:26 AM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp6

    v27 v28  
    77= 1 Objectifs =
    88
    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.
     9L'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.
    1310
    14 Il contient de plus un tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois.
     11Il contient un tampon d'écriture postées, qui ne permet qu'une seule transaction d'écriture VCI à la fois.
    1512Ce tampon est accédé par les trois automates DCACHE_FSM, CMD_FSM et RSP_FSM.
    1613
     
    2219
    2320Cré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.
     21Cette 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.
    2822
    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.
     23La 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.
    3224
    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.
     25L'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.
    3526
    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:
     27Compilez 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:
    3828{{{
    3929$ ./simulator.x -IOCFILE path_to_images.raw
     
    4434Vous 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
    4535section 2 (CABA implementation).
    46 Ce composant utilise deux objets C++ pour représenter d'une part le tampon d'écritures postées
     36
     37Ce composant utilise deux classes C++ pour représenter d'une part le tampon d'écritures postées
    4738([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 de données
     39et d'autre part les deux caches instructions et données
    4940([https://www.soclib.fr/trac/dev/browser/trunk/soclib/soclib/lib/generic_cache/include generic_cache]).
    5041
    51 Il faut vraiment aller regarder dans le code du contrôleur de cache pour répondre aux questions suivantes:
     42Il faut lire le code du contrôleur de cache pour répondre aux questions suivantes:
    5243
    5344'''Question''' : Comment est implémenté l'interface entre le contrôleur de cache et l'ISS (Instruction Set Simulator) représentant le processeur?
     
    5546'''Question''' : Quels sont les deux conditions de sortie de l'état IDLE de l'automate ICACHE_FSM ?
    5647
    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?
    5949
    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 ?
    6251
    6352'''Question''' : Si la réponse VCI à une lecture de donnée signale une erreur d'adressage, comment cette erreur est-elle
     
    6958Puisque 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 ?
    7059
    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?
    7361
    7462'''Question'''  : Donner l'expression de la condition ''irsp.valid'' (réponse valide à une requête de lecture instruction en provenance du processeu)?