capitulo 4 - diec - departamento de ingeniería eléctrica y …€¦ ·  · 2013-08-30hasta ahora...

34
CAPITULO 4 4.1 OPERACION INTERNA DE UN MICROPROCESADOR 4.1.1 Ejecución de un Programa Hasta ahora se estudiaron la arquitectura de una CPU, el formato de las instrucciones y los distintos tipos de instrucciones. Veremos ahora cómo se ejecuta un programa almacenado en memoria. Un programa almacenado en memoria está listo para ser ejecutado por el microprocesador (no nos importa cómo fue cargado el programa, por ahora). Para ser ejecutado, es necesario cargar el PC con la dirección de la primera instrucción a ser ejecutada. Luego, el PC se incrementa automáticamente recorriendo secuencialmente los sucesivos lugares de memoria donde se halla el programa. Veamos el siguiente programa: mnemónico : binario hex. 1000 PATO LDA A, DATO1 A<--DATO1 LDA A : 10 LDA B, DAT02 B<--DATO2 LDA B : 15 ADD B A<--A+B ADD B : 27 JNZ PATO JNZ : 7A Describamos el funcionamiento del programa anterior: PC <-- 1000H 1. Trae el código LDA A; PC <-- PC + 1; comienza decodificación de la instrucc. 2. Lee DATO1; PC <-- PC + 1; almacena DATO1 en el registro A. 3. Trae el código LDA B; PC <-- PC + 1; comienza decodificación de la instrucc. 4. Lee DATO2; PC <-- PC + 1; almacena DATO2 en el registro B.

Upload: nguyenkhue

Post on 28-Apr-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

CAPITULO 4

4.1 OPERACION INTERNA DE UN MICROPROCESADOR

4.1.1 Ejecución de un Programa

Hasta ahora se estudiaron la arquitectura de una CPU, el formato de las instrucciones

y los distintos tipos de instrucciones. Veremos ahora cómo se ejecuta un programa

almacenado en memoria.

Un programa almacenado en memoria está listo para ser ejecutado por el

microprocesador (no nos importa cómo fue cargado el programa, por ahora).

Para ser ejecutado, es necesario cargar el PC con la dirección de la primera

instrucción a ser ejecutada. Luego, el PC se incrementa automáticamente recorriendo

secuencialmente los sucesivos lugares de memoria donde se halla el programa. Veamos

el siguiente programa:

mnemónico : binario hex.

1000 PATO LDA A, DATO1 A<--DATO1 LDA A : 10

LDA B, DAT02 B<--DATO2 LDA B : 15

ADD B A<--A+B ADD B : 27

JNZ PATO JNZ : 7A

Describamos el funcionamiento del programa anterior:

PC <-- 1000H

1. Trae el código LDA A; PC <-- PC + 1; comienza decodificación de la instrucc.

2. Lee DATO1; PC <-- PC + 1; almacena DATO1 en el registro A.

3. Trae el código LDA B; PC <-- PC + 1; comienza decodificación de la instrucc.

4. Lee DATO2; PC <-- PC + 1; almacena DATO2 en el registro B.

Page 2: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

5. Trae el código ADD B; PC <-- PC + 1; comienza decodificación de la instrucción,

suma A + B y lo almacena en A.

6. Trae el código JNZ; PC <-- PC + 1; comienza decodificación de la instrucc.

7. Lee dirección baja de salto; PC <-- PC + 1; almacena en temporario1.

8. Lee dirección alta de salto; PC <-- PC + 1; almacena en temporario2; si z =

0 : PC <-- temporario1.temporario2.

4.2 CICLOS DE OPERACION

Hay dos operaciones fundamentales que realiza un procesador:

1- búsqueda de la instrucción: en la cual el procesador busca el código de

operación(FETCH);

2- ejecución de la instrucción: en la cual el procesador ejecuta la operación

determinada por la instrucción.

Un procesador se encuentra siempre haciendo una de las dos operaciones anteriores.

A continuación daremos una serie de definiciones:

Ciclo de instrucción: es el tiempo total, medido en números de períodos de reloj, de

duración de un ciclo de búsqueda más uno de ejecución de la instrucción teniendo en

cuenta los sucesivos accesos a memoria en el caso de ser una instrucción de más de un

byte.

Ciclo de máquina: es el tiempo, medido en números de períodos de reloj de duración de

una operación de lectura, de escritura o de búsqueda (Fetch) de una instrucción. Un

ciclo de instrucción está compuesto por uno o varios ciclos de máquina (M1, M2, M3,

M4), dependiendo del tipo de instrucción. Se denomina M1 al ciclo de búsqueda, pues

siempre es el primero de cada ciclo de instrucción. Los ciclos de máquina más comunes

son: Fetch, Memory Read, Memory Write, I/O Read, I/O Write, INA, etc.

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

Page 3: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

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

La mayoría de los microprocesadores, al comienzo de cada ciclo de máquina (T1),

envían señales de control que identifican qué tipo de ciclo de máquina será

ejecutado.

En la fig. 4.1 se muestran los distintos ciclos para el caso de una instrucción de

3 bytes, como es la de almacenar el acumulador A en un lugar de memoria. Incluye un

ciclo de búsqueda del código de operación, 2 ciclos de lectura y uno de escritura

(STA DIRECCION).

En conclusión, podemos decir que la ejecución de una instrucción (ciclo de

instrucción) consiste de una secuencia de operaciones de lectura y/o escritura de

memoria llamadas ciclos de máquina. En particular, la búsqueda del OP CODE es un

ciclo de lectura (M1) especial.

4.2.1 Ciclo de Búsqueda y de Ejecución

Ahora se describirá en detalle cada uno de los ciclos fundamentales antes

mencionados, y se dará una forma de notación.

Page 4: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Búsqueda de la instrucción

Las tareas realizadas durante esta operación son las siguientes:

1. El Contador de Programa (PC) se transfiere al buffer de direcciones (AB),

durante el tiempo T1.

2. El contenido de memoria apuntado por AB se transfiere al buffer de datos (DB),

y simultáneamente se incrementa el PC en 1. Esto se realiza en T2 y parte de T3.

3. El buffer de datos (DB) se transfiere al registro de instrucciones IR. Esto

ocurre durante T3.

4. Durante T4 comienza a decodificar la instrucción. En este estado determina si

son necesarios otros accesos a memoria (de acuerdo al número de bytes de la

instrucción), calcula el tipo de direccionamiento, y en el caso que sea la

instrucción de 1 byte, debe determinar el número de estados (Ti) necesarios para

completar la ejecución de la instrucción (instrucciones del tipo incrementar

registro de 16 bits).

La notación que se usará para indicar esto es:

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

Durante un ciclo de búsqueda, la dirección a la cual va a acceder siempre proviene

del PC, y el registro destino es el IR.

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.

Page 5: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

M2:

- AB <-- PC

- DB <-- [AB]; PC <-- PC+1

- TEMP <-- DB / Ri <-- DB / EJECUTA INSTRUCCION.

Como después de M1 se ha decodificado parcialmente la instrucción, la unidad de

control (por un mecanismo de interpretación) sabe que está en el ciclo M2 y debido a

que en el IR se mantiene presente el código de operación, el decodificador de

instrucciones determina cuáles son las señales de control a activar y los sucesivos

pasos a seguir en los restantes ciclos de máquina.

La instrucción de la fig. 4.1 (STA DIR) sería:

M1:

- AB <-- PC

- DB <-- [AB]; PC <-- PC+1 (R/W =1)

- IR <-- STA PC = 2001

M2:

- AB <-- PC

- DB <-- [AB]; PC <-- PC+1 (R/W = 1)

- TEMP1 <-- 10 PC = 2002

M3:

- AB <-- PC

- DB <-- [AB]; PC <-- PC+1 (R/W = 1)

- TEMP2 <-- 1A PC = 2003

M4:

- AB <-- Temp1.Temp2

- DB <-- A

- [AB] <-- DB

FIGURA 4.2

Durante un ciclo de ejecución la dirección de accesos de datos puede provenir de

otras fuentes que no sea el PC y el destino de la información nunca es el IR.

Page 6: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales
Page 7: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.2.2 Operaciones Realizadas por cada Instrucción de Programa

FIGURA 4.3

4.2.3 Diagrama de Estado de una CPU

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.

Page 8: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

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.

IF FETCH, THEN IR <-- DB

ELSE IR no<-- DB y Ri <-- DB o DB <-- Ri

Page 9: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Al final de T3, se deshabilitan las líneas de control del ciclo de máquina

correspondiente, y se des-selecciona la memoria o dispositivo de I/O seleccionado.

Si es un ciclo FETCH, la CPU entra en el estado T4, en el cual comienza la

decodificación de la instrucción. El resto de los estados serán necesarios en los

casos de instrucciones complejas o de varios períodos de ejecución. Esto lo determina

en T4. Si no es un ciclo FETCH, o termina de reconocer los distintos estados del

