Cómo funciona específicamente la unidad de control (CU)

0

Soy un desarrollador de software que ahora está interesado en la implementación electrónica de computadoras.

Cuando pienso en computadoras, la cosa que realiza la acción es el "procesador". Pero el procesador es técnicamente la CPU . Por lo tanto, mirando hacia dentro, lo que parece estar haciendo el procesamiento real es la Unidad de control (CU). Resulta que la GPU también tiene un CU (s).

  

La CU recibe instrucciones o comandos externos que convierte en una secuencia de señales de control que la CU aplica a la ruta de datos para implementar una secuencia de operaciones de nivel de transferencia de registros ...   Las unidades de control cableadas se implementan mediante el uso de unidades lógicas combinadas, con un número finito de puertas que pueden generar resultados específicos según las instrucciones que se usaron para invocar esas respuestas. Las unidades de control cableadas son generalmente más rápidas que los diseños microprogramados ...   El algoritmo para la unidad de control de microprogramas generalmente se especifica mediante la descripción del diagrama de flujo.

Se dice que la unidad de control es lo que realmente lee las instrucciones de la memoria y las ejecuta. Pero me pregunto cómo funciona exactamente esto. Tal vez no específicamente los circuitos porque eso parece altamente dependiente. Pero a un nivel alto, ¿cuál es la "chispa" que en realidad se está moviendo electrónicamente? Que tipos de circuitos hay involucrados. Mientras que el almacenamiento en disco tiene una descripción muy detallada (a continuación), las CU no (en Wikipedia).

Mis preguntas son:

  1. En una computadora moderna como la MacBook Pro, si la CU está cableada o microprograma .
  2. ¿Cuál es la chispa o pieza de electricidad real que está haciendo el "procesamiento", es decir, "moviéndose por la memoria"? Cómo realmente "recupera de la memoria" y "almacena en la memoria" y "recupera una instrucción" y "ejecuta una instrucción". Cómo "lee un código de operación", etc. Se pregunta qué está pasando realmente a nivel electrónico. No es necesario que conozca cada pieza en detalle si es demasiado complicada, solo a un alto nivel de la electrónica involucrada de cualquiera de ellas.

Si bien flip-flops tienen una descripción detallada para que puedas entender cómo realmente un " el bit "está almacenado, falta la CU, por lo que no puedo decir realmente cómo se está" ejecutando "el programa. Me gustaría poder explicar cómo funciona la computadora, a un nivel más profundo que el ciclo de instrucción , hasta la electrónica. .

Demo de almacenamiento en disco magnético de la descripción detallada, para mostrarle cómo funciona.

  

... Debido a la naturaleza policristalina del material magnético, cada una de estas regiones magnéticas está compuesta por unos pocos cientos de granos magnéticos. Los granos magnéticos tienen típicamente un tamaño de 10 nm y cada uno forma un único dominio magnético verdadero. Cada región magnética en total forma un dipolo magnético que genera un campo magnético ...

    
pregunta Lance Pollard

4 respuestas

2

Si entiendes cómo funciona un flip-flop (FF), el resto puede ser más comprensible.

Como indica la Wikipedia, una CU, o "unidad de control", es "circuito digital contenido dentro del procesador que coordina la secuencia de movimientos de datos dentro, fuera y entre las muchas subunidades de un procesador " . En otras palabras, es un secuenciador alámbrico, una máquina que se mueve de un estado a otro a medida que avanza el reloj.

La CU es una colección de FFs con lógica combinatoria envuelta alrededor, que forma la llamada "máquina de estado finito". Un conjunto de FFs define los estados de este secuenciador, cada valor binario define un estado. Los diferentes estados de CU dan como resultado diferentes acciones para las "subunidades" asociadas, y definen el siguiente estado.

Tan pronto como finaliza el reinicio del hardware externo, el secuenciador comienza a moverse a lo largo de una secuencia predefinida con cada tic de reloj. En términos generales, el primer estado es generar una señal al controlador de memoria para "buscar" la primera instrucción desde una ubicación de memoria predefinida. Esta memoria debe contener una secuencia de código significativa precargada allí de alguna manera.

Luego, la CU espera a que el controlador de memoria (una de sus "subunidades") entregue la primera instrucción. La instrucción se obtiene en otro conjunto de FFs llamado "registro", y se alimenta en otra "subunidad" llamada "decodificador de instrucciones". Dependiendo de los resultados de la decodificación, la CU continúa con las acciones apropiadas moviéndose al "estado siguiente" apropiado, como indicando a la misma unidad de memoria que obtenga otro argumento de la memoria, o almacene el resultado.

