Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Operacion Interna de Un Procesador
Operacion Interna de Un Procesador
Estado de Reloj: es el período del reloj (clock) del microprocesador (T1, T2, T3,
T4). Cada ciclo de máquina esta compuesto por un número entero de pulsos de reloj,
pero no todos los ciclos de máquina tienen el mismo número de estados. El reloj
determina los instantes de la secuencia del flujo de información y el temporizado de
las líneas de control. Un estado o período de reloj es la unidad más pequeña de
actividad, es decir que realiza la ejecución de una o más "micro-instrucciones".
Debido a que un ciclo de máquina requiere 3 actividades básicas como son:
- enviar direcciones al canal de direcciones,
- preparar transferencias en el canal de datos,
- realizar la transferencia propiamente dicha (es decir, copiar en un registro o
en memoria),
es que se requiere, al menos, de 3 períodos de reloj o estados para su desarrollo.
Eventualmente, un cuarto o más ciclos adicionales son necesarios para el caso de un
ciclo de máquina Fetch.
FIGURA 4.1
M1:
- AB <-- PC
- DB <-- [AB]; PC <-- PC+1 : lectura de memoria (R/W=1)
- IR <-- DB : comienza decodif.de instrucción
- Comienza a ejecutar inst. : descripción de la operación
Ejecución de la instrucción
Como sabemos, si la instrucción es de un byte, ésta se podría ejecutar durante el
ciclo de máquina M1. Si es de varias palabras, la instrucción comienza a ejecutarse
durante este ciclo y será necesario para terminar la ejecución realizar nuevos
accesos a memoria para traer los operandos. Para ello es necesario:
1. Transferir el PC al buffer de direcciones (AB), durante el tiempo T1.
2. El contenido de memoria de AB se transfiere al buffer de datos (DB) y se
incrementa el PC en 1. Esto se realiza en T2 y parte de T3.
3. Almacena el dato leído de memoria en un registro temporario o en un registro la
CPU (acumulador, XR, etc.), y se realiza la ejecución de acuerdo a la instrucción.
M2:
- AB <-- PC
- DB <-- [AB]; PC <-- PC+1
- TEMP <-- DB / Ri <-- DB / EJECUTA INSTRUCCION.
FIGURA 4.2
FIGURA 4.3
Una instrucción se puede dividir en uno o más ciclos de máquina (M1, M2,..., etc.), y
cada ciclo de máquina se compone de un número de estados (períodos de Reloj t1,
t2,...etc.). Durante cada estado se llevan a cabo un conjunto de microoperaciones u
operaciones internas, como se representa en la fig. 4.4. Dichos estados se
representan por círculos con Ti en su interior.
En esencia, este diagrama trata de describir las operaciones de un ciclo de
máquina particular. Un diagrama de estado es un esquema donde se muestra
"aproximadamente" cuáles son las operaciones internas (microoperaciones) realizadas
por el microprocesador en cada estado. La transición entre estados se representa por
flechas, y la transición se produce cuando la condición indicada en cada flecha es
verdadera.
FIGURA 4.4
T1: durante este estado, el procesador emite las señales de estado (status), para
identificar el tipo de ciclo de máquina, y además establece las direcciones válidas
sobre el canal de direcciones para identificar a la memoria o dispositivo I/O.
T2: durante este estado, la CPU emite las señales de control apropiadas para
sincronizar un ciclo de lectura o de escritura (/RD o /WR). Además, en este estado,
incrementa el PC siempre y cuando sea un ciclo FETCH o un ciclo READ en el cual se
lean datos (operandos) que forman parte de la instrucción. Por último, se muestrea la
señal WAIT.
Twait: el microprocesador entra en este estado en respuesta a una señal wait activa.
Este estado mantiene las mismas condiciones (señales de control, direcciones y datos)
que el estado T2. Por lo tanto, se prolonga el tiempo de acceso a un lugar de memoria
o dispositivo de I/O.
T3: durante este estado se produce, realmente, la transferencia de datos entre la CPU
y el elemento seleccionado. Si el ciclo es FETCH, el registro destino es el IR. Si es
READ, el registro destino es cualquier Ri distinto de IR; si es un WRITE, el
dispositivo seleccionado o la memoria seleccionada, lee del canal de datos.
Por lo tanto, con reloj de simple fase se necesitan más períodos de reloj que con
un reloj multi-fase.
El intercambio de información entre una CPU y los módulos de memoria e I/O se realiza
en los ciclos de buses, y está sincronizado por el reloj de la CPU. Los ciclos de
buses pueden ser de acuerdo a la CPU:
- Reloj de simple fase, de canal no multiplexado (ejemplo: Z-80),
- Reloj de simple fase, de canal multiplexado (ejemplo; 8085),
- Reloj bifásico (ejemplo: 6800).
FIGURA 4.7
En la figura 4.7 se muestra una instrucción del tipo salto condicional en la cual
la duración del ciclo de instrucción depende de la condición. En el caso que sea
verdadera tiene 3 ciclos de máquina; en caso contrario, únicamente 2. Tal como se
desarrolla la ejecución de la instrucción en la fig. 4.7, la condición determina la
longitud de la instrucción. Se podría haber hecho de manera tal que durase el mismo
intervalo de tiempo.
FIGURA 4.8
Operación de Lectura:
Operación de Escritura:
FIGURA 4.10
La figura 4.10 muestra una operación de escritura. La secuencia es similar a la
anterior con la diferencia de la línea R/W=0. La memoria debe almacenar el dato con
el flanco descendente de Ø2.
Tanto en la figura 4.9 como en la 4.10, la línea E coincide con Ø2, por lo tanto
en este caso se puede eliminar E. Sin embargo, en el caso de eliminar E, es necesario
agregar una (VMA) señal de dirección válida pues puede haber ciclos de ejecución en
el cual no se debe seleccionar a ningún dispositivo y usar a Ø2 como una línea de
control y sincronización de las operaciones de R/W.
Por lo tanto, para habilitar una memoria o un dispositivo de I/O, es necesario
sincronizar la habilitación con Ø2 (fig. 4.11). Generalmente, cuando se piensa en
conectar dispositivos de I/O a un sistema, se le colocan buffers para proteger al
interior del sistema.
FIGURA 4.11
FIGURA 4.12
4.5.2 Direccionamiento de Memoria Principal
Se refieren a los distintos modos de acceder a lugares de la memoria principal.
FIGURA 4.13
FIGURA 4.14
FIGURA 4.15
FIGURA 4.16
FIGURA 4.17
4.5.2.5 Direccionamiento relativo
FIGURA 4.18
Ejemplo
BRA F0
BNZ 37
XR : 16 bits XR : 8 bits
DIR : 8 bits s/signo DIR : 16 bits s/signo
XR : 16 bits XR : 16 bits
DIR : 8 bits c/signo DIR :16 bits s/signo
Las instrucciones con direccionamiento indexado son muy poderosas, pero demoran
mucho tiempo de procesamiento. Son, por lo general, de 2 bytes.
Hay variantes de direccionamiento indexado, en las cuales el contenido del XR se
autoincrementa o autodecrementa en 1:
FIGURA 4.22
Ejemplo
Supongamos que se desea acceder a un elemento determinado de cada tabla (por ejemplo
el tercero), entonces basta con cambiar el contenido de lugar de indirección (01, 02)
y, con el valor del puntero a la tabla correspondiente e Y, obtengo el desplazamiento
del principio de dicha tabla.
FIGURA 4.24
4.5.2.10 Direccionamiento basado
FIGURA 4.25
Ejemplo
FIGURA 4.27
FIGURA 4.28
Un PLA es un circuito que puede ser programado para implementar funciones lógicas en
la forma "suma de productos". Un PLA provee una forma conveniente y sistemática para
realizar una lógica combinacional 'irregular'. Una lógica irregular se caracteriza
por tener un gran número de expresiones Booleanas. Realizar dicha lógica con
compuertas resultaría costoso y extremadamente difícil. El objeto de los PLA es
realizar lógicas irregulares en una forma simple y económica. Un PLA típico se
muestra en la figura 4.29. Un PLA puede completar un número determinado (no el total
posible) de términos productos. Un PLA ayuda al diseñador a realizar una Unidad de
Control en una forma más sistemática y económica que la lógica a nivel de compuertas.
Una PLA toma del hecho que el control de una variable dependerá de un subconjunto de
todas las condiciones de entrada.
A pesar de que el PLA ayuda al diseño de unidades de control, aún persiste el
problema del secuenciador que determina el temporizado.
FIGURA 4.20
4.6.3 Microprogramación
La figura 4.31 muestra una unidad de control microprogramada. La unidad está formada
por un registro IR en el cual se almacena el OP CODE, una RAM (PLA o decodificador)
de dirección de comienzo de instrucción, un selector de dirección de comienzo de
instrucción, un selector de direcciones para la ROM de microprograma, la ROM de
microprograma donde se hallan las microinstrucciones, un selector de datos el cual se
usa para operaciones de salto condicionales.
FIGURA 4.31
La instrucción se carga en el IR al comienzo del ciclo de instrucción y el OP CODE
genera a través de la ROM decodificadora el comienzo de dirección donde se halla la
primera de la serie de microinstrucciones en la ROM de microprograma que ejecutará la
instrucción completa. Por medio de (I), se hace más eficiente el uso de la (III).
Cada microinstrucción se divide en 3 campos fundamentales:
1) el control de ALU+Registros internos;
2) el de próxima dirección de microinstrucción;
3) el selector de condición.
FIGURA 4.32
4.7 MICROPROGRAMACION vs. LOGICA CLASICA
Algunos microprocesadores utilizan varios chips para realizr la CPU. Ello se debe a
que se definen chips que proveen 1, 2 o 4 bits del total de la máquina; por ejemplo,
hay módulos que contienen una ALU y registros de 4 bits, denominados RALU, siendo
necesario usar 4 módulos para realizar un microprocesador de 16 bits. Una
arquitectura bit-slice es, por lo tanto, una arquitectura particionada. Para
completar el microprocesador es necesario la unidad de control; en estos casos se
utiliza la microprogramación.
FIGURA 4.33