A diferença mais importante entre x86 e x64 é que a primeira é a arquitetura de 32 bits e a segunda é a arquitetura do conjunto de instruções de 64 bits. Uma arquitetura de conjunto de instruções (ISA) é um termo muito importante que se aplica a qualquer CPU. Instruções, endereçamento de memória, registros e muitas outras seções de arquitetura de uma CPU são especificadas pelo ISA. O x86 é um ISA mundialmente famoso lançado pela Intel em 1978 com o processador 8086. Em seguida, várias extensões aconteceram e, em 2000, a AMD criou a especificação para estender o conjunto de instruções x86 para 64 bits com o nome AMD64. Mais tarde, outras empresas, como a Intel, também implementaram essa especificação e esse AMD64 é aquele identificado pelo nome x64.
x86 é uma arquitetura de conjunto de instruções introduzida pela Intel com o famoso processador 8086. Em 1978, a Intel lançou o processador 8086 que era um processador de 16 bits. Posteriormente, eles introduziram vários processadores, como 80186, 80286, 80386 e 80486, e todos eram compatíveis com o conjunto de instruções original usado no processador 8086. Como todos esses processadores terminam com o número 86, a arquitetura do conjunto de instruções foi identificada pelo nome x86. Com a introdução do 80386, a instrução x86 foi estendida para um sistema de 32 bits. Aqui, 32 bits significa que todos os registros, barramento de memória e barramento de dados são 32 bits. Os processadores Pentium vieram como Pentium I, Pentium II, Pentium III, Pentium IV e todos estes seguiram uma arquitetura de 32 bits também. Mas várias outras extensões ocorreram na arquitetura x86, como a adição de instruções como MMX, SSE e SSE2. Além disso, muitas outras melhorias também foram feitas. Em seguida, o conjunto de instruções x86 foi estendido para um conjunto de instruções de 64 bits e, a partir deste ponto, passou a ser chamado de x64, que discutiremos na próxima seção. De qualquer forma, em geral, x86 refere-se à arquitetura de 32 bits que evoluiu de uma arquitetura de 16 bits criada com o processador 8086.
Processador 8086
Um sistema de 32 bits pode representar apenas 232. valores distintos e, portanto, o endereçamento de memória é limitado a esse número de endereços. 232. bytes são iguais a 4 GB e, portanto, x86 tinha um limite máximo de memória endereçável de 4 GB. Para superar isso, outras extensões foram feitas na arquitetura x86. A AMD, por volta do ano 2000, introduziu essa especificação que ampliava a arquitetura x86 para 64 bits. Isso foi introduzido sob o nome AMD64. x64 é outro nome dado a essa arquitetura AMD64. Essa arquitetura AMD64 ou x64 também é conhecida sob o nome x86_64. Com a arquitetura de 64 bits, todos os registros se tornaram 64 bits e o barramento de memória e o barramento de dados também se tornaram 64 bits. Agora 264 valores distintos podem ser tratados e isso fornece um enorme limite superior para a memória máxima possível. O AMD K8 foi o primeiro processador que implementou essa arquitetura de 64 bits. Então a Intel também adotou essa arquitetura. Com os processadores Intel Core iniciados no Intel Core 2, a Intel começou a usar essa arquitetura em seus processadores. Atualmente, todos os processadores Intel, como Core i3, Core i5 e Core i7, usam essa arquitetura x64. Uma coisa importante a enfatizar é que essa arquitetura x64 ainda é compatível com o antigo conjunto de instruções x86.
Processador de 64 bits
• O x86 foi introduzido por volta do ano de 1978, enquanto o x64 surgiu mais recentemente no ano de 2000.
• O x86 surgiu do famoso processador Intel 8086 e, portanto, o x86 foi introduzido pela Intel. Mas o x64, que veio como uma extensão do x86, foi introduzido pela AMD.
• a arquitetura x86 é de 32 bits. (Os primeiros processadores x86 tinham 16 bits, mas nos processadores posteriores foi feita uma extensão para 32 bits). arquitetura x64 é de 64 bits.
• Processadores com arquitetura de conjunto de instruções x86, portanto, possuem registradores de 32 bits, barramento de memória de 32 bits e barramento de dados de 32 bits. Mas x64 possui registradores de 64 bits, barramento de memória de 64 bits e barramento de dados de 64 bits.
• x86 tem uma limitação na memória endereçável máxima que é um limite superior de 4 GB (232. bytes). Mas, em sistemas x64, esse limite é enorme, que é 264 bytes.
X64 é uma expansão de x86; portanto, é muito melhorado e poderoso do que o antigo x86.
• Os valores que podem ser armazenados em um registro, em um sistema x64, são maiores que os valores que podem ser armazenados em um registro baseado em x86. Portanto, o x64 pode lidar com o cálculo de números inteiros maiores muito mais rapidamente, pois não há necessidade de usar vários registradores nesse caso para dividir o valor e armazenar como no x86.
• x64 pode transmitir dados de tamanho maior em paralelo ao longo do barramento de dados. Ou seja, um barramento de dados de 64 bits pode transmitir em paralelo 64 bits, enquanto a arquitetura x86 que possui um barramento de 32 bits pode transmitir apenas em paralelo 32 bits.
Resumo:
A arquitetura do conjunto de instruções x86 é de 32 bits, enquanto a arquitetura do conjunto de instruções x64 é de 64 bits. O x64 veio como uma extensão da arquitetura x86 existente. Os registradores, barramento de memória e barramento de dados nas arquiteturas x86 são de 32 bits, enquanto isso é de 64 bits no x64. Portanto, a quantidade máxima de memória endereçável é muito maior nos sistemas x64 do que nos sistemas x86. O x86 foi introduzido pela Intel com o processador 8086 que era um processador de 16 bits e, com o tempo, esse x86 foi estendido para 32 bits. Posteriormente, a AMD introduziu a arquitetura x64 estendendo a arquitetura x86 existente e esse x64 é totalmente compatível com o conjunto de instruções x86.
Cortesia de imagens: