Examen: Parcial 1:2025_10_15:DATOS - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 1: 2025-10-15. Datos

  • Tiempo: 50 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki y apuntes.
  • 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é

Tenemos un procesador sin memoria caché que ejecuta un programa con 6.000 instrucciones.

Al analizar nuestro programa, se determina que la distribución de instrucciones es la siguiente:

  • 40% Tipo Memoria (Mem.)
  • 30% Tipo Salto (J)
  • 30% Tipo Aritmética (R)

Los valores de CPI (Ciclos Por Instrucción) para cada tipo son:

Tipo Mem. J R
CPI 4 3 1

El procesador funciona a una frecuencia de 100 MHz.

Calcula:

a) El tiempo de ejecución del programa de prueba.


Para mejorar el rendimiento, se considera una nueva implementación del procesador que permite incrementar su frecuencia. Dicha implementación tiene los siguientes valores de CPI:

Tipo Mem. J R
CPI 6 5 2

Calcula:

b) La frecuencia a la que tendríamos que operar el nuevo procesador para que su rendimiento sea, como mínimo, igual al original.


Tras realizar pruebas, se determina que la frecuencia máxima a la que puede operar esta nueva implementación es de 150 MHz.


Calcula:

c) El tiempo de ejecución con la nueva implementación a su frecuencia máxima.

d) ¿Qué procesador (el original o la nueva implementación) nos interesa más? ¿Cuántas veces es más rápido que el otro?


Utiliza los datos (Frecuencia y CPI) del procesador más eficiente para las siguientes preguntas.


e) Calcula el tiempo de acceso a memoria, sabiendo que este corresponde a un 80% del tiempo total que tarda en ejecutarse una instrucción de tipo memoria (Mem.).


Este tiempo calculado es el de acceso a la memoria principal. Para mejorarlo, se evalúa la introducción de una memoria caché de 2 niveles con las siguientes características:

  • Caché L1: Tiempo de acceso de 2 ns y una tasa de fallos del 11%.
  • Caché L2: Tiempo de acceso de 8 ns y una tasa de fallos del 6%.

Calcula:

f) El nuevo tiempo medio de acceso a memoria utilizando esta jerarquía de caché de dos niveles.


Solución al problema

a) El tiempo de ejecución del programa de prueba

Para calcular el tiempo de ejecución, primero necesitamos saber el número total de ciclos de reloj que consume el programa.

  1. Calculamos el número de instrucciones de cada tipo:

    • Instrucciones de Memoria (Mem.): 6.000 * 40% = 2.400 instrucciones
    • Instrucciones de Salto (J): 6.000 * 30% = 1.800 instrucciones
    • Instrucciones Aritméticas (R): 6.000 * 30% = 1.800 instrucciones
  2. Calculamos el total de ciclos de reloj (CPI Total):

    • Ciclos Mem: 2.400 instrucciones * 4 CPI = 9.600 ciclos
    • Ciclos J: 1.800 instrucciones * 3 CPI = 5.400 ciclos
    • Ciclos R: 1.800 instrucciones * 1 CPI = 1.800 ciclos
    • Total de Ciclos: 9.600 + 5.400 + 1.800 = 16.800 ciclos
  3. Calculamos el tiempo de ejecución: El tiempo de ejecución es el número total de ciclos dividido por la frecuencia del procesador (100 MHz = 100 x 10^6 Hz). $$\text{Tiempo de Ejecución} = \frac{\text{Total de Ciclos}}{\text{Frecuencia}} = \frac{16.800}{100 \times 10^6 \text{ Hz}} = 168 \times 10^{-6} \text{ s}$$

    Respuesta: El tiempo de ejecución del programa es de 168 µs (microsegundos).


b) La frecuencia a la que tendríamos que operar el procesador para que nos compense utilizar esta nueva implementación.