Lo anterior es solo una idea básica. En realidad todo es mucho más complicado. Sin embargo, Internet debería tener muchas animaciones para el comportamiento básico de la CPU, como este video . Este enlace puede darle una mejor idea de cómo funciona el secuenciador básico.

Con respecto a si una CU está "cableada" o "microcodificada", los detalles de la implementación del secuenciador son intrascendentes. Normalmente, el núcleo de CU es "cableado", pero ciertas funciones pueden controlarse mediante "microcódigo" y pueden modificarse mediante "parche de CPU".

    
respondido por el Ale..chenski
4

Como desarrollador de software, usted comprende y aplica la abstracción y la encapsulación. Una unidad de control (CU) es solo una abstracción para manejar la ejecución secuencial y tomar decisiones. Usted sabe que Javascript está completamente emulado por el software y tiene un software CU. El Javascript CU recorre una serie de instrucciones (es decir, su programa) y las ejecuta. El Javascript CU tiene un concepto de "instrucción actual", que es solo un índice en el conjunto de instrucciones. De manera equivalente, una CU eléctrica tiene un registro de puntero de instrucción (un grupo de flip-flops) que almacena la dirección de la siguiente instrucción. El Javascript CU toma decisiones basadas en variables. Una CU electrónica utiliza un número fijo de registros para sus variables.

Los valores de registro cambian con cada ciclo de reloj. Las computadoras de todos los días están sincronizadas y todo cambia con el reloj: se recupera la memoria, se cambia el puntero de instrucción, etc. Para tomar una decisión, la CU elige la siguiente dirección y esa dirección se carga en el puntero de instrucción para el siguiente reloj. ciclo. El mecanismo electrónico de elección puede ser tan simple como una única puerta NAND . Y ahora estamos bajando a nivel electrónico. Se puede hacer mucho con las puertas NAND. Curiosamente, puedes construir una computadora completa con ellos.

Un ejemplo de una CU simple es un reloj de alarma. Un registro es para la hora de la alarma. Un registro es un contador para la hora actual. El reloj incrementa la hora actual. Usamos puertas lógicas para comparar los registros. Una puerta AND es & & amp ;. Una puerta OR es ||. Un inversor es "!". Simplemente escriba la ecuación lógica usted mismo y básicamente ha conectado la comparación. Cuando la comparación es 1, suena la alarma. Este CU muy simple tenía que tomar una decisión y los componentes electrónicos necesarios coincidían exactamente con lo que podría programar.

Lo fascinante del software es que todo se puede convertir en hardware. Un gato de red neuronal puede ser software o hardware. En este punto tu propia curiosidad debería ser tu guía. Siéntase libre de buscar cualquier concepto que pueda pensar y busque "circuito para X". Pruebe esto ahora. Busque "circuito para comparar". No necesitas un libro.

NOTA: Aunque NAND está computacionalmente completa, para mayor claridad, introduje AND gates, OR gates e inversores. También puede utilizar puertas NOR. Cuando aprendí esto, desbloqueó todo.

    
respondido por el OyaMist
1

Hay una gran cantidad de información detallada sobre el funcionamiento de las CPU, desde los libros clásicos de Henessey y Patterson hasta el bricolaje del anillo web de la CPU casera.

Para su comprensión, probablemente debería estudiar máquinas de estados (finitos).

    
respondido por el Wouter van Ooijen
1

La clave para que todas las CPU y MPU funcionen correctamente es un reloj de 4 fases derivado del reloj maestro. Crea un paso de 4 fases que se repite: Fetch, Decode, Execute, y Store / Write-back. Esta secuencia es fundamental para la organización e implementación de instrucciones como microcódigo.

Los modos de dirección extendida pueden hacer que se ejecute dos veces para completar una sola instrucción, y algunos tienen estados de "espera" para leer o escribir en dispositivos lentos en la pizarra.

Durante la "búsqueda", se realiza una comprobación de interrupciones o un comando de reinicio. Si es así, la siguiente instrucción se guarda en una pila, o todos los registros y la pila se borran.

La decodificación es donde el caucho se encuentra con la carretera. La instrucción de 16/24 o 40 bits está decodificada por un firmware que no se puede editar. Los descodifica en 100 o más bits de control para dirigir los datos hacia / desde la ALU y la unidad de dirección, y las lecturas y escrituras externas. Esa sería la parte "Ejecutar".

La tienda también actualiza el registro de estado con los resultados de ALU y escribe los datos de nuevo en la ALU para las operaciones matemáticas continuas.

Ese es el cuento. Hay muchos libros antiguos sobre el "microcódigo" y sobre cómo se utiliza.

    
respondido por el Sparky256

Lea otras preguntas en las etiquetas