Procesadores+Vectoriales

= Procesadores Vectoriales  =

Para comenzar a explicar el concepto de procesador vectorial se tiene que comprender que es un vector. Este consisten en una secuencia de datos escalares del mismo tipo, almacenados en memoria que normalmente ocupa posiciones consecutivas. Entonces un procesador vectorial es un conjunto de recursos que realizan operaciones aritméticas o lógicas sobre vectores. Este tipo de sistema paralelo se conoce como SIMD según la taxonomía de Flynn.

**Las características principales de los procesadores vectoriales son:**

 * La capacidad de aplicar una instrucción a un conjunto de datos, en otras palabras un vector, de una sola vez. Los procesadores vectoriales consiguen esto a través de las áreas en la memoria especialmente diseñadas llamadas registros vectoriales los cuales pueden ser llenados con las instrucciones vectoriales, devolviendo resultados mucho más rápidos que los tradicionales procesadores escalares.


 * Unidades de función profundamente encauzadas para alto rendimiento total, ciclos de reloj muy cortos.


 * Abundancia de registros vectoriales largos para alimentar las unidades de función y recibir los resultados.


 * Rutas de transferencia de datos de gran ancho de banda entre memoria y registros vectoriales.


 * Procesamiento vectorial**

Los componentes clave de un procesador vectorial son tres: especificar el registro vectorial a usar por cada operando, las entradas iniciales de los registros y la longitud del vector. Un claro ejemplo es el uso de la estructura for en la mayoría de los lenguajes de alto nivel que normalmente también utiliza condiciones similares como la inicialización, la condición de parada y el largo del vector. También se puede mencionar por lo menos otros tres tipos de operaciones vectoriales:
 * Una operación de unidad de sobre operadores vectoriales, que regresan el resultado en forma de vector.
 * Carga registros vectoriales en preparación para futuras operaciones vectoriales.
 * Almacenamiento de resultados de una operación previa desde un registro vectorial hacia memoria.

Todas esta razones anteriores hacen que loa fabricantes utilicen este tipo de procesadores como parte de la base para las supercomputadores como una vez fue con la Cray.
 * Ventajas de las operaciones vectoriales sobre las escalares**
 * Cada resultado es independiente de los anteriores, esto evita la dependencia de datos.
 * Una simple instrucción vectorial sustituye muchas escalare.
 * Las instrucciones vectoriales que precisan acceder a memoria, lo hacen con un patrón de acceso fijo y esto facilita la lectura paralela mediante una memoria entrelazada.

*Como dato significativo los procesadores vectoriales también tiene que tener una unidad escalar de alto rendimiento para que puede porque si se presenta una pequeña parte de operaciones escalares mescladas con las vectoriales puede reducir en gran cantidad el rendimiento total.

Arquitectura vectorial básica
Existen dos tipos de arquitectura vectorial:


 * **La máquina vectorial con registros:** todas las operaciones que realiza este tipo de procesador son vectoriales a excepción del “Load” y el “Store”, además de esto operan con vectores almacenados en registros. Cabe decir que este tipo de arquitectura vectorial es la más utilizada. Algunos ejemplos de máquinas que utiliza esta arquitectura son:
 * Cray Research (CRAY-1, CRAY-2, X-MP, Y-MP y C-90)
 * Los supercomputadores japoneses (NEC SX/2 y SX/3, las Fujitsu VP200 y VP400 y la Hitachi S820)

Ejemplo maquina vectorial con registros:




 * **La máquina vectorial memoria-memoria:** es capaz de extraer dos vectores de memoria y realizar operaciones sobre ellos. Otra de sus características es que tiene un costo menor y que fue la primera arquitectura vectorial que se implementó. Pero uno de los inconvenientes que se presentan en esta arquitectura es un cuello de botella al momento de asesar a la memoria. Sin embargo a esta arquitectura se pueden hacer algunas mejoras:
 * Aumentar el ancho de banda de la memoria este consiste en que la memoria tenga varios módulos y que se puedan acceder simultáneamente a varias posiciones consecutivas.
 * Añadir una memoria interna de mayor velocidad entre la memoria y el procesador, por ejemplo añadir una memoria cache.

Ejemplo maquina vectorial con memoria-memoria:



Problemas en procesadores vectoriales

 * El primer problema que se presenta solo en los procesadores vectoriales con registro, y consiste en longitud de los vectores, ya que la capacidad de almacenamiento de los registros es limitada.
 * Otro de los problemas que se pueden mencionar sin el del proceso de vectores cuyos componentes no son adyacentes en la memoria.
 * Por último, puede plantearse el problema de las dependencias de datos entre los diferentes vectores que están involucrados en algún cálculo.

Anexos
Mas informacion sobre procesadores vectoriales: