Examen: Parcial 1:2025_10_20:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 1: 2025-20-14. GISAM

  • 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

Dentro de una empresa que se dedica a la proyección de imágenes de vídeo sobre fachadas de edificios se está desarrollando un proyecto nuevo que se denomina CUBE. Se trata de utilizar computadores empotrados para la generación de las imágenes. Se ha decidido utilizar un procesador Risc-V de 32-bits, que funciona a la frecuencia de 100Mhz, lo que garantiza que el consumo es bajo

La aplicación de generación de imágenes se ha portado a este procesador, utilizando el compilador GCC, sin utilizar ninguna optimización. Por requisitos del proyecto, necesitamos que la aplicación tarde como máximo 20ms en ejecutarse. En cada ejecución se genera un frame de video

Analizando el programa ejecutable generador por el GCC, observamos que el programa tiene 1 millón de instrucciones, y que el CPI es de 2.4

a) (1 pto) Calcula el tiempo que tarda la aplicación en ejecutarse en el procesador RISCV

b) (1 pto) Justifica si la aplicación es viable utilizando el computador del proyecto CUBE

Nos gustaría mejorar el rendimiento de la aplicación, sin tener que cambiar el computador. Por ello probamos la optimización O1 de GCC. Al usar esta optimización en la compilación, obtenemos un ejecutable con un 10% menos de instrucciones. Además, el 50% de las instrucciones obtenidas son de multiplicación

En las especificaciones del procesador RISC-V encontramos que las instrucciones de multiplicación* tardan 3 ciclos, mientras que el resto de instrucciones tardan 1.4 ciclos de media

c) (1 pto) Calcula el CPI cuando utilizamos la optimizacion O1

d) (1 pto) Calcula el tiempo que tarda la aplicación con esta optimización

e) (1 pto) Justifica si debemos o no usar esta optimización para generar el ejecutable de nuestra aplicación

Evaluación

Los apartartados se evalúan de manera independiente. Cada uno vale 1 punto. Se divide en dos partes: La justificación (0.5) y el resultado final (0.5)

Justificación (0.5)

La solución tiene que estar justificada de forma directa, precisa y concisa.

  • Directa: Usa el camino más corto para llegar a la solución
  • Precisa: Usa el lenguaje técnico aprendido en la asignatura. Define claramente la notación utilizada para cada término de las ecuaciones, sin ambiguedad
  • Concisa: Tienes que ir al grano. Aporta sólo el texto y los datos estrictamente necesarios para entender la justificación

La justificación indica de dónde ha salido el resultado final. Debes mencionar los datos de partida y qué ecuaciones o cálculos realizas para llegar a la solución

Estos son algunos de los errores que restan puntos

  • Redundancia. Enunciado repetido (-0.2). No debes volver a escribir el enunciado ni el apartado. Con indicar el número de apartado que se resuelve es suficiente
  • Rodeo. Hay una forma más directa para obtener la solución (-0.2). Siempre debes elegir el camino más directo para llegar a la solución
  • Nomenclatura no definida (-0.2). Utilizas un término no definido (ni tampoco es el habitual en la asignatura)
  • Redundancia en unidades (-0.2). Hay conceptos que ya incluyen la unidad, como por ejemplo CPI (no hay que repetirla)
  • No indicas explícitamente el nombre de lo que estás calculando (-0.2). Si estas calculando por ejemplo el tiempo de cpu, menciónalo explícitamente
  • Notación ambigua (-0.2). Usas un término para denotar un concepto, cuando normalmente se usa de otra manera (Por ejemplo usar T para indicar el tiempo de cpu, cuando T se suele usar para referirse al periodo del reloj)
  • Lenguaje poco preciso (-0.2)
  • Lenguaje poco directo (-0.2)
  • Justificación no concisa (-0.2)

Resultado numérico (0.5)

El resultado obtenido sólo será evaluado si hay una justificación. En caso de no haberla, la puntuación es de 0. Estos son algunos de los errores que restan puntos:

  • No hay justificación (-0.5)
  • Resultado incorrecto (-0.5)
  • No utilizas los prefijos G, M, K, m, µ, n, p (-0.2)
  • Solución no aproximada (-0.2). Usa los decimales justos para abordar el problema, aproximando el resultado final
  • No indicas explícitamente que lo calculado es una aproximación (-0.2). Has hecho una aproximación sin mencionarlo
  • Dato incorrecto (-0.2)

Solución explicada al problema

a)

El tiempo pedido es el tiempo de CPU. Aplicamos directamente la ecuación:

$$T_{cpu} = \frac{I.CPI}{F}$$

Datos del enunciado:

  • I = Número de instrucciones = 10⁶
  • CPI = 2.4
  • F = 100Mhz

$$ T_{cpu} = \frac{10^6\ 2.4}{100\ 10^6} = \frac{2.4}{100} = 0.024 = 24ms$$

b)

$T_{cpu} > 20ms$. El tiempo de cpu obtenido es MAYOR que el tiempo máximo permitido, por lo que NO cumple con las especificaciones. La aplicación NO ES VIABLE con este computador

c)

Calculamos los ciclos totales que tarda el programa optimizado. Sabemos que tiene un 10% menos de instrucciones, por lo que el nuevo número de instrucciones es: $I_o = I - 0.1I = 0.9I$

Ciclos totales = ciclos que tardan las instrucciones de multiplicación + ciclos que tardan el resto de instrucciones = $0.9I\ 0.5\ 3 + 0.9I\ 0.5\ 1.4 = 0.9I (0.5 \ 3 + 0.5 \ 1.4)$

$$CPI_o = \frac{Ciclos\ totales}{I_o} = 0.5 \ 3 + 0.5 \ 1.4 = 2.2$$

d)

Aplicamos directamente la ecuación del tiempo de cpu, con los nuevos valores

$$T_{cpu_o} = \frac{0.9I\ CPI_o}{F} = \frac{0.9\ 10^6 \ 2.2}{100\ 10^6} = \frac{0.9 \ 2.2}{100} = \frac{19.8}{100} = 0.0198 = 19.8ms$$

e) (1 pto)

$T_{cpu_o}=19.8ms < 20ms$. El nuevo tiempo de CPU es ahora MENOR a 20ms. Por tanto ahora sí CUMPLIMOS LOS REQUISITOS. Es obligatorio utilizar esta optimización para que la aplicación sea viable

Autores

Licencia

Enlaces