GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf ›...

17
1 Prof. Dr. José Antonio de Frutos Redondo Curso 2011-2012 GRADO EN INGENIERÍA DE COMPUTADORES Arquitectura e Ingeniería de Computadores Computadores Vectoriales Organización de memoria © J. A. de Frutos Redondo 2011 Arquitectura e Ingeniería de Computadores Vectoriales 2 Computadores vectoriales Computadores vectoriales Procesamiento vectorial Arquitectura de computadores vectoriales Organización de los vectores Computadores vectoriales significativos Sistemas de memoria

Transcript of GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf ›...

Page 1: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

1

Prof. Dr. José Antonio de Frutos Redondo Curso 2011-2012

GRADO EN INGENIERÍA DE COMPUTADORES Arquitectura e Ingeniería de Computadores

Departamento de Automática Computadores Vectoriales Organización de memoria

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 2

Computadores vectoriales

n  Computadores vectoriales n  Procesamiento vectorial n  Arquitectura de computadores vectoriales n  Organización de los vectores n  Computadores vectoriales significativos

n  Sistemas de memoria

Page 2: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

2

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 3

Procesamiento vectorial

n  Nociones sobre procesamiento vectorial

n  Computadores vectoriales: n  máquinas segmentadas con unidades de ejecución vectoriales; n  especialmente diseñadas para optimizar las operaciones con

estructuras vectoriales. n  Vector

n  Conjunto de datos escalares del mismo tipo almacenados en memoria.

n  Procesamiento vectorial n  Aplicaciones de procesos sobre vectores.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 4

Procesamiento vectorial

n  Operaciones vectoriales: n  repetición de la misma operación sobre un conjunto de datos.

n  Estas operaciones se especifican por: n  Código de operación

n  selecciona la unidad funcional o reconfigura el cauce en cauces dinámicos para la operación solicitada.

n  Dirección base de los operadores fuente y destino o los registros vectoriales implicados en la operación.

n  Incrementos de dirección entre elementos; n  en la mayoría de los casos este incremento tendrá valor 1.

n  Longitud de los vectores con los que se va a operar.

Page 3: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

3

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 5

Ejemplo de programa vectorial

Bucle DO de FORTRAN en un procesador escalar convencional:

DO 100 I=1,N A(I) = B(I) + C(I)

100 B(I) = 2 * A(I+1)

TEMP(1:N)= A(2:N+1) A(1:N) = B(1:N)+C(1:N) B(1:N) = 2*TEMP(1:N)

Procesamiento vectorial

INITIALIZE I=1 10 READ B(I) READ C(I) ADD B(I) + C(I) STORE A(I) <= B(I)+C(I) READ A(I+1) MULTIPLY 2*A(I+1) STORE B(I) <= 2*A(I+1) INCREMENT I <= I+1 IF I .LE. N GO TO 10 STOP

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 6

Ejemplo de programación vectorial DLXV

Ej.: calcular Y = a*X + Y

ld f0,a addi r4,rx,#512

loop: ld f2,0(rx) multd f2,f0,f2 ld f4,0(ry) addd f4,f2,f4 sd f4,0(ry) addi rx,rx,#8 addi ry,ry,#8 sub r20,r4,rx bnz r20,loop

ld f0,a lv v1,rx multsv v2,f0,v1 lv v3,ry addv v4,v2,v3 sv ry,v4

escalar vectorial

Procesamiento vectorial

Page 4: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

4

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 7

Arquitectura de procesadores vectoriales

n  Dos tipos:

n  Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento depende de la longitud del vector con el que se opere.

n  Computadores de tipo memoria-memoria.- CYBER y los primeros computadores vectoriales TI-ASC y STAR-100.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 8

memoria

carga/almac.

suma/resta en CF

división en CF

multiplicación en CF

enteros

lógicas

registros vectoriales

registros escalares

unidades de ejecución

Arquitectura básica de un computador vectorial

Arquitectura de procesadores vectoriales

Page 5: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

5

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 9

Arquitectura de procesadores vectoriales

Elementos de la arquitectura

n  Registros vectoriales: n  Contienen los operandos vectoriales en máquinas de registros. n  No existen si la máquina es memoria-memoria. n  Valores típicos de componentes son 64 o 128. n  Deben tener al menos 2 puertos de lectura y uno de escritura.

n  Unidades funcionales vectoriales: n  Ejecutan las operaciones vectoriales. n  Están segmentadas y suelen tener latencia 1. n  Una unidad de control vigila las dependencias.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 10

Arquitectura de procesadores vectoriales

Elementos de la arquitectura (II) n  Unidad de carga y almacenamiento:

n  Gestiona transferencias de vectores desde/a memoria. n  Puede estar segmentada. n  También puede ocuparse de los datos escalares.

n  Registros escalares: n  Contienen los operandos escalares. n  Se usan en operaciones vectoriales y para calcular direcciones. n  Se necesitan varios puertos de lectura y escritura.

n  Unidades funcionales escalares: n  Pueden existir para operaciones específicamente escalares. n  Pueden no existir si para operaciones escalares se usan las

unidades vectoriales

