ᐒ Arquitecturas modernas con multiprocesadores

Arquitecturas modernas con multiprocesadores

Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas, especialmente respecto de:

  • La forma de interconectarlas entre sí.
  • Los esquemas de comunicación utilizados. 

Existen diversos esquemas de clasificación para los sistemas de cómputos con varias CPU:

  • Uno de los mas conocidos es la “Taxonomía de Flynn”:
    • Considera como características esenciales el número de flujo de instrucciones y el número de flujos de datos.
    • La clasificación incluye equipos SISD, SIMD, MISD y MIMD.

SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de datos):

  • Poseen un único procesador.

SIMD (Single Instruction Multiple Data: un flujo de instrucciones y varios flujos de datos):

  • Se refiere a ordenar procesadores con una unidad de instrucción que:
    • Busca una instrucción.
    • Instruye a varias unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos.
  • Son útiles para los cómputos que repiten los mismos cálculos en varios conjuntos de datos.

MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo de datos):

  • No se presenta en la práctica.

MIMD (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su propio contador del programa, programa y datos):

  • Todos los sistemas distribuidos son de este tipo.
Un avance sobre la clasificación de Flynn incluye la división de las computadoras MIMD en dos grupos:
  • Multiprocesadores: poseen memoria compartida:
    • Los distintos procesadores comparten el mismo espacio de direcciones virtuales.
  • Multicomputadoras: no poseen memoria compartida:
  • Ej.: grupo de PC conectadas mediante una red.
Cada una de las categorías indicadas se puede clasificar según la arquitectura de la red de interconexión en:
  • Esquema de bus:
    • Existe una sola red, bus, cable u otro medio que conecta todas las máquinas:
      • Ej.: la televisión por cable.
  • Esquema con conmutador:
  • No existe una sola columna vertebral de conexión:
    • Hay múltiples conexiones y varios patrones de conexionado.
    • Los mensajes de mueven a través de los medios de conexión.
    • Se decide explícitamente la conmutación en cada etapa para dirigir el mensaje a lo largo de uno de los cables de salida.
    • Ej.: el sistema mundial telefónico público.
  • Otro aspecto de la clasificación considera el acoplamiento entre los equipos:
  • El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisión es alta.
  • Generalmente se los utiliza como sistemas paralelos.
  • El retraso de los mensajes entre las máquinas es grande y la tasa de transmisión es baja.
  • Generalmente se los utiliza como sistemas distribuidos.
  • Sistemas fuertemente acoplados:
  • Sistemas débilmente acoplados:
Generalmente los multiprocesadores están más fuertemente acoplados que las multicomputadoras.

MULTIPROCESADORES CON BASE EN BUSES

Constan de cierto número de cpu conectadas a un bus común, junto con un módulo de memoria (ver Figura 7.1 [25, Tanenbaum]).
Arquitecturas modernas con multiprocesadores

Un bus típico posee al menos:
  • 32 líneas de direcciones.
  • 32 líneas de datos.
  • 30 líneas de control.
Todos los elementos precedentes operan en paralelo.
Solo existe una memoria, la cual presenta la propiedad de la coherencia:
  • Las modificaciones hechas por una cpu se reflejan de inmediato en las subsiguientes lecturas de la misma o de otra cpu.
El problema de este esquema es que el bus tiende a sobrecargarse y el rendimiento a disminuir drásticamente; la solución es añadir una memoria caché de alta velocidad entre la cpu y el bus:
  • El caché guarda las palabras de acceso reciente.
  • Todas las solicitudes de la memoria pasan a través del caché.
  • Si la palabra solicitada se encuentra en el caché:
    • El caché responde a la cpu.
    • No se hace solicitud alguna al bus.
  • Si el caché es lo bastante grande:
  • La “tasa de encuentros” será alta y la cantidad de tráfico en el bus por cada cpu disminuirá drásticamente.
  • Permite incrementar el número de cpu.

Multiprocesadores con Conmutador

El esquema de multiprocesadores con base en buses resulta apropiado para hasta aproximadamente 64 procesadores.
Para superar esta cifra es necesario un método distinto de conexión entre procesadores (cpu) y memoria.
Una posibilidad es dividir la memoria en módulos y conectarlos a las cpu con un “conmutador de cruceta” (cross-bar switch):
  • Cada cpu y cada memoria tiene una conexión que sale de él.
  • En cada intersección está un “conmutador del punto de cruce” (crosspoint switch) electrónico que el hardware puede abrir y cerrar:
    • Cuando una cpu desea tener acceso a una memoria particular, el conmutador del punto de cruce que los conecta se cierra momentáneamente.
  • La virtud del conmutador de cruceta es que muchas cpu pueden tener acceso a la memoria al mismo tiempo:
  • Aunque no a la misma memoria simultáneamente.
  • Para “n” cpu y “n” memorias se necesitan “n” x “n” conmutadores ver Figura 7.2
  • Lo negativo de este esquema es el alto número de conmutadores:
Arquitecturas modernas con multiprocesadores
  • Cada cpu tiene asociada cierta memoria local.
  • El acceso será muy rápido a la propia memoria local y más lento a la memoria de las demás cpu.
  • Esto se denomina esquema o “máquina NUMA” (Acceso No Uniforme a la Memoria):
    • Tienen un mejor tiempo promedio de acceso que las máquinas basadas en redes omega.
    • La colocación de los programas y datos en memoria es crítica para lograr que la mayoría de los accesos sean a la memoria local de cada cpu.