Examen: Parcial 3:2024_06_08:Robotica - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 3: 2024-06-08. Robótica

  • Tiempo: 55 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
  • Temario: S9, S10 y S11

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): Computador nanoRiscV

Tenemos un computador nano-RISCV como el mostrado en la siguiente figura

En el primer prototipo construido, el chip de memoria RAM no está correctamente soldado a la placa base, lo que introduce un retardo de 5ns entre el dato que sale de la memoria y su entrada en el nano-RISCV. En el esquemático se ha indicado con el componente rojo R. Los retardos introducidos por el resto de componentes se describen a continuación:

  • Registro PC: Tiene un retardo de 2ns en la escritura
  • Memoria ROM: 20ns
  • Memoria RAM: 10ns de lectura, y 37ns de escritura
  • Fase de decodificación: Retardo de 8ns
  • Fase de ejecución: 20 ns
  • Fase de Write-back: 0 ns

El resto de retardos se consideran despreciables (0 ns)

Se pide:

a) (1 pto) Calcula el retardo de la fase de acceso a memoria
b) (1 pto) Calcula el tiempo que tarda la instrucción addi t1,t0,1
c) (1 pto) Calcula el tiempo que tarda la instrucción ld t5,0(t0)
d) (1 pto) Calcula la frecuencia máxima de funcionamiento de este computador
e) (1 pto) Si ahora arreglamos el error de soldadura de manera que no se introduzca ningún retardo adicional, ¿Cual sería la nueva frecuencia máxima de funcionamiento?

Solución al problema

a) La fase de acceso a memoria transcurre desde que el procesador coloca valores estables en las salidas addr, dout y memwr, hasta que la memoria deposita datos estables en la entrada Din del procesador. Típicamente este retardo está dado por el de lectura de la RAM: 10ns. Pero a eso hay que añadirle el retardo debido al fallo en la soldadura. Por tanto, el retardo introducido en la fase de acceso a memoria es de 10ns + 5ns = 15ns

Retardo acceso a memoria: 10ns + 5ns = 15ns

b) Para conoder el retardo de la instrucción pedida, hay que calcular el de todas sus fases:

  • Fetch: Retardo del PC (escritura) + acceso a memoria rom = 2ns + 20ns = 22ns
  • Decodificación: Nos lo da el enunciado: 8ns
  • Ejecución: Nos lo da el enunciado: 20 ns
  • Acceso a memoria: La instrucción addi NO accede a memoria, por lo que el retardo es 0
  • Write-back: 0 ns (Dato del enunciado)

Por tanto, el tiempo total de la instrucción addi es la suma de los anteriores: 22 ns (fetch) + 8 ns (decod) + 20 ns (ejecucion) + 0 ns (acceso memoria) + 0 ns (write-back) = 50ns

Retardo addi t1,t0,1: 50ns

c) La instrucción ld tarda los siguientes tiempos en las fases:

  • Fetch: 22 ns (Todas las instrucciones tardan ese tiempo en fetch)

  • Decodificación: 8 ns

  • Ejecución: 20ns

  • Acceso memoria: 15ns (Calculado en apartado a)

  • Write-back: 0ns

  • Retardo de ld: 22 + 8 + 20 + 15 = 65ns

d) Para calcular la frecuencia máxima de funcionamiento hay que encontrar el caso peor. La fase de Fetch es la misma para todas las instrucciones. El retardo de la decodificación está fijado a 8ns. También el de la ejecución (20ns) y write-back (0ns). Por tanto, todas las instrucciones tardan lo mismo (50ns) salvo la de lectura de memoria (ld), que tarda 65ns. Este es nuestro caso peor. El periodo mínimo de reloj es de 1 / 65ns, lo que nos da una frecuencia máxima de 1 / 65ns = 15.4Mhz aprox

e) Ese retardo sólo afecta a la instrucción ld, que ahora tardaría 10ns en el acceso a memoria, dando un total de 22 + 8 + 20 + 10 = 60ns. Sigue siendo el caso peor, pero ahora tarda menos.

La nueva frecuencia máxima de funcionamiento sería Fmax = 1 / 60ns = 16.7 Mhz (aprox)

Autor

Licencia

Enlaces