Вы находитесь на странице: 1из 12

Universidad Nacional de Ingeniera

Facultad de Ingeniera Industrial y de Sistemas


rea de Computacin e Informtica
Curso
Profesor

:
:

Arquitectura del computador ST 314 V


Lic. Jos Alberto Zamora Ramrez

La Ejecucin de Instrucciones en el Computador


1. El Ciclo de una Instruccin
La ejecucin de una instruccin siempre conlleva realizar la misma
secuencia de pasos independientes del Repertorio de Instrucciones (Set de
Instrucciones) especficos que posea el procesador y de los campos y modos de
direccionamiento que se hayan definido. De forma genrica, el ciclo de
ejecucin de una instruccin se puede dividir 2 fases o pasos principales,
aunque luego veremos que estas 2 fases son equivalentes a 4 ciclos de forma
general. En cada uno de estos pasos se lleva a cabo una serie de operaciones
en los distintos elementos que constituyen la CPU que dan como resultado final
la ejecucin de la instruccin.
Cada uno de estos pasos puede necesitar un nmero diferente de ciclos de
reloj dependiendo de su propia complejidad y de los recursos que la CPU tenga
para su realizacin. La temporizacin bsica del computador viene dada por un
reloj, que determina el tiempo mnimo que puede durar una operacin
elemental.

Por tanto, para que un programa pueda ser ejecutado por una computadora,
ste ha de estar almacenado en la memoria central. La unidad central de

Arquitectura del Computador Lic. Jos Zamora Ramrez

proceso tomar una a una sus instrucciones e ir realizando las tareas


correspondientes. Veremos ms detalladamente las 2 fases:
Fase de bsqueda (captacin), en la que se transfiere la instruccin
que corresponde ejecutar desde la memoria principal a la unidad de
control.
Fase de ejecucin, que es la realizacin de todas las acciones que
conlleva a la propia instruccin.

1.1.

Fase de bsqueda (captacin) de una instruccin

En esta fase se realiza la bsqueda en memoria de la instruccin cuya


direccin guarda el registro contador de programa y se almacena en el registro
de instruccin. El contenido del contador de programa se incrementa de
manera que almacena la direccin de la siguiente instruccin en secuencia.
Para su estudio, vamos a suponer un ejemplo de instruccin aritmtica de
suma con tres direcciones y direccionamiento directo, es decir, la instruccin
contiene el cdigo de operacin correspondiente a la suma, los dos sumandos
estn en las direcciones de memoria correspondientes a los dos primeros
operandos y el resultado ha de quedar en la direccin indicada por el tercer
operando.
SUMAR 033 992 993 (sumar los contenidos de las posiciones de memoria 033 y
992, almacenando el resultado en la posicin 993).
Cdigo de operacin (CO): SUMAR
Direccin del primer sumando (OP1): 033
Direccin del segundo sumando (OP2): 992
Direccin del resultado (OP3): 993
En la fase de bsqueda de la instruccin se realizan los siguientes pasos:
1. La unidad de control enva una microorden para que el contenido del registro
contador de programa que contiene la direccin de la siguiente instruccin, sea
transferido al registro de direccin de memoria.

Arquitectura del Computador Lic. Jos Zamora Ramrez

2. La posicin de memoria que figura en el registro de direccin de memoria es


utilizada por el selector para transferir su contenido al registro de intercambio
de memoria.
3. Se transfiere la instruccin desde el registro de intercambio de memoria al
registro de instruccin.
4. Posteriormente el decodificador procede a interpretar la instruccin que
acaba de llegar al registro de instruccin, en este caso SUMAR, quedando
dispuesto para la activacin del circuito sumador de la ALU e informando al
secuenciador.
5. El registro contador de programa se auto incrementa con un valor 1 (en el
caso de que sea sta la longitud de la palabra), de tal forma que quede
apuntado a la siguiente instruccin situada consecutivamente en memoria. Si
la instruccin en ejecucin es de ruptura de secuencia, el contador de
programa se cargar con la direccin que corresponda.
La figura 24 ilustra la fase de bsqueda de una instruccin.

1.2.

Fase de ejecucin de una instruccin

En sta fase se realiza la operacin indicada por la instruccin y si sta lo


precisa se almacena el resultado en los registros internos de la CPU o en la
memoria. La fase de ejecucin se realiza en los siguientes pasos, pero hay que
tener en cuenta que si la instruccin no tuviese operandos, los pasos del 1 al 6
y el paso 8 se omitiran.
1. Se transfiere la direccin del primer operando desde el registro de
instruccin al registro de direccin de memoria.

