Ciclo de instrucción

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

El ciclo de instrucciones (también conocido como ciclo de ejecución o ciclo de fetch-decode-execute) es el ciclo que sigue la unidad central de procesamiento (CPU) desde el arranque hasta que la computadora se apaga para procesar las instrucciones.. Se compone de tres etapas principales: la etapa de obtención, la etapa de decodificación y la etapa de ejecución.

En las CPU más simples, el ciclo de instrucción 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 simultáneamente y, a menudo, en paralelo, a través de un canal 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.

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 próxima instrucción que se ejecutará. Luego, la CPU toma la instrucción en la dirección de memoria descrita por 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 extraídos de la memoria o datos que esperan ser almacenados en la memoria (debido a esto, también se lo conoce como registro de búfer de memoria (MBR)). Eventualmente, la instrucción en el MDR se copia en el registro de instrucción actual (CIR), que actúa como un terreno de espera temporal para la instrucción que se acaba de recuperar 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 sumas y restas y también multiplicaciones mediante sumas repetidas y divisiones mediante restas repetidas. También realiza operaciones lógicas como AND, OR, NOT y también 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 obtención: la siguiente instrucción se obtiene 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 búsqueda, la PC apunta a la siguiente instrucción que se leerá en el próximo 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 cualquier dato requerido se obtiene de la memoria principal para ser procesado y luego colocado 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 una instrucción de registro, la operación se realiza durante el pulso de 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 registros, pasándolos a la ALU para realizar 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. Ciclo de repetición

Además, en la mayoría de los procesadores pueden ocurrir 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 en el medio, la instrucción no tendrá 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). 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.

Obtener etapa

El paso de búsqueda 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 más tarde, la CPU copia los datos del MDR al registro de instrucciones para la decodificación de instrucciones.
  5. El PC se incrementa para que apunte a la siguiente instrucción. Este paso prepara la CPU para el próximo 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 que la CPU determine qué instrucción se debe realizar para que la CPU pueda decir cuántos operandos necesita buscar para ejecutar 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 la realizan decodificadores binarios en la unidad de control de la CPU.

Lectura de 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:

  • Operación de memoria directa: no se hace nada.
  • Operación de memoria indirecta: la dirección efectiva se lee de la memoria.

Si es 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 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 es útil desde la perspectiva del usuario final. Todo lo demás es necesario para que el paso de ejecución suceda.

Contenido relacionado

Contador de programa

Cifrado de transposición

Sistema de numeración ternario

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save