1. ARQUITECTURA DE COMPUTADORES I
Curso 2011/2012
Tema 5: Procesadores Vectoriales
Lección 18: Características Generales de los
Procesadores Vectoriales
2. Bibliografía
Arquitectura de Computadores I. Tema 5. Lección 18 2
1. J. L. HENNESSY and D. A. PATTERSON.
Computer Architecture. A Quantitative Approach,
Morgan Kaufmann, 3rd edition, 2003.
2. D. SIMA and T. FOUNTAIN, and P. KACSUK.
Advanced Computer Architectures: A Design Space Approach,
Addison Wesley, 1997.
3. K. HWANG.
Advanced Computer Architecture: Parallelism, Scalability, Programmability,
McGraw Hill, 1992.
4. J. ORTEGA, M. ANGUITA y A. PRIETO.
Arquitectura de Computadores,
Thomson, 2004.
3. Tema 5. Procesadores Vectoriales
1. Introducción: Motivación y Nota Histórica
[Ortega 6.1; Hennessy G.1]
2. Principio, Espacio de Diseño y Prestaciones Generales
3. El Sistema de Memoria
4. Medida de Prestaciones de los Procesadores Vectoriales
5. Problemas en el Procesamiento Vectorial y Soluciones
Arquitectura de Computadores I. Tema 5. Lección 18 3
4. Motivación
Arquitectura de Computadores I. Tema 5. Lección 18 4
• Presentan una microarquitectura orientada a obtener altas prestaciones en el
procesamiento vectorial (sumas de vectores, productos escalares,...)
• Su repertorio de instrucciones máquina incluye instrucciones donde los operandos
y los resultados son vectores
• Propiedades de las operaciones con Vectores
– El cálculo de uno de los componentes del vector es independiente del de otros
componentes: Se obtienen buenos rendimientos en las unidades funcionales
segmentadas
A = (a1, a2, …, an) B = (b1, b2, …, bn) A+B = (a1+b1, a2+b2, …, am+bm)
– Una sola operación vectorial especifica una gran cantidad de cálculos: Se reduce el
número de instrucciones a ejecutar y se evitan riesgos de control al sustituir
bucles enteros por una instrucción.
ADDV V1,V2,V3 = for i:=1 to n do V1(i):=V2(i)+V3(i)
– Los vectores pueden almacenarse ocupando posiciones adyacentes y las operaciones
vectoriales acceden a varios de ellos: Se aprovecha de forma eficiente el
entrelazado de memoria y las organizaciones S y C para mejorar el ancho de
banda de la memoria
5. Ejemplo de Repertorio de Instrucciones Vectoriales: DLXV
Código Escalar
Cálculo de Y = a*X + Y
VLR: Registro de longitud vectorial VM: Registro de Máscara
Código Vectorial
Arquitectura de Computadores I. Tema 5. Lección 18 5
6. Evolución de las Arquitecturas Vectoriales
Arquitectura de Computadores I. Tema 5. Lección 18 6
Alliant Multiprocesador (8 proc.) (1987)
CDC STAR100 (m-m) (1972) CYBER205 (1981)
ETA-10 (1987) (10 proc, 10 GF m-m)
Convex C-1 y C-2 (1985) Minisupercomp.
(Compil., 0.5-1 M$-diez veces menos)
C-4 (1994)
Cray Cray 1 (1976)
(reg. Vectoriales)
(Proc. Escalar más rápido del
momento)
(12.5 ns == 80 MHz)
Cray X-MP (1983)
(varios cauces de memoria)
(9.5 ns == 105 MHz)
Cray.2 (1985) (256 Mpal 60 b/pal)
Cray Y-MP (1988)
(Cray: CComp.Corp y CRes. (1989)
Cray-3 Cray-4 (95-96)
C-90 (1991)
(16 Proc. 250 MHz)
T3D (1993)
J90 (1995) (250 K$)
T90 (1996) (10 M$)
TI ASC (m-m) (1972)
NEC SX/2 (1984) SX/4 (1995)
Hitachi S810-820 (1984)
IBM 171 inst. vectoriales en la arq. S/370
Unid. 3090/VF en la CPU 3090 (86)
Fujitsu VP-100 VP-200 (1982)
Compañía
Años
70’s 80’s 90’s
7. VPP5000 Fujitsu 1999-2001
SR8000 Hitachi 2000
SX-5 NEC 2000
VPP800 Fujitsu 1998
VPP700 Fujitsu 1998
SX-4 NEC 1997
Arquitectura de Computadores I. Tema 5. Lección 18 7
Computadores Recientes con Procesadores Vectoriales
8. Computador Vectorial #1 en el TOP500 (Nov ’02)
NEC Earth Simulator:
5120 Procesadores Vectoriales (640 nodos x 8 Proc.)
Arquitectura de Computadores I. Tema 5. Lección 18 8
Rmax=35.86 TFLOPS Rpico=40.96 TFLOPS
9. Evolución Reciente de los Procesadores Vectoriales
1 0 0 %
9 0 %
8 0 %
7 0 %
6 0 %
5 0 %
4 0 %
3 0 %
2 0 %
1 0 %
0 %
S I M D Es c alar Vectorial
Distribución de arquitecturas en el TOP500:
2 4
2 2
2 0
1 8
1 6
1 4
1 2
1 0
8
6
4
2
0
N a t i o n a l A e r o s p a c e L a b o r a t o r y o f J a p a n
L e i b n i z R e c h e n z e n t r u m
A t m o s p h e r i c E n v i r o n m e n t S e r v i c e ( A E S )
U n i v e r s i t y o f T o k y o
N E C
U n i v e r s i t y o f T o k y o
T h e E a r t h S i m u l a t o r C e n t e r
Arquitectura de Computadores I. Tema 5. Lección 18 9
Situación del mejor computador vectorial en el TOP500:
10. Situación de los Procesadores Vectoriales en el TOP500
TOP500 (Noviembre de 2006)
TOP500 (Noviembre de 2007)
Arquitectura de Computadores I. Tema 5. Lección 18 10
11. Situación en el TOP500 (cont.)
TOP500 (Noviembre de 2008)
TOP500 (Noviembre de 2009):
NEC SX-9/E (Posición 31)
Arquitectura de Computadores I. Tema 5. Lección 18 11
TOP500 (Noviembre de 2010):
NEC SX-9/E (Posición 54)
(Velocidad pico: 131.07 TFLOPS)
12. Situación en el TOP500 (nuevo Earth Simulator)
Cada CPU:
• Procesador Superescalar de 4 vías (SU)
• Procesador Vectorial (VU) con 8 grupos de 72 registros
de 256 componentes y 6 tipos de cauces (8 cauces).
• Frecuencia: 3.2 GHz
Arquitectura de Computadores I. Tema 5. Lección 18 12
Extensiones Vectoriales para el
Repertorio de Instrucciones:
Tarantula (Alpha)
AltiVec (PowerPC)
13. Tema 5. Procesadores Vectoriales
1. Introducción: Motivación y Nota Histórica
2. Principio, Espacio de Diseño y Prestaciones Generales
[Ortega 6.2; Hennessy G.2]
1. Características del Procesamiento Vectorial
2. Aplicación de la Segmentación
3. Tipos de Arquitecturas Vectoriales
3. El Sistema de Memoria
4. Medida de Prestaciones de los Procesadores Vectoriales
5. Problemas en el Procesamiento Vectorial y Soluciones
Arquitectura de Computadores I. Tema 5. Lección 18 13
14. Características del Procesamiento Vectorial
Arquitectura de Computadores I. Tema 5. Lección 18 14
• Longitud de palabra:
– Suele ser mayor que el empleado en el resto de procesadores en todos los niveles
(memoria, unidades de ejecución, registros, etc.)
• Longitud de los vectores:
– Los vectores se pueden operar con una sola instrucción, así que cuanto mayores sean,
mejor
• Uso de la segmentación:
– En el procesamiento de instrucciones se usa para ganar ILP
– En el procesamiento de datos se usa a varios niveles:
• Microsegmentación: Segmentación de las unidades vectoriales
• Macrosegmentación: Encadenamiento de las operaciones vectoriales
• Uso de flujos de datos múltiples (replicación):
– Si se dispone de varios cauces vectoriales segmentados que implementan la misma
operación vectorial (ej. suma), se podrán realizar varias sumas segmentadas a la vez
– Se puede usar para lograr:
• Paralelismo funcional: Si las operaciones son de instrucciones diferentes
• Paralelismo de datos: Si se reparten los elementos de un vector entre los cauces
15. Tipos de Arquitecturas Vectoriales
Arquitectura de Computadores I. Tema 5. Lección 18 15
• Memoria – Memoria:
– Todas las instrucciones vectoriales operan con datos y resultados en
memoria
– Ejemplos:
• CDC 6600, CDC 7600
• CDC STAR100, TI ASC, CDC CYBER-205
• Registro – Registro:
– Operan con datos y resultados en registros y tienen instrucciones de
tipo LOAD/STORE para cargar/almacenar los vectores
– Ejemplos:
• Cray, NEC SX, Fujitsu VPP, Convex, Hitachi
16. IF ID OF
Reg. Escalares
Cauces Esc.
Cauces Vector.
Reg. Vectoriales
Unidad
LOAD/STORE
E/S IF ID OF
Datos Escalares
Flujo
Instr.
Control
Reg. Escalares
Cauces Esc.
Reg. Vectoriales
Cauces Vector.
Unidad Escalar
Unidad Vectorial
Datos Vectoriales
Procesador
Vectorial
Unidad
LOAD/STORE
Memoria
Principal
Registro Vectorial
a2
a1
a3
a4
b2
b1
b3
b4
a1+b1
a2+b2
a8 a7 a6 a5 a4 a3
b8 b7 b6 b5 b4 b3
a2
a1
a3
a4
b2
b1
b3
b4
a8
b8
a7
b7
a6
b6
a5
b5
a4
b4
a3
b3 a2+b2
a1+b1
Registros
Vectoriales
Cauce Vectorial
Aplicación de la Segmentación
ILP: El procesamiento
de instrucciones está
segmentado y se
utilizan múltiples
unidades funcionales
Paralelismo de datos:
cada instrucción vectorial
codifica una operación
sobre todos los
componentes del vector
Unidades funcionales
segmentadas
Arquitectura de Computadores I. Tema 5. Lección 18 16
18. – Palabras de 64 bits
– Frecuencia 80 MHz
– Memoria 1 Mpalabra (bipolar, 64
bits + 8 de corrección de
errores)
– B,T,V (1 palabra/ciclo)
– A,S (2 palabras/ciclo)
– Inst. (4 pal//ciclo)
– 8 Reg Vectoriales (64 registros
de 64 bits)
– 12 canales de Entrada y 12 de
Salida
Arquitectura de Computadores I. Tema 5. Lección 18 18
Esquema del Cray 1
19. Tema 5. Procesadores Vectoriales
1. Introducción: Motivación y Nota Histórica
2. Principio, Espacio de Diseño y Prestaciones Generales
3. El Sistema de Memoria
[Ortega 6.3, Hwang 8.1, Hwang-Briggs 3.1.4]
1. Unidades de Carga y Almacenamiento y Entrelazado de Memoria
2. Acceso a Memoria Simultáneo y Concurrente
4. Medida de Prestaciones de los Procesadores Vectoriales
5. Problemas en el Procesamiento Vectorial y Soluciones
Arquitectura de Computadores I. Tema 5. Lección 18 19
20. Requisitos del Sistema de Memoria
Arquitectura de Computadores I. Tema 5. Lección 18 20
Al igual que el resto de las unidades de ejecución, las unidades de memoria
deberían poder cargar/almacenar un dato cada ciclo de reloj para no
introducir cuellos de botella
Para mantener este ancho de banda se debe diseñar un sistema de
memoria con múltiples bancos, ya que:
– Muchos computadores vectoriales soportan varios accesos a memoria por ciclo,
(múltiples unidades de memoria) y el tiempo de acceso a memoria es mayor
que el tiempo de ciclo de CPU
– Los procesadores vectoriales soportan la característica de poder acceder
simultáneamente a datos no adyacentes en memoria (vector stride, gather-
scatter)
– La mayoría de los computadores vectoriales tienen varios (o bastantes)
procesadores compartiendo la memoria, y cada procesador generará su propio
flujo de direcciones
21. Entrelazado de Memoria (I)
El entrelazado consiste en distribuir el espacio de memoria del procesador entre
distintos módulos de memoria.
En una dirección de memoria, un conjunto de bits indican el módulo y el resto
indican la posición dentro de ese módulo.
Si los bits que indican el módulo son los menos significativos se habla de
entrelazado de orden inferior y si son los más significativos se trata de
entrelazado de orden superior.
01101010101010100100
Posición dentro
del Módulo Módulo
Entrelazado de
orden inferior
01101010101010100100
Posición dentro
del Módulo
Arquitectura de Computadores I. Tema 5. Lección 18 21
Módulo
Entrelazado de
orden superior
Entrelazado de
una memoria de
220 palabras en
26=64 módulos
23. Acceso a Memoria Simultáneo o Tipo S
Módulo 0
Módulo 1
Módulo 2
Módulo
M-1
Multiplexor
n-m bits más significativos
m bits menos
significativos
n
m
n-m
Con Entrelazado Inferior
N=2n direcciones
M=2m módulos
2(n-m) direcciones/módulo
Acceso 1
Ta
T = Ta + M*t
t
Acceso 2
Arquitectura de Computadores I. Tema 5. Lección 18 23
0 1 …… M-1 0 1 …… M-1
0
M-1
Ta = M*t
24. Acceso a Memoria Concurrente o Tipo C
m
n-m
n
Con Entrelazado Inferior
N=2n direcciones
M=2m módulos
2(n-m) direcciones/módulo
Ta
M-1
t
t
0 1 …… M-1
T = Ta + M*t
0
1
Ta
Ta
Ta = M*t
Permite acceder concurrentemente a M direcciones, con lo
que soporta el uso de strides en los accesos a memoria
m
n-m
0 1 M-1
decod
R/W M6
M7 M0
Señales
Ocupado/
Completo
Arquitectura de Computadores I. Tema 5. Lección 18 24
Controlador
de Memoria
Registros de
Direcciones y
control
26. La organización tipo S degrada las
prestaciones rápidamente si la
distancia entre componentes del
vector (stride) es mayor que 1.
Este caso es bastante frecuente en
procesamiento vectorial
do 10 i=1,100
do 10 j=1,100
A(i,j)=0.0
do 10 k=1,100
10 A(i,j)=A(i,j)+B(i,k)*C(k,j)
Para B interesa que las columnas estén en el mismo módulo (se accede por filas)
Para C interesa que las filas estén en el mismo módulo (se accede por columnas)
Los procesadores vectoriales proporcionan
instrucciones de acceso a memoria con stride
para facilitar la vectorización de estas
operaciones, así que el sistema de memoria
debería ejecutarlas eficientemente
B(1,1)
B(2,1)
C(1,1)
C(1,2)
C(2,1)
C(2,2)
B(1,2)
B(2,2)
Vector Stride (II)
Arquitectura de Computadores I. Tema 5. Lección 18 26
27. Para ampliar …
Arquitectura de Computadores I. Tema 5. Lección 18 27
• Páginas Web:
– http://www.top500.org/
– http://www.es.jamstec.go.jp/esc/eng/outline.html
• Artículos de Revistas y Libros:
– HWANG, K.: “Advanced Computer Architecture. Parallelism, Scalability,
Programmability”. McGraw Hill, 1993 [Capítulo 8, 8.1-8.4]
– HWANG, K.; BRIGGS, F.A.: “Arquitectura de Computadoras y Procesamiento
Paralelo”. McGraw Hill, 1988. [Capítulos 3 y 4]
– LUBECK, O.; MOORE, J.; MENDEZ, R.: “A benchmark comparison of three
supercomputers: Fujitsu VP-200, Hitachi S810/20, and Cray X-MP/2”. IEEE
Computer, 18:1, pp.10-29. Enero, 1985.
– PADUA, D.; WOLFE, M.: “Advanced Compiler Optimizations for
Supercomputers”. Comm. Of the ACM, 29:12, pp.1184-1201. Diciembre,
1986.