¿Qué es la memoria asociativa?

La mayor parte de la memoria se almacena y se accede a ella de la misma manera. El contenido se guarda y luego se recupera utilizando una dirección de memoria. Esto es generalmente útil y se usa casi universalmente. Desafortunadamente, hay un pequeño problema con este estilo de almacenamiento. Es excelente si sabe dónde se almacenan los datos que necesita. No funciona bien si desea buscar una entrada específica.

Digamos que quiere encontrar un archivo; recuerdas su nombre pero no qué carpeta guardaste. Su computadora puede buscar el nombre del archivo, pero a menos que lo haya usado recientemente, a menudo es bastante lento para realizar la búsqueda. Y eso teniendo en cuenta que los sistemas de archivos se almacenan como nombres y direcciones de archivos.

La memoria asociativa, también conocida como memoria de contenido direccionable o CAM, está diseñada para buscar por su contenido. Desafortunadamente, implementar memoria asociativa es muy costoso. Esto significa que solo se usa en algunos casos, generalmente en hardware de red de alta gama. La memoria de nombres asociativa proviene del hecho de que es una implementación de hardware de una matriz de software asociativa.

Estructura celular

La memoria asociativa solo se usa cuando se necesita un rendimiento extremadamente alto. Como tal, se basa en SRAM en lugar de DRAM. Como punto de partida, esto solo lo hace costoso. DRAM usa un transistor y un capacitor por bit, y SRAM usa un total de 6 transistores. Para buscar eficientemente el contenido de una celda de memoria, cada celda se modifica para tener un circuito de comparación. Esto agrega un total de 4 transistores más a cada celda. Esto significa que la memoria asociativa es significativamente menos densa que la SRAM, que ya es una forma costosa de almacenamiento.

Uso

La memoria asociativa es costosa y está optimizada exclusivamente para hacer coincidir búsquedas basadas en contenido. Como tal, solo se usa realmente en dispositivos que constantemente necesitan realizar este tipo de búsqueda; incluso entonces, normalmente se limita a modelos de gama alta. Por lo general, solo hay dos lugares principales donde se utiliza la memoria asociativa, los conmutadores de red y los enrutadores.

El hardware de red, como los conmutadores y los enrutadores, debe ofrecer niveles de alto rendimiento para mantener el flujo constante de múltiples gigabits de tráfico de red. Dentro de una red, las direcciones MAC se utilizan para enrutar el tráfico. Un conmutador sabrá a cuál de sus muchos puertos de red se deben enviar los datos para que llegue al dispositivo con la dirección MAC correcta. Para garantizar que cada paquete se envíe al lugar correcto, se busca su dirección MAC de destino. En un formato de memoria tradicional, eso llevaría algo de tiempo, lo que aumentaría la latencia de cada comunicación de red. Con la memoria asociativa, esa búsqueda puede ser mucho más rápida.

binario y ternario

La mayor parte de la memoria asociativa se basa en binario, pero algunas se basan en ternario. Una celda de memoria asociativa ternaria es similar a la binaria descrita anteriormente. Sin embargo, en lugar de tener una celda SRAM, tiene dos. Ambos juntos tienen los cuatro transistores adicionales necesarios para realizar la comparación. Esto, por supuesto, hace que la memoria asociativa ternaria sea aún más costosa que su prima binaria, entonces, ¿para qué se usa?

El segundo bit de la celda ternaria indica "cuidado" o "no me importa". Esto agrega un tercer estado a la celda y la función de búsqueda general. Ahora puede almacenar un 1, 0 o X para no importar. Esto es especialmente útil cuando se trabaja con tablas de enrutamiento de red basadas en máscaras de subred de longitud variable y con listas de control de acceso. Puede tener múltiples respuestas positivas a una sola dirección de búsqueda en ambos. Dentro de ambos, solo querrás tomar nota de la instrucción más precisa.

Como tal, una búsqueda de 192.168.20.19 puede coincidir con las siguientes reglas 192.168.20.16/28 y 192.168.0.0/16. Si estuviera realizando una búsqueda binaria estándar, tendría que realizar cálculos para verificar que la dirección se encuentra dentro de los rangos de direcciones especificados. Sin embargo, con la lógica ternaria, puede determinar si su dirección de búsqueda coincide con 192.168.xx en una sola operación. También puede determinar que la coincidencia /28 es mucho más precisa que la coincidencia /16 porque hay menos bits "no importa". Esto le permite aplicar preferentemente las reglas de control de acceso relacionadas.

Como la memoria asociativa ternaria es aún más costosa que la forma binaria, es incluso menos común. Por lo general, solo se puede encontrar en enrutadores de gama alta y conmutadores de múltiples capas.

Conclusión

La memoria asociativa es una forma de memoria que funciona de manera muy diferente a la memoria estándar. En lugar de solicitar los datos almacenados en una dirección específica, busca en toda la memoria de una sola vez las coincidencias con un término de búsqueda. Para lograr esto con niveles de alto rendimiento, las celdas de memoria se basan en una forma modificada de SRAM que presenta una o dos celdas SRAM combinadas con cuatro transistores adicionales que se utilizan para realizar la lógica de comparación de bits.

Las celdas SRAM individuales se usan en la memoria asociativa binaria, mientras que dos celdas SRAM se usan en la memoria asociativa ternaria. La variante ternaria permite almacenar un tercer valor, generalmente un 1, 0 o "no importa". Esto permite que el contenido indique que debe coincidir incluso si el término de búsqueda no es preciso.

Debido a que las celdas de memoria asociativa se basan en la costosa SRAM, son costosas, siendo la ternaria la más costosa. Debido a esto y a que su estructura está optimizada explícitamente para buscar por contenido, la memoria asociativa no se usa en la mayoría de los dispositivos.

Solo los dispositivos que se benefician particularmente de él y donde el rendimiento supera el costo inicial lo incluyen. Como tal, normalmente se encuentra exclusivamente en hardware de redes de nivel empresarial. Dentro de esa configuración, a menudo se le conoce como CAM y TCAM, para memoria direccionable de contenido y memoria direccionable de contenido ternario, respectivamente.



Leave a Comment

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!