El procesador
Datapath y control
Introducción
 En 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.
Universidad de Sonora
Arquitectura de Computadoras
2
Definiciones
 El 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.
Universidad de Sonora
Arquitectura de Computadoras
3
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
4
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
5
Flip-flop D
 Diagrama de un flip-flop D maestro-esclavo
disparado por el flanco de bajada:
Universidad de Sonora
Arquitectura de Computadoras
6
Flip-flop D
 Operación:
Universidad de Sonora
Arquitectura de Computadoras
7
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: 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.
Universidad de Sonora
Arquitectura de Computadoras
8
Banco de registros
 Dos puertos de lectura y uno de escritura.
Universidad de Sonora
Arquitectura de Computadoras
9
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 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).
Universidad de Sonora
Arquitectura de Computadoras
11
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.
Universidad de Sonora
Arquitectura de Computadoras
12
Implementación
 Todas 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.
Universidad de Sonora
Arquitectura de Computadoras
13
Implementación
 Despué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.
Universidad de Sonora
Arquitectura de Computadoras
14
Implementación
Universidad de Sonora
Arquitectura de Computadoras
15
Explicación
 Las 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.
Universidad de Sonora
Arquitectura de Computadoras
16
Explicación
 El 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).
Universidad de Sonora
Arquitectura de Computadoras
17
Explicación
 El 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.
Universidad de Sonora
Arquitectura de Computadoras
18
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.
Universidad de Sonora
Arquitectura de Computadoras
19
Datapath
 Realiza operaciones aritméticas y lógicas.
 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 dirección de la instrucción actual.
3. Un sumador para incrementar el PC.
Universidad de Sonora
Arquitectura de Computadoras
21
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.
Universidad de Sonora
Arquitectura de Computadoras
22
Primera parte del datapath
 Ciclo de fetch. Lee una instrucción 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 aritméticas y lógicas.
2. Instrucciones de carga y guardar (load/store).
3. Brincos.
Universidad de Sonora
Arquitectura de Computadoras
24
Descargar

El procesador: datapath y control