Examen: Parcial 1:2026_02_23:Robotica - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 1: 2025-02-24. Robótica
- Tiempo: 55 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S1-S4
Contenido
Enunciado
El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un problema
Test (5 ptos)
- Realizado a través de Aula virtual
- 10 preguntas tipo test
- Las respuesats incorrectas restan un 33% del valor de la pregunta
- Solución disponible en Aula virtual
Problema (5 ptos): Rendimiento y caché
Análisis de Rendimiento y Memoria Caché
Tenemos un procesador sin memoria caché que ejecuta un programa con 9.000 instrucciones. Al analizar nuestro programa, se determina que las instrucciones se distribuyen de la siguiente manera: 30% Tipo Memoria (Mem.), 40% Tipo J y 30% Tipo R.
Los valores de CPI para cada tipo de instrucción son:
| Tipo | Mem. | J | R |
|---|---|---|---|
| CPI | 6 | 4 | 2 |
El procesador funciona a una frecuencia de 250 MHz.
Calcula:
a) El tiempo de ejecución del programa de prueba.
Para mejorar el rendimiento, se puede realizar otra implementación del procesador que reduce el CPI medio, pero la frecuencia máxima se reduce a 150 MHz.
Dicha nueva implementación tiene los siguientes valores de CPI:
| Tipo | Mem. | J | R |
|---|---|---|---|
| CPI | 5 | 3 | 1 |
Calcula:
b) El tiempo de ejecución de esta nueva implementación.
c) Indica qué implementación nos interesa más y cuántas veces es mejor que la otra.
Utiliza los datos (Frecuencia y CPI) del procesador que más nos interesa para las siguientes preguntas.
d) Calcula el tiempo que tarda en ejecutarse una única instrucción de tipo Mem.
Este tiempo calculado asumimos que se corresponde íntegramente con el tiempo de acceso a la memoria principal. Para mejorarlo, vamos a evaluar introducir una memoria caché de 2 niveles.
El tiempo de acceso al primer nivel (L1) de dicha memoria caché es de 3 ns y la tasa de fallos calculada para el programa probado es del 12%. Para el segundo nivel (L2), el tiempo de acceso a la memoria caché es de 9 ns y la tasa de fallos es del 5%.
Calcula:
e) Calcula el nuevo tiempo medio de acceso a memoria utilizando esta caché de dos niveles.
Solución al problema
a) El tiempo de ejecución del programa de prueba
Primero calculamos el número exacto de instrucciones de cada tipo, sabiendo que el programa tiene un total de 9.000 instrucciones:
Instrucciones tipo Memoria: 30% de 9.000 = 2.700 instrucciones
Instrucciones tipo J: 40% de 9.000 = 3.600 instrucciones
Instrucciones tipo R: 30% de 9.000 = 2.700 instrucciones
A continuación, multiplicamos la cantidad de instrucciones de cada tipo por su CPI correspondiente para obtener los ciclos de reloj de cada grupo:
Ciclos para Memoria: 2.700 x 6 = 16.200 ciclos
Ciclos para J: 3.600 x 4 = 14.400 ciclos
Ciclos para R: 2.700 x 2 = 5.400 ciclos
Sumamos todos los valores para obtener el número total de ciclos que requiere el programa completo:
Ciclos totales = 16.200 + 14.400 + 5.400 = 36.000 ciclos
Finalmente, calculamos el tiempo de ejecución dividiendo los ciclos totales entre la frecuencia del procesador (250 MHz):
Tiempo de ejecución = 36.000 / 250.000.000 Hz = 0,000144 segundos (144 microsegundos)
b) El tiempo de ejecución de esta nueva implementación
Utilizamos el mismo número de instrucciones por tipo que calculamos en el apartado anterior, pero aplicando los nuevos valores de CPI de esta segunda implementación:
Ciclos para Memoria: 2.700 x 5 = 13.500 ciclos
Ciclos para J: 3.600 x 3 = 10.800 ciclos
Ciclos para R: 2.700 x 1 = 2.700 ciclos
Calculamos el nuevo número total de ciclos sumando estos valores:
Ciclos totales nuevos = 13.500 + 10.800 + 2.700 = 27.000 ciclos
Por último, calculamos el tiempo de ejecución utilizando la nueva frecuencia máxima del procesador (150 MHz):
Tiempo de ejecución nuevo = 27.000 / 150.000.000 Hz = 0,000180 segundos (180 microsegundos)
c) Indica qué implementación nos interesa más y cuántas veces es mejor que el otro
Nos interesa más la primera implementación (la original a 250 MHz) porque requiere menos tiempo para completar la ejecución del programa (144 microsegundos frente a 180 microsegundos).
Para saber cuántas veces es mejor, dividimos el tiempo mayor entre el tiempo menor:
Rendimiento Relativo = 180 / 144 = 1,25 veces mejor
d) Calcula el tiempo que tarda en ejecutarse una única instrucción de tipo Mem
Utilizaremos los datos del procesador original a 250 MHz, ya que es el que nos ha interesado por su mejor rendimiento.
Sabemos que una instrucción de tipo Memoria requiere 6 ciclos de reloj en este procesador.
Tiempo instrucción Memoria = (CPI x I) / F
Tiempo instrucción Memoria = (6 x 1) / 250 MHz = 24 ns
Este valor representa nuestro tiempo base de acceso a la memoria principal.
e) Calcula el nuevo tiempo medio de acceso a memoria utilizando esta caché de dos niveles
Para calcular el Tiempo Medio de Acceso a Memoria con dos niveles de caché utilizamos la siguiente fórmula base:
T = Tiempo acceso L1 + (Tasa fallos L1 x Penalización L1)
La Penalización L1 es el tiempo que se tarda en resolver un fallo acudiendo al siguiente nivel, calculado como:
Penalización L1 = Tiempo acceso L2 + (Tasa fallos L2 x Tiempo acceso Memoria Principal)
Sustituimos los valores calculados y los proporcionados en el enunciado:
Tiempo acceso L1 = 3 ns
Tasa fallos L1 = 12% (0,12)
Tiempo acceso L2 = 9 ns
Tasa fallos L2 = 5% (0,05)
Tiempo acceso Memoria Principal = 24 ns (calculado en el apartado previo)
Resolvemos matemáticamente paso a paso:
Penalización L1 = 9 ns + (0,05 x 24 ns)
Penalización L1 = 9 ns + 1,2 ns = 10,2 ns
Y ahora aplicamos la primera fórmula:
TMAM = 3 ns + (0,12 x 10,2 ns)
TMAM = 3 ns + 1,224 ns = 4,224 nanosegundos
El nuevo tiempo medio de acceso a memoria con la jerarquía de caché de dos niveles es de 4,224 nanosegundos.
Autores
- Juan Ignacio Pérez
- Miguel Ángel de Miguel
- Juan González-Gómez (Obijuan)
Licencia
