Sunteți pe pagina 1din 56

Departamento de Automtica

Arquitectura e Ingeniera de Computadores

Tema 3 Paralelismo a nivel de instruccin (II)

Prof.

Dr. Jos Antonio de Frutos Redondo Dr. Ral Durn Daz Curso 2010-2011

Tema 3. Paralelismo a nivel de instruccin II


Arquitectura e Ingeniera de Computadores

Aplicacin del paralelismo a nivel de instruccin.


VLIW Computadores superescalares Arquitectura de procesadores vectoriales Rendimiento de procesadores vectoriales Algunos procesadores vectoriales significativos Memoria entrelazada Memoria multi-banco

Procesamiento vectorial.

Organizacin de la memoria.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

Paralelismo a nivel de instruccin


Arquitectura e Ingeniera de Computadores

Clases de maquinas ILP:

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

Paralelismo a nivel de instruccin


Arquitectura e Ingeniera de Computadores

VLIW y Superescalares
Cache/ memory Fetch unit Single multi-operation instruction Cache/ memory Fetch unit Decode/ issue unit

Multipleinstructions

EU

EU

EU Sequential stream of instructions

EU

EU

EU

Register file Multi-op. instruction

Register file

VLIW approach

Superscalar approach

instruction/control data EU : execution unit

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

VLIW
Arquitectura e Ingeniera de Computadores

Caractersticas

La longitud de instruccin depende del nmero de unidades de ejecucin disponibles y la longitud de cdigo necesario para cada unidad (entre 100 bits y 1 Kbit). El paralelismo en las instrucciones es fijado en la compilacin. Se incluye en las instrucciones-mquina. El procesador ejecuta en paralelo lo que se le indica en la instruccin. Requiere circuitos menos complejos (mayores velocidades de reloj). El compilador tiene mucho ms tiempo para determinar las posibles operaciones paralelas. El compilador ve el programa completo.
3. Paralelismo a nivel de instruccin (II) 5

J. A. de Frutos Redondo, R. Durn 2005


V1.5

VLIW
Arquitectura e Ingeniera de Computadores

Dificultades

Compiladores complejos y muy dependientes de la arquitectura de la mquina. Modificaciones en la tecnologa o en la arquitectura de la mquina exigen

un nuevo compilador; en muchos casos, recompilacin de las aplicaciones.

Cuando no se pueden llenar todos los espacios en las instrucciones se desaprovecha la memoria y el ancho de banda de sta. En el proceso de paralelizacin el compilador debe siempre considerar el caso peor, lo que puede reducir el rendimiento. Por ejemplo, en los accesos a cache siempre debera considerar la posibilidad de fallo.
3. Paralelismo a nivel de instruccin (II) 6

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Itanium
Arquitectura e Ingeniera de Computadores

VLIW microprocesador Intel & HP hablan de EPIC ( Explicit Parallel Instruction Computing)

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

Itanium

Mazo de 128 bits Contiene tres instrucciones ms la plantilla. Se pueden buscar uno o ms mazos al mismo tiempo. La plantilla contiene informacin acerca de qu instrucciones se pueden ejecutar en paralelo. No est limitado a un solo mazo; por ejemplo, se pueden ejecutar hasta 8 instrucciones en paralelo. El compilador reordenar instrucciones para formar mazos contiguos. Se pueden mezclar instrucciones dependientes e independientes en el mismo mazo. La longitud de cada instruccin es de 41 bits.
3. Paralelismo a nivel de instruccin (II) 8

Arquitectura e Ingeniera de Computadores

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Itanium
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

Computadores Superescalares
Arquitectura e Ingeniera de Computadores

Computadores superescalares y supersegmentados


f f d f e d m e d f f m e d m e d f f f d d f f e e d d f f f f f f f f d d d d d d e e e e e e m m e e d d m m m m m m m m e e m m m e d m e m

SEGMENTADO

SUPERESCALAR

SUPERSEGMENTADO

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

10

Computadores Superescalares
Arquitectura e Ingeniera de Computadores
de la cache de datos Etapa de busqueda Etapa de decodificacin Etapa de ejecucin Etapa de almacenamiento

m1 m2 m3 F1 de la cache de instrucciones F2 d2 d1 multiplicacin a1 a2 S1

suma e1 S2

F3

d3

op. lgicas e2 op. de carga

