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 inmediato valor al registro desitno rd
  • lb rd, off(rs): Leer el byte que hay en la dirección contenida en rs + off y guardarlo en el registro rd
  • lh rd, off(rs): Leer la media palabra que hay en la dirección contenida en rs + off y guardarla en el registro rd
  • lw 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

Licencia

Enlaces