Ciclo De Instruccion
Enviado por cabetO82 • 13 de Marzo de 2013 • 1.230 Palabras (5 Páginas) • 562 Visitas
5. Ciclo de Instrucción (Ciclo de Ejecución de Instrucción)
Anteriormente se explicó la secuencia de acciones que se siguen para ejecutar una instrucción en una computadora basada en la arquitectura de Von Neumann. En esta clase se abordará con mayor detalle el ciclo de ejecución de instrucción, pero antes, para este propósito, se considerará que éste ciclo está compuesto por los tres subciclos siguientes:
• Subciclo de Fetch: Se lee en memoria la siguiente instrucción a ejecutar y se la pasa al CPU.
• Subciclo de Ejecutar: Seinterpreta el código de la instrucción (opcode) y se ejecuta la operación indicada.
• Subciclo de Interrupción: Si las interrupciones están permitidas y habilitadas, entonces, al ocurrir una interrupción, se graba el estado del proceso que está siendo ejecutado y se procede a dar servicio (procesar) la interrupción.
Los dos primeros subciclos, subciclo de fetch y subciclo de ejecución, incorporan todas acciones de la secuencia de ejecución de instrucciones que hasta ahora se han explicado. El tercer subciclo, el subciclo de interrupción, es introducido por vez primera; éste permite el procesamiento de interrupciones.
Una interrupción es una señal que se envía al CPU para indicarle la ocurrencia de un evento. Subsecuentemente, el procesador “interrumpe” la ejecución de la instrucción u operación que está realizando y procede a “servir” (dar servicio o procesar) el programa o rutina correspondiente al evento inherente a la interrupción recibida. Usualmente, tras procesar una interrupción, el procesador continúa con el procesamiento de la tarea que realizaba, en el punto en el que se quedó antes de servir la interrupción. Una interrupción, dependiendo de su tipo y naturaleza, puede requerir atención inmediata, esperar a que el CPU le dé servicio, o, simplemente, ser ignorada. Existen dos tipos de interrupciones:
• Interrupción de hardware. Este tipo de interrupciones son producidas por otros dispositivos, dispositivos periféricos, o componentes de hardware de la computadora. Estas interrupciones causan que el procesador grabe el estado de ejecución actual y que inicie la ejecución de una rutina manejadora de la interrupción (interrupt handler). La unidad de control en la computadora que recibe la interrupción es quien determina en dónde se encuentra la rutina de manejo correspondiente e instruye que se inicie el procesamiento de la misma.
• Interrupciones de software (conocidas también como excepciones o trampas). Estas interrupciones son generadas dentro de un programa y son usadas para indicar al CPU que hacer una vez que recibe la interrupción. Usualmente, las interrupciones de software son implementadas como instrucciones dentro del conjunto de instrucciones de una computadora. Estas interrupciones causan un cambio de contexto (context switch), lo cual significa que se graba el estado de ejecución de la operación en curso y se procede a ejecutar una rutina manejadora similar a la de una instrucción de hardware.
NOTA: Las PCs dan soporte a 256 tipos de interrupciones de software y 15 interrupciones de hardware.
5.1 Fetch Indirecto o Ciclo Indirecto
Ya se ha visto que la ejecución de una instrucción puede requerir invocar uno o más datos u operandos que se encuentran en la memoria. Cada uno de estos datos deberá ser extraído de la memoria mediante un fetch. Sin embargo, es frecuente que la instrucción a ejecutar especifique direccionamiento indirecto para extraer un operando, lo cual implicará el uso de un acceso a memoria adicional.
Se puede ver al fetch de direccionamiento indirecto como un subciclo más en el ciclo de instrucción:
Figura 5.1. Ciclo de Instrucción con direccionamiento indirecto.
Otra forma de ver este mismo proceso se muestra en la Figura 5.2, la cual ilustra la naturaleza del ciclo de instrucción. Una vez que se hace un fetch de una instrucción, los especificadores de los
...