¿Qué son CAM y TCAM?

La memoria direccionable por contenido (CAM) y la memoria direccionable por contenido ternario (TCAM) son formas especializadas de memoria utilizadas principalmente en equipos de red de alto rendimiento. Estas formas especializadas de memoria se utilizan para habilitar la conmutación, el filtrado, el enrutamiento y la clasificación de paquetes a velocidad de cable en todos los niveles de hardware de red, excepto el más bajo.

Con la memoria normal, tiene un mapa lineal de direcciones que contienen datos, y a esa memoria solo se puede acceder a una ubicación a la vez. Si tiene una tabla en esa memoria (por ejemplo, una asignación de direcciones MAC para cambiar de puerto), tendría que escanear a través de esa tabla para encontrar el puerto del interruptor que corresponde a una dirección MAC dada. Este proceso es lento, y específicamente es demasiado lento para permitir que las tramas de Ethernet se conmuten a la velocidad del cable (a la misma velocidad a la que entran y salen del dispositivo, en lugar de usar cualquier tipo de almacenamiento y reenvío). La memoria direccionable por contenido, o CAM, resuelve este problema. La memoria CAM es una memoria optimizada para almacenar tablas dispersas. CAM se dirige no por una dirección lineal, sino por la clave de la tabla que almacena (en esta aplicación, el MAC) y devuelve, en tiempo constante y muy rápidamente, el puerto del conmutador al que enviar la trama. CAM es la tecnología principal que permite la conmutación a velocidad de cable de tramas Ethernet.

Coincidencia direccionable de contenido ternario, o TCAM es el “siguiente paso” de CAM. CAM requiere una coincidencia exacta en la clave almacenada en su tabla. Esto satisface la necesidad de la conmutación de Ethernet, porque las direcciones MAC tienen que coincidir exactamente. TCAM permite la coincidencia parcial: además de una clave para cada registro, la tabla también especifica una máscara, que indica qué bits de la clave deben coincidir y cuáles deben ignorarse (de ahí el término “ternario”: cada bit del la clave de asociación es 0, 1 o “no me importa”). Esto se usa principalmente para tomar decisiones de enrutamiento, en cuyo caso la tabla contiene entradas de enrutamiento, y las direcciones IP de los paquetes entrantes se comparan con las entradas de la tabla de enrutamiento (direcciones de red y máscaras), con la TCAM produciendo la información requerida para enrutar ese específico paquete. Este uso de TCAM permite el enrutamiento a velocidad de cable de la mayoría de los paquetes IP en la mayoría de las configuraciones de enrutadores. Obviamente, cuanto más compleja es la tabla de enrutamiento del enrutador, más grande debe ser la TCAM, y si hay más rutas de las que caben en la TCAM, entonces el administrador del dispositivo tiene que decidir cuáles entrarán en la TCAM y cuáles quedarán fuera. Los paquetes cuyas IP no coinciden con ninguna ruta en el TCAM de enrutamiento pasarán al método de “enrutamiento de proceso” mucho más lento, que requiere que la CPU del enrutador tome la decisión de enrutamiento.

La TCAM también se puede utilizar para implementar otras formas de clasificación de tramas y paquetes, como las reglas de calidad de servicio y las listas de control de acceso en general.

Tanto la memoria CAM como la TCAM son mucho más complicadas que la memoria estándar y, por lo general, se implementan utilizando ASIC específicos para la aplicación prevista.

Los enfoques CAM y TCAM también se usan en las memorias caché de memoria y en las memorias intermedias de traducción en CPU modernas y en dispositivos de compresión acelerados por hardware. En general, en cualquier lugar donde se use un mapa asociativo y la velocidad sea esencial, será una oportunidad para usar memoria direccionable por contenido para acelerar el rendimiento.

La memoria direccionable de contenido (CAM) es un tipo especial de memoria que utiliza aplicaciones de alto rendimiento que necesitan una búsqueda muy rápida. Creo que esto se usa comúnmente en enrutadores.

Por defecto, CAM es binario y se usa cuando son necesarias coincidencias exactas. TCAM o Ternary CAM se usa cuando se necesitan comodines.

Respuesta corta:
Para una RAM, usted dice: “Aquí hay una dirección. Dime qué datos se almacenan en esa dirección”.
Para un CAM, usted dice: “Aquí hay datos. Dime qué dirección almacena esos datos”.
Una TCAM es una CAM que le permite ignorar algunas de las posiciones de bit.