La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

TEMA 1: UNIDAD DE CONTROL

Presentaciones similares


Presentación del tema: "TEMA 1: UNIDAD DE CONTROL"— Transcripción de la presentación:

1 TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico. 1.1.- Introducción: Máquinas de estado algorítmico. 1.2.- Unidad de procesamiento de datos (Ruta de datos). 1.3.- Controladores. Implementación de un controlador. 1.4.- Control cableado. 1.5.- Control microprogramado – palabra de control. 1.6.- Respuesta condicional de controladores.

2 UNIDADES DE PROCESO Y CONTROL
TEMA 1: UNIDAD DE CONTROL 1.1.- Introducción: Máquinas de estado algorítmico UNIDADES DE PROCESO Y CONTROL

3 DIAGRAMAS ASM TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico DIAGRAMAS ASM Normalmente los circuitos digitales complejos se definen mediante algoritmos, en los que se especifican una serie de procedimientos y caminos de decisión que, a partir de micooperaciones elementales, permiten realizar una tarea compleja. Los algoritmos se representan gráficamente mediante diagramas ASM (Algorithmic State Machines), también llamados organigramas: Operación sobre registro Valor de salida Nombre Código binario Salida Entrada Caja de estado: Salida 0 Entrada Caja de decisión escalar: Condición de 1 bit Salida 1 1 R0 RUN IDLE 000 Salida Entrada Operación sobre registro Valor de salida Salida Entrada Caja de salida condicional: Salida 0 Entrada Caja de decisión vectorial: Condición de n bits Salida 1 Salida 2n-1

4 DIAGRAMAS ASM TEMA 1: UNIDAD DE CONTROL Estado IDLE 0/0 MUL0 10/1
1.1.- Introducción: Máquinas de estado algorítmico DIAGRAMAS ASM Un bloque ASM consiste en una caja de estado y todas las cajas de decisión y de salida condicional conectadas entre su salida y los caminos de entrada a la misma caja de estado o a otras. Ejemplo: Diagrama de flujo equivalente: Estado AVAIL START,Q0/CLRA Entradas: START y Q0. Salidas: AVAIL y CLRA (Reset síncrono de A). Entrada Bloque ASM IDLE 1 0/0 MUL0 10/1 MUL1 11/1 Salida Salida Salida

5 TEMPORIZACIÓN DE SEÑALES
TEMA 1: UNIDAD DE CONTROL 1.1.- Introducción: Máquinas de estado algorítmico DIAGRAMAS ASM TEMPORIZACIÓN DE SEÑALES Bloque ASM Entrada Salida Siguiendo con nuestro ejemplo: Ciclo: 1 2 CLK START CLRA Q0 Estado IDLE IDLE MUL1 AVAIL Reg A 0034 0000

6 TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico. 1.2.- Unidad de procesamiento de datos (Ruta de datos). 1.3.- Controladores. Implementación de un controlador. 1.4.- Control cableado. 1.5.- Control microprogramado – palabra de control. 1.6.- Respuesta condicional de controladores.

7 ALGORITMO PARA LA MULTIPLICACIÓN
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ALGORITMO PARA LA MULTIPLICACIÓN Como ejemplo, desarrollaremos un circuito para la multiplicación de números en binario natural sin signo. Multiplicando Multiplicador Producto parcial inicial Suma el multiplicando pues el bit del multiplicador es 1 Producto parcial después de sumar y antes de desplazar Producto parcial después de desplazar Producto total después del desplazamiento final × Algoritmo: Multiplicando × × Multiplicador Producto

8 ARQUITECTURA DE LA UNIDAD DE PROCESO
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ARQUITECTURA DE LA UNIDAD DE PROCESO Se eligen los componentes que se van a emplear, a qué órdenes van a ser capaces de responder y cómo van a estar interconectados entre sí. n-1 Multiplicando 2k-1  n-1 < 2k k n Contador P k bits Registro B n bits k n n ¿P=0? Sumador n bits Operaciones: INICIO COUT Multiplicador Pn-1 PP-1 Contador P Comentar que ¿P=0? Es simplemente una función NOR de las salidas del contador P n n Z Unidad de control Registro B: BMtndo (asín) Registro A n bits Registro M n bits FF C Registro M: MMtdor (asín) C0 CCOUT Flip-flop C M0 A0 AA+B Registro A n n Desplazamiento a la dcha de C, A y M: CǁAǁMsr CǁAǁM Controles Resultado de la operación

