1er Control Arquitectura de Computadors Curs 2021-2022 Q1
COGNOMS:
NOM:
IMPORTANTE leer atentamente antes de empezar el examen: Escriba los apellidos y el nombre antes de empezar el
examen. Escriba un solo carácter por recuadro, en mayúsculas y lo más claramente posible. Es importante que no haya
tachones ni borrones y que cada carácter quede enmarcado dentro de su recuadro sin llegar a tocar los bordes. Use un
único cuadro en blanco para separar los apellidos y nombres compuestos si es el caso. No escriba fuera de los recuadros.
Problema 1. (5 puntos)
Dado el siguiente código escrito en C, que compilamos para un sistema linux de 32 bits:
typedef struct { typedef struct {
char a[3]; s1 u[10];
char b[3]; char v;
short c[2]; short w[2];
} s1; int x;
} s2;
a) Dibuja cómo quedarían almacenadas en memoria las estructuras s1 y s2, indicando claramente los
desplazamientos respecto al inicio, el tamaño de todos los campos y el tamaño de los structs.
b) Escribe UNA ÚNICA INSTRUCCIÓN que permita mover x.u[5].b[1] al registro %dh, siendo x una variable de tipo s2
cuya dirección está almacenada en el registro %ecx.
Indica claramente la expresión aritmética utilizada para el cálculo de la dirección.
1/4
1er Control Arquitectura de Computadors Curs 2021-2022 Q1
Dado el siguiente código escrito en C, que compilamos para un sistema linux de 32 bits:
int examen(char b[2][3], char c, short d) {
char y[2][3];
short z;
short w;
int x;
. . .
x=examen(y,y[0][1],w);
. . .
}
c) Dibuja el bloque de activación de la rutina examen, indicando claramente los desplazamientos respecto a %ebp y
el tamaño de todos los campos.
d) Traduce a ensamblador x86 la instrucción x=examen(y,y[0][1],w); que se encuentra en el interior de la
subrutina, usando el mínimo número de instrucciones.
2/4
1er Control Arquitectura de Computadors Curs 2021-2022 Q1
COGNOMS:
NOM:
Problema 2. (5 puntos)
Un programa P tiene un 90% del código que es perfectamente paralelizable.
a) Calcula el numero mínimo de procesadores para conseguir un speed-up de 5 en el programa P.
Cada CPU funciona a un frecuencia de 3 GHz. Se ha ejecutado el programa P secuencial en un simulador con una única
CPU ideal donde todos los accesos a memoria tardan un ciclo. Dicho programa ejecuta 6x109 instrucciones, realiza 3x109
operaciones de punto flotante y tarda 9x109 ciclos.
b) Calcula el CPI ideal (CPIID) y el tiempo de ejecución en segundos (Texec) del programa P en este sistema ideal.
c) Calcula los MIPS y MFLOPS en dicho sistema ideal.
La implementación (CPUR) de dicha CPU dispone de una cache con una política de escritura Copy Back y Write Allocate.
En caso de acierto en la cache el tiempo de acceso es de 1 ciclo. En caso de fallo, el tiempo de penalización es de 75 ciclos
para reemplazar un bloque NO modificado y de 150 ciclos para reemplazar un bloque modificado.
El programa P realiza 9,6x109 accesos a memoria, con una tasa de fallos (miss) del 10%. Sabemos que el 25% de los
accesos son escrituras y que la probabilidad de que un bloque haya sido modificado en cache es del 20%.
d) Calcula el tiempo medio de acceso a memoria (Tma) para el programa P en CPUR.
e) Calcula el CPI del programa P en la CPUR.
3/4
1er Control Arquitectura de Computadors Curs 2021-2022 Q1
Cada acceso a memoria principal consume 100 nanoJoules (nJ).
f) Calcula el consumo total de energía de la memoria principal causada por los fallos de cache.
Dicha CPU genera direcciones lógicas de 36 bits y direcciones físicas de 24 bits. La jerarquía completa de memoria está
compuesta por un TLB (al que se accede ANTES de acceder a la cache), la memoria cache y la memoria principal. El TLB
tiene 4 entradas y es completamente asociativo. La cache tiene un tamaño de 64 Kbytes, líneas de 64 bytes y es 4-
asociativa. El tamaño de página del sistema es de 4 KBytes
g) Calcula el número de líneas, vías y conjuntos que tiene la cache. Especifica claramente cómo has realizado los
cálculos.
La CPU lanza un acceso a la dirección lógica 0xEFABCD012 y sabemos que el contenido del TLB es:
VPN PPN
0xFABCD0 0xA00
0xEFABCD 0xB01
0xABCD01 0xC02
0xBCD012 0xD03
h) Indica a qué dirección física se accede, en qué conjunto de la cache se encuentra el dato y cuál es la etiqueta
guardada en memoria cache. Justifica la respuesta.
i) Indica el tamaño máximo que puede tener la cache para que sea posible acceder a la cache y al TLB en paralelo,
suponiendo que se mantiene el tamaño de línea y el grado de asociatividad, y que se mantienen también el resto
de parámetros de la jerarquía de memoria. Justifica la respuesta.
4/4