Sunteți pe pagina 1din 8

ARQUITECTURA DE COMPUTADORES

EXAMEN DE SEPTIEMBRE DE 2009

1.(2 p)

Suponga un procesador VLIW en el que sus instrucciones pueden codificar tres operaciones (tres
campos o slots en cada instruccin VLIW). Cada una de esas operaciones se codifica de forma
anloga al repertorio DLX, salvo por el hecho de que todas las operaciones pueden predicarse, y
que para establecer los valores de los predicados se utilizan instrucciones de comparacin (cmp) con
el formato (p) p1, p2 cmp.cnd rx, ry, donde cnd es la condicin que se comprueba entre los registros rx
y ry (lt, ge, eq, ne,). Si la condicin es verdadera p1 = 1 y p2 = 0, y si es falsa, p1 = 0 y p2 = 1. La
instruccin slo se ejecuta si el predicado p = 1 (habr sido establecido por otra instruccin de
comparacin).
Indique cmo sera el cdigo VLIW para la sentencia
if (X < 1) then {
Y = X * 2;
X = X / 4;
}
else if ((X > 1) && (X < 4)) then {
Y = X * 5;
X=X/8
}
sin ninguna operacin de salto, ni de multiplicacin o divisin, teniendo en cuenta que las
instrucciones de comparacin slo pueden aparecer en el primer campo o slot de la instruccin
VLIW (el resto de las instrucciones pueden aparecer en cualquier campo). Considere que dispone
del nmero de unidades funcionales necesarias en cada momento.

Solucin
El siguiente fragmento de cdigo implementa el algoritmo del enunciado con las restricciones del problema,
es decir, sin instrucciones de salto, multiplicacin o divisin:
addi
addi
lw

r1, r0, #1
r4, r0, #4
r2, X

; r1 = 1
; r4 = 4
; r2 = X

cmp.lt
cmp.gt
cmp.lt

r2, r1
r2, r1
r2, r4

; p1 = 1 si X < 1
; p2 = 1 si X > 1
; p2 = 1 si X > 1 && X < 4

(p1)
(p1)
(p1)
(p1)

slli
srai
sw
sw

r3, r2, #1
r2, r2, #2
X, r2
Y, r3

; r3 =X * 2
; r2 = Y / 4
; X = r2
; Y = r3

(p2)
(p2)
(p2)
(p2)
(p2)

slli
add
srai
sw
sw

r3, r2, #2
r3, r3, r2
r2, r2, #3
X, r2
Y, r3

; r3 =X * 4
; r2 = X * 5
; r2 = Y / 8
; X = r2
; Y = r3

(p2)
(p2)

p1, p2
p2
p2

Una vez obtenido el cdigo ensamblador, una posible solucin para formar las instrucciones VLIW con las
restricciones del problema podra ser la siguiente:

SLOT 1

2. (2 p)

SLOT 2

lw

r2, X

p1, p2

cmp.lt

r2, r1

(p2)

p2

cmp.gt

r2, r1

(p2)

p2

cmp.lt

r2, r4

SLOT 3

addi

r1, r0, #1

addi

r4, r0, #4

(p1)

slli

r3, r2, #1

(p1)

sw

X, r2

(p1)

srai

r2, r2, #2

(p1)

sw

(p2)

slli

Y, r3

r3, r2, #2

(p2)

srai

(p2)

r2, r2, #3

add

r3, r3, r2

(p2)

sw

(p2)

X, r2

sw

Y, r3

Suponga un procesador superescalar en que se captan y decodifican dos instrucciones por ciclo, se
emiten tres instrucciones por ciclo como mximo (con emisin desordenada y no alineada, sin
estaciones de reserva), y se retiran hasta tres instrucciones por ciclo como mximo. La emisin y la
ejecucin son desordenadas, y las instrucciones, una vez decodificadas, se introducen en un buffer
de reordenamiento (ROB) que permite la finalizacin ordenada del procesamiento de las
instrucciones.
a) Indique las dependencias entre instrucciones, los ciclos en los que se emiten las instrucciones
para su ejecucin y cmo evolucionara el buffer de reordenamiento hasta que se hayan
retirado todas las instrucciones de la siguiente secuencia:
multd
addd
addd
multd
addd
subd

