¿Cómo procesan la información las CPU ALU?

Las ALU de la mayoría de las CPU realizan operaciones matemáticas y lógicas básicas. Un término más genérico sería unidad funcional. Estos pueden ser ALU, unidades de división dedicadas, incluso unidades FFT dedicadas. Hay muchas cosas que suceden en un procesador de computadora moderno, pero me atendré a la pregunta en cuestión. ¿Cómo estas unidades funcionales “procesan” la información? Lo que voy a asumir como “información de proceso” significa es cómo la ALU obtiene los datos que necesita para operar, qué hace con ella y qué hace con el resultado. La operación exacta de esto se conoce como la ruta de datos.
Esta es una ruta de datos multiciclo simple y debería funcionar bien para el propósito de esta explicación. Esta es una implementación muy primitiva. Los procesadores modernos canalizan este diseño con reenvío de datos, lavado, reordenamiento de buffers y muchas más modificaciones, pero no voy a entrar en eso en esta publicación.

Hay varios componentes que son importantes para saber qué existen en la ruta de datos:

  • El contador del programa: realiza un seguimiento de dónde se encuentra el programa en su estado actual de ejecución
  • El archivo de registro: contiene un conjunto de registros en los que el procesador puede almacenar valores
  • ALU
  • Controlador de memoria: acceso a la memoria principal. La mayoría de los procesadores tienen cachés intermedios para acelerar esto.
  • Unidad de control: hace lo que dice que hace, controla todo el procesador.

El contador del programa (PC) al comienzo de la ruta de datos contiene la dirección de la instrucción. Una instrucción es una operación que el procesador puede entender. Esto está en lenguaje ensamblador. Los diferentes procesadores tienen diferentes lenguajes de ensamblaje (ARM – teléfonos celulares vs x86 – sus computadoras). La instrucción luego se carga desde la memoria de instrucciones (generalmente una pequeña memoria caché conocida como la memoria caché de instrucciones que se llena desde la memoria principal). Esto se decodifica (en esta ruta de datos, los cuatro cables contienen diferentes partes de la instrucción; los procesadores modernos tienen una implementación mucho más complicada de esto).

Ahora supongamos que un programador ha escrito un programa que hace esto:

int a, b, c;
… ..
……
c = a + b;

Ahora, el procesador no sabe qué son a, b, c. Todo lo que realmente ve son los registros. Tiene que cargar a, b, c de la memoria en el archivo de registro. Hace esto usando el controlador de memoria. Observe la ruta desde la unidad de control de memoria de regreso al archivo de registro. Asignará un registro para cada uno de estos valores. Si observa la ALU, puede tener dos entradas (Ignorar la estructura MUX). La unidad de control selecciona dos de los registros del archivo de registro y luego la ALU realiza la adición real. Si sigue la salida de la ALU, puede ver que hay una ruta de regreso al archivo de registro. Esto se utiliza para volver a escribir el valor de c en el registro en el archivo de registro que contiene el valor de c. Eventualmente, necesitará volver a escribir c en la memoria. Esto lo hace el controlador de memoria. Así es como fluyen los datos durante la ejecución de una instrucción.

Puedo elaborar un poco más si lo desea, si puede especificar con más detalle cuál es exactamente su duda.
——————————————
Aclaraciones según el comentario:
Las palabras son básicamente una unidad de cálculo. Los diferentes procesadores tienen palabras de diferentes tamaños. Debes haber oído hablar de procesadores de 32 bits y procesadores de 64 bits, ¿verdad? Las CPU actuales usan procesadores de 64 bits, mientras que la mayoría de los dispositivos móviles (excluyendo el iPhone 5s) usan un procesador de 32 bits. Este es el tamaño de la palabra. También hay procesadores de 8 bits y procesadores de 16 bits, aunque no los vería en dispositivos informáticos de uso general como computadoras, teléfonos o tabletas, pero se usan en muchas aplicaciones integradas. Cada bit es un 0 o un 1 y una palabra contiene un cierto número de ellos. Tomemos el ejemplo del procesador de 32 bits. Cada palabra es de 32 bits. Todas las operaciones de la CPU utilizan 32 bits. Eso significa que cada adición que realiza la ALU toma dos palabras de 32 bits y escupe una palabra de 32 bits. Si toma el caso de un entero con signo, sería un máximo de 2147483647 y un mínimo de -2147483648. Sin embargo, la mayoría de estas CPU admiten operaciones que permiten, por ejemplo, la adición de 64 bits también. Esto puede tomar más ciclos de reloj. La parte de la ALU que realmente hace los cálculos es un circuito combinacional que consiste en compuertas lógicas y chanclas. Habría diferentes circuitos combinacionales dentro de la ALU, por ejemplo, uno para la suma, uno para la multiplicación y quizás uno para la división. La magia detrás del sumador es solo una cadena de puertas lógicas. El más simple se conoce como sumador de transporte de ondas (Adder (electrónica)). Hay mejores versiones de este sumador que se utiliza en procesadores modernos. Del mismo modo, también hay circuitos para la multiplicación. Aquí hay un ejemplo: multiplicador binario
La ALU contiene todas estas partes. La ALU también contiene un montón de multiplexores (Multiplexor) que pueden seleccionar cuál de estas partes usar en ese ciclo de reloj en particular. El multiplexor es controlado por la unidad de control.