El procesadorDatapath y control
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.
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.
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.
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.
Universidad de Sonora Arquitectura de Computadoras 6
Flip-flop DDiagrama de un flip-flop D maestro-esclavo
disparado por el flanco de bajada:
Universidad de Sonora Arquitectura de Computadoras 7
Flip-flop DOperación:
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.
Universidad de Sonora Arquitectura de Computadoras 9
Banco de registrosDos puertos de lectura y uno de escritura.
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.
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).
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.
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.
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.
Universidad de Sonora Arquitectura de Computadoras 15
Implementación
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.
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).
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.
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.
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.
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.
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.
Universidad de Sonora Arquitectura de Computadoras 23
Primera parte del datapathCiclo de fetch. Lee una instrucción e incrementa el
PC.
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.
Top Related