Examen: Parcial 2:2024_11_13:GISAM - myTeachingURJC/Arq-computadores-01 GitHub Wiki
Examen Parcial 2: 2024-11-13. GISAM
- Fecha: 13-Nov-2024
- 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 (t0-t7). 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 con desplazamiento. Puede acceder tanto a datos alineados como no alineados. Estas son algunas de las instrucciones disponibles:
li rd, valor
: Asignar el valor inmediatovalor
al registro desitnord
lb rd, off(rs)
: Leer el byte que hay en la dirección contenida en rs + off y guardarlo en el registro rdlh rd, off(rs)
: Leer la media palabra que hay en la dirección contenida en rs + off y guardarla en el registro rdlw rd, off(rs)
: Leer la palabra que hay en la dirección contenida en rs + off y guardarla en el registro rd
Este es el contenido de la memoria, a partir de la dirección 0x8000CA00. 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x8000CA00 | 10 | 01 | 01 | 28 | 00 | 2D | 38 | 02 | 00 | 40 | 03 | 28 | 10 | 01 | 01 | 34 |
0x8000CA10 | 00 | 00 | 2B | 01 | 00 | 40 | 03 | 4C | 10 | 01 | 01 | 40 | 00 | 00 | 2D | 01 |
Resuelve los siguientes apartados, calculando el resultado y justificando cómo lo has obtenido
a) (2.5 ptos) Indica el valor de los registros t1,t2,t3,t4 y t5 tras finalizar la ejecución de las siguientes instrucciones:
li t0, 0x8000CA00
lb t1, 0x9(t0) #-- Instr. 1
lb t2, 0x13(t0) #-- Instr. 2
lh t3, 0x0C(t0) #-- Instr. 3
lh t4, 0x13(t0) #-- Instr. 4
lw t5, 0x0F(t0) #-- Instr. 5
b) (2.5 ptos) Indica el número de accesos a memoria al ejecutarse cada una de las 5 instrucciones indicadas en los comentarios (No tengas en cuenta los accesos para leer la propia instrucción)
Solución
a)
El procesador usa ordenación Big endian por lo que el byte leido en la primera posición es el de mayor peso
Tras ejecutar todas las instrucciones, el valor de los registros pedidos es el siguiente:
- t1 = 0x40. Lectura del byte de la dirección 0x8000CA00 + 0x9 = 0x8000CA09. Como es un byte, no influye ni la ordenación ni el alineamiento (0.5)
- t2 = 0x01. Lectura del byte de la dirección 0x8000CA00 + 0x13 = 0x8000CA13. Como es un byte, no influye ni la ordenación ni el alineamiento (0.5)
- t3 = 0x1001. Lectura de una media palabra (16-bits) de la dirección 0x8000CA00 + 0x0C = 0x8000CA0C. Ordenación Big endian (0.5)
- t4 = 0x0100. Lectura de una media palabra (16-bits) de la dirección 0x8000CA00 + 0x13 = 0x8000CA13. Ordenación Big endian (0.5)
- t5 = 0x3400002B. Lectura de una palabra de la dirección 0x8000CA00 + 0x0F = 0x8000CA0F. Ordenación Big endian (0.5)
b)
- Inst 1: Un acceso. Es una lectura de un byte. Nos da igual el alineamiento y la ordenación (0.5)
- Inst 2: Un Acceso. Mismo razonamiento que con la instrucción 1 (0.5)
- Inst 3: Un Acceso. La media palabra tiene sus dos bytes en la palabra de la dirección 0x8000CA0C (0.5)
- Inst 4: Dos Accesos. Lectura de una media palabra situada en una dirección NO alineada (0.5)
- Inst 5: Dos acceso. Lectura de una palabra situada en una dirección alineada (0.5)
En total se realizan 7 accesos para leer datos de memoria
Autores
- Katia Leal Algara
- Juan González-Gómez (Obijuan)