Download pdf - DIAPOS MESI.pdf

Transcript
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)