
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
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
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
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.
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.