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