Está en la página 1de 4

29 de marzo de 2017

PRUEBA INTERMEDIA DE FUNDAMENTOS DE COMPUTADORES


Apellidos y nombre: DNI: Grupo:

1. (1 punto) Exprese en hexadecimal la codificacin en lenguaje mquina de la instruccin bne $s0, $t0, X suponiendo
que la instruccin se encuentra en la direccin 2052 y que la etiqueta X representa a la direccin 1612 (ambas en decimal).

En primer lugar vamos a calcular el desplazamiento: sabemos que X = P C + 4d y que el P C una vez leda la instruccin
bne contiene la direccin de esta incrementada en 4 (2052 + 4 = 2056). Despejemos d:
X PC 1612 2056
d= = = 111
4 4
Como es negativo, para pasarlo a binario en complemento a 2, pasamos a hexadecimal su mdulo, lo complementamos y
sumamos 1: 111 = 0x006f = 111 = 0xff91
Solo queda completar los otros campos: C.op = 5 = 000101(2 rs = 16 = 10000(2 ($s0) rt = 8 = 01000(2 ($t0)
Juntando todos los campos queda 000101 10000 01000 1111111110010001 = 0x1608ff91

Codificacin en lenguaje mquina de bne $s0, $t0, X (hex): 0x1608ff91


2. Un programa con 100.000 instrucciones tarda en ejecutarse 80 s en un procesador que funciona a 2 GHz:
a) (0,5 puntos) Cul es el CPI del procesador para ese programa?

Ic CP I tf 80 106 2 109
t= = CP I = = = 160 102 = 1, 6 ciclos/instruccin
f Ic 100000
CPI: 1,6
b) (0,5 puntos) Si las instrucciones de acceso a memoria emplean 3 ciclos y el resto 1 ciclo Cul es el porcentaje de las
instrucciones de acceso a memoria?

Si x es la proporcin de instrucciones de acceso a memoria, la del resto ser (1 x). El CPI global vendr dado por:
0, 6
CP I = 3x + 1(1 x) = 3x + 1 x = 2x + 1 = 1, 6 = 2x = 1, 6 1 = 0, 6 = x = = 0, 3 (30 %)
2

Porcentaje de instrucciones de acceso a memoria: 30 %


c) (0,5 puntos) En las condiciones del apartado anterior, si disminuyendo la frecuencia del reloj un 10 % se consigue que
las instrucciones de acceso a memoria se ejecuten en 2 ciclos Cunto mejorara el rendimiento?

El nuevo CPI ser: 0, 3 2 + (1 0, 3) 1 = 1, 3 El nuevo tiempo de ejecucin ser:


Ic2 CP I2 100000 1, 3
t2 = = = 0, 72 104 s = 72 s
f2 0, 9 2 109
R2 t1 80
La relacin de rendimientos es: = = = 1, 111 = Mejora del 11,1 %
R1 t2 72

Porcentaje de mejora del rendimiento: 11,1 %


d) (0,5 puntos) Cuntos MIPS ejecuta el procesador cuando ejecuta el citado programa?

Este clculo se puede hacer de dos formas:


100000 106
Dividiendo el nmero de instrucciones (en millones) entre el tiempo empleado: = 1250 MIPS
80 106
Relacionando el CP I, f y M IP S, calculando los millones de instrucciones que se ejecutan en 1 segundo:
Ic CP I M IP S 106 CP I f 106 2 109 106
t= = 1 = = M IP S = = = 1250
f f CP I 1, 6
MIPS: 1250
II

3. Se ha diseado una nueva versin de un procesador que aumenta la potencia dinmica un 20 % disminuyendo la frecuencia
en un 15 % y su tensin de alimentacin en un 10 %.
a) (0,5 puntos) Si el factor de actividad es el mismo: En qu porcentaje habr aumentado la carga capacitiva?

Wd1 Wd2
Wd1 = C1 V12 f1 = C1 = Wd2 = C2 V22 f2 = C2 =
V12 f1 V22 f2
Dividimos las dos cargas capacitivas para obtener la relacin y, con ello, la variacin:
Wd2 1, 2Wd1
C2 V22 f2 (0, 9V1 )2 0, 85f1 1, 2
= = = = 1, 743 = La carga capacitiva ha aumentado un 74,3 %
C1 Wd1 Wd1 0, 92 0, 85
V12 f1 V12 f1

Porcentaje de aumento de la carga capacitiva: 74,3 %


