Examen: Parcial 1:2024_10_10:TELECO - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 1: 2024-10-11. Teleco

  • Tiempo: 50 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
  • Temario: S1-S3

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 25% del valor de la pregunta
  • Solución disponible en Aula virtual

Problema (5 ptos): Rendimiento

Necesitamos mejorar el rendimiento de un sistema empotrado, que incorpora un procesador con las siguientes características:

Frecuencia = 3.2GHz, CPI_A = 2.1, CPI_B = 3, CPI_C = 1.5

El código que se ejecuta en el sistema, al compilarse, se generan 90000 instrucciones de código máquina, repartidas de la siguiente manera:

Tipo A: 20%, Tipo B: 45%, Tipo C: 35%

Para mejorar el rendimiento del sistema, tenemos las siguientes opciones:

Opción A: Cambiar de compilador:

Se reducirían en un 10% el número de instrucciones generadas al compilar

Se repartirían de la siguiente manera: Tipo B: 50%, Tipo C: 50%

Opción B: Mejorar la implementación del Procesador

Utilizando una nueva técnica, podemos reducir los retardos de algunos componentes del procesador y aumentar en un 10% la Frecuencia máxima del procesador.

Se pide:

a) Calcula el número de ciclos del programa de prueba para el procesador/compilador original.

b) Calcula el tiempo de ejecución del programa de prueba para el procesador/compilador original.

c) Calcula el número de ciclos del programa de prueba para el nuevo compilador (Opción A)

d) Calcula el tiempo de ejecución del programa de prueba para el nuevo compilador (Opción A)

e) Calcula el tiempo de ejecución del programa de prueba para el procesador/compilador original, pero mejorando la implementación del procesador (Opción B) f) Calcula el rendimiento relativo entre el procesador/compilador original y la Opción A (n_a) y el rendimiento relativo entre el procesador/compilador original y la Opción B (n_b). Determina, si sólo podemos elegir una opción, cuál es la mejor y por qué

Solución al problema

a) Al compilar el programa de pruebas para el procesador original, se obtiene un programa en código máquina de 90 000 instrucciones. El número total de ciclos que tarda en ejecutarse será igual a los ciclos que tardan en ejecutarse las instrucciones de tipo A (20%) más los ciclos que tardan las de tipo B (45%) más los ciclos que tardan las de tipo C (35%).

  • Ciclos = Instrucciones x CPI
  • Ciclos en ejecutar las instrucciones de tipo A: CiclosA = 0.2 * 90000 * 2.1 = 37800 ciclos
  • ciclos en ejecutar las instrucciones de tipo B: CiclosB = 0.45 * 90000 * 3 = 121500 ciclos
  • ciclos en ejecutar las instrucciones de tipo C: CiclosC = 0.35 * 90000 * 1.5 = 47250 ciclos
  • Ciclos totales = CiclosA + CiclosB + CiclosC = 37800 + 121500 + 47250 = 206550 ciclos

b) Como conocemos la frecuencia del procesador y los ciclos, aplicamos directamente la fórmula para calcular el tiempo de CPU:

  • Tcpu = ciclos / F = 206550 / 3.2Ghz = 64546 ns = 64 µs

c) Al compilar el programa de pruebas con el nuevo compilador, se reducen el número de instrucciones en un 10%.

Instrucciones = 0.9 * 90000 = 81000

El número total de ciclos que tarda en ejecutarse será igual a los ciclos que tardan en ejecutarse las instrucciones de tipo B (50%) más los ciclos que tardan las de tipo C (50%), ya que el nuevo compilador sólo genera instrucciones de tipo B y C.

  • ciclos en ejecutar las instrucciones de tipo B: CiclosB = 0.5 * 81000 * 3 = 121500 ciclos
  • ciclos en ejecutar las instrucciones de tipo C: CiclosC = 0.5 * 81000 * 1.5 = 182250 ciclos
  • Ciclos totales = CiclosB + CiclosC = 121500 + 182250 = 182250 ciclos

d) Como el procesador sigue siendo el mismo y sólo hemos cambiado el compilador, la frecuencia del procesador es la misma. Aplicamos directamente la fórmula para calcular el tiempo de CPU:

  • Tcpu_a = ciclos / F = 182250 / 3.2Ghz = 56953 ns = 56 µs

e) Si utilizamos la opción B, la frecuencia del procesador cambia y aumenta en un 10%

F_b = 1.1 * 3.2 = 3.52 GHz

El número de ciclos es el calculado en el apartado a), ya que estamos utilizando el compilador original. Aplicamos directamente la fórmula para calcular el tiempo de CPU:

  • Tcpu_b = ciclos / F = 206550 / 3.52Ghz = 58678 ns = 58 µs

f) Para calcular el rendimiento relativo, dividimos el tiempo del procesador original entre el tiempo de la mejora con la opción A y B, de esta manera, el resultado es positivo.

  • n_a = 64546 / 56953 = 1.13

  • n_b = 64546 / 58678 = 1.1

Si utilizamos la opción A, mejoramos el rendimiento 1.13 veces. Con la opción B, lo mejoramos con un factor de 1.1. Por lo tanto, la opción más favorable es la A, que es con la que obtenemos mayor rendimiento.

Autores

Licencia

Enlaces