O que é uma escrita, senhorita?
No contexto dos sistemas de memória de computador, particularmente em caches, a
escreva miss ocorre quando a CPU (ou outro dispositivo) deseja
escrever dados Para um local específico da memória, mas esse local não está presente atualmente no cache .
Aqui está um colapso:
1.
pesquisa de cache: Quando a CPU deseja gravar em um endereço de memória específico, ele primeiro verifica o cache para ver se uma cópia do bloco de memória correspondente já está armazenada lá.
2.
Comparação de tags: O cache usa o endereço de memória para determinar qual linha de cache (se houver) deve conter os dados solicitados. Em seguida, ele compara a "tag" associada a essa linha de cache com a parte relevante do endereço da memória. Se as tags corresponderem, é um acerto de cache; Se eles não correspondem, ou a linha de cache está vazia, é uma falta.
3.
Escreva Miss: Se a comparação de tags falhar (o que significa que os dados não estão no cache), a
escreva miss ocorre.
Impacto no desempenho do sistema de computador
As perdas de gravação podem afetar significativamente o desempenho de um sistema de computador, pois exigem que o sistema recupere os dados necessários da memória principal (RAM), que é muito mais lenta do que acessar o cache. Aqui está como:
1.
paralisando: Quando uma falta de gravação acontece, a CPU normalmente precisa
paralisação (Execução de pausa). Isso ocorre porque a CPU não pode escrever os dados até que o bloco de memória correspondente seja trazido para o cache.
2.
Latência de acesso à memória: O acesso à memória principal leva significativamente mais do que acessar o cache. Essa latência é adicionada ao tempo geral de execução do programa.
3. Substituição da linha de cache
: Depois de recuperar os dados necessários da memória principal, o cache precisa abrir espaço para isso. Isso geralmente envolve despejar (remover) uma linha de cache existente para dar espaço. A escolha de qual linha a ser despejada é determinada pela política de substituição do cache (por exemplo, menos recentemente usada - LRU). Se a linha despejada estivesse suja (modificada), ela deve ser escrita de volta à memória principal antes de ser despejada, aumentando ainda mais a latência.
4.
Aumento do tráfego de memória: As perdas de gravação geram tráfego adicional no barramento de memória, que é o canal de comunicação entre a CPU e a memória principal. O aumento do tráfego de memória pode levar à contenção e desacelerar ainda mais o sistema.
Em resumo, escreva o desempenho de degradação de degradação devido a: * A CPU para enquanto aguarda dados da memória principal.
* A latência inerente ao acesso à memória principal.
* Writebacks potenciais de linhas de cache sujo para a memória principal antes do despejo.
* Aumento do tráfego no barramento de memória.
Estratégias para mitigar o impacto das perdas de gravação
Várias técnicas são usadas para minimizar o impacto das perdas de gravação:
*
tamanhos de cache maior: Um cache maior tem uma maior probabilidade de conter os dados necessários para uma operação de gravação, reduzindo a probabilidade de uma falta de gravação.
* Cache associativo: Os caches associativos permitem que um bloco de memória seja colocado em qualquer uma das várias linhas de cache, o que reduz a chance de erros de conflito (onde vários blocos de memória competem pelo mesmo local de cache).
*
Buffers de gravação: Os buffers de gravação são pequenas áreas de armazenamento rápido que mantêm temporariamente os dados aguardando para serem gravados na memória principal. A CPU pode gravar os dados no buffer de gravação e continuar processando enquanto o buffer de gravação transfere de forma assíncrona os dados para a memória principal. Isso esconde parte da latência da memória principal grava.
*
Write-through vs. Write-Back Caches: *
caches de gravação: Cada gravação no cache também atualiza imediatamente a memória principal. Isso simplifica o protocolo de coerência do cache, mas pode gerar tráfego de memória significativo.
*
caches de gravação: As gravações são inicialmente feitas apenas para o cache. A linha de cache é marcada como "suja". Os dados são gravados de volta à memória principal somente quando a linha de cache é despejada. Isso reduz o tráfego de memória, mas requer protocolos de coerência de cache mais complexos.
*
Preparação de cache: Técnicas como hardware ou pré -busca de software podem prever quais dados serão necessários no futuro e trazer proativamente esses dados para o cache, potencialmente evitando erros de gravação.
*
Localidade de dados: Otimizar o código para melhorar a localidade de dados (manter os dados relacionados próximos na memória) pode aumentar as chances de acertos de cache e reduzir a ocorrência de erros de gravação.