2. INTRODUCCiÓN
• Existen sistemas secuenciales demasiado complejos pa-
ra poder implementarlos con las técnicas vistas· hasta
ahora, por ejemplo, el procesador MIPS posee 32 regis-
tros de 32 bits, lo que lleva a un total de 21024 estados.
• En este tema veremos nuevas metodologías para imple-
mentar algoritmos o computaciones sobre conjuntos de
datos (vectores de n bits). En general constan de ope-
raciones combinacionales más sencillas que se realizan
secuencialmente.
Ejemplos de dichos algoritmos son un sumador secuen-
cial con un único FA o un multiplicador a partir de un
sumador paralelo.
• Esta metodología es la que se emplea para la implemen-
tación de los computadores digitales de propósito gene-
ral.
• También se utiliza para implementar hardware específi-
co para la computacóon de algoritmos concretos, sobre
todo en campos tales como el tratamiento de señales,
procesamiento de imágenes, etc.
1
3. CONCEPTOS BÁSICOS
• La especificación algorítmica de sistemas secuenciales implementa
eficientemente algoritmos o computaciones que se realizan sobre'
vectores de datos de n bits. Son los llamados algoritmos RT ('Regis-
ter Transfer').
• Una computación es un conjunto de operaciones más simples que
consiste en la transferencia de vectores entre registros. Durante las
transferencias se realizan las operaciones de suma, desplazamien-
to, comparación, etc.
• Esta nueva metodología divide la implementación en dos bloques
básicos:
• Camino de datos, el conjunto de elementos que implementa
el almacenamiento de datos y las funciones de transformación
de los mismos .
• Sección de control, el sistema secuencial o autómata que
controla la transferencia y transformaciones de los datos así
como el secuenciamiento y la operación de todo el sistema.
• El esquema general se puede ver en la siguiente figura:
Data
subsystem ~
ms
COI
sigl
Control
subsystem
Data inputs .1 Udld 1 • Data outputs
Control inputs -~---.¡ _
~~"~
~I __ I • Control outputs
2
4. CONCEPTOS BÁSICOS
• El camino de datos recibe los datos del exterior (entra-
das o "Data Input") y devuelve los resultados obtenidos
(salidas o "Data Output").
• La sección de control recibe órdenes e información del
exterior ("Control Input", por ejemplo, reset, begin, stop,
modo de operación ...) y envía información u órdenes al
exterior ("Control Output", por ejemplo, end, done, over-
f1ow ... ).
• Las condiciones son generadas por el camino de datos
y sirven para que la sección de control pueda tomar de-
cisiones y realizar un control dependiente de los datos.
Ejemplos de condiciones son el signo de un operando, el
acarreo en una operación, un desbordamiento, el valor
de un bit o una comparación, etc.
• Los puntos de control son las señales necesarias para
realizar las transformaciones de los datos. Son genera-
das por la sección de control e indican al camino de da-
tos el modo de operación de todos y cada uno de sus
elementos.
Ejemplos de puntos de control son la carga de un regis-
tro, los bits de control de un MUX o de DEMUX, el tipo
de operación de una ALU, el incremento de un contador,
el desplazamiento de un registro, el sentido del despla-
zamiento, la lectura o escritura en una memoria, etc.
3
5. CONCEPTOS BÁSICOS
• El resultado de aplicar o activar cada uno de los puntos
de control se denomina microoperación.
• El conjunto de microoperaciones que se pueden reali-
zar de forma concurrente (en paralelo) se denomina mi-
croinstrucción. Cada microinstrucción determina o equi-
vale a un estado del autómata de la sección de control.
• Cada estado debe indicar que puntos de control hay que
activar en ese momento y cual es su estado (microins-
trucción) siguiente, que en general dependerá de las con-
diciones actuales del camino de datos.
• El conjunto o secuencia de todas las microinstrucciones
constituye un microprograma y su objetivo es imple-
mentar el algoritmo o computación requerido.
4
6. .CAMINO DE DATOS
• Se encarga de almacenar y transformar los datos .
• Consta de:
• Elementos de almacenamiento.
• Operadores.
• Buses .
• Elementos de almacenamiento: almacenan la informa-
ción. El componente básico es el registro de N bits.
• Registro de N bits con LOAD y CLEAR.
X Yn
CK- y
n
y
LOAD
CLEAR
Operación: if LOAD then y+-x
if CLEAR then y+-O
5
7. CAMINO DE DATOS
• RAM = conjunto de 2k registros de N bits que sólo pue-
den accederse de uno en uno.
X Yn
A
k MEMORIA 1'"
•
(2K x n)
n
y
• READ
• WRITE
Operación: if READ then y~M[~(A)] el se y~O
if WRITE then M[~(A)]~x
() ,",k-l .
s iendo ~ A = Úi=O Ai . 2~
• Fichero de registros.
RA
WA
p
,L
p
R 1•••
(2P x n) ,~
• READ
• WRITE
y
n
Operación: if READ then y~R,¡[~(A)] else y~O
if WRITE then RJ~(A)]~X
6
8. ·CAMINO DE DATOS
• Otros elementos de almacenamiento: FIFO y L1FO
READ
WRITE
y
FIFO
n
FULL
EMPTY
PUSH
POP
y
L/Fa
n
FULL
EMPTY
• Operadores: se encargan de transformar los datos.
A B
in
in
S 'p ":: / in
y
donde OP: ADD, SUB, MAX, MIN,
AND, OR, NOR, EXOR,
SHIFT, ...
• OP también puede representar una función más compleja imple-
mentada con sistemas secuenciales (multiplicadores, divisores, ...).
• Los operadores generan algunas condiciones: >, <, =, carry, over-
flow, ...
7
9. CAMINO DE DATOS
• Buses: son las conexiones, junto con los switches necesarios, que
comunican los distintos elementos del camino de datos (registros y
operadores) .
• Se clasifican en:
• Paralelos/Serie
• Unidireccionales/Bidireccionales
• Dedicados/Compartidos
• Directos/Indirectos
Source Destination
A I .1 B I
(a)
(e)
cp
~ S-Switch
G
A
16
~
(b)
Dedicated
~
(d)
8
10. CAMINO DE DATOS
• Switches: establecen o cortan el acceso al bus.
• Unidireccionales
Xo+Yo
~1~
X Y Xl Yl
e
Xn-l~Yn-l
e
• Bidireccionales
n
a
LOADl
9
11. CAMINO DE DATOS
• Selector: selecciona una de entre varias fuentes de da-
tos (MUX).
X[k-1] X[O]
s p
n ...
Selector
n
y
• Distribuidor: selecciona uno de entre varios destinos de
datos (DEMUX).
x
s p
Y[k-1] Y[O]
10
12. -CAMINO DE DATOS
• Ejemplos de buses:
• Crossbar
n n n
• Bus compartido
o Usando un selector.
n
n
LOAD1 LOAD2
n
LOADm
n
S
1092 m
o Usando registros con salida triestado.
LOAD1
ENABLE1
n
11
13. SECCiÓN DE CONTROL
• Es el sistema secuencial o autómata que al activar los puntos de
control en el orden adecuado controla las transferencias y transfor-
maciones de los datos que tienen lugar en el camino de datos y que
implementan un algoritmo específico.
• Cada estado o microinstrucción de la sección de control indica qué
puntos de control se activan en cada momento (salidas del autóma-
ta) y, en función de las condiciones (entradas del autómata), cual es
el estado o microinstrucción siguiente.
• La sección de control también se puede representar mediante un
diagrama de flujo.
• Existen diversos métodos para implementar una sección de control:
1. Tablas de estado.
2. Elementos de retardo.
3. Microprogramación.
• Tablas de Estado
• Es la metodología que ya se ha explicado.
• Es compleja, dificil de depurar, no es modular ni flexible y es
dificil realizar modificaciones (no hai una relación evidente entre
la implementación y el algoritmo).
• Su uso es poco frecuente.
• Se denomina "Lógica Aleatoria".
12
14. SECCiÓN DE CONTROL
• Elementos de retardo
• Implementación sencilla y directa.
• Alta velocidad pero con un alto coste hardware.
• Se utiliza en sistemas relativamente pequeños.
• Cada estado se implementa con un biestable tipo D.
• Exiten equivalencias entre un autómata, un diagrama de flujo y
la implementación mediante elementos de retardo.
u
y
x
CK
CK
13
15. SECCiÓN DE CONTROL
• Los puntos de control que se activan en cada estado se sacan de la
salida del biestable correspondiente.
CK s·1
c·
J
• Para activar un punto de control en dos o más estados:
s·
1
CK
, • •
• Cl
S~
~C2
C3
14
16. SECCiÓN DE CONTROL
• Ejemplo: implementación con elementos de retardo
Autómata Diagrama de Flujo
K
15
17. SECCiÓN DE CONTROL
• Ejemplo (cont.): implem. con elementos de retardo
CLK
preset
c1ear
start
k
16
18. SECCiÓN DE CONTROL
• Ejemplo (cont.): implem. con elementos de retardo
CLK
start
demuxo--¡-¡
, I~ ------~
k
l_~
; : ; ~ ;
i"k" sóo es relevante cu;imdoS,=~
!
-n~
__
fllo
o i
/
10
i '
!!
! 0
~,~:~-'
¡, O
,/,
10
H
! O i
i
o
o
o
o
o
: o !
o /" A 0 n
-~/~1-' ~I/0 10 10 10
j • l', ' I ! ' 1
j 1: I ! o í O! ! o
, ¡ 1 i 1 ' ,
l' " ,i I ,
,í1 '1 I,ro: ,o! lo
¡ ,¡ I i ! .
'~il lio iO,:iO
, , ' : !
, : , : I ': l' !
01 0/1 ¡O'li11liO
1, ;: i i 1; i i
h;
i--i--+, ------;------+----
Oi 0, iOi 1!lio:I11 I
/ . / ' ,! 1,1; : )' f ,--~-----
01 01 01 1/ Io! '11 l'
) ) j J' j ) ¡--------
fll4 fll3 fll4
17
19. SECCiÓN DE CONTROL
• Microprogramación
• La implementación es sencilla y estándar.
• El hardware es casi independiente de la implemen-
tación.
• Es muy flexible y versátil.
• Fácil de depurar, modificar y ampliar.
• Su funcionamiento es relativamente lento debido a
los accesos a la memoria de control.
• Apta para sistemas grandes y/o complejos.
18
20. SECCiÓN DE CONTROL
• Microprogramación
• Una de las implementaciones más sencillas:
DIRECCIÓN DE SALTO
MUX
2P a 1
p
MEMORIA
DE
CONTROL
(2k x m)
~CLK
ID
I TIPO IlINSTRUCCIÓN
CONDICIÓN DE SALTO
REGISTRO DE
MICROINSTRUCCIÓN
PUNTOS DE CONTROL
k
19
21. SECCiÓN DE CONTROL
• Memoria de control
• Almacena la información de control necesaria para
ejecutar el algoritmo.
• Su tamaño viene dado por el número de microins-
trucciones (2k) del microprograma por el número de
bits por microinstrucción (m).
• Se puede implementar con una ROM, PROM o RAM.
• Contador de microprograma (J.LPC)
• Oirecciona la memoria de control para seleccionar la
siguiente microinstrucción (J.LI).
20
22. SECCiÓN DE CONTROL
• Registro de microinstrucciones (MIR)
• Almacena la J-lI que se está ejecutando actualmente .
• Ejemplo de formato doble para codificar las J-lI:
1. Para instrucciones de salto:
o El bit más significativo a cero.
o El campo condición indica la condición a verificar.
o El campo dirección de salto codifica la dirección de la
siguiente J-lI a ejecutar si la condición es cierta.
2. Para puntos de control:
o El bit más significativo a uno.
o Los puntos de control pueden estar codificados (micro-
programación vertical) o no (microprogramación horizon-
tal).
21
23. SECCiÓN DE CONTROL
• El funcionamiento o secuenciamiento puede realizarse de diferentes
formas. Una de las más sencillas:
...~
la . b ~ d 1------
~ •••• u ••• uuuu n·uu ••• uu .m.u.u •••. muuu ••• u. uuum~
ciclo ejecución pI
• a: generación de la dirección siguiente = el /1PC se incrementa
(ejecución de la siguiente /11) o se carga una nueva dirección
(salto).
• b: se direcciona la memoria de control = lectura de la /11 co-
rrespondiente.
• e: carga de la /11 direccionada en el MIR.
• d: ejecución de la /11, dos posibilidades:
1. Activación de los puntos de control y desactivación del MUX
de condiciones::::} El /1PC se incrementa.
2. Selección en el MUX de la condición a verificar. Si se cumple
la salida del MUX = 1 ::::}el /1PC se carga con la dirección
especificada en la p,1.
22
24. SECCiÓN DE CONTROL
• Ejemplo de sección de control microprogramada
Sffir~~
1 100 O O
O O 1 O O O
1 O 1 O O O
100 1 O O
1 O O O 1 O
1 O O O O 1
O 101 O O
O O O O O O
CLK
23
25. SECCiÓN DE CONTROL
• Ejemplo de sección de control microprogramada (cont.)
CLK
~C
JlU. j, ', rL
, .....
o: :: ¡ : 2 :3 :4 :5 : ;6 : 7 ! o
:, ": ': ': '. 1" ".
, . ,
, . ,
, : ,
start
k ~';:
'. ,
L: '
,: ,
,: '
': I
,: ,
, ,
, ,
o
~4
S4
í:
1:0
:0,
: '1
~~':ol
: ;1
: :!
Vil
;rf
'j
~3
S3
:, ,
o !
:0;
. ,
T
no
no
J¡
o
:,j
:~
2;
S2
:0
:
, ,
: :0,
~;'o".
i :
! :j
. ,
¡!1
: l : I
:.f0l:
¡ 1
i :!
: .:
, : i
o
o
~I
s·1,
:0
¡
,
>1
101
LfUi:¡.
;,
: :.
: :
JUl.!:¡
¡ j ¡
! : i
" :;
: I • I
i:o ;,
! :
L~¡ l~
11: I~~
,{o
1:0'
, ,
~o
So
enableMUX
loadflPC
24
26. SUMADOR SECUENCIAL
• Algoritmo O (alto nivel): realiza la operación pero no tie-
ne en cuenta la sincronización con el exterior.
Cargar A
Cargar B
Borrar C
for 1=1 to n
{
Di +- Ai EB Bi EB e
e +- Ai . Bi + CAi EB Bi) . e
}
25
27. SUMADOR SECUENCIAL
• Algoritmo 1: introduce la sincronización con el exterior mediante
dos señales:
1. Control Input: start, indica cuando comenzar la operación.
2. ControlOutput: done, indica cuando ha finalizado. Mientras es-
ta señal esté a cero no puede comenzarse una nueva opera-
ción.
• También se identifican las entradas y salidas utilizadas:
1. Data Inputs: A, B
2. Data Outputs: D
WA1T: do
done +- 1
while (start)
done +- O
Cargar A
Cargar B
Borrar C
for 1=1 to n
{
Di +- Ai E9 Bi E9 e
e +- Ai . Bi +(Ai E9 Bi) . e
}
gota WA1T
26
28. SUMADOR SECUENCIAL
• Una vez identificadas las líneas de conexión con el exte-
rior empezaremos por diseñar un camino de datos capaz
de realizar el algoritmo:
1. Se identifican las unidades de almacenamiento y ope-
radores necesarios:
• A, B Y o: registros de n bits.
• C, done: biestables (registros de 1 bit).
• 1 FA.
• 1 Contador + 1 Comparador.
2. Se establecen las conexiones entre los elementos
del camino de datos identificados y se determinan
los puntos de control necesarios (existen diferentes
alternativas) .
27
30. SUMADOR SECUENCIAL
• Algoritmo 2: introduce los puntos de control (microoperaciones)
WA1T: do
Preset
--
while (start)
Ciear
LOADA
LOADB
CLEARc
for 1=1 to n
{
SHIFTD
LOADc
SHIFTA
SHIFTB
}
gota WA1T
• Existen microoperaciones que pueden realizarse simultaneamente
(p.e. LOADA y CLEARc), por lo que ambos puntos de control
pueden activarse simultaneamente y formar una microinstrucción.
• Por el contrario hay puntos que no se pueden activar simultanea-
mente (p.e. LOADA y LOADB), por lo que formaran microinstruc-
ciones diferentes.
29
31. SUMADOR SECUENCIAL
• Algoritmo 3: se identifican las operaciones simultaneas
(se reduce el número de microinstrucciones necesarias).
WA1T: do
Preset
--
while (start)
Clear 11 LOADA 11 CLEARc
LOADB
for 1=1 to n
SHIFTD 11 LOADcl1 SHIFTAII SHIFTB
gota WA1T
30
32. SUMADOR SECUENCIAL
• El último paso consiste en eliminar las estructuras de control com-
plejas (bucles WHILE, FOR, etc.) remplazándolas por saltos condi-
cionales (if) o incondicionales (gota).
do
operación
while (x)
pasaría a ser:
LOOP: operación
if (x) then gota LOOP
for 1=1 to n
operación
pasaría a ser:
GLEAR¡
LOOP: operación I I 1NG¡
if (1<n) then gota LOOP
31
33. SUMADOR SECUENCIAL
• Algoritmo 4: se substituyen las estructuras complejas por sus mi-
croinstrucciones equivalentes activando en paralelo los puntos de
control que lo permitan.
WAIT: 50: Preset
if (start) then goto WAIT
51: Clear 1 1 LOADA I 1 CLEARc I 1 CLEAR¡
52 : LOADB
LOOP: 53: 5HIFTD 11 LOADcl1 5HIFTAII 5HIFTBIIINC¡
if (I<n) then goto LOOP
goto WAIT
32
34. SUMADOR SECUENCIAL
• El algoritmo puede expresarse también mediante un au-
tómata o diagrama de flujo.
I~n
{Preset}
{Preset}
{Clear, LoadA' Clearc' Clear)
{LoadB}
{Loadc' ShiftA, ShiftB, ShiftD}
33
35. •
en
c:
s:
»
e
O
XI
en
m
O
c:
m
z
O
-
»
r-
CDm
Cf) -
(")
e-m
:::J. 3
(") -.
o :::J
. o
Oa.
~CD
ma.
"'O m
0--
Cf)0
-.Cf)
o-
- . ..0
=:e
a.CD
m _.
~3
"'O
CD
3
CD
:::J
--
m
e
:::J
m
(")
o
3
"'O
e
--
m
(")
o-
:::J
:::J
o
CLEAR,
INC,
1<"
.,••.t::::::j f---
CI." do",
DATA INPUT
DATA OUTPUT
LOADa
SHIFTo
"
D
CK
n
TI
Cit.
CK
C FA S
I I
LOADA
CLEAR
LOADcc
1
log2"
ú)
~
36. SUMADOR SECUENCIAL
• Algoritmo 4 bis: sólo cambian los puntos de control que se activan
en 83
WAIT: 80: Preset
if (start) then goto WAIT
81: Clear I I LOADA I I CLEARc I I CLEAR¡
82 : LOADB
LOOP: 83: 8HIFTD 11 LOADcl1 INC¡
if (I<n) then goto LOOP
goto WAIT
35
37. SUMADOR SECUENCIAL
• Implementación de la sección de control: elementos de
retardo.
CLK
preset
clear~
;r-r--Preset
start DEMUX
, n Clear
Load
A
~ Clearc
Clear,
Load
B
Shift
D
Load e
Ine 1 •• 1 ~n!Vlu~ I
I
(Shift)
(ShiftB)
CLK
start
11I11I
, ,
.I~: 1,' 11I11I ~_~~
11I11I
11I11I
111I11
11I11I
1II1111~ __ ~ __ -~--~-
1 ~ O O O 1 111I11 6 7 7 7
I«n-l) ~,
36
38. Elementos de Retardo
c.u
-.......¡
~w
al So
LOAD.
SHIFI'o
LOADc
IN~
CLK iLJ'"
S2J" ·-~I
__
"
"
" "
S3 __ S·~~:· ----+-., , , I ._
·I-~~~: : :1
INC! • ~: ••• "'. : ._
1]-0 X-OX-, X-2---r, .~-n-lX-nX=~
I<n '" l~.~_
n veces ~
Por eso debemos cambiar la condición a: 1 < n-l
39. SUMADOR SECUENCIAL
• Implementación de la sección de control: microprogra-
mación.
I<n
MUX
401
2
STROBE
INCR
LOAD
CONTADOR MICROPROGRAMA
ROM
(8 x 10)
CLK
rlb'OOb'S'b''''
_ Q .!J .Q }.. .~ n!..,$
I
000 I 1
1 o
001 I o 1
o
010 I 1 o
o
011 I 1 o
o
100 I 1 o
1
101 I o o
o
110 o o
o
111 X X X X X X X X X X
38
40. Por eso la condición se mantiene como: 1 < n
c..v
<O
Memor ia de Control
Oír
010
52 011~
53 100 1
101 O
110
CLK JlILJULILr
i i ¡ i ¡ ....
:a b ;c: d ;
..
INC¡ : 1. IU
]~OXOX1Xlf2~
: ... '
. 1 vez .
n veces
JLJU
~IU
X~n-l X n ~
•
3-
~ 3
oJ
-.('1)
§'3
('1)
::J en
t"""t-
~ c:
0.
s:
o' ::J »
Q. e
('1)
O
~ :c
en en
('1)
° m
0. O
o' ::J c:
Q.
m
('1) z
° O
o -
::J
»
t"""t- ., r-
o ..
3
°
.,
o
J
.,
o
cc
.,
~I
41. 29
EJERCICIOS
9.1. Escribe el micra código de la memoria RO M de la sección de control de un sistema
que realiza el algoritmo que se expone a continuación, indicando los valores de las
entradas del multiplexor de selección de salto.
IN I C I O: activar PRESET
if empieza gota IN I C I O
activar LOADR y CLEAR
TEST: if ZlZ0 = 10 gota BUCLE
else if ZlZ0 = 01 gota CORRECCION
else activar DESPLAZAR
BUCLE: activar INCREMENTA
activar RESTA y LOADn
if I < n gota BUCLE
gota INICIO
CORRECCION: activar SUMA y LOADR
gota TEST
9.2. Dado el autómata de la figura diseña su correspondiente unidad de control micro-
progamada completa.
{e;}
42. 30 TEMA 9. ESPECIFICACIÓN ALGORÍTMICA DE SISTEMAS SECUENCIALES
9.3. La siguiente figura representa una unidad de control implementada con elementos
de retardo. Extráe su autómata de control e impleméntalo mediante la técnica de
control microprogramado.
co
CI
C3
C4.C6
Cl.CT
es
9.4. Diseña una unidad de control microprogramada completa correspondiente al algo-
ritmo siguiente que realiza la multiplicación entre dos números naturales X e Y de
cuatro bits, teniendo en cuenta el camino de datos de la figura. Calcula también
cuál es la mejor señal de reloj para sincronizar el sistema, teniendo en cuenta los
siguientes datos: tiempo de estabilización de los registros y contadores 10ns, tiempo
de retardo en el sumador de 4 bits 30 ns, tiempo de retardo en el comparador y en
los multiplexores 20 ns, tiempo de acceso a la memoria 90 ns.
BUS DE ENfRADA
carga X
carga y
AC=O
for i= 1 to Y
AC = AC plus X
end
REI.OXO
8USDE SAIDA
CON
CC
43. 9.5. Obter o autómata de control e deseñar a unidade de control microprogramada completa que
implemente o algoritmo seguinte:
INICIO:
BUCLE:
ESPERAR:
RECUPERAR:
activar READY
IF start goto INICIO
activar OK, STARTING
IF end goto ESPERAR
ELSE
activar OK, SELECT
IF input = 00
activar PROCESSING
ELSE IF input = 01
activar INITIATING
activar PROCESSING
activar DONE
ELSE goto RECUPERAR
ENDIF
goto BUCLE
activarWAIT, CHECK
IF ready goto ESPERAR
goto INICIO
activar FAULT
IF ready
activarWAIT, RESTORING
goto ESPERAR
ENDIF
goto BUCLE
44. 9.5. Autómata de Control:
{READY}
{OK, STARTING}
{OK, SELECT}
{PROCESSING}
{INITIATING}
{PROCESSING}
{DONE}
{WAIT, CHECK}
ready
i¡io=lO
OR
i¡io=ll
(i¡=l)
INICIO:
ESPERAR:
BUCLE:
RECUPERAR:
{FAULT}
{WAIT, RESTORING}
Ternos:
11 puntos de control
10 microinstruccións de activación
5 condicións no MUX
12 instruccións de salto
45. 9.5. Diagrama de Fluxo:
{READY}
no
end
si
{OK, STARTING}
{FAULT}
{DONE}
{INITIATING}
{OK, SELECT}
{PROCESSING}
{PROCESSING}
{WAIT, CHECK}
{WAIT, RESTORING}
no
no
i¡io=Ol
si
si
si
46. 9.5. Implementación con Elementos de Retardo:
PRESET
CLOCK
START
CLEAR
END
hio = o
READY
----- READY
~:::::D- OK
FAULT
----- INITIATING
DONE
RESTORING
:::::D- WAIT
------------ CHECK
47. 9.5. Unidade de Control Microprogramada:
I
stan
end
.. reaOy
!I~=OO
'1'0=01
MUX
8 al
STROBE
INCR
LOAD
CONTADOR MICROPROGRAMA
ROM
(32 X 12)
CLK
INICIO: 0??oo I 1 O
activar READY
x XO
IF start goto INICIO O
activar OK, STARTING
x xO
IF end goto ESPERAR O
activar OK, SELECT O
IF ilio = 00 goto 8
X X X
O
IF ilio = 01 goto 10
O X X x 1
goto RECUPERAR
1 O
activar PROCESSING
O x X O
gotoBUCLE O O
1 O
activar INITIA TING
O
1
O O
activar PROCESSING
O O O
O
activar DONE
O x X x O
gotoBUCLE O
activar WAIT, CHECK O
IF ready goto ESPERAR
O
goto INICIO O
activar FAULT
O
IF ready goto 20
O
goto BUCLE
1
activar WAIT, RESTORING
O
goto ESPERAR
48. [Examen Te Septiembre'2005]
Deseñar a unidade de control microprogramada completa do seguiente algoritmo:
INICIO: activar PREPARADO
IF empezar GOTa INICIO
activar INICIALIZANDO
BUCLE TIEMPO: activar CALCULAR INSTANTE
- -
activar INICIALIZARl, INICIALIZAR2, INICIALIZAR3
IFx1xo=11
activar PROCESARl
ELSE IF x¡XO = 01
activar PROCESAR2
activar DONE
ELSE
IFparar
activar FINALIZAR
('-GTOINICIO
ENDIF
ENDIF
GOTa TEST
GOTa BUCLE TIEMPO
TEST:
BUCLE TEST:
activar PONER A CERO
activar ACUMULAR
IF parar
activar FINALIZAR
GOTa INICIO
END IF
activar COMPARAR
IF converge GOTa BUCLE TEST
GOTa BUCLE TIEMPO
49. [Examen TC Septiembre'2005]
Autómata de Control:
INICIO:
BUCLE TIEMPO:
BUCLE TEST:
emos:
13 puntos de control
12 microinstruccións de activación
5 condicións no MUX
7 instruccións de salto
{PREPARADO}
{INICIALIZANDO}
{CALCULAR_INSTANTE}
{lNICIALIZARl,
INICIALIZAR2,
INICIALIZAR3 }
{PROCESARl}
{PROCESAR2}
{DONE}
{FINALIZAR}
{ACUMULAR}
{FINALIZAR}
{COMPARAR}
50. [Examen Te Septiembre'2005]
Unidade de control rnicropogramada:
1
empezar
~
converge
)(1"0= 11
x-1"0=01
MUX
8 a 1
STROBE
INCR
LOAD
CONTADOR MlCROPROGRAMA
ROM
(32 x 14)
CLK
INICIO: 0??oo
00001
00010
BUCLE_TIEMPO: 00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
TEST: 1??oo
BUCLE_TEST: 10001
10010
10011
10100
10101
~~ •. » :,';J>~~
&WJI "'S:l
~ ..
I:71 ~
1
1
O
O
O
O
O
O
O
O
O
O
O
O
O O 1
X X X X X
O O O
O O
O
1
O
O
O
O
O
O
O
O
O
O
O
O
O
1
O
O
O
O
O
O
O
O
O
O
O
O
O
1
1
1
O
O
O
O
O
O
O
100 X X X X X
O 1 O
O 1
101 X X X X X
O 1 O
1 1
X X X X X
011
1 O
O
O O O
X X X X X
100
O O
O
O
O
1
O
O
O
O
O
O
O
O O O
X X X X X
100
O O
O
O
O
O
O
O
O
1
O
O
O
O
O
O
O
O
O
O
O
O
O
1
O
O
O
O X X X X X
100
O O
011 01010-
O O
O O O O O
O
O O O
X X X X X
O O O
O O
O
O
O
O
O
O
O
O
O
O
1
O
O
O
O
O
O
O
O
O
O
O
O
O
1
O
O 1 O
X X X X X
011
1 O
O
O
O
O
O
O
O
O
O
O
O
O •
011 X X X X X
100
O 1
O O O
X X X X X
O O O
1 1
I
I
activar PREPARADO
IF empezar goto INICIO
activar INICIALIZANDO
activar CALCULAR_INSTANTE
activar INIC1, INIC2, INIC3
IF xlxO= 11 goto 9
IF xlxO= 01 goto 11
IF parar goto 14
goto TEST
activar PROCESAR1
goto TEST
activar PROCESAR2
activar DONE
goto TEST
activar FINALIZAR
goto INICIO
activar PONER_A_CERO
activar ACUMULAR
IF parar goto 14
activar COMPARAR
IF converge goto BUCLE_TEST
goto BUCLE_TIEMPO