Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
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
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.
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.
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.
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