FETCH, determina si es el último ciclo de máquina de la instrucción. Si no lo es,

vuelve nuevamente a T1, en caso contrario, debe examinar si hubo alguna interrupción.

Si no la hubo, retorna a T1 para comenzar un nuevo ciclo M1, en caso contrario,

inhibe futuras interrupciones, guarda el PC en la pila y establece en el PC el vector

de interrupción (dirección de salto), comenzando un nuevo ciclo M1-T1.

4.3 CONTROL Y TEMPORIZADO

Un microprocesador es, esencialmente, una máquina secuencial sincrónica cuyos estados

son determinados por las distintas instrucciones, la lógica interna de control y, en

algunos casos, por eventos externos como interrupciones. El temporizado de un

microprocesador se lleva a cabo por circuitos de reloj que proveen salida de simple

fase o múltiple fase. Como las micro-operaciones está sincronizada con el reloj

maestro, la secuencia de eventos se suceden a intervalos regularmente espaciados de

tiempo, usando para ello los flancos ascendente y descendente.

Un reloj simple provee 2 estados y 2 flancos por período (fig. 4.5A). Un reloj

bifásico provee 3 estados y 4 flancos de reloj (fig. 4.5B).

FIGURA 4.5A FIGURA 4.5B

Por lo tanto, con reloj de simple fase se necesitan más períodos de reloj que con

Page 10: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

un reloj multi-fase.

4.4 OPERACIONES DE LOS CANALES

En esta sección se verá el temporizado necesario para realizar una transferencia de

datos entre la CPU y la memoria o dispositivo de I/O.

Es necesario conocer el temporizado del canal para realizar la conexión de los

módulos de memoria e I/O (con sus diferentes tiempos de acceso) con la CPU.

Un ciclo de bus se define como el proceso por el cual una secuencia fija de

señales digitales efectúan una transferencia de datos entre módulos del sistema (CPU,

memoria, disp. I/O). La CPU genera un ciclo de bus y responde el módulo direccionado

por ésta.

Un ciclo de bus puede ser dependiente o independiente del ciclo de máquina. En

algunos microprocesadores, los ciclos de máquina corresponden a ciclos de bus (8085).

En otros, como el 8086, operan asincrónicamente, ya que la unidad de ejecución es

independiente de la unidad de interfaz con el bus.

4.4.1 Funcionamiento del Canal de una CPU

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).

4.4.2 Reloj de Simple Fase, de Canal no Multiplexado

Page 11: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.6

En la figura 4.6 se muestra el diagrama para un microprocesador de reloj simple

fase para el caso de una instrucción del tipo ADI BYTE (A<--A+BYTE).

En el ciclo M1: durante T1 se presenta la dirección de memoria. En T2 y T3 trae

el código de operación (ADI), incrementa el PC y transfiere el código de operación al

IR. En T4 transfiere el registro A al registro temporario de la ALU.

En el ciclo M2: durante T1 presenta dirección de memoria. En T2 y T3 trae el byte

a memoria y lo almacena en Y, incrementa el PC, realiza la suma.

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

Page 12: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

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.

4.4.3 Reloj de Simple Fase, de Canal Multiplexado

Dentro de los sistemas de reloj de simple fase se encuentran implementaciones con

canales multiplexados; es decir, se comparten físicamente algunas líneas, como son

las del canal de datos con las líneas correspondientes a la parte baja de las

direcciones. En este caso, es necesario demultiplexarlas para poder obtener el canal

de direcciones completo. Esto se logra agregando un latch en el canal de datos,

capturando las direcciones con la señal MUX, y la salida del mismo corresponde a las

líneas de direcciones (para el caso particular del microprocesador 8085, la señal MUX

se denomina ALE Address Latch Enable).

FIGURA 4.8

4.4.4 Reloj Bifásico de fases no solapadas

Un concepto diferente en la forma de operación es el de los microprocesadores de 2

relojes Ø1 y Ø2. Estos relojes deben tener la forma de onda de la figura 4.9, por lo

tanto, requieren circuitos generadores de clock especiales.

En una arquitectura de reloj bifásico, el uso del bus de datos se realiza con el

Ø2=1, es decir que una operación de lectura o escritura de memoria se lleva a cabo en

Page 13: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

un único período de reloj.

Veremos los dos tipos de operaciones:

Operación de Lectura:

En la figura anterior se muestra una operación de lectura de memoria. El flanco

ascendente de Ø1 (1) inicializa la operación activando la línea R/W y dejando las

direcciones estables, hasta el próximo período. (2) El flanco creciente de Ø2 indica

el momento donde comienza la selección de la memoria, señala el momento en que

comienza una transferencia de información en el bus de datos según indique la línea

E. Si ninguna transferencia es necesaria, E será igual a cero para Ø2=1 y Ø1=0.

(Cuando la ejecución de la instrucción lleva más de un ciclo de reloj). Con Ø1=0 y

Ø2=1 el bus de datos sale de tres estados. Con el flanco descendente de Ø2, los datos

se almacenan en la CPU (3). El tiempo de Ø2=1 determina el tiempo de acceso máximo de

la memoria.

Operación de Escritura:

FIGURA 4.10

La figura 4.10 muestra una operación de escritura. La secuencia es similar a la

Page 14: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

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

4.5 MODOS DE DIRECCIONAMIENTO

Los distintos modos de direccionamiento determinan las distintas formas de acceder a

datos en celdas de memorias del espacio total de direcciones del procesador.

Normalmente, Modos de Direccionamiento, se refiere a los mecanismos de formación

de la dirección efectiva (EA). La EA es la dirección usada para acceder a un

elemento, en memoria principal, dentro de los registros del microprocesador o de un

dispositivo de I/O (o sea, dentro del espacio total de direccionamiento del

microprocesador). Los modos de direccionamiento pueden ser:

- explícitamente especificados por la instrucción,

- implicados por la instrucción.

La "potencia" (la riqueza del conjunto de instrucciones) de un microprocesador

Page 15: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

depende, en gran medida, de los distintos modos de direccionamiento provistos.

Un mismo tipo de instrucción puede usar distintos modos de direccionamiento para

acceder a un determinado elemento. No todos los microprocesadores proveen todos los

modos de direccionamiento.

El espacio de direccionamiento de un procesador se puede dividir en 3 clases:

1- Registros del procesador.

2- Memoria principal.

3- Dispositivos externos.

4.5.1 Registros del Procesador

Un método de direccionamiento de registro consiste en dedicar un pequeño campo dentro

del OP CODE de la instrucción para seleccionar el registro.

Este tipo de direccionamiento involucra operaciones internas al microprocesador

(operaciones entre registros internos de la CPU). La dirección efectiva es el número

de un registro que emplea la unidad de control para seleccionar el registro deseado

(fig. 4.12). Este método de direccionamiento se llama implícito o inherente. Incluye

las instrucciones del siguiente tipo: CLEAR A, las de desplazamiento (SHIFT), las de

transferencia entre registros (MOV A,B o TAB), las de comparaciones CMP R (A-R),

operaciones lógicas, las de incremento de registro, INC A; operaciones aritméticas

entre registros A<--A+B (ADD B).

Estas son instrucciones de 1 byte de longitud. Al emplear registros internos como

operandos (en lugar de memoria), las ejecuciones resultan más rápidas.

FIGURA 4.12

4.5.2 Direccionamiento de Memoria Principal

Page 16: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Se refieren a los distintos modos de acceder a lugares de la memoria principal.

4.5.2.1 Direccionamiento inmediato

Este direccionamiento no constituye un direccionamiento propiamente dicho, pues la

instrucción no contiene ninguna dirección. En el lugar de la dirección figura el

operando sobre el cual se va actuar (fig. 4.13). En este caso, el operando forma

parte de la instrucción, y tanto OP CODE como el operando se buscan de memoria,

usando el PC.

Este direccionamiento es útil cuando se desea introducir fácilmente constantes en

un programa. Un símbolo muy usado como inmediato es #. Se pueden cargar registros de

16 bits en forma inmediata para inicializar punteros de tablas LDX #AAAA. En algunos

microprocesadores se utiliza la letra I para indicar inmediato: MVI A,A0H; LXI

H,2800H; LXI SP,28C3H. etc.

FIGURA 4.13

Este tipo de direccionamiento puede constar de 2 o de 3 bytes de instrucción.

FIGURA 4.14

4.5.2.2 Direccionamiento inherente o implícito

Page 17: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Vimos lo que era direccionamiento implícito para registros internos a la CPU. Un caso

particular muy importante de este direccionamiento lo constituyen las instrucciones

del manejo de pila (stack). En el caso de inserción (PUSH) de datos en la pila, el

operando de origen está en un registro y la dirección de destino en el puntero de

pila (stack Pointer): A-->(SP); SP<--SP-1. En el caso de extracción (PULL O POP) es

en el sentido inverso. Son instrucciones del tipo de 1 byte de logitud.

