Array sistólico

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

En arquitecturas informáticas paralelas, una matriz sistólica es una red homogénea de unidades de procesamiento de datos (DPU) fuertemente acopladas llamadas células o nodos. Cada nodo o DPU calcula independientemente un resultado parcial como una función de los datos recibidos de sus vecinos ascendentes, almacena el resultado dentro de sí mismo y lo pasa hacia abajo. Los arreglos sistólicos fueron inventados por Richard P. Brent y H. T. Kung, quienes los desarrollaron para calcular los divisores comunes más grandes de enteros y polinomios. [1] A veces se clasifican como arquitecturas de datos múltiples de instrucciones múltiples (MISD) bajo la taxonomía de Flynn, pero esta clasificación es cuestionable porque se puede hacer un argumento fuerte para distinguir las series sistólicas de cualquiera de las cuatro categorías de Flynn: SISD, SIMD, MISD, MIMD.

Los datos de entrada paralelos fluyen a través de una red de nodos de procesador cableados, parecidos al cerebro humano, que combinan, procesan, combinan o clasifican los datos de entrada en un resultado derivado. Debido a que la propagación ondulatoria de datos a través de una matriz sistólica se asemeja al pulso del sistema circulatorio humano, el nombre sistólico se acuñó a partir de la terminología médica. El nombre se deriva de la sístole como una analogía al bombeo regular de sangre por el corazón.

Aplicaciones[editar]

Las matrices sistólicas suelen estar cableadas para operaciones específicas, como "multiplicar y acumular", para realizar tareas de integración, convolución, correlación, multiplicación matricial o clasificación de datos masivamente paralelas. También se utilizan para algoritmos de programación dinámica, utilizados en análisis de secuencias de ADN y proteínas.

Arquitectura[editar]

Una matriz sistólica consiste típicamente en una gran red monolítica de nodos de computación primitiva que puede ser cableada o software configurado para una aplicación específica. Los nodos suelen ser fijos e idénticos, mientras que la interconexión es programable. Los procesadores de frente de onda más generales, por el contrario, emplean nodos sofisticados e individualmente programables que pueden o no ser monolíticos, dependiendo del tamaño del arreglo y los parámetros de diseño. La otra distinción es que los arrays sistólicos se basan en transferencias de datos síncronas, mientras que el frente de onda tiende a trabajar asincrónicamente.

A diferencia de la arquitectura más común de Von Neumann, donde la ejecución del programa sigue un guión de instrucciones almacenadas en memoria común, dirigidas y secuenciadas bajo el control del contador de programa (PC) de la CPU, los nodos individuales dentro de una matriz sistólica son activados por la llegada de nuevos Datos y procesar siempre los datos exactamente de la misma manera. El procesamiento real dentro de cada nodo puede ser cableado duro o bloquear microcodificado, en cuyo caso la personalidad del nodo común puede ser programable en bloque.

El paradigma de matriz sistólica con flujos de datos impulsados por contadores de datos es la contrapartida de la arquitectura de Von Neumann con el flujo de instrucciones impulsado por un contador de programas. Debido a que una matriz sistólica normalmente envía y recibe múltiples flujos de datos, y se necesitan varios contadores de datos para generar estos flujos de datos, soporta el paralelismo de datos.

Los nodos reales pueden ser sencillos y cableados o consistir en unidades más sofisticadas usando microcódigo, que puede ser programable en bloque.

Referencias[editar]