Arquitectura de la CPU: ALU, unidad de control, registros, buses y jerarquía de memoria
Introducción
La CPU (Central Processing Unit) es el componente central de cualquier ordenador: se encarga de ejecutar todas las instrucciones de los programas. Comprender cómo está organizada internamente —sus unidades funcionales, sus registros, los buses que la conectan con el resto del sistema y cómo gestiona la memoria— es la base de cualquier estudio de arquitectura de computadores.
La ALU y la Unidad de Control
Dentro de la CPU conviven dos unidades funcionales principales con roles muy distintos:
- ALU (Arithmetic Logic Unit — Unidad Aritmético-Lógica): se ocupa de todas las operaciones matemáticas y lógicas que realiza el procesador: sumas, restas, multiplicaciones, comparaciones, operaciones booleanas (AND, OR, NOT), desplazamientos de bits, etc.
- CU (Control Unit — Unidad de Control): se ocupa de dirigir y coordinar todas las tareas y operaciones realizadas por la CPU. Interpreta las instrucciones del programa, genera las señales de control que activan el resto de unidades y gestiona el flujo de datos entre los distintos componentes del procesador.
¿Qué son los registros de una CPU?
Los registros son un tipo de memoria extremadamente rápida ubicada dentro del propio procesador. Su función es guardar temporalmente los datos que el procesador necesita de forma casi inmediata durante la ejecución de instrucciones.
Cuando la CPU termina de ejecutar una instrucción y pasa a la siguiente, accede a los registros para obtener los datos que debe procesar. Como el tiempo que transcurre entre instrucción e instrucción es muy pequeño, esta memoria debe poder llenarse y vaciarse de forma casi instantánea. Por eso los registros son la memoria más rápida de toda la jerarquía, aunque también la de menor capacidad.
Registros específicos presentes en la mayoría de CPUs
| Registro | Función |
|---|---|
| Contador de programa (PC) | Indica dónde se encuentra el procesador en la secuencia de instrucciones. Apunta siempre a la siguiente instrucción que debe ejecutarse. |
| Registro acumulador | Almacena temporalmente los resultados aritméticos y lógicos intermedios que están siendo procesados por la ALU. Sirve para guardar operaciones importantes durante el transcurso de un cálculo más complejo. |
| Registro de instrucción (IR) | Pertenece a la Unidad de Control. Almacena la instrucción que está siendo ejecutada en el momento presente para que la CU pueda interpretarla y generar las señales de control correspondientes. |
| Registro de pila (Stack Pointer) | Mantiene un seguimiento de la posición actual de la pila de llamadas (call stack), apuntando siempre a la cima de la pila. Es esencial para gestionar llamadas a funciones, interrupciones y retornos. |
| Registro de estado (Flags) | Almacena las condiciones que se produjeron en la última operación realizada por la ALU (si el resultado fue cero, si hubo desbordamiento, si fue negativo, etc.). Estas condiciones pueden ser tenidas en cuenta por instrucciones posteriores. |
Los buses: qué son y para qué sirven
Función
Un bus es un sistema digital que transfiere datos entre los componentes de un ordenador. Permite la conexión lógica entre los diferentes subsistemas que componen el computador: procesador, memoria, dispositivos de entrada/salida, etc.
Composición física
Físicamente, los buses están formados por conductores metálicos (cables o pistas en un circuito impreso) por los que se transmiten señales eléctricas. Estos conductores van acompañados de componentes pasivos (resistores, condensadores) y circuitos integrados que implementan el protocolo de comunicación, permitiendo que los datos sean enviados y recibidos correctamente.
¿Qué puede transmitir un bus además de datos?
Además de los propios datos, un bus puede transmitir:
- Direcciones: indica qué posición de memoria o qué dispositivo es el destino u origen de los datos.
- Señales de control: sincronizan las distintas operaciones y comunican el estado de las mismas a la CPU.
- Corriente eléctrica: algunos buses también alimentan eléctricamente a los dispositivos conectados.
El ciclo de instrucción y su relación con el procesador
Un ciclo de instrucción es el período que tarda la CPU en ejecutar una instrucción de lenguaje máquina. Cada instrucción del conjunto de instrucciones (ISA) de una CPU puede requerir un número diferente de ciclos para completarse. Un ciclo de instrucción está formado por uno o más ciclos máquina.
El ciclo de instrucción se divide en dos subciclos principales:
| Subciclo | Descripción |
|---|---|
| Fetch (búsqueda) | La CPU accede a la memoria principal (RAM) para buscar la próxima instrucción a ejecutar, guiada por el Contador de Programa (PC). La instrucción se carga en el Registro de Instrucción (IR). |
| Execute (ejecución) | La Unidad de Control decodifica la instrucción almacenada en el IR y genera las señales necesarias para que la ALU u otros componentes la ejecuten. Se procesan los datos y se almacena el resultado. |
La memoria caché: lectura más rápida que desde la memoria principal
La memoria caché es una memoria de alta velocidad instalada dentro del propio procesador (o muy cerca de él). Almacena las instrucciones y datos que el microprocesador necesita utilizar inmediatamente, así como los que son leídos con mayor frecuencia.
Su función es evitar que la CPU tenga que acceder constantemente a la memoria RAM (mucho más lenta): en lugar de esperar los ciclos que tarda la RAM en responder, el procesador primero busca en la caché. Si los datos están ahí (lo que se conoce como cache hit), la lectura es casi instantánea. Si no están (cache miss), entonces se accede a la RAM y el dato se copia a la caché para el siguiente acceso. Esta estrategia aumenta notablemente la velocidad de funcionamiento del ordenador.
¿Por qué los registros están en lo alto de la jerarquía piramidal de memorias?
La jerarquía de memorias se ordena de mayor velocidad y menor capacidad (arriba) a menor velocidad y mayor capacidad (abajo). Los registros están en lo alto porque son la memoria más rápida del sistema: se encuentran dentro del propio microprocesador y su función es almacenar los valores de datos, órdenes e instrucciones que el procesador necesita procesar en el instante siguiente.
| Nivel | Tipo de memoria | Velocidad | Capacidad |
|---|---|---|---|
| 1 (más alto) | Registros | Extremadamente rápida | Bytes / decenas de bytes |
| 2 | Caché (L1, L2, L3) | Muy rápida | KB / MB |
| 3 | Memoria RAM | Rápida | GB |
| 4 (más bajo) | Almacenamiento (SSD / HDD) | Lenta | TB |
El módulo de entrada/salida (E/S)
El módulo de entrada/salida gestiona la comunicación entre la CPU y los periféricos externos. Cuando se quiere utilizar un dispositivo conectado al sistema —ya sea por USB, HDMI, Bluetooth u otras interfaces— el sistema operativo lo hace posible a través de este módulo, que actúa como intermediario entre el hardware externo y el procesador. Cuando el dispositivo ya no es necesario, puede desconectarse sin afectar al resto del sistema.
Representación de valores en binario con 3 bits
Con 3 bits se pueden representar 2³ = 8 valores distintos, desde el 0 hasta el 7 en decimal:
000 → 0 001 → 1 010 → 2 011 → 3 100 → 4 101 → 5 110 → 6 111 → 7Conclusión
La arquitectura interna de una CPU es el resultado de un diseño muy cuidadoso en el que cada componente —ALU, Unidad de Control, registros, buses y caché— tiene un papel preciso e insustituible. Comprender cómo se relacionan entre sí, cómo fluyen los datos a través de los buses y cómo se optimiza el acceso a la memoria mediante la caché y la jerarquía de memorias es fundamental para entender por qué los procesadores modernos pueden ejecutar miles de millones de instrucciones por segundo.
Categorías
Entradas recientes
- Arquitectura de la CPU: ALU, unidad de control, registros, buses y jerarquía de memoria
- Configuración de VLANs en Packet Tracer: creación, asignación de puertos, VLAN de administración y puertos troncales
- Análisis de LogicalDOC: la alternativa profesional a Google Drive para empresas
- Administra switches Cisco como un profesional: desde el modo usuario hasta la configuración de VLANs en Packet Tracer
- Monta tu propio servidor DNS y web en Ubuntu: BIND9 + Apache2 para redes locales

