Introducción a la arquitectura de la CPU
La arquitectura de la CPU es el conjunto de componentes y protocolos que permiten a un procesador ejecutar instrucciones, acceder a la memoria y comunicarse con dispositivos externos. En los sistemas basados en la arquitectura de Von Neumann, la unidad central se organiza alrededor de registros clave que gestionan direcciones, datos e instrucciones. Este curso profundiza en los registros más relevantes (MAR, MBR, IR, PC, AC) y explica su papel durante el ciclo FETCH, así como conceptos históricos como el telar de Jacquard.
Registro MAR (Memory Address Register)
El MAR es el registro encargado de enviar la dirección de memoria al bus de direcciones externo. Cada vez que la CPU necesita leer o escribir en la RAM, el contenido del MAR se coloca en el bus de direcciones, permitiendo que la memoria localice la celda solicitada. Si el bus de direcciones tiene 36 bits, el MAR debe poseer al menos 36 bits para poder direccionar todo el espacio de memoria disponible.
- Función principal: transmitir la dirección de memoria.
- Relación con el bus: el MAR se conecta directamente al bus de direcciones.
- Implicación de un bus de 36 bits: el MAR necesita 36 bits para cubrir 236 ubicaciones.
Registro MBR (Memory Buffer Register)
El MBR, también llamado registro de búfer de memoria, actúa como puerta única de entrada y salida de datos entre la CPU y la memoria externa. Cuando la CPU lee datos, el MBR los captura del bus de datos; cuando escribe, el MBR entrega los datos al bus. A diferencia del MAR, el MBR no contiene direcciones, sino los valores que se transfieren.
- Almacena temporalmente datos leídos de la RAM.
- Interfaz bidireccional: tanto lectura como escritura pasan por él.
- No contiene lógica de dirección: esa función corresponde al MAR.
Registro IR (Instruction Register)
El IR guarda la instrucción que ha sido recuperada de la memoria antes de que sea decodificada por la unidad de control. En el ciclo FETCH, la instrucción pasa primero por el MBR porque el bus de datos solo transporta valores; el MBR captura la palabra completa y luego la transfiere al IR, que está especializado en interpretar códigos de operación.
- Paso esencial: MBR → IR.
- Razón: el IR no está conectado directamente al bus de datos bidireccional.
- Resultado: la CPU puede decodificar y ejecutar la instrucción.
Registro PC (Program Counter)
El PC mantiene la dirección de la siguiente instrucción a ejecutar. Durante la fase de Fetch, el PC envía su contenido al MAR y, simultáneamente, se activa una señal de incremento físico que actualiza el PC para apuntar a la siguiente posición de memoria. Esta señal garantiza que el flujo de ejecución avance de forma secuencial, salvo que una instrucción de salto modifique el PC.
- Señal activada: entrada de incremento físico.
- Función: apuntar a la siguiente instrucción.
- Interacción con MAR: el PC carga su valor en el MAR antes del ciclo de lectura.
Registro AC (Accumulator)
El AC es el acumulador, el registro que recibe directamente los resultados de la ALU (Unidad Aritmético‑Lógica). A diferencia del MBR, que solo almacena datos temporales, el AC está conectado a la salida de la ALU y sirve como operando implícito en muchas instrucciones aritméticas y lógicas.
- Interacción con la ALU: el AC recibe resultados y también puede proporcionar operandos.
- Diferencia esencial con el MBR: el MBR no recibe resultados de la ALU, solo datos de la memoria.
- Uso típico: sumas, restas, desplazamientos y comparaciones.
Ciclo FETCH paso a paso
El ciclo FETCH es la primera fase del proceso de ejecución de una instrucción y consta de los siguientes pasos:
- El PC envía la dirección de la próxima instrucción al MAR.
- Se activa la señal de lectura en el bus de direcciones, permitiendo que la RAM coloque la palabra de instrucción en el MBR.
- El contenido del MBR se transfiere al IR, donde la unidad de control decodifica la operación.
- El PC se incrementa automáticamente para apuntar a la siguiente instrucción.
Este proceso se repite para cada instrucción del programa, garantizando un flujo continuo de ejecución.
Analogía histórica: el telar de Jacquard y Von Neumann
En la historia de la computación, el telar de Jacquard se utiliza como una analogía para explicar la fase de Fetch. El telar empleaba tarjetas perforadas para controlar el patrón de tejido, similar a cómo la CPU lee una instrucción de la memoria y la coloca en el IR para su decodificación. Esta analogía ilustra cómo la información externa (las tarjetas o la memoria) se traduce en acciones internas del sistema.
Registro INPR y la bandera de interrupción (FGI)
El INPR (Input Register) es el registro de entrada que recibe datos de dispositivos periféricos. Cuando el INPR detecta que un dato está listo, activa la bandera física de interrupción (FGI). Esta señal informa al CPU que debe atender una solicitud externa, permitiendo que el procesador interrumpa su flujo normal y procese el dato entrante.
- Motivo de la activación: indicar que hay un dato listo en el registro de entrada.
- Resultado: el CPU ejecuta una rutina de servicio de interrupción.
- Importancia: mejora la interacción con periféricos y reduce el polling activo.
Resumen de los registros clave y sus interacciones
A continuación se muestra una tabla resumida que relaciona cada registro con su función principal y su vínculo con la ALU o el bus de datos:
- MAR: envía direcciones al bus de direcciones; no interactúa directamente con la ALU.
- MBR: buffer de datos entre la memoria y la CPU; tampoco se conecta a la ALU.
- IR: almacena la instrucción decodificada; controla la unidad de control.
- PC: apunta a la siguiente instrucción; se incrementa automáticamente.
- AC: recibe y envía resultados de la ALU; es el operando implícito.
- INPR: registra datos de entrada y genera la señal de interrupción FGI.
Preguntas frecuentes (FAQ)
¿Por qué el MAR necesita el mismo número de bits que el bus de direcciones? Porque cada bit del MAR representa una línea del bus de direcciones; sin coincidencia, la CPU no podría direccionar todas las ubicaciones posibles.
¿El MBR puede almacenar una instrucción completa? Sí, en arquitecturas donde la instrucción y los datos comparten el mismo ancho de palabra, el MBR actúa como contenedor temporal antes de pasar la instrucción al IR.
¿Qué ocurre si el PC no se incrementa después de un FETCH? El procesador volvería a leer la misma instrucción, provocando un bucle infinito a menos que una instrucción de salto modifique el PC.
¿El AC siempre contiene el resultado de la última operación aritmética? En la mayoría de los diseños clásicos, sí; sin embargo, arquitecturas modernas pueden usar registros de propósito general y relegar al AC a funciones específicas.
Conclusión
Comprender el papel de cada registro —MAR, MBR, IR, PC, AC e INPR— es esencial para dominar la arquitectura de la CPU y el ciclo de ejecución de instrucciones. Estos componentes forman una cadena de transferencia de datos que permite a la CPU leer, interpretar y ejecutar programas de manera eficiente. Con este conocimiento, podrás analizar diagramas de microarquitectura, diagnosticar problemas de rendimiento y diseñar sistemas más optimizados.