0% encontró este documento útil (0 votos)
261 vistas9 páginas

Procesadores Vectoriales

El documento describe los procesadores vectoriales, incluyendo su arquitectura y ventajas. Un procesador vectorial puede realizar operaciones en múltiples datos simultáneamente mediante instrucciones vectoriales. Consiste en una unidad escalar y una unidad vectorial con registros vectoriales que permiten operaciones en vectores enteros. Las arquitecturas vectoriales comunes son de registro vectorial y de memoria a memoria.

Cargado por

Andrestuc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
261 vistas9 páginas

Procesadores Vectoriales

El documento describe los procesadores vectoriales, incluyendo su arquitectura y ventajas. Un procesador vectorial puede realizar operaciones en múltiples datos simultáneamente mediante instrucciones vectoriales. Consiste en una unidad escalar y una unidad vectorial con registros vectoriales que permiten operaciones en vectores enteros. Las arquitecturas vectoriales comunes son de registro vectorial y de memoria a memoria.

Cargado por

Andrestuc
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Procesadores vectoriales

Estructura de computadores
CONTENIDO
1. Objetivos

2. Introducción

3. ¿Qué son los procesadores vectoriales?

4. Arquitectura vectorial 

5. El sistema de memoria en procesadores


vectoriales

6. Medidas de rendimiento en procesadores


vectoriales

7. Eficiencia del procesamiento vectorial 

8. Resumen

9. Bibliografía
Procesadores vectoriales | 3

Objetivos Hay un conjunto de instrucciones vectoriales.


Por ejemplo, addv v1, v2, v3.
• Conocer e identificar los tipos de procesadores Una operación vectorial es equivalente a un bucle
vectoriales. completo que procesará N elementos del registro
• Conocer los elementos de la arquitectura vectorial. vectorial.
• Aprender y diferenciar la función de un procesador
superescalar y un procesador vectorial. Según Batista [3] indica lo siguiente:
• Aprender a evaluar la eficiencia de un procesador Un procesador vectorial es un conjunto de
vectorial. recursos para realizar operaciones sobre
vectores, teniendo en cuenta que estas
Introducción operaciones son funciones aritméticas y
lógicas aplicadas a los elementos de un vector.
En este tema se estudiarán los procesamientos vectoriales, Sin embargo, la diferencia entre los procesadores
teniendo en cuenta los ejemplos de procesadores vectoriales y escalares es que los procesadores
vectoriales reales. Sin embargo, antes de entrar en materia, vectoriales pueden decodificar instrucciones
se debe tener claro que un vector es una cadena de datos cuyos operandos son vectores completos.
escalares del mismo tipo almacenados en la memoria, La conversión de un programa correspondiente
generalmente, en una ubicación continua, pero no siempre. a un procesador escalar en un programa
vectorial se denomina vectorización (Figura 1).

¿Qué son los • Características

procesadores Por otro lado, Wikipedia [1] señala las características


de los procesadores vectoriales. Estas son las
vectoriales? siguientes:

Wikipedia [1] indica lo siguiente: - Arquitectura orientada al procesamiento de


vectores.
Un procesador vectorial es un diseño de CPU capaz
- Dispone de instrucciones máquina que realizan
de realizar operaciones en múltiples puntos de datos
operaciones sobre vectores.
simultáneamente, a diferencia de un procesador
escalar, que solo es capaz de procesar un punto de datos - Segmentan operaciones sobre los elementos de
a la vez. La gran mayoría de los microprocesadores vectores y acceden a la memoria (Figura 2).
actuales son escalares o superescalares.
Los procesadores vectoriales fueron muy populares
en el campo de la computación científica, siendo la
base de la mayoría de las supercomputadoras en las
décadas de 1980 y 1990. Sin embargo, es evidente
que las mejoras en la tecnología y el diseño de los
procesadores dejarán de utilizar los procesadores
vectoriales como procesadores de propósito general.
IBM, Toshiba y Sony han anunciado el procesador Cell,
que se compone de parte de un procesador vectorial.
Tomando en cuenta que casi todos los procesadores
actuales incluyen instrucciones de procesamiento
basadas en vectores, llamadas SIMD. En particular, las
consolas de videojuegos y las tarjetas gráficas hacen
un mayor uso de este tipo de procesamiento. Figura 1. Procesadores vectoriales [1].

De igual manera, Wikipedia [1] dice lo siguiente:

El procesador de vectores proporciona operaciones


de alto nivel que operan en vectores. Sin embargo,
una máquina vectorial consta de una unidad escalar
segmentada y una unidad vectorial. Es decir, la
unidad vectorial tiene M registros vectoriales de N
elementos, y la unidad de función vectorial (sumar/
restar, multiplicar, dividir, cargar/almacenar, etc.)
opera en un registro vectorial y un conjunto de
registros escalares.
Procesadores vectoriales | 4

De igual manera, la Guía Digital [4] indica las


ventajas de un procesador vectorial:

- Proporciona una usabilidad de alto paralelismo


(datos) con un control relativamente simple.
- Asignación de instrucción única, gran carga
de trabajo, demanda de ancho de banda de
instrucción reducida.
- Optimización del uso de la memoria con accesos
predecibles que pueden superponerse.
- Eliminar la dependencia de inspección de la
demostración y controles de auditoría y contabilidad.
• Tipos de arquitectura vectorial

De esta manera, explica Batista [3], los tipos de


Figura 2. Operadores vectoriales [3]. arquitectura vectoriales son los siguientes:

- Procesador Registro Vector (RV): son todas las


Arquitectura vectorial operaciones de ALU que se realizan entre registros
(registro vector), tomando en cuenta que las
Según la Guía Digital Vectoriales [2] dice que un operaciones de carga y almacenamiento mueven
procesador vectorial normalmente consta de lo siguiente: datos entre la memoria y los vectores de registro.
Desde los años 90, son las más importantes
• Una unidad escalar segmentada ordinaria.
• Una unidad vectorial. Ejemplos:
Todas las unidades funcionales de las unidades » Cray Research: CRAY1, CRAY2, XMP, YMP.
vectoriales tienen un retraso de un número de ciclos de » Japoneses: NEC SX/2 Fujistu VP200 (Figura 4).
reloj (Figura 3).
- Procesadores Vector Memoria-Memoria: son
• Elementos de la arquitectura todas las operaciones de vectores son entre
memoria y memoria. Tomando en cuenta que los
La Guía Digital [4] indica los siguientes elementos primeros computadores vectoriales fueron de
de la arquitectura vectorial: esta arquitectura (Figura 5).
- Registros vectoriales: contienen operandos Ejemplos:
vectoriales en máquinas de registro. Es necesario » Los CDC´s
tener en cuenta que los registros vectoriales no
existen si la máquina es memoria a memoria y
los valores típicos de los componentes son 64 o
128 deben tener al menos 2 puertos de lectura y
uno de escritura.
- Unidades funcionales vectoriales: realizan
operaciones vectoriales. Estas están
segmentadas y suelen tener un retardo o latencia
de 1, así como el controlador monitoriza las
subsecciones o dependencias.
- Unidad de carga y almacenamiento: gestionar la
transferencia de vectores desde la memoria. Es
necesario tener en cuenta que se pueden segmentar Figura 3. La arquitectura de un supercomputador vectorial [5].
y también pueden manejar datos escalares.
- Registros escalares: contienen operandos
escalares y se utilizan en operaciones vectoriales
para calcular direcciones porque se necesitan
algunos puertos de lectura y escritura.
- Unidades funcionales escalares: este puede
existir para operaciones escalares específicas y
puede no existir para operaciones escalares, la
unidad vectorial es utilizada.

Figura 4. Procesador Registro Vector [3].


Procesadores vectoriales | 5

Figura 5. Procesador Vector Memoria-Memoria [3].

Dicho esto, a continuación, se realizan algunas mejoras Figura 6. Estructura básica Vectorial con Registro [2].
facilitadas por Batista [3]:
En este programa, MLV es una constante que contiene
1. Aumenta el ancho de banda de la memoria: esto la longitud de los registros vectoriales y el bucle más
se consigue si y solo si se entrelaza la memoria, de interno será sustituido por una sola instrucción vectorial,
forma que esta tenga varios módulos y se pueda en que vl es una variable que contendrá su longitud.
acceder simultáneamente a varias posiciones
consecutivas que se hallen en módulos diferentes. Tomando en cuenta que el seccionamiento realiza
algunas operaciones adicionales, este costo adicional,
2. Añadir una memoria intermedia de mayor velocidad normalmente, compensara debido al mayor rendimiento
entre la memoria y el procesador: es una de las del procesamiento vectorial.
formas de hacer esto, además de incorporar una
memoria cache (Figura 6). Ejemplos reales de computadores Vectoriales

Bajo estas arquitecturas, se estudiarán algunos A continuación, se presentarán algunos ejemplos


