El procesador

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

description

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. - PowerPoint PPT Presentation

Transcript of El procesador

Page 1: El procesador

El procesadorDatapath para las instrucciones de

carga y almacenamiento (load/store)

Page 2: El procesador

Universidad de Sonora Arquitectura de Computadoras 2

Instrucciones load/storeForma:

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.

Page 3: El procesador

Universidad de Sonora 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

Page 4: El procesador

Universidad de Sonora Arquitectura de Computadoras 4

Extender el signoPara 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 = -12810 Correcto

El bit de signo se extiende al resto de los bits.

Page 5: El procesador

Universidad de Sonora Arquitectura de Computadoras 5

Extender el signoOtro ejemplo…Constante positiva de 8 bits

001010112 = 2B16 = 4310

Constante positiva de 16 bits00000000001010112 = 2B16 = 4310

El signo positivo se extendió.

Page 6: El procesador

Universidad de Sonora Arquitectura de Computadoras 6

Extender el signoUnidad de extensión de signo.

Page 7: El procesador

Universidad de Sonora 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]

Page 8: El procesador

Universidad de Sonora Arquitectura de Computadoras 8

Instrucciones load/storeAdemá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.

Page 9: El procesador

Universidad de Sonora Arquitectura de Computadoras 9

Memoria de datos4 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).

Page 10: El procesador

Universidad de Sonora Arquitectura de Computadoras 10

Memoria de datos

Page 11: El procesador

Universidad de Sonora Arquitectura de Computadoras 11

Instrucciones load/store En resumen, el datapath para las instrucciones

load y store utiliza:

1. El banco de registros para leer y escribir registros.

2. ALU para sumar el registro base y el offset.

3. La unidad de extensión de signo para mover constantes de 16 a 32 bits.

4. Memoria de datos.