Registro de intervalo de tipo de memória - Memory type range register
Registradores de intervalo de tipo de memória ( MTRRs ) são um conjunto de registros de controle de capacidade suplementar do processador que fornecem ao software do sistema o controle de como os acessos a intervalos de memória pela CPU são armazenados em cache . Ele usa um conjunto de registros específicos do modelo programáveis (MSRs), que são registros especiais fornecidos pela maioria das CPUs modernas. Os modos de acesso possíveis aos intervalos de memória podem ser sem cache, write-through , write-combining , write-protect e write-back . No modo write-back, as gravações são escritos para o CPU 's de cache eo cache é marcada sujo, de modo que seu conteúdo é escrito para a memória mais tarde.
A combinação de gravação permite que as transferências de gravação do barramento sejam combinadas em uma transferência maior antes de distribuí- las pelo barramento para permitir gravações mais eficientes nos recursos do sistema, como a memória da placa gráfica . Isso geralmente aumenta a velocidade das operações de gravação de imagem várias vezes, ao custo de perder a semântica de leitura / gravação sequencial simples da memória normal. Bits adicionais que são fornecidos em algumas arquiteturas de computador , como AMD64 , permitem o sombreamento do conteúdo da ROM na memória do sistema (ROM de sombra) e a configuração de E / S mapeada na memória .
MTRRs em processadores x86-PC
Nos primeiros sistemas de arquitetura x86 , especialmente onde o cache era fornecido por chips separados fora do pacote da CPU, essa função era controlada pelo próprio chipset e configurada por meio das configurações do BIOS .
Quando o cache da CPU foi movido para dentro da CPU, as CPUs implementaram MTRRs de faixa fixa que cobrem o primeiro megabyte de memória para serem compatíveis com os BIOS dos PC fornecidos naquele momento. Eles são usados para controlar a política de cache necessária para acessos VGA e todos os outros acessos à memória feitos enquanto o sistema está em modo real . Acima de 1 MB, as CPUs fornecem vários MTRRs de faixa variável , que podem ser colocados livremente e até mesmo sobrepostos. Esses MTRRs de intervalo variável podem ser usados para definir a política de cache de memória gráfica e outros intervalos de memória usados por dispositivos PCI .
Começando com a família de processadores Intel P6 ( Pentium Pro , Pentium II e posterior), os MTRRs podem ser usados para controlar o acesso do processador aos intervalos de memória.
Os processadores Cyrix 6x86 , 6x86MX e MII possuem Address Range Registers (ARRs) que fornecem uma funcionalidade semelhante aos MTRRs.
Os processadores AMD K6-2 (etapa 8 e superior) e K6-III têm dois MTRRs. A família AMD Athlon fornece 8 MTRRs no estilo Intel.
O Centaur C6 WinChip tem 8 MCRs, permitindo a combinação de gravação.
As CPUs VIA Cyrix III e VIA C3 oferecem 8 MTRRs estilo Intel.
A interface de memória das CPUs AMD K8 suporta "Codificações de campo do tipo MTRR de intervalo fixo estendido", que permite especificar se os acessos a certos intervalos de endereços são executados acessando a RAM por meio da Direct Connect Architecture ou executando E / S mapeada em memória . Isso permite, por exemplo, a implementação de shadow RAM copiando o conteúdo da ROM para a RAM.
Sucessor
As CPUs x86 mais novas suportam uma técnica mais avançada chamada de tabelas de atributos de página (PATs) que permitem a configuração desses modos por página, em vez de ter um número limitado de registros de baixa granularidade para lidar com tamanhos de memória modernos que podem chegar a 64 GB mesmo em um laptop e várias vezes mais em um sistema desktop.
Detalhes sobre como os MTRRs funcionam são descritos nos manuais do processador dos fornecedores de CPU.
Veja também
Referências
links externos
- Acelerar os gráficos com MTRR inclui explicação
- Volume 2 do Manual do Programador de Arquitetura AMD64: Programação do Sistema ( PDF )
- Manuais do desenvolvedor de software das arquiteturas Intel 64 e IA-32 Consulte o Manual do desenvolvedor de software das arquiteturas Intel 64 e IA-32, Volume 3A: Guia de programação do sistema, seção 11.11 REGISTOS DE INTERVALO DE TIPO DE MEMÓRIA (MTRRS)
- Utilitário MTRRLFBE para DOS da RayeR - pode definir modos de cache para intervalo de memória VGA e LFB para aumentar significativamente o desempenho de aplicativos gráficos DOS. No PC Core 2 Duo moderno com PCI-E VGA, ele pode ser 10 vezes mais rápido quando a combinação de gravação está definida.
- Controle de MTRR (Memory Type Range Register) por Richard Gooch