proces

24
El procesador Datapath y control

description

asdad

Transcript of proces

Page 1: proces

El procesadorDatapath y control

Page 2: proces

Universidad de Sonora Arquitectura de Computadoras 2

IntroducciónEn esta parte del curso contiene:

Las principales técnicas usadas en el diseño de un procesador.

La construcción del datapath y del control.Estudiaremos la implementación de una versión

reducida de MIPS.

Page 3: proces

Universidad de Sonora Arquitectura de Computadoras 3

DefinicionesEl procesador o CPU (unidad central de

procesamiento) sigue las instrucciones del programa al pie de la letra. Suma y compara números, ordena activarse a los dispositivos de I/O, etc.

El procesador consta de dos componentes:El datapath. Ejecuta operaciones aritméticas y lógicas.El control. Ordena al datapath, memoria y dispositivos

de I/O lo que hay que hacer de acuerdo al programa.

Page 4: proces

Universidad de Sonora Arquitectura de Computadoras 4

Recordando Hay dos clases de circuitos digitales:

1. Circuitos combinatorios. La salida depende solo de las entradas. Ejemplo, AND, OR, NOT, decoders, multiplexores, etc.

2. Circuitos secuenciales. La salida depende de las entradas y de la salida actual. Ejemplo, latches y flip-flops.

Page 5: proces

Universidad de Sonora Arquitectura de Computadoras 5

Circuitos secuencialesPueden almacenar 1 bit.Usaremos solo flip-flops (biestables) maestro-

esclavo. La salida se actualiza durante el flanco (edge) de reloj.

Page 6: proces

Universidad de Sonora Arquitectura de Computadoras 6

Flip-flop DDiagrama de un flip-flop D maestro-esclavo

disparado por el flanco de bajada:

Page 7: proces

Universidad de Sonora Arquitectura de Computadoras 7

Flip-flop DOperación:

Page 8: proces

Universidad de Sonora Arquitectura de Computadoras 8

Banco de registrosEl banco de registros (register file) es un conjunto

de registros para guardar y leer datos.Cada registro es un vector de flip-flops D.Para leer un registro:

Entrada: número de registro.Salida: dato contenido en el registro.

Para escribir un registro:Entrada: número de registro, dato y una señal de reloj

para controlar la escritura.

Page 9: proces

Universidad de Sonora Arquitectura de Computadoras 9

Banco de registrosDos puertos de lectura y uno de escritura.

Page 10: proces

Universidad de Sonora Arquitectura de Computadoras 10

MIPS simplificado Las instrucciones se hacen en un ciclo de reloj. Comienzan a ejecutarse en un flanco de reloj y

terminan en el siguiente flanco.

Page 11: proces

Universidad de Sonora Arquitectura de Computadoras 11

MIPS simplificadoTres tipos de instrucciones:1.Instrucciones de referencia a memoria: load word

(lw) y store word (sw).2.Instrucciones aritmético-lógicas: suma (add), resta

(sub), and, or y set on less than (slt).3.Instrucciones de brincos: brinca si igual (beq) y

brinco incondicional (j).

Page 12: proces

Universidad de Sonora Arquitectura de Computadoras 12

Implementación La implementación de las distintas instrucciones

tiene varias acciones en común. Los primeros dos pasos son iguales:

1. Enviar el PC (contador de programa) a la memoria y sacar la siguiente instrucción (ciclo de fetch).

2. Leer uno o dos registros. Lo siguiente depende de la clase de instrucción,

pero es parecido sin importar el opcode exacto.

Page 13: proces

Universidad de Sonora Arquitectura de Computadoras 13

ImplementaciónTodas las instrucciones, excepto el brinco

incondicional (instrucción j), usan la ALU (unidad aritmético-lógica).Las instrucciones de referencia a memoria para

calcular direcciones.Las instrucciones aritmético-lógicas para su

operación.Los brincos para evaluar la condición.

Page 14: proces

Universidad de Sonora Arquitectura de Computadoras 14

ImplementaciónDespués de usar la ALU:

Las instrucciones de referencia a memoria accesan la memoria para cargar o guardar un dato.

Las instrucciones aritmético-lógicas guardan el dato de la ALU en un registro.

Los brincos, dependiendo de la condición, cambian el contador de programa (PC) o lo incrementan en 4.

Page 15: proces

Universidad de Sonora Arquitectura de Computadoras 15

Implementación

Page 16: proces

Universidad de Sonora Arquitectura de Computadoras 16

ExplicaciónLas señales de control están en azul y el flujo de

datos en negro.Las señales de control determinan:

La operación ejecutada por la ALU.Si la memoria de datos debe leer o escribir.Si los registros deben realizar una operación de

escritura.

Page 17: proces

Universidad de Sonora Arquitectura de Computadoras 17

ExplicaciónEl multiplexor de arriba controla que valor se le

guarda al PC (PC + 4 o la dirección del brinco).Este multiplexor está controlado por una AND entre

la salida “zero” de la ALU (es 1 si el resultado de la ALU es 0) y la señal de control “branch” (es 1 si la instrucción es un brinco).

Page 18: proces

Universidad de Sonora Arquitectura de Computadoras 18

ExplicaciónEl multiplexor de en medio dirige la salida de la ALU

(en caso de una instrucción aritmético-lógica) o de la salida de la memoria de datos (en caso de una carga) hacia el banco de registros (register file).

Este multiplexor está controlado por la señal de control “ALUOp” que es 1 en caso de una operación aritmético-lógica y 0 en otro caso.

Page 19: proces

Universidad de Sonora Arquitectura de Computadoras 19

Explicación El multiplexor de abajo se usa para determinar el

origen de la segunda entrada de la ALU:a) Los registros, en caso de una instrucción aritmético-

lógica no inmediata.b) El campo offset de la instrucción, en caso de una

operación inmediata, una carga o guardar, o un brinco.

Este multiplexor está controlado por la señal de control “ALUSrc” que es 1 si el origen es el campo offset y 0 si el origen es el banco de registros.

Page 20: proces

Universidad de Sonora Arquitectura de Computadoras 20

DatapathRealiza operaciones aritméticas y lógicas.Elementos del datapath:

ALU.Memoria de instrucciones.Memoria de datos.Banco de registros.Sumadores.

Page 21: proces

Universidad de Sonora Arquitectura de Computadoras 21

Primeros elementos del datapath1. Una memoria para guardar y leer instrucciones.2. Un registro, llamado PC (contador de programa),

para guardar la dirección de la instrucción actual.3. Un sumador para incrementar el PC.

Page 22: proces

Universidad de Sonora Arquitectura de Computadoras 22

Ejecutando instrucciones La ejecución de una instrucción comienza con dos

pasos:1. Obtener la instrucción de la memoria.2. Incrementar el PC para preparar la ejecución de la

instrucción siguiente. Los tres elementos anteriores se combinan para

formar un datapath que obtiene una instrucción e incrementa el PC.

Page 23: proces

Universidad de Sonora Arquitectura de Computadoras 23

Primera parte del datapathCiclo de fetch. Lee una instrucción e incrementa el

PC.

Page 24: proces

Universidad de Sonora Arquitectura de Computadoras 24

Segunda parte del datapath El siguiente paso es ver como se implementan:

1. Instrucciones aritméticas y lógicas.2. Instrucciones de carga y guardar (load/store).3. Brincos.