16 procesador single.ppt [modo de...

Post on 24-Jul-2020

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

El procesadorCreando un solo datapath

Universidad de Sonora Arquitectura de Computadoras 2

Introducción1. Crear un solo datapath a partir de los datapaths

individuales:

a) Instrucciones aritméticas y lógicas (tipo R).

b) Instrucciones de carga y almacena (load/store).

c) Brincos condicionales e incondicionales.

2. Agregar el control.

Universidad de Sonora Arquitectura de Computadoras 3

Introducción� Versión simple de MIPS de un ciclo.

� Las instrucciones se ejecutan en un ciclo de reloj.

� Ninguna parte del datapath se puede usar mas de una vez por instrucción.

� En caso necesario, se duplica la parte que tenga que ser utilizada mas de una vez.

� Por ese motivo, la memoria de instrucciones y la de datos están separadas.

� Se pueden compartir partes del datapath agregando un multiplexor y una señal de control.

Datapath instrucciones “R”

Universidad de Sonora Arquitectura de Computadoras 4

Datapath instrucciones L/S

Universidad de Sonora Arquitectura de Computadoras 5

Universidad de Sonora Arquitectura de Computadoras 6

Uniendo datapaths� Los datapaths de las instrucciones aritméticas y

lógicas de las instrucciones de carga/almacena son similares.

� Las diferencias importantes son:

Universidad de Sonora Arquitectura de Computadoras 7

Uniendo datapathsa) ALU:

� Instrucciones aritméticas y lógicas: las entradas vienen de los registros.

� Instrucciones de carga/almacena: una entrada viene de un registro, la otra de un offset de 16 bits.

� Ejemplo:

� add $t0, $t1, $t2 ; usa la ALU para sumar t1 + t2

� sw $t0, 50($a0) ; usa la ALU para sumar a0 + 50

Universidad de Sonora Arquitectura de Computadoras 8

Uniendo datapathsb) Registro destino:

� Instrucciones aritméticas y lógicas: el valor que se guarda es la salida de la ALU.

� Instrucción de carga: el valor que se guarda viene de la memoria.

� Ejemplo:

� add $t0, $t1, $t2 ; t0 ← t1 + t2

� lw $t0, 50($a0) ; t0 ← Memoria[a0 + 50]

Universidad de Sonora Arquitectura de Computadoras 9

Uniendo datapaths� Para usar la misma ALU:

� Agregar un mux en la segunda entrada.

� Para usar el mismo banco de registros:

� Agregar un mux en la entrada de datos.

Universidad de Sonora Arquitectura de Computadoras 10

Datapath para tipo R y L/S

Universidad de Sonora Arquitectura de Computadoras 11

Explicación� Las señales de control están en azul.

� ALUSrc controla la segunda entrada de la ALU.

� 0 para instrucciones tipo R. La entrada es un registro.

� 1 para instrucciones L/S. La entrada es un offset.

� MemtoReg controla la entrada de datos del banco de registros.

� 0 para instrucciones tipo R. La entrada es la salida de la ALU.

� 1 para instrucciones L/S. La entrada viene de la memoria de datos.

Universidad de Sonora Arquitectura de Computadoras 12

Datapath completo� El siguiente paso es combinar los datapaths de:

1. Ciclo de fetch.

2. Instrucciones tipo R y L/S.

3. Instrucciones de brinco.

Universidad de Sonora Arquitectura de Computadoras 13

Datapath del ciclo de fetch

Universidad de Sonora Arquitectura de Computadoras 14

Datapath del brinco condicional

Universidad de Sonora Arquitectura de Computadoras 15

Datapath completo� Se agrega un multiplexor a la entrada del contador

de programa controlado por PCSrc:

� 0 – No hay brinco (PC ← PC + 4).

� 1 – Si hay brinco (PC ← salida del sumador).

Universidad de Sonora Arquitectura de Computadoras 16

Datapath

Universidad de Sonora Arquitectura de Computadoras 17

El siguiente paso� Es agregar la unidad de control.

top related