Ciclo de instrucción

Ciclo básico de funcionamiento de una computadora

El ciclo de instrucción (también conocido como ciclo de búsqueda-decodificación-ejecución o simplemente ciclo de búsqueda-ejecución ) es el ciclo que sigue la unidad central de procesamiento (CPU) desde el arranque hasta que se apaga el ordenador para procesar instrucciones. Está compuesto 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-ejecución. Leyenda:

En las CPU más simples, el ciclo de instrucciones se ejecuta de manera secuencial, y cada instrucción se procesa antes de que comience la siguiente. En la mayoría de las CPU modernas, los ciclos de instrucciones se ejecutan en forma concurrente , y a menudo en paralelo , a través de una secuencia de instrucciones : la siguiente instrucción comienza a procesarse antes de que finalice la instrucción anterior, lo que 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 que se va a ejecutar. Durante la etapa de búsqueda, la dirección almacenada en el PC se copia en el registro de direcciones de memoria (MAR) y luego el PC se incrementa para "señalar" la dirección de memoria de la siguiente instrucción que se va 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 memoria (MDR) . El MDR también actúa como un registro bidireccional que contiene datos obtenidos de la memoria o datos que esperan ser almacenados en la memoria (también se lo 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 una base de retención temporal para la instrucción que se acaba de obtener 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 lógica aritmética (ALU) y la unidad de punto flotante (FPU) . La ALU realiza operaciones aritméticas como la suma y la resta, y también la multiplicación mediante la suma repetida y la división mediante la resta repetida. [ dudosodiscutir ] También realiza operaciones lógicas como AND , OR , NOT y desplazamientos 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 búsqueda : la siguiente instrucción se obtiene de la dirección de memoria que está almacenada actualmente en el contador de programa y se almacena en el registro de instrucciones. Al final de la operación de búsqueda, el PC señala la siguiente instrucción que se leerá en el siguiente ciclo.
  2. Etapa de decodificación : durante esta etapa, la instrucción codificada presentada en el registro de instrucciones es interpretada por el decodificador.
    • Determinar la dirección efectiva : En el caso de una instrucción que hace referencia a la memoria, la fase de ejecución deberá tener la dirección de memoria a utilizar. Aunque algunas instrucciones pueden contener directamente la dirección a utilizar, a menudo será necesario desarrollar la dirección efectiva combinando un valor de un campo de la instrucción con el valor guardado en un registro y, en algunas arquitecturas de máquinas, puede haber una variante opcional que requiera un acceso a memoria adicional para obtener la dirección necesaria de la memoria.
  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 registros, pasarlos a la ALU para realizar funciones matemáticas o lógicas sobre ellos y escribir el resultado nuevamente en un registro. Si la ALU está involucrada, envía una señal de condición de regreso a la UC. El resultado generado por la operación se almacena en la memoria principal o se envía a un dispositivo de salida. Según la retroalimentación 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 mitad de camino; la instrucción no tendrá ningún efecto, pero se volverá a ejecutar después de regresar de la interrupción.

Iniciación

El primer ciclo de instrucciones 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). Por lo general, esta dirección apunta a un conjunto de instrucciones en la memoria de solo lectura (ROM), que inicia el proceso de carga (o arranque ) del sistema operativo . [2]

Etapa de búsqueda

El paso de búsqueda es el mismo para cada instrucción:

  1. La CPU envía el contenido del 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 a 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. El PC se incrementa de modo que apunte a la siguiente instrucción. Este paso prepara la CPU para el siguiente ciclo.

La unidad de control obtiene 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 debe ejecutar para que la CPU pueda indicar cuántos operandos necesita recuperar para ejecutar la instrucción. El código de operación obtenido de la memoria se decodifica para los siguientes pasos y se traslada a los registros correspondientes. La decodificación se realiza normalmente mediante decodificadores binarios en la unidad de control de la CPU .

Determinar la dirección efectiva

En este paso se evalúa qué tipo de operación se va a realizar y, si se trata de una operación de memoria, la computadora determina la dirección de memoria efectiva que se utilizará en la siguiente etapa de ejecución. Existen varias formas posibles que una arquitectura de computadora puede especificar para determinar la dirección, generalmente denominadas modos de direccionamiento .

Algunas formas comunes de encontrar la dirección efectiva son:

  • Tomado directamente de un campo de instrucción
  • Tomado de un registro de máquina
  • Agregar un campo de instrucción con un valor de registro de máquina
  • Agregar un campo de instrucción y valores de dos registros de máquina (normalmente una dirección base y un valor de indexación)
  • Modo indirecto : la dirección efectiva se lee desde la memoria en una dirección encontrada por uno de los métodos anteriores

Ejecutar etapa

La CPU envía la instrucción decodificada como un conjunto de señales de control a los componentes informáticos correspondientes. Si la instrucción implica aritmética o lógica, se utiliza la ALU. Esta es la única etapa del ciclo de instrucción que resulta útil desde la perspectiva del usuario final. Todo lo demás es un trabajo adicional necesario para que se lleve a cabo el paso de ejecución.

Véase también

Referencias

  1. ^ Crystal Chen, Greg Novick y Kirk Shimano (2000). "Pipelining" . Consultado el 26 de junio de 2019 .
  2. ^ Bosky Agarwal (2004). "Ciclo de ejecución de búsqueda de instrucciones" (PDF) . Archivado desde el original (PDF) el 11 de junio de 2009. Consultado el 14 de octubre de 2012 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Ciclo_de_instrucción&oldid=1248913400"