Ciclos del procesador

Anuncio
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
Descargar