9 ARQUITECTURA DE LA UNIDAD DE PROCESO
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ARQUITECTURA DE LA UNIDAD DE PROCESO CONTADOR P PP-1 P0 P1 P2 P3 Est. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Q3 Q2 Q1 Q0 J Q J Q J Q J Q K FF0 K FF1 K FF2 K FF3 Q Q Q CLK CLK P0 J K FF0 Q (n-1)0 P1 FF1 (n-1)1 P2 FF2 (n-1)2 P3 FF3 (n-1)3 PP-1 Pn-1 Añadimos una operación de carga en paralelo síncrona para el número n-1:

10 ARQUITECTURA DE LA UNIDAD DE PROCESO
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ARQUITECTURA DE LA UNIDAD DE PROCESO REGISTRO B El registro B sólo se utiliza para almacenar el multiplicando de forma asíncrona, por lo que basta con implementarlo a partir de biestables RS: Mtndo3 Mtndo2 Mtndo1 Mtndo0 BMtndo R S R S R S R S B3 B2 B1 B0 Z Z Z Z B3 B2 B1 B0

11 ARQUITECTURA DE LA UNIDAD DE PROCESO
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ARQUITECTURA DE LA UNIDAD DE PROCESO REGISTRO M El registro M, además de permitir la carga asíncrona del multiplicador, debe implementar una operación de desplazamiento a la derecha: Mtdor3 Mtdor2 Mtdor1 Mtdor0 CǁAǁMsr CǁAǁM A0 (bit menos significativo del registro A) MMtdor D D D D Sd Sd Sd Sd FF3 FF2 FF1 FF0 Rd Rd Rd Rd Q Q Q Q CLK M3 M2 M1 M0

12 ARQUITECTURA DE LA UNIDAD DE PROCESO FLIP-FLOP C Y REGISTRO A
TEMA 1: UNIDAD DE CONTROL 1.2.- Unidad de procesamiento de datos (Ruta de datos) ARQUITECTURA DE LA UNIDAD DE PROCESO FLIP-FLOP C Y REGISTRO A El flip-flop C y el registro A deben ser capaces de hacer una carga en paralelo síncrona de las salidas del sumador. Además, implementan una operación de desplazamiento a la derecha y otra de puesta a cero síncrona: COUT S3 S2 S1 S0 C0 A0 CCOUT AA+B CǁAǁMsr CǁAǁM D D D D D FF FF3 FF2 FF1 FF0 Q Q Q Q Q CLK C A3 A2 A1 A0

13 TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico. 1.2.- Unidad de procesamiento de datos (Ruta de datos). 1.3.- Controladores. Implementación de un controlador. 1.4.- Control cableado. 1.5.- Control microprogramado – palabra de control. 1.6.- Respuesta condicional de controladores.

14 DISEÑO DEL CONTROLADOR
TEMA 1: UNIDAD DE CONTROL 1.3.- Controladores. Implementación de un controlador DISEÑO DEL CONTROLADOR Una vez decidida la arquitectura de la unidad de proceso, se plantea el diagrama ASM del controlador: INICIO M0 n-1 Multiplicando k n Contador P k bits Registro B n bits k n n ¿P=0? Sumador n bits INICIO COUT Multiplicador Z n n Unidad de control M M FF C Registro A n bits Registro M n bits M0 n n Controles Resultado de la operación

15 TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico. 1.2.- Unidad de procesamiento de datos (Ruta de datos). 1.3.- Controladores. Implementación de un controlador. 1.4.- Control cableado. 1.5.- Control microprogramado – palabra de control. 1.6.- Respuesta condicional de controladores.

16 Resultado de la operación
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado SEÑALES DE CONTROL Teniendo en cuenta el diagrama ASM, definiremos las señales de control para nuestra unidad de proceso: n-1 Multiplicando k n Contador P k bits Registro B n bits INICIO M0 k n n ¿P=0? Sumador n bits INICIO COUT Multiplicador n Z n Unidad de control FF C Registro A n bits Registro M n bits M0 n n Controles Resultado de la operación Módulo Microperaciones Controles Expresiones Registro A A Initialize IDLEINICIO AA+B Load MUL0M0 CǁAǁMsr CǁAǁM Shitf_dec MUL1 Flip-flop C C0 Clear_C IDLEINICIO+MUL1 CCOUT Load MUL0M0 Registro M CǁAǁMsr CǁAǁM Shift_dec MUL1 Contador P Pn-1 Initialize IDLEINICIO PP-1 Shift_dec MUL1 Indicar que lo que no hace el controlador (cargar multiplicando en B y multiplicador en M) no hay que tenerlo en cuenta en su diseño. M M

