ppt - Universidad de Sonora
Download
Report
Transcript ppt - Universidad de Sonora
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.
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.
Universidad de Sonora
Arquitectura de Computadoras
2
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
Universidad de Sonora
Arquitectura de Computadoras
3
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 = -12810 Correcto
El bit de signo se extiende al resto de los bits.
Universidad de Sonora
Arquitectura de Computadoras
4
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ó.
Universidad de Sonora
Arquitectura de Computadoras
5
Extender el signo
Unidad de extensión de signo.
Universidad de Sonora
Arquitectura de Computadoras
6
¿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]
Universidad de Sonora
Arquitectura de Computadoras
7
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.
Universidad de Sonora
Arquitectura de Computadoras
8
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).
Universidad de Sonora
Arquitectura de Computadoras
9
Memoria de datos
Universidad de Sonora
Arquitectura de Computadoras
10
Instrucciones load/store
1.
2.
3.
4.
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.
Universidad de Sonora
Arquitectura de Computadoras
11