Qual é a diferença entre a Intel 64 e a AMD64?

19

Alguém pode explicar se existe alguma diferença entre as arquiteturas intel64 e amd64?

    
por Mayhem 29.01.2012 / 18:30

2 respostas

15

Pelo que li A tecnologia de 64 bits de memória estendida (EM64T) é a implementação da Intel do AMD64 AMD e as diferenças entre o Intel64 e AMD64 são:

  • As instruções BSF e BSR da EM64T agem de forma diferente quando a fonte é 0 e o tamanho do operando é de 32 bits. O processador define o sinalizador zero e deixa os 32 bits superiores do destino indefinidos.

  • O AMD64 suporta o 3DNow! instruções. Isso inclui pré-busca com o código de operação 0x0F 0x0D e PREFETCHW, que são úteis para ocultar a latência de memória.

  • O EM64T não tem a capacidade de salvar e restaurar uma versão reduzida (e, portanto, mais rápida) do estado de ponto flutuante (envolvendo as instruções FXSAVE e FXRSTOR).

  • O EM64T não possui alguns registros específicos do modelo que são considerados arquitetônicos para o AMD64. Estes incluem SYSCFG, TOP_MEM e TOP_MEM2.

  • O EM64T suporta a atualização de microcódigo como no modo de 32 bits, enquanto os processadores AMD64 usam um formato de atualização de microcódigo diferente e controlam MSRs.

  • A instrução CPUID da EM64T é muito específica do fornecedor, como é normal para processadores no estilo x86.

  • O EM64T suporta as instruções MONITOR e MWAIT, usadas pelos sistemas operacionais para lidar melhor com o Hyper-threading.

  • Os sistemas AMD64 permitem o uso da abertura AGP como IO-MMU. Os sistemas operacionais podem aproveitar isso para permitir que os dispositivos PCI normais DMA fiquem na memória acima de 4 GiB. Os sistemas EM64T exigem o uso de buffers de rejeição, que são mais lentos.

  • SYSCALL e SYSRET também são suportados apenas no modo IA-32e (não no modo de compatibilidade) no EM64T. SYSENTER e SYSEXIT são suportados em ambos os modos.

  • As ramificações próximas com o prefixo 0 × 66 (tamanho do operando) se comportam de maneira diferente. Um tipo de CPU limpa apenas os 32 bits principais, enquanto o outro tipo limpa os primeiros 48 bits.

por 30.01.2012 / 13:24
9

Na página x86 da Wikipédia você pode ler

In 1999-2003, AMD extended this 32-bit architecture to 64 bits and referred to it as x86-64 in early documents and later as AMD64. Intel soon adopted AMD's architectural extensions under the name IA-32e which was later renamed EM64T and finally Intel 64.

Em outras palavras, o diferencial é principalmente marketing. Existem extensões específicas da Intel e da AMD para o conjunto de instruções, mas, desde que você esteja escrevendo programas no espaço do usuário, geralmente não precisa saber a diferença.

    
por 29.01.2012 / 18:37