Está en la página 1de 3

Centro Universitario de Mérida

Apellidos: Nombre: DNI:

1.- Se tiene un computador con ancho de palabra de 32 bits y 32 registros de 32 bits


cada uno. Este computador tiene 64 instrucciones diferentes y sus modos de
direccionamiento son los siguientes:

§ Directo
§ Indirecto
§ Relativo directo a registro de base
§ Relativo directo a contador de programa

a) Diseñar los dos formatos de las instrucciones de 2 operandos de modelo registro-


memoria

b) Supuesto que cada dirección de memoria identifica un byte, ¿Qué tamaño de


memoria (expresado en palabras) es accesible en los casos siguientes?
§ Utilización de direccionamiento absoluto
§ Utilización de direccionamiento relativo a base.

(1.5 puntos).

2.- Se va a mejorar una máquina y se barajan 2 posibilidades: hacer que las operaciones
de multiplicación tarden 4 veces menos o hacer que la ejecución de las de acceso a
memoria tarden 2 veces menos. Se ejecuta un programa de prueba antes de realizar la
mejora y se obtienen las siguientes medidas del tiempo de uso de la CPU:

§ El 20% del tiempo es utilizado para multiplicar.


§ El 50% del tiempo se usa para acceder a memoria.
§ El 30% restante se emplea en otro tipo de tareas.

¿Cuál será el incremento en la velocidad si solo se mejora la multiplicación? ¿Y si solo


se mejoran los accesos a memoria? ¿Y si se realizan ambas mejoras?

(1.5 puntos).

3.- 3.- Deseamos añadir al repertorio inicial de instrucciones de la CPU, modelo


monociclo, la instrucción jm (jump memory). La instrucción jm carga una palabra desde
una dirección efectiva de memoria ($rs + desplazamiento) en el contador de programa
(PC). El formato de dicha instrucción es el tipo I, pero no utiliza para nada el campo rt.

PC ßMem [R[rs]+ExtSig[inm16]]

a) Realizar las modificaciones necesarias en el datapath (proporcionado en la última


hoja del examen).

b) Mostrar las palabras de control para las instrucciones: add, lw, sw, beq, jump y jm

(3 puntos).
Centro Universitario de Mérida

4.- Ejecutamos la siguiente secuencia de código en un computador MIPS segmentado:

SUB R1, R2, R3


ADD R4, R5, R6
SUB R5, R4, R8
ADD R7, R2, R3
ADD R9, R7, R3
LW R1, 10(R6)
ADD R3, R1, R4
SUB R6, R7, R8

Suponiendo que un dato se puede escribir en un banco de registros y leer su nuevo valor
en el mismo ciclo:

a) Calcular el número de ciclos necesarios para ejecutar el código si no existe


posibilidad de adelantar operandos ni reordenar código.
b) Calcular el número de ciclos necesarios si disponemos de unidad de
anticipación.
c) Reordenar el código para que el número de ciclos sea mínimo (usando unidad de
anticipación) ¿Cuántos ciclos son necesarios en ese caso?

(2 puntos).

5.- Dada la siguiente serie de direcciones de palabra: 1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4,
43, 5, 6, 9, 17, calcular la frecuencia de fallos suponiendo una caché con un tamaño
total de 8 palabras (inicialmente vacía). Etiquetar cada referencia como acierto, fallo
forzoso, de capacidad o de conflicto y mostrar el contenido final de la caché. Considerar
las siguientes organizaciones de memoria para la caché:

• Correspondencia directa.
• Correspondencia 4-asociativa.
• Correspondencia totalmente asociativa.

Aplicar una política de reemplazo LRU. Suponer que los bloques son de 1 palabra para
todos los casos.

(2 puntos).

Tiempo estimado: 2.5 horas


Centro Universitario de Mérida

desp.
izda.
I[29-0] 2 0
4 (PC+4)[29-26] 1
PC+4
Add Add 1 0
desp.
RegDst ALUres
izda.
Branch PCSrc
2
MemRead
Control MemtoReg
I[25-0] ALUOp
(desp) MemWrite
ALUSrc
RegWrite
I[31-26] Jump
I[25-21] ALU
Sel. R1 R1
zero
Memoria de Sel. R2 R2 0
instrucciones I[20-16] ALUres Dir dato
Registros 1
lec. dato
PC 1
Dir I[31-0] 0 esc. dato
I[15-11] Sel. R 0
1 Dato esc. R Memoria de datos

16 signo 32
I[15-0]
exten
dido
ALU
I[5-0] control

También podría gustarte