Repository navigation
Examen: Parcial 2:2022_11_30:GISAM

- Tiempo: 50 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S5-S8
El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un problema
- 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
Tenemos un computador de 32-bits que dispone de 16 registros de propósito general (x0-x15). La anchura de la memoria es de 32-bits. La ordenación que usa es Big-endian. Para acceder a los datos de la memoria utiliza un direccionamiento indirecto. 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 -
addi rd, rs1, valor: Almacer en rd la suma rs1 + valor -
sb rs1, (rs2): Almacenar en memoria el byte que hay en rs1, en la dirección indicada en rs2 -
sh rs1, (rs2): Almacenar en memoria la media palabra que hay en rs1, en la dirección indicada en rs2 -
sw rs1, (rs2): Almacenar en memoria la palabra que hay en rs1, en la dirección indicada en rs2
Resuelve los siguientes apartados, calculando el resultado y justificando cómo lo has obtenido
a) (2.5 ptos) Suponiendo que inicialmente los registros contienen los siguientes valores: x1=0,x2=0x0022, x3=0x3344, x4=0xBACA, x5=0xCABAFECA, indica el contenido de los 16 bytes de memoria situados desde la direción 0x2002FFF0, al ejecutarse las siguientes instrucciones. Inicialmente la memoria de datos contiene 0x00 en todas sus posiciones
li x1, 0x2002FFF0
sb x2, (x1)
addi x1,x1,1
sb x2, (x1)
addi x1,x1,6
sh x3, (x1)
addi x1,x1,2
sw x4, (x1)
li x1, 0x2002FFFF
sw x1,(x1)Indica el resultado en forma de tabla, rellenando TODOs los valores
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x2002FFF0 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
b) (2.5 ptos) Indica cuántos accesos a memoria se realizan con cada instrucción de almacenamiento (store) del programa anterior
Esta es la situación inicial: La memoria contiene 0x00 en todas sus posiciones:
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x2002FFF0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
- El registro x1 se inicializa con el valor
0x2002FFF0. Es el registro que se usa para acceder a memoria (direccionamiento indirecto) - Primer store: Se almacena el registro x1 en la dirección 0x2002FFF0. 0x22 --> (0x2002FFF0)
- Segundo store: Se almacena el mismo valor en la dirección siguiente: 0x22 --> (0x2002FFF1)
- Tercer store: Se almacena el valor 0x3344 a partir de la dirección 0x2002FFF7. Como es big endian los valores guardados son: 0x33 y 0x44
- Cuarto store: Se almacena el valor 0xBACA a partir de la dirección 0x2002FFF9. Como es big endian los valores son: 0x00, 0x00, 0xBA y 0xCA
- Quinto store: Se actualiza el registro x1 con el valor 0x2002FFFF. Se guarda la palabra en x1 (0x2002FFFF) a partir de la dirección 0x2002FFFF: Como es big endian los valores serán: 0x20, 0x02, 0xFF y 0xFF
La memoria final quedarÃa asÃ:
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x2002FFF0 | 22 | 22 | 0 | 0 | 0 | 0 | 0 | 33 | 44 | 0 | 0 | BA | CA | 0 | 0 | 20 |
| 0x20030000 | 02 | FF | FF | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Pero cómo sólo piden los 16 primeros bytes, el resultado es este:
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x2002FFF0 | 22 | 22 | 0 | 0 | 0 | 0 | 0 | 33 | 44 | 0 | 0 | BA | CA | 0 | 0 | 20 |
b) La memoria tiene una achuran de 32-bits, por lo que la dibujamos asà (Con los valores que se han escrito)
| Direccion | +0 | +1 | +2 | +3 |
|---|---|---|---|---|
| 0x2002FFF0 | 22 | 22 | ||
| 0x2002FFF4 | 33 | |||
| 0x2002FFF8 | 44 | 0 | 0 | BA |
| 0x2002FFFC | CA | 20 | ||
| 0x20030000 | 02 | FF | FF |
- Primer store: 1 acceso (es la escritura de 1 byte)
- Segundo store: 1 acceso (es la escritura de 1 byte)
- Tercer store: Se escribe una meida palabra en las direcciones 0x2002FFF7 y 0x2002FFF8: 2 accesos
- Cuarto store: Se escribe una palabra en las direcciones 0x2002FFF9, 0x2002FFFA, 0x2002FFFB y 0x0x2002FFFC: 2 accesos (Palabra 0x2002FFF8 y 0x2002FFFC)
- Quinto store: Se escribe una palabra en las direcciones 0x2002FFFF, 0x20030000, 0x2003001 y 0x2003002: 2 accesos (Palabras 0x2002FFFC y 0x2003000)
En total se necesitan realizar 8 accesos a memoria
- Katia Leal Algara
- Juan González-Gómez (Obijuan)


