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)



Os Atalhos de Teclado Mais Úteis para a Barra de Tarefas do Windows

Os Atalhos de Teclado Mais Úteis para a Barra de Tarefas do Windows

Não há uma maneira mais rápida de navegar em seu computador do que com atalhos de teclado, e o Windows continua adicionando mais a cada nova versão. Tudo começa na barra de tarefas e no menu Iniciar, por isso é muito útil usá-los sem precisar clicar no mouse. Aqui estão alguns atalhos de teclado úteis para trabalhar com a barra de tarefas do Windows Atalhos de teclado para trabalhar com o menu Iniciar Não há muitos atalhos de teclado específicos para trabalhar com o menu Iniciar, mas você ainda pode usar o teclado para navegar e iniciar aplicativos.

(how-top)

Como personalizar ou desativar o Siri no HomePod

Como personalizar ou desativar o Siri no HomePod

Embora não seja o principal ponto de venda do HomePod, os recursos do Siri permitem que você controle o alto-falante usando sua voz sem precisar retirar o telefone toda vez. Veja como personalizar o Siri no HomePod (ou apenas desativá-lo completamente) RELACIONADO: Como configurar o Apple HomePod Antes de começarmos, observe que cada uma das configurações que conversamos sobre abaixo é acessível através do aplicativo Home.

(how-top)