Salta al contingut

    ↑ ↓ per moure't↵ per obrir

    Arquitectures paral·leles · 4.8

    Consolidació

    Repàs del tema 4: la taula de transicions del MSI, els estats del directori MSU i com es calculen els bits de coherència en UMA i en NUMA.

    Conceptes clau

    • Taula de transicions MSI
    • Estats U, S i M del directori
    • Bits de presència
    • Bits de coherència en UMA i NUMA

    UMA/SMP: protocol MSI, taula de transicions

    Estat Esdeveniment Acció al bus Estat nou
    I PrRd BusRd S
    I PrWr BusRdX M
    S PrRd — S
    S PrWr BusUpgr M
    S Snoop BusRd — S
    S Snoop BusRdX / BusUpgr — I
    M PrRd — M
    M PrWr — M
    M Snoop BusRd Flush S
    M Snoop BusRdX Flush I

    Si alguna caché té la línia en M → ella fa Flush; si és en S/I → la memòria principal.

    NUMA: protocol MSU, bits de presència i missatges

    Estats globals al directori (home node):

    Estat Significat Qui proveeix
    U (Uncached) Cap caché té la línia Memòria principal
    S (Shared) Un o més nodes tenen còpies netes Memòria principal
    M (Modified) Un node (owner) té còpia bruta Owner (Fetch)

    Bits de presència: 1 bit per node al directori. Registren exactament quins nodes tenen còpia d’una línia, permetent missatges punt a punt en lloc de broadcast.

    Càlcul de bits de coherència

    UMA: bits d’estat per caché (2 bits per MSI/MESI/MOSI; 3 bits a partir de MOESI):

    Bits cohereˋncia=Mida cacheˊMida lıˊnia×⌈log⁡2(nuˊm. estats)⌉\text{Bits coherència} = \frac{\text{Mida caché}}{\text{Mida línia}} \times \lceil \log_2(\text{núm. estats}) \rceil

    NUMA: bits de directori per node (sobre la memòria local):

    Bits directori=Mida MM localMida lıˊnia×(2⏟MSU+N⏟1 bit/node)\text{Bits directori} = \frac{\text{Mida MM local}}{\text{Mida línia}} \times (\underbrace{2}{\text{MSU}} + \underbrace{N}{\text{1 bit/node}})

    on NN és el nombre total de nodes del sistema. El cost creix linealment amb NN: afegir nodes augmenta els presence bits de totes les entrades de tots els directoris.