Sie sind auf Seite 1von 6

1/6

CAPTULO 6

Problema 1:
Suponiendo que el tiempo de latencia de inicio (start-up), TLI, para una multiplicacin vectorial es de 10
ciclos de reloj y que despus, el tiempo por resultado, TPC, es de 1 ciclo de reloj, Cul es el nmero de ciclos
de reloj por resultado, CPR, para usar un vector de 64 componentes?

Solucin:

CPR : Ciclos de Reloj por Resultado.
TLI : Tiempo de Latencia de Inicio.
k : Longitud del vector.
TPC : Tiempo por Resultado.
TCV : Tiempo de Operacin Vectorial

ICI = III +k IPC

CPR =
ICI
k


CPR =
III +k IPC
k


CPR =
1u +64 1
64
=
74
64
= 1.1S62S ciclos

Problema 2:
En un procesador vectorial a 500MHz, con registros vectoriales de 16 componentes, una nica unidad de
carga/almacenamiento de memoria (LV/SV) y un nico multiplicador, se ejecuta el bucle:

for i=1 to 342 do if (i mod 2 ==0)
Z(i):=aZ(i)

Determinar le valor de R

teniendo en cuenta que el procesador puede encadenar los cauces y que la


memoria es entrelazada de orden inferior con 16 mdulos y la primera componente del vector Z est en la
direccin de memoria ACB0h. TLI(Mult) = 16 ciclos, TBASE = 8 ciclos, TBUCLE = 10 ciclos, y la memoria es de
tipo S y esta ajustada de forma que el tiempo de acceso Ta=M*t, donde M es el nmero de mdulos y t el
tiempo de ciclo del procesador.

Solucin:

LD f0,a ; Se carga el escalar en f0
LV V1,Rz ; Carga el vector Z a partir de la direccin de Rz
MULTSV V2,V1,f0 ; Producto de a y Z el resultado se guarda en V2
SV Rz,V2 ; Almacenar el resultado.

Las tres instrucciones vectoriales del bucle dependen unas de otras y deben ir en tres grupos separados,
por lo tanto TCP = 3.
El tiempo del bucle ronda los 16 ciclos.


2/6

El valor del tiempo de arranque ser la suma de tres valores:
- El tiempo de arranque (TLI) de la instruccin de carga, que supondremos 12 ciclos.
- El tiempo de arranque (TLI) de la multiplicacin, 16 ciclos.
- El tiempo de arranque (TLI) del almacenamiento, otros 12 ciclos.

TLI = 12 +16 +12 =40

