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 encontrar seu telefone Android perdido ou roubado

Como encontrar seu telefone Android perdido ou roubado

Você está tendo uma noite fora. Com o jantar na escotilha, você está andando pela rua com sua namorada para o próximo destino. Você coloca a mão no bolso para puxar o telefone, quando esse sentimento atinge a boca do seu estômago: seu telefone está faltando. Você deixou no restaurante? Ou talvez em casa?

(how-top)

Por que você deve se preocupar sempre que o banco de dados de senhas de um serviço é vazado

Por que você deve se preocupar sempre que o banco de dados de senhas de um serviço é vazado

“Nosso banco de dados de senhas foi roubado ontem. Mas não se preocupe: suas senhas foram criptografadas. ”Nós regularmente vemos declarações como essa online, incluindo ontem, do Yahoo. Mas devemos realmente assumir essas garantias pelo valor de face? A realidade é que o banco de dados de senhas compromete são uma preocupação, não importa o quanto uma empresa possa tentar manipulá-la.

(how-top)