ventana de anticipacin

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

11

Computadores Superescalares
Arquitectura e Ingeniera de Computadores

Tareas especficas del procesamiento superescalar.


Decodificacin paralela. Emisin superescalar de instrucciones. Ejecucin paralela de instrucciones.


Mantener la consistencia de la ejecucin secuencial Permitir la finalizacin de instrucciones fuera de orden. Obligar a las instrucciones a finalizar en orden (buffer de reordenacin ROB). Mantener la consistencia del procesamiento secuencial de excepciones

Interrupciones precisas. Interrupciones imprecisas.


3. Paralelismo a nivel de instruccin (II) 12

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Decodificacin paralela
Arquitectura e Ingeniera de Computadores

Mayor complejidad que en segmentados.


Capturar y decodificar ms instrucciones en un ciclo. Bsqueda de dependencias entre las capturadas. Bsqueda de dependencias entre las capturadas y las que estn en ejecucin (mayor nmero en ambas que en el segmentado). Esta complejidad hace que los computadores superescalares tiendan a usar dos e incluso tres ciclos para la decodificacin (PowerPC 601, PowerPC604 y UltraSparc usan 2 ciclos; Alfa 21064 usa 3 ciclos; PentiumPro puede necesitar hasta 4.5 ciclos). Una camino para tratar este problema consiste en la predecodificacin.
3. Paralelismo a nivel de instruccin (II) 13

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Decodificacin paralela
Arquitectura e Ingeniera de Computadores

Icache

Icache

Instruction buffer

Instruction buffer

Decode / Issue

Decode / Issue

Scalar issue Typical FXpipeline layout F D/I ... F

Superscalar issue D I ...

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

14

Decodificacin paralela
Arquitectura e Ingeniera de Computadores

Predecodificacin

Second-level cache (or memory) Typically 128 bits/cycle Predecode unit E.g. 148 bits/cycle When instructions are written into the Icache, the predecode unit appends 4-7 bits to each RISC instruction 1

Icache

In the AMD K5, which is an x86-compatible CISC-processor, the predecode unit appends 5 bits to each byte

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

15

Decodificacin paralela
Arquitectura e Ingeniera de Computadores

Los bits aadidos en la fase de predecodificacin indican:


La clase de instruccin. El tipo de recursos que necesita para su ejecucin. En algunos procesadores indican tambin que la direccin de destino de un salto ha sido ya calculada en la fase de predecodificacin.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

16

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Poltica de emisin: cmo se tratan las dependencias durante el proceso de emisin.


Tratamiento de las falsas dependencias.


No se acta en este sentido. Renombramiento de registros. Esperar a que se resuelvan. Ejecucin especulativa.

Tratamiento de las dependencias de control.


Uso de shelving. Manejo de los bloqueos en la emisin.


Orden de emisin. Alineacin en la emisin.

Velocidad de emisin: mximo numero de instrucciones que se pueden emitir en un ciclo.


3. Paralelismo a nivel de instruccin (II) 17

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Emisin de instrucciones con bloqueo (sin usar shelving)


Icache

I-buffer Issue window (n)

Decode/ check/ issue Issue n

Dependent instructions block instruction issue.

EU

EU

EU

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

18

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Uso de shelving
I-buffer In the absence of hardware constraints, instructions will be issued despite dependencies to shelving buffers

Decode/issue (Without dep. check) Issue

Shelving buffer

Shelving buffer

Instructions wait here until dependencies are resolved.

Dispatch (+Dependency check) Dispatch

Dispatch (+Dependency check)

Instructions are checked for dependencies.A not-dependent instruction is forwarded to the associated EUs.

EU

EU

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

19

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Emisin de instrucciones en orden y en desorden.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

20

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Alineacin en la emisin de instrucciones

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

21

Emisin superescalar de instrucciones


Arquitectura e Ingeniera de Computadores

Emisin alineada

Emisin no alineada

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

22

Procesamiento vectorial
Arquitectura e Ingeniera de Computadores

Nociones sobre procesamiento vectorial Computadores vectoriales:


mquinas segmentadas con unidades de ejecucin vectoriales; especialmente diseadas para optimizar las operaciones con estructuras vectoriales. Conjunto de datos escalares del mismo tipo almacenados en memoria. Aplicaciones de procesos sobre vectores.

Vector

Procesamiento vectorial

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

23

Procesamiento vectorial
Arquitectura e Ingeniera de Computadores

Operaciones vectoriales:

repeticin de la misma operacin sobre un conjunto de datos. Cdigo de operacin


Estas operaciones se especifican por:


selecciona la unidad funcional o reconfigura el cauce en cauces dinmicos para la operacin solicitada.

Direccin base de los operadores fuente y destino o los registros vectoriales implicados en la operacin. Incrementos de direccin entre elementos;

en la mayora de los casos este incremento tendr valor 1.

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

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

24

Procesamiento vectorial
Arquitectura e Ingeniera de Computadores

Ejemplo de programa vectorial


Bucle DO de FORTRAN en un procesador escalar convencional:
DO 100 I=1,N A(I) = B(I) + C(I) B(I) = 2 * A(I+1)

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

100

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

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

25

Procesamiento vectorial
Arquitectura e Ingeniera de Computadores

Ejemplo de programacin vectorial DLXV Ej.: calcular escalar


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

Y = a*X + Y vectorial
ld lv multsv lv addv sv f0,a v1,rx v2,f0,v1 v3,ry v4,v2,v3 ry,v4

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

26

Arquitectura de procesadores vectoriales


Arquitectura e Ingeniera de Computadores

Dos tipos:

Computadores de tipo registro-registro.- CRAY y FUJITSU. El rendimiento depende de la longitud del vector con el que se opere. Computadores de tipo memoria-memoria.- CYBER y los primeros computadores vectoriales TI-ASC y STAR-100.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

27

Arquitectura de procesadores vectoriales


Arquitectura e Ingeniera de Computadores

Arquitectura bsica de un computador vectorial memoria suma/resta en CF carga/almac. multiplicacin en CF divisin en CF enteros lgicas
unidades de ejecucin
registros vectoriales
J. A. de Frutos Redondo, R. Durn 2005
V1.5

registros escalares
3. Paralelismo a nivel de instruccin (II) 28

Arquitectura de procesadores vectoriales


Arquitectura e Ingeniera de Computadores

Elementos de la arquitectura

Registros vectoriales:

Contienen los operandos vectoriales en mquinas de registros. No existen si la mquina es memoria-memoria. Valores tpicos de componentes son 64 o 128. Deben tener al menos 2 puertos de lectura y uno de escritura. Ejecutan las operaciones vectoriales. Estn segmentadas y suelen tener latencia 1. Una unidad de control vigila las dependencias.

Unidades funcionales vectoriales:


J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

29

Arquitectura de procesadores vectoriales


Arquitectura e Ingeniera de Computadores

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


Gestiona transferencias de vectores desde/a memoria. Puede estar segmentada. Tambin puede ocuparse de los datos escalares. Contienen los operandos escalares. Se usan en operaciones vectoriales y para calcular direcciones. Se necesitan varios puertos de lectura y escritura. Pueden existir para operaciones especficamente escalares. Pueden no existir si para operaciones escalares se usan las unidades vectoriales.
3. Paralelismo a nivel de instruccin (II) 30

Registros escalares:

Unidades funcionales escalares:


J. A. de Frutos Redondo, R. Durn 2005


V1.5

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

La longitud del vector en la aplicacin no tiene por qu coincidir con el tamao de los registros (generalmente no lo hace). Solucin: se aade un registro escalar llamado VLR (vector length register, registro de longitud).

Este registro contiene el nmero de elementos de los registros que se utilizan en cada operacin. Si un clculo necesita vectores mayores que los que caben en un registro, se divide en bloques y se hace un bucle (stripmining).

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

31

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

Ejemplo de strip-mining: do 10 i=1,n Y(i) = a*X(i) + Y(i)

10

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
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

32

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

Ejecucin del bucle con strip-mining:


rango de j (ndice del bucle externo)

n/MVL

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

...

...

...

n MVL + 1 => n

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)

donde: m = n mod MVL

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

33

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

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)

a11 a 21 ... an1


J. A. de Frutos Redondo, R. Durn 2005
V1.5

a12 a22 ... an 2

... a1n ... a 2 n ... ... ... ann


3. Paralelismo a nivel de instruccin (II) 34

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

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)


J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

35

Organizacin de los vectores


Arquitectura e Ingeniera de Computadores

Solucin: se indica el espaciado con un registro especfico o con un registro de datos. Se pueden incluir instrucciones especficas para acceso a vectores espaciados, o hacer que las instrucciones de carga y almacenamiento de vectores siempre trabajen con espaciado. Ejemplo: en DLX, versin vectorial, existen las instrucciones:

LVWS V1,R1,R2: carga desde la direccin en R1 con el espaciado que indica R2 en V1. SVWS R1,R2,V1: almacena V1 a partir de la direccin en R1 con el espaciado que indica R2.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

36

Procesamiento vectorial
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

37

Rendimiento de computadores vectoriales


Arquitectura e Ingeniera de Computadores
Cray 1S Potencia vectorial (MFLOPS) Potencia escalar (MFLOPS) r 85.0 9.8 8.67 Cray 2S 151.5 11.2 13.53 Cray X-MP 143.3 13.1 10.94 Cray Y-MP 201.6 17.0 11.86 Hitachi S820 737.3 17.8 41.42 NEC SX2 424.2 9.5 44.65 Fujitsu VP400 207.1 6.6 31.38

Sea r la relacin entre la potencia vectorial y la potencia escalar. Sea f el grado de vectorizacin de un programa. De la ley de Amdahl deducimos la siguiente relacin:

P=

1 (1 f ) + f r

r = (1 f ) r + f

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

38

Rendimiento de computadores vectoriales


Arquitectura e Ingeniera de Computadores
(P) Grado de vectorizacin 90% 6 5 4 3 2 1 1
V1.5

80%

70% 50% 30% 2 3 4 5 6 7 8 9 10


39

(r)

J. A. de Frutos Redondo, R. Durn 2005

3. Paralelismo a nivel de instruccin (II)

Computadores vectoriales significativos


Arquitectura e Ingeniera de Computadores

CRAY 1 (1975)

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

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

40

Arquitectura del CRAY 1


Registros vectoriales

Arquitectura e Ingeniera de Computadores

((A0)+(Ak)

00

V7 V6 V5 V4 V3 V2 V1 V0

Desplaz. Lgica Suma Unidades Funcionales vectoriales

Sl

Vk Vl
77

Vj Vk Sj
VM

Control vectorial

Cal. inver. Mutiplic. Suma Unidades Funcionales de coma flotante Pobl/17 Desplaz. Lgica Suma Unidades Funcionales escalares

Sj
RTC

Vl Sj Sl Sk

Registros escalares (AO) T00 hasta Sj T77


S7 S6 S5 S4 S3 S2 S0 S0

memoria

Tjk

Sj Sk Sl control vectorial Al XL Ak

((Ahj + jkm)

Control de intercambio Registros de direcciones (AO) B00 hasta B77 Aj B


A7 A6 A5 A4 A3 A2 A0 A0

XA

Aj Ak A
l

Multipli. Suma Unidades Funcionales de direccin

jk

P ((Ahj + jkm)
3 2 00 1 0

I Control de E/S

NIP

CIP Ejecucin

17

J. A. de Frutos Redondo, R. Durn 2005


V1.5

deParalelismo instrucciones 3. a nivel de instruccin (II)

Memoria

LIP

41

Computadores vectoriales significativos


Arquitectura e Ingeniera de Computadores

X-MP (1982)

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

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

42

Computadores vectoriales significativos


Arquitectura e Ingeniera de Computadores

CRAY Y-MP

Se introduce en 1988. 8 procesadores. 6 ns de ciclo de reloj. (160 MHz.) 128 Mwords de memoria compartida hasta 1Gwords de SSD. En 1990 aparece la versin C 90 con un ciclo de reloj de 4.2 ns.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

43

CRAY SX-6
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

44

CRAY SX-6
Arquitectura e Ingeniera de Computadores

CPU procesador vectorial de 9 Gflops. Hasta 8 CPUs y 128 GB por nodo de memoria compartida SMP. Ancho de banda de memoria 36 GB/S. Ampliable hasta 128 nodos (1024 CPUs, 9.2 Tflops, 16 TB). Red de alto rendimiento de barras cruzadas entre nodos (8 GB/s bidireccional). Arquitectura de I/O ampliable con procesadores I/O independientes. SUPER-UX sistema operativo basado en UNIX con caractersticas especificas para supercomputacin. Entorno de programacin paralelo con compiladores capaces de vectorizar y optimizar Fortran 95 y C/C++. Modelos de memoria distribuida y herramientas de optimizacin y depuracin.
3. Paralelismo a nivel de instruccin (II) 45

J. A. de Frutos Redondo, R. Durn 2005


V1.5

NEC SX-8
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

46

NEC SX-8
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

47

FUJITSU VPP5000
Arquitectura e Ingeniera de Computadores
J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

48

FUJITSU VPP5000
Arquitectura e Ingeniera de Computadores

Tipo de mquina: Multiprocesador vectorial de memoria distribuida. Sistema operativo: UXP/V (una variante de Unix basada en la V5.4). Estructura conectiva: Barras cruzadas. 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++. Ciclo de reloj: 3.3 ns. Rendimiento pico terico:

9.6 Gflop/s por procesador (64 bits). 1.22 Tflop/s mximo (64 bits). Memoria/nodo 16 GB. Memoria mxima 2 TB. Nmero de procesadores 4-128.

Memoria principal:

Ancho de banda de memoria 38.4 GB/s. Ancho de banda de comunicaciones 1.6 GB/s.
3. Paralelismo a nivel de instruccin (II) 49

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

En una mquina vectorial, los accesos no son a datos individuales, sino a colecciones de ellos (vectores). La distribucin de estos datos en memoria sigue una ecuacin generalmente sencilla. Por ejemplo, en una matriz almacenada

por filas: leer un vector-fila es leer posiciones de memoria consecutivas, leer un vector-columna es leer posiciones distanciadas en n, donde n es el nmero de elementos de una fila. El sistema de memoria se disea de forma que: se puedan realizar accesos a varios elementos a la vez, el tiempo de inicio del acceso sea slo para el primer elemento.
3. Paralelismo a nivel de instruccin (II) 50

J. A. de Frutos Redondo, R. Durn 2005


V1.5

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

Se utilizan principalmente dos opciones:


Memoria entrelazada (generalmente de orden inferior, con factor de entrelazado palabra). Bancos de memoria independientes.

La memoria entrelazada tiene un diseo ms sencillo y menos costoso, pero menos flexible. La memoria en bancos independientes es ms costosa (cada banco necesita su bus), pero es ms flexible. Se puede pensar en soluciones intermedias: memoria en bancos independientes con un bus compartido por todos los bancos.

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

51

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

Memoria entrelazada

controlador de memoria

CPU

1 2 3 4
J. A. de Frutos Redondo, R. Durn 2005
V1.5

controlador de memoria

CPU Memoria multi-banco


3. Paralelismo a nivel de instruccin (II) 52

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

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

010
palabra del banco Banco 0 Banco 1 Banco 2 Banco 3 Banco 4 Banco 5 Banco 6 Banco 7 dir dir dir dir dir dir dir dir acceso acceso acceso acceso acceso acceso acceso acceso Memoria entrelazada dato dato dato dato

001

000
n banco (192) 136 144 152 160

dato dato

168 176 dato 184

J. A. de Frutos Redondo, R. Durn 2005


V1.5

3. Paralelismo a nivel de instruccin (II)

53

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

Ej.: el mismo acceso

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

dir dir dir dir dir dir dir dir

acceso acceso acceso acceso acceso acceso acceso acceso

dato dato dato dato dato dato dato dato

192 136 144 152 160 168 176 184

Memoria multibanco (bus dedicado)


J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

54

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

Ej.: el mismo acceso


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

192 136 144 152 160 168 176 dato 184

Memoria multibanco (bus de datos compartido)


J. A. de Frutos Redondo, R. Durn 2005
V1.5

3. Paralelismo a nivel de instruccin (II)

55

Sistemas de memoria
Arquitectura e Ingeniera de Computadores

Efecto sobre el sistema de memoria:


Si el espaciado es 1, una memoria entrelazada, o un diseo por bancos independientes, proporcionan el mejor rendimiento. 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 (=>secuencializacin). Por esto, es interesante que el espaciado y el nmero de bancos sean primos entre s. Como el espaciado es una caracterstica del problema, el compilador puede intervenir si ocurre una coincidencia como la del ejemplo (por ejemplo, aadiendo una columna hueca en la matriz).
3. Paralelismo a nivel de instruccin (II) 56

J. A. de Frutos Redondo, R. Durn 2005


V1.5

S-ar putea să vă placă și