Requisito previo: coherencia de caché
Coherencia de caché:
en los sistemas de múltiples procesadores, cada procesador puede tener su propio caché y cuando los procesadores pueden actualizar los datos de su bloque de caché individual, los datos estarán en un estado inconsistente. Este problema se llama coherencia de caché.
Protocolo de coherencia de caché:
para mantener la coherencia de los datos, se utilizan protocolos de coherencia de caché. Estos protocolos actualizan las copias de caché en los sistemas multiprocesador. En el bus: mecanismos de indagación, los procesadores indagan (supervisan) el bus y toman las medidas adecuadas en los eventos relevantes (actualización de datos) para garantizar la coherencia de los datos.
Los 2 protocolos que generalmente se usan para actualizar las copias de caché son:
- Protocolo de actualización de escritura
- protocolo de invalidación de escritura
Protocolo de actualización de escritura: con
este protocolo, si un procesador actualiza sus datos de caché, también actualiza inmediatamente todas las demás copias almacenadas en caché. El mecanismo de difusión se utiliza para enviar el nuevo bloque de datos a todo el caché que tiene las copias.
Protocolo escritura-invalidación:
Aquí no se realiza el envío inmediato del bloque de caché actualizado a la otra caché. Simplemente, se envía un comando de invalidación a todas las demás copias de caché y también a la versión original en la memoria compartida para que todas sus copias de datos dejen de ser válidas. Se denota con ‘I’ y especifica datos no válidos/sucios.
Si ahora cualquier otro procesador (que no sea el procesador de actualización que actualizó sus datos de caché) quiere leer los datos (copia de caché), el procesador de actualización le proporciona los datos actualizados. El enfoque de invalidación de escritura se utiliza en sistemas multiprocesador, como Pentium 4 y PowerPC.
Diferencia entre el protocolo de invalidación de escritura y el protocolo de actualización de escritura:
Escribir protocolo invalidado | Protocolo de actualización de escritura | |
1. | Se requiere una invalidación inicial cuando se realizan escrituras múltiples en la misma palabra sin lecturas intermedias. | Se requieren difusiones de escritura múltiple cuando se realizan escrituras múltiples en la misma palabra sin que se realice ninguna lectura en el medio. |
2. | Con bloques de caché de varias palabras, solo la primera escritura en cualquiera de las palabras del bloque necesita generar una invalidación. Este protocolo funciona en bloques de caché. | Se requiere una transmisión de escritura cuando cada palabra se escribe en un bloque de caché con bloques de caché de varias palabras. Este protocolo funciona con palabras individuales (bytes). |
3. | Se toma más tiempo (por el otro procesador que no se actualiza) porque cualquier lectura para invalidar datos requiere que obtenga una nueva copia de datos del procesador de actualización (su caché tiene datos actualizados). | Se tarda menos tiempo en leer los datos porque los datos escritos por el procesador de actualización también se actualizan inmediatamente en otro caché. (el procesador de lectura debe tener una copia de datos de antemano) (Aunque la actualización de todas las copias de caché puede llevar algún tiempo inicialmente) |
4. | Dado que los datos escritos no se actualizan instantáneamente en la memoria caché del lector, el retraso entre escribir una palabra en un procesador y leer el valor escrito en otro procesador es mayor que la actualización de escritura. | Dado que los datos escritos se actualizan instantáneamente en la memoria caché del lector, el retraso entre escribir una palabra en un procesador y leer el valor escrito en otro procesador normalmente es más corto en un esquema de actualización de escritura. |
5. | Los datos actualizados se entregan al procesador que los requiere. | Los datos actualizados se entregan a los procesadores que contienen la misma copia de bloque de caché que se actualizó. |
6. | Cada vez que un procesador modifica datos con frecuencia, los datos actualizados se envían al procesador que los requiere. No es necesario transmitir una y otra vez después de cada modificación en los datos. | Cada vez que un procesador modifica datos con frecuencia, para cada modificación, se requiere realizar una transmisión de escritura. La transmisión de escritura se realiza tantas veces como modificaciones. |
Publicación traducida automáticamente
Artículo escrito por sameekshakhandelwal1712 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA