pt.phhsnews.com


pt.phhsnews.com / Quando o cache de uma CPU é esvaziado de volta à memória principal?

Quando o cache de uma CPU é esvaziado de volta à memória principal?


Se você está começando a aprender como CPUs multi-core, cache, coerência de cache e memória funcionam, pode parecer um pouco pouco confuso no começo. Com isso em mente, a postagem de perguntas e respostas do SuperUser de hoje responde à pergunta de um curioso leitor.

A sessão de Perguntas e Respostas vem para nós, cortesia da SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade. > A Questão

Leitor SuperUser O CarmeloS quer saber quando o cache de uma CPU é liberado de volta para a memória principal:

Se eu tiver uma CPU com dois núcleos e cada núcleo tiver seu próprio cache L1, é possível que Core1 e Core2 ambos armazenam em cache a mesma parte da memória ao mesmo tempo? Se for possível, qual será o valor da memória principal se tanto o Core1 quanto o Core2 tiverem editado seus valores no cache?

Quando o cache de uma CPU é liberado de volta para a memória principal?

Os contribuidores do Answer

do SuperUser Schwartz, sleske e Kimberly W têm a resposta para nós. Primeiro, David Schwartz:

Se eu tiver uma CPU com dois núcleos e cada núcleo tiver seu próprio cache L1, será possível que Core1 e Core2 armazenem a mesma parte da memória ao mesmo tempo?

Sim, o desempenho seria terrível se não fosse esse o caso. Considere dois segmentos executando o mesmo código. Você quer esse código em ambos os caches L1.

Se for possível, qual será o valor da memória principal se tanto o Core1 quanto o Core2 tiverem editado seus valores no cache?

O valor antigo estará na memória principal, que Não importa, pois nenhum dos núcleos irá lê-lo. Antes de ejetar um valor modificado do cache, ele deve ser gravado na memória. Normalmente, alguma variante do protocolo MESI é usada. Na implementação tradicional do MESI, se um valor for modificado em um cache, ele não poderá estar presente em nenhum outro cache no mesmo nível.

Seguido pela resposta de sleske:

Sim, com dois caches de cache a mesma região de memória pode acontecer e é realmente um problema que ocorre muito na prática. Existem várias soluções, por exemplo:

Os dois caches podem se comunicar para garantir que não discordem

  • Você pode ter algum tipo de supervisor que monitora todos os caches e os atualiza de acordo
  • Cada processador monitora as áreas de memória que foi armazenado em cache, e quando ele detecta uma gravação, ele lança seu cache (agora inválido)
  • O problema é chamado de coerência de cache e o artigo da Wikipedia sobre o tópico tem uma boa visão geral do problema e possíveis soluções. > E nossa resposta final de Kimberly W:

Para responder a pergunta no título do seu post, depende do protocolo de cache. Se for write-back, o cache só será liberado de volta para a memória principal quando o controlador de cache não tiver escolha a não ser colocar um novo bloco de cache no espaço já ocupado. O bloco que ocupava anteriormente o espaço é removido e seu valor é gravado de volta na memória principal.

O outro protocolo é write-through. Nesse caso, sempre que o bloco de cache for gravado no nível

n

, o bloco correspondente no nível n + 1 será atualizado. É semelhante em conceito ao preenchimento de um formulário com papel carbono por baixo; tudo o que você escreve no topo é copiado na folha abaixo. Isso é mais lento porque obviamente envolve mais operações de escrita, mas os valores entre os caches são mais consistentes. No esquema write-back, somente o cache de nível mais alto teria o valor mais atualizado para um determinado bloco de memória. Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui Crédito de imagem: Lemsipmatt (Flickr)



Como Vender seus Cartas Colecionáveis ​​Steam (e Obter Crédito Steam Gratuito)

Como Vender seus Cartas Colecionáveis ​​Steam (e Obter Crédito Steam Gratuito)

Cartas comerciais Steam são basicamente dinheiro grátis. Assumindo que você possui alguns jogos no Steam, você provavelmente está gerando cartões comerciais do Steam sem nem perceber - e você pode vendê-los no mercado comunitário de crédito do Steam Wallet, que você pode usar para comprar jogos. fez pelo menos $ 20 em crédito gratuito no Steam usando o método abaixo.

(how-top)

Qual é a diferença entre Wi-Fi de 2,4 e 5 Ghz (e qual deles eu devo usar?)

Qual é a diferença entre Wi-Fi de 2,4 e 5 Ghz (e qual deles eu devo usar?)

Se você está procurando substituir seu antigo roteador - talvez até mesmo a atualização do seu provedor combinado modem / roteador - você pode encontrar termos como “banda dupla”, que se refere a um roteador que usa Wi-Fi de 2,4 GHz e 5 GHz. Curioso sobre o que esses números significam? Bem, não admira mais.

(how-top)