Examen: Parcial 3:2026_01_09:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 3: 2026-1-9. GISAM
- Fecha: 9-Enero-2026
- Tiempo: 1 hora
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki
- Temario: S9,S10,S11 y S12
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): Problema de Computador nanoRiscV
Tenemos un computador nano-RISCV modificado, como el mostrado en la siguiente figura
El fabricante nos proporciona los retardos de los siguientes elementos:
- Memoria ROM: 10ns
- Fase de decodificación: Retardo de 5ns
- Fase de ejecución: 5ns
- Fase de Write-back: 0 ns
El resto de retardos se consideran despreciables (0 ns)
Responde a las siguientes preguntas, justificando las respuestas
a) (1 pto) Describe brevemente el computador construido, haciendo hincapié en sus diferencias con el nano-RISCV completo visto en la asignatura
b) (1 pto) Calcula el retardo de la fase de Fetch
c) (1 pto) Calcula el tiempo que tarda la instrucción ld t1, 0x100(zero)
d) (1 pto) Calcula la frecuencia máxima de funcionamiento
e) (1 pto) Indica el valor de los registros t0, t1 y t2 tras la ejecución de este programa:
li t0, 5
sd t0, 0x100(zero)
ld t1, 0x100(zero)
ld t2, 0x200(t1)
Solución
a) El computador nano-RV construido tiene la capacidad de ejecutar las instrucciones que están almacenadas en su memoria ROM, igual que el nano-RV completo. Sin embargo NO tiene ninguna memoria RAM conectada, por lo que no tiene la capacidad de utilizar variables
Todas las instrucciones funcionarán de forma similar a la versión completa, salvo las que acceden a memoria: ld y sd. Una lectura de cualquier variable, con la instrucción ld siempre devolverá el valor 1. Las escrituras con sd NO tienen ningún efecto. Serán equivalentes a una instrucción nop (que no hace nada)
b) La fase de fetch ocurre desde que sale la dirección del registro PC hasta que se obtiene el código máquina de la instrucción. Su retardo es el del registro PC más el de la memoria ROM. Puesto que el retardo del PC es despreciable (0ns), la fase de fetch está determinada solo por el retardo de la memoria ROM: 10ns
- Retardo de Fetch: 10 ns
c) Como NO hay una memoria RAM conectada, y la entrada de datos está cableada al valor '1' (de 64 bits), el retardo de la fase de acceso a memoria es de 0 ns. El tiempo que tarda ld está determinado por la suma de los retardos de la fase fetch (10ns) + retardo decodificacion (5ns) + retardo ejecución (5ns) + acceso a memoria (0ns) + write-back (0ns). El tiempo total es de 20ns
Retardo de ld: 20ns
d) La frecuencia máxima la determina el caso peor, que es la instrucción más lenta. Sin embargo, dado que la fase de acceso a memoria es de 0ns, TODAS las instrucciones tardan el mismo tiempo: Tiempo de Fetch + Tiempo de decodificación + Tiempo de ejecución = 10 + 5 + 5 = 20. La frecuencia es por tanto 1/20ns = 50Mhz
Frecuencia máxima: 50Mhz
e) La primera instrucción asigna el valor 5 a t0, y esta valor no se modifica. t0=5 La segunda instrucción es equivalente a un 'nop', es decir, NO HACE NADA. Ni se escribe en memoria ni se modifica ningún registro diferente al PC La tercera instrucción asigna el valor 1 a t1, con independencia de la dirección de memoria a la que se acceda. t1 = 1 Con la cuarta instrucción sucede lo mismo, por lo que t2 = 1
Tras la ejecución, los registros valen: t0=5, t1=1, t2=1
Autores
- Juan González-Gómez (Obijuan)

Licencia