17 SECUENCIACIÓN DE LA UNIDAD DE CONTROL
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado SECUENCIACIÓN DE LA UNIDAD DE CONTROL Eliminando la información relativa a las microoperaciones en el diagrama ASM, nos quedaremos con la correspondiente a la secuenciación de estados: INICIO M0 INICIO M M

18 REGISTRO DE SECUENCIA Y DECODIFICADOR
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado REGISTRO DE SECUENCIA Y DECODIFICADOR Al tener tres estados, necesitamos 2 flip-flops y un decodificador de dos bits de dirección: INICIO Estado actual Entradas Est. Sig. Salidas decodificador Nombre Q1Q0 INICIO Z Q1Q0 IDLE MUL0 MUL1 IDLE  MUL   MUL          D Q FF0 INICIO FF1 A0 A1 DEC O0 O1 O2 O3 IDLE MUL0 MUL1 Z CLK Los flip-flops se inicializan a 0 a través de las entradas de reset directas para que el sistema empiece a funcionar en el estado IDLE.

19 REGISTRO DE SECUENCIA Y DECODIFICADOR
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado REGISTRO DE SECUENCIA Y DECODIFICADOR Teniendo en cuenta la tabla que definía los controles para la unidad de proceso, añadimos la circuitería para generar las señales de control: Módulo Microperaciones Controles Expresiones Registro A A Initialize IDLEINICIO AA+B Load MUL0M0 CǁAǁMsr CǁAǁM Shitf_dec MUL1 Flip-flop C C0 Clear_C IDLEINICIO+MUL1 CCOUT Load MUL0M0 Registro M CǁAǁMsr CǁAǁM Shift_dec MUL1 Contador P Pn-1 Initialize IDLEINICIO PP-1 Shift_dec MUL1 Initialize INICIO Clear_C D Q Z FF0 IDLE A0 O0 MUL0 DEC O1 D Q A1 MUL1 O2 Shift_dec FF1 O3 CLK Load M0

20 DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO En vez de codificar, se utiliza un flip-flop por cada estado. El sistema se encontrará en un estado determinado cuando el flip-flop correspondiente esté en 1 (los demás deberán estar en 0). El registro describirá el comportamiento del controlador si el 1 se desplaza por los flip-flops del mismo modo que tiene lugar la evolución temporal indicada en el diagrama ASM. Estado Salida Entrada Caja de estado: D Q FF Aunque se necesitan muchos más flip-flops, el diseño se simplifica debido a la equivalencia directa entre los elementos del diagrama ASM y el circuito del registro de desplazamiento: Salida 0 Entrada Caja de decisión escalar: X Salida 1 1 Unión: Entrada 1 Entrada 2 Salida Salida 0 Salida 1 Salida 2n-1 Entrada Caja de decisión vectorial: X0,X1,…,Xn-1 S0 Sn-1 DEMUX O0 O1 O2 -1 n S1 I X0 X1 Xn-1 Control Caja de salida condicional: Entrada X Salida 1 1 Entrada Salida

21 DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO Consideramos primeramente la parte secuencial del controlador: INICIO D Q FF IDLE INICIO MUL0 MUL1 Z Para que el circuito funcione correctamente, el flip-flop IDLE hay que inicializarlo en 1, y el resto en 0.

22 DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO
TEMA 1: UNIDAD DE CONTROL 1.4.- Control cableado DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO Para implementar las salidas de control, tendremos en cuenta el diagrama ASM completo: INICIO M0 Microperaciones Controles Expresiones A, Pn-1 Initialize IDLEINICIO AA+B, CCOUT Load MUL0M0 CǁAǁMsr CǁAǁM, PP-1 Shitf_dec MUL1 C0 Clear_C IDLEINICIO+MUL1 D Q FF IDLE INICIO MUL0 MUL1 Z Initialize Clear_C M0 Load M M Shift_dec

23 BIFURCACIONES TEMA 1: UNIDAD DE CONTROL
1.4.- Respuesta condicional de controladores BIFURCACIONES En ocasiones es necesario ejecutar una serie distinta de microoperaciones en función de uno o varios bits, y después seguir con una secuencia común de estados. Para ello se implementa una bifurcación en el controlador: DEMUX D Q FF 1 2 3 MUX F1F0

