O que é mapeamento direto?
O mapeamento direto é um método de armazenar informações para facilitar o acesso em um computador. As informações usadas recentemente são armazenadas em um cache para que o computador possa encontrar rapidamente as informações na próxima vez que forem necessárias. Na programação de computadores, um cache é uma pequena seção de memória de acesso aleatório (RAM) que é reservado com o objetivo de recuperar dados facilmente. Com o mapeamento direto, cada dados na memória recebe um espaço no cache, que compartilha com outros dados. Os dados do cache estão sendo constantemente substituídos à medida que novos dados são necessários.
Um cache é organizado em linhas. Cada linha é grande o suficiente para armazenar um bloco de dados e uma tag para identificar de onde vieram os dados. Quando um usuário solicita uma peça de dados, o computador primeiro digitaliza o cache para ver se as informações estão lá. Se for, as informações são devolvidas ao usuário. Isso é conhecido como um acerto de cache, que é mais rápido do que recuperar os dados de seu local original.
A porcentagem de solicitações que resulta em hits de cache é chamada de taxa de acerto. Se os dados solicitados pelo usuário não estiverem no cache, o computador o encontrará na memória. Uma cópia dos dados será depositada no cache para que possam ser encontrados rapidamente na próxima vez que o usuário solicitar, em teoria aumentando a taxa de acerto. Tudo isso acontece nos bastidores. O usuário não sabe se os dados recebidos vieram do cache ou da memória.
O mapeamento direto é um método para decidir onde os blocos de memória serão armazenados no cache. Cada bloco de memória recebe uma linha específica no cache. Como o cache é menor que a memória, vários blocos compartilharão uma única linha no cache. Se uma linha já estiver cheia quando um novo bloco precisar ser gravado para ela, um bloco antigo será substituído.
Embora o mapeamento direto seja uma maneira muito simples e fácil de projetar um cache, ela apresenta alguns problemas. Se um programa acessar continuamente o MultiBlocos de dados que compartilham a mesma linha em um cache de mapeamento direto, a linha será reescrita com frequência. Isso resulta em muitas erros, porque os dados que o computador precisa tem menos probabilidade de serem os dados que estão realmente nessa linha de cache no momento. Portanto, o mapeamento direto tem uma taxa de acerto mais baixa do que outros modelos de mapeamento de cache.