f1, f1, f2
f3, f3, f2
f4, f1, f3
f5, f3, f2
f3, f4, f3
f5, f2, f1

; (1)
; (2)
; (3)
; (4)
; (5)
; (6)

b) Suponiendo una frecuencia de 2.0 GHz, cunto tarda en procesarse la secuencia de


instrucciones? Cul es la velocidad pico del procesador?
NOTA: La suma y la resta consumen dos ciclos de reloj y la multiplicacin cuatro ciclos. Considere que no
hay limitaciones en la capacidad de los buffers, y que slo se dispone de un multiplicador y dos
sumadores/restadores. Se supone que f1, f2, y f3 tienen valores vlidos previos.

Solucin
a)

En el siguiente diagrama se puede observar cundo se emite cada una e las instrucciones.
INSTRUCCIN

multd
addd
addd
multd
addd
subd

f1, f1, f2
f3, f3, f2
f4, f1, f3
f5, f3, f2
f3, f4, f3
f5, f2, f1

1
IF
IF

2
ID
ID
IF
IF

4
EX

ID
ID
IF
IF

ID
ID

5
EX
ROB
Stall
Stall
Stall

7
8
9
10
11
12
ROB WB
Stall
WB
EX
ROB WB
EX
ROB WB
Stall
EX
ROB WB
EX
ROB
Stall
WB

La tasa de emisin y retirada del procesador, no limitan las prestaciones. Sin embargo, al haber un solo
multiplicador, la emisin de la instruccin (4) se debe retrasar hasta el ciclo 7. De todas formas, aunque
hubiera varios multiplicadores la ejecucin seguira tardando el mismo nmero de ciclos, ya que est limitada
por la cadena de dependencias entre las instrucciones (1) (3) (5).
La siguiente tabla muestra la evolucin del bfer de reordenamiento:

CICLO

CDIGO
OPERACIN

REGISTRO
DESTINO

VALOR

VALOR
VLIDO

multd

f1

addd

f3

multd

f1

addd

f3

addd

f4

multd

f5

multd

f1

addd

f3

addd

f4

multd

f5

addd

f3

subd

f5

multd

f1

addd

f3

f3 + f2

addd

f4

multd

f5

addd

f3

subd

f5

multd

f1

f1 * f2

addd

f3

f3 + f2

addd

f4

multd

f5

addd

f3

subd

f5

addd

f4

multd

f5

addd

f3

subd

f5

addd

f4

f1 + f3

multd

f5

addd

f3

subd

f5

f2 f1

multd

f5

addd

f3

subd

f5

f2 f1

multd

f5

f3 * f2

addd

f3

f4 + f3

subd

f5

f2 f1

10

11

b) Si el procesador funciona a 2 GHz, el tiempo de procesamiento sera

T=

nmero de ciclos
12
=
= 6 ns
F
2 10 9

Para la calcular la velocidad pico, aunque se puedan retirar hasta tres instrucciones por ciclo, lo cierto que slo
se pueden captar y decodificar hasta dos instrucciones por ciclo, as que en condiciones ideales el lmite est
en dos instrucciones por ciclo. Por tanto, si el procesador funciona a 2 GHz, y suponiendo que no hubiera
atascos en el cauce, se podra alcanzar:
V pico = tasa de captacin F = 2 2 10 9 = 4 10 9 instrucciones/s = 4000 MIPS

3. (1.5 p) Se han encontrado dos posibles alternativas para la ejecucin de una funcin F en un cauce con 4
etapas S1, S2, S3, S4. La alternativa 1 visita las etapas segn la secuencia S1 S3 S2 S4 S1 S4 S2 y la
alternativa 2 en el orden S1 S2 S3 S4 S2 S4 S2.
a) Cul de las dos alternativas permite ejecutar un nmero mayor de funciones por unidad de
tiempo? Demuestre razonadamente su respuesta.
b) Obtenga adems la ganancia en velocidad para 2000 operaciones que ofrecen cada una de las
alternativas con respecto a su ejecucin sin segmentar, teniendo en cuenta que la
implementacin no segmentada de la funcin requiere un tiempo de 25 ns, que las etapas del
cauce suponen unos tiempos de ejecucin de 4ns para S1, 4 ns para S2, 3 ns S3 y 4 ns para
S4, y que los registros introducen retardos de 0.1 ns.
c) Con esos mismos datos, a partir de qu nmero de operaciones se alcanza el 80% de la
ganancia mxima del mejor de los cauces?

Solucin
a)

Lo primero que se debe hacer en este tipo de problemas es obtener la tabla de latencias prohibidas de cada
cauce. Para la primera alternativa tenemos la siguiente tabla:
ETAPA

S1

S2

S3

S4

y para la segunda alternativa:


ETAPA

S1

S2

S3
S4

X
X

A partir de estas tablas de latencias se pueden obtener las latencias prohibidas, que son F1 = {2, 4} y F2 = {2,
3, 5} respectivamente, y los vectores de colisiones, C1 = (1010) y C2 = (10110). Estos vectores de colisiones
se usan como nodo inicial del diagrama de estados de cada cauce.
El diagrama del primer cauce es el siguiente:

5+
1010

5+

5+

1011

1111

En el que se han marcado los ciclos que generan la mnima latencia media, que es:
MLM 1 =

5+1
=3
2

El diagrama del segundo cauce es el siguiente:


6+
10110

6+

10111

6+

11111

En este caso, la mnima latencia media es:


MLM 2 =

6+1
= 3.5
2

Por tanto, y a la vista de las mnimas latencias medias, se puede concluir que la productividad del primer
cauce es mayor que la del segundo, ya que en media el primero generar un resultado cada 3 ciclos y el
segundo cada 3.5 ciclos.
b) Como el tiempo de operacin del circuito sin segmentar es de 25 ns, para n operaciones se tardar:
T orig (n ) = n 25 = 25n ns

Teniendo en cuenta el tiempo de ejecucin de cada una de las etapas y los retardos introducidos por los
registros de acoplo, el tiempo de ciclo de ambos cauces se puede obtener como:
t = max{t 1 , t 2 , t 3 , t 4 }+ d = max{4 ,4 ,3,4} + 0.1 = 4.1 ns

El tiempo de ejecucin de ambos cauces se obtiene con las siguientes expresiones::


Tseg 1 (n ) = (k + (n 1) MLM 1 ) t = (7 + (n 1) 3) 4.1 = 12.3n + 16.4 ns
Tseg 2 (n ) = (k + (n 1) MLM 2 ) t = (7 + (n 1) 3.5 ) 4.1 = 14.35n + 14.35 ns

Por tanto, la ganancia en velocidad para ambos cauces es:


T orig (n )
25n
=
Tseg 1 (n ) 12.3n + 16.4
T orig (n )
25n
S 2 (n ) =
=
Tseg 2 (n ) 14.35n + 14.35
S 1 (n ) =

As que para n = 2000 operaciones se obtendr una ganancia de:

25 2000
= 2.031
12.3 2000 + 16.4
25 2000
S 2 (2000 ) =
= 1.741
14.35 2000 + 14.35
S 1 (2000 ) =

c)

La ganancia mxima del primer cauce se calcula con la siguiente expresin:


S 1 max = lim S 1 (n ) = lim
n

25n
25
=
= 2.033
12.3n + 16.4 12.3

Por tanto, el nmero de operaciones necesarias para alcanzar el 80% de esta ganancia se obtiene despejando n
de la siguiente expresin:
S 1 (n ) =

25n
0.8 S 1 max = 0.8 2.033
12.3n + 16.4

El resultado es n 5.34, por lo que podemos concluir que a partir de n = 6 operaciones ya estamos
superando el 80% de la ganancia mxima en el primer cauce.

4.(1 p)

Se dispone de una memoria de 512 Mbytes con entrelazado de orden inferior y acceso de tipo S
(simultneo) distribuida en mdulos de 16 Mbytes. Se ha almacenado un vector de 113
componentes en posiciones de memoria consecutivas a partir de la posicin 0x21bc5.
a) Cuntos accesos se necesitan para leer el vector completo?
b) Y si el entrelazado fuera de orden superior (manteniendo el acceso de tipo S)?

