Examen: Parcial 2:2023_11_13:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki
Examen Parcial 2: 2023-11-13. GISAM
- 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
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
Tenemos un computador de 32-bits que dispone de 8 registros de propósito general (a0-a7). La anchura de la memoria es de 32-bits. La ordenación que usa es Little-endian. Para acceder a los datos de la memoria utiliza un direccionamiento directo. Puede acceder tanto a datos alineados como no alineados. Estas son algunas de las instrucciones disponibles:
lb rd, dir
: Leer el byte que hay en la dirección dir y guardarlo en el registro rdlh rd, dir
: Leer la media palabra que hay en la dirección dir y guardarla en el registro rdlw rd, dir
: Leer la palabra que hay en la dirección dir y guardarla en el registro rd
Este es el contenido de la memoria, a partir de la dirección 0xCAFEBAC0. Todos los valores están en hexadecimal
Dirección | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0xCAFEBAC0 | 00 | 11 | AA | CA | FE | FF | FF | FF | FF | FF | FF | FE | CA | BA | DA | 22 |
Resuelve los siguientes apartados, calculando el resultado y justificando cómo lo has obtenido
a) (2.5 ptos) Los registros están inicializados a 0. Indica el valor de los registros tras ejecutar las siguientes instrucciones:
lb a1, 0xCAFEBAC1
lb a2, 0xCAFEBACF
lh a3, 0xCAFEBAC3
lh a4, 0xCAFEBACC
lw a5, 0xCAFEBACB
b) (2.5 ptos) Indica el número de accesos a memoria que emplea cada instrucción de load para leer los datos
Solución al problema
a)
El procesador usa ordenación little endian por lo que el byte leido en la primera posición es el de menor peso
- Inst 1: Leer el byte de la dirección 0xCAFEBAC1. a1 = 0x11
- Inst 2: Leer el byte de la dirección 0xCAFEBACF. a2 = 0x22
- Inst 3: Leer la media palabra de la dirección 0xCAFEBAC3. a3 = 0xFECA
- Inst 4: Leer la media palabra de la direccion 0xCAFEBACC. a4 = 0xBACA
- Inst 5: Leer la palabra de la dirección 0xCAFEBACB. a5 = 0xDABACAFE
El resto de registros valen 0
b)
- Inst 1: Un acceso. Es una lectura de un byte. Nos da igual el alineamiento y la ordenación
- Inst 2: Un Acceso. Mismo razonamiento que con la instrucción 1
- Inst 3: Dos accesos a memoria. La media palabra tiene un byte en una palabra y el otro en la siguiente (Acceso a dirección no alineada)
- Inst 4: Un Acceso. Lectura de la media palabra situada en una dirección alineada
- Inst 5: Dos accesos. Lectura de una palabra situada en una dirección NO alineada
Número total de accesos: 1 + 1 + 2 + 1+ 2 = 7 (No pedido en el enunciado)
Autores
- Katia Leal Algara
- Juan González-Gómez (Obijuan)