Arquitectura del Computador Lic. Jos Zamora Ramrez

2. El selector extrae de la memoria dicho dato depositndolo en el registro de


intercambio de memoria.
3. Se lleva este operando desde este registro al registro de entrada 1 de la ALU.
4. Se transfiere la direccin del segundo operando desde el registro de
instruccin al registro de memoria.
5. El selector extrae de la memoria dicho dato y lo deposita en el registro de
intercambio de memoria
6. Se lleva este operando desde este registro al registro de entrada 2 de la ALU.
7. El secuenciador enva una microorden a la ALU para que se ejecute la
operacin. El resultado de la operacin queda almacenado en el acumulador.
8. Este resultado se enva desde el acumulador al registro de intercambio de
memoria.
9. Se transfiere desde el registro de instruccin al registro de direccin de
memoria la direccin donde ha de almacenarse el resultado en la memoria.
10. Se transfiere el resultado desde el registro de intercambio de memoria a la
direccin de memoria indicada en el registro de direccin de memoria.
La figura 25 ilustra la fase de ejecucin de una instruccin.

2.

Detalle del Ciclo de Ejecucin de una Instruccin


Si bien es cierto el Ciclo de Ejecucin de una Instruccin se puede revisar en 2
grandes fases, veremos que existen 4 subciclos que detallan estas 2 grandes
fases:
Captacin
Indirecto

Arquitectura del Computador Lic. Jos Zamora Ramrez

Interrupcin
Ejecucin

Cada uno de estos subciclos conllevan a ejecutar un conjunto de


microoperaciones, para hacer realidad la Ejecucin de la Instruccin.

Arquitectura del Computador Lic. Jos Zamora Ramrez

2.1.

El ciclo de captacin

Tiene lugar al principio de cada ciclo de instruccin, y hace que una instruccin
sea captada de la memoria. En este ciclo hay 4 registros implicados:
Registro de direccin de memoria ( Memory Address Register MAR) :
Esta conectado a las lneas de direccin del bus del sistema. Especifica la
direccin de memoria de una operacin de lectura o escritura.
Registro intermedio de memoria (Memory Buffer Register MBR) : Esta
conectado a las lneas de datos del bus del sistema. Contiene el valor a
almacenar en memoria o el ultimo valor leido de memoria.
Contador de Programa (Program Counter PC) : Contiene la direccin
de la siguiente instruccin a captar.
Registro de instruccin (Instruction Register IR) : Contiene la ultima
instruccin captada.

Consideremos la secuencia de eventos del ciclo de captacin desde el punto de


vista de su efecto sobre los registros del procesador.
Arquitectura del Computador Lic. Jos Zamora Ramrez

MA
R
MB
R
PC
IR
AC

MAR 0000101000101010
MBR
0000101000101010

PC
IR
AC

Inicio
MA
R
MB
R
PC
IR
AC

0000101000101010

Primer Paso

0000101000101010

MAR 0000101000101010

0010000000100000

MBR 0010000000100000

0000101000101011

PC
IR
AC

Segundo Paso

0000101000101011
0010000000100000

Tercer Paso

Al comienzo del ciclo de captacin, la direccin de la siguiente instruccin a


ejecutar est en el contador del programa (PC), en este caso la direccin :
0000101000101010. El primer paso es llevar esa direccin al Registro de
Direccin de Memoria (MAR), ya que este es el nico registro conectado a las
lineas de direccin del bus del sistema. El segundo paso es traer la instruccin.
La direccin deseada (en MAR) se coloca en el bus de direccines ; la unidad de
control emite una orden READ por el bus de control; el resultado aparece en el
bus de datos y se copia en el Registro Intermedio de Memoria (MBR). Es
necesario, adems, incrementar PC segn la longitud de la instruccin para
que este preparado para la siguiente instruccin. Como estas dos acciones :
leer una palabra de memoria y sumar a PC, no interfieren entre si, podemos
hacerlas simultneamente para ahorrar tiempo. El tercer paso es transferir el
contenido de MBR al registro de instruccin (IR) , lo cual libera al MBR para su
uso durante otro ciclo.
De este modo el ciclo de captacin consta de 3 pasos y 4
microoperaciones. Cada microoperacin implica la transferencia de datos hacia
dentro o hacia afuera de un registro. Con tal de que estas transferencias no
interfieran entre si, varias de ellas pueden tener lugar durante un paso,
ahorrando tiempo, luego la secuencia simblicamente sera:
t1 : MAR <--- PC
t2 : MBR <--- Memoria
PC <--- (PC) + Longitud Instruccin
t3 : IR <--- (MBR)
De esta secuencia se debe decir:
Suponemos que se dispone de un reloj a efectos de temporizacion, y que
este emite pulsos de reloj espaciados regularmente.
Cada pulso de reloj define una unidad de tiempo, de tal manera que todas
las unidades de tiempo tienen la misma duracin.
Arquitectura del Computador Lic. Jos Zamora Ramrez

