Está en la página 1de 5

Asi para un procesador vectorial con una tamao de palabra de w bits, adems del

numero de registros que constituyen el banco de registros escalares (NRescalar), tambin son
caractersticas especificas del procesador el numero de registros del banco de registros
vectorilaes (NR vector) y el numero de componentes (palabra de w bits )que constituyen cada
registro vectorial (mvl, sigla en ingles de longitud de vector maxima). Por lo tanto, el espacio
de almacenamiento que existe en el banco de registros escalares es de NR escalar x w bits,
mientras que en el banco de registros vectoriales existe un espacio de NRvector x MVL x
wbits. En un procesador vectorial, cuando se hace referencia a un operando almacenado en
un registro vectorial se esta haciendo referencia aMVL palabra de w bits.
Adems de las etapas y las unidades funcionales que se han descrito, en la figura
tambin aparace unja unidad de carga y almacenamiento de operandos vectoriales (unidad
LOAD/STORE). A traves de esta unidad se cargan los compentes de los registros vectoriales
desde la memoria principal, y se almacenan los componentes de los registros vectoriales en
memoria(6.3)
Una caracterstica interesante del procesador vectorial de Fujitsu VP100/200 es que se puede
configurar el numero de registros vectoriales y el tamao del os mismos. Asi, se dispone de
8.192 registros que permiten configurar desde 8 registros vectoriales de 1.024 componentes
hasta 256 registros vectoriales de 32 componetes . en general , se puede concluir que los
procesadores vectoriales fabricados por compaas japonesas suelen tener un mayor numero
de registros vectoriales. Los computadores NEC presentan tambin un numero elevado de
unidades funcionales y de accesos a memoria.
La arquitectura de un procesador vectorial, adems de contener las instrucciones de tipo
escalar , similares a las que hemos considerado en los captulos 2 y 3 para los procesadores
segmentados y superescalares , incluye una serie de instrucciones que implementan
operaciones con operandos y resultados vectoriales. En el caso de que la arquitectura vectorial
sea de tipo LOAD/STORE, las instrucciones de acceso a memoria sern instrucciones que
cargan los componentes de un registro vectorial en memoria y las operaciones vectoriales se
implementan a travs de instrucciones cuyos operandos fuente (al menos uno de los dos ) y
resultados sern registros vectoriales.



