O que é coerência de cache?
A coerência do cache é o problema natural que se desenvolve quando o conjunto de dados de um sistema é acessado e alterado por vários agentes. A área principal da arquitetura de computadores, onde isso se torna um problema é em computadores multiprocessadores. Cada processador em um computador multiprocessador possui seu próprio cache que carrega e armazena informações da memória de acesso aleatório (RAM). Quando dois processadores estão acessando a mesma área de memória, a coerência do cache seria perdida se certas precauções não fossem tomadas.
Sem coerência do cache, um sistema multiprocessador não conseguiria funcionar. Existem vários métodos que foram desenvolvidos para resolver esse problema e evitar problemas em potencial. Coerência, bisbilhoteira e rosnada baseados em diretórios são três métodos usados para impedir a perda de coerência do cache.
A coerência baseada no diretório funciona como um filtro para garantir a coerência. Os dados são colocados dentro de uma parte da memória acessível a todos os processadores. Quando a informação que euS Armazenado nessa área de memória é alterado, o sistema atualizará os caches ou os invalidará.
O Snooping exige que o processador monitore todos os acessos aos locais de memória que foram armazenados em cache. Isso permite que o processador saiba quando ocorreu uma operação de gravação. Ao saber quando ocorre uma operação de gravação, o processador pode atualizar seu cache.
Snarfing é bastante semelhante ao Snooping. O rosnado envolve não apenas o monitoramento dos acessos a locais de memória que foram armazenados em cache, mas também monitorando as informações reais armazenadas na memória. Quando ocorre uma gravação de memória, o cache pode ser atualizado com as novas informações.
Os sistemas de coerência baseados em diretório têm uma latência relativamente alta, resultando em processamento mais lento. Os requisitos mais baixos de largura de banda permitem que os sistemas de coerência baseados em diretórios sejam práticos em aplicações em larga escala da coerência do cache. ElesProcessadores de minério que um sistema usa, quanto mais vantagens ele pode ter ao usar um sistema de coerência baseado em diretório.Snooping é um método muito mais rápido. Este método requer mais largura de banda do que a abordagem baseada em diretório. Este método é capaz de ser usado efetivamente em sistemas que possuem relativamente poucos processadores.
rosnar geralmente não é usado como método de manutenção da coerência do cache. Isso ocorre principalmente porque o rosnado requer mais recursos a serem usados em comparação com os métodos de bisbilhoteiros e baseados em diretórios. Para que um sistema de rosnado funcione, ele deve acompanhar os endereços de memória e os dados armazenados nessas áreas de memória. A quantidade de largura de banda e processamento que é adotada por esse método o torna indesejável para a maioria das aplicações de manutenção da coerência do cache.