Cada microoperacin puede llevarse a cabo dentro de una unica unidad de


tiempo, en el ejemplo: t1, t2 y t3 representan las sucesivas unidades de
tiempo.
Detallando:
Primera unidad de tiempo (t1) : Transferir el contenido de PC (Contador de
programa) a MAR (Registro de Direccin de Memoria)
Segunda unidad de tiempo (t2) : Transferir los contenidos de la posicion de
memoria especificada por MAR a MBR (Registro Intermedio de Memoria).
Incrementar en Longitud de la instruccin el contenido de PC (Contador de
programa)
Tercera unidad de tiempo (t3) : Transferir el contenido de MBR (Registro
Intermedio de Memoria) a IR (Registro de instrucciones)
Se puede observar que las microoperaciones segunda y tercera se realizan
durante la segunda unidad de tiempo. La tercera microoperacin podra
haberse agrupado con la cuarta sin afectar a la operacin de captacin:
t1 : MAR <--- PC
t2 : MBR <--- Memoria
t3 : PC <--- (PC) + Longitud de la instruccin
IR <--- (MBR)
Los agrupamientos de microoperaciones deben cumplir dos sencillas reglas:
1. Debe seguirse la secuencia correcta de eventos. As la asignacin del
contenido del PC (Contador de Programa) al MAR (Registro de Direccin
de Memoria) debe preceder a la asignacin : MBR <--- Memoria, ya que la
operacin de lectura de memoria hace uso de la direccin almacenada
en MAR.
2. Deben evitarse los conflictos. No se debe intentar leer y escribir en el
mismo registro en una unidad de tiempo, ya que los resultados serian
imprevisibles. Por ejemplo, las microoperaciones (MBR <--- Memoria) e
(IR <-- MBR) no deberan tener lugar en la misma unidad de tiempo
Un punto final digno de atencin es que una de las microoperaciones incluye
una suma. Para evitar la duplicacin de circuiteria, la suma podra realizarse en
la ALU. El uso de la ALU puede implicar microoperaciones adicionales,
dependiendo de la funcionalidad de la ALU y de la organizacin del procesador.

2.2.

El ciclo indirecto

Una vez que se capta una instruccin, el siguiente pasos es captar los
operandos fuente. Siguiendo con el ejemplo, supongamos un formato de
instruccin de una direccin, que permite direccionamiento directo e indirecto.
Si la instruccin especifica una direccin indirecta, un ciclo indirecto ha de
preceder al ciclo de ejecucin. El flujo de datos, incluye las sgtes.
microoperaciones:
t1: MAR IR (Direccin)
t2: MBR Memoria
t3: IR(Direccin) MBR(Direccin)

Arquitectura del Computador Lic. Jos Zamora Ramrez

El campo de direccin en la instruccin se transfiere a MAR (Registro de


Direccin de Memoria). Este se usa despus para captar la direccin del
operando. Por ultimo, el campo de IR se actualiza con el contenido de MBR, de
modo que contenga una direccin directa en lugar de una indirecta.
IR tiene ahora el mismo estado que si no se hubiera usado
direccionamiento indirecto, y esta listo para el ciclo de ejecucin.

2.3.

El ciclo de interrupcin

Cuando termina el ciclo de ejecucin, se realiza una comprobacin para


determinar si ha ocurrido alguna interrupcin habilitada. Si es asi, tiene lugar
un ciclo de interrupcin. La naturaleza de este ciclo, varia mucho de una
maquina a otra. Aqu una secuencia de eventos:
t1 : MAR PC
t2 : MAR Direccin de salvaguarda
PC Direccin de la rutina
t3 : Memoria MBR

Arquitectura del Computador Lic. Jos Zamora Ramrez

En el primer paso, el contenido de PC se transfiere a MBR, de modo que pueda