Existen operaciones aritmticas de suma, resta , multiplicacin y divisin, en las que tanto sus
operandos como resultados se almacenan en registros. Los resultados de estas instrucciones
de estas instrucciones siempre se almacenan en registros vectoriales. En cuanto a los
operandos, existen instrucciones en las que sus dos operandos son registros vectoriales
(ADDV, SUBV, MULTV, DIVV), mientras que en otros casos uno de los operandos se alamacen
en un registro escalar (ADDSV, SUBVS,SUBSV, MULTSV, DIVSV,DIVVS). Si la operacin no es
conmutativa, existen las dos posibilidades para el caso de que uno de los operandos sea un
registro escalar: En SUBSV y DIVSV el primer operando es escalar , y en subvs y divvs, el
segundo operando es escalar.
Los accesos a memoria se realizan a travs de instrucciones de carga de registros vectoriales
con datos de memoria (lv, lvws,lvi) o almacenamiento de registros vectoriales en memoria (sv,
svws, svi). La instruccin lv vk,ri carga los componentes del registro vk con datos de memoria
situados en direcciones consecutivas a partir de la direccin contenida en el registro ri. La
instruccin sv ri.vk hace lo contrario, almacena el registro vk en posiciones consecutivas de
memoria a partir de la direccin contenida ri. En las instrucciones de carga y almacenamiento
descritas los datos que se cargan y se almacenan deben estar situados en posiciones
consecutivas de memoria. para proporcionar algo mas flexibilidad en cuanto a la ubicacin de
los datos en memoria , el repertorio de instrucciones vectoriales de acceso a memoria
incluyen dos instrucciones de carga adicionales (lvws y lvi), junto con las correspondientes
instrucciones de almacenamiento (svws y svi).
En el caso de las instrucciones lvws svws, la ubicacin de los adtos en memoria se indica
mediante dos regsitros escalares , ri y rj. El registro ri contiene la direccin de memoria a partir
de la que se encuentran los datos a cargar o a partir de donde se van almacenar , y el registro
rj contiene el valor de un desplazamiento o distancia que separa las direcciones de memoria a
las que accede. Por lo tanto, la primera componente del registro vectorial se carga con (o se
almacena en ) la posicin ri, la segunda con ri + rj, la tercera con ri+3+rj, y asi sucesivamente.
Las instrucciones lvi y svi tambin utilizan dos registros para indicar la ubicacin en memoria
de los datos que se van a cargar en los componentes de los registros vectoriales (lvi) o donde
se van a almacenar estos componentes (svi), pero ahora un registro es escalar, ri, y otro es
vectorial , vj. En el registro escalar se almacena una direccin de memoria de basel, y en cada
uno de loos componentes del registro vectorial se almacena un desplazamiento con respecto a
esa base. De esta forma , la componente i-esima del registro vectorial donde se carga el dato
(o del registro vectorial que se almacena ) esatraia en la posicin de memoria ri+vj(i), existe
una instrucion, denomindad CVI, que permite cargar los componentes de un registro vectorial
vk con los multiplos sucesivos del contenido de un registro escalar rj (es decir 0, rj, 2*rj,
3*rj,etc) . gracias a estas instrucciones se puede utilizar la forma de direccionamiento de la
instrucciones lvi y svi para acceder a las posiciones de memoria que permite el
direccionamiento utilizado en las instrucciones lvws y svws. Para eso basta utilizar el registro
vk como registro de ndices en lvi o svi
Hasta ahora se ha supuesto que una instruccin vectorial intervienen todas las componentes
de los registros vectoriales . es decir , intervienen MVL componentes. Para dar una mayor
flexibilidad al repertorio de instrucciones vectoriales , y por tanto hacer posible una utilizacin
mas eficiente de los recursos disponibles, seria interesante disponer de la posibilidad de
seleccionar las componentes de los registros vectoriales que intervienen en cad instruccin
vectorial. Para ello se utilizan dos registros que se muestran en la figura : el registro VLR
(registro de longitud de vector ) y VM (registro de mascar) el registro VLR contiene el numero
de componentes del registro vectorial que intervienen en las operaciones vectoriales que se
ejeten mientras no se cambie el contenido de VLR. El mximo valor que puede contener VLR
es MVL: en las operaciones vectoriales que se ejecuten mientras VLR sea igual MVL
intervendrn todos los componentes de los registros vectoriales . el registro VM tiene MVL
bits, es decir un bit por cada una de las componentes de los registros vectoriales . a travs de
este registro se enmascara (es decir , no intervienen en las operaciones vectoriales que se
realicen) todos los componentes cuyo bit asociado en VM sea (por ejemplo) igual a cero. Asi,
solo cuando todos los bits del registro VM sean igual a 1 intervendrn todos los componentes
de los registros vectoriales.
Por supuesto, en el repertorio de instrucciones vectoriales deben incluirse instrucciones que
permitan gestionar los registros VM y VLR. Asi las instruccin SxxV compara los componentes
de dos registros vectoriales con respecto a la condicon xx (xx puede ser menor o igual, LE,
menor que, LT,mayor o igual que , GE mayor que , GT, igual que , EQ, distinto de, NE ). Si la
condicin se verifica para la componente i-esima del registro vectorial, el bit i-esimo del
registro de mascara, VM, se pondr a uno, y si no se verifica se pondr a 0 . tambin existe un
a instruccin que permite comparar todos los componentes de un registro vectorial con un
valor contenido en un registro. Se trata de la instruccin SxxSV. De esta forma, es posible, por
ejemplo, hacer que solo los componentes que cumplan una condicion (ser positivos, ser cero,
etc.) intervengan en las operaciones vectoriales subsiguientes. Relacionadas con la gestin del
registro de mascara existen otras instrucciones . por ejemplo las instrucciones MOVF2S y
MOVS2f permiten transferir el contenido de un registro de mascara y viceversa. Asi se pueden
realizar operaciones diversas con el contenido de V,M, inicializarlo con el valor adecuado,
evaluar su contenido, etc. Otra instruccin que acta sobre VM es la instruccin POP , que
permite conocer el numero de bits a uno que hay en el registro mascara,VM, almacenando el
valor correspondiente en un registro escalar. Finalmente, la instruccin CVM pone a uno todos
los bits del registro VM. Es una forma rpida de volver a la situacin en la que todos los
componentes de los registros vectoriales intervienen en las operaciones vectoriales (las
instrucciones vectoriales que se ejecuten tras CVM)
Existen dos instrucciones, MOVI2S y MOVS2I, que permiten cargar el contenido de un registro
escalar en el registro VLR y leer el contenido de VLR en un registro, respectivamente. As, con
MOVI2S se puede fijar el nmero de componentes del registro vectorial que utilizan en el caso
de que las operaciones que se implementan vectorialmente no necesiten todos los MVL
componentes de los registros vectoriales. Mediante MOVS2I se puede determinar y utilizar en
el programa el valor que se ha prefijado para VLR.
En la figura se compara el cdigo escalar que permite implementar el bucle:
For i=1 to 64 Y(i)=a*X(i)+Y(i)
Y el cdigo vectorial correspondiente que se ejecutaria en un procesador con registros
vectoriales de 64 componentes. Es decir MVL=64 y el registro de mascara VM tiene todos sus
bits a uno. Como se puede ver, en el cdigo vectorial tambin existen instrucciones escalares
(su cdigo de operacin se indica en minuscula) junto con las instrucciones vectoriales (con
cdigo en mayscula) . en el cdigo vectorial hay seis instrucciones, mientras que la ejecucin
del cdigo escalar consta de 11 instrucciones,
De las cuales nueve constituyen un bucle. En total, hay que ejecutar 578 instrucciones que hay
que captar de memoria . en el cdigo vectorial no existe ninguna instruccin de salto
condicional: no hay ningn riesgo de control. Por tanto, a partir del ejemplo de cdigo escalar
y vectorial de la figura , resultan evidentes las mejoras que puede introducir una arquitectura
vectorial , tal como indicamos al comienzo del capitulo.

También podría gustarte