Wikipedia para siempre
Apuntes::AIC [Arquitectura e Ingeniería de Computadores]::MSI - Simulación del protocolo de coherencia MSI
Permalink: http://www.treeweb.es/u/1068/ 25/04/2011

MSI - Simulación del protocolo de coherencia MSI

step instruction memory CPU0-cache CPU1-cache CPU2-cache CPU3-cache NOTAS
a0 a1 a2 a3 l0 l1 l0 l1 l0 l1 l0 l1
value value value value state dir value state dir value state dir value state dir value state dir value state dir value state dir value state dir value
0 - 100 200 300 400 I

I

I

I

I

I

I

I


1 1: read a2 100 200 300 400 I

I

S a2 300 I

I

I

I

I

PrRd/BusRd
2 3: read a2 100 200 300 400 I

I

S a2 300 I

I

I

S a2 300 I

PrRd/BusRd, Aunque lo tiene en otra cache, lo vuelve a leer de memoria
3 2: write a2=301 100 200 300 400 I

I

I a2 300 I

M a2 301 I

I a2 300 I

Hago un PrWr/BusRdX que invalida el resto de copias
4 0: read a2 100 200 301 400 S a2 301 I

I a2 300 I

S a2 301 I

I a2 300 I

Cuando leo un valor de memoria sucio, la caché que lo tiene actualizado hace un Flush
5 0: write a2=320 100 200 301 400 M a2 320 I

I a2 300 I

I a2 301 I

I a2 300 I

PrWr/BusRdX
6 1:write a2=330 100 200 320 400 M a2 320 I

M a2 330 I

I a2 301 I

I a2 300 I

PrWr/BusRdX, la actualización de memoria se hace para nada PORQUE justo después de actualizar la memoria queda sucia al sobreescribir el valor en la caché M
7 3: read a1 100 200 320 400 M a2 320 I

M a2 330 I

I a2 301 I

I a2 300 S a1 200
8 3: read a0 100 200 320 400 M a2 320 I

M a2 330 I

I a2 301 I

S a0 100 S a1 200
9 3: write a1 = 201 100 200 320 400 M a2 320 I

M a2 330 I

I a2 301 I

S a0 100 M a1 201
10 3: write a0 = 101 100 200 320 400 M a2 320 I

M a2 330 I

I a2 301 I

M a0 101 M a1 201 El procesador 3 tiene la cache llena
11 3: read a3 100 201 320 400 M a2 320 I

M a2 330 I

I a2 301 I

M a0 101 S a3 400 Replace/Flush & PrRe/BusRd, Si estuviera en estado S no haría el flush

Descargar en ODT