Máquina de control , dispositivo de control del procesador (CU) ( unidad de control ing. , CU ) es un bloque, dispositivo, componente del hardware de la computadora. Es un autómata discreto finito . Estructuralmente, el dispositivo de control consta de: un decodificador de comando (operación) , un registro de comando, un nodo para generar (calcular) la dirección de ejecución actual , un contador de comando .
Las unidades de control de los procesadores modernos suelen implementarse en forma de un autómata de firmware y, en este caso, la unidad de control incluye una ROM de microinstrucciones .
CU está diseñado para generar señales de control para todos los bloques de la máquina [1] .
En la arquitectura de von Neumann , es una parte integral de la unidad central de procesamiento [2] .
Cuando se ejecuta el programa, la unidad de control recibe la siguiente instrucción o comando de programa en la entrada , que ingresa al registro de instrucciones. Estructuralmente, el registro de instrucciones consta de dos partes: una parte almacena el código de operación (COP), la otra parte contiene las direcciones de los operandos involucrados en el control. El código de operación ingresa al decodificador de operación, que inicia la secuencia de cambios de estado de la máquina de estado de CU, en las máquinas modernas inicia algún firmware almacenado en la ROM de firmware. La esencia del trabajo de la unidad de control es la configuración secuencial de combinaciones de señales de control en las líneas de control.
Durante la transición de un estado interno al siguiente estado de la máquina de estado de la CU, el estado del registro de signos del resultado de la ejecución del comando anterior ( el registro de bandera ), el estado de las entradas de control (por ejemplo, las señales de preparación de los dispositivos periféricos, las líneas de interrupción de hardware también se tienen en cuenta, y la CU emite secuencias de pulsos de control (transferencias entre registros, direccionamiento y señales de transferencia de datos entre casi todos los bloques de computadora - unidad lógica aritmética ( ALU ), subsistema de entrada/salida, RAM, y otros).
Casi siempre, para la ejecución de un comando/instrucción, la CU emite una secuencia de varios pulsos de control o sus combinaciones en una secuencia determinada por el código del comando/instrucción. Después de completar la emisión de todos los pulsos de control para la ejecución del comando actual, la unidad de control lee el código del siguiente comando, etc.
La CU suele sincronizarse mediante pulsos de reloj externos generados por el generador de pulsos de reloj (GTI), es decir, la transición del estado al estado de la máquina de estado de la CU se produce en cada pulso de reloj, en algunas CU, para aumentar la velocidad. , los pulsos de control se generan tanto en el flanco ascendente del pulso como en el descendente .
Este comando se ejecuta en 2-3 ciclos de reloj. En el primer ciclo, la CU envía el estado del contador de programa (Program Counter - PC) al bus de direcciones para seleccionar el siguiente código de comando y un pulso a la línea de lectura de RAM, mientras analiza el bit de RAM lista. Cuando la RAM está lista, el código de comando se transfiere al registro del comando actual. De lo contrario, la CU ejecuta los ciclos de espera sin cambiar el estado de las líneas de control/dirección.
La ejecución real de este comando se realiza en dos ciclos de pulsos de reloj, si el comando se busca y decodifica en un ciclo. En el primer ciclo, la CU decodifica el código de registro de comando. En el segundo ciclo, el estado del registro fuente se envía al bus de datos común interno con la ayuda de teclas y, al mismo tiempo, la entrada del registro receptor se conecta mediante otras teclas al mismo bus de datos interno, como un resultado de lo cual el registro receptor toma el estado del registro fuente. A continuación, la CU abre las llaves y procede a la ejecución del siguiente comando.
Escribir un registro de procesador interno en la RAM en la dirección del registro de direcciones.Obtener una instrucción de la RAM es similar. Se necesitan varios ciclos para ejecutar este comando. Como siempre, en el primer ciclo, se lee y decodifica el código de instrucción. Luego , el estado del registro de direcciones se envía al bus de direcciones externo con teclas controladas desde la CU y, al mismo tiempo, el estado del registro de origen se envía al bus de datos externo, se envía una señal de escritura al línea de control de escritura en memoria. La CU verifica la señal de disponibilidad de la memoria, si la RAM está lista, la CU elimina todas las señales de control y procede a leer el siguiente comando; de lo contrario, ejecuta ciclos de espera vacíos.
Ejecución de una instrucción de salto condicional.Además de las acciones similares descritas, la CU analiza adicionalmente el registro de estado interno del procesador, el resultado de la ejecución del comando anterior. Por ejemplo, si el resultado de la instrucción anterior de suma o resta fue 0, entonces se escribe un signo cero en el bit de registro de estado del procesador (bandera). Al ejecutar un comando de salto condicional (en este ejemplo, el comando es jump if zero , en lenguaje ensamblador, el código mnemotécnico del comando generalmente se escribe como JZ <dirección de salto> ) analiza este indicador y, dependiendo de su estado, carga la dirección especificado en el comando en la transición del contador del programa, o si la condición no se cumple, carga la dirección de la siguiente instrucción en orden en el programa en el contador del programa.
Los ejemplos descritos están simplificados, en los procesadores modernos se esfuerzan por realizar tantas acciones como sea posible en un ciclo de reloj, a veces las acciones se realizan en la parte delantera y baja de la señal del reloj. Cuando un comando ocupa varias palabras en la memoria del programa, la unidad de control lee secuencialmente todas las palabras del código de comando y, solo después de eso, procede a su ejecución.
En las primeras computadoras, la CU se diseñaba y ejecutaba en forma de " lógica dura ": circuitos lógicos combinacionales , flip- flops , registros, decodificadores .
En 1951, M. V. Wilks propuso diseñar un dispositivo de control en forma de autómata de microprograma, es decir, generar secuencias de pulsos de control utilizando un autómata de microprograma controlado por microprogramas consistentes en microinstrucciones almacenadas en una memoria de microprograma permanente o reprogramable (reprogramable) de el procesador. Este enfoque reduce significativamente los costos de mano de obra para diseñar la máquina de estado CU y, además, hace que sea relativamente fácil modificarla. Con el desarrollo de la tecnología de semiconductores y la aparición en el mercado de una gran cantidad de controladores programables, este enfoque se ha vuelto dominante al crear CU.
Sin embargo, en los últimos años, para algunos sistemas APCS, ha habido una tendencia a volver (a un nuevo nivel tecnológico) al uso de sistemas basados en lógica dura, en particular porque tienen un alto grado de protección contra ataques informáticos. .
Tecnologías de procesadores digitales | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arquitectura | |||||||||
Set de instrucciones arquitectura | |||||||||
palabra maquina | |||||||||
Paralelismo |
| ||||||||
Implementaciones | |||||||||
Componentes | |||||||||
Administración de energía |