TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción:
Introducción: Máquinas
Máquinasde
deestado
estadoalgorítmico.
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.
TEMA 1: UNIDAD DE CONTROL
datos
datos
1.1.- Introducción: Máquinas de estado algorítmico
Registros,
reg. operativos
CLK
op.code
CLK
UNIDADES DE
PROCESO Y
CONTROL
Memorias
circuitos
aritmeticos
buses / mux.
entradas de
control
salidas de
estado
salidas de
control
entradas de
condicion
codigo de
operacion
SECUENCIADOR
UNIDAD
DE
PROCESO
UNIDAD
DE
CONTROL
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:
Caja de estado:
Entrada
Nombre
Caja de decisión escalar:
Código
binario
Entrada
IDLE
000
Operación sobre registro
Valor de salida
R0
RUN
Salida
Salida
Caja de salida condicional:
Entrada
Salida 0
Salida
1
Salida 1
Caja de decisión vectorial:
Entrada
Entrada
Operación sobre registro
Valor de salida
Condición
de 1 bit
0
Salida 0
Salida 1
…
Condición
de n bits
…
Salida 2n-1
TEMA 1: UNIDAD DE CONTROL
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:
Entradas: START y Q0.
Entrada
Bloque ASM
Salidas: AVAIL y CLRA (Reset síncrono de A).
Estado START,Q0/CLRA
AVAIL
0/0
Salida
IDLE
10/1
Salida
1
11/1
Salida
MUL0
MUL1
0
0
TEMA 1: UNIDAD DE CONTROL
1.1.- Introducción: Máquinas de estado algorítmico
DIAGRAMAS ASM
TEMPORIZACIÓN DE SEÑALES
Siguiendo con nuestro ejemplo:
Ciclo:
0
Entrada
1
Bloque ASM
2
CLK
Salida
START
Q0
Salida
Estado
IDLE
IDLE
MUL1
0034
0034
0000
AVAIL
CLRA
Reg A
Salida
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.
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
×
Algoritmo:
Producto parcial inicial
Multiplicando
×
×
Multiplicador
Multiplicador
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
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 parcial después de desplazar
Producto parcial después de desplazar
Producto
Suma el multiplicando pues el bit del multiplicador es 1
Producto parcial después de sumar y antes de desplazar
Producto total después del desplazamiento final
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
2k-1  n-1 < 2k
Multiplicando
k
n
Contador P
Registro B
k bits
n bits
k
n
¿P=0?
n
Sumador
n bits
INICIO
COUT
Unidad de
control
Multiplicador
n
Z
0
FF C
Operaciones:
n
Registro A
Registro M
n bits
n bits
Flip-flop C
M0
n
Controles
Pn-1
PP-1
Registro B: BMtndo (asín)
Registro M: MMtdor (asín)
Contador P
n
Resultado de la operación
C0
CCOUT
A0
AA+B
Desplazamiento a la dcha de
C, A y M: CǁAǁMsr CǁAǁM
Registro A
TEMA 1: UNIDAD DE CONTROL
1.2.- Unidad de procesamiento de datos (Ruta de datos)
ARQUITECTURA DE LA UNIDAD DE PROCESO
CONTADOR P
Est. Q3 Q2 Q1 Q0
0
1
2
3
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
4
5
6
7
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
8
9
10
11
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
12
13
14
15
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
P0
PP-1
Q
J
K FF0
Q
P1
Q
J
K FF1
Q
P2
Q
J
K FF2
Q
P3
Q
J
K FF3
CLK
Añadimos una operación de carga en paralelo síncrona para el número n-1:
(n-1)0
(n-1)1
(n-1)2
(n-1)3
Pn-1
PP-1
J
CLK
K
FF0
Q
P0
J
K
FF1
Q
Q
P1
J
K
FF2
Q
Q
P2
J
K
FF3
Q
Q
P3
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
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
Sd D
Rd
FF3
Q
Sd D
Rd
FF2
Q
Sd D
Rd
FF1
Q
Sd D
Rd
FF0
Q
CLK
M3
M2
M1
M0
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
D
D
D
D
D
FF
FF3
FF2
FF1
FF0
Q
Q
Q
Q
Q
C
A3
A2
A1
A0
C0
CCOUT
A0
AA+B
CǁAǁMsr CǁAǁM
CLK
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.
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
n-1
Multiplicando
k
n
Contador P
k bits
M0
k
n
¿P=0?
INICIO
COUT
M
Unidad de
control
n
Sumador
n bits
n
Z
M
Registro B
n bits
0
FF C
Registro A
n bits
n
Registro M
n bits
M0
n
Controles
Multiplicador
n
Resultado de la operación
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.
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
k
n
¿P=0?
INICIO
INICIO
COUT
Sumador
n bits
Multiplicador
n
Z
Unidad de
control
n
0
FF C
n
Registro A
n bits
M0
n
Controles
M0
M
Registro M
n bits
n
Resultado de la operación
Módulo
Microperaciones
Controles
Expresiones
Registro A
A
AA+B
CǁAǁMsr CǁAǁM
Initialize
Load
Shitf_dec
IDLEINICIO
MUL0M0
MUL1
Flip-flop C
C0
CCOUT
Clear_C
Load
IDLEINICIO+MUL1
MUL0M0
Registro M
CǁAǁMsr CǁAǁM
Shift_dec
MUL1
Initialize
Shift_dec
IDLEINICIO
MUL1
M
Contador P Pn-1
PP-1
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
INICIO
M0
M
M
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
0 0
0 0
0
1


