Por que x86 representa 32 bits quando x64 representa 64 bits? [fechadas]

97

Minha pergunta é por que é a abreviação de x86 de 32 bits quando a abreviação de 64 bits é x64?

Eu acho que isso tem algo a ver com os dias de 386s e 486s, quando todos os processadores de 32 bits terminavam em 86, mas certamente havia processadores que não terminavam em 86 e ainda eram de 32 bits?

Alguém sabe a história disso ou pode me direcionar para uma boa fonte de informação?

obrigado

Simon Foster
fonte
7
sempre quis conhecer este +1 por curiosidade inconsciente!
Gabriel Guimarães
Eu apenas me perguntei esta manhã!
Sean Howat
9
Acho que o termo completo não é x64, mas x86_64
Kedare
3
IMHO, "x86" não significa (e nunca significou) apenas qualquer arquitetura genérica de 32 bits. A resposta de Daniel abaixo mostra a história. Existem muitos outros processadores de 32 bits contemporâneos (ou mais antigos) que o 80386, e muitos ainda estão vivos e bem no mercado hoje. A família 68000 (usada no Macintosh original) é muito mais antiga que a 8086, por exemplo. A reivindicação do PowerPC de fama quando novo era um forte suporte à emulação para x86 e 68K. O ARM é de 32 bits, mais moderno e bastante comum também.
RBerteig 6/10/10
Não o vejo como x64, pelo menos não o escrevo dessa maneira. Eu escrevo como 32b e 64b, respectivamente.
vol7ron

Respostas:

34

Provavelmente porque a linha x86 se tornou sinônimo de processadores de 32 bits por algum tempo, enquanto o x64 foi especificamente uma designação para 64 bits à medida que os aplicativos e sistemas operacionais foram transferidos, e agora existem aplicativos de software que requerem a designação de 64 bits para executar (como alguns softwares de VM).

Em outras palavras, é mais marketing do que tecnologia pelo motivo.

Bart Silverstrim
fonte
20
x86 vem de 8086, 286, 386, 486, 586, etc. Poderia ter sido facilmente "* 86"
gWaldo
6
E como o x86 se originou com o 8086, nunca consegui entender por que ele está sempre associado a 32 bits. Pelo que me lembro, o 8086 era um processador de 16 bits, que usava registros duplos para permitir o endereçamento de memória de 32 bits. A Intel estava longe de ser líder em campo naqueles dias. BTW @gWaldo, você deixou de fora a 80186.
John Gardeniers
Coincidência. Da Wikipedia, "a arquitetura e o chip físico foram, portanto, desenvolvidos rapidamente por um pequeno grupo de pessoas, usando os mesmos elementos básicos de microarquitetura e técnicas de implementação física empregadas para o 8085 um pouco mais antigo (e para o qual o 8086 também funcionaria como uma continuação) ". Houve também um 8087 e 8089.
Bart Silverstrim
Sim, eu deixei de fora a 80186 porque eu honestamente não conseguia se lembrar se fosse um produto lançado (e estava me sentindo muito preguiçoso para procurá-lo ...)
gWaldo
1
Essa resposta não tem nada errado, mas sinceramente acho que a de Daniel deve ser a aceita, pois é muito mais detalhada.
Massimo
189

Bem, já houve um chip chamado 8086, com uma versão mais barata chamada 8088 que foi usada em um computador pessoal chamado IBM PC. Uma versão aprimorada desse chip foi criada e chamada 80186, embora não fosse uma versão muito popular. No entanto, uma versão aprimorada aprimorada foi criada e denominada 80286. Agora, esse era um chip muito popular, principalmente porque era usado em um computador chamado IBM PC AT.

Mais tarde, a Intel, que criou e vendeu os chips 8086, 8088, 80186 e 80286, todos com arquitetura de 16 bits, viu a necessidade de criar um chip de 32 bits para competir com ofertas semelhantes de terceiros. Para tirar proveito de sua posição atual, tornou o novo chip capaz de executar o software criado para os chips mencionados anteriormente. Naturalmente, a Intel chamou esse novo chip de 80386.

Naquela época, havia muitos computadores usando várias versões dos chips Intel e também chips que não eram da Intel compatíveis com os da Intel. Então, as pessoas começaram a se referir a elas como 80x86.

