Beruflich Dokumente
Kultur Dokumente
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
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
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.
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
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
10
FIGURA D
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
HLTA
D3
12
OUT
D4
M1
D5
INP
D6
MEMR
D7
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.
13
FIGURA G
14
FIGURA H
15
16
17
FIGURA I
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:
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:
Estado T3:
20
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.
22
Figura K
23
24
25
26