Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3...

Post on 14-Apr-2015

6 views 2 download

Transcript of Multiprocesadores 3.1 Dominios de aplicación 3.2 Arquitecturas con memoria centralizada 3.3...

Multiprocesadores3.1 Dominios de aplicación

3.2 Arquitecturas con memoria centralizada

3.3 Arquitecturas con memoria distribuida

3.4 Sincronización

3.5 Modelos de consistencia de memoria

3.6 Modelos de interconexión

3.1 Dominios de Aplicación

• Problemas que demandan una capacidad de cálculo superior

– Satélites, Medicina, análisis sismológicos, ...

• Freno al aumento de la velocidad de los componentes

– Ley física que da la velocidad de la luz en el vacío

• Presentación del paralelismo (1966 Flynn)• SISD • SIMD• MISD• MIMD

• Líneas de desarrollo dentro de las arquitecturas paralelas

– Multiprocesadores– Multicomputadores– Presentan 2 modelos básicos:

– Con Memoria Compartida» Número pequeño de microprocesadores (docenas)» Cachés suficientemente grandes+bus+memoria

compartida central» Muy popular

– Con Memoria Distribuida» Ofrece la solución al ancho de banda» Necesario un sistema de interconexión que proporcione

el ancho de banda necesario

3.2 Arquitecturas con Memoria Centralizada

• Modelo UMA

• Modelo NUMA

• Modelo COMA

• Modelo UMA

– Memoria física uniformemente compartida por todos los procesadores

– Todos los procesadores presentan el mismo tiempo de acceso a todas las palabras de memoria

– Cada procesador puede emplear una caché privada

– Los periféricos se comparten de la misma manera

• Modelo NUMA– Tiempo de acceso depende de la ubicación

de la palabra de memoria– Memorias Locales (Forman el espacio de

direccionamiento global)– Coherencia caché con directorios distribuídos

• Modelo COMA– Caso especial del NUMA– La memoria principal se convierte a caché– No existe una jerarquía de memoria en cada

procesador

Arquitecturas con memoria distribuida

• Exclusión de la coherencia caché

• Protocolos basados en directorios (qué procesadores tienen copias de un bloque y estado del bloque) con invalidación de escritura

• Directorios distribuidos (como la memoria)

Sincronización

• Se intercambia información de control• Se usan mecanismos Hardware• Puede durar algunos ciclos de bus.Para

evitar esto se pueden usar mecanismos de interrupción

• Como ejemplo, los procesos residentes en diferentes procesadores se pueden sincronizar usando barreras

Modelos de Consistencia de Memoria(Comportamiento que

se ve de la memoria)• Fuentes de incoherencia entre las

cachés de los multiprocesadores

• Protocolos Snoopy• En cachés WT• En cachés WB

• Protocolos basados en directorios• Estructuras de directorios• Directorios full-map• Directorios limitados• Directorios encadenados

• Fuentes de incoherencia entre las cachés

– Ocurre sólo cuando se utilizan varias cachés privadas

– La principal fuente de incoherencias ocurre en la escritura sobre posiciones de memoria compartidas, aunque hay otras causas como son la actividad de I/O y la migración de procesos

• Protocolos Snoopy– Sirven para asegurar la coherencia en los sistemas

multiprocesadores con bus común.– Mantienen la coherencia a través de una mecanismo

de observación del bus. Cada caché observa todas las operaciones de memoria de las otras cachés, pues todas se llevan a cabo a través de un bus común.

– Cuando un controlador detecta que una transacción a través del bus amenaza el estado de coherencia de un objeto alojado en la caché puede realizar 2 cosas:

» Escritura invalidante. Se invalida la copia de la caché. Al tratar de acceder a ella se produce un fallo caché que implica la necesidad de acceder a memoria compartida para su actualización.

» Escritura actualizante. En lugar de invalidar las copias, directamente se actualizan con el nuevo valor (genera latencias demasiado elevadas de escritura en memoria. No se emplea).

• Protocolos Snoopy en cachés WT• 2 estados (válido e inválido) almacenados en la propia

caché– Válido. Un determinado bloque de datos está copiado en una o

varias cachés y en memoria principal, y en todas ellas contiene lo mismo. La evolución del estado se describe considerando todo desde el punto de vista de una determinada caché local.

• Protocolos Snoopy en caches WB– 3 estados para cada copia caché

• Protocolos basados en directorios• Se utilizan en sistemas multiprocesador

construidos utilizando redes punto a punto o multietapa. En tales redes no existe un mecanismo adecuado de observación (no snoopy).

• Procedimientos de comunicación caros.Los comandos de comunicación sólo se deben enviar a aquellas caches que guarden una copia del bloque. Necesidad de información almacenada en determinados nodos sobre qué es lo que contienen otros (directorios).

• Diferentes protocolos difieren en la información que se almacena en los directorios y cómo se mantiene la misma.

» Directorios centralizados.El directorio central actúa como cuello de botella.

» Directorios distribuidos. Cada módulo de memoria contiene su directorio.

• Directorios distribuidos.• Están constituidos por entradas, una para cada bloque de

memoria cubierta por ese directorio, y esa entrada contiene varios punteros que especifican en qué cachés locales están las copias de ese bloque. Además, cada directorio contiene un bit de sucio que especifica cuando un solo procesador puede escribir sobre su copia local de ese bloque.

• Según cómo se organizan internamente los directorios, podemos distinguir:

– Directorios full-map– Directorios limitados– Directorios encadenados

• Directorios full-map– N bits de presencia de procesadores– 1 bit de sucio (información de memoria actualizada o

no)– Tamaño proporcional al cuadrado del número de

procesadores

• Directorios limitados• Esquema similar al full-map• Número fijo de bits por entrada, según el tamaño del

sistema.• Puede surgir el problema de que se tengan más

copias que bits para un bloque, y en ese caso habrá que invalidar alguna de las copias, simplemente porque no se puede reflejar su presencia en el directorio.

• Directorios encadenados• La mayor parte del directorio se distribuye

dentro de la propia caché.• Las entradas del directorio están organizadas

como una lista enlazada.• La primera entrada de esta lista se encuentra

en memoria principal y contiene un puntero que indica en qué caché está la primera copia, ésta un puntero que indica dónde está la segunda, ...

• Cuando se invalida un bloque éste debe ser sacado de la lista. Se complica el funcionamiento.

Modelos de Interconexión

1. Características de las redes de interconexión (Network Characteristics)

a) Características fundamentales

b) Estado de las redes

c) Redes bloqueantes frente a no bloqueantes

2. Propiedades de las redes

3. Encaminamientos de datos

4. Redes estáticas de conexión

5. Redes dinámicas de conexión