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

O Que Fazer Se o Powerbeats Pro Não Carregar no Estojo

O Que Fazer Se o Powerbeats Pro Não Carregar no Estojo

Se o seu Powerbeats Pro não estiver carregando, experimente usar outra fonte de energia e limpe seus fones de ouvido. Deixe o estojo aberto enquanto carrega seus fones.

Canon Pixma MG5220: Digitalize sem Tinta

Canon Pixma MG5220: Digitalize sem Tinta

Como ativar a digitalização na Canon Pixma MG5220 quando você ficar sem tinta.

5 Motivos pelos Quais Seu Laptop Está Superaquecendo

5 Motivos pelos Quais Seu Laptop Está Superaquecendo

Descubra algumas das possíveis razões pelas quais seu laptop está superaquecendo, juntamente com dicas e truques para evitar esse problema e manter seu dispositivo fresco.

Como Corrigir o Código de Erro 0xC272008F do GeForce Now

Como Corrigir o Código de Erro 0xC272008F do GeForce Now

Você está se preparando para uma noite de jogos, e será uma grande noite – você acaba de adquirir “Star Wars Outlaws” no serviço de streaming GeForce Now. Descubra a única solução conhecida que mostra como corrigir o Código de Erro 0xC272008F do GeForce Now para que você possa começar a jogar jogos da Ubisoft novamente.

Fundamentos da Impressão 3D: Dicas de Manutenção para a Sua Impressora 3D

Fundamentos da Impressão 3D: Dicas de Manutenção para a Sua Impressora 3D

Manter suas impressoras 3D é muito importante para obter os melhores resultados. Aqui estão algumas dicas importantes a serem lembradas.

Como Encontrar o Endereço IP de uma Impressora

Como Encontrar o Endereço IP de uma Impressora

Está tendo dificuldades para descobrir qual endereço IP sua impressora está usando? Vamos mostrar como encontrá-lo.

Como desligar o Roku

Como desligar o Roku

Descubra como desligar o Roku Player, enquanto aprende sobre suas opções de economia de energia e melhores práticas.

O que é SLI?

O que é SLI?

SLI ou Scalable Link Interface é uma tecnologia da Nvidia que permite que várias placas gráficas trabalhem juntas para obter maior desempenho.

O que é N-Key Rollover e Anti-Ghosting?

O que é N-Key Rollover e Anti-Ghosting?

Entenda os conceitos de N-key rollover e Anti-Ghosting, dois recursos essenciais em teclados para gamers que melhoram a experiência de jogo.

O que é VRAM?

O que é VRAM?

VRAM, ou Video Random Access Memory, é uma forma essencial de RAM utilizada em processadores gráficos, fundamental para o desempenho em videogames.