Examen: Parcial 3:2023_12_20:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki
Examen Parcial 3: 2023-12-20. GISAM
- Tiempo: 55 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S9-S10
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
Debido a un fallo de fabricación, el cable de bus Addr que conecta con la memoria RAM añade un retardo de 7ns. 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 ROM: 20ns
- Memoria RAM: 13ns de lectura, y 33ns de escritura
- Fase de decodificación: Retardo de 10ns
- Fase de ejecución: 12ns
- 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 Fetch
b) (1 pto) Calcula el tiempo que tarda la instrucción and t1,t0,zero
c) (1 pto) Calcula el tiempo que tarda la instrucción ld t0,0(zero)
d) (1 pto) Calcula la frecuencia máxima de funcionamiento de este computador
e) (1 pto) Si ahora arreglamos el error del cable de manera que no introduzca ningún retraso, ¿Cual sería la nueva frecuencia de funcionamiento?
Solución al problema
a) Puesto que el retardo del PC es despreciable (0ns), la fase de fetch está determinada por el retardo de la memoria ROM: 20ns
- Retardo de Fetch: 20 ns
b) La instrucción and 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 12ms (según especificaciones). Sumando los retardos de todas las fases obtenemos:
- Retardo de and: Retardo Fetch + Retardo decodificación + retardo ejecución + retardo acceso memoria + retardo write back = 20 + 10 + 12 + 0 + 0 = 42ns
c) La instrucción ld tarda los siguientes tiempos en las fases:
- Fetch: 20
- Decodificación: 10
- Ejecución: 12
- Acceso memoria: 13 + 7ns = 20ns
- Write-back: 0ns
El retardo del bus Addr influye sólo en el acceso a memoria, por lo que el retardo es el de la RAM + 7ns = 20ns
- Retardo de ld: 20 + 10 + 12 + 20 = 62ns
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 10ns. Y La fase de ejecución a 12.
El caso pero, por tanto, es la instrucción de load (ld), que además de los tiempos anteriores añade el acceso a memoria: 20ns
Por tanto, El periodo mínimo del reloj es de 62ns. Lo que nos da una frecuencia máxima de: 1 / 62ns = 16.1 Mhz (aprox)
e) En este caso se ve afectado sólo el ciclo de acceso a memoria, que pasaría a ser de 13 ns. El caso peor sigue siendo la instrucción de load que ahora tendrá un retardo de 20 + 10 + 12 + 13 = 55ns.
La nueva frecuencia de funcionamiento es de 1 / 55ns = 18.2 Mhz (aprox)
Autores
- Katia Leal Algara
- Juan González-Gómez (Obijuan)