UNIDAD DE CONTROL CICLOS DEL PROCESADOR ¿Qué es un ciclo de búsqueda? ¿Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del procesador. ¿Qué es un ciclo de instrucción? Ciclo de instrucción es el procesamiento requerido para la instrucción. En este Ciclo, se encuentran los dos pasos denominados Ciclo de lectura (fetch) y Ciclo de ejecución (execution). ¿Qué etapas constituyen un ciclo básico de instrucción? Las etapas del ciclo de instrucción para las instrucciones multiciclo son: • • • • •

IF (búsqueda), ID (decodificación), Issue (lanzamiento a ejecución, aplicando Tomasulo), EX (ejecución en el operador multiciclo) y WB (escritura en el bus común de datos).

Las IAS operan repitiendo un ciclo de instrucción, que a su vez consiste en 2 subciclos. Ciclo de búsqueda y ciclo de ejecución. ¿Qué es un ciclo de búsqueda? La acción de leer una instrucción en la CPU y prepararla para su ejecución se denomina ciclo de búsqueda. Para completar una instrucción la CPU decodifica el opcode, genera las señales de control que se necesitan para introducir los operandos requeridos y controla la ejecución de la instrucción. Durante el ciclo de búsqueda, el opcode de la siguiente instrucción es cargado en el IR(Registro de Instrucción) y la porción de dirección es cargada en el MAR(Registro de Dirección de Memoria): esta instrucción puede ser tomada del IBR(Registro de Buffer de Instrucción), o puede ser obtenido de la memoria cargando una palabra en el MBR(Registro de Buffer de Memoria), y después al IBR, IR, y MAR ¿Qué registros entran en juego durante el ciclo de búsqueda? 1. Contador del programa (PC). 2. Registro de direcciones de la memoria (MAR). 3. Registro de datos. 4. Registro de instrucciones.(IR) 5. Registro de buffer de memoria(MBR) 5. Palabra de estado de programa.

6. Acumulador ¿Qué acciones pueden llevarse a cabo cuando la CPU interpreta instrucciones? El procesador lee una instrucción de la memoria, al comienzo de cada Ciclo de instrucción. Se cuenta con un contador de programas (PC), que lleva la cuenta de cuál es la próxima instrucción a leer. Luego el procesador incrementará el PC, de manera tal que la siguiente instrucción a leer será la que se encuentra en la dirección inmediatamente superior de la memoria. La instrucción leída es cargada en el registro de instrucción (IR), que es un registro del procesador. El procesador interpreta la instrucción, la cual está en forma de código binario, que especifica la acción que el procesador llevará a cabo, y realizará la acción requerida. Las acciones que se realizan para la lectura y ejecución de instrucciones se pueden clasificar en las siguientes categorías: •

Procesador – Memoria: los datos se transfieren del procesador a la memoria o viceversa.



Procesador – E/S: los datos se transfieren desde o hacia un dispositivo periférico. Se realiza la transferencia entre el procesador y un módulo de entrada-salida.



Tratamiento de datos: el procesador puede realizar alguna operación aritmética o lógica sobre los datos.



Control: la secuencia de ejecución puede ser alterada si la instrucción lo especifica.

La ejecución de una instrucción puede incluir una combinación de las acciones antes mencionadas. Describir el ciclo básico de instrucción mediante diagramas de estado.

CICLOS DE INTERRUPCIÓN

¿Qué es una interrupción? La interrupción es básicamente un suceso que altera la secuencia de ejecución de las instrucciones. ¿Para qué sirven las interrupciones? Existen varios tipos de interrupciones de los cuales los más comunes son los siguientes: •

De programa o de verificación de programa: son ocasionadas por condiciones que se producen como resultado de la ejecución de una instrucción. Ejemplo: - la división por cero - el intento de ejecutar una instrucción privilegiada.



De reloj: son producidas por un reloj interno del procesador. Para que de esa forma se realicen funciones con una cierta regularidad.



De Entrada / Salida: son generadas por un controlador de E/S para indicar la finalización de una operación; o e cambio de estado de un dispositivo o canal; o también alguna condición de error.



Por fallo del Hardware o de verificación de máquina: son causadas por el mal funcionamiento del equipo, cortes de energía, etc.

Con el uso de las interrupciones el procesador se puede utilizar de una manera más eficaz. ¿Qué clases de interrupciones existen? Atendiendo a su origen, en el PC existen tres tipos de interrupciones:



