Este artículo necesita citas adicionales para su verificación . ( octubre de 2009 ) |
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 la computadora se apaga para procesar las instrucciones . Se compone de tres etapas principales: la etapa de recuperación, la etapa de decodificación y la etapa de ejecución.
En CPU más simples, el ciclo de instrucción se ejecuta secuencialmente, cada instrucción se procesa antes de que se inicie la siguiente. En la mayoría de las CPU modernas, los ciclos de instrucción 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 que es posible porque el ciclo se divide en pasos separados. [1]
El contador de programa (PC) es un registro especial que contiene la dirección de memoria de la siguiente instrucción que se 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 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 (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 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 aritmética lógica (ALU) y la unidad de coma flotante (FPU) . La ALU realiza operaciones aritméticas como sumas y restas y también multiplicaciones a través de sumas y divisiones repetidas a través de restas repetidas. [ dudoso ] 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.
La CPU de cada computadora puede tener diferentes ciclos basados en diferentes conjuntos de instrucciones, pero será similar al siguiente ciclo:
El ciclo comienza tan pronto como se aplica energía al sistema, con un valor de PC inicial 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 solo lectura (ROM), que inicia el proceso de carga (o arranque ) del sistema operativo . [2]
El paso de búsqueda es el mismo para cada instrucción:
La unidad de control obtiene la dirección de la instrucción de la unidad de memoria .
El proceso de decodificación permite a la CPU determinar qué instrucción se va a 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 se lleva a cabo típicamente por los decodificadores binarios en la CPU 's Unidad de Control .
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 es una instrucción de E / S o de registro, la computadora verifica su tipo y ejecuta la instrucción.
Es posible que sea necesario reescribir esta sección para cumplir con los estándares de calidad de Wikipedia . ( Junio de 2019 ) |
La CPU envía la instrucción decodificada como un conjunto de señales de control a los componentes de la computadora correspondientes. 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 necesario para realizar el paso de ejecución.