O que é memória associativa?

A maior parte da memória é armazenada e acessada da mesma maneira. O conteúdo é salvo e depois recuperado usando um endereço de memória. Isso geralmente é útil e é usado quase universalmente. Infelizmente, há um pequeno problema com esse estilo de armazenamento. É excelente se você souber onde os dados de que precisa estão armazenados. Ele não funciona bem se você deseja pesquisar uma entrada específica.

Digamos que você queira encontrar um arquivo; você se lembra do nome, mas não da pasta que salvou. Seu computador pode procurar o nome do arquivo, mas, a menos que você o tenha usado recentemente, geralmente é muito lento realizar a pesquisa. E isso levando em consideração que os sistemas de arquivos são armazenados como nomes e endereços de arquivos.

A memória associativa, também conhecida como Content Addressable Memory, ou CAM, foi projetada para ser pesquisada por seu conteúdo. Infelizmente, implementar memória associativa é muito caro. Isso significa que ele é usado apenas em alguns casos, geralmente em hardware de rede de ponta. A memória de nome associativa vem do fato de ser uma implementação de hardware de uma matriz de software associativa.

Estrutura celular

A memória associativa é usada apenas onde é necessário um desempenho extremamente alto. Como tal, é baseado em SRAM em vez de DRAM. Como ponto de partida, isso por si só o torna caro. A DRAM usa um transistor e um capacitor por bit, e a SRAM usa um total de 6 transistores. Para pesquisar com eficiência o conteúdo de uma célula de memória, cada célula é modificada para ter um circuito de comparação. Isso adiciona um total de mais 4 transistores a cada célula. Isso significa que a memória associativa é significativamente menos densa que a SRAM, que já é uma forma cara de armazenamento.

Uso

A memória associativa é cara e otimizada exclusivamente para correspondência de pesquisas baseadas em conteúdo. Como tal, só é realmente utilizado em dispositivos que necessitam constantemente de realizar este tipo de pesquisa; mesmo assim, normalmente é limitado a modelos de última geração. Geralmente, existem apenas dois locais principais onde a memória associativa é usada, switches de rede e roteadores.

O hardware de rede, como switches e roteadores, deve oferecer níveis de alto desempenho para manter vários gigabits de tráfego de rede fluindo constantemente. Dentro de uma rede, os endereços MAC são usados ​​para rotear o tráfego. Um switch saberá para qual de suas muitas portas de rede os dados precisam ser enviados para que ele chegue ao dispositivo com o endereço MAC correto. Para garantir que cada pacote seja enviado para o lugar certo, seu endereço MAC de destino é procurado. Em um formato de memória tradicional, isso levaria algum tempo, aumentando a latência de cada comunicação de rede. Com a memória associativa, essa busca pode ser muito mais rápida.

Binário e Ternário

A maioria das memórias associativas é baseada em binário, mas algumas são baseadas em ternárias. Uma célula de memória associativa ternária é semelhante à binária descrita acima. Em vez de ter uma célula SRAM, no entanto, ele tem duas. Ambos juntos possuem os quatro transistores extras necessários para realizar a comparação. Isso, é claro, torna a memória associativa ternária ainda mais cara do que sua prima binária, então para que ela é usada?

O segundo bit da célula ternária indica “cuidado” ou “não me importo”. Isso adiciona um terceiro estado à célula e à função de pesquisa geral. Agora ele pode armazenar um 1, 0 ou X para não importa. Isso é particularmente útil ao lidar com tabelas de roteamento de rede baseadas em máscaras de sub-rede de comprimento variável e com listas de controle de acesso. Você pode ter várias respostas positivas para um único endereço de pesquisa em ambos. Dentro de ambos, você só quer anotar a instrução mais precisa.