guardarse para el retorno de la interrupcin. Entonces, MAR se carga con la
direccin en la cual va a guardarse el contenido de PC y PC se carga con la
direccin de inicio de la rutina de procesamiento de la interrupcin. Cada una
de estas 2 acciones puede ser una unica microoperacin. Sin embargo, ya que
la mayoria de los procesadores tienen multiples tipos y/o niveles de
interrupciones, podrian hacer falta una o mas microoperaciones adicionales
para obtener la direccin de salvaguarda y la direccin de la rutina, antes de
que puedan transferirse a MAR y a PC, respectivamente. En todo caso, una vez
hecho esto, el paso final es almacenar MBR, que contiene el antiguo valor de
PC, en la memoria. El procesador queda entonces preparado para iniciar el
siguiente ciclo de instruccin.

2.4.

El ciclo de Ejecucin

Los ciclos de Captacin, Indirecto y de Interrupcin, son sencillos y predecibles.


Cada uno implica una secuencia pequea y fija de microoperaciones y, en
todos los casos, repiten las mismas microoperaciones para cada ejecucin de
una instruccin
Esto no ocurre as en el ciclo de ejecucin. En una mquina con N cdigos de
operacin (COD OP) diferentes, pueden ocurrir N secuencias diferentes de
microoperaciones. A continuacin expondremos ejemplos:

Ejemplo 1: add R1, X


Esta instruccin de suma, aade el contenido de la posicin X al registro R1,
por lo tanto puede suceder la siguiente secuencia de microoperaciones
t1 : MAR IR (direccin)
t2 : MBR Memoria
t3 : R1 (R1) + (MBR)
En un principio IR contiene la instruccin ADD. En el primer paso, la parte de
direccin de IR (Registro de Instruccin) se carga en MAR (Registro de Direccin
de Memoria). Despus, se lee la posicin de memoria referenciada, la cual es
Arquitectura del Computador Lic. Jos Zamora Ramrez

10

cargada en MBR (Registro Intermedio de Memoria). Por ultimo la ALU suma los
contenidos de R1 y MBR. En realidad, este es un ejemplo simplificado, ya que
pueden necesitarse operaciones adicionales para extraer la referencia a
registro desde IR y, tal vez, para poner las entradas o salidas de la ALU en
algunos registros intermedios.
Ejemplo 2 : ISZ X
Esta instruccin incrementa y salta si cero (Increment and Skip if Zero), por lo
tanto el contenido de la posicin X se incrementa en 1. Si el resultado es 0, la
siguiente instruccin se salta. Una posible secuencia de microoperaciones es:
t1
t2
t3
t4

:
:
:
:

MAR IR (direccin)
MBR Memoria
MBR (MBR) + 1
Memoria (MBR)
Si ((MBR) = 0) entonces ( PC = (PC) + Longitud de instruccin)

La nueva caracterstica introducida aqu es la actuacin condicional. PC


(Contador de Programa) se incrementa si (MBR) = 0 . Esta comprobacin y
actuacin puede implementarse como una microoperacin. Observe que esta
microoperacin puede ejecutarse durante la misma unidad de tiempo en la
cual el valor actualizado de MBR se almacena en Memoria.

3. Resumen
Hemos visto como cada fase del ciclo de instruccin puede ser
descompuesta en una serie de micro-operaciones elementales. En nuestro
ejemplo, hay una secuencia para cada subciclo, o sea que hay una secuencia
de micro-operaciones por cada cdigo operativo ( COD OP )
Para completar la imagen, necesitamos enlazar estas secuencias de
micro-operaciones, lo que es indicado en la figura a continuacion, donde
suponemos tener un nuevo registro de dos bits, denominado Cdigo del Ciclo
de Instruccin (ICC), el cual indica el estado de la UCP para cada porcin del
ciclo que se est ejecutando. Segn lo indicado en la figura, estos estados
corresponden a:
00 : Bsqueda
01 : Indirecto
10 : Ejecute
11 : Interrupcin
Al final de cada uno de los cuatro sub-ciclos, ICC es cargado
apropiadamente. El ciclo indirecto siempre es seguido por el de ejecucin. El de
interrupcin siempre es seguido por el de bsqueda y finalmente para ambos,
el de bsqueda y el de ejecucin el prximo sub-ciclo depende del estado del
sistema.

Arquitectura del Computador Lic. Jos Zamora Ramrez

11

FIGURA - Diagrama de flujo del ciclo de instruccin.

Arquitectura del Computador Lic. Jos Zamora Ramrez

12

Вам также может понравиться