Lembra daquele post sobre as versões 32 e 64-bit do Windows? Ele foi muito bem recebido pelos leitores, e um em especial, o Marcos de Mello, conhecido nos fóruns de informática como Marcos FRM, reparou que a parte na qual tratamos do PAE (Physical Address Extension), recurso que visa estender o limite de memória física em sistemas 32-bit, estava bastante tímida. Como bom geek que deve ser, o Marcos nos enviou um e-mail bastante esclarecedor, e vendo a qualidade do material, pedimos a ele autorização para publicá-lo aqui. Como é um pouco mais técnico do que a média dos posts publicados no WinAjuda, vou citar trechos do email que ele nos enviou e explicar com mais calma. Mas antes preciso explicar algumas coisas.
Li seu post no WinAjuda sobre o assunto, e sobre o PAE nos Windows domésticos 32-bit faço algumas considerações.
O Windows XP 32-bit usa indiretamente PAE para o recurso NX bit dos processadores atuais (chamado no Windows de DEP). Usando qualquer opção para a chave/NOEXECUTE(ou mesmo sem a chave, em processadores com supote, o XP assume/NOEXECUTE=optin), o PAE é usado indiretamente, porém sem ampliar o limite máximo de memória. Então no final das contas, tudo que é Windows XP 32-bit que foi instalado num processador com NX bit já está rodando com o PAE habilitado. Colocar a chave"/PAE"noboot.ininão faz absolutamente nada. Tanto é que a MS diz que para desabilitar o PAE é preciso usar/NOPAE /NOEXECUTE=alwaysoff.
- Physical Address Extension - PAE Memory and Windows (Microsoft).
Sobre esse "uso indireto" do PAE para o DEP eu não sei esclarecer mais. Demandaria uma pesquisa. Deixo com você se assim desejar :-) .
Só as versões Server do Windows 32-bit suportam verdadeiramente o PAE 'completo', digamos assim (ver link acima; o 2003 Standard, porém, é como no XP). Por uma razão simples, todos os drivers precisam ser compatíveis para trabalhar com PAE e em componentes para servidores esta preocupação existe. No desktop, seria uma quebradeira generalizada e por isso a MS não colocou um suporte a PAE completo no XP.
Provavelmente isso tudo se aplique ao Vista 32-bit e ao 7 32-bit. O interessante é que o Server 2008 R2 só foi lançado em x64. A MS abandonou o 32-bit nos servidores ao que tudo indica para futuros lançamentos.
Na parte "Meu PC suporta Windows 64-bit?" [deste post], você diz que o processador é o que importa. Correto, porém incompleto. Em processadores sem controlador de memória integrado, muito comum ainda nos modelos da Intel, o chipset precisa ter endereçamento de 36 ou 40-bit. Os chipsets de baixo custo da Intel (o mesmo acontece com outras marcas), que são muito populares, até o i945 possuíam endereçamento de 32-bit, do qual você tira os endereços reservados e no final acaba com a mesma limitação usando um Windows x64. Perguntas como "Tenho 4 GB de RAM, instalei o Vista 64 e continua só reconhecendo 3,2GB. Por quê?" inundaram o Fórum GdH (do qual sou membro) há algum tempo e ainda aparecem de vez em quanto. Agora em menor número, pois os chips de baixo custo da Intel atualmente (família Gxx, como o popular G31) não possuem mais essa limitação. Os processadores AMD com controlador de memória integrado não sofrem com isso. Mesmo assim, é bom deixar um asterisco lá para clarificar.
Mais links úteis:
- Gerenciamento de 4 GB de memória RAM (Baboo);
- Pushing the Limits of Windows: Physical Memory (Mark's Blog).
Resumindo:
- PAE nos Windows 32-bit domésticos não aumenta o limite máximo de memória. O limite é 4GB e ponto. Essa é uma limitação proposital da MS;
- PAE nos Windows 32-bit domésticos é usado só para DEP assistido por hardware, em processadores que suportem (hoje em dia a grande maioria);
- PAE nos Windows Server 32-bit é sim funcional (exceção do 2003 Standard), mas depende de drivers compatíveis;
- Há perda de desempenho no uso do PAE;
- 64-bit é o futuro. PAE foi um remendo. Remendo bastante antigo diga-se de passagem.
