O que é memória compartilhada?

Os computadores modernos têm muita memória. Cada CPU tem seu cache e cada programa em execução recebe sua parte da RAM do sistema. Existem muitas maneiras diferentes de usar e atribuir essa memória. A memória compartilhada é um conceito que afeta os caches da CPU e o uso da RAM do sistema de maneiras diferentes.

Memória Compartilhada em Hardware

A maioria das CPUs modernas tem três camadas de cache, conhecidas como L1, L2 e L3. L1 é o cache menor e mais rápido, enquanto L3 é o maior e mais lento. No entanto, todos eles são mais rápidos do que acessar a memória principal, tornando a taxa de acerto crítica para o desempenho. Muitos fatores tornam o cache L1 mais rápido que o L3. Em primeiro lugar, as células de memória L1 são fisicamente maiores. Também há menos deles e estão localizados muito mais perto do núcleo da CPU, geralmente dentro dele.

Colocar um bloco de cache dentro da área de matriz de um núcleo vem com complexidade extra em CPUs multicore. Neste ponto, você pode optar por ter um cache em cada núcleo ou fora dos núcleos, especificamente entre eles. Cada um tem suas vantagens e desvantagens.

Colocar um cache em um núcleo minimiza a latência de acesso, mas também significa que cada núcleo precisa de seu cache. Isso significa que você pode acabar com linhas de cache duplicadas nos caches L1 de diferentes núcleos, reduzindo a eficiência do espaço de cache. Isso é chamado de cache local e, embora seja ótimo para tempo de acesso, é menos eficiente no uso do espaço de cache e requer sobrecarga extra em termos de coerência de cache.

Um cache compartilhado é um cache que está disponível para vários ou todos os núcleos em uma CPU multicore. Um cache compartilhado significa que vários núcleos podem acessar uma instância de dados específicos, limitando o espaço desperdiçado devido à duplicação. Isso também significa que um núcleo pode reivindicar temporariamente mais do que sua parte justa do espaço de cache, se necessário, enquanto os outros núcleos não. Isso vem com o custo de maior tempo de acesso.

Caches compartilhados na prática

CPUs modernas usam ambos os conceitos, com cada núcleo tendo um cache L1 local. O cache L3 tende a ser compartilhado entre muitos núcleos, embora às vezes nem todos. O L2 varia, mas pode ser local ou compartilhado, dependendo da arquitetura de geração da CPU específica.

Dica: para CPUs chiplet como modelos AMD Ryzen de ponta, os caches podem ser compartilhados entre todos os núcleos em um chiplet em vez de com todos os núcleos em toda a CPU. Não importa quantos núcleos um cache é compartilhado; mesmo que sejam apenas dois, ainda é um cache compartilhado, embora valha a pena destacar que é apenas parcialmente compartilhado.

Nota: A RAM do sistema também pode ser compartilhada entre várias CPUs físicas em uma única placa-mãe ou entre nós em um sistema multi-CPU.

Memória Compartilhada em Software

Em computadores modernos, o software não consegue endereçar a memória física diretamente. Em vez disso, é atribuído um segmento de endereço virtual e o computador converte esses endereços virtuais em endereços físicos conforme necessário. Isso ajuda a isolar a memória para processos individuais, o que é útil para a segurança.

Em alguns casos, pode ser desejável transferir dados na memória de um processo para outro. A maneira mais eficiente de fazer isso é permitir que os dois processos compartilhem espaço de memória. Dessa forma, ambos os processos podem ler os mesmos dados e se comunicar entre si. Isso também ajuda a usar a RAM do sistema com eficiência, pois os dados não são duplicados.

A memória compartilhada por software normalmente será obtida mantendo uma cópia física dos dados e mapeando o acesso a ela por meio da memória virtual para cada processo que precisa acessá-la.

Conclusão

A memória compartilhada é o conceito de ter uma seção de memória acessível por várias coisas. Isso pode ser implementado tanto em hardware quanto em software. O cache da CPU pode ser compartilhado entre vários núcleos de processador. Esse é especialmente o caso de camadas mais altas de cache da CPU. A memória do sistema também pode ser compartilhada entre várias CPUs físicas em um único sistema maior.

No software, a memória compartilhada pode permitir a comunicação entre processos IPC. Um processo aloca memória conforme compartilhado com um ou mais processos específicos. Esses outros processos podem acessar esse local de memória por meio do mapeamento de memória virtual. A memória compartilhada ajuda a garantir o uso eficiente do espaço de memória, evitando a duplicação de dados em um espaço limitado.



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