Entendiendo Tablas de Búsqueda: De ROMs a ALUs Avanzadas
En el capítulo anterior exploramos dispositivos de memoria digital, descubriendo cómo celdas de almacenamiento de estado sólido pueden direccionarse precisamente usando valores binarios. Al conducir las líneas de dirección de una ROM con patrones binarios específicos, podemos recuperar datos almacenados directamente de sus celdas de memoria.
Imagine una ROM pre-programada con una tabla de verdad para una función lógica particular. Las líneas de dirección entonces actúan como las entradas de la función, mientras que las líneas de datos entregan las salidas correspondientes. Con esta configuración, un solo chip ROM puede emular cualquier función lógica deseada —ya sea un semi-sumador, un sumador completo, o un circuito combinacional completamente diferente— sin ningún recableado físico.
A continuación se muestra una ROM de 4 × 2 bits, configurada para implementar un semi-sumador. Cuando las entradas A y B se aplican a los pines de dirección, la ROM emite los bits correctos de Suma (Σ) y Acarreo-salida (Cout).

A diferencia de un semi-sumador basado en compuertas, que procesa las entradas a través de una red fija de compuertas lógicas, esta ROM simplemente "recuerda" la salida correcta para cada par de entradas. Escribiendo una nueva tabla de verdad en otra ROM, o incluso una EPROM borrable, podemos reconfigurar instantáneamente la función lógica, proporcionando flexibilidad sin parangón.
En esencia, una ROM que entrega salidas predeterminadas para cada entrada posible se llama tabla de búsqueda. Este concepto refleja cómo memorizamos tablas de multiplicar en la escuela: en lugar de recalcular 5 × 6 cada vez, recordamos que es 30.
Usar software (los datos almacenados en la ROM) en lugar de hardware ofrece varias ventajas:
- Los cambios de software son mucho más fáciles que modificaciones de hardware.
- El software puede archivarse en discos, cintas u otros medios, facilitando documentación y transferencia.
- El software puede copiarse entre dispositivos, permitiendo que un chip aprenda de otro.
- Funciones complejas que serían inmanejables con compuertas discretas pueden implementarse directamente.
El poder de las tablas de búsqueda crece con la complejidad de la función. Por ejemplo, un sumador de 4 bits podría construirse usando una ROM con 8 líneas de dirección (dos operandos de 4 bits) y 4 líneas de datos para la suma con signo. Con 256 ubicaciones direccionables, cada combinación de entrada debe programarse cuidadosamente.

Programar tal tabla requiere precisión, pero el beneficio del comportamiento definido por software supera el riesgo de una entrada mal programada.
Las tablas de búsqueda también destacan en manejar casos frontera, como desbordamiento en adición en complemento a 2. Por ejemplo, sumar 0111 (7) y 0110 (6) en campo de 4 bits produce 1001 (–7) en lugar del correcto 13. Programando la ROM para emitir un valor personalizado —quizás el máximo número positivo representable— podemos controlar la respuesta a condiciones de desbordamiento.
Más allá de adición simple, expandir la ROM con dos líneas de dirección más aumenta su capacidad de 256 a 1,024 entradas. Esto permite a la ROM realizar múltiples operaciones basadas en dos bits de control (A8 y A9): adición, sustracción (ambos órdenes), y prueba de igualdad —todo en operandos de 4 bits.

Con aún más líneas de dirección, la ROM puede alojar una amplia gama de operaciones binarias, como comprobaciones de paridad o XORs, actuando efectivamente como Unidad Aritmético-Lógica (ALU). Históricamente, las computadoras IBM 1401 y 1620 emplearon tablas de búsqueda para adición, una elección de diseño que ganó el apodo "CADET" (Can't Add, Doesn't Even Try).
Un uso moderno común de tablas de búsqueda basadas en ROM es en sistemas de control que requieren una función matemática precisa. Por ejemplo, sistemas de inyección de combustible automotriz ajustan la relación aire-combustible basada en carga del motor, temperatura ambiente y presión barométrica. Sensores miden estas variables, sus salidas analógicas se digitalizan, y el vector digital resultante sirve como dirección de la ROM. La ROM entonces emite los parámetros óptimos de inyección.
Las ROMs también corrigen señales digitalizadas. Transmisores de termopar, por instancia, convierten milivoltaje no lineal en valor de temperatura. Almacenando datos de corrección en una ROM, el dispositivo puede linealizar la salida, mejorando precisión. Esta aplicación a menudo se refiere como caracterizador digital.

Otro ejemplo clásico es traducción de códigos. Una ROM de 128 × 8 puede traducir códigos ASCII de 7 bits a códigos EBCDIC de 8 bits mapeando cada entrada a su salida correspondiente en la tabla de la ROM.
Hoja de Trabajo Relacionada: Hoja de Trabajo de Dispositivos de Memoria
Tecnología Industrial
- Ladder Logic 202: Dominando la organización de memoria en PLC
- Fundamentos de Memoria Digital: Direccionamiento, Acceso y Volatilidad
- Entendiendo ROM, PROM, EPROM y EEPROM: Diseño, Programación e Identificación
- Microprocesadores: La Evolución de la Computación con Programa Almacenado
- La computación neuromórfica magnética impulsa la eficiencia de la IA a niveles humanos
- Cómo las mesas elevadoras mejoran la ergonomía laboral y reducen riesgo de lesiones
- Cervoz lanza memoria DDR4‑2666 avanzada para soluciones industriales de IA e IoT
- Asignación dinámica de memoria en C: Dominando malloc, calloc, realloc y free
- Gestión Dinámica de Memoria en C: calloc, malloc y free Explicados
- Dominando la Memoria Dinámica en C++: Stack vs Heap Explicado
- Mejoras en Java 10: Asignar Heap en NV-DIMM con -XX:AllocateHeapAt