Modos de operação:
Os processadores AMD64 e EM64T possuem 3 modos
de operação diferentes
-
Modo 32 bits: O primeiro e, num futuro
próximo, provavelmente o modo mais
usado será o modo de 32 bits. Neste
modo, ambos processadores AMD64 e EM64T
atuarão exatamente como outros processadores
compatíveis com IA-32. É possível
instalar um sistema operacional de 32 bits
nestes sistemas e rodar programas 32 bits,
entretanto, eles não serão
capazes de fazer uso das novas funcionalidades
exclusivas de 64 bits como endereçamento
real de memória acima de 4GB ou dos
registradores GPRs. Programas 32 bits irão
rodar com a mesma velocidade que rodariam
em sistemas compatíveis.
A maioria dos programas para IA-32 poderão
rodar até mesmo mais rápidos
que nas próprias plataformas aproveitando
outras características implementadas
na plataforma x64 que aumentam o desempenho.
-
Modo de compatibilidade: O segundo modo
suportado pelos processadores AMD64 e EM64T
é o modo de compatibilidade, que
é um modo intermediário do
modo completo (full). Para rodar no modo
de compatibilidade, é necessário
instalar um sistema operacional de 64 bits
com drivers de 64 bits. O modo de compatibilidade
com um sistema operacional de 64 bits possibilita
rodar programas de 32 bits sem modificações.
Cada programa 32 bits deve estar limitado
à no máximo 4 GB de memória
física. Porém, este limite
de 4 GB é imposto em um nível
de pré-processo e não em um
nível de sistema. Isso significa
que cada processo de 32 bits neste sistema
pode ter seu próprio bloco de memória
de 4 GB de espaço de memória
física (supondo que se tenha bastante
memória física instalada).
Isso é uma enorme vantagem comparada
ao sistema IA-32, onde o kernel do sistema
operacional e o programa têm que compartilhar
os 4 GB de memória física.
Este modo não suporta o antigo modo
virtual 8086, apenas os programas que utilizam
o modo-real e os de modo protegido de 16
bits podem rodar.
-
Modo completo (full) de 64 bits: O último
modo é o modo completo para 64 bits.
A AMD se refere a este modo como "long
mode” e a Intel trata como modo IA-32e.
Este modo é ativado quando são
executados programas de 64 bits em sistemas
operacionais de 64 bits. Neste modo, um
programa pode ter um espaço de endereçamento
virtual de até 40 bits (cerca de
1 TB de memória endereçável!!).
A quantidade de memória física
será limitada pela quantidade de
slots físicos de memórias
DIMM. Programas que rodam no modo completo
terão acesso à toda memória
física instalada e às GPRs
expandidas do sistema. Mas é importante
entender que este modo de operação
só estará ativo em um sistema
operacional de 64 bits com drivers de 64
bits rodando programas de 64 bits.
O que se ganha com a computação
com 64 bits
Existe uma certa dúvida em relação
a processadores 64 bits e seus benefícios.
É vantagem migrar para um sistema 64
bits? Da mesma forma que os processadores e
programas de 16-bits não são mais
usados atualmente, os processadores e programas
de 64 bits substituirão os atuais de
32 bits futuramente. Entretanto esta migração
deve ser estudada caso a caso.
Os processadores EM64T e AMD64 permitem realizar
esta transição suavemente fornecendo
ambos modos de 32 bits e 64 bits. Isto significa
que são previstas possíveis atualizações
de hardware para 64 bits. A questão que
se deve fazer aqui é se o benefício
do processamento de 64 bits é digno do
esforço de atualização
dos programas de 32 bits. A resposta vai depender
do programa. A seguir vemos uns exemplos que
se beneficiariam em uma plataforma de 64 bits:
-
Programas de criptografia: A maioria dos
algoritmos de criptografia são baseados
em inteiros muito grandes e se beneficiariam
bastante com o uso dos registradores GRPs
e ALUs de 64 bits.
-
Programas científicos: Os programas
científicos que utilizam inteiros
seriam beneficiados. As operações
de ponto flutuante não seriam beneficiadas
com um maior tamanho de inteiro uma vez
que os registradores de ponto flutuante
já são de 80-bits ou de 128-bits
mesmo nos processadores de 32 bits.
-
Programas que precisem de mais de 4 GB
de memória: Esta é, talvez,
a maior vantagem para os programas comerciais
de 64 bits - o endereçamento maciço
de memória real.
Programas comerciais (empresariais) como gerenciadores
de bancos de dados estão sempre implementando
esquemas de endereçamentos como PAE (Page
Addressing Extensions) e AWE (Addressing Windows
Extensions) para terem acesso à memória
além da barreira de 4 GB imposta pela
limitação de endereçamento
de 32 bits. Estes esquemas de extensão
de endereçamento podem chegar a até
64 GB. Uma desvantagem em relação
a estes esquemas é que a memória
abaixo de 4 GB pode apenas ser usada para armazenamento
de informações e não pode
ser usada para armazenar ou executar código.
Desta forma, estes esquemas de endereçamento
só fazem sentido para programas como
banco de dados, onde é necessário
enormes caches de dados.
O espaço de endereçamento virtual
de 64 bits possibilita o acesso direto até
2 EB (Exabytes), mas nenhum dos processadores
atuais de 64 bits suportam realmente endereçamento
de memória física total de 64
bits, simplesmente porque é uma enorme
quantidade de memória.
Quando o programa é desenvolvido para
tirar vantagem de mais memória, a disponibilidade
de memória física adicional de
1 ou 2 GB pode inferir uma significante melhoria
no desempenho, mas nem todos os programas podem
tirar vantagem de toda a memória disponível.
Para isso é necessário APIs que
reconheçam a disponibilidade de mais
que 2GB de memória.
Alguns programas não se beneficiarão
totalmente da computação de 64
bits, e pode ocorrer até mesmo uma perda
de desempenho. Se um programa não precisa
de muita memória ou não executa
operações de inteiro ou ponto
flutuante de alta precisão, então
64 bits não irão melhorar em nada
o desempenho.
Por default, os programas 32 bits rodando no
sistema operacional Windows XP estão
limitados a 2 GB de memória e mais uma
reserva de 2 GB para tarefas de sistema. (É
possível, em sistemas x86, endereçar
mais que 4 GB do total de memória usando
um mecanismo chamado de PAE (Physical Address
Extension), criado pela Intel. De fato, algumas
versões para servidores do Windows Server
permitem até 128 GB de memória
física em um sistema de 32 bits. Entretanto
este mecanismo utiliza um esquema de paginação
que geralmente não é considerado
a opção mais otimizada).
Referências:
· Wiki-pedia:
o (http://en.wikipedia.org/wiki/64-bit)
· MicroProcessor Report:
o (http://www.mdronline.com/mpr_public/about.asp).
· PCWord - Chips Detail 64-Bit Differences:
o (http://www.pcworld.com/news/article/0,aid,115572,00.asp).
· Ryan Storgaard's Blog : Microsoft 64-bit
summary:
o (http://blogs.msdn.com/stoey/archive/2005/01/27/361880.aspx).
· Intel's official Extended Memory 64
Technology website provides links to EM64T technical
documentation and FAQs:
o (http://developer.intel.com/technology/64bitextensions/index.htm).
· The official website for the Intel
925X Express chipset (workstation):
o (http://developer.intel.com/design/chipsets/925X/workstn.htm).
· The official website for the Intel
E7221 Server chipset:
o (http://developer.intel.com/design/chipsets/e7221/index.htm).
· AMD64 instruction set with its own
EM64T technology:
o (http://www.maximumpc.com/reprints/reprint_2004-06-01b.html).
· You can learn more about AMD64 by reading
my article on the AMD Opteron:
o (http://www.quepublishing.com/articles/article.asp?p=339076).
(1) Um exabyte (EB) = 216 = 1.152.921.504.606.846.976
bytes.
(2) SSE2 e SSE3: Extensões da tecnologia
MMX com a adição de instruções
para aumentar o desempenho de algumas aplicações
para multimídia. As instruções
SIMD introduzidas pela tecnologia MMX passaram
de 64 para 128 bits dobrando a execução
efetiva da extensão das operações
baseadas em inteiros. As instruções
SIMD (3) para ponto flutuante permitem que duas
operações de ponto flutuante sejam
executadas simultaneamente no formato SIMD.
(3) SIMD (Single Instruction Multiple Data)
Geralmente, o processador processa um dado em
uma instrução, um estilo de processamento
chamado de SISD (Single Instruction Single Data).
Os processadores com SIMD processa mais que
um dado em uma instrução. |