Diseño de ALU
Construcción de una ALU multifunción con operaciones aritméticas, lógicas, banderas y registro de estado.
La Unidad Aritmético-Lógica (ALU) es el núcleo computacional de toda CPU. Combina sumadores, compuertas lógicas y multiplexores para realizar múltiples operaciones (ADD, SUB, AND, OR, XOR, desplazamientos) seleccionadas por señales de control. La ALU también genera banderas de estado (cero, acarreo, negativo, desbordamiento) que permiten la ramificación condicional. Diseñar una ALU eficiente es un paso clave en la construcción de una CPU.
Objectives
- Diseñar una ALU que soporte múltiples operaciones aritméticas y lógicas
- Usar un multiplexor para seleccionar entre los resultados de las operaciones
- Implementar banderas de estado: Cero (Z), Acarreo (C), Negativo (N), Desbordamiento (V)
- Comprender cómo la unidad de control selecciona las operaciones de la ALU mediante el código de operación
- Extender una ALU básica con operaciones de desplazamiento y comparación
Key Takeaways
- La ALU calcula todas las operaciones en paralelo; el MUX selecciona el resultado
- La resta reutiliza el sumador: A - B = A + ~B + 1
- Las banderas (Z, C, N, V) permiten la ramificación condicional
- El código de operación de la ALU proviene de la unidad de control basado en la instrucción
- La ALU es el corazón computacional—todo lo demás la apoya
Applications
- CI ALU 74181: Histórico CI ALU de 4 bits que realiza 16 operaciones aritméticas y 16 lógicas.
- ALU RISC-V: Los diseños de CPU de código abierto incluyen implementaciones de ALU bien documentadas.
- Unidades Shader de GPU: Miles de ALUs simples procesan píxeles y vértices en paralelo.
- Procesadores DSP: ALUs especializadas con unidades de multiplicación-acumulación (MAC) en hardware.
Practice Problems
Problem 1: Diseña una ALU de 4 operaciones (ADD, SUB, AND, OR) con un código de operación de 2 bits. ¿Cuántas entradas de MUX?
Problem 2: Una ALU de 8 bits calcula 0xFF + 0x01. ¿Cuáles son las banderas Z, C y N?
Problem 3: ¿Cómo realiza la ALU la resta usando solo un sumador?
Problem 4: ¿Cuándo se activa la bandera de Desbordamiento (V) para la suma con signo?