Memoria CAM y TCAM: funcionamiento, usos y diferencias

Última actualización: 3 de septiembre de 2025
Autor: Isaac
  • La CAM busca por contenido y responde en un ciclo; la TCAM añade comodines y coincide por prefijo más largo.
  • Switches usan CAM para tablas MAC; routers y switches L3 usan TCAM para FIB, ACL y QoS en hardware.
  • La búsqueda es paralela y de latencia fija, pero la TCAM consume más energía y tiene capacidad limitada.
  • El par CAM más RAM permite que la CAM indexe y la RAM devuelva el dato asociado, como el puerto de salida.

memoria-cam

La memoria CAM es una tecnología pensada para buscar datos a toda velocidad en tablas, muy usada en redes y hardware de alto rendimiento. En lugar de acudir a una dirección fija como haría una RAM, la CAM permite introducir el dato a localizar y obtener al instante la ubicación asociada, lo que resulta ideal para tareas como el reenvío de paquetes en routers y switches.

Si alguna vez te has peleado con términos como CAM binaria, TCAM o coincidencia de prefijo más largo, aquí lo verás paso a paso y con ejemplos sencillos. Vamos a desgranar qué es, cómo funciona y dónde se utiliza, además de sus ventajas y limitaciones prácticas en equipos de red actuales.

Qué es la memoria CAM y por qué es diferente a la RAM

En una RAM clásica el sistema proporciona una dirección y recupera la palabra almacenada en esa ubicación. En una CAM se invierte el enfoque: se entrega la palabra que se quiere buscar y el hardware devuelve la dirección donde aparece esa coincidencia. Esta inversión hace posible resolver consultas en una sola operación, sin recorrer secuencialmente la tabla.

Este comportamiento permite que, con una entrada de búsqueda, la CAM responda en un único ciclo de reloj con la dirección asociada o con la acción a realizar. Por eso las CAM se usan como motores de búsqueda de tablas en encaminadores y conmutadores que deben tomar decisiones millones de veces por segundo.

En la práctica, una CAM se organiza como un conjunto de claves y valores donde se comparan muchas claves a la vez. El hardware ejecuta la comparación de forma paralela sobre todas las entradas, acelerando la decisión respecto a una tabla convencional consultada en software.

Conviene saber que las CAM se construyen con celdas tipo SRAM, pero con circuitería adicional para comparar en paralelo. Esa lógica extra encarece el coste y reduce la capacidad por chip frente a una SRAM normal, a cambio de la aceleración de búsquedas.

Terminología, sinónimos y breve historia

A la memoria CAM se la conoce también como memoria asociativa, memoria de búsqueda asociativa, memoria de búsqueda paralela o, simplemente, memoria de búsqueda. Todos estos nombres describen el mismo concepto de direccionamiento por contenido en lugar de por dirección.

El concepto moderno se atribuye a Dudley Allen Buck, quien en 1955 inventó la idea de memoria direccionable por contenido e introdujo la noción de unidad de reconocimiento. Su trabajo abrió el camino a arquitecturas asociativas que décadas después cristalizaron en implementaciones prácticas para comunicaciones y procesamiento.

Entre los análisis clásicos de la arquitectura asociativa destaca el de S. S. Yau y H. S. Fung publicado en 1977, un recorrido por procesadores asociativos y su potencial. Estas referencias históricas sitúan a la CAM como una pieza clave para búsquedas ultrarrápidas, especialmente en redes.

memoria-tcam

CAM binaria y TCAM ternaria: coincidencia exacta y comodines

Hay dos familias principales. La CAM binaria solo admite coincidencias exactas bit a bit. Es perfecta cuando la clave es única y debe igualarse tal cual, por ejemplo una dirección MAC en una red de capa 2.

  Cómo optimizar la duración de la batería de tu móvil: Consejos prácticos

La TCAM, siglas de memoria ternaria direccionable por contenido, añade un tercer estado X que actúa como comodín que no importa. Gracias a ese tercer estado, se pueden representar rangos o prefijos y resolver selecciones por correspondencia de prefijo más largo, algo esencial en enrutamiento IP.

En TCAM, cuando varias entradas coinciden con la búsqueda, se selecciona la que coincide en más bits, es decir, la de prefijo más largo. Ese criterio es la base del lookup de rutas IP que se ve en Internet a diario.

Un detalle clave es que la TCAM busca todas sus entradas en paralelo, así que el tiempo de consulta no depende del número de prefijos almacenados. La latencia se mantiene de un ciclo incluso con tablas extensas, lo que habilita reenvío a velocidad de cable.