Solucin
a)

El sistema de memoria estar compuesto por 512 / 16 = 32 mdulos, por tanto, los datos estarn ubicados
en los mdulos de memoria tal y como se muestra a continuacin:
MDULO
DIREC.

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

0x21bc0

X X X X X X X X X X X X X X X X X X X X X X X X X X X

0x21be0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
0x21c00 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
0x21c20 X X X X X X X X X X X X X X X X X X X X X X X

Como en cada acceso se puede acceder simultneamente a la misma direccin en los 32 mdulos, para
acceder a todos los componentes del vector seran necesarios 4 accesos.
b) Como cada mdulo tiene un tamao de 16 MB, si el entrelazado fuera superior el mdulo 0 contendra las
direcciones comprendidas entre 0x000000 y 0xffffff, por lo que el vector estara completamente alojado en
dicho mdulo. Por tanto, seran necesarios 113 accesos para poder leer todos los componentes del vector, un
acceso para cada componente.

5.(1.5 p)

Se desea ejecutar el siguiente programa en un procesador superescalar de 32 bits con un valor de N


asignado previamente:

bucle:

lw
add
lw
sgt

r1, N
r2, r0, r0
r3, X(r2)
r4, r3, r0

bnz
sub
sw
mayor: add
sub
bnz

r4, mayor
r3, r0, r3
X(r2), r3
r2, r2, #4
r1, r1, #1
r1, bucle

Si el procesador usa predictores dinmicos de dos bits, que se inicializan con un predictor esttico
que predice como tomados los saltos hacia atrs y como no tomados los saltos hacia delante, y la
penalizacin en caso de errar la prediccin es de 5 ciclos,
a) Qu penalizacin media se obtendr si X (0) = 1, X (1) = 1 y X (i+2) = 1 X (i)?
b) Qu penalizacin se obtendra si se optimizara el cdigo usando sentencias de ejecucin
condicional?

Solucin
a)

El siguiente organigrama muestra grficamente el algoritmo implementado por el fragmento de cdigo del
enunciado:
Inicio

i0
bucle:
tmp X(i)
Si

Salto 1

tmp > 0?
No
tmp tmp
mayor:
ii+1

nn1

n > 0?

Si

Salto 2

No
Fin

Como la secuencia X = {1, 1, 0, 0, 1, 1, 0, 0, }, teniendo en cuenta las restricciones del problema, los saltos
tienen el siguiente comportamiento:

SALTO
SALTO 1

SALTO 2

ITERACIONES

LTIMA

ESTADO DEL CONTADOR

00

01

10

01

00

00

PREDICCIN

EJECUCIN

PENALIZACIN

ESTADO DEL CONTADOR

11

11

11

11

11

11

PREDICCIN

EJECUCIN

PENALIZACIN

Analizando esta tabla se puede comprobar que en el caso del salto 1, para cada cuatro valores de la secuencia
X se producen tres fallos en la prediccin, y que este comportamiento se vuelve a repetir cada cuatro
iteraciones. Por tanto, para n iteraciones el salto 1 introducir la siguiente penalizacin:
n
n
P1 ( n ) = n p = n 5 ciclos
4
4

El comportamiento del salto 2 es mucho ms sencillo, ya que slo se falla en su prediccin en la ltima
iteracin del bucle:
P2 ( n ) = 1 p = 5 ciclos

La penalizacin total se obtendr sumando la penalizacin que introducen los dos saltos:
n
P ( n ) = P1 ( n ) + P2 ( n ) = n + 1 5 ciclos
4

b) Si se reescribe el cdigo con sentencias de ejecucin condicional, el salto 1 desaparecera, ya que el cambio de
signo de los componentes de X que no sean positivos se podra implementar sn usar instrucciones de salto.
Sin embargo, el salto 2 seguira formando parte del cdigo, ya que es necesario para iterar a lo largo del
vector. Por tanto, en este caso la penalizacin total debida a los salto sera de:
P ( n ) = P2 ( n ) = 5 ciclos

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