Para que la nueva implementación compense, debe ser al menos igual de rápida que la original. Calculamos la frecuencia necesaria para igualar el tiempo de ejecución de 168 µs.

  1. Calculamos el total de ciclos de la nueva implementación:

    • Ciclos Mem (Nueva): 2.400 instrucciones * 6 CPI = 14.400 ciclos
    • Ciclos J (Nueva): 1.800 instrucciones * 5 CPI = 9.000 ciclos
    • Ciclos R (Nueva): 1.800 instrucciones * 2 CPI = 3.600 ciclos
    • Total de Ciclos (Nueva): 14.400 + 9.000 + 3.600 = 27.000 ciclos
  2. Calculamos la frecuencia de equilibrio: $$\text{Frecuencia} = \frac{\text{Total de Ciclos}}{\text{Tiempo de Ejecución}} = \frac{27.000}{168 \times 10^{-6} \text{ s}} \approx 160.714.285 \text{ Hz}$$

    Respuesta: Tendríamos que operar el procesador a una frecuencia de, al menos, 160,71 MHz para que la nueva implementación sea igual de rápida que la original.


c) El tiempo de ejecución de esta nueva implementación

Ahora calculamos el tiempo de ejecución de la nueva implementación con la frecuencia máxima que se nos indica (150 MHz).

$$\text{Tiempo de Ejecución (Nueva)} = \frac{\text{Total de Ciclos (Nueva)}}{\text{Frecuencia Máxima}} = \frac{27.000}{150 \times 10^6 \text{ Hz}} = 180 \times 10^{-6} \text{ s}$$

Respuesta: El tiempo de ejecución de la nueva implementación a 150 MHz es de 180 µs.


d) Indica qué procesador nos interesa más y cuántas veces es mejor que el otro.

Comparamos los tiempos de ejecución de ambos procesadores:

  • Procesador Original: 168 µs
  • Nueva Implementación (a 150 MHz): 180 µs

El procesador con el menor tiempo de ejecución es el mejor. Para saber cuántas veces es mejor, dividimos el tiempo del más lento entre el tiempo del más rápido (esto se conoce como speedup o mejora).

$$\text{Mejora} = \frac{\text{Tiempo del más lento}}{\text{Tiempo del más rápido}} = \frac{180 \text{ µs}}{168 \text{ µs}} \approx 1.0714$$

Respuesta: Nos interesa más el procesador original, ya que es aproximadamente 1,07 veces más rápido que la nueva implementación operando a 150 MHz.


e) Calcula el tiempo de acceso a memoria

Utilizamos los datos del procesador que más nos interesa, es decir, el original (Frecuencia = 100 MHz, CPI Mem. = 4).

El enunciado nos dice que es el 80% del tiempo de ejecución de UNA instrucción de tipo Mem, por lo que calculamos el tiempo que tarda en ejecutarse una instrución. Para ello:

  1. Calculamos el periodo del ciclo de reloj (T): $$T = \frac{1}{\text{Frecuencia}} = \frac{1}{100 \times 10^6 \text{ Hz}} = 10 \times 10^{-9} \text{ s} = 10 \text{ ns}$$

  2. Calculamos el tiempo que tarda una instrucción de memoria: $$\text{Tiempo Instrucción Mem.} = \text{CPI Mem.} \times T = 4 \times 10 \text{ ns} = 40 \text{ ns}$$

  3. Calculamos el tiempo de acceso a memoria (80% del tiempo anterior): $$\text{Tiempo Acceso Memoria} = 40 \text{ ns} \times 80% = 32 \text{ ns}$$

    Respuesta: El tiempo de acceso a la memoria principal es de 32 ns.


f) Calcula el nuevo tiempo medio de acceso a memoria utilizando esta caché de dos niveles

El Tiempo Medio de Acceso a Memoria para un sistema con caché de dos niveles se calcula con la siguiente fórmula:

$$ t_{medio} = T_{L1} + \text{TasaFallos}{L1} \times (T{L2} + \text{TasaFallos}_{L2} \times \text{Penalizacion}) $$

Donde:

  • $T_{L1}$: Tiempo de acceso a caché L1 = 2 ns
  • $\text{TasaFallos}_{L1}$: Tasa de fallos de L1 = 11% = 0.11
  • $T_{L2}$: Tiempo de acceso a caché L2 = 8 ns
  • $\text{TasaFallos}_{L2}$: Tasa de fallos de L2 = 6% = 0.06
  • Penalización: Tiempo de acceso a memoria principal = 32 ns (calculado en el apartado anterior).

Sustituimos los valores en la fórmula:

$t_{medio} = 2\text{ ns} + 0.11 \times (8\text{ ns} + 0.06 \times 32 ns) = 3.0912\text{ ns}$

Respuesta: El nuevo tiempo medio de acceso a memoria con la caché de dos niveles es de 3,0912 ns.

Autores

Licencia

Enlaces