b) (0,5 puntos) Si la potencia esttica es, en ambos casos, el 20 % de la potencia total En qu porcentaje aumentarn las
corrientes de fuga?
0, 2Wd
Ws = 0, 2WT = 0, 2(Ws + Wd ) = 0, 2Ws + 0, 2Wd = Ws (1 0, 2) = 0, 2Wd = Ws = = 0, 25Wd
0, 8
0, 25Wd1 0, 25Wd2 0, 25 1, 2Wd1 0, 333Wd1
Ws1 = 0, 25Wd1 = V1 If 1 = If 1 = Anlogamente: If 2 = = =
V1 V2 0, 9V1 V1
Dividimos las corrientes de fuga para obtener la relacin y, con ella, la variacin:
0, 33Wd1
If 2 V1
= = 1, 333 = Incremento de un 33,3 %
If 1 0, 25Wd1
V1
Porcentaje de aumento de las corrientes de fuga: 33,3 %
4. (1.5 puntos) Sea la siguiente instruccin de lenguaje C: X[20]=a+X[Y[j]+Z[j]]; donde todas las variables son enteras
de 32 bits Para la citada instruccin, muestre el cdigo correspondiente en lenguaje ensamblador de MIPS, empleando el
mnimo nmero de instrucciones y suponiendo que las variables a y j se encuentran, respectivamente, en los registros $s0
y $s1 y que las direcciones iniciales de los vectores X, Y y Z se encuentran, respectivamente, en los registros $s5, $s6 y
$s7. Emplee comentarios para dar las explicaciones oportunas.
Instrucciones Comentarios
sll $t0, $s1, 2 $t0 4*j
add $t1, $s6, $t0 $t1 Y+4*j = &Y[j]
lw $t1, 0($t1) $t1 Y[j]
add $t0, $s7, $t0 $t0 Z+4*j = &Z[j]
lw $t0, 0($t0) $t0 Z[j]
add $t0, $t1, $t0 $t0 Y[j]+Z[j]
sll $t0, $t0, 2 $t0 4*(Y[j]+Z[j])
add $t0, $s5, $t0 $t0 X+4*(Y[j]+Z[j]) = &X[Y[j]+Z[j]]
lw $t0, 0($t0) $t0 X[Y[j]+Z[j]]
add $t0, $s0, $t0 $t0 a + X[Y[j]+Z[j]]
sw $t0, 80($s5) X[20] a + X[Y[j]+Z[j]]
III

5. Ms abajo se muestra una parte de la memoria de un computador con arquitectura MIPS. En ese computador se ejecuta la
instruccin lb $s2, -8($s1). Supngase que los registros $s1 y $s2 contienen respectivamente 184 y 188 (ambos en
decimal).
Direccin 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
Contenido 0xc1 0xec 0x86 0x91 0xa2 0xe5 0xd4 0x8f 0xd5 0xcc 0x96 0x9d 0xc2 0xed 0xe4 0xef 0xcf
a) (0,5) Codifique la citada instruccin en lenguaje mquina.
Justificacin:

Las instrucciones acceso a memoria son de tipo I. El valor de los campos es: C.op. = 32, rs = 17 ($s1), rt = 18 ($s2)
y Constante/desplazamiento = 8. Poniendo los campos en binario con la longitud dada en el formato I, tenemos:
C.op. rs rt Constante/desplazamiento
100000 10001 10010 1111111111111000
Agrupando los bits de 4 en 4 para ponerlo en hexadecimal: 1000 0010 0011 0010 1111 1111 1111 1000 = 0x8232fff8

Codificacin en lenguaje mquina de lb $s2, -8($s1) (hex.): 0x8232fff8

b) (0,5 puntos) Exprese en hexadecimal el contenido del registro destino despus de la ejecucin de la instruccin supo-
niendo que se sigue el criterio little-endian?
Clculos:

La instruccin lb carga en rt (en nuestro caso $s2) el byte contenido en la direccin dada por rs + d con extensin
de signo. En nuestro caso el desplazamiento es 8 y rs (en nuestro caso $s1)) contiene 184, por tanto la direccin
del byte que se lee de memoria es 184 8 = 176, es decir, el byte ledo es 0xc1. Como la instruccin extiende el
signo y 0xc1 es negativo, el valor cargado es 0xffffffc1.

Contenido final del registro destino en hex. (little-endian): 0xffffffc1


c) (0,5 puntos) Exprese en hexadecimal el contenido del registro destino despus de ejecutarse la instruccin suponiendo
que se sigue el criterio big-endian?
Clculos:

Cuando se lee de memoria un solo byte de memoria el dato ledo es independiente del endianness, por tanto el
resultado es el mismo que en el apartado anterior.

