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