Este paralelismo tiene una contrapartida: para arrancar la comparación, todas las líneas se activan y, si un bit no cuadra, esa línea se descarta. Al alimentar simultáneamente tantos circuitos, la TCAM consume bastante energía y su capacidad es limitada respecto a memorias convencionales.

Aplicaciones prácticas en redes: switches y routers

En switches de capa 2 la CAM binaria se usa para construir y consultar la tabla de direcciones MAC. Como cada MAC es única, la coincidencia exacta encaja como un guante. La clave típica de búsqueda combina MAC de destino y VLAN, y el resultado es el puerto por el que reenviar.

Cuando llega una trama y existe entrada CAM que casa con su MAC de destino, se reenvía únicamente por el puerto asociado. Si no hay coincidencia, el switch inunda por todos los puertos de la VLAN hasta aprender el destino correcto. En estas tablas el resultado de la comparación es binario, verdadero o falso.

Desde la línea de comandos, se puede inspeccionar lo aprendido de manera dinámica con órdenes como: Switch# show mac address-table dynamic [address mac-address | interface type mod/num | vlan vlan-id]. Para ver el tamaño de la tabla, es útil show mac address-table count.

En switches multicapa y routers, la TCAM entra en juego para búsquedas de rutas, listas de control de acceso y políticas de calidad de servicio. Estos dispositivos almacenan FIB, ACL y reglas de QoS en hardware para tomar decisiones en un único ciclo, sin penalizar el rendimiento.

En plataformas de alto rendimiento de Cisco, por ejemplo, la TCAM habilita CEF, que construye la tabla FIB a partir del RIB y mantiene una tabla de adyacencia derivada del ARP. La TCAM localiza de un intento el prefijo de destino y apunta a una cabecera de capa 2 ya preparada para el siguiente salto.

Para monitorizar recursos en estos equipos, existen comandos como show tcam counts para uso de TCAM y show sdm prefer para ver la partición de recursos entre funciones como rutas, ACL o QoS. Estas particiones determinan cuántas entradas puede dedicar el hardware a cada tipo de tabla.

CAM frente a memorias y tablas tradicionales

En una tabla de consulta directa clásica, el diseño puede buscar el dato a partir de una dirección calculada. La CAM invierte la relación y encuentra la dirección a partir del dato, con la ventaja de resolver en un ciclo y sin software de por medio.

  ¿Conectado a WiFi, pero sin internet? Posibles causas

La arquitectura que combina CAM y RAM es habitual: la CAM hace de índice y la RAM guarda la información asociada. La salida de la CAM actúa como puntero que recupera la palabra en RAM, por ejemplo el puerto de salida o la cabecera de enlace ya lista para transmitir.

Aunque la CAM se construye con celdas tipo SRAM, su densidad es menor debido a la circuitería de comparación, y su precio por bit resulta superior. Se sacrifica capacidad a cambio de latencia mínima y búsqueda paralela total, que es justo lo que exige el plano de reenvío.

Cómo decide una TCAM: prefijo más largo y prioridad

cam

Para que la selección de prefijo más largo funcione de forma determinista, las tablas de TCAM se ordenan con los prefijos más específicos al principio. La prioridad de las entradas sigue la posición, de modo que ante empates gana la primera línea, que es la de mayor longitud de prefijo.

Imagina una tabla con direcciones de 5 bits y el símbolo X como comodín. La entrada 1 asigna el rango 10100 hasta 10111 a un puerto A, la entrada 2 y la 3 cubren otros rangos superpuestos. Si llega 01101, casan la entrada 2 y la 3, y se elige la de menos X, es decir, el prefijo más largo.

En hardware esto se implementa con un codificador de prioridad. Varias líneas pueden declarar coincidencia en paralelo, y el codificador entrega la ubicación de la candidata ganadora. Esa ubicación indexa una RAM con el valor asociado, como el puerto B al que reenviar el paquete.

Este sistema CAM más RAM constituye un motor de búsqueda completo para reenvío. La CAM resuelve la coincidencia y la RAM aporta el dato final sin intervención del procesador general, descargando al software de búsquedas costosas.

Qué ocurre dentro del chip durante la búsqueda

Antes de empezar la comparación, las líneas de coincidencia se inicializan como verdaderas. Cuando entra la palabra de búsqueda, cada celda compara sus bits y cualquier discrepancia anula esa línea. Los bits X en TCAM no anulan la coincidencia, lo que permite los comodines.

