La taxonomía de Duncan es una clasificación de arquitecturas informáticas , propuesta por Ralph Duncan en 1990. [1] Duncan sugirió modificaciones a la taxonomía de Flynn [2] para incluir procesos vectoriales segmentados. [3]
La taxonomía se desarrolló durante 1988-1990 y se publicó por primera vez en 1990. Sus categorías originales se indican a continuación.
Esta categoría incluye todas las arquitecturas paralelas que coordinan la ejecución concurrente de forma sincronizada y lo hacen a través de mecanismos como relojes globales, unidades de control central o controladores de unidades vectoriales. La subdivisión de esta categoría se realiza principalmente en función del mecanismo de sincronización. [1]
Los procesadores vectoriales segmentados se caracterizan por unidades funcionales segmentadas que aceptan un flujo secuencial de elementos de matriz o vector , de modo que las diferentes etapas de una segmentación completa procesan diferentes elementos del vector en un momento dado. [4] El paralelismo se logra tanto mediante la segmentación en unidades funcionales individuales descritas anteriormente, como mediante el funcionamiento de múltiples unidades de este tipo en paralelo y encadenando la salida de una unidad a otra unidad como entrada. [4]
Las arquitecturas vectoriales que transmiten elementos vectoriales a unidades funcionales desde registros vectoriales especiales se denominan arquitecturas de registro a registro , mientras que las que alimentan unidades funcionales desde búferes de memoria especiales se designan como arquitecturas de memoria a memoria . [1] Los primeros ejemplos de arquitecturas de registro a registro de la década de 1960 y principios de la de 1970 incluyen el Cray-1 [5] y el Fujitsu VP-200, mientras que el Control Data Corporation STAR-100 , el CDC 205 y el Texas Instruments Advanced Scientific Computer son ejemplos tempranos de arquitecturas vectoriales de memoria a memoria. [6]
A finales de los años 1980 y principios de los años 1990 se introdujeron las arquitecturas vectoriales, como la Cray Y-MP/4 y la Nippon Electric Corporation SX-3, que admitían de 4 a 10 procesadores vectoriales con una memoria compartida (véase la arquitectura NEC SX ). La RISC-V RVV puede marcar el comienzo del resurgimiento moderno del procesamiento vectorial. [¿ Especulación? ]
Este esquema utiliza la categoría SIMD (flujo de instrucciones único, flujo de datos múltiple) de la taxonomía de Flynn como clase raíz para las subclases de memoria asociativa y matriz de procesadores . Las arquitecturas SIMD [7] se caracterizan por tener una unidad de control que transmite una instrucción común a todos los elementos de procesamiento, que ejecutan esa instrucción al unísono en diversos operandos de datos locales. Las características comunes incluyen la capacidad de los procesadores individuales de deshabilitar una instrucción y la capacidad de propagar los resultados de la instrucción a los vecinos inmediatos a través de una red de interconexión.
Las matrices sistólicas , propuestas durante la década de 1980, [8] son multiprocesadores en los que los datos y los resultados parciales se bombean rítmicamente de un procesador a otro a través de una red de interconexión local regular. [1] Las arquitecturas sistólicas utilizan un reloj global y retrasos de tiempo explícitos para sincronizar el flujo de datos de un procesador a otro. [1] Cada procesador en un sistema sistólico ejecuta una secuencia invariante de instrucciones antes de que los datos y los resultados se envíen a los procesadores vecinos. [8]
Basándose en la terminología de múltiples instrucciones y múltiples flujos de datos de Flynn, esta categoría abarca un amplio espectro de arquitecturas en las que los procesadores ejecutan múltiples secuencias de instrucciones en flujos de datos (potencialmente) diferentes sin una sincronización estricta. Aunque tanto los flujos de instrucciones como los de datos pueden ser diferentes para cada procesador, no es necesario que lo sean. Por lo tanto, las arquitecturas MIMD pueden ejecutar programas idénticos que se encuentran en varias etapas en un momento dado, ejecutar flujos de instrucciones y datos únicos en cada procesador o ejecutar una combinación de cada uno de estos escenarios. Esta categoría se subdivide aún más, principalmente en función de la organización de la memoria. [1]
La categoría de paradigmas basados en MIMD incluye sistemas en los que un paradigma de ejecución o programación específico es al menos tan fundamental para el diseño arquitectónico como lo son las consideraciones estructurales. Por lo tanto, el diseño de arquitecturas de flujo de datos y máquinas de reducción es tanto el producto de respaldar su paradigma de ejecución distintivo como de conectar procesadores y memorias al estilo MIMD. Las subdivisiones de la categoría están definidas por estos paradigmas. [1]