Está en la página 1de 24

El procesador

Datapath y control

Introduccin
En esta parte del curso contiene:
Las principales tcnicas usadas en el diseo de un

procesador.
La construccin del datapath y del control.
Estudiaremos la implementacin de una versin
reducida de MIPS.

Universidad de Sonora

Arquitectura de Computadoras

Definiciones
El procesador o CPU (unidad central de

procesamiento) sigue las instrucciones del programa


al pie de la letra. Suma y compara nmeros, ordena
activarse a los dispositivos de I/O, etc.
El procesador consta de dos componentes:
El datapath. Ejecuta operaciones aritmticas y lgicas.
El control. Ordena al datapath, memoria y dispositivos

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

Universidad de Sonora

Arquitectura de Computadoras

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 flipflops.

Universidad de Sonora

Arquitectura de Computadoras

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

esclavo. La salida se actualiza durante el flanco


(edge) de reloj.

Universidad de Sonora

Arquitectura de Computadoras

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

disparado por el flanco de bajada:

Universidad de Sonora

Arquitectura de Computadoras

Flip-flop D
Operacin:

Universidad de Sonora

Arquitectura de Computadoras

Banco de registros
El 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: nmero de registro.
Salida: dato contenido en el registro.

Para escribir un registro:


Entrada: nmero de registro, dato y una seal de reloj

para controlar la escritura.


Universidad de Sonora

Arquitectura de Computadoras

Banco de registros
Dos puertos de lectura y uno de escritura.

Universidad de Sonora

Arquitectura de Computadoras

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.

Universidad de Sonora

Arquitectura de Computadoras

10

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

(lw) y store word (sw).


2. Instrucciones aritmtico-lgicas: suma (add), resta
(sub), and, or y set on less than (slt).
3. Instrucciones de brincos: brinca si igual (beq) y
brinco incondicional (j).

Universidad de Sonora

Arquitectura de Computadoras

11

Implementacin
La implementacin de las distintas instrucciones

tiene varias acciones en comn.


Los primeros dos pasos son iguales:
1. Enviar el PC (contador de programa) a la memoria y

sacar la siguiente instruccin (ciclo de fetch).


2. Leer uno o dos registros.

Lo siguiente depende de la clase de instruccin,

pero es parecido sin importar el opcode exacto.

Universidad de Sonora

Arquitectura de Computadoras

12

Implementacin
Todas las instrucciones, excepto el brinco

incondicional (instruccin j), usan la ALU (unidad


aritmtico-lgica).
Las instrucciones de referencia a memoria para

calcular direcciones.
Las instrucciones aritmtico-lgicas para su
operacin.
Los brincos para evaluar la condicin.

Universidad de Sonora

Arquitectura de Computadoras

13

Implementacin
Despus de usar la ALU:
Las instrucciones de referencia a memoria accesan la

memoria para cargar o guardar un dato.


Las instrucciones aritmtico-lgicas guardan el dato
de la ALU en un registro.
Los brincos, dependiendo de la condicin, cambian el
contador de programa (PC) o lo incrementan en 4.

Universidad de Sonora

Arquitectura de Computadoras

14

Implementacin

Universidad de Sonora

Arquitectura de Computadoras

15

Explicacin
Las seales de control estn en azul y el flujo de

datos en negro.
Las seales de control determinan:
La operacin ejecutada por la ALU.
Si la memoria de datos debe leer o escribir.
Si los registros deben realizar una operacin de

escritura.

Universidad de Sonora

Arquitectura de Computadoras

16

Explicacin
El multiplexor de arriba controla que valor se le

guarda al PC (PC + 4 o la direccin 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 seal de control branch (es 1 si la
instruccin es un brinco).

Universidad de Sonora

Arquitectura de Computadoras

17

Explicacin
El multiplexor de en medio dirige la salida de la ALU

(en caso de una instruccin aritmtico-lgica) 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 seal de
control ALUOp que es 1 en caso de una operacin
aritmtico-lgica y 0 en otro caso.

Universidad de Sonora

Arquitectura de Computadoras

18

Explicacin
El multiplexor de abajo se usa para determinar el

origen de la segunda entrada de la ALU:


a) Los registros, en caso de una instruccin aritmtico-

lgica no inmediata.
b) El campo offset de la instruccin, en caso de una
operacin inmediata, una carga o guardar, o un
brinco.

Este multiplexor est controlado por la seal de

control ALUSrc que es 1 si el origen es el campo


offset y 0 si el origen es el banco de registros.
Universidad de Sonora

Arquitectura de Computadoras

19

Datapath
Realiza operaciones aritmticas y lgicas.
Elementos del datapath:
ALU.
Memoria de instrucciones.
Memoria de datos.
Banco de registros.
Sumadores.

Universidad de Sonora

Arquitectura de Computadoras

20

Primeros elementos del


datapath
1. Una memoria para guardar y leer instrucciones.
2. Un registro, llamado PC (contador de programa),

para guardar la direccin de la instruccin actual.


3. Un sumador para incrementar el PC.

Universidad de Sonora

Arquitectura de Computadoras

21

Ejecutando instrucciones
La ejecucin de una instruccin comienza con dos

pasos:
1. Obtener la instruccin de la memoria.
2. Incrementar el PC para preparar la ejecucin de la

instruccin siguiente.

Los tres elementos anteriores se combinan para

formar un datapath que obtiene una instruccin e


incrementa el PC.

Universidad de Sonora

Arquitectura de Computadoras

22

Primera parte del


datapath
Ciclo de fetch. Lee una instruccin e incrementa el

PC.

Universidad de Sonora

Arquitectura de Computadoras

23

Segunda parte del


datapath
El siguiente paso es ver como se implementan:
1. Instrucciones aritmticas y lgicas.
2. Instrucciones de carga y guardar (load/store).
3. Brincos.

Universidad de Sonora

Arquitectura de Computadoras

24

También podría gustarte