I
n
= I
BASL
+ j
n
HII
[ (I
B0CLL
+ III) + n IPC

I
n
= 8 + j
n
16
[ (1u +4u) +n S


lim
n
I
n
n
=
j
n
16
[ (1u +4u) + n S
n


R

= lim
n
S n
I
n
=
(S n Suu 1u
3
)
8 + j
n
16
[ (1u + 4u) +Sn
= 244.898 HFI0PS

Problema 3:
Un procesador vectorial con registros vectoriales de 8 elementos tiene una memoria de 1 Mpalabra
distribuida entre 8 mdulos con entrelazado de orden superior y acceso de tipo C. Suponiendo que la
primera componente se encuentra en la posicin AA012h, En que posiciones situaramos los restantes 7
componentes para que el acceso a dicho vector sea lo ms rpido posible?

Solucin:

N = 8 elementos
M = 8 mdulos

2
20
= 1 Hpolobro

2
3
= 8 HoJulos

00000100101010101000

Como se puede apreciar los 3 bits mas significativos indican el modulo y el resto la posicin, en este caso se
aprecia que la posicin del primer elemento del vector tiene una direccin AA012h y una posicin A012h en el
6 modulo.

NOTA: los cdigos vectoriales generan accesos sucesivos a los datos correspondientes



3/6

Tomamos una porcin del espacio de memoria alrededor de la direccin AA012h.

AA012h AA012h C885Ah E70A2h 1058EAh 124132h 14297Ah 1611C2h 17FA0Ah
AA013h
AA014h
AA015h

C8859h 19E251h
000 001 010 011 100 101 110 111

Las direcciones de los elementos del vector sern:

V(1)=AA012h
V(2)=C885Ah
V(3)=E70A2h
V(4)=1058EAh
V(5)=124132h
V(6)=14297Ah
V(7)=1611C2h
V(8)=17FA0Ah


Problema 4:
La memoria principal de un procesador vectorial con capacidad de 16Mpalabras se encuentra distribuida
entre 8 mdulos utilizando entrelazado de memoria de orden inferior y acceso de tipo S. Suponiendo que el
compilador ha almacenado en memoria, por filas, una matriz 4 x 4, obtener las posiciones de memoria en las
que se sita la segunda columna de la matriz teniendo en cuenta que la matriz comienza a partir de la
posicin A6BBh.

Solucin:

2
20
= 1 Hpolobro

2
3
= 8 HoJulos

1110111010011010

Como se puede apreciar los 3 bits menos significativos indican el modulo y el resto la posicin, en este caso se
aprecia que la posicin del primer elemento de la matriz tiene una direccin A6BBh y una posicin 14D7h en el
4 modulo.



4/6

Tomamos una porcin del espacio de memoria alrededor de la direccin A6BBh.

A(1,1) A(1,2) A(1,3) A(1,4) A(2,1) 14D7h
A(2,2) A(2,3) A(2,4) A(3,1) A(3,2) A(3,3) A(3,4) A(4,1) 14D8h
A(4,2) A(4,3) A(4,4) 14D9h
14DAh
14DBh
000 001 010 011 100 101 110 111

Por ultimo las direcciones de los elementos de la segunda columna sern:

A(1,2)=A6BCh
A(2,2)=A6C0h
A(3,2)=A6C4h
A(4,2)=A6C8h

Puede el procesador leer la segunda columna realizando un nico acceso a memoria? Por qu?

No, porque deben estar en la misma posicin.

Problema 5:
En la situacin del problema anterior obtenga el tiempo mnimo que necesitara el procesador vectorial para
acceder a la segunda columna de la matriz suponiendo una frecuencia de 100MHz y un tiempo de acceso a
memoria Ta= 8t, donde t es el tiempo de ciclo del procesador.

Solucin:
La segunda columna consta de cuatro elementos, esto es K=4

I(k) = I
u
+kt

I(k) = 8t + 4t = 12t

t =
1

= 1uns

I(k) = 12uns

Problema 6:
Si para un cauce el tiempo de latencia de inicio, TLI, es de 6 ciclos, y el tiempo por resultado, TPC, es 1 ciclo,
Cul ha de ser la longitud mnima del vector que procese ese cauce para que el TLI no represente ms que
un 5% del total del procesamiento?

Solucin:

I
k
= III + k IPC

III = u.uS I
k


I
k
= 2u III


5/6

2u III = III + k IPC

19 III = k IPC

k = 19
III
IPC


k = 19
6
1
= 114

Problema 7:
Para un valor de TLI fijo, Es cierto que a medida que TPC aumenta disminuye la longitud mnima del vector,
k, para la que el valor de TLI es menor o igual que una fraccin dada de Tk?

Solucin:

La formula a usar es: I
k
= III +k IPC
Tomaremos primero un TLI cualquiera igual a una fraccin del tiempo total T
k
con valores arbitrarios de TPC y k.
Luego para ese valor de T
k
y TLI constantes probaremos las nuevas condiciones aumentando TPC y
comprobaremos si el valor de k es menor.

Primeramente tomaremos k = 8 y IPC = 6u
I
k
= III + k IPC

I
k
= _
I
k
8
] + 8 6u

I
k
= S4.8S7u

Tomamos los datos anteriores y cambiamos TPC=12u y el mismo TLI

I
k
= III + k IPC

S4.8S7u = _
S4.8S7u
8
] + k 12u

k = 4

Comprobamos por los clculos anteriores que es cierto que al aumentar el TPC disminuye la longitud del vector
es decir que disminuye los componentes del vector k.



6/6

Problema 8:
En un procesador vectorial a 2GHz, con registros vectoriales de 8 componentes, una nica unidad de
carga/almacenamiento de memoria (LV/SV), un nico multiplicador y un nico sumador, se ejecuta el bucle:

for (i=0; i<n; i++) Y[i] = a*X[i][0]+b;

donde Y es un vector de n elementos y X es una matriz de n filas por 6 columnas almacenada por filas. Si la
memoria de este computador est separada fsicamente en 8 mdulos accedidos con entrelazado inferior.
Determine en que posicin de cada mdulo de memoria estar colocado cada componente de la primera
columna de X si X[0][0] esta colocado en la posicin 0x00120 y n=8.
Con esta colocacin de los elementos de X en memoria Cul sera el tiempo de latencia inicial (TLI) y el
tiempo por componente (TPC) para la lectura de la primera columna de X si el acceso a memoria es de tipo C
y el tiempo de acceso a cada mdulo es Ta = 8 ciclos?


Problema 9:
En un procesador VLIW cuyas instrucciones pueden decodificar dos operaciones (dos campos o slots en cada
instruccin VLIW), todas las operaciones pueden predicarse. Para establecer los valores de los predicados se
utilizan instrucciones de comparacin (cmp) con el formato (p) p1[,p2] cmp.cnd x,y donde cnd es la condicin
que se comprueba entre x e y (lt, ge, eq, ne,). Si la condicin es verdadera p1=1 [y p2=0], y si es falsa, p1=0
[y p2=1]. La operacin solo se ejecuta si el predicado p=1 (habr sido establecido por otra instruccin de
comparacin). Indique como se escribira la sentencia for (i=0; i<n; i++) if (X[i]<0) then Y[i]=0 else
Y[i]=X[i]*X[i]; teniendo en cuenta que las instrucciones de comparacin solo pueden aparecer en el primer
campo o slot de la instruccin VLIW, y las instrucciones de salto solo pueden aparecer en el segundo (el resto
de las instrucciones pueden aparecer en cualquier campo). El procesador no implementa lgica de bloqueo
para asegurarse que los operandos estn disponibles en el momento de emitir las instrucciones, as que tras
las instrucciones de carga de memoria y multiplicacin se deber introducir una instruccin VLIW (como
mnimo) para esperar que el resultado este disponible. El procesador implementa salto retardado, por lo que
la siguiente instruccin VLIW tras un salto siempre se ejecutara independientemente de que se deba saltar o
no. Evite todos los saltos condicionales que no sean de terminacin de bucle y minimice, en la medida de lo
posible, el nmero de slots vacos en las instrucciones del programa mediante reorganizacin de cdigo y
desenrollado de bucles.

Problema 10:
Suponga que el bucle del problema anterior se ejecuta en un procesador superescalar de 32 bits a 2GHz que
puede terminar en un mximo de 3 instrucciones por ciclo, con una memoria cach interna para datos y otra
para instrucciones, de 64KBytes cada una, lneas de 32 bytes, mapeo asociativo por conjuntos de 4 vas,
poltica de actualizacin de post escritura (write-back), sin asignacin de cach en escritura (no write-
allocate) y tiempo de acceso de un ciclo de reloj de CPU. La memoria principal, de 512 MBytes, tiene un
tiempo de acceso de 50ns y se conecta a travs de un bus de 64 bits a 200 MHz que utiliza ciclos burst 10-2-2-
2 para trasferir las lneas de cach. Las matrices que se suman tienen 220 elementos y el primer elemento A
esta en la direccin 0x0800000, el primero de B en la direccin 0x1000000, el primero de C en la direccin
0x1800000, y el primero de D en la direccin 0x2000000. Realice una estimacin lo mas aproximada posible
del tiempo mnimo que puede tardar en ejecutarse el programa en este procesador. Puede considerar que,
como no hay asignacin en escritura en la cach, las escrituras se harn directamente en memoria principal y
que dicha escritura puede hacerse concurrentemente a la ejecucin del resto de instrucciones del resto de
instrucciones, incluyendo las de carga de memoria dado que no hay instrucciones posteriores que utilicen los
componentes almacenados en memoria, tambin puede despreciar las faltas en la cach de instrucciones.
Tambin puede asumir que la poltica de asignacin de lnea dentro de un conjunto es la que proporciona
mejores resultados respecto a las colisiones.