PDF de programación - Exámenes resueltos

<<>>
Imágen de pdf Exámenes resueltos

Exámenes resueltosgráfica de visualizaciones

Publicado el 14 de Enero del 2019
2.251 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
  • Links de descarga
http://lwp-l.com/pdf14848

Comentarios de: Exámenes resueltos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad