stringtranslate.com

ciclo de instrucción

El ciclo de instrucción (también conocido como ciclo de recuperación-decodificación-ejecución , o simplemente ciclo de recuperación-ejecución ) es el ciclo que sigue la unidad central de procesamiento (CPU) desde el arranque hasta que la computadora se apaga para poder procesar instrucciones. . Se compone de tres etapas principales: la etapa de búsqueda, la etapa de decodificación y la etapa de ejecución.

Este es un diagrama simple que ilustra las etapas individuales del ciclo de búsqueda, decodificación y ejecución. Leyenda:

En las CPU más simples, el ciclo de instrucciones se ejecuta secuencialmente y cada instrucción se procesa antes de que se inicie la siguiente. En la mayoría de las CPU modernas, los ciclos de instrucciones se ejecutan al mismo tiempo , y a menudo en paralelo , a través de una canalización de instrucciones : la siguiente instrucción comienza a procesarse antes de que finalice la instrucción anterior, lo cual es posible porque el ciclo se divide en pasos separados. [1]

Papel de los componentes

El contador de programa (PC) es un registro especial que contiene la dirección de memoria de la siguiente instrucción a ejecutar. Durante la etapa de búsqueda, la dirección almacenada en la PC se copia en el registro de direcciones de memoria (MAR) y luego la PC se incrementa para "apuntar" a la dirección de memoria de la siguiente instrucción a ejecutar. Luego, la CPU toma la instrucción en la dirección de memoria descrita por el MAR y la copia en el registro de datos de la memoria (MDR) . El MDR también actúa como un registro bidireccional que contiene datos obtenidos de la memoria o datos en espera de ser almacenados en la memoria (también se conoce como registro de búfer de memoria (MBR) debido a esto). Finalmente, la instrucción en el MDR se copia en el registro de instrucciones actual (CIR) , que actúa como un punto de retención temporal para la instrucción que acaba de ser recuperada de la memoria.

Durante la etapa de decodificación, la unidad de control (CU) decodificará la instrucción en el CIR. Luego, la CU envía señales a otros componentes dentro de la CPU, como la unidad aritmética lógica (ALU) y la unidad de punto flotante (FPU) . La ALU realiza operaciones aritméticas como suma y resta y también multiplicación mediante suma repetida y división mediante resta repetida. [ dudoso ] También realiza operaciones lógicas como AND , OR , NOT y cambios binarios . La FPU está reservada para realizar operaciones de punto flotante .

Resumen de etapas

La CPU de cada computadora puede tener diferentes ciclos basados ​​en diferentes conjuntos de instrucciones, pero será similar al siguiente ciclo:

  1. Etapa de recuperación : la siguiente instrucción se recupera de la dirección de memoria que está actualmente almacenada en el contador del programa y se almacena en el registro de instrucciones. Al final de la operación de recuperación, la PC señala la siguiente instrucción que se leerá en el siguiente ciclo.
  2. Etapa de decodificación : durante esta etapa, el decodificador interpreta la instrucción codificada presentada en el registro de instrucciones.
    • Leer la dirección efectiva : En el caso de una instrucción de memoria (directa o indirecta), la fase de ejecución será durante el siguiente pulso de reloj. Si la instrucción tiene una dirección indirecta , la dirección efectiva se lee de la memoria principal y todos los datos requeridos se obtienen de la memoria principal para procesarlos y luego colocarlos en registros de datos (pulso de reloj: T 3 ). Si la instrucción es directa, no se hace nada durante este pulso de reloj. Si se trata de una instrucción de E/S o de registro, la operación se realiza durante el pulso del reloj.
  3. Etapa de ejecución : la unidad de control de la CPU pasa la información decodificada como una secuencia de señales de control a las unidades funcionales relevantes de la CPU para realizar las acciones requeridas por la instrucción, como leer valores de los registros y pasarlos a la ALU para realizarlas. funciones matemáticas o lógicas en ellos y escribir el resultado en un registro. Si la ALU está involucrada, envía una señal de condición a la CU. El resultado generado por la operación se almacena en la memoria principal o se envía a un dispositivo de salida. Según los comentarios de la ALU, la PC puede actualizarse a una dirección diferente desde la cual se obtendrá la siguiente instrucción.
  4. Repetir ciclo

Además, en la mayoría de los procesadores pueden producirse interrupciones . Esto hará que la CPU salte a una rutina de servicio de interrupción, la ejecute y luego regrese. En algunos casos, una instrucción puede interrumpirse a la mitad; la instrucción no tendrá ningún efecto, pero se volverá a ejecutar después de regresar de la interrupción.

Iniciación

El ciclo comienza tan pronto como se aplica energía al sistema, con un valor de PC inicial que está predefinido por la arquitectura del sistema (por ejemplo, en las CPU Intel IA-32 , el valor de PC predefinido es 0xfffffff0). Normalmente, esta dirección apunta a un conjunto de instrucciones en la memoria de sólo lectura (ROM), que inicia el proceso de carga (o arranque ) del sistema operativo . [2]

etapa de búsqueda

El paso de recuperación es el mismo para cada instrucción:

  1. La CPU envía el contenido de la PC al MAR y envía un comando de lectura en el bus de control.
  2. En respuesta al comando de lectura (con dirección igual a PC), la memoria devuelve los datos almacenados en la ubicación de memoria indicada por la PC en el bus de datos.
  3. La CPU copia los datos del bus de datos en su MDR (también conocido como MBR; consulte la sección Función de los componentes más arriba)
  4. Una fracción de segundo después, la CPU copia los datos del MDR al registro de instrucciones para la decodificación de instrucciones.
  5. La PC se incrementa para que apunte a la siguiente instrucción. Este paso prepara la CPU para el siguiente ciclo.

La unidad de control recupera la dirección de la instrucción de la unidad de memoria .

Etapa de decodificación

El proceso de decodificación permite al procesador determinar qué instrucción se va a realizar para que la CPU pueda decir cuántos operandos necesita recuperar para realizar la instrucción. El código de operación obtenido de la memoria se decodifica para los siguientes pasos y se mueve a los registros apropiados. La decodificación normalmente se realiza mediante decodificadores binarios en la unidad de control de la CPU .

Leer la dirección efectiva

Este paso evalúa qué tipo de operación se va a realizar. Si es una operación de memoria, la computadora verifica si es una operación de memoria directa o indirecta:

Si se trata de una instrucción de E/S o de registro, la computadora verifica su tipo y ejecuta la instrucción.

Ejecutar etapa

La CPU envía la instrucción decodificada como un conjunto de señales de control a los componentes correspondientes de la computadora. Si la instrucción involucra aritmética o lógica, se utiliza la ALU. Esta es la única etapa del ciclo de instrucción que es útil desde la perspectiva del usuario final. Todo lo demás es una sobrecarga necesaria para que se realice el paso de ejecución.

Ver también

Referencias

  1. ^ Crystal Chen, Greg Novick y Kirk Shimano (2000). "Tubería" . Consultado el 26 de junio de 2019 .
  2. ^ Bosky Agarwal (2004). "Ciclo de ejecución de obtención de instrucciones" (PDF) . Archivado desde el original (PDF) el 11 de junio de 2009 . Consultado el 14 de octubre de 2012 .