36
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

DIAPOS MESI.pdf

Embed Size (px)

Citation preview

Page 1: DIAPOS MESI.pdf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)