Alguém pode explicar se existe alguma diferença entre as arquiteturas intel64 e amd64?
Alguém pode explicar se existe alguma diferença entre as arquiteturas intel64 e amd64?
Respostas:
Pelo que li, a Tecnologia de memória estendida de 64 bits (EM64T) é a implementação da AMD64 da AMD e as diferenças entre a Intel64 e a AMD64 são:
As instruções BSF e BSR do EM64T agem de maneira diferente quando a fonte é 0 e o tamanho do operando é 32 bits. O processador define o sinalizador zero e deixa os 32 bits superiores do destino indefinidos.
AMD64 suporta 3DNow! instruções. Isso inclui pré-busca com o opcode 0x0F 0x0D e PREFETCHW, que são úteis para ocultar a latência da memória.
O EM64T não possui 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. Isso inclui 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 os MSRs.
A instrução CPUID do 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 um IO-MMU. Os sistemas operacionais podem tirar proveito disso para permitir que os dispositivos PCI DMA normais tenham memória acima de 4 GiB. Os sistemas EM64T requerem o uso de buffers de retorno, 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 nos dois modos.
Ramos próximos 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 48 bits superiores.
Na página x86 da Wikipedia, você pode ler
Em 1999-2003, a AMD estendeu essa arquitetura de 32 bits para 64 bits e se referiu a ela como x86-64 nos primeiros documentos e posteriormente como AMD64. A Intel logo adotou as extensões arquiteturais da AMD com o nome IA-32e, que mais tarde foi renomeado para EM64T e, finalmente, Intel 64.
Em outras palavras, o diferencial é principalmente o 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.
you don't generally need to know the difference
Errado: mesmo pequenas diferenças nas instruções genéricas são muito importantes bugs.chromium.org/p/nativeclient/issues/detail?id=2010