Publicado el 14 de Enero del 2019
2.573 visualizaciones desde el 14 de Enero del 2019
954,6 KB
49 paginas
UNIVERSIDAD CARLOS III DE MADRID
DEPARTAMENTO DE INFORMÁTICA
GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES
Para la realización del presente examen se dispondrá de 1 hora y media.
NO se podrán utilizar libros, apuntes ni calculadoras de ningún tipo.
Ejercicio 1. Represente en el estándar IEEE 754 de simple precisión el valor -36.
Ejercicio 2. Dado el siguiente fragmento de programa en ensamblador.
.text
main:
funcion: li $t0, 10
bgt $a0, $t0, et1
li $t0, 10
add $v0, $t0, $a0
b et2
add $v0, $t0, $a0
jr $ra
Se pide :
.globl main
li $a0, 5
jal funcion
move $a0, $v0
li $v0, 1
syscall
li $v0, 10
syscall
et1: li $t0, 8
et2:
a) Indicar de forma razonada el valor que se imprime por pantalla (primera llamada al sistema del código
anterior).
Ejercicio 3. Considere una función denominada SumarValor. A esta función se le pasan tres parámetros:
o El primer parámetro es la dirección de inicio de un vector de números enteros.
o El segundo parámetro es un valor entero que indica el número de componentes del vector.
o El tercer parámetro es un valor entero.
La función SumarValor modifica el vector, sumando el valor pasado como tercer parámetro a todas las
componentes del vector. Se pide:
a) Indique en qué registros se han de pasar cada uno de los parámetros a la función.
b) Programar utilizando el ensamblador del MIPS32 el código de la función SumarValor.
c) Dado el siguiente fragmento de programa:
v: .word 7, 8, 3, 4, 5, 6
.globl main
.data
.text
main:
incluya en el main anterior, las sentencias en ensamblador necesarias para poder invocar a la función
SumarValor implementada en el apartado b) de forma que sume a las componentes del vector v definido
1
en la sección de datos, el número 5. Implemente a continuación de la llamada a la función, las sentencias
en ensamblador que permitan imprimir todas las componentes del vector.
Ejercicio 4. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros.
Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se
conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo.
Memoria
principal
L
E
Bus de direcciones
Bus de datos
Bus de control
Procesador
Td
Ta
C2
C3
T4
C1
MAR
MBR
T3
Bus
interno
T1
T2
C9
RT1
0
MUX A
1
RA
RB
RC
SC
A
B
MA
Banco de
registros
E
Cod. OP
C11
RT3
Señales de control
Unidad de
Control
Señales de
interrupción
T7
C7
C8
RE
T6
C4
C5
C6
T8
RT2
RI
T5
0
1
MUX B
4
+
PC
C10
MB
ALU
Este computador dispone del juego de instrucciones del MIPS32. Indique las operaciones elementales y las señales
de control (incluyendo el fetch) necesarias para ejecutar la instrucción addi $t0, $t1, 10.
Ejercicio 5. Sea un computador de 32 bits con una memoria caché de 256 KB, líneas de 64 bytes y un
tiempo de acceso de 5 ns. La caché es asociativa por conjuntos de 4 vías y se emplea la política de
reemplazo LRU. Se pide:
a) Indique el número de líneas y de conjuntos de la memoria caché del enunciado.
b) ¿Cuál es el tamaño de los bloques que se transfieren entre la memoria caché y la memoria
principal?
c) Si el tiempo para transferir un bloque de memoria principal a caché es de 200 ns, indique la tasa
de aciertos a caché necesaria, de forma que el tiempo medio de acceso al sistema de memoria sea
de 20 ns.
2
Soluciones:
Solución del ejercicio 1
El valor 36 en binario es 100100. 100100 = 1.00100 x 25. Por tanto:
o El bit de signo es 1, porque el número es negativo.
o El exponente es 5, por tanto el exponente que se almacena es 5 + 127 = 132, que en binario es
o La mantisa es 001000000 …. 00000
10000100
Por tanto el número -36 se representa como 11000010000100000000000000000000
Solución del ejercicio 2
A la función se le pasa como argumento en el registro $a0 el valor 5. Si este valor es mayor que (bgt)
10 se salta a la etiqueta et1. Como no es el caso, se suma 10 ($t0) a 5 y el resultado se almacena en
$v0, que es el valor que se imprime, es decir, 15.
Solución del ejercicio 3
a) La dirección de inicio se pasa en $a0, el número de elementos en $a1 y el valor a sumar en $a2.
b)
sub $sp, $sp, 24
sw
$ra, 20($sp)
$a0, 4($sp)
sw
sw
$a1, 8($sp)
sw
$a2, 12($sp)
$a0, v
la
li
$a1, 6
li
$a2, 5
3
$t0, 0
li
SumarValor:
move $t1, $a0
bgt $t0, $a1, fin
bucle:
lw $t2, ($t1)
add $t2, $t2, $a2
$t2, ($t1)
sw
addi $t0, $t0, 1
addi $t1, $t1, 4
b bucle
fin: jr $ra
b) El cuerpo e la función main es:
v: .word 7, 8, 3, 4, 5, 6
.globl main
.data
.text
main:
jal SumarValor
li $v0, 1
li
$t0, 0
move $t1, $a0
bgt $t0, $a1, fin
$a0, ($t1)
lw
syscall
addi $t0, $t0, 1
addi $t1, $t1, 4
b bucle
bucle:
fin: lw $ra, 20($sp)
lw $a0, 4($sp)
lw $a1, 8($sp)
lw $a2, 12($sp)
addi $sp, $sp, 20
li $v0, 10
syscall
jr $ra
Solución del ejercicio 5
a) La caché tiene un tamaño de 256 KB = 218 bytes. como cada línea tiene 26 bytes, el número de
líneas es 218 bytes / 26 bytes = 212 líneas = 4096 líneas. Como la caché es asociativa por conjuntos
de 4 vías, cada conjunto tiene cuatro líneas, por tanto el número de conjuntos es 4096 / 4 = 1024
conjuntos.
b) El tamaño del bloque que se transfiere entre memoria principal y caché coincide con el tamaño de
la línea, es decir, con 64 bytes.
4
Solución del ejercicio 4
En la siguiente tabla se muestran las operaciones elementales y las señales de control.
Ciclo Operación elemental
C1
C2
Señales de control activadas
T4, C1
L, Td, C2, C4
MAR ← PC
MBR ← MP,
PC ← PC + 4
RI ← MBR
Decodificación
TR2 ← RI(10)
$t0 ← $t1 + TR2
C3
C4
C5
C6
T3, C6
T8, C10
RA = <dir de $t1>
MA = 0
MB = 1
Cod op = SUMAR
T5
RC = <dir de $t0>
SC
c) El tiempo medio de acceso al sistema viene dado por la siguiente expresión:
tm = tc ⋅ Pa + (1-Pa) ⋅ tf
donde tc = 5 ns, tm = 20 ns y tf = 205 (200 + 5). Por tanto:
20 = 5 ⋅ Pa + (1-Pa) ⋅ 205
Despejando, se obtiene que Pa = 185 / 200 = 0,92. Es decir, la tasa de aciertos debe ser del 92 %.
5
UNIVERSIDAD CARLOS III DE MADRID
DEPARTAMENTO DE INFORMÁTICA
GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES
Para la realización del presente examen se dispondrá de 2 horas. NO se podrán utilizar libros, apuntes ni calculadoras de
ningún tipo.
Ejercicio 1. Dado el siguiente fragmento de programa en ensamblador.
.text
.globl main
main:
li $a0, 5
jal funcion
move $a0, $v0
li $v0, 1
syscall
li $v0, 10
syscall
funcion:
move $t0, $a0
li $t1, 0
bucle: beq $t0, 0, fin
add $t1, $t1, $t0
sub, $t0, $t0, 1
b bucle
fin: move $v0, $t1
jr $ra
Se pide :
b) Indicar de forma razonada el valor que se imprime por pantalla (primera llamada al sistema del código
c) Si en el registro $a0, que se utiliza para el paso de parámetros a la función, el valor que se
almacena se representa en complemento a uno, ¿qué rango de números podrían pasarse a la
función?
Ejercicio 2. Considere una función denominada Vocales. A esta función se le pasa como parámetro la
dirección de inicio de una cadena de caracteres. La función calcula el número de veces que aparece el carácter ‘a’
(en minúscula) en la cadena. En caso de pasar la cadena nula la función devuelve el valor -1. En caso de que la
cadena no tenga ninguna ‘a’, la función devuelve 0. Se pide:
d) Programar utilizando el ensamblador del MIPS32 el código de la función Vocales.
e) Indique en qué registro se ha de pasar el argumento a la función y en qué registro se debe recoger el
anterior).
resultado.
f) Dado el siguiente fragmento de programa:
cadena: .asciiz “Hola”
.globl main
.data
.text
main:
6
incluya en el main anterior, las sentencias en ensamblador necesarias para poder invocar a la función
Vocales implementada en el apartado a) e imprimir por pantalla el valor que devuelve la función. El
objetivo es imprimir el número de veces que aparece el carácter ‘a’ en la cadena “Hola”.
Ejercicio 3. Considere el siguiente esquema de procesador de 32 bits. El banco de registros incluye 32 registros.
Considere que el computador utiliza un ciclo de reloj para realizar la decodificación de la instrucción y que se
conecta a una memoria que permite realizar una operación de lectura y de escritura en un ciclo.
Memoria
principal
L
E
Bus de direcciones
Bus de datos
Bus de control
Procesador
Td
Ta
C2
C3
T4
C1
MAR
MBR
T3
Bus
interno
T1
T2
C9
RT1
0
MUX A
1
RA
RB
RC
SC
A
B
MA
Banco de
registros
E
Cod. OP
C11
RT3
Señales de control
Unidad de
Control
Señales de
interrupción
T7
C7
C8
RE
T6
C4
C5
C6
T8
RT2
RI
T5
0
1
MUX B
4
+
PC
C10
MB
ALU
Indique las operaciones elementales y las señales de control (incluyendo
Comentarios de: Exámenes resueltos (0)
No hay comentarios