ejemplos encontrados en procesadores vectoriales, clásicos facilitados por Batista [3] de computadores
facilitados por Batista [3]: vectoriales, teniendo en cuenta algunos que están
desactualizados, pero son ejemplos clásicos que valen
a. Sea el siguiente programa Fortran (lenguaje muy la pena mencionar por la importancia que tuvieron en su
utilizado en máquinas vectoriales, tomando en momento.
cuenta que fueron en diferentes versiones):
• El Cray-1 de Cray Reseach
do i = 1, n
Está en funcionamiento desde 1976 y puede
a(i) = b(i) + c(i) considerarse el primer computador vectorial.
Como muchas supercomputadoras (El Cray1) han
enddo existido por un tiempo, necesita un procesador
Donde n es una variable que podría contener un auxiliar o complementario (servidor front-end) con
valor superior a MLV. Si se aplica la técnica de administración, E/S, etc. Entonces Cray 1 es solo
seccionamiento para procesar el bucle anterior, el para computación pura. Cray1 tiene tres partes
compilador sustituirá ese bucle por (Russell, 1978): una parte de cómputo, una parte
de memoria y una parte de E/S.
linf =1
Teniendo en cuenta que la memoria está
vl=n mod MVL organizada de 8 a 16 bancos con 72 módulos por
banco (1 módulo por bit) de estos 8 módulos están
do j=0, n/MVL destinados a la detección y corrección de errores:
el sistema puede detectar hasta 2 errores y corregir
do i=linf, linf+vl−1 1 de ellos, lo cual es eficiente en memoria de
a(i)=b(i)+c(i) 64 bits. La memoria es de 16 canales intercalados
(Figura 7).
enddo
linf=linf+vl

vl=MVL

enddo
Procesadores vectoriales | 6

En la implementación de 3090, el número elegido


fue 128. Esta elección se debió a un equilibrio
entre el tiempo perdido entre los arranques, que
sería alto si los registros fueran pequeños, ya que
se tendrían que ejecutar muchas instrucciones
de inicio de vector. Si los vectores son largos, el
tiempo de carga y almacenamiento de los registros
vectoriales, que es más importante, serán mayores
y con más longitud.

Una de las características más importantes de


esta máquina es que su conjunto de instrucciones
vectoriales contiene instrucciones de estilo
CVF (funciones vectoriales combinadas) como
multiplicación, suma y resta, que brindan mucha
agilidad y velocidad sin necesidad de usar cadenas.

Figura 7. Arquitectura de un computador Vectorial Cray Research [3].

• El Cyber-205 de Control Data


Esta máquina es un ejemplo interesante de una
computadora vectorial de memoria a memoria.
Por esta razón, la memoria de esta máquina es muy
rápida y está intercalada en cuatro direcciones.
La ventaja de que esta computadora sea del tipo
memoriaamemoriaesquelaslongitudesdelosvectores
pueden ser muy grandes. Específicamente Cyber-205,
la longitud máxima del vector es de 65 635 palabras.
El control de la ejecución de instrucciones reside en una
unidad escalar, que recibe y decodifica instrucciones
de la memoria y las distribuye entre diferentes bloques
según su tipo: escalar, vector o cadena, refiriendo a
la cadena de bits. A partir de ahí, se pueden ejecutar
diferentes instrucciones simultáneamente en Figura 8. Diagrama general de bloques del Cyber-205 de Control de Data [3].
diferentes unidades funcionales, teniendo en cuenta la
unidad de subprocesamiento utilizada para controlar
el flujo de datos entre la memoria y las causas.
La unidad aritmética escalar tiene cinco procesadores
aritméticos canalizados, es decir, suma/resta,
multiplicación, logaritmo, desplazamiento y división/
raíz cuadrada, que operan con operandos escalares
de 32 bits o 64 bits (Figura 8).

• El IBM-3090
El procesamiento vectorial en esta máquina es una
opción llamada vector facility, tal como se muestra
en la (Figura 9).

En la (Figura 10) se mostrará la estructura de


los registros vectoriales, teniendo en cuenta
que existen 16 registros de 32 bits que pueden Figura 9. Diagrama de bloque IBM-3090 con la opción de proceso
unirse de dos para convertirse en 8 registros vectorial [3].
de 64 bits, cualquiera de los cuales puede
contener tanto números enteros, como registros
representados por punto flotante de 32 o 64 bits.
En el diseño de la arquitectura no se define
específicamente la longitud de los registros
vectoriales que pueden ir de 8 a 512.
Procesadores vectoriales | 7

