Taxonomía de Flynn

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Clasificación de arquitecturas informáticas

La taxonomía de Flynn es una clasificación de arquitecturas informáticas, propuesta por Michael J. Flynn en 1966 y ampliada en 1972. El sistema de clasificación se ha estancado y se ha utilizado como herramienta en el diseño de procesadores modernos y sus funcionalidades. Desde el surgimiento de las unidades centrales de procesamiento (CPU) de multiprocesamiento, ha evolucionado un contexto de multiprogramación como una extensión del sistema de clasificación. El procesamiento de vectores, cubierto por la taxonomía de Duncan, no se encuentra en el trabajo de Flynn porque el Cray-1 se lanzó en 1977: el segundo artículo de Flynn se publicó en 1972.

Clasificaciones

Las cuatro clasificaciones iniciales definidas por Flynn se basan en la cantidad de flujos de datos e instrucciones (o control) simultáneos disponibles en la arquitectura. Flynn definió tres subcategorías adicionales de SIMD en 1972.

Flujo de instrucciones único, flujo de datos único (SISD)

Una computadora secuencial que no aprovecha el paralelismo ni en las instrucciones ni en los flujos de datos. La unidad de control único (CU) obtiene un único flujo de instrucciones (IS) de la memoria. Luego, la CU genera señales de control apropiadas para dirigir un solo elemento de procesamiento (PE) para operar en un solo flujo de datos (DS), es decir, una operación a la vez.

Ejemplos de arquitecturas SISD son las máquinas tradicionales de un solo procesador, como las computadoras personales (PC) más antiguas (en 2010, muchas PC tenían varios núcleos) y las computadoras centrales.

Flujo de instrucciones único, múltiples flujos de datos (SIMD)

Una sola instrucción se aplica simultáneamente a múltiples flujos de datos diferentes. Las instrucciones se pueden ejecutar secuencialmente, como por canalización, o en paralelo por varias unidades funcionales. El artículo de Flynn de 1972 subdividió SIMD en tres categorías adicionales:

  • Procesador de rayos – Estos reciben la instrucción (samo) pero cada unidad de procesamiento paralelo tiene su propio archivo de memoria y registro separado y distinto.
  • Procesador de tuberías – Estos reciben la instrucción (samo) pero luego leen los datos de un recurso central, cada uno procesa fragmentos de esos datos, luego escribe los resultados al mismo recurso central. En la Figura 5 del papel de Flynn 1972 que el recurso es la memoria principal: para las CPU modernas que el recurso es ahora más típicamente el archivo de registro.
  • Procesador asociado – Estos reciben la instrucción (samo) pero en cada unidad de procesamiento paralelo una independiente se toma la decisión sobre la base de datos local a la unidad, en cuanto a si realizar la ejecución o si saltarla. En terminología moderna esto se conoce como "predicado" (masked) SIMD.

Procesador de matriz

El término moderno para un procesador de matrices es "instrucción única, múltiples subprocesos" (SIMT). Esta es una clasificación distinta en la taxonomía de Flynn de 1972, como una subcategoría de SIMD. Es identificable porque los subelementos paralelos tienen su propio archivo de registro y memoria independientes (caché y memoria de datos). Los artículos originales de Flynn citan dos ejemplos históricos de procesadores SIMT: SOLOMON e ILLIAC IV.

Nvidia suele utilizar el término en sus materiales de marketing y documentos técnicos, donde defiende la novedad de su arquitectura. SOLOMON es anterior a Nvidia por más de 60 años.

El procesador de cadenas asociativo (ASP) de microelectrónica de Aspex se clasificó a sí mismo en su material de marketing como "SIMD ancho masivo" pero tenía ALU de nivel de bits y predicación de nivel de bits (taxonomía de Flynn: procesamiento asociativo), y cada uno de los 4096 procesadores tenía sus propios registros y memoria (taxonomía de Flynn: procesamiento de matrices). El Linedancer, lanzado en 2010, contenía 4096 SIMD ALU predicadas de 2 bits, cada una con su propia memoria direccionable por contenido, y era capaz de ejecutar 800 mil millones de instrucciones por segundo. El procesador SIMT de matriz asociativa ASP de Aspex es anterior a NVIDIA por 20 años.

