Na prática, no Windows moderno e no GNU / Linux, os seguintes itens são indistinguíveis (ou seja, se o seu sistema afirma suportar pelo menos um deles, o mesmo software será executado):
- EM64T
- x86-64
- Intel 64
- amd64
Da mesma forma para estes:
- ia32
- x86
- amd32
O IA64 é o "Itanium", que é uma arquitetura totalmente diferente que não está de forma alguma relacionada a nenhum dos itens acima.
Além disso, todas as CPUs modernas que suportam o primeiro grupo (amd64, etc.) também suportam código compilado para o segundo grupo (x86, etc.) porque CPUs de 64 bits podem executar código de 32 bits em uma espécie de modo de compatibilidade .
Há também uma arquitetura x32 , que é um desenvolvimento muito novo em software e atualmente suportado apenas no GNU / Linux, que usa endereços 32-bit , com o < em> 64-bit (amd64) arquitetura.
Então, jogando fora toda a terminologia de marketing, o que realmente temos em termos de ambientes de compatibilidade de software é:
- amd64, que usa o conjunto de instruções de 64 bits e usa endereços virtuais de 64 bits (na verdade, 48 bits nas implementações atuais);
- x86, que usa o conjunto de instruções de 32 bits e usa endereços virtuais de 32 bits;
- IA64 também conhecido como Itanium, que é executado somente em processadores "Itanium" (e usa um endereço virtual de 64 bits);
- x32, que usa o conjunto de instruções de 64 bits e os endereços virtuais de 32 bits (basicamente as instruções / registros de amd64 e o modelo de memória de x86). Isso resulta em um uso de memória ligeiramente reduzido em sacrifício para uma memória máxima mais baixa por processo.