Figura 10. Estructura de los registros vectoriales del IBM-3090 con la


opción de proceso vectorial [3].

• El Earth Simulator
Es una computadora que lleva más de un año
en lo más alto del TOP500. Es una computadora
múltiple que consta de 640 nodos llamados PN Figura 11. Estructura de uno de los procesadores aritméticos del Earch
(nodos de procesador), que están interconectados. Simulator [3].
Cada nodo, a su vez, es un multiprocesador
con 8 procesadores vectoriales denominados El sistema de memoria en
AP, (procesadores aritméticos) que comparten
16 GB de memoria, un procesador de E/S y un
procesadores vectoriales
controlador de acceso remoto denominado La Guía Digital [4] indica que en una maquina vectorial, los
Remote Controller (RCU). Cada procesador accesos no son datos individuales, sino a colecciones de
vectorial AP 5120 (640x8) de los 5.120 que hay ellos (vectores).
disponible, se compone de un superescalar de
procesamiento denominada Super Unit (SU) que Esta distribución de datos en la memoria sigue una ecuación
es capaz de emitir instrucciones por ciclo y una simple, a saber: en una matriz almacenada por filas:
unidad de procesamiento vectorial denominada
Vectorial Unit (VU). Estos dos bloques junto con • Leer un vector - fila es leer ubicaciones de memoria
la caché correspondiente y el controlador de consecutivas.
acceso a la memoria principal se integran en un • Leer un vector- columna es leer ubicaciones
solo circuito integrado. alejadas en n.

Cada unidad superescalar tiene 128 registros de El sistema de memoria está diseñado de tal manera:
propósito general, código privado y caché de datos,
de 64 KB cada uno. Cada unidad vectorial consta • Se pueden puede acceder a varios elementos al
de 72 registros vectoriales y 256 elementos. mismo tiempo.
En cada unidad vectorial hay 8 conjuntos, • La hora de inicio de acceso solo está relacionada
cada uno con 6 causas vectoriales, es decir, con el primer elemento.
operaciones de suma/desplazamiento,
multiplicación, división, operaciones lógicas, Teniendo en cuenta que la memoria del sistema es
enmascaramiento y operaciones de memoria utilizada, principalmente, por dos opciones:
(Figura 11).
a. Memoria entrelazada: es más simple en diseño y
más económica, pero menos flexible, generalmente
de menor orden; además, tiene un factor de
intercalación de palabras (Figura 12).
b. Banco de memoria independiente: este es un diseño
más costoso, considerando que cada banco necesita
su propio bus, pero sin olvidar que es más sensible.
Se puede pensar en la solución intermedia, es decir,
bancos de memoria independientes con un bus común
o compartido para todos los bancos (Figura 13).

A continuación, se presentarán ejemplos de


funcionamientos, facilitados por la Guía Digital [4]:

• Acceso al vector de 8 dables palabras, es decir,


8*64b con dirección de 136 (88h) (Figura 14,15 y16).
Procesadores vectoriales | 8

Figura 16. Memoria multibanco (bus de datos compartidos) [4].


Figura 12. Memoria entrelazada [4].

Medidas de rendimiento en
procesadores vectoriales
Con base a lo anteriormente abordado, a continuación,
Batista [3] presentará un modelo para evaluar el
rendimiento de los procesadores vectoriales. Para esto,
se realizará un cálculo vectorial en n elementos en un
bucle seleccionado. Las siguientes variables están
involucradas en este cálculo de rendimiento:

a. El tiempo que se tarda en procesar cada componente


en un paso del ciclo se llamará tiempo tp.
Figura 13. Memoria multi-banco [4]. b. El tiempo de inicialización de cada ciclo es
causado por la parte del seccionamiento. Teniendo
en cuenta que este tiempo se puede dividir en dos
partes, a saber:
• El tiempo del código escalar necesario para el
seccionamiento (ts).
• El tiempo de arranque de las instrucciones
vectoriales (ta).
c. Tiempo que ocupa al iniciar el programa, carga
inicial del vector en el registro (tb).
Figura 14. Memoria Entrelazada [4]. Con lo comentado anteriormente, el tiempo necesario
para el cálculo total será:

Ttotal = tb + n (ts+ta) + ntp


MVL

El ahorro de tiempo frente a los procesadores escalares