S1: Introducción a los computadores
S2: Computadores y Rendimiento (I)
S3: Computadores y Rendimiento (II)
S4: Memorias Caché
Ejercicios
S5: ISA. Repertorios CISC y RISC
S6: Almacenamiento de operandos. ISA-RISCV
S7: Modos de direccionamiento. Tipos de instrucciones
S8: Ejercicios
S9: Nivel de Electrónica Digital
S10: El computador NanoRisc-V
S11: NanoRISC-V Monociclo (I)
S12: NanoRISC-V Moniciclo (II). Ejercicios
S13: Procesador NanoRISC-V Multiciclo
S14: Segmentación y rendimiento
S15: NanoRISC-V segmentado
- TODO
P1: Introducción a la Pico2
P2: Rendimiento en la Pico2
P3: Memoria caché
P4: Display de 7 segmentos
P5: Zumbador
GISAM. Ordinario. 2021-Ene-21
GISAM. Ordinario. 2022-Ene-10
GISAM. Extra. 2022-Jun-29
GISAM. Parcial 1. 2022-Oct-26
GISAM. Parcial 2. 2022-Nov-30
GISAM. Parcial 3. 2022-Dic-21
GISAM. Parcial 1. 2023-Oct-09
GISAM. Parcial 2. 2023-Nov-11
GISAM. Parcial 3. 2023-Dic-20
GISAM. Extra. 2024-Jun-17
GISAM. Parcial 1. 2024-Oct-14
GISAM. Parcial 2. 2024-Nov-11
GISAM. Parcial 3: 2024-Dic-12
GISAM. Parcial 1: 2025-Oct-20
GISAM. Parcial 2: 2025-Nov-19
GISAM. Parcial 3: 2026-Ene-09
GISAM. Extra. 2026-Jun-11
GISAM. Parcial 1: 2026-Oct-21
ROBOTICA. Parcial 1. 2022-Feb-25
ROBOTICA. Parcial 2. 2022-Abr-1
ROBOTICA. Parcial 3. 2022-May-6
ROBOTICA. Parcial 1. 2023-Feb-27
ROBOTICA. Parcial 2. 2023-Mar-27
ROBOTICA. Parcial 3. 2023-May-08
ROBOTICA. Parcial 1. 2024-Feb-25
ROBOTICA. Parcial 2. 2024-Mar-20
ROBOTICA. Parcial 3. 2024-May-06
ROBOTICA.Extra. 2024-Jun-24
ROBOTICA. Parcial 1. 2025-Feb-24
ROBOTICA. Parcial 2. 2025-Mar-31
ROBOTICA. Parcial 3. 2025-May-19
ROBOTICA. Extra. 2025-Jun-24
ROBOTICA. Parcial 1. 2026-Feb-23
ROBOTICA. Parcial 2. 2026-Abr-13
ROBOTICA. Parcial 3. 2026-May-11
TELECO. Parcial 1. 2023-Oct-20
TELECO. Parcial 2. 2023-Nov-17
TELECO. Parcial 3. 2023-Dic-22
TELECO. Parcial 1. 2024-Oct-10
TELECO. Parcial 2. 2024-Nov-21
TELECO. Parcial 3. 2024-Dic-19
TELECO. Parcial 1. 2025-Oct-10
TELECO. Parcial 2. 2025-Nov-13
TELECO. Parcial 3. 2025-Dic-19
TELECO. Parcial 1. 2026-Oct-08
DATOS. Parcial 1. 2025-Oct-15
DATOS. Parcial 2. 2025-Nov-19
DATOS. Parcial 3. 2025-Dic-17
Extra 2026
Tema 1: Sesiones S3 y S4
Tema 2: Sesiones S5, S6 y S7
Tema 3: Sesiones S9, S10, S11 y s13
Tema 4: Sesiones S14 y S15