Page 6: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

6

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 11

Organización de los vectores

La longitud del vector en la aplicación no tiene por qué coincidir con el tamaño de los registros (generalmente no lo hace)

Solución: se añade un registro escalar llamado VLR (vector

length register, registro de longitud).

n  Este registro contiene el número de elementos de los registros que se utilizan en cada operación

n  Si un cálculo necesita vectores mayores que los que caben en un registro, se divide en bloques y se hace un bucle (strip-mining)

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 12

Ejemplo de strip-mining:

inicio = 1 VL = (n mod MVL) do 1 j=0,(n/MVL)

do 10 i=inicio,inicio+VL-1 Y(i) = a*X(i)+Y(i) 10 continue inicio = inicio + VL VL = MVL

1 continue

do 10 i=1,n 10 Y(i) = a*X(i) + Y(i)

Organización de los vectores

Page 7: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

7

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 13

Ejecución del bucle con strip-mining:

rango de j (índice del bucle externo)

rango de i para cada valor de j (el nº de ejecuciones del bucle interno es m la

primera vez y MVL el resto de veces)

0 1 2 3 … n/MVL

1=>m m + 1=> m + MVL

... ... ... n − MVL + 1 => n

donde: m = n mod MVL

Organización de los vectores

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 14

⎥⎥⎥⎥

⎢⎢⎢⎢

nnnn

n

n

aaa

aaaaaa

...............

...

...

21

22221

11211

Organización de los vectores

El espaciado (‘stride’) de un vector en memoria no tiene por qué ser 1 (es decir, los elementos de un vector pueden no estar contiguos en memoria).

Ejemplo: almacenamiento de una matriz en memoria (por filas)

Page 8: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

8

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 15

a11 a12 a13 ... a1n a21 a22 a23 ... a2n ... an1 an2 an3 ... ann

Elementos de un vector fila. Tienen espaciado = 1 componente

a11 a12 a13 ... a1n a21 a22 a23 ... a2n ... an1 an2 an3 ... ann

Elementos de un vector columna. Tienen espaciado = n componentes (1 fila)

Organización de los vectores

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 16

Organización de los vectores

n  Solución: se indica el espaciado con un registro específico o con un registro de datos. Se pueden incluir instrucciones específicas para acceso a vectores espaciados, o hacer que las instrucciones de carga y almacenamiento de vectores siempre trabajen con espaciado.

n  Ejemplo: en DLX, versión vectorial, existen las instrucciones: n  LVWS V1,R1,R2: carga desde la dirección en R1 con el

espaciado que indica R2 en V1

n  SVWS R1,R2,V1: almacena V1 a partir de la dirección en R1 con el espaciado que indica R2

Page 9: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

9

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 17

Computadores vectoriales significativos

n  CRAY 1 (1975)

n  En 1979 aparece una versión mejorada CRAY 1S. n  Primer computador basado en lógica ECL. n  Periodo de reloj 12.5 ns (80 MHz). n  Posee 10 cauces funcionales. Dos para direcciones. n  Software COS (Cray Operating System) y Fortran 77 n  133 megaflops.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 18

Ejecución

01

23

00

17Memoria

de instrucciones

NIP CIP

LIP

Registros vectoriales

V0

V1V2

V3V4

V5V6

V7

Cal. inver.Mutiplic.

Suma

UnidadesFuncio-nales

de comaflotante

Desplaz.Lógica

Suma

UnidadesFuncio-nales

vectoriales

Controlvectorial

VM

RTC

00

77

