1 / 11

El procesador

El procesador. Datapath para las instrucciones de carga y almacenamiento (load/store). Instrucciones load/store. Forma: lw $r1, offset ($r2) ; r1 ← Memoria[r2 + offset] sw $r1, offset ($r2) ; Memoria[r2 + offset] ← r1 Hay que sumar el offset (16 bits con signo) al registro base $r2.

Download Presentation

El procesador

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. El procesador Datapath para las instrucciones de carga y almacenamiento (load/store)

  2. Instrucciones load/store • Forma: • lw $r1, offset ($r2) ; r1 ← Memoria[r2 + offset] • sw $r1, offset ($r2) ; Memoria[r2 + offset]← r1 • Hay que sumar el offset (16 bits con signo) al registro base $r2. • lw tiene que escribir el valor en $r1. • sw tiene que leer el valor de $r1. • lw y sw también usan el banco de registros y la ALU. • Además se necesita extender el signo al mover cantidades de 16 a 32 bits. Arquitectura de Computadoras

  3. Extender el signo • ¿El número 8016 es positivo o negativo? • Depende… • Si es una constante de 8 bits, 8016 es negativo. 8016 = 100000002 = -12810 • Si es una constante de 16 bits, 8016 es positivo. 8016 = 00000000100000002 = +12810 Arquitectura de Computadoras

  4. Extender el signo • Para copiar una constante de m bits a n bits, n> m, hay que tener cuidado con el signo. • Constante de 8 bits. • 8016 = 100000002 = -12810 • Constante de 16 bits. • 00000000100000002 = 008016 = +12810¡Incorrecto! • 11111111100000002 = FF8016 = -12810Correcto • El bit de signo se extiende al resto de los bits. Arquitectura de Computadoras

  5. Extender el signo • Otro ejemplo… • Constante positiva de 8 bits • 001010112 = 2B16 = 4310 • Constante positiva de 16 bits • 00000000001010112 = 2B16 = 4310 • El signo positivo se extendió. Arquitectura de Computadoras

  6. Extender el signo • Unidad de extensión de signo. Arquitectura de Computadoras

  7. ¿Positivo o negativo? • En la instrucción de MIPS • lw $t1, 0x8020 ($a0) • ¿Qué dirección de memoria hay que accesar? • En MIPS, todas las constantes son de 16 bits. • 802016 = 10000000001000002 = -3273610 • El resultado de la instrucción es: • t1 ← Memoria [a0 – 32736] Arquitectura de Computadoras

  8. Instrucciones load/store • Además de la unidad de extensión de signo… • Se necesita una memoria de datos. • No confundir con la memoria de instrucciones. • La memoria de datos almacena los datos (segmento .data en MIPS). • La memoria de datos es usada por: • La instrucción lw lee de la memoria de datos. • La instrucción sw escribe en la memoria de datos. Arquitectura de Computadoras

  9. Memoria de datos • 4 entradas: • Dirección del registro. • Dato a escribir (cuando es escritura). • Señal de modo de lectura. • Señal de modo de escritura. • 1 salida: • Dato leído (cuando es lectura). Arquitectura de Computadoras

  10. Memoria de datos Arquitectura de Computadoras

  11. Instrucciones load/store • En resumen, el datapath para las instrucciones load y store utiliza: • El banco de registros para leer y escribir registros. • ALU para sumar el registro base y el offset. • La unidad de extensión de signo para mover constantes de 16 a 32 bits. • Memoria de datos. Arquitectura de Computadoras

More Related