Está en la página 1de 2

UNIDAD DE CONTROL La funcin principal de la unidad de control de la UCP es dirigir la secuencia de pasos de modo que la computadora lleve a cabo

un ciclo completo de ejecucin de una instruccin, y hacer esto con todas las instrucciones de que conste el programa. Los pasos para ejecutar una instruccin cualquiera son los siguientes: I. Ir a la memoria y extraer el cdigo de la siguiente instruccin (que estar en la siguiente celda de memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional (to fetch significa traer, ir por). II. Decodificar la instruccin recin leda (determinar de que instruccin se trata). III. Ejecutar la instruccin. IV. Prepararse para leer la siguiente casilla de memoria (que contendr la siguiente instruccin), y volver al paso 1 para continuar. La unidad de control ejecutara varias veces este ciclo de cuatro instrucciones alambradas a una enorme velocidad. Se llama as a estas instrucciones porque no residen en memoria, ni fueron escritas por ningn programador, sino que la maquina las ejecuta directamente por medios electrnicos, y lo har mientras este funcionando (mientras este encendida) en una computadora es a razn de cientos de miles (o incluso millones) de veces por segundo. Se ha definido ya el modelo de von Neumann. Ahora se pondr a funcionar sobre nuestro pequeo programa de ejemplo (que ya esta cargado en la memoria). PASOS PARA LA EJECUCION DE UN PROGRAMA Se describirn todos los pasos con detalle por nica vez, para que el lector pueda estudiarlos con detenimiento hasta estar seguro de haberlos comprendido. En virtud de que el programa comienza a partir de la celda numero 10, se debe indicar a la unidad de control que esa celda contiene la primera instruccin. Esto se hace por medio de un apuntador (que forma parte de los circuitos electrnicos de la unidad de control) que recibe el nombre de contador de programa (CP). As pues, el primer paso debe consistir en apuntar a la casilla 10, y esto se representara por CP-10. (obsrvese que este paso es externo, esto es, no forma parte del programa, sino que se tiene que hacer desde afuera para iniciara la operacin de la computadora) La unidad de control ejecutara el paso I e ira a la casilla 10 para leer su contenido, que es21. La unidad de control ejecuta el paso II, con lo que decodifica el 21 recin ledo y determina que se trata de una operacin CARGA_Ac. En este momento sucede algo de primordial importancia: como la instruccin 21 tiene una longitud de dos celdas cuyo valor se cargara en el acumulador (que en este caso de casualidad tambin es 21), la maquina deber ajustar el valor del contador de programa para que este apunte a celda siguiente. La unidad de control ejecuta el paso III, con la que efectivamente efectuara la operacin de carga. Por esto, la computadora debe ir a la celda 11 y extraer su contenido, pero ahora ya no lo considera como instruccin si no como direccin por la cual ira a la celda 21 para extraer el valor que contenga. En este momento hay que tener cuidado para que no haya confusin: el primer 21 (el de la celda 10) es la instruccin CARGA_Ac; el segundo 21 ( El de la celda 11) es la direccin de la celda de memoria cuyo valor se desea cargar en el acumulador. Esta instruccin completa 21, 21, puede leerse de la siguiente manera: cargar el acumulador con el valor que este contenido en la celda cuya direccin aparece a la derecha de donde s esta leyendo ahora. Conviene tener muy en claro antes de seguir adelante.

La unidad de control ejecuta el paso IV, para luego ejecutar todo el ciclo de nuevo. Obsrvese que es un ciclo ilimitado, que solo terminara cuando se ejecute la instruccin ALTO. En este caso, el contador de programa se har igual a 12; esto es, apuntara a la celda numero 12. Se ejecuta (por segunda vez) el paso I de la unidad de control. Como CP=12, se leer esa celda, que contiene un 57. Se decodifica esa instruccin, que es SUMA_Ac, por lo que la CP se prepara para apuntar a la siguiente celda. (Recurdese que la instruccin SUMA_Ac ocupa 2 celdas: una para el cdigo de operacin y otra para la direccin de la celda cuyo contenido se sumara al acumulador.) Se ejecuta la instruccin 57, con lo que se aade el contenido de la celda 22 al acumulador(la direccin 22 reside en la celda 13, es a la que actualmente apunta el contador de un programa como resultado del paso anterior). Ahora el acumulador contendr un 12. La CP se actualiza para apuntar a la celda 14, en la cual (y no es casualidad) reside el cdigo de la siguiente instruccin. Se lee la celda 14 y se extrae su cdigo: 96. Se decodifica la instruccin, que es GUARDA_Ac, por lo que el CP sea lista para apuntar a la siguiente celda, que contendr la direccin de la celda en donde se guardara el contenido del acumulador. Al ejecutarse esta instruccin se deposita el valor del acumulador (12) en la celda numero 23, o sea, se deja el resultado de la suma en la celda que de antemano se haba separado para tal fin. La unidad de control regresa al paso I no sin antes actualizar el contador de programas para que apunte a la celda 16 es donde reside la siguiente instruccin. Se lee la celda 16 y se extrae su contenido: 70. Se decodifica esta instruccin, que es ALTO. El CP no se prepara para extraer un dato de la siguiente celda porque la instruccin 70 ocupa una sola celda. Se ejecuta esta instruccin, lo que detiene a la unidad de control y a la maquina. De esta manera se rompe el ciclo de los 4 pasos. De estos 16 pasos sobre sale lo siguiente:

Dado el contenido de una celda, la computadora no puede distinguir si se trata de un instruccin o de un dato o direccin. Debido a lo anterior, es responsabilidad de quien maneja la maquina indicarle cual es la celda donde comienza el programa (esto se hizo por medio del paso 0, que se describi externo al programa). Una vez que el contador de un programa apunta a la celda que contiene la primera instruccin, el resto del proceso ocurre de manera automtica e invisible para el programador. Esto se debe a los ajustes internos que hace al CP (en el paso II) que a su vez, dependen de la longitud de la instruccin que s esta ejecutando.

También podría gustarte