4.5.2.3 Direccionamiento extendido o absoluto

Este modo de direccionamiento consiste en poder acceder a cualquier palabra contenida

en la memoria principal, por medio de la dirección absoluta de memoria explicitada

como bytes en el operando de la instrucción.

Es el método más fácil para direccionar un lugar de memoria. La instrucción

contiene la dirección del operando (dirección absoluta de memoria) directamente

especificada en 2 bytes de memoria (microprocesadores de 8 bits de datos y 16 bits de

direcciones), permitiendo acceder al espacio total de direcciones memoria (64K).

Estas son instrucciones de 3 bytes de longitud. Este tipo de direccionamiento incluye

instrucciones del tipo LDA A, DIR; STA A, DIR.

Muy útil en el direccionamiento de variables individuales, o para el manejo de

información con dispositivos de I/O conectados al mapa de memoria. Es un método de

direccionamiento relativamente lento en tiempo de ejecución.

FIGURA 4.15

4.5.2.4 Direccionamiento directo o página cero

Page 18: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Una forma de acelerar el direccionamiento extendido, sería usar el direccionamiento

paginado, donde la EA se forma de la siguiente manera: el byte más significativo de

la dirección se obtiene de un registro, llamado de página y el byte menos

significativo de la dirección se especifica por un byte que se da como operando de la

instrucción. Para esto se hace necesario un registro extra: el registro de página,

que indica el número de página a emplear. Cada página tiene 256 bytes.

FIGURA 4.16

Un caso especial lo constituye un direccionamiento de página 0 en el cual los

lugares de memoria a acceder van desde la dirección 0000 hasta la 00FFH, es decir que

el byte más significativo es 00 (EA=00.DIR)

El método de direccionamiento directo es una poderosa herramienta, pues reduce el

número de bytes de algunas instrucciones. Además, debido a la facilidad en el acceso

son muy usados como medios de acceso a variables o registros temporarios. La

limitación son los extremos de direccionamiento (256 bytes). Son instrucciones de 2

bytes de logitud. Los tipos de instrucciones son las equivalentes a las del

direccionamiento extendido: LDA B,28H (B<-(0028)); ADD A,0CEH (A<--A+(00CE).

FIGURA 4.17

Page 19: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.5.2.5 Direccionamiento relativo

En este modo el operando se encuentra en una dirección relativa a la instrucción

ejecutada, es decir, la dirección efectiva se forma sumando al contenido del PC

actual, un número (dato) denominado desplazamiento (u "offset"), que para nuestro

caso será de 8 bits, que se da como operando en la instrucción. El desplazamiento se

interpreta como un número binario con signo (en complemento a 2), por lo tanto, el

desplazamiento será -128 a +127 lugares del PC.

FIGURA 4.18

Es muy usado en las instrucciones de salto (condicional o incondicional). Este

modo es muy importante cuando se escriben programas que pueden utilizarse en

distintos lugares de memoria (es decir, que un programa se puede trasladar en

memoria). Su alcance es limitado.

Ejemplo

BRA F0

BNZ 37

4.5.2.6 Direccionamiento indexado

En este modo de direccionamiento, la EA se genera por la suma de un registro, llamado

registro índice con un valor que está contenido como uno de los operandos en la

instrucción. Conceptualmente, el valor dato en la instrucción es la dirección base de

una tabla o arreglo, y el registro índice es el desplazamiento de la base.

Page 20: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.19

Hay microprocesadores donde el contenido del registro índice es de 8 bits, y la

dirección (offset) que se va a indexar es de 16 bits.

LDA DIR,Y A <-- (HHHH + YY)

La implementación del direccionamiento indexado es muy variado, puede ser:

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

Este modo de direccionamiento se usa para el acceso a tablas o arreglos de datos,

especialmente cuando éstos son accedidos en forma secuencial, ascendente o

descendente.

Por ejemplo, se usa a menudo para acceder a los elementos de un arreglo. El

desplazamiento localiza el comienzo del arreglo y el valor del registro índice

selecciona un elememto del arreglo (si XR = 0 --> primer elemento del arreglo). Como

todos los elementos del arreglo son iguales (es decir, tienen igual longitud), a

través simples operaciones aritméticas es posible seleccionar cualquier elemento.

Page 21: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.20

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:

XR-1 --> XR ; (XR+offset) --> A Auto decremento

(XR+offset) --> A ; (XR+1) --> XR Auto incremento

4.5.2.7 Direccionamiento indirecto

En este modo de direccionamiento, se da una referencia intermedia donde se halla la

dirección efectiva del operando. Esta referencia puede ser:

1) A través de una dirección de memoria (fig. 4.21a). Este es más flexible pero más

