Arquitecturas avanzadas

FLYNN. SISD. SIMD. MISD. MIMD. Ordenadores Paralelos. Multiproceso. UMA. NUMA. COMA. Multicomputadores. Mainframes. Supercomputadoras

  • Enviado por: Nuria Baeza
  • Idioma: castellano
  • País: España España
  • 14 páginas
publicidad
cursos destacados
AutoCAD Map 3D
Structuralia
Incluye licencia educacional GRATUITA durante el curso
Solicita InformaciÓn


publicidad

Taxonomía de las arquitecturas

1 Introducción

  • Introducción

En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad.

La primera clasificación, es la clasificación clásica de Flynn en dónde se tienen en cuenta sistemas con uno o varios procesadores. La segunda clasificación es una clasificación moderna en la que sólo tienen en cuenta los sistemas con más de un procesador.

El objetivo de este trabajo es presentar de una forma clara los tipos de sistemas que existen en la actualidad desde el punto de vista de distintos autores, así como cuáles son las ventajas e inconvenientes que cada uno ostenta.

  • Clasificación de Flynn

Clasificación clásica de arquitectura de computadores que hace alusión a sistemas con uno o varios procesadores. Flynn la publicó por primera vez en 1966 y por segunda vez en 1970.

Esta taxonomía se basa en el flujo que siguen los datos dentro de la máquina y de las instrucciones sobre esos datos.

