Memória virtual máxima e memória física

2

Uma CPU Intel x86 de 64 bits, tabela de página hierárquica de quatro níveis. Cada um dos níveis da tabela de páginas pode conter 512 entradas, e o tamanho da página é de 4KB. Qual é o tamanho máximo da memória virtual e da memória física?

Eu acho que a memória virtual máxima deve ser 2 ^ 48 em que 9 bits para referenciar a posição da tabela de páginas e há 4 tabelas de páginas. Assim 4 * 9 + 12 = 48 (deslocamento 4KB). Mas não tenho certeza de como calcular a memória física máxima. Ou simplesmente não pode dizer a partir desta informação?

    
por Daniel 09.05.2015 / 19:34

1 resposta

1

Interessante questão teórica.

Primeiro, vamos ser claros: a arquitetura de 64 bits da Intel é, na verdade, uma extensão de 64 bits da AMD para a arquitetura de 32 bits da Intel. Essa é a origem do termo muito técnico de x86_64 . Então você está perguntando sobre CPUs específicas da Intel, ou sobre a arquitetura x86_64 em geral? Em segundo lugar, você está escrevendo ou editando o artigo da Wikipedia sobre essa entrada? Se assim for, devemos evitar o uso da Wikipedia para ajudar a encontrar a resposta:)

Por que o tamanho máximo teórico da memória virtual não seria limitado pelo comprimento de palavra de 64 bits dos ponteiros de endereço? De acordo com o artigo da wikipedia, "a AMD decidiu que apenas o mínimo de 48 bits seria usado". Versões futuras da arquitetura permitem que isso seja estendido. Então, na verdade, o "máximo teórico" poderia ser 2 ^ 64. Então agora estamos falando de algo menos que teórico.

O x86_64 "modo longo" de endereçamento permite 2 MB páginas , ou seja, 2 ^ 21 não apenas 4KB (2 ^ 12) páginas, uma diferença de 2 ^ 9, então eu obtenho ( dos seus cálculos) 2 ^ 57. Mas isso é mais do que a arquitetura atualmente permite, então ainda é "apenas" 2 ^ 48.

Para memória física, novamente da Wikipedia, "As implementações AMD64 atuais suportam um espaço físico de endereçamento de até 2 ^ 48 bytes de RAM". OK, mas talvez haja outros limites impostos em outros lugares. Na extremidade muito baixa, temos o fabricante da placa-mãe, que geralmente define isso com base no número de slots. Alguns estão no meio, temos o controlador de memória, que atualmente está integrado na CPU (mas nem sempre, e não necessariamente - mais uma vez, quão teórica é essa questão). Os controladores de memória também limitarão o espaço de endereço ou o número de chips possíveis que eles controlam.

    
por 09.05.2015 / 21:23