lento.

2) Por medio de un registro de la CPU (fig. 4.21b).

FIGURA 4.21a FIGURA 4.21b

Page 22: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

En el segundo caso (fig. 4.21b), la instrucción es de 1 byte (OP CODE), el cual

direcciona el registro cuyo contenido apunta a un lugar de memoria donde se halla el

operando. En el primer caso, se hace necesario usar 3 bytes por instrucción.

Son muy útiles en el manejo de tablas.

4.5.2.8 Direccionamiento indirecto - indexado

Este modo de direccionamiento consiste en realizar, primero, una indirección, y

luego, indexar la dirección para hallar la dirección efectiva. Generalmente, se usan

en página 0.

Es muy útil para llevar punteros de tablas.

La dirección del operando es una dirección, cuyo contenido junto al siguiente

lugar de memoria da una dirección que será indexada por el registro Y, ésta dirección

contiene el dato a operar.

FIGURA 4.22

4.5.2.9 Direccionamiento indexado-indirecto

Este método consiste en realizar, primero, una indexación de la dirección del

operando (en pág.0), y luego, una indirección.

Page 23: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.23

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

Page 24: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.5.2.10 Direccionamiento basado

En este modo de direccionamiento, la dirección efectiva se obtiene como resultado de

la suma entre el contenido de un registro (llamado registro base) y un valor de

desplazamiento que se da como operando en la instrucción.

Este modo provee una forma sencilla de direccionar estructuras, las cuales se

pueden ubicar en cualquier lugar de memoria. Por ejemplo: el registro base apunta a

la base de la estructura y los elementos de la misma se direccionan por el

desplazamiento respecto a la base. Diferentes copias de la misma estructura se pueden

acceder simplemente cambiando el registro base.

FIGURA 4.25

4.5.2.11 Direccionamiento basado - indexado

En este modo de direccionamiento, la EA se genera de la suma de un registro base, un

registro índice y un desplazamiento. Este modo es muy flexible ya que 2 componentes

de direcciones pueden ser variados en tiempo de ejecución.

Ejemplos típicos son:

- Aquellas estructuras de datos cuyos elementos son arreglos.

- Direccionamiento de matrices.

Page 25: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.26

Ejemplo

Una estructura de datos que contenga un arreglo como elemento.

FIGURA 4.27

4.5.2.12 Direccionamiento de bits

Algunos microprocesadores tienen instrucciones que direccionan bits individuales de

registros o de lugares de memoria, especificándolo en la instrucción.

SET B A.2 pone bit 2 de A=1

CLR A.3 pone bit 3 de A=0

JB A.1,dir Jump if bit set

JBC A.1,dir Jump if bit set and clear bit

MOV A.i,C A.i <-- C

Page 26: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.5.3 Dispositivos Externos

En los microprocesadores en los que el espacio de dirección de I/O no está separado

del espacio de direcciones de memoria principal, no es posible utilizar todos los

lugares de memoria cuando se direccionan dispositivos de I/O. En cambio, hay

microprocesadores que tienen ambos espacios separados. Esto permite manejar el

espacio de direccionamiento de los dispositivos de I/O independiente del espacio de

direccionamiento de memoria principal.

Una de las ventajas más importantes es que hay menos peligro de cometer errores de

programación que causen una operación de I/O no deseada o catastrófica, debido a que

únicamente por medio de instrucciones especiales de entrada/salida es posible acceder

a los dispositivos externos. En cambio, si estuvieran dentro del mapa de memoria, con

cualquier instrucción se podría tener acceso a dicho dispositivo.

Las desventajas más importantes son:

.- El espacio de I/O se maneja por medio de instrucciones

especiales que hacen uso de un único registro, no pudiendo emplear

otros tipos de instrucciones o registros para esos dispositivos.

Esto le quita flexibilidad y rapidez para el manejo de I/O.

.- Limitación en la capacidad de direccionamiento.

FIGURA 4.28

4.5.3.1 Direccionamiento indirecto de I/O

Este modo de direccionamiento es similar al de registro indirecto de memoria. El

número del port se toma de un registro, pudiendo acceder a cualquier dirección del

espacio de I/O.

Page 27: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

Ejemplo

Para el microprocesador 8086:

IN AX,DX AX <-- (DX)

OUT DX,AX (DX) <-- AX

4.6 UNIDAD DE CONTROL

La unidad de control es un hardware digital que debe realizar un conjunto de acciones

