¿Cómo funciona todo el procesamiento realizado por un chip de computadora?

Un ‘chip de computadora‘ o más precisamente: la CPU es la hazaña más complicada de cableado que los humanos han diseñado y construido. Pero cómo funciona no es tan complicado, cuando conoces los conceptos básicos.

Una CPU simple está hecha de los siguientes componentes.

  1. Una unidad de procesamiento de datos llamada Unidad Aritmética y Lógica (ALU).
  2. Un contador de programa (PC). Almacena la dirección de la siguiente instrucción / datos a leer / escribir desde / t la memoria.
  3. Dos o más registros (uno se llama acumulador, otros pueden ser de aplicación específica o de propósito general). Estos registros contienen los datos durante el procesamiento.
  4. Bus de dirección (conjunto de cables que se conectan a la memoria o E / S para enviar la dirección de la instrucción / datos que se leen / escriben).
  5. Bus de datos (conjunto de cables que se conectan a la memoria o E / S para leer instrucciones o leer / escribir datos).
  6. Un decodificador de instrucciones (Un circuito inteligente que convierte una instrucción en señales de control apropiadas en secuencia que activan diferentes componentes del chip para cumplir la tarea específica para la que está destinada la instrucción).
  7. Una alimentación de reloj: una entrada de señal que acepta pulsos de temporización regulares llamados reloj. La señal de reloj sincroniza el funcionamiento de diferentes componentes en una CPU.
  8. I / O Bus: para interactuar con un dispositivo externo como otra CPU o un dispositivo de comunicación.
  9. Bus de control: para enviar y recibir señales entre la CPU y los dispositivos externos. Incluye interrumpir, retener, leer, escribir, etc.

Para que una CPU funcione, también necesita los siguientes elementos.

  1. Instrucción: una secuencia bien definida de dígitos binarios que, cuando se alimenta a un decodificador de instrucciones, da como resultado una secuencia significativa de operaciones como leer, escribir, sumar, restar, etc. Para facilitar la comprensión humana, las instrucciones binarias generalmente se representan usando anotaciones hexadecimales o cortas Inglés como palabras llamadas ‘mnemotecnia’.
  2. Programas: un conjunto de instrucciones que, cuando se ejecutan en secuencia, logran una tarea significativa (por ejemplo, la suma de 2 números).
  3. Memoria: Un dispositivo de almacenamiento de datos binarios estructurado que tiene una dirección para cada unidad de almacenamiento de datos (celdas) y puede leer o escribir datos desde / hacia cada una de esas celdas a través del bus de datos enviando la dirección adecuada de esa celda a través del bus de direcciones.

Veamos cómo estos componentes se unen como un reloj para hacer lo que se supone que debe hacer una CPU. (Diga AGREGAR dos números)

Un programa genérico para sumar 2 números (números 7 y 2) es el siguiente. Los números (7) y (2) que se agregarán se almacenan en las direcciones X e Y, respectivamente, en la memoria. Necesitamos que la Suma (9) se almacene en la Dirección Z.

  1. Leer para registrar A, desde la dirección X
  2. Leer para registrar B, desde la dirección Y
  3. AGREGAR B a A (resultado almacenado en A)
  4. Escribir desde el registro A, a la dirección Z

¿Cómo se ejecuta este programa en nuestra CPU simple? Veamos a continuación.

En el primer pulso de reloj después del encendido, la CPU borra todos sus registros y el contador del programa a sus valores predeterminados. El contador de programas ahora apunta a la dirección 0, que es la ubicación inicial de la memoria.

Instrucción 1 – ‘ Leer para registrar A desde la dirección X’ tiene 2 partes: Instrucción ‘ Leer para registrar A’ y una ‘dirección X’ de datos. La parte de instrucción se almacena en la memoria en la Dirección 0 y la dirección de datos X se almacena en la Dirección 1.