Al final del ciclo, varias líneas pueden permanecer activas. El codificador de prioridad se queda con la de mayor preferencia, que por construcción es la de prefijo más largo. Gracias a esta lógica, la consulta siempre tarda lo mismo, exista una coincidencia o varias.

La contrapartida es energética: como hay que activar todas las líneas para comparar, el consumo es notable. Este es uno de los grandes límites de la TCAM, junto con la capacidad relativamente pequeña por chip respecto a SRAM o DRAM.

Usos adicionales: ACL, QoS y procesamiento en paralelo

Más allá del enrutamiento, las TCAM modernas almacenan listas de control de acceso, reglas de calidad de servicio y filtros de tráfico. La evaluación de estas reglas se hace en paralelo, de forma que aplicar ACL o QoS no hunde el rendimiento del equipo.

Algunos dispositivos incorporan varios bancos de TCAM para aplicar reglas en ambos sentidos de un puerto y combinar filtrado y priorización en la misma interfaz. Esta capacidad de paralelizar decisiones mantiene la conmutación a velocidad de línea incluso con políticas complejas.

  Desactivar VT-d en Linux: cuándo mejora Intel Arc y cómo probarlo

Dónde encaja cada tipo: CAM binaria en L2 y TCAM en L3

La CAM binaria brilla cuando la clave es única e inmutable, como las direcciones MAC. Los switches de capa 2 la emplean para aprender y consultar la tabla MAC, devolviendo un simple sí o no y el puerto asociado.

La TCAM resulta imprescindible en capa 3, donde las redes se describen por prefijos. Los routers mantienen en TCAM la FIB y consultan la coincidencia de prefijo más largo en un ciclo, apuntando a la tabla de adyacencia con la cabecera de capa 2 preconstruida para el siguiente salto.

Este diseño, típico de CEF, evita recorrer listas de rutas en software. El plano de datos queda en ASICs y solo el plano de control actualiza tablas o resuelve cambios, lo que aísla el rendimiento de las variaciones del tamaño de la tabla.

Ventajas y limitaciones prácticas

Principales ventajas: latencia de consulta fija de un ciclo, búsqueda totalmente paralela, independencia del número de entradas y descarga del procesador general. Por eso la CAM es ideal para tablas calientes como rutas, ACL o políticas de tráfico.

Limitaciones: capacidad reducida por el sobrecoste de las celdas, consumo eléctrico elevado por las comparaciones masivas y precio por bit mayor que memorias estándar. Esto obliga a seleccionar con cuidado qué se guarda en TCAM y cómo se reparte entre funciones.

En la práctica, los fabricantes ofrecen perfiles de uso para repartir entradas entre rutas, ACL o QoS. Con comandos tipo show sdm prefer se observa esta partición, y con show tcam counts se vigila el consumo de entradas para evitar desbordes.

Buenas prácticas operativas

Mantener los prefijos ordenados por especificidad garantiza que la selección sea la de mayor coincidencia. Las herramientas de control verifican que la FIB esté optimizada y que las entradas más usadas tengan prioridad alta.

En entornos con muchas ACL y políticas, conviene medir el impacto en entradas disponibles y ajustar perfiles. La consolidación de reglas y el uso de rangos con X ayuda a ahorrar espacio en TCAM sin perder precisión en el filtrado.

Cuando la tabla de capa 2 crece, revisar el tamaño y el aprendizaje dinámico es vital. Órdenes como show mac address-table count ofrecen una foto rápida del estado de la CAM de un switch y facilitan detectar cuellos de botella.

Ejemplo ilustrativo de tabla de enrutamiento simplificada

Supón una tabla con cuatro entradas de direcciones de 5 bits. Las tres primeras emplean X como comodín, formando rangos. La entrada 1 abarca desde 10100 hasta 10111 y apunta al puerto A. Si llega 10100, se reenvía por A, sin más.

Si el destino es 01101, la búsqueda casará con dos entradas. El codificador prioriza la que tiene menos X, equivalente al prefijo más largo, y la salida es la posición 01, asociada al puerto B según la RAM de resultados.

Esta mecánica refleja lo que hacen las TCAM con rutas IP de diferente longitud. La siempre elegida es la ruta más específica, que es exactamente lo que espera cualquier administrador de redes al configurar prefijos superpuestos.

Con todo lo anterior, se entiende por qué CAM y TCAM son tan valoradas en redes: permiten decisiones inmediatas en el plano de datos y dejan al plano de control la tarea de construir y mantener las tablas.