La Ejecucion de Instrucciones

14
Universidad Nacional de Ingeniería Facultad de Ingeniería Industrial y de Sistemas Área de Computación e Informática Curso : Arquitectura del computador – ST 314 V Profesor : Lic. José Alberto Zamora Ramírez La Ejecución de Instrucciones en el Computador 1. El Ciclo de una Instrucción La ejecución de una instrucción siempre conlleva realizar la misma secuencia de pasos independientes del Repertorio de Instrucciones (Set de Instrucciones) específicos que posea el procesador y de los campos y modos de direccionamiento que se hayan definido. De forma genérica, el ciclo de ejecución de una instrucción 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 ejecución de la instrucción. Cada uno de estos pasos puede necesitar un número diferente de ciclos de reloj dependiendo de su propia complejidad y de los recursos que la CPU tenga para su realización. La temporización básica del computador viene dada por un reloj, que determina el tiempo mínimo que puede durar una operación elemental. Arquitectura del Computador – Lic. José Zamora Ramírez 1

description

La Ejecucion de Instrucciones

Transcript of La Ejecucion de Instrucciones

35

Universidad Nacional de Ingeniera

Facultad de Ingeniera Industrial y de Sistemas

rea de Computacin e Informtica

Curso

:Arquitectura del computador ST 314 V

Profesor: 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 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.

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

Interrupcin

Ejecucin

Cada uno de estos subciclos conllevan a ejecutar un conjunto de microoperaciones, para hacer realidad la Ejecucin de la Instruccin.

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.

MARMAR0000101000101010

MBRMBR

PC0000101000101010PC0000101000101010

IRIR

ACAC

InicioPrimer Paso

MAR0000101000101010MAR0000101000101010

MBR0010000000100000MBR0010000000100000

PC0000101000101011PC0000101000101011

IRIR0010000000100000

ACAC

Segundo PasoTercer 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