Anda di halaman 1dari 26

CIRCUITOS DE RELOJ Y GENERACIN DEL BUS DE CONTROL

INTRODUCCIN:
En los temas anteriores se estudio la estructura y el principio de funcionamiento de los
sistemas de microcmputo. En estos se definieron los elementos fundamentales que los
componen CPU, Memoria, enlace a perifricos, los buses de datos, direcciones y control.
A continuacin se analizarn conceptos nuevos necesarios de tener en cuenta para disear un
sistema, es decir cuales son realmente las seales elctricas que determinaran cuando (circuito
de reloj) y en que sentido (bus de control) se deben realizar las transferencias, ya es sabido
que el bus de direcciones determinar quien es el que transfiere y por el bus de datos se
encontrar el dato a transferir.
Una vez conocidas las seales del reloj y del bus de control se tendrn todos los elementos
para poder realizar el hardware necesario para la construccin de un sistema de microcomputo
en particular para el up 8080.
CIRCUITOS DE RELOJ (CLOCK)
Un sistema de microcomputo es un circuito digital de tipo fundamentalmente secuencial, dado
que las actividades del microcomputador son cclicas. El procesador busca una instruccin,
ejecuta las operaciones que la instruccin le indica; busca la prxima instruccin, ejecuta las
operaciones indicadas por ella, etc. Esta secuencia ordenada de sucesos requiere para su
funcionamiento un oscilador central, denominado reloj o clock, que marque los instantes
precisos en que tiene lugar cada una de las operaciones del sistema, indicadas por la unidad de
control. Es conveniente resaltar este ltimo concepto: La unidad de control determina que
debe hacerse, mientras que la unidad de reloj y sincronismo indica cuando, dos funciones
bien definidas pero que comnmente se confunden, esta confusin se debe en que en muchos
procesadores, ambas informaciones (que hacer y cuando) estn presentes en una misma seal,
el 8080 se caracteriza porque vienen por distintas lneas, una indica la operacin y otra el
momento adecuado y ambas para cada una de las distintas operaciones (ciclos de mquina) se
funden en una nica seal de control y sincronismo. Otros microprocesadores trabajan de otra
forma aunque en el caso de motorola 6800 y 6802 el sincronismo lo da una seal de reloj.
CLOCK MONOFSICO Y MULTIFSICO
La velocidad de operacin de un sistema digital tiene un lmite mximo impuesto por la
tecnologa utilizada (tpicamente 1 o 2 MHz. para sistemas MOS canal N) y un lmite mnimo
impuesto por la necesidad de mantener estable los contenidos de los registros internos del
microprocesador, en el caso de que estos sean dinmicos (existen microprocesadores como el
SC/MP de National y el Z80 de Zilog en los cuales la frecuencia mnima no est limitada,
debido a que sus registros son estticos.
De lo expuesto se puede deducir que an trabajando a mxima velocidad, solamente el
sistema podr realizar una micro operacin por cada pulso de reloj; si se desea aumentar la
velocidad de procesamiento del sistema para una misma tecnologa, debe recurrirse a clock
multifsico el cual consiste en que el generador de reloj deber tener tantas lneas de salida
como fases tenga el sistema. Cada fase indicar al elemento del sistema que est conectado, el
instante en que se debe realizar la operacin especificada por la lgica de control, la velocidad
de operacin, para la misma tecnologa, aumenta en forma directamente proporcional al
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

nmero de fases del reloj. Hay que hacer notar que las frecuencias de las distintas fases debe
ser la misma.
Para clarificar el concepto analicemos como trabaja un sistema con un clock monofsico y
uno bifsico.

Clock Monofsico

1
2

Clock bifsico
Supongamos el proceso de grabar un dato en memoria
1- Si se tiene un clok monofsico, con el primer flanco positivo de 1 la CPU pondr el dato
a ser grabado en el bus de datos y con el siguiente flanco positivo de 1 la memoria
capturar el dato, se deber esperar un nuevo flanco activo de 1 para comenzar una
nueva operacin.
2- En el caso de bifsico la CPU trabaja con los flancos de 1 y la memoria con los de 2,
luego con la subida de 1, al igual que en el caso anterior, la CPU coloca el dato en el bus
de dato y en el de 2 la memoria captura el dato, por lo tanto con el nuevo flanco de 1 la
CPU puede hacer una nueva operacin.
Como se observa el tiempo empleado en realizar las operaciones, se ha reducido a la mitad.
Es de hacer notar que el ejemplo descripto es una ejemplificacin muy elemental de un
proceso de escritura en memoria, al final del captulo se estudiar en forma detallada los
distintos ciclos, entre ellos el de escritura en el que intervienen las seales de control que en
este ejemplo no se han considerado.
Se observa en el ejemplo el aumento de la velocidad de procesamiento dado que el reloj es
bifsico. El aumento de la velocidad de procesamiento con el nmero de fases del reloj tiene
un lmite el cual es fijado por los tiempos de propagacin y de establecimiento de los registros
internos. Tambin debe tenerse en cuenta que los resultados de una operacin realizada por
una fase pueden ser usados por la operacin gobernada por la fase siguiente.
El caso de sistemas multifsicos, es evidente que los pulsos de clock de cada fase no deben
superponerse.
En general en los microprocesadores se utilizan clock bifsicos salvo en algunos mas simples
tipo SC/MP que usan clock monofsico.
El generador de clock vara en complejidad de acuerdo a la cantidad de fases, as como a la
estabilidad requerida. En algunos casos el circuito de generacin de las seales de reloj est
incluido en el integrado del microprocesador (por ejemplo el up 8085, 6802, SC/MP). En
estos solo existe un par de terminales que permiten colocar un cristal o un circuito RC para
definir la frecuencia de clock requerida. En otros procesadores el sistema de generacin de las

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

seales de clock es externo al chip del microprocesador, estos complican la implementacin,


sobre todo cuando se debe generar un reloj bifsico como en el caso del 8080.
GENERACIN DE LAS SEALES DE RELOJ DEL UP 8080
Se estudiarn a continuacin la generacin de las seales de clock del up 8080. En la
descripcin del microprocesador 8080 se observ que dispona de las entradas 1 y 2 por
medio de las cuales el generador de reloj deber mandar a la CPU ambas fases del reloj, dada
la caracterstica bifsica en este procesador.
En la figura A se muestran las caractersticas temporales que deben cumplir ambas fases.

FIGURA A
Adems de los requerimientos temporales de las seales 1 y 2 existen requerimientos
elctricos dado que la alimentacin del 8080 necesita de las siguientes tensiones +5v, +12v y 5v. Los niveles de las seales de reloj que ingresan a la CPU no son compatibles con TTL, la
variacin de tensin requerida es de 0,6 a 11 Volt con tiempos de crecimiento y bajada de 50
nanosegundos.
el circuito de generacin puede ser construido mediante componentes digitales
convencionales, o con un CI especfico de la familia del 8080, el 8224.
En el caso de realizar con componentes convencionales como muestra la figura B , el circuito
de reloj consiste de un oscilador de 20 MHz controlado por cristal, la salida de ste se aplica a
un contador binario sincrnico y preseteable, el cual es inicializado en tres y est realimentado
por la 74h00 para contar hasta once, lo cual hace que divida por nueve; de las cuatro salidas
del contador son decodificadas para obtener las lneas 1 (TTL) y 2 (TTL) cuya relacin
temporal se muestra en la figura A. Como las tensiones de entrada 1 y 2 del 8080 no son
compatibles con TTL es necesario utilizar un adaptador por ejemplo el MH0026, las salidas
1 y 2 negadas se acoplan mediante un capacitor al exitador, a la salida del exitador se
colocan resistencias de bajo valor para eliminar transitorios en la forma de onda.
El generador de clock tambin puede ser utilizado para generar otras seales las que el usuario
necesitar en algunos casos por ejemplo cuando utilice memoria dinmica, o cuando se
implementa un sistema de microcomputo bastante complejo. Funciones tales como la
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

inicializacin (reset) en el encendido, sincronizacin de pedidos externos (HOLD, READY,


DMAREQ, etc) podran aadirse facilmente al circuito generador de reloj.
Por ejemplo, la seal de 20 MHz. del oscilador podra ser utilizada para crear una base de
tiempo externa para implementar un temporizador o bien para generar los pulsos de un canal
de comunicacin serie con el exterior. El diagrama del generador de clock muestra, adems,
como se genera una seal adelantada en el tiempo 1 A (TTL) que es
til para sincronizar pedidos externos, esta seal es til para generar un pulso de habilitacin
(strobe) que es la seal necesaria para almacenar la informacin de condicin o estado
(status) que est disponible sobre el bus de datos al comienzo de cada ciclo de mquina (seal
STSTB negada); para esto basta con realizar la operacin NAND entre 1 A y la seal SYNC
la cual es salida del 8080. En el estudio del bus de control se analizar la utilizacin de estas
seales auxiliares.

FIGURA B

Tambin como se mencion antes, para esta funcin puede utilizarse un circuito
integrado de la familia del procesador el 8224, este elemento mostrado en la figura C contiene
un generador de clock y excitador para el 8080; el generador contiene un oscilador controlado
por cristal, un contador divisor por nueve, dos excitadores modificadores de nivel y varias
funciones lgicas auxiliares.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

FIGURA C CI 8224 Generador de CLK


La seleccin de la frecuencia del cristal externo depende principalmente de la velocidad con
la que se desee que opere el microprocesador; el oscilador trabaja a una frecuencia nueve
veces mas rpida que la del 8080. Por ejemplo, si el periodo del 8080 es de 500 ns (tcy), la
frecuencia del cristal deber ser de 18 MHz.
En la figura C se muestra el diagrama del conexionado de los pines del 8224 y el esquema en
bloques del mismo. La funcin de las diferentes entradas y salidas de este chip son las
siguientes:
Seales de entrada:
XTAL1 y XTAL2: conexiones para cristal externo
TANK: Se utiliza cuando el cristal empleado es con resonancia en un armnico (sobre
tono), en este caso se debe conectar una red LC para proveer una ganancia
adicional.
SYNC: Entrada de sincronismo, generada por la CPU 8080 que se activa al comienzo
de
cada ciclo de mquina.
RESIN: Entrada de inicializacin (Reset), para conectar a un pulsador externo o a una red RC
para inicializar el encendido, para lo cual tiene un Schmitt Trigger.
RDYIN: Seal procedente de un dispositivo de memoria o perifrico, que indican que los
datos estn disponibles (usado por dispositivos lentos)

SEALES DE SALIDA
OSC: Salida del oscilador para crear una base de tiempo externa
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

1 y 2: Fases del reloj para el 8080


2 (TTL): Fase de reloj 2 con niveles TTL para ser usada por la memoria y perifricos.
STSTB: Seal usada para capturar la palabra de estado
RESET: Indica al procesador una operacin de puesta en cero.
READY: Indica a la CPU si los datos de los dispositivos de memoria o perifricos estan en el
bus de datos.
BUS DE CONTROL
Si recordamos el capitulo anterior sobre arquitectura de un sistema de microcomputo, en el
diagrama en bloques queda establecido la existencia de tres barras o Buses: el de direcciones,
el de datos y el de control; los primeros se utilizan para realizar las transferencias de datos
desde y hacia el microprocesador, el ltimo es el que da la informacin de que tipo de
operacin se est realizando como por ejemplo: lectura de memoria, salida a perifrico, etc.
Algunas lneas de control son pines fsicos del chip, otras se obtienen del bus de datos en un
determinado instante de tiempo. Las seales que son pines son:
WR: Seal de salida, activa en bajo, el dato presente en el bus de dato est estable para
escribir en memoria o puerta de salida.
SYNC: Seal de salida activa en alto, indica el comienzo de un nuevo ciclo de mquina y la
informacin de la palabra de estado es puesta sobre el bus de datos.
INTE: Seal de salida, indica el estado de las interrupciones, si estn habilitadas o no.
HOLDA: Seal de salida, su nivel indica si la CPU se halla o no en el estado hold.
WAIT: Seal de salida, cuando est en alto, indica que la CPU est en el modo WAIT.
DBIN: Seal de salida, cuando est en alto indica al circuito externo que el bus de datos est
en el modo de entrada.
A continuacin se analizar como obtener las seales del bus de control para el sistema 8080.
CICLOS DEL PROCESADOR 8080
Las actividades del microprocesador son cclicas, como ya se indic. El procesador busca una
instruccin, ejecuta las micro instrucciones especficas que el cdigo de operacin le indica,
busca la prxima instruccin, ejecuta, etc.
Existen distintos conceptos en cuanto a los ciclos que vamos a definir:
- Ciclo de instruccin: es el periodo entre el instante en que el procesador comienza la
bsqueda de la primera palabra de una instruccin y el momento en que se termina por
completo la ejecucin de la misma.
- Ciclo de mquina: es el tiempo en que se realiza una actividad bien definida de la cpu
como por ejemplo lectura de memoria, salida a perifrico, etc.
- Ciclo de reloj o estado: es el periodo del reloj 1 del procesador y durante el se realiza la
actividad mas sencilla posible. Por ello a este se le llama microciclo y durante el mismo
se ejecutar una microinstruccin.
Las instrucciones del 8080 estn formadas por 1,2,3,4 o 5 ciclos de mquina para su bsqueda
y ejecucin. Cada ciclo de mquina requiere de 3 a 5 estados, donde cada estado tiene una
duracin de 1 periodo de reloj como ya se mencion anteriormente. En general una
instruccin precisa de 4 a 18 estados.
De lo expuesto se puede afirmar de que el tiempo necesario para la ejecucin de una
instruccin es directamente proporcional a las veces que la cpu debe acceder a memoria.
Algunas operaciones no requieren de otro acceso aparte del de acceder al cdigo de
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

operacin, en tanto que otras precisan varios ciclos de mquina adicionales para escribir o leer
datos en o desde la memoria o algn dispositivo de entrada/salida.
Existen 3 excepciones en cuanto a considerar la duracin de un estado igual a un periodo de
reloj. Estas son : el estado de espera (wait), el estado de paro (HLDA) y el estado de
alto(HLTA) cuya funciones sern definidas mas adelante.
CICLOS DE MAQUINA
En un sistema de microcomputo intervienen un conjunto de elementos: CPU, memoria,
perifricos. Teniendo en cuenta que la CPU es la que define el ciclo de mquina a realizar de
acuerdo a la instruccin que se est ejecutando, es necesario para el funcionamiento del
sistema que este pueda ser identificado por los perifricos.
El nmero de ciclos de mquina que necesita un ciclo de instruccin, se puede determinar por
el nmero de veces que el procesador hace referencia a memoria o a un dispositivo de E/S.
La nica excepcin es la instruccin DAD (suma de registros pares) la cual requiere de dos
ciclos de mquina adicional en su ejecucin.
Teniendo en cuenta la arquitectura del microprocesador 8080, la cual es similar a la mayora
de los de su tipo, solo puede enviar una sola direccin por ciclo de mquina, por lo tanto si la
identificacin y ejecucin de una instruccin se necesita hacer dos accesos a memoria
entonces para ejecutar esta instruccin ser necesario dos ciclos de mquina. Si una
instruccin necesita de cinco accesos a memoria, el ciclo de instruccin contendr cinco
ciclos de mquina.
Todo ciclo de instruccin realiza, como mnimo, un acceso a memoria, el cual corresponde a
la bsqueda e identificacin del cdigo de operacin correspondiente a la instruccin . Este
ciclo de mquina es el primero de cualquier instruccin independiente del tipo de instruccin
considerada. En algunas instrucciones este es el nico ciclo de mquina que posee el ciclo de
instruccin, por ejemplo, en todas aquellas instruccin que solo utilizan los registros de uso
general de la CPU tal como en la instruccin de suma simple de registros (ADD r), esta es
una instruccin de un solo byte, en la que uno de los 6 registros de 8 bits de la CPU se suma
el contenido del acumulador, guardndose el resultado en este ltimo. Como toda la
informacin necesaria para la ejecucin de esta instruccin esta contenida en el cdigo de
operacin, por lo tanto necesita de un solo acceso a memoria. El ciclo de instruccin consta,
por la tanto, de un solo ciclo de mquina, que a su vez consta de cuatro estados o ciclos de
reloj: tres para extraer la instruccin de la memoria, mas un estado adicional para realizar la
suma.
Con respecto a lo anteriormente descripto llama la atencin que no se ha contemplado la
microinstruccin de guardar el resultado en el acumulador. Si tenemos en cuenta la figura I
en la que se detallan los ciclos de mquina y los estados necesarios para la ejecucin de cada
una de las instrucciones del microprocesador 8080, se observa que el almacenamiento del
resultado en el acumulador se realiza en el segundo estado del prximo ciclo de mquina,
pero este ciclo de mquina pertenece al ciclo de la instruccin siguiente. En otras palabras la
instruccin ADD R se termina de ejecutar en el primer ciclo de mquina de la instruccin
siguiente, de esta manera se agiliza la ejecucin. Este proceso descripto es utilizado en todas
las instrucciones aritmticas, lgicas y de rotacin.
Supongamos ahora que la suma debe realizarse entre el contenido del acumulador y el de una
posicin de memoria determinada (ADD M). El principio de funcionamiento es el mismo que
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

se indic en el ejemplo anterior, pero en este caso se precisa de otro ciclo de mquina, en el
cual se debe buscar en memoria el dato operando.
La secuencias que se desarrollan para la ejecucin de esta instruccin son las siguientes: en
primer lugar, el procesador accede a la memoria, enviando la direccin contenida en el
contador de programa, con el objeto de obtener el cdigo de operacin de la instruccin . Es
el ciclo de bsqueda e identificacin de la instruccin . Una vez que los 8 bits del cdigo se
encuentran en CPU y la instruccin ha sido identificada, operacin que consta de tres estados,
como en el caso anterior, el procesador debe enviar por el bus de direcciones una nueva
direccin de memoria, la contenida en el par HL, el dato obtenido de este nuevo acceso a
memoria es guardado en un registro temporal de CPU, habindose utilizado en este ciclo de
mquina tres nuevos estados (periodos de reloj). En el sptimo y ltimo estado de la
instruccin, se realiza la suma entre el contenido del acumulador y el registro temporal. Se
puede deducir que esta instruccin precisa de dos ciclos de mquina (dos accesos a memoria)
y siete estados para su ejecucin. La ejecucin se completa como en el caso anterior
guardando el resultado en el acumulador en el segundo estado del primer ciclo de mquina de
la instruccin siguiente, produccindose el solapamiento de operaciones explicado en
prrafos anteriores.
Otra instruccin caracterstica es la de guardar el contenido del registro par HL en memoria,
en dos lugares consecutivos cuya direccin viene en los dos bytes de memoria siguientes al
del byte del cdigo de operacin, esta instruccin requiere de cinco ciclos de mquina para su
realizacin. La secuencia de operaciones, que tiene lugar en la ejecucin de esta instruccin,
es la siguiente:
1- Un ciclo de bsqueda, que consta de cuatro estados. Durante los tres prrimeros, el
procesador busca e identifica la instruccin, accediendo al lugar de memoria indicado en
el contador de programa (PC) el cual se incrementa en uno. En el cuarto estado, se realiza
la decodificacin interna de la instruccin .
2- Un ciclo de lectura de memoria, que consta de tres estados. Durante este, el byte definido
por el contador de programa (segundo byte de la instruccin y parte baja de la direccin
de almacenamiento), se extrae de memoria y se deposita en el registro interno Z de CPU.
El contador de programa se incrementa de nuevo en una unidad.
3- Un nuevo ciclo de lectura de memoria, similar al anterior y donde el tercer byte de la
instruccin (parte alta de la direccin) es cargado en el registro W, en este el PC tambin
es actualizado.
4- Ciclo de escritura en memoria, de tres estados, en que el contenido del registro L se
transfiere a la posicin de memoria definida por los registros WZ. El ltimo estado de este
ciclo se utiliza para incrementar el par registro WZ, con el objeto de indicar la prxima
direccin de memoria para almacenar el contenido del registro H.
5- Nuevo ciclo de escritura en memoria, que consta de tres estados, en el que el contenido
del registro H se transfiere a la nueva direccin de memoria, definida por el par WZ.
En resumen, la instruccin SHLD contiene cinco ciclos de mquina y necesita de 16 estados
para su ejecucin.
El resto de las instruccin del 8080 estn comprendidos entre los extremos caracterizados por
las instrucciones ADD R y SHLD. Por ejemplo las instrucciones de entrada (IN) y salida
(OUT) necesitan tres ciclos de mquina: uno de bsqueda de cdigo de operacin de la
instruccin , otro de lectura en memoria para obtener la direccin (cdigo) del perifrico al
que se debe acceder, y uno de entrada o salida a perifrico, para realizar la transferencia de
datos indicada en la instruccin .
TIPOS DE CICLOS DE MQUINA
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

En los ejemplos enunciados anteriormente se puede determinar que existen distintos tipos de
ciclos de mquina: bsqueda, lectura, escritura, etc. Teniendo en cuenta que ningn ciclo de
instruccin estar constituidos por mas de cinco ciclos de mquina,es evidente que debe
existir una cierta variedad de ciclos de mquina que permitan que se ejecuten las instrucciones
del procesador 8080.
Los ciclos de mquina caractersticos del up 8080 son diez, los cuales sern descriptos a
continuacin:
-

Bsqueda (Fetch): Este ciclo de mquina puede consistir e cuatro o cinco estados, con la
excepcin de estado de WAIT, HLDA y HLTA, los cuales contienen un nmero entero de
estados mayor que tres. Durante este ciclo la CPU obtiene de memoria el cdigo de
operacin de la instruccin, por eso el nombre de ciclo bsqueda. La direccin de
memoria de la cual obtiene el cdigo es el contenido en el contador de programa (PC),
este cdigo de operacin es transferido al registro de instruccin del 8080, donde luego
en el decodificador de instrucciones ser decodificado resultando una serie de acciones
que el procesador deber realizar para ejecutar la instruccin . Durante este ciclo el PC es
incrementado en uno para obtener la direccin del prximo byte. En algunas instrucciones
solo es necesario este ciclo para su ejecucin, en estos casos durante este ciclo de mquina
tambin se realizan transferencias entre registros de CPU y operaciones aritmticas o
lgicas simples.

Lectura de memoria (Memory read): Este ciclo de mquina consiste de tres estados.
Durante este ciclo el byte de memoria almacenado en la direccin que estar presente en
el bus de direcciones, es transferido a alguno de los registros de CPU.

Escritura en memoria (Memory write): Este ciclo de mquina consiste de tres o cuatro
estados, durante los cuales el contenido de algn registro es transferido al lugar de
memoria direccionado.

Salida a perifrico (Output): Este ciclo de mquina consiste de tres estados, durante los
cuales el cdigo del dispositivo deber estar presente sobre el bus de direcciones y el
contenido del acumulador estar disponible sobre los ocho bit del bus de datos.

Entrada de perifrico (Input): Durante los tres estados de este ciclo la CPU deber
realizar lo siguiente: colocar el cdigo del perifrico en el bus de direcciones, luego
deber capturar el dato presente en el bus de datos para ser transferido al acumulador.
Escritura en pila (Stack write): Durante los tres estados de este ciclo de mquina, un dato
de 8 bits de CPU ser transferido al lugar de memoria direccionado por el puntero de pila
(SP). El puntero es previamente decrementado en una unidad.

Lectura de pila (Stack read): Este ciclo de mquina consiste en tres estados, en estos el
contenido del lugar de memoria direccionado por SP es trasnferido a alguno de los
registros de la CPU. Luego el SP es incrementado en uno.

Alto (Halt): Este ciclo de mquina contiene tres o mas estados. El nmero adicional de
estados deber ser un nmero entero. El microprocesador se mantendr en un estado de
espera (wait) hasta que la entrada READY del 8080 tome un valor lgico cero. La seal
de control de salida del 8080, WAIT, tomar el valor lgico 1, de esta manera la CPU
indica que se encuentra en un estado de espera (WAIT).
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

Interrupcin (Interrupt): Este ciclo de mquina contiene 5 estados, utiliza el ciclo de


bsqueda sin incrementar el PC. El estado del PC antes de la Interrupcin deber ser
salvado en la pila con lo que le permitir continuar con el programa interrumpido luego de
atender la interrupcin.

Alto-Interrupcin (Halt-Interrupt): Este ciclo de mquina es una composicin de los dos


anteriores. Se produce una interrupcin mientras se est en un estado de alto.

IDENTIFICACIN DEL CICLO DE MQUINA


Teniendo en cuenta las caractersticas particulares de cada ciclo de mquina enunciados,
podemos deducir que para el buen funcionamiento del sistema de microcmputo es necesario
identificar el ciclo de mquina que se est ejecutando. De esta manera se podr asegurar una
buena comunicacin entre CPU y los dems dispositivos del sistema.
El microprocesador 8080 tiene una caracterstica muy particular que es la siguiente: en el
primer estado de cada ciclo de mquina entrega la informacin de estado STATUS sobre el
bus de datos, esta informacin deber ser capturada para mantenerla durante todo el ciclo de
mquina presente, de esta manera se puede utilizar para generar las seales necesarias para
comandar los distintos dispositivos perifricos.
La captura de la informacin se puede realizar en un circuito integrado de la familia, el 8212,
o cualquier latch de 8 bits, por ejemplo 74LS373 como se muestra en la figura D.
Las Seales SYNC y 1 (TTL) determinan el instante en que se debe tomar la informacin
de estado del bus de datos, en otras palabras son las seales que sincronizan al latch como se
observa en la figura D.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

10

FIGURA D

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

11

FIGURA E
Los ocho bits de estado, tambin llamado bus de control bsico, que se presentan sobre el bus
de datos al comienzo de cada ciclo de mquina se describen a continuacin con sus
respectivos smbolos.
SMBOLO

BIT DEL
BUS DE
DATOS

INTA

D0

DESCRIPCIN
Seal de reconocimiento de interrupcin. Se activa en cuando el
8080 realiza un ciclo de mquina de reconocimiento de una
interrupcin. Esta seal junto con la DBIN (pin 17 del 8080), se
utilizan para introducir una instruccin, generalmente una de
restablecimiento o reinicio (RST n), en el bus de datos.
Este bit de estado tomar su valor activo 0 cuando la CPU realice
un ciclo de escritura en memoria o una operacin de salida (out).

W0

D1

STACK

D2

Indica que la direccin presente en el bus de direcciones


corresponde a la del contenido del puntero de pila SP (stack
pointer).

HLTA

D3

Seal de reconocimiento de una instruccin de alto (HLT).

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

12

OUT

D4

Un 1 lgico en este bit de estado, indica que el bus de direcciones


contiene la direccin de un dispositivo de salida, y que el bus de
datos contendr el dato que debe enviarse al perifrico, cuando la
lnea WR (terminal 18 del 8080) este activada.

M1

D5

Indica que la CPU est en el ciclo de bsqueda (Fetch), el primer


byte de una instruccin .

INP

D6

Un nivel alto en esta lnea, indica que el bus de direcciones


contiene la direccin de un dispositivo de entrada, y el dato a
ingresar deber ser puesto en el bus de datos por el perifrico,
para que cuando la seal DBIN este en su valor activo, sea ledo
por la CPU.

MEMR

D7

Un nivel alto en esta lnea, indica que el bus de direcciones


contiene la direccin de un lugar de memoria y el dato contenido
en esta deber ser puesto en el bus de datos para que cuando la
seal DBIN este en su valor activo, sea ledos por la CPU

EL estado de las seales del bus bsico de control para los ciclo de mquina caractersticos
descriptos anteriormente, pueden observarse en la figura F.

FIGURA F
A partir de este bus bsico de control se generan las seales de control que debern tenerse en
cuenta para la generacin de los pulsos selectores de memoria y dispositivos perifricos como
se muestra en las figuras G y H.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

13

FIGURA G

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

14

FIGURA H

Diagrama de tiempo correspondiente a una instruccin de entrada de datos

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

15

Diagrama de tiempo correspondiente a una instruccin de salida de datos


TRANSICIN DE ESTADOS EN EL 8080
Cada uno de los ciclos de mquina de un ciclo de instruccin consta de tres a cinco estados
activos. A estos estados se los define como T1, T2, T3, T4, T5 o Tw. El nmero de estados,
como se sabe, depende de la instruccin que est siendo ejecutada y en particular del ciclo de
mquina presente. La figura I muestra el diagrama de transicin de estado, en l se observa
como el 8080 pasa de un estado a otro en un ciclo de mquina. Asimismo se observa como
son muestreadas las lneas READY, HOLD y INTR y la modificacin producida en la
secuencia si alguna condicin activa aparece en estas lneas. En principio se estudiar el
diagrama teniendo en cuenta la secuencia normal y la funcin READY. Las funciones de alto
e interrupcin se vern posteriormente.
La unidad central de proceso del 8080 no indica directamente su estado interno, transmitiendo
una salida de control de estado durante cada uno de estos. En cambio proporciona una salida
de control directa (INTE, HLDA, DBIN, WR y WAIT) que utiliza la lgica exterior.
La seal SYNC identifica el primer estado (T1) de un ciclo de mquina. Esta seal se activa
un tiempo (tpc) despus de la subida de 2, la seal se mantiene hasta un nuevo flanco
positivo de la seal de reloj, producindose el mismo retardo que en la subida.
La informacin de estado (bus de control bsico) es puesta en el bus de datos durante el
intervalo comprendido entre los pulsos de 2.
Con el flanco de subida de 2 en el estado T1, el procesador coloca una direccin en el bus de
direcciones A0 - A15, estas estarn estables luego e un ciclo de retardo (tda), y estarn
presentes hasta el primer pulso de 2 luego del estado de T3, lo cual le da al procesador
suficiente tiempo para realizar una lectura.
Una vez que el procesador ha enviado una direccin a la memoria, esta, tiene la posibilidad
de ejecutar una demanda de espera (WAIT), si el tiempo de acceso a la memoria as lo
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

16

requiere. Esta solicitud lo realiza el dispositivo colocando en 0 la lnea READY, el 8080


analiza esta lnea realizando un pulling de esta seal en el estado T2 cuando 2=1. De esta
manera el procesador entra en un estado de espera Tw, la permanencia en este estado es
identificada y esta determinada por la subida de READY la cual ser analizada antes del
flanco negativo de 2, con el objeto de asegurar el paso al estado siguiente en el momento
correcto dado por el flanco positivo de 1. Por esto la duracin de un perodo de espera ser
siempre un mltiplo entero de estados Tw, y por lo tanto del periodo del reloj.
El procesador reconoce el pedido de espera colocando en 1 la seal WAIT, la cual est
sincronizada con el flanco de subida de 1, y tiene un cierto retardo (tdc) respecto a la entrada
del procesador en el estado Tw. Figura J.
En el estado siguiente T3, las operaciones dependen del ciclo de mquina que se esta
ejecutando. Si corresponde a un ciclo de bsqueda (Fetch), el procesador interpreta el dato
como una instruccin, si el ciclo corresponde a una lectura de memoria o lectura de memoria
pila, los datos del bus se toman como una palabra de datos, si lo que se est ejecutando es un
ciclo de escritura en memoria, el procesador el dato en el bus de datos y por ltimo, si el ciclo
es de entrada/salida, el procesador puede recibir o transmitir datos desde/o a un dispositivo
perifrico, segn sea una instruccin de entrada o salida.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

17

FIGURA I

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

18

FIGURA J
Durante la entrada de datos al procesador, el 8080 genera la seal DBIN, la cual debe ser
usada por los dispositivos externos para habilitar las transferencias hacia CPU. Esta seal ser
activa en todos aquellos ciclos de mquina en que se deban ingresar datos a CPU los cuales
son: bsqueda, lectura de memoria, lectura de memoria pila, entrada de perifricos y
reconocimiento de interrupcin. La seal DBIN se activa durante el estado T2 sincronizada
con el flanco de subida de 2, la seal vuelve al valor cero con el flanco positivo de 2
correspondiente a T3. Si algn estado de espera T2 aparece, la seal DBIN se mantendr en
uno hasta que la CPU salga de este.
En el caso que el procesador deba sacar datos ya sea a memoria o a perifricos, con el flanco
de subida de 2 durante el estado T2 se elimina del bus de datos la informacin de control, y
se deposite en l el dato que debe ser transferido desde la CPU. Esta sustitucin se realiza
teniendo en cuenta un cierto retardo respecto al flanco de 2, este retardo es llamado data
output delay (tdd). El dato en el bus de datos permanecer estable durante el resto del ciclo
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

19

de mquina y ser recin reemplazado por la informacin de estado del prximo ciclo de
mquina en el estado T1.
El 8080 genera la salida WR para sincronizar las transferencias de salida, esta seal estar
presente en los ciclos de mquina de escritura en memoria, escritura en memoria pila y salida
a perifricos. El flanco negativo de WR este referenciado al de subida de 1 producido en el
estado T2 teniendo en cuenta un breve retardo (tdc). La seal vuelve a 1 lgico con el flanco
positivo de 1 en el estado siguiente T3, este corresponde al primer estado del ciclo de
mquina siguiente. Si un estado de espera Tw aparece, la seal WR se mantendr en cero.
Los estados T4 y T5 son opcionales y dependen del ciclo de instruccin, si estos no son
necesarios son eliminados.
Lo enunciado se puede resumir describiendo las distintas actividades o acciones, que se
producen en cada uno de los estados.
Estado T1:

Con el flanco positivo de 2 coloca en el bus de direcciones una direccin


de memoria o el cdigo de un perifrico.
La seal SYNC pasa a uno lgico un cierto tiempo despus que 2 toma
el valor 1.
La CPU vuelca sobre el bus de datos los ocho bits de estado (INTA, WO,
STACK, HLTA, OUT, M, INP Y MEMR), en el mismo instante en que
se activa la seal SYNC.

Estado T2:

El 8080 en este estado analiza las lneas de entrada HOLD y READY asi
como la presencia de una instruccin de alto (HALT). Si la seal
READY esta en 1 lgico se pasar al estado T3, en caso contrario el
procesador entrar en un estado de espera, TN.
La salida SYNC del 8080 vuelve a su valor inactivo 0 lgico un cierto
tiempo, luego del flanco positivo de 2. Luego de la subida de 2,
teniendo en cuenta un cierto retardo, la palabra de estado que estaba
presente en el bus de datos es reemplazada por una instruccin o un dato
el cual puede ser puesto por CPU, memoria o perifrico dependiendo del
ciclo de mquina presente.
El contenido del bus de direcciones se mantiene estable en este estado. La
seal DBIN del 8080 pasa a nivel 1 lgico con la subida de 2.

Estado Tw:

Este es un estado de espera opcional, la CPU ingresa en este estado si


detecta en el estado T2 la seal de entrada READY esta en cero o si una
instruccin de HALT ha sido ejecutada, en este ltimo caso, la CPU
permanecer en este estado hasta que una interrupcin o un reset sea
aplicado.
La CPU indica la aceptacin de este estado de espera, mediante la seal
WAIT, la cual es un terminal de salida del 8080. Esta seal de
reconocimiento toma el valor activo 1 con el flanco positivo de 1.
Un estado de espera puede ser de duracin infinita, el procesador
permanecer en este estado hasta que la seal READY vuelva al valor 1
lgico.
El contenido del bus de direcciones no cambia durante este estado.

Estado T3:

En este estado el dato presente en el bus de datos ser transferido al


elemento destino, el cual puede ser un registro de CPU, memoria o
perifrico, dependiendo del ciclo de mquina en cuestin.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

20

En ciclos de mquina correspondiente a escritura en memoria o salida de


perifricos, la seal WR va a su estado activo, 0 lgico, con el primer
pulso de 1 luego del estado T2, esto puede ocurrir en cualquiera de los
estados Two T3, usualmente en esta ltimo.
La salida del 8080 WR retorna a 1 lgico luego de la subida de 1 en el
primer estado del ciclo de mquina siguiente.
Estados T4, Estos dos estados son opcionales, que sern ocupados si las instruccin en
T5:
ejecucin lo requiere, la CPU podr eliminar uno o ambos estados.
Estos estados son solo utilizados por operaciones internas de CPU. El
contenido del bus de direcciones cambia con un cierto retardo respecto a
la subida 2.
En la figura K se describe cada una de las instrucciones del procesador 8080 con sus distintos
ciclos de mquina y los estados que cada uno utiliza, se indican adems para cada estado las
microoperaciones que se realizan en cada uno de ellas.
Algunos de los elementos notables de la figura K estn referenciados por nmeros que a
continuacin describiremos.
1- El primer ciclo de mquina de la instruccin corresponde a un ciclo de bsqueda, el
cdigo de operacin de la instruccin es ledo de la memoria.
2- Si la entrada READY esta en 0 lgico, el procesador entra en un estado de espera tw
hasta que la seal vuelve a alto.
3- Los estados T4 y T5 estn presentes, estos son requeridos por la instruccin , en estos
estados solo se realizan operaciones internas de CPU como por ejemplo la decodificacin
de una instruccin. Una x indica que este estado es utilizad.
4- Solo aplicable a los registros pares B y D
5- Estos estados son eliminados
6- Sub-ciclo de lectura de memoria; una instruccin o palabra de datos debe ser ledo
7- Sub-ciclo escritura.
8- La seal READY no es analizada en el segundo y tercer sub-ciclo (M2 y M3). La seal de
HOLD si es aceptada durante M2 y M3. La seal SYNC no es generada en M2 y M3 ya que
la memoria no es accedida en estos y solo son utilizadas para sumar los registros pares.
9- El resultado de la instruccin aritmtica lgica o de rotacin no es transferido a su
destino, el acumulador (A) hasta el estado T2 del siguiente ciclo de instruccin , esta
superposicin de operaciones permite un procesamiento mas rpido.
10- Las operaciones de la instruccin de ajuste decimal del acumulador
11- Indica el primer sub-ciclo del siguiente ciclo de instruccin.
12- Si se cumple la condicin, el contenido del registro interno Wz es sacado por el bus de
direcciones y cargado en el contador de programa PC.
13- Si la condicin no se cumple, se eliminan los ciclos de mquina M4 y M5, el procesador
pasa al ciclo de instruccin siguiente.
14- Idem 13 lo nico que se elimina M2 y M3
15- Sub-ciclo de lectura de memoria de pila.
16- Sub-ciclo de escritura en memoria de pila.
17- Los valores de cdigo de operacin dependen de la condicin segn la siguiente tabla.
Condicin
CCC
Cero NZ
Z=0
000
Z
Z=1
001
Carry NC
Cy=0
010
MICROPROCESADORES I Y ELECTRONICA DIGITAL III
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

21

C
Cy=1
011
Paridad PO P=0 (impar)
100
PE
P=1 (par)
101
P
S=0
110
M
S=1
111
18- Sub-ciclo de entrada/salida, el cdigo de la puerta seleccionada es dudplicado sobre las
lneas de direcciones A0-7 y A8-15
19- Sub-ciclo de salida.

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

22

Figura K

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

23

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

24

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

25

MICROPROCESADORES I Y ELECTRONICA DIGITAL III


GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck

26