descadastro
site NCE
 
 
Plataformas Computacionais
 
artigos publicados

Computação de 64 bits (Continuação)

 

Roberto José Rodrigues , M.Sc.
Analista de Sistemas, NCE/UFRJ

     
 

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.

 
 
         
 
    página principal
 
Núcleo de Computação Eletrônica
Universidade Federal do Rio de Janeiro
Prédio do Centro de Ciências Matemáticas e da Natureza Bloco C
Caixa Postal: 2324 - CEP: 20.010-974
Cidade Universitária - Ilha do Fundão, Rio de Janeiro - RJ Tel: 2598-3333