Professional Documents
Culture Documents
Grado en Informtica
Ing. Informtica
38
Lecciones
AC
Sistema de memoria en multiprocesadores Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
40
Bibliografa
AC
Fundamental
Secc. 10.1. J. Ortega, M. Anguita, A. Prieto. Arquitectura de Computadores. Thomson, 2005. ESII/C.1 ORT arq T. Rauber, G. Rnder. Parallel Programming: for Multicore and Cluster Systems. Springer 2010. Disponible en lnea (biblioteca UGR): http://dx.doi.org/10.1007/978-3-64204818-0
Complementaria
41
AC
Multicomputadores
Memoria no compartida
+
P M E/S M
P E/S
NUMA
COMA
MultiProcessor (nivel de placa; nivel de chip: multicores como Intel Core i7, i5, i3)
Red de interconexin
M
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Multiprocesadores
E/S
E/S
E/S
Red de interconexin
Escalabilidad I
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
43
Qu incluye?
La lectura de una direccin debe devolver lo ltimo que se ha escrito (desde el punto de vista de todos los componentes del sistema)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
44
Sistema de memoria
AC
Core0 Core1 L1 L2
Controlador memoria (MC)
L1 L2
Core7 L1 L2
Controlador memoria (MC)
LLC - L3 Conmutador
QPI
SMI
N0
N1
N3
45 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
N2
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
46
Falta de coherencia
Cache-MP
Fallo de cache
Emigra procesoFallo cache
Cache-MP
Cache-MP
Cache-Cache
Memoria
Pj Cj
D=4
Pk
Pi Ci
Pj Cj
Pk
D=4 2E
D
3
Ck
Ck
3E
D
3
D 3 4
3
2L
D 3 4
1L
47 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
1L
AC
1E
D D
D 2Act
Cada vez que un procesador escribe en su cache escribe tambin en memoria principal
Por los principios de localidad temporal y espacial sera ms rentable si se escribe todo el bloque una vez realizadas mltiples 2. Posescritura (write-back): escrituras
Pj Pk Memoria Cj Ck
1E
D
48
AC
1E
D
D 2Act
Cada vez que un procesador escribe en una direccin en su cache se escribe en las copias de esa direccin en otras caches Para reducir trfico, sobre todo si los datos estn compartidos por pocos procesadores
Antes que un procesador modifique una direccin en su cache se invalidan las copias del bloque de la direccin en otras caches
1E
D
I 2Inv
49
AC
P0
A 01 2 A=1 A=1
P1
A 02 1 A=2
2) A=2
2) A=1
A 02 1
2) A=2
P3
P2
2) A=1
Contenido inicial de las copias de la direccin A en calabaza. P0 escribe en A un 1 y, despus, P1 escribe en A un 2. Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas) Llegan en distingo orden las escrituras debido al distinto tiempo de propagacin (se est suponiendo que los Proc. estn ubicados en la placa tal y como aparecen en el dibujo). En cursiva se puede ver el contenido de las copias de la direccin A tras las dos escrituras.
Se da una situacin de incoherencia aunque se propagan las escrituras: P0 y P3 acaban con 2 en A y P1 y P2 con 1. Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
50
AC
La escritura en una direccin debe hacerse visible en un tiempo finito a otros procesadores Componentes conectados con un bus:
Los paquetes de actualizacin/invalidacin son visibles a todos los nodos conectados al bus (controladores de cache)
Las escrituras en una direccin deben verse en el mismo orden por todos los procesadores (el sistema de memoria debe parecer que realiza en serie las operaciones de escritura en la misma direccin) Componentes conectados con un bus:
El orden en que los paquetes aparecen en el bus determina el orden en que se ven por todos los nodos.
51
AC
Requisitos del SM para evitar problemas por incoherencia II: la red no es un bus
Propagar escrituras en una direccin
Usando difusin:
El orden en el que las peticiones de escritura llegan a su home (nodo que tiene en MP la direccin) o al directorio centralizado sirve para serializar en sistemas de comunicacin que garantizan el orden en las trasferencias entre dos puntos
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
52
Directorio cache
10
Memoria
Nodo de cmputo P C
CC
E/S
Conmutador
CM
Memoria
Directorio
C0 C1
CN-1
1 0 1 0
Estado bloque memoria
Centralizado
Compartido por todos los nodos Contiene informacin de los bloques de todos los mdulos de memoria
Distribuido
Las filas se distribuyen entre los nodos Tpicamente el directorio de un nodo contiene informacin de los bloques de sus mdulos de memoria
Mem.
Mem.
Mem.
Directorio centralizado
Mem. Mem.
Directorios distribuidos
Mem.
Mem.
Mem.
54
AC
P1
0
A=1
P3
A
P2
A
Contenido inicial de las copias de la direccin A en calabaza. P0 escribe en A un 1 y, despus, P1 escribe en A un 2. Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas) orden de llegada al home es el orden real para todos
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
El 55
AC
P0
A
P1
A
0 2
0 2
P3
A
P2
A
0 2
0 2
56
Contenido inicial de las copias de la direccin A en calabaza Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
P1
A
2 1
P2
A
2 1
Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
57
AC
Serializacin de las escrituras por el home. Sin difusin y con directorio distribuido I
P0
A
P1
A A=1
0
A=2
P3
A
P2
Contenido inicial de las copias de la direccin A en calabaza. P0 escribe en A un 1 y, despus, P1 escribe en A un 2. Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas) orden de llegada al home es el orden real para todos
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
El 58
AC
Serializacin de las escrituras por el home. Sin difusin y con directorio distribuido II
Orden para P1 1) A=2
P0
A
P1
A
0 2
0 2
P3
A
P2
0 2
59
Contenido inicial de las copias de la direccin A en calabaza Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Serializacin de las escrituras por el home. Sin difusin y con directorio distribuido III
Orden para P1 P0 1) A=2 A 2 1 2) A=1
P1
A
2 1
P3
A
P2
2 1
Se utiliza actualizacin para propagar las escrituras (las propagacin se nota con flechas)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
60
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
61
AC
Para buses, y en general sistemas con una difusin eficiente (bien porque el nmero de nodos es pequeo o porque la red implementa difusin).
Para redes sin difusin o escalables (multietapa y estticas). Para redes jerrquicas: jerarqua de buses, jerarqua de redes escalables, redes escalables-buses.
Esquemas jerrquicos.
62
AC
escritura inmediata, posescritura, mixta escritura con invalidacin, escritura con actualizacin, mixta Definir posibles estados de los bloques en cache, y en memoria Definir transferencias (indicando nodos que intervienen y orden entre ellas) a generar ante eventos:
lecturas/escrituras del procesador del nodo como consecuencia de la llegada de paquetes de otros nodos.
Describir comportamiento:
63
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
64
AC
65
AC
Peticin de lectura de un bloque (PtLec): por lectura PrLec PrEsc con fallo de cache del procesador del nodo (PrLec) Peticin de acceso exclusivo (PtLecEx): por escritura Controlador de cache del procesador (PrEsc) en bloque compartido o invlido Peticin de posescritura (PtPEsc): por el reemplazo del bloque modificado (el procesador del nodo no PtLec, PtLecEx, espera respuesta) PtPEsc, Respuesta con bloque (RpBloque): al tener en estado RpBloque modificado el bloque solicitado por una PtLec o PtLecEx recibida
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
66
PrLec/- PrEsc/-
M
PtLec/RpBloque PrEsc/PtLecEx
PrEsc/ PtLecEx
PrLec PrEsc
Controlador de cache
S
PrLec/-
PtLecEx/RpBloque
PtLec/PrLec/PtLec PtLecEx/-
I
67 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
EST. ACT.
EVENTO
PrLec/PrEsc PtLec PtLecEx Reemplazo PrLec
ACCIN
Genera paquete respuesta (RpBloque) Genera paquete respuesta (RpBloque) Invalida copia local Genera paquete posescritura (PtPEsc)
SIGUIENTE
Modificado Compartido Invlido Invlido Compartido
Modificado (M)
Compart. (S)
PrEsc
PtLec PtLecEx PrLec
Modificado
Compartido Invlido Compartido Modificado Invlido
Invlido (I)
68
PrEsc PtLec/PtLecEx
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
69
AC
70
PrLec/- PrEsc/-
M
PrEsc/PrEsc/PtLecEx PrEsc/PtLecEx PtLec/RpBloque
PrLec PrEsc
E
PrLec/PtLec/PtLecEx/PtLecEx/-
PrLec(C=0)/PtLec
PrLec(C=1)/ PtLec
PtLecEx/RpBloque
Controlador de cache
S
PrLec/PtLec/-
I
71 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Modificado (M)
Exclusivo (E)
Compartido (S)
Invlido (I)
PrLec/PrEsc PtLec PtLecEx Reemplazo PrLec PrEsc PtLec PtLecEx PrLec/PtLec PrEsc PtLecEx PrLec (C=1) PrLec (C=0) PrEsc PtLec/PtLecEx
Genera PtLecEx Invalida copia local Genera PtLec Genera PtLec Genera PtLecEx
Modificado Compartido Invlido Invlido Exclusivo Modificado Compartido Invlido Compartido Modificado Invlido Compartido Exclusivo Modificado Invlido
72
Contenido Leccin 8
AC
Concepto de coherencia en el sistema de memoria: situaciones de incoherencia y requisitos para evitar problemas en estos casos Protocolos de mantenimiento de coherencia: clasificacin y diseo
Protocolo MSI de espionaje Protocolo MESI de espionaje Protocolo MSI basado en directorios con o sin difusin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
73
1. Estados de un bloque en MP: PtLec, Vlido e invlido PtLecEx, Transferencias (tipos de paquetes) : PtEx, Tipos de nodos: solicitante (S), origen (O), modificado (M), PtPEsc propietario (P) y compartidor (C)
S
4. RpInv RpBloque RpBloqueInv
Peticin de
nodo S a O: lectura de un bloque (PtLec), lectura con acceso exclusivo (PtLecEx), peticin de acceso exclusivo sin lectura (PtEx), posescritura (PtPEsc) nodo O a nodos con copia (P, M, C): invalidacin (RvInv), lectura (RvLec, RvLecEx). nodo P a O: respuesta con bloque (RpBloque), respuesta confirmando invalidacin (RpInv ) nodo O a S: resp. con bloque (RpBloque), resp. con o sin bloque confirmando fin inv. (RpInv, RpBloqueInv)
Reenvo de peticin de
O
3. RpInv RpBloque
Respuesta de
74
S
4.RpBloque 3.RpBloque
1.PtLec 4.RpBloque 3.RpBloque 2.RvLec
1.PtLec
2.RvLec
75
2.RpBloque
Mem.
S
2.RpBloque 1.PtLec
1.PtLec
Mem.
76
S
1.PtLecEx 4.RpBlInv
1.PtLecEx 4.RpBloqueInv
P P
3.RpInv 2.RvInv
77
S
1.PtLecEx 4.RpInv
1.PtEx 4.RpInv
P P
3.RpInv 2.RvInv
78
4.RpBloqueInv
3.RpBloqueInv
S
P
1.PtLecEx 4.RpBloqueInv
3.RpBloqueInv
1.PtLecEx
2.RvLecEx
O
79 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
2.RvLecEx
1. Vlido e invlido PtLec, PtLecEx, Transferencias (tipos de paquetes) : PtEx, Tipos de nodos: solicitante (S), origen (O), modificado PtPEsc (M), propietario (P) y compartidor (C) Difusin de peticin del nodo S a O 1. O y P: lectura de un bloque (PtLec), lectura con acceso exclusivo (PtLecEx), peticin de acceso exclusivo sin PtLec, lectura (PtEx) PtLecEx, O: posescritura (PtPEsc) PtEx, Respuesta de
2. RpInv RpBloque
nodo P a O: respuesta con bloque (RpBloque), respuesta confirmando invalidacin (RpInv ) nodo O a S: resp. con bloque (RpBloque), resp. con o sin bloque confirmando fin inv. (RpInv, RpBloqueInv)
80
S
3.RpBloque 1.PtLec
S
3.RpBloque
O
2.RpBloque
1.PtLec
2.RpBloque
81
S
1.PtLecEx 3.RpBlInv
1.PtLecEx
S
3.RpBloqueInv
2.RpInv
82
Para ampliar
AC
Webs
An Introduction to the Intel QuickPath Interconnect, http://www.intel.com/content/www/us/en/io/quickpathtechnology/quick-path-interconnect-introductionpaper.html Demo Intel QuickPath Interconnect http://www.intel.com/content/www/us/en/performance/p erformance-quickpath-architecture-demo.html Animaciones de protocolos de coherencia de cachs http://lorca.act.uji.es/projects/ccp/
83