* Unidad lógica aritmética (ALU): Realiza operaciones aritméticas (adición, resta, multiplicación, división) y operaciones lógicas (y, o, no, XOR) en datos. Aquí es donde ocurren los cálculos reales.
* Unidad de control (Cu): Obtiene instrucciones de la memoria, las decodifica y dirige el flujo de datos e instrucciones dentro de la CPU. Actúa como el "cerebro" que coordina todos los demás componentes.
* Registros: Pequeñas ubicaciones de almacenamiento de alta velocidad dentro de la CPU. Consideran datos e instrucciones en las que ALU y CU están trabajando actualmente. El acceso a los registros es mucho más rápido que acceder a la memoria principal.
* Cache: Una memoria pequeña y muy rápida que almacena con frecuencia accedía a datos e instrucciones. Actúa como un búfer entre la CPU y la memoria principal (RAM), acelerando el acceso a la información de uso frecuente. Típicamente hay múltiples niveles de caché (L1, L2, L3), cada uno con diferentes velocidades y tamaños.
* Reloj: Genera pulsos que sincronizan las operaciones de la CPU. La velocidad del reloj (medida en GHZ) determina cuántas instrucciones puede ejecutar la CPU por segundo.
* Unidad de interfaz de bus (BIU): Gestiona la comunicación entre la CPU y otros componentes del sistema informático, como la memoria y los dispositivos de entrada/salida. Maneja la transferencia de datos e instrucciones hacia y desde la CPU.
Las CPU modernas también incluyen componentes adicionales como:
* Unidad de punto flotante (FPU): Maneja aritmética de punto flotante (cálculos que involucran números decimales), que son cruciales para los gráficos y la computación científica. A menudo integrado en el Alu.
* Unidad de gestión de memoria (MMU): Maneja la protección de la memoria y la memoria virtual, lo que permite que múltiples programas se ejecuten simultáneamente sin interferir entre sí.
* Unidad de Fetch Prefetch: Predice qué instrucciones se necesitarán a continuación y las obtendrá de la memoria de antemano, mejorando el rendimiento.
* Unidad de predicción de ramas: Predice qué rama del código se ejecutará a continuación, mejorando el rendimiento en declaraciones condicionales.
Los componentes exactos y su organización pueden variar significativamente dependiendo de la arquitectura de la CPU (por ejemplo, X86, ARM) y el fabricante. Sin embargo, los componentes fundamentales enumerados anteriormente son comunes a casi todas las CPU.