Interrupciones hardware Las interrupciones hardware ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea enmascarable o no enmascarable.



Interrupciones software Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Por ejemplo, en lenguaje ensamblador, la instrucción INT 21 invoca la interrupción 33d (21h), que en MS-DOS es la llamada a los servicios del Sistema. Este tipo de interrupciones son de prioridad más alta que las de hardware, de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad.



Excepciones del procesador Durante el funcionamiento del procesador pueden ocurrir circunstancias excepcionales; es usual citar como ejemplo el caso de una división por cero. En estos casos, el procesador genera una excepción, que es tratada como si fuese una interrupción software, con la diferencia de que el número de interrupción asociado depende del tipo de excepción.

¿Cómo afectan las interrupciones al ciclo de instrucción? Utilizando interrupciones el procesador puede ejecutar instrucciones mientras una operación de E/S está en proceso. Siguiendo esta idea se concluye que la operación de E/S y un programa usuario son ejecutados concurrentemente. Desde la postura del programa de usuario, una interrupción no es más que la alteración de la secuencia normal de ejecución. Cuando el tratamiento de la interrupción termina, la ejecución continúa. ¿Cómo maneja la CPU el ciclo con interrupciones? Para tratar a las interrupciones, se agrega un ciclo de interrupción al ciclo de instrucción. En el ciclo de interrupción, el procesador verifica si ha ocurrido alguna interrupción, indicado por la presencia de una señal de interrupción. Si no hay interrupciones pendientes, el procesador continúa con el ciclo de lectura y trae la próxima instrucción del programa en curso. Si hay una interrupción pendiente, el procesador suspende la ejecución del programa en curso y ejecuta una rutina de tratamiento de la interrupción.

Estado básico de instrucción con interrupciones:

CICLOS DIRECTOS ¿Cuándo aparece un ciclo indirecto? Se presenta cuando se da la captación de direcciones indirectas y es un subciclo de una instrucción más. ¿Qué cambios aparecen en el ciclo de instrucción ante la presencia de un ciclo indirecto? Si hay direccionamiento indirecto, se lleva a cabo un ciclo indirecto. • • •

Los N bits más a la derecha de MBR se transfieren a MAR. La unidad de control solicita una lectura de memoria. El resultado (la dirección del operando) se lleva a MBR.

¿Cómo se explica un ciclo de instrucción con la presencia de ciclos indirectos mediante un diagrama de estados?

Flujo de datos en términos generales.

MBR = Registro intermedio de memoria MAR = Registro de dirección de memoria IR = Registro de instrucción PC = Contador de programa

Ciclo de captación:

Durante el ciclo de captación o búsqueda, una instrucción se lee de memoria, el PC contiene la dirección de la siguiente instrucción a captar, esta dirección se mueve al MAR y puesta en el bus de direcciones, la unidad de control pide leer la memoria, y el resultado se pone en el bus de datos y copiado en el MBR para después ser movido al IR, mientras tanto, el PC se incrementa en 1, preparación para la siguiente captación. Ciclo indirecto: Cuando el ciclo de captación se termina, la unidad de control examina el contenido del IR para determinar si contiene un indicador de operando usando direccionamiento directo, Si es así, se realiza el ciclo indirecto, donde los N bits más a la derecha del MBR, que contienen la referencia a dirección, se transfieren al MAR, entonces la unidad de control pide lectura de memoria, para obtener la dirección deseada del operando dentro del MBR. Los ciclos de captación e indirecto son muy predecibles, el ciclo de ejecución varia mucho, dependiendo de que instrucciones de maquina se encuentren en el IR, este ciclo puede relacionar información de transferencia entre registros, leer o escribir desde memoria o I/O, y/o la llamada a la ALU. Ciclo de interrupción: En el ciclo de interrupción, el actual contenido del PC debe ser guardado para que el CPU pueda volver a actividad normal después de la interrupción, Así que, el contenido del PC es transferido al MBR para escribirse en memoria, la locación especial reservada para esto es cargada en el MAR desde la unidad de control, puede, por ejemplo, ser un apuntador de pila, el PC se carga con la dirección de la rutina de interrupción, como resultado, el siguiente ciclo de instrucción empezara captando la instrucción apropiada.

FUENTES: •

http://akimpech.izt.uam.mx/Web_jr/ami14.htm



http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/INTSI02.htm



Diapositivas de apoyo del Curso