INTRODUCCIÓN:
En los temas anteriores se estudio la estructura y el principio de funcionamiento de los
sistemas de microcómputo. En estos se definieron los elementos fundamentales que los
componen CPU, Memoria, enlace a periféricos, los buses de datos, direcciones y control.
A continuación se analizarán conceptos nuevos necesarios de tener en cuenta para diseñar un
sistema, es decir cuales son realmente las señales eléctricas 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 señales del reloj y del bus de control se tendrán todos los elementos
para poder realizar el hardware necesario para la construcción de un sistema de microcomputo
en particular para el up 8080.
Φ1
Clock Monofásico
Φ1
Φ2
Clock bifásico
FIGURA A
FIGURA B
También como se mencionó antes, para esta función 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 lógicas auxiliares.
SEÑALES DE SALIDA
OSC: Salida del oscilador para crear una base de tiempo externa
BUS DE CONTROL
WR: Señal de salida, activa en bajo, el dato presente en el bus de dato está estable para
escribir en memoria o puerta de salida.
SYNC: Señal de salida activa en alto, indica el comienzo de un nuevo ciclo de máquina y la
información de la palabra de estado es puesta sobre el bus de datos.
INTE: Señal de salida, indica el estado de las interrupciones, si están habilitadas o no.
HOLDA: Señal de salida, su nivel indica si la CPU se halla o no en el estado hold.
WAIT: Señal de salida, cuando está en alto, indica que la CPU está en el modo WAIT.
DBIN: Señal de salida, cuando está en alto indica al circuito externo que el bus de datos está
en el modo de entrada.
A continuación se analizará como obtener las señales del bus de control para el sistema 8080.
Las actividades del microprocesador son cíclicas, como ya se indicó. El procesador busca una
instrucción, ejecuta las micro instrucciones específicas que el código de operación le indica,
busca la próxima instrucción, ejecuta, etc.
Existen distintos conceptos en cuanto a los ciclos que vamos a definir:
- Ciclo de instrucción: es el periodo entre el instante en que el procesador comienza la
búsqueda de la primera palabra de una instrucción y el momento en que se termina por
completo la ejecución de la misma.
- Ciclo de máquina: es el tiempo en que se realiza una actividad bien definida de la cpu
como por ejemplo lectura de memoria, salida a periférico, 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 microinstrucción.
Las instrucciones del 8080 están formadas por 1,2,3,4 o 5 ciclos de máquina para su búsqueda
y ejecución. Cada ciclo de máquina requiere de 3 a 5 estados, donde cada estado tiene una
duración de 1 periodo de reloj como ya se mencionó anteriormente. En general una
instrucción precisa de 4 a 18 estados.
De lo expuesto se puede afirmar de que el tiempo necesario para la ejecución de una
instrucción 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 código de
CICLOS DE MAQUINA
Todo ciclo de instrucción realiza, como mínimo, un acceso a memoria, el cual corresponde a
la búsqueda e identificación del código de operación correspondiente a la instrucción . Este
ciclo de máquina es el primero de cualquier instrucción independiente del tipo de instrucción
considerada. En algunas instrucciones este es el único ciclo de máquina que posee el ciclo de
instrucción, por ejemplo, en todas aquellas instrucción que solo utilizan los registros de uso
general de la CPU tal como en la instrucción de suma simple de registros (ADD r), esta es
una instrucción de un solo byte, en la que uno de los 6 registros de 8 bits de la CPU se suma
el contenido del acumulador, guardándose el resultado en este último. Como toda la
información necesaria para la ejecución de esta instrucción esta contenida en el código de
operación, por lo tanto necesita de un solo acceso a memoria. El ciclo de instrucción consta,
por la tanto, de un solo ciclo de máquina, que a su vez consta de cuatro estados o ciclos de
reloj: tres para extraer la instrucción de la memoria, mas un estado adicional para realizar la
suma.
Supongamos ahora que la suma debe realizarse entre el contenido del acumulador y el de una
posición de memoria determinada (ADD M). El principio de funcionamiento es el mismo que
- Búsqueda (Fetch): Este ciclo de máquina puede consistir e cuatro o cinco estados, con la
excepción de estado de WAIT, HLDA y HLTA, los cuales contienen un número entero de
estados mayor que tres. Durante este ciclo la CPU obtiene de memoria el código de
operación de la instrucción, por eso el nombre de ciclo búsqueda. La dirección de
memoria de la cual obtiene el código es el contenido en el contador de programa (PC),
este código de operación es transferido al registro de instrucción del 8080, donde luego
en el decodificador de instrucciones será decodificado resultando una serie de acciones
que el procesador deberá realizar para ejecutar la instrucción . Durante este ciclo el PC es
incrementado en uno para obtener la dirección del próximo byte. En algunas instrucciones
solo es necesario este ciclo para su ejecución, en estos casos durante este ciclo de máquina
también se realizan transferencias entre registros de CPU y operaciones aritméticas o
lógicas simples.
- Lectura de memoria (Memory read): Este ciclo de máquina consiste de tres estados.
Durante este ciclo el byte de memoria almacenado en la dirección 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 máquina consiste de tres o cuatro
estados, durante los cuales el contenido de algún registro es transferido al lugar de
memoria direccionado.
- Salida a periférico (Output): Este ciclo de máquina consiste de tres estados, durante los
cuales el código 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 periférico (Input): Durante los tres estados de este ciclo la CPU deberá
realizar lo siguiente: colocar el código del periférico 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 máquina, 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 máquina 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 máquina contiene tres o mas estados. El número adicional de
estados deberá ser un número entero. El microprocesador se mantendrá en un estado de
espera (wait) hasta que la entrada READY del 8080 tome un valor lógico cero. La señal
de control de salida del 8080, WAIT, tomará el valor lógico 1, de esta manera la CPU
indica que se encuentra en un estado de espera (WAIT).
Los ocho bits de estado, también llamado bus de control básico, que se presentan sobre el bus
de datos al comienzo de cada ciclo de máquina se describen a continuación con sus
respectivos símbolos.
BIT DEL
SÍMBOLO BUS DE DESCRIPCIÓN
DATOS
EL estado de las señales del bus básico de control para los ciclo de máquina característicos
descriptos anteriormente, pueden observarse en la figura F.
FIGURA F
A partir de este bus básico de control se generan las señales de control que deberán tenerse en
cuenta para la generación de los pulsos selectores de memoria y dispositivos periféricos como
se muestra en las figuras G y H.
Cada uno de los ciclos de máquina de un ciclo de instrucción consta de tres a cinco estados
activos. A estos estados se los define como T1, T2, T3, T4, T5 o Tw. El número de estados,
como se sabe, depende de la instrucción que está siendo ejecutada y en particular del ciclo de
máquina presente. La figura I muestra el diagrama de transición de estado, en él se observa
como el 8080 pasa de un estado a otro en un ciclo de máquina. Asimismo se observa como
son muestreadas las líneas READY, HOLD y INTR y la modificación producida en la
secuencia si alguna condición activa aparece en estas líneas. En principio se estudiará el
diagrama teniendo en cuenta la secuencia normal y la función READY. Las funciones de alto
e interrupción se verán 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 lógica exterior.
La señal SYNC identifica el primer estado (T1) de un ciclo de máquina. Esta señal se activa
un tiempo (tpc) después de la subida de Φ2, la señal se mantiene hasta un nuevo flanco
positivo de la señal de reloj, produciéndose el mismo retardo que en la subida.
La información de estado (bus de control básico) 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 dirección en el bus de
direcciones A0 - A15, estas estarán estables luego e un ciclo de retardo (tda), y estarán
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 dirección a la memoria, esta, tiene la posibilidad
de ejecutar una demanda de espera (WAIT), si el tiempo de acceso a la memoria así lo
En el estado siguiente T3, las operaciones dependen del ciclo de máquina que se esta
ejecutando. Si corresponde a un ciclo de búsqueda (Fetch), el procesador interpreta el dato
como una instrucción, 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
periférico, según sea una instrucción de entrada o salida.
Estado T1: Con el flanco positivo de Φ2 coloca en el bus de direcciones una dirección
de memoria o el código de un periférico.
La señal SYNC pasa a uno lógico un cierto tiempo después 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 señal SYNC.
Estado T2: El 8080 en este estado analiza las líneas de entrada HOLD y READY asi
como la presencia de una instrucción de alto (HALT). Si la señal
READY esta en 1 lógico 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 lógico 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 instrucción o un dato
el cual puede ser puesto por CPU, memoria o periférico dependiendo del
ciclo de máquina presente.
El contenido del bus de direcciones se mantiene estable en este estado. La
señal DBIN del 8080 pasa a nivel 1 lógico 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 señal de entrada READY esta en cero o si una
instrucción de HALT ha sido ejecutada, en este último caso, la CPU
permanecerá en este estado hasta que una interrupción o un reset sea
aplicado.
La CPU indica la aceptación de este estado de espera, mediante la señal
WAIT, la cual es un terminal de salida del 8080. Esta señal de
reconocimiento toma el valor activo 1 con el flanco positivo de Φ1.
Un estado de espera puede ser de duración infinita, el procesador
permanecerá en este estado hasta que la señal READY vuelva al valor 1
lógico.
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
periférico, dependiendo del ciclo de máquina en cuestión.
MICROPROCESADORES I Y ELECTRONICA DIGITAL III 20
GENERACION DEL BUS DE CONTROL
Ing. Carlos G. Gil, Ing. Gustavo Ensinck
En ciclos de máquina correspondiente a escritura en memoria o salida de
periféricos, la señal WR va a su estado activo, 0 lógico, 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 lógico luego de la subida de Φ1 en el
primer estado del ciclo de máquina siguiente.
Estados T4, Estos dos estados son opcionales, que serán ocupados si las instrucción en
T5: ejecución 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 máquina y los estados que cada uno utiliza, se indican además para cada estado las
microoperaciones que se realizan en cada uno de ellas.
Algunos de los elementos notables de la figura K están referenciados por números que a
continuación describiremos.