Video

6.5 Instrucciones Básicas del procesador

Las instrucciones de la computadora son normalmente almacenadas en localidades consecutivas de memoria y son ejecutadas secuencialmente una a una. Una señal de control permite leer una instrucción de una localidad de memoria específica y la ejecuta. Entonces continuara, con la siguiente instrucción en secuencia y la ejecuta, y así sucesivamente. Este tipo de secuenciación de instrucciones necesita de un contador para calcular la dirección de la siguiente instrucción después de la ejecución de la instrucción actual. Cabe hacer mención que las palabras almacenadas en las localidades de memoria no pueden establecer comunicación con los registros del CPU, solamente a través de un registro separador y de dirección. También, es necesario que se proporcione un registro en la unidad de control para almacenar el código de operación después de que estos han sido leídos de la memoria. Este requisito hace que la configuración de registro sea como se bosqueja a bloques en la figura 1.27. La configuración se este registro será utilizada para describir la organización interna de una computadora básica.

La unidad de memoria tiene una capacidad de 4096 palabras y cada palabra contiene 16 bits. Doce bits de una palabra de instrucción se necesitan para especificar la dirección de un operando. Esto deja cuatro bits para la parte de operación de la instrucción. Sin embargo, solamente tres bits se utilizan para especificar un código de operación.

El cuarto bit se utiliza para especificar un modo de direccionamiento directo o indirecto.


Figura 1.27 Registros básicos de la computadora.

El registro separador de memoria (MBR, Memory Buffer Register) consta de 16 bits, lo mismo que el registro del acumulador (AC). El flip-flop es una extensión del acumulador. Este es utilizado durante las operaciones de desplazamiento y recibe el acarreo final durante la suma y de otra manera será un flip-flop que se utiliza para simplificar las capacidades de procesamiento de datos de la computadora. El registro I tiene una sola celda para almacenar el bit de modo y el registro de operación (OP) almacena el código de operación de tres bits leído en memoria.

El registro de direccionamiento a memoria (MAR) tiene 12 bits puesto que esta es la longitud de la dirección de memoria. El contador de programa (PC) también tiene 12 bits y retiene la dirección de la siguiente instrucción que deberá leerse de la memoria después de que la instrucción actual se esta ejecutando. Este registro lleva una secuencia de instrucciones que han sido previamente almacenadas en memoria. Las palabras de instrucción son leídas y ejecutadas en secuencia a no ser que se encuentre una instrucción de de ramificación (subrutina, ciclo, etc.).

Una instrucción de ramificación tiene una parte de operación que exige una transferencia a una instrucción no consecutiva en memoria. La parte de la dirección de una instrucción de ramificación es transferida a PC para que sea la dirección de la instrucción siguiente. Para leer una instrucción, el contador de PC es transferido al MAR y se inicia un ciclo de lectura de memoria y el PC se incrementara en uno. Este coloca el código de instrucción en el MBR y prepara el PC para la dirección de la instrucción siguiente. El código de operación es transferido al OP, el bit de modo a I y la parte de la dirección en MAR. Una operación de lectura de memoria coloca el operando (si I=0) en MBR. El AC y el MBR son utilizados como registros fuente para las microoperaciones especificadas por el código de operación. El resultado de la operación se almacena en el AC. Sin embargo, una instrucción puede tener un bit Indirecto I igual a 1, o puede que no requiera un operando de la memoria, o puede ser una instrucción de ramificación. En cada uno de estos casos, el control debe emitir un conjunto diferente de funciones de control para ejecutar diferentes tipos de transferencia de registros. Para conocer a detalle el papel que la unidad de control juega en la ejecución de instrucciones es necesario definir las instrucciones que utilizan la computadora y sus formatos de código.

La computadora en forma general tiene tres formatos de códigos de instrucción diferentes, como se muestra en la figura 1.28. La parte correspondiente a la operación contiene tres bits; el significado de los trece bits restantes depende del código de operación que se localice en estos. Una instrucción de referencia de memoria utiliza los 12 bits menos significativos para especificar una dirección y el primer bit para especificar el modo I. Una instrucción de referencia a registro especifica una operación o una prueba de registro AC o E. Un operando de memoria no se necesita; por lo tanto, los últimos 12 bits son utilizados para especificar la operación o verificar lo que se ha realizado. Una instrucción de referencia de registros se reconoce por el código de operación 111 con un código en el primer bit de la instrucción. Similarmente, una instrucción de E/S, no necesita una referencia a memoria y se reconoce por el código de operación 111 con un 1 en el primer bit de la instrucción. Los 12 restantes se utilizan para especificar el tipo de operación E/S o la prueba realizada. Nótese que el primer bit del código de instrucción no se utiliza como un bit de modo cuando los últimos 12 bits no son utilizados para designar una dirección.


Figura 1.28 Formato de instrucción para la computadora básica.


Solamente tres bits de la instrucción son utilizados para código de la operación. Pareciera que la computadora estuviera restringida a un máximo de ocho operaciones distintas. Sin embargo, puesto que las instrucciones de referencia de registro y E/S utilizan los 12 bits restantes como parte del código de operación, el número total de instrucciones puede exceder ocho. En realidad, el número total de instrucciones para la computadora básica es de 25.