En 1966, M.J. Flynn clasificó las formas de arquitectura de computadora paralela en cuatro grupos que se basan en el número de instrucciones y elementos de datos y la concurrencia en secuencias de procesamiento (o secuencias), datos e instrucciones. El núcleo de sistemas que implementan la computación paralela son: la unidad de control; el elemento de procesamiento o el procesador; y la memoria. Dependiendo del tipo de arquitectura, un sistema puede usar procesadores individuales o múltiples y una memoria compartida o distribuida.
En la computación paralela, un trabajo se divide en partes y las partes se dividen en una serie de instrucciones. Las instrucciones de cada parte se ejecutan en diferentes CPU simultáneamente y las partes se ejecutan simultáneamente.[1]
Cómo funciona
En Misd, hay múltiples elementos de procesamiento que tienen su propia unidad de control y memoria local que permite a cada procesador manejar las instrucciones de forma independiente. Para acelerar el proceso de resolución de problemas, el problema se divide en subproblemas y cada subproblema tiene su propio conjunto de programas o flujos de instrucciones. Se alimentan diferentes flujos de instrucciones a la unidad de control de cada procesador y, a su vez, las unidades de control envían los flujos de instrucciones a los procesadores. Por lo tanto, cada procesador opera en los datos de forma independiente y procesa las transmisiones de instrucción de forma asincrónica. En la mayoría de los casos, la salida de un procesador se convierte en una entrada del siguiente procesador, lo que significa que los procesadores están ejecutando diferentes programas o resolviendo diferentes subproblemas del problema principal.
Fuente de la imagen: Java T Point
Cómo se difiere de otras clases
Cada sistema informático que se encuentra en la clasificación de Flynn maneja las instrucciones y los datos de datos de manera diferente. Aquí hay una descripción general de las otras tres clases de sistemas informáticos en la taxonomía de Flynn. Basado en sus descripciones, verá cómo cada uno difiere de MISD.
SISD (instrucción única, datos únicos)
Como su nombre lo indica, solo hay una instrucción y un flujo de datos para el sistema informático SSID. Esta es una computadora uniprocesador que también se conoce como una computadora secuencial porque las instrucciones se procesan de manera secuencial. La memoria primaria almacena los datos e instrucciones mientras la unidad de control decodifica las instrucciones y luego envía las instrucciones al procesador. Este tipo de arquitectura se encuentra principalmente en computadoras, minicomputadoras y estaciones de trabajo convencionales.
Fuente de la imagen: Java T Point
SIMD (instrucción única, datos múltiples)
A diferencia de SISD, este sistema informático tiene múltiples procesadores. Los procesadores están ejecutando una sola instrucción en diferentes flujos de datos. Hay una memoria y una unidad de control que recupera los datos de la memoria y envía las mismas instrucciones a todos los elementos de procesamiento. Aunque los procesadores reciben las mismas instrucciones de la unidad de control, operan con diferentes elementos de datos. Este tipo de arquitectura generalmente se implementa en computadoras o aplicaciones utilizadas en computación científica, como la máquina de procesamiento de vectores de Cray, donde están involucrados múltiples vectores y matrices.
Fuente de la imagen: Java T Point
MIMD (instrucción múltiple, datos múltiples)
En este modelo de computación paralelo, múltiples procesadores que tienen su propia unidad de control pero que no necesariamente tienen su propio módulo de memoria. Cada procesador ejecuta un conjunto separado de instrucciones y flujos de datos que hacen que las máquinas MIMD sean capaces de manejar cualquier tipo de aplicación. Hay dos categorías en MIMD basadas en el tipo de memoria utilizada: MIMD de memoria compartida y MIMD de memoria distribuida.
MIMD de memoria compartida: los procesadores están conectados a una sola memoria. La comunicación entre procesadores es a través de la memoria global, por lo tanto, todos los procesadores tienen acceso a ella. Todas las transacciones y modificaciones de los datos almacenados en la memoria global son visibles para todos los procesadores.
MIMD de memoria distribuida: cada procesador tiene su propia memoria que almacena los datos. Los datos almacenados en la memoria local del procesador no son visibles para todos los procesadores. Dado que la memoria no se comparte, la comunicación entre procesadores pasa por el canal de comunicación entre procesos (IPC).
Fuente de la imagen: Java T Point
Donde se usa mal?
Mientras que las otras clases se usan en sistemas informáticos genéricos, MISD es más teórico y no prácticamente se usa en muchas aplicaciones. Se implementó en matrices sistólicas, que es un sistema ideal para aplicaciones como inteligencia artificial, procesamiento de imágenes, reconocimiento de patrones y otras tareas que imitan el procesamiento de cerebros de animales. En las matrices sistólicas, el procesador lee los datos de otro procesador, realiza una operación y envía una salida que será utilizada por otro procesador. La estructura general de las matrices sistólicas refleja la de la arquitectura MISD. Sin embargo, existe un argumento sobre si MISD es de hecho la arquitectura detrás de las matrices sistólicas, ya que los datos de entrada suelen ser un vector y no un solo valor de datos. Aún así, otros argumentarían que un vector de entrada se considera un conjunto de datos único que califica las matrices sistólicas como máquinas MISD. Cualquiera sea el caso, las matrices sistólicas permanecen como el ejemplo clásico de la arquitectura MISD.
MISD también se conoce como la arquitectura detrás de los sistemas de control de vuelo del transbordador espacial debido a su mejor escala y uso eficiente de los recursos computacionales.
En general, la arquitectura MIRD rara vez se usa y solo se construyen unas pocas máquinas utilizando esta arquitectura. La mayoría de estos sistemas no están disponibles comercialmente.
Conclusión
MISD es una de las cuatro arquitecturas informáticas paralelas clasificadas por M.J. Flynn donde múltiples elementos de procesamiento procesan diferentes conjuntos de transmisiones de instrucciones de un solo flujo de datos. Cada procesador tiene su propia unidad de control y memoria, y los elementos de procesamiento son flujos de instrucciones de procesamiento de forma independiente. Entre las cuatro clases, MISD es el tipo de arquitectura menos utilizado con solo dos ejemplos destacados de aplicaciones donde se usa: matrices sistólicas y sistemas de control de vuelo de transbordador espacial. Incluso hasta el día de hoy, no muchas aplicaciones usan MISD, pero es especialmente útil para aplicaciones altamente especializadas.
Fuentes:
[1] Geeks para geeks. Arquitectura de computadora | Taxonomía de Flynn. 6 de enero de 2020. https: // www.geeksforgeeks.org/computadora-arquitectura-flynns-taxonomy/. Consultado el 22 de marzo de 2022