O que é mapeamento direto?
O mapeamento direto é um método de armazenamento de 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 em que for necessário. Na programação de computadores, um cache é uma pequena seção da memória de acesso aleatório (RAM) que é reservada para o objetivo de recuperar dados com facilidade. Com o mapeamento direto, cada pedaço de dados na memória recebe um espaço no cache, que é compartilhado com outros pedaços de dados. Os dados do cache são 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 parte dos dados, o computador verifica primeiro o cache para verificar se as informações estão lá. Se for, as informações são retornadas 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 acertos no cache é chamada de taxa de acertos. Se os dados solicitados pelo usuário não estiverem no cache, o computador os encontrará na memória. Uma cópia dos dados será depositada no cache para que possa ser encontrada rapidamente na próxima vez que o usuário solicitar, aumentando teoricamente a taxa de acertos. 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 nela, um bloco antigo será substituído.
Embora o mapeamento direto seja uma maneira muito simples e fácil de projetar um cache, ele apresenta alguns problemas. Se um programa acessar continuamente vários blocos de dados que compartilham a mesma linha em um cache de mapeamento direto, a linha será reescrita com frequência. Isso resulta em muitas falhas, porque os dados que o computador precisa têm 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.