Upload
americoes
View
269
Download
0
Embed Size (px)
Citation preview
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
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
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.
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
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
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
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
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
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
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).
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.
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.
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
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.
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.
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).
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
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.
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
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.
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.
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.
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
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
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é
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
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
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
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
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
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
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
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
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.
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.
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)