Salta al contingut

    ↑ ↓ per moure't↵ per obrir

    Arquitectures paral·leles · 4.2

    Polítiques d'escriptura i mecanismes de coherència

    Quan un core escriu una línia que tenen altres cachés, el hardware pot actualitzar-les o invalidar-les (política), i ho comunica per un bus de broadcast o per un directori (mecanisme).

    Conceptes clau

    • Write-Update
    • Write-Invalidate
    • Snooping (broadcast) en UMA/SMP
    • Directori en NUMA

    Un cop identificat el problema, cal definir quina política d’escriptura aplica el hardware quan un processador escriu sobre una línia copiada en altres cachés, i quin mecanisme utilitza per comunicar-ho.

    Polítiques d’escriptura: Write-Update vs Write-Invalidate

    La política estableix què cal fer amb les còpies d’una línia quan un core hi escriu: actualitzar-les o invalidar-les.

    • Write-Update: quan un core escriu, fa broadcast del nou valor a totes les cachés que tenen la línia, forçant una actualització immediata. Evita misses de coherència, però genera molt trànsit si hi ha escriptures consecutives que ningú més llegeix.
    • Write-Invalidate (estàndard): quan un core escriu, invalida totes les altres còpies; els altres cores hauran de tornar a demanar la línia quan la necessitin. Redueix el trànsit (només la primera escriptura genera invalidacions) a costa de més invalidation misses.

    Mecanismes de coherència: Snooping vs Directori

    El mecanisme diu com es comuniquen les cachés per dur a terme la política d’escriptura.

    Broadcast-based (Snooping): sistemes UMA/SMP. S’utilitza un bus de broadcast on totes les cachés «escolten» (snoop) les transaccions i reaccionen. Funciona bé amb pocs cores, però no escala: el bus es converteix en un coll d’ampolla.

    Tres cores amb la seva caché connectats a un bus de broadcast i a la memòria principal: totes les cachés veuen totes les transaccions. (figura al dossier, p. 7)

    Directory-based (Directori): sistemes NUMA. Un directori registra qui té còpies de cada línia, permetent enviar missatges punt a punt només als nodes implicats, eliminant el broadcast. Escala molt millor per a sistemes grans.

    Les mateixes tres cachés connectades a un directori: només els nodes implicats reben missatges. (figura al dossier, p. 7)