Juan Carlos Femandez Gallardo
PRACTICA SMP-Cache
Inicialmente todos los bloques de las cachés estén vacios y en estado I. Sabemos
que todos los procesadores van a solicitar un mismo bloque. 2Qué va a suceder?
Ejecute el primer paso de la simulacién y afiada al diagrama el arco correspondiente
al evento ocurrido (incluya la accién que se produce y si es fallo o acierto).
éCambiaré el arco si el bloque solicitado ya estuviese en estado S?
PO lanza peticién de lectura BusRd y leera el bloque desde la memoria principal. El resto de
procesadores deberdn esperar a que acabe PO.
Si esté en M se mantiene igual y se lanza acierto en lectura cache.
Avance hasta el paso 17 de la simulacién. PO va a escribir en un bloque que todos los
procesadores tienen en estado S. Qué sucedera? Represente en el diagrama lo que
sucedera con el bloque que va a ser escrito, y el correspondiente al mismo bloque en
el resto de cachés cuando reciban la pe
Se lanza lectura exclusiva BusRdk, esto invalida la copia de este bloque en los demas
procesadores, PO pasa a M y el resto de procesadores a |
En el siguiente paso, P1, que se habia quedado esperando para escribir el mismo
bloque en el anterior paso, quiere acceder al bloque para escritura. Qué sucederé?
Represente en el grafo la accién en la caché de P1y en el resto de cachés, que
responderdn a la peticién en el bus.
Cuando el bus quede libre de PO, P1 lanza una BusRdx de PO que tiene el bloque aM, e!
resto de procesadores pasan a I
Avance hasta el paso 19. P2 va a leer el bloque que fue escrito en el paso anterior.
Dado que lo tiene invalidado, va a colocar Read Miss (Fallo de lectura) en el bus.
Qué hard P1 (tiene el dato M) al detectar Read Miss (Fallo de lectura) en el bus?
Represéntelo en el diagrama.
Si en P1 esta el bloque en My se detecta fallo de lectura en el bus, se coloca el bloque en
el bus para que P2 lo pueda leer. Luego se almacena el bloque en la memoria principal.Juan Carlos Femandez Gallardo
En el paso 55 (no avance atin hasta él), P2 necesita acceder para escribir sobre el
bloque 0. Este bloque no esta cargado en caché y el bloque de caché donde se debe
cargar esté ocupado por el bloque 106560, en estado M. Antes de avanzar hasta el
paso 55, piense qué suceder4 y represéntelo al diagrama. Avance al paso 55,
zCoincide con lo que habia pensado?
P2 hace PrWr y recibe fallo en caché, por lo que se realiza una BusRdx, se le concede el
bus a P2y P1 pasa el bloque 0. Como el bloque esta ocupade, se realiza BusWb de P2 del
bloque 106560 y se transfiere este a memoria principal, por lo que queda libre en caché y se
puede escribir en el bloque 0.
Si, coincide.
En el paso 1208, PO necesita acceder para escritura al bloque 114816. El bloque no se
encuentra en la caché y ademas el bloque donde debe ser almacenado esta ocupado
por otro bloque en estado S. ,Qué ocurrird en la caché de PO? Dibuje en el diagrama
el arco que representa lo ocurrido. El bloque que ha sido accedido para escritura
figura como S en las cachés de los procesadores P2 y P3. Qué ocurrira en las
cachés de estos procesadores cuando reciban la peticién generada por la caché de
PO? Represéntelo en el diagrama. Para comprobar si esté en lo cierto, compruebe el
contenido de las cachés de P2 y P3 tras ejecutar el paso 1208.
PO lee el bus y pide el bloque que queremos, borra el que almacenaba previamente que
solo habia leido, luego PO hace un BusRdx, P2 y P3 ya pueden acceder al bloque que
quieren escribir, y luego, pasara a estado | después de haber sido escrito en la caché de P2
y P3.
Qué ocurrira si para un bloque en estado M se produce un Write Hit (acierto de
escritura)? zY si es un Read Hit (acierto de lectura)? Represente los arcos
correspondientes en el diagrama de estado y busque en la traza un ejemplo de
ambos.
Si se produce un acierto de lectura o de escritura de un bloque en estado M, se mantendra
en ese estado.Juan Carlos Femandez Gallardo
Qué ocurrira si para un bloque que esta en estado S se produce un Read Hit (acierto
de lectura)? zY si es un Read Miss (acierto de lectura)? Represente los arcos
correspondientes en el diagrama de estado y busque en la traza un ejemplo de
ambos. Arquitectura los procesadores van a solicitar un mismo bloque. ¢Qué va a
suceder?
Si hay acierto de lectura , el bloque en S se mantiene igual.
Si es un fallo de lectura, el bloque lee la memoria para intentar recuperar esos datos.
Si se va leer, no hay problema, se lee el bloque de forma secuencial por las CPUs y se
cambia a estado S.
Si se va a escribir, el bloque pasa a estado M y sus copias en las otras CPUs a estado |,
luego se lee de la CPU con el bloque en M y este pasa a estado S.