((A0)+(Ak)

Vj

Vk

Vl

Sl

Vj

Vk

VlSj

Sk

Sl

Sj

Sj

S0S0

S2S3

S4S5

S6S7

Desplaz.LógicaSuma

UnidadesFuncio-nales

escalares

Pobl/17Registros escalares

Sj

Sl

Sk

Sj

Tjk

T00

T77

hasta

(AO)

((Ahj + jkm)

((Ahj + jkm)

A0A0A2A3A4A5A6A7

Registros

Aj

Al

Ak

Aj

Bjk

B00

B77

hasta(AO)

de direcciones

Multipli.

Suma

UnidadesFuncio-nales

direcciónde

Ak

AlXAXL

Control deintercambio

controlvectorial

PI

Controlde E/S

memoria

Arquitectura del CRAY 1

Page 10: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

10

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 19

Computadores vectoriales significativos

n  X-MP (1982)

n  4 CPUs equivalentes a un CRAY 1 con memoria compartida. n  Contiene un conjunto de registros compartidos para acelerar las comunicaciones entre CPUs. n  Período de reloj de 8.5 ns. (120 MHz.) n  840 Mflops. n  UNIX, UNICOS.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 20

n  CRAY Y-MP n  Se introduce en 1988 n  8 procesadores n  6 ns de ciclo de reloj.

(160 MHz.) n  128 Mwords de memoria

compartida hasta 1Gwords de SSD.

n  En 1990 aparece la versión C 90 con un ciclo de reloj de 4.2 ns

Computadores vectoriales significativos

Page 11: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

11

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 21

CRAY SX-6

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 22

n  CPU procesador vectorial de 9 Gflops n  Hasta 8 CPUs y 128 GB por nodo de memoria compartida

SMP n  Ancho de banda de memoria 36 GB/S n  Ampliable hasta 128 nodos (1024 CPUs, 9.2 Tflops, 16 TB) n  Red de alto rendimiento de barras cruzadas entre nodos (8

GB/s bidireccional) n  Arquitectura de I/O ampliable con procesadores I/O

independientes n  SUPER-UX sistema operativo basado en UNIX con

características especificas para supercomputación. n  Entorno de programación paralelo con compiladores capaces

de vectorizar y optimizar Fortran 95 y C/C++. n  Modelos de memoria distribuida y herramientas de

optimización y depuración.

CRAY SX-6

Page 12: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

12

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 23

NEC SX-8

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 24

NEC SX-8

Page 13: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

13

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 25

FUJITSU VPP5000

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 26

FUJITSU VPP5000

n  Tipo de máquina: Multiprocesador vectorial de memoria distribuida. n  Sistema operativo: UXP/V (una variante de Unix basada en la V5.4). n  Estructura conectiva: Barras cruzadas. n  Compiladores: Fortran 90/VP (compilador vectorial de Fortran 90),

Fortran 90/VPP (compilador vectorial paralelo de Fortran 90), C/VP (compilador vectorial de C), C, C++.

n  Ciclo de reloj: 3.3 ns n  Rendimiento pico teórico:

n  9.6 Gflop/s por procesador (64 bits). n  1.22 Tflop/s máximo (64 bits).

n  Memoria principal n  Memoria/nodo 16 GB n  Memoria máxima 2 TB n  Número de procesadores 4-128

n  Ancho de banda de memoria 38.4 GB/s n  Ancho de banda de comunicaciones 1.6 GB/s

Page 14: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

14

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 27

Sistemas de memoria

n  En una máquina vectorial, los accesos no son a datos individuales, sino a colecciones de ellos (vectores).

n  La distribución de estos datos en memoria sigue una ecuación generalmente sencilla. Por ejemplo, en una matriz almacenada n  por filas:

n  leer un vector-fila es leer posiciones de memoria consecutivas,

n  leer un vector-columna es leer posiciones distanciadas en n, donde n es el número de elementos de una fila.

n  El sistema de memoria se diseña de forma que: n  se puedan realizar accesos a varios elementos a la vez, n  el tiempo de inicio del acceso sea sólo para el primer

elemento.

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 28

Sistemas de memoria

n  Se utilizan principalmente dos opciones: n  Memoria entrelazada (generalmente de orden inferior, con factor

de entrelazado palabra). n  Bancos de memoria independientes.

n  La memoria entrelazada tiene un diseño más sencillo y menos costoso, pero menos flexible.

n  La memoria en bancos independientes es más costosa (cada banco necesita su bus), pero es más flexible.

n  Se puede pensar en soluciones intermedias: memoria en bancos independientes con un bus compartido por todos los bancos.

Page 15: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

15

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 29

1

2

3

4

contro- lador

de me-

moria

CPU

Memoria entrelazada

Memoria multi-banco

CPU controlador de memoria

1 2 3 4

Sistemas de memoria

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 30

Ejemplo de funcionamiento: acceso al vector de 8 dobles palabras (8*64b) con dirección 136 (88h)

Memoria entrelazada

000 001 010 palabra del banco nº banco

dir acceso dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato

Banco 0 Banco 1 Banco 2 Banco 3 Banco 4 Banco 5 Banco 6 Banco 7

136 144 152 160 168 176 184

(192)

Sistemas de memoria

Page 16: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

16

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 31

dir acceso dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato

Banco 0 Banco 1 Banco 2 Banco 3 Banco 4 Banco 5 Banco 6 Banco 7

136 144 152 160 168 176 184

192 dato

Memoria multibanco (bus dedicado)

Ej.: el mismo acceso

Sistemas de memoria

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 32

dir acceso dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato dir acceso dato

136 144 152 160 168 176 184

192 dato

Ej.: el mismo acceso

Memoria multibanco (bus de datos compartido)

Sistemas de memoria

Page 17: GRADO EN INGENIERÍA DE COMPUTADORESatc2.aut.uah.es › ~frutos › areinco › pdf › Vectoriales.pdfDos tipos: ! Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento

17

© J. A. de Frutos Redondo 2011

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

Vectoriales 33

Sistemas de memoria

n  Efecto sobre el sistema de memoria: n  Si el espaciado es 1, una memoria entrelazada, o un diseño por

bancos independientes, proporcionan el mejor rendimiento. n  Sin embargo, con espaciado no unidad, puede no alcanzarse el

rendimiento óptimo. Ejemplo: si el espaciado es 8, y hay 8 bancos, todos los accesos van al mismo banco (=>secuencialización).

n  Por esto, es interesante que el espaciado y el número de bancos sean primos entre sí.

n  Como el espaciado es una característica del problema, el compilador puede intervenir si ocurre una coincidencia como la del ejemplo (por ejemplo, añadiendo una columna “hueca” en la matriz).