Professional Documents
Culture Documents
ELEMENTOS DE MICROPROGRAMACIÓN
SANTIAGO DE CALI
UNIVERSIDAD SANTIAGO DE CALI
DEPARTAMENTO DE LABORATORIOS
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
“ELEMENTOS DE MICROPROGRAMACION”
Introducción
Adicionalmente a lo anterior, la unidad de control así diseñada resulta ser muy poco
flexible ya que es muy difícil cualquier modificación que se le quiera realizar para, por
ejemplo, adicionar una nueva instrucción al computador, etc.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
datos de
entrada
...
señales de control
.. ...
. Procesador
señales de
Unidad de de
entrada control datos
...
.
reloj
señales de
estado
...
datos de
salida
Figura 1. Sistema digital para el procesamiento de datos
Las señales de estado son generadas por el procesador de datos hacia la unidad de
control para indicarle a esta última el estado en que se encuentran los datos que están
siendo procesados. La unidad de control analiza estas señales de estado y de acuerdo al
valor que tengan las mismas toma la decisión de cuál es la siguiente microoperación que
debe ordenar ejecutar. A la unidad de control también pueden llegar señales externas al
sistema que también condicionan la siguiente microoperación que debe ordenar ejecutar
en el procesador de datos la unidad de control.
De acuerdo con lo anterior, toda pregunta en el flujograma del algoritmo que debe ser
ejecutado se asocia con una señal de estado o una señal externa de entrada al sistema
digital.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Microoperación.
Se denomina microoperación toda operación elemental que puede ser ejecutada durante
un período de los pulsos de reloj. Así por ejemplo, en el procesador de datos que se
muestra en la figura 2 se pueden ejecutar dos microoperaciones.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
cargarA S1 A B C D S1 A B C D
S0 S0
SR SER
Registro A SL SER SR SER
Registro B SL SER
borrarA
CLR CLR
QA QB QC QD QA QB QC QD
3 2 1 0 3 2 1 0
CLR : entrada asincrónica
Sumador de borrado
CO CI
3 2 1 0 Modo de operación sincrónica
S1S0
00 no opera
01 desplaza a la dereecha
10 desplaza a la izquierda
11 carga en paralelo
reloj del
sistema
reloj
cargarA
borrarA
señales se hace
se borra A
de control A A+B
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
CAR : "Control Address Register" Registro de direcciones del control
campo
ROM de
CAR
control
campo de señales
dirección
selección de
control
campo de
dirección
reloj
incr. carga
multiplexor 0
1
0 1 2 3 líneas de selección
al multiplexor
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Esta es una bifurcación incondicional. De acuerdo con lo anteriormente expuesto, el
campo de selección de esta microinstrucción debe ser 00 para seleccionar un 1 lógico
fijo y colocar al registro en el modo de carga. Su campo de dirección será el 32.
Si se tiene la siguiente microinstrucción en la dirección 12:
12 : A← A+B
Una microinstrucción puede contener una o más microoperaciones separadas por una
coma. Por ejemplo:
18 : A← A+B, si C=1 ir a 23
Hay disponibles 8 switches en un sistema. Se debe diseñar un sistema digital que cuente
el número de estos switches que se encuentren cerrados y coloque este número en un
display de 7 segmentos. Si el número de los switches cerrados es un número impar, se
debe iluminar un LED que indique error.
Una señal externa “Com” obtenida de una tecla debe comenzar la operación de conteo.
Utilice un control microprogramado similar al mostrado en la figura 3. Use memorias
EPROM 27C64 disponibles en el laboratorio de la universidad Santiago de Cali.
El diagrama funcional general se muestra en la figura 4.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
10
Switch abierto coloca un 1 lógico
switches Kohmios
swith cerrado coloca un 0
dato
de
entrada
Com Incr +5v.
Decr
Unidad Cargar Procesador
de Limpiar de
Compl
Control datos
Despl
Generador
señales
de
de
pulsos
estado
reloj
datos
frec = 1KHz de
salida
LED
de
Error
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Inicio
No
C C+1
error error A0: bit de menor orden del registro A
B B-1 DesplDerA, A7 0
Desplazar a la derecha el dato
contenido en el registro A entrando
un 0 por el bit de mayor orden A7
Sí
B=0?
No
DesplDerA, A7 0
El sistema se encuentra esperando que la señal de la tecla Com se haga 1. Cuando esto
ocurre comienza el proceso de conteo donde inicialmente se limpia el flip-flop de error
y el contador C donde quedará el resultado. También se almacena el dato de los
switches en el registro A y se coloca el nº 8 en el contador B para analizar cada uno de
los bits almacenados en el registro A y saber cuando termina el proceso de conteo.
El sistema se mantiene comprobando el bit A0 donde van quedando los bits del registro A
después de efectuar un desplazamiento a la derecha en el mismo. Cada vez que
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
encuentre un 0 incrementa el contador C y complementa al flip-flop de error para que
de esta forma éste quede en el estado 1 si hay un número impar de switches cerrados.
Procesador de datos
“Decr”: Cuando Decr=1, se aplica un pulso de reloj a la entrada Down del contador B
decrementándolo.
“Despl”: Cuando Despl =1 (Carga=0), se coloca al registro A en el modo de
desplazamiento a la derecha (S1S0=01) para que haya un desplazamiento una posición
hacia la derecha con la ocurrencia de un pulso de reloj.
“Compl”: Cuando Compl=1, coloca las entradas JK del flip-flop de error en 1
complementándolo.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
de los switches
Compuertas OR : 74LS32
Compuertas AND : 74LS08 Registro A
Inversores : 74LS04
limpiar
cargar
carga
S1 A B C D S1 A B C D
Despl Despl Der S0 S0
borrado SR SER SL SER SR SER SL SER
reloj CLR CLR
74LS194A 74LS194A
QA QB QC QD QA QB QC QD
A7 A6 A5 A4 A3 A2 A1 A0
A0
Contador C 1 4.7 Kohmios +5v.
Contador B
D C B A D C B A
Incr CLR CLR
up 74LS193 up 74LS193
down CO down CO
Decr C B
LOAD BO LOAD BO
QD QC QB QA QD QC QB QA
Bz
74LS112A PRE
J Q
Compl error
K Q
CLR
LED
220 ohmios
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Observe que las entradas CLR´del registro A, down y Load´del contador C, y up del
contador B se encuentran inactivas conectadas a un 1 fijo (+5v. a través de una
resistencia) pués no se utilizan.
También se encuentra inactiva pués tampoco se utiliza la entrada CLR del contador B la
cual tiene un 0 fijo aplicado al estar conectada a tierra.
El inversor a la entrada del reloj del flip-flop de error tiene como objetivo que éste se
complemente con el flanco positivo de los pulsos de reloj del sistema, quedando con una
diferencia de fase de 180º con respecto a estos últimos.
Microprograma
Del flujograma que se muestra en la figura 5, se puede escribir fácilmente el
microprograma simbólico que se muestra a continuación:
Dirección Microinstrucción Comentarios
0 : Si Com=0 ir a 0; Espera que se presione la tecla
1 : Error←0, C←0, A←Sw, B←8 ; Se inicializa el sistema
2 : Si A0=1 ir a 4; Si A0=0 se incrementa C
3 : C←C+1, Error←Error´; Se encontró un 0 en A0
4 : B←B-1, si Bz=1 ir a 0; Si contenido de B=0 se termina
5 : DesplazarDerA, A7←0,ir a 2 Se va a probar siguiente bit de
A
Como se puede observar, éste es un microprograma sencillo que requiere solamente de
una memoria de 6 localizaciones para almacenarlo. Este dispositivo tan pequeño no
existe comercialmente, se utilizarán EPROM 27C64 por su disponibilidad.
Los bits de cada microinstrucción estarán formados por 6 bits para las señales de
control, 2 bits para el campo de selección y 4 bits para el campo de dirección, dando un
total de 12 bits.
Como la pastilla 27C64 solamente tiene 8 bits, harán falta 2 pastillas para formar la
EPROM del control como se muestra en la figura 7.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
R: 47 Kohmios C: 10 microfaradios
+5v.
a la señales
energía 74LS163A A0 Vcc Vpp PGM bits de
+5v. de los D QA A1 control
circuitos A2 1 Incr
C QB A3 O7
on/off R B QC A4 27C64
CAR A5 O6
2 Decr
A QD A6 EPROM1
C 3 Cargar
A7 O5
CLR A8 4 Limpiar
1/6 74LS04 RCO A9 O4
CLK A10 5 Compl
reloj A11 O3
ENPENTLOAD
del generador A12 6 Despl
de pulsos O2
7
O1
8
CE O0
1/6 74LS04
OE
Multiplexor
G Y +5v.
A
74LS153 B
C0 C1 C2 C3 A0 Vcc Vpp PGM
A1
10K A2
B: bit de mayor orden de 27C64 9
A3 O7
selección del multiplexor A4 10
G :entradade activación A5 EPROM2 O6
A6 11
+5v. A0 Bz Com A7 O5
74LS163A: A8 12
contador binario sincrónico A9 O4
ENP,ENT = 11: habilita conteo A10
A11 O3
LOAD : entrada sincrónica de carga A12
O2
CLR: entrada asincrónica de borrado
O1
CE O0
Y=1: coloca al CAR en el modo de carga
Y=0: coloca al CAR en el modo de conteo OE
D: bit de mayor orden del CAR
A: bit de menor orden del CAR
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Como se puede observar, las señales de estado A0 y Bz provenientes del procesador de
datos van al multiplexor. Igualmente va a este multiplexor la señal externa de la tecla
Com. Se lleva esta señal negada pués en el microprograma se pregunta si esta señal =0.
La red RC que alimenta la entrada de CLR´ del registro de direcciones del control tiene
como objetivo colocar a éste en la dirección 0 cuando se conecte la energía.
Para grabar los dispositivos de memoria EPROM con el programador universal Xeltek del
laboratorio de la universidad Santiago de Cali, en la tabla 1 se muestra el microprograma
binario encontrado fácilmente a partir del microprograma simbólico y de las conexiones
efectuadas en el circuito del control que se muestra en la figura 7.
Bits de la microinstrucción
Direc. EPROM 1 EPROM 2
1 2 3 4 5 6 7 8 9 10 11 12
0 0 0 0 0 0 0 1 1 0 0 0 0
1 0 0 1 1 0 0 0 0 0 0 1 0
2 0 0 0 0 0 0 0 1 0 1 0 0
3 1 0 0 0 1 0 0 0 0 1 0 0
4 0 1 0 0 0 0 1 0 0 0 0 0
5 0 0 0 0 0 1 0 0 0 0 1 0
Como los cuatro bits de menor orden de la EPROM2 no se están utilizando se pueden
grabar los mismos con 0000.
Las direcciones de memoria en la EPROM 27C64 van de 0000hex a 1FFFhex. Una vez
introducidos los datos, la ventana de Buffer Edit aparecerá como se muestra en la tabla
2 para el caso de la EPROM1.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
DIRECCIÓN HEX
00000000 03 30 01 88 42 04 FF FF FF FF FF
FF FF FF FF FF
00000010 FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF
00000020 FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF etc.
Las direcciones y los datos en esta tabla se encuentran en hexadecimal. En cada fila hay
16 localizaciones, correspondiendo la dirección que aparece en la columna de la
izquierda a la dirección de la primera localización de la fila. Cuando en una localización
no se graba ningún dato aparece FF.
Todas las localizaciones de todas las filas comenzando en la dirección 0010 contendrán
FF por lo que haga click en Fill.
Coloque 0010 en Fill Start Adress, 1FFF en Fill End Adress y FF en Fill Data.
Luego de esta operación haga click en OK para llenar toda la tabla.
Una vez terminado de introducir los datos, haga click en Prog para que su memoria
quede grabada con los datos introducidos.
Igualmente se graba la EPROM2 sabiendo que los datos a introducir, a partir del
microprograma binario, son 00, 20,40,40,00,20hex a partir de la dirección 0000.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
Del contador C del
QD QC QB QA
procesador de datos
1/4 74LS00 al
control
Com
RBI D C B A
BI/RBO 74LS47
Com LT
tecla Com 1/4 74LS00 a b c d e f g
10 Kohmios
220
+5v. ohmios
dp a b c d e f g
Tecla Com: 1 polo-2 posiciones NTE3050
a
f b
NTE3050: display de ánodo común g
+5v.
En el circuito de la tecla se han utilizado dos compuertas NAND con una interconexión
cruzada para formar un latch que elimine el ruido de rebote.
Generador de pulsos.
Para obtener los pulsos de reloj del sistema se utiliza el circuito integrado LM555. Este
circuito opera como un Timer, el cual, con los valores de resistencias y capacitores
utilizados genera una señal de pulsos en su salida de frecuencia ≈ 1 KHz. Este circuito se
muestra en la figura 9. En la misma se ha utilizado una configuración para que el circuito
se comporte como oscilador con un ciclo útil (duty cycle) de aproximadamente un 50%.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN
+5v.
T1 = 0.693R A.C
51 Kohmios
RA
RA . R B 2RA-RB
8 4 T2 = C . Ln
RB RA+RB RA-2RB
Vcc reset
discharge trigger
7 2
22 Kohmios
LM555
T1 T2
threshold
6
control
5 3
voltage output
GND reloj
C
15000 1
picofaradios 0.01
microfaradios
Consideraciones finales
En el artículo presente se ha descrito una estructura básica de lo que constituye un
control microprogramado. Se sugiere al lector interesado en el tema explorar otras
arquitecturas más evolucionadas con otros formatos para las microinstrucciones, como
por ejemplo, microinstrucciones que poseen dos campos de dirección, etc.
Las aplicaciones de la microprogramación cada vez son más variadas y están más
extendidas, entre las que se pueden mencionar: la implementación de computadores, la
emulación o técnica de usar un microprograma en una máquina para ejecutar programas
escritos originalmente para otra ayudando a los usuarios al cambio de un computador a
otro, en microdiagnósticos o técnica de detección, aislamiento y corrección de errores
en el sistema permitiendo al mismo reconfigurarse cuando se detecta una falla, en la
implementación de dispositivos de control de uso específico o dispositivos que se pueden
incorporar a un computador como por ejemplo una tarjeta de comunicaciones de datos,
etc.
Bibliografía.
1. M. Morris Mano, “Logic and Computer Design Fundamentals”,Prentice-Hall, 1997
2. William Stallings, “Organización y Arquitectura de Computadores”, 5ª ed, Prentice-
Hal, 2000
3. J.F.Wakerly, “Digital Design Principles and Practices”,2ª ed., Prentice-Hall, 1984
4. B. Segee y J. Field, “Microprogramming and Computer Architecture”, New York :
Wiley, 1991
5. Texas Instrument, www.ti.com
6. Alberto Cuervo, “Lógica de Control”, Revista INGENIUM, nº 1, Universidad Santiago
de Cali.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE EELLEEMMENTOS DDEE M
E N T O S MIICCRROOPPRROOGGRRAAMMAACCIIÓÓNN