Contenido final del registro destino en hex. (big-endian): 0xffffffc1


d) (0,5 puntos) Supngase ahora que, en las mismas condiciones, se ejecuta la instruccin lw $s2, -4($s1). Qu
contendr el registro destino si se sigue el criterio little-endian?
Clculos:

La instruccin lw carga en rt (en nuestro caso $s2) la palabra contenida a partir de la direccin dada por rs + d. En
nuestro caso el desplazamiento es 4 y rs ($s1) contiene 184 por lo que la direccin accedida es 184 4 = 180.
Como se sigue el criterio little-endian, el byte de menos peso es el que se encuentra en la direccin ms baja, por lo
que el dato ledo, y por tanto cargado en $s2 es 0x8fd4e5a2.

Contenido final del registro destino en hex. (little-endian): 0x8fd4e5a2


IV

6. (0,5 puntos) Suponga que inicialmente el registro $s0 contiene 0x1a2b3c4d Cul es el contenido del registro $s1 expre-
sado en hexadecimal despus de ejecutarse la secuencia de instrucciones siguiente?
lui $t0, 0x00ff
Clculos: and $t0, $s0, $t0
srl $s1, $t0, 16

lui $t0, 0x00ff and $t0, $s0, $t0 srl $s1, $t0, 16
0x1a2b3c4d $s0
$t0 0x00ff0000 0x00ff0000 $t0 $t0>> 16 = 0x002b0000 >> 16 = 0x0000002b $s1
0x002b0000 $t0
Contenido final del registro $s1 (hex.): 0x0000002b

7. (2 puntos) Para cada una de las afirmaciones siguientes, indique si es verdadera o falsa rodeando con un crculo la V si la
considera verdadera o la F si la considera falsa.
Puntuacin: (Aciertos F allos) 0, 2. No cuentan como fallos las preguntas no contestadas.
En la frmula que proporciona el tiempo de ejecucin de un programa, las variables CP I (ciclos por
instruccin), f (frecuencia) e Ic (nmero de instrucciones) son independientes unas de otras. V
F
La frecuencia de trabajo de los procesadores no puede aumentar indefinidamente debido a que el procesa-
dor no podra disipar el aumento de potencia que ello supondra.
V F
Cuando se hacen trabajar N procesadores en paralelo una de las razones de que la mejora de rendimiento
no llegue a ser N es que se necesitan instrucciones adicionales para comunicar los procesadores.
V F
En una representacin en complemento a 2 con n bits el mayor nmero representable es 2n1 . V
F
En el lenguaje mquina de MIPS cada instruccin es una secuencia de 32 bits.
V F
El registro contador de programa contiene la siguiente instruccin del programa que se va a ejecutar. V
F
La trama de un procedimiento contiene toda la informacin que es necesario guardar en la pila cuando se
le llama.
V F
Los procedimientos anidados se caracterizan porque se llaman a s mismos. V
F
Cuando aparece una nueva versin de una biblioteca dinmica es necesario compilar nuevamente los pro-
gramas que las utilizan para que empleen la nueva versin. V
F
Un buen compilador puede conseguir transformar un cdigo que maneja ndices en un cdigo ms eficiente
que maneje apuntadores.
V F
Registros de la arquitectura MIPS Cdigos de operacin MIPS ms
habituales en orden alfabtico
Nmero Nombre Uso
Cdigo de operacin
0 $zero Constante 0 Instruccin
(decimal)
1 $at Temporal para el ensamblador
add 0 (funct=32)
2-3 $v0-$v1 Resultados de funciones
addi 8
4-7 $a0-$a3 Argumentos a funciones
and 0 (funct=36)
8-15 $t0-$t7 Temporales
andi 12
16-23 $s0-$s7 Temporales estables
beq 4
24-25 $t8-$t9 Temporales
bne 5
26-27 $k0-$k1 Reservados para el ncleo del S.O.
j 2
28 $gp Apuntador global
jal 3
29 $sp Apuntador de cima de pila
lb 32
30 $fp Apuntador de trama de pila
lbu 36
31 $ra Direccin de retorno
lui 15
lw 35
Formatos de instruccin MIPS or 0 (funct=37)
R C.op. rs rt rd shamt funct ori 13
31 26 25 21 20 16 15 11 10 6 5 0 sb 40
sll 0 (funct=0)
I C.op. rs rt Constante/desplazamiento slt 0 (funct=42)
31 26 25 21 20 16 15 0 slti 10
srl 0 (funct=2)
J C.op. Direccin sub 0 (funct=34)
31 26 25 0 sw 43

También podría gustarte