EJECUCIÓN DE INSTRUCCIONES La función básica que realiza un computador es la ejecución de un programa. Un programa consiste en un conjunto de instrucciones y datos almacenados en la unidad de memoria. La CPU es la encargada de ejecutar las instrucciones especificadas en el programa.
Ciclo de Instrucción, Búsqueda y Ejecución
La secuencia de operaciones realizadas en la ejecución de una instrucción constituye lo que se denomina ciclo de instrucción. Lo más cómodo es considerar que el procesamiento del ciclo de instrucción consta de dos fases:
a) Fase de Búsqueda
b) Fase de Ejecución
Ciclo de Instrucción, Búsqueda y Ejecución
TIEMPOS DE EJECUCIÓN La culminación de cada una de estas fases necesita de uno a seis ciclos de reloj.
Fase de Búsqueda: (1) Transferir el contenido del Contador de Programa (CP) al registro de Direcciones (RD). 1. 2. 3. 4. Pasar a registro de Memoria (RM) el dato almacenado en la dirección de memoria indicada por RD. Transferir el dato leído desde el RM al registro de instrucción (RI). Incrementar el valor del Contador de Programa para apuntar a la instrucción siguiente.
PARTES DEL COMPUTADOR
Fase de Búsqueda: (2) Registro de Direcciones Registro de Instrucciones Registro de Memoria Registro Contador de Programa 5º Decodificación …
Fase de Ejecución: (3) comprende el conjunto de operaciones elementales específicas de la instrucción en curso. 5. Decodificación de la Instrucción. Por ejemplo la Instrucción ADD. (la instrucción es cambiada por su código máquina correspondiente) 6. Transferencia del campo “CD” de la instrucción en curso ( este campo contiene la dirección de memoria en la que se encuentra el operando, y que se encuentra en el registro RI desde que finalizó la fase de búsqueda), al registro RD. Se inicia, por tanto, un proceso similar al de la fase de búsqueda, pero en esta ocasión para buscar en memoria el operando de la instrucción.
…fase de ejecución: 7. Lanzar un ciclo de lectura de memoria que ponga en RM el operando almacenado en la dirección indicada por RD. 8. Transferencia del dato leído desde el RM al registro intermedio ,Ro2, del Operador. Paralelamente se puede transferir el otro operando desde el acumulador, AC, (contenido en él un instante anterior), al registro intermedio Ro1. Realizar la operación de SUMA (ADD) y almacenar el resultado en el AC. 9.
modos de direccionamiento. Consiste en determinar la forma en la que se va ha leer o escribir un dato. Modos de direccionamiento INMEDIATO; el dato está en la propia instrucción ( ejemplo: SUMA 7, 3), en el ejemplo los dos son datos, el resultado es 10. DIRECTO; en la instrucción está contenida la dirección de memoria donde se encuentra el dato (ejemplo: SUMA 7, 01) , 7 es un dato, 01 es una dirección de memoria donde se encuentra el dato. En la dirección de memoria 01 está contenido el dato, 3; el resultado es: [7 + (01=3)] = 10. Nota: no se pueden mezclar dos datos con direccionamiento directo, es decir: directo-directo.
modos de direccionamiento. RELATIVO A REGISTRO; aclarar primero que existen varios tipos de registros.
Registro de instrucción RI Registro de memoria RM Registro de direcciones RD Contador de programa CP
(Ejemplo: SUMA 3+CP, 1), en este caso el direccionamiento es relativo a registro Contador de Programa.
4 CP; 3+4=(dirección de memoria) 07. Si 1 en la instrucción es dato el resultado es: 4+1= 5. Como hemos observado, la dirección en la que se encuentra el dato se tiene que calcular. La dirección del puntero + el desplazamiento indicado en la propia instrucción Nos lleva al dato.
modos de direccionamiento. INDEXADO o direccionamiento a Registro Base. Un registro índice contiene una dirección de referencia que actúa como puntero: se emplea para recorrer estructuras de datos tipo vector o tabla. Su valor se modifica con frecuencia.
INDIRECTO; la instrucción contiene una dirección de memoria que lleva a otra dirección de memoria en la que se encuentra el dato.
(ejemplo: 04, 3), en 04 se encuentra 06 y en 06 está el dato: 2. El resultado es 2+3= 5.
Elementos principales de la Unidad de Control El CP es un registro que contiene la dirección de la siguiente instrucción que hay que ejecutar. El RI es un registro que contiene la instrucción que se está ejecutando en cada momento. El decodificador se encarga de examinar el código de operación de la instrucción que se encuentra en el registro de instrucción para determinar que es lo que hay que hacer. El secuenciador ordena que se realicen las operaciones necesarias para ejecutar la instrucción cuyo código de operación ha examinado el decodificador.
formatos de instrucción tienen varios formatos. Código de Operación Operando 1 dato Método de direccionamiento Campo de registro Tipo de registro Desplazamiento, dirección o dato Ejemplo: Relativo a R. base R.I.
(registro de instrucción) Operando 2
Un programa suele estar dividido en dos partes o zonas; una zona para código y otra para datos. Como ya hemos estudiado, una instrucción puede contener el dato propiamente dicho o una dirección de memoria que nos lleve al dato. Instr. ? [ etiqueta: ] Cod. Op. [ operandos ] [ ; comentario ] Ejemplo: GUARDAR: SUMA 7,3 ; esto es una suma Para poder trabajar con una CPU determinada, lo primero que debemos conocer es la longitud de palabra de sus registros. Una CPU de 32 bits dispone de los siguientes registros: Datos; D0, ………………………, D7. Direcciones; A0, ……………………., A6. Los anteriores son registros de acceso a memoria.
Otros registros son: CP contador de programa, SR registro de estado, SP puntero de pila, ……………..
formatos de palabra. (+) (-) 01 02 03 04 05 Byte más significativo Byte menos significativo 8 bits byte (B) palabra (W) palabra larga (L) Si trabajamos con registros de 16 bits y deseamos mover datos con una longitud de palabra de 32 bits, tendremos que recurrir a posiciones de memoria contiguas:
Página siguiente |