Examen extraordinario 2026 - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen convocatoria Extraordinaria: 2026
- Tiempo: 1.5h
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (internet)
Ejercicio 1 (2.5 puntos)
Pregunta 1
Tenemos que elegir el procesador de un sistema empotrado de entre 3 opciones:
- Procesador A con CPI 1.5 y 5000 instrucciones.
- Procesador B con CPI 2.0 y 3000 instrucciones.
- Procesador C con CPI 1.2 y 6000 instrucciones.
Calcula el número de ciclos de reloj totales que tarda cada computador en ejecutar el programa de pruebas. A requiere Respuesta 1 Pregunta 1 ciclos, B requiere Respuesta 2 Pregunta 1 ciclos y C requiere Respuesta 3 Pregunta 1 ciclos.
Solución
El número de ciclos se obtiene multiplicando el número de instrucciones por el CPI.
- A requiere 7500 ciclos.
- B requiere 6000 ciclos.
- C requiere 7200 ciclos.
Pregunta 2
Tomando los datos del sistema empotrado con los procesadores A, B y C. Si todos los procesadores funcionasen a la misma frecuencia, indica qué computador elegirías.
Seleccione una:
- a. El procesador B, porque requiere la menor cantidad de ciclos con un total de 6000.
- b. El procesador C, porque ejecuta la mayor cantidad de instrucciones de forma eficiente.
- c. El procesador C, porque tiene el menor CPI de los tres.
- d. El procesador A, porque tiene un CPI más equilibrado.
Solución
Como el tiempo es directamente proporcional al número de ciclos cuando la frecuencia se mantiene constante, el que requiera menos ciclos será el más rápido. Respuesta correcta: a (El procesador B, porque requiere la menor cantidad de ciclos con un total de 6000.)
Pregunta 3
Con los datos de las frecuencias máximas de los tres procesadores:
- Procesador A con 2.0 GHz, CPI 1.5 y 5000 instrucciones.
- Procesador B con 3.0 GHz, CPI 2.0 y 3000 instrucciones.
- Procesador C con 1.5 GHz, CPI 1.2 y 6000 instrucciones.
Calcula el tiempo de CPU total que tarda cada computador en ejecutar el programa de pruebas. Pon el resultado en las unidades que se pide. A tarda Respuesta 1 Pregunta 3 microsegundos, B tarda Respuesta 2 Pregunta 3 microsegundos y C tarda Respuesta 3 Pregunta 3 microsegundos.
Solución
El tiempo total de CPU se calcula dividiendo los ciclos totales entre la frecuencia de reloj. Como la frecuencia está en GHz, el resultado se multiplica por un millón para obtener microsegundos.
- A tarda 3.75 microsegundos.
- B tarda 2.00 microsegundos.
- C tarda 4.80 microsegundos.
Pregunta 4
A partir de los datos obtenidos en los apartados anteriores. Indica qué computador es el más rápido y cuánto más rápido con respecto al segundo más rápido.
Solución
Con los resultados anteriores vemos que B es el que menos tarda (2.00 microsegundos), seguido de A (3.75 microsegundos). Para saber cuánto más rápido es, dividimos el tiempo del segundo entre el tiempo del primero (3.75 / 2.00).
- El procesador B es el más rápido, siendo 1.875 veces más rápido que el procesador A, que es el segundo más rápido.
Pregunta 5
Suponiendo que no podemos modificar ni el CPI ni la frecuencia de reloj del computador C. Indica cómo podríamos mejorar sus resultados para que termine antes el programa.
Seleccione una:
- a. Aumentando el número de instrucciones para aprovechar mejor el paralelismo.
- b. Utilizando lenguajes de alto nivel más eficientes como python.
- c. Disminuyendo los ciclos de reloj por instrucción mediante segmentación.
- d. Reduciendo el número de instrucciones del programa mediante un compilador más eficiente.
Solución
Partiendo de la fórmula del tiempo de CPU, si el CPI y la frecuencia son constantes intocables, la única opción restante para reducir el tiempo de CPU es bajar el contador de instrucciones. Respuesta correcta: d (Reduciendo el número de instrucciones del programa mediante un compilador más eficiente.)
Ejercicio 2 (2.5 puntos)
Tenemos un computador de 32 bits que dispone de 32 registros de propósito general (x0 a x31). La ordenación que usa es little endian. Para acceder a los datos de la memoria utiliza un direccionamiento indirecto con desplazamiento. Puede acceder tanto a datos alineados como no alineados. Estas son algunas de las instrucciones disponibles:
li rd, valor: Carga del valor inmediato en el registro rd
lb rd, off(rs1): Leer un byte de memoria y guardarlo en rd
lh rd, off(rs1): Leer una media palabra de memoria y guardarla en rd
lw rd, off(rs1): Leer una palabra de memoria y guardarla en rd
sb rs1, off(rs2): Almacenar en memoria el byte que hay en rs1
sh rs1, off(rs2): Almacenar en memoria la media palabra que hay en rs1
sw rs1, off(rs2): Almacenar en memoria la palabra que hay en rs1
Pregunta 6
Este es un volcado de la memoria, correspondiente a las direcciones que comienzan en 0x1A00 y 0x1B00. Los valores están en HEXADECIMAL:
Dir 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x1A00 11 12 13 14 15 2F 2E 0D 0C 0B 0A BA AB CA AC BB
0x1B00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Indica el valor de los registros en formato hexadecimal empezando por 0x cuando se ejecutan las siguientes instrucciones secuencialmente:
li x1, 0x1A04
lb x2, 7(x1)
lh x3, 3(x1)
lw x4, 2(x1)
Solución
- x1 toma directamente el valor inmediato cargado: 0x1A04
- Para x2 sumamos el desplazamiento 7 a la base 0x1A04 obteniendo la dirección 0x1A0B. El byte en esa posición es BA. El valor sin tener en cuenta el signo es 0xBA.
- Para x3 sumamos el desplazamiento 3 a la base 0x1A04 obteniendo la dirección 0x1A07. Al leer una media palabra (2 bytes) en little endian desde 0x1A07 (0D) y 0x1A08 (0C), el resultado es 0x0C0D.
- Para x4 sumamos el desplazamiento 2 a la base 0x1A04 obteniendo la dirección 0x1A06. Al leer una palabra completa (4 bytes) en little endian desde 0x1A06 (2E), 0x1A07 (0D), 0x1A08 (0C) y 0x1A09 (0B), el resultado es 0x0B0C0D2E.
Pregunta 7
Suponiendo que inicialmente los registros contienen los valores:
- x1 = 0
- x2 = 0x33
- x3 = 0xAB12
- x4 = 0xCAFECAFE
Escribe el contenido hexadecimal (sin 0x) de los bytes de memoria situados en las siguientes posiciones al terminar de ejecutarse las instrucciones:
li x1, 0x1B02
sb x2, 6(x1)
sh x3, A(x1)
sw x4, 0x2(x1)
Dir 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x1B00
Solución
- x1 se actualiza al valor 0x1B02.
- La instrucción sb guarda el byte menos significativo de x2 (33) en la dirección 0x1B02 mas 6, que es 0x1B08.
- La instrucción sh guarda la media palabra de x3 (AB12) en la dirección 0x1B02 mas 0xA, que es 0x1B0C. En little endian, se guarda 12 en 0x1B0C y AB en 0x1B0D.
- La instrucción sw guarda la palabra completa de x4 (CAFECAFE) en la dirección 0x1B02 mas 2, que es 0x1B04. En little endian, se guarda FE en 0x1B04, CA en 0x1B05, FE en 0x1B06 y CA en 0x1B07.
Los valores finales en memoria para la fila 0x1B00 a 0x1B0F son:
Dir 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x1B00 00 00 00 00 FE CA FE CA 33 00 00 00 12 AB 00 00
Pregunta 8
Considerando la arquitectura del procesador y sabiendo que la anchura de memoria es de 32 bits: Indica el número total de accesos a memoria que realiza la instrucción de carga de palabra lw de la primera pregunta.
Seleccione una:
- a. Realiza 1 acceso a memoria
- b. Realiza 2 accesos a memoria
- c. Realiza 4 accesos a memoria
- d. Realiza 3 accesos a memoria
Solución
La instrucción lw x4, 2(x1) intenta leer 4 bytes a partir de la dirección 0x1A06. Sabiendo que la memoria tiene una anchura de 32 bits (4 bytes), las lecturas alineadas se realizan en múltiplos de 4 (como 0x1A04 y 0x1A08). Como la dirección 0x1A06 no está alineada a 4 bytes, la palabra solicitada cruza el límite de dos bloques de memoria de 32 bits (el que empieza en 0x1A04 y el que empieza en 0x1A08). Por tanto, el controlador de memoria necesita realizar dos lecturas independientes para obtener todos los bytes requeridos. Respuesta correcta: b (Realiza 2 accesos a memoria)
Ejercicio 3 (2.5 puntos)
Pregunta 9
Calcula el retardo de la parte combinacional (camino crítico).
Solución
El camino crítico de la parte combinacional se define por el componente o ruta que presenta el mayor tiempo de propagación. En este circuito tenemos dos rutas posibles partiendo de la salida del registro:
- Ruta hacia el sumador: Su retardo es de 5 ns.
- Ruta hacia la memoria ROM: Su retardo es de 15 ns.
El retardo máximo lo determina la ROM. Por tanto, el retardo de la lógica combinacional es 15 ns.
Pregunta 10
Calcula la frecuencia máxima de funcionamiento a la que podría funcionar.
Solución
Para calcular la frecuencia máxima debemos encontrar el camino crítico total del circuito, que incluye el tiempo del registro y la lógica combinacional más lenta. El camino más largo es el que va desde el registro hasta la salida de datos de la ROM. Tiempo total = Tiempo del registro + Tiempo de la ROM = 5 ns + 15 ns = 20 ns. Sabiendo que el periodo mínimo es 20 ns, calculamos la frecuencia a la inversa del periodo: Frecuencia = 1 / 20 ns = 50 MHz Por tanto, la frecuencia máxima a la que puede operar el circuito es de 50 MHz.
Pregunta 11
Indica el valor del registro transcurridos 3 ciclos de reloj sabiendo que la señal ena está todo el tiempo a 0 y el valor inicial del registro es 0.
Solución
La señal ena actúa como habilitación de escritura del registro. Si esta señal se mantiene a un nivel lógico bajo (0), el registro ignora cualquier dato en su entrada y conserva su estado anterior indefinidamente, sin importar cuántos ciclos de reloj transcurran. Como el valor inicial es 0, el valor almacenado en el registro será 0.
Pregunta 12
Dado el circuito del enunciado. Indica qué ocurre cuando la señal ena se pone a 1 durante varios ciclos de reloj.
Seleccione una:
- a. El registro invierte el estado lógico de todos sus bits en cada ciclo.
- b. El registro se reinicia automáticamente y vuelve a almacenar el valor inicial.
- c. El registro mantiene su valor actual sin sufrir alteraciones.
- d. El registro incrementa su valor en 4 progresivamente en cada flanco de subida.
Solución
Cuando la señal ena está a 1, el registro actualiza su valor en cada flanco de reloj con el dato presente en su entrada d. La entrada d está conectada a la salida de un sumador que toma el valor actual del registro y le suma la constante 4. Respuesta correcta: d (El registro incrementa su valor en 4 progresivamente en cada flanco de subida.)
Pregunta 13
Si inicialmente todas las señales están a 0. Indica cuánto tiempo tardará el circuito en leer la dirección de memoria 0xFC sabiendo que la señal ena está todo el tiempo a 1 y la frecuencia del reloj es de 1MHz.
Solución
El circuito actúa como un contador que suma 4 en cada ciclo. Para llegar desde la dirección inicial 0 hasta la dirección 0xFC (que equivale a 252 en base decimal), necesitamos averiguar cuántos incrementos son necesarios. Número de ciclos = 252 / 4 = 63 ciclos. Dado que la frecuencia del reloj es 1 MHz, el periodo de cada ciclo es exactamente 1 microsegundo. Tiempo total = 63 ciclos multiplicados por 1 microsegundo por ciclo = 63 microsegundos. El registro tardará 63 microsegundos en leer la dirección de memoria 0xFC.
Ejercicio 4 (2.5 puntos)
Se ha construido el procesador NanoRISC-V monociclo cuyo esquema se muestra en la figura. El ingeniero Hardware nos ha proporcionado los siguientes datos sobre los componentes usados:
| Componente | Retardo |
|---|---|
| Memoria de instrucciones | 150ps |
| Sumador | 90ps |
| ALU | 150ps |
| Memoria de datos | 250ps |
| Banco de registros | 110ps |
| Registro PC | 50ps |
Pregunta 14
Se ha construido el procesador NanoRISCV monociclo. Calcula el retardo de las fases Fetch y Decodificación a partir de los datos de los componentes.
Solución
- La fase Fetch requiere leer el contador de programa y la memoria de instrucciones. Sumando sus retardos obtenemos 50 ps mas 150 ps, lo que resulta en 200 ps.
- La fase de Decodificación implica principalmente la lectura del banco de registros, cuyo retardo es de 110 ps.
Por tanto, el retardo de Fetch es de 200 ps y el de Decodificación es de 110 ps.
Pregunta 15
Basándote en la arquitectura del procesador NanoRISCV monociclo. Calcula el retardo total de la instrucción addi x0, x0, 0.
Solución
Esta instrucción aritmética utiliza las fases de Fetch, Decodificación y Ejecución. El camino que siguen los datos pasa por el registro PC (50 ps), la memoria de instrucciones (150 ps), el banco de registros (110 ps) y la ALU (150 ps). Como no accede a memoria de datos, el camino termina ahí. Sumando estos tiempos: 50 mas 150 mas 110 mas 150 resulta en un retardo total de 460 ps.
Pregunta 16
Considerando los retardos individuales de los componentes del procesador NanoRISCV. Calcula el retardo total de la instrucción ld x5, 0x100(x2).
Solución
La instrucción de carga en memoria es la más larga, ya que utiliza todas las etapas del procesador monociclo. El camino crítico suma el tiempo del registro PC (50 ps), la memoria de instrucciones (150 ps), la lectura del banco de registros (110 ps), la ALU para calcular la dirección (150 ps) y el acceso a la memoria de datos (250 ps). Sumatoria total: 50 mas 150 mas 110 mas 150 mas 250 da como resultado 710 ps.
Pregunta 17
Con los datos teóricos de retardo de todas las etapas del procesador NanoRISCV monociclo. Indica cuál es la frecuencia máxima de funcionamiento de este procesador.
Solución
La frecuencia máxima está limitada por el camino crítico, que corresponde a la instrucción más lenta calculada en la pregunta anterior (710 ps). Frecuencia = 1 / Periodo = 1 / 710 ps. Para pasar a MHz calculamos 1000000 dividido por 710, lo que da aproximadamente 1408.45 MHz.
Pregunta 18
Al fabricar los procesadores un fallo en el proceso hace que el multiplexor controlado por la señal MemtoReg tenga un retardo de 10ps. Indica si este error afectará a la frecuencia máxima y por qué.
Seleccione una:
- a. No afecta porque la instrucción más lenta de la arquitectura no utiliza este multiplexor en su ejecución.
- b. No afecta porque el retardo añadido por el multiplexor queda oculto al ejecutarse en paralelo con el acceso a la memoria de datos.
- c. Sí afecta porque el multiplexor se encuentra dentro del camino crítico alargando el ciclo y reduciendo la frecuencia máxima.
- d. Sí afecta pero únicamente altera el consumo de potencia dinámica manteniendo intacta la frecuencia máxima de reloj original.
Solución
El multiplexor MemtoReg se encuentra al final del ciclo de datos, seleccionando qué valor se escribe de vuelta en el banco de registros. En instrucciones como la carga (ld), el dato proveniente de la memoria de datos debe atravesar este multiplexor obligatoriamente. Como la instrucción de carga ya define el camino crítico del circuito (el más lento), añadir retardo a cualquiera de sus componentes alargará el ciclo total de reloj, disminuyendo así la frecuencia máxima. Respuesta correcta: c (Sí afecta porque el multiplexor se encuentra dentro del camino crítico alargando el ciclo y reduciendo la frecuencia máxima.)
Autores
Licencia