Depois de um tempo, a Intel lançou um novo chip, mas decidiu abandonar o 80, tornando-se o 486 em vez do 80486. Da mesma forma, as pessoas estavam retirando o "80" da frente de "80x86" e chamando isso de x86 .

Agora, tenho certeza que alguns virão dizer que a Intel marcou seus chips x86 em tal momento, o que eles fizeram, mas eu não me importo.

O fato é que o dígito médio sempre crescente deu origem a 80x86, e x86 veio disso - mesmo que 80186 e 80286 não fossem 32 bits.

Então, quando a Intel finalmente conseguiu 64 bits, como chamou sua nova arquitetura? Direito! IA64! :-) Também renomeou retroativamente o x86 para IA32, por assim dizer. Somente o IA64 não era compatível com o x86, ou seja, o IA32, então todos o ignoraram.

E então veio a AMD, que decidiu que o mercado queria uma CPU de 64 bits compatível, na medida do possível, com a família x86. Como apelo de marketing, eles chamaram a família "x86-64" e tiveram um enorme sucesso. Tanto que a Intel acabou seguindo de má vontade com sua própria CPU de 64 bits baseada em x86.

Mais tarde, como as pessoas são preguiçosas, o x86-64 ficou conhecido simplesmente como x64.

Portanto, em resposta à sua pergunta, porque x64 é menor que x86-64.

Daniel C. Sobral
fonte
10
Para não escolher, mas para ser totalmente exato, a AMD nunca comercializou um chip de 64 bits. O x64 ou o x86_64 lançado pela AMD foram extensões de 64 bits adicionadas ao conjunto de instruções x86 criado pela Intel - daí o x86_64, em oposição ao Itanium da Intel (IA_64), que era um verdadeiro chip de 64 bits não compatível com o conjunto de instruções x86.
Jeremy Hajek
6
Além disso, acredito que a Intel enfrentou problemas de marca registrada porque eles estavam apenas usando números e você não pode marcar uma sequência de números, por isso o que teria sido o 80586 se tornou o Pentium, um nome inventado que eles poderiam continuar a ser marca registrada.
cdkMoose
3
Para esclarecer: a AMD chamou suas extensões de AMD64 e a Intel chama de deles (que eles licenciaram da AMD) Intel64. Existem algumas diferenças sutis (elas não são 100% compatíveis); portanto, a maioria dos fornecedores de sistemas operacionais geralmente usa o subconjunto comum. Em um DVD do Windows 2008, a pasta de instalação é chamada AMD64 (em oposição ao I386 em 32 bits). Não sei de onde vem o x86_64: da AMD, uma vez que é uma extensão do x86 ou do Unix-Vendors que queria um termo neutro.
Michael Stum
20
@Jeremy Hajek: AMD64 / x86_64 é um verdadeiro design de chip de 64 bits, seu modo de 64 bits não é uma emulação e não tem impacto no desempenho (e, de fato, seu modo de 32 bits também não é uma emulação). O chip possui um conjunto de instruções de 64 bits e registradores de 64 bits, o que o torna um chip de 64 bits. Não sei de onde você tem a impressão de que a AMD nunca comercializou um chip de 64 bits. É verdade, porém, que a AMD nunca comercializou uma de 64 bits que quebra a compatibilidade com o chip de 32 bits, como a Intel fez com o IA64.
Lie Ryan
1
x64 é usado apenas na terminologia do Windows / Microsoft. O GNU / Linux chama a arquitetura x86-64, ou amd64. (E chama x86 de 32 bits i386). É apenas (ou pelo menos principalmente) no mundo do Windows que x86 significa especificamente x86 de 32 bits. A maioria das pessoas que fala de CPUs entende que x86 significa qualquer CPU compatível com versões anteriores ao 8086, independentemente do modo em que está operando (normalmente modo longo de 64 bits ou às vezes modo compatível de 32 bits em um kernel de 64 bits). Eu digo que "o x86 possui uma liberação / aquisição eficiente de átomos livres de bloqueio", não excluindo 64 bits.
Peter Cordes
16

Da Wikipedia : O termo x86 refere-se a uma família de arquiteturas de conjuntos de instruções baseadas na CPU Intel 8086.

bindbn
fonte
3

Tecnicamente, o x86 se refere simplesmente a uma família de processadores e ao conjunto de instruções que todos eles usam. Na verdade, não diz nada específico sobre tamanhos de dados.

