Coerência de Cache
Mateus Knob mateusknob@outlook.com Luis Fernando Costa luisfernando.costa@outlook.com Unijuí - Universidade Regional do Noroeste do Estado do Rio Grande do Sul
Rod. RS-344 - Alto da Prenda
98900-000, Santa Rosa – RS, Brasil
Resumo— Este artigo apresenta o problema da coerência de cache, exemplificando o mesmo e informando alguns dos protocolos utilizados para minimizar ao máximo os efeitos causados por tal problema.
I. Introdução
Sistemas que usam um único processador são chamados de uniprocessadores e geralmente fazem uso de uma ou mais memórias alternativas, chamadas de cache. A cache nada mais é do que um espaço de memória alocado mais próximo do processador do que a memória principal. Este espaço, por ser mais próximo, é muito mais rápido de ser acessado pelo processador fazendo com que o mecanismo em questão ganhe desempenho. O problema da cache é conseguir manter a coerência dos dados para garantir que os mesmos estejam sincronizados com as atualizações realizadas ao longo do processamento.
II. O Problema da coerência de cache
O mecanismo de cache em uniprocessadores é simples pois é existe apenas um espaço para a cache e somente um processador acessa a única cópia dos dados da memória. Em casos de multiprocessadores é que o problema da coerência de cache se encontra: cada processador possui uma cache e múltiplas cópias dos mesmos dados da memória podem ser encontrados em várias caches diferentes (figura 1).
Justamente essa coexistência de dados são repetidos é o problema da coerência de cache (figura 2).
Figura 1. Cache em multiprocessadores
Figura 2. O problema de coerência de cache
III. Como resolver o problema de coerência de cache
Para se resolver o problema da coerência de cache se tem dois tipos de soluções: as baseadas em software e as baseadas em hardware.
Nas soluções baseadas em software é de responsabilidade do compilador ou do sistema operacional garantir a coerência de cache. A vantagem dessa