Tema 9 ESPECIFICACIÓN ALGORÍTMICA DE SISTEMAS SECUENCIALES 1
Tema 9
ESPECIFICACIÓNALGORÍTMICA DE SISTEMASSECUENCIALES
1
INTRODUCCiÓN
• Existen sistemas secuenciales demasiado complejos para poder implementarlos con las técnicas vistas· hastaahora, por ejemplo, el procesador MIPS posee 32 registros de 32 bits, lo que lleva a un total de 21024 estados.
• En este tema veremos nuevas metodologías para implementar algoritmos o computaciones sobre conjuntos dedatos (vectores de n bits). En general constan de operaciones combinacionales más sencillas que se realizansecuencialmente.
Ejemplos de dichos algoritmos son un sumador secuencial con un único FA o un multiplicador a partir de unsumador paralelo.
• Esta metodología es la que se emplea para la implementación de los computadores digitales de propósito general.
• También se utiliza para implementar hardware específico para la computacóon de algoritmos concretos, sobretodo en campos tales como el tratamiento de señales,procesamiento de imágenes, etc.
1
CONCEPTOS BÁSICOS
• La especificación algorítmica de sistemas secuenciales implementaeficientemente algoritmos o computaciones que se realizan sobre'vectores de datos de n bits. Son los llamados algoritmos RT ('Register Transfer').
• Una computación es un conjunto de operaciones más simples queconsiste en la transferencia de vectores entre registros. Durante lastransferencias se realizan las operaciones de suma, desplazamiento, comparación, etc.
• Esta nueva metodología divide la implementación en dos bloquesbásicos:
• Camino de datos, el conjunto de elementos que implementael almacenamiento de datos y las funciones de transformaciónde los mismos .
• Sección de control, el sistema secuencial o autómata quecontrola 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
siglControl
subsystemData inputs .1 Udld 1 • Data outputs
Control inputs -~---.¡ _~~"~~I __ I • Control outputs
2
CONCEPTOS BÁSICOS
• El camino de datos recibe los datos del exterior (entradas o "Data Input") y devuelve los resultados obtenidos(salidas o "Data Output").
• La sección de control recibe órdenes e información delexterior ("Control Input", por ejemplo, reset, begin, stop,modo de operación ...) y envía información u órdenes alexterior ("Control Output", por ejemplo, end, done, overf1ow ... ).
• Las condiciones son generadas por el camino de datosy sirven para que la sección de control pueda tomar decisiones y realizar un control dependiente de los datos.
Ejemplos de condiciones son el signo de un operando, elacarreo en una operación, un desbordamiento, el valorde un bit o una comparación, etc.
• Los puntos de control son las señales necesarias pararealizar las transformaciones de los datos. Son generadas por la sección de control e indican al camino de datos el modo de operación de todos y cada uno de suselementos.
Ejemplos de puntos de control son la carga de un registro, los bits de control de un MUX o de DEMUX, el tipode operación de una ALU, el incremento de un contador,el desplazamiento de un registro, el sentido del desplazamiento, la lectura o escritura en una memoria, etc.
3
CONCEPTOS BÁSICOS
• El resultado de aplicar o activar cada uno de los puntosde control se denomina microoperación.
• El conjunto de microoperaciones que se pueden realizar de forma concurrente (en paralelo) se denomina microinstrucción. Cada microinstrucción determina o equivale a un estado del autómata de la sección de control.
• Cada estado debe indicar que puntos de control hay queactivar en ese momento y cual es su estado (microinstrucción) siguiente, que en general dependerá de las condiciones actuales del camino de datos.
• El conjunto o secuencia de todas las microinstruccionesconstituye un microprograma y su objetivo es implementar el algoritmo o computación requerido.
4
. 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+-xif CLEAR then y+-O
5
CAMINO DE DATOS
• RAM = conjunto de 2k registros de N bits que sólo pueden accederse de uno en uno.
X Yn
Ak MEMORIA 1'"•
(2K x n)
n
y
• READ
• WRITE
Operación: if READ then y~M[~(A)] el se y~Oif WRITE then M[~(A)]~x
() ,\",k-l .s iendo ~ A = Úi=O Ai . 2~
• Fichero de registros.
RA
WA
p,L
pR 1•••
(2P x n) ,~
• READ
• WRITE
yn
Operación: if READ then y~R,¡[~(A)] else y~O
if WRITE then RJ~(A)]~X
6
·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
inin
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 implementada con sistemas secuenciales (multiplicadores, divisores, ...).
• Los operadores generan algunas condiciones: >, <, =, carry, overflow, ...
7
CAMINO DE DATOS
• Buses: son las conexiones, junto con los switches necesarios, quecomunican los distintos elementos del camino de datos (registros yoperadores) .
• 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
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
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
-CAMINO DE DATOS
• Ejemplos de buses:
• Crossbar
n n n
• Bus compartido
o Usando un selector.
n
n
LOAD1 LOAD2
n
LOADm
n
S1092 m
o Usando registros con salida triestado.
LOAD1ENABLE1
n
11
SECCiÓN DE CONTROL
• Es el sistema secuencial o autómata que al activar los puntos decontrol en el orden adecuado controla las transferencias y transformaciones de los datos que tienen lugar en el camino de datos y queimplementan 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ómata) y, en función de las condiciones (entradas del autómata), cual esel estado o microinstrucción siguiente.
• La sección de control también se puede representar mediante undiagrama 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 esdificil realizar modificaciones (no hai una relación evidente entrela implementación y el algoritmo).
• Su uso es poco frecuente.
• Se denomina "Lógica Aleatoria".
12
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 yla implementación mediante elementos de retardo.
uy
x
CK
CK
13
SECCiÓN DE CONTROL
• Los puntos de control que se activan en cada estado se sacan de lasalida del biestable correspondiente.
CK s·1c·
J
• Para activar un punto de control en dos o más estados:
s·1CK
, • •• Cl
S~
~C2C3
14
SECCiÓN DE CONTROL
• Ejemplo: implementación con elementos de retardo
Autómata Diagrama de Flujo
K
15
SECCiÓN DE CONTROL
• Ejemplo (cont.): implem. con elementos de retardo
CLKpreset
c1ear
start
k
16
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 ii \
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'li11liO1, ;: i i 1; i i h; i--i--+, ------;------+----
Oi \0, iOi \1!lio:I\11 I/ . / ' ,! \ 1,1; : )'\ f ,--~-----
\01 \01 \01 \1/ I\o! '\11 l'\) \) \j \J' \j \) ¡--------
fll4 fll3 fll4
17
SECCiÓN DE CONTROL
• Microprogramación
• La implementación es sencilla y estándar.
• El hardware es casi independiente de la implementación.
• Es muy flexible y versátil.
• Fácil de depurar, modificar y ampliar.
• Su funcionamiento es relativamente lento debido alos accesos a la memoria de control.
• Apta para sistemas grandes y/o complejos.
18
SECCiÓN DE CONTROL
• Microprogramación
• Una de las implementaciones más sencillas:
DIRECCIÓN DE SALTO
MUX2P a 1
p
MEMORIADE
CONTROL
(2k x m)
~CLK
ID
I TIPO IlINSTRUCCIÓN
CONDICIÓN DE SALTO
REGISTRO DEMICROINSTRUCCIÓN
PUNTOS DE CONTROL
k
19
SECCiÓN DE CONTROL
• Memoria de control
• Almacena la información de control necesaria paraejecutar el algoritmo.
• Su tamaño viene dado por el número de microinstrucciones (2k) del microprograma por el número debits 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 lasiguiente microinstrucción (J.LI).
20
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 lasiguiente 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 (microprogramación vertical) o no (microprogramación horizontal).
21
SECCiÓN DE CONTROL
• El funcionamiento o secuenciamiento puede realizarse de diferentesformas. 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 correspondiente.
• 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 MUXde condiciones::::} El /1PC se incrementa.
2. Selección en el MUX de la condición a verificar. Si se cumplela salida del MUX = 1 ::::}el /1PC se carga con la direcciónespecificada en la p,1.
22
SECCiÓN DE CONTROL
• Ejemplo de sección de control microprogramada
Sffir~~
1 100 O OO O 1 O O O1 O 1 O O O100 1 O O1 O O O 1 O1 O O O O 1O 101 O OO O O O O O
CLK
23
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
SUMADOR SECUENCIAL
• Algoritmo O (alto nivel): realiza la operación pero no tiene en cuenta la sincronización con el exterior.
Cargar A
Cargar B
Borrar C
for 1=1 to n
{
Di +- Ai EB Bi EB ee +- Ai . Bi + CAi EB Bi) . e
}
25
SUMADOR SECUENCIAL
• Algoritmo 1: introduce la sincronización con el exterior mediantedos señales:
1. Control Input: start, indica cuando comenzar la operación.
2. ControlOutput: done, indica cuando ha finalizado. Mientras esta señal esté a cero no puede comenzarse una nueva operación.
• También se identifican las entradas y salidas utilizadas:
1. Data Inputs: A, B
2. Data Outputs: D
WA1T: dodone +- 1
while (start)done +- O
Cargar ACargar BBorrar Cfor 1=1 to n{
Di +- Ai E9 Bi E9 ee +- Ai . Bi + (Ai E9 Bi) . e
}
gota WA1T
26
SUMADOR SECUENCIAL
• Una vez identificadas las líneas de conexión con el exterior empezaremos por diseñar un camino de datos capazde realizar el algoritmo:
1. Se identifican las unidades de almacenamiento y operadores 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 elementosdel camino de datos identificados y se determinanlos puntos de control necesarios (existen diferentesalternativas) .
27
•
enc:s:»eOJJenmOc:mzO-»r-
otu3:Joa.CD
a.tu...•.oen
-lo..........
.-tu;:::::¡:'
CD...,.:Jtu~.<tu-CLEARI
INCI
I<n
preset~Clear ~~
DATA INPUT
DATA OUTPUT
SHIFTo
--e LOADB
SHIFTB
n
DCK
CK
Cltl
Al BI
CI FA SI
-- LOADA
SHIFTA
CLEARc
LOADc
1\)(X)
SUMADOR SECUENCIAL
• Algoritmo 2: introduce los puntos de control (microoperaciones)
WA1T: doPreset--
while (start)Ciear
LOADALOADBCLEARcfor 1=1 to n
{
SHIFTDLOADcSHIFTASHIFTB
}
gota WA1T
• Existen microoperaciones que pueden realizarse simultaneamente(p.e. LOADA y CLEARc), por lo que ambos puntos de controlpueden activarse simultaneamente y formar una microinstrucción.
• Por el contrario hay puntos que no se pueden activar simultaneamente (p.e. LOADA y LOADB), por lo que formaran microinstrucciones diferentes.
29
SUMADOR SECUENCIAL
• Algoritmo 3: se identifican las operaciones simultaneas(se reduce el número de microinstrucciones necesarias).
WA1T: doPreset--
while (start)Clear 11 LOADA 11 CLEARc
LOADBfor 1=1 to n
SHIFTD 11 LOADcl1 SHIFTAII SHIFTBgota WA1T
30
SUMADOR SECUENCIAL
• El último paso consiste en eliminar las estructuras de control complejas (bucles WHILE, FOR, etc.) remplazándolas por saltos condicionales (if) o incondicionales (gota).
do
operación
while (x)
pasaría a ser:
LOOP: operaciónif (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
SUMADOR SECUENCIAL
• Algoritmo 4: se substituyen las estructuras complejas por sus microinstrucciones equivalentes activando en paralelo los puntos decontrol que lo permitan.
WAIT: 50: Presetif (start) then goto WAIT51: Clear 1 1 LOADA I 1 CLEARc I 1 CLEAR¡
52 : LOADB
LOOP: 53: 5HIFTD 11 LOADcl1 5HIFTAII 5HIFTBIIINC¡if (I<n) then goto LOOPgoto WAIT
32
SUMADOR SECUENCIAL
• El algoritmo puede expresarse también mediante un autómata o diagrama de flujo.
I~n
{Preset}
{Preset}
{Clear, LoadA' Clearc' Clear)
{LoadB}
{Loadc' ShiftA, ShiftB, ShiftD}
33
•
enc:s:»eOXIenmOc:mzO-»r-
CDmCf) -
(")e-m:::J. 3(") -.o :::J. oOa.~CDma.
"'O m0-Cf)0-.Cf)o-- . ..0=:ea.CDm _.~3
"'OCD
3CD
:::J--me:::J
m(")o3
"'Oe--m(")o:::J
:::Jo
CLEAR,
INC,
1<"
., ••.t::::::j f---CI." do",
DATA INPUT
DATA OUTPUT
LOADa
SHIFTo
"
DCK
n
TI
Cit.
CK
C FA SI I
LOADA
CLEAR
LOADcc
1
log2"
ú)~
SUMADOR SECUENCIAL
• Algoritmo 4 bis: sólo cambian los puntos de control que se activanen 83
WAIT: 80: Presetif (start) then goto WAIT81: Clear I I LOADA I I CLEARc I I CLEAR¡
82 : LOADB
LOOP: 83: 8HIFTD 11 LOADcl1 INC¡if (I<n) then goto LOOPgoto WAIT
35
SUMADOR SECUENCIAL
• Implementación de la sección de control: elementos deretardo.
CLKpreset
clear~;r-r-- Presetstart DEMUX
, n ClearLoad
A
~ ClearcClear,
Load
B
Shift
DLoad eIne 1
I«n-l)•• 1 ~n!Vlu~ II(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
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
SUMADOR SECUENCIAL
• Implementación de la sección de control: microprogramación.
I<nMUX
401
2
STROBE
INCR
LOADCONTADOR MICROPROGRAMA
ROM
(8 x 10)
CLK
rlb'OOb'S'b''''_ Q .!J .Q }.. .~ n!..,$
I
000 I 1
1 o001 I o 1
o010 I 1 o
o011 I 1 o
o100 I 1 o
1101 I o o
o110 o o
o111 X X X X X X X X X X
38
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 JlILJULILri i ¡ i ¡ ....:a b ;c: d ;
..
INC¡ : 1\\\. IU]~OXOX1Xlf2~
: ... '. 1 vez .
n veces
JLJU
~IUX~n-l X n ~
•3-~ 3o\J-.('1)§'3
('1)
::J ent"""t-
~ c:0. s:o'
::J »Q. e('1) O~ :cen en('1) ° m0. Oo'
::J c:Q.
m('1) z° Oo -::J »t"""t- ., r-o ..3°.,o\J.,occ.,~I
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 lasentradas del multiplexor de selección de salto.
IN I C I O: activar PRESETif empieza gota IN I C I Oactivar LOADR y CLEAR
TEST: if ZlZ0 = 10 gota BUCLEelse if ZlZ0 = 01 gota CORRECCIONelse activar DESPLAZAR
BUCLE: activar INCREMENTAactivar RESTA y LOADnif I < n gota BUCLEgota INICIO
CORRECCION: activar SUMA y LOADRgota TEST
9.2. Dado el autómata de la figura diseña su correspondiente unidad de control microprogamada completa.
{e; }
30 TEMA 9. ESPECIFICACIÓN ALGORÍTMICA DE SISTEMAS SECUENCIALES
9.3. La siguiente figura representa una unidad de control implementada con elementosde retardo. Extráe su autómata de control e impleméntalo mediante la técnica decontrol microprogramado.
co
CI
C3
C4.C6
Cl.CT
es
9.4. Diseña una unidad de control microprogramada completa correspondiente al algoritmo siguiente que realiza la multiplicación entre dos números naturales X e Y decuatro bits, teniendo en cuenta el camino de datos de la figura. Calcula tambiéncuál es la mejor señal de reloj para sincronizar el sistema, teniendo en cuenta lossiguientes datos: tiempo de estabilización de los registros y contadores 10ns, tiempode retardo en el sumador de 4 bits 30 ns, tiempo de retardo en el comparador y enlos multiplexores 20 ns, tiempo de acceso a la memoria 90 ns.
BUS DE ENfRADA
carga Xcarga yAC=Ofor i = 1 to Y
AC = AC plus Xend
REI.OXO
8USDE SAIDA
CONCC
9.5. Obter o autómata de control e deseñar a unidade de control microprogramada completa queimplemente o algoritmo seguinte:
INICIO:
BUCLE:
ESPERAR:
RECUPERAR:
activar READYIF start goto INICIO
activar OK, STARTINGIF end goto ESPERARELSE
activar OK, SELECTIF input = 00
activar PROCESSING
ELSE IF input = 01activar INITIATINGactivar PROCESSINGactivar DONE
ELSE goto RECUPERARENDIF
goto BUCLE
activarWAIT, CHECKIF ready goto ESPERARgoto INICIO
activar FAULTIF ready
activarWAIT, RESTORINGgoto ESPERAR
ENDIF
goto BUCLE
9.5. Autómata de Control:
{READY}
{OK, STARTING}
{OK, SELECT}
{PROCESSING}
{INITIATING}
{PROCESSING}
{DONE}
{WAIT, CHECK}
ready
i¡io=lOOR
i¡io=ll
(i¡=l)
INICIO:
ESPERAR:
BUCLE:
RECUPERAR: {FAULT}
{WAIT, RESTORING}
Ternos:
11 puntos de control10 microinstruccións de activación5 condicións no MUX12 instruccións de salto
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=Olsi
si
si
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
9.5. Unidade de Control Microprogramada:
Istanend
.. reaOy!I~=OO'1'0=01
MUX8 al
STROBE
INCR
LOADCONTADOR MICROPROGRAMA
ROM
(32 X 12)
CLK
INICIO: 0??oo I 1 Oactivar READY
??oo1
x XOIF start goto INICIOBUCLE: 00010
Oactivar OK, STARTING00011
x xOIF end goto ESPERAR00100
Oactivar OK, SELECT00101
OIF ilio = 00 goto 800110 I O
X X XOIF ilio = 01 goto 1000111
O X X x 1goto RECUPERAR01000
1 Oactivar PROCESSING01001
O x X OgotoBUCLE01010 1
O O1 Oactivar INITIA TING01011 I 1
O1O Oactivar PROCESSING01100 I 1
O O OOactivar DONE01101
O x X x OgotoBUCLEESPERAR: 01110 1
Oactivar WAIT, CHECK01111, O
OIF ready goto ESPERARx x
Ogoto INICIORECUPERAR:
Oactivar FAULTO
IF ready goto 20x x
Ogoto BUCLE10100
1activar WAIT, RESTORING
Ogoto ESPERAR
[Examen Te Septiembre'2005]
Deseñar a unidade de control microprogramada completa do seguiente algoritmo:
INICIO: activar PREPARADOIF empezar GOTa INICIO
activar INICIALIZANDOBUCLE TIEMPO: activar CALCULAR INSTANTE- -
activar INICIALIZARl, INICIALIZAR2, INICIALIZAR3
IFx1xo=11activar PROCESARl
ELSE IF x¡XO = 01activar PROCESAR2activar DONE
ELSEIFparar
activar FINALIZAR('-GTOINICIO
ENDIFENDIFGOTa TESTGOTa BUCLE TIEMPO
TEST:BUCLE TEST:
activar PONER A CEROactivar ACUMULARIF parar
activar FINALIZARGOTa INICIO
END IFactivar COMPARARIF converge GOTa BUCLE TESTGOTa BUCLE TIEMPO
[Examen TC Septiembre'2005]Autómata de Control:
INICIO:
BUCLE TIEMPO:
BUCLE TEST:
emos:
13 puntos de control12 microinstruccións de activación5 condicións no MUX7 instruccións de salto
{PREPARADO}
{INICIALIZANDO}
{CALCULAR_INSTANTE}
{lNICIALIZARl,INICIALIZAR2,INICIALIZAR3 }
{PROCESARl}
{PROCESAR2}
{DONE}
{FINALIZAR}
{ACUMULAR}
{FINALIZAR}
{COMPARAR}
[Examen Te Septiembre'2005]Unidade de control rnicropogramada:
1empezar
~converge)(1"0= 11x-1"0=01
MUX8 a 1
STROBE
INCR
LOADCONTADOR 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
1OOOOOOOOOOOO
O
O O 1X X X X XO O OO O
1
O1OOOOOOOOOOO
1
OO1OOOOOOOOOO
1
OOO111OOOOOOO
O
100 X X X X XO 1 OO 1
O
101 X X X X XO 1 O1 1
O O 1 O
X X X X X0111 O, O
O O OX X X X X100O O
1'0 O O
OOO1OOOOOO, O
O O OX X X X X100O O
1
OOOOOOO1OOOOO
1
OOOOOOOO1OOOO
O O O O
X X X X X100O OI
011 01010-,1 O O OO O O O O
O
O O OX X X X XO O OO O
1
OOOOOOOOOO1OO
1
OOOOOOOOOOO1O
O
O 1 OX X X X X0111 O
1
OOOOOOOOOOOO •
O
011 X X X X X100O 1
O
O O OX X X X XO O O1 1I
I
activar PREPARADO
IF empezar goto INICIOactivar INICIALIZANDOactivar CALCULAR_INSTANTEactivar INIC1, INIC2, INIC3
IF xlxO= 11 goto 9
IF xlxO = 01 goto 11
IF parar goto 14goto TESTactivar PROCESAR1
goto TESTactivar PROCESAR2activar DONE
goto TESTactivar FINALIZAR
goto INICIOactivar PONER_A_CEROactivar ACUMULAR
IF parar goto 14activar COMPARAR
IF converge goto BUCLE_TESTgoto BUCLE_TIEMPO