cuatr. Grado en Ing.
Grado en Informtica
Ing. Informtica
2 curso 2 2 curso / 2/cuatr.
Arquitectura de Computadores Tema 3
Arquitecturas con paralelismo a nivel de thread (TLP)
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
38
cuatr. Grado en Ing. Grado en Informtica
Ing. Informtica
2 curso 2 2 curso / 2/cuatr.
Arquitectura de Computadores Tema 3
Leccin 8. Coherencia del sistema de memoria
Lecciones
AC
Leccin 7. Arquitecturas TLP Leccin 8. Coherencia del sistema de memoria
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
Leccin 9. Consistencia del sistema de memoria
Leccin 10. Sincronizacin
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Computadores que implementan en hardware mantenimiento de coherencia
NORMA No Remote Memory Access
Multicomputadores
Memoria no compartida
nivel de sistema (Cluster), armario, chasis (blade server)
NUMA (nivel de sistema,n. armario/chasis, n. placa)
Memoria fsicamente distribuida
+
P M E/S M
P E/S
NUMA
Memoria compartida Un nico espacio de UMA direcciones Uniform
Memory Access
42
COMA
Coherencia por SMP Symmetric hardware
Memoria fsicamente centralizada
P P P P
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
NonUniform Memory Access
Red de interconexin
CC-NUMA (nivel de armario: SGI Altix; nivel de placa)
Escalabilidad I
Contenido Leccin 8
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
43
Sistema de memoria en multiprocesadores
AC
Qu incluye?
Caches de todos los nodos Memoria principal Controladores Buffers:
Buffer de escritura/almacenamiento Buffer que combinan escrituras/almacenamientos, etc.
Medio de comunicacin de todos estos componentes (red de interconexin)
La comunicacin de datos entre procesadores la realiza el sistema de memoria
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
Buffer de escritura/ Buffer que combinan escrituras
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
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
46
Incoherencia en el sistema de memoria
AC
Clases de estructuras de datos
Datos modificables
Causa de problemas por falta de coherencia
E/S
Falta de coherencia
Cache-MP
Datos modificables compartidos
Datos modificables privados
Fallo de cache
Emigra procesoFallo cache
Cache-MP
Cache-MP
Datos modificables compartidos
Memoria
Lectura de cache no actualizada
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
Mtodos de actualizacin de memoria principal implementados en caches
Pj Cj Pk Ck Memoria
1. Escritura inmediata (write-through):
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
Se actualiza memoria principal escribiendo todo el bloque cuando se desaloja de la cache
48
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Alternativas para propagar una escritura en protocolos de coherencia de cache
1. Escritura con actualizacin (write-update):
Pi Ci Pj Cj Pk Ck Memoria
1E
D
D 2Act
2. Escritura con invalidacin (write-invalidate):
Pi Ci Pj Cj Pk Ck Memoria
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Situacin de incoherencia aunque se propagan las escrituras (usa difusin)
Orden para P0 1) A=1
P0
A 01 2 A=1 A=1
A=1 A=2 A=2
P1
A 02 1 A=2
Orden para P1 1) A=2
2) A=2
2) A=1
Orden generacin: 1) A=1 2) A=2
Orden para P3 A 01 2 1) A=1
A 02 1
Orden para P2 1) A=2
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
Requisitos del sistema de memoria para evitar problemas por incoherencia I
Propagar las escrituras en una direccin
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)
Serializar las escrituras en una direccin
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Requisitos del SM para evitar problemas por incoherencia II: la red no es un bus
Propagar escrituras en una direccin
Usando difusin:
Los paquetes de actualizacin/invalidacin se envan a todas las caches
Para conseguir mayor escalabilidad:
Se debera enviar paquetes de actualizacin/invalidacin slo a caches (nodos) con copia del bloque Mantener en un directorio, para cada bloque, los nodos con copia del mismo
Serializar escrituras en una direccin
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 de memoria principal
AC
Directorio cache
10
Estado bloque cache
Memoria
Nodo de cmputo P C
CC
E/S
Conmutador
CM
bloque bloque bloque
Memoria
Directorio
C0 C1
CN-1
1 0 1 0
Estado bloque memoria
conexin a otros nodos de cmputo
53 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Vector de bits con informacin sobre cachs con copia
Alternativas para implementar el directorio
AC
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Serializacin de las escrituras por el home. Usando difusin I
P0
A A=1 A=2 A=1 A=2 A=2 A
P1
0
A=1
Orden generacin: 1) A=1 2) A=2
P3
A
P2
A
Orden llegada al home = real 1) A=2 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) orden de llegada al home es el orden real para todos
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
El 55
AC
Serializacin de las escrituras por el home. Usando difusin II
Orden para P1 1) A=2
P0
A
P1
A
0 2
0 2
Orden para P1 1) A=2
Orden generacin: 1) A=1 2) A=2
Orden para P1 1) A=2
P3
A
P2
A
0 2
0 2
Orden llegada al home = Orden real 1) A=2 2) A=1
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
Serializacin de las escrituras por el home. Usando difusin III
Orden para P1 P0 1) A=2 A 2 1 2) A=1
P1
A
2 1
Orden para P1 1) A=2 2) A=1
Orden generacin: 1) A=1 2) A=2
Orden para P1 P3 1) A=2 A 2 1 2) A=1
P2
A
2 1
Orden llegada al home = Orden para P2 = Orden real 1) A=2 2) A=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
Orden generacin: 1) A=1 2) A=2
P3
A
P2
Orden llegada al home = real 1) A=2 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) 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
Orden para P1 1) A=2
Orden generacin: 1) A=1 2) A=2
P3
A
P2
0 2
Orden llegada al home = Orden real 1) A=2 2) A=1
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
Orden para P1 1) A=2 2) A=1
Orden generacin: 1) A=1 2) A=2
P3
A
P2
2 1
Orden llegada al home = Orden para P2 = Orden real 1) A=2 2) A=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
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
61
AC
Clasificacin de protocolos para mantener coherencia en el sistema de memoria
Protocolos de espionaje (snoopy)
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.
Protocolos basados en directorios.
Esquemas jerrquicos.
62
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Facetas de diseo lgico en protocolos para coherencia
Poltica de actualizacin de MP:
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.
Poltica de coherencia entre caches:
Describir comportamiento:
Definir transiciones de estados para un bloque en cache, y en memoria
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
63
Contenido Leccin 8
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
64
AC
Protocolo de espionaje de tres estados (MSI) posescritura e invalidacin
Estados de un bloque en cache:
Modificado (M): es la nica copia del bloque vlida en todo el sistema Compartido (C,S): est vlido, tambin vlido en memoria y puede que haya copia vlida en otras caches Invlido (I): se ha invalidado o no est fsicamente
Estados de un bloque en memoria (en realidad se evita almacenar esta informacin):
Vlido: puede haber copia vlida en una o varias caches Invlido: habr copia valida en una cache
65
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
AC
Protocolo de espionaje de tres estados (MSI) posescritura e invalidacin
Transferencias generadas por un nodo con cache (tipos de paquetes):
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
Diagrama MSI de transiciones de estados
AC
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)
PtLec, PtLec, PtLecEx, PtLecEx, PtPEsc, RpBloque RpBloque
Tabla de descripcin de MSI
AC
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
Genera paquete PtLecEx
Invalida copia local Genera paquete PtLec Genera paquete PtLecEx
Modificado
Compartido Invlido Compartido Modificado Invlido
Invlido (I)
68
PrEsc PtLec/PtLecEx
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Contenido Leccin 8
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
69
AC
Protocolo de espionaje de cuatro estados (MESI) posescritura e invalidacin
Estados de un bloque en cache:
Modificado (M):es la nica copia del bloque vlida en todo el sistema Exclusivo (E): es la nica copia de bloque vlida en caches, la memoria tambin est actualizada Compartido (C,Shared): es vlido, tambin vlido en memoria y en al menos otra cache Invlido (I): se ha invalidado o no est fsicamente
Estados de un bloque en memoria(en realidad se evita almacenar esta informacin):
Vlido: puede haber copia vlida en una o varias caches Invlido: habr copia valida en una cache
70
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Diagrama MESI de transiciones de estados
AC
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/-
PtLec, PtLec, PtLecEx, PtLecEx, PtPEsc, RpBloque RpBloque
I
71 Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Tabla de descripcin de MESI
AC
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 RpBloque Genera RpBloque. Invalida copia local Genera PtPEsc
Invalida copia local
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
Contenido Leccin 8
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
73
MSI con directorios (sin difusin) I
AC
Estados de un bloque en cache:
Modificado (M), Compartido (C), Invlido (I)
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
2. RvInv, RvLec, RvLecEx
O
3. RpInv RpBloque
Respuesta de
74
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (sin difusin) II
AC
Estado inicial D) Invlido S) Invlido P) Modificado Acceso remoto
Evento Fallo de lectura
Estado final D) Vlido S) Compartido P) Compartido
Ejemplo con 4 nodos:
S
4.RpBloque 3.RpBloque
1.PtLec 4.RpBloque 3.RpBloque 2.RvLec
1.PtLec
2.RvLec
75
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (sin difusin) III
AC
Estado inicial D) Vlido S) Invlido P) Compartido Acceso remoto
Evento Fallo de lectura
Estado final D) Vlido S) Compartido P) Compartido
2.RpBloque
Mem.
S
2.RpBloque 1.PtLec
1.PtLec
Mem.
76
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (sin difusin) IV
AC
Estado inicial D) Vlido S) Invlido P) Compartido Acceso remoto
Evento Fallo de escritura
Estado final D) Invlido S) Modificado P) Invlido
S
1.PtLecEx 4.RpBlInv
1.PtLecEx 4.RpBloqueInv
P P
3.RpInv 2.RvInv
77
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (sin difusin) V
AC
Estado inicial D) Vlido S) Compartido P) Compartido Acceso remoto
Evento Fallo de escritura
Estado final D) Invlido S) Modificado P) Invlido
S
1.PtLecEx 4.RpInv
1.PtEx 4.RpInv
P P
3.RpInv 2.RvInv
78
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (sin difusin) VI
AC
Estado inicial D) Invlido S) Invlido P) Modificado Acceso remoto
Evento Fallo de escritura
Estado final D) Invlido S) Modificado P) Invlido
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
MSI con directorios (con difusin) I
AC
Estados de un bloque en cache:
Modificado (M), Compartido (C), Invlido (I)
Estados de un bloque en MP:
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
3. RpInv RpBloque RpBloqueInv
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (con difusin) II
AC
Estado inicial D) Invlido S) Invlido P) Modificado Acceso remoto
Evento Fallo de lectura
Estado final D) Vlido S) Compartido P) Compartido
Ejemplo con 4 nodos:
S
3.RpBloque 1.PtLec
S
3.RpBloque
O
2.RpBloque
1.PtLec
2.RpBloque
81
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
MSI con directorios (con difusin) III
AC
Estado inicial D) Vlido S) Invlido P) Compartido Acceso remoto
Evento Fallo de escritura
Estado final D) Invlido S) Modificado P) Invlido
S
1.PtLecEx 3.RpBlInv
1.PtLecEx
S
3.RpBloqueInv
2.RpInv
82
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)
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
Tema 3. Arquitecturas con paralelismo a nivel de thread (TLP)