En el segundo ciclo de reloj, las instrucciones anteriores se leen desde la Dirección 0 al Registro de instrucciones y luego se envían al Decodificador de instrucciones (ID). ID decodifica la Instrucción 1 y genera las siguientes señales de control en secuencia.

  1. Incremente la PC en 1 (la PC ahora apunta a la Dirección 1).
  2. Conecte el bus de datos a la PC (la memoria ahora puede alimentar datos a la PC)
  3. Inicie una señal de lectura en la memoria (la memoria coloca datos: dirección X desde la dirección 1 al bus de datos)
  4. Mueva el contenido de la PC a un registro temporal (la dirección 1 ahora está en el registro temporal). La PC está despejada.
  5. Envíe una señal de escritura a la PC (la PC se actualiza con la dirección X desde el bus de datos. La dirección X ahora está disponible en el bus de direcciones). La señal de lectura a la memoria se borra.
  6. Conecte el bus de datos al registro A.
  7. Enviar una señal de lectura a la memoria (la memoria alimenta los datos (7) desde la dirección X al bus de datos)
  8. Enviar una señal de escritura a reg A. (7) desde el bus de datos escribe en el registro A. La señal de lectura a la memoria se borra.
  9. Borre la PC y mueva la Dirección 1 de temp reg a la PC. (La PC ahora lee la Dirección 1)
  10. Incremente la PC en 1 (la PC ahora lee la Dirección 2, que es la dirección de memoria para la instrucción 2)

Los mismos procesos se repiten para la instrucción 2 también. Ahora el registro B tiene datos (2) y la PC tiene la dirección 4, que es la dirección para la instrucción ADD. Se obtiene y ejecuta como se muestra a continuación.

  1. Lea las instrucciones de la Dirección 4 (Agregar instrucciones).
  2. Restablezca los pestillos de entrada y salida de ALU a 0.
  3. Conecte la salida de reg A a la entrada 1 de ALU y la salida de ALU a la entrada de reg A
  4. Conecte la salida de reg B a la entrada 2 de ALU.
  5. Habilite los pestillos de entrada de ALU. Los números (7) y (2) se alimentan a ALU y la suma (9) aparece en el enganche de salida de ALU.
  6. borre el contenido del registro A. habilite el enganche de salida de ALU.
  7. Habilite la señal de escritura para el registro A. (el registro A se escribe con la suma (9)).
  8. Borra el registro B y desconecta las entradas de ALU de los registros A y B. Desconecta la salida de ALU del registro A.
  9. Incremente la PC (Dirección 4 -> Dirección 5).

Ahora la dirección 5 tiene instrucciones: escribir desde el registro A a la memoria . La dirección 6 tiene la dirección de datos Z en la que se escribe la suma. Al buscar la instrucción de escritura, el contenido del registro A (suma 9) se escribe en la dirección de memoria Z de una manera similar a la operación de lectura.

Este es el método básico de operación de una CPU. Se pierden muchos pasos para mantener la respuesta breve. Pero espero que esta versión ayude a comprender el funcionamiento básico de la CPU.

Nota:

La PC y otros registros están hechos de flip-flops, uno para cada bit. Las chancletas pueden almacenar bits y se configuran / restablecen mediante señales a sus entradas de configuración / restablecimiento.

Las chanclas y ALU están compuestas por compuertas lógicas como compuertas AND / OR / NOT.

Las puertas lógicas, los multiplexores y los pestillos están formados por un par de transistores de efecto de campo semiconductores de óxido de metal (CMOS-FET) complementarios (tipo P y tipo N).

Un transistor en la CPU tiene capas conductoras separadas por capas de óxido dieléctrico (aislante) que efectivamente los hacen pequeños condensadores. Por lo tanto, lo más rápido que esos transistores pueden encenderse y apagarse depende de qué tan baja sea la capacitancia. Esta es una de las muchas razones que limitan la velocidad de reloj de las CPU a lo que vemos hoy.