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

250

  MPP 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/96

  Arquitectura 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 datos

  Memoria 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 NUMA

  Pero 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 b

1

Paso directo

  Cruce 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

multiprocesadores

  Memoria 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

Pn

  Memoria 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