Examen: Parcial 3:2023_12_22:Teleco - myTeachingURJC/Arq-computadores-01 GitHub Wiki
Examen Parcial 3: 2023-12-22. 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
- 10 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 nano-RISCV como el mostrado en la siguiente figura.
Debido a un fallo de fabricación, el cable del bus Din añade un retardo de 7ps. 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: 300ps
- Sumador: 220ps
- ALU: 200ps
- Memoria de datos: 350ps
- Banco de registros: 120ps
- Registro PC: 50ps
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 addi x2, x0, 100
c) Calcula el retardo de la instrucción ld x3, 0x100(x0)
d) Calcula el retardo de la instrucción beq x0, x5, 8
e) Cuál es la frecuencia máxima de funcionamiento de este procesador?
f) Existe la posibilidad de realizar una de las siguientes mejoras: reducir en 20ps el retardo del circuito sumador, sustituyendolo por uno similar al de la ALU con menor retardo, o eliminar el retardo de 7ps producido por el cable. Si sólo podemos realizar una de las 2 mejoras, cuál de ellas nos interesa más? Calcula la nueva frecuencia máxima tras realizar dicha mejora.
Justifica tus respuestas e incluye los cálculos intermedios del retardo en cada fase.
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 (50ps) más el retardo de la memoria de instrucciones: 300ps.
La fase de fetch transcurre desde que tenemos la instrucción disponible (código máquina) hasta que tenemos una señal estable en la entrada de la ALU. El retardo total está dado únicamente por el banco de registros (120ps), ya que el retardo del resto de elementos (Unidad de control, Multiplexores, etc.) se considera despreciable según el enunciado.
- Retardo de Fetch: 50 + 300 = 350 ps
- Retardo de Decode: 120 ps
b) La instrucción addi 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 200ps (según especificaciones). 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 = 350 + 120 + 200 + 0 + 0 = 670 ps
c) La instrucción ld tarda los siguientes tiempos en las fases:
- Fetch: 350ps
- Decodificación: 120ps
- Ejecución: 200ps
- Acceso memoria: 350ps
- Write-back: 0ps
Además, en el cable de salida de la memoria de datos, debido al fallo de fabricación descrito en el enunciado, tenemos un retraso de 7ps 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: 350 + 120 + 200 + 350 + 0 + 7 = 1027 ps
d) La instrucción beq tarda los siguientes tiempos en las fases:
- Fetch: 350ps
- Decodificación: 120ps
- Ejecución: 200ps
- Acceso memoria: 0ps
- Write-back: 220ps
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 350 + 120 + 200 + 0 + 220 = 890 ps
e) 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/1027ps = 973 MHz
f) La mejora que más nos interesa será la que nos reduzca el retardo máximo del procesador. En este caso, el retardo máximo está determinado por la instrucción ld, por lo que analizamos el efecto de las dos opciones en la instrucción ld:
- La mejora de 20ps en el retardo del sumador no produce mejoras, ya que la fase writeback en la instrucción ld no se tiene en cuenta porque se realiza en paralelo a decode y ejecución, por lo que el retardo máximo sigue siendo 1027ps.
- La mejora de 7ps en el cable Din produce una reducción directa de 7ps en el retardo de ld. El nuevo retardo aplicando esta mejora es de 1020ps.
Frecuencia máxima nueva = 1/1020ps = 980 MHz
El cambio que más nos interesa es eliminar el retardo del cable Din.
Autores
- Miguel Ángel de Miguel
- Juan González-Gómez (Obijuan)