secuenciales que permitan controlar el flujo de información dentro y fuera del

procesador. Hay tres técnicas para realizar dichas secuencias:

a) Control a nivel de compuertas (lógica clásica).

b) Arreglos lógicos programables (PLA).

c) Microprogramación.

4.6.1 Lógica Clásica

Diseñar una unidad de control a nivel de compuertas involucra el cálculo y la

realización de una expresión Booleana completa por cada variable de control. Ya que

un microprocesador puede tener más de 30 variables de control, se debe realizar un

esfuerzo considerable para computar dichas expresiones. Dentro del problema del

cálculo de las expresiones Booleanas, se halla el problema del secuenciamiento. Es

decir, decidir cuándo una variable de control debería activarse, es probablemente la

tarea más difícil del diseño de una unidad de control a nivel de compuertas. Es

posible de realizar dicho temporizado en forma sincrónica o asincrónica, pero por un

problema de costo y confiabilidad, la técnica más usada es la sincrónica.

Si cada acción elemental dura un múltiplo entero de períodos de un reloj, el

temporizado de control es sincrónico.

Si la próxima acción secuencial se realiza inmediatamente después del fin de la

anterior acción, se dice que el temporizado de control es asincrónico.

Tal vez, la mayor dificultad de la técnica asincrónica es determinar cuándo una

acción ha finalizado. Históricamente, esto se resolvió por medio de retardos y

Page 28: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

monoestables, lo cual es poco confiable.

La técnica más usada para generar una deseada secuencia de tiempos de pulsos y

niveles es la de eventos temporizados sincronizados con contadores en base a un

cristal.

4.6.2 Arreglos Lógicos Programables

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

Page 29: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.6.3 Microprogramación

Para ejecutar un programa, se obtienen las instrucciones de memoria, dando a la

unidad de control el código de operación y los datos se rutean entre la ALU,

registros y dispositivos de I/O. La unidad de control se encarga de realizar el

"control" de las operaciones a través de una lógica adecuada y además realiza el

'temporizado', de las distintas operaciones de cada instrucción por medio de una

lógica de temporizado, siendo el tiempo de ejecución un múltiplo de períodos de

reloj.

Una unidad de control microprogramada difiere de las unidades anteriores en que la

lógica de control fija se reemplaza por elementos de programa almacenados

(instrucciones) de control, y la lógica de temporizado, por secuenciamiento de dichas

microinstrucciones. Por supuesto que un mínimo de lógica es necesaria, pero ella se

refiere al control del microprograma.

Un microprocesador microprogramado es un micro cuyas señales de control necesarias

para buscar y ejecutar las instrucciones son generadas por el secuenciamiento de un

conjunto de instrucciones almacenadas en una memoria (ROM) de control (usualmente se

denominan macroinstrucciones a las instrucciones, para diferenciarlas de las

microinstrucciones de control). Es decir que los bits de las palabras (muchos bits)

de control deben ser capaces de manejar las señales (enables, clock, etc.) de control

de los registros internos, de la ALU, buffers de direcciones y datos, las señales de

R/W, E, etc., a través de un secuenciamiento de las mismas (microinstrucciones).

Wilke's definió (1951) un esquema que puede realizar lo anteriormente descripto

(fig. 4.30).

La figura 4.30 muestra que a partir de un OP CODE se genera una serie de

microinstrucciones. El campo de una microinstrucción se divide en un campo de

direcciones de la próxima microinstrucción y un campo de señales de control.

Page 30: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

FIGURA 4.30

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

Page 31: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

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.

La microinstrucción provee un bit más, el cual maneja al selector de dirección de

ROM de microprograma (II), y unos pocos bits más para hacer la interfaz con la

lógica de temporizado e interrupciones y señales de control del bus de control

externo del microprocesador (R/W, E, etc.). Para cada nueva instrucción, primero se

selecciona la dirección proveniente de (I), y luego el bit selector de (II)

selecciona la dirección de próxima microinstrucción proveniente de (IV). La última

microinstrucción en la secuencia cambia al selector (II) para obtener la dirección de

comienzo de microprograma de la próxima instrucción del bloque (II).

La salida del selector de datos (V) es un bit de la dirección de la próxima

microinstrucción (suministrada por (IV)) de manera que cuando la próxima

microinstrucción es seleccionada, su dirección dependa de la condición seleccionada.

Como se puede observar de la figura 4.31, el ancho de la palabra de una micro-

instrucción puede ser bastante considerable (32-48 bits). La longitud de la memoria