24 SALTOS CONDICIONALES TEMA 1: UNIDAD DE CONTROL
1.4.- Respuesta condicional de controladores SALTOS CONDICIONALES A veces es conveniente poder eliminar la ejecución de una o varias microoperaciones en función de uno o varios bits. Para ello se implementa un salto condicional en el controlador: Solución tipo Moore: F D Q FFA FFB FFC FFD CB CC Solución tipo Mealy: F D Q FFA FFB FFD CB FFC CC La segunda solución necesita menos puertas pero se tarda más tiempo en la ejecución, ya que no se eliminan los estados, sólo se anulan los controles que generan.

25 BUCLES TEMA 1: UNIDAD DE CONTROL
1.4.- Respuesta condicional de controladores BUCLES Con gran frecuencia se necesita ejecutar varias veces la misma secuencia de microoperaciones. En vez de repetir los flip-flops que generan dichas secuencias, se puede implementar un bucle en el controlador: Si queremos que la secuencia dada por los flip-flops B y C se repita N veces, será necesario utilizar un contador de módulo N. Habrá que inicializarlo cuando el controlador empiece a funcionar (al activarse la señal INICIO). Se incrementará cada vez que se pase por los estados del bucle. Al pasar N veces, el contador habrá llegado a su último estado y el final de cuenta TC se hace igual a 1. Por tanto, el controlador abandonará el bucle después de haberlo ejecutado N veces. D Q FFD FFA FFB FFC Contador módulo N TC I INIC FFIDLE INICIO

26 TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico. 1.2.- Unidad de procesamiento de datos (Ruta de datos). 1.3.- Controladores. Implementación de un controlador. 1.4.- Control cableado. 1.5.- Control microprogramado – palabra de control. 1.6.- Respuesta condicional de controladores.

27 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – ROM de microprograma - Idea: Implementar toda la parte combinacional de un autómata de Meally con una Memoria ROM

28 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – ROM de microprograma - Contenido de la Memoria ROM. (Obsérvese que en realidad hay 32 combinaciones) S1 (A4) S0 (A3) M0 (A2) Z (A1) Inicio (A0) (D5) (D4) Load (D3) Shift_Dec (D2) Clear_C (D1) Initialize (D0) X 1

29 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – ROM de microprograma Problema: La ROM de microprograma es demasiado grande en cuanto el número de entradas crece (Todos los posibles términos producto (‘minterms’) están disponibles: 2^n minterms) Solución: Usar una PLA en lugar de la ROM Minimizar el número de términos producto mediante programas de simplificación lógica (como «espresso») Fichero de entrada a espresso: .i 5 .o 6 .ilb s1 s0 m0 z inicio .ob s1p s0p load shift clearc initial .e Fichero de salida de espresso: .i 5 .o 6 .ilb s1 s0 m0 z inicio .ob s1p s0p load shift clearc initial .p 5 .e

30 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – PLA de microprograma PLA de microprograma: Sólo 5 términos producto

31 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – PLA de microprograma Implementación física de los contactos lógicos programables.

32 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – palabra de control Un controlador microprogramado es aquél que tiene sus valores de control almacenados como palabras en una memoria (normalmente una ROM). Cada palabra de control almacenada en la memoria contiene una mircroinstrucción que especifica una o varias microoperaciones. Una secuencia de microinstrucciones constituye un microprograma. Generador de la dirección siguiente Entradas Registro CAR Estado de la unidad de proceso Salidas Controles para la unidad de proceso Microinstrucción Registro CDR Dirección de control Entradas de dirección Salidas de datos ROM Información de la dirección siguiente Secuenciador El registro de control de direcciones (CAR) almacena la dirección de la ROM en que se encuentra la microinstrucción a ejecutar. El registro de control de datos (CDR), opcional, almacena la microinstrucción en curso. La microinstrucción contiene los valores de salida del controlador, así como la información necesaria para determinar la microinstrucción siguiente. Esta información, junto con las entradas al controlador, llegan a un combinacional que genera la dirección de la siguiente microinstrucción a ejecutar, la cual pasa al CAR con el flanco activo de la señal de reloj. Dicho combinacional, junto con el CAR, constituyen el secuenciador. Debido a que el estado de la unidad de proceso no actúa directamente sobre la microinstrucción a ejecutar, este esquema sólo permite circuitos de Moore  En el diagrama ASM no puede haber cajas de salida condicional.

33 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado Ejemplo de controlador microprogramado. Sólo son posibles las bifurcaciones al estado 0.

34 TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado Ejemplo de controlador microprogramado. Bifurcaciones a 4 posibles direcciones

