Pregunta ¿Por qué x86 representa 32 bits cuando x64 representa 64 bits? [cerrado]


Mi pregunta es ¿por qué es la abreviatura de x86 de 32 bits cuando la taquigrafía de 64 bits es x64?

Supongo que tiene algo que ver con los días de 386 y 486, cuando todos los procesadores de 32 bits terminaron en 86, pero seguramente hubo procesadores que no terminaron en 86 y aún eran de 32 bits.

¿Alguien sabe la historia de esto o puede dirigirme a una buena fuente de información?

Gracias


86
2017-10-06 14:48


origen


¡Siempre quise saber este +1 por curiosidad inconsciente! - Gabriel Guimarães
¡Acabo de preguntarme esto esta mañana! - Sean Howat
Creo que el término completo no es x64 sino x86_64 - Kedare
En mi humilde opinión, "x86" no significa (y nunca ha significado) simplemente cualquier arquitectura genérica de 32 bits. La respuesta de Daniel a continuación da la historia. Hay muchos otros procesadores de 32 bits que son contemporáneos a (o más antiguos que) el 80386, y muchos todavía están vivos y bien en el mercado hoy en día. La familia 68000 (utilizada en el Macintosh original) es mucho más antigua que la 8086, por ejemplo. El reclamo de PowerPC a la fama cuando era nuevo era un fuerte soporte de emulación tanto para x86 como para 68K. El ARM es de 32 bits, más moderno y bastante común también. - RBerteig
No lo veo como x64, al menos no lo escribo de esa manera. Lo escribo como 32b y 64b, respectivamente. - vol7ron


Respuestas:


Probablemente porque la línea x86 se convirtió en sinónimo de procesadores de 32 bits durante bastante tiempo, mientras que x64 fue específicamente una designación para 64 bits, ya que las aplicaciones y los sistemas operativos pasaron a la transición, y ahora hay aplicaciones de software que requieren la designación de 64 bits para ejecutarse (como algún software de VM).

En otras palabras, es más marketing que tecnología por la razón.


32
2017-10-06 14:53



x86 proviene de 8086, 286, 386, 486, 586, etc. Podría haber sido tan fácilmente "* 86" - gWaldo
Y debido a que x86 se originó con el 8086, nunca he podido averiguar por qué siempre se asocia con 32 bits. Como recuerdo, el 8086 era un procesador de 16 bits, que utilizaba registros dobles para habilitar el direccionamiento de memoria de 32 bits. Intel estaba lejos de ser un líder en el campo en esos días. Por cierto @gWaldo, dejaste fuera el 80186. - John Gardeniers
Coincidencia. Desde Wikipedia, "tanto la arquitectura como el chip físico fueron desarrollados bastante rápidamente por un pequeño grupo de personas, y utilizaron los mismos elementos básicos de microarquitectura y técnicas de implementación física que se emplearon para el 8085 un poco más antiguo (y para el que también funcionaría el 8086 como una continuación) ". También hubo un 8087 y un 8089. - Bart Silverstrim
Sí, omití el 80186 porque honestamente no podía recordar si había sido un producto lanzado (y me sentía demasiado perezoso para buscarlo ...) - gWaldo
Esta respuesta no tiene nada de malo, pero honestamente creo que la de Daniel debería ser la aceptada, ya que es mucho más detallada. - Massimo


Bueno, una vez hubo un chip llamado 8086, con una versión más barata llamada 8088 que se usó en una computadora personal llamada IBM PC. Se hizo una versión mejorada de ese chip y se llamó 80186, aunque no era una versión muy popular. Sin embargo, se hizo una versión mejorada y se llamó 80286. Ahora, ese era un chip muy popular, en particular porque se usaba en una computadora llamada IBM PC AT.

Más tarde, Intel, que creó y vendió los chips 8086, 8088, 80186 y 80286, todos los cuales tenían una arquitectura de 16 bits, vio la necesidad de crear un chip de 32 bits para competir con ofertas similares de otros. Para aprovechar su posición predominante, hizo que el nuevo chip fuera capaz de ejecutar el software creado para los chips mencionados anteriormente. Naturalmente, Intel llamó a este nuevo chip el 80386.

