Tema 4 Arquitecturas paralelas
Departamento de Automática Arquitectura e Ingeniería de Computadores
Tema 4 Arquitecturas Paralelas Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz
Curso 2010-2011
Tema 4. Arquitecturas Paralelas Arquitecturas paralelas.
¿En qué consiste una arquitectura paralela? Evolución y convergencia de las arquitecturas paralelas.
Redes de interconexión.
Redes de interconexión estáticas. Redes de interconexión dinámicas.
Coherencia en memoria cache.
Fuentes de incoherencia. Protocolos basados en escucha. Protocolos basados en directorios.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Sistemas vectoriales instalados (85-93)
Arquitectura e Ingeniería de Computadores Base instalada de Crays (76-85)
Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas
Comparativa Vectoriales-MPP LINP ACK (GFLOPS) CRAY peak MPP peak
Xmp /416(4) Ymp/832(8) nCUBE/2(1024) iPSC/860 CM-2 CM-200 Delta Paragon XP/S C90(16) CM-5 ASCI Red T932(32) T3D Paragon XP/S MP (1024) Paragon XP/S MP (6768)
0.1 1 1,000 10 100 10,000 1985 1987 1989 1991 1993 1995 1996 Cray vectoriales
(paralelos) : X-MP (2-4) Y-MP (8) C-90 (16) T94 (32) Desde 1993,
Cray produce también MPP (T3D, T3E)
Sistemas vectoriales por fabricante
Total NEC 1992 1991 Hitachi 1990 1989 Fujitsu 1988 CDC 1987 1986 Cray Arquitectura e Ingeniería de Computadores
200 400 600
Arquitecturas Paralelas Lista TOP500 de los computadores más rápidos
350 319 313
284 300
239
250MPP PVP 200 198
SMP 187 150
110 106 100
106 Number of systems
73
50
63
Arquitectura e Ingeniería de Computadores 11/93 11/94 11/95 11/96Arquitectura e Ingeniería de Computadores Tipos de CPU en la lista TOP500
Arquitectura e Ingeniería de Computadores Arquitecturas en la lista TOP500
Siglas en “Arquitecturas Paralelas” SMP: Symmetric Multiprocessor.
MPP: Massively Parallel Processor. Típicamente el número de procesadores es superior a 100.
Cluster: Conjunto de computadores completos conectados por una red comercial.
Cluster Beowulf: Cluster de sistema operativo libre y componentes comerciales ordinarios.
Constellation: Cluster de nodos donde cada uno de ellos es de tipo SMP.
Grid: Colección de recursos autónomos geográficamente
distribuidos, acoplados mediante la infraestructura de
comunicaciones, y débilmente acoplados.Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Familias de CPUs en la lista TOP500
Rendimiento de los sistemas en TOP500
En la siguiente gráfica, se muestra el rendimiento de los
sistemas colocados en la posiciones 1, 10, 100, 500 de la lista TOP500. También se muestra el crecimiento acumulado. La curva del sistema número 500 crece con un factor de 1,9 anual.El resto de curvas muestran un crecimiento anual en un factor de 1,8.
¡Es una especie de “ley de Moore”! Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Rendimiento de los sistemas en TOP500
Arquitecturas Paralelas Criterios antiguos
- Arquitecturas paralelas ligadas a modelos de programa- ción.
- Arquitecturas divergentes, sin ningún patrón de crecimien- to.
Aplicaciones Sistema Arrays
Software
SIMD Sistólicos
Arquitectura
Paso de mensajes Flujo de datosMemoria compartida Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Criterios actuales Extensión de la arquitectura de computadores para soportar comunicaciones y cooperación.
ANTES: Conjunto de instrucciones. AHORA: Comunicaciones.
Hay que definir: Abstracciones, fronteras, primitivas (interfaces)
Estructuras que implementan los interfaces (hw o sw)
Compiladores, librerías y OS son cuestiones importantes en nuestros días.
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas Recordemos que
Un computador paralelo es un conjunto de elementos de proceso que se comunican y cooperan para resolver rápidamente grandes problemas.
Podemos decir que la “Arquitectura Paralela” es:
Arquitectura convencional
- Arquitectura de comunicación
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas Arquitectura de comunicación
User/System Interface + Implementación User/System Interface: Primitivas de comunicación a nivel de usuario y a nivel de sistema.
Implementación: Estructuras que implementan las primitivas: hardware o OS Capacidades de optimización. Integración en los nodos de proceso.
Estructura de la red.
Objetivos: Rendimiento Amplia aplicación Fácil programación Ampliable
Arquitectura e Ingeniería de Computadores Bajo coste
Arquitecturas Paralelas Modelos de programación Especifica las comunicaciones y la sincronización.
Ejemplos: Multiprogramación: no hay comunicación o sincronismo.
Paralelismo a nivel de programa.
Memoria compartida: como un tablón de anuncios. Paso de mensajes: como cartas o llamadas telefónicas, punto a punto.
Paralelismo de datos: varios agentes actúan sobre datos individuales y luego intercambian información de control antes de seguir el proceso.
El intercambio se implementa con memoria compartida o con paso Arquitectura e Ingeniería de Computadores de mensajes.
Arquitecturas Paralelas Niveles de abstracción en la comunicación Multiprogramming Message Data CAD Database Scientific modeling Shared Programming models Parallel applications address Compilation passing parallel Communication abstraction or library Operating systems support User/system boundary Physical communication medium Communication hardware Hardware/software boundary
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas Evolución de los modelos arquitectónicos
Modelo de programación, comunicación y organización de la máquina componen la arquitectura.
Espacio de memoria compartida. Paso de mensajes. Paralelismo de datos. Otras: Flujo de datos.
Arrays sistólicos.
Arquitectura e Ingeniería de Computadores
Memoria Compartida Cualquier procesador puede referenciar directamente cualquier posición de memoria.
La comunicación se realiza implícitamente por medio de cargas y almacenamientos.
Ventajas: Localización transparente.
Programación similar a tiempo compartido en uniprocesadores.
Excepto que los procesos se ejecutan en diferentes procesadores.
Buen rendimiento en distribución de carga.
Arquitectura e Ingeniería de Computadores
Memoria Compartida Proporcionado en un amplio rango de plataformas.
Históricamente sus precursores datan de los años 60. Desde 2 procesadores a cientos de procesadores.
Conocidas como máquinas de memoria compartida.
Ambigüedad: la memoria puede estar distribuida en los procesadores.
Arquitectura e Ingeniería de Computadores
Memoria Compartida Proceso: espacio de direcciones virtuales más una o varias hebras.
Parte de las direcciones son compartidas por varios procesos.
Las escrituras en posiciones compartidas son visibles a las otras hebras (también en otros procesos).
Es la extensión natural del modelo uniprocesador: memoria convencional; operaciones atómicas especiales para la sincronización. El sistema operativo usa la memoria compartida para coordinar procesos.
Arquitectura e Ingeniería de Computadores
Memoria Compartida Direcciones Físicas en la máquina Espacio de direcciones virtuales. Conjunto de procesos con comunicación por medio de memoria compartidas
Pn pr i vat e Load Pn
Direcciones Físicas P2 compartidas P1
P0 Store 2 compartidas direcciones Espacio de P pr i vat e direcciones privadas Espacio de
P 1 pr i vat e Arquitectura e Ingeniería de Computadores
P pr i vat e
Arquitectura e Ingeniería de Computadores Memoria Compartida
I/O ctrl Mem Mem Mem Interconnect Mem I/O ctrl Processor Processor Interconnect I/O devices Hardware de comunicación
Aumento independiente de capacidades de memoria, de I/O o de
proceso añadiendo módulos, controladores o procesadores.
Memoria Compartida Estrategia de comunicaciones en “Mainframe”:
P •Red de barras cruzadas.
P
- Inicialmente limitado por el
I/O coste de los procesadores.
C
Después, por el coste de la
I/O C
red.
- El ancho de banda crece
M M M M con p.
- Alto coste de ampliación;
Arquitectura e Ingeniería de Computadores uso de redes multietapa.
Memoria Compartida Estrategia de comunicaciones en “Minicomputer”:
- Casi todos los sistemas con
I/O I/O microprocesadores usan bus.
C C M M
- Muy usados para computación paralela.
- Llamados SMP, symmetric multiprocessor.
$ $
- El bus puede ser un cuello de
P P botella.
- Problema de la coherencia en cache.
Arquitectura e Ingeniería de Computadores
- Bajo coste de ampliación
Memoria Compartida controller Interrupt CPU 256-KB L $ 2 module module module P-Pro P-Pro P-Pro Bus interface P-Pro bus (64-bit data, 36-bit addr ess, 66 MHz) PCI bridge bridge controller PCI PCI Memory MIU cards I/O PCI bus PCI bus 1-, 2-, or 4-way interleaved DRAM Ejemplo: Intel Pentium Pro Quad.
Coherencia y multiproceso Arquitectura e Ingeniería de Computadores integrados en el modulo procesador. Memoria Compartida P car ds $ $ P CPU/mem Mem ctrl $2 Bus interface/switch $2 Gigaplane bus (256 data, 41 addr ess, 83 MHz) I/O car ds Bus interface
, SCSI Ejemplo: SUN Enterprise. 100bT SBUS SBUS SBUS 2 FiberChannel 16 tarjetas de cualquier tipo: procesadores + memoria, o I/O.
Arquitectura e Ingeniería de Computadores El acceso a la memoria es por bus, simétrico.
Memoria Compartida Otras opciones en comunicación: M M M
° ° ° Network Network ° ° ° $ P $ $ P P ° ° ° M M M P P P $ $ $ UMA o Dance hall NUMA Problemas de interconexión: coste (barras cruzadas) o ancho de banda (bus). Dance-hall: ampliable a menor coste que en barras cruzadas. Latencia en acceso a memoria uniforme, pero alta. NUMA (non-uniform memory access): Construcción de un simple espacio de memoria con latencias diferentes. Arquitectura e Ingeniería de Computadores COMA: Arquitectura de memoria a base de caches compartidas.
Memoria Compartida Ejemplo: Cray T3E Exter nal I/O $ P Mem and NI Mem ctrl XY Switch Z
Ampliable a 1024 procesadores, enlaces de 480MB/s. El controlador de memoria genera las peticiones para posiciones no locales. Arquitectura e Ingeniería de Computadores No tiene mecanismo de hardware para coherencia (SGI Origin y otros sí lo proporcionan)
Arquitectura e Ingeniería de Computadores Construidos por medio de computadores completos, incluyendo I/O.
Comunicación por medio de operaciones explícitas de I/O.
Modelo de programación: acceso directo sólo a direcciones
privadas (memoria local), comunicación por medio de
mensajes (send/receive) Diagrama de bloques similar al NUMAPero las comunicaciones se integran a nivel de I/O. Como redes de workstations (clusters), pero mayor integración.
Más fáciles de construir y ampliar que los sistemas NUMA.
Modelo de programación menos integrado en el hardware.
Librerías o intervención del sistema operativo.
Paso de Mensajes
Paso de Mensajes
send especifica el buffer a transmitir y el proceso receptor. recv especifica el proceso emisor y el buffer de almacenamiento. Son copias memoria-memoria, pero se necesitan los nombres de procesos.
Opcionalmente se puede incluir el destino en el envío y unas reglas de identificación en el destino.
En la forma simple, el emparejamiento se consigue por medio de la sincronización de sucesos send/recv.
Existen múltiples variantes de sincronización.
Grandes sobrecargas: copia, manejo de buffer, protección.
Arquitectura e Ingeniería de Computadores
Paso de Mensajes
Arquitectura e Ingeniería de Computadores
Proceso P Proceso Q Direcciones Y Dir X Send X, Q, t Receive Y,P, t , Match Espacio local del proceso Espacio local del proceso
Paso de Mensajes Evolución en las máquinas de Paso de Mensajes
Primeras máquinas: FIFO en cada enlace. Modelo de programación muy 101 100 próximo al hw; operaciones simples de sincronización. Reemplazado por DMA, permitiendo operaciones no bloqueantes.
Buffer de almacenamiento en 001 000 destino hasta recv.
Disminución de la influencia de la 111 110 topología (enrutado por hw).
Store&forward routing: importa la topología.
Introducción de redes multietapa. Mayor coste: comunicación nodo red. 011 010 Simplificación de la programación Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Memory bus Micr oChannel bus I/O i860 NI DMA DRAM IBM SP-2 node L Power 2 2 $ CPU Memory contr oller 4-way interleaved DRAM General inter connection network formed fr om 8-port switches NIC Ejemplo: IBM SP-2
Realizado a base de estaciones RS6000.
Paso de Mensajes
Arquitectura e Ingeniería de Computadores Memory bus (64-bit, 50 MHz) i860 L 1 $ NI DMA i860 L Mem 1 $ Driver ctrl 4-way interleaved DRAM Intel Paragon node 8 bits, 175 MHz, bidir ectional 2D grid network with pr ocessing node attached to every switch Sandia’ s Intel Paragon XP/S-based Super computer Ejemplo Intel Paragon.
Paso de Mensajes La Convergencia de las Arquitecturas
La evolución y el papel del software ha difuminado las
fronteras entre memoria compartida y paso de mensajes. send /recv soporta memoria compartida vía buffers.Se puede construir un espacio global de direcciones en Paso de Mensajes.
También converge la organización del hardware.
Mayor integración para Paso de Mensajes (menor latencia, mayor ancho de banda) A bajo nivel, algunos sistemas de memoria compartida implementan paso de mensajes en hardware.
Distintos modelos de programación, pero también en
convergencia.Arquitectura e Ingeniería de Computadores
Paralelismo de Datos Modelo de programación:
Las operaciones se ejecutan en paralelo en cada elemento de la estructura.
Una hebra de control, ejecución paralela.
Contr ol processor Un procesador asociado a cada elemento.
Modelo arquitectónico:
Array de muchos procesadores ° ° ° simples, baratos y con poca memoria.
° ° ° Asociados a un procesador de control que emite las
° ° ° ° ° ° ° ° ° instrucciones.
Fácil sincronización de Arquitectura e Ingeniería de Computadores
° ° ° comunicaciones.
Arquitectura e Ingeniería de Computadores EVOLUCION Rígida estructura de control (SIMD en la taxonomía de Flynn)
Populares cuando el coste ahorrado con la centralización era alto.
En los 60, cuando la CPU era un armario. Reemplazados por vectoriales a mediados de los 70.
Más flexibles y fáciles de manejar Revivido en los 80 cuando aparecen 32-bit datapath slices.
Aniquilados por los modernos microprocesadores.
Más razones para su desaparición: Las aplicaciones regulares son fáciles de ejecutar por su localidad en otro tipo de procesadores.
MIMD son eficaces y más generales en el paralelismo de datos.
El modelo de programación converge con SPMD (single
program multiple data).Paralelismo de Datos
Flujo de Datos a = (b +1) × (b − c) 1 b c e − × + d = c × e f = a × d × d Dataflow graph a × f Network Waiting Token Program stor e stor e Instruction Form Network Matching fetch Token queue Execute token Network
Arquitectura e Ingeniería de Computadores
Flujo de Datos EVOLUCIÓN Claves:
Capacidad para el nombramiento de instrucciones, sincronización, planificación dinámica.
Problemas:
Manejo de complejas estructuras de datos, como arrays.
Complejidad de la memoria de emparejamiento y la unidades de memoria.
Convergencia al uso de procesadores y memoria convencional.
Soporte para conjuntos de hebras ejecutadas en distintos procesadores.
Uso de memoria compartida. Progresiva separación entre el modelo de programación y el HW.
Arquitectura e Ingeniería de Computadores
Interconexión de sistemas paralelos La misión de la red en una arquitectura paralela es transferir
información desde cualquier fuente a cualquier destino
minimizando la latencia y con coste proporcionado.La red se compone de: nodos; conmutadores; enlaces.
La red se caracteriza por su: topología: estructura de la interconexión física; enrutado: que determina las rutas que los mensajes pueden o deben seguir en el grafo de la red;
estrategia de conmutación: de circuitos o de paquetes;
Arquitectura e Ingeniería de Computadores control de flujo: mecanismos de organización del tráfico.
Interconexión de sistemas paralelos Clasificación de las redes por su topología.
Estáticas: conexiones directas estáticas punto a punto entre los nodos; fuerte acoplamiento interfaz de red-nodo; los vértices del grafo de la red son nodos o conmutadores; se clasifican a su vez: simétricas: anillo, hipercubo, toro; no simétricas: bus, árbol, malla.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Interconexión de sistemas paralelos Clasificación de las redes por su topología.
Dinámicas: los conmutadores pueden variar dinámicamente los nodos que interconectan.
Se clasifican a su vez: monoetapa; multietapa: bloqueante (línea base, mariposa, baraje); reconfigurable (Beneš); no bloqueante (Clos).
Interconexión de sistemas paralelos
Parámetros característicos de una red: Tamaño de la red: número de nodos que la componen.
Grado de un nodo: número de enlaces que inciden en el nodo.
Diámetro de la red: es el camino mínimo más largo que se puede encontrar entre dos nodos cualesquiera de la red.
Simetría: una red es simétrica si todos los nodos son
indistinguibles desde el punto de vista de la comunicación.Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Red lineal Anillo Estrella Arbol Malla Red sistólica Totalmente conexa Anillo cordal Cubo-3 Redes estáticas
Redes estáticas Tipo de red grado diámetro enlaces simetría lineal
2 N N no − 1 − 1 anillo
N N(N totalmente conexa 1 sí − 1 − 1)/2
N arbol
3 2(h
no − 1) − 1(h = log N + 1) 2 N N estrella 2 no − 1 − 1 malla - 2D (r x r) 4 2(r
2N no − 1) − 2r hipercubo n n n nN/2 sí
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Hipercubo 3D ciclo-conexo
Redes estáticas
Arquitectura e Ingeniería de Computadores 010 000 001 011 101 111 110 100 000 010 001 011 100 110 101 111 Conexión de nodos que se diferencian en el bit menos significativo Conexión de nodos que se diferencian en el segundo bit 000 010 001 011 100 110 101 111 Conexión de nodos que se diferencian en el bit más significativo 000 010 001 011 100 110 101 111 Ejemplo de conexiones en un hipercubo 3
Redes estáticas Redes dinámicas Redes dinámicas: son redes cuya configuración puede modificarse. Hay dos tipos: monoetapa. multietapa.
Las redes monoetapa realizan conexiones entre elementos de proceso en una sola etapa.
Puede que no sea posible llegar desde cualquier elemento a cualquier otro, por lo que puede ser necesario recircular la información (=>redes recirculantes)
Las redes multietapa realizan conexiones entre los elementos de proceso en más de una etapa. Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Redes dinámicas
Redes de interconexión monoetapa
Arquitectura e Ingeniería de Computadores Redes dinámicas
EP0 EP1 EPn EP0 EP1 EPn EP0 EP1 EPn M0 M1 Mm Red de barras cruzadas: permite cualquier conexión.
Arquitectura e Ingeniería de Computadores Redes de interconexión (multietapa) Las cuatro configuraciones posibles de una caja de conmutación de 2 entradas. Cajas de conmutación a a 1 b b
1
a a 1 b b 1 a a 1 b b 1 a a 1 b b1
Paso directoCruce Difusión superior Difusión inferior
Redes dinámicas Redes dinámicas bloqueantes Redes multietapa bloqueantes.
Se caracterizan porque no es posible establecer siempre una nueva conexión entre un par fuente/destino libres, debido a conflictos con las conexiones en curso. Generalmente existe un único camino posible entre cada par fuente/destino.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes
Red de línea base: Red de línea base 8 x 8
Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes
Red mariposa:
Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes
Red baraje perfecto: 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Barajado perfecto 000 001 010 011 100 101 110 111 111 110 101 100 011 010 000 001
Barajado perfecto inverso Redes dinámicas reconfigurables Redes multietapa reconfigurables.
Se caracterizan porque es posible establecer siempre una nueva conexión entre un par fuente/destino libres, aunque haya conexiones en curso, pero puede hacerse necesario un cambio en el camino usado por alguna(s) de ellas (reconfiguración).
Interesante en procesadores matriciales, en donde se conoce
simultáneamente todas las peticiones de interconexión.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Redes dinámicas reconfigurables
Red de Beneš: Red de Benes 8 x 8
Redes dinámicas reconfigurables La red de Beneš se puede construir recursivamente:
Red de Benes 4 x 4 Red de Benes 4 x 4 Red de Benes 8 x 8 Arquitectura e Ingeniería de Computadores Redes dinámicas no bloqueantes Redes dinámicas no bloqueantes.
Se caracterizan porque es posible establecer siempre una nueva conexión entre un par fuente/destino libres sin restricciones. Son análogas a los conmutadores de barras cruzadas, pero pueden presentar mayor latencia, debido a las múltiples etapas.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Redes dinámicas no bloqueantes
Red de Clos:
1
2 r 1 2 m 1 2 r n x m r x r m x n 1 n 1 n Red de Clos
Coherencia en Memoria Cache
Estructuras comunes de la jerarquía de memoria en
multiprocesadoresMemoria cache compartida. Memoria compartida mediante bus. Interconexión por medio de red (dance-hall) Memoria distribuida.
Arquitectura e Ingeniería de Computadores
Coherencia en Memoria Cache Cache compartida
Pequeño número de
P1 Pn
procesadores (2-8) Fue común a mediados de los 80 para conectar un par de procesadores
Memoria cache en placa.
(Entrelazada)
Posible estrategia en chip multiprocesadores.
Memoria principal (Entrelazada) Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Compartición por medio de bus.
P1 Pn
Ampliamente usada en multiprocesadores de pequeña y mediana escala
Memoria Memoria
(20-30)
cache cache
Forma dominante en las máquinas paralelas
bus actuales.
Los microprocesadores modernos están dotados
Memoria principal
para soportar protocolos de coherencia en esta configuración.
Arquitectura e Ingeniería de Computadores
Coherencia en Memoria Cache Salón de baile Fácilmente escalable.
P1 Pn
Estructura simétrica UMA.
Memoria Memoria
Memoria demasiado
cache cache
lejana especialmente en grandes sistemas.
Red de interconexión Memoria Memoria principal principal
Arquitectura e Ingeniería de Computadores
Coherencia en Memoria Cache
Memoria distribuida •Especialmente atractiva par multiprocesadores escalables.
- Estructura no simétrica NUMA.
- Accesos locales rápidos.
P1 Pn
Memoria Memoria
Memoria Memoria cache cache principal principal
Arquitectura e Ingeniería de Computadores Red de interconexión
Arquitectura e Ingeniería de Computadores El problema de la coherencia
Datos actualizados en memoria principal y las caches particulares.
Monoprocesadores: Incoherencia en distintos niveles.
Operaciones de I/O.
Multiprocesadores:
Incoherencia en distintos niveles Incoherencia en el mismo nivel Coherencia en Memoria Cache
Coherencia en Memoria Cache Fuentes de incoherencia: Los datos compartidos.
La migración de procesos. Las operaciones de entrada-salida.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores P0 P1 P2
Pn
Memoria principal Memoria cache
Fuentes de incoherencia
Datos compartidos en caches de escritura directa.
Arquitectura e Ingeniería de Computadores
Memoria principal
P0 P1
P2
PnMemoria cache Datos compartidos en caches de post-escritura.
Fuentes de incoherencia
Arquitectura e Ingeniería de Computadores P0 P1 P2
Pn
Memoria principal Memoria cache
Migración de procesos en caches de escritura directa.
Fuentes de incoherencia
Fuentes de incoherencia
Migración de procesos en caches de post-escritura.
P2 P0 P0 P1 P2 Pn
Memoria cache Memoria
Arquitectura e Ingeniería de Computadores
principal
Arquitectura e Ingeniería de Computadores Operaciones de entrada salida Salida (post-escritura)
Memoria principal Memoria cache
P0 P1 P2 Pn
Entrada Fuentes de incoherencia Coherencia en Memoria Cache Posibles soluciones Caches locales.
Memoria cache compartida. Caches privadas con protocolos de escucha. Caches privadas con directorio compartido.
Arquitectura e Ingeniería de Computadores
Coherencia en Memoria Cache Políticas de mantenimiento de coherencia Invalidar.
Actualizar. X P P P P
X X X X X' X' P P P P P P P P X' I I I X' X' X' X'
Arquitectura e Ingeniería de Computadores Invalidar Actualizar
Protocolos de escucha Protocolos snoopy Sistemas de memoria basados en bus.
Escucha de las operaciones (snoop) Se deben transmitir las operaciones de lectura y escritura.
Las operaciones de cambio de bloque no influyen en el estado del bloque en otros procesadores.
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores Protocolos snoopy Caches de escritura directa. inválido válido
R(j) W(j)
R(i), W(i) W(j)
R(j) W(i)
R(i)
Protocolos de escucha
Arquitectura e Ingeniería de Computadores
R(i) R(j)
M S
I R(j) W(i)
R(i) W(i)
W(j) W(i)
W(j) R(i)
Protocolos snoopy Caches de post-escritura MSI.
Protocolos de escucha
Protocolos de escucha Protocolos snoopy Caches de post-escritura MESI.
W(i) R(i)
R(i)
M
E
W(i) W(i)
R(j) S R(i) S
W(i) R(j)
W(j) W(j)
W(j) R(i)
S
I Arquitectura e Ingeniería de Computadores
R(j) R(j)
R(i) S Protocolos basados en directorios Protocolos basados en directorios Multiprocesadores con red de interconexión.
Dificultades de broadcast y su escalabilidad. Directorio: guarda la información relativa al estado del bloque de cache.
Directorios centralizados y directorios distribuidos.
Arquitectura e Ingeniería de Computadores
Protocolos basados en directorios Fallo de lectura en estado modificado.
1 P2 P1 Bloque Cache
2 Bloque Mem. Cache Mem. Directorio Directorio
3
4 P3
4 Bloque Mem. Cache Arquitectura e Ingeniería de Computadores Directorio
Protocolos basados en directorios
Cache Bloque Mem. Directorio
P2 Cache
Cache Bloque Mem. Directorio
P4 Cache Bloque Mem.
4 4 3 3
1
2
Bloque Mem. Directorio P3
Arquitectura e Ingeniería de Computadores Fallo de escritura en estado compartido. Directorio P1
Arquitectura e Ingeniería de Computadores bloque
1
Bloque Mem.
P0 P1 Pm P2 Dirty Estructura del directorio (directorios completos)
Protocolos basados en directorios
P Cache
Arquitectura e Ingeniería de Computadores Estructura del directorio (directorios limitados) Directorio bloque
Bloque Mem.
I1 In
I2 Dirty log
Protocolos basados en directorios
P Cache
Arquitectura e Ingeniería de Computadores Estructura del directorio (directorios encadenados) bloque Directorio
P Cache Bloque Mem.
P Dirty log
Cache Bloque Mem. Directorio
P Cache Bloque Mem. Directorio P Cache Bloque Mem.
FC FC FC
Protocolos basados en directorios