35 CIRCUITO MULTIPLICADOR MICROPROGRAMADO
TEMA 1: UNIDAD DE CONTROL 1.5.- Control microprogramado – palabra de control CIRCUITO MULTIPLICADOR MICROPROGRAMADO Primero transformamos el diagrama ASM original a uno tipo Moore: INICIO M0 INICIO M0 M M M M

36 CIRCUITO MULTIPLICADOR MICROPROGRAMADO
TEMA 1: UNIDAD DE CONTROL 1.5.- Control microprogramado – palabra de control CIRCUITO MULTIPLICADOR MICROPROGRAMADO PALABRA DE CONTROL La palabra de control (microinstrucción, I) constará de los siguientes campos: INICIO M M0 2 bits SEL: Código para la selección de las variables de control de la secuenciación. Son dos bits, puesto que tenemos 3 variables respecto a las que se hacen bifurcaciones en la unidad de control: INICIO, M0 y Z. 3 bits NXTADD0 y NXTADD1: Direcciones de las siguientes microinstrucciones a ejecutar, la primera si la variable de control de la secuenciación es 0 y la segunda si es 1. Hay tantas microinstrucciones como estados distintos tiene la unidad de control. Por tanto se necesitan 3 bits para direccionar los cinco estados: IDLE, INIT, MUL0, ADD y MUL1. CONTUP: Las salidas de control para la unidad de proceso. Son 4 bits, ya que tenemos 4 señales de control para la unidad de proceso: Initialize, Load, Shift_dec y Clear_C. 4 bits NXTADD1 NXTADD0 SEL CONTUP Por tanto, el CAR será un registro de 3 bits, y la ROM tendrá una capacidad mínima de 23x12 bits.

37 CIRCUITO MULTIPLICADOR MICROPROGRAMADO
TEMA 1: UNIDAD DE CONTROL 1.5.- Control microprogramado – palabra de control CIRCUITO MULTIPLICADOR MICROPROGRAMADO PALABRA DE CONTROL NXTADD1 NXTADD0 SEL CONTUP Controles Microperaciones Estado UC Bit I Símbolo Initialize A, Pn-1 INIT IT Load AA+B, CCOUT ADD LD Shift_dec CǁAǁMsr CǁAǁM, PP-1 MUL SD Clear_C C0 INIT, MUL CC Señales de control para la unidad de proceso: Códigos del campo SEL: Símbolo Código Microoperaciones NXT CARNXTADD0 DIN INICIO: CAR NXTADD0 INICIO: CAR NXTADD1 DM M0: CAR NXTADD0 M0: CAR NXTADD1 DZ Z: CAR NXTADD0 Z: CAR NXTADD1 Estado Dirección IDLE INIT MUL ADD MUL Códigos de dirección de los estados del controlador:

38 CIRCUITO MULTIPLICADOR MICROPROGRAMADO
TEMA 1: UNIDAD DE CONTROL 1.5.- Control microprogramado – palabra de control CIRCUITO MULTIPLICADOR MICROPROGRAMADO ARQUITECTURA DE LA UNIDAD DE CONTROL Multiplicando Multiplicador UNIDAD DE PROCESO SECUENCIADOR Producto CONTUP ROM 8×12 bits INICIO M0

39 CIRCUITO MULTIPLICADOR MICROPROGRAMADO
TEMA 1: UNIDAD DE CONTROL 1.5.- Control microprogramado – palabra de control CIRCUITO MULTIPLICADOR MICROPROGRAMADO MICROPROGRAMA INICIO M M0 Microprograma descrito mediante microoperaciones de transferencia entre registros: Dirección Microoperaciones IDLE INICIO: CARINIT INICIO: CARIDLE INIT A0, C0, Pn-1, CARMUL0 MUL0 M0: CARADD M0: CARMUL1 ADD AA+B, CCOUT, CARMUL1 MUL1 C0, CǁAǁMsr CǁAǁM, PP-1 Z: CARIDLE Z: CARMUL0 Discutir la posibilidad de codificar las diferentes combinaciones de bits de control para la UP. En este caso no compensa la disminución del tamaño de la ROM al tener que añadir un decodificador. Microprograma simbólico: Dirección NXADD1 NXADD0 SEL CONTUP IDLE INIT IDLE DIN  INIT  MUL0 NXT IT, CC MUL0 ADD MUL1 DM  ADD  MUL1 NXT LD MUL1 IDLE MUL0 DZ CC, SD Microprograma en binario: Dirección NXADD1 NXADD0 SEL CONTUP      


Descargar ppt "TEMA 1: UNIDAD DE CONTROL"

Presentaciones similares


Anuncios Google