Вы находитесь на странице: 1из 4

Murilo Cesar Calado Junior Renan Marcel Vieira

Arquitetura e Organizao de Computadores Incoerncia de Cache

UNIFAL Alfenas - MG 2013

Sobre a memria cache


Cache, ou memria cache, um pequeno bloco de armazenamento de dados e de rpido acesso, geralmente localizado internamente em um processador, fazendo com que os dados usados com mais frequncia pela CPU estejam instantaneamente disponveis. A memria cache tem vrios nveis (levels), cada nvel tem uma quantidade mxima de armazenamento e uma velocidade de acesso diferente, o L1 o menor e mais rpido, o L2 maior que o L1, porm mais lento, assim sucessivamente. Ao usarmos um cache, precisamos verific-lo para ver se um determinado item est l. Em caso afirmativo, essa ao denominada acerto de cache (cache hit). Em caso negativo, denomina-se erro de cache (cache miss) e o computador precisa esperar o tempo de ida e volta memria maior e mais lenta. Localidade de referncia Significa que em um programa grande, em algum momento de sua execuo, apenas poucos bytes de informao so usados em um intervalo de tempo qualquer, e sua taxa de repetio altssima.

Cache em computadores multiprocessados


OBSERVAO: Em um sistema com apenas um processador tambm pode ocorrer incoerncia de cache quando a DMA altera algum dado na memria principal, podendo torn-lo incoerente com o valor do dado estava contido na memria cache.

Em computadores com mais de um processador operando, comum e exclusivo dessas plataformas o problema de incoerncia de cache. Que quando mltiplas cpias de uma mesma posio de memria podem vir a existir em caches diferentes ao mesmo tempo. Sendo assim, cada processador pode atualizar sua cpia local, no se preocupando com a existncia de outras cpias da mesma posio em outros processadores. Se essas cpias existirem, cpias de um mesmo endereo de memria podero possuir valores diferentes, o que caracteriza uma situao de inconsistncia de dados. Uma alternativa para eliminar completamente o problema seria no permitir que dados compartilhados para operaes de escrita sejam colocados nas caches do sistema. Estratgias de coerncia de cach o Uma operao de escrita em uma posio da cache resulta na atualizao de outras cpias desse mesmo dado em outras caches do sistema (write-update). Esta estratgia tem naturalmente um custo mais alto, especialmente em mquinas com muitos processadores, mas faz com que um novo acesso a essas cpias seja resolvido em nvel de cache.

o Uma operao de escrita em uma posio da cache resulta na invalidao de outras cpias desse mesmo dado em outras caches do sistema (write-invalidate). Esta estratgia tem um custo menor, mas resulta em uma maior latncia de acesso. As duas estratgias resolvem o problema, impedindo que sejam geradas mltiplas cpias diferentes da mesma posio de memria. Se os processadores que estavam usando as cpias antes de serem atualizadas fizerem novos acessos a esses dados, o custo das atualizaes vai ter valido a pena. Se os processadores no utilizarem esses dados novamente, o trfego gerado pelas atualizaes s onerou a rede de interconexo e no teve utilidade, neste caso, a invalidao eliminaria as cpias antigas e acabaria com uma situao de compartilhamento aparente. Protocolos de coerncia de cache: o Snoopy Distribui a responsabilidade de manter a coerncia entre todos os cachs; Envia todos os requests de dados para todos os processadores; Processadores verificam se eles tm uma cpia e respondem; Requer broadcast, j que informaes cacheadas esto nos processadores; Trabalha bem com barramento (broadcast natural); Domina as implementaes para mquinas pouco escalveis (maioria no mercado); o Diretrio Coleta e mantm informaes sobre onde as cpias dos blocos residem; Controlador central; Quando um cache local faz uma solicitao, o controlador central verifica e emite os comandos necessrios para a transferncia de dados entre o cache e a memria principal, ou entre os caches, mantendo atualizadas as informaes de estado global; Acessos exclusivos a dados; Escrita: Invalidao de outras cpias. Leitura: Solicita ao dono do dado que escreva os dados atualizados na memria. o Firefly Utiliza a poltica de write-update cuja principal idia uma cache que detecta quando outra cache compartilha um bloco de memria.

Quando uma cache atualiza a memria principal, todas as outras caches que possuem esse bloco espionam a transferncia e atualizam seus blocos.

Вам также может понравиться