Procesador canalizado

En el momento en que Flynn escribió su artículo de 1972, muchos sistemas usaban la memoria principal como recurso desde el cual las canalizaciones leían y escribían. Cuando el recurso que todas las "tuberías" leer y escribir desde es el archivo de registro en lugar de la memoria principal, las variantes modernas del resultado SIMD. Los ejemplos incluyen Altivec, NEON y AVX.

Un nombre alternativo para este tipo de SIMD basado en registros es "SIMD empaquetado" y otro es SIMD dentro de un registro (SWAR). Cuando se aplica la predicación, se convierte en procesamiento asociativo (abajo)

Procesador asociativo

El término moderno para procesador asociativo es "predicado" (o enmascarado) SIMD. Los ejemplos incluyen AVX-512.

Algunos diseños modernos (GPU en particular) toman características de más de una de estas subcategorías: las GPU de hoy en día son SIMT pero también son asociativas, es decir, cada elemento de procesamiento en la matriz SIMT también se predica.

Flujos de instrucciones múltiples, flujo de datos único (MISD)

Múltiples instrucciones operan en un flujo de datos. Esta es una arquitectura poco común que generalmente se usa para la tolerancia a fallas. Los sistemas heterogéneos operan en el mismo flujo de datos y deben estar de acuerdo con el resultado. Los ejemplos incluyen la computadora de control de vuelo del transbordador espacial.

Flujo de instrucciones múltiples, flujos de datos múltiples (MIMD)

Múltiples procesadores autónomos que ejecutan simultáneamente diferentes instrucciones en diferentes datos. Las arquitecturas MIMD incluyen procesadores superescalares multinúcleo y sistemas distribuidos, que utilizan un espacio de memoria compartida o un espacio de memoria distribuida.

Diagrama comparativo de clasificaciones

Estas cuatro arquitecturas se muestran a continuación visualmente. Cada unidad de procesamiento (PU) se muestra para una computadora uni-core o multi-core:

Más divisiones

A partir de 2006, todas las 10 mejores y la mayoría de las supercomputadoras TOP500 se basan en una arquitectura MIMD.

Aunque estos no forman parte del trabajo de Flynn, algunos dividen aún más la categoría MIMD en las dos categorías siguientes y, a veces, se consideran subdivisiones adicionales.

Programa único, múltiples flujos de datos (SPMD)

Múltiples procesadores autónomos que ejecutan simultáneamente el mismo programa (pero en puntos independientes, en lugar del bloqueo que impone SIMD) en diferentes datos. También denominado proceso único, datos múltiples: el uso de esta terminología para SPMD es técnicamente incorrecto, ya que SPMD es un modelo de ejecución en paralelo y asume que varios procesadores cooperan ejecutando un programa. SPMD es el estilo más común de programación paralela. El modelo SPMD y el término fueron propuestos por Frederica Darema del equipo RP3.

Múltiples programas, múltiples flujos de datos (MPMD)

Múltiples procesadores autónomos que operan simultáneamente al menos 2 programas independientes. Por lo general, estos sistemas eligen un nodo para que sea el "host" ("el modelo explícito de programación de host/nodo") o "gestor" (la estrategia "Gerente/Trabajador"), que ejecuta un programa que distribuye datos a todos los demás nodos, los cuales ejecutan un segundo programa. Esos otros nodos luego devuelven sus resultados directamente al administrador. Un ejemplo de esto sería la videoconsola Sony PlayStation 3, con su procesador SPU/PPU.

Contenido relacionado

Formato de archivo de audio

Un formato de archivo de audio es un formato de archivo para almacenar datos de audio digital en un sistema informático. El diseño de bits de los datos de...

Datos (informática)

La data, datos o información digital, en la teoría de la información y los sistemas de información, son información representada como una cadena de...

Código muerto

Si bien es posible que nunca se use el resultado de un cálculo inactivo, puede generar excepciones o afectar algún estado global, por lo que la eliminación...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save