x86 vs x64
A diferença mais importante entre x86 e x64 é que o primeiro é a arquitetura de 32 bits e o último é 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 arquitetônicas de uma CPU são especificadas pelo ISA. x86 é um ISA mundialmente famoso introduzido pela Intel em 1978 com o processador 8086. Então, 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 sob o nome AMD64. Posteriormente, outras empresas como a Intel também implementaram essa especificação e este AMD64 é o que é identificado pelo nome x64.
O que é x86?
x86 é uma arquitetura de conjunto de instruções introduzida pela Intel com o famoso processador 8086. Em 1978, a Intel apresentou o processador 8086 que era um processador de 16 bits. Mais tarde, 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 de 32 bits. Então os processadores Pentium vieram como Pentium I, Pentium II, Pentium III, Pentium IV e todos eles seguiram uma arquitetura de 32 bits também. Mas várias outras extensões aconteceram com a arquitetura x86, como 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 desse ponto, foi denominado x64, que discutiremos na próxima seção. De qualquer forma, em geral, x86 se refere à arquitetura de 32 bits que evoluiu de uma arquitetura de 16 bits que veio com o processador 8086.
Processador 8086
O que é x64?
Um sistema de 32 bits pode representar apenas 2 32 valores distintos e, portanto, o endereçamento de memória é limitado a esse número de endereços. 2 32 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 para a arquitetura x86. A AMD, por volta do ano 2000, introduziu essa especificação que estendeu a arquitetura x86 para 64 bits. Isso foi introduzido com o nome AMD64. x64 é outro nome dado a essa arquitetura AMD64. Essa arquitetura AMD64 ou x64 também é conhecida pelo nome x86_64. Com a arquitetura de 64 bits, todos os registros passaram a ser de 64 bits e o barramento de memória e o barramento de dados também passaram a ser de 64 bits. Agora 2 64valores distintos podem ser endereçados e isso dá um grande limite superior na memória máxima possível. AMD K8 foi o primeiro processador a implementar essa arquitetura de 64 bits. Então a Intel também adotou essa arquitetura. Com os processadores Intel Core que começaram a partir do 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. Algo importante a ser enfatizado é que essa arquitetura x64 ainda é compatível com o antigo conjunto de instruções x86.
Processador de 64 bits
Qual é a diferença entre x86 e x64?
• O x86 foi introduzido por volta do ano de 1978, enquanto o x64 foi lançado mais recentemente no ano 2000.
• O x86 emergiu 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 eram de 16 bits, mas, nos processadores posteriores, uma extensão para 32 bits foi feita). A arquitetura x64 é de 64 bits.
• Processadores com arquitetura de conjunto de instruções x86, portanto, têm registradores de 32 bits, barramento de memória de 32 bits e barramento de dados de 32 bits. Mas x64 tem registros de 64 bits, barramento de memória de 64 bits e barramento de dados de 64 bits.
• x86 tem uma limitação de memória endereçável máxima que é um limite superior de 4 GB (2 32 bytes). Mas, em sistemas x64, esse limite é enorme, que é de 2 64 bytes.
• x64 é uma expansão de x86; portanto, é muito melhorado e poderoso que o antigo x86.
• Os valores que podem ser armazenados em um registro, em um sistema x64, são maiores do que os valores que podem ser armazenados em um registro baseado em x86. Portanto, x64 pode lidar com o cálculo de inteiros maiores muito mais rápido, pois não há necessidade de usar vários registradores nesse caso para dividir o valor e armazenar como em 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 em paralelo apenas 32 bits.
Resumo:
x86 vs x64
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 registros, barramento de memória e barramento de dados em arquiteturas x86 são de 32 bits, enquanto este é de 64 bits em x64. Portanto, a quantidade máxima de memória endereçável é muito maior em sistemas x64 do que em 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 este x64 é totalmente compatível com o conjunto de instruções x86.
Cortesia de imagens:
- Intel 8086 por Appaloosa (CC BY-SA 3.0)
- Processador de 64 bits por Appaloosa (CC BY 3.0)