Para entonces, había muchas computadoras que usaban varias versiones de los chips de Intel, y también había chips que no eran de Intel que eran compatibles con los de Intel. Así que la gente comenzó a referirse a ellos como 80x86.

Después de un tiempo, Intel lanzó un nuevo chip, pero decidió eliminar el 80, por lo que se convirtió en el 486 en lugar del 80486. Del mismo modo, las personas eliminaron el "80" de la parte frontal de "80x86", y llamaron a esto solo x86 .

Ahora, estoy bastante seguro de que algunos vendrán y dirán que Intel marcó sus chips x86 en tal o cual momento, lo cual hicieron, pero no me importa.

El hecho es que el creciente dígito medio dio lugar a 80x86, y x86 provino de eso, incluso si 80186 y 80286 no fueran de 32 bits.

Entonces, una vez que Intel finalmente pasó a 64 bits, ¿cómo llamó a su nueva arquitectura? ¡Derecha! IA64! :-) También cambió el nombre retroactivamente de x86 a IA32, por así decirlo. Solo IA64 no era compatible con x86, quiero decir, IA32, así que todos lo ignoraron.

Y luego vino AMD, que decidió que el mercado quería una CPU de 64 bits que fuera compatible, en la medida de lo posible, con la familia x86. Como atractivo de marketing, lo llamaron la familia "x86-64", y tuvieron un gran éxito. Tanto es así que Intel terminó siguiendo a regañadientes con su propia CPU de 64 bits basada en x86.

Más tarde, debido a que las personas son perezosas, el x86-64 se conoció simplemente como el x64.

Entonces, en respuesta a tu pregunta, porque x64 es más corto que x86-64.


172
2017-10-06 15:23



+1 para una gran explicación. - Gup3rSuR4c
No para elegir, sino para ser completamente exacto, AMD nunca comercializó un chip de 64 bits. x64 o x86_64 con el que salió AMD eran extensiones de 64 bits agregadas al conjunto de instrucciones x86 que Intel creó - por lo tanto, x86_64 en lugar de Itanium de Intel (IA_64), que era un verdadero chip de 64 bits no compatible con el conjunto de instrucciones x86. - Jeremy Hajek
Además, creo que Intel enfrentó problemas con las marcas registradas porque solo estaban usando números y no se puede registrar una secuencia de números, por eso lo que habría sido el 80586 se convirtió en el Pentium, un nombre inventado que podrían seguir siendo marca registrada. - cdkMoose
Para aclarar: AMD llamó a sus extensiones AMD64, e Intel llama a las suyas (que tienen licencia de AMD) Intel64. Existen algunas diferencias sutiles (no son compatibles al 100%), por lo que la mayoría de los proveedores de sistemas operativos suelen usar el subconjunto común. En un DVD de Windows 2008, la carpeta de instalación en realidad se llama AMD64 (a diferencia de I386 en 32 bits). No sé de dónde viene x86_64: de AMD, ya que es una extensión de x86 o de Unix-Vendors que quería un término neutral. - Michael Stum♦
@Jeremy Hajek: AMD64 / x86_64 es un verdadero diseño de chip de 64 bits, su modo de 64 bits no es una emulación y no tiene impacto en el rendimiento (y de hecho, su modo de 32 bits tampoco es una emulación). El chip tiene un conjunto de instrucciones de 64 bits y registros de 64 bits, lo que lo convierte en un chip de 64 bits. No sé de dónde sacas la impresión de que AMD nunca comercializó un chip de 64 bits. Sin embargo, es cierto que AMD nunca comercializó un dispositivo de 64 bits que rompe la compatibilidad con el chip de 32 bits, como lo hizo Intel con su IA64. - Lie Ryan


Desde Wikipedia: El término x86 se refiere a una familia de arquitecturas de conjuntos de instrucciones basadas en la CPU Intel 8086.


14
2017-10-06 14:52





Técnicamente, x86 simplemente se refiere a una familia de procesadores y al conjunto de instrucciones que todos usan. En realidad, no dice nada específico sobre el tamaño de los datos.

x86 comenzó como un conjunto de instrucciones de 16 bits para procesadores de 16 bits (los procesadores 8086 y 8088), luego se extendió a un conjunto de instrucciones de 32 bits para procesadores de 32 bits (80386 y 80486), y ahora se ha extendido a un conjunto de instrucciones de 64 bits para procesadores de 64 bits. Solía ​​escribirse como 80x86 para reflejar el valor cambiante en medio de los números de modelo de chip, pero en algún lugar a lo largo de la línea se eliminó el 80 en el frente, dejando solo x86.

Culpa al Pentium ya su descendencia por cambiar la forma en que se nombraron y comercializaron los procesadores, aunque a todos los procesadores más nuevos que usan el conjunto de instrucciones x86 de Intel todavía se les conoce como compatibles con x86, i386 o i686 (lo que significa que todos usan extensiones del 8086 original). conjunto de instrucciones).

x64 es realmente el hombre extraño aquí. El primer nombre para la extensión de 64 bits del conjunto x86 se llamó x86-64. Más tarde fue nombrado para AMD64 (porque AMD fueron los que originalmente crearon la extensión de 64 bits). Intel obtuvo la licencia del conjunto de instrucciones de 64 bits y nombró su versión EM64T. Ambos conjuntos de instrucciones y los procesadores que los utilizan se consideran todos x86.


3
2018-06-07 05:50



x86-64 vuelve a ser un término neutral para el proveedor que incluye AMD64 y EM64T. El 80 principal siempre estuvo allí en el número de pieza, pero después de 80186 se volvió más fácil, digamos 186 vs. 8086 vs. 386. Pentium nunca fue oficialmente llamado 586 u 80586 en sus números de parte (cpu-world.com/sspec/Pentium.html); Los términos i586 e i686 se basaron simplemente en el campo "familia" de CPUID de cómo se informaron las CPU. - Peter Cordes


x86 y x64 son los nombres de la cpu arquitecturas. Hay más en la arquitectura de la CPU que el número de bits por registro.

x64 toma es nombre porque el salto a 64 bits es el más grande cambio en la arquitectura de x86, pero ese salto está lejos de la solamente cambio.

x86 obtiene su nombre del venerable procesador y familia 8086, que incluía 80286, 80368, 486, etc. En el momento en que x86 se estableció como nombre para la arquitectura, 32 bits por registro no se consideraron una característica lo suficientemente importante como para justificar la construcción. en el nombre.


3
2017-10-07 18:28





Bien, x64 Nunca realmente vino de un conjunto de instrucciones o fabricante de chips. Originalmente vino de Windows XP. La primera edición de Windows de 64 bits recibió el título. Windows XP x64. Y supongo que el término x64 atrapado desde allí.

los x86 moniker viene del conjunto de instrucciones de 32 bits. Así que todo x86 procesadores (sin un líder 80) ejecuta el mismo conjunto de instrucciones de 32 bits (y, por lo tanto, son todos compatibles). Asi que x86 se ha convertido en un nombre de facto para ese conjunto (y, por lo tanto, 32 bits).

La extensión original de 64 bits de AMD en el x86 set fue llamado AMD64. Intel lo autorizó más tarde, pero aún así el nombre de los 64 bits x86 conjunto de instrucciones es típicamente AMD64.

Pero sobre todo es distinción de marca. Esto es lo que algunas distribuciones diferentes de sistemas operativos llaman a cada sabor de 64 bits:

Así que básicamente, parece que Linux prefiere x86_64, BSD prefiere amd64 y los otros x64...

Pero lo importante a tener en cuenta es que todos significan lo mismo para fines de marketing. En sutileza sí significan cosas diferentes (bueno, amd64 significa algo diferente de x86_64 (el primero es una arquitectura específica del proveedor, y el segundo el subconjunto de arquitecturas de dos proveedores), pero x86_64 === x64), pero para cualquier persona, excepto los programadores que escriben en ensamblador o código de máquina, realmente no hace una diferencia ...


2
2017-10-07 12:50



Todo el x64 actual es en realidad AMD-64 desde la muerte de IA64. - Overmind
@Overmind: x64 y IA-64 siempre fueron cosas separadas. IA-64 no tiene ninguna relación con x86 o x86-64. (Excepto que las primeras implementaciones de IA-64 incluían un núcleo x86 por razones de compatibilidad, porque Intel ...) - Peter Cordes
Si, eso es correcto. Pero "está muerto, Jim". - Overmind