| 1 | |
| 2 | = M2 SESI - Archi 3 = |
| 3 | |
| 4 | = TP1 : Machine d'états d'un cache L1 Write-Through cohérent = |
| 5 | |
| 6 | L'objectif de ce TP est de comprendre l'implémentation d'un protocole de cohérence de cache à un niveau de détail assez élevé (mais non caba). |
| 7 | |
| 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é. |
| 9 | |
| 10 | |
| 11 | == 1. Spécification == |
| 12 | |
| 13 | Dessinez 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é, en étant le plus précis possible. |
| 14 | Ce dessin fera partie du rendu, ne le négligez donc pas. |
| 15 | |
| 16 | |
| 17 | == 2. Prise en main des sources == |
| 18 | |
| 19 | Commencez par copier sur votre compte l'archive à l'emplacement `~meunier/Archi3_CoherenceProtocol.jar`. |
| 20 | |
| 21 | Lancez eclipse, puis créez un nouveau projet java pour lequel vous importerez l'archive. |
| 22 | |
| 23 | Les classes du package `View` contiennent les éléments de l'interface graphique (sommaire), et celles du package `Controller` les écouteurs associés. Il n'est pas nécessaire de les regarder dans le détail. |
| 24 | |
| 25 | Les classes modélisant l'architecture sont dans le package `Model`. |
| 26 | |
| 27 | La figure ci-dessous présente un diagramme objet simplifié pour une architecture avec deux processeurs / caches L1 et un banc mémoire. |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | == 3. Écriture des machines d'état == |
| 35 | |
| 36 | Une fois les sources du package Model à peu près maitrisées, il faut compléter les classes L1WtiController et !MemWtiController à partir des machines d'état dessinées dans la partie 1. |
| 37 | |
| 38 | Pour lancer une simulation, il faut faire un clic droit sur une la classe `Simul.java` du package `Simulation`, puis `Run as...` -> `java application` |
| 39 | |
| 40 | Il faudra bien sûr tester votre code au travers d'entrelacements de requêtes bien choisis. Vous pouvez soit créer ces requêtes dans la classe de la Topcell, soit dynamiquement depuis l'interface en cours de simulation. |
| 41 | |
| 42 | |
| 43 | == 4. Rendu == |
| 44 | |
| 45 | Vous devrez rendre un compte-rendu sommaire (papier ou électronique) comprenant le schéma, ainsi que les tests que vous avez effectués et leur justification (ce que vous avez voulu tester pour chaque test). De plus, si votre code n'est pas fonctionnel au moment du rendu, il faudra expliquer les fonctionnalités manquantes ou les tests qui ne marchent pas. |
| 46 | |
| 47 | Le code à rendre l'est sous la forme d'une archive comprenant les 2 fichiers écrits, à envoyer à l'adresse [MailAsim:quentin.meunier Quentin Meunier]. |
| 48 | |
| 49 | |
| 50 | |