Memoria direccionable por contenido


La memoria de contenido direccionable ( CAM ) es un tipo especial de memoria de computadora que se utiliza en ciertas aplicaciones de búsqueda de muy alta velocidad. También se conoce como memoria asociativa o almacenamiento asociativo y compara los datos de búsqueda de entrada con una tabla de datos almacenados y devuelve la dirección de los datos coincidentes. [1]

CAM se usa con frecuencia en dispositivos de red donde acelera las operaciones de la tabla de enrutamiento y la base de información de reenvío . Este tipo de memoria asociativa también se usa en la memoria caché. En la memoria caché asociativa, tanto la dirección como el contenido se almacenan uno al lado del otro. Cuando la dirección coincide, el contenido correspondiente se obtiene de la memoria caché.

A diferencia de la memoria de computadora estándar, la memoria de acceso aleatorio (RAM), en la que el usuario proporciona una dirección de memoria y la RAM devuelve la palabra de datos almacenada en esa dirección, una CAM está diseñada de tal manera que el usuario proporciona una palabra de datos y la CAM busca su toda la memoria para ver si esa palabra de datos está almacenada en alguna parte. Si se encuentra la palabra de datos, el CAM devuelve una lista de una o más direcciones de almacenamiento donde se encontró la palabra. Por lo tanto, una CAM es la materialización en hardware de lo que en términos de software se denominaría matriz asociativa .

Una definición de interfaz principal para CAM y otros motores de búsqueda de red se especificó en un acuerdo de interoperabilidad llamado Interfaz Look-Aside (LA-1 y LA-1B) desarrollado por Network Processing Forum . [3] Numerosos dispositivos que se ajustan al acuerdo de interoperabilidad han sido producidos por Integrated Device Technology , Cypress Semiconductor , IBM , Broadcom y otros. El 11 de diciembre de 2007, la OIF publicó el acuerdo de interfaz serial lookaside (SLA). [ cita requerida ]

CAM es mucho más rápido que RAM en aplicaciones de búsqueda de datos. Sin embargo, existen desventajas de costos para la CAM. A diferencia de un chip RAM , que tiene celdas de almacenamiento simples, cada bit de memoria individualen un CAM completamente paralelo debe tener su propio circuito de comparación asociado para detectar una coincidencia entre el bit almacenado y el bit de entrada. Además, las salidas de coincidencia de cada celda en la palabra de datos deben combinarse para producir una señal de coincidencia de palabra de datos completa. El circuito adicional aumenta el tamaño físico y el costo de fabricación del chip CAM. El circuito adicional también aumenta la disipación de energía ya que cada circuito de comparación está activo en cada ciclo de reloj. En consecuencia, CAM se usa solo en aplicaciones especializadas donde la velocidad de búsqueda no se puede lograr usando un método menos costoso. Una implementación temprana exitosa fue un IC y sistema de procesador asociativo de propósito general. [4]

A principios de la década de 2000, varias empresas de semiconductores, incluidas Cypress , IDT , Netlogic , Sibercore, [5] y MOSAID, introdujeron productos CAM destinados a aplicaciones de red. Estos productos fueron etiquetados como Motores de búsqueda de red (NSE), Aceleradores de búsqueda de red (NSA) y Procesadores basados ​​en el conocimiento (KBP), pero eran esencialmente CAM con interfaces especializadas y funciones optimizadas para redes. Actualmente , Broadcom ofrece varias familias de KBP. [6]


Memoria direccionable de contenido
Celda CAM binaria CMOS que consta de una celda SRAM de 6T más 4 transistores de comparación. Cuando los datos en las líneas de búsqueda (SL) difieren de los datos almacenados en la celda a través de las líneas de bit (BL), la línea de coincidencia (ML) se reducirá para indicar una falta de coincidencia. Si ninguna de las celdas en una línea de coincidencia indica un bit no coincidente, la línea de coincidencia permanecerá alta en el nivel de precarga para indicar una coincidencia de palabra. Ambas líneas de búsqueda se pueden mantener en la lógica '0' como una condición de búsqueda indiferente. Las líneas de búsqueda y las líneas de bits se pueden fusionar en un solo par de líneas de datos.
Celda CAM ternaria CMOS que consta de dos celdas SRAM 6T más 4 transistores de comparación. Niveles lógicos normalmente opuestos, ya sea '0' y '1' o '1' y '0' se almacenarán en las dos celdas. Para una condición de indiferencia, se almacenará '0' en ambas celdas, de modo que la línea de coincidencia ML no se reducirá para ninguna combinación de datos de línea de búsqueda (SL).