Changes between Version 1 and Version 2 of Archi3TP2


Ignore:
Timestamp:
Oct 20, 2015, 2:17:24 PM (10 years ago)
Author:
meunier
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi3TP2

    v1 v2  
    66L'objectif de ce TP est de comprendre l'implémentation d'un protocole de cohérence de cache de type write-back MESI.
    77
    8 Pour cela, on demande l'écriture des machines d'états d'un controlleur de cache L1 write-through et du controlleur mémoire associé, comme lors du TP1.
    9 
     8Pour cela, on demande l'écriture des machines d'états d'un controlleur de cache L1 write-back et du controlleur mémoire associé, comme lors du TP1.
    109
    1110== 1. Spécification ==
    1211
    13 Dessinez sur une feuille (ou sur un logiciel adapté) les machines d'état du cache L1 write-back MESI et du contrôleur mémoire associé. Comme pour le TP1, on s'intéresse pour ce TP uniquement à la partie données du cache. De plus, on ne s'intéresse pas aux requêtes à des adresses non cachées : on suppose donc que toutes les requêtes sont à des adresses cachées.
     12Dans cette première partie, il vous est demandé de dessiner sur une feuille (ou sur un logiciel adapté) les machines d'état du cache L1 write-through à invalidations et du contrôleur mémoire associé. La liste des états vous est donnée ci-dessous, il faut donc remplir chaque état avec les actions qui y sont associées et représenter les transitions entre états. Pour représenter les actions, vous pouvez utiliser du français ou du pseudo-code.
     13Liste des états du contrôleur de cache :
    1414
    15 Ce dessin fera partie du rendu.
     15
     16
     17{{{
     18IDLE,         // Détecter les requêtes d'invalidation et du processeur, répondre aux lectures qui font hit
     19WRITE_UPDATE, // Après une écriture : mettre à jour le cache, répondre au processeur
     20MISS,         // Envoyer une requête de miss (au sens large)
     21WRITE_BACK,   // Envoyer une requête d'écriture pour évincer une ligne dirty
     22MISS_WAIT,    // Attendre la réponse à un miss et la traiter
     23INVAL         // Traiter une requête d'invalidation
     24}}}
     25
     26
     27Liste des états du contrôleur mémoire :
     28
     29{{{
     30IDLE,       // Traiter les requêtes qui arrivent
     31READ_LINE,  // Tester si l'envoi d'invalidation est requis
     32GETM,       // Tester si l'envoi d'invalidation est requis
     33WRITE_LINE, // Répondre à une requête d'écriture, mettre à jour les données du cache (suite à une requête de write-back)
     34INVAL,      // Initialiser l'envoi d'invlidations
     35INVAL_SEND, // Envoyer les invalidations
     36INVAL_WAIT, // Attendre les réponses aux invalidations envoyées
     37DIR_UPDATE, // Mettre à jour les meta-données du cache
     38RSP_GETM,   // Répondre à une requête GETM ou GETM_LINE
     39RSP_READ    // Répondre à une requête de MISS
     40}}}
     41
     42Comme pour le TP1, ce schéma fera partie du rendu.
    1643
    1744
    1845== 2. Prise en main des sources ==
    1946
    20 Vous pouvez réutiliser les packages importés pour le TP1. Il suffit de changer l'instance des contrôleurs de cache et mémoire dans le fichier topcells/Top2Procs.java :
     47Vous pouvez réutiliser les packages importés pour le TP1. Il suffit de changer l'instance des contrôleurs de cache et mémoire dans les fichiers de topcell (par exemple, topcells/Top2Procs.java) :
    2148 * `MemController memCtrl = new MemWtiController` -> `MemController memCtrl = new MemMesiController`
    2249 * `L1Controller l1Ctrl = new L1WtiController` -> `L1Controller l1Ctrl = new L1MesiController`
    2350
    24 La figure ci-dessous présente un diagramme objet simplifié pour une architecture avec deux processeurs / caches L1 et un banc mémoire.
     51Le schéma du diagramme objet donné pour le TP1 est redonné ci-dessous :
    2552
    2653[[Image(diagramme_objet.svg)]]