Requisito previo: ejecución, etapas y rendimiento
Registros involucrados en cada ciclo de instrucción:
- Registros de dirección de memoria (MAR) : Se conecta a las líneas de dirección del bus del sistema. Especifica la dirección en la memoria para una operación de lectura o escritura.
- Registro de búfer de memoria (MBR) : está conectado a las líneas de datos del bus del sistema. Contiene el valor a almacenar en la memoria o el último valor leído de la memoria.
- Contador de programa (PC) : contiene la dirección de la siguiente instrucción que se va a buscar.
- Registro de instrucciones (IR) : contiene la última instrucción obtenida.
El ciclo de instrucción –
Cada fase del Ciclo de Instrucción se puede descomponer en una secuencia de microoperaciones elementales. En los ejemplos anteriores, hay una secuencia para los ciclos de obtención, indirecto, ejecución e interrupción .
El Ciclo Indirecto siempre es seguido por el Ciclo de Ejecución . El ciclo de interrupción siempre es seguido por el ciclo de recuperación . Tanto para los ciclos de obtención como para los de ejecución, el siguiente ciclo depende del estado del sistema.
Asumimos un nuevo registro de 2 bits llamado Código de ciclo de instrucción (ICC). El ICC designa el estado del procesador en términos de la parte del ciclo en la que se encuentra:
00 : Ciclo de obtención
01 : Ciclo indirecto
10 : Ciclo de ejecución
11 : Ciclo de interrupción
Al final de cada ciclo, el ICC se establece adecuadamente. El diagrama de flujo anterior del ciclo de instrucciones describe la secuencia completa de microoperaciones, dependiendo solo de la secuencia de instrucciones y el patrón de interrupción (este es un ejemplo simplificado). El funcionamiento del procesador se describe como la ejecución de una secuencia de microoperaciones.
Diferentes ciclos de instrucción:
- El ciclo de búsqueda:
al comienzo del ciclo de búsqueda, la dirección de la siguiente instrucción que se ejecutará está en el contador de programa (PC).
- Paso 1: La dirección en el contador del programa se mueve al registro de dirección de memoria (MAR), ya que este es el único registro que está conectado a las líneas de dirección del bus del sistema.
- Paso 2: La dirección en MAR se coloca en el bus de direcciones, ahora la unidad de control emite un comando LEER en el bus de control y el resultado aparece en el bus de datos y luego se copia en el registro de memoria intermedia (MBR). El contador de programa se incrementa en uno, para estar listo para la siguiente instrucción. (Estas dos acciones se pueden realizar simultáneamente para ahorrar tiempo)
- Paso 3: El contenido del MBR se traslada al registro de instrucciones (IR).
- Por lo tanto, un ciclo de búsqueda simple consta de tres pasos y cuatro microoperaciones. Simbólicamente, podemos escribir esta secuencia de eventos de la siguiente manera:
- Aquí ‘I’ es la longitud de la instrucción. Las notaciones (t1, t2, t3) representan unidades de tiempo sucesivas. Suponemos que un reloj está disponible para fines de temporización y emite pulsos de reloj espaciados regularmente. Cada pulso de reloj define una unidad de tiempo. Por lo tanto, todas las unidades de tiempo tienen la misma duración. Cada microoperación se puede realizar dentro del tiempo de una sola unidad de tiempo.
Unidad de primera vez: Mover el contenido de la PC a MAR.
Segunda unidad de tiempo: Mueve el contenido de la ubicación de la memoria especificada por MAR a MBR. Incrementa el contenido de la PC por I.
Tercera unidad de tiempo: Mueve el contenido de MBR a IR.
Nota: La segunda y la tercera microoperaciones tienen lugar durante la segunda unidad de tiempo. - Los ciclos indirectos –
Una vez que se obtiene una instrucción, el siguiente paso es obtener los operandos fuente. El Operando de origen se obtiene mediante direccionamiento indirecto (se puede obtener mediante cualquier modo de direccionamiento , aquí se realiza mediante direccionamiento indirecto). No es necesario recuperar los operandos basados en registros. Una vez que se ejecuta el código de operación, es posible que se necesite un proceso similar para almacenar el resultado en la memoria principal. Las siguientes microoperaciones tienen lugar: –
- Paso 1: El campo de dirección de la instrucción se transfiere al MAR. Esto se utiliza para obtener la dirección del operando.
Paso 2: El campo de dirección del IR se actualiza desde el MBR. (Para que ahora contenga un direccionamiento directo en lugar de un direccionamiento indirecto)
Paso 3: El IR está ahora en el estado, como si no se hubiera producido el direccionamiento indirecto.Nota: ahora IR está listo para el ciclo de ejecución, pero omite ese ciclo por un momento para considerar el ciclo de interrupción .
- El ciclo de ejecución
Los otros tres ciclos ( Fetch, Indirect e Interrupt ) son simples y predecibles. Cada uno de ellos requiere una secuencia simple, pequeña y fija de microoperación. En cada caso, se repite la misma microoperación cada vez.
Execute Cycle es diferente de ellos. Por ejemplo, para una máquina con N códigos de operación diferentes, hay N secuencias diferentes de microoperaciones que pueden ocurrir.
Tomemos un ejemplo hipotético:
considere una instrucción de adición:
- Aquí, esta instrucción agrega el contenido de la ubicación X al registro R. La microoperación correspondiente será:
- Comenzamos con el IR que contiene la instrucción ADD.
Paso 1: La parte de la dirección de IR se carga en el MAR.
Paso 2: El campo de dirección del IR se actualiza desde el MBR, por lo que se lee la ubicación de la memoria de referencia.
Paso 3: Ahora, la ALU agrega los contenidos de R y MBR.Tomemos un ejemplo complejo: –
- Aquí, el contenido de la ubicación X se incrementa en 1. Si el resultado es 0, se omitirá la siguiente instrucción. La secuencia correspondiente de microoperación será: –
- Aquí, el PC se incrementa si (MBR) = 0. Esta prueba (el MBR es igual a cero o no) y la acción (el PC se incrementa en 1) se pueden implementar como una microoperación.
Nota : esta microoperación de prueba y acción se puede realizar durante la misma unidad de tiempo durante la cual el valor actualizado MBR se almacena nuevamente en la memoria. - El ciclo de interrupción :
al finalizar el ciclo de ejecución, se realiza una prueba para determinar si se ha producido o no alguna interrupción habilitada. Si se ha producido una interrupción habilitada, se produce un ciclo de interrupción. La naturaleza de este ciclo varía mucho de una máquina a otra.
Tomemos una secuencia de micro-operación: –
- Paso 1: el contenido de la PC se transfiere al MBR, de modo que se puedan guardar para su devolución.
Paso 2: Se carga MAR con la dirección en la que se van a guardar los contenidos del PC.
La PC se carga con la dirección de inicio de la rutina de procesamiento de interrupciones.
Paso 3: MBR, que contiene el valor anterior de PC, se almacena en la memoria.Nota: En el paso 2, se implementan dos acciones como una microoperación. Sin embargo, la mayoría de los procesadores proporcionan varios tipos de interrupciones, puede ser necesario realizar una o más microoperaciones para obtener la dirección de guardado y la dirección de rutina antes de que se transfieran al MAR y al PC, respectivamente.
Publicación traducida automáticamente
Artículo escrito por Astha_Singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA