46/48 endereços virtuais físicos

0

Alguns processadores suportam endereços físicos de 46 bits e endereços virtuais de 48 bits. Por que 46 bits, por que 48 bits? O x86 não suporta endereços de 64 bits? Por que os endereços virtuais não têm o mesmo tamanho que os endereços físicos?

Os aplicativos devem ser ajustados para usar o endereço físico / virtual de 46/48? A maioria dos aplicativos suporta isso?

    
por Octoback 08.08.2016 / 15:08

2 respostas

1

Os 44 bits foram usados na versão de 64 bits do Windows até o Windows 8.1 (antes do conjunto de atualizações de novembro de 2014 ) para facilitar o gerenciamento da memória. Desde Atualização do Windows 8.1 novembro de 2014 ou Windows 10, o Windows agora usa 64Bit para endereços virtuais . Com este espaço de endereçamento maior, é possível tornar o Windows mais seguro, fornecendo Control Flow Guard (CFG)

    
por 08.08.2016 / 17:05
1

O limite de endereço virtual de 48 bits para x86-64 é baseado na profundidade da hierarquia da tabela de páginas. Com 4 páginas KiB e entradas de tabela de página de 64 bits, cada nível da tabela de páginas usa nove bits. O uso de três pesquisas forneceria endereços virtuais de 39 bits, que, presumivelmente, eram reconhecidos como uma solução de curto prazo, já que a adição de níveis requer suporte ao SO. O uso de quatro pesquisas fornece um espaço de endereço virtual de 48 bits.

A adição de níveis tende a aumentar a latência de uma falta de TLB (embora os nós intermediários também possam ser armazenados em cache para reduzir a latência se houver um impacto nesses caches), pois as pesquisas dependem.

Com relação ao limite de endereço físico, a entrada da tabela de páginas é de 64 bits e contém permissão de acesso e outras informações (9 bits: presente, leitura / gravação, usuário / supervisor, write-through em nível de página, em nível de página) desabilitado, acessado, sujo, PAT e global). As entradas da tabela de páginas x86-64 estão atualmente definidas para incluir 14 bits que podem ser usados pelo sistema operacional [9:11, 52:62] e são ignorados pelo hardware. Isso deixa 41 bits disponíveis para especificar um número de página, que (dadas 4 páginas KiB) suporta endereços físicos de 53 bits.

A opção de oferecer suporte a um espaço de endereçamento físico menor do que o suportado pelo formato de entrada da tabela de páginas é específica da implementação. Fornecer um espaço de endereço físico maior que o espaço de endereço virtual introduz problemas para sistemas operacionais, especialmente para aqueles que mapeiam todo o espaço de endereço físico no espaço de endereço virtual.

Para um determinado processador com um controlador de memória integrado, o número de canais de memória e os tipos de memória suportados são fixos, fornecendo uma restrição significativa na capacidade máxima de memória. A adição de mais chips com controladores de memória tem problemas de dimensionamento, principalmente em relação à latência. (Sistemas com grandes fatores NUMA podem ser úteis, mas tais sistemas não são um alvo significativo para x86-64.)

O aumento do espaço de endereço físico aumenta o tamanho das tags de cache (nos caches comuns marcados fisicamente) e introduz outras sobrecargas. Se os endereços não fossem úteis para os usos esperados do sistema, esses custos reduziriam diretamente a lucratividade. (Também pode haver algum incentivo para limitar a capacidade de incentivar atualizações futuras.)

    
por 08.08.2016 / 17:25