Examen: Parcial 1:2023_02_27:Robotica - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 1: 2023-02-27. Robótica

  • Tiempo: 40 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

Para el diseño de un nuevo robot móvil capaz de navegar por las ciudades, tenemos que elegir entre dos procesadores P1 y P2. Ambos procesadores tienen unas instrucciones especiales para realizar cálculos utilizados en la navegación (Instrucciones A). El resto de instrucciones componen el grupo B. La frecuencia y los CPIs se muestran en la siguiente tabla:

Procesador Frecuencia (Ghz) CPI A CPI B
P1 1 2 1
P2 1.8 2.5 1.5

Para comprobar el rendimiento de ambos procesadores se escribe un programa de pruebas de alto nivel, que al compilarlo para P1 genera 2000 instrucciones, de las cuales el 20% son de tipo A y el resto de tipo B. Al compilarlo para P2 se obtienen 1500 instrucciones, de las cuales el 30% son de tipo A y el resto de tipo B

Se pide:

a) (1 pto) Calcular los ciclos que tarda el procesador P1 en ejecutar el programa de pruebas
b) (1 pto) Calcular el tiempo que tarda el procesador P1 en ejecutar el programa de pruebas
c) (1 pto) Calcular los ciclos que tarda el procesador P2 en ejecutar el programa de pruebas
d) (1 pto) Calcular el tiempo que tarda el procesador P2 en ejecutar el programa de pruebas
e) (1 pto) ¿Qué procesador elegirías para el robot? ¿Cuánto es mejor el rendimiento de un procesador con respecto al otro?

NOTA: Justifica todas las respuestas, indicando las ecuaciones y razonamiento usados

Solución al problema

a) Al compilar el programa de pruebas para el procesador P1, se obtiene un programa en código máquina de I1=2000 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 más los ciclos que tardan las de tipo B

  • Ciclos en ejecutar las instrucciones de tipo A: CiclosA = 0.2 * I1 * 2 = 0.4 * 2000 = 800 ciclos
  • ciclos en ejecutar las instrucciones de tipo B: CiclosB = 0.8 * I1 * 1 = 0.8 * 2000 = 1600 ciclos
  • Ciclos totales = CiclosA + CiclosB = 800 + 1600 = 2400 ciclos

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

  • Tcpu1 = ciclos / F = 2400 / 1Ghz = 2400 ns = 2.4 µs

c) Al compilar el programa de pruebas para el procesador P2, tenemos un programa en código máquina de I2=1500 instrucciones. El número de ciclos lo calculamos usando las mismas ecuaciones que el apartado a

  • CiclosA = 0.3 * I2 * 2.5 = 1125 ciclos
  • CiclosB = 0.7 * I2 * 1.5 = 1575 ciclos
  • Ciclos totales = CiclosA + CiclosB = 1125 + 1575 = 2700 ciclos

d) Aplicando directamente la fórmula, calculamos el tiempo de CPU:

  • Tcpu2 = ciclos / F = 2700 / 1.8Ghz = 1500 ns = 1.5 µs

e) Como tenemos el tiempo de cpu, el que tarda menos tiempo será el que ofrezca mejor rendimiento. Por tanto, elegimos el procesador P2. Para calcular cuánto mejor es, usamos el rendimiento relativo:

  • n = R2 / R1 = Tcpu1 / Tcpu2 = 2.4 / 1.5 = 1.6 (aprox). El procesador P2 es 1.6 veces más rápido que P1 (Su rendimento es 1.6 veces mejor que P1)

Autores

Licencia

Enlaces