Changes between Version 5 and Version 6 of MultiCourseTP9_QR


Ignore:
Timestamp:
Jun 9, 2020, 10:20:48 PM (5 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MultiCourseTP9_QR

    v5 v6  
    1 = QUESTIONS sur le TP9 / Applications parallèles coopératives =
     1= QUESTIONS sur le TP9 / Synchronisation dans les applications parallèles coopératives =
    22
    33== Q1) Pourquoi le mécanisme de synchronisation par bascule SET/RESET ne nécessite-t-il pas d'instructions assembleur spéciales ? ==
     
    2121== Q4) == Comment les instructions ''ll/sc'' sont-elles implémentées dans le matériel matériel ? ==
    2222
     23Conceptuellement, la mise sous surveillance d'une adresse X devrait être réalisée par le contrôleur mémoire, qui centralise toutes les requêtes de lecture ou d'écriture.
    2324
     25Mais en pratique, dans les architectures à base de bus permettant le scoop (c'est à dire la possibilité pour n'importe quel maître de surveiller ce que font les autres maîtres), l'enregistrement des requêtes de mise sous surveillance peur être distribuée dans chacun des contrôleurs de cache L1, et c'est ce qui est fait par le contrôleur de cache L1 utilisé dans l'UE Multi, comme cela peut être vérifié
     26en analysant le comportement des 4 automates contenus dans ce composant matériel.
     27
     28Plus précisément, l'exécution d'une instruction ''ll(X)'' par un coeur se traduit par une requête de type LL vers l'automate DCACHE_FSM du contrôleur de cache. Cet automate enregistre l'adresse X dans un registre spécifique LLSC_ADDR, ainsi que la validité de cette requête dans  une bascule  LLSC_VALID, envoie une requête de lecture non cachable  vers l'automate PIBUS_FSM, et gèle le coeur en attendant la réponse de la mémoire. Si l'automate SNOOP_FSM détecte qu'un autre coeur effectue une écriture à une adresse X enregistrée dans les registres LLSC_ADDR et LLSC_VALID, celle ci est invalidée.
     29Par ailleurs, l'exécution d'un instruction ''sc(X)'' par un coeur se traduit par une requête de type LL vers l'automate DCACHE_FSM du contrôleur de cache. Si il existe une requête LLSC valide dans les registres LLSC_ADDR et LLSC_VALID, c'est un succès, et cet automate envoie une requête d'écriture vers l'automate PIBUS_FSM. Sinon, l'automate DCACHE_FSM retourne directement une réponse d'échec au coeur demandeur.
    2430
    2531== Q5) L'instruction assembleur ''sync'' empêche le re-ordonnancement des instructions par le processeur lui-même. Plus précisément toutes les instructions de lecture ou d'écriture en mémoire placées avant l'instruction ''sync'' sont garanties être effectivement exécutée AVANT l'exécution de la première instruction de lecture/écriture placée après l'instruction sync. Comment l'instruction assembleur ''sync'' est-elle implémentée dans le matériel ? ==