DIAPOS MESI.pdf
Transcript of DIAPOS MESI.pdf
![Page 1: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/1.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 1
UNIVERSITAT ROVIRA I VIRGILI
Escola Tècnica Superior d’Enginyeria
ENGINYERIA EN INFORMÀTICA
Arquitectures Paral.leles
Coherencia de Caché en Multiprocesadores de Memoria Compartida
Miguel Ángel García García
Octubre 2000
![Page 2: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/2.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 2
Situación en el Temario de Arquitecturas Paralelas
(1) Introducción
(2) Sincronización en MMC
(3) Paralelización de programas
(4) Paralelización de bucles en MMC
(5) Coherencia de caché en MMC
![Page 3: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/3.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 3
Objetivos de la Clase
• Justificar la necesidad de coherencia de caché en losMMC.
• Presentar los protocolos de coherencia de snooping debus.
• Estudiar el protocolo de coherencia MESI.
• Comprender el efecto del orden de accesos de memoria yel protocolo de coherencia en el rendimiento de programasparalelos.
![Page 4: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/4.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 4
Esquema de la Clase
• Introducción
• Memorias caché
• Coherencia de caché en MMC
• Ejemplo del problema
• Protocolos de coherencia de caché
• Definiciones
• Protocolos de snooping de bus parapolítica de actualización write-back.
• Protocolo MESI
• Estados de bloques de caché
• Transacciones de bus
• Diagrama de transiciones
• Ejemplos de funcionamiento
• Conclusiones
![Page 5: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/5.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 5
IntroducciónMemorias Caché
• Memoria caché: SRAM más pequeña y rápida que la RAM principal
• Aprovechamiento localidad espacial y temporal de programas
• 90% accesos a caché
• Políticas de actualización: write-through / write-back (copy-back)
CPU
MemoriaPrincipal
Palabras
Bloques
Caché
MemoriaPrincipal
![Page 6: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/6.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 6
IntroducciónCoherencia de caché en MMC
• Coherencia de caché: copias en las cachés del MMC de cadabloque de memoria principal actualizadas con la últimaescritura.
Red de Interconexión
P1
C1
P3
C3
P2
C2
M1 M2
![Page 7: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/7.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 7
IntroducciónEjemplo del Problema de Coherencia de Caché
Red de Interconexión
P1
C1
P3
C3
P2
C2
M1 M2v = 5
{ v = 5 }
P1 :: read( v )
P3 :: write( v, 7 )
P2 :: read( v )
P1 :: read( v )
Sin algoritmo de coherencia
![Page 8: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/8.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 8
Ejemplo del Problema (I)Política de Actualización Write-through
Red de Interconexión
P1 P3P2
M1 M2v = 7
v = 5 v = 7v = 7
{ v = 5 }
P1 :: read( v )P3 :: write( v, 7 )P2 :: read( v )P1 :: read( v )
• P1 lee incorrectamente v = 5
• P2 lee correctamente v = 7
![Page 9: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/9.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 9
Ejemplo del Problema (II)Política de Actualización Write-back
Red de Interconexión
P1 P3P2
M1 M2v = 5
v = 5 v = 7*v = 5
{ v = 5 }
P1 :: read( v )P3 :: write( v, 7 )P2 :: read( v )P1 :: read( v )
• P3 marca bloque modificado
• MP no actualizada hastareemplazo del bloque
• P1 y P2 leen incorrectamente v = 5
![Page 10: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/10.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 10
IntroducciónProtocolos de Coherencia de Caché
• Protocolos de coherencia de caché: Algoritmos que aseguranel estado de coherencia de caché en un MMC.
• Viables (eficientes) con redes de bus compartido.
• La mayoría de microprocesadores actuales (Intel, PowerPC,MIPS, ... ) soportan algún protocolo de coherencia de cachépor hardware.
• El tipo de protocolo determina el rendimiento del MMC(retardo para leer/escribir datos).
![Page 11: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/11.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 11
IntroducciónDefiniciones (I)
• Orden de programa en un procesador: orden en que lasoperaciones de memoria aparecen en el código ejecutable.
• Escritura ejecutada respecto a un procesador: cuando lasiguiente lectura retorna el valor escrito o uno posterior.
• Escritura completada en un MMC: cuando ha sido ejecutadarespecto a todos los procesadores.
• Serialización de escrituras: Propiedad de MMC coherentes Todas las escrituras a una posición de memoria son
vistas en el mismo orden por todos los procesadores.
![Page 12: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/12.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 12
IntroducciónDefiniciones (II)
• MMC coherente: Los resultados de cualquier ejecución de unprograma permiten construir una secuencia de operacionespara cada posición de memoria tal que:
• Las operaciones realizadas por un procesador aparecenen la secuencia en el orden de programa del procesador.
• El valor retornado por cada lectura es el valor escrito porla anterior escritura a la misma posición en la secuencia.
• Consistencia secuencial: Cualquier ejecución de unprograma paralelo produce los mismos resultados.
![Page 13: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/13.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 13
Esquema de la Clase
• Introducción
• Memorias caché
• Coherencia de caché en MMC
• Ejemplo del problema
• Protocolos de coherencia de caché
• Definiciones
• Protocolos de snooping de bus parapolítica de actualización write-back.
• Protocolo MESI
• Estados de bloques de caché
• Transacciones de bus
• Diagrama de transiciones
• Ejemplos de funcionamiento
• Conclusiones
![Page 14: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/14.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 14
Protocolos de Snooping de Bus para Política Write-back (I)
• Lecturas/Escrituras en el bus visibles en el mismo orden portodos los procesadores y módulos de memoria.
• Operaciones atómicas de memoria: (1) Sólo una operaciónactiva en el bus y (2) todos los procesadores esperan a quela operación esté completada.
• Bus + Operaciones atómicas consistencia secuencial
• Snooping de bus: Controladores de caché monitorizan laslecturas/escrituras del bus y reaccionan si afectan a bloquesde datos de sus cachés.
![Page 15: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/15.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 15
Protocolos de Snooping de Bus para Política Write-back (II)
• Política de actualización write-backBloques modificados en las cachés no se actualizan en MPinmediatamente Menor tráfico de bus que write-through.
• Política más utilizada en microprocesadores actuales.
• Caché propietaria de un bloque: La que tiene el bloquemarcado como modificado (dirty bit = 1).
• Sólo una caché propietaria de un bloque.
• Puede modificar el bloque sin acceder al bus.
![Page 16: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/16.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 16
Protocolos de Snooping de Bus para Política Write-back (III)
• Bloques de caché tienen estados (válido, compartido, ... ).
• Protocolos de coherencia descritos mediante diagramas detransiciones entre estados de un bloque de caché
Diagramas de Estados Finitos
• Transiciones entre estados marcadas con la entradas queoriginan la transición y la salida generada (diagramas deMealy).
![Page 17: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/17.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 17
Protocolos de Snooping de Bus para Política Write-back (IV)
• Cada controlador de caché realiza transiciones entre estadosa partir de peticiones de su procesador y peticiones de otroscontroladores (transacciones de bus).
CPU
CachéSnoopyMemoria
PrincipalMemoria
Principal
CPU
CachéSnoopy
Bus compartido TxBus
PrRd PrWr
![Page 18: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/18.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 18
Protocolos de Snooping de Bus para Política Write-back (V)
• Protocolos basados en invalidación: El controlador de cachéinvalida los bloques compartidos de memoria cuandodetecta que han sido cambiados en otras cachés.
• Protocolos basados en actualización: El controlador decaché actualiza los bloques compartidos de memoriacuando detecta que han sido cambiados en otras cachés.
![Page 19: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/19.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 19
Esquema de la Clase
• Introducción
• Memorias caché
• Coherencia de caché en MMC
• Ejemplo del problema
• Protocolos de coherencia de caché
• Definiciones
• Protocolos de snooping de bus parapolítica de actualización write-back.
• Protocolo MESI
• Estados de bloques de caché
• Transacciones de bus
• Diagrama de transiciones
• Ejemplos de funcionamiento
• Conclusiones
![Page 20: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/20.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 20
Protocolo MESI
• Protocolo de coherencia de caché para MMC basado ensnooping de bus con política de actualización write-back einvalidación.
• Evolución del protocolo MSI.
• Incorporado en microprocesadores actuales: Intel Pentium,Power PC 601, MIPS R4400, ...
• Cuatro estados para cada bloque de caché:
(M)odifed, (E)xclusive, (S)hared, (I)nvalid.
![Page 21: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/21.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 21
Protocolo MESIEstados de Bloques de Caché
• Modified (Modificado): Caché con única copia modificada delbloque. MP no actualizada.
• Exclusive (Exclusivo): Caché con única copia no modificadadel bloque. MP actualizada.
• Shared (Compartido): Caché con copia no modificada delbloque. Copias no modificadas del bloque en otras cachés.MP actualizada.
• Invalid (Inválido): Bloque no contiene datos válidos.
![Page 22: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/22.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 22
Protocolo MESITransacciones de Bus
• BusRdX (Lectura exclusiva de bus): Petición de un bloque aMP que se modificará inmediatamente. El bloque puede serproporcionado por otra caché que lo contenga.
• BusWr (Escritura de bus): Escritura de un bloque al bus.
• BusRd(S) (Lectura de bus): Petición de lectura de un bloque.Hay más cachés con copias del bloque (éstas activan la señaldigital S).
• BusRD(S) (Lectura de bus): Petición de lectura de un bloque.No hay más cachés con copias del bloque.
![Page 23: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/23.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 23
Protocolo MESIDiagrama de Transiciones
M
E
S
I
PrRd / —PrWr / —
PrRd / BusRd(S)
PrRd / BusRd(S)
PrWr / BusRdX
PrWr / BusRdX
BusRd / S,BusWr
PrRd / —
PrRd / —BusRd / S
BusRdX / BusWr
BusRdX / —
BusRd / S,BusWrPrWr / —
BusRdX / BusWr
![Page 24: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/24.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 24
Protocolo MESITransiciones desde M
Bloque copiadoa caché
M
E
S
I
PrRd / —PrWr / —
BusRd / S,BusWr
BusRdX / BusWr Bloque copiadoa caché
Operación local en caché
Bloque copiadoa cachéBloque copiadoa caché y MP
![Page 25: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/25.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 25
Protocolo MESITransiciones desde E
M
E
S
I
BusRd / S,BusWr
PrRd / —
BusRdX / BusWr
PrWr / —
Ignorado
Bloque copiadoa cachéBloque copiadoa caché
Bloque copiadoa cachéBloque copiadoa caché
![Page 26: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/26.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 26
Protocolo MESITransiciones desde S
M
E
S
I
PrWr / BusRdX
PrRd / —BusRd / S
BusRdX / —
Ignorado
Invalida bloque
Activa señal S
Invalida cachés
![Page 27: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/27.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 27
Protocolo MESITransiciones desde I
M
E
S
I
PrRd / BusRd(S)
PrRd / BusRd(S)
PrWr / BusRdX
Bloque copiada cachéLee bloque yhay copias
Bloque copiada cachéLee bloque einvalida copias
Bloque copiada cachéLee bloque yno hay copias
![Page 28: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/28.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 28
Protocolo MESIEjemplos de Funcionamiento
• Secuencia de operaciones de tres procesadores sobre unamisma variable compartida.
P1
Memoria
Principal
MPv
Bus compartido
C1
P2
C2
P3
C3
![Page 29: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/29.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 29
Ejemplos de Funcionamiento (I)
MP* Bloque proporcionado por MP o por una caché con copia
ACCIÓN PROC TRANSACCIÓN BUSPROPORCIONA
BLOQUEC1 C2 C3
P1 : read( v ) BusRd( S ) MP E I I
P1 : write( v ) — — M I I
P2 : read( v ) BusRd( S ) C1 S S I
P3 : write( v ) BusRdX MP* I I M
P1 : read( v ) BusRd( S ) C3 S I S
![Page 30: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/30.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 30
Ejemplos de Funcionamiento (II)
MP* Bloque proporcionado por MP o por una caché con copia
BusUpgrade Acceso exclusivo a bloque, sin lectura
ACCIÓN PROC TRANSACCIÓN BUSPROPORCIONA
BLOQUEC1 C2 C3
P1 : read( v ) BusRd( S ) MP E I I
P3 : read( v ) BusRd( S ) C1 S I S
P3 : write( v ) BusRdX ó BusUpgrade MP* ó — I I M
P1 : read( v ) BusRd( S ) C3 S I S
P2 : read( v ) BusRd( S ) MP* S S S
![Page 31: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/31.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 31
Ejemplos de Funcionamiento (III)
MP* Bloque proporcionado por MP o por una caché con copia
ACCIÓN PROC TRANSACCIÓN BUSPROPORCIONA
BLOQUEC1 C2 C3
P2 : read( v ) BusRd( S ) MP I E I
P2 : write( v ) — — I M I
P2 : write( v ) — — I M I
P3 : read( v ) BusRd( S ) C2 I S S
P1 : write( v ) BusRdX MP* M I I
![Page 32: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/32.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 32
Ejemplos de Funcionamiento (IV)
MP* Bloque proporcionado por MP o por una caché con copia
ACCIÓN PROC TRANSACCIÓN BUSPROPORCIONA
BLOQUEC1 C2 C3
P1 : write( v ) BusRdX MP M I I
P1 : read( v ) — — M I I
P2 : read( v ) BusRd( S ) C1 S S I
P3 : read( v ) BusRd( S ) MP* S S S
P2 : read( v ) — — S S S
![Page 33: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/33.jpg)
ARQUITECTURES PARAL.LELESCOHERENCIA DE CACHÉ EN MMC 33
Esquema de la Clase
• Introducción
• Memorias caché
• Coherencia de caché en MMC
• Ejemplo del problema
• Protocolos de coherencia de caché
• Definiciones
• Protocolos de snooping de bus parapolítica de actualización write-back.
• Protocolo MESI
• Estados de bloques de caché
• Transacciones de bus
• Diagrama de transiciones
• Ejemplos de funcionamiento
• Conclusiones
![Page 34: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/34.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 34
Conclusiones (I)
• Cachés en MMC Reducen 90% tráfico de red.
• Necesidad de asegurar coherencia de memoria.
• Protocolos viables/eficientes basados en bus.
• Protocolos de snooping de bus controladores decaché monitorizan las actividades de todos losprocesadores a través del bus.
• Protocolo de snooping de bus basado en invalidación paracachés con política write-back MESI.
![Page 35: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/35.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 35
Conclusiones (II)• Mejora del rendimiento de programas paralelos en MMC
(criterios de asignación de tareas a procesadores):
• Evitar lecturas/escrituras entrelazadas a posicionescompartidas de memoria desde diferentes procesadores.
• Asignar a un mismo procesador lecturas/escriturasentrelazadas a memoria compartida.
• Asignar a un mismo procesador escrituras sucesivas amemoria compartida.
• Lecturas sucesivas en paralelo de posiciones compartidasde memoria producen máximo rendimiento del MMC.
![Page 36: DIAPOS MESI.pdf](https://reader031.fdocument.pub/reader031/viewer/2022012312/577c7d6c1a28abe0549ebc2c/html5/thumbnails/36.jpg)
ARQUITECTURES PARAL.LELES COHERENCIA DE CACHÉ EN MMC 36
Conclusiones (III)
• Bibliografía fundamental
• D.E. CULLER, J.P. SINGH, A. GUPTA. Parallel ComputerArchitecture. A Hardware/Software Approach. MorganKauffman Publishers, Agosto 1998. (Cap. 5)
• Bibliografía complementaria
• K. HWANG. Advanced Computer Architecture: Parallelism,Scalability, Programmability. McGraw-Hill, 1993. (Cap. 5)
• H.S. STONE. High-Performance Computer Architecture(3a Edición). Addison Wesley, 1993. (Cap. 6.4)