Tema 4 Procesamiento Paralelo
Tema 4 Procesamiento Paralelo
Tema 4 Procesamiento Paralelo
0
Ejemplo redes multietapa: Redes
omega
• 16 entradas y 16 salidas
Ejemplo redes multietapa: Redes omega
• 16 entradas y 16 salidas
• Ej3 septiembre reserva 2012
1
1
0
0
Ejemplo redes multietapa: Redes omega
• 16 entradas y 16 salidas
• Ej3 septiembre reserva 2012
• Actualizar: actualizar todas las copias en las cachés del dato que se
acaba de modificar
Invalidación de datos (monitorizando el número de copias
Protocolos de existentes y el estado de cada copia)
coherencia de caché ESTADO DE LAS COPIAS
INVÁLIDO: bloque de datos no cargado en caché
COMPARTIDO: bloque de datos cargado en caché y válido
SUCIO: bloque de datos cargado en caché, válido para mi
pero no para el resto de cachés
Carga x
Veamos ahora las consecuencias de las operaciones realizadas por otros procesadores y
que se detectan en el bus. C_LECTURA
– Pero si está en estado SUCIO, es decir, si la
copia local es la única y no está datos sucios
actualizada, hay que modificar su estado. A
partir de ahora habrá dos copias en el
sistema, y la única opción en este
protocolo es pasar al estado COMPARTIDO,
es decir, pasar a ser coherente: el nuevo
estado es COMPARTIDO y hay que
actualizar (escribir) el bloque en la
memoria principal.
Carga x
2
• En caso de escritura, el estado del bloque pasará a ser
sucio: una única copia y modificada (write-back).
ESCRITURA
• Si ya estaba en estado sucio no hay que hacer nada;
• pero si estaba en estado compartido hay que invalidar
todas las posibles copias.
• Finalmente, si se detecta la señal C_escritura en el bus, la decisión es muy simple: si el bloque de datos
está en la cache, hay que eliminarlo (Inválido). Dado su efecto, la señal de invalidación C_escritura tiene
preferencia frente a la señal C_lectura cuando ambas se activan a la vez.
• Como la política de escritura es write-through, es posible que el bloque que hay que borrar esté en estado
sucio, en cuyo caso habrá que actualizar su contenido en MP.
C_ESCRITURA
DATOS COMPARTIDOS
inválido
• Finalmente, si se detecta la señal C_escritura en el bus, la decisión es muy simple: si el bloque de datos
está en la cache, hay que eliminarlo (Inválido). Dado su efecto, la señal de invalidación C_escritura tiene
preferencia frente a la señal C_lectura cuando ambas se activan a la vez.
• Como la política de escritura es write-through, es posible que el bloque que hay que borrar esté en estado
sucio, en cuyo caso habrá que actualizar su contenido en MP.
C_ESCRITURA
DATOS COMPARTIDOS
inválido
• Finalmente, si se detecta la señal C_escritura en el bus, la decisión es muy simple: si el bloque de datos
está en la cache, hay que eliminarlo (Inválido). Dado su efecto, la señal de invalidación C_escritura tiene
preferencia frente a la señal C_lectura cuando ambas se activan a la vez.
• Como la política de escritura es write-through, es posible que el bloque que hay que borrar esté en estado
sucio, en cuyo caso habrá que actualizar su contenido en MP.
C_ESCRITURA
DATOS SUCIOS
inválido
• Finalmente, si se detecta la señal C_escritura en el bus, la decisión es muy simple: si el bloque de datos
está en la cache, hay que eliminarlo (Inválido). Dado su efecto, la señal de invalidación C_escritura tiene
preferencia frente a la señal C_lectura cuando ambas se activan a la vez.
• Como la política de escritura es write-through, es posible que el bloque que hay que borrar esté en estado
sucio, en cuyo caso habrá que actualizar su contenido en MP.
C_ESCRITURA
DATOS SUCIOS
inválido
Protocolos de sondeo o snoopy (medio
compartido)
• El snoopy debe controlar las peticiones y avisos que le lleguen de su
procesador local o del resto a través del bus, y, en función de ellas
– decidir el estado de los bloques de datos
– generar las señales de control adecuadas.
Ej3 2ª semana 2012
Ej3 2ª semana 2012
Ej3 2ª semana 2012
Leer x
Leer x
Ej3 2ª semana 2012
Leer x
Escribe #2 x
2
Invalido sucio
2 2
2
Protocolos basados en
directorio
• Se pueden dividir
– directorio centralizado
– directorio distribuido.
• En ambos grupos se permite que
existan varias copias
compartidas de la misma línea
de caché para mejorar el
rendimiento del
multiprocesador sin incrementar
demasiado el tráfico en la red.
Protocolos basados en
directorio
• Directorio centralizado: Consiste en
un único directorio o tabla
centralizada donde se guarda
información sobre el lugar donde se
encuentra cada copia de la caché.
Este directorio centralizado es
normalmente bastante grande por lo
que la búsqueda se realiza de forma
asociativa.
• Inconvenientes
– La competencia por el acceso al
directorio (contención)
– Largos tiempos de búsqueda
Protocolos basados en
directorio
• Directorio distribuido: En
el directorio se guarda el
estado de la caché así
como su presencia. El
estado es local, pero la
presencia indica qué
cachés tienen una copia
del bloque.