Repository navigation
Examen: Parcial 2:2023_11_17:Teleco

- Tiempo: 50 minutos
- Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
- Temario: S5,S6,S7 y 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 64-bits que dispone de 32 registros de propósito general (x0-x31). La anchura de memoria es de 64 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, rs valor: Suma el valor del registro rs más valor y lo almacena en el registro rd -
lb rd, (rs1): Leer un byte de memoria y guardarlo en rd -
lh rd, (rs1): Leer una media palabra de memoria y guardarla en rd -
lw rd, (rs1): Leer una palabra de memoria y guardarla en rd -
ld rd, (rs1): Leer una doble palabra de memoria y guardarla en rd -
sb rs1, (rs2): Almacenar en memoria el byte que hay en rs1 -
sh rs1, (rs2): Almacenar en memoria la media palabra que hay en rs1 -
sw rs1, (rs2): Almacenar en memoria la palabra que hay en rs1 -
sd rs1, (rs2): Almacenar en memoria la doble palabra que hay en rs1
Este es un volcado de la memoria, correspondiente a las direcciones que comienzan en 0x010A0 y 0x010B0. Los valores están en HEXADECIMAL.
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010A0 | AA | BB | CC | DD | 01 | 02 | 03 | 04 | A4 | A3 | A2 | A1 | A0 | 1F | 1E | 1A |
| 0x010B0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
Se pide:
a) (2.5 ptos) Indicar el valor de los registros del x1 al x5 cuando se ejecutan estas instrucciones (secuencialente), así como el número de accesos a memoria que emplea cada instrucción de load para leer los datos:
li x1, 0x010A6
lb x2, (x1)
lh x3, (x1)
lw x4, (x1)
addi x1, x1, 6
ld x5, (x1)
b) (2.5 ptos) Suponiendo que inicialmente los registros del x1 al x5 contienen los siguientes valores: x1=0,x2=0x22, x3=0x2023, x4=0x1A2B3C4D, x5=0x44332211DDCCBBAA
Escribe el contenido de los 16 bytes de memoria situados desde la dirección 0x010B0 en adelante al terminar de ejecutarse las siguientes instrucciones e indica también el número de accesos a memoria que emplea cada instrucción de store para guardar los datos.:
li x1, 0x010B2
sd x5, (x1)
sh x3, (x1)
addi x1, x1, 10
sw x4, (x1)
sb x2, (x1)
a)
El procesador usa ordenación big endian por lo que el byte leido en la primera posición es el de mayor peso
-
Inst 1: Cargar el valor inmediato 0x010A6 en x1. Las instrucciones li no acceden a memoria
x1 = 0x010A6
-
Inst 2: Leer el byte de la dirección 0x010A6. Para leer 1 byte siempre se realiza 1 único acceso a memoria.
x2 = 0x03, 1 acceso a memoria
-
Inst 3: Leer la media palabra de la dirección 0x010A6. La media palabra se encuentra en el primer bloque de memoria de 8 bytes, por lo que se raliza 1 único acceso.
x3 = 0x0304, 1 acceso a memoria
-
Inst 4: Leer la palabra de la dirección 0x010A6. La palabra se encuentra la mitad en el primer bloque de 32 bits, y la otra mitad en el siguiente, por lo que se necesitan 2 accesos a memoria
x4 = 0x0304A4A3, 2 accesos a memoria
-
Inst 5: Sumar el valor 6 al registro x1. Las instrucciones li no acceden a memoria
x1 = 0x010AC
-
Inst 6: Leer la doble palabra de la dirección 0x010AC. Como son 8 bytes de la doble palabra, se leen los 0 que hay en las siguientes direcciones de memoria. Se realizan 2 accesos por no estar en una dirrección alineada
x5 = 0xA01F1E1A00000000, 2 accesos a memoria
b)
- Inst 1:
Guarda en el registro x1 el valor de la dirección 0x010B2
- Inst 2:
Guarda la doble palabra de x5 a partir de la dirección 0x010B2
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010B0 | 00 | 00 | 44 | 33 | 22 | 11 | DD | CC | BB | AA | 00 | 00 | 00 | 00 | 00 | 00 |
Realiza 2 accesos a memoria porque se almacena ocupando dos espacios de palabra doble (0x10B0-0x10B7 y 0x10B8-0x10BF)
- Inst 3:
Guarda la media palabra de x3 a partir de la dirección 0x010B2
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010B0 | 00 | 00 | 20 | 23 | 22 | 11 | DD | CC | BB | AA | 00 | 00 | 00 | 00 | 00 | 00 |
Realiza 1 acceso a memoria porque se almacena en el primer bloque (0x10B0-0x10B7)
- Inst 4:
Suma 10 al valor de x1: x1 = 0x010B2 + 10 = 0x010BC
- Inst 5:
Guarda la palabra de x4 a partir de la dirección 0x010BC
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010B0 | 00 | 00 | 20 | 23 | 22 | 11 | DD | CC | BB | AA | 00 | 00 | 1A | 2B | 3C | 4D |
Realiza 1 acceso a memoria porque se almacena en el segundo bloque (0x10B8-0x10BF)
- Inst 6:
Guarda el byte de x2 en la dirección 0x010BC
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010B0 | 00 | 00 | 20 | 23 | 22 | 11 | DD | CC | BB | AA | 00 | 00 | 22 | 2B | 3C | 4D |
Realiza 1 acceso a memoria porque tiene tamaño de 1 byte
El resultado final de la memoria por lo tanto es:
| Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x010B0 | 00 | 00 | 20 | 23 | 22 | 11 | DD | CC | BB | AA | 00 | 00 | 22 | 2B | 3C | 4D |
- Miguel Ángel de Miguel
- 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