Como tal, uma pesquisa por 192.168.20.19 pode corresponder às seguintes regras 192.168.20.16/28 e 192.168.0.0/16. Se você estivesse realizando uma pesquisa binária padrão, teria que realizar cálculos para verificar se o endereço está dentro dos intervalos de endereços especificados. Com lógica ternária, no entanto, você pode determinar se seu endereço de pesquisa corresponde a 192.168.xx em uma única operação. Você também pode determinar que a correspondência /28 é muito mais precisa do que a correspondência /16 porque há menos bits "não importa". Isso permite que você aplique preferencialmente as regras de controle de acesso relacionadas.

Como a memória associativa ternária é ainda mais cara que a forma binária, ela é ainda menos comum. Geralmente, só pode ser encontrado em roteadores de ponta e switches multicamadas.

Conclusão

A memória associativa é uma forma de memória que funciona de maneira muito diferente da memória padrão. Em vez de solicitar os dados armazenados em um endereço específico, ele pesquisa toda a memória de uma só vez em busca de correspondências para um termo de pesquisa. Para conseguir isso com níveis de alto desempenho, as células de memória são baseadas em uma forma modificada de SRAM com uma ou duas células SRAM combinadas com quatro transistores extras usados ​​para executar a lógica de comparação de bits.

Células SRAM simples são usadas na memória associativa binária, enquanto duas células SRAM são usadas na memória associativa ternária. A variante ternária permite armazenar um terceiro valor, normalmente 1, 0 ou “não importa”. Isso permite que o conteúdo indique que deve corresponder, mesmo que o termo de pesquisa não seja preciso.

Como as células de memória associativa são baseadas na cara SRAM, elas são caras, sendo a ternária a mais cara. Por conta disso e de sua estrutura ser otimizada explicitamente para busca por conteúdo, a memória associativa não é utilizada na maioria dos dispositivos.

Apenas os dispositivos que se beneficiam particularmente dele e onde o desempenho supera o custo inicial o apresentam. Como tal, normalmente é encontrado exclusivamente em hardware de rede de nível empresarial. Dentro dessa configuração, muitas vezes é referido como CAM e TCAM, para Memória Endereçável por Conteúdo e Memória Endereçável por Conteúdo Ternário, respectivamente.



Leave a Comment

Como clonar um disco rígido

Como clonar um disco rígido

Na era digital moderna, onde os dados são um bem valioso, a clonagem de um disco rígido no Windows pode ser um processo crucial para muitos. Este guia completo

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Você está enfrentando a mensagem de erro ao inicializar o computador, informando que o driver WUDFRd falhou ao carregar no seu computador?

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Você está enfrentando o código de erro 0x0003 da experiência NVIDIA GeForce em sua área de trabalho? Se sim, leia o blog para descobrir como corrigir esse erro de forma rápida e fácil.

Noções básicas de impressão 3D: adesão à base da impressora

Noções básicas de impressão 3D: adesão à base da impressora

Aprendendo sobre impressão 3D? Aqui está o que você precisa saber sobre a adesão da base da impressora.

Como remover uma GPU do Windows PC em 2023

Como remover uma GPU do Windows PC em 2023

Você precisa remover a GPU do seu PC? Junte-se a mim enquanto explico como remover uma GPU do seu PC neste guia passo a passo.

Como instalar um SSD NVMe em um desktop e laptop

Como instalar um SSD NVMe em um desktop e laptop

Comprou um novo SSD NVMe M.2, mas não sabe como instalar? Continue lendo para saber como instalar um SSD NVMe em um laptop ou desktop.

O que é uma bomba lógica?

O que é uma bomba lógica?

Uma bomba lógica é um incidente de segurança em que um invasor configura uma ação atrasada. Continue lendo para saber mais.

O que é Stuxnet?

O que é Stuxnet?

O Stuxnet era um worm autopropagado. Foi o primeiro uso de uma arma cibernética e a primeira ocorrência de malware.

O que é um hacker ético?

O que é um hacker ético?

Um hacker ético é um hacker que age dentro das restrições da lei. Continue lendo para saber mais sobre o assunto.

O que é criptografia simétrica?

O que é criptografia simétrica?

Existem muitas partes diferentes da criptografia. Se você deseja criptografar alguns dados, existem dois tipos de algoritmos que você pode usar: simétrico