As três frases discutem estratégias de escrita em cache, incluindo write-through, onde os dados são escritos tanto na cache quanto na memória principal, garantindo consistência entre os dois.
Enquanto os processadores tornaram-se quase 10 mil vezes mais rápidos desde o 8088 (o processador usado no XT), a memória RAM, sua principal ferramenta de trabalho, pouco evoluiu em performance.
Quando foram lançados os processadores 386, percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar "esperando" os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho.
Quando se fala de cache, imediatamente se vem a memória as internas ao processador, mas existem outros tipos:
No exemplo acima, um hd da samsung com 160GB e com 8MB de cache.
Quando ocorre cache miss, uma nova linha deve ser trazida da memória principal para a cache. Em que local da cache será colocada esta linha?
A estratégia de substituição define qual linha será tirada da cache para dar lugar a nova.
Substituição aleatória:Neste caso é escolhida uma posição qualquer da cache aleatóriamente para ser substituída.
First-in First-out:Remove a linha que está a mais tempo na cache.
LRU - Least Recently UsedMenos recentemente utilizado.
qualquer requisição de acesso à memória é feito pela cache, se fizer a escrita de uma posição que estiver armazenada na cache, e esta alteração não for repassada para a memória principal, pode-se perder a atualização quando a linha da cache for substituída. Para evitar esse problema pode-se adotar duas estratégias:
Write-Through (Escreve Através)
A política Write-Through passa cada operação não somente para a memória cache, mas também para a memória principal, garantindo desta forma que o tem na cache tem na memória principal. Toda vez que escrever na cache, também escreve na principal.
É facil de se emplementar.
Mas é lenta
A política Write-Back só escreve no cache. Quando o barramento estiver livre é que vai procurar na memória principal. Sua desvantagem é que quando a memória cache estiver cheia tem que garantir que o que está na cache, também está na memória principal. A política Write-back é mais complicada para ser implementada, mas fornece mais alta performance que a política write-through.
Exemplo da política de escrita Write-Back:
A CPU lê dados da memória.
A CPU modifica os dados.
A CPU escreve dados no cache.
Bus Master tenta ler dados desatualizados.
A controladora Cache pára o bus clock.
Ocorre a Write-Back.
A controladora Cache reinica o bus clock.
Bus Master efetua o comando pronto.