Programação  
 
Rede de conhecimento computador >> Programação >> C /C + + programação >> Content
O que é mapeamento direto e função?
O mapeamento direto é um projeto de memória cache em que cada endereço de memória é mapeado para uma linha de cache específica. Isso significa que existe apenas um local de cache possível para cada endereço de memória. O mapeamento direto é simples de implementar e tem baixa sobrecarga de hardware, mas pode resultar em conflitos de cache se vários endereços de memória forem mapeados para a mesma linha de cache.

Para calcular o índice da linha de cache para um determinado endereço de memória, o endereço de memória é dividido pelo tamanho da linha de cache. O restante desta divisão é o índice da linha de cache. Por exemplo, se o endereço de memória for 0x100 e o tamanho da linha de cache for 16 bytes, o índice da linha de cache será 4.

A função de mapeamento direto mapeia um endereço de memória para um índice de linha de cache de acordo com a seguinte fórmula:

```
cacheLineIndex =mod_memoryAddress cacheLineSize
```

Onde:

* cacheLineIndex é o índice da linha de cache
* memoryAddress é o endereço da memória
* cacheLineSize é o tamanho da linha do cache

Aqui está um exemplo de como funciona o mapeamento direto. Considere um cache com tamanho de linha de cache de 16 bytes. A tabela a seguir mostra os endereços de memória mapeados para cada índice de linha de cache:

| Índice de linha de cache | Endereços de memória |
|---|---|
| 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |
| 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |
| 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |
| 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |
| ... | ... |

Agora digamos que queremos acessar o endereço de memória 0x123. Para calcular o índice da linha de cache para este endereço, dividimos 0x123 por 16. O restante desta divisão é 3. Portanto, o índice da linha de cache para o endereço de memória 0x123 é 3.

De acordo com a tabela acima, o índice de linha de cache 3 é mapeado para os endereços de memória 0x300, 0x310, 0x320, ..., 0x3F0. Portanto, o endereço de memória 0x123 é mapeado para a linha de cache que contém os endereços de memória 0x300, 0x310, 0x320, ..., 0x3F0.

Anterior :

Próximo :
  Os artigos relacionados
·Como externo um membro estático 
·Como usar o comando printf em C + + 
·Como calcular a soma dos números ímpares em Linguagem…
·Conceitos básicos do computador em Turbo C + + 
·Exibindo uma mensagem em C + + 
·Como usar o C + + Classe Template Especialização 
·Como salvar dados no XCode para o iPhone 
·Como usar SQLite3 em um iPhone App 
·Como alocar uma matriz 2D usando malloc 
·Diferença entre C & Visual C 
  Artigos em destaque
·Como modificar um arquivo de texto no Access 2003 Visua…
·Como resolver recursão 
·Como converter Visual Basic 6 
·Como filtrar registros usando Data Range no Visual Basi…
·Recursos gráficos de versão do Visual Basic 6 
·Como Criar uma matriz em Perl 
·Como adicionar um apóstrofo no CL AS/400 
·Consulta SQL Tutorial 
·O que é Csc.exe Do Microsoft Corporation 
·Como usar ponteiros de arquivos em PHP 
Cop e direita © Rede de conhecimento computador http://ptcomputador.com Todos os Direitos Reservados