Memoria compartilhada

A memória compartilhada é usada emtecnologia de computador e pode descrever uma tecnologia diferente, dependendo do contexto:

Memória compartilhada na comunicação entre processos (IPC)

Aqui, dois ou mais processos compartilham uma certa parte da memória de fundo (RAM). Esta área de memória compartilhada está em seu espaço de endereço para todos os processos envolvidos e pode ser lida e alterada com operações normais de acesso à memória. Isso geralmente é feito usando mecanismos de paginação em que ambos os processos usam os mesmos descritores de página, o que significa que a mesma página de memória (bloco) é usada na memória de fundo. A maioria dos sistemas operacionais modernos oferece mecanismos para compartilhar memória.

Memória compartilhada em sistemas multiprocessadores

Memoria compartilhada

Em arquiteturas MIMD , uma distinção é feita entre sistemas fortemente acoplados e fracamente acoplados , com sistemas multiprocessados pertencentes à classe de sistemas fortemente acoplados. Em sistemas multiprocessadores intimamente acoplados, os vários processadores compartilham uma memória comum ( memória compartilhada ). Em comparação com as arquiteturas MIMD fracamente acopladas, isso tem as seguintes vantagens:

  • todos os processadores têm a mesma visão dos dados e podem, portanto, comunicar-se uns com os outros de maneira simples
  • a memória compartilhada pode ser acessada muito rapidamente

Por essas razões, um sistema MIMD fortemente acoplado é geralmente mais fácil de programar do que um sistema MIMD fracamente acoplado. No entanto, a memória compartilhada pode rapidamente se tornar um gargalo se houver muitos processadores, uma vez que (com um barramento de memória compartilhada ) apenas um processador pode acessar a memória por vez. Para neutralizar isso, caches são geralmente usados, i. H. Os processadores salvam os valores lidos em sua própria memória privada e só precisam atualizá-los se eles ou outro processador os alteraram. Para conseguir isso da maneira mais eficiente possível, técnicas como bus snooping e write-through caches são usadas.

Sistemas multiprocessadores orientados para conexão

Mesmo quando usando as técnicas acima mencionadas, os sistemas multiprocessadores orientados ao barramento descritos não podem ser escalados particularmente bem (isto é, expandidos por outros processadores), uma vez que cada processador adicionado aumenta o número de acessos ao barramento. Em algum momento, o ônibus ficará sem capacidade. Por esta razão, o conceito de sistemas multiprocessadores orientados a conexões foi desenvolvido. O acesso à memória de um processador não bloqueia toda a memória, mas apenas uma parte dela. Isso é conseguido usando tecnologias como distribuidores de barras cruzadas ou redes ômega . No entanto, essas tecnologias são caras, razão pela qual, na prática, arquiteturas MIMD fracamente acopladas , como clusters de computador, são usadas em vez de sistemas multiprocessadores orientados por conexão (estreitamente acoplados) para aumentar o poder de computação .

Tecnologia de memória compartilhada em placas gráficas

Alguns fabricantes de placas gráficas oferecem placas gráficas com "tecnologia de memória compartilhada", porém este não é o mecanismo IPC mencionado, mas um processo em que a placa gráfica também utiliza a memória principal de um computador , também conhecido como processador gráfico integrado . Por um lado, isso pode tornar o hardware gráfico e a CPU mais lento porque o barramento de memória pode agora se tornar um gargalo. Por outro lado, tem a vantagem de que a placa de vídeo geralmente pode ser vendida mais barata porque não requer memória própria. Essa tecnologia é usada principalmente em notebooks , embora haja ainda mais vantagens a serem mencionadas. Ao economizar em chips de memória gráfica adicionais, é obtida uma melhor eficiência energética e, como regra, ajuda os notebooks a ter uma vida útil mais longa da bateria . Além disso, quase todos os provedores de memória compartilhada, assim como os modelos Intel GMA , oferecem uso variável da memória principal. 256 MB podem ser endereçados e usados, mas normalmente apenas uma fração é usada (por exemplo, 16 MB). Na AMD , a memória compartilhada se chama UMA , e a atenção é sempre voltada para técnicas que reduzem o problema de throughput de memória.

A tecnologia de memória compartilhada está cada vez mais sendo usada em notebooks de negócios, notebooks ultra-portáteis ( subportáteis ) e notebooks baratos. Os sistemas atuais passaram a endereçar a memória principal por meio de controladores de memória de canal duplo , o que aumenta a largura de banda. O objetivo disso é diminuir o problema de gargalo para que ambos os processadores possam acessá-lo rapidamente.

Desenvolvimentos adicionais

Os termos TurboCache ( Nvidia ) e HyperMemory ( ATI ) são termos de marketing para tecnologias em placas de vídeo que usam memória compartilhada . Eles combinam o conceito de memória compartilhada com a própria memória da placa de vídeo (que é comparativamente pequena por motivos de custo), o que significa que, além de uma grande memória compartilhada , também está disponível uma memória local rápida.