fraccionarios radica, también, en la mejora del tiempo de
cálculo, en el tiempo que se tarda en leer y decodificar
instrucciones. De igual manera, se puede ahorrar
tiempo si se dispone de alguna causa aritmética para
que se puedan ejecutar varias instrucciones vectoriales
Figura 15. Memoria multibanco (bus dedicado) [4]. al mismo tiempo.

Hay varios parámetros que pueden ayudar a evaluar la


calidad de un procesador vectorial con respecto a la
longitud del vector que se procesa:

Rn: es la velocidad de MFLOPS sobre un vector de


longitud n, por extensión y de forma ideal.

R∞: es la velocidad del procesador para un vector de


longitud infinita. La diferencia entre estas medidas
dará penalizaciones de rendimiento, debido a la
duración finita del error.
Procesadores vectoriales | 9

N1/2: es la longitud necesaria para alcanzar una La diferencia entre los procesadores vectoriales
velocidad de R∞/2. y escalares es que los procesadores vectoriales
pueden decodificar instrucciones cuyos operandos
Nv: es la longitud requerida para hacer que el modo son vectores completos. La conversión de un
vectorial sea más rápido que el modo escalar. programa correspondiente a un procesador escalar
Esta métrica evalúa la pérdida de rendimiento debido a en un programa vectorial y esta es denominada
las operaciones adicionales requeridas en un proceso vectorización.
vectorial en comparación con un proceso escalar.
Las principales características de los procesadores
vectoriales es que la arquitectura está orientada al
Eficiencia del procesamiento de vectores, dispone de instrucciones
procesamiento vectorial máquina que realizan operaciones sobre vectores
y, por último, segmentan operaciones sobre los
Los procesadores vectoriales son eficientes cuando se elementos de vectores y acceden a la memoria. Sin
trata de hacer las cosas, pero esta eficiencia puede hacer olvidar que este tipo de procesador se puede conseguir
que otras partes del sistema informático funcionen con de dos diferentes maneras tanto registro vector, como
lentitud. Por este motivo, Batista [3] indica lo siguiente: memoria a memoria.

La eficiencia de los procesadores vectoriales se


evalúa de la siguiente manera: sea r la relación entre la Bibliografía
velocidad de procesamiento vectorial y escalar, y sea fv
la parte del código que se puede vectorizar. Tratándolo [1] Wikipedia, enciclopedia libre, “Procesador vectorial”,
como una unidad de tiempo que tarda en ejecutarse 2021. [En línea]. Disponible en: https://es.wikipedia.
el proceso si la máquina es completamente escalar, org/wiki/Procesador_vectorial
se obtiene el aumento de velocidad del procesador
[2] Guía Digital Vectoriales, “Procesadores Vectoriales”,
vectorial que será:
2020. [En línea]. Disponible en: https://www.
1 r cartagena99.com/recursos/alumnos/apuntes/
S= = Vectoriales_v2.pdf
1− fv + fv r (1−fv)+ fv
r [3]
V. Batista, “Procesadores vectoriales”, 2008.
[En línea]. Disponible en: https://www.infor.
Sin embargo, la eficiencia del sistema vendrá dada uva.es/~bastida/Arquitecturas%20Avanzadas/
por lo siguiente: Vectoriales.pdf
1 [4] Guía Digital, “Procesadores Vectoriales”. [En línea].
r (1−fv)+fv 1 Disponible en: http://atc2.aut.uah.es/~nacho/AII/
E= =
r r (1−fv)+ fv tema6.2.pdf
Estas expresiones se refieren al caso ideal donde el [5] Guía Digital acc_vector, “Procesadores Vectoriales”,
procesador vectorial no tiene pérdidas por causas distintas 2001. [En línea]. Disponible en: http://informatica.
al código vectorial. Las expresiones anteriores, por otro uv.es/iiguia/AAC/AA/apuntes/aac_vector.pdf
lado, son solo una expresión más de la ley de Amdahl.

Resumen
Un procesador vectorial es un diseño de CPU capaz
de realizar operaciones en múltiples puntos de datos
simultáneamente, a diferencia de un procesador escalar,
que solo es capaz de procesar un punto de datos a la vez.
Sin embargo, las mejoras en la tecnología y el diseño de
los procesadores dejarán de utilizar los procesadores
vectoriales como procesadores de propósito general.
IBM, Toshiba y Sony han anunciado el procesador Cell
que se compone de parte de un procesador vectorial.

Sin embargo, los procesadores vectoriales son eficientes


cuando se trata de hacer las cosas, pero esta eficiencia
puede hacer que otras partes del sistema informático
funcionen con lentitud.

También podría gustarte