La unidad de control es la parte de la unidad central de procesamiento (CPU) de la computadora, que dirige el funcionamiento del procesador. Fue incluido como parte de la Arquitectura Von Neumann por John von Neumann. Es responsabilidad de la Unidad de Control decirle a la memoria de la computadora, la unidad aritmética/lógica y los dispositivos de entrada y salida cómo responder a las instrucciones que se han enviado al procesador. Trae instrucciones internas de los programas desde la memoria principal al registro de instrucciones del procesador, y en base al contenido de este registro, la unidad de control genera una señal de control que supervisa la ejecución de estas instrucciones.
Una unidad de control funciona recibiendo información de entrada que convierte en señales de control, que luego se envían al procesador central. El procesador de la computadora luego le dice al hardware adjunto qué operaciones debe realizar. Las funciones que realiza una unidad de control dependen del tipo de CPU porque la arquitectura de la CPU varía de un fabricante a otro. Ejemplos de dispositivos que requieren una CU son:
- Unidades de procesamiento de control (CPU)
- Unidades de procesamiento de gráficos (GPU)
Funciones de la Unidad de Control –
- Coordina la secuencia de movimientos de datos hacia, desde y entre las muchas subunidades de un procesador.
- Interpreta instrucciones.
- Controla el flujo de datos dentro del procesador.
- Recibe instrucciones o comandos externos a los que convierte en secuencia de señales de control.
- Controla muchas unidades de ejecución (es decir, ALU, búferes de datos y registros) contenidas dentro de una CPU.
- También maneja múltiples tareas, como buscar, decodificar, manejar la ejecución y almacenar resultados.
Tipos de unidad de control:
hay dos tipos de unidades de control: unidad de control cableada y unidad de control microprogramable.
- Unidad de control cableada:
en la unidad de control cableada, las señales de control que son importantes para el control de ejecución de instrucciones son generadas por circuitos lógicos de hardware especialmente diseñados, en los que no podemos modificar el método de generación de señales sin cambios físicos en la estructura del circuito. El código de operación de una instrucción contiene los datos básicos para la generación de señales de control. En el decodificador de instrucciones, se decodifica el código de operación. El decodificador de instrucciones constituye un conjunto de muchos decodificadores que decodifican diferentes campos del código de operación de instrucciones.Como resultado, pocas líneas de salida que salen del decodificador de instrucciones obtienen valores de señal activos. Estas líneas de salida están conectadas a las entradas de la array que genera señales de control para las unidades de ejecución de la computadora. Esta array implementa combinaciones lógicas de las señales decodificadas del código de operación de instrucción con las salidas de la array que genera señales que representan estados consecutivos de la unidad de control y con señales provenientes del exterior del procesador, por ejemplo, señales de interrupción. Las arrays se construyen de manera similar a las arrays lógicas programables.
Las señales de control para la ejecución de una instrucción deben generarse no en un solo punto de tiempo sino durante todo el intervalo de tiempo que corresponde al ciclo de ejecución de la instrucción. Siguiendo la estructura de este ciclo, en la unidad de control se organiza la adecuada secuencia de estados internos.
Varias señales generadas por la array generadora de señales de control se envían de regreso a las entradas de la siguiente array generadora de estados de control. Esta array combina estas señales con las señales de temporización, que son generadas por la unidad de temporización en base a los patrones rectangulares que suele suministrar el generador de cuarzo. Cuando llega una nueva instrucción a la unidad de control, la unidad de control se encuentra en el estado inicial de obtención de nuevas instrucciones. La decodificación de instrucciones permite que la unidad de control ingrese al primer estado relacionado con la ejecución de la nueva instrucción, que dura mientras las señales de tiempo y otras señales de entrada como banderas e información de estado de la computadora permanezcan inalteradas. Un cambio de cualquiera de las señales mencionadas anteriormente estimula el cambio de estado de la unidad de control.
Esto provoca que se genere una nueva entrada respectiva para la array generadora de señales de control. Cuando aparece una señal externa (p. ej., una interrupción), la unidad de control entra en el siguiente estado de control que es el estado relacionado con la reacción a esta señal externa (p. ej., procesamiento de interrupción). Los valores de banderas y variables de estado de la computadora se utilizan para seleccionar estados adecuados para el ciclo de ejecución de instrucciones.
Los últimos estados del ciclo son estados de control que comienzan a buscar la siguiente instrucción del programa: enviar el contenido del contador del programa al registro del búfer de direcciones de la memoria principal y, a continuación, leer la palabra de instrucción al registro de instrucciones de la computadora. Cuando la instrucción en curso es la instrucción de parada que finaliza la ejecución del programa, la unidad de control entra en un estado de sistema operativo, en el que espera la próxima directiva del usuario.
- Unidad de control microprogramable:
la diferencia fundamental entre estas estructuras de unidad y la estructura de la unidad de control cableada es la existencia del almacén de control que se utiliza para almacenar palabras que contienen señales de control codificadas obligatorias para la ejecución de instrucciones.En las unidades de control microprogramadas, las palabras de instrucción subsiguientes se obtienen en el registro de instrucciones de manera normal. Sin embargo, el código de operación de cada instrucción no se decodifica directamente para permitir la generación inmediata de señales de control, sino que comprende la dirección inicial de un microprograma contenido en el almacén de control.
- Con un almacén de control de un solo nivel:
en este caso, el código de operación de la instrucción del registro de instrucciones se envía al registro de dirección del almacén de control. Basándose en esta dirección, la primera microinstrucción de un microprograma que interpreta la ejecución de esta instrucción se lee en el registro de microinstrucciones. Esta microinstrucción contiene en su parte de operación señales de control codificadas, normalmente como pocos campos de bits. En un conjunto de decodificadores de campos de microinstrucciones, los campos se decodifican. La microinstrucción también contiene la dirección de la siguiente microinstrucción del microprograma de instrucción dado y un campo de control utilizado para controlar las actividades del generador de direcciones de la microinstrucción.El último campo mencionado decide el modo de direccionamiento (operación de direccionamiento) que se aplicará a la dirección incrustada en la microinstrucción en curso. En las microinstrucciones junto con el modo de direccionamiento condicional, esta dirección se refina utilizando los indicadores de condición del procesador que representan el estado de los cálculos en el programa actual. La última microinstrucción en la instrucción del microprograma dado es la microinstrucción que trae la siguiente instrucción de la memoria principal al registro de instrucciones.
- Con almacén de control de dos niveles:
En este, en una unidad de control con almacén de control de dos niveles, además de la memoria de control para microinstrucciones, se incluye una memoria de nanoinstrucciones. En tal unidad de control, las microinstrucciones no contienen señales de control codificadas. La parte de operación de las microinstrucciones contiene la dirección de la palabra en la memoria de nanoinstrucciones, que contiene señales de control codificadas. La memoria de nanoinstrucciones contiene todas las combinaciones de señales de control que aparecen en los microprogramas que interpretan el conjunto completo de instrucciones de una computadora determinada, escritas una vez en forma de nanoinstrucciones.De esta forma, se evita el almacenamiento innecesario de las mismas partes de operación de las microinstrucciones. En este caso, la palabra de la microinstrucción puede ser mucho más corta que con el almacenamiento de control de un solo nivel. Da un tamaño mucho más pequeño en bits de la memoria de microinstrucciones y, como resultado, un tamaño mucho más pequeño de toda la memoria de control. La memoria de microinstrucciones contiene el control para la selección de microinstrucciones consecutivas, mientras que esas señales de control se generan a partir de nanoinstrucciones. En las nanoinstrucciones, las señales de control se codifican con frecuencia mediante el método de 1 bit/1 señal que elimina la decodificación.
- Con un almacén de control de un solo nivel:
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