Como uma máquina de 32 bits suporta mais de 4 GB de RAM?

6

Eu sempre me perguntei sobre isso e nunca entendi totalmente como as máquinas de 32 bits estão lidando com mais de 4 GB de RAM . Quer dizer, não há mais linhas de endereço, correto?

Eu sei mesmo em nossas instalações que temos servidores de banco de dados Dell com 8 GB de RAM endereçáveis pela máquina e uma versão de 32 bits de SQL Server . É alcançado semelhante à memória EMS da linha de endereço 20 8086, usando uma janela de memória rotativa?

    
por Brettski 03.05.2009 / 01:28

5 respostas

16

Para suportar mais de 4 GB de memória, o Windows usa Extensão de endereço físico (PAE). Utiliza tabelas de paginação para mapear a memória maior que 4 GB. Ao fazer isso, o tamanho do endereço físico é aumentado para 36 bits ou 64 GB. PAE é usado em sistemas operacionais de 64 bits também; neste caso, o tamanho máximo é dobrado para 128 GB.

Este método significa que cada processo ainda está limitado a um máximo de 4 GB de memória.

    
por 03.05.2009 / 01:32
3

Existe um recurso da Intel chamado PAE que, na verdade, permite que o sistema operacional utilize mais de 4 GB de memória. Cada aplicativo só pode usar 2 (ou 3) GB de espaço de memória, mas como o SO agora tem mais memória para espalhar as coisas - haverá menos compartilhamento entre os processos e, consequentemente, alguns possíveis benefícios de desempenho.

A mágica real, no entanto, começa quando se usa a API AWE com a qual você pode realmente usar mais memória com um único aplicativo de 32 bits que é especialmente escrito para isso. Isso é o que o SQL Server está fazendo.

    
por 03.05.2009 / 01:37
2

Ele se chama PAE . Ele funciona alterando o layout da tabela de páginas no processador para suportar até 64 GB de RAM. No entanto, qualquer aplicativo pode usar apenas 2-3 GB (dependendo de como o kernel está configurado, normalmente 2 GB para Windows e 3 GB para Linux). Além disso, o PAE tende a tornar a máquina um pouco mais lenta, porque as pesquisas na tabela de páginas têm um nível extra para passar.

Deve ser suportado em qualquer processador relativamente recente.

    
por 03.05.2009 / 01:35
1

Bem, o sistema operacional do seu servidor pode ser de 64 bits. SQL talvez usando apenas 4 GB dos 8, ou alguns programas de 32 bits geram mais processos (como software de codificação de vídeo, na minha experiência) para tirar proveito do RAM.

    
por 03.05.2009 / 01:30
-3

Um aplicativo em um sistema operacional de 32 bits pode acessar de 4 GB de espaço de endereço. Mas isso é espaço de endereço virtual e não tem absolutamente nada a ver com o tamanho da RAM física. A maioria dos processadores modernos de 32 bits tem linhas de endereço suficientes para endereçar 64 GB de RAM. Blocos de 4K bytes são mapeados para o espaço de endereço de um processo, conforme necessário.

É o PAE que permite acesso a mais de 4 GB de RAM. Não é um hack como muitas vezes alegado, mas é bastante eficiente. O PAE não faz nenhuma mudança fundamental, são apenas os detalhes que são diferentes. Na verdade, o sistema mais moderno está usando o PAE por padrão. O DEP depende do kernel do PAE.

Infelizmente, o acesso à RAM além de 4 GB é limitado a servidores. Uma área de trabalho pode estar usando o PAE, mas ignorará qualquer RAM além de 4 GB. Existem várias razões técnicas e de marketing para isso.

    
por 19.08.2009 / 19:20