Examen: Parcial 1:2025_11_19:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 2: 2025-11-19. GISAM
- Tiempo: 30 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S5-S8
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): Ordenacion/alineamiento/direccionamiento
Disponemos de un computador CISC de 32-bits que tiene 16 registros de propósito general, denominados r1-r16. Puede acceder tanto a datos alineados como no alineados, y tiene una ordenación little-endian. Utiliza direccionamiento directo para el acceso a las variables en memoria
Este es el formato de alguna de las instrucciones:
Descripción:
lb rd, dir: Leer el byte que hay en la direccióndiry guardarlo en el registrordlh rd, dir: Leer la media palabra que hay en la direcióndiry guardarla en el registrordlw rd, dir: Leer la palabra que hay en la direccióndiry guardarla en el registrordadd rd, rs1, dir: Almacenar en el registrordel valor del registrors1sumado a la variable que está en la direccióndir. La operación realizada esrd = rs1 + mem[dir]
En esta tabla se muestra el volcado, en hexadecimal, de una parte del segmento de datos:
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x10010000 | 0A | 1B | 2C | 3D | 4E | 5F | 60 | 71 | 72 | AA | BA | CB | DE | EF | F1 | 10 |
| 0x10010010 | FA | 00 | 2B | 01 | 00 | 40 | 03 | 4C | 10 | 01 | 01 | 40 | 00 | 00 | 2D | 01 |
Resuelve los siguientes apartados, aportando una justificación precisa, clara y concisa:
a) (1 pto) Indica el valor del registro r1 al ejecutarse la instrucción:
lb r1, 0x10010003
b) (1 pto) Indica el valor del registro r2 al ejecutarse la instrucción:
lh r2, 0x1001000F
c) (1 pto) Indica el valor del registro r3 al ejecutarse la instrucción:
lw r3, 0x10010005
d) (1 pto) Indica el número de accesos al segmento de datos que genera el siguiente programa:
lw r4, 0x10010017
add r5, r4, 0x1001008
e) (1 pto) Indica el tamaño en bytes del siguiente programa
lw r5, 0x10010009
lw r6, 0x1001000C
add r7, r5, 0x10010000
add r8, r6, 0x1001001C
Evaluación
Los apartartados se evalúan de manera independiente. Cada uno vale 1 punto. Se divide en dos partes: La justificación (0.5) y el resultado final (0.5)
Justificación (0.5)
La solución tiene que estar justificada de forma directa, precisa y concisa.
- Directa: Usa el camino más corto para llegar a la solución
- Precisa: Usa el lenguaje técnico aprendido en la asignatura. Usa la nomenclatura dada y Define claramente la que añadas para cada término de las ecuaciones usadas, sin ambiguedad
- Concisa: Tienes que ir al grano. Aporta sólo el texto y los datos estrictamente necesarios para entender la justificación
La justificación indica de dónde ha salido el resultado final. Debes mencionar los datos de partida y qué ecuaciones o cálculos realizas para llegar a la solución
Estos son algunos de los errores que restan puntos
- Redundancia. Enunciado repetido (-0.2). No debes volver a escribir el enunciado ni el apartado. Con indicar el número de apartado que se resuelve es suficiente
- Rodeo. Hay una forma más directa para obtener la solución (-0.2). Siempre debes elegir el camino más directo para llegar a la solución
- Nomenclatura no definida (-0.2). Utilizas un término no definido (ni tampoco es el habitual en la asignatura)
- Redundancia en unidades (-0.2). Hay conceptos que ya incluyen la unidad, como por ejemplo CPI (no hay que repetirla)
- No indicas explícitamente el nombre de lo que estás calculando (-0.2). Si estas calculando por ejemplo el tiempo de cpu, menciónalo explícitamente
- Notación ambigua (-0.2). Usas un término para denotar un concepto, cuando normalmente se usa de otra manera (Por ejemplo usar T para indicar el tiempo de cpu, cuando T se suele usar para referirse al periodo del reloj)
- Lenguaje poco preciso (-0.2)
- Lenguaje poco directo (-0.2)
- Justificación no concisa (-0.2)
Resultado numérico (0.5)
El resultado obtenido sólo será evaluado si hay una justificación. En caso de no haberla, la puntuación es de 0. Estos son algunos de los errores que restan puntos:
- No hay justificación (-0.5)
- Resultado incorrecto (-0.5)
- No utilizas los prefijos G, M, K, m, µ, n, p (-0.2)
- Solución no aproximada (-0.2). Usa los decimales justos para abordar el problema, aproximando el resultado final
- No indicas explícitamente que lo calculado es una aproximación (-0.2). Has hecho una aproximación sin mencionarlo
- Dato incorrecto (-0.2)
Solución al problema
a)
r1 = 0x3D. Lectura de un byte de la dirección 0x10010003. No aplica la ordenación ni la alineación
b)
r2 = 0xFA10. Lectura de una media palabra de la dirección 0x1001000F. Como la ordenación es Little-endian, el byte de menor peso es el de esa dirección (0x10)
c)
r3 = 0x7271605F. Lectura de una palabra de la dirección 0x10010005. Como la ordenación es little-endia, el byte de menor peso es el de esa dirección (0x5F)
d)
El número de accesos es 3
La primera instrucción genera 2 accesos a memoria, porque se lee una palabra de una dirección no alineada
La segunda instrucción genera 1 acceso, por se lee una palabra de una dirección alineada
Sabemos si es una dirección alineada si es múltiplo de 4 (el número hexadecimal acaba en 0, 4, 8 ó C)
e)
A partir del formato de las instrucciones vemos que las instrucciones de load ocupan 9 + 3 + 4 + 32 = 48 bits --> 6 bytes
Las instrucciones add ocupan: 9 + 7 + 4 + 4 + 32 = 56 bits --> 7 bytes
El tamaño del programa es 26 + 27 = 26 bytes
Autores
- Katia Leal Algara
- Juan González-Gómez (Obijuan)

Licencia