Se define como flujo de instrucciones al conjunto de instrucciones secuenciales que son ejecutadas por un único procesador y como flujo de datos al flujo secuencial de datos requeridos por el flujo de instrucciones.

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

  • SISD (Single Instruction stream, Single Data stream)

  • Los sistemas de este tipo se caracterizan por tener un único flujo de instrucciones sobre un único flujo de datos, es decir, se ejecuta una instrucción detrás de otra. Este es el concepto de arquitectura serie de Von Neumann donde, en cualquier momento, sólo se ejecuta una única instrucción.

    Un ejemplo de estos sistemas son las máquinas secuenciales convencionales.

  • SIMD (Single Instruction stream, Multiple Data stream)

  • Estos sistemas tienen un único flujo de instrucciones que operan sobre múltiples flujos de datos. Ejemplos de estos sistemas los tenemos en las máquinas vectoriales con hardware escalar y vectorial.

    El procesamiento es síncrono, la ejecución de las instrucciones sigue siendo secuencial como en el caso anterior, todos los elementos realizan una misma instrucción pero sobre una gran cantidad de datos. Por este motivo existirá concurrencia de operación, es decir, esta clasificación es el origen de la máquina paralela.

    El funcionamiento de este tipo de sistemas es el siguiente. La Unidad de Control manda una misma instrucción a todas las unidades de proceso (ALUs). Las unidades de proceso operan sobre datos diferentes pero con la misma instrucción recibida.

    Existen dos alternativas distintas que aparecen después de realizarse esta clasificación:

    • Arquitectura Vectorial con segmentación:

    Una CPU única particionada en unidades funcionales independientes trabajando sobre flujos de datos concretos

    • Arquitectura Matricial (matriz de procesadores):

    Varias ALUs idénticas a las que el procesador de instrucciones asigna una única instrucción pero trabajando sobre diferentes partes del programa.

  • SIMD CON CPU PARTICIONADA

  • En este tipo de sistemas, la CPU se diseña como un conjunto de unidades funcionales independientes que ejecutan simultáneamente varias operaciones aritmético/lógicas.

    La CPU contiene un único procesador con instrucciones que procesa un único flujo de estas liberando cada instante una. Debido a que las unidades funcionales operan independientemente, es posible liberar nuevas instrucciones antes de que finalice la ejecución de las instrucciones previas.

    Ejemplos de este tipo de sistemas los encontramos en los computadores CRAY monoprocesador, CYBER 205, FUJITSU, HITACHE, NEC SUPERCOMPUTERS, IBM 390 VF, IBM 9000 VF, ALLIANT FX/1 Y CONVEX C-1.

  • SIMD CON MULTIPLES ALUS

  • Estos sistemas trabajan en modo lock step, ejecutando o ignorando una misma instrucción para todas las ALUs. Existe un único procesador que maneja el flujo de instrucciones del programa y que transfiere todas las instrucciones a las diferentes unidades aritmético/lógicas.

    Cada ALU opera sobre un segmento diferente de datos del programa.

    Ejemplo de funcionamiento del sistema con el siguiente bucle:

    DO 2000 I=1,N

    A(I) = B(I) + C(I)

    2000 CONTINUE

    El procesador asigna a cada ALU la operación de suma de B(I) con C(I) y siendo el almacenamiento del resultado en A(I) pero pasando a cada ALU un valor diferente de I.

    En el caso de que haya menos ALUs que iteraciones del bucle, el procesador ordenará la ejecución hasta que estén procesados todos los valores de I.

    En el caso de que haya más ALUs que iteraciones, existirá un número de estas que no estén operativas durante la ejecución de las instrucciones del bucle. Una ALU inactiva o en OFF significa que:

  • La ALU recibe instrucciones pero las ignora

  • La ALU ejecuta cálculos pero no almacena ningún resultado.

  • MISD (Multiple Instruction stream, Single Data stream)

  • Sistemas con múltiples instrucciones que operan sobre un único flujo de datos. Este tipo de sistemas no ha tenido implementación hasta hace poco tiempo.

    Los sistemas MISD se contemplan de dos maneras distintas:

  • Varias instrucciones operando simultáneamente sobre un único dato.

  • Varias instrucciones operando sobre un dato que se va convirtiendo en un resultado que será la entrada para la siguiente etapa. Se trabaja de forma segmentada, todas las unidades de proceso pueden trabajar de forma concurrente.

  • Ejemplos de estos tipos de sistemas son los arrays sistólicos o arrays de procesadores. También podemos encontrar aplicaciones de redes neuronales en máquinas masivamente paralelas.

  • MIMD (Multiple Instruction stream, Multiple Data stream)

  • Sistemas con un flujo de múltiples instrucciones que operan sobre múltiples datos. Estos sistemas empezaron a utilizarse a principios de los 80.

    Son sistemas con memoria compartida que permiten ejecutar varios procesos simultáneamente (sistema multiprocesador).

    Cuando las unidades de proceso reciben datos de una memoria no compartida estos sistemas reciben el nombre de MULTIPLE SISD (MSISD).

    En arquitecturas con varias unidades de control (MISD Y MIMD), existe otro nivel superior con una unidad de control que se encarga de controlar todas las unidades de control del sistema.

    Ejemplo de estos sistemas son las máquinas paralelas actuales.

    • Categorías de Ordenadores Paralelos

    Clasificación moderna que hace alusión única y exclusivamente a los sistemas que tienen más de un procesador (i.e máquinas paralelas).

    Existen dos tipos de sistemas teniendo en cuenta su acoplamiento. Los sistemas fuertemente acoplados son aquellos en los que los procesadores dependen unos de otros. Los sistemas débilmente acoplados son aquellos en los que existe poca interacción entre los diferentes procesadores que forman el sistema.

    Atendiendo a esta y a otras características, la clasificación moderna divide a los sistemas en dos tipos: Sistemas multiprocesador (fuertemente acoplados) y sistemas multicomputador (débilmente acoplados).

  • Multiprocesadores

  • Un multiprocesador puede verse como un computador paralelo compuesto por varios procesadores interconectados que comparten un mismo sistema de memoria.

    Los sistemas multiprocesadores son arquitecturas MIMD con memoria compartida. Tienen un único espacio de direcciones para todos los procesadores y los mecanismos de comunicación se basan en el paso de mensajes desde el punto de vista del programador.

    Dado que los multiprocesadores comparten diferentes módulos de memoria, pudiendo acceder a un mismo módulo varios procesadores, a los multiprocesadores también se les llama sistemas de memoria compartida.

    Dependiendo de la forma en que los procesadores comparten la memoria, se clasifican en sistemas multiprocesador UMA, NUMA y COMA.

  • UMA (Uniform Memory Access)

  • Sistema multiprocesador con acceso uniforme a memoria. La memoria física es uniformemente compartida por todos los procesadores, esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de la memoria. Cada procesador tiene su propia caché privada y también se comparten los periféricos.

    Los multiprocesadores son sistemas fuertemente acoplados (tightly-coupled), dado el alto grado de compartición de los recursos (hardware o software) y el alto nivel de interacción entre procesadores, lo que hace que un procesador dependa de lo que hace otro.

    El sistema de interconexión debe ser rápido y puede ser de uno de los siguientes tipos:

    • Bus común

    • Red crossbar

    • Red multietapa

    Este modelo es conveniente para aplicaciones de propósito general y de tiempo compartido por varios usuarios.

    Existen varias categorías de sistemas UMA.

  • Sistema Simétrico

  • Cuando todos los procesadores tienen el mismo tiempo de acceso a todos los componentes del sistema (incluidos los periféricos), reciben el nombre de sistemas multiprocesador simétrico.

    Los procesadores tienen el mismo dominio (prioridad) sobre los periféricos y cada procesador tienen la misma capacidad para procesar.

  • Sistema Asimétrico

  • Los sistemas multiprocesador asimétrico, son sistemas con procesadores maestros y procesadores esclavos, en donde sólo los primeros pueden ejecutar aplicaciones y dónde en tiempo de acceso para diferentes procesadores no es el mismo. Los procesadores esclavos (attached) ejecutan código usuario bajo la supervisión del maestro, por lo tanto cuando una aplicación es ejecutada en un procesador maestro dispondrá de una cierta prioridad.

  • NUMA (Non Uniform Memory Access)

  • Un sistema multiprocesador NUMA es un sistema de memoria compartida donde el tiempo de acceso varía según donde se encuentre localizado el acceso.

    El acceso a memoria, por tanto, no es uniforme para diferentes procesadores. Existen memorias locales asociadas a cada procesador y estos pueden acceder a datos de su memoria local de una manera más rápida que a las memorias de otros procesadores, debido a que primero debe aceptarse dicho acceso por el procesador del que depende el módulo de memoria local.

    Todas las memorias locales conforman la memoria global compartida y físicamente distribuida y accesible por todos los procesadores.

  • Cluster Jerárquico

  • Otro modelo NUMA que nace como la mezcla del modelo UMA explicado anteriormente y el modelo NUMA anterior, es el cluster jerárquico en el que se combinan las memorias locales y las globales obteniendo una cierta escalabilidad del sistema.

    Los procesadores aparecen distribuidos en clusters (1 sistema UMA o un 1 sistema NUMA). Estos clusters están conectados a la memoria global compartida. El sistema en su totalidad es un sistema NUMA, ya que el acceso a memoria es no uniforme por parte de los clusters.

    La ventaja de estos sistemas con respecto a los sistemas UMA, es que el acceso a memoria local es mucho más rápido.

  • COMA (Cache Only Memory Access)

  • Los sistemas COMA son un caso especial de los sistemas NUMA. Este tipo de sistemas no ha tenido mucha transcendencia, al igual que los sistemas SIMD.

    Las memorias distribuidas son memorias cachés, por este motivo es un sistema muy restringido en cuanto a la capacidad de memoria global. No hay jerarquía de memoria en cada módulo procesador. Todas las cachés forman un mismo espacio global de direcciones. El acceso a las cachés remotas se realiza a través de los directorios distribuidos de las cachés.

    Dependiendo de la red de interconexión utilizada, se pueden utilizar jerarquías en los directorios para ayudar a la localización de copias de bloques de caché.

  • Multicomputadores

  • Los sistemas multicomputadores se pueden ver como un computador paralelo en el cual cada procesador tiene su propia memoria local. En estos sistemas la memoria se encuentra distribuida y no compartida como en los sistemas multiprocesador. Los computadores se comunican a través de paso de mensajes, ya que éstos sólo tienen acceso directo a su memoria local y no al las memorias del resto de procesadores.

    El diagrama de bloques de un sistema multicomputador coincide con el visto para los sistemas UMA, la diferencia viene dada porque la red de interconexión no permite un acceso directo entre memorias, sino que la comunicación se realiza por paso de mensajes.

    La transferencia de los datos se realiza a través de la red de interconexión que conecta un suconjunto de procesadores con otro subconjunto. La transferencia de unos procesadores a otros se realiza por tanto por múltiples transferencias entre procesadores conectados dependiendo del establecimiento de dicha red.

    Dado que la memoria está distribuida entre los diferentes elementos de proceso, estos sistemas reciben el nombre de distribuidos.

    Por otra parte, estos sistemas son débilmente acoplados, ya que los módulos funcionan de forma casi independiente unos de otros.

    3

    1

    Arquitecturas avanzadas

    Arquitecturas avanzadas

    Arquitecturas avanzadas

    Arquitecturas avanzadas

    Arquitecturas avanzadas

    Arquitecturas avanzadas

    Arquitecturas avanzadas