Lección 5: Lógica combinacional y la ALU
Vimos puertas lógicas que calculan AND, OR y NOT, y vimos cómo se escriben los números en binario. Ahora uniremos ambas cosas: tomaremos puertas simples y construiremos con ellas un circuito que realmente sepa calcular — que sume dos números. Todos los circuitos de esta lección son 'lógica combinaci
Si le das a varias puertas lógicas los mismos bits, siempre devolverán la misma respuesta — no tienen memoria. En esta lección combinaremos esas puertas en una pequeña máquina de sumar, y luego en la gran calculadora del CPU llamada ALU.
- Lógica combinacional
- Un circuito cuya salida se determina únicamente por las entradas en el momento presente, sin memoria de un estado anterior. Las mismas entradas siempre producen la misma salida.
- Semisumador (Half-Adder)
- Un circuito que suma dos bits individuales y produce dos bits: una suma (Sum) de una puerta XOR, y un acarreo (Carry) de una puerta AND.
- Sumador completo (Full-Adder)
- Un circuito que suma tres bits — dos bits de entrada y un acarreo de entrada (Carry-in) — y produce un bit de suma y un bit de acarreo de salida.
- Acarreo (Carry)
- El bit que se 'acarrea' a la siguiente columna cuando la suma de la columna actual supera lo que un solo dígito puede contener (en binario, cuando la suma es 2 o más).
- Sumador de acarreo propagado (Ripple-Carry Adder)
- Una cadena de sumadores completos, uno por cada columna de bits; el acarreo de salida de cada etapa entra como acarreo de entrada en la siguiente etapa y se 'propaga' a lo largo de la cadena.
- Multiplexor
- Un selector: un circuito con varias líneas de entrada que elige una de ellas para pasarla a la salida, según unas líneas de selección (Select) que funcionan como un interruptor direccional.
- Unidad aritmético-lógica
- Un circuito combinacional grande en el corazón del CPU que realiza operaciones aritméticas y lógicas (suma, resta, AND, OR, comparaciones). Un código de operación (Opcode) selecciona qué operación se ejecuta.
- Código de operación (Opcode)
- Una combinación corta de bits que le indica a la ALU qué operación realizar sobre las entradas — como un número de menú que selecciona la acción deseada.
- Banderas de estado
- Bits individuales que la ALU activa para reportar el resultado: una bandera de cero (Zero) cuando el resultado es 0, una bandera de acarreo (Carry) cuando hubo un acarreo fuera del ancho del número.