lunes, 22 de abril de 2013

PROCESADORES VECTORIALES


LOS PROCESADORES VECTORIALES
Para poder entender mucho mejor sobre lo que es y cómo funciona un procesador vectorial, es necesario tomar en cuenta las siguientes definiciones.
Se llama vector a una secuencia de datos escalares del mismo tipo almacenados en memoria, normalmente en posiciones contiguas, aunque no siempre.

Un procesador vectorial es un conjunto de recursos para efectuar operaciones sobre vectores. Estas operaciones consistirán en funciones aritméticas y lógicas aplicadas sobre los componentes de los vectores. La diferencia entre un procesador vectorial y uno escalar estriba en que el procesador vectorial puede decodificar instrucciones cuyos operandos son vectores completos. La conversión de un programa correspondiente a un procesador escalar a otro vectorial se llama vectorización.

PROCESAMIENTO VECTORIAL
Un operando vectorial contiene una secuencia de n elementos, llamados componentes, donde n es la longitud del vector. Cada componente del vector es un escalar de cualquier tipo (entero, punto flotante, etc.). Los operadores vectoriales pueden tener cinco formas, ver Fig.1.

Fig.1. Ejemplos de operadores vectoriales.


Fuente:(Bastida, 2006)

Las máquinas vectoriales proporcionan operaciones que trabajan sobre vectores. Una instrucción vectorial es equivalente a  un bucle completo de instrucciones ordinarias, donde cada iteración trabaja sobre cada una de las componentes del vector. Las operaciones vectoriales tiene algunas ventajas sobre las escalares:

- En las operaciones vectoriales, cada resultado es independiente de los  anteriores.
- Una simple instrucción vectorial sustituye a muchas escalares, teniendo un cuello de botella pequeño.
- Las instrucciones vectoriales que precisan acceder a memoria, lo hacen con un patrón de acceso fijo (normalmente serán adyacentes). Esto facilitará su lectura paralela mediante una memoria entrelazada.
- Si se utiliza una instrucción vectorial, evitaremos el riesgo de control de salto de bucle.
Por todas estas razones, las operaciones vectoriales pueden ejecutarse de forma rápida que la secuencia de instrucciones equivalentes sobre el mismo conjunto de datos.


ARQUITECTURA DE LOS PROCESADORES VECTORIALES.

PROCESADOR VECTORIAL MEMORIA-MEMORIA.
Es capaz de extraer dos vectores de memoria y operar sobre ellos. El inconveniente de este tipo de máquinas sería el cuello de botella que supondrían los accesos de memoria
Para mejorar se debe aumentar el ancho debanda de la memoria, esto se consigue entrelazando memorias, de modo que se tenga varios módulos y se pueda acceder de manera simultánea a varias posiciones consecutivas que se hallen en módulos diferentes. Además de añadir una memoria intermedia de mayor velocidad entre la memoria y el procesador.


Fig.2. Procesador vectorial memoria-memoria.
Fuente:(Bastida, 2006)


Fig.3. Procesador vectorial registro-registro

Fuente:(Bastida, 2006)


PROCESADOR VECTORIAL REGISTRO-REGISTRO.
Son procesadores vectoriales que dispongan de un banco o registros vectoriales que hagan de memoria intermedia, generalmente los procesadores vectoriales actúan como coprocesadores de procesadores escalares que trata las instrucciones no vectoriales. Los computadores vectoriales se pueden considerar cómo computadoras del tipo SIMD de Flynn, sin embargo hay que tener en cuenta, que si bien los procesadores vectoriales ejecutan la misma instrucción sobre datos diferentes, estos datos forman parte del mismo flujo, por eso se los llama máquinas SIMD vectoriales.

PROBLEMAS DE LOS PROCESADORES VECTORIALES.
1. El problema de la longitud de los vectores, mesto en los procesadores vectoriales del tipo registro – registro, ya que la capacidad de almacenamiento de los registros vectoriales es limitada.
2. Otro problema es el proceso de vectores cuyas componentes no son adyacentes a memoria. Este es el caso de la multiplicación de matrices, que se puede convertir en multiplicación de vectores.
3. Finalmente se puede plantear el problema de dependencia de datos entre los diferentes vectores que intervienen en el cálculo, pero esto resuelve con el encadenamiento, que consiste en imponer solo dos condiciones para comenzar la operación vectorial.

RENDIMIENTO DE LOS PROCESADORES VECTORIALES.
Para el cálculo del rendimiento de los procesadores vectoriales debemos tomar en cuenta:
1. El tiempo necesario para procesar cada componente en una pasada del bucle.
2. El tiempo de inicialización de cada bucle provocado por el seccionamiento.
3. El tiempo ocupado por el arranque del programa, carga inicial de los vectores en los registros, etc (BASTIDA, 2006).


BIBLIOGRAFÍA Y PÁGINAS WEB
  • BASTIDA, Javier Ibañez (2006). Arquitectura de Computadores. Universidad de Valladolid. España.











No hay comentarios:

Publicar un comentario