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)
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
- Miguel Ángel de Miguel
- Juan González-Gómez (Obijuan)