O x86 começou como um conjunto de instruções de 16 bits para processadores de 16 bits (os processadores 8086 e 8088), depois foi estendido para um conjunto de instruções de 32 bits para processadores de 32 bits (80386 e 80486) e agora foi estendido para um conjunto de instruções de 64 bits para processadores de 64 bits. Costumava ser escrito como 80x86 para refletir o valor variável no meio dos números dos modelos de chips, mas em algum momento ao longo da linha os 80 na frente foram descartados, deixando apenas x86.

Culpe o Pentium e sua prole por mudar a maneira como os processadores foram nomeados e comercializados, embora todos os processadores mais recentes que usam o conjunto de instruções x86 da Intel ainda sejam referidos como compatíveis com x86, i386 ou i686 (o que significa que todos usam extensões do 8086 original conjunto de instruções).

x64 é realmente o homem estranho aqui. O primeiro nome da extensão de 64 bits para o conjunto x86 foi chamado x86-64. Mais tarde, foi nomeado para AMD64 (porque a AMD foi a que apresentou a extensão de 64 bits originalmente). A Intel licenciou o conjunto de instruções de 64 bits e nomeou sua versão EM64T. Os conjuntos de instruções e os processadores que os utilizam ainda são considerados x86.

Escorpião
fonte
x86-64 voltou a ser um termo neutro de fornecedor que inclui AMD64 e EM64T. Os 80 principais estavam sempre presentes no número de peça, mas após 80186 ficou mais fácil apenas dizer 186 vs. 8086 vs. 386. O Pentium nunca foi oficialmente chamado de 586 ou 80586 em seus números de peça ( cpu-world.com/sspec/Pentium. html ); os termos i586 e i686 baseavam-se apenas no campo "família" CPUID de como as CPUs se reportavam.
Peter Cordes
3

x86 e x64 são os nomes das arquiteturas da CPU . Existe mais em uma arquitetura de CPU do que apenas o número de bits por registro.

x64 leva esse nome porque o salto para 64 bits é a maior mudança na arquitetura do x86, mas esse salto está longe de ser a única mudança.

x86 obtém seu nome do venerável processador e família 8086, que incluía 80286, 80368, 486 etc. Na época em que o x86 se estabeleceu como um nome para a arquitetura, 32 bits por registro não eram considerados um recurso importante o suficiente para justificar a construção no nome.

Joel Coel
fonte
2

Bem, x64nunca realmente veio de um conjunto de instruções ou fabricante de chips. Ele veio originalmente do Windows XP. A primeira edição de 64 bits do Windows recebeu o título Windows XP x64. E acho que o termo x64ficou por aí.

O x86apelido vem do conjunto de instruções de 32 bits. Portanto, todos os x86processadores (sem avanço 80) executam o mesmo conjunto de instruções de 32 bits (e, portanto, todos são compatíveis). Então, x86tornou-se um nome defacto para esse conjunto (e, portanto, 32 bits).

A extensão original de 64 bits da AMD no x86aparelho foi chamada AMD64. A Intel licenciou-a posteriormente, mas mesmo assim o nome do x86conjunto de instruções de 64 bits é normalmente AMD64.

Mas principalmente é distinção de marca. Aqui está o que algumas distribuições principais diferentes de sistema operacional chamam de sabor de 64 bits:

Então, basicamente, parece que o Linux prefere x86_64, o BSD prefere amd64e os outros x64...

Mas o importante é notar que todos significam o mesmo para fins de marketing. Na sutileza, eles significam coisas diferentes (bem, amd64significa algo diferente de x86_64(o primeiro é uma arquitetura específica do fornecedor e o segundo o subconjunto de arquiteturas de dois fornecedores), mas x86_64=== x64), mas para qualquer pessoa, exceto os programadores que escrevem em montagem ou máquina código realmente não faz uma diferença ...

ircmaxell
fonte
1
Todo o x64 atual é realmente AMD-64 desde que IA64 morreu.
Overmind
@Overmind: x64 e IA-64 sempre foram coisas separadas. IA-64 não tem nenhuma relação com x86 ou x86-64. (A não ser que os primeiros IA-64 implementações incluído um núcleo 86, por razões compat, porque a Intel ...)
Pedro Cordes
Sim, está correto. Mas "está morto, Jim".
Overmind