puede ser de 1K a 2K. Se denomina microprogramación horizontal a la cantidad de

acciones secuenciales que se realizan dentro de una única microinstrucción. La

microprogramación vertical es la ejecución secuencial de las operaciones a través de

la ejecución de las microinstrucciones mismas. Evidentemente, la primera requiere

menos memoria, pero adiciona costos y complejidad de la lógica de control.

4.6.3.1 Mejoras a la unidad de control microprogramada

Es deseable que el ancho de la memoria de microprogramación sea reducido, no sólo por

razones de costo, sino por razones de interconexión. Existen varios métodos. Uno de

los más comunes es que la mayoría de las microinstrucciones se realicen por medio de

una secuencia de microinstrucciones, las cuales son usualmente almacenadas en

direcciones adyacentes en la ROM de miroprograma. Por lo tanto, es adecuado generar

la dirección de la próxima microinstrucción simplemente sumando "1" al contador de

Page 32: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

direcciones de microinstrucciones. En consecuencia, se ahorra memoria de

microprograma al no tener que poner en la ROM de microprograma la dirección de la

próxima microinstrucción a ejecutar. Sin embargo, al final de la ejecución de la

instrucción, es usual tener un salto incondicional a un conjunto de

microinstrucciones, las cuales testean la presencia de una interrupción antes de

buscar la próxima instrucción. Para generar la próxima dirección se utilizan otros

bits, tales como los bits de selección de condición.

Muchas instrucciones tienen módulos comunes de microprogramas. Para aprovechar los

módulos que son comunes y ahorrar memoria es muy ventajoso tener la capacidad de usar

microprogramas en base a subrutinas. Esto se hace proveyendo a la unidad de control

de microprogramas con una pila (stach) para almacenar las direcciones de retorno de

subrutina.

A veces se usa un contador adicional para repetir un grupo de microinstrucciones

(cuando son necesarias). Para ello, se carga al contador con el número de veces a

repetir, y se decrementa hasta llegar a cero.

En la figura 4.32 se muestran las 4 fuentes de la próxima instrucción:

1) del registro de microinstrucciones,

2) de un incrementador que adiciona 1 a la dirección de microprograma corriente,

3) de la ROM de dirección de comienzo de microinsrucción,

4) de la Pila (stack) usada para almacenaje de las direcciones de retorno de

subrutinas de microinstrucciones.

FIGURA 4.32

Page 33: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

4.7 MICROPROGRAMACION vs. LOGICA CLASICA

1) La microprogramación permite al diseñador programar, más fácilmente, la secuencia

de acciones a realizar que resolviendo expresiones Booleanas.

2) La microprogramación ofrece al diseñador la flexibilidad de realizar cambios en

las operaciones con sólo alterar el contenido de la ROM, en contraste con los cambios

de hardware (lógica + cableado) necesarios en el diseño con lógica clásica.

3) La microprogramación ofrece definir nuevas instrucciones o realizar cambios en las

instrucciones, con sólo alternar la ROM. Hay máquinas que usan RAM, permitiendo

emular un procesador por otro.

4) La mayor ventaja de la lógica clásica es que se pueden diseñar sistemas de menos

tiempo de ejecución que con microprogramación.

La mayoría de los microprocesadores actuales usan una combinación de ambas

técnicas para lograr mayor eficiencia.

4.8 ARQUITECTURA BIT-SLICE

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.

4.8.1 Diagrama de Estado Para un Procesador Elemental

Estado D: la microinstrucción selecciona el selector de condición para determinar el

estado de la línea de interrupción. Si no hay interrupción, el selector de dirección

de microinstrucciones selecciona la próxima dirección de microinstrucción consecutiva

para ir al estdo A. Si hay interrupción, la próxima dirección de microprograma se

toma de la microinstrucción corriente para ir al estado E.

Estado A: el contenido del PC se envía al bus de direcciones y el dato leído se carga

en el IR. La microinstrucción selecciona la próxima dirección consecutiva para la

Page 34: CAPITULO 4 - DIEC - Departamento de Ingeniería Eléctrica y …€¦ ·  · 2013-08-30Hasta ahora se estudiaron la arquitectura de una CPU, ... Hay dos operaciones fundamentales

próxima dirección.

Estado B: el PC se incrementa en 1. La microinstrucción selecciona la dirección de la

ROM decodificadora como dirección de próxima microinstrucción.

Estado C: ejecuta la instrucción. Después de ejecutar la instrucción, la unidad de

control de microprograma salta incondicionalmente al estado D.

FIGURA 4.33