Examen: Parcial 3:2024_12_19:Teleco - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 3: 2024-12-19. Teleco

  • 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
  • 8 preguntas tipo test
  • Las respuesats incorrectas restan un 33% del valor de la pregunta
  • Solución disponible en Aula virtual

Problema (5 ptos): Computador nanoRiscV

Tenemos un computador nRV como el estudiado.

Debido a un fallo de fabricación, los cables de los buses de las salidas de las memorias añaden un retardo de 10ps. 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:

  • Memoria de instrucciones: 355ps
  • Sumador: 240ps
  • ALU (Suma): 220ps
  • ALU (Resta): 230ps
  • ALU (AND OR): 210ps
  • Memoria de datos: 380ps
  • Banco de registros: 130ps
  • Registro PC: 55ps

El resto de retardos se consideran despreciables (0 ps)

monociclo

Se pide:

a) Calcula el retardo de las fases Fetch y Decodificación
b) Calcula el retardo de la instrucción add x2, x0, x3
c) Justifica el valor del retardo de la fase WB para la instrucción anterior
d) Calcula el retardo de la instrucción ld x5, 0x108(x0)
e) Calcula el retardo de la instrucción beq x0, x0, 0
f) Cuál es la frecuencia máxima de funcionamiento de este procesador?

Incluye el cálculo intermedio para obtener los resultados

Contesta utilizando la plantilla en el texto en linea

Solución al problema

a) La fase de fetch transcurre desde el final del ciclo anterior (donde se actualiza el estado de procesador y por tanto se inicia la escritura en el PC) hasta que tenemos la instrucción disponible (código máquina). El retardo total está dado por el retardo del registro PC (55ps) más el retardo de la memoria de instrucciones: 355ps más el retardo a la salida de la memoria por el error de construcción.

  • Retardo de Fetch: 55 + 355 + 10 = 420 ps

En la fase de Decode únicamente se considera el retardo del banco de registros, el resto son despreciables

  • Retardo de Decode: 130 ps

b) La instrucción add NO accede a memoria por lo que el tiempo de la fase de acceso a memoria es de 0 ns. En la fase de ejecutación tarda 220ps (retardo ALU Suma). La fase de writeback no se considera, ya que se realiza a la vez que la fase de decode y ejecución, por lo que cuando la fase de ejecución ha terminado, el valor calculado por el sumador ya está disponible. Sumando los retardos de todas las fases obtenemos:

  • Retardo de addi: Retardo Fetch + Retardo decodificación + retardo ejecución + retardo acceso memoria + retardo write back = 420 + 130 + 220 + 0 + 0 = 770 ps

c) El valor de WB en la instrucción add hemos dicho que es 0 porque se ejecuta a la vez que decode y ejecución, vamos a comprobarlo:

El retardo de incrementar el contador PC comienza desde que se lee la instrucción y la unidad de control determina que no es una instrucción branch (empieza a la vez que Decode)

El retardo de incrementar el PC es de 240ps (sumador)

El retardo de ID + Ex es: 130 + 220 = 350ps

Como 240ps < 350ps, determinamos que incrementar el PC se hace más rápido que las fases ID y Ex, por lo que el camino crítico es ID y Ex y El valor de WB se puede considerar 0.

(Ejercicio muy similar aqui apartado b)

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

  • Fetch: 420ps
  • Decodificación: 130ps
  • Ejecución: 220ps (suma)
  • Acceso memoria: 380 + 10 = 390ps
  • Write-back: 0ps

El cable de salida de la memoria de datos, debido al fallo de fabricación descrito en el enunciado, tenemos un retraso de 10ps que también hay que considerar. Este retardo sólo afecta a la instrucción ld, ya que el fallo está en el cable que conecta la memoria de datos con el multiplexor, y por este cable sólo "circulan" datos al leer de memoria.

  • Retardo de ld: 420 + 130 + 220 + 390 + 0 = 1160 ps

e) La instrucción beq tarda los siguientes tiempos en las fases:

  • Fetch: 420ps
  • Decodificación: 130ps
  • Ejecución: 230ps (resta)
  • Acceso memoria: 0ps
  • Write-back: 240ps

En este caso, como necesitamos esperar al resultado de la ALU para saber si se realiza la suma con 4 o con el valor inmediato, sí hay que tener en cuenta el retardo del sumador en la fase writeback

El retardo de beq es de 420 + 130 + 230 + 0 + 240 = 1020 ps

f) Para calcular la frecuencia máxima de funcionamiento hay que encontrar el caso peor, es decir la instrucción con mayor retardo, que en este caso es ld. La frecuencia se calcula como la inversa del periodo:

Frecuencia máxima = 1/1020ps = 862 MHz

Autores

Licencia

Enlaces