Existem, talvez, três razões pelas quais alguém gostaria que a memória fosse dividida entre os dois processadores.
Primeiro, a interface de memória de cada processador tem uma determinada largura de banda máxima. Ao duplicar o número de processadores, essa largura de banda de memória de pico é duplicada.
Segundo, em alguns sistemas, a velocidade da interface de memória pode ser limitada pelos módulos numéricos conectados a um canal de memória, portanto, usar um módulo por canal (com o dobro de processadores e duas vezes mais canais) pode permitir maior largura de banda. . Além disso, o número de módulos de memória suportados por um processador pode forçar o uso de um módulo mais caro para fornecer a mesma capacidade total do sistema. Terceiro, se a carga de trabalho se beneficia do processamento de espalhamento para outro processador (por exemplo, grande contagem de threads ou menos segmentos que se beneficiam de mais capacidade L3 por thread) mais do que perde de maior latência (e possivelmente menor largura de banda) de alguma memória acesso indo para o outro processador, então mesmo sem otimização significativa da alocação de memória pelo SO (otimização NUMA [Non-Uniform Memory Access], alocando memória e agendando threads para que a memória anexada ao processador do thread seja usada mais frequentemente) o desempenho pode ser Melhor. Com uma otimização substancial da NUMA (que pode não ser prática para a carga de trabalho), a maioria dos acessos à memória seria uma memória local mais rápida.Em apenas dois nós, é improvável que a replicação de memória seja feita, já que o fator NUMA (quanto a memória remota mais lenta é relativa à memória local) é pequeno. Se a memória de um acesso específico for anexada a um processador remoto, a solicitação passará por uma interconexão entre processadores (QPI para Intel) para o controlador de memória do processador remoto (embora seja possível um acerto de cache no L3 desse processador) eo controlador de memória (ou Cache L3) satisfará a solicitação enviando os dados para o solicitante através da interconexão do interprocessador.
(Um sistema com um grande número de nós / processadores pode se beneficiar do conteúdo da memória de duplicação do sistema operacional - que não pode ser gravável. Alguns sistemas operacionais já usaram migração (movendo o conteúdo da memória para um nó diferente) como uma otimização NUMA. )