0 0
0 1
1
1
0
0
0
0
MUL0
0 1


1 0
0
1
0
MUL1
1 0
1 0


0
1
0 1
0 0
0
0
0
0
1
1

1 1


 



INICIO
D
FF0
Z
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.
Q
A0
D
CLK
Q
FF1
A1
O0
DEC O1
O2
O3
IDLE
MUL0
MUL1
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
AA+B
CǁAǁMsr CǁAǁM
Initialize
Load
Shitf_dec
IDLEINICIO
MUL0M0
MUL1
Flip-flop C
C0
CCOUT
Clear_C
Load
IDLEINICIO+MUL1
MUL0M0
Registro M
CǁAǁMsr CǁAǁM
Shift_dec
MUL1
Initialize
Shift_dec
IDLEINICIO
MUL1
Contador P Pn-1
PP-1
Initialize
Clear_C
INICIO
D
Q
FF0
Z
A0
D
CLK
M0
Q
FF1
A1
O0
DEC O1
O2
O3
IDLE
MUL0
MUL1
Shift_dec
Load
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.
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:
Entrada
X
Estado
Estado
D
0
Q
FF
Salida
Salida
1
X
Salida 1
Salida 0
Salida 0 Salida 1
S0
S1
…
…
…
Salida 2n-1
Xn-1 Sn-1
X0
X1
DEMUX
… X0,X1,…,Xn-1
Entrada
Entrada
I
Salida 0
Salida 1
Salida
Caja de salida condicional:
Caja de decisión vectorial:
Entrada
Salida
Entrada 2
Entrada
Entrada 1
Entrada
Entrada 2
Entrada
Unión:
Entrada 1
Caja de decisión escalar:
Caja de estado:
O0
O1
…
O2n-1
Salida 0
X
Entrada
1
X
Salida 1
…
Control
Salida 2n-1
Salida 1
Salida 1 Control
TEMA 1: UNIDAD DE CONTROL
1.4.- Control cableado
DISEÑO CON UN REGISTRO DE DESPLAZAMIENTO
Consideramos primeramente la parte secuencial del controlador:
IDLE
D
Q
INICIO
FF
INICIO
MUL0
D
Q
FF
MUL1
D
Q
FF
Z
Para que el circuito funcione correctamente, el flip-flop IDLE hay que inicializarlo en 1, y el resto en 0.
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
Microperaciones
Controles
Expresiones
A, Pn-1
AA+B, CCOUT
CǁAǁMsr CǁAǁM, PP-1
C0
Initialize
Load
Shitf_dec
Clear_C
IDLEINICIO
MUL0M0
MUL1
IDLEINICIO+MUL1
IDLE
D
Q
INICIO
FF
M0
Initialize
MUL0
D
Q
FF
M
M0
Clear_C
M
MUL1
D
Q
FF
Load
Z
Shift_dec
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
0
1
FF
D
FF
D
FF
Q
D
FF
D
Q
FF
Q
D
FF
Q
D
Q
MUX
FF
Q
D
2
3
F1F0
FF
D
Q
FF
D
FF
Q
D
Q
Q
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:
CB
Solución tipo Moore:
FFA
D
CC
FFB
Q
D
FFC
Q
D
Q
FFD
D
Q
F
CB
Solución tipo Mealy:
CC
F
FFA
D
FFB
Q
D
FFC
Q
D
FFD
Q
D
Q
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.
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:
Contador módulo N
INIC
TC
INICIO
I
D
FFA
D
…
FFIDLE
D
Q
FFD
Q
FFB
D
Q
FFC
Q
D
Q
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.
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.
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
clk
estado
actual
ROM 32 x 6
D
Q
A4
D5
D
Q
A3
D4
clr
M0
Entradas
de
condicion
Z
INICIO
estado
siguiente
D3
Load
D2
Shift_Dec
D1
Clear_C
D0
Initialize
A2
A1
A0
Salidas
de
control
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)
S1
(D5)
S0
(D4)
Load
(D3)
Shift_
Dec
(D2)
Clear
_C
(D1)
Initial
ize
(D0)
0
0
X
X
0
→
0
0
0
0
0
0
0
0
X
X
1
→
0
1
0
0
1
1
0
1
0
X
X
→
1
0
0
0
0
0
0
1
1
X
X
→
1
0
1
0
0
0
1
0
X
0
X
→
0
1
0
1
1
0
1
0
X
1
X
→
0
0
0
1
1
0
1
1
X
X
X
→
X
X
X
X
X
X
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
00
00
01
01
10
10
11
.e
0
1
-
0
1
-
0
1
-
0
0
1
1
0
0
-
0
1
0
0
1
0
-
0
0
0
1
0
0
-
0
0
0
0
1
1
-
0
1
0
0
1
1
-
0
1
0
0
0
0
-
Fichero de salida de espresso:
-----------------------------.i 5
.o 6
.ilb s1 s0 m0 z inicio
.ob s1p s0p load shift clearc initial
.p 5
00--1 010011
-11-- 001000
1--0- 010000
-1--- 100000
1---- 000110
.e
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – PLA de microprograma
-
PLA de microprograma: Sólo 5 términos producto
S1
S0
M0
Z
INICIO
Matriz OR
Matriz AND
S1
S0
Load
Shift
_Dec
Clr_C Initialize
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – PLA de microprograma
-
Implementación física de los contactos lógicos programables.
S1
S0
M0
Z
INICIO
Vcc
S1
S0
Load
Shift
_Dec
Clr_C Initialize
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.
Estado de la unidad
Entradas de proceso
Información de la dirección siguiente
Generador 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.
Registro CAR
Dirección de
control
Entradas de
dirección
ROM
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.
Salidas de datos
Registro CDR
Microinstrucción
Salidas Controles para la
unidad de proceso
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado
Ejemplo de controlador microprogramado. Sólo son posibles las bifurcaciones al estado 0.
Contador
de uInstr.
Y
X
Vcc
3
2
1
0
mux
-
ROM
16x8
Q3
Q2
Res.
sincr. Q1
Q0
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
clk
D1
D0
Direccion siguiente
0
0
Dir+1
0
1
1
0
Dir+1 si X=0, 0 si X=1
1
1
0 si Y=0, Dir+1 si Y=1
Comentarios
Incondicional
0
Condicional
salidas
de
control
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado
Ejemplo de controlador microprogramado. Bifurcaciones a 4 posibles direcciones
Tabla de
saltos
ROM
4x4
Y
X
Vcc
3
2
1
0
A1 A0
Contador
de uInstr.
D3
D2
D1
D0
mux
-
P3
P2
P1
P0
Q3
Q2
Q1
Q0
ROM
16x8
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
salidas
de
control
Load
clk
D3
D2
Direccion siguiente
0
0
Dir+1
0
1
Tabla[D1:D0]
1
0
Dir+1 si X=0, Tabla[D1:D0] si X=1
1
1
Tabla[D1:D0] si Y=0, Dir+1 si Y=1
Comentarios
Incondicional
D1,D0: indice de la
tabla de saltos
Condicional
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
INICIO
M0
M0
M
M
M
M
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:
3 bits
11
INICIO
10
NXTADD1
3 bits
9 8
7
NXTADD0
2 bits
6 5
4 3
SEL
4 bits
2
1
0
CONTUP
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.
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.
M0
M
M
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.
Por tanto, el CAR será un registro de 3 bits, y la ROM tendrá una capacidad mínima de 23x12 bits.
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – palabra de control
CIRCUITO MULTIPLICADOR MICROPROGRAMADO
PALABRA DE CONTROL
11
10
9
8
NXTADD1
7
NXTADD0
6
5
4
3
SEL
2
1
0
CONTUP
Señales de control para la unidad de proceso:
Controles
Microperaciones
Estado UC
Initialize
Load
Shift_dec
Clear_C
A, Pn-1
AA+B, CCOUT
CǁAǁMsr CǁAǁM, PP-1
C0
INIT
ADD
MUL1
INIT, MUL1
Códigos del campo SEL:
Símbolo
Código
Microoperaciones
Bit I
0
1
2
3
Símbolo
IT
LD
SD
CC
Códigos de dirección de los estados
del controlador:
NXT
00
CARNXTADD0
Estado
DIN
01
INICIO: CAR NXTADD0
INICIO: CAR NXTADD1
DM
10
M0: CAR NXTADD0
M0: CAR NXTADD1
DZ
11
Z: CAR NXTADD0
Z: CAR NXTADD1
IDLE
INIT
MUL0
ADD
MUL1
Dirección
000
001
010
011
100
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
TEMA 1: UNIDAD DE CONTROL
1.5.- Control microprogramado – palabra de control
CIRCUITO MULTIPLICADOR MICROPROGRAMADO
MICROPROGRAMA
Microprograma descrito mediante microoperaciones
de transferencia entre registros:
INICIO
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
M0
M
M
Microprograma simbólico:
Microprograma en binario:
Dirección
NXADD1
NXADD0
SEL
CONTUP
Dirección
IDLE
INIT
MUL0
ADD
MUL1
INIT

ADD

IDLE
IDLE
MUL0
MUL1
MUL1
MUL0
DIN
NXT
DM
NXT
DZ

IT, CC

LD
CC, SD
000
001
010
011
100
NXADD1
NXADD0
SEL
CONTUP
001

011

000
000
010
100
100
010
01
00
10
00
11
0000
1001
0000
0010
1100