Código de eficiencia ISA y tráfico de memoria

0

Tengo problemas para entender este problema y soy nuevo en ISA. Aquí hay un problema con 3 preguntas y mi pregunta más importante es: ¿qué se supone que suceda? Específicamente, el código HLL en la parte inferior.

Supongamos cuatro ISA

  1. basado en acumulador
  2. basado en la pila
  3. memoria a memoria (operandos ubicados en la memoria principal)
  4. basado en registro (carga pura / tienda)

Instrucción / tamaño de datos

  • todos los operandos de datos de 4 bytes
  • todas las direcciones de memoria son de 16 bits
  • todos los códigos de operación de 1 byte
  • campos de dirección de memoria de 2 bytes de ancho
  • los campos de registro en la máquina de carga / almacenamiento tienen 4 bits de ancho (16 registros de 32 bits)

Además, todas las direcciones de memoria tienen una longitud de 32 bits y todas las instrucciones y datos se recuperan en un solo acceso de memoria en el caso de la arquitectura de memoria-memoria, sin necesidad de utilizar una ubicación de memoria adicional.

Compile el código para cuatro ISA y determine las métricas: 1) tamaño de código 2) tráfico de memoria de datos, incluidas direcciones, 3) tráfico de instrucciones, incluidas direcciones.

Código HLL:

 A = B + A
 C = A - C + D
    
pregunta Carlo

1 respuesta

2

Como una sugerencia para comenzar, aquí hay algunas posibles secuencias de instrucciones para la primera declaración HLL:

Accumulator-based

load A
add B
store A

Stack-based

load A
load B
add
store A

Memoria a memoria (2 direcciones)

add B, A

Registro-based

load A, r1
load B, r2
add r2, r1
store r1, A

Su trabajo es averiguar qué tan grande es cada instrucción, y también cuáles son los patrones de acceso a la memoria para las operaciones de datos y de instrucción a medida que se ejecuta cada secuencia.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas