Formas de Endereçamento de Cache
1366 palavras
6 páginas
Memória cache A memória cachê foi fundamentada sobre o principio de localidade. Ela guarda os dados utilizados com maior frequência pelo processador, observando que um dado utilizado várias vezes tem grande possibilidade de ser usado novamente (localidade temporal) e que as posições contiguas a outra na memória tem uma probabilidade de acesso consecutivamente alta (localidade espacial). Assim, quando o processador solicita um dado que não esteja presente nos seus registradores, ou seja, precise ser buscado na memória, ele irá procurar primeiro na cache, onde o dado pode ser acessado mais rapidamente. Se for encontrado, ele executa a operação de leitura/escrita que lhe foi passada, caso contrário, vai buscar a informação na memória principal, gastando um tempo maior para isso. A partir da temporalidade, portanto, têm-se uma segurança que, de acordo com o tamanho da cache e do código em relação a memória principal, a chance de ser necessário o acesso da memória principal diminui significativamente, agilizando a execução dos processos no hardware. Podemos notar a localidade temporal quando executamos um loop, em especial com a variável contadora em um for, e a localidade espacial no caso dos vetores, que guardam informações semelhantes em sequência. Contextualizando em uma situação real, é como se estivéssemos em uma biblioteca com vários livros em nossa mesa (cache) que tratam de assuntos parecidos(localidade espacial) e que são acessados repetidamente (localidade temporal). Outros pontos considerados no projeto de um cache é o seu tamanho, que impacta diretamente no seu custo, e a política de acesso, atualização e consistência dos dados, tanto na cache quanto na memória principal. Estes pontos são:
Mapeamento direto
O mapeamento direto é um modelo de endereçamento da memória principal na memória cache de forma que um dado endereço da primeira pode ser relacionado com